diff --git a/assets/harvester/harvester-1.5.0-dev.tgz b/assets/harvester/harvester-1.5.0-dev.tgz new file mode 100644 index 00000000..4a90ddac Binary files /dev/null and b/assets/harvester/harvester-1.5.0-dev.tgz differ diff --git a/assets/index.yaml b/assets/index.yaml index f9220437..27165732 100644 --- a/assets/index.yaml +++ b/assets/index.yaml @@ -1,6 +1,28 @@ apiVersion: v1 entries: harvester: + - annotations: + catalog.cattle.io/certified: rancher + catalog.cattle.io/display-name: Harvester + catalog.cattle.io/kube-version: '>= 1.16.0-0' + catalog.cattle.io/namespace: cattle-ui-plugin-system + catalog.cattle.io/os: linux + catalog.cattle.io/permits-os: linux, windows + catalog.cattle.io/rancher-version: '>= 2.10.1-0' + catalog.cattle.io/scope: management + catalog.cattle.io/ui-component: plugins + catalog.cattle.io/ui-extensions-version: '>= 3.0.0 < 4.0.0' + apiVersion: v2 + appVersion: 1.5.0-dev + created: "2025-02-21T07:09:33.925786052Z" + description: Rancher UI Extension for Harvester + digest: b06a229297a912a84df48e236441bb770b934ff72081d56805da9693c25b7dfb + icon: https://raw.githubusercontent.com/harvester/harvester-ui-extension/main/pkg/harvester/icon.svg + name: harvester + type: application + urls: + - assets/harvester/harvester-1.5.0-dev.tgz + version: 1.5.0-dev - annotations: catalog.cattle.io/certified: rancher catalog.cattle.io/display-name: Harvester @@ -89,4 +111,4 @@ entries: urls: - assets/harvester/harvester-1.0.0.tgz version: 1.0.0 -generated: "2025-01-23T09:53:53.34414+08:00" +generated: "2025-02-21T07:09:33.92518528Z" diff --git a/charts/harvester/1.5.0-dev/Chart.yaml b/charts/harvester/1.5.0-dev/Chart.yaml new file mode 100644 index 00000000..f78dbbdf --- /dev/null +++ b/charts/harvester/1.5.0-dev/Chart.yaml @@ -0,0 +1,19 @@ +annotations: + catalog.cattle.io/certified: rancher + catalog.cattle.io/namespace: cattle-ui-plugin-system + catalog.cattle.io/os: linux + catalog.cattle.io/permits-os: linux, windows + catalog.cattle.io/scope: management + catalog.cattle.io/ui-component: plugins + catalog.cattle.io/display-name: Harvester + catalog.cattle.io/kube-version: '>= 1.16.0-0' + catalog.cattle.io/rancher-version: '>= 2.10.1-0' + catalog.cattle.io/ui-extensions-version: '>= 3.0.0 < 4.0.0' +apiVersion: v2 +appVersion: 1.5.0-dev +description: Rancher UI Extension for Harvester +name: harvester +type: application +version: 1.5.0-dev +icon: >- + https://raw.githubusercontent.com/harvester/harvester-ui-extension/main/pkg/harvester/icon.svg diff --git a/charts/harvester/1.5.0-dev/templates/_helpers.tpl b/charts/harvester/1.5.0-dev/templates/_helpers.tpl new file mode 100644 index 00000000..170f9419 --- /dev/null +++ b/charts/harvester/1.5.0-dev/templates/_helpers.tpl @@ -0,0 +1,63 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "extension-server.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "extension-server.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "extension-server.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "extension-server.labels" -}} +helm.sh/chart: {{ include "extension-server.chart" . }} +{{ include "extension-server.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "extension-server.selectorLabels" -}} +app.kubernetes.io/name: {{ include "extension-server.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Pkg annotations +*/}} +{{- define "extension-server.pluginMetadata" -}} +{{- with .Values.plugin.metadata }} +{{- range $key, $value := . }} +{{ $key }}: {{ $value | quote }} +{{- end }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/harvester/1.5.0-dev/templates/cr.yaml b/charts/harvester/1.5.0-dev/templates/cr.yaml new file mode 100644 index 00000000..ea02cfd0 --- /dev/null +++ b/charts/harvester/1.5.0-dev/templates/cr.yaml @@ -0,0 +1,14 @@ +apiVersion: catalog.cattle.io/v1 +kind: UIPlugin +metadata: + name: {{ include "extension-server.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: {{ include "extension-server.labels" . | nindent 4 }} +spec: + plugin: + name: {{ include "extension-server.fullname" . }} + version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }} + endpoint: https://raw.githubusercontent.com/harvester/harvester-ui-extension/v1.5-head/extensions/harvester/1.5.0-dev + noCache: {{ .Values.plugin.noCache }} + noAuth: {{ .Values.plugin.noAuth }} + metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }} \ No newline at end of file diff --git a/charts/harvester/1.5.0-dev/values.yaml b/charts/harvester/1.5.0-dev/values.yaml new file mode 100644 index 00000000..c5f1cad9 --- /dev/null +++ b/charts/harvester/1.5.0-dev/values.yaml @@ -0,0 +1,12 @@ +nameOverride: "" +fullnameOverride: "" +plugin: + enabled: true + versionOverride: "" + noCache: false + noAuth: false + metadata: + catalog.cattle.io/display-name: Harvester + catalog.cattle.io/kube-version: ">= 1.16.0-0" + catalog.cattle.io/rancher-version: ">= 2.10.1-0" + catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" diff --git a/extensions/harvester/1.5.0-dev/files.txt b/extensions/harvester/1.5.0-dev/files.txt new file mode 100644 index 00000000..c7da605b --- /dev/null +++ b/extensions/harvester/1.5.0-dev/files.txt @@ -0,0 +1,173 @@ +plugin/harvester-1.5.0-dev.umd.min.160.js +plugin/harvester-1.5.0-dev.umd.min.160.js.map +plugin/harvester-1.5.0-dev.umd.min.198.js +plugin/harvester-1.5.0-dev.umd.min.198.js.map +plugin/harvester-1.5.0-dev.umd.min.207.js +plugin/harvester-1.5.0-dev.umd.min.207.js.map +plugin/harvester-1.5.0-dev.umd.min.37.js +plugin/harvester-1.5.0-dev.umd.min.37.js.map +plugin/harvester-1.5.0-dev.umd.min.395.js +plugin/harvester-1.5.0-dev.umd.min.395.js.map +plugin/harvester-1.5.0-dev.umd.min.431.js +plugin/harvester-1.5.0-dev.umd.min.431.js.map +plugin/harvester-1.5.0-dev.umd.min.514.js +plugin/harvester-1.5.0-dev.umd.min.514.js.map +plugin/harvester-1.5.0-dev.umd.min.530.js +plugin/harvester-1.5.0-dev.umd.min.530.js.map +plugin/harvester-1.5.0-dev.umd.min.545.js +plugin/harvester-1.5.0-dev.umd.min.545.js.map +plugin/harvester-1.5.0-dev.umd.min.60.js +plugin/harvester-1.5.0-dev.umd.min.60.js.map +plugin/harvester-1.5.0-dev.umd.min.623.js +plugin/harvester-1.5.0-dev.umd.min.623.js.map +plugin/harvester-1.5.0-dev.umd.min.643.js +plugin/harvester-1.5.0-dev.umd.min.643.js.map +plugin/harvester-1.5.0-dev.umd.min.850.js +plugin/harvester-1.5.0-dev.umd.min.850.js.map +plugin/harvester-1.5.0-dev.umd.min.934.js +plugin/harvester-1.5.0-dev.umd.min.934.js.map +plugin/harvester-1.5.0-dev.umd.min.csv.js +plugin/harvester-1.5.0-dev.umd.min.csv.js.map +plugin/harvester-1.5.0-dev.umd.min.detail.js +plugin/harvester-1.5.0-dev.umd.min.detail.js.map +plugin/harvester-1.5.0-dev.umd.min.dialog.js +plugin/harvester-1.5.0-dev.umd.min.dialog.js.map +plugin/harvester-1.5.0-dev.umd.min.edit.js +plugin/harvester-1.5.0-dev.umd.min.edit.js.map +plugin/harvester-1.5.0-dev.umd.min.formatters.js +plugin/harvester-1.5.0-dev.umd.min.formatters.js.map +plugin/harvester-1.5.0-dev.umd.min.js +plugin/harvester-1.5.0-dev.umd.min.js.map +plugin/harvester-1.5.0-dev.umd.min.list.js +plugin/harvester-1.5.0-dev.umd.min.list.js.map +plugin/harvester-1.5.0-dev.umd.min.promptRemove.js +plugin/harvester-1.5.0-dev.umd.min.promptRemove.js.map +plugin/harvester-1.5.0-dev.umd.min.xterm.js +plugin/harvester-1.5.0-dev.umd.min.xterm.js.map +plugin/img/activedirectory.0baa2998.svg +plugin/img/adfs.6e70726e.svg +plugin/img/aliyun-black.a9967561.svg +plugin/img/aliyun.d05bff3f.svg +plugin/img/aliyunecs-black.93dd5b27.svg +plugin/img/aliyunecs.b57b715b.svg +plugin/img/amazonec2-black.5d49a518.svg +plugin/img/amazonec2.259f7435.svg +plugin/img/amazoneks-black.e3999509.svg +plugin/img/amazoneks.44a8a254.svg +plugin/img/aws.988ade4f.svg +plugin/img/azure-black.4bcdbe6b.svg +plugin/img/azure.7d30d447.svg +plugin/img/azuread-black.d272db7e.svg +plugin/img/azuread.774efe5f.svg +plugin/img/azuread.7914bb78.svg +plugin/img/azureaks-black.09cdc074.svg +plugin/img/azureaks.239d69fb.svg +plugin/img/baidu-black.32fb0569.svg +plugin/img/baidu.063c3510.svg +plugin/img/banner.00f803a6.svg +plugin/img/banner.e66743c3.svg +plugin/img/cloudca-black.2c8fc541.svg +plugin/img/cloudca.fb088dd5.svg +plugin/img/cloudscale-black.87d94917.svg +plugin/img/cloudscale.dd348191.svg +plugin/img/custom.2ff19310.svg +plugin/img/custom.6f45244d.svg +plugin/img/decoration-cloud-big-white.4229596e.svg +plugin/img/decoration-ground.3f64fcbb.svg +plugin/img/digitalocean-black.3d5310a1.svg +plugin/img/digitalocean.b0aa5786.svg +plugin/img/email.b67ceff2.svg +plugin/img/equinix-black.0870820e.svg +plugin/img/equinix.c112c186.svg +plugin/img/error-desert-landscape.2a9d44f4.svg +plugin/img/exoscale.af115826.svg +plugin/img/favicon.20240f8a.png +plugin/img/freeipa.ef110cc0.svg +plugin/img/gcp.f7a1243c.svg +plugin/img/generic-catalog.1842a50e.svg +plugin/img/github.9c864145.svg +plugin/img/gke-black.64bdd882.svg +plugin/img/gke.4c1ecbcd.svg +plugin/img/google.789cf860.svg +plugin/img/googlegke-black.64bdd882.svg +plugin/img/googlegke.4c1ecbcd.svg +plugin/img/googleoauth.4619a2a5.svg +plugin/img/grafana.2db31bb8.svg +plugin/img/half-logo.1bc560ee.svg +plugin/img/harvester.0168283e.svg +plugin/img/harvester.20240f8a.png +plugin/img/huaweicce-black.d378b855.svg +plugin/img/huaweicce.22b4ecea.svg +plugin/img/icon.42954c0f.svg +plugin/img/import.ac396542.svg +plugin/img/jaeger.1c7d1266.svg +plugin/img/k3s-black.b4765216.svg +plugin/img/k3s.f0881505.svg +plugin/img/keycloak.ca7b4848.svg +plugin/img/kiali.d0e257dd.svg +plugin/img/kubernetes-black.2ade6358.svg +plugin/img/kubernetes.ac396542.svg +plugin/img/linode.642005fe.svg +plugin/img/linodelke-black.81aa799d.svg +plugin/img/linodelke.642005fe.svg +plugin/img/linux.a96776e5.svg +plugin/img/local-cluster.272d4fc9.svg +plugin/img/login-landscape.60cd520b.svg +plugin/img/login-landscape.6e1253bb.svg +plugin/img/longhorn.4809470b.svg +plugin/img/minikube-black.94055a38.svg +plugin/img/minikube.117e4a38.svg +plugin/img/neuvector.513801d3.svg +plugin/img/nutanix.b10c401f.svg +plugin/img/oci-black.cd3524de.svg +plugin/img/oci.3a81eed0.svg +plugin/img/okta.58a2aa35.svg +plugin/img/openid.451743dd.svg +plugin/img/openldap.59040f23.svg +plugin/img/openstack-black.af3ac5a0.svg +plugin/img/openstack.475580f8.svg +plugin/img/oracle.74aae75e.svg +plugin/img/oracleoke-black.ec0a34a2.svg +plugin/img/oracleoke.64fac528.svg +plugin/img/otc-black.5629758c.svg +plugin/img/otc.1b7d926f.svg +plugin/img/otccce.1b7d926f.svg +plugin/img/outscale.d0d823da.svg +plugin/img/ovhcloudmks.612c966f.svg +plugin/img/ovhcloudpubliccloud.612c966f.svg +plugin/img/packet-black.5fc90c03.svg +plugin/img/packet.ef1f45fa.svg +plugin/img/pagerduty.9871fbd3.svg +plugin/img/ping.5b5afc6e.svg +plugin/img/pinganyunecs-black.bf0b3440.svg +plugin/img/pinganyunecs.b74db865.svg +plugin/img/pnap-black.a7948015.svg +plugin/img/pnap.81704b7a.svg +plugin/img/prometheus.be8ac54d.svg +plugin/img/rackspace-black.0e8f8bc4.svg +plugin/img/rackspace.5e8dcb5a.svg +plugin/img/rancher-logo.3680d0eb.svg +plugin/img/rancher-logo.487fcd1d.svg +plugin/img/rancher-logo.788ed883.svg +plugin/img/rancher-logo.8d98c901.svg +plugin/img/rancher-logo.920195b3.svg +plugin/img/rancher-logo.b8492368.svg +plugin/img/rancher-logo.d773077a.svg +plugin/img/rancher-logo.ef1ab5b0.svg +plugin/img/rancher-logo.f190bd21.svg +plugin/img/rancher-logo.fd684d42.svg +plugin/img/rke.a01f31e7.svg +plugin/img/rke2.a01f31e7.svg +plugin/img/setup-step-one.7b236b40.svg +plugin/img/shibboleth.35ea1d68.svg +plugin/img/slack.34dfd73f.svg +plugin/img/softlayer.5d9a5c2a.svg +plugin/img/sunglasses.157dca2a.svg +plugin/img/tencenttke-black.140c30e5.svg +plugin/img/tencenttke.42042615.svg +plugin/img/vmwarevsphere-black.454d68ed.svg +plugin/img/vmwarevsphere.94d59db3.svg +plugin/img/webhook.f86c012b.svg +plugin/img/wechat-qr-code.c0468b45.jpg +plugin/img/windows.f862ed7d.svg +plugin/package.json diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.160.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.160.js new file mode 100644 index 00000000..3e7eb1cb --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.160.js @@ -0,0 +1,2 @@ +"use strict";(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[160],{74562:function(e,t,n){n.d(t,{A:function(){return f}});var s=n(9274);const i={key:0};function o(e,t,n,o,r,a){const c=(0,s.resolveComponent)("BadgeState");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[n.arbitrary?((0,s.openBlock)(),(0,s.createElementBlock)("div",i,[n.value?((0,s.openBlock)(),(0,s.createBlock)(c,{key:0,color:r.stateBackground,label:r.stateDisplay},null,8,["color","label"])):(0,s.createCommentVNode)("",!0)])):((0,s.openBlock)(),(0,s.createBlock)(c,{key:1,value:n.row},null,8,["value"]))])}var r=n(87102),a=n(73883),c={components:{BadgeState:r.j},props:{value:{type:String,default:""},row:{type:Object,required:!0},col:{type:Object,default:()=>{}},arbitrary:{type:Boolean,default:!1}},data(){return{stateDisplay:"",stateBackground:""}},watch:{value:{handler(){if(this.arbitrary){const e=(0,a.uU)(this.value);this.stateDisplay=(0,a.ch)(this.value),this.stateBackground=e.replace("text-","bg-")}},immediate:!0}}},l=n(47433);const u=(0,l.A)(c,[["render",o]]);var f=u},96261:function(e,t,n){n.d(t,{Ay:function(){return gs}});var s={};n.r(s),n.d(s,{BOM:function(){return Fn},DOCUMENT:function(){return Vn},FLOW_END:function(){return Jn},SCALAR:function(){return Yn},createScalarToken:function(){return xn},isCollection:function(){return Wn},isScalar:function(){return Gn},prettyToken:function(){return Qn},resolveAsScalar:function(){return Ln},setScalarValue:function(){return $n},stringify:function(){return jn},tokenType:function(){return Hn},visit:function(){return Un}});var i={};n.r(i),n.d(i,{Alias:function(){return U},CST:function(){return s},Composer:function(){return Tn},Document:function(){return Pt},Lexer:function(){return ss},LineCounter:function(){return is},Pair:function(){return Le},Parser:function(){return fs},Scalar:function(){return V},Schema:function(){return Kt},YAMLError:function(){return Rt},YAMLMap:function(){return je},YAMLParseError:function(){return Ft},YAMLSeq:function(){return De},YAMLWarning:function(){return Vt},isAlias:function(){return h},isCollection:function(){return b},isDocument:function(){return d},isMap:function(){return p},isNode:function(){return w},isPair:function(){return m},isScalar:function(){return y},isSeq:function(){return g},parse:function(){return ms},parseAllDocuments:function(){return ds},parseDocument:function(){return ps},stringify:function(){return ys},visit:function(){return N},visitAsync:function(){return A}});const o=Symbol.for("yaml.alias"),r=Symbol.for("yaml.document"),a=Symbol.for("yaml.map"),c=Symbol.for("yaml.pair"),l=Symbol.for("yaml.scalar"),u=Symbol.for("yaml.seq"),f=Symbol.for("yaml.node.type"),h=e=>!!e&&"object"===typeof e&&e[f]===o,d=e=>!!e&&"object"===typeof e&&e[f]===r,p=e=>!!e&&"object"===typeof e&&e[f]===a,m=e=>!!e&&"object"===typeof e&&e[f]===c,y=e=>!!e&&"object"===typeof e&&e[f]===l,g=e=>!!e&&"object"===typeof e&&e[f]===u;function b(e){if(e&&"object"===typeof e)switch(e[f]){case a:case u:return!0}return!1}function w(e){if(e&&"object"===typeof e)switch(e[f]){case o:case a:case l:case u:return!0}return!1}const k=e=>(y(e)||b(e))&&!!e.anchor,v=Symbol("break visit"),S=Symbol("skip children"),E=Symbol("remove node");function N(e,t){const n=T(t);if(d(e)){const t=O(null,e.contents,n,Object.freeze([e]));t===E&&(e.contents=null)}else O(null,e,n,Object.freeze([]))}function O(e,t,n,s){const i=L(e,t,n,s);if(w(i)||m(i))return x(e,s,i),O(e,i,n,s);if("symbol"!==typeof i)if(b(t)){s=Object.freeze(s.concat(t));for(let e=0;ee.replace(/[!,[\]{}]/g,(e=>$[e]));class _{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},_.defaultYaml,e),this.tags=Object.assign({},_.defaultTags,t)}clone(){const e=new _(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){const e=new _(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:_.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},_.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:_.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},_.defaultTags),this.atNextDocument=!1);const n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(2!==n.length&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;const[e,s]=n;return this.tags[e]=s,!0}case"%YAML":{if(this.yaml.explicit=!0,1!==n.length)return t(0,"%YAML directive should contain exactly one part"),!1;const[e]=n;if("1.1"===e||"1.2"===e)return this.yaml.version=e,!0;{const n=/^\d+\.\d+$/.test(e);return t(6,`Unsupported YAML version ${e}`,n),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if("!"===e)return"!";if("!"!==e[0])return t(`Not a valid tag: ${e}`),null;if("<"===e[1]){const n=e.slice(2,-1);return"!"===n||"!!"===n?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(">"!==e[e.length-1]&&t("Verbatim tags must end with a >"),n)}const[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);const i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return"!"===n?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(const[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+C(e.substring(n.length));return"!"===e[0]?e:`!<${e}>`}toString(e){const t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags);let s;if(e&&n.length>0&&w(e.contents)){const t={};N(e.contents,((e,n)=>{w(n)&&n.tag&&(t[n.tag]=!0)})),s=Object.keys(t)}else s=[];for(const[i,o]of n)"!!"===i&&"tag:yaml.org,2002:"===o||e&&!s.some((e=>e.startsWith(o)))||t.push(`%TAG ${i} ${o}`);return t.join("\n")}}function B(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const t=JSON.stringify(e),n=`Anchor must not contain whitespace or control characters: ${t}`;throw new Error(n)}return!0}function j(e){const t=new Set;return N(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function M(e,t){for(let n=1;1;++n){const s=`${e}${n}`;if(!t.has(s))return s}}function D(e,t){const n=[],s=new Map;let i=null;return{onAnchor:s=>{n.push(s),i||(i=j(e));const o=M(t,i);return i.add(o),o},setAnchors:()=>{for(const e of n){const t=s.get(e);if("object"!==typeof t||!t.anchor||!y(t.node)&&!b(t.node)){const t=new Error("Failed to resolve repeated object (this should not happen)");throw t.source=e,t}t.node.anchor=t.anchor}},sourceObjects:s}}function K(e,t,n,s){if(s&&"object"===typeof s)if(Array.isArray(s))for(let i=0,o=s.length;iq(e,String(t),n)));if(e&&"function"===typeof e.toJSON){if(!n||!k(e))return e.toJSON(t,n);const s={aliasCount:0,count:1,res:void 0};n.anchors.set(e,s),n.onCreate=e=>{s.res=e,delete n.onCreate};const i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return"bigint"!==typeof e||n?.keep?e:Number(e)}_.defaultYaml={explicit:!1,version:"1.2"},_.defaultTags={"!!":"tag:yaml.org,2002:"};class P{constructor(e){Object.defineProperty(this,f,{value:e})}clone(){const e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:s,reviver:i}={}){if(!d(e))throw new TypeError("A document argument is required");const o={anchors:new Map,doc:e,keep:!0,mapAsMap:!0===t,mapKeyWarned:!1,maxAliasCount:"number"===typeof n?n:100},r=q(this,"",o);if("function"===typeof s)for(const{count:a,res:c}of o.anchors.values())s(c,a);return"function"===typeof i?K(i,{"":r},"",r):r}}class U extends P{constructor(e){super(o),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t;return N(e,{Node:(e,n)=>{if(n===this)return N.BREAK;n.anchor===this.source&&(t=n)}}),t}toJSON(e,t){if(!t)return{source:this.source};const{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s);if(!o){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(e)}let r=n.get(o);if(r||(q(o,null,t),r=n.get(o)),!r||void 0===r.res){const e="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(e)}if(i>=0&&(r.count+=1,0===r.aliasCount&&(r.aliasCount=R(s,o,n)),r.count*r.aliasCount>i)){const e="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(e)}return r.res}toString(e,t,n){const s=`*${this.source}`;if(e){if(B(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(e)}if(e.implicitKey)return`${s} `}return s}}function R(e,t,n){if(h(t)){const s=t.resolve(e),i=n&&s&&n.get(s);return i?i.count*i.aliasCount:0}if(b(t)){let s=0;for(const i of t.items){const t=R(e,i,n);t>s&&(s=t)}return s}if(m(t)){const s=R(e,t.key,n),i=R(e,t.value,n);return Math.max(s,i)}return 1}const F=e=>!e||"function"!==typeof e&&"object"!==typeof e;class V extends P{constructor(e){super(l),this.value=e}toJSON(e,t){return t?.keep?this.value:q(this.value,e,t)}toString(){return String(this.value)}}V.BLOCK_FOLDED="BLOCK_FOLDED",V.BLOCK_LITERAL="BLOCK_LITERAL",V.PLAIN="PLAIN",V.QUOTE_DOUBLE="QUOTE_DOUBLE",V.QUOTE_SINGLE="QUOTE_SINGLE";const J="tag:yaml.org,2002:";function Y(e,t,n){if(t){const e=n.filter((e=>e.tag===t)),s=e.find((e=>!e.format))??e[0];if(!s)throw new Error(`Tag ${t} not found`);return s}return n.find((t=>t.identify?.(e)&&!t.format))}function W(e,t,n){if(d(e)&&(e=e.contents),w(e))return e;if(m(e)){const t=n.schema[a].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||"undefined"!==typeof BigInt&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:s,onAnchor:i,onTagObj:o,schema:r,sourceObjects:c}=n;let l;if(s&&e&&"object"===typeof e){if(l=c.get(e),l)return l.anchor||(l.anchor=i(e)),new U(l.anchor);l={anchor:null,node:null},c.set(e,l)}t?.startsWith("!!")&&(t=J+t.slice(2));let f=Y(e,t,r.tags);if(!f){if(e&&"function"===typeof e.toJSON&&(e=e.toJSON()),!e||"object"!==typeof e){const t=new V(e);return l&&(l.node=t),t}f=e instanceof Map?r[a]:Symbol.iterator in Object(e)?r[u]:r[a]}o&&(o(f),delete n.onTagObj);const h=f?.createNode?f.createNode(n.schema,e,n):"function"===typeof f?.nodeClass?.from?f.nodeClass.from(n.schema,e,n):new V(e);return t?h.tag=t:f.default||(h.tag=f.tag),l&&(l.node=h),h}function G(e,t,n){let s=n;for(let i=t.length-1;i>=0;--i){const e=t[i];if("number"===typeof e&&Number.isInteger(e)&&e>=0){const t=[];t[e]=s,s=t}else s=new Map([[e,s]])}return W(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const Q=e=>null==e||"object"===typeof e&&!!e[Symbol.iterator]().next().done;class H extends P{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map((t=>w(t)||m(t)?t.clone(e):t)),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Q(e))this.add(t);else{const[n,...s]=e,i=this.get(n,!0);if(b(i))i.addIn(s,t);else{if(void 0!==i||!this.schema)throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`);this.set(n,G(this.schema,s,t))}}}deleteIn(e){const[t,...n]=e;if(0===n.length)return this.delete(t);const s=this.get(t,!0);if(b(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){const[n,...s]=e,i=this.get(n,!0);return 0===s.length?!t&&y(i)?i.value:i:b(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every((t=>{if(!m(t))return!1;const n=t.value;return null==n||e&&y(n)&&null==n.value&&!n.commentBefore&&!n.comment&&!n.tag}))}hasIn(e){const[t,...n]=e;if(0===n.length)return this.has(t);const s=this.get(t,!0);return!!b(s)&&s.hasIn(n)}setIn(e,t){const[n,...s]=e;if(0===s.length)this.set(n,t);else{const e=this.get(n,!0);if(b(e))e.setIn(s,t);else{if(void 0!==e||!this.schema)throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`);this.set(n,G(this.schema,s,t))}}}}const X=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function z(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const Z=(e,t,n)=>e.endsWith("\n")?z(n,t):n.includes("\n")?"\n"+z(n,t):(e.endsWith(" ")?"":" ")+n,ee="flow",te="block",ne="quoted";function se(e,t,n="flow",{indentAtStart:s,lineWidth:i=80,minContentWidth:o=20,onFold:r,onOverflow:a}={}){if(!i||i<0)return e;ii-Math.max(2,o)?l.push(0):d=i-s);let p=!1,m=-1,y=-1,g=-1;n===te&&(m=ie(e,m,t.length),-1!==m&&(d=m+c));for(let w;w=e[m+=1];){if(n===ne&&"\\"===w){switch(y=m,e[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}g=m}if("\n"===w)n===te&&(m=ie(e,m,t.length)),d=m+t.length+c,f=void 0;else{if(" "===w&&h&&" "!==h&&"\n"!==h&&"\t"!==h){const t=e[m+1];t&&" "!==t&&"\n"!==t&&"\t"!==t&&(f=m)}if(m>=d)if(f)l.push(f),d=f+c,f=void 0;else if(n===ne){while(" "===h||"\t"===h)h=w,w=e[m+=1],p=!0;const t=m>g+1?m-2:y-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else p=!0}h=w}if(p&&a&&a(),0===l.length)return e;r&&r();let b=e.slice(0,l[0]);for(let w=0;w({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),re=e=>/^(%|---|\.\.\.)/m.test(e);function ae(e,t,n){if(!t||t<0)return!1;const s=t-n,i=e.length;if(i<=s)return!1;for(let o=0,r=0;os)return!0;if(r=o+1,i-r<=s)return!1}return!0}function ce(e,t){const n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;const{implicitKey:s}=t,i=t.options.doubleQuotedMinMultiLineLength,o=t.indent||(re(e)?" ":"");let r="",a=0;for(let c=0,l=n[c];l;l=n[++c])if(" "===l&&"\\"===n[c+1]&&"n"===n[c+2]&&(r+=n.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),"\\"===l)switch(n[c+1]){case"u":{r+=n.slice(a,c);const e=n.substr(c+2,4);switch(e){case"0000":r+="\\0";break;case"0007":r+="\\a";break;case"000b":r+="\\v";break;case"001b":r+="\\e";break;case"0085":r+="\\N";break;case"00a0":r+="\\_";break;case"2028":r+="\\L";break;case"2029":r+="\\P";break;default:"00"===e.substr(0,2)?r+="\\x"+e.substr(2):r+=n.substr(c,6)}c+=5,a=c+1}break;case"n":if(s||'"'===n[c+2]||n.length\n";let f,h;for(h=n.length;h>0;--h){const e=n[h-1];if("\n"!==e&&"\t"!==e&&" "!==e)break}let d=n.substring(h);const p=d.indexOf("\n");-1===p?f="-":n===d||p!==d.length-1?(f="+",o&&o()):f="",d&&(n=n.slice(0,-d.length),"\n"===d[d.length-1]&&(d=d.slice(0,-1)),d=d.replace(fe,`$&${l}`));let m,y=!1,g=-1;for(m=0;m")+(y?w:"")+f;if(e&&(k+=" "+a(e.replace(/ ?[\r\n]+/g," ")),i&&i()),u)return n=n.replace(/\n+/g,`$&${l}`),`${k}\n${l}${b}${n}${d}`;n=n.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`);const v=se(`${b}${n}${d}`,l,te,oe(s,!0));return`${k}\n${l}${v}`}function de(e,t,n,s){const{type:i,value:o}=e,{actualString:r,implicitKey:a,indent:c,indentStep:l,inFlow:u}=t;if(a&&o.includes("\n")||u&&/[[\]{},]/.test(o))return ue(o,t);if(!o||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(o))return a||u||!o.includes("\n")?ue(o,t):he(e,t,n,s);if(!a&&!u&&i!==V.PLAIN&&o.includes("\n"))return he(e,t,n,s);if(re(o)){if(""===c)return t.forceBlockIndent=!0,he(e,t,n,s);if(a&&c===l)return ue(o,t)}const f=o.replace(/\n+/g,`$&\n${c}`);if(r){const e=e=>e.default&&"tag:yaml.org,2002:str"!==e.tag&&e.test?.test(f),{compat:n,tags:s}=t.doc.schema;if(s.some(e)||n?.some(e))return ue(o,t)}return a?f:se(f,c,ee,oe(t,!1))}function pe(e,t,n,s){const{implicitKey:i,inFlow:o}=t,r="string"===typeof e.value?e:Object.assign({},e,{value:String(e.value)});let{type:a}=e;a!==V.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(r.value)&&(a=V.QUOTE_DOUBLE);const c=e=>{switch(e){case V.BLOCK_FOLDED:case V.BLOCK_LITERAL:return i||o?ue(r.value,t):he(r,t,n,s);case V.QUOTE_DOUBLE:return ce(r.value,t);case V.QUOTE_SINGLE:return le(r.value,t);case V.PLAIN:return de(r,t,n,s);default:return null}};let l=c(a);if(null===l){const{defaultKeyType:e,defaultStringType:n}=t.options,s=i&&e||n;if(l=c(s),null===l)throw new Error(`Unsupported default string type ${s}`)}return l}function me(e,t){const n=Object.assign({blockQuote:!0,commentString:X,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let s;switch(n.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:"number"===typeof n.indent?" ".repeat(n.indent):" ",inFlow:s,options:n}}function ye(e,t){if(t.tag){const n=e.filter((e=>e.tag===t.tag));if(n.length>0)return n.find((e=>e.format===t.format))??n[0]}let n,s;if(y(t)){s=t.value;const i=e.filter((e=>e.identify?.(s)));n=i.find((e=>e.format===t.format))??i.find((e=>!e.format))}else s=t,n=e.find((e=>e.nodeClass&&s instanceof e.nodeClass));if(!n){const e=s?.constructor?.name??typeof s;throw new Error(`Tag not resolved for ${e} value`)}return n}function ge(e,t,{anchors:n,doc:s}){if(!s.directives)return"";const i=[],o=(y(e)||b(e))&&e.anchor;o&&B(o)&&(n.add(o),i.push(`&${o}`));const r=e.tag?e.tag:t.default?null:t.tag;return r&&i.push(s.directives.tagString(r)),i.join(" ")}function be(e,t,n,s){if(m(e))return e.toString(t,n,s);if(h(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i;const o=w(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i||(i=ye(t.doc.schema.tags,o));const r=ge(o,i,t);r.length>0&&(t.indentAtStart=(t.indentAtStart??0)+r.length+1);const a="function"===typeof i.stringify?i.stringify(o,t,n,s):y(o)?pe(o,t,n,s):o.toString(t,n,s);return r?y(o)||"{"===a[0]||"["===a[0]?`${r} ${a}`:`${r}\n${t.indent}${a}`:a}function we({key:e,value:t},n,s,i){const{allNullValues:o,doc:r,indent:a,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:f}}=n;let h=w(e)&&e.comment||null;if(f){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(b(e)||!w(e)&&"object"===typeof e){const e="With simple keys, collection cannot be used as a key value";throw new Error(e)}}let d=!f&&(!e||h&&null==t&&!n.inFlow||b(e)||(y(e)?e.type===V.BLOCK_FOLDED||e.type===V.BLOCK_LITERAL:"object"===typeof e));n=Object.assign({},n,{allNullValues:!1,implicitKey:!d&&(f||!o),indent:a+c});let p,m,k,v=!1,S=!1,E=be(e,n,(()=>v=!0),(()=>S=!0));if(!d&&!n.inFlow&&E.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");d=!0}if(n.inFlow){if(o||null==t)return v&&s&&s(),""===E?"?":d?`? ${E}`:E}else if(o&&!f||null==t&&d)return E=`? ${E}`,h&&!v?E+=Z(E,n.indent,l(h)):S&&i&&i(),E;v&&(h=null),d?(h&&(E+=Z(E,n.indent,l(h))),E=`? ${E}\n${a}:`):(E=`${E}:`,h&&(E+=Z(E,n.indent,l(h)))),w(t)?(p=!!t.spaceBefore,m=t.commentBefore,k=t.comment):(p=!1,m=null,k=null,t&&"object"===typeof t&&(t=r.createNode(t))),n.implicitKey=!1,d||h||!y(t)||(n.indentAtStart=E.length+1),S=!1,u||!(c.length>=2)||n.inFlow||d||!g(t)||t.flow||t.tag||t.anchor||(n.indent=n.indent.substring(2));let N=!1;const O=be(t,n,(()=>N=!0),(()=>S=!0));let A=" ";if(h||p||m){if(A=p?"\n":"",m){const e=l(m);A+=`\n${z(e,n.indent)}`}""!==O||n.inFlow?A+=`\n${n.indent}`:"\n"===A&&(A="\n\n")}else if(!d&&b(t)){const e=O[0],s=O.indexOf("\n"),i=-1!==s,o=n.inFlow??t.flow??0===t.items.length;if(i||!o){let t=!1;if(i&&("&"===e||"!"===e)){let n=O.indexOf(" ");"&"===e&&-1!==n&&ne===Ee||y(e)&&e.value===Ee&&(!e.type||e.type===V.PLAIN);function Ae(e,t,n){const s=e&&h(n)?n.resolve(e.doc):n;if(!p(s))throw new Error("Merge sources must be maps or map aliases");const i=s.toJSON(null,e,Map);for(const[o,r]of i)t instanceof Map?t.has(o)||t.set(o,r):t instanceof Set?t.add(o):Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(t,o,{value:r,writable:!0,enumerable:!0,configurable:!0});return t}function Ie(e,t,n){if(null===t)return"";if("object"!==typeof t)return String(t);if(w(e)&&n?.doc){const t=me(n.doc,{});t.anchors=new Set;for(const e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;const s=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(s);e.length>40&&(e=e.substring(0,36)+'..."'),Se(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return s}return JSON.stringify(t)}function Te(e,t,n){const s=W(e,void 0,n),i=W(t,void 0,n);return new Le(s,i)}class Le{constructor(e,t=null){Object.defineProperty(this,f,{value:c}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return w(t)&&(t=t.clone(e)),w(n)&&(n=n.clone(e)),new Le(t,n)}toJSON(e,t){const n=t?.mapAsMap?new Map:{};return Ne(t,n,this)}toString(e,t,n){return e?.doc?we(this,e,t,n):JSON.stringify(this)}}function xe(e,t,n){const s=t.inFlow??e.flow,i=s?Ce:$e;return i(e,t,n)}function $e({comment:e,items:t},n,{blockItemPrefix:s,flowChars:i,itemIndent:o,onChompKeep:r,onComment:a}){const{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:o,type:null});let f=!1;const h=[];for(let p=0;pi=null),(()=>f=!0));i&&(r+=Z(r,o,l(i))),f&&i&&(f=!1),h.push(s+r)}let d;if(0===h.length)d=i.start+i.end;else{d=h[0];for(let e=1;ei=null));pu||o.includes("\n"))&&(l=!0),f.push(o),u=f.length}const{start:h,end:d}=n;if(0===f.length)return h+d;if(!l){const e=f.reduce(((e,t)=>e+t.length+2),2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=h;for(const t of f)e+=t?`\n${o}${i}${t}`:"\n";return`${e}\n${i}${d}`}return`${h}${r}${f.join(" ")}${r}${d}`}function _e({indent:e,options:{commentString:t}},n,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){const i=z(t(s),e);n.push(i.trimStart())}}function Be(e,t){const n=y(t)?t.value:t;for(const s of e)if(m(s)){if(s.key===t||s.key===n)return s;if(y(s.key)&&s.key.value===n)return s}}class je extends H{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(a,e),this.items=[]}static from(e,t,n){const{keepUndefined:s,replacer:i}=n,o=new this(e),r=(e,r)=>{if("function"===typeof i)r=i.call(t,e,r);else if(Array.isArray(i)&&!i.includes(e))return;(void 0!==r||s)&&o.items.push(Te(e,r,n))};if(t instanceof Map)for(const[a,c]of t)r(a,c);else if(t&&"object"===typeof t)for(const a of Object.keys(t))r(a,t[a]);return"function"===typeof e.sortMapEntries&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;n=m(e)?e:e&&"object"===typeof e&&"key"in e?new Le(e.key,e.value):new Le(e,e?.value);const s=Be(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);y(s.value)&&F(n.value)?s.value.value=n.value:s.value=n.value}else if(i){const e=this.items.findIndex((e=>i(n,e)<0));-1===e?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){const t=Be(this.items,e);if(!t)return!1;const n=this.items.splice(this.items.indexOf(t),1);return n.length>0}get(e,t){const n=Be(this.items,e),s=n?.value;return(!t&&y(s)?s.value:s)??void 0}has(e){return!!Be(this.items,e)}set(e,t){this.add(new Le(e,t),!0)}toJSON(e,t,n){const s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(const i of this.items)Ne(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(const s of this.items)if(!m(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),xe(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}}const Me={collection:"map",default:!0,nodeClass:je,tag:"tag:yaml.org,2002:map",resolve(e,t){return p(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,n)=>je.from(e,t,n)};class De extends H{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(u,e),this.items=[]}add(e){this.items.push(e)}delete(e){const t=Ke(e);if("number"!==typeof t)return!1;const n=this.items.splice(t,1);return n.length>0}get(e,t){const n=Ke(e);if("number"!==typeof n)return;const s=this.items[n];return!t&&y(s)?s.value:s}has(e){const t=Ke(e);return"number"===typeof t&&t=0?t:null}const qe={collection:"seq",default:!0,nodeClass:De,tag:"tag:yaml.org,2002:seq",resolve(e,t){return g(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>De.from(e,t,n)},Pe={identify:e=>"string"===typeof e,default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,n,s){return t=Object.assign({actualString:!0},t),pe(e,t,n,s)}},Ue={identify:e=>null==e,createNode:()=>new V(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new V(null),stringify:({source:e},t)=>"string"===typeof e&&Ue.test.test(e)?e:t.options.nullStr},Re={identify:e=>"boolean"===typeof e,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new V("t"===e[0]||"T"===e[0]),stringify({source:e,value:t},n){if(e&&Re.test.test(e)){const n="t"===e[0]||"T"===e[0];if(t===n)return e}return t?n.options.trueStr:n.options.falseStr}};function Fe({format:e,minFractionDigits:t,tag:n,value:s}){if("bigint"===typeof s)return String(s);const i="number"===typeof s?s:Number(s);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let o=JSON.stringify(s);if(!e&&t&&(!n||"tag:yaml.org,2002:float"===n)&&/^\d/.test(o)){let e=o.indexOf(".");e<0&&(e=o.length,o+=".");let n=t-(o.length-e-1);while(n-- >0)o+="0"}return o}const Ve={identify:e=>"number"===typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>"nan"===e.slice(-3).toLowerCase()?NaN:"-"===e[0]?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Fe},Je={identify:e=>"number"===typeof e,default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Fe(e)}},Ye={identify:e=>"number"===typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new V(parseFloat(e)),n=e.indexOf(".");return-1!==n&&"0"===e[e.length-1]&&(t.minFractionDigits=e.length-n-1),t},stringify:Fe},We=e=>"bigint"===typeof e||Number.isInteger(e),Ge=(e,t,n,{intAsBigInt:s})=>s?BigInt(e):parseInt(e.substring(t),n);function Qe(e,t,n){const{value:s}=e;return We(s)&&s>=0?n+s.toString(t):Fe(e)}const He={identify:e=>We(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>Ge(e,2,8,n),stringify:e=>Qe(e,8,"0o")},Xe={identify:We,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>Ge(e,0,10,n),stringify:Fe},ze={identify:e=>We(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>Ge(e,2,16,n),stringify:e=>Qe(e,16,"0x")},Ze=[Me,qe,Pe,Ue,Re,He,Xe,ze,Ve,Je,Ye];function et(e){return"bigint"===typeof e||Number.isInteger(e)}const tt=({value:e})=>JSON.stringify(e),nt=[{identify:e=>"string"===typeof e,default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:tt},{identify:e=>null==e,createNode:()=>new V(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:tt},{identify:e=>"boolean"===typeof e,default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:e=>"true"===e,stringify:tt},{identify:et,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>et(e)?e.toString():JSON.stringify(e)},{identify:e=>"number"===typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:tt}],st={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},it=[Me,qe].concat(nt,st);var ot=n(33486)["hp"];const rt={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if("function"===typeof ot)return ot.from(e,"base64");if("function"===typeof atob){const t=atob(e.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let e=0;e1&&t("Each pair must have its own sequence indicator");const e=s.items[0]||new Le(new V(null));if(s.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${s.commentBefore}\n${e.key.commentBefore}`:s.commentBefore),s.comment){const t=e.value??e.key;t.comment=t.comment?`${s.comment}\n${t.comment}`:s.comment}s=e}e.items[n]=m(s)?s:new Le(s)}}else t("Expected a sequence for this tag");return e}function ct(e,t,n){const{replacer:s}=n,i=new De(e);i.tag="tag:yaml.org,2002:pairs";let o=0;if(t&&Symbol.iterator in Object(t))for(let r of t){let e,a;if("function"===typeof s&&(r=s.call(t,String(o++),r)),Array.isArray(r)){if(2!==r.length)throw new TypeError(`Expected [key, value] tuple: ${r}`);e=r[0],a=r[1]}else if(r&&r instanceof Object){const t=Object.keys(r);if(1!==t.length)throw new TypeError(`Expected tuple with one key, not ${t.length} keys`);e=t[0],a=r[e]}else e=r;i.items.push(Te(e,a,n))}return i}const lt={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:at,createNode:ct};class ut extends De{constructor(){super(),this.add=je.prototype.add.bind(this),this.delete=je.prototype.delete.bind(this),this.get=je.prototype.get.bind(this),this.has=je.prototype.has.bind(this),this.set=je.prototype.set.bind(this),this.tag=ut.tag}toJSON(e,t){if(!t)return super.toJSON(e);const n=new Map;t?.onCreate&&t.onCreate(n);for(const s of this.items){let e,i;if(m(s)?(e=q(s.key,"",t),i=q(s.value,e,t)):e=q(s,"",t),n.has(e))throw new Error("Ordered maps must not include duplicate keys");n.set(e,i)}return n}static from(e,t,n){const s=ct(e,t,n),i=new this;return i.items=s.items,i}}ut.tag="tag:yaml.org,2002:omap";const ft={collection:"seq",identify:e=>e instanceof Map,nodeClass:ut,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=at(e,t),s=[];for(const{key:i}of n.items)y(i)&&(s.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):s.push(i.value));return Object.assign(new ut,n)},createNode:(e,t,n)=>ut.from(e,t,n)};function ht({value:e,source:t},n){const s=e?dt:pt;return t&&s.test.test(t)?t:e?n.options.trueStr:n.options.falseStr}const dt={identify:e=>!0===e,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new V(!0),stringify:ht},pt={identify:e=>!1===e,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new V(!1),stringify:ht},mt={identify:e=>"number"===typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>"nan"===e.slice(-3).toLowerCase()?NaN:"-"===e[0]?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Fe},yt={identify:e=>"number"===typeof e,default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Fe(e)}},gt={identify:e=>"number"===typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new V(parseFloat(e.replace(/_/g,""))),n=e.indexOf(".");if(-1!==n){const s=e.substring(n+1).replace(/_/g,"");"0"===s[s.length-1]&&(t.minFractionDigits=s.length)}return t},stringify:Fe},bt=e=>"bigint"===typeof e||Number.isInteger(e);function wt(e,t,n,{intAsBigInt:s}){const i=e[0];if("-"!==i&&"+"!==i||(t+=1),e=e.substring(t).replace(/_/g,""),s){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const t=BigInt(e);return"-"===i?BigInt(-1)*t:t}const o=parseInt(e,n);return"-"===i?-1*o:o}function kt(e,t,n){const{value:s}=e;if(bt(s)){const e=s.toString(t);return s<0?"-"+n+e.substr(1):n+e}return Fe(e)}const vt={identify:bt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>wt(e,2,2,n),stringify:e=>kt(e,2,"0b")},St={identify:bt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>wt(e,1,8,n),stringify:e=>kt(e,8,"0")},Et={identify:bt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>wt(e,0,10,n),stringify:Fe},Nt={identify:bt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>wt(e,2,16,n),stringify:e=>kt(e,16,"0x")};class Ot extends je{constructor(e){super(e),this.tag=Ot.tag}add(e){let t;t=m(e)?e:e&&"object"===typeof e&&"key"in e&&"value"in e&&null===e.value?new Le(e.key,null):new Le(e,null);const n=Be(this.items,t.key);n||this.items.push(t)}get(e,t){const n=Be(this.items,e);return!t&&m(n)?y(n.key)?n.key.value:n.key:n}set(e,t){if("boolean"!==typeof t)throw new Error("Expected boolean value for set(key, value) in a YAML set, not "+typeof t);const n=Be(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Le(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){const{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)"function"===typeof s&&(o=s.call(t,o,o)),i.items.push(Te(o,null,n));return i}}Ot.tag="tag:yaml.org,2002:set";const At={collection:"map",identify:e=>e instanceof Set,nodeClass:Ot,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>Ot.from(e,t,n),resolve(e,t){if(p(e)){if(e.hasAllNullValues(!0))return Object.assign(new Ot,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function It(e,t){const n=e[0],s="-"===n||"+"===n?e.substring(1):e,i=e=>t?BigInt(e):Number(e),o=s.replace(/_/g,"").split(":").reduce(((e,t)=>e*i(60)+i(t)),i(0));return"-"===n?i(-1)*o:o}function Tt(e){let{value:t}=e,n=e=>e;if("bigint"===typeof t)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return Fe(e);let s="";t<0&&(s="-",t*=n(-1));const i=n(60),o=[t%i];return t<60?o.unshift(0):(t=(t-o[0])/i,o.unshift(t%i),t>=60&&(t=(t-o[0])/i,o.unshift(t))),s+o.map((e=>String(e).padStart(2,"0"))).join(":").replace(/000000\d*$/,"")}const Lt={identify:e=>"bigint"===typeof e||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>It(e,n),stringify:Tt},xt={identify:e=>"number"===typeof e,default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>It(e,!1),stringify:Tt},$t={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match($t.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,s,i,o,r,a]=t.map(Number),c=t[7]?Number((t[7]+"00").substr(1,3)):0;let l=Date.UTC(n,s-1,i,o||0,r||0,a||0,c);const u=t[8];if(u&&"Z"!==u){let e=It(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")},Ct=[Me,qe,Pe,Ue,dt,pt,vt,St,Et,Nt,mt,yt,gt,rt,ft,lt,At,Lt,xt,$t],_t=new Map([["core",Ze],["failsafe",[Me,qe,Pe]],["json",it],["yaml11",Ct],["yaml-1.1",Ct]]),Bt={binary:rt,bool:Re,float:Ye,floatExp:Je,floatNaN:Ve,floatTime:xt,int:Xe,intHex:ze,intOct:He,intTime:Lt,map:Me,null:Ue,omap:ft,pairs:lt,seq:qe,set:At,timestamp:$t},jt={"tag:yaml.org,2002:binary":rt,"tag:yaml.org,2002:omap":ft,"tag:yaml.org,2002:pairs":lt,"tag:yaml.org,2002:set":At,"tag:yaml.org,2002:timestamp":$t};function Mt(e,t){let n=_t.get(t);if(!n){if(!Array.isArray(e)){const e=Array.from(_t.keys()).filter((e=>"yaml11"!==e)).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}n=[]}if(Array.isArray(e))for(const s of e)n=n.concat(s);else"function"===typeof e&&(n=e(n.slice()));return n.map((e=>{if("string"!==typeof e)return e;const t=Bt[e];if(t)return t;const n=Object.keys(Bt).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown custom tag "${e}"; use one of ${n}`)}))}const Dt=(e,t)=>e.keyt.key?1:0;class Kt{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:r}){this.compat=Array.isArray(e)?Mt(e,"compat"):e?Mt(null,e):null,this.merge=!!n,this.name="string"===typeof i&&i||"core",this.knownTags=s?jt:{},this.tags=Mt(t,this.name),this.toStringOptions=r??null,Object.defineProperty(this,a,{value:Me}),Object.defineProperty(this,l,{value:Pe}),Object.defineProperty(this,u,{value:qe}),this.sortMapEntries="function"===typeof o?o:!0===o?Dt:null}clone(){const e=Object.create(Kt.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}}function qt(e,t){const n=[];let s=!0===t.directives;if(!1!==t.directives&&e.directives){const t=e.directives.toString(e);t?(n.push(t),s=!0):e.directives.docStart&&(s=!0)}s&&n.push("---");const i=me(e,t),{commentString:o}=i.options;if(e.commentBefore){1!==n.length&&n.unshift("");const t=o(e.commentBefore);n.unshift(z(t,""))}let r=!1,a=null;if(e.contents){if(w(e.contents)){if(e.contents.spaceBefore&&s&&n.push(""),e.contents.commentBefore){const t=o(e.contents.commentBefore);n.push(z(t,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}const t=a?void 0:()=>r=!0;let c=be(e.contents,i,(()=>a=null),t);a&&(c+=Z(c,"",o(a))),"|"!==c[0]&&">"!==c[0]||"---"!==n[n.length-1]?n.push(c):n[n.length-1]=`--- ${c}`}else n.push(be(e.contents,i));if(e.directives?.docEnd)if(e.comment){const t=o(e.comment);t.includes("\n")?(n.push("..."),n.push(z(t,""))):n.push(`... ${t}`)}else n.push("...");else{let t=e.comment;t&&r&&(t=t.replace(/^\n+/,"")),t&&(r&&!a||""===n[n.length-1]||n.push(""),n.push(z(o(t),"")))}return n.join("\n")+"\n"}class Pt{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,f,{value:r});let s=null;"function"===typeof t||Array.isArray(t)?s=t:void 0===n&&t&&(n=t,t=void 0);const i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new _({version:o}),this.setSchema(o,n),this.contents=void 0===e?null:this.createNode(e,s,n)}clone(){const e=Object.create(Pt.prototype,{[f]:{value:r}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=w(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Ut(this.contents)&&this.contents.add(e)}addIn(e,t){Ut(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){const n=j(this);e.anchor=!t||n.has(t)?M(t||"a",n):t}return new U(e.anchor)}createNode(e,t,n){let s;if("function"===typeof t)e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){const e=e=>"number"===typeof e||e instanceof String||e instanceof Number,n=t.filter(e).map(String);n.length>0&&(t=t.concat(n)),s=t}else void 0===n&&t&&(n=t,t=void 0);const{aliasDuplicateObjects:i,anchorPrefix:o,flow:r,keepUndefined:a,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:f,sourceObjects:h}=D(this,o||"a"),d={aliasDuplicateObjects:i??!0,keepUndefined:a??!1,onAnchor:u,onTagObj:c,replacer:s,schema:this.schema,sourceObjects:h},p=W(e,l,d);return r&&b(p)&&(p.flow=!0),f(),p}createPair(e,t,n={}){const s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new Le(s,i)}delete(e){return!!Ut(this.contents)&&this.contents.delete(e)}deleteIn(e){return Q(e)?null!=this.contents&&(this.contents=null,!0):!!Ut(this.contents)&&this.contents.deleteIn(e)}get(e,t){return b(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Q(e)?!t&&y(this.contents)?this.contents.value:this.contents:b(this.contents)?this.contents.getIn(e,t):void 0}has(e){return!!b(this.contents)&&this.contents.has(e)}hasIn(e){return Q(e)?void 0!==this.contents:!!b(this.contents)&&this.contents.hasIn(e)}set(e,t){null==this.contents?this.contents=G(this.schema,[e],t):Ut(this.contents)&&this.contents.set(e,t)}setIn(e,t){Q(e)?this.contents=t:null==this.contents?this.contents=G(this.schema,Array.from(e),t):Ut(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){let n;switch("number"===typeof e&&(e=String(e)),e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new _({version:"1.1"}),n={merge:!0,resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new _({version:e}),n={merge:!1,resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{const t=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else{if(!n)throw new Error("With a null YAML version, the { schema: Schema } option is required");this.schema=new Kt(Object.assign(n,t))}}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){const r={anchors:new Map,doc:this,keep:!e,mapAsMap:!0===n,mapKeyWarned:!1,maxAliasCount:"number"===typeof s?s:100},a=q(this.contents,t??"",r);if("function"===typeof i)for(const{count:c,res:l}of r.anchors.values())i(l,c);return"function"===typeof o?K(o,{"":a},"",a):a}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){const t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return qt(this,e)}}function Ut(e){if(b(e))return!0;throw new Error("Expected a YAML collection as document contents")}class Rt extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}}class Ft extends Rt{constructor(e,t,n){super("YAMLParseError",e,t,n)}}class Vt extends Rt{constructor(e,t,n){super("YAMLWarning",e,t,n)}}const Jt=(e,t)=>n=>{if(-1===n.pos[0])return;n.linePos=n.pos.map((e=>t.linePos(e)));const{line:s,col:i}=n.linePos[0];n.message+=` at line ${s}, column ${i}`;let o=i-1,r=e.substring(t.lineStarts[s-1],t.lineStarts[s]).replace(/[\n\r]+$/,"");if(o>=60&&r.length>80){const e=Math.min(o-39,r.length-79);r="…"+r.substring(e),o-=e-1}if(r.length>80&&(r=r.substring(0,79)+"…"),s>1&&/^ *$/.test(r.substring(0,o))){let n=e.substring(t.lineStarts[s-2],t.lineStarts[s-1]);n.length>80&&(n=n.substring(0,79)+"…\n"),r=n+r}if(/[^ ]/.test(r)){let e=1;const t=n.linePos[1];t&&t.line===s&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-o)));const a=" ".repeat(o)+"^".repeat(e);n.message+=`:\n\n${r}\n${a}\n`}};function Yt(e,{flow:t,indicator:n,next:s,offset:i,onError:o,parentIndent:r,startOnNewline:a}){let c=!1,l=a,u=a,f="",h="",d=!1,p=!1,m=null,y=null,g=null,b=null,w=null,k=null,v=null;for(const N of e)switch(p&&("space"!==N.type&&"newline"!==N.type&&"comma"!==N.type&&o(N.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),p=!1),m&&(l&&"comment"!==N.type&&"newline"!==N.type&&o(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),N.type){case"space":t||"doc-start"===n&&"flow-collection"===s?.type||!N.source.includes("\t")||(m=N),u=!0;break;case"comment":{u||o(N,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const e=N.source.substring(1)||" ";f?f+=h+e:f=e,h="",l=!1;break}case"newline":l?f?f+=N.source:c=!0:h+=N.source,l=!0,d=!0,(y||g)&&(b=N),u=!0;break;case"anchor":y&&o(N,"MULTIPLE_ANCHORS","A node can have at most one anchor"),N.source.endsWith(":")&&o(N.offset+N.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),y=N,null===v&&(v=N.offset),l=!1,u=!1,p=!0;break;case"tag":g&&o(N,"MULTIPLE_TAGS","A node can have at most one tag"),g=N,null===v&&(v=N.offset),l=!1,u=!1,p=!0;break;case n:(y||g)&&o(N,"BAD_PROP_ORDER",`Anchors and tags must be after the ${N.source} indicator`),k&&o(N,"UNEXPECTED_TOKEN",`Unexpected ${N.source} in ${t??"collection"}`),k=N,l="seq-item-ind"===n||"explicit-key-ind"===n,u=!1;break;case"comma":if(t){w&&o(N,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),w=N,l=!1,u=!1;break}default:o(N,"UNEXPECTED_TOKEN",`Unexpected ${N.type} token`),l=!1,u=!1}const S=e[e.length-1],E=S?S.offset+S.source.length:i;return p&&s&&"space"!==s.type&&"newline"!==s.type&&"comma"!==s.type&&("scalar"!==s.type||""!==s.source)&&o(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=r||"block-map"===s?.type||"block-seq"===s?.type)&&o(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:w,found:k,spaceBefore:c,comment:f,hasNewline:d,anchor:y,tag:g,newlineAfterProp:b,end:E,start:v??E}}function Wt(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes("\n"))return!0;if(e.end)for(const t of e.end)if("newline"===t.type)return!0;return!1;case"flow-collection":for(const t of e.items){for(const e of t.start)if("newline"===e.type)return!0;if(t.sep)for(const e of t.sep)if("newline"===e.type)return!0;if(Wt(t.key)||Wt(t.value))return!0}return!1;default:return!0}}function Gt(e,t,n){if("flow-collection"===t?.type){const s=t.end[0];if(s.indent===e&&("]"===s.source||"}"===s.source)&&Wt(t)){const e="Flow end indicator should be more indented than parent";n(s,"BAD_INDENT",e,!0)}}}function Qt(e,t,n){const{uniqueKeys:s}=e.options;if(!1===s)return!1;const i="function"===typeof s?s:(t,n)=>t===n||y(t)&&y(n)&&t.value===n.value&&!("<<"===t.value&&e.schema.merge);return t.some((e=>i(e.key,n)))}const Ht="All mapping items must start at the same column";function Xt({composeNode:e,composeEmptyNode:t},n,s,i,o){const r=o?.nodeClass??je,a=new r(n.schema);n.atRoot&&(n.atRoot=!1);let c=s.offset,l=null;for(const u of s.items){const{start:o,key:r,sep:f,value:h}=u,d=Yt(o,{indicator:"explicit-key-ind",next:r??f?.[0],offset:c,onError:i,parentIndent:s.indent,startOnNewline:!0}),p=!d.found;if(p){if(r&&("block-seq"===r.type?i(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in r&&r.indent!==s.indent&&i(c,"BAD_INDENT",Ht)),!d.anchor&&!d.tag&&!f){l=d.end,d.comment&&(a.comment?a.comment+="\n"+d.comment:a.comment=d.comment);continue}(d.newlineAfterProp||Wt(r))&&i(r??o[o.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else d.found?.indent!==s.indent&&i(c,"BAD_INDENT",Ht);const m=d.end,y=r?e(n,r,d,i):t(n,m,o,null,d,i);n.schema.compat&&Gt(s.indent,r,i),Qt(n,a.items,y)&&i(m,"DUPLICATE_KEY","Map keys must be unique");const g=Yt(f??[],{indicator:"map-value-ind",next:h,offset:y.range[2],onError:i,parentIndent:s.indent,startOnNewline:!r||"block-scalar"===r.type});if(c=g.end,g.found){p&&("block-map"!==h?.type||g.hasNewline||i(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&d.starte&&("block-map"===e.type||"block-seq"===e.type);function nn({composeNode:e,composeEmptyNode:t},n,s,i,o){const r="{"===s.start.source,a=r?"flow map":"flow sequence",c=o?.nodeClass??(r?je:De),l=new c(n.schema);l.flow=!0;const u=n.atRoot;u&&(n.atRoot=!1);let f=s.offset+s.start.source.length;for(let g=0;g0){const e=Zt(p,y,n.options.strict,i);e.comment&&(l.comment?l.comment+="\n"+e.comment:l.comment=e.comment),l.range=[s.offset,y,e.offset]}else l.range=[s.offset,y,y];return l}function sn(e,t,n,s,i,o){const r="block-map"===n.type?Xt(e,t,n,s,o):"block-seq"===n.type?zt(e,t,n,s,o):nn(e,t,n,s,o),a=r.constructor;return"!"===i||i===a.tagName?(r.tag=a.tagName,r):(i&&(r.tag=i),r)}function on(e,t,n,s,i){const o=s.tag,r=o?t.directives.tagName(o.source,(e=>i(o,"TAG_RESOLVE_FAILED",e))):null;if("block-seq"===n.type){const{anchor:e,newlineAfterProp:t}=s,n=e&&o?e.offset>o.offset?e:o:e??o;if(n&&(!t||t.offsete.tag===r&&e.collection===a));if(!c){const s=t.schema.knownTags[r];if(!s||s.collection!==a)return s?.collection?i(o,"BAD_COLLECTION_TYPE",`${s.tag} used for ${a} collection, but expects ${s.collection}`,!0):i(o,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,!0),sn(e,t,n,i,r);t.schema.tags.push(Object.assign({},s,{default:!1})),c=s}const l=sn(e,t,n,i,r,c),u=c.resolve?.(l,(e=>i(o,"TAG_RESOLVE_FAILED",e)),t.options)??l,f=w(u)?u:new V(u);return f.range=l.range,f.tag=r,c?.format&&(f.format=c.format),f}function rn(e,t,n){const s=t.offset,i=an(t,e.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[s,s,s]};const o=">"===i.mode?V.BLOCK_FOLDED:V.BLOCK_LITERAL,r=t.source?cn(t.source):[];let a=r.length;for(let m=r.length-1;m>=0;--m){const e=r[m][1];if(""!==e&&"\r"!==e)break;a=m}if(0===a){const e="+"===i.chomp&&r.length>0?"\n".repeat(Math.max(1,r.length-1)):"";let n=s+i.length;return t.source&&(n+=t.source.length),{value:e,type:o,comment:i.comment,range:[s,n,n]}}let c=t.indent+i.indent,l=t.offset+i.length,u=0;for(let m=0;mc&&(c=t.length),l+=t.length+s.length+1}for(let m=r.length-1;m>=a;--m)r[m][0].length>c&&(a=m+1);let f="",h="",d=!1;for(let m=0;mc||"\t"===t[0]?(" "===h?h="\n":d||"\n"!==h||(h="\n\n"),f+=h+e.slice(c)+t,h="\n",d=!0):""===t?"\n"===h?f+="\n":h="\n":(f+=h+t,h=" ",d=!1)}switch(i.chomp){case"-":break;case"+":for(let e=a;en(s+e,t,i);switch(i){case"scalar":a=V.PLAIN,c=un(o,l);break;case"single-quoted-scalar":a=V.QUOTE_SINGLE,c=fn(o,l);break;case"double-quoted-scalar":a=V.QUOTE_DOUBLE,c=dn(o,l);break;default:return n(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[s,s+o.length,s+o.length]}}const u=s+o.length,f=Zt(r,u,t,n);return{value:c,type:a,comment:f.comment,range:[s,u,f.offset]}}function un(e,t){let n="";switch(e[0]){case"\t":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":n=`block scalar indicator ${e[0]}`;break;case"@":case"`":n=`reserved character ${e[0]}`;break}return n&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),hn(e)}function fn(e,t){return"'"===e[e.length-1]&&1!==e.length||t(e.length,"MISSING_CHAR","Missing closing 'quote"),hn(e.slice(1,-1)).replace(/''/g,"'")}function hn(e){let t,n;try{t=new RegExp("(.*?)(?t?e.slice(t,s+1):i)}else n+=i}return'"'===e[e.length-1]&&1!==e.length||t(e.length,"MISSING_CHAR",'Missing closing "quote'),n}function pn(e,t){let n="",s=e[t+1];while(" "===s||"\t"===s||"\n"===s||"\r"===s){if("\r"===s&&"\n"!==e[t+2])break;"\n"===s&&(n+="\n"),t+=1,s=e[t+1]}return n||(n=" "),{fold:n,offset:t}}const mn={0:"\0",a:"",b:"\b",e:"",f:"\f",n:"\n",r:"\r",t:"\t",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function yn(e,t,n,s){const i=e.substr(t,n),o=i.length===n&&/^[0-9a-fA-F]+$/.test(i),r=o?parseInt(i,16):NaN;if(isNaN(r)){const i=e.substr(t-2,n+2);return s(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${i}`),i}return String.fromCodePoint(r)}function gn(e,t,n,s){const{value:i,type:o,comment:r,range:a}="block-scalar"===t.type?rn(e,t,s):ln(t,e.options.strict,s),c=n?e.directives.tagName(n.source,(e=>s(n,"TAG_RESOLVE_FAILED",e))):null,u=n&&c?bn(e.schema,i,c,n,s):"scalar"===t.type?wn(e,i,t,s):e.schema[l];let f;try{const o=u.resolve(i,(e=>s(n??t,"TAG_RESOLVE_FAILED",e)),e.options);f=y(o)?o:new V(o)}catch(h){const e=h instanceof Error?h.message:String(h);s(n??t,"TAG_RESOLVE_FAILED",e),f=new V(i)}return f.range=a,f.source=i,o&&(f.type=o),c&&(f.tag=c),u.format&&(f.format=u.format),r&&(f.comment=r),f}function bn(e,t,n,s,i){if("!"===n)return e[l];const o=[];for(const a of e.tags)if(!a.collection&&a.tag===n){if(!a.default||!a.test)return a;o.push(a)}for(const a of o)if(a.test?.test(t))return a;const r=e.knownTags[n];return r&&!r.collection?(e.tags.push(Object.assign({},r,{default:!1,test:void 0})),r):(i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,"tag:yaml.org,2002:str"!==n),e[l])}function wn({directives:e,schema:t},n,s,i){const o=t.tags.find((e=>e.default&&e.test?.test(n)))||t[l];if(t.compat){const r=t.compat.find((e=>e.default&&e.test?.test(n)))??t[l];if(o.tag!==r.tag){const t=e.tagString(o.tag),n=e.tagString(r.tag),a=`Value may be parsed as either ${t} or ${n}`;i(s,"TAG_RESOLVE_FAILED",a,!0)}}return o}function kn(e,t,n){if(t){null===n&&(n=t.length);for(let s=n-1;s>=0;--s){let n=t[s];switch(n.type){case"space":case"comment":case"newline":e-=n.source.length;continue}n=t[++s];while("space"===n?.type)e+=n.source.length,n=t[++s];break}}return e}const vn={composeNode:Sn,composeEmptyNode:En};function Sn(e,t,n,s){const{spaceBefore:i,comment:o,anchor:r,tag:a}=n;let c,l=!0;switch(t.type){case"alias":c=Nn(e,t,s),(r||a)&&s(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=gn(e,t,a,s),r&&(c.anchor=r.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":c=on(vn,e,t,n,s),r&&(c.anchor=r.source.substring(1));break;default:{const i="error"===t.type?t.message:`Unsupported token (type: ${t.type})`;s(t,"UNEXPECTED_TOKEN",i),c=En(e,t.offset,void 0,null,n,s),l=!1}}return r&&""===c.anchor&&s(r,"BAD_ALIAS","Anchor cannot be an empty string"),i&&(c.spaceBefore=!0),o&&("scalar"===t.type&&""===t.source?c.comment=o:c.commentBefore=o),e.options.keepSourceTokens&&l&&(c.srcToken=t),c}function En(e,t,n,s,{spaceBefore:i,comment:o,anchor:r,tag:a,end:c},l){const u={type:"scalar",offset:kn(t,n,s),indent:-1,source:""},f=gn(e,u,a,l);return r&&(f.anchor=r.source.substring(1),""===f.anchor&&l(r,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(f.spaceBefore=!0),o&&(f.comment=o,f.range[2]=c),f}function Nn({options:e},{offset:t,source:n,end:s},i){const o=new U(n.substring(1));""===o.source&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),o.source.endsWith(":")&&i(t+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const r=t+n.length,a=Zt(s,r,e.strict,i);return o.range=[t,r,a.offset],a.comment&&(o.comment=a.comment),o}function On(e,t,{offset:n,start:s,value:i,end:o},r){const a=Object.assign({_directives:t},e),c=new Pt(void 0,a),l={atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},u=Yt(s,{indicator:"doc-start",next:i??o?.[0],offset:n,onError:r,parentIndent:0,startOnNewline:!0});u.found&&(c.directives.docStart=!0,!i||"block-map"!==i.type&&"block-seq"!==i.type||u.hasNewline||r(u.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=i?Sn(l,i,u,r):En(l,u.end,s,null,u,r);const f=c.contents.range[2],h=Zt(o,f,!1,r);return h.comment&&(c.comment=h.comment),c.range=[n,f,h.offset],c}function An(e){if("number"===typeof e)return[e,e+1];if(Array.isArray(e))return 2===e.length?e:[e[0],e[1]];const{offset:t,source:n}=e;return[t,t+("string"===typeof n?n.length:1)]}function In(e){let t="",n=!1,s=!1;for(let i=0;i{const i=An(e);s?this.warnings.push(new Vt(i,t,n)):this.errors.push(new Ft(i,t,n))},this.directives=new _({version:e.version||"1.2"}),this.options=e}decorate(e,t){const{comment:n,afterEmptyLine:s}=In(this.prelude);if(n){const i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(b(i)&&!i.flow&&i.items.length>0){let e=i.items[0];m(e)&&(e=e.key);const t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{const e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:In(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(const s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(e.type){case"directive":this.directives.add(e.source,((t,n,s)=>{const i=An(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)})),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{const t=On(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{const t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new Ft(An(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){const t="Unexpected doc-end without preceding document";this.errors.push(new Ft(An(e),"UNEXPECTED_TOKEN",t));break}this.doc.directives.docEnd=!0;const t=Zt(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){const e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Ft(An(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){const e=Object.assign({_directives:this.directives},this.options),n=new Pt(void 0,e);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),n.range=[0,t,t],this.decorate(n,!1),yield n}}}function Ln(e,t=!0,n){if(e){const s=(e,t,s)=>{const i="number"===typeof e?e:Array.isArray(e)?e[0]:e.offset;if(!n)throw new Ft([i,i+1],t,s);n(i,t,s)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return ln(e,t,s);case"block-scalar":return rn({options:{strict:t}},e,s)}}return null}function xn(e,t){const{implicitKey:n=!1,indent:s,inFlow:i=!1,offset:o=-1,type:r="PLAIN"}=t,a=pe({type:r,value:e},{implicitKey:n,indent:s>0?" ".repeat(s):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),c=t.end??[{type:"newline",offset:-1,indent:s,source:"\n"}];switch(a[0]){case"|":case">":{const e=a.indexOf("\n"),t=a.substring(0,e),n=a.substring(e+1)+"\n",i=[{type:"block-scalar-header",offset:o,indent:s,source:t}];return _n(i,c)||i.push({type:"newline",offset:-1,indent:s,source:"\n"}),{type:"block-scalar",offset:o,indent:s,props:i,source:n}}case'"':return{type:"double-quoted-scalar",offset:o,indent:s,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:o,indent:s,source:a,end:c};default:return{type:"scalar",offset:o,indent:s,source:a,end:c}}}function $n(e,t,n={}){let{afterKey:s=!1,implicitKey:i=!1,inFlow:o=!1,type:r}=n,a="indent"in e?e.indent:null;if(s&&"number"===typeof a&&(a+=2),!r)switch(e.type){case"single-quoted-scalar":r="QUOTE_SINGLE";break;case"double-quoted-scalar":r="QUOTE_DOUBLE";break;case"block-scalar":{const t=e.props[0];if("block-scalar-header"!==t.type)throw new Error("Invalid block scalar header");r=">"===t.source[0]?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:r="PLAIN"}const c=pe({type:r,value:t},{implicitKey:i||null===a,indent:null!==a&&a>0?" ".repeat(a):"",inFlow:o,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":Cn(e,c);break;case'"':Bn(e,c,"double-quoted-scalar");break;case"'":Bn(e,c,"single-quoted-scalar");break;default:Bn(e,c,"scalar")}}function Cn(e,t){const n=t.indexOf("\n"),s=t.substring(0,n),i=t.substring(n+1)+"\n";if("block-scalar"===e.type){const t=e.props[0];if("block-scalar-header"!==t.type)throw new Error("Invalid block scalar header");t.source=s,e.source=i}else{const{offset:t}=e,n="indent"in e?e.indent:-1,o=[{type:"block-scalar-header",offset:t,indent:n,source:s}];_n(o,"end"in e?e.end:void 0)||o.push({type:"newline",offset:-1,indent:n,source:"\n"});for(const s of Object.keys(e))"type"!==s&&"offset"!==s&&delete e[s];Object.assign(e,{type:"block-scalar",indent:n,props:o,source:i})}}function _n(e,t){if(t)for(const n of t)switch(n.type){case"space":case"comment":e.push(n);break;case"newline":return e.push(n),!0}return!1}function Bn(e,t,n){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=n,e.source=t;break;case"block-scalar":{const s=e.props.slice(1);let i=t.length;"block-scalar-header"===e.props[0].type&&(i-=e.props[0].source.length);for(const e of s)e.offset+=i;delete e.props,Object.assign(e,{type:n,source:t,end:s});break}case"block-map":case"block-seq":{const s=e.offset+t.length,i={type:"newline",offset:s,indent:e.indent,source:"\n"};delete e.items,Object.assign(e,{type:n,source:t,end:[i]});break}default:{const s="indent"in e?e.indent:-1,i="end"in e&&Array.isArray(e.end)?e.end.filter((e=>"space"===e.type||"comment"===e.type||"newline"===e.type)):[];for(const t of Object.keys(e))"type"!==t&&"offset"!==t&&delete e[t];Object.assign(e,{type:n,indent:s,source:t,end:i})}}}const jn=e=>"type"in e?Mn(e):Dn(e);function Mn(e){switch(e.type){case"block-scalar":{let t="";for(const n of e.props)t+=Mn(n);return t+e.source}case"block-map":case"block-seq":{let t="";for(const n of e.items)t+=Dn(n);return t}case"flow-collection":{let t=e.start.source;for(const n of e.items)t+=Dn(n);for(const n of e.end)t+=n.source;return t}case"document":{let t=Dn(e);if(e.end)for(const n of e.end)t+=n.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(const n of e.end)t+=n.source;return t}}}function Dn({start:e,key:t,sep:n,value:s}){let i="";for(const o of e)i+=o.source;if(t&&(i+=Mn(t)),n)for(const o of n)i+=o.source;return s&&(i+=Mn(s)),i}const Kn=Symbol("break visit"),qn=Symbol("skip children"),Pn=Symbol("remove item");function Un(e,t){"type"in e&&"document"===e.type&&(e={start:e.start,value:e.value}),Rn(Object.freeze([]),e,t)}function Rn(e,t,n){let s=n(t,e);if("symbol"===typeof s)return s;for(const i of["key","value"]){const o=t[i];if(o&&"items"in o){for(let t=0;t{let n=e;for(const[s,i]of t){const e=n?.[s];if(!e||!("items"in e))return;n=e.items[i]}return n},Un.parentCollection=(e,t)=>{const n=Un.itemAtPath(e,t.slice(0,-1)),s=t[t.length-1][0],i=n?.[s];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};const Fn="\ufeff",Vn="",Jn="",Yn="",Wn=e=>!!e&&"items"in e,Gn=e=>!!e&&("scalar"===e.type||"single-quoted-scalar"===e.type||"double-quoted-scalar"===e.type||"block-scalar"===e.type);function Qn(e){switch(e){case Fn:return"";case Vn:return"";case Jn:return"";case Yn:return"";default:return JSON.stringify(e)}}function Hn(e){switch(e){case Fn:return"byte-order-mark";case Vn:return"doc-mode";case Jn:return"flow-error-end";case Yn:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case"\n":case"\r\n":return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Xn(e){switch(e){case void 0:case" ":case"\n":case"\r":case"\t":return!0;default:return!1}}const zn=new Set("0123456789ABCDEFabcdef"),Zn=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),es=new Set(",[]{}"),ts=new Set(" ,[]{}\n\r\t"),ns=e=>!e||ts.has(e);class ss{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if("string"!==typeof e)throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??"stream";while(n&&(t||this.hasChars(1)))n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];while(" "===t||"\t"===t)t=this.buffer[++e];return!t||"#"===t||"\n"===t||"\r"===t&&"\n"===this.buffer[e+1]}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;while(" "===t)t=this.buffer[++n+e];if("\r"===t){const t=this.buffer[n+e+1];if("\n"===t||!t&&!this.atEnd)return e+n+1}return"\n"===t||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if("-"===t||"."===t){const t=this.buffer.substr(e,3);if(("---"===t||"..."===t)&&Xn(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return("number"!==typeof e||-1!==e&&ethis.indentValue&&!Xn(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){const[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if(("-"===e||"?"===e||":"===e)&&Xn(t)){const e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);const e=this.getLine();if(null===e)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(ns),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=(yield*this.parseBlockScalarHeader()),t+=(yield*this.pushSpaces(!0)),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do{e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=(yield*this.pushSpaces(!0))}while(e+t>0);const s=this.getLine();if(null===s)return this.setNext("flow");if(-1!==n&&n"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if("-"!==t)break}return yield*this.pushUntil((e=>Xn(e)||"#"===e))}*parseBlockScalar(){let e,t=this.pos-1,n=0;e:for(let i=this.pos;e=this.buffer[i];++i)switch(e){case" ":n+=1;break;case"\n":t=i,n=0;break;case"\r":{const e=this.buffer[i+1];if(!e&&!this.atEnd)return this.setNext("block-scalar");if("\n"===e)break}default:break e}if(!e&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){-1===this.blockScalarIndent?this.indentNext=n:this.indentNext=this.blockScalarIndent+(0===this.indentNext?1:this.indentNext);do{const e=this.continueScalar(t+1);if(-1===e)break;t=this.buffer.indexOf("\n",e)}while(-1!==t);if(-1===t){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let s=t+1;e=this.buffer[s];while(" "===e)e=this.buffer[++s];if("\t"===e){while("\t"===e||" "===e||"\r"===e||"\n"===e)e=this.buffer[++s];t=s-1}else if(!this.blockScalarKeep)do{let e=t-1,s=this.buffer[e];"\r"===s&&(s=this.buffer[--e]);const i=e;while(" "===s)s=this.buffer[--e];if(!("\n"===s&&e>=this.pos&&e+1+n>i))break;t=e}while(1);return yield Yn,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const e=this.flowLevel>0;let t,n=this.pos-1,s=this.pos-1;while(t=this.buffer[++s])if(":"===t){const t=this.buffer[s+1];if(Xn(t)||e&&es.has(t))break;n=s}else if(Xn(t)){let i=this.buffer[s+1];if("\r"===t&&("\n"===i?(s+=1,t="\n",i=this.buffer[s+1]):n=s),"#"===i||e&&es.has(i))break;if("\n"===t){const e=this.continueScalar(s+1);if(-1===e)break;s=Math.max(s,e-2)}}else{if(e&&es.has(t))break;n=s}return t||this.atEnd?(yield Yn,yield*this.pushToIndex(n+1,!0),e?"flow":"doc"):this.setNext("plain-scalar")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){const n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(ns))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const e=this.flowLevel>0,t=this.charAt(1);if(Xn(t)||e&&es.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if("<"===this.charAt(1)){let e=this.pos+2,t=this.buffer[e];while(!Xn(t)&&">"!==t)t=this.buffer[++e];return yield*this.pushToIndex(">"===t?e+1:e,!1)}{let e=this.pos+1,t=this.buffer[e];while(t)if(Zn.has(t))t=this.buffer[++e];else{if("%"!==t||!zn.has(this.buffer[e+1])||!zn.has(this.buffer[e+2]))break;t=this.buffer[e+=3]}return yield*this.pushToIndex(e,!1)}}*pushNewline(){const e=this.buffer[this.pos];return"\n"===e?yield*this.pushCount(1):"\r"===e&&"\n"===this.charAt(1)?yield*this.pushCount(2):0}*pushSpaces(e){let t,n=this.pos-1;do{t=this.buffer[++n]}while(" "===t||e&&"\t"===t);const s=n-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=n),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];while(!e(n))n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}class is{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;while(t>1;this.lineStarts[s]=0)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}while("space"===e[++t]?.type);return e.splice(t,e.length)}function us(e){if("flow-seq-start"===e.start.type)for(const t of e.items)!t.sep||t.value||os(t.start,"explicit-key-ind")||os(t.sep,"map-value-ind")||(t.key&&(t.value=t.key),delete t.key,as(t.value)?t.value.end?Array.prototype.push.apply(t.value.end,t.sep):t.value.end=t.sep:Array.prototype.push.apply(t.start,t.sep),delete t.sep)}class fs{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new ss,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&0===this.offset&&this.onNewLine(0);for(const n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar)return this.atScalar=!1,yield*this.step(),void(this.offset+=e.length);const t=Hn(e);if(t)if("scalar"===t)this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&" "===e[0]&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{const t=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:t,source:e}),this.offset+=e.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){const e={type:this.type,offset:this.offset,indent:this.indent,source:this.source};return e}*step(){const e=this.peek(1);if("doc-end"!==this.type||e&&"doc-end"===e.type){if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}else{while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source})}}peek(e){return this.stack[this.stack.length-e]}*pop(e){const t=e??this.stack.pop();if(t)if(0===this.stack.length)yield t;else{const e=this.peek(1);switch("block-scalar"===t.type?t.indent="indent"in e?e.indent:0:"flow-collection"===t.type&&"document"===e.type&&(t.indent=0),"flow-collection"===t.type&&us(t),e.type){case"document":e.value=t;break;case"block-scalar":e.props.push(t);break;case"block-map":{const n=e.items[e.items.length-1];if(n.value)return e.items.push({start:[],key:t,sep:[]}),void(this.onKeyLine=!0);if(!n.sep)return Object.assign(n,{key:t,sep:[]}),void(this.onKeyLine=!n.explicitKey);n.value=t;break}case"block-seq":{const n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case"flow-collection":{const n=e.items[e.items.length-1];return void(!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]}))}default:yield*this.pop(),yield*this.pop(t)}if(("document"===e.type||"block-map"===e.type||"block-seq"===e.type)&&("block-map"===t.type||"block-seq"===t.type)){const n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&-1===rs(n.start)&&(0===t.indent||n.start.every((e=>"comment"!==e.type||e.indent=e.indent){const n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&"seq-item-ind"!==this.type;let i=[];if(s&&t.sep&&!t.value){const n=[];for(let s=0;se.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case"anchor":case"tag":return void(s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken));case"explicit-key-ind":return t.sep||t.explicitKey?s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}):(t.start.push(this.sourceToken),t.explicitKey=!0),void(this.onKeyLine=!0);case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(os(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(as(t.key)&&!os(t.sep,"newline")){const e=ls(t.start),n=t.key,s=t.sep;s.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:s}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(os(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{const e=ls(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):os(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return void(this.onKeyLine=!0);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const n=this.flowScalar(this.type);return void(s||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0))}default:{const t=this.startBlockValue(e);if(t)return n&&"block-seq"!==t.type&&e.items.push({start:i}),void this.stack.push(t)}}}yield*this.pop(),yield*this.step()}*blockSequence(e){const t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){const n="end"in t.value?t.value.end:void 0,s=Array.isArray(n)?n[n.length-1]:void 0;"comment"===s?.type?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){const n=e.items[e.items.length-2],s=n?.value?.end;if(Array.isArray(s))return Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),void e.items.pop()}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;return void t.start.push(this.sourceToken);case"seq-item-ind":if(this.indent!==e.indent)break;return void(t.value||os(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken))}if(this.indent>e.indent){const t=this.startBlockValue(e);if(t)return void this.stack.push(t)}yield*this.pop(),yield*this.step()}*flowCollection(e){const t=e.items[e.items.length-1];if("flow-error-end"===this.type){let e;do{yield*this.pop(),e=this.peek(1)}while(e&&"flow-collection"===e.type)}else if(0===e.end.length){switch(this.type){case"comma":case"explicit-key-ind":return void(!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken));case"map-value-ind":return void(!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]}));case"space":case"comment":case"newline":case"anchor":case"tag":return void(!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken));case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const n=this.flowScalar(this.type);return void(!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]}))}case"flow-map-end":case"flow-seq-end":return void e.end.push(this.sourceToken)}const n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{const t=this.peek(2);if("block-map"===t.type&&("map-value-ind"===this.type&&t.indent===e.indent||"newline"===this.type&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if("map-value-ind"===this.type&&"flow-collection"!==t.type){const n=cs(t),s=ls(n);us(e);const i=e.end.splice(1,e.end.length);i.push(this.sourceToken);const o={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:i}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=o}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf("\n")+1;while(0!==e)this.onNewLine(this.offset+e),e=this.source.indexOf("\n",e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const t=cs(e),n=ls(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const t=cs(e),n=ls(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return"comment"===this.type&&(!(this.indent<=t)&&e.every((e=>"newline"===e.type||"space"===e.type)))}*documentEnd(e){"doc-mode"!==this.type&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],"newline"===this.type&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],"newline"===this.type&&(yield*this.pop())}}}function hs(e){const t=!1!==e.prettyErrors,n=e.lineCounter||t&&new is||null;return{lineCounter:n,prettyErrors:t}}function ds(e,t={}){const{lineCounter:n,prettyErrors:s}=hs(t),i=new fs(n?.addNewLine),o=new Tn(t),r=Array.from(o.compose(i.parse(e)));if(s&&n)for(const a of r)a.errors.forEach(Jt(e,n)),a.warnings.forEach(Jt(e,n));return r.length>0?r:Object.assign([],{empty:!0},o.streamInfo())}function ps(e,t={}){const{lineCounter:n,prettyErrors:s}=hs(t),i=new fs(n?.addNewLine),o=new Tn(t);let r=null;for(const a of o.compose(i.parse(e),!0,e.length))if(r){if("silent"!==r.options.logLevel){r.errors.push(new Ft(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}}else r=a;return s&&n&&(r.errors.forEach(Jt(e,n)),r.warnings.forEach(Jt(e,n))),r}function ms(e,t,n){let s;"function"===typeof t?s=t:void 0===n&&t&&"object"===typeof t&&(n=t);const i=ps(e,n);if(!i)return null;if(i.warnings.forEach((e=>Se(i.options.logLevel,e))),i.errors.length>0){if("silent"!==i.options.logLevel)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:s},n))}function ys(e,t,n){let s=null;if("function"===typeof t||Array.isArray(t)?s=t:void 0===n&&t&&(n=t),"string"===typeof n&&(n=n.length),"number"===typeof n){const e=Math.round(n);n=e<1?void 0:e>8?{indent:8}:{indent:e}}if(void 0===e){const{keepUndefined:e}=n??t??{};if(!e)return}return new Pt(e,s,n).toString(n)}var gs=i}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.160.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.160.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.160.js.map new file mode 100644 index 00000000..46749a9a --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.160.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.160.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/formatter/BadgeStateFormatter.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/formatter/BadgeStateFormatter.vue?67d1","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/identity.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/visit.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/doc/directives.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/doc/anchors.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/doc/applyReviver.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/toJS.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/Node.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/Alias.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/Scalar.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/doc/createNode.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/Collection.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/stringify/stringifyComment.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/stringify/foldFlowLines.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/stringify/stringifyString.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/stringify/stringify.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/stringify/stringifyPair.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/log.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/addPairToJSMap.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/Pair.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/stringify/stringifyCollection.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/YAMLMap.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/common/map.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/nodes/YAMLSeq.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/common/seq.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/common/string.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/common/null.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/core/bool.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/stringify/stringifyNumber.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/core/float.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/core/int.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/core/schema.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/json/schema.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/float.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/int.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/set.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/tags.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/schema/Schema.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/stringify/stringifyDocument.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/doc/Document.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/errors.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/resolve-props.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/util-contains-newline.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/util-flow-indent-check.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/util-map-includes.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/resolve-block-map.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/resolve-block-seq.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/resolve-end.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/resolve-flow-collection.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/compose-collection.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/resolve-block-scalar.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/compose-scalar.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/compose-node.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/compose-doc.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/compose/composer.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/parse/cst-scalar.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/parse/cst-stringify.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/parse/cst-visit.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/parse/cst.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/parse/lexer.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/parse/line-counter.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/parse/parser.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/dist/public-api.js","webpack://harvester-1.5.0-dev/../../node_modules/yaml/browser/index.js"],"sourcesContent":["\n\n\n","import { render } from \"./BadgeStateFormatter.vue?vue&type=template&id=4e99fcbc\"\nimport script from \"./BadgeStateFormatter.vue?vue&type=script&lang=js\"\nexport * from \"./BadgeStateFormatter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const ALIAS = Symbol.for('yaml.alias');\nconst DOC = Symbol.for('yaml.document');\nconst MAP = Symbol.for('yaml.map');\nconst PAIR = Symbol.for('yaml.pair');\nconst SCALAR = Symbol.for('yaml.scalar');\nconst SEQ = Symbol.for('yaml.seq');\nconst NODE_TYPE = Symbol.for('yaml.node.type');\nconst isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;\nconst isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;\nconst isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;\nconst isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;\nconst isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;\nconst isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;\nfunction isCollection(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case MAP:\n case SEQ:\n return true;\n }\n return false;\n}\nfunction isNode(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case ALIAS:\n case MAP:\n case SCALAR:\n case SEQ:\n return true;\n }\n return false;\n}\nconst hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;\n\nexport { ALIAS, DOC, MAP, NODE_TYPE, PAIR, SCALAR, SEQ, hasAnchor, isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq };\n","import { isDocument, isNode, isPair, isCollection, isMap, isSeq, isScalar, isAlias } from './nodes/identity.js';\n\nconst BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove node');\n/**\n * Apply a visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nfunction visit(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = visit_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n visit_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisit.SKIP = SKIP;\n/** Remove the current node */\nvisit.REMOVE = REMOVE;\nfunction visit_(key, node, visitor, path) {\n const ctrl = callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = visit_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = visit_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = visit_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\n/**\n * Apply an async visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `Promise`: Must resolve to one of the following values\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nasync function visitAsync(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = await visitAsync_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n await visitAsync_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisitAsync.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisitAsync.SKIP = SKIP;\n/** Remove the current node */\nvisitAsync.REMOVE = REMOVE;\nasync function visitAsync_(key, node, visitor, path) {\n const ctrl = await callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = await visitAsync_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = await visitAsync_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = await visitAsync_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\nfunction initVisitor(visitor) {\n if (typeof visitor === 'object' &&\n (visitor.Collection || visitor.Node || visitor.Value)) {\n return Object.assign({\n Alias: visitor.Node,\n Map: visitor.Node,\n Scalar: visitor.Node,\n Seq: visitor.Node\n }, visitor.Value && {\n Map: visitor.Value,\n Scalar: visitor.Value,\n Seq: visitor.Value\n }, visitor.Collection && {\n Map: visitor.Collection,\n Seq: visitor.Collection\n }, visitor);\n }\n return visitor;\n}\nfunction callVisitor(key, node, visitor, path) {\n if (typeof visitor === 'function')\n return visitor(key, node, path);\n if (isMap(node))\n return visitor.Map?.(key, node, path);\n if (isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (isPair(node))\n return visitor.Pair?.(key, node, path);\n if (isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (isAlias(node))\n return visitor.Alias?.(key, node, path);\n return undefined;\n}\nfunction replaceNode(key, path, node) {\n const parent = path[path.length - 1];\n if (isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexport { visit, visitAsync };\n","import { isNode } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\nconst escapeChars = {\n '!': '%21',\n ',': '%2C',\n '[': '%5B',\n ']': '%5D',\n '{': '%7B',\n '}': '%7D'\n};\nconst escapeTagName = (tn) => tn.replace(/[!,[\\]{}]/g, ch => escapeChars[ch]);\nclass Directives {\n constructor(yaml, tags) {\n /**\n * The directives-end/doc-start marker `---`. If `null`, a marker may still be\n * included in the document's stringified representation.\n */\n this.docStart = null;\n /** The doc-end marker `...`. */\n this.docEnd = false;\n this.yaml = Object.assign({}, Directives.defaultYaml, yaml);\n this.tags = Object.assign({}, Directives.defaultTags, tags);\n }\n clone() {\n const copy = new Directives(this.yaml, this.tags);\n copy.docStart = this.docStart;\n return copy;\n }\n /**\n * During parsing, get a Directives instance for the current document and\n * update the stream state according to the current version's spec.\n */\n atDocument() {\n const res = new Directives(this.yaml, this.tags);\n switch (this.yaml.version) {\n case '1.1':\n this.atNextDocument = true;\n break;\n case '1.2':\n this.atNextDocument = false;\n this.yaml = {\n explicit: Directives.defaultYaml.explicit,\n version: '1.2'\n };\n this.tags = Object.assign({}, Directives.defaultTags);\n break;\n }\n return res;\n }\n /**\n * @param onError - May be called even if the action was successful\n * @returns `true` on success\n */\n add(line, onError) {\n if (this.atNextDocument) {\n this.yaml = { explicit: Directives.defaultYaml.explicit, version: '1.1' };\n this.tags = Object.assign({}, Directives.defaultTags);\n this.atNextDocument = false;\n }\n const parts = line.trim().split(/[ \\t]+/);\n const name = parts.shift();\n switch (name) {\n case '%TAG': {\n if (parts.length !== 2) {\n onError(0, '%TAG directive should contain exactly two parts');\n if (parts.length < 2)\n return false;\n }\n const [handle, prefix] = parts;\n this.tags[handle] = prefix;\n return true;\n }\n case '%YAML': {\n this.yaml.explicit = true;\n if (parts.length !== 1) {\n onError(0, '%YAML directive should contain exactly one part');\n return false;\n }\n const [version] = parts;\n if (version === '1.1' || version === '1.2') {\n this.yaml.version = version;\n return true;\n }\n else {\n const isValid = /^\\d+\\.\\d+$/.test(version);\n onError(6, `Unsupported YAML version ${version}`, isValid);\n return false;\n }\n }\n default:\n onError(0, `Unknown directive ${name}`, true);\n return false;\n }\n }\n /**\n * Resolves a tag, matching handles to those defined in %TAG directives.\n *\n * @returns Resolved tag, which may also be the non-specific tag `'!'` or a\n * `'!local'` tag, or `null` if unresolvable.\n */\n tagName(source, onError) {\n if (source === '!')\n return '!'; // non-specific tag\n if (source[0] !== '!') {\n onError(`Not a valid tag: ${source}`);\n return null;\n }\n if (source[1] === '<') {\n const verbatim = source.slice(2, -1);\n if (verbatim === '!' || verbatim === '!!') {\n onError(`Verbatim tags aren't resolved, so ${source} is invalid.`);\n return null;\n }\n if (source[source.length - 1] !== '>')\n onError('Verbatim tags must end with a >');\n return verbatim;\n }\n const [, handle, suffix] = source.match(/^(.*!)([^!]*)$/s);\n if (!suffix)\n onError(`The ${source} tag has no suffix`);\n const prefix = this.tags[handle];\n if (prefix) {\n try {\n return prefix + decodeURIComponent(suffix);\n }\n catch (error) {\n onError(String(error));\n return null;\n }\n }\n if (handle === '!')\n return source; // local tag\n onError(`Could not resolve tag: ${source}`);\n return null;\n }\n /**\n * Given a fully resolved tag, returns its printable string form,\n * taking into account current tag prefixes and defaults.\n */\n tagString(tag) {\n for (const [handle, prefix] of Object.entries(this.tags)) {\n if (tag.startsWith(prefix))\n return handle + escapeTagName(tag.substring(prefix.length));\n }\n return tag[0] === '!' ? tag : `!<${tag}>`;\n }\n toString(doc) {\n const lines = this.yaml.explicit\n ? [`%YAML ${this.yaml.version || '1.2'}`]\n : [];\n const tagEntries = Object.entries(this.tags);\n let tagNames;\n if (doc && tagEntries.length > 0 && isNode(doc.contents)) {\n const tags = {};\n visit(doc.contents, (_key, node) => {\n if (isNode(node) && node.tag)\n tags[node.tag] = true;\n });\n tagNames = Object.keys(tags);\n }\n else\n tagNames = [];\n for (const [handle, prefix] of tagEntries) {\n if (handle === '!!' && prefix === 'tag:yaml.org,2002:')\n continue;\n if (!doc || tagNames.some(tn => tn.startsWith(prefix)))\n lines.push(`%TAG ${handle} ${prefix}`);\n }\n return lines.join('\\n');\n }\n}\nDirectives.defaultYaml = { explicit: false, version: '1.2' };\nDirectives.defaultTags = { '!!': 'tag:yaml.org,2002:' };\n\nexport { Directives };\n","import { isScalar, isCollection } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\n/**\n * Verify that the input string is a valid anchor.\n *\n * Will throw on errors.\n */\nfunction anchorIsValid(anchor) {\n if (/[\\x00-\\x19\\s,[\\]{}]/.test(anchor)) {\n const sa = JSON.stringify(anchor);\n const msg = `Anchor must not contain whitespace or control characters: ${sa}`;\n throw new Error(msg);\n }\n return true;\n}\nfunction anchorNames(root) {\n const anchors = new Set();\n visit(root, {\n Value(_key, node) {\n if (node.anchor)\n anchors.add(node.anchor);\n }\n });\n return anchors;\n}\n/** Find a new anchor name with the given `prefix` and a one-indexed suffix. */\nfunction findNewAnchor(prefix, exclude) {\n for (let i = 1; true; ++i) {\n const name = `${prefix}${i}`;\n if (!exclude.has(name))\n return name;\n }\n}\nfunction createNodeAnchors(doc, prefix) {\n const aliasObjects = [];\n const sourceObjects = new Map();\n let prevAnchors = null;\n return {\n onAnchor: (source) => {\n aliasObjects.push(source);\n if (!prevAnchors)\n prevAnchors = anchorNames(doc);\n const anchor = findNewAnchor(prefix, prevAnchors);\n prevAnchors.add(anchor);\n return anchor;\n },\n /**\n * With circular references, the source node is only resolved after all\n * of its child nodes are. This is why anchors are set only after all of\n * the nodes have been created.\n */\n setAnchors: () => {\n for (const source of aliasObjects) {\n const ref = sourceObjects.get(source);\n if (typeof ref === 'object' &&\n ref.anchor &&\n (isScalar(ref.node) || isCollection(ref.node))) {\n ref.node.anchor = ref.anchor;\n }\n else {\n const error = new Error('Failed to resolve repeated object (this should not happen)');\n error.source = source;\n throw error;\n }\n }\n },\n sourceObjects\n };\n}\n\nexport { anchorIsValid, anchorNames, createNodeAnchors, findNewAnchor };\n","/**\n * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,\n * in section 24.5.1.1 \"Runtime Semantics: InternalizeJSONProperty\" of the\n * 2021 edition: https://tc39.es/ecma262/#sec-json.parse\n *\n * Includes extensions for handling Map and Set objects.\n */\nfunction applyReviver(reviver, obj, key, val) {\n if (val && typeof val === 'object') {\n if (Array.isArray(val)) {\n for (let i = 0, len = val.length; i < len; ++i) {\n const v0 = val[i];\n const v1 = applyReviver(reviver, val, String(i), v0);\n // eslint-disable-next-line @typescript-eslint/no-array-delete\n if (v1 === undefined)\n delete val[i];\n else if (v1 !== v0)\n val[i] = v1;\n }\n }\n else if (val instanceof Map) {\n for (const k of Array.from(val.keys())) {\n const v0 = val.get(k);\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n val.delete(k);\n else if (v1 !== v0)\n val.set(k, v1);\n }\n }\n else if (val instanceof Set) {\n for (const v0 of Array.from(val)) {\n const v1 = applyReviver(reviver, val, v0, v0);\n if (v1 === undefined)\n val.delete(v0);\n else if (v1 !== v0) {\n val.delete(v0);\n val.add(v1);\n }\n }\n }\n else {\n for (const [k, v0] of Object.entries(val)) {\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n delete val[k];\n else if (v1 !== v0)\n val[k] = v1;\n }\n }\n }\n return reviver.call(obj, key, val);\n}\n\nexport { applyReviver };\n","import { hasAnchor } from './identity.js';\n\n/**\n * Recursively convert any node or its contents to native JavaScript\n *\n * @param value - The input value\n * @param arg - If `value` defines a `toJSON()` method, use this\n * as its first argument\n * @param ctx - Conversion context, originally set in Document#toJS(). If\n * `{ keep: true }` is not set, output should be suitable for JSON\n * stringification.\n */\nfunction toJS(value, arg, ctx) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (Array.isArray(value))\n return value.map((v, i) => toJS(v, String(i), ctx));\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (!ctx || !hasAnchor(value))\n return value.toJSON(arg, ctx);\n const data = { aliasCount: 0, count: 1, res: undefined };\n ctx.anchors.set(value, data);\n ctx.onCreate = res => {\n data.res = res;\n delete ctx.onCreate;\n };\n const res = value.toJSON(arg, ctx);\n if (ctx.onCreate)\n ctx.onCreate(res);\n return res;\n }\n if (typeof value === 'bigint' && !ctx?.keep)\n return Number(value);\n return value;\n}\n\nexport { toJS };\n","import { applyReviver } from '../doc/applyReviver.js';\nimport { NODE_TYPE, isDocument } from './identity.js';\nimport { toJS } from './toJS.js';\n\nclass NodeBase {\n constructor(type) {\n Object.defineProperty(this, NODE_TYPE, { value: type });\n }\n /** Create a copy of this node. */\n clone() {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** A plain JavaScript representation of this node. */\n toJS(doc, { mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n if (!isDocument(doc))\n throw new TypeError('A document argument is required');\n const ctx = {\n anchors: new Map(),\n doc,\n keep: true,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this, '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n}\n\nexport { NodeBase };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { visit } from '../visit.js';\nimport { ALIAS, isAlias, isCollection, isPair } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nclass Alias extends NodeBase {\n constructor(source) {\n super(ALIAS);\n this.source = source;\n Object.defineProperty(this, 'tag', {\n set() {\n throw new Error('Alias nodes cannot have tags');\n }\n });\n }\n /**\n * Resolve the value of this alias within `doc`, finding the last\n * instance of the `source` anchor before this node.\n */\n resolve(doc) {\n let found = undefined;\n visit(doc, {\n Node: (_key, node) => {\n if (node === this)\n return visit.BREAK;\n if (node.anchor === this.source)\n found = node;\n }\n });\n return found;\n }\n toJSON(_arg, ctx) {\n if (!ctx)\n return { source: this.source };\n const { anchors, doc, maxAliasCount } = ctx;\n const source = this.resolve(doc);\n if (!source) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new ReferenceError(msg);\n }\n let data = anchors.get(source);\n if (!data) {\n // Resolve anchors for Node.prototype.toJS()\n toJS(source, null, ctx);\n data = anchors.get(source);\n }\n /* istanbul ignore if */\n if (!data || data.res === undefined) {\n const msg = 'This should not happen: Alias anchor was not resolved?';\n throw new ReferenceError(msg);\n }\n if (maxAliasCount >= 0) {\n data.count += 1;\n if (data.aliasCount === 0)\n data.aliasCount = getAliasCount(doc, source, anchors);\n if (data.count * data.aliasCount > maxAliasCount) {\n const msg = 'Excessive alias count indicates a resource exhaustion attack';\n throw new ReferenceError(msg);\n }\n }\n return data.res;\n }\n toString(ctx, _onComment, _onChompKeep) {\n const src = `*${this.source}`;\n if (ctx) {\n anchorIsValid(this.source);\n if (ctx.options.verifyAliasOrder && !ctx.anchors.has(this.source)) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new Error(msg);\n }\n if (ctx.implicitKey)\n return `${src} `;\n }\n return src;\n }\n}\nfunction getAliasCount(doc, node, anchors) {\n if (isAlias(node)) {\n const source = node.resolve(doc);\n const anchor = anchors && source && anchors.get(source);\n return anchor ? anchor.count * anchor.aliasCount : 0;\n }\n else if (isCollection(node)) {\n let count = 0;\n for (const item of node.items) {\n const c = getAliasCount(doc, item, anchors);\n if (c > count)\n count = c;\n }\n return count;\n }\n else if (isPair(node)) {\n const kc = getAliasCount(doc, node.key, anchors);\n const vc = getAliasCount(doc, node.value, anchors);\n return Math.max(kc, vc);\n }\n return 1;\n}\n\nexport { Alias };\n","import { SCALAR } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nconst isScalarValue = (value) => !value || (typeof value !== 'function' && typeof value !== 'object');\nclass Scalar extends NodeBase {\n constructor(value) {\n super(SCALAR);\n this.value = value;\n }\n toJSON(arg, ctx) {\n return ctx?.keep ? this.value : toJS(this.value, arg, ctx);\n }\n toString() {\n return String(this.value);\n }\n}\nScalar.BLOCK_FOLDED = 'BLOCK_FOLDED';\nScalar.BLOCK_LITERAL = 'BLOCK_LITERAL';\nScalar.PLAIN = 'PLAIN';\nScalar.QUOTE_DOUBLE = 'QUOTE_DOUBLE';\nScalar.QUOTE_SINGLE = 'QUOTE_SINGLE';\n\nexport { Scalar, isScalarValue };\n","import { Alias } from '../nodes/Alias.js';\nimport { isNode, isPair, MAP, SEQ, isDocument } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\n\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nfunction findTagObject(value, tagName, tags) {\n if (tagName) {\n const match = tags.filter(t => t.tag === tagName);\n const tagObj = match.find(t => !t.format) ?? match[0];\n if (!tagObj)\n throw new Error(`Tag ${tagName} not found`);\n return tagObj;\n }\n return tags.find(t => t.identify?.(value) && !t.format);\n}\nfunction createNode(value, tagName, ctx) {\n if (isDocument(value))\n value = value.contents;\n if (isNode(value))\n return value;\n if (isPair(value)) {\n const map = ctx.schema[MAP].createNode?.(ctx.schema, null, ctx);\n map.items.push(value);\n return map;\n }\n if (value instanceof String ||\n value instanceof Number ||\n value instanceof Boolean ||\n (typeof BigInt !== 'undefined' && value instanceof BigInt) // not supported everywhere\n ) {\n // https://tc39.es/ecma262/#sec-serializejsonproperty\n value = value.valueOf();\n }\n const { aliasDuplicateObjects, onAnchor, onTagObj, schema, sourceObjects } = ctx;\n // Detect duplicate references to the same object & use Alias nodes for all\n // after first. The `ref` wrapper allows for circular references to resolve.\n let ref = undefined;\n if (aliasDuplicateObjects && value && typeof value === 'object') {\n ref = sourceObjects.get(value);\n if (ref) {\n if (!ref.anchor)\n ref.anchor = onAnchor(value);\n return new Alias(ref.anchor);\n }\n else {\n ref = { anchor: null, node: null };\n sourceObjects.set(value, ref);\n }\n }\n if (tagName?.startsWith('!!'))\n tagName = defaultTagPrefix + tagName.slice(2);\n let tagObj = findTagObject(value, tagName, schema.tags);\n if (!tagObj) {\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n value = value.toJSON();\n }\n if (!value || typeof value !== 'object') {\n const node = new Scalar(value);\n if (ref)\n ref.node = node;\n return node;\n }\n tagObj =\n value instanceof Map\n ? schema[MAP]\n : Symbol.iterator in Object(value)\n ? schema[SEQ]\n : schema[MAP];\n }\n if (onTagObj) {\n onTagObj(tagObj);\n delete ctx.onTagObj;\n }\n const node = tagObj?.createNode\n ? tagObj.createNode(ctx.schema, value, ctx)\n : typeof tagObj?.nodeClass?.from === 'function'\n ? tagObj.nodeClass.from(ctx.schema, value, ctx)\n : new Scalar(value);\n if (tagName)\n node.tag = tagName;\n else if (!tagObj.default)\n node.tag = tagObj.tag;\n if (ref)\n ref.node = node;\n return node;\n}\n\nexport { createNode };\n","import { createNode } from '../doc/createNode.js';\nimport { isNode, isPair, isCollection, isScalar } from './identity.js';\nimport { NodeBase } from './Node.js';\n\nfunction collectionFromPath(schema, path, value) {\n let v = value;\n for (let i = path.length - 1; i >= 0; --i) {\n const k = path[i];\n if (typeof k === 'number' && Number.isInteger(k) && k >= 0) {\n const a = [];\n a[k] = v;\n v = a;\n }\n else {\n v = new Map([[k, v]]);\n }\n }\n return createNode(v, undefined, {\n aliasDuplicateObjects: false,\n keepUndefined: false,\n onAnchor: () => {\n throw new Error('This should not happen, please report a bug.');\n },\n schema,\n sourceObjects: new Map()\n });\n}\n// Type guard is intentionally a little wrong so as to be more useful,\n// as it does not cover untypable empty non-string iterables (e.g. []).\nconst isEmptyPath = (path) => path == null ||\n (typeof path === 'object' && !!path[Symbol.iterator]().next().done);\nclass Collection extends NodeBase {\n constructor(type, schema) {\n super(type);\n Object.defineProperty(this, 'schema', {\n value: schema,\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n /**\n * Create a copy of this collection.\n *\n * @param schema - If defined, overwrites the original's schema\n */\n clone(schema) {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (schema)\n copy.schema = schema;\n copy.items = copy.items.map(it => isNode(it) || isPair(it) ? it.clone(schema) : it);\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /**\n * Adds a value to the collection. For `!!map` and `!!omap` the value must\n * be a Pair instance or a `{ key, value }` object, which may not have a key\n * that already exists in the map.\n */\n addIn(path, value) {\n if (isEmptyPath(path))\n this.add(value);\n else {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (isCollection(node))\n node.addIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n /**\n * Removes a value from the collection.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.delete(key);\n const node = this.get(key, true);\n if (isCollection(node))\n return node.deleteIn(rest);\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (rest.length === 0)\n return !keepScalar && isScalar(node) ? node.value : node;\n else\n return isCollection(node) ? node.getIn(rest, keepScalar) : undefined;\n }\n hasAllNullValues(allowScalar) {\n return this.items.every(node => {\n if (!isPair(node))\n return false;\n const n = node.value;\n return (n == null ||\n (allowScalar &&\n isScalar(n) &&\n n.value == null &&\n !n.commentBefore &&\n !n.comment &&\n !n.tag));\n });\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n */\n hasIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.has(key);\n const node = this.get(key, true);\n return isCollection(node) ? node.hasIn(rest) : false;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n const [key, ...rest] = path;\n if (rest.length === 0) {\n this.set(key, value);\n }\n else {\n const node = this.get(key, true);\n if (isCollection(node))\n node.setIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n}\n\nexport { Collection, collectionFromPath, isEmptyPath };\n","/**\n * Stringifies a comment.\n *\n * Empty comment lines are left empty,\n * lines consisting of a single space are replaced by `#`,\n * and all other lines are prefixed with a `#`.\n */\nconst stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, '#');\nfunction indentComment(comment, indent) {\n if (/^\\n+$/.test(comment))\n return comment.substring(1);\n return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;\n}\nconst lineComment = (str, indent, comment) => str.endsWith('\\n')\n ? indentComment(comment, indent)\n : comment.includes('\\n')\n ? '\\n' + indentComment(comment, indent)\n : (str.endsWith(' ') ? '' : ' ') + comment;\n\nexport { indentComment, lineComment, stringifyComment };\n","const FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted';\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n */\nfunction foldFlowLines(text, indent, mode = 'flow', { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {\n if (!lineWidth || lineWidth < 0)\n return text;\n if (lineWidth < minContentWidth)\n minContentWidth = 0;\n const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep)\n return text;\n const folds = [];\n const escapedFolds = {};\n let end = lineWidth - indent.length;\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth))\n folds.push(0);\n else\n end = lineWidth - indentAtStart;\n }\n let split = undefined;\n let prev = undefined;\n let overflow = false;\n let i = -1;\n let escStart = -1;\n let escEnd = -1;\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i, indent.length);\n if (i !== -1)\n end = i + endStep;\n }\n for (let ch; (ch = text[(i += 1)]);) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n case 'u':\n i += 5;\n break;\n case 'U':\n i += 9;\n break;\n default:\n i += 1;\n }\n escEnd = i;\n }\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK)\n i = consumeMoreIndentedLines(text, i, indent.length);\n end = i + indent.length + endStep;\n split = undefined;\n }\n else {\n if (ch === ' ' &&\n prev &&\n prev !== ' ' &&\n prev !== '\\n' &&\n prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n const next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t')\n split = i;\n }\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n }\n else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[(i += 1)];\n overflow = true;\n }\n // Account for newline escape, but don't break preceding escape\n const j = i > escEnd + 1 ? i - 2 : escStart - 1;\n // Bail out if lineWidth & minContentWidth are shorter than an escape string\n if (escapedFolds[j])\n return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n }\n else {\n overflow = true;\n }\n }\n }\n prev = ch;\n }\n if (overflow && onOverflow)\n onOverflow();\n if (folds.length === 0)\n return text;\n if (onFold)\n onFold();\n let res = text.slice(0, folds[0]);\n for (let i = 0; i < folds.length; ++i) {\n const fold = folds[i];\n const end = folds[i + 1] || text.length;\n if (fold === 0)\n res = `\\n${indent}${text.slice(0, end)}`;\n else {\n if (mode === FOLD_QUOTED && escapedFolds[fold])\n res += `${text[fold]}\\\\`;\n res += `\\n${indent}${text.slice(fold + 1, end)}`;\n }\n }\n return res;\n}\n/**\n * Presumes `i + 1` is at the start of a line\n * @returns index of last newline in more-indented block\n */\nfunction consumeMoreIndentedLines(text, i, indent) {\n let end = i;\n let start = i + 1;\n let ch = text[start];\n while (ch === ' ' || ch === '\\t') {\n if (i < start + indent) {\n ch = text[++i];\n }\n else {\n do {\n ch = text[++i];\n } while (ch && ch !== '\\n');\n end = i;\n start = i + 1;\n ch = text[start];\n }\n }\n return end;\n}\n\nexport { FOLD_BLOCK, FOLD_FLOW, FOLD_QUOTED, foldFlowLines };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { foldFlowLines, FOLD_QUOTED, FOLD_FLOW, FOLD_BLOCK } from './foldFlowLines.js';\n\nconst getFoldOptions = (ctx, isBlock) => ({\n indentAtStart: isBlock ? ctx.indent.length : ctx.indentAtStart,\n lineWidth: ctx.options.lineWidth,\n minContentWidth: ctx.options.minContentWidth\n});\n// Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\nconst containsDocumentMarker = (str) => /^(%|---|\\.\\.\\.)/m.test(str);\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0)\n return false;\n const limit = lineWidth - indentLength;\n const strLen = str.length;\n if (strLen <= limit)\n return false;\n for (let i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit)\n return true;\n start = i + 1;\n if (strLen - start <= limit)\n return false;\n }\n }\n return true;\n}\nfunction doubleQuotedString(value, ctx) {\n const json = JSON.stringify(value);\n if (ctx.options.doubleQuotedAsJSON)\n return json;\n const { implicitKey } = ctx;\n const minMultiLineLength = ctx.options.doubleQuotedMinMultiLineLength;\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n let str = '';\n let start = 0;\n for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n if (ch === '\\\\')\n switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n const code = json.substr(i + 2, 4);\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n case '0007':\n str += '\\\\a';\n break;\n case '000b':\n str += '\\\\v';\n break;\n case '001b':\n str += '\\\\e';\n break;\n case '0085':\n str += '\\\\N';\n break;\n case '00a0':\n str += '\\\\_';\n break;\n case '2028':\n str += '\\\\L';\n break;\n case '2029':\n str += '\\\\P';\n break;\n default:\n if (code.substr(0, 2) === '00')\n str += '\\\\x' + code.substr(2);\n else\n str += json.substr(i, 6);\n }\n i += 5;\n start = i + 1;\n }\n break;\n case 'n':\n if (implicitKey ||\n json[i + 2] === '\"' ||\n json.length < minMultiLineLength) {\n i += 1;\n }\n else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n while (json[i + 2] === '\\\\' &&\n json[i + 3] === 'n' &&\n json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n str += indent;\n // space after newline needs to be escaped to not be folded\n if (json[i + 2] === ' ')\n str += '\\\\';\n i += 1;\n start = i + 1;\n }\n break;\n default:\n i += 1;\n }\n }\n str = start ? str + json.slice(start) : json;\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx, false));\n}\nfunction singleQuotedString(value, ctx) {\n if (ctx.options.singleQuote === false ||\n (ctx.implicitKey && value.includes('\\n')) ||\n /[ \\t]\\n|\\n[ \\t]/.test(value) // single quoted string can't have leading or trailing whitespace around newline\n )\n return doubleQuotedString(value, ctx);\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n return ctx.implicitKey\n ? res\n : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction quotedString(value, ctx) {\n const { singleQuote } = ctx.options;\n let qs;\n if (singleQuote === false)\n qs = doubleQuotedString;\n else {\n const hasDouble = value.includes('\"');\n const hasSingle = value.includes(\"'\");\n if (hasDouble && !hasSingle)\n qs = singleQuotedString;\n else if (hasSingle && !hasDouble)\n qs = doubleQuotedString;\n else\n qs = singleQuote ? singleQuotedString : doubleQuotedString;\n }\n return qs(value, ctx);\n}\n// The negative lookbehind avoids a polynomial search,\n// but isn't supported yet on Safari: https://caniuse.com/js-regexp-lookbehind\nlet blockEndNewlines;\ntry {\n blockEndNewlines = new RegExp('(^|(?\\n';\n // determine chomping from whitespace at value end\n let chomp;\n let endStart;\n for (endStart = value.length; endStart > 0; --endStart) {\n const ch = value[endStart - 1];\n if (ch !== '\\n' && ch !== '\\t' && ch !== ' ')\n break;\n }\n let end = value.substring(endStart);\n const endNlPos = end.indexOf('\\n');\n if (endNlPos === -1) {\n chomp = '-'; // strip\n }\n else if (value === end || endNlPos !== end.length - 1) {\n chomp = '+'; // keep\n if (onChompKeep)\n onChompKeep();\n }\n else {\n chomp = ''; // clip\n }\n if (end) {\n value = value.slice(0, -end.length);\n if (end[end.length - 1] === '\\n')\n end = end.slice(0, -1);\n end = end.replace(blockEndNewlines, `$&${indent}`);\n }\n // determine indent indicator from whitespace at value start\n let startWithSpace = false;\n let startEnd;\n let startNlPos = -1;\n for (startEnd = 0; startEnd < value.length; ++startEnd) {\n const ch = value[startEnd];\n if (ch === ' ')\n startWithSpace = true;\n else if (ch === '\\n')\n startNlPos = startEnd;\n else\n break;\n }\n let start = value.substring(0, startNlPos < startEnd ? startNlPos + 1 : startEnd);\n if (start) {\n value = value.substring(start.length);\n start = start.replace(/\\n+/g, `$&${indent}`);\n }\n const indentSize = indent ? '2' : '1'; // root is at -1\n let header = (literal ? '|' : '>') + (startWithSpace ? indentSize : '') + chomp;\n if (comment) {\n header += ' ' + commentString(comment.replace(/ ?[\\r\\n]+/g, ' '));\n if (onComment)\n onComment();\n }\n if (literal) {\n value = value.replace(/\\n+/g, `$&${indent}`);\n return `${header}\\n${indent}${start}${value}${end}`;\n }\n value = value\n .replace(/\\n+/g, '\\n$&')\n .replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, `$&${indent}`);\n const body = foldFlowLines(`${start}${value}${end}`, indent, FOLD_BLOCK, getFoldOptions(ctx, true));\n return `${header}\\n${indent}${body}`;\n}\nfunction plainString(item, ctx, onComment, onChompKeep) {\n const { type, value } = item;\n const { actualString, implicitKey, indent, indentStep, inFlow } = ctx;\n if ((implicitKey && value.includes('\\n')) ||\n (inFlow && /[[\\]{},]/.test(value))) {\n return quotedString(value, ctx);\n }\n if (!value ||\n /^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - empty string, '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || !value.includes('\\n')\n ? quotedString(value, ctx)\n : blockString(item, ctx, onComment, onChompKeep);\n }\n if (!implicitKey &&\n !inFlow &&\n type !== Scalar.PLAIN &&\n value.includes('\\n')) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n if (containsDocumentMarker(value)) {\n if (indent === '') {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n else if (implicitKey && indent === indentStep) {\n return quotedString(value, ctx);\n }\n }\n const str = value.replace(/\\n+/g, `$&\\n${indent}`);\n // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n if (actualString) {\n const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && tag.test?.test(str);\n const { compat, tags } = ctx.doc.schema;\n if (tags.some(test) || compat?.some(test))\n return quotedString(value, ctx);\n }\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n const { implicitKey, inFlow } = ctx;\n const ss = typeof item.value === 'string'\n ? item\n : Object.assign({}, item, { value: String(item.value) });\n let { type } = item;\n if (type !== Scalar.QUOTE_DOUBLE) {\n // force double quotes on control characters & unpaired surrogates\n if (/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(ss.value))\n type = Scalar.QUOTE_DOUBLE;\n }\n const _stringify = (_type) => {\n switch (_type) {\n case Scalar.BLOCK_FOLDED:\n case Scalar.BLOCK_LITERAL:\n return implicitKey || inFlow\n ? quotedString(ss.value, ctx) // blocks are not valid inside flow containers\n : blockString(ss, ctx, onComment, onChompKeep);\n case Scalar.QUOTE_DOUBLE:\n return doubleQuotedString(ss.value, ctx);\n case Scalar.QUOTE_SINGLE:\n return singleQuotedString(ss.value, ctx);\n case Scalar.PLAIN:\n return plainString(ss, ctx, onComment, onChompKeep);\n default:\n return null;\n }\n };\n let res = _stringify(type);\n if (res === null) {\n const { defaultKeyType, defaultStringType } = ctx.options;\n const t = (implicitKey && defaultKeyType) || defaultStringType;\n res = _stringify(t);\n if (res === null)\n throw new Error(`Unsupported default string type ${t}`);\n }\n return res;\n}\n\nexport { stringifyString };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/identity.js';\nimport { stringifyComment } from './stringifyComment.js';\nimport { stringifyString } from './stringifyString.js';\n\nfunction createStringifyContext(doc, options) {\n const opt = Object.assign({\n blockQuote: true,\n commentString: stringifyComment,\n defaultKeyType: null,\n defaultStringType: 'PLAIN',\n directives: null,\n doubleQuotedAsJSON: false,\n doubleQuotedMinMultiLineLength: 40,\n falseStr: 'false',\n flowCollectionPadding: true,\n indentSeq: true,\n lineWidth: 80,\n minContentWidth: 20,\n nullStr: 'null',\n simpleKeys: false,\n singleQuote: null,\n trueStr: 'true',\n verifyAliasOrder: true\n }, doc.schema.toStringOptions, options);\n let inFlow;\n switch (opt.collectionStyle) {\n case 'block':\n inFlow = false;\n break;\n case 'flow':\n inFlow = true;\n break;\n default:\n inFlow = null;\n }\n return {\n anchors: new Set(),\n doc,\n flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',\n indent: '',\n indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',\n inFlow,\n options: opt\n };\n}\nfunction getTagObject(tags, item) {\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0)\n return match.find(t => t.format === item.format) ?? match[0];\n }\n let tagObj = undefined;\n let obj;\n if (isScalar(item)) {\n obj = item.value;\n const match = tags.filter(t => t.identify?.(obj));\n tagObj =\n match.find(t => t.format === item.format) ?? match.find(t => !t.format);\n }\n else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n if (!tagObj) {\n const name = obj?.constructor?.name ?? typeof obj;\n throw new Error(`Tag not resolved for ${name} value`);\n }\n return tagObj;\n}\n// needs to be called before value stringifier to allow for circular anchor refs\nfunction stringifyProps(node, tagObj, { anchors, doc }) {\n if (!doc.directives)\n return '';\n const props = [];\n const anchor = (isScalar(node) || isCollection(node)) && node.anchor;\n if (anchor && anchorIsValid(anchor)) {\n anchors.add(anchor);\n props.push(`&${anchor}`);\n }\n const tag = node.tag ? node.tag : tagObj.default ? null : tagObj.tag;\n if (tag)\n props.push(doc.directives.tagString(tag));\n return props.join(' ');\n}\nfunction stringify(item, ctx, onComment, onChompKeep) {\n if (isPair(item))\n return item.toString(ctx, onComment, onChompKeep);\n if (isAlias(item)) {\n if (ctx.doc.directives)\n return item.toString(ctx);\n if (ctx.resolvedAliases?.has(item)) {\n throw new TypeError(`Cannot stringify circular structure without alias nodes`);\n }\n else {\n if (ctx.resolvedAliases)\n ctx.resolvedAliases.add(item);\n else\n ctx.resolvedAliases = new Set([item]);\n item = item.resolve(ctx.doc);\n }\n }\n let tagObj = undefined;\n const node = isNode(item)\n ? item\n : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });\n if (!tagObj)\n tagObj = getTagObject(ctx.doc.schema.tags, node);\n const props = stringifyProps(node, tagObj, ctx);\n if (props.length > 0)\n ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function'\n ? tagObj.stringify(node, ctx, onComment, onChompKeep)\n : isScalar(node)\n ? stringifyString(node, ctx, onComment, onChompKeep)\n : node.toString(ctx, onComment, onChompKeep);\n if (!props)\n return str;\n return isScalar(node) || str[0] === '{' || str[0] === '['\n ? `${props} ${str}`\n : `${props}\\n${ctx.indent}${str}`;\n}\n\nexport { createStringifyContext, stringify };\n","import { isCollection, isNode, isScalar, isSeq } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyPair({ key, value }, ctx, onComment, onChompKeep) {\n const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;\n let keyComment = (isNode(key) && key.comment) || null;\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n if (isCollection(key) || (!isNode(key) && typeof key === 'object')) {\n const msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n let explicitKey = !simpleKeys &&\n (!key ||\n (keyComment && value == null && !ctx.inFlow) ||\n isCollection(key) ||\n (isScalar(key)\n ? key.type === Scalar.BLOCK_FOLDED || key.type === Scalar.BLOCK_LITERAL\n : typeof key === 'object'));\n ctx = Object.assign({}, ctx, {\n allNullValues: false,\n implicitKey: !explicitKey && (simpleKeys || !allNullValues),\n indent: indent + indentStep\n });\n let keyCommentDone = false;\n let chompKeep = false;\n let str = stringify(key, ctx, () => (keyCommentDone = true), () => (chompKeep = true));\n if (!explicitKey && !ctx.inFlow && str.length > 1024) {\n if (simpleKeys)\n throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n if (ctx.inFlow) {\n if (allNullValues || value == null) {\n if (keyCommentDone && onComment)\n onComment();\n return str === '' ? '?' : explicitKey ? `? ${str}` : str;\n }\n }\n else if ((allNullValues && !simpleKeys) || (value == null && explicitKey)) {\n str = `? ${str}`;\n if (keyComment && !keyCommentDone) {\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n }\n if (keyCommentDone)\n keyComment = null;\n if (explicitKey) {\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n str = `? ${str}\\n${indent}:`;\n }\n else {\n str = `${str}:`;\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n let vsb, vcb, valueComment;\n if (isNode(value)) {\n vsb = !!value.spaceBefore;\n vcb = value.commentBefore;\n valueComment = value.comment;\n }\n else {\n vsb = false;\n vcb = null;\n valueComment = null;\n if (value && typeof value === 'object')\n value = doc.createNode(value);\n }\n ctx.implicitKey = false;\n if (!explicitKey && !keyComment && isScalar(value))\n ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n if (!indentSeq &&\n indentStep.length >= 2 &&\n !ctx.inFlow &&\n !explicitKey &&\n isSeq(value) &&\n !value.flow &&\n !value.tag &&\n !value.anchor) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substring(2);\n }\n let valueCommentDone = false;\n const valueStr = stringify(value, ctx, () => (valueCommentDone = true), () => (chompKeep = true));\n let ws = ' ';\n if (keyComment || vsb || vcb) {\n ws = vsb ? '\\n' : '';\n if (vcb) {\n const cs = commentString(vcb);\n ws += `\\n${indentComment(cs, ctx.indent)}`;\n }\n if (valueStr === '' && !ctx.inFlow) {\n if (ws === '\\n')\n ws = '\\n\\n';\n }\n else {\n ws += `\\n${ctx.indent}`;\n }\n }\n else if (!explicitKey && isCollection(value)) {\n const vs0 = valueStr[0];\n const nl0 = valueStr.indexOf('\\n');\n const hasNewline = nl0 !== -1;\n const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;\n if (hasNewline || !flow) {\n let hasPropsLine = false;\n if (hasNewline && (vs0 === '&' || vs0 === '!')) {\n let sp0 = valueStr.indexOf(' ');\n if (vs0 === '&' &&\n sp0 !== -1 &&\n sp0 < nl0 &&\n valueStr[sp0 + 1] === '!') {\n sp0 = valueStr.indexOf(' ', sp0 + 1);\n }\n if (sp0 === -1 || nl0 < sp0)\n hasPropsLine = true;\n }\n if (!hasPropsLine)\n ws = `\\n${ctx.indent}`;\n }\n }\n else if (valueStr === '' || valueStr[0] === '\\n') {\n ws = '';\n }\n str += ws + valueStr;\n if (ctx.inFlow) {\n if (valueCommentDone && onComment)\n onComment();\n }\n else if (valueComment && !valueCommentDone) {\n str += lineComment(str, ctx.indent, commentString(valueComment));\n }\n else if (chompKeep && onChompKeep) {\n onChompKeep();\n }\n return str;\n}\n\nexport { stringifyPair };\n","function debug(logLevel, ...messages) {\n if (logLevel === 'debug')\n console.log(...messages);\n}\nfunction warn(logLevel, warning) {\n if (logLevel === 'debug' || logLevel === 'warn') {\n if (typeof process !== 'undefined' && process.emitWarning)\n process.emitWarning(warning);\n else\n console.warn(warning);\n }\n}\n\nexport { debug, warn };\n","import { warn } from '../log.js';\nimport { createStringifyContext } from '../stringify/stringify.js';\nimport { isAlias, isSeq, isScalar, isMap, isNode } from './identity.js';\nimport { Scalar } from './Scalar.js';\nimport { toJS } from './toJS.js';\n\nconst MERGE_KEY = '<<';\nfunction addPairToJSMap(ctx, map, { key, value }) {\n if (ctx?.doc.schema.merge && isMergeKey(key)) {\n value = isAlias(value) ? value.resolve(ctx.doc) : value;\n if (isSeq(value))\n for (const it of value.items)\n mergeToJSMap(ctx, map, it);\n else if (Array.isArray(value))\n for (const it of value)\n mergeToJSMap(ctx, map, it);\n else\n mergeToJSMap(ctx, map, value);\n }\n else {\n const jsKey = toJS(key, '', ctx);\n if (map instanceof Map) {\n map.set(jsKey, toJS(value, jsKey, ctx));\n }\n else if (map instanceof Set) {\n map.add(jsKey);\n }\n else {\n const stringKey = stringifyKey(key, jsKey, ctx);\n const jsValue = toJS(value, stringKey, ctx);\n if (stringKey in map)\n Object.defineProperty(map, stringKey, {\n value: jsValue,\n writable: true,\n enumerable: true,\n configurable: true\n });\n else\n map[stringKey] = jsValue;\n }\n }\n return map;\n}\nconst isMergeKey = (key) => key === MERGE_KEY ||\n (isScalar(key) &&\n key.value === MERGE_KEY &&\n (!key.type || key.type === Scalar.PLAIN));\n// If the value associated with a merge key is a single mapping node, each of\n// its key/value pairs is inserted into the current mapping, unless the key\n// already exists in it. If the value associated with the merge key is a\n// sequence, then this sequence is expected to contain mapping nodes and each\n// of these nodes is merged in turn according to its order in the sequence.\n// Keys in mapping nodes earlier in the sequence override keys specified in\n// later mapping nodes. -- http://yaml.org/type/merge.html\nfunction mergeToJSMap(ctx, map, value) {\n const source = ctx && isAlias(value) ? value.resolve(ctx.doc) : value;\n if (!isMap(source))\n throw new Error('Merge sources must be maps or map aliases');\n const srcMap = source.toJSON(null, ctx, Map);\n for (const [key, value] of srcMap) {\n if (map instanceof Map) {\n if (!map.has(key))\n map.set(key, value);\n }\n else if (map instanceof Set) {\n map.add(key);\n }\n else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n return map;\n}\nfunction stringifyKey(key, jsKey, ctx) {\n if (jsKey === null)\n return '';\n if (typeof jsKey !== 'object')\n return String(jsKey);\n if (isNode(key) && ctx?.doc) {\n const strCtx = createStringifyContext(ctx.doc, {});\n strCtx.anchors = new Set();\n for (const node of ctx.anchors.keys())\n strCtx.anchors.add(node.anchor);\n strCtx.inFlow = true;\n strCtx.inStringifyKey = true;\n const strKey = key.toString(strCtx);\n if (!ctx.mapKeyWarned) {\n let jsonStr = JSON.stringify(strKey);\n if (jsonStr.length > 40)\n jsonStr = jsonStr.substring(0, 36) + '...\"';\n warn(ctx.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${jsonStr}. Set mapAsMap: true to use object keys.`);\n ctx.mapKeyWarned = true;\n }\n return strKey;\n }\n return JSON.stringify(jsKey);\n}\n\nexport { addPairToJSMap };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyPair } from '../stringify/stringifyPair.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { NODE_TYPE, PAIR, isNode } from './identity.js';\n\nfunction createPair(key, value, ctx) {\n const k = createNode(key, undefined, ctx);\n const v = createNode(value, undefined, ctx);\n return new Pair(k, v);\n}\nclass Pair {\n constructor(key, value = null) {\n Object.defineProperty(this, NODE_TYPE, { value: PAIR });\n this.key = key;\n this.value = value;\n }\n clone(schema) {\n let { key, value } = this;\n if (isNode(key))\n key = key.clone(schema);\n if (isNode(value))\n value = value.clone(schema);\n return new Pair(key, value);\n }\n toJSON(_, ctx) {\n const pair = ctx?.mapAsMap ? new Map() : {};\n return addPairToJSMap(ctx, pair, this);\n }\n toString(ctx, onComment, onChompKeep) {\n return ctx?.doc\n ? stringifyPair(this, ctx, onComment, onChompKeep)\n : JSON.stringify(this);\n }\n}\n\nexport { Pair, createPair };\n","import { isNode, isPair } from '../nodes/identity.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyCollection(collection, ctx, options) {\n const flow = ctx.inFlow ?? collection.flow;\n const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;\n return stringify(collection, ctx, options);\n}\nfunction stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {\n const { indent, options: { commentString } } = ctx;\n const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });\n let chompKeep = false; // flag for the preceding node's status\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (!chompKeep && item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, chompKeep);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (!chompKeep && ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);\n }\n }\n chompKeep = false;\n let str = stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (chompKeep && comment)\n chompKeep = false;\n lines.push(blockItemPrefix + str);\n }\n let str;\n if (lines.length === 0) {\n str = flowChars.start + flowChars.end;\n }\n else {\n str = lines[0];\n for (let i = 1; i < lines.length; ++i) {\n const line = lines[i];\n str += line ? `\\n${indent}${line}` : '\\n';\n }\n }\n if (comment) {\n str += '\\n' + indentComment(commentString(comment), indent);\n if (onComment)\n onComment();\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n}\nfunction stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {\n const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;\n itemIndent += indentStep;\n const itemCtx = Object.assign({}, ctx, {\n indent: itemIndent,\n inFlow: true,\n type: null\n });\n let reqNewline = false;\n let linesAtValue = 0;\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, false);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, false);\n if (ik.comment)\n reqNewline = true;\n }\n const iv = isNode(item.value) ? item.value : null;\n if (iv) {\n if (iv.comment)\n comment = iv.comment;\n if (iv.commentBefore)\n reqNewline = true;\n }\n else if (item.value == null && ik?.comment) {\n comment = ik.comment;\n }\n }\n if (comment)\n reqNewline = true;\n let str = stringify(item, itemCtx, () => (comment = null));\n if (i < items.length - 1)\n str += ',';\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (!reqNewline && (lines.length > linesAtValue || str.includes('\\n')))\n reqNewline = true;\n lines.push(str);\n linesAtValue = lines.length;\n }\n const { start, end } = flowChars;\n if (lines.length === 0) {\n return start + end;\n }\n else {\n if (!reqNewline) {\n const len = lines.reduce((sum, line) => sum + line.length + 2, 2);\n reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;\n }\n if (reqNewline) {\n let str = start;\n for (const line of lines)\n str += line ? `\\n${indentStep}${indent}${line}` : '\\n';\n return `${str}\\n${indent}${end}`;\n }\n else {\n return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;\n }\n }\n}\nfunction addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {\n if (comment && chompKeep)\n comment = comment.replace(/^\\n+/, '');\n if (comment) {\n const ic = indentComment(commentString(comment), indent);\n lines.push(ic.trimStart()); // Avoid double indent on first line\n }\n}\n\nexport { stringifyCollection };\n","import { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { Collection } from './Collection.js';\nimport { isPair, isScalar, MAP } from './identity.js';\nimport { Pair, createPair } from './Pair.js';\nimport { isScalarValue } from './Scalar.js';\n\nfunction findPair(items, key) {\n const k = isScalar(key) ? key.value : key;\n for (const it of items) {\n if (isPair(it)) {\n if (it.key === key || it.key === k)\n return it;\n if (isScalar(it.key) && it.key.value === k)\n return it;\n }\n }\n return undefined;\n}\nclass YAMLMap extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:map';\n }\n constructor(schema) {\n super(MAP, schema);\n this.items = [];\n }\n /**\n * A generic collection parsing method that can be extended\n * to other node classes that inherit from YAMLMap\n */\n static from(schema, obj, ctx) {\n const { keepUndefined, replacer } = ctx;\n const map = new this(schema);\n const add = (key, value) => {\n if (typeof replacer === 'function')\n value = replacer.call(obj, key, value);\n else if (Array.isArray(replacer) && !replacer.includes(key))\n return;\n if (value !== undefined || keepUndefined)\n map.items.push(createPair(key, value, ctx));\n };\n if (obj instanceof Map) {\n for (const [key, value] of obj)\n add(key, value);\n }\n else if (obj && typeof obj === 'object') {\n for (const key of Object.keys(obj))\n add(key, obj[key]);\n }\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n return map;\n }\n /**\n * Adds a value to the collection.\n *\n * @param overwrite - If not set `true`, using a key that is already in the\n * collection will throw. Otherwise, overwrites the previous value.\n */\n add(pair, overwrite) {\n let _pair;\n if (isPair(pair))\n _pair = pair;\n else if (!pair || typeof pair !== 'object' || !('key' in pair)) {\n // In TypeScript, this never happens.\n _pair = new Pair(pair, pair?.value);\n }\n else\n _pair = new Pair(pair.key, pair.value);\n const prev = findPair(this.items, _pair.key);\n const sortEntries = this.schema?.sortMapEntries;\n if (prev) {\n if (!overwrite)\n throw new Error(`Key ${_pair.key} already set`);\n // For scalars, keep the old node & its comments and anchors\n if (isScalar(prev.value) && isScalarValue(_pair.value))\n prev.value.value = _pair.value;\n else\n prev.value = _pair.value;\n }\n else if (sortEntries) {\n const i = this.items.findIndex(item => sortEntries(_pair, item) < 0);\n if (i === -1)\n this.items.push(_pair);\n else\n this.items.splice(i, 0, _pair);\n }\n else {\n this.items.push(_pair);\n }\n }\n delete(key) {\n const it = findPair(this.items, key);\n if (!it)\n return false;\n const del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const it = findPair(this.items, key);\n const node = it?.value;\n return (!keepScalar && isScalar(node) ? node.value : node) ?? undefined;\n }\n has(key) {\n return !!findPair(this.items, key);\n }\n set(key, value) {\n this.add(new Pair(key, value), true);\n }\n /**\n * @param ctx - Conversion context, originally set in Document#toJS()\n * @param {Class} Type - If set, forces the returned collection type\n * @returns Instance of Type, Map, or Object\n */\n toJSON(_, ctx, Type) {\n const map = Type ? new Type() : ctx?.mapAsMap ? new Map() : {};\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const item of this.items)\n addPairToJSMap(ctx, map, item);\n return map;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n for (const item of this.items) {\n if (!isPair(item))\n throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n }\n if (!ctx.allNullValues && this.hasAllNullValues(false))\n ctx = Object.assign({}, ctx, { allNullValues: true });\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '',\n flowChars: { start: '{', end: '}' },\n itemIndent: ctx.indent || '',\n onChompKeep,\n onComment\n });\n }\n}\n\nexport { YAMLMap, findPair };\n","import { isMap } from '../../nodes/identity.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\n\nconst map = {\n collection: 'map',\n default: true,\n nodeClass: YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve(map, onError) {\n if (!isMap(map))\n onError('Expected a mapping for this tag');\n return map;\n },\n createNode: (schema, obj, ctx) => YAMLMap.from(schema, obj, ctx)\n};\n\nexport { map };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { Collection } from './Collection.js';\nimport { SEQ, isScalar } from './identity.js';\nimport { isScalarValue } from './Scalar.js';\nimport { toJS } from './toJS.js';\n\nclass YAMLSeq extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:seq';\n }\n constructor(schema) {\n super(SEQ, schema);\n this.items = [];\n }\n add(value) {\n this.items.push(value);\n }\n /**\n * Removes a value from the collection.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n *\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return false;\n const del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return undefined;\n const it = this.items[idx];\n return !keepScalar && isScalar(it) ? it.value : it;\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n */\n has(key) {\n const idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n *\n * If `key` does not contain a representation of an integer, this will throw.\n * It may be wrapped in a `Scalar`.\n */\n set(key, value) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n throw new Error(`Expected a valid index, not ${key}.`);\n const prev = this.items[idx];\n if (isScalar(prev) && isScalarValue(value))\n prev.value = value;\n else\n this.items[idx] = value;\n }\n toJSON(_, ctx) {\n const seq = [];\n if (ctx?.onCreate)\n ctx.onCreate(seq);\n let i = 0;\n for (const item of this.items)\n seq.push(toJS(item, String(i++), ctx));\n return seq;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '- ',\n flowChars: { start: '[', end: ']' },\n itemIndent: (ctx.indent || '') + ' ',\n onChompKeep,\n onComment\n });\n }\n static from(schema, obj, ctx) {\n const { replacer } = ctx;\n const seq = new this(schema);\n if (obj && Symbol.iterator in Object(obj)) {\n let i = 0;\n for (let it of obj) {\n if (typeof replacer === 'function') {\n const key = obj instanceof Set ? it : String(i++);\n it = replacer.call(obj, key, it);\n }\n seq.items.push(createNode(it, undefined, ctx));\n }\n }\n return seq;\n }\n}\nfunction asItemIndex(key) {\n let idx = isScalar(key) ? key.value : key;\n if (idx && typeof idx === 'string')\n idx = Number(idx);\n return typeof idx === 'number' && Number.isInteger(idx) && idx >= 0\n ? idx\n : null;\n}\n\nexport { YAMLSeq };\n","import { isSeq } from '../../nodes/identity.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nconst seq = {\n collection: 'seq',\n default: true,\n nodeClass: YAMLSeq,\n tag: 'tag:yaml.org,2002:seq',\n resolve(seq, onError) {\n if (!isSeq(seq))\n onError('Expected a sequence for this tag');\n return seq;\n },\n createNode: (schema, obj, ctx) => YAMLSeq.from(schema, obj, ctx)\n};\n\nexport { seq };\n","import { stringifyString } from '../../stringify/stringifyString.js';\n\nconst string = {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify(item, ctx, onComment, onChompKeep) {\n ctx = Object.assign({ actualString: true }, ctx);\n return stringifyString(item, ctx, onComment, onChompKeep);\n }\n};\n\nexport { string };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst nullTag = {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: () => new Scalar(null),\n stringify: ({ source }, ctx) => typeof source === 'string' && nullTag.test.test(source)\n ? source\n : ctx.options.nullStr\n};\n\nexport { nullTag };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst boolTag = {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n resolve: str => new Scalar(str[0] === 't' || str[0] === 'T'),\n stringify({ source, value }, ctx) {\n if (source && boolTag.test.test(source)) {\n const sv = source[0] === 't' || source[0] === 'T';\n if (value === sv)\n return source;\n }\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n }\n};\n\nexport { boolTag };\n","function stringifyNumber({ format, minFractionDigits, tag, value }) {\n if (typeof value === 'bigint')\n return String(value);\n const num = typeof value === 'number' ? value : Number(value);\n if (!isFinite(num))\n return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf';\n let n = JSON.stringify(value);\n if (!format &&\n minFractionDigits &&\n (!tag || tag === 'tag:yaml.org,2002:float') &&\n /^\\d/.test(n)) {\n let i = n.indexOf('.');\n if (i < 0) {\n i = n.length;\n n += '.';\n }\n let d = minFractionDigits - (n.length - i - 1);\n while (d-- > 0)\n n += '0';\n }\n return n;\n}\n\nexport { stringifyNumber };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: str => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n resolve: str => parseFloat(str),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str));\n const dot = str.indexOf('.');\n if (dot !== -1 && str[str.length - 1] === '0')\n node.minFractionDigits = str.length - dot - 1;\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nconst intResolve = (str, offset, radix, { intAsBigInt }) => (intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix));\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value) && value >= 0)\n return prefix + value.toString(radix);\n return stringifyNumber(node);\n}\nconst intOct = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^0o[0-7]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 8, opt),\n stringify: node => intStringify(node, 8, '0o')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^0x[0-9a-fA-F]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intHex, intOct };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { boolTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intOct, int, intHex } from './int.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n boolTag,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float\n];\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { map } from '../common/map.js';\nimport { seq } from '../common/seq.js';\n\nfunction intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n}\nconst stringifyJSON = ({ value }) => JSON.stringify(value);\nconst jsonScalars = [\n {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify: stringifyJSON\n },\n {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^null$/,\n resolve: () => null,\n stringify: stringifyJSON\n },\n {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^true|false$/,\n resolve: str => str === 'true',\n stringify: stringifyJSON\n },\n {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^-?(?:0|[1-9][0-9]*)$/,\n resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10),\n stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value)\n },\n {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n resolve: str => parseFloat(str),\n stringify: stringifyJSON\n }\n];\nconst jsonError = {\n default: true,\n tag: '',\n test: /^/,\n resolve(str, onError) {\n onError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n return str;\n }\n};\nconst schema = [map, seq].concat(jsonScalars, jsonError);\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyString } from '../../stringify/stringifyString.js';\n\nconst binary = {\n identify: value => value instanceof Uint8Array, // Buffer inherits from Uint8Array\n default: false,\n tag: 'tag:yaml.org,2002:binary',\n /**\n * Returns a Buffer in node and an Uint8Array in browsers\n *\n * To use the resulting buffer as an image, you'll want to do something like:\n *\n * const blob = new Blob([buffer], { type: 'image/jpeg' })\n * document.querySelector('#photo').src = URL.createObjectURL(blob)\n */\n resolve(src, onError) {\n if (typeof Buffer === 'function') {\n return Buffer.from(src, 'base64');\n }\n else if (typeof atob === 'function') {\n // On IE 11, atob() can't handle newlines\n const str = atob(src.replace(/[\\n\\r]/g, ''));\n const buffer = new Uint8Array(str.length);\n for (let i = 0; i < str.length; ++i)\n buffer[i] = str.charCodeAt(i);\n return buffer;\n }\n else {\n onError('This environment does not support reading binary tags; either Buffer or atob is required');\n return src;\n }\n },\n stringify({ comment, type, value }, ctx, onComment, onChompKeep) {\n const buf = value; // checked earlier by binary.identify()\n let str;\n if (typeof Buffer === 'function') {\n str =\n buf instanceof Buffer\n ? buf.toString('base64')\n : Buffer.from(buf.buffer).toString('base64');\n }\n else if (typeof btoa === 'function') {\n let s = '';\n for (let i = 0; i < buf.length; ++i)\n s += String.fromCharCode(buf[i]);\n str = btoa(s);\n }\n else {\n throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n }\n if (!type)\n type = Scalar.BLOCK_LITERAL;\n if (type !== Scalar.QUOTE_DOUBLE) {\n const lineWidth = Math.max(ctx.options.lineWidth - ctx.indent.length, ctx.options.minContentWidth);\n const n = Math.ceil(str.length / lineWidth);\n const lines = new Array(n);\n for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n lines[i] = str.substr(o, lineWidth);\n }\n str = lines.join(type === Scalar.BLOCK_LITERAL ? '\\n' : ' ');\n }\n return stringifyString({ comment, type, value: str }, ctx, onComment, onChompKeep);\n }\n};\n\nexport { binary };\n","import { isSeq, isPair, isMap } from '../../nodes/identity.js';\nimport { Pair, createPair } from '../../nodes/Pair.js';\nimport { Scalar } from '../../nodes/Scalar.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nfunction resolvePairs(seq, onError) {\n if (isSeq(seq)) {\n for (let i = 0; i < seq.items.length; ++i) {\n let item = seq.items[i];\n if (isPair(item))\n continue;\n else if (isMap(item)) {\n if (item.items.length > 1)\n onError('Each pair must have its own sequence indicator');\n const pair = item.items[0] || new Pair(new Scalar(null));\n if (item.commentBefore)\n pair.key.commentBefore = pair.key.commentBefore\n ? `${item.commentBefore}\\n${pair.key.commentBefore}`\n : item.commentBefore;\n if (item.comment) {\n const cn = pair.value ?? pair.key;\n cn.comment = cn.comment\n ? `${item.comment}\\n${cn.comment}`\n : item.comment;\n }\n item = pair;\n }\n seq.items[i] = isPair(item) ? item : new Pair(item);\n }\n }\n else\n onError('Expected a sequence for this tag');\n return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n const { replacer } = ctx;\n const pairs = new YAMLSeq(schema);\n pairs.tag = 'tag:yaml.org,2002:pairs';\n let i = 0;\n if (iterable && Symbol.iterator in Object(iterable))\n for (let it of iterable) {\n if (typeof replacer === 'function')\n it = replacer.call(iterable, String(i++), it);\n let key, value;\n if (Array.isArray(it)) {\n if (it.length === 2) {\n key = it[0];\n value = it[1];\n }\n else\n throw new TypeError(`Expected [key, value] tuple: ${it}`);\n }\n else if (it && it instanceof Object) {\n const keys = Object.keys(it);\n if (keys.length === 1) {\n key = keys[0];\n value = it[key];\n }\n else {\n throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);\n }\n }\n else {\n key = it;\n }\n pairs.items.push(createPair(key, value, ctx));\n }\n return pairs;\n}\nconst pairs = {\n collection: 'seq',\n default: false,\n tag: 'tag:yaml.org,2002:pairs',\n resolve: resolvePairs,\n createNode: createPairs\n};\n\nexport { createPairs, pairs, resolvePairs };\n","import { isScalar, isPair } from '../../nodes/identity.js';\nimport { toJS } from '../../nodes/toJS.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\nimport { resolvePairs, createPairs } from './pairs.js';\n\nclass YAMLOMap extends YAMLSeq {\n constructor() {\n super();\n this.add = YAMLMap.prototype.add.bind(this);\n this.delete = YAMLMap.prototype.delete.bind(this);\n this.get = YAMLMap.prototype.get.bind(this);\n this.has = YAMLMap.prototype.has.bind(this);\n this.set = YAMLMap.prototype.set.bind(this);\n this.tag = YAMLOMap.tag;\n }\n /**\n * If `ctx` is given, the return type is actually `Map`,\n * but TypeScript won't allow widening the signature of a child method.\n */\n toJSON(_, ctx) {\n if (!ctx)\n return super.toJSON(_);\n const map = new Map();\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const pair of this.items) {\n let key, value;\n if (isPair(pair)) {\n key = toJS(pair.key, '', ctx);\n value = toJS(pair.value, key, ctx);\n }\n else {\n key = toJS(pair, '', ctx);\n }\n if (map.has(key))\n throw new Error('Ordered maps must not include duplicate keys');\n map.set(key, value);\n }\n return map;\n }\n static from(schema, iterable, ctx) {\n const pairs = createPairs(schema, iterable, ctx);\n const omap = new this();\n omap.items = pairs.items;\n return omap;\n }\n}\nYAMLOMap.tag = 'tag:yaml.org,2002:omap';\nconst omap = {\n collection: 'seq',\n identify: value => value instanceof Map,\n nodeClass: YAMLOMap,\n default: false,\n tag: 'tag:yaml.org,2002:omap',\n resolve(seq, onError) {\n const pairs = resolvePairs(seq, onError);\n const seenKeys = [];\n for (const { key } of pairs.items) {\n if (isScalar(key)) {\n if (seenKeys.includes(key.value)) {\n onError(`Ordered maps must not include duplicate keys: ${key.value}`);\n }\n else {\n seenKeys.push(key.value);\n }\n }\n }\n return Object.assign(new YAMLOMap(), pairs);\n },\n createNode: (schema, iterable, ctx) => YAMLOMap.from(schema, iterable, ctx)\n};\n\nexport { YAMLOMap, omap };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nfunction boolStringify({ value, source }, ctx) {\n const boolObj = value ? trueTag : falseTag;\n if (source && boolObj.test.test(source))\n return source;\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n}\nconst trueTag = {\n identify: value => value === true,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n resolve: () => new Scalar(true),\n stringify: boolStringify\n};\nconst falseTag = {\n identify: value => value === false,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,\n resolve: () => new Scalar(false),\n stringify: boolStringify\n};\n\nexport { falseTag, trueTag };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: (str) => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n resolve: (str) => parseFloat(str.replace(/_/g, '')),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str.replace(/_/g, '')));\n const dot = str.indexOf('.');\n if (dot !== -1) {\n const f = str.substring(dot + 1).replace(/_/g, '');\n if (f[f.length - 1] === '0')\n node.minFractionDigits = f.length;\n }\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nfunction intResolve(str, offset, radix, { intAsBigInt }) {\n const sign = str[0];\n if (sign === '-' || sign === '+')\n offset += 1;\n str = str.substring(offset).replace(/_/g, '');\n if (intAsBigInt) {\n switch (radix) {\n case 2:\n str = `0b${str}`;\n break;\n case 8:\n str = `0o${str}`;\n break;\n case 16:\n str = `0x${str}`;\n break;\n }\n const n = BigInt(str);\n return sign === '-' ? BigInt(-1) * n : n;\n }\n const n = parseInt(str, radix);\n return sign === '-' ? -1 * n : n;\n}\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value)) {\n const str = value.toString(radix);\n return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n }\n return stringifyNumber(node);\n}\nconst intBin = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'BIN',\n test: /^[-+]?0b[0-1_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 2, opt),\n stringify: node => intStringify(node, 2, '0b')\n};\nconst intOct = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^[-+]?0[0-7_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 1, 8, opt),\n stringify: node => intStringify(node, 8, '0')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9][0-9_]*$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^[-+]?0x[0-9a-fA-F_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intBin, intHex, intOct };\n","import { isMap, isPair, isScalar } from '../../nodes/identity.js';\nimport { Pair, createPair } from '../../nodes/Pair.js';\nimport { YAMLMap, findPair } from '../../nodes/YAMLMap.js';\n\nclass YAMLSet extends YAMLMap {\n constructor(schema) {\n super(schema);\n this.tag = YAMLSet.tag;\n }\n add(key) {\n let pair;\n if (isPair(key))\n pair = key;\n else if (key &&\n typeof key === 'object' &&\n 'key' in key &&\n 'value' in key &&\n key.value === null)\n pair = new Pair(key.key, null);\n else\n pair = new Pair(key, null);\n const prev = findPair(this.items, pair.key);\n if (!prev)\n this.items.push(pair);\n }\n /**\n * If `keepPair` is `true`, returns the Pair matching `key`.\n * Otherwise, returns the value of that Pair's key.\n */\n get(key, keepPair) {\n const pair = findPair(this.items, key);\n return !keepPair && isPair(pair)\n ? isScalar(pair.key)\n ? pair.key.value\n : pair.key\n : pair;\n }\n set(key, value) {\n if (typeof value !== 'boolean')\n throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n const prev = findPair(this.items, key);\n if (prev && !value) {\n this.items.splice(this.items.indexOf(prev), 1);\n }\n else if (!prev && value) {\n this.items.push(new Pair(key));\n }\n }\n toJSON(_, ctx) {\n return super.toJSON(_, ctx, Set);\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n if (this.hasAllNullValues(true))\n return super.toString(Object.assign({}, ctx, { allNullValues: true }), onComment, onChompKeep);\n else\n throw new Error('Set items must all have null values');\n }\n static from(schema, iterable, ctx) {\n const { replacer } = ctx;\n const set = new this(schema);\n if (iterable && Symbol.iterator in Object(iterable))\n for (let value of iterable) {\n if (typeof replacer === 'function')\n value = replacer.call(iterable, value, value);\n set.items.push(createPair(value, null, ctx));\n }\n return set;\n }\n}\nYAMLSet.tag = 'tag:yaml.org,2002:set';\nconst set = {\n collection: 'map',\n identify: value => value instanceof Set,\n nodeClass: YAMLSet,\n default: false,\n tag: 'tag:yaml.org,2002:set',\n createNode: (schema, iterable, ctx) => YAMLSet.from(schema, iterable, ctx),\n resolve(map, onError) {\n if (isMap(map)) {\n if (map.hasAllNullValues(true))\n return Object.assign(new YAMLSet(), map);\n else\n onError('Set items must all have null values');\n }\n else\n onError('Expected a mapping for this tag');\n return map;\n }\n};\n\nexport { YAMLSet, set };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\n/** Internal types handle bigint as number, because TS can't figure it out. */\nfunction parseSexagesimal(str, asBigInt) {\n const sign = str[0];\n const parts = sign === '-' || sign === '+' ? str.substring(1) : str;\n const num = (n) => asBigInt ? BigInt(n) : Number(n);\n const res = parts\n .replace(/_/g, '')\n .split(':')\n .reduce((res, p) => res * num(60) + num(p), num(0));\n return (sign === '-' ? num(-1) * res : res);\n}\n/**\n * hhhh:mm:ss.sss\n *\n * Internal types handle bigint as number, because TS can't figure it out.\n */\nfunction stringifySexagesimal(node) {\n let { value } = node;\n let num = (n) => n;\n if (typeof value === 'bigint')\n num = n => BigInt(n);\n else if (isNaN(value) || !isFinite(value))\n return stringifyNumber(node);\n let sign = '';\n if (value < 0) {\n sign = '-';\n value *= num(-1);\n }\n const _60 = num(60);\n const parts = [value % _60]; // seconds, including ms\n if (value < 60) {\n parts.unshift(0); // at least one : is required\n }\n else {\n value = (value - parts[0]) / _60;\n parts.unshift(value % _60); // minutes\n if (value >= 60) {\n value = (value - parts[0]) / _60;\n parts.unshift(value); // hours\n }\n }\n return (sign +\n parts\n .map(n => String(n).padStart(2, '0'))\n .join(':')\n .replace(/000000\\d*$/, '') // % 60 may introduce error\n );\n}\nconst intTime = {\n identify: value => typeof value === 'bigint' || Number.isInteger(value),\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,\n resolve: (str, _onError, { intAsBigInt }) => parseSexagesimal(str, intAsBigInt),\n stringify: stringifySexagesimal\n};\nconst floatTime = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,\n resolve: str => parseSexagesimal(str, false),\n stringify: stringifySexagesimal\n};\nconst timestamp = {\n identify: value => value instanceof Date,\n default: true,\n tag: 'tag:yaml.org,2002:timestamp',\n // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n // may be omitted altogether, resulting in a date format. In such a case, the time part is\n // assumed to be 00:00:00Z (start of day, UTC).\n test: RegExp('^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n '(?:' + // time is optional\n '(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n ')?$'),\n resolve(str) {\n const match = str.match(timestamp.test);\n if (!match)\n throw new Error('!!timestamp expects a date, starting with yyyy-mm-dd');\n const [, year, month, day, hour, minute, second] = match.map(Number);\n const millisec = match[7] ? Number((match[7] + '00').substr(1, 3)) : 0;\n let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec);\n const tz = match[8];\n if (tz && tz !== 'Z') {\n let d = parseSexagesimal(tz, false);\n if (Math.abs(d) < 30)\n d *= 60;\n date -= 60000 * d;\n }\n return new Date(date);\n },\n stringify: ({ value }) => value.toISOString().replace(/((T00:00)?:00)?\\.000Z$/, '')\n};\n\nexport { floatTime, intTime, timestamp };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { binary } from './binary.js';\nimport { trueTag, falseTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intBin, intOct, int, intHex } from './int.js';\nimport { omap } from './omap.js';\nimport { pairs } from './pairs.js';\nimport { set } from './set.js';\nimport { intTime, floatTime, timestamp } from './timestamp.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n trueTag,\n falseTag,\n intBin,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float,\n binary,\n omap,\n pairs,\n set,\n intTime,\n floatTime,\n timestamp\n];\n\nexport { schema };\n","import { map } from './common/map.js';\nimport { nullTag } from './common/null.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { boolTag } from './core/bool.js';\nimport { float, floatExp, floatNaN } from './core/float.js';\nimport { int, intHex, intOct } from './core/int.js';\nimport { schema } from './core/schema.js';\nimport { schema as schema$1 } from './json/schema.js';\nimport { binary } from './yaml-1.1/binary.js';\nimport { omap } from './yaml-1.1/omap.js';\nimport { pairs } from './yaml-1.1/pairs.js';\nimport { schema as schema$2 } from './yaml-1.1/schema.js';\nimport { set } from './yaml-1.1/set.js';\nimport { timestamp, floatTime, intTime } from './yaml-1.1/timestamp.js';\n\nconst schemas = new Map([\n ['core', schema],\n ['failsafe', [map, seq, string]],\n ['json', schema$1],\n ['yaml11', schema$2],\n ['yaml-1.1', schema$2]\n]);\nconst tagsByName = {\n binary,\n bool: boolTag,\n float,\n floatExp,\n floatNaN,\n floatTime,\n int,\n intHex,\n intOct,\n intTime,\n map,\n null: nullTag,\n omap,\n pairs,\n seq,\n set,\n timestamp\n};\nconst coreKnownTags = {\n 'tag:yaml.org,2002:binary': binary,\n 'tag:yaml.org,2002:omap': omap,\n 'tag:yaml.org,2002:pairs': pairs,\n 'tag:yaml.org,2002:set': set,\n 'tag:yaml.org,2002:timestamp': timestamp\n};\nfunction getTags(customTags, schemaName) {\n let tags = schemas.get(schemaName);\n if (!tags) {\n if (Array.isArray(customTags))\n tags = [];\n else {\n const keys = Array.from(schemas.keys())\n .filter(key => key !== 'yaml11')\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown schema \"${schemaName}\"; use one of ${keys} or define customTags array`);\n }\n }\n if (Array.isArray(customTags)) {\n for (const tag of customTags)\n tags = tags.concat(tag);\n }\n else if (typeof customTags === 'function') {\n tags = customTags(tags.slice());\n }\n return tags.map(tag => {\n if (typeof tag !== 'string')\n return tag;\n const tagObj = tagsByName[tag];\n if (tagObj)\n return tagObj;\n const keys = Object.keys(tagsByName)\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown custom tag \"${tag}\"; use one of ${keys}`);\n });\n}\n\nexport { coreKnownTags, getTags };\n","import { MAP, SCALAR, SEQ } from '../nodes/identity.js';\nimport { map } from './common/map.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { getTags, coreKnownTags } from './tags.js';\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\nclass Schema {\n constructor({ compat, customTags, merge, resolveKnownTags, schema, sortMapEntries, toStringDefaults }) {\n this.compat = Array.isArray(compat)\n ? getTags(compat, 'compat')\n : compat\n ? getTags(null, compat)\n : null;\n this.merge = !!merge;\n this.name = (typeof schema === 'string' && schema) || 'core';\n this.knownTags = resolveKnownTags ? coreKnownTags : {};\n this.tags = getTags(customTags, this.name);\n this.toStringOptions = toStringDefaults ?? null;\n Object.defineProperty(this, MAP, { value: map });\n Object.defineProperty(this, SCALAR, { value: string });\n Object.defineProperty(this, SEQ, { value: seq });\n // Used by createMap()\n this.sortMapEntries =\n typeof sortMapEntries === 'function'\n ? sortMapEntries\n : sortMapEntries === true\n ? sortMapEntriesByKey\n : null;\n }\n clone() {\n const copy = Object.create(Schema.prototype, Object.getOwnPropertyDescriptors(this));\n copy.tags = this.tags.slice();\n return copy;\n }\n}\n\nexport { Schema };\n","import { isNode } from '../nodes/identity.js';\nimport { createStringifyContext, stringify } from './stringify.js';\nimport { indentComment, lineComment } from './stringifyComment.js';\n\nfunction stringifyDocument(doc, options) {\n const lines = [];\n let hasDirectives = options.directives === true;\n if (options.directives !== false && doc.directives) {\n const dir = doc.directives.toString(doc);\n if (dir) {\n lines.push(dir);\n hasDirectives = true;\n }\n else if (doc.directives.docStart)\n hasDirectives = true;\n }\n if (hasDirectives)\n lines.push('---');\n const ctx = createStringifyContext(doc, options);\n const { commentString } = ctx.options;\n if (doc.commentBefore) {\n if (lines.length !== 1)\n lines.unshift('');\n const cs = commentString(doc.commentBefore);\n lines.unshift(indentComment(cs, ''));\n }\n let chompKeep = false;\n let contentComment = null;\n if (doc.contents) {\n if (isNode(doc.contents)) {\n if (doc.contents.spaceBefore && hasDirectives)\n lines.push('');\n if (doc.contents.commentBefore) {\n const cs = commentString(doc.contents.commentBefore);\n lines.push(indentComment(cs, ''));\n }\n // top-level block scalars need to be indented if followed by a comment\n ctx.forceBlockIndent = !!doc.comment;\n contentComment = doc.contents.comment;\n }\n const onChompKeep = contentComment ? undefined : () => (chompKeep = true);\n let body = stringify(doc.contents, ctx, () => (contentComment = null), onChompKeep);\n if (contentComment)\n body += lineComment(body, '', commentString(contentComment));\n if ((body[0] === '|' || body[0] === '>') &&\n lines[lines.length - 1] === '---') {\n // Top-level block scalars with a preceding doc marker ought to use the\n // same line for their header.\n lines[lines.length - 1] = `--- ${body}`;\n }\n else\n lines.push(body);\n }\n else {\n lines.push(stringify(doc.contents, ctx));\n }\n if (doc.directives?.docEnd) {\n if (doc.comment) {\n const cs = commentString(doc.comment);\n if (cs.includes('\\n')) {\n lines.push('...');\n lines.push(indentComment(cs, ''));\n }\n else {\n lines.push(`... ${cs}`);\n }\n }\n else {\n lines.push('...');\n }\n }\n else {\n let dc = doc.comment;\n if (dc && chompKeep)\n dc = dc.replace(/^\\n+/, '');\n if (dc) {\n if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '')\n lines.push('');\n lines.push(indentComment(commentString(dc), ''));\n }\n }\n return lines.join('\\n') + '\\n';\n}\n\nexport { stringifyDocument };\n","import { Alias } from '../nodes/Alias.js';\nimport { isEmptyPath, collectionFromPath } from '../nodes/Collection.js';\nimport { NODE_TYPE, DOC, isNode, isCollection, isScalar } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { toJS } from '../nodes/toJS.js';\nimport { Schema } from '../schema/Schema.js';\nimport { stringifyDocument } from '../stringify/stringifyDocument.js';\nimport { anchorNames, findNewAnchor, createNodeAnchors } from './anchors.js';\nimport { applyReviver } from './applyReviver.js';\nimport { createNode } from './createNode.js';\nimport { Directives } from './directives.js';\n\nclass Document {\n constructor(value, replacer, options) {\n /** A comment before this Document */\n this.commentBefore = null;\n /** A comment immediately after this Document */\n this.comment = null;\n /** Errors encountered during parsing. */\n this.errors = [];\n /** Warnings encountered during parsing. */\n this.warnings = [];\n Object.defineProperty(this, NODE_TYPE, { value: DOC });\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const opt = Object.assign({\n intAsBigInt: false,\n keepSourceTokens: false,\n logLevel: 'warn',\n prettyErrors: true,\n strict: true,\n uniqueKeys: true,\n version: '1.2'\n }, options);\n this.options = opt;\n let { version } = opt;\n if (options?._directives) {\n this.directives = options._directives.atDocument();\n if (this.directives.yaml.explicit)\n version = this.directives.yaml.version;\n }\n else\n this.directives = new Directives({ version });\n this.setSchema(version, options);\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents =\n value === undefined ? null : this.createNode(value, _replacer, options);\n }\n /**\n * Create a deep copy of this Document and its contents.\n *\n * Custom Node values that inherit from `Object` still refer to their original instances.\n */\n clone() {\n const copy = Object.create(Document.prototype, {\n [NODE_TYPE]: { value: DOC }\n });\n copy.commentBefore = this.commentBefore;\n copy.comment = this.comment;\n copy.errors = this.errors.slice();\n copy.warnings = this.warnings.slice();\n copy.options = Object.assign({}, this.options);\n if (this.directives)\n copy.directives = this.directives.clone();\n copy.schema = this.schema.clone();\n // @ts-expect-error We can't really know that this matches Contents.\n copy.contents = isNode(this.contents)\n ? this.contents.clone(copy.schema)\n : this.contents;\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** Adds a value to the document. */\n add(value) {\n if (assertCollection(this.contents))\n this.contents.add(value);\n }\n /** Adds a value to the document. */\n addIn(path, value) {\n if (assertCollection(this.contents))\n this.contents.addIn(path, value);\n }\n /**\n * Create a new `Alias` node, ensuring that the target `node` has the required anchor.\n *\n * If `node` already has an anchor, `name` is ignored.\n * Otherwise, the `node.anchor` value will be set to `name`,\n * or if an anchor with that name is already present in the document,\n * `name` will be used as a prefix for a new unique anchor.\n * If `name` is undefined, the generated anchor will use 'a' as a prefix.\n */\n createAlias(node, name) {\n if (!node.anchor) {\n const prev = anchorNames(this);\n node.anchor =\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n !name || prev.has(name) ? findNewAnchor(name || 'a', prev) : name;\n }\n return new Alias(node.anchor);\n }\n createNode(value, replacer, options) {\n let _replacer = undefined;\n if (typeof replacer === 'function') {\n value = replacer.call({ '': value }, '', value);\n _replacer = replacer;\n }\n else if (Array.isArray(replacer)) {\n const keyToStr = (v) => typeof v === 'number' || v instanceof String || v instanceof Number;\n const asStr = replacer.filter(keyToStr).map(String);\n if (asStr.length > 0)\n replacer = replacer.concat(asStr);\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const { aliasDuplicateObjects, anchorPrefix, flow, keepUndefined, onTagObj, tag } = options ?? {};\n const { onAnchor, setAnchors, sourceObjects } = createNodeAnchors(this, \n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n anchorPrefix || 'a');\n const ctx = {\n aliasDuplicateObjects: aliasDuplicateObjects ?? true,\n keepUndefined: keepUndefined ?? false,\n onAnchor,\n onTagObj,\n replacer: _replacer,\n schema: this.schema,\n sourceObjects\n };\n const node = createNode(value, tag, ctx);\n if (flow && isCollection(node))\n node.flow = true;\n setAnchors();\n return node;\n }\n /**\n * Convert a key and a value into a `Pair` using the current schema,\n * recursively wrapping all values as `Scalar` or `Collection` nodes.\n */\n createPair(key, value, options = {}) {\n const k = this.createNode(key, null, options);\n const v = this.createNode(value, null, options);\n return new Pair(k, v);\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n return assertCollection(this.contents) ? this.contents.delete(key) : false;\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n if (isEmptyPath(path)) {\n if (this.contents == null)\n return false;\n // @ts-expect-error Presumed impossible if Strict extends false\n this.contents = null;\n return true;\n }\n return assertCollection(this.contents)\n ? this.contents.deleteIn(path)\n : false;\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n get(key, keepScalar) {\n return isCollection(this.contents)\n ? this.contents.get(key, keepScalar)\n : undefined;\n }\n /**\n * Returns item at `path`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n if (isEmptyPath(path))\n return !keepScalar && isScalar(this.contents)\n ? this.contents.value\n : this.contents;\n return isCollection(this.contents)\n ? this.contents.getIn(path, keepScalar)\n : undefined;\n }\n /**\n * Checks if the document includes a value with the key `key`.\n */\n has(key) {\n return isCollection(this.contents) ? this.contents.has(key) : false;\n }\n /**\n * Checks if the document includes a value at `path`.\n */\n hasIn(path) {\n if (isEmptyPath(path))\n return this.contents !== undefined;\n return isCollection(this.contents) ? this.contents.hasIn(path) : false;\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n set(key, value) {\n if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, [key], value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.set(key, value);\n }\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n if (isEmptyPath(path)) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = value;\n }\n else if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, Array.from(path), value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.setIn(path, value);\n }\n }\n /**\n * Change the YAML version and schema used by the document.\n * A `null` version disables support for directives, explicit tags, anchors, and aliases.\n * It also requires the `schema` option to be given as a `Schema` instance value.\n *\n * Overrides all previously set schema options.\n */\n setSchema(version, options = {}) {\n if (typeof version === 'number')\n version = String(version);\n let opt;\n switch (version) {\n case '1.1':\n if (this.directives)\n this.directives.yaml.version = '1.1';\n else\n this.directives = new Directives({ version: '1.1' });\n opt = { merge: true, resolveKnownTags: false, schema: 'yaml-1.1' };\n break;\n case '1.2':\n case 'next':\n if (this.directives)\n this.directives.yaml.version = version;\n else\n this.directives = new Directives({ version });\n opt = { merge: false, resolveKnownTags: true, schema: 'core' };\n break;\n case null:\n if (this.directives)\n delete this.directives;\n opt = null;\n break;\n default: {\n const sv = JSON.stringify(version);\n throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${sv}`);\n }\n }\n // Not using `instanceof Schema` to allow for duck typing\n if (options.schema instanceof Object)\n this.schema = options.schema;\n else if (opt)\n this.schema = new Schema(Object.assign(opt, options));\n else\n throw new Error(`With a null YAML version, the { schema: Schema } option is required`);\n }\n // json & jsonArg are only used from toJSON()\n toJS({ json, jsonArg, mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n const ctx = {\n anchors: new Map(),\n doc: this,\n keep: !json,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this.contents, jsonArg ?? '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n /**\n * A JSON representation of the document `contents`.\n *\n * @param jsonArg Used by `JSON.stringify` to indicate the array index or\n * property name.\n */\n toJSON(jsonArg, onAnchor) {\n return this.toJS({ json: true, jsonArg, mapAsMap: false, onAnchor });\n }\n /** A YAML representation of the document. */\n toString(options = {}) {\n if (this.errors.length > 0)\n throw new Error('Document with errors cannot be stringified');\n if ('indent' in options &&\n (!Number.isInteger(options.indent) || Number(options.indent) <= 0)) {\n const s = JSON.stringify(options.indent);\n throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n }\n return stringifyDocument(this, options);\n }\n}\nfunction assertCollection(contents) {\n if (isCollection(contents))\n return true;\n throw new Error('Expected a YAML collection as document contents');\n}\n\nexport { Document };\n","class YAMLError extends Error {\n constructor(name, pos, code, message) {\n super();\n this.name = name;\n this.code = code;\n this.message = message;\n this.pos = pos;\n }\n}\nclass YAMLParseError extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLParseError', pos, code, message);\n }\n}\nclass YAMLWarning extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLWarning', pos, code, message);\n }\n}\nconst prettifyError = (src, lc) => (error) => {\n if (error.pos[0] === -1)\n return;\n error.linePos = error.pos.map(pos => lc.linePos(pos));\n const { line, col } = error.linePos[0];\n error.message += ` at line ${line}, column ${col}`;\n let ci = col - 1;\n let lineStr = src\n .substring(lc.lineStarts[line - 1], lc.lineStarts[line])\n .replace(/[\\n\\r]+$/, '');\n // Trim to max 80 chars, keeping col position near the middle\n if (ci >= 60 && lineStr.length > 80) {\n const trimStart = Math.min(ci - 39, lineStr.length - 79);\n lineStr = '…' + lineStr.substring(trimStart);\n ci -= trimStart - 1;\n }\n if (lineStr.length > 80)\n lineStr = lineStr.substring(0, 79) + '…';\n // Include previous line in context if pointing at line start\n if (line > 1 && /^ *$/.test(lineStr.substring(0, ci))) {\n // Regexp won't match if start is trimmed\n let prev = src.substring(lc.lineStarts[line - 2], lc.lineStarts[line - 1]);\n if (prev.length > 80)\n prev = prev.substring(0, 79) + '…\\n';\n lineStr = prev + lineStr;\n }\n if (/[^ ]/.test(lineStr)) {\n let count = 1;\n const end = error.linePos[1];\n if (end && end.line === line && end.col > col) {\n count = Math.max(1, Math.min(end.col - col, 80 - ci));\n }\n const pointer = ' '.repeat(ci) + '^'.repeat(count);\n error.message += `:\\n\\n${lineStr}\\n${pointer}\\n`;\n }\n};\n\nexport { YAMLError, YAMLParseError, YAMLWarning, prettifyError };\n","function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {\n let spaceBefore = false;\n let atNewline = startOnNewline;\n let hasSpace = startOnNewline;\n let comment = '';\n let commentSep = '';\n let hasNewline = false;\n let reqSpace = false;\n let tab = null;\n let anchor = null;\n let tag = null;\n let newlineAfterProp = null;\n let comma = null;\n let found = null;\n let start = null;\n for (const token of tokens) {\n if (reqSpace) {\n if (token.type !== 'space' &&\n token.type !== 'newline' &&\n token.type !== 'comma')\n onError(token.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n reqSpace = false;\n }\n if (tab) {\n if (atNewline && token.type !== 'comment' && token.type !== 'newline') {\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n }\n tab = null;\n }\n switch (token.type) {\n case 'space':\n // At the doc level, tabs at line start may be parsed\n // as leading white space rather than indentation.\n // In a flow collection, only the parser handles indent.\n if (!flow &&\n (indicator !== 'doc-start' || next?.type !== 'flow-collection') &&\n token.source.includes('\\t')) {\n tab = token;\n }\n hasSpace = true;\n break;\n case 'comment': {\n if (!hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = token.source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += commentSep + cb;\n commentSep = '';\n atNewline = false;\n break;\n }\n case 'newline':\n if (atNewline) {\n if (comment)\n comment += token.source;\n else\n spaceBefore = true;\n }\n else\n commentSep += token.source;\n atNewline = true;\n hasNewline = true;\n if (anchor || tag)\n newlineAfterProp = token;\n hasSpace = true;\n break;\n case 'anchor':\n if (anchor)\n onError(token, 'MULTIPLE_ANCHORS', 'A node can have at most one anchor');\n if (token.source.endsWith(':'))\n onError(token.offset + token.source.length - 1, 'BAD_ALIAS', 'Anchor ending in : is ambiguous', true);\n anchor = token;\n if (start === null)\n start = token.offset;\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n case 'tag': {\n if (tag)\n onError(token, 'MULTIPLE_TAGS', 'A node can have at most one tag');\n tag = token;\n if (start === null)\n start = token.offset;\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n }\n case indicator:\n // Could here handle preceding comments differently\n if (anchor || tag)\n onError(token, 'BAD_PROP_ORDER', `Anchors and tags must be after the ${token.source} indicator`);\n if (found)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.source} in ${flow ?? 'collection'}`);\n found = token;\n atNewline =\n indicator === 'seq-item-ind' || indicator === 'explicit-key-ind';\n hasSpace = false;\n break;\n case 'comma':\n if (flow) {\n if (comma)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected , in ${flow}`);\n comma = token;\n atNewline = false;\n hasSpace = false;\n break;\n }\n // else fallthrough\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.type} token`);\n atNewline = false;\n hasSpace = false;\n }\n }\n const last = tokens[tokens.length - 1];\n const end = last ? last.offset + last.source.length : offset;\n if (reqSpace &&\n next &&\n next.type !== 'space' &&\n next.type !== 'newline' &&\n next.type !== 'comma' &&\n (next.type !== 'scalar' || next.source !== '')) {\n onError(next.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n }\n if (tab &&\n ((atNewline && tab.indent <= parentIndent) ||\n next?.type === 'block-map' ||\n next?.type === 'block-seq'))\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n return {\n comma,\n found,\n spaceBefore,\n comment,\n hasNewline,\n anchor,\n tag,\n newlineAfterProp,\n end,\n start: start ?? end\n };\n}\n\nexport { resolveProps };\n","function containsNewline(key) {\n if (!key)\n return null;\n switch (key.type) {\n case 'alias':\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n if (key.source.includes('\\n'))\n return true;\n if (key.end)\n for (const st of key.end)\n if (st.type === 'newline')\n return true;\n return false;\n case 'flow-collection':\n for (const it of key.items) {\n for (const st of it.start)\n if (st.type === 'newline')\n return true;\n if (it.sep)\n for (const st of it.sep)\n if (st.type === 'newline')\n return true;\n if (containsNewline(it.key) || containsNewline(it.value))\n return true;\n }\n return false;\n default:\n return true;\n }\n}\n\nexport { containsNewline };\n","import { containsNewline } from './util-contains-newline.js';\n\nfunction flowIndentCheck(indent, fc, onError) {\n if (fc?.type === 'flow-collection') {\n const end = fc.end[0];\n if (end.indent === indent &&\n (end.source === ']' || end.source === '}') &&\n containsNewline(fc)) {\n const msg = 'Flow end indicator should be more indented than parent';\n onError(end, 'BAD_INDENT', msg, true);\n }\n }\n}\n\nexport { flowIndentCheck };\n","import { isScalar } from '../nodes/identity.js';\n\nfunction mapIncludes(ctx, items, search) {\n const { uniqueKeys } = ctx.options;\n if (uniqueKeys === false)\n return false;\n const isEqual = typeof uniqueKeys === 'function'\n ? uniqueKeys\n : (a, b) => a === b ||\n (isScalar(a) &&\n isScalar(b) &&\n a.value === b.value &&\n !(a.value === '<<' && ctx.schema.merge));\n return items.some(pair => isEqual(pair.key, search));\n}\n\nexport { mapIncludes };\n","import { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst startColMsg = 'All mapping items must start at the same column';\nfunction resolveBlockMap({ composeNode, composeEmptyNode }, ctx, bm, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLMap;\n const map = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n let offset = bm.offset;\n let commentEnd = null;\n for (const collItem of bm.items) {\n const { start, key, sep, value } = collItem;\n // key properties\n const keyProps = resolveProps(start, {\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: bm.indent,\n startOnNewline: true\n });\n const implicitKey = !keyProps.found;\n if (implicitKey) {\n if (key) {\n if (key.type === 'block-seq')\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'A block sequence may not be used as an implicit map key');\n else if ('indent' in key && key.indent !== bm.indent)\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n if (!keyProps.anchor && !keyProps.tag && !sep) {\n commentEnd = keyProps.end;\n if (keyProps.comment) {\n if (map.comment)\n map.comment += '\\n' + keyProps.comment;\n else\n map.comment = keyProps.comment;\n }\n continue;\n }\n if (keyProps.newlineAfterProp || containsNewline(key)) {\n onError(key ?? start[start.length - 1], 'MULTILINE_IMPLICIT_KEY', 'Implicit keys need to be on a single line');\n }\n }\n else if (keyProps.found?.indent !== bm.indent) {\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n // key value\n const keyStart = keyProps.end;\n const keyNode = key\n ? composeNode(ctx, key, keyProps, onError)\n : composeEmptyNode(ctx, keyStart, start, null, keyProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, key, onError);\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: bm.indent,\n startOnNewline: !key || key.type === 'block-scalar'\n });\n offset = valueProps.end;\n if (valueProps.found) {\n if (implicitKey) {\n if (value?.type === 'block-map' && !valueProps.hasNewline)\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'Nested mappings are not allowed in compact mappings');\n if (ctx.options.strict &&\n keyProps.start < valueProps.found.offset - 1024)\n onError(keyNode.range, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit block mapping key');\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : composeEmptyNode(ctx, offset, sep, null, valueProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, value, onError);\n offset = valueNode.range[2];\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n else {\n // key with no value\n if (implicitKey)\n onError(keyNode.range, 'MISSING_CHAR', 'Implicit map keys need to be followed by map values');\n if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n }\n if (commentEnd && commentEnd < offset)\n onError(commentEnd, 'IMPOSSIBLE', 'Map comment with trailing content');\n map.range = [bm.offset, offset, commentEnd ?? offset];\n return map;\n}\n\nexport { resolveBlockMap };\n","import { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveProps } from './resolve-props.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\n\nfunction resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLSeq;\n const seq = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n let offset = bs.offset;\n let commentEnd = null;\n for (const { start, value } of bs.items) {\n const props = resolveProps(start, {\n indicator: 'seq-item-ind',\n next: value,\n offset,\n onError,\n parentIndent: bs.indent,\n startOnNewline: true\n });\n if (!props.found) {\n if (props.anchor || props.tag || value) {\n if (value && value.type === 'block-seq')\n onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column');\n else\n onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator');\n }\n else {\n commentEnd = props.end;\n if (props.comment)\n seq.comment = props.comment;\n continue;\n }\n }\n const node = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bs.indent, value, onError);\n offset = node.range[2];\n seq.items.push(node);\n }\n seq.range = [bs.offset, offset, commentEnd ?? offset];\n return seq;\n}\n\nexport { resolveBlockSeq };\n","function resolveEnd(end, offset, reqSpace, onError) {\n let comment = '';\n if (end) {\n let hasSpace = false;\n let sep = '';\n for (const token of end) {\n const { source, type } = token;\n switch (type) {\n case 'space':\n hasSpace = true;\n break;\n case 'comment': {\n if (reqSpace && !hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += sep + cb;\n sep = '';\n break;\n }\n case 'newline':\n if (comment)\n sep += source;\n hasSpace = true;\n break;\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${type} at node end`);\n }\n offset += source.length;\n }\n }\n return { comment, offset };\n}\n\nexport { resolveEnd };\n","import { isPair } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst blockMsg = 'Block collections are not allowed within flow collections';\nconst isBlock = (token) => token && (token.type === 'block-map' || token.type === 'block-seq');\nfunction resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onError, tag) {\n const isMap = fc.start.source === '{';\n const fcName = isMap ? 'flow map' : 'flow sequence';\n const NodeClass = (tag?.nodeClass ?? (isMap ? YAMLMap : YAMLSeq));\n const coll = new NodeClass(ctx.schema);\n coll.flow = true;\n const atRoot = ctx.atRoot;\n if (atRoot)\n ctx.atRoot = false;\n let offset = fc.offset + fc.start.source.length;\n for (let i = 0; i < fc.items.length; ++i) {\n const collItem = fc.items[i];\n const { start, key, sep, value } = collItem;\n const props = resolveProps(start, {\n flow: fcName,\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (!props.found) {\n if (!props.anchor && !props.tag && !sep && !value) {\n if (i === 0 && props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n else if (i < fc.items.length - 1)\n onError(props.start, 'UNEXPECTED_TOKEN', `Unexpected empty item in ${fcName}`);\n if (props.comment) {\n if (coll.comment)\n coll.comment += '\\n' + props.comment;\n else\n coll.comment = props.comment;\n }\n offset = props.end;\n continue;\n }\n if (!isMap && ctx.options.strict && containsNewline(key))\n onError(key, // checked by containsNewline()\n 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n }\n if (i === 0) {\n if (props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n }\n else {\n if (!props.comma)\n onError(props.start, 'MISSING_CHAR', `Missing , between ${fcName} items`);\n if (props.comment) {\n let prevItemComment = '';\n loop: for (const st of start) {\n switch (st.type) {\n case 'comma':\n case 'space':\n break;\n case 'comment':\n prevItemComment = st.source.substring(1);\n break loop;\n default:\n break loop;\n }\n }\n if (prevItemComment) {\n let prev = coll.items[coll.items.length - 1];\n if (isPair(prev))\n prev = prev.value ?? prev.key;\n if (prev.comment)\n prev.comment += '\\n' + prevItemComment;\n else\n prev.comment = prevItemComment;\n props.comment = props.comment.substring(prevItemComment.length + 1);\n }\n }\n }\n if (!isMap && !sep && !props.found) {\n // item is a value in a seq\n // → key & sep are empty, start does not include ? or :\n const valueNode = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, sep, null, props, onError);\n coll.items.push(valueNode);\n offset = valueNode.range[2];\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else {\n // item is a key+value pair\n // key value\n const keyStart = props.end;\n const keyNode = key\n ? composeNode(ctx, key, props, onError)\n : composeEmptyNode(ctx, keyStart, start, null, props, onError);\n if (isBlock(key))\n onError(keyNode.range, 'BLOCK_IN_FLOW', blockMsg);\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n flow: fcName,\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (valueProps.found) {\n if (!isMap && !props.found && ctx.options.strict) {\n if (sep)\n for (const st of sep) {\n if (st === valueProps.found)\n break;\n if (st.type === 'newline') {\n onError(st, 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n break;\n }\n }\n if (props.start < valueProps.found.offset - 1024)\n onError(valueProps.found, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit flow sequence key');\n }\n }\n else if (value) {\n if ('source' in value && value.source && value.source[0] === ':')\n onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`);\n else\n onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`);\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : valueProps.found\n ? composeEmptyNode(ctx, valueProps.end, sep, null, valueProps, onError)\n : null;\n if (valueNode) {\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n if (isMap) {\n const map = coll;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n map.items.push(pair);\n }\n else {\n const map = new YAMLMap(ctx.schema);\n map.flow = true;\n map.items.push(pair);\n const endRange = (valueNode ?? keyNode).range;\n map.range = [keyNode.range[0], endRange[1], endRange[2]];\n coll.items.push(map);\n }\n offset = valueNode ? valueNode.range[2] : valueProps.end;\n }\n }\n const expectedEnd = isMap ? '}' : ']';\n const [ce, ...ee] = fc.end;\n let cePos = offset;\n if (ce && ce.source === expectedEnd)\n cePos = ce.offset + ce.source.length;\n else {\n const name = fcName[0].toUpperCase() + fcName.substring(1);\n const msg = atRoot\n ? `${name} must end with a ${expectedEnd}`\n : `${name} in block collection must be sufficiently indented and end with a ${expectedEnd}`;\n onError(offset, atRoot ? 'MISSING_CHAR' : 'BAD_INDENT', msg);\n if (ce && ce.source.length !== 1)\n ee.unshift(ce);\n }\n if (ee.length > 0) {\n const end = resolveEnd(ee, cePos, ctx.options.strict, onError);\n if (end.comment) {\n if (coll.comment)\n coll.comment += '\\n' + end.comment;\n else\n coll.comment = end.comment;\n }\n coll.range = [fc.offset, cePos, end.offset];\n }\n else {\n coll.range = [fc.offset, cePos, cePos];\n }\n return coll;\n}\n\nexport { resolveFlowCollection };\n","import { isNode } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveBlockMap } from './resolve-block-map.js';\nimport { resolveBlockSeq } from './resolve-block-seq.js';\nimport { resolveFlowCollection } from './resolve-flow-collection.js';\n\nfunction resolveCollection(CN, ctx, token, onError, tagName, tag) {\n const coll = token.type === 'block-map'\n ? resolveBlockMap(CN, ctx, token, onError, tag)\n : token.type === 'block-seq'\n ? resolveBlockSeq(CN, ctx, token, onError, tag)\n : resolveFlowCollection(CN, ctx, token, onError, tag);\n const Coll = coll.constructor;\n // If we got a tagName matching the class, or the tag name is '!',\n // then use the tagName from the node class used to create it.\n if (tagName === '!' || tagName === Coll.tagName) {\n coll.tag = Coll.tagName;\n return coll;\n }\n if (tagName)\n coll.tag = tagName;\n return coll;\n}\nfunction composeCollection(CN, ctx, token, props, onError) {\n const tagToken = props.tag;\n const tagName = !tagToken\n ? null\n : ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg));\n if (token.type === 'block-seq') {\n const { anchor, newlineAfterProp: nl } = props;\n const lastProp = anchor && tagToken\n ? anchor.offset > tagToken.offset\n ? anchor\n : tagToken\n : (anchor ?? tagToken);\n if (lastProp && (!nl || nl.offset < lastProp.offset)) {\n const message = 'Missing newline after block sequence props';\n onError(lastProp, 'MISSING_CHAR', message);\n }\n }\n const expType = token.type === 'block-map'\n ? 'map'\n : token.type === 'block-seq'\n ? 'seq'\n : token.start.source === '{'\n ? 'map'\n : 'seq';\n // shortcut: check if it's a generic YAMLMap or YAMLSeq\n // before jumping into the custom tag logic.\n if (!tagToken ||\n !tagName ||\n tagName === '!' ||\n (tagName === YAMLMap.tagName && expType === 'map') ||\n (tagName === YAMLSeq.tagName && expType === 'seq')) {\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n let tag = ctx.schema.tags.find(t => t.tag === tagName && t.collection === expType);\n if (!tag) {\n const kt = ctx.schema.knownTags[tagName];\n if (kt && kt.collection === expType) {\n ctx.schema.tags.push(Object.assign({}, kt, { default: false }));\n tag = kt;\n }\n else {\n if (kt?.collection) {\n onError(tagToken, 'BAD_COLLECTION_TYPE', `${kt.tag} used for ${expType} collection, but expects ${kt.collection}`, true);\n }\n else {\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, true);\n }\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n }\n const coll = resolveCollection(CN, ctx, token, onError, tagName, tag);\n const res = tag.resolve?.(coll, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg), ctx.options) ?? coll;\n const node = isNode(res)\n ? res\n : new Scalar(res);\n node.range = coll.range;\n node.tag = tagName;\n if (tag?.format)\n node.format = tag.format;\n return node;\n}\n\nexport { composeCollection };\n","import { Scalar } from '../nodes/Scalar.js';\n\nfunction resolveBlockScalar(ctx, scalar, onError) {\n const start = scalar.offset;\n const header = parseBlockScalarHeader(scalar, ctx.options.strict, onError);\n if (!header)\n return { value: '', type: null, comment: '', range: [start, start, start] };\n const type = header.mode === '>' ? Scalar.BLOCK_FOLDED : Scalar.BLOCK_LITERAL;\n const lines = scalar.source ? splitLines(scalar.source) : [];\n // determine the end of content & start of chomping\n let chompStart = lines.length;\n for (let i = lines.length - 1; i >= 0; --i) {\n const content = lines[i][1];\n if (content === '' || content === '\\r')\n chompStart = i;\n else\n break;\n }\n // shortcut for empty contents\n if (chompStart === 0) {\n const value = header.chomp === '+' && lines.length > 0\n ? '\\n'.repeat(Math.max(1, lines.length - 1))\n : '';\n let end = start + header.length;\n if (scalar.source)\n end += scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n }\n // find the indentation level to trim from start\n let trimIndent = scalar.indent + header.indent;\n let offset = scalar.offset + header.length;\n let contentStart = 0;\n for (let i = 0; i < chompStart; ++i) {\n const [indent, content] = lines[i];\n if (content === '' || content === '\\r') {\n if (header.indent === 0 && indent.length > trimIndent)\n trimIndent = indent.length;\n }\n else {\n if (indent.length < trimIndent) {\n const message = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n onError(offset + indent.length, 'MISSING_CHAR', message);\n }\n if (header.indent === 0)\n trimIndent = indent.length;\n contentStart = i;\n if (trimIndent === 0 && !ctx.atRoot) {\n const message = 'Block scalar values in collections must be indented';\n onError(offset, 'BAD_INDENT', message);\n }\n break;\n }\n offset += indent.length + content.length + 1;\n }\n // include trailing more-indented empty lines in content\n for (let i = lines.length - 1; i >= chompStart; --i) {\n if (lines[i][0].length > trimIndent)\n chompStart = i + 1;\n }\n let value = '';\n let sep = '';\n let prevMoreIndented = false;\n // leading whitespace is kept intact\n for (let i = 0; i < contentStart; ++i)\n value += lines[i][0].slice(trimIndent) + '\\n';\n for (let i = contentStart; i < chompStart; ++i) {\n let [indent, content] = lines[i];\n offset += indent.length + content.length + 1;\n const crlf = content[content.length - 1] === '\\r';\n if (crlf)\n content = content.slice(0, -1);\n /* istanbul ignore if already caught in lexer */\n if (content && indent.length < trimIndent) {\n const src = header.indent\n ? 'explicit indentation indicator'\n : 'first line';\n const message = `Block scalar lines must not be less indented than their ${src}`;\n onError(offset - content.length - (crlf ? 2 : 1), 'BAD_INDENT', message);\n indent = '';\n }\n if (type === Scalar.BLOCK_LITERAL) {\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n }\n else if (indent.length > trimIndent || content[0] === '\\t') {\n // more-indented content within a folded block\n if (sep === ' ')\n sep = '\\n';\n else if (!prevMoreIndented && sep === '\\n')\n sep = '\\n\\n';\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n prevMoreIndented = true;\n }\n else if (content === '') {\n // empty line\n if (sep === '\\n')\n value += '\\n';\n else\n sep = '\\n';\n }\n else {\n value += sep + content;\n sep = ' ';\n prevMoreIndented = false;\n }\n }\n switch (header.chomp) {\n case '-':\n break;\n case '+':\n for (let i = chompStart; i < lines.length; ++i)\n value += '\\n' + lines[i][0].slice(trimIndent);\n if (value[value.length - 1] !== '\\n')\n value += '\\n';\n break;\n default:\n value += '\\n';\n }\n const end = start + header.length + scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n}\nfunction parseBlockScalarHeader({ offset, props }, strict, onError) {\n /* istanbul ignore if should not happen */\n if (props[0].type !== 'block-scalar-header') {\n onError(props[0], 'IMPOSSIBLE', 'Block scalar header not found');\n return null;\n }\n const { source } = props[0];\n const mode = source[0];\n let indent = 0;\n let chomp = '';\n let error = -1;\n for (let i = 1; i < source.length; ++i) {\n const ch = source[i];\n if (!chomp && (ch === '-' || ch === '+'))\n chomp = ch;\n else {\n const n = Number(ch);\n if (!indent && n)\n indent = n;\n else if (error === -1)\n error = offset + i;\n }\n }\n if (error !== -1)\n onError(error, 'UNEXPECTED_TOKEN', `Block scalar header includes extra characters: ${source}`);\n let hasSpace = false;\n let comment = '';\n let length = source.length;\n for (let i = 1; i < props.length; ++i) {\n const token = props[i];\n switch (token.type) {\n case 'space':\n hasSpace = true;\n // fallthrough\n case 'newline':\n length += token.source.length;\n break;\n case 'comment':\n if (strict && !hasSpace) {\n const message = 'Comments must be separated from other tokens by white space characters';\n onError(token, 'MISSING_CHAR', message);\n }\n length += token.source.length;\n comment = token.source.substring(1);\n break;\n case 'error':\n onError(token, 'UNEXPECTED_TOKEN', token.message);\n length += token.source.length;\n break;\n /* istanbul ignore next should not happen */\n default: {\n const message = `Unexpected token in block scalar header: ${token.type}`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n const ts = token.source;\n if (ts && typeof ts === 'string')\n length += ts.length;\n }\n }\n }\n return { mode, indent, chomp, comment, length };\n}\n/** @returns Array of lines split up as `[indent, content]` */\nfunction splitLines(source) {\n const split = source.split(/\\n( *)/);\n const first = split[0];\n const m = first.match(/^( *)/);\n const line0 = m?.[1]\n ? [m[1], first.slice(m[1].length)]\n : ['', first];\n const lines = [line0];\n for (let i = 1; i < split.length; i += 2)\n lines.push([split[i], split[i + 1]]);\n return lines;\n}\n\nexport { resolveBlockScalar };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction resolveFlowScalar(scalar, strict, onError) {\n const { offset, type, source, end } = scalar;\n let _type;\n let value;\n const _onError = (rel, code, msg) => onError(offset + rel, code, msg);\n switch (type) {\n case 'scalar':\n _type = Scalar.PLAIN;\n value = plainValue(source, _onError);\n break;\n case 'single-quoted-scalar':\n _type = Scalar.QUOTE_SINGLE;\n value = singleQuotedValue(source, _onError);\n break;\n case 'double-quoted-scalar':\n _type = Scalar.QUOTE_DOUBLE;\n value = doubleQuotedValue(source, _onError);\n break;\n /* istanbul ignore next should not happen */\n default:\n onError(scalar, 'UNEXPECTED_TOKEN', `Expected a flow scalar value, but found: ${type}`);\n return {\n value: '',\n type: null,\n comment: '',\n range: [offset, offset + source.length, offset + source.length]\n };\n }\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, strict, onError);\n return {\n value,\n type: _type,\n comment: re.comment,\n range: [offset, valueEnd, re.offset]\n };\n}\nfunction plainValue(source, onError) {\n let badChar = '';\n switch (source[0]) {\n /* istanbul ignore next should not happen */\n case '\\t':\n badChar = 'a tab character';\n break;\n case ',':\n badChar = 'flow indicator character ,';\n break;\n case '%':\n badChar = 'directive indicator character %';\n break;\n case '|':\n case '>': {\n badChar = `block scalar indicator ${source[0]}`;\n break;\n }\n case '@':\n case '`': {\n badChar = `reserved character ${source[0]}`;\n break;\n }\n }\n if (badChar)\n onError(0, 'BAD_SCALAR_START', `Plain value cannot start with ${badChar}`);\n return foldLines(source);\n}\nfunction singleQuotedValue(source, onError) {\n if (source[source.length - 1] !== \"'\" || source.length === 1)\n onError(source.length, 'MISSING_CHAR', \"Missing closing 'quote\");\n return foldLines(source.slice(1, -1)).replace(/''/g, \"'\");\n}\nfunction foldLines(source) {\n /**\n * The negative lookbehind here and in the `re` RegExp is to\n * prevent causing a polynomial search time in certain cases.\n *\n * The try-catch is for Safari, which doesn't support this yet:\n * https://caniuse.com/js-regexp-lookbehind\n */\n let first, line;\n try {\n first = new RegExp('(.*?)(? wsStart ? source.slice(wsStart, i + 1) : ch;\n }\n else {\n res += ch;\n }\n }\n if (source[source.length - 1] !== '\"' || source.length === 1)\n onError(source.length, 'MISSING_CHAR', 'Missing closing \"quote');\n return res;\n}\n/**\n * Fold a single newline into a space, multiple newlines to N - 1 newlines.\n * Presumes `source[offset] === '\\n'`\n */\nfunction foldNewline(source, offset) {\n let fold = '';\n let ch = source[offset + 1];\n while (ch === ' ' || ch === '\\t' || ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && source[offset + 2] !== '\\n')\n break;\n if (ch === '\\n')\n fold += '\\n';\n offset += 1;\n ch = source[offset + 1];\n }\n if (!fold)\n fold = ' ';\n return { fold, offset };\n}\nconst escapeCodes = {\n '0': '\\0', // null character\n a: '\\x07', // bell character\n b: '\\b', // backspace\n e: '\\x1b', // escape character\n f: '\\f', // form feed\n n: '\\n', // line feed\n r: '\\r', // carriage return\n t: '\\t', // horizontal tab\n v: '\\v', // vertical tab\n N: '\\u0085', // Unicode next line\n _: '\\u00a0', // Unicode non-breaking space\n L: '\\u2028', // Unicode line separator\n P: '\\u2029', // Unicode paragraph separator\n ' ': ' ',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\',\n '\\t': '\\t'\n};\nfunction parseCharCode(source, offset, length, onError) {\n const cc = source.substr(offset, length);\n const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n const code = ok ? parseInt(cc, 16) : NaN;\n if (isNaN(code)) {\n const raw = source.substr(offset - 2, length + 2);\n onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n return raw;\n }\n return String.fromCodePoint(code);\n}\n\nexport { resolveFlowScalar };\n","import { SCALAR, isScalar } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { resolveBlockScalar } from './resolve-block-scalar.js';\nimport { resolveFlowScalar } from './resolve-flow-scalar.js';\n\nfunction composeScalar(ctx, token, tagToken, onError) {\n const { value, type, comment, range } = token.type === 'block-scalar'\n ? resolveBlockScalar(ctx, token, onError)\n : resolveFlowScalar(token, ctx.options.strict, onError);\n const tagName = tagToken\n ? ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg))\n : null;\n const tag = tagToken && tagName\n ? findScalarTagByName(ctx.schema, value, tagName, tagToken, onError)\n : token.type === 'scalar'\n ? findScalarTagByTest(ctx, value, token, onError)\n : ctx.schema[SCALAR];\n let scalar;\n try {\n const res = tag.resolve(value, msg => onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg), ctx.options);\n scalar = isScalar(res) ? res : new Scalar(res);\n }\n catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg);\n scalar = new Scalar(value);\n }\n scalar.range = range;\n scalar.source = value;\n if (type)\n scalar.type = type;\n if (tagName)\n scalar.tag = tagName;\n if (tag.format)\n scalar.format = tag.format;\n if (comment)\n scalar.comment = comment;\n return scalar;\n}\nfunction findScalarTagByName(schema, value, tagName, tagToken, onError) {\n if (tagName === '!')\n return schema[SCALAR]; // non-specific tag\n const matchWithTest = [];\n for (const tag of schema.tags) {\n if (!tag.collection && tag.tag === tagName) {\n if (tag.default && tag.test)\n matchWithTest.push(tag);\n else\n return tag;\n }\n }\n for (const tag of matchWithTest)\n if (tag.test?.test(value))\n return tag;\n const kt = schema.knownTags[tagName];\n if (kt && !kt.collection) {\n // Ensure that the known tag is available for stringifying,\n // but does not get used by default.\n schema.tags.push(Object.assign({}, kt, { default: false, test: undefined }));\n return kt;\n }\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, tagName !== 'tag:yaml.org,2002:str');\n return schema[SCALAR];\n}\nfunction findScalarTagByTest({ directives, schema }, value, token, onError) {\n const tag = schema.tags.find(tag => tag.default && tag.test?.test(value)) || schema[SCALAR];\n if (schema.compat) {\n const compat = schema.compat.find(tag => tag.default && tag.test?.test(value)) ??\n schema[SCALAR];\n if (tag.tag !== compat.tag) {\n const ts = directives.tagString(tag.tag);\n const cs = directives.tagString(compat.tag);\n const msg = `Value may be parsed as either ${ts} or ${cs}`;\n onError(token, 'TAG_RESOLVE_FAILED', msg, true);\n }\n }\n return tag;\n}\n\nexport { composeScalar };\n","function emptyScalarPosition(offset, before, pos) {\n if (before) {\n if (pos === null)\n pos = before.length;\n for (let i = pos - 1; i >= 0; --i) {\n let st = before[i];\n switch (st.type) {\n case 'space':\n case 'comment':\n case 'newline':\n offset -= st.source.length;\n continue;\n }\n // Technically, an empty scalar is immediately after the last non-empty\n // node, but it's more useful to place it after any whitespace.\n st = before[++i];\n while (st?.type === 'space') {\n offset += st.source.length;\n st = before[++i];\n }\n break;\n }\n }\n return offset;\n}\n\nexport { emptyScalarPosition };\n","import { Alias } from '../nodes/Alias.js';\nimport { composeCollection } from './compose-collection.js';\nimport { composeScalar } from './compose-scalar.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { emptyScalarPosition } from './util-empty-scalar-position.js';\n\nconst CN = { composeNode, composeEmptyNode };\nfunction composeNode(ctx, token, props, onError) {\n const { spaceBefore, comment, anchor, tag } = props;\n let node;\n let isSrcToken = true;\n switch (token.type) {\n case 'alias':\n node = composeAlias(ctx, token, onError);\n if (anchor || tag)\n onError(token, 'ALIAS_PROPS', 'An alias node must not specify any properties');\n break;\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'block-scalar':\n node = composeScalar(ctx, token, tag, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n case 'block-map':\n case 'block-seq':\n case 'flow-collection':\n node = composeCollection(CN, ctx, token, props, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n default: {\n const message = token.type === 'error'\n ? token.message\n : `Unsupported token (type: ${token.type})`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n node = composeEmptyNode(ctx, token.offset, undefined, null, props, onError);\n isSrcToken = false;\n }\n }\n if (anchor && node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n if (token.type === 'scalar' && token.source === '')\n node.comment = comment;\n else\n node.commentBefore = comment;\n }\n // @ts-expect-error Type checking misses meaning of isSrcToken\n if (ctx.options.keepSourceTokens && isSrcToken)\n node.srcToken = token;\n return node;\n}\nfunction composeEmptyNode(ctx, offset, before, pos, { spaceBefore, comment, anchor, tag, end }, onError) {\n const token = {\n type: 'scalar',\n offset: emptyScalarPosition(offset, before, pos),\n indent: -1,\n source: ''\n };\n const node = composeScalar(ctx, token, tag, onError);\n if (anchor) {\n node.anchor = anchor.source.substring(1);\n if (node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n node.comment = comment;\n node.range[2] = end;\n }\n return node;\n}\nfunction composeAlias({ options }, { offset, source, end }, onError) {\n const alias = new Alias(source.substring(1));\n if (alias.source === '')\n onError(offset, 'BAD_ALIAS', 'Alias cannot be an empty string');\n if (alias.source.endsWith(':'))\n onError(offset + source.length - 1, 'BAD_ALIAS', 'Alias ending in : is ambiguous', true);\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, options.strict, onError);\n alias.range = [offset, valueEnd, re.offset];\n if (re.comment)\n alias.comment = re.comment;\n return alias;\n}\n\nexport { composeEmptyNode, composeNode };\n","import { Document } from '../doc/Document.js';\nimport { composeNode, composeEmptyNode } from './compose-node.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\n\nfunction composeDoc(options, directives, { offset, start, value, end }, onError) {\n const opts = Object.assign({ _directives: directives }, options);\n const doc = new Document(undefined, opts);\n const ctx = {\n atRoot: true,\n directives: doc.directives,\n options: doc.options,\n schema: doc.schema\n };\n const props = resolveProps(start, {\n indicator: 'doc-start',\n next: value ?? end?.[0],\n offset,\n onError,\n parentIndent: 0,\n startOnNewline: true\n });\n if (props.found) {\n doc.directives.docStart = true;\n if (value &&\n (value.type === 'block-map' || value.type === 'block-seq') &&\n !props.hasNewline)\n onError(props.end, 'MISSING_CHAR', 'Block collection cannot start on same line with directives-end marker');\n }\n // @ts-expect-error If Contents is set, let's trust the user\n doc.contents = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n const contentEnd = doc.contents.range[2];\n const re = resolveEnd(end, contentEnd, false, onError);\n if (re.comment)\n doc.comment = re.comment;\n doc.range = [offset, contentEnd, re.offset];\n return doc;\n}\n\nexport { composeDoc };\n","import { Directives } from '../doc/directives.js';\nimport { Document } from '../doc/Document.js';\nimport { YAMLWarning, YAMLParseError } from '../errors.js';\nimport { isCollection, isPair } from '../nodes/identity.js';\nimport { composeDoc } from './compose-doc.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction getErrorPos(src) {\n if (typeof src === 'number')\n return [src, src + 1];\n if (Array.isArray(src))\n return src.length === 2 ? src : [src[0], src[1]];\n const { offset, source } = src;\n return [offset, offset + (typeof source === 'string' ? source.length : 1)];\n}\nfunction parsePrelude(prelude) {\n let comment = '';\n let atComment = false;\n let afterEmptyLine = false;\n for (let i = 0; i < prelude.length; ++i) {\n const source = prelude[i];\n switch (source[0]) {\n case '#':\n comment +=\n (comment === '' ? '' : afterEmptyLine ? '\\n\\n' : '\\n') +\n (source.substring(1) || ' ');\n atComment = true;\n afterEmptyLine = false;\n break;\n case '%':\n if (prelude[i + 1]?.[0] !== '#')\n i += 1;\n atComment = false;\n break;\n default:\n // This may be wrong after doc-end, but in that case it doesn't matter\n if (!atComment)\n afterEmptyLine = true;\n atComment = false;\n }\n }\n return { comment, afterEmptyLine };\n}\n/**\n * Compose a stream of CST nodes into a stream of YAML Documents.\n *\n * ```ts\n * import { Composer, Parser } from 'yaml'\n *\n * const src: string = ...\n * const tokens = new Parser().parse(src)\n * const docs = new Composer().compose(tokens)\n * ```\n */\nclass Composer {\n constructor(options = {}) {\n this.doc = null;\n this.atDirectives = false;\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n this.onError = (source, code, message, warning) => {\n const pos = getErrorPos(source);\n if (warning)\n this.warnings.push(new YAMLWarning(pos, code, message));\n else\n this.errors.push(new YAMLParseError(pos, code, message));\n };\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.directives = new Directives({ version: options.version || '1.2' });\n this.options = options;\n }\n decorate(doc, afterDoc) {\n const { comment, afterEmptyLine } = parsePrelude(this.prelude);\n //console.log({ dc: doc.comment, prelude, comment })\n if (comment) {\n const dc = doc.contents;\n if (afterDoc) {\n doc.comment = doc.comment ? `${doc.comment}\\n${comment}` : comment;\n }\n else if (afterEmptyLine || doc.directives.docStart || !dc) {\n doc.commentBefore = comment;\n }\n else if (isCollection(dc) && !dc.flow && dc.items.length > 0) {\n let it = dc.items[0];\n if (isPair(it))\n it = it.key;\n const cb = it.commentBefore;\n it.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n else {\n const cb = dc.commentBefore;\n dc.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n }\n if (afterDoc) {\n Array.prototype.push.apply(doc.errors, this.errors);\n Array.prototype.push.apply(doc.warnings, this.warnings);\n }\n else {\n doc.errors = this.errors;\n doc.warnings = this.warnings;\n }\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n }\n /**\n * Current stream status information.\n *\n * Mostly useful at the end of input for an empty stream.\n */\n streamInfo() {\n return {\n comment: parsePrelude(this.prelude).comment,\n directives: this.directives,\n errors: this.errors,\n warnings: this.warnings\n };\n }\n /**\n * Compose tokens into documents.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *compose(tokens, forceDoc = false, endOffset = -1) {\n for (const token of tokens)\n yield* this.next(token);\n yield* this.end(forceDoc, endOffset);\n }\n /** Advance the composer by one CST token. */\n *next(token) {\n switch (token.type) {\n case 'directive':\n this.directives.add(token.source, (offset, message, warning) => {\n const pos = getErrorPos(token);\n pos[0] += offset;\n this.onError(pos, 'BAD_DIRECTIVE', message, warning);\n });\n this.prelude.push(token.source);\n this.atDirectives = true;\n break;\n case 'document': {\n const doc = composeDoc(this.options, this.directives, token, this.onError);\n if (this.atDirectives && !doc.directives.docStart)\n this.onError(token, 'MISSING_CHAR', 'Missing directives-end/doc-start indicator line');\n this.decorate(doc, false);\n if (this.doc)\n yield this.doc;\n this.doc = doc;\n this.atDirectives = false;\n break;\n }\n case 'byte-order-mark':\n case 'space':\n break;\n case 'comment':\n case 'newline':\n this.prelude.push(token.source);\n break;\n case 'error': {\n const msg = token.source\n ? `${token.message}: ${JSON.stringify(token.source)}`\n : token.message;\n const error = new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg);\n if (this.atDirectives || !this.doc)\n this.errors.push(error);\n else\n this.doc.errors.push(error);\n break;\n }\n case 'doc-end': {\n if (!this.doc) {\n const msg = 'Unexpected doc-end without preceding document';\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg));\n break;\n }\n this.doc.directives.docEnd = true;\n const end = resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);\n this.decorate(this.doc, true);\n if (end.comment) {\n const dc = this.doc.comment;\n this.doc.comment = dc ? `${dc}\\n${end.comment}` : end.comment;\n }\n this.doc.range[2] = end.offset;\n break;\n }\n default:\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', `Unsupported token ${token.type}`));\n }\n }\n /**\n * Call at end of input to yield any remaining document.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *end(forceDoc = false, endOffset = -1) {\n if (this.doc) {\n this.decorate(this.doc, true);\n yield this.doc;\n this.doc = null;\n }\n else if (forceDoc) {\n const opts = Object.assign({ _directives: this.directives }, this.options);\n const doc = new Document(undefined, opts);\n if (this.atDirectives)\n this.onError(endOffset, 'MISSING_CHAR', 'Missing directives-end indicator line');\n doc.range = [0, endOffset, endOffset];\n this.decorate(doc, false);\n yield doc;\n }\n }\n}\n\nexport { Composer };\n","import { resolveBlockScalar } from '../compose/resolve-block-scalar.js';\nimport { resolveFlowScalar } from '../compose/resolve-flow-scalar.js';\nimport { YAMLParseError } from '../errors.js';\nimport { stringifyString } from '../stringify/stringifyString.js';\n\nfunction resolveAsScalar(token, strict = true, onError) {\n if (token) {\n const _onError = (pos, code, message) => {\n const offset = typeof pos === 'number' ? pos : Array.isArray(pos) ? pos[0] : pos.offset;\n if (onError)\n onError(offset, code, message);\n else\n throw new YAMLParseError([offset, offset + 1], code, message);\n };\n switch (token.type) {\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return resolveFlowScalar(token, strict, _onError);\n case 'block-scalar':\n return resolveBlockScalar({ options: { strict } }, token, _onError);\n }\n }\n return null;\n}\n/**\n * Create a new scalar token with `value`\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.end Comments and whitespace after the end of the value, or after the block scalar header. If undefined, a newline will be added.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.indent The indent level of the token.\n * @param context.inFlow Is this scalar within a flow collection? This may affect the resolved type of the token's value.\n * @param context.offset The offset position of the token.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction createScalarToken(value, context) {\n const { implicitKey = false, indent, inFlow = false, offset = -1, type = 'PLAIN' } = context;\n const source = stringifyString({ type, value }, {\n implicitKey,\n indent: indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n const end = context.end ?? [\n { type: 'newline', offset: -1, indent, source: '\\n' }\n ];\n switch (source[0]) {\n case '|':\n case '>': {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, end))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n return { type: 'block-scalar', offset, indent, props, source: body };\n }\n case '\"':\n return { type: 'double-quoted-scalar', offset, indent, source, end };\n case \"'\":\n return { type: 'single-quoted-scalar', offset, indent, source, end };\n default:\n return { type: 'scalar', offset, indent, source, end };\n }\n}\n/**\n * Set the value of `token` to the given string `value`, overwriting any previous contents and type that it may have.\n *\n * Best efforts are made to retain any comments previously associated with the `token`,\n * though all contents within a collection's `items` will be overwritten.\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param token Any token. If it does not include an `indent` value, the value will be stringified as if it were an implicit key.\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.afterKey In most cases, values after a key should have an additional level of indentation.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.inFlow Being within a flow collection may affect the resolved type of the token's value.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction setScalarValue(token, value, context = {}) {\n let { afterKey = false, implicitKey = false, inFlow = false, type } = context;\n let indent = 'indent' in token ? token.indent : null;\n if (afterKey && typeof indent === 'number')\n indent += 2;\n if (!type)\n switch (token.type) {\n case 'single-quoted-scalar':\n type = 'QUOTE_SINGLE';\n break;\n case 'double-quoted-scalar':\n type = 'QUOTE_DOUBLE';\n break;\n case 'block-scalar': {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n type = header.source[0] === '>' ? 'BLOCK_FOLDED' : 'BLOCK_LITERAL';\n break;\n }\n default:\n type = 'PLAIN';\n }\n const source = stringifyString({ type, value }, {\n implicitKey: implicitKey || indent === null,\n indent: indent !== null && indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n switch (source[0]) {\n case '|':\n case '>':\n setBlockScalarValue(token, source);\n break;\n case '\"':\n setFlowScalarValue(token, source, 'double-quoted-scalar');\n break;\n case \"'\":\n setFlowScalarValue(token, source, 'single-quoted-scalar');\n break;\n default:\n setFlowScalarValue(token, source, 'scalar');\n }\n}\nfunction setBlockScalarValue(token, source) {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n if (token.type === 'block-scalar') {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n header.source = head;\n token.source = body;\n }\n else {\n const { offset } = token;\n const indent = 'indent' in token ? token.indent : -1;\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, 'end' in token ? token.end : undefined))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type: 'block-scalar', indent, props, source: body });\n }\n}\n/** @returns `true` if last token is a newline */\nfunction addEndtoBlockProps(props, end) {\n if (end)\n for (const st of end)\n switch (st.type) {\n case 'space':\n case 'comment':\n props.push(st);\n break;\n case 'newline':\n props.push(st);\n return true;\n }\n return false;\n}\nfunction setFlowScalarValue(token, source, type) {\n switch (token.type) {\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n token.type = type;\n token.source = source;\n break;\n case 'block-scalar': {\n const end = token.props.slice(1);\n let oa = source.length;\n if (token.props[0].type === 'block-scalar-header')\n oa -= token.props[0].source.length;\n for (const tok of end)\n tok.offset += oa;\n delete token.props;\n Object.assign(token, { type, source, end });\n break;\n }\n case 'block-map':\n case 'block-seq': {\n const offset = token.offset + source.length;\n const nl = { type: 'newline', offset, indent: token.indent, source: '\\n' };\n delete token.items;\n Object.assign(token, { type, source, end: [nl] });\n break;\n }\n default: {\n const indent = 'indent' in token ? token.indent : -1;\n const end = 'end' in token && Array.isArray(token.end)\n ? token.end.filter(st => st.type === 'space' ||\n st.type === 'comment' ||\n st.type === 'newline')\n : [];\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type, indent, source, end });\n }\n }\n}\n\nexport { createScalarToken, resolveAsScalar, setScalarValue };\n","/**\n * Stringify a CST document, token, or collection item\n *\n * Fair warning: This applies no validation whatsoever, and\n * simply concatenates the sources in their logical order.\n */\nconst stringify = (cst) => 'type' in cst ? stringifyToken(cst) : stringifyItem(cst);\nfunction stringifyToken(token) {\n switch (token.type) {\n case 'block-scalar': {\n let res = '';\n for (const tok of token.props)\n res += stringifyToken(tok);\n return res + token.source;\n }\n case 'block-map':\n case 'block-seq': {\n let res = '';\n for (const item of token.items)\n res += stringifyItem(item);\n return res;\n }\n case 'flow-collection': {\n let res = token.start.source;\n for (const item of token.items)\n res += stringifyItem(item);\n for (const st of token.end)\n res += st.source;\n return res;\n }\n case 'document': {\n let res = stringifyItem(token);\n if (token.end)\n for (const st of token.end)\n res += st.source;\n return res;\n }\n default: {\n let res = token.source;\n if ('end' in token && token.end)\n for (const st of token.end)\n res += st.source;\n return res;\n }\n }\n}\nfunction stringifyItem({ start, key, sep, value }) {\n let res = '';\n for (const st of start)\n res += st.source;\n if (key)\n res += stringifyToken(key);\n if (sep)\n for (const st of sep)\n res += st.source;\n if (value)\n res += stringifyToken(value);\n return res;\n}\n\nexport { stringify };\n","const BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove item');\n/**\n * Apply a visitor to a CST document or item.\n *\n * Walks through the tree (depth-first) starting from the root, calling a\n * `visitor` function with two arguments when entering each item:\n * - `item`: The current item, which included the following members:\n * - `start: SourceToken[]` – Source tokens before the key or value,\n * possibly including its anchor or tag.\n * - `key?: Token | null` – Set for pair values. May then be `null`, if\n * the key before the `:` separator is empty.\n * - `sep?: SourceToken[]` – Source tokens between the key and the value,\n * which should include the `:` map value indicator if `value` is set.\n * - `value?: Token` – The value of a sequence item, or of a map pair.\n * - `path`: The steps from the root to the current node, as an array of\n * `['key' | 'value', number]` tuples.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this token, continue with\n * next sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current item, then continue with the next one\n * - `number`: Set the index of the next step. This is useful especially if\n * the index of the current token has changed.\n * - `function`: Define the next visitor for this item. After the original\n * visitor is called on item entry, next visitors are called after handling\n * a non-empty `key` and when exiting the item.\n */\nfunction visit(cst, visitor) {\n if ('type' in cst && cst.type === 'document')\n cst = { start: cst.start, value: cst.value };\n _visit(Object.freeze([]), cst, visitor);\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current item */\nvisit.SKIP = SKIP;\n/** Remove the current item */\nvisit.REMOVE = REMOVE;\n/** Find the item at `path` from `cst` as the root */\nvisit.itemAtPath = (cst, path) => {\n let item = cst;\n for (const [field, index] of path) {\n const tok = item?.[field];\n if (tok && 'items' in tok) {\n item = tok.items[index];\n }\n else\n return undefined;\n }\n return item;\n};\n/**\n * Get the immediate parent collection of the item at `path` from `cst` as the root.\n *\n * Throws an error if the collection is not found, which should never happen if the item itself exists.\n */\nvisit.parentCollection = (cst, path) => {\n const parent = visit.itemAtPath(cst, path.slice(0, -1));\n const field = path[path.length - 1][0];\n const coll = parent?.[field];\n if (coll && 'items' in coll)\n return coll;\n throw new Error('Parent collection not found');\n};\nfunction _visit(path, item, visitor) {\n let ctrl = visitor(item, path);\n if (typeof ctrl === 'symbol')\n return ctrl;\n for (const field of ['key', 'value']) {\n const token = item[field];\n if (token && 'items' in token) {\n for (let i = 0; i < token.items.length; ++i) {\n const ci = _visit(Object.freeze(path.concat([[field, i]])), token.items[i], visitor);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n token.items.splice(i, 1);\n i -= 1;\n }\n }\n if (typeof ctrl === 'function' && field === 'key')\n ctrl = ctrl(item, path);\n }\n }\n return typeof ctrl === 'function' ? ctrl(item, path) : ctrl;\n}\n\nexport { visit };\n","export { createScalarToken, resolveAsScalar, setScalarValue } from './cst-scalar.js';\nexport { stringify } from './cst-stringify.js';\nexport { visit } from './cst-visit.js';\n\n/** The byte order mark */\nconst BOM = '\\u{FEFF}';\n/** Start of doc-mode */\nconst DOCUMENT = '\\x02'; // C0: Start of Text\n/** Unexpected end of flow-mode */\nconst FLOW_END = '\\x18'; // C0: Cancel\n/** Next token is a scalar value */\nconst SCALAR = '\\x1f'; // C0: Unit Separator\n/** @returns `true` if `token` is a flow or block collection */\nconst isCollection = (token) => !!token && 'items' in token;\n/** @returns `true` if `token` is a flow or block scalar; not an alias */\nconst isScalar = (token) => !!token &&\n (token.type === 'scalar' ||\n token.type === 'single-quoted-scalar' ||\n token.type === 'double-quoted-scalar' ||\n token.type === 'block-scalar');\n/* istanbul ignore next */\n/** Get a printable representation of a lexer token */\nfunction prettyToken(token) {\n switch (token) {\n case BOM:\n return '';\n case DOCUMENT:\n return '';\n case FLOW_END:\n return '';\n case SCALAR:\n return '';\n default:\n return JSON.stringify(token);\n }\n}\n/** Identify the type of a lexer token. May return `null` for unknown tokens. */\nfunction tokenType(source) {\n switch (source) {\n case BOM:\n return 'byte-order-mark';\n case DOCUMENT:\n return 'doc-mode';\n case FLOW_END:\n return 'flow-error-end';\n case SCALAR:\n return 'scalar';\n case '---':\n return 'doc-start';\n case '...':\n return 'doc-end';\n case '':\n case '\\n':\n case '\\r\\n':\n return 'newline';\n case '-':\n return 'seq-item-ind';\n case '?':\n return 'explicit-key-ind';\n case ':':\n return 'map-value-ind';\n case '{':\n return 'flow-map-start';\n case '}':\n return 'flow-map-end';\n case '[':\n return 'flow-seq-start';\n case ']':\n return 'flow-seq-end';\n case ',':\n return 'comma';\n }\n switch (source[0]) {\n case ' ':\n case '\\t':\n return 'space';\n case '#':\n return 'comment';\n case '%':\n return 'directive-line';\n case '*':\n return 'alias';\n case '&':\n return 'anchor';\n case '!':\n return 'tag';\n case \"'\":\n return 'single-quoted-scalar';\n case '\"':\n return 'double-quoted-scalar';\n case '|':\n case '>':\n return 'block-scalar-header';\n }\n return null;\n}\n\nexport { BOM, DOCUMENT, FLOW_END, SCALAR, isCollection, isScalar, prettyToken, tokenType };\n","import { BOM, DOCUMENT, FLOW_END, SCALAR } from './cst.js';\n\n/*\nSTART -> stream\n\nstream\n directive -> line-end -> stream\n indent + line-end -> stream\n [else] -> line-start\n\nline-end\n comment -> line-end\n newline -> .\n input-end -> END\n\nline-start\n doc-start -> doc\n doc-end -> stream\n [else] -> indent -> block-start\n\nblock-start\n seq-item-start -> block-start\n explicit-key-start -> block-start\n map-value-start -> block-start\n [else] -> doc\n\ndoc\n line-end -> line-start\n spaces -> doc\n anchor -> doc\n tag -> doc\n flow-start -> flow -> doc\n flow-end -> error -> doc\n seq-item-start -> error -> doc\n explicit-key-start -> error -> doc\n map-value-start -> doc\n alias -> doc\n quote-start -> quoted-scalar -> doc\n block-scalar-header -> line-end -> block-scalar(min) -> line-start\n [else] -> plain-scalar(false, min) -> doc\n\nflow\n line-end -> flow\n spaces -> flow\n anchor -> flow\n tag -> flow\n flow-start -> flow -> flow\n flow-end -> .\n seq-item-start -> error -> flow\n explicit-key-start -> flow\n map-value-start -> flow\n alias -> flow\n quote-start -> quoted-scalar -> flow\n comma -> flow\n [else] -> plain-scalar(true, 0) -> flow\n\nquoted-scalar\n quote-end -> .\n [else] -> quoted-scalar\n\nblock-scalar(min)\n newline + peek(indent < min) -> .\n [else] -> block-scalar(min)\n\nplain-scalar(is-flow, min)\n scalar-end(is-flow) -> .\n peek(newline + (indent < min)) -> .\n [else] -> plain-scalar(min)\n*/\nfunction isEmpty(ch) {\n switch (ch) {\n case undefined:\n case ' ':\n case '\\n':\n case '\\r':\n case '\\t':\n return true;\n default:\n return false;\n }\n}\nconst hexDigits = new Set('0123456789ABCDEFabcdef');\nconst tagChars = new Set(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()\");\nconst flowIndicatorChars = new Set(',[]{}');\nconst invalidAnchorChars = new Set(' ,[]{}\\n\\r\\t');\nconst isNotAnchorChar = (ch) => !ch || invalidAnchorChars.has(ch);\n/**\n * Splits an input string into lexical tokens, i.e. smaller strings that are\n * easily identifiable by `tokens.tokenType()`.\n *\n * Lexing starts always in a \"stream\" context. Incomplete input may be buffered\n * until a complete token can be emitted.\n *\n * In addition to slices of the original input, the following control characters\n * may also be emitted:\n *\n * - `\\x02` (Start of Text): A document starts with the next token\n * - `\\x18` (Cancel): Unexpected end of flow-mode (indicates an error)\n * - `\\x1f` (Unit Separator): Next token is a scalar value\n * - `\\u{FEFF}` (Byte order mark): Emitted separately outside documents\n */\nclass Lexer {\n constructor() {\n /**\n * Flag indicating whether the end of the current buffer marks the end of\n * all input\n */\n this.atEnd = false;\n /**\n * Explicit indent set in block scalar header, as an offset from the current\n * minimum indent, so e.g. set to 1 from a header `|2+`. Set to -1 if not\n * explicitly set.\n */\n this.blockScalarIndent = -1;\n /**\n * Block scalars that include a + (keep) chomping indicator in their header\n * include trailing empty lines, which are otherwise excluded from the\n * scalar's contents.\n */\n this.blockScalarKeep = false;\n /** Current input */\n this.buffer = '';\n /**\n * Flag noting whether the map value indicator : can immediately follow this\n * node within a flow context.\n */\n this.flowKey = false;\n /** Count of surrounding flow collection levels. */\n this.flowLevel = 0;\n /**\n * Minimum level of indentation required for next lines to be parsed as a\n * part of the current scalar value.\n */\n this.indentNext = 0;\n /** Indentation level of the current line. */\n this.indentValue = 0;\n /** Position of the next \\n character. */\n this.lineEndPos = null;\n /** Stores the state of the lexer if reaching the end of incpomplete input */\n this.next = null;\n /** A pointer to `buffer`; the current position of the lexer. */\n this.pos = 0;\n }\n /**\n * Generate YAML tokens from the `source` string. If `incomplete`,\n * a part of the last line may be left as a buffer for the next call.\n *\n * @returns A generator of lexical tokens\n */\n *lex(source, incomplete = false) {\n if (source) {\n if (typeof source !== 'string')\n throw TypeError('source is not a string');\n this.buffer = this.buffer ? this.buffer + source : source;\n this.lineEndPos = null;\n }\n this.atEnd = !incomplete;\n let next = this.next ?? 'stream';\n while (next && (incomplete || this.hasChars(1)))\n next = yield* this.parseNext(next);\n }\n atLineEnd() {\n let i = this.pos;\n let ch = this.buffer[i];\n while (ch === ' ' || ch === '\\t')\n ch = this.buffer[++i];\n if (!ch || ch === '#' || ch === '\\n')\n return true;\n if (ch === '\\r')\n return this.buffer[i + 1] === '\\n';\n return false;\n }\n charAt(n) {\n return this.buffer[this.pos + n];\n }\n continueScalar(offset) {\n let ch = this.buffer[offset];\n if (this.indentNext > 0) {\n let indent = 0;\n while (ch === ' ')\n ch = this.buffer[++indent + offset];\n if (ch === '\\r') {\n const next = this.buffer[indent + offset + 1];\n if (next === '\\n' || (!next && !this.atEnd))\n return offset + indent + 1;\n }\n return ch === '\\n' || indent >= this.indentNext || (!ch && !this.atEnd)\n ? offset + indent\n : -1;\n }\n if (ch === '-' || ch === '.') {\n const dt = this.buffer.substr(offset, 3);\n if ((dt === '---' || dt === '...') && isEmpty(this.buffer[offset + 3]))\n return -1;\n }\n return offset;\n }\n getLine() {\n let end = this.lineEndPos;\n if (typeof end !== 'number' || (end !== -1 && end < this.pos)) {\n end = this.buffer.indexOf('\\n', this.pos);\n this.lineEndPos = end;\n }\n if (end === -1)\n return this.atEnd ? this.buffer.substring(this.pos) : null;\n if (this.buffer[end - 1] === '\\r')\n end -= 1;\n return this.buffer.substring(this.pos, end);\n }\n hasChars(n) {\n return this.pos + n <= this.buffer.length;\n }\n setNext(state) {\n this.buffer = this.buffer.substring(this.pos);\n this.pos = 0;\n this.lineEndPos = null;\n this.next = state;\n return null;\n }\n peek(n) {\n return this.buffer.substr(this.pos, n);\n }\n *parseNext(next) {\n switch (next) {\n case 'stream':\n return yield* this.parseStream();\n case 'line-start':\n return yield* this.parseLineStart();\n case 'block-start':\n return yield* this.parseBlockStart();\n case 'doc':\n return yield* this.parseDocument();\n case 'flow':\n return yield* this.parseFlowCollection();\n case 'quoted-scalar':\n return yield* this.parseQuotedScalar();\n case 'block-scalar':\n return yield* this.parseBlockScalar();\n case 'plain-scalar':\n return yield* this.parsePlainScalar();\n }\n }\n *parseStream() {\n let line = this.getLine();\n if (line === null)\n return this.setNext('stream');\n if (line[0] === BOM) {\n yield* this.pushCount(1);\n line = line.substring(1);\n }\n if (line[0] === '%') {\n let dirEnd = line.length;\n let cs = line.indexOf('#');\n while (cs !== -1) {\n const ch = line[cs - 1];\n if (ch === ' ' || ch === '\\t') {\n dirEnd = cs - 1;\n break;\n }\n else {\n cs = line.indexOf('#', cs + 1);\n }\n }\n while (true) {\n const ch = line[dirEnd - 1];\n if (ch === ' ' || ch === '\\t')\n dirEnd -= 1;\n else\n break;\n }\n const n = (yield* this.pushCount(dirEnd)) + (yield* this.pushSpaces(true));\n yield* this.pushCount(line.length - n); // possible comment\n this.pushNewline();\n return 'stream';\n }\n if (this.atLineEnd()) {\n const sp = yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - sp);\n yield* this.pushNewline();\n return 'stream';\n }\n yield DOCUMENT;\n return yield* this.parseLineStart();\n }\n *parseLineStart() {\n const ch = this.charAt(0);\n if (!ch && !this.atEnd)\n return this.setNext('line-start');\n if (ch === '-' || ch === '.') {\n if (!this.atEnd && !this.hasChars(4))\n return this.setNext('line-start');\n const s = this.peek(3);\n if ((s === '---' || s === '...') && isEmpty(this.charAt(3))) {\n yield* this.pushCount(3);\n this.indentValue = 0;\n this.indentNext = 0;\n return s === '---' ? 'doc' : 'stream';\n }\n }\n this.indentValue = yield* this.pushSpaces(false);\n if (this.indentNext > this.indentValue && !isEmpty(this.charAt(1)))\n this.indentNext = this.indentValue;\n return yield* this.parseBlockStart();\n }\n *parseBlockStart() {\n const [ch0, ch1] = this.peek(2);\n if (!ch1 && !this.atEnd)\n return this.setNext('block-start');\n if ((ch0 === '-' || ch0 === '?' || ch0 === ':') && isEmpty(ch1)) {\n const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));\n this.indentNext = this.indentValue + 1;\n this.indentValue += n;\n return yield* this.parseBlockStart();\n }\n return 'doc';\n }\n *parseDocument() {\n yield* this.pushSpaces(true);\n const line = this.getLine();\n if (line === null)\n return this.setNext('doc');\n let n = yield* this.pushIndicators();\n switch (line[n]) {\n case '#':\n yield* this.pushCount(line.length - n);\n // fallthrough\n case undefined:\n yield* this.pushNewline();\n return yield* this.parseLineStart();\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel = 1;\n return 'flow';\n case '}':\n case ']':\n // this is an error\n yield* this.pushCount(1);\n return 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'doc';\n case '\"':\n case \"'\":\n return yield* this.parseQuotedScalar();\n case '|':\n case '>':\n n += yield* this.parseBlockScalarHeader();\n n += yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - n);\n yield* this.pushNewline();\n return yield* this.parseBlockScalar();\n default:\n return yield* this.parsePlainScalar();\n }\n }\n *parseFlowCollection() {\n let nl, sp;\n let indent = -1;\n do {\n nl = yield* this.pushNewline();\n if (nl > 0) {\n sp = yield* this.pushSpaces(false);\n this.indentValue = indent = sp;\n }\n else {\n sp = 0;\n }\n sp += yield* this.pushSpaces(true);\n } while (nl + sp > 0);\n const line = this.getLine();\n if (line === null)\n return this.setNext('flow');\n if ((indent !== -1 && indent < this.indentNext && line[0] !== '#') ||\n (indent === 0 &&\n (line.startsWith('---') || line.startsWith('...')) &&\n isEmpty(line[3]))) {\n // Allowing for the terminal ] or } at the same (rather than greater)\n // indent level as the initial [ or { is technically invalid, but\n // failing here would be surprising to users.\n const atFlowEndMarker = indent === this.indentNext - 1 &&\n this.flowLevel === 1 &&\n (line[0] === ']' || line[0] === '}');\n if (!atFlowEndMarker) {\n // this is an error\n this.flowLevel = 0;\n yield FLOW_END;\n return yield* this.parseLineStart();\n }\n }\n let n = 0;\n while (line[n] === ',') {\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n this.flowKey = false;\n }\n n += yield* this.pushIndicators();\n switch (line[n]) {\n case undefined:\n return 'flow';\n case '#':\n yield* this.pushCount(line.length - n);\n return 'flow';\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel += 1;\n return 'flow';\n case '}':\n case ']':\n yield* this.pushCount(1);\n this.flowKey = true;\n this.flowLevel -= 1;\n return this.flowLevel ? 'flow' : 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'flow';\n case '\"':\n case \"'\":\n this.flowKey = true;\n return yield* this.parseQuotedScalar();\n case ':': {\n const next = this.charAt(1);\n if (this.flowKey || isEmpty(next) || next === ',') {\n this.flowKey = false;\n yield* this.pushCount(1);\n yield* this.pushSpaces(true);\n return 'flow';\n }\n }\n // fallthrough\n default:\n this.flowKey = false;\n return yield* this.parsePlainScalar();\n }\n }\n *parseQuotedScalar() {\n const quote = this.charAt(0);\n let end = this.buffer.indexOf(quote, this.pos + 1);\n if (quote === \"'\") {\n while (end !== -1 && this.buffer[end + 1] === \"'\")\n end = this.buffer.indexOf(\"'\", end + 2);\n }\n else {\n // double-quote\n while (end !== -1) {\n let n = 0;\n while (this.buffer[end - 1 - n] === '\\\\')\n n += 1;\n if (n % 2 === 0)\n break;\n end = this.buffer.indexOf('\"', end + 1);\n }\n }\n // Only looking for newlines within the quotes\n const qb = this.buffer.substring(0, end);\n let nl = qb.indexOf('\\n', this.pos);\n if (nl !== -1) {\n while (nl !== -1) {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = qb.indexOf('\\n', cs);\n }\n if (nl !== -1) {\n // this is an error caused by an unexpected unindent\n end = nl - (qb[nl - 1] === '\\r' ? 2 : 1);\n }\n }\n if (end === -1) {\n if (!this.atEnd)\n return this.setNext('quoted-scalar');\n end = this.buffer.length;\n }\n yield* this.pushToIndex(end + 1, false);\n return this.flowLevel ? 'flow' : 'doc';\n }\n *parseBlockScalarHeader() {\n this.blockScalarIndent = -1;\n this.blockScalarKeep = false;\n let i = this.pos;\n while (true) {\n const ch = this.buffer[++i];\n if (ch === '+')\n this.blockScalarKeep = true;\n else if (ch > '0' && ch <= '9')\n this.blockScalarIndent = Number(ch) - 1;\n else if (ch !== '-')\n break;\n }\n return yield* this.pushUntil(ch => isEmpty(ch) || ch === '#');\n }\n *parseBlockScalar() {\n let nl = this.pos - 1; // may be -1 if this.pos === 0\n let indent = 0;\n let ch;\n loop: for (let i = this.pos; (ch = this.buffer[i]); ++i) {\n switch (ch) {\n case ' ':\n indent += 1;\n break;\n case '\\n':\n nl = i;\n indent = 0;\n break;\n case '\\r': {\n const next = this.buffer[i + 1];\n if (!next && !this.atEnd)\n return this.setNext('block-scalar');\n if (next === '\\n')\n break;\n } // fallthrough\n default:\n break loop;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('block-scalar');\n if (indent >= this.indentNext) {\n if (this.blockScalarIndent === -1)\n this.indentNext = indent;\n else {\n this.indentNext =\n this.blockScalarIndent + (this.indentNext === 0 ? 1 : this.indentNext);\n }\n do {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = this.buffer.indexOf('\\n', cs);\n } while (nl !== -1);\n if (nl === -1) {\n if (!this.atEnd)\n return this.setNext('block-scalar');\n nl = this.buffer.length;\n }\n }\n // Trailing insufficiently indented tabs are invalid.\n // To catch that during parsing, we include them in the block scalar value.\n let i = nl + 1;\n ch = this.buffer[i];\n while (ch === ' ')\n ch = this.buffer[++i];\n if (ch === '\\t') {\n while (ch === '\\t' || ch === ' ' || ch === '\\r' || ch === '\\n')\n ch = this.buffer[++i];\n nl = i - 1;\n }\n else if (!this.blockScalarKeep) {\n do {\n let i = nl - 1;\n let ch = this.buffer[i];\n if (ch === '\\r')\n ch = this.buffer[--i];\n const lastChar = i; // Drop the line if last char not more indented\n while (ch === ' ')\n ch = this.buffer[--i];\n if (ch === '\\n' && i >= this.pos && i + 1 + indent > lastChar)\n nl = i;\n else\n break;\n } while (true);\n }\n yield SCALAR;\n yield* this.pushToIndex(nl + 1, true);\n return yield* this.parseLineStart();\n }\n *parsePlainScalar() {\n const inFlow = this.flowLevel > 0;\n let end = this.pos - 1;\n let i = this.pos - 1;\n let ch;\n while ((ch = this.buffer[++i])) {\n if (ch === ':') {\n const next = this.buffer[i + 1];\n if (isEmpty(next) || (inFlow && flowIndicatorChars.has(next)))\n break;\n end = i;\n }\n else if (isEmpty(ch)) {\n let next = this.buffer[i + 1];\n if (ch === '\\r') {\n if (next === '\\n') {\n i += 1;\n ch = '\\n';\n next = this.buffer[i + 1];\n }\n else\n end = i;\n }\n if (next === '#' || (inFlow && flowIndicatorChars.has(next)))\n break;\n if (ch === '\\n') {\n const cs = this.continueScalar(i + 1);\n if (cs === -1)\n break;\n i = Math.max(i, cs - 2); // to advance, but still account for ' #'\n }\n }\n else {\n if (inFlow && flowIndicatorChars.has(ch))\n break;\n end = i;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('plain-scalar');\n yield SCALAR;\n yield* this.pushToIndex(end + 1, true);\n return inFlow ? 'flow' : 'doc';\n }\n *pushCount(n) {\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos += n;\n return n;\n }\n return 0;\n }\n *pushToIndex(i, allowEmpty) {\n const s = this.buffer.slice(this.pos, i);\n if (s) {\n yield s;\n this.pos += s.length;\n return s.length;\n }\n else if (allowEmpty)\n yield '';\n return 0;\n }\n *pushIndicators() {\n switch (this.charAt(0)) {\n case '!':\n return ((yield* this.pushTag()) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n case '&':\n return ((yield* this.pushUntil(isNotAnchorChar)) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n case '-': // this is an error\n case '?': // this is an error outside flow collections\n case ':': {\n const inFlow = this.flowLevel > 0;\n const ch1 = this.charAt(1);\n if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {\n if (!inFlow)\n this.indentNext = this.indentValue + 1;\n else if (this.flowKey)\n this.flowKey = false;\n return ((yield* this.pushCount(1)) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n }\n }\n }\n return 0;\n }\n *pushTag() {\n if (this.charAt(1) === '<') {\n let i = this.pos + 2;\n let ch = this.buffer[i];\n while (!isEmpty(ch) && ch !== '>')\n ch = this.buffer[++i];\n return yield* this.pushToIndex(ch === '>' ? i + 1 : i, false);\n }\n else {\n let i = this.pos + 1;\n let ch = this.buffer[i];\n while (ch) {\n if (tagChars.has(ch))\n ch = this.buffer[++i];\n else if (ch === '%' &&\n hexDigits.has(this.buffer[i + 1]) &&\n hexDigits.has(this.buffer[i + 2])) {\n ch = this.buffer[(i += 3)];\n }\n else\n break;\n }\n return yield* this.pushToIndex(i, false);\n }\n }\n *pushNewline() {\n const ch = this.buffer[this.pos];\n if (ch === '\\n')\n return yield* this.pushCount(1);\n else if (ch === '\\r' && this.charAt(1) === '\\n')\n return yield* this.pushCount(2);\n else\n return 0;\n }\n *pushSpaces(allowTabs) {\n let i = this.pos - 1;\n let ch;\n do {\n ch = this.buffer[++i];\n } while (ch === ' ' || (allowTabs && ch === '\\t'));\n const n = i - this.pos;\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos = i;\n }\n return n;\n }\n *pushUntil(test) {\n let i = this.pos;\n let ch = this.buffer[i];\n while (!test(ch))\n ch = this.buffer[++i];\n return yield* this.pushToIndex(i, false);\n }\n}\n\nexport { Lexer };\n","/**\n * Tracks newlines during parsing in order to provide an efficient API for\n * determining the one-indexed `{ line, col }` position for any offset\n * within the input.\n */\nclass LineCounter {\n constructor() {\n this.lineStarts = [];\n /**\n * Should be called in ascending order. Otherwise, call\n * `lineCounter.lineStarts.sort()` before calling `linePos()`.\n */\n this.addNewLine = (offset) => this.lineStarts.push(offset);\n /**\n * Performs a binary search and returns the 1-indexed { line, col }\n * position of `offset`. If `line === 0`, `addNewLine` has never been\n * called or `offset` is before the first known newline.\n */\n this.linePos = (offset) => {\n let low = 0;\n let high = this.lineStarts.length;\n while (low < high) {\n const mid = (low + high) >> 1; // Math.floor((low + high) / 2)\n if (this.lineStarts[mid] < offset)\n low = mid + 1;\n else\n high = mid;\n }\n if (this.lineStarts[low] === offset)\n return { line: low + 1, col: 1 };\n if (low === 0)\n return { line: 0, col: offset };\n const start = this.lineStarts[low - 1];\n return { line: low, col: offset - start + 1 };\n };\n }\n}\n\nexport { LineCounter };\n","import { tokenType } from './cst.js';\nimport { Lexer } from './lexer.js';\n\nfunction includesToken(list, type) {\n for (let i = 0; i < list.length; ++i)\n if (list[i].type === type)\n return true;\n return false;\n}\nfunction findNonEmptyIndex(list) {\n for (let i = 0; i < list.length; ++i) {\n switch (list[i].type) {\n case 'space':\n case 'comment':\n case 'newline':\n break;\n default:\n return i;\n }\n }\n return -1;\n}\nfunction isFlowToken(token) {\n switch (token?.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'flow-collection':\n return true;\n default:\n return false;\n }\n}\nfunction getPrevProps(parent) {\n switch (parent.type) {\n case 'document':\n return parent.start;\n case 'block-map': {\n const it = parent.items[parent.items.length - 1];\n return it.sep ?? it.start;\n }\n case 'block-seq':\n return parent.items[parent.items.length - 1].start;\n /* istanbul ignore next should not happen */\n default:\n return [];\n }\n}\n/** Note: May modify input array */\nfunction getFirstKeyStartProps(prev) {\n if (prev.length === 0)\n return [];\n let i = prev.length;\n loop: while (--i >= 0) {\n switch (prev[i].type) {\n case 'doc-start':\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n case 'newline':\n break loop;\n }\n }\n while (prev[++i]?.type === 'space') {\n /* loop */\n }\n return prev.splice(i, prev.length);\n}\nfunction fixFlowSeqItems(fc) {\n if (fc.start.type === 'flow-seq-start') {\n for (const it of fc.items) {\n if (it.sep &&\n !it.value &&\n !includesToken(it.start, 'explicit-key-ind') &&\n !includesToken(it.sep, 'map-value-ind')) {\n if (it.key)\n it.value = it.key;\n delete it.key;\n if (isFlowToken(it.value)) {\n if (it.value.end)\n Array.prototype.push.apply(it.value.end, it.sep);\n else\n it.value.end = it.sep;\n }\n else\n Array.prototype.push.apply(it.start, it.sep);\n delete it.sep;\n }\n }\n }\n}\n/**\n * A YAML concrete syntax tree (CST) parser\n *\n * ```ts\n * const src: string = ...\n * for (const token of new Parser().parse(src)) {\n * // token: Token\n * }\n * ```\n *\n * To use the parser with a user-provided lexer:\n *\n * ```ts\n * function* parse(source: string, lexer: Lexer) {\n * const parser = new Parser()\n * for (const lexeme of lexer.lex(source))\n * yield* parser.next(lexeme)\n * yield* parser.end()\n * }\n *\n * const src: string = ...\n * const lexer = new Lexer()\n * for (const token of parse(src, lexer)) {\n * // token: Token\n * }\n * ```\n */\nclass Parser {\n /**\n * @param onNewLine - If defined, called separately with the start position of\n * each new line (in `parse()`, including the start of input).\n */\n constructor(onNewLine) {\n /** If true, space and sequence indicators count as indentation */\n this.atNewLine = true;\n /** If true, next token is a scalar value */\n this.atScalar = false;\n /** Current indentation level */\n this.indent = 0;\n /** Current offset since the start of parsing */\n this.offset = 0;\n /** On the same line with a block map key */\n this.onKeyLine = false;\n /** Top indicates the node that's currently being built */\n this.stack = [];\n /** The source of the current token, set in parse() */\n this.source = '';\n /** The type of the current token, set in parse() */\n this.type = '';\n // Must be defined after `next()`\n this.lexer = new Lexer();\n this.onNewLine = onNewLine;\n }\n /**\n * Parse `source` as a YAML stream.\n * If `incomplete`, a part of the last line may be left as a buffer for the next call.\n *\n * Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.\n *\n * @returns A generator of tokens representing each directive, document, and other structure.\n */\n *parse(source, incomplete = false) {\n if (this.onNewLine && this.offset === 0)\n this.onNewLine(0);\n for (const lexeme of this.lexer.lex(source, incomplete))\n yield* this.next(lexeme);\n if (!incomplete)\n yield* this.end();\n }\n /**\n * Advance the parser by the `source` of one lexical token.\n */\n *next(source) {\n this.source = source;\n if (this.atScalar) {\n this.atScalar = false;\n yield* this.step();\n this.offset += source.length;\n return;\n }\n const type = tokenType(source);\n if (!type) {\n const message = `Not a YAML token: ${source}`;\n yield* this.pop({ type: 'error', offset: this.offset, message, source });\n this.offset += source.length;\n }\n else if (type === 'scalar') {\n this.atNewLine = false;\n this.atScalar = true;\n this.type = 'scalar';\n }\n else {\n this.type = type;\n yield* this.step();\n switch (type) {\n case 'newline':\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine)\n this.onNewLine(this.offset + source.length);\n break;\n case 'space':\n if (this.atNewLine && source[0] === ' ')\n this.indent += source.length;\n break;\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n if (this.atNewLine)\n this.indent += source.length;\n break;\n case 'doc-mode':\n case 'flow-error-end':\n return;\n default:\n this.atNewLine = false;\n }\n this.offset += source.length;\n }\n }\n /** Call at end of input to push out any remaining constructions */\n *end() {\n while (this.stack.length > 0)\n yield* this.pop();\n }\n get sourceToken() {\n const st = {\n type: this.type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n return st;\n }\n *step() {\n const top = this.peek(1);\n if (this.type === 'doc-end' && (!top || top.type !== 'doc-end')) {\n while (this.stack.length > 0)\n yield* this.pop();\n this.stack.push({\n type: 'doc-end',\n offset: this.offset,\n source: this.source\n });\n return;\n }\n if (!top)\n return yield* this.stream();\n switch (top.type) {\n case 'document':\n return yield* this.document(top);\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return yield* this.scalar(top);\n case 'block-scalar':\n return yield* this.blockScalar(top);\n case 'block-map':\n return yield* this.blockMap(top);\n case 'block-seq':\n return yield* this.blockSequence(top);\n case 'flow-collection':\n return yield* this.flowCollection(top);\n case 'doc-end':\n return yield* this.documentEnd(top);\n }\n /* istanbul ignore next should not happen */\n yield* this.pop();\n }\n peek(n) {\n return this.stack[this.stack.length - n];\n }\n *pop(error) {\n const token = error ?? this.stack.pop();\n /* istanbul ignore if should not happen */\n if (!token) {\n const message = 'Tried to pop an empty stack';\n yield { type: 'error', offset: this.offset, source: '', message };\n }\n else if (this.stack.length === 0) {\n yield token;\n }\n else {\n const top = this.peek(1);\n if (token.type === 'block-scalar') {\n // Block scalars use their parent rather than header indent\n token.indent = 'indent' in top ? top.indent : 0;\n }\n else if (token.type === 'flow-collection' && top.type === 'document') {\n // Ignore all indent for top-level flow collections\n token.indent = 0;\n }\n if (token.type === 'flow-collection')\n fixFlowSeqItems(token);\n switch (top.type) {\n case 'document':\n top.value = token;\n break;\n case 'block-scalar':\n top.props.push(token); // error\n break;\n case 'block-map': {\n const it = top.items[top.items.length - 1];\n if (it.value) {\n top.items.push({ start: [], key: token, sep: [] });\n this.onKeyLine = true;\n return;\n }\n else if (it.sep) {\n it.value = token;\n }\n else {\n Object.assign(it, { key: token, sep: [] });\n this.onKeyLine = !it.explicitKey;\n return;\n }\n break;\n }\n case 'block-seq': {\n const it = top.items[top.items.length - 1];\n if (it.value)\n top.items.push({ start: [], value: token });\n else\n it.value = token;\n break;\n }\n case 'flow-collection': {\n const it = top.items[top.items.length - 1];\n if (!it || it.value)\n top.items.push({ start: [], key: token, sep: [] });\n else if (it.sep)\n it.value = token;\n else\n Object.assign(it, { key: token, sep: [] });\n return;\n }\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.pop(token);\n }\n if ((top.type === 'document' ||\n top.type === 'block-map' ||\n top.type === 'block-seq') &&\n (token.type === 'block-map' || token.type === 'block-seq')) {\n const last = token.items[token.items.length - 1];\n if (last &&\n !last.sep &&\n !last.value &&\n last.start.length > 0 &&\n findNonEmptyIndex(last.start) === -1 &&\n (token.indent === 0 ||\n last.start.every(st => st.type !== 'comment' || st.indent < token.indent))) {\n if (top.type === 'document')\n top.end = last.start;\n else\n top.items.push({ start: last.start });\n token.items.splice(-1, 1);\n }\n }\n }\n }\n *stream() {\n switch (this.type) {\n case 'directive-line':\n yield { type: 'directive', offset: this.offset, source: this.source };\n return;\n case 'byte-order-mark':\n case 'space':\n case 'comment':\n case 'newline':\n yield this.sourceToken;\n return;\n case 'doc-mode':\n case 'doc-start': {\n const doc = {\n type: 'document',\n offset: this.offset,\n start: []\n };\n if (this.type === 'doc-start')\n doc.start.push(this.sourceToken);\n this.stack.push(doc);\n return;\n }\n }\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML stream`,\n source: this.source\n };\n }\n *document(doc) {\n if (doc.value)\n return yield* this.lineEnd(doc);\n switch (this.type) {\n case 'doc-start': {\n if (findNonEmptyIndex(doc.start) !== -1) {\n yield* this.pop();\n yield* this.step();\n }\n else\n doc.start.push(this.sourceToken);\n return;\n }\n case 'anchor':\n case 'tag':\n case 'space':\n case 'comment':\n case 'newline':\n doc.start.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(doc);\n if (bv)\n this.stack.push(bv);\n else {\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML document`,\n source: this.source\n };\n }\n }\n *scalar(scalar) {\n if (this.type === 'map-value-ind') {\n const prev = getPrevProps(this.peek(2));\n const start = getFirstKeyStartProps(prev);\n let sep;\n if (scalar.end) {\n sep = scalar.end;\n sep.push(this.sourceToken);\n delete scalar.end;\n }\n else\n sep = [this.sourceToken];\n const map = {\n type: 'block-map',\n offset: scalar.offset,\n indent: scalar.indent,\n items: [{ start, key: scalar, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else\n yield* this.lineEnd(scalar);\n }\n *blockScalar(scalar) {\n switch (this.type) {\n case 'space':\n case 'comment':\n case 'newline':\n scalar.props.push(this.sourceToken);\n return;\n case 'scalar':\n scalar.source = this.source;\n // block-scalar source includes trailing newline\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n yield* this.pop();\n break;\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.step();\n }\n }\n *blockMap(map) {\n const it = map.items[map.items.length - 1];\n // it.sep is true-ish if pair already has key or : separator\n switch (this.type) {\n case 'newline':\n this.onKeyLine = false;\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'space':\n case 'comment':\n if (it.value) {\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n if (this.atIndentedComment(it.start, map.indent)) {\n const prev = map.items[map.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n Array.prototype.push.apply(end, it.start);\n end.push(this.sourceToken);\n map.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n }\n if (this.indent >= map.indent) {\n const atMapIndent = !this.onKeyLine && this.indent === map.indent;\n const atNextItem = atMapIndent &&\n (it.sep || it.explicitKey) &&\n this.type !== 'seq-item-ind';\n // For empty nodes, assign newline-separated not indented empty tokens to following node\n let start = [];\n if (atNextItem && it.sep && !it.value) {\n const nl = [];\n for (let i = 0; i < it.sep.length; ++i) {\n const st = it.sep[i];\n switch (st.type) {\n case 'newline':\n nl.push(i);\n break;\n case 'space':\n break;\n case 'comment':\n if (st.indent > map.indent)\n nl.length = 0;\n break;\n default:\n nl.length = 0;\n }\n }\n if (nl.length >= 2)\n start = it.sep.splice(nl[1]);\n }\n switch (this.type) {\n case 'anchor':\n case 'tag':\n if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'explicit-key-ind':\n if (!it.sep && !it.explicitKey) {\n it.start.push(this.sourceToken);\n it.explicitKey = true;\n }\n else if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start, explicitKey: true });\n }\n else {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken], explicitKey: true }]\n });\n }\n this.onKeyLine = true;\n return;\n case 'map-value-ind':\n if (it.explicitKey) {\n if (!it.sep) {\n if (includesToken(it.start, 'newline')) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else {\n const start = getFirstKeyStartProps(it.start);\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n }\n else if (it.value) {\n map.items.push({ start: [], key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n else if (isFlowToken(it.key) &&\n !includesToken(it.sep, 'newline')) {\n const start = getFirstKeyStartProps(it.start);\n const key = it.key;\n const sep = it.sep;\n sep.push(this.sourceToken);\n // @ts-expect-error type guard is wrong here\n delete it.key;\n // @ts-expect-error type guard is wrong here\n delete it.sep;\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key, sep }]\n });\n }\n else if (start.length > 0) {\n // Not actually at next item\n it.sep = it.sep.concat(start, this.sourceToken);\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n else {\n if (!it.sep) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else if (it.value || atNextItem) {\n map.items.push({ start, key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [], key: null, sep: [this.sourceToken] }]\n });\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n this.onKeyLine = true;\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (atNextItem || it.value) {\n map.items.push({ start, key: fs, sep: [] });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n this.stack.push(fs);\n }\n else {\n Object.assign(it, { key: fs, sep: [] });\n this.onKeyLine = true;\n }\n return;\n }\n default: {\n const bv = this.startBlockValue(map);\n if (bv) {\n if (atMapIndent && bv.type !== 'block-seq') {\n map.items.push({ start });\n }\n this.stack.push(bv);\n return;\n }\n }\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *blockSequence(seq) {\n const it = seq.items[seq.items.length - 1];\n switch (this.type) {\n case 'newline':\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n seq.items.push({ start: [this.sourceToken] });\n }\n else\n it.start.push(this.sourceToken);\n return;\n case 'space':\n case 'comment':\n if (it.value)\n seq.items.push({ start: [this.sourceToken] });\n else {\n if (this.atIndentedComment(it.start, seq.indent)) {\n const prev = seq.items[seq.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n Array.prototype.push.apply(end, it.start);\n end.push(this.sourceToken);\n seq.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n case 'anchor':\n case 'tag':\n if (it.value || this.indent <= seq.indent)\n break;\n it.start.push(this.sourceToken);\n return;\n case 'seq-item-ind':\n if (this.indent !== seq.indent)\n break;\n if (it.value || includesToken(it.start, 'seq-item-ind'))\n seq.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n }\n if (this.indent > seq.indent) {\n const bv = this.startBlockValue(seq);\n if (bv) {\n this.stack.push(bv);\n return;\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *flowCollection(fc) {\n const it = fc.items[fc.items.length - 1];\n if (this.type === 'flow-error-end') {\n let top;\n do {\n yield* this.pop();\n top = this.peek(1);\n } while (top && top.type === 'flow-collection');\n }\n else if (fc.end.length === 0) {\n switch (this.type) {\n case 'comma':\n case 'explicit-key-ind':\n if (!it || it.sep)\n fc.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n case 'map-value-ind':\n if (!it || it.value)\n fc.items.push({ start: [], key: null, sep: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n return;\n case 'space':\n case 'comment':\n case 'newline':\n case 'anchor':\n case 'tag':\n if (!it || it.value)\n fc.items.push({ start: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n it.start.push(this.sourceToken);\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (!it || it.value)\n fc.items.push({ start: [], key: fs, sep: [] });\n else if (it.sep)\n this.stack.push(fs);\n else\n Object.assign(it, { key: fs, sep: [] });\n return;\n }\n case 'flow-map-end':\n case 'flow-seq-end':\n fc.end.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(fc);\n /* istanbul ignore else should not happen */\n if (bv)\n this.stack.push(bv);\n else {\n yield* this.pop();\n yield* this.step();\n }\n }\n else {\n const parent = this.peek(2);\n if (parent.type === 'block-map' &&\n ((this.type === 'map-value-ind' && parent.indent === fc.indent) ||\n (this.type === 'newline' &&\n !parent.items[parent.items.length - 1].sep))) {\n yield* this.pop();\n yield* this.step();\n }\n else if (this.type === 'map-value-ind' &&\n parent.type !== 'flow-collection') {\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n fixFlowSeqItems(fc);\n const sep = fc.end.splice(1, fc.end.length);\n sep.push(this.sourceToken);\n const map = {\n type: 'block-map',\n offset: fc.offset,\n indent: fc.indent,\n items: [{ start, key: fc, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else {\n yield* this.lineEnd(fc);\n }\n }\n }\n flowScalar(type) {\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n return {\n type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n }\n startBlockValue(parent) {\n switch (this.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return this.flowScalar(this.type);\n case 'block-scalar-header':\n return {\n type: 'block-scalar',\n offset: this.offset,\n indent: this.indent,\n props: [this.sourceToken],\n source: ''\n };\n case 'flow-map-start':\n case 'flow-seq-start':\n return {\n type: 'flow-collection',\n offset: this.offset,\n indent: this.indent,\n start: this.sourceToken,\n items: [],\n end: []\n };\n case 'seq-item-ind':\n return {\n type: 'block-seq',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken] }]\n };\n case 'explicit-key-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n start.push(this.sourceToken);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, explicitKey: true }]\n };\n }\n case 'map-value-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n };\n }\n }\n return null;\n }\n atIndentedComment(start, indent) {\n if (this.type !== 'comment')\n return false;\n if (this.indent <= indent)\n return false;\n return start.every(st => st.type === 'newline' || st.type === 'space');\n }\n *documentEnd(docEnd) {\n if (this.type !== 'doc-mode') {\n if (docEnd.end)\n docEnd.end.push(this.sourceToken);\n else\n docEnd.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n *lineEnd(token) {\n switch (this.type) {\n case 'comma':\n case 'doc-start':\n case 'doc-end':\n case 'flow-seq-end':\n case 'flow-map-end':\n case 'map-value-ind':\n yield* this.pop();\n yield* this.step();\n break;\n case 'newline':\n this.onKeyLine = false;\n // fallthrough\n case 'space':\n case 'comment':\n default:\n // all other values are errors\n if (token.end)\n token.end.push(this.sourceToken);\n else\n token.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n}\n\nexport { Parser };\n","import { Composer } from './compose/composer.js';\nimport { Document } from './doc/Document.js';\nimport { prettifyError, YAMLParseError } from './errors.js';\nimport { warn } from './log.js';\nimport { LineCounter } from './parse/line-counter.js';\nimport { Parser } from './parse/parser.js';\n\nfunction parseOptions(options) {\n const prettyErrors = options.prettyErrors !== false;\n const lineCounter = options.lineCounter || (prettyErrors && new LineCounter()) || null;\n return { lineCounter, prettyErrors };\n}\n/**\n * Parse the input as a stream of YAML documents.\n *\n * Documents should be separated from each other by `...` or `---` marker lines.\n *\n * @returns If an empty `docs` array is returned, it will be of type\n * EmptyStream and contain additional stream information. In\n * TypeScript, you should use `'empty' in docs` as a type guard for it.\n */\nfunction parseAllDocuments(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n const docs = Array.from(composer.compose(parser.parse(source)));\n if (prettyErrors && lineCounter)\n for (const doc of docs) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n if (docs.length > 0)\n return docs;\n return Object.assign([], { empty: true }, composer.streamInfo());\n}\n/** Parse an input string into a single YAML.Document */\nfunction parseDocument(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n // `doc` is always set by compose.end(true) at the very latest\n let doc = null;\n for (const _doc of composer.compose(parser.parse(source), true, source.length)) {\n if (!doc)\n doc = _doc;\n else if (doc.options.logLevel !== 'silent') {\n doc.errors.push(new YAMLParseError(_doc.range.slice(0, 2), 'MULTIPLE_DOCS', 'Source contains multiple documents; please use YAML.parseAllDocuments()'));\n break;\n }\n }\n if (prettyErrors && lineCounter) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n return doc;\n}\nfunction parse(src, reviver, options) {\n let _reviver = undefined;\n if (typeof reviver === 'function') {\n _reviver = reviver;\n }\n else if (options === undefined && reviver && typeof reviver === 'object') {\n options = reviver;\n }\n const doc = parseDocument(src, options);\n if (!doc)\n return null;\n doc.warnings.forEach(warning => warn(doc.options.logLevel, warning));\n if (doc.errors.length > 0) {\n if (doc.options.logLevel !== 'silent')\n throw doc.errors[0];\n else\n doc.errors = [];\n }\n return doc.toJS(Object.assign({ reviver: _reviver }, options));\n}\nfunction stringify(value, replacer, options) {\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n }\n if (typeof options === 'string')\n options = options.length;\n if (typeof options === 'number') {\n const indent = Math.round(options);\n options = indent < 1 ? undefined : indent > 8 ? { indent: 8 } : { indent };\n }\n if (value === undefined) {\n const { keepUndefined } = options ?? replacer ?? {};\n if (!keepUndefined)\n return undefined;\n }\n return new Document(value, _replacer, options).toString(options);\n}\n\nexport { parse, parseAllDocuments, parseDocument, stringify };\n","// `export * as default from ...` fails on Webpack v4\n// https://github.com/eemeli/yaml/issues/228\nimport * as YAML from './dist/index.js'\nexport default YAML\nexport * from './dist/index.js'\n"],"names":["key","_createElementBlock","$props","arbitrary","_hoisted_1","value","_createBlock","_component_BadgeState","color","$data","stateBackground","label","stateDisplay","_createCommentVNode","row","components","BadgeState","props","type","String","default","Object","required","col","Boolean","data","watch","handler","this","colorForState","replace","immediate","__exports__","render","ALIAS","Symbol","for","DOC","MAP","PAIR","SCALAR","SEQ","NODE_TYPE","isAlias","node","isDocument","isMap","isPair","isScalar","isSeq","isCollection","isNode","hasAnchor","anchor","BREAK","SKIP","REMOVE","visit","visitor","visitor_","initVisitor","cd","visit_","contents","freeze","path","ctrl","callVisitor","replaceNode","concat","i","items","length","ci","splice","ck","cv","async","visitAsync","visitAsync_","Collection","Node","Value","assign","Alias","Map","Scalar","Seq","Pair","parent","pt","Error","escapeChars","escapeTagName","tn","ch","Directives","constructor","yaml","tags","docStart","docEnd","defaultYaml","defaultTags","clone","copy","atDocument","res","version","atNextDocument","explicit","add","line","onError","parts","trim","split","name","shift","handle","prefix","isValid","test","tagName","source","verbatim","slice","suffix","match","decodeURIComponent","error","tagString","tag","entries","startsWith","substring","toString","doc","lines","tagEntries","tagNames","_key","keys","some","push","join","anchorIsValid","sa","JSON","stringify","msg","anchorNames","root","anchors","Set","findNewAnchor","exclude","has","createNodeAnchors","aliasObjects","sourceObjects","prevAnchors","onAnchor","setAnchors","ref","get","applyReviver","reviver","obj","val","Array","isArray","len","v0","v1","undefined","k","from","delete","set","call","toJS","arg","ctx","map","v","toJSON","aliasCount","count","onCreate","keep","Number","NodeBase","defineProperty","create","getPrototypeOf","getOwnPropertyDescriptors","range","mapAsMap","maxAliasCount","TypeError","mapKeyWarned","values","super","resolve","found","_arg","ReferenceError","getAliasCount","_onComment","_onChompKeep","src","options","verifyAliasOrder","implicitKey","item","c","kc","vc","Math","max","isScalarValue","BLOCK_FOLDED","BLOCK_LITERAL","PLAIN","QUOTE_DOUBLE","QUOTE_SINGLE","defaultTagPrefix","findTagObject","filter","t","tagObj","find","format","identify","createNode","schema","BigInt","valueOf","aliasDuplicateObjects","onTagObj","iterator","nodeClass","collectionFromPath","isInteger","a","keepUndefined","isEmptyPath","next","done","configurable","enumerable","writable","it","addIn","rest","deleteIn","getIn","keepScalar","hasAllNullValues","allowScalar","every","n","commentBefore","comment","hasIn","setIn","stringifyComment","str","indentComment","indent","lineComment","endsWith","includes","FOLD_FLOW","FOLD_BLOCK","FOLD_QUOTED","foldFlowLines","text","mode","indentAtStart","lineWidth","minContentWidth","onFold","onOverflow","endStep","folds","escapedFolds","prev","end","overflow","escStart","escEnd","consumeMoreIndentedLines","j","fold","start","getFoldOptions","isBlock","containsDocumentMarker","lineLengthOverLimit","indentLength","limit","strLen","doubleQuotedString","json","doubleQuotedAsJSON","minMultiLineLength","doubleQuotedMinMultiLineLength","code","substr","singleQuotedString","singleQuote","quotedString","qs","hasDouble","hasSingle","blockEndNewlines","RegExp","blockString","onComment","onChompKeep","blockQuote","commentString","forceBlockIndent","literal","chomp","endStart","endNlPos","indexOf","startEnd","startWithSpace","startNlPos","indentSize","header","body","plainString","actualString","indentStep","inFlow","compat","stringifyString","ss","_stringify","_type","defaultKeyType","defaultStringType","createStringifyContext","opt","directives","falseStr","flowCollectionPadding","indentSeq","nullStr","simpleKeys","trueStr","toStringOptions","collectionStyle","repeat","getTagObject","stringifyProps","resolvedAliases","o","stringifyPair","allNullValues","keyComment","explicitKey","vsb","vcb","valueComment","keyCommentDone","chompKeep","spaceBefore","flow","valueCommentDone","valueStr","ws","cs","vs0","nl0","hasNewline","hasPropsLine","sp0","warn","logLevel","warning","process","emitWarning","console","MERGE_KEY","addPairToJSMap","merge","isMergeKey","mergeToJSMap","jsKey","stringKey","stringifyKey","jsValue","srcMap","prototype","hasOwnProperty","strCtx","inStringifyKey","strKey","jsonStr","createPair","_","pair","stringifyCollection","collection","stringifyFlowCollection","stringifyBlockCollection","blockItemPrefix","flowChars","itemIndent","itemCtx","addCommentBefore","ik","fcPadding","reqNewline","linesAtValue","iv","reduce","sum","ic","trimStart","findPair","YAMLMap","replacer","sortMapEntries","sort","overwrite","_pair","sortEntries","findIndex","del","Type","YAMLSeq","idx","asItemIndex","seq","string","nullTag","boolTag","sv","stringifyNumber","minFractionDigits","num","isFinite","isNaN","d","floatNaN","toLowerCase","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY","floatExp","parseFloat","toExponential","dot","intIdentify","intResolve","offset","radix","intAsBigInt","parseInt","intStringify","intOct","_onError","intHex","stringifyJSON","jsonScalars","jsonError","binary","Uint8Array","Buffer","atob","buffer","charCodeAt","buf","btoa","s","fromCharCode","ceil","resolvePairs","cn","createPairs","iterable","pairs","YAMLOMap","bind","omap","seenKeys","boolStringify","boolObj","trueTag","falseTag","f","sign","intBin","YAMLSet","keepPair","parseSexagesimal","asBigInt","p","stringifySexagesimal","_60","unshift","padStart","intTime","floatTime","timestamp","Date","year","month","day","hour","minute","second","millisec","date","UTC","tz","abs","toISOString","schemas","tagsByName","bool","float","int","null","coreKnownTags","getTags","customTags","schemaName","sortMapEntriesByKey","b","Schema","resolveKnownTags","toStringDefaults","knownTags","stringifyDocument","hasDirectives","dir","contentComment","dc","Document","errors","warnings","_replacer","keepSourceTokens","prettyErrors","strict","uniqueKeys","_directives","setSchema","assertCollection","createAlias","keyToStr","asStr","anchorPrefix","jsonArg","YAMLError","pos","message","YAMLParseError","YAMLWarning","prettifyError","lc","linePos","lineStr","lineStarts","min","pointer","resolveProps","tokens","indicator","parentIndent","startOnNewline","atNewline","hasSpace","commentSep","reqSpace","tab","newlineAfterProp","comma","token","cb","last","containsNewline","st","sep","flowIndentCheck","fc","mapIncludes","search","isEqual","startColMsg","resolveBlockMap","composeNode","composeEmptyNode","bm","NodeClass","atRoot","commentEnd","collItem","keyProps","keyStart","keyNode","valueProps","valueNode","srcToken","resolveBlockSeq","bs","resolveEnd","blockMsg","resolveFlowCollection","fcName","coll","prevItemComment","loop","endRange","expectedEnd","ce","ee","cePos","toUpperCase","resolveCollection","CN","Coll","composeCollection","tagToken","nl","lastProp","expType","kt","resolveBlockScalar","scalar","parseBlockScalarHeader","splitLines","chompStart","content","trimIndent","contentStart","prevMoreIndented","crlf","ts","first","m","line0","resolveFlowScalar","rel","plainValue","singleQuotedValue","doubleQuotedValue","valueEnd","re","badChar","foldLines","exec","lastIndex","foldNewline","cc","escapeCodes","x","u","U","parseCharCode","raw","wsStart","e","r","N","L","P","ok","fromCodePoint","composeScalar","findScalarTagByName","findScalarTagByTest","matchWithTest","emptyScalarPosition","before","isSrcToken","composeAlias","alias","composeDoc","opts","contentEnd","getErrorPos","parsePrelude","prelude","atComment","afterEmptyLine","Composer","atDirectives","decorate","afterDoc","apply","streamInfo","compose","forceDoc","endOffset","resolveAsScalar","createScalarToken","context","he","head","addEndtoBlockProps","setScalarValue","afterKey","setBlockScalarValue","setFlowScalarValue","oa","tok","cst","stringifyToken","stringifyItem","_visit","field","itemAtPath","index","parentCollection","BOM","DOCUMENT","FLOW_END","prettyToken","tokenType","isEmpty","hexDigits","tagChars","flowIndicatorChars","invalidAnchorChars","isNotAnchorChar","Lexer","atEnd","blockScalarIndent","blockScalarKeep","flowKey","flowLevel","indentNext","indentValue","lineEndPos","lex","incomplete","hasChars","parseNext","atLineEnd","charAt","continueScalar","dt","getLine","setNext","state","peek","parseStream","parseLineStart","parseBlockStart","parseDocument","parseFlowCollection","parseQuotedScalar","parseBlockScalar","parsePlainScalar","pushCount","dirEnd","pushSpaces","pushNewline","sp","ch0","ch1","pushIndicators","pushUntil","atFlowEndMarker","quote","qb","pushToIndex","lastChar","allowEmpty","pushTag","allowTabs","LineCounter","addNewLine","low","high","mid","includesToken","list","findNonEmptyIndex","isFlowToken","getPrevProps","getFirstKeyStartProps","fixFlowSeqItems","Parser","onNewLine","atNewLine","atScalar","onKeyLine","stack","lexer","parse","lexeme","step","pop","sourceToken","top","stream","document","blockScalar","blockMap","blockSequence","flowCollection","documentEnd","lineEnd","bv","startBlockValue","atIndentedComment","atMapIndent","atNextItem","fs","flowScalar","parseOptions","lineCounter","parseAllDocuments","parser","composer","docs","forEach","empty","_doc","_reviver","round"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.198.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.198.js new file mode 100644 index 00000000..18d11289 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.198.js @@ -0,0 +1,19 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[198],{28158:function(e,t,n){"use strict";var a=n(9274),s=n.t(a,2);n(4364); +/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +/*! #__NO_SIDE_EFFECTS__ */ +function i(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return e=>e in t}const o={},l=()=>{},r=()=>!1,c=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),u=Object.assign,d=(Object.prototype.hasOwnProperty,Array.isArray),p=e=>"string"===typeof e,h=e=>"symbol"===typeof e,_=e=>null!==e&&"object"===typeof e,m=(Object.prototype.toString,i(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted")),f=i("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),v=e=>{const t=Object.create(null);return n=>{const a=t[n];return a||(t[n]=e(n))}},b=/-(\w)/g,g=v((e=>e.replace(b,((e,t)=>t?t.toUpperCase():"")))),y=/\B([A-Z])/g,k=(v((e=>e.replace(y,"-$1").toLowerCase())),v((e=>e.charAt(0).toUpperCase()+e.slice(1)))),w=v((e=>{const t=e?`on${k(e)}`:"";return t}));let E;const N=()=>E||(E="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:{});const x=/;(?![^(]*\))/g,S=/:([^]+)/,V=/\/\*[^]*?\*\//g;function C(e){const t={};return e.replace(V,"").split(x).forEach((e=>{if(e){const n=e.split(S);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}const O="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",T="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",A="annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics",I="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr",R=i(O),L=i(T),D=i(A),B=i(I);const U=Symbol(""),M=Symbol(""),P=Symbol(""),j=Symbol(""),$=Symbol(""),K=Symbol(""),F=Symbol(""),q=Symbol(""),W=Symbol(""),z=Symbol(""),G=Symbol(""),Q=Symbol(""),H=Symbol(""),X=Symbol(""),J=Symbol(""),Y=Symbol(""),Z=Symbol(""),ee=Symbol(""),te=Symbol(""),ne=Symbol(""),ae=Symbol(""),se=Symbol(""),ie=Symbol(""),oe=Symbol(""),le=Symbol(""),re=Symbol(""),ce=Symbol(""),ue=Symbol(""),de=Symbol(""),pe=Symbol(""),he=Symbol(""),_e=Symbol(""),me=Symbol(""),fe=Symbol(""),ve=Symbol(""),be=Symbol(""),ge=Symbol(""),ye=Symbol(""),ke=Symbol(""),we={[U]:"Fragment",[M]:"Teleport",[P]:"Suspense",[j]:"KeepAlive",[$]:"BaseTransition",[K]:"openBlock",[F]:"createBlock",[q]:"createElementBlock",[W]:"createVNode",[z]:"createElementVNode",[G]:"createCommentVNode",[Q]:"createTextVNode",[H]:"createStaticVNode",[X]:"resolveComponent",[J]:"resolveDynamicComponent",[Y]:"resolveDirective",[Z]:"resolveFilter",[ee]:"withDirectives",[te]:"renderList",[ne]:"renderSlot",[ae]:"createSlots",[se]:"toDisplayString",[ie]:"mergeProps",[oe]:"normalizeClass",[le]:"normalizeStyle",[re]:"normalizeProps",[ce]:"guardReactiveProps",[ue]:"toHandlers",[de]:"camelize",[pe]:"capitalize",[he]:"toHandlerKey",[_e]:"setBlockTracking",[me]:"pushScopeId",[fe]:"popScopeId",[ve]:"withCtx",[be]:"unref",[ge]:"isRef",[ye]:"withMemo",[ke]:"isMemoSame"};function Ee(e){Object.getOwnPropertySymbols(e).forEach((t=>{we[t]=e[t]}))}const Ne={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function xe(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Ne}}function Se(e,t,n,a,s,i,o,l=!1,r=!1,c=!1,u=Ne){return e&&(l?(e.helper(K),e.helper(Me(e.inSSR,c))):e.helper(Ue(e.inSSR,c)),o&&e.helper(ee)),{type:13,tag:t,props:n,children:a,patchFlag:s,dynamicProps:i,directives:o,isBlock:l,disableTracking:r,isComponent:c,loc:u}}function Ve(e,t=Ne){return{type:17,loc:t,elements:e}}function Ce(e,t=Ne){return{type:15,loc:t,properties:e}}function Oe(e,t){return{type:16,loc:Ne,key:p(e)?Te(e,!0):e,value:t}}function Te(e,t=!1,n=Ne,a=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:a}}function Ae(e,t=Ne){return{type:8,loc:t,children:e}}function Ie(e,t=[],n=Ne){return{type:14,loc:n,callee:e,arguments:t}}function Re(e,t=void 0,n=!1,a=!1,s=Ne){return{type:18,params:e,returns:t,newline:n,isSlot:a,loc:s}}function Le(e,t,n,a=!0){return{type:19,test:e,consequent:t,alternate:n,newline:a,loc:Ne}}function De(e,t,n=!1,a=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:a,needArraySpread:!1,loc:Ne}}function Be(e){return{type:21,body:e,loc:Ne}}function Ue(e,t){return e||t?W:z}function Me(e,t){return e||t?F:q}function Pe(e,{helper:t,removeHelper:n,inSSR:a}){e.isBlock||(e.isBlock=!0,n(Ue(a,e.isComponent)),t(K),t(Me(a,e.isComponent)))}const je=new Uint8Array([123,123]),$e=new Uint8Array([125,125]);function Ke(e){return e>=97&&e<=122||e>=65&&e<=90}function Fe(e){return 32===e||10===e||9===e||12===e||13===e}function qe(e){return 47===e||62===e||Fe(e)}function We(e){const t=new Uint8Array(e.length);for(let n=0;n=0;a--){const s=this.newlines[a];if(e>s){t=a+2,n=e-s;break}}return{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){const t=this.sequenceIndex===this.currentSequence.length,n=t?qe(e):(32|e)===this.currentSequence[this.sequenceIndex];if(n){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||Fe(e)){const t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===ze.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}function Qe(e,{compatConfig:t}){const n=t&&t[e];return"MODE"===e?n||3:n}function He(e,t){const n=Qe("MODE",t),a=Qe(e,t);return 3===n?!0===a:!1!==a}function Xe(e,t,n,...a){const s=He(e,t);return s}function Je(e){throw e}function Ye(e){}function Ze(e,t,n,a){const s=`https://vuejs.org/error-reference/#compiler-${e}`,i=new SyntaxError(String(s));return i.code=e,i.loc=t,i}const et=e=>4===e.type&&e.isStatic;function tt(e){switch(e){case"Teleport":case"teleport":return M;case"Suspense":case"suspense":return P;case"KeepAlive":case"keep-alive":return j;case"BaseTransition":case"base-transition":return $}}const nt=/^\d|[^\$\w\xA0-\uFFFF]/,at=e=>!nt.test(e),st=/[A-Za-z_$\xA0-\uFFFF]/,ot=/[\.\?\w$\xA0-\uFFFF]/,lt=/\s+[.[]\s*|\s*[.[]\s+/g,rt=e=>4===e.type?e.content:e.loc.source,ct=e=>{const t=rt(e).trim().replace(lt,(e=>e.trim()));let n=0,a=[],s=0,i=0,o=null;for(let l=0;l|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,pt=e=>dt.test(rt(e)),ht=pt;function _t(e,t,n=!1){for(let a=0;a7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic)))}function bt(e){return 5===e.type||2===e.type}function gt(e){return 7===e.type&&"slot"===e.name}function yt(e){return 1===e.type&&3===e.tagType}function kt(e){return 1===e.type&&2===e.tagType}const wt=new Set([re,ce]);function Et(e,t=[]){if(e&&!p(e)&&14===e.type){const n=e.callee;if(!p(n)&&wt.has(n))return Et(e.arguments[0],t.concat(e))}return[e,t]}function Nt(e,t,n){let a,s,i=13===e.type?e.props:e.arguments[2],o=[];if(i&&!p(i)&&14===i.type){const e=Et(i);i=e[0],o=e[1],s=o[o.length-1]}if(null==i||p(i))a=Ce([t]);else if(14===i.type){const e=i.arguments[0];p(e)||15!==e.type?i.callee===ue?a=Ie(n.helper(ie),[Ce([t]),i]):i.arguments.unshift(Ce([t])):xt(t,e)||e.properties.unshift(t),!a&&(a=i)}else 15===i.type?(xt(t,i)||i.properties.unshift(t),a=i):(a=Ie(n.helper(ie),[Ce([t]),i]),s&&s.callee===ce&&(s=o[o.length-2]));13===e.type?s?s.arguments[0]=a:e.props=a:s?s.arguments[0]=a:e.arguments[2]=a}function xt(e,t){let n=!1;if(4===e.key.type){const a=e.key.content;n=t.properties.some((e=>4===e.key.type&&e.key.content===a))}return n}function St(e,t){return`_${t}_${e.replace(/[^\w]/g,((t,n)=>"-"===t?"_":e.charCodeAt(n).toString()))}`}function Vt(e){return 14===e.type&&e.callee===ye?e.arguments[1].returns:e}const Ct=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,Ot={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:r,isPreTag:r,isIgnoreNewlineTag:r,isCustomElement:r,onError:Je,onWarn:Ye,comments:!1,prefixIdentifiers:!1};let Tt=Ot,At=null,It="",Rt=null,Lt=null,Dt="",Bt=-1,Ut=-1,Mt=0,Pt=!1,jt=null;const $t=[],Kt=new Ge($t,{onerr:_n,ontext(e,t){Qt(zt(e,t),e,t)},ontextentity(e,t,n){Qt(e,t,n)},oninterpolation(e,t){if(Pt)return Qt(zt(e,t),e,t);let n=e+Kt.delimiterOpen.length,a=t-Kt.delimiterClose.length;while(Fe(It.charCodeAt(n)))n++;while(Fe(It.charCodeAt(a-1)))a--;let s=zt(n,a);s.includes("&")&&(s=Tt.decodeEntities(s,!1)),rn({type:5,content:hn(s,!1,cn(n,a)),loc:cn(e,t)})},onopentagname(e,t){const n=zt(e,t);Rt={type:1,tag:n,ns:Tt.getNamespace(n,$t[0],Tt.ns),tagType:0,props:[],children:[],loc:cn(e-1,t),codegenNode:void 0}},onopentagend(e){Gt(e)},onclosetag(e,t){const n=zt(e,t);if(!Tt.isVoidTag(n)){let a=!1;for(let e=0;e<$t.length;e++){const s=$t[e];if(s.tag.toLowerCase()===n.toLowerCase()){a=!0,e>0&&_n(24,$t[0].loc.start.offset);for(let n=0;n<=e;n++){const a=$t.shift();Ht(a,t,n(7===e.type?e.rawName:e.name)===n))&&_n(2,t)},onattribend(e,t){if(Rt&&Lt){if(dn(Lt.loc,t),0!==e)if(Dt.includes("&")&&(Dt=Tt.decodeEntities(Dt,!0)),6===Lt.type)"class"===Lt.name&&(Dt=ln(Dt).trim()),1!==e||Dt||_n(13,t),Lt.value={type:2,content:Dt,loc:1===e?cn(Bt,Ut):cn(Bt-1,Ut+1)},Kt.inSFCRoot&&"template"===Rt.tag&&"lang"===Lt.name&&Dt&&"html"!==Dt&&Kt.enterRCDATA(We(""sync"===e.content)))>-1&&Xe("COMPILER_V_BIND_SYNC",Tt,Lt.loc,Lt.rawName)&&(Lt.name="model",Lt.modifiers.splice(t,1))}7===Lt.type&&"pre"===Lt.name||Rt.props.push(Lt)}Dt="",Bt=Ut=-1},oncomment(e,t){Tt.comments&&rn({type:3,content:zt(e,t),loc:cn(e-4,t+3)})},onend(){const e=It.length;for(let t=0;t<$t.length;t++)Ht($t[t],e-1),_n(24,$t[t].loc.start.offset)},oncdata(e,t){0!==$t[0].ns?Qt(zt(e,t),e,t):_n(1,e-9)},onprocessinginstruction(e){0===($t[0]?$t[0].ns:Tt.ns)&&_n(21,e-1)}}),Ft=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,qt=/^\(|\)$/g;function Wt(e){const t=e.loc,n=e.content,a=n.match(Ct);if(!a)return;const[,s,i]=a,o=(e,n,a=!1)=>{const s=t.start.offset+n,i=s+e.length;return hn(e,!1,cn(s,i),0,a?1:0)},l={source:o(i.trim(),n.indexOf(i,s.length)),value:void 0,key:void 0,index:void 0,finalized:!1};let r=s.trim().replace(qt,"").trim();const c=s.indexOf(r),u=r.match(Ft);if(u){r=r.replace(Ft,"").trim();const e=u[1].trim();let t;if(e&&(t=n.indexOf(e,c+r.length),l.key=o(e,t,!0)),u[2]){const a=u[2].trim();a&&(l.index=o(a,n.indexOf(a,l.key?t+e.length:c+r.length),!0))}}return r&&(l.value=o(r,c,!0)),l}function zt(e,t){return It.slice(e,t)}function Gt(e){Kt.inSFCRoot&&(Rt.innerLoc=cn(e+1,e+1)),rn(Rt);const{tag:t,ns:n}=Rt;0===n&&Tt.isPreTag(t)&&Mt++,Tt.isVoidTag(t)?Ht(Rt,e):($t.unshift(Rt),1!==n&&2!==n||(Kt.inXML=!0)),Rt=null}function Qt(e,t,n){{const t=$t[0]&&$t[0].tag;"script"!==t&&"style"!==t&&e.includes("&")&&(e=Tt.decodeEntities(e,!1))}const a=$t[0]||At,s=a.children[a.children.length-1];s&&2===s.type?(s.content+=e,dn(s.loc,n)):a.children.push({type:2,content:e,loc:cn(t,n)})}function Ht(e,t,n=!1){dn(e.loc,n?Jt(t,60):Xt(t,62)+1),Kt.inSFCRoot&&(e.children.length?e.innerLoc.end=u({},e.children[e.children.length-1].loc.end):e.innerLoc.end=u({},e.innerLoc.start),e.innerLoc.source=zt(e.innerLoc.start.offset,e.innerLoc.end.offset));const{tag:a,ns:s,children:i}=e;if(Pt||("slot"===a?e.tagType=2:Zt(e)?e.tagType=3:en(e)&&(e.tagType=1)),Kt.inRCDATA||(e.children=an(i)),0===s&&Tt.isIgnoreNewlineTag(a)){const e=i[0];e&&2===e.type&&(e.content=e.content.replace(/^\r?\n/,""))}0===s&&Tt.isPreTag(a)&&Mt--,jt===e&&(Pt=Kt.inVPre=!1,jt=null),Kt.inXML&&0===($t[0]?$t[0].ns:Tt.ns)&&(Kt.inXML=!1);{const t=e.props;if(!Kt.inSFCRoot&&He("COMPILER_NATIVE_TEMPLATE",Tt)&&"template"===e.tag&&!Zt(e)){const t=$t[0]||At,n=t.children.indexOf(e);t.children.splice(n,1,...e.children)}const n=t.find((e=>6===e.type&&"inline-template"===e.name));n&&Xe("COMPILER_INLINE_TEMPLATE",Tt,n.loc)&&e.children.length&&(n.value={type:2,content:zt(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function Xt(e,t){let n=e;while(It.charCodeAt(n)!==t&&n=0)n--;return n}const Yt=new Set(["if","else","else-if","for","slot"]);function Zt({tag:e,props:t}){if("template"===e)for(let n=0;n64&&e<91}const nn=/\r\n/g;function an(e,t){const n="preserve"!==Tt.whitespace;let a=!1;for(let s=0;s0){if(e>=2){t.codegenNode.patchFlag=-1,o.push(t);continue}}else{const e=t.codegenNode;if(13===e.type){const a=e.patchFlag;if((void 0===a||512===a||1===a)&&En(t,n)>=2){const a=Nn(t);a&&(e.props=n.hoist(a))}e.dynamicProps&&(e.dynamicProps=n.hoist(e.dynamicProps))}}}else if(12===t.type){const e=a?0:yn(t,n);if(e>=2){o.push(t);continue}}if(1===t.type){const a=1===t.tagType;a&&n.scopes.vSlot++,gn(t,e,n,!1,s),a&&n.scopes.vSlot--}else if(11===t.type)gn(t,e,n,1===t.children.length,!0);else if(9===t.type)for(let a=0;ae.key===t||e.key.content===t));return n&&n.value}}o.length&&n.transformHoist&&n.transformHoist(i,n,e)}function yn(e,t){const{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;const a=n.get(e);if(void 0!==a)return a;const s=e.codegenNode;if(13!==s.type)return 0;if(s.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0===s.patchFlag){let a=3;const i=En(e,t);if(0===i)return n.set(e,0),0;i1)for(let s=0;sn&&(O.childIndex--,O.onNodeRemoved()):(O.currentNode=null,O.onNodeRemoved()),O.parent.children.splice(n,1)},onNodeRemoved:l,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){p(e)&&(e=Te(e)),O.hoists.push(e);const t=Te(`_hoisted_${O.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){const a=De(O.cached.length,e,t,n);return O.cached.push(a),a}};return O.filters=new Set,O}function Sn(e,t){const n=xn(e,t);On(e,n),t.hoistStatic&&vn(e,n),t.ssr||Vn(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.transformed=!0,e.filters=[...n.filters]}function Vn(e,t){const{helper:n}=t,{children:a}=e;if(1===a.length){const n=a[0];if(bn(e,n)&&n.codegenNode){const a=n.codegenNode;13===a.type&&Pe(a,t),e.codegenNode=a}else e.codegenNode=n}else if(a.length>1){let a=64;0,e.codegenNode=Se(t,n(U),void 0,e.children,a,void 0,void 0,!0,void 0,!1)}}function Cn(e,t){let n=0;const a=()=>{n--};for(;nt===e:t=>e.test(t);return(e,a)=>{if(1===e.type){const{props:s}=e;if(3===e.tagType&&s.some(gt))return;const i=[];for(let o=0;o`${we[e]}: _${we[e]}`;function Rn(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:a=!1,filename:s="template.vue.html",scopeId:i=null,optimizeImports:o=!1,runtimeGlobalName:l="Vue",runtimeModuleName:r="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){const h={mode:t,prefixIdentifiers:n,sourceMap:a,filename:s,scopeId:i,optimizeImports:o,runtimeGlobalName:l,runtimeModuleName:r,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(e){return`_${we[e]}`},push(e,t=-2,n){h.code+=e},indent(){_(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:_(--h.indentLevel)},newline(){_(h.indentLevel)}};function _(e){h.push("\n"+" ".repeat(e),0)}return h}function Ln(e,t={}){const n=Rn(e,t);t.onContextCreated&&t.onContextCreated(n);const{mode:a,push:s,prefixIdentifiers:i,indent:o,deindent:l,newline:r,scopeId:c,ssr:u}=n,d=Array.from(e.helpers),p=d.length>0,h=!i&&"module"!==a,_=n;Dn(e,_);const m=u?"ssrRender":"render",f=u?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"],v=f.join(", ");if(s(`function ${m}(${v}) {`),o(),h&&(s("with (_ctx) {"),o(),p&&(s(`const { ${d.map(In).join(", ")} } = _Vue\n`,-1),r())),e.components.length&&(Bn(e.components,"component",n),(e.directives.length||e.temps>0)&&r()),e.directives.length&&(Bn(e.directives,"directive",n),e.temps>0&&r()),e.filters&&e.filters.length&&(r(),Bn(e.filters,"filter",n),r()),e.temps>0){s("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(s("\n",0),r()),u||s("return "),e.codegenNode?jn(e.codegenNode,n):s("null"),h&&(l(),s("}")),l(),s("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function Dn(e,t){const{ssr:n,prefixIdentifiers:a,push:s,newline:i,runtimeModuleName:o,runtimeGlobalName:l,ssrRuntimeModuleName:r}=t,c=l,u=Array.from(e.helpers);if(u.length>0&&(s(`const _Vue = ${c}\n`,-1),e.hoists.length)){const e=[W,z,G,Q,H].filter((e=>u.includes(e))).map(In).join(", ");s(`const { ${e} } = _Vue\n`,-1)}Un(e.hoists,t),i(),s("return ")}function Bn(e,t,{helper:n,push:a,newline:s,isTS:i}){const o=n("filter"===t?Z:"component"===t?X:Y);for(let l=0;l3||!1;t.push("["),n&&t.indent(),Pn(e,t,n),n&&t.deindent(),t.push("]")}function Pn(e,t,n=!1,a=!0){const{push:s,newline:i}=t;for(let o=0;oe||"null"))}function Hn(e,t){const{push:n,helper:a,pure:s}=t,i=p(e.callee)?e.callee:a(e.callee);s&&n(An),n(i+"(",-2,e),Pn(e.arguments,t),n(")")}function Xn(e,t){const{push:n,indent:a,deindent:s,newline:i}=t,{properties:o}=e;if(!o.length)return void n("{}",-2,e);const l=o.length>1||!1;n(l?"{":"{ "),l&&a();for(let r=0;r "),(r||l)&&(n("{"),a()),o?(r&&n("return "),d(o)?Mn(o,t):jn(o,t)):l&&jn(l,t),(r||l)&&(s(),n("}")),c&&(e.isNonScopedSlot&&n(", undefined, true"),n(")"))}function Zn(e,t){const{test:n,consequent:a,alternate:s,newline:i}=e,{push:o,indent:l,deindent:r,newline:c}=t;if(4===n.type){const e=!at(n.content);e&&o("("),Kn(n,t),e&&o(")")}else o("("),jn(n,t),o(")");i&&l(),t.indentLevel++,i||o(" "),o("? "),jn(a,t),t.indentLevel--,i&&c(),i||o(" "),o(": ");const u=19===s.type;u||t.indentLevel++,jn(s,t),u||t.indentLevel--,i&&r(!0)}function ea(e,t){const{push:n,helper:a,indent:s,deindent:i,newline:o}=t,{needPauseTracking:l,needArraySpread:r}=e;r&&n("[...("),n(`_cache[${e.index}] || (`),l&&(s(),n(`${a(_e)}(-1`),e.inVOnce&&n(", true"),n("),"),o(),n("(")),n(`_cache[${e.index}] = `),jn(e.value,t),l&&(n(`).cacheIndex = ${e.index},`),o(),n(`${a(_e)}(1),`),o(),n(`_cache[${e.index}]`),i()),n(")"),r&&n(")]")}new RegExp("\\b"+"arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b")+"\\b");const ta=Tn(/^(if|else|else-if)$/,((e,t,n)=>na(e,t,n,((e,t,a)=>{const s=n.parent.children;let i=s.indexOf(e),o=0;while(i-- >=0){const e=s[i];e&&9===e.type&&(o+=e.branches.length)}return()=>{if(a)e.codegenNode=sa(t,o,n);else{const a=oa(e.codegenNode);a.alternate=sa(t,o+e.branches.length-1,n)}}}))));function na(e,t,n,a){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){const a=t.exp?t.exp.loc:e.loc;n.onError(Ze(28,t.loc)),t.exp=Te("true",!1,a)}if("if"===t.name){const s=aa(e,t),i={type:9,loc:un(e.loc),branches:[s]};if(n.replaceNode(i),a)return a(i,s,!0)}else{const s=n.parent.children;let i=s.indexOf(e);while(i-- >=-1){const o=s[i];if(o&&3===o.type)n.removeNode(o);else{if(!o||2!==o.type||o.content.trim().length){if(o&&9===o.type){"else-if"===t.name&&void 0===o.branches[o.branches.length-1].condition&&n.onError(Ze(30,e.loc)),n.removeNode();const s=aa(e,t);0,o.branches.push(s);const i=a&&a(o,s,!1);On(s,n),i&&i(),n.currentNode=null}else n.onError(Ze(30,e.loc));break}n.removeNode(o)}}}}function aa(e,t){const n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!_t(e,"for")?e.children:[e],userKey:mt(e,"key"),isTemplateIf:n}}function sa(e,t,n){return e.condition?Le(e.condition,ia(e,t,n),Ie(n.helper(G),['""',"true"])):ia(e,t,n)}function ia(e,t,n){const{helper:a}=n,s=Oe("key",Te(`${t}`,!1,Ne,2)),{children:i}=e,o=i[0],l=1!==i.length||1!==o.type;if(l){if(1===i.length&&11===o.type){const e=o.codegenNode;return Nt(e,s,n),e}{let t=64;return Se(n,a(U),Ce([s]),i,t,void 0,void 0,!0,!1,!1,e.loc)}}{const e=o.codegenNode,t=Vt(e);return 13===t.type&&Pe(t,n),Nt(t,s,n),e}}function oa(e){while(1)if(19===e.type){if(19!==e.alternate.type)return e;e=e.alternate}else 20===e.type&&(e=e.value)}const la=(e,t,n)=>{const{modifiers:a,loc:s}=e,i=e.arg;let{exp:o}=e;if(o&&4===o.type&&!o.content.trim()&&(o=void 0),!o){if(4!==i.type||!i.isStatic)return n.onError(Ze(52,i.loc)),{props:[Oe(i,Te("",!0,s))]};ra(e),o=e.exp}return 4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=`${i.content} || ""`),a.some((e=>"camel"===e.content))&&(4===i.type?i.isStatic?i.content=g(i.content):i.content=`${n.helperString(de)}(${i.content})`:(i.children.unshift(`${n.helperString(de)}(`),i.children.push(")"))),n.inSSR||(a.some((e=>"prop"===e.content))&&ca(i,"."),a.some((e=>"attr"===e.content))&&ca(i,"^")),{props:[Oe(i,o)]}},ra=(e,t)=>{const n=e.arg,a=g(n.content);e.exp=Te(a,!1,n.loc)},ca=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},ua=Tn("for",((e,t,n)=>{const{helper:a,removeHelper:s}=n;return da(e,t,n,(t=>{const i=Ie(a(te),[t.source]),o=yt(e),l=_t(e,"memo"),r=mt(e,"key",!1,!0),c=r&&7===r.type;c&&!r.exp&&ra(r);let u=r&&(6===r.type?r.value?Te(r.value.content,!0):void 0:r.exp);const d=r&&u?Oe("key",u):null,p=4===t.source.type&&t.source.constType>0,h=p?64:r?128:256;return t.codegenNode=Se(n,a(U),void 0,i,h,void 0,void 0,!0,!p,!1,e.loc),()=>{let r;const{children:c}=t;const h=1!==c.length||1!==c[0].type,_=kt(e)?e:o&&1===e.children.length&&kt(e.children[0])?e.children[0]:null;if(_?(r=_.codegenNode,o&&d&&Nt(r,d,n)):h?r=Se(n,a(U),d?Ce([d]):void 0,e.children,64,void 0,void 0,!0,void 0,!1):(r=c[0].codegenNode,o&&d&&Nt(r,d,n),r.isBlock!==!p&&(r.isBlock?(s(K),s(Me(n.inSSR,r.isComponent))):s(Ue(n.inSSR,r.isComponent))),r.isBlock=!p,r.isBlock?(a(K),a(Me(n.inSSR,r.isComponent))):a(Ue(n.inSSR,r.isComponent))),l){const e=Re(ha(t.parseResult,[Te("_cached")]));e.body=Be([Ae(["const _memo = (",l.exp,")"]),Ae(["if (_cached",...u?[" && _cached.key === ",u]:[],` && ${n.helperString(ke)}(_cached, _memo)) return _cached`]),Ae(["const _item = ",r]),Te("_item.memo = _memo"),Te("return _item")]),i.arguments.push(e,Te("_cache"),Te(String(n.cached.length))),n.cached.push(null)}else i.arguments.push(Re(ha(t.parseResult),r,!0))}}))}));function da(e,t,n,a){if(!t.exp)return void n.onError(Ze(31,t.loc));const s=t.forParseResult;if(!s)return void n.onError(Ze(32,t.loc));pa(s,n);const{addIdentifiers:i,removeIdentifiers:o,scopes:l}=n,{source:r,value:c,key:u,index:d}=s,p={type:11,loc:t.loc,source:r,valueAlias:c,keyAlias:u,objectIndexAlias:d,parseResult:s,children:yt(e)?e.children:[e]};n.replaceNode(p),l.vFor++;const h=a&&a(p);return()=>{l.vFor--,h&&h()}}function pa(e,t){e.finalized||(e.finalized=!0)}function ha({value:e,key:t,index:n},a=[]){return _a([e,t,n,...a])}function _a(e){let t=e.length;while(t--)if(e[t])break;return e.slice(0,t+1).map(((e,t)=>e||Te("_".repeat(t+1),!1)))}const ma=Te("undefined",!1),fa=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){const n=_t(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},va=(e,t,n,a)=>Re(e,n,!1,!0,n.length?n[0].loc:a);function ba(e,t,n=va){t.helper(ve);const{children:a,loc:s}=e,i=[],o=[];let l=t.scopes.vSlot>0||t.scopes.vFor>0;const r=_t(e,"slot",!0);if(r){const{arg:e,exp:t}=r;e&&!et(e)&&(l=!0),i.push(Oe(e||Te("default",!0),n(t,void 0,a,s)))}let c=!1,u=!1;const d=[],p=new Set;let h=0;for(let f=0;f{const i=n(e,void 0,a,s);return t.compatConfig&&(i.isNonScopedSlot=!0),Oe("default",i)};c?d.length&&d.some((e=>ka(e)))&&(u?t.onError(Ze(39,d[0].loc)):i.push(e(void 0,d))):i.push(e(void 0,a))}const _=l?2:ya(e.children)?3:1;let m=Ce(i.concat(Oe("_",Te(_+"",!1))),s);return o.length&&(m=Ie(t.helper(ae),[m,Ve(o)])),{slots:m,hasDynamicSlots:l}}function ga(e,t,n){const a=[Oe("name",e),Oe("fn",t)];return null!=n&&a.push(Oe("key",Te(String(n),!0))),Ce(a)}function ya(e){for(let t=0;tfunction(){if(e=t.currentNode,1!==e.type||0!==e.tagType&&1!==e.tagType)return;const{tag:n,props:a}=e,s=1===e.tagType;let i=s?Na(e,t):`"${n}"`;const o=_(i)&&i.callee===J;let l,r,c,u,d,p=0,h=o||i===M||i===P||!s&&("svg"===n||"foreignObject"===n||"math"===n);if(a.length>0){const n=xa(e,t,void 0,s,o);l=n.props,p=n.patchFlag,u=n.dynamicPropNames;const a=n.directives;d=a&&a.length?Ve(a.map((e=>Ca(e,t)))):void 0,n.shouldUseBlock&&(h=!0)}if(e.children.length>0){i===j&&(h=!0,p|=1024);const n=s&&i!==M&&i!==j;if(n){const{slots:n,hasDynamicSlots:a}=ba(e,t);r=n,a&&(p|=1024)}else if(1===e.children.length&&i!==M){const n=e.children[0],a=n.type,s=5===a||8===a;s&&0===yn(n,t)&&(p|=1),r=s||2===a?n:e.children}else r=e.children}u&&u.length&&(c=Oa(u)),e.codegenNode=Se(t,i,l,r,0===p?void 0:p,c,d,!!h,!1,s,e.loc)};function Na(e,t,n=!1){let{tag:a}=e;const s=Ta(a),i=mt(e,"is",!1,!0);if(i)if(s||He("COMPILER_IS_ON_ELEMENT",t)){let e;if(6===i.type?e=i.value&&Te(i.value.content,!0):(e=i.exp,e||(e=Te("is",!1,i.arg.loc))),e)return Ie(t.helper(J),[e])}else 6===i.type&&i.value.content.startsWith("vue:")&&(a=i.value.content.slice(4));const o=tt(a)||t.isBuiltInComponent(a);return o?(n||t.helper(o),o):(t.helper(X),t.components.add(a),St(a,"component"))}function xa(e,t,n=e.props,a,s,i=!1){const{tag:o,loc:l,children:r}=e;let u=[];const d=[],p=[],_=r.length>0;let v=!1,b=0,g=!1,y=!1,k=!1,w=!1,E=!1,N=!1;const x=[],S=e=>{u.length&&(d.push(Ce(Sa(u),l)),u=[]),e&&d.push(e)},V=()=>{t.scopes.vFor>0&&u.push(Oe(Te("ref_for",!0),Te("true")))},C=({key:e,value:n})=>{if(et(e)){const i=e.content,o=c(i);if(!o||a&&!s||"onclick"===i.toLowerCase()||"onUpdate:modelValue"===i||m(i)||(w=!0),o&&m(i)&&(N=!0),o&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&yn(n,t)>0)return;"ref"===i?g=!0:"class"===i?y=!0:"style"===i?k=!0:"key"===i||x.includes(i)||x.push(i),!a||"class"!==i&&"style"!==i||x.includes(i)||x.push(i)}else E=!0};for(let c=0;c"prop"===e.content))&&(b|=32);const w=t.directiveTransforms[n];if(w){const{props:n,needRuntime:a}=w(s,e,t);!i&&n.forEach(C),k&&r&&!et(r)?S(Ce(n,l)):u.push(...n),a&&(p.push(s),h(a)&&wa.set(s,a))}else f(n)||(p.push(s),_&&(v=!0))}}let O;if(d.length?(S(),O=d.length>1?Ie(t.helper(ie),d,l):d[0]):u.length&&(O=Ce(Sa(u),l)),E?b|=16:(y&&!a&&(b|=2),k&&!a&&(b|=4),x.length&&(b|=8),w&&(b|=32)),v||0!==b&&32!==b||!(g||N||p.length>0)||(b|=512),!t.inSSR&&O)switch(O.type){case 15:let e=-1,n=-1,a=!1;for(let t=0;tOe(e,t))),s))}return Ve(n,e.loc)}function Oa(e){let t="[";for(let n=0,a=e.length;n{if(kt(e)){const{children:n,loc:a}=e,{slotName:s,slotProps:i}=Ia(e,t),o=[t.prefixIdentifiers?"_ctx.$slots":"$slots",s,"{}","undefined","true"];let l=2;i&&(o[2]=i,l=3),n.length&&(o[3]=Re([],n,!1,!1,a),l=4),t.scopeId&&!t.slotted&&(l=5),o.splice(l),e.codegenNode=Ie(t.helper(ne),o,a)}};function Ia(e,t){let n,a='"default"';const s=[];for(let i=0;i0){const{props:a,directives:i}=xa(e,t,s,!1,!1);n=a,i.length&&t.onError(Ze(36,i[0].loc))}return{slotName:a,slotProps:n}}const Ra=(e,t,n,a)=>{const{loc:s,modifiers:i,arg:o}=e;let l;if(e.exp||i.length||n.onError(Ze(35,s)),4===o.type)if(o.isStatic){let e=o.content;0,e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`);const n=0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?w(g(e)):`on:${e}`;l=Te(n,!0,o.loc)}else l=Ae([`${n.helperString(he)}(`,o,")"]);else l=o,l.children.unshift(`${n.helperString(he)}(`),l.children.push(")");let r=e.exp;r&&!r.content.trim()&&(r=void 0);let c=n.cacheHandlers&&!r&&!n.inVOnce;if(r){const e=ut(r),t=!(e||ht(r)),n=r.content.includes(";");0,(t||c&&e)&&(r=Ae([`${t?"$event":"(...args)"} => ${n?"{":"("}`,r,n?"}":")"]))}let u={props:[Oe(l,r||Te("() => {}",!1,s))]};return a&&(u=a(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach((e=>e.key.isHandlerKey=!0)),u},La=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{const n=e.children;let a,s=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))||"template"===e.tag)))for(let e=0;e{if(1===e.type&&_t(e,"once",!0)){if(Da.has(e)||t.inVOnce||t.inSSR)return;return Da.add(e),t.inVOnce=!0,t.helper(_e),()=>{t.inVOnce=!1;const e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}}},Ua=(e,t,n)=>{const{exp:a,arg:s}=e;if(!a)return n.onError(Ze(41,e.loc)),Ma();const i=a.loc.source.trim(),o=4===a.type?a.content:i,l=n.bindingMetadata[i];if("props"===l||"props-aliased"===l)return n.onError(Ze(44,a.loc)),Ma();const r=!1;if(!o.trim()||!ut(a)&&!r)return n.onError(Ze(42,a.loc)),Ma();const c=s||Te("modelValue",!0),u=s?et(s)?`onUpdate:${g(s.content)}`:Ae(['"onUpdate:" + ',s]):"onUpdate:modelValue";let d;const p=n.isTS?"($event: any)":"$event";d=Ae([`${p} => ((`,a,") = $event)"]);const h=[Oe(c,e.exp),Oe(u,d)];if(e.modifiers.length&&1===t.tagType){const t=e.modifiers.map((e=>e.content)).map((e=>(at(e)?e:JSON.stringify(e))+": true")).join(", "),n=s?et(s)?`${s.content}Modifiers`:Ae([s,' + "Modifiers"']):"modelModifiers";h.push(Oe(n,Te(`{ ${t} }`,!1,e.loc,2)))}return Ma(h)};function Ma(e=[]){return{props:e}}const Pa=/[\w).+\-_$\]]/,ja=(e,t)=>{He("COMPILER_FILTERS",t)&&(5===e.type?$a(e.content,t):1===e.type&&e.props.forEach((e=>{7===e.type&&"for"!==e.name&&e.exp&&$a(e.exp,t)})))};function $a(e,t){if(4===e.type)Ka(e,t);else for(let n=0;n=0;t--)if(e=n.charAt(t)," "!==e)break;e&&Pa.test(e)||(u=!0)}}else void 0===o?(_=i+1,o=n.slice(0,i).trim()):f();function f(){m.push(n.slice(_,i).trim()),_=i+1}if(void 0===o?o=n.slice(0,i).trim():0!==_&&f(),m.length){for(i=0;i{if(1===e.type){const n=_t(e,"memo");if(!n||qa.has(e))return;return qa.add(e),()=>{const a=e.codegenNode||t.currentNode.codegenNode;a&&13===a.type&&(1!==e.tagType&&Pe(a,t),e.codegenNode=Ie(t.helper(ye),[n.exp,Re(void 0,a),"_cache",String(t.cached.length)]),t.cached.push(null))}}};function za(e){return[[Ba,ta,Wa,ua,ja,Aa,Ea,fa,La],{on:Ra,bind:la,model:Ua}]}function Ga(e,t={}){const n=t.onError||Je,a="module"===t.mode;!0===t.prefixIdentifiers?n(Ze(47)):a&&n(Ze(48));const s=!1;t.cacheHandlers&&n(Ze(49)),t.scopeId&&!a&&n(Ze(50));const i=u({},t,{prefixIdentifiers:s}),o=p(e)?fn(e,i):e,[l,r]=za();return Sn(o,u({},i,{nodeTransforms:[...l,...t.nodeTransforms||[]],directiveTransforms:u({},r,t.directiveTransforms||{})})),Ln(o,i)}const Qa=()=>({props:[]}),Ha=Symbol(""),Xa=Symbol(""),Ja=Symbol(""),Ya=Symbol(""),Za=Symbol(""),es=Symbol(""),ts=Symbol(""),ns=Symbol(""),as=Symbol(""),ss=Symbol("");let is;function os(e,t=!1){return is||(is=document.createElement("div")),t?(is.innerHTML=`
`,is.children[0].getAttribute("foo")):(is.innerHTML=e,is.textContent)}Ee({[Ha]:"vModelRadio",[Xa]:"vModelCheckbox",[Ja]:"vModelText",[Ya]:"vModelSelect",[Za]:"vModelDynamic",[es]:"withModifiers",[ts]:"withKeys",[ns]:"vShow",[as]:"Transition",[ss]:"TransitionGroup"});const ls={parseMode:"html",isVoidTag:B,isNativeTag:e=>R(e)||L(e)||D(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:os,isBuiltInComponent:e=>"Transition"===e||"transition"===e?as:"TransitionGroup"===e||"transition-group"===e?ss:void 0,getNamespace(e,t,n){let a=t?t.ns:n;if(t&&2===a)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some((e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content)))&&(a=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(a=0);else t&&1===a&&("foreignObject"!==t.tag&&"desc"!==t.tag&&"title"!==t.tag||(a=0));if(0===a){if("svg"===e)return 1;if("math"===e)return 2}return a}},rs=e=>{1===e.type&&e.props.forEach(((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:Te("style",!0,t.loc),exp:cs(t.value.content,t.loc),modifiers:[],loc:t.loc})}))},cs=(e,t)=>{const n=C(e);return Te(JSON.stringify(n),!1,t,3)};function us(e,t){return Ze(e,t,void 0)}const ds=(e,t,n)=>{const{exp:a,loc:s}=e;return a||n.onError(us(53,s)),t.children.length&&(n.onError(us(54,s)),t.children.length=0),{props:[Oe(Te("innerHTML",!0,s),a||Te("",!0))]}},ps=(e,t,n)=>{const{exp:a,loc:s}=e;return a||n.onError(us(55,s)),t.children.length&&(n.onError(us(56,s)),t.children.length=0),{props:[Oe(Te("textContent",!0),a?yn(a,n)>0?a:Ie(n.helperString(se),[a],s):Te("",!0))]}},hs=(e,t,n)=>{const a=Ua(e,t,n);if(!a.props.length||1===t.tagType)return a;e.arg&&n.onError(us(58,e.arg.loc));const{tag:s}=t,i=n.isCustomElement(s);if("input"===s||"textarea"===s||"select"===s||i){let o=Ja,l=!1;if("input"===s||i){const a=mt(t,"type");if(a){if(7===a.type)o=Za;else if(a.value)switch(a.value.content){case"radio":o=Ha;break;case"checkbox":o=Xa;break;case"file":l=!0,n.onError(us(59,e.loc));break;default:break}}else vt(t)&&(o=Za)}else"select"===s&&(o=Ya);l||(a.needRuntime=n.helper(o))}else n.onError(us(57,e.loc));return a.props=a.props.filter((e=>!(4===e.key.type&&"modelValue"===e.key.content))),a},_s=i("passive,once,capture"),ms=i("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),fs=i("left,right"),vs=i("onkeyup,onkeydown,onkeypress"),bs=(e,t,n,a)=>{const s=[],i=[],o=[];for(let l=0;l{const n=et(e)&&"onclick"===e.content.toLowerCase();return n?Te(t,!0):4!==e.type?Ae(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e},ys=(e,t,n)=>Ra(e,t,n,(t=>{const{modifiers:a}=e;if(!a.length)return t;let{key:s,value:i}=t.props[0];const{keyModifiers:o,nonKeyModifiers:l,eventOptionModifiers:r}=bs(s,a,n,e.loc);if(l.includes("right")&&(s=gs(s,"onContextmenu")),l.includes("middle")&&(s=gs(s,"onMouseup")),l.length&&(i=Ie(n.helper(es),[i,JSON.stringify(l)])),!o.length||et(s)&&!vs(s.content.toLowerCase())||(i=Ie(n.helper(ts),[i,JSON.stringify(o)])),r.length){const e=r.map(k).join("");s=et(s)?Te(`${s.content}${e}`,!0):Ae(["(",s,`) + "${e}"`])}return{props:[Oe(s,i)]}})),ks=(e,t,n)=>{const{exp:a,loc:s}=e;return a||n.onError(us(61,s)),{props:[],needRuntime:n.helper(ns)}};const ws=(e,t)=>{1!==e.type||0!==e.tagType||"script"!==e.tag&&"style"!==e.tag||t.removeNode()};const Es=[rs],Ns={cloak:Qa,html:ds,text:ps,model:hs,on:ys,show:ks};function xs(e,t={}){return Ga(e,u({},ls,t,{nodeTransforms:[ws,...Es,...t.nodeTransforms||[]],directiveTransforms:u({},Ns,t.directiveTransforms||{}),transformHoist:null}))}n(4364); +/** +* @vue/server-renderer v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const{ensureValidVNode:Ss}=a.ssrUtils;Symbol(""),Symbol(""),Symbol("");{const e=N(),t=(t,n)=>{let a;return(a=e[t])||(a=e[t]=[]),a.push(n),e=>{a.length>1?a.forEach((t=>t(e))):a[0](e)}};t("__VUE_INSTANCE_SETTERS__",(e=>e)),t("__VUE_SSR_SETTERS__",(e=>e))}const{createComponentInstance:Vs,setCurrentRenderingInstance:Cs,setupComponent:Os,renderComponentRoot:Ts,normalizeVNode:As,pushWarningContext:Is,popWarningContext:Rs}=a.ssrUtils;const{isVNode:Ls}=a.ssrUtils;const{isVNode:Ds}=a.ssrUtils;(0,a.initDirectivesForSSR)();var Bs=n(4364),Us=function(e,t){return Us=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Us(e,t)};function Ms(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}Us(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Ps=function(){return Ps=Object.assign||function(e){for(var t,n=1,a=arguments.length;n0&&s[s.length-1])&&(6===l[0]||2===l[0])){o=0;continue}if(3===l[0]&&(!s||l[1]>s[0]&&l[1]0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function n(n,a){this.__indent_cache=new t(n,a),this.raw=!1,this._end_with_newline=n.end_with_newline,this.indent_size=n.indent_size,this.wrap_line_length=n.wrap_line_length,this.indent_empty_lines=n.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new e(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}return no=1,e.prototype.clone_empty=function(){var t=new e(this.__parent);return t.set_indent(this.__indent_count,this.__alignment_count),t},e.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},e.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},e.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},e.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},e.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},e.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count," "===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},e.prototype.is_empty=function(){return 0===this.__items.length},e.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},e.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf("\n");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},e.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},e.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},e.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},e.prototype.trim=function(){while(" "===this.last())this.__items.pop(),this.__character_count-=1},e.prototype.toString=function(){var e="";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join("")),e},t.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t,n},t.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=""),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t],n},t.prototype.__ensure_cache=function(e){while(e>=this.__cache.length)this.__add_column()},t.prototype.__add_column=function(){var e=this.__cache.length,t=0,n="";this.__indent_size&&e>=this.__indent_size&&(t=Math.floor(e/this.__indent_size),e-=t*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(" ")),this.__cache.push(n)},n.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},n.prototype.get_line_number=function(){return this.__lines.length},n.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},n.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},n.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},n.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},n.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&("\n"===t[t.length-1]&&(t=t.replace(/\n+$/g,"")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join("\n");return"\n"!==e&&(n=n.replace(/[\n]/g,e)),n},n.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},n.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},n.prototype.add_raw_token=function(e){for(var t=0;t1&&this.current_line.is_empty())this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},n.prototype.just_added_newline=function(){return this.current_line.is_empty()},n.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},n.prototype.ensure_empty_line_above=function(t,n){var a=this.__lines.length-2;while(a>=0){var s=this.__lines[a];if(s.is_empty())break;if(0!==s.item(0).indexOf(t)&&s.item(-1)!==n){this.__lines.splice(a+1,0,new e(this)),this.previous_line=this.__lines[this.__lines.length-2];break}a--}},lo.Output=n,lo}var co,uo={};function po(){if(co)return uo;function e(e,t,n,a){this.type=e,this.text=t,this.comments_before=null,this.newlines=n||0,this.whitespace_before=a||"",this.parent=null,this.next=null,this.previous=null,this.opened=null,this.closed=null,this.directives=null}return co=1,uo.Token=e,uo}var ho,_o={};function mo(){return ho||(ho=1,function(e){var t="\\x23\\x24\\x40\\x41-\\x5a\\x5f\\x61-\\x7a",n="\\x24\\x30-\\x39\\x41-\\x5a\\x5f\\x61-\\x7a",a="\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc",s="\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u0620-\\u0649\\u0672-\\u06d3\\u06e7-\\u06e8\\u06fb-\\u06fc\\u0730-\\u074a\\u0800-\\u0814\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0840-\\u0857\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962-\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09d7\\u09df-\\u09e0\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2-\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b5f-\\u0b60\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62-\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2-\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d46-\\u0d48\\u0d57\\u0d62-\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e34-\\u0e3a\\u0e40-\\u0e45\\u0e50-\\u0e59\\u0eb4-\\u0eb9\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f41-\\u0f47\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1029\\u1040-\\u1049\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u170e-\\u1710\\u1720-\\u1730\\u1740-\\u1750\\u1772\\u1773\\u1780-\\u17b2\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1920-\\u192b\\u1930-\\u193b\\u1951-\\u196d\\u19b0-\\u19c0\\u19c8-\\u19c9\\u19d0-\\u19d9\\u1a00-\\u1a15\\u1a20-\\u1a53\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b46-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c00-\\u1c22\\u1c40-\\u1c49\\u1c5b-\\u1c7d\\u1cd0-\\u1cd2\\u1d00-\\u1dbe\\u1e01-\\u1f15\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2d81-\\u2d96\\u2de0-\\u2dff\\u3021-\\u3028\\u3099\\u309a\\ua640-\\ua66d\\ua674-\\ua67d\\ua69f\\ua6f0-\\ua6f1\\ua7f8-\\ua800\\ua806\\ua80b\\ua823-\\ua827\\ua880-\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8f3-\\ua8f7\\ua900-\\ua909\\ua926-\\ua92d\\ua930-\\ua945\\ua980-\\ua983\\ua9b3-\\ua9c0\\uaa00-\\uaa27\\uaa40-\\uaa41\\uaa4c-\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaae0-\\uaae9\\uaaf2-\\uaaf3\\uabc0-\\uabe1\\uabec\\uabed\\uabf0-\\uabf9\\ufb20-\\ufb28\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f",i="(?:\\\\u[0-9a-fA-F]{4}|["+t+a+"])",o="(?:\\\\u[0-9a-fA-F]{4}|["+n+a+s+"])*";e.identifier=new RegExp(i+o,"g"),e.identifierStart=new RegExp(i),e.identifierMatch=new RegExp("(?:\\\\u[0-9a-fA-F]{4}|["+n+a+s+"])+"),e.newline=/[\n\r\u2028\u2029]/,e.lineBreak=new RegExp("\r\n|"+e.newline.source),e.allLineBreaks=new RegExp(e.lineBreak.source,"g")}(_o)),_o}var fo,vo,bo={},go={};function yo(){if(fo)return go;function e(e,n){this.raw_options=t(e,n),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs","\t"===this.indent_char),this.indent_with_tabs&&(this.indent_char="\t",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","django","erb","handlebars","php","smarty"],["auto"])}function t(e,t){var a,s={};for(a in e=n(e),e)a!==t&&(s[a]=e[a]);if(t&&e[t])for(a in e[t])s[a]=e[t][a];return s}function n(e){var t,n={};for(t in e){var a=t.replace(/-/g,"_");n[a]=e[t]}return n}return fo=1,e.prototype._get_array=function(e,t){var n=this.raw_options[e],a=t||[];return"object"===typeof n?null!==n&&"function"===typeof n.concat&&(a=n.concat()):"string"===typeof n&&(a=n.split(/[^a-zA-Z0-9_\/\-]+/)),a},e.prototype._get_boolean=function(e,t){var n=this.raw_options[e],a=void 0===n?!!t:!!n;return a},e.prototype._get_characters=function(e,t){var n=this.raw_options[e],a=t||"";return"string"===typeof n&&(a=n.replace(/\\r/,"\r").replace(/\\n/,"\n").replace(/\\t/,"\t")),a},e.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var a=parseInt(n,10);return isNaN(a)&&(a=t),a},e.prototype._get_selection=function(e,t,n){var a=this._get_selection_list(e,t,n);if(1!==a.length)throw new Error("Invalid Option Value: The option '"+e+"' can only be one of the following values:\n"+t+"\nYou passed in: '"+this.raw_options[e]+"'");return a[0]},e.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error("Selection list cannot be empty.");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error("Invalid Default Value!");var a=this._get_array(e,n);if(!this._is_valid_selection(a,t))throw new Error("Invalid Option Value: The option '"+e+"' can contain only the following values:\n"+t+"\nYou passed in: '"+this.raw_options[e]+"'");return a},e.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},go.Options=e,go.normalizeOpts=n,go.mergeOpts=t,go}function ko(){if(vo)return bo;vo=1;var e=yo().Options,t=["before-newline","after-newline","preserve-newline"];function n(n){e.call(this,n,"js");var a=this.raw_options.brace_style||null;"expand-strict"===a?this.raw_options.brace_style="expand":"collapse-preserve-inline"===a?this.raw_options.brace_style="collapse,preserve-inline":void 0!==this.raw_options.braces_on_own_line&&(this.raw_options.brace_style=this.raw_options.braces_on_own_line?"expand":"collapse");var s=this._get_selection_list("brace_style",["collapse","expand","end-expand","none","preserve-inline"]);this.brace_preserve_inline=!1,this.brace_style="collapse";for(var i=0;i0&&(this.__position-=1)},t.prototype.hasNext=function(){return this.__position=0&&e=0&&t=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},No.InputScanner=t,No}var So,Vo={},Co={};function Oo(){if(So)return Co;function e(e){this.__tokens=[],this.__tokens_length=this.__tokens.length,this.__position=0,this.__parent_token=e}return So=1,e.prototype.restart=function(){this.__position=0},e.prototype.isEmpty=function(){return 0===this.__tokens_length},e.prototype.hasNext=function(){return this.__position=0&&e/),erb:s.starting_with(/<%[^%]/).until_after(/[^%]%>/),django:s.starting_with(/{%/).until_after(/%}/),django_value:s.starting_with(/{{/).until_after(/}}/),django_comment:s.starting_with(/{#/).until_after(/#}/),smarty:s.starting_with(/{(?=[^}{\s\n])/).until_after(/[^\s\n]}/),smarty_comment:s.starting_with(/{\*/).until_after(/\*}/),smarty_literal:s.starting_with(/{literal}/).until_after(/{\/literal}/)}}return n.prototype=new e,n.prototype._create=function(){return new n(this._input,this)},n.prototype._update=function(){this.__set_templated_pattern()},n.prototype.disable=function(e){var t=this._create();return t._disabled[e]=!0,t._update(),t},n.prototype.read_options=function(e){var n=this._create();for(var a in t)n._disabled[a]=-1===e.templating.indexOf(a);return n._update(),n},n.prototype.exclude=function(e){var t=this._create();return t._excluded[e]=!0,t._update(),t},n.prototype.read=function(){var e="";e=this._match_pattern?this._input.read(this._starting_pattern):this._input.read(this._starting_pattern,this.__template_pattern);var t=this._read_template();while(t)this._match_pattern?t+=this._input.read(this._match_pattern):t+=this._input.readUntil(this.__template_pattern),e+=t,t=this._read_template();return this._until_after&&(e+=this._input.readUntilAfter(this._until_pattern)),e},n.prototype.__set_templated_pattern=function(){var e=[];this._disabled.php||e.push(this.__patterns.php._starting_pattern.source),this._disabled.handlebars||e.push(this.__patterns.handlebars._starting_pattern.source),this._disabled.erb||e.push(this.__patterns.erb._starting_pattern.source),this._disabled.django||(e.push(this.__patterns.django._starting_pattern.source),e.push(this.__patterns.django_value._starting_pattern.source),e.push(this.__patterns.django_comment._starting_pattern.source)),this._disabled.smarty||e.push(this.__patterns.smarty._starting_pattern.source),this._until_pattern&&e.push(this._until_pattern.source),this.__template_pattern=this._input.get_regexp("(?:"+e.join("|")+")")},n.prototype._read_template=function(){var e="",t=this._input.peek();if("<"===t){var n=this._input.peek(1);this._disabled.php||this._excluded.php||"?"!==n||(e=e||this.__patterns.php.read()),this._disabled.erb||this._excluded.erb||"%"!==n||(e=e||this.__patterns.erb.read())}else"{"===t&&(this._disabled.handlebars||this._excluded.handlebars||(e=e||this.__patterns.handlebars_comment.read(),e=e||this.__patterns.handlebars_unescaped.read(),e=e||this.__patterns.handlebars.read()),this._disabled.django||(this._excluded.django||this._excluded.handlebars||(e=e||this.__patterns.django_value.read()),this._excluded.django||(e=e||this.__patterns.django_comment.read(),e=e||this.__patterns.django.read())),this._disabled.smarty||this._disabled.django&&this._disabled.handlebars&&(e=e||this.__patterns.smarty_comment.read(),e=e||this.__patterns.smarty_literal.read(),e=e||this.__patterns.smarty.read()));return e},Wo.TemplatablePattern=n,Wo}function Go(){if(Ko)return Eo;Ko=1;var e=xo().InputScanner,t=Uo().Tokenizer,n=Uo().TOKEN,a=jo().Directives,s=mo(),i=Do().Pattern,o=zo().TemplatablePattern;function l(e,t){return-1!==t.indexOf(e)}var r={START_EXPR:"TK_START_EXPR",END_EXPR:"TK_END_EXPR",START_BLOCK:"TK_START_BLOCK",END_BLOCK:"TK_END_BLOCK",WORD:"TK_WORD",RESERVED:"TK_RESERVED",SEMICOLON:"TK_SEMICOLON",STRING:"TK_STRING",EQUALS:"TK_EQUALS",OPERATOR:"TK_OPERATOR",COMMA:"TK_COMMA",BLOCK_COMMENT:"TK_BLOCK_COMMENT",COMMENT:"TK_COMMENT",DOT:"TK_DOT",UNKNOWN:"TK_UNKNOWN",START:n.START,RAW:n.RAW,EOF:n.EOF},c=new a(/\/\*/,/\*\//),u=/0[xX][0123456789abcdefABCDEF_]*n?|0[oO][01234567_]*n?|0[bB][01_]*n?|\d[\d_]*n|(?:\.\d[\d_]*|\d[\d_]*\.?[\d_]*)(?:[eE][+-]?[\d_]+)?/,d=/[0-9]/,p=/[^\d\.]/,h=">>> === !== &&= ??= ||= << && >= ** != == <= >> || ?? |> < / - + > : & % ? ^ | *".split(" "),_=">>>= ... >>= <<= === >>> !== **= &&= ??= ||= => ^= :: /= << <= == && -= >= >> != -- += ** || ?? ++ %= &= *= |= |> = ! ? > < : / ^ - + * & % ~ |";_=_.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&"),_="\\?\\.(?!\\d) "+_,_=_.replace(/ /g,"|");var m,f=new RegExp(_),v="continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export".split(","),b=v.concat(["do","in","of","else","get","set","new","catch","finally","typeof","yield","async","await","from","as","class","extends"]),g=new RegExp("^(?:"+b.join("|")+")$"),y=function(e,n){t.call(this,e,n),this._patterns.whitespace=this._patterns.whitespace.matching(/\u00A0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff/.source,/\u2028\u2029/.source);var a=new i(this._input),l=new o(this._input).read_options(this._options);this.__patterns={template:l,identifier:l.starting_with(s.identifier).matching(s.identifierMatch),number:a.matching(u),punct:a.matching(f),comment:a.starting_with(/\/\//).until(/[\n\r\u2028\u2029]/),block_comment:a.starting_with(/\/\*/).until_after(/\*\//),html_comment_start:a.matching(//),include:a.starting_with(/#include/).until_after(s.lineBreak),shebang:a.starting_with(/#!/).until_after(s.lineBreak),xml:a.matching(/[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[^}]+?}|!\[CDATA\[[^\]]*?\]\]|)(\s*{[^}]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{([^{}]|{[^}]+?})+?}))*\s*(\/?)\s*>/),single_quote:l.until(/['\\\n\r\u2028\u2029]/),double_quote:l.until(/["\\\n\r\u2028\u2029]/),template_text:l.until(/[`\\$]/),template_expression:l.until(/[`}\\]/)}};function k(t){var n="",a=0,s=new e(t),i=null;while(s.hasNext())if(i=s.match(/([\s]|[^\\]|\\\\)+/g),i&&(n+=i[0]),"\\"===s.peek()){if(s.next(),"x"===s.peek())i=s.match(/x([0-9A-Fa-f]{2})/g);else{if("u"!==s.peek()){n+="\\",s.hasNext()&&(n+=s.next());continue}i=s.match(/u([0-9A-Fa-f]{4})/g)}if(!i)return t;if(a=parseInt(i[1],16),a>126&&a<=255&&0===i[0].indexOf("x"))return t;if(a>=0&&a<32){n+="\\"+i[0];continue}n+=34===a||39===a||92===a?"\\"+String.fromCharCode(a):String.fromCharCode(a)}return n}return y.prototype=new t,y.prototype._is_comment=function(e){return e.type===r.COMMENT||e.type===r.BLOCK_COMMENT||e.type===r.UNKNOWN},y.prototype._is_opening=function(e){return e.type===r.START_BLOCK||e.type===r.START_EXPR},y.prototype._is_closing=function(e,t){return(e.type===r.END_BLOCK||e.type===r.END_EXPR)&&t&&("]"===e.text&&"["===t.text||")"===e.text&&"("===t.text||"}"===e.text&&"{"===t.text)},y.prototype._reset=function(){m=!1},y.prototype._get_next_token=function(e,t){var n=null;this._readWhitespace();var a=this._input.peek();return null===a?this._create_token(r.EOF,""):(n=n||this._read_non_javascript(a),n=n||this._read_string(a),n=n||this._read_pair(a,this._input.peek(1)),n=n||this._read_word(e),n=n||this._read_singles(a),n=n||this._read_comment(a),n=n||this._read_regexp(a,e),n=n||this._read_xml(a,e),n=n||this._read_punctuation(),n=n||this._create_token(r.UNKNOWN,this._input.next()),n)},y.prototype._read_word=function(e){var t;return t=this.__patterns.identifier.read(),""!==t?(t=t.replace(s.allLineBreaks,"\n"),e.type!==r.DOT&&(e.type!==r.RESERVED||"set"!==e.text&&"get"!==e.text)&&g.test(t)?"in"!==t&&"of"!==t||e.type!==r.WORD&&e.type!==r.STRING?this._create_token(r.RESERVED,t):this._create_token(r.OPERATOR,t):this._create_token(r.WORD,t)):(t=this.__patterns.number.read(),""!==t?this._create_token(r.WORD,t):void 0)},y.prototype._read_singles=function(e){var t=null;return"("===e||"["===e?t=this._create_token(r.START_EXPR,e):")"===e||"]"===e?t=this._create_token(r.END_EXPR,e):"{"===e?t=this._create_token(r.START_BLOCK,e):"}"===e?t=this._create_token(r.END_BLOCK,e):";"===e?t=this._create_token(r.SEMICOLON,e):"."===e&&p.test(this._input.peek(1))?t=this._create_token(r.DOT,e):","===e&&(t=this._create_token(r.COMMA,e)),t&&this._input.next(),t},y.prototype._read_pair=function(e,t){var n=null;return"#"===e&&"{"===t&&(n=this._create_token(r.START_BLOCK,e+t)),n&&(this._input.next(),this._input.next()),n},y.prototype._read_punctuation=function(){var e=this.__patterns.punct.read();if(""!==e)return"="===e?this._create_token(r.EQUALS,e):"?."===e?this._create_token(r.DOT,e):this._create_token(r.OPERATOR,e)},y.prototype._read_non_javascript=function(e){var t="";if("#"===e){if(this._is_first_token()&&(t=this.__patterns.shebang.read(),t))return this._create_token(r.UNKNOWN,t.trim()+"\n");if(t=this.__patterns.include.read(),t)return this._create_token(r.UNKNOWN,t.trim()+"\n");e=this._input.next();var n="#";if(this._input.hasNext()&&this._input.testChar(d)){do{e=this._input.next(),n+=e}while(this._input.hasNext()&&"#"!==e&&"="!==e);return"#"===e||("["===this._input.peek()&&"]"===this._input.peek(1)?(n+="[]",this._input.next(),this._input.next()):"{"===this._input.peek()&&"}"===this._input.peek(1)&&(n+="{}",this._input.next(),this._input.next())),this._create_token(r.WORD,n)}this._input.back()}else if("<"===e&&this._is_first_token()){if(t=this.__patterns.html_comment_start.read(),t){while(this._input.hasNext()&&!this._input.testChar(s.newline))t+=this._input.next();return m=!0,this._create_token(r.COMMENT,t)}}else if(m&&"-"===e&&(t=this.__patterns.html_comment_end.read(),t))return m=!1,this._create_token(r.COMMENT,t);return null},y.prototype._read_comment=function(e){var t=null;if("/"===e){var n="";if("*"===this._input.peek(1)){n=this.__patterns.block_comment.read();var a=c.get_directives(n);a&&"start"===a.ignore&&(n+=c.readIgnored(this._input)),n=n.replace(s.allLineBreaks,"\n"),t=this._create_token(r.BLOCK_COMMENT,n),t.directives=a}else"/"===this._input.peek(1)&&(n=this.__patterns.comment.read(),t=this._create_token(r.COMMENT,n))}return t},y.prototype._read_string=function(e){if("`"===e||"'"===e||'"'===e){var t=this._input.next();return this.has_char_escapes=!1,t+="`"===e?this._read_string_recursive("`",!0,"${"):this._read_string_recursive(e),this.has_char_escapes&&this._options.unescape_strings&&(t=k(t)),this._input.peek()===e&&(t+=this._input.next()),t=t.replace(s.allLineBreaks,"\n"),this._create_token(r.STRING,t)}return null},y.prototype._allow_regexp_or_xml=function(e){return e.type===r.RESERVED&&l(e.text,["return","case","throw","else","do","typeof","yield"])||e.type===r.END_EXPR&&")"===e.text&&e.opened.previous.type===r.RESERVED&&l(e.opened.previous.text,["if","while","for"])||l(e.type,[r.COMMENT,r.START_EXPR,r.START_BLOCK,r.START,r.END_BLOCK,r.OPERATOR,r.EQUALS,r.EOF,r.SEMICOLON,r.COMMA])},y.prototype._read_regexp=function(e,t){if("/"===e&&this._allow_regexp_or_xml(t)){var n=this._input.next(),a=!1,i=!1;while(this._input.hasNext()&&(a||i||this._input.peek()!==e)&&!this._input.testChar(s.newline))n+=this._input.peek(),a?a=!1:(a="\\"===this._input.peek(),"["===this._input.peek()?i=!0:"]"===this._input.peek()&&(i=!1)),this._input.next();return this._input.peek()===e&&(n+=this._input.next(),n+=this._input.read(s.identifier)),this._create_token(r.STRING,n)}return null},y.prototype._read_xml=function(e,t){if(this._options.e4x&&"<"===e&&this._allow_regexp_or_xml(t)){var n="",a=this.__patterns.xml.read_match();if(a){var i=a[2].replace(/^{\s+/,"{").replace(/\s+}$/,"}"),o=0===i.indexOf("{"),l=0;while(a){var c=!!a[1],u=a[2],d=!!a[a.length-1]||"![CDATA["===u.slice(0,8);if(!d&&(u===i||o&&u.replace(/^{\s+/,"{").replace(/\s+}$/,"}"))&&(c?--l:++l),n+=a[0],l<=0)break;a=this.__patterns.xml.read_match()}return a||(n+=this._input.match(/[\s\S]*/g)[0]),n=n.replace(s.allLineBreaks,"\n"),this._create_token(r.STRING,n)}}return null},y.prototype._read_string_recursive=function(e,t,n){var a,i;"'"===e?i=this.__patterns.single_quote:'"'===e?i=this.__patterns.double_quote:"`"===e?i=this.__patterns.template_text:"}"===e&&(i=this.__patterns.template_expression);var o=i.read(),l="";while(this._input.hasNext()){if(l=this._input.next(),l===e||!t&&s.newline.test(l)){this._input.back();break}"\\"===l&&this._input.hasNext()?(a=this._input.peek(),"x"===a||"u"===a?this.has_char_escapes=!0:"\r"===a&&"\n"===this._input.peek(1)&&this._input.next(),l+=this._input.next()):n&&("${"===n&&"$"===l&&"{"===this._input.peek()&&(l+=this._input.next()),n===l&&(l+="`"===e?this._read_string_recursive("}",t,"`"):this._read_string_recursive("`",t,"${"),this._input.hasNext()&&(l+=this._input.next()))),l+=i.read(),o+=l}return o},Eo.Tokenizer=y,Eo.TOKEN=r,Eo.positionable_operators=h.slice(),Eo.line_starters=v.slice(),Eo}function Qo(){if(Fo)return oo;Fo=1;var e=ro().Output,t=po().Token,n=mo(),a=ko().Options,s=Go().Tokenizer,i=Go().line_starters,o=Go().positionable_operators,l=Go().TOKEN;function r(e,t){return-1!==t.indexOf(e)}function c(e){return e.replace(/^\s+/g,"")}function u(e){for(var t={},n=0;na&&(a=e.line_indent_level));var s={mode:n,parent:e,last_token:e?e.last_token:new t(l.START_BLOCK,""),last_word:e?e.last_word:"",declaration_statement:!1,declaration_assignment:!1,multiline_frame:!1,inline_frame:!1,if_block:!1,else_block:!1,class_start_block:!1,do_block:!1,do_while:!1,import_block:!1,in_case_statement:!1,in_case:!1,case_body:!1,case_block:!1,indentation_level:a,alignment:0,line_indent_level:e?e.line_indent_level:a,start_line_index:this._output.get_line_number(),ternary_depth:0};return s},N.prototype._reset=function(t){var n=t.match(/^[\t ]*/)[0];this._last_last_text="",this._output=new e(this._options,n),this._output.raw=this._options.test_output_raw,this._flag_store=[],this.set_mode(v.BlockStatement);var a=new s(t,this._options);return this._tokens=a.tokenize(),t},N.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e,t=this._reset(this._source_text),a=this._options.eol;"auto"===this._options.eol&&(a="\n",t&&n.lineBreak.test(t||"")&&(a=t.match(n.lineBreak)[0]));var s=this._tokens.next();while(s)this.handle_token(s),this._last_last_text=this._flags.last_token.text,this._flags.last_token=s,s=this._tokens.next();return e=this._output.get_code(a),e},N.prototype.handle_token=function(e,t){e.type===l.START_EXPR?this.handle_start_expr(e):e.type===l.END_EXPR?this.handle_end_expr(e):e.type===l.START_BLOCK?this.handle_start_block(e):e.type===l.END_BLOCK?this.handle_end_block(e):e.type===l.WORD||e.type===l.RESERVED?this.handle_word(e):e.type===l.SEMICOLON?this.handle_semicolon(e):e.type===l.STRING?this.handle_string(e):e.type===l.EQUALS?this.handle_equals(e):e.type===l.OPERATOR?this.handle_operator(e):e.type===l.COMMA?this.handle_comma(e):e.type===l.BLOCK_COMMENT?this.handle_block_comment(e,t):e.type===l.COMMENT?this.handle_comment(e,t):e.type===l.DOT?this.handle_dot(e):e.type===l.EOF?this.handle_eof(e):(e.type,l.UNKNOWN,this.handle_unknown(e,t))},N.prototype.handle_whitespace_and_comments=function(e,t){var n=e.newlines,a=this._options.keep_array_indentation&&y(this._flags.mode);if(e.comments_before){var s=e.comments_before.next();while(s)this.handle_whitespace_and_comments(s,t),this.handle_token(s,t),s=e.comments_before.next()}if(a)for(var i=0;i0,t);else if(this._options.max_preserve_newlines&&n>this._options.max_preserve_newlines&&(n=this._options.max_preserve_newlines),this._options.preserve_newlines&&n>1){this.print_newline(!1,t);for(var o=1;o0&&(!this._flags.parent||this._flags.indentation_level>this._flags.parent.indentation_level)&&(this._flags.indentation_level-=1,this._output.set_indent(this._flags.indentation_level,this._flags.alignment))},N.prototype.set_mode=function(e){this._flags?(this._flag_store.push(this._flags),this._previous_flags=this._flags):this._previous_flags=this.create_flags(null,e),this._flags=this.create_flags(this._previous_flags,e),this._output.set_indent(this._flags.indentation_level,this._flags.alignment)},N.prototype.restore_mode=function(){this._flag_store.length>0&&(this._previous_flags=this._flags,this._flags=this._flag_store.pop(),this._previous_flags.mode===v.Statement&&b(this._output,this._previous_flags),this._output.set_indent(this._flags.indentation_level,this._flags.alignment))},N.prototype.start_of_object_property=function(){return this._flags.parent.mode===v.ObjectLiteral&&this._flags.mode===v.Statement&&(":"===this._flags.last_token.text&&0===this._flags.ternary_depth||p(this._flags.last_token,["get","set"]))},N.prototype.start_of_statement=function(e){var t=!1;return t=t||p(this._flags.last_token,["var","let","const"])&&e.type===l.WORD,t=t||d(this._flags.last_token,"do"),t=t||!(this._flags.parent.mode===v.ObjectLiteral&&this._flags.mode===v.Statement)&&p(this._flags.last_token,x)&&!e.newlines,t=t||d(this._flags.last_token,"else")&&!(d(e,"if")&&!e.comments_before),t=t||this._flags.last_token.type===l.END_EXPR&&(this._previous_flags.mode===v.ForInitializer||this._previous_flags.mode===v.Conditional),t=t||this._flags.last_token.type===l.WORD&&this._flags.mode===v.BlockStatement&&!this._flags.in_case&&!("--"===e.text||"++"===e.text)&&"function"!==this._last_last_text&&e.type!==l.WORD&&e.type!==l.RESERVED,t=t||this._flags.mode===v.ObjectLiteral&&(":"===this._flags.last_token.text&&0===this._flags.ternary_depth||p(this._flags.last_token,["get","set"])),!!t&&(this.set_mode(v.Statement),this.indent(),this.handle_whitespace_and_comments(e,!0),this.start_of_object_property()||this.allow_wrap_or_preserved_newline(e,p(e,["do","for","if","while"])),!0)},N.prototype.handle_start_expr=function(e){this.start_of_statement(e)||this.handle_whitespace_and_comments(e);var t=v.Expression;if("["===e.text){if(this._flags.last_token.type===l.WORD||")"===this._flags.last_token.text)return p(this._flags.last_token,i)&&(this._output.space_before_token=!0),this.print_token(e),this.set_mode(t),this.indent(),void(this._options.space_in_paren&&(this._output.space_before_token=!0));t=v.ArrayLiteral,y(this._flags.mode)&&("["!==this._flags.last_token.text&&(","!==this._flags.last_token.text||"]"!==this._last_last_text&&"}"!==this._last_last_text)||this._options.keep_array_indentation||this.print_newline()),r(this._flags.last_token.type,[l.START_EXPR,l.END_EXPR,l.WORD,l.OPERATOR,l.DOT])||(this._output.space_before_token=!0)}else{if(this._flags.last_token.type===l.RESERVED)"for"===this._flags.last_token.text?(this._output.space_before_token=this._options.space_before_conditional,t=v.ForInitializer):r(this._flags.last_token.text,["if","while","switch"])?(this._output.space_before_token=this._options.space_before_conditional,t=v.Conditional):r(this._flags.last_word,["await","async"])?this._output.space_before_token=!0:"import"===this._flags.last_token.text&&""===e.whitespace_before?this._output.space_before_token=!1:(r(this._flags.last_token.text,i)||"catch"===this._flags.last_token.text)&&(this._output.space_before_token=!0);else if(this._flags.last_token.type===l.EQUALS||this._flags.last_token.type===l.OPERATOR)this.start_of_object_property()||this.allow_wrap_or_preserved_newline(e);else if(this._flags.last_token.type===l.WORD){this._output.space_before_token=!1;var n=this._tokens.peek(-3);if(this._options.space_after_named_function&&n){var a=this._tokens.peek(-4);p(n,["async","function"])||"*"===n.text&&p(a,["async","function"])?this._output.space_before_token=!0:this._flags.mode===v.ObjectLiteral?"{"!==n.text&&","!==n.text&&("*"!==n.text||"{"!==a.text&&","!==a.text)||(this._output.space_before_token=!0):this._flags.parent&&this._flags.parent.class_start_block&&(this._output.space_before_token=!0)}}else this.allow_wrap_or_preserved_newline(e);(this._flags.last_token.type===l.RESERVED&&("function"===this._flags.last_word||"typeof"===this._flags.last_word)||"*"===this._flags.last_token.text&&(r(this._last_last_text,["function","yield"])||this._flags.mode===v.ObjectLiteral&&r(this._last_last_text,["{",","])))&&(this._output.space_before_token=this._options.space_after_anon_function)}";"===this._flags.last_token.text||this._flags.last_token.type===l.START_BLOCK?this.print_newline():this._flags.last_token.type!==l.END_EXPR&&this._flags.last_token.type!==l.START_EXPR&&this._flags.last_token.type!==l.END_BLOCK&&"."!==this._flags.last_token.text&&this._flags.last_token.type!==l.COMMA||this.allow_wrap_or_preserved_newline(e,e.newlines),this.print_token(e),this.set_mode(t),this._options.space_in_paren&&(this._output.space_before_token=!0),this.indent()},N.prototype.handle_end_expr=function(e){while(this._flags.mode===v.Statement)this.restore_mode();this.handle_whitespace_and_comments(e),this._flags.multiline_frame&&this.allow_wrap_or_preserved_newline(e,"]"===e.text&&y(this._flags.mode)&&!this._options.keep_array_indentation),this._options.space_in_paren&&(this._flags.last_token.type!==l.START_EXPR||this._options.space_in_empty_paren?this._output.space_before_token=!0:(this._output.trim(),this._output.space_before_token=!1)),this.deindent(),this.print_token(e),this.restore_mode(),b(this._output,this._previous_flags),this._flags.do_while&&this._previous_flags.mode===v.Conditional&&(this._previous_flags.mode=v.Expression,this._flags.do_block=!1,this._flags.do_while=!1)},N.prototype.handle_start_block=function(e){this.handle_whitespace_and_comments(e);var t=this._tokens.peek(),n=this._tokens.peek(1);"switch"===this._flags.last_word&&this._flags.last_token.type===l.END_EXPR?(this.set_mode(v.BlockStatement),this._flags.in_case_statement=!0):this._flags.case_body?this.set_mode(v.BlockStatement):n&&(r(n.text,[":",","])&&r(t.type,[l.STRING,l.WORD,l.RESERVED])||r(t.text,["get","set","..."])&&r(n.type,[l.WORD,l.RESERVED]))?r(this._last_last_text,["class","interface"])&&!r(n.text,[":",","])?this.set_mode(v.BlockStatement):this.set_mode(v.ObjectLiteral):this._flags.last_token.type===l.OPERATOR&&"=>"===this._flags.last_token.text?this.set_mode(v.BlockStatement):r(this._flags.last_token.type,[l.EQUALS,l.START_EXPR,l.COMMA,l.OPERATOR])||p(this._flags.last_token,["return","throw","import","default"])?this.set_mode(v.ObjectLiteral):this.set_mode(v.BlockStatement),this._flags.last_token&&p(this._flags.last_token.previous,["class","extends"])&&(this._flags.class_start_block=!0);var a=!t.comments_before&&"}"===t.text,s=a&&"function"===this._flags.last_word&&this._flags.last_token.type===l.END_EXPR;if(this._options.brace_preserve_inline){var i=0,o=null;this._flags.inline_frame=!0;do{if(i+=1,o=this._tokens.peek(i-1),o.newlines){this._flags.inline_frame=!1;break}}while(o.type!==l.EOF&&(o.type!==l.END_BLOCK||o.opened!==e))}("expand"===this._options.brace_style||"none"===this._options.brace_style&&e.newlines)&&!this._flags.inline_frame?this._flags.last_token.type!==l.OPERATOR&&(s||this._flags.last_token.type===l.EQUALS||p(this._flags.last_token,h)&&"else"!==this._flags.last_token.text)?this._output.space_before_token=!0:this.print_newline(!1,!0):(!y(this._previous_flags.mode)||this._flags.last_token.type!==l.START_EXPR&&this._flags.last_token.type!==l.COMMA||((this._flags.last_token.type===l.COMMA||this._options.space_in_paren)&&(this._output.space_before_token=!0),(this._flags.last_token.type===l.COMMA||this._flags.last_token.type===l.START_EXPR&&this._flags.inline_frame)&&(this.allow_wrap_or_preserved_newline(e),this._previous_flags.multiline_frame=this._previous_flags.multiline_frame||this._flags.multiline_frame,this._flags.multiline_frame=!1)),this._flags.last_token.type!==l.OPERATOR&&this._flags.last_token.type!==l.START_EXPR&&(r(this._flags.last_token.type,[l.START_BLOCK,l.SEMICOLON])&&!this._flags.inline_frame?this.print_newline():this._output.space_before_token=!0)),this.print_token(e),this.indent(),a||this._options.brace_preserve_inline&&this._flags.inline_frame||this.print_newline()},N.prototype.handle_end_block=function(e){this.handle_whitespace_and_comments(e);while(this._flags.mode===v.Statement)this.restore_mode();var t=this._flags.last_token.type===l.START_BLOCK;this._flags.inline_frame&&!t?this._output.space_before_token=!0:"expand"===this._options.brace_style?t||this.print_newline():t||(y(this._flags.mode)&&this._options.keep_array_indentation?(this._options.keep_array_indentation=!1,this.print_newline(),this._options.keep_array_indentation=!0):this.print_newline()),this.restore_mode(),this.print_token(e)},N.prototype.handle_word=function(e){if(e.type===l.RESERVED)if(r(e.text,["set","get"])&&this._flags.mode!==v.ObjectLiteral)e.type=l.WORD;else if("import"===e.text&&r(this._tokens.peek().text,["(","."]))e.type=l.WORD;else if(r(e.text,["as","from"])&&!this._flags.import_block)e.type=l.WORD;else if(this._flags.mode===v.ObjectLiteral){var t=this._tokens.peek();":"===t.text&&(e.type=l.WORD)}if(this.start_of_statement(e)?p(this._flags.last_token,["var","let","const"])&&e.type===l.WORD&&(this._flags.declaration_statement=!0):!e.newlines||k(this._flags.mode)||this._flags.last_token.type===l.OPERATOR&&"--"!==this._flags.last_token.text&&"++"!==this._flags.last_token.text||this._flags.last_token.type===l.EQUALS||!this._options.preserve_newlines&&p(this._flags.last_token,["var","let","const","set","get"])?this.handle_whitespace_and_comments(e):(this.handle_whitespace_and_comments(e),this.print_newline()),this._flags.do_block&&!this._flags.do_while){if(d(e,"while"))return this._output.space_before_token=!0,this.print_token(e),this._output.space_before_token=!0,void(this._flags.do_while=!0);this.print_newline(),this._flags.do_block=!1}if(this._flags.if_block)if(!this._flags.else_block&&d(e,"else"))this._flags.else_block=!0;else{while(this._flags.mode===v.Statement)this.restore_mode();this._flags.if_block=!1,this._flags.else_block=!1}if(this._flags.in_case_statement&&p(e,["case","default"]))return this.print_newline(),this._flags.case_block||!this._flags.case_body&&!this._options.jslint_happy||this.deindent(),this._flags.case_body=!1,this.print_token(e),void(this._flags.in_case=!0);if(this._flags.last_token.type!==l.COMMA&&this._flags.last_token.type!==l.START_EXPR&&this._flags.last_token.type!==l.EQUALS&&this._flags.last_token.type!==l.OPERATOR||this.start_of_object_property()||this.allow_wrap_or_preserved_newline(e),d(e,"function"))return(r(this._flags.last_token.text,["}",";"])||this._output.just_added_newline()&&!r(this._flags.last_token.text,["(","[","{",":","=",","])&&this._flags.last_token.type!==l.OPERATOR)&&(this._output.just_added_blankline()||e.comments_before||(this.print_newline(),this.print_newline(!0))),this._flags.last_token.type===l.RESERVED||this._flags.last_token.type===l.WORD?p(this._flags.last_token,["get","set","new","export"])||p(this._flags.last_token,x)||d(this._flags.last_token,"default")&&"export"===this._last_last_text||"declare"===this._flags.last_token.text?this._output.space_before_token=!0:this.print_newline():this._flags.last_token.type===l.OPERATOR||"="===this._flags.last_token.text?this._output.space_before_token=!0:(this._flags.multiline_frame||!k(this._flags.mode)&&!y(this._flags.mode))&&this.print_newline(),this.print_token(e),void(this._flags.last_word=e.text);var n="NONE";if(this._flags.last_token.type===l.END_BLOCK?this._previous_flags.inline_frame?n="SPACE":p(e,["else","catch","finally","from"])?"expand"===this._options.brace_style||"end-expand"===this._options.brace_style||"none"===this._options.brace_style&&e.newlines?n="NEWLINE":(n="SPACE",this._output.space_before_token=!0):n="NEWLINE":this._flags.last_token.type===l.SEMICOLON&&this._flags.mode===v.BlockStatement?n="NEWLINE":this._flags.last_token.type===l.SEMICOLON&&k(this._flags.mode)?n="SPACE":this._flags.last_token.type===l.STRING?n="NEWLINE":this._flags.last_token.type===l.RESERVED||this._flags.last_token.type===l.WORD||"*"===this._flags.last_token.text&&(r(this._last_last_text,["function","yield"])||this._flags.mode===v.ObjectLiteral&&r(this._last_last_text,["{",","]))?n="SPACE":this._flags.last_token.type===l.START_BLOCK?n=this._flags.inline_frame?"SPACE":"NEWLINE":this._flags.last_token.type===l.END_EXPR&&(this._output.space_before_token=!0,n="NEWLINE"),p(e,i)&&")"!==this._flags.last_token.text&&(n=this._flags.inline_frame||"else"===this._flags.last_token.text||"export"===this._flags.last_token.text?"SPACE":"NEWLINE"),p(e,["else","catch","finally"]))if((this._flags.last_token.type!==l.END_BLOCK||this._previous_flags.mode!==v.BlockStatement||"expand"===this._options.brace_style||"end-expand"===this._options.brace_style||"none"===this._options.brace_style&&e.newlines)&&!this._flags.inline_frame)this.print_newline();else{this._output.trim(!0);var a=this._output.current_line;"}"!==a.last()&&this.print_newline(),this._output.space_before_token=!0}else"NEWLINE"===n?p(this._flags.last_token,h)||"declare"===this._flags.last_token.text&&p(e,["var","let","const"])?this._output.space_before_token=!0:this._flags.last_token.type!==l.END_EXPR?this._flags.last_token.type===l.START_EXPR&&p(e,["var","let","const"])||":"===this._flags.last_token.text||(d(e,"if")&&d(e.previous,"else")?this._output.space_before_token=!0:this.print_newline()):p(e,i)&&")"!==this._flags.last_token.text&&this.print_newline():this._flags.multiline_frame&&y(this._flags.mode)&&","===this._flags.last_token.text&&"}"===this._last_last_text?this.print_newline():"SPACE"===n&&(this._output.space_before_token=!0);!e.previous||e.previous.type!==l.WORD&&e.previous.type!==l.RESERVED||(this._output.space_before_token=!0),this.print_token(e),this._flags.last_word=e.text,e.type===l.RESERVED&&("do"===e.text?this._flags.do_block=!0:"if"===e.text?this._flags.if_block=!0:"import"===e.text?this._flags.import_block=!0:this._flags.import_block&&d(e,"from")&&(this._flags.import_block=!1))},N.prototype.handle_semicolon=function(e){this.start_of_statement(e)?this._output.space_before_token=!1:this.handle_whitespace_and_comments(e);var t=this._tokens.peek();while(this._flags.mode===v.Statement&&(!this._flags.if_block||!d(t,"else"))&&!this._flags.do_block)this.restore_mode();this._flags.import_block&&(this._flags.import_block=!1),this.print_token(e)},N.prototype.handle_string=function(e){(!e.text.startsWith("`")||0!==e.newlines||""!==e.whitespace_before||")"!==e.previous.text&&this._flags.last_token.type!==l.WORD)&&(this.start_of_statement(e)?this._output.space_before_token=!0:(this.handle_whitespace_and_comments(e),this._flags.last_token.type===l.RESERVED||this._flags.last_token.type===l.WORD||this._flags.inline_frame?this._output.space_before_token=!0:this._flags.last_token.type===l.COMMA||this._flags.last_token.type===l.START_EXPR||this._flags.last_token.type===l.EQUALS||this._flags.last_token.type===l.OPERATOR?this.start_of_object_property()||this.allow_wrap_or_preserved_newline(e):!e.text.startsWith("`")||this._flags.last_token.type!==l.END_EXPR||"]"!==e.previous.text&&")"!==e.previous.text||0!==e.newlines?this.print_newline():this._output.space_before_token=!0)),this.print_token(e)},N.prototype.handle_equals=function(e){this.start_of_statement(e)||this.handle_whitespace_and_comments(e),this._flags.declaration_statement&&(this._flags.declaration_assignment=!0),this._output.space_before_token=!0,this.print_token(e),this._output.space_before_token=!0},N.prototype.handle_comma=function(e){this.handle_whitespace_and_comments(e,!0),this.print_token(e),this._output.space_before_token=!0,this._flags.declaration_statement?(k(this._flags.parent.mode)&&(this._flags.declaration_assignment=!1),this._flags.declaration_assignment?(this._flags.declaration_assignment=!1,this.print_newline(!1,!0)):this._options.comma_first&&this.allow_wrap_or_preserved_newline(e)):this._flags.mode===v.ObjectLiteral||this._flags.mode===v.Statement&&this._flags.parent.mode===v.ObjectLiteral?(this._flags.mode===v.Statement&&this.restore_mode(),this._flags.inline_frame||this.print_newline()):this._options.comma_first&&this.allow_wrap_or_preserved_newline(e)},N.prototype.handle_operator=function(e){var t="*"===e.text&&(p(this._flags.last_token,["function","yield"])||r(this._flags.last_token.type,[l.START_BLOCK,l.COMMA,l.END_BLOCK,l.SEMICOLON])),n=r(e.text,["-","+"])&&(r(this._flags.last_token.type,[l.START_BLOCK,l.START_EXPR,l.EQUALS,l.OPERATOR])||r(this._flags.last_token.text,i)||","===this._flags.last_token.text);if(this.start_of_statement(e));else{var a=!t;this.handle_whitespace_and_comments(e,a)}if("*"!==e.text||this._flags.last_token.type!==l.DOT)if("::"!==e.text){if(this._flags.last_token.type===l.OPERATOR&&r(this._options.operator_position,f)&&this.allow_wrap_or_preserved_newline(e),":"===e.text&&this._flags.in_case)return this.print_token(e),this._flags.in_case=!1,this._flags.case_body=!0,void(this._tokens.peek().type!==l.START_BLOCK?(this.indent(),this.print_newline(),this._flags.case_block=!1):(this._flags.case_block=!0,this._output.space_before_token=!0));var s=!0,c=!0,u=!1;if(":"===e.text?0===this._flags.ternary_depth?s=!1:(this._flags.ternary_depth-=1,u=!0):"?"===e.text&&(this._flags.ternary_depth+=1),!n&&!t&&this._options.preserve_newlines&&r(e.text,o)){var d=":"===e.text,_=d&&u,b=d&&!u;switch(this._options.operator_position){case m.before_newline:return this._output.space_before_token=!b,this.print_token(e),d&&!_||this.allow_wrap_or_preserved_newline(e),void(this._output.space_before_token=!0);case m.after_newline:return this._output.space_before_token=!0,!d||_?this._tokens.peek().newlines?this.print_newline(!1,!0):this.allow_wrap_or_preserved_newline(e):this._output.space_before_token=!1,this.print_token(e),void(this._output.space_before_token=!0);case m.preserve_newline:return b||this.allow_wrap_or_preserved_newline(e),s=!(this._output.just_added_newline()||b),this._output.space_before_token=s,this.print_token(e),void(this._output.space_before_token=!0)}}if(t){this.allow_wrap_or_preserved_newline(e),s=!1;var g=this._tokens.peek();c=g&&r(g.type,[l.WORD,l.RESERVED])}else if("..."===e.text)this.allow_wrap_or_preserved_newline(e),s=this._flags.last_token.type===l.START_BLOCK,c=!1;else if(r(e.text,["--","++","!","~"])||n){if(this._flags.last_token.type!==l.COMMA&&this._flags.last_token.type!==l.START_EXPR||this.allow_wrap_or_preserved_newline(e),s=!1,c=!1,e.newlines&&("--"===e.text||"++"===e.text||"~"===e.text)){var y=p(this._flags.last_token,h)&&e.newlines;y&&(this._previous_flags.if_block||this._previous_flags.else_block)&&this.restore_mode(),this.print_newline(y,!0)}";"===this._flags.last_token.text&&k(this._flags.mode)&&(s=!0),this._flags.last_token.type===l.RESERVED?s=!0:this._flags.last_token.type===l.END_EXPR?s=!("]"===this._flags.last_token.text&&("--"===e.text||"++"===e.text)):this._flags.last_token.type===l.OPERATOR&&(s=r(e.text,["--","-","++","+"])&&r(this._flags.last_token.text,["--","-","++","+"]),r(e.text,["+","-"])&&r(this._flags.last_token.text,["--","++"])&&(c=!0)),(this._flags.mode!==v.BlockStatement||this._flags.inline_frame)&&this._flags.mode!==v.Statement||"{"!==this._flags.last_token.text&&";"!==this._flags.last_token.text||this.print_newline()}this._output.space_before_token=this._output.space_before_token||s,this.print_token(e),this._output.space_before_token=c}else this.print_token(e);else this.print_token(e)},N.prototype.handle_block_comment=function(e,t){return this._output.raw?(this._output.add_raw_token(e),void(e.directives&&"end"===e.directives.preserve&&(this._output.raw=this._options.test_output_raw))):e.directives?(this.print_newline(!1,t),this.print_token(e),"start"===e.directives.preserve&&(this._output.raw=!0),void this.print_newline(!1,!0)):n.newline.test(e.text)||e.newlines?void this.print_block_commment(e,t):(this._output.space_before_token=!0,this.print_token(e),void(this._output.space_before_token=!0))},N.prototype.print_block_commment=function(e,t){var n,a=g(e.text),s=!1,i=!1,o=e.whitespace_before,l=o.length;if(this.print_newline(!1,t),this.print_token_line_indentation(e),this._output.add_token(a[0]),this.print_newline(!1,t),a.length>1){for(a=a.slice(1),s=w(a,"*"),i=E(a,o),s&&(this._flags.alignment=1),n=0;n0&&this._indentLevel--},d.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,a=this._options.eol;"auto"===a&&(a="\n",e&&i.test(e||"")&&(a=e.match(i)[0])),e=e.replace(o,"\n");var d=e.match(/^[\t ]*/)[0];this._output=new t(this._options,d),this._input=new n(e),this._indentLevel=0,this._nestedLevel=0,this._ch=null;var p,h,_,m=0,f=!1,v=!1,b=!1,g=!1,y=!1,k=this._ch,w=!1;while(1){if(p=this._input.read(r),h=""!==p,_=k,this._ch=this._input.next(),"\\"===this._ch&&this._input.hasNext()&&(this._ch+=this._input.next()),k=this._ch,!this._ch)break;if("/"===this._ch&&"*"===this._input.peek()){this._output.add_new_line(),this._input.back();var E=this._input.read(c),N=s.get_directives(E);N&&"start"===N.ignore&&(E+=s.readIgnored(this._input)),this.print_string(E),this.eatWhitespace(!0),this._output.add_new_line()}else if("/"===this._ch&&"/"===this._input.peek())this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(u)),this.eatWhitespace(!0);else if("$"===this._ch){this.preserveSingleSpace(h),this.print_string(this._ch);var x=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);x.match(/[ :]$/)&&(x=this.eatString(": ").replace(/\s$/,""),this.print_string(x),this._output.space_before_token=!0),x=x.replace(/\s$/,""),0===m&&-1!==x.indexOf(":")&&(v=!0,this.indent())}else if("@"===this._ch)if(this.preserveSingleSpace(h),"{"===this._input.peek())this.print_string(this._ch+this.eatString("}"));else{this.print_string(this._ch);var S=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);S.match(/[ :]$/)&&(S=this.eatString(": ").replace(/\s$/,""),this.print_string(S),this._output.space_before_token=!0),S=S.replace(/\s$/,""),0===m&&-1!==S.indexOf(":")?(v=!0,this.indent()):S in this.NESTED_AT_RULE?(this._nestedLevel+=1,S in this.CONDITIONAL_GROUP_RULE&&(b=!0)):0!==m||v||(g=!0)}else if("#"===this._ch&&"{"===this._input.peek())this.preserveSingleSpace(h),this.print_string(this._ch+this.eatString("}"));else if("{"===this._ch)v&&(v=!1,this.outdent()),g=!1,b?(b=!1,f=this._indentLevel>=this._nestedLevel):f=this._indentLevel>=this._nestedLevel-1,this._options.newline_between_rules&&f&&this._output.previous_line&&"{"!==this._output.previous_line.item(-1)&&this._output.ensure_empty_line_above("/",","),this._output.space_before_token=!0,"expand"===this._options.brace_style?(this._output.add_new_line(),this.print_string(this._ch),this.indent(),this._output.set_indent(this._indentLevel)):("("===_?this._output.space_before_token=!1:","!==_&&this.indent(),this.print_string(this._ch)),this.eatWhitespace(!0),this._output.add_new_line();else if("}"===this._ch)this.outdent(),this._output.add_new_line(),"{"===_&&this._output.trim(!0),v&&(this.outdent(),v=!1),this.print_string(this._ch),f=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&"}"!==this._input.peek()&&this._output.add_new_line(!0),")"===this._input.peek()&&(this._output.trim(!0),"expand"===this._options.brace_style&&this._output.add_new_line(!0));else if(":"===this._ch){for(var V=0;V"!==this._ch&&"+"!==this._ch&&"~"!==this._ch||v||0!==m)if("]"===this._ch)this.print_string(this._ch);else if("["===this._ch)this.preserveSingleSpace(h),this.print_string(this._ch);else if("="===this._ch)this.eatWhitespace(),this.print_string("="),l.test(this._ch)&&(this._ch="");else if("!"!==this._ch||this._input.lookBack("\\")){var T='"'===_||"'"===_;this.preserveSingleSpace(T||h),this.print_string(this._ch),!this._output.just_added_newline()&&"\n"===this._input.peek()&&w&&this._output.add_new_line()}else this._output.space_before_token=!0,this.print_string(this._ch);else this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&l.test(this._ch)&&(this._ch=""))}var A=this._output.get_code(a);return A},el.Beautifier=d,el}function sl(){if(Yo)return Zo.exports;Yo=1;var e=al().Beautifier,t=nl().Options;function n(t,n){var a=new e(t,n);return a.beautify()}return Zo.exports=n,Zo.exports.defaultOptions=function(){return new t},Zo.exports}var il,ol={exports:{}},ll={},rl={};function cl(){if(il)return rl;il=1;var e=yo().Options;function t(t){e.call(this,t,"html"),1===this.templating.length&&"auto"===this.templating[0]&&(this.templating=["django","erb","handlebars","php"]),this.indent_inner_html=this._get_boolean("indent_inner_html"),this.indent_body_inner_html=this._get_boolean("indent_body_inner_html",!0),this.indent_head_inner_html=this._get_boolean("indent_head_inner_html",!0),this.indent_handlebars=this._get_boolean("indent_handlebars",!0),this.wrap_attributes=this._get_selection("wrap_attributes",["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"]),this.wrap_attributes_min_attrs=this._get_number("wrap_attributes_min_attrs",2),this.wrap_attributes_indent_size=this._get_number("wrap_attributes_indent_size",this.indent_size),this.extra_liners=this._get_array("extra_liners",["head","body","/html"]),this.inline=this._get_array("inline",["a","abbr","area","audio","b","bdi","bdo","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","keygen","label","map","mark","math","meter","noscript","object","output","progress","q","ruby","s","samp","select","small","span","strong","sub","sup","svg","template","textarea","time","u","var","video","wbr","text","acronym","big","strike","tt"]),this.inline_custom_elements=this._get_boolean("inline_custom_elements",!0),this.void_elements=this._get_array("void_elements",["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr","!doctype","?xml","basefont","isindex"]),this.unformatted=this._get_array("unformatted",[]),this.content_unformatted=this._get_array("content_unformatted",["pre","textarea"]),this.unformatted_content_delimiter=this._get_characters("unformatted_content_delimiter"),this.indent_scripts=this._get_selection("indent_scripts",["normal","keep","separate"])}return t.prototype=new e,rl.Options=t,rl}var ul,dl,pl,hl,_l={};function ml(){if(ul)return _l;ul=1;var e=Uo().Tokenizer,t=Uo().TOKEN,n=jo().Directives,a=zo().TemplatablePattern,s=Do().Pattern,i={TAG_OPEN:"TK_TAG_OPEN",TAG_CLOSE:"TK_TAG_CLOSE",ATTRIBUTE:"TK_ATTRIBUTE",EQUALS:"TK_EQUALS",VALUE:"TK_VALUE",COMMENT:"TK_COMMENT",TEXT:"TK_TEXT",UNKNOWN:"TK_UNKNOWN",START:t.START,RAW:t.RAW,EOF:t.EOF},o=new n(/<\!--/,/-->/),l=function(t,n){e.call(this,t,n),this._current_tag_name="";var i=new a(this._input).read_options(this._options),o=new s(this._input);if(this.__patterns={word:i.until(/[\n\r\t <]/),single_quote:i.until_after(/'/),double_quote:i.until_after(/"/),attribute:i.until(/[\n\r\t =>]|\/>/),element_name:i.until(/[\n\r\t >\/]/),handlebars_comment:o.starting_with(/{{!--/).until_after(/--}}/),handlebars:o.starting_with(/{{/).until_after(/}}/),handlebars_open:o.until(/[\n\r\t }]/),handlebars_raw_close:o.until(/}}/),comment:o.starting_with(//),cdata:o.starting_with(//),conditional_comment:o.starting_with(//),processing:o.starting_with(/<\?/).until_after(/\?>/)},this._options.indent_handlebars&&(this.__patterns.word=this.__patterns.word.exclude("handlebars")),this._unformatted_content_delimiter=null,this._options.unformatted_content_delimiter){var l=this._input.get_literal_regexp(this._options.unformatted_content_delimiter);this.__patterns.unformatted_content_delimiter=o.matching(l).until_after(l)}};return l.prototype=new e,l.prototype._is_comment=function(e){return!1},l.prototype._is_opening=function(e){return e.type===i.TAG_OPEN},l.prototype._is_closing=function(e,t){return e.type===i.TAG_CLOSE&&t&&((">"===e.text||"/>"===e.text)&&"<"===t.text[0]||"}}"===e.text&&"{"===t.text[0]&&"{"===t.text[1])},l.prototype._reset=function(){this._current_tag_name=""},l.prototype._get_next_token=function(e,t){var n=null;this._readWhitespace();var a=this._input.peek();return null===a?this._create_token(i.EOF,""):(n=n||this._read_open_handlebars(a,t),n=n||this._read_attribute(a,e,t),n=n||this._read_close(a,t),n=n||this._read_raw_content(a,e,t),n=n||this._read_content_word(a),n=n||this._read_comment_or_cdata(a),n=n||this._read_processing(a),n=n||this._read_open(a,t),n=n||this._create_token(i.UNKNOWN,this._input.next()),n)},l.prototype._read_comment_or_cdata=function(e){var t=null,n=null,a=null;if("<"===e){var s=this._input.peek(1);"!"===s&&(n=this.__patterns.comment.read(),n?(a=o.get_directives(n),a&&"start"===a.ignore&&(n+=o.readIgnored(this._input))):n=this.__patterns.cdata.read()),n&&(t=this._create_token(i.COMMENT,n),t.directives=a)}return t},l.prototype._read_processing=function(e){var t=null,n=null,a=null;if("<"===e){var s=this._input.peek(1);"!"!==s&&"?"!==s||(n=this.__patterns.conditional_comment.read(),n=n||this.__patterns.processing.read()),n&&(t=this._create_token(i.COMMENT,n),t.directives=a)}return t},l.prototype._read_open=function(e,t){var n=null,a=null;return t||"<"===e&&(n=this._input.next(),"/"===this._input.peek()&&(n+=this._input.next()),n+=this.__patterns.element_name.read(),a=this._create_token(i.TAG_OPEN,n)),a},l.prototype._read_open_handlebars=function(e,t){var n=null,a=null;return t||this._options.indent_handlebars&&"{"===e&&"{"===this._input.peek(1)&&("!"===this._input.peek(2)?(n=this.__patterns.handlebars_comment.read(),n=n||this.__patterns.handlebars.read(),a=this._create_token(i.COMMENT,n)):(n=this.__patterns.handlebars_open.read(),a=this._create_token(i.TAG_OPEN,n))),a},l.prototype._read_close=function(e,t){var n=null,a=null;return t&&("<"===t.text[0]&&(">"===e||"/"===e&&">"===this._input.peek(1))?(n=this._input.next(),"/"===e&&(n+=this._input.next()),a=this._create_token(i.TAG_CLOSE,n)):"{"===t.text[0]&&"}"===e&&"}"===this._input.peek(1)&&(this._input.next(),this._input.next(),a=this._create_token(i.TAG_CLOSE,"}}"))),a},l.prototype._read_attribute=function(e,t,n){var a=null,s="";if(n&&"<"===n.text[0])if("="===e)a=this._create_token(i.EQUALS,this._input.next());else if('"'===e||"'"===e){var o=this._input.next();o+='"'===e?this.__patterns.double_quote.read():this.__patterns.single_quote.read(),a=this._create_token(i.VALUE,o)}else s=this.__patterns.attribute.read(),s&&(a=t.type===i.EQUALS?this._create_token(i.VALUE,s):this._create_token(i.ATTRIBUTE,s));return a},l.prototype._is_content_unformatted=function(e){return-1===this._options.void_elements.indexOf(e)&&(-1!==this._options.content_unformatted.indexOf(e)||-1!==this._options.unformatted.indexOf(e))},l.prototype._read_raw_content=function(e,t,n){var a="";if(n&&"{"===n.text[0])a=this.__patterns.handlebars_raw_close.read();else if(t.type===i.TAG_CLOSE&&"<"===t.opened.text[0]&&"/"!==t.text[0]){var s=t.opened.text.substr(1).toLowerCase();if("script"===s||"style"===s){var o=this._read_comment_or_cdata(e);if(o)return o.type=i.TEXT,o;a=this._input.readUntil(new RegExp("","ig"))}else this._is_content_unformatted(s)&&(a=this._input.readUntil(new RegExp("","ig")))}return a?this._create_token(i.TEXT,a):null},l.prototype._read_content_word=function(e){var t="";if(this._options.unformatted_content_delimiter&&e===this._options.unformatted_content_delimiter[0]&&(t=this.__patterns.unformatted_content_delimiter.read()),t||(t=this.__patterns.word.read()),t)return this._create_token(i.TEXT,t)},_l.Tokenizer=l,_l.TOKEN=i,_l}function fl(){if(dl)return ll;dl=1;var e=cl().Options,t=ro().Output,n=ml().Tokenizer,a=ml().TOKEN,s=/\r\n|[\r\n]/,i=/\r\n|[\r\n]/g,o=function(e,n){this.indent_level=0,this.alignment_size=0,this.max_preserve_newlines=e.max_preserve_newlines,this.preserve_newlines=e.preserve_newlines,this._output=new t(e,n)};o.prototype.current_line_has_match=function(e){return this._output.current_line.has_match(e)},o.prototype.set_space_before_token=function(e,t){this._output.space_before_token=e,this._output.non_breaking_space=t},o.prototype.set_wrap_point=function(){this._output.set_indent(this.indent_level,this.alignment_size),this._output.set_wrap_point()},o.prototype.add_raw_token=function(e){this._output.add_raw_token(e)},o.prototype.print_preserved_newlines=function(e){var t=0;e.type!==a.TEXT&&e.previous.type!==a.TEXT&&(t=e.newlines?1:0),this.preserve_newlines&&(t=e.newlines0);return 0!==t},o.prototype.traverse_whitespace=function(e){return!(!e.whitespace_before&&!e.newlines)&&(this.print_preserved_newlines(e)||(this._output.space_before_token=!0),!0)},o.prototype.previous_token_wrapped=function(){return this._output.previous_token_wrapped},o.prototype.print_newline=function(e){this._output.add_new_line(e)},o.prototype.print_token=function(e){e.text&&(this._output.set_indent(this.indent_level,this.alignment_size),this._output.add_token(e.text))},o.prototype.indent=function(){this.indent_level++},o.prototype.get_full_indent=function(e){return e=this.indent_level+(e||0),e<1?"":this._output.get_indent_string(e)};var l=function(e){var t=null,n=e.next;while(n.type!==a.EOF&&e.closed!==n){if(n.type===a.ATTRIBUTE&&"type"===n.text){n.next&&n.next.type===a.EQUALS&&n.next.next&&n.next.next.type===a.VALUE&&(t=n.next.next.text);break}n=n.next}return t},r=function(e,t){var n=null,a=null;return t.closed?("script"===e?n="text/javascript":"style"===e&&(n="text/css"),n=l(t)||n,n.search("text/css")>-1?a="css":n.search(/module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/)>-1?a="javascript":n.search(/(text|application|dojo)\/(x-)?(html)/)>-1?a="html":n.search(/test\/null/)>-1&&(a="null"),a):null};function c(e,t){return-1!==t.indexOf(e)}function u(e,t,n){this.parent=e||null,this.tag=t?t.tag_name:"",this.indent_level=n||0,this.parser_token=t||null}function d(e){this._printer=e,this._current_frame=null}function p(t,n,a,s){this._source_text=t||"",n=n||{},this._js_beautify=a,this._css_beautify=s,this._tag_stack=null;var i=new e(n,"html");this._options=i,this._is_wrap_attributes_force="force"===this._options.wrap_attributes.substr(0,5),this._is_wrap_attributes_force_expand_multiline="force-expand-multiline"===this._options.wrap_attributes,this._is_wrap_attributes_force_aligned="force-aligned"===this._options.wrap_attributes,this._is_wrap_attributes_aligned_multiple="aligned-multiple"===this._options.wrap_attributes,this._is_wrap_attributes_preserve="preserve"===this._options.wrap_attributes.substr(0,8),this._is_wrap_attributes_preserve_aligned="preserve-aligned"===this._options.wrap_attributes}d.prototype.get_parser_token=function(){return this._current_frame?this._current_frame.parser_token:null},d.prototype.record_tag=function(e){var t=new u(this._current_frame,e,this._printer.indent_level);this._current_frame=t},d.prototype._try_pop_frame=function(e){var t=null;return e&&(t=e.parser_token,this._printer.indent_level=e.indent_level,this._current_frame=e.parent),t},d.prototype._get_frame=function(e,t){var n=this._current_frame;while(n){if(-1!==e.indexOf(n.tag))break;if(t&&-1!==t.indexOf(n.tag)){n=null;break}n=n.parent}return n},d.prototype.try_pop=function(e,t){var n=this._get_frame([e],t);return this._try_pop_frame(n)},d.prototype.indent_to_tag=function(e){var t=this._get_frame(e);t&&(this._printer.indent_level=t.indent_level)},p.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;"auto"===this._options.eol&&(t="\n",e&&s.test(e)&&(t=e.match(s)[0])),e=e.replace(i,"\n");var l=e.match(/^[\t ]*/)[0],r={text:"",type:""},c=new h,u=new o(this._options,l),p=new n(e,this._options).tokenize();this._tag_stack=new d(u);var _=null,m=p.next();while(m.type!==a.EOF)m.type===a.TAG_OPEN||m.type===a.COMMENT?(_=this._handle_tag_open(u,m,c,r,p),c=_):m.type===a.ATTRIBUTE||m.type===a.EQUALS||m.type===a.VALUE||m.type===a.TEXT&&!c.tag_complete?_=this._handle_inside_tag(u,m,c,r):m.type===a.TAG_CLOSE?_=this._handle_tag_close(u,m,c):m.type===a.TEXT?_=this._handle_text(u,m,c):u.add_raw_token(m),r=_,m=p.next();var f=u._output.get_code(t);return f},p.prototype._handle_tag_close=function(e,t,n){var a={text:t.text,type:t.type};return e.alignment_size=0,n.tag_complete=!0,e.set_space_before_token(t.newlines||""!==t.whitespace_before,!0),n.is_unformatted?e.add_raw_token(t):("<"===n.tag_start_char&&(e.set_space_before_token("/"===t.text[0],!0),this._is_wrap_attributes_force_expand_multiline&&n.has_wrapped_attrs&&e.print_newline(!1)),e.print_token(t)),!n.indent_content||n.is_unformatted||n.is_content_unformatted||(e.indent(),n.indent_content=!1),n.is_inline_element||n.is_unformatted||n.is_content_unformatted||e.set_wrap_point(),a},p.prototype._handle_inside_tag=function(e,t,n,s){var i=n.has_wrapped_attrs,o={text:t.text,type:t.type};return e.set_space_before_token(t.newlines||""!==t.whitespace_before,!0),n.is_unformatted?e.add_raw_token(t):"{"===n.tag_start_char&&t.type===a.TEXT?e.print_preserved_newlines(t)?(t.newlines=0,e.add_raw_token(t)):e.print_token(t):(t.type===a.ATTRIBUTE?e.set_space_before_token(!0):(t.type===a.EQUALS||t.type===a.VALUE&&t.previous.type===a.EQUALS)&&e.set_space_before_token(!1),t.type===a.ATTRIBUTE&&"<"===n.tag_start_char&&((this._is_wrap_attributes_preserve||this._is_wrap_attributes_preserve_aligned)&&(e.traverse_whitespace(t),i=i||0!==t.newlines),this._is_wrap_attributes_force&&n.attr_count>=this._options.wrap_attributes_min_attrs&&(s.type!==a.TAG_OPEN||this._is_wrap_attributes_force_expand_multiline)&&(e.print_newline(!1),i=!0)),e.print_token(t),i=i||e.previous_token_wrapped(),n.has_wrapped_attrs=i),o},p.prototype._handle_text=function(e,t,n){var a={text:t.text,type:"TK_CONTENT"};return n.custom_beautifier_name?this._print_custom_beatifier_text(e,t,n):n.is_unformatted||n.is_content_unformatted?e.add_raw_token(t):(e.traverse_whitespace(t),e.print_token(t)),a},p.prototype._print_custom_beatifier_text=function(e,t,n){var a=this;if(""!==t.text){var s,i=t.text,o=1,l="",r="";"javascript"===n.custom_beautifier_name&&"function"===typeof this._js_beautify?s=this._js_beautify:"css"===n.custom_beautifier_name&&"function"===typeof this._css_beautify?s=this._css_beautify:"html"===n.custom_beautifier_name&&(s=function(e,t){var n=new p(e,t,a._js_beautify,a._css_beautify);return n.beautify()}),"keep"===this._options.indent_scripts?o=0:"separate"===this._options.indent_scripts&&(o=-e.indent_level);var c=e.get_full_indent(o);if(i=i.replace(/\n[ \t]*$/,""),"html"!==n.custom_beautifier_name&&"<"===i[0]&&i.match(/^(|]]>)$/.exec(i);if(!u)return void e.add_raw_token(t);l=c+u[1]+"\n",i=u[4],u[5]&&(r=c+u[5]),i=i.replace(/\n[ \t]*$/,""),(u[2]||-1!==u[3].indexOf("\n"))&&(u=u[3].match(/[ \t]+$/),u&&(t.whitespace_before=u[0]))}if(i)if(s){var d=function(){this.eol="\n"};d.prototype=this._options.raw_options;var h=new d;i=s(c+i,h)}else{var _=t.whitespace_before;_&&(i=i.replace(new RegExp("\n("+_+")?","g"),"\n")),i=c+i.replace(/\n/g,"\n"+c)}l&&(i=i?l+i+"\n"+r:l+r),e.print_newline(!1),i&&(t.text=i,t.whitespace_before="",t.newlines=0,e.add_raw_token(t),e.print_newline(!0))}},p.prototype._handle_tag_open=function(e,t,n,s,i){var o=this._get_tag_open_token(t);if(!n.is_unformatted&&!n.is_content_unformatted||n.is_empty_element||t.type!==a.TAG_OPEN||o.is_start_tag?(e.traverse_whitespace(t),this._set_tag_position(e,t,o,n,s),o.is_inline_element||e.set_wrap_point(),e.print_token(t)):(e.add_raw_token(t),o.start_tag_token=this._tag_stack.try_pop(o.tag_name)),o.is_start_tag&&this._is_wrap_attributes_force){var l,r=0;do{l=i.peek(r),l.type===a.ATTRIBUTE&&(o.attr_count+=1),r+=1}while(l.type!==a.EOF&&l.type!==a.TAG_CLOSE)}return(this._is_wrap_attributes_force_aligned||this._is_wrap_attributes_aligned_multiple||this._is_wrap_attributes_preserve_aligned)&&(o.alignment_size=t.text.length+1),o.tag_complete||o.is_unformatted||(e.alignment_size=o.alignment_size),o};var h=function(e,t){if(this.parent=e||null,this.text="",this.type="TK_TAG_OPEN",this.tag_name="",this.is_inline_element=!1,this.is_unformatted=!1,this.is_content_unformatted=!1,this.is_empty_element=!1,this.is_start_tag=!1,this.is_end_tag=!1,this.indent_content=!1,this.multiline_content=!1,this.custom_beautifier_name=null,this.start_tag_token=null,this.attr_count=0,this.has_wrapped_attrs=!1,this.alignment_size=0,this.tag_complete=!1,this.tag_start_char="",this.tag_check="",t){var n;this.tag_start_char=t.text[0],this.text=t.text,"<"===this.tag_start_char?(n=t.text.match(/^<([^\s>]*)/),this.tag_check=n?n[1]:""):(n=t.text.match(/^{{~?(?:[\^]|#\*?)?([^\s}]+)/),this.tag_check=n?n[1]:"",(t.text.startsWith("{{#>")||t.text.startsWith("{{~#>"))&&">"===this.tag_check[0]&&(">"===this.tag_check&&null!==t.next?this.tag_check=t.next.text.split(" ")[0]:this.tag_check=t.text.split(">")[1])),this.tag_check=this.tag_check.toLowerCase(),t.type===a.COMMENT&&(this.tag_complete=!0),this.is_start_tag="/"!==this.tag_check.charAt(0),this.tag_name=this.is_start_tag?this.tag_check:this.tag_check.substr(1),this.is_end_tag=!this.is_start_tag||t.closed&&"/>"===t.closed.text;var s=2;"{"===this.tag_start_char&&this.text.length>=3&&"~"===this.text.charAt(2)&&(s=3),this.is_end_tag=this.is_end_tag||"{"===this.tag_start_char&&(this.text.length<3||/[^#\^]/.test(this.text.charAt(s)))}else this.tag_complete=!0};p.prototype._get_tag_open_token=function(e){var t=new h(this._tag_stack.get_parser_token(),e);return t.alignment_size=this._options.wrap_attributes_indent_size,t.is_end_tag=t.is_end_tag||c(t.tag_check,this._options.void_elements),t.is_empty_element=t.tag_complete||t.is_start_tag&&t.is_end_tag,t.is_unformatted=!t.tag_complete&&c(t.tag_check,this._options.unformatted),t.is_content_unformatted=!t.is_empty_element&&c(t.tag_check,this._options.content_unformatted),t.is_inline_element=c(t.tag_name,this._options.inline)||this._options.inline_custom_elements&&t.tag_name.includes("-")||"{"===t.tag_start_char,t},p.prototype._set_tag_position=function(e,t,n,s,i){if(n.is_empty_element||(n.is_end_tag?n.start_tag_token=this._tag_stack.try_pop(n.tag_name):(this._do_optional_end_element(n)&&(n.is_inline_element||e.print_newline(!1)),this._tag_stack.record_tag(n),"script"!==n.tag_name&&"style"!==n.tag_name||n.is_unformatted||n.is_content_unformatted||(n.custom_beautifier_name=r(n.tag_check,t)))),c(n.tag_check,this._options.extra_liners)&&(e.print_newline(!1),e._output.just_added_blankline()||e.print_newline(!0)),n.is_empty_element){if("{"===n.tag_start_char&&"else"===n.tag_check){this._tag_stack.indent_to_tag(["if","unless","each"]),n.indent_content=!0;var o=e.current_line_has_match(/{{#if/);o||e.print_newline(!1)}"!--"===n.tag_name&&i.type===a.TAG_CLOSE&&s.is_end_tag&&-1===n.text.indexOf("\n")||(n.is_inline_element||n.is_unformatted||e.print_newline(!1),this._calcluate_parent_multiline(e,n))}else if(n.is_end_tag){var l=!1;l=n.start_tag_token&&n.start_tag_token.multiline_content,l=l||!n.is_inline_element&&!(s.is_inline_element||s.is_unformatted)&&!(i.type===a.TAG_CLOSE&&n.start_tag_token===s)&&"TK_CONTENT"!==i.type,(n.is_content_unformatted||n.is_unformatted)&&(l=!1),l&&e.print_newline(!1)}else n.indent_content=!n.custom_beautifier_name,"<"===n.tag_start_char&&("html"===n.tag_name?n.indent_content=this._options.indent_inner_html:"head"===n.tag_name?n.indent_content=this._options.indent_head_inner_html:"body"===n.tag_name&&(n.indent_content=this._options.indent_body_inner_html)),n.is_inline_element||n.is_unformatted||"TK_CONTENT"===i.type&&!n.is_content_unformatted||e.print_newline(!1),this._calcluate_parent_multiline(e,n)},p.prototype._calcluate_parent_multiline=function(e,t){!t.parent||!e._output.just_added_newline()||(t.is_inline_element||t.is_unformatted)&&t.parent.is_inline_element||(t.parent.multiline_content=!0)};var _=["address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","main","menu","nav","ol","p","pre","section","table","ul"],m=["a","audio","del","ins","map","noscript","video"];return p.prototype._do_optional_end_element=function(e){var t=null;if(!e.is_empty_element&&e.is_start_tag&&e.parent){if("body"===e.tag_name)t=t||this._tag_stack.try_pop("head");else if("li"===e.tag_name)t=t||this._tag_stack.try_pop("li",["ol","ul","menu"]);else if("dd"===e.tag_name||"dt"===e.tag_name)t=t||this._tag_stack.try_pop("dt",["dl"]),t=t||this._tag_stack.try_pop("dd",["dl"]);else if("p"===e.parent.tag_name&&-1!==_.indexOf(e.tag_name)){var n=e.parent.parent;n&&-1!==m.indexOf(n.tag_name)||(t=t||this._tag_stack.try_pop("p"))}else"rp"===e.tag_name||"rt"===e.tag_name?(t=t||this._tag_stack.try_pop("rt",["ruby","rtc"]),t=t||this._tag_stack.try_pop("rp",["ruby","rtc"])):"optgroup"===e.tag_name?t=t||this._tag_stack.try_pop("optgroup",["select"]):"option"===e.tag_name?t=t||this._tag_stack.try_pop("option",["select","datalist","optgroup"]):"colgroup"===e.tag_name?t=t||this._tag_stack.try_pop("caption",["table"]):"thead"===e.tag_name?(t=t||this._tag_stack.try_pop("caption",["table"]),t=t||this._tag_stack.try_pop("colgroup",["table"])):"tbody"===e.tag_name||"tfoot"===e.tag_name?(t=t||this._tag_stack.try_pop("caption",["table"]),t=t||this._tag_stack.try_pop("colgroup",["table"]),t=t||this._tag_stack.try_pop("thead",["table"]),t=t||this._tag_stack.try_pop("tbody",["table"])):"tr"===e.tag_name?(t=t||this._tag_stack.try_pop("caption",["table"]),t=t||this._tag_stack.try_pop("colgroup",["table"]),t=t||this._tag_stack.try_pop("tr",["table","thead","tbody","tfoot"])):"th"!==e.tag_name&&"td"!==e.tag_name||(t=t||this._tag_stack.try_pop("td",["table","thead","tbody","tfoot","tr"]),t=t||this._tag_stack.try_pop("th",["table","thead","tbody","tfoot","tr"]));return e.parent=this._tag_stack.get_parser_token(),t}},ll.Beautifier=p,ll}function vl(){if(pl)return ol.exports;pl=1;var e=fl().Beautifier,t=cl().Options;function n(t,n,a,s){var i=new e(t,n,a,s);return i.beautify()}return ol.exports=n,ol.exports.defaultOptions=function(){return new t},ol.exports}function bl(){if(hl)return so;hl=1;var e=Ho(),t=sl(),n=vl();function a(a,s,i,o){return i=i||e,o=o||t,n(a,s,i,o)}return a.defaultOptions=n.defaultOptions,so.js=e,so.css=t,so.html=a,so}(function(e){function t(e,t,n){var a=function(t,n){return e.js_beautify(t,n)};return a.js=e.js_beautify,a.css=t.css_beautify,a.html=n.html_beautify,a.js_beautify=e.js_beautify,a.css_beautify=t.css_beautify,a.html_beautify=n.html_beautify,a}(function(e){var n=bl();n.js_beautify=n.js,n.css_beautify=n.css,n.html_beautify=n.html,e.exports=t(n,n,n)})(e)})(ao);var gl=ao.exports,yl=to(gl),kl=function(){function e(e){var t=this;this.isDisabled=function(){var e=["BUTTON","COMMAND","FIELDSET","KEYGEN","OPTGROUP","OPTION","SELECT","TEXTAREA","INPUT"],n=void 0!==t.attributes().disabled,a=Hi(t.element)&&e.includes(t.element.tagName);return n&&a},this.wrapperElement=e}return Object.defineProperty(e.prototype,"element",{get:function(){return this.wrapperElement},enumerable:!1,configurable:!0}),e.prototype.findAllDOMElements=function(e){var t=this.getRootNodes().filter(Hi);if(0===t.length)return[];var n=Ks([],t.filter((function(t){return t.matches(e)})),!0);return t.forEach((function(t){n.push.apply(n,Array.from(t.querySelectorAll(e)))})),n},e.prototype.find=function(e){if("object"===typeof e&&"ref"in e){var t=this.getCurrentComponent();if(!t)return Wi("DOMWrapper");var n=t.refs[e.ref];return Array.isArray(n)&&(n=n.length?n[0]:void 0),n instanceof Node?Yi(n):Wi("DOMWrapper")}var a=this.findAll(e);return a.length>0?a[0]:Wi("DOMWrapper")},e.prototype.findComponent=function(e){var t=this.getCurrentComponent();if(!t)return Wi("VueWrapper");if("object"===typeof e&&"ref"in e){var n=t.refs[e.ref];return Array.isArray(n)&&(n=n.length?n[0]:void 0),!n||n instanceof HTMLElement?Wi("VueWrapper"):Zi(null,n)}if(ji(t.vnode,e)&&this.element.contains(t.vnode.el))return Zi(null,t.subTree.component?t.subTree.component.proxy:t.proxy);var a=this.findAllComponents(e)[0];return null!==a&&void 0!==a?a:Wi("VueWrapper")},e.prototype.findAllComponents=function(e){var t=this.getCurrentComponent();if(!t)return[];var n=qi(t.subTree,e);return n.map((function(e){return e.proxy?Zi(null,e.proxy):Yi(e.vnode.el)}))},e.prototype.html=function(e){var t=this.getRootNodes().map((function(e){return eo(e)}));return(null===e||void 0===e?void 0:e.raw)?t.join(""):t.map((function(e){return yl.html(e,{unformatted:["code","pre","em","strong","span"],indent_inner_html:!0,indent_size:2,inline_custom_elements:!1})})).join("\n")},e.prototype.classes=function(e){var t=Hi(this.element)?Array.from(this.element.classList):[];return e?t.includes(e):t},e.prototype.attributes=function(e){var t={};if(Hi(this.element))for(var n=Array.from(this.element.attributes),a=0,s=n;a element.');return e===t.checked?[2]:(t.checked=e,this.trigger("input"),[2,this.trigger("change")])}))}))},t.prototype.setValue=function(e){var t=this.element,n=t.tagName,a=this.attributes().type;if("OPTION"===n)return this.setSelected(),Promise.resolve();if("INPUT"===n&&"checkbox"===a)return this.setChecked(e);if("INPUT"===n&&"radio"===a)return this.setChecked(e);if("SELECT"===n){if(Array.isArray(e))for(var s=t,i=0;i'.concat(n,""));var i=xs("".concat(n,""),{mode:"function",prefixIdentifiers:!1}).code,o=new Function("Vue",i),l=o(t);return function(e){void 0===e&&(e={});var t=l(e),n=Object.keys(t.children)[0];return t.children[n](e)}}Ji(Bi.VueWrapper,(function(e,t,n){return new Il(e,t,n)}));var Ll=function(e){return e.__isTeleport},Dl=function(e){return e.__isKeepAlive},Bl=function(e,t,n){return!!(!n||e.component===t&&!(null===n||void 0===n?void 0:n.parent)||e.functional&&e.functional===t)},Ul=function(e){var t=e.rootComponents,n=e.transformers,a=new WeakMap;return function(e,s){var i=e[0],o=e[1],l=e[2],r=e.slice(3);if(!Ys(i))return Ks([i,o,l],r,!0);var c=i,u=a.get(i);if(u&&!Bl(t,c,s)&&!Ll(i)&&!Dl(i))return Ks([u,o,l],r,!0);var d=n.reduce((function(e,t){return t(e,s)}),c);return i!==d&&(a.set(i,d),Ei({source:i,stub:d}),Ll(i)||Dl(i))?Ks([d,o,function(){return l}],r,!0):Ks([d,o,l],r,!0)}},Ml=function(e){var t=e;return Object.keys(t).reduce((function(e,n){var a,s,i,o;return"symbol"===typeof t[n]?Ps(Ps({},e),(a={},a[n]=[null===(o=t[n])||void 0===o?void 0:o.toString()],a)):"function"===typeof t[n]?Ps(Ps({},e),(s={},s[n]=["[Function]"],s)):Ps(Ps({},e),(i={},i[n]=t[n],i))}),{})},Pl=function(e){return e.replace(/-/,"").toUpperCase()},jl=function(e){return e.replace(/(^\w|-\w)/g,Pl)},$l={teleport:Ll,"keep-alive":Dl,transition:function(e){return e===a.Transition||e===a.BaseTransition},"transition-group":function(e){return e===a.TransitionGroup}},Kl=function(e,t,n,a){var s=jl(e);if(t(n)&&(s in a||e in a)){if(e in a&&!1===a[e])return n;if(s in a&&!1===a[s])return n;if(!0===a[e]||!0===a[s])return Fl({name:e,type:n,renderStubDefaultSlot:!0})}},Fl=function(e){var t=e.name,n=e.type,s=e.renderStubDefaultSlot,i="anonymous-stub",o=t?"".concat(Ti(t),"-stub"):i,l=n&&Li(n)||{},r=(0,a.defineComponent)({name:t||i,props:l.props||{},model:l.model,setup:function(e,t){var n=t.slots;return function(){var t=Ml(e);return s&&n.default?(0,a.h)(o,t,n.default({})):(0,a.h)(o,t)}}}),c=n.__asyncLoader;return c&&c().then((function(){Ei({source:n.__asyncResolved,stub:r})})),r},ql=function(e,t){for(var n=0,a=Object.entries(t);n{it("should display URL placeholder",(()=>{const e=ar(ir["default"],{props:{mode:"edit",namespace:"whatever"}}),t="https://127.0.0.1:8000",n=e.find('[data-testid="loki-url"]').attributes("placeholder");expect(n).toBe(t)}))}))},85992:function(e,t,n){"use strict";n.d(t,{A:function(){return x}});var a=n(9274);const s={class:"row"},i={key:0,class:"col span-12"},o={class:"helper-text mb-10"},l={class:"row mb-20"},r={class:"col span-6"},c={class:"col span-6"},u={class:"row mb-20"},d={class:"col span-6"},p={class:"col span-6"},h={key:0,class:"row"},_={class:"col span-6"};function m(e,t,n,m,f,v){const b=(0,a.resolveComponent)("t"),g=(0,a.resolveComponent)("UnitInput");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[n.showTip?((0,a.openBlock)(),(0,a.createElementBlock)("div",i,[(0,a.createElementVNode)("p",o,[n.mode===f.viewMode?((0,a.openBlock)(),(0,a.createBlock)(b,{key:0,k:"containerResourceLimit.helpTextDetail"})):((0,a.openBlock)(),(0,a.createBlock)(b,{key:1,k:"containerResourceLimit.helpText"}))])])):(0,a.createCommentVNode)("",!0)]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("span",r,[(0,a.createVNode)(g,{value:f.requestsCpu,"onUpdate:value":[t[0]||(t[0]=e=>f.requestsCpu=e),v.updateLimits],placeholder:e.t("containerResourceLimit.cpuPlaceholder"),label:e.t("containerResourceLimit.requestsCpu"),mode:n.mode,"input-exponent":-1,"output-modifier":!0,"base-unit":e.t("suffix.cpus"),"data-testid":"cpu-reservation"},null,8,["value","placeholder","label","mode","base-unit","onUpdate:value"])]),(0,a.createElementVNode)("span",c,[(0,a.createVNode)(g,{value:f.requestsMemory,"onUpdate:value":[t[1]||(t[1]=e=>f.requestsMemory=e),v.updateLimits],placeholder:e.t("containerResourceLimit.memPlaceholder"),label:e.t("containerResourceLimit.requestsMemory"),mode:n.mode,"input-exponent":2,increment:1024,"output-modifier":!0,"data-testid":"memory-reservation"},null,8,["value","placeholder","label","mode","onUpdate:value"])])]),(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("span",d,[(0,a.createVNode)(g,{value:f.limitsCpu,"onUpdate:value":[t[2]||(t[2]=e=>f.limitsCpu=e),v.updateLimits],placeholder:e.t("containerResourceLimit.cpuPlaceholder"),label:e.t("containerResourceLimit.limitsCpu"),mode:n.mode,"input-exponent":-1,"output-modifier":!0,"base-unit":e.t("suffix.cpus"),"data-testid":"cpu-limit"},null,8,["value","placeholder","label","mode","base-unit","onUpdate:value"])]),(0,a.createElementVNode)("span",p,[(0,a.createVNode)(g,{value:f.limitsMemory,"onUpdate:value":[t[3]||(t[3]=e=>f.limitsMemory=e),v.updateLimits],placeholder:e.t("containerResourceLimit.memPlaceholder"),label:e.t("containerResourceLimit.limitsMemory"),mode:n.mode,"input-exponent":2,increment:1024,"output-modifier":!0,"data-testid":"memory-limit"},null,8,["value","placeholder","label","mode","onUpdate:value"])])]),n.handleGpuLimit?((0,a.openBlock)(),(0,a.createElementBlock)("div",h,[(0,a.createElementVNode)("span",_,[(0,a.createVNode)(g,{value:f.limitsGpu,"onUpdate:value":[t[4]||(t[4]=e=>f.limitsGpu=e),v.updateLimits],placeholder:e.t("containerResourceLimit.gpuPlaceholder"),label:e.t("containerResourceLimit.limitsGpu"),mode:n.mode,"base-unit":e.t("suffix.gpus"),"data-testid":"gpu-limit"},null,8,["value","placeholder","label","mode","base-unit","onUpdate:value"])])])):(0,a.createCommentVNode)("",!0)])}var f=n(3514),v=n.n(f),b=n(77290),g=n(2841),y=n(76978),k=n(14220),w={emits:["update:value"],components:{UnitInput:b.A},props:{mode:{type:String,default:"create"},namespace:{type:Object,default:null},value:{type:Object,default:()=>({})},handleGpuLimit:{type:Boolean,default:!0},registerBeforeHook:{type:Function,default:null},showTip:{type:Boolean,default:!0}},data(){const{limitsCpu:e,limitsMemory:t,requestsCpu:n,requestsMemory:a,limitsGpu:s}=this.value;return{limitsCpu:e,limitsMemory:t,requestsCpu:n,requestsMemory:a,limitsGpu:s,viewMode:k.nW}},watch:{value(){const{limitsCpu:e,limitsMemory:t,requestsCpu:n,requestsMemory:a,limitsGpu:s}=this.value;this.limitsCpu=e,this.limitsMemory=t,this.requestsCpu=n,this.requestsMemory=a,this.limitsGpu=s}},computed:{detailTopColumns(){return[{title:this.$store.getters["i18n/t"]("generic.created"),name:"created"}]}},created(){this?.namespace?.id&&this.initLimits(),this.registerBeforeHook&&this.registerBeforeHook(this.updateBeforeSave)},methods:{updateLimits(){const{limitsCpu:e,limitsMemory:t,requestsCpu:n,requestsMemory:a,limitsGpu:s}=this;this.$emit("update:value",(0,y.nY)({limitsCpu:e,limitsMemory:t,requestsCpu:n,limitsGpu:s,requestsMemory:a}))},updateBeforeSave(e){const{limitsCpu:t,limitsMemory:n,requestsCpu:a,requestsMemory:s,limitsGpu:i}=this,o=this.namespace,l=(0,y.nY)({limitsCpu:t,limitsMemory:n,requestsCpu:a,limitsGpu:i,requestsMemory:s});o&&o.setAnnotation(g.$E,JSON.stringify(l))},initLimits(){const e=this.namespace,t=e?.metadata?.annotations[g.$E];if(!v()(t)&&"null"!==t){const{limitsCpu:e,limitsMemory:n,requestsCpu:a,requestsMemory:s,limitsGpu:i}=JSON.parse(t);this.limitsCpu=e,this.limitsMemory=n,this.requestsCpu=a,this.requestsMemory=s,this.limitsGpu=i}}}},E=n(47433);const N=(0,E.A)(w,[["render",m]]);var x=N},96413:function(e,t,n){"use strict";n.d(t,{A:function(){return r}});var a=n(9274);function s(e,t,n,s,i,o){const l=(0,a.resolveComponent)("t"),r=(0,a.resolveComponent)("router-link");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.renderSlot)(e.$slots,"prefix",{},(()=>[n.prefixLabel?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0,k:n.prefixLabel,raw:!0},null,8,["k"])):(0,a.createCommentVNode)("",!0),(0,a.createTextVNode)(" "+(0,a.toDisplayString)(n.prefix),1)])),(0,a.createVNode)(r,{to:n.to,target:n.target},{default:(0,a.withCtx)((()=>[(0,a.renderSlot)(e.$slots,"middle",{},(()=>[n.middleLabel?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0,k:n.middleLabel,raw:!0},null,8,["k"])):(0,a.createCommentVNode)("",!0),(0,a.createTextVNode)(" "+(0,a.toDisplayString)(n.middle),1)]))])),_:3},8,["to","target"]),(0,a.renderSlot)(e.$slots,"suffix",{},(()=>[n.suffixLabel?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0,k:n.suffixLabel,raw:!0},null,8,["k"])):(0,a.createCommentVNode)("",!0),(0,a.createTextVNode)(" "+(0,a.toDisplayString)(n.suffix),1)]))])}var i={props:{to:{type:[String,Object],required:!0},prefix:{type:String,default:""},suffix:{type:String,default:""},middle:{type:String,default:""},prefixLabel:{type:String,default:""},suffixLabel:{type:String,default:""},middleLabel:{type:String,default:""},target:{type:String,default:"self"}}},o=n(47433);const l=(0,o.A)(i,[["render",s]]);var r=l},26337:function(e,t,n){"use strict";n.d(t,{A:function(){return k}});var a=n(9274);const s={key:0,class:"grid"},i={key:0},o={class:"deploys-os-label"},l={key:1},r={class:"os-incompatible-label"},c={class:"logo"},u={class:"name"},d={key:3,class:"description"},p={key:1,class:"m-50 text-center"};function h(e,t,n,h,_,m){const f=(0,a.resolveComponent)("LazyImage"),v=(0,a.resolveDirective)("t");return n.rows.length?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(n.rows,((t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.asLink?"a":"div"),{key:m.get(t,n.keyField),role:n.asLink?"link":null,"aria-disabled":!(!n.asLink||!0!==m.get(t,n.disabledField))||null,"aria-label":m.get(t,n.nameField),tabindex:!0===m.get(t,n.disabledField)?-1:0,href:n.asLink?m.get(t,n.linkField):null,target:m.get(t,n.targetField),rel:n.rel,class:(0,a.normalizeClass)(["item",{"has-description":!!m.get(t,n.descriptionField),"has-side-label":!!m.get(t,n.sideLabelField),[n.colorFor(t,s)]:!0,disabled:!0===m.get(t,n.disabledField)}]),"data-testid":n.componentTestid+"-"+m.get(t,n.nameField),onClick:e=>m.select(t,s),onKeyup:(0,a.withKeys)((e=>m.select(t,s)),["enter","space"])},{default:(0,a.withCtx)((()=>[(0,a.createElementVNode)("div",{class:(0,a.normalizeClass)(["side-label",{indicator:!0}])}),t.deploysOnWindows?((0,a.openBlock)(),(0,a.createElementBlock)("div",i,[(0,a.createElementVNode)("label",o,(0,a.toDisplayString)(e.t("catalog.charts.deploysOnWindows")),1)])):(0,a.createCommentVNode)("",!0),t.windowsIncompatible?((0,a.openBlock)(),(0,a.createElementBlock)("div",l,[(0,a.createElementVNode)("label",r,(0,a.toDisplayString)(e.t("catalog.charts.windowsIncompatible")),1)])):(0,a.createCommentVNode)("",!0),m.get(t,n.sideLabelField)?((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:2,class:(0,a.normalizeClass)(["side-label",{indicator:!1}])},[(0,a.createElementVNode)("label",null,(0,a.toDisplayString)(m.get(t,n.sideLabelField)),1)])):(0,a.createCommentVNode)("",!0),(0,a.createElementVNode)("div",c,[t.iconClass?((0,a.openBlock)(),(0,a.createElementBlock)("i",{key:0,class:(0,a.normalizeClass)(t.iconClass)},null,2)):((0,a.openBlock)(),(0,a.createBlock)(f,{key:1,src:m.get(t,n.iconField)},null,8,["src"]))]),(0,a.createElementVNode)("h4",u,(0,a.toDisplayString)(m.get(t,n.nameField)),1),m.get(t,n.descriptionField)?((0,a.openBlock)(),(0,a.createElementBlock)("div",d,(0,a.toDisplayString)(m.get(t,n.descriptionField)),1)):(0,a.createCommentVNode)("",!0)])),_:2},1064,["role","aria-disabled","aria-label","tabindex","href","target","rel","data-testid","class","onClick","onKeyup"])))),128))])):((0,a.openBlock)(),(0,a.createElementBlock)("div",p,[(0,a.withDirectives)((0,a.createElementVNode)("h1",null,null,512),[[v,n.noDataKey]])]))}var _=n(48577),m=n(76978),f=n(56005),v=n.n(f),b={emits:["clicked"],components:{LazyImage:_.A},props:{rows:{type:Array,required:!0},keyField:{type:String,default:"key"},iconField:{type:String,default:"icon"},nameField:{type:String,default:"name"},descriptionField:{type:String,default:"description"},sideLabelField:{type:String,default:"sideLabel"},disabledField:{type:String,default:"disabled"},asLink:{type:Boolean,default:!1},linkField:{type:String,default:"link"},targetField:{type:String,default:"target"},rel:{type:String,default:"noopener noreferrer nofollow"},noDataKey:{type:String,default:"sortableTable.noRows"},colorFor:{type:Function,default:(e,t)=>"color"+(t%8+1)},componentTestid:{type:String,default:"select-icon-grid"}},methods:{get:m.Jt,isDisabled(e){return!0===(0,m.Jt)(this.rows[e],this.disabledField)},select(e,t){this.isDisabled(t)||this.$emit("clicked",e,t)},capitalize:v()}},g=(n(32015),n(47433));const y=(0,g.A)(b,[["render",h],["__scopeId","data-v-c15e59a6"]]);var k=y},29349:function(e,t,n){"use strict";n.d(t,{A:function(){return u}});var a=n(9274);const s={class:"tip"},i={class:"text"};function o(e,t,n,o,l,r){return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("span",{class:(0,a.normalizeClass)(["my-icon",n.icon])},null,2),(0,a.renderSlot)(e.$slots,"default",{},(()=>[(0,a.createElementVNode)("span",i,(0,a.toDisplayString)(n.text),1)]),!0)])}var l={props:{icon:{type:String,default:""},text:{type:String,default:""}}},r=(n(6458),n(47433));const c=(0,r.A)(l,[["render",o],["__scopeId","data-v-491e4180"]]);var u=c},1050:function(e,t,n){"use strict";n.d(t,{A:function(){return u}});var a=n(9274);function s(e,t,n,s,i,o){const l=(0,a.resolveComponent)("Select"),r=(0,a.resolveComponent)("ArrayList");return(0,a.openBlock)(),(0,a.createBlock)(r,(0,a.mergeProps)(n.arrayListProps,{value:n.value,class:"array-list-select","add-allowed":o.addAllowed||n.loading,loading:n.loading,defaultAddValue:o.defaultAddValue,disabled:n.disabled,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))}),{columns:(0,a.withCtx)((e=>[(0,a.createVNode)(l,(0,a.mergeProps)({value:e.row.value},n.selectProps,{options:o.calculateOptions(e.row.value),"get-option-label":o.getOptionLabel,"onUpdate:value":t=>o.updateRow(e.i,t)}),null,16,["value","options","get-option-label","onUpdate:value"])])),_:1},16,["value","add-allowed","loading","defaultAddValue","disabled"])}var i=n(22133),o=n(18918),l={emits:["update:value"],components:{ArrayList:i.A,Select:o.A},props:{value:{type:Array,required:!0},options:{default:null,type:Array},selectProps:{type:Object,default:null},arrayListProps:{type:Object,default:null},enableDefaultAddValue:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!0}},computed:{filteredOptions(){return this.options.filter((e=>!this.value.includes(e.value)))},addAllowed(){return this.arrayListProps?.addAllowed||this.filteredOptions.length>0},defaultAddValue(){return this.enableDefaultAddValue?this.options[0]?.value:""},getOptionLabel(){return this.selectProps?.getOptionLabel?e=>this.selectProps?.getOptionLabel(e)||e:void 0}},methods:{updateRow(e,t){this.value.splice(e,1,t),this.$emit("update:value",this.value)},calculateOptions(e){const t=this.options.find((t=>t.value===e));return t?[t,...this.filteredOptions]:this.filteredOptions}}},r=(n(97362),n(47433));const c=(0,r.A)(l,[["render",s],["__scopeId","data-v-313aeca6"]]);var u=c},31001:function(e,t,n){"use strict";n.d(t,{A:function(){return C},h:function(){return A}});var a=n(9274);function s(e,t,n,s,i,o){const l=(0,a.resolveComponent)("MembershipEditor");return(0,a.openBlock)(),(0,a.createBlock)(l,{ref:"editor","add-member-dialog-name":"AddProjectMemberDialog","modal-sticky":!0,"default-binding-handler":o.defaultBindingHandler,type:i.NORMAN.PROJECT_ROLE_TEMPLATE_BINDING,mode:n.mode,"parent-key":"projectId","parent-id":n.parentId},null,8,["default-binding-handler","type","mode","parent-id"])}var i=n(35664),o=n(14220);const l={class:"box mb-0"},r={class:"column-headers row"},c={class:"col span-6"},u={class:"text-label"},d={class:"col span-6"},p={class:"text-label"},h={class:"columns row"},_={class:"col span-6"},m={class:"col span-6 role"},f={key:0},v=["disabled","onClick"];function b(e,t,n,s,i,o){const b=(0,a.resolveComponent)("Loading"),g=(0,a.resolveComponent)("Principal"),y=(0,a.resolveComponent)("ArrayList");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(b,{key:0})):((0,a.openBlock)(),(0,a.createBlock)(y,{key:1,value:i.bindings,"onUpdate:value":t[1]||(t[1]=e=>i.bindings=e),mode:n.mode,"show-header":!0},{"column-headers":(0,a.withCtx)((()=>[(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("label",u,(0,a.toDisplayString)(e.t("membershipEditor.user")),1)]),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("label",p,(0,a.toDisplayString)(e.t("membershipEditor.role")),1)])])])])),columns:(0,a.withCtx)((({row:e})=>[(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("div",_,[(0,a.createVNode)(g,{value:e.value.principalId},null,8,["value"])]),(0,a.createElementVNode)("div",m,(0,a.toDisplayString)(e.value.roleDisplay),1)])])),add:(0,a.withCtx)((()=>[(0,a.createElementVNode)("button",{type:"button",class:"btn role-primary mt-10",onClick:t[0]||(t[0]=(...e)=>o.addMember&&o.addMember(...e))},(0,a.toDisplayString)(e.t("generic.add")),1)])),"remove-button":(0,a.withCtx)((({remove:t,i:n})=>[o.isCreate&&0===n||o.isView?((0,a.openBlock)(),(0,a.createElementBlock)("span",f)):((0,a.openBlock)(),(0,a.createElementBlock)("button",{key:1,type:"button",disabled:o.isView,class:"btn role-link",onClick:t},(0,a.toDisplayString)(e.t("generic.remove")),9,v))])),_:1},8,["value","mode"]))}var g=n(22133),y=n(84409),k=n(76978);function w(e){return e?.replace(":","/")||e}function E(e,t=!1){return(!!e.getters["management/schemaFor"](i.Mc.PROJECT_ROLE_TEMPLATE_BINDING)||!t)&&!!e.getters["management/schemaFor"](i.Mc.ROLE_TEMPLATE)&&!!e.getters["rancher/schemaFor"](i.k$.PRINCIPAL)}var N={emits:["membership-update"],components:{ArrayList:g.A,Loading:y.A},props:{addMemberDialogName:{type:String,required:!0},parentKey:{type:String,required:!0},parentId:{type:String,default:null},mode:{type:String,required:!0},type:{type:String,required:!0},defaultBindingHandler:{type:Function,default:null},modalSticky:{type:Boolean,default:!1}},async fetch(){const e={type:this.type,opt:{force:!0}};this.type===i.k$.PROJECT_ROLE_TEMPLATE_BINDING&&this.parentId&&Object.assign(e,{opt:{filter:{projectId:this.parentId.split("/").join(":")}}});const t=[this.schema?this.$store.dispatch("rancher/findAll",e):[],this.$store.dispatch("rancher/findAll",{type:i.k$.PRINCIPAL}),this.$store.dispatch("management/findAll",{type:i.Mc.ROLE_TEMPLATE}),this.$store.dispatch("management/findAll",{type:i.Mc.USER})],[n]=await Promise.all(t),a=n.filter((e=>w((0,k.Jt)(e,this.parentKey))===w(this.parentId)));if(this["lastSavedBindings"]=[...a],this.mode===o.YQ&&0===a.length&&this.defaultBindingHandler){const e=await this.defaultBindingHandler();e.isDefaultBinding=!0,a.push(e)}this["bindings"]=a},data(){return{schema:this.$store.getters["rancher/schemaFor"](this.type),bindings:[],lastSavedBindings:[]}},computed:{newBindings(){return this.bindings.filter((e=>!e.id&&!this.lastSavedBindings.includes(e)&&!e.isDefaultBinding))},removedBindings(){return this.lastSavedBindings.filter((e=>!this.bindings.includes(e)))},membershipUpdate(){const e=this.newBindings,t=this.removedBindings;return{newBindings:this.newBindings,removedBindings:this.removedBindings,save:n=>{const a=e.map((e=>((0,k.hZ)(e,this.parentKey,n),e.save()))),s=t.map((e=>e.remove()));return Promise.all([...a,...s])}}},isCreate(){return this.mode===o.YQ},isView(){return this.mode===o.nW}},watch:{membershipUpdate:{deep:!0,handler(){this.$emit("membership-update",this.membershipUpdate)}}},methods:{addMember(){this.$store.dispatch("cluster/promptModal",{component:this.addMemberDialogName,componentProps:{onAdd:this.onAddMember},modalSticky:this.modalSticky})},onAddMember(e){this["bindings"]=[...this.bindings,...e]}}},x=(n(43580),n(47433));const S=(0,x.A)(N,[["render",b],["__scopeId","data-v-6f184c54"]]);var V=S;function C(e){return E(e,!0)}var O={components:{MembershipEditor:V},props:{parentId:{type:String,default:null},mode:{type:String,required:!0}},data(){return{NORMAN:i.k$,bindings:[],lastSavedBindings:[]}},computed:{isCreate(){return this.mode===o.YQ},isView(){return this.mode===o.nW}},methods:{defaultBindingHandler(){return this.$store.dispatch("management/create",{type:i.k$.PROJECT_ROLE_TEMPLATE_BINDING,roleTemplateId:"project-owner",userPrincipalId:this.$store.getters["auth/principalId"]})}}};const T=(0,x.A)(O,[["render",s]]);var A=T},32786:function(e,t,n){"use strict";n.d(t,{A:function(){return N}});var a=n(9274);const s={class:"row mb-20"},i=["data-testid"],o={class:"icon icon-close align-value"},l=["data-testid"],r=["data-testid"],c=["data-testid"],u={key:3,class:"spacer"};function d(e,t,n,d,p,h){const _=(0,a.resolveComponent)("LabeledInput"),m=(0,a.resolveComponent)("LabeledSelect"),f=(0,a.resolveDirective)("clean-tooltip");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[n.namespaced&&!n.nameNsHidden&&p.createNamespace?((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:0,"data-testid":n.componentTestid+"-namespace-create",class:"col span-3"},[(0,a.createVNode)(_,{ref:"namespace",value:p.namespace,"onUpdate:value":t[0]||(t[0]=e=>p.namespace=e),label:e.t("namespace.label"),placeholder:e.t("namespace.createNamespace"),disabled:h.namespaceReallyDisabled,mode:n.mode,"min-height":30,required:n.nameRequired,rules:n.rules.namespace},null,8,["value","label","placeholder","disabled","mode","required","rules"]),(0,a.createElementVNode)("button",{aria:"Cancel create",onClick:t[1]||(t[1]=(...e)=>h.cancelCreateNamespace&&h.cancelCreateNamespace(...e))},[(0,a.withDirectives)((0,a.createElementVNode)("i",o,null,512),[[f,e.t("generic.cancel")]])])],8,i)):(0,a.createCommentVNode)("",!0),!n.namespaced||n.nameNsHidden||p.createNamespace?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:1,"data-testid":n.componentTestid+"-namespace",class:"col span-3"},[(0,a.withDirectives)((0,a.createVNode)(m,{value:p.namespace,"onUpdate:value":t[2]||(t[2]=e=>p.namespace=e),clearable:!0,options:h.options,disabled:h.namespaceReallyDisabled,searchable:!0,mode:n.mode,multiple:!1,label:e.t("namespace.label"),placeholder:e.t("namespace.selectOrCreate"),rules:n.rules.namespace,required:"",onSelecting:h.selectNamespace},null,8,["value","options","disabled","mode","label","placeholder","rules","onSelecting"]),[[a.vShow,!p.createNamespace]])],8,l)),n.nameNsHidden?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:2,"data-testid":n.componentTestid+"-name",class:"col span-3"},[(0,a.createVNode)(_,{ref:"name",key:"name",value:p.name,"onUpdate:value":t[3]||(t[3]=e=>p.name=e),label:e.t(n.nameLabel),placeholder:e.t(n.namePlaceholder),disabled:h.nameReallyDisabled,mode:n.mode,"min-height":30,required:n.nameRequired,rules:n.rules.name},null,8,["value","label","placeholder","disabled","mode","required","rules"])],8,r)),(0,a.renderSlot)(e.$slots,"customize",{},void 0,!0),(0,a.withDirectives)((0,a.createElementVNode)("div",{"data-testid":n.componentTestid+"-description",class:(0,a.normalizeClass)(["col",n.extraColumns.length>0?"span-3":"span-6"])},[(0,a.createVNode)(_,{key:"description",value:p.description,"onUpdate:value":t[4]||(t[4]=e=>p.description=e),mode:n.mode,disabled:n.descriptionDisabled,label:e.t(n.descriptionLabel),placeholder:e.t(n.descriptionPlaceholder),"min-height":30,rules:n.rules.description},null,8,["value","mode","disabled","label","placeholder","rules"])],10,c),[[a.vShow,!n.descriptionHidden]]),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(n.extraColumns,((t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:n,class:(0,a.normalizeClass)({col:!0,[h.colSpan]:!0})},[(0,a.renderSlot)(e.$slots,t,{},void 0,!0)],2)))),128)),n.showSpacer?((0,a.openBlock)(),(0,a.createElementBlock)("div",u)):(0,a.createCommentVNode)("",!0)])}var p=n(65359),h=n(76978),_=n(74302),m=n(35664),f=n(2841),v=n(14220),b=n(79380),g=n(77988);function y(e){return(e||"").trim().toLowerCase().replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}var k={name:"NameNsDescription",emits:["update:value","isNamespaceNew"],components:{LabeledInput:b.o,LabeledSelect:g.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0},nameNsHidden:{type:Boolean,default:!1},descriptionHidden:{type:Boolean,default:!1},extraColumns:{type:Array,default:()=>[]},nameLabel:{type:String,default:"nameNsDescription.name.label"},nameEditable:{type:Boolean,default:!1},namePlaceholder:{type:String,default:"nameNsDescription.name.placeholder"},nameDisabled:{type:Boolean,default:!1},nameRequired:{type:Boolean,default:!0},nameNormalized:{type:Boolean,default:!0},namespaced:{type:Boolean,default:!0},namespaceFilter:{type:Function,default:null},namespaceMapper:{type:Function,default:null},namespaceType:{type:String,default:m.CU},namespaceLabel:{type:String,default:"nameNsDescription.namespace.label"},namespacePlaceholder:{type:String,default:"nameNsDescription.namespace.placeholder"},namespaceDisabled:{type:Boolean,default:!1},namespaceNewAllowed:{type:Boolean,default:!1},noDefaultNamespace:{type:Boolean,default:!1},namespacesOverride:{type:Array,default:null},namespaceOptions:{type:Array,default:null},createNamespaceOverride:{type:Boolean,default:!1},descriptionLabel:{type:String,default:"nameNsDescription.description.label"},descriptionPlaceholder:{type:String,default:"nameNsDescription.description.placeholder"},descriptionDisabled:{type:Boolean,default:!1},nameKey:{type:String,default:null},namespaceKey:{type:String,default:null},descriptionKey:{type:String,default:null},forceNamespace:{type:String,default:null},showSpacer:{type:Boolean,default:!0},horizontal:{type:Boolean,default:!0},rules:{default:()=>({namespace:[],name:[],description:[]}),type:Object},componentTestid:{type:String,default:"name-ns-description"}},data(){const e=this.value,t=e.metadata;let n,a,s;a=this.nameKey?(0,h.Jt)(e,this.nameKey):t?.name,this.namespaced&&(this.forceNamespace?(n=this.forceNamespace,this.updateNamespace(n)):n=this.namespaceKey?(0,h.Jt)(e,this.namespaceKey):t?.namespace,n||this.noDefaultNamespace||(n=this.$store.getters["defaultNamespace"],t&&(t.namespace=n))),s=this.descriptionKey?(0,h.Jt)(e,this.descriptionKey):t?.annotations?.[f.tC];const i=this.$store.getters["currentStore"](),o=this.$store.getters[`${i}/schemaFor`](m.CU);return{namespace:n,name:a,description:s,createNamespace:!1,nsSchema:o}},computed:{...(0,p.L8)(["currentProduct","currentCluster","namespaces","allowedNamespaces"]),...(0,p.i0)("cru-resource",["setCreateNamespace"]),namespaceReallyDisabled(){return!!this.forceNamespace||this.namespaceDisabled||this.mode===v.G5},nameReallyDisabled(){return this.nameDisabled||this.mode===v.G5&&!this.nameEditable},options(){let e;if(this.namespacesOverride)e=this.namespacesOverride;else if(this.namespaceOptions)e=(this.namespaceOptions.map((e=>e.name))||[]).sort();else{const t=this.isCreate?this.allowedNamespaces():this.namespaces();e=Object.keys(t)}const t=e.map((e=>({nameDisplay:e,id:e}))).map(this.namespaceMapper||(e=>({label:e.nameDisplay,value:e.id}))),n=(0,_.Ul)(t,"label");this.forceNamespace&&n.unshift({label:this.forceNamespace,value:this.forceNamespace});const a={label:this.t("namespace.createNamespace"),value:"",kind:"highlighted"},s={label:"divider",disabled:!0,kind:"divider"},i=this.canCreateNamespace||this.createNamespaceOverride?[a,s]:[];return[...i,...n]},isView(){return this.mode===v.nW},isCreate(){return this.mode===v.YQ},showCustomize(){return this.mode===v.YQ&&this.name&&this.name.length>0},colSpan(){if(!this.horizontal)return"span-8";let e=(this.nameNsHidden?0:2)+(this.descriptionHidden?0:1)+this.extraColumns.length;e=Math.max(2,e);const t=12/e;return`span-${t}`},canCreateNamespace(){return(this.nsSchema?.collectionMethods||[]).includes("POST")&&this.currentCluster?.canUpdate}},watch:{name(e){this.normalizeName&&(e=y(e)),this.nameKey?(0,h.hZ)(this.value,this.nameKey,e):this.value.metadata["name"]=e,this.$emit("update:value",this.value)},namespace(e){this.updateNamespace(e),this.$emit("update:value",this.value)},description(e){this.descriptionKey?(0,h.hZ)(this.value,this.descriptionKey,e):this.value.setAnnotation(f.tC,e),this.$emit("update:value",this.value)}},mounted(){this.$nextTick((()=>{this.$refs.name&&this.$refs.name.focus()}))},methods:{updateNamespace(e){this.forceNamespace&&(e=this.forceNamespace),this.namespaced&&this.$emit("isNamespaceNew",!e||this.options&&!this.options.find((t=>t.value===e))),this.namespaceKey?(0,h.hZ)(this.value,this.namespaceKey,e):this.value.metadata.namespace=e},changeNameAndNamespace(e){this.name=(e.text||"").toLowerCase(),this.namespace=e.selected},cancelCreateNamespace(e){this.createNamespace=!1,this.$parent.$emit("createNamespace",!1),this.namespace=this.$store.getters["defaultNamespace"]||this.options.find((e=>!!e.value))?.value},selectNamespace(e){e&&""!==e.value?(this.createNamespace=!1,this.$store.dispatch("cru-resource/setCreateNamespace",!1),this.$emit("isNamespaceNew",!1)):(this.createNamespace=!0,this.$store.dispatch("cru-resource/setCreateNamespace",!0),this.$emit("isNamespaceNew",!0),this.$nextTick((()=>this.$refs.namespace.focus())))}}},w=(n(73423),n(47433));const E=(0,w.A)(k,[["render",d],["__scopeId","data-v-4cc43dc5"]]);var N=E},51718:function(e,t,n){"use strict";n.d(t,{A:function(){return k}});var a=n(9274);const s={class:"headers mb-10"},i={class:"mr-10"},o={class:"mr-20"},l={class:"mr-10"};function r(e,t,n,r,c,u){const d=(0,a.resolveComponent)("Row"),p=(0,a.resolveComponent)("ArrayList");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("label",null,(0,a.toDisplayString)(e.t("resourceQuota.headers.resourceType")),1)]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("label",null,(0,a.toDisplayString)(e.t("resourceQuota.headers.projectLimit")),1)]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("label",null,(0,a.toDisplayString)(e.t("resourceQuota.headers.namespaceDefaultLimit")),1)])]),(0,a.createVNode)(p,{value:c.typeValues,"onUpdate:value":t[1]||(t[1]=e=>c.typeValues=e),label:"Resources","add-label":e.t("resourceQuota.add.label"),"default-add-value":u.remainingTypes()[0]?u.remainingTypes()[0].value:"","add-allowed":u.remainingTypes().length>0,mode:n.mode,onRemove:u.emitRemove},{columns:(0,a.withCtx)((s=>[(0,a.createVNode)(d,{value:n.value,mode:n.mode,types:u.remainingTypes(c.typeValues[s.i]),type:c.typeValues[s.i],onInput:t[0]||(t[0]=t=>e.$emit("input",t)),onTypeChange:e=>u.updateType(s.i,e)},null,8,["value","mode","types","type","onTypeChange"])])),_:1},8,["value","add-label","default-add-value","add-allowed","mode","onRemove"])])}var c=n(22133);const u={key:0,class:"row"};function d(e,t,n,s,i,o){const l=(0,a.resolveComponent)("Select"),r=(0,a.resolveComponent)("UnitInput");return e.typeOption?((0,a.openBlock)(),(0,a.createElementBlock)("div",u,[(0,a.createVNode)(l,{value:n.type,class:"mr-10",mode:n.mode,options:n.types,"data-testid":"projectrow-type-input","onUpdate:value":t[0]||(t[0]=e=>o.updateType(e))},null,8,["value","mode","options"]),(0,a.createVNode)(r,{value:o.resourceQuotaLimit[n.type],class:"mr-10",mode:n.mode,placeholder:e.typeOption.placeholder,increment:e.typeOption.increment,"input-exponent":e.typeOption.inputExponent,"base-unit":e.typeOption.baseUnit,"output-modifier":!0,"data-testid":"projectrow-project-quota-input","onUpdate:value":t[1]||(t[1]=e=>o.updateQuotaLimit("resourceQuota",n.type,e))},null,8,["value","mode","placeholder","increment","input-exponent","base-unit"]),(0,a.createVNode)(r,{value:o.namespaceDefaultResourceQuotaLimit[n.type],mode:n.mode,placeholder:e.typeOption.placeholder,increment:e.typeOption.increment,"input-exponent":e.typeOption.inputExponent,"base-unit":e.typeOption.baseUnit,"output-modifier":!0,"data-testid":"projectrow-namespace-quota-input","onUpdate:value":t[2]||(t[2]=e=>o.updateQuotaLimit("namespaceDefaultResourceQuota",n.type,e))},null,8,["value","mode","placeholder","increment","input-exponent","base-unit"])])):(0,a.createCommentVNode)("",!0)}var p=n(18918),h=n(77290),_=n(3712),m={emits:["type-change"],components:{Select:p.A,UnitInput:h.A},props:{mode:{type:String,required:!0},types:{type:Array,default:()=>[]},type:{type:String,default:""},value:{type:Object,default:()=>({})}},computed:{..._.H0,resourceQuotaLimit:{get(){return this.value.spec.resourceQuota?.limit||{}}},namespaceDefaultResourceQuotaLimit:{get(){return this.value.spec.namespaceDefaultResourceQuota?.limit||{}}}},methods:{updateType(e){"undefined"!==typeof this.value.spec.resourceQuota?.limit[this.type]&&delete this.value.spec.resourceQuota.limit[this.type],"undefined"!==typeof this.value.spec.namespaceDefaultResourceQuota?.limit[this.type]&&delete this.value.spec.namespaceDefaultResourceQuota.limit[this.type],this.$emit("type-change",e)},updateQuotaLimit(e,t,n){this.value.spec[e]||(this.value.spec[e]={limit:{}}),this.value.spec[e].limit[t]=n}}},f=(n(86727),n(47433));const v=(0,f.A)(m,[["render",d],["__scopeId","data-v-026e7674"]]);var b=v,g={emits:["remove","input"],components:{ArrayList:c.A,Row:b},props:{mode:{type:String,required:!0},value:{type:Object,default:()=>({})},types:{type:Array,default:()=>[]}},data(){return this.value["spec"]=this.value.spec||{},this.value.spec["namespaceDefaultResourceQuota"]=this.value.spec.namespaceDefaultResourceQuota||{limit:{}},this.value.spec["resourceQuota"]=this.value.spec.resourceQuota||{limit:{}},{typeValues:Object.keys(this.value.spec.resourceQuota.limit)}},computed:{..._.dz},methods:{updateType(e,t){this.typeValues[e]=t},remainingTypes(e){return this.mappedTypes.filter((t=>!this.typeValues.includes(t.value)||t.value===e))},emitRemove(e){this.$emit("remove",e.row?.value)}}};n(96209);const y=(0,f.A)(g,[["render",r],["__scopeId","data-v-5ccfb77f"]]);var k=y},7905:function(e,t,n){"use strict";n.d(t,{A:function(){return v}});var a=n(9274);const s={class:"input-container"};function i(e,t,n,i,o,l){const r=(0,a.resolveComponent)("ResourceLabeledSelect"),c=(0,a.resolveComponent)("LabeledSelect");return(0,a.openBlock)(),(0,a.createElementBlock)("div",{class:(0,a.normalizeClass)(["secret-selector",{"show-key-selector":n.showKeySelector}])},[(0,a.createElementVNode)("div",s,[(0,a.createVNode)(r,{value:l.name,"onUpdate:value":t[0]||(t[0]=e=>l.name=e),disabled:!l.isView&&n.disabled,label:n.secretNameLabel,mode:n.mode,"resource-type":o.SECRET,"in-store":n.inStore,"paginated-resource-settings":o.paginateSecretsSetting,"all-resources-settings":o.allSecretsSettings},null,8,["value","disabled","label","mode","resource-type","in-store","paginated-resource-settings","all-resources-settings"]),n.showKeySelector?((0,a.openBlock)(),(0,a.createBlock)(c,{key:0,value:l.key,"onUpdate:value":t[1]||(t[1]=e=>l.key=e),class:"col span-6",disabled:l.isKeyDisabled,options:l.keys,label:n.keyNameLabel,mode:n.mode},null,8,["value","disabled","options","label","mode"])):(0,a.createCommentVNode)("",!0)])],2)}var o=n(77988),l=n(94397),r=n(35664),c=n(14220),u=n(24989),d=n(50025),p=n(15328);const h="__[[NONE]]__";var _={emits:["update:value"],components:{LabeledSelect:o.A,ResourceLabeledSelect:l.A},props:{value:{type:[String,Object],required:!1,default:void 0},namespace:{type:String,required:!0},types:{type:Array,default:()=>Object.values(u.J)},disabled:{type:Boolean,default:!1},mountKey:{type:String,default:"valueFrom"},nameKey:{type:String,default:"name"},keyKey:{type:String,default:"key"},showKeySelector:{type:Boolean,default:!1},secretNameLabel:{type:String,default:"Secret Name"},keyNameLabel:{type:String,default:"Key"},mode:{type:String,default:c.G5},inStore:{type:String,default:"cluster"}},data(){return{secrets:null,SECRET:r.bB,allSecretsSettings:{updateResources:e=>{const t=e.filter((e=>this.types.includes(e._type)&&e.namespace===this.namespace)),n=this.mapSecrets(t.sort(((e,t)=>e.name.localeCompare(t.name))));return this.secrets=t,n}},paginateSecretsSetting:{requestSettings:this.paginatePageOptions,updateResources:e=>{const t=this.mapSecrets(e);return this.secrets=e,t}}}},computed:{name:{get(){const e=this.showKeySelector?this.value?.[this.mountKey]?.secretKeyRef?.[this.nameKey]:this.value;return e||h},set(e){const t=e===h,n=t?void 0:e;this.showKeySelector?this.$emit("update:value",{[this.mountKey]:{secretKeyRef:{[this.nameKey]:n,[this.keyKey]:""}}}):this.$emit("update:value",n)}},key:{get(){return this.value?.[this.mountKey]?.secretKeyRef?.[this.keyKey]||""},set(e){this.$emit("update:value",{[this.mountKey]:{secretKeyRef:{[this.nameKey]:this.name,[this.keyKey]:e}}})}},keys(){const e=(this.secrets||[]).find((e=>e.name===this.name))||{};return Object.keys(e.data||{}).map((e=>({label:e,value:e})))},isView(){return this.mode===c.nW},isKeyDisabled(){return!this.isView&&(!this.name||this.name===h||this.disabled)}},methods:{mapSecrets(e){const t=e.reduce(((e,t)=>(t.kind===p.c.NONE||(t.id?e.push({label:t.name,value:t.name}):e.push(t)),e)),[]);return[{label:"None",value:h,kind:p.c.NONE},...t]},paginatePageOptions(e){const{opts:{filter:t}}=e,n=t?[d.eY.createSingleField({field:"metadata.name",value:t})]:[];return n.push(d.eY.createSingleField({field:"metadata.namespace",value:this.namespace}),d.eY.createSingleField({field:"metadata.fields.1",value:this.types.join(",")})),{...e,filters:n,groupByNamespace:!1,classify:!0,sort:[{asc:!0,field:"metadata.name"}]}}}},m=(n(51568),n(47433));const f=(0,m.A)(_,[["render",i]]);var v=f},89351:function(e,t,n){"use strict";n.d(t,{A:function(){return ee}});var a=n(9274);const s={key:1},i={key:0,class:"icon icon-info status-icon text-warning"},o={key:0,class:"icon icon-info status-icon text-warning"};function l(e,t,n,l,r,c){const u=(0,a.resolveComponent)("Loading"),d=(0,a.resolveComponent)("NameNsDescription"),p=(0,a.resolveComponent)("Banner"),h=(0,a.resolveComponent)("LabeledSelect"),_=(0,a.resolveComponent)("Match"),m=(0,a.resolveComponent)("ArrayListGrouped"),f=(0,a.resolveComponent)("Tab"),v=(0,a.resolveComponent)("YamlEditor"),b=(0,a.resolveComponent)("Tabbed"),g=(0,a.resolveComponent)("CruResource"),y=(0,a.resolveDirective)("clean-tooltip");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(u,{key:0})):r.formSupported?((0,a.openBlock)(),(0,a.createBlock)(g,{key:1,class:"flow","done-route":e.doneRoute,mode:e.mode,resource:e.value,subtypes:[],"validation-passed":!0,errors:e.errors,"apply-hooks":e.applyHooks,onError:t[9]||(t[9]=t=>e.errors=t),onFinish:e.save,onCancel:e.done},{default:(0,a.withCtx)((()=>[e.isView?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createBlock)(d,{key:0,value:e.value,mode:e.mode,namespaced:e.value.type!==c.LOGGING.CLUSTER_FLOW,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("input",t))},null,8,["value","mode","namespaced"])),(0,a.createVNode)(b,{"side-tabs":!0,onChanged:t[8]||(t[8]=e=>c.tabChanged(e))},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(f,{name:"match",label:e.t("logging.flow.matches.label"),weight:3},{default:(0,a.withCtx)((()=>[c.isHarvester?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createBlock)(p,{key:0,color:"info",class:"mt-0",label:e.t("logging.flow.matches.banner")},null,8,["label"])),c.isHarvester?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(h,{value:r.loggingType,"onUpdate:value":t[1]||(t[1]=e=>r.loggingType=e),class:"mb-20",options:c.flowTypeOptions,mode:e.mode,disabled:!e.isCreate,label:e.t("generic.type")},null,8,["value","options","mode","disabled","label"])])):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(m,{value:r.matches,"onUpdate:value":t[4]||(t[4]=e=>r.matches=e),"add-label":e.t("ingress.rules.addRule"),"default-add-value":{},mode:e.mode},{default:(0,a.withCtx)((t=>[(0,a.createVNode)(_,{class:"rule mb-20",value:t.row.value,mode:e.mode,namespaces:c.namespaceChoices,nodes:c.nodeChoices,"is-cluster-flow":e.value.type===c.LOGGING.CLUSTER_FLOW,onRemove:e=>c.removeMatch(t.row.i),"onUpdate:value":e=>c.updateMatch(e,t.row.i)},null,8,["value","mode","namespaces","nodes","is-cluster-flow","onRemove","onUpdate:value"])])),add:(0,a.withCtx)((()=>[(0,a.createElementVNode)("button",{class:"btn role-tertiary add",type:"button",onClick:t[2]||(t[2]=e=>c.addMatch(!0))},(0,a.toDisplayString)(e.t("logging.flow.matches.addSelect")),1),(0,a.createElementVNode)("button",{class:"btn role-tertiary add",type:"button",onClick:t[3]||(t[3]=e=>c.addMatch(!1))},(0,a.toDisplayString)(e.t("logging.flow.matches.addExclude")),1)])),_:1},8,["value","add-label","mode"])])),_:1},8,["label"]),(0,a.createVNode)(f,{name:"outputs",label:e.t("logging.flow.outputs.label"),weight:2},{default:(0,a.withCtx)((()=>[e.value.type!==c.LOGGING.CLUSTER_FLOW?((0,a.openBlock)(),(0,a.createBlock)(p,{key:0,label:e.t("logging.flow.outputs.sameNamespaceError"),color:"info"},null,8,["label"])):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(h,{value:r.globalOutputRefs,"onUpdate:value":t[5]||(t[5]=e=>r.globalOutputRefs=e),label:e.t("logging.flow.clusterOutputs.label"),options:c.clusterOutputChoices,multiple:!0,taggable:!0,clearable:!0,"close-on-select":!1,reduce:e=>e.value},{"selected-option":(0,a.withCtx)((t=>[c.isTag(c.clusterOutputChoices,t)?(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("i",i,null,512)),[[y,e.t("logging.flow.clusterOutputs.doesntExistTooltip")]]):(0,a.createCommentVNode)("",!0),(0,a.createTextVNode)(" "+(0,a.toDisplayString)(t.label),1)])),_:1},8,["value","label","options","reduce"]),e.value.type===c.LOGGING.FLOW?((0,a.openBlock)(),(0,a.createBlock)(h,{key:1,value:r.localOutputRefs,"onUpdate:value":t[6]||(t[6]=e=>r.localOutputRefs=e),label:e.t("logging.flow.outputs.label"),class:"mt-10",options:c.outputChoices,multiple:!0,taggable:!0,clearable:!0,"close-on-select":!1,reduce:e=>e.value},{"selected-option":(0,a.withCtx)((t=>[c.isTag(c.outputChoices,t)?(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("i",o,null,512)),[[y,e.t("logging.flow.outputs.doesntExistTooltip")]]):(0,a.createCommentVNode)("",!0),(0,a.createTextVNode)(" "+(0,a.toDisplayString)(t.label),1)])),_:1},8,["value","label","options","reduce"])):(0,a.createCommentVNode)("",!0)])),_:1},8,["label"]),(0,a.createVNode)(f,{name:"filters",label:e.t("logging.flow.filters.label"),weight:1},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(v,{ref:"yaml",value:r.filtersYaml,"onUpdate:value":t[7]||(t[7]=e=>r.filtersYaml=e),scrolling:!1,"initial-yaml-values":r.initialFiltersYaml,"editor-mode":e.isView?c.EDITOR_MODES.VIEW_CODE:c.EDITOR_MODES.EDIT_CODE,onOnReady:c.onYamlEditorReady},null,8,["value","initial-yaml-values","editor-mode","onOnReady"])])),_:1},8,["label"])])),_:1})])),_:1},8,["done-route","mode","resource","errors","apply-hooks","onFinish","onCancel"])):((0,a.openBlock)(),(0,a.createBlock)(p,{key:2,label:e.t("logging.flow.matches.unsupportedConfig"),color:"error"},null,8,["label"]))}var r=n(9980),c=n(91825),u=n(99960),d=n(84409),p=n(32786),h=n(59808),_=n(49584),m=n(35664),f=n(20246),v=n.n(f),b=n(37648),g=n(36143),y=n(88339),k=n(68851),w=n(21766),E=n(77988),N=n(76978),x=n(3514),S=n.n(x),V=n(31097),C=n(99726),O=n(11518);const T={class:"row"},A={class:"col span-12"},I={key:1},R={class:"row"},L={class:"col span-12"},D={key:0},B={class:"row"},U={class:"col span-12"},M={class:"row"},P={class:"col span-12"};function j(e,t,n,s,i,o){const l=(0,a.resolveComponent)("KeyValue"),r=(0,a.resolveComponent)("Select"),c=(0,a.resolveComponent)("LabeledSelect");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[o.isHarvester?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)(l,{value:n.value.labels,"onUpdate:value":t[0]||(t[0]=e=>n.value.labels=e),title:n.value.select?e.t("logging.flow.matches.pods.title.include"):e.t("logging.flow.matches.pods.title.exclude"),mode:n.mode,"initial-empty-row":!0,"read-allowed":!1,"title-add":!0,protip:"","key-label":e.t("logging.flow.matches.pods.keyLabel"),"value-label":e.t("logging.flow.matches.pods.valueLabel"),"add-label":e.t("logging.flow.matches.pods.addLabel")},null,8,["value","title","mode","key-label","value-label","add-label"]),t[5]||(t[5]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1))],64)),(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(n.value.select?e.t("logging.flow.matches.nodes.title.include"):e.t("logging.flow.matches.nodes.title.exclude")),1),(0,a.createElementVNode)("div",T,[(0,a.createElementVNode)("div",A,[(0,a.createVNode)(r,{value:n.value.hosts,"onUpdate:value":t[1]||(t[1]=e=>n.value.hosts=e),class:"lg",options:n.nodes,placeholder:e.t("logging.flow.matches.nodes.placeholder"),multiple:!0,searchable:!0,taggable:!0,clearable:!0,"close-on-select":!1,reduce:e=>e.value},null,8,["value","options","placeholder","reduce"])])]),o.isHarvester?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("div",I,[t[8]||(t[8]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(n.value.select?e.t("logging.flow.matches.containerNames.title.include"):e.t("logging.flow.matches.containerNames.title.exclude")),1),(0,a.createElementVNode)("div",R,[(0,a.createElementVNode)("div",L,[(0,a.createVNode)(c,{value:n.value.container_names,"onUpdate:value":t[2]||(t[2]=e=>n.value.container_names=e),mode:n.mode,options:[],disabled:!1,placeholder:e.t("logging.flow.matches.containerNames.placeholder"),multiple:!0,taggable:!0,clearable:!0,searchable:!0,"close-on-select":!1,"no-options-label-key":"logging.flow.matches.containerNames.enter",placement:"top"},null,8,["value","mode","placeholder"])])]),n.isClusterFlow?((0,a.openBlock)(),(0,a.createElementBlock)("div",D,[t[6]||(t[6]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(n.value.select?e.t("logging.flow.matches.containerNames.title.include"):e.t("logging.flow.matches.containerNames.title.exclude")),1),(0,a.createElementVNode)("div",B,[(0,a.createElementVNode)("div",U,[(0,a.createVNode)(r,{value:n.value.namespaces,"onUpdate:value":t[3]||(t[3]=e=>n.value.namespaces=e),class:"lg",options:n.namespaces,placeholder:e.t("logging.flow.matches.namespaces.placeholder"),multiple:!0,taggable:!0,clearable:!0,searchable:!0,"close-on-select":!1,"no-options-label-key":"logging.flow.matches.containerNames.enter",placement:"top"},null,8,["value","options","placeholder"])])]),t[7]||(t[7]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(n.value.select?e.t("logging.flow.matches.namespaces.title.include"):e.t("logging.flow.matches.namespaces.title.exclude")),1),(0,a.createElementVNode)("div",M,[(0,a.createElementVNode)("div",P,[(0,a.createVNode)(r,{modelValue:n.value.namespaces,"onUpdate:modelValue":t[4]||(t[4]=e=>n.value.namespaces=e),class:"lg",options:n.namespaces,placeholder:e.t("logging.flow.matches.namespaces.placeholder"),multiple:!0,taggable:!0,clearable:!0,"close-on-select":!1,placement:"top"},null,8,["modelValue","options","placeholder"])])])])):(0,a.createCommentVNode)("",!0)]))])}var $=n(25088),K=n(18918),F={emits:["remove"],components:{KeyValue:$.A,Select:K.A,LabeledSelect:E.A},props:{mode:{type:String,required:!0},value:{type:Object,default:()=>({})},nodes:{type:Array,default:()=>[]},namespaces:{type:Array,default:()=>[]},isClusterFlow:{type:Boolean,default:!1}},computed:{isHarvester(){return this.$store.getters["currentProduct"].inStore===O.T}},methods:{update(){},removeRule(){this.$emit("remove")}}},q=n(47433);const W=(0,q.A)(F,[["render",j]]);var z=W;const G="Logging",Q="Audit",H="Event",X=[G,Q,H];function J(e=!0){const t={select:!!e,exclude:!e,labels:{},hosts:[],container_names:[]};return t}var Y={emits:["input"],components:{Banner:r.l,CruResource:u.A,LabeledSelect:E.A,Loading:d.A,NameNsDescription:p.A,Tab:_.A,Tabbed:h.A,YamlEditor:g.A,Match:z,ArrayListGrouped:V.A},mixins:[c.A],inheritAttrs:!1,async fetch(){const e=this.$store.getters["currentCluster"],t=e.isHarvester?O.T:"cluster",n=this.$store.getters[`${t}/schemaFor`](m.cm.CLUSTER_OUTPUT),a=this.$store.getters[`${t}/schemaFor`](m.cm.OUTPUT),s=this.$store.getters["cluster/schemaFor"](m.CU),i=this.$store.getters[`${t}/schemaFor`](m.NW),o=this.value.type===m.cm.FLOW,l=(e,n)=>n?this.$store.dispatch(`${t}/findAll`,{type:e}):Promise.resolve([]),r=await(0,y.kR)({allOutputs:l(m.cm.OUTPUT,o&&a),allClusterOutputs:l(m.cm.CLUSTER_OUTPUT,n),allNamespaces:l(m.CU,s),allNodes:l(m.NW,i)});for(const c of Object.keys(r))this[c]=r[c]||[]},data(){const e=this.$store.getters["currentCluster"],t=e.isHarvester?O.T:"cluster",n=this.$store.getters[`${t}/all`](m.yx);let a;this.value.spec=this.value.spec||{},this.value.spec.filters?.length?a=v().dump(this.value.spec.filters):(a=(0,b.mH)(n,m.cm.SPOOFED.FILTERS,{}),a=a.substring(a.indexOf("\n")+1).replaceAll("# ","#"));const s=[];let i=!this.value.id||this.value.canCustomEdit;if(this.value.spec.match?.length)for(const r of this.value.spec.match)(0,w.matchRuleIsPopulated)(r.select)&&(0,w.matchRuleIsPopulated)(r.exclude)?i=!1:(0,w.matchRuleIsPopulated)(r.select)?s.push({select:!0,...r.select}):(0,w.matchRuleIsPopulated)(r.exclude)&&s.push({exclude:!0,...r.exclude});else s.push(J(!0));const o=(this.value.spec.globalOutputRefs||[]).map((e=>({label:e,value:e}))),l=(this.value.spec.localOutputRefs||[]).map((e=>({label:e,value:e})));return{formSupported:i,matches:s,allOutputs:null,allClusterOutputs:null,allNamespaces:null,allNodes:null,filtersYaml:a,initialFiltersYaml:a,globalOutputRefs:o,localOutputRefs:l,loggingType:(0,N.o8)(this.value.loggingType||G)}},computed:{EDITOR_MODES(){return g.j},LOGGING(){return m.cm},outputChoices(){return this.allOutputs?this.allOutputs.filter((e=>{if(!e.namespace)return!0;const t=e.namespace===this.value.namespace;return this.isHarvester?this.loggingType===Q?e.loggingType===Q&&t:e.loggingType!==Q&&t:t})).map((e=>({label:e.metadata.name,value:e.metadata.name}))):[]},clusterOutputChoices(){return this.allClusterOutputs?this.allClusterOutputs.filter((e=>{const t="cattle-logging-system"===e.namespace;return this.isHarvester?this.loggingType===Q?e.loggingType===Q&&t:e.loggingType!==Q&&t:t})).map((e=>({label:e.metadata.name,value:e.metadata.name}))):[]},namespaceChoices(){if(!this.allNamespaces)return[];const e=this.allNamespaces.map((e=>({label:e.nameDisplay,value:e.metadata.name})));return e},nodeChoices(){if(!this.allNodes)return[];const e=this.allNodes.map((e=>({label:e.nameDisplay,value:e.metadata.name})));return e},isHarvester(){return this.$store.getters["currentProduct"].inStore===O.T},flowTypeOptions(){return X}},watch:{matches:{deep:!0,handler(){const e=this.matches.map((e=>{const t=(0,N.o8)(e);return delete t.exclude,delete t.select,e.exclude?{exclude:t}:{select:t}}));this.value.spec.match=e}},filtersYaml:{deep:!0,handler(){try{const e=v().load(this.filtersYaml);(0,k.cy)(e)?this.value.spec.filters=e:this.value.spec.filters=void 0}catch(e){this.errors=(0,C.rz)(e)}}},globalOutputRefs:{deep:!0,handler(){this.value.spec.globalOutputRefs=this.globalOutputRefs}},localOutputRefs:{deep:!0,handler(){this.value.spec.localOutputRefs=this.localOutputRefs}}},created(){this.isCreate&&this.value.type===m.cm.CLUSTER_FLOW&&(this.value.metadata.namespace="cattle-logging-system"),this.registerBeforeHook(this.willSave,"willSave")},methods:{addMatch(e){this.matches=[...this.matches,J(e)]},removeMatch(e){this.matches.splice(e,1)},updateMatch(e,t){this.matches[t]=e},tabChanged({tab:e}){"filters"===e.name&&this.$nextTick((()=>{this.$refs.yaml&&(this.$refs.yaml.refresh(),this.$refs.yaml.focus())}))},isMatchEmpty(e){return!!S()(e)||e.every((e=>{if(S()(e.select)&&S()(e.exclude))return!0;const t=e.select||{},n=e.exclude||{},a=e=>Object.values(e).every(S());return a(t)&&a(n)}))},willSave(){if(this.value.spec.filters&&S()(this.value.spec.filters)&&delete this.value.spec["filters"],this.value.spec.match&&this.isMatchEmpty(this.value.spec.match)&&delete this.value.spec["match"],this.loggingType===Q&&(this.value.spec["loggingRef"]="harvester-kube-audit-log-ref"),this.loggingType===H){const e={select:{labels:{"app.kubernetes.io/name":"event-tailer"}}};this.value.spec.match?this.value.spec.match.push(e):this.value.spec["match"]=[e]}},onYamlEditorReady(e){e.getMode().fold="yamlcomments",e.execCommand("foldAll"),e.execCommand("unfold")},isTag(e,t){return!e.find((e=>e.value===t.value))}}};n(2187);const Z=(0,q.A)(Y,[["render",l],["__scopeId","data-v-e1077e64"]]);var ee=Z},92469:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return g}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row"},l={class:"col span-6"},r={class:"row"},c={class:"col span-6"},u={class:"row mb-10"},d={class:"col span-6"},p={class:"col span-6"};function h(e,t,n,h,_,m){const f=(0,a.resolveComponent)("LabeledInput"),v=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(f,{value:n.value.endpoint.url,"onUpdate:value":t[0]||(t[0]=e=>n.value.endpoint.url=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.awsElasticsearch.url")},null,8,["value","mode","disabled","label"])])]),t[3]||(t[3]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",r,[(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",u,[(0,a.createTextVNode)((0,a.toDisplayString)(n.value.namespace)+" ",1),(0,a.createElementVNode)("div",d,[(0,a.createVNode)(v,{value:n.value.endpoint.access_key_id,"onUpdate:value":t[1]||(t[1]=e=>n.value.endpoint.access_key_id=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.awsElasticsearch.keyId"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",p,[(0,a.createVNode)(v,{value:n.value.endpoint.secret_access_key,"onUpdate:value":t[2]||(t[2]=e=>n.value.endpoint.secret_access_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.awsElasticsearch.secretKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var _=n(79380),m=n(7905),f={components:{LabeledInput:_.o,SecretSelector:m.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},v=n(47433);const b=(0,v.A)(f,[["render",h]]);var g=b},54093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return w}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row mb-10"},l={class:"col span-6"},r={class:"col span-6"},c={class:"row"},u={class:"col span-6"},d={class:"row"},p={class:"col span-6"},h={class:"row mb-10"},_={class:"col span-6"},m={class:"col span-6"};function f(e,t,n,f,v,b){const g=(0,a.resolveComponent)("LabeledInput"),y=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(g,{value:n.value.azure_container,"onUpdate:value":t[0]||(t[0]=e=>n.value.azure_container=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.azurestorage.container")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",r,[(0,a.createVNode)(g,{value:n.value.path,"onUpdate:value":t[1]||(t[1]=e=>n.value.path=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.azurestorage.path")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("div",u,[(0,a.createVNode)(g,{value:n.value.store_as,"onUpdate:value":t[2]||(t[2]=e=>n.value.store_as=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.azurestorage.storeAs")},null,8,["value","mode","disabled","label"])])]),t[5]||(t[5]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("div",_,[(0,a.createVNode)(y,{value:n.value.azure_storage_account,"onUpdate:value":t[3]||(t[3]=e=>n.value.azure_storage_account=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.azurestorage.storageAccount"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",m,[(0,a.createVNode)(y,{value:n.value.azure_storage_access_key,"onUpdate:value":t[4]||(t[4]=e=>n.value.azure_storage_access_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.azurestorage.accessKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var v=n(79380),b=n(7905),g={components:{LabeledInput:v.o,SecretSelector:b.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},y=n(47433);const k=(0,y.A)(g,[["render",f]]);var w=k},4991:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return x}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row"},l={class:"col span-6"},r={class:"col span-6"},c={class:"row"},u={class:"col span-6"},d={class:"row mb-10"},p={class:"col span-6"},h={class:"col span-6"},_={class:"row"},m={class:"col span-6"},f={class:"row"},v={class:"col span-6"},b={class:"col span-6"};function g(e,t,n,g,y,k){const w=(0,a.resolveComponent)("LabeledInput"),E=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(w,{value:n.value.region,"onUpdate:value":t[0]||(t[0]=e=>n.value.region=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.cloudwatch.region")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",r,[(0,a.createVNode)(w,{value:n.value.endpoint,"onUpdate:value":t[1]||(t[1]=e=>n.value.endpoint=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.cloudwatch.endpoint")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("div",p,[(0,a.createVNode)(E,{value:n.value.aws_key_id,"onUpdate:value":t[2]||(t[2]=e=>n.value.aws_key_id=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.cloudwatch.keyId"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",h,[(0,a.createVNode)(E,{value:n.value.aws_sec_key,"onUpdate:value":t[3]||(t[3]=e=>n.value.aws_sec_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.cloudwatch.secretKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.configuration")),1)])]),(0,a.createElementVNode)("div",f,[(0,a.createElementVNode)("div",v,[(0,a.createVNode)(w,{value:n.value.log_group_name,"onUpdate:value":t[4]||(t[4]=e=>n.value.log_group_name=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.cloudwatch.logGroupName")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",b,[(0,a.createVNode)(w,{value:n.value.log_stream_name,"onUpdate:value":t[5]||(t[5]=e=>n.value.log_stream_name=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.cloudwatch.logStreamName")},null,8,["value","mode","disabled","label"])])])])}var y=n(79380),k=n(7905),w={components:{LabeledInput:y.o,SecretSelector:k.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},E=(n(31347),n(47433));const N=(0,E.A)(w,[["render",g]]);var x=N},19443:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return x}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row"},l={class:"col span-6"},r={class:"row"},c={class:"col span-6"},u={class:"row"},d={class:"col span-6"},p={class:"row"},h={class:"col span-6"},_={class:"row mb-10"},m={class:"col span-6"},f={class:"row mb-10"},v={class:"col span-6"};function b(e,t,n,b,g,y){const k=(0,a.resolveComponent)("LabeledInput"),w=(0,a.resolveComponent)("SecretSelector"),E=(0,a.resolveComponent)("Checkbox");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(k,{value:n.value.host,"onUpdate:value":t[0]||(t[0]=e=>n.value.host=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.datadog.host")},null,8,["value","mode","disabled","label"])])]),t[4]||(t[4]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",r,[(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("div",d,[(0,a.createVNode)(w,{value:n.value.api_key,"onUpdate:value":t[1]||(t[1]=e=>n.value.api_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.datadog.apiKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),t[5]||(t[5]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("div",m,[(0,a.createVNode)(E,{value:n.value.use_ssl,"onUpdate:value":t[2]||(t[2]=e=>n.value.use_ssl=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.datadog.useSSL")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",f,[(0,a.createElementVNode)("div",v,[(0,a.createVNode)(E,{value:n.value.use_compression,"onUpdate:value":t[3]||(t[3]=e=>n.value.use_compression=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.datadog.useCompression")},null,8,["value","mode","disabled","label"])])])])}var g=n(42200),y=n(79380),k=n(7905),w={components:{Checkbox:g.S,LabeledInput:y.o,SecretSelector:k.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},E=n(47433);const N=(0,E.A)(w,[["render",b]]);var x=N},97863:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return P}});var a=n(9274);const s={class:"elasticsearch"},i={class:"row"},o={class:"col span-6"},l={class:"row mb-10"},r={class:"col span-2"},c={class:"col span-8"},u={class:"col span-2"},d={class:"row"},p={class:"col span-6"},h={class:"row"},_={class:"col span-6"},m={class:"row"},f={class:"col span-6"},v={class:"col span-6"},b={class:"row"},g={class:"col span-6"},y={class:"row mb-10"},k={class:"col span-6"},w={class:"col span-6"},E={class:"row"},N={class:"col span-6"},x={class:"col span-6"},S={class:"row mb-10"},V={class:"col span-6"},C={class:"col span-6 vertically-center"};function O(e,t,n,O,T,A){const I=(0,a.resolveComponent)("LabeledSelect"),R=(0,a.resolveComponent)("LabeledInput"),L=(0,a.resolveComponent)("SecretSelector"),D=(0,a.resolveComponent)("Checkbox");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(I,{value:n.value.scheme,"onUpdate:value":t[0]||(t[0]=e=>n.value.scheme=e),mode:n.mode,disabled:n.disabled,class:"scheme",options:T.protocolOptions,label:e.t("logging.elasticsearch.scheme")},null,8,["value","mode","disabled","options","label"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(R,{value:n.value.host,"onUpdate:value":t[1]||(t[1]=e=>n.value.host=e),mode:n.mode,disabled:n.disabled,class:"host",label:e.t("logging.elasticsearch.host")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",u,[(0,a.createVNode)(R,{value:A.port,"onUpdate:value":t[2]||(t[2]=e=>A.port=e),valueModifiers:{number:!0},mode:n.mode,disabled:n.disabled,class:"port",type:"number",min:"1",max:"65535",label:e.t("logging.elasticsearch.port")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("div",p,[(0,a.createVNode)(R,{value:n.value.index_name,"onUpdate:value":t[3]||(t[3]=e=>n.value.index_name=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.elasticsearch.indexName")},null,8,["value","mode","disabled","label"])])]),t[13]||(t[13]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",f,[(0,a.createVNode)(R,{value:n.value.user,"onUpdate:value":t[4]||(t[4]=e=>n.value.user=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.elasticsearch.user")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",v,[(0,a.createVNode)(L,{value:n.value.password,"onUpdate:value":t[5]||(t[5]=e=>n.value.password=e),"secret-name-label":e.t("logging.elasticsearch.password"),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"show-key-selector":!0},null,8,["value","secret-name-label","mode","namespace","disabled"])])]),t[14]||(t[14]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",b,[(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",y,[(0,a.createElementVNode)("div",k,[(0,a.createVNode)(L,{value:n.value.ca_file,"onUpdate:value":t[6]||(t[6]=e=>n.value.ca_file=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.elasticsearch.caFile.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",w,[(0,a.createVNode)(L,{value:n.value.client_cert,"onUpdate:value":t[7]||(t[7]=e=>n.value.client_cert=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.elasticsearch.clientCert.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",E,[(0,a.createElementVNode)("div",N,[(0,a.createVNode)(L,{value:n.value.client_key,"onUpdate:value":t[8]||(t[8]=e=>n.value.client_key=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.elasticsearch.clientKey.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",x,[(0,a.createVNode)(L,{value:n.value.client_key_pass,"onUpdate:value":t[9]||(t[9]=e=>n.value.client_key_pass=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.elasticsearch.clientKeyPass"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",S,[(0,a.createElementVNode)("div",V,[(0,a.createVNode)(I,{value:n.value.ssl_version,"onUpdate:value":t[10]||(t[10]=e=>n.value.ssl_version=e),mode:n.mode,disabled:n.disabled,options:T.sslVersions,label:e.t("logging.elasticsearch.sslVersion")},null,8,["value","mode","disabled","options","label"])]),(0,a.createElementVNode)("div",C,[(0,a.createVNode)(D,{value:n.value.ssl_verify,"onUpdate:value":t[11]||(t[11]=e=>n.value.ssl_verify=e),label:e.t("logging.elasticsearch.verifySsl"),disabled:n.disabled,mode:n.mode},null,8,["value","label","disabled","mode"]),(0,a.createVNode)(D,{value:n.value.suppress_type_name,"onUpdate:value":t[12]||(t[12]=e=>n.value.suppress_type_name=e),label:e.t("logging.elasticsearch.suppressTypeName.label"),tooltip:e.t("logging.elasticsearch.suppressTypeName.elasticSearchTips"),disabled:n.disabled,mode:n.mode},null,8,["value","label","tooltip","disabled","mode"])])])])}var T=n(79380),A=n(77988),I=n(7905),R=n(42200),L=n(14220),D=n(69598),B={components:{LabeledInput:T.o,LabeledSelect:A.A,SecretSelector:I.A,Checkbox:R.S},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},data(){return this.mode===L.YQ&&("undefined"===typeof this.value.ssl_verify&&(this.value["ssl_verify"]=!0),"undefined"===typeof this.value.ssl_version&&(this.value["ssl_version"]=D.sslVersions[0]),"undefined"===typeof this.value.suppress_type_name&&(this.value["suppress_type_name"]=!0)),{protocolOptions:D.protocol,sslVersions:D.sslVersions}},computed:{port:{get(){return this.value.port},set(e){(0,D.updatePort)((e=>this.value["port"]=e),e)}}}},U=(n(40201),n(47433));const M=(0,U.A)(B,[["render",O]]);var P=M},77332:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var a=n(9274);const s={class:"forward"},i={class:"row"},o={class:"col span-6"},l={class:"row"},r={class:"col span-6"};function c(e,t,n,c,u,d){const p=(0,a.resolveComponent)("LabeledInput");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(p,{value:n.value.path,"onUpdate:value":t[0]||(t[0]=e=>n.value.path=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.file.path")},null,8,["value","mode","disabled","label"])])])])}var u=n(79380),d={components:{LabeledInput:u.o},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},p=n(47433);const h=(0,p.A)(d,[["render",c]]);var _=h},83158:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return A}});var a=n(9274);const s={class:"forward"},i={class:"row"},o={class:"col span-6"},l={class:"row"},r={class:"col span-10"},c={class:"col span-2"},u={class:"row"},d={class:"col span-6"},p={class:"row mb-10"},h={class:"col span-6"},_={class:"col span-6"},m={class:"row"},f={class:"col span-6"},v={class:"row"},b={class:"col span-6"},g={class:"row"},y={class:"col span-6"},k={class:"col span-6"},w={class:"row mt-10"},E={class:"col span-6"};function N(e,t,n,N,x,S){const V=(0,a.resolveComponent)("LabeledInput"),C=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(V,{value:n.value.servers[0].host,"onUpdate:value":t[0]||(t[0]=e=>n.value.servers[0].host=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.forward.host")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(V,{value:S.port,"onUpdate:value":t[1]||(t[1]=e=>S.port=e),mode:n.mode,disabled:n.disabled,type:"number",min:"1",max:"65535",label:e.t("logging.forward.port")},null,8,["value","mode","disabled","label"])])]),t[8]||(t[8]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",h,[(0,a.createVNode)(C,{value:n.value.servers[0].username,"onUpdate:value":t[2]||(t[2]=e=>n.value.servers[0].username=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.forward.username"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",_,[(0,a.createVNode)(C,{value:n.value.servers[0].password,"onUpdate:value":t[3]||(t[3]=e=>n.value.servers[0].password=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.forward.password"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",f,[(0,a.createVNode)(C,{value:n.value.servers[0].shared_key,"onUpdate:value":t[4]||(t[4]=e=>n.value.servers[0].shared_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.forward.sharedKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),t[9]||(t[9]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",v,[(0,a.createElementVNode)("div",b,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("div",y,[(0,a.createVNode)(C,{value:n.value.tls_client_cert_path,"onUpdate:value":t[5]||(t[5]=e=>n.value.tls_client_cert_path=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.forward.clientCertPath"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",k,[(0,a.createVNode)(C,{value:n.value.tls_client_private_key_path,"onUpdate:value":t[6]||(t[6]=e=>n.value.tls_client_private_key_path=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.forward.clientPrivateKeyPath"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",w,[(0,a.createElementVNode)("div",E,[(0,a.createVNode)(C,{value:n.value.tls_client_private_key_passphrase,"onUpdate:value":t[7]||(t[7]=e=>n.value.tls_client_private_key_passphrase=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.forward.clientPrivateKeyPassphrase"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var x=n(79380),S=n(7905),V=n(69598),C={components:{LabeledInput:x.o,SecretSelector:S.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},computed:{port:{get(){return this.value.servers[0].port},set(e){(0,V.updatePort)((e=>this.value.servers[0]["port"]=e),e)}}}},O=n(47433);const T=(0,O.A)(C,[["render",N]]);var A=T},17686:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row mb-10"},l={class:"col span-6"},r={class:"col span-6"},c={class:"row"},u={class:"col span-6"},d={class:"col span-6 overwrite"},p={class:"row"},h={class:"col span-6"},_={class:"row"},m={class:"col span-6"};function f(e,t,n,f,v,b){const g=(0,a.resolveComponent)("LabeledInput"),y=(0,a.resolveComponent)("Checkbox"),k=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(g,{value:n.value.project,"onUpdate:value":t[0]||(t[0]=e=>n.value.project=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.gcs.project")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",r,[(0,a.createVNode)(g,{value:n.value.bucket,"onUpdate:value":t[1]||(t[1]=e=>n.value.bucket=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.gcs.bucket")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("div",u,[(0,a.createVNode)(g,{value:n.value.path,"onUpdate:value":t[2]||(t[2]=e=>n.value.path=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.gcs.path")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",d,[(0,a.createVNode)(y,{value:n.value.overwrite,"onUpdate:value":t[3]||(t[3]=e=>n.value.overwrite=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.gcs.overwriteExistingPath")},null,8,["value","mode","disabled","label"])])]),t[5]||(t[5]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("div",m,[(0,a.createVNode)(k,{value:n.value.credentials_json,"onUpdate:value":t[4]||(t[4]=e=>n.value.credentials_json=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.gcs.credentialsJson"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var v=n(42200),b=n(79380),g=n(7905),y={components:{Checkbox:v.S,LabeledInput:b.o,SecretSelector:g.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},k=(n(59171),n(47433));const w=(0,k.A)(y,[["render",f],["__scopeId","data-v-6d929cee"]]);var E=w},36118:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return O}});var a=n(9274);const s={class:"gelf"},i={class:"row"},o={class:"col span-6"},l={class:"row mb-10"},r={class:"col span-6"},c={class:"col span-3"},u={class:"col span-3"},d={class:"row"},p={class:"col span-6"},h={class:"row mb-10"},_={class:"col span-6"},m={class:"col span-6"},f={class:"row mb-10"},v={class:"col span-6"},b={class:"col span-6"},g={class:"row mb-10"},y={class:"col span-6"},k={class:"col span-6"};function w(e,t,n,w,E,N){const x=(0,a.resolveComponent)("LabeledInput"),S=(0,a.resolveComponent)("LabeledSelect"),V=(0,a.resolveComponent)("Checkbox");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(x,{value:n.value.host,"onUpdate:value":t[0]||(t[0]=e=>n.value.host=e),mode:n.mode,disabled:n.disabled,class:"host",label:e.t("logging.gelf.host")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(x,{value:N.port,"onUpdate:value":t[1]||(t[1]=e=>N.port=e),mode:n.mode,disabled:n.disabled,class:"port",type:"number",label:e.t("logging.gelf.port")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",u,[(0,a.createVNode)(S,{value:n.value.protocol,"onUpdate:value":t[2]||(t[2]=e=>n.value.protocol=e),options:E.protocolOptions,mode:n.mode,disabled:n.disabled,label:e.t("logging.gelf.protocol")},null,8,["value","options","mode","disabled","label"])])]),t[9]||(t[9]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("div",_,[(0,a.createVNode)(V,{value:n.value.tls,"onUpdate:value":t[3]||(t[3]=e=>n.value.tls=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.gelf.tls")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",m,[(0,a.createVNode)(V,{value:N.no_verify,"onUpdate:value":t[4]||(t[4]=e=>N.no_verify=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.gelf.tlsOptions.noVerify")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",f,[(0,a.createElementVNode)("div",v,[(0,a.createVNode)(x,{value:n.value.tls_options.cert,"onUpdate:value":t[5]||(t[5]=e=>n.value.tls_options.cert=e),type:"multiline",mode:n.mode,disabled:n.disabled,label:e.t("logging.gelf.tlsOptions.clientCert")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",b,[(0,a.createVNode)(x,{value:n.value.tls_options.key,"onUpdate:value":t[6]||(t[6]=e=>n.value.tls_options.key=e),type:"multiline",mode:n.mode,disabled:n.disabled,label:e.t("logging.gelf.tlsOptions.clientKey")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("div",y,[(0,a.createVNode)(x,{value:n.value.tls_options.tls_version,"onUpdate:value":t[7]||(t[7]=e=>n.value.tls_options.tls_version=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.gelf.tlsOptions.tlsVersion")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",k,[(0,a.createVNode)(V,{value:N.all_ciphers,"onUpdate:value":t[8]||(t[8]=e=>N.all_ciphers=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.gelf.tlsOptions.allCiphers")},null,8,["value","mode","disabled","label"])])])])}var E=n(79380),N=n(77988),x=n(42200),S={components:{Checkbox:x.S,LabeledInput:E.o,LabeledSelect:N.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},data(){const e=["tcp","udp"];return this.value["tls_options"]=this.value.tls_options||{},this.value["protocol"]=this.value.protocol||e[0],{protocolOptions:e}},computed:{port:{get(){return this.value.port},set(e){this.value["port"]=Number.parseInt(e)}},no_verify:{get(){return"true"===this.value.tls_options.no_verify},set(e){this.value.tls_options["no_verify"]=e?"true":null}},all_ciphers:{get(){return"true"===this.value.tls_options.all_ciphers},set(e){this.value.tls_options["all_ciphers"]=e?"true":null}}}},V=n(47433);const C=(0,V.A)(S,[["render",w]]);var O=C},97622:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return D}});var a=n(9274);const s={class:"kafka"},i={class:"row"},o={class:"col span-6"},l={class:"row"},r={class:"col span-6"},c={class:"col span-6"},u={class:"row"},d={class:"col span-6"},p={class:"row mb-10"},h={class:"col span-6"},_={class:"col span-6"},m={class:"row"},f={class:"col span-6"},v={class:"row"},b={class:"col span-6"},g={class:"row mb-10"},y={class:"col span-6"},k={class:"row mb-10"},w={class:"col span-6"},E={class:"col span-6"},N={class:"row mb-10"},x={class:"col span-6"},S={class:"col span-6"};function V(e,t,n,V,C,O){const T=(0,a.resolveComponent)("LabeledInput"),A=(0,a.resolveComponent)("SecretSelector"),I=(0,a.resolveComponent)("Checkbox");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(T,{value:n.value.brokers,"onUpdate:value":t[0]||(t[0]=e=>n.value.brokers=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.kafka.brokers")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(T,{value:n.value.default_topic,"onUpdate:value":t[1]||(t[1]=e=>n.value.default_topic=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.kafka.defaultTopic")},null,8,["value","mode","disabled","label"])])]),t[10]||(t[10]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",h,[(0,a.createVNode)(A,{value:n.value.username,"onUpdate:value":t[2]||(t[2]=e=>n.value.username=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.kafka.username"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",_,[(0,a.createVNode)(A,{value:n.value.password,"onUpdate:value":t[3]||(t[3]=e=>n.value.password=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.kafka.password"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",f,[(0,a.createVNode)(T,{value:n.value.scram_mechanism,"onUpdate:value":t[4]||(t[4]=e=>n.value.scram_mechanism=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.kafka.scramMechanism")},null,8,["value","mode","disabled","label"])])]),t[11]||(t[11]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",v,[(0,a.createElementVNode)("div",b,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("div",y,[(0,a.createVNode)(I,{value:n.value.sasl_over_ssl,"onUpdate:value":t[5]||(t[5]=e=>n.value.sasl_over_ssl=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.kafka.saslOverSsl")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",k,[(0,a.createElementVNode)("div",w,[(0,a.createVNode)(A,{value:n.value.ssl_ca_cert,"onUpdate:value":t[6]||(t[6]=e=>n.value.ssl_ca_cert=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.kafka.sslCaCert.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",E,[(0,a.createVNode)(A,{value:n.value.ssl_client_cert,"onUpdate:value":t[7]||(t[7]=e=>n.value.ssl_client_cert=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.kafka.sslClientCert.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",N,[(0,a.createElementVNode)("div",x,[(0,a.createVNode)(A,{value:n.value.ssl_client_cert_chain,"onUpdate:value":t[8]||(t[8]=e=>n.value.ssl_client_cert_chain=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.kafka.sslClientCertChain.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",S,[(0,a.createVNode)(A,{value:n.value.ssl_client_cert_key,"onUpdate:value":t[9]||(t[9]=e=>n.value.ssl_client_cert_key=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.kafka.sslClientCertKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var C=n(79380),O=n(7905),T=n(42200),A=n(69598),I={components:{Checkbox:T.S,LabeledInput:C.o,SecretSelector:O.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},data(){return{schemes:A.protocol}}},R=n(47433);const L=(0,R.A)(I,[["render",V]]);var D=L},37803:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return g}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row"},l={class:"col span-6"},r={class:"row"},c={class:"col span-6"},u={class:"row"},d={class:"col span-6"},p={class:"col span-6"};function h(e,t,n,h,_,m){const f=(0,a.resolveComponent)("LabeledInput"),v=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(f,{value:n.value.stream_name,"onUpdate:value":t[0]||(t[0]=e=>n.value.stream_name=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.kinesisStream.streamName")},null,8,["value","mode","disabled","label"])])]),t[3]||(t[3]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",r,[(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("div",d,[(0,a.createVNode)(v,{value:n.value.aws_key_id,"onUpdate:value":t[1]||(t[1]=e=>n.value.aws_key_id=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.kinesisStream.keyId"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",p,[(0,a.createVNode)(v,{value:n.value.aws_sec_key,"onUpdate:value":t[2]||(t[2]=e=>n.value.aws_sec_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.kinesisStream.secretKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var _=n(7905),m=n(79380),f={components:{LabeledInput:m.o,SecretSelector:_.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},v=n(47433);const b=(0,v.A)(f,[["render",h]]);var g=b},46636:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return b}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row mb-10"},l={class:"col span-6"},r={class:"col span-6"},c={class:"row"},u={class:"col span-6"},d={class:"row"},p={class:"col span-6"};function h(e,t,n,h,_,m){const f=(0,a.resolveComponent)("LabeledInput");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(f,{value:n.value.hostname,"onUpdate:value":t[0]||(t[0]=e=>n.value.hostname=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.logdna.hostname")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",r,[(0,a.createVNode)(f,{value:n.value.app,"onUpdate:value":t[1]||(t[1]=e=>n.value.app=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.logdna.app")},null,8,["value","mode","disabled","label"])])]),t[3]||(t[3]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("div",p,[(0,a.createVNode)(f,{value:n.value.api_key,"onUpdate:value":t[2]||(t[2]=e=>n.value.api_key=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.logdna.apiKey"),required:!0},null,8,["value","mode","disabled","label"])])])])}var _=n(79380),m={components:{LabeledInput:_.o},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},f=n(47433);const v=(0,f.A)(m,[["render",h]]);var b=v},72135:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return x}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row"},l={class:"col span-6"},r={class:"col span-6"},c={class:"row"},u={class:"col span-6"},d={class:"row"},p={class:"col span-6"},h={class:"row"},_={class:"col span-6"},m={class:"row"},f={class:"col span-6"};function v(e,t,n,v,b,g){const y=(0,a.resolveComponent)("LabeledInput"),k=(0,a.resolveComponent)("SecretSelector"),w=(0,a.resolveComponent)("Checkbox");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(y,{value:n.value.endpoint.url,"onUpdate:value":t[0]||(t[0]=e=>n.value.endpoint.url=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.logz.url")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",r,[(0,a.createVNode)(y,{value:g.port,"onUpdate:value":t[1]||(t[1]=e=>g.port=e),mode:n.mode,disabled:n.disabled,type:"number",min:"1",max:"65535",label:e.t("logging.logz.port")},null,8,["value","mode","disabled","label"])])]),t[4]||(t[4]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("div",p,[(0,a.createVNode)(k,{value:n.value.endpoint.token,"onUpdate:value":t[2]||(t[2]=e=>n.value.endpoint.token=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.logz.token"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),t[5]||(t[5]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",f,[(0,a.createVNode)(w,{value:n.value.gzip,"onUpdate:value":t[3]||(t[3]=e=>n.value.gzip=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.logz.enableCompression")},null,8,["value","mode","disabled","label"])])])])}var b=n(42200),g=n(79380),y=n(7905),k=n(69598),w={components:{Checkbox:b.S,LabeledInput:g.o,SecretSelector:y.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},computed:{port:{get(){return this.value.endpoint.port},set(e){(0,k.updatePort)((e=>this.value.endpoint["port"]=e),e)}}}},E=n(47433);const N=(0,E.A)(w,[["render",v]]);var x=N},42629:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return U}});var a=n(9274);const s={class:"loki"},i={class:"row"},o={class:"col span-6"},l={class:"row mb-10"},r={class:"col span-6"},c={class:"col span-6"},u={class:"row"},d={class:"col span-6"},p={class:"row"},h={class:"col span-6"},_={class:"col span-6"},m={class:"row"},f={class:"col span-6"},v={class:"row"},b={class:"col span-6"},g={class:"col span-6 mb-10"},y={class:"row"},k={class:"col span-6"},w={class:"row"},E={class:"col span-6"},N={class:"row mb-10"},x={class:"col span-12"},S={class:"row mb-10"},V={class:"col span-12"},C={class:"row mb-10"},O={class:"col span-12"};function T(e,t,n,T,A,I){const R=(0,a.resolveComponent)("LabeledInput"),L=(0,a.resolveComponent)("SecretSelector"),D=(0,a.resolveComponent)("Checkbox");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(R,{value:n.value.url,"onUpdate:value":t[0]||(t[0]=e=>n.value.url=e),mode:n.mode,disabled:n.disabled,class:"url",placeholder:"https://127.0.0.1:8000","data-testid":"loki-url",label:e.t("logging.loki.url")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(R,{value:n.value.tenant,"onUpdate:value":t[1]||(t[1]=e=>n.value.tenant=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.loki.tenant")},null,8,["value","mode","disabled","label"])])]),t[10]||(t[10]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",h,[(0,a.createVNode)(L,{value:n.value.username,"onUpdate:value":t[2]||(t[2]=e=>n.value.username=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.loki.username"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",_,[(0,a.createVNode)(L,{value:n.value.password,"onUpdate:value":t[3]||(t[3]=e=>n.value.password=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.loki.password"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),t[11]||(t[11]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",f,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",v,[(0,a.createElementVNode)("div",b,[(0,a.createVNode)(L,{value:n.value.ca_cert,"onUpdate:value":t[4]||(t[4]=e=>n.value.ca_cert=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.loki.caCert"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",g,[(0,a.createVNode)(L,{value:n.value.cert,"onUpdate:value":t[5]||(t[5]=e=>n.value.cert=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.loki.cert"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",y,[(0,a.createElementVNode)("div",k,[(0,a.createVNode)(L,{value:n.value.key,"onUpdate:value":t[6]||(t[6]=e=>n.value.key=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.loki.key"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),t[12]||(t[12]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",w,[(0,a.createElementVNode)("div",E,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.labels")),1)])]),(0,a.createElementVNode)("div",N,[(0,a.createElementVNode)("div",x,[(0,a.createVNode)(D,{value:n.value.configure_kubernetes_labels,"onUpdate:value":t[7]||(t[7]=e=>n.value.configure_kubernetes_labels=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.loki.configureKubernetesLabels")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",S,[(0,a.createElementVNode)("div",V,[(0,a.createVNode)(D,{value:n.value.extract_kubernetes_labels,"onUpdate:value":t[8]||(t[8]=e=>n.value.extract_kubernetes_labels=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.loki.extractKubernetesLabels")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",C,[(0,a.createElementVNode)("div",O,[(0,a.createVNode)(D,{value:n.value.drop_single_key,"onUpdate:value":t[9]||(t[9]=e=>n.value.drop_single_key=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.loki.dropSingleKey")},null,8,["value","mode","disabled","label"])])])])}var A=n(79380),I=n(7905),R=n(42200),L={components:{Checkbox:R.S,LabeledInput:A.o,SecretSelector:I.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},data(){return{}}},D=n(47433);const B=(0,D.A)(L,[["render",T]]);var U=B},12951:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return v}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row"},l={class:"col span-6"},r={class:"row"},c={class:"col span-6"},u={class:"col span-6"};function d(e,t,n,d,p,h){const _=(0,a.resolveComponent)("LabeledInput"),m=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(_,{value:n.value.base_uri,"onUpdate:value":t[0]||(t[0]=e=>n.value.base_uri=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.newrelic.baseURI")},null,8,["value","mode","disabled","label"])])]),t[3]||(t[3]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",r,[(0,a.createElementVNode)("div",c,[(0,a.createVNode)(m,{value:n.value.api_key,"onUpdate:value":t[1]||(t[1]=e=>n.value.api_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.newrelic.apiKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",u,[(0,a.createVNode)(m,{value:n.value.license_key,"onUpdate:value":t[2]||(t[2]=e=>n.value.license_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.newrelic.licenseKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var p=n(79380),h=n(7905),_={components:{LabeledInput:p.o,SecretSelector:h.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},m=n(47433);const f=(0,m.A)(_,[["render",d]]);var v=f},26087:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return M}});var a=n(9274);const s={class:"opensearch"},i={class:"row"},o={class:"col span-6"},l={class:"row mb-10"},r={class:"col span-2"},c={class:"col span-8"},u={class:"col span-2"},d={class:"row"},p={class:"col span-6"},h={class:"row"},_={class:"col span-6"},m={class:"row"},f={class:"col span-6"},v={class:"col span-6"},b={class:"row"},g={class:"col span-6"},y={class:"row mb-10"},k={class:"col span-6"},w={class:"col span-6"},E={class:"row"},N={class:"col span-6"},x={class:"col span-6"},S={class:"row mb-10"},V={class:"col span-6 vertically-center"};function C(e,t,n,C,O,T){const A=(0,a.resolveComponent)("LabeledSelect"),I=(0,a.resolveComponent)("LabeledInput"),R=(0,a.resolveComponent)("SecretSelector"),L=(0,a.resolveComponent)("Checkbox");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(A,{value:n.value.scheme,"onUpdate:value":t[0]||(t[0]=e=>n.value.scheme=e),mode:n.mode,disabled:n.disabled,class:"scheme",options:O.protocolOptions,label:e.t("logging.elasticsearch.scheme")},null,8,["value","mode","disabled","options","label"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(I,{value:n.value.host,"onUpdate:value":t[1]||(t[1]=e=>n.value.host=e),mode:n.mode,disabled:n.disabled,class:"host",label:e.t("logging.elasticsearch.host")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",u,[(0,a.createVNode)(I,{value:T.port,"onUpdate:value":t[2]||(t[2]=e=>T.port=e),valueModifiers:{number:!0},mode:n.mode,disabled:n.disabled,class:"port",type:"number",min:"1",max:"65535",label:e.t("logging.elasticsearch.port")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("div",p,[(0,a.createVNode)(I,{value:n.value.index_name,"onUpdate:value":t[3]||(t[3]=e=>n.value.index_name=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.elasticsearch.indexName")},null,8,["value","mode","disabled","label"])])]),t[12]||(t[12]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",f,[(0,a.createVNode)(I,{value:n.value.user,"onUpdate:value":t[4]||(t[4]=e=>n.value.user=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.elasticsearch.user")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",v,[(0,a.createVNode)(R,{value:n.value.password,"onUpdate:value":t[5]||(t[5]=e=>n.value.password=e),"secret-name-label":e.t("logging.elasticsearch.password"),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"show-key-selector":!0},null,8,["value","secret-name-label","mode","namespace","disabled"])])]),t[13]||(t[13]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",b,[(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",y,[(0,a.createElementVNode)("div",k,[(0,a.createVNode)(R,{value:n.value.ca_file,"onUpdate:value":t[6]||(t[6]=e=>n.value.ca_file=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.elasticsearch.caFile.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",w,[(0,a.createVNode)(R,{value:n.value.client_cert,"onUpdate:value":t[7]||(t[7]=e=>n.value.client_cert=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.elasticsearch.clientCert.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",E,[(0,a.createElementVNode)("div",N,[(0,a.createVNode)(R,{value:n.value.client_key,"onUpdate:value":t[8]||(t[8]=e=>n.value.client_key=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.elasticsearch.clientKey.label"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",x,[(0,a.createVNode)(R,{value:n.value.client_key_pass,"onUpdate:value":t[9]||(t[9]=e=>n.value.client_key_pass=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.elasticsearch.clientKeyPass"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",S,[(0,a.createElementVNode)("div",V,[(0,a.createVNode)(L,{value:n.value.ssl_verify,"onUpdate:value":t[10]||(t[10]=e=>n.value.ssl_verify=e),label:e.t("logging.elasticsearch.verifySsl"),disabled:n.disabled,mode:n.mode},null,8,["value","label","disabled","mode"]),(0,a.createVNode)(L,{value:n.value.suppress_type_name,"onUpdate:value":t[11]||(t[11]=e=>n.value.suppress_type_name=e),label:e.t("logging.elasticsearch.suppressTypeName.label"),tooltip:e.t("logging.elasticsearch.suppressTypeName.openSearchTips"),disabled:n.disabled,mode:n.mode},null,8,["value","label","tooltip","disabled","mode"])])])])}var O=n(79380),T=n(77988),A=n(7905),I=n(42200),R=n(14220),L=n(69598),D={components:{LabeledInput:O.o,LabeledSelect:T.A,SecretSelector:A.A,Checkbox:I.S},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},data(){return this.mode===R.YQ&&("undefined"===typeof this.value.ssl_verify&&(this.value["ssl_verify"]=!0),"undefined"===typeof this.value.ssl_version&&(this.value["ssl_version"]=L.sslVersions[0]),"undefined"===typeof this.value.suppress_type_name&&(this.value["suppress_type_name"]=!0)),{protocolOptions:L.protocol,sslVersions:L.sslVersions}},computed:{port:{get(){return this.value.port},set(e){(0,L.updatePort)((e=>this.value["port"]=e),e)}}}},B=(n(37075),n(47433));const U=(0,B.A)(D,[["render",C]]);var M=U},49054:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return O}});var a=n(9274);const s={class:"opensearch"},i={class:"row"},o={class:"col span-6"},l={class:"row mb-10"},r={class:"col span-8"},c={class:"col span-2"},u={class:"row"},d={class:"col span-6"},p={class:"col span-6"},h={class:"row"},_={class:"col span-6"},m={class:"row mb-10"},f={class:"col span-6"},v={class:"row"},b={class:"col span-6"},g={class:"row"},y={class:"col span-6"};function k(e,t,n,k,w,E){const N=(0,a.resolveComponent)("LabeledInput"),x=(0,a.resolveComponent)("LabeledSelect"),S=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(N,{value:n.value.host,"onUpdate:value":t[0]||(t[0]=e=>n.value.host=e),mode:n.mode,disabled:n.disabled,class:"host",label:e.t("logging.redis.host")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(N,{value:E.port,"onUpdate:value":t[1]||(t[1]=e=>E.port=e),valueModifiers:{number:!0},mode:n.mode,disabled:n.disabled,class:"port",type:"number",min:"1",max:"65535",label:e.t("logging.redis.port")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("div",d,[(0,a.createVNode)(N,{value:n.value.db_number,"onUpdate:value":t[2]||(t[2]=e=>n.value.db_number=e),valueModifiers:{number:!0},mode:n.mode,disabled:n.disabled,type:"number",label:e.t("logging.redis.dbNumber")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",p,[(0,a.createVNode)(N,{value:n.value.ttl,"onUpdate:value":t[3]||(t[3]=e=>n.value.ttl=e),valueModifiers:{number:!0},mode:n.mode,disabled:n.disabled,type:"number",label:e.t("logging.redis.ttl")},null,8,["value","mode","disabled","label"])])]),t[6]||(t[6]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.redis.format.title")),1)])]),(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",f,[(0,a.createVNode)(x,{value:n.value.format.type,"onUpdate:value":t[4]||(t[4]=e=>n.value.format.type=e),options:w.formatTypeOptions,mode:n.mode,disabled:n.disabled,label:e.t("logging.redis.format.type")},null,8,["value","options","mode","disabled","label"])])]),t[7]||(t[7]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",v,[(0,a.createElementVNode)("div",b,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("div",y,[(0,a.createVNode)(S,{value:n.value.password,"onUpdate:value":t[5]||(t[5]=e=>n.value.password=e),"secret-name-label":e.t("logging.elasticsearch.password"),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"show-key-selector":!0},null,8,["value","secret-name-label","mode","namespace","disabled"])])])])}var w=n(79380),E=n(7905),N=n(69598),x=n(77988),S={components:{LabeledInput:w.o,LabeledSelect:x.A,SecretSelector:E.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},data(){const e=["json","out_file","ltsv","csv","msgpack","hash","single_value"];return this.value["format"]=this.value.format||{type:e[0]},{formatTypeOptions:e}},computed:{port:{get(){return this.value.port},set(e){(0,N.updatePort)((e=>this.value.port=e),e)}}}},V=(n(9613),n(47433));const C=(0,V.A)(S,[["render",k]]);var O=C},32156:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return N}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row mb-10"},l={class:"col span-6"},r={class:"col span-6"},c={class:"row"},u={class:"col span-6"},d={class:"col span-6 overwrite"},p={class:"row"},h={class:"col span-6"},_={class:"row"},m={class:"col span-6"},f={class:"col span-6"};function v(e,t,n,v,b,g){const y=(0,a.resolveComponent)("LabeledInput"),k=(0,a.resolveComponent)("Checkbox"),w=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(y,{value:n.value.s3_endpoint,"onUpdate:value":t[0]||(t[0]=e=>n.value.s3_endpoint=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.s3.endpoint")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",r,[(0,a.createVNode)(y,{value:n.value.s3_bucket,"onUpdate:value":t[1]||(t[1]=e=>n.value.s3_bucket=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.s3.bucket")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("div",u,[(0,a.createVNode)(y,{value:n.value.path,"onUpdate:value":t[2]||(t[2]=e=>n.value.path=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.s3.path")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",d,[(0,a.createVNode)(k,{value:g.overwrite,"onUpdate:value":t[3]||(t[3]=e=>g.overwrite=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.s3.overwriteExistingPath")},null,8,["value","mode","disabled","label"])])]),t[6]||(t[6]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1)])]),(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("div",m,[(0,a.createVNode)(w,{value:n.value.aws_key_id,"onUpdate:value":t[4]||(t[4]=e=>n.value.aws_key_id=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.s3.keyId"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",f,[(0,a.createVNode)(w,{value:n.value.aws_sec_key,"onUpdate:value":t[5]||(t[5]=e=>n.value.aws_sec_key=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.s3.secretKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var b=n(42200),g=n(79380),y=n(7905),k={components:{Checkbox:b.S,LabeledInput:g.o,SecretSelector:y.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},computed:{overwrite:{get(){return"true"===this.value.overwrite},set(e){this.value["overwrite"]=e.toString()}}}},w=(n(57850),n(47433));const E=(0,w.A)(k,[["render",v],["__scopeId","data-v-3422a3ee"]]);var N=E},10918:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return A}});var a=n(9274);const s={class:"splunk"},i={class:"row mb-10"},o={class:"col span-2"},l={class:"col span-8"},r={class:"col span-2"},c={class:"row"},u={class:"col span-6"},d={class:"col span-6"},p={class:"row"},h={class:"col span-6"},_={class:"row mb-10"},m={class:"col span-6"},f={class:"row mb-10"},v={class:"col span-6"},b={class:"col span-6"},g={class:"row"},y={class:"col span-6"},k={class:"col span-6"};function w(e,t,n,w,E,N){const x=(0,a.resolveComponent)("LabeledSelect"),S=(0,a.resolveComponent)("LabeledInput"),V=(0,a.resolveComponent)("SecretSelector"),C=(0,a.resolveComponent)("Checkbox");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",null,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1),(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createVNode)(x,{value:n.value.protocol,"onUpdate:value":t[0]||(t[0]=e=>n.value.protocol=e),mode:n.mode,disabled:n.disabled,options:E.protocolOptions,label:e.t("logging.splunk.protocol")},null,8,["value","mode","disabled","options","label"])]),(0,a.createElementVNode)("div",l,[(0,a.createVNode)(S,{value:n.value.hec_host,"onUpdate:value":t[1]||(t[1]=e=>n.value.hec_host=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.splunk.host")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",r,[(0,a.createVNode)(S,{value:N.port,"onUpdate:value":t[2]||(t[2]=e=>N.port=e),mode:n.mode,disabled:n.disabled,type:"number",min:"1",max:"65535",label:e.t("logging.splunk.port")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("div",u,[(0,a.createVNode)(S,{value:n.value.index,"onUpdate:value":t[3]||(t[3]=e=>n.value.index=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.splunk.indexName")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",d,[(0,a.createVNode)(S,{value:n.value.source,"onUpdate:value":t[4]||(t[4]=e=>n.value.source=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.splunk.source")},null,8,["value","mode","disabled","label"])])])]),t[11]||(t[11]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",null,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.access")),1),(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",h,[(0,a.createVNode)(V,{value:n.value.hec_token,"onUpdate:value":t[5]||(t[5]=e=>n.value.hec_token=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.splunk.token"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])]),t[12]||(t[12]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1),(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("div",m,[(0,a.createVNode)(C,{value:n.value.insecure_ssl,"onUpdate:value":t[6]||(t[6]=e=>n.value.insecure_ssl=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.splunk.insecureSsl")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",f,[(0,a.createElementVNode)("div",v,[(0,a.createVNode)(V,{value:n.value.ca_file,"onUpdate:value":t[7]||(t[7]=e=>n.value.ca_file=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.splunk.caFile"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",b,[(0,a.createVNode)(V,{value:n.value.ca_path,"onUpdate:value":t[8]||(t[8]=e=>n.value.ca_path=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.splunk.caPath"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("div",y,[(0,a.createVNode)(V,{value:n.value.client_cert,"onUpdate:value":t[9]||(t[9]=e=>n.value.client_cert=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.splunk.clientCert"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])]),(0,a.createElementVNode)("div",k,[(0,a.createVNode)(V,{value:n.value.client_key,"onUpdate:value":t[10]||(t[10]=e=>n.value.client_key=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.splunk.clientKey"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var E=n(7905),N=n(79380),x=n(77988),S=n(42200),V=n(69598),C={components:{Checkbox:S.S,LabeledInput:N.o,LabeledSelect:x.A,SecretSelector:E.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},data(){return{protocolOptions:V.protocol}},computed:{port:{get(){return this.value.hec_port},set(e){(0,V.updatePort)((e=>this.value["hec_port"]=e),e)}}}},O=n(47433);const T=(0,O.A)(C,[["render",w]]);var A=T},54132:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return m}});var a=n(9274);const s={class:"row"},i={class:"col span-6"},o={class:"row"},l={class:"col span-6"},r={class:"col span-6"};function c(e,t,n,c,u,d){const p=(0,a.resolveComponent)("LabeledInput"),h=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(p,{value:n.value.source_name,"onUpdate:value":t[0]||(t[0]=e=>n.value.source_name=e),class:"source-name",mode:n.mode,disabled:n.disabled,label:e.t("logging.sumologic.sourceName")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",r,[(0,a.createVNode)(h,{value:n.value.endpoint,"onUpdate:value":t[1]||(t[1]=e=>n.value.endpoint=e),mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.sumologic.endpoint"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])])])}var u=n(79380),d=n(7905),p={components:{LabeledInput:u.o,SecretSelector:d.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}}},h=n(47433);const _=(0,h.A)(p,[["render",c]]);var m=_},32401:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return W}});var a=n(9274);const s={class:"elasticsearch"},i={class:"row"},o={class:"col span-6"},l={class:"row"},r={class:"col span-8"},c={class:"col span-4"},u={class:"row"},d={class:"col span-6"},p={class:"row mb-10"},h={class:"col span-6"},_={class:"col span-6 insecure"},m={class:"row mb-10"},f={class:"col span-6"},v={class:"row"},b={class:"col span-6"},g={class:"row mb-10"},y={class:"col span-6"},k={class:"row"},w={class:"col span-6"},E={class:"row mb-20"},N={class:"col span-6"},x={class:"row mb-10"},S={class:"col span-6"},V={class:"col span-6"},C={class:"row mb-20"},O={class:"col span-6"},T={class:"row mb-20"},A={class:"col span-6"},I={class:"row mb-10"},R={class:"col span-6"},L={class:"col span-6"},D={class:"row mb-10"},B={class:"col span-6"};function U(e,t,n,U,M,P){const j=(0,a.resolveComponent)("LabeledInput"),$=(0,a.resolveComponent)("LabeledSelect"),K=(0,a.resolveComponent)("Checkbox"),F=(0,a.resolveComponent)("SecretSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.target")),1)])]),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(j,{value:n.value.host,"onUpdate:value":t[0]||(t[0]=e=>n.value.host=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.host")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(j,{value:P.port,"onUpdate:value":t[1]||(t[1]=e=>P.port=e),mode:n.mode,disabled:n.disabled,class:"port",type:"number",label:e.t("logging.syslog.port")},null,8,["value","mode","disabled","label"])])]),t[14]||(t[14]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",u,[(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.output.sections.certificate")),1)])]),(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",h,[(0,a.createVNode)($,{value:n.value.transport,"onUpdate:value":t[2]||(t[2]=e=>n.value.transport=e),options:M.transportOptions,mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.transport")},null,8,["value","options","mode","disabled","label"])]),(0,a.createElementVNode)("div",_,[(0,a.createVNode)(K,{value:n.value.insecure,"onUpdate:value":t[3]||(t[3]=e=>n.value.insecure=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.insecure")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",f,[(0,a.createVNode)(F,{value:n.value.trusted_ca_path,"onUpdate:value":t[4]||(t[4]=e=>n.value.trusted_ca_path=e),"mount-key":"mountFrom",mode:n.mode,namespace:n.namespace,disabled:n.disabled,"secret-name-label":e.t("logging.syslog.trustedCaPath"),"show-key-selector":!0},null,8,["value","mode","namespace","disabled","secret-name-label"])])]),t[15]||(t[15]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",v,[(0,a.createElementVNode)("div",b,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.syslog.format.title")),1)])]),(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("div",y,[(0,a.createVNode)($,{value:n.value.format.type,"onUpdate:value":t[5]||(t[5]=e=>n.value.format.type=e),options:M.formatTypeOptions,mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.format.type")},null,8,["value","options","mode","disabled","label"])])]),t[16]||(t[16]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),(0,a.createElementVNode)("div",k,[(0,a.createElementVNode)("div",w,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("logging.syslog.buffer.title")),1)])]),(0,a.createElementVNode)("div",E,[(0,a.createElementVNode)("div",N,[(0,a.createVNode)(j,{value:n.value.buffer.tags,"onUpdate:value":t[6]||(t[6]=e=>n.value.buffer.tags=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.buffer.tags")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",x,[(0,a.createElementVNode)("div",S,[(0,a.createVNode)(j,{value:n.value.buffer.chunk_limit_size,"onUpdate:value":t[7]||(t[7]=e=>n.value.buffer.chunk_limit_size=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.buffer.chunkLimitSize")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",V,[(0,a.createVNode)(j,{value:P.chunkLimitRecords,"onUpdate:value":t[8]||(t[8]=e=>P.chunkLimitRecords=e),mode:n.mode,disabled:n.disabled,type:"number",label:e.t("logging.syslog.buffer.chunkLimitRecords")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",C,[(0,a.createElementVNode)("div",O,[(0,a.createVNode)(j,{value:n.value.buffer.total_limit_size,"onUpdate:value":t[9]||(t[9]=e=>n.value.buffer.total_limit_size=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.buffer.totalLimitSize")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",T,[(0,a.createElementVNode)("div",A,[(0,a.createVNode)(j,{value:n.value.buffer.flush_interval,"onUpdate:value":t[10]||(t[10]=e=>n.value.buffer.flush_interval=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.buffer.flushInterval")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",I,[(0,a.createElementVNode)("div",R,[(0,a.createVNode)(j,{value:n.value.buffer.timekey,"onUpdate:value":t[11]||(t[11]=e=>n.value.buffer.timekey=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.buffer.timekey")},null,8,["value","mode","disabled","label"])]),(0,a.createElementVNode)("div",L,[(0,a.createVNode)(j,{value:n.value.buffer.timekey_wait,"onUpdate:value":t[12]||(t[12]=e=>n.value.buffer.timekey_wait=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.buffer.timekeyWait")},null,8,["value","mode","disabled","label"])])]),(0,a.createElementVNode)("div",D,[(0,a.createElementVNode)("div",B,[(0,a.createVNode)(K,{value:n.value.buffer.timekey_use_utc,"onUpdate:value":t[13]||(t[13]=e=>n.value.buffer.timekey_use_utc=e),mode:n.mode,disabled:n.disabled,label:e.t("logging.syslog.buffer.timekeyUseUTC")},null,8,["value","mode","disabled","label"])])])])}var M=n(42200),P=n(79380),j=n(77988),$=n(7905),K={components:{Checkbox:M.S,LabeledInput:P.o,LabeledSelect:j.A,SecretSelector:$.A},props:{value:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},mode:{type:String,required:!0},namespace:{type:String,required:!0}},data(){const e=["json","out_file","ltsv","csv","msgpack","hash","single_value"],t=["tls","udp","tcp"];return this.value["format"]=this.value.format||{type:e[0]},this.value["buffer"]=this.value.buffer||{},this.value["transport"]=this.value.transport||t[0],{formatTypeOptions:e,transportOptions:t}},computed:{port:{get(){return this.value.port},set(e){this.value["port"]=Number.parseInt(e)}},chunkLimitRecords:{get(){return this.value.buffer.chunk_limit_records},set(e){this.value.buffer["chunk_limit_records"]=Number.parseInt(e)}}}},F=(n(76340),n(47433));const q=(0,F.A)(K,[["render",U],["__scopeId","data-v-fc78e272"]]);var W=q},45947:function(e,t,n){"use strict";n.d(t,{A:function(){return T}});var a=n(9274);const s={class:"icon icon-info"},i={class:"row mb-20"},o={class:"col span-6"},l={class:"row mb-20"},r={class:"col span-6"},c={class:"label"},u={class:"icon icon-info"},d={class:"row mb-20"},p={class:"col span-6"},h={class:"col span-6"},_={class:"row mb-20"},m={class:"col span-6"},f={class:"row mt-20 mb-20"},v={class:"col span-4"},b={class:"col span-4"},g={class:"col span-4"};function y(e,t,n,y,k,w){const E=(0,a.resolveComponent)("Banner"),N=(0,a.resolveComponent)("LabeledSelect"),x=(0,a.resolveComponent)("ArrayList"),S=(0,a.resolveComponent)("LabeledInput"),V=(0,a.resolveComponent)("ArrayListGrouped"),C=(0,a.resolveDirective)("clean-tooltip");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("h3",null,[t[6]||(t[6]=(0,a.createTextVNode)(" Receiver ")),(0,a.withDirectives)((0,a.createElementVNode)("i",s,null,512),[[C,e.t("monitoring.alertmanagerConfig.receiverTooltip")]])]),(0,a.createVNode)(E,{color:"info",label:e.t("monitoring.alertmanagerConfig.routeInfo")},null,8,["label"]),(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createVNode)(N,{value:n.value.receiver,"onUpdate:value":t[0]||(t[0]=e=>n.value.receiver=e),mode:n.mode,options:n.receiverOptions},null,8,["value","mode","options"])])]),t[7]||(t[7]=(0,a.createElementVNode)("h3",null,"Grouping",-1)),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createElementVNode)("span",c,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("monitoringRoute.groups.addGroupByLabel'"))+" ",1),(0,a.withDirectives)((0,a.createElementVNode)("i",u,null,512),[[C,e.t("monitoringRoute.groups.groupByTooltip")]])]),(0,a.createVNode)(x,{value:n.value.groupBy,"onUpdate:value":t[1]||(t[1]=e=>n.value.groupBy=e),class:"mt-10",mode:n.mode,"initial-empty-row":!0},null,8,["value","mode"])])]),t[8]||(t[8]=(0,a.createElementVNode)("h3",null,"Waiting and Intervals",-1)),(0,a.createElementVNode)("div",d,[(0,a.createElementVNode)("div",p,[(0,a.createVNode)(S,{value:n.value.groupWait,"onUpdate:value":t[2]||(t[2]=e=>n.value.groupWait=e),label:e.t("monitoringRoute.wait.label"),mode:n.mode},null,8,["value","label","mode"])]),(0,a.createElementVNode)("div",h,[(0,a.createVNode)(S,{value:n.value.groupInterval,"onUpdate:value":t[3]||(t[3]=e=>n.value.groupInterval=e),label:e.t("monitoringRoute.interval.label"),mode:n.mode},null,8,["value","label","mode"])])]),(0,a.createElementVNode)("div",_,[(0,a.createElementVNode)("div",m,[(0,a.createVNode)(S,{value:n.value.repeatInterval,"onUpdate:value":t[4]||(t[4]=e=>n.value.repeatInterval=e),label:e.t("monitoringRoute.repeatInterval.label"),mode:n.mode},null,8,["value","label","mode"])])]),t[9]||(t[9]=(0,a.createElementVNode)("h3",null,"Matchers",-1)),(0,a.createVNode)(V,{value:n.value.matchers,"onUpdate:value":t[5]||(t[5]=e=>n.value.matchers=e),class:"mt-20",mode:n.mode,"add-label":e.t("monitoringRoute.matching.addMatcher"),"default-add-value":{matchers:[]}},{default:(0,a.withCtx)((t=>[(0,a.createElementVNode)("div",f,[(0,a.createElementVNode)("div",v,[(0,a.createVNode)(S,{value:t.row.value.name,"onUpdate:value":e=>t.row.value.name=e,label:e.t("monitoringRoute.matching.name"),tooltip:e.t("monitoringRoute.matching.nameTooltip"),mode:n.mode},null,8,["value","onUpdate:value","label","tooltip","mode"])]),(0,a.createElementVNode)("div",b,[(0,a.createVNode)(S,{value:t.row.value.value,"onUpdate:value":e=>t.row.value.value=e,label:e.t("monitoringRoute.matching.value"),tooltip:e.t("monitoringRoute.matching.valueTooltip"),mode:n.mode},null,8,["value","onUpdate:value","label","tooltip","mode"])]),(0,a.createElementVNode)("div",g,[(0,a.createVNode)(N,{value:t.row.value.matchType,"onUpdate:value":e=>t.row.value.matchType=e,label:e.t("monitoringRoute.matching.matchType"),mode:n.mode,options:k.matchTypes},null,8,["value","onUpdate:value","label","mode","options"])])])])),_:1},8,["value","mode","add-label"])])}var k=n(22133),w=n(9980),E=n(79380),N=n(77988),x=n(14220),S=n(31097),V={components:{ArrayList:k.A,Banner:w.l,ArrayListGrouped:S.A,LabeledInput:E.o,LabeledSelect:N.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},receiverOptions:{type:Array,required:!0}},data(){return this.value["matchers"]=this.value.matchers||[],this.value["groupBy"]=this.value.groupBy||[],{isView:x.nW,matchTypes:[{label:"Match Equal",value:"="},{label:"Match Not Equal",value:"!="},{label:"Match Regexp",value:"=~"},{label:"Match Not Regexp",value:"!~"}]}}},C=n(47433);const O=(0,C.A)(V,[["render",y]]);var T=O},40756:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p}});var a=n(9274);const s={class:"row mb-20"},i={class:"col span-6"},o={class:"col span-6"};function l(e,t,n,l,r,c){const u=(0,a.resolveComponent)("LabeledInput");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createVNode)(u,{value:r.username,"onUpdate:value":t[0]||(t[0]=e=>r.username=e),required:"",label:e.t("secret.basic.username"),mode:n.mode},null,8,["value","label","mode"])]),(0,a.createElementVNode)("div",o,[(0,a.createVNode)(u,{value:r.password,"onUpdate:value":t[1]||(t[1]=e=>r.password=e),label:e.t("secret.basic.password"),mode:n.mode,type:"password"},null,8,["value","label","mode"])])])])}var r=n(79380),c={components:{LabeledInput:r.o},props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},data(){const e=this.value.decodedData.username||"",t=this.value.decodedData.password||"";return{username:e,password:t}},watch:{username:"update",password:"update"},methods:{update(){this.value.setData("username",this.username),this.value.setData("password",this.password)}}},u=n(47433);const d=(0,u.A)(c,[["render",l]]);var p=d},94719:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return d}});var a=n(9274);function s(e,t,n,s,i,o){const l=(0,a.resolveComponent)("KeyValue");return(0,a.openBlock)(),(0,a.createBlock)(l,{key:"data",value:n.value.data,"onUpdate:value":t[0]||(t[0]=e=>n.value.data=e),mode:n.mode,"initial-empty-row":!0,"handle-base64":!0,"value-trim":!1,"add-allowed":!0,"read-allowed":!0,"value-concealed":o.isView&&n.hideSensitiveData,"file-modifier":o.fileModifier,"parse-lines-from-file":!0,"read-icon":"","add-icon":""},null,8,["value","mode","value-concealed","file-modifier"])}var i=n(25088),o=n(14220);const l=/^[-._a-zA-Z0-9]*$/;var r={components:{KeyValue:i.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0},hideSensitiveData:{type:Boolean,default:!0}},computed:{isView(){return this.mode===o.nW}},methods:{fileModifier(e,t){return l.test(e)||(e=e.split("").map((e=>l.test(e)?e:"_")).join("")),{name:e,value:t}}}},c=n(47433);const u=(0,c.A)(r,[["render",s]]);var d=u},69216:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return I}});var a=n(9274);const s={class:"filled-height"},i={key:0,class:"row"},o={class:"col span-3"},l={class:"col span-3"};function r(e,t,n,r,c,u){const d=(0,a.resolveComponent)("Loading"),p=(0,a.resolveComponent)("NameNsDescription"),h=(0,a.resolveComponent)("LabeledSelect"),_=(0,a.resolveComponent)("LabeledInput"),m=(0,a.resolveComponent)("Tab"),f=(0,a.resolveComponent)("Labels"),v=(0,a.resolveComponent)("Tabbed"),b=(0,a.resolveComponent)("CruResource"),g=(0,a.resolveDirective)("focus");return(0,a.openBlock)(),(0,a.createElementBlock)("form",s,[e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(d,{key:0})):((0,a.openBlock)(),(0,a.createBlock)(b,{key:1,mode:e.mode,"validation-passed":!0,"selected-subtype":e.value._type,resource:e.value,errors:e.errors,"done-route":u.doneRoute,subtypes:u.secretSubTypes,onFinish:u.saveSecret,onSelectType:u.selectType,onError:t[4]||(t[4]=t=>e.errors=t)},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(p,{value:e.value,mode:e.mode,namespaced:!c.isCloud,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("input",t))},null,8,["value","mode","namespaced"]),u.isCustomSecretCreate?((0,a.openBlock)(),(0,a.createElementBlock)("div",i,[(0,a.createElementVNode)("div",o,[(0,a.createVNode)(h,{value:c.secretType,"onUpdate:value":[t[1]||(t[1]=e=>c.secretType=e),u.selectCustomType],options:c.secretTypes,searchable:!1,mode:e.mode,multiple:!1,reduce:e=>e.value,"label-key":"secret.type",required:""},null,8,["value","options","mode","reduce","onUpdate:value"])]),(0,a.createElementVNode)("div",l,[u.showCustomSecretType?(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createBlock)(_,{key:0,ref:"customType",value:e.value._type,"onUpdate:value":t[2]||(t[2]=t=>e.value._type=t),"label-key":"secret.customType",mode:e.mode,required:""},null,8,["value","mode"])),[[g]]):(0,a.createCommentVNode)("",!0)])])):(0,a.createCommentVNode)("",!0),t[5]||(t[5]=(0,a.createElementVNode)("div",{class:"spacer"},null,-1)),c.isCloud?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(u.cloudComponent),{key:1,ref:"cloudComponent","driver-name":u.driverName,value:e.value,mode:e.mode,"hide-sensitive-data":u.hideSensitiveData},null,8,["driver-name","value","mode","hide-sensitive-data"])):((0,a.openBlock)(),(0,a.createBlock)(v,{key:2,"side-tabs":!0,"default-tab":"data"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(m,{name:"data",label:u.dataLabel,weight:99},{default:(0,a.withCtx)((()=>[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(u.dataComponent),{value:e.value,mode:e.mode,"hide-sensitive-data":u.hideSensitiveData},null,8,["value","mode","hide-sensitive-data"]))])),_:1},8,["label"]),(0,a.createVNode)(m,{name:"labels","label-key":"generic.labelsAndAnnotations",weight:-1},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(f,{value:e.value,mode:e.mode,"onUpdate:value":t[3]||(t[3]=t=>e.$emit("input",t))},null,8,["value","mode"])])),_:1})])),_:1}))])),_:1},8,["mode","selected-subtype","resource","errors","done-route","subtypes","onFinish","onSelectType"]))])}var c=n(24989),u=n(35664),d=n(91825),p=n(32786),h=n(79380),_=n(77988),m=n(99960),f=n(14220),v=n(84409),b=n(59808),g=n(49584),y=n(7365),k=n(91462),w=n(2841),E=n(68851),N=n(47034),x=n(26337),S=n(74302),V=n(92043);const C=[c.J.OPAQUE,c.J.DOCKER_JSON,c.J.TLS,c.J.SSH,c.J.BASIC];var O={name:"CruSecret",emits:["set-subtype","input"],components:{LabeledInput:h.o,LabeledSelect:_.A,Loading:v.A,NameNsDescription:p.A,CruResource:m.A,Tabbed:b.A,Tab:g.A,Labels:y.A,SelectIconGrid:x.A},mixins:[d.A],async fetch(){this.isCloud&&(this.nodeDrivers=await this.$store.dispatch("management/findAll",{type:u.Mc.NODE_DRIVER}))},data(){const e=this.$route.query[f.Sd]===f.Qp,t=this.mode===f.G5&&this.value._type===c.J.CLOUD_CREDENTIAL,n=this.realMode===f.dT&&this.liveValue._type===c.J.CLOUD_CREDENTIAL,a=e||t||n;e&&(this.value.metadata.namespace=u.eo,this.value.metadata["name"]="",this.value["data"]={});const s=[{label:"Custom",value:"custom"},{label:"divider",disabled:!0,kind:"divider"}];return Object.values(c.J).forEach((e=>{s.push({label:e,value:e})})),{isCloud:a,nodeDrivers:null,secretTypes:s,secretType:this.value._type,initialSecretType:this.value._type}},computed:{isCustomSecretCreate(){return this.mode===f.YQ&&"custom"===this.$route.query.type},showCustomSecretType(){return"custom"===this.secretType},typeKey(){if(this.isCloud)return"cloud";switch(this.value._type){case c.J.TLS:return"tls";case c.J.BASIC:return"basic";case c.J.DOCKER_JSON:return"registry";case c.J.SSH:return"ssh"}return"generic"},dataComponent(){return n(48254)(`./${this.typeKey}`).default},driverName(){const e=this.value.metadata?.annotations?.[w.qt.CREDENTIAL_DRIVER];return e},cloudComponent(){return this.$store.getters["type-map/hasCustomCloudCredentialComponent"](this.driverName)?this.$store.getters["type-map/importCloudCredential"](this.driverName):this.$store.getters["type-map/importCloudCredential"]("generic")},secretSubTypes(){const e=[];if(this.isCloud){const a=(0,E.sb)(this.nodeDrivers.filter((e=>e.spec.active)).map((e=>e.spec.displayName||e.id)).map((e=>this.$store.getters["plugins/credentialDriverFor"](e))));for(const s of a){let a,i;try{a=n(53588)(`./${s}.svg`)}catch(t){a=null,i=this.initialDisplayFor(s)}e.push({id:s,label:this.typeDisplay(w.qt.CREDENTIAL_DRIVER,s),bannerImage:a,bannerAbbrv:i})}}else{for(const t of C)e.push({id:t,label:this.typeDisplay(t),bannerAbbrv:this.initialDisplayFor(t),description:this.t(`secret.typeDescriptions.'${t}'.description`),docLink:this.t(`secret.typeDescriptions.'${t}'.docLink`)});e.push({id:"custom",label:this.t("secret.customType"),bannerAbbrv:this.initialDisplayFor("custom"),description:this.t("secret.typeDescriptions.custom.description")})}return(0,S.Ul)(e,"label")},namespaces(){return this.$store.getters["cluster/all"](u.CU).map((e=>({label:e.nameDisplay,value:e.id})))},hideSensitiveData(){return this.$store.getters["prefs/get"](k.qv)},dataLabel(){switch(this.value._type){case c.J.TLS:return this.t("secret.certificate.certificate");case c.J.SSH:return this.t("secret.ssh.keys");case c.J.BASIC:return this.t("secret.authentication");default:return this.t("secret.data")}},doneRoute(){return this.$store.getters["currentProduct"].name===N.o?"c-cluster-manager-secret":"c-cluster-product-resource"}},methods:{async saveSecret(e){if(this.errors&&(0,E.IU)(this.errors),"function"===typeof this.$refs.cloudComponent?.test)try{const t=await this.$refs.cloudComponent.test();if(!t||t?.errors)return this.errors=t?.errors?t.errors:["Authentication test failed, please check your credentials"],void e(!1)}catch(t){return this.errors=[t],void e(!1)}return this.save(e)},selectType(e){let t;this.isCloud&&(e===c.J.CLOUD_CREDENTIAL?t=this.driverName:(t=e,e=c.J.CLOUD_CREDENTIAL),this.mode===f.YQ&&this.value.setAnnotation(w.qt.CREDENTIAL_DRIVER,t)),this.value["_type"]=e,this.$emit("set-subtype",this.typeDisplay(e,t)),this.secretType=e,this.mode===f.YQ&&"custom"===e&&(this.value["_type"]="")},typeDisplay(e,t){if(e===w.qt.CREDENTIAL_DRIVER)return this.$store.getters["i18n/withFallback"](`cluster.provider."${t}"`,null,t);{const t=e.replace(/^kubernetes.io\//,"");return this.$store.getters["i18n/withFallback"](`secret.types."${e}"`,null,t)}},initialDisplayFor(e){const t=((0,V.TF)(this.typeDisplay(e)||"").replace(/[^A-Z]/g,"")||e).substr(0,3);return this.$store.getters["i18n/withFallback"](`secret.initials."${e}"`,null,t)},selectCustomType(e){"custom"!==e&&(this.value["_type"]=e)}}},T=n(47433);const A=(0,T.A)(O,[["render",r]]);var I=A},25532:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return f}});var a=n(9274);const s={class:"row mb-10"},i={class:"col span-12"},o={key:0,class:"row mb-20"},l={class:"row mb-20"},r={class:"col span-6"},c={class:"col span-6"};function u(e,t,n,u,d,p){const h=(0,a.resolveComponent)("RadioGroup"),_=(0,a.resolveComponent)("LabeledInput");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createVNode)(h,{value:d.registryProvider,"onUpdate:value":t[0]||(t[0]=e=>d.registryProvider=e),name:"registryProvider",mode:n.mode,options:p.registryAddresses},null,8,["value","mode","options"])])]),p.needsDockerServer?((0,a.openBlock)(),(0,a.createElementBlock)("div",o,[(0,a.createVNode)(_,{value:d.registryUrl,"onUpdate:value":t[1]||(t[1]=e=>d.registryUrl=e),required:"",label:e.t("secret.registry.domainName"),placeholder:"e.g. index.docker.io",mode:n.mode},null,8,["value","label","mode"])])):(0,a.createCommentVNode)("",!0),(0,a.createElementVNode)("div",l,[(0,a.createElementVNode)("div",r,[(0,a.createVNode)(_,{value:d.username,"onUpdate:value":t[2]||(t[2]=e=>d.username=e),label:e.t("secret.registry.username"),mode:n.mode},null,8,["value","label","mode"])]),(0,a.createElementVNode)("div",c,[(0,a.createVNode)(_,{value:d.password,"onUpdate:value":t[3]||(t[3]=e=>d.password=e),label:e.t("secret.registry.password"),mode:n.mode,type:"password"},null,8,["value","label","mode"])])])])}var d=n(79380),p=n(10196),h={components:{LabeledInput:d.o,RadioGroup:p.z},props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},data(){let e,t="Custom";try{const t=JSON.parse(this.value.decodedData[".dockerconfigjson"]);e=t.auths}catch(i){}e=e||{};const n=Object.keys(e)[0]||"";"index.docker.io/v1/"===n?t="DockerHub":"quay.io"===n?t="Quay.io":n.includes("artifactory")&&(t="Artifactory");const a=e[n]?.username||"",s=e[n]?.password||"";return{registryProvider:t,username:a,password:s,registryUrl:n}},computed:{registryAddresses(){return["Custom","DockerHub","Quay.io","Artifactory"]},needsDockerServer(){return"Artifactory"===this.registryProvider||"Custom"===this.registryProvider},dockerconfigjson(){let e="DockerHub"===this.registryProvider?"index.docker.io/v1/":"quay.io";if(this.needsDockerServer&&(e=this.registryUrl),e){const t={auths:{[e]:{username:this.username,password:this.password}}},n=JSON.stringify(t);return n}return null}},watch:{registryProvider:"update",registryUrl:"update",username:"update",password:"update"},methods:{update(){this.value.setData(".dockerconfigjson",this.dockerconfigjson)}}},_=n(47433);const m=(0,_.A)(h,[["render",u]]);var f=m},13286:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return h}});var a=n(9274);const s={class:"row mb-20"},i={class:"col span-6"},o={class:"col span-6"};function l(e,t,n,l,r,c){const u=(0,a.resolveComponent)("LabeledInput"),d=(0,a.resolveComponent)("FileSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createVNode)(u,{value:r.username,"onUpdate:value":t[0]||(t[0]=e=>r.username=e),type:"multiline",label:e.t("secret.ssh.public"),mode:n.mode,required:"",placeholder:e.t("secret.ssh.publicPlaceholder")},null,8,["value","label","mode","placeholder"]),(0,a.createVNode)(d,{class:"btn btn-sm bg-primary mt-10",label:e.t("generic.readFromFile"),onSelected:c.onUsernameSelected},null,8,["label","onSelected"])]),(0,a.createElementVNode)("div",o,[(0,a.createVNode)(u,{value:r.password,"onUpdate:value":t[1]||(t[1]=e=>r.password=e),type:"multiline",label:e.t("secret.ssh.private"),mode:n.mode,required:"",placeholder:e.t("secret.ssh.privatePlaceholder")},null,8,["value","label","mode","placeholder"]),(0,a.createVNode)(d,{class:"btn btn-sm bg-primary mt-10",label:e.t("generic.readFromFile"),onSelected:c.onPasswordSelected},null,8,["label","onSelected"])])])])}var r=n(79380),c=n(29649),u={components:{LabeledInput:r.o,FileSelector:c.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},data(){const e=this.value.decodedData["ssh-publickey"]||"",t=this.value.decodedData["ssh-privatekey"]||"";return{username:e,password:t}},watch:{username:"update",password:"update"},methods:{onUsernameSelected:(0,c.B)("username"),onPasswordSelected:(0,c.B)("password"),update(){this.value.setData("ssh-publickey",this.username),this.value.setData("ssh-privatekey",this.password)}}},d=n(47433);const p=(0,d.A)(u,[["render",l]]);var h=p},64701:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var a=n(9274);const s={class:"row mb-20"},i={class:"col span-6"},o={class:"col span-6"};function l(e,t,n,l,r,c){const u=(0,a.resolveComponent)("LabeledInput"),d=(0,a.resolveComponent)("FileSelector");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",i,[(0,a.createVNode)(u,{value:r.key,"onUpdate:value":t[0]||(t[0]=e=>r.key=e),type:"multiline",label:e.t("secret.certificate.privateKey"),mode:n.mode,placeholder:e.t("secret.certificate.privateKeyPlaceholder")},null,8,["value","label","mode","placeholder"]),(0,a.createVNode)(d,{class:"btn btn-sm bg-primary mt-10",label:e.t("generic.readFromFile"),onSelected:c.onKeySelected},null,8,["label","onSelected"])]),(0,a.createElementVNode)("div",o,[(0,a.createVNode)(u,{value:r.crt,"onUpdate:value":t[1]||(t[1]=e=>r.crt=e),required:"",type:"multiline",label:e.t("secret.certificate.certificate"),mode:n.mode,placeholder:e.t("secret.certificate.certificatePlaceholder")},null,8,["value","label","mode","placeholder"]),(0,a.createVNode)(d,{class:"btn btn-sm bg-primary mt-10",label:e.t("generic.readFromFile"),onSelected:c.onCrtSelected},null,8,["label","onSelected"])])])])}var r=n(14220),c=n(79380),u=n(29649),d={components:{LabeledInput:c.o,FileSelector:u.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},data(){const e=this.value.decodedData["tls.key"]||"",t=this.mode===r.G5?"":e,n=this.value.decodedData["tls.crt"]||"";return{originalKey:e,key:t,crt:n}},watch:{key:"update",crt:"update"},methods:{onKeySelected:(0,u.B)("key"),onCrtSelected:(0,u.B)("crt"),update(){let e;e=this.mode!==r.G5||this.key.length?this.key:this.originalKey,this.value.setData("tls.crt",this.crt),this.value.setData("tls.key",e)}}},p=n(47433);const h=(0,p.A)(d,[["render",l]]);var _=h},69238:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,"h3{margin-top:10px}",""]),t["default"]=l},17450:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".row{margin-bottom:5px}.vertically-center{padding:20px 0}",""]),t["default"]=l},41366:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".row{margin-bottom:5px}.vertically-center{padding:20px 0}",""]),t["default"]=l},89082:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".row{margin-bottom:5px}",""]),t["default"]=l},91887:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".grid[data-v-c15e59a6]{display:flex;justify-content:flex-start;flex-wrap:wrap;margin:0 -10px}@media only screen and (min-width:480px){.grid .item[data-v-c15e59a6]{width:100%}}@media only screen and (min-width:768px){.grid .item[data-v-c15e59a6]{width:calc(50% - 20px)}}@media only screen and (min-width:992px){.grid .item[data-v-c15e59a6]{width:calc(33.33333% - 20px)}}@media only screen and (min-width:1281px){.grid .item[data-v-c15e59a6]{width:calc(25% - 20px)}}.grid .item[data-v-c15e59a6]{height:135px;margin:10px;padding:10px;position:relative;border:1px solid var(--border);text-decoration:none!important;color:var(--body-text)!important}.grid .item[data-v-c15e59a6]:focus-visible{outline:2px solid var(--primary-keyboard-focus)}.grid .item[data-v-c15e59a6]:hover:not(.disabled){box-shadow:0 0 30px var(--shadow);transition:box-shadow .1s ease-in-out;cursor:pointer;text-decoration:none!important}.grid .item .side-label[data-v-c15e59a6]{position:absolute;top:10px;right:10px;padding:2px 5px}.grid .item .side-label.indicator[data-v-c15e59a6]{top:0;right:0;left:0}.grid .item .side-label label[data-v-c15e59a6],.grid .item label.deploys-os-label[data-v-c15e59a6],.grid .item label.os-incompatible-label[data-v-c15e59a6]{font-size:12px;line-height:12px;text-align:center;display:block;white-space:no-wrap;text-overflow:ellipsis;color:var(--card-badge-text);margin:0}.grid .item .deploys-os-label[data-v-c15e59a6],.grid .item .os-incompatible-label[data-v-c15e59a6]{position:absolute;bottom:10px;padding:2px 5px;right:10px}.grid .item label.os-incompatible-label[data-v-c15e59a6]{color:var(--warning);background-color:var(--warning-banner-bg)}.grid .item .logo[data-v-c15e59a6]{text-align:center;position:absolute;left:25px;top:37.5px;width:60px;height:60px;border-radius:calc(var(--border-radius)*2);overflow:hidden;background-color:#fff}.grid .item .logo img[data-v-c15e59a6]{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;position:relative;top:2px}.grid .item .logo i[data-v-c15e59a6]{background-position:50%;background-repeat:no-repeat;display:flex;height:56px;margin:2px;width:56px}.grid .item.rancher .deploys-os-label[data-v-c15e59a6],.grid .item.rancher .side-label[data-v-c15e59a6]{background-color:var(--app-rancher-accent)}.grid .item.rancher .deploys-os-label label[data-v-c15e59a6],.grid .item.rancher .side-label label[data-v-c15e59a6]{color:var(--app-rancher-accent-text)}.grid .item.rancher[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-rancher-accent)}.grid .item.partner .deploys-os-label[data-v-c15e59a6],.grid .item.partner .side-label[data-v-c15e59a6]{background-color:var(--app-partner-accent)}.grid .item.partner .deploys-os-label label[data-v-c15e59a6],.grid .item.partner .side-label label[data-v-c15e59a6]{color:var(--app-partner-accent-text)}.grid .item.partner[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-partner-accent)}.grid .item.color1 .deploys-os-label[data-v-c15e59a6],.grid .item.color1 .side-label[data-v-c15e59a6]{background-color:var(--app-color1-accent)}.grid .item.color1 .deploys-os-label label[data-v-c15e59a6],.grid .item.color1 .side-label label[data-v-c15e59a6]{color:var(--app-color1-accent-text)}.grid .item.color1[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color1-accent)}.grid .item.color2 .deploys-os-label[data-v-c15e59a6],.grid .item.color2 .side-label[data-v-c15e59a6]{background-color:var(--app-color2-accent)}.grid .item.color2 .deploys-os-label label[data-v-c15e59a6],.grid .item.color2 .side-label label[data-v-c15e59a6]{color:var(--app-color2-accent-text)}.grid .item.color2[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color2-accent)}.grid .item.color3 .deploys-os-label[data-v-c15e59a6],.grid .item.color3 .side-label[data-v-c15e59a6]{background-color:var(--app-color3-accent)}.grid .item.color3 .deploys-os-label label[data-v-c15e59a6],.grid .item.color3 .side-label label[data-v-c15e59a6]{color:var(--app-color3-accent-text)}.grid .item.color3[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color3-accent)}.grid .item.color4 .deploys-os-label[data-v-c15e59a6],.grid .item.color4 .side-label[data-v-c15e59a6]{background-color:var(--app-color4-accent)}.grid .item.color4 .deploys-os-label label[data-v-c15e59a6],.grid .item.color4 .side-label label[data-v-c15e59a6]{color:var(--app-color4-accent-text)}.grid .item.color4[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color4-accent)}.grid .item.color5 .deploys-os-label[data-v-c15e59a6],.grid .item.color5 .side-label[data-v-c15e59a6]{background-color:var(--app-color5-accent)}.grid .item.color5 .deploys-os-label label[data-v-c15e59a6],.grid .item.color5 .side-label label[data-v-c15e59a6]{color:var(--app-color5-accent-text)}.grid .item.color5[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color5-accent)}.grid .item.color6 .deploys-os-label[data-v-c15e59a6],.grid .item.color6 .side-label[data-v-c15e59a6]{background-color:var(--app-color6-accent)}.grid .item.color6 .deploys-os-label label[data-v-c15e59a6],.grid .item.color6 .side-label label[data-v-c15e59a6]{color:var(--app-color6-accent-text)}.grid .item.color6[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color6-accent)}.grid .item.color7 .deploys-os-label[data-v-c15e59a6],.grid .item.color7 .side-label[data-v-c15e59a6]{background-color:var(--app-color7-accent)}.grid .item.color7 .deploys-os-label label[data-v-c15e59a6],.grid .item.color7 .side-label label[data-v-c15e59a6]{color:var(--app-color7-accent-text)}.grid .item.color7[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color7-accent)}.grid .item.color8 .deploys-os-label[data-v-c15e59a6],.grid .item.color8 .side-label[data-v-c15e59a6]{background-color:var(--app-color8-accent)}.grid .item.color8 .deploys-os-label label[data-v-c15e59a6],.grid .item.color8 .side-label label[data-v-c15e59a6]{color:var(--app-color8-accent-text)}.grid .item.color8[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color8-accent)}.grid .item[data-v-c15e59a6]:hover:not(.disabled){background-position:100%;border-left-width:1px}.grid .item:hover:not(.disabled) .logo[data-v-c15e59a6]{left:25px}.grid .item:hover:not(.disabled) .name[data-v-c15e59a6]{margin-left:85px}.grid .item .name[data-v-c15e59a6]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:115px;margin:0;margin-left:85px}.grid .item.has-description .name[data-v-c15e59a6]{margin-top:10px;line-height:normal}.grid .item.has-description.has-side-label .name[data-v-c15e59a6]{margin-top:15px}.grid .item .description[data-v-c15e59a6]{margin-top:10px;margin-left:85px;margin-right:10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted)!important}.grid .disabled[data-v-c15e59a6]{opacity:.5;cursor:not-allowed}",""]),t["default"]=l},6010:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".tip[data-v-491e4180]{color:var(--disabled-text);display:flex;align-items:center}.my-icon[data-v-491e4180]{font-size:16px;margin-right:2px}.text[data-v-491e4180]{font-size:14px}",""]),t["default"]=l},31410:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,"[data-v-313aeca6] .unlabeled-select{height:61px}",""]),t["default"]=l},85884:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".role[data-v-6f184c54]{display:flex;align-items:center;flex-direction:row}",""]),t["default"]=l},86383:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,"button[data-v-4cc43dc5]{all:unset;height:0;position:relative;top:-35px;float:right;margin-right:7px;cursor:pointer}button .align-value[data-v-4cc43dc5]{padding-top:7px}.row.name-ns-description[data-v-4cc43dc5]{max-height:61px}.row .namespace-select[data-v-4cc43dc5] .labeled-select{min-width:40%}.row .namespace-select[data-v-4cc43dc5] .labeled-select .v-select.inline.vs--single{padding-bottom:2px}.row.flip-direction[data-v-4cc43dc5]{flex-direction:column}.row.flip-direction.name-ns-description[data-v-4cc43dc5]{max-height:none}.row.flip-direction>div[data-v-4cc43dc5]>*{margin-bottom:20px}",""]),t["default"]=l},23633:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".headers[data-v-5ccfb77f]{display:flex;flex-direction:row;justify-content:space-evenly;align-items:center;border-bottom:1px solid var(--border);height:30px;width:calc(100% - 75px)}.headers div[data-v-5ccfb77f]{width:100%}",""]),t["default"]=l},84007:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".row[data-v-026e7674]{display:flex;flex-direction:row;justify-content:space-evenly}",""]),t["default"]=l},57456:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".secret-selector{width:100%}.secret-selector label{display:block}.secret-selector .labeled-select{min-height:61px}.secret-selector .vs__selected-options{padding:8px 0 7px 0}.secret-selector label{display:inline-block}.secret-selector.show-key-selector .input-container>*{display:inline-block;width:50%}.secret-selector.show-key-selector .input-container>.labeled-select.focused{z-index:10}.secret-selector.show-key-selector .input-container>:first-child{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.secret-selector.show-key-selector .input-container>:last-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none;float:right}",""]),t["default"]=l},34155:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,"[data-v-e1077e64] .icon-info{margin-top:-3px;margin-right:4px}",""]),t["default"]=l},55299:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".overwrite[data-v-6d929cee]{display:flex;align-items:center}",""]),t["default"]=l},75546:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".overwrite[data-v-3422a3ee]{display:flex;align-items:center}",""]),t["default"]=l},85940:function(e,t,n){"use strict";n.r(t);var a=n(36758),s=n.n(a),i=n(40935),o=n.n(i),l=o()(s());l.push([e.id,".insecure[data-v-fc78e272]{display:flex;align-items:center}",""]),t["default"]=l},16653:function(e,t,n){var a=n(81586),s=n(69632),i=Array.prototype,o=i.splice;function l(e,t){var n=e?t.length:0,i=n-1;while(n--){var l=t[n];if(n==i||l!==r){var r=l;s(l)?o.call(e,l,1):a(e,l)}}return e}e.exports=l},81586:function(e,t,n){var a=n(93526),s=n(98087),i=n(13398),o=n(66040);function l(e,t){return t=a(t,e),e=i(e,t),null==e||delete e[o(s(t))]}e.exports=l},13398:function(e,t,n){var a=n(57923),s=n(73501);function i(e,t){return t.length<2?e:a(e,s(t,0,-1))}e.exports=i},98087:function(e){function t(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}e.exports=t},65079:function(e,t,n){var a=n(3334),s=n(16653);function i(e,t){var n=[];if(!e||!e.length)return n;var i=-1,o=[],l=e.length;t=a(t,3);while(++ie.value===this.type))}},o={mappedTypes(){return this.types.map((e=>({label:this.t(e.labelKey),baseUnit:e.baseUnitKey?this.t(e.baseUnitKey):void 0,placeholder:this.t(e.placeholderKey),...e})))}}},69598:function(e,t,n){"use strict";n.r(t),n.d(t,{normalizePort:function(){return o},protocol:function(){return a},sslVersions:function(){return s},updatePort:function(){return i}});const a=["http","https"],s=["TLSv1_2","TLSv1_1","TLSv1","SSLv23"];function i(e,t){e(0),e(o(t))}function o(e){const t=Number.parseInt(e,10);return t<1?1:t>65535?65535:t}},87898:function(e,t,n){"use strict";n.d(t,{z8:function(){return s}});const a=/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(3[0-2]|2[0-9]|1[0-9]|[0-9])$/;function s(e){return!!e.match(a)}},31347:function(e,t,n){var a=n(69238);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("597efb0c",a,!0,{sourceMap:!1,shadowMode:!1})},40201:function(e,t,n){var a=n(17450);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("2fe38006",a,!0,{sourceMap:!1,shadowMode:!1})},37075:function(e,t,n){var a=n(41366);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("1eae9328",a,!0,{sourceMap:!1,shadowMode:!1})},9613:function(e,t,n){var a=n(89082);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("6eb06fc2",a,!0,{sourceMap:!1,shadowMode:!1})},32015:function(e,t,n){var a=n(91887);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("704857de",a,!0,{sourceMap:!1,shadowMode:!1})},6458:function(e,t,n){var a=n(6010);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("6cd9eebe",a,!0,{sourceMap:!1,shadowMode:!1})},97362:function(e,t,n){var a=n(31410);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("2b31a5a0",a,!0,{sourceMap:!1,shadowMode:!1})},43580:function(e,t,n){var a=n(85884);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("12695b0b",a,!0,{sourceMap:!1,shadowMode:!1})},73423:function(e,t,n){var a=n(86383);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("4fa99f38",a,!0,{sourceMap:!1,shadowMode:!1})},96209:function(e,t,n){var a=n(23633);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("1c6c63fc",a,!0,{sourceMap:!1,shadowMode:!1})},86727:function(e,t,n){var a=n(84007);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("0fdc63ee",a,!0,{sourceMap:!1,shadowMode:!1})},51568:function(e,t,n){var a=n(57456);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("0bec987e",a,!0,{sourceMap:!1,shadowMode:!1})},2187:function(e,t,n){var a=n(34155);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("fdd8da38",a,!0,{sourceMap:!1,shadowMode:!1})},59171:function(e,t,n){var a=n(55299);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("74e1be48",a,!0,{sourceMap:!1,shadowMode:!1})},57850:function(e,t,n){var a=n(75546);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("b23babd8",a,!0,{sourceMap:!1,shadowMode:!1})},76340:function(e,t,n){var a=n(85940);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(74825).A;s("2a06e627",a,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.198.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.198.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.198.js.map new file mode 100644 index 00000000..253b9273 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.198.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.198.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/compiler-dom/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/test-utils/dist/vue-test-utils.esm-bundler.mjs","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/__tests__/loki.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ContainerResourceLimit.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ContainerResourceLimit.vue?ec65","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/MessageLink.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/MessageLink.vue?6dc7","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SelectIconGrid.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SelectIconGrid.vue?38a9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tip.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tip.vue?035f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayListSelect.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayListSelect.vue?3811","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Members/ProjectMembershipEditor.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Members/MembershipEditor.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Members/MembershipEditor.vue?bebc","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Members/ProjectMembershipEditor.vue?750e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/NameNsDescription.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/kube.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/NameNsDescription.vue?1479","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/Project.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/ProjectRow.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/ProjectRow.vue?393b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/Project.vue?47f6","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/SecretSelector.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/SecretSelector.vue?db9c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging-flow/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging-flow/Match.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging-flow/Match.vue?b9b4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging-flow/index.vue?e39c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue?0eae","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/azurestorage.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/azurestorage.vue?9a99","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue?5e6b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/datadog.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/datadog.vue?8896","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue?4abd","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/file.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/file.vue?b1fb","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/forward.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/forward.vue?5ec7","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/gcs.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/gcs.vue?129c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/gelf.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/gelf.vue?77b8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/kafka.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/kafka.vue?0faf","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue?aa32","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/logdna.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/logdna.vue?7662","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/logz.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/logz.vue?7ca8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/loki.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/loki.vue?fac9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/newrelic.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/newrelic.vue?76bf","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/opensearch.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/opensearch.vue?1389","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/redis.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/redis.vue?a7ad","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/s3.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/s3.vue?a61a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/splunkHec.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/splunkHec.vue?2f28","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/sumologic.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/sumologic.vue?627b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/syslog.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/syslog.vue?f9d6","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue?9d91","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/basic.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/basic.vue?13d0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/generic.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/generic.vue?5796","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/index.vue?8e86","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/registry.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/registry.vue?fb1c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/ssh.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/ssh.vue?3142","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/tls.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/secret/tls.vue?c4fb","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue?4e00","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue?2518","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/opensearch.vue?3166","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/redis.vue?fa85","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SelectIconGrid.vue?a4aa","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tip.vue?f5a0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayListSelect.vue?2e0a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Members/MembershipEditor.vue?5a1e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/NameNsDescription.vue?6c2c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/Project.vue?1132","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/ProjectRow.vue?8e0d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/SecretSelector.vue?5f26","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging-flow/index.vue?79b9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/gcs.vue?525d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/s3.vue?437c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/syslog.vue?c8c1","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_basePullAt.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseUnset.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_parent.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/last.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/remove.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/shared.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/utils.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/cidr.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue?2b02","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue?5c1b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/opensearch.vue?61e3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/redis.vue?18e8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SelectIconGrid.vue?6227","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tip.vue?6e5e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayListSelect.vue?1804","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Members/MembershipEditor.vue?aac6","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/NameNsDescription.vue?410f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/Project.vue?9c58","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceQuota/ProjectRow.vue?16bc","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/SecretSelector.vue?3736","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging-flow/index.vue?bea5","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/gcs.vue?8834","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/s3.vue?506b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/logging.banzaicloud.io.output/providers/syslog.vue?c7ea"],"sourcesContent":["/**\n* @vue/shared v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/compiler-core v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { isString, NOOP, isObject, NO, extend, isSymbol, isArray, capitalize, camelize, EMPTY_OBJ, PatchFlagNames, slotFlagsText, isOn, isBuiltInDirective, isReservedProp, toHandlerKey } from '@vue/shared';\nexport { generateCodeFrame } from '@vue/shared';\n\nconst FRAGMENT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `Fragment` : ``);\nconst TELEPORT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `Teleport` : ``);\nconst SUSPENSE = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `Suspense` : ``);\nconst KEEP_ALIVE = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `KeepAlive` : ``);\nconst BASE_TRANSITION = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `BaseTransition` : ``\n);\nconst OPEN_BLOCK = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `openBlock` : ``);\nconst CREATE_BLOCK = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `createBlock` : ``);\nconst CREATE_ELEMENT_BLOCK = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createElementBlock` : ``\n);\nconst CREATE_VNODE = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `createVNode` : ``);\nconst CREATE_ELEMENT_VNODE = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createElementVNode` : ``\n);\nconst CREATE_COMMENT = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createCommentVNode` : ``\n);\nconst CREATE_TEXT = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createTextVNode` : ``\n);\nconst CREATE_STATIC = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createStaticVNode` : ``\n);\nconst RESOLVE_COMPONENT = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `resolveComponent` : ``\n);\nconst RESOLVE_DYNAMIC_COMPONENT = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `resolveDynamicComponent` : ``\n);\nconst RESOLVE_DIRECTIVE = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `resolveDirective` : ``\n);\nconst RESOLVE_FILTER = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `resolveFilter` : ``\n);\nconst WITH_DIRECTIVES = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `withDirectives` : ``\n);\nconst RENDER_LIST = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `renderList` : ``);\nconst RENDER_SLOT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `renderSlot` : ``);\nconst CREATE_SLOTS = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `createSlots` : ``);\nconst TO_DISPLAY_STRING = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `toDisplayString` : ``\n);\nconst MERGE_PROPS = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `mergeProps` : ``);\nconst NORMALIZE_CLASS = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `normalizeClass` : ``\n);\nconst NORMALIZE_STYLE = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `normalizeStyle` : ``\n);\nconst NORMALIZE_PROPS = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `normalizeProps` : ``\n);\nconst GUARD_REACTIVE_PROPS = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `guardReactiveProps` : ``\n);\nconst TO_HANDLERS = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `toHandlers` : ``);\nconst CAMELIZE = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `camelize` : ``);\nconst CAPITALIZE = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `capitalize` : ``);\nconst TO_HANDLER_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `toHandlerKey` : ``\n);\nconst SET_BLOCK_TRACKING = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `setBlockTracking` : ``\n);\nconst PUSH_SCOPE_ID = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `pushScopeId` : ``);\nconst POP_SCOPE_ID = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `popScopeId` : ``);\nconst WITH_CTX = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `withCtx` : ``);\nconst UNREF = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `unref` : ``);\nconst IS_REF = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `isRef` : ``);\nconst WITH_MEMO = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `withMemo` : ``);\nconst IS_MEMO_SAME = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `isMemoSame` : ``);\nconst helperNameMap = {\n [FRAGMENT]: `Fragment`,\n [TELEPORT]: `Teleport`,\n [SUSPENSE]: `Suspense`,\n [KEEP_ALIVE]: `KeepAlive`,\n [BASE_TRANSITION]: `BaseTransition`,\n [OPEN_BLOCK]: `openBlock`,\n [CREATE_BLOCK]: `createBlock`,\n [CREATE_ELEMENT_BLOCK]: `createElementBlock`,\n [CREATE_VNODE]: `createVNode`,\n [CREATE_ELEMENT_VNODE]: `createElementVNode`,\n [CREATE_COMMENT]: `createCommentVNode`,\n [CREATE_TEXT]: `createTextVNode`,\n [CREATE_STATIC]: `createStaticVNode`,\n [RESOLVE_COMPONENT]: `resolveComponent`,\n [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,\n [RESOLVE_DIRECTIVE]: `resolveDirective`,\n [RESOLVE_FILTER]: `resolveFilter`,\n [WITH_DIRECTIVES]: `withDirectives`,\n [RENDER_LIST]: `renderList`,\n [RENDER_SLOT]: `renderSlot`,\n [CREATE_SLOTS]: `createSlots`,\n [TO_DISPLAY_STRING]: `toDisplayString`,\n [MERGE_PROPS]: `mergeProps`,\n [NORMALIZE_CLASS]: `normalizeClass`,\n [NORMALIZE_STYLE]: `normalizeStyle`,\n [NORMALIZE_PROPS]: `normalizeProps`,\n [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,\n [TO_HANDLERS]: `toHandlers`,\n [CAMELIZE]: `camelize`,\n [CAPITALIZE]: `capitalize`,\n [TO_HANDLER_KEY]: `toHandlerKey`,\n [SET_BLOCK_TRACKING]: `setBlockTracking`,\n [PUSH_SCOPE_ID]: `pushScopeId`,\n [POP_SCOPE_ID]: `popScopeId`,\n [WITH_CTX]: `withCtx`,\n [UNREF]: `unref`,\n [IS_REF]: `isRef`,\n [WITH_MEMO]: `withMemo`,\n [IS_MEMO_SAME]: `isMemoSame`\n};\nfunction registerRuntimeHelpers(helpers) {\n Object.getOwnPropertySymbols(helpers).forEach((s) => {\n helperNameMap[s] = helpers[s];\n });\n}\n\nconst Namespaces = {\n \"HTML\": 0,\n \"0\": \"HTML\",\n \"SVG\": 1,\n \"1\": \"SVG\",\n \"MATH_ML\": 2,\n \"2\": \"MATH_ML\"\n};\nconst NodeTypes = {\n \"ROOT\": 0,\n \"0\": \"ROOT\",\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"TEXT\": 2,\n \"2\": \"TEXT\",\n \"COMMENT\": 3,\n \"3\": \"COMMENT\",\n \"SIMPLE_EXPRESSION\": 4,\n \"4\": \"SIMPLE_EXPRESSION\",\n \"INTERPOLATION\": 5,\n \"5\": \"INTERPOLATION\",\n \"ATTRIBUTE\": 6,\n \"6\": \"ATTRIBUTE\",\n \"DIRECTIVE\": 7,\n \"7\": \"DIRECTIVE\",\n \"COMPOUND_EXPRESSION\": 8,\n \"8\": \"COMPOUND_EXPRESSION\",\n \"IF\": 9,\n \"9\": \"IF\",\n \"IF_BRANCH\": 10,\n \"10\": \"IF_BRANCH\",\n \"FOR\": 11,\n \"11\": \"FOR\",\n \"TEXT_CALL\": 12,\n \"12\": \"TEXT_CALL\",\n \"VNODE_CALL\": 13,\n \"13\": \"VNODE_CALL\",\n \"JS_CALL_EXPRESSION\": 14,\n \"14\": \"JS_CALL_EXPRESSION\",\n \"JS_OBJECT_EXPRESSION\": 15,\n \"15\": \"JS_OBJECT_EXPRESSION\",\n \"JS_PROPERTY\": 16,\n \"16\": \"JS_PROPERTY\",\n \"JS_ARRAY_EXPRESSION\": 17,\n \"17\": \"JS_ARRAY_EXPRESSION\",\n \"JS_FUNCTION_EXPRESSION\": 18,\n \"18\": \"JS_FUNCTION_EXPRESSION\",\n \"JS_CONDITIONAL_EXPRESSION\": 19,\n \"19\": \"JS_CONDITIONAL_EXPRESSION\",\n \"JS_CACHE_EXPRESSION\": 20,\n \"20\": \"JS_CACHE_EXPRESSION\",\n \"JS_BLOCK_STATEMENT\": 21,\n \"21\": \"JS_BLOCK_STATEMENT\",\n \"JS_TEMPLATE_LITERAL\": 22,\n \"22\": \"JS_TEMPLATE_LITERAL\",\n \"JS_IF_STATEMENT\": 23,\n \"23\": \"JS_IF_STATEMENT\",\n \"JS_ASSIGNMENT_EXPRESSION\": 24,\n \"24\": \"JS_ASSIGNMENT_EXPRESSION\",\n \"JS_SEQUENCE_EXPRESSION\": 25,\n \"25\": \"JS_SEQUENCE_EXPRESSION\",\n \"JS_RETURN_STATEMENT\": 26,\n \"26\": \"JS_RETURN_STATEMENT\"\n};\nconst ElementTypes = {\n \"ELEMENT\": 0,\n \"0\": \"ELEMENT\",\n \"COMPONENT\": 1,\n \"1\": \"COMPONENT\",\n \"SLOT\": 2,\n \"2\": \"SLOT\",\n \"TEMPLATE\": 3,\n \"3\": \"TEMPLATE\"\n};\nconst ConstantTypes = {\n \"NOT_CONSTANT\": 0,\n \"0\": \"NOT_CONSTANT\",\n \"CAN_SKIP_PATCH\": 1,\n \"1\": \"CAN_SKIP_PATCH\",\n \"CAN_CACHE\": 2,\n \"2\": \"CAN_CACHE\",\n \"CAN_STRINGIFY\": 3,\n \"3\": \"CAN_STRINGIFY\"\n};\nconst locStub = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 },\n source: \"\"\n};\nfunction createRoot(children, source = \"\") {\n return {\n type: 0,\n source,\n children,\n helpers: /* @__PURE__ */ new Set(),\n components: [],\n directives: [],\n hoists: [],\n imports: [],\n cached: [],\n temps: 0,\n codegenNode: void 0,\n loc: locStub\n };\n}\nfunction createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) {\n if (context) {\n if (isBlock) {\n context.helper(OPEN_BLOCK);\n context.helper(getVNodeBlockHelper(context.inSSR, isComponent));\n } else {\n context.helper(getVNodeHelper(context.inSSR, isComponent));\n }\n if (directives) {\n context.helper(WITH_DIRECTIVES);\n }\n }\n return {\n type: 13,\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent,\n loc\n };\n}\nfunction createArrayExpression(elements, loc = locStub) {\n return {\n type: 17,\n loc,\n elements\n };\n}\nfunction createObjectExpression(properties, loc = locStub) {\n return {\n type: 15,\n loc,\n properties\n };\n}\nfunction createObjectProperty(key, value) {\n return {\n type: 16,\n loc: locStub,\n key: isString(key) ? createSimpleExpression(key, true) : key,\n value\n };\n}\nfunction createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {\n return {\n type: 4,\n loc,\n content,\n isStatic,\n constType: isStatic ? 3 : constType\n };\n}\nfunction createInterpolation(content, loc) {\n return {\n type: 5,\n loc,\n content: isString(content) ? createSimpleExpression(content, false, loc) : content\n };\n}\nfunction createCompoundExpression(children, loc = locStub) {\n return {\n type: 8,\n loc,\n children\n };\n}\nfunction createCallExpression(callee, args = [], loc = locStub) {\n return {\n type: 14,\n loc,\n callee,\n arguments: args\n };\n}\nfunction createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {\n return {\n type: 18,\n params,\n returns,\n newline,\n isSlot,\n loc\n };\n}\nfunction createConditionalExpression(test, consequent, alternate, newline = true) {\n return {\n type: 19,\n test,\n consequent,\n alternate,\n newline,\n loc: locStub\n };\n}\nfunction createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) {\n return {\n type: 20,\n index,\n value,\n needPauseTracking,\n inVOnce,\n needArraySpread: false,\n loc: locStub\n };\n}\nfunction createBlockStatement(body) {\n return {\n type: 21,\n body,\n loc: locStub\n };\n}\nfunction createTemplateLiteral(elements) {\n return {\n type: 22,\n elements,\n loc: locStub\n };\n}\nfunction createIfStatement(test, consequent, alternate) {\n return {\n type: 23,\n test,\n consequent,\n alternate,\n loc: locStub\n };\n}\nfunction createAssignmentExpression(left, right) {\n return {\n type: 24,\n left,\n right,\n loc: locStub\n };\n}\nfunction createSequenceExpression(expressions) {\n return {\n type: 25,\n expressions,\n loc: locStub\n };\n}\nfunction createReturnStatement(returns) {\n return {\n type: 26,\n returns,\n loc: locStub\n };\n}\nfunction getVNodeHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE;\n}\nfunction getVNodeBlockHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;\n}\nfunction convertToBlock(node, { helper, removeHelper, inSSR }) {\n if (!node.isBlock) {\n node.isBlock = true;\n removeHelper(getVNodeHelper(inSSR, node.isComponent));\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(inSSR, node.isComponent));\n }\n}\n\nconst defaultDelimitersOpen = new Uint8Array([123, 123]);\nconst defaultDelimitersClose = new Uint8Array([125, 125]);\nfunction isTagStartChar(c) {\n return c >= 97 && c <= 122 || c >= 65 && c <= 90;\n}\nfunction isWhitespace(c) {\n return c === 32 || c === 10 || c === 9 || c === 12 || c === 13;\n}\nfunction isEndOfTagSection(c) {\n return c === 47 || c === 62 || isWhitespace(c);\n}\nfunction toCharCodes(str) {\n const ret = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n ret[i] = str.charCodeAt(i);\n }\n return ret;\n}\nconst Sequences = {\n Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),\n // CDATA[\n CdataEnd: new Uint8Array([93, 93, 62]),\n // ]]>\n CommentEnd: new Uint8Array([45, 45, 62]),\n // `-->`\n ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),\n // `<\\/script`\n StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),\n // `= 0; i--) {\n const newlineIndex = this.newlines[i];\n if (index > newlineIndex) {\n line = i + 2;\n column = index - newlineIndex;\n break;\n }\n }\n return {\n column,\n line,\n offset: index\n };\n }\n peek() {\n return this.buffer.charCodeAt(this.index + 1);\n }\n stateText(c) {\n if (c === 60) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = 5;\n this.sectionStart = this.index;\n } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n }\n stateInterpolationOpen(c) {\n if (c === this.delimiterOpen[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterOpen.length - 1) {\n const start = this.index + 1 - this.delimiterOpen.length;\n if (start > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, start);\n }\n this.state = 3;\n this.sectionStart = start;\n } else {\n this.delimiterIndex++;\n }\n } else if (this.inRCDATA) {\n this.state = 32;\n this.stateInRCDATA(c);\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInterpolation(c) {\n if (c === this.delimiterClose[0]) {\n this.state = 4;\n this.delimiterIndex = 0;\n this.stateInterpolationClose(c);\n }\n }\n stateInterpolationClose(c) {\n if (c === this.delimiterClose[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterClose.length - 1) {\n this.cbs.oninterpolation(this.sectionStart, this.index + 1);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else {\n this.delimiterIndex++;\n }\n } else {\n this.state = 3;\n this.stateInterpolation(c);\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd ? (\n // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n ) : (\n // Otherwise, do a case-insensitive comparison\n (c | 32) === this.currentSequence[this.sequenceIndex]\n );\n if (!isMatch) {\n this.inRCDATA = false;\n } else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = 6;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For and <textarea>, also decode entities. */\n stateInRCDATA(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === 62 || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.sectionStart = endOfText + 2;\n this.stateInClosingTagName(c);\n this.inRCDATA = false;\n return;\n }\n this.sequenceIndex = 0;\n }\n if ((c | 32) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n } else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {\n if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n } else if (this.fastForwardTo(60)) {\n this.sequenceIndex = 1;\n }\n } else {\n this.sequenceIndex = Number(c === 60);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = 28;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n } else {\n this.sequenceIndex = 0;\n this.state = 23;\n this.stateInDeclaration(c);\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length) {\n const cc = this.buffer.charCodeAt(this.index);\n if (cc === 10) {\n this.newlines.push(this.index);\n }\n if (cc === c) {\n return true;\n }\n }\n this.index = this.buffer.length - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index - 2);\n } else {\n this.cbs.oncomment(this.sectionStart, this.index - 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = 1;\n }\n } else if (this.sequenceIndex === 0) {\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n this.sequenceIndex = 0;\n }\n }\n startSpecial(sequence, offset) {\n this.enterRCDATA(sequence, offset);\n this.state = 31;\n }\n enterRCDATA(sequence, offset) {\n this.inRCDATA = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n }\n stateBeforeTagName(c) {\n if (c === 33) {\n this.state = 22;\n this.sectionStart = this.index + 1;\n } else if (c === 63) {\n this.state = 24;\n this.sectionStart = this.index + 1;\n } else if (isTagStartChar(c)) {\n this.sectionStart = this.index;\n if (this.mode === 0) {\n this.state = 6;\n } else if (this.inSFCRoot) {\n this.state = 34;\n } else if (!this.inXML) {\n if (c === 116) {\n this.state = 30;\n } else {\n this.state = c === 115 ? 29 : 6;\n }\n } else {\n this.state = 6;\n }\n } else if (c === 47) {\n this.state = 8;\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.handleTagName(c);\n }\n }\n stateInSFCRootTagName(c) {\n if (isEndOfTagSection(c)) {\n const tag = this.buffer.slice(this.sectionStart, this.index);\n if (tag !== \"template\") {\n this.enterRCDATA(toCharCodes(`</` + tag), 0);\n }\n this.handleTagName(c);\n }\n }\n handleTagName(c) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) ; else if (c === 62) {\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n this.cbs.onerr(14, this.index);\n }\n this.state = 1;\n this.sectionStart = this.index + 1;\n } else {\n this.state = isTagStartChar(c) ? 9 : 27;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === 62 || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 10;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n if (c === 62) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttrName(c) {\n if (c === 62) {\n this.cbs.onopentagend(this.index);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else if (c === 47) {\n this.state = 7;\n if ((!!(process.env.NODE_ENV !== \"production\") || false) && this.peek() !== 62) {\n this.cbs.onerr(22, this.index);\n }\n } else if (c === 60 && this.peek() === 47) {\n this.cbs.onopentagend(this.index);\n this.state = 5;\n this.sectionStart = this.index;\n } else if (!isWhitespace(c)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || false) && c === 61) {\n this.cbs.onerr(\n 19,\n this.index\n );\n }\n this.handleAttrStart(c);\n }\n }\n handleAttrStart(c) {\n if (c === 118 && this.peek() === 45) {\n this.state = 13;\n this.sectionStart = this.index;\n } else if (c === 46 || c === 58 || c === 64 || c === 35) {\n this.cbs.ondirname(this.index, this.index + 1);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 12;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === 62) {\n this.cbs.onselfclosingtag(this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n this.inRCDATA = false;\n } else if (!isWhitespace(c)) {\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n }\n stateInAttrName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if ((!!(process.env.NODE_ENV !== \"production\") || false) && (c === 34 || c === 39 || c === 60)) {\n this.cbs.onerr(\n 17,\n this.index\n );\n }\n }\n stateInDirName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 58) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else if (c === 46) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDirArg(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 91) {\n this.state = 15;\n } else if (c === 46) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDynamicDirArg(c) {\n if (c === 93) {\n this.state = 14;\n } else if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index + 1);\n this.handleAttrNameEnd(c);\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n this.cbs.onerr(\n 27,\n this.index\n );\n }\n }\n }\n stateInDirModifier(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 46) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.sectionStart = this.index + 1;\n }\n }\n handleAttrNameEnd(c) {\n this.sectionStart = this.index;\n this.state = 17;\n this.cbs.onattribnameend(this.index);\n this.stateAfterAttrName(c);\n }\n stateAfterAttrName(c) {\n if (c === 61) {\n this.state = 18;\n } else if (c === 47 || c === 62) {\n this.cbs.onattribend(0, this.sectionStart);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if (!isWhitespace(c)) {\n this.cbs.onattribend(0, this.sectionStart);\n this.handleAttrStart(c);\n }\n }\n stateBeforeAttrValue(c) {\n if (c === 34) {\n this.state = 19;\n this.sectionStart = this.index + 1;\n } else if (c === 39) {\n this.state = 20;\n this.sectionStart = this.index + 1;\n } else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = 21;\n this.stateInAttrValueNoQuotes(c);\n }\n }\n handleInAttrValue(c, quote) {\n if (c === quote || this.fastForwardTo(quote)) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(\n quote === 34 ? 3 : 2,\n this.index + 1\n );\n this.state = 11;\n }\n }\n stateInAttrValueDoubleQuotes(c) {\n this.handleInAttrValue(c, 34);\n }\n stateInAttrValueSingleQuotes(c) {\n this.handleInAttrValue(c, 39);\n }\n stateInAttrValueNoQuotes(c) {\n if (isWhitespace(c) || c === 62) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(1, this.index);\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if ((!!(process.env.NODE_ENV !== \"production\") || false) && c === 34 || c === 39 || c === 60 || c === 61 || c === 96) {\n this.cbs.onerr(\n 18,\n this.index\n );\n } else ;\n }\n stateBeforeDeclaration(c) {\n if (c === 91) {\n this.state = 26;\n this.sequenceIndex = 0;\n } else {\n this.state = c === 45 ? 25 : 23;\n }\n }\n stateInDeclaration(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === 45) {\n this.state = 28;\n this.currentSequence = Sequences.CommentEnd;\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 23;\n }\n }\n stateInSpecialComment(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.oncomment(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n if (c === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n } else if (c === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n stateBeforeSpecialT(c) {\n if (c === Sequences.TitleEnd[3]) {\n this.startSpecial(Sequences.TitleEnd, 4);\n } else if (c === Sequences.TextareaEnd[3]) {\n this.startSpecial(Sequences.TextareaEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n startEntity() {\n }\n stateInEntity() {\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse(input) {\n this.buffer = input;\n while (this.index < this.buffer.length) {\n const c = this.buffer.charCodeAt(this.index);\n if (c === 10) {\n this.newlines.push(this.index);\n }\n switch (this.state) {\n case 1: {\n this.stateText(c);\n break;\n }\n case 2: {\n this.stateInterpolationOpen(c);\n break;\n }\n case 3: {\n this.stateInterpolation(c);\n break;\n }\n case 4: {\n this.stateInterpolationClose(c);\n break;\n }\n case 31: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case 32: {\n this.stateInRCDATA(c);\n break;\n }\n case 26: {\n this.stateCDATASequence(c);\n break;\n }\n case 19: {\n this.stateInAttrValueDoubleQuotes(c);\n break;\n }\n case 12: {\n this.stateInAttrName(c);\n break;\n }\n case 13: {\n this.stateInDirName(c);\n break;\n }\n case 14: {\n this.stateInDirArg(c);\n break;\n }\n case 15: {\n this.stateInDynamicDirArg(c);\n break;\n }\n case 16: {\n this.stateInDirModifier(c);\n break;\n }\n case 28: {\n this.stateInCommentLike(c);\n break;\n }\n case 27: {\n this.stateInSpecialComment(c);\n break;\n }\n case 11: {\n this.stateBeforeAttrName(c);\n break;\n }\n case 6: {\n this.stateInTagName(c);\n break;\n }\n case 34: {\n this.stateInSFCRootTagName(c);\n break;\n }\n case 9: {\n this.stateInClosingTagName(c);\n break;\n }\n case 5: {\n this.stateBeforeTagName(c);\n break;\n }\n case 17: {\n this.stateAfterAttrName(c);\n break;\n }\n case 20: {\n this.stateInAttrValueSingleQuotes(c);\n break;\n }\n case 18: {\n this.stateBeforeAttrValue(c);\n break;\n }\n case 8: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case 10: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case 29: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case 30: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case 21: {\n this.stateInAttrValueNoQuotes(c);\n break;\n }\n case 7: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case 23: {\n this.stateInDeclaration(c);\n break;\n }\n case 22: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case 25: {\n this.stateBeforeComment(c);\n break;\n }\n case 24: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case 33: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n this.finish();\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n if (this.sectionStart !== this.index) {\n if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n } else if (this.state === 19 || this.state === 20 || this.state === 21) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n finish() {\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length;\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === 28) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex);\n } else {\n this.cbs.oncomment(this.sectionStart, endIndex);\n }\n } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n }\n}\n\nconst CompilerDeprecationTypes = {\n \"COMPILER_IS_ON_ELEMENT\": \"COMPILER_IS_ON_ELEMENT\",\n \"COMPILER_V_BIND_SYNC\": \"COMPILER_V_BIND_SYNC\",\n \"COMPILER_V_BIND_OBJECT_ORDER\": \"COMPILER_V_BIND_OBJECT_ORDER\",\n \"COMPILER_V_ON_NATIVE\": \"COMPILER_V_ON_NATIVE\",\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\": \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n \"COMPILER_NATIVE_TEMPLATE\": \"COMPILER_NATIVE_TEMPLATE\",\n \"COMPILER_INLINE_TEMPLATE\": \"COMPILER_INLINE_TEMPLATE\",\n \"COMPILER_FILTERS\": \"COMPILER_FILTERS\"\n};\nconst deprecationData = {\n [\"COMPILER_IS_ON_ELEMENT\"]: {\n message: `Platform-native elements with \"is\" prop will no longer be treated as components in Vue 3 unless the \"is\" value is explicitly prefixed with \"vue:\".`,\n link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`\n },\n [\"COMPILER_V_BIND_SYNC\"]: {\n message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \\`v-bind:${key}.sync\\` should be changed to \\`v-model:${key}\\`.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n },\n [\"COMPILER_V_BIND_OBJECT_ORDER\"]: {\n message: `v-bind=\"obj\" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`\n },\n [\"COMPILER_V_ON_NATIVE\"]: {\n message: `.native modifier for v-on has been removed as is no longer necessary.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`\n },\n [\"COMPILER_V_IF_V_FOR_PRECEDENCE\"]: {\n message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`\n },\n [\"COMPILER_NATIVE_TEMPLATE\"]: {\n message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.`\n },\n [\"COMPILER_INLINE_TEMPLATE\"]: {\n message: `\"inline-template\" has been removed in Vue 3.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`\n },\n [\"COMPILER_FILTERS\"]: {\n message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n }\n};\nfunction getCompatValue(key, { compatConfig }) {\n const value = compatConfig && compatConfig[key];\n if (key === \"MODE\") {\n return value || 3;\n } else {\n return value;\n }\n}\nfunction isCompatEnabled(key, context) {\n const mode = getCompatValue(\"MODE\", context);\n const value = getCompatValue(key, context);\n return mode === 3 ? value === true : value !== false;\n}\nfunction checkCompatEnabled(key, context, loc, ...args) {\n const enabled = isCompatEnabled(key, context);\n if (!!(process.env.NODE_ENV !== \"production\") && enabled) {\n warnDeprecation(key, context, loc, ...args);\n }\n return enabled;\n}\nfunction warnDeprecation(key, context, loc, ...args) {\n const val = getCompatValue(key, context);\n if (val === \"suppress-warning\") {\n return;\n }\n const { message, link } = deprecationData[key];\n const msg = `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n Details: ${link}` : ``}`;\n const err = new SyntaxError(msg);\n err.code = key;\n if (loc) err.loc = loc;\n context.onWarn(err);\n}\n\nfunction defaultOnError(error) {\n throw error;\n}\nfunction defaultOnWarn(msg) {\n !!(process.env.NODE_ENV !== \"production\") && console.warn(`[Vue warn] ${msg.message}`);\n}\nfunction createCompilerError(code, loc, messages, additionalMessage) {\n const msg = !!(process.env.NODE_ENV !== \"production\") || false ? (messages || errorMessages)[code] + (additionalMessage || ``) : `https://vuejs.org/error-reference/#compiler-${code}`;\n const error = new SyntaxError(String(msg));\n error.code = code;\n error.loc = loc;\n return error;\n}\nconst ErrorCodes = {\n \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\": 0,\n \"0\": \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\",\n \"CDATA_IN_HTML_CONTENT\": 1,\n \"1\": \"CDATA_IN_HTML_CONTENT\",\n \"DUPLICATE_ATTRIBUTE\": 2,\n \"2\": \"DUPLICATE_ATTRIBUTE\",\n \"END_TAG_WITH_ATTRIBUTES\": 3,\n \"3\": \"END_TAG_WITH_ATTRIBUTES\",\n \"END_TAG_WITH_TRAILING_SOLIDUS\": 4,\n \"4\": \"END_TAG_WITH_TRAILING_SOLIDUS\",\n \"EOF_BEFORE_TAG_NAME\": 5,\n \"5\": \"EOF_BEFORE_TAG_NAME\",\n \"EOF_IN_CDATA\": 6,\n \"6\": \"EOF_IN_CDATA\",\n \"EOF_IN_COMMENT\": 7,\n \"7\": \"EOF_IN_COMMENT\",\n \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\": 8,\n \"8\": \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\",\n \"EOF_IN_TAG\": 9,\n \"9\": \"EOF_IN_TAG\",\n \"INCORRECTLY_CLOSED_COMMENT\": 10,\n \"10\": \"INCORRECTLY_CLOSED_COMMENT\",\n \"INCORRECTLY_OPENED_COMMENT\": 11,\n \"11\": \"INCORRECTLY_OPENED_COMMENT\",\n \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\": 12,\n \"12\": \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\",\n \"MISSING_ATTRIBUTE_VALUE\": 13,\n \"13\": \"MISSING_ATTRIBUTE_VALUE\",\n \"MISSING_END_TAG_NAME\": 14,\n \"14\": \"MISSING_END_TAG_NAME\",\n \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\": 15,\n \"15\": \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\",\n \"NESTED_COMMENT\": 16,\n \"16\": \"NESTED_COMMENT\",\n \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\": 17,\n \"17\": \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\",\n \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\": 18,\n \"18\": \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\",\n \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\": 19,\n \"19\": \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\",\n \"UNEXPECTED_NULL_CHARACTER\": 20,\n \"20\": \"UNEXPECTED_NULL_CHARACTER\",\n \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\": 21,\n \"21\": \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\",\n \"UNEXPECTED_SOLIDUS_IN_TAG\": 22,\n \"22\": \"UNEXPECTED_SOLIDUS_IN_TAG\",\n \"X_INVALID_END_TAG\": 23,\n \"23\": \"X_INVALID_END_TAG\",\n \"X_MISSING_END_TAG\": 24,\n \"24\": \"X_MISSING_END_TAG\",\n \"X_MISSING_INTERPOLATION_END\": 25,\n \"25\": \"X_MISSING_INTERPOLATION_END\",\n \"X_MISSING_DIRECTIVE_NAME\": 26,\n \"26\": \"X_MISSING_DIRECTIVE_NAME\",\n \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\": 27,\n \"27\": \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\",\n \"X_V_IF_NO_EXPRESSION\": 28,\n \"28\": \"X_V_IF_NO_EXPRESSION\",\n \"X_V_IF_SAME_KEY\": 29,\n \"29\": \"X_V_IF_SAME_KEY\",\n \"X_V_ELSE_NO_ADJACENT_IF\": 30,\n \"30\": \"X_V_ELSE_NO_ADJACENT_IF\",\n \"X_V_FOR_NO_EXPRESSION\": 31,\n \"31\": \"X_V_FOR_NO_EXPRESSION\",\n \"X_V_FOR_MALFORMED_EXPRESSION\": 32,\n \"32\": \"X_V_FOR_MALFORMED_EXPRESSION\",\n \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\": 33,\n \"33\": \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\",\n \"X_V_BIND_NO_EXPRESSION\": 34,\n \"34\": \"X_V_BIND_NO_EXPRESSION\",\n \"X_V_ON_NO_EXPRESSION\": 35,\n \"35\": \"X_V_ON_NO_EXPRESSION\",\n \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\": 36,\n \"36\": \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\",\n \"X_V_SLOT_MIXED_SLOT_USAGE\": 37,\n \"37\": \"X_V_SLOT_MIXED_SLOT_USAGE\",\n \"X_V_SLOT_DUPLICATE_SLOT_NAMES\": 38,\n \"38\": \"X_V_SLOT_DUPLICATE_SLOT_NAMES\",\n \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\": 39,\n \"39\": \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\",\n \"X_V_SLOT_MISPLACED\": 40,\n \"40\": \"X_V_SLOT_MISPLACED\",\n \"X_V_MODEL_NO_EXPRESSION\": 41,\n \"41\": \"X_V_MODEL_NO_EXPRESSION\",\n \"X_V_MODEL_MALFORMED_EXPRESSION\": 42,\n \"42\": \"X_V_MODEL_MALFORMED_EXPRESSION\",\n \"X_V_MODEL_ON_SCOPE_VARIABLE\": 43,\n \"43\": \"X_V_MODEL_ON_SCOPE_VARIABLE\",\n \"X_V_MODEL_ON_PROPS\": 44,\n \"44\": \"X_V_MODEL_ON_PROPS\",\n \"X_INVALID_EXPRESSION\": 45,\n \"45\": \"X_INVALID_EXPRESSION\",\n \"X_KEEP_ALIVE_INVALID_CHILDREN\": 46,\n \"46\": \"X_KEEP_ALIVE_INVALID_CHILDREN\",\n \"X_PREFIX_ID_NOT_SUPPORTED\": 47,\n \"47\": \"X_PREFIX_ID_NOT_SUPPORTED\",\n \"X_MODULE_MODE_NOT_SUPPORTED\": 48,\n \"48\": \"X_MODULE_MODE_NOT_SUPPORTED\",\n \"X_CACHE_HANDLER_NOT_SUPPORTED\": 49,\n \"49\": \"X_CACHE_HANDLER_NOT_SUPPORTED\",\n \"X_SCOPE_ID_NOT_SUPPORTED\": 50,\n \"50\": \"X_SCOPE_ID_NOT_SUPPORTED\",\n \"X_VNODE_HOOKS\": 51,\n \"51\": \"X_VNODE_HOOKS\",\n \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\": 52,\n \"52\": \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\",\n \"__EXTEND_POINT__\": 53,\n \"53\": \"__EXTEND_POINT__\"\n};\nconst errorMessages = {\n // parse errors\n [0]: \"Illegal comment.\",\n [1]: \"CDATA section is allowed only in XML context.\",\n [2]: \"Duplicate attribute.\",\n [3]: \"End tag cannot have attributes.\",\n [4]: \"Illegal '/' in tags.\",\n [5]: \"Unexpected EOF in tag.\",\n [6]: \"Unexpected EOF in CDATA section.\",\n [7]: \"Unexpected EOF in comment.\",\n [8]: \"Unexpected EOF in script.\",\n [9]: \"Unexpected EOF in tag.\",\n [10]: \"Incorrectly closed comment.\",\n [11]: \"Incorrectly opened comment.\",\n [12]: \"Illegal tag name. Use '<' to print '<'.\",\n [13]: \"Attribute value was expected.\",\n [14]: \"End tag name was expected.\",\n [15]: \"Whitespace was expected.\",\n [16]: \"Unexpected '<!--' in comment.\",\n [17]: `Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).`,\n [18]: \"Unquoted attribute value cannot contain U+0022 (\\\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).\",\n [19]: \"Attribute name cannot start with '='.\",\n [21]: \"'<?' is allowed only in XML context.\",\n [20]: `Unexpected null character.`,\n [22]: \"Illegal '/' in tags.\",\n // Vue-specific parse errors\n [23]: \"Invalid end tag.\",\n [24]: \"Element is missing end tag.\",\n [25]: \"Interpolation end sign was not found.\",\n [27]: \"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.\",\n [26]: \"Legal directive name was expected.\",\n // transform errors\n [28]: `v-if/v-else-if is missing expression.`,\n [29]: `v-if/else branches must use unique keys.`,\n [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`,\n [31]: `v-for is missing expression.`,\n [32]: `v-for has invalid expression.`,\n [33]: `<template v-for> key should be placed on the <template> tag.`,\n [34]: `v-bind is missing expression.`,\n [52]: `v-bind with same-name shorthand only allows static argument.`,\n [35]: `v-on is missing expression.`,\n [36]: `Unexpected custom directive on <slot> outlet.`,\n [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,\n [38]: `Duplicate slot names found. `,\n [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`,\n [40]: `v-slot can only be used on components or <template> tags.`,\n [41]: `v-model is missing expression.`,\n [42]: `v-model value must be a valid JavaScript member expression.`,\n [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,\n [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.`,\n [45]: `Error parsing JavaScript expression: `,\n [46]: `<KeepAlive> expects exactly one child component.`,\n [51]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,\n // generic errors\n [47]: `\"prefixIdentifiers\" option is not supported in this build of compiler.`,\n [48]: `ES module mode is not supported in this build of compiler.`,\n [49]: `\"cacheHandlers\" option is only supported when the \"prefixIdentifiers\" option is enabled.`,\n [50]: `\"scopeId\" option is only supported in module mode.`,\n // just to fulfill types\n [53]: ``\n};\n\nfunction walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {\n {\n return;\n }\n}\nfunction isReferencedIdentifier(id, parent, parentStack) {\n {\n return false;\n }\n}\nfunction isInDestructureAssignment(parent, parentStack) {\n if (parent && (parent.type === \"ObjectProperty\" || parent.type === \"ArrayPattern\")) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"AssignmentExpression\") {\n return true;\n } else if (p.type !== \"ObjectProperty\" && !p.type.endsWith(\"Pattern\")) {\n break;\n }\n }\n }\n return false;\n}\nfunction isInNewExpression(parentStack) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"NewExpression\") {\n return true;\n } else if (p.type !== \"MemberExpression\") {\n break;\n }\n }\n return false;\n}\nfunction walkFunctionParams(node, onIdent) {\n for (const p of node.params) {\n for (const id of extractIdentifiers(p)) {\n onIdent(id);\n }\n }\n}\nfunction walkBlockDeclarations(block, onIdent) {\n for (const stmt of block.body) {\n if (stmt.type === \"VariableDeclaration\") {\n if (stmt.declare) continue;\n for (const decl of stmt.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n } else if (stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\") {\n if (stmt.declare || !stmt.id) continue;\n onIdent(stmt.id);\n } else if (isForStatement(stmt)) {\n walkForStatement(stmt, true, onIdent);\n }\n }\n}\nfunction isForStatement(stmt) {\n return stmt.type === \"ForOfStatement\" || stmt.type === \"ForInStatement\" || stmt.type === \"ForStatement\";\n}\nfunction walkForStatement(stmt, isVar, onIdent) {\n const variable = stmt.type === \"ForStatement\" ? stmt.init : stmt.left;\n if (variable && variable.type === \"VariableDeclaration\" && (variable.kind === \"var\" ? isVar : !isVar)) {\n for (const decl of variable.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n }\n}\nfunction extractIdentifiers(param, nodes = []) {\n switch (param.type) {\n case \"Identifier\":\n nodes.push(param);\n break;\n case \"MemberExpression\":\n let object = param;\n while (object.type === \"MemberExpression\") {\n object = object.object;\n }\n nodes.push(object);\n break;\n case \"ObjectPattern\":\n for (const prop of param.properties) {\n if (prop.type === \"RestElement\") {\n extractIdentifiers(prop.argument, nodes);\n } else {\n extractIdentifiers(prop.value, nodes);\n }\n }\n break;\n case \"ArrayPattern\":\n param.elements.forEach((element) => {\n if (element) extractIdentifiers(element, nodes);\n });\n break;\n case \"RestElement\":\n extractIdentifiers(param.argument, nodes);\n break;\n case \"AssignmentPattern\":\n extractIdentifiers(param.left, nodes);\n break;\n }\n return nodes;\n}\nconst isFunctionType = (node) => {\n return /Function(?:Expression|Declaration)$|Method$/.test(node.type);\n};\nconst isStaticProperty = (node) => node && (node.type === \"ObjectProperty\" || node.type === \"ObjectMethod\") && !node.computed;\nconst isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node;\nconst TS_NODE_TYPES = [\n \"TSAsExpression\",\n // foo as number\n \"TSTypeAssertion\",\n // (<number>foo)\n \"TSNonNullExpression\",\n // foo!\n \"TSInstantiationExpression\",\n // foo<string>\n \"TSSatisfiesExpression\"\n // foo satisfies T\n];\nfunction unwrapTSNode(node) {\n if (TS_NODE_TYPES.includes(node.type)) {\n return unwrapTSNode(node.expression);\n } else {\n return node;\n }\n}\n\nconst isStaticExp = (p) => p.type === 4 && p.isStatic;\nfunction isCoreComponent(tag) {\n switch (tag) {\n case \"Teleport\":\n case \"teleport\":\n return TELEPORT;\n case \"Suspense\":\n case \"suspense\":\n return SUSPENSE;\n case \"KeepAlive\":\n case \"keep-alive\":\n return KEEP_ALIVE;\n case \"BaseTransition\":\n case \"base-transition\":\n return BASE_TRANSITION;\n }\n}\nconst nonIdentifierRE = /^\\d|[^\\$\\w\\xA0-\\uFFFF]/;\nconst isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);\nconst validFirstIdentCharRE = /[A-Za-z_$\\xA0-\\uFFFF]/;\nconst validIdentCharRE = /[\\.\\?\\w$\\xA0-\\uFFFF]/;\nconst whitespaceRE = /\\s+[.[]\\s*|\\s*[.[]\\s+/g;\nconst getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source;\nconst isMemberExpressionBrowser = (exp) => {\n const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim());\n let state = 0 /* inMemberExp */;\n let stateStack = [];\n let currentOpenBracketCount = 0;\n let currentOpenParensCount = 0;\n let currentStringType = null;\n for (let i = 0; i < path.length; i++) {\n const char = path.charAt(i);\n switch (state) {\n case 0 /* inMemberExp */:\n if (char === \"[\") {\n stateStack.push(state);\n state = 1 /* inBrackets */;\n currentOpenBracketCount++;\n } else if (char === \"(\") {\n stateStack.push(state);\n state = 2 /* inParens */;\n currentOpenParensCount++;\n } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {\n return false;\n }\n break;\n case 1 /* inBrackets */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `[`) {\n currentOpenBracketCount++;\n } else if (char === `]`) {\n if (!--currentOpenBracketCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 2 /* inParens */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `(`) {\n currentOpenParensCount++;\n } else if (char === `)`) {\n if (i === path.length - 1) {\n return false;\n }\n if (!--currentOpenParensCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 3 /* inString */:\n if (char === currentStringType) {\n state = stateStack.pop();\n currentStringType = null;\n }\n break;\n }\n }\n return !currentOpenBracketCount && !currentOpenParensCount;\n};\nconst isMemberExpressionNode = NOOP ;\nconst isMemberExpression = isMemberExpressionBrowser ;\nconst fnExpRE = /^\\s*(async\\s*)?(\\([^)]*?\\)|[\\w$_]+)\\s*(:[^=]+)?=>|^\\s*(async\\s+)?function(?:\\s+[\\w$]+)?\\s*\\(/;\nconst isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp));\nconst isFnExpressionNode = NOOP ;\nconst isFnExpression = isFnExpressionBrowser ;\nfunction advancePositionWithClone(pos, source, numberOfCharacters = source.length) {\n return advancePositionWithMutation(\n {\n offset: pos.offset,\n line: pos.line,\n column: pos.column\n },\n source,\n numberOfCharacters\n );\n}\nfunction advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {\n let linesCount = 0;\n let lastNewLinePos = -1;\n for (let i = 0; i < numberOfCharacters; i++) {\n if (source.charCodeAt(i) === 10) {\n linesCount++;\n lastNewLinePos = i;\n }\n }\n pos.offset += numberOfCharacters;\n pos.line += linesCount;\n pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;\n return pos;\n}\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || `unexpected compiler condition`);\n }\n}\nfunction findDir(node, name, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) {\n return p;\n }\n }\n}\nfunction findProp(node, name, dynamicOnly = false, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (dynamicOnly) continue;\n if (p.name === name && (p.value || allowEmpty)) {\n return p;\n }\n } else if (p.name === \"bind\" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) {\n return p;\n }\n }\n}\nfunction isStaticArgOf(arg, name) {\n return !!(arg && isStaticExp(arg) && arg.content === name);\n}\nfunction hasDynamicKeyVBind(node) {\n return node.props.some(\n (p) => p.type === 7 && p.name === \"bind\" && (!p.arg || // v-bind=\"obj\"\n p.arg.type !== 4 || // v-bind:[_ctx.foo]\n !p.arg.isStatic)\n // v-bind:[foo]\n );\n}\nfunction isText$1(node) {\n return node.type === 5 || node.type === 2;\n}\nfunction isVSlot(p) {\n return p.type === 7 && p.name === \"slot\";\n}\nfunction isTemplateNode(node) {\n return node.type === 1 && node.tagType === 3;\n}\nfunction isSlotOutlet(node) {\n return node.type === 1 && node.tagType === 2;\n}\nconst propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);\nfunction getUnnormalizedProps(props, callPath = []) {\n if (props && !isString(props) && props.type === 14) {\n const callee = props.callee;\n if (!isString(callee) && propsHelperSet.has(callee)) {\n return getUnnormalizedProps(\n props.arguments[0],\n callPath.concat(props)\n );\n }\n }\n return [props, callPath];\n}\nfunction injectProp(node, prop, context) {\n let propsWithInjection;\n let props = node.type === 13 ? node.props : node.arguments[2];\n let callPath = [];\n let parentCall;\n if (props && !isString(props) && props.type === 14) {\n const ret = getUnnormalizedProps(props);\n props = ret[0];\n callPath = ret[1];\n parentCall = callPath[callPath.length - 1];\n }\n if (props == null || isString(props)) {\n propsWithInjection = createObjectExpression([prop]);\n } else if (props.type === 14) {\n const first = props.arguments[0];\n if (!isString(first) && first.type === 15) {\n if (!hasProp(prop, first)) {\n first.properties.unshift(prop);\n }\n } else {\n if (props.callee === TO_HANDLERS) {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n } else {\n props.arguments.unshift(createObjectExpression([prop]));\n }\n }\n !propsWithInjection && (propsWithInjection = props);\n } else if (props.type === 15) {\n if (!hasProp(prop, props)) {\n props.properties.unshift(prop);\n }\n propsWithInjection = props;\n } else {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {\n parentCall = callPath[callPath.length - 2];\n }\n }\n if (node.type === 13) {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.props = propsWithInjection;\n }\n } else {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.arguments[2] = propsWithInjection;\n }\n }\n}\nfunction hasProp(prop, props) {\n let result = false;\n if (prop.key.type === 4) {\n const propKeyName = prop.key.content;\n result = props.properties.some(\n (p) => p.key.type === 4 && p.key.content === propKeyName\n );\n }\n return result;\n}\nfunction toValidAssetId(name, type) {\n return `_${type}_${name.replace(/[^\\w]/g, (searchValue, replaceValue) => {\n return searchValue === \"-\" ? \"_\" : name.charCodeAt(replaceValue).toString();\n })}`;\n}\nfunction hasScopeRef(node, ids) {\n if (!node || Object.keys(ids).length === 0) {\n return false;\n }\n switch (node.type) {\n case 1:\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) {\n return true;\n }\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 11:\n if (hasScopeRef(node.source, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 9:\n return node.branches.some((b) => hasScopeRef(b, ids));\n case 10:\n if (hasScopeRef(node.condition, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 4:\n return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content];\n case 8:\n return node.children.some((c) => isObject(c) && hasScopeRef(c, ids));\n case 5:\n case 12:\n return hasScopeRef(node.content, ids);\n case 2:\n case 3:\n case 20:\n return false;\n default:\n if (!!(process.env.NODE_ENV !== \"production\")) ;\n return false;\n }\n}\nfunction getMemoedVNodeCall(node) {\n if (node.type === 14 && node.callee === WITH_MEMO) {\n return node.arguments[1].returns;\n } else {\n return node;\n }\n}\nconst forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+(\\S[\\s\\S]*)/;\n\nconst defaultParserOptions = {\n parseMode: \"base\",\n ns: 0,\n delimiters: [`{{`, `}}`],\n getNamespace: () => 0,\n isVoidTag: NO,\n isPreTag: NO,\n isIgnoreNewlineTag: NO,\n isCustomElement: NO,\n onError: defaultOnError,\n onWarn: defaultOnWarn,\n comments: !!(process.env.NODE_ENV !== \"production\"),\n prefixIdentifiers: false\n};\nlet currentOptions = defaultParserOptions;\nlet currentRoot = null;\nlet currentInput = \"\";\nlet currentOpenTag = null;\nlet currentProp = null;\nlet currentAttrValue = \"\";\nlet currentAttrStartIndex = -1;\nlet currentAttrEndIndex = -1;\nlet inPre = 0;\nlet inVPre = false;\nlet currentVPreBoundary = null;\nconst stack = [];\nconst tokenizer = new Tokenizer(stack, {\n onerr: emitError,\n ontext(start, end) {\n onText(getSlice(start, end), start, end);\n },\n ontextentity(char, start, end) {\n onText(char, start, end);\n },\n oninterpolation(start, end) {\n if (inVPre) {\n return onText(getSlice(start, end), start, end);\n }\n let innerStart = start + tokenizer.delimiterOpen.length;\n let innerEnd = end - tokenizer.delimiterClose.length;\n while (isWhitespace(currentInput.charCodeAt(innerStart))) {\n innerStart++;\n }\n while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) {\n innerEnd--;\n }\n let exp = getSlice(innerStart, innerEnd);\n if (exp.includes(\"&\")) {\n {\n exp = currentOptions.decodeEntities(exp, false);\n }\n }\n addNode({\n type: 5,\n content: createExp(exp, false, getLoc(innerStart, innerEnd)),\n loc: getLoc(start, end)\n });\n },\n onopentagname(start, end) {\n const name = getSlice(start, end);\n currentOpenTag = {\n type: 1,\n tag: name,\n ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns),\n tagType: 0,\n // will be refined on tag close\n props: [],\n children: [],\n loc: getLoc(start - 1, end),\n codegenNode: void 0\n };\n },\n onopentagend(end) {\n endOpenTag(end);\n },\n onclosetag(start, end) {\n const name = getSlice(start, end);\n if (!currentOptions.isVoidTag(name)) {\n let found = false;\n for (let i = 0; i < stack.length; i++) {\n const e = stack[i];\n if (e.tag.toLowerCase() === name.toLowerCase()) {\n found = true;\n if (i > 0) {\n emitError(24, stack[0].loc.start.offset);\n }\n for (let j = 0; j <= i; j++) {\n const el = stack.shift();\n onCloseTag(el, end, j < i);\n }\n break;\n }\n }\n if (!found) {\n emitError(23, backTrack(start, 60));\n }\n }\n },\n onselfclosingtag(end) {\n const name = currentOpenTag.tag;\n currentOpenTag.isSelfClosing = true;\n endOpenTag(end);\n if (stack[0] && stack[0].tag === name) {\n onCloseTag(stack.shift(), end);\n }\n },\n onattribname(start, end) {\n currentProp = {\n type: 6,\n name: getSlice(start, end),\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n },\n ondirname(start, end) {\n const raw = getSlice(start, end);\n const name = raw === \".\" || raw === \":\" ? \"bind\" : raw === \"@\" ? \"on\" : raw === \"#\" ? \"slot\" : raw.slice(2);\n if (!inVPre && name === \"\") {\n emitError(26, start);\n }\n if (inVPre || name === \"\") {\n currentProp = {\n type: 6,\n name: raw,\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n } else {\n currentProp = {\n type: 7,\n name,\n rawName: raw,\n exp: void 0,\n arg: void 0,\n modifiers: raw === \".\" ? [createSimpleExpression(\"prop\")] : [],\n loc: getLoc(start)\n };\n if (name === \"pre\") {\n inVPre = tokenizer.inVPre = true;\n currentVPreBoundary = currentOpenTag;\n const props = currentOpenTag.props;\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7) {\n props[i] = dirToAttr(props[i]);\n }\n }\n }\n }\n },\n ondirarg(start, end) {\n if (start === end) return;\n const arg = getSlice(start, end);\n if (inVPre) {\n currentProp.name += arg;\n setLocEnd(currentProp.nameLoc, end);\n } else {\n const isStatic = arg[0] !== `[`;\n currentProp.arg = createExp(\n isStatic ? arg : arg.slice(1, -1),\n isStatic,\n getLoc(start, end),\n isStatic ? 3 : 0\n );\n }\n },\n ondirmodifier(start, end) {\n const mod = getSlice(start, end);\n if (inVPre) {\n currentProp.name += \".\" + mod;\n setLocEnd(currentProp.nameLoc, end);\n } else if (currentProp.name === \"slot\") {\n const arg = currentProp.arg;\n if (arg) {\n arg.content += \".\" + mod;\n setLocEnd(arg.loc, end);\n }\n } else {\n const exp = createSimpleExpression(mod, true, getLoc(start, end));\n currentProp.modifiers.push(exp);\n }\n },\n onattribdata(start, end) {\n currentAttrValue += getSlice(start, end);\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribentity(char, start, end) {\n currentAttrValue += char;\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribnameend(end) {\n const start = currentProp.loc.start.offset;\n const name = getSlice(start, end);\n if (currentProp.type === 7) {\n currentProp.rawName = name;\n }\n if (currentOpenTag.props.some(\n (p) => (p.type === 7 ? p.rawName : p.name) === name\n )) {\n emitError(2, start);\n }\n },\n onattribend(quote, end) {\n if (currentOpenTag && currentProp) {\n setLocEnd(currentProp.loc, end);\n if (quote !== 0) {\n if (currentAttrValue.includes(\"&\")) {\n currentAttrValue = currentOptions.decodeEntities(\n currentAttrValue,\n true\n );\n }\n if (currentProp.type === 6) {\n if (currentProp.name === \"class\") {\n currentAttrValue = condense(currentAttrValue).trim();\n }\n if (quote === 1 && !currentAttrValue) {\n emitError(13, end);\n }\n currentProp.value = {\n type: 2,\n content: currentAttrValue,\n loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)\n };\n if (tokenizer.inSFCRoot && currentOpenTag.tag === \"template\" && currentProp.name === \"lang\" && currentAttrValue && currentAttrValue !== \"html\") {\n tokenizer.enterRCDATA(toCharCodes(`</template`), 0);\n }\n } else {\n let expParseMode = 0 /* Normal */;\n currentProp.exp = createExp(\n currentAttrValue,\n false,\n getLoc(currentAttrStartIndex, currentAttrEndIndex),\n 0,\n expParseMode\n );\n if (currentProp.name === \"for\") {\n currentProp.forParseResult = parseForExpression(currentProp.exp);\n }\n let syncIndex = -1;\n if (currentProp.name === \"bind\" && (syncIndex = currentProp.modifiers.findIndex(\n (mod) => mod.content === \"sync\"\n )) > -1 && checkCompatEnabled(\n \"COMPILER_V_BIND_SYNC\",\n currentOptions,\n currentProp.loc,\n currentProp.rawName\n )) {\n currentProp.name = \"model\";\n currentProp.modifiers.splice(syncIndex, 1);\n }\n }\n }\n if (currentProp.type !== 7 || currentProp.name !== \"pre\") {\n currentOpenTag.props.push(currentProp);\n }\n }\n currentAttrValue = \"\";\n currentAttrStartIndex = currentAttrEndIndex = -1;\n },\n oncomment(start, end) {\n if (currentOptions.comments) {\n addNode({\n type: 3,\n content: getSlice(start, end),\n loc: getLoc(start - 4, end + 3)\n });\n }\n },\n onend() {\n const end = currentInput.length;\n if ((!!(process.env.NODE_ENV !== \"production\") || false) && tokenizer.state !== 1) {\n switch (tokenizer.state) {\n case 5:\n case 8:\n emitError(5, end);\n break;\n case 3:\n case 4:\n emitError(\n 25,\n tokenizer.sectionStart\n );\n break;\n case 28:\n if (tokenizer.currentSequence === Sequences.CdataEnd) {\n emitError(6, end);\n } else {\n emitError(7, end);\n }\n break;\n case 6:\n case 7:\n case 9:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n // \"\n case 20:\n // '\n case 21:\n emitError(9, end);\n break;\n }\n }\n for (let index = 0; index < stack.length; index++) {\n onCloseTag(stack[index], end - 1);\n emitError(24, stack[index].loc.start.offset);\n }\n },\n oncdata(start, end) {\n if (stack[0].ns !== 0) {\n onText(getSlice(start, end), start, end);\n } else {\n emitError(1, start - 9);\n }\n },\n onprocessinginstruction(start) {\n if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n emitError(\n 21,\n start - 1\n );\n }\n }\n});\nconst forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nconst stripParensRE = /^\\(|\\)$/g;\nfunction parseForExpression(input) {\n const loc = input.loc;\n const exp = input.content;\n const inMatch = exp.match(forAliasRE);\n if (!inMatch) return;\n const [, LHS, RHS] = inMatch;\n const createAliasExpression = (content, offset, asParam = false) => {\n const start = loc.start.offset + offset;\n const end = start + content.length;\n return createExp(\n content,\n false,\n getLoc(start, end),\n 0,\n asParam ? 1 /* Params */ : 0 /* Normal */\n );\n };\n const result = {\n source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)),\n value: void 0,\n key: void 0,\n index: void 0,\n finalized: false\n };\n let valueContent = LHS.trim().replace(stripParensRE, \"\").trim();\n const trimmedOffset = LHS.indexOf(valueContent);\n const iteratorMatch = valueContent.match(forIteratorRE);\n if (iteratorMatch) {\n valueContent = valueContent.replace(forIteratorRE, \"\").trim();\n const keyContent = iteratorMatch[1].trim();\n let keyOffset;\n if (keyContent) {\n keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);\n result.key = createAliasExpression(keyContent, keyOffset, true);\n }\n if (iteratorMatch[2]) {\n const indexContent = iteratorMatch[2].trim();\n if (indexContent) {\n result.index = createAliasExpression(\n indexContent,\n exp.indexOf(\n indexContent,\n result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length\n ),\n true\n );\n }\n }\n }\n if (valueContent) {\n result.value = createAliasExpression(valueContent, trimmedOffset, true);\n }\n return result;\n}\nfunction getSlice(start, end) {\n return currentInput.slice(start, end);\n}\nfunction endOpenTag(end) {\n if (tokenizer.inSFCRoot) {\n currentOpenTag.innerLoc = getLoc(end + 1, end + 1);\n }\n addNode(currentOpenTag);\n const { tag, ns } = currentOpenTag;\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre++;\n }\n if (currentOptions.isVoidTag(tag)) {\n onCloseTag(currentOpenTag, end);\n } else {\n stack.unshift(currentOpenTag);\n if (ns === 1 || ns === 2) {\n tokenizer.inXML = true;\n }\n }\n currentOpenTag = null;\n}\nfunction onText(content, start, end) {\n {\n const tag = stack[0] && stack[0].tag;\n if (tag !== \"script\" && tag !== \"style\" && content.includes(\"&\")) {\n content = currentOptions.decodeEntities(content, false);\n }\n }\n const parent = stack[0] || currentRoot;\n const lastNode = parent.children[parent.children.length - 1];\n if (lastNode && lastNode.type === 2) {\n lastNode.content += content;\n setLocEnd(lastNode.loc, end);\n } else {\n parent.children.push({\n type: 2,\n content,\n loc: getLoc(start, end)\n });\n }\n}\nfunction onCloseTag(el, end, isImplied = false) {\n if (isImplied) {\n setLocEnd(el.loc, backTrack(end, 60));\n } else {\n setLocEnd(el.loc, lookAhead(end, 62) + 1);\n }\n if (tokenizer.inSFCRoot) {\n if (el.children.length) {\n el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end);\n } else {\n el.innerLoc.end = extend({}, el.innerLoc.start);\n }\n el.innerLoc.source = getSlice(\n el.innerLoc.start.offset,\n el.innerLoc.end.offset\n );\n }\n const { tag, ns, children } = el;\n if (!inVPre) {\n if (tag === \"slot\") {\n el.tagType = 2;\n } else if (isFragmentTemplate(el)) {\n el.tagType = 3;\n } else if (isComponent(el)) {\n el.tagType = 1;\n }\n }\n if (!tokenizer.inRCDATA) {\n el.children = condenseWhitespace(children);\n }\n if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) {\n const first = children[0];\n if (first && first.type === 2) {\n first.content = first.content.replace(/^\\r?\\n/, \"\");\n }\n }\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre--;\n }\n if (currentVPreBoundary === el) {\n inVPre = tokenizer.inVPre = false;\n currentVPreBoundary = null;\n }\n if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n tokenizer.inXML = false;\n }\n {\n const props = el.props;\n if (!!(process.env.NODE_ENV !== \"production\") && isCompatEnabled(\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n currentOptions\n )) {\n let hasIf = false;\n let hasFor = false;\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 7) {\n if (p.name === \"if\") {\n hasIf = true;\n } else if (p.name === \"for\") {\n hasFor = true;\n }\n }\n if (hasIf && hasFor) {\n warnDeprecation(\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n currentOptions,\n el.loc\n );\n break;\n }\n }\n }\n if (!tokenizer.inSFCRoot && isCompatEnabled(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions\n ) && el.tag === \"template\" && !isFragmentTemplate(el)) {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions,\n el.loc\n );\n const parent = stack[0] || currentRoot;\n const index = parent.children.indexOf(el);\n parent.children.splice(index, 1, ...el.children);\n }\n const inlineTemplateProp = props.find(\n (p) => p.type === 6 && p.name === \"inline-template\"\n );\n if (inlineTemplateProp && checkCompatEnabled(\n \"COMPILER_INLINE_TEMPLATE\",\n currentOptions,\n inlineTemplateProp.loc\n ) && el.children.length) {\n inlineTemplateProp.value = {\n type: 2,\n content: getSlice(\n el.children[0].loc.start.offset,\n el.children[el.children.length - 1].loc.end.offset\n ),\n loc: inlineTemplateProp.loc\n };\n }\n }\n}\nfunction lookAhead(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++;\n return i;\n}\nfunction backTrack(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i >= 0) i--;\n return i;\n}\nconst specialTemplateDir = /* @__PURE__ */ new Set([\"if\", \"else\", \"else-if\", \"for\", \"slot\"]);\nfunction isFragmentTemplate({ tag, props }) {\n if (tag === \"template\") {\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction isComponent({ tag, props }) {\n if (currentOptions.isCustomElement(tag)) {\n return false;\n }\n if (tag === \"component\" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) {\n return true;\n }\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 6) {\n if (p.name === \"is\" && p.value) {\n if (p.value.content.startsWith(\"vue:\")) {\n return true;\n } else if (checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n } else if (// :is on plain element - only treat as component in compat mode\n p.name === \"bind\" && isStaticArgOf(p.arg, \"is\") && checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n return false;\n}\nfunction isUpperCase(c) {\n return c > 64 && c < 91;\n}\nconst windowsNewlineRE = /\\r\\n/g;\nfunction condenseWhitespace(nodes, tag) {\n const shouldCondense = currentOptions.whitespace !== \"preserve\";\n let removedWhitespace = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.type === 2) {\n if (!inPre) {\n if (isAllWhitespace(node.content)) {\n const prev = nodes[i - 1] && nodes[i - 1].type;\n const next = nodes[i + 1] && nodes[i + 1].type;\n if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {\n removedWhitespace = true;\n nodes[i] = null;\n } else {\n node.content = \" \";\n }\n } else if (shouldCondense) {\n node.content = condense(node.content);\n }\n } else {\n node.content = node.content.replace(windowsNewlineRE, \"\\n\");\n }\n }\n }\n return removedWhitespace ? nodes.filter(Boolean) : nodes;\n}\nfunction isAllWhitespace(str) {\n for (let i = 0; i < str.length; i++) {\n if (!isWhitespace(str.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n}\nfunction hasNewlineChar(str) {\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c === 10 || c === 13) {\n return true;\n }\n }\n return false;\n}\nfunction condense(str) {\n let ret = \"\";\n let prevCharIsWhitespace = false;\n for (let i = 0; i < str.length; i++) {\n if (isWhitespace(str.charCodeAt(i))) {\n if (!prevCharIsWhitespace) {\n ret += \" \";\n prevCharIsWhitespace = true;\n }\n } else {\n ret += str[i];\n prevCharIsWhitespace = false;\n }\n }\n return ret;\n}\nfunction addNode(node) {\n (stack[0] || currentRoot).children.push(node);\n}\nfunction getLoc(start, end) {\n return {\n start: tokenizer.getPos(start),\n // @ts-expect-error allow late attachment\n end: end == null ? end : tokenizer.getPos(end),\n // @ts-expect-error allow late attachment\n source: end == null ? end : getSlice(start, end)\n };\n}\nfunction cloneLoc(loc) {\n return getLoc(loc.start.offset, loc.end.offset);\n}\nfunction setLocEnd(loc, end) {\n loc.end = tokenizer.getPos(end);\n loc.source = getSlice(loc.start.offset, end);\n}\nfunction dirToAttr(dir) {\n const attr = {\n type: 6,\n name: dir.rawName,\n nameLoc: getLoc(\n dir.loc.start.offset,\n dir.loc.start.offset + dir.rawName.length\n ),\n value: void 0,\n loc: dir.loc\n };\n if (dir.exp) {\n const loc = dir.exp.loc;\n if (loc.end.offset < dir.loc.end.offset) {\n loc.start.offset--;\n loc.start.column--;\n loc.end.offset++;\n loc.end.column++;\n }\n attr.value = {\n type: 2,\n content: dir.exp.content,\n loc\n };\n }\n return attr;\n}\nfunction createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) {\n const exp = createSimpleExpression(content, isStatic, loc, constType);\n return exp;\n}\nfunction emitError(code, index, message) {\n currentOptions.onError(\n createCompilerError(code, getLoc(index, index), void 0, message)\n );\n}\nfunction reset() {\n tokenizer.reset();\n currentOpenTag = null;\n currentProp = null;\n currentAttrValue = \"\";\n currentAttrStartIndex = -1;\n currentAttrEndIndex = -1;\n stack.length = 0;\n}\nfunction baseParse(input, options) {\n reset();\n currentInput = input;\n currentOptions = extend({}, defaultParserOptions);\n if (options) {\n let key;\n for (key in options) {\n if (options[key] != null) {\n currentOptions[key] = options[key];\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentOptions.decodeEntities) {\n throw new Error(\n `[@vue/compiler-core] decodeEntities option is required in browser builds.`\n );\n }\n }\n tokenizer.mode = currentOptions.parseMode === \"html\" ? 1 : currentOptions.parseMode === \"sfc\" ? 2 : 0;\n tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2;\n const delimiters = options && options.delimiters;\n if (delimiters) {\n tokenizer.delimiterOpen = toCharCodes(delimiters[0]);\n tokenizer.delimiterClose = toCharCodes(delimiters[1]);\n }\n const root = currentRoot = createRoot([], input);\n tokenizer.parse(currentInput);\n root.loc = getLoc(0, input.length);\n root.children = condenseWhitespace(root.children);\n currentRoot = null;\n return root;\n}\n\nfunction cacheStatic(root, context) {\n walk(\n root,\n void 0,\n context,\n // Root node is unfortunately non-hoistable due to potential parent\n // fallthrough attributes.\n isSingleElementRoot(root, root.children[0])\n );\n}\nfunction isSingleElementRoot(root, child) {\n const { children } = root;\n return children.length === 1 && child.type === 1 && !isSlotOutlet(child);\n}\nfunction walk(node, parent, context, doNotHoistNode = false, inFor = false) {\n const { children } = node;\n const toCache = [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.type === 1 && child.tagType === 0) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType > 0) {\n if (constantType >= 2) {\n child.codegenNode.patchFlag = -1;\n toCache.push(child);\n continue;\n }\n } else {\n const codegenNode = child.codegenNode;\n if (codegenNode.type === 13) {\n const flag = codegenNode.patchFlag;\n if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {\n const props = getNodeProps(child);\n if (props) {\n codegenNode.props = context.hoist(props);\n }\n }\n if (codegenNode.dynamicProps) {\n codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);\n }\n }\n }\n } else if (child.type === 12) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType >= 2) {\n toCache.push(child);\n continue;\n }\n }\n if (child.type === 1) {\n const isComponent = child.tagType === 1;\n if (isComponent) {\n context.scopes.vSlot++;\n }\n walk(child, node, context, false, inFor);\n if (isComponent) {\n context.scopes.vSlot--;\n }\n } else if (child.type === 11) {\n walk(child, node, context, child.children.length === 1, true);\n } else if (child.type === 9) {\n for (let i2 = 0; i2 < child.branches.length; i2++) {\n walk(\n child.branches[i2],\n node,\n context,\n child.branches[i2].children.length === 1,\n inFor\n );\n }\n }\n }\n let cachedAsArray = false;\n if (toCache.length === children.length && node.type === 1) {\n if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) {\n node.codegenNode.children = getCacheExpression(\n createArrayExpression(node.codegenNode.children)\n );\n cachedAsArray = true;\n } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {\n const slot = getSlotNode(node.codegenNode, \"default\");\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) {\n const slotName = findDir(node, \"slot\", true);\n const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n }\n }\n if (!cachedAsArray) {\n for (const child of toCache) {\n child.codegenNode = context.cache(child.codegenNode);\n }\n }\n function getCacheExpression(value) {\n const exp = context.cache(value);\n if (inFor && context.hmr) {\n exp.needArraySpread = true;\n }\n return exp;\n }\n function getSlotNode(node2, name) {\n if (node2.children && !isArray(node2.children) && node2.children.type === 15) {\n const slot = node2.children.properties.find(\n (p) => p.key === name || p.key.content === name\n );\n return slot && slot.value;\n }\n }\n if (toCache.length && context.transformHoist) {\n context.transformHoist(children, context, node);\n }\n}\nfunction getConstantType(node, context) {\n const { constantCache } = context;\n switch (node.type) {\n case 1:\n if (node.tagType !== 0) {\n return 0;\n }\n const cached = constantCache.get(node);\n if (cached !== void 0) {\n return cached;\n }\n const codegenNode = node.codegenNode;\n if (codegenNode.type !== 13) {\n return 0;\n }\n if (codegenNode.isBlock && node.tag !== \"svg\" && node.tag !== \"foreignObject\" && node.tag !== \"math\") {\n return 0;\n }\n if (codegenNode.patchFlag === void 0) {\n let returnType2 = 3;\n const generatedPropsType = getGeneratedPropsConstantType(node, context);\n if (generatedPropsType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (generatedPropsType < returnType2) {\n returnType2 = generatedPropsType;\n }\n for (let i = 0; i < node.children.length; i++) {\n const childType = getConstantType(node.children[i], context);\n if (childType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (childType < returnType2) {\n returnType2 = childType;\n }\n }\n if (returnType2 > 1) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && p.name === \"bind\" && p.exp) {\n const expType = getConstantType(p.exp, context);\n if (expType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (expType < returnType2) {\n returnType2 = expType;\n }\n }\n }\n }\n if (codegenNode.isBlock) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7) {\n constantCache.set(node, 0);\n return 0;\n }\n }\n context.removeHelper(OPEN_BLOCK);\n context.removeHelper(\n getVNodeBlockHelper(context.inSSR, codegenNode.isComponent)\n );\n codegenNode.isBlock = false;\n context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));\n }\n constantCache.set(node, returnType2);\n return returnType2;\n } else {\n constantCache.set(node, 0);\n return 0;\n }\n case 2:\n case 3:\n return 3;\n case 9:\n case 11:\n case 10:\n return 0;\n case 5:\n case 12:\n return getConstantType(node.content, context);\n case 4:\n return node.constType;\n case 8:\n let returnType = 3;\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (isString(child) || isSymbol(child)) {\n continue;\n }\n const childType = getConstantType(child, context);\n if (childType === 0) {\n return 0;\n } else if (childType < returnType) {\n returnType = childType;\n }\n }\n return returnType;\n case 20:\n return 2;\n default:\n if (!!(process.env.NODE_ENV !== \"production\")) ;\n return 0;\n }\n}\nconst allowHoistedHelperSet = /* @__PURE__ */ new Set([\n NORMALIZE_CLASS,\n NORMALIZE_STYLE,\n NORMALIZE_PROPS,\n GUARD_REACTIVE_PROPS\n]);\nfunction getConstantTypeOfHelperCall(value, context) {\n if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) {\n const arg = value.arguments[0];\n if (arg.type === 4) {\n return getConstantType(arg, context);\n } else if (arg.type === 14) {\n return getConstantTypeOfHelperCall(arg, context);\n }\n }\n return 0;\n}\nfunction getGeneratedPropsConstantType(node, context) {\n let returnType = 3;\n const props = getNodeProps(node);\n if (props && props.type === 15) {\n const { properties } = props;\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n const keyType = getConstantType(key, context);\n if (keyType === 0) {\n return keyType;\n }\n if (keyType < returnType) {\n returnType = keyType;\n }\n let valueType;\n if (value.type === 4) {\n valueType = getConstantType(value, context);\n } else if (value.type === 14) {\n valueType = getConstantTypeOfHelperCall(value, context);\n } else {\n valueType = 0;\n }\n if (valueType === 0) {\n return valueType;\n }\n if (valueType < returnType) {\n returnType = valueType;\n }\n }\n }\n return returnType;\n}\nfunction getNodeProps(node) {\n const codegenNode = node.codegenNode;\n if (codegenNode.type === 13) {\n return codegenNode.props;\n }\n}\n\nfunction createTransformContext(root, {\n filename = \"\",\n prefixIdentifiers = false,\n hoistStatic = false,\n hmr = false,\n cacheHandlers = false,\n nodeTransforms = [],\n directiveTransforms = {},\n transformHoist = null,\n isBuiltInComponent = NOOP,\n isCustomElement = NOOP,\n expressionPlugins = [],\n scopeId = null,\n slotted = true,\n ssr = false,\n inSSR = false,\n ssrCssVars = ``,\n bindingMetadata = EMPTY_OBJ,\n inline = false,\n isTS = false,\n onError = defaultOnError,\n onWarn = defaultOnWarn,\n compatConfig\n}) {\n const nameMatch = filename.replace(/\\?.*$/, \"\").match(/([^/\\\\]+)\\.\\w+$/);\n const context = {\n // options\n filename,\n selfName: nameMatch && capitalize(camelize(nameMatch[1])),\n prefixIdentifiers,\n hoistStatic,\n hmr,\n cacheHandlers,\n nodeTransforms,\n directiveTransforms,\n transformHoist,\n isBuiltInComponent,\n isCustomElement,\n expressionPlugins,\n scopeId,\n slotted,\n ssr,\n inSSR,\n ssrCssVars,\n bindingMetadata,\n inline,\n isTS,\n onError,\n onWarn,\n compatConfig,\n // state\n root,\n helpers: /* @__PURE__ */ new Map(),\n components: /* @__PURE__ */ new Set(),\n directives: /* @__PURE__ */ new Set(),\n hoists: [],\n imports: [],\n cached: [],\n constantCache: /* @__PURE__ */ new WeakMap(),\n temps: 0,\n identifiers: /* @__PURE__ */ Object.create(null),\n scopes: {\n vFor: 0,\n vSlot: 0,\n vPre: 0,\n vOnce: 0\n },\n parent: null,\n grandParent: null,\n currentNode: root,\n childIndex: 0,\n inVOnce: false,\n // methods\n helper(name) {\n const count = context.helpers.get(name) || 0;\n context.helpers.set(name, count + 1);\n return name;\n },\n removeHelper(name) {\n const count = context.helpers.get(name);\n if (count) {\n const currentCount = count - 1;\n if (!currentCount) {\n context.helpers.delete(name);\n } else {\n context.helpers.set(name, currentCount);\n }\n }\n },\n helperString(name) {\n return `_${helperNameMap[context.helper(name)]}`;\n },\n replaceNode(node) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!context.currentNode) {\n throw new Error(`Node being replaced is already removed.`);\n }\n if (!context.parent) {\n throw new Error(`Cannot replace root node.`);\n }\n }\n context.parent.children[context.childIndex] = context.currentNode = node;\n },\n removeNode(node) {\n if (!!(process.env.NODE_ENV !== \"production\") && !context.parent) {\n throw new Error(`Cannot remove root node.`);\n }\n const list = context.parent.children;\n const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;\n if (!!(process.env.NODE_ENV !== \"production\") && removalIndex < 0) {\n throw new Error(`node being removed is not a child of current parent`);\n }\n if (!node || node === context.currentNode) {\n context.currentNode = null;\n context.onNodeRemoved();\n } else {\n if (context.childIndex > removalIndex) {\n context.childIndex--;\n context.onNodeRemoved();\n }\n }\n context.parent.children.splice(removalIndex, 1);\n },\n onNodeRemoved: NOOP,\n addIdentifiers(exp) {\n },\n removeIdentifiers(exp) {\n },\n hoist(exp) {\n if (isString(exp)) exp = createSimpleExpression(exp);\n context.hoists.push(exp);\n const identifier = createSimpleExpression(\n `_hoisted_${context.hoists.length}`,\n false,\n exp.loc,\n 2\n );\n identifier.hoisted = exp;\n return identifier;\n },\n cache(exp, isVNode = false, inVOnce = false) {\n const cacheExp = createCacheExpression(\n context.cached.length,\n exp,\n isVNode,\n inVOnce\n );\n context.cached.push(cacheExp);\n return cacheExp;\n }\n };\n {\n context.filters = /* @__PURE__ */ new Set();\n }\n return context;\n}\nfunction transform(root, options) {\n const context = createTransformContext(root, options);\n traverseNode(root, context);\n if (options.hoistStatic) {\n cacheStatic(root, context);\n }\n if (!options.ssr) {\n createRootCodegen(root, context);\n }\n root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);\n root.components = [...context.components];\n root.directives = [...context.directives];\n root.imports = context.imports;\n root.hoists = context.hoists;\n root.temps = context.temps;\n root.cached = context.cached;\n root.transformed = true;\n {\n root.filters = [...context.filters];\n }\n}\nfunction createRootCodegen(root, context) {\n const { helper } = context;\n const { children } = root;\n if (children.length === 1) {\n const child = children[0];\n if (isSingleElementRoot(root, child) && child.codegenNode) {\n const codegenNode = child.codegenNode;\n if (codegenNode.type === 13) {\n convertToBlock(codegenNode, context);\n }\n root.codegenNode = codegenNode;\n } else {\n root.codegenNode = child;\n }\n } else if (children.length > 1) {\n let patchFlag = 64;\n if (!!(process.env.NODE_ENV !== \"production\") && children.filter((c) => c.type !== 3).length === 1) {\n patchFlag |= 2048;\n }\n root.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n root.children,\n patchFlag,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else ;\n}\nfunction traverseChildren(parent, context) {\n let i = 0;\n const nodeRemoved = () => {\n i--;\n };\n for (; i < parent.children.length; i++) {\n const child = parent.children[i];\n if (isString(child)) continue;\n context.grandParent = context.parent;\n context.parent = parent;\n context.childIndex = i;\n context.onNodeRemoved = nodeRemoved;\n traverseNode(child, context);\n }\n}\nfunction traverseNode(node, context) {\n context.currentNode = node;\n const { nodeTransforms } = context;\n const exitFns = [];\n for (let i2 = 0; i2 < nodeTransforms.length; i2++) {\n const onExit = nodeTransforms[i2](node, context);\n if (onExit) {\n if (isArray(onExit)) {\n exitFns.push(...onExit);\n } else {\n exitFns.push(onExit);\n }\n }\n if (!context.currentNode) {\n return;\n } else {\n node = context.currentNode;\n }\n }\n switch (node.type) {\n case 3:\n if (!context.ssr) {\n context.helper(CREATE_COMMENT);\n }\n break;\n case 5:\n if (!context.ssr) {\n context.helper(TO_DISPLAY_STRING);\n }\n break;\n // for container types, further traverse downwards\n case 9:\n for (let i2 = 0; i2 < node.branches.length; i2++) {\n traverseNode(node.branches[i2], context);\n }\n break;\n case 10:\n case 11:\n case 1:\n case 0:\n traverseChildren(node, context);\n break;\n }\n context.currentNode = node;\n let i = exitFns.length;\n while (i--) {\n exitFns[i]();\n }\n}\nfunction createStructuralDirectiveTransform(name, fn) {\n const matches = isString(name) ? (n) => n === name : (n) => name.test(n);\n return (node, context) => {\n if (node.type === 1) {\n const { props } = node;\n if (node.tagType === 3 && props.some(isVSlot)) {\n return;\n }\n const exitFns = [];\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 7 && matches(prop.name)) {\n props.splice(i, 1);\n i--;\n const onExit = fn(node, prop, context);\n if (onExit) exitFns.push(onExit);\n }\n }\n return exitFns;\n }\n };\n}\n\nconst PURE_ANNOTATION = `/*@__PURE__*/`;\nconst aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;\nfunction createCodegenContext(ast, {\n mode = \"function\",\n prefixIdentifiers = mode === \"module\",\n sourceMap = false,\n filename = `template.vue.html`,\n scopeId = null,\n optimizeImports = false,\n runtimeGlobalName = `Vue`,\n runtimeModuleName = `vue`,\n ssrRuntimeModuleName = \"vue/server-renderer\",\n ssr = false,\n isTS = false,\n inSSR = false\n}) {\n const context = {\n mode,\n prefixIdentifiers,\n sourceMap,\n filename,\n scopeId,\n optimizeImports,\n runtimeGlobalName,\n runtimeModuleName,\n ssrRuntimeModuleName,\n ssr,\n isTS,\n inSSR,\n source: ast.source,\n code: ``,\n column: 1,\n line: 1,\n offset: 0,\n indentLevel: 0,\n pure: false,\n map: void 0,\n helper(key) {\n return `_${helperNameMap[key]}`;\n },\n push(code, newlineIndex = -2 /* None */, node) {\n context.code += code;\n },\n indent() {\n newline(++context.indentLevel);\n },\n deindent(withoutNewLine = false) {\n if (withoutNewLine) {\n --context.indentLevel;\n } else {\n newline(--context.indentLevel);\n }\n },\n newline() {\n newline(context.indentLevel);\n }\n };\n function newline(n) {\n context.push(\"\\n\" + ` `.repeat(n), 0 /* Start */);\n }\n return context;\n}\nfunction generate(ast, options = {}) {\n const context = createCodegenContext(ast, options);\n if (options.onContextCreated) options.onContextCreated(context);\n const {\n mode,\n push,\n prefixIdentifiers,\n indent,\n deindent,\n newline,\n scopeId,\n ssr\n } = context;\n const helpers = Array.from(ast.helpers);\n const hasHelpers = helpers.length > 0;\n const useWithBlock = !prefixIdentifiers && mode !== \"module\";\n const preambleContext = context;\n {\n genFunctionPreamble(ast, preambleContext);\n }\n const functionName = ssr ? `ssrRender` : `render`;\n const args = ssr ? [\"_ctx\", \"_push\", \"_parent\", \"_attrs\"] : [\"_ctx\", \"_cache\"];\n const signature = args.join(\", \");\n {\n push(`function ${functionName}(${signature}) {`);\n }\n indent();\n if (useWithBlock) {\n push(`with (_ctx) {`);\n indent();\n if (hasHelpers) {\n push(\n `const { ${helpers.map(aliasHelper).join(\", \")} } = _Vue\n`,\n -1 /* End */\n );\n newline();\n }\n }\n if (ast.components.length) {\n genAssets(ast.components, \"component\", context);\n if (ast.directives.length || ast.temps > 0) {\n newline();\n }\n }\n if (ast.directives.length) {\n genAssets(ast.directives, \"directive\", context);\n if (ast.temps > 0) {\n newline();\n }\n }\n if (ast.filters && ast.filters.length) {\n newline();\n genAssets(ast.filters, \"filter\", context);\n newline();\n }\n if (ast.temps > 0) {\n push(`let `);\n for (let i = 0; i < ast.temps; i++) {\n push(`${i > 0 ? `, ` : ``}_temp${i}`);\n }\n }\n if (ast.components.length || ast.directives.length || ast.temps) {\n push(`\n`, 0 /* Start */);\n newline();\n }\n if (!ssr) {\n push(`return `);\n }\n if (ast.codegenNode) {\n genNode(ast.codegenNode, context);\n } else {\n push(`null`);\n }\n if (useWithBlock) {\n deindent();\n push(`}`);\n }\n deindent();\n push(`}`);\n return {\n ast,\n code: context.code,\n preamble: ``,\n map: context.map ? context.map.toJSON() : void 0\n };\n}\nfunction genFunctionPreamble(ast, context) {\n const {\n ssr,\n prefixIdentifiers,\n push,\n newline,\n runtimeModuleName,\n runtimeGlobalName,\n ssrRuntimeModuleName\n } = context;\n const VueBinding = runtimeGlobalName;\n const helpers = Array.from(ast.helpers);\n if (helpers.length > 0) {\n {\n push(`const _Vue = ${VueBinding}\n`, -1 /* End */);\n if (ast.hoists.length) {\n const staticHelpers = [\n CREATE_VNODE,\n CREATE_ELEMENT_VNODE,\n CREATE_COMMENT,\n CREATE_TEXT,\n CREATE_STATIC\n ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(\", \");\n push(`const { ${staticHelpers} } = _Vue\n`, -1 /* End */);\n }\n }\n }\n genHoists(ast.hoists, context);\n newline();\n push(`return `);\n}\nfunction genAssets(assets, type, { helper, push, newline, isTS }) {\n const resolver = helper(\n type === \"filter\" ? RESOLVE_FILTER : type === \"component\" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE\n );\n for (let i = 0; i < assets.length; i++) {\n let id = assets[i];\n const maybeSelfReference = id.endsWith(\"__self\");\n if (maybeSelfReference) {\n id = id.slice(0, -6);\n }\n push(\n `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`\n );\n if (i < assets.length - 1) {\n newline();\n }\n }\n}\nfunction genHoists(hoists, context) {\n if (!hoists.length) {\n return;\n }\n context.pure = true;\n const { push, newline } = context;\n newline();\n for (let i = 0; i < hoists.length; i++) {\n const exp = hoists[i];\n if (exp) {\n push(`const _hoisted_${i + 1} = `);\n genNode(exp, context);\n newline();\n }\n }\n context.pure = false;\n}\nfunction isText(n) {\n return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8;\n}\nfunction genNodeListAsArray(nodes, context) {\n const multilines = nodes.length > 3 || !!(process.env.NODE_ENV !== \"production\") && nodes.some((n) => isArray(n) || !isText(n));\n context.push(`[`);\n multilines && context.indent();\n genNodeList(nodes, context, multilines);\n multilines && context.deindent();\n context.push(`]`);\n}\nfunction genNodeList(nodes, context, multilines = false, comma = true) {\n const { push, newline } = context;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (isString(node)) {\n push(node, -3 /* Unknown */);\n } else if (isArray(node)) {\n genNodeListAsArray(node, context);\n } else {\n genNode(node, context);\n }\n if (i < nodes.length - 1) {\n if (multilines) {\n comma && push(\",\");\n newline();\n } else {\n comma && push(\", \");\n }\n }\n }\n}\nfunction genNode(node, context) {\n if (isString(node)) {\n context.push(node, -3 /* Unknown */);\n return;\n }\n if (isSymbol(node)) {\n context.push(context.helper(node));\n return;\n }\n switch (node.type) {\n case 1:\n case 9:\n case 11:\n !!(process.env.NODE_ENV !== \"production\") && assert(\n node.codegenNode != null,\n `Codegen node is missing for element/if/for node. Apply appropriate transforms first.`\n );\n genNode(node.codegenNode, context);\n break;\n case 2:\n genText(node, context);\n break;\n case 4:\n genExpression(node, context);\n break;\n case 5:\n genInterpolation(node, context);\n break;\n case 12:\n genNode(node.codegenNode, context);\n break;\n case 8:\n genCompoundExpression(node, context);\n break;\n case 3:\n genComment(node, context);\n break;\n case 13:\n genVNodeCall(node, context);\n break;\n case 14:\n genCallExpression(node, context);\n break;\n case 15:\n genObjectExpression(node, context);\n break;\n case 17:\n genArrayExpression(node, context);\n break;\n case 18:\n genFunctionExpression(node, context);\n break;\n case 19:\n genConditionalExpression(node, context);\n break;\n case 20:\n genCacheExpression(node, context);\n break;\n case 21:\n genNodeList(node.body, context, true, false);\n break;\n // SSR only types\n case 22:\n break;\n case 23:\n break;\n case 24:\n break;\n case 25:\n break;\n case 26:\n break;\n /* v8 ignore start */\n case 10:\n break;\n default:\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assert(false, `unhandled codegen node type: ${node.type}`);\n const exhaustiveCheck = node;\n return exhaustiveCheck;\n }\n }\n}\nfunction genText(node, context) {\n context.push(JSON.stringify(node.content), -3 /* Unknown */, node);\n}\nfunction genExpression(node, context) {\n const { content, isStatic } = node;\n context.push(\n isStatic ? JSON.stringify(content) : content,\n -3 /* Unknown */,\n node\n );\n}\nfunction genInterpolation(node, context) {\n const { push, helper, pure } = context;\n if (pure) push(PURE_ANNOTATION);\n push(`${helper(TO_DISPLAY_STRING)}(`);\n genNode(node.content, context);\n push(`)`);\n}\nfunction genCompoundExpression(node, context) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (isString(child)) {\n context.push(child, -3 /* Unknown */);\n } else {\n genNode(child, context);\n }\n }\n}\nfunction genExpressionAsPropertyKey(node, context) {\n const { push } = context;\n if (node.type === 8) {\n push(`[`);\n genCompoundExpression(node, context);\n push(`]`);\n } else if (node.isStatic) {\n const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);\n push(text, -2 /* None */, node);\n } else {\n push(`[${node.content}]`, -3 /* Unknown */, node);\n }\n}\nfunction genComment(node, context) {\n const { push, helper, pure } = context;\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(\n `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`,\n -3 /* Unknown */,\n node\n );\n}\nfunction genVNodeCall(node, context) {\n const { push, helper, pure } = context;\n const {\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent\n } = node;\n let patchFlagString;\n if (patchFlag) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (patchFlag < 0) {\n patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;\n } else {\n const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `);\n patchFlagString = patchFlag + ` /* ${flagNames} */`;\n }\n } else {\n patchFlagString = String(patchFlag);\n }\n }\n if (directives) {\n push(helper(WITH_DIRECTIVES) + `(`);\n }\n if (isBlock) {\n push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);\n }\n if (pure) {\n push(PURE_ANNOTATION);\n }\n const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent);\n push(helper(callHelper) + `(`, -2 /* None */, node);\n genNodeList(\n genNullableArgs([tag, props, children, patchFlagString, dynamicProps]),\n context\n );\n push(`)`);\n if (isBlock) {\n push(`)`);\n }\n if (directives) {\n push(`, `);\n genNode(directives, context);\n push(`)`);\n }\n}\nfunction genNullableArgs(args) {\n let i = args.length;\n while (i--) {\n if (args[i] != null) break;\n }\n return args.slice(0, i + 1).map((arg) => arg || `null`);\n}\nfunction genCallExpression(node, context) {\n const { push, helper, pure } = context;\n const callee = isString(node.callee) ? node.callee : helper(node.callee);\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(callee + `(`, -2 /* None */, node);\n genNodeList(node.arguments, context);\n push(`)`);\n}\nfunction genObjectExpression(node, context) {\n const { push, indent, deindent, newline } = context;\n const { properties } = node;\n if (!properties.length) {\n push(`{}`, -2 /* None */, node);\n return;\n }\n const multilines = properties.length > 1 || !!(process.env.NODE_ENV !== \"production\") && properties.some((p) => p.value.type !== 4);\n push(multilines ? `{` : `{ `);\n multilines && indent();\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n genExpressionAsPropertyKey(key, context);\n push(`: `);\n genNode(value, context);\n if (i < properties.length - 1) {\n push(`,`);\n newline();\n }\n }\n multilines && deindent();\n push(multilines ? `}` : ` }`);\n}\nfunction genArrayExpression(node, context) {\n genNodeListAsArray(node.elements, context);\n}\nfunction genFunctionExpression(node, context) {\n const { push, indent, deindent } = context;\n const { params, returns, body, newline, isSlot } = node;\n if (isSlot) {\n push(`_${helperNameMap[WITH_CTX]}(`);\n }\n push(`(`, -2 /* None */, node);\n if (isArray(params)) {\n genNodeList(params, context);\n } else if (params) {\n genNode(params, context);\n }\n push(`) => `);\n if (newline || body) {\n push(`{`);\n indent();\n }\n if (returns) {\n if (newline) {\n push(`return `);\n }\n if (isArray(returns)) {\n genNodeListAsArray(returns, context);\n } else {\n genNode(returns, context);\n }\n } else if (body) {\n genNode(body, context);\n }\n if (newline || body) {\n deindent();\n push(`}`);\n }\n if (isSlot) {\n if (node.isNonScopedSlot) {\n push(`, undefined, true`);\n }\n push(`)`);\n }\n}\nfunction genConditionalExpression(node, context) {\n const { test, consequent, alternate, newline: needNewline } = node;\n const { push, indent, deindent, newline } = context;\n if (test.type === 4) {\n const needsParens = !isSimpleIdentifier(test.content);\n needsParens && push(`(`);\n genExpression(test, context);\n needsParens && push(`)`);\n } else {\n push(`(`);\n genNode(test, context);\n push(`)`);\n }\n needNewline && indent();\n context.indentLevel++;\n needNewline || push(` `);\n push(`? `);\n genNode(consequent, context);\n context.indentLevel--;\n needNewline && newline();\n needNewline || push(` `);\n push(`: `);\n const isNested = alternate.type === 19;\n if (!isNested) {\n context.indentLevel++;\n }\n genNode(alternate, context);\n if (!isNested) {\n context.indentLevel--;\n }\n needNewline && deindent(\n true\n /* without newline */\n );\n}\nfunction genCacheExpression(node, context) {\n const { push, helper, indent, deindent, newline } = context;\n const { needPauseTracking, needArraySpread } = node;\n if (needArraySpread) {\n push(`[...(`);\n }\n push(`_cache[${node.index}] || (`);\n if (needPauseTracking) {\n indent();\n push(`${helper(SET_BLOCK_TRACKING)}(-1`);\n if (node.inVOnce) push(`, true`);\n push(`),`);\n newline();\n push(`(`);\n }\n push(`_cache[${node.index}] = `);\n genNode(node.value, context);\n if (needPauseTracking) {\n push(`).cacheIndex = ${node.index},`);\n newline();\n push(`${helper(SET_BLOCK_TRACKING)}(1),`);\n newline();\n push(`_cache[${node.index}]`);\n deindent();\n }\n push(`)`);\n if (needArraySpread) {\n push(`)]`);\n }\n}\n\nconst prohibitedKeywordRE = new RegExp(\n \"\\\\b\" + \"arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield\".split(\",\").join(\"\\\\b|\\\\b\") + \"\\\\b\"\n);\nconst stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\nfunction validateBrowserExpression(node, context, asParams = false, asRawStatements = false) {\n const exp = node.content;\n if (!exp.trim()) {\n return;\n }\n try {\n new Function(\n asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}`\n );\n } catch (e) {\n let message = e.message;\n const keywordMatch = exp.replace(stripStringRE, \"\").match(prohibitedKeywordRE);\n if (keywordMatch) {\n message = `avoid using JavaScript keyword as property name: \"${keywordMatch[0]}\"`;\n }\n context.onError(\n createCompilerError(\n 45,\n node.loc,\n void 0,\n message\n )\n );\n }\n}\n\nconst transformExpression = (node, context) => {\n if (node.type === 5) {\n node.content = processExpression(\n node.content,\n context\n );\n } else if (node.type === 1) {\n const memo = findDir(node, \"memo\");\n for (let i = 0; i < node.props.length; i++) {\n const dir = node.props[i];\n if (dir.type === 7 && dir.name !== \"for\") {\n const exp = dir.exp;\n const arg = dir.arg;\n if (exp && exp.type === 4 && !(dir.name === \"on\" && arg) && // key has been processed in transformFor(vMemo + vFor)\n !(memo && arg && arg.type === 4 && arg.content === \"key\")) {\n dir.exp = processExpression(\n exp,\n context,\n // slot args must be processed as function params\n dir.name === \"slot\"\n );\n }\n if (arg && arg.type === 4 && !arg.isStatic) {\n dir.arg = processExpression(arg, context);\n }\n }\n }\n }\n};\nfunction processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) {\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateBrowserExpression(node, context, asParams, asRawStatements);\n }\n return node;\n }\n}\nfunction stringifyExpression(exp) {\n if (isString(exp)) {\n return exp;\n } else if (exp.type === 4) {\n return exp.content;\n } else {\n return exp.children.map(stringifyExpression).join(\"\");\n }\n}\n\nconst transformIf = createStructuralDirectiveTransform(\n /^(if|else|else-if)$/,\n (node, dir, context) => {\n return processIf(node, dir, context, (ifNode, branch, isRoot) => {\n const siblings = context.parent.children;\n let i = siblings.indexOf(ifNode);\n let key = 0;\n while (i-- >= 0) {\n const sibling = siblings[i];\n if (sibling && sibling.type === 9) {\n key += sibling.branches.length;\n }\n }\n return () => {\n if (isRoot) {\n ifNode.codegenNode = createCodegenNodeForBranch(\n branch,\n key,\n context\n );\n } else {\n const parentCondition = getParentCondition(ifNode.codegenNode);\n parentCondition.alternate = createCodegenNodeForBranch(\n branch,\n key + ifNode.branches.length - 1,\n context\n );\n }\n };\n });\n }\n);\nfunction processIf(node, dir, context, processCodegen) {\n if (dir.name !== \"else\" && (!dir.exp || !dir.exp.content.trim())) {\n const loc = dir.exp ? dir.exp.loc : node.loc;\n context.onError(\n createCompilerError(28, dir.loc)\n );\n dir.exp = createSimpleExpression(`true`, false, loc);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true && dir.exp) {\n validateBrowserExpression(dir.exp, context);\n }\n if (dir.name === \"if\") {\n const branch = createIfBranch(node, dir);\n const ifNode = {\n type: 9,\n loc: cloneLoc(node.loc),\n branches: [branch]\n };\n context.replaceNode(ifNode);\n if (processCodegen) {\n return processCodegen(ifNode, branch, true);\n }\n } else {\n const siblings = context.parent.children;\n const comments = [];\n let i = siblings.indexOf(node);\n while (i-- >= -1) {\n const sibling = siblings[i];\n if (sibling && sibling.type === 3) {\n context.removeNode(sibling);\n !!(process.env.NODE_ENV !== \"production\") && comments.unshift(sibling);\n continue;\n }\n if (sibling && sibling.type === 2 && !sibling.content.trim().length) {\n context.removeNode(sibling);\n continue;\n }\n if (sibling && sibling.type === 9) {\n if (dir.name === \"else-if\" && sibling.branches[sibling.branches.length - 1].condition === void 0) {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n context.removeNode();\n const branch = createIfBranch(node, dir);\n if (!!(process.env.NODE_ENV !== \"production\") && comments.length && // #3619 ignore comments if the v-if is direct child of <transition>\n !(context.parent && context.parent.type === 1 && (context.parent.tag === \"transition\" || context.parent.tag === \"Transition\"))) {\n branch.children = [...comments, ...branch.children];\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n const key = branch.userKey;\n if (key) {\n sibling.branches.forEach(({ userKey }) => {\n if (isSameKey(userKey, key)) {\n context.onError(\n createCompilerError(\n 29,\n branch.userKey.loc\n )\n );\n }\n });\n }\n }\n sibling.branches.push(branch);\n const onExit = processCodegen && processCodegen(sibling, branch, false);\n traverseNode(branch, context);\n if (onExit) onExit();\n context.currentNode = null;\n } else {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n break;\n }\n }\n}\nfunction createIfBranch(node, dir) {\n const isTemplateIf = node.tagType === 3;\n return {\n type: 10,\n loc: node.loc,\n condition: dir.name === \"else\" ? void 0 : dir.exp,\n children: isTemplateIf && !findDir(node, \"for\") ? node.children : [node],\n userKey: findProp(node, `key`),\n isTemplateIf\n };\n}\nfunction createCodegenNodeForBranch(branch, keyIndex, context) {\n if (branch.condition) {\n return createConditionalExpression(\n branch.condition,\n createChildrenCodegenNode(branch, keyIndex, context),\n // make sure to pass in asBlock: true so that the comment node call\n // closes the current block.\n createCallExpression(context.helper(CREATE_COMMENT), [\n !!(process.env.NODE_ENV !== \"production\") ? '\"v-if\"' : '\"\"',\n \"true\"\n ])\n );\n } else {\n return createChildrenCodegenNode(branch, keyIndex, context);\n }\n}\nfunction createChildrenCodegenNode(branch, keyIndex, context) {\n const { helper } = context;\n const keyProperty = createObjectProperty(\n `key`,\n createSimpleExpression(\n `${keyIndex}`,\n false,\n locStub,\n 2\n )\n );\n const { children } = branch;\n const firstChild = children[0];\n const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;\n if (needFragmentWrapper) {\n if (children.length === 1 && firstChild.type === 11) {\n const vnodeCall = firstChild.codegenNode;\n injectProp(vnodeCall, keyProperty, context);\n return vnodeCall;\n } else {\n let patchFlag = 64;\n if (!!(process.env.NODE_ENV !== \"production\") && !branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) {\n patchFlag |= 2048;\n }\n return createVNodeCall(\n context,\n helper(FRAGMENT),\n createObjectExpression([keyProperty]),\n children,\n patchFlag,\n void 0,\n void 0,\n true,\n false,\n false,\n branch.loc\n );\n }\n } else {\n const ret = firstChild.codegenNode;\n const vnodeCall = getMemoedVNodeCall(ret);\n if (vnodeCall.type === 13) {\n convertToBlock(vnodeCall, context);\n }\n injectProp(vnodeCall, keyProperty, context);\n return ret;\n }\n}\nfunction isSameKey(a, b) {\n if (!a || a.type !== b.type) {\n return false;\n }\n if (a.type === 6) {\n if (a.value.content !== b.value.content) {\n return false;\n }\n } else {\n const exp = a.exp;\n const branchExp = b.exp;\n if (exp.type !== branchExp.type) {\n return false;\n }\n if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) {\n return false;\n }\n }\n return true;\n}\nfunction getParentCondition(node) {\n while (true) {\n if (node.type === 19) {\n if (node.alternate.type === 19) {\n node = node.alternate;\n } else {\n return node;\n }\n } else if (node.type === 20) {\n node = node.value;\n }\n }\n}\n\nconst transformBind = (dir, _node, context) => {\n const { modifiers, loc } = dir;\n const arg = dir.arg;\n let { exp } = dir;\n if (exp && exp.type === 4 && !exp.content.trim()) {\n {\n exp = void 0;\n }\n }\n if (!exp) {\n if (arg.type !== 4 || !arg.isStatic) {\n context.onError(\n createCompilerError(\n 52,\n arg.loc\n )\n );\n return {\n props: [\n createObjectProperty(arg, createSimpleExpression(\"\", true, loc))\n ]\n };\n }\n transformBindShorthand(dir);\n exp = dir.exp;\n }\n if (arg.type !== 4) {\n arg.children.unshift(`(`);\n arg.children.push(`) || \"\"`);\n } else if (!arg.isStatic) {\n arg.content = `${arg.content} || \"\"`;\n }\n if (modifiers.some((mod) => mod.content === \"camel\")) {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = camelize(arg.content);\n } else {\n arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;\n }\n } else {\n arg.children.unshift(`${context.helperString(CAMELIZE)}(`);\n arg.children.push(`)`);\n }\n }\n if (!context.inSSR) {\n if (modifiers.some((mod) => mod.content === \"prop\")) {\n injectPrefix(arg, \".\");\n }\n if (modifiers.some((mod) => mod.content === \"attr\")) {\n injectPrefix(arg, \"^\");\n }\n }\n return {\n props: [createObjectProperty(arg, exp)]\n };\n};\nconst transformBindShorthand = (dir, context) => {\n const arg = dir.arg;\n const propName = camelize(arg.content);\n dir.exp = createSimpleExpression(propName, false, arg.loc);\n};\nconst injectPrefix = (arg, prefix) => {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = prefix + arg.content;\n } else {\n arg.content = `\\`${prefix}\\${${arg.content}}\\``;\n }\n } else {\n arg.children.unshift(`'${prefix}' + (`);\n arg.children.push(`)`);\n }\n};\n\nconst transformFor = createStructuralDirectiveTransform(\n \"for\",\n (node, dir, context) => {\n const { helper, removeHelper } = context;\n return processFor(node, dir, context, (forNode) => {\n const renderExp = createCallExpression(helper(RENDER_LIST), [\n forNode.source\n ]);\n const isTemplate = isTemplateNode(node);\n const memo = findDir(node, \"memo\");\n const keyProp = findProp(node, `key`, false, true);\n const isDirKey = keyProp && keyProp.type === 7;\n if (isDirKey && !keyProp.exp) {\n transformBindShorthand(keyProp);\n }\n let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);\n const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;\n const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;\n const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;\n forNode.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n renderExp,\n fragmentFlag,\n void 0,\n void 0,\n true,\n !isStableFragment,\n false,\n node.loc\n );\n return () => {\n let childBlock;\n const { children } = forNode;\n if ((!!(process.env.NODE_ENV !== \"production\") || false) && isTemplate) {\n node.children.some((c) => {\n if (c.type === 1) {\n const key = findProp(c, \"key\");\n if (key) {\n context.onError(\n createCompilerError(\n 33,\n key.loc\n )\n );\n return true;\n }\n }\n });\n }\n const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;\n const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;\n if (slotOutlet) {\n childBlock = slotOutlet.codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n } else if (needFragmentWrapper) {\n childBlock = createVNodeCall(\n context,\n helper(FRAGMENT),\n keyProperty ? createObjectExpression([keyProperty]) : void 0,\n node.children,\n 64,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else {\n childBlock = children[0].codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n if (childBlock.isBlock !== !isStableFragment) {\n if (childBlock.isBlock) {\n removeHelper(OPEN_BLOCK);\n removeHelper(\n getVNodeBlockHelper(context.inSSR, childBlock.isComponent)\n );\n } else {\n removeHelper(\n getVNodeHelper(context.inSSR, childBlock.isComponent)\n );\n }\n }\n childBlock.isBlock = !isStableFragment;\n if (childBlock.isBlock) {\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));\n } else {\n helper(getVNodeHelper(context.inSSR, childBlock.isComponent));\n }\n }\n if (memo) {\n const loop = createFunctionExpression(\n createForLoopParams(forNode.parseResult, [\n createSimpleExpression(`_cached`)\n ])\n );\n loop.body = createBlockStatement([\n createCompoundExpression([`const _memo = (`, memo.exp, `)`]),\n createCompoundExpression([\n `if (_cached`,\n ...keyExp ? [` && _cached.key === `, keyExp] : [],\n ` && ${context.helperString(\n IS_MEMO_SAME\n )}(_cached, _memo)) return _cached`\n ]),\n createCompoundExpression([`const _item = `, childBlock]),\n createSimpleExpression(`_item.memo = _memo`),\n createSimpleExpression(`return _item`)\n ]);\n renderExp.arguments.push(\n loop,\n createSimpleExpression(`_cache`),\n createSimpleExpression(String(context.cached.length))\n );\n context.cached.push(null);\n } else {\n renderExp.arguments.push(\n createFunctionExpression(\n createForLoopParams(forNode.parseResult),\n childBlock,\n true\n )\n );\n }\n };\n });\n }\n);\nfunction processFor(node, dir, context, processCodegen) {\n if (!dir.exp) {\n context.onError(\n createCompilerError(31, dir.loc)\n );\n return;\n }\n const parseResult = dir.forParseResult;\n if (!parseResult) {\n context.onError(\n createCompilerError(32, dir.loc)\n );\n return;\n }\n finalizeForParseResult(parseResult, context);\n const { addIdentifiers, removeIdentifiers, scopes } = context;\n const { source, value, key, index } = parseResult;\n const forNode = {\n type: 11,\n loc: dir.loc,\n source,\n valueAlias: value,\n keyAlias: key,\n objectIndexAlias: index,\n parseResult,\n children: isTemplateNode(node) ? node.children : [node]\n };\n context.replaceNode(forNode);\n scopes.vFor++;\n const onExit = processCodegen && processCodegen(forNode);\n return () => {\n scopes.vFor--;\n if (onExit) onExit();\n };\n}\nfunction finalizeForParseResult(result, context) {\n if (result.finalized) return;\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n validateBrowserExpression(result.source, context);\n if (result.key) {\n validateBrowserExpression(\n result.key,\n context,\n true\n );\n }\n if (result.index) {\n validateBrowserExpression(\n result.index,\n context,\n true\n );\n }\n if (result.value) {\n validateBrowserExpression(\n result.value,\n context,\n true\n );\n }\n }\n result.finalized = true;\n}\nfunction createForLoopParams({ value, key, index }, memoArgs = []) {\n return createParamsList([value, key, index, ...memoArgs]);\n}\nfunction createParamsList(args) {\n let i = args.length;\n while (i--) {\n if (args[i]) break;\n }\n return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));\n}\n\nconst defaultFallback = createSimpleExpression(`undefined`, false);\nconst trackSlotScopes = (node, context) => {\n if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {\n const vSlot = findDir(node, \"slot\");\n if (vSlot) {\n vSlot.exp;\n context.scopes.vSlot++;\n return () => {\n context.scopes.vSlot--;\n };\n }\n }\n};\nconst trackVForSlotScopes = (node, context) => {\n let vFor;\n if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, \"for\"))) {\n const result = vFor.forParseResult;\n if (result) {\n finalizeForParseResult(result, context);\n const { value, key, index } = result;\n const { addIdentifiers, removeIdentifiers } = context;\n value && addIdentifiers(value);\n key && addIdentifiers(key);\n index && addIdentifiers(index);\n return () => {\n value && removeIdentifiers(value);\n key && removeIdentifiers(key);\n index && removeIdentifiers(index);\n };\n }\n }\n};\nconst buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression(\n props,\n children,\n false,\n true,\n children.length ? children[0].loc : loc\n);\nfunction buildSlots(node, context, buildSlotFn = buildClientSlotFn) {\n context.helper(WITH_CTX);\n const { children, loc } = node;\n const slotsProperties = [];\n const dynamicSlots = [];\n let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;\n const onComponentSlot = findDir(node, \"slot\", true);\n if (onComponentSlot) {\n const { arg, exp } = onComponentSlot;\n if (arg && !isStaticExp(arg)) {\n hasDynamicSlots = true;\n }\n slotsProperties.push(\n createObjectProperty(\n arg || createSimpleExpression(\"default\", true),\n buildSlotFn(exp, void 0, children, loc)\n )\n );\n }\n let hasTemplateSlots = false;\n let hasNamedDefaultSlot = false;\n const implicitDefaultChildren = [];\n const seenSlotNames = /* @__PURE__ */ new Set();\n let conditionalBranchIndex = 0;\n for (let i = 0; i < children.length; i++) {\n const slotElement = children[i];\n let slotDir;\n if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, \"slot\", true))) {\n if (slotElement.type !== 3) {\n implicitDefaultChildren.push(slotElement);\n }\n continue;\n }\n if (onComponentSlot) {\n context.onError(\n createCompilerError(37, slotDir.loc)\n );\n break;\n }\n hasTemplateSlots = true;\n const { children: slotChildren, loc: slotLoc } = slotElement;\n const {\n arg: slotName = createSimpleExpression(`default`, true),\n exp: slotProps,\n loc: dirLoc\n } = slotDir;\n let staticSlotName;\n if (isStaticExp(slotName)) {\n staticSlotName = slotName ? slotName.content : `default`;\n } else {\n hasDynamicSlots = true;\n }\n const vFor = findDir(slotElement, \"for\");\n const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc);\n let vIf;\n let vElse;\n if (vIf = findDir(slotElement, \"if\")) {\n hasDynamicSlots = true;\n dynamicSlots.push(\n createConditionalExpression(\n vIf.exp,\n buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++),\n defaultFallback\n )\n );\n } else if (vElse = findDir(\n slotElement,\n /^else(-if)?$/,\n true\n /* allowEmpty */\n )) {\n let j = i;\n let prev;\n while (j--) {\n prev = children[j];\n if (prev.type !== 3) {\n break;\n }\n }\n if (prev && isTemplateNode(prev) && findDir(prev, /^(else-)?if$/)) {\n let conditional = dynamicSlots[dynamicSlots.length - 1];\n while (conditional.alternate.type === 19) {\n conditional = conditional.alternate;\n }\n conditional.alternate = vElse.exp ? createConditionalExpression(\n vElse.exp,\n buildDynamicSlot(\n slotName,\n slotFunction,\n conditionalBranchIndex++\n ),\n defaultFallback\n ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);\n } else {\n context.onError(\n createCompilerError(30, vElse.loc)\n );\n }\n } else if (vFor) {\n hasDynamicSlots = true;\n const parseResult = vFor.forParseResult;\n if (parseResult) {\n finalizeForParseResult(parseResult, context);\n dynamicSlots.push(\n createCallExpression(context.helper(RENDER_LIST), [\n parseResult.source,\n createFunctionExpression(\n createForLoopParams(parseResult),\n buildDynamicSlot(slotName, slotFunction),\n true\n )\n ])\n );\n } else {\n context.onError(\n createCompilerError(\n 32,\n vFor.loc\n )\n );\n }\n } else {\n if (staticSlotName) {\n if (seenSlotNames.has(staticSlotName)) {\n context.onError(\n createCompilerError(\n 38,\n dirLoc\n )\n );\n continue;\n }\n seenSlotNames.add(staticSlotName);\n if (staticSlotName === \"default\") {\n hasNamedDefaultSlot = true;\n }\n }\n slotsProperties.push(createObjectProperty(slotName, slotFunction));\n }\n }\n if (!onComponentSlot) {\n const buildDefaultSlotProperty = (props, children2) => {\n const fn = buildSlotFn(props, void 0, children2, loc);\n if (context.compatConfig) {\n fn.isNonScopedSlot = true;\n }\n return createObjectProperty(`default`, fn);\n };\n if (!hasTemplateSlots) {\n slotsProperties.push(buildDefaultSlotProperty(void 0, children));\n } else if (implicitDefaultChildren.length && // #3766\n // with whitespace: 'preserve', whitespaces between slots will end up in\n // implicitDefaultChildren. Ignore if all implicit children are whitespaces.\n implicitDefaultChildren.some((node2) => isNonWhitespaceContent(node2))) {\n if (hasNamedDefaultSlot) {\n context.onError(\n createCompilerError(\n 39,\n implicitDefaultChildren[0].loc\n )\n );\n } else {\n slotsProperties.push(\n buildDefaultSlotProperty(void 0, implicitDefaultChildren)\n );\n }\n }\n }\n const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;\n let slots = createObjectExpression(\n slotsProperties.concat(\n createObjectProperty(\n `_`,\n // 2 = compiled but dynamic = can skip normalization, but must run diff\n // 1 = compiled and static = can skip normalization AND diff as optimized\n createSimpleExpression(\n slotFlag + (!!(process.env.NODE_ENV !== \"production\") ? ` /* ${slotFlagsText[slotFlag]} */` : ``),\n false\n )\n )\n ),\n loc\n );\n if (dynamicSlots.length) {\n slots = createCallExpression(context.helper(CREATE_SLOTS), [\n slots,\n createArrayExpression(dynamicSlots)\n ]);\n }\n return {\n slots,\n hasDynamicSlots\n };\n}\nfunction buildDynamicSlot(name, fn, index) {\n const props = [\n createObjectProperty(`name`, name),\n createObjectProperty(`fn`, fn)\n ];\n if (index != null) {\n props.push(\n createObjectProperty(`key`, createSimpleExpression(String(index), true))\n );\n }\n return createObjectExpression(props);\n}\nfunction hasForwardedSlots(children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n switch (child.type) {\n case 1:\n if (child.tagType === 2 || hasForwardedSlots(child.children)) {\n return true;\n }\n break;\n case 9:\n if (hasForwardedSlots(child.branches)) return true;\n break;\n case 10:\n case 11:\n if (hasForwardedSlots(child.children)) return true;\n break;\n }\n }\n return false;\n}\nfunction isNonWhitespaceContent(node) {\n if (node.type !== 2 && node.type !== 12)\n return true;\n return node.type === 2 ? !!node.content.trim() : isNonWhitespaceContent(node.content);\n}\n\nconst directiveImportMap = /* @__PURE__ */ new WeakMap();\nconst transformElement = (node, context) => {\n return function postTransformElement() {\n node = context.currentNode;\n if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {\n return;\n }\n const { tag, props } = node;\n const isComponent = node.tagType === 1;\n let vnodeTag = isComponent ? resolveComponentType(node, context) : `\"${tag}\"`;\n const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;\n let vnodeProps;\n let vnodeChildren;\n let patchFlag = 0;\n let vnodeDynamicProps;\n let dynamicPropNames;\n let vnodeDirectives;\n let shouldUseBlock = (\n // dynamic component may resolve to plain elements\n isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block\n // updates inside get proper isSVG flag at runtime. (#639, #643)\n // This is technically web-specific, but splitting the logic out of core\n // leads to too much unnecessary complexity.\n (tag === \"svg\" || tag === \"foreignObject\" || tag === \"math\")\n );\n if (props.length > 0) {\n const propsBuildResult = buildProps(\n node,\n context,\n void 0,\n isComponent,\n isDynamicComponent\n );\n vnodeProps = propsBuildResult.props;\n patchFlag = propsBuildResult.patchFlag;\n dynamicPropNames = propsBuildResult.dynamicPropNames;\n const directives = propsBuildResult.directives;\n vnodeDirectives = directives && directives.length ? createArrayExpression(\n directives.map((dir) => buildDirectiveArgs(dir, context))\n ) : void 0;\n if (propsBuildResult.shouldUseBlock) {\n shouldUseBlock = true;\n }\n }\n if (node.children.length > 0) {\n if (vnodeTag === KEEP_ALIVE) {\n shouldUseBlock = true;\n patchFlag |= 1024;\n if (!!(process.env.NODE_ENV !== \"production\") && node.children.length > 1) {\n context.onError(\n createCompilerError(46, {\n start: node.children[0].loc.start,\n end: node.children[node.children.length - 1].loc.end,\n source: \"\"\n })\n );\n }\n }\n const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling\n vnodeTag !== TELEPORT && // explained above.\n vnodeTag !== KEEP_ALIVE;\n if (shouldBuildAsSlots) {\n const { slots, hasDynamicSlots } = buildSlots(node, context);\n vnodeChildren = slots;\n if (hasDynamicSlots) {\n patchFlag |= 1024;\n }\n } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {\n const child = node.children[0];\n const type = child.type;\n const hasDynamicTextChild = type === 5 || type === 8;\n if (hasDynamicTextChild && getConstantType(child, context) === 0) {\n patchFlag |= 1;\n }\n if (hasDynamicTextChild || type === 2) {\n vnodeChildren = child;\n } else {\n vnodeChildren = node.children;\n }\n } else {\n vnodeChildren = node.children;\n }\n }\n if (dynamicPropNames && dynamicPropNames.length) {\n vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);\n }\n node.codegenNode = createVNodeCall(\n context,\n vnodeTag,\n vnodeProps,\n vnodeChildren,\n patchFlag === 0 ? void 0 : patchFlag,\n vnodeDynamicProps,\n vnodeDirectives,\n !!shouldUseBlock,\n false,\n isComponent,\n node.loc\n );\n };\n};\nfunction resolveComponentType(node, context, ssr = false) {\n let { tag } = node;\n const isExplicitDynamic = isComponentTag(tag);\n const isProp = findProp(\n node,\n \"is\",\n false,\n true\n /* allow empty */\n );\n if (isProp) {\n if (isExplicitDynamic || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n )) {\n let exp;\n if (isProp.type === 6) {\n exp = isProp.value && createSimpleExpression(isProp.value.content, true);\n } else {\n exp = isProp.exp;\n if (!exp) {\n exp = createSimpleExpression(`is`, false, isProp.arg.loc);\n }\n }\n if (exp) {\n return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [\n exp\n ]);\n }\n } else if (isProp.type === 6 && isProp.value.content.startsWith(\"vue:\")) {\n tag = isProp.value.content.slice(4);\n }\n }\n const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);\n if (builtIn) {\n if (!ssr) context.helper(builtIn);\n return builtIn;\n }\n context.helper(RESOLVE_COMPONENT);\n context.components.add(tag);\n return toValidAssetId(tag, `component`);\n}\nfunction buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) {\n const { tag, loc: elementLoc, children } = node;\n let properties = [];\n const mergeArgs = [];\n const runtimeDirectives = [];\n const hasChildren = children.length > 0;\n let shouldUseBlock = false;\n let patchFlag = 0;\n let hasRef = false;\n let hasClassBinding = false;\n let hasStyleBinding = false;\n let hasHydrationEventBinding = false;\n let hasDynamicKeys = false;\n let hasVnodeHook = false;\n const dynamicPropNames = [];\n const pushMergeArg = (arg) => {\n if (properties.length) {\n mergeArgs.push(\n createObjectExpression(dedupeProperties(properties), elementLoc)\n );\n properties = [];\n }\n if (arg) mergeArgs.push(arg);\n };\n const pushRefVForMarker = () => {\n if (context.scopes.vFor > 0) {\n properties.push(\n createObjectProperty(\n createSimpleExpression(\"ref_for\", true),\n createSimpleExpression(\"true\")\n )\n );\n }\n };\n const analyzePatchFlag = ({ key, value }) => {\n if (isStaticExp(key)) {\n const name = key.content;\n const isEventHandler = isOn(name);\n if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click\n // dedicated fast path.\n name.toLowerCase() !== \"onclick\" && // omit v-model handlers\n name !== \"onUpdate:modelValue\" && // omit onVnodeXXX hooks\n !isReservedProp(name)) {\n hasHydrationEventBinding = true;\n }\n if (isEventHandler && isReservedProp(name)) {\n hasVnodeHook = true;\n }\n if (isEventHandler && value.type === 14) {\n value = value.arguments[0];\n }\n if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {\n return;\n }\n if (name === \"ref\") {\n hasRef = true;\n } else if (name === \"class\") {\n hasClassBinding = true;\n } else if (name === \"style\") {\n hasStyleBinding = true;\n } else if (name !== \"key\" && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n if (isComponent && (name === \"class\" || name === \"style\") && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n } else {\n hasDynamicKeys = true;\n }\n };\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 6) {\n const { loc, name, nameLoc, value } = prop;\n let isStatic = true;\n if (name === \"ref\") {\n hasRef = true;\n pushRefVForMarker();\n }\n if (name === \"is\" && (isComponentTag(tag) || value && value.content.startsWith(\"vue:\") || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n properties.push(\n createObjectProperty(\n createSimpleExpression(name, true, nameLoc),\n createSimpleExpression(\n value ? value.content : \"\",\n isStatic,\n value ? value.loc : loc\n )\n )\n );\n } else {\n const { name, arg, exp, loc, modifiers } = prop;\n const isVBind = name === \"bind\";\n const isVOn = name === \"on\";\n if (name === \"slot\") {\n if (!isComponent) {\n context.onError(\n createCompilerError(40, loc)\n );\n }\n continue;\n }\n if (name === \"once\" || name === \"memo\") {\n continue;\n }\n if (name === \"is\" || isVBind && isStaticArgOf(arg, \"is\") && (isComponentTag(tag) || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n if (isVOn && ssr) {\n continue;\n }\n if (\n // #938: elements with dynamic keys should be forced into blocks\n isVBind && isStaticArgOf(arg, \"key\") || // inline before-update hooks need to force block so that it is invoked\n // before children\n isVOn && hasChildren && isStaticArgOf(arg, \"vue:before-update\")\n ) {\n shouldUseBlock = true;\n }\n if (isVBind && isStaticArgOf(arg, \"ref\")) {\n pushRefVForMarker();\n }\n if (!arg && (isVBind || isVOn)) {\n hasDynamicKeys = true;\n if (exp) {\n if (isVBind) {\n pushRefVForMarker();\n pushMergeArg();\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const hasOverridableKeys = mergeArgs.some((arg2) => {\n if (arg2.type === 15) {\n return arg2.properties.some(({ key }) => {\n if (key.type !== 4 || !key.isStatic) {\n return true;\n }\n return key.content !== \"class\" && key.content !== \"style\" && !isOn(key.content);\n });\n } else {\n return true;\n }\n });\n if (hasOverridableKeys) {\n checkCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context,\n loc\n );\n }\n }\n if (isCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context\n )) {\n mergeArgs.unshift(exp);\n continue;\n }\n }\n mergeArgs.push(exp);\n } else {\n pushMergeArg({\n type: 14,\n loc,\n callee: context.helper(TO_HANDLERS),\n arguments: isComponent ? [exp] : [exp, `true`]\n });\n }\n } else {\n context.onError(\n createCompilerError(\n isVBind ? 34 : 35,\n loc\n )\n );\n }\n continue;\n }\n if (isVBind && modifiers.some((mod) => mod.content === \"prop\")) {\n patchFlag |= 32;\n }\n const directiveTransform = context.directiveTransforms[name];\n if (directiveTransform) {\n const { props: props2, needRuntime } = directiveTransform(prop, node, context);\n !ssr && props2.forEach(analyzePatchFlag);\n if (isVOn && arg && !isStaticExp(arg)) {\n pushMergeArg(createObjectExpression(props2, elementLoc));\n } else {\n properties.push(...props2);\n }\n if (needRuntime) {\n runtimeDirectives.push(prop);\n if (isSymbol(needRuntime)) {\n directiveImportMap.set(prop, needRuntime);\n }\n }\n } else if (!isBuiltInDirective(name)) {\n runtimeDirectives.push(prop);\n if (hasChildren) {\n shouldUseBlock = true;\n }\n }\n }\n }\n let propsExpression = void 0;\n if (mergeArgs.length) {\n pushMergeArg();\n if (mergeArgs.length > 1) {\n propsExpression = createCallExpression(\n context.helper(MERGE_PROPS),\n mergeArgs,\n elementLoc\n );\n } else {\n propsExpression = mergeArgs[0];\n }\n } else if (properties.length) {\n propsExpression = createObjectExpression(\n dedupeProperties(properties),\n elementLoc\n );\n }\n if (hasDynamicKeys) {\n patchFlag |= 16;\n } else {\n if (hasClassBinding && !isComponent) {\n patchFlag |= 2;\n }\n if (hasStyleBinding && !isComponent) {\n patchFlag |= 4;\n }\n if (dynamicPropNames.length) {\n patchFlag |= 8;\n }\n if (hasHydrationEventBinding) {\n patchFlag |= 32;\n }\n }\n if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) {\n patchFlag |= 512;\n }\n if (!context.inSSR && propsExpression) {\n switch (propsExpression.type) {\n case 15:\n let classKeyIndex = -1;\n let styleKeyIndex = -1;\n let hasDynamicKey = false;\n for (let i = 0; i < propsExpression.properties.length; i++) {\n const key = propsExpression.properties[i].key;\n if (isStaticExp(key)) {\n if (key.content === \"class\") {\n classKeyIndex = i;\n } else if (key.content === \"style\") {\n styleKeyIndex = i;\n }\n } else if (!key.isHandlerKey) {\n hasDynamicKey = true;\n }\n }\n const classProp = propsExpression.properties[classKeyIndex];\n const styleProp = propsExpression.properties[styleKeyIndex];\n if (!hasDynamicKey) {\n if (classProp && !isStaticExp(classProp.value)) {\n classProp.value = createCallExpression(\n context.helper(NORMALIZE_CLASS),\n [classProp.value]\n );\n }\n if (styleProp && // the static style is compiled into an object,\n // so use `hasStyleBinding` to ensure that it is a dynamic style binding\n (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,\n // v-bind:style with static literal object\n styleProp.value.type === 17)) {\n styleProp.value = createCallExpression(\n context.helper(NORMALIZE_STYLE),\n [styleProp.value]\n );\n }\n } else {\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [propsExpression]\n );\n }\n break;\n case 14:\n break;\n default:\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [\n createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [\n propsExpression\n ])\n ]\n );\n break;\n }\n }\n return {\n props: propsExpression,\n directives: runtimeDirectives,\n patchFlag,\n dynamicPropNames,\n shouldUseBlock\n };\n}\nfunction dedupeProperties(properties) {\n const knownProps = /* @__PURE__ */ new Map();\n const deduped = [];\n for (let i = 0; i < properties.length; i++) {\n const prop = properties[i];\n if (prop.key.type === 8 || !prop.key.isStatic) {\n deduped.push(prop);\n continue;\n }\n const name = prop.key.content;\n const existing = knownProps.get(name);\n if (existing) {\n if (name === \"style\" || name === \"class\" || isOn(name)) {\n mergeAsArray(existing, prop);\n }\n } else {\n knownProps.set(name, prop);\n deduped.push(prop);\n }\n }\n return deduped;\n}\nfunction mergeAsArray(existing, incoming) {\n if (existing.value.type === 17) {\n existing.value.elements.push(incoming.value);\n } else {\n existing.value = createArrayExpression(\n [existing.value, incoming.value],\n existing.loc\n );\n }\n}\nfunction buildDirectiveArgs(dir, context) {\n const dirArgs = [];\n const runtime = directiveImportMap.get(dir);\n if (runtime) {\n dirArgs.push(context.helperString(runtime));\n } else {\n {\n context.helper(RESOLVE_DIRECTIVE);\n context.directives.add(dir.name);\n dirArgs.push(toValidAssetId(dir.name, `directive`));\n }\n }\n const { loc } = dir;\n if (dir.exp) dirArgs.push(dir.exp);\n if (dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(dir.arg);\n }\n if (Object.keys(dir.modifiers).length) {\n if (!dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(`void 0`);\n }\n const trueExpression = createSimpleExpression(`true`, false, loc);\n dirArgs.push(\n createObjectExpression(\n dir.modifiers.map(\n (modifier) => createObjectProperty(modifier, trueExpression)\n ),\n loc\n )\n );\n }\n return createArrayExpression(dirArgs, dir.loc);\n}\nfunction stringifyDynamicPropNames(props) {\n let propsNamesString = `[`;\n for (let i = 0, l = props.length; i < l; i++) {\n propsNamesString += JSON.stringify(props[i]);\n if (i < l - 1) propsNamesString += \", \";\n }\n return propsNamesString + `]`;\n}\nfunction isComponentTag(tag) {\n return tag === \"component\" || tag === \"Component\";\n}\n\nconst transformSlotOutlet = (node, context) => {\n if (isSlotOutlet(node)) {\n const { children, loc } = node;\n const { slotName, slotProps } = processSlotOutlet(node, context);\n const slotArgs = [\n context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,\n slotName,\n \"{}\",\n \"undefined\",\n \"true\"\n ];\n let expectedLen = 2;\n if (slotProps) {\n slotArgs[2] = slotProps;\n expectedLen = 3;\n }\n if (children.length) {\n slotArgs[3] = createFunctionExpression([], children, false, false, loc);\n expectedLen = 4;\n }\n if (context.scopeId && !context.slotted) {\n expectedLen = 5;\n }\n slotArgs.splice(expectedLen);\n node.codegenNode = createCallExpression(\n context.helper(RENDER_SLOT),\n slotArgs,\n loc\n );\n }\n};\nfunction processSlotOutlet(node, context) {\n let slotName = `\"default\"`;\n let slotProps = void 0;\n const nonNameProps = [];\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (p.value) {\n if (p.name === \"name\") {\n slotName = JSON.stringify(p.value.content);\n } else {\n p.name = camelize(p.name);\n nonNameProps.push(p);\n }\n }\n } else {\n if (p.name === \"bind\" && isStaticArgOf(p.arg, \"name\")) {\n if (p.exp) {\n slotName = p.exp;\n } else if (p.arg && p.arg.type === 4) {\n const name = camelize(p.arg.content);\n slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);\n }\n } else {\n if (p.name === \"bind\" && p.arg && isStaticExp(p.arg)) {\n p.arg.content = camelize(p.arg.content);\n }\n nonNameProps.push(p);\n }\n }\n }\n if (nonNameProps.length > 0) {\n const { props, directives } = buildProps(\n node,\n context,\n nonNameProps,\n false,\n false\n );\n slotProps = props;\n if (directives.length) {\n context.onError(\n createCompilerError(\n 36,\n directives[0].loc\n )\n );\n }\n }\n return {\n slotName,\n slotProps\n };\n}\n\nconst transformOn = (dir, node, context, augmentor) => {\n const { loc, modifiers, arg } = dir;\n if (!dir.exp && !modifiers.length) {\n context.onError(createCompilerError(35, loc));\n }\n let eventName;\n if (arg.type === 4) {\n if (arg.isStatic) {\n let rawName = arg.content;\n if (!!(process.env.NODE_ENV !== \"production\") && rawName.startsWith(\"vnode\")) {\n context.onError(createCompilerError(51, arg.loc));\n }\n if (rawName.startsWith(\"vue:\")) {\n rawName = `vnode-${rawName.slice(4)}`;\n }\n const eventString = node.tagType !== 0 || rawName.startsWith(\"vnode\") || !/[A-Z]/.test(rawName) ? (\n // for non-element and vnode lifecycle event listeners, auto convert\n // it to camelCase. See issue #2249\n toHandlerKey(camelize(rawName))\n ) : (\n // preserve case for plain element listeners that have uppercase\n // letters, as these may be custom elements' custom events\n `on:${rawName}`\n );\n eventName = createSimpleExpression(eventString, true, arg.loc);\n } else {\n eventName = createCompoundExpression([\n `${context.helperString(TO_HANDLER_KEY)}(`,\n arg,\n `)`\n ]);\n }\n } else {\n eventName = arg;\n eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);\n eventName.children.push(`)`);\n }\n let exp = dir.exp;\n if (exp && !exp.content.trim()) {\n exp = void 0;\n }\n let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;\n if (exp) {\n const isMemberExp = isMemberExpression(exp);\n const isInlineStatement = !(isMemberExp || isFnExpression(exp));\n const hasMultipleStatements = exp.content.includes(`;`);\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n validateBrowserExpression(\n exp,\n context,\n false,\n hasMultipleStatements\n );\n }\n if (isInlineStatement || shouldCache && isMemberExp) {\n exp = createCompoundExpression([\n `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,\n exp,\n hasMultipleStatements ? `}` : `)`\n ]);\n }\n }\n let ret = {\n props: [\n createObjectProperty(\n eventName,\n exp || createSimpleExpression(`() => {}`, false, loc)\n )\n ]\n };\n if (augmentor) {\n ret = augmentor(ret);\n }\n if (shouldCache) {\n ret.props[0].value = context.cache(ret.props[0].value);\n }\n ret.props.forEach((p) => p.key.isHandlerKey = true);\n return ret;\n};\n\nconst transformText = (node, context) => {\n if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {\n return () => {\n const children = node.children;\n let currentContainer = void 0;\n let hasText = false;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child)) {\n hasText = true;\n for (let j = i + 1; j < children.length; j++) {\n const next = children[j];\n if (isText$1(next)) {\n if (!currentContainer) {\n currentContainer = children[i] = createCompoundExpression(\n [child],\n child.loc\n );\n }\n currentContainer.children.push(` + `, next);\n children.splice(j, 1);\n j--;\n } else {\n currentContainer = void 0;\n break;\n }\n }\n }\n }\n if (!hasText || // if this is a plain element with a single text child, leave it\n // as-is since the runtime has dedicated fast path for this by directly\n // setting textContent of the element.\n // for component root it's always normalized anyway.\n children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756\n // custom directives can potentially add DOM elements arbitrarily,\n // we need to avoid setting textContent of the element at runtime\n // to avoid accidentally overwriting the DOM elements added\n // by the user through custom directives.\n !node.props.find(\n (p) => p.type === 7 && !context.directiveTransforms[p.name]\n ) && // in compat mode, <template> tags with no special directives\n // will be rendered as a fragment so its children must be\n // converted into vnodes.\n !(node.tag === \"template\"))) {\n return;\n }\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child) || child.type === 8) {\n const callArgs = [];\n if (child.type !== 2 || child.content !== \" \") {\n callArgs.push(child);\n }\n if (!context.ssr && getConstantType(child, context) === 0) {\n callArgs.push(\n 1 + (!!(process.env.NODE_ENV !== \"production\") ? ` /* ${PatchFlagNames[1]} */` : ``)\n );\n }\n children[i] = {\n type: 12,\n content: child,\n loc: child.loc,\n codegenNode: createCallExpression(\n context.helper(CREATE_TEXT),\n callArgs\n )\n };\n }\n }\n };\n }\n};\n\nconst seen$1 = /* @__PURE__ */ new WeakSet();\nconst transformOnce = (node, context) => {\n if (node.type === 1 && findDir(node, \"once\", true)) {\n if (seen$1.has(node) || context.inVOnce || context.inSSR) {\n return;\n }\n seen$1.add(node);\n context.inVOnce = true;\n context.helper(SET_BLOCK_TRACKING);\n return () => {\n context.inVOnce = false;\n const cur = context.currentNode;\n if (cur.codegenNode) {\n cur.codegenNode = context.cache(\n cur.codegenNode,\n true,\n true\n );\n }\n };\n }\n};\n\nconst transformModel = (dir, node, context) => {\n const { exp, arg } = dir;\n if (!exp) {\n context.onError(\n createCompilerError(41, dir.loc)\n );\n return createTransformProps();\n }\n const rawExp = exp.loc.source.trim();\n const expString = exp.type === 4 ? exp.content : rawExp;\n const bindingType = context.bindingMetadata[rawExp];\n if (bindingType === \"props\" || bindingType === \"props-aliased\") {\n context.onError(createCompilerError(44, exp.loc));\n return createTransformProps();\n }\n const maybeRef = false;\n if (!expString.trim() || !isMemberExpression(exp) && !maybeRef) {\n context.onError(\n createCompilerError(42, exp.loc)\n );\n return createTransformProps();\n }\n const propName = arg ? arg : createSimpleExpression(\"modelValue\", true);\n const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['\"onUpdate:\" + ', arg]) : `onUpdate:modelValue`;\n let assignmentExp;\n const eventArg = context.isTS ? `($event: any)` : `$event`;\n {\n assignmentExp = createCompoundExpression([\n `${eventArg} => ((`,\n exp,\n `) = $event)`\n ]);\n }\n const props = [\n // modelValue: foo\n createObjectProperty(propName, dir.exp),\n // \"onUpdate:modelValue\": $event => (foo = $event)\n createObjectProperty(eventName, assignmentExp)\n ];\n if (dir.modifiers.length && node.tagType === 1) {\n const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);\n const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + \"Modifiers\"']) : `modelModifiers`;\n props.push(\n createObjectProperty(\n modifiersKey,\n createSimpleExpression(\n `{ ${modifiers} }`,\n false,\n dir.loc,\n 2\n )\n )\n );\n }\n return createTransformProps(props);\n};\nfunction createTransformProps(props = []) {\n return { props };\n}\n\nconst validDivisionCharRE = /[\\w).+\\-_$\\]]/;\nconst transformFilter = (node, context) => {\n if (!isCompatEnabled(\"COMPILER_FILTERS\", context)) {\n return;\n }\n if (node.type === 5) {\n rewriteFilter(node.content, context);\n } else if (node.type === 1) {\n node.props.forEach((prop) => {\n if (prop.type === 7 && prop.name !== \"for\" && prop.exp) {\n rewriteFilter(prop.exp, context);\n }\n });\n }\n};\nfunction rewriteFilter(node, context) {\n if (node.type === 4) {\n parseFilter(node, context);\n } else {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (typeof child !== \"object\") continue;\n if (child.type === 4) {\n parseFilter(child, context);\n } else if (child.type === 8) {\n rewriteFilter(node, context);\n } else if (child.type === 5) {\n rewriteFilter(child.content, context);\n }\n }\n }\n}\nfunction parseFilter(node, context) {\n const exp = node.content;\n let inSingle = false;\n let inDouble = false;\n let inTemplateString = false;\n let inRegex = false;\n let curly = 0;\n let square = 0;\n let paren = 0;\n let lastFilterIndex = 0;\n let c, prev, i, expression, filters = [];\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 39 && prev !== 92) inSingle = false;\n } else if (inDouble) {\n if (c === 34 && prev !== 92) inDouble = false;\n } else if (inTemplateString) {\n if (c === 96 && prev !== 92) inTemplateString = false;\n } else if (inRegex) {\n if (c === 47 && prev !== 92) inRegex = false;\n } else if (c === 124 && // pipe\n exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {\n if (expression === void 0) {\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 34:\n inDouble = true;\n break;\n // \"\n case 39:\n inSingle = true;\n break;\n // '\n case 96:\n inTemplateString = true;\n break;\n // `\n case 40:\n paren++;\n break;\n // (\n case 41:\n paren--;\n break;\n // )\n case 91:\n square++;\n break;\n // [\n case 93:\n square--;\n break;\n // ]\n case 123:\n curly++;\n break;\n // {\n case 125:\n curly--;\n break;\n }\n if (c === 47) {\n let j = i - 1;\n let p;\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== \" \") break;\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n if (expression === void 0) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n function pushFilter() {\n filters.push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n if (filters.length) {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\n \"COMPILER_FILTERS\",\n context,\n node.loc\n );\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i], context);\n }\n node.content = expression;\n node.ast = void 0;\n }\n}\nfunction wrapFilter(exp, filter, context) {\n context.helper(RESOLVE_FILTER);\n const i = filter.indexOf(\"(\");\n if (i < 0) {\n context.filters.add(filter);\n return `${toValidAssetId(filter, \"filter\")}(${exp})`;\n } else {\n const name = filter.slice(0, i);\n const args = filter.slice(i + 1);\n context.filters.add(name);\n return `${toValidAssetId(name, \"filter\")}(${exp}${args !== \")\" ? \",\" + args : args}`;\n }\n}\n\nconst seen = /* @__PURE__ */ new WeakSet();\nconst transformMemo = (node, context) => {\n if (node.type === 1) {\n const dir = findDir(node, \"memo\");\n if (!dir || seen.has(node)) {\n return;\n }\n seen.add(node);\n return () => {\n const codegenNode = node.codegenNode || context.currentNode.codegenNode;\n if (codegenNode && codegenNode.type === 13) {\n if (node.tagType !== 1) {\n convertToBlock(codegenNode, context);\n }\n node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [\n dir.exp,\n createFunctionExpression(void 0, codegenNode),\n `_cache`,\n String(context.cached.length)\n ]);\n context.cached.push(null);\n }\n };\n }\n};\n\nfunction getBaseTransformPreset(prefixIdentifiers) {\n return [\n [\n transformOnce,\n transformIf,\n transformMemo,\n transformFor,\n ...[transformFilter] ,\n ...!!(process.env.NODE_ENV !== \"production\") ? [transformExpression] : [],\n transformSlotOutlet,\n transformElement,\n trackSlotScopes,\n transformText\n ],\n {\n on: transformOn,\n bind: transformBind,\n model: transformModel\n }\n ];\n}\nfunction baseCompile(source, options = {}) {\n const onError = options.onError || defaultOnError;\n const isModuleMode = options.mode === \"module\";\n {\n if (options.prefixIdentifiers === true) {\n onError(createCompilerError(47));\n } else if (isModuleMode) {\n onError(createCompilerError(48));\n }\n }\n const prefixIdentifiers = false;\n if (options.cacheHandlers) {\n onError(createCompilerError(49));\n }\n if (options.scopeId && !isModuleMode) {\n onError(createCompilerError(50));\n }\n const resolvedOptions = extend({}, options, {\n prefixIdentifiers\n });\n const ast = isString(source) ? baseParse(source, resolvedOptions) : source;\n const [nodeTransforms, directiveTransforms] = getBaseTransformPreset();\n transform(\n ast,\n extend({}, resolvedOptions, {\n nodeTransforms: [\n ...nodeTransforms,\n ...options.nodeTransforms || []\n // user transforms\n ],\n directiveTransforms: extend(\n {},\n directiveTransforms,\n options.directiveTransforms || {}\n // user transforms\n )\n })\n );\n return generate(ast, resolvedOptions);\n}\n\nconst BindingTypes = {\n \"DATA\": \"data\",\n \"PROPS\": \"props\",\n \"PROPS_ALIASED\": \"props-aliased\",\n \"SETUP_LET\": \"setup-let\",\n \"SETUP_CONST\": \"setup-const\",\n \"SETUP_REACTIVE_CONST\": \"setup-reactive-const\",\n \"SETUP_MAYBE_REF\": \"setup-maybe-ref\",\n \"SETUP_REF\": \"setup-ref\",\n \"OPTIONS\": \"options\",\n \"LITERAL_CONST\": \"literal-const\"\n};\n\nconst noopDirectiveTransform = () => ({ props: [] });\n\nexport { BASE_TRANSITION, BindingTypes, CAMELIZE, CAPITALIZE, CREATE_BLOCK, CREATE_COMMENT, CREATE_ELEMENT_BLOCK, CREATE_ELEMENT_VNODE, CREATE_SLOTS, CREATE_STATIC, CREATE_TEXT, CREATE_VNODE, CompilerDeprecationTypes, ConstantTypes, ElementTypes, ErrorCodes, FRAGMENT, GUARD_REACTIVE_PROPS, IS_MEMO_SAME, IS_REF, KEEP_ALIVE, MERGE_PROPS, NORMALIZE_CLASS, NORMALIZE_PROPS, NORMALIZE_STYLE, Namespaces, NodeTypes, OPEN_BLOCK, POP_SCOPE_ID, PUSH_SCOPE_ID, RENDER_LIST, RENDER_SLOT, RESOLVE_COMPONENT, RESOLVE_DIRECTIVE, RESOLVE_DYNAMIC_COMPONENT, RESOLVE_FILTER, SET_BLOCK_TRACKING, SUSPENSE, TELEPORT, TO_DISPLAY_STRING, TO_HANDLERS, TO_HANDLER_KEY, TS_NODE_TYPES, UNREF, WITH_CTX, WITH_DIRECTIVES, WITH_MEMO, advancePositionWithClone, advancePositionWithMutation, assert, baseCompile, baseParse, buildDirectiveArgs, buildProps, buildSlots, checkCompatEnabled, convertToBlock, createArrayExpression, createAssignmentExpression, createBlockStatement, createCacheExpression, createCallExpression, createCompilerError, createCompoundExpression, createConditionalExpression, createForLoopParams, createFunctionExpression, createIfStatement, createInterpolation, createObjectExpression, createObjectProperty, createReturnStatement, createRoot, createSequenceExpression, createSimpleExpression, createStructuralDirectiveTransform, createTemplateLiteral, createTransformContext, createVNodeCall, errorMessages, extractIdentifiers, findDir, findProp, forAliasRE, generate, getBaseTransformPreset, getConstantType, getMemoedVNodeCall, getVNodeBlockHelper, getVNodeHelper, hasDynamicKeyVBind, hasScopeRef, helperNameMap, injectProp, isCoreComponent, isFnExpression, isFnExpressionBrowser, isFnExpressionNode, isFunctionType, isInDestructureAssignment, isInNewExpression, isMemberExpression, isMemberExpressionBrowser, isMemberExpressionNode, isReferencedIdentifier, isSimpleIdentifier, isSlotOutlet, isStaticArgOf, isStaticExp, isStaticProperty, isStaticPropertyKey, isTemplateNode, isText$1 as isText, isVSlot, locStub, noopDirectiveTransform, processExpression, processFor, processIf, processSlotOutlet, registerRuntimeHelpers, resolveComponentType, stringifyExpression, toValidAssetId, trackSlotScopes, trackVForSlotScopes, transform, transformBind, transformElement, transformExpression, transformModel, transformOn, traverseNode, unwrapTSNode, walkBlockDeclarations, walkFunctionParams, walkIdentifiers, warnDeprecation };\n","/**\n* @vue/compiler-dom v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { registerRuntimeHelpers, createSimpleExpression, createCompilerError, createObjectProperty, getConstantType, createCallExpression, TO_DISPLAY_STRING, transformModel as transformModel$1, findProp, hasDynamicKeyVBind, findDir, isStaticArgOf, transformOn as transformOn$1, isStaticExp, createCompoundExpression, checkCompatEnabled, noopDirectiveTransform, baseCompile, baseParse } from '@vue/compiler-core';\nexport * from '@vue/compiler-core';\nimport { isVoidTag, isHTMLTag, isSVGTag, isMathMLTag, parseStringStyle, capitalize, makeMap, extend } from '@vue/shared';\n\nconst V_MODEL_RADIO = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `vModelRadio` : ``);\nconst V_MODEL_CHECKBOX = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vModelCheckbox` : ``\n);\nconst V_MODEL_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `vModelText` : ``);\nconst V_MODEL_SELECT = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vModelSelect` : ``\n);\nconst V_MODEL_DYNAMIC = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vModelDynamic` : ``\n);\nconst V_ON_WITH_MODIFIERS = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vOnModifiersGuard` : ``\n);\nconst V_ON_WITH_KEYS = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vOnKeysGuard` : ``\n);\nconst V_SHOW = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `vShow` : ``);\nconst TRANSITION = Symbol(!!(process.env.NODE_ENV !== \"production\") ? `Transition` : ``);\nconst TRANSITION_GROUP = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `TransitionGroup` : ``\n);\nregisterRuntimeHelpers({\n [V_MODEL_RADIO]: `vModelRadio`,\n [V_MODEL_CHECKBOX]: `vModelCheckbox`,\n [V_MODEL_TEXT]: `vModelText`,\n [V_MODEL_SELECT]: `vModelSelect`,\n [V_MODEL_DYNAMIC]: `vModelDynamic`,\n [V_ON_WITH_MODIFIERS]: `withModifiers`,\n [V_ON_WITH_KEYS]: `withKeys`,\n [V_SHOW]: `vShow`,\n [TRANSITION]: `Transition`,\n [TRANSITION_GROUP]: `TransitionGroup`\n});\n\nlet decoder;\nfunction decodeHtmlBrowser(raw, asAttr = false) {\n if (!decoder) {\n decoder = document.createElement(\"div\");\n }\n if (asAttr) {\n decoder.innerHTML = `<div foo=\"${raw.replace(/\"/g, \""\")}\">`;\n return decoder.children[0].getAttribute(\"foo\");\n } else {\n decoder.innerHTML = raw;\n return decoder.textContent;\n }\n}\n\nconst parserOptions = {\n parseMode: \"html\",\n isVoidTag,\n isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n isPreTag: (tag) => tag === \"pre\",\n isIgnoreNewlineTag: (tag) => tag === \"pre\" || tag === \"textarea\",\n decodeEntities: decodeHtmlBrowser ,\n isBuiltInComponent: (tag) => {\n if (tag === \"Transition\" || tag === \"transition\") {\n return TRANSITION;\n } else if (tag === \"TransitionGroup\" || tag === \"transition-group\") {\n return TRANSITION_GROUP;\n }\n },\n // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher\n getNamespace(tag, parent, rootNamespace) {\n let ns = parent ? parent.ns : rootNamespace;\n if (parent && ns === 2) {\n if (parent.tag === \"annotation-xml\") {\n if (tag === \"svg\") {\n return 1;\n }\n if (parent.props.some(\n (a) => a.type === 6 && a.name === \"encoding\" && a.value != null && (a.value.content === \"text/html\" || a.value.content === \"application/xhtml+xml\")\n )) {\n ns = 0;\n }\n } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== \"mglyph\" && tag !== \"malignmark\") {\n ns = 0;\n }\n } else if (parent && ns === 1) {\n if (parent.tag === \"foreignObject\" || parent.tag === \"desc\" || parent.tag === \"title\") {\n ns = 0;\n }\n }\n if (ns === 0) {\n if (tag === \"svg\") {\n return 1;\n }\n if (tag === \"math\") {\n return 2;\n }\n }\n return ns;\n }\n};\n\nconst transformStyle = (node) => {\n if (node.type === 1) {\n node.props.forEach((p, i) => {\n if (p.type === 6 && p.name === \"style\" && p.value) {\n node.props[i] = {\n type: 7,\n name: `bind`,\n arg: createSimpleExpression(`style`, true, p.loc),\n exp: parseInlineCSS(p.value.content, p.loc),\n modifiers: [],\n loc: p.loc\n };\n }\n });\n }\n};\nconst parseInlineCSS = (cssText, loc) => {\n const normalized = parseStringStyle(cssText);\n return createSimpleExpression(\n JSON.stringify(normalized),\n false,\n loc,\n 3\n );\n};\n\nfunction createDOMCompilerError(code, loc) {\n return createCompilerError(\n code,\n loc,\n !!(process.env.NODE_ENV !== \"production\") || false ? DOMErrorMessages : void 0\n );\n}\nconst DOMErrorCodes = {\n \"X_V_HTML_NO_EXPRESSION\": 53,\n \"53\": \"X_V_HTML_NO_EXPRESSION\",\n \"X_V_HTML_WITH_CHILDREN\": 54,\n \"54\": \"X_V_HTML_WITH_CHILDREN\",\n \"X_V_TEXT_NO_EXPRESSION\": 55,\n \"55\": \"X_V_TEXT_NO_EXPRESSION\",\n \"X_V_TEXT_WITH_CHILDREN\": 56,\n \"56\": \"X_V_TEXT_WITH_CHILDREN\",\n \"X_V_MODEL_ON_INVALID_ELEMENT\": 57,\n \"57\": \"X_V_MODEL_ON_INVALID_ELEMENT\",\n \"X_V_MODEL_ARG_ON_ELEMENT\": 58,\n \"58\": \"X_V_MODEL_ARG_ON_ELEMENT\",\n \"X_V_MODEL_ON_FILE_INPUT_ELEMENT\": 59,\n \"59\": \"X_V_MODEL_ON_FILE_INPUT_ELEMENT\",\n \"X_V_MODEL_UNNECESSARY_VALUE\": 60,\n \"60\": \"X_V_MODEL_UNNECESSARY_VALUE\",\n \"X_V_SHOW_NO_EXPRESSION\": 61,\n \"61\": \"X_V_SHOW_NO_EXPRESSION\",\n \"X_TRANSITION_INVALID_CHILDREN\": 62,\n \"62\": \"X_TRANSITION_INVALID_CHILDREN\",\n \"X_IGNORED_SIDE_EFFECT_TAG\": 63,\n \"63\": \"X_IGNORED_SIDE_EFFECT_TAG\",\n \"__EXTEND_POINT__\": 64,\n \"64\": \"__EXTEND_POINT__\"\n};\nconst DOMErrorMessages = {\n [53]: `v-html is missing expression.`,\n [54]: `v-html will override element children.`,\n [55]: `v-text is missing expression.`,\n [56]: `v-text will override element children.`,\n [57]: `v-model can only be used on <input>, <textarea> and <select> elements.`,\n [58]: `v-model argument is not supported on plain elements.`,\n [59]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,\n [60]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,\n [61]: `v-show is missing expression.`,\n [62]: `<Transition> expects exactly one child element or component.`,\n [63]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`\n};\n\nconst transformVHtml = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(53, loc)\n );\n }\n if (node.children.length) {\n context.onError(\n createDOMCompilerError(54, loc)\n );\n node.children.length = 0;\n }\n return {\n props: [\n createObjectProperty(\n createSimpleExpression(`innerHTML`, true, loc),\n exp || createSimpleExpression(\"\", true)\n )\n ]\n };\n};\n\nconst transformVText = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(55, loc)\n );\n }\n if (node.children.length) {\n context.onError(\n createDOMCompilerError(56, loc)\n );\n node.children.length = 0;\n }\n return {\n props: [\n createObjectProperty(\n createSimpleExpression(`textContent`, true),\n exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression(\n context.helperString(TO_DISPLAY_STRING),\n [exp],\n loc\n ) : createSimpleExpression(\"\", true)\n )\n ]\n };\n};\n\nconst transformModel = (dir, node, context) => {\n const baseResult = transformModel$1(dir, node, context);\n if (!baseResult.props.length || node.tagType === 1) {\n return baseResult;\n }\n if (dir.arg) {\n context.onError(\n createDOMCompilerError(\n 58,\n dir.arg.loc\n )\n );\n }\n function checkDuplicatedValue() {\n const value = findDir(node, \"bind\");\n if (value && isStaticArgOf(value.arg, \"value\")) {\n context.onError(\n createDOMCompilerError(\n 60,\n value.loc\n )\n );\n }\n }\n const { tag } = node;\n const isCustomElement = context.isCustomElement(tag);\n if (tag === \"input\" || tag === \"textarea\" || tag === \"select\" || isCustomElement) {\n let directiveToUse = V_MODEL_TEXT;\n let isInvalidType = false;\n if (tag === \"input\" || isCustomElement) {\n const type = findProp(node, `type`);\n if (type) {\n if (type.type === 7) {\n directiveToUse = V_MODEL_DYNAMIC;\n } else if (type.value) {\n switch (type.value.content) {\n case \"radio\":\n directiveToUse = V_MODEL_RADIO;\n break;\n case \"checkbox\":\n directiveToUse = V_MODEL_CHECKBOX;\n break;\n case \"file\":\n isInvalidType = true;\n context.onError(\n createDOMCompilerError(\n 59,\n dir.loc\n )\n );\n break;\n default:\n !!(process.env.NODE_ENV !== \"production\") && checkDuplicatedValue();\n break;\n }\n }\n } else if (hasDynamicKeyVBind(node)) {\n directiveToUse = V_MODEL_DYNAMIC;\n } else {\n !!(process.env.NODE_ENV !== \"production\") && checkDuplicatedValue();\n }\n } else if (tag === \"select\") {\n directiveToUse = V_MODEL_SELECT;\n } else {\n !!(process.env.NODE_ENV !== \"production\") && checkDuplicatedValue();\n }\n if (!isInvalidType) {\n baseResult.needRuntime = context.helper(directiveToUse);\n }\n } else {\n context.onError(\n createDOMCompilerError(\n 57,\n dir.loc\n )\n );\n }\n baseResult.props = baseResult.props.filter(\n (p) => !(p.key.type === 4 && p.key.content === \"modelValue\")\n );\n return baseResult;\n};\n\nconst isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);\nconst isNonKeyModifier = /* @__PURE__ */ makeMap(\n // event propagation management\n `stop,prevent,self,ctrl,shift,alt,meta,exact,middle`\n);\nconst maybeKeyModifier = /* @__PURE__ */ makeMap(\"left,right\");\nconst isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);\nconst resolveModifiers = (key, modifiers, context, loc) => {\n const keyModifiers = [];\n const nonKeyModifiers = [];\n const eventOptionModifiers = [];\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i].content;\n if (modifier === \"native\" && checkCompatEnabled(\n \"COMPILER_V_ON_NATIVE\",\n context,\n loc\n )) {\n eventOptionModifiers.push(modifier);\n } else if (isEventOptionModifier(modifier)) {\n eventOptionModifiers.push(modifier);\n } else {\n if (maybeKeyModifier(modifier)) {\n if (isStaticExp(key)) {\n if (isKeyboardEvent(key.content.toLowerCase())) {\n keyModifiers.push(modifier);\n } else {\n nonKeyModifiers.push(modifier);\n }\n } else {\n keyModifiers.push(modifier);\n nonKeyModifiers.push(modifier);\n }\n } else {\n if (isNonKeyModifier(modifier)) {\n nonKeyModifiers.push(modifier);\n } else {\n keyModifiers.push(modifier);\n }\n }\n }\n }\n return {\n keyModifiers,\n nonKeyModifiers,\n eventOptionModifiers\n };\n};\nconst transformClick = (key, event) => {\n const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === \"onclick\";\n return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([\n `(`,\n key,\n `) === \"onClick\" ? \"${event}\" : (`,\n key,\n `)`\n ]) : key;\n};\nconst transformOn = (dir, node, context) => {\n return transformOn$1(dir, node, context, (baseResult) => {\n const { modifiers } = dir;\n if (!modifiers.length) return baseResult;\n let { key, value: handlerExp } = baseResult.props[0];\n const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);\n if (nonKeyModifiers.includes(\"right\")) {\n key = transformClick(key, `onContextmenu`);\n }\n if (nonKeyModifiers.includes(\"middle\")) {\n key = transformClick(key, `onMouseup`);\n }\n if (nonKeyModifiers.length) {\n handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [\n handlerExp,\n JSON.stringify(nonKeyModifiers)\n ]);\n }\n if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard\n (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) {\n handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [\n handlerExp,\n JSON.stringify(keyModifiers)\n ]);\n }\n if (eventOptionModifiers.length) {\n const modifierPostfix = eventOptionModifiers.map(capitalize).join(\"\");\n key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + \"${modifierPostfix}\"`]);\n }\n return {\n props: [createObjectProperty(key, handlerExp)]\n };\n });\n};\n\nconst transformShow = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(61, loc)\n );\n }\n return {\n props: [],\n needRuntime: context.helper(V_SHOW)\n };\n};\n\nconst transformTransition = (node, context) => {\n if (node.type === 1 && node.tagType === 1) {\n const component = context.isBuiltInComponent(node.tag);\n if (component === TRANSITION) {\n return () => {\n if (!node.children.length) {\n return;\n }\n if (hasMultipleChildren(node)) {\n context.onError(\n createDOMCompilerError(\n 62,\n {\n start: node.children[0].loc.start,\n end: node.children[node.children.length - 1].loc.end,\n source: \"\"\n }\n )\n );\n }\n const child = node.children[0];\n if (child.type === 1) {\n for (const p of child.props) {\n if (p.type === 7 && p.name === \"show\") {\n node.props.push({\n type: 6,\n name: \"persisted\",\n nameLoc: node.loc,\n value: void 0,\n loc: node.loc\n });\n }\n }\n }\n };\n }\n }\n};\nfunction hasMultipleChildren(node) {\n const children = node.children = node.children.filter(\n (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim())\n );\n const child = children[0];\n return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);\n}\n\nconst ignoreSideEffectTags = (node, context) => {\n if (node.type === 1 && node.tagType === 0 && (node.tag === \"script\" || node.tag === \"style\")) {\n !!(process.env.NODE_ENV !== \"production\") && context.onError(\n createDOMCompilerError(\n 63,\n node.loc\n )\n );\n context.removeNode();\n }\n};\n\nfunction isValidHTMLNesting(parent, child) {\n if (parent in onlyValidChildren) {\n return onlyValidChildren[parent].has(child);\n }\n if (child in onlyValidParents) {\n return onlyValidParents[child].has(parent);\n }\n if (parent in knownInvalidChildren) {\n if (knownInvalidChildren[parent].has(child)) return false;\n }\n if (child in knownInvalidParents) {\n if (knownInvalidParents[child].has(parent)) return false;\n }\n return true;\n}\nconst headings = /* @__PURE__ */ new Set([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]);\nconst emptySet = /* @__PURE__ */ new Set([]);\nconst onlyValidChildren = {\n head: /* @__PURE__ */ new Set([\n \"base\",\n \"basefront\",\n \"bgsound\",\n \"link\",\n \"meta\",\n \"title\",\n \"noscript\",\n \"noframes\",\n \"style\",\n \"script\",\n \"template\"\n ]),\n optgroup: /* @__PURE__ */ new Set([\"option\"]),\n select: /* @__PURE__ */ new Set([\"optgroup\", \"option\", \"hr\"]),\n // table\n table: /* @__PURE__ */ new Set([\"caption\", \"colgroup\", \"tbody\", \"tfoot\", \"thead\"]),\n tr: /* @__PURE__ */ new Set([\"td\", \"th\"]),\n colgroup: /* @__PURE__ */ new Set([\"col\"]),\n tbody: /* @__PURE__ */ new Set([\"tr\"]),\n thead: /* @__PURE__ */ new Set([\"tr\"]),\n tfoot: /* @__PURE__ */ new Set([\"tr\"]),\n // these elements can not have any children elements\n script: emptySet,\n iframe: emptySet,\n option: emptySet,\n textarea: emptySet,\n style: emptySet,\n title: emptySet\n};\nconst onlyValidParents = {\n // sections\n html: emptySet,\n body: /* @__PURE__ */ new Set([\"html\"]),\n head: /* @__PURE__ */ new Set([\"html\"]),\n // table\n td: /* @__PURE__ */ new Set([\"tr\"]),\n colgroup: /* @__PURE__ */ new Set([\"table\"]),\n caption: /* @__PURE__ */ new Set([\"table\"]),\n tbody: /* @__PURE__ */ new Set([\"table\"]),\n tfoot: /* @__PURE__ */ new Set([\"table\"]),\n col: /* @__PURE__ */ new Set([\"colgroup\"]),\n th: /* @__PURE__ */ new Set([\"tr\"]),\n thead: /* @__PURE__ */ new Set([\"table\"]),\n tr: /* @__PURE__ */ new Set([\"tbody\", \"thead\", \"tfoot\"]),\n // data list\n dd: /* @__PURE__ */ new Set([\"dl\", \"div\"]),\n dt: /* @__PURE__ */ new Set([\"dl\", \"div\"]),\n // other\n figcaption: /* @__PURE__ */ new Set([\"figure\"]),\n // li: new Set([\"ul\", \"ol\"]),\n summary: /* @__PURE__ */ new Set([\"details\"]),\n area: /* @__PURE__ */ new Set([\"map\"])\n};\nconst knownInvalidChildren = {\n p: /* @__PURE__ */ new Set([\n \"address\",\n \"article\",\n \"aside\",\n \"blockquote\",\n \"center\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"fieldset\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"li\",\n \"main\",\n \"nav\",\n \"menu\",\n \"ol\",\n \"p\",\n \"pre\",\n \"section\",\n \"table\",\n \"ul\"\n ]),\n svg: /* @__PURE__ */ new Set([\n \"b\",\n \"blockquote\",\n \"br\",\n \"code\",\n \"dd\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"embed\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"hr\",\n \"i\",\n \"img\",\n \"li\",\n \"menu\",\n \"meta\",\n \"ol\",\n \"p\",\n \"pre\",\n \"ruby\",\n \"s\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"table\",\n \"u\",\n \"ul\",\n \"var\"\n ])\n};\nconst knownInvalidParents = {\n a: /* @__PURE__ */ new Set([\"a\"]),\n button: /* @__PURE__ */ new Set([\"button\"]),\n dd: /* @__PURE__ */ new Set([\"dd\", \"dt\"]),\n dt: /* @__PURE__ */ new Set([\"dd\", \"dt\"]),\n form: /* @__PURE__ */ new Set([\"form\"]),\n li: /* @__PURE__ */ new Set([\"li\"]),\n h1: headings,\n h2: headings,\n h3: headings,\n h4: headings,\n h5: headings,\n h6: headings\n};\n\nconst validateHtmlNesting = (node, context) => {\n if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) {\n const error = new SyntaxError(\n `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.`\n );\n error.loc = node.loc;\n context.onWarn(error);\n }\n};\n\nconst DOMNodeTransforms = [\n transformStyle,\n ...!!(process.env.NODE_ENV !== \"production\") ? [transformTransition, validateHtmlNesting] : []\n];\nconst DOMDirectiveTransforms = {\n cloak: noopDirectiveTransform,\n html: transformVHtml,\n text: transformVText,\n model: transformModel,\n // override compiler-core\n on: transformOn,\n // override compiler-core\n show: transformShow\n};\nfunction compile(src, options = {}) {\n return baseCompile(\n src,\n extend({}, parserOptions, options, {\n nodeTransforms: [\n // ignore <script> and <tag>\n // this is not put inside DOMNodeTransforms because that list is used\n // by compiler-ssr to generate vnode fallback branches\n ignoreSideEffectTags,\n ...DOMNodeTransforms,\n ...options.nodeTransforms || []\n ],\n directiveTransforms: extend(\n {},\n DOMDirectiveTransforms,\n options.directiveTransforms || {}\n ),\n transformHoist: null \n })\n );\n}\nfunction parse(template, options = {}) {\n return baseParse(template, extend({}, parserOptions, options));\n}\n\nexport { DOMDirectiveTransforms, DOMErrorCodes, DOMErrorMessages, DOMNodeTransforms, TRANSITION, TRANSITION_GROUP, V_MODEL_CHECKBOX, V_MODEL_DYNAMIC, V_MODEL_RADIO, V_MODEL_SELECT, V_MODEL_TEXT, V_ON_WITH_KEYS, V_ON_WITH_MODIFIERS, V_SHOW, compile, createDOMCompilerError, parse, parserOptions, transformStyle };\n","/**\n* @vue/server-renderer v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { createVNode, ssrUtils, ssrContextKey, warn as warn$2, Fragment, Static, Comment, Text, mergeProps, createApp, initDirectivesForSSR } from 'vue';\nimport { isOn, isRenderableAttrValue, isSVGTag, propsToAttrMap, isBooleanAttr, includeBooleanAttr, isSSRSafeAttrName, escapeHtml, normalizeClass, isString, normalizeStyle, stringifyStyle, makeMap, isArray, toDisplayString, extend, isFunction, EMPTY_OBJ, getGlobalThis, NOOP, isObject, looseEqual, looseIndexOf, isPromise, escapeHtmlComment, isVoidTag } from '@vue/shared';\nexport { includeBooleanAttr as ssrIncludeBooleanAttr } from '@vue/shared';\n\nconst shouldIgnoreProp = /* @__PURE__ */ makeMap(\n `,key,ref,innerHTML,textContent,ref_key,ref_for`\n);\nfunction ssrRenderAttrs(props, tag) {\n let ret = \"\";\n for (const key in props) {\n if (shouldIgnoreProp(key) || isOn(key) || tag === \"textarea\" && key === \"value\") {\n continue;\n }\n const value = props[key];\n if (key === \"class\") {\n ret += ` class=\"${ssrRenderClass(value)}\"`;\n } else if (key === \"style\") {\n ret += ` style=\"${ssrRenderStyle(value)}\"`;\n } else if (key === \"className\") {\n ret += ` class=\"${String(value)}\"`;\n } else {\n ret += ssrRenderDynamicAttr(key, value, tag);\n }\n }\n return ret;\n}\nfunction ssrRenderDynamicAttr(key, value, tag) {\n if (!isRenderableAttrValue(value)) {\n return ``;\n }\n const attrKey = tag && (tag.indexOf(\"-\") > 0 || isSVGTag(tag)) ? key : propsToAttrMap[key] || key.toLowerCase();\n if (isBooleanAttr(attrKey)) {\n return includeBooleanAttr(value) ? ` ${attrKey}` : ``;\n } else if (isSSRSafeAttrName(attrKey)) {\n return value === \"\" ? ` ${attrKey}` : ` ${attrKey}=\"${escapeHtml(value)}\"`;\n } else {\n console.warn(\n `[@vue/server-renderer] Skipped rendering unsafe attribute name: ${attrKey}`\n );\n return ``;\n }\n}\nfunction ssrRenderAttr(key, value) {\n if (!isRenderableAttrValue(value)) {\n return ``;\n }\n return ` ${key}=\"${escapeHtml(value)}\"`;\n}\nfunction ssrRenderClass(raw) {\n return escapeHtml(normalizeClass(raw));\n}\nfunction ssrRenderStyle(raw) {\n if (!raw) {\n return \"\";\n }\n if (isString(raw)) {\n return escapeHtml(raw);\n }\n const styles = normalizeStyle(raw);\n return escapeHtml(stringifyStyle(styles));\n}\n\nfunction ssrRenderComponent(comp, props = null, children = null, parentComponent = null, slotScopeId) {\n return renderComponentVNode(\n createVNode(comp, props, children),\n parentComponent,\n slotScopeId\n );\n}\n\nconst { ensureValidVNode } = ssrUtils;\nfunction ssrRenderSlot(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId) {\n push(`<!--[-->`);\n ssrRenderSlotInner(\n slots,\n slotName,\n slotProps,\n fallbackRenderFn,\n push,\n parentComponent,\n slotScopeId\n );\n push(`<!--]-->`);\n}\nfunction ssrRenderSlotInner(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId, transition) {\n const slotFn = slots[slotName];\n if (slotFn) {\n const slotBuffer = [];\n const bufferedPush = (item) => {\n slotBuffer.push(item);\n };\n const ret = slotFn(\n slotProps,\n bufferedPush,\n parentComponent,\n slotScopeId ? \" \" + slotScopeId : \"\"\n );\n if (isArray(ret)) {\n const validSlotContent = ensureValidVNode(ret);\n if (validSlotContent) {\n renderVNodeChildren(\n push,\n validSlotContent,\n parentComponent,\n slotScopeId\n );\n } else if (fallbackRenderFn) {\n fallbackRenderFn();\n }\n } else {\n let isEmptySlot = true;\n if (transition) {\n isEmptySlot = false;\n } else {\n for (let i = 0; i < slotBuffer.length; i++) {\n if (!isComment(slotBuffer[i])) {\n isEmptySlot = false;\n break;\n }\n }\n }\n if (isEmptySlot) {\n if (fallbackRenderFn) {\n fallbackRenderFn();\n }\n } else {\n let start = 0;\n let end = slotBuffer.length;\n if (transition && slotBuffer[0] === \"<!--[-->\" && slotBuffer[end - 1] === \"<!--]-->\") {\n start++;\n end--;\n }\n for (let i = start; i < end; i++) {\n push(slotBuffer[i]);\n }\n }\n }\n } else if (fallbackRenderFn) {\n fallbackRenderFn();\n }\n}\nconst commentTestRE = /^<!--[\\s\\S]*-->$/;\nconst commentRE = /<!--[^]*?-->/gm;\nfunction isComment(item) {\n if (typeof item !== \"string\" || !commentTestRE.test(item)) return false;\n if (item.length <= 8) return true;\n return !item.replace(commentRE, \"\").trim();\n}\n\nfunction ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) {\n parentPush(\"<!--teleport start-->\");\n const context = parentComponent.appContext.provides[ssrContextKey];\n const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {});\n const targetBuffer = teleportBuffers[target] || (teleportBuffers[target] = []);\n const bufferIndex = targetBuffer.length;\n let teleportContent;\n if (disabled) {\n contentRenderFn(parentPush);\n teleportContent = `<!--teleport start anchor--><!--teleport anchor-->`;\n } else {\n const { getBuffer, push } = createBuffer();\n push(`<!--teleport start anchor-->`);\n contentRenderFn(push);\n push(`<!--teleport anchor-->`);\n teleportContent = getBuffer();\n }\n targetBuffer.splice(bufferIndex, 0, teleportContent);\n parentPush(\"<!--teleport end-->\");\n}\n\nfunction ssrInterpolate(value) {\n return escapeHtml(toDisplayString(value));\n}\n\nlet activeSub;\nlet batchDepth = 0;\nlet batchedSub;\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\n\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n {\n return;\n }\n }\n trigger(debugInfo) {\n this.version++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nSymbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nSymbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nSymbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\n\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n\nconst stack = [];\nfunction pushWarningContext$1(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext$1() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext$1(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext$1();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nlet devtools;\nlet buffer = [];\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n buffer = [];\n }\n }, 3e3);\n } else {\n buffer = [];\n }\n}\n\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => v\n );\n registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => v\n );\n}\n!!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} : {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n }\n};\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\n!!(process.env.NODE_ENV !== \"production\") || true ? devtools : void 0;\n!!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook : NOOP;\n\nfunction ssrRenderList(source, renderItem) {\n if (isArray(source) || isString(source)) {\n for (let i = 0, l = source.length; i < l; i++) {\n renderItem(source[i], i);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n return;\n }\n for (let i = 0; i < source; i++) {\n renderItem(i + 1, i);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n const arr = Array.from(source);\n for (let i = 0, l = arr.length; i < l; i++) {\n renderItem(arr[i], i);\n }\n } else {\n const keys = Object.keys(source);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n renderItem(source[key], key, i);\n }\n }\n }\n}\n\nasync function ssrRenderSuspense(push, { default: renderContent }) {\n if (renderContent) {\n renderContent();\n } else {\n push(`<!---->`);\n }\n}\n\nfunction ssrGetDirectiveProps(instance, dir, value, arg, modifiers = {}) {\n if (typeof dir !== \"function\" && dir.getSSRProps) {\n return dir.getSSRProps(\n {\n dir,\n instance: ssrUtils.getComponentPublicInstance(instance.$),\n value,\n oldValue: void 0,\n arg,\n modifiers\n },\n null\n ) || {};\n }\n return {};\n}\n\nconst ssrLooseEqual = looseEqual;\nfunction ssrLooseContain(arr, value) {\n return looseIndexOf(arr, value) > -1;\n}\nfunction ssrRenderDynamicModel(type, model, value) {\n switch (type) {\n case \"radio\":\n return looseEqual(model, value) ? \" checked\" : \"\";\n case \"checkbox\":\n return (isArray(model) ? ssrLooseContain(model, value) : model) ? \" checked\" : \"\";\n default:\n return ssrRenderAttr(\"value\", model);\n }\n}\nfunction ssrGetDynamicModelProps(existingProps = {}, model) {\n const { type, value } = existingProps;\n switch (type) {\n case \"radio\":\n return looseEqual(model, value) ? { checked: true } : null;\n case \"checkbox\":\n return (isArray(model) ? ssrLooseContain(model, value) : model) ? { checked: true } : null;\n default:\n return { value: model };\n }\n}\n\nfunction ssrCompile(template, instance) {\n {\n throw new Error(\n `On-the-fly template compilation is not supported in the ESM build of @vue/server-renderer. All templates must be pre-compiled into render functions.`\n );\n }\n}\n\nconst {\n createComponentInstance,\n setCurrentRenderingInstance,\n setupComponent,\n renderComponentRoot,\n normalizeVNode,\n pushWarningContext,\n popWarningContext\n} = ssrUtils;\nfunction createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n return;\n }\n buffer.push(item);\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nfunction renderComponentVNode(vnode, parentComponent = null, slotScopeId) {\n const instance = vnode.component = createComponentInstance(\n vnode,\n parentComponent,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) pushWarningContext(vnode);\n const res = setupComponent(\n instance,\n true\n /* isSSR */\n );\n if (!!(process.env.NODE_ENV !== \"production\")) popWarningContext();\n const hasAsyncSetup = isPromise(res);\n let prefetches = instance.sp;\n if (hasAsyncSetup || prefetches) {\n const p = Promise.resolve(res).then(() => {\n if (hasAsyncSetup) prefetches = instance.sp;\n if (prefetches) {\n return Promise.all(\n prefetches.map((prefetch) => prefetch.call(instance.proxy))\n );\n }\n }).catch(NOOP);\n return p.then(() => renderComponentSubTree(instance, slotScopeId));\n } else {\n return renderComponentSubTree(instance, slotScopeId);\n }\n}\nfunction renderComponentSubTree(instance, slotScopeId) {\n if (!!(process.env.NODE_ENV !== \"production\")) pushWarningContext(instance.vnode);\n const comp = instance.type;\n const { getBuffer, push } = createBuffer();\n if (isFunction(comp)) {\n let root = renderComponentRoot(instance);\n if (!comp.props) {\n for (const key in instance.attrs) {\n if (key.startsWith(`data-v-`)) {\n (root.props || (root.props = {}))[key] = ``;\n }\n }\n }\n renderVNode(push, instance.subTree = root, instance, slotScopeId);\n } else {\n if ((!instance.render || instance.render === NOOP) && !instance.ssrRender && !comp.ssrRender && isString(comp.template)) {\n comp.ssrRender = ssrCompile(comp.template);\n }\n const ssrRender = instance.ssrRender || comp.ssrRender;\n if (ssrRender) {\n let attrs = instance.inheritAttrs !== false ? instance.attrs : void 0;\n let hasCloned = false;\n let cur = instance;\n while (true) {\n const scopeId = cur.vnode.scopeId;\n if (scopeId) {\n if (!hasCloned) {\n attrs = { ...attrs };\n hasCloned = true;\n }\n attrs[scopeId] = \"\";\n }\n const parent = cur.parent;\n if (parent && parent.subTree && parent.subTree === cur.vnode) {\n cur = parent;\n } else {\n break;\n }\n }\n if (slotScopeId) {\n if (!hasCloned) attrs = { ...attrs };\n const slotScopeIdList = slotScopeId.trim().split(\" \");\n for (let i = 0; i < slotScopeIdList.length; i++) {\n attrs[slotScopeIdList[i]] = \"\";\n }\n }\n const prev = setCurrentRenderingInstance(instance);\n try {\n ssrRender(\n instance.proxy,\n push,\n instance,\n attrs,\n // compiler-optimized bindings\n instance.props,\n instance.setupState,\n instance.data,\n instance.ctx\n );\n } finally {\n setCurrentRenderingInstance(prev);\n }\n } else if (instance.render && instance.render !== NOOP) {\n renderVNode(\n push,\n instance.subTree = renderComponentRoot(instance),\n instance,\n slotScopeId\n );\n } else {\n const componentName = comp.name || comp.__file || `<Anonymous>`;\n warn$2(`Component ${componentName} is missing template or render function.`);\n push(`<!---->`);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) popWarningContext();\n return getBuffer();\n}\nfunction renderVNode(push, vnode, parentComponent, slotScopeId) {\n const { type, shapeFlag, children, dirs, props } = vnode;\n if (dirs) {\n vnode.props = applySSRDirectives(vnode, props, dirs);\n }\n switch (type) {\n case Text:\n push(escapeHtml(children));\n break;\n case Comment:\n push(\n children ? `<!--${escapeHtmlComment(children)}-->` : `<!---->`\n );\n break;\n case Static:\n push(children);\n break;\n case Fragment:\n if (vnode.slotScopeIds) {\n slotScopeId = (slotScopeId ? slotScopeId + \" \" : \"\") + vnode.slotScopeIds.join(\" \");\n }\n push(`<!--[-->`);\n renderVNodeChildren(\n push,\n children,\n parentComponent,\n slotScopeId\n );\n push(`<!--]-->`);\n break;\n default:\n if (shapeFlag & 1) {\n renderElementVNode(push, vnode, parentComponent, slotScopeId);\n } else if (shapeFlag & 6) {\n push(renderComponentVNode(vnode, parentComponent, slotScopeId));\n } else if (shapeFlag & 64) {\n renderTeleportVNode(push, vnode, parentComponent, slotScopeId);\n } else if (shapeFlag & 128) {\n renderVNode(push, vnode.ssContent, parentComponent, slotScopeId);\n } else {\n warn$2(\n \"[@vue/server-renderer] Invalid VNode type:\",\n type,\n `(${typeof type})`\n );\n }\n }\n}\nfunction renderVNodeChildren(push, children, parentComponent, slotScopeId) {\n for (let i = 0; i < children.length; i++) {\n renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId);\n }\n}\nfunction renderElementVNode(push, vnode, parentComponent, slotScopeId) {\n const tag = vnode.type;\n let { props, children, shapeFlag, scopeId } = vnode;\n let openTag = `<${tag}`;\n if (props) {\n openTag += ssrRenderAttrs(props, tag);\n }\n if (scopeId) {\n openTag += ` ${scopeId}`;\n }\n let curParent = parentComponent;\n let curVnode = vnode;\n while (curParent && curVnode === curParent.subTree) {\n curVnode = curParent.vnode;\n if (curVnode.scopeId) {\n openTag += ` ${curVnode.scopeId}`;\n }\n curParent = curParent.parent;\n }\n if (slotScopeId) {\n openTag += ` ${slotScopeId}`;\n }\n push(openTag + `>`);\n if (!isVoidTag(tag)) {\n let hasChildrenOverride = false;\n if (props) {\n if (props.innerHTML) {\n hasChildrenOverride = true;\n push(props.innerHTML);\n } else if (props.textContent) {\n hasChildrenOverride = true;\n push(escapeHtml(props.textContent));\n } else if (tag === \"textarea\" && props.value) {\n hasChildrenOverride = true;\n push(escapeHtml(props.value));\n }\n }\n if (!hasChildrenOverride) {\n if (shapeFlag & 8) {\n push(escapeHtml(children));\n } else if (shapeFlag & 16) {\n renderVNodeChildren(\n push,\n children,\n parentComponent,\n slotScopeId\n );\n }\n }\n push(`</${tag}>`);\n }\n}\nfunction applySSRDirectives(vnode, rawProps, dirs) {\n const toMerge = [];\n for (let i = 0; i < dirs.length; i++) {\n const binding = dirs[i];\n const {\n dir: { getSSRProps }\n } = binding;\n if (getSSRProps) {\n const props = getSSRProps(binding, vnode);\n if (props) toMerge.push(props);\n }\n }\n return mergeProps(rawProps || {}, ...toMerge);\n}\nfunction renderTeleportVNode(push, vnode, parentComponent, slotScopeId) {\n const target = vnode.props && vnode.props.to;\n const disabled = vnode.props && vnode.props.disabled;\n if (!target) {\n if (!disabled) {\n warn$2(`[@vue/server-renderer] Teleport is missing target prop.`);\n }\n return [];\n }\n if (!isString(target)) {\n warn$2(\n `[@vue/server-renderer] Teleport target must be a query selector string.`\n );\n return [];\n }\n ssrRenderTeleport(\n push,\n (push2) => {\n renderVNodeChildren(\n push2,\n vnode.children,\n parentComponent,\n slotScopeId\n );\n },\n target,\n disabled || disabled === \"\",\n parentComponent\n );\n}\n\nconst { isVNode: isVNode$1 } = ssrUtils;\nfunction nestedUnrollBuffer(buffer, parentRet, startIndex) {\n if (!buffer.hasAsync) {\n return parentRet + unrollBufferSync$1(buffer);\n }\n let ret = parentRet;\n for (let i = startIndex; i < buffer.length; i += 1) {\n const item = buffer[i];\n if (isString(item)) {\n ret += item;\n continue;\n }\n if (isPromise(item)) {\n return item.then((nestedItem) => {\n buffer[i] = nestedItem;\n return nestedUnrollBuffer(buffer, ret, i);\n });\n }\n const result = nestedUnrollBuffer(item, ret, 0);\n if (isPromise(result)) {\n return result.then((nestedItem) => {\n buffer[i] = nestedItem;\n return nestedUnrollBuffer(buffer, \"\", i);\n });\n }\n ret = result;\n }\n return ret;\n}\nfunction unrollBuffer$1(buffer) {\n return nestedUnrollBuffer(buffer, \"\", 0);\n}\nfunction unrollBufferSync$1(buffer) {\n let ret = \"\";\n for (let i = 0; i < buffer.length; i++) {\n let item = buffer[i];\n if (isString(item)) {\n ret += item;\n } else {\n ret += unrollBufferSync$1(item);\n }\n }\n return ret;\n}\nasync function renderToString(input, context = {}) {\n if (isVNode$1(input)) {\n return renderToString(createApp({ render: () => input }), context);\n }\n const vnode = createVNode(input._component, input._props);\n vnode.appContext = input._context;\n input.provide(ssrContextKey, context);\n const buffer = await renderComponentVNode(vnode);\n const result = await unrollBuffer$1(buffer);\n await resolveTeleports(context);\n if (context.__watcherHandles) {\n for (const unwatch of context.__watcherHandles) {\n unwatch();\n }\n }\n return result;\n}\nasync function resolveTeleports(context) {\n if (context.__teleportBuffers) {\n context.teleports = context.teleports || {};\n for (const key in context.__teleportBuffers) {\n context.teleports[key] = await unrollBuffer$1(\n await Promise.all([context.__teleportBuffers[key]])\n );\n }\n }\n}\n\nconst { isVNode } = ssrUtils;\nasync function unrollBuffer(buffer, stream) {\n if (buffer.hasAsync) {\n for (let i = 0; i < buffer.length; i++) {\n let item = buffer[i];\n if (isPromise(item)) {\n item = await item;\n }\n if (isString(item)) {\n stream.push(item);\n } else {\n await unrollBuffer(item, stream);\n }\n }\n } else {\n unrollBufferSync(buffer, stream);\n }\n}\nfunction unrollBufferSync(buffer, stream) {\n for (let i = 0; i < buffer.length; i++) {\n let item = buffer[i];\n if (isString(item)) {\n stream.push(item);\n } else {\n unrollBufferSync(item, stream);\n }\n }\n}\nfunction renderToSimpleStream(input, context, stream) {\n if (isVNode(input)) {\n return renderToSimpleStream(\n createApp({ render: () => input }),\n context,\n stream\n );\n }\n const vnode = createVNode(input._component, input._props);\n vnode.appContext = input._context;\n input.provide(ssrContextKey, context);\n Promise.resolve(renderComponentVNode(vnode)).then((buffer) => unrollBuffer(buffer, stream)).then(() => resolveTeleports(context)).then(() => {\n if (context.__watcherHandles) {\n for (const unwatch of context.__watcherHandles) {\n unwatch();\n }\n }\n }).then(() => stream.push(null)).catch((error) => {\n stream.destroy(error);\n });\n return stream;\n}\nfunction renderToStream(input, context = {}) {\n console.warn(\n `[@vue/server-renderer] renderToStream is deprecated - use renderToNodeStream instead.`\n );\n return renderToNodeStream(input, context);\n}\nfunction renderToNodeStream(input, context = {}) {\n {\n throw new Error(\n `ESM build of renderToStream() does not support renderToNodeStream(). Use pipeToNodeWritable() with an existing Node.js Writable stream instance instead.`\n );\n }\n}\nfunction pipeToNodeWritable(input, context = {}, writable) {\n renderToSimpleStream(input, context, {\n push(content) {\n if (content != null) {\n writable.write(content);\n } else {\n writable.end();\n }\n },\n destroy(err) {\n writable.destroy(err);\n }\n });\n}\nfunction renderToWebStream(input, context = {}) {\n if (typeof ReadableStream !== \"function\") {\n throw new Error(\n `ReadableStream constructor is not available in the global scope. If the target environment does support web streams, consider using pipeToWebWritable() with an existing WritableStream instance instead.`\n );\n }\n const encoder = new TextEncoder();\n let cancelled = false;\n return new ReadableStream({\n start(controller) {\n renderToSimpleStream(input, context, {\n push(content) {\n if (cancelled) return;\n if (content != null) {\n controller.enqueue(encoder.encode(content));\n } else {\n controller.close();\n }\n },\n destroy(err) {\n controller.error(err);\n }\n });\n },\n cancel() {\n cancelled = true;\n }\n });\n}\nfunction pipeToWebWritable(input, context = {}, writable) {\n const writer = writable.getWriter();\n const encoder = new TextEncoder();\n let hasReady = false;\n try {\n hasReady = isPromise(writer.ready);\n } catch (e) {\n }\n renderToSimpleStream(input, context, {\n async push(content) {\n if (hasReady) {\n await writer.ready;\n }\n if (content != null) {\n return writer.write(encoder.encode(content));\n } else {\n return writer.close();\n }\n },\n destroy(err) {\n console.log(err);\n writer.close();\n }\n });\n}\n\ninitDirectivesForSSR();\n\nexport { pipeToNodeWritable, pipeToWebWritable, renderToNodeStream, renderToSimpleStream, renderToStream, renderToString, renderToWebStream, ssrGetDirectiveProps, ssrGetDynamicModelProps, ssrInterpolate, ssrLooseContain, ssrLooseEqual, ssrRenderAttr, ssrRenderAttrs, ssrRenderClass, ssrRenderComponent, ssrRenderDynamicAttr, ssrRenderDynamicModel, ssrRenderList, ssrRenderSlot, ssrRenderSlotInner, ssrRenderStyle, ssrRenderSuspense, ssrRenderTeleport, renderVNode as ssrRenderVNode };\n","\n/**\n * @vue/test-utils v2.4.6\n * (c) 2024 Lachlan Miller\n * Released under the MIT License\n */\n\nimport * as Vue from 'vue';\nimport { nextTick, setDevtoolsHook, Transition, BaseTransition, TransitionGroup, defineComponent, h, isRef, shallowReactive, reactive, ref, createApp, transformVNodeArgs, computed } from 'vue';\nimport { compile } from '@vue/compiler-dom';\nimport { renderToString as renderToString$1 } from '@vue/server-renderer';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar Pluggable = /** @class */ (function () {\n function Pluggable() {\n this.installedPlugins = [];\n }\n Pluggable.prototype.install = function (handler, options) {\n if (typeof handler !== 'function') {\n console.error('plugin.install must receive a function');\n handler = function () { return ({}); };\n }\n this.installedPlugins.push({ handler: handler, options: options });\n };\n Pluggable.prototype.extend = function (instance) {\n var invokeSetup = function (_a) {\n var handler = _a.handler, options = _a.options;\n return handler(instance, options); // invoke the setup method passed to install\n };\n var bindProperty = function (_a) {\n var property = _a[0], value = _a[1];\n instance[property] =\n typeof value === 'function' ? value.bind(instance) : value;\n };\n var addAllPropertiesFromSetup = function (setupResult) {\n setupResult = typeof setupResult === 'object' ? setupResult : {};\n Object.entries(setupResult).forEach(bindProperty);\n };\n this.installedPlugins.map(invokeSetup).forEach(addAllPropertiesFromSetup);\n };\n /** For testing */\n Pluggable.prototype.reset = function () {\n this.installedPlugins = [];\n };\n return Pluggable;\n}());\nvar config = {\n global: {\n stubs: {\n transition: true,\n 'transition-group': true\n },\n provide: {},\n components: {},\n config: {},\n directives: {},\n mixins: [],\n mocks: {},\n plugins: [],\n renderStubDefaultSlot: false\n },\n plugins: {\n VueWrapper: new Pluggable(),\n DOMWrapper: new Pluggable()\n }\n};\n\nfunction mergeStubs(target, source) {\n if (source.stubs) {\n if (Array.isArray(source.stubs)) {\n source.stubs.forEach(function (x) { return (target[x] = true); });\n }\n else {\n for (var _i = 0, _a = Object.entries(source.stubs); _i < _a.length; _i++) {\n var _b = _a[_i], k = _b[0], v = _b[1];\n target[k] = v;\n }\n }\n }\n}\n// perform 1-level-deep-pseudo-clone merge in order to prevent config leaks\n// example: vue-router overwrites globalProperties.$router\nfunction mergeAppConfig(configGlobalConfig, mountGlobalConfig) {\n return __assign(__assign(__assign({}, configGlobalConfig), mountGlobalConfig), { globalProperties: __assign(__assign({}, configGlobalConfig === null || configGlobalConfig === void 0 ? void 0 : configGlobalConfig.globalProperties), mountGlobalConfig === null || mountGlobalConfig === void 0 ? void 0 : mountGlobalConfig.globalProperties) });\n}\nfunction mergeGlobalProperties(mountGlobal) {\n var _a, _b, _c;\n if (mountGlobal === void 0) { mountGlobal = {}; }\n var stubs = {};\n var configGlobal = (_a = config === null || config === void 0 ? void 0 : config.global) !== null && _a !== void 0 ? _a : {};\n mergeStubs(stubs, configGlobal);\n mergeStubs(stubs, mountGlobal);\n var renderStubDefaultSlot = (_c = (_b = mountGlobal.renderStubDefaultSlot) !== null && _b !== void 0 ? _b : (configGlobal.renderStubDefaultSlot || (config === null || config === void 0 ? void 0 : config.renderStubDefaultSlot))) !== null && _c !== void 0 ? _c : false;\n if (config.renderStubDefaultSlot === true) {\n console.warn('config.renderStubDefaultSlot is deprecated, use config.global.renderStubDefaultSlot instead');\n }\n return {\n mixins: __spreadArray(__spreadArray([], (configGlobal.mixins || []), true), (mountGlobal.mixins || []), true),\n plugins: __spreadArray(__spreadArray([], (configGlobal.plugins || []), true), (mountGlobal.plugins || []), true),\n stubs: stubs,\n components: __assign(__assign({}, configGlobal.components), mountGlobal.components),\n provide: __assign(__assign({}, configGlobal.provide), mountGlobal.provide),\n mocks: __assign(__assign({}, configGlobal.mocks), mountGlobal.mocks),\n config: mergeAppConfig(configGlobal.config, mountGlobal.config),\n directives: __assign(__assign({}, configGlobal.directives), mountGlobal.directives),\n renderStubDefaultSlot: renderStubDefaultSlot\n };\n}\nvar isObject = function (obj) {\n return !!obj && typeof obj === 'object';\n};\nfunction isClass(obj) {\n if (!(obj instanceof Object))\n return;\n var isCtorClass = obj.constructor && obj.constructor.toString().substring(0, 5) === 'class';\n if (!('prototype' in obj)) {\n return isCtorClass;\n }\n var prototype = obj.prototype;\n var isPrototypeCtorClass = prototype.constructor &&\n prototype.constructor.toString &&\n prototype.constructor.toString().substring(0, 5) === 'class';\n return isCtorClass || isPrototypeCtorClass;\n}\n// https://stackoverflow.com/a/48218209\nvar mergeDeep = function (target, source) {\n var _a;\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n Object.keys(source)\n .concat(isClass(source)\n ? Object.getOwnPropertyNames((_a = Object.getPrototypeOf(source)) !== null && _a !== void 0 ? _a : {})\n : Object.getOwnPropertyNames(source))\n .forEach(function (key) {\n var targetValue = target[key];\n var sourceValue = source[key];\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = sourceValue;\n }\n else if (sourceValue instanceof Date) {\n target[key] = sourceValue;\n }\n else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n }\n else {\n target[key] = sourceValue;\n }\n });\n return target;\n};\nfunction isClassComponent(component) {\n return typeof component === 'function' && '__vccOpts' in component;\n}\nfunction isComponent(component) {\n return Boolean(component &&\n (typeof component === 'object' || typeof component === 'function'));\n}\nfunction isFunctionalComponent(component) {\n return typeof component === 'function' && !isClassComponent(component);\n}\nfunction isObjectComponent(component) {\n return Boolean(component && typeof component === 'object');\n}\nfunction textContent(element) {\n var _a, _b;\n // we check if the element is a comment first\n // to return an empty string in that case, instead of the comment content\n return element.nodeType !== Node.COMMENT_NODE\n ? (_b = (_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : ''\n : '';\n}\nfunction hasOwnProperty(obj, prop) {\n return obj.hasOwnProperty(prop);\n}\nfunction isNotNullOrUndefined(obj) {\n return Boolean(obj);\n}\nfunction isRefSelector(selector) {\n return typeof selector === 'object' && 'ref' in selector;\n}\nfunction convertStubsToRecord(stubs) {\n if (Array.isArray(stubs)) {\n // ['Foo', 'Bar'] => { Foo: true, Bar: true }\n return stubs.reduce(function (acc, current) {\n acc[current] = true;\n return acc;\n }, {});\n }\n return stubs;\n}\nvar isDirectiveKey = function (key) { return key.match(/^v[A-Z].*/); };\nfunction getComponentsFromStubs(stubs) {\n var normalizedStubs = convertStubsToRecord(stubs);\n return Object.fromEntries(Object.entries(normalizedStubs).filter(function (_a) {\n var key = _a[0];\n return !isDirectiveKey(key);\n }));\n}\nfunction getDirectivesFromStubs(stubs) {\n var normalizedStubs = convertStubsToRecord(stubs);\n return Object.fromEntries(Object.entries(normalizedStubs)\n .filter(function (_a) {\n var key = _a[0], value = _a[1];\n return isDirectiveKey(key) && value !== false;\n })\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return [key.substring(1), value];\n }));\n}\nfunction hasSetupState(vm) {\n return (vm &&\n vm.$.devtoolsRawSetupState);\n}\nfunction isScriptSetup(vm) {\n return (vm && vm.$.setupState.__isScriptSetup);\n}\nvar _globalThis;\nvar getGlobalThis = function () {\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\n\nvar ignorableKeyModifiers = [\n 'stop',\n 'prevent',\n 'self',\n 'exact',\n 'prevent',\n 'capture'\n];\nvar systemKeyModifiers = ['ctrl', 'shift', 'alt', 'meta'];\nvar mouseKeyModifiers = ['left', 'middle', 'right'];\nvar keyCodesByKeyName = {\n backspace: 8,\n tab: 9,\n enter: 13,\n esc: 27,\n space: 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n insert: 45,\n delete: 46\n};\nvar domEvents = {\n abort: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n afterprint: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n animationend: {\n eventInterface: 'AnimationEvent',\n bubbles: true,\n cancelable: false\n },\n animationiteration: {\n eventInterface: 'AnimationEvent',\n bubbles: true,\n cancelable: false\n },\n animationstart: {\n eventInterface: 'AnimationEvent',\n bubbles: true,\n cancelable: false\n },\n appinstalled: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n /**\n * @deprecated\n */\n audioprocess: {\n eventInterface: 'AudioProcessingEvent',\n bubbles: false,\n cancelable: false\n },\n audioend: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n audiostart: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n beforeprint: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n beforeunload: {\n eventInterface: 'BeforeUnloadEvent',\n bubbles: false,\n cancelable: true\n },\n beginEvent: {\n eventInterface: 'TimeEvent',\n bubbles: false,\n cancelable: false\n },\n blur: {\n eventInterface: 'FocusEvent',\n bubbles: false,\n cancelable: false\n },\n boundary: {\n eventInterface: 'SpeechSynthesisEvent',\n bubbles: false,\n cancelable: false\n },\n cached: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n canplay: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n canplaythrough: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n change: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: false\n },\n chargingchange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n chargingtimechange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n checking: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n click: {\n eventInterface: 'MouseEvent',\n bubbles: true,\n cancelable: true\n },\n close: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n complete: {\n eventInterface: 'OfflineAudioCompletionEvent',\n bubbles: false,\n cancelable: false\n },\n compositionend: {\n eventInterface: 'CompositionEvent',\n bubbles: true,\n cancelable: true\n },\n compositionstart: {\n eventInterface: 'CompositionEvent',\n bubbles: true,\n cancelable: true\n },\n compositionupdate: {\n eventInterface: 'CompositionEvent',\n bubbles: true,\n cancelable: false\n },\n contextmenu: {\n eventInterface: 'MouseEvent',\n bubbles: true,\n cancelable: true\n },\n copy: {\n eventInterface: 'ClipboardEvent',\n bubbles: true,\n cancelable: true\n },\n cut: {\n eventInterface: 'ClipboardEvent',\n bubbles: true,\n cancelable: true\n },\n dblclick: {\n eventInterface: 'MouseEvent',\n bubbles: true,\n cancelable: true\n },\n devicechange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n devicelight: {\n eventInterface: 'DeviceLightEvent',\n bubbles: false,\n cancelable: false\n },\n devicemotion: {\n eventInterface: 'DeviceMotionEvent',\n bubbles: false,\n cancelable: false\n },\n deviceorientation: {\n eventInterface: 'DeviceOrientationEvent',\n bubbles: false,\n cancelable: false\n },\n deviceproximity: {\n eventInterface: 'DeviceProximityEvent',\n bubbles: false,\n cancelable: false\n },\n dischargingtimechange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n DOMActivate: {\n eventInterface: 'UIEvent',\n bubbles: true,\n cancelable: true\n },\n DOMAttributeNameChanged: {\n eventInterface: 'MutationNameEvent',\n bubbles: true,\n cancelable: true\n },\n DOMAttrModified: {\n eventInterface: 'MutationEvent',\n bubbles: true,\n cancelable: true\n },\n DOMCharacterDataModified: {\n eventInterface: 'MutationEvent',\n bubbles: true,\n cancelable: true\n },\n DOMContentLoaded: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: true\n },\n DOMElementNameChanged: {\n eventInterface: 'MutationNameEvent',\n bubbles: true,\n cancelable: true\n },\n DOMFocusIn: {\n eventInterface: 'FocusEvent',\n bubbles: true,\n cancelable: true\n },\n DOMFocusOut: {\n eventInterface: 'FocusEvent',\n bubbles: true,\n cancelable: true\n },\n DOMNodeInserted: {\n eventInterface: 'MutationEvent',\n bubbles: true,\n cancelable: true\n },\n DOMNodeInsertedIntoDocument: {\n eventInterface: 'MutationEvent',\n bubbles: true,\n cancelable: true\n },\n DOMNodeRemoved: {\n eventInterface: 'MutationEvent',\n bubbles: true,\n cancelable: true\n },\n DOMNodeRemovedFromDocument: {\n eventInterface: 'MutationEvent',\n bubbles: true,\n cancelable: true\n },\n /**\n * @deprecated\n */\n DOMSubtreeModified: {\n eventInterface: 'MutationEvent',\n bubbles: true,\n cancelable: false\n },\n downloading: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n drag: {\n eventInterface: 'DragEvent',\n bubbles: true,\n cancelable: true\n },\n dragend: {\n eventInterface: 'DragEvent',\n bubbles: true,\n cancelable: false\n },\n dragenter: {\n eventInterface: 'DragEvent',\n bubbles: true,\n cancelable: true\n },\n dragleave: {\n eventInterface: 'DragEvent',\n bubbles: true,\n cancelable: false\n },\n dragover: {\n eventInterface: 'DragEvent',\n bubbles: true,\n cancelable: true\n },\n dragstart: {\n eventInterface: 'DragEvent',\n bubbles: true,\n cancelable: true\n },\n drop: {\n eventInterface: 'DragEvent',\n bubbles: true,\n cancelable: true\n },\n durationchange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n emptied: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n end: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n ended: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n endEvent: {\n eventInterface: 'TimeEvent',\n bubbles: false,\n cancelable: false\n },\n error: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n focus: {\n eventInterface: 'FocusEvent',\n bubbles: false,\n cancelable: false\n },\n focusin: {\n eventInterface: 'FocusEvent',\n bubbles: true,\n cancelable: false\n },\n focusout: {\n eventInterface: 'FocusEvent',\n bubbles: true,\n cancelable: false\n },\n fullscreenchange: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: false\n },\n fullscreenerror: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: false\n },\n gamepadconnected: {\n eventInterface: 'GamepadEvent',\n bubbles: false,\n cancelable: false\n },\n gamepaddisconnected: {\n eventInterface: 'GamepadEvent',\n bubbles: false,\n cancelable: false\n },\n gotpointercapture: {\n eventInterface: 'PointerEvent',\n bubbles: false,\n cancelable: false\n },\n hashchange: {\n eventInterface: 'HashChangeEvent',\n bubbles: true,\n cancelable: false\n },\n lostpointercapture: {\n eventInterface: 'PointerEvent',\n bubbles: false,\n cancelable: false\n },\n input: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: false\n },\n invalid: {\n eventInterface: 'Event',\n cancelable: true,\n bubbles: false\n },\n keydown: {\n eventInterface: 'KeyboardEvent',\n bubbles: true,\n cancelable: true\n },\n keypress: {\n eventInterface: 'KeyboardEvent',\n bubbles: true,\n cancelable: true\n },\n keyup: {\n eventInterface: 'KeyboardEvent',\n bubbles: true,\n cancelable: true\n },\n languagechange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n levelchange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n load: {\n eventInterface: 'UIEvent',\n bubbles: false,\n cancelable: false\n },\n loadeddata: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n loadedmetadata: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n loadend: {\n eventInterface: 'ProgressEvent',\n bubbles: false,\n cancelable: false\n },\n loadstart: {\n eventInterface: 'ProgressEvent',\n bubbles: false,\n cancelable: false\n },\n mark: {\n eventInterface: 'SpeechSynthesisEvent',\n bubbles: false,\n cancelable: false\n },\n message: {\n eventInterface: 'MessageEvent',\n bubbles: false,\n cancelable: false\n },\n messageerror: {\n eventInterface: 'MessageEvent',\n bubbles: false,\n cancelable: false\n },\n mousedown: {\n eventInterface: 'MouseEvent',\n bubbles: true,\n cancelable: true\n },\n mouseenter: {\n eventInterface: 'MouseEvent',\n bubbles: false,\n cancelable: false\n },\n mouseleave: {\n eventInterface: 'MouseEvent',\n bubbles: false,\n cancelable: false\n },\n mousemove: {\n eventInterface: 'MouseEvent',\n bubbles: true,\n cancelable: true\n },\n mouseout: {\n eventInterface: 'MouseEvent',\n bubbles: true,\n cancelable: true\n },\n mouseover: {\n eventInterface: 'MouseEvent',\n bubbles: true,\n cancelable: true\n },\n mouseup: {\n eventInterface: 'MouseEvent',\n bubbles: true,\n cancelable: true\n },\n nomatch: {\n eventInterface: 'SpeechRecognitionEvent',\n bubbles: false,\n cancelable: false\n },\n notificationclick: {\n eventInterface: 'NotificationEvent',\n bubbles: false,\n cancelable: false\n },\n noupdate: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n obsolete: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n offline: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n online: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n open: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n orientationchange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n pagehide: {\n eventInterface: 'PageTransitionEvent',\n bubbles: false,\n cancelable: false\n },\n pageshow: {\n eventInterface: 'PageTransitionEvent',\n bubbles: false,\n cancelable: false\n },\n paste: {\n eventInterface: 'ClipboardEvent',\n bubbles: true,\n cancelable: true\n },\n pause: {\n eventInterface: 'SpeechSynthesisEvent',\n bubbles: false,\n cancelable: false\n },\n pointercancel: {\n eventInterface: 'PointerEvent',\n bubbles: true,\n cancelable: false\n },\n pointerdown: {\n eventInterface: 'PointerEvent',\n bubbles: true,\n cancelable: true\n },\n pointerenter: {\n eventInterface: 'PointerEvent',\n bubbles: false,\n cancelable: false\n },\n pointerleave: {\n eventInterface: 'PointerEvent',\n bubbles: false,\n cancelable: false\n },\n pointerlockchange: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: false\n },\n pointerlockerror: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: false\n },\n pointermove: {\n eventInterface: 'PointerEvent',\n bubbles: true,\n cancelable: true\n },\n pointerout: {\n eventInterface: 'PointerEvent',\n bubbles: true,\n cancelable: true\n },\n pointerover: {\n eventInterface: 'PointerEvent',\n bubbles: true,\n cancelable: true\n },\n pointerup: {\n eventInterface: 'PointerEvent',\n bubbles: true,\n cancelable: true\n },\n play: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n playing: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n popstate: {\n eventInterface: 'PopStateEvent',\n bubbles: true,\n cancelable: false\n },\n progress: {\n eventInterface: 'ProgressEvent',\n bubbles: false,\n cancelable: false\n },\n push: {\n eventInterface: 'PushEvent',\n bubbles: false,\n cancelable: false\n },\n pushsubscriptionchange: {\n eventInterface: 'PushEvent',\n bubbles: false,\n cancelable: false\n },\n ratechange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n readystatechange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n repeatEvent: {\n eventInterface: 'TimeEvent',\n bubbles: false,\n cancelable: false\n },\n reset: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: true\n },\n resize: {\n eventInterface: 'UIEvent',\n bubbles: false,\n cancelable: false\n },\n resourcetimingbufferfull: {\n eventInterface: 'Performance',\n bubbles: true,\n cancelable: true\n },\n result: {\n eventInterface: 'SpeechRecognitionEvent',\n bubbles: false,\n cancelable: false\n },\n resume: {\n eventInterface: 'SpeechSynthesisEvent',\n bubbles: false,\n cancelable: false\n },\n scroll: {\n eventInterface: 'UIEvent',\n bubbles: false,\n cancelable: false\n },\n seeked: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n seeking: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n select: {\n eventInterface: 'UIEvent',\n bubbles: true,\n cancelable: false\n },\n selectstart: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: true\n },\n selectionchange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n show: {\n eventInterface: 'MouseEvent',\n bubbles: false,\n cancelable: false\n },\n slotchange: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: false\n },\n soundend: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n soundstart: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n speechend: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n speechstart: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n stalled: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n start: {\n eventInterface: 'SpeechSynthesisEvent',\n bubbles: false,\n cancelable: false\n },\n storage: {\n eventInterface: 'StorageEvent',\n bubbles: false,\n cancelable: false\n },\n submit: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: true\n },\n success: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n suspend: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n SVGAbort: {\n eventInterface: 'SVGEvent',\n bubbles: true,\n cancelable: false\n },\n SVGError: {\n eventInterface: 'SVGEvent',\n bubbles: true,\n cancelable: false\n },\n SVGLoad: {\n eventInterface: 'SVGEvent',\n bubbles: false,\n cancelable: false\n },\n SVGResize: {\n eventInterface: 'SVGEvent',\n bubbles: true,\n cancelable: false\n },\n SVGScroll: {\n eventInterface: 'SVGEvent',\n bubbles: true,\n cancelable: false\n },\n SVGUnload: {\n eventInterface: 'SVGEvent',\n bubbles: false,\n cancelable: false\n },\n SVGZoom: {\n eventInterface: 'SVGZoomEvent',\n bubbles: true,\n cancelable: false\n },\n timeout: {\n eventInterface: 'ProgressEvent',\n bubbles: false,\n cancelable: false\n },\n timeupdate: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n touchcancel: {\n eventInterface: 'TouchEvent',\n bubbles: true,\n cancelable: false\n },\n touchend: {\n eventInterface: 'TouchEvent',\n bubbles: true,\n cancelable: true\n },\n touchmove: {\n eventInterface: 'TouchEvent',\n bubbles: true,\n cancelable: true\n },\n touchstart: {\n eventInterface: 'TouchEvent',\n bubbles: true,\n cancelable: true\n },\n transitionend: {\n eventInterface: 'TransitionEvent',\n bubbles: true,\n cancelable: true\n },\n unload: {\n eventInterface: 'UIEvent',\n bubbles: false,\n cancelable: false\n },\n updateready: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n userproximity: {\n eventInterface: 'UserProximityEvent',\n bubbles: false,\n cancelable: false\n },\n voiceschanged: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n visibilitychange: {\n eventInterface: 'Event',\n bubbles: true,\n cancelable: false\n },\n volumechange: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n waiting: {\n eventInterface: 'Event',\n bubbles: false,\n cancelable: false\n },\n wheel: {\n eventInterface: 'WheelEvent',\n bubbles: true,\n cancelable: true\n }\n};\n\n/**\n * Groups modifiers into lists\n */\nfunction generateModifiers(modifiers, isOnClick) {\n var keyModifiers = [];\n var systemModifiers = [];\n for (var i = 0; i < modifiers.length; i++) {\n var modifier = modifiers[i];\n // addEventListener() options, e.g. .passive & .capture, that we dont need to handle\n if (ignorableKeyModifiers.includes(modifier)) {\n continue;\n }\n // modifiers that require special conversion\n // if passed a left/right key modifier with onClick, add it here as well.\n if (systemKeyModifiers.includes(modifier) ||\n (mouseKeyModifiers.includes(modifier) &&\n isOnClick)) {\n systemModifiers.push(modifier);\n }\n else {\n keyModifiers.push(modifier);\n }\n }\n return {\n keyModifiers: keyModifiers,\n systemModifiers: systemModifiers\n };\n}\nfunction getEventProperties(eventParams) {\n var modifiers = eventParams.modifiers, _a = eventParams.options, options = _a === void 0 ? {} : _a, eventType = eventParams.eventType;\n var isOnClick = eventType === 'click';\n var _b = generateModifiers(modifiers, isOnClick), keyModifiers = _b.keyModifiers, systemModifiers = _b.systemModifiers;\n if (isOnClick) {\n // if it's a right click, it should fire a `contextmenu` event\n if (systemModifiers.includes('right')) {\n eventType = 'contextmenu';\n options.button = 2;\n // if its a middle click, fire a `mouseup` event\n }\n else if (systemModifiers.includes('middle')) {\n eventType = 'mouseup';\n options.button = 1;\n }\n }\n var meta = domEvents[eventType] || {\n eventInterface: 'Event',\n cancelable: true,\n bubbles: true\n };\n // convert `shift, ctrl` to `shiftKey, ctrlKey`\n // allows trigger('keydown.shift.ctrl.n') directly\n var systemModifiersMeta = systemModifiers.reduce(function (all, key) {\n all[\"\".concat(key, \"Key\")] = true;\n return all;\n }, {});\n // get the keyCode for backwards compat\n var keyCode = keyCodesByKeyName[keyModifiers[0]] ||\n (options && (options.keyCode || options.code));\n var eventProperties = __assign(__assign(__assign(__assign({}, systemModifiersMeta), options), { bubbles: meta.bubbles, cancelable: meta.cancelable, \n // Any derived options should go here\n keyCode: keyCode, code: keyCode }), (keyModifiers[0] ? { key: keyModifiers[0] } : {}));\n return {\n eventProperties: eventProperties,\n meta: meta,\n eventType: eventType\n };\n}\nfunction createEvent(eventParams) {\n var _a = getEventProperties(eventParams), eventProperties = _a.eventProperties, meta = _a.meta, eventType = _a.eventType;\n // user defined eventInterface\n var eventInterface = meta.eventInterface;\n var metaEventInterface = window[eventInterface];\n var SupportedEventInterface = typeof metaEventInterface === 'function' ? metaEventInterface : window.Event;\n return new SupportedEventInterface(eventType, \n // event properties can only be added when the event is instantiated\n // custom properties must be added after the event has been instantiated\n eventProperties);\n}\nfunction createDOMEvent(eventString, options) {\n // split eventString like `keydown.ctrl.shift` into `keydown` and array of modifiers\n var _a = eventString.split('.'), eventType = _a[0], modifiers = _a.slice(1);\n var eventParams = {\n eventType: eventType,\n modifiers: modifiers,\n options: options\n };\n var event = createEvent(eventParams);\n var eventPrototype = Object.getPrototypeOf(event);\n // attach custom options to the event, like `relatedTarget` and so on.\n options &&\n Object.keys(options).forEach(function (key) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(eventPrototype, key);\n var canSetProperty = !(propertyDescriptor && propertyDescriptor.set === undefined);\n if (canSetProperty) {\n event[key] = options[key];\n }\n });\n return event;\n}\n\n// Stubbing occurs when in vnode transformer we're swapping\n// component vnode type due to stubbing either component\n// or directive on component\n// In order to be able to find components we need to track pairs\n// stub --> original component\n// Having this as global might feel unsafe at first point\n// One can assume that sharing stub map across mounts might\n// lead to false matches, however our vnode mappers always\n// produce new nodeTypes for each mount even if you're reusing\n// same stub, so we're safe and do not need to pass these stubs\n// for each mount operation\nvar stubs = new WeakMap();\nfunction registerStub(_a) {\n var source = _a.source, stub = _a.stub;\n stubs.set(stub, source);\n}\nfunction getOriginalComponentFromStub(stub) {\n return stubs.get(stub);\n}\n\nvar cacheStringFunction = function (fn) {\n var cache = Object.create(null);\n return (function (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cacheStringFunction(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n});\nvar capitalize = cacheStringFunction(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cacheStringFunction(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n\nfunction matchName(target, sourceName) {\n var camelized = camelize(target);\n var capitalized = capitalize(camelized);\n return (!!sourceName &&\n (sourceName === target ||\n sourceName === camelized ||\n sourceName === capitalized ||\n capitalize(camelize(sourceName)) === capitalized));\n}\n\nfunction isCompatEnabled(key) {\n var _a, _b;\n return (_b = (_a = Vue.compatUtils) === null || _a === void 0 ? void 0 : _a.isCompatEnabled(key)) !== null && _b !== void 0 ? _b : false;\n}\nfunction isLegacyExtendedComponent(component) {\n if (!isCompatEnabled('GLOBAL_EXTEND') || typeof component !== 'function') {\n return false;\n }\n return (hasOwnProperty(component, 'super') &&\n component.super.extend({}).super === component.super);\n}\nfunction unwrapLegacyVueExtendComponent(selector) {\n return isLegacyExtendedComponent(selector) ? selector.options : selector;\n}\nfunction isLegacyFunctionalComponent(component) {\n return Boolean(component &&\n typeof component === 'object' &&\n hasOwnProperty(component, 'functional') &&\n component.functional);\n}\n\nvar getComponentNameInSetup = function (instance, type) {\n return Object.keys((instance === null || instance === void 0 ? void 0 : instance.setupState) || {}).find(function (key) { var _a; return ((_a = Object.getOwnPropertyDescriptor(instance.setupState, key)) === null || _a === void 0 ? void 0 : _a.value) === type; });\n};\nvar getComponentRegisteredName = function (instance, type) {\n if (!instance || !instance.parent)\n return null;\n // try to infer the name based on local resolution\n var registry = instance.type.components;\n for (var key in registry) {\n if (registry[key] === type) {\n return key;\n }\n }\n // try to retrieve name imported in script setup\n return getComponentNameInSetup(instance.parent, type) || null;\n};\nvar getComponentName = function (instance, type) {\n if (isObjectComponent(type)) {\n return (\n // If the component we stub is a script setup component and is automatically\n // imported by unplugin-vue-components we can only get its name through\n // the `__name` property.\n getComponentNameInSetup(instance, type) || type.name || type.__name || '');\n }\n if (isLegacyExtendedComponent(type)) {\n return unwrapLegacyVueExtendComponent(type).name || '';\n }\n if (isFunctionalComponent(type)) {\n return type.displayName || type.name;\n }\n return '';\n};\n\n/**\n * Detect whether a selector matches a VNode\n * @param node\n * @param selector\n * @return {boolean | ((value: any) => boolean)}\n */\nfunction matches(node, rawSelector) {\n var _a, _b, _c;\n var selector = unwrapLegacyVueExtendComponent(rawSelector);\n // do not return none Vue components\n if (!node.component)\n return false;\n var nodeType = node.type;\n if (!isComponent(nodeType))\n return false;\n if (typeof selector === 'string') {\n return (_b = (_a = node.el) === null || _a === void 0 ? void 0 : _a.matches) === null || _b === void 0 ? void 0 : _b.call(_a, selector);\n }\n // When we're using stubs we want user to be able to\n // find stubbed components both by original component\n // or stub definition. That's why we are trying to\n // extract original component and also stub, which was\n // used to create specialized stub for render\n var nodeTypeCandidates = [\n nodeType,\n getOriginalComponentFromStub(nodeType)\n ].filter(Boolean);\n // our selector might be a stub itself\n var target = (_c = getOriginalComponentFromStub(selector)) !== null && _c !== void 0 ? _c : selector;\n if (nodeTypeCandidates.includes(target)) {\n return true;\n }\n var componentName;\n componentName = getComponentName(node.component, nodeType);\n var selectorName = selector.name;\n // the component and selector both have a name\n if (componentName && selectorName) {\n return matchName(selectorName, componentName);\n }\n componentName =\n getComponentRegisteredName(node.component, nodeType) || undefined;\n // if a name is missing, then check the locally registered components in the parent\n if (node.component.parent) {\n var registry = node.component.parent.type.components;\n for (var key in registry) {\n // is it the selector\n if (!selectorName && registry[key] === selector) {\n selectorName = key;\n }\n // is it the component\n if (!componentName && registry[key] === nodeType) {\n componentName = key;\n }\n }\n }\n if (selectorName && componentName) {\n return matchName(selectorName, componentName);\n }\n return false;\n}\n/**\n * Filters out the null, undefined and primitive values,\n * to only keep VNode and VNodeArrayChildren values\n * @param value\n */\nfunction nodesAsObject(value) {\n return !!value && typeof value === 'object';\n}\n/**\n * Collect all children\n * @param nodes\n * @param children\n */\nfunction aggregateChildren(nodes, children) {\n if (children && Array.isArray(children)) {\n var reversedNodes = __spreadArray([], children, true).reverse().filter(nodesAsObject);\n reversedNodes.forEach(function (node) {\n if (Array.isArray(node)) {\n aggregateChildren(nodes, node);\n }\n else {\n nodes.unshift(node);\n }\n });\n }\n}\nfunction findAllVNodes(vnode, selector) {\n var matchingNodes = [];\n var nodes = [vnode];\n while (nodes.length) {\n var node = nodes.shift();\n aggregateChildren(nodes, node.children);\n if (node.component) {\n aggregateChildren(nodes, [node.component.subTree]);\n }\n if (node.suspense) {\n // match children if component is Suspense\n var activeBranch = node.suspense.activeBranch;\n aggregateChildren(nodes, [activeBranch]);\n }\n if (matches(node, selector) && !matchingNodes.includes(node)) {\n matchingNodes.push(node);\n }\n }\n return matchingNodes;\n}\nfunction find(root, selector) {\n var matchingVNodes = findAllVNodes(root, selector);\n if (typeof selector === 'string') {\n // When searching by CSS selector we want only one (topmost) vnode for each el`\n matchingVNodes = matchingVNodes.filter(function (vnode) { var _a; return ((_a = vnode.component.parent) === null || _a === void 0 ? void 0 : _a.vnode.el) !== vnode.el; });\n }\n return matchingVNodes.map(function (vnode) { return vnode.component; });\n}\n\nfunction createWrapperError(wrapperType) {\n return new Proxy(Object.create(null), {\n get: function (obj, prop) {\n switch (prop) {\n case 'then':\n // allows for better errors when wrapping `find` in `await`\n // https://github.com/vuejs/test-utils/issues/638\n return;\n case 'exists':\n return function () { return false; };\n default:\n throw new Error(\"Cannot call \".concat(String(prop), \" on an empty \").concat(wrapperType, \".\"));\n }\n }\n });\n}\n\n/*!\n * isElementVisible\n * Adapted from https://github.com/testing-library/jest-dom\n * Licensed under the MIT License.\n */\nfunction isStyleVisible(element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n return false;\n }\n var _a = getComputedStyle(element), display = _a.display, visibility = _a.visibility, opacity = _a.opacity;\n return (display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse' &&\n opacity !== '0');\n}\nfunction isAttributeVisible(element) {\n return (!element.hasAttribute('hidden') &&\n (element.nodeName === 'DETAILS' ? element.hasAttribute('open') : true));\n}\nfunction isElementVisible(element) {\n return (element.nodeName !== '#comment' &&\n isStyleVisible(element) &&\n isAttributeVisible(element) &&\n (!element.parentElement || isElementVisible(element.parentElement)));\n}\n\nfunction isElement(element) {\n return element instanceof Element;\n}\n\nvar WrapperType;\n(function (WrapperType) {\n WrapperType[WrapperType[\"DOMWrapper\"] = 0] = \"DOMWrapper\";\n WrapperType[WrapperType[\"VueWrapper\"] = 1] = \"VueWrapper\";\n})(WrapperType || (WrapperType = {}));\nvar factories = {};\nfunction registerFactory(type, fn) {\n factories[type] = fn;\n}\nvar createDOMWrapper = function (element) {\n return factories[WrapperType.DOMWrapper](element);\n};\nvar createVueWrapper = function (app, vm, setProps) {\n return factories[WrapperType.VueWrapper](app, vm, setProps);\n};\n\nfunction stringifyNode(node) {\n return node instanceof Element\n ? node.outerHTML\n : new XMLSerializer().serializeToString(node);\n}\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar js = {exports: {}};\n\nvar src = {};\n\nvar javascript = {exports: {}};\n\nvar beautifier$2 = {};\n\nvar output = {};\n\n/*jshint node:true */\n\nvar hasRequiredOutput;\n\nfunction requireOutput () {\n\tif (hasRequiredOutput) return output;\n\thasRequiredOutput = 1;\n\n\tfunction OutputLine(parent) {\n\t this.__parent = parent;\n\t this.__character_count = 0;\n\t // use indent_count as a marker for this.__lines that have preserved indentation\n\t this.__indent_count = -1;\n\t this.__alignment_count = 0;\n\t this.__wrap_point_index = 0;\n\t this.__wrap_point_character_count = 0;\n\t this.__wrap_point_indent_count = -1;\n\t this.__wrap_point_alignment_count = 0;\n\n\t this.__items = [];\n\t}\n\n\tOutputLine.prototype.clone_empty = function() {\n\t var line = new OutputLine(this.__parent);\n\t line.set_indent(this.__indent_count, this.__alignment_count);\n\t return line;\n\t};\n\n\tOutputLine.prototype.item = function(index) {\n\t if (index < 0) {\n\t return this.__items[this.__items.length + index];\n\t } else {\n\t return this.__items[index];\n\t }\n\t};\n\n\tOutputLine.prototype.has_match = function(pattern) {\n\t for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) {\n\t if (this.__items[lastCheckedOutput].match(pattern)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t};\n\n\tOutputLine.prototype.set_indent = function(indent, alignment) {\n\t if (this.is_empty()) {\n\t this.__indent_count = indent || 0;\n\t this.__alignment_count = alignment || 0;\n\t this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count);\n\t }\n\t};\n\n\tOutputLine.prototype._set_wrap_point = function() {\n\t if (this.__parent.wrap_line_length) {\n\t this.__wrap_point_index = this.__items.length;\n\t this.__wrap_point_character_count = this.__character_count;\n\t this.__wrap_point_indent_count = this.__parent.next_line.__indent_count;\n\t this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count;\n\t }\n\t};\n\n\tOutputLine.prototype._should_wrap = function() {\n\t return this.__wrap_point_index &&\n\t this.__character_count > this.__parent.wrap_line_length &&\n\t this.__wrap_point_character_count > this.__parent.next_line.__character_count;\n\t};\n\n\tOutputLine.prototype._allow_wrap = function() {\n\t if (this._should_wrap()) {\n\t this.__parent.add_new_line();\n\t var next = this.__parent.current_line;\n\t next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count);\n\t next.__items = this.__items.slice(this.__wrap_point_index);\n\t this.__items = this.__items.slice(0, this.__wrap_point_index);\n\n\t next.__character_count += this.__character_count - this.__wrap_point_character_count;\n\t this.__character_count = this.__wrap_point_character_count;\n\n\t if (next.__items[0] === \" \") {\n\t next.__items.splice(0, 1);\n\t next.__character_count -= 1;\n\t }\n\t return true;\n\t }\n\t return false;\n\t};\n\n\tOutputLine.prototype.is_empty = function() {\n\t return this.__items.length === 0;\n\t};\n\n\tOutputLine.prototype.last = function() {\n\t if (!this.is_empty()) {\n\t return this.__items[this.__items.length - 1];\n\t } else {\n\t return null;\n\t }\n\t};\n\n\tOutputLine.prototype.push = function(item) {\n\t this.__items.push(item);\n\t var last_newline_index = item.lastIndexOf('\\n');\n\t if (last_newline_index !== -1) {\n\t this.__character_count = item.length - last_newline_index;\n\t } else {\n\t this.__character_count += item.length;\n\t }\n\t};\n\n\tOutputLine.prototype.pop = function() {\n\t var item = null;\n\t if (!this.is_empty()) {\n\t item = this.__items.pop();\n\t this.__character_count -= item.length;\n\t }\n\t return item;\n\t};\n\n\n\tOutputLine.prototype._remove_indent = function() {\n\t if (this.__indent_count > 0) {\n\t this.__indent_count -= 1;\n\t this.__character_count -= this.__parent.indent_size;\n\t }\n\t};\n\n\tOutputLine.prototype._remove_wrap_indent = function() {\n\t if (this.__wrap_point_indent_count > 0) {\n\t this.__wrap_point_indent_count -= 1;\n\t }\n\t};\n\tOutputLine.prototype.trim = function() {\n\t while (this.last() === ' ') {\n\t this.__items.pop();\n\t this.__character_count -= 1;\n\t }\n\t};\n\n\tOutputLine.prototype.toString = function() {\n\t var result = '';\n\t if (this.is_empty()) {\n\t if (this.__parent.indent_empty_lines) {\n\t result = this.__parent.get_indent_string(this.__indent_count);\n\t }\n\t } else {\n\t result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count);\n\t result += this.__items.join('');\n\t }\n\t return result;\n\t};\n\n\tfunction IndentStringCache(options, baseIndentString) {\n\t this.__cache = [''];\n\t this.__indent_size = options.indent_size;\n\t this.__indent_string = options.indent_char;\n\t if (!options.indent_with_tabs) {\n\t this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char);\n\t }\n\n\t // Set to null to continue support for auto detection of base indent\n\t baseIndentString = baseIndentString || '';\n\t if (options.indent_level > 0) {\n\t baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string);\n\t }\n\n\t this.__base_string = baseIndentString;\n\t this.__base_string_length = baseIndentString.length;\n\t}\n\n\tIndentStringCache.prototype.get_indent_size = function(indent, column) {\n\t var result = this.__base_string_length;\n\t column = column || 0;\n\t if (indent < 0) {\n\t result = 0;\n\t }\n\t result += indent * this.__indent_size;\n\t result += column;\n\t return result;\n\t};\n\n\tIndentStringCache.prototype.get_indent_string = function(indent_level, column) {\n\t var result = this.__base_string;\n\t column = column || 0;\n\t if (indent_level < 0) {\n\t indent_level = 0;\n\t result = '';\n\t }\n\t column += indent_level * this.__indent_size;\n\t this.__ensure_cache(column);\n\t result += this.__cache[column];\n\t return result;\n\t};\n\n\tIndentStringCache.prototype.__ensure_cache = function(column) {\n\t while (column >= this.__cache.length) {\n\t this.__add_column();\n\t }\n\t};\n\n\tIndentStringCache.prototype.__add_column = function() {\n\t var column = this.__cache.length;\n\t var indent = 0;\n\t var result = '';\n\t if (this.__indent_size && column >= this.__indent_size) {\n\t indent = Math.floor(column / this.__indent_size);\n\t column -= indent * this.__indent_size;\n\t result = new Array(indent + 1).join(this.__indent_string);\n\t }\n\t if (column) {\n\t result += new Array(column + 1).join(' ');\n\t }\n\n\t this.__cache.push(result);\n\t};\n\n\tfunction Output(options, baseIndentString) {\n\t this.__indent_cache = new IndentStringCache(options, baseIndentString);\n\t this.raw = false;\n\t this._end_with_newline = options.end_with_newline;\n\t this.indent_size = options.indent_size;\n\t this.wrap_line_length = options.wrap_line_length;\n\t this.indent_empty_lines = options.indent_empty_lines;\n\t this.__lines = [];\n\t this.previous_line = null;\n\t this.current_line = null;\n\t this.next_line = new OutputLine(this);\n\t this.space_before_token = false;\n\t this.non_breaking_space = false;\n\t this.previous_token_wrapped = false;\n\t // initialize\n\t this.__add_outputline();\n\t}\n\n\tOutput.prototype.__add_outputline = function() {\n\t this.previous_line = this.current_line;\n\t this.current_line = this.next_line.clone_empty();\n\t this.__lines.push(this.current_line);\n\t};\n\n\tOutput.prototype.get_line_number = function() {\n\t return this.__lines.length;\n\t};\n\n\tOutput.prototype.get_indent_string = function(indent, column) {\n\t return this.__indent_cache.get_indent_string(indent, column);\n\t};\n\n\tOutput.prototype.get_indent_size = function(indent, column) {\n\t return this.__indent_cache.get_indent_size(indent, column);\n\t};\n\n\tOutput.prototype.is_empty = function() {\n\t return !this.previous_line && this.current_line.is_empty();\n\t};\n\n\tOutput.prototype.add_new_line = function(force_newline) {\n\t // never newline at the start of file\n\t // otherwise, newline only if we didn't just add one or we're forced\n\t if (this.is_empty() ||\n\t (!force_newline && this.just_added_newline())) {\n\t return false;\n\t }\n\n\t // if raw output is enabled, don't print additional newlines,\n\t // but still return True as though you had\n\t if (!this.raw) {\n\t this.__add_outputline();\n\t }\n\t return true;\n\t};\n\n\tOutput.prototype.get_code = function(eol) {\n\t this.trim(true);\n\n\t // handle some edge cases where the last tokens\n\t // has text that ends with newline(s)\n\t var last_item = this.current_line.pop();\n\t if (last_item) {\n\t if (last_item[last_item.length - 1] === '\\n') {\n\t last_item = last_item.replace(/\\n+$/g, '');\n\t }\n\t this.current_line.push(last_item);\n\t }\n\n\t if (this._end_with_newline) {\n\t this.__add_outputline();\n\t }\n\n\t var sweet_code = this.__lines.join('\\n');\n\n\t if (eol !== '\\n') {\n\t sweet_code = sweet_code.replace(/[\\n]/g, eol);\n\t }\n\t return sweet_code;\n\t};\n\n\tOutput.prototype.set_wrap_point = function() {\n\t this.current_line._set_wrap_point();\n\t};\n\n\tOutput.prototype.set_indent = function(indent, alignment) {\n\t indent = indent || 0;\n\t alignment = alignment || 0;\n\n\t // Next line stores alignment values\n\t this.next_line.set_indent(indent, alignment);\n\n\t // Never indent your first output indent at the start of the file\n\t if (this.__lines.length > 1) {\n\t this.current_line.set_indent(indent, alignment);\n\t return true;\n\t }\n\n\t this.current_line.set_indent();\n\t return false;\n\t};\n\n\tOutput.prototype.add_raw_token = function(token) {\n\t for (var x = 0; x < token.newlines; x++) {\n\t this.__add_outputline();\n\t }\n\t this.current_line.set_indent(-1);\n\t this.current_line.push(token.whitespace_before);\n\t this.current_line.push(token.text);\n\t this.space_before_token = false;\n\t this.non_breaking_space = false;\n\t this.previous_token_wrapped = false;\n\t};\n\n\tOutput.prototype.add_token = function(printable_token) {\n\t this.__add_space_before_token();\n\t this.current_line.push(printable_token);\n\t this.space_before_token = false;\n\t this.non_breaking_space = false;\n\t this.previous_token_wrapped = this.current_line._allow_wrap();\n\t};\n\n\tOutput.prototype.__add_space_before_token = function() {\n\t if (this.space_before_token && !this.just_added_newline()) {\n\t if (!this.non_breaking_space) {\n\t this.set_wrap_point();\n\t }\n\t this.current_line.push(' ');\n\t }\n\t};\n\n\tOutput.prototype.remove_indent = function(index) {\n\t var output_length = this.__lines.length;\n\t while (index < output_length) {\n\t this.__lines[index]._remove_indent();\n\t index++;\n\t }\n\t this.current_line._remove_wrap_indent();\n\t};\n\n\tOutput.prototype.trim = function(eat_newlines) {\n\t eat_newlines = (eat_newlines === undefined) ? false : eat_newlines;\n\n\t this.current_line.trim();\n\n\t while (eat_newlines && this.__lines.length > 1 &&\n\t this.current_line.is_empty()) {\n\t this.__lines.pop();\n\t this.current_line = this.__lines[this.__lines.length - 1];\n\t this.current_line.trim();\n\t }\n\n\t this.previous_line = this.__lines.length > 1 ?\n\t this.__lines[this.__lines.length - 2] : null;\n\t};\n\n\tOutput.prototype.just_added_newline = function() {\n\t return this.current_line.is_empty();\n\t};\n\n\tOutput.prototype.just_added_blankline = function() {\n\t return this.is_empty() ||\n\t (this.current_line.is_empty() && this.previous_line.is_empty());\n\t};\n\n\tOutput.prototype.ensure_empty_line_above = function(starts_with, ends_with) {\n\t var index = this.__lines.length - 2;\n\t while (index >= 0) {\n\t var potentialEmptyLine = this.__lines[index];\n\t if (potentialEmptyLine.is_empty()) {\n\t break;\n\t } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 &&\n\t potentialEmptyLine.item(-1) !== ends_with) {\n\t this.__lines.splice(index + 1, 0, new OutputLine(this));\n\t this.previous_line = this.__lines[this.__lines.length - 2];\n\t break;\n\t }\n\t index--;\n\t }\n\t};\n\n\toutput.Output = Output;\n\treturn output;\n}\n\nvar token = {};\n\n/*jshint node:true */\n\nvar hasRequiredToken;\n\nfunction requireToken () {\n\tif (hasRequiredToken) return token;\n\thasRequiredToken = 1;\n\n\tfunction Token(type, text, newlines, whitespace_before) {\n\t this.type = type;\n\t this.text = text;\n\n\t // comments_before are\n\t // comments that have a new line before them\n\t // and may or may not have a newline after\n\t // this is a set of comments before\n\t this.comments_before = null; /* inline comment*/\n\n\n\t // this.comments_after = new TokenStream(); // no new line before and newline after\n\t this.newlines = newlines || 0;\n\t this.whitespace_before = whitespace_before || '';\n\t this.parent = null;\n\t this.next = null;\n\t this.previous = null;\n\t this.opened = null;\n\t this.closed = null;\n\t this.directives = null;\n\t}\n\n\n\ttoken.Token = Token;\n\treturn token;\n}\n\nvar acorn = {};\n\n/* jshint node: true, curly: false */\n\nvar hasRequiredAcorn;\n\nfunction requireAcorn () {\n\tif (hasRequiredAcorn) return acorn;\n\thasRequiredAcorn = 1;\n\t(function (exports) {\n\n\t\t// acorn used char codes to squeeze the last bit of performance out\n\t\t// Beautifier is okay without that, so we're using regex\n\t\t// permit # (23), $ (36), and @ (64). @ is used in ES7 decorators.\n\t\t// 65 through 91 are uppercase letters.\n\t\t// permit _ (95).\n\t\t// 97 through 123 are lowercase letters.\n\t\tvar baseASCIIidentifierStartChars = \"\\\\x23\\\\x24\\\\x40\\\\x41-\\\\x5a\\\\x5f\\\\x61-\\\\x7a\";\n\n\t\t// inside an identifier @ is not allowed but 0-9 are.\n\t\tvar baseASCIIidentifierChars = \"\\\\x24\\\\x30-\\\\x39\\\\x41-\\\\x5a\\\\x5f\\\\x61-\\\\x7a\";\n\n\t\t// Big ugly regular expressions that match characters in the\n\t\t// whitespace, identifier, and identifier-start categories. These\n\t\t// are only applied when a character is found to actually have a\n\t\t// code point above 128.\n\t\tvar nonASCIIidentifierStartChars = \"\\\\xaa\\\\xb5\\\\xba\\\\xc0-\\\\xd6\\\\xd8-\\\\xf6\\\\xf8-\\\\u02c1\\\\u02c6-\\\\u02d1\\\\u02e0-\\\\u02e4\\\\u02ec\\\\u02ee\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037a-\\\\u037d\\\\u0386\\\\u0388-\\\\u038a\\\\u038c\\\\u038e-\\\\u03a1\\\\u03a3-\\\\u03f5\\\\u03f7-\\\\u0481\\\\u048a-\\\\u0527\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05d0-\\\\u05ea\\\\u05f0-\\\\u05f2\\\\u0620-\\\\u064a\\\\u066e\\\\u066f\\\\u0671-\\\\u06d3\\\\u06d5\\\\u06e5\\\\u06e6\\\\u06ee\\\\u06ef\\\\u06fa-\\\\u06fc\\\\u06ff\\\\u0710\\\\u0712-\\\\u072f\\\\u074d-\\\\u07a5\\\\u07b1\\\\u07ca-\\\\u07ea\\\\u07f4\\\\u07f5\\\\u07fa\\\\u0800-\\\\u0815\\\\u081a\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08a0\\\\u08a2-\\\\u08ac\\\\u0904-\\\\u0939\\\\u093d\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0977\\\\u0979-\\\\u097f\\\\u0985-\\\\u098c\\\\u098f\\\\u0990\\\\u0993-\\\\u09a8\\\\u09aa-\\\\u09b0\\\\u09b2\\\\u09b6-\\\\u09b9\\\\u09bd\\\\u09ce\\\\u09dc\\\\u09dd\\\\u09df-\\\\u09e1\\\\u09f0\\\\u09f1\\\\u0a05-\\\\u0a0a\\\\u0a0f\\\\u0a10\\\\u0a13-\\\\u0a28\\\\u0a2a-\\\\u0a30\\\\u0a32\\\\u0a33\\\\u0a35\\\\u0a36\\\\u0a38\\\\u0a39\\\\u0a59-\\\\u0a5c\\\\u0a5e\\\\u0a72-\\\\u0a74\\\\u0a85-\\\\u0a8d\\\\u0a8f-\\\\u0a91\\\\u0a93-\\\\u0aa8\\\\u0aaa-\\\\u0ab0\\\\u0ab2\\\\u0ab3\\\\u0ab5-\\\\u0ab9\\\\u0abd\\\\u0ad0\\\\u0ae0\\\\u0ae1\\\\u0b05-\\\\u0b0c\\\\u0b0f\\\\u0b10\\\\u0b13-\\\\u0b28\\\\u0b2a-\\\\u0b30\\\\u0b32\\\\u0b33\\\\u0b35-\\\\u0b39\\\\u0b3d\\\\u0b5c\\\\u0b5d\\\\u0b5f-\\\\u0b61\\\\u0b71\\\\u0b83\\\\u0b85-\\\\u0b8a\\\\u0b8e-\\\\u0b90\\\\u0b92-\\\\u0b95\\\\u0b99\\\\u0b9a\\\\u0b9c\\\\u0b9e\\\\u0b9f\\\\u0ba3\\\\u0ba4\\\\u0ba8-\\\\u0baa\\\\u0bae-\\\\u0bb9\\\\u0bd0\\\\u0c05-\\\\u0c0c\\\\u0c0e-\\\\u0c10\\\\u0c12-\\\\u0c28\\\\u0c2a-\\\\u0c33\\\\u0c35-\\\\u0c39\\\\u0c3d\\\\u0c58\\\\u0c59\\\\u0c60\\\\u0c61\\\\u0c85-\\\\u0c8c\\\\u0c8e-\\\\u0c90\\\\u0c92-\\\\u0ca8\\\\u0caa-\\\\u0cb3\\\\u0cb5-\\\\u0cb9\\\\u0cbd\\\\u0cde\\\\u0ce0\\\\u0ce1\\\\u0cf1\\\\u0cf2\\\\u0d05-\\\\u0d0c\\\\u0d0e-\\\\u0d10\\\\u0d12-\\\\u0d3a\\\\u0d3d\\\\u0d4e\\\\u0d60\\\\u0d61\\\\u0d7a-\\\\u0d7f\\\\u0d85-\\\\u0d96\\\\u0d9a-\\\\u0db1\\\\u0db3-\\\\u0dbb\\\\u0dbd\\\\u0dc0-\\\\u0dc6\\\\u0e01-\\\\u0e30\\\\u0e32\\\\u0e33\\\\u0e40-\\\\u0e46\\\\u0e81\\\\u0e82\\\\u0e84\\\\u0e87\\\\u0e88\\\\u0e8a\\\\u0e8d\\\\u0e94-\\\\u0e97\\\\u0e99-\\\\u0e9f\\\\u0ea1-\\\\u0ea3\\\\u0ea5\\\\u0ea7\\\\u0eaa\\\\u0eab\\\\u0ead-\\\\u0eb0\\\\u0eb2\\\\u0eb3\\\\u0ebd\\\\u0ec0-\\\\u0ec4\\\\u0ec6\\\\u0edc-\\\\u0edf\\\\u0f00\\\\u0f40-\\\\u0f47\\\\u0f49-\\\\u0f6c\\\\u0f88-\\\\u0f8c\\\\u1000-\\\\u102a\\\\u103f\\\\u1050-\\\\u1055\\\\u105a-\\\\u105d\\\\u1061\\\\u1065\\\\u1066\\\\u106e-\\\\u1070\\\\u1075-\\\\u1081\\\\u108e\\\\u10a0-\\\\u10c5\\\\u10c7\\\\u10cd\\\\u10d0-\\\\u10fa\\\\u10fc-\\\\u1248\\\\u124a-\\\\u124d\\\\u1250-\\\\u1256\\\\u1258\\\\u125a-\\\\u125d\\\\u1260-\\\\u1288\\\\u128a-\\\\u128d\\\\u1290-\\\\u12b0\\\\u12b2-\\\\u12b5\\\\u12b8-\\\\u12be\\\\u12c0\\\\u12c2-\\\\u12c5\\\\u12c8-\\\\u12d6\\\\u12d8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135a\\\\u1380-\\\\u138f\\\\u13a0-\\\\u13f4\\\\u1401-\\\\u166c\\\\u166f-\\\\u167f\\\\u1681-\\\\u169a\\\\u16a0-\\\\u16ea\\\\u16ee-\\\\u16f0\\\\u1700-\\\\u170c\\\\u170e-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176c\\\\u176e-\\\\u1770\\\\u1780-\\\\u17b3\\\\u17d7\\\\u17dc\\\\u1820-\\\\u1877\\\\u1880-\\\\u18a8\\\\u18aa\\\\u18b0-\\\\u18f5\\\\u1900-\\\\u191c\\\\u1950-\\\\u196d\\\\u1970-\\\\u1974\\\\u1980-\\\\u19ab\\\\u19c1-\\\\u19c7\\\\u1a00-\\\\u1a16\\\\u1a20-\\\\u1a54\\\\u1aa7\\\\u1b05-\\\\u1b33\\\\u1b45-\\\\u1b4b\\\\u1b83-\\\\u1ba0\\\\u1bae\\\\u1baf\\\\u1bba-\\\\u1be5\\\\u1c00-\\\\u1c23\\\\u1c4d-\\\\u1c4f\\\\u1c5a-\\\\u1c7d\\\\u1ce9-\\\\u1cec\\\\u1cee-\\\\u1cf1\\\\u1cf5\\\\u1cf6\\\\u1d00-\\\\u1dbf\\\\u1e00-\\\\u1f15\\\\u1f18-\\\\u1f1d\\\\u1f20-\\\\u1f45\\\\u1f48-\\\\u1f4d\\\\u1f50-\\\\u1f57\\\\u1f59\\\\u1f5b\\\\u1f5d\\\\u1f5f-\\\\u1f7d\\\\u1f80-\\\\u1fb4\\\\u1fb6-\\\\u1fbc\\\\u1fbe\\\\u1fc2-\\\\u1fc4\\\\u1fc6-\\\\u1fcc\\\\u1fd0-\\\\u1fd3\\\\u1fd6-\\\\u1fdb\\\\u1fe0-\\\\u1fec\\\\u1ff2-\\\\u1ff4\\\\u1ff6-\\\\u1ffc\\\\u2071\\\\u207f\\\\u2090-\\\\u209c\\\\u2102\\\\u2107\\\\u210a-\\\\u2113\\\\u2115\\\\u2119-\\\\u211d\\\\u2124\\\\u2126\\\\u2128\\\\u212a-\\\\u212d\\\\u212f-\\\\u2139\\\\u213c-\\\\u213f\\\\u2145-\\\\u2149\\\\u214e\\\\u2160-\\\\u2188\\\\u2c00-\\\\u2c2e\\\\u2c30-\\\\u2c5e\\\\u2c60-\\\\u2ce4\\\\u2ceb-\\\\u2cee\\\\u2cf2\\\\u2cf3\\\\u2d00-\\\\u2d25\\\\u2d27\\\\u2d2d\\\\u2d30-\\\\u2d67\\\\u2d6f\\\\u2d80-\\\\u2d96\\\\u2da0-\\\\u2da6\\\\u2da8-\\\\u2dae\\\\u2db0-\\\\u2db6\\\\u2db8-\\\\u2dbe\\\\u2dc0-\\\\u2dc6\\\\u2dc8-\\\\u2dce\\\\u2dd0-\\\\u2dd6\\\\u2dd8-\\\\u2dde\\\\u2e2f\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303c\\\\u3041-\\\\u3096\\\\u309d-\\\\u309f\\\\u30a1-\\\\u30fa\\\\u30fc-\\\\u30ff\\\\u3105-\\\\u312d\\\\u3131-\\\\u318e\\\\u31a0-\\\\u31ba\\\\u31f0-\\\\u31ff\\\\u3400-\\\\u4db5\\\\u4e00-\\\\u9fcc\\\\ua000-\\\\ua48c\\\\ua4d0-\\\\ua4fd\\\\ua500-\\\\ua60c\\\\ua610-\\\\ua61f\\\\ua62a\\\\ua62b\\\\ua640-\\\\ua66e\\\\ua67f-\\\\ua697\\\\ua6a0-\\\\ua6ef\\\\ua717-\\\\ua71f\\\\ua722-\\\\ua788\\\\ua78b-\\\\ua78e\\\\ua790-\\\\ua793\\\\ua7a0-\\\\ua7aa\\\\ua7f8-\\\\ua801\\\\ua803-\\\\ua805\\\\ua807-\\\\ua80a\\\\ua80c-\\\\ua822\\\\ua840-\\\\ua873\\\\ua882-\\\\ua8b3\\\\ua8f2-\\\\ua8f7\\\\ua8fb\\\\ua90a-\\\\ua925\\\\ua930-\\\\ua946\\\\ua960-\\\\ua97c\\\\ua984-\\\\ua9b2\\\\ua9cf\\\\uaa00-\\\\uaa28\\\\uaa40-\\\\uaa42\\\\uaa44-\\\\uaa4b\\\\uaa60-\\\\uaa76\\\\uaa7a\\\\uaa80-\\\\uaaaf\\\\uaab1\\\\uaab5\\\\uaab6\\\\uaab9-\\\\uaabd\\\\uaac0\\\\uaac2\\\\uaadb-\\\\uaadd\\\\uaae0-\\\\uaaea\\\\uaaf2-\\\\uaaf4\\\\uab01-\\\\uab06\\\\uab09-\\\\uab0e\\\\uab11-\\\\uab16\\\\uab20-\\\\uab26\\\\uab28-\\\\uab2e\\\\uabc0-\\\\uabe2\\\\uac00-\\\\ud7a3\\\\ud7b0-\\\\ud7c6\\\\ud7cb-\\\\ud7fb\\\\uf900-\\\\ufa6d\\\\ufa70-\\\\ufad9\\\\ufb00-\\\\ufb06\\\\ufb13-\\\\ufb17\\\\ufb1d\\\\ufb1f-\\\\ufb28\\\\ufb2a-\\\\ufb36\\\\ufb38-\\\\ufb3c\\\\ufb3e\\\\ufb40\\\\ufb41\\\\ufb43\\\\ufb44\\\\ufb46-\\\\ufbb1\\\\ufbd3-\\\\ufd3d\\\\ufd50-\\\\ufd8f\\\\ufd92-\\\\ufdc7\\\\ufdf0-\\\\ufdfb\\\\ufe70-\\\\ufe74\\\\ufe76-\\\\ufefc\\\\uff21-\\\\uff3a\\\\uff41-\\\\uff5a\\\\uff66-\\\\uffbe\\\\uffc2-\\\\uffc7\\\\uffca-\\\\uffcf\\\\uffd2-\\\\uffd7\\\\uffda-\\\\uffdc\";\n\t\tvar nonASCIIidentifierChars = \"\\\\u0300-\\\\u036f\\\\u0483-\\\\u0487\\\\u0591-\\\\u05bd\\\\u05bf\\\\u05c1\\\\u05c2\\\\u05c4\\\\u05c5\\\\u05c7\\\\u0610-\\\\u061a\\\\u0620-\\\\u0649\\\\u0672-\\\\u06d3\\\\u06e7-\\\\u06e8\\\\u06fb-\\\\u06fc\\\\u0730-\\\\u074a\\\\u0800-\\\\u0814\\\\u081b-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082d\\\\u0840-\\\\u0857\\\\u08e4-\\\\u08fe\\\\u0900-\\\\u0903\\\\u093a-\\\\u093c\\\\u093e-\\\\u094f\\\\u0951-\\\\u0957\\\\u0962-\\\\u0963\\\\u0966-\\\\u096f\\\\u0981-\\\\u0983\\\\u09bc\\\\u09be-\\\\u09c4\\\\u09c7\\\\u09c8\\\\u09d7\\\\u09df-\\\\u09e0\\\\u0a01-\\\\u0a03\\\\u0a3c\\\\u0a3e-\\\\u0a42\\\\u0a47\\\\u0a48\\\\u0a4b-\\\\u0a4d\\\\u0a51\\\\u0a66-\\\\u0a71\\\\u0a75\\\\u0a81-\\\\u0a83\\\\u0abc\\\\u0abe-\\\\u0ac5\\\\u0ac7-\\\\u0ac9\\\\u0acb-\\\\u0acd\\\\u0ae2-\\\\u0ae3\\\\u0ae6-\\\\u0aef\\\\u0b01-\\\\u0b03\\\\u0b3c\\\\u0b3e-\\\\u0b44\\\\u0b47\\\\u0b48\\\\u0b4b-\\\\u0b4d\\\\u0b56\\\\u0b57\\\\u0b5f-\\\\u0b60\\\\u0b66-\\\\u0b6f\\\\u0b82\\\\u0bbe-\\\\u0bc2\\\\u0bc6-\\\\u0bc8\\\\u0bca-\\\\u0bcd\\\\u0bd7\\\\u0be6-\\\\u0bef\\\\u0c01-\\\\u0c03\\\\u0c46-\\\\u0c48\\\\u0c4a-\\\\u0c4d\\\\u0c55\\\\u0c56\\\\u0c62-\\\\u0c63\\\\u0c66-\\\\u0c6f\\\\u0c82\\\\u0c83\\\\u0cbc\\\\u0cbe-\\\\u0cc4\\\\u0cc6-\\\\u0cc8\\\\u0cca-\\\\u0ccd\\\\u0cd5\\\\u0cd6\\\\u0ce2-\\\\u0ce3\\\\u0ce6-\\\\u0cef\\\\u0d02\\\\u0d03\\\\u0d46-\\\\u0d48\\\\u0d57\\\\u0d62-\\\\u0d63\\\\u0d66-\\\\u0d6f\\\\u0d82\\\\u0d83\\\\u0dca\\\\u0dcf-\\\\u0dd4\\\\u0dd6\\\\u0dd8-\\\\u0ddf\\\\u0df2\\\\u0df3\\\\u0e34-\\\\u0e3a\\\\u0e40-\\\\u0e45\\\\u0e50-\\\\u0e59\\\\u0eb4-\\\\u0eb9\\\\u0ec8-\\\\u0ecd\\\\u0ed0-\\\\u0ed9\\\\u0f18\\\\u0f19\\\\u0f20-\\\\u0f29\\\\u0f35\\\\u0f37\\\\u0f39\\\\u0f41-\\\\u0f47\\\\u0f71-\\\\u0f84\\\\u0f86-\\\\u0f87\\\\u0f8d-\\\\u0f97\\\\u0f99-\\\\u0fbc\\\\u0fc6\\\\u1000-\\\\u1029\\\\u1040-\\\\u1049\\\\u1067-\\\\u106d\\\\u1071-\\\\u1074\\\\u1082-\\\\u108d\\\\u108f-\\\\u109d\\\\u135d-\\\\u135f\\\\u170e-\\\\u1710\\\\u1720-\\\\u1730\\\\u1740-\\\\u1750\\\\u1772\\\\u1773\\\\u1780-\\\\u17b2\\\\u17dd\\\\u17e0-\\\\u17e9\\\\u180b-\\\\u180d\\\\u1810-\\\\u1819\\\\u1920-\\\\u192b\\\\u1930-\\\\u193b\\\\u1951-\\\\u196d\\\\u19b0-\\\\u19c0\\\\u19c8-\\\\u19c9\\\\u19d0-\\\\u19d9\\\\u1a00-\\\\u1a15\\\\u1a20-\\\\u1a53\\\\u1a60-\\\\u1a7c\\\\u1a7f-\\\\u1a89\\\\u1a90-\\\\u1a99\\\\u1b46-\\\\u1b4b\\\\u1b50-\\\\u1b59\\\\u1b6b-\\\\u1b73\\\\u1bb0-\\\\u1bb9\\\\u1be6-\\\\u1bf3\\\\u1c00-\\\\u1c22\\\\u1c40-\\\\u1c49\\\\u1c5b-\\\\u1c7d\\\\u1cd0-\\\\u1cd2\\\\u1d00-\\\\u1dbe\\\\u1e01-\\\\u1f15\\\\u200c\\\\u200d\\\\u203f\\\\u2040\\\\u2054\\\\u20d0-\\\\u20dc\\\\u20e1\\\\u20e5-\\\\u20f0\\\\u2d81-\\\\u2d96\\\\u2de0-\\\\u2dff\\\\u3021-\\\\u3028\\\\u3099\\\\u309a\\\\ua640-\\\\ua66d\\\\ua674-\\\\ua67d\\\\ua69f\\\\ua6f0-\\\\ua6f1\\\\ua7f8-\\\\ua800\\\\ua806\\\\ua80b\\\\ua823-\\\\ua827\\\\ua880-\\\\ua881\\\\ua8b4-\\\\ua8c4\\\\ua8d0-\\\\ua8d9\\\\ua8f3-\\\\ua8f7\\\\ua900-\\\\ua909\\\\ua926-\\\\ua92d\\\\ua930-\\\\ua945\\\\ua980-\\\\ua983\\\\ua9b3-\\\\ua9c0\\\\uaa00-\\\\uaa27\\\\uaa40-\\\\uaa41\\\\uaa4c-\\\\uaa4d\\\\uaa50-\\\\uaa59\\\\uaa7b\\\\uaae0-\\\\uaae9\\\\uaaf2-\\\\uaaf3\\\\uabc0-\\\\uabe1\\\\uabec\\\\uabed\\\\uabf0-\\\\uabf9\\\\ufb20-\\\\ufb28\\\\ufe00-\\\\ufe0f\\\\ufe20-\\\\ufe26\\\\ufe33\\\\ufe34\\\\ufe4d-\\\\ufe4f\\\\uff10-\\\\uff19\\\\uff3f\";\n\t\t//var nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\n\t\t//var nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n\t\tvar identifierStart = \"(?:\\\\\\\\u[0-9a-fA-F]{4}|[\" + baseASCIIidentifierStartChars + nonASCIIidentifierStartChars + \"])\";\n\t\tvar identifierChars = \"(?:\\\\\\\\u[0-9a-fA-F]{4}|[\" + baseASCIIidentifierChars + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"])*\";\n\n\t\texports.identifier = new RegExp(identifierStart + identifierChars, 'g');\n\t\texports.identifierStart = new RegExp(identifierStart);\n\t\texports.identifierMatch = new RegExp(\"(?:\\\\\\\\u[0-9a-fA-F]{4}|[\" + baseASCIIidentifierChars + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"])+\");\n\n\t\t// Whether a single character denotes a newline.\n\n\t\texports.newline = /[\\n\\r\\u2028\\u2029]/;\n\n\t\t// Matches a whole line break (where CRLF is considered a single\n\t\t// line break). Used to count lines.\n\n\t\t// in javascript, these two differ\n\t\t// in python they are the same, different methods are called on them\n\t\texports.lineBreak = new RegExp('\\r\\n|' + exports.newline.source);\n\t\texports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g'); \n\t} (acorn));\n\treturn acorn;\n}\n\nvar options$3 = {};\n\nvar options$2 = {};\n\n/*jshint node:true */\n\nvar hasRequiredOptions$3;\n\nfunction requireOptions$3 () {\n\tif (hasRequiredOptions$3) return options$2;\n\thasRequiredOptions$3 = 1;\n\n\tfunction Options(options, merge_child_field) {\n\t this.raw_options = _mergeOpts(options, merge_child_field);\n\n\t // Support passing the source text back with no change\n\t this.disabled = this._get_boolean('disabled');\n\n\t this.eol = this._get_characters('eol', 'auto');\n\t this.end_with_newline = this._get_boolean('end_with_newline');\n\t this.indent_size = this._get_number('indent_size', 4);\n\t this.indent_char = this._get_characters('indent_char', ' ');\n\t this.indent_level = this._get_number('indent_level');\n\n\t this.preserve_newlines = this._get_boolean('preserve_newlines', true);\n\t this.max_preserve_newlines = this._get_number('max_preserve_newlines', 32786);\n\t if (!this.preserve_newlines) {\n\t this.max_preserve_newlines = 0;\n\t }\n\n\t this.indent_with_tabs = this._get_boolean('indent_with_tabs', this.indent_char === '\\t');\n\t if (this.indent_with_tabs) {\n\t this.indent_char = '\\t';\n\n\t // indent_size behavior changed after 1.8.6\n\t // It used to be that indent_size would be\n\t // set to 1 for indent_with_tabs. That is no longer needed and\n\t // actually doesn't make sense - why not use spaces? Further,\n\t // that might produce unexpected behavior - tabs being used\n\t // for single-column alignment. So, when indent_with_tabs is true\n\t // and indent_size is 1, reset indent_size to 4.\n\t if (this.indent_size === 1) {\n\t this.indent_size = 4;\n\t }\n\t }\n\n\t // Backwards compat with 1.3.x\n\t this.wrap_line_length = this._get_number('wrap_line_length', this._get_number('max_char'));\n\n\t this.indent_empty_lines = this._get_boolean('indent_empty_lines');\n\n\t // valid templating languages ['django', 'erb', 'handlebars', 'php', 'smarty']\n\t // For now, 'auto' = all off for javascript, all on for html (and inline javascript).\n\t // other values ignored\n\t this.templating = this._get_selection_list('templating', ['auto', 'none', 'django', 'erb', 'handlebars', 'php', 'smarty'], ['auto']);\n\t}\n\n\tOptions.prototype._get_array = function(name, default_value) {\n\t var option_value = this.raw_options[name];\n\t var result = default_value || [];\n\t if (typeof option_value === 'object') {\n\t if (option_value !== null && typeof option_value.concat === 'function') {\n\t result = option_value.concat();\n\t }\n\t } else if (typeof option_value === 'string') {\n\t result = option_value.split(/[^a-zA-Z0-9_\\/\\-]+/);\n\t }\n\t return result;\n\t};\n\n\tOptions.prototype._get_boolean = function(name, default_value) {\n\t var option_value = this.raw_options[name];\n\t var result = option_value === undefined ? !!default_value : !!option_value;\n\t return result;\n\t};\n\n\tOptions.prototype._get_characters = function(name, default_value) {\n\t var option_value = this.raw_options[name];\n\t var result = default_value || '';\n\t if (typeof option_value === 'string') {\n\t result = option_value.replace(/\\\\r/, '\\r').replace(/\\\\n/, '\\n').replace(/\\\\t/, '\\t');\n\t }\n\t return result;\n\t};\n\n\tOptions.prototype._get_number = function(name, default_value) {\n\t var option_value = this.raw_options[name];\n\t default_value = parseInt(default_value, 10);\n\t if (isNaN(default_value)) {\n\t default_value = 0;\n\t }\n\t var result = parseInt(option_value, 10);\n\t if (isNaN(result)) {\n\t result = default_value;\n\t }\n\t return result;\n\t};\n\n\tOptions.prototype._get_selection = function(name, selection_list, default_value) {\n\t var result = this._get_selection_list(name, selection_list, default_value);\n\t if (result.length !== 1) {\n\t throw new Error(\n\t \"Invalid Option Value: The option '\" + name + \"' can only be one of the following values:\\n\" +\n\t selection_list + \"\\nYou passed in: '\" + this.raw_options[name] + \"'\");\n\t }\n\n\t return result[0];\n\t};\n\n\n\tOptions.prototype._get_selection_list = function(name, selection_list, default_value) {\n\t if (!selection_list || selection_list.length === 0) {\n\t throw new Error(\"Selection list cannot be empty.\");\n\t }\n\n\t default_value = default_value || [selection_list[0]];\n\t if (!this._is_valid_selection(default_value, selection_list)) {\n\t throw new Error(\"Invalid Default Value!\");\n\t }\n\n\t var result = this._get_array(name, default_value);\n\t if (!this._is_valid_selection(result, selection_list)) {\n\t throw new Error(\n\t \"Invalid Option Value: The option '\" + name + \"' can contain only the following values:\\n\" +\n\t selection_list + \"\\nYou passed in: '\" + this.raw_options[name] + \"'\");\n\t }\n\n\t return result;\n\t};\n\n\tOptions.prototype._is_valid_selection = function(result, selection_list) {\n\t return result.length && selection_list.length &&\n\t !result.some(function(item) { return selection_list.indexOf(item) === -1; });\n\t};\n\n\n\t// merges child options up with the parent options object\n\t// Example: obj = {a: 1, b: {a: 2}}\n\t// mergeOpts(obj, 'b')\n\t//\n\t// Returns: {a: 2}\n\tfunction _mergeOpts(allOptions, childFieldName) {\n\t var finalOpts = {};\n\t allOptions = _normalizeOpts(allOptions);\n\t var name;\n\n\t for (name in allOptions) {\n\t if (name !== childFieldName) {\n\t finalOpts[name] = allOptions[name];\n\t }\n\t }\n\n\t //merge in the per type settings for the childFieldName\n\t if (childFieldName && allOptions[childFieldName]) {\n\t for (name in allOptions[childFieldName]) {\n\t finalOpts[name] = allOptions[childFieldName][name];\n\t }\n\t }\n\t return finalOpts;\n\t}\n\n\tfunction _normalizeOpts(options) {\n\t var convertedOpts = {};\n\t var key;\n\n\t for (key in options) {\n\t var newKey = key.replace(/-/g, \"_\");\n\t convertedOpts[newKey] = options[key];\n\t }\n\t return convertedOpts;\n\t}\n\n\toptions$2.Options = Options;\n\toptions$2.normalizeOpts = _normalizeOpts;\n\toptions$2.mergeOpts = _mergeOpts;\n\treturn options$2;\n}\n\n/*jshint node:true */\n\nvar hasRequiredOptions$2;\n\nfunction requireOptions$2 () {\n\tif (hasRequiredOptions$2) return options$3;\n\thasRequiredOptions$2 = 1;\n\n\tvar BaseOptions = requireOptions$3().Options;\n\n\tvar validPositionValues = ['before-newline', 'after-newline', 'preserve-newline'];\n\n\tfunction Options(options) {\n\t BaseOptions.call(this, options, 'js');\n\n\t // compatibility, re\n\t var raw_brace_style = this.raw_options.brace_style || null;\n\t if (raw_brace_style === \"expand-strict\") { //graceful handling of deprecated option\n\t this.raw_options.brace_style = \"expand\";\n\t } else if (raw_brace_style === \"collapse-preserve-inline\") { //graceful handling of deprecated option\n\t this.raw_options.brace_style = \"collapse,preserve-inline\";\n\t } else if (this.raw_options.braces_on_own_line !== undefined) { //graceful handling of deprecated option\n\t this.raw_options.brace_style = this.raw_options.braces_on_own_line ? \"expand\" : \"collapse\";\n\t // } else if (!raw_brace_style) { //Nothing exists to set it\n\t // raw_brace_style = \"collapse\";\n\t }\n\n\t //preserve-inline in delimited string will trigger brace_preserve_inline, everything\n\t //else is considered a brace_style and the last one only will have an effect\n\n\t var brace_style_split = this._get_selection_list('brace_style', ['collapse', 'expand', 'end-expand', 'none', 'preserve-inline']);\n\n\t this.brace_preserve_inline = false; //Defaults in case one or other was not specified in meta-option\n\t this.brace_style = \"collapse\";\n\n\t for (var bs = 0; bs < brace_style_split.length; bs++) {\n\t if (brace_style_split[bs] === \"preserve-inline\") {\n\t this.brace_preserve_inline = true;\n\t } else {\n\t this.brace_style = brace_style_split[bs];\n\t }\n\t }\n\n\t this.unindent_chained_methods = this._get_boolean('unindent_chained_methods');\n\t this.break_chained_methods = this._get_boolean('break_chained_methods');\n\t this.space_in_paren = this._get_boolean('space_in_paren');\n\t this.space_in_empty_paren = this._get_boolean('space_in_empty_paren');\n\t this.jslint_happy = this._get_boolean('jslint_happy');\n\t this.space_after_anon_function = this._get_boolean('space_after_anon_function');\n\t this.space_after_named_function = this._get_boolean('space_after_named_function');\n\t this.keep_array_indentation = this._get_boolean('keep_array_indentation');\n\t this.space_before_conditional = this._get_boolean('space_before_conditional', true);\n\t this.unescape_strings = this._get_boolean('unescape_strings');\n\t this.e4x = this._get_boolean('e4x');\n\t this.comma_first = this._get_boolean('comma_first');\n\t this.operator_position = this._get_selection('operator_position', validPositionValues);\n\n\t // For testing of beautify preserve:start directive\n\t this.test_output_raw = this._get_boolean('test_output_raw');\n\n\t // force this._options.space_after_anon_function to true if this._options.jslint_happy\n\t if (this.jslint_happy) {\n\t this.space_after_anon_function = true;\n\t }\n\n\t}\n\tOptions.prototype = new BaseOptions();\n\n\n\n\toptions$3.Options = Options;\n\treturn options$3;\n}\n\nvar tokenizer$2 = {};\n\nvar inputscanner = {};\n\n/*jshint node:true */\n\nvar hasRequiredInputscanner;\n\nfunction requireInputscanner () {\n\tif (hasRequiredInputscanner) return inputscanner;\n\thasRequiredInputscanner = 1;\n\n\tvar regexp_has_sticky = RegExp.prototype.hasOwnProperty('sticky');\n\n\tfunction InputScanner(input_string) {\n\t this.__input = input_string || '';\n\t this.__input_length = this.__input.length;\n\t this.__position = 0;\n\t}\n\n\tInputScanner.prototype.restart = function() {\n\t this.__position = 0;\n\t};\n\n\tInputScanner.prototype.back = function() {\n\t if (this.__position > 0) {\n\t this.__position -= 1;\n\t }\n\t};\n\n\tInputScanner.prototype.hasNext = function() {\n\t return this.__position < this.__input_length;\n\t};\n\n\tInputScanner.prototype.next = function() {\n\t var val = null;\n\t if (this.hasNext()) {\n\t val = this.__input.charAt(this.__position);\n\t this.__position += 1;\n\t }\n\t return val;\n\t};\n\n\tInputScanner.prototype.peek = function(index) {\n\t var val = null;\n\t index = index || 0;\n\t index += this.__position;\n\t if (index >= 0 && index < this.__input_length) {\n\t val = this.__input.charAt(index);\n\t }\n\t return val;\n\t};\n\n\t// This is a JavaScript only helper function (not in python)\n\t// Javascript doesn't have a match method\n\t// and not all implementation support \"sticky\" flag.\n\t// If they do not support sticky then both this.match() and this.test() method\n\t// must get the match and check the index of the match.\n\t// If sticky is supported and set, this method will use it.\n\t// Otherwise it will check that global is set, and fall back to the slower method.\n\tInputScanner.prototype.__match = function(pattern, index) {\n\t pattern.lastIndex = index;\n\t var pattern_match = pattern.exec(this.__input);\n\n\t if (pattern_match && !(regexp_has_sticky && pattern.sticky)) {\n\t if (pattern_match.index !== index) {\n\t pattern_match = null;\n\t }\n\t }\n\n\t return pattern_match;\n\t};\n\n\tInputScanner.prototype.test = function(pattern, index) {\n\t index = index || 0;\n\t index += this.__position;\n\n\t if (index >= 0 && index < this.__input_length) {\n\t return !!this.__match(pattern, index);\n\t } else {\n\t return false;\n\t }\n\t};\n\n\tInputScanner.prototype.testChar = function(pattern, index) {\n\t // test one character regex match\n\t var val = this.peek(index);\n\t pattern.lastIndex = 0;\n\t return val !== null && pattern.test(val);\n\t};\n\n\tInputScanner.prototype.match = function(pattern) {\n\t var pattern_match = this.__match(pattern, this.__position);\n\t if (pattern_match) {\n\t this.__position += pattern_match[0].length;\n\t } else {\n\t pattern_match = null;\n\t }\n\t return pattern_match;\n\t};\n\n\tInputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) {\n\t var val = '';\n\t var match;\n\t if (starting_pattern) {\n\t match = this.match(starting_pattern);\n\t if (match) {\n\t val += match[0];\n\t }\n\t }\n\t if (until_pattern && (match || !starting_pattern)) {\n\t val += this.readUntil(until_pattern, until_after);\n\t }\n\t return val;\n\t};\n\n\tInputScanner.prototype.readUntil = function(pattern, until_after) {\n\t var val = '';\n\t var match_index = this.__position;\n\t pattern.lastIndex = this.__position;\n\t var pattern_match = pattern.exec(this.__input);\n\t if (pattern_match) {\n\t match_index = pattern_match.index;\n\t if (until_after) {\n\t match_index += pattern_match[0].length;\n\t }\n\t } else {\n\t match_index = this.__input_length;\n\t }\n\n\t val = this.__input.substring(this.__position, match_index);\n\t this.__position = match_index;\n\t return val;\n\t};\n\n\tInputScanner.prototype.readUntilAfter = function(pattern) {\n\t return this.readUntil(pattern, true);\n\t};\n\n\tInputScanner.prototype.get_regexp = function(pattern, match_from) {\n\t var result = null;\n\t var flags = 'g';\n\t if (match_from && regexp_has_sticky) {\n\t flags = 'y';\n\t }\n\t // strings are converted to regexp\n\t if (typeof pattern === \"string\" && pattern !== '') {\n\t // result = new RegExp(pattern.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), flags);\n\t result = new RegExp(pattern, flags);\n\t } else if (pattern) {\n\t result = new RegExp(pattern.source, flags);\n\t }\n\t return result;\n\t};\n\n\tInputScanner.prototype.get_literal_regexp = function(literal_string) {\n\t return RegExp(literal_string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'));\n\t};\n\n\t/* css beautifier legacy helpers */\n\tInputScanner.prototype.peekUntilAfter = function(pattern) {\n\t var start = this.__position;\n\t var val = this.readUntilAfter(pattern);\n\t this.__position = start;\n\t return val;\n\t};\n\n\tInputScanner.prototype.lookBack = function(testVal) {\n\t var start = this.__position - 1;\n\t return start >= testVal.length && this.__input.substring(start - testVal.length, start)\n\t .toLowerCase() === testVal;\n\t};\n\n\tinputscanner.InputScanner = InputScanner;\n\treturn inputscanner;\n}\n\nvar tokenizer$1 = {};\n\nvar tokenstream = {};\n\n/*jshint node:true */\n\nvar hasRequiredTokenstream;\n\nfunction requireTokenstream () {\n\tif (hasRequiredTokenstream) return tokenstream;\n\thasRequiredTokenstream = 1;\n\n\tfunction TokenStream(parent_token) {\n\t // private\n\t this.__tokens = [];\n\t this.__tokens_length = this.__tokens.length;\n\t this.__position = 0;\n\t this.__parent_token = parent_token;\n\t}\n\n\tTokenStream.prototype.restart = function() {\n\t this.__position = 0;\n\t};\n\n\tTokenStream.prototype.isEmpty = function() {\n\t return this.__tokens_length === 0;\n\t};\n\n\tTokenStream.prototype.hasNext = function() {\n\t return this.__position < this.__tokens_length;\n\t};\n\n\tTokenStream.prototype.next = function() {\n\t var val = null;\n\t if (this.hasNext()) {\n\t val = this.__tokens[this.__position];\n\t this.__position += 1;\n\t }\n\t return val;\n\t};\n\n\tTokenStream.prototype.peek = function(index) {\n\t var val = null;\n\t index = index || 0;\n\t index += this.__position;\n\t if (index >= 0 && index < this.__tokens_length) {\n\t val = this.__tokens[index];\n\t }\n\t return val;\n\t};\n\n\tTokenStream.prototype.add = function(token) {\n\t if (this.__parent_token) {\n\t token.parent = this.__parent_token;\n\t }\n\t this.__tokens.push(token);\n\t this.__tokens_length += 1;\n\t};\n\n\ttokenstream.TokenStream = TokenStream;\n\treturn tokenstream;\n}\n\nvar whitespacepattern = {};\n\nvar pattern = {};\n\n/*jshint node:true */\n\nvar hasRequiredPattern;\n\nfunction requirePattern () {\n\tif (hasRequiredPattern) return pattern;\n\thasRequiredPattern = 1;\n\n\tfunction Pattern(input_scanner, parent) {\n\t this._input = input_scanner;\n\t this._starting_pattern = null;\n\t this._match_pattern = null;\n\t this._until_pattern = null;\n\t this._until_after = false;\n\n\t if (parent) {\n\t this._starting_pattern = this._input.get_regexp(parent._starting_pattern, true);\n\t this._match_pattern = this._input.get_regexp(parent._match_pattern, true);\n\t this._until_pattern = this._input.get_regexp(parent._until_pattern);\n\t this._until_after = parent._until_after;\n\t }\n\t}\n\n\tPattern.prototype.read = function() {\n\t var result = this._input.read(this._starting_pattern);\n\t if (!this._starting_pattern || result) {\n\t result += this._input.read(this._match_pattern, this._until_pattern, this._until_after);\n\t }\n\t return result;\n\t};\n\n\tPattern.prototype.read_match = function() {\n\t return this._input.match(this._match_pattern);\n\t};\n\n\tPattern.prototype.until_after = function(pattern) {\n\t var result = this._create();\n\t result._until_after = true;\n\t result._until_pattern = this._input.get_regexp(pattern);\n\t result._update();\n\t return result;\n\t};\n\n\tPattern.prototype.until = function(pattern) {\n\t var result = this._create();\n\t result._until_after = false;\n\t result._until_pattern = this._input.get_regexp(pattern);\n\t result._update();\n\t return result;\n\t};\n\n\tPattern.prototype.starting_with = function(pattern) {\n\t var result = this._create();\n\t result._starting_pattern = this._input.get_regexp(pattern, true);\n\t result._update();\n\t return result;\n\t};\n\n\tPattern.prototype.matching = function(pattern) {\n\t var result = this._create();\n\t result._match_pattern = this._input.get_regexp(pattern, true);\n\t result._update();\n\t return result;\n\t};\n\n\tPattern.prototype._create = function() {\n\t return new Pattern(this._input, this);\n\t};\n\n\tPattern.prototype._update = function() {};\n\n\tpattern.Pattern = Pattern;\n\treturn pattern;\n}\n\n/*jshint node:true */\n\nvar hasRequiredWhitespacepattern;\n\nfunction requireWhitespacepattern () {\n\tif (hasRequiredWhitespacepattern) return whitespacepattern;\n\thasRequiredWhitespacepattern = 1;\n\n\tvar Pattern = requirePattern().Pattern;\n\n\tfunction WhitespacePattern(input_scanner, parent) {\n\t Pattern.call(this, input_scanner, parent);\n\t if (parent) {\n\t this._line_regexp = this._input.get_regexp(parent._line_regexp);\n\t } else {\n\t this.__set_whitespace_patterns('', '');\n\t }\n\n\t this.newline_count = 0;\n\t this.whitespace_before_token = '';\n\t}\n\tWhitespacePattern.prototype = new Pattern();\n\n\tWhitespacePattern.prototype.__set_whitespace_patterns = function(whitespace_chars, newline_chars) {\n\t whitespace_chars += '\\\\t ';\n\t newline_chars += '\\\\n\\\\r';\n\n\t this._match_pattern = this._input.get_regexp(\n\t '[' + whitespace_chars + newline_chars + ']+', true);\n\t this._newline_regexp = this._input.get_regexp(\n\t '\\\\r\\\\n|[' + newline_chars + ']');\n\t};\n\n\tWhitespacePattern.prototype.read = function() {\n\t this.newline_count = 0;\n\t this.whitespace_before_token = '';\n\n\t var resulting_string = this._input.read(this._match_pattern);\n\t if (resulting_string === ' ') {\n\t this.whitespace_before_token = ' ';\n\t } else if (resulting_string) {\n\t var matches = this.__split(this._newline_regexp, resulting_string);\n\t this.newline_count = matches.length - 1;\n\t this.whitespace_before_token = matches[this.newline_count];\n\t }\n\n\t return resulting_string;\n\t};\n\n\tWhitespacePattern.prototype.matching = function(whitespace_chars, newline_chars) {\n\t var result = this._create();\n\t result.__set_whitespace_patterns(whitespace_chars, newline_chars);\n\t result._update();\n\t return result;\n\t};\n\n\tWhitespacePattern.prototype._create = function() {\n\t return new WhitespacePattern(this._input, this);\n\t};\n\n\tWhitespacePattern.prototype.__split = function(regexp, input_string) {\n\t regexp.lastIndex = 0;\n\t var start_index = 0;\n\t var result = [];\n\t var next_match = regexp.exec(input_string);\n\t while (next_match) {\n\t result.push(input_string.substring(start_index, next_match.index));\n\t start_index = next_match.index + next_match[0].length;\n\t next_match = regexp.exec(input_string);\n\t }\n\n\t if (start_index < input_string.length) {\n\t result.push(input_string.substring(start_index, input_string.length));\n\t } else {\n\t result.push('');\n\t }\n\n\t return result;\n\t};\n\n\n\n\twhitespacepattern.WhitespacePattern = WhitespacePattern;\n\treturn whitespacepattern;\n}\n\n/*jshint node:true */\n\nvar hasRequiredTokenizer$2;\n\nfunction requireTokenizer$2 () {\n\tif (hasRequiredTokenizer$2) return tokenizer$1;\n\thasRequiredTokenizer$2 = 1;\n\n\tvar InputScanner = requireInputscanner().InputScanner;\n\tvar Token = requireToken().Token;\n\tvar TokenStream = requireTokenstream().TokenStream;\n\tvar WhitespacePattern = requireWhitespacepattern().WhitespacePattern;\n\n\tvar TOKEN = {\n\t START: 'TK_START',\n\t RAW: 'TK_RAW',\n\t EOF: 'TK_EOF'\n\t};\n\n\tvar Tokenizer = function(input_string, options) {\n\t this._input = new InputScanner(input_string);\n\t this._options = options || {};\n\t this.__tokens = null;\n\n\t this._patterns = {};\n\t this._patterns.whitespace = new WhitespacePattern(this._input);\n\t};\n\n\tTokenizer.prototype.tokenize = function() {\n\t this._input.restart();\n\t this.__tokens = new TokenStream();\n\n\t this._reset();\n\n\t var current;\n\t var previous = new Token(TOKEN.START, '');\n\t var open_token = null;\n\t var open_stack = [];\n\t var comments = new TokenStream();\n\n\t while (previous.type !== TOKEN.EOF) {\n\t current = this._get_next_token(previous, open_token);\n\t while (this._is_comment(current)) {\n\t comments.add(current);\n\t current = this._get_next_token(previous, open_token);\n\t }\n\n\t if (!comments.isEmpty()) {\n\t current.comments_before = comments;\n\t comments = new TokenStream();\n\t }\n\n\t current.parent = open_token;\n\n\t if (this._is_opening(current)) {\n\t open_stack.push(open_token);\n\t open_token = current;\n\t } else if (open_token && this._is_closing(current, open_token)) {\n\t current.opened = open_token;\n\t open_token.closed = current;\n\t open_token = open_stack.pop();\n\t current.parent = open_token;\n\t }\n\n\t current.previous = previous;\n\t previous.next = current;\n\n\t this.__tokens.add(current);\n\t previous = current;\n\t }\n\n\t return this.__tokens;\n\t};\n\n\n\tTokenizer.prototype._is_first_token = function() {\n\t return this.__tokens.isEmpty();\n\t};\n\n\tTokenizer.prototype._reset = function() {};\n\n\tTokenizer.prototype._get_next_token = function(previous_token, open_token) { // jshint unused:false\n\t this._readWhitespace();\n\t var resulting_string = this._input.read(/.+/g);\n\t if (resulting_string) {\n\t return this._create_token(TOKEN.RAW, resulting_string);\n\t } else {\n\t return this._create_token(TOKEN.EOF, '');\n\t }\n\t};\n\n\tTokenizer.prototype._is_comment = function(current_token) { // jshint unused:false\n\t return false;\n\t};\n\n\tTokenizer.prototype._is_opening = function(current_token) { // jshint unused:false\n\t return false;\n\t};\n\n\tTokenizer.prototype._is_closing = function(current_token, open_token) { // jshint unused:false\n\t return false;\n\t};\n\n\tTokenizer.prototype._create_token = function(type, text) {\n\t var token = new Token(type, text,\n\t this._patterns.whitespace.newline_count,\n\t this._patterns.whitespace.whitespace_before_token);\n\t return token;\n\t};\n\n\tTokenizer.prototype._readWhitespace = function() {\n\t return this._patterns.whitespace.read();\n\t};\n\n\n\n\ttokenizer$1.Tokenizer = Tokenizer;\n\ttokenizer$1.TOKEN = TOKEN;\n\treturn tokenizer$1;\n}\n\nvar directives = {};\n\n/*jshint node:true */\n\nvar hasRequiredDirectives;\n\nfunction requireDirectives () {\n\tif (hasRequiredDirectives) return directives;\n\thasRequiredDirectives = 1;\n\n\tfunction Directives(start_block_pattern, end_block_pattern) {\n\t start_block_pattern = typeof start_block_pattern === 'string' ? start_block_pattern : start_block_pattern.source;\n\t end_block_pattern = typeof end_block_pattern === 'string' ? end_block_pattern : end_block_pattern.source;\n\t this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \\w+[:]\\w+)+ /.source + end_block_pattern, 'g');\n\t this.__directive_pattern = / (\\w+)[:](\\w+)/g;\n\n\t this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\\sbeautify\\signore:end\\s/.source + end_block_pattern, 'g');\n\t}\n\n\tDirectives.prototype.get_directives = function(text) {\n\t if (!text.match(this.__directives_block_pattern)) {\n\t return null;\n\t }\n\n\t var directives = {};\n\t this.__directive_pattern.lastIndex = 0;\n\t var directive_match = this.__directive_pattern.exec(text);\n\n\t while (directive_match) {\n\t directives[directive_match[1]] = directive_match[2];\n\t directive_match = this.__directive_pattern.exec(text);\n\t }\n\n\t return directives;\n\t};\n\n\tDirectives.prototype.readIgnored = function(input) {\n\t return input.readUntilAfter(this.__directives_end_ignore_pattern);\n\t};\n\n\n\tdirectives.Directives = Directives;\n\treturn directives;\n}\n\nvar templatablepattern = {};\n\n/*jshint node:true */\n\nvar hasRequiredTemplatablepattern;\n\nfunction requireTemplatablepattern () {\n\tif (hasRequiredTemplatablepattern) return templatablepattern;\n\thasRequiredTemplatablepattern = 1;\n\n\tvar Pattern = requirePattern().Pattern;\n\n\n\tvar template_names = {\n\t django: false,\n\t erb: false,\n\t handlebars: false,\n\t php: false,\n\t smarty: false\n\t};\n\n\t// This lets templates appear anywhere we would do a readUntil\n\t// The cost is higher but it is pay to play.\n\tfunction TemplatablePattern(input_scanner, parent) {\n\t Pattern.call(this, input_scanner, parent);\n\t this.__template_pattern = null;\n\t this._disabled = Object.assign({}, template_names);\n\t this._excluded = Object.assign({}, template_names);\n\n\t if (parent) {\n\t this.__template_pattern = this._input.get_regexp(parent.__template_pattern);\n\t this._excluded = Object.assign(this._excluded, parent._excluded);\n\t this._disabled = Object.assign(this._disabled, parent._disabled);\n\t }\n\t var pattern = new Pattern(input_scanner);\n\t this.__patterns = {\n\t handlebars_comment: pattern.starting_with(/{{!--/).until_after(/--}}/),\n\t handlebars_unescaped: pattern.starting_with(/{{{/).until_after(/}}}/),\n\t handlebars: pattern.starting_with(/{{/).until_after(/}}/),\n\t php: pattern.starting_with(/<\\?(?:[= ]|php)/).until_after(/\\?>/),\n\t erb: pattern.starting_with(/<%[^%]/).until_after(/[^%]%>/),\n\t // django coflicts with handlebars a bit.\n\t django: pattern.starting_with(/{%/).until_after(/%}/),\n\t django_value: pattern.starting_with(/{{/).until_after(/}}/),\n\t django_comment: pattern.starting_with(/{#/).until_after(/#}/),\n\t smarty: pattern.starting_with(/{(?=[^}{\\s\\n])/).until_after(/[^\\s\\n]}/),\n\t smarty_comment: pattern.starting_with(/{\\*/).until_after(/\\*}/),\n\t smarty_literal: pattern.starting_with(/{literal}/).until_after(/{\\/literal}/)\n\t };\n\t}\n\tTemplatablePattern.prototype = new Pattern();\n\n\tTemplatablePattern.prototype._create = function() {\n\t return new TemplatablePattern(this._input, this);\n\t};\n\n\tTemplatablePattern.prototype._update = function() {\n\t this.__set_templated_pattern();\n\t};\n\n\tTemplatablePattern.prototype.disable = function(language) {\n\t var result = this._create();\n\t result._disabled[language] = true;\n\t result._update();\n\t return result;\n\t};\n\n\tTemplatablePattern.prototype.read_options = function(options) {\n\t var result = this._create();\n\t for (var language in template_names) {\n\t result._disabled[language] = options.templating.indexOf(language) === -1;\n\t }\n\t result._update();\n\t return result;\n\t};\n\n\tTemplatablePattern.prototype.exclude = function(language) {\n\t var result = this._create();\n\t result._excluded[language] = true;\n\t result._update();\n\t return result;\n\t};\n\n\tTemplatablePattern.prototype.read = function() {\n\t var result = '';\n\t if (this._match_pattern) {\n\t result = this._input.read(this._starting_pattern);\n\t } else {\n\t result = this._input.read(this._starting_pattern, this.__template_pattern);\n\t }\n\t var next = this._read_template();\n\t while (next) {\n\t if (this._match_pattern) {\n\t next += this._input.read(this._match_pattern);\n\t } else {\n\t next += this._input.readUntil(this.__template_pattern);\n\t }\n\t result += next;\n\t next = this._read_template();\n\t }\n\n\t if (this._until_after) {\n\t result += this._input.readUntilAfter(this._until_pattern);\n\t }\n\t return result;\n\t};\n\n\tTemplatablePattern.prototype.__set_templated_pattern = function() {\n\t var items = [];\n\n\t if (!this._disabled.php) {\n\t items.push(this.__patterns.php._starting_pattern.source);\n\t }\n\t if (!this._disabled.handlebars) {\n\t items.push(this.__patterns.handlebars._starting_pattern.source);\n\t }\n\t if (!this._disabled.erb) {\n\t items.push(this.__patterns.erb._starting_pattern.source);\n\t }\n\t if (!this._disabled.django) {\n\t items.push(this.__patterns.django._starting_pattern.source);\n\t // The starting pattern for django is more complex because it has different\n\t // patterns for value, comment, and other sections\n\t items.push(this.__patterns.django_value._starting_pattern.source);\n\t items.push(this.__patterns.django_comment._starting_pattern.source);\n\t }\n\t if (!this._disabled.smarty) {\n\t items.push(this.__patterns.smarty._starting_pattern.source);\n\t }\n\n\t if (this._until_pattern) {\n\t items.push(this._until_pattern.source);\n\t }\n\t this.__template_pattern = this._input.get_regexp('(?:' + items.join('|') + ')');\n\t};\n\n\tTemplatablePattern.prototype._read_template = function() {\n\t var resulting_string = '';\n\t var c = this._input.peek();\n\t if (c === '<') {\n\t var peek1 = this._input.peek(1);\n\t //if we're in a comment, do something special\n\t // We treat all comments as literals, even more than preformatted tags\n\t // we just look for the appropriate close tag\n\t if (!this._disabled.php && !this._excluded.php && peek1 === '?') {\n\t resulting_string = resulting_string ||\n\t this.__patterns.php.read();\n\t }\n\t if (!this._disabled.erb && !this._excluded.erb && peek1 === '%') {\n\t resulting_string = resulting_string ||\n\t this.__patterns.erb.read();\n\t }\n\t } else if (c === '{') {\n\t if (!this._disabled.handlebars && !this._excluded.handlebars) {\n\t resulting_string = resulting_string ||\n\t this.__patterns.handlebars_comment.read();\n\t resulting_string = resulting_string ||\n\t this.__patterns.handlebars_unescaped.read();\n\t resulting_string = resulting_string ||\n\t this.__patterns.handlebars.read();\n\t }\n\t if (!this._disabled.django) {\n\t // django coflicts with handlebars a bit.\n\t if (!this._excluded.django && !this._excluded.handlebars) {\n\t resulting_string = resulting_string ||\n\t this.__patterns.django_value.read();\n\t }\n\t if (!this._excluded.django) {\n\t resulting_string = resulting_string ||\n\t this.__patterns.django_comment.read();\n\t resulting_string = resulting_string ||\n\t this.__patterns.django.read();\n\t }\n\t }\n\t if (!this._disabled.smarty) {\n\t // smarty cannot be enabled with django or handlebars enabled\n\t if (this._disabled.django && this._disabled.handlebars) {\n\t resulting_string = resulting_string ||\n\t this.__patterns.smarty_comment.read();\n\t resulting_string = resulting_string ||\n\t this.__patterns.smarty_literal.read();\n\t resulting_string = resulting_string ||\n\t this.__patterns.smarty.read();\n\t }\n\t }\n\t }\n\t return resulting_string;\n\t};\n\n\n\ttemplatablepattern.TemplatablePattern = TemplatablePattern;\n\treturn templatablepattern;\n}\n\n/*jshint node:true */\n\nvar hasRequiredTokenizer$1;\n\nfunction requireTokenizer$1 () {\n\tif (hasRequiredTokenizer$1) return tokenizer$2;\n\thasRequiredTokenizer$1 = 1;\n\n\tvar InputScanner = requireInputscanner().InputScanner;\n\tvar BaseTokenizer = requireTokenizer$2().Tokenizer;\n\tvar BASETOKEN = requireTokenizer$2().TOKEN;\n\tvar Directives = requireDirectives().Directives;\n\tvar acorn = requireAcorn();\n\tvar Pattern = requirePattern().Pattern;\n\tvar TemplatablePattern = requireTemplatablepattern().TemplatablePattern;\n\n\n\tfunction in_array(what, arr) {\n\t return arr.indexOf(what) !== -1;\n\t}\n\n\n\tvar TOKEN = {\n\t START_EXPR: 'TK_START_EXPR',\n\t END_EXPR: 'TK_END_EXPR',\n\t START_BLOCK: 'TK_START_BLOCK',\n\t END_BLOCK: 'TK_END_BLOCK',\n\t WORD: 'TK_WORD',\n\t RESERVED: 'TK_RESERVED',\n\t SEMICOLON: 'TK_SEMICOLON',\n\t STRING: 'TK_STRING',\n\t EQUALS: 'TK_EQUALS',\n\t OPERATOR: 'TK_OPERATOR',\n\t COMMA: 'TK_COMMA',\n\t BLOCK_COMMENT: 'TK_BLOCK_COMMENT',\n\t COMMENT: 'TK_COMMENT',\n\t DOT: 'TK_DOT',\n\t UNKNOWN: 'TK_UNKNOWN',\n\t START: BASETOKEN.START,\n\t RAW: BASETOKEN.RAW,\n\t EOF: BASETOKEN.EOF\n\t};\n\n\n\tvar directives_core = new Directives(/\\/\\*/, /\\*\\//);\n\n\tvar number_pattern = /0[xX][0123456789abcdefABCDEF_]*n?|0[oO][01234567_]*n?|0[bB][01_]*n?|\\d[\\d_]*n|(?:\\.\\d[\\d_]*|\\d[\\d_]*\\.?[\\d_]*)(?:[eE][+-]?[\\d_]+)?/;\n\n\tvar digit = /[0-9]/;\n\n\t// Dot \".\" must be distinguished from \"...\" and decimal\n\tvar dot_pattern = /[^\\d\\.]/;\n\n\tvar positionable_operators = (\n\t \">>> === !== &&= ??= ||= \" +\n\t \"<< && >= ** != == <= >> || ?? |> \" +\n\t \"< / - + > : & % ? ^ | *\").split(' ');\n\n\t// IMPORTANT: this must be sorted longest to shortest or tokenizing many not work.\n\t// Also, you must update possitionable operators separately from punct\n\tvar punct =\n\t \">>>= \" +\n\t \"... >>= <<= === >>> !== **= &&= ??= ||= \" +\n\t \"=> ^= :: /= << <= == && -= >= >> != -- += ** || ?? ++ %= &= *= |= |> \" +\n\t \"= ! ? > < : / ^ - + * & % ~ |\";\n\n\tpunct = punct.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, \"\\\\$&\");\n\t// ?. but not if followed by a number \n\tpunct = '\\\\?\\\\.(?!\\\\d) ' + punct;\n\tpunct = punct.replace(/ /g, '|');\n\n\tvar punct_pattern = new RegExp(punct);\n\n\t// words which should always start on new line.\n\tvar line_starters = 'continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export'.split(',');\n\tvar reserved_words = line_starters.concat(['do', 'in', 'of', 'else', 'get', 'set', 'new', 'catch', 'finally', 'typeof', 'yield', 'async', 'await', 'from', 'as', 'class', 'extends']);\n\tvar reserved_word_pattern = new RegExp('^(?:' + reserved_words.join('|') + ')$');\n\n\t// var template_pattern = /(?:(?:<\\?php|<\\?=)[\\s\\S]*?\\?>)|(?:<%[\\s\\S]*?%>)/g;\n\n\tvar in_html_comment;\n\n\tvar Tokenizer = function(input_string, options) {\n\t BaseTokenizer.call(this, input_string, options);\n\n\t this._patterns.whitespace = this._patterns.whitespace.matching(\n\t /\\u00A0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff/.source,\n\t /\\u2028\\u2029/.source);\n\n\t var pattern_reader = new Pattern(this._input);\n\t var templatable = new TemplatablePattern(this._input)\n\t .read_options(this._options);\n\n\t this.__patterns = {\n\t template: templatable,\n\t identifier: templatable.starting_with(acorn.identifier).matching(acorn.identifierMatch),\n\t number: pattern_reader.matching(number_pattern),\n\t punct: pattern_reader.matching(punct_pattern),\n\t // comment ends just before nearest linefeed or end of file\n\t comment: pattern_reader.starting_with(/\\/\\//).until(/[\\n\\r\\u2028\\u2029]/),\n\t // /* ... */ comment ends with nearest */ or end of file\n\t block_comment: pattern_reader.starting_with(/\\/\\*/).until_after(/\\*\\//),\n\t html_comment_start: pattern_reader.matching(/<!--/),\n\t html_comment_end: pattern_reader.matching(/-->/),\n\t include: pattern_reader.starting_with(/#include/).until_after(acorn.lineBreak),\n\t shebang: pattern_reader.starting_with(/#!/).until_after(acorn.lineBreak),\n\t xml: pattern_reader.matching(/[\\s\\S]*?<(\\/?)([-a-zA-Z:0-9_.]+|{[^}]+?}|!\\[CDATA\\[[^\\]]*?\\]\\]|)(\\s*{[^}]+?}|\\s+[-a-zA-Z:0-9_.]+|\\s+[-a-zA-Z:0-9_.]+\\s*=\\s*('[^']*'|\"[^\"]*\"|{([^{}]|{[^}]+?})+?}))*\\s*(\\/?)\\s*>/),\n\t single_quote: templatable.until(/['\\\\\\n\\r\\u2028\\u2029]/),\n\t double_quote: templatable.until(/[\"\\\\\\n\\r\\u2028\\u2029]/),\n\t template_text: templatable.until(/[`\\\\$]/),\n\t template_expression: templatable.until(/[`}\\\\]/)\n\t };\n\n\t};\n\tTokenizer.prototype = new BaseTokenizer();\n\n\tTokenizer.prototype._is_comment = function(current_token) {\n\t return current_token.type === TOKEN.COMMENT || current_token.type === TOKEN.BLOCK_COMMENT || current_token.type === TOKEN.UNKNOWN;\n\t};\n\n\tTokenizer.prototype._is_opening = function(current_token) {\n\t return current_token.type === TOKEN.START_BLOCK || current_token.type === TOKEN.START_EXPR;\n\t};\n\n\tTokenizer.prototype._is_closing = function(current_token, open_token) {\n\t return (current_token.type === TOKEN.END_BLOCK || current_token.type === TOKEN.END_EXPR) &&\n\t (open_token && (\n\t (current_token.text === ']' && open_token.text === '[') ||\n\t (current_token.text === ')' && open_token.text === '(') ||\n\t (current_token.text === '}' && open_token.text === '{')));\n\t};\n\n\tTokenizer.prototype._reset = function() {\n\t in_html_comment = false;\n\t};\n\n\tTokenizer.prototype._get_next_token = function(previous_token, open_token) { // jshint unused:false\n\t var token = null;\n\t this._readWhitespace();\n\t var c = this._input.peek();\n\n\t if (c === null) {\n\t return this._create_token(TOKEN.EOF, '');\n\t }\n\n\t token = token || this._read_non_javascript(c);\n\t token = token || this._read_string(c);\n\t token = token || this._read_pair(c, this._input.peek(1)); // Issue #2062 hack for record type '#{'\n\t token = token || this._read_word(previous_token);\n\t token = token || this._read_singles(c);\n\t token = token || this._read_comment(c);\n\t token = token || this._read_regexp(c, previous_token);\n\t token = token || this._read_xml(c, previous_token);\n\t token = token || this._read_punctuation();\n\t token = token || this._create_token(TOKEN.UNKNOWN, this._input.next());\n\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_word = function(previous_token) {\n\t var resulting_string;\n\t resulting_string = this.__patterns.identifier.read();\n\t if (resulting_string !== '') {\n\t resulting_string = resulting_string.replace(acorn.allLineBreaks, '\\n');\n\t if (!(previous_token.type === TOKEN.DOT ||\n\t (previous_token.type === TOKEN.RESERVED && (previous_token.text === 'set' || previous_token.text === 'get'))) &&\n\t reserved_word_pattern.test(resulting_string)) {\n\t if ((resulting_string === 'in' || resulting_string === 'of') &&\n\t (previous_token.type === TOKEN.WORD || previous_token.type === TOKEN.STRING)) { // hack for 'in' and 'of' operators\n\t return this._create_token(TOKEN.OPERATOR, resulting_string);\n\t }\n\t return this._create_token(TOKEN.RESERVED, resulting_string);\n\t }\n\t return this._create_token(TOKEN.WORD, resulting_string);\n\t }\n\n\t resulting_string = this.__patterns.number.read();\n\t if (resulting_string !== '') {\n\t return this._create_token(TOKEN.WORD, resulting_string);\n\t }\n\t};\n\n\tTokenizer.prototype._read_singles = function(c) {\n\t var token = null;\n\t if (c === '(' || c === '[') {\n\t token = this._create_token(TOKEN.START_EXPR, c);\n\t } else if (c === ')' || c === ']') {\n\t token = this._create_token(TOKEN.END_EXPR, c);\n\t } else if (c === '{') {\n\t token = this._create_token(TOKEN.START_BLOCK, c);\n\t } else if (c === '}') {\n\t token = this._create_token(TOKEN.END_BLOCK, c);\n\t } else if (c === ';') {\n\t token = this._create_token(TOKEN.SEMICOLON, c);\n\t } else if (c === '.' && dot_pattern.test(this._input.peek(1))) {\n\t token = this._create_token(TOKEN.DOT, c);\n\t } else if (c === ',') {\n\t token = this._create_token(TOKEN.COMMA, c);\n\t }\n\n\t if (token) {\n\t this._input.next();\n\t }\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_pair = function(c, d) {\n\t var token = null;\n\t if (c === '#' && d === '{') {\n\t token = this._create_token(TOKEN.START_BLOCK, c + d);\n\t }\n\n\t if (token) {\n\t this._input.next();\n\t this._input.next();\n\t }\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_punctuation = function() {\n\t var resulting_string = this.__patterns.punct.read();\n\n\t if (resulting_string !== '') {\n\t if (resulting_string === '=') {\n\t return this._create_token(TOKEN.EQUALS, resulting_string);\n\t } else if (resulting_string === '?.') {\n\t return this._create_token(TOKEN.DOT, resulting_string);\n\t } else {\n\t return this._create_token(TOKEN.OPERATOR, resulting_string);\n\t }\n\t }\n\t};\n\n\tTokenizer.prototype._read_non_javascript = function(c) {\n\t var resulting_string = '';\n\n\t if (c === '#') {\n\t if (this._is_first_token()) {\n\t resulting_string = this.__patterns.shebang.read();\n\n\t if (resulting_string) {\n\t return this._create_token(TOKEN.UNKNOWN, resulting_string.trim() + '\\n');\n\t }\n\t }\n\n\t // handles extendscript #includes\n\t resulting_string = this.__patterns.include.read();\n\n\t if (resulting_string) {\n\t return this._create_token(TOKEN.UNKNOWN, resulting_string.trim() + '\\n');\n\t }\n\n\t c = this._input.next();\n\n\t // Spidermonkey-specific sharp variables for circular references. Considered obsolete.\n\t var sharp = '#';\n\t if (this._input.hasNext() && this._input.testChar(digit)) {\n\t do {\n\t c = this._input.next();\n\t sharp += c;\n\t } while (this._input.hasNext() && c !== '#' && c !== '=');\n\t if (c === '#') ; else if (this._input.peek() === '[' && this._input.peek(1) === ']') {\n\t sharp += '[]';\n\t this._input.next();\n\t this._input.next();\n\t } else if (this._input.peek() === '{' && this._input.peek(1) === '}') {\n\t sharp += '{}';\n\t this._input.next();\n\t this._input.next();\n\t }\n\t return this._create_token(TOKEN.WORD, sharp);\n\t }\n\n\t this._input.back();\n\n\t } else if (c === '<' && this._is_first_token()) {\n\t resulting_string = this.__patterns.html_comment_start.read();\n\t if (resulting_string) {\n\t while (this._input.hasNext() && !this._input.testChar(acorn.newline)) {\n\t resulting_string += this._input.next();\n\t }\n\t in_html_comment = true;\n\t return this._create_token(TOKEN.COMMENT, resulting_string);\n\t }\n\t } else if (in_html_comment && c === '-') {\n\t resulting_string = this.__patterns.html_comment_end.read();\n\t if (resulting_string) {\n\t in_html_comment = false;\n\t return this._create_token(TOKEN.COMMENT, resulting_string);\n\t }\n\t }\n\n\t return null;\n\t};\n\n\tTokenizer.prototype._read_comment = function(c) {\n\t var token = null;\n\t if (c === '/') {\n\t var comment = '';\n\t if (this._input.peek(1) === '*') {\n\t // peek for comment /* ... */\n\t comment = this.__patterns.block_comment.read();\n\t var directives = directives_core.get_directives(comment);\n\t if (directives && directives.ignore === 'start') {\n\t comment += directives_core.readIgnored(this._input);\n\t }\n\t comment = comment.replace(acorn.allLineBreaks, '\\n');\n\t token = this._create_token(TOKEN.BLOCK_COMMENT, comment);\n\t token.directives = directives;\n\t } else if (this._input.peek(1) === '/') {\n\t // peek for comment // ...\n\t comment = this.__patterns.comment.read();\n\t token = this._create_token(TOKEN.COMMENT, comment);\n\t }\n\t }\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_string = function(c) {\n\t if (c === '`' || c === \"'\" || c === '\"') {\n\t var resulting_string = this._input.next();\n\t this.has_char_escapes = false;\n\n\t if (c === '`') {\n\t resulting_string += this._read_string_recursive('`', true, '${');\n\t } else {\n\t resulting_string += this._read_string_recursive(c);\n\t }\n\n\t if (this.has_char_escapes && this._options.unescape_strings) {\n\t resulting_string = unescape_string(resulting_string);\n\t }\n\n\t if (this._input.peek() === c) {\n\t resulting_string += this._input.next();\n\t }\n\n\t resulting_string = resulting_string.replace(acorn.allLineBreaks, '\\n');\n\n\t return this._create_token(TOKEN.STRING, resulting_string);\n\t }\n\n\t return null;\n\t};\n\n\tTokenizer.prototype._allow_regexp_or_xml = function(previous_token) {\n\t // regex and xml can only appear in specific locations during parsing\n\t return (previous_token.type === TOKEN.RESERVED && in_array(previous_token.text, ['return', 'case', 'throw', 'else', 'do', 'typeof', 'yield'])) ||\n\t (previous_token.type === TOKEN.END_EXPR && previous_token.text === ')' &&\n\t previous_token.opened.previous.type === TOKEN.RESERVED && in_array(previous_token.opened.previous.text, ['if', 'while', 'for'])) ||\n\t (in_array(previous_token.type, [TOKEN.COMMENT, TOKEN.START_EXPR, TOKEN.START_BLOCK, TOKEN.START,\n\t TOKEN.END_BLOCK, TOKEN.OPERATOR, TOKEN.EQUALS, TOKEN.EOF, TOKEN.SEMICOLON, TOKEN.COMMA\n\t ]));\n\t};\n\n\tTokenizer.prototype._read_regexp = function(c, previous_token) {\n\n\t if (c === '/' && this._allow_regexp_or_xml(previous_token)) {\n\t // handle regexp\n\t //\n\t var resulting_string = this._input.next();\n\t var esc = false;\n\n\t var in_char_class = false;\n\t while (this._input.hasNext() &&\n\t ((esc || in_char_class || this._input.peek() !== c) &&\n\t !this._input.testChar(acorn.newline))) {\n\t resulting_string += this._input.peek();\n\t if (!esc) {\n\t esc = this._input.peek() === '\\\\';\n\t if (this._input.peek() === '[') {\n\t in_char_class = true;\n\t } else if (this._input.peek() === ']') {\n\t in_char_class = false;\n\t }\n\t } else {\n\t esc = false;\n\t }\n\t this._input.next();\n\t }\n\n\t if (this._input.peek() === c) {\n\t resulting_string += this._input.next();\n\n\t // regexps may have modifiers /regexp/MOD , so fetch those, too\n\t // Only [gim] are valid, but if the user puts in garbage, do what we can to take it.\n\t resulting_string += this._input.read(acorn.identifier);\n\t }\n\t return this._create_token(TOKEN.STRING, resulting_string);\n\t }\n\t return null;\n\t};\n\n\tTokenizer.prototype._read_xml = function(c, previous_token) {\n\n\t if (this._options.e4x && c === \"<\" && this._allow_regexp_or_xml(previous_token)) {\n\t var xmlStr = '';\n\t var match = this.__patterns.xml.read_match();\n\t // handle e4x xml literals\n\t //\n\t if (match) {\n\t // Trim root tag to attempt to\n\t var rootTag = match[2].replace(/^{\\s+/, '{').replace(/\\s+}$/, '}');\n\t var isCurlyRoot = rootTag.indexOf('{') === 0;\n\t var depth = 0;\n\t while (match) {\n\t var isEndTag = !!match[1];\n\t var tagName = match[2];\n\t var isSingletonTag = (!!match[match.length - 1]) || (tagName.slice(0, 8) === \"![CDATA[\");\n\t if (!isSingletonTag &&\n\t (tagName === rootTag || (isCurlyRoot && tagName.replace(/^{\\s+/, '{').replace(/\\s+}$/, '}')))) {\n\t if (isEndTag) {\n\t --depth;\n\t } else {\n\t ++depth;\n\t }\n\t }\n\t xmlStr += match[0];\n\t if (depth <= 0) {\n\t break;\n\t }\n\t match = this.__patterns.xml.read_match();\n\t }\n\t // if we didn't close correctly, keep unformatted.\n\t if (!match) {\n\t xmlStr += this._input.match(/[\\s\\S]*/g)[0];\n\t }\n\t xmlStr = xmlStr.replace(acorn.allLineBreaks, '\\n');\n\t return this._create_token(TOKEN.STRING, xmlStr);\n\t }\n\t }\n\n\t return null;\n\t};\n\n\tfunction unescape_string(s) {\n\t // You think that a regex would work for this\n\t // return s.replace(/\\\\x([0-9a-f]{2})/gi, function(match, val) {\n\t // return String.fromCharCode(parseInt(val, 16));\n\t // })\n\t // However, dealing with '\\xff', '\\\\xff', '\\\\\\xff' makes this more fun.\n\t var out = '',\n\t escaped = 0;\n\n\t var input_scan = new InputScanner(s);\n\t var matched = null;\n\n\t while (input_scan.hasNext()) {\n\t // Keep any whitespace, non-slash characters\n\t // also keep slash pairs.\n\t matched = input_scan.match(/([\\s]|[^\\\\]|\\\\\\\\)+/g);\n\n\t if (matched) {\n\t out += matched[0];\n\t }\n\n\t if (input_scan.peek() === '\\\\') {\n\t input_scan.next();\n\t if (input_scan.peek() === 'x') {\n\t matched = input_scan.match(/x([0-9A-Fa-f]{2})/g);\n\t } else if (input_scan.peek() === 'u') {\n\t matched = input_scan.match(/u([0-9A-Fa-f]{4})/g);\n\t } else {\n\t out += '\\\\';\n\t if (input_scan.hasNext()) {\n\t out += input_scan.next();\n\t }\n\t continue;\n\t }\n\n\t // If there's some error decoding, return the original string\n\t if (!matched) {\n\t return s;\n\t }\n\n\t escaped = parseInt(matched[1], 16);\n\n\t if (escaped > 0x7e && escaped <= 0xff && matched[0].indexOf('x') === 0) {\n\t // we bail out on \\x7f..\\xff,\n\t // leaving whole string escaped,\n\t // as it's probably completely binary\n\t return s;\n\t } else if (escaped >= 0x00 && escaped < 0x20) {\n\t // leave 0x00...0x1f escaped\n\t out += '\\\\' + matched[0];\n\t continue;\n\t } else if (escaped === 0x22 || escaped === 0x27 || escaped === 0x5c) {\n\t // single-quote, apostrophe, backslash - escape these\n\t out += '\\\\' + String.fromCharCode(escaped);\n\t } else {\n\t out += String.fromCharCode(escaped);\n\t }\n\t }\n\t }\n\n\t return out;\n\t}\n\n\t// handle string\n\t//\n\tTokenizer.prototype._read_string_recursive = function(delimiter, allow_unescaped_newlines, start_sub) {\n\t var current_char;\n\t var pattern;\n\t if (delimiter === '\\'') {\n\t pattern = this.__patterns.single_quote;\n\t } else if (delimiter === '\"') {\n\t pattern = this.__patterns.double_quote;\n\t } else if (delimiter === '`') {\n\t pattern = this.__patterns.template_text;\n\t } else if (delimiter === '}') {\n\t pattern = this.__patterns.template_expression;\n\t }\n\n\t var resulting_string = pattern.read();\n\t var next = '';\n\t while (this._input.hasNext()) {\n\t next = this._input.next();\n\t if (next === delimiter ||\n\t (!allow_unescaped_newlines && acorn.newline.test(next))) {\n\t this._input.back();\n\t break;\n\t } else if (next === '\\\\' && this._input.hasNext()) {\n\t current_char = this._input.peek();\n\n\t if (current_char === 'x' || current_char === 'u') {\n\t this.has_char_escapes = true;\n\t } else if (current_char === '\\r' && this._input.peek(1) === '\\n') {\n\t this._input.next();\n\t }\n\t next += this._input.next();\n\t } else if (start_sub) {\n\t if (start_sub === '${' && next === '$' && this._input.peek() === '{') {\n\t next += this._input.next();\n\t }\n\n\t if (start_sub === next) {\n\t if (delimiter === '`') {\n\t next += this._read_string_recursive('}', allow_unescaped_newlines, '`');\n\t } else {\n\t next += this._read_string_recursive('`', allow_unescaped_newlines, '${');\n\t }\n\t if (this._input.hasNext()) {\n\t next += this._input.next();\n\t }\n\t }\n\t }\n\t next += pattern.read();\n\t resulting_string += next;\n\t }\n\n\t return resulting_string;\n\t};\n\n\ttokenizer$2.Tokenizer = Tokenizer;\n\ttokenizer$2.TOKEN = TOKEN;\n\ttokenizer$2.positionable_operators = positionable_operators.slice();\n\ttokenizer$2.line_starters = line_starters.slice();\n\treturn tokenizer$2;\n}\n\n/*jshint node:true */\n\nvar hasRequiredBeautifier$2;\n\nfunction requireBeautifier$2 () {\n\tif (hasRequiredBeautifier$2) return beautifier$2;\n\thasRequiredBeautifier$2 = 1;\n\n\tvar Output = requireOutput().Output;\n\tvar Token = requireToken().Token;\n\tvar acorn = requireAcorn();\n\tvar Options = requireOptions$2().Options;\n\tvar Tokenizer = requireTokenizer$1().Tokenizer;\n\tvar line_starters = requireTokenizer$1().line_starters;\n\tvar positionable_operators = requireTokenizer$1().positionable_operators;\n\tvar TOKEN = requireTokenizer$1().TOKEN;\n\n\n\tfunction in_array(what, arr) {\n\t return arr.indexOf(what) !== -1;\n\t}\n\n\tfunction ltrim(s) {\n\t return s.replace(/^\\s+/g, '');\n\t}\n\n\tfunction generateMapFromStrings(list) {\n\t var result = {};\n\t for (var x = 0; x < list.length; x++) {\n\t // make the mapped names underscored instead of dash\n\t result[list[x].replace(/-/g, '_')] = list[x];\n\t }\n\t return result;\n\t}\n\n\tfunction reserved_word(token, word) {\n\t return token && token.type === TOKEN.RESERVED && token.text === word;\n\t}\n\n\tfunction reserved_array(token, words) {\n\t return token && token.type === TOKEN.RESERVED && in_array(token.text, words);\n\t}\n\t// Unsure of what they mean, but they work. Worth cleaning up in future.\n\tvar special_words = ['case', 'return', 'do', 'if', 'throw', 'else', 'await', 'break', 'continue', 'async'];\n\n\tvar validPositionValues = ['before-newline', 'after-newline', 'preserve-newline'];\n\n\t// Generate map from array\n\tvar OPERATOR_POSITION = generateMapFromStrings(validPositionValues);\n\n\tvar OPERATOR_POSITION_BEFORE_OR_PRESERVE = [OPERATOR_POSITION.before_newline, OPERATOR_POSITION.preserve_newline];\n\n\tvar MODE = {\n\t BlockStatement: 'BlockStatement', // 'BLOCK'\n\t Statement: 'Statement', // 'STATEMENT'\n\t ObjectLiteral: 'ObjectLiteral', // 'OBJECT',\n\t ArrayLiteral: 'ArrayLiteral', //'[EXPRESSION]',\n\t ForInitializer: 'ForInitializer', //'(FOR-EXPRESSION)',\n\t Conditional: 'Conditional', //'(COND-EXPRESSION)',\n\t Expression: 'Expression' //'(EXPRESSION)'\n\t};\n\n\tfunction remove_redundant_indentation(output, frame) {\n\t // This implementation is effective but has some issues:\n\t // - can cause line wrap to happen too soon due to indent removal\n\t // after wrap points are calculated\n\t // These issues are minor compared to ugly indentation.\n\n\t if (frame.multiline_frame ||\n\t frame.mode === MODE.ForInitializer ||\n\t frame.mode === MODE.Conditional) {\n\t return;\n\t }\n\n\t // remove one indent from each line inside this section\n\t output.remove_indent(frame.start_line_index);\n\t}\n\n\t// we could use just string.split, but\n\t// IE doesn't like returning empty strings\n\tfunction split_linebreaks(s) {\n\t //return s.split(/\\x0d\\x0a|\\x0a/);\n\n\t s = s.replace(acorn.allLineBreaks, '\\n');\n\t var out = [],\n\t idx = s.indexOf(\"\\n\");\n\t while (idx !== -1) {\n\t out.push(s.substring(0, idx));\n\t s = s.substring(idx + 1);\n\t idx = s.indexOf(\"\\n\");\n\t }\n\t if (s.length) {\n\t out.push(s);\n\t }\n\t return out;\n\t}\n\n\tfunction is_array(mode) {\n\t return mode === MODE.ArrayLiteral;\n\t}\n\n\tfunction is_expression(mode) {\n\t return in_array(mode, [MODE.Expression, MODE.ForInitializer, MODE.Conditional]);\n\t}\n\n\tfunction all_lines_start_with(lines, c) {\n\t for (var i = 0; i < lines.length; i++) {\n\t var line = lines[i].trim();\n\t if (line.charAt(0) !== c) {\n\t return false;\n\t }\n\t }\n\t return true;\n\t}\n\n\tfunction each_line_matches_indent(lines, indent) {\n\t var i = 0,\n\t len = lines.length,\n\t line;\n\t for (; i < len; i++) {\n\t line = lines[i];\n\t // allow empty lines to pass through\n\t if (line && line.indexOf(indent) !== 0) {\n\t return false;\n\t }\n\t }\n\t return true;\n\t}\n\n\n\tfunction Beautifier(source_text, options) {\n\t options = options || {};\n\t this._source_text = source_text || '';\n\n\t this._output = null;\n\t this._tokens = null;\n\t this._last_last_text = null;\n\t this._flags = null;\n\t this._previous_flags = null;\n\n\t this._flag_store = null;\n\t this._options = new Options(options);\n\t}\n\n\tBeautifier.prototype.create_flags = function(flags_base, mode) {\n\t var next_indent_level = 0;\n\t if (flags_base) {\n\t next_indent_level = flags_base.indentation_level;\n\t if (!this._output.just_added_newline() &&\n\t flags_base.line_indent_level > next_indent_level) {\n\t next_indent_level = flags_base.line_indent_level;\n\t }\n\t }\n\n\t var next_flags = {\n\t mode: mode,\n\t parent: flags_base,\n\t last_token: flags_base ? flags_base.last_token : new Token(TOKEN.START_BLOCK, ''), // last token text\n\t last_word: flags_base ? flags_base.last_word : '', // last TOKEN.WORD passed\n\t declaration_statement: false,\n\t declaration_assignment: false,\n\t multiline_frame: false,\n\t inline_frame: false,\n\t if_block: false,\n\t else_block: false,\n\t class_start_block: false, // class A { INSIDE HERE } or class B extends C { INSIDE HERE }\n\t do_block: false,\n\t do_while: false,\n\t import_block: false,\n\t in_case_statement: false, // switch(..){ INSIDE HERE }\n\t in_case: false, // we're on the exact line with \"case 0:\"\n\t case_body: false, // the indented case-action block\n\t case_block: false, // the indented case-action block is wrapped with {}\n\t indentation_level: next_indent_level,\n\t alignment: 0,\n\t line_indent_level: flags_base ? flags_base.line_indent_level : next_indent_level,\n\t start_line_index: this._output.get_line_number(),\n\t ternary_depth: 0\n\t };\n\t return next_flags;\n\t};\n\n\tBeautifier.prototype._reset = function(source_text) {\n\t var baseIndentString = source_text.match(/^[\\t ]*/)[0];\n\n\t this._last_last_text = ''; // pre-last token text\n\t this._output = new Output(this._options, baseIndentString);\n\n\t // If testing the ignore directive, start with output disable set to true\n\t this._output.raw = this._options.test_output_raw;\n\n\n\t // Stack of parsing/formatting states, including MODE.\n\t // We tokenize, parse, and output in an almost purely a forward-only stream of token input\n\t // and formatted output. This makes the beautifier less accurate than full parsers\n\t // but also far more tolerant of syntax errors.\n\t //\n\t // For example, the default mode is MODE.BlockStatement. If we see a '{' we push a new frame of type\n\t // MODE.BlockStatement on the the stack, even though it could be object literal. If we later\n\t // encounter a \":\", we'll switch to to MODE.ObjectLiteral. If we then see a \";\",\n\t // most full parsers would die, but the beautifier gracefully falls back to\n\t // MODE.BlockStatement and continues on.\n\t this._flag_store = [];\n\t this.set_mode(MODE.BlockStatement);\n\t var tokenizer = new Tokenizer(source_text, this._options);\n\t this._tokens = tokenizer.tokenize();\n\t return source_text;\n\t};\n\n\tBeautifier.prototype.beautify = function() {\n\t // if disabled, return the input unchanged.\n\t if (this._options.disabled) {\n\t return this._source_text;\n\t }\n\n\t var sweet_code;\n\t var source_text = this._reset(this._source_text);\n\n\t var eol = this._options.eol;\n\t if (this._options.eol === 'auto') {\n\t eol = '\\n';\n\t if (source_text && acorn.lineBreak.test(source_text || '')) {\n\t eol = source_text.match(acorn.lineBreak)[0];\n\t }\n\t }\n\n\t var current_token = this._tokens.next();\n\t while (current_token) {\n\t this.handle_token(current_token);\n\n\t this._last_last_text = this._flags.last_token.text;\n\t this._flags.last_token = current_token;\n\n\t current_token = this._tokens.next();\n\t }\n\n\t sweet_code = this._output.get_code(eol);\n\n\t return sweet_code;\n\t};\n\n\tBeautifier.prototype.handle_token = function(current_token, preserve_statement_flags) {\n\t if (current_token.type === TOKEN.START_EXPR) {\n\t this.handle_start_expr(current_token);\n\t } else if (current_token.type === TOKEN.END_EXPR) {\n\t this.handle_end_expr(current_token);\n\t } else if (current_token.type === TOKEN.START_BLOCK) {\n\t this.handle_start_block(current_token);\n\t } else if (current_token.type === TOKEN.END_BLOCK) {\n\t this.handle_end_block(current_token);\n\t } else if (current_token.type === TOKEN.WORD) {\n\t this.handle_word(current_token);\n\t } else if (current_token.type === TOKEN.RESERVED) {\n\t this.handle_word(current_token);\n\t } else if (current_token.type === TOKEN.SEMICOLON) {\n\t this.handle_semicolon(current_token);\n\t } else if (current_token.type === TOKEN.STRING) {\n\t this.handle_string(current_token);\n\t } else if (current_token.type === TOKEN.EQUALS) {\n\t this.handle_equals(current_token);\n\t } else if (current_token.type === TOKEN.OPERATOR) {\n\t this.handle_operator(current_token);\n\t } else if (current_token.type === TOKEN.COMMA) {\n\t this.handle_comma(current_token);\n\t } else if (current_token.type === TOKEN.BLOCK_COMMENT) {\n\t this.handle_block_comment(current_token, preserve_statement_flags);\n\t } else if (current_token.type === TOKEN.COMMENT) {\n\t this.handle_comment(current_token, preserve_statement_flags);\n\t } else if (current_token.type === TOKEN.DOT) {\n\t this.handle_dot(current_token);\n\t } else if (current_token.type === TOKEN.EOF) {\n\t this.handle_eof(current_token);\n\t } else if (current_token.type === TOKEN.UNKNOWN) {\n\t this.handle_unknown(current_token, preserve_statement_flags);\n\t } else {\n\t this.handle_unknown(current_token, preserve_statement_flags);\n\t }\n\t};\n\n\tBeautifier.prototype.handle_whitespace_and_comments = function(current_token, preserve_statement_flags) {\n\t var newlines = current_token.newlines;\n\t var keep_whitespace = this._options.keep_array_indentation && is_array(this._flags.mode);\n\n\t if (current_token.comments_before) {\n\t var comment_token = current_token.comments_before.next();\n\t while (comment_token) {\n\t // The cleanest handling of inline comments is to treat them as though they aren't there.\n\t // Just continue formatting and the behavior should be logical.\n\t // Also ignore unknown tokens. Again, this should result in better behavior.\n\t this.handle_whitespace_and_comments(comment_token, preserve_statement_flags);\n\t this.handle_token(comment_token, preserve_statement_flags);\n\t comment_token = current_token.comments_before.next();\n\t }\n\t }\n\n\t if (keep_whitespace) {\n\t for (var i = 0; i < newlines; i += 1) {\n\t this.print_newline(i > 0, preserve_statement_flags);\n\t }\n\t } else {\n\t if (this._options.max_preserve_newlines && newlines > this._options.max_preserve_newlines) {\n\t newlines = this._options.max_preserve_newlines;\n\t }\n\n\t if (this._options.preserve_newlines) {\n\t if (newlines > 1) {\n\t this.print_newline(false, preserve_statement_flags);\n\t for (var j = 1; j < newlines; j += 1) {\n\t this.print_newline(true, preserve_statement_flags);\n\t }\n\t }\n\t }\n\t }\n\n\t};\n\n\tvar newline_restricted_tokens = ['async', 'break', 'continue', 'return', 'throw', 'yield'];\n\n\tBeautifier.prototype.allow_wrap_or_preserved_newline = function(current_token, force_linewrap) {\n\t force_linewrap = (force_linewrap === undefined) ? false : force_linewrap;\n\n\t // Never wrap the first token on a line\n\t if (this._output.just_added_newline()) {\n\t return;\n\t }\n\n\t var shouldPreserveOrForce = (this._options.preserve_newlines && current_token.newlines) || force_linewrap;\n\t var operatorLogicApplies = in_array(this._flags.last_token.text, positionable_operators) ||\n\t in_array(current_token.text, positionable_operators);\n\n\t if (operatorLogicApplies) {\n\t var shouldPrintOperatorNewline = (\n\t in_array(this._flags.last_token.text, positionable_operators) &&\n\t in_array(this._options.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE)\n\t ) ||\n\t in_array(current_token.text, positionable_operators);\n\t shouldPreserveOrForce = shouldPreserveOrForce && shouldPrintOperatorNewline;\n\t }\n\n\t if (shouldPreserveOrForce) {\n\t this.print_newline(false, true);\n\t } else if (this._options.wrap_line_length) {\n\t if (reserved_array(this._flags.last_token, newline_restricted_tokens)) {\n\t // These tokens should never have a newline inserted\n\t // between them and the following expression.\n\t return;\n\t }\n\t this._output.set_wrap_point();\n\t }\n\t};\n\n\tBeautifier.prototype.print_newline = function(force_newline, preserve_statement_flags) {\n\t if (!preserve_statement_flags) {\n\t if (this._flags.last_token.text !== ';' && this._flags.last_token.text !== ',' && this._flags.last_token.text !== '=' && (this._flags.last_token.type !== TOKEN.OPERATOR || this._flags.last_token.text === '--' || this._flags.last_token.text === '++')) {\n\t var next_token = this._tokens.peek();\n\t while (this._flags.mode === MODE.Statement &&\n\t !(this._flags.if_block && reserved_word(next_token, 'else')) &&\n\t !this._flags.do_block) {\n\t this.restore_mode();\n\t }\n\t }\n\t }\n\n\t if (this._output.add_new_line(force_newline)) {\n\t this._flags.multiline_frame = true;\n\t }\n\t};\n\n\tBeautifier.prototype.print_token_line_indentation = function(current_token) {\n\t if (this._output.just_added_newline()) {\n\t if (this._options.keep_array_indentation &&\n\t current_token.newlines &&\n\t (current_token.text === '[' || is_array(this._flags.mode))) {\n\t this._output.current_line.set_indent(-1);\n\t this._output.current_line.push(current_token.whitespace_before);\n\t this._output.space_before_token = false;\n\t } else if (this._output.set_indent(this._flags.indentation_level, this._flags.alignment)) {\n\t this._flags.line_indent_level = this._flags.indentation_level;\n\t }\n\t }\n\t};\n\n\tBeautifier.prototype.print_token = function(current_token) {\n\t if (this._output.raw) {\n\t this._output.add_raw_token(current_token);\n\t return;\n\t }\n\n\t if (this._options.comma_first && current_token.previous && current_token.previous.type === TOKEN.COMMA &&\n\t this._output.just_added_newline()) {\n\t if (this._output.previous_line.last() === ',') {\n\t var popped = this._output.previous_line.pop();\n\t // if the comma was already at the start of the line,\n\t // pull back onto that line and reprint the indentation\n\t if (this._output.previous_line.is_empty()) {\n\t this._output.previous_line.push(popped);\n\t this._output.trim(true);\n\t this._output.current_line.pop();\n\t this._output.trim();\n\t }\n\n\t // add the comma in front of the next token\n\t this.print_token_line_indentation(current_token);\n\t this._output.add_token(',');\n\t this._output.space_before_token = true;\n\t }\n\t }\n\n\t this.print_token_line_indentation(current_token);\n\t this._output.non_breaking_space = true;\n\t this._output.add_token(current_token.text);\n\t if (this._output.previous_token_wrapped) {\n\t this._flags.multiline_frame = true;\n\t }\n\t};\n\n\tBeautifier.prototype.indent = function() {\n\t this._flags.indentation_level += 1;\n\t this._output.set_indent(this._flags.indentation_level, this._flags.alignment);\n\t};\n\n\tBeautifier.prototype.deindent = function() {\n\t if (this._flags.indentation_level > 0 &&\n\t ((!this._flags.parent) || this._flags.indentation_level > this._flags.parent.indentation_level)) {\n\t this._flags.indentation_level -= 1;\n\t this._output.set_indent(this._flags.indentation_level, this._flags.alignment);\n\t }\n\t};\n\n\tBeautifier.prototype.set_mode = function(mode) {\n\t if (this._flags) {\n\t this._flag_store.push(this._flags);\n\t this._previous_flags = this._flags;\n\t } else {\n\t this._previous_flags = this.create_flags(null, mode);\n\t }\n\n\t this._flags = this.create_flags(this._previous_flags, mode);\n\t this._output.set_indent(this._flags.indentation_level, this._flags.alignment);\n\t};\n\n\n\tBeautifier.prototype.restore_mode = function() {\n\t if (this._flag_store.length > 0) {\n\t this._previous_flags = this._flags;\n\t this._flags = this._flag_store.pop();\n\t if (this._previous_flags.mode === MODE.Statement) {\n\t remove_redundant_indentation(this._output, this._previous_flags);\n\t }\n\t this._output.set_indent(this._flags.indentation_level, this._flags.alignment);\n\t }\n\t};\n\n\tBeautifier.prototype.start_of_object_property = function() {\n\t return this._flags.parent.mode === MODE.ObjectLiteral && this._flags.mode === MODE.Statement && (\n\t (this._flags.last_token.text === ':' && this._flags.ternary_depth === 0) || (reserved_array(this._flags.last_token, ['get', 'set'])));\n\t};\n\n\tBeautifier.prototype.start_of_statement = function(current_token) {\n\t var start = false;\n\t start = start || reserved_array(this._flags.last_token, ['var', 'let', 'const']) && current_token.type === TOKEN.WORD;\n\t start = start || reserved_word(this._flags.last_token, 'do');\n\t start = start || (!(this._flags.parent.mode === MODE.ObjectLiteral && this._flags.mode === MODE.Statement)) && reserved_array(this._flags.last_token, newline_restricted_tokens) && !current_token.newlines;\n\t start = start || reserved_word(this._flags.last_token, 'else') &&\n\t !(reserved_word(current_token, 'if') && !current_token.comments_before);\n\t start = start || (this._flags.last_token.type === TOKEN.END_EXPR && (this._previous_flags.mode === MODE.ForInitializer || this._previous_flags.mode === MODE.Conditional));\n\t start = start || (this._flags.last_token.type === TOKEN.WORD && this._flags.mode === MODE.BlockStatement &&\n\t !this._flags.in_case &&\n\t !(current_token.text === '--' || current_token.text === '++') &&\n\t this._last_last_text !== 'function' &&\n\t current_token.type !== TOKEN.WORD && current_token.type !== TOKEN.RESERVED);\n\t start = start || (this._flags.mode === MODE.ObjectLiteral && (\n\t (this._flags.last_token.text === ':' && this._flags.ternary_depth === 0) || reserved_array(this._flags.last_token, ['get', 'set'])));\n\n\t if (start) {\n\t this.set_mode(MODE.Statement);\n\t this.indent();\n\n\t this.handle_whitespace_and_comments(current_token, true);\n\n\t // Issue #276:\n\t // If starting a new statement with [if, for, while, do], push to a new line.\n\t // if (a) if (b) if(c) d(); else e(); else f();\n\t if (!this.start_of_object_property()) {\n\t this.allow_wrap_or_preserved_newline(current_token,\n\t reserved_array(current_token, ['do', 'for', 'if', 'while']));\n\t }\n\t return true;\n\t }\n\t return false;\n\t};\n\n\tBeautifier.prototype.handle_start_expr = function(current_token) {\n\t // The conditional starts the statement if appropriate.\n\t if (!this.start_of_statement(current_token)) {\n\t this.handle_whitespace_and_comments(current_token);\n\t }\n\n\t var next_mode = MODE.Expression;\n\t if (current_token.text === '[') {\n\n\t if (this._flags.last_token.type === TOKEN.WORD || this._flags.last_token.text === ')') {\n\t // this is array index specifier, break immediately\n\t // a[x], fn()[x]\n\t if (reserved_array(this._flags.last_token, line_starters)) {\n\t this._output.space_before_token = true;\n\t }\n\t this.print_token(current_token);\n\t this.set_mode(next_mode);\n\t this.indent();\n\t if (this._options.space_in_paren) {\n\t this._output.space_before_token = true;\n\t }\n\t return;\n\t }\n\n\t next_mode = MODE.ArrayLiteral;\n\t if (is_array(this._flags.mode)) {\n\t if (this._flags.last_token.text === '[' ||\n\t (this._flags.last_token.text === ',' && (this._last_last_text === ']' || this._last_last_text === '}'))) {\n\t // ], [ goes to new line\n\t // }, [ goes to new line\n\t if (!this._options.keep_array_indentation) {\n\t this.print_newline();\n\t }\n\t }\n\t }\n\n\t if (!in_array(this._flags.last_token.type, [TOKEN.START_EXPR, TOKEN.END_EXPR, TOKEN.WORD, TOKEN.OPERATOR, TOKEN.DOT])) {\n\t this._output.space_before_token = true;\n\t }\n\t } else {\n\t if (this._flags.last_token.type === TOKEN.RESERVED) {\n\t if (this._flags.last_token.text === 'for') {\n\t this._output.space_before_token = this._options.space_before_conditional;\n\t next_mode = MODE.ForInitializer;\n\t } else if (in_array(this._flags.last_token.text, ['if', 'while', 'switch'])) {\n\t this._output.space_before_token = this._options.space_before_conditional;\n\t next_mode = MODE.Conditional;\n\t } else if (in_array(this._flags.last_word, ['await', 'async'])) {\n\t // Should be a space between await and an IIFE, or async and an arrow function\n\t this._output.space_before_token = true;\n\t } else if (this._flags.last_token.text === 'import' && current_token.whitespace_before === '') {\n\t this._output.space_before_token = false;\n\t } else if (in_array(this._flags.last_token.text, line_starters) || this._flags.last_token.text === 'catch') {\n\t this._output.space_before_token = true;\n\t }\n\t } else if (this._flags.last_token.type === TOKEN.EQUALS || this._flags.last_token.type === TOKEN.OPERATOR) {\n\t // Support of this kind of newline preservation.\n\t // a = (b &&\n\t // (c || d));\n\t if (!this.start_of_object_property()) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\t } else if (this._flags.last_token.type === TOKEN.WORD) {\n\t this._output.space_before_token = false;\n\n\t // function name() vs function name ()\n\t // function* name() vs function* name ()\n\t // async name() vs async name ()\n\t // In ES6, you can also define the method properties of an object\n\t // var obj = {a: function() {}}\n\t // It can be abbreviated\n\t // var obj = {a() {}}\n\t // var obj = { a() {}} vs var obj = { a () {}}\n\t // var obj = { * a() {}} vs var obj = { * a () {}}\n\t var peek_back_two = this._tokens.peek(-3);\n\t if (this._options.space_after_named_function && peek_back_two) {\n\t // peek starts at next character so -1 is current token\n\t var peek_back_three = this._tokens.peek(-4);\n\t if (reserved_array(peek_back_two, ['async', 'function']) ||\n\t (peek_back_two.text === '*' && reserved_array(peek_back_three, ['async', 'function']))) {\n\t this._output.space_before_token = true;\n\t } else if (this._flags.mode === MODE.ObjectLiteral) {\n\t if ((peek_back_two.text === '{' || peek_back_two.text === ',') ||\n\t (peek_back_two.text === '*' && (peek_back_three.text === '{' || peek_back_three.text === ','))) {\n\t this._output.space_before_token = true;\n\t }\n\t } else if (this._flags.parent && this._flags.parent.class_start_block) {\n\t this._output.space_before_token = true;\n\t }\n\t }\n\t } else {\n\t // Support preserving wrapped arrow function expressions\n\t // a.b('c',\n\t // () => d.e\n\t // )\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\n\t // function() vs function ()\n\t // yield*() vs yield* ()\n\t // function*() vs function* ()\n\t if ((this._flags.last_token.type === TOKEN.RESERVED && (this._flags.last_word === 'function' || this._flags.last_word === 'typeof')) ||\n\t (this._flags.last_token.text === '*' &&\n\t (in_array(this._last_last_text, ['function', 'yield']) ||\n\t (this._flags.mode === MODE.ObjectLiteral && in_array(this._last_last_text, ['{', ',']))))) {\n\t this._output.space_before_token = this._options.space_after_anon_function;\n\t }\n\t }\n\n\t if (this._flags.last_token.text === ';' || this._flags.last_token.type === TOKEN.START_BLOCK) {\n\t this.print_newline();\n\t } else if (this._flags.last_token.type === TOKEN.END_EXPR || this._flags.last_token.type === TOKEN.START_EXPR || this._flags.last_token.type === TOKEN.END_BLOCK || this._flags.last_token.text === '.' || this._flags.last_token.type === TOKEN.COMMA) {\n\t // do nothing on (( and )( and ][ and ]( and .(\n\t // TODO: Consider whether forcing this is required. Review failing tests when removed.\n\t this.allow_wrap_or_preserved_newline(current_token, current_token.newlines);\n\t }\n\n\t this.print_token(current_token);\n\t this.set_mode(next_mode);\n\t if (this._options.space_in_paren) {\n\t this._output.space_before_token = true;\n\t }\n\n\t // In all cases, if we newline while inside an expression it should be indented.\n\t this.indent();\n\t};\n\n\tBeautifier.prototype.handle_end_expr = function(current_token) {\n\t // statements inside expressions are not valid syntax, but...\n\t // statements must all be closed when their container closes\n\t while (this._flags.mode === MODE.Statement) {\n\t this.restore_mode();\n\t }\n\n\t this.handle_whitespace_and_comments(current_token);\n\n\t if (this._flags.multiline_frame) {\n\t this.allow_wrap_or_preserved_newline(current_token,\n\t current_token.text === ']' && is_array(this._flags.mode) && !this._options.keep_array_indentation);\n\t }\n\n\t if (this._options.space_in_paren) {\n\t if (this._flags.last_token.type === TOKEN.START_EXPR && !this._options.space_in_empty_paren) {\n\t // () [] no inner space in empty parens like these, ever, ref #320\n\t this._output.trim();\n\t this._output.space_before_token = false;\n\t } else {\n\t this._output.space_before_token = true;\n\t }\n\t }\n\t this.deindent();\n\t this.print_token(current_token);\n\t this.restore_mode();\n\n\t remove_redundant_indentation(this._output, this._previous_flags);\n\n\t // do {} while () // no statement required after\n\t if (this._flags.do_while && this._previous_flags.mode === MODE.Conditional) {\n\t this._previous_flags.mode = MODE.Expression;\n\t this._flags.do_block = false;\n\t this._flags.do_while = false;\n\n\t }\n\t};\n\n\tBeautifier.prototype.handle_start_block = function(current_token) {\n\t this.handle_whitespace_and_comments(current_token);\n\n\t // Check if this is should be treated as a ObjectLiteral\n\t var next_token = this._tokens.peek();\n\t var second_token = this._tokens.peek(1);\n\t if (this._flags.last_word === 'switch' && this._flags.last_token.type === TOKEN.END_EXPR) {\n\t this.set_mode(MODE.BlockStatement);\n\t this._flags.in_case_statement = true;\n\t } else if (this._flags.case_body) {\n\t this.set_mode(MODE.BlockStatement);\n\t } else if (second_token && (\n\t (in_array(second_token.text, [':', ',']) && in_array(next_token.type, [TOKEN.STRING, TOKEN.WORD, TOKEN.RESERVED])) ||\n\t (in_array(next_token.text, ['get', 'set', '...']) && in_array(second_token.type, [TOKEN.WORD, TOKEN.RESERVED]))\n\t )) {\n\t // We don't support TypeScript,but we didn't break it for a very long time.\n\t // We'll try to keep not breaking it.\n\t if (in_array(this._last_last_text, ['class', 'interface']) && !in_array(second_token.text, [':', ','])) {\n\t this.set_mode(MODE.BlockStatement);\n\t } else {\n\t this.set_mode(MODE.ObjectLiteral);\n\t }\n\t } else if (this._flags.last_token.type === TOKEN.OPERATOR && this._flags.last_token.text === '=>') {\n\t // arrow function: (param1, paramN) => { statements }\n\t this.set_mode(MODE.BlockStatement);\n\t } else if (in_array(this._flags.last_token.type, [TOKEN.EQUALS, TOKEN.START_EXPR, TOKEN.COMMA, TOKEN.OPERATOR]) ||\n\t reserved_array(this._flags.last_token, ['return', 'throw', 'import', 'default'])\n\t ) {\n\t // Detecting shorthand function syntax is difficult by scanning forward,\n\t // so check the surrounding context.\n\t // If the block is being returned, imported, export default, passed as arg,\n\t // assigned with = or assigned in a nested object, treat as an ObjectLiteral.\n\t this.set_mode(MODE.ObjectLiteral);\n\t } else {\n\t this.set_mode(MODE.BlockStatement);\n\t }\n\n\t if (this._flags.last_token) {\n\t if (reserved_array(this._flags.last_token.previous, ['class', 'extends'])) {\n\t this._flags.class_start_block = true;\n\t }\n\t }\n\n\t var empty_braces = !next_token.comments_before && next_token.text === '}';\n\t var empty_anonymous_function = empty_braces && this._flags.last_word === 'function' &&\n\t this._flags.last_token.type === TOKEN.END_EXPR;\n\n\t if (this._options.brace_preserve_inline) // check for inline, set inline_frame if so\n\t {\n\t // search forward for a newline wanted inside this block\n\t var index = 0;\n\t var check_token = null;\n\t this._flags.inline_frame = true;\n\t do {\n\t index += 1;\n\t check_token = this._tokens.peek(index - 1);\n\t if (check_token.newlines) {\n\t this._flags.inline_frame = false;\n\t break;\n\t }\n\t } while (check_token.type !== TOKEN.EOF &&\n\t !(check_token.type === TOKEN.END_BLOCK && check_token.opened === current_token));\n\t }\n\n\t if ((this._options.brace_style === \"expand\" ||\n\t (this._options.brace_style === \"none\" && current_token.newlines)) &&\n\t !this._flags.inline_frame) {\n\t if (this._flags.last_token.type !== TOKEN.OPERATOR &&\n\t (empty_anonymous_function ||\n\t this._flags.last_token.type === TOKEN.EQUALS ||\n\t (reserved_array(this._flags.last_token, special_words) && this._flags.last_token.text !== 'else'))) {\n\t this._output.space_before_token = true;\n\t } else {\n\t this.print_newline(false, true);\n\t }\n\t } else { // collapse || inline_frame\n\t if (is_array(this._previous_flags.mode) && (this._flags.last_token.type === TOKEN.START_EXPR || this._flags.last_token.type === TOKEN.COMMA)) {\n\t if (this._flags.last_token.type === TOKEN.COMMA || this._options.space_in_paren) {\n\t this._output.space_before_token = true;\n\t }\n\n\t if (this._flags.last_token.type === TOKEN.COMMA || (this._flags.last_token.type === TOKEN.START_EXPR && this._flags.inline_frame)) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t this._previous_flags.multiline_frame = this._previous_flags.multiline_frame || this._flags.multiline_frame;\n\t this._flags.multiline_frame = false;\n\t }\n\t }\n\t if (this._flags.last_token.type !== TOKEN.OPERATOR && this._flags.last_token.type !== TOKEN.START_EXPR) {\n\t if (in_array(this._flags.last_token.type, [TOKEN.START_BLOCK, TOKEN.SEMICOLON]) && !this._flags.inline_frame) {\n\t this.print_newline();\n\t } else {\n\t this._output.space_before_token = true;\n\t }\n\t }\n\t }\n\t this.print_token(current_token);\n\t this.indent();\n\n\t // Except for specific cases, open braces are followed by a new line.\n\t if (!empty_braces && !(this._options.brace_preserve_inline && this._flags.inline_frame)) {\n\t this.print_newline();\n\t }\n\t};\n\n\tBeautifier.prototype.handle_end_block = function(current_token) {\n\t // statements must all be closed when their container closes\n\t this.handle_whitespace_and_comments(current_token);\n\n\t while (this._flags.mode === MODE.Statement) {\n\t this.restore_mode();\n\t }\n\n\t var empty_braces = this._flags.last_token.type === TOKEN.START_BLOCK;\n\n\t if (this._flags.inline_frame && !empty_braces) { // try inline_frame (only set if this._options.braces-preserve-inline) first\n\t this._output.space_before_token = true;\n\t } else if (this._options.brace_style === \"expand\") {\n\t if (!empty_braces) {\n\t this.print_newline();\n\t }\n\t } else {\n\t // skip {}\n\t if (!empty_braces) {\n\t if (is_array(this._flags.mode) && this._options.keep_array_indentation) {\n\t // we REALLY need a newline here, but newliner would skip that\n\t this._options.keep_array_indentation = false;\n\t this.print_newline();\n\t this._options.keep_array_indentation = true;\n\n\t } else {\n\t this.print_newline();\n\t }\n\t }\n\t }\n\t this.restore_mode();\n\t this.print_token(current_token);\n\t};\n\n\tBeautifier.prototype.handle_word = function(current_token) {\n\t if (current_token.type === TOKEN.RESERVED) {\n\t if (in_array(current_token.text, ['set', 'get']) && this._flags.mode !== MODE.ObjectLiteral) {\n\t current_token.type = TOKEN.WORD;\n\t } else if (current_token.text === 'import' && in_array(this._tokens.peek().text, ['(', '.'])) {\n\t current_token.type = TOKEN.WORD;\n\t } else if (in_array(current_token.text, ['as', 'from']) && !this._flags.import_block) {\n\t current_token.type = TOKEN.WORD;\n\t } else if (this._flags.mode === MODE.ObjectLiteral) {\n\t var next_token = this._tokens.peek();\n\t if (next_token.text === ':') {\n\t current_token.type = TOKEN.WORD;\n\t }\n\t }\n\t }\n\n\t if (this.start_of_statement(current_token)) {\n\t // The conditional starts the statement if appropriate.\n\t if (reserved_array(this._flags.last_token, ['var', 'let', 'const']) && current_token.type === TOKEN.WORD) {\n\t this._flags.declaration_statement = true;\n\t }\n\t } else if (current_token.newlines && !is_expression(this._flags.mode) &&\n\t (this._flags.last_token.type !== TOKEN.OPERATOR || (this._flags.last_token.text === '--' || this._flags.last_token.text === '++')) &&\n\t this._flags.last_token.type !== TOKEN.EQUALS &&\n\t (this._options.preserve_newlines || !reserved_array(this._flags.last_token, ['var', 'let', 'const', 'set', 'get']))) {\n\t this.handle_whitespace_and_comments(current_token);\n\t this.print_newline();\n\t } else {\n\t this.handle_whitespace_and_comments(current_token);\n\t }\n\n\t if (this._flags.do_block && !this._flags.do_while) {\n\t if (reserved_word(current_token, 'while')) {\n\t // do {} ## while ()\n\t this._output.space_before_token = true;\n\t this.print_token(current_token);\n\t this._output.space_before_token = true;\n\t this._flags.do_while = true;\n\t return;\n\t } else {\n\t // do {} should always have while as the next word.\n\t // if we don't see the expected while, recover\n\t this.print_newline();\n\t this._flags.do_block = false;\n\t }\n\t }\n\n\t // if may be followed by else, or not\n\t // Bare/inline ifs are tricky\n\t // Need to unwind the modes correctly: if (a) if (b) c(); else d(); else e();\n\t if (this._flags.if_block) {\n\t if (!this._flags.else_block && reserved_word(current_token, 'else')) {\n\t this._flags.else_block = true;\n\t } else {\n\t while (this._flags.mode === MODE.Statement) {\n\t this.restore_mode();\n\t }\n\t this._flags.if_block = false;\n\t this._flags.else_block = false;\n\t }\n\t }\n\n\t if (this._flags.in_case_statement && reserved_array(current_token, ['case', 'default'])) {\n\t this.print_newline();\n\t if (!this._flags.case_block && (this._flags.case_body || this._options.jslint_happy)) {\n\t // switch cases following one another\n\t this.deindent();\n\t }\n\t this._flags.case_body = false;\n\n\t this.print_token(current_token);\n\t this._flags.in_case = true;\n\t return;\n\t }\n\n\t if (this._flags.last_token.type === TOKEN.COMMA || this._flags.last_token.type === TOKEN.START_EXPR || this._flags.last_token.type === TOKEN.EQUALS || this._flags.last_token.type === TOKEN.OPERATOR) {\n\t if (!this.start_of_object_property()) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\t }\n\n\t if (reserved_word(current_token, 'function')) {\n\t if (in_array(this._flags.last_token.text, ['}', ';']) ||\n\t (this._output.just_added_newline() && !(in_array(this._flags.last_token.text, ['(', '[', '{', ':', '=', ',']) || this._flags.last_token.type === TOKEN.OPERATOR))) {\n\t // make sure there is a nice clean space of at least one blank line\n\t // before a new function definition\n\t if (!this._output.just_added_blankline() && !current_token.comments_before) {\n\t this.print_newline();\n\t this.print_newline(true);\n\t }\n\t }\n\t if (this._flags.last_token.type === TOKEN.RESERVED || this._flags.last_token.type === TOKEN.WORD) {\n\t if (reserved_array(this._flags.last_token, ['get', 'set', 'new', 'export']) ||\n\t reserved_array(this._flags.last_token, newline_restricted_tokens)) {\n\t this._output.space_before_token = true;\n\t } else if (reserved_word(this._flags.last_token, 'default') && this._last_last_text === 'export') {\n\t this._output.space_before_token = true;\n\t } else if (this._flags.last_token.text === 'declare') {\n\t // accomodates Typescript declare function formatting\n\t this._output.space_before_token = true;\n\t } else {\n\t this.print_newline();\n\t }\n\t } else if (this._flags.last_token.type === TOKEN.OPERATOR || this._flags.last_token.text === '=') {\n\t // foo = function\n\t this._output.space_before_token = true;\n\t } else if (!this._flags.multiline_frame && (is_expression(this._flags.mode) || is_array(this._flags.mode))) ; else {\n\t this.print_newline();\n\t }\n\n\t this.print_token(current_token);\n\t this._flags.last_word = current_token.text;\n\t return;\n\t }\n\n\t var prefix = 'NONE';\n\n\t if (this._flags.last_token.type === TOKEN.END_BLOCK) {\n\n\t if (this._previous_flags.inline_frame) {\n\t prefix = 'SPACE';\n\t } else if (!reserved_array(current_token, ['else', 'catch', 'finally', 'from'])) {\n\t prefix = 'NEWLINE';\n\t } else {\n\t if (this._options.brace_style === \"expand\" ||\n\t this._options.brace_style === \"end-expand\" ||\n\t (this._options.brace_style === \"none\" && current_token.newlines)) {\n\t prefix = 'NEWLINE';\n\t } else {\n\t prefix = 'SPACE';\n\t this._output.space_before_token = true;\n\t }\n\t }\n\t } else if (this._flags.last_token.type === TOKEN.SEMICOLON && this._flags.mode === MODE.BlockStatement) {\n\t // TODO: Should this be for STATEMENT as well?\n\t prefix = 'NEWLINE';\n\t } else if (this._flags.last_token.type === TOKEN.SEMICOLON && is_expression(this._flags.mode)) {\n\t prefix = 'SPACE';\n\t } else if (this._flags.last_token.type === TOKEN.STRING) {\n\t prefix = 'NEWLINE';\n\t } else if (this._flags.last_token.type === TOKEN.RESERVED || this._flags.last_token.type === TOKEN.WORD ||\n\t (this._flags.last_token.text === '*' &&\n\t (in_array(this._last_last_text, ['function', 'yield']) ||\n\t (this._flags.mode === MODE.ObjectLiteral && in_array(this._last_last_text, ['{', ',']))))) {\n\t prefix = 'SPACE';\n\t } else if (this._flags.last_token.type === TOKEN.START_BLOCK) {\n\t if (this._flags.inline_frame) {\n\t prefix = 'SPACE';\n\t } else {\n\t prefix = 'NEWLINE';\n\t }\n\t } else if (this._flags.last_token.type === TOKEN.END_EXPR) {\n\t this._output.space_before_token = true;\n\t prefix = 'NEWLINE';\n\t }\n\n\t if (reserved_array(current_token, line_starters) && this._flags.last_token.text !== ')') {\n\t if (this._flags.inline_frame || this._flags.last_token.text === 'else' || this._flags.last_token.text === 'export') {\n\t prefix = 'SPACE';\n\t } else {\n\t prefix = 'NEWLINE';\n\t }\n\n\t }\n\n\t if (reserved_array(current_token, ['else', 'catch', 'finally'])) {\n\t if ((!(this._flags.last_token.type === TOKEN.END_BLOCK && this._previous_flags.mode === MODE.BlockStatement) ||\n\t this._options.brace_style === \"expand\" ||\n\t this._options.brace_style === \"end-expand\" ||\n\t (this._options.brace_style === \"none\" && current_token.newlines)) &&\n\t !this._flags.inline_frame) {\n\t this.print_newline();\n\t } else {\n\t this._output.trim(true);\n\t var line = this._output.current_line;\n\t // If we trimmed and there's something other than a close block before us\n\t // put a newline back in. Handles '} // comment' scenario.\n\t if (line.last() !== '}') {\n\t this.print_newline();\n\t }\n\t this._output.space_before_token = true;\n\t }\n\t } else if (prefix === 'NEWLINE') {\n\t if (reserved_array(this._flags.last_token, special_words)) {\n\t // no newline between 'return nnn'\n\t this._output.space_before_token = true;\n\t } else if (this._flags.last_token.text === 'declare' && reserved_array(current_token, ['var', 'let', 'const'])) {\n\t // accomodates Typescript declare formatting\n\t this._output.space_before_token = true;\n\t } else if (this._flags.last_token.type !== TOKEN.END_EXPR) {\n\t if ((this._flags.last_token.type !== TOKEN.START_EXPR || !reserved_array(current_token, ['var', 'let', 'const'])) && this._flags.last_token.text !== ':') {\n\t // no need to force newline on 'var': for (var x = 0...)\n\t if (reserved_word(current_token, 'if') && reserved_word(current_token.previous, 'else')) {\n\t // no newline for } else if {\n\t this._output.space_before_token = true;\n\t } else {\n\t this.print_newline();\n\t }\n\t }\n\t } else if (reserved_array(current_token, line_starters) && this._flags.last_token.text !== ')') {\n\t this.print_newline();\n\t }\n\t } else if (this._flags.multiline_frame && is_array(this._flags.mode) && this._flags.last_token.text === ',' && this._last_last_text === '}') {\n\t this.print_newline(); // }, in lists get a newline treatment\n\t } else if (prefix === 'SPACE') {\n\t this._output.space_before_token = true;\n\t }\n\t if (current_token.previous && (current_token.previous.type === TOKEN.WORD || current_token.previous.type === TOKEN.RESERVED)) {\n\t this._output.space_before_token = true;\n\t }\n\t this.print_token(current_token);\n\t this._flags.last_word = current_token.text;\n\n\t if (current_token.type === TOKEN.RESERVED) {\n\t if (current_token.text === 'do') {\n\t this._flags.do_block = true;\n\t } else if (current_token.text === 'if') {\n\t this._flags.if_block = true;\n\t } else if (current_token.text === 'import') {\n\t this._flags.import_block = true;\n\t } else if (this._flags.import_block && reserved_word(current_token, 'from')) {\n\t this._flags.import_block = false;\n\t }\n\t }\n\t};\n\n\tBeautifier.prototype.handle_semicolon = function(current_token) {\n\t if (this.start_of_statement(current_token)) {\n\t // The conditional starts the statement if appropriate.\n\t // Semicolon can be the start (and end) of a statement\n\t this._output.space_before_token = false;\n\t } else {\n\t this.handle_whitespace_and_comments(current_token);\n\t }\n\n\t var next_token = this._tokens.peek();\n\t while (this._flags.mode === MODE.Statement &&\n\t !(this._flags.if_block && reserved_word(next_token, 'else')) &&\n\t !this._flags.do_block) {\n\t this.restore_mode();\n\t }\n\n\t // hacky but effective for the moment\n\t if (this._flags.import_block) {\n\t this._flags.import_block = false;\n\t }\n\t this.print_token(current_token);\n\t};\n\n\tBeautifier.prototype.handle_string = function(current_token) {\n\t if (current_token.text.startsWith(\"`\") && current_token.newlines === 0 && current_token.whitespace_before === '' && (current_token.previous.text === ')' || this._flags.last_token.type === TOKEN.WORD)) ; else if (this.start_of_statement(current_token)) {\n\t // The conditional starts the statement if appropriate.\n\t // One difference - strings want at least a space before\n\t this._output.space_before_token = true;\n\t } else {\n\t this.handle_whitespace_and_comments(current_token);\n\t if (this._flags.last_token.type === TOKEN.RESERVED || this._flags.last_token.type === TOKEN.WORD || this._flags.inline_frame) {\n\t this._output.space_before_token = true;\n\t } else if (this._flags.last_token.type === TOKEN.COMMA || this._flags.last_token.type === TOKEN.START_EXPR || this._flags.last_token.type === TOKEN.EQUALS || this._flags.last_token.type === TOKEN.OPERATOR) {\n\t if (!this.start_of_object_property()) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\t } else if ((current_token.text.startsWith(\"`\") && this._flags.last_token.type === TOKEN.END_EXPR && (current_token.previous.text === ']' || current_token.previous.text === ')') && current_token.newlines === 0)) {\n\t this._output.space_before_token = true;\n\t } else {\n\t this.print_newline();\n\t }\n\t }\n\t this.print_token(current_token);\n\t};\n\n\tBeautifier.prototype.handle_equals = function(current_token) {\n\t if (this.start_of_statement(current_token)) ; else {\n\t this.handle_whitespace_and_comments(current_token);\n\t }\n\n\t if (this._flags.declaration_statement) {\n\t // just got an '=' in a var-line, different formatting/line-breaking, etc will now be done\n\t this._flags.declaration_assignment = true;\n\t }\n\t this._output.space_before_token = true;\n\t this.print_token(current_token);\n\t this._output.space_before_token = true;\n\t};\n\n\tBeautifier.prototype.handle_comma = function(current_token) {\n\t this.handle_whitespace_and_comments(current_token, true);\n\n\t this.print_token(current_token);\n\t this._output.space_before_token = true;\n\t if (this._flags.declaration_statement) {\n\t if (is_expression(this._flags.parent.mode)) {\n\t // do not break on comma, for(var a = 1, b = 2)\n\t this._flags.declaration_assignment = false;\n\t }\n\n\t if (this._flags.declaration_assignment) {\n\t this._flags.declaration_assignment = false;\n\t this.print_newline(false, true);\n\t } else if (this._options.comma_first) {\n\t // for comma-first, we want to allow a newline before the comma\n\t // to turn into a newline after the comma, which we will fixup later\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\t } else if (this._flags.mode === MODE.ObjectLiteral ||\n\t (this._flags.mode === MODE.Statement && this._flags.parent.mode === MODE.ObjectLiteral)) {\n\t if (this._flags.mode === MODE.Statement) {\n\t this.restore_mode();\n\t }\n\n\t if (!this._flags.inline_frame) {\n\t this.print_newline();\n\t }\n\t } else if (this._options.comma_first) {\n\t // EXPR or DO_BLOCK\n\t // for comma-first, we want to allow a newline before the comma\n\t // to turn into a newline after the comma, which we will fixup later\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\t};\n\n\tBeautifier.prototype.handle_operator = function(current_token) {\n\t var isGeneratorAsterisk = current_token.text === '*' &&\n\t (reserved_array(this._flags.last_token, ['function', 'yield']) ||\n\t (in_array(this._flags.last_token.type, [TOKEN.START_BLOCK, TOKEN.COMMA, TOKEN.END_BLOCK, TOKEN.SEMICOLON]))\n\t );\n\t var isUnary = in_array(current_token.text, ['-', '+']) && (\n\t in_array(this._flags.last_token.type, [TOKEN.START_BLOCK, TOKEN.START_EXPR, TOKEN.EQUALS, TOKEN.OPERATOR]) ||\n\t in_array(this._flags.last_token.text, line_starters) ||\n\t this._flags.last_token.text === ','\n\t );\n\n\t if (this.start_of_statement(current_token)) ; else {\n\t var preserve_statement_flags = !isGeneratorAsterisk;\n\t this.handle_whitespace_and_comments(current_token, preserve_statement_flags);\n\t }\n\n\t // hack for actionscript's import .*;\n\t if (current_token.text === '*' && this._flags.last_token.type === TOKEN.DOT) {\n\t this.print_token(current_token);\n\t return;\n\t }\n\n\t if (current_token.text === '::') {\n\t // no spaces around exotic namespacing syntax operator\n\t this.print_token(current_token);\n\t return;\n\t }\n\n\t // Allow line wrapping between operators when operator_position is\n\t // set to before or preserve\n\t if (this._flags.last_token.type === TOKEN.OPERATOR && in_array(this._options.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE)) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\n\t if (current_token.text === ':' && this._flags.in_case) {\n\t this.print_token(current_token);\n\n\t this._flags.in_case = false;\n\t this._flags.case_body = true;\n\t if (this._tokens.peek().type !== TOKEN.START_BLOCK) {\n\t this.indent();\n\t this.print_newline();\n\t this._flags.case_block = false;\n\t } else {\n\t this._flags.case_block = true;\n\t this._output.space_before_token = true;\n\t }\n\t return;\n\t }\n\n\t var space_before = true;\n\t var space_after = true;\n\t var in_ternary = false;\n\t if (current_token.text === ':') {\n\t if (this._flags.ternary_depth === 0) {\n\t // Colon is invalid javascript outside of ternary and object, but do our best to guess what was meant.\n\t space_before = false;\n\t } else {\n\t this._flags.ternary_depth -= 1;\n\t in_ternary = true;\n\t }\n\t } else if (current_token.text === '?') {\n\t this._flags.ternary_depth += 1;\n\t }\n\n\t // let's handle the operator_position option prior to any conflicting logic\n\t if (!isUnary && !isGeneratorAsterisk && this._options.preserve_newlines && in_array(current_token.text, positionable_operators)) {\n\t var isColon = current_token.text === ':';\n\t var isTernaryColon = (isColon && in_ternary);\n\t var isOtherColon = (isColon && !in_ternary);\n\n\t switch (this._options.operator_position) {\n\t case OPERATOR_POSITION.before_newline:\n\t // if the current token is : and it's not a ternary statement then we set space_before to false\n\t this._output.space_before_token = !isOtherColon;\n\n\t this.print_token(current_token);\n\n\t if (!isColon || isTernaryColon) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\n\t this._output.space_before_token = true;\n\t return;\n\n\t case OPERATOR_POSITION.after_newline:\n\t // if the current token is anything but colon, or (via deduction) it's a colon and in a ternary statement,\n\t // then print a newline.\n\n\t this._output.space_before_token = true;\n\n\t if (!isColon || isTernaryColon) {\n\t if (this._tokens.peek().newlines) {\n\t this.print_newline(false, true);\n\t } else {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\t } else {\n\t this._output.space_before_token = false;\n\t }\n\n\t this.print_token(current_token);\n\n\t this._output.space_before_token = true;\n\t return;\n\n\t case OPERATOR_POSITION.preserve_newline:\n\t if (!isOtherColon) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\n\t // if we just added a newline, or the current token is : and it's not a ternary statement,\n\t // then we set space_before to false\n\t space_before = !(this._output.just_added_newline() || isOtherColon);\n\n\t this._output.space_before_token = space_before;\n\t this.print_token(current_token);\n\t this._output.space_before_token = true;\n\t return;\n\t }\n\t }\n\n\t if (isGeneratorAsterisk) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t space_before = false;\n\t var next_token = this._tokens.peek();\n\t space_after = next_token && in_array(next_token.type, [TOKEN.WORD, TOKEN.RESERVED]);\n\t } else if (current_token.text === '...') {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t space_before = this._flags.last_token.type === TOKEN.START_BLOCK;\n\t space_after = false;\n\t } else if (in_array(current_token.text, ['--', '++', '!', '~']) || isUnary) {\n\t // unary operators (and binary +/- pretending to be unary) special cases\n\t if (this._flags.last_token.type === TOKEN.COMMA || this._flags.last_token.type === TOKEN.START_EXPR) {\n\t this.allow_wrap_or_preserved_newline(current_token);\n\t }\n\n\t space_before = false;\n\t space_after = false;\n\n\t // http://www.ecma-international.org/ecma-262/5.1/#sec-7.9.1\n\t // if there is a newline between -- or ++ and anything else we should preserve it.\n\t if (current_token.newlines && (current_token.text === '--' || current_token.text === '++' || current_token.text === '~')) {\n\t var new_line_needed = reserved_array(this._flags.last_token, special_words) && current_token.newlines;\n\t if (new_line_needed && (this._previous_flags.if_block || this._previous_flags.else_block)) {\n\t this.restore_mode();\n\t }\n\t this.print_newline(new_line_needed, true);\n\t }\n\n\t if (this._flags.last_token.text === ';' && is_expression(this._flags.mode)) {\n\t // for (;; ++i)\n\t // ^^^\n\t space_before = true;\n\t }\n\n\t if (this._flags.last_token.type === TOKEN.RESERVED) {\n\t space_before = true;\n\t } else if (this._flags.last_token.type === TOKEN.END_EXPR) {\n\t space_before = !(this._flags.last_token.text === ']' && (current_token.text === '--' || current_token.text === '++'));\n\t } else if (this._flags.last_token.type === TOKEN.OPERATOR) {\n\t // a++ + ++b;\n\t // a - -b\n\t space_before = in_array(current_token.text, ['--', '-', '++', '+']) && in_array(this._flags.last_token.text, ['--', '-', '++', '+']);\n\t // + and - are not unary when preceeded by -- or ++ operator\n\t // a-- + b\n\t // a * +b\n\t // a - -b\n\t if (in_array(current_token.text, ['+', '-']) && in_array(this._flags.last_token.text, ['--', '++'])) {\n\t space_after = true;\n\t }\n\t }\n\n\n\t if (((this._flags.mode === MODE.BlockStatement && !this._flags.inline_frame) || this._flags.mode === MODE.Statement) &&\n\t (this._flags.last_token.text === '{' || this._flags.last_token.text === ';')) {\n\t // { foo; --i }\n\t // foo(); --bar;\n\t this.print_newline();\n\t }\n\t }\n\n\t this._output.space_before_token = this._output.space_before_token || space_before;\n\t this.print_token(current_token);\n\t this._output.space_before_token = space_after;\n\t};\n\n\tBeautifier.prototype.handle_block_comment = function(current_token, preserve_statement_flags) {\n\t if (this._output.raw) {\n\t this._output.add_raw_token(current_token);\n\t if (current_token.directives && current_token.directives.preserve === 'end') {\n\t // If we're testing the raw output behavior, do not allow a directive to turn it off.\n\t this._output.raw = this._options.test_output_raw;\n\t }\n\t return;\n\t }\n\n\t if (current_token.directives) {\n\t this.print_newline(false, preserve_statement_flags);\n\t this.print_token(current_token);\n\t if (current_token.directives.preserve === 'start') {\n\t this._output.raw = true;\n\t }\n\t this.print_newline(false, true);\n\t return;\n\t }\n\n\t // inline block\n\t if (!acorn.newline.test(current_token.text) && !current_token.newlines) {\n\t this._output.space_before_token = true;\n\t this.print_token(current_token);\n\t this._output.space_before_token = true;\n\t return;\n\t } else {\n\t this.print_block_commment(current_token, preserve_statement_flags);\n\t }\n\t};\n\n\tBeautifier.prototype.print_block_commment = function(current_token, preserve_statement_flags) {\n\t var lines = split_linebreaks(current_token.text);\n\t var j; // iterator for this case\n\t var javadoc = false;\n\t var starless = false;\n\t var lastIndent = current_token.whitespace_before;\n\t var lastIndentLength = lastIndent.length;\n\n\t // block comment starts with a new line\n\t this.print_newline(false, preserve_statement_flags);\n\n\t // first line always indented\n\t this.print_token_line_indentation(current_token);\n\t this._output.add_token(lines[0]);\n\t this.print_newline(false, preserve_statement_flags);\n\n\n\t if (lines.length > 1) {\n\t lines = lines.slice(1);\n\t javadoc = all_lines_start_with(lines, '*');\n\t starless = each_line_matches_indent(lines, lastIndent);\n\n\t if (javadoc) {\n\t this._flags.alignment = 1;\n\t }\n\n\t for (j = 0; j < lines.length; j++) {\n\t if (javadoc) {\n\t // javadoc: reformat and re-indent\n\t this.print_token_line_indentation(current_token);\n\t this._output.add_token(ltrim(lines[j]));\n\t } else if (starless && lines[j]) {\n\t // starless: re-indent non-empty content, avoiding trim\n\t this.print_token_line_indentation(current_token);\n\t this._output.add_token(lines[j].substring(lastIndentLength));\n\t } else {\n\t // normal comments output raw\n\t this._output.current_line.set_indent(-1);\n\t this._output.add_token(lines[j]);\n\t }\n\n\t // for comments on their own line or more than one line, make sure there's a new line after\n\t this.print_newline(false, preserve_statement_flags);\n\t }\n\n\t this._flags.alignment = 0;\n\t }\n\t};\n\n\n\tBeautifier.prototype.handle_comment = function(current_token, preserve_statement_flags) {\n\t if (current_token.newlines) {\n\t this.print_newline(false, preserve_statement_flags);\n\t } else {\n\t this._output.trim(true);\n\t }\n\n\t this._output.space_before_token = true;\n\t this.print_token(current_token);\n\t this.print_newline(false, preserve_statement_flags);\n\t};\n\n\tBeautifier.prototype.handle_dot = function(current_token) {\n\t if (this.start_of_statement(current_token)) ; else {\n\t this.handle_whitespace_and_comments(current_token, true);\n\t }\n\n\t if (this._flags.last_token.text.match('^[0-9]+$')) {\n\t this._output.space_before_token = true;\n\t }\n\n\t if (reserved_array(this._flags.last_token, special_words)) {\n\t this._output.space_before_token = false;\n\t } else {\n\t // allow preserved newlines before dots in general\n\t // force newlines on dots after close paren when break_chained - for bar().baz()\n\t this.allow_wrap_or_preserved_newline(current_token,\n\t this._flags.last_token.text === ')' && this._options.break_chained_methods);\n\t }\n\n\t // Only unindent chained method dot if this dot starts a new line.\n\t // Otherwise the automatic extra indentation removal will handle the over indent\n\t if (this._options.unindent_chained_methods && this._output.just_added_newline()) {\n\t this.deindent();\n\t }\n\n\t this.print_token(current_token);\n\t};\n\n\tBeautifier.prototype.handle_unknown = function(current_token, preserve_statement_flags) {\n\t this.print_token(current_token);\n\n\t if (current_token.text[current_token.text.length - 1] === '\\n') {\n\t this.print_newline(false, preserve_statement_flags);\n\t }\n\t};\n\n\tBeautifier.prototype.handle_eof = function(current_token) {\n\t // Unwind any open statements\n\t while (this._flags.mode === MODE.Statement) {\n\t this.restore_mode();\n\t }\n\t this.handle_whitespace_and_comments(current_token);\n\t};\n\n\tbeautifier$2.Beautifier = Beautifier;\n\treturn beautifier$2;\n}\n\n/*jshint node:true */\n\nvar hasRequiredJavascript;\n\nfunction requireJavascript () {\n\tif (hasRequiredJavascript) return javascript.exports;\n\thasRequiredJavascript = 1;\n\n\tvar Beautifier = requireBeautifier$2().Beautifier,\n\t Options = requireOptions$2().Options;\n\n\tfunction js_beautify(js_source_text, options) {\n\t var beautifier = new Beautifier(js_source_text, options);\n\t return beautifier.beautify();\n\t}\n\n\tjavascript.exports = js_beautify;\n\tjavascript.exports.defaultOptions = function() {\n\t return new Options();\n\t};\n\treturn javascript.exports;\n}\n\nvar css = {exports: {}};\n\nvar beautifier$1 = {};\n\nvar options$1 = {};\n\n/*jshint node:true */\n\nvar hasRequiredOptions$1;\n\nfunction requireOptions$1 () {\n\tif (hasRequiredOptions$1) return options$1;\n\thasRequiredOptions$1 = 1;\n\n\tvar BaseOptions = requireOptions$3().Options;\n\n\tfunction Options(options) {\n\t BaseOptions.call(this, options, 'css');\n\n\t this.selector_separator_newline = this._get_boolean('selector_separator_newline', true);\n\t this.newline_between_rules = this._get_boolean('newline_between_rules', true);\n\t var space_around_selector_separator = this._get_boolean('space_around_selector_separator');\n\t this.space_around_combinator = this._get_boolean('space_around_combinator') || space_around_selector_separator;\n\n\t var brace_style_split = this._get_selection_list('brace_style', ['collapse', 'expand', 'end-expand', 'none', 'preserve-inline']);\n\t this.brace_style = 'collapse';\n\t for (var bs = 0; bs < brace_style_split.length; bs++) {\n\t if (brace_style_split[bs] !== 'expand') {\n\t // default to collapse, as only collapse|expand is implemented for now\n\t this.brace_style = 'collapse';\n\t } else {\n\t this.brace_style = brace_style_split[bs];\n\t }\n\t }\n\t}\n\tOptions.prototype = new BaseOptions();\n\n\n\n\toptions$1.Options = Options;\n\treturn options$1;\n}\n\n/*jshint node:true */\n\nvar hasRequiredBeautifier$1;\n\nfunction requireBeautifier$1 () {\n\tif (hasRequiredBeautifier$1) return beautifier$1;\n\thasRequiredBeautifier$1 = 1;\n\n\tvar Options = requireOptions$1().Options;\n\tvar Output = requireOutput().Output;\n\tvar InputScanner = requireInputscanner().InputScanner;\n\tvar Directives = requireDirectives().Directives;\n\n\tvar directives_core = new Directives(/\\/\\*/, /\\*\\//);\n\n\tvar lineBreak = /\\r\\n|[\\r\\n]/;\n\tvar allLineBreaks = /\\r\\n|[\\r\\n]/g;\n\n\t// tokenizer\n\tvar whitespaceChar = /\\s/;\n\tvar whitespacePattern = /(?:\\s|\\n)+/g;\n\tvar block_comment_pattern = /\\/\\*(?:[\\s\\S]*?)((?:\\*\\/)|$)/g;\n\tvar comment_pattern = /\\/\\/(?:[^\\n\\r\\u2028\\u2029]*)/g;\n\n\tfunction Beautifier(source_text, options) {\n\t this._source_text = source_text || '';\n\t // Allow the setting of language/file-type specific options\n\t // with inheritance of overall settings\n\t this._options = new Options(options);\n\t this._ch = null;\n\t this._input = null;\n\n\t // https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule\n\t this.NESTED_AT_RULE = {\n\t \"page\": true,\n\t \"font-face\": true,\n\t \"keyframes\": true,\n\t // also in CONDITIONAL_GROUP_RULE below\n\t \"media\": true,\n\t \"supports\": true,\n\t \"document\": true\n\t };\n\t this.CONDITIONAL_GROUP_RULE = {\n\t \"media\": true,\n\t \"supports\": true,\n\t \"document\": true\n\t };\n\t this.NON_SEMICOLON_NEWLINE_PROPERTY = [\n\t \"grid-template-areas\",\n\t \"grid-template\"\n\t ];\n\n\t}\n\n\tBeautifier.prototype.eatString = function(endChars) {\n\t var result = '';\n\t this._ch = this._input.next();\n\t while (this._ch) {\n\t result += this._ch;\n\t if (this._ch === \"\\\\\") {\n\t result += this._input.next();\n\t } else if (endChars.indexOf(this._ch) !== -1 || this._ch === \"\\n\") {\n\t break;\n\t }\n\t this._ch = this._input.next();\n\t }\n\t return result;\n\t};\n\n\t// Skips any white space in the source text from the current position.\n\t// When allowAtLeastOneNewLine is true, will output new lines for each\n\t// newline character found; if the user has preserve_newlines off, only\n\t// the first newline will be output\n\tBeautifier.prototype.eatWhitespace = function(allowAtLeastOneNewLine) {\n\t var result = whitespaceChar.test(this._input.peek());\n\t var newline_count = 0;\n\t while (whitespaceChar.test(this._input.peek())) {\n\t this._ch = this._input.next();\n\t if (allowAtLeastOneNewLine && this._ch === '\\n') {\n\t if (newline_count === 0 || newline_count < this._options.max_preserve_newlines) {\n\t newline_count++;\n\t this._output.add_new_line(true);\n\t }\n\t }\n\t }\n\t return result;\n\t};\n\n\t// Nested pseudo-class if we are insideRule\n\t// and the next special character found opens\n\t// a new block\n\tBeautifier.prototype.foundNestedPseudoClass = function() {\n\t var openParen = 0;\n\t var i = 1;\n\t var ch = this._input.peek(i);\n\t while (ch) {\n\t if (ch === \"{\") {\n\t return true;\n\t } else if (ch === '(') {\n\t // pseudoclasses can contain ()\n\t openParen += 1;\n\t } else if (ch === ')') {\n\t if (openParen === 0) {\n\t return false;\n\t }\n\t openParen -= 1;\n\t } else if (ch === \";\" || ch === \"}\") {\n\t return false;\n\t }\n\t i++;\n\t ch = this._input.peek(i);\n\t }\n\t return false;\n\t};\n\n\tBeautifier.prototype.print_string = function(output_string) {\n\t this._output.set_indent(this._indentLevel);\n\t this._output.non_breaking_space = true;\n\t this._output.add_token(output_string);\n\t};\n\n\tBeautifier.prototype.preserveSingleSpace = function(isAfterSpace) {\n\t if (isAfterSpace) {\n\t this._output.space_before_token = true;\n\t }\n\t};\n\n\tBeautifier.prototype.indent = function() {\n\t this._indentLevel++;\n\t};\n\n\tBeautifier.prototype.outdent = function() {\n\t if (this._indentLevel > 0) {\n\t this._indentLevel--;\n\t }\n\t};\n\n\t/*_____________________--------------------_____________________*/\n\n\tBeautifier.prototype.beautify = function() {\n\t if (this._options.disabled) {\n\t return this._source_text;\n\t }\n\n\t var source_text = this._source_text;\n\t var eol = this._options.eol;\n\t if (eol === 'auto') {\n\t eol = '\\n';\n\t if (source_text && lineBreak.test(source_text || '')) {\n\t eol = source_text.match(lineBreak)[0];\n\t }\n\t }\n\n\n\t // HACK: newline parsing inconsistent. This brute force normalizes the this._input.\n\t source_text = source_text.replace(allLineBreaks, '\\n');\n\n\t // reset\n\t var baseIndentString = source_text.match(/^[\\t ]*/)[0];\n\n\t this._output = new Output(this._options, baseIndentString);\n\t this._input = new InputScanner(source_text);\n\t this._indentLevel = 0;\n\t this._nestedLevel = 0;\n\n\t this._ch = null;\n\t var parenLevel = 0;\n\n\t var insideRule = false;\n\t // This is the value side of a property value pair (blue in the following ex)\n\t // label { content: blue }\n\t var insidePropertyValue = false;\n\t var enteringConditionalGroup = false;\n\t var insideNonNestedAtRule = false;\n\t var insideScssMap = false;\n\t var topCharacter = this._ch;\n\t var insideNonSemiColonValues = false;\n\t var whitespace;\n\t var isAfterSpace;\n\t var previous_ch;\n\n\t while (true) {\n\t whitespace = this._input.read(whitespacePattern);\n\t isAfterSpace = whitespace !== '';\n\t previous_ch = topCharacter;\n\t this._ch = this._input.next();\n\t if (this._ch === '\\\\' && this._input.hasNext()) {\n\t this._ch += this._input.next();\n\t }\n\t topCharacter = this._ch;\n\n\t if (!this._ch) {\n\t break;\n\t } else if (this._ch === '/' && this._input.peek() === '*') {\n\t // /* css comment */\n\t // Always start block comments on a new line.\n\t // This handles scenarios where a block comment immediately\n\t // follows a property definition on the same line or where\n\t // minified code is being beautified.\n\t this._output.add_new_line();\n\t this._input.back();\n\n\t var comment = this._input.read(block_comment_pattern);\n\n\t // Handle ignore directive\n\t var directives = directives_core.get_directives(comment);\n\t if (directives && directives.ignore === 'start') {\n\t comment += directives_core.readIgnored(this._input);\n\t }\n\n\t this.print_string(comment);\n\n\t // Ensures any new lines following the comment are preserved\n\t this.eatWhitespace(true);\n\n\t // Block comments are followed by a new line so they don't\n\t // share a line with other properties\n\t this._output.add_new_line();\n\t } else if (this._ch === '/' && this._input.peek() === '/') {\n\t // // single line comment\n\t // Preserves the space before a comment\n\t // on the same line as a rule\n\t this._output.space_before_token = true;\n\t this._input.back();\n\t this.print_string(this._input.read(comment_pattern));\n\n\t // Ensures any new lines following the comment are preserved\n\t this.eatWhitespace(true);\n\t } else if (this._ch === '$') {\n\t this.preserveSingleSpace(isAfterSpace);\n\n\t this.print_string(this._ch);\n\n\t // strip trailing space, if present, for hash property checks\n\t var variable = this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);\n\n\t if (variable.match(/[ :]$/)) {\n\t // we have a variable or pseudo-class, add it and insert one space before continuing\n\t variable = this.eatString(\": \").replace(/\\s$/, '');\n\t this.print_string(variable);\n\t this._output.space_before_token = true;\n\t }\n\n\t variable = variable.replace(/\\s$/, '');\n\n\t // might be sass variable\n\t if (parenLevel === 0 && variable.indexOf(':') !== -1) {\n\t insidePropertyValue = true;\n\t this.indent();\n\t }\n\t } else if (this._ch === '@') {\n\t this.preserveSingleSpace(isAfterSpace);\n\n\t // deal with less property mixins @{...}\n\t if (this._input.peek() === '{') {\n\t this.print_string(this._ch + this.eatString('}'));\n\t } else {\n\t this.print_string(this._ch);\n\n\t // strip trailing space, if present, for hash property checks\n\t var variableOrRule = this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);\n\n\t if (variableOrRule.match(/[ :]$/)) {\n\t // we have a variable or pseudo-class, add it and insert one space before continuing\n\t variableOrRule = this.eatString(\": \").replace(/\\s$/, '');\n\t this.print_string(variableOrRule);\n\t this._output.space_before_token = true;\n\t }\n\n\t variableOrRule = variableOrRule.replace(/\\s$/, '');\n\n\t // might be less variable\n\t if (parenLevel === 0 && variableOrRule.indexOf(':') !== -1) {\n\t insidePropertyValue = true;\n\t this.indent();\n\n\t // might be a nesting at-rule\n\t } else if (variableOrRule in this.NESTED_AT_RULE) {\n\t this._nestedLevel += 1;\n\t if (variableOrRule in this.CONDITIONAL_GROUP_RULE) {\n\t enteringConditionalGroup = true;\n\t }\n\n\t // might be a non-nested at-rule\n\t } else if (parenLevel === 0 && !insidePropertyValue) {\n\t insideNonNestedAtRule = true;\n\t }\n\t }\n\t } else if (this._ch === '#' && this._input.peek() === '{') {\n\t this.preserveSingleSpace(isAfterSpace);\n\t this.print_string(this._ch + this.eatString('}'));\n\t } else if (this._ch === '{') {\n\t if (insidePropertyValue) {\n\t insidePropertyValue = false;\n\t this.outdent();\n\t }\n\n\t // non nested at rule becomes nested\n\t insideNonNestedAtRule = false;\n\n\t // when entering conditional groups, only rulesets are allowed\n\t if (enteringConditionalGroup) {\n\t enteringConditionalGroup = false;\n\t insideRule = (this._indentLevel >= this._nestedLevel);\n\t } else {\n\t // otherwise, declarations are also allowed\n\t insideRule = (this._indentLevel >= this._nestedLevel - 1);\n\t }\n\t if (this._options.newline_between_rules && insideRule) {\n\t if (this._output.previous_line && this._output.previous_line.item(-1) !== '{') {\n\t this._output.ensure_empty_line_above('/', ',');\n\t }\n\t }\n\n\t this._output.space_before_token = true;\n\n\t // The difference in print_string and indent order is necessary to indent the '{' correctly\n\t if (this._options.brace_style === 'expand') {\n\t this._output.add_new_line();\n\t this.print_string(this._ch);\n\t this.indent();\n\t this._output.set_indent(this._indentLevel);\n\t } else {\n\t // inside mixin and first param is object\n\t if (previous_ch === '(') {\n\t this._output.space_before_token = false;\n\t } else if (previous_ch !== ',') {\n\t this.indent();\n\t }\n\t this.print_string(this._ch);\n\t }\n\n\t this.eatWhitespace(true);\n\t this._output.add_new_line();\n\t } else if (this._ch === '}') {\n\t this.outdent();\n\t this._output.add_new_line();\n\t if (previous_ch === '{') {\n\t this._output.trim(true);\n\t }\n\n\t if (insidePropertyValue) {\n\t this.outdent();\n\t insidePropertyValue = false;\n\t }\n\t this.print_string(this._ch);\n\t insideRule = false;\n\t if (this._nestedLevel) {\n\t this._nestedLevel--;\n\t }\n\n\t this.eatWhitespace(true);\n\t this._output.add_new_line();\n\n\t if (this._options.newline_between_rules && !this._output.just_added_blankline()) {\n\t if (this._input.peek() !== '}') {\n\t this._output.add_new_line(true);\n\t }\n\t }\n\t if (this._input.peek() === ')') {\n\t this._output.trim(true);\n\t if (this._options.brace_style === \"expand\") {\n\t this._output.add_new_line(true);\n\t }\n\t }\n\t } else if (this._ch === \":\") {\n\n\t for (var i = 0; i < this.NON_SEMICOLON_NEWLINE_PROPERTY.length; i++) {\n\t if (this._input.lookBack(this.NON_SEMICOLON_NEWLINE_PROPERTY[i])) {\n\t insideNonSemiColonValues = true;\n\t break;\n\t }\n\t }\n\n\t if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack(\"&\") || this.foundNestedPseudoClass()) && !this._input.lookBack(\"(\") && !insideNonNestedAtRule && parenLevel === 0) {\n\t // 'property: value' delimiter\n\t // which could be in a conditional group query\n\n\t this.print_string(':');\n\t if (!insidePropertyValue) {\n\t insidePropertyValue = true;\n\t this._output.space_before_token = true;\n\t this.eatWhitespace(true);\n\t this.indent();\n\t }\n\t } else {\n\t // sass/less parent reference don't use a space\n\t // sass nested pseudo-class don't use a space\n\n\t // preserve space before pseudoclasses/pseudoelements, as it means \"in any child\"\n\t if (this._input.lookBack(\" \")) {\n\t this._output.space_before_token = true;\n\t }\n\t if (this._input.peek() === \":\") {\n\t // pseudo-element\n\t this._ch = this._input.next();\n\t this.print_string(\"::\");\n\t } else {\n\t // pseudo-class\n\t this.print_string(':');\n\t }\n\t }\n\t } else if (this._ch === '\"' || this._ch === '\\'') {\n\t var preserveQuoteSpace = previous_ch === '\"' || previous_ch === '\\'';\n\t this.preserveSingleSpace(preserveQuoteSpace || isAfterSpace);\n\t this.print_string(this._ch + this.eatString(this._ch));\n\t this.eatWhitespace(true);\n\t } else if (this._ch === ';') {\n\t insideNonSemiColonValues = false;\n\t if (parenLevel === 0) {\n\t if (insidePropertyValue) {\n\t this.outdent();\n\t insidePropertyValue = false;\n\t }\n\t insideNonNestedAtRule = false;\n\t this.print_string(this._ch);\n\t this.eatWhitespace(true);\n\n\t // This maintains single line comments on the same\n\t // line. Block comments are also affected, but\n\t // a new line is always output before one inside\n\t // that section\n\t if (this._input.peek() !== '/') {\n\t this._output.add_new_line();\n\t }\n\t } else {\n\t this.print_string(this._ch);\n\t this.eatWhitespace(true);\n\t this._output.space_before_token = true;\n\t }\n\t } else if (this._ch === '(') { // may be a url\n\t if (this._input.lookBack(\"url\")) {\n\t this.print_string(this._ch);\n\t this.eatWhitespace();\n\t parenLevel++;\n\t this.indent();\n\t this._ch = this._input.next();\n\t if (this._ch === ')' || this._ch === '\"' || this._ch === '\\'') {\n\t this._input.back();\n\t } else if (this._ch) {\n\t this.print_string(this._ch + this.eatString(')'));\n\t if (parenLevel) {\n\t parenLevel--;\n\t this.outdent();\n\t }\n\t }\n\t } else {\n\t var space_needed = false;\n\t if (this._input.lookBack(\"with\")) {\n\t // look back is not an accurate solution, we need tokens to confirm without whitespaces\n\t space_needed = true;\n\t }\n\t this.preserveSingleSpace(isAfterSpace || space_needed);\n\t this.print_string(this._ch);\n\n\t // handle scss/sass map\n\t if (insidePropertyValue && previous_ch === \"$\" && this._options.selector_separator_newline) {\n\t this._output.add_new_line();\n\t insideScssMap = true;\n\t } else {\n\t this.eatWhitespace();\n\t parenLevel++;\n\t this.indent();\n\t }\n\t }\n\t } else if (this._ch === ')') {\n\t if (parenLevel) {\n\t parenLevel--;\n\t this.outdent();\n\t }\n\t if (insideScssMap && this._input.peek() === \";\" && this._options.selector_separator_newline) {\n\t insideScssMap = false;\n\t this.outdent();\n\t this._output.add_new_line();\n\t }\n\t this.print_string(this._ch);\n\t } else if (this._ch === ',') {\n\t this.print_string(this._ch);\n\t this.eatWhitespace(true);\n\t if (this._options.selector_separator_newline && (!insidePropertyValue || insideScssMap) && parenLevel === 0 && !insideNonNestedAtRule) {\n\t this._output.add_new_line();\n\t } else {\n\t this._output.space_before_token = true;\n\t }\n\t } else if ((this._ch === '>' || this._ch === '+' || this._ch === '~') && !insidePropertyValue && parenLevel === 0) {\n\t //handle combinator spacing\n\t if (this._options.space_around_combinator) {\n\t this._output.space_before_token = true;\n\t this.print_string(this._ch);\n\t this._output.space_before_token = true;\n\t } else {\n\t this.print_string(this._ch);\n\t this.eatWhitespace();\n\t // squash extra whitespace\n\t if (this._ch && whitespaceChar.test(this._ch)) {\n\t this._ch = '';\n\t }\n\t }\n\t } else if (this._ch === ']') {\n\t this.print_string(this._ch);\n\t } else if (this._ch === '[') {\n\t this.preserveSingleSpace(isAfterSpace);\n\t this.print_string(this._ch);\n\t } else if (this._ch === '=') { // no whitespace before or after\n\t this.eatWhitespace();\n\t this.print_string('=');\n\t if (whitespaceChar.test(this._ch)) {\n\t this._ch = '';\n\t }\n\t } else if (this._ch === '!' && !this._input.lookBack(\"\\\\\")) { // !important\n\t this._output.space_before_token = true;\n\t this.print_string(this._ch);\n\t } else {\n\t var preserveAfterSpace = previous_ch === '\"' || previous_ch === '\\'';\n\t this.preserveSingleSpace(preserveAfterSpace || isAfterSpace);\n\t this.print_string(this._ch);\n\n\t if (!this._output.just_added_newline() && this._input.peek() === '\\n' && insideNonSemiColonValues) {\n\t this._output.add_new_line();\n\t }\n\t }\n\t }\n\n\t var sweetCode = this._output.get_code(eol);\n\n\t return sweetCode;\n\t};\n\n\tbeautifier$1.Beautifier = Beautifier;\n\treturn beautifier$1;\n}\n\n/*jshint node:true */\n\nvar hasRequiredCss;\n\nfunction requireCss () {\n\tif (hasRequiredCss) return css.exports;\n\thasRequiredCss = 1;\n\n\tvar Beautifier = requireBeautifier$1().Beautifier,\n\t Options = requireOptions$1().Options;\n\n\tfunction css_beautify(source_text, options) {\n\t var beautifier = new Beautifier(source_text, options);\n\t return beautifier.beautify();\n\t}\n\n\tcss.exports = css_beautify;\n\tcss.exports.defaultOptions = function() {\n\t return new Options();\n\t};\n\treturn css.exports;\n}\n\nvar html = {exports: {}};\n\nvar beautifier = {};\n\nvar options = {};\n\n/*jshint node:true */\n\nvar hasRequiredOptions;\n\nfunction requireOptions () {\n\tif (hasRequiredOptions) return options;\n\thasRequiredOptions = 1;\n\n\tvar BaseOptions = requireOptions$3().Options;\n\n\tfunction Options(options) {\n\t BaseOptions.call(this, options, 'html');\n\t if (this.templating.length === 1 && this.templating[0] === 'auto') {\n\t this.templating = ['django', 'erb', 'handlebars', 'php'];\n\t }\n\n\t this.indent_inner_html = this._get_boolean('indent_inner_html');\n\t this.indent_body_inner_html = this._get_boolean('indent_body_inner_html', true);\n\t this.indent_head_inner_html = this._get_boolean('indent_head_inner_html', true);\n\n\t this.indent_handlebars = this._get_boolean('indent_handlebars', true);\n\t this.wrap_attributes = this._get_selection('wrap_attributes',\n\t ['auto', 'force', 'force-aligned', 'force-expand-multiline', 'aligned-multiple', 'preserve', 'preserve-aligned']);\n\t this.wrap_attributes_min_attrs = this._get_number('wrap_attributes_min_attrs', 2);\n\t this.wrap_attributes_indent_size = this._get_number('wrap_attributes_indent_size', this.indent_size);\n\t this.extra_liners = this._get_array('extra_liners', ['head', 'body', '/html']);\n\n\t // Block vs inline elements\n\t // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\n\t // https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements\n\t // https://www.w3.org/TR/html5/dom.html#phrasing-content\n\t this.inline = this._get_array('inline', [\n\t 'a', 'abbr', 'area', 'audio', 'b', 'bdi', 'bdo', 'br', 'button', 'canvas', 'cite',\n\t 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'i', 'iframe', 'img',\n\t 'input', 'ins', 'kbd', 'keygen', 'label', 'map', 'mark', 'math', 'meter', 'noscript',\n\t 'object', 'output', 'progress', 'q', 'ruby', 's', 'samp', /* 'script', */ 'select', 'small',\n\t 'span', 'strong', 'sub', 'sup', 'svg', 'template', 'textarea', 'time', 'u', 'var',\n\t 'video', 'wbr', 'text',\n\t // obsolete inline tags\n\t 'acronym', 'big', 'strike', 'tt'\n\t ]);\n\t this.inline_custom_elements = this._get_boolean('inline_custom_elements', true);\n\t this.void_elements = this._get_array('void_elements', [\n\t // HTLM void elements - aka self-closing tags - aka singletons\n\t // https://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n\t 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen',\n\t 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr',\n\t // NOTE: Optional tags are too complex for a simple list\n\t // they are hard coded in _do_optional_end_element\n\n\t // Doctype and xml elements\n\t '!doctype', '?xml',\n\n\t // obsolete tags\n\t // basefont: https://www.computerhope.com/jargon/h/html-basefont-tag.htm\n\t // isndex: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/isindex\n\t 'basefont', 'isindex'\n\t ]);\n\t this.unformatted = this._get_array('unformatted', []);\n\t this.content_unformatted = this._get_array('content_unformatted', [\n\t 'pre', 'textarea'\n\t ]);\n\t this.unformatted_content_delimiter = this._get_characters('unformatted_content_delimiter');\n\t this.indent_scripts = this._get_selection('indent_scripts', ['normal', 'keep', 'separate']);\n\n\t}\n\tOptions.prototype = new BaseOptions();\n\n\n\n\toptions.Options = Options;\n\treturn options;\n}\n\nvar tokenizer = {};\n\n/*jshint node:true */\n\nvar hasRequiredTokenizer;\n\nfunction requireTokenizer () {\n\tif (hasRequiredTokenizer) return tokenizer;\n\thasRequiredTokenizer = 1;\n\n\tvar BaseTokenizer = requireTokenizer$2().Tokenizer;\n\tvar BASETOKEN = requireTokenizer$2().TOKEN;\n\tvar Directives = requireDirectives().Directives;\n\tvar TemplatablePattern = requireTemplatablepattern().TemplatablePattern;\n\tvar Pattern = requirePattern().Pattern;\n\n\tvar TOKEN = {\n\t TAG_OPEN: 'TK_TAG_OPEN',\n\t TAG_CLOSE: 'TK_TAG_CLOSE',\n\t ATTRIBUTE: 'TK_ATTRIBUTE',\n\t EQUALS: 'TK_EQUALS',\n\t VALUE: 'TK_VALUE',\n\t COMMENT: 'TK_COMMENT',\n\t TEXT: 'TK_TEXT',\n\t UNKNOWN: 'TK_UNKNOWN',\n\t START: BASETOKEN.START,\n\t RAW: BASETOKEN.RAW,\n\t EOF: BASETOKEN.EOF\n\t};\n\n\tvar directives_core = new Directives(/<\\!--/, /-->/);\n\n\tvar Tokenizer = function(input_string, options) {\n\t BaseTokenizer.call(this, input_string, options);\n\t this._current_tag_name = '';\n\n\t // Words end at whitespace or when a tag starts\n\t // if we are indenting handlebars, they are considered tags\n\t var templatable_reader = new TemplatablePattern(this._input).read_options(this._options);\n\t var pattern_reader = new Pattern(this._input);\n\n\t this.__patterns = {\n\t word: templatable_reader.until(/[\\n\\r\\t <]/),\n\t single_quote: templatable_reader.until_after(/'/),\n\t double_quote: templatable_reader.until_after(/\"/),\n\t attribute: templatable_reader.until(/[\\n\\r\\t =>]|\\/>/),\n\t element_name: templatable_reader.until(/[\\n\\r\\t >\\/]/),\n\n\t handlebars_comment: pattern_reader.starting_with(/{{!--/).until_after(/--}}/),\n\t handlebars: pattern_reader.starting_with(/{{/).until_after(/}}/),\n\t handlebars_open: pattern_reader.until(/[\\n\\r\\t }]/),\n\t handlebars_raw_close: pattern_reader.until(/}}/),\n\t comment: pattern_reader.starting_with(/<!--/).until_after(/-->/),\n\t cdata: pattern_reader.starting_with(/<!\\[CDATA\\[/).until_after(/]]>/),\n\t // https://en.wikipedia.org/wiki/Conditional_comment\n\t conditional_comment: pattern_reader.starting_with(/<!\\[/).until_after(/]>/),\n\t processing: pattern_reader.starting_with(/<\\?/).until_after(/\\?>/)\n\t };\n\n\t if (this._options.indent_handlebars) {\n\t this.__patterns.word = this.__patterns.word.exclude('handlebars');\n\t }\n\n\t this._unformatted_content_delimiter = null;\n\n\t if (this._options.unformatted_content_delimiter) {\n\t var literal_regexp = this._input.get_literal_regexp(this._options.unformatted_content_delimiter);\n\t this.__patterns.unformatted_content_delimiter =\n\t pattern_reader.matching(literal_regexp)\n\t .until_after(literal_regexp);\n\t }\n\t};\n\tTokenizer.prototype = new BaseTokenizer();\n\n\tTokenizer.prototype._is_comment = function(current_token) { // jshint unused:false\n\t return false; //current_token.type === TOKEN.COMMENT || current_token.type === TOKEN.UNKNOWN;\n\t};\n\n\tTokenizer.prototype._is_opening = function(current_token) {\n\t return current_token.type === TOKEN.TAG_OPEN;\n\t};\n\n\tTokenizer.prototype._is_closing = function(current_token, open_token) {\n\t return current_token.type === TOKEN.TAG_CLOSE &&\n\t (open_token && (\n\t ((current_token.text === '>' || current_token.text === '/>') && open_token.text[0] === '<') ||\n\t (current_token.text === '}}' && open_token.text[0] === '{' && open_token.text[1] === '{')));\n\t};\n\n\tTokenizer.prototype._reset = function() {\n\t this._current_tag_name = '';\n\t};\n\n\tTokenizer.prototype._get_next_token = function(previous_token, open_token) { // jshint unused:false\n\t var token = null;\n\t this._readWhitespace();\n\t var c = this._input.peek();\n\n\t if (c === null) {\n\t return this._create_token(TOKEN.EOF, '');\n\t }\n\n\t token = token || this._read_open_handlebars(c, open_token);\n\t token = token || this._read_attribute(c, previous_token, open_token);\n\t token = token || this._read_close(c, open_token);\n\t token = token || this._read_raw_content(c, previous_token, open_token);\n\t token = token || this._read_content_word(c);\n\t token = token || this._read_comment_or_cdata(c);\n\t token = token || this._read_processing(c);\n\t token = token || this._read_open(c, open_token);\n\t token = token || this._create_token(TOKEN.UNKNOWN, this._input.next());\n\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_comment_or_cdata = function(c) { // jshint unused:false\n\t var token = null;\n\t var resulting_string = null;\n\t var directives = null;\n\n\t if (c === '<') {\n\t var peek1 = this._input.peek(1);\n\t // We treat all comments as literals, even more than preformatted tags\n\t // we only look for the appropriate closing marker\n\t if (peek1 === '!') {\n\t resulting_string = this.__patterns.comment.read();\n\n\t // only process directive on html comments\n\t if (resulting_string) {\n\t directives = directives_core.get_directives(resulting_string);\n\t if (directives && directives.ignore === 'start') {\n\t resulting_string += directives_core.readIgnored(this._input);\n\t }\n\t } else {\n\t resulting_string = this.__patterns.cdata.read();\n\t }\n\t }\n\n\t if (resulting_string) {\n\t token = this._create_token(TOKEN.COMMENT, resulting_string);\n\t token.directives = directives;\n\t }\n\t }\n\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_processing = function(c) { // jshint unused:false\n\t var token = null;\n\t var resulting_string = null;\n\t var directives = null;\n\n\t if (c === '<') {\n\t var peek1 = this._input.peek(1);\n\t if (peek1 === '!' || peek1 === '?') {\n\t resulting_string = this.__patterns.conditional_comment.read();\n\t resulting_string = resulting_string || this.__patterns.processing.read();\n\t }\n\n\t if (resulting_string) {\n\t token = this._create_token(TOKEN.COMMENT, resulting_string);\n\t token.directives = directives;\n\t }\n\t }\n\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_open = function(c, open_token) {\n\t var resulting_string = null;\n\t var token = null;\n\t if (!open_token) {\n\t if (c === '<') {\n\n\t resulting_string = this._input.next();\n\t if (this._input.peek() === '/') {\n\t resulting_string += this._input.next();\n\t }\n\t resulting_string += this.__patterns.element_name.read();\n\t token = this._create_token(TOKEN.TAG_OPEN, resulting_string);\n\t }\n\t }\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_open_handlebars = function(c, open_token) {\n\t var resulting_string = null;\n\t var token = null;\n\t if (!open_token) {\n\t if (this._options.indent_handlebars && c === '{' && this._input.peek(1) === '{') {\n\t if (this._input.peek(2) === '!') {\n\t resulting_string = this.__patterns.handlebars_comment.read();\n\t resulting_string = resulting_string || this.__patterns.handlebars.read();\n\t token = this._create_token(TOKEN.COMMENT, resulting_string);\n\t } else {\n\t resulting_string = this.__patterns.handlebars_open.read();\n\t token = this._create_token(TOKEN.TAG_OPEN, resulting_string);\n\t }\n\t }\n\t }\n\t return token;\n\t};\n\n\n\tTokenizer.prototype._read_close = function(c, open_token) {\n\t var resulting_string = null;\n\t var token = null;\n\t if (open_token) {\n\t if (open_token.text[0] === '<' && (c === '>' || (c === '/' && this._input.peek(1) === '>'))) {\n\t resulting_string = this._input.next();\n\t if (c === '/') { // for close tag \"/>\"\n\t resulting_string += this._input.next();\n\t }\n\t token = this._create_token(TOKEN.TAG_CLOSE, resulting_string);\n\t } else if (open_token.text[0] === '{' && c === '}' && this._input.peek(1) === '}') {\n\t this._input.next();\n\t this._input.next();\n\t token = this._create_token(TOKEN.TAG_CLOSE, '}}');\n\t }\n\t }\n\n\t return token;\n\t};\n\n\tTokenizer.prototype._read_attribute = function(c, previous_token, open_token) {\n\t var token = null;\n\t var resulting_string = '';\n\t if (open_token && open_token.text[0] === '<') {\n\n\t if (c === '=') {\n\t token = this._create_token(TOKEN.EQUALS, this._input.next());\n\t } else if (c === '\"' || c === \"'\") {\n\t var content = this._input.next();\n\t if (c === '\"') {\n\t content += this.__patterns.double_quote.read();\n\t } else {\n\t content += this.__patterns.single_quote.read();\n\t }\n\t token = this._create_token(TOKEN.VALUE, content);\n\t } else {\n\t resulting_string = this.__patterns.attribute.read();\n\n\t if (resulting_string) {\n\t if (previous_token.type === TOKEN.EQUALS) {\n\t token = this._create_token(TOKEN.VALUE, resulting_string);\n\t } else {\n\t token = this._create_token(TOKEN.ATTRIBUTE, resulting_string);\n\t }\n\t }\n\t }\n\t }\n\t return token;\n\t};\n\n\tTokenizer.prototype._is_content_unformatted = function(tag_name) {\n\t // void_elements have no content and so cannot have unformatted content\n\t // script and style tags should always be read as unformatted content\n\t // finally content_unformatted and unformatted element contents are unformatted\n\t return this._options.void_elements.indexOf(tag_name) === -1 &&\n\t (this._options.content_unformatted.indexOf(tag_name) !== -1 ||\n\t this._options.unformatted.indexOf(tag_name) !== -1);\n\t};\n\n\n\tTokenizer.prototype._read_raw_content = function(c, previous_token, open_token) { // jshint unused:false\n\t var resulting_string = '';\n\t if (open_token && open_token.text[0] === '{') {\n\t resulting_string = this.__patterns.handlebars_raw_close.read();\n\t } else if (previous_token.type === TOKEN.TAG_CLOSE &&\n\t previous_token.opened.text[0] === '<' && previous_token.text[0] !== '/') {\n\t // ^^ empty tag has no content \n\t var tag_name = previous_token.opened.text.substr(1).toLowerCase();\n\t if (tag_name === 'script' || tag_name === 'style') {\n\t // Script and style tags are allowed to have comments wrapping their content\n\t // or just have regular content.\n\t var token = this._read_comment_or_cdata(c);\n\t if (token) {\n\t token.type = TOKEN.TEXT;\n\t return token;\n\t }\n\t resulting_string = this._input.readUntil(new RegExp('</' + tag_name + '[\\\\n\\\\r\\\\t ]*?>', 'ig'));\n\t } else if (this._is_content_unformatted(tag_name)) {\n\n\t resulting_string = this._input.readUntil(new RegExp('</' + tag_name + '[\\\\n\\\\r\\\\t ]*?>', 'ig'));\n\t }\n\t }\n\n\t if (resulting_string) {\n\t return this._create_token(TOKEN.TEXT, resulting_string);\n\t }\n\n\t return null;\n\t};\n\n\tTokenizer.prototype._read_content_word = function(c) {\n\t var resulting_string = '';\n\t if (this._options.unformatted_content_delimiter) {\n\t if (c === this._options.unformatted_content_delimiter[0]) {\n\t resulting_string = this.__patterns.unformatted_content_delimiter.read();\n\t }\n\t }\n\n\t if (!resulting_string) {\n\t resulting_string = this.__patterns.word.read();\n\t }\n\t if (resulting_string) {\n\t return this._create_token(TOKEN.TEXT, resulting_string);\n\t }\n\t};\n\n\ttokenizer.Tokenizer = Tokenizer;\n\ttokenizer.TOKEN = TOKEN;\n\treturn tokenizer;\n}\n\n/*jshint node:true */\n\nvar hasRequiredBeautifier;\n\nfunction requireBeautifier () {\n\tif (hasRequiredBeautifier) return beautifier;\n\thasRequiredBeautifier = 1;\n\n\tvar Options = requireOptions().Options;\n\tvar Output = requireOutput().Output;\n\tvar Tokenizer = requireTokenizer().Tokenizer;\n\tvar TOKEN = requireTokenizer().TOKEN;\n\n\tvar lineBreak = /\\r\\n|[\\r\\n]/;\n\tvar allLineBreaks = /\\r\\n|[\\r\\n]/g;\n\n\tvar Printer = function(options, base_indent_string) { //handles input/output and some other printing functions\n\n\t this.indent_level = 0;\n\t this.alignment_size = 0;\n\t this.max_preserve_newlines = options.max_preserve_newlines;\n\t this.preserve_newlines = options.preserve_newlines;\n\n\t this._output = new Output(options, base_indent_string);\n\n\t};\n\n\tPrinter.prototype.current_line_has_match = function(pattern) {\n\t return this._output.current_line.has_match(pattern);\n\t};\n\n\tPrinter.prototype.set_space_before_token = function(value, non_breaking) {\n\t this._output.space_before_token = value;\n\t this._output.non_breaking_space = non_breaking;\n\t};\n\n\tPrinter.prototype.set_wrap_point = function() {\n\t this._output.set_indent(this.indent_level, this.alignment_size);\n\t this._output.set_wrap_point();\n\t};\n\n\n\tPrinter.prototype.add_raw_token = function(token) {\n\t this._output.add_raw_token(token);\n\t};\n\n\tPrinter.prototype.print_preserved_newlines = function(raw_token) {\n\t var newlines = 0;\n\t if (raw_token.type !== TOKEN.TEXT && raw_token.previous.type !== TOKEN.TEXT) {\n\t newlines = raw_token.newlines ? 1 : 0;\n\t }\n\n\t if (this.preserve_newlines) {\n\t newlines = raw_token.newlines < this.max_preserve_newlines + 1 ? raw_token.newlines : this.max_preserve_newlines + 1;\n\t }\n\t for (var n = 0; n < newlines; n++) {\n\t this.print_newline(n > 0);\n\t }\n\n\t return newlines !== 0;\n\t};\n\n\tPrinter.prototype.traverse_whitespace = function(raw_token) {\n\t if (raw_token.whitespace_before || raw_token.newlines) {\n\t if (!this.print_preserved_newlines(raw_token)) {\n\t this._output.space_before_token = true;\n\t }\n\t return true;\n\t }\n\t return false;\n\t};\n\n\tPrinter.prototype.previous_token_wrapped = function() {\n\t return this._output.previous_token_wrapped;\n\t};\n\n\tPrinter.prototype.print_newline = function(force) {\n\t this._output.add_new_line(force);\n\t};\n\n\tPrinter.prototype.print_token = function(token) {\n\t if (token.text) {\n\t this._output.set_indent(this.indent_level, this.alignment_size);\n\t this._output.add_token(token.text);\n\t }\n\t};\n\n\tPrinter.prototype.indent = function() {\n\t this.indent_level++;\n\t};\n\n\tPrinter.prototype.get_full_indent = function(level) {\n\t level = this.indent_level + (level || 0);\n\t if (level < 1) {\n\t return '';\n\t }\n\n\t return this._output.get_indent_string(level);\n\t};\n\n\tvar get_type_attribute = function(start_token) {\n\t var result = null;\n\t var raw_token = start_token.next;\n\n\t // Search attributes for a type attribute\n\t while (raw_token.type !== TOKEN.EOF && start_token.closed !== raw_token) {\n\t if (raw_token.type === TOKEN.ATTRIBUTE && raw_token.text === 'type') {\n\t if (raw_token.next && raw_token.next.type === TOKEN.EQUALS &&\n\t raw_token.next.next && raw_token.next.next.type === TOKEN.VALUE) {\n\t result = raw_token.next.next.text;\n\t }\n\t break;\n\t }\n\t raw_token = raw_token.next;\n\t }\n\n\t return result;\n\t};\n\n\tvar get_custom_beautifier_name = function(tag_check, raw_token) {\n\t var typeAttribute = null;\n\t var result = null;\n\n\t if (!raw_token.closed) {\n\t return null;\n\t }\n\n\t if (tag_check === 'script') {\n\t typeAttribute = 'text/javascript';\n\t } else if (tag_check === 'style') {\n\t typeAttribute = 'text/css';\n\t }\n\n\t typeAttribute = get_type_attribute(raw_token) || typeAttribute;\n\n\t // For script and style tags that have a type attribute, only enable custom beautifiers for matching values\n\t // For those without a type attribute use default;\n\t if (typeAttribute.search('text/css') > -1) {\n\t result = 'css';\n\t } else if (typeAttribute.search(/module|((text|application|dojo)\\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\\+)?json|method|aspect))/) > -1) {\n\t result = 'javascript';\n\t } else if (typeAttribute.search(/(text|application|dojo)\\/(x-)?(html)/) > -1) {\n\t result = 'html';\n\t } else if (typeAttribute.search(/test\\/null/) > -1) {\n\t // Test only mime-type for testing the beautifier when null is passed as beautifing function\n\t result = 'null';\n\t }\n\n\t return result;\n\t};\n\n\tfunction in_array(what, arr) {\n\t return arr.indexOf(what) !== -1;\n\t}\n\n\tfunction TagFrame(parent, parser_token, indent_level) {\n\t this.parent = parent || null;\n\t this.tag = parser_token ? parser_token.tag_name : '';\n\t this.indent_level = indent_level || 0;\n\t this.parser_token = parser_token || null;\n\t}\n\n\tfunction TagStack(printer) {\n\t this._printer = printer;\n\t this._current_frame = null;\n\t}\n\n\tTagStack.prototype.get_parser_token = function() {\n\t return this._current_frame ? this._current_frame.parser_token : null;\n\t};\n\n\tTagStack.prototype.record_tag = function(parser_token) { //function to record a tag and its parent in this.tags Object\n\t var new_frame = new TagFrame(this._current_frame, parser_token, this._printer.indent_level);\n\t this._current_frame = new_frame;\n\t};\n\n\tTagStack.prototype._try_pop_frame = function(frame) { //function to retrieve the opening tag to the corresponding closer\n\t var parser_token = null;\n\n\t if (frame) {\n\t parser_token = frame.parser_token;\n\t this._printer.indent_level = frame.indent_level;\n\t this._current_frame = frame.parent;\n\t }\n\n\t return parser_token;\n\t};\n\n\tTagStack.prototype._get_frame = function(tag_list, stop_list) { //function to retrieve the opening tag to the corresponding closer\n\t var frame = this._current_frame;\n\n\t while (frame) { //till we reach '' (the initial value);\n\t if (tag_list.indexOf(frame.tag) !== -1) { //if this is it use it\n\t break;\n\t } else if (stop_list && stop_list.indexOf(frame.tag) !== -1) {\n\t frame = null;\n\t break;\n\t }\n\t frame = frame.parent;\n\t }\n\n\t return frame;\n\t};\n\n\tTagStack.prototype.try_pop = function(tag, stop_list) { //function to retrieve the opening tag to the corresponding closer\n\t var frame = this._get_frame([tag], stop_list);\n\t return this._try_pop_frame(frame);\n\t};\n\n\tTagStack.prototype.indent_to_tag = function(tag_list) {\n\t var frame = this._get_frame(tag_list);\n\t if (frame) {\n\t this._printer.indent_level = frame.indent_level;\n\t }\n\t};\n\n\tfunction Beautifier(source_text, options, js_beautify, css_beautify) {\n\t //Wrapper function to invoke all the necessary constructors and deal with the output.\n\t this._source_text = source_text || '';\n\t options = options || {};\n\t this._js_beautify = js_beautify;\n\t this._css_beautify = css_beautify;\n\t this._tag_stack = null;\n\n\t // Allow the setting of language/file-type specific options\n\t // with inheritance of overall settings\n\t var optionHtml = new Options(options, 'html');\n\n\t this._options = optionHtml;\n\n\t this._is_wrap_attributes_force = this._options.wrap_attributes.substr(0, 'force'.length) === 'force';\n\t this._is_wrap_attributes_force_expand_multiline = (this._options.wrap_attributes === 'force-expand-multiline');\n\t this._is_wrap_attributes_force_aligned = (this._options.wrap_attributes === 'force-aligned');\n\t this._is_wrap_attributes_aligned_multiple = (this._options.wrap_attributes === 'aligned-multiple');\n\t this._is_wrap_attributes_preserve = this._options.wrap_attributes.substr(0, 'preserve'.length) === 'preserve';\n\t this._is_wrap_attributes_preserve_aligned = (this._options.wrap_attributes === 'preserve-aligned');\n\t}\n\n\tBeautifier.prototype.beautify = function() {\n\n\t // if disabled, return the input unchanged.\n\t if (this._options.disabled) {\n\t return this._source_text;\n\t }\n\n\t var source_text = this._source_text;\n\t var eol = this._options.eol;\n\t if (this._options.eol === 'auto') {\n\t eol = '\\n';\n\t if (source_text && lineBreak.test(source_text)) {\n\t eol = source_text.match(lineBreak)[0];\n\t }\n\t }\n\n\t // HACK: newline parsing inconsistent. This brute force normalizes the input.\n\t source_text = source_text.replace(allLineBreaks, '\\n');\n\n\t var baseIndentString = source_text.match(/^[\\t ]*/)[0];\n\n\t var last_token = {\n\t text: '',\n\t type: ''\n\t };\n\n\t var last_tag_token = new TagOpenParserToken();\n\n\t var printer = new Printer(this._options, baseIndentString);\n\t var tokens = new Tokenizer(source_text, this._options).tokenize();\n\n\t this._tag_stack = new TagStack(printer);\n\n\t var parser_token = null;\n\t var raw_token = tokens.next();\n\t while (raw_token.type !== TOKEN.EOF) {\n\n\t if (raw_token.type === TOKEN.TAG_OPEN || raw_token.type === TOKEN.COMMENT) {\n\t parser_token = this._handle_tag_open(printer, raw_token, last_tag_token, last_token, tokens);\n\t last_tag_token = parser_token;\n\t } else if ((raw_token.type === TOKEN.ATTRIBUTE || raw_token.type === TOKEN.EQUALS || raw_token.type === TOKEN.VALUE) ||\n\t (raw_token.type === TOKEN.TEXT && !last_tag_token.tag_complete)) {\n\t parser_token = this._handle_inside_tag(printer, raw_token, last_tag_token, last_token);\n\t } else if (raw_token.type === TOKEN.TAG_CLOSE) {\n\t parser_token = this._handle_tag_close(printer, raw_token, last_tag_token);\n\t } else if (raw_token.type === TOKEN.TEXT) {\n\t parser_token = this._handle_text(printer, raw_token, last_tag_token);\n\t } else {\n\t // This should never happen, but if it does. Print the raw token\n\t printer.add_raw_token(raw_token);\n\t }\n\n\t last_token = parser_token;\n\n\t raw_token = tokens.next();\n\t }\n\t var sweet_code = printer._output.get_code(eol);\n\n\t return sweet_code;\n\t};\n\n\tBeautifier.prototype._handle_tag_close = function(printer, raw_token, last_tag_token) {\n\t var parser_token = {\n\t text: raw_token.text,\n\t type: raw_token.type\n\t };\n\t printer.alignment_size = 0;\n\t last_tag_token.tag_complete = true;\n\n\t printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== '', true);\n\t if (last_tag_token.is_unformatted) {\n\t printer.add_raw_token(raw_token);\n\t } else {\n\t if (last_tag_token.tag_start_char === '<') {\n\t printer.set_space_before_token(raw_token.text[0] === '/', true); // space before />, no space before >\n\t if (this._is_wrap_attributes_force_expand_multiline && last_tag_token.has_wrapped_attrs) {\n\t printer.print_newline(false);\n\t }\n\t }\n\t printer.print_token(raw_token);\n\n\t }\n\n\t if (last_tag_token.indent_content &&\n\t !(last_tag_token.is_unformatted || last_tag_token.is_content_unformatted)) {\n\t printer.indent();\n\n\t // only indent once per opened tag\n\t last_tag_token.indent_content = false;\n\t }\n\n\t if (!last_tag_token.is_inline_element &&\n\t !(last_tag_token.is_unformatted || last_tag_token.is_content_unformatted)) {\n\t printer.set_wrap_point();\n\t }\n\n\t return parser_token;\n\t};\n\n\tBeautifier.prototype._handle_inside_tag = function(printer, raw_token, last_tag_token, last_token) {\n\t var wrapped = last_tag_token.has_wrapped_attrs;\n\t var parser_token = {\n\t text: raw_token.text,\n\t type: raw_token.type\n\t };\n\n\t printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== '', true);\n\t if (last_tag_token.is_unformatted) {\n\t printer.add_raw_token(raw_token);\n\t } else if (last_tag_token.tag_start_char === '{' && raw_token.type === TOKEN.TEXT) {\n\t // For the insides of handlebars allow newlines or a single space between open and contents\n\t if (printer.print_preserved_newlines(raw_token)) {\n\t raw_token.newlines = 0;\n\t printer.add_raw_token(raw_token);\n\t } else {\n\t printer.print_token(raw_token);\n\t }\n\t } else {\n\t if (raw_token.type === TOKEN.ATTRIBUTE) {\n\t printer.set_space_before_token(true);\n\t } else if (raw_token.type === TOKEN.EQUALS) { //no space before =\n\t printer.set_space_before_token(false);\n\t } else if (raw_token.type === TOKEN.VALUE && raw_token.previous.type === TOKEN.EQUALS) { //no space before value\n\t printer.set_space_before_token(false);\n\t }\n\n\t if (raw_token.type === TOKEN.ATTRIBUTE && last_tag_token.tag_start_char === '<') {\n\t if (this._is_wrap_attributes_preserve || this._is_wrap_attributes_preserve_aligned) {\n\t printer.traverse_whitespace(raw_token);\n\t wrapped = wrapped || raw_token.newlines !== 0;\n\t }\n\n\t // Wrap for 'force' options, and if the number of attributes is at least that specified in 'wrap_attributes_min_attrs':\n\t // 1. always wrap the second and beyond attributes\n\t // 2. wrap the first attribute only if 'force-expand-multiline' is specified\n\t if (this._is_wrap_attributes_force &&\n\t last_tag_token.attr_count >= this._options.wrap_attributes_min_attrs &&\n\t (last_token.type !== TOKEN.TAG_OPEN || // ie. second attribute and beyond\n\t this._is_wrap_attributes_force_expand_multiline)) {\n\t printer.print_newline(false);\n\t wrapped = true;\n\t }\n\t }\n\t printer.print_token(raw_token);\n\t wrapped = wrapped || printer.previous_token_wrapped();\n\t last_tag_token.has_wrapped_attrs = wrapped;\n\t }\n\t return parser_token;\n\t};\n\n\tBeautifier.prototype._handle_text = function(printer, raw_token, last_tag_token) {\n\t var parser_token = {\n\t text: raw_token.text,\n\t type: 'TK_CONTENT'\n\t };\n\t if (last_tag_token.custom_beautifier_name) { //check if we need to format javascript\n\t this._print_custom_beatifier_text(printer, raw_token, last_tag_token);\n\t } else if (last_tag_token.is_unformatted || last_tag_token.is_content_unformatted) {\n\t printer.add_raw_token(raw_token);\n\t } else {\n\t printer.traverse_whitespace(raw_token);\n\t printer.print_token(raw_token);\n\t }\n\t return parser_token;\n\t};\n\n\tBeautifier.prototype._print_custom_beatifier_text = function(printer, raw_token, last_tag_token) {\n\t var local = this;\n\t if (raw_token.text !== '') {\n\n\t var text = raw_token.text,\n\t _beautifier,\n\t script_indent_level = 1,\n\t pre = '',\n\t post = '';\n\t if (last_tag_token.custom_beautifier_name === 'javascript' && typeof this._js_beautify === 'function') {\n\t _beautifier = this._js_beautify;\n\t } else if (last_tag_token.custom_beautifier_name === 'css' && typeof this._css_beautify === 'function') {\n\t _beautifier = this._css_beautify;\n\t } else if (last_tag_token.custom_beautifier_name === 'html') {\n\t _beautifier = function(html_source, options) {\n\t var beautifier = new Beautifier(html_source, options, local._js_beautify, local._css_beautify);\n\t return beautifier.beautify();\n\t };\n\t }\n\n\t if (this._options.indent_scripts === \"keep\") {\n\t script_indent_level = 0;\n\t } else if (this._options.indent_scripts === \"separate\") {\n\t script_indent_level = -printer.indent_level;\n\t }\n\n\t var indentation = printer.get_full_indent(script_indent_level);\n\n\t // if there is at least one empty line at the end of this text, strip it\n\t // we'll be adding one back after the text but before the containing tag.\n\t text = text.replace(/\\n[ \\t]*$/, '');\n\n\t // Handle the case where content is wrapped in a comment or cdata.\n\t if (last_tag_token.custom_beautifier_name !== 'html' &&\n\t text[0] === '<' && text.match(/^(<!--|<!\\[CDATA\\[)/)) {\n\t var matched = /^(<!--[^\\n]*|<!\\[CDATA\\[)(\\n?)([ \\t\\n]*)([\\s\\S]*)(-->|]]>)$/.exec(text);\n\n\t // if we start to wrap but don't finish, print raw\n\t if (!matched) {\n\t printer.add_raw_token(raw_token);\n\t return;\n\t }\n\n\t pre = indentation + matched[1] + '\\n';\n\t text = matched[4];\n\t if (matched[5]) {\n\t post = indentation + matched[5];\n\t }\n\n\t // if there is at least one empty line at the end of this text, strip it\n\t // we'll be adding one back after the text but before the containing tag.\n\t text = text.replace(/\\n[ \\t]*$/, '');\n\n\t if (matched[2] || matched[3].indexOf('\\n') !== -1) {\n\t // if the first line of the non-comment text has spaces\n\t // use that as the basis for indenting in null case.\n\t matched = matched[3].match(/[ \\t]+$/);\n\t if (matched) {\n\t raw_token.whitespace_before = matched[0];\n\t }\n\t }\n\t }\n\n\t if (text) {\n\t if (_beautifier) {\n\n\t // call the Beautifier if avaliable\n\t var Child_options = function() {\n\t this.eol = '\\n';\n\t };\n\t Child_options.prototype = this._options.raw_options;\n\t var child_options = new Child_options();\n\t text = _beautifier(indentation + text, child_options);\n\t } else {\n\t // simply indent the string otherwise\n\t var white = raw_token.whitespace_before;\n\t if (white) {\n\t text = text.replace(new RegExp('\\n(' + white + ')?', 'g'), '\\n');\n\t }\n\n\t text = indentation + text.replace(/\\n/g, '\\n' + indentation);\n\t }\n\t }\n\n\t if (pre) {\n\t if (!text) {\n\t text = pre + post;\n\t } else {\n\t text = pre + text + '\\n' + post;\n\t }\n\t }\n\n\t printer.print_newline(false);\n\t if (text) {\n\t raw_token.text = text;\n\t raw_token.whitespace_before = '';\n\t raw_token.newlines = 0;\n\t printer.add_raw_token(raw_token);\n\t printer.print_newline(true);\n\t }\n\t }\n\t};\n\n\tBeautifier.prototype._handle_tag_open = function(printer, raw_token, last_tag_token, last_token, tokens) {\n\t var parser_token = this._get_tag_open_token(raw_token);\n\n\t if ((last_tag_token.is_unformatted || last_tag_token.is_content_unformatted) &&\n\t !last_tag_token.is_empty_element &&\n\t raw_token.type === TOKEN.TAG_OPEN && !parser_token.is_start_tag) {\n\t // End element tags for unformatted or content_unformatted elements\n\t // are printed raw to keep any newlines inside them exactly the same.\n\t printer.add_raw_token(raw_token);\n\t parser_token.start_tag_token = this._tag_stack.try_pop(parser_token.tag_name);\n\t } else {\n\t printer.traverse_whitespace(raw_token);\n\t this._set_tag_position(printer, raw_token, parser_token, last_tag_token, last_token);\n\t if (!parser_token.is_inline_element) {\n\t printer.set_wrap_point();\n\t }\n\t printer.print_token(raw_token);\n\t }\n\n\t // count the number of attributes\n\t if (parser_token.is_start_tag && this._is_wrap_attributes_force) {\n\t var peek_index = 0;\n\t var peek_token;\n\t do {\n\t peek_token = tokens.peek(peek_index);\n\t if (peek_token.type === TOKEN.ATTRIBUTE) {\n\t parser_token.attr_count += 1;\n\t }\n\t peek_index += 1;\n\t } while (peek_token.type !== TOKEN.EOF && peek_token.type !== TOKEN.TAG_CLOSE);\n\t }\n\n\t //indent attributes an auto, forced, aligned or forced-align line-wrap\n\t if (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) {\n\t parser_token.alignment_size = raw_token.text.length + 1;\n\t }\n\n\t if (!parser_token.tag_complete && !parser_token.is_unformatted) {\n\t printer.alignment_size = parser_token.alignment_size;\n\t }\n\n\t return parser_token;\n\t};\n\n\tvar TagOpenParserToken = function(parent, raw_token) {\n\t this.parent = parent || null;\n\t this.text = '';\n\t this.type = 'TK_TAG_OPEN';\n\t this.tag_name = '';\n\t this.is_inline_element = false;\n\t this.is_unformatted = false;\n\t this.is_content_unformatted = false;\n\t this.is_empty_element = false;\n\t this.is_start_tag = false;\n\t this.is_end_tag = false;\n\t this.indent_content = false;\n\t this.multiline_content = false;\n\t this.custom_beautifier_name = null;\n\t this.start_tag_token = null;\n\t this.attr_count = 0;\n\t this.has_wrapped_attrs = false;\n\t this.alignment_size = 0;\n\t this.tag_complete = false;\n\t this.tag_start_char = '';\n\t this.tag_check = '';\n\n\t if (!raw_token) {\n\t this.tag_complete = true;\n\t } else {\n\t var tag_check_match;\n\n\t this.tag_start_char = raw_token.text[0];\n\t this.text = raw_token.text;\n\n\t if (this.tag_start_char === '<') {\n\t tag_check_match = raw_token.text.match(/^<([^\\s>]*)/);\n\t this.tag_check = tag_check_match ? tag_check_match[1] : '';\n\t } else {\n\t tag_check_match = raw_token.text.match(/^{{~?(?:[\\^]|#\\*?)?([^\\s}]+)/);\n\t this.tag_check = tag_check_match ? tag_check_match[1] : '';\n\n\t // handle \"{{#> myPartial}}\" or \"{{~#> myPartial}}\"\n\t if ((raw_token.text.startsWith('{{#>') || raw_token.text.startsWith('{{~#>')) && this.tag_check[0] === '>') {\n\t if (this.tag_check === '>' && raw_token.next !== null) {\n\t this.tag_check = raw_token.next.text.split(' ')[0];\n\t } else {\n\t this.tag_check = raw_token.text.split('>')[1];\n\t }\n\t }\n\t }\n\n\t this.tag_check = this.tag_check.toLowerCase();\n\n\t if (raw_token.type === TOKEN.COMMENT) {\n\t this.tag_complete = true;\n\t }\n\n\t this.is_start_tag = this.tag_check.charAt(0) !== '/';\n\t this.tag_name = !this.is_start_tag ? this.tag_check.substr(1) : this.tag_check;\n\t this.is_end_tag = !this.is_start_tag ||\n\t (raw_token.closed && raw_token.closed.text === '/>');\n\n\t // if whitespace handler ~ included (i.e. {{~#if true}}), handlebars tags start at pos 3 not pos 2\n\t var handlebar_starts = 2;\n\t if (this.tag_start_char === '{' && this.text.length >= 3) {\n\t if (this.text.charAt(2) === '~') {\n\t handlebar_starts = 3;\n\t }\n\t }\n\n\t // handlebars tags that don't start with # or ^ are single_tags, and so also start and end.\n\t this.is_end_tag = this.is_end_tag ||\n\t (this.tag_start_char === '{' && (this.text.length < 3 || (/[^#\\^]/.test(this.text.charAt(handlebar_starts)))));\n\t }\n\t};\n\n\tBeautifier.prototype._get_tag_open_token = function(raw_token) { //function to get a full tag and parse its type\n\t var parser_token = new TagOpenParserToken(this._tag_stack.get_parser_token(), raw_token);\n\n\t parser_token.alignment_size = this._options.wrap_attributes_indent_size;\n\n\t parser_token.is_end_tag = parser_token.is_end_tag ||\n\t in_array(parser_token.tag_check, this._options.void_elements);\n\n\t parser_token.is_empty_element = parser_token.tag_complete ||\n\t (parser_token.is_start_tag && parser_token.is_end_tag);\n\n\t parser_token.is_unformatted = !parser_token.tag_complete && in_array(parser_token.tag_check, this._options.unformatted);\n\t parser_token.is_content_unformatted = !parser_token.is_empty_element && in_array(parser_token.tag_check, this._options.content_unformatted);\n\t parser_token.is_inline_element = in_array(parser_token.tag_name, this._options.inline) || (this._options.inline_custom_elements && parser_token.tag_name.includes(\"-\")) || parser_token.tag_start_char === '{';\n\n\t return parser_token;\n\t};\n\n\tBeautifier.prototype._set_tag_position = function(printer, raw_token, parser_token, last_tag_token, last_token) {\n\n\t if (!parser_token.is_empty_element) {\n\t if (parser_token.is_end_tag) { //this tag is a double tag so check for tag-ending\n\t parser_token.start_tag_token = this._tag_stack.try_pop(parser_token.tag_name); //remove it and all ancestors\n\t } else { // it's a start-tag\n\t // check if this tag is starting an element that has optional end element\n\t // and do an ending needed\n\t if (this._do_optional_end_element(parser_token)) {\n\t if (!parser_token.is_inline_element) {\n\t printer.print_newline(false);\n\t }\n\t }\n\n\t this._tag_stack.record_tag(parser_token); //push it on the tag stack\n\n\t if ((parser_token.tag_name === 'script' || parser_token.tag_name === 'style') &&\n\t !(parser_token.is_unformatted || parser_token.is_content_unformatted)) {\n\t parser_token.custom_beautifier_name = get_custom_beautifier_name(parser_token.tag_check, raw_token);\n\t }\n\t }\n\t }\n\n\t if (in_array(parser_token.tag_check, this._options.extra_liners)) { //check if this double needs an extra line\n\t printer.print_newline(false);\n\t if (!printer._output.just_added_blankline()) {\n\t printer.print_newline(true);\n\t }\n\t }\n\n\t if (parser_token.is_empty_element) { //if this tag name is a single tag type (either in the list or has a closing /)\n\n\t // if you hit an else case, reset the indent level if you are inside an:\n\t // 'if', 'unless', or 'each' block.\n\t if (parser_token.tag_start_char === '{' && parser_token.tag_check === 'else') {\n\t this._tag_stack.indent_to_tag(['if', 'unless', 'each']);\n\t parser_token.indent_content = true;\n\t // Don't add a newline if opening {{#if}} tag is on the current line\n\t var foundIfOnCurrentLine = printer.current_line_has_match(/{{#if/);\n\t if (!foundIfOnCurrentLine) {\n\t printer.print_newline(false);\n\t }\n\t }\n\n\t // Don't add a newline before elements that should remain where they are.\n\t if (parser_token.tag_name === '!--' && last_token.type === TOKEN.TAG_CLOSE &&\n\t last_tag_token.is_end_tag && parser_token.text.indexOf('\\n') === -1) ; else {\n\t if (!(parser_token.is_inline_element || parser_token.is_unformatted)) {\n\t printer.print_newline(false);\n\t }\n\t this._calcluate_parent_multiline(printer, parser_token);\n\t }\n\t } else if (parser_token.is_end_tag) { //this tag is a double tag so check for tag-ending\n\t var do_end_expand = false;\n\n\t // deciding whether a block is multiline should not be this hard\n\t do_end_expand = parser_token.start_tag_token && parser_token.start_tag_token.multiline_content;\n\t do_end_expand = do_end_expand || (!parser_token.is_inline_element &&\n\t !(last_tag_token.is_inline_element || last_tag_token.is_unformatted) &&\n\t !(last_token.type === TOKEN.TAG_CLOSE && parser_token.start_tag_token === last_tag_token) &&\n\t last_token.type !== 'TK_CONTENT'\n\t );\n\n\t if (parser_token.is_content_unformatted || parser_token.is_unformatted) {\n\t do_end_expand = false;\n\t }\n\n\t if (do_end_expand) {\n\t printer.print_newline(false);\n\t }\n\t } else { // it's a start-tag\n\t parser_token.indent_content = !parser_token.custom_beautifier_name;\n\n\t if (parser_token.tag_start_char === '<') {\n\t if (parser_token.tag_name === 'html') {\n\t parser_token.indent_content = this._options.indent_inner_html;\n\t } else if (parser_token.tag_name === 'head') {\n\t parser_token.indent_content = this._options.indent_head_inner_html;\n\t } else if (parser_token.tag_name === 'body') {\n\t parser_token.indent_content = this._options.indent_body_inner_html;\n\t }\n\t }\n\n\t if (!(parser_token.is_inline_element || parser_token.is_unformatted) &&\n\t (last_token.type !== 'TK_CONTENT' || parser_token.is_content_unformatted)) {\n\t printer.print_newline(false);\n\t }\n\n\t this._calcluate_parent_multiline(printer, parser_token);\n\t }\n\t};\n\n\tBeautifier.prototype._calcluate_parent_multiline = function(printer, parser_token) {\n\t if (parser_token.parent && printer._output.just_added_newline() &&\n\t !((parser_token.is_inline_element || parser_token.is_unformatted) && parser_token.parent.is_inline_element)) {\n\t parser_token.parent.multiline_content = true;\n\t }\n\t};\n\n\t//To be used for <p> tag special case:\n\tvar p_closers = ['address', 'article', 'aside', 'blockquote', 'details', 'div', 'dl', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'main', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'];\n\tvar p_parent_excludes = ['a', 'audio', 'del', 'ins', 'map', 'noscript', 'video'];\n\n\tBeautifier.prototype._do_optional_end_element = function(parser_token) {\n\t var result = null;\n\t // NOTE: cases of \"if there is no more content in the parent element\"\n\t // are handled automatically by the beautifier.\n\t // It assumes parent or ancestor close tag closes all children.\n\t // https://www.w3.org/TR/html5/syntax.html#optional-tags\n\t if (parser_token.is_empty_element || !parser_token.is_start_tag || !parser_token.parent) {\n\t return;\n\n\t }\n\n\t if (parser_token.tag_name === 'body') {\n\t // A head element’s end tag may be omitted if the head element is not immediately followed by a space character or a comment.\n\t result = result || this._tag_stack.try_pop('head');\n\n\t //} else if (parser_token.tag_name === 'body') {\n\t // DONE: A body element’s end tag may be omitted if the body element is not immediately followed by a comment.\n\n\t } else if (parser_token.tag_name === 'li') {\n\t // An li element’s end tag may be omitted if the li element is immediately followed by another li element or if there is no more content in the parent element.\n\t result = result || this._tag_stack.try_pop('li', ['ol', 'ul', 'menu']);\n\n\t } else if (parser_token.tag_name === 'dd' || parser_token.tag_name === 'dt') {\n\t // A dd element’s end tag may be omitted if the dd element is immediately followed by another dd element or a dt element, or if there is no more content in the parent element.\n\t // A dt element’s end tag may be omitted if the dt element is immediately followed by another dt element or a dd element.\n\t result = result || this._tag_stack.try_pop('dt', ['dl']);\n\t result = result || this._tag_stack.try_pop('dd', ['dl']);\n\n\n\t } else if (parser_token.parent.tag_name === 'p' && p_closers.indexOf(parser_token.tag_name) !== -1) {\n\t // IMPORTANT: this else-if works because p_closers has no overlap with any other element we look for in this method\n\t // check for the parent element is an HTML element that is not an <a>, <audio>, <del>, <ins>, <map>, <noscript>, or <video> element, or an autonomous custom element.\n\t // To do this right, this needs to be coded as an inclusion of the inverse of the exclusion above.\n\t // But to start with (if we ignore \"autonomous custom elements\") the exclusion would be fine.\n\t var p_parent = parser_token.parent.parent;\n\t if (!p_parent || p_parent_excludes.indexOf(p_parent.tag_name) === -1) {\n\t result = result || this._tag_stack.try_pop('p');\n\t }\n\t } else if (parser_token.tag_name === 'rp' || parser_token.tag_name === 'rt') {\n\t // An rt element’s end tag may be omitted if the rt element is immediately followed by an rt or rp element, or if there is no more content in the parent element.\n\t // An rp element’s end tag may be omitted if the rp element is immediately followed by an rt or rp element, or if there is no more content in the parent element.\n\t result = result || this._tag_stack.try_pop('rt', ['ruby', 'rtc']);\n\t result = result || this._tag_stack.try_pop('rp', ['ruby', 'rtc']);\n\n\t } else if (parser_token.tag_name === 'optgroup') {\n\t // An optgroup element’s end tag may be omitted if the optgroup element is immediately followed by another optgroup element, or if there is no more content in the parent element.\n\t // An option element’s end tag may be omitted if the option element is immediately followed by another option element, or if it is immediately followed by an optgroup element, or if there is no more content in the parent element.\n\t result = result || this._tag_stack.try_pop('optgroup', ['select']);\n\t //result = result || this._tag_stack.try_pop('option', ['select']);\n\n\t } else if (parser_token.tag_name === 'option') {\n\t // An option element’s end tag may be omitted if the option element is immediately followed by another option element, or if it is immediately followed by an optgroup element, or if there is no more content in the parent element.\n\t result = result || this._tag_stack.try_pop('option', ['select', 'datalist', 'optgroup']);\n\n\t } else if (parser_token.tag_name === 'colgroup') {\n\t // DONE: A colgroup element’s end tag may be omitted if the colgroup element is not immediately followed by a space character or a comment.\n\t // A caption element's end tag may be ommitted if a colgroup, thead, tfoot, tbody, or tr element is started.\n\t result = result || this._tag_stack.try_pop('caption', ['table']);\n\n\t } else if (parser_token.tag_name === 'thead') {\n\t // A colgroup element's end tag may be ommitted if a thead, tfoot, tbody, or tr element is started.\n\t // A caption element's end tag may be ommitted if a colgroup, thead, tfoot, tbody, or tr element is started.\n\t result = result || this._tag_stack.try_pop('caption', ['table']);\n\t result = result || this._tag_stack.try_pop('colgroup', ['table']);\n\n\t //} else if (parser_token.tag_name === 'caption') {\n\t // DONE: A caption element’s end tag may be omitted if the caption element is not immediately followed by a space character or a comment.\n\n\t } else if (parser_token.tag_name === 'tbody' || parser_token.tag_name === 'tfoot') {\n\t // A thead element’s end tag may be omitted if the thead element is immediately followed by a tbody or tfoot element.\n\t // A tbody element’s end tag may be omitted if the tbody element is immediately followed by a tbody or tfoot element, or if there is no more content in the parent element.\n\t // A colgroup element's end tag may be ommitted if a thead, tfoot, tbody, or tr element is started.\n\t // A caption element's end tag may be ommitted if a colgroup, thead, tfoot, tbody, or tr element is started.\n\t result = result || this._tag_stack.try_pop('caption', ['table']);\n\t result = result || this._tag_stack.try_pop('colgroup', ['table']);\n\t result = result || this._tag_stack.try_pop('thead', ['table']);\n\t result = result || this._tag_stack.try_pop('tbody', ['table']);\n\n\t //} else if (parser_token.tag_name === 'tfoot') {\n\t // DONE: A tfoot element’s end tag may be omitted if there is no more content in the parent element.\n\n\t } else if (parser_token.tag_name === 'tr') {\n\t // A tr element’s end tag may be omitted if the tr element is immediately followed by another tr element, or if there is no more content in the parent element.\n\t // A colgroup element's end tag may be ommitted if a thead, tfoot, tbody, or tr element is started.\n\t // A caption element's end tag may be ommitted if a colgroup, thead, tfoot, tbody, or tr element is started.\n\t result = result || this._tag_stack.try_pop('caption', ['table']);\n\t result = result || this._tag_stack.try_pop('colgroup', ['table']);\n\t result = result || this._tag_stack.try_pop('tr', ['table', 'thead', 'tbody', 'tfoot']);\n\n\t } else if (parser_token.tag_name === 'th' || parser_token.tag_name === 'td') {\n\t // A td element’s end tag may be omitted if the td element is immediately followed by a td or th element, or if there is no more content in the parent element.\n\t // A th element’s end tag may be omitted if the th element is immediately followed by a td or th element, or if there is no more content in the parent element.\n\t result = result || this._tag_stack.try_pop('td', ['table', 'thead', 'tbody', 'tfoot', 'tr']);\n\t result = result || this._tag_stack.try_pop('th', ['table', 'thead', 'tbody', 'tfoot', 'tr']);\n\t }\n\n\t // Start element omission not handled currently\n\t // A head element’s start tag may be omitted if the element is empty, or if the first thing inside the head element is an element.\n\t // A tbody element’s start tag may be omitted if the first thing inside the tbody element is a tr element, and if the element is not immediately preceded by a tbody, thead, or tfoot element whose end tag has been omitted. (It can’t be omitted if the element is empty.)\n\t // A colgroup element’s start tag may be omitted if the first thing inside the colgroup element is a col element, and if the element is not immediately preceded by another colgroup element whose end tag has been omitted. (It can’t be omitted if the element is empty.)\n\n\t // Fix up the parent of the parser token\n\t parser_token.parent = this._tag_stack.get_parser_token();\n\n\t return result;\n\t};\n\n\tbeautifier.Beautifier = Beautifier;\n\treturn beautifier;\n}\n\n/*jshint node:true */\n\nvar hasRequiredHtml;\n\nfunction requireHtml () {\n\tif (hasRequiredHtml) return html.exports;\n\thasRequiredHtml = 1;\n\n\tvar Beautifier = requireBeautifier().Beautifier,\n\t Options = requireOptions().Options;\n\n\tfunction style_html(html_source, options, js_beautify, css_beautify) {\n\t var beautifier = new Beautifier(html_source, options, js_beautify, css_beautify);\n\t return beautifier.beautify();\n\t}\n\n\thtml.exports = style_html;\n\thtml.exports.defaultOptions = function() {\n\t return new Options();\n\t};\n\treturn html.exports;\n}\n\n/*jshint node:true */\n\nvar hasRequiredSrc;\n\nfunction requireSrc () {\n\tif (hasRequiredSrc) return src;\n\thasRequiredSrc = 1;\n\n\tvar js_beautify = requireJavascript();\n\tvar css_beautify = requireCss();\n\tvar html_beautify = requireHtml();\n\n\tfunction style_html(html_source, options, js, css) {\n\t js = js || js_beautify;\n\t css = css || css_beautify;\n\t return html_beautify(html_source, options, js, css);\n\t}\n\tstyle_html.defaultOptions = html_beautify.defaultOptions;\n\n\tsrc.js = js_beautify;\n\tsrc.css = css_beautify;\n\tsrc.html = style_html;\n\treturn src;\n}\n\n/*jshint node:true */\n\n(function (module) {\n\n\t/**\n\tThe following batches are equivalent:\n\n\tvar beautify_js = require('js-beautify');\n\tvar beautify_js = require('js-beautify').js;\n\tvar beautify_js = require('js-beautify').js_beautify;\n\n\tvar beautify_css = require('js-beautify').css;\n\tvar beautify_css = require('js-beautify').css_beautify;\n\n\tvar beautify_html = require('js-beautify').html;\n\tvar beautify_html = require('js-beautify').html_beautify;\n\n\tAll methods returned accept two arguments, the source string and an options object.\n\t**/\n\n\tfunction get_beautify(js_beautify, css_beautify, html_beautify) {\n\t // the default is js\n\t var beautify = function(src, config) {\n\t return js_beautify.js_beautify(src, config);\n\t };\n\n\t // short aliases\n\t beautify.js = js_beautify.js_beautify;\n\t beautify.css = css_beautify.css_beautify;\n\t beautify.html = html_beautify.html_beautify;\n\n\t // legacy aliases\n\t beautify.js_beautify = js_beautify.js_beautify;\n\t beautify.css_beautify = css_beautify.css_beautify;\n\t beautify.html_beautify = html_beautify.html_beautify;\n\n\t return beautify;\n\t}\n\n\t{\n\t (function(mod) {\n\t var beautifier = requireSrc();\n\t beautifier.js_beautify = beautifier.js;\n\t beautifier.css_beautify = beautifier.css;\n\t beautifier.html_beautify = beautifier.html;\n\n\t mod.exports = get_beautify(beautifier, beautifier, beautifier);\n\n\t })(module);\n\t} \n} (js));\n\nvar jsExports = js.exports;\nvar beautify = /*@__PURE__*/getDefaultExportFromCjs(jsExports);\n\nvar BaseWrapper = /** @class */ (function () {\n function BaseWrapper(element) {\n var _this = this;\n this.isDisabled = function () {\n var validTagsToBeDisabled = [\n 'BUTTON',\n 'COMMAND',\n 'FIELDSET',\n 'KEYGEN',\n 'OPTGROUP',\n 'OPTION',\n 'SELECT',\n 'TEXTAREA',\n 'INPUT'\n ];\n var hasDisabledAttribute = _this.attributes().disabled !== undefined;\n var elementCanBeDisabled = isElement(_this.element) &&\n validTagsToBeDisabled.includes(_this.element.tagName);\n return hasDisabledAttribute && elementCanBeDisabled;\n };\n this.wrapperElement = element;\n }\n Object.defineProperty(BaseWrapper.prototype, \"element\", {\n get: function () {\n return this.wrapperElement;\n },\n enumerable: false,\n configurable: true\n });\n BaseWrapper.prototype.findAllDOMElements = function (selector) {\n var elementRootNodes = this.getRootNodes().filter(isElement);\n if (elementRootNodes.length === 0)\n return [];\n var result = __spreadArray([], elementRootNodes.filter(function (node) { return node.matches(selector); }), true);\n elementRootNodes.forEach(function (rootNode) {\n result.push.apply(result, Array.from(rootNode.querySelectorAll(selector)));\n });\n return result;\n };\n BaseWrapper.prototype.find = function (selector) {\n if (typeof selector === 'object' && 'ref' in selector) {\n var currentComponent = this.getCurrentComponent();\n if (!currentComponent) {\n return createWrapperError('DOMWrapper');\n }\n var result = currentComponent.refs[selector.ref];\n // When using ref inside v-for, then refs contains array of component instances and nodes\n if (Array.isArray(result)) {\n result = result.length ? result[0] : undefined;\n }\n if (result instanceof Node) {\n return createDOMWrapper(result);\n }\n else {\n return createWrapperError('DOMWrapper');\n }\n }\n var elements = this.findAll(selector);\n if (elements.length > 0) {\n return elements[0];\n }\n return createWrapperError('DOMWrapper');\n };\n BaseWrapper.prototype.findComponent = function (selector) {\n var currentComponent = this.getCurrentComponent();\n if (!currentComponent) {\n return createWrapperError('VueWrapper');\n }\n if (typeof selector === 'object' && 'ref' in selector) {\n var result_1 = currentComponent.refs[selector.ref];\n // When using ref inside v-for, then refs contains array of component instances\n if (Array.isArray(result_1)) {\n result_1 = result_1.length ? result_1[0] : undefined;\n }\n if (result_1 && !(result_1 instanceof HTMLElement)) {\n return createVueWrapper(null, result_1);\n }\n else {\n return createWrapperError('VueWrapper');\n }\n }\n if (matches(currentComponent.vnode, selector) &&\n this.element.contains(currentComponent.vnode.el)) {\n return createVueWrapper(null, currentComponent.subTree.component\n ? currentComponent.subTree.component.proxy\n : currentComponent.proxy);\n }\n var result = this.findAllComponents(selector)[0];\n return result !== null && result !== void 0 ? result : createWrapperError('VueWrapper');\n };\n BaseWrapper.prototype.findAllComponents = function (selector) {\n var currentComponent = this.getCurrentComponent();\n if (!currentComponent) {\n return [];\n }\n var results = find(currentComponent.subTree, selector);\n return results.map(function (c) {\n return c.proxy\n ? createVueWrapper(null, c.proxy)\n : createDOMWrapper(c.vnode.el);\n });\n };\n BaseWrapper.prototype.html = function (options) {\n var stringNodes = this.getRootNodes().map(function (node) { return stringifyNode(node); });\n if (options === null || options === void 0 ? void 0 : options.raw)\n return stringNodes.join('');\n return stringNodes\n .map(function (node) {\n return beautify.html(node, {\n unformatted: ['code', 'pre', 'em', 'strong', 'span'],\n indent_inner_html: true,\n indent_size: 2,\n inline_custom_elements: false\n // TODO the cast can be removed when @types/js-beautify will be up-to-date\n });\n })\n .join('\\n');\n };\n BaseWrapper.prototype.classes = function (className) {\n var classes = isElement(this.element)\n ? Array.from(this.element.classList)\n : [];\n if (className)\n return classes.includes(className);\n return classes;\n };\n BaseWrapper.prototype.attributes = function (key) {\n var attributeMap = {};\n if (isElement(this.element)) {\n var attributes = Array.from(this.element.attributes);\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var attribute = attributes_1[_i];\n attributeMap[attribute.localName] = attribute.value;\n }\n }\n return key ? attributeMap[key] : attributeMap;\n };\n BaseWrapper.prototype.text = function () {\n return this.getRootNodes().map(textContent).join('');\n };\n BaseWrapper.prototype.exists = function () {\n return true;\n };\n BaseWrapper.prototype.get = function (selector) {\n var result = this.find(selector);\n if (result.exists()) {\n return result;\n }\n throw new Error(\"Unable to get \".concat(selector, \" within: \").concat(this.html()));\n };\n BaseWrapper.prototype.getComponent = function (selector) {\n var result = this.findComponent(selector);\n if (result.exists()) {\n return result;\n }\n var message = 'Unable to get ';\n if (typeof selector === 'string') {\n message += \"component with selector \".concat(selector);\n }\n else if ('name' in selector) {\n message += \"component with name \".concat(selector.name);\n }\n else if ('ref' in selector) {\n message += \"component with ref \".concat(selector.ref);\n }\n else {\n message += 'specified component';\n }\n message += \" within: \".concat(this.html());\n throw new Error(message);\n };\n BaseWrapper.prototype.isVisible = function () {\n return isElement(this.element) && isElementVisible(this.element);\n };\n BaseWrapper.prototype.trigger = function (eventString, options) {\n return __awaiter(this, void 0, void 0, function () {\n var event_1;\n return __generator(this, function (_a) {\n if (options && options['target']) {\n throw Error(\"[vue-test-utils]: you cannot set the target value of an event. See the notes section \" +\n \"of the docs for more details\\u2014\" +\n \"https://vue-test-utils.vuejs.org/api/wrapper/trigger.html\");\n }\n if (this.element && !this.isDisabled()) {\n event_1 = createDOMEvent(eventString, options);\n // see https://github.com/vuejs/test-utils/issues/1854\n // fakeTimers provoke an issue as Date.now() always return the same value\n // and Vue relies on it to determine if the handler should be invoked\n // see https://github.com/vuejs/core/blob/5ee40532a63e0b792e0c1eccf3cf68546a4e23e9/packages/runtime-dom/src/modules/events.ts#L100-L104\n // we workaround this issue by manually setting _vts to Date.now() + 1\n // thus making sure the event handler is invoked\n event_1._vts = Date.now() + 1;\n this.element.dispatchEvent(event_1);\n }\n return [2 /*return*/, nextTick()];\n });\n });\n };\n return BaseWrapper;\n}());\n\nvar DOMWrapper = /** @class */ (function (_super) {\n __extends(DOMWrapper, _super);\n function DOMWrapper(element) {\n var _this = this;\n if (!element) {\n return createWrapperError('DOMWrapper');\n }\n _this = _super.call(this, element) || this;\n // plugins hook\n config.plugins.DOMWrapper.extend(_this);\n return _this;\n }\n DOMWrapper.prototype.getRootNodes = function () {\n return [this.wrapperElement];\n };\n DOMWrapper.prototype.getCurrentComponent = function () {\n var _a;\n var component = this.element.__vueParentComponent;\n while (((_a = component === null || component === void 0 ? void 0 : component.parent) === null || _a === void 0 ? void 0 : _a.vnode.el) === this.element) {\n component = component.parent;\n }\n return component;\n };\n DOMWrapper.prototype.find = function (selector) {\n var result = _super.prototype.find.call(this, selector);\n if (result.exists() && isRefSelector(selector)) {\n return this.element.contains(result.element)\n ? result\n : createWrapperError('DOMWrapper');\n }\n return result;\n };\n DOMWrapper.prototype.findAll = function (selector) {\n if (!(this.wrapperElement instanceof Element)) {\n return [];\n }\n return Array.from(this.wrapperElement.querySelectorAll(selector), createDOMWrapper);\n };\n DOMWrapper.prototype.findAllComponents = function (selector) {\n var _this = this;\n var results = _super.prototype.findAllComponents.call(this, selector);\n return results.filter(function (r) { return _this.element.contains(r.element); });\n };\n DOMWrapper.prototype.setChecked = function () {\n return __awaiter(this, arguments, void 0, function (checked) {\n var element, type;\n if (checked === void 0) { checked = true; }\n return __generator(this, function (_a) {\n element = this.element;\n type = this.attributes().type;\n if (type === 'radio' && !checked) {\n throw Error(\"wrapper.setChecked() cannot be called with parameter false on a '<input type=\\\"radio\\\" /> element.\");\n }\n // we do not want to trigger an event if the user\n // attempting set the same value twice\n // this is because in a browser setting checked = true when it is\n // already true is a no-op; no change event is triggered\n if (checked === element.checked) {\n return [2 /*return*/];\n }\n element.checked = checked;\n this.trigger('input');\n return [2 /*return*/, this.trigger('change')];\n });\n });\n };\n DOMWrapper.prototype.setValue = function (value) {\n var element = this.element;\n var tagName = element.tagName;\n var type = this.attributes().type;\n if (tagName === 'OPTION') {\n this.setSelected();\n return Promise.resolve();\n }\n else if (tagName === 'INPUT' && type === 'checkbox') {\n return this.setChecked(value);\n }\n else if (tagName === 'INPUT' && type === 'radio') {\n return this.setChecked(value);\n }\n else if (tagName === 'SELECT') {\n if (Array.isArray(value)) {\n var selectElement = element;\n for (var i = 0; i < selectElement.options.length; i++) {\n var option = selectElement.options[i];\n option.selected = value.includes(option.value);\n }\n }\n else {\n element.value = value;\n }\n this.trigger('input');\n return this.trigger('change');\n }\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA') {\n element.value = value;\n this.trigger('input');\n // trigger `change` for `v-model.lazy`\n return this.trigger('change');\n }\n else {\n throw Error(\"wrapper.setValue() cannot be called on \".concat(tagName));\n }\n };\n DOMWrapper.prototype.setSelected = function () {\n var element = this.element;\n if (element.selected) {\n return;\n }\n // todo - review all non-null assertion operators in project\n // search globally for `!.` and with regex `!$`\n element.selected = true;\n var parentElement = element.parentElement;\n if (parentElement.tagName === 'OPTGROUP') {\n parentElement = parentElement.parentElement;\n }\n var parentWrapper = new DOMWrapper(parentElement);\n parentWrapper.trigger('input');\n return parentWrapper.trigger('change');\n };\n return DOMWrapper;\n}(BaseWrapper));\nregisterFactory(WrapperType.DOMWrapper, function (element) { return new DOMWrapper(element); });\n\nfunction getRootNodes(vnode) {\n if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n return [vnode.el];\n }\n else if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n var subTree = vnode.component.subTree;\n return getRootNodes(subTree);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n return getRootNodes(vnode.suspense.activeBranch);\n }\n else if (vnode.shapeFlag &\n (8 /* ShapeFlags.TEXT_CHILDREN */ | 64 /* ShapeFlags.TELEPORT */)) {\n // static node optimization, subTree.children will be static string and will not help us\n var result = [vnode.el];\n if (vnode.anchor) {\n var currentNode = result[0].nextSibling;\n while (currentNode && currentNode.previousSibling !== vnode.anchor) {\n result.push(currentNode);\n currentNode = currentNode.nextSibling;\n }\n }\n return result;\n }\n else if (vnode.shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n var children = vnode.children.flat();\n return children\n .flatMap(function (vnode) { return getRootNodes(vnode); })\n .filter(isNotNullOrUndefined);\n }\n // Missing cases which do not need special handling:\n // ShapeFlags.SLOTS_CHILDREN comes with ShapeFlags.ELEMENT\n // Will hit this default when ShapeFlags is 0\n // This is the case for example for unresolved async component without loader\n return [];\n}\n\nvar events = {};\nfunction emitted(vm, eventName) {\n var cid = vm.$.uid;\n var vmEvents = events[cid] || {};\n if (eventName) {\n return vmEvents ? vmEvents[eventName] : undefined;\n }\n return vmEvents;\n}\nvar attachEmitListener = function () {\n var target = getGlobalThis();\n // override emit to capture events when devtools is defined\n if (target.__VUE_DEVTOOLS_GLOBAL_HOOK__) {\n var _emit_1 = target.__VUE_DEVTOOLS_GLOBAL_HOOK__.emit;\n target.__VUE_DEVTOOLS_GLOBAL_HOOK__.emit = function (eventType) {\n var payload = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n payload[_i - 1] = arguments[_i];\n }\n _emit_1.call.apply(_emit_1, __spreadArray([target.__VUE_DEVTOOLS_GLOBAL_HOOK__, eventType], payload, false));\n captureDevtoolsVueComponentEmitEvent(eventType, payload);\n };\n }\n else {\n // use devtools to capture this \"emit\"\n setDevtoolsHook(createDevTools(), {});\n }\n};\nfunction captureDevtoolsVueComponentEmitEvent(eventType, payload) {\n if (eventType === \"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */) {\n payload[0]; var componentVM = payload[1], event_1 = payload[2], eventArgs = payload[3];\n recordEvent(componentVM, event_1, eventArgs);\n }\n}\n// devtools hook only catches Vue component custom events\nfunction createDevTools() {\n return {\n emit: function (eventType) {\n var payload = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n payload[_i - 1] = arguments[_i];\n }\n captureDevtoolsVueComponentEmitEvent(eventType, payload);\n }\n };\n}\nvar recordEvent = function (vm, event, args) {\n // Functional component wrapper creates a parent component\n var wrapperVm = vm;\n while (typeof (wrapperVm === null || wrapperVm === void 0 ? void 0 : wrapperVm.type) === 'function')\n wrapperVm = wrapperVm.parent;\n var cid = wrapperVm.uid;\n if (!(cid in events)) {\n events[cid] = {};\n }\n if (!(event in events[cid])) {\n events[cid][event] = [];\n }\n // Record the event message sent by the emit\n events[cid][event].push(args);\n};\nvar removeEventHistory = function (vm) {\n var cid = vm.$.uid;\n delete events[cid];\n};\n\n/**\n * Creates a proxy around the VM instance.\n * This proxy returns the value from the setupState if there is one, or the one from the VM if not.\n * See https://github.com/vuejs/core/issues/7103\n */\nfunction createVMProxy(vm, setupState) {\n return new Proxy(vm, {\n get: function (vm, key, receiver) {\n if (vm.$.exposed && vm.$.exposeProxy && key in vm.$.exposeProxy) {\n // first if the key is exposed\n return Reflect.get(vm.$.exposeProxy, key, receiver);\n }\n else if (key in setupState) {\n // second if the key is acccessible from the setupState\n return Reflect.get(setupState, key, receiver);\n }\n else if (key in vm.$.appContext.config.globalProperties) {\n // third if the key is a global property\n return Reflect.get(vm.$.appContext.config.globalProperties, key, receiver);\n }\n else {\n // vm.$.ctx is the internal context of the vm\n // with all variables, methods and props\n return vm.$.ctx[key];\n }\n },\n set: function (vm, key, value, receiver) {\n if (key in setupState) {\n return Reflect.set(setupState, key, value, receiver);\n }\n else {\n return Reflect.set(vm, key, value, receiver);\n }\n },\n has: function (vm, property) {\n return Reflect.has(setupState, property) || Reflect.has(vm, property);\n },\n defineProperty: function (vm, key, attributes) {\n if (key in setupState) {\n return Reflect.defineProperty(setupState, key, attributes);\n }\n else {\n return Reflect.defineProperty(vm, key, attributes);\n }\n },\n getOwnPropertyDescriptor: function (vm, property) {\n if (property in setupState) {\n return Reflect.getOwnPropertyDescriptor(setupState, property);\n }\n else {\n return Reflect.getOwnPropertyDescriptor(vm, property);\n }\n },\n deleteProperty: function (vm, property) {\n if (property in setupState) {\n return Reflect.deleteProperty(setupState, property);\n }\n else {\n return Reflect.deleteProperty(vm, property);\n }\n }\n });\n}\nvar VueWrapper = /** @class */ (function (_super) {\n __extends(VueWrapper, _super);\n function VueWrapper(app, vm, setProps) {\n var _this = _super.call(this, vm === null || vm === void 0 ? void 0 : vm.$el) || this;\n _this.cleanUpCallbacks = [];\n _this.__app = app;\n // root is null on functional components\n _this.rootVM = vm === null || vm === void 0 ? void 0 : vm.$root;\n // `vm.$.setupState` is what the template has access to\n // so even if the component is closed (as they are by default for `script setup`)\n // a test will still be able to do something like\n // `expect(wrapper.vm.count).toBe(1)`\n // if we return it as `vm`\n // This does not work for functional components though (as they have no vm)\n // or for components with a setup that returns a render function (as they have an empty proxy)\n // in both cases, we return `vm` directly instead\n if (hasSetupState(vm)) {\n _this.componentVM = createVMProxy(vm, vm.$.setupState);\n }\n else {\n _this.componentVM = vm;\n }\n _this.__setProps = setProps;\n _this.attachNativeEventListener();\n config.plugins.VueWrapper.extend(_this);\n return _this;\n }\n Object.defineProperty(VueWrapper.prototype, \"hasMultipleRoots\", {\n get: function () {\n // Recursive check subtree for nested root elements\n // <template>\n // <WithMultipleRoots />\n // </template>\n var checkTree = function (subTree) {\n var _a;\n // if the subtree is an array of children, we have multiple root nodes\n if (subTree.shapeFlag === 16 /* ShapeFlags.ARRAY_CHILDREN */)\n return true;\n if (subTree.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */ ||\n subTree.shapeFlag & 2 /* ShapeFlags.FUNCTIONAL_COMPONENT */) {\n // We are rendering other component, check it's tree instead\n if ((_a = subTree.component) === null || _a === void 0 ? void 0 : _a.subTree) {\n return checkTree(subTree.component.subTree);\n }\n // Component has multiple children\n if (subTree.shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n return true;\n }\n }\n return false;\n };\n return checkTree(this.vm.$.subTree);\n },\n enumerable: false,\n configurable: true\n });\n VueWrapper.prototype.getRootNodes = function () {\n return getRootNodes(this.vm.$.vnode);\n };\n Object.defineProperty(VueWrapper.prototype, \"parentElement\", {\n get: function () {\n return this.vm.$el.parentElement;\n },\n enumerable: false,\n configurable: true\n });\n VueWrapper.prototype.getCurrentComponent = function () {\n return this.vm.$;\n };\n VueWrapper.prototype.exists = function () {\n return !this.getCurrentComponent().isUnmounted;\n };\n VueWrapper.prototype.findAll = function (selector) {\n return this.findAllDOMElements(selector).map(createDOMWrapper);\n };\n VueWrapper.prototype.attachNativeEventListener = function () {\n var vm = this.vm;\n if (!vm)\n return;\n var emits = vm.$options.emits\n ? // if emits is declared as an array\n Array.isArray(vm.$options.emits)\n ? // use it\n vm.$options.emits\n : // otherwise it's declared as an object\n // and we only need the keys\n Object.keys(vm.$options.emits)\n : [];\n var elementRoots = this.getRootNodes().filter(function (node) { return node instanceof Element; });\n if (elementRoots.length !== 1) {\n return;\n }\n var element = elementRoots[0];\n var _loop_1 = function (eventName) {\n // if a component includes events in 'emits' with the same name as native\n // events, the native events with that name should be ignored\n // @see https://github.com/vuejs/rfcs/blob/master/active-rfcs/0030-emits-option.md#fallthrough-control\n if (emits.includes(eventName))\n return \"continue\";\n var eventListener = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n recordEvent(vm.$, eventName, args);\n };\n element.addEventListener(eventName, eventListener);\n this_1.cleanUpCallbacks.push(function () {\n element.removeEventListener(eventName, eventListener);\n });\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(domEvents); _i < _a.length; _i++) {\n var eventName = _a[_i];\n _loop_1(eventName);\n }\n };\n Object.defineProperty(VueWrapper.prototype, \"element\", {\n get: function () {\n // if the component has multiple root elements, we use the parent's element\n return this.hasMultipleRoots ? this.parentElement : this.vm.$el;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(VueWrapper.prototype, \"vm\", {\n get: function () {\n return this.componentVM;\n },\n enumerable: false,\n configurable: true\n });\n VueWrapper.prototype.props = function (selector) {\n var props = this.componentVM.$props;\n return selector ? props[selector] : props;\n };\n VueWrapper.prototype.emitted = function (eventName) {\n return emitted(this.vm, eventName);\n };\n VueWrapper.prototype.isVisible = function () {\n var domWrapper = createDOMWrapper(this.element);\n return domWrapper.isVisible();\n };\n VueWrapper.prototype.setData = function (data) {\n mergeDeep(this.componentVM.$data, data);\n return nextTick();\n };\n VueWrapper.prototype.setProps = function (props) {\n // if this VM's parent is not the root or if setProps does not exist, error out\n if (this.vm.$parent !== this.rootVM || !this.__setProps) {\n throw Error('You can only use setProps on your mounted component');\n }\n this.__setProps(props);\n return nextTick();\n };\n VueWrapper.prototype.setValue = function (value, prop) {\n var propEvent = prop || 'modelValue';\n this.vm.$emit(\"update:\".concat(propEvent), value);\n return this.vm.$nextTick();\n };\n VueWrapper.prototype.unmount = function () {\n // preventing dispose of child component\n if (!this.__app) {\n throw new Error(\"wrapper.unmount() can only be called by the root wrapper\");\n }\n // Clear emitted events cache for this component instance\n removeEventHistory(this.vm);\n this.cleanUpCallbacks.forEach(function (cb) { return cb(); });\n this.cleanUpCallbacks = [];\n this.__app.unmount();\n };\n return VueWrapper;\n}(BaseWrapper));\nregisterFactory(WrapperType.VueWrapper, function (app, vm, setProps) { return new VueWrapper(app, vm, setProps); });\n\nfunction processSlot(source, Vue$1) {\n if (source === void 0) { source = ''; }\n if (Vue$1 === void 0) { Vue$1 = Vue; }\n var template = source.trim();\n var hasWrappingTemplate = template && template.startsWith('<template');\n // allow content without `template` tag, for easier testing\n if (!hasWrappingTemplate) {\n template = \"<template #default=\\\"params\\\">\".concat(template, \"</template>\");\n }\n // Vue does not provide an easy way to compile template in \"slot\" mode\n // Since we do not want to rely on compiler internals and specify\n // transforms manually we create fake component invocation with the slot we\n // need and pick slots param from render function later. Fake component will\n // never be instantiated but it requires to be a component so compile\n // properly generate invocation. Since we do not want to monkey-patch\n // `resolveComponent` function we are just using one of built-in components:\n // transition\n var code = compile(\"<transition>\".concat(template, \"</transition>\"), {\n mode: 'function',\n prefixIdentifiers: false\n }).code;\n var createRenderFunction = new Function('Vue', code);\n var renderFn = createRenderFunction(Vue$1);\n return function (ctx) {\n if (ctx === void 0) { ctx = {}; }\n var result = renderFn(ctx);\n var slotName = Object.keys(result.children)[0];\n return result.children[slotName](ctx);\n };\n}\n\nvar isTeleport = function (type) { return type.__isTeleport; };\nvar isKeepAlive = function (type) { return type.__isKeepAlive; };\nvar isRootComponent = function (rootComponents, type, instance) {\n return !!(!instance ||\n // Don't stub mounted component on root level\n (rootComponents.component === type && !(instance === null || instance === void 0 ? void 0 : instance.parent)) ||\n // Don't stub component with compat wrapper\n (rootComponents.functional && rootComponents.functional === type));\n};\nvar createVNodeTransformer = function (_a) {\n var rootComponents = _a.rootComponents, transformers = _a.transformers;\n var transformationCache = new WeakMap();\n return function (args, instance) {\n var originalType = args[0], props = args[1], children = args[2], restVNodeArgs = args.slice(3);\n if (!isComponent(originalType)) {\n return __spreadArray([originalType, props, children], restVNodeArgs, true);\n }\n var componentType = originalType;\n var cachedTransformation = transformationCache.get(originalType);\n if (cachedTransformation &&\n // Don't use cache for root component, as it could use stubbed recursive component\n !isRootComponent(rootComponents, componentType, instance) &&\n !isTeleport(originalType) &&\n !isKeepAlive(originalType)) {\n return __spreadArray([cachedTransformation, props, children], restVNodeArgs, true);\n }\n var transformedType = transformers.reduce(function (type, transformer) { return transformer(type, instance); }, componentType);\n if (originalType !== transformedType) {\n transformationCache.set(originalType, transformedType);\n registerStub({ source: originalType, stub: transformedType });\n // https://github.com/vuejs/test-utils/issues/1829 & https://github.com/vuejs/test-utils/issues/1888\n // Teleport/KeepAlive should return child nodes as a function\n if (isTeleport(originalType) || isKeepAlive(originalType)) {\n return __spreadArray([transformedType, props, function () { return children; }], restVNodeArgs, true);\n }\n }\n return __spreadArray([transformedType, props, children], restVNodeArgs, true);\n };\n};\n\nvar normalizeStubProps = function (props) {\n // props are always normalized to object syntax\n var $props = props;\n return Object.keys($props).reduce(function (acc, key) {\n var _a, _b, _c;\n var _d;\n if (typeof $props[key] === 'symbol') {\n return __assign(__assign({}, acc), (_a = {}, _a[key] = [(_d = $props[key]) === null || _d === void 0 ? void 0 : _d.toString()], _a));\n }\n if (typeof $props[key] === 'function') {\n return __assign(__assign({}, acc), (_b = {}, _b[key] = ['[Function]'], _b));\n }\n return __assign(__assign({}, acc), (_c = {}, _c[key] = $props[key], _c));\n }, {});\n};\nvar clearAndUpper = function (text) { return text.replace(/-/, '').toUpperCase(); };\nvar kebabToPascalCase = function (tag) {\n return tag.replace(/(^\\w|-\\w)/g, clearAndUpper);\n};\nvar DEFAULT_STUBS = {\n teleport: isTeleport,\n 'keep-alive': isKeepAlive,\n transition: function (type) { return type === Transition || type === BaseTransition; },\n 'transition-group': function (type) { return type === TransitionGroup; }\n};\nvar createDefaultStub = function (kebabTag, predicate, type, stubs) {\n var pascalTag = kebabToPascalCase(kebabTag);\n if (predicate(type) && (pascalTag in stubs || kebabTag in stubs)) {\n if (kebabTag in stubs && stubs[kebabTag] === false)\n return type;\n if (pascalTag in stubs && stubs[pascalTag] === false)\n return type;\n if (stubs[kebabTag] === true || stubs[pascalTag] === true) {\n return createStub({\n name: kebabTag,\n type: type,\n renderStubDefaultSlot: true\n });\n }\n }\n};\nvar createStub = function (_a) {\n var name = _a.name, type = _a.type, renderStubDefaultSlot = _a.renderStubDefaultSlot;\n var anonName = 'anonymous-stub';\n var tag = name ? \"\".concat(hyphenate(name), \"-stub\") : anonName;\n var componentOptions = type\n ? unwrapLegacyVueExtendComponent(type) || {}\n : {};\n var stub = defineComponent({\n name: name || anonName,\n props: componentOptions.props || {},\n // fix #1550 - respect old-style v-model for shallow mounted components with @vue/compat\n // @ts-expect-error\n model: componentOptions.model,\n setup: function (props, _a) {\n var slots = _a.slots;\n return function () {\n // https://github.com/vuejs/test-utils/issues/1076\n // Passing a symbol as a static prop is not legal, since Vue will try to do\n // something like `el.setAttribute('val', Symbol())` which is not valid and\n // causes an error.\n // Only a problem when shallow mounting. For this reason we iterate of the\n // props that will be passed and stringify any that are symbols.\n // Also having function text as attribute is useless and annoying so\n // we replace it with \"[Function]\"\"\n var stubProps = normalizeStubProps(props);\n // if renderStubDefaultSlot is true, we render the default slot\n if (renderStubDefaultSlot && slots.default) {\n // we explicitly call the default slot with an empty object\n // so scope slots destructuring works\n return h(tag, stubProps, slots.default({}));\n }\n return h(tag, stubProps);\n };\n }\n });\n var asyncLoader = type.__asyncLoader;\n if (asyncLoader) {\n asyncLoader().then(function () {\n registerStub({\n source: type.__asyncResolved,\n stub: stub\n });\n });\n }\n return stub;\n};\nvar resolveComponentStubByName = function (componentName, stubs) {\n for (var _i = 0, _a = Object.entries(stubs); _i < _a.length; _i++) {\n var _b = _a[_i], stubKey = _b[0], value = _b[1];\n if (matchName(componentName, stubKey)) {\n return value;\n }\n }\n};\nfunction createStubComponentsTransformer(_a) {\n var rootComponents = _a.rootComponents, _b = _a.stubs, stubs = _b === void 0 ? {} : _b, _c = _a.shallow, shallow = _c === void 0 ? false : _c, _d = _a.renderStubDefaultSlot, renderStubDefaultSlot = _d === void 0 ? false : _d;\n return function componentsTransformer(type, instance) {\n var _a, _b, _c;\n for (var tag in DEFAULT_STUBS) {\n var predicate = DEFAULT_STUBS[tag];\n var defaultStub = createDefaultStub(tag, predicate, type, stubs);\n if (defaultStub)\n return defaultStub;\n }\n // Don't stub root components\n if (isRootComponent(rootComponents, type, instance)) {\n return type;\n }\n var registeredName = getComponentRegisteredName(instance, type);\n var componentName = getComponentName(instance, type);\n var stub = null;\n var name = null;\n // Prio 1 using the key in locally registered components in the parent\n if (registeredName) {\n stub = resolveComponentStubByName(registeredName, stubs);\n if (stub) {\n name = registeredName;\n }\n }\n // Prio 2 using the name attribute in the component\n if (!stub && componentName) {\n stub = resolveComponentStubByName(componentName, stubs);\n if (stub) {\n name = componentName;\n }\n }\n // case 2: custom implementation\n if (isComponent(stub)) {\n var unwrappedStub = unwrapLegacyVueExtendComponent(stub);\n var stubFn_1 = isFunctionalComponent(unwrappedStub) ? unwrappedStub : null;\n // Edge case: stub is component, we will not render stub but instead will create\n // a new \"copy\" of stub component definition, but we want user still to be able\n // to find our component by stub definition, so we register it manually\n registerStub({ source: type, stub: stub });\n var specializedStubComponent = stubFn_1\n ? function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return stubFn_1.apply(void 0, args);\n }\n : __assign({}, unwrappedStub);\n specializedStubComponent.props = unwrappedStub.props;\n return specializedStubComponent;\n }\n if (stub === false) {\n // we explicitly opt out of stubbing this component\n return type;\n }\n // we return a stub by matching Vue's `h` function\n // where the signature is h(Component, props, slots)\n // case 1: default stub\n if (stub === true || shallow) {\n // Set name when using shallow without stub\n var stubName = name || registeredName || componentName;\n return ((_c = (_b = (_a = config.plugins).createStubs) === null || _b === void 0 ? void 0 : _b.call(_a, {\n name: stubName,\n component: type,\n registerStub: registerStub\n })) !== null && _c !== void 0 ? _c : createStub({\n name: stubName,\n type: type,\n renderStubDefaultSlot: renderStubDefaultSlot\n }));\n }\n return type;\n };\n}\n\nvar noop = function () { };\nfunction createStubDirectivesTransformer(_a) {\n var _b = _a.directives, directives = _b === void 0 ? {} : _b;\n if (Object.keys(directives).length === 0) {\n return function (type) { return type; };\n }\n return function directivesTransformer(type) {\n if (isObjectComponent(type) && type.directives) {\n // We want to change component types as rarely as possible\n // So first we check if there are any directives we should stub\n var directivesToPatch = Object.keys(type.directives).filter(function (key) { return key in directives; });\n if (!directivesToPatch.length) {\n return type;\n }\n var replacementDirectives = Object.fromEntries(directivesToPatch.map(function (name) {\n var directive = directives[name];\n return [name, typeof directive === 'boolean' ? noop : directive];\n }));\n return __assign(__assign({}, type), { directives: __assign(__assign({}, type.directives), replacementDirectives) });\n }\n return type;\n };\n}\n\n/**\n * Implementation details of isDeepRef to avoid circular dependencies.\n * It keeps track of visited objects to avoid infinite recursion.\n *\n * @param r The value to check for a Ref.\n * @param visitedObjects a weak map to keep track of visited objects and avoid infinite recursion\n * @returns returns true if the value is a Ref, false otherwise\n */\nvar deeplyCheckForRef = function (r, visitedObjects) {\n if (isRef(r))\n return true;\n if (!isObject(r))\n return false;\n if (visitedObjects.has(r))\n return false;\n visitedObjects.set(r, true);\n return Object.values(r).some(function (val) { return deeplyCheckForRef(val, visitedObjects); });\n};\n/**\n * Checks if the given value is a DeepRef.\n *\n * For both arrays and objects, it will recursively check\n * if any of their values is a Ref.\n *\n * @param {DeepRef<T> | unknown} r - The value to check.\n * @returns {boolean} Returns true if the value is a DeepRef, false otherwise.\n */\nvar isDeepRef = function (r) {\n var visitedObjects = new WeakMap();\n return deeplyCheckForRef(r, visitedObjects);\n};\n\nvar MOUNT_OPTIONS = [\n 'attachTo',\n 'attrs',\n 'data',\n 'props',\n 'slots',\n 'global',\n 'shallow'\n];\nfunction getInstanceOptions(options) {\n if (options.methods) {\n console.warn(\"Passing a `methods` option to mount was deprecated on Vue Test Utils v1, and it won't have any effect on v2. For additional info: https://vue-test-utils.vuejs.org/upgrading-to-v1/#setmethods-and-mountingoptions-methods\");\n delete options.methods;\n }\n var resultOptions = __assign({}, options);\n for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) {\n var key = _a[_i];\n if (MOUNT_OPTIONS.includes(key)) {\n delete resultOptions[key];\n }\n }\n return resultOptions;\n}\n// implementation\nfunction createInstance(inputComponent, options) {\n // normalize the incoming component\n var originalComponent = unwrapLegacyVueExtendComponent(inputComponent);\n var component;\n var instanceOptions = getInstanceOptions(options !== null && options !== void 0 ? options : {});\n var rootComponents = {};\n if (isFunctionalComponent(originalComponent) ||\n isLegacyFunctionalComponent(originalComponent)) {\n component = defineComponent(__assign({ compatConfig: {\n MODE: 3,\n INSTANCE_LISTENERS: false,\n INSTANCE_ATTRS_CLASS_STYLE: false,\n COMPONENT_FUNCTIONAL: isLegacyFunctionalComponent(originalComponent)\n ? 'suppress-warning'\n : false\n }, props: originalComponent.props || {}, setup: function (props, _a) {\n var attrs = _a.attrs, slots = _a.slots;\n return function () {\n return h(originalComponent, __assign(__assign({}, props), attrs), slots);\n };\n } }, instanceOptions));\n rootComponents.functional = originalComponent;\n }\n else if (isObjectComponent(originalComponent)) {\n component = __assign(__assign({}, originalComponent), instanceOptions);\n }\n else {\n component = originalComponent;\n }\n rootComponents.component = component;\n // We've just replaced our component with its copy\n // Let's register it as a stub so user can find it\n registerStub({ source: originalComponent, stub: component });\n function slotToFunction(slot) {\n switch (typeof slot) {\n case 'function':\n return slot;\n case 'object':\n return function () { return h(slot); };\n case 'string':\n return processSlot(slot);\n default:\n throw Error(\"Invalid slot received.\");\n }\n }\n // handle any slots passed via mounting options\n var slots = (options === null || options === void 0 ? void 0 : options.slots) &&\n Object.entries(options.slots).reduce(function (acc, _a) {\n var name = _a[0], slot = _a[1];\n if (Array.isArray(slot)) {\n var normalized_1 = slot.map(slotToFunction);\n acc[name] = function (args) { return normalized_1.map(function (f) { return f(args); }); };\n return acc;\n }\n acc[name] = slotToFunction(slot);\n return acc;\n }, {});\n // override component data with mounting options data\n if (options === null || options === void 0 ? void 0 : options.data) {\n var providedData_1 = options.data();\n if (isObjectComponent(originalComponent)) {\n // component is guaranteed to be the same type as originalComponent\n var objectComponent = component;\n var originalDataFn_1 = originalComponent.data || (function () { return ({}); });\n objectComponent.data = function (vm) { return (__assign(__assign({}, originalDataFn_1.call(vm, vm)), providedData_1)); };\n }\n else {\n throw new Error('data() option is not supported on functional and class components');\n }\n }\n var MOUNT_COMPONENT_REF = 'VTU_COMPONENT';\n // we define props as reactive so that way when we update them with `setProps`\n // Vue's reactivity system will cause a rerender.\n var refs = shallowReactive({});\n var props = reactive({});\n Object.entries(__assign(__assign(__assign(__assign({}, options === null || options === void 0 ? void 0 : options.attrs), options === null || options === void 0 ? void 0 : options.propsData), options === null || options === void 0 ? void 0 : options.props), { ref: MOUNT_COMPONENT_REF })).forEach(function (_a) {\n var k = _a[0], v = _a[1];\n if (isDeepRef(v)) {\n refs[k] = v;\n }\n else {\n props[k] = v;\n }\n });\n var global = mergeGlobalProperties(options === null || options === void 0 ? void 0 : options.global);\n if (isObjectComponent(component)) {\n component.components = __assign(__assign({}, component.components), global.components);\n }\n var componentRef = ref(null);\n // create the wrapper component\n var Parent = defineComponent({\n name: 'VTU_ROOT',\n setup: function () {\n var _a;\n return _a = {},\n _a[MOUNT_COMPONENT_REF] = componentRef,\n _a;\n },\n render: function () {\n return h(component, __assign(__assign({}, props), refs), slots);\n }\n });\n // create the app\n var app = createApp(Parent);\n // add tracking for emitted events\n // this must be done after `createApp`: https://github.com/vuejs/test-utils/issues/436\n attachEmitListener();\n // global mocks mixin\n if (global === null || global === void 0 ? void 0 : global.mocks) {\n var mixin = {\n beforeCreate: function () {\n // we need to differentiate components that are or not not `script setup`\n // otherwise we run into a proxy set error\n // due to https://github.com/vuejs/core/commit/f73925d76a76ee259749b8b48cb68895f539a00f#diff-ea4d1ddabb7e22e17e80ada458eef70679af4005df2a1a6b73418fec897603ceR404\n // introduced in Vue v3.2.45\n // Also ensures not to include option API components in this block\n // since they can also have setup state but need to be patched using\n // the regular method.\n if (isScriptSetup(this)) {\n // add the mocks to setupState\n for (var _i = 0, _a = Object.entries(global.mocks); _i < _a.length; _i++) {\n var _b = _a[_i], k = _b[0], v = _b[1];\n // we do this in a try/catch, as some properties might be read-only\n try {\n this.$.setupState[k] = v;\n // eslint-disable-next-line no-empty\n }\n catch (e) { }\n }\n this.$.proxy = new Proxy(this.$.proxy, {\n get: function (target, key) {\n if (key in global.mocks) {\n return global.mocks[key];\n }\n return target[key];\n }\n });\n }\n else {\n for (var _c = 0, _d = Object.entries(global.mocks); _c < _d.length; _c++) {\n var _e = _d[_c], k = _e[0], v = _e[1];\n this[k] = v;\n }\n }\n }\n };\n app.mixin(mixin);\n }\n // AppConfig\n if (global.config) {\n for (var _i = 0, _a = Object.entries(global.config); _i < _a.length; _i++) {\n var _b = _a[_i], k = _b[0], v = _b[1];\n app.config[k] = isObject(app.config[k])\n ? Object.assign(app.config[k], v)\n : v;\n }\n }\n // provide any values passed via provides mounting option\n if (global.provide) {\n for (var _c = 0, _d = Reflect.ownKeys(global.provide); _c < _d.length; _c++) {\n var key = _d[_c];\n // @ts-ignore: https://github.com/microsoft/TypeScript/issues/1863\n app.provide(key, global.provide[key]);\n }\n }\n // use and plugins from mounting options\n if (global.plugins) {\n for (var _e = 0, _f = global.plugins; _e < _f.length; _e++) {\n var plugin = _f[_e];\n if (Array.isArray(plugin)) {\n app.use.apply(app, __spreadArray([plugin[0]], plugin.slice(1), false));\n continue;\n }\n app.use(plugin);\n }\n }\n // use any mixins from mounting options\n if (global.mixins) {\n for (var _g = 0, _h = global.mixins; _g < _h.length; _g++) {\n var mixin = _h[_g];\n app.mixin(mixin);\n }\n }\n if (global.components) {\n for (var _j = 0, _k = Object.keys(global.components); _j < _k.length; _j++) {\n var key = _k[_j];\n // avoid registering components that are stubbed twice\n if (!(key in global.stubs)) {\n app.component(key, global.components[key]);\n }\n }\n }\n if (global.directives) {\n for (var _l = 0, _m = Object.keys(global.directives); _l < _m.length; _l++) {\n var key = _m[_l];\n app.directive(key, global.directives[key]);\n }\n }\n // stubs\n // even if we are using `mount`, we will still\n // stub out Transition and Transition Group by default.\n transformVNodeArgs(createVNodeTransformer({\n rootComponents: rootComponents,\n transformers: [\n createStubComponentsTransformer({\n rootComponents: rootComponents,\n stubs: getComponentsFromStubs(global.stubs),\n shallow: options === null || options === void 0 ? void 0 : options.shallow,\n renderStubDefaultSlot: global.renderStubDefaultSlot\n }),\n createStubDirectivesTransformer({\n directives: getDirectivesFromStubs(global.stubs)\n })\n ]\n }));\n // users expect stubs to work with globally registered\n // components so we register stubs as global components to avoid\n // warning about not being able to resolve component\n //\n // component implementation provided here will never be called\n // but we need name to make sure that stubComponents will\n // properly stub this later by matching stub name\n //\n // ref: https://github.com/vuejs/test-utils/issues/249\n // ref: https://github.com/vuejs/test-utils/issues/425\n if (global === null || global === void 0 ? void 0 : global.stubs) {\n for (var _o = 0, _p = Object.keys(getComponentsFromStubs(global.stubs)); _o < _p.length; _o++) {\n var name_1 = _p[_o];\n if (!app.component(name_1)) {\n app.component(name_1, { name: name_1 });\n }\n }\n }\n return {\n app: app,\n props: props,\n componentRef: componentRef\n };\n}\n\nvar isEnabled = false;\nvar wrapperInstances = [];\nfunction disableAutoUnmount() {\n isEnabled = false;\n wrapperInstances.length = 0;\n}\nfunction enableAutoUnmount(hook) {\n if (isEnabled) {\n throw new Error('enableAutoUnmount cannot be called more than once');\n }\n isEnabled = true;\n hook(function () {\n wrapperInstances.forEach(function (wrapper) {\n wrapper.unmount();\n });\n wrapperInstances.length = 0;\n });\n}\nfunction trackInstance(wrapper) {\n if (!isEnabled)\n return;\n wrapperInstances.push(wrapper);\n}\n\n// implementation\nfunction mount(inputComponent, options) {\n var _a = createInstance(inputComponent, options), app = _a.app, props = _a.props, componentRef = _a.componentRef;\n var setProps = function (newProps) {\n for (var _i = 0, _a = Object.entries(newProps); _i < _a.length; _i++) {\n var _b = _a[_i], k = _b[0], v = _b[1];\n props[k] = v;\n }\n return vm.$nextTick();\n };\n // Workaround for https://github.com/vuejs/core/issues/7020\n var originalErrorHandler = app.config.errorHandler;\n var errorsOnMount = [];\n app.config.errorHandler = function (err, instance, info) {\n errorsOnMount.push(err);\n return originalErrorHandler === null || originalErrorHandler === void 0 ? void 0 : originalErrorHandler(err, instance, info);\n };\n // mount the app!\n var el = document.createElement('div');\n if (options === null || options === void 0 ? void 0 : options.attachTo) {\n var to = void 0;\n if (typeof options.attachTo === 'string') {\n to = document.querySelector(options.attachTo);\n if (!to) {\n throw new Error(\"Unable to find the element matching the selector \".concat(options.attachTo, \" given as the `attachTo` option\"));\n }\n }\n else {\n to = options.attachTo;\n }\n to.appendChild(el);\n }\n var vm = app.mount(el);\n if (errorsOnMount.length) {\n // If several errors are thrown during mount, then throw the first one\n throw errorsOnMount[0];\n }\n app.config.errorHandler = originalErrorHandler;\n var appRef = componentRef.value;\n // we add `hasOwnProperty` so Jest can spy on the proxied vm without throwing\n // note that this is not necessary with Jest v27+ or Vitest, but is kept for compatibility with older Jest versions\n if (!app.hasOwnProperty) {\n appRef.hasOwnProperty = function (property) {\n return Reflect.has(appRef, property);\n };\n }\n var wrapper = createVueWrapper(app, appRef, setProps);\n trackInstance(wrapper);\n return wrapper;\n}\nvar shallowMount = function (component, options) {\n return mount(component, __assign(__assign({}, options), { shallow: true }));\n};\n\nfunction renderToString(component, options) {\n if (options === null || options === void 0 ? void 0 : options.attachTo) {\n console.warn('attachTo option is not available for renderToString');\n }\n var app = createInstance(component, options).app;\n return renderToString$1(app);\n}\n\n// match return type of router.resolve: RouteLocation & { href: string }\nvar defaultRoute = {\n path: '/',\n name: undefined,\n redirectedFrom: undefined,\n params: {},\n query: {},\n hash: '',\n fullPath: '/',\n matched: [],\n meta: {},\n href: '/'\n};\n// TODO: Borrow typings from vue-router-next\nvar RouterLinkStub = defineComponent({\n name: 'RouterLinkStub',\n compatConfig: { MODE: 3 },\n props: {\n to: {\n type: [String, Object],\n required: true\n },\n custom: {\n type: Boolean,\n default: false\n }\n },\n render: function () {\n var _this = this;\n var _a, _b;\n var route = computed(function () { return defaultRoute; });\n // mock reasonable return values to mimic vue-router's useLink\n var children = (_b = (_a = this.$slots) === null || _a === void 0 ? void 0 : _a.default) === null || _b === void 0 ? void 0 : _b.call(_a, {\n route: route,\n href: computed(function () { return route.value.href; }),\n isActive: computed(function () { return false; }),\n isExactActive: computed(function () { return false; }),\n navigate: function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/];\n }); }); }\n });\n return this.custom ? children : h('a', undefined, children);\n }\n});\n\nvar scheduler = typeof setImmediate === 'function' ? setImmediate : setTimeout;\n// Credit to: https://github.com/kentor/flush-promises\nfunction flushPromises() {\n return new Promise(function (resolve) {\n scheduler(resolve, 0);\n });\n}\n\nexport { BaseWrapper, DOMWrapper, RouterLinkStub, VueWrapper, config, createWrapperError, disableAutoUnmount, enableAutoUnmount, flushPromises, mount, renderToString, shallowMount };\n","import { shallowMount } from '@vue/test-utils';\nimport Loki from '@shell/edit/logging.banzaicloud.io.output/providers/loki.vue';\n\ndescribe('component: Loki', () => {\n it('should display URL placeholder', () => {\n const wrapper = shallowMount(Loki, { props: { mode: 'edit', namespace: 'whatever' } });\n const url = 'https://127.0.0.1:8000';\n\n const placeholder = wrapper.find('[data-testid=\"loki-url\"]').attributes('placeholder');\n\n expect(placeholder).toBe(url);\n });\n});\n","<script>\nimport isEmpty from 'lodash/isEmpty';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport { CONTAINER_DEFAULT_RESOURCE_LIMIT } from '@shell/config/labels-annotations';\nimport { cleanUp } from '@shell/utils/object';\nimport { _VIEW } from '@shell/config/query-params';\n\nexport default {\n emits: ['update:value'],\n\n components: { UnitInput },\n\n props: {\n mode: {\n type: String,\n default: 'create'\n },\n\n namespace: {\n type: Object,\n default: null\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n handleGpuLimit: {\n type: Boolean,\n default: true\n },\n\n registerBeforeHook: {\n type: Function,\n default: null\n },\n\n showTip: {\n type: Boolean,\n default: true\n }\n },\n\n data() {\n const {\n limitsCpu, limitsMemory, requestsCpu, requestsMemory, limitsGpu\n } = this.value;\n\n return {\n limitsCpu, limitsMemory, requestsCpu, requestsMemory, limitsGpu, viewMode: _VIEW\n };\n },\n\n watch: {\n value() {\n const {\n limitsCpu, limitsMemory, requestsCpu, requestsMemory, limitsGpu\n } = this.value;\n\n this.limitsCpu = limitsCpu;\n this.limitsMemory = limitsMemory;\n this.requestsCpu = requestsCpu;\n this.requestsMemory = requestsMemory;\n this.limitsGpu = limitsGpu;\n }\n },\n\n computed: {\n detailTopColumns() {\n return [\n {\n title: this.$store.getters['i18n/t']('generic.created'),\n name: 'created'\n },\n ];\n },\n },\n\n created() {\n if (this?.namespace?.id) {\n this.initLimits();\n }\n\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.updateBeforeSave);\n }\n },\n\n methods: {\n updateLimits() {\n const {\n limitsCpu,\n limitsMemory,\n requestsCpu,\n requestsMemory,\n limitsGpu\n } = this;\n\n this.$emit('update:value', cleanUp({\n limitsCpu,\n limitsMemory,\n requestsCpu,\n limitsGpu,\n requestsMemory\n }));\n },\n\n updateBeforeSave(value) {\n const {\n limitsCpu,\n limitsMemory,\n requestsCpu,\n requestsMemory,\n limitsGpu\n } = this;\n const namespace = this.namespace; // no deep copy in destructure proxy yet\n\n const out = cleanUp({\n limitsCpu,\n limitsMemory,\n requestsCpu,\n limitsGpu,\n requestsMemory\n });\n\n if (namespace) {\n namespace.setAnnotation(CONTAINER_DEFAULT_RESOURCE_LIMIT, JSON.stringify(out));\n }\n },\n\n initLimits() {\n const namespace = this.namespace;\n const defaults = namespace?.metadata?.annotations[CONTAINER_DEFAULT_RESOURCE_LIMIT];\n\n // Ember UI can set the defaults to the string literal 'null'\n if (!isEmpty(defaults) && defaults !== 'null') {\n const {\n limitsCpu,\n limitsMemory,\n requestsCpu,\n requestsMemory,\n limitsGpu\n } = JSON.parse(defaults);\n\n this.limitsCpu = limitsCpu;\n this.limitsMemory = limitsMemory;\n this.requestsCpu = requestsCpu;\n this.requestsMemory = requestsMemory;\n this.limitsGpu = limitsGpu;\n }\n },\n }\n\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div\n v-if=\"showTip\"\n class=\"col span-12\"\n >\n <p class=\"helper-text mb-10\">\n <t\n v-if=\"mode === viewMode\"\n k=\"containerResourceLimit.helpTextDetail\"\n />\n <t\n v-else\n k=\"containerResourceLimit.helpText\"\n />\n </p>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <span class=\"col span-6\">\n <UnitInput\n v-model:value=\"requestsCpu\"\n :placeholder=\"t('containerResourceLimit.cpuPlaceholder')\"\n :label=\"t('containerResourceLimit.requestsCpu')\"\n :mode=\"mode\"\n :input-exponent=\"-1\"\n :output-modifier=\"true\"\n :base-unit=\"t('suffix.cpus')\"\n data-testid=\"cpu-reservation\"\n @update:value=\"updateLimits\"\n />\n </span>\n <span class=\"col span-6\">\n <UnitInput\n v-model:value=\"requestsMemory\"\n :placeholder=\"t('containerResourceLimit.memPlaceholder')\"\n :label=\"t('containerResourceLimit.requestsMemory')\"\n :mode=\"mode\"\n :input-exponent=\"2\"\n :increment=\"1024\"\n :output-modifier=\"true\"\n data-testid=\"memory-reservation\"\n @update:value=\"updateLimits\"\n />\n </span>\n </div>\n\n <div class=\"row mb-20\">\n <span class=\"col span-6\">\n <UnitInput\n v-model:value=\"limitsCpu\"\n :placeholder=\"t('containerResourceLimit.cpuPlaceholder')\"\n :label=\"t('containerResourceLimit.limitsCpu')\"\n :mode=\"mode\"\n :input-exponent=\"-1\"\n :output-modifier=\"true\"\n :base-unit=\"t('suffix.cpus')\"\n data-testid=\"cpu-limit\"\n @update:value=\"updateLimits\"\n />\n </span>\n <span class=\"col span-6\">\n <UnitInput\n v-model:value=\"limitsMemory\"\n :placeholder=\"t('containerResourceLimit.memPlaceholder')\"\n :label=\"t('containerResourceLimit.limitsMemory')\"\n :mode=\"mode\"\n :input-exponent=\"2\"\n :increment=\"1024\"\n :output-modifier=\"true\"\n data-testid=\"memory-limit\"\n @update:value=\"updateLimits\"\n />\n </span>\n </div>\n <div\n v-if=\"handleGpuLimit\"\n class=\"row\"\n >\n <span class=\"col span-6\">\n <UnitInput\n v-model:value=\"limitsGpu\"\n :placeholder=\"t('containerResourceLimit.gpuPlaceholder')\"\n :label=\"t('containerResourceLimit.limitsGpu')\"\n :mode=\"mode\"\n :base-unit=\"t('suffix.gpus')\"\n data-testid=\"gpu-limit\"\n @update:value=\"updateLimits\"\n />\n </span>\n </div>\n </div>\n</template>\n","import { render } from \"./ContainerResourceLimit.vue?vue&type=template&id=471a3629\"\nimport script from \"./ContainerResourceLimit.vue?vue&type=script&lang=js\"\nexport * from \"./ContainerResourceLimit.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nexport default {\n props: {\n to: {\n type: [String, Object],\n required: true\n },\n\n prefix: {\n type: String,\n default: ''\n },\n\n suffix: {\n type: String,\n default: ''\n },\n\n middle: {\n type: String,\n default: ''\n },\n\n prefixLabel: {\n type: String,\n default: ''\n },\n\n suffixLabel: {\n type: String,\n default: ''\n },\n\n middleLabel: {\n type: String,\n default: ''\n },\n\n target: {\n type: String,\n default: 'self'\n }\n }\n};\n</script>\n\n<template>\n <div>\n <slot name=\"prefix\">\n <t\n v-if=\"prefixLabel\"\n :k=\"prefixLabel\"\n :raw=\"true\"\n />\n {{ prefix }}\n </slot>\n <router-link\n :to=\"to\"\n :target=\"target\"\n >\n <slot name=\"middle\">\n <t\n v-if=\"middleLabel\"\n :k=\"middleLabel\"\n :raw=\"true\"\n />\n {{ middle }}\n </slot>\n </router-link>\n <slot name=\"suffix\">\n <t\n v-if=\"suffixLabel\"\n :k=\"suffixLabel\"\n :raw=\"true\"\n />\n {{ suffix }}\n </slot>\n </div>\n</template>\n","import { render } from \"./MessageLink.vue?vue&type=template&id=e05ba5fa\"\nimport script from \"./MessageLink.vue?vue&type=script&lang=js\"\nexport * from \"./MessageLink.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport LazyImage from '@shell/components/LazyImage';\nimport { get } from '@shell/utils/object';\nimport capitalize from 'lodash/capitalize';\n\nexport default {\n emits: ['clicked'],\n\n components: { LazyImage },\n\n props: {\n rows: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'key',\n },\n iconField: {\n type: String,\n default: 'icon',\n },\n nameField: {\n type: String,\n default: 'name',\n },\n descriptionField: {\n type: String,\n default: 'description',\n },\n sideLabelField: {\n type: String,\n default: 'sideLabel',\n },\n disabledField: {\n type: String,\n default: 'disabled',\n },\n\n asLink: {\n type: Boolean,\n default: false,\n },\n linkField: {\n type: String,\n default: 'link'\n },\n targetField: {\n type: String,\n default: 'target',\n },\n rel: {\n type: String,\n default: 'noopener noreferrer nofollow'\n },\n\n noDataKey: {\n type: String,\n default: 'sortableTable.noRows',\n },\n\n colorFor: {\n type: Function,\n default: (r, idx) => `color${ (idx % 8) + 1 }`,\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'select-icon-grid'\n }\n },\n\n methods: {\n get,\n\n isDisabled(idx) {\n return get(this.rows[idx], this.disabledField) === true;\n },\n\n select(row, idx) {\n if ( this.isDisabled(idx) ) {\n return;\n }\n\n this.$emit('clicked', row, idx);\n },\n capitalize\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"rows.length\"\n class=\"grid\"\n >\n <component\n :is=\"asLink ? 'a' : 'div'\"\n v-for=\"(r, idx) in rows\"\n :key=\"get(r, keyField)\"\n :role=\"asLink ? 'link' : null\"\n :aria-disabled=\"asLink && get(r, disabledField) === true ? true : null\"\n :aria-label=\"get(r, nameField)\"\n :tabindex=\"get(r, disabledField) === true ? -1 : 0\"\n :href=\"asLink ? get(r, linkField) : null\"\n :target=\"get(r, targetField)\"\n :rel=\"rel\"\n class=\"item\"\n :data-testid=\"componentTestid + '-' + get(r, nameField)\"\n :class=\"{\n 'has-description': !!get(r, descriptionField),\n 'has-side-label': !!get(r, sideLabelField),\n [colorFor(r, idx)]: true,\n disabled: get(r, disabledField) === true\n }\"\n @click=\"select(r, idx)\"\n @keyup.enter.space=\"select(r, idx)\"\n >\n <div\n class=\"side-label\"\n :class=\"{'indicator': true }\"\n />\n <div v-if=\"r.deploysOnWindows\">\n <label class=\"deploys-os-label\">\n {{ t('catalog.charts.deploysOnWindows') }}\n </label>\n </div>\n <div v-if=\"r.windowsIncompatible\">\n <label class=\"os-incompatible-label\">\n {{ t('catalog.charts.windowsIncompatible') }}\n </label>\n </div>\n <div\n v-if=\"get(r, sideLabelField)\"\n class=\"side-label\"\n :class=\"{'indicator': false }\"\n >\n <label>{{ get(r, sideLabelField) }}</label>\n </div>\n\n <div class=\"logo\">\n <i\n v-if=\"r.iconClass\"\n :class=\"r.iconClass\"\n />\n <LazyImage\n v-else\n :src=\"get(r, iconField)\"\n />\n </div>\n <h4 class=\"name\">\n {{ get(r, nameField) }}\n </h4>\n <div\n v-if=\"get(r, descriptionField)\"\n class=\"description\"\n >\n {{ get(r, descriptionField) }}\n </div>\n </component>\n </div>\n <div\n v-else\n class=\"m-50 text-center\"\n >\n <h1 v-t=\"noDataKey\" />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n $height: 135px;\n $side: 15px;\n $margin: 10px;\n $logo: 60px;\n $hover-border-width: 1px;\n\n .grid {\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n margin: 0 -1*$margin;\n\n @media only screen and (min-width: map-get($breakpoints, '--viewport-4')) {\n .item {\n width: 100%;\n }\n }\n @media only screen and (min-width: map-get($breakpoints, '--viewport-7')) {\n .item {\n width: calc(50% - 2 * #{$margin});\n }\n }\n @media only screen and (min-width: map-get($breakpoints, '--viewport-9')) {\n .item {\n width: calc(33.33333% - 2 * #{$margin});\n }\n }\n @media only screen and (min-width: map-get($breakpoints, '--viewport-12')) {\n .item {\n width: calc(25% - 2 * #{$margin});\n }\n }\n\n $color: var(--body-text) !important;\n\n .item {\n height: $height;\n margin: $margin;\n padding: $margin;\n position: relative;\n //border-radius: calc( 1.5 * var(--border-radius));\n border: 1px solid var(--border);\n text-decoration: none !important;\n color: $color;\n\n &:focus-visible {\n @include focus-outline;\n }\n\n &:hover:not(.disabled) {\n box-shadow: 0 0 30px var(--shadow);\n transition: box-shadow 0.1s ease-in-out;\n cursor: pointer;\n text-decoration: none !important;\n }\n\n .side-label {\n position: absolute;\n top: 10px;\n right: 10px;\n padding: 2px 5px;\n\n &.indicator {\n top: 0;\n right: 0;\n left: 0;\n }\n\n }\n\n .side-label label, label.deploys-os-label, label.os-incompatible-label{\n font-size: 12px;\n line-height: 12px;\n text-align: center;\n display: block;\n white-space: no-wrap;\n text-overflow: ellipsis;\n // Override default form label properties\n color: var(--card-badge-text);\n margin: 0;\n }\n\n .deploys-os-label, .os-incompatible-label {\n position: absolute;\n bottom: 10px;\n padding: 2px 5px;\n right: 10px;\n }\n\n label.os-incompatible-label {\n color: var(--warning);\n background-color: var(--warning-banner-bg)\n }\n\n .logo {\n text-align: center;\n position: absolute;\n left: $side+$margin;\n top: math.div(($height - $logo), 2);\n width: $logo;\n height: $logo;\n border-radius: calc(2 * var(--border-radius));\n overflow: hidden;\n background-color: white;\n\n img {\n width: $logo - 4px;\n height: $logo - 4px;\n object-fit: contain;\n position: relative;\n top: 2px;\n }\n\n i {\n background-position: center;\n background-repeat: no-repeat;\n display: flex;\n height: $logo - 4px;\n margin: 2px;\n width: $logo - 4px;\n }\n }\n\n &.rancher {\n .side-label, .deploys-os-label {\n background-color: var(--app-rancher-accent);\n label {\n color: var(--app-rancher-accent-text);\n }\n }\n &:hover:not(.disabled) {\n border-color: var(--app-rancher-accent);\n }\n }\n\n &.partner {\n .side-label, .deploys-os-label {\n background-color: var(--app-partner-accent);\n label {\n color: var(--app-partner-accent-text);\n }\n }\n &:hover:not(.disabled) {\n border-color: var(--app-partner-accent);\n }\n }\n\n // @TODO figure out how to templatize these\n &.color1 {\n .side-label, .deploys-os-label { background-color: var(--app-color1-accent); label { color: var(--app-color1-accent-text); } }\n &:hover:not(.disabled) { border-color: var(--app-color1-accent); }\n }\n &.color2 {\n .side-label, .deploys-os-label { background-color: var(--app-color2-accent); label { color: var(--app-color2-accent-text); } }\n &:hover:not(.disabled) { border-color: var(--app-color2-accent); }\n }\n &.color3 {\n .side-label, .deploys-os-label { background-color: var(--app-color3-accent); label { color: var(--app-color3-accent-text); } }\n &:hover:not(.disabled) { border-color: var(--app-color3-accent); }\n }\n &.color4 {\n .side-label, .deploys-os-label { background-color: var(--app-color4-accent); label { color: var(--app-color4-accent-text); } }\n &:hover:not(.disabled) { border-color: var(--app-color4-accent); }\n }\n &.color5 {\n .side-label, .deploys-os-label { background-color: var(--app-color5-accent); label { color: var(--app-color5-accent-text); } }\n &:hover:not(.disabled) { border-color: var(--app-color5-accent); }\n }\n &.color6 {\n .side-label, .deploys-os-label { background-color: var(--app-color6-accent); label { color: var(--app-color6-accent-text); } }\n &:hover:not(.disabled) { border-color: var(--app-color6-accent); }\n }\n &.color7 {\n .side-label, .deploys-os-label { background-color: var(--app-color7-accent); label { color: var(--app-color7-accent-text); } }\n &:hover:not(.disabled) { border-color: var(--app-color7-accent); }\n }\n &.color8 {\n .side-label, .deploys-os-label { background-color: var(--app-color8-accent); label { color: var(--app-color8-accent-text); } }\n &:hover:not(.disabled) { border-color: var(--app-color8-accent); }\n }\n\n &:hover:not(.disabled) {\n background-position: right center;\n border-left-width: $hover-border-width;\n //padding-left: $margin+(-$hover-border-width);\n .logo {\n left: 1px+$side+$margin+(-$hover-border-width);\n }\n .name {\n margin-left: $side+$logo+$margin+1px+(-$hover-border-width);\n\n }\n }\n\n .name {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: $height - (2 * $margin);\n margin: 0;\n margin-left: $side+$logo+$margin;\n }\n\n &.has-description {\n .name {\n margin-top: $margin;\n line-height: initial;\n }\n\n &.has-side-label {\n .name {\n margin-top: $margin + 5px;\n }\n }\n }\n\n .description {\n margin-top: $margin;\n margin-left: $side+$logo+$margin;\n margin-right: $margin;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--text-muted) !important;\n }\n }\n\n .disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n</style>\n","import { render } from \"./SelectIconGrid.vue?vue&type=template&id=c15e59a6&scoped=true\"\nimport script from \"./SelectIconGrid.vue?vue&type=script&lang=js\"\nexport * from \"./SelectIconGrid.vue?vue&type=script&lang=js\"\n\nimport \"./SelectIconGrid.vue?vue&type=style&index=0&id=c15e59a6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c15e59a6\"]])\n\nexport default __exports__","<script>\nexport default {\n props: {\n icon: {\n type: String,\n default: ''\n },\n text: {\n type: String,\n default: ''\n }\n }\n};\n</script>\n\n<template>\n <div class=\"tip\">\n <span\n class=\"my-icon\"\n :class=\"icon\"\n />\n <slot>\n <span class=\"text\">{{ text }}</span>\n </slot>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.tip {\n color: var(--disabled-text);\n display: flex;\n align-items: center;\n}\n\n.my-icon {\n font-size: 16px;\n margin-right: 2px;\n}\n\n.text {\n font-size: 14px;\n}\n</style>\n","import { render } from \"./Tip.vue?vue&type=template&id=491e4180&scoped=true\"\nimport script from \"./Tip.vue?vue&type=script&lang=js\"\nexport * from \"./Tip.vue?vue&type=script&lang=js\"\n\nimport \"./Tip.vue?vue&type=style&index=0&id=491e4180&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-491e4180\"]])\n\nexport default __exports__","<script>\r\nimport ArrayList from '@shell/components/form/ArrayList';\r\nimport Select from '@shell/components/form/Select';\r\n\r\nexport default {\r\n emits: ['update:value'],\r\n\r\n components: { ArrayList, Select },\r\n props: {\r\n value: {\r\n type: Array,\r\n required: true\r\n },\r\n options: {\r\n default: null,\r\n type: Array\r\n },\r\n selectProps: {\r\n type: Object,\r\n default: null,\r\n },\r\n arrayListProps: {\r\n type: Object,\r\n default: null\r\n },\r\n enableDefaultAddValue: {\r\n type: Boolean,\r\n default: true\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n computed: {\r\n filteredOptions() {\r\n return this.options\r\n .filter((option) => !this.value.includes(option.value));\r\n },\r\n\r\n addAllowed() {\r\n return this.arrayListProps?.addAllowed || this.filteredOptions.length > 0;\r\n },\r\n\r\n defaultAddValue() {\r\n return this.enableDefaultAddValue ? this.options[0]?.value : '';\r\n },\r\n\r\n getOptionLabel() {\r\n return this.selectProps?.getOptionLabel ? (opt) => (this.selectProps?.getOptionLabel(opt) || opt) : undefined;\r\n }\r\n },\r\n\r\n methods: {\r\n updateRow(index, value) {\r\n this.value.splice(index, 1, value);\r\n this.$emit('update:value', this.value);\r\n },\r\n calculateOptions(value) {\r\n const valueOption = this.options.find((o) => o.value === value);\r\n\r\n if (valueOption) {\r\n return [valueOption, ...this.filteredOptions];\r\n }\r\n\r\n return this.filteredOptions;\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <ArrayList\r\n v-bind=\"arrayListProps\"\r\n :value=\"value\"\r\n class=\"array-list-select\"\r\n :add-allowed=\"addAllowed || loading\"\r\n :loading=\"loading\"\r\n :defaultAddValue=\"defaultAddValue\"\r\n :disabled=\"disabled\"\r\n @update:value=\"$emit('update:value', $event)\"\r\n >\r\n <template v-slot:columns=\"scope\">\r\n <Select\r\n :value=\"scope.row.value\"\r\n v-bind=\"selectProps\"\r\n :options=\"calculateOptions(scope.row.value)\"\r\n :get-option-label=\"getOptionLabel\"\r\n @update:value=\"updateRow(scope.i, $event)\"\r\n />\r\n </template>\r\n </ArrayList>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n:deep() .unlabeled-select {\r\n height: 61px;\r\n }\r\n</style>\r\n","import { render } from \"./ArrayListSelect.vue?vue&type=template&id=313aeca6&scoped=true\"\nimport script from \"./ArrayListSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ArrayListSelect.vue?vue&type=script&lang=js\"\n\nimport \"./ArrayListSelect.vue?vue&type=style&index=0&id=313aeca6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-313aeca6\"]])\n\nexport default __exports__","<script>\r\nimport { NORMAN } from '@shell/config/types';\r\nimport { _CREATE, _VIEW } from '@shell/config/query-params';\r\nimport MembershipEditor, { canViewMembershipEditor } from '@shell/components/form/Members/MembershipEditor';\r\n\r\nexport function canViewProjectMembershipEditor(store) {\r\n return canViewMembershipEditor(store, true);\r\n}\r\n\r\nexport default {\r\n components: { MembershipEditor },\r\n\r\n props: {\r\n parentId: {\r\n type: String,\r\n default: null\r\n },\r\n\r\n mode: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n NORMAN, bindings: [], lastSavedBindings: []\r\n };\r\n },\r\n\r\n computed: {\r\n isCreate() {\r\n return this.mode === _CREATE;\r\n },\r\n\r\n isView() {\r\n return this.mode === _VIEW;\r\n }\r\n },\r\n\r\n methods: {\r\n defaultBindingHandler() {\r\n return this.$store.dispatch(`management/create`, {\r\n type: NORMAN.PROJECT_ROLE_TEMPLATE_BINDING,\r\n roleTemplateId: 'project-owner',\r\n userPrincipalId: this.$store.getters['auth/principalId'],\r\n });\r\n }\r\n }\r\n};\r\n</script>\r\n<template>\r\n <MembershipEditor\r\n ref=\"editor\"\r\n add-member-dialog-name=\"AddProjectMemberDialog\"\r\n :modal-sticky=\"true\"\r\n :default-binding-handler=\"defaultBindingHandler\"\r\n :type=\"NORMAN.PROJECT_ROLE_TEMPLATE_BINDING\"\r\n :mode=\"mode\"\r\n parent-key=\"projectId\"\r\n :parent-id=\"parentId\"\n />\r\n</template>\r\n","<script>\r\nimport { MANAGEMENT, NORMAN } from '@shell/config/types';\r\nimport ArrayList from '@shell/components/form/ArrayList';\r\nimport Loading from '@shell/components/Loading';\r\nimport { _CREATE, _VIEW } from '@shell/config/query-params';\r\nimport { get, set } from '@shell/utils/object';\r\n\r\nfunction normalizeId(id) {\r\n return id?.replace(':', '/') || id;\r\n}\r\n\r\nexport function canViewMembershipEditor(store, needsProject = false) {\r\n return (!!store.getters['management/schemaFor'](MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING) || !needsProject) &&\r\n !!store.getters['management/schemaFor'](MANAGEMENT.ROLE_TEMPLATE) &&\r\n !!store.getters['rancher/schemaFor'](NORMAN.PRINCIPAL);\r\n}\r\n\r\nexport default {\r\n emits: ['membership-update'],\r\n\r\n components: { ArrayList, Loading },\r\n\r\n props: {\r\n addMemberDialogName: {\r\n type: String,\r\n required: true\r\n },\r\n\r\n parentKey: {\r\n type: String,\r\n required: true\r\n },\r\n\r\n parentId: {\r\n type: String,\r\n default: null\r\n },\r\n\r\n mode: {\r\n type: String,\r\n required: true\r\n },\r\n\r\n type: {\r\n type: String,\r\n required: true\r\n },\r\n\r\n defaultBindingHandler: {\r\n type: Function,\r\n default: null,\r\n },\r\n\r\n modalSticky: {\r\n type: Boolean,\r\n default: false,\r\n }\r\n },\r\n\r\n async fetch() {\r\n const roleBindingRequestParams = { type: this.type, opt: { force: true } };\r\n\r\n if (this.type === NORMAN.PROJECT_ROLE_TEMPLATE_BINDING && this.parentId) {\r\n Object.assign(roleBindingRequestParams, { opt: { filter: { projectId: this.parentId.split('/').join(':') } } });\r\n }\r\n const userHydration = [\r\n this.schema ? this.$store.dispatch(`rancher/findAll`, roleBindingRequestParams) : [],\r\n this.$store.dispatch('rancher/findAll', { type: NORMAN.PRINCIPAL }),\r\n this.$store.dispatch(`management/findAll`, { type: MANAGEMENT.ROLE_TEMPLATE }),\r\n this.$store.dispatch(`management/findAll`, { type: MANAGEMENT.USER })\r\n ];\r\n const [allBindings] = await Promise.all(userHydration);\r\n\r\n const bindings = allBindings\r\n .filter((b) => normalizeId(get(b, this.parentKey)) === normalizeId(this.parentId));\r\n\r\n this['lastSavedBindings'] = [...bindings];\r\n\r\n // Add the current user as the project owner. This will get created by default\r\n if (this.mode === _CREATE && bindings.length === 0 && this.defaultBindingHandler) {\r\n const defaultBinding = await this.defaultBindingHandler();\r\n\r\n defaultBinding.isDefaultBinding = true;\r\n bindings.push(defaultBinding);\r\n }\r\n\r\n this['bindings'] = bindings;\r\n },\r\n\r\n data() {\r\n return {\r\n schema: this.$store.getters[`rancher/schemaFor`](this.type),\r\n bindings: [],\r\n lastSavedBindings: [],\r\n };\r\n },\r\n\r\n computed: {\r\n newBindings() {\r\n return this.bindings\r\n .filter((binding) => !binding.id && !this.lastSavedBindings.includes(binding) && !binding.isDefaultBinding);\r\n },\r\n removedBindings() {\r\n return this.lastSavedBindings\r\n .filter((binding) => !this.bindings.includes(binding));\r\n },\r\n membershipUpdate() {\r\n const newBindings = this.newBindings;\r\n const removedBindings = this.removedBindings;\r\n\r\n return {\r\n newBindings: this.newBindings,\r\n removedBindings: this.removedBindings,\r\n save: (parentId) => {\r\n const savedPromises = newBindings.map((binding) => {\r\n set(binding, this.parentKey, parentId);\r\n\r\n return binding.save();\r\n });\r\n\r\n const removedPromises = removedBindings.map((binding) => binding.remove());\r\n\r\n return Promise.all([...savedPromises, ...removedPromises]);\r\n }\r\n };\r\n },\r\n\r\n isCreate() {\r\n return this.mode === _CREATE;\r\n },\r\n\r\n isView() {\r\n return this.mode === _VIEW;\r\n },\r\n },\r\n watch: {\r\n membershipUpdate: {\r\n deep: true,\r\n handler() {\r\n this.$emit('membership-update', this.membershipUpdate);\r\n }\r\n }\r\n },\r\n\r\n methods: {\r\n addMember() {\r\n this.$store.dispatch('cluster/promptModal', {\r\n component: this.addMemberDialogName,\r\n componentProps: { onAdd: this.onAddMember },\r\n modalSticky: this.modalSticky\r\n });\r\n },\r\n\r\n onAddMember(bindings) {\r\n this['bindings'] = [...this.bindings, ...bindings];\r\n },\r\n }\r\n};\r\n</script>\r\n<template>\r\n <Loading v-if=\"$fetchState.pending\" />\r\n <ArrayList\r\n v-else\r\n v-model:value=\"bindings\"\r\n :mode=\"mode\"\r\n :show-header=\"true\"\r\n >\r\n <template #column-headers>\r\n <div class=\"box mb-0\">\r\n <div class=\"column-headers row\">\r\n <div class=\"col span-6\">\r\n <label class=\"text-label\">{{ t('membershipEditor.user') }}</label>\r\n </div>\r\n <div class=\"col span-6\">\r\n <label class=\"text-label\">{{ t('membershipEditor.role') }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </template>\r\n <template #columns=\"{row}\">\r\n <div class=\"columns row\">\r\n <div class=\"col span-6\">\r\n <Principal\r\n :value=\"row.value.principalId\"\r\n />\r\n </div>\r\n <div class=\"col span-6 role\">\r\n {{ row.value.roleDisplay }}\r\n </div>\r\n </div>\r\n </template>\r\n <template #add>\r\n <button\r\n type=\"button\"\r\n class=\"btn role-primary mt-10\"\r\n @click=\"addMember\"\r\n >\r\n {{ t('generic.add') }}\r\n </button>\r\n </template>\r\n <template #remove-button=\"{remove, i}\">\r\n <span v-if=\"(isCreate && i === 0) || isView\" />\r\n <button\r\n v-else\r\n type=\"button\"\r\n :disabled=\"isView\"\r\n class=\"btn role-link\"\r\n @click=\"remove\"\r\n >\r\n {{ t('generic.remove') }}\r\n </button>\r\n </template>\r\n </ArrayList>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.role {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: row;\r\n}\r\n</style>\r\n","import { render } from \"./MembershipEditor.vue?vue&type=template&id=6f184c54&scoped=true\"\nimport script from \"./MembershipEditor.vue?vue&type=script&lang=js\"\nexport * from \"./MembershipEditor.vue?vue&type=script&lang=js\"\n\nimport \"./MembershipEditor.vue?vue&type=style&index=0&id=6f184c54&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6f184c54\"]])\n\nexport default __exports__","import { render } from \"./ProjectMembershipEditor.vue?vue&type=template&id=0a642b08\"\nimport script from \"./ProjectMembershipEditor.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectMembershipEditor.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters, mapActions } from 'vuex';\nimport { get, set } from '@shell/utils/object';\nimport { sortBy } from '@shell/utils/sort';\nimport { NAMESPACE } from '@shell/config/types';\nimport { DESCRIPTION } from '@shell/config/labels-annotations';\nimport { _VIEW, _EDIT, _CREATE } from '@shell/config/query-params';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { normalizeName } from '@shell/utils/kube';\n\nexport default {\n name: 'NameNsDescription',\n\n emits: ['update:value', 'isNamespaceNew'],\n\n components: {\n LabeledInput,\n LabeledSelect,\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n mode: {\n type: String,\n required: true,\n },\n nameNsHidden: {\n type: Boolean,\n default: false,\n },\n descriptionHidden: {\n type: Boolean,\n default: false,\n },\n extraColumns: {\n type: Array,\n default: () => [],\n },\n nameLabel: {\n type: String,\n default: 'nameNsDescription.name.label',\n },\n nameEditable: {\n type: Boolean,\n default: false,\n },\n namePlaceholder: {\n type: String,\n default: 'nameNsDescription.name.placeholder',\n },\n nameDisabled: {\n type: Boolean,\n default: false,\n },\n nameRequired: {\n type: Boolean,\n default: true,\n },\n nameNormalized: {\n type: Boolean,\n default: true,\n },\n namespaced: {\n type: Boolean,\n default: true,\n },\n namespaceFilter: { type: Function, default: null },\n namespaceMapper: { type: Function, default: null },\n namespaceType: {\n type: String,\n default: NAMESPACE,\n },\n namespaceLabel: {\n type: String,\n default: 'nameNsDescription.namespace.label',\n },\n namespacePlaceholder: {\n type: String,\n default: 'nameNsDescription.namespace.placeholder',\n },\n namespaceDisabled: {\n type: Boolean,\n default: false,\n },\n namespaceNewAllowed: {\n type: Boolean,\n default: false,\n },\n noDefaultNamespace: {\n type: Boolean,\n default: false\n },\n /**\n * Use these objects instead of namespaces\n */\n namespacesOverride: {\n type: Array,\n default: null,\n },\n /**\n * User these namespaces instead of determining list within component\n */\n namespaceOptions: {\n type: Array,\n default: null,\n },\n createNamespaceOverride: {\n type: Boolean,\n default: false,\n },\n descriptionLabel: {\n type: String,\n default: 'nameNsDescription.description.label',\n },\n descriptionPlaceholder: {\n type: String,\n default: 'nameNsDescription.description.placeholder',\n },\n descriptionDisabled: {\n type: Boolean,\n default: false,\n },\n // Use specific fields on the value instead of the normal metadata locations\n nameKey: {\n type: String,\n default: null,\n },\n namespaceKey: {\n type: String,\n default: null,\n },\n descriptionKey: {\n type: String,\n default: null,\n },\n forceNamespace: {\n type: String,\n default: null,\n },\n showSpacer: {\n type: Boolean,\n default: true\n },\n horizontal: {\n type: Boolean,\n default: true,\n },\n rules: {\n default: () => ({\n namespace: [],\n name: [],\n description: []\n }),\n type: Object,\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'name-ns-description'\n }\n },\n\n data() {\n const v = this.value;\n const metadata = v.metadata;\n let namespace, name, description;\n\n if (this.nameKey) {\n name = get(v, this.nameKey);\n } else {\n name = metadata?.name;\n }\n\n if (this.namespaced) {\n if (this.forceNamespace) {\n namespace = this.forceNamespace;\n this.updateNamespace(namespace);\n } else if (this.namespaceKey) {\n namespace = get(v, this.namespaceKey);\n } else {\n namespace = metadata?.namespace;\n }\n\n if (!namespace && !this.noDefaultNamespace) {\n namespace = this.$store.getters['defaultNamespace'];\n if (metadata) {\n metadata.namespace = namespace;\n }\n }\n }\n\n if (this.descriptionKey) {\n description = get(v, this.descriptionKey);\n } else {\n description = metadata?.annotations?.[DESCRIPTION];\n }\n\n const inStore = this.$store.getters['currentStore']();\n const nsSchema = this.$store.getters[`${ inStore }/schemaFor`](NAMESPACE);\n\n return {\n namespace,\n name,\n description,\n createNamespace: false,\n nsSchema\n };\n },\n\n computed: {\n ...mapGetters(['currentProduct', 'currentCluster', 'namespaces', 'allowedNamespaces']),\n ...mapActions('cru-resource', ['setCreateNamespace']),\n namespaceReallyDisabled() {\n return (\n !!this.forceNamespace || this.namespaceDisabled || this.mode === _EDIT\n ); // namespace is never editable\n },\n\n nameReallyDisabled() {\n return this.nameDisabled || (this.mode === _EDIT && !this.nameEditable);\n },\n\n /**\n * Map namespaces from the store to options, adding divider and create button\n */\n options() {\n let namespaces;\n\n if (this.namespacesOverride) {\n // Use the resources provided\n namespaces = this.namespacesOverride;\n } else {\n if (this.namespaceOptions) {\n // Use the namespaces provided\n namespaces = (this.namespaceOptions.map((ns) => ns.name) || []).sort();\n } else {\n // Determine the namespaces\n const namespaceObjs = this.isCreate ? this.allowedNamespaces() : this.namespaces();\n\n namespaces = Object.keys(namespaceObjs);\n }\n }\n\n const options = namespaces\n .map((namespace) => ({ nameDisplay: namespace, id: namespace }))\n .map(this.namespaceMapper || ((obj) => ({\n label: obj.nameDisplay,\n value: obj.id,\n })));\n\n const sortedByLabel = sortBy(options, 'label');\n\n if (this.forceNamespace) {\n sortedByLabel.unshift({\n label: this.forceNamespace,\n value: this.forceNamespace,\n });\n }\n\n const createButton = {\n label: this.t('namespace.createNamespace'),\n value: '',\n kind: 'highlighted'\n };\n const divider = {\n label: 'divider',\n disabled: true,\n kind: 'divider'\n };\n\n const createOverhead = this.canCreateNamespace || this.createNamespaceOverride ? [createButton, divider] : [];\n\n return [\n ...createOverhead,\n ...sortedByLabel\n ];\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isCreate() {\n return this.mode === _CREATE;\n },\n\n showCustomize() {\n return this.mode === _CREATE && this.name && this.name.length > 0;\n },\n\n colSpan() {\n if (!this.horizontal) {\n return `span-8`;\n }\n // Name and namespace take up two columns.\n let cols = (this.nameNsHidden ? 0 : 2) + (this.descriptionHidden ? 0 : 1) + this.extraColumns.length;\n\n cols = Math.max(2, cols); // If there's only one column, make it render half-width as if there were two\n const span = 12 / cols; // If there's 5, 7, or more columns this will break; don't do that.\n\n return `span-${ span }`;\n },\n\n canCreateNamespace() {\n // Check if user can push to namespaces... and as the ns is outside of a project restrict to admins and cluster owners\n return (this.nsSchema?.collectionMethods || []).includes('POST') && this.currentCluster?.canUpdate;\n }\n },\n\n watch: {\n name(val) {\n if (this.normalizeName) {\n val = normalizeName(val);\n }\n\n if (this.nameKey) {\n set(this.value, this.nameKey, val);\n } else {\n this.value.metadata['name'] = val;\n }\n this.$emit('update:value', this.value);\n },\n\n namespace(val) {\n this.updateNamespace(val);\n this.$emit('update:value', this.value);\n },\n\n description(val) {\n if (this.descriptionKey) {\n set(this.value, this.descriptionKey, val);\n } else {\n this.value.setAnnotation(DESCRIPTION, val);\n }\n this.$emit('update:value', this.value);\n },\n },\n\n mounted() {\n this.$nextTick(() => {\n if (this.$refs.name) {\n this.$refs.name.focus();\n }\n });\n },\n\n methods: {\n updateNamespace(val) {\n if (this.forceNamespace) {\n val = this.forceNamespace;\n }\n\n if (this.namespaced) {\n this.$emit('isNamespaceNew', !val || (this.options && !this.options.find((n) => n.value === val)));\n }\n\n if (this.namespaceKey) {\n set(this.value, this.namespaceKey, val);\n } else {\n this.value.metadata.namespace = val;\n }\n },\n\n changeNameAndNamespace(e) {\n this.name = (e.text || '').toLowerCase();\n this.namespace = e.selected;\n },\n\n cancelCreateNamespace(e) {\n this.createNamespace = false;\n this.$parent.$emit('createNamespace', false);\n // In practice we should always have a defaultNamespace... unless we're in non-kube extension world, so fall back on options\n this.namespace = this.$store.getters['defaultNamespace'] || this.options.find((o) => !!o.value)?.value;\n },\n\n selectNamespace(e) {\n if (!e || e.value === '') { // The blank value in the dropdown is labeled \"Create a New Namespace\"\n this.createNamespace = true;\n this.$store.dispatch(\n 'cru-resource/setCreateNamespace',\n true,\n );\n this.$emit('isNamespaceNew', true);\n this.$nextTick(() => this.$refs.namespace.focus());\n } else {\n this.createNamespace = false;\n this.$store.dispatch(\n 'cru-resource/setCreateNamespace',\n false,\n );\n this.$emit('isNamespaceNew', false);\n }\n },\n },\n};\n</script>\n\n<template>\n <div class=\"row mb-20\">\n <div\n v-if=\"namespaced && !nameNsHidden && createNamespace\"\n :data-testid=\"componentTestid + '-namespace-create'\"\n class=\"col span-3\"\n >\n <LabeledInput\n ref=\"namespace\"\n v-model:value=\"namespace\"\n :label=\"t('namespace.label')\"\n :placeholder=\"t('namespace.createNamespace')\"\n :disabled=\"namespaceReallyDisabled\"\n :mode=\"mode\"\n :min-height=\"30\"\n :required=\"nameRequired\"\n :rules=\"rules.namespace\"\n />\n <button\n aria=\"Cancel create\"\n @click=\"cancelCreateNamespace\"\n >\n <i\n v-clean-tooltip=\"t('generic.cancel')\"\n class=\"icon icon-close align-value\"\n />\n </button>\n </div>\n <div\n v-if=\"namespaced && !nameNsHidden && !createNamespace\"\n :data-testid=\"componentTestid + '-namespace'\"\n class=\"col span-3\"\n >\n <LabeledSelect\n v-show=\"!createNamespace\"\n v-model:value=\"namespace\"\n :clearable=\"true\"\n :options=\"options\"\n :disabled=\"namespaceReallyDisabled\"\n :searchable=\"true\"\n :mode=\"mode\"\n :multiple=\"false\"\n :label=\"t('namespace.label')\"\n :placeholder=\"t('namespace.selectOrCreate')\"\n :rules=\"rules.namespace\"\n required\n @selecting=\"selectNamespace\"\n />\n </div>\n\n <div\n v-if=\"!nameNsHidden\"\n :data-testid=\"componentTestid + '-name'\"\n class=\"col span-3\"\n >\n <LabeledInput\n ref=\"name\"\n key=\"name\"\n v-model:value=\"name\"\n :label=\"t(nameLabel)\"\n :placeholder=\"t(namePlaceholder)\"\n :disabled=\"nameReallyDisabled\"\n :mode=\"mode\"\n :min-height=\"30\"\n :required=\"nameRequired\"\n :rules=\"rules.name\"\n />\n </div>\n\n <slot name=\"customize\" />\n <!-- // TODO: here goes the custom component -->\n <div\n v-show=\"!descriptionHidden\"\n :data-testid=\"componentTestid + '-description'\"\n :class=\"['col', extraColumns.length > 0 ? 'span-3' : 'span-6']\"\n >\n <LabeledInput\n key=\"description\"\n v-model:value=\"description\"\n :mode=\"mode\"\n :disabled=\"descriptionDisabled\"\n :label=\"t(descriptionLabel)\"\n :placeholder=\"t(descriptionPlaceholder)\"\n :min-height=\"30\"\n :rules=\"rules.description\"\n />\n </div>\n\n <div\n v-for=\"(slot, i) in extraColumns\"\n :key=\"i\"\n :class=\"{ col: true, [colSpan]: true }\"\n >\n <slot :name=\"slot\" />\n </div>\n <div\n v-if=\"showSpacer\"\n class=\"spacer\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\nbutton {\n all: unset;\n height: 0;\n position: relative;\n top: -35px;\n float: right;\n margin-right: 7px;\n\n cursor: pointer;\n\n .align-value {\n padding-top: 7px;\n }\n}\n\n.row {\n &.name-ns-description {\n max-height: $input-height;\n }\n\n .namespace-select :deep() {\n .labeled-select {\n min-width: 40%;\n\n .v-select.inline {\n &.vs--single {\n padding-bottom: 2px;\n }\n }\n }\n }\n\n &.flip-direction {\n flex-direction: column;\n\n &.name-ns-description {\n max-height: initial;\n }\n\n &>div>* {\n margin-bottom: 20px;\n }\n }\n\n}\n</style>\n","export function normalizeName(str) {\n return (str || '')\n .trim()\n .toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/-+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n}\n","import { render } from \"./NameNsDescription.vue?vue&type=template&id=4cc43dc5&scoped=true\"\nimport script from \"./NameNsDescription.vue?vue&type=script&lang=js\"\nexport * from \"./NameNsDescription.vue?vue&type=script&lang=js\"\n\nimport \"./NameNsDescription.vue?vue&type=style&index=0&id=4cc43dc5&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4cc43dc5\"]])\n\nexport default __exports__","<script>\r\nimport ArrayList from '@shell/components/form/ArrayList';\r\nimport Row from './ProjectRow';\r\nimport { QUOTA_COMPUTED } from './shared';\r\n\r\nexport default {\r\n emits: ['remove', 'input'],\r\n\r\n components: { ArrayList, Row },\r\n\r\n props: {\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n types: {\r\n type: Array,\r\n default: () => {\r\n return [];\r\n }\r\n }\r\n },\r\n\r\n data() {\r\n this.value['spec'] = this.value.spec || {};\r\n this.value.spec['namespaceDefaultResourceQuota'] = this.value.spec.namespaceDefaultResourceQuota || { limit: {} };\r\n this.value.spec['resourceQuota'] = this.value.spec.resourceQuota || { limit: {} };\r\n\r\n return { typeValues: Object.keys(this.value.spec.resourceQuota.limit) };\r\n },\r\n\r\n computed: { ...QUOTA_COMPUTED },\r\n\r\n methods: {\r\n updateType(i, type) {\r\n this.typeValues[i] = type;\r\n },\r\n remainingTypes(currentType) {\r\n return this.mappedTypes\r\n .filter((mappedType) => !this.typeValues.includes(mappedType.value) || mappedType.value === currentType);\r\n },\r\n emitRemove(data) {\r\n this.$emit('remove', data.row?.value);\r\n }\r\n },\r\n};\r\n</script>\r\n<template>\r\n <div>\r\n <div class=\"headers mb-10\">\r\n <div class=\"mr-10\">\r\n <label>{{ t('resourceQuota.headers.resourceType') }}</label>\r\n </div>\r\n <div class=\"mr-20\">\r\n <label>{{ t('resourceQuota.headers.projectLimit') }}</label>\r\n </div>\r\n <div class=\"mr-10\">\r\n <label>{{ t('resourceQuota.headers.namespaceDefaultLimit') }}</label>\r\n </div>\r\n </div>\r\n <ArrayList\r\n v-model:value=\"typeValues\"\r\n label=\"Resources\"\r\n :add-label=\"t('resourceQuota.add.label')\"\r\n :default-add-value=\"remainingTypes()[0] ? remainingTypes()[0].value : ''\"\r\n :add-allowed=\"remainingTypes().length > 0\"\r\n :mode=\"mode\"\r\n @remove=\"emitRemove\"\r\n >\r\n <template #columns=\"props\">\r\n <Row\r\n :value=\"value\"\r\n :mode=\"mode\"\r\n :types=\"remainingTypes(typeValues[props.i])\"\r\n :type=\"typeValues[props.i]\"\r\n @input=\"$emit('input', $event)\"\r\n @type-change=\"updateType(props.i, $event)\"\r\n />\r\n </template>\r\n </ArrayList>\r\n </div>\r\n</template>\r\n<style lang=\"scss\" scoped>\r\n.headers {\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-evenly;\r\n align-items: center;\r\n border-bottom: 1px solid var(--border);\r\n height: 30px;\r\n width: calc(100% - 75px);\r\n\r\n div {\r\n width: 100%;\r\n }\r\n}\r\n</style>\r\n","<script>\nimport Select from '@shell/components/form/Select';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport { ROW_COMPUTED } from './shared';\n\nexport default {\n emits: ['type-change'],\n\n components: { Select, UnitInput },\n\n props: {\n mode: {\n type: String,\n required: true,\n },\n types: {\n type: Array,\n default: () => []\n },\n type: {\n type: String,\n default: ''\n },\n value: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n computed: {\n ...ROW_COMPUTED,\n\n resourceQuotaLimit: {\n get() {\n return this.value.spec.resourceQuota?.limit || {};\n },\n },\n\n namespaceDefaultResourceQuotaLimit: {\n get() {\n return this.value.spec.namespaceDefaultResourceQuota?.limit || {};\n },\n }\n },\n\n methods: {\n updateType(type) {\n if (typeof this.value.spec.resourceQuota?.limit[this.type] !== 'undefined') {\n delete this.value.spec.resourceQuota.limit[this.type];\n }\n if (typeof this.value.spec.namespaceDefaultResourceQuota?.limit[this.type] !== 'undefined') {\n delete this.value.spec.namespaceDefaultResourceQuota.limit[this.type];\n }\n\n this.$emit('type-change', type);\n },\n\n updateQuotaLimit(prop, type, val) {\n if (!this.value.spec[prop]) {\n this.value.spec[prop] = { limit: { } };\n }\n\n this.value.spec[prop].limit[type] = val;\n }\n },\n};\n</script>\n<template>\n <div\n v-if=\"typeOption\"\n class=\"row\"\n >\n <Select\n :value=\"type\"\n class=\"mr-10\"\n :mode=\"mode\"\n :options=\"types\"\n data-testid=\"projectrow-type-input\"\n @update:value=\"updateType($event)\"\n />\n <UnitInput\n :value=\"resourceQuotaLimit[type]\"\n class=\"mr-10\"\n :mode=\"mode\"\n :placeholder=\"typeOption.placeholder\"\n :increment=\"typeOption.increment\"\n :input-exponent=\"typeOption.inputExponent\"\n :base-unit=\"typeOption.baseUnit\"\n :output-modifier=\"true\"\n data-testid=\"projectrow-project-quota-input\"\n @update:value=\"updateQuotaLimit('resourceQuota', type, $event)\"\n />\n <UnitInput\n :value=\"namespaceDefaultResourceQuotaLimit[type]\"\n :mode=\"mode\"\n :placeholder=\"typeOption.placeholder\"\n :increment=\"typeOption.increment\"\n :input-exponent=\"typeOption.inputExponent\"\n :base-unit=\"typeOption.baseUnit\"\n :output-modifier=\"true\"\n data-testid=\"projectrow-namespace-quota-input\"\n @update:value=\"updateQuotaLimit('namespaceDefaultResourceQuota', type, $event)\"\n />\n </div>\n</template>\n\n<style lang='scss' scoped>\n .row {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n }\n</style>\n","import { render } from \"./ProjectRow.vue?vue&type=template&id=026e7674&scoped=true\"\nimport script from \"./ProjectRow.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectRow.vue?vue&type=script&lang=js\"\n\nimport \"./ProjectRow.vue?vue&type=style&index=0&id=026e7674&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-026e7674\"]])\n\nexport default __exports__","import { render } from \"./Project.vue?vue&type=template&id=5ccfb77f&scoped=true\"\nimport script from \"./Project.vue?vue&type=script&lang=js\"\nexport * from \"./Project.vue?vue&type=script&lang=js\"\n\nimport \"./Project.vue?vue&type=style&index=0&id=5ccfb77f&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5ccfb77f\"]])\n\nexport default __exports__","<script>\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport ResourceLabeledSelect from '@shell/components/form/ResourceLabeledSelect';\nimport { SECRET } from '@shell/config/types';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { SECRET_TYPES as TYPES } from '@shell/config/secret';\nimport { PaginationParamFilter } from '@shell/types/store/pagination.types';\nimport { LABEL_SELECT_KINDS } from '@shell/types/components/labeledSelect';\n\nconst NONE = '__[[NONE]]__';\n\nexport default {\n emits: ['update:value'],\n components: { LabeledSelect, ResourceLabeledSelect },\n\n props: {\n value: {\n type: [String, Object],\n required: false,\n default: undefined\n },\n namespace: {\n type: String,\n required: true\n },\n types: {\n type: Array,\n default: () => Object.values(TYPES)\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mountKey: {\n type: String,\n default: 'valueFrom'\n },\n nameKey: {\n type: String,\n default: 'name'\n },\n keyKey: {\n type: String,\n default: 'key'\n },\n showKeySelector: {\n type: Boolean,\n default: false\n },\n secretNameLabel: {\n type: String,\n default: 'Secret Name'\n },\n keyNameLabel: {\n type: String,\n default: 'Key'\n },\n mode: {\n type: String,\n default: _EDIT\n },\n inStore: {\n type: String,\n default: 'cluster',\n }\n },\n\n data() {\n return {\n secrets: null,\n SECRET,\n allSecretsSettings: {\n updateResources: (secrets) => {\n const allSecretsInNamespace = secrets.filter((secret) => this.types.includes(secret._type) && secret.namespace === this.namespace);\n const mappedSecrets = this.mapSecrets(allSecretsInNamespace.sort((a, b) => a.name.localeCompare(b.name)));\n\n this.secrets = allSecretsInNamespace; // We need the key from the selected secret\n\n return mappedSecrets;\n }\n },\n paginateSecretsSetting: {\n requestSettings: this.paginatePageOptions,\n updateResources: (secrets) => {\n const mappedSecrets = this.mapSecrets(secrets);\n\n this.secrets = secrets; // We need the key from the selected secret. When paginating we won't touch the store, so just pass back here\n\n return mappedSecrets;\n }\n }\n };\n },\n\n computed: {\n name: {\n get() {\n const name = this.showKeySelector ? this.value?.[this.mountKey]?.secretKeyRef?.[this.nameKey] : this.value;\n\n return name || NONE;\n },\n set(name) {\n const isNone = name === NONE;\n const correctedName = isNone ? undefined : name;\n\n if (this.showKeySelector) {\n this.$emit('update:value', { [this.mountKey]: { secretKeyRef: { [this.nameKey]: correctedName, [this.keyKey]: '' } } });\n } else {\n this.$emit('update:value', correctedName);\n }\n }\n },\n\n key: {\n get() {\n return this.value?.[this.mountKey]?.secretKeyRef?.[this.keyKey] || '';\n },\n set(key) {\n this.$emit('update:value', { [this.mountKey]: { secretKeyRef: { [this.nameKey]: this.name, [this.keyKey]: key } } });\n }\n },\n\n keys() {\n const secret = (this.secrets || []).find((secret) => secret.name === this.name) || {};\n\n return Object.keys(secret.data || {}).map((key) => ({\n label: key,\n value: key\n }));\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isKeyDisabled() {\n return !this.isView && (!this.name || this.name === NONE || this.disabled);\n }\n },\n\n methods: {\n /**\n * Provide a set of options for the LabelSelect ([none, ...{label, value}])\n */\n mapSecrets(secrets) {\n const mappedSecrets = secrets\n .reduce((res, s) => {\n if (s.kind === LABEL_SELECT_KINDS.NONE) {\n return res;\n }\n\n if (s.id) {\n res.push({ label: s.name, value: s.name });\n } else {\n res.push(s);\n }\n\n return res;\n }, []);\n\n return [\n {\n label: 'None', value: NONE, kind: LABEL_SELECT_KINDS.NONE\n },\n ...mappedSecrets\n ];\n },\n\n /**\n * @param [LabelSelectPaginationFunctionOptions] opts\n * @returns LabelSelectPaginationFunctionOptions\n */\n paginatePageOptions(opts) {\n const { opts: { filter } } = opts;\n\n const filters = !!filter ? [PaginationParamFilter.createSingleField({ field: 'metadata.name', value: filter })] : [];\n\n filters.push(\n PaginationParamFilter.createSingleField({ field: 'metadata.namespace', value: this.namespace }),\n PaginationParamFilter.createSingleField({ field: 'metadata.fields.1', value: this.types.join(',') })\n );\n\n return {\n ...opts,\n filters,\n groupByNamespace: false,\n classify: true,\n sort: [{ asc: true, field: 'metadata.name' }],\n };\n },\n }\n\n};\n</script>\n\n<template>\n <div\n class=\"secret-selector\"\n :class=\"{'show-key-selector': showKeySelector}\"\n >\n <div class=\"input-container\">\n <!-- key by namespace to ensure label select current page is recreated on ns change -->\n <ResourceLabeledSelect\n v-model:value=\"name\"\n :disabled=\"!isView && disabled\"\n :label=\"secretNameLabel\"\n :mode=\"mode\"\n :resource-type=\"SECRET\"\n :in-store=\"inStore\"\n :paginated-resource-settings=\"paginateSecretsSetting\"\n :all-resources-settings=\"allSecretsSettings\"\n />\n <LabeledSelect\n v-if=\"showKeySelector\"\n v-model:value=\"key\"\n class=\"col span-6\"\n :disabled=\"isKeyDisabled\"\n :options=\"keys\"\n :label=\"keyNameLabel\"\n :mode=\"mode\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.secret-selector {\n width: 100%;\n label {\n display: block;\n }\n\n & .labeled-select {\n min-height: $input-height;\n }\n\n & .vs__selected-options {\n padding: 8px 0 7px 0;\n }\n\n & label {\n display: inline-block;\n }\n\n &.show-key-selector {\n .input-container > * {\n display: inline-block;\n width: 50%;\n\n &.labeled-select.focused {\n z-index: 10;\n }\n\n &:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n margin-right: 0;\n }\n\n &:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-left: none;\n float: right;\n }\n }\n }\n}\n</style>\n","import { render } from \"./SecretSelector.vue?vue&type=template&id=2bb9d506\"\nimport script from \"./SecretSelector.vue?vue&type=script&lang=js\"\nexport * from \"./SecretSelector.vue?vue&type=script&lang=js\"\n\nimport \"./SecretSelector.vue?vue&type=style&index=0&id=2bb9d506&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { Banner } from '@components/Banner';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport CruResource from '@shell/components/CruResource';\nimport Loading from '@shell/components/Loading';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { LOGGING, NAMESPACE, NODE, SCHEMA } from '@shell/config/types';\nimport jsyaml from 'js-yaml';\nimport { createYaml } from '@shell/utils/create-yaml';\nimport YamlEditor, { EDITOR_MODES } from '@shell/components/YamlEditor';\nimport { allHash } from '@shell/utils/promise';\nimport { isArray } from '@shell/utils/array';\nimport { matchRuleIsPopulated } from '@shell/models/logging.banzaicloud.io.flow';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { clone } from '@shell/utils/object';\nimport isEmpty from 'lodash/isEmpty';\nimport ArrayListGrouped from '@shell/components/form/ArrayListGrouped';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { HARVESTER_NAME as VIRTUAL } from '@shell/config/features';\nimport Match from './Match';\n\nconst FLOW_LOGGING = 'Logging';\nconst FLOW_AUDIT = 'Audit';\nconst FLOW_EVENT = 'Event';\nconst FLOW_TYPE = [FLOW_LOGGING, FLOW_AUDIT, FLOW_EVENT];\n\nfunction emptyMatch(include = true) {\n const rule = {\n select: !!include,\n exclude: !include,\n labels: {},\n hosts: [],\n container_names: []\n };\n\n return rule;\n}\n\nexport default {\n emits: ['input'],\n\n components: {\n Banner,\n CruResource,\n LabeledSelect,\n Loading,\n NameNsDescription,\n Tab,\n Tabbed,\n YamlEditor,\n Match,\n ArrayListGrouped\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n async fetch() {\n const currentCluster = this.$store.getters['currentCluster'];\n const inStore = currentCluster.isHarvester ? VIRTUAL : 'cluster';\n const hasAccessToClusterOutputs = this.$store.getters[`${ inStore }/schemaFor`](LOGGING.CLUSTER_OUTPUT);\n const hasAccessToOutputs = this.$store.getters[`${ inStore }/schemaFor`](LOGGING.OUTPUT);\n const hasAccessToNamespaces = this.$store.getters[`cluster/schemaFor`](NAMESPACE);\n const hasAccessToNodes = this.$store.getters[`${ inStore }/schemaFor`](NODE);\n const isFlow = this.value.type === LOGGING.FLOW;\n\n const getAllOrDefault = (type, hasAccess) => {\n return hasAccess ? this.$store.dispatch(`${ inStore }/findAll`, { type }) : Promise.resolve([]);\n };\n\n const hash = await allHash({\n allOutputs: getAllOrDefault(LOGGING.OUTPUT, isFlow && hasAccessToOutputs),\n allClusterOutputs: getAllOrDefault(LOGGING.CLUSTER_OUTPUT, hasAccessToClusterOutputs),\n // Can't remove allNamespaces yet given https://github.com/harvester/harvester/issues/7342 and\n // https://github.com/harvester/harvester-ui-extension/blob/main/pkg/harvester/edit/harvesterhci.io.logging.clusteroutput.vue\n allNamespaces: getAllOrDefault(NAMESPACE, hasAccessToNamespaces),\n allNodes: getAllOrDefault(NODE, hasAccessToNodes),\n });\n\n for ( const k of Object.keys(hash) ) {\n this[k] = hash[k] || [];\n }\n },\n\n data() {\n const currentCluster = this.$store.getters['currentCluster'];\n const inStore = currentCluster.isHarvester ? VIRTUAL : 'cluster';\n const schemas = this.$store.getters[`${ inStore }/all`](SCHEMA);\n let filtersYaml;\n\n this.value.spec = this.value.spec || {};\n\n if ( this.value.spec.filters?.length ) {\n filtersYaml = jsyaml.dump(this.value.spec.filters);\n } else {\n // Note - no need to call fetchResourceFields here (spoofed type has popoulated resourceFields)\n filtersYaml = createYaml(schemas, LOGGING.SPOOFED.FILTERS, {});\n // createYaml doesn't support passing reference types (array, map) as the first type. As such\n // I'm manipulating the output since I'm not sure it's something we want to actually support\n // seeing as it's really createResourceYaml and this here is a gray area between spoofed types\n // and just a field within a spec.\n filtersYaml = filtersYaml.substring(filtersYaml.indexOf('\\n') + 1).replaceAll('# ', '#');\n }\n\n const matches = [];\n let formSupported = !this.value.id || this.value.canCustomEdit;\n\n if ( this.value.spec.match?.length ) {\n for ( const match of this.value.spec.match ) {\n if ( matchRuleIsPopulated(match.select) && matchRuleIsPopulated(match.exclude) ) {\n formSupported = false;\n } else if ( matchRuleIsPopulated(match.select) ) {\n matches.push({ select: true, ...match.select });\n } else if ( matchRuleIsPopulated(match.exclude) ) {\n matches.push({ exclude: true, ...match.exclude });\n }\n }\n } else {\n matches.push(emptyMatch(true));\n }\n\n const globalOutputRefs = (this.value.spec.globalOutputRefs || []).map((ref) => ({ label: ref, value: ref }));\n const localOutputRefs = (this.value.spec.localOutputRefs || []).map((ref) => ({ label: ref, value: ref }));\n\n return {\n formSupported,\n matches,\n allOutputs: null,\n allClusterOutputs: null,\n allNamespaces: null,\n allNodes: null,\n filtersYaml,\n initialFiltersYaml: filtersYaml,\n globalOutputRefs,\n localOutputRefs,\n loggingType: clone(this.value.loggingType || FLOW_LOGGING)\n };\n },\n\n computed: {\n EDITOR_MODES() {\n return EDITOR_MODES;\n },\n\n LOGGING() {\n return LOGGING;\n },\n\n outputChoices() {\n if (!this.allOutputs) {\n // Handle the case where the user doesn't have permission\n // to see Outputs\n return [];\n }\n\n // Yes cluster outputs are still namespaced because reasons...\n return this.allOutputs.filter((output) => {\n if ( !output.namespace) {\n return true;\n }\n\n const isEqualNs = output.namespace === this.value.namespace;\n\n if (!this.isHarvester) {\n return isEqualNs;\n }\n\n if (this.loggingType === FLOW_AUDIT) {\n return output.loggingType === FLOW_AUDIT && isEqualNs;\n }\n\n return output.loggingType !== FLOW_AUDIT && isEqualNs;\n }).map((x) => {\n return { label: x.metadata.name, value: x.metadata.name };\n });\n },\n\n clusterOutputChoices() {\n if (!this.allClusterOutputs) {\n // Handle the case where the user doesn't have permission\n // to see ClusterOutputs\n return [];\n }\n\n return this.allClusterOutputs\n .filter((clusterOutput) => {\n const isEqualNs = clusterOutput.namespace === 'cattle-logging-system';\n\n if (!this.isHarvester) {\n return isEqualNs;\n }\n\n if (this.loggingType === FLOW_AUDIT) {\n return clusterOutput.loggingType === FLOW_AUDIT && isEqualNs;\n }\n\n return clusterOutput.loggingType !== FLOW_AUDIT && isEqualNs;\n })\n .map((clusterOutput) => {\n return { label: clusterOutput.metadata.name, value: clusterOutput.metadata.name };\n });\n },\n\n namespaceChoices() {\n if (!this.allNamespaces) {\n // Handle the case where the user doesn't have permission\n // to see namespaces\n return [];\n }\n const out = this.allNamespaces.map((namespace) => {\n return {\n label: namespace.nameDisplay,\n value: namespace.metadata.name\n };\n });\n\n return out;\n },\n\n nodeChoices() {\n if (!this.allNodes) {\n // Handle the case where the user doesn't have permission\n // to see nodes\n return [];\n }\n const out = this.allNodes.map((node) => {\n return {\n label: node.nameDisplay,\n value: node.metadata.name\n };\n });\n\n return out;\n },\n\n isHarvester() {\n return this.$store.getters['currentProduct'].inStore === VIRTUAL;\n },\n\n flowTypeOptions() {\n return FLOW_TYPE;\n },\n },\n\n watch: {\n matches: {\n deep: true,\n handler() {\n const matches = this.matches.map((match) => {\n const copy = clone(match);\n\n delete copy.exclude;\n delete copy.select;\n\n if ( match.exclude ) {\n return { exclude: copy };\n } else {\n return { select: copy };\n }\n });\n\n this.value.spec.match = matches;\n }\n },\n filtersYaml: {\n deep: true,\n handler() {\n try {\n const filterJson = jsyaml.load(this.filtersYaml);\n\n if ( isArray(filterJson) ) {\n this.value.spec.filters = filterJson;\n } else {\n this.value.spec.filters = undefined;\n }\n } catch (e) {\n this.errors = exceptionToErrorsArray(e);\n }\n }\n },\n globalOutputRefs: {\n deep: true,\n handler() {\n this.value.spec.globalOutputRefs = this.globalOutputRefs;\n }\n },\n localOutputRefs: {\n deep: true,\n handler() {\n this.value.spec.localOutputRefs = this.localOutputRefs;\n }\n }\n },\n\n created() {\n if (this.isCreate && this.value.type === LOGGING.CLUSTER_FLOW) {\n this.value.metadata.namespace = 'cattle-logging-system';\n }\n\n this.registerBeforeHook(this.willSave, 'willSave');\n },\n\n methods: {\n addMatch(include) {\n this.matches = [...this.matches, emptyMatch(include)];\n },\n\n removeMatch(idx) {\n this.matches.splice(idx, 1);\n },\n\n updateMatch(neu, idx) {\n this.matches[idx] = neu;\n },\n\n tabChanged({ tab }) {\n if ( tab.name === 'filters' ) {\n this.$nextTick(() => {\n if ( this.$refs.yaml ) {\n this.$refs.yaml.refresh();\n this.$refs.yaml.focus();\n }\n });\n }\n },\n isMatchEmpty(matches) {\n if (isEmpty(matches)) {\n return true;\n }\n\n return matches.every((match) => {\n if (isEmpty(match.select) && isEmpty(match.exclude)) {\n return true;\n }\n\n const select = match.select || {};\n const exclude = match.exclude || {};\n const allValuesAreEmpty = (o) => Object.values(o).every(isEmpty);\n\n return allValuesAreEmpty(select) && allValuesAreEmpty(exclude);\n });\n },\n willSave() {\n if (this.value.spec.filters && isEmpty(this.value.spec.filters)) {\n delete this.value.spec['filters'];\n }\n\n if (this.value.spec.match && this.isMatchEmpty(this.value.spec.match)) {\n delete this.value.spec['match'];\n }\n\n if (this.loggingType === FLOW_AUDIT) {\n this.value.spec['loggingRef'] = 'harvester-kube-audit-log-ref';\n }\n\n if (this.loggingType === FLOW_EVENT) {\n const eventSelector = { select: { labels: { 'app.kubernetes.io/name': 'event-tailer' } } };\n\n if (!this.value.spec.match) {\n this.value.spec['match'] = [eventSelector];\n } else {\n this.value.spec.match.push(eventSelector);\n }\n }\n },\n onYamlEditorReady(cm) {\n cm.getMode().fold = 'yamlcomments';\n cm.execCommand('foldAll');\n cm.execCommand('unfold');\n },\n isTag(options, option) {\n return !options.find((o) => o.value === option.value);\n }\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <CruResource\n v-else-if=\"formSupported\"\n class=\"flow\"\n :done-route=\"doneRoute\"\n :mode=\"mode\"\n :resource=\"value\"\n :subtypes=\"[]\"\n :validation-passed=\"true\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n @error=\"e=>errors = e\"\n @finish=\"save\"\n @cancel=\"done\"\n >\n <NameNsDescription\n v-if=\"!isView\"\n :value=\"value\"\n :mode=\"mode\"\n :namespaced=\"value.type !== LOGGING.CLUSTER_FLOW\"\n @update:value=\"$emit('input', $event)\"\n />\n\n <Tabbed\n :side-tabs=\"true\"\n @changed=\"tabChanged($event)\"\n >\n <Tab\n name=\"match\"\n :label=\"t('logging.flow.matches.label')\"\n :weight=\"3\"\n >\n <Banner\n v-if=\"!isHarvester\"\n color=\"info\"\n class=\"mt-0\"\n :label=\"t('logging.flow.matches.banner')\"\n />\n <div v-if=\"isHarvester\">\n <LabeledSelect\n v-model:value=\"loggingType\"\n class=\"mb-20\"\n :options=\"flowTypeOptions\"\n :mode=\"mode\"\n :disabled=\"!isCreate\"\n :label=\"t('generic.type')\"\n />\n </div>\n <ArrayListGrouped\n v-model:value=\"matches\"\n :add-label=\"t('ingress.rules.addRule')\"\n :default-add-value=\"{}\"\n :mode=\"mode\"\n >\n <template #default=\"props\">\n <Match\n class=\"rule mb-20\"\n :value=\"props.row.value\"\n :mode=\"mode\"\n :namespaces=\"namespaceChoices\"\n :nodes=\"nodeChoices\"\n :is-cluster-flow=\"value.type === LOGGING.CLUSTER_FLOW\"\n @remove=\"e=>removeMatch(props.row.i)\"\n @update:value=\"e=>updateMatch(e,props.row.i)\"\n />\n </template>\n <template #add>\n <button\n class=\"btn role-tertiary add\"\n type=\"button\"\n @click=\"addMatch(true)\"\n >\n {{ t('logging.flow.matches.addSelect') }}\n </button>\n <button\n class=\"btn role-tertiary add\"\n type=\"button\"\n @click=\"addMatch(false)\"\n >\n {{ t('logging.flow.matches.addExclude') }}\n </button>\n </template>\n </ArrayListGrouped>\n </Tab>\n\n <Tab\n name=\"outputs\"\n :label=\"t('logging.flow.outputs.label')\"\n :weight=\"2\"\n >\n <Banner\n v-if=\"value.type !== LOGGING.CLUSTER_FLOW\"\n :label=\"t('logging.flow.outputs.sameNamespaceError')\"\n color=\"info\"\n />\n <LabeledSelect\n v-model:value=\"globalOutputRefs\"\n :label=\"t('logging.flow.clusterOutputs.label')\"\n :options=\"clusterOutputChoices\"\n :multiple=\"true\"\n :taggable=\"true\"\n :clearable=\"true\"\n :close-on-select=\"false\"\n :reduce=\"opt=>opt.value\"\n >\n <template #selected-option=\"option\">\n <i\n v-if=\"isTag(clusterOutputChoices, option)\"\n v-clean-tooltip=\"t('logging.flow.clusterOutputs.doesntExistTooltip')\"\n class=\"icon icon-info status-icon text-warning\"\n />\n {{ option.label }}\n </template>\n </LabeledSelect>\n <LabeledSelect\n v-if=\"value.type === LOGGING.FLOW\"\n v-model:value=\"localOutputRefs\"\n :label=\"t('logging.flow.outputs.label')\"\n class=\"mt-10\"\n :options=\"outputChoices\"\n :multiple=\"true\"\n :taggable=\"true\"\n :clearable=\"true\"\n :close-on-select=\"false\"\n :reduce=\"opt=>opt.value\"\n >\n <template #selected-option=\"option\">\n <i\n v-if=\"isTag(outputChoices, option)\"\n v-clean-tooltip=\"t('logging.flow.outputs.doesntExistTooltip')\"\n class=\"icon icon-info status-icon text-warning\"\n />\n {{ option.label }}\n </template>\n </LabeledSelect>\n </Tab>\n\n <Tab\n name=\"filters\"\n :label=\"t('logging.flow.filters.label')\"\n :weight=\"1\"\n >\n <YamlEditor\n ref=\"yaml\"\n v-model:value=\"filtersYaml\"\n :scrolling=\"false\"\n :initial-yaml-values=\"initialFiltersYaml\"\n :editor-mode=\"isView ? EDITOR_MODES.VIEW_CODE : EDITOR_MODES.EDIT_CODE\"\n @onReady=\"onYamlEditorReady\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n <Banner\n v-else\n :label=\"t('logging.flow.matches.unsupportedConfig')\"\n color=\"error\"\n />\n</template>\n\n<style lang=\"scss\" scoped>\n:deep() {\n .icon-info {\n margin-top: -3px;\n margin-right: 4px;\n }\n}\n</style>\n","<script>\nimport KeyValue from '@shell/components/form/KeyValue';\nimport Select from '@shell/components/form/Select';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { HARVESTER_NAME as VIRTUAL } from '@shell/config/features';\n\nexport default {\n emits: ['remove'],\n\n components: {\n KeyValue, Select, LabeledSelect\n },\n\n props: {\n mode: {\n type: String,\n required: true,\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n\n nodes: {\n type: Array,\n default: () => [],\n },\n\n namespaces: {\n type: Array,\n default: () => [],\n },\n\n isClusterFlow: {\n type: Boolean,\n default: false\n }\n },\n\n computed: {\n isHarvester() {\n return this.$store.getters['currentProduct'].inStore === VIRTUAL;\n },\n },\n\n methods: {\n update() {},\n\n removeRule() {\n this.$emit('remove');\n },\n },\n};\n</script>\n\n<template>\n <div>\n <template v-if=\"!isHarvester\">\n <KeyValue\n v-model:value=\"value.labels\"\n :title=\"value.select ? t('logging.flow.matches.pods.title.include') : t('logging.flow.matches.pods.title.exclude')\"\n :mode=\"mode\"\n :initial-empty-row=\"true\"\n :read-allowed=\"false\"\n :title-add=\"true\"\n protip=\"\"\n :key-label=\"t('logging.flow.matches.pods.keyLabel')\"\n :value-label=\"t('logging.flow.matches.pods.valueLabel')\"\n :add-label=\"t('logging.flow.matches.pods.addLabel')\"\n />\n <div class=\"spacer\" />\n </template>\n\n <h3>\n {{ value.select ? t('logging.flow.matches.nodes.title.include') : t('logging.flow.matches.nodes.title.exclude') }}\n </h3>\n <div class=\"row\">\n <div class=\"col span-12\">\n <Select\n v-model:value=\"value.hosts\"\n class=\"lg\"\n :options=\"nodes\"\n :placeholder=\"t('logging.flow.matches.nodes.placeholder')\"\n :multiple=\"true\"\n :searchable=\"true\"\n :taggable=\"true\"\n :clearable=\"true\"\n :close-on-select=\"false\"\n :reduce=\"(e) => e.value\"\n />\n </div>\n </div>\n <div v-if=\"!isHarvester\">\n <div class=\"spacer\" />\n <h3>\n {{ value.select ? t('logging.flow.matches.containerNames.title.include') : t('logging.flow.matches.containerNames.title.exclude') }}\n </h3>\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabeledSelect\n v-model:value=\"value.container_names\"\n :mode=\"mode\"\n :options=\"[]\"\n :disabled=\"false\"\n :placeholder=\"t('logging.flow.matches.containerNames.placeholder')\"\n :multiple=\"true\"\n :taggable=\"true\"\n :clearable=\"true\"\n :searchable=\"true\"\n :close-on-select=\"false\"\n no-options-label-key=\"logging.flow.matches.containerNames.enter\"\n placement=\"top\"\n />\n </div>\n </div>\n <div v-if=\"isClusterFlow\">\n <div class=\"spacer\" />\n <h3>\n {{ value.select ? t('logging.flow.matches.containerNames.title.include') : t('logging.flow.matches.containerNames.title.exclude') }}\n </h3>\n <div class=\"row\">\n <div class=\"col span-12\">\n <Select\n v-model:value=\"value.namespaces\"\n class=\"lg\"\n :options=\"namespaces\"\n :placeholder=\"t('logging.flow.matches.namespaces.placeholder')\"\n :multiple=\"true\"\n :taggable=\"true\"\n :clearable=\"true\"\n :searchable=\"true\"\n :close-on-select=\"false\"\n no-options-label-key=\"logging.flow.matches.containerNames.enter\"\n placement=\"top\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <h3>\n {{ value.select ? t('logging.flow.matches.namespaces.title.include') : t('logging.flow.matches.namespaces.title.exclude') }}\n </h3>\n <div class=\"row\">\n <div class=\"col span-12\">\n <Select\n v-model=\"value.namespaces\"\n class=\"lg\"\n :options=\"namespaces\"\n :placeholder=\"t('logging.flow.matches.namespaces.placeholder')\"\n :multiple=\"true\"\n :taggable=\"true\"\n :clearable=\"true\"\n :close-on-select=\"false\"\n placement=\"top\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./Match.vue?vue&type=template&id=984f760c\"\nimport script from \"./Match.vue?vue&type=script&lang=js\"\nexport * from \"./Match.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=e1077e64&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=e1077e64&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e1077e64\"]])\n\nexport default __exports__","<script>\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: { LabeledInput, SecretSelector },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.endpoint.url\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.awsElasticsearch.url')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n {{ value.namespace }}\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.endpoint.access_key_id\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.awsElasticsearch.keyId')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.endpoint.secret_access_key\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.awsElasticsearch.secretKey')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./awsElasticsearch.vue?vue&type=template&id=e0e7316c\"\nimport script from \"./awsElasticsearch.vue?vue&type=script&lang=js\"\nexport * from \"./awsElasticsearch.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: { LabeledInput, SecretSelector },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.azure_container\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.azurestorage.container')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.path\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.azurestorage.path')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.store_as\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.azurestorage.storeAs')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.azure_storage_account\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.azurestorage.storageAccount')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.azure_storage_access_key\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.azurestorage.accessKey')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./azurestorage.vue?vue&type=template&id=a9cf09b6\"\nimport script from \"./azurestorage.vue?vue&type=script&lang=js\"\nexport * from \"./azurestorage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: { LabeledInput, SecretSelector },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.region\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.cloudwatch.region')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.endpoint\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.cloudwatch.endpoint')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.aws_key_id\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.cloudwatch.keyId')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.aws_sec_key\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.cloudwatch.secretKey')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.configuration') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.log_group_name\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.cloudwatch.logGroupName')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.log_stream_name\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.cloudwatch.logStreamName')\"\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style>\r\nh3 {\r\n margin-top: 10px;\r\n}\r\n</style>\r\n","import { render } from \"./cloudwatch.vue?vue&type=template&id=ef98655a\"\nimport script from \"./cloudwatch.vue?vue&type=script&lang=js\"\nexport * from \"./cloudwatch.vue?vue&type=script&lang=js\"\n\nimport \"./cloudwatch.vue?vue&type=style&index=0&id=ef98655a&lang=css\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { Checkbox } from '@components/Form/Checkbox';\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: {\r\n Checkbox, LabeledInput, SecretSelector\r\n },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.host\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.datadog.host')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.api_key\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.datadog.apiKey')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <Checkbox\n v-model:value=\"value.use_ssl\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.datadog.useSSL')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <Checkbox\n v-model:value=\"value.use_compression\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.datadog.useCompression')\"\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./datadog.vue?vue&type=template&id=16a984dc\"\nimport script from \"./datadog.vue?vue&type=script&lang=js\"\nexport * from \"./datadog.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport SecretSelector from '@shell/components/form/SecretSelector';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { _CREATE } from '@shell/config/query-params';\nimport { updatePort, protocol, sslVersions } from './utils';\n\nexport default {\n components: {\n LabeledInput, LabeledSelect, SecretSelector, Checkbox\n },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n required: true,\n },\n namespace: {\n type: String,\n required: true\n }\n },\n data() {\n if (this.mode === _CREATE) {\n // Set default values only if no values are already\n // present. This allows changes to default values to persist\n // after navigating to YAML and back.\n\n // Require SSL verification by default\n if (typeof this.value.ssl_verify === 'undefined') {\n this.value['ssl_verify'] = true;\n }\n\n // Use the SSL version TLSv1_2 by default to match Ember\n if (typeof this.value.ssl_version === 'undefined') {\n this.value['ssl_version'] = sslVersions[0];\n }\n\n // Suppress type name by default\n if (typeof this.value.suppress_type_name === 'undefined') {\n this.value['suppress_type_name'] = true;\n }\n }\n\n return { protocolOptions: protocol, sslVersions };\n },\n computed: {\n port: {\n get() {\n return this.value.port;\n },\n set(port) {\n updatePort((value) => (this.value['port'] = value), port);\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"elasticsearch\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.target') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-2\">\n <LabeledSelect\n v-model:value=\"value.scheme\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"scheme\"\n :options=\"protocolOptions\"\n :label=\"t('logging.elasticsearch.scheme')\"\n />\n </div>\n <div class=\"col span-8\">\n <LabeledInput\n v-model:value=\"value.host\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"host\"\n :label=\"t('logging.elasticsearch.host')\"\n />\n </div>\n <div class=\"col span-2\">\n <LabeledInput\n v-model:value.number=\"port\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"port\"\n type=\"number\"\n min=\"1\"\n max=\"65535\"\n :label=\"t('logging.elasticsearch.port')\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.index_name\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.elasticsearch.indexName')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.access') }}</h3>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.user\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.elasticsearch.user')\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.password\"\n :secret-name-label=\"t('logging.elasticsearch.password')\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ca_file\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.elasticsearch.caFile.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.client_cert\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.elasticsearch.clientCert.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.client_key\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.elasticsearch.clientKey.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.client_key_pass\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.elasticsearch.clientKeyPass')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"value.ssl_version\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :options=\"sslVersions\"\n :label=\"t('logging.elasticsearch.sslVersion')\"\n />\n </div>\n <div class=\"col span-6 vertically-center\">\n <Checkbox\n v-model:value=\"value.ssl_verify\"\n :label=\"t('logging.elasticsearch.verifySsl')\"\n :disabled=\"disabled\"\n :mode=\"mode\"\n />\n <Checkbox\n v-model:value=\"value.suppress_type_name\"\n :label=\"t('logging.elasticsearch.suppressTypeName.label')\"\n :tooltip=\"t('logging.elasticsearch.suppressTypeName.elasticSearchTips')\"\n :disabled=\"disabled\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </div>\n</template>\n<style>\n.row {\n margin-bottom: 5px;\n}\n.vertically-center {\n padding: 20px 0;\n}\n</style>\n","import { render } from \"./elasticsearch.vue?vue&type=template&id=23b190dc\"\nimport script from \"./elasticsearch.vue?vue&type=script&lang=js\"\nexport * from \"./elasticsearch.vue?vue&type=script&lang=js\"\n\nimport \"./elasticsearch.vue?vue&type=style&index=0&id=23b190dc&lang=css\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\n\r\nexport default {\r\n components: { LabeledInput },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div class=\"forward\">\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.path\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.file.path')\"\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./file.vue?vue&type=template&id=53ae325a\"\nimport script from \"./file.vue?vue&type=script&lang=js\"\nexport * from \"./file.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport SecretSelector from '@shell/components/form/SecretSelector';\nimport { updatePort } from './utils';\n\nexport default {\n components: { LabeledInput, SecretSelector },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n required: true,\n },\n namespace: {\n type: String,\n required: true\n }\n },\n computed: {\n port: {\n get() {\n return this.value.servers[0].port;\n },\n set(port) {\n updatePort((value) => (this.value.servers[0]['port'] = value), port);\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"forward\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.target') }}</h3>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-10\">\n <LabeledInput\n v-model:value=\"value.servers[0].host\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.forward.host')\"\n />\n </div>\n <div class=\"col span-2\">\n <LabeledInput\n v-model:value=\"port\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n type=\"number\"\n min=\"1\"\n max=\"65535\"\n :label=\"t('logging.forward.port')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.access') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.servers[0].username\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.forward.username')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.servers[0].password\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.forward.password')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.servers[0].shared_key\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.forward.sharedKey')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.tls_client_cert_path\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.forward.clientCertPath')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.tls_client_private_key_path\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.forward.clientPrivateKeyPath')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.tls_client_private_key_passphrase\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.forward.clientPrivateKeyPassphrase')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./forward.vue?vue&type=template&id=6c319b78\"\nimport script from \"./forward.vue?vue&type=script&lang=js\"\nexport * from \"./forward.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { Checkbox } from '@components/Form/Checkbox';\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: {\r\n Checkbox, LabeledInput, SecretSelector\r\n },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.project\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gcs.project')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.bucket\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gcs.bucket')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.path\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gcs.path')\"\n />\r\n </div>\r\n <div class=\"col span-6 overwrite\">\r\n <Checkbox\n v-model:value=\"value.overwrite\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gcs.overwriteExistingPath')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.credentials_json\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.gcs.credentialsJson')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.overwrite {\r\n display: flex;\r\n align-items: center;\r\n}\r\n</style>\r\n","import { render } from \"./gcs.vue?vue&type=template&id=6d929cee&scoped=true\"\nimport script from \"./gcs.vue?vue&type=script&lang=js\"\nexport * from \"./gcs.vue?vue&type=script&lang=js\"\n\nimport \"./gcs.vue?vue&type=style&index=0&id=6d929cee&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6d929cee\"]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { Checkbox } from '@components/Form/Checkbox';\n\nexport default {\n components: {\n Checkbox, LabeledInput, LabeledSelect\n },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n required: true,\n },\n namespace: {\n type: String,\n required: true\n }\n },\n data() {\n const protocolOptions = ['tcp', 'udp'];\n\n this.value['tls_options'] = this.value.tls_options || {};\n this.value['protocol'] = this.value.protocol || protocolOptions[0];\n\n return { protocolOptions };\n },\n computed: {\n port: {\n get() {\n return this.value.port;\n },\n set(port) {\n this.value['port'] = Number.parseInt(port);\n }\n },\n no_verify: {\n get() {\n return this.value.tls_options.no_verify === 'true';\n },\n set(noVerify) {\n this.value.tls_options['no_verify'] = noVerify ? 'true' : null;\n }\n },\n all_ciphers: {\n get() {\n return this.value.tls_options.all_ciphers === 'true';\n },\n set(allCiphers) {\n this.value.tls_options['all_ciphers'] = allCiphers ? 'true' : null;\n }\n },\n }\n};\n</script>\n\n<template>\n <div class=\"gelf\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.target') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.host\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"host\"\n :label=\"t('logging.gelf.host')\"\n />\n </div>\n <div class=\"col span-3\">\n <LabeledInput\n v-model:value=\"port\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"port\"\n type=\"number\"\n :label=\"t('logging.gelf.port')\"\n />\n </div>\n <div class=\"col span-3\">\n <LabeledSelect\n v-model:value=\"value.protocol\"\n :options=\"protocolOptions\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gelf.protocol')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <Checkbox\n v-model:value=\"value.tls\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gelf.tls')\"\n />\n </div>\n <div class=\"col span-6\">\n <Checkbox\n v-model:value=\"no_verify\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gelf.tlsOptions.noVerify')\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.tls_options.cert\"\n type=\"multiline\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gelf.tlsOptions.clientCert')\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.tls_options.key\"\n type=\"multiline\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gelf.tlsOptions.clientKey')\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.tls_options.tls_version\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gelf.tlsOptions.tlsVersion')\"\n />\n </div>\n <div class=\"col span-6\">\n <Checkbox\n v-model:value=\"all_ciphers\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.gelf.tlsOptions.allCiphers')\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./gelf.vue?vue&type=template&id=04900f7a\"\nimport script from \"./gelf.vue?vue&type=script&lang=js\"\nexport * from \"./gelf.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport SecretSelector from '@shell/components/form/SecretSelector';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { protocol } from './utils';\n\nexport default {\n components: {\n Checkbox, LabeledInput, SecretSelector\n },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n required: true,\n },\n namespace: {\n type: String,\n required: true\n }\n },\n\n data() {\n return { schemes: protocol };\n },\n};\n</script>\n\n<template>\n <div class=\"kafka\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.target') }}</h3>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.brokers\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.kafka.brokers')\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.default_topic\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.kafka.defaultTopic')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.access') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.username\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.kafka.username')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.password\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.kafka.password')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.scram_mechanism\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.kafka.scramMechanism')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <Checkbox\n v-model:value=\"value.sasl_over_ssl\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.kafka.saslOverSsl')\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ssl_ca_cert\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.kafka.sslCaCert.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ssl_client_cert\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.kafka.sslClientCert.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ssl_client_cert_chain\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.kafka.sslClientCertChain.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ssl_client_cert_key\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.kafka.sslClientCertKey')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./kafka.vue?vue&type=template&id=4ba0638c\"\nimport script from \"./kafka.vue?vue&type=script&lang=js\"\nexport * from \"./kafka.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\n\r\nexport default {\r\n components: { LabeledInput, SecretSelector },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.stream_name\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.kinesisStream.streamName')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.aws_key_id\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.kinesisStream.keyId')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.aws_sec_key\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.kinesisStream.secretKey')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./kinesisStream.vue?vue&type=template&id=08109557\"\nimport script from \"./kinesisStream.vue?vue&type=script&lang=js\"\nexport * from \"./kinesisStream.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\n\r\nexport default {\r\n components: { LabeledInput },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.hostname\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.logdna.hostname')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.app\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.logdna.app')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.api_key\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.logdna.apiKey')\"\n :required=\"true\"\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./logdna.vue?vue&type=template&id=40aa7568\"\nimport script from \"./logdna.vue?vue&type=script&lang=js\"\nexport * from \"./logdna.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { Checkbox } from '@components/Form/Checkbox';\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\nimport { updatePort } from './utils';\r\n\r\nexport default {\r\n components: {\r\n Checkbox, LabeledInput, SecretSelector\r\n },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n computed: {\r\n port: {\r\n get() {\r\n return this.value.endpoint.port;\r\n },\r\n set(port) {\r\n updatePort((value) => (this.value.endpoint['port'] = value), port);\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.endpoint.url\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.logz.url')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\r\n v-model:value=\"port\"\r\n :mode=\"mode\"\r\n :disabled=\"disabled\"\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"65535\"\r\n :label=\"t('logging.logz.port')\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.endpoint.token\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.logz.token')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <Checkbox\r\n v-model:value=\"value.gzip\"\r\n :mode=\"mode\"\r\n :disabled=\"disabled\"\r\n :label=\"t('logging.logz.enableCompression')\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./logz.vue?vue&type=template&id=51e93f05\"\nimport script from \"./logz.vue?vue&type=script&lang=js\"\nexport * from \"./logz.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport SecretSelector from '@shell/components/form/SecretSelector';\nimport { Checkbox } from '@components/Form/Checkbox';\n\nexport default {\n components: {\n Checkbox, LabeledInput, SecretSelector\n },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n required: true,\n },\n namespace: {\n type: String,\n required: true\n }\n },\n data() {\n return {};\n },\n};\n</script>\n\n<template>\n <div class=\"loki\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.target') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.url\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"url\"\n placeholder=\"https://127.0.0.1:8000\"\n data-testid=\"loki-url\"\n :label=\"t('logging.loki.url')\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.tenant\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.loki.tenant')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.access') }}</h3>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.username\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.loki.username')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.password\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.loki.password')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ca_cert\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.loki.caCert')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6 mb-10\">\n <SecretSelector\n v-model:value=\"value.cert\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.loki.cert')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.key\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.loki.key')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.labels') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-12\">\n <Checkbox\n v-model:value=\"value.configure_kubernetes_labels\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.loki.configureKubernetesLabels')\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-12\">\n <Checkbox\n v-model:value=\"value.extract_kubernetes_labels\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.loki.extractKubernetesLabels')\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-12\">\n <Checkbox\n v-model:value=\"value.drop_single_key\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.loki.dropSingleKey')\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./loki.vue?vue&type=template&id=e7caaa0e\"\nimport script from \"./loki.vue?vue&type=script&lang=js\"\nexport * from \"./loki.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: { LabeledInput, SecretSelector },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\r\n v-model:value=\"value.base_uri\"\r\n :mode=\"mode\"\r\n :disabled=\"disabled\"\r\n :label=\"t('logging.newrelic.baseURI')\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.api_key\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.newrelic.apiKey')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.license_key\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.newrelic.licenseKey')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./newrelic.vue?vue&type=template&id=066e83f8\"\nimport script from \"./newrelic.vue?vue&type=script&lang=js\"\nexport * from \"./newrelic.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport SecretSelector from '@shell/components/form/SecretSelector';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { _CREATE } from '@shell/config/query-params';\nimport { updatePort, protocol, sslVersions } from './utils';\n\nexport default {\n components: {\n LabeledInput, LabeledSelect, SecretSelector, Checkbox\n },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n required: true,\n },\n namespace: {\n type: String,\n required: true\n }\n },\n data() {\n if (this.mode === _CREATE) {\n // Set default values only if no values are already\n // present. This allows changes to default values to persist\n // after navigating to YAML and back.\n\n // Require SSL verification by default\n if (typeof this.value.ssl_verify === 'undefined') {\n this.value['ssl_verify'] = true;\n }\n\n // Use the SSL version TLSv1_2 by default to match Ember\n if (typeof this.value.ssl_version === 'undefined') {\n this.value['ssl_version'] = sslVersions[0];\n }\n\n // Suppress type name by default\n if (typeof this.value.suppress_type_name === 'undefined') {\n this.value['suppress_type_name'] = true;\n }\n }\n\n return { protocolOptions: protocol, sslVersions };\n },\n computed: {\n port: {\n get() {\n return this.value.port;\n },\n set(port) {\n updatePort((value) => (this.value['port'] = value), port);\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"opensearch\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.target') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-2\">\n <LabeledSelect\n v-model:value=\"value.scheme\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"scheme\"\n :options=\"protocolOptions\"\n :label=\"t('logging.elasticsearch.scheme')\"\n />\n </div>\n <div class=\"col span-8\">\n <LabeledInput\n v-model:value=\"value.host\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"host\"\n :label=\"t('logging.elasticsearch.host')\"\n />\n </div>\n <div class=\"col span-2\">\n <LabeledInput\n v-model:value.number=\"port\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"port\"\n type=\"number\"\n min=\"1\"\n max=\"65535\"\n :label=\"t('logging.elasticsearch.port')\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.index_name\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.elasticsearch.indexName')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.access') }}</h3>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.user\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.elasticsearch.user')\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.password\"\n :secret-name-label=\"t('logging.elasticsearch.password')\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ca_file\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.elasticsearch.caFile.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.client_cert\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.elasticsearch.clientCert.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.client_key\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.elasticsearch.clientKey.label')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.client_key_pass\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.elasticsearch.clientKeyPass')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6 vertically-center\">\n <Checkbox\n v-model:value=\"value.ssl_verify\"\n :label=\"t('logging.elasticsearch.verifySsl')\"\n :disabled=\"disabled\"\n :mode=\"mode\"\n />\n <Checkbox\n v-model:value=\"value.suppress_type_name\"\n :label=\"t('logging.elasticsearch.suppressTypeName.label')\"\n :tooltip=\"t('logging.elasticsearch.suppressTypeName.openSearchTips')\"\n :disabled=\"disabled\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </div>\n</template>\n<style>\n.row {\n margin-bottom: 5px;\n}\n.vertically-center {\n padding: 20px 0;\n}\n</style>\n","import { render } from \"./opensearch.vue?vue&type=template&id=0d09c670\"\nimport script from \"./opensearch.vue?vue&type=script&lang=js\"\nexport * from \"./opensearch.vue?vue&type=script&lang=js\"\n\nimport \"./opensearch.vue?vue&type=style&index=0&id=0d09c670&lang=css\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport SecretSelector from '@shell/components/form/SecretSelector';\nimport { updatePort } from './utils';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nexport default {\n components: {\n LabeledInput, LabeledSelect, SecretSelector\n },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n required: true,\n },\n namespace: {\n type: String,\n required: true\n }\n },\n data() {\n const formatTypeOptions = ['json', 'out_file', 'ltsv', 'csv', 'msgpack', 'hash', 'single_value'];\n\n this.value['format'] = this.value.format || { type: formatTypeOptions[0] };\n\n return { formatTypeOptions };\n },\n computed: {\n port: {\n get() {\n return this.value.port;\n },\n set(port) {\n updatePort((value) => (this.value.port = value), port);\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"opensearch\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.target') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-8\">\n <LabeledInput\n v-model:value=\"value.host\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"host\"\n :label=\"t('logging.redis.host')\"\n />\n </div>\n <div class=\"col span-2\">\n <LabeledInput\n v-model:value.number=\"port\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n class=\"port\"\n type=\"number\"\n min=\"1\"\n max=\"65535\"\n :label=\"t('logging.redis.port')\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"value.db_number\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n type=\"number\"\n :label=\"t('logging.redis.dbNumber')\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"value.ttl\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n type=\"number\"\n :label=\"t('logging.redis.ttl')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.redis.format.title') }}</h3>\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"value.format.type\"\n :options=\"formatTypeOptions\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.redis.format.type')\"\n />\n </div>\n </div>\n <div class=\"spacer\" />\n <div class=\"row\">\n <div class=\"col span-6\">\n <h3>{{ t('logging.output.sections.access') }}</h3>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.password\"\n :secret-name-label=\"t('logging.elasticsearch.password')\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n </div>\n</template>\n<style>\n.row {\n margin-bottom: 5px;\n}\n</style>\n","import { render } from \"./redis.vue?vue&type=template&id=1b04d6cd\"\nimport script from \"./redis.vue?vue&type=script&lang=js\"\nexport * from \"./redis.vue?vue&type=script&lang=js\"\n\nimport \"./redis.vue?vue&type=style&index=0&id=1b04d6cd&lang=css\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { Checkbox } from '@components/Form/Checkbox';\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: {\r\n Checkbox, LabeledInput, SecretSelector\r\n },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n computed: {\r\n overwrite: {\r\n get() {\r\n return this.value.overwrite === 'true';\r\n },\r\n set(value) {\r\n this.value['overwrite'] = value.toString();\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.s3_endpoint\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.s3.endpoint')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.s3_bucket\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.s3.bucket')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.path\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.s3.path')\"\n />\r\n </div>\r\n <div class=\"col span-6 overwrite\">\r\n <Checkbox\n v-model:value=\"overwrite\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.s3.overwriteExistingPath')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.access') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.aws_key_id\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.s3.keyId')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.aws_sec_key\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.s3.secretKey')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.overwrite {\r\n display: flex;\r\n align-items: center;\r\n}\r\n</style>\r\n","import { render } from \"./s3.vue?vue&type=template&id=3422a3ee&scoped=true\"\nimport script from \"./s3.vue?vue&type=script&lang=js\"\nexport * from \"./s3.vue?vue&type=script&lang=js\"\n\nimport \"./s3.vue?vue&type=style&index=0&id=3422a3ee&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3422a3ee\"]])\n\nexport default __exports__","<script>\nimport SecretSelector from '@shell/components/form/SecretSelector';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { protocol, updatePort } from './utils';\n\nexport default {\n components: {\n Checkbox, LabeledInput, LabeledSelect, SecretSelector\n },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n required: true,\n },\n namespace: {\n type: String,\n required: true\n }\n },\n\n data() {\n return { protocolOptions: protocol };\n },\n\n computed: {\n port: {\n get() {\n return this.value.hec_port;\n },\n set(port) {\n updatePort((value) => (this.value['hec_port'] = value), port);\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"splunk\">\n <div>\n <h3>{{ t('logging.output.sections.target') }}</h3>\n <div class=\"row mb-10\">\n <div class=\"col span-2\">\n <LabeledSelect\n v-model:value=\"value.protocol\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :options=\"protocolOptions\"\n :label=\"t('logging.splunk.protocol')\"\n />\n </div>\n <div class=\"col span-8\">\n <LabeledInput\n v-model:value=\"value.hec_host\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.splunk.host')\"\n />\n </div>\n <div class=\"col span-2\">\n <LabeledInput\n v-model:value=\"port\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n type=\"number\"\n min=\"1\"\n max=\"65535\"\n :label=\"t('logging.splunk.port')\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.index\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.splunk.indexName')\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.source\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.splunk.source')\"\n />\n </div>\n </div>\n </div>\n <div class=\"spacer\" />\n <div>\n <h3>{{ t('logging.output.sections.access') }}</h3>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.hec_token\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.splunk.token')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n </div>\n <div class=\"spacer\" />\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <Checkbox\n v-model:value=\"value.insecure_ssl\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.splunk.insecureSsl')\"\n />\n </div>\n </div>\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ca_file\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.splunk.caFile')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.ca_path\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.splunk.caPath')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.client_cert\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.splunk.clientCert')\"\n :show-key-selector=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <SecretSelector\n v-model:value=\"value.client_key\"\n mount-key=\"mountFrom\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"disabled\"\n :secret-name-label=\"t('logging.splunk.clientKey')\"\n :show-key-selector=\"true\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./splunkHec.vue?vue&type=template&id=92bc30c4\"\nimport script from \"./splunkHec.vue?vue&type=script&lang=js\"\nexport * from \"./splunkHec.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: { LabeledInput, SecretSelector },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\r\n v-model:value=\"value.source_name\"\r\n class=\"source-name\"\r\n :mode=\"mode\"\r\n :disabled=\"disabled\"\r\n :label=\"t('logging.sumologic.sourceName')\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.endpoint\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.sumologic.endpoint')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./sumologic.vue?vue&type=template&id=773e8684\"\nimport script from \"./sumologic.vue?vue&type=script&lang=js\"\nexport * from \"./sumologic.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { Checkbox } from '@components/Form/Checkbox';\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\r\nimport SecretSelector from '@shell/components/form/SecretSelector';\r\n\r\nexport default {\r\n components: {\r\n Checkbox, LabeledInput, LabeledSelect, SecretSelector\r\n },\r\n props: {\r\n value: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n data() {\r\n const formatTypeOptions = ['json', 'out_file', 'ltsv', 'csv', 'msgpack', 'hash', 'single_value'];\r\n const transportOptions = ['tls', 'udp', 'tcp'];\r\n\r\n this.value['format'] = this.value.format || { type: formatTypeOptions[0] };\r\n this.value['buffer'] = this.value.buffer || {};\r\n this.value['transport'] = this.value.transport || transportOptions[0];\r\n\r\n return { formatTypeOptions, transportOptions };\r\n },\r\n computed: {\r\n port: {\r\n get() {\r\n return this.value.port;\r\n },\r\n set(port) {\r\n this.value['port'] = Number.parseInt(port);\r\n }\r\n },\r\n chunkLimitRecords: {\r\n get() {\r\n return this.value.buffer.chunk_limit_records;\r\n },\r\n set(chunkLimitRecords) {\r\n this.value.buffer['chunk_limit_records'] = Number.parseInt(chunkLimitRecords);\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div class=\"elasticsearch\">\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.target') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col span-8\">\r\n <LabeledInput\n v-model:value=\"value.host\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.host')\"\n />\r\n </div>\r\n <div class=\"col span-4\">\r\n <LabeledInput\r\n v-model:value=\"port\"\r\n :mode=\"mode\"\r\n :disabled=\"disabled\"\r\n class=\"port\"\r\n type=\"number\"\r\n :label=\"t('logging.syslog.port')\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.output.sections.certificate') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"value.transport\"\r\n :options=\"transportOptions\"\r\n :mode=\"mode\"\r\n :disabled=\"disabled\"\r\n :label=\"t('logging.syslog.transport')\"\r\n />\r\n </div>\r\n <div class=\"col span-6 insecure\">\r\n <Checkbox\n v-model:value=\"value.insecure\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.insecure')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <SecretSelector\r\n v-model:value=\"value.trusted_ca_path\"\r\n mount-key=\"mountFrom\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"disabled\"\r\n :secret-name-label=\"t('logging.syslog.trustedCaPath')\"\r\n :show-key-selector=\"true\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.syslog.format.title') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"value.format.type\"\r\n :options=\"formatTypeOptions\"\r\n :mode=\"mode\"\r\n :disabled=\"disabled\"\r\n :label=\"t('logging.syslog.format.type')\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"spacer\" />\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t('logging.syslog.buffer.title') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-20\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.buffer.tags\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.buffer.tags')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.buffer.chunk_limit_size\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.buffer.chunkLimitSize')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\r\n v-model:value=\"chunkLimitRecords\"\r\n :mode=\"mode\"\r\n :disabled=\"disabled\"\r\n type=\"number\"\r\n :label=\"t('logging.syslog.buffer.chunkLimitRecords')\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"row mb-20\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.buffer.total_limit_size\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.buffer.totalLimitSize')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row mb-20\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.buffer.flush_interval\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.buffer.flushInterval')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.buffer.timekey\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.buffer.timekey')\"\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\n v-model:value=\"value.buffer.timekey_wait\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.buffer.timekeyWait')\"\n />\r\n </div>\r\n </div>\r\n <div class=\"row mb-10\">\r\n <div class=\"col span-6\">\r\n <Checkbox\n v-model:value=\"value.buffer.timekey_use_utc\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n :label=\"t('logging.syslog.buffer.timekeyUseUTC')\"\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n<style lang=\"scss\" scoped>\r\n.insecure {\r\n display: flex;\r\n align-items: center;\r\n}\r\n</style>\r\n","import { render } from \"./syslog.vue?vue&type=template&id=fc78e272&scoped=true\"\nimport script from \"./syslog.vue?vue&type=script&lang=js\"\nexport * from \"./syslog.vue?vue&type=script&lang=js\"\n\nimport \"./syslog.vue?vue&type=style&index=0&id=fc78e272&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fc78e272\"]])\n\nexport default __exports__","<script>\nimport ArrayList from '@shell/components/form/ArrayList';\nimport { Banner } from '@components/Banner';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { _VIEW } from '@shell/config/query-params';\nimport ArrayListGrouped from '@shell/components/form/ArrayListGrouped';\n\nexport default {\n components: {\n ArrayList,\n Banner,\n ArrayListGrouped,\n LabeledInput,\n LabeledSelect,\n },\n props: {\n mode: {\n type: String,\n required: true,\n },\n value: {\n type: Object,\n required: true,\n },\n receiverOptions: {\n type: Array,\n required: true,\n },\n },\n data() {\n this.value['matchers'] = this.value.matchers || [];\n this.value['groupBy'] = this.value.groupBy || [];\n\n return {\n isView: _VIEW,\n matchTypes: [\n { label: 'Match Equal', value: '=' },\n { label: 'Match Not Equal', value: '!=' },\n { label: 'Match Regexp', value: '=~' },\n { label: 'Match Not Regexp', value: '!~' },\n ],\n };\n },\n};\n</script>\n<template>\n <div>\n <h3>\n Receiver\n <i\n v-clean-tooltip=\"t('monitoring.alertmanagerConfig.receiverTooltip')\"\n class=\"icon icon-info\"\n />\n </h3>\n <Banner\n color=\"info\"\n :label=\"t('monitoring.alertmanagerConfig.routeInfo')\"\n />\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"value.receiver\"\n :mode=\"mode\"\n :options=\"receiverOptions\"\n />\n </div>\n </div>\n <h3>Grouping</h3>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <span class=\"label\">\n {{ t(\"monitoringRoute.groups.addGroupByLabel'\") }}\n <i\n v-clean-tooltip=\"t('monitoringRoute.groups.groupByTooltip')\"\n class=\"icon icon-info\"\n />\n </span>\n <ArrayList\n v-model:value=\"value.groupBy\"\n class=\"mt-10\"\n :mode=\"mode\"\n :initial-empty-row=\"true\"\n />\n </div>\n </div>\n <h3>Waiting and Intervals</h3>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.groupWait\"\n :label=\"t('monitoringRoute.wait.label')\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.groupInterval\"\n :label=\"t('monitoringRoute.interval.label')\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.repeatInterval\"\n :label=\"t('monitoringRoute.repeatInterval.label')\"\n :mode=\"mode\"\n />\n </div>\n </div>\n\n <h3>Matchers</h3>\n <ArrayListGrouped\n v-model:value=\"value.matchers\"\n class=\"mt-20\"\n :mode=\"mode\"\n :add-label=\"t('monitoringRoute.matching.addMatcher')\"\n :default-add-value=\"{ matchers: [] }\"\n >\n <template #default=\"props\">\n <div class=\"row mt-20 mb-20\">\n <div class=\"col span-4\">\n <LabeledInput\n v-model:value=\"props.row.value.name\"\n :label=\"t('monitoringRoute.matching.name')\"\n :tooltip=\"t('monitoringRoute.matching.nameTooltip')\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-4\">\n <LabeledInput\n v-model:value=\"props.row.value.value\"\n :label=\"t('monitoringRoute.matching.value')\"\n :tooltip=\"t('monitoringRoute.matching.valueTooltip')\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-4\">\n <LabeledSelect\n v-model:value=\"props.row.value.matchType\"\n :label=\"t('monitoringRoute.matching.matchType')\"\n :mode=\"mode\"\n :options=\"matchTypes\"\n />\n </div>\n </div>\n </template>\n </ArrayListGrouped>\n </div>\n</template>\n","import { render } from \"./routeConfig.vue?vue&type=template&id=b4519b74\"\nimport script from \"./routeConfig.vue?vue&type=script&lang=js\"\nexport * from \"./routeConfig.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\n\nexport default {\n components: { LabeledInput },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true,\n }\n },\n\n data() {\n const username = this.value.decodedData.username || '';\n const password = this.value.decodedData.password || '';\n\n return {\n username,\n password,\n };\n },\n\n watch: {\n username: 'update',\n password: 'update',\n },\n\n methods: {\n update() {\n this.value.setData('username', this.username);\n this.value.setData('password', this.password);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"username\"\n required\n :label=\"t('secret.basic.username')\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"password\"\n :label=\"t('secret.basic.password')\"\n :mode=\"mode\"\n type=\"password\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./basic.vue?vue&type=template&id=83997c10\"\nimport script from \"./basic.vue?vue&type=script&lang=js\"\nexport * from \"./basic.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport KeyValue from '@shell/components/form/KeyValue';\nimport { _VIEW } from '@shell/config/query-params';\n\nconst VALID_DATA_KEY = /^[-._a-zA-Z0-9]*$/;\n\nexport default {\n components: { KeyValue },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true,\n },\n\n hideSensitiveData: {\n type: Boolean,\n default: true,\n }\n },\n\n computed: {\n isView() {\n return this.mode === _VIEW;\n },\n },\n\n methods: {\n fileModifier(name, value) {\n if (!VALID_DATA_KEY.test(name)) {\n name = name\n .split('')\n .map((c) => VALID_DATA_KEY.test(c) ? c : '_')\n .join('');\n }\n\n return { name, value };\n },\n }\n};\n</script>\n\n<template>\n <KeyValue\n key=\"data\"\n v-model:value=\"value.data\"\n :mode=\"mode\"\n :initial-empty-row=\"true\"\n :handle-base64=\"true\"\n :value-trim=\"false\"\n :add-allowed=\"true\"\n :read-allowed=\"true\"\n :value-concealed=\"isView && hideSensitiveData\"\n :file-modifier=\"fileModifier\"\n :parse-lines-from-file=\"true\"\n read-icon=\"\"\n add-icon=\"\"\n />\n</template>\n","import { render } from \"./generic.vue?vue&type=template&id=40249151\"\nimport script from \"./generic.vue?vue&type=script&lang=js\"\nexport * from \"./generic.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { SECRET_TYPES as TYPES } from '@shell/config/secret';\nimport { MANAGEMENT, NAMESPACE, DEFAULT_WORKSPACE } from '@shell/config/types';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport CruResource from '@shell/components/CruResource';\nimport {\n CLOUD_CREDENTIAL, _CLONE, _CREATE, _EDIT, _FLAGGED\n} from '@shell/config/query-params';\nimport Loading from '@shell/components/Loading';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport Labels from '@shell/components/form/Labels';\nimport { HIDE_SENSITIVE } from '@shell/store/prefs';\nimport { CAPI } from '@shell/config/labels-annotations';\nimport { clear, uniq } from '@shell/utils/array';\nimport { NAME as MANAGER } from '@shell/config/product/manager';\nimport SelectIconGrid from '@shell/components/SelectIconGrid';\nimport { sortBy } from '@shell/utils/sort';\nimport { ucFirst } from '@shell/utils/string';\n\nconst creatableTypes = [\n TYPES.OPAQUE,\n TYPES.DOCKER_JSON,\n TYPES.TLS,\n TYPES.SSH,\n TYPES.BASIC,\n];\n\nexport default {\n name: 'CruSecret',\n\n emits: ['set-subtype', 'input'],\n\n components: {\n LabeledInput,\n LabeledSelect,\n Loading,\n NameNsDescription,\n CruResource,\n Tabbed,\n Tab,\n Labels,\n SelectIconGrid\n },\n\n mixins: [CreateEditView],\n\n async fetch() {\n if ( this.isCloud ) {\n this.nodeDrivers = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.NODE_DRIVER });\n }\n },\n\n data() {\n const newCloudCred = this.$route.query[CLOUD_CREDENTIAL] === _FLAGGED;\n const editCloudCred = this.mode === _EDIT && this.value._type === TYPES.CLOUD_CREDENTIAL;\n const cloneCloudCred = this.realMode === _CLONE && this.liveValue._type === TYPES.CLOUD_CREDENTIAL;\n const isCloud = newCloudCred || editCloudCred || cloneCloudCred;\n\n if ( newCloudCred ) {\n this.value.metadata.namespace = DEFAULT_WORKSPACE;\n\n this.value.metadata['name'] = '';\n\n this.value['data'] = {};\n }\n\n const secretTypes = [\n {\n label: 'Custom',\n value: 'custom'\n },\n {\n label: 'divider',\n disabled: true,\n kind: 'divider'\n }\n ];\n\n Object.values(TYPES).forEach((t) => {\n secretTypes.push({\n label: t,\n value: t\n });\n });\n\n return {\n isCloud,\n nodeDrivers: null,\n secretTypes,\n secretType: this.value._type,\n initialSecretType: this.value._type\n };\n },\n\n computed: {\n isCustomSecretCreate() {\n return this.mode === _CREATE && this.$route.query.type === 'custom';\n },\n showCustomSecretType() {\n return this.secretType === 'custom';\n },\n typeKey() {\n if ( this.isCloud ) {\n return 'cloud';\n }\n\n switch ( this.value._type ) {\n case TYPES.TLS: return 'tls';\n case TYPES.BASIC: return 'basic';\n case TYPES.DOCKER_JSON: return 'registry';\n case TYPES.SSH: return 'ssh';\n }\n\n return 'generic';\n },\n\n dataComponent() {\n return require(`@shell/edit/secret/${ this.typeKey }`).default;\n },\n\n driverName() {\n const driver = this.value.metadata?.annotations?.[CAPI.CREDENTIAL_DRIVER];\n\n return driver;\n },\n\n cloudComponent() {\n if (this.$store.getters['type-map/hasCustomCloudCredentialComponent'](this.driverName)) {\n return this.$store.getters['type-map/importCloudCredential'](this.driverName);\n }\n\n return this.$store.getters['type-map/importCloudCredential']('generic');\n },\n\n // array of id, label, description, initials for type selection step\n secretSubTypes() {\n const out = [];\n\n // Cloud credentials\n if ( this.isCloud ) {\n const machineTypes = uniq(this.nodeDrivers\n .filter((x) => x.spec.active)\n .map((x) => x.spec.displayName || x.id)\n .map((x) => this.$store.getters['plugins/credentialDriverFor'](x))\n );\n\n for ( const id of machineTypes ) {\n let bannerImage, bannerAbbrv;\n\n try {\n bannerImage = require(`~shell/assets/images/providers/${ id }.svg`);\n } catch (e) {\n bannerImage = null;\n bannerAbbrv = this.initialDisplayFor(id);\n }\n\n out.push({\n id,\n label: this.typeDisplay(CAPI.CREDENTIAL_DRIVER, id),\n bannerImage,\n bannerAbbrv\n });\n }\n } else {\n // Other kinds\n for ( const id of creatableTypes ) {\n out.push({\n id,\n label: this.typeDisplay(id),\n bannerAbbrv: this.initialDisplayFor(id),\n description: this.t(`secret.typeDescriptions.'${ id }'.description`),\n docLink: this.t(`secret.typeDescriptions.'${ id }'.docLink`)\n });\n }\n\n out.push({\n id: 'custom',\n label: this.t('secret.customType'),\n bannerAbbrv: this.initialDisplayFor('custom'),\n description: this.t('secret.typeDescriptions.custom.description')\n });\n }\n\n return sortBy(out, 'label');\n },\n\n namespaces() {\n return this.$store.getters['cluster/all'](NAMESPACE).map((obj) => {\n return {\n label: obj.nameDisplay,\n value: obj.id,\n };\n });\n },\n\n hideSensitiveData() {\n return this.$store.getters['prefs/get'](HIDE_SENSITIVE);\n },\n\n dataLabel() {\n switch (this.value._type) {\n case TYPES.TLS:\n return this.t('secret.certificate.certificate');\n case TYPES.SSH:\n return this.t('secret.ssh.keys');\n case TYPES.BASIC:\n return this.t('secret.authentication');\n default:\n return this.t('secret.data');\n }\n },\n\n doneRoute() {\n if ( this.$store.getters['currentProduct'].name === MANAGER ) {\n return 'c-cluster-manager-secret';\n } else {\n return 'c-cluster-product-resource';\n }\n },\n },\n\n methods: {\n async saveSecret(btnCb) {\n if ( this.errors ) {\n clear(this.errors);\n }\n\n if ( typeof this.$refs.cloudComponent?.test === 'function' ) {\n try {\n const res = await this.$refs.cloudComponent.test();\n\n if ( !res || res?.errors) {\n if (res?.errors) {\n this.errors = res.errors;\n } else {\n this.errors = ['Authentication test failed, please check your credentials'];\n }\n btnCb(false);\n\n return;\n }\n } catch (e) {\n this.errors = [e];\n btnCb(false);\n\n return;\n }\n }\n\n return this.save(btnCb);\n },\n\n selectType(type) {\n let driver;\n\n if ( this.isCloud ) {\n if ( type === TYPES.CLOUD_CREDENTIAL ) {\n // Clone goes through here\n driver = this.driverName;\n } else {\n driver = type;\n type = TYPES.CLOUD_CREDENTIAL;\n }\n\n if ( this.mode === _CREATE ) {\n this.value.setAnnotation(CAPI.CREDENTIAL_DRIVER, driver);\n }\n }\n\n this.value['_type'] = type;\n this.$emit('set-subtype', this.typeDisplay(type, driver));\n\n this.secretType = type;\n\n if (this.mode === _CREATE && type === 'custom') {\n this.value['_type'] = '';\n }\n },\n\n typeDisplay(type, driver) {\n if ( type === CAPI.CREDENTIAL_DRIVER ) {\n return this.$store.getters['i18n/withFallback'](`cluster.provider.\"${ driver }\"`, null, driver);\n } else {\n const fallback = type.replace(/^kubernetes.io\\//, '');\n\n return this.$store.getters['i18n/withFallback'](`secret.types.\"${ type }\"`, null, fallback);\n }\n },\n\n initialDisplayFor(type) {\n const fallback = (ucFirst(this.typeDisplay(type) || '').replace(/[^A-Z]/g, '') || type).substr(0, 3);\n\n return this.$store.getters['i18n/withFallback'](`secret.initials.\"${ type }\"`, null, fallback);\n },\n\n selectCustomType(type) {\n if (type !== 'custom') {\n this.value['_type'] = type;\n }\n }\n },\n};\n</script>\n\n<template>\n <form class=\"filled-height\">\n <Loading v-if=\"$fetchState.pending\" />\n <CruResource\n v-else\n :mode=\"mode\"\n :validation-passed=\"true\"\n :selected-subtype=\"value._type\"\n :resource=\"value\"\n :errors=\"errors\"\n :done-route=\"doneRoute\"\n :subtypes=\"secretSubTypes\"\n @finish=\"saveSecret\"\n @select-type=\"selectType\"\n @error=\"e=>errors = e\"\n >\n <NameNsDescription\n :value=\"value\"\n :mode=\"mode\"\n :namespaced=\"!isCloud\"\n @update:value=\"$emit('input', $event)\"\n />\n\n <div\n v-if=\"isCustomSecretCreate\"\n class=\"row\"\n >\n <div class=\"col span-3\">\n <LabeledSelect\n v-model:value=\"secretType\"\n :options=\"secretTypes\"\n :searchable=\"false\"\n :mode=\"mode\"\n :multiple=\"false\"\n :reduce=\"(e) => e.value\"\n label-key=\"secret.type\"\n required\n @update:value=\"selectCustomType\"\n />\n </div>\n\n <div class=\"col span-3\">\n <LabeledInput\n v-if=\"showCustomSecretType\"\n ref=\"customType\"\n v-model:value=\"value._type\"\n v-focus\n label-key=\"secret.customType\"\n :mode=\"mode\"\n required\n />\n </div>\n </div>\n\n <div class=\"spacer\" />\n <component\n :is=\"cloudComponent\"\n v-if=\"isCloud\"\n ref=\"cloudComponent\"\n :driver-name=\"driverName\"\n :value=\"value\"\n :mode=\"mode\"\n :hide-sensitive-data=\"hideSensitiveData\"\n />\n <Tabbed\n v-else\n :side-tabs=\"true\"\n default-tab=\"data\"\n >\n <Tab\n name=\"data\"\n :label=\"dataLabel\"\n :weight=\"99\"\n >\n <component\n :is=\"dataComponent\"\n :value=\"value\"\n :mode=\"mode\"\n :hide-sensitive-data=\"hideSensitiveData\"\n />\n </Tab>\n <Tab\n name=\"labels\"\n label-key=\"generic.labelsAndAnnotations\"\n :weight=\"-1\"\n >\n <Labels\n :value=\"value\"\n :mode=\"mode\"\n @update:value=\"$emit('input', $event)\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n </form>\n</template>\n\n<style lang='scss'>\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=b8ae9924\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { RadioGroup } from '@components/Form/Radio';\n\nexport default {\n components: { LabeledInput, RadioGroup },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true,\n }\n },\n\n data() {\n let registryProvider = 'Custom';\n\n let auths;\n\n try {\n const parsed = JSON.parse(this.value.decodedData['.dockerconfigjson']);\n\n auths = parsed.auths;\n } catch (e) {}\n\n auths = auths || {};\n\n const registryUrl = Object.keys(auths)[0] || '';\n\n if (registryUrl === 'index.docker.io/v1/') {\n registryProvider = 'DockerHub';\n } else if (registryUrl === 'quay.io') {\n registryProvider = 'Quay.io';\n } else if (registryUrl.includes('artifactory')) {\n registryProvider = 'Artifactory';\n }\n\n const username = auths[registryUrl]?.username || '';\n const password = auths[registryUrl]?.password || '';\n\n return {\n registryProvider,\n username,\n password,\n registryUrl,\n };\n },\n\n computed: {\n registryAddresses() {\n return ['Custom', 'DockerHub', 'Quay.io', 'Artifactory'];\n },\n\n needsDockerServer() {\n return this.registryProvider === 'Artifactory' || this.registryProvider === 'Custom';\n },\n\n dockerconfigjson() {\n let dockerServer = this.registryProvider === 'DockerHub' ? 'index.docker.io/v1/' : 'quay.io';\n\n if (this.needsDockerServer) {\n dockerServer = this.registryUrl;\n }\n\n if (dockerServer) {\n const config = {\n auths: {\n [dockerServer]: {\n username: this.username,\n password: this.password,\n }\n }\n };\n const json = JSON.stringify(config);\n\n return json;\n } else {\n return null;\n }\n },\n },\n\n watch: {\n registryProvider: 'update',\n registryUrl: 'update',\n username: 'update',\n password: 'update',\n },\n\n methods: {\n update() {\n this.value.setData('.dockerconfigjson', this.dockerconfigjson);\n },\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-10\">\n <div class=\"col span-12\">\n <RadioGroup\n v-model:value=\"registryProvider\"\n name=\"registryProvider\"\n :mode=\"mode\"\n :options=\"registryAddresses\"\n />\n </div>\n </div>\n <div\n v-if=\"needsDockerServer\"\n class=\"row mb-20\"\n >\n <LabeledInput\n v-model:value=\"registryUrl\"\n required\n :label=\"t('secret.registry.domainName')\"\n placeholder=\"e.g. index.docker.io\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"username\"\n :label=\"t('secret.registry.username')\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"password\"\n :label=\"t('secret.registry.password')\"\n :mode=\"mode\"\n type=\"password\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./registry.vue?vue&type=template&id=429b3f81\"\nimport script from \"./registry.vue?vue&type=script&lang=js\"\nexport * from \"./registry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport FileSelector, { createOnSelected } from '@shell/components/form/FileSelector';\n\nexport default {\n components: { LabeledInput, FileSelector },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true,\n }\n },\n\n data() {\n const username = this.value.decodedData['ssh-publickey'] || '';\n const password = this.value.decodedData['ssh-privatekey'] || '';\n\n return {\n username,\n password,\n };\n },\n\n watch: {\n username: 'update',\n password: 'update',\n },\n\n methods: {\n onUsernameSelected: createOnSelected('username'),\n onPasswordSelected: createOnSelected('password'),\n\n update() {\n this.value.setData('ssh-publickey', this.username);\n this.value.setData('ssh-privatekey', this.password);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"username\"\n type=\"multiline\"\n :label=\"t('secret.ssh.public')\"\n :mode=\"mode\"\n required\n :placeholder=\"t('secret.ssh.publicPlaceholder')\"\n />\n <FileSelector\n class=\"btn btn-sm bg-primary mt-10\"\n :label=\"t('generic.readFromFile')\"\n @selected=\"onUsernameSelected\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"password\"\n type=\"multiline\"\n :label=\"t('secret.ssh.private')\"\n :mode=\"mode\"\n required\n :placeholder=\"t('secret.ssh.privatePlaceholder')\"\n />\n <FileSelector\n class=\"btn btn-sm bg-primary mt-10\"\n :label=\"t('generic.readFromFile')\"\n @selected=\"onPasswordSelected\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./ssh.vue?vue&type=template&id=6b1764d7\"\nimport script from \"./ssh.vue?vue&type=script&lang=js\"\nexport * from \"./ssh.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { _EDIT } from '@shell/config/query-params';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport FileSelector, { createOnSelected } from '@shell/components/form/FileSelector';\n\nexport default {\n components: { LabeledInput, FileSelector },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true,\n }\n },\n\n data() {\n // do not show existing key when editing\n const originalKey = this.value.decodedData['tls.key'] || '';\n const key = this.mode === _EDIT ? '' : originalKey;\n const crt = this.value.decodedData['tls.crt'] || '';\n\n return {\n originalKey,\n key,\n crt,\n };\n },\n\n watch: {\n key: 'update',\n crt: 'update',\n },\n\n methods: {\n onKeySelected: createOnSelected('key'),\n onCrtSelected: createOnSelected('crt'),\n\n update() {\n let keyToSave;\n\n // use preexisting key if no new one was provided while editing\n if (this.mode === _EDIT && !this.key.length) {\n keyToSave = this.originalKey;\n } else {\n keyToSave = this.key;\n }\n\n this.value.setData('tls.crt', this.crt);\n this.value.setData('tls.key', keyToSave);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"key\"\n type=\"multiline\"\n :label=\"t('secret.certificate.privateKey')\"\n :mode=\"mode\"\n :placeholder=\"t('secret.certificate.privateKeyPlaceholder')\"\n />\n <FileSelector\n class=\"btn btn-sm bg-primary mt-10\"\n :label=\"t('generic.readFromFile')\"\n @selected=\"onKeySelected\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"crt\"\n required\n type=\"multiline\"\n :label=\"t('secret.certificate.certificate')\"\n :mode=\"mode\"\n :placeholder=\"t('secret.certificate.certificatePlaceholder')\"\n />\n <FileSelector\n class=\"btn btn-sm bg-primary mt-10\"\n :label=\"t('generic.readFromFile')\"\n @selected=\"onCrtSelected\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./tls.vue?vue&type=template&id=7ea3adfc\"\nimport script from \"./tls.vue?vue&type=script&lang=js\"\nexport * from \"./tls.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"h3{margin-top:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".row{margin-bottom:5px}.vertically-center{padding:20px 0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".row{margin-bottom:5px}.vertically-center{padding:20px 0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".row{margin-bottom:5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".grid[data-v-c15e59a6]{display:flex;justify-content:flex-start;flex-wrap:wrap;margin:0 -10px}@media only screen and (min-width:480px){.grid .item[data-v-c15e59a6]{width:100%}}@media only screen and (min-width:768px){.grid .item[data-v-c15e59a6]{width:calc(50% - 20px)}}@media only screen and (min-width:992px){.grid .item[data-v-c15e59a6]{width:calc(33.33333% - 20px)}}@media only screen and (min-width:1281px){.grid .item[data-v-c15e59a6]{width:calc(25% - 20px)}}.grid .item[data-v-c15e59a6]{height:135px;margin:10px;padding:10px;position:relative;border:1px solid var(--border);text-decoration:none!important;color:var(--body-text)!important}.grid .item[data-v-c15e59a6]:focus-visible{outline:2px solid var(--primary-keyboard-focus)}.grid .item[data-v-c15e59a6]:hover:not(.disabled){box-shadow:0 0 30px var(--shadow);transition:box-shadow .1s ease-in-out;cursor:pointer;text-decoration:none!important}.grid .item .side-label[data-v-c15e59a6]{position:absolute;top:10px;right:10px;padding:2px 5px}.grid .item .side-label.indicator[data-v-c15e59a6]{top:0;right:0;left:0}.grid .item .side-label label[data-v-c15e59a6],.grid .item label.deploys-os-label[data-v-c15e59a6],.grid .item label.os-incompatible-label[data-v-c15e59a6]{font-size:12px;line-height:12px;text-align:center;display:block;white-space:no-wrap;text-overflow:ellipsis;color:var(--card-badge-text);margin:0}.grid .item .deploys-os-label[data-v-c15e59a6],.grid .item .os-incompatible-label[data-v-c15e59a6]{position:absolute;bottom:10px;padding:2px 5px;right:10px}.grid .item label.os-incompatible-label[data-v-c15e59a6]{color:var(--warning);background-color:var(--warning-banner-bg)}.grid .item .logo[data-v-c15e59a6]{text-align:center;position:absolute;left:25px;top:37.5px;width:60px;height:60px;border-radius:calc(var(--border-radius)*2);overflow:hidden;background-color:#fff}.grid .item .logo img[data-v-c15e59a6]{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;position:relative;top:2px}.grid .item .logo i[data-v-c15e59a6]{background-position:50%;background-repeat:no-repeat;display:flex;height:56px;margin:2px;width:56px}.grid .item.rancher .deploys-os-label[data-v-c15e59a6],.grid .item.rancher .side-label[data-v-c15e59a6]{background-color:var(--app-rancher-accent)}.grid .item.rancher .deploys-os-label label[data-v-c15e59a6],.grid .item.rancher .side-label label[data-v-c15e59a6]{color:var(--app-rancher-accent-text)}.grid .item.rancher[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-rancher-accent)}.grid .item.partner .deploys-os-label[data-v-c15e59a6],.grid .item.partner .side-label[data-v-c15e59a6]{background-color:var(--app-partner-accent)}.grid .item.partner .deploys-os-label label[data-v-c15e59a6],.grid .item.partner .side-label label[data-v-c15e59a6]{color:var(--app-partner-accent-text)}.grid .item.partner[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-partner-accent)}.grid .item.color1 .deploys-os-label[data-v-c15e59a6],.grid .item.color1 .side-label[data-v-c15e59a6]{background-color:var(--app-color1-accent)}.grid .item.color1 .deploys-os-label label[data-v-c15e59a6],.grid .item.color1 .side-label label[data-v-c15e59a6]{color:var(--app-color1-accent-text)}.grid .item.color1[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color1-accent)}.grid .item.color2 .deploys-os-label[data-v-c15e59a6],.grid .item.color2 .side-label[data-v-c15e59a6]{background-color:var(--app-color2-accent)}.grid .item.color2 .deploys-os-label label[data-v-c15e59a6],.grid .item.color2 .side-label label[data-v-c15e59a6]{color:var(--app-color2-accent-text)}.grid .item.color2[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color2-accent)}.grid .item.color3 .deploys-os-label[data-v-c15e59a6],.grid .item.color3 .side-label[data-v-c15e59a6]{background-color:var(--app-color3-accent)}.grid .item.color3 .deploys-os-label label[data-v-c15e59a6],.grid .item.color3 .side-label label[data-v-c15e59a6]{color:var(--app-color3-accent-text)}.grid .item.color3[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color3-accent)}.grid .item.color4 .deploys-os-label[data-v-c15e59a6],.grid .item.color4 .side-label[data-v-c15e59a6]{background-color:var(--app-color4-accent)}.grid .item.color4 .deploys-os-label label[data-v-c15e59a6],.grid .item.color4 .side-label label[data-v-c15e59a6]{color:var(--app-color4-accent-text)}.grid .item.color4[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color4-accent)}.grid .item.color5 .deploys-os-label[data-v-c15e59a6],.grid .item.color5 .side-label[data-v-c15e59a6]{background-color:var(--app-color5-accent)}.grid .item.color5 .deploys-os-label label[data-v-c15e59a6],.grid .item.color5 .side-label label[data-v-c15e59a6]{color:var(--app-color5-accent-text)}.grid .item.color5[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color5-accent)}.grid .item.color6 .deploys-os-label[data-v-c15e59a6],.grid .item.color6 .side-label[data-v-c15e59a6]{background-color:var(--app-color6-accent)}.grid .item.color6 .deploys-os-label label[data-v-c15e59a6],.grid .item.color6 .side-label label[data-v-c15e59a6]{color:var(--app-color6-accent-text)}.grid .item.color6[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color6-accent)}.grid .item.color7 .deploys-os-label[data-v-c15e59a6],.grid .item.color7 .side-label[data-v-c15e59a6]{background-color:var(--app-color7-accent)}.grid .item.color7 .deploys-os-label label[data-v-c15e59a6],.grid .item.color7 .side-label label[data-v-c15e59a6]{color:var(--app-color7-accent-text)}.grid .item.color7[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color7-accent)}.grid .item.color8 .deploys-os-label[data-v-c15e59a6],.grid .item.color8 .side-label[data-v-c15e59a6]{background-color:var(--app-color8-accent)}.grid .item.color8 .deploys-os-label label[data-v-c15e59a6],.grid .item.color8 .side-label label[data-v-c15e59a6]{color:var(--app-color8-accent-text)}.grid .item.color8[data-v-c15e59a6]:hover:not(.disabled){border-color:var(--app-color8-accent)}.grid .item[data-v-c15e59a6]:hover:not(.disabled){background-position:100%;border-left-width:1px}.grid .item:hover:not(.disabled) .logo[data-v-c15e59a6]{left:25px}.grid .item:hover:not(.disabled) .name[data-v-c15e59a6]{margin-left:85px}.grid .item .name[data-v-c15e59a6]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:115px;margin:0;margin-left:85px}.grid .item.has-description .name[data-v-c15e59a6]{margin-top:10px;line-height:normal}.grid .item.has-description.has-side-label .name[data-v-c15e59a6]{margin-top:15px}.grid .item .description[data-v-c15e59a6]{margin-top:10px;margin-left:85px;margin-right:10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted)!important}.grid .disabled[data-v-c15e59a6]{opacity:.5;cursor:not-allowed}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tip[data-v-491e4180]{color:var(--disabled-text);display:flex;align-items:center}.my-icon[data-v-491e4180]{font-size:16px;margin-right:2px}.text[data-v-491e4180]{font-size:14px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-313aeca6] .unlabeled-select{height:61px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".role[data-v-6f184c54]{display:flex;align-items:center;flex-direction:row}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"button[data-v-4cc43dc5]{all:unset;height:0;position:relative;top:-35px;float:right;margin-right:7px;cursor:pointer}button .align-value[data-v-4cc43dc5]{padding-top:7px}.row.name-ns-description[data-v-4cc43dc5]{max-height:61px}.row .namespace-select[data-v-4cc43dc5] .labeled-select{min-width:40%}.row .namespace-select[data-v-4cc43dc5] .labeled-select .v-select.inline.vs--single{padding-bottom:2px}.row.flip-direction[data-v-4cc43dc5]{flex-direction:column}.row.flip-direction.name-ns-description[data-v-4cc43dc5]{max-height:none}.row.flip-direction>div[data-v-4cc43dc5]>*{margin-bottom:20px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".headers[data-v-5ccfb77f]{display:flex;flex-direction:row;justify-content:space-evenly;align-items:center;border-bottom:1px solid var(--border);height:30px;width:calc(100% - 75px)}.headers div[data-v-5ccfb77f]{width:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".row[data-v-026e7674]{display:flex;flex-direction:row;justify-content:space-evenly}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".secret-selector{width:100%}.secret-selector label{display:block}.secret-selector .labeled-select{min-height:61px}.secret-selector .vs__selected-options{padding:8px 0 7px 0}.secret-selector label{display:inline-block}.secret-selector.show-key-selector .input-container>*{display:inline-block;width:50%}.secret-selector.show-key-selector .input-container>.labeled-select.focused{z-index:10}.secret-selector.show-key-selector .input-container>:first-child{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.secret-selector.show-key-selector .input-container>:last-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none;float:right}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-e1077e64] .icon-info{margin-top:-3px;margin-right:4px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".overwrite[data-v-6d929cee]{display:flex;align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".overwrite[data-v-3422a3ee]{display:flex;align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".insecure[data-v-fc78e272]{display:flex;align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseUnset = require('./_baseUnset'),\n isIndex = require('./_isIndex');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nmodule.exports = basePullAt;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var baseIteratee = require('./_baseIteratee'),\n basePullAt = require('./_basePullAt');\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nmodule.exports = remove;\n","export const RANCHER_TYPES = [\n {\n value: 'configMaps',\n inputExponent: 0,\n baseUnit: '',\n labelKey: 'resourceQuota.configMaps',\n placeholderKey: 'resourceQuota.projectLimit.unitlessPlaceholder'\n },\n {\n value: 'limitsCpu',\n inputExponent: -1,\n baseUnitKey: 'suffix.cpus',\n labelKey: 'resourceQuota.limitsCpu',\n placeholderKey: 'resourceQuota.projectLimit.cpuPlaceholder'\n },\n {\n value: 'limitsMemory',\n inputExponent: 2,\n increment: 1024,\n labelKey: 'resourceQuota.limitsMemory',\n placeholderKey: 'resourceQuota.projectLimit.memoryPlaceholder'\n },\n {\n value: 'persistentVolumeClaims',\n inputExponent: 0,\n baseUnit: '',\n labelKey: 'resourceQuota.persistentVolumeClaims',\n placeholderKey: 'resourceQuota.projectLimit.unitlessPlaceholder'\n },\n {\n value: 'pods',\n inputExponent: 0,\n baseUnit: '',\n labelKey: 'resourceQuota.pods',\n placeholderKey: 'resourceQuota.projectLimit.unitlessPlaceholder'\n },\n {\n value: 'replicationControllers',\n inputExponent: 0,\n baseUnit: '',\n labelKey: 'resourceQuota.replicationControllers',\n placeholderKey: 'resourceQuota.projectLimit.unitlessPlaceholder'\n },\n {\n value: 'requestsCpu',\n inputExponent: -1,\n baseUnitKey: 'suffix.cpus',\n labelKey: 'resourceQuota.requestsCpu',\n placeholderKey: 'resourceQuota.projectLimit.cpuPlaceholder'\n },\n {\n value: 'requestsMemory',\n inputExponent: 2,\n increment: 1024,\n labelKey: 'resourceQuota.requestsMemory',\n placeholderKey: 'resourceQuota.projectLimit.memoryPlaceholder'\n },\n {\n value: 'requestsStorage',\n units: 'storage',\n inputExponent: 2,\n increment: 1024,\n labelKey: 'resourceQuota.requestsStorage',\n placeholderKey: 'resourceQuota.projectLimit.storagePlaceholder'\n },\n {\n value: 'secrets',\n units: 'unitless',\n inputExponent: 0,\n baseUnit: '',\n labelKey: 'resourceQuota.secrets',\n placeholderKey: 'resourceQuota.projectLimit.unitlessPlaceholder'\n },\n {\n value: 'services',\n units: 'unitless',\n inputExponent: 0,\n baseUnit: '',\n labelKey: 'resourceQuota.services',\n placeholderKey: 'resourceQuota.projectLimit.unitlessPlaceholder'\n },\n {\n value: 'servicesLoadBalancers',\n units: 'unitless',\n inputExponent: 0,\n baseUnit: '',\n labelKey: 'resourceQuota.servicesLoadBalancers',\n placeholderKey: 'resourceQuota.projectLimit.unitlessPlaceholder'\n },\n {\n value: 'servicesNodePorts',\n units: 'unitless',\n inputExponent: 0,\n baseUnit: '',\n labelKey: 'resourceQuota.servicesNodePorts',\n placeholderKey: 'resourceQuota.projectLimit.unitlessPlaceholder'\n },\n];\n\nexport const HARVESTER_TYPES = [\n {\n value: 'limitsCpu',\n inputExponent: -1,\n baseUnitKey: 'suffix.cpus',\n labelKey: 'resourceQuota.limitsCpu',\n placeholderKey: 'resourceQuota.projectLimit.cpuPlaceholder'\n },\n {\n value: 'limitsMemory',\n inputExponent: 2,\n increment: 1024,\n labelKey: 'resourceQuota.limitsMemory',\n placeholderKey: 'resourceQuota.projectLimit.memoryPlaceholder'\n },\n {\n value: 'requestsCpu',\n inputExponent: -1,\n baseUnitKey: 'suffix.cpus',\n labelKey: 'resourceQuota.requestsCpu',\n placeholderKey: 'resourceQuota.projectLimit.cpuPlaceholder'\n },\n {\n value: 'requestsMemory',\n inputExponent: 2,\n increment: 1024,\n labelKey: 'resourceQuota.requestsMemory',\n placeholderKey: 'resourceQuota.projectLimit.memoryPlaceholder'\n },\n];\n\nexport const ROW_COMPUTED = {\n typeOption() {\n return this.types.find((type) => type.value === this.type);\n }\n};\n\nexport const QUOTA_COMPUTED = {\n mappedTypes() {\n return this.types\n .map((type) => ({\n label: this.t(type.labelKey),\n baseUnit: type.baseUnitKey ? this.t(type.baseUnitKey) : undefined,\n placeholder: this.t(type.placeholderKey),\n ...type,\n }));\n }\n};\n","export const protocol = ['http', 'https'];\n\n// Order from newest to oldest\nexport const sslVersions = ['TLSv1_2', 'TLSv1_1', 'TLSv1', 'SSLv23'];\n\nexport function updatePort(setter, port) {\n // We set the value to 0 then the actual value because if we exceed the maximum of\n // 65535 all subsequent values will continue to return 65535 which vue ignores and\n // allows the user to continue appending values in the input even the the stored value\n // remains 65535.\n setter(0);\n setter(normalizePort(port));\n}\n\nexport function normalizePort(port) {\n const portAsInt = Number.parseInt(port, 10);\n\n if (portAsInt < 1) {\n return 1;\n }\n\n if (portAsInt > 65535) {\n return 65535;\n }\n\n return portAsInt;\n}\n","const validCIDRregex = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\/(3[0-2]|2[0-9]|1[0-9]|[0-9])$/;\nconst validIPRegex = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n\nexport function isValidCIDR(cidr) {\n return !!cidr.match(validCIDRregex);\n}\n\nexport function isValidIP(ip) {\n return !!ip.match(validIPRegex);\n}\n\nexport function isValidMac(value) {\n return /^[A-Fa-f0-9]{2}(-[A-Fa-f0-9]{2}){5}$|^[A-Fa-f0-9]{2}(:[A-Fa-f0-9]{2}){5}$/.test(value);\n}\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[3]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./cloudwatch.vue?vue&type=style&index=0&id=ef98655a&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"597efb0c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[3]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./elasticsearch.vue?vue&type=style&index=0&id=23b190dc&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2fe38006\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[3]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./opensearch.vue?vue&type=style&index=0&id=0d09c670&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1eae9328\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[3]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./redis.vue?vue&type=style&index=0&id=1b04d6cd&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6eb06fc2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./SelectIconGrid.vue?vue&type=style&index=0&id=c15e59a6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"704857de\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Tip.vue?vue&type=style&index=0&id=491e4180&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6cd9eebe\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ArrayListSelect.vue?vue&type=style&index=0&id=313aeca6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2b31a5a0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./MembershipEditor.vue?vue&type=style&index=0&id=6f184c54&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"12695b0b\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./NameNsDescription.vue?vue&type=style&index=0&id=4cc43dc5&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4fa99f38\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Project.vue?vue&type=style&index=0&id=5ccfb77f&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1c6c63fc\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ProjectRow.vue?vue&type=style&index=0&id=026e7674&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0fdc63ee\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./SecretSelector.vue?vue&type=style&index=0&id=2bb9d506&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0bec987e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=e1077e64&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"fdd8da38\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./gcs.vue?vue&type=style&index=0&id=6d929cee&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"74e1be48\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./s3.vue?vue&type=style&index=0&id=3422a3ee&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b23babd8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./syslog.vue?vue&type=style&index=0&id=fc78e272&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2a06e627\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["str","map","Object","create","key","split","val","NO","charCodeAt","assign","prototype","hasOwnProperty","Array","isArray","isSymbol","isReservedProp","toString","isBuiltInDirective","cacheStringFunction","fn","cache","hit","camelizeRE","camelize","replace","_","c","toUpperCase","hyphenateRE","capitalize","toLowerCase","charAt","slice","toHandlerKey","s","_globalThis","getGlobalThis","globalThis","self","window","g","listDelimiterRE","propertyDelimiterRE","styleCommentRE","parseStringStyle","cssText","ret","forEach","item","tmp","length","trim","HTML_TAGS","SVG_TAGS","MATH_TAGS","VOID_TAGS","isHTMLTag","isMathMLTag","FRAGMENT","Symbol","TELEPORT","SUSPENSE","KEEP_ALIVE","BASE_TRANSITION","OPEN_BLOCK","CREATE_BLOCK","CREATE_ELEMENT_BLOCK","CREATE_VNODE","CREATE_ELEMENT_VNODE","CREATE_COMMENT","CREATE_TEXT","CREATE_STATIC","RESOLVE_COMPONENT","RESOLVE_DYNAMIC_COMPONENT","RESOLVE_DIRECTIVE","RESOLVE_FILTER","WITH_DIRECTIVES","RENDER_LIST","RENDER_SLOT","CREATE_SLOTS","TO_DISPLAY_STRING","MERGE_PROPS","NORMALIZE_CLASS","NORMALIZE_STYLE","NORMALIZE_PROPS","GUARD_REACTIVE_PROPS","TO_HANDLERS","CAMELIZE","CAPITALIZE","TO_HANDLER_KEY","SET_BLOCK_TRACKING","PUSH_SCOPE_ID","POP_SCOPE_ID","WITH_CTX","UNREF","IS_REF","WITH_MEMO","IS_MEMO_SAME","helperNameMap","registerRuntimeHelpers","helpers","getOwnPropertySymbols","locStub","start","line","column","offset","end","source","createRoot","children","type","Set","components","directives","hoists","imports","cached","temps","codegenNode","loc","createVNodeCall","context","tag","props","patchFlag","dynamicProps","isBlock","disableTracking","isComponent","helper","getVNodeBlockHelper","inSSR","getVNodeHelper","createArrayExpression","elements","createObjectExpression","properties","createObjectProperty","value","createSimpleExpression","content","isStatic","constType","createCompoundExpression","createCallExpression","callee","args","arguments","createFunctionExpression","params","returns","newline","isSlot","createConditionalExpression","test","consequent","alternate","createCacheExpression","index","needPauseTracking","inVOnce","needArraySpread","createBlockStatement","body","ssr","convertToBlock","node","removeHelper","defaultDelimitersOpen","Uint8Array","defaultDelimitersClose","isTagStartChar","isWhitespace","isEndOfTagSection","toCharCodes","i","Sequences","Cdata","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","TextareaEnd","Tokenizer","constructor","stack","cbs","this","state","buffer","sectionStart","entityStart","baseState","inRCDATA","inXML","inVPre","newlines","mode","delimiterOpen","delimiterClose","delimiterIndex","currentSequence","sequenceIndex","inSFCRoot","reset","getPos","newlineIndex","peek","stateText","ontext","stateInterpolationOpen","stateInRCDATA","stateInterpolation","stateInterpolationClose","oninterpolation","stateSpecialStartSequence","isEnd","isMatch","stateInTagName","endOfText","actualIndex","stateInClosingTagName","fastForwardTo","Number","stateCDATASequence","stateInDeclaration","cc","push","stateInCommentLike","oncdata","oncomment","startSpecial","sequence","enterRCDATA","stateBeforeTagName","handleTagName","stateInSFCRootTagName","onopentagname","stateBeforeAttrName","stateBeforeClosingTagName","onclosetag","stateAfterClosingTagName","onopentagend","handleAttrStart","ondirname","stateInSelfClosingTag","onselfclosingtag","stateInAttrName","onattribname","handleAttrNameEnd","stateInDirName","stateInDirArg","ondirarg","stateInDynamicDirArg","stateInDirModifier","ondirmodifier","onattribnameend","stateAfterAttrName","onattribend","stateBeforeAttrValue","stateInAttrValueNoQuotes","handleInAttrValue","quote","onattribdata","stateInAttrValueDoubleQuotes","stateInAttrValueSingleQuotes","onerr","stateBeforeDeclaration","stateInProcessingInstruction","onprocessinginstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeSpecialT","startEntity","stateInEntity","parse","input","cleanup","finish","handleTrailingData","onend","endIndex","emitCodePoint","cp","consumed","getCompatValue","compatConfig","isCompatEnabled","checkCompatEnabled","enabled","defaultOnError","error","defaultOnWarn","msg","createCompilerError","code","messages","additionalMessage","SyntaxError","String","isStaticExp","p","isCoreComponent","nonIdentifierRE","isSimpleIdentifier","name","validFirstIdentCharRE","validIdentCharRE","whitespaceRE","getExpSource","exp","isMemberExpressionBrowser","path","stateStack","currentOpenBracketCount","currentOpenParensCount","currentStringType","char","pop","isMemberExpression","fnExpRE","isFnExpressionBrowser","isFnExpression","findDir","allowEmpty","findProp","dynamicOnly","isStaticArgOf","arg","hasDynamicKeyVBind","some","isText$1","isVSlot","isTemplateNode","tagType","isSlotOutlet","propsHelperSet","getUnnormalizedProps","callPath","has","concat","injectProp","prop","propsWithInjection","parentCall","first","unshift","hasProp","result","propKeyName","toValidAssetId","searchValue","replaceValue","getMemoedVNodeCall","forAliasRE","defaultParserOptions","parseMode","ns","delimiters","getNamespace","isVoidTag","isPreTag","isIgnoreNewlineTag","isCustomElement","onError","onWarn","comments","prefixIdentifiers","currentOptions","currentRoot","currentInput","currentOpenTag","currentProp","currentAttrValue","currentAttrStartIndex","currentAttrEndIndex","inPre","currentVPreBoundary","tokenizer","emitError","onText","getSlice","ontextentity","innerStart","innerEnd","includes","decodeEntities","addNode","createExp","getLoc","endOpenTag","found","e","j","el","shift","onCloseTag","backTrack","isSelfClosing","nameLoc","raw","rawName","modifiers","dirToAttr","setLocEnd","mod","onattribentity","condense","expParseMode","forParseResult","parseForExpression","syncIndex","findIndex","splice","forIteratorRE","stripParensRE","inMatch","match","LHS","RHS","createAliasExpression","asParam","indexOf","finalized","valueContent","trimmedOffset","iteratorMatch","keyContent","keyOffset","indexContent","innerLoc","parent","lastNode","isImplied","lookAhead","isFragmentTemplate","condenseWhitespace","inlineTemplateProp","find","specialTemplateDir","isUpperCase","isBuiltInComponent","isNativeTag","startsWith","windowsNewlineRE","nodes","shouldCondense","whitespace","removedWhitespace","isAllWhitespace","prev","next","hasNewlineChar","filter","Boolean","prevCharIsWhitespace","cloneLoc","dir","attr","message","options","root","cacheStatic","walk","isSingleElementRoot","child","doNotHoistNode","inFor","toCache","constantType","getConstantType","flag","getGeneratedPropsConstantType","getNodeProps","hoist","scopes","vSlot","i2","branches","cachedAsArray","getCacheExpression","slot","getSlotNode","slotName","hmr","node2","transformHoist","constantCache","get","returnType2","generatedPropsType","set","childType","expType","returnType","allowHoistedHelperSet","getConstantTypeOfHelperCall","keyType","valueType","createTransformContext","filename","hoistStatic","cacheHandlers","nodeTransforms","directiveTransforms","expressionPlugins","scopeId","slotted","ssrCssVars","bindingMetadata","inline","isTS","nameMatch","selfName","Map","WeakMap","identifiers","vFor","vPre","vOnce","grandParent","currentNode","childIndex","count","currentCount","delete","helperString","replaceNode","removeNode","list","removalIndex","onNodeRemoved","addIdentifiers","removeIdentifiers","identifier","hoisted","isVNode","cacheExp","filters","transform","traverseNode","createRootCodegen","keys","transformed","traverseChildren","nodeRemoved","exitFns","onExit","createStructuralDirectiveTransform","matches","n","PURE_ANNOTATION","aliasHelper","createCodegenContext","ast","sourceMap","optimizeImports","runtimeGlobalName","runtimeModuleName","ssrRuntimeModuleName","indentLevel","pure","indent","deindent","withoutNewLine","repeat","generate","onContextCreated","from","hasHelpers","useWithBlock","preambleContext","genFunctionPreamble","functionName","signature","join","genAssets","genNode","preamble","toJSON","VueBinding","staticHelpers","genHoists","assets","resolver","id","maybeSelfReference","endsWith","JSON","stringify","genNodeListAsArray","multilines","genNodeList","comma","genText","genExpression","genInterpolation","genCompoundExpression","genComment","genVNodeCall","genCallExpression","genObjectExpression","genArrayExpression","genFunctionExpression","genConditionalExpression","genCacheExpression","genExpressionAsPropertyKey","text","patchFlagString","callHelper","genNullableArgs","isNonScopedSlot","needNewline","needsParens","isNested","RegExp","transformIf","processIf","ifNode","branch","isRoot","siblings","sibling","createCodegenNodeForBranch","parentCondition","getParentCondition","processCodegen","createIfBranch","condition","isTemplateIf","userKey","keyIndex","createChildrenCodegenNode","keyProperty","firstChild","needFragmentWrapper","vnodeCall","transformBind","_node","transformBindShorthand","injectPrefix","propName","prefix","transformFor","processFor","forNode","renderExp","isTemplate","memo","keyProp","isDirKey","keyExp","isStableFragment","fragmentFlag","childBlock","slotOutlet","loop","createForLoopParams","parseResult","finalizeForParseResult","valueAlias","keyAlias","objectIndexAlias","memoArgs","createParamsList","defaultFallback","trackSlotScopes","buildClientSlotFn","_vForExp","buildSlots","buildSlotFn","slotsProperties","dynamicSlots","hasDynamicSlots","onComponentSlot","hasTemplateSlots","hasNamedDefaultSlot","implicitDefaultChildren","seenSlotNames","conditionalBranchIndex","slotElement","slotDir","slotChildren","slotLoc","slotProps","dirLoc","staticSlotName","slotFunction","vIf","vElse","buildDynamicSlot","conditional","add","buildDefaultSlotProperty","children2","isNonWhitespaceContent","slotFlag","hasForwardedSlots","slots","directiveImportMap","transformElement","vnodeTag","resolveComponentType","isDynamicComponent","vnodeProps","vnodeChildren","vnodeDynamicProps","dynamicPropNames","vnodeDirectives","shouldUseBlock","propsBuildResult","buildProps","buildDirectiveArgs","shouldBuildAsSlots","hasDynamicTextChild","stringifyDynamicPropNames","isExplicitDynamic","isComponentTag","isProp","builtIn","elementLoc","mergeArgs","runtimeDirectives","hasChildren","hasRef","hasClassBinding","hasStyleBinding","hasHydrationEventBinding","hasDynamicKeys","hasVnodeHook","pushMergeArg","dedupeProperties","pushRefVForMarker","analyzePatchFlag","isEventHandler","isVBind","isVOn","directiveTransform","props2","needRuntime","propsExpression","classKeyIndex","styleKeyIndex","hasDynamicKey","isHandlerKey","classProp","styleProp","knownProps","deduped","existing","mergeAsArray","incoming","dirArgs","runtime","trueExpression","modifier","propsNamesString","l","transformSlotOutlet","processSlotOutlet","slotArgs","expectedLen","nonNameProps","transformOn","augmentor","eventName","eventString","shouldCache","isMemberExp","isInlineStatement","hasMultipleStatements","transformText","currentContainer","hasText","callArgs","seen$1","WeakSet","transformOnce","cur","transformModel","createTransformProps","rawExp","expString","bindingType","maybeRef","assignmentExp","eventArg","m","modifiersKey","validDivisionCharRE","transformFilter","rewriteFilter","parseFilter","expression","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","seen","transformMemo","getBaseTransformPreset","on","bind","model","baseCompile","isModuleMode","resolvedOptions","noopDirectiveTransform","V_MODEL_RADIO","V_MODEL_CHECKBOX","V_MODEL_TEXT","V_MODEL_SELECT","V_MODEL_DYNAMIC","V_ON_WITH_MODIFIERS","V_ON_WITH_KEYS","V_SHOW","TRANSITION","TRANSITION_GROUP","decoder","decodeHtmlBrowser","asAttr","document","createElement","innerHTML","getAttribute","textContent","parserOptions","rootNamespace","a","transformStyle","parseInlineCSS","normalized","createDOMCompilerError","transformVHtml","transformVText","baseResult","directiveToUse","isInvalidType","isEventOptionModifier","isNonKeyModifier","maybeKeyModifier","isKeyboardEvent","resolveModifiers","keyModifiers","nonKeyModifiers","eventOptionModifiers","transformClick","event","isStaticClick","handlerExp","modifierPostfix","transformShow","ignoreSideEffectTags","DOMNodeTransforms","DOMDirectiveTransforms","cloak","html","show","compile","src","ensureValidVNode","ssrUtils","registerGlobalSetter","setter","setters","v","createComponentInstance","setCurrentRenderingInstance","setupComponent","renderComponentRoot","normalizeVNode","pushWarningContext","popWarningContext","isVNode$1","initDirectivesForSSR","extendStatics","d","b","setPrototypeOf","__proto__","call","__extends","TypeError","__","__assign","t","apply","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","rejected","done","then","__generator","f","y","label","sent","trys","ops","verb","iterator","op","__spreadArray","to","pack","ar","SuppressedError","Pluggable","installedPlugins","install","handler","extend","instance","invokeSetup","_a","bindProperty","property","addAllPropertiesFromSetup","setupResult","entries","config","global","stubs","transition","provide","mixins","mocks","plugins","renderStubDefaultSlot","VueWrapper","DOMWrapper","mergeStubs","target","x","_i","_b","k","mergeAppConfig","configGlobalConfig","mountGlobalConfig","globalProperties","mergeGlobalProperties","mountGlobal","_c","configGlobal","warn","obj","isClass","isCtorClass","substring","isPrototypeCtorClass","mergeDeep","getOwnPropertyNames","getPrototypeOf","targetValue","sourceValue","Date","component","isFunctionalComponent","isObjectComponent","element","nodeType","Node","COMMENT_NODE","isNotNullOrUndefined","isRefSelector","selector","convertStubsToRecord","reduce","acc","current","isDirectiveKey","getComponentsFromStubs","normalizedStubs","fromEntries","getDirectivesFromStubs","hasSetupState","vm","$","devtoolsRawSetupState","isScriptSetup","setupState","__isScriptSetup","ignorableKeyModifiers","systemKeyModifiers","mouseKeyModifiers","keyCodesByKeyName","backspace","tab","enter","esc","space","pageup","pagedown","home","left","up","right","down","insert","domEvents","abort","eventInterface","bubbles","cancelable","afterprint","animationend","animationiteration","animationstart","appinstalled","audioprocess","audioend","audiostart","beforeprint","beforeunload","beginEvent","blur","boundary","canplay","canplaythrough","change","chargingchange","chargingtimechange","checking","click","close","complete","compositionend","compositionstart","compositionupdate","contextmenu","copy","cut","dblclick","devicechange","devicelight","devicemotion","deviceorientation","deviceproximity","dischargingtimechange","DOMActivate","DOMAttributeNameChanged","DOMAttrModified","DOMCharacterDataModified","DOMContentLoaded","DOMElementNameChanged","DOMFocusIn","DOMFocusOut","DOMNodeInserted","DOMNodeInsertedIntoDocument","DOMNodeRemoved","DOMNodeRemovedFromDocument","DOMSubtreeModified","downloading","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","endEvent","focus","focusin","focusout","fullscreenchange","fullscreenerror","gamepadconnected","gamepaddisconnected","gotpointercapture","hashchange","lostpointercapture","invalid","keydown","keypress","keyup","languagechange","levelchange","load","loadeddata","loadedmetadata","loadend","loadstart","mark","messageerror","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","nomatch","notificationclick","noupdate","obsolete","offline","online","open","orientationchange","pagehide","pageshow","paste","pause","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","pointerlockerror","pointermove","pointerout","pointerover","pointerup","play","playing","popstate","progress","pushsubscriptionchange","ratechange","readystatechange","repeatEvent","resize","resourcetimingbufferfull","resume","scroll","seeked","seeking","select","selectstart","selectionchange","slotchange","soundend","soundstart","speechend","speechstart","stalled","storage","submit","success","suspend","SVGAbort","SVGError","SVGLoad","SVGResize","SVGScroll","SVGUnload","SVGZoom","timeout","timeupdate","touchcancel","touchend","touchmove","touchstart","transitionend","unload","updateready","userproximity","voiceschanged","visibilitychange","volumechange","waiting","wheel","generateModifiers","isOnClick","systemModifiers","getEventProperties","eventParams","eventType","button","meta","systemModifiersMeta","all","keyCode","eventProperties","createEvent","metaEventInterface","SupportedEventInterface","Event","createDOMEvent","eventPrototype","propertyDescriptor","getOwnPropertyDescriptor","canSetProperty","undefined","registerStub","stub","getOriginalComponentFromStub","matchName","sourceName","camelized","capitalized","isLegacyExtendedComponent","super","unwrapLegacyVueExtendComponent","isLegacyFunctionalComponent","functional","WrapperType","getComponentNameInSetup","getComponentRegisteredName","registry","__name","displayName","rawSelector","componentName","nodeTypeCandidates","selectorName","nodesAsObject","aggregateChildren","reversedNodes","reverse","findAllVNodes","vnode","matchingNodes","subTree","suspense","activeBranch","matchingVNodes","createWrapperError","wrapperType","Proxy","Error","isStyleVisible","HTMLElement","SVGElement","getComputedStyle","display","visibility","opacity","isAttributeVisible","hasAttribute","nodeName","isElementVisible","parentElement","isElement","Element","factories","registerFactory","createDOMWrapper","createVueWrapper","app","setProps","stringifyNode","outerHTML","XMLSerializer","serializeToString","getDefaultExportFromCjs","__esModule","hasRequiredOutput","js","exports","javascript","beautifier$2","output","requireOutput","OutputLine","__parent","__character_count","__indent_count","__alignment_count","__wrap_point_index","__wrap_point_character_count","__wrap_point_indent_count","__wrap_point_alignment_count","__items","IndentStringCache","baseIndentString","__cache","__indent_size","indent_size","__indent_string","indent_char","indent_with_tabs","indent_level","__base_string","__base_string_length","Output","__indent_cache","_end_with_newline","end_with_newline","wrap_line_length","indent_empty_lines","__lines","previous_line","current_line","next_line","space_before_token","non_breaking_space","previous_token_wrapped","__add_outputline","clone_empty","set_indent","has_match","pattern","lastCheckedOutput","alignment","is_empty","get_indent_size","_set_wrap_point","_should_wrap","_allow_wrap","add_new_line","last","last_newline_index","lastIndexOf","_remove_indent","_remove_wrap_indent","get_indent_string","__ensure_cache","__add_column","Math","floor","get_line_number","force_newline","just_added_newline","get_code","eol","last_item","sweet_code","set_wrap_point","add_raw_token","token","whitespace_before","add_token","printable_token","__add_space_before_token","remove_indent","output_length","eat_newlines","just_added_blankline","ensure_empty_line_above","starts_with","ends_with","potentialEmptyLine","hasRequiredToken","requireToken","Token","comments_before","previous","opened","closed","hasRequiredAcorn","acorn","requireAcorn","baseASCIIidentifierStartChars","baseASCIIidentifierChars","nonASCIIidentifierStartChars","nonASCIIidentifierChars","identifierStart","identifierChars","identifierMatch","lineBreak","allLineBreaks","hasRequiredOptions$3","hasRequiredOptions$2","options$3","options$2","requireOptions$3","Options","merge_child_field","raw_options","_mergeOpts","disabled","_get_boolean","_get_characters","_get_number","preserve_newlines","max_preserve_newlines","templating","_get_selection_list","allOptions","childFieldName","finalOpts","_normalizeOpts","convertedOpts","newKey","_get_array","default_value","option_value","parseInt","isNaN","_get_selection","selection_list","_is_valid_selection","normalizeOpts","mergeOpts","requireOptions$2","BaseOptions","validPositionValues","raw_brace_style","brace_style","braces_on_own_line","brace_style_split","brace_preserve_inline","bs","unindent_chained_methods","break_chained_methods","space_in_paren","space_in_empty_paren","jslint_happy","space_after_anon_function","space_after_named_function","keep_array_indentation","space_before_conditional","unescape_strings","e4x","comma_first","operator_position","test_output_raw","hasRequiredInputscanner","tokenizer$2","inputscanner","requireInputscanner","regexp_has_sticky","InputScanner","input_string","__input","__input_length","__position","restart","back","hasNext","__match","lastIndex","pattern_match","exec","sticky","testChar","read","starting_pattern","until_pattern","until_after","readUntil","match_index","readUntilAfter","get_regexp","match_from","flags","get_literal_regexp","literal_string","peekUntilAfter","lookBack","testVal","hasRequiredTokenstream","tokenizer$1","tokenstream","requireTokenstream","TokenStream","parent_token","__tokens","__tokens_length","__parent_token","isEmpty","hasRequiredPattern","hasRequiredWhitespacepattern","hasRequiredTokenizer$2","whitespacepattern","requirePattern","Pattern","input_scanner","_input","_starting_pattern","_match_pattern","_until_pattern","_until_after","read_match","_create","_update","until","starting_with","matching","requireWhitespacepattern","WhitespacePattern","_line_regexp","__set_whitespace_patterns","newline_count","whitespace_before_token","whitespace_chars","newline_chars","_newline_regexp","resulting_string","__split","regexp","start_index","next_match","requireTokenizer$2","TOKEN","START","RAW","EOF","_options","_patterns","tokenize","_reset","open_token","open_stack","_get_next_token","_is_comment","_is_opening","_is_closing","_is_first_token","previous_token","_readWhitespace","_create_token","current_token","hasRequiredDirectives","requireDirectives","Directives","start_block_pattern","end_block_pattern","__directives_block_pattern","__directive_pattern","__directives_end_ignore_pattern","get_directives","directive_match","readIgnored","hasRequiredTemplatablepattern","hasRequiredTokenizer$1","hasRequiredBeautifier$2","hasRequiredJavascript","templatablepattern","requireTemplatablepattern","template_names","django","erb","handlebars","php","smarty","TemplatablePattern","__template_pattern","_disabled","_excluded","__patterns","handlebars_comment","handlebars_unescaped","django_value","django_comment","smarty_comment","smarty_literal","__set_templated_pattern","disable","language","read_options","exclude","_read_template","items","peek1","requireTokenizer$1","BaseTokenizer","BASETOKEN","in_array","what","arr","START_EXPR","END_EXPR","START_BLOCK","END_BLOCK","WORD","RESERVED","SEMICOLON","STRING","EQUALS","OPERATOR","COMMA","BLOCK_COMMENT","COMMENT","DOT","UNKNOWN","directives_core","number_pattern","digit","dot_pattern","positionable_operators","punct","in_html_comment","punct_pattern","line_starters","reserved_words","reserved_word_pattern","pattern_reader","templatable","template","number","comment","block_comment","html_comment_start","html_comment_end","include","shebang","xml","single_quote","double_quote","template_text","template_expression","unescape_string","out","escaped","input_scan","matched","fromCharCode","_read_non_javascript","_read_string","_read_pair","_read_word","_read_singles","_read_comment","_read_regexp","_read_xml","_read_punctuation","sharp","ignore","has_char_escapes","_read_string_recursive","_allow_regexp_or_xml","in_char_class","xmlStr","rootTag","isCurlyRoot","depth","isEndTag","tagName","isSingletonTag","delimiter","allow_unescaped_newlines","start_sub","current_char","requireBeautifier$2","ltrim","generateMapFromStrings","reserved_word","word","reserved_array","words","special_words","OPERATOR_POSITION","OPERATOR_POSITION_BEFORE_OR_PRESERVE","before_newline","preserve_newline","MODE","BlockStatement","Statement","ObjectLiteral","ArrayLiteral","ForInitializer","Conditional","Expression","remove_redundant_indentation","frame","multiline_frame","start_line_index","split_linebreaks","idx","is_array","is_expression","all_lines_start_with","lines","each_line_matches_indent","len","Beautifier","source_text","_source_text","_output","_tokens","_last_last_text","_flags","_previous_flags","_flag_store","create_flags","flags_base","next_indent_level","indentation_level","line_indent_level","next_flags","last_token","last_word","declaration_statement","declaration_assignment","inline_frame","if_block","else_block","class_start_block","do_block","do_while","import_block","in_case_statement","in_case","case_body","case_block","ternary_depth","set_mode","beautify","handle_token","preserve_statement_flags","handle_start_expr","handle_end_expr","handle_start_block","handle_end_block","handle_word","handle_semicolon","handle_string","handle_equals","handle_operator","handle_comma","handle_block_comment","handle_comment","handle_dot","handle_eof","handle_unknown","handle_whitespace_and_comments","keep_whitespace","comment_token","print_newline","newline_restricted_tokens","allow_wrap_or_preserved_newline","force_linewrap","shouldPreserveOrForce","operatorLogicApplies","shouldPrintOperatorNewline","next_token","restore_mode","print_token_line_indentation","print_token","popped","start_of_object_property","start_of_statement","next_mode","peek_back_two","peek_back_three","second_token","empty_braces","empty_anonymous_function","check_token","isGeneratorAsterisk","isUnary","space_before","space_after","in_ternary","isColon","isTernaryColon","isOtherColon","after_newline","new_line_needed","preserve","print_block_commment","javadoc","starless","lastIndent","lastIndentLength","requireJavascript","js_beautify","js_source_text","beautifier","defaultOptions","hasRequiredOptions$1","hasRequiredBeautifier$1","hasRequiredCss","css","beautifier$1","options$1","requireOptions$1","selector_separator_newline","newline_between_rules","space_around_selector_separator","space_around_combinator","requireBeautifier$1","whitespaceChar","whitespacePattern","block_comment_pattern","comment_pattern","_ch","NESTED_AT_RULE","CONDITIONAL_GROUP_RULE","NON_SEMICOLON_NEWLINE_PROPERTY","eatString","endChars","eatWhitespace","allowAtLeastOneNewLine","foundNestedPseudoClass","openParen","ch","print_string","output_string","_indentLevel","preserveSingleSpace","isAfterSpace","outdent","_nestedLevel","previous_ch","parenLevel","insideRule","insidePropertyValue","enteringConditionalGroup","insideNonNestedAtRule","insideScssMap","topCharacter","insideNonSemiColonValues","variable","variableOrRule","preserveQuoteSpace","space_needed","preserveAfterSpace","sweetCode","requireCss","css_beautify","hasRequiredOptions","requireOptions","indent_inner_html","indent_body_inner_html","indent_head_inner_html","indent_handlebars","wrap_attributes","wrap_attributes_min_attrs","wrap_attributes_indent_size","extra_liners","inline_custom_elements","void_elements","unformatted","content_unformatted","unformatted_content_delimiter","indent_scripts","hasRequiredTokenizer","hasRequiredBeautifier","hasRequiredHtml","hasRequiredSrc","requireTokenizer","TAG_OPEN","TAG_CLOSE","ATTRIBUTE","VALUE","TEXT","_current_tag_name","templatable_reader","attribute","element_name","handlebars_open","handlebars_raw_close","cdata","conditional_comment","processing","_unformatted_content_delimiter","literal_regexp","_read_open_handlebars","_read_attribute","_read_close","_read_raw_content","_read_content_word","_read_comment_or_cdata","_read_processing","_read_open","_is_content_unformatted","tag_name","substr","requireBeautifier","Printer","base_indent_string","alignment_size","current_line_has_match","set_space_before_token","non_breaking","print_preserved_newlines","raw_token","traverse_whitespace","force","get_full_indent","level","get_type_attribute","start_token","get_custom_beautifier_name","tag_check","typeAttribute","search","TagFrame","parser_token","TagStack","printer","_printer","_current_frame","_js_beautify","_css_beautify","_tag_stack","optionHtml","_is_wrap_attributes_force","_is_wrap_attributes_force_expand_multiline","_is_wrap_attributes_force_aligned","_is_wrap_attributes_aligned_multiple","_is_wrap_attributes_preserve","_is_wrap_attributes_preserve_aligned","get_parser_token","record_tag","new_frame","_try_pop_frame","_get_frame","tag_list","stop_list","try_pop","indent_to_tag","last_tag_token","TagOpenParserToken","tokens","_handle_tag_open","tag_complete","_handle_inside_tag","_handle_tag_close","_handle_text","is_unformatted","tag_start_char","has_wrapped_attrs","indent_content","is_content_unformatted","is_inline_element","wrapped","attr_count","custom_beautifier_name","_print_custom_beatifier_text","local","_beautifier","script_indent_level","pre","post","html_source","indentation","Child_options","child_options","white","_get_tag_open_token","is_empty_element","is_start_tag","_set_tag_position","start_tag_token","peek_token","peek_index","is_end_tag","multiline_content","tag_check_match","handlebar_starts","_do_optional_end_element","foundIfOnCurrentLine","_calcluate_parent_multiline","do_end_expand","p_closers","p_parent_excludes","p_parent","requireHtml","style_html","requireSrc","html_beautify","module","get_beautify","jsExports","BaseWrapper","_this","isDisabled","validTagsToBeDisabled","hasDisabledAttribute","attributes","elementCanBeDisabled","wrapperElement","defineProperty","enumerable","configurable","findAllDOMElements","elementRootNodes","getRootNodes","rootNode","querySelectorAll","currentComponent","getCurrentComponent","refs","ref","findAll","findComponent","result_1","contains","proxy","findAllComponents","results","stringNodes","classes","className","classList","attributeMap","attributes_1","localName","exists","getComponent","isVisible","trigger","event_1","_vts","now","dispatchEvent","nextTick","_super","__vueParentComponent","r","setChecked","checked","setValue","setSelected","selectElement","option","selected","parentWrapper","shapeFlag","anchor","nextSibling","previousSibling","flat","flatMap","events","emitted","cid","uid","vmEvents","attachEmitListener","__VUE_DEVTOOLS_GLOBAL_HOOK__","_emit_1","emit","payload","captureDevtoolsVueComponentEmitEvent","setDevtoolsHook","createDevTools","componentVM","eventArgs","recordEvent","wrapperVm","removeEventHistory","createVMProxy","receiver","exposed","exposeProxy","Reflect","appContext","ctx","deleteProperty","$el","cleanUpCallbacks","__app","rootVM","$root","__setProps","attachNativeEventListener","checkTree","isUnmounted","emits","$options","elementRoots","_loop_1","eventListener","addEventListener","this_1","removeEventListener","hasMultipleRoots","$props","domWrapper","setData","data","$data","$parent","propEvent","$emit","$nextTick","unmount","cb","processSlot","Vue$1","hasWrappingTemplate","createRenderFunction","Function","renderFn","isTeleport","__isTeleport","isKeepAlive","__isKeepAlive","isRootComponent","rootComponents","createVNodeTransformer","transformers","transformationCache","originalType","restVNodeArgs","componentType","cachedTransformation","transformedType","transformer","normalizeStubProps","_d","clearAndUpper","kebabToPascalCase","DEFAULT_STUBS","teleport","Transition","BaseTransition","TransitionGroup","createDefaultStub","kebabTag","predicate","pascalTag","createStub","anonName","componentOptions","defineComponent","setup","stubProps","default","h","asyncLoader","__asyncLoader","__asyncResolved","resolveComponentStubByName","stubKey","createStubComponentsTransformer","shallow","defaultStub","registeredName","unwrappedStub","stubFn_1","specializedStubComponent","stubName","createStubs","noop","createStubDirectivesTransformer","directivesToPatch","replacementDirectives","directive","deeplyCheckForRef","visitedObjects","isRef","values","isDeepRef","MOUNT_OPTIONS","getInstanceOptions","methods","resultOptions","createInstance","inputComponent","originalComponent","instanceOptions","slotToFunction","INSTANCE_LISTENERS","INSTANCE_ATTRS_CLASS_STYLE","COMPONENT_FUNCTIONAL","attrs","normalized_1","providedData_1","objectComponent","originalDataFn_1","MOUNT_COMPONENT_REF","shallowReactive","reactive","propsData","componentRef","Parent","render","createApp","mixin","beforeCreate","_e","ownKeys","_f","plugin","use","_g","_h","_j","_k","_l","_m","transformVNodeArgs","_o","_p","name_1","isEnabled","wrapperInstances","trackInstance","wrapper","mount","newProps","originalErrorHandler","errorHandler","errorsOnMount","err","info","attachTo","querySelector","appendChild","appRef","shallowMount","defaultRoute","redirectedFrom","query","hash","fullPath","href","required","custom","route","computed","$slots","isActive","isExactActive","navigate","setImmediate","setTimeout","describe","it","Loki","namespace","url","placeholder","expect","toBe","class","_createElementBlock","_createElementVNode","_hoisted_1","showTip","_hoisted_2","_hoisted_3","viewMode","_createBlock","_component_t","_createCommentVNode","_hoisted_4","_hoisted_5","_createVNode","_component_UnitInput","requestsCpu","$event","updateLimits","_ctx","_hoisted_6","requestsMemory","increment","_hoisted_7","_hoisted_8","limitsCpu","_hoisted_9","limitsMemory","handleGpuLimit","_hoisted_10","_hoisted_11","limitsGpu","UnitInput","registerBeforeHook","_VIEW","watch","detailTopColumns","title","$store","getters","created","initLimits","updateBeforeSave","cleanUp","setAnnotation","CONTAINER_DEFAULT_RESOURCE_LIMIT","defaults","metadata","annotations","__exports__","_renderSlot","prefixLabel","_createTextVNode","_toDisplayString","_component_router_link","_withCtx","middleLabel","middle","suffixLabel","suffix","rows","_Fragment","_renderList","_resolveDynamicComponent","asLink","keyField","role","disabledField","nameField","tabindex","linkField","targetField","rel","_normalizeClass","descriptionField","sideLabelField","colorFor","componentTestid","onClick","onKeyup","_withKeys","deploysOnWindows","windowsIncompatible","iconClass","_component_LazyImage","iconField","noDataKey","LazyImage","row","icon","_component_ArrayList","_mergeProps","arrayListProps","addAllowed","loading","defaultAddValue","_cache","columns","scope","_component_Select","selectProps","calculateOptions","getOptionLabel","updateRow","ArrayList","Select","enableDefaultAddValue","filteredOptions","opt","valueOption","o","_component_MembershipEditor","defaultBindingHandler","NORMAN","PROJECT_ROLE_TEMPLATE_BINDING","parentId","$fetchState","pending","_component_Loading","bindings","_component_Principal","principalId","roleDisplay","addMember","remove","isCreate","isView","normalizeId","canViewMembershipEditor","store","needsProject","MANAGEMENT","ROLE_TEMPLATE","PRINCIPAL","Loading","addMemberDialogName","parentKey","modalSticky","fetch","roleBindingRequestParams","projectId","userHydration","schema","dispatch","USER","allBindings","_CREATE","defaultBinding","isDefaultBinding","lastSavedBindings","newBindings","binding","removedBindings","membershipUpdate","save","savedPromises","removedPromises","deep","componentProps","onAdd","onAddMember","canViewProjectMembershipEditor","MembershipEditor","roleTemplateId","userPrincipalId","namespaced","nameNsHidden","createNamespace","_component_LabeledInput","namespaceReallyDisabled","nameRequired","rules","aria","cancelCreateNamespace","_component_LabeledSelect","clearable","searchable","multiple","onSelecting","selectNamespace","nameLabel","namePlaceholder","nameReallyDisabled","extraColumns","description","descriptionDisabled","descriptionLabel","descriptionPlaceholder","descriptionHidden","col","colSpan","showSpacer","normalizeName","LabeledInput","LabeledSelect","nameEditable","nameDisabled","nameNormalized","namespaceFilter","namespaceMapper","namespaceType","NAMESPACE","namespaceLabel","namespacePlaceholder","namespaceDisabled","namespaceNewAllowed","noDefaultNamespace","namespacesOverride","namespaceOptions","createNamespaceOverride","nameKey","namespaceKey","descriptionKey","forceNamespace","horizontal","updateNamespace","DESCRIPTION","inStore","nsSchema","mapGetters","mapActions","_EDIT","namespaces","sort","namespaceObjs","allowedNamespaces","nameDisplay","sortedByLabel","sortBy","createButton","kind","divider","createOverhead","canCreateNamespace","showCustomize","cols","max","span","collectionMethods","currentCluster","canUpdate","mounted","$refs","changeNameAndNamespace","typeValues","remainingTypes","onRemove","emitRemove","_component_Row","types","onInput","onTypeChange","updateType","typeOption","resourceQuotaLimit","inputExponent","baseUnit","updateQuotaLimit","namespaceDefaultResourceQuotaLimit","ROW_COMPUTED","spec","resourceQuota","limit","namespaceDefaultResourceQuota","Row","QUOTA_COMPUTED","currentType","mappedTypes","mappedType","showKeySelector","_component_ResourceLabeledSelect","secretNameLabel","SECRET","paginateSecretsSetting","allSecretsSettings","isKeyDisabled","keyNameLabel","NONE","ResourceLabeledSelect","TYPES","mountKey","keyKey","secrets","updateResources","allSecretsInNamespace","secret","_type","mappedSecrets","mapSecrets","localeCompare","requestSettings","paginatePageOptions","secretKeyRef","isNone","correctedName","res","LABEL_SELECT_KINDS","opts","PaginationParamFilter","createSingleField","field","groupByNamespace","classify","asc","formSupported","_component_CruResource","doneRoute","resource","subtypes","errors","applyHooks","onFinish","onCancel","_component_NameNsDescription","LOGGING","CLUSTER_FLOW","_component_Tabbed","onChanged","tabChanged","_component_Tab","weight","isHarvester","_component_Banner","color","loggingType","flowTypeOptions","_component_ArrayListGrouped","_component_Match","namespaceChoices","nodeChoices","removeMatch","updateMatch","addMatch","globalOutputRefs","clusterOutputChoices","taggable","isTag","FLOW","localOutputRefs","outputChoices","_component_YamlEditor","filtersYaml","scrolling","initialFiltersYaml","EDITOR_MODES","VIEW_CODE","EDIT_CODE","onOnReady","onYamlEditorReady","_component_KeyValue","labels","protip","hosts","container_names","placement","isClusterFlow","modelValue","KeyValue","VIRTUAL","update","removeRule","FLOW_LOGGING","FLOW_AUDIT","FLOW_EVENT","FLOW_TYPE","emptyMatch","rule","Banner","CruResource","NameNsDescription","Tab","Tabbed","YamlEditor","Match","ArrayListGrouped","CreateEditView","inheritAttrs","hasAccessToClusterOutputs","CLUSTER_OUTPUT","hasAccessToOutputs","OUTPUT","hasAccessToNamespaces","hasAccessToNodes","NODE","isFlow","getAllOrDefault","hasAccess","allHash","allOutputs","allClusterOutputs","allNamespaces","allNodes","schemas","SCHEMA","jsyaml","createYaml","SPOOFED","FILTERS","replaceAll","canCustomEdit","matchRuleIsPopulated","clone","isEqualNs","clusterOutput","filterJson","exceptionToErrorsArray","willSave","neu","yaml","refresh","isMatchEmpty","every","allValuesAreEmpty","eventSelector","cm","getMode","fold","execCommand","endpoint","_component_SecretSelector","access_key_id","secret_access_key","SecretSelector","azure_container","store_as","azure_storage_account","_hoisted_12","azure_storage_access_key","region","aws_key_id","aws_sec_key","_hoisted_13","_hoisted_14","log_group_name","_hoisted_15","log_stream_name","host","api_key","_component_Checkbox","use_ssl","use_compression","Checkbox","scheme","protocolOptions","port","valueModifiers","min","index_name","user","password","_hoisted_16","_hoisted_17","_hoisted_18","ca_file","_hoisted_19","client_cert","_hoisted_20","_hoisted_21","client_key","_hoisted_22","client_key_pass","_hoisted_23","_hoisted_24","ssl_version","sslVersions","_hoisted_25","ssl_verify","suppress_type_name","tooltip","protocol","updatePort","servers","username","shared_key","tls_client_cert_path","tls_client_private_key_path","tls_client_private_key_passphrase","project","bucket","overwrite","credentials_json","tls","no_verify","tls_options","cert","tls_version","all_ciphers","noVerify","allCiphers","brokers","default_topic","scram_mechanism","sasl_over_ssl","ssl_ca_cert","ssl_client_cert","ssl_client_cert_chain","ssl_client_cert_key","schemes","stream_name","hostname","gzip","tenant","ca_cert","configure_kubernetes_labels","extract_kubernetes_labels","_hoisted_26","drop_single_key","base_uri","license_key","db_number","ttl","format","formatTypeOptions","s3_endpoint","s3_bucket","hec_host","hec_token","insecure_ssl","ca_path","hec_port","source_name","transport","transportOptions","insecure","trusted_ca_path","tags","chunk_limit_size","chunkLimitRecords","total_limit_size","_hoisted_27","_hoisted_28","flush_interval","_hoisted_29","_hoisted_30","timekey","_hoisted_31","timekey_wait","_hoisted_32","_hoisted_33","timekey_use_utc","chunk_limit_records","receiverOptions","groupBy","groupWait","groupInterval","repeatInterval","matchers","matchType","matchTypes","decodedData","hideSensitiveData","fileModifier","VALID_DATA_KEY","secretSubTypes","saveSecret","onSelectType","selectType","isCloud","isCustomSecretCreate","secretType","selectCustomType","secretTypes","showCustomSecretType","cloudComponent","driverName","dataLabel","dataComponent","_component_Labels","creatableTypes","OPAQUE","DOCKER_JSON","TLS","SSH","BASIC","Labels","SelectIconGrid","nodeDrivers","NODE_DRIVER","newCloudCred","$route","CLOUD_CREDENTIAL","_FLAGGED","editCloudCred","cloneCloudCred","realMode","_CLONE","liveValue","DEFAULT_WORKSPACE","initialSecretType","typeKey","require","driver","CAPI","CREDENTIAL_DRIVER","machineTypes","uniq","active","bannerImage","bannerAbbrv","initialDisplayFor","typeDisplay","docLink","HIDE_SENSITIVE","MANAGER","btnCb","clear","fallback","ucFirst","_component_RadioGroup","registryProvider","registryAddresses","needsDockerServer","registryUrl","RadioGroup","auths","parsed","dockerconfigjson","dockerServer","json","_component_FileSelector","onSelected","onUsernameSelected","onPasswordSelected","FileSelector","createOnSelected","onKeySelected","crt","onCrtSelected","originalKey","keyToSave","___CSS_LOADER_EXPORT___","baseUnset","isIndex","arrayProto","basePullAt","array","indexes","castPath","toKey","object","baseGet","baseSlice","baseIteratee","RANCHER_TYPES","labelKey","placeholderKey","baseUnitKey","units","HARVESTER_TYPES","normalizePort","portAsInt","validCIDRregex","isValidCIDR","cidr","locals"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.207.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.207.js new file mode 100644 index 00000000..ec524862 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.207.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[207],{68732:function(e,t,r){"use strict";r.d(t,{A:function(){return y}});var a=r(9274);const n={class:"consumption-gauge"},o={key:0},i={class:"numbers"},l={key:0},s={key:1},c={class:"numbers-stats"},d={class:"percentage"},u={class:"mt-10"};function p(e,t,r,p,h,m){const f=(0,a.resolveComponent)("PercentageBar");return(0,a.openBlock)(),(0,a.createElementBlock)("div",n,[r.resourceName&&!r.usedAsResourceName?((0,a.openBlock)(),(0,a.createElementBlock)("h3",o,(0,a.toDisplayString)(r.resourceName),1)):(0,a.createCommentVNode)("",!0),(0,a.createElementVNode)("div",i,[(0,a.renderSlot)(e.$slots,"title",{amountTemplateValues:m.amountTemplateValues,formattedPercentage:m.formattedPercentage},(()=>[r.usedAsResourceName?((0,a.openBlock)(),(0,a.createElementBlock)("h4",l,(0,a.toDisplayString)(r.resourceName),1)):((0,a.openBlock)(),(0,a.createElementBlock)("span",s,(0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.used")),1)),(0,a.createElementVNode)("span",c,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.amount",m.amountTemplateValues))+" ",1),(0,a.createElementVNode)("span",d,[t[0]||(t[0]=(0,a.createElementVNode)("i",null,"/ ",-1)),(0,a.createTextVNode)((0,a.toDisplayString)(m.formattedPercentage),1)])])]))]),(0,a.createElementVNode)("div",u,[(0,a.createVNode)(f,{modelValue:m.percentageBarValue,"color-stops":r.colorStops},null,8,["modelValue","color-stops"])])])}var h=r(12243),m=r(92043),f={components:{PercentageBar:h.A},props:{resourceName:{type:String,default:""},capacity:{type:Number,required:!0},used:{type:Number,required:!0},units:{type:String,default:""},numberFormatter:{type:Function,default:e=>Number.isInteger(e)?e:e.toFixed(2)},colorStops:{type:Object,default:null},usedAsResourceName:{type:Boolean,defaut:!1}},computed:{displayUnits(){return this.units?` ${this.units}`:""},percentageBarValue(){return this.used&&this.capacity?100*this.used/this.capacity:0},amountTemplateValues(){return{used:this.numberFormatter(this.used||0),total:this.numberFormatter(this.capacity||0),unit:this.displayUnits}},formattedPercentage(){return(0,m.l9)(this.percentageBarValue)}}},g=(r(95606),r(47433));const v=(0,g.A)(f,[["render",p]]);var y=v},83030:function(e,t,r){"use strict";r.d(t,{A:function(){return I}});var a=r(9274);const n={class:"graph-options mb-10"},o={class:"info"};function i(e,t,r,i,l,s){const c=(0,a.resolveComponent)("DashboardOptions"),d=(0,a.resolveComponent)("GrafanaDashboard");return(0,a.openBlock)(),(0,a.createElementBlock)("div",{class:(0,a.normalizeClass)(["dashboard-metrics",!r.hasSummaryAndDetail&&"external-link-pull-left"])},[(0,a.createElementVNode)("div",n,[(0,a.createVNode)(c,{value:l.graphOptions,"onUpdate:value":t[0]||(t[0]=e=>l.graphOptions=e),"has-summary-and-detail":r.hasSummaryAndDetail},null,8,["value","has-summary-and-detail"])]),(0,a.createElementVNode)("div",o,[(0,a.renderSlot)(e.$slots,"default",{},void 0,!0)]),(0,a.createElementVNode)("div",{class:"graphs",style:(0,a.normalizeStyle)({height:r.graphHeight})},["detail"===l.graphOptions.type?((0,a.openBlock)(),(0,a.createBlock)(d,{key:"'detail'",class:"col span-12 detail","background-color":s.graphBackgroundColor,theme:s.theme,"refresh-rate":l.graphOptions.refreshRate,range:l.graphOptions.range,url:r.detailUrl,vars:r.vars,"modify-prefix":r.modifyPrefix},null,8,["background-color","theme","refresh-rate","range","url","vars","modify-prefix"])):((0,a.openBlock)(),(0,a.createBlock)(d,{key:"'summary'",class:"col span-12 summary","background-color":s.graphBackgroundColor,theme:s.theme,"refresh-rate":l.graphOptions.refreshRate,range:l.graphOptions.range,url:r.summaryUrl,vars:r.vars,"modify-prefix":r.modifyPrefix},null,8,["background-color","theme","refresh-rate","range","url","vars","modify-prefix"]))],4)],2)}const l={class:"graph-options"},s={key:0},c={key:1},d={class:"range-refresh"};function u(e,t,r,n,o,i){const u=(0,a.resolveComponent)("ButtonGroup"),p=(0,a.resolveComponent)("LabeledSelect");return(0,a.openBlock)(),(0,a.createElementBlock)("div",l,[r.hasSummaryAndDetail?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(u,{value:r.value.type,"onUpdate:value":t[0]||(t[0]=e=>r.value.type=e),options:o.detailSummaryOptions},null,8,["value","options"])])):((0,a.openBlock)(),(0,a.createElementBlock)("div",c,t[3]||(t[3]=[(0,a.createElementVNode)("div",null,null,-1)]))),(0,a.createElementVNode)("div",d,[(0,a.createVNode)(p,{value:r.value.range,"onUpdate:value":t[1]||(t[1]=e=>r.value.range=e),options:o.rangeOptions,label:e.t("graphOptions.range")},null,8,["value","options","label"]),(0,a.createVNode)(p,{value:r.value.refreshRate,"onUpdate:value":t[2]||(t[2]=e=>r.value.refreshRate=e),options:o.refreshOptions,label:e.t("graphOptions.refresh")},null,8,["value","options","label"])])])}var p=r(21762),h=r(77988),m={components:{ButtonGroup:p.A,LabeledSelect:h.A},props:{value:{type:Object,required:!0},hasSummaryAndDetail:{type:Boolean,default:!0}},data(){return{range:null,rangeOptions:[{label:this.t("generic.units.time.5m"),value:"5m"},{label:this.t("generic.units.time.1h"),value:"1h"},{label:this.t("generic.units.time.6h"),value:"6h"},{label:this.t("generic.units.time.1d"),value:"1d"},{label:this.t("generic.units.time.7d"),value:"7d"},{label:this.t("generic.units.time.30d"),value:"30d"}],refreshOptions:[{label:this.t("generic.units.time.5s"),value:"5s"},{label:this.t("generic.units.time.10s"),value:"10s"},{label:this.t("generic.units.time.30s"),value:"30s"},{label:this.t("generic.units.time.1m"),value:"1m"},{label:this.t("generic.units.time.5m"),value:"5m"},{label:this.t("generic.units.time.15m"),value:"15m"},{label:this.t("generic.units.time.30m"),value:"30m"},{label:this.t("generic.units.time.1h"),value:"1h"},{label:this.t("generic.units.time.2h"),value:"2h"},{label:this.t("generic.units.time.1d"),value:"1d"}],detailSummaryOptions:[{label:this.t("graphOptions.detail"),value:"detail"},{label:this.t("graphOptions.summary"),value:"summary"}]}}},f=(r(76142),r(47433));const g=(0,f.A)(m,[["render",u],["__scopeId","data-v-f155ff46"]]);var v=g;const y={class:"grafana-graph"},b={class:"text-center"},k=["src"],S={key:1},w={key:2,class:"external-link"},x=["href"];function B(e,t,r,n,o,i){const l=(0,a.resolveComponent)("Banner"),s=(0,a.resolveComponent)("Loading");return(0,a.openBlock)(),(0,a.createElementBlock)("div",y,[o.error?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0,color:"error",style:{"z-index":"1000"}},{default:(0,a.withCtx)((()=>[(0,a.createElementVNode)("div",b,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("grafanaDashboard.failedToLoad"))+" ",1),(0,a.createElementVNode)("a",{href:"#",onClick:t[0]||(t[0]=(...e)=>i.reload&&i.reload(...e))},(0,a.toDisplayString)(e.t("grafanaDashboard.reload")),1)])])),_:1})):(0,a.createCommentVNode)("",!0),(0,a.withDirectives)((0,a.createElementVNode)("iframe",{ref:"frame",class:(0,a.normalizeClass)({loading:o.loading,frame:!0}),src:i.currentUrl,frameborder:"0",scrolling:"no"},null,10,k),[[a.vShow,!o.error]]),o.loading?((0,a.openBlock)(),(0,a.createElementBlock)("div",S,[(0,a.createVNode)(s)])):(0,a.createCommentVNode)("",!0),o.loading||o.error?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("div",w,[(0,a.createElementVNode)("a",{href:i.grafanaUrl,target:"_blank",rel:"noopener nofollow"},[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("grafanaDashboard.grafana"))+" ",1),t[1]||(t[1]=(0,a.createElementVNode)("i",{class:"icon icon-external-link"},null,-1))],8,x)]))])}var V=r(84409),N=r(9980),E=r(97348),C=r(35664),$={components:{Banner:N.l,Loading:V.A},props:{url:{type:String,required:!0},vars:{type:Object,default:()=>({})},range:{type:String,default:null},refreshRate:{type:String,default:null},modifyPrefix:{type:Boolean,default:!0},backgroundColor:{type:String,default:"#1b1c21"},theme:{type:String,default:"dark"}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;if(this.$store.getters[`${e}/canList`](C.W8.APP))try{const t=await this.$store.dispatch(`${e}/find`,{type:C.W8.APP,id:"cattle-monitoring-system/rancher-monitoring"});this.monitoringVersion=t?.currentVersion}catch(t){}},data(){return{loading:!1,error:!1,interval:null,errorTimer:null,monitoringVersion:""}},computed:{currentUrl(){return this.computeUrl()},grafanaUrl(){return this.currentUrl.replace("&kiosk","")},graphWindow(){return this.$refs.frame?.contentWindow},graphHistory(){return this.graphWindow?.history},graphDocument(){return this.graphWindow?.document}},watch:{currentUrl(e){this.graphHistory&&this.graphWindow?.angular&&this.graphWindow.location.replace(e)},error(e){e?this.errorTimer=setInterval((()=>{this.reload()}),45e3):(clearInterval(this.errorTimer),this.errorTimer=null)}},mounted(){this.$refs.frame.onload=this.inject,this.poll()},beforeUnmount(){this.interval&&clearInterval(this.interval),this.errorTimer&&clearInterval(this.errorTimer)},methods:{poll(){this.interval&&(clearInterval(this.interval),this.interval=null),this.interval=setInterval((()=>{try{const e=this.$refs.frame?.contentWindow,t=e.document.querySelectorAll('[class$="alert-error'),r=e.document.querySelectorAll('[class$="panel-info-corner--error'),a=e.document.querySelectorAll('[class$="panel-in-fullscreen'),n=e.document.querySelectorAll('[class$="panel-container'),o=t.length>0||r.length>0,i=a.length>0||n.length>0,l=e.document.getElementsByTagName("pre"),s=l.length>0?l[0].innerText:"",c=s.includes('"status": "Failure"');if(o)throw new Error("An error was detected in the iframe");this["loading"]=!i,this["error"]=c}catch(e){this["error"]=!0,this["loading"]=!1,clearInterval(this.interval),this.interval=null}}),100)},computeFromTo(){return{from:`now-${this.range}`,to:"now"}},computeUrl(){const e=this.url,t=this.$store.getters["currentCluster"].id,r=this.computeParams();return(0,E.l9)(this.monitoringVersion,e,t,r,this.modifyPrefix)},computeParams(){const e={},t=this.computeFromTo();return t.from&&(e.from=t.from),t.to&&(e.to=t.to),this.refreshRate&&(e.refresh=this.refreshRate),Object.keys(this.vars).length>0&&Object.entries(this.vars).forEach((t=>{const r=`var-${t[0]}`;e[r]=t[1]})),e.theme=this.theme,e},reload(e){e&&e.preventDefault(),this.$refs.frame.contentWindow.location.reload(),this.poll()},injectCss(){const e=document.createElement("style");e.innerHTML=`\n body .grafana-app .dashboard-content {\n background: ${this.backgroundColor};\n padding: 0;\n }\n\n body .grafana-app .layout {\n background: ${this.backgroundColor};\n }\n\n\n body .grafana-app .dashboard-content .panel-container {\n background-color: initial;\n border: none;\n }\n\n body .grafana-app .dashboard-content .panel-wrapper {\n height: 100%;\n }\n\n body .grafana-app .panel-menu-container {\n display: none;\n }\n\n body .grafana-app .panel-title {\n cursor: default;\n }\n\n body .grafana-app .panel-title .panel-title-text div {\n display: none;\n }\n `;const t=this.$refs.frame?.contentWindow,r=t?.document;r.head&&r.head.appendChild(e)},inject(){this.injectCss()}}};r(2271);const _=(0,f.A)($,[["render",B],["__scopeId","data-v-2ba52de3"]]);var A=_,P=r(65359),O={components:{DashboardOptions:v,GrafanaDashboard:A},props:{detailUrl:{type:String,required:!0},summaryUrl:{type:String,default:""},vars:{type:Object,default:()=>({})},graphHeight:{type:String,required:!0},hasSummaryAndDetail:{type:Boolean,default:!0},modifyPrefix:{type:Boolean,default:!0}},data(){return{graphOptions:{range:"5m",refreshRate:"30s",type:"detail"}}},computed:{...(0,P.L8)(["prefs/theme"]),graphBackgroundColor(){return"dark"===this.theme?"#2e3035":"#f3f4f9"},theme(){return this["prefs/theme"]}}};r(35493);const M=(0,f.A)(O,[["render",i],["__scopeId","data-v-5cdbd67f"]]);var I=M},12243:function(e,t,r){"use strict";r.d(t,{A:function(){return g}});var a=r(9274);const n={class:"percentage-bar"},o={key:0,class:"ml-5 percentage-value"};function i(e,t,r,i,l,s){const c=(0,a.resolveComponent)("Bar");return(0,a.openBlock)(),(0,a.createElementBlock)("span",n,[(0,a.createVNode)(c,{percentage:r.modelValue,"primary-color":s.primaryColor,slices:r.slices},null,8,["percentage","primary-color","slices"]),r.showPercentage?((0,a.openBlock)(),(0,a.createElementBlock)("span",o,(0,a.toDisplayString)(s.formattedPercentage),1)):(0,a.createCommentVNode)("",!0)])}function l(e,t,r,n,o,i){return(0,a.openBlock)(),(0,a.createElementBlock)("div",{class:"bar",style:(0,a.normalizeStyle)(i.barStyle)},[(0,a.createElementVNode)("div",{class:"indicator",style:(0,a.normalizeStyle)(i.indicatorStyle)},null,4),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(i.sliceStyles,((e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:t,class:"slice",style:(0,a.normalizeStyle)(e)},null,4)))),128))],4)}var s={props:{percentage:{type:Number,required:!0},primaryColor:{type:String,default:"--primary"},secondaryColor:{type:String,default:"--border"},slices:{type:Array,default:()=>[]}},computed:{indicatorStyle(){return{width:`${this.percentage}%`,backgroundColor:`var(${this.primaryColor})`}},barStyle(){return{backgroundColor:`var(${this.secondaryColor})`}},sliceStyles(){return this.slices.map((e=>({left:`${e}%`,visibility:e<this.percentage?"visible":"hidden"})))}}},c=(r(54752),r(47433));const d=(0,c.A)(s,[["render",l],["__scopeId","data-v-b4f4e2ae"]]);var u=d,p=r(92043);const h={LESS:"LESS",MORE:"MORE"};var m={components:{Bar:u},props:{modelValue:{type:Number,required:!0,validator(e){return e>=0}},preferredDirection:{type:String,default:h.LESS},showPercentage:{type:Boolean,default:!1},colorStops:{type:Object,default:null},slices:{type:Array,default:()=>[]}},computed:{primaryColor(){const e=this.preferredDirection===h.LESS;if(this.colorStops){const t=Object.keys(this.colorStops).sort();if(e){let e=t.length-1;while(this.modelValue<t[e])e--;return this.colorStops[t[e]]}{let e=0;while(this.modelValue>t[e])e++;return this.colorStops[t[e]]}}const t=e?80:20,r=e?this.modelValue:t,a=e?t:this.modelValue;return r<=a?"--primary":"--error"},formattedPercentage(){return(0,p.l9)(this.modelValue)}}};r(70738);const f=(0,c.A)(m,[["render",i],["__scopeId","data-v-4ade54a6"]]);var g=f},33814:function(e,t,r){"use strict";r.r(t);var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o),l=i()(n());l.push([e.id,".consumption-gauge .numbers{display:flex;flex-direction:row;justify-content:space-between}.consumption-gauge .numbers-stats{display:flex;flex-direction:row;align-items:center;gap:10px;align-self:baseline}.consumption-gauge .numbers .percentage{font-weight:700}.consumption-gauge .numbers .percentage i{margin-right:10px}",""]),t["default"]=l},60037:function(e,t,r){"use strict";r.r(t);var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o),l=i()(n());l.push([e.id,".dashboard-metrics[data-v-5cdbd67f] .external-link{position:absolute;left:200px;top:-45px}.dashboard-metrics[data-v-5cdbd67f] .frame{top:0}.dashboard-metrics.external-link-pull-left[data-v-5cdbd67f] .external-link{position:absolute;left:10px;top:-47px}",""]),t["default"]=l},80097:function(e,t,r){"use strict";r.r(t);var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o),l=i()(n());l.push([e.id,".graph-options[data-v-f155ff46],.graph-options .range-refresh[data-v-f155ff46]{display:flex;flex-direction:row;justify-content:flex-end}.graph-options[data-v-f155ff46]{justify-content:space-between;align-items:center}.graph-options .labeled-select[data-v-f155ff46]{width:100px;margin-left:10px}",""]),t["default"]=l},29535:function(e,t,r){"use strict";r.r(t);var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o),l=i()(n());l.push([e.id,".grafana-graph[data-v-2ba52de3]{position:relative;min-height:100%;min-width:100%}.grafana-graph[data-v-2ba52de3] .content{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:0}.grafana-graph[data-v-2ba52de3] .overlay{position:static;background-color:initial}.grafana-graph iframe[data-v-2ba52de3]{position:absolute;left:0;right:0;top:20px;bottom:0;width:100%;height:100%;overflow:hidden}.grafana-graph iframe.loading[data-v-2ba52de3]{visibility:hidden}",""]),t["default"]=l},56530:function(e,t,r){"use strict";r.r(t);var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o),l=i()(n());l.push([e.id,".percentage-bar[data-v-4ade54a6]{display:flex;flex-direction:row}.percentage-bar .percentage-value[data-v-4ade54a6]{word-break:keep-all}",""]),t["default"]=l},22880:function(e,t,r){"use strict";r.r(t);var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o),l=i()(n());l.push([e.id,".bar[data-v-b4f4e2ae]{width:100%;height:15px;border-radius:7.5px;overflow:hidden;position:relative}.bar .indicator[data-v-b4f4e2ae]{height:100%}.bar .slice[data-v-b4f4e2ae]{position:absolute;top:0;bottom:0;width:1px;background-color:var(--body-bg)}",""]),t["default"]=l},52799:function(e,t,r){"use strict";r.d(t,{A:function(){return d}});var a=r(4364);function n(e,t,r){return(t=o(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e){var t=i(e,"string");return"symbol"==typeof t?t:t+""}function i(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}class l{constructor(e,t,r=Number.POSITIVE_INFINITY){n(this,"fn",void 0),n(this,"pollRateMs",void 0),n(this,"maxRetries",void 0),n(this,"intervalId",void 0),n(this,"tryCount",0),this.fn=e||(()=>{}),this.pollRateMs=t,this.maxRetries=r}start(){this.stop(),this._intervalMethod(),this.intervalId=setInterval((()=>this._intervalMethod()),this.pollRateMs)}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0)}async _intervalMethod(){try{await this.fn(),this.tryCount=0}catch(e){a.error("Error encountered while polling",e),++this.tryCount>=this.maxRetries&&this.stop()}}}const s=3e4,c=2;var d={data(){return{metricPoller:null}},mounted(){this.metricPoller=new l(this.loadMetrics,s,c),this.metricPoller.start()},beforeUnmount(){this.metricPoller.stop()}}},97348:function(e,t,r){"use strict";r.d(t,{Qr:function(){return d},l9:function(){return s}});var a=r(83416),n=r(50667),o=r(35664);const i=["100.2.0+up40.1.2","102.0.0+up40.1.2"];function l(e,t){return i.includes(e)?`/k8s/clusters/${t}`:"local"===t?"":`/k8s/clusters/${t}`}function s(e,t,r,a,o=!0){const i=(0,n.qg)(t);let s=o?`${l(e,r)}${i.path}`:i.path;return i.query.viewPanel&&(s=(0,n.R_)(s,"viewPanel",i.query.viewPanel)),s=(0,n.R_)(s,"orgId",i.query.orgId),s=(0,n.R_)(s,"kiosk",null),Object.entries(a).forEach((e=>{s=(0,n.R_)(s,e[0],e[1])})),s}async function c(e,t,r,o,i="cluster",s=null){if(!(0,a.de)(t.getters))return!1;const c=(0,n.qg)(o);let d=`${l(e,r)}/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/`,u="http:rancher-monitoring-grafana:80/proxy/";s&&(d=`${l(e,r)}/api/v1/namespaces/cattle-project-${s}-monitoring/services/http:cattle-project-${s}-monitoring-grafana:80/proxy/`,u=`http:cattle-project-${s}-monitoring-grafana:80/proxy/`);const p=c.path.split(u)[1],h=p.split("/")[1],m=`${d}api/dashboards/uid/${h}`;try{return await t.dispatch(`${i}/request`,{url:m,redirectUnauthorized:!1}),!0}catch(f){return!1}}async function d(e,t,r,a="cluster",n=null){let i,l="";if(!n&&e.getters[`${a}/canList`](o.W8.APP)){try{i=await e.dispatch(`${a}/find`,{type:o.W8.APP,id:"cattle-monitoring-system/rancher-monitoring"})}catch(d){}l=i?.currentVersion}const s=r.map((r=>c(l,e,t,r,a,n)));return(await Promise.all(s)).every((e=>e))}},95606:function(e,t,r){var a=r(33814);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var n=r(74825).A;n("0177b65e",a,!0,{sourceMap:!1,shadowMode:!1})},35493:function(e,t,r){var a=r(60037);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var n=r(74825).A;n("5bc3db34",a,!0,{sourceMap:!1,shadowMode:!1})},76142:function(e,t,r){var a=r(80097);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var n=r(74825).A;n("0fc0e1d4",a,!0,{sourceMap:!1,shadowMode:!1})},2271:function(e,t,r){var a=r(29535);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var n=r(74825).A;n("1235fbab",a,!0,{sourceMap:!1,shadowMode:!1})},70738:function(e,t,r){var a=r(56530);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var n=r(74825).A;n("b37b1fae",a,!0,{sourceMap:!1,shadowMode:!1})},54752:function(e,t,r){var a=r(22880);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var n=r(74825).A;n("bcd5ae90",a,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.207.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.207.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.207.js.map new file mode 100644 index 00000000..20ef24dd --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.207.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.207.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ConsumptionGauge.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ConsumptionGauge.vue?c2d3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DashboardMetrics.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DashboardOptions.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DashboardOptions.vue?a409","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/GrafanaDashboard.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/GrafanaDashboard.vue?69b3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DashboardMetrics.vue?a7a3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?3786","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?1d96","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ConsumptionGauge.vue?78c1","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DashboardMetrics.vue?db7b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DashboardOptions.vue?84f8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/GrafanaDashboard.vue?f587","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?a566","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?23d8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/poller.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/metric-poller.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/grafana.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ConsumptionGauge.vue?2b4e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DashboardMetrics.vue?137e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DashboardOptions.vue?e9fa","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/GrafanaDashboard.vue?7d97","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?53c9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?4823"],"sourcesContent":["<script>\nimport PercentageBar from '@shell/components/PercentageBar';\nimport { formatPercent } from '@shell/utils/string';\n\n/**\n * A detailed view of how much a resource is being consumed.\n */\nexport default {\n components: { PercentageBar },\n props: {\n /**\n * The name of the resource to be displayed.\n */\n resourceName: {\n type: String,\n default: ''\n },\n /**\n * The total amount of the resource (both used and unused amount).\n */\n capacity: {\n type: Number,\n required: true\n },\n /**\n * The amount of the resource that is currently in use.\n */\n used: {\n type: Number,\n required: true\n },\n /**\n * The units that should be displayed when referencing amounts of the resource.\n */\n units: {\n type: String,\n default: ''\n },\n /**\n * A method which can be used to format the *capacity* and *used* numbers for display.\n */\n numberFormatter: {\n type: Function,\n default: (value) => Number.isInteger(value) ? value : value.toFixed(2)\n },\n\n /**\n * Optional map of css color class: percentage stops to apply to bar\n */\n\n colorStops: {\n type: Object,\n default: null\n },\n\n /**\n * Reduce the vertial height by changed 'Used' for the resource name\n */\n usedAsResourceName: {\n type: Boolean,\n defaut: false\n }\n },\n computed: {\n displayUnits() {\n if ( this.units ) {\n return ` ${ this.units }`;\n }\n\n return '';\n },\n percentageBarValue() {\n if (!this.used || !this.capacity) {\n return 0;\n }\n\n return (this.used * 100) / this.capacity;\n },\n amountTemplateValues() {\n return {\n used: this.numberFormatter(this.used || 0),\n total: this.numberFormatter(this.capacity || 0),\n unit: this.displayUnits\n };\n },\n formattedPercentage() {\n return formatPercent(this.percentageBarValue);\n }\n }\n};\n</script>\n\n<template>\n <div class=\"consumption-gauge\">\n <h3 v-if=\"resourceName && !usedAsResourceName\">\n {{ resourceName }}\n </h3>\n <div class=\"numbers\">\n <!-- @slot Optional slot to use as the title rather than showing the resource name -->\n <slot\n name=\"title\"\n :amountTemplateValues=\"amountTemplateValues\"\n :formattedPercentage=\"formattedPercentage\"\n >\n <h4 v-if=\"usedAsResourceName\">\n {{ resourceName }}\n </h4>\n <span v-else>{{ t('node.detail.glance.consumptionGauge.used') }}</span>\n <span class=\"numbers-stats\">\n {{ t('node.detail.glance.consumptionGauge.amount', amountTemplateValues) }}\n <span class=\"percentage\"><i>/ </i>{{ formattedPercentage }}</span>\n </span>\n </slot>\n </div>\n <div class=\"mt-10\">\n <PercentageBar\n :modelValue=\"percentageBarValue\"\n :color-stops=\"colorStops\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.consumption-gauge {\n .numbers {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n &-stats {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 10px;\n align-self: baseline;\n\n }\n\n .percentage {\n font-weight: bold;\n i {\n margin-right: 10px;\n }\n }\n }\n}\n</style>\n","import { render } from \"./ConsumptionGauge.vue?vue&type=template&id=0160c554\"\nimport script from \"./ConsumptionGauge.vue?vue&type=script&lang=js\"\nexport * from \"./ConsumptionGauge.vue?vue&type=script&lang=js\"\n\nimport \"./ConsumptionGauge.vue?vue&type=style&index=0&id=0160c554&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport DashboardOptions from '@shell/components/DashboardOptions';\r\nimport GrafanaDashboard from '@shell/components/GrafanaDashboard';\r\nimport { mapGetters } from 'vuex';\r\n\r\nexport default {\r\n components: { DashboardOptions, GrafanaDashboard },\r\n props: {\r\n detailUrl: {\r\n type: String,\r\n required: true,\r\n },\r\n summaryUrl: {\r\n type: String,\r\n default: '',\r\n },\r\n vars: {\r\n type: Object,\r\n default: () => ({})\r\n },\r\n graphHeight: {\r\n type: String,\r\n required: true\r\n },\r\n hasSummaryAndDetail: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n // change the grafana url prefix for local clusters in certain monitoring versions\r\n // project monitoring (projectHelmCharts) supply a grafana url that never needs to be modified in this way\r\n modifyPrefix: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n data() {\r\n return {\r\n graphOptions: {\r\n range: '5m', refreshRate: '30s', type: 'detail'\r\n }\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['prefs/theme']),\r\n graphBackgroundColor() {\r\n return this.theme === 'dark' ? '#2e3035' : '#f3f4f9';\r\n },\r\n theme() {\r\n return this['prefs/theme'];\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<template>\r\n <div\r\n class=\"dashboard-metrics\"\r\n :class=\"!hasSummaryAndDetail && 'external-link-pull-left'\"\r\n >\r\n <div class=\"graph-options mb-10\">\r\n <DashboardOptions\r\n v-model:value=\"graphOptions\"\r\n :has-summary-and-detail=\"hasSummaryAndDetail\"\r\n />\r\n </div>\r\n <div class=\"info\">\r\n <slot />\r\n </div>\r\n <div\r\n class=\"graphs\"\r\n :style=\"{height: graphHeight}\"\r\n >\r\n <GrafanaDashboard\r\n v-if=\"graphOptions.type === 'detail'\"\r\n key=\"'detail'\"\r\n class=\"col span-12 detail\"\r\n :background-color=\"graphBackgroundColor\"\r\n :theme=\"theme\"\r\n :refresh-rate=\"graphOptions.refreshRate\"\r\n :range=\"graphOptions.range\"\r\n :url=\"detailUrl\"\r\n :vars=\"vars\"\r\n :modify-prefix=\"modifyPrefix\"\r\n />\r\n <GrafanaDashboard\r\n v-else\r\n key=\"'summary'\"\r\n class=\"col span-12 summary\"\r\n :background-color=\"graphBackgroundColor\"\r\n :theme=\"theme\"\r\n :refresh-rate=\"graphOptions.refreshRate\"\r\n :range=\"graphOptions.range\"\r\n :url=\"summaryUrl\"\r\n :vars=\"vars\"\r\n :modify-prefix=\"modifyPrefix\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.dashboard-metrics {\r\n & :deep() {\r\n .external-link {\r\n position: absolute;\r\n left: 200px;\r\n top: -45px;\r\n }\r\n\r\n .frame {\r\n top: 0;\r\n }\r\n }\r\n}\r\n\r\n.dashboard-metrics.external-link-pull-left {\r\n & :deep() {\r\n .external-link {\r\n position: absolute;\r\n left: 10px;\r\n top: -47px;\r\n }\r\n }\r\n}\r\n</style>\r\n","<script>\r\nimport ButtonGroup from '@shell/components/ButtonGroup';\r\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\r\n\r\nexport default {\r\n components: { ButtonGroup, LabeledSelect },\r\n props: {\r\n value: {\r\n type: Object,\r\n required: true,\r\n },\r\n hasSummaryAndDetail: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n range: null,\r\n rangeOptions: [\r\n {\r\n label: this.t('generic.units.time.5m'),\r\n value: '5m',\r\n },\r\n {\r\n label: this.t('generic.units.time.1h'),\r\n value: '1h',\r\n },\r\n {\r\n label: this.t('generic.units.time.6h'),\r\n value: '6h',\r\n },\r\n {\r\n label: this.t('generic.units.time.1d'),\r\n value: '1d',\r\n },\r\n {\r\n label: this.t('generic.units.time.7d'),\r\n value: '7d',\r\n },\r\n {\r\n label: this.t('generic.units.time.30d'),\r\n value: '30d',\r\n },\r\n ],\r\n refreshOptions: [\r\n {\r\n label: this.t('generic.units.time.5s'),\r\n value: '5s',\r\n },\r\n {\r\n label: this.t('generic.units.time.10s'),\r\n value: '10s',\r\n },\r\n {\r\n label: this.t('generic.units.time.30s'),\r\n value: '30s',\r\n },\r\n {\r\n label: this.t('generic.units.time.1m'),\r\n value: '1m',\r\n },\r\n {\r\n label: this.t('generic.units.time.5m'),\r\n value: '5m',\r\n },\r\n {\r\n label: this.t('generic.units.time.15m'),\r\n value: '15m',\r\n },\r\n {\r\n label: this.t('generic.units.time.30m'),\r\n value: '30m',\r\n },\r\n {\r\n label: this.t('generic.units.time.1h'),\r\n value: '1h',\r\n },\r\n {\r\n label: this.t('generic.units.time.2h'),\r\n value: '2h',\r\n },\r\n {\r\n label: this.t('generic.units.time.1d'),\r\n value: '1d',\r\n }\r\n ],\r\n detailSummaryOptions: [\r\n {\r\n label: this.t('graphOptions.detail'),\r\n value: 'detail'\r\n },\r\n {\r\n label: this.t('graphOptions.summary'),\r\n value: 'summary'\r\n }\r\n ]\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div class=\"graph-options\">\r\n <div v-if=\"hasSummaryAndDetail\">\r\n <ButtonGroup\n v-model:value=\"value.type\"\n :options=\"detailSummaryOptions\"\n />\r\n </div>\r\n <div v-else>\r\n <div />\r\n </div>\r\n <div class=\"range-refresh\">\r\n <LabeledSelect\n v-model:value=\"value.range\"\n :options=\"rangeOptions\"\n :label=\"t('graphOptions.range')\"\n />\r\n <LabeledSelect\n v-model:value=\"value.refreshRate\"\n :options=\"refreshOptions\"\n :label=\"t('graphOptions.refresh')\"\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang='scss' scoped>\r\n.graph-options {\r\n &, .range-refresh {\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n }\r\n\r\n & {\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n\r\n .labeled-select {\r\n width: 100px;\r\n margin-left: 10px;\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./DashboardOptions.vue?vue&type=template&id=f155ff46&scoped=true\"\nimport script from \"./DashboardOptions.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardOptions.vue?vue&type=script&lang=js\"\n\nimport \"./DashboardOptions.vue?vue&type=style&index=0&id=f155ff46&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f155ff46\"]])\n\nexport default __exports__","<script>\r\nimport Loading from '@shell/components/Loading';\r\nimport { Banner } from '@components/Banner';\r\nimport { computeDashboardUrl } from '@shell/utils/grafana';\r\nimport { CATALOG } from '@shell/config/types';\r\n\r\nexport default {\r\n components: { Banner, Loading },\r\n props: {\r\n url: {\r\n type: String,\r\n required: true,\r\n },\r\n vars: {\r\n type: Object,\r\n default: () => ({})\r\n },\r\n range: {\r\n type: String,\r\n default: null\r\n },\r\n refreshRate: {\r\n type: String,\r\n default: null\r\n },\r\n // change the grafana url prefix for local clusters in certain monitoring versions\r\n // project monitoring (projectHelmCharts) supply a grafana url that never needs to be modified in this way\r\n modifyPrefix: {\r\n type: Boolean,\r\n default: true\r\n },\r\n backgroundColor: {\r\n type: String,\r\n default: '#1b1c21'\r\n },\r\n theme: {\r\n type: String,\r\n default: 'dark'\r\n }\r\n },\r\n async fetch() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n\r\n if (this.$store.getters[`${ inStore }/canList`](CATALOG.APP)) {\r\n try {\r\n const res = await this.$store.dispatch(`${ inStore }/find`, { type: CATALOG.APP, id: 'cattle-monitoring-system/rancher-monitoring' });\r\n\r\n this.monitoringVersion = res?.currentVersion;\r\n } catch (err) {}\r\n }\r\n },\r\n data() {\r\n return {\r\n loading: false, error: false, interval: null, errorTimer: null, monitoringVersion: ''\r\n };\r\n },\r\n computed: {\r\n currentUrl() {\r\n return this.computeUrl();\r\n },\r\n grafanaUrl() {\r\n return this.currentUrl.replace('&kiosk', '');\r\n },\r\n graphWindow() {\r\n return this.$refs.frame?.contentWindow;\r\n },\r\n graphHistory() {\r\n return this.graphWindow?.history;\r\n },\r\n graphDocument() {\r\n return this.graphWindow?.document;\r\n }\r\n },\r\n watch: {\r\n currentUrl(neu) {\r\n // Should consider changing `this.graphWindow?.angular` to something like `!loaded && !error`\r\n // https://github.com/rancher/dashboard/pull/5802\r\n if (this.graphHistory && this.graphWindow?.angular) {\r\n this.graphWindow.location.replace(neu);\r\n }\r\n },\r\n\r\n error(neu) {\r\n if (neu) {\r\n this.errorTimer = setInterval(() => {\r\n this.reload();\r\n }, 45000);\r\n } else {\r\n clearInterval(this.errorTimer);\r\n this.errorTimer = null;\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.$refs.frame.onload = this.inject;\r\n this.poll();\r\n },\r\n beforeUnmount() {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n\r\n if (this.errorTimer) {\r\n clearInterval(this.errorTimer);\r\n }\r\n },\r\n methods: {\r\n poll() {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n this.interval = null;\r\n }\r\n\r\n this.interval = setInterval(() => {\r\n try {\r\n const graphWindow = this.$refs.frame?.contentWindow;\r\n\r\n // Note. getElementsByClassName won't work, following a grafana bump class names are now unique - for example css-2qng6u-panel-container\r\n const errorElements = graphWindow.document.querySelectorAll('[class$=\"alert-error');\r\n const errorCornerElements = graphWindow.document.querySelectorAll('[class$=\"panel-info-corner--error');\r\n const panelInFullScreenElements = graphWindow.document.querySelectorAll('[class$=\"panel-in-fullscreen');\r\n const panelContainerElements = graphWindow.document.querySelectorAll('[class$=\"panel-container');\r\n const error = errorElements.length > 0 || errorCornerElements.length > 0;\r\n const loaded = panelInFullScreenElements.length > 0 || panelContainerElements.length > 0;\r\n const errorMessageElms = graphWindow.document.getElementsByTagName('pre');\r\n const errorMessage = errorMessageElms.length > 0 ? errorMessageElms[0].innerText : '';\r\n const isFailure = errorMessage.includes('\"status\": \"Failure\"');\r\n\r\n if (error) {\r\n throw new Error('An error was detected in the iframe');\r\n }\r\n\r\n this['loading'] = !loaded;\r\n this['error'] = isFailure;\r\n } catch (ex) {\r\n this['error'] = true;\r\n this['loading'] = false;\r\n clearInterval(this.interval);\r\n this.interval = null;\r\n }\r\n }, 100);\r\n },\r\n computeFromTo() {\r\n return {\r\n from: `now-${ this.range }`,\r\n to: `now`\r\n };\r\n },\r\n computeUrl() {\r\n const embedUrl = this.url;\r\n const clusterId = this.$store.getters['currentCluster'].id;\r\n const params = this.computeParams();\r\n\r\n return computeDashboardUrl(this.monitoringVersion, embedUrl, clusterId, params, this.modifyPrefix);\r\n },\r\n computeParams() {\r\n const params = {};\r\n const fromTo = this.computeFromTo();\r\n\r\n if (fromTo.from) {\r\n params.from = fromTo.from;\r\n }\r\n\r\n if (fromTo.to) {\r\n params.to = fromTo.to;\r\n }\r\n\r\n if (this.refreshRate) {\r\n params.refresh = this.refreshRate;\r\n }\r\n\r\n if (Object.keys(this.vars).length > 0) {\r\n Object.entries(this.vars).forEach((entry) => {\r\n const paramName = `var-${ entry[0] }`;\r\n\r\n params[paramName] = entry[1];\r\n });\r\n }\r\n\r\n params.theme = this.theme;\r\n\r\n return params;\r\n },\r\n reload(ev) {\r\n ev && ev.preventDefault();\r\n this.$refs.frame.contentWindow.location.reload();\r\n this.poll();\r\n },\r\n injectCss() {\r\n const style = document.createElement('style');\r\n\r\n style.innerHTML = `\r\n body .grafana-app .dashboard-content {\r\n background: ${ this.backgroundColor };\r\n padding: 0;\r\n }\r\n\r\n body .grafana-app .layout {\r\n background: ${ this.backgroundColor };\r\n }\r\n\r\n\r\n body .grafana-app .dashboard-content .panel-container {\r\n background-color: initial;\r\n border: none;\r\n }\r\n\r\n body .grafana-app .dashboard-content .panel-wrapper {\r\n height: 100%;\r\n }\r\n\r\n body .grafana-app .panel-menu-container {\r\n display: none;\r\n }\r\n\r\n body .grafana-app .panel-title {\r\n cursor: default;\r\n }\r\n\r\n body .grafana-app .panel-title .panel-title-text div {\r\n display: none;\r\n }\r\n `;\r\n\r\n const graphWindow = this.$refs.frame?.contentWindow;\r\n const graphDocument = graphWindow?.document;\r\n\r\n if (graphDocument.head) {\r\n graphDocument.head.appendChild(style);\r\n }\r\n },\r\n\r\n inject() {\r\n this.injectCss();\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div class=\"grafana-graph\">\r\n <Banner\r\n v-if=\"error\"\r\n color=\"error\"\r\n style=\"z-index: 1000\"\r\n >\r\n <div class=\"text-center\">\r\n {{ t('grafanaDashboard.failedToLoad') }} <a\r\n href=\"#\"\r\n @click=\"reload\"\r\n >{{ t('grafanaDashboard.reload') }}</a>\r\n </div>\r\n </Banner>\r\n <iframe\r\n v-show=\"!error\"\r\n ref=\"frame\"\r\n :class=\"{loading, frame: true}\"\r\n :src=\"currentUrl\"\r\n frameborder=\"0\"\r\n scrolling=\"no\"\r\n />\r\n <div v-if=\"loading\">\r\n <Loading />\r\n </div>\r\n <div\r\n v-if=\"!loading && !error\"\r\n class=\"external-link\"\r\n >\r\n <!-- https://github.com/harvester/harvester-installer/pull/512/files -->\r\n <!-- It is necessary to include the parameter referer when accessing the Grafana page. -->\r\n <!-- This parameter is required by the backend to identify the origin of the request from which cluster -->\r\n <!-- The matching mechanism as follows: -->\r\n <!-- ~.*/k8s/clusters/(c-m-.+)/.* -->\r\n <!-- ~.*/dashboard/harvester/c/(c-m-.+)/.* -->\r\n <a\r\n :href=\"grafanaUrl\"\r\n target=\"_blank\"\r\n rel=\"noopener nofollow\"\r\n >{{ t('grafanaDashboard.grafana') }} <i class=\"icon icon-external-link\" /></a>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang='scss' scoped>\r\n.grafana-graph {\r\n position: relative;\r\n min-height: 100%;\r\n min-width: 100%;\r\n\r\n & :deep() .content {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n padding: 0;\r\n }\r\n\r\n & :deep() .overlay {\r\n position: static;\r\n background-color: initial;\r\n }\r\n\r\n iframe {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 20px;\r\n bottom: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n\r\n &.loading {\r\n visibility: hidden;\r\n }\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./GrafanaDashboard.vue?vue&type=template&id=2ba52de3&scoped=true\"\nimport script from \"./GrafanaDashboard.vue?vue&type=script&lang=js\"\nexport * from \"./GrafanaDashboard.vue?vue&type=script&lang=js\"\n\nimport \"./GrafanaDashboard.vue?vue&type=style&index=0&id=2ba52de3&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2ba52de3\"]])\n\nexport default __exports__","import { render } from \"./DashboardMetrics.vue?vue&type=template&id=5cdbd67f&scoped=true\"\nimport script from \"./DashboardMetrics.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardMetrics.vue?vue&type=script&lang=js\"\n\nimport \"./DashboardMetrics.vue?vue&type=style&index=0&id=5cdbd67f&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5cdbd67f\"]])\n\nexport default __exports__","<script>\nimport Bar from '@shell/components/graph/Bar';\nimport { formatPercent } from '@shell/utils/string';\n\nexport const PreferredDirection = {\n LESS: 'LESS',\n MORE: 'MORE'\n};\n\n/**\n * A percentage bar which can be used to display how much a resource is being consumed.\n */\nexport default {\n components: { Bar },\n props: {\n /**\n * A value representing the percentage to be displayed. *Must be a value between 0 and 100*.\n */\n modelValue: {\n type: Number,\n required: true,\n validator(value) {\n return value >= 0;\n }\n },\n\n /**\n * A value which indicates which direction is better so we can change the color appropriately (Valid values: 'LESS' or 'MORE')\n */\n preferredDirection: {\n type: String,\n default: PreferredDirection.LESS\n },\n\n /**\n * Determines whether we display the numerical percentage value to the right of the bar.\n */\n showPercentage: {\n type: Boolean,\n default: false\n },\n\n /**\n * Optional map of percentage:color class stops to apply to bar\n */\n\n colorStops: {\n type: Object,\n default: null\n },\n\n /**\n * Show vertical lines to denote where multiple sources that are contributing to this percentage end\n */\n slices: {\n type: Array,\n default: () => []\n }\n },\n\n computed: {\n primaryColor() {\n const isLess = this.preferredDirection === PreferredDirection.LESS;\n\n if (this.colorStops) {\n const thresholds = Object.keys(this.colorStops).sort();\n\n if (isLess) {\n let i = thresholds.length - 1;\n\n while (this.modelValue < thresholds[i]) {\n i--;\n }\n\n return this.colorStops[thresholds[i]];\n } else {\n let i = 0;\n\n while (this.modelValue > thresholds[i]) {\n i++;\n }\n\n return this.colorStops[thresholds[i]];\n }\n }\n const threshold = isLess ? 80 : 20;\n\n const left = isLess ? this.modelValue : threshold;\n const right = isLess ? threshold : this.modelValue;\n\n if (left <= right) {\n return '--primary';\n }\n\n return '--error';\n },\n formattedPercentage() {\n return formatPercent(this.modelValue);\n }\n },\n};\n</script>\n\n<template>\n <span class=\"percentage-bar\">\n <Bar\n :percentage=\"modelValue\"\n :primary-color=\"primaryColor\"\n :slices=\"slices\"\n />\n <span\n v-if=\"showPercentage\"\n class=\"ml-5 percentage-value\"\n >{{ formattedPercentage }}</span>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n.percentage-bar {\n display: flex;\n flex-direction: row;\n\n .percentage-value {\n word-break: keep-all;\n }\n}\n</style>\n","<script>\r\nexport default {\r\n props: {\r\n percentage: {\r\n type: Number,\r\n required: true\r\n },\r\n primaryColor: {\r\n type: String,\r\n default: '--primary'\r\n },\r\n secondaryColor: {\r\n type: String,\r\n default: '--border'\r\n },\r\n slices: {\r\n type: Array,\r\n default: () => []\r\n }\r\n },\r\n computed: {\r\n indicatorStyle() {\r\n return {\r\n width: `${ this.percentage }%`,\r\n backgroundColor: `var(${ this.primaryColor })`\r\n };\r\n },\r\n barStyle() {\r\n return { backgroundColor: `var(${ this.secondaryColor })` };\r\n },\r\n sliceStyles() {\r\n return this.slices.map((slice) => ({\r\n left: `${ slice }%`,\r\n visibility: slice < this.percentage ? 'visible' : 'hidden'\r\n }));\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div\n class=\"bar\"\n :style=\"barStyle\"\n >\r\n <div\n class=\"indicator\"\n :style=\"indicatorStyle\"\n />\r\n <div\n v-for=\"(sliceStyle, i) in sliceStyles\"\n :key=\"i\"\n class=\"slice\"\n :style=\"sliceStyle\"\n />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.bar {\r\n $height: 15px;\r\n\r\n width: 100%;\r\n height: $height;\r\n border-radius: math.div($height, 2);\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .indicator {\r\n height: 100%;\r\n }\r\n\r\n .slice {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n width: 1px;\r\n background-color: var(--body-bg);\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./Bar.vue?vue&type=template&id=b4f4e2ae&scoped=true\"\nimport script from \"./Bar.vue?vue&type=script&lang=js\"\nexport * from \"./Bar.vue?vue&type=script&lang=js\"\n\nimport \"./Bar.vue?vue&type=style&index=0&id=b4f4e2ae&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b4f4e2ae\"]])\n\nexport default __exports__","import { render } from \"./PercentageBar.vue?vue&type=template&id=4ade54a6&scoped=true\"\nimport script from \"./PercentageBar.vue?vue&type=script&lang=js\"\nexport * from \"./PercentageBar.vue?vue&type=script&lang=js\"\n\nimport \"./PercentageBar.vue?vue&type=style&index=0&id=4ade54a6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4ade54a6\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".consumption-gauge .numbers{display:flex;flex-direction:row;justify-content:space-between}.consumption-gauge .numbers-stats{display:flex;flex-direction:row;align-items:center;gap:10px;align-self:baseline}.consumption-gauge .numbers .percentage{font-weight:700}.consumption-gauge .numbers .percentage i{margin-right:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".dashboard-metrics[data-v-5cdbd67f] .external-link{position:absolute;left:200px;top:-45px}.dashboard-metrics[data-v-5cdbd67f] .frame{top:0}.dashboard-metrics.external-link-pull-left[data-v-5cdbd67f] .external-link{position:absolute;left:10px;top:-47px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".graph-options[data-v-f155ff46],.graph-options .range-refresh[data-v-f155ff46]{display:flex;flex-direction:row;justify-content:flex-end}.graph-options[data-v-f155ff46]{justify-content:space-between;align-items:center}.graph-options .labeled-select[data-v-f155ff46]{width:100px;margin-left:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".grafana-graph[data-v-2ba52de3]{position:relative;min-height:100%;min-width:100%}.grafana-graph[data-v-2ba52de3] .content{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:0}.grafana-graph[data-v-2ba52de3] .overlay{position:static;background-color:initial}.grafana-graph iframe[data-v-2ba52de3]{position:absolute;left:0;right:0;top:20px;bottom:0;width:100%;height:100%;overflow:hidden}.grafana-graph iframe.loading[data-v-2ba52de3]{visibility:hidden}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".percentage-bar[data-v-4ade54a6]{display:flex;flex-direction:row}.percentage-bar .percentage-value[data-v-4ade54a6]{word-break:keep-all}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".bar[data-v-b4f4e2ae]{width:100%;height:15px;border-radius:7.5px;overflow:hidden;position:relative}.bar .indicator[data-v-b4f4e2ae]{height:100%}.bar .slice[data-v-b4f4e2ae]{position:absolute;top:0;bottom:0;width:1px;background-color:var(--body-bg)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default class Poller {\n fn;\n pollRateMs;\n maxRetries;\n intervalId;\n tryCount = 0;\n\n constructor(fn, pollRateMs, maxRetries = Number.POSITIVE_INFINITY) {\n this.fn = fn || (() => {});\n this.pollRateMs = pollRateMs;\n this.maxRetries = maxRetries;\n }\n\n start() {\n // Ensure only one is running\n this.stop();\n this._intervalMethod();\n this.intervalId = setInterval(() => this._intervalMethod(), this.pollRateMs);\n }\n\n stop() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = undefined;\n }\n }\n\n async _intervalMethod() {\n try {\n await this.fn();\n this.tryCount = 0;\n } catch (ex) {\n console.error('Error encountered while polling', ex); // eslint-disable-line no-console\n if (++this.tryCount >= this.maxRetries) {\n this.stop();\n }\n }\n }\n}\n","import Poller from '@shell/utils/poller';\n\nconst METRICS_POLL_RATE_MS = 30000;\nconst MAX_FAILURES = 2;\n\nexport default {\n data() {\n return { metricPoller: null };\n },\n\n mounted() {\n this.metricPoller = new Poller(this.loadMetrics, METRICS_POLL_RATE_MS, MAX_FAILURES);\n this.metricPoller.start();\n },\n\n beforeUnmount() {\n this.metricPoller.stop();\n },\n};\n","import { haveV2Monitoring } from '@shell/utils/monitoring';\r\nimport { parse as parseUrl, addParam } from '@shell/utils/url';\r\nimport { CATALOG } from '@shell/config/types';\r\n\r\n// these two versions of monitoring included a bug fix attempt that required the local cluster to use a different url\r\n// the solution going forward doesn't require this, see https://github.com/rancher/dashboard/issues/8885\r\nconst MONITORING_VERSION_ALT_URL = ['100.2.0+up40.1.2', '102.0.0+up40.1.2'];\r\n\r\nexport function getClusterPrefix(monitoringVersion, clusterId) {\r\n if (MONITORING_VERSION_ALT_URL.includes(monitoringVersion)) {\r\n return `/k8s/clusters/${ clusterId }`;\r\n }\r\n\r\n return clusterId === 'local' ? '' : `/k8s/clusters/${ clusterId }`;\r\n}\r\n\r\nexport function computeDashboardUrl(monitoringVersion, embedUrl, clusterId, params, modifyPrefix = true) {\r\n const url = parseUrl(embedUrl);\r\n\r\n let newUrl = modifyPrefix ? `${ getClusterPrefix(monitoringVersion, clusterId) }${ url.path }` : url.path;\r\n\r\n if (url.query.viewPanel) {\r\n newUrl = addParam(newUrl, 'viewPanel', url.query.viewPanel);\r\n }\r\n newUrl = addParam(newUrl, 'orgId', url.query.orgId);\r\n newUrl = addParam(newUrl, 'kiosk', null);\r\n\r\n Object.entries(params).forEach((entry) => {\r\n newUrl = addParam(newUrl, entry[0], entry[1]);\r\n });\r\n\r\n return newUrl;\r\n}\r\n\r\nexport async function dashboardExists(monitoringVersion, store, clusterId, embedUrl, storeName = 'cluster', projectId = null) {\r\n if ( !haveV2Monitoring(store.getters) ) {\r\n return false;\r\n }\r\n\r\n const url = parseUrl(embedUrl);\r\n let prefix = `${ getClusterPrefix(monitoringVersion, clusterId) }/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/`;\r\n let delimiter = 'http:rancher-monitoring-grafana:80/proxy/';\r\n\r\n if (projectId) {\r\n prefix = `${ getClusterPrefix(monitoringVersion, clusterId) }/api/v1/namespaces/cattle-project-${ projectId }-monitoring/services/http:cattle-project-${ projectId }-monitoring-grafana:80/proxy/`;\r\n delimiter = `http:cattle-project-${ projectId }-monitoring-grafana:80/proxy/`;\r\n }\r\n const path = url.path.split(delimiter)[1];\r\n const uid = path.split('/')[1];\r\n const newUrl = `${ prefix }api/dashboards/uid/${ uid }`;\r\n\r\n try {\r\n await store.dispatch(`${ storeName }/request`, { url: newUrl, redirectUnauthorized: false });\r\n\r\n return true;\r\n } catch (ex) {\r\n return false;\r\n }\r\n}\r\n\r\nexport async function allDashboardsExist(store, clusterId, embeddedUrls, storeName = 'cluster', projectId = null) {\r\n let res;\r\n\r\n let monitoringVersion = '';\r\n\r\n if (!projectId && store.getters[`${ storeName }/canList`](CATALOG.APP)) {\r\n try {\r\n res = await store.dispatch(`${ storeName }/find`, {\r\n type: CATALOG.APP,\r\n id: 'cattle-monitoring-system/rancher-monitoring'\r\n });\r\n } catch (err) {\r\n }\r\n\r\n monitoringVersion = res?.currentVersion;\r\n }\r\n\r\n const existPromises = embeddedUrls.map((url) => dashboardExists(monitoringVersion, store, clusterId, url, storeName, projectId));\r\n\r\n return (await Promise.all(existPromises)).every((exists) => exists);\r\n}\r\n\r\nexport function queryGrafana(monitoringVersion, dispatch, clusterId, query, range, step) {\r\n const url = `${ getClusterPrefix(monitoringVersion, clusterId) }/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/api/datasources/proxy/1/api/v1/query_range?query=${ query }&start=${ range.start }&end=${ range.end }&step=${ step }`;\r\n\r\n return dispatch('cluster/request', { url, redirectUnauthorized: false });\r\n}\r\n\r\nexport async function hasLeader(monitoringVersion, dispatch, clusterId) {\r\n const end = Date.now() / 1000;\r\n const start = end - (5 * 60);\r\n\r\n const response = await queryGrafana(monitoringVersion, dispatch, clusterId, 'max(etcd_server_has_leader)', { start, end }, 30);\r\n\r\n return response.data.result[0]?.values?.[0]?.[1] === '1';\r\n}\r\n\r\nexport async function leaderChanges(monitoringVersion, dispatch, clusterId) {\r\n const end = Date.now() / 1000;\r\n const start = end - (60 * 60);\r\n\r\n const response = await queryGrafana(monitoringVersion, dispatch, clusterId, 'max(etcd_server_leader_changes_seen_total)', { start, end }, 30);\r\n\r\n return response.data.result[0]?.values?.[0]?.[1] || 0;\r\n}\r\n\r\nexport async function failedProposals(monitoringVersion, dispatch, clusterId) {\r\n const end = Date.now() / 1000;\r\n const start = end - (60 * 60);\r\n\r\n const response = await queryGrafana(monitoringVersion, dispatch, clusterId, 'sum(etcd_server_proposals_failed_total)', { start, end }, 30);\r\n\r\n return response.data.result[0]?.values?.[0]?.[1] || 0;\r\n}\r\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ConsumptionGauge.vue?vue&type=style&index=0&id=0160c554&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0177b65e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./DashboardMetrics.vue?vue&type=style&index=0&id=5cdbd67f&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5bc3db34\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./DashboardOptions.vue?vue&type=style&index=0&id=f155ff46&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0fc0e1d4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./GrafanaDashboard.vue?vue&type=style&index=0&id=2ba52de3&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1235fbab\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./PercentageBar.vue?vue&type=style&index=0&id=4ade54a6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b37b1fae\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Bar.vue?vue&type=style&index=0&id=b4f4e2ae&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"bcd5ae90\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","key","_createElementBlock","_hoisted_1","$props","resourceName","usedAsResourceName","_hoisted_2","_toDisplayString","_createCommentVNode","_createElementVNode","_hoisted_3","_renderSlot","_ctx","$slots","amountTemplateValues","$options","formattedPercentage","_hoisted_4","_hoisted_5","t","_hoisted_6","_createTextVNode","_hoisted_7","_hoisted_8","_createVNode","_component_PercentageBar","modelValue","percentageBarValue","colorStops","components","PercentageBar","props","type","String","default","capacity","Number","required","used","units","numberFormatter","Function","value","isInteger","toFixed","Object","Boolean","defaut","computed","displayUnits","this","total","unit","formatPercent","__exports__","render","_normalizeClass","hasSummaryAndDetail","_component_DashboardOptions","$data","graphOptions","_cache","$event","undefined","style","_normalizeStyle","height","graphHeight","_createBlock","_component_GrafanaDashboard","graphBackgroundColor","theme","refreshRate","range","url","detailUrl","vars","modifyPrefix","summaryUrl","_component_ButtonGroup","options","detailSummaryOptions","_component_LabeledSelect","rangeOptions","label","refreshOptions","ButtonGroup","LabeledSelect","data","error","_component_Banner","color","_withCtx","href","onClick","args","reload","_","ref","loading","frame","src","currentUrl","frameborder","scrolling","_component_Loading","grafanaUrl","target","rel","Banner","Loading","backgroundColor","fetch","inStore","$store","getters","CATALOG","APP","res","dispatch","id","monitoringVersion","currentVersion","err","interval","errorTimer","computeUrl","replace","graphWindow","$refs","contentWindow","graphHistory","history","graphDocument","document","watch","neu","angular","location","setInterval","clearInterval","mounted","onload","inject","poll","beforeUnmount","methods","errorElements","querySelectorAll","errorCornerElements","panelInFullScreenElements","panelContainerElements","length","loaded","errorMessageElms","getElementsByTagName","errorMessage","innerText","isFailure","includes","Error","ex","computeFromTo","from","to","embedUrl","clusterId","params","computeParams","computeDashboardUrl","fromTo","refresh","keys","entries","forEach","entry","paramName","ev","preventDefault","injectCss","createElement","innerHTML","head","appendChild","DashboardOptions","GrafanaDashboard","mapGetters","_component_Bar","percentage","primaryColor","slices","showPercentage","barStyle","indicatorStyle","_Fragment","_renderList","sliceStyles","sliceStyle","i","secondaryColor","Array","width","map","slice","left","visibility","PreferredDirection","LESS","MORE","Bar","validator","preferredDirection","isLess","thresholds","sort","threshold","right","___CSS_LOADER_EXPORT___","push","module","Poller","constructor","fn","pollRateMs","maxRetries","POSITIVE_INFINITY","_defineProperty","start","stop","_intervalMethod","intervalId","tryCount","console","METRICS_POLL_RATE_MS","MAX_FAILURES","metricPoller","loadMetrics","MONITORING_VERSION_ALT_URL","getClusterPrefix","parseUrl","newUrl","path","query","viewPanel","addParam","orgId","async","dashboardExists","store","storeName","projectId","haveV2Monitoring","prefix","delimiter","split","uid","redirectUnauthorized","allDashboardsExist","embeddedUrls","existPromises","Promise","all","every","exists","content","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.37.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.37.js new file mode 100644 index 00000000..91d0c625 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.37.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[37],{49037:function(e){const t=[{generic:{tip:"Tip",resourceExternalLinkTips:"External Link",namespace:"Namespace",notReady:"Not Ready",labels:"Labels",inProgress:"In Progress",basic:"Basic",loading:"Loading..."},unsupported:{serverVersion:"Current version: <code>{serverVersion}</code>",description:"Harvester ui only supports Harvester cluster version greater or equal to 1.3.0.",learnMore:'Learn more about Harvester from the <a target="_blank" href="https://harvesterhci.io/" rel="noopener noreferrer nofollow">Harvester Web Site</a> or read the <a target="_blank" href="https://docs.harvesterhci.io/" rel="noopener noreferrer nofollow">Harvester Docs</a>'},nav:{group:{networks:"Networks",backupAndSnapshot:"Backup and Snapshots",Monitoring:"Monitoring",Logging:"Logging","Monitoring and Logging":"Monitoring and Logging"}},resourceTable:{groupBy:{device:"Group by Device"}},validation:{arrayCountRequired:"At least {count} {key} {count, plural, =1 {is} other {are}} required, and {key} can not be empty."},members:{clusterMemebership:"Cluster Membership",projectMembership:"Project Membership"},asyncButton:{restart:{action:"Save and Restart",success:"Restarted",waiting:"Restarting…"}},dialog:{confirmExecution:{title:"Are you sure?",andOthers:"{count, plural,\n=0 {}\n=1 { and <b>one other </b>}\nother { and <b>{count} other </b>}\n}",protip:"Tip: Hold the {alternateLabel} key while clicking action to bypass this confirmation",stop:{message:"Are you sure you want to continue stop the {type} {names}?"},pause:{message:"Are you sure you want to continue pause the {type} {names}?"}}},harvester:{branding:{logos:{tip:"Upload a logo to replace the Harvester logo in the top-level navigation header. Image height should be 21 pixels with a max width of 200 pixels. Max file size is 20KB. Accepted formats: JPEG, PNG, SVG."},favicon:{tip:"Upload an icon to replace the Harvester favicon in the browser tab. Max file size is 20KB"}},productLabel:"Harvester",modal:{backup:{success:"Backup { backUpName } has been initiated.",addBackup:"Add Backup"},quota:{editVMQuota:"Edit VM Quota",editQuota:"Edit Quota",bannerMessage:"Set to empty string or 0 to remove total snapshot size quota."},restore:{success:"Restore { name } created successfully.",title:"Backup and Restore",selectBackup:"Select Backup",message:{backup:"Please select the backup that needs to be restored."}},createTemplate:{title:"Generate Template",name:"Name",description:"Description",message:{tip:"Please enter a template name!",success:"Template { templateName } created successfully.",failed:"Failed generated template!"}},schedule:{title:"Create Schedule",message:{tip:"Please enter a schedule name!",success:"Schedule { name } created successfully.",failed:"Failed create schedule!"}},cloneVM:{title:"Clone Virtual Machine",name:"New Virtual Machine Name",type:"Clone volume data",action:{create:"Create",clone:"Clone"},message:{tip:"Please enter a virtual machine name!",success:"Virtual machine { name } cloned successfully.",failed:"Failed clone virtual machine!"}},exportImage:{title:"Export to Image",name:"Name",namespace:"Namespace",message:{success:"Image { name } created successfully."}},migration:{failedMessage:"Latest migration failed!",title:"Migration",fields:{nodeName:{label:"Target Node",placeholder:"Choose Target Node"}}},ejectCDROM:{title:"Eject CD-ROM",warnTip:"Eject volume will restart the virtual machine.",operationTip:"Select the volume you want to delete:",delete:"Delete"},bundle:{title:"Generate a Support Bundle",url:"Issue URL",description:"Description",requiredDesc:"Description is required!",titleDescription:"Collect system-related logs in Harvester to help with troubleshooting and support."},hotplug:{success:"Volume { diskName } is mounted to the virtual machine { vm }.",title:"Add Volume"},hotunplug:{success:"Volume { name } is detached successfully."},snapshot:{title:"Take Snapshot",name:"Name",message:{success:"Take Snapshot { name } successfully."}},volumeClone:{title:"Clone Volume",name:"Name",message:{success:"New Volume { name } cloned successfully."}},restoreSnapshot:{title:"Restore Snapshot",name:"New Volume Name",success:"New Volume { name } restored successfully."},vmSnapshot:{title:"Take Virtual Machine Snapshot",name:"Name",success:"Take virtual machine Snapshot { name } successfully."},restart:{title:"Restart Virtual Machine",tip:"Restart the virtual machine for configuration changes to take effect.",cancel:"Save"}},notification:{title:{succeed:"Succeed",info:"Info",warning:"Warning",error:"Error"}},action:{createVM:"Create Virtual Machine",start:"Start",restart:"Restart",softreboot:"Soft Reboot",stop:"Stop",pause:"Pause",deepClone:"Clone",shallowClone:"Clone Template",unpause:"Unpause",encryptImage:"Encrypt Image",decryptImage:"Decrypt Image",ejectCDROM:"Eject CD-ROM",editVMQuota:"Edit Virtual Machine Quota",launchFormTemplate:"Launch instance from template",modifyTemplate:"Modify template (Create new version)",setDefaultVersion:"Set default version",addTemplateVersion:"Add template version",backup:"Take Backup",createSchedule:"Create Schedule",restore:"Restore",restoreNewVM:"Restore New",resumeSchedule:"Resume",suspendSchedule:"Suspend",restoreExistingVM:"Replace Existing",migrate:"Migrate",abortMigration:"Abort Migration",createTemplate:"Generate Template",enableMaintenance:"Enable Maintenance Mode",disableMaintenance:"Disable Maintenance Mode",enableCPUManager:"Enable CPU Manager",disableCPUManager:"Disable CPU Manager",cordon:"Cordon",uncordon:"Uncordon",addHotplug:"Add Volume",exportImage:"Export Image",viewlogs:"View Logs",cancelExpand:"Cancel Expand",snapshot:"Take Snapshot",pvcClone:"Clone Volume",vmSnapshot:"Take Virtual Machine Snapshot",shutdown:"Shut Down",powerOn:"Power On",reboot:"Reboot",forceStop:"Force Stop"},formatters:{hardwareResourceGauge:{allocated:"Allocated",consumption:"{useful} of {total} {units} {suffix}",cores:"CPU",pods:"Pods",ram:"Memory",used:"Used",reserved:"Reserved",units:{cores:"{count, plural,\n=1 {core}\nother {cores}}"}}},tableHeaders:{imageEncryption:"Encryption",size:"Size",virtualSize:"Virtual Size",progress:"Progress",message:"Message",phase:"Phase",attachedVM:"Attached Virtual Machine",cpuManager:"CPU Manager",fingerprint:"Fingerprint",value:"Value",actions:"Actions",readyToUse:"Ready To Use",backupTarget:"Backup Target",targetVm:"Target Virtual Machine",cronExpression:"Cron Expression",retain:"Retain",scheduleType:"Type",maxFailure:"Max Failure",sourceVm:"Source Virtual Machine",vmSchedule:"Virtual Machine Schedule",hostIp:"Host IP",vm:{ipAddress:"IP Address",node:"Node",defaultVersion:"Default Version"},network:{type:"Type",vlan:"VLAN ID"},snapshotTargetVolume:"Original Volume",volumeSnapshotCounts:"Snapshot Counts",networkState:"Network State",totalSnapshotQuota:"Total Snapshot Quota",storageClass:"Storage Class",restore:"Restore"},tab:{volume:"Volumes",network:"Networks",advanced:"Advanced Options",accessCredentials:"Access Credentials",pciDevices:"PCI Devices",vGpuDevices:"vGPU Devices",usbDevices:"USB Devices",vmScheduling:"Virtual Machine Scheduling",quotas:"Quotas",snapshots:"Snapshots",instanceLabel:"Instance Labels"},fields:{version:"Version",name:"Name",type:"Type",image:"Image",size:"Size",volume:"Volume",network:"Network",model:"Model",macAddress:"MAC address",port:"Port",protocol:"Protocol",remove:"Remove",PhysicalNic:"Physical NIC",cpu:"CPU",memory:"Memory",virtualName:"Virtual machine name",promiscuous:"Promiscuous",ipv4Address:"IPv4 address",filterLabels:"Filter labels",filterSchedule:"Filter schedule",storageClass:"Storage class",dockerImage:"Docker image"},pci:{available:"Available Devices",compatibleNodes:"Compatible Nodes",impossibleSelection:"There are no hosts with all of the selected devices.",howToUseDevice:"Use the table below to enable PCI passthrough on each device you want to use in this virtual machine.",deviceInTheSameHost:"You can only select devices on the same host.",oldFormatDevices:{help:"<p>\n The following PCI devices are using the old naming convention and need to be updated in the YAML file:\n</p>\n<ul>\n {oldFormatDevicesHTML}\n</ul>\n<p>\n Please use the following instructions to update the virtual machine:\n</p>\n<ol>\n <li>Stop the virtual machine, edit the virtual machine YAML, and remove the <Code>hostDevices</Code> section, and save virtual machine the changes to the YAML file.</li>\n <li>Edit the virtual machine, and add the already enabled PCI Device from the list of available PCIDevices, and save and start VM.</li>\n</ol>"},showCompatibility:"Show device compatibility matrix",hideCompatibility:"Hide device compatibility matrix",claimError:"Error enabling passthrough on {name}",unclaimError:"Error disabling passthrough on {name}",cantUnclaim:"You cannot disable passthrough on a device claimed by another user.",enableGroup:"Enable Group",disableGroup:"Disable Group",labelRequired:"This rule should not be manually altered: it ensures that the PCI devices selected for this virtual machine are available on the virtual machine's host.",goSetting:{prefix:"The pcidevices-controller add-on is not enabled, click",middle:"here",suffix:"to enable the add-on to successfully manage your PCI devices."},noPCIPermission:"Please contact your system administrator to enable the PCI devices first.",enablePassthroughWarning:"Please be careful not to use host-owned PCI devices (e.g., management and VLAN NICs). Incorrect device allocation may cause damage to your cluster, including node failure."},devices:{matrixHostName:"Host Name",matrixDeviceClaimName:"Device Claim Name"},generic:{close:"Close",open:"Open",showMore:"Show More",hideMore:"Hide More",memory:"Memory",cpu:"CPU",storage:"Storage",noFileChosen:"No file chosen",noSchema:"Can not find the custom resource definition: {schema}."},validation:{custom:{tooLongName:'"Name" cannot be more than {max} characters.'},generic:{hasDelete:'{type} "{name}" has been deleted.',maxLength:'"{key}" cannot be more than {max} characters',tabError:"{prefix}: {message}",maximumSize:"Exceed maximum size {max}!",regex:'Invalid {lowerType} "{name}": {upperType} must match the regex "{regex}"'},vm:{name:"name is required!",memory:'"Memory" is required!',duplicatedName:'duplicate {type} name: "{name}"',network:{macFormat:"Invalid MAC address format.",upperType:"Network name",lowerType:"network name"},volume:{upperType:"Volume name",lowerType:"volume name",needImageOrExisting:"At least an image volume or an existing root-disk volume is required!"}},image:{ruleTip:"The URL you have entered ends in an extension that we do not support. We only accept image files that end in .img, .iso, .qcow, .qcow2, .raw.",ruleFileTip:"The file you have chosen ends in an extension that we do not support. We only accept image files that end in .img, .iso, .qcow, .qcow2, .raw."},hash:{sha512:"Invalid SHA512 checksum."}},dashboard:{label:"Dashboard",header:"Harvester Cluster: {cluster}",hardwareResourceGauge:{cpu:"CPU",memory:"Memory",storage:"Storage",allocated:"Allocated"},sections:{events:{label:"Events"},vmMetrics:{label:"Virtual Machine Metrics"}},version:"Version"},host:{console:"Console",label:"Hosts",inconsistentIP:"Host IP is inconsistent, current IP: { currentIP }, initial IP: { initIP }",noConsoleUrl:"Console URL not specified",promote:{none:" ",running:"Promoting",failed:"Promote failed",unknown:"Promote halted",promoteRestart:"Restarting",promoteSucceed:"Promote completed"},tabs:{network:"Network",overview:"Overview",basics:"Basics",instance:"Virtual Machines",monitor:"Monitor Data",storage:"Storage",labels:"Labels",ksmtuned:"Ksmtuned",seeder:"Out-of-band Access"},detail:{kvm:{disableMessage:"Hardware-based virtualization is disabled or not supported. Hardware-based virtualization must be enabled before creating any virtual machines."},title:{network:"Network Configuration"},hostIP:"Host IP",role:"Role",os:"Operating System",create:"Creation Time",update:"Last Update Time",customName:"Custom Name",consoleUrl:"Console URL",more:"More Information",uuid:"UUID",containerRuntime:"Container Runtime",kernel:"Kernel",management:"Management Node",compute:"Compute Node",storage:"Storage",nic:"Physical NIC",notRecommended:"Not recommended",networkType:"Type",manufacturer:"Manufacturer",serialNumber:"Serial Number",model:"Model",etcd:"Witness Node",cpuManager:"CPU Manager"},enableMaintenance:{title:"Enable Maintenance Mode",protip:"The operation will migrate all virtual machines on this node to other nodes.",shutDownVMs:"Check <b>Force</b> option to shutdown virtual machines which cannot be migrated in live mode.",force:"Force"},cordon:{title:"Cordon",protip:"This operation will mark the node { node } as unschedulable."},ksmtuned:{run:"Run Strategy",configure:"Configure",mode:"Mode",modeLink:'Mode <a href="{url}" target="_blank"><i class="icon icon-info" /></a>',thresCoef:"Threshold Coefficient",enableMergeNodes:"Enable merging across nodes",enable:"Enable",disable:"Disable",ksmStatus:"KSM Status",modeOption:{standard:"Standard",high:"High-performance",customized:"Customized"},parameters:{title:"Ksmtuned Parameters",boost:"Boost",decay:"Decay",sleepMsec:"Sleep Time (Millisecond)",minPages:"Minimum Pages",maxPages:"Maximum Pages",description:{boost:"The number of scanned pages is incremented each time if the available memory is less than the threshold coefficient.",decay:"The number of scanned pages is decremented each time if the available memory is greater than the threshold coefficient.",sleepMsec:"The interval between two scans (the minimum value is 10ms), which is calculated by the formula (Sleep Milliseconds * 16 * 1024 * 1024/Total Memory).",minPages:"The minimum number of pages per scan, also the configuration for the first run.",maxPages:"Maximum number of pages per scan."}},statistics:{title:'Statistics <a href="https://www.kernel.org/doc/html/latest/admin-guide/mm/ksm.html#ksm-daemon-sysfs-interface" target="_blank"><i class="icon icon-info" /></a>',sharing:"Sharing",shared:"Shared",unshared:"Unshared",volatile:"Volatile",fullScans:"Full Scans",stableNodeChains:"Stable Node Chains",stableNodeDups:"Stable Node Dups"}},disk:{add:"Add Disk",path:{label:"Path"},storageReserved:{label:"Storage Reserved"},allowScheduling:{label:"Scheduling",tooltip:"Disk {name} ({path}) scheduling is disabled"},evictionRequested:{label:"Eviction Requested"},forceFormatted:{label:"Force Formatted",toolTip:"Force formatted will clean up disk data, make sure you backup all available data to prevent data loss.",yes:"Yes (Ext4 File System)"},description:{label:"Description"},lastFormattedAt:{info:"The disk has already been force-formatted."},notification:{success:'Update host "{name}" storage configurations successfully.'},error:"Host has unready or unschedulable disks.",fileSystem:{info:"Current file system is {system}, You can format it manually.",formatting:"Disk is formatting, please wait."},tags:{label:"Disk Tags",addLabel:"Add Disk Tag"},conditions:"Conditions",storageAvailable:{label:"Storage Available"},storageScheduled:{label:"Storage Scheduled"},storageMaximum:{label:"Storage Maximum"},provisioner:"Provisioner",lvmVolumeGroup:{label:"Volume Group",create:"Create New..."},storage:{longhorn:{LonghornV1:{label:"Longhorn V1 (CSI)"},LonghornV2:{label:"Longhorn V2 (CSI)"}},lvm:{label:"LVM"}}},tags:{label:"Host Tags",addLabel:"Add Host Tag"},powerAction:{message:{success:"Perform host { name } { operation } successfully."}},ntp:{label:"NTP Server Addresses",tips:"You can configure multiple IPv4 addresses or host addresses.",placeholder:"e.g. IPv4",ntpSyncStatus:{isDisabled:"NTP is disabled. Please check the NTP service is active.",isUnsynced:"NTP is not synchronized with the NTP server {current}."}}},virtualMachine:{label:"Virtual Machines",osType:"OS Type",instance:{singleInstance:null,multipleInstance:null,single:{label:"Single Instance",nameLabel:"Name",host:{label:"Hostname",placeholder:"Default to the virtual machine name."}},multiple:{label:"Multiple Instance",nameNsDescription:"Name prefix for each instance",count:"Count",countTip:"Count should be between 1 and 10",nameLabel:"Name Prefix",host:{label:"Host Prefix Name",placeholder:"Default to the virtual machine name."}}},useTemplate:{label:"Use the virtual machine template:",template:{label:"Template"},version:{label:"Version"}},console:{novnc:"Open in WebVNC",serial:"Open in Serial Console"},promptRemove:{title:"Select the volume you want to delete:",deleteAll:"Delete All",tips:"Warn: The snapshots of the virtual machine will be deleted with virtual machine and the snapshots of volume will be deleted with volume."},unplug:{title:"Are you sure that you want to detach volume {name} ?",actionLabel:"Detach",detachVolume:"Detach Volume"},restartTip:"{restart, select,\n true {Restart}\n other {Start}\n} the virtual machine now to take effect of the configuration changes.",runStrategy:"Run Strategy",maintenanceStrategy:{label:"Maintenance Strategy",options:{Migrate:"Migrate",ShutdownAndRestartAfterEnable:"Shutdown and Restart After Enable",ShutdownAndRestartAfterDisable:"Shutdown and Restart After Disable",Shutdown:"Shutdown"}},cpuPinning:{label:"Enable CPU Pinning",tooltip:"Enable CPU Pinning brings better performance and reduce latency for the virtual machine",restartVMMessage:"Changing the CPU Pinning setting requires a virtual machine reboot for the change to take effect",migrationMessage:"This virtual machine can only be migrated to a target node that has CPU Manager enabled, as CPU Pinning is configured."},restartNow:"{restart, select,\n true {Restart}\n other {Start}\n} Now",createSSHKey:"Create a New...",installAgent:"Install guest agent",enableUsb:"Enable USB Tablet",advancedOptions:{tpm:"Enable TPM",tpmPersistentState:"TPM Persistent State",cpuManager:{prefix:"You must enable CPU Manager for at least one node in",middle:"host page",suffix:"to enable CPU Pinning for VM"},efiEnabled:"Booting in EFI mode",efiPersistentState:"EFI Persistent State",secureBoot:"Secure Boot"},usbTip:"Provides an absolute pointer device which often helps with getting a consistent mouse cursor position in VNC.",sshTitle:"Add Public SSH Key",imageTip:"An external URL to the .iso, .img, .qcow2 or .raw that the virtual machine should be created from.",volume:{dragTip:"Drag and drop volumes, or use the volume's arrows, to change the boot order.",volumeTip:"The virtual machine only contains a CD-ROM volume. You may want to add additional disk volumes.",macTip:"MAC address as seen inside the guest system.",volumeUpdate:"Set volume { name } successfully",type:"Type",size:"Size",edit:"Edit",bus:"Bus",readyToUse:"Ready To Use",bootOrder:"Boot Order",volume:"Volume",dockerImage:"Docker Image",addVolume:"Add Volume",addExistingVolume:"Add Existing Volume",addVmImage:"Add a Virtual Machine Image",addContainer:"Add Container",setFirst:"Set as root volume",saveVolume:"Update Volume",encryption:"Encryption",vmImageVolumeTip:"Disk size ({diskSize}) should greater than selected image virtual size ({imageVirtualSize})",lockTooltip:{all:"All volumes are encrypted.",partial:"Some volumes are encrypted."},title:{vmImage:"Image Volume",existingVolume:"Existing Volume",volume:"Volume",container:"Container"},unmount:{title:"Are you sure?",message:"Are you sure you want to unmount this volume?"}},network:{title:"Network",addNetwork:"Add Network",addPort:"Add Port"},cloudConfig:{title:"Cloud Configuration",createTemplateTitle:"Create {name}.",createNew:"Create new...",cloudInit:{label:"Cloud Init",placeholder:"Select a template"},user:{label:"User Data Template",title:"User Data:",tip:"You can specify user data to configure an instance or run a configuration script during launch. If you launch more than one instance at a time, the user data is available to all the instances in that reservation. <a href='https://cloudinit.readthedocs.io/en/latest/topics/examples.html' target='_blank'>Learn more</a>"},network:{label:"Network Data Template",title:"Network Data:",tip:"The network-data configuration allows you to customize the instance’s networking interfaces by assigning subnet configuration, virtual device creation (bonds, bridges, VLANs) routes and DNS configuration. <a href='https://cloudinit.readthedocs.io/en/latest/reference/network-config-format-v1.html' target='_blank'>Learn more</a>"}},scheduling:{affinity:{anyNode:"Run virtual machine on any available node",schedulingRules:"Run virtual machine on node(s) matching scheduling rules",specificNode:"Run virtual machine on specific node - (Live migration is not supported)"},networkNotSupport:"Network not support schedule"},accessCredentials:{resetPwd:{label:"Add Basic Auth"},injectSSH:{label:"Add SSH Key",users:"Select Users",addUser:"Add User"},tips:"qemu-guest-agent must be installed to enable the accessing of credentials. The virtual machine needs to be restarted after credentials added. You need to be in the virtual machine to edit your password or remove an SSH-Key after deleting the credentials.",userTips:"The user to be added must already exist; otherwise, the credentials will not take effect.",duplicatedUser:"User already exists.",invalidUser:"Invalid Username."},input:{name:"Name",memory:"Memory",image:"Image",sshKey:"SSHKey",sshKeyValue:"SSH-Key",MachineType:"Machine Type",username:"Username",password:"Password",reservedMemory:"Reserved Memory"},machineTypeTip:"Specify a processor architecture to emulate. To see a list of supported architectures, run: qemu-system-x86_64 -cpu ?",detail:{tabs:{overview:"Overview",details:"Details",environment:"Environment",events:"Events",migration:"Migration",console:"Console",networkInterfaces:"Network Interfaces",disks:"Disks",networks:"Networks",basics:"Basics",configurations:"Configurations",inventory:"Inventory",hostBasic:"Basic Attributes",instance:"Virtual Machines",monitor:"Monitor Data",keypairs:"SSH Keys",cloudConfig:"Cloud Configuration",metrics:"Virtual Machine Metrics"},details:{title:{vmDetails:"Virtual Machine Details",requirements:"Scheduling and resources requirements",services:"Services",users:"Logged in users"},name:"Name",totalSnapshotQuota:"Total Snapshot Quota",namespace:"Namespace",created:"Created",hostname:"Hostname",node:"Node",ipAddress:"IP Address",status:"Status",pod:"Pod",labels:"Labels",bootOrder:"Boot Order",annotations:"Annotations",CDROMs:"CD-ROMs",description:"Description",operatingSystem:"Operating System",template:"Template",kernelRelease:"Kernel Release",owner:"Owner",workloadProfile:"Workload Profile",nodeSelector:"Node Selector",flavor:"Flavor",tolerations:"Tolerations",dedicatedResources:"Dedicated Resources",down:"Virtual machine not running",affinityRules:"Affinity Rules",sourceNode:"Source Node",targetNode:"Target Node",started:"Started",ended:"Ended"},notAvailable:"Not available",GuestAgentNotInstalled:"Guest agent required",noOwner:"No Owner",events:{from:"Generated from",down:"No events in the past hour"},console:{down:"This virtual machine is down. Please start it to access its console.",shortcutKeys:"Shortcut Keys",customShortcutKeys:"Custom Shortcut Keys",management:"Management Shortcut Keys",record:{start:"Record",recording:"Recording",stop:"Stop Recording",tips:"Press the record button to capture your keyboard inputs.",send:"Send",preferredKeys:"Preferred Custom Shortcut Keys"}}},terminationGracePeriodSeconds:{label:"Termination Grace Period"},affinity:{addLabel:"Add Workload Selector",topologyKey:{placeholder:"topology.kubernetes.io/zone"},thisPodNamespace:"This virtual machine's namespace",matchExpressions:{inNamespaces:"Workloads in these namespaces"},namespaces:{label:"Namespaces"}}},volume:{label:"Volumes",tabs:{basics:"Basics",snapshots:"Snapshots",datasource:"Data Source",details:"Details"},size:"Size",source:"Source",kind:"Kind",sourceOptions:{new:"New",vmImage:"Virtual Machine Image"},image:"Image",frontend:"Frontend",blockdev:"Block Device",attachedNode:"Attached Node",endpoint:"Endpoint",diskTags:"Disk Tags",nodeTags:"Node Tags",lastBackup:"Last Backup",lastBackupAt:"Last Backup At",replicasNumber:"Replicas Number",promptRemove:{tips:"Warn: The volume's snapshots will be deleted with this volume."},externalLink:{tips:"Check volume details"},rebuildingMessage:"Rebuilding: {percentage}%",longhorn:{disableResize:"Longhorn V2 volumes cannot be resized."}},image:{label:"Images",tabs:{basics:"Basics"},url:"URL",size:"Size",isEncryption:"Encryption",encryptionSecret:"Encryption Secret",virtualSize:"Virtual Size",urlTip:'Supports the <code>raw</code> and <code>qcow2</code> image formats which are supported by <a href="https://www.qemu.org/docs/master/system/images.html#disk-image-file-formats" target="_blank">qemu</a>. Bootable ISO images can also be used and are treated like <code>raw</code> images.',fileName:"File Name",uploadFile:"Upload File",source:"Source Type",sourceType:{download:"URL",upload:"File",clone:"Clone",encrypt:"Encrypt",decrypt:"Decrypt"},sourceImage:"Source Image",cryptoOperation:"Crypto Operation",warning:{uploading:"{count, plural,\n=1 {1 image is uploading, please do not refresh or close the page.}\nother {{count} images are uploading, please do not refresh or close the page.}\n}"},checksum:"Checksum",checksumTip:"Validate the image using the SHA512 checksum, if specified."},vmTemplate:{label:"Templates",tabs:{basics:"Basics"},nameNsDescription:{name:"Template Name"},tips:{notExistImage:{title:"Image {name} does not exist!",message:"Please select a new image."},notExistNode:{title:"Node {name} does not exist!",message:"Please select a new node."}}},upgradePage:{upgradeApp:"Upgrade Software",upgrade:"Upgrade",upgradeTip:"Please select the version you want to upgrade to",currentVersion:"CURRENT VERSION",versionLabel:"AVAILABLE COMPATIBLE VERSIONS",enableLogging:"Enable Logging",skipSingleReplicaDetachedVol:"Skip checking single-replica detached volumes",upgradeNode:"Upgrading Node",upgradeSysService:"Upgrading System Service",upgradeImage:"Download Upgrade Image",osUpgrade:"OS Upgrade",uploadNew:"Upload New Image",selectExisting:"Select Existing Image",createRepository:"Creating Upgrade Repository",succeeded:"Succeeded",releaseTip:'Please read the upgrade documentation carefully. You can view details on the <a href="{url}" target="_blank">Harvester Release Notes</a>.',checkReady:"I have read and understood the upgrade instructions related to this Harvester version.",pending:"Pending",repoInfo:{upgradeStatus:"Upgrade Status",os:"OS",kubernetes:"Kubernetes",monitoringChart:"Monitoring Chart",harvesterChart:"Harvester Chart",success:"Success",fail:"Fail",ongoing:"On-going",downloadLog:"Download Log",logStatus:"Log Download Status"},dismissMessage:"Dismiss it",upgradeInfo:{warning:"WARNING",doc:'Read the <a href="{url}" target="_blank">documentation</a> before starting the upgrade process. Ensure that you complete procedures that are relevant to your environment and the version you are upgrading to.',tip:"Unmet system requirements and incorrectly performed procedures may cause complete upgrade failure and other issues that require manual workarounds.",moreNotes:"For more details about the release notes, please visit -"}},schedule:{label:"Virtual Machine Schedules",createTitle:"Create Schedule",createButtonText:"Create Schedule",scheduleType:"Virtual Machine Schedule Type",cron:"Cron Schedule",detail:{namespace:"Namespace",sourceVM:"Source Virtual Machine"},tabs:{basic:"Basic",backups:"Backups",snapshots:"Snapshots"},message:{noSetting:{suffix:"before creating a backup schedule"}},retain:{label:"Retain",count:"Count",tooltip:"Number of up-to-date VM backups to retain. Maximum to 250, minimum to 2."},maxFailure:{label:"Max Failure",count:"Count",tooltip:"Max number of consecutive failed backups that could be tolerated. If reach this threshold, Harvester controller will suspend the schedule job. This value should less than retain count"},virtualMachine:{title:"Virtual Machine Name",placeholder:"Select a virtual machine"},type:{snapshot:"Snapshot",backup:"Backup"}},backup:{label:"Virtual Machine Backups",createText:"Restore Backup",title:"Restore Virtual Machine",backupTargetTip:"The endpoint used to access the backupstore. NFS and S3 are supported.",message:{noSetting:{prefix:"You must configure the backup target",middle:"setting",suffix:"before creating a new backup."},errorTip:{prefix:"Backup target value in",middle:"setting",suffix:"is invalid, error: "},viewSetting:{prefix:"Click",middle:"here",suffix:"to view the backup configuration."},testConnect:{actionLabel:"Test connection",waitingLabel:"Testing connection...",successLabel:"Connection tested",successMessage:"Harvester can successfully connect to the endpoint {endpoint}"}},restore:{backup:"Backup",deletePreviousVolumes:"Delete Previous Volumes",createNew:"Create new",replaceExisting:"Replace existing",virtualMachineName:"Virtual Machine Name",keepMacAddress:"Keep MAC Address"},matchTarget:"The current backup target does not match the existing one.",progress:{details:"Volume details",tooltip:{starting:"Backup initiating",progress:"Backup in progress",complete:"Backup completed"}}},restore:{progress:{details:"Volume details",tooltip:{starting:"Restore initiating",progress:"Restore in progress",complete:"Restore completed"}}},network:{label:"Virtual Machine Networks",tabs:{basics:"Basics",layer3Network:"Route"},clusterNetwork:{label:"Cluster Network",create:"Create a new cluster network",toolTip:"Define your custom cluster scope network name",createPlaceholder:"Input a new cluster network name",selectOrCreatePlaceholder:"Select or create a new cluster network",selectPlaceholder:"Select a cluster network"},layer3Network:{mode:{label:"Mode",auto:"Auto (DHCP)",manual:"Manual"},serverIPAddr:{label:"DHCP Server IP"},gateway:{label:"Gateway",placeholder:"e.g. 172.16.0.1"},cidr:{label:"CIDR",placeholder:"e.g. 172.16.0.1/24"}}},sshKey:{label:"SSH Keys",keypair:"SSH Key",tabs:{basics:"Basics"}},setting:{label:"Settings",tabs:{advanced:"Advanced",ui:"UI"},validation:{physicalNIC:"DefaultPhysicalNIC"},placeholder:{accessKeyId:"Specify your access key ID",secretAccessKey:"Specify your secret access key",cert:"Upload a self-signed SSL certificate"},vlanChangeTip:"The newly modified default network interface only applies to newly added nodes, not existing ones.",defaultPhysicalNIC:"Default Network Interface",modifiedMessage:"Settings that have been customized from default settings are tagged with 'Modified'.",percentTip:"The value in parentheses represents the distribution percentage of the network interface on all hosts. If an interface less than 100% is selected, the user needs to manually specify the network interface on the host where the vlan network configuration fails.",message:{ca:{prefix:"Click",middle:"here",suffix:"to add a custom certificate."}},sslCertificates:{publicCertificate:"Public Certificate",privateKey:"Private Key",ca:"CA"},storageNetwork:{range:{placeholder:"e.g. 172.16.0.0/24",label:"IP Range",invalid:'"Range" is invalid.'},clusterNetwork:"Cluster Network",vlan:"VLAN ID",exclude:{label:"Exclude",placeholder:"e.g. 172.16.0.1/32",invalid:'"Exclude list" is invalid.',addIp:"Add Exclude IP"},warning:"WARNING: <br/> Any change to storage-network requires shutting down all virtual machines before applying this setting. <br/> Users have to ensure the cluster network is configured and VLAN Configuration will cover all nodes and ensure the network connectivity is working and expected in all nodes.",tip:'Specify an IP range in the IPv4 CIDR format. <code>Number of IPs Required = Number of Nodes * 2 + Number of Disks * 2 + Number of Images to Download/Upload </code>. For more information about storage network settings, see the <a href="{url}" target="_blank">documentation</a>.'},vmForceDeletionPolicy:{period:"Period"},ratio:"Ratio",autoRotateRKE2Certs:{expiringInHours:"Expiring in"},httpProxy:{warning:'WARNING: <br/> If you configure "http-proxy" and "https-proxy", you must also put Harvester node's CIDR into "no-proxy", otherwise the Harvester cluster will be broken.'},supportBundleImage:{imagePullPolicy:"Pull Policy",repo:"Repository",tag:"Tag"},csiDriverConfig:{provisioner:"Provisioner",volumeSnapshotClassName:"Volume Snapshot Class Name",backupVolumeSnapshotClassName:"Backup Volume Snapshot Class Name"},containerdRegistry:{mirrors:{mirrors:"Mirrors",registryName:"Registry Name",endpoints:"Endpoints",rewrite:{rewrite:"Rewrite",addRewrite:"Add Rewrite"},addMirror:"Add Mirror"},configs:{configs:"Configurations",registryEDQNorIP:"Registry FDQN or IP",registryPlaceholder:"myregistry.local:5000",username:"Username",password:"Password",auth:"Auth",identityToken:"Identity Token",insecureSkipVerify:"InsecureSkipVerify",addConfig:"Add Configuration"}},upgrade:{selectExitImage:"Please select the OS image to upgrade.",imageUrl:"Please input a valid image URL.",chooseFile:"Please select to upload an image.",checksum:"Checksum"},harvesterMonitoring:{label:"Harvester Monitoring",section:{prometheus:"Prometheus",prometheusNodeExporter:"Prometheus Node Exporter",grafana:"Grafana",alertmanager:"Alertmanager"},tips:{scrape:"Interval between consecutive scrapes",evaluation:"Interval between consecutive evaluations",retention:"How long to retain metrics",retentionSize:"Maximum size of metrics"}},clusterRegistrationUrl:{message:"To completely unset the imported Harvester cluster, please also remove it on the Rancher Dashboard UI via the <code> Virtualization Management </code> page."},ntpServers:{isNotIPV4:"The address you entered is not IPv4 or host. Please enter a valid IPv4 address or a host address.",isDuplicate:"There are duplicate NTP server configurations."}},cloudTemplate:{label:"Cloud Configuration Templates",templateType:"Template Type",userData:"User Data",networkData:"Network Data"},support:{title:"Harvester Support",kubeconfig:{title:"Download KubeConfig",titleDescription:"Download kubeconfig for debugging."},internal:{rancher:{title:"Access Embedded Rancher UI",titleDescription:'You can only use the embedded Rancher UI for debugging and validation purposes. For more information about how Harvester integrates with Rancher, see the <a target="_blank" href="{url}" rel="noopener noreferrer nofollow">documentation</a>.'},longhorn:{title:"Access Embedded Longhorn UI",titleDescription:"We only support to use the embedded Longhorn UI for debugging and validation purpose."}},community:{learnMore:"Find out more about SUSE Harvester support",pricing:"Contact us for pricing"}},namespace:{label:"Namespaces"},projectNamespace:{label:"Projects/Namespaces"},vip:{namespace:{label:"Namespace"},cidr:{label:"CIDR/IP Range",invalid:'"CIDR/IP Range" is invalid.',toolTip:"We can apply multiple pools or ranges by separating them with commas. For example: 192.168.0.200/30,192.168.0.200/29 or 192.168.0.10-192.168.0.11"},add:{label:"Add IP Pools"}},sslParameters:{protocols:{label:"Protocols"},ciphers:{label:"Ciphers"}},monitoring:{configuration:{label:"Configuration"},alertmanagerConfig:{label:"Alertmanager Configurations",diabledMonitoringTips:{prefix:"Enable the",middle:"monitoring",suffix:"add-on first."},diabledAlertingTips:{prefix:"Enable",middle:"Alertmanager",suffix:"for configuration to take effect."},disabledAddon:{prefix:"The monitoring add-on is disabled, click",middle:"here",suffix:"to enable it."}}},logging:{configuration:{section:{fluentbit:"Fluentbit",fluentd:"Fluentd"}},clusterFlow:{label:"Cluster Flows"},clusterOutput:{label:"Cluster Outputs"},flow:{label:"Flows"},output:{label:"Outputs"},diabledTips:{prefix:"Enable",middle:"logging",suffix:"for configuration to take effect."}},snapshot:{totalSnapshotSize:"Total Snapshot Size",label:"Volume Snapshots",targetVolume:"Original Volume",size:"Size",image:"Image"},vmSnapshot:{label:"Virtual Machine Snapshots",createText:"Restore Snapshot",snapshot:"Snapshot"},storage:{label:"Storage",useDefault:"Use the default storage",volumeEncryption:"Volume Encryption",secret:"Secret",migratable:{label:"Migratable"},numberOfReplicas:{label:"Number Of Replicas"},staleReplicaTimeout:{label:"Stale Replica Timeout"},nodeSelector:{label:"Host Selector"},diskSelector:{label:"Disk Selector"},storageClass:{label:"Storage Class",longhorn:{v1:{label:"Longhorn V1 (CSI)"},v2:{label:"Longhorn V2 (CSI)"},versionTooltip:"Longhorn V2 is disabled for this node."},lvm:{label:"LVM"}},title:"Storage Classes",customize:{volumeBindingMode:{later:"Bind and provision a persistent volume once a virtual machine using the PersistentVolumeClaim is created"}},parameters:{numberOfReplicas:{label:"Number Of Replicas"},staleReplicaTimeout:{label:"Stale Replica Timeout"},diskSelector:{label:"Disk Selector","no-options":"No available tags, please add in the `Host > Storage` page"},nodeSelector:{label:"Node Selector","no-options":"No available tags, please add in the `Host > Storage` page"},migratable:{label:"Migratable"},lvmVolumeGroupType:{label:"Volume Group Type"},lvmVolumeGroup:{label:"Volume Group Name","no-options":"No available Volume Groups, please add in the `Host > Storage` page"},node:{label:"Node"}},allowedTopologies:{title:"Allowed Topologies",tooltip:"Allowed Topologies helps scheduling virtual machines on hosts which match all of below expressions."}},vlanConfig:{title:"Network Configuration",createNetworkConfig:"Create Network Configuration",action:{migrate:"Migrate"},titles:{nodeSelector:"Node Selector",uplink:"Uplink",bondOptions:"Bond Options",attributes:"Attributes",host:"Selected Hosts"},scheduling:{affinity:{allNodes:"Select all nodes",specificNode:"Select specific node",schedulingRules:"Select node(s) matching rules"}},uplink:{nics:{label:"NICs",addLabel:"Add NIC",placeholder:"Select a NIC that is available on all the selected nodes",validate:{available:'NIC "{nic}" is not available on the selected nodes'}},linkAttributes:{mtu:{label:"MTU"}},bondOptions:{mode:{label:"Mode"},miimon:{label:"Miimon",tooltip:"Miimon specifies the MII link monitoring frequency in milliseconds. <Code>-1</Code> means to keep the original value."}}},nodeSelector:{matchingNodes:{matchesSome:'{matched, plural,\n =0 {Matches 0 of {total, number} Nodes.}\n =1 {Matches 1 of {total, number} Nodes: "{sample}"}\n other {Matches {matched, number} of {total, number} existing Nodes, including "{sample}"}\n}'}}},vlanStatus:{vlanConfig:{label:"Network Configuration"}},clusterNetwork:{title:"Cluster Network Configuration",create:{button:{label:"Create a Cluster Network"}},clusterNetwork:"There are no network configurations defined.",mgmt:"mgmt is a built-in cluster management network and does not support any additional network configurations.",notExist:'Cluster Network "{ clusterNetwork }" does not exist',notReady:'Cluster Network "{ clusterNetwork }" is not ready'},addons:{descriptions:{"harvester-system/vm-import-controller":"vm-import-controller is an add-on to help migrate virtual machine workloads from other source clusters to an existing Harvester cluster.","harvester-system/pcidevices-controller":"pcidevices-controller is an add-on to help discover PCI devices for nodes in your cluster and allow users to prepare devices for PCI Passthrough, for use with Harvester virtual machine and guest clusters.","cattle-logging-system/rancher-logging":"rancher-logging is an add-on to collect versatile logs, events, and audits from the Harvester cluster and route them to many kinds of servers based on flows.","harvester-system/rancher-vcluster":"rancher-vcluster deploys a virtual cluster (vcluster) with Rancher installed.","cattle-monitoring-system/rancher-monitoring":"rancher-monitoring is an add-on that collects Harvester cluster and virtual machine metrics and allows you to view the metrics on an embedded dashboard and send alert(s) to remote servers.","vm-import-controller":"vm-import-controller is an add-on to help migrate virtual machine workloads from other source clusters to an existing Harvester cluster.","pcidevices-controller":"pcidevices-controller is an add-on to help discover PCI devices for nodes in your cluster and allow users to prepare devices for PCI Passthrough, for use with Harvester virtual machines and guest clusters.","nvidia-driver-toolkit":"nvidia-driver-toolkit is an add-on to enable vGPU devices and assign them to Harvester virtual machines.","rancher-logging":"rancher-logging is an add-on to collect versatile logs, events, and audits from the Harvester cluster and route them to many kinds of servers based on flows.","rancher-monitoring":"rancher-monitoring is an add-on to collect Harvester cluster and virtual machine metrics, view them on the embedded dashboard, and send alert(s) to remote servers.","rancher-vcluster":"rancher-vcluster deploys a virtual cluster (vcluster) with Rancher installed.","harvester-seeder":"harvester-seeder is an add-on that uses IPMI and Redfish to discover hardware information and perform out-of-band operations.","harvester-system/harvester-seeder":"harvester-seeder is an add-on that uses IPMI and Redfish to discover hardware information and perform out-of-band operations.","harvester-csi-driver-lvm":"harvester-csi-driver-lvm is an add-on allowing users to create PVC through the LVM with local devices."},vmImport:{titles:{basic:"Basic",pvc:"Volume"}},rancherVcluster:{accessRancher:"Access the Rancher Dashboard",hostname:"Hostname",rancherVersion:"Rancher Version",password:"Bootstrap Password"},switchFailed:"{action} {name} failed!",nvidiaDriverToolkit:{titles:{basic:"Controller",image:"Image",driver:"Driver"},image:{tag:"Image Tag",repository:"Image Repository"},driver:{location:"Driver Location"},parsingSpecError:"The field 'spec.valuesContent' has invalid format."},usbController:{titles:{basic:"Basic"}}},loadBalancer:{label:"Load Balancers",tabs:{basic:"Basic",listeners:"Listeners",healthCheck:"Health Check",backendServer:"Backend Server Selector"},workloadType:{label:"Workload Type",options:{cluster:"Guest Kubernetes Cluster",vm:"Virtual Machine"}},ipam:{label:"IPAM",options:{dhcp:"DHCP",pool:"Pool"}},ipPool:{label:"IP Pool",options:{none:"Auto (Select IP Pool automatically)"}},listeners:{name:{label:"Name"},protocol:{label:"Protocol"},port:{label:"Port"},backendPort:{label:"Backend Port",placeholder:"e.g. 80"}},backendServerSelector:{matchingVMs:{matchesSome:'{matched, plural,\n =0 {Matches 0 of {total, number} virtual machines in the namespace where the load balancer is.}\n =1 {Matches 1 of {total, number} virtual machines in the namespace where the load balancer is: "{sample}"}\n other {Matches {matched, number} of {total, number} existing virtual machines in the namespace where the load balancer is, including "{sample}"}\n}'}},backendServers:{label:"Backend Servers"},healthCheck:{warning:{portInUse:"Warning, the Backend Port {port} is in use in Health Check settings. If you need to update the port, update the Health Check settings accordingly."}}},ipPool:{label:"IP Pools",network:{label:"Virtual Machine Network"},tabs:{range:"Range",scope:"Scope",selector:"Selector"},subnet:{label:"Subnet"},startIP:{label:"Start IP"},endIP:{label:"End IP"},gateway:{label:"Gateway"},namespace:{label:"Namespace"},project:{label:"Project"},guestCluster:{label:"Guest Kubernetes Cluster"},availableIP:{label:"Available IP Count"},scope:{label:"Scope",addLabel:"Add Scope"},priority:{label:"Priority"},cidr:{addLabel:"Add CIDR"},range:{addLabel:"Add Range"}},service:{healthCheckPort:{label:"Health Check Port"},healthCheckSuccessThreshold:{label:"Health Check Success Threshold",description:"If the number of times the probe continuously detects an address successfully reaches the success threshold, then the backend server can start to forward traffic."},healthCheckFailureThreshold:{label:"Health Check Failure Threshold",description:"The backend server will stop forwarding traffic if the number of health check failures reaches the failure threshold."},healthCheckPeriod:{label:"Health Check Period"},healthCheckTimeout:{label:"Health Check Timeout"},healthCheckEnabled:{label:"Health Check"}},secret:{label:"Secrets"},sriov:{label:"SR-IOV Network Devices",nodeName:"Node",numVFs:"Number Of Virtual Functions",vfAddresses:"Virtual Functions Addresses",showMore:"Show More",parentSriov:"Filter By Parent SR-IOV"},sriovgpu:{label:"SR-IOV GPU Devices",nodeName:"Node",numVFs:"Number of Virtual Functions",vfAddresses:"Virtual Functions Addresses",vGpuDevices:"vGPU Devices",showMore:"Show More",parentSriov:"Filter By Parent SR-IOV GPU",noPermission:"Please contact your system administrator to add Harvester add-ons first.",goSetting:{prefix:"The nvidia-driver-toolkit add-on is not enabled, click",middle:"here",suffix:"to enable it to manage your SR-IOV GPU devices."}},vgpu:{label:"vGPU Devices",noPermission:"Please contact system administrator to add Harvester add-ons first.",goSetting:{prefix:"The nvidia-driver-toolkit add-on is not enabled, click",middle:"here",suffix:"to enable it to manage your vGPU devices."},enableGroup:"Enable Group",disableGroup:"Disable Group",enable:{title:"Select vGPU",type:"Type"},available:"Available Devices",compatibleNodes:"Compatible Nodes",impossibleSelection:"There are no hosts with all of the selected devices.",howToUseDevice:"Use the table below to enable vGPU devices you want to use in this virtual machine.",deviceInTheSameHost:"You can only select devices on the same host."},usb:{label:"USB Devices",noPermission:"Please contact system admin to add Harvester add-ons first",goSetting:{prefix:"The pcidevices-controller add-on is not enabled, click",middle:"here",suffix:"to enable it to manage your USB devices."},enableGroup:"Enable Group",disableGroup:"Disable Group",available:"Available USB Devices",compatibleNodes:"Compatible Nodes",impossibleSelection:"There are no hosts with all of the selected devices.",howToUseDevice:"Use the table below to enable USB passthrough on each device you want to use in this VM.",deviceInTheSameHost:"You can only select devices on the same host.",showCompatibility:"Show device compatibility matrix",hideCompatibility:"Hide device compatibility matrix",claimError:"Error enabling passthrough on {name}",unclaimError:"Error disabling passthrough on {name}",cantUnclaim:"You cannot disable passthrough on a device claimed by another user.",enablePassthroughWarning:"Please re-enable the USB device if the device path changes in the following situations:<br/> 1) Re-plugging the USB device.<br/> 2) Rebooting the node.<br/><br/>An incorrect device path may cause passthrough to fail."},harvesterVlanConfigMigrateDialog:{targetClusterNetwork:{label:"Target Cluster Network",placeholder:"Choose Target Cluster Network"}},seeder:{banner:{enable:{prefix:'The "harvester-seeder" add-on is disabled.',middle:"Click here",suffix:"to enable it."},noAccess:"Please contact your system administrator to enable the Out-of-Band Access first.",noAddon:'The "harvester-seeder" add-on does not exist, please check if it is installed.',noInventory:'Waiting for "inventories.metal.harvesterhci.io" to be ready.'},inventory:{host:{label:"Host",placeholder:"e.g. 172.16.1.1"},port:{label:"Port",placeholder:"e.g. 623"},insecureTLS:{label:"Insecure TLS"},secret:{label:"Secret",create:{title:"Add Secret"}},event:{label:"Event"},pollingInterval:{label:"Polling Interval"}}}},typeDescription:{harvester:"Branding allows administrators to globally re-brand the UI by customizing the Harvester product name, logos and color scheme."},advancedSettings:{experimental:"Experimental features allow users to test and evaluate early-access functionality prior to official supported releases",descriptions:{"harv-vlan":"Default Network Interface name of the VLAN network.","harv-backup-target":"Custom backup target to store virtual machine backups.",branding:"Branding allows administrators to globally re-brand the UI by customizing the Harvester product name, logos, and color scheme.","harv-csi-driver-config":"Configure additional information for CSI drivers.","harv-containerd-registry":"Containerd Registry Configuration to connect private registries.","harv-log-level":"Configure Harvester server log level. Defaults to Info.","harv-server-version":"Harvester server version.","harv-upgrade-checker-enabled":"Specifies whether to enable Harvester upgrade check or not. Default is True.","harv-upgrade-checker-url":"Default Harvester upgrade check url. Only used when the <code>upgrade-checker-enabled</code> is equal to True.","harv-ui-source":"Configure how to load the UI source.","harv-ui-index":"HTML index location for the UI.","harv-ui-plugin-index":"JS index location for the Harvester plugin UI.","harv-cluster-registration-url":"Registration URL for multi-cluster management.","harv-http-proxy":"HTTP proxy for Harvester to access external services.","harv-additional-ca":"Custom CA root certificates for TLS validation.","harv-overcommit-config":"Resource overcommit configuration.","harv-support-bundle-timeout":"Support bundle timeout configuration in minutes, use 0 to disable the timeout.","harv-support-bundle-expiration":"Support bundle expiration configuration in minutes.","harv-support-bundle-node-collection-timeout":"Support bundle node collection timeout configuration in minutes.","harv-vm-force-reset-policy":"Configuration for the force-reset action when a virtual machine is stuck on a node that is down.","harv-ssl-parameters":"Custom SSL Parameters for TLS validation.","harv-storage-network":"Longhorn storage-network setting.","harv-support-bundle-namespaces":"Specify resources in other namespaces to be collected by the support package.","harv-auto-disk-provision-paths":"Specify the disks(using glob pattern) that Harvester will automatically add as virtual machine storage.","harv-support-bundle-image":'Support bundle image configuration. Find different versions in <a href="https://hub.docker.com/r/rancher/support-bundle-kit/tags" target="_blank">rancher/support-bundle-kit</a>.',"harv-release-download-url":"This setting allows you to configure the <code>upgrade release download</code> URL address. Harvester will get the ISO URL and checksum value from the (<code>$URL</code>/<code>$VERSION</code>/version.yaml) file hosted by the configured URL.","harv-default-vm-termination-grace-period-seconds":"Configure the virtual machine termination grace period for virtual machine stop.","harv-ntp-servers":"Configure NTP server. You can configure multiple IPv4 addresses or host addresses.","harv-auto-rotate-rke2-certs":"The certificate rotation mechanism relies on Rancher. Harvester will automatically update certificates generation to trigger rotation.","harv-kubeconfig-default-token-ttl-minutes":"TTL (in minutes) applied on Harvester administration kubeconfig files. Default is 0, which means to never expire.","harv-longhorn-v2-data-engine-enabled":'Enable the Longhorn V2 data engine. Default is false. <ul><li>Changing this setting will restart RKE2 on all nodes. This will not affect running VM workloads.</li><li>If you see "not enough hugepages-2Mi capacity" errors when enabling this setting, wait a minute for the error to clear. If the error remains, reboot the affected node.</li></ul>',"harv-additional-guest-memory-overhead-ratio":"The ratio for kubevirt to adjust the VM overhead memory. The value could be zero, empty value or floating number between 1.0 and 10.0, default to 1.5."}},typeLabel:{"kubevirt.io.virtualmachine":"{count, plural,\n one { Virtual Machine }\n other { Virtual Machines }\n}","harvesterhci.io.virtualmachineimage":"{count, plural,\n one { Image }\n other { Images }\n}","harvesterhci.io.keypair":"{count, plural,\n one { SSH Key }\n other { SSH Keys }\n}","harvesterhci.io.host":"{count, plural,\n one { Host }\n other { Hosts }\n}","harvesterhci.io.networkattachmentdefinition":"{count, plural,\n one { Virtual Machine Network }\n other { Virtual Machine Networks }\n}","harvesterhci.io.volume":"{count, plural,\n one { Volume }\n other { Volumes }\n}","harvesterhci.io.user":"{count, plural,\n one { User }\n other { Users }\n}","harvesterhci.io.setting":"{count, plural,\n one { Setting }\n other { Settings }\n}","harvesterhci.io.virtualmachinetemplateversion":"{count, plural,\n one { Template }\n other { Templates }\n}","harvesterhci.io.schedulevmbackup":"{count, plural,\n one { Virtual Machine Schedule }\n other { Virtual Machine Schedules }\n}","harvesterhci.io.virtualmachinebackup":"{count, plural,\n one { Virtual Machine Backup }\n other { Virtual Machine Backups }\n}","harvesterhci.io.cloudtemplate":"{count, plural,\n one { Cloud Configuration Template }\n other { Cloud Configuration Templates }\n}","harvesterhci.io.volumesnapshot":"{count, plural,\n one { Volume Snapshot }\n other { Volume Snapshots }\n}","harvesterhci.io.vmsnapshot":"{count, plural,\n one { Virtual Machine Snapshot }\n other { Virtual Machine Snapshots }\n}","network.harvesterhci.io.vlanconfig":"{count, plural,\n one { Network Configuration }\n other { Network Configurations }\n}","harvesterhci.io.monitoring.alertmanagerconfig":"{count, plural,\n one { Alertmanager Configuration }\n other { Alertmanager Configurations }\n}","harvesterhci.io.logging.clusterflow":"{count, plural,\n one { Cluster Flow }\n other { Cluster Flows }\n}","harvesterhci.io.logging.clusteroutput":"{count, plural,\n one { Cluster Output }\n other { Cluster Outputs }\n}","harvesterhci.io.logging.flow":"{count, plural,\n one { Flow }\n other { Flows }\n}","harvesterhci.io.logging.output":"{count, plural,\n one { Output }\n other { Outputs }\n}","harvesterhci.io.storage":"{count, plural,\n one { Storage Class }\n other { Storage Classes }\n}","devices.harvesterhci.io.pcidevice":"{count, plural,\n one { PCI Device }\n other { PCI Devices }\n}",persistentvolumeclaim:"{count, plural,\n one { Volume }\n other { Volumes }\n}","network.harvesterhci.io.clusternetwork":"{count, plural,\n one { Cluster Network }\n other { Cluster Networks }\n}","harvesterhci.io.addon":"{count, plural,\n one { Add-on }\n other { Add-ons }\n}","devices.harvesterhci.io.sriovnetworkdevice":"{count, plural,\n one { SR-IOV Network Device }\n other { SR-IOV Network Devices }\n}","devices.harvesterhci.io.sriovgpudevice":"{count, plural,\n one { SR-IOV GPU Device }\n other { SR-IOV GPU Devices }\n}","devices.harvesterhci.io.vgpudevice":"{count, plural,\n one { vGPU Device }\n other { vGPU Devices }\n}","harvesterhci.io.secret":"{count, plural,\n one { Secret }\n other { Secrets }\n}","harvesterhci.io.blockdevice":"{count, plural,\n one { Disk }\n other { Disks }\n}","loadbalancer.harvesterhci.io.loadbalancer":"{count, plural,\n one { Load Balancer }\n other { Load Balancers }\n}","loadbalancer.harvesterhci.io.ippool":"{count, plural,\n one { IP Pool }\n other { IP Pools }\n}"}}];e.exports=t.length<=1?t[0]:t}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.37.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.37.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.37.js.map new file mode 100644 index 00000000..893544df --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.37.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.37.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./l10n/en-us.yaml"],"sourcesContent":["const doc = [({\"generic\":({\"tip\":\"Tip\", \"resourceExternalLinkTips\":\"External Link\", \"namespace\":\"Namespace\", \"notReady\":\"Not Ready\", \"labels\":\"Labels\", \"inProgress\":\"In Progress\", \"basic\":\"Basic\", \"loading\":\"Loading...\"}), \"unsupported\":({\"serverVersion\":\"Current version: <code>{serverVersion}</code>\", \"description\":\"Harvester ui only supports Harvester cluster version greater or equal to 1.3.0.\", \"learnMore\":\"Learn more about Harvester from the <a target=\\\"_blank\\\" href=\\\"https://harvesterhci.io/\\\" rel=\\\"noopener noreferrer nofollow\\\">Harvester Web Site</a> or read the <a target=\\\"_blank\\\" href=\\\"https://docs.harvesterhci.io/\\\" rel=\\\"noopener noreferrer nofollow\\\">Harvester Docs</a>\"}), \"nav\":({\"group\":({\"networks\":\"Networks\", \"backupAndSnapshot\":\"Backup and Snapshots\", \"Monitoring\":\"Monitoring\", \"Logging\":\"Logging\", \"Monitoring and Logging\":\"Monitoring and Logging\"})}), \"resourceTable\":({\"groupBy\":({\"device\":\"Group by Device\"})}), \"validation\":({\"arrayCountRequired\":\"At least {count} {key} {count, plural, =1 {is} other {are}} required, and {key} can not be empty.\"}), \"members\":({\"clusterMemebership\":\"Cluster Membership\", \"projectMembership\":\"Project Membership\"}), \"asyncButton\":({\"restart\":({\"action\":\"Save and Restart\", \"success\":\"Restarted\", \"waiting\":\"Restarting…\"})}), \"dialog\":({\"confirmExecution\":({\"title\":\"Are you sure?\", \"andOthers\":\"{count, plural,\\n=0 {}\\n=1 { and <b>one other </b>}\\nother { and <b>{count} other </b>}\\n}\", \"protip\":\"Tip: Hold the {alternateLabel} key while clicking action to bypass this confirmation\", \"stop\":({\"message\":\"Are you sure you want to continue stop the {type} {names}?\"}), \"pause\":({\"message\":\"Are you sure you want to continue pause the {type} {names}?\"})})}), \"harvester\":({\"branding\":({\"logos\":({\"tip\":\"Upload a logo to replace the Harvester logo in the top-level navigation header. Image height should be 21 pixels with a max width of 200 pixels. Max file size is 20KB. Accepted formats: JPEG, PNG, SVG.\"}), \"favicon\":({\"tip\":\"Upload an icon to replace the Harvester favicon in the browser tab. Max file size is 20KB\"})}), \"productLabel\":\"Harvester\", \"modal\":({\"backup\":({\"success\":\"Backup { backUpName } has been initiated.\", \"addBackup\":\"Add Backup\"}), \"quota\":({\"editVMQuota\":\"Edit VM Quota\", \"editQuota\":\"Edit Quota\", \"bannerMessage\":\"Set to empty string or 0 to remove total snapshot size quota.\"}), \"restore\":({\"success\":\"Restore { name } created successfully.\", \"title\":\"Backup and Restore\", \"selectBackup\":\"Select Backup\", \"message\":({\"backup\":\"Please select the backup that needs to be restored.\"})}), \"createTemplate\":({\"title\":\"Generate Template\", \"name\":\"Name\", \"description\":\"Description\", \"message\":({\"tip\":\"Please enter a template name!\", \"success\":\"Template { templateName } created successfully.\", \"failed\":\"Failed generated template!\"})}), \"schedule\":({\"title\":\"Create Schedule\", \"message\":({\"tip\":\"Please enter a schedule name!\", \"success\":\"Schedule { name } created successfully.\", \"failed\":\"Failed create schedule!\"})}), \"cloneVM\":({\"title\":\"Clone Virtual Machine\", \"name\":\"New Virtual Machine Name\", \"type\":\"Clone volume data\", \"action\":({\"create\":\"Create\", \"clone\":\"Clone\"}), \"message\":({\"tip\":\"Please enter a virtual machine name!\", \"success\":\"Virtual machine { name } cloned successfully.\", \"failed\":\"Failed clone virtual machine!\"})}), \"exportImage\":({\"title\":\"Export to Image\", \"name\":\"Name\", \"namespace\":\"Namespace\", \"message\":({\"success\":\"Image { name } created successfully.\"})}), \"migration\":({\"failedMessage\":\"Latest migration failed!\", \"title\":\"Migration\", \"fields\":({\"nodeName\":({\"label\":\"Target Node\", \"placeholder\":\"Choose Target Node\"})})}), \"ejectCDROM\":({\"title\":\"Eject CD-ROM\", \"warnTip\":\"Eject volume will restart the virtual machine.\", \"operationTip\":\"Select the volume you want to delete:\", \"delete\":\"Delete\"}), \"bundle\":({\"title\":\"Generate a Support Bundle\", \"url\":\"Issue URL\", \"description\":\"Description\", \"requiredDesc\":\"Description is required!\", \"titleDescription\":\"Collect system-related logs in Harvester to help with troubleshooting and support.\"}), \"hotplug\":({\"success\":\"Volume { diskName } is mounted to the virtual machine { vm }.\", \"title\":\"Add Volume\"}), \"hotunplug\":({\"success\":\"Volume { name } is detached successfully.\"}), \"snapshot\":({\"title\":\"Take Snapshot\", \"name\":\"Name\", \"message\":({\"success\":\"Take Snapshot { name } successfully.\"})}), \"volumeClone\":({\"title\":\"Clone Volume\", \"name\":\"Name\", \"message\":({\"success\":\"New Volume { name } cloned successfully.\"})}), \"restoreSnapshot\":({\"title\":\"Restore Snapshot\", \"name\":\"New Volume Name\", \"success\":\"New Volume { name } restored successfully.\"}), \"vmSnapshot\":({\"title\":\"Take Virtual Machine Snapshot\", \"name\":\"Name\", \"success\":\"Take virtual machine Snapshot { name } successfully.\"}), \"restart\":({\"title\":\"Restart Virtual Machine\", \"tip\":\"Restart the virtual machine for configuration changes to take effect.\", \"cancel\":\"Save\"})}), \"notification\":({\"title\":({\"succeed\":\"Succeed\", \"info\":\"Info\", \"warning\":\"Warning\", \"error\":\"Error\"})}), \"action\":({\"createVM\":\"Create Virtual Machine\", \"start\":\"Start\", \"restart\":\"Restart\", \"softreboot\":\"Soft Reboot\", \"stop\":\"Stop\", \"pause\":\"Pause\", \"deepClone\":\"Clone\", \"shallowClone\":\"Clone Template\", \"unpause\":\"Unpause\", \"encryptImage\":\"Encrypt Image\", \"decryptImage\":\"Decrypt Image\", \"ejectCDROM\":\"Eject CD-ROM\", \"editVMQuota\":\"Edit Virtual Machine Quota\", \"launchFormTemplate\":\"Launch instance from template\", \"modifyTemplate\":\"Modify template (Create new version)\", \"setDefaultVersion\":\"Set default version\", \"addTemplateVersion\":\"Add template version\", \"backup\":\"Take Backup\", \"createSchedule\":\"Create Schedule\", \"restore\":\"Restore\", \"restoreNewVM\":\"Restore New\", \"resumeSchedule\":\"Resume\", \"suspendSchedule\":\"Suspend\", \"restoreExistingVM\":\"Replace Existing\", \"migrate\":\"Migrate\", \"abortMigration\":\"Abort Migration\", \"createTemplate\":\"Generate Template\", \"enableMaintenance\":\"Enable Maintenance Mode\", \"disableMaintenance\":\"Disable Maintenance Mode\", \"enableCPUManager\":\"Enable CPU Manager\", \"disableCPUManager\":\"Disable CPU Manager\", \"cordon\":\"Cordon\", \"uncordon\":\"Uncordon\", \"addHotplug\":\"Add Volume\", \"exportImage\":\"Export Image\", \"viewlogs\":\"View Logs\", \"cancelExpand\":\"Cancel Expand\", \"snapshot\":\"Take Snapshot\", \"pvcClone\":\"Clone Volume\", \"vmSnapshot\":\"Take Virtual Machine Snapshot\", \"shutdown\":\"Shut Down\", \"powerOn\":\"Power On\", \"reboot\":\"Reboot\", \"forceStop\":\"Force Stop\"}), \"formatters\":({\"hardwareResourceGauge\":({\"allocated\":\"Allocated\", \"consumption\":\"{useful} of {total} {units} {suffix}\", \"cores\":\"CPU\", \"pods\":\"Pods\", \"ram\":\"Memory\", \"used\":\"Used\", \"reserved\":\"Reserved\", \"units\":({\"cores\":\"{count, plural,\\n=1 {core}\\nother {cores}}\"})})}), \"tableHeaders\":({\"imageEncryption\":\"Encryption\", \"size\":\"Size\", \"virtualSize\":\"Virtual Size\", \"progress\":\"Progress\", \"message\":\"Message\", \"phase\":\"Phase\", \"attachedVM\":\"Attached Virtual Machine\", \"cpuManager\":\"CPU Manager\", \"fingerprint\":\"Fingerprint\", \"value\":\"Value\", \"actions\":\"Actions\", \"readyToUse\":\"Ready To Use\", \"backupTarget\":\"Backup Target\", \"targetVm\":\"Target Virtual Machine\", \"cronExpression\":\"Cron Expression\", \"retain\":\"Retain\", \"scheduleType\":\"Type\", \"maxFailure\":\"Max Failure\", \"sourceVm\":\"Source Virtual Machine\", \"vmSchedule\":\"Virtual Machine Schedule\", \"hostIp\":\"Host IP\", \"vm\":({\"ipAddress\":\"IP Address\", \"node\":\"Node\", \"defaultVersion\":\"Default Version\"}), \"network\":({\"type\":\"Type\", \"vlan\":\"VLAN ID\"}), \"snapshotTargetVolume\":\"Original Volume\", \"volumeSnapshotCounts\":\"Snapshot Counts\", \"networkState\":\"Network State\", \"totalSnapshotQuota\":\"Total Snapshot Quota\", \"storageClass\":\"Storage Class\", \"restore\":\"Restore\"}), \"tab\":({\"volume\":\"Volumes\", \"network\":\"Networks\", \"advanced\":\"Advanced Options\", \"accessCredentials\":\"Access Credentials\", \"pciDevices\":\"PCI Devices\", \"vGpuDevices\":\"vGPU Devices\", \"usbDevices\":\"USB Devices\", \"vmScheduling\":\"Virtual Machine Scheduling\", \"quotas\":\"Quotas\", \"snapshots\":\"Snapshots\", \"instanceLabel\":\"Instance Labels\"}), \"fields\":({\"version\":\"Version\", \"name\":\"Name\", \"type\":\"Type\", \"image\":\"Image\", \"size\":\"Size\", \"volume\":\"Volume\", \"network\":\"Network\", \"model\":\"Model\", \"macAddress\":\"MAC address\", \"port\":\"Port\", \"protocol\":\"Protocol\", \"remove\":\"Remove\", \"PhysicalNic\":\"Physical NIC\", \"cpu\":\"CPU\", \"memory\":\"Memory\", \"virtualName\":\"Virtual machine name\", \"promiscuous\":\"Promiscuous\", \"ipv4Address\":\"IPv4 address\", \"filterLabels\":\"Filter labels\", \"filterSchedule\":\"Filter schedule\", \"storageClass\":\"Storage class\", \"dockerImage\":\"Docker image\"}), \"pci\":({\"available\":\"Available Devices\", \"compatibleNodes\":\"Compatible Nodes\", \"impossibleSelection\":\"There are no hosts with all of the selected devices.\", \"howToUseDevice\":\"Use the table below to enable PCI passthrough on each device you want to use in this virtual machine.\", \"deviceInTheSameHost\":\"You can only select devices on the same host.\", \"oldFormatDevices\":({\"help\":\"<p>\\n The following PCI devices are using the old naming convention and need to be updated in the YAML file:\\n</p>\\n<ul>\\n {oldFormatDevicesHTML}\\n</ul>\\n<p>\\n Please use the following instructions to update the virtual machine:\\n</p>\\n<ol>\\n <li>Stop the virtual machine, edit the virtual machine YAML, and remove the <Code>hostDevices</Code> section, and save virtual machine the changes to the YAML file.</li>\\n <li>Edit the virtual machine, and add the already enabled PCI Device from the list of available PCIDevices, and save and start VM.</li>\\n</ol>\"}), \"showCompatibility\":\"Show device compatibility matrix\", \"hideCompatibility\":\"Hide device compatibility matrix\", \"claimError\":\"Error enabling passthrough on {name}\", \"unclaimError\":\"Error disabling passthrough on {name}\", \"cantUnclaim\":\"You cannot disable passthrough on a device claimed by another user.\", \"enableGroup\":\"Enable Group\", \"disableGroup\":\"Disable Group\", \"labelRequired\":\"This rule should not be manually altered: it ensures that the PCI devices selected for this virtual machine are available on the virtual machine's host.\", \"goSetting\":({\"prefix\":\"The pcidevices-controller add-on is not enabled, click\", \"middle\":\"here\", \"suffix\":\"to enable the add-on to successfully manage your PCI devices.\"}), \"noPCIPermission\":\"Please contact your system administrator to enable the PCI devices first.\", \"enablePassthroughWarning\":\"Please be careful not to use host-owned PCI devices (e.g., management and VLAN NICs). Incorrect device allocation may cause damage to your cluster, including node failure.\"}), \"devices\":({\"matrixHostName\":\"Host Name\", \"matrixDeviceClaimName\":\"Device Claim Name\"}), \"generic\":({\"close\":\"Close\", \"open\":\"Open\", \"showMore\":\"Show More\", \"hideMore\":\"Hide More\", \"memory\":\"Memory\", \"cpu\":\"CPU\", \"storage\":\"Storage\", \"noFileChosen\":\"No file chosen\", \"noSchema\":\"Can not find the custom resource definition: {schema}.\"}), \"validation\":({\"custom\":({\"tooLongName\":\"\\\"Name\\\" cannot be more than {max} characters.\"}), \"generic\":({\"hasDelete\":\"{type} \\\"{name}\\\" has been deleted.\", \"maxLength\":\"\\\"{key}\\\" cannot be more than {max} characters\", \"tabError\":\"{prefix}: {message}\", \"maximumSize\":\"Exceed maximum size {max}!\", \"regex\":\"Invalid {lowerType} \\\"{name}\\\": {upperType} must match the regex \\\"{regex}\\\"\"}), \"vm\":({\"name\":\"name is required!\", \"memory\":\"\\\"Memory\\\" is required!\", \"duplicatedName\":\"duplicate {type} name: \\\"{name}\\\"\", \"network\":({\"macFormat\":\"Invalid MAC address format.\", \"upperType\":\"Network name\", \"lowerType\":\"network name\"}), \"volume\":({\"upperType\":\"Volume name\", \"lowerType\":\"volume name\", \"needImageOrExisting\":\"At least an image volume or an existing root-disk volume is required!\"})}), \"image\":({\"ruleTip\":\"The URL you have entered ends in an extension that we do not support. We only accept image files that end in .img, .iso, .qcow, .qcow2, .raw.\", \"ruleFileTip\":\"The file you have chosen ends in an extension that we do not support. We only accept image files that end in .img, .iso, .qcow, .qcow2, .raw.\"}), \"hash\":({\"sha512\":\"Invalid SHA512 checksum.\"})}), \"dashboard\":({\"label\":\"Dashboard\", \"header\":\"Harvester Cluster: {cluster}\", \"hardwareResourceGauge\":({\"cpu\":\"CPU\", \"memory\":\"Memory\", \"storage\":\"Storage\", \"allocated\":\"Allocated\"}), \"sections\":({\"events\":({\"label\":\"Events\"}), \"vmMetrics\":({\"label\":\"Virtual Machine Metrics\"})}), \"version\":\"Version\"}), \"host\":({\"console\":\"Console\", \"label\":\"Hosts\", \"inconsistentIP\":\"Host IP is inconsistent, current IP: { currentIP }, initial IP: { initIP }\", \"noConsoleUrl\":\"Console URL not specified\", \"promote\":({\"none\":\" \", \"running\":\"Promoting\", \"failed\":\"Promote failed\", \"unknown\":\"Promote halted\", \"promoteRestart\":\"Restarting\", \"promoteSucceed\":\"Promote completed\"}), \"tabs\":({\"network\":\"Network\", \"overview\":\"Overview\", \"basics\":\"Basics\", \"instance\":\"Virtual Machines\", \"monitor\":\"Monitor Data\", \"storage\":\"Storage\", \"labels\":\"Labels\", \"ksmtuned\":\"Ksmtuned\", \"seeder\":\"Out-of-band Access\"}), \"detail\":({\"kvm\":({\"disableMessage\":\"Hardware-based virtualization is disabled or not supported. Hardware-based virtualization must be enabled before creating any virtual machines.\"}), \"title\":({\"network\":\"Network Configuration\"}), \"hostIP\":\"Host IP\", \"role\":\"Role\", \"os\":\"Operating System\", \"create\":\"Creation Time\", \"update\":\"Last Update Time\", \"customName\":\"Custom Name\", \"consoleUrl\":\"Console URL\", \"more\":\"More Information\", \"uuid\":\"UUID\", \"containerRuntime\":\"Container Runtime\", \"kernel\":\"Kernel\", \"management\":\"Management Node\", \"compute\":\"Compute Node\", \"storage\":\"Storage\", \"nic\":\"Physical NIC\", \"notRecommended\":\"Not recommended\", \"networkType\":\"Type\", \"manufacturer\":\"Manufacturer\", \"serialNumber\":\"Serial Number\", \"model\":\"Model\", \"etcd\":\"Witness Node\", \"cpuManager\":\"CPU Manager\"}), \"enableMaintenance\":({\"title\":\"Enable Maintenance Mode\", \"protip\":\"The operation will migrate all virtual machines on this node to other nodes.\", \"shutDownVMs\":\"Check <b>Force</b> option to shutdown virtual machines which cannot be migrated in live mode.\", \"force\":\"Force\"}), \"cordon\":({\"title\":\"Cordon\", \"protip\":\"This operation will mark the node { node } as unschedulable.\"}), \"ksmtuned\":({\"run\":\"Run Strategy\", \"configure\":\"Configure\", \"mode\":\"Mode\", \"modeLink\":\"Mode <a href=\\\"{url}\\\" target=\\\"_blank\\\"><i class=\\\"icon icon-info\\\" /></a>\", \"thresCoef\":\"Threshold Coefficient\", \"enableMergeNodes\":\"Enable merging across nodes\", \"enable\":\"Enable\", \"disable\":\"Disable\", \"ksmStatus\":\"KSM Status\", \"modeOption\":({\"standard\":\"Standard\", \"high\":\"High-performance\", \"customized\":\"Customized\"}), \"parameters\":({\"title\":\"Ksmtuned Parameters\", \"boost\":\"Boost\", \"decay\":\"Decay\", \"sleepMsec\":\"Sleep Time (Millisecond)\", \"minPages\":\"Minimum Pages\", \"maxPages\":\"Maximum Pages\", \"description\":({\"boost\":\"The number of scanned pages is incremented each time if the available memory is less than the threshold coefficient.\", \"decay\":\"The number of scanned pages is decremented each time if the available memory is greater than the threshold coefficient.\", \"sleepMsec\":\"The interval between two scans (the minimum value is 10ms), which is calculated by the formula (Sleep Milliseconds * 16 * 1024 * 1024/Total Memory).\", \"minPages\":\"The minimum number of pages per scan, also the configuration for the first run.\", \"maxPages\":\"Maximum number of pages per scan.\"})}), \"statistics\":({\"title\":\"Statistics <a href=\\\"https://www.kernel.org/doc/html/latest/admin-guide/mm/ksm.html#ksm-daemon-sysfs-interface\\\" target=\\\"_blank\\\"><i class=\\\"icon icon-info\\\" /></a>\", \"sharing\":\"Sharing\", \"shared\":\"Shared\", \"unshared\":\"Unshared\", \"volatile\":\"Volatile\", \"fullScans\":\"Full Scans\", \"stableNodeChains\":\"Stable Node Chains\", \"stableNodeDups\":\"Stable Node Dups\"})}), \"disk\":({\"add\":\"Add Disk\", \"path\":({\"label\":\"Path\"}), \"storageReserved\":({\"label\":\"Storage Reserved\"}), \"allowScheduling\":({\"label\":\"Scheduling\", \"tooltip\":\"Disk {name} ({path}) scheduling is disabled\"}), \"evictionRequested\":({\"label\":\"Eviction Requested\"}), \"forceFormatted\":({\"label\":\"Force Formatted\", \"toolTip\":\"Force formatted will clean up disk data, make sure you backup all available data to prevent data loss.\", \"yes\":\"Yes (Ext4 File System)\"}), \"description\":({\"label\":\"Description\"}), \"lastFormattedAt\":({\"info\":\"The disk has already been force-formatted.\"}), \"notification\":({\"success\":\"Update host \\\"{name}\\\" storage configurations successfully.\"}), \"error\":\"Host has unready or unschedulable disks.\", \"fileSystem\":({\"info\":\"Current file system is {system}, You can format it manually.\", \"formatting\":\"Disk is formatting, please wait.\"}), \"tags\":({\"label\":\"Disk Tags\", \"addLabel\":\"Add Disk Tag\"}), \"conditions\":\"Conditions\", \"storageAvailable\":({\"label\":\"Storage Available\"}), \"storageScheduled\":({\"label\":\"Storage Scheduled\"}), \"storageMaximum\":({\"label\":\"Storage Maximum\"}), \"provisioner\":\"Provisioner\", \"lvmVolumeGroup\":({\"label\":\"Volume Group\", \"create\":\"Create New...\"}), \"storage\":({\"longhorn\":({\"LonghornV1\":({\"label\":\"Longhorn V1 (CSI)\"}), \"LonghornV2\":({\"label\":\"Longhorn V2 (CSI)\"})}), \"lvm\":({\"label\":\"LVM\"})})}), \"tags\":({\"label\":\"Host Tags\", \"addLabel\":\"Add Host Tag\"}), \"powerAction\":({\"message\":({\"success\":\"Perform host { name } { operation } successfully.\"})}), \"ntp\":({\"label\":\"NTP Server Addresses\", \"tips\":\"You can configure multiple IPv4 addresses or host addresses.\", \"placeholder\":\"e.g. IPv4\", \"ntpSyncStatus\":({\"isDisabled\":\"NTP is disabled. Please check the NTP service is active.\", \"isUnsynced\":\"NTP is not synchronized with the NTP server {current}.\"})})}), \"virtualMachine\":({\"label\":\"Virtual Machines\", \"osType\":\"OS Type\", \"instance\":({\"singleInstance\":null, \"multipleInstance\":null, \"single\":({\"label\":\"Single Instance\", \"nameLabel\":\"Name\", \"host\":({\"label\":\"Hostname\", \"placeholder\":\"Default to the virtual machine name.\"})}), \"multiple\":({\"label\":\"Multiple Instance\", \"nameNsDescription\":\"Name prefix for each instance\", \"count\":\"Count\", \"countTip\":\"Count should be between 1 and 10\", \"nameLabel\":\"Name Prefix\", \"host\":({\"label\":\"Host Prefix Name\", \"placeholder\":\"Default to the virtual machine name.\"})})}), \"useTemplate\":({\"label\":\"Use the virtual machine template:\", \"template\":({\"label\":\"Template\"}), \"version\":({\"label\":\"Version\"})}), \"console\":({\"novnc\":\"Open in WebVNC\", \"serial\":\"Open in Serial Console\"}), \"promptRemove\":({\"title\":\"Select the volume you want to delete:\", \"deleteAll\":\"Delete All\", \"tips\":\"Warn: The snapshots of the virtual machine will be deleted with virtual machine and the snapshots of volume will be deleted with volume.\"}), \"unplug\":({\"title\":\"Are you sure that you want to detach volume {name} ?\", \"actionLabel\":\"Detach\", \"detachVolume\":\"Detach Volume\"}), \"restartTip\":\"{restart, select,\\n true {Restart}\\n other {Start}\\n} the virtual machine now to take effect of the configuration changes.\", \"runStrategy\":\"Run Strategy\", \"maintenanceStrategy\":({\"label\":\"Maintenance Strategy\", \"options\":({\"Migrate\":\"Migrate\", \"ShutdownAndRestartAfterEnable\":\"Shutdown and Restart After Enable\", \"ShutdownAndRestartAfterDisable\":\"Shutdown and Restart After Disable\", \"Shutdown\":\"Shutdown\"})}), \"cpuPinning\":({\"label\":\"Enable CPU Pinning\", \"tooltip\":\"Enable CPU Pinning brings better performance and reduce latency for the virtual machine\", \"restartVMMessage\":\"Changing the CPU Pinning setting requires a virtual machine reboot for the change to take effect\", \"migrationMessage\":\"This virtual machine can only be migrated to a target node that has CPU Manager enabled, as CPU Pinning is configured.\"}), \"restartNow\":\"{restart, select,\\n true {Restart}\\n other {Start}\\n} Now\", \"createSSHKey\":\"Create a New...\", \"installAgent\":\"Install guest agent\", \"enableUsb\":\"Enable USB Tablet\", \"advancedOptions\":({\"tpm\":\"Enable TPM\", \"tpmPersistentState\":\"TPM Persistent State\", \"cpuManager\":({\"prefix\":\"You must enable CPU Manager for at least one node in\", \"middle\":\"host page\", \"suffix\":\"to enable CPU Pinning for VM\"}), \"efiEnabled\":\"Booting in EFI mode\", \"efiPersistentState\":\"EFI Persistent State\", \"secureBoot\":\"Secure Boot\"}), \"usbTip\":\"Provides an absolute pointer device which often helps with getting a consistent mouse cursor position in VNC.\", \"sshTitle\":\"Add Public SSH Key\", \"imageTip\":\"An external URL to the .iso, .img, .qcow2 or .raw that the virtual machine should be created from.\", \"volume\":({\"dragTip\":\"Drag and drop volumes, or use the volume's arrows, to change the boot order.\", \"volumeTip\":\"The virtual machine only contains a CD-ROM volume. You may want to add additional disk volumes.\", \"macTip\":\"MAC address as seen inside the guest system.\", \"volumeUpdate\":\"Set volume { name } successfully\", \"type\":\"Type\", \"size\":\"Size\", \"edit\":\"Edit\", \"bus\":\"Bus\", \"readyToUse\":\"Ready To Use\", \"bootOrder\":\"Boot Order\", \"volume\":\"Volume\", \"dockerImage\":\"Docker Image\", \"addVolume\":\"Add Volume\", \"addExistingVolume\":\"Add Existing Volume\", \"addVmImage\":\"Add a Virtual Machine Image\", \"addContainer\":\"Add Container\", \"setFirst\":\"Set as root volume\", \"saveVolume\":\"Update Volume\", \"encryption\":\"Encryption\", \"vmImageVolumeTip\":\"Disk size ({diskSize}) should greater than selected image virtual size ({imageVirtualSize})\", \"lockTooltip\":({\"all\":\"All volumes are encrypted.\", \"partial\":\"Some volumes are encrypted.\"}), \"title\":({\"vmImage\":\"Image Volume\", \"existingVolume\":\"Existing Volume\", \"volume\":\"Volume\", \"container\":\"Container\"}), \"unmount\":({\"title\":\"Are you sure?\", \"message\":\"Are you sure you want to unmount this volume?\"})}), \"network\":({\"title\":\"Network\", \"addNetwork\":\"Add Network\", \"addPort\":\"Add Port\"}), \"cloudConfig\":({\"title\":\"Cloud Configuration\", \"createTemplateTitle\":\"Create {name}.\", \"createNew\":\"Create new...\", \"cloudInit\":({\"label\":\"Cloud Init\", \"placeholder\":\"Select a template\"}), \"user\":({\"label\":\"User Data Template\", \"title\":\"User Data:\", \"tip\":\"You can specify user data to configure an instance or run a configuration script during launch. If you launch more than one instance at a time, the user data is available to all the instances in that reservation. <a href='https://cloudinit.readthedocs.io/en/latest/topics/examples.html' target='_blank'>Learn more</a>\"}), \"network\":({\"label\":\"Network Data Template\", \"title\":\"Network Data:\", \"tip\":\"The network-data configuration allows you to customize the instance’s networking interfaces by assigning subnet configuration, virtual device creation (bonds, bridges, VLANs) routes and DNS configuration. <a href='https://cloudinit.readthedocs.io/en/latest/reference/network-config-format-v1.html' target='_blank'>Learn more</a>\"})}), \"scheduling\":({\"affinity\":({\"anyNode\":\"Run virtual machine on any available node\", \"schedulingRules\":\"Run virtual machine on node(s) matching scheduling rules\", \"specificNode\":\"Run virtual machine on specific node - (Live migration is not supported)\"}), \"networkNotSupport\":\"Network not support schedule\"}), \"accessCredentials\":({\"resetPwd\":({\"label\":\"Add Basic Auth\"}), \"injectSSH\":({\"label\":\"Add SSH Key\", \"users\":\"Select Users\", \"addUser\":\"Add User\"}), \"tips\":\"qemu-guest-agent must be installed to enable the accessing of credentials. The virtual machine needs to be restarted after credentials added. You need to be in the virtual machine to edit your password or remove an SSH-Key after deleting the credentials.\", \"userTips\":\"The user to be added must already exist; otherwise, the credentials will not take effect.\", \"duplicatedUser\":\"User already exists.\", \"invalidUser\":\"Invalid Username.\"}), \"input\":({\"name\":\"Name\", \"memory\":\"Memory\", \"image\":\"Image\", \"sshKey\":\"SSHKey\", \"sshKeyValue\":\"SSH-Key\", \"MachineType\":\"Machine Type\", \"username\":\"Username\", \"password\":\"Password\", \"reservedMemory\":\"Reserved Memory\"}), \"machineTypeTip\":\"Specify a processor architecture to emulate. To see a list of supported architectures, run: qemu-system-x86_64 -cpu ?\", \"detail\":({\"tabs\":({\"overview\":\"Overview\", \"details\":\"Details\", \"environment\":\"Environment\", \"events\":\"Events\", \"migration\":\"Migration\", \"console\":\"Console\", \"networkInterfaces\":\"Network Interfaces\", \"disks\":\"Disks\", \"networks\":\"Networks\", \"basics\":\"Basics\", \"configurations\":\"Configurations\", \"inventory\":\"Inventory\", \"hostBasic\":\"Basic Attributes\", \"instance\":\"Virtual Machines\", \"monitor\":\"Monitor Data\", \"keypairs\":\"SSH Keys\", \"cloudConfig\":\"Cloud Configuration\", \"metrics\":\"Virtual Machine Metrics\"}), \"details\":({\"title\":({\"vmDetails\":\"Virtual Machine Details\", \"requirements\":\"Scheduling and resources requirements\", \"services\":\"Services\", \"users\":\"Logged in users\"}), \"name\":\"Name\", \"totalSnapshotQuota\":\"Total Snapshot Quota\", \"namespace\":\"Namespace\", \"created\":\"Created\", \"hostname\":\"Hostname\", \"node\":\"Node\", \"ipAddress\":\"IP Address\", \"status\":\"Status\", \"pod\":\"Pod\", \"labels\":\"Labels\", \"bootOrder\":\"Boot Order\", \"annotations\":\"Annotations\", \"CDROMs\":\"CD-ROMs\", \"description\":\"Description\", \"operatingSystem\":\"Operating System\", \"template\":\"Template\", \"kernelRelease\":\"Kernel Release\", \"owner\":\"Owner\", \"workloadProfile\":\"Workload Profile\", \"nodeSelector\":\"Node Selector\", \"flavor\":\"Flavor\", \"tolerations\":\"Tolerations\", \"dedicatedResources\":\"Dedicated Resources\", \"down\":\"Virtual machine not running\", \"affinityRules\":\"Affinity Rules\", \"sourceNode\":\"Source Node\", \"targetNode\":\"Target Node\", \"started\":\"Started\", \"ended\":\"Ended\"}), \"notAvailable\":\"Not available\", \"GuestAgentNotInstalled\":\"Guest agent required\", \"noOwner\":\"No Owner\", \"events\":({\"from\":\"Generated from\", \"down\":\"No events in the past hour\"}), \"console\":({\"down\":\"This virtual machine is down. Please start it to access its console.\", \"shortcutKeys\":\"Shortcut Keys\", \"customShortcutKeys\":\"Custom Shortcut Keys\", \"management\":\"Management Shortcut Keys\", \"record\":({\"start\":\"Record\", \"recording\":\"Recording\", \"stop\":\"Stop Recording\", \"tips\":\"Press the record button to capture your keyboard inputs.\", \"send\":\"Send\", \"preferredKeys\":\"Preferred Custom Shortcut Keys\"})})}), \"terminationGracePeriodSeconds\":({\"label\":\"Termination Grace Period\"}), \"affinity\":({\"addLabel\":\"Add Workload Selector\", \"topologyKey\":({\"placeholder\":\"topology.kubernetes.io/zone\"}), \"thisPodNamespace\":\"This virtual machine's namespace\", \"matchExpressions\":({\"inNamespaces\":\"Workloads in these namespaces\"}), \"namespaces\":({\"label\":\"Namespaces\"})})}), \"volume\":({\"label\":\"Volumes\", \"tabs\":({\"basics\":\"Basics\", \"snapshots\":\"Snapshots\", \"datasource\":\"Data Source\", \"details\":\"Details\"}), \"size\":\"Size\", \"source\":\"Source\", \"kind\":\"Kind\", \"sourceOptions\":({\"new\":\"New\", \"vmImage\":\"Virtual Machine Image\"}), \"image\":\"Image\", \"frontend\":\"Frontend\", \"blockdev\":\"Block Device\", \"attachedNode\":\"Attached Node\", \"endpoint\":\"Endpoint\", \"diskTags\":\"Disk Tags\", \"nodeTags\":\"Node Tags\", \"lastBackup\":\"Last Backup\", \"lastBackupAt\":\"Last Backup At\", \"replicasNumber\":\"Replicas Number\", \"promptRemove\":({\"tips\":\"Warn: The volume's snapshots will be deleted with this volume.\"}), \"externalLink\":({\"tips\":\"Check volume details\"}), \"rebuildingMessage\":\"Rebuilding: {percentage}%\", \"longhorn\":({\"disableResize\":\"Longhorn V2 volumes cannot be resized.\"})}), \"image\":({\"label\":\"Images\", \"tabs\":({\"basics\":\"Basics\"}), \"url\":\"URL\", \"size\":\"Size\", \"isEncryption\":\"Encryption\", \"encryptionSecret\":\"Encryption Secret\", \"virtualSize\":\"Virtual Size\", \"urlTip\":\"Supports the <code>raw</code> and <code>qcow2</code> image formats which are supported by <a href=\\\"https://www.qemu.org/docs/master/system/images.html#disk-image-file-formats\\\" target=\\\"_blank\\\">qemu</a>. Bootable ISO images can also be used and are treated like <code>raw</code> images.\", \"fileName\":\"File Name\", \"uploadFile\":\"Upload File\", \"source\":\"Source Type\", \"sourceType\":({\"download\":\"URL\", \"upload\":\"File\", \"clone\":\"Clone\", \"encrypt\":\"Encrypt\", \"decrypt\":\"Decrypt\"}), \"sourceImage\":\"Source Image\", \"cryptoOperation\":\"Crypto Operation\", \"warning\":({\"uploading\":\"{count, plural,\\n=1 {1 image is uploading, please do not refresh or close the page.}\\nother {{count} images are uploading, please do not refresh or close the page.}\\n}\"}), \"checksum\":\"Checksum\", \"checksumTip\":\"Validate the image using the SHA512 checksum, if specified.\"}), \"vmTemplate\":({\"label\":\"Templates\", \"tabs\":({\"basics\":\"Basics\"}), \"nameNsDescription\":({\"name\":\"Template Name\"}), \"tips\":({\"notExistImage\":({\"title\":\"Image {name} does not exist!\", \"message\":\"Please select a new image.\"}), \"notExistNode\":({\"title\":\"Node {name} does not exist!\", \"message\":\"Please select a new node.\"})})}), \"upgradePage\":({\"upgradeApp\":\"Upgrade Software\", \"upgrade\":\"Upgrade\", \"upgradeTip\":\"Please select the version you want to upgrade to\", \"currentVersion\":\"CURRENT VERSION\", \"versionLabel\":\"AVAILABLE COMPATIBLE VERSIONS\", \"enableLogging\":\"Enable Logging\", \"skipSingleReplicaDetachedVol\":\"Skip checking single-replica detached volumes\", \"upgradeNode\":\"Upgrading Node\", \"upgradeSysService\":\"Upgrading System Service\", \"upgradeImage\":\"Download Upgrade Image\", \"osUpgrade\":\"OS Upgrade\", \"uploadNew\":\"Upload New Image\", \"selectExisting\":\"Select Existing Image\", \"createRepository\":\"Creating Upgrade Repository\", \"succeeded\":\"Succeeded\", \"releaseTip\":\"Please read the upgrade documentation carefully. You can view details on the <a href=\\\"{url}\\\" target=\\\"_blank\\\">Harvester Release Notes</a>.\", \"checkReady\":\"I have read and understood the upgrade instructions related to this Harvester version.\", \"pending\":\"Pending\", \"repoInfo\":({\"upgradeStatus\":\"Upgrade Status\", \"os\":\"OS\", \"kubernetes\":\"Kubernetes\", \"monitoringChart\":\"Monitoring Chart\", \"harvesterChart\":\"Harvester Chart\", \"success\":\"Success\", \"fail\":\"Fail\", \"ongoing\":\"On-going\", \"downloadLog\":\"Download Log\", \"logStatus\":\"Log Download Status\"}), \"dismissMessage\":\"Dismiss it\", \"upgradeInfo\":({\"warning\":\"WARNING\", \"doc\":\"Read the <a href=\\\"{url}\\\" target=\\\"_blank\\\">documentation</a> before starting the upgrade process. Ensure that you complete procedures that are relevant to your environment and the version you are upgrading to.\", \"tip\":\"Unmet system requirements and incorrectly performed procedures may cause complete upgrade failure and other issues that require manual workarounds.\", \"moreNotes\":\"For more details about the release notes, please visit -\"})}), \"schedule\":({\"label\":\"Virtual Machine Schedules\", \"createTitle\":\"Create Schedule\", \"createButtonText\":\"Create Schedule\", \"scheduleType\":\"Virtual Machine Schedule Type\", \"cron\":\"Cron Schedule\", \"detail\":({\"namespace\":\"Namespace\", \"sourceVM\":\"Source Virtual Machine\"}), \"tabs\":({\"basic\":\"Basic\", \"backups\":\"Backups\", \"snapshots\":\"Snapshots\"}), \"message\":({\"noSetting\":({\"suffix\":\"before creating a backup schedule\"})}), \"retain\":({\"label\":\"Retain\", \"count\":\"Count\", \"tooltip\":\"Number of up-to-date VM backups to retain. Maximum to 250, minimum to 2.\"}), \"maxFailure\":({\"label\":\"Max Failure\", \"count\":\"Count\", \"tooltip\":\"Max number of consecutive failed backups that could be tolerated. If reach this threshold, Harvester controller will suspend the schedule job. This value should less than retain count\"}), \"virtualMachine\":({\"title\":\"Virtual Machine Name\", \"placeholder\":\"Select a virtual machine\"}), \"type\":({\"snapshot\":\"Snapshot\", \"backup\":\"Backup\"})}), \"backup\":({\"label\":\"Virtual Machine Backups\", \"createText\":\"Restore Backup\", \"title\":\"Restore Virtual Machine\", \"backupTargetTip\":\"The endpoint used to access the backupstore. NFS and S3 are supported.\", \"message\":({\"noSetting\":({\"prefix\":\"You must configure the backup target\", \"middle\":\"setting\", \"suffix\":\"before creating a new backup.\"}), \"errorTip\":({\"prefix\":\"Backup target value in\", \"middle\":\"setting\", \"suffix\":\"is invalid, error: \"}), \"viewSetting\":({\"prefix\":\"Click\", \"middle\":\"here\", \"suffix\":\"to view the backup configuration.\"}), \"testConnect\":({\"actionLabel\":\"Test connection\", \"waitingLabel\":\"Testing connection...\", \"successLabel\":\"Connection tested\", \"successMessage\":\"Harvester can successfully connect to the endpoint {endpoint}\"})}), \"restore\":({\"backup\":\"Backup\", \"deletePreviousVolumes\":\"Delete Previous Volumes\", \"createNew\":\"Create new\", \"replaceExisting\":\"Replace existing\", \"virtualMachineName\":\"Virtual Machine Name\", \"keepMacAddress\":\"Keep MAC Address\"}), \"matchTarget\":\"The current backup target does not match the existing one.\", \"progress\":({\"details\":\"Volume details\", \"tooltip\":({\"starting\":\"Backup initiating\", \"progress\":\"Backup in progress\", \"complete\":\"Backup completed\"})})}), \"restore\":({\"progress\":({\"details\":\"Volume details\", \"tooltip\":({\"starting\":\"Restore initiating\", \"progress\":\"Restore in progress\", \"complete\":\"Restore completed\"})})}), \"network\":({\"label\":\"Virtual Machine Networks\", \"tabs\":({\"basics\":\"Basics\", \"layer3Network\":\"Route\"}), \"clusterNetwork\":({\"label\":\"Cluster Network\", \"create\":\"Create a new cluster network\", \"toolTip\":\"Define your custom cluster scope network name\", \"createPlaceholder\":\"Input a new cluster network name\", \"selectOrCreatePlaceholder\":\"Select or create a new cluster network\", \"selectPlaceholder\":\"Select a cluster network\"}), \"layer3Network\":({\"mode\":({\"label\":\"Mode\", \"auto\":\"Auto (DHCP)\", \"manual\":\"Manual\"}), \"serverIPAddr\":({\"label\":\"DHCP Server IP\"}), \"gateway\":({\"label\":\"Gateway\", \"placeholder\":\"e.g. 172.16.0.1\"}), \"cidr\":({\"label\":\"CIDR\", \"placeholder\":\"e.g. 172.16.0.1/24\"})})}), \"sshKey\":({\"label\":\"SSH Keys\", \"keypair\":\"SSH Key\", \"tabs\":({\"basics\":\"Basics\"})}), \"setting\":({\"label\":\"Settings\", \"tabs\":({\"advanced\":\"Advanced\", \"ui\":\"UI\"}), \"validation\":({\"physicalNIC\":\"DefaultPhysicalNIC\"}), \"placeholder\":({\"accessKeyId\":\"Specify your access key ID\", \"secretAccessKey\":\"Specify your secret access key\", \"cert\":\"Upload a self-signed SSL certificate\"}), \"vlanChangeTip\":\"The newly modified default network interface only applies to newly added nodes, not existing ones.\", \"defaultPhysicalNIC\":\"Default Network Interface\", \"modifiedMessage\":\"Settings that have been customized from default settings are tagged with 'Modified'.\", \"percentTip\":\"The value in parentheses represents the distribution percentage of the network interface on all hosts. If an interface less than 100% is selected, the user needs to manually specify the network interface on the host where the vlan network configuration fails.\", \"message\":({\"ca\":({\"prefix\":\"Click\", \"middle\":\"here\", \"suffix\":\"to add a custom certificate.\"})}), \"sslCertificates\":({\"publicCertificate\":\"Public Certificate\", \"privateKey\":\"Private Key\", \"ca\":\"CA\"}), \"storageNetwork\":({\"range\":({\"placeholder\":\"e.g. 172.16.0.0/24\", \"label\":\"IP Range\", \"invalid\":\"\\\"Range\\\" is invalid.\"}), \"clusterNetwork\":\"Cluster Network\", \"vlan\":\"VLAN ID\", \"exclude\":({\"label\":\"Exclude\", \"placeholder\":\"e.g. 172.16.0.1/32\", \"invalid\":\"\\\"Exclude list\\\" is invalid.\", \"addIp\":\"Add Exclude IP\"}), \"warning\":\"WARNING: <br/> Any change to storage-network requires shutting down all virtual machines before applying this setting. <br/> Users have to ensure the cluster network is configured and VLAN Configuration will cover all nodes and ensure the network connectivity is working and expected in all nodes.\", \"tip\":\"Specify an IP range in the IPv4 CIDR format. <code>Number of IPs Required = Number of Nodes * 2 + Number of Disks * 2 + Number of Images to Download/Upload </code>. For more information about storage network settings, see the <a href=\\\"{url}\\\" target=\\\"_blank\\\">documentation</a>.\"}), \"vmForceDeletionPolicy\":({\"period\":\"Period\"}), \"ratio\":\"Ratio\", \"autoRotateRKE2Certs\":({\"expiringInHours\":\"Expiring in\"}), \"httpProxy\":({\"warning\":\"WARNING: <br/> If you configure \\\"http-proxy\\\" and \\\"https-proxy\\\", you must also put Harvester node's CIDR into \\\"no-proxy\\\", otherwise the Harvester cluster will be broken.\"}), \"supportBundleImage\":({\"imagePullPolicy\":\"Pull Policy\", \"repo\":\"Repository\", \"tag\":\"Tag\"}), \"csiDriverConfig\":({\"provisioner\":\"Provisioner\", \"volumeSnapshotClassName\":\"Volume Snapshot Class Name\", \"backupVolumeSnapshotClassName\":\"Backup Volume Snapshot Class Name\"}), \"containerdRegistry\":({\"mirrors\":({\"mirrors\":\"Mirrors\", \"registryName\":\"Registry Name\", \"endpoints\":\"Endpoints\", \"rewrite\":({\"rewrite\":\"Rewrite\", \"addRewrite\":\"Add Rewrite\"}), \"addMirror\":\"Add Mirror\"}), \"configs\":({\"configs\":\"Configurations\", \"registryEDQNorIP\":\"Registry FDQN or IP\", \"registryPlaceholder\":\"myregistry.local:5000\", \"username\":\"Username\", \"password\":\"Password\", \"auth\":\"Auth\", \"identityToken\":\"Identity Token\", \"insecureSkipVerify\":\"InsecureSkipVerify\", \"addConfig\":\"Add Configuration\"})}), \"upgrade\":({\"selectExitImage\":\"Please select the OS image to upgrade.\", \"imageUrl\":\"Please input a valid image URL.\", \"chooseFile\":\"Please select to upload an image.\", \"checksum\":\"Checksum\"}), \"harvesterMonitoring\":({\"label\":\"Harvester Monitoring\", \"section\":({\"prometheus\":\"Prometheus\", \"prometheusNodeExporter\":\"Prometheus Node Exporter\", \"grafana\":\"Grafana\", \"alertmanager\":\"Alertmanager\"}), \"tips\":({\"scrape\":\"Interval between consecutive scrapes\", \"evaluation\":\"Interval between consecutive evaluations\", \"retention\":\"How long to retain metrics\", \"retentionSize\":\"Maximum size of metrics\"})}), \"clusterRegistrationUrl\":({\"message\":\"To completely unset the imported Harvester cluster, please also remove it on the Rancher Dashboard UI via the <code> Virtualization Management </code> page.\"}), \"ntpServers\":({\"isNotIPV4\":\"The address you entered is not IPv4 or host. Please enter a valid IPv4 address or a host address.\", \"isDuplicate\":\"There are duplicate NTP server configurations.\"})}), \"cloudTemplate\":({\"label\":\"Cloud Configuration Templates\", \"templateType\":\"Template Type\", \"userData\":\"User Data\", \"networkData\":\"Network Data\"}), \"support\":({\"title\":\"Harvester Support\", \"kubeconfig\":({\"title\":\"Download KubeConfig\", \"titleDescription\":\"Download kubeconfig for debugging.\"}), \"internal\":({\"rancher\":({\"title\":\"Access Embedded Rancher UI\", \"titleDescription\":\"You can only use the embedded Rancher UI for debugging and validation purposes. For more information about how Harvester integrates with Rancher, see the <a target=\\\"_blank\\\" href=\\\"{url}\\\" rel=\\\"noopener noreferrer nofollow\\\">documentation</a>.\"}), \"longhorn\":({\"title\":\"Access Embedded Longhorn UI\", \"titleDescription\":\"We only support to use the embedded Longhorn UI for debugging and validation purpose.\"})}), \"community\":({\"learnMore\":\"Find out more about SUSE Harvester support\", \"pricing\":\"Contact us for pricing\"})}), \"namespace\":({\"label\":\"Namespaces\"}), \"projectNamespace\":({\"label\":\"Projects/Namespaces\"}), \"vip\":({\"namespace\":({\"label\":\"Namespace\"}), \"cidr\":({\"label\":\"CIDR/IP Range\", \"invalid\":\"\\\"CIDR/IP Range\\\" is invalid.\", \"toolTip\":\"We can apply multiple pools or ranges by separating them with commas. For example: 192.168.0.200/30,192.168.0.200/29 or 192.168.0.10-192.168.0.11\"}), \"add\":({\"label\":\"Add IP Pools\"})}), \"sslParameters\":({\"protocols\":({\"label\":\"Protocols\"}), \"ciphers\":({\"label\":\"Ciphers\"})}), \"monitoring\":({\"configuration\":({\"label\":\"Configuration\"}), \"alertmanagerConfig\":({\"label\":\"Alertmanager Configurations\", \"diabledMonitoringTips\":({\"prefix\":\"Enable the\", \"middle\":\"monitoring\", \"suffix\":\"add-on first.\"}), \"diabledAlertingTips\":({\"prefix\":\"Enable\", \"middle\":\"Alertmanager\", \"suffix\":\"for configuration to take effect.\"}), \"disabledAddon\":({\"prefix\":\"The monitoring add-on is disabled, click\", \"middle\":\"here\", \"suffix\":\"to enable it.\"})})}), \"logging\":({\"configuration\":({\"section\":({\"fluentbit\":\"Fluentbit\", \"fluentd\":\"Fluentd\"})}), \"clusterFlow\":({\"label\":\"Cluster Flows\"}), \"clusterOutput\":({\"label\":\"Cluster Outputs\"}), \"flow\":({\"label\":\"Flows\"}), \"output\":({\"label\":\"Outputs\"}), \"diabledTips\":({\"prefix\":\"Enable\", \"middle\":\"logging\", \"suffix\":\"for configuration to take effect.\"})}), \"snapshot\":({\"totalSnapshotSize\":\"Total Snapshot Size\", \"label\":\"Volume Snapshots\", \"targetVolume\":\"Original Volume\", \"size\":\"Size\", \"image\":\"Image\"}), \"vmSnapshot\":({\"label\":\"Virtual Machine Snapshots\", \"createText\":\"Restore Snapshot\", \"snapshot\":\"Snapshot\"}), \"storage\":({\"label\":\"Storage\", \"useDefault\":\"Use the default storage\", \"volumeEncryption\":\"Volume Encryption\", \"secret\":\"Secret\", \"migratable\":({\"label\":\"Migratable\"}), \"numberOfReplicas\":({\"label\":\"Number Of Replicas\"}), \"staleReplicaTimeout\":({\"label\":\"Stale Replica Timeout\"}), \"nodeSelector\":({\"label\":\"Host Selector\"}), \"diskSelector\":({\"label\":\"Disk Selector\"}), \"storageClass\":({\"label\":\"Storage Class\", \"longhorn\":({\"v1\":({\"label\":\"Longhorn V1 (CSI)\"}), \"v2\":({\"label\":\"Longhorn V2 (CSI)\"}), \"versionTooltip\":\"Longhorn V2 is disabled for this node.\"}), \"lvm\":({\"label\":\"LVM\"})}), \"title\":\"Storage Classes\", \"customize\":({\"volumeBindingMode\":({\"later\":\"Bind and provision a persistent volume once a virtual machine using the PersistentVolumeClaim is created\"})}), \"parameters\":({\"numberOfReplicas\":({\"label\":\"Number Of Replicas\"}), \"staleReplicaTimeout\":({\"label\":\"Stale Replica Timeout\"}), \"diskSelector\":({\"label\":\"Disk Selector\", \"no-options\":\"No available tags, please add in the `Host > Storage` page\"}), \"nodeSelector\":({\"label\":\"Node Selector\", \"no-options\":\"No available tags, please add in the `Host > Storage` page\"}), \"migratable\":({\"label\":\"Migratable\"}), \"lvmVolumeGroupType\":({\"label\":\"Volume Group Type\"}), \"lvmVolumeGroup\":({\"label\":\"Volume Group Name\", \"no-options\":\"No available Volume Groups, please add in the `Host > Storage` page\"}), \"node\":({\"label\":\"Node\"})}), \"allowedTopologies\":({\"title\":\"Allowed Topologies\", \"tooltip\":\"Allowed Topologies helps scheduling virtual machines on hosts which match all of below expressions.\"})}), \"vlanConfig\":({\"title\":\"Network Configuration\", \"createNetworkConfig\":\"Create Network Configuration\", \"action\":({\"migrate\":\"Migrate\"}), \"titles\":({\"nodeSelector\":\"Node Selector\", \"uplink\":\"Uplink\", \"bondOptions\":\"Bond Options\", \"attributes\":\"Attributes\", \"host\":\"Selected Hosts\"}), \"scheduling\":({\"affinity\":({\"allNodes\":\"Select all nodes\", \"specificNode\":\"Select specific node\", \"schedulingRules\":\"Select node(s) matching rules\"})}), \"uplink\":({\"nics\":({\"label\":\"NICs\", \"addLabel\":\"Add NIC\", \"placeholder\":\"Select a NIC that is available on all the selected nodes\", \"validate\":({\"available\":\"NIC \\\"{nic}\\\" is not available on the selected nodes\"})}), \"linkAttributes\":({\"mtu\":({\"label\":\"MTU\"})}), \"bondOptions\":({\"mode\":({\"label\":\"Mode\"}), \"miimon\":({\"label\":\"Miimon\", \"tooltip\":\"Miimon specifies the MII link monitoring frequency in milliseconds. <Code>-1</Code> means to keep the original value.\"})})}), \"nodeSelector\":({\"matchingNodes\":({\"matchesSome\":\"{matched, plural,\\n =0 {Matches 0 of {total, number} Nodes.}\\n =1 {Matches 1 of {total, number} Nodes: \\\"{sample}\\\"}\\n other {Matches {matched, number} of {total, number} existing Nodes, including \\\"{sample}\\\"}\\n}\"})})}), \"vlanStatus\":({\"vlanConfig\":({\"label\":\"Network Configuration\"})}), \"clusterNetwork\":({\"title\":\"Cluster Network Configuration\", \"create\":({\"button\":({\"label\":\"Create a Cluster Network\"})}), \"clusterNetwork\":\"There are no network configurations defined.\", \"mgmt\":\"mgmt is a built-in cluster management network and does not support any additional network configurations.\", \"notExist\":\"Cluster Network \\\"{ clusterNetwork }\\\" does not exist\", \"notReady\":\"Cluster Network \\\"{ clusterNetwork }\\\" is not ready\"}), \"addons\":({\"descriptions\":({\"harvester-system/vm-import-controller\":\"vm-import-controller is an add-on to help migrate virtual machine workloads from other source clusters to an existing Harvester cluster.\", \"harvester-system/pcidevices-controller\":\"pcidevices-controller is an add-on to help discover PCI devices for nodes in your cluster and allow users to prepare devices for PCI Passthrough, for use with Harvester virtual machine and guest clusters.\", \"cattle-logging-system/rancher-logging\":\"rancher-logging is an add-on to collect versatile logs, events, and audits from the Harvester cluster and route them to many kinds of servers based on flows.\", \"harvester-system/rancher-vcluster\":\"rancher-vcluster deploys a virtual cluster (vcluster) with Rancher installed.\", \"cattle-monitoring-system/rancher-monitoring\":\"rancher-monitoring is an add-on that collects Harvester cluster and virtual machine metrics and allows you to view the metrics on an embedded dashboard and send alert(s) to remote servers.\", \"vm-import-controller\":\"vm-import-controller is an add-on to help migrate virtual machine workloads from other source clusters to an existing Harvester cluster.\", \"pcidevices-controller\":\"pcidevices-controller is an add-on to help discover PCI devices for nodes in your cluster and allow users to prepare devices for PCI Passthrough, for use with Harvester virtual machines and guest clusters.\", \"nvidia-driver-toolkit\":\"nvidia-driver-toolkit is an add-on to enable vGPU devices and assign them to Harvester virtual machines.\", \"rancher-logging\":\"rancher-logging is an add-on to collect versatile logs, events, and audits from the Harvester cluster and route them to many kinds of servers based on flows.\", \"rancher-monitoring\":\"rancher-monitoring is an add-on to collect Harvester cluster and virtual machine metrics, view them on the embedded dashboard, and send alert(s) to remote servers.\", \"rancher-vcluster\":\"rancher-vcluster deploys a virtual cluster (vcluster) with Rancher installed.\", \"harvester-seeder\":\"harvester-seeder is an add-on that uses IPMI and Redfish to discover hardware information and perform out-of-band operations.\", \"harvester-system/harvester-seeder\":\"harvester-seeder is an add-on that uses IPMI and Redfish to discover hardware information and perform out-of-band operations.\", \"harvester-csi-driver-lvm\":\"harvester-csi-driver-lvm is an add-on allowing users to create PVC through the LVM with local devices.\"}), \"vmImport\":({\"titles\":({\"basic\":\"Basic\", \"pvc\":\"Volume\"})}), \"rancherVcluster\":({\"accessRancher\":\"Access the Rancher Dashboard\", \"hostname\":\"Hostname\", \"rancherVersion\":\"Rancher Version\", \"password\":\"Bootstrap Password\"}), \"switchFailed\":\"{action} {name} failed!\", \"nvidiaDriverToolkit\":({\"titles\":({\"basic\":\"Controller\", \"image\":\"Image\", \"driver\":\"Driver\"}), \"image\":({\"tag\":\"Image Tag\", \"repository\":\"Image Repository\"}), \"driver\":({\"location\":\"Driver Location\"}), \"parsingSpecError\":\"The field 'spec.valuesContent' has invalid format.\"}), \"usbController\":({\"titles\":({\"basic\":\"Basic\"})})}), \"loadBalancer\":({\"label\":\"Load Balancers\", \"tabs\":({\"basic\":\"Basic\", \"listeners\":\"Listeners\", \"healthCheck\":\"Health Check\", \"backendServer\":\"Backend Server Selector\"}), \"workloadType\":({\"label\":\"Workload Type\", \"options\":({\"cluster\":\"Guest Kubernetes Cluster\", \"vm\":\"Virtual Machine\"})}), \"ipam\":({\"label\":\"IPAM\", \"options\":({\"dhcp\":\"DHCP\", \"pool\":\"Pool\"})}), \"ipPool\":({\"label\":\"IP Pool\", \"options\":({\"none\":\"Auto (Select IP Pool automatically)\"})}), \"listeners\":({\"name\":({\"label\":\"Name\"}), \"protocol\":({\"label\":\"Protocol\"}), \"port\":({\"label\":\"Port\"}), \"backendPort\":({\"label\":\"Backend Port\", \"placeholder\":\"e.g. 80\"})}), \"backendServerSelector\":({\"matchingVMs\":({\"matchesSome\":\"{matched, plural,\\n =0 {Matches 0 of {total, number} virtual machines in the namespace where the load balancer is.}\\n =1 {Matches 1 of {total, number} virtual machines in the namespace where the load balancer is: \\\"{sample}\\\"}\\n other {Matches {matched, number} of {total, number} existing virtual machines in the namespace where the load balancer is, including \\\"{sample}\\\"}\\n}\"})}), \"backendServers\":({\"label\":\"Backend Servers\"}), \"healthCheck\":({\"warning\":({\"portInUse\":\"Warning, the Backend Port {port} is in use in Health Check settings. If you need to update the port, update the Health Check settings accordingly.\"})})}), \"ipPool\":({\"label\":\"IP Pools\", \"network\":({\"label\":\"Virtual Machine Network\"}), \"tabs\":({\"range\":\"Range\", \"scope\":\"Scope\", \"selector\":\"Selector\"}), \"subnet\":({\"label\":\"Subnet\"}), \"startIP\":({\"label\":\"Start IP\"}), \"endIP\":({\"label\":\"End IP\"}), \"gateway\":({\"label\":\"Gateway\"}), \"namespace\":({\"label\":\"Namespace\"}), \"project\":({\"label\":\"Project\"}), \"guestCluster\":({\"label\":\"Guest Kubernetes Cluster\"}), \"availableIP\":({\"label\":\"Available IP Count\"}), \"scope\":({\"label\":\"Scope\", \"addLabel\":\"Add Scope\"}), \"priority\":({\"label\":\"Priority\"}), \"cidr\":({\"addLabel\":\"Add CIDR\"}), \"range\":({\"addLabel\":\"Add Range\"})}), \"service\":({\"healthCheckPort\":({\"label\":\"Health Check Port\"}), \"healthCheckSuccessThreshold\":({\"label\":\"Health Check Success Threshold\", \"description\":\"If the number of times the probe continuously detects an address successfully reaches the success threshold, then the backend server can start to forward traffic.\"}), \"healthCheckFailureThreshold\":({\"label\":\"Health Check Failure Threshold\", \"description\":\"The backend server will stop forwarding traffic if the number of health check failures reaches the failure threshold.\"}), \"healthCheckPeriod\":({\"label\":\"Health Check Period\"}), \"healthCheckTimeout\":({\"label\":\"Health Check Timeout\"}), \"healthCheckEnabled\":({\"label\":\"Health Check\"})}), \"secret\":({\"label\":\"Secrets\"}), \"sriov\":({\"label\":\"SR-IOV Network Devices\", \"nodeName\":\"Node\", \"numVFs\":\"Number Of Virtual Functions\", \"vfAddresses\":\"Virtual Functions Addresses\", \"showMore\":\"Show More\", \"parentSriov\":\"Filter By Parent SR-IOV\"}), \"sriovgpu\":({\"label\":\"SR-IOV GPU Devices\", \"nodeName\":\"Node\", \"numVFs\":\"Number of Virtual Functions\", \"vfAddresses\":\"Virtual Functions Addresses\", \"vGpuDevices\":\"vGPU Devices\", \"showMore\":\"Show More\", \"parentSriov\":\"Filter By Parent SR-IOV GPU\", \"noPermission\":\"Please contact your system administrator to add Harvester add-ons first.\", \"goSetting\":({\"prefix\":\"The nvidia-driver-toolkit add-on is not enabled, click\", \"middle\":\"here\", \"suffix\":\"to enable it to manage your SR-IOV GPU devices.\"})}), \"vgpu\":({\"label\":\"vGPU Devices\", \"noPermission\":\"Please contact system administrator to add Harvester add-ons first.\", \"goSetting\":({\"prefix\":\"The nvidia-driver-toolkit add-on is not enabled, click\", \"middle\":\"here\", \"suffix\":\"to enable it to manage your vGPU devices.\"}), \"enableGroup\":\"Enable Group\", \"disableGroup\":\"Disable Group\", \"enable\":({\"title\":\"Select vGPU\", \"type\":\"Type\"}), \"available\":\"Available Devices\", \"compatibleNodes\":\"Compatible Nodes\", \"impossibleSelection\":\"There are no hosts with all of the selected devices.\", \"howToUseDevice\":\"Use the table below to enable vGPU devices you want to use in this virtual machine.\", \"deviceInTheSameHost\":\"You can only select devices on the same host.\"}), \"usb\":({\"label\":\"USB Devices\", \"noPermission\":\"Please contact system admin to add Harvester add-ons first\", \"goSetting\":({\"prefix\":\"The pcidevices-controller add-on is not enabled, click\", \"middle\":\"here\", \"suffix\":\"to enable it to manage your USB devices.\"}), \"enableGroup\":\"Enable Group\", \"disableGroup\":\"Disable Group\", \"available\":\"Available USB Devices\", \"compatibleNodes\":\"Compatible Nodes\", \"impossibleSelection\":\"There are no hosts with all of the selected devices.\", \"howToUseDevice\":\"Use the table below to enable USB passthrough on each device you want to use in this VM.\", \"deviceInTheSameHost\":\"You can only select devices on the same host.\", \"showCompatibility\":\"Show device compatibility matrix\", \"hideCompatibility\":\"Hide device compatibility matrix\", \"claimError\":\"Error enabling passthrough on {name}\", \"unclaimError\":\"Error disabling passthrough on {name}\", \"cantUnclaim\":\"You cannot disable passthrough on a device claimed by another user.\", \"enablePassthroughWarning\":\"Please re-enable the USB device if the device path changes in the following situations:<br/> 1) Re-plugging the USB device.<br/> 2) Rebooting the node.<br/><br/>An incorrect device path may cause passthrough to fail.\"}), \"harvesterVlanConfigMigrateDialog\":({\"targetClusterNetwork\":({\"label\":\"Target Cluster Network\", \"placeholder\":\"Choose Target Cluster Network\"})}), \"seeder\":({\"banner\":({\"enable\":({\"prefix\":\"The \\\"harvester-seeder\\\" add-on is disabled.\", \"middle\":\"Click here\", \"suffix\":\"to enable it.\"}), \"noAccess\":\"Please contact your system administrator to enable the Out-of-Band Access first.\", \"noAddon\":\"The \\\"harvester-seeder\\\" add-on does not exist, please check if it is installed.\", \"noInventory\":\"Waiting for \\\"inventories.metal.harvesterhci.io\\\" to be ready.\"}), \"inventory\":({\"host\":({\"label\":\"Host\", \"placeholder\":\"e.g. 172.16.1.1\"}), \"port\":({\"label\":\"Port\", \"placeholder\":\"e.g. 623\"}), \"insecureTLS\":({\"label\":\"Insecure TLS\"}), \"secret\":({\"label\":\"Secret\", \"create\":({\"title\":\"Add Secret\"})}), \"event\":({\"label\":\"Event\"}), \"pollingInterval\":({\"label\":\"Polling Interval\"})})})}), \"typeDescription\":({\"harvester\":\"Branding allows administrators to globally re-brand the UI by customizing the Harvester product name, logos and color scheme.\"}), \"advancedSettings\":({\"experimental\":\"Experimental features allow users to test and evaluate early-access functionality prior to official supported releases\", \"descriptions\":({\"harv-vlan\":\"Default Network Interface name of the VLAN network.\", \"harv-backup-target\":\"Custom backup target to store virtual machine backups.\", \"branding\":\"Branding allows administrators to globally re-brand the UI by customizing the Harvester product name, logos, and color scheme.\", \"harv-csi-driver-config\":\"Configure additional information for CSI drivers.\", \"harv-containerd-registry\":\"Containerd Registry Configuration to connect private registries.\", \"harv-log-level\":\"Configure Harvester server log level. Defaults to Info.\", \"harv-server-version\":\"Harvester server version.\", \"harv-upgrade-checker-enabled\":\"Specifies whether to enable Harvester upgrade check or not. Default is True.\", \"harv-upgrade-checker-url\":\"Default Harvester upgrade check url. Only used when the <code>upgrade-checker-enabled</code> is equal to True.\", \"harv-ui-source\":\"Configure how to load the UI source.\", \"harv-ui-index\":\"HTML index location for the UI.\", \"harv-ui-plugin-index\":\"JS index location for the Harvester plugin UI.\", \"harv-cluster-registration-url\":\"Registration URL for multi-cluster management.\", \"harv-http-proxy\":\"HTTP proxy for Harvester to access external services.\", \"harv-additional-ca\":\"Custom CA root certificates for TLS validation.\", \"harv-overcommit-config\":\"Resource overcommit configuration.\", \"harv-support-bundle-timeout\":\"Support bundle timeout configuration in minutes, use 0 to disable the timeout.\", \"harv-support-bundle-expiration\":\"Support bundle expiration configuration in minutes.\", \"harv-support-bundle-node-collection-timeout\":\"Support bundle node collection timeout configuration in minutes.\", \"harv-vm-force-reset-policy\":\"Configuration for the force-reset action when a virtual machine is stuck on a node that is down.\", \"harv-ssl-parameters\":\"Custom SSL Parameters for TLS validation.\", \"harv-storage-network\":\"Longhorn storage-network setting.\", \"harv-support-bundle-namespaces\":\"Specify resources in other namespaces to be collected by the support package.\", \"harv-auto-disk-provision-paths\":\"Specify the disks(using glob pattern) that Harvester will automatically add as virtual machine storage.\", \"harv-support-bundle-image\":\"Support bundle image configuration. Find different versions in <a href=\\\"https://hub.docker.com/r/rancher/support-bundle-kit/tags\\\" target=\\\"_blank\\\">rancher/support-bundle-kit</a>.\", \"harv-release-download-url\":\"This setting allows you to configure the <code>upgrade release download</code> URL address. Harvester will get the ISO URL and checksum value from the (<code>$URL</code>/<code>$VERSION</code>/version.yaml) file hosted by the configured URL.\", \"harv-default-vm-termination-grace-period-seconds\":\"Configure the virtual machine termination grace period for virtual machine stop.\", \"harv-ntp-servers\":\"Configure NTP server. You can configure multiple IPv4 addresses or host addresses.\", \"harv-auto-rotate-rke2-certs\":\"The certificate rotation mechanism relies on Rancher. Harvester will automatically update certificates generation to trigger rotation.\", \"harv-kubeconfig-default-token-ttl-minutes\":\"TTL (in minutes) applied on Harvester administration kubeconfig files. Default is 0, which means to never expire.\", \"harv-longhorn-v2-data-engine-enabled\":\"Enable the Longhorn V2 data engine. Default is false. <ul><li>Changing this setting will restart RKE2 on all nodes. This will not affect running VM workloads.</li><li>If you see \\\"not enough hugepages-2Mi capacity\\\" errors when enabling this setting, wait a minute for the error to clear. If the error remains, reboot the affected node.</li></ul>\", \"harv-additional-guest-memory-overhead-ratio\":\"The ratio for kubevirt to adjust the VM overhead memory. The value could be zero, empty value or floating number between 1.0 and 10.0, default to 1.5.\"})}), \"typeLabel\":({\"kubevirt.io.virtualmachine\":\"{count, plural,\\n one { Virtual Machine }\\n other { Virtual Machines }\\n}\", \"harvesterhci.io.virtualmachineimage\":\"{count, plural,\\n one { Image }\\n other { Images }\\n}\", \"harvesterhci.io.keypair\":\"{count, plural,\\n one { SSH Key }\\n other { SSH Keys }\\n}\", \"harvesterhci.io.host\":\"{count, plural,\\n one { Host }\\n other { Hosts }\\n}\", \"harvesterhci.io.networkattachmentdefinition\":\"{count, plural,\\n one { Virtual Machine Network }\\n other { Virtual Machine Networks }\\n}\", \"harvesterhci.io.volume\":\"{count, plural,\\n one { Volume }\\n other { Volumes }\\n}\", \"harvesterhci.io.user\":\"{count, plural,\\n one { User }\\n other { Users }\\n}\", \"harvesterhci.io.setting\":\"{count, plural,\\n one { Setting }\\n other { Settings }\\n}\", \"harvesterhci.io.virtualmachinetemplateversion\":\"{count, plural,\\n one { Template }\\n other { Templates }\\n}\", \"harvesterhci.io.schedulevmbackup\":\"{count, plural,\\n one { Virtual Machine Schedule }\\n other { Virtual Machine Schedules }\\n}\", \"harvesterhci.io.virtualmachinebackup\":\"{count, plural,\\n one { Virtual Machine Backup }\\n other { Virtual Machine Backups }\\n}\", \"harvesterhci.io.cloudtemplate\":\"{count, plural,\\n one { Cloud Configuration Template }\\n other { Cloud Configuration Templates }\\n}\", \"harvesterhci.io.volumesnapshot\":\"{count, plural,\\n one { Volume Snapshot }\\n other { Volume Snapshots }\\n}\", \"harvesterhci.io.vmsnapshot\":\"{count, plural,\\n one { Virtual Machine Snapshot }\\n other { Virtual Machine Snapshots }\\n}\", \"network.harvesterhci.io.vlanconfig\":\"{count, plural,\\n one { Network Configuration }\\n other { Network Configurations }\\n}\", \"harvesterhci.io.monitoring.alertmanagerconfig\":\"{count, plural,\\n one { Alertmanager Configuration }\\n other { Alertmanager Configurations }\\n}\", \"harvesterhci.io.logging.clusterflow\":\"{count, plural,\\n one { Cluster Flow }\\n other { Cluster Flows }\\n}\", \"harvesterhci.io.logging.clusteroutput\":\"{count, plural,\\n one { Cluster Output }\\n other { Cluster Outputs }\\n}\", \"harvesterhci.io.logging.flow\":\"{count, plural,\\n one { Flow }\\n other { Flows }\\n}\", \"harvesterhci.io.logging.output\":\"{count, plural,\\n one { Output }\\n other { Outputs }\\n}\", \"harvesterhci.io.storage\":\"{count, plural,\\n one { Storage Class }\\n other { Storage Classes }\\n}\", \"devices.harvesterhci.io.pcidevice\":\"{count, plural,\\n one { PCI Device }\\n other { PCI Devices }\\n}\", \"persistentvolumeclaim\":\"{count, plural,\\n one { Volume }\\n other { Volumes }\\n}\", \"network.harvesterhci.io.clusternetwork\":\"{count, plural,\\n one { Cluster Network }\\n other { Cluster Networks }\\n}\", \"harvesterhci.io.addon\":\"{count, plural,\\n one { Add-on }\\n other { Add-ons }\\n}\", \"devices.harvesterhci.io.sriovnetworkdevice\":\"{count, plural,\\n one { SR-IOV Network Device }\\n other { SR-IOV Network Devices }\\n}\", \"devices.harvesterhci.io.sriovgpudevice\":\"{count, plural,\\n one { SR-IOV GPU Device }\\n other { SR-IOV GPU Devices }\\n}\", \"devices.harvesterhci.io.vgpudevice\":\"{count, plural,\\n one { vGPU Device }\\n other { vGPU Devices }\\n}\", \"harvesterhci.io.secret\":\"{count, plural,\\n one { Secret }\\n other { Secrets }\\n}\", \"harvesterhci.io.blockdevice\":\"{count, plural,\\n one { Disk }\\n other { Disks }\\n}\", \"loadbalancer.harvesterhci.io.loadbalancer\":\"{count, plural,\\n one { Load Balancer }\\n other { Load Balancers }\\n}\", \"loadbalancer.harvesterhci.io.ippool\":\"{count, plural,\\n one { IP Pool }\\n other { IP Pools }\\n}\"})})];\nmodule.exports = doc.length <= 1 ? doc[0] : doc;"],"names":["doc","module","exports","length"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.395.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.395.js new file mode 100644 index 00000000..b881a140 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.395.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[395],{67740:function(e,t,r){"use strict";r.d(t,{A:function(){return h}});var s=r(9274);const o={class:"filter"},a={key:0,class:"banner-item bg-warning"},n={ref:"actionDropDown",class:"btn bg-primary mr-10"},i={class:"filter-popup"};function l(e,t,r,l,c,p){const d=(0,s.resolveComponent)("LabeledSelect"),u=(0,s.resolveComponent)("v-dropdown");return(0,s.openBlock)(),(0,s.createElementBlock)("div",o,[c.parentSriov?((0,s.openBlock)(),(0,s.createElementBlock)("span",a,[(0,s.createTextVNode)((0,s.toDisplayString)(c.parentSriov)+" ",1),(0,s.createElementVNode)("i",{class:"icon icon-close",onClick:t[0]||(t[0]=e=>p.remove())})])):(0,s.createCommentVNode)("",!0),(0,s.createVNode)(u,{"popper-class":"filter-parent-sriov",trigger:"click",placement:"bottom-end",distance:20},{popper:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",i,[(0,s.createElementVNode)("div",null,[(0,s.createVNode)(d,{value:c.parentSriov,"onUpdate:value":t[1]||(t[1]=e=>c.parentSriov=e),options:r.parentSriovOptions,searchable:!0,label:r.label},null,8,["value","options","label"])])])])),default:(0,s.withCtx)((()=>[(0,s.renderSlot)(e.$slots,"header",{},(()=>[(0,s.createElementVNode)("button",n,[(0,s.renderSlot)(e.$slots,"title",{},(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(r.label),1)]),!0)],512)]),!0)])),_:3})])}var c=r(77988),p={name:"HarvesterFilterLabel",emits:["change-rows"],components:{LabeledSelect:c.A},props:{rows:{type:Array,required:!0},parentSriovOptions:{type:Array,required:!0},parentSriovLabel:{type:String,required:!0},label:{type:String,required:!0}},data(){return{parentSriov:this.$route.query?.parentSriov||null}},methods:{remove(){this.parentSriov=null,this.filterRows()},filterRows(){const e=this.rows.filter((e=>{if(!this.parentSriov)return!0;const t=e.labels[this.parentSriovLabel];return t===this.parentSriov}));this.$emit("change-rows",e,this.parentSriov)}},watch:{parentSriov:{deep:!0,immediate:!0,handler(){this.filterRows()}}}},d=(r(73876),r(66446),r(47433));const u=(0,d.A)(p,[["render",l],["__scopeId","data-v-f3c890e8"]]);var h=u},79428:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return w}});var s=r(9274);const o=["onClick"],a=["onClick"],n={key:0},i={key:1,class:"text-muted"};function l(e,t,r,l,c,p){const d=(0,s.resolveComponent)("FilterBySriov"),u=(0,s.resolveComponent)("ResourceTable"),h=(0,s.resolveDirective)("clean-html"),v=(0,s.resolveDirective)("trim-whitespace");return(0,s.openBlock)(),(0,s.createBlock)(u,{headers:c.headers,schema:r.schema,rows:c.filterRows,"use-query-params-for-simple-filtering":!0,"sort-generation-fn":p.sortGenerationFn,"rows-per-page":10},{"group-by":(0,s.withCtx)((({group:t})=>[(0,s.withDirectives)(((0,s.openBlock)(),(0,s.createElementBlock)("div",{ref:t.key,class:"group-tab"},[p.groupIsAllEnabled(t.rows)?((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:0,type:"button",class:"btn btn-sm role-secondary mr-5",onClick:e=>{p.disableGroup(t.rows),e.target.blur()}},(0,s.toDisplayString)(e.t("harvester.pci.disableGroup")),9,o)):((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:1,type:"button",class:"btn btn-sm role-secondary mr-5",onClick:e=>{p.enableGroup(t.rows),e.target.blur()}},(0,s.toDisplayString)(e.t("harvester.pci.enableGroup")),9,a)),(0,s.withDirectives)((0,s.createElementVNode)("span",null,null,512),[[h,t.key]])])),[[v]])])),"cell:claimed":(0,s.withCtx)((({row:e})=>[e.isEnabled?((0,s.openBlock)(),(0,s.createElementBlock)("span",n,(0,s.toDisplayString)(e.claimedBy),1)):((0,s.openBlock)(),(0,s.createElementBlock)("span",i,"—"))])),"more-header-middle":(0,s.withCtx)((()=>[(0,s.createVNode)(d,{ref:"filterByParentSRIOV","parent-sriov-options":p.parentSriovOptions,"parent-sriov-label":p.parentSriovLabel,label:e.t("harvester.sriov.parentSriov"),rows:c.rows,onChangeRows:p.changeRows},null,8,["parent-sriov-options","parent-sriov-label","label","rows","onChangeRows"])])),_:1},8,["headers","schema","rows","sort-generation-fn"])}var c=r(53500),p=r(68774),d=r(88339),u=r(2602),h=r(32766),v=r(67740),m={name:"ListPciDevices",components:{ResourceTable:c.A,FilterBySriov:v.A},inheritAttrs:!1,props:{schema:{type:Object,required:!0},devices:{type:Array,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={pciclaims:this.$store.dispatch(`${e}/findAll`,{type:h.rk.PCI_CLAIM}),sriovs:this.$store.dispatch(`${e}/findAll`,{type:h.rk.SR_IOV})};await(0,d.kR)(t)},data(){const e=this.$store.getters["isSingleProduct"],t=[{...p.c4},p.X0,{name:"description",labelKey:"tableHeaders.description",value:"status.description",sort:["status.description"]},{name:"node",labelKey:"tableHeaders.node",value:"status.nodeName",sort:["status.nodeName"]},{name:"address",label:"Address",value:"status.address",sort:["status.address"]},{name:"vendorid",label:"Vendor ID",value:"status.vendorId",sort:["status.vendorId","status.deviceId"]},{name:"deviceid",label:"Device ID",value:"status.deviceId",sort:["status.deviceId","status.vendorId"]}];return e||t.push({name:"claimed",label:"Claimed By",value:"passthroughClaim.userName",sort:["passthroughClaim.userName"]}),{headers:t,rows:[],parentSriov:null,filterRows:[]}},watch:{devices:{handler(e){this.rows=e,this.parentSriov?this.filterRows=this.rows.filter((e=>e.labels[this.parentSriovLabel]===this.parentSriov)):this.filterRows=this.rows},immediate:!0}},computed:{parentSriovOptions(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](h.rk.SR_IOV)||[];return t.map((e=>e.id))},parentSriovLabel(){return u.r.PARENT_SRIOV}},methods:{enableGroup(e=[]){const t=e[0];t&&t.enablePassthroughBulk(e)},disableGroup(e=[]){e.forEach((e=>{e.passthroughClaim&&e.disablePassthrough()}))},groupIsAllEnabled(e=[]){return!e.find((e=>!e.passthroughClaim))},changeRows(e,t){this["filterRows"]=e,this["parentSriov"]=t},sortGenerationFn(){let e=(0,c.S)(this.schema,this.$store);return this.parentSriov&&(e+=this.parentSriov),e}}},b=r(47433);const f=(0,b.A)(m,[["render",l]]);var w=f},34529:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return m}});var s=r(9274);const o=["onClick"],a=["onClick"],n={key:0},i={key:1,class:"text-muted"};function l(e,t,r,l,c,p){const d=(0,s.resolveComponent)("ResourceTable"),u=(0,s.resolveDirective)("clean-html"),h=(0,s.resolveDirective)("trim-whitespace");return(0,s.openBlock)(),(0,s.createBlock)(d,{headers:c.headers,schema:r.schema,rows:c.filterRows,"use-query-params-for-simple-filtering":!0,"sort-generation-fn":p.sortGenerationFn,"rows-per-page":10},{"group-by":(0,s.withCtx)((({group:t})=>[(0,s.withDirectives)(((0,s.openBlock)(),(0,s.createElementBlock)("div",{ref:t.key,class:"group-tab"},[p.groupIsAllEnabled(t.rows)?((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:0,type:"button",class:"btn btn-sm role-secondary mr-5",onClick:e=>{p.disableGroup(t.rows),e.target.blur()}},(0,s.toDisplayString)(e.t("harvester.usb.disableGroup")),9,o)):((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:1,type:"button",class:"btn btn-sm role-secondary mr-5",onClick:e=>{p.enableGroup(t.rows),e.target.blur()}},(0,s.toDisplayString)(e.t("harvester.usb.enableGroup")),9,a)),(0,s.withDirectives)((0,s.createElementVNode)("span",null,null,512),[[u,t.key]])])),[[h]])])),"cell:claimed":(0,s.withCtx)((({row:e})=>[e.status.enabled?((0,s.openBlock)(),(0,s.createElementBlock)("span",n,(0,s.toDisplayString)(e.claimedBy),1)):((0,s.openBlock)(),(0,s.createElementBlock)("span",i,"—"))])),_:1},8,["headers","schema","rows","sort-generation-fn"])}var c=r(53500),p=r(32766),d=r(68774),u={name:"ListUsbDevices",components:{ResourceTable:c.A},props:{schema:{type:Object,required:!0},devices:{type:Array,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await this.$store.dispatch(`${e}/findAll`,{type:p.rk.USB_CLAIM})},data(){const e=this.$store.getters["isSingleProduct"],t=[{...d.c4},d.X0,{name:"description",labelKey:"tableHeaders.description",value:"status.description",sort:["status.description"]},{name:"node",labelKey:"tableHeaders.node",value:"status.nodeName",sort:["status.nodeName"]},{name:"pciAddress",label:"Address",value:"status.pciAddress",sort:["status.pciAddress"]},{name:"vendorID",label:"Vendor ID",value:"status.vendorID",sort:["status.vendorID","status.productID"]},{name:"productID",label:"Product ID",value:"status.productID",sort:["status.productID","status.vendorID"]}];return e||t.push({name:"claimed",label:"Claimed By",value:"claimedBy",sort:["claimedBy"]}),{headers:t,rows:[],filterRows:[]}},watch:{devices:{handler(e){this.rows=e,this.filterRows=this.rows},immediate:!0}},methods:{enableGroup(e=[]){const t=e[0];t&&t.enablePassthroughBulk(e)},disableGroup(e=[]){e.forEach((e=>{e.passthroughClaim&&e.disablePassthrough()}))},groupIsAllEnabled(e=[]){return!e.find((e=>!e.passthroughClaim))},changeRows(e){this["filterRows"]=e},sortGenerationFn(){let e=(0,c.S)(this.schema,this.$store);return this.parentSriov&&(e+=this.parentSriov),e}},typeDisplay(){return this.t("harvester.usb.label")}},h=r(47433);const v=(0,h.A)(u,[["render",l]]);var m=v},33212:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return v}});var s=r(9274);function o(e,t,r,o,a,n){const i=(0,s.resolveComponent)("FilterBySriov"),l=(0,s.resolveComponent)("ResourceTable");return(0,s.openBlock)(),(0,s.createBlock)(l,{headers:a.headers,schema:r.schema,rows:a.filterRows,"use-query-params-for-simple-filtering":!0,"sort-generation-fn":n.sortGenerationFn,"rows-per-page":10},{"more-header-middle":(0,s.withCtx)((()=>[(0,s.createVNode)(i,{ref:"filterByParentSRIOV","parent-sriov-options":n.parentSriovOptions,"parent-sriov-label":n.parentSriovLabel,label:e.t("harvester.sriovgpu.parentSriov"),rows:a.rows,onChangeRows:n.changeRows},null,8,["parent-sriov-options","parent-sriov-label","label","rows","onChangeRows"])])),_:1},8,["headers","schema","rows","sort-generation-fn"])}var a=r(53500),n=r(2602),i=r(68774),l=r(88339),c=r(32766),p=r(67740),d={name:"VGpuDeviceList",components:{ResourceTable:a.A,FilterBySriov:p.A},props:{schema:{type:Object,required:!0},devices:{type:Array,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={sriovgpus:this.$store.dispatch(`${e}/findAll`,{type:c.rk.SR_IOVGPU_DEVICE})};await(0,l.kR)(t)},data(){const e=[{...i.c4},i.X0,{name:"vGPUTypeName",label:"vGPU Type",value:"spec.vGPUTypeName",sort:["spec.vGPUTypeName"]},{name:"node",labelKey:"tableHeaders.node",value:"spec.nodeName",sort:["spec.nodeName"]},{name:"address",label:"Address",value:"spec.address",sort:["spec.address"]}];return{headers:e,rows:[],parentSriov:null,filterRows:[]}},watch:{devices:{handler(e){this.rows=e,this.filterRows=this.rows},immediate:!0}},computed:{parentSriovOptions(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](c.rk.SR_IOVGPU_DEVICE)||[];return t.map((e=>e.id))},parentSriovLabel(){return n.r.PARENT_SRIOV_GPU}},methods:{changeRows(e,t){this["filterRows"]=e,this["parentSriov"]=t},sortGenerationFn(){let e=(0,a.S)(this.schema,this.$store);return this.parentSriov&&(e+=this.parentSriov),e}}},u=r(47433);const h=(0,u.A)(d,[["render",o]]);var v=h},15508:function(e,t,r){"use strict";r.r(t);var s=r(36758),o=r.n(s),a=r(40935),n=r.n(a),i=n()(o());i.push([e.id,".filter[data-v-f3c890e8]{display:inline-block}.filter .banner-item[data-v-f3c890e8]{display:inline-block;font-size:16px;margin-right:10px;padding:6px;border-radius:2px}.filter .banner-item i[data-v-f3c890e8]{cursor:pointer;vertical-align:middle}.filter-popup[data-v-f3c890e8]{width:300px}[data-v-f3c890e8] .box{display:grid;grid-template-columns:40% 40% 10%;-moz-column-gap:1.75%;column-gap:1.75%;margin-bottom:10px}.required[data-v-f3c890e8]{color:var(--error)}",""]),t["default"]=i},56078:function(e,t,r){"use strict";r.r(t);var s=r(36758),o=r.n(s),a=r(40935),n=r.n(a),i=n()(o());i.push([e.id,".filter-parent-sriov .v-popper__arrow-container{display:none}",""]),t["default"]=i},73876:function(e,t,r){var s=r(15508);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=r(74825).A;o("2e55c518",s,!0,{sourceMap:!1,shadowMode:!1})},66446:function(e,t,r){var s=r(56078);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=r(74825).A;o("5d8b2188",s,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.395.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.395.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.395.js.map new file mode 100644 index 00000000..39d86602 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.395.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.395.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./components/FilterBySriov.vue","webpack://harvester-1.5.0-dev/./components/FilterBySriov.vue?d6ea","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachinePciDevices/DeviceList.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachinePciDevices/DeviceList.vue?2cc2","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineUSBDevices/DeviceList.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineUSBDevices/DeviceList.vue?98b8","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/VGpuDeviceList.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/VGpuDeviceList.vue?7ddd","webpack://harvester-1.5.0-dev/./components/FilterBySriov.vue?8447","webpack://harvester-1.5.0-dev/./components/FilterBySriov.vue?557c","webpack://harvester-1.5.0-dev/./components/FilterBySriov.vue?5f45","webpack://harvester-1.5.0-dev/./components/FilterBySriov.vue?752b"],"sourcesContent":["<script>\nimport LabeledSelect from '@shell/components/form/LabeledSelect.vue';\n\nexport default {\n name: 'HarvesterFilterLabel',\n\n emits: ['change-rows'],\n\n components: { LabeledSelect },\n\n props: {\n rows: {\n type: Array,\n required: true,\n },\n\n parentSriovOptions: {\n type: Array,\n required: true,\n },\n\n parentSriovLabel: {\n type: String,\n required: true,\n },\n\n label: {\n type: String,\n required: true,\n },\n\n },\n\n data() {\n return { parentSriov: this.$route.query?.parentSriov || null };\n },\n\n methods: {\n remove() {\n this.parentSriov = null;\n this.filterRows();\n },\n\n filterRows() {\n const rows = this.rows.filter((row) => {\n if (!this.parentSriov) {\n return true;\n }\n\n const label = row.labels[this.parentSriovLabel];\n\n return label === this.parentSriov;\n });\n\n this.$emit('change-rows', rows, this.parentSriov);\n }\n },\n\n watch: {\n parentSriov: {\n deep: true,\n immediate: true,\n handler() {\n this.filterRows();\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"filter\">\n <span\n v-if=\"parentSriov\"\n class=\"banner-item bg-warning\"\n >\n {{ parentSriov }} <i\n class=\"icon icon-close\"\n @click=\"remove()\"\n />\n </span>\n\n <v-dropdown\n popper-class=\"filter-parent-sriov\"\n trigger=\"click\"\n placement=\"bottom-end\"\n :distance=\"20\"\n >\n <slot name=\"header\">\n <button\n ref=\"actionDropDown\"\n class=\"btn bg-primary mr-10\"\n >\n <slot name=\"title\">\n {{ label }}\n </slot>\n </button>\n </slot>\n\n <template #popper>\n <div class=\"filter-popup\">\n <div>\n <LabeledSelect\n v-model:value=\"parentSriov\"\n :options=\"parentSriovOptions\"\n :searchable=\"true\"\n :label=\"label\"\n />\n </div>\n </div>\n </template>\n </v-dropdown>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.filter {\n display: inline-block;\n\n .banner-item {\n display: inline-block;\n font-size: 16px;\n margin-right: 10px;\n padding: 6px;\n border-radius: 2px;\n\n i {\n cursor: pointer;\n vertical-align: middle;\n }\n }\n}\n.filter-popup {\n width: 300px;\n}\n\n:deep() .box {\n display: grid;\n grid-template-columns: 40% 40% 10%;\n column-gap: 1.75%;\n margin-bottom: 10px;\n}\n\n.required {\n color: var(--error);\n}\n\n</style>\n\n<style lang=\"scss\">\n.filter-parent-sriov .v-popper__arrow-container {\n display: none;\n}\n</style>\n","import { render } from \"./FilterBySriov.vue?vue&type=template&id=f3c890e8&scoped=true\"\nimport script from \"./FilterBySriov.vue?vue&type=script&lang=js\"\nexport * from \"./FilterBySriov.vue?vue&type=script&lang=js\"\n\nimport \"./FilterBySriov.vue?vue&type=style&index=0&id=f3c890e8&lang=scss&scoped=true\"\nimport \"./FilterBySriov.vue?vue&type=style&index=1&id=f3c890e8&lang=scss\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f3c890e8\"]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { STATE, SIMPLE_NAME } from '@shell/config/table-headers';\nimport { defaultTableSortGenerationFn } from '@shell/components/ResourceTable.vue';\nimport { allHash } from '@shell/utils/promise';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../../../types';\nimport FilterBySriov from '../../../components/FilterBySriov';\n\nexport default {\n name: 'ListPciDevices',\n\n components: { ResourceTable, FilterBySriov },\n\n inheritAttrs: false,\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n\n devices: {\n type: Array,\n required: true,\n },\n\n },\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {\n pciclaims: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.PCI_CLAIM }),\n sriovs: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SR_IOV }),\n };\n\n await allHash(_hash);\n },\n\n data() {\n const isSingleProduct = this.$store.getters['isSingleProduct'];\n const headers = [\n { ...STATE },\n SIMPLE_NAME,\n {\n name: 'description',\n labelKey: 'tableHeaders.description',\n value: 'status.description',\n sort: ['status.description']\n },\n {\n name: 'node',\n labelKey: 'tableHeaders.node',\n value: 'status.nodeName',\n sort: ['status.nodeName']\n },\n {\n name: 'address',\n label: 'Address',\n value: 'status.address',\n sort: ['status.address']\n },\n {\n name: 'vendorid',\n label: 'Vendor ID',\n value: 'status.vendorId',\n sort: ['status.vendorId', 'status.deviceId']\n },\n {\n name: 'deviceid',\n label: 'Device ID',\n value: 'status.deviceId',\n sort: ['status.deviceId', 'status.vendorId']\n },\n\n ];\n\n if (!isSingleProduct) {\n headers.push( {\n name: 'claimed',\n label: 'Claimed By',\n value: 'passthroughClaim.userName',\n sort: ['passthroughClaim.userName'],\n });\n }\n\n return {\n headers,\n rows: [],\n parentSriov: null,\n filterRows: []\n };\n },\n\n watch: {\n devices: {\n handler(v) {\n this.rows = v;\n if (this.parentSriov) {\n this.filterRows = this.rows.filter((row) => row.labels[this.parentSriovLabel] === this.parentSriov);\n } else {\n this.filterRows = this.rows;\n }\n },\n immediate: true,\n },\n },\n\n computed: {\n parentSriovOptions() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const allSriovs = this.$store.getters[`${ inStore }/all`](HCI.SR_IOV) || [];\n\n return allSriovs.map((sriov) => {\n return sriov.id;\n });\n },\n parentSriovLabel() {\n return HCI_ANNOTATIONS.PARENT_SRIOV;\n }\n },\n\n methods: {\n enableGroup(rows = []) {\n const row = rows[0];\n\n if (row) {\n row.enablePassthroughBulk(rows);\n }\n },\n disableGroup(rows = []) {\n rows.forEach((row) => {\n if (row.passthroughClaim) {\n row.disablePassthrough();\n }\n });\n },\n groupIsAllEnabled(rows = []) {\n return !rows.find((device) => !device.passthroughClaim);\n },\n\n changeRows(filterRows, parentSriov) {\n this['filterRows'] = filterRows;\n this['parentSriov'] = parentSriov;\n },\n\n sortGenerationFn() {\n let base = defaultTableSortGenerationFn(this.schema, this.$store);\n\n if (this.parentSriov) {\n base += this.parentSriov;\n }\n\n return base;\n },\n }\n};\n</script>\n\n<template>\n <ResourceTable\n :headers=\"headers\"\n :schema=\"schema\"\n :rows=\"filterRows\"\n :use-query-params-for-simple-filtering=\"true\"\n :sort-generation-fn=\"sortGenerationFn\"\n :rows-per-page=\"10\"\n >\n <template #group-by=\"{group}\">\n <div\n :ref=\"group.key\"\n v-trim-whitespace\n class=\"group-tab\"\n >\n <button\n v-if=\"groupIsAllEnabled(group.rows)\"\n type=\"button\"\n class=\"btn btn-sm role-secondary mr-5\"\n @click=\"e=>{disableGroup(group.rows); e.target.blur()}\"\n >\n {{ t('harvester.pci.disableGroup') }}\n </button>\n <button\n v-else\n type=\"button\"\n class=\"btn btn-sm role-secondary mr-5\"\n @click=\"e=>{enableGroup(group.rows); e.target.blur()}\"\n >\n {{ t('harvester.pci.enableGroup') }}\n </button>\n <span v-clean-html=\"group.key\" />\n </div>\n </template>\n <template #cell:claimed=\"{row}\">\n <span v-if=\"row.isEnabled\">{{ row.claimedBy }}</span>\n <span\n v-else\n class=\"text-muted\"\n >—</span>\n </template>\n <template #more-header-middle>\n <FilterBySriov\n ref=\"filterByParentSRIOV\"\n :parent-sriov-options=\"parentSriovOptions\"\n :parent-sriov-label=\"parentSriovLabel\"\n :label=\"t('harvester.sriov.parentSriov')\"\n :rows=\"rows\"\n @change-rows=\"changeRows\"\n />\n </template>\n </ResourceTable>\n</template>\n","import { render } from \"./DeviceList.vue?vue&type=template&id=16ee4110\"\nimport script from \"./DeviceList.vue?vue&type=script&lang=js\"\nexport * from \"./DeviceList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { HCI } from '../../../types';\nimport { STATE, SIMPLE_NAME } from '@shell/config/table-headers';\nimport { defaultTableSortGenerationFn } from '@shell/components/ResourceTable.vue';\n\nexport default {\n name: 'ListUsbDevices',\n\n components: { ResourceTable },\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n\n devices: {\n type: Array,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n await this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.USB_CLAIM });\n },\n\n data() {\n const isSingleProduct = this.$store.getters['isSingleProduct'];\n\n // TODO add new column\n const headers = [\n { ...STATE },\n SIMPLE_NAME,\n {\n name: 'description',\n labelKey: 'tableHeaders.description',\n value: 'status.description',\n sort: ['status.description']\n },\n {\n name: 'node',\n labelKey: 'tableHeaders.node',\n value: 'status.nodeName',\n sort: ['status.nodeName']\n },\n {\n name: 'pciAddress',\n label: 'Address',\n value: 'status.pciAddress',\n sort: ['status.pciAddress']\n },\n {\n name: 'vendorID',\n label: 'Vendor ID',\n value: 'status.vendorID',\n sort: ['status.vendorID', 'status.productID']\n },\n {\n name: 'productID',\n label: 'Product ID',\n value: 'status.productID',\n sort: ['status.productID', 'status.vendorID']\n },\n ];\n\n if (!isSingleProduct) {\n headers.push( {\n name: 'claimed',\n label: 'Claimed By',\n value: 'claimedBy',\n sort: ['claimedBy'],\n });\n }\n\n return {\n headers,\n rows: [],\n filterRows: []\n };\n },\n\n watch: {\n devices: {\n handler(v) {\n this.rows = v;\n this.filterRows = this.rows;\n },\n immediate: true,\n },\n },\n\n methods: {\n enableGroup(rows = []) {\n const row = rows[0];\n\n if (row) {\n row.enablePassthroughBulk(rows);\n }\n },\n disableGroup(rows = []) {\n rows.forEach((row) => {\n if (row.passthroughClaim) {\n row.disablePassthrough();\n }\n });\n },\n groupIsAllEnabled(rows = []) {\n return !rows.find((device) => !device.passthroughClaim);\n },\n\n changeRows(filterRows) {\n this['filterRows'] = filterRows;\n },\n\n sortGenerationFn() {\n let base = defaultTableSortGenerationFn(this.schema, this.$store);\n\n if (this.parentSriov) {\n base += this.parentSriov;\n }\n\n return base;\n },\n },\n\n typeDisplay() {\n return this.t('harvester.usb.label');\n }\n};\n</script>\n\n<template>\n <ResourceTable\n :headers=\"headers\"\n :schema=\"schema\"\n :rows=\"filterRows\"\n :use-query-params-for-simple-filtering=\"true\"\n :sort-generation-fn=\"sortGenerationFn\"\n :rows-per-page=\"10\"\n >\n <template #group-by=\"{group}\">\n <div\n :ref=\"group.key\"\n v-trim-whitespace\n class=\"group-tab\"\n >\n <button\n v-if=\"groupIsAllEnabled(group.rows)\"\n type=\"button\"\n class=\"btn btn-sm role-secondary mr-5\"\n @click=\"e=>{disableGroup(group.rows); e.target.blur()}\"\n >\n {{ t('harvester.usb.disableGroup') }}\n </button>\n <button\n v-else\n type=\"button\"\n class=\"btn btn-sm role-secondary mr-5\"\n @click=\"e=>{enableGroup(group.rows); e.target.blur()}\"\n >\n {{ t('harvester.usb.enableGroup') }}\n </button>\n <span v-clean-html=\"group.key\" />\n </div>\n </template>\n <template #cell:claimed=\"{row}\">\n <span v-if=\"row.status.enabled\">{{ row.claimedBy }}</span>\n <span\n v-else\n class=\"text-muted\"\n >—</span>\n </template>\n </ResourceTable>\n</template>\n","import { render } from \"./DeviceList.vue?vue&type=template&id=de488890\"\nimport script from \"./DeviceList.vue?vue&type=script&lang=js\"\nexport * from \"./DeviceList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { STATE, SIMPLE_NAME } from '@shell/config/table-headers';\nimport { defaultTableSortGenerationFn } from '@shell/components/ResourceTable.vue';\nimport { allHash } from '@shell/utils/promise';\nimport { HCI } from '../../../types';\nimport FilterBySriov from '../../../components/FilterBySriov';\n\nexport default {\n name: 'VGpuDeviceList',\n\n components: { ResourceTable, FilterBySriov },\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n\n devices: {\n type: Array,\n required: true,\n },\n\n },\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hash = { sriovgpus: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SR_IOVGPU_DEVICE }) };\n\n await allHash(hash);\n },\n\n data() {\n const headers = [\n { ...STATE },\n SIMPLE_NAME,\n {\n name: 'vGPUTypeName',\n label: 'vGPU Type',\n value: 'spec.vGPUTypeName',\n sort: ['spec.vGPUTypeName']\n },\n {\n name: 'node',\n labelKey: 'tableHeaders.node',\n value: 'spec.nodeName',\n sort: ['spec.nodeName']\n },\n {\n name: 'address',\n label: 'Address',\n value: 'spec.address',\n sort: ['spec.address']\n },\n ];\n\n return {\n headers,\n rows: [],\n parentSriov: null,\n filterRows: []\n };\n },\n\n watch: {\n devices: {\n handler(v) {\n this.rows = v;\n this.filterRows = this.rows;\n },\n immediate: true,\n }\n },\n\n computed: {\n parentSriovOptions() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const allSriovs = this.$store.getters[`${ inStore }/all`](HCI.SR_IOVGPU_DEVICE) || [];\n\n return allSriovs.map((sriov) => {\n return sriov.id;\n });\n },\n parentSriovLabel() {\n return HCI_ANNOTATIONS.PARENT_SRIOV_GPU;\n }\n },\n\n methods: {\n changeRows(filterRows, parentSriov) {\n this['filterRows'] = filterRows;\n this['parentSriov'] = parentSriov;\n },\n\n sortGenerationFn() {\n let base = defaultTableSortGenerationFn(this.schema, this.$store);\n\n if (this.parentSriov) {\n base += this.parentSriov;\n }\n\n return base;\n },\n }\n};\n</script>\n\n<template>\n <ResourceTable\n :headers=\"headers\"\n :schema=\"schema\"\n :rows=\"filterRows\"\n :use-query-params-for-simple-filtering=\"true\"\n :sort-generation-fn=\"sortGenerationFn\"\n :rows-per-page=\"10\"\n >\n <template #more-header-middle>\n <FilterBySriov\n ref=\"filterByParentSRIOV\"\n :parent-sriov-options=\"parentSriovOptions\"\n :parent-sriov-label=\"parentSriovLabel\"\n :label=\"t('harvester.sriovgpu.parentSriov')\"\n :rows=\"rows\"\n @change-rows=\"changeRows\"\n />\n </template>\n </ResourceTable>\n</template>\n","import { render } from \"./VGpuDeviceList.vue?vue&type=template&id=4943a941\"\nimport script from \"./VGpuDeviceList.vue?vue&type=script&lang=js\"\nexport * from \"./VGpuDeviceList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".filter[data-v-f3c890e8]{display:inline-block}.filter .banner-item[data-v-f3c890e8]{display:inline-block;font-size:16px;margin-right:10px;padding:6px;border-radius:2px}.filter .banner-item i[data-v-f3c890e8]{cursor:pointer;vertical-align:middle}.filter-popup[data-v-f3c890e8]{width:300px}[data-v-f3c890e8] .box{display:grid;grid-template-columns:40% 40% 10%;-moz-column-gap:1.75%;column-gap:1.75%;margin-bottom:10px}.required[data-v-f3c890e8]{color:var(--error)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".filter-parent-sriov .v-popper__arrow-container{display:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./FilterBySriov.vue?vue&type=style&index=0&id=f3c890e8&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2e55c518\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./FilterBySriov.vue?vue&type=style&index=1&id=f3c890e8&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5d8b2188\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","key","ref","_createElementBlock","_hoisted_1","$data","parentSriov","_hoisted_2","_createTextVNode","_toDisplayString","_createElementVNode","onClick","_cache","$event","$options","remove","_createCommentVNode","_createVNode","_component_v_dropdown","trigger","placement","distance","popper","_withCtx","_hoisted_4","_component_LabeledSelect","value","options","$props","parentSriovOptions","searchable","label","default","_renderSlot","_ctx","$slots","_hoisted_3","_","name","emits","components","LabeledSelect","props","rows","type","Array","required","parentSriovLabel","String","data","this","$route","query","methods","filterRows","filter","row","labels","$emit","watch","deep","immediate","handler","__exports__","render","_createBlock","_component_ResourceTable","headers","schema","sortGenerationFn","group","groupIsAllEnabled","e","disableGroup","target","blur","t","enableGroup","isEnabled","claimedBy","_component_FilterBySriov","onChangeRows","changeRows","ResourceTable","FilterBySriov","inheritAttrs","Object","devices","fetch","inStore","$store","getters","_hash","pciclaims","dispatch","HCI","PCI_CLAIM","sriovs","SR_IOV","allHash","isSingleProduct","STATE","SIMPLE_NAME","labelKey","sort","push","v","computed","allSriovs","map","sriov","id","HCI_ANNOTATIONS","PARENT_SRIOV","enablePassthroughBulk","forEach","passthroughClaim","disablePassthrough","find","device","base","defaultTableSortGenerationFn","status","enabled","USB_CLAIM","typeDisplay","hash","sriovgpus","SR_IOVGPU_DEVICE","PARENT_SRIOV_GPU","___CSS_LOADER_EXPORT___","module","content","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.431.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.431.js new file mode 100644 index 00000000..1708c6cb --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.431.js @@ -0,0 +1,2 @@ +"use strict";(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[431],{73975:function(e,t,s){s.d(t,{v6:function(){return p},wM:function(){return S}});var a=s(96261),i=s(20246),r=s.n(i),n=s(46343),o=s.n(n),c=s(76978),l=s(35664),d=s(2602),h=s(32766),m=s(66490),u=s(48249);const p={package_update:!0,packages:["qemu-guest-agent"],runcmd:[["systemctl","enable","--now","qemu-guest-agent.service"]]},g={default:"qemu-guest-agent.service"},S=[{bus:"usb",name:"tablet",type:"tablet"}],f={EXISTING_ALL:"EXISTING_ALL",EXISTING_ONLY_ANNOTATION:"EXISTING_ANNOTATION",EXISTING_ONLY_CLOUD:"EXISTING_CLOUD"};t.Ay={methods:{hasCloudConfigComment(e){const t=e?a.Ay.parseDocument(e):a.Ay.parseDocument({}),s=t?.contents?.items||[];let i=!1;return("cloud-config"===t?.comment||t?.comment?.includes("cloud-config\n"))&&(i=!0),("cloud-config"===t?.commentBefore||t?.commentBefore?.includes("cloud-config\n"))&&(i=!0),s.map((e=>{const t=e.key;("cloud-config"===t?.commentBefore||t?.commentBefore?.includes("cloud-config\n"))&&(i=!0)})),i},getSSHValue(e){const t=this.$store.getters["currentProduct"].inStore,s=this.$store.getters[`${t}/all`](h.rk.SSH)||[];return s.find((t=>t.id===e))?.spec?.publicKey||void 0},getOsType(e){return e.metadata?.labels?.[d.r.OS]},getMatchQGA(e){const t=(0,c.o8)(p);let s=!1;return u.OS.forEach((t=>{t.match&&(s=t.match.find((t=>t===e)))})),t.runcmd[0][3]=s?g[e]:g["default"],t},getSimilarRuncmd(e){const t=(0,c.o8)(p);return t.runcmd[0][3]="openSUSE"===e?g["default"]:g["suse"],t.runcmd[0]},hasInstallAgent(e,t,s){let a={};const i=this.getMatchQGA(t);try{a=r().load(e)||{}}catch(n){return new Error("Function(hasInstallAgent) error"),s}return a?.packages?.includes("qemu-guest-agent")&&!!a?.runcmd?.find((e=>Array.isArray(e)&&e.join("-")===i.runcmd[0].join("-")))},isInstallUSBTablet(e){const t=e?.template?.spec?.domain?.devices?.inputs;return!!Array.isArray(t)&&!!t.find((e=>o()(e,S[0])))},isEfiEnabled(e){return!!e?.template?.spec?.domain?.firmware?.bootloader?.efi},isTpmEnabled(e){return!!e?.template?.spec?.domain?.devices?.tpm},isTPMPersistentStateEnabled(e){return!!e?.template?.spec?.domain?.devices?.tpm?.persistent},isEFIPersistentStateEnabled(e){return!!e?.template?.spec?.domain?.firmware?.bootloader?.efi?.persistent},isSecureBoot(e){return!!e?.template?.spec?.domain?.firmware?.bootloader?.efi?.secureBoot},isCpuPinning(e){return!!e?.template?.spec?.domain?.cpu?.dedicatedCpuPlacement},getCloudInitNoCloud(e){const t=this.getSecret(e);let s=t?.decodedData?.userdata,a=t?.decodedData?.networkdata;const i=e?.template?.spec?.volumes?.find((e=>"cloudinitdisk"===e.name))?.cloudInitNoCloud||{};return i?.userData&&(s=i.userData,this.saveUserDataAsClearText=!0),i?.networkData&&(a=i.networkData,this.saveNetworkDataAsClearText=!0),{userData:s,networkData:a}},getSecret(e){const t=e?.template?.spec?.volumes?.find((e=>"cloudinitdisk"===e.name))?.cloudInitNoCloud||{},s=this.$store.getters["currentProduct"].inStore,a=this.$store.getters[`${s}/all`](l.bB)||[],i=t?.secretRef?.name||t?.networkDataSecretRef?.name,r=a.find((e=>e.metadata.name===i));return r},getAccessCredentials(e){const t=this.$store.getters["currentProduct"].inStore,s=this.$store.getters[`${t}/all`](l.bB)||[],a=e?.template?.spec?.accessCredentials||[],i=JSON.parse(e.template.metadata?.annotations?.[d.r.DYNAMIC_SSHKEYS_NAMES]||"[]");return a.map((e=>{const t=e.userPassword?"userPassword":"sshPublicKey",a=e[t]?.source?.secret?.secretName,r=s.find((e=>e.metadata.name===a)),n={source:t,username:"",newPassword:"",users:[],sshkeys:[],secretName:a,secretRef:r};if(r)if("userPassword"===t){const e=Object.keys(r?.data)[0],t=r.decodedData[e];n.username=e,n.newPassword=t}else{const s=e[t].propagationMethod.qemuGuestAgent.users,r=i?.[a];n.users=s,n.sshkeys=r}else n.secretRef=void 0;return n}))},getRootImageId(e){const t=(0,m.v)(e);return t?.[0]?.metadata?.annotations?.[d.r.IMAGE_ID]||""},getSSHFromAnnotation(e){const t=e?.template?.metadata?.annotations?.[d.r.SSH_NAMES]||"[]";return JSON.parse(t)},convertToJson(e=""){let t={};try{t=r().load(e)}catch(s){new Error("Function(convertToJson) error")}return t},getSSHFromUserData(e){return this.convertToJson(e)?.ssh_authorized_keys||[]},compareSSHValue(e="",t=""){const s=/(\r\n\t|\n|\r\t)|(\s*)/gm;return e.replace(s,"")===t.replace(s,"")},mergeAllSSHs(e){const t=this.getSSHFromAnnotation(e),{userScript:s}=this.getCloudInitNoCloud(e);if(!t?.length<0&&!s)return[];let a=[];const i=this.$store.getters["currentProduct"].inStore,r=this.$store.getters[`${i}/all`](h.rk.SSH)||[];a=(t||[]).map((e=>{const t=r.find((t=>t.id===e));return t?{id:t.id,data:t,type:f.EXISTING_ALL}:{id:e,data:e,type:f.EXISTING_ONLY_ANNOTATION}}));const n=this.getSSHFromUserData(s);return n.map((e=>{const t=r.find((t=>this.compareSSHValue(e,t.spec?.publicKey)));t&&!a.find((e=>e.id===t.id))?a.push({id:t.id,data:t,type:f.EXISTING_ALL}):t||a.push({id:"Unknown",data:e,type:f.EXISTING_ONLY_CLOUD})})),a}}}},48249:function(e,t,s){s.d(t,{OS:function(){return $},PO:function(){return D}});var a=s(96261),i=s(20246),r=s.n(i),n=s(46343),o=s.n(n),c=s(3514),l=s.n(c),d=s(88088),h=s.n(d),m=s(74302),u=s(76978),p=s(88339),g=s(92043),S=s(4514),f=s(95799),y=s(14220),A=s(35664),v=s(2841),E=s(2602),N=s(68851),k=s(66905),T=s(50889),b=s(32766),I=s(66490),M=s(73975),C=s(4364);const w="longhorn-system/v2-data-engine",D="management Network",$=[{label:"Windows",value:"windows"},{label:"Linux",value:"linux"},{label:"SUSE Linux Enterprise",value:"SLEs"},{label:"Debian",value:"debian"},{label:"Fedora",value:"fedora"},{label:"Gentoo",value:"gentoo"},{label:"Oracle",value:"oracle"},{label:"Red Hat",match:["redhat","rhel"],value:"redhat"},{label:"openSUSE",value:"openSUSE"},{label:"Ubuntu",value:"ubuntu"},{label:"Other Linux",match:["centos"],value:"otherLinux"}],_="cd-rom",O="disk";t.Ay={mixins:[M.Ay],props:{value:{type:Object,required:!0},resourceType:{type:String,default:""}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={pvs:this.$store.dispatch(`${e}/findAll`,{type:A.PV}),pvcs:this.$store.dispatch(`${e}/findAll`,{type:A.YH}),storageClasses:this.$store.dispatch(`${e}/findAll`,{type:A.fJ}),sshs:this.$store.dispatch(`${e}/findAll`,{type:b.rk.SSH}),settings:this.$store.dispatch(`${e}/findAll`,{type:b.rk.SETTING}),images:this.$store.dispatch(`${e}/findAll`,{type:b.rk.IMAGE}),versions:this.$store.dispatch(`${e}/findAll`,{type:b.rk.VM_VERSION}),templates:this.$store.dispatch(`${e}/findAll`,{type:b.rk.VM_TEMPLATE}),networkAttachment:this.$store.dispatch(`${e}/findAll`,{type:A.XG}),vmis:this.$store.dispatch(`${e}/findAll`,{type:b.rk.VMI}),vmims:this.$store.dispatch(`${e}/findAll`,{type:b.rk.VMIM}),vms:this.$store.dispatch(`${e}/findAll`,{type:b.rk.VM}),secrets:this.$store.dispatch(`${e}/findAll`,{type:A.bB}),addons:this.$store.dispatch(`${e}/findAll`,{type:b.rk.ADD_ONS}),longhornV2Engine:this.$store.dispatch(`${e}/find`,{type:A.oe.SETTINGS,id:w})};this.$store.getters[`${e}/schemaFor`](A.NW)&&(t.nodes=this.$store.dispatch(`${e}/findAll`,{type:A.NW})),this.$store.getters[`${e}/schemaFor`](b.rk.CLUSTER_NETWORK)&&(t.clusterNetworks=this.$store.dispatch(`${e}/findAll`,{type:b.rk.CLUSTER_NETWORK})),this.$store.getters[`${e}/schemaFor`](b.rk.VLAN_CONFIG)&&(t.clusterNetworks=this.$store.dispatch(`${e}/findAll`,{type:b.rk.VLAN_CONFIG})),this.$store.getters[`${e}/schemaFor`](A.oe.VOLUMES)&&(t.longhornVolumes=this.$store.dispatch(`${e}/findAll`,{type:A.oe.VOLUMES}));const s=await(0,p.kR)(t),a=!!this.$store.getters[`${e}/schemaFor`](b.rk.PCI_DEVICE),i=!!this.$store.getters[`${e}/schemaFor`](b.rk.SR_IOVGPU_DEVICE),r=s.addons.reduce(((e,t)=>({...e,[t.name]:t.spec?.enabled})),{});this.enabledPCI=a&&r[k.Jo.PCI_DEVICE_CONTROLLER],this.enabledSriovgpu=i&&r[k.Jo.PCI_DEVICE_CONTROLLER]&&r[k.Jo.NVIDIA_DRIVER_TOOLKIT_CONTROLLER]},data(){const e=this.realMode===y.dT;return{OS:$,isClone:e,spec:null,osType:"linux",sshKey:[],maintenanceStrategies:k.hg,maintenanceStrategy:"Migrate",runStrategies:k.vo,runStrategy:"RerunOnFailure",installAgent:!0,hasCreateVolumes:[],installUSBTablet:!0,networkScript:"",userScript:"",imageId:"",diskRows:[],networkRows:[],machineType:"",secretName:"",secretRef:null,showAdvanced:!1,deleteAgent:!0,memory:null,cpu:"",reservedMemory:null,accessCredentials:[],efiEnabled:!1,tpmEnabled:!1,tpmPersistentStateEnabled:!1,efiPersistentStateEnabled:!1,secureBoot:!1,userDataTemplateId:"",saveUserDataAsClearText:!1,saveNetworkDataAsClearText:!1,enabledPCI:!1,enabledSriovgpu:!1,immutableMode:this.realMode===y.YQ?y.YQ:y.nW,terminationGracePeriodSeconds:"",cpuPinning:!1}},computed:{inStore(){return this.$store.getters["currentProduct"].inStore},images(){return this.$store.getters[`${this.inStore}/all`](b.rk.IMAGE)},versions(){return this.$store.getters[`${this.inStore}/all`](b.rk.VM_VERSION)},templates(){return this.$store.getters[`${this.inStore}/all`](b.rk.VM_TEMPLATE)},pvcs(){return this.$store.getters[`${this.inStore}/all`](A.YH)},secrets(){return this.$store.getters[`${this.inStore}/all`](A.bB)},filteredNamespaces(){return this.$store.getters["harvester/all"](A.CU).filter((e=>!e.isSystem))},nodes(){return this.$store.getters["harvester/all"](A.NW)},nodesIdOptions(){const e=this.$store.getters[`${this.inStore}/all`](A.NW),t=this.networkRows.map((e=>e.networkName)),s=this.$store.getters[`${this.inStore}/all`](A.XG),a=t.map((e=>s.find((t=>t.id===e)))).filter((e=>e?.id)),i=(0,N.sb)(a.map((e=>e.clusterNetworkResource?.id)));return e.filter((e=>!e.isUnSchedulable&&"true"!==e.isEtcd)).map((e=>{const t=[];let s=!0;return i.length>0&&i.map((e=>{t.push(`network.harvesterhci.io/${e}`)})),t.map((t=>{"true"!==e.metadata?.labels?.[t]&&(s=!1)})),{label:s?e.nameDisplay:`${e.nameDisplay} (${this.t("harvester.virtualMachine.scheduling.networkNotSupport")})`,value:e.id,disabled:!s}}))},defaultStorageClass(){const e=this.$store.getters[`${this.inStore}/all`](A.fJ).find((e=>e.isDefault));return e},storageClassSetting(){try{const e=this.$store.getters[`${this.inStore}/all`](b.rk.SETTING).find((e=>e.id===T.EP.DEFAULT_STORAGE_CLASS))?.value;return JSON.parse(e)}catch(e){return{}}},customVolumeMode(){return this.storageClassSetting.volumeMode||"Block"},customAccessMode(){return this.storageClassSetting.accessModes||"ReadWriteMany"},isWindows(){return"windows"===this.osType},needNewSecret(){return this.resourceType===b.rk.VM_VERSION||this.isCreate},defaultTerminationSetting(){const e=this.$store.getters[`${this.inStore}/all`](b.rk.SETTING).find((e=>e.id===T.EP.VM_TERMINATION_PERIOD))||{};return Number(e?.value||e?.default)},affinityLabels(){return{namespaceInputLabel:this.t("harvester.virtualMachine.affinity.namespaces.label"),namespaceSelectionLabels:[this.t("harvester.virtualMachine.affinity.thisPodNamespace"),this.t("workload.scheduling.affinity.allNamespaces"),this.t("harvester.virtualMachine.affinity.matchExpressions.inNamespaces")],addLabel:this.t("harvester.virtualMachine.affinity.addLabel"),topologyKeyPlaceholder:this.t("harvester.virtualMachine.affinity.topologyKey.placeholder")}}},async created(){await this.$store.dispatch(`${this.inStore}/findAll`,{type:A.bB}),this.getInitConfig({value:this.value,init:this.isCreate})},methods:{getInitConfig(e){const{value:t,existUserData:s,fromTemplate:a=!1,init:i=!1}=e,r=this.resourceType===b.rk.VM?t:this.resourceType===b.rk.BACKUP?this.value.status?.source:t.spec.vm,n=this.resourceType===b.rk.BACKUP?this.value.status?.volumeBackups:null,o=r?.spec;if(!o)return;const c=o.template.spec.domain.resources;(!c?.limits||c?.limits&&!c?.limits?.memory&&null!==c?.limits?.memory)&&(o.template.spec.domain.resources={...o.template.spec.domain.resources,limits:{...o.template.spec.domain.resources.limits,memory:o.template.spec.domain.resources.requests.memory}}),r.metadata.labels||(r.metadata.labels={});const l=r.metadata.labels?.[E.r.VM_MAINTENANCE_MODE_STRATEGY]||"Migrate",d=o.runStrategy||"RerunOnFailure",h=t.machineType,m=o.template.spec.domain?.cpu?.cores,u=o.template.spec.domain.resources.limits.memory,p=r.metadata?.annotations?.[E.r.VM_RESERVED_MEMORY],g=o.template.spec?.terminationGracePeriodSeconds||this.defaultTerminationSetting,f=this.getSSHFromAnnotation(o)||[],y=this.getRootImageId(r)||"",A=this.getDiskRows(r,n),v=this.getNetworkRows(r,{fromTemplate:a,init:i}),N=this.getHasCreatedVolumes(o)||[];let{userData:k,networkData:T}=this.getCloudInitNoCloud(o);if(this.resourceType===b.rk.BACKUP){const e=this.value.status?.secretBackups;if(e){const t=e[0]?.data?.networkdata||"",s=e[0]?.data?.userdata||"";k=(0,S.u)(s),T=(0,S.u)(t)}}const I=this.getOsType(r)||"linux";k=!this.isCreate||s||this.isClone?k:this.getInitUserData({osType:I});const M=this.isInstallUSBTablet(o),C=this.hasInstallAgent(k,I,!0),w=this.isEfiEnabled(o),D=this.isTpmEnabled(o),$=this.isTPMPersistentStateEnabled(o),_=this.isEFIPersistentStateEnabled(o),O=this.isSecureBoot(o),P=this.isCpuPinning(o),R=this.getSecret(o),V=this.getAccessCredentials(o);Object.prototype.hasOwnProperty.call(o,"running")&&(delete o.running,o.runStrategy="RerunOnFailure"),this["spec"]=o,this["maintenanceStrategy"]=l,this["runStrategy"]=d,this["secretRef"]=R,this["accessCredentials"]=V,this["userScript"]=k,this["networkScript"]=T,this["sshKey"]=f,this["osType"]=I,this["installAgent"]=C,this["cpu"]=m,this["memory"]=u,this["reservedMemory"]=p,this["machineType"]=h,this["terminationGracePeriodSeconds"]=g,this["installUSBTablet"]=M,this["efiEnabled"]=w,this["efiPersistentStateEnabled"]=_,this["tpmEnabled"]=D,this["tpmPersistentStateEnabled"]=$,this["secureBoot"]=O,this["cpuPinning"]=P,this["hasCreateVolumes"]=N,this["networkRows"]=v,this["imageId"]=y,this["diskRows"]=A,this.refreshYamlEditor()},getDiskRows(e,t){const s=e.metadata.namespace,a=e.spec.template.spec.volumes||[],i=e.spec.template.spec.domain.devices.disks||[],r=(0,I.v)(e);let n=[];if(0===i.length){let e="virtio",s=O,a="10Gi";const i=this.images.find((e=>this.imageId===e.id)),r=/iso$/i.test(i?.imageSuffix),o=Math.max(i?.status?.size,i?.status?.virtualSize),c=i?.isEncrypted||!1,l=t?.find((e=>"disk-0"===e.volumeName))||null;if(r&&(e="sata",s=_),o){let e=Math.ceil(o/1024/1024/1024);r||(e=Math.max(e,10)),a=`${e}Gi`}n.push({id:(0,g.vx)(5),source:k.xO.IMAGE,name:"disk-0",accessMode:"ReadWriteMany",bus:e,volumeName:"",size:a,type:s,storageClassName:"",image:this.imageId,volumeMode:"Block",isEncrypted:c,volumeBackups:l})}else n=i.map(((e,i)=>{const n=a.find((t=>t.name===e.name));let o="",c="",l="",d="",h="",m="",u="",p="",S="",y=!1,v=null;const N=e?.cdrom?_:e?.disk?O:"";if(n?.containerDisk&&(l=k.xO.CONTAINER,h=n.containerDisk.image),n.persistentVolumeClaim&&n.persistentVolumeClaim?.claimName){m=n.persistentVolumeClaim.claimName;const e=r.find((e=>e.metadata.name===m));if(d=m,e){void 0!==e.metadata?.annotations?.[E.r.IMAGE_ID]?(c=e.metadata?.annotations?.[E.r.IMAGE_ID],l=k.xO.IMAGE):l=k.xO.NEW;const t=e?.spec||{};p=t?.volumeMode,u=t?.accessModes?.[0],o=t?.resources?.requests?.storage||"10Gi",S=t?.storageClassName,v=t?.dataSource}else{const e=this.$store.getters["harvester/all"](A.YH),t=e.find((e=>e.id===`${s}/${n?.persistentVolumeClaim?.claimName}`));l=k.xO.ATTACH_VOLUME,u=t?.spec?.accessModes?.[0]||"ReadWriteMany",o=t?.spec?.resources?.requests?.storage||"10Gi",S=t?.spec?.storageClassName,p=t?.spec?.volumeMode||"Block",m=t?.metadata?.name||""}y=n.persistentVolumeClaim.hotpluggable||!1}const T=e?.disk?.bus||e?.cdrom?.bus,b=e?.bootOrder?e?.bootOrder:i,I=(0,f.ao)(o),M=(0,f.Mo)(I,{increment:1024,addSuffix:!1,maxExponent:3,minExponent:3}),C=this.pvcs.find((e=>e.id===`${this.value.metadata.namespace}/${m}`)),w=C?.relatedPV?.metadata?.annotations?.[E.r.VOLUME_ERROR],D=C?.isEncrypted||!1,$=t?.find((t=>t.volumeName===e.name))||null;return{id:(0,g.vx)(5),bootOrder:b,source:l,name:e.name,realName:d,bus:T,volumeName:m,container:h,accessMode:u,size:`${M}Gi`,volumeMode:p||this.customVolumeMode,image:c,type:N,storageClassName:S,hotpluggable:y,volumeStatus:w,dataSource:v,namespace:s,isEncrypted:D,volumeBackups:$}}));return n=(0,m.Ul)(n,"bootOrder"),n.filter((e=>"cloudinitdisk"!==e.name))},getNetworkRows(e,t){const{fromTemplate:s=!1,init:a=!1}=t,i=e.spec.template.spec.networks||[],r=e.spec.template.spec.domain.devices.interfaces||[],n=r.map(((e,t)=>{const r=i.find((t=>e.name===t.name)),n=e.sriov?"sriov":e.bridge?"bridge":"masquerade",o=!!r.pod;return{...e,index:t,type:n,isPod:o,newCreateId:!(!s&&!a)&&(0,g.vx)(10),model:e.model,networkName:o?D:r?.multus?.networkName}}));return n},parseVM(){this.userData=this.getUserData({osType:this.osType,installAgent:this.installAgent}),this.parseOther(),this.parseAccessCredentials(),this.parseNetworkRows(this.networkRows),this.parseDiskRows(this.diskRows)},parseOther(){this.spec.template.spec.domain.machine?this.spec.template.spec.domain.machine["type"]=this.machineType:this.spec.template.spec.domain["machine"]={type:this.machineType},this.spec.template.spec.domain.cpu.cores=this.cpu,this.spec.template.spec.domain.resources.limits.cpu=this.cpu?this.cpu.toString():this.cpu,this.spec.template.spec.domain.resources.limits.memory=this.memory,this.spec.template.spec.terminationGracePeriodSeconds=this.terminationGracePeriodSeconds;const e=this.resourceType===b.rk.VM?this.value:this.value.spec.vm;this.reservedMemory?e.metadata.annotations[E.r.VM_RESERVED_MEMORY]=this.reservedMemory:delete e.metadata.annotations[E.r.VM_RESERVED_MEMORY],"Migrate"===this.maintenanceStrategy?delete e.metadata.labels[E.r.VM_MAINTENANCE_MODE_STRATEGY]:e.metadata.labels[E.r.VM_MAINTENANCE_MODE_STRATEGY]=this.maintenanceStrategy},parseDiskRows(e){const t=[],s=[],a=[],i=[];if(e.forEach(((e,r)=>{const n=this.value.metadata?.name||"";let o="";o=e.source===k.xO.ATTACH_VOLUME?e.volumeName:this.isClone||!this.hasCreateVolumes.includes(e.realName)?`${n}-${e.name}-${(0,g.vx)(5).toLowerCase()}`:e.realName;const c=this.parseDisk(e,r),l=this.parseVolume(e,o),d=this.parseVolumeClaimTemplate(e,o);t.push(c),s.push(l),a.push(o),e.source!==k.xO.CONTAINER&&i.push(d)})),this.secretName&&!this.needNewSecret||(this.secretName=this.generateSecretName(this.secretNamePrefix)),!t.find((e=>"cloudinitdisk"===e.name))&&(this.userData||this.networkData)&&!this.isWindows){t.push({name:"cloudinitdisk",disk:{bus:"virtio"}});const e=this.getUserData({osType:this.osType,installAgent:this.installAgent}),a={name:"cloudinitdisk",cloudInitNoCloud:{}};this.saveUserDataAsClearText?a.cloudInitNoCloud.userData=e:a.cloudInitNoCloud.secretRef={name:this.secretName},this.saveNetworkDataAsClearText?a.cloudInitNoCloud.networkData=this.networkScript:a.cloudInitNoCloud.networkDataSecretRef={name:this.secretName},s.push(a)}let r={...this.spec,runStrategy:this.runStrategy,template:{...this.spec.template,metadata:{...this.spec?.template?.metadata,annotations:{...this.spec?.template?.metadata?.annotations,[E.r.SSH_NAMES]:JSON.stringify(this.sshKey)},labels:{...this.spec?.template?.metadata?.labels,[E.r.VM_NAME]:this.value?.metadata?.name}},spec:{...this.spec.template?.spec,domain:{...this.spec.template?.spec?.domain,devices:{...this.spec.template?.spec?.domain?.devices,disks:t}},volumes:s}}};0===s.length&&delete r.template.spec.volumes,this.resourceType===b.rk.VM?(this.isSingle||(r=this.multiVMScheduler(r)),this.value.metadata["annotations"]={...this.value.metadata.annotations,[E.r.VOLUME_CLAIM_TEMPLATE]:JSON.stringify(i),[E.r.NETWORK_IPS]:JSON.stringify(this.value.networkIps)},this.value.metadata["labels"]={...this.value.metadata.labels,[E.r.CREATOR]:"harvester",[E.r.OS]:this.osType},this.value["spec"]=r,this["spec"]=r):this.resourceType===b.rk.VM_VERSION&&(this.value.spec.vm["spec"]=r,this.value.spec.vm.metadata["annotations"]={...this.value.spec.vm.metadata.annotations,[E.r.VOLUME_CLAIM_TEMPLATE]:JSON.stringify(i)},this.value.spec.vm.metadata["labels"]={...this.value.spec.vm.metadata.labels,[E.r.OS]:this.osType},this["spec"]=r)},removeTrailingHyphen(e){while(e.endsWith("-"))e=e.slice(0,-1);return e},multiVMScheduler(e){const t=this.removeTrailingHyphen(this.namePrefix);e.template.metadata.labels[E.r.VM_NAME_PREFIX]=t;const s={weight:1,podAffinityTerm:{topologyKey:v.yA,labelSelector:{matchLabels:{[E.r.VM_NAME_PREFIX]:t}}}};return{...e,template:{...e.template,spec:{...e.template.spec,affinity:{...e.template.spec.affinity,podAntiAffinity:{...e.template.spec?.affinity?.podAntiAffinity,preferredDuringSchedulingIgnoredDuringExecution:[...e.template.spec?.affinity?.podAntiAffinity?.preferredDuringSchedulingIgnoredDuringExecution||[],s]}}}}}},parseNetworkRows(e){const t=[],s=[];e.forEach((e=>{const a=this.parseNetwork(e),i=this.parseInterface(e);t.push(a),s.push(i)}));const a={...this.spec.template.spec,domain:{...this.spec.template.spec.domain,devices:{...this.spec.template.spec.domain.devices,interfaces:s}},networks:t};this.spec.template["spec"]=a},parseAccessCredentials(){const e=[],t={},s=JSON.parse(this.spec?.template?.metadata?.annotations?.[E.r.DYNAMIC_SSHKEYS_USERS]||"[]");for(const a of this.accessCredentials)this.needNewSecret&&(a.secretName=this.generateSecretName(this.secretNamePrefix)),a.source===k.cI.RESET_PWD&&(s.push(a.username),e.push({userPassword:{source:{secret:{secretName:a.secretName}},propagationMethod:{qemuGuestAgent:{}}}})),a.source===k.cI.INJECT_SSH&&(s.push(...a.users),t[a.secretName]=a.sshkeys,e.push({sshPublicKey:{source:{secret:{secretName:a.secretName}},propagationMethod:{qemuGuestAgent:{users:a.users}}}}));0===e.length&&this.spec.template.spec.accessCredentials?delete this.spec.template.spec.accessCredentials:this.spec.template.spec.accessCredentials=e,0!==s.length&&(this.spec.template.metadata.annotations[E.r.DYNAMIC_SSHKEYS_USERS]=JSON.stringify(Array.from(new Set(s))),this.spec.template.metadata.annotations[E.r.DYNAMIC_SSHKEYS_NAMES]=JSON.stringify(t))},getMaintenanceStrategyOptionLabel(e){return this.t(`harvester.virtualMachine.maintenanceStrategy.options.${e.label||e}`)},getInitUserData(e){const t=this.getMatchQGA(e.osType),s=r().dump(t);return`#cloud-config\n${s}`},getUserData(e){try{let t=this.userScript?a.Ay.parseDocument(this.userScript):a.Ay.parseDocument({});const s=this.mergeSSHAuthorizedKeys(this.userScript);s.length>0?t.setIn(["ssh_authorized_keys"],s):a.Ay.isCollection(t.getIn("ssh_authorized_keys"))&&t.deleteIn(["ssh_authorized_keys"]),t=e.installAgent?this.mergeQGA({userDataDoc:t,...e}):this.deleteQGA({userDataDoc:t,...e});const i=t.toString();if("{}\n"===i)return;return i}catch(t){return C.error("Error: Unable to parse yaml document",t),this.userScript}},updateSSHKey(e){this["sshKey"]=e},updateCpuMemory(e,t){this["cpu"]=e,this["memory"]=t},parseDisk(e,t){const s={name:e.name};return e.type===O?s.disk={bus:e.bus}:e.type===_&&(s.cdrom={bus:e.bus}),s.bootOrder=t+1,s},parseVolume(e,t){const s={name:e.name};return e.source===k.xO.CONTAINER?s.containerDisk={image:e.container}:e.source!==k.xO.IMAGE&&e.source!==k.xO.NEW&&e.source!==k.xO.ATTACH_VOLUME||(s.persistentVolumeClaim={claimName:t},e.hotpluggable&&(s.persistentVolumeClaim.hotpluggable=!0)),s},parseVolumeClaimTemplate(e,t){!String(e.size).includes("Gi")&&e.size&&(e.size=`${e.size}Gi`);const s={metadata:{name:t},spec:{accessModes:[e.accessMode],resources:{requests:{storage:e.size}},volumeMode:e.volumeMode}};switch(e.dataSource&&(s.spec.dataSource=e.dataSource),e.source){case k.xO.ATTACH_VOLUME:s.spec.storageClassName=e.storageClassName;break;case k.xO.NEW:s.spec.storageClassName=e.storageClassName;break;case k.xO.IMAGE:{const t=this.images.find((t=>e.image===t.id));t?(s.spec.storageClassName=t.storageClassName,s.metadata.annotations={[E.r.IMAGE_ID]:t.id}):s.metadata.annotations={[E.r.IMAGE_ID]:""};break}}return s},getSSHListValue(e){return e.map((e=>this.getSSHValue(e))).filter((e=>void 0!==e))},parseInterface(e){const t={},s=e.type;return t[s]={},e.macAddress&&(t.macAddress=e.macAddress),t.model=e.model,t.name=e.name,t},parseNetwork(e){const t={name:e.name};return e.isPod?t.pod={}:t.multus={networkName:e.networkName},t},updateUserData(e){this.userScript=e},updateNetworkData(e){this.networkScript=e},mergeSSHAuthorizedKeys(e){try{const t=a.Ay.parseDocument(e).get("ssh_authorized_keys")?.toJSON()||[],s=this.getSSHListValue(this.sshKey);return t.length?[...new Set([...s,...t])]:s}catch(t){return[]}},deleteYamlDocProp(e,t){try{const s=e.getIn([])?.items[0],a=s?.key,i=!!a?.commentBefore?.includes("cloud-config"),r=a.source===t[t.length-1];a&&i&&r||e.deleteIn(t)}catch(s){}},mergeQGA(e){const{osType:t,userDataDoc:s}=e,i=this.getMatchQGA(t),r=s.toString(),n=a.Ay.parse(r);let o=n?.packages||[],c=n?.runcmd||[];if(s.setIn(["package_update"],!0),Array.isArray(o)?o.includes("qemu-guest-agent")||o.push("qemu-guest-agent"):o=M.v6.packages,Array.isArray(c)){let e=-1;const s=c.find((e=>Array.isArray(e)&&e.join("-")===i.runcmd[0].join("-"))),a=c.find(((s,a)=>!(!Array.isArray(s)||s.join("-")!==this.getSimilarRuncmd(t).join("-"))&&(e=a,!0)));a?c[e]=i.runcmd[0]:s||c.push(i.runcmd[0])}else c=i.runcmd;return o.length>0?s.setIn(["packages"],o):(s.setIn(["packages"],[]),this.deleteYamlDocProp(s,["packages"]),this.deleteYamlDocProp(s,["package_update"])),c.length>0?s.setIn(["runcmd"],c):this.deleteYamlDocProp(s,["runcmd"]),s},deleteQGA(e){const{osType:t,userDataDoc:s,deletePackage:i=!1}=e,r=this.$store.getters["harvester/byId"](A.K5,this.userDataTemplateId)?.data?.cloudInit||"",n=s.toString(),o=a.Ay.parse(n),c=o?.packages||[],l=o?.runcmd||[];if(Array.isArray(c)&&i){const e=this.convertToJson(r);for(let t=0;t<c.length;t++)"qemu-guest-agent"===c[t]&&(Array.isArray(e?.packages)&&e.packages.includes("qemu-guest-agent")||c.splice(t,1))}if(Array.isArray(l)){const e=this.getMatchQGA(t);for(let t=0;t<l.length;t++)Array.isArray(l[t])&&l[t].join("-")===e.runcmd[0].join("-")&&l.splice(t,1)}return c.length>0?s.setIn(["packages"],c):(s.setIn(["packages"],[]),this.deleteYamlDocProp(s,["packages"]),this.deleteYamlDocProp(s,["package_update"])),l.length>0?s.setIn(["runcmd"],l):this.deleteYamlDocProp(s,["runcmd"]),s},generateSecretName(e){return e?`${e}-${(0,g.vx)(5).toLowerCase()}`:void 0},getOwnerReferencesFromVM(e){const t=e.metadata.name,s=e.kind,a=this.resourceType===b.rk.VM?"kubevirt.io/v1":"harvesterhci.io/v1beta1",i=e?.metadata?.uid;return[{name:t,kind:s,uid:i,apiVersion:a}]},async saveSecret(e){if(!e?.spec||!this.secretName||this.isWindows)return!0;let t=this.getSecret(e.spec);!t&&this.isEdit&&this.secretRef&&(t=this.secretRef),t&&!this.needNewSecret||(t=await this.$store.dispatch("harvester/create",{metadata:{name:this.secretName,namespace:this.value.metadata.namespace,labels:{[E.r.CLOUD_INIT]:"harvester"},ownerReferences:this.getOwnerReferencesFromVM(e)},type:A.bB}));try{t&&(this.saveUserDataAsClearText&&this.saveNetworkDataAsClearText||(t.setData("userdata",this.userData||""),t.setData("networkdata",this.networkScript||""),await t.save()))}catch(s){return Promise.reject(s)}},async saveAccessCredentials(e){if(!e?.spec)return!0;const t=[];for(const a of this.accessCredentials){let s=a.secretRef;if(s&&!this.needNewSecret||(s=await this.$store.dispatch("harvester/create",{metadata:{name:a.secretName,namespace:e.metadata.namespace,labels:{[E.r.CLOUD_INIT]:"harvester"},ownerReferences:this.getOwnerReferencesFromVM(e)},type:A.bB})),a.source===k.cI.RESET_PWD&&s.setData(a.username,a.newPassword),a.source===k.cI.INJECT_SSH)for(const e of a.sshkeys){const t=(this.$store.getters["harvester/all"](b.rk.SSH)||[]).find((t=>t.id===e));s.setData(`${t.metadata.namespace}-${t.metadata.name}`,t.spec.publicKey)}t.push(s)}try{for(const e of t)await e.save()}catch(s){return Promise.reject(s)}},getAccessCredentialsValidation(){const e=[];for(let t=0;t<this.accessCredentials.length;t++){const s=this.accessCredentials[t],a=s.source;if(a===k.cI.RESET_PWD){if(!s.username){const t=this.t("harvester.virtualMachine.input.username"),s=this.t("validation.required",{key:t});e.push(s)}if(!s.newPassword){const t=this.t("harvester.virtualMachine.input.password"),s=this.t("validation.required",{key:t});e.push(s)}if(s.newPassword&&s.newPassword.length<6){const t=this.t("harvester.virtualMachine.input.password"),s=this.t("validation.number.min",{key:t,val:"6"});e.push(s)}}else{if(!s.users||0===s.users.length){const t=this.t("harvester.virtualMachine.input.username"),s=this.t("validation.required",{key:t});e.push(s)}if(!s.sshkeys||0===s.sshkeys.length){const t=this.t("harvester.virtualMachine.input.sshKeyValue"),s=this.t("validation.required",{key:t});e.push(s)}}if(e.length>0)break}return e},getHasCreatedVolumes(e){const t=[];return e.template.spec.volumes&&e.template.spec.volumes.forEach((e=>{e?.persistentVolumeClaim?.claimName&&t.push(e.persistentVolumeClaim.claimName)})),t},handlerUSBTablet(e){const t=this.isInstallUSBTablet(this.spec),s=this.spec.template.spec.domain.devices?.inputs||[];if(e&&!t)s.length>0?s.push(M.wM[0]):Object.assign(this.spec.template.spec.domain.devices,{inputs:[M.wM[0]]});else if(!e){const e=s.findIndex((e=>o()(e,M.wM[0])));t&&1===s.length?delete this.spec.template.spec.domain.devices["inputs"]:t&&(s.splice(e,1),this.spec.template.spec.domain.devices["inputs"]=s)}},setBootMethod(e={efi:!1,secureBoot:!1,efiPersistentStateEnabled:!1}){if(!e.efi)return delete this.spec.template.spec.domain["firmware"],void delete this.spec.template.spec.domain.features["smm"];if((0,u.hZ)(this.spec.template.spec.domain,"firmware.bootloader.efi.secureBoot",e.secureBoot),e.secureBoot)(0,u.hZ)(this.spec.template.spec.domain,"features.smm.enabled",!0);else try{delete this.spec.template.spec.domain.features.smm["enabled"];const e=0===Object.keys(this.spec.template.spec.domain.features.smm).length;e&&delete this.spec.template.spec.domain.features["smm"]}catch(t){}e.efiPersistentStateEnabled?(0,u.hZ)(this.spec.template.spec.domain,"firmware.bootloader.efi.persistent",!0):delete this.spec.template.spec.domain.firmware.bootloader.efi["persistent"]},setCpuPinning(e){e?(0,u.hZ)(this.spec.template.spec.domain.cpu,"dedicatedCpuPlacement",!0):delete this.spec.template.spec.domain.cpu["dedicatedCpuPlacement"]},setTPM({tpmEnabled:e=!1,tpmPersistentStateEnabled:t=!1}={}){e?(0,u.hZ)(this.spec.template.spec.domain.devices,"tpm",t?{persistent:!0}:{}):delete this.spec.template.spec.domain.devices["tpm"]},deleteSSHFromUserData(e=[]){const t=this.getSSHFromUserData(this.userScript);e.map((e=>{const s=t.findIndex((t=>t===this.getSSHValue(e)));s>=0&&t.splice(s,1)}));const s=this.convertToJson(this.userScript);s.ssh_authorized_keys=t,0===t.length&&delete s.ssh_authorized_keys,l()(s)?this["userScript"]=void 0:this["userScript"]=r().dump(s),this.refreshYamlEditor()},refreshYamlEditor(){this.$nextTick((()=>{this.$refs.yamlEditor?.updateValue()}))},toggleAdvanced(){this.showAdvanced=!this.showAdvanced},updateAgent(e){e||(this.deletePackage=!0)},updateDataTemplateId(e,t){if("user"===e){const e=this.installAgent;this.userDataTemplateId=t,this.$nextTick((()=>{e&&(this.installAgent=e)}))}},updateReserved(e={}){const{memory:t}=e;this["reservedMemory"]=t},updateTerminationGracePeriodSeconds(e){this["terminationGracePeriodSeconds"]=e}},watch:{diskRows:{handler(e,t){if(Array.isArray(e)){const s=e[0]?.image,a=this.images.find((e=>s===e.id)),i=a?.imageOSType,r=t[0]?.image;this.isCreate&&r===s&&s&&(this.osType=i)}}},secretRef:{handler(e){e&&this.resourceType!==b.rk.BACKUP&&(this.secretName=e?.metadata.name)},immediate:!0,deep:!0},isWindows(e){e&&(this["sshKey"]=[],this["userScript"]=void 0,this["installAgent"]=!1)},installUSBTablet(e){this.handlerUSBTablet(e)},efiEnabled(e){this.setBootMethod({efi:e,secureBoot:this.secureBoot,efiPersistentStateEnabled:this.efiPersistentStateEnabled})},secureBoot(e){this.setBootMethod({efi:this.efiEnabled,secureBoot:e,efiPersistentStateEnabled:this.efiPersistentStateEnabled})},efiPersistentStateEnabled(e){this.setBootMethod({efi:this.efiEnabled,secureBoot:this.secureBoot,efiPersistentStateEnabled:e})},cpuPinning(e){this.setCpuPinning(e)},tpmEnabled(e){this.setTPM({tpmEnabled:e,tpmPersistentStateEnabled:this.tpmPersistentStateEnabled})},tpmPersistentStateEnabled(e){this.setTPM({tpmEnabled:this.tpmEnabled,tpmPersistentStateEnabled:e})},installAgent:{handler(e){if(this.deleteAgent){let t=this.getUserData({installAgent:e,osType:this.osType,deletePackage:this.deletePackage});if(e){const e=this.hasCloudConfigComment(t);e||(t=`#cloud-config\n${t}`)}this["userScript"]=t,this.refreshYamlEditor()}this.deleteAgent=!0,this.deletePackage=!1}},osType(e){const t=this.getUserData({installAgent:this.installAgent,osType:e});this["userScript"]=t,this.refreshYamlEditor()},userScript(e,t){const s=this.hasInstallAgent(e,this.osType,this.installAgent);s!==this.installAgent&&(this.deleteAgent=!1,this.installAgent=s)},sshKey(e,t){this.userScript=this.getUserData({installAgent:this.installAgent,osType:this.osType}),this.refreshYamlEditor();const s=h()(t,e);s.length>0&&this.isCreate&&this.deleteSSHFromUserData(s)}}}}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.431.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.431.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.431.js.map new file mode 100644 index 00000000..49a78009 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.431.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.431.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./mixins/harvester-vm/impl.js","webpack://harvester-1.5.0-dev/./mixins/harvester-vm/index.js"],"sourcesContent":["import YAML from 'yaml';\nimport jsyaml from 'js-yaml';\nimport isEqual from 'lodash/isEqual';\nimport { clone } from '@shell/utils/object';\nimport { SECRET } from '@shell/config/types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../../types';\nimport { parseVolumeClaimTemplates } from '../../utils/vm';\nimport { OS } from './index';\n\nexport const QGA_JSON = {\n package_update: true,\n packages: ['qemu-guest-agent'],\n runcmd: [\n [\n 'systemctl',\n 'enable',\n '--now',\n 'qemu-guest-agent.service'\n ]\n ]\n};\n\nexport const QGA_MAP = { default: 'qemu-guest-agent.service' };\n\nexport const USB_TABLET = [{\n bus: 'usb',\n name: 'tablet',\n type: 'tablet'\n}];\n\nexport const SSH_EXISTING_TYPE = {\n EXISTING_ALL: 'EXISTING_ALL',\n EXISTING_ONLY_ANNOTATION: 'EXISTING_ANNOTATION',\n EXISTING_ONLY_CLOUD: 'EXISTING_CLOUD',\n};\n\nexport default {\n methods: {\n hasCloudConfigComment(userScript) {\n // Check that userData contains: #cloud-config\n const userDataDoc = userScript ? YAML.parseDocument(userScript) : YAML.parseDocument({});\n const items = userDataDoc?.contents?.items || [];\n\n let exist = false;\n\n if (userDataDoc?.comment === 'cloud-config' || userDataDoc?.comment?.includes('cloud-config\\n')) {\n exist = true;\n }\n\n if (userDataDoc?.commentBefore === 'cloud-config' || userDataDoc?.commentBefore?.includes('cloud-config\\n')) {\n exist = true;\n }\n\n items.map((item) => {\n const key = item.key;\n\n if (key?.commentBefore === 'cloud-config' || key?.commentBefore?.includes('cloud-config\\n')) {\n exist = true;\n }\n });\n\n return exist;\n },\n\n getSSHValue(id) {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const sshs = this.$store.getters[`${ inStore }/all`](HCI.SSH) || [];\n\n return sshs.find( (O) => O.id === id)?.spec?.publicKey || undefined;\n },\n\n getOsType(vm) {\n return vm.metadata?.labels?.[HCI_ANNOTATIONS.OS];\n },\n\n getMatchQGA(osType) {\n const _QGA_JSON = clone(QGA_JSON);\n let hasCustomQGA = false;\n\n OS.forEach((O) => {\n if (O.match) {\n hasCustomQGA = O.match.find((type) => type === osType);\n }\n });\n\n if (hasCustomQGA) {\n _QGA_JSON.runcmd[0][3] = QGA_MAP[osType];\n } else {\n _QGA_JSON.runcmd[0][3] = QGA_MAP['default'];\n }\n\n return _QGA_JSON;\n },\n\n getSimilarRuncmd(osType) {\n const _QGA_JSON = clone(QGA_JSON);\n\n if (osType === 'openSUSE') {\n _QGA_JSON.runcmd[0][3] = QGA_MAP['default'];\n } else {\n _QGA_JSON.runcmd[0][3] = QGA_MAP['suse'];\n }\n\n return _QGA_JSON.runcmd[0];\n },\n\n hasInstallAgent(userScript, osType, oldValue) {\n let dataFormat = {};\n const _QGA_JSON = this.getMatchQGA(osType);\n\n try {\n dataFormat = jsyaml.load(userScript) || {};\n } catch (e) {\n new Error('Function(hasInstallAgent) error');\n\n return oldValue;\n }\n\n return dataFormat?.packages?.includes('qemu-guest-agent') && !!dataFormat?.runcmd?.find( (S) => Array.isArray(S) && S.join('-') === _QGA_JSON.runcmd[0].join('-'));\n },\n\n isInstallUSBTablet(spec) {\n const inputs = spec?.template?.spec?.domain?.devices?.inputs;\n\n if (Array.isArray(inputs)) {\n return !!inputs.find((O) => {\n return isEqual(O, USB_TABLET[0]);\n });\n } else {\n return false;\n }\n },\n\n isEfiEnabled(spec) {\n return !!(spec?.template?.spec?.domain?.firmware?.bootloader?.efi);\n },\n\n isTpmEnabled(spec) {\n return !!spec?.template?.spec?.domain?.devices?.tpm;\n },\n\n isTPMPersistentStateEnabled(spec) {\n return !!spec?.template?.spec?.domain?.devices?.tpm?.persistent;\n },\n\n isEFIPersistentStateEnabled(spec) {\n return !!spec?.template?.spec?.domain?.firmware?.bootloader?.efi?.persistent;\n },\n\n isSecureBoot(spec) {\n return !!spec?.template?.spec?.domain?.firmware?.bootloader?.efi?.secureBoot;\n },\n\n isCpuPinning(spec) {\n return !!spec?.template?.spec?.domain?.cpu?.dedicatedCpuPlacement;\n },\n\n getCloudInitNoCloud(spec) {\n const secret = this.getSecret(spec);\n let userData = secret?.decodedData?.userdata;\n let networkData = secret?.decodedData?.networkdata;\n\n const cloudInitNoCloud = spec?.template?.spec?.volumes?.find( (V) => {\n return V.name === 'cloudinitdisk';\n })?.cloudInitNoCloud || {};\n\n // If the value is not found inside the secret, the data may be written directly in the yaml\n if (cloudInitNoCloud?.userData) {\n userData = cloudInitNoCloud.userData;\n this.saveUserDataAsClearText = true;\n }\n\n if (cloudInitNoCloud?.networkData) {\n networkData = cloudInitNoCloud.networkData;\n this.saveNetworkDataAsClearText = true;\n }\n\n return { userData, networkData };\n },\n\n getSecret(spec) {\n const cloudInitNoCloud = spec?.template?.spec?.volumes?.find( (V) => {\n return V.name === 'cloudinitdisk';\n })?.cloudInitNoCloud || {};\n const inStore = this.$store.getters['currentProduct'].inStore;\n const secrets = this.$store.getters[`${ inStore }/all`](SECRET) || [];\n\n const secretName = cloudInitNoCloud?.secretRef?.name || cloudInitNoCloud?.networkDataSecretRef?.name;\n\n const secret = secrets.find((s) => s.metadata.name === secretName);\n\n return secret;\n },\n\n getAccessCredentials(spec) {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const secrets = this.$store.getters[`${ inStore }/all`](SECRET) || [];\n const credentials = spec?.template?.spec?.accessCredentials || [];\n const annotations = JSON.parse(spec.template.metadata?.annotations?.[HCI_ANNOTATIONS.DYNAMIC_SSHKEYS_NAMES] || '[]');\n\n return credentials.map((c) => {\n const source = !!c.userPassword ? 'userPassword' : 'sshPublicKey';\n const secretName = c[source]?.source?.secret?.secretName;\n const secretRef = secrets.find((s) => s.metadata.name === secretName);\n const out = {\n source, username: '', newPassword: '', users: [], sshkeys: [], secretName, secretRef\n };\n\n if (!secretRef) {\n out.secretRef = undefined;\n } else if (source === 'userPassword') {\n const username = Object.keys(secretRef?.data)[0];\n const newPassword = secretRef.decodedData[username];\n\n out.username = username;\n out.newPassword = newPassword;\n } else {\n const users = c[source].propagationMethod.qemuGuestAgent.users;\n const sshkeys = annotations?.[secretName];\n\n out.users = users;\n out.sshkeys = sshkeys;\n }\n\n return out;\n });\n },\n\n getRootImageId(vm) {\n const volumes = parseVolumeClaimTemplates(vm);\n\n return volumes?.[0]?.metadata?.annotations?.[HCI_ANNOTATIONS.IMAGE_ID] || '';\n },\n\n getSSHFromAnnotation(spec) {\n const ids = spec?.template?.metadata?.annotations?.[HCI_ANNOTATIONS.SSH_NAMES] || '[]';\n\n return JSON.parse(ids);\n },\n\n convertToJson(script = '') {\n let out = {};\n\n try {\n out = jsyaml.load(script);\n } catch (e) {\n new Error('Function(convertToJson) error');\n }\n\n return out;\n },\n\n getSSHFromUserData(userData) {\n return this.convertToJson(userData)?.ssh_authorized_keys || [];\n },\n\n compareSSHValue(a = '', b = '') {\n const r = /(\\r\\n\\t|\\n|\\r\\t)|(\\s*)/gm;\n\n return a.replace(r, '') === b.replace(r, '');\n },\n\n mergeAllSSHs(spec) {\n const keys = this.getSSHFromAnnotation(spec);\n const { userScript: userData } = this.getCloudInitNoCloud(spec);\n\n if (!keys?.length < 0 && !userData) {\n return [];\n }\n\n let out = [];\n\n const inStore = this.$store.getters['currentProduct'].inStore;\n const allSSHs = this.$store.getters[`${ inStore }/all`](HCI.SSH) || [];\n\n out = (keys || []).map((id) => {\n const hasSSHResource = allSSHs.find((ssh) => ssh.id === id);\n\n if (hasSSHResource) {\n return {\n id: hasSSHResource.id,\n data: hasSSHResource,\n type: SSH_EXISTING_TYPE.EXISTING_ALL\n };\n } else {\n return {\n id,\n data: id,\n type: SSH_EXISTING_TYPE.EXISTING_ONLY_ANNOTATION\n };\n }\n });\n\n const _userDataSSH = this.getSSHFromUserData(userData);\n\n _userDataSSH.map( (sshValue) => {\n const hasSSHResource = allSSHs.find((ssh) => this.compareSSHValue(sshValue, ssh.spec?.publicKey));\n\n if (hasSSHResource && !out.find((O) => O.id === hasSSHResource.id)) {\n out.push({\n id: hasSSHResource.id,\n data: hasSSHResource,\n type: SSH_EXISTING_TYPE.EXISTING_ALL\n });\n } else if (!hasSSHResource) {\n out.push({\n id: 'Unknown',\n data: sshValue,\n type: SSH_EXISTING_TYPE.EXISTING_ONLY_CLOUD\n });\n }\n });\n\n return out;\n },\n },\n};\n","import YAML from 'yaml';\nimport jsyaml from 'js-yaml';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport difference from 'lodash/difference';\n\nimport { sortBy } from '@shell/utils/sort';\nimport { set } from '@shell/utils/object';\n\nimport { allHash } from '@shell/utils/promise';\nimport { randomStr } from '@shell/utils/string';\nimport { base64Decode } from '@shell/utils/crypto';\nimport { formatSi, parseSi } from '@shell/utils/units';\nimport { _CLONE, _CREATE, _VIEW } from '@shell/config/query-params';\nimport {\n PV, PVC, STORAGE_CLASS, NODE, SECRET, CONFIG_MAP, NETWORK_ATTACHMENT, NAMESPACE, LONGHORN\n} from '@shell/config/types';\nimport { HOSTNAME } from '@shell/config/labels-annotations';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { uniq } from '@shell/utils/array';\nimport {\n ADD_ONS, SOURCE_TYPE, ACCESS_CREDENTIALS, maintenanceStrategies, runStrategies\n} from '../../config/harvester-map';\nimport { HCI_SETTING } from '../../config/settings';\nimport { HCI } from '../../types';\nimport { parseVolumeClaimTemplates } from '../../utils/vm';\nimport impl, { QGA_JSON, USB_TABLET } from './impl';\n\nconst LONGHORN_V2_DATA_ENGINE = 'longhorn-system/v2-data-engine';\n\nexport const MANAGEMENT_NETWORK = 'management Network';\n\nexport const OS = [{\n label: 'Windows',\n value: 'windows'\n}, {\n label: 'Linux',\n value: 'linux'\n}, {\n label: 'SUSE Linux Enterprise',\n value: 'SLEs'\n}, {\n label: 'Debian',\n value: 'debian'\n}, {\n label: 'Fedora',\n value: 'fedora'\n}, {\n label: 'Gentoo',\n value: 'gentoo'\n}, {\n label: 'Oracle',\n value: 'oracle'\n}, {\n label: 'Red Hat',\n match: ['redhat', 'rhel'],\n value: 'redhat'\n}, {\n label: 'openSUSE',\n value: 'openSUSE',\n}, {\n label: 'Ubuntu',\n value: 'ubuntu'\n}, {\n label: 'Other Linux',\n match: ['centos'],\n value: 'otherLinux'\n}];\n\nexport const CD_ROM = 'cd-rom';\nexport const HARD_DISK = 'disk';\n\nexport default {\n mixins: [impl],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n resourceType: {\n type: String,\n default: ''\n }\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hash = {\n pvs: this.$store.dispatch(`${ inStore }/findAll`, { type: PV }),\n pvcs: this.$store.dispatch(`${ inStore }/findAll`, { type: PVC }),\n storageClasses: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }),\n sshs: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SSH }),\n settings: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SETTING }),\n images: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.IMAGE }),\n versions: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM_VERSION }),\n templates: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM_TEMPLATE }),\n networkAttachment: this.$store.dispatch(`${ inStore }/findAll`, { type: NETWORK_ATTACHMENT }),\n vmis: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VMI }),\n vmims: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VMIM }),\n vms: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM }),\n secrets: this.$store.dispatch(`${ inStore }/findAll`, { type: SECRET }),\n addons: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS }),\n longhornV2Engine: this.$store.dispatch(`${ inStore }/find`, { type: LONGHORN.SETTINGS, id: LONGHORN_V2_DATA_ENGINE }),\n };\n\n if (this.$store.getters[`${ inStore }/schemaFor`](NODE)) {\n hash.nodes = this.$store.dispatch(`${ inStore }/findAll`, { type: NODE });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.CLUSTER_NETWORK)) {\n hash.clusterNetworks = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.CLUSTER_NETWORK });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.VLAN_CONFIG)) {\n hash.clusterNetworks = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VLAN_CONFIG });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](LONGHORN.VOLUMES)) {\n hash.longhornVolumes = this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.VOLUMES });\n }\n\n const res = await allHash(hash);\n\n const hasPCISchema = !!this.$store.getters[`${ inStore }/schemaFor`](HCI.PCI_DEVICE);\n const hasSRIOVGPUSchema = !!this.$store.getters[`${ inStore }/schemaFor`](HCI.SR_IOVGPU_DEVICE);\n\n const enabledAddons = res.addons.reduce((acc, addon) => ({ ...acc, [addon.name]: addon.spec?.enabled }), {});\n\n this.enabledPCI = hasPCISchema && enabledAddons[ADD_ONS.PCI_DEVICE_CONTROLLER];\n this.enabledSriovgpu = hasSRIOVGPUSchema && enabledAddons[ADD_ONS.PCI_DEVICE_CONTROLLER] && enabledAddons[ADD_ONS.NVIDIA_DRIVER_TOOLKIT_CONTROLLER];\n },\n\n data() {\n const isClone = this.realMode === _CLONE;\n\n return {\n OS,\n isClone,\n spec: null,\n osType: 'linux',\n sshKey: [],\n maintenanceStrategies,\n maintenanceStrategy: 'Migrate',\n runStrategies,\n runStrategy: 'RerunOnFailure',\n installAgent: true,\n hasCreateVolumes: [],\n installUSBTablet: true,\n networkScript: '',\n userScript: '',\n imageId: '',\n diskRows: [],\n networkRows: [],\n machineType: '',\n secretName: '',\n secretRef: null,\n showAdvanced: false,\n deleteAgent: true,\n memory: null,\n cpu: '',\n reservedMemory: null,\n accessCredentials: [],\n efiEnabled: false,\n tpmEnabled: false,\n tpmPersistentStateEnabled: false,\n efiPersistentStateEnabled: false,\n secureBoot: false,\n userDataTemplateId: '',\n saveUserDataAsClearText: false,\n saveNetworkDataAsClearText: false,\n enabledPCI: false,\n enabledSriovgpu: false,\n immutableMode: this.realMode === _CREATE ? _CREATE : _VIEW,\n terminationGracePeriodSeconds: '',\n cpuPinning: false,\n };\n },\n\n computed: {\n inStore() {\n return this.$store.getters['currentProduct'].inStore;\n },\n\n images() {\n return this.$store.getters[`${ this.inStore }/all`](HCI.IMAGE);\n },\n\n versions() {\n return this.$store.getters[`${ this.inStore }/all`](HCI.VM_VERSION);\n },\n\n templates() {\n return this.$store.getters[`${ this.inStore }/all`](HCI.VM_TEMPLATE);\n },\n\n pvcs() {\n return this.$store.getters[`${ this.inStore }/all`](PVC);\n },\n\n secrets() {\n return this.$store.getters[`${ this.inStore }/all`](SECRET);\n },\n\n filteredNamespaces() {\n return this.$store.getters['harvester/all'](NAMESPACE).filter((namespace) => !namespace.isSystem);\n },\n\n nodes() {\n return this.$store.getters['harvester/all'](NODE);\n },\n\n nodesIdOptions() {\n const nodes = this.$store.getters[`${ this.inStore }/all`](NODE);\n\n const networkNames = this.networkRows.map((n) => n.networkName);\n const vmNetworks = this.$store.getters[`${ this.inStore }/all`](NETWORK_ATTACHMENT);\n const selectedVMNetworks = networkNames.map((name) => vmNetworks.find((n) => n.id === name)).filter((n) => n?.id);\n const clusterNetworks = uniq(selectedVMNetworks.map((n) => n.clusterNetworkResource?.id));\n\n return nodes.filter((N) => !N.isUnSchedulable && N.isEtcd !== 'true').map((node) => {\n const requireLabelKeys = [];\n let isNetworkSchedule = true;\n\n if (clusterNetworks.length > 0) {\n clusterNetworks.map((clusterNetwork) => {\n requireLabelKeys.push(`network.harvesterhci.io/${ clusterNetwork }`);\n });\n }\n\n requireLabelKeys.map((requireLabelKey) => {\n if (node.metadata?.labels?.[requireLabelKey] !== 'true') {\n isNetworkSchedule = false;\n }\n });\n\n return {\n label: isNetworkSchedule ? node.nameDisplay : `${ node.nameDisplay } (${ this.t('harvester.virtualMachine.scheduling.networkNotSupport') })`,\n value: node.id,\n disabled: !isNetworkSchedule,\n };\n });\n },\n\n defaultStorageClass() {\n const defaultStorage = this.$store.getters[`${ this.inStore }/all`](STORAGE_CLASS).find( (O) => O.isDefault);\n\n return defaultStorage;\n },\n\n storageClassSetting() {\n try {\n const storageClassValue = this.$store.getters[`${ this.inStore }/all`](HCI.SETTING).find( (O) => O.id === HCI_SETTING.DEFAULT_STORAGE_CLASS)?.value;\n\n return JSON.parse(storageClassValue);\n } catch (e) {\n return {};\n }\n },\n\n customVolumeMode() {\n return this.storageClassSetting.volumeMode || 'Block';\n },\n\n customAccessMode() {\n return this.storageClassSetting.accessModes || 'ReadWriteMany';\n },\n\n isWindows() {\n return this.osType === 'windows';\n },\n\n needNewSecret() {\n // When creating a template it is always necessary to create a new secret.\n return this.resourceType === HCI.VM_VERSION || this.isCreate;\n },\n\n defaultTerminationSetting() {\n const setting = this.$store.getters[`${ this.inStore }/all`](HCI.SETTING).find( (O) => O.id === HCI_SETTING.VM_TERMINATION_PERIOD) || {};\n\n return Number(setting?.value || setting?.default);\n },\n\n affinityLabels() {\n return {\n namespaceInputLabel: this.t('harvester.virtualMachine.affinity.namespaces.label'),\n namespaceSelectionLabels: [\n this.t('harvester.virtualMachine.affinity.thisPodNamespace'),\n this.t('workload.scheduling.affinity.allNamespaces'),\n this.t('harvester.virtualMachine.affinity.matchExpressions.inNamespaces')\n ],\n addLabel: this.t('harvester.virtualMachine.affinity.addLabel'),\n topologyKeyPlaceholder: this.t('harvester.virtualMachine.affinity.topologyKey.placeholder')\n };\n },\n },\n\n async created() {\n await this.$store.dispatch(`${ this.inStore }/findAll`, { type: SECRET });\n this.getInitConfig({ value: this.value, init: this.isCreate });\n },\n\n methods: {\n getInitConfig(config) {\n const {\n value, existUserData, fromTemplate = false, init = false\n } = config;\n\n const vm = this.resourceType === HCI.VM ? value : this.resourceType === HCI.BACKUP ? this.value.status?.source : value.spec.vm;\n const volumeBackups = this.resourceType === HCI.BACKUP ? this.value.status?.volumeBackups : null;\n\n const spec = vm?.spec;\n\n if (!spec) {\n return;\n }\n const resources = spec.template.spec.domain.resources;\n\n // If the user is created via yaml, there may be no \"resources.limits\": kubectl apply -f https://kubevirt.io/labs/manifests/vm.yaml\n if (!resources?.limits || (resources?.limits && !resources?.limits?.memory && resources?.limits?.memory !== null)) {\n spec.template.spec.domain.resources = {\n ...spec.template.spec.domain.resources,\n limits: {\n ...spec.template.spec.domain.resources.limits,\n memory: spec.template.spec.domain.resources.requests.memory\n }\n };\n }\n\n if (!vm.metadata.labels) {\n vm.metadata.labels = {};\n }\n const maintenanceStrategy = vm.metadata.labels?.[HCI_ANNOTATIONS.VM_MAINTENANCE_MODE_STRATEGY] || 'Migrate';\n\n const runStrategy = spec.runStrategy || 'RerunOnFailure';\n const machineType = value.machineType;\n const cpu = spec.template.spec.domain?.cpu?.cores;\n const memory = spec.template.spec.domain.resources.limits.memory;\n const reservedMemory = vm.metadata?.annotations?.[HCI_ANNOTATIONS.VM_RESERVED_MEMORY];\n const terminationGracePeriodSeconds = spec.template.spec?.terminationGracePeriodSeconds || this.defaultTerminationSetting;\n\n const sshKey = this.getSSHFromAnnotation(spec) || [];\n\n const imageId = this.getRootImageId(vm) || '';\n const diskRows = this.getDiskRows(vm, volumeBackups);\n\n const networkRows = this.getNetworkRows(vm, { fromTemplate, init });\n const hasCreateVolumes = this.getHasCreatedVolumes(spec) || [];\n\n let { userData = undefined, networkData = undefined } = this.getCloudInitNoCloud(spec);\n\n if (this.resourceType === HCI.BACKUP) {\n const secretBackups = this.value.status?.secretBackups;\n\n if (secretBackups) {\n const secretNetworkData = secretBackups[0]?.data?.networkdata || '';\n const secretUserData = secretBackups[0]?.data?.userdata || '';\n\n userData = base64Decode(secretUserData);\n networkData = base64Decode(secretNetworkData);\n }\n }\n const osType = this.getOsType(vm) || 'linux';\n\n userData = this.isCreate && !existUserData && !this.isClone ? this.getInitUserData({ osType }) : userData;\n\n const installUSBTablet = this.isInstallUSBTablet(spec);\n const installAgent = this.hasInstallAgent(userData, osType, true);\n const efiEnabled = this.isEfiEnabled(spec);\n const tpmEnabled = this.isTpmEnabled(spec);\n const tpmPersistentStateEnabled = this.isTPMPersistentStateEnabled(spec);\n const efiPersistentStateEnabled = this.isEFIPersistentStateEnabled(spec);\n const secureBoot = this.isSecureBoot(spec);\n const cpuPinning = this.isCpuPinning(spec);\n\n const secretRef = this.getSecret(spec);\n const accessCredentials = this.getAccessCredentials(spec);\n\n if (Object.prototype.hasOwnProperty.call(spec, 'running')) {\n delete spec.running;\n spec.runStrategy = 'RerunOnFailure';\n }\n\n this['spec'] = spec;\n this['maintenanceStrategy'] = maintenanceStrategy;\n this['runStrategy'] = runStrategy;\n this['secretRef'] = secretRef;\n this['accessCredentials'] = accessCredentials;\n this['userScript'] = userData;\n this['networkScript'] = networkData;\n\n this['sshKey'] = sshKey;\n this['osType'] = osType;\n this['installAgent'] = installAgent;\n\n this['cpu'] = cpu;\n this['memory'] = memory;\n this['reservedMemory'] = reservedMemory;\n this['machineType'] = machineType;\n this['terminationGracePeriodSeconds'] = terminationGracePeriodSeconds;\n\n this['installUSBTablet'] = installUSBTablet;\n this['efiEnabled'] = efiEnabled;\n this['efiPersistentStateEnabled'] = efiPersistentStateEnabled;\n this['tpmEnabled'] = tpmEnabled;\n this['tpmPersistentStateEnabled'] = tpmPersistentStateEnabled;\n this['secureBoot'] = secureBoot;\n this['cpuPinning'] = cpuPinning;\n\n this['hasCreateVolumes'] = hasCreateVolumes;\n this['networkRows'] = networkRows;\n this['imageId'] = imageId;\n\n this['diskRows'] = diskRows;\n\n this.refreshYamlEditor();\n },\n\n getDiskRows(vm, volBackups) {\n const namespace = vm.metadata.namespace;\n const _volumes = vm.spec.template.spec.volumes || [];\n const _disks = vm.spec.template.spec.domain.devices.disks || [];\n const _volumeClaimTemplates = parseVolumeClaimTemplates(vm);\n\n let out = [];\n\n if (_disks.length === 0) {\n let bus = 'virtio';\n let type = HARD_DISK;\n let size = '10Gi';\n\n const imageResource = this.images.find( (I) => this.imageId === I.id);\n\n const isIsoImage = /iso$/i.test(imageResource?.imageSuffix);\n const imageSize = Math.max(imageResource?.status?.size, imageResource?.status?.virtualSize);\n const isEncrypted = imageResource?.isEncrypted || false;\n const volumeBackups = volBackups?.find((vBackup) => vBackup.volumeName === 'disk-0') || null ;\n\n if (isIsoImage) {\n bus = 'sata';\n type = CD_ROM;\n }\n\n if (imageSize) {\n let imageSizeGiB = Math.ceil(imageSize / 1024 / 1024 / 1024);\n\n if (!isIsoImage) {\n imageSizeGiB = Math.max(imageSizeGiB, 10);\n }\n size = `${ imageSizeGiB }Gi`;\n }\n\n out.push({\n id: randomStr(5),\n source: SOURCE_TYPE.IMAGE,\n name: 'disk-0',\n accessMode: 'ReadWriteMany', // root disk only support LHv1 volume, should be RWX\n bus,\n volumeName: '',\n size,\n type,\n storageClassName: '',\n image: this.imageId,\n volumeMode: 'Block',\n isEncrypted,\n volumeBackups,\n });\n } else {\n out = _disks.map( (DISK, index) => {\n const volume = _volumes.find( (V) => V.name === DISK.name );\n\n let size = '';\n let image = '';\n let source = '';\n let realName = '';\n let container = '';\n let volumeName = '';\n let accessMode = '';\n let volumeMode = '';\n let storageClassName = '';\n let hotpluggable = false;\n let dataSource = null;\n\n const type = DISK?.cdrom ? CD_ROM : DISK?.disk ? HARD_DISK : '';\n\n if (volume?.containerDisk) { // SOURCE_TYPE.CONTAINER\n source = SOURCE_TYPE.CONTAINER;\n container = volume.containerDisk.image;\n }\n\n if (volume.persistentVolumeClaim && volume.persistentVolumeClaim?.claimName) {\n volumeName = volume.persistentVolumeClaim.claimName;\n const DVT = _volumeClaimTemplates.find( (T) => T.metadata.name === volumeName);\n\n realName = volumeName;\n // If the DVT can be found, it cannot be an existing volume\n if (DVT) {\n // has annotation (HCI_ANNOTATIONS.IMAGE_ID) => SOURCE_TYPE.IMAGE\n if (DVT.metadata?.annotations?.[HCI_ANNOTATIONS.IMAGE_ID] !== undefined) {\n image = DVT.metadata?.annotations?.[HCI_ANNOTATIONS.IMAGE_ID];\n source = SOURCE_TYPE.IMAGE;\n } else {\n source = SOURCE_TYPE.NEW;\n }\n\n const dataVolumeSpecPVC = DVT?.spec || {};\n\n volumeMode = dataVolumeSpecPVC?.volumeMode;\n accessMode = dataVolumeSpecPVC?.accessModes?.[0];\n size = dataVolumeSpecPVC?.resources?.requests?.storage || '10Gi';\n storageClassName = dataVolumeSpecPVC?.storageClassName;\n dataSource = dataVolumeSpecPVC?.dataSource;\n } else {\n // SOURCE_TYPE.ATTACH_VOLUME\n // Compatible with VMS that have been created before, Because they're not saved in the annotation\n const allPVCs = this.$store.getters['harvester/all'](PVC);\n const pvcResource = allPVCs.find( (O) => O.id === `${ namespace }/${ volume?.persistentVolumeClaim?.claimName }`);\n\n source = SOURCE_TYPE.ATTACH_VOLUME;\n accessMode = pvcResource?.spec?.accessModes?.[0] || 'ReadWriteMany';\n size = pvcResource?.spec?.resources?.requests?.storage || '10Gi';\n storageClassName = pvcResource?.spec?.storageClassName;\n volumeMode = pvcResource?.spec?.volumeMode || 'Block';\n volumeName = pvcResource?.metadata?.name || '';\n }\n\n hotpluggable = volume.persistentVolumeClaim.hotpluggable || false;\n }\n\n const bus = DISK?.disk?.bus || DISK?.cdrom?.bus;\n\n const bootOrder = DISK?.bootOrder ? DISK?.bootOrder : index;\n\n const parseValue = parseSi(size);\n\n const formatSize = formatSi(parseValue, {\n increment: 1024,\n addSuffix: false,\n maxExponent: 3,\n minExponent: 3,\n });\n\n const pvc = this.pvcs.find((P) => P.id === `${ this.value.metadata.namespace }/${ volumeName }`);\n\n const volumeStatus = pvc?.relatedPV?.metadata?.annotations?.[HCI_ANNOTATIONS.VOLUME_ERROR];\n\n const isEncrypted = pvc?.isEncrypted || false;\n const volumeBackups = volBackups?.find((vBackup) => vBackup.volumeName === DISK.name) || null;\n\n return {\n id: randomStr(5),\n bootOrder,\n source,\n name: DISK.name,\n realName,\n bus,\n volumeName,\n container,\n accessMode,\n size: `${ formatSize }Gi`,\n volumeMode: volumeMode || this.customVolumeMode,\n image,\n type,\n storageClassName,\n hotpluggable,\n volumeStatus,\n dataSource,\n namespace,\n isEncrypted,\n volumeBackups,\n };\n });\n }\n\n out = sortBy(out, 'bootOrder');\n\n return out.filter( (O) => O.name !== 'cloudinitdisk');\n },\n\n getNetworkRows(vm, config) {\n const { fromTemplate = false, init = false } = config;\n\n const networks = vm.spec.template.spec.networks || [];\n const interfaces = vm.spec.template.spec.domain.devices.interfaces || [];\n\n const out = interfaces.map( (I, index) => {\n const network = networks.find( (N) => I.name === N.name);\n\n const type = I.sriov ? 'sriov' : I.bridge ? 'bridge' : 'masquerade';\n\n const isPod = !!network.pod;\n\n return {\n ...I,\n index,\n type,\n isPod,\n newCreateId: (fromTemplate || init) ? randomStr(10) : false,\n model: I.model,\n networkName: isPod ? MANAGEMENT_NETWORK : network?.multus?.networkName,\n };\n });\n\n return out;\n },\n\n parseVM() {\n this.userData = this.getUserData({ osType: this.osType, installAgent: this.installAgent });\n this.parseOther();\n this.parseAccessCredentials();\n this.parseNetworkRows(this.networkRows);\n this.parseDiskRows(this.diskRows);\n },\n\n parseOther() {\n if (!this.spec.template.spec.domain.machine) {\n this.spec.template.spec.domain['machine'] = { type: this.machineType };\n } else {\n this.spec.template.spec.domain.machine['type'] = this.machineType;\n }\n\n this.spec.template.spec.domain.cpu.cores = this.cpu;\n this.spec.template.spec.domain.resources.limits.cpu = this.cpu ? this.cpu.toString() : this.cpu;\n this.spec.template.spec.domain.resources.limits.memory = this.memory;\n this.spec.template.spec.terminationGracePeriodSeconds = this.terminationGracePeriodSeconds;\n\n // parse reserved memory\n const vm = this.resourceType === HCI.VM ? this.value : this.value.spec.vm;\n\n if (!this.reservedMemory) {\n delete vm.metadata.annotations[HCI_ANNOTATIONS.VM_RESERVED_MEMORY];\n } else {\n vm.metadata.annotations[HCI_ANNOTATIONS.VM_RESERVED_MEMORY] = this.reservedMemory;\n }\n\n if (this.maintenanceStrategy === 'Migrate') {\n delete vm.metadata.labels[HCI_ANNOTATIONS.VM_MAINTENANCE_MODE_STRATEGY];\n } else {\n vm.metadata.labels[HCI_ANNOTATIONS.VM_MAINTENANCE_MODE_STRATEGY] = this.maintenanceStrategy;\n }\n },\n\n parseDiskRows(disk) {\n const disks = [];\n const volumes = [];\n const diskNameLables = [];\n const volumeClaimTemplates = [];\n\n disk.forEach( (R, index) => {\n const prefixName = this.value.metadata?.name || '';\n\n let dataVolumeName = '';\n\n if (R.source === SOURCE_TYPE.ATTACH_VOLUME) {\n dataVolumeName = R.volumeName;\n } else if (this.isClone || !this.hasCreateVolumes.includes(R.realName)) {\n dataVolumeName = `${ prefixName }-${ R.name }-${ randomStr(5).toLowerCase() }`;\n } else {\n dataVolumeName = R.realName;\n }\n\n const _disk = this.parseDisk(R, index);\n const _volume = this.parseVolume(R, dataVolumeName);\n const _dataVolumeTemplate = this.parseVolumeClaimTemplate(R, dataVolumeName);\n\n disks.push(_disk);\n volumes.push(_volume);\n diskNameLables.push(dataVolumeName);\n\n if (R.source !== SOURCE_TYPE.CONTAINER) {\n volumeClaimTemplates.push(_dataVolumeTemplate);\n }\n });\n\n if (!this.secretName || this.needNewSecret) {\n this.secretName = this.generateSecretName(this.secretNamePrefix);\n }\n\n if (!disks.find( (D) => D.name === 'cloudinitdisk') && (this.userData || this.networkData)) {\n if (!this.isWindows) {\n disks.push({\n name: 'cloudinitdisk',\n disk: { bus: 'virtio' }\n });\n\n const userData = this.getUserData({ osType: this.osType, installAgent: this.installAgent });\n\n const cloudinitdisk = {\n name: 'cloudinitdisk',\n cloudInitNoCloud: {}\n };\n\n if (this.saveUserDataAsClearText) {\n cloudinitdisk.cloudInitNoCloud.userData = userData;\n } else {\n cloudinitdisk.cloudInitNoCloud.secretRef = { name: this.secretName };\n }\n\n if (this.saveNetworkDataAsClearText) {\n cloudinitdisk.cloudInitNoCloud.networkData = this.networkScript;\n } else {\n cloudinitdisk.cloudInitNoCloud.networkDataSecretRef = { name: this.secretName };\n }\n\n volumes.push(cloudinitdisk);\n }\n }\n\n let spec = {\n ...this.spec,\n runStrategy: this.runStrategy,\n template: {\n ...this.spec.template,\n metadata: {\n ...this.spec?.template?.metadata,\n annotations: {\n ...this.spec?.template?.metadata?.annotations,\n [HCI_ANNOTATIONS.SSH_NAMES]: JSON.stringify(this.sshKey)\n },\n labels: {\n ...this.spec?.template?.metadata?.labels,\n [HCI_ANNOTATIONS.VM_NAME]: this.value?.metadata?.name,\n }\n },\n spec: {\n ...this.spec.template?.spec,\n domain: {\n ...this.spec.template?.spec?.domain,\n devices: {\n ...this.spec.template?.spec?.domain?.devices,\n disks,\n },\n },\n volumes,\n }\n }\n };\n\n if (volumes.length === 0) {\n delete spec.template.spec.volumes;\n }\n\n if (this.resourceType === HCI.VM) {\n if (!this.isSingle) {\n spec = this.multiVMScheduler(spec);\n }\n\n this.value.metadata['annotations'] = {\n ...this.value.metadata.annotations,\n [HCI_ANNOTATIONS.VOLUME_CLAIM_TEMPLATE]: JSON.stringify(volumeClaimTemplates),\n [HCI_ANNOTATIONS.NETWORK_IPS]: JSON.stringify(this.value.networkIps)\n };\n\n this.value.metadata['labels'] = {\n ...this.value.metadata.labels,\n [HCI_ANNOTATIONS.CREATOR]: 'harvester',\n [HCI_ANNOTATIONS.OS]: this.osType\n };\n\n this.value['spec'] = spec;\n this['spec'] = spec;\n } else if (this.resourceType === HCI.VM_VERSION) {\n this.value.spec.vm['spec'] = spec;\n this.value.spec.vm.metadata['annotations'] = {\n ...this.value.spec.vm.metadata.annotations,\n [HCI_ANNOTATIONS.VOLUME_CLAIM_TEMPLATE]: JSON.stringify(volumeClaimTemplates),\n };\n this.value.spec.vm.metadata['labels'] = {\n ...this.value.spec.vm.metadata.labels,\n [HCI_ANNOTATIONS.OS]: this.osType\n };\n this['spec'] = spec;\n }\n },\n\n removeTrailingHyphen(str) {\n while (str.endsWith('-')) {\n str = str.slice(0, -1);\n }\n\n return str;\n },\n\n multiVMScheduler(spec) {\n const namePrefix = this.removeTrailingHyphen(this.namePrefix);\n\n spec.template.metadata.labels[HCI_ANNOTATIONS.VM_NAME_PREFIX] = namePrefix;\n\n const rule = {\n weight: 1,\n podAffinityTerm: {\n topologyKey: HOSTNAME,\n labelSelector: { matchLabels: { [HCI_ANNOTATIONS.VM_NAME_PREFIX]: namePrefix } }\n }\n };\n\n return {\n ...spec,\n template: {\n ...spec.template,\n spec: {\n ...spec.template.spec,\n affinity: {\n ...spec.template.spec.affinity,\n podAntiAffinity: {\n ...spec.template.spec?.affinity?.podAntiAffinity,\n preferredDuringSchedulingIgnoredDuringExecution: [\n ...(spec.template.spec?.affinity?.podAntiAffinity?.preferredDuringSchedulingIgnoredDuringExecution || []),\n rule\n ]\n }\n }\n }\n }\n };\n },\n\n parseNetworkRows(networkRow) {\n const networks = [];\n const interfaces = [];\n\n networkRow.forEach( (R) => {\n const _network = this.parseNetwork(R);\n const _interface = this.parseInterface(R);\n\n networks.push(_network);\n interfaces.push(_interface);\n });\n\n const spec = {\n ...this.spec.template.spec,\n domain: {\n ...this.spec.template.spec.domain,\n devices: {\n ...this.spec.template.spec.domain.devices,\n interfaces,\n },\n },\n networks\n };\n\n this.spec.template['spec'] = spec;\n },\n\n parseAccessCredentials() {\n const out = [];\n const annotations = {};\n const users = JSON.parse(this.spec?.template?.metadata?.annotations?.[HCI_ANNOTATIONS.DYNAMIC_SSHKEYS_USERS] || '[]');\n\n for (const row of this.accessCredentials) {\n if (this.needNewSecret) {\n row.secretName = this.generateSecretName(this.secretNamePrefix);\n }\n\n if (row.source === ACCESS_CREDENTIALS.RESET_PWD) {\n users.push(row.username);\n out.push({\n userPassword: {\n source: { secret: { secretName: row.secretName } },\n propagationMethod: { qemuGuestAgent: { } }\n }\n });\n }\n\n if (row.source === ACCESS_CREDENTIALS.INJECT_SSH) {\n users.push(...row.users);\n annotations[row.secretName] = row.sshkeys;\n out.push({\n sshPublicKey: {\n source: { secret: { secretName: row.secretName } },\n propagationMethod: { qemuGuestAgent: { users: row.users } }\n }\n });\n }\n }\n\n if (out.length === 0 && !!this.spec.template.spec.accessCredentials) {\n delete this.spec.template.spec.accessCredentials;\n } else {\n this.spec.template.spec.accessCredentials = out;\n }\n\n if (users.length !== 0) {\n this.spec.template.metadata.annotations[HCI_ANNOTATIONS.DYNAMIC_SSHKEYS_USERS] = JSON.stringify(Array.from(new Set(users)));\n this.spec.template.metadata.annotations[HCI_ANNOTATIONS.DYNAMIC_SSHKEYS_NAMES] = JSON.stringify(annotations);\n }\n },\n\n getMaintenanceStrategyOptionLabel(opt) {\n return this.t(`harvester.virtualMachine.maintenanceStrategy.options.${ opt.label || opt }`);\n },\n\n getInitUserData(config) {\n const _QGA_JSON = this.getMatchQGA(config.osType);\n\n const out = jsyaml.dump(_QGA_JSON);\n\n return `#cloud-config\\n${ out }`;\n },\n\n /**\n * Generate user data yaml which is decided by the\n * \"Install guest agent\", \"OS type\", \"SSH keys\" and user input.\n * @param config\n */\n getUserData(config) {\n try {\n // https://github.com/eemeli/yaml/issues/136\n let userDataDoc = this.userScript ? YAML.parseDocument(this.userScript) : YAML.parseDocument({});\n\n const allSSHAuthorizedKeys = this.mergeSSHAuthorizedKeys(this.userScript);\n\n if (allSSHAuthorizedKeys.length > 0) {\n userDataDoc.setIn(['ssh_authorized_keys'], allSSHAuthorizedKeys);\n } else if (YAML.isCollection(userDataDoc.getIn('ssh_authorized_keys'))) {\n userDataDoc.deleteIn(['ssh_authorized_keys']);\n }\n\n userDataDoc = config.installAgent ? this.mergeQGA({ userDataDoc, ...config }) : this.deleteQGA({ userDataDoc, ...config });\n const userDataYaml = userDataDoc.toString();\n\n if (userDataYaml === '{}\\n') {\n // When the YAML parsed value is '{}\\n', it means that the userData is empty, then undefined is returned.\n return undefined;\n }\n\n return userDataYaml;\n } catch (e) {\n console.error('Error: Unable to parse yaml document', e); // eslint-disable-line no-console\n\n return this.userScript;\n }\n },\n\n updateSSHKey(neu) {\n this['sshKey'] = neu;\n },\n\n updateCpuMemory(cpu, memory) {\n this['cpu'] = cpu;\n this['memory'] = memory;\n },\n\n parseDisk(R, index) {\n const out = { name: R.name };\n\n if (R.type === HARD_DISK) {\n out.disk = { bus: R.bus };\n } else if (R.type === CD_ROM) {\n out.cdrom = { bus: R.bus };\n }\n\n out.bootOrder = index + 1;\n\n return out;\n },\n\n parseVolume(R, dataVolumeName) {\n const out = { name: R.name };\n\n if (R.source === SOURCE_TYPE.CONTAINER) {\n out.containerDisk = { image: R.container };\n } else if (R.source === SOURCE_TYPE.IMAGE || R.source === SOURCE_TYPE.NEW || R.source === SOURCE_TYPE.ATTACH_VOLUME) {\n out.persistentVolumeClaim = { claimName: dataVolumeName };\n if (R.hotpluggable) {\n out.persistentVolumeClaim.hotpluggable = true;\n }\n }\n\n return out;\n },\n\n parseVolumeClaimTemplate(R, dataVolumeName) {\n if (!String(R.size).includes('Gi') && R.size) {\n R.size = `${ R.size }Gi`;\n }\n\n const out = {\n metadata: { name: dataVolumeName },\n spec: {\n accessModes: [R.accessMode],\n resources: { requests: { storage: R.size } },\n volumeMode: R.volumeMode\n }\n };\n\n if (R.dataSource) {\n out.spec.dataSource = R.dataSource;\n }\n\n switch (R.source) {\n case SOURCE_TYPE.ATTACH_VOLUME:\n out.spec.storageClassName = R.storageClassName;\n break;\n case SOURCE_TYPE.NEW:\n out.spec.storageClassName = R.storageClassName;\n break;\n case SOURCE_TYPE.IMAGE: {\n const image = this.images.find( (I) => R.image === I.id);\n\n if (image) {\n out.spec.storageClassName = image.storageClassName;\n out.metadata.annotations = { [HCI_ANNOTATIONS.IMAGE_ID]: image.id };\n } else {\n out.metadata.annotations = { [HCI_ANNOTATIONS.IMAGE_ID]: '' };\n }\n\n break;\n }\n }\n\n return out;\n },\n\n getSSHListValue(arr) {\n return arr.map( (id) => this.getSSHValue(id)).filter( (O) => O !== undefined);\n },\n\n parseInterface(R) {\n const _interface = {};\n const type = R.type;\n\n _interface[type] = {};\n\n if (R.macAddress) {\n _interface.macAddress = R.macAddress;\n }\n\n _interface.model = R.model;\n _interface.name = R.name;\n\n return _interface;\n },\n\n parseNetwork(R) {\n const out = { name: R.name };\n\n if (R.isPod) {\n out.pod = {};\n } else {\n out.multus = { networkName: R.networkName };\n }\n\n return out;\n },\n\n updateUserData(value) {\n this.userScript = value;\n },\n\n updateNetworkData(value) {\n this.networkScript = value;\n },\n\n mergeSSHAuthorizedKeys(yaml) {\n try {\n const sshAuthorizedKeys = YAML.parseDocument(yaml)\n .get('ssh_authorized_keys')\n ?.toJSON() || [];\n\n const sshList = this.getSSHListValue(this.sshKey);\n\n return sshAuthorizedKeys.length ? [...new Set([...sshList, ...sshAuthorizedKeys])] : sshList;\n } catch (e) {\n return [];\n }\n },\n\n /**\n * @param paths A Object path, e.g. 'a.b.c' => ['a', 'b', 'c']. Refer to https://eemeli.org/yaml/#scalar-values\n * @returns\n */\n deleteYamlDocProp(doc, paths) {\n try {\n const item = doc.getIn([])?.items[0];\n const key = item?.key;\n const hasCloudConfigComment = !!key?.commentBefore?.includes('cloud-config');\n const isMatchProp = key.source === paths[paths.length - 1];\n\n if (key && hasCloudConfigComment && isMatchProp) {\n // Comments are mounted on the next node and we should not delete the node containing cloud-config\n } else {\n doc.deleteIn(paths);\n }\n } catch (e) {}\n },\n\n mergeQGA(config) {\n const { osType, userDataDoc } = config;\n const _QGA_JSON = this.getMatchQGA(osType);\n const userDataYAML = userDataDoc.toString();\n const userDataJSON = YAML.parse(userDataYAML);\n let packages = userDataJSON?.packages || [];\n let runcmd = userDataJSON?.runcmd || [];\n\n userDataDoc.setIn(['package_update'], true);\n\n if (Array.isArray(packages)) {\n if (!packages.includes('qemu-guest-agent')) {\n packages.push('qemu-guest-agent');\n }\n } else {\n packages = QGA_JSON.packages;\n }\n\n if (Array.isArray(runcmd)) {\n let findIndex = -1;\n const hasSameRuncmd = runcmd.find( (S) => Array.isArray(S) && S.join('-') === _QGA_JSON.runcmd[0].join('-'));\n\n const hasSimilarRuncmd = runcmd.find( (S, index) => {\n if (Array.isArray(S) && S.join('-') === this.getSimilarRuncmd(osType).join('-')) {\n findIndex = index;\n\n return true;\n }\n\n return false;\n });\n\n if (hasSimilarRuncmd) {\n runcmd[findIndex] = _QGA_JSON.runcmd[0];\n } else if (!hasSameRuncmd) {\n runcmd.push(_QGA_JSON.runcmd[0]);\n }\n } else {\n runcmd = _QGA_JSON.runcmd;\n }\n\n if (packages.length > 0) {\n userDataDoc.setIn(['packages'], packages);\n } else {\n userDataDoc.setIn(['packages'], []); // It needs to be set empty first, as it is possible that cloud-init comments are mounted on this node\n this.deleteYamlDocProp(userDataDoc, ['packages']);\n this.deleteYamlDocProp(userDataDoc, ['package_update']);\n }\n\n if (runcmd.length > 0) {\n userDataDoc.setIn(['runcmd'], runcmd);\n } else {\n this.deleteYamlDocProp(userDataDoc, ['runcmd']);\n }\n\n return userDataDoc;\n },\n\n deleteQGA(config) {\n const { osType, userDataDoc, deletePackage = false } = config;\n\n const userDataTemplateValue = this.$store.getters['harvester/byId'](CONFIG_MAP, this.userDataTemplateId)?.data?.cloudInit || '';\n\n const userDataYAML = userDataDoc.toString();\n const userDataJSON = YAML.parse(userDataYAML);\n const packages = userDataJSON?.packages || [];\n const runcmd = userDataJSON?.runcmd || [];\n\n if (Array.isArray(packages) && deletePackage) {\n const templateHasQGAPackage = this.convertToJson(userDataTemplateValue);\n\n for (let i = 0; i < packages.length; i++) {\n if (packages[i] === 'qemu-guest-agent') {\n if (!(Array.isArray(templateHasQGAPackage?.packages) && templateHasQGAPackage.packages.includes('qemu-guest-agent'))) {\n packages.splice(i, 1);\n }\n }\n }\n }\n\n if (Array.isArray(runcmd)) {\n const _QGA_JSON = this.getMatchQGA(osType);\n\n for (let i = 0; i < runcmd.length; i++) {\n if (Array.isArray(runcmd[i]) && runcmd[i].join('-') === _QGA_JSON.runcmd[0].join('-')) {\n runcmd.splice(i, 1);\n }\n }\n }\n\n if (packages.length > 0) {\n userDataDoc.setIn(['packages'], packages);\n } else {\n userDataDoc.setIn(['packages'], []);\n this.deleteYamlDocProp(userDataDoc, ['packages']);\n this.deleteYamlDocProp(userDataDoc, ['package_update']);\n }\n\n if (runcmd.length > 0) {\n userDataDoc.setIn(['runcmd'], runcmd);\n } else {\n this.deleteYamlDocProp(userDataDoc, ['runcmd']);\n }\n\n return userDataDoc;\n },\n\n generateSecretName(name) {\n return name ? `${ name }-${ randomStr(5).toLowerCase() }` : undefined;\n },\n\n getOwnerReferencesFromVM(resource) {\n const name = resource.metadata.name;\n const kind = resource.kind;\n const apiVersion = this.resourceType === HCI.VM ? 'kubevirt.io/v1' : 'harvesterhci.io/v1beta1';\n const uid = resource?.metadata?.uid;\n\n return [{\n name,\n kind,\n uid,\n apiVersion,\n }];\n },\n\n async saveSecret(vm) {\n if (!vm?.spec || !this.secretName || this.isWindows) {\n return true;\n }\n\n let secret = this.getSecret(vm.spec);\n\n if (!secret && this.isEdit && this.secretRef) {\n // When editing the vm, if the userData and networkData are deleted, we also need to clean up the secret values\n secret = this.secretRef;\n }\n\n if (!secret || this.needNewSecret) {\n secret = await this.$store.dispatch('harvester/create', {\n metadata: {\n name: this.secretName,\n namespace: this.value.metadata.namespace,\n labels: { [HCI_ANNOTATIONS.CLOUD_INIT]: 'harvester' },\n ownerReferences: this.getOwnerReferencesFromVM(vm)\n },\n type: SECRET\n });\n }\n\n try {\n if (secret) {\n // If none of the data comes from the secret, then no data needs to be saved to the secret\n if (!this.saveUserDataAsClearText || !this.saveNetworkDataAsClearText) {\n secret.setData('userdata', this.userData || '');\n secret.setData('networkdata', this.networkScript || '');\n await secret.save();\n }\n }\n } catch (e) {\n return Promise.reject(e);\n }\n },\n\n async saveAccessCredentials(vm) {\n if (!vm?.spec) {\n return true;\n }\n\n // save\n const toSave = [];\n\n for (const row of this.accessCredentials) {\n let secretRef = row.secretRef;\n\n if (!secretRef || this.needNewSecret) {\n secretRef = await this.$store.dispatch('harvester/create', {\n metadata: {\n name: row.secretName,\n namespace: vm.metadata.namespace,\n labels: { [HCI_ANNOTATIONS.CLOUD_INIT]: 'harvester' },\n ownerReferences: this.getOwnerReferencesFromVM(vm)\n },\n type: SECRET\n });\n }\n\n if (row.source === ACCESS_CREDENTIALS.RESET_PWD) {\n secretRef.setData(row.username, row.newPassword);\n }\n\n if (row.source === ACCESS_CREDENTIALS.INJECT_SSH) {\n for (const secretId of row.sshkeys) {\n const keypair = (this.$store.getters['harvester/all'](HCI.SSH) || []).find((s) => s.id === secretId);\n\n secretRef.setData(`${ keypair.metadata.namespace }-${ keypair.metadata.name }`, keypair.spec.publicKey);\n }\n }\n\n toSave.push(secretRef);\n }\n\n try {\n for (const resource of toSave) {\n await resource.save();\n }\n } catch (e) {\n return Promise.reject(e);\n }\n },\n\n getAccessCredentialsValidation() {\n const errors = [];\n\n for (let i = 0; i < this.accessCredentials.length; i++) {\n const row = this.accessCredentials[i];\n const source = row.source;\n\n if (source === ACCESS_CREDENTIALS.RESET_PWD) {\n if (!row.username) {\n const fieldName = this.t('harvester.virtualMachine.input.username');\n const message = this.t('validation.required', { key: fieldName });\n\n errors.push(message);\n }\n\n if (!row.newPassword) {\n const fieldName = this.t('harvester.virtualMachine.input.password');\n const message = this.t('validation.required', { key: fieldName });\n\n errors.push(message);\n }\n\n if (row.newPassword && row.newPassword.length < 6) {\n const fieldName = this.t('harvester.virtualMachine.input.password');\n const message = this.t('validation.number.min', { key: fieldName, val: '6' });\n\n errors.push(message);\n }\n } else {\n if (!row.users || row.users.length === 0) {\n const fieldName = this.t('harvester.virtualMachine.input.username');\n const message = this.t('validation.required', { key: fieldName });\n\n errors.push(message);\n }\n\n if (!row.sshkeys || row.sshkeys.length === 0) {\n const fieldName = this.t('harvester.virtualMachine.input.sshKeyValue');\n const message = this.t('validation.required', { key: fieldName });\n\n errors.push(message);\n }\n }\n\n if (errors.length > 0) {\n break;\n }\n }\n\n return errors;\n },\n\n getHasCreatedVolumes(spec) {\n const out = [];\n\n if (spec.template.spec.volumes) {\n spec.template.spec.volumes.forEach((V) => {\n if (V?.persistentVolumeClaim?.claimName) {\n out.push(V.persistentVolumeClaim.claimName);\n }\n });\n }\n\n return out;\n },\n\n handlerUSBTablet(val) {\n const hasExist = this.isInstallUSBTablet(this.spec);\n const inputs = this.spec.template.spec.domain.devices?.inputs || [];\n\n if (val && !hasExist) {\n if (inputs.length > 0) {\n inputs.push(USB_TABLET[0]);\n } else {\n Object.assign(this.spec.template.spec.domain.devices, {\n inputs: [\n USB_TABLET[0]\n ]\n });\n }\n } else if (!val) {\n const index = inputs.findIndex((O) => isEqual(O, USB_TABLET[0]));\n\n if (hasExist && inputs.length === 1) {\n delete this.spec.template.spec.domain.devices['inputs'];\n } else if (hasExist) {\n inputs.splice(index, 1);\n this.spec.template.spec.domain.devices['inputs'] = inputs;\n }\n }\n },\n\n setBootMethod(boot = {\n efi: false, secureBoot: false, efiPersistentStateEnabled: false\n }) {\n if (boot.efi) {\n set(this.spec.template.spec.domain, 'firmware.bootloader.efi.secureBoot', boot.secureBoot);\n } else {\n delete this.spec.template.spec.domain['firmware'];\n delete this.spec.template.spec.domain.features['smm'];\n\n return;\n }\n\n if (boot.secureBoot) {\n set(this.spec.template.spec.domain, 'features.smm.enabled', true);\n } else {\n try {\n delete this.spec.template.spec.domain.features.smm['enabled'];\n const noKeys = Object.keys(this.spec.template.spec.domain.features.smm).length === 0;\n\n if (noKeys) {\n delete this.spec.template.spec.domain.features['smm'];\n }\n } catch (e) {}\n }\n\n if (boot.efiPersistentStateEnabled) {\n set(this.spec.template.spec.domain, 'firmware.bootloader.efi.persistent', true);\n } else {\n delete this.spec.template.spec.domain.firmware.bootloader.efi['persistent'];\n }\n },\n\n setCpuPinning(value) {\n if (value) {\n set(this.spec.template.spec.domain.cpu, 'dedicatedCpuPlacement', true);\n } else {\n delete this.spec.template.spec.domain.cpu['dedicatedCpuPlacement'];\n }\n },\n\n setTPM({ tpmEnabled = false, tpmPersistentStateEnabled = false } = {}) {\n if (tpmEnabled) {\n set(this.spec.template.spec.domain.devices, 'tpm', tpmPersistentStateEnabled ? { persistent: true } : {});\n } else {\n delete this.spec.template.spec.domain.devices['tpm'];\n }\n },\n\n deleteSSHFromUserData(ssh = []) {\n const sshAuthorizedKeys = this.getSSHFromUserData(this.userScript);\n\n ssh.map((id) => {\n const index = sshAuthorizedKeys.findIndex((value) => value === this.getSSHValue(id));\n\n if (index >= 0) {\n sshAuthorizedKeys.splice(index, 1);\n }\n });\n\n const userDataJson = this.convertToJson(this.userScript);\n\n userDataJson.ssh_authorized_keys = sshAuthorizedKeys;\n\n if (sshAuthorizedKeys.length === 0) {\n delete userDataJson.ssh_authorized_keys;\n }\n\n if (isEmpty(userDataJson)) {\n this['userScript'] = undefined;\n } else {\n this['userScript'] = jsyaml.dump(userDataJson);\n }\n\n this.refreshYamlEditor();\n },\n\n refreshYamlEditor() {\n this.$nextTick(() => {\n this.$refs.yamlEditor?.updateValue();\n });\n },\n\n toggleAdvanced() {\n this.showAdvanced = !this.showAdvanced;\n },\n\n updateAgent(value) {\n if (!value) {\n this.deletePackage = true;\n }\n },\n\n updateDataTemplateId(type, id) {\n if (type === 'user') {\n const oldInstallAgent = this.installAgent;\n\n this.userDataTemplateId = id;\n this.$nextTick(() => {\n if (oldInstallAgent) {\n this.installAgent = oldInstallAgent;\n }\n });\n }\n },\n\n updateReserved(value = {}) {\n const { memory } = value;\n\n this['reservedMemory'] = memory;\n },\n\n updateTerminationGracePeriodSeconds(value) {\n this['terminationGracePeriodSeconds'] = value;\n },\n },\n\n watch: {\n diskRows: {\n handler(neu, old) {\n if (Array.isArray(neu)) {\n const imageId = neu[0]?.image;\n const image = this.images.find( (I) => imageId === I.id);\n const osType = image?.imageOSType;\n\n const oldImageId = old[0]?.image;\n\n if (this.isCreate && oldImageId === imageId && imageId) {\n this.osType = osType;\n }\n }\n }\n },\n\n secretRef: {\n handler(secret) {\n if (secret && this.resourceType !== HCI.BACKUP) {\n this.secretName = secret?.metadata.name;\n }\n },\n immediate: true,\n deep: true\n },\n\n isWindows(val) {\n if (val) {\n this['sshKey'] = [];\n this['userScript'] = undefined;\n this['installAgent'] = false;\n }\n },\n\n installUSBTablet(val) {\n this.handlerUSBTablet(val);\n },\n\n efiEnabled(val) {\n this.setBootMethod({\n efi: val, secureBoot: this.secureBoot, efiPersistentStateEnabled: this.efiPersistentStateEnabled\n });\n },\n\n secureBoot(val) {\n this.setBootMethod({\n efi: this.efiEnabled, secureBoot: val, efiPersistentStateEnabled: this.efiPersistentStateEnabled\n });\n },\n\n efiPersistentStateEnabled(val) {\n this.setBootMethod({\n efi: this.efiEnabled, secureBoot: this.secureBoot, efiPersistentStateEnabled: val\n });\n },\n\n cpuPinning(value) {\n this.setCpuPinning(value);\n },\n\n tpmEnabled(val) {\n this.setTPM({ tpmEnabled: val, tpmPersistentStateEnabled: this.tpmPersistentStateEnabled });\n },\n\n tpmPersistentStateEnabled(val) {\n this.setTPM({ tpmEnabled: this.tpmEnabled, tpmPersistentStateEnabled: val });\n },\n\n installAgent: {\n /**\n * rules\n * 1. The value in user Data is the first priority\n * 2. After selecting the template, if checkbox is checked, only merge operation will be performed on user data,\n * if checkbox is unchecked, no value will be deleted in user data\n */\n handler(neu) {\n if (this.deleteAgent) {\n let out = this.getUserData({\n installAgent: neu, osType: this.osType, deletePackage: this.deletePackage\n });\n\n if (neu) {\n const hasCloudComment = this.hasCloudConfigComment(out);\n\n if (!hasCloudComment) {\n out = `#cloud-config\\n${ out }`;\n }\n }\n\n this['userScript'] = out;\n this.refreshYamlEditor();\n }\n this.deleteAgent = true;\n this.deletePackage = false;\n }\n },\n\n osType(neu) {\n const out = this.getUserData({ installAgent: this.installAgent, osType: neu });\n\n this['userScript'] = out;\n this.refreshYamlEditor();\n },\n\n userScript(neu, old) {\n const hasInstallAgent = this.hasInstallAgent(neu, this.osType, this.installAgent);\n\n if (hasInstallAgent !== this.installAgent) {\n this.deleteAgent = false;\n this.installAgent = hasInstallAgent;\n }\n },\n\n sshKey(neu, old) {\n // refresh yaml editor to get the latest userScript\n this.userScript = this.getUserData({ installAgent: this.installAgent, osType: this.osType });\n this.refreshYamlEditor();\n\n const _diff = difference(old, neu);\n\n if (_diff.length > 0 && this.isCreate) {\n this.deleteSSHFromUserData(_diff);\n }\n }\n }\n};\n"],"names":["QGA_JSON","package_update","packages","runcmd","QGA_MAP","default","USB_TABLET","bus","name","type","SSH_EXISTING_TYPE","EXISTING_ALL","EXISTING_ONLY_ANNOTATION","EXISTING_ONLY_CLOUD","methods","hasCloudConfigComment","userScript","userDataDoc","YAML","items","contents","exist","comment","includes","commentBefore","map","item","key","getSSHValue","id","inStore","this","$store","getters","sshs","HCI","SSH","find","O","spec","publicKey","undefined","getOsType","vm","metadata","labels","HCI_ANNOTATIONS","OS","getMatchQGA","osType","_QGA_JSON","clone","hasCustomQGA","forEach","match","getSimilarRuncmd","hasInstallAgent","oldValue","dataFormat","jsyaml","e","Error","S","Array","isArray","join","isInstallUSBTablet","inputs","template","domain","devices","isEqual","isEfiEnabled","firmware","bootloader","efi","isTpmEnabled","tpm","isTPMPersistentStateEnabled","persistent","isEFIPersistentStateEnabled","isSecureBoot","secureBoot","isCpuPinning","cpu","dedicatedCpuPlacement","getCloudInitNoCloud","secret","getSecret","userData","decodedData","userdata","networkData","networkdata","cloudInitNoCloud","volumes","V","saveUserDataAsClearText","saveNetworkDataAsClearText","secrets","SECRET","secretName","secretRef","networkDataSecretRef","s","getAccessCredentials","credentials","accessCredentials","annotations","JSON","parse","DYNAMIC_SSHKEYS_NAMES","c","source","userPassword","out","username","newPassword","users","sshkeys","Object","keys","data","propagationMethod","qemuGuestAgent","getRootImageId","parseVolumeClaimTemplates","IMAGE_ID","getSSHFromAnnotation","ids","SSH_NAMES","convertToJson","script","getSSHFromUserData","ssh_authorized_keys","compareSSHValue","a","b","r","replace","mergeAllSSHs","length","allSSHs","hasSSHResource","ssh","_userDataSSH","sshValue","push","LONGHORN_V2_DATA_ENGINE","MANAGEMENT_NETWORK","label","value","CD_ROM","HARD_DISK","mixins","impl","props","required","resourceType","String","fetch","hash","pvs","dispatch","PV","pvcs","PVC","storageClasses","STORAGE_CLASS","settings","SETTING","images","IMAGE","versions","VM_VERSION","templates","VM_TEMPLATE","networkAttachment","NETWORK_ATTACHMENT","vmis","VMI","vmims","VMIM","vms","VM","addons","ADD_ONS","longhornV2Engine","LONGHORN","SETTINGS","NODE","nodes","CLUSTER_NETWORK","clusterNetworks","VLAN_CONFIG","VOLUMES","longhornVolumes","res","allHash","hasPCISchema","PCI_DEVICE","hasSRIOVGPUSchema","SR_IOVGPU_DEVICE","enabledAddons","reduce","acc","addon","enabled","enabledPCI","PCI_DEVICE_CONTROLLER","enabledSriovgpu","NVIDIA_DRIVER_TOOLKIT_CONTROLLER","isClone","realMode","_CLONE","sshKey","maintenanceStrategies","maintenanceStrategy","runStrategies","runStrategy","installAgent","hasCreateVolumes","installUSBTablet","networkScript","imageId","diskRows","networkRows","machineType","showAdvanced","deleteAgent","memory","reservedMemory","efiEnabled","tpmEnabled","tpmPersistentStateEnabled","efiPersistentStateEnabled","userDataTemplateId","immutableMode","_CREATE","_VIEW","terminationGracePeriodSeconds","cpuPinning","computed","filteredNamespaces","NAMESPACE","filter","namespace","isSystem","nodesIdOptions","networkNames","n","networkName","vmNetworks","selectedVMNetworks","uniq","clusterNetworkResource","N","isUnSchedulable","isEtcd","node","requireLabelKeys","isNetworkSchedule","clusterNetwork","requireLabelKey","nameDisplay","t","disabled","defaultStorageClass","defaultStorage","isDefault","storageClassSetting","storageClassValue","HCI_SETTING","DEFAULT_STORAGE_CLASS","customVolumeMode","volumeMode","customAccessMode","accessModes","isWindows","needNewSecret","isCreate","defaultTerminationSetting","setting","VM_TERMINATION_PERIOD","Number","affinityLabels","namespaceInputLabel","namespaceSelectionLabels","addLabel","topologyKeyPlaceholder","created","getInitConfig","init","config","existUserData","fromTemplate","BACKUP","status","volumeBackups","resources","limits","requests","VM_MAINTENANCE_MODE_STRATEGY","cores","VM_RESERVED_MEMORY","getDiskRows","getNetworkRows","getHasCreatedVolumes","secretBackups","secretNetworkData","secretUserData","base64Decode","getInitUserData","prototype","hasOwnProperty","call","running","refreshYamlEditor","volBackups","_volumes","_disks","disks","_volumeClaimTemplates","size","imageResource","I","isIsoImage","test","imageSuffix","imageSize","Math","max","virtualSize","isEncrypted","vBackup","volumeName","imageSizeGiB","ceil","randomStr","SOURCE_TYPE","accessMode","storageClassName","image","DISK","index","volume","realName","container","hotpluggable","dataSource","cdrom","disk","containerDisk","CONTAINER","persistentVolumeClaim","claimName","DVT","T","NEW","dataVolumeSpecPVC","storage","allPVCs","pvcResource","ATTACH_VOLUME","bootOrder","parseValue","parseSi","formatSize","formatSi","increment","addSuffix","maxExponent","minExponent","pvc","P","volumeStatus","relatedPV","VOLUME_ERROR","sortBy","networks","interfaces","network","sriov","bridge","isPod","pod","newCreateId","model","multus","parseVM","getUserData","parseOther","parseAccessCredentials","parseNetworkRows","parseDiskRows","machine","toString","diskNameLables","volumeClaimTemplates","R","prefixName","dataVolumeName","toLowerCase","_disk","parseDisk","_volume","parseVolume","_dataVolumeTemplate","parseVolumeClaimTemplate","generateSecretName","secretNamePrefix","D","cloudinitdisk","stringify","VM_NAME","isSingle","multiVMScheduler","VOLUME_CLAIM_TEMPLATE","NETWORK_IPS","networkIps","CREATOR","removeTrailingHyphen","str","endsWith","slice","namePrefix","VM_NAME_PREFIX","rule","weight","podAffinityTerm","topologyKey","HOSTNAME","labelSelector","matchLabels","affinity","podAntiAffinity","preferredDuringSchedulingIgnoredDuringExecution","networkRow","_network","parseNetwork","_interface","parseInterface","DYNAMIC_SSHKEYS_USERS","row","ACCESS_CREDENTIALS","RESET_PWD","INJECT_SSH","sshPublicKey","from","Set","getMaintenanceStrategyOptionLabel","opt","allSSHAuthorizedKeys","mergeSSHAuthorizedKeys","setIn","getIn","deleteIn","mergeQGA","deleteQGA","userDataYaml","console","error","updateSSHKey","neu","updateCpuMemory","getSSHListValue","arr","macAddress","updateUserData","updateNetworkData","yaml","sshAuthorizedKeys","get","toJSON","sshList","deleteYamlDocProp","doc","paths","isMatchProp","userDataYAML","userDataJSON","findIndex","hasSameRuncmd","hasSimilarRuncmd","deletePackage","userDataTemplateValue","CONFIG_MAP","cloudInit","templateHasQGAPackage","i","splice","getOwnerReferencesFromVM","resource","kind","apiVersion","uid","saveSecret","isEdit","CLOUD_INIT","ownerReferences","setData","save","Promise","reject","saveAccessCredentials","toSave","secretId","keypair","getAccessCredentialsValidation","errors","fieldName","message","val","handlerUSBTablet","hasExist","assign","setBootMethod","boot","features","set","smm","noKeys","setCpuPinning","setTPM","deleteSSHFromUserData","userDataJson","isEmpty","$nextTick","$refs","yamlEditor","updateValue","toggleAdvanced","updateAgent","updateDataTemplateId","oldInstallAgent","updateReserved","updateTerminationGracePeriodSeconds","watch","handler","old","imageOSType","oldImageId","immediate","deep","hasCloudComment","_diff","difference"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.514.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.514.js new file mode 100644 index 00000000..e690ddac --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.514.js @@ -0,0 +1,14 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[514],{60090:function(e,t,a){"use strict";a.d(t,{A:function(){return p}});var o=a(9274);const n={key:0,class:"label"},i={class:"text-label"},l={class:"value"};function r(e,t,a,r,s,d){return d.isView?((0,o.openBlock)(),(0,o.createElementBlock)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.renderSlot)(e.$slots,"name",{},(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(a.name),1)]),!0)]),(0,o.createElementVNode)("div",l,[(0,o.renderSlot)(e.$slots,"value",{},(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(d.displayValue),1)]),!0)])])):(0,o.renderSlot)(e.$slots,"default",{key:1},void 0,!0)}var s=a(14220),d={name:"InputOrDisplay",props:{name:{type:String,required:!0},value:{type:[Number,String,Array,void 0],default:""},mode:{type:String,default:"edit"}},computed:{isView(){return this.mode===s.nW},displayValue(){return Array.isArray(this.value)&&0===this.value.length?"":this.value}}},c=(a(18071),a(47433));const u=(0,c.A)(d,[["render",r],["__scopeId","data-v-a3d99010"]]);var p=u},39412:function(e,t,a){"use strict";a.d(t,{A:function(){return u}});var o=a(9274);const n={class:"label"},i={class:"text-label"},l={class:"value"};function r(e,t,a,r,s,d){return(0,o.openBlock)(),(0,o.createElementBlock)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.renderSlot)(e.$slots,"name",{},(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(a.name),1)]),!0)]),(0,o.createElementVNode)("div",l,[(0,o.renderSlot)(e.$slots,"value",{},(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(a.value),1)]),!0)])])}var s={props:{name:{type:String,required:!0},value:{type:[Number,String,void 0],default:""}}},d=(a(88405),a(47433));const c=(0,d.A)(s,[["render",r],["__scopeId","data-v-357627fa"]]);var u=c},25088:function(e,t,a){"use strict";a.d(t,{A:function(){return X}});var o=a(9274);const n={class:"key-value"},i={key:0,class:"clearfix"},l={key:0,class:"icon icon-info"},r=["aria-rowcount","aria-colcount"],s={key:0,class:"rowgroup"},d={class:"row"},c={class:"text-label",role:"columnheader"},u={key:0,class:"icon icon-info"},p={class:"text-label",role:"columnheader"},h={key:1,class:"rowgroup"},m={class:"row"},f=["aria-rowindex"],v=["onUpdate:modelValue","disabled","placeholder","data-testid","aria-label","onPaste"],g=["data-testid","aria-rowindex"],y={key:0},b={key:1},w=["onUpdate:modelValue","disabled","type","placeholder","data-testid","aria-label"],k=["aria-rowindex","aria-colindex"],x=["aria-rowindex","aria-colindex","data-testid"],S=["disabled","aria-label","onClick"],E={key:1,class:"footer mt-20"},N=["disabled","aria-label"],C={key:0,class:"mr-5 icon icon-spinner icon-spin icon-lg"};function B(e,t,a,B,D,_){const T=(0,o.resolveComponent)("Select"),A=(0,o.resolveComponent)("CodeMirror"),V=(0,o.resolveComponent)("TextAreaAutoGrow"),O=(0,o.resolveComponent)("FileSelector"),I=(0,o.resolveDirective)("clean-tooltip");return(0,o.openBlock)(),(0,o.createElementBlock)("div",n,[a.title||e.$slots.title?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[(0,o.renderSlot)(e.$slots,"title",{},(()=>[(0,o.createElementVNode)("h3",null,[(0,o.createTextVNode)((0,o.toDisplayString)(a.title)+" ",1),a.titleProtip?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("i",l,null,512)),[[I,a.titleProtip]]):(0,o.createCommentVNode)("",!0)])]))])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",{class:"kv-container",role:"grid","aria-rowcount":D.rows.length,"aria-colcount":a.extraColumns.length+2,style:(0,o.normalizeStyle)(_.containerStyle)},[D.rows.length||_.isView?((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.createElementVNode)("div",d,[(0,o.createElementVNode)("label",c,[(0,o.createTextVNode)((0,o.toDisplayString)(_._keyLabel)+" ",1),_._protip&&!_.isView&&a.addAllowed?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("i",u,null,512)),[[I,_._protip]]):(0,o.createCommentVNode)("",!0)]),(0,o.createElementVNode)("label",p,(0,o.toDisplayString)(_._valueLabel),1),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(a.extraColumns,((t,a)=>((0,o.openBlock)(),(0,o.createElementBlock)("label",{key:a,role:"columnheader"},[(0,o.renderSlot)(e.$slots,"label:"+t,{},(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(t),1)]))])))),128)),_.canRemove?(0,o.renderSlot)(e.$slots,"remove",{key:0},(()=>[t[3]||(t[3]=(0,o.createElementVNode)("span",null,null,-1))])):(0,o.createCommentVNode)("",!0)])])):(0,o.createCommentVNode)("",!0),!D.rows.length&&_.isView?((0,o.openBlock)(),(0,o.createElementBlock)("div",h,t[4]||(t[4]=[(0,o.createElementVNode)("div",{class:"row"},[(0,o.createElementVNode)("div",{class:"kv-item key text-muted",role:"gridcell"}," — "),(0,o.createElementVNode)("div",{class:"kv-item key text-muted",role:"gridcell"}," — ")],-1)]))):((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,{key:2},(0,o.renderList)(_.filteredRows,((n,i)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:i,class:"rowgroup"},[(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",{class:"kv-item key",role:"gridcell","aria-rowindex":i+1,"aria-colindex":1},[(0,o.renderSlot)(e.$slots,"key",{row:n,mode:a.mode,keyName:a.keyName,valueName:a.valueName,queueUpdate:e.queueUpdate,disabled:a.disabled},(()=>[a.keyOptions?((0,o.openBlock)(),(0,o.createBlock)(T,{key:0,ref_for:!0,ref:"key",value:n[a.keyName],"onUpdate:value":[e=>n[a.keyName]=e,e.queueUpdate],searchable:!0,disabled:a.disabled||_.isProtected(n.key),clearable:!1,taggable:a.keyTaggable,options:_.calculateOptions(n[a.keyName]),"data-testid":`select-kv-item-key-${i}`,"aria-label":e.t("generic.ariaLabel.key",{index:i})},null,8,["value","onUpdate:value","disabled","taggable","options","data-testid","aria-label"])):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,ref_for:!0,ref:"key","onUpdate:modelValue":e=>n[a.keyName]=e,disabled:_.isView||a.disabled||!a.keyEditable||_.isProtected(n.key),placeholder:_._keyPlaceholder,"data-testid":`input-kv-item-key-${i}`,"aria-label":e.t("generic.ariaLabel.key",{index:i}),onInput:t[0]||(t[0]=(...t)=>e.queueUpdate&&e.queueUpdate(...t)),onPaste:e=>_.onPaste(i,e)},null,40,v)),[[o.vModelText,n[a.keyName]]])]))],8,f),(0,o.createElementVNode)("div",{"data-testid":`kv-item-value-${i}`,class:"kv-item value",role:"gridcell","aria-rowindex":i+1,"aria-colindex":2},[(0,o.renderSlot)(e.$slots,"value",{row:n,mode:a.mode,keyName:a.keyName,valueName:a.valueName,queueUpdate:e.queueUpdate},(()=>[n.supported?n.binary?((0,o.openBlock)(),(0,o.createElementBlock)("div",b,(0,o.toDisplayString)(_.binaryTextSize(n.value)),1)):((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:2,class:(0,o.normalizeClass)(["value-container",{"upload-button":a.parseValueFromFile}])},[a.valueMarkdownMultiline?((0,o.openBlock)(),(0,o.createBlock)(A,{key:0,ref_for:!0,ref:"cm","data-testid":"code-mirror-multiline-field",class:(0,o.normalizeClass)({["focus"]:D.codeMirrorFocus[i]}),value:n[a.valueName],"as-text-area":!0,mode:a.mode,options:{screenReaderLabel:e.t("generic.ariaLabel.value",{index:i})},onOnInput:e=>_.onInputMarkdownMultiline(i,e),onOnFocus:e=>_.onFocusMarkdownMultiline(i,e)},null,8,["class","value","mode","options","onOnInput","onOnFocus"])):a.valueMultiline&&void 0!==n[a.valueName]?((0,o.openBlock)(),(0,o.createBlock)(V,{key:1,value:n[a.valueName],"onUpdate:value":[e=>n[a.valueName]=e,e.queueUpdate],"data-testid":"value-multiline",class:(0,o.normalizeClass)({conceal:a.valueConcealed}),disabled:a.disabled||_.isProtected(n.key),mode:a.mode,placeholder:_._valuePlaceholder,"min-height":40,spellcheck:!1,"aria-label":e.t("generic.ariaLabel.value",{index:i})},null,8,["value","onUpdate:value","class","disabled","mode","placeholder","aria-label"])):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:2,"onUpdate:modelValue":e=>n[a.valueName]=e,disabled:_.isView||a.disabled||_.isProtected(n.key),type:a.valueConcealed?"password":"text",placeholder:_._valuePlaceholder,autocorrect:"off",autocapitalize:"off",spellcheck:"false","data-testid":`input-kv-item-value-${i}`,"aria-label":e.t("generic.ariaLabel.value",{index:i}),onInput:t[1]||(t[1]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},null,40,w)),[[o.vModelDynamic,n[a.valueName]]]),a.parseValueFromFile&&a.readAllowed&&!_.isView&&_.isValueFieldEmpty(n[a.valueName])?((0,o.openBlock)(),(0,o.createBlock)(O,{key:3,class:"btn btn-sm role-secondary file-selector",label:e.t("generic.upload"),"include-file-name":!0,"aria-label":e.t("generic.ariaLabel.value",{index:i}),onSelected:e=>_.onValueFileSelected(i,e)},null,8,["label","aria-label","onSelected"])):(0,o.createCommentVNode)("",!0)],2)):((0,o.openBlock)(),(0,o.createElementBlock)("div",y,(0,o.toDisplayString)(e.t("detailText.unsupported",null,!0)),1))]))],8,g),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(a.extraColumns,((t,a)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:`${i}-${a}`,class:"kv-item extra",role:"gridcell","aria-rowindex":i+1,"aria-colindex":a+3},[(0,o.renderSlot)(e.$slots,"col:"+t,{row:n,queueUpdate:e.queueUpdate,i:i})],8,k)))),128)),_.canRemove?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:i,class:"kv-item remove",role:"gridcell","aria-rowindex":i+1,"aria-colindex":a.extraColumns.length+3,"data-testid":`remove-column-${i}`},[(0,o.renderSlot)(e.$slots,"removeButton",{remove:_.remove,row:n,i:i},(()=>[(0,o.createElementVNode)("button",{type:"button",role:"button",disabled:_.isView||_.isProtected(n.key)||a.disabled,"aria-label":a.removeLabel||e.t("generic.remove"),class:"btn role-link",onClick:e=>_.remove(i)},(0,o.toDisplayString)(a.removeLabel||e.t("generic.remove")),9,S)]))],8,x)):(0,o.createCommentVNode)("",!0)])])))),128))],12,r),!a.addAllowed&&!a.readAllowed||_.isView?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("div",E,[(0,o.renderSlot)(e.$slots,"add",{add:_.add},(()=>[a.addAllowed?((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:0,type:"button",role:"button",class:"btn role-tertiary add","data-testid":"add_row_item_button",disabled:a.loading||a.disabled||a.keyOptions&&0===_.filteredKeyOptions.length,"aria-label":_._addLabel,onClick:t[2]||(t[2]=e=>_.add())},[a.loading?((0,o.openBlock)(),(0,o.createElementBlock)("i",C)):(0,o.createCommentVNode)("",!0),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(_._addLabel),1)],8,N)):(0,o.createCommentVNode)("",!0),a.readAllowed?((0,o.openBlock)(),(0,o.createBlock)(O,{key:1,disabled:_.isView,class:"role-tertiary",label:e.t("generic.readFromFile"),"include-file-name":!0,onSelected:_.onFileSelected},null,8,["disabled","label","onSelected"])):(0,o.createCommentVNode)("",!0)]))]))])}var D=a(12784),_=a.n(D),T=a(74302),A=a(68851),V=a(4514),O=a(6198),I=a(6879),L=a(76978),P=a(18918),M=a(29649),$=a(14220),R=a(92043),U=a(94965),F=a(46343),q=a.n(F),j={name:"KeyValue",emits:["focusKey","update:value"],components:{CodeMirror:U.A,Select:P.A,TextAreaAutoGrow:I.V,FileSelector:M.A},props:{value:{type:[Array,Object],default:null},defaultValue:{type:[Array,Object],default:null},binaryValueKeys:{type:[Array,Object],default:null},mode:{type:String,default:$.G5},asMap:{type:Boolean,default:!0},initialEmptyRow:{type:Boolean,default:!1},title:{type:String,default:""},titleProtip:{type:String,default:""},protip:{type:[String,Boolean],default:""},keyName:{type:String,default:"key"},keyLabel:{type:String,default:""},keyEditable:{type:Boolean,default:!0},keyOptions:{type:Array,default:null},keyTaggable:{type:Boolean,default:!0},keyOptionUnique:{type:Boolean,default:!1},keyPlaceholder:{type:String,default:""},protectedKeys:{type:Array,default:()=>[]},toggleFilter:{type:Boolean,default:!1},separatorLabel:{type:String,default:""},valueName:{type:String,default:"value"},valueLabel:{type:String,default:""},valuePlaceholder:{type:String,default:""},valueCanBeEmpty:{type:Boolean,default:!1},displayValuesAsBinary:{type:Boolean,default:!1},valueMarkdownMultiline:{type:Boolean,default:!1},valueMultiline:{type:Boolean,default:!0},valueTrim:{type:Boolean,default:!0},handleBase64:{type:Boolean,default:!1},valueConcealed:{type:Boolean,default:!1},supported:{type:Function,default:e=>!0},preserveKeys:{type:Array,default:null},extraColumns:{type:Array,default:()=>[]},defaultAddData:{type:Object,default:()=>{}},addLabel:{type:String,default:""},addIcon:{type:String,default:"icon-plus"},addAllowed:{type:Boolean,default:!0},readIcon:{type:String,default:"icon-upload"},readAllowed:{type:Boolean,default:!0},readAccept:{type:String,default:"*"},readMultiple:{type:Boolean,default:!1},removeLabel:{type:String,default:""},removeIcon:{type:String,default:"icon-minus"},removeAllowed:{type:Boolean,default:!0},fileModifier:{type:Function,default:(e,t)=>({name:e,value:t})},parserSeparators:{type:Array,default:()=>[":","="]},loading:{default:!1,type:Boolean},parseLinesFromFile:{default:!1,type:Boolean},parseValueFromFile:{default:!1,type:Boolean},disabled:{default:!1,type:Boolean}},data(){const e=this.getRows(this.value);return{rows:e,codeMirrorFocus:{},lastUpdated:null}},computed:{_protip(){return this.protip||this.t("keyValue.protip",null,!0)},_keyLabel(){return this.keyLabel||this.t("generic.key")},_keyPlaceholder(){return this.keyPlaceholder||this.t("keyValue.keyPlaceholder")},_valueLabel(){return this.valueLabel||this.t("generic.value")},_valuePlaceholder(){return this.valuePlaceholder||this.t("keyValue.valuePlaceholder")},_addLabel(){return this.addLabel||this.t("generic.add")},isView(){return this.mode===$.nW},containerStyle(){const e=this.canRemove?" 50px":"",t=2+this.extraColumns.length;return`grid-template-columns: repeat(${t}, 1fr)${e};`},usedKeyOptions(){return this.rows.map((e=>e[this.keyName]))},filteredKeyOptions(){return this.keyOptionUnique?this.keyOptions.filter((e=>!this.usedKeyOptions.includes(e.value))):this.keyOptions},canRemove(){return!this.isView&&this.removeAllowed},filteredRows(){return this.rows.filter((e=>!(this.isProtected(e.key)&&!this.toggleFilter)))}},created(){this.queueUpdate=_()(this.update,500)},watch:{value:{deep:!0,handler(e,t){this.valuePropChanged(e,t)}}},methods:{valuePropChanged(e){q()(e,this.lastUpdated)||(this.rows=this.getRows(e))},isProtected(e){return this.protectedKeys&&this.protectedKeys.includes(e)},getRows(e){const t=[];if(this.asMap){const a=e||{};Object.keys(a).forEach((e=>{let o=a[e];const n=(0,V.u)(a[e]),i=(0,R.XC)(n);this.handleBase64&&i&&(o=(0,V.u)(o)),t.push({key:e,value:o,binary:this.displayValuesAsBinary||this.handleBase64&&!i,canEncode:this.handleBase64&&i,supported:!0})}))}else{const a=e||[];for(const e of a){let a=e[this.valueName]||"";const o=(0,V.u)(e[this.valueName]),n=(0,R.XC)(o);this.handleBase64&&n&&(a=(0,V.u)(a));const i={[this.keyName]:e[this.keyName]||"",[this.valueName]:a,binary:this.displayValuesAsBinary||this.handleBase64&&!n,canEncode:this.handleBase64&&n,supported:this.supported(e)};this.preserveKeys?.map((t=>{"undefined"!==typeof e[t]&&(i[t]=e[t])})),t.push(i)}}return t&&!t.length&&this.initialEmptyRow&&t.push({[this.keyName]:"",[this.valueName]:"",binary:!1,canEncode:this.handleBase64,supported:!0}),t},add(e="",t=""){const a={...this.defaultAddData,[this.keyName]:e,[this.valueName]:t};a.binary=!1,a.canEncode=this.handleBase64,a.supported=!0,this.rows.push(a),this.queueUpdate(),this.$nextTick((()=>{if(this.$refs.key){const e=this.$refs.key,t=e[e.length-1];t.focus()}else this.$emit("focusKey")}))},remove(e){(0,A.Wq)(this.rows,e),this.queueUpdate()},removeEmptyRows(){const e=this.rows.filter((e=>e.value.length||e.key.length));this["rows"]=e},onFileSelected(e){const{name:t,value:a}=this.fileModifier(e.name,e.value);if(this.parseLinesFromFile){const e=a.split("\n");e.forEach((e=>{if(e.length){const[t,a]=e.split("=");this.add(t,a)}})),e.length>0&&this.removeEmptyRows()}else this.add(t,a,this.displayValuesAsBinary)},download(e,t){const a=this.rows[e],o=a[this.keyName],n=a[this.valueName];(0,O.PE)(o,n,"application/octet-stream")},update(){let e;if(this.asMap){e={};const t=this.keyName,a=this.valueName;for(const o of this.rows){let n=o[a]||"";const i=(o[t]||"").trim();n&&"object"===(0,T.QP)(n)?e[i]=JSON.parse(JSON.stringify(n)):(n=n||"",this.valueTrim&&(0,R.XC)(n)&&(n=n.trim()),o.canEncode&&(n=(0,V.KA)(n)),i&&(n||this.valueCanBeEmpty)&&(e[i]=n))}}else{const t=this.preserveKeys||[];(0,A.Gj)(t,this.keyName),(0,A.Gj)(t,this.valueName),e=this.rows.map((e=>{let a=e[this.valueName];e.canEncode&&(a=(0,V.KA)(a));const o={[this.keyName]:e[this.keyName],[this.valueName]:a};for(const n of t)"undefined"!==typeof e[n]&&(o[n]=e[n]);return o}))}this.lastUpdated=e,this.$emit("update:value",e)},onPaste(e,t){const a=t.clipboardData.getData("text/plain"),o=a.split("\n"),n=o.map((e=>{const t=this.parserSeparators.find((t=>e.includes(t)));return t?e.split(t):""})).filter((e=>e&&e.length>0));if(0===n.length||1===n.length&&n[0].length<2)return;t.preventDefault();const i=n.map((e=>({[this.keyName]:(e[0]||"").trim(),[this.valueName]:(e[1]||"").trim(),supported:!0,canEncode:this.handleBase64,binary:this.displayValuesAsBinary})));this.rows.splice(e,1,...i),this.queueUpdate()},calculateOptions(e){const t=this.keyOptions.find((t=>t.value===e));return t?[t,...this.filteredKeyOptions]:this.filteredKeyOptions},binaryTextSize(e){const t=this.handleBase64?(0,V.u)(e):e,a=e.length?(0,V.dQ)(t):0;return this.t("detailText.binary",{n:a},!0)},get:L.Jt,onInputMarkdownMultiline(e,t){this.rows=this.rows.map(((a,o)=>o===e?{...a,value:t}:a)),this.queueUpdate()},onFocusMarkdownMultiline(e,t){this.codeMirrorFocus[e]=t},onValueFileSelected(e,t){const{name:a,value:o}=t;this.rows[e][this.keyName]||(this.rows[e][this.keyName]=a),this.rows[e][this.valueName]=o},isValueFieldEmpty(e){return!e||0===e.trim().length}}},H=(a(11761),a(47433));const K=(0,H.A)(j,[["render",B]]);var X=K},7365:function(e,t,a){"use strict";a.d(t,{A:function(){return k}});var o=a(9274);const n={class:"labels"},i={class:"labels__header"},l={key:0},r={class:"mt-10 mb-10"};function s(e,t,a,s,d,c){const u=(0,o.resolveComponent)("t"),p=(0,o.resolveComponent)("ToggleSwitch"),h=(0,o.resolveComponent)("KeyValue");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(c.containerClass)},[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(a.defaultSectionClass)},[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[a.showLabelTitle?((0,o.openBlock)(),(0,o.createElementBlock)("h3",l,[(0,o.createVNode)(u,{k:"labels.labels.title"})])):(0,o.createCommentVNode)("",!0),a.value.hasSystemLabels?((0,o.openBlock)(),(0,o.createBlock)(p,{key:1,value:d.toggler,"onUpdate:value":t[0]||(t[0]=e=>d.toggler=e),name:"label-system-toggle","on-label":e.t("labels.labels.show")},null,8,["value","on-label"])):(0,o.createCommentVNode)("",!0)]),(0,o.createElementVNode)("p",r,[(0,o.createVNode)(u,{k:"labels.labels.description"})]),(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(c.columnsClass)},[(0,o.renderSlot)(e.$slots,"labels",{toggler:d.toggler},(()=>[(0,o.createVNode)(h,{key:"labels",value:a.value.labels,"protected-keys":a.value.systemLabels||[],"toggle-filter":d.toggler,"add-label":e.t("labels.addLabel"),mode:a.mode,"read-allowed":!1,"value-can-be-empty":!0,"onUpdate:value":t[1]||(t[1]=e=>a.value.setLabels(e))},null,8,["value","protected-keys","toggle-filter","add-label","mode"])]),!0)],2)])],2),t[3]||(t[3]=(0,o.createElementVNode)("div",{class:"spacer"},null,-1)),a.showAnnotations?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:0,class:(0,o.normalizeClass)(c.sectionClass)},[(0,o.createVNode)(h,{key:"annotations",value:a.value.annotations,"add-label":e.t("labels.addAnnotation"),mode:a.mode,"protected-keys":a.value.systemAnnotations||[],"toggle-filter":d.toggler,title:e.t("labels.annotations.title"),"title-protip":a.annotationTitleTooltip,"read-allowed":!1,"value-can-be-empty":!0,"onUpdate:value":t[2]||(t[2]=e=>a.value.setAnnotations(e))},null,8,["value","add-label","mode","protected-keys","toggle-filter","title","title-protip"])],2)):(0,o.createCommentVNode)("",!0)],2)}var d=a(25088);const c={class:"toggle-container"},u={class:"switch hand"},p=["checked","aria-label"],h={ref:"switchChrome",class:"slider round"};function m(e,t,a,n,i,l){return(0,o.openBlock)(),(0,o.createElementBlock)("span",c,[(0,o.createElementVNode)("span",{class:(0,o.normalizeClass)(["label no-select hand",{active:!e.state}]),onClick:t[0]||(t[0]=t=>e.toggle(!1))},(0,o.toDisplayString)(e.offLabel),3),(0,o.createElementVNode)("label",u,[(0,o.createElementVNode)("input",{ref:"switchInput",type:"checkbox",role:"switch",checked:e.state,"aria-label":e.onLabel,onInput:t[1]||(t[1]=t=>e.toggle(null)),onKeydown:t[2]||(t[2]=(0,o.withKeys)((t=>e.toggle(null)),["enter"]))},null,40,p),(0,o.createElementVNode)("span",h,null,512)]),(0,o.createElementVNode)("span",{class:(0,o.normalizeClass)(["label no-select hand",{active:e.state}]),onClick:t[3]||(t[3]=t=>e.toggle(!0))},(0,o.toDisplayString)(e.onLabel),3)])}var f=(0,o.defineComponent)({props:{value:{type:[Boolean,String,Number],default:!1},offValue:{type:[Boolean,String,Number],default:!1},onValue:{type:[Boolean,String,Number],default:!0},offLabel:{type:String,default:""},onLabel:{type:String,default:""}},emits:["update:value"],setup(){const e=(0,o.useTemplateRef)("switchChrome"),t=()=>{e.value?.classList.add("focus")},a=()=>{e.value?.classList.remove("focus")},n=(0,o.useTemplateRef)("switchInput");(0,o.onMounted)((()=>{n.value?.addEventListener("focus",t),n.value?.addEventListener("blur",a)})),(0,o.onBeforeUnmount)((()=>{n.value?.removeEventListener("focus",t),n.value?.removeEventListener("blur",a)}))},data(){return{state:!1}},watch:{value:{handler(){this.state=this.value===this.onValue},immediate:!0}},methods:{toggle(e){this.state=null===e?!this.state:e,this.$emit("update:value",this.state?this.onValue:this.offValue)}}}),v=(a(88430),a(47433));const g=(0,v.A)(f,[["render",m],["__scopeId","data-v-0f4adcf7"]]);var y=g,b={components:{ToggleSwitch:y,KeyValue:d.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0},displaySideBySide:{type:Boolean,default:!1},defaultContainerClass:{type:String,default:""},defaultSectionClass:{type:String,default:""},labelTitleTooltip:{type:String,default:""},annotationTitleTooltip:{type:String,default:""},showAnnotations:{type:Boolean,default:!0},showLabelTitle:{type:Boolean,default:!0}},data(){return{toggler:!1}},computed:{containerClass(){return`${this.displaySideBySide?"row":""} ${this.defaultContainerClass}`.trim()},sectionClass(){return`${this.displaySideBySide?"col span-6":"row"} ${this.defaultSectionClass}`.trim()},columnsClass(){return(""+(this.displaySideBySide?"col span-6":"row")).trim()}}};a(53788);const w=(0,v.A)(b,[["render",s],["__scopeId","data-v-680c438c"]]);var k=w},51270:function(e,t,a){"use strict";a.d(t,{A:function(){return T}});var o=a(9274);const n={key:0},i=["data-testid"],l={key:0},r=["data-testid"],s={key:0},d=["onUpdate:modelValue","mode","data-testid"],c=["data-testid"],u={key:0},p={key:1,class:"no-value"},h=["data-testid"],m={key:0},f=["onUpdate:modelValue","mode","disabled","data-testid"],v={key:3,class:"remove-container"},g=["disabled","data-testid","onClick"],y={key:2,class:"mt-20"};function b(e,t,a,b,w,k){const x=(0,o.resolveComponent)("LabeledSelect"),S=(0,o.resolveComponent)("Select"),E=(0,o.resolveComponent)("t");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[a.showRemove&&!k.isView?((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:0,type:"button",class:"btn role-link remove-expression",onClick:t[0]||(t[0]=t=>e.$emit("remove"))},t[4]||(t[4]=[(0,o.createElementVNode)("i",{class:"icon icon-x"},null,-1)]))):(0,o.createCommentVNode)("",!0),w.rules.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:1,class:(0,o.normalizeClass)(["match-expression-header",{view:k.isView,"match-expression-header-matching":a.matchingSelectorDisplay}])},[a.matchingSelectorDisplay?((0,o.openBlock)(),(0,o.createElementBlock)("label",n,(0,o.toDisplayString)(e.t("workload.scheduling.affinity.matchExpressions.matchType")),1)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("label",null,(0,o.toDisplayString)(e.t("workload.scheduling.affinity.matchExpressions.key")),1),(0,o.createElementVNode)("label",null,(0,o.toDisplayString)(e.t("workload.scheduling.affinity.matchExpressions.operator")),1),(0,o.createElementVNode)("label",null,(0,o.toDisplayString)(e.t("workload.scheduling.affinity.matchExpressions.value")),1),t[5]||(t[5]=(0,o.createElementVNode)("span",null,null,-1))],2)):(0,o.createCommentVNode)("",!0),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(w.rules,((e,n)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:n,class:(0,o.normalizeClass)(["match-expression-row",{view:k.isView,"mb-10":n!==w.rules.length-1,"match-expression-row-matching":a.matchingSelectorDisplay}])},[a.matchingSelectorDisplay?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:0,"data-testid":`input-match-type-field-${n}`},[k.isView?((0,o.openBlock)(),(0,o.createElementBlock)("div",l,(0,o.toDisplayString)(e.matching),1)):((0,o.openBlock)(),(0,o.createBlock)(x,{key:1,value:e.matching,"onUpdate:value":t=>e.matching=t,mode:a.mode,options:k.matchingSelectOptions,"data-testid":`input-match-type-field-control-${n}`,onSelecting:k.update},null,8,["value","onUpdate:value","mode","options","data-testid","onSelecting"]))],8,i)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",{"data-testid":`input-match-expression-key-${n}`},[k.isView?((0,o.openBlock)(),(0,o.createElementBlock)("div",s,(0,o.toDisplayString)(e.key),1)):k.hasKeySelectOptions?((0,o.openBlock)(),(0,o.createBlock)(x,{key:2,value:e.key,"onUpdate:value":t=>e.key=t,mode:a.mode,options:a.keysSelectOptions,"data-testid":`input-match-expression-key-control-select-${n}`},null,8,["value","onUpdate:value","mode","options","data-testid"])):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":t=>e.key=t,mode:a.mode,"data-testid":`input-match-expression-key-control-${n}`,onInput:t[1]||(t[1]=(...e)=>k.update&&k.update(...e))},null,40,d)),[[o.vModelText,e.key]])],8,r),(0,o.createElementVNode)("div",{"data-testid":`input-match-expression-operator-${n}`},[k.isView?((0,o.openBlock)(),(0,o.createElementBlock)("div",u,(0,o.toDisplayString)(e.operator),1)):((0,o.openBlock)(),(0,o.createBlock)(S,{key:1,value:e.operator,"onUpdate:value":[t=>e.operator=t,k.update],class:"operator single",options:w.ops,clearable:!1,reduce:e=>e.value,mode:a.mode,"data-testid":`input-match-expression-operator-control-${n}`},null,8,["value","onUpdate:value","options","reduce","mode","data-testid"]))],8,c),"Exists"===e.operator||"DoesNotExist"===e.operator?((0,o.openBlock)(),(0,o.createElementBlock)("div",p,t[6]||(t[6]=[(0,o.createElementVNode)("label",{class:"text-muted"},"…",-1)]))):((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:2,"data-testid":`input-match-expression-values-${n}`},[k.isView?((0,o.openBlock)(),(0,o.createElementBlock)("div",m,(0,o.toDisplayString)(e.values),1)):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":t=>e.values=t,mode:a.mode,disabled:"Exists"===e.operator||"DoesNotExist"===e.operator,"data-testid":`input-match-expression-values-control-${n}`,onInput:t[2]||(t[2]=(...e)=>k.update&&k.update(...e))},null,40,f)),[[o.vModelText,e.values]])],8,h)),a.showRemoveButton?((0,o.openBlock)(),(0,o.createElementBlock)("div",v,[k.isView?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:0,type:"button",class:"btn role-link",style:{padding:"0px"},disabled:"view"===a.mode,"data-testid":`input-match-expression-remove-control-${n}`,onClick:t=>k.removeRule(e)},[(0,o.createVNode)(E,{k:"generic.remove"})],8,g))])):(0,o.createCommentVNode)("",!0)],2)))),128)),!k.isView&&a.showAddButton?((0,o.openBlock)(),(0,o.createElementBlock)("div",y,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-tertiary add","data-testid":"input-match-expression-add-rule",onClick:t[3]||(t[3]=(...e)=>k.addRule&&k.addRule(...e))},[(0,o.createVNode)(E,{k:"workload.scheduling.affinity.matchExpressions.addRule"})])])):(0,o.createCommentVNode)("",!0)])}var w=a(35664),k=a(18918),x=a(65359),S=a(68851),E=a(76978),N=a(38823),C=a(77988),B={emits:["update:value","remove"],components:{Select:k.A,LabeledSelect:C.A},props:{value:{type:[Array,Object],default:()=>[]},mode:{type:String,default:"edit"},type:{type:String,default:w.NW},matchingSelectorDisplay:{type:Boolean,default:!1},initialEmptyRow:{type:Boolean,default:!1},showAddButton:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showRemove:{type:Boolean,default:!0},keysSelectOptions:{type:Array,default:()=>[]}},data(){const e=this.$store.getters["i18n/t"],t=[{label:e("workload.scheduling.affinity.matchExpressions.in"),value:"In"},{label:e("workload.scheduling.affinity.matchExpressions.notIn"),value:"NotIn"},{label:e("workload.scheduling.affinity.matchExpressions.exists"),value:"Exists"},{label:e("workload.scheduling.affinity.matchExpressions.doesNotExist"),value:"DoesNotExist"}],a=[{label:e("workload.scheduling.affinity.matchExpressions.in"),value:"In"},{label:e("workload.scheduling.affinity.matchExpressions.notIn"),value:"NotIn"},{label:e("workload.scheduling.affinity.matchExpressions.exists"),value:"Exists"},{label:e("workload.scheduling.affinity.matchExpressions.doesNotExist"),value:"DoesNotExist"},{label:e("workload.scheduling.affinity.matchExpressions.lessThan"),value:"Lt"},{label:e("workload.scheduling.affinity.matchExpressions.greaterThan"),value:"Gt"}],o=this.type===w.NW?a:t;let n;if(this.matchingSelectorDisplay){const e={matchFields:[],matchExpressions:[]};["matchFields","matchExpressions"].forEach((t=>{e[t]=this.parseRules(this.value[t],t)})),n=[...e.matchFields,...e.matchExpressions]}else(0,S.cy)(this.value)?(n=[...this.value],n=this.parseRules(n)):(n=(0,N.C6)(this.value.matchLabels,this.value.matchExpressions),n=this.parseRules(n));if(!n.length&&this.initialEmptyRow&&!this.isView){const e={key:"",operator:"In",values:""};this.matchingSelectorDisplay&&(e.matching="matchExpressions"),n.push(e)}return{ops:o,rules:n,custom:[]}},computed:{isView(){return"view"===this.mode},node(){return w.NW},pod(){return w.Sm},hasKeySelectOptions(){return!!this.keysSelectOptions?.length},matchingSelectOptions(){return[{label:this.t("workload.scheduling.affinity.matchExpressions.label"),value:"matchExpressions"},{label:this.t("workload.scheduling.affinity.matchFields.label"),value:"matchFields"}]},...(0,x.L8)({t:"i18n/t"})},methods:{parseRules(e,t){return e?.length?e.map((e=>{const a=(0,E.o8)(e);return a.values&&"string"!==typeof a.values&&(a.values=a.values.join(", ")),t&&(a.matching=t),a})):[]},removeRule(e){(0,S.Gj)(this.rules,e),this.update()},addRule(){const e={key:"",operator:"In",values:""};this.matchingSelectorDisplay&&(e.matching="matchExpressions"),this.rules.push(e)},update(){this.$nextTick((()=>{const e=this.rules.map((e=>{const t={key:e.key,operator:e.operator};this.matchingSelectorDisplay&&(t.matching=e.matching);let a=(e.values||"").trim();return"Exists"!==e.operator&&"DoesNotExist"!==e.operator||(a=null),null!==a&&(t.values=a.split(/\s*,\s*/)),t})).filter((e=>!!e));(0,S.cy)(this.value)||this.matchingSelectorDisplay?this.$emit("update:value",e):this.$emit("update:value",(0,N.CR)(e))}))}}},D=(a(93071),a(47433));const _=(0,D.A)(B,[["render",b],["__scopeId","data-v-023836b7"]]);var T=_},41077:function(e,t,a){"use strict";a.d(t,{A:function(){return O}});var o=a(9274);const n={class:"row mb-20"},i={key:0,class:"row"},l={class:"col span-6"};function r(e,t,a,r,s,d){const c=(0,o.resolveComponent)("RadioGroup"),u=(0,o.resolveComponent)("LabeledSelect"),p=(0,o.resolveComponent)("NodeAffinity");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(c,{value:s.selectNode,"onUpdate:value":t[0]||(t[0]=e=>s.selectNode=e),name:"selectNode",options:d.selectNodeOptions,mode:a.mode,"data-testid":"node-scheduling-selectNode",onInput:d.update},null,8,["value","options","mode","onInput"])]),"nodeSelector"===s.selectNode?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(u,{value:s.nodeName,"onUpdate:value":[t[1]||(t[1]=e=>s.nodeName=e),d.update],label:e.t("workload.scheduling.affinity.nodeName"),options:a.nodes||[],mode:a.mode,multiple:!1,loading:a.loading,"data-testid":"node-scheduling-nodeSelector"},null,8,["value","label","options","mode","loading","onUpdate:value"])])])):"affinity"===s.selectNode?((0,o.openBlock)(),(0,o.createBlock)(p,{key:1,value:s.nodeAffinity,"onUpdate:value":t[2]||(t[2]=e=>s.nodeAffinity=e),mode:a.mode,"data-testid":"node-scheduling-nodeAffinity",onInput:d.update},null,8,["value","mode","onInput"])):(0,o.createCommentVNode)("",!0)])}var s=a(65359),d=a(10196),c=a(77988);const u={class:"col span-12"},p={class:"row"},h={class:"col span-9"},m={key:0,class:"col span-3"};function f(e,t,a,n,i,l){const r=(0,o.resolveComponent)("LabeledSelect"),s=(0,o.resolveComponent)("LabeledInput"),d=(0,o.resolveComponent)("MatchExpressions"),c=(0,o.resolveComponent)("ArrayListGrouped");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:"row","onUpdate:value":t[1]||(t[1]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},[(0,o.createElementVNode)("div",u,[(0,o.createVNode)(c,{value:e.allSelectorTerms,"onUpdate:value":t[0]||(t[0]=t=>e.allSelectorTerms=t),class:"mt-20",mode:a.mode,"default-add-value":{matchExpressions:[]},"add-label":e.t("workload.scheduling.affinity.addNodeSelector"),onRemove:l.remove},{default:(0,o.withCtx)((t=>[(0,o.createElementVNode)("div",p,[(0,o.createElementVNode)("div",h,[(0,o.createVNode)(r,{options:l.affinityOptions,value:l.priorityDisplay(t.row.value),label:e.t("workload.scheduling.affinity.priority"),mode:a.mode,"data-testid":`node-affinity-priority-index${t.i}`,"onUpdate:value":e=>l.changePriority(t.row.value)},null,8,["options","value","label","mode","data-testid","onUpdate:value"])]),"weight"in t.row.value?((0,o.openBlock)(),(0,o.createElementBlock)("div",m,[(0,o.createVNode)(s,{value:t.row.value.weight,"onUpdate:value":[e=>t.row.value.weight=e,l.update],valueModifiers:{number:!0},mode:a.mode,type:"number",min:"1",max:"100",label:e.t("workload.scheduling.affinity.weight.label"),placeholder:e.t("workload.scheduling.affinity.weight.placeholder"),"data-testid":`node-affinity-weight-index${t.i}`},null,8,["value","onUpdate:value","mode","label","placeholder","data-testid"])])):(0,o.createCommentVNode)("",!0)]),(0,o.createVNode)(d,{value:a.matchingSelectorDisplay?t.row.value:t.row.value.matchExpressions,"matching-selector-display":a.matchingSelectorDisplay,mode:a.mode,class:"col span-12 mt-20",type:l.node,"show-remove":!1,"data-testid":`node-affinity-expressions-index${t.i}`,"onUpdate:value":e=>l.updateExpressions(t.row.value,e)},null,8,["value","matching-selector-display","mode","type","data-testid","onUpdate:value"])])),_:1},8,["value","mode","add-label","onRemove"])])],32)}var v=a(12784),g=a.n(v),y=a(14220),b=a(76978),w=a(35664),k=a(51270),x=a(79380),S=a(92043),E=a(31097),N={emits:["update:value"],components:{ArrayListGrouped:E.A,MatchExpressions:k.A,LabeledSelect:c.A,LabeledInput:x.o},props:{value:{type:Object,default:()=>({})},mode:{type:String,default:"create"},matchingSelectorDisplay:{type:Boolean,default:!1}},data(){if(this.value.required)return{nodeSelectorTerms:this.value.required.nodeSelectorTerms};{const{preferredDuringSchedulingIgnoredDuringExecution:e=[],requiredDuringSchedulingIgnoredDuringExecution:t={}}=this.value,{nodeSelectorTerms:a=[]}=t,o=[...e,...a].map((e=>{const t=(0,b.o8)(e);return t._id=(0,S.vx)(4),e.preference&&(Object.assign(t,e.preference),delete t.preference),t}));return{allSelectorTerms:o,weightedNodeSelectorTerms:e,defaultWeight:1,rerenderNums:(0,S.vx)(4)}}},computed:{...(0,s.L8)({t:"i18n/t"}),isView(){return this.mode===y.nW},hasWeighted(){return!!this.weightedNodeSelectorTerms},node(){return w.NW},affinityOptions(){const e=[this.t("workload.scheduling.affinity.preferred"),this.t("workload.scheduling.affinity.required")];return e}},created(){this.queueUpdate=g()(this.update,500)},methods:{update(){const e={},t={nodeSelectorTerms:[]},a=[];this.allSelectorTerms.forEach((e=>{const o={...e};if(o.matchExpressions&&(o.matchExpressions=(o.matchExpressions||[]).map((e=>{const t={...e};return delete t.matching,t}))),o.matchFields&&(o.matchFields=(o.matchFields||[]).map((e=>{const t={...e};return delete t.matching,t}))),o.weight){const e={weight:o.weight,preference:o};delete e.preference.weight,a.push(e)}else t.nodeSelectorTerms.push(o)})),a.length&&(e.preferredDuringSchedulingIgnoredDuringExecution=a),t.nodeSelectorTerms.length&&(e.requiredDuringSchedulingIgnoredDuringExecution=t),this.$emit("update:value",e)},remove(){this.rerenderNums=(0,S.vx)(4),this.queueUpdate()},changePriority(e){e.weight?delete e["weight"]:e["weight"]=1,this.update()},priorityDisplay(e){return"weight"in e?this.t("workload.scheduling.affinity.preferred"):this.t("workload.scheduling.affinity.required")},updateExpressions(e,t){const a={matchFields:[],matchExpressions:[]};t.length&&(t.forEach((e=>{a[e.matching||"matchExpressions"].push(e)})),e["matchFields"]=a.matchFields,e["matchExpressions"]=a.matchExpressions,this.update())},get:b.Jt,isEmpty:b.Im}},C=a(47433);const B=(0,C.A)(N,[["render",f]]);var D=B,_=a(11518),T=a(2841),A={components:{RadioGroup:d.z,LabeledSelect:c.A,NodeAffinity:D},props:{value:{type:Object,default:()=>({})},nodes:{type:Array,default:()=>[]},mode:{type:String,default:"create"},loading:{default:!1,type:Boolean}},data(){const e=this.$store.getters["currentProduct"].inStore===_.T;let{nodeName:t=""}=this.value;const{affinity:a={},nodeSelector:o={}}=this.value,{nodeAffinity:n={}}=a;let i=null;return this.value.nodeName?i="nodeSelector":e&&this.value?.nodeSelector?.[T.yA]?(i="nodeSelector",t=o[T.yA]):(0,b.Im)(n)||(i="affinity"),n.requiredDuringSchedulingIgnoredDuringExecution||(n["requiredDuringSchedulingIgnoredDuringExecution"]={nodeSelectorTerms:[]}),n.preferredDuringSchedulingIgnoredDuringExecution||(n["preferredDuringSchedulingIgnoredDuringExecution"]=[]),{selectNode:i,nodeName:t,nodeAffinity:n,nodeSelector:o}},computed:{...(0,s.L8)({t:"i18n/t"}),isView(){return this.mode===y.nW},isHarvester(){return this.$store.getters["currentProduct"].inStore===_.T},selectNodeOptions(){const e=this.isHarvester?"harvester.virtualMachine":"workload",t=[{label:this.t(`${e}.scheduling.affinity.anyNode`),value:null},{label:this.t(`${e}.scheduling.affinity.specificNode`),value:"nodeSelector"},{label:this.t(`${e}.scheduling.affinity.schedulingRules`),value:"affinity"}];return t}},methods:{update(){const{nodeName:e,nodeSelector:t,nodeAffinity:a}=this;switch(this.selectNode){case"nodeSelector":this.isHarvester?Object.assign(this.value,{nodeSelector:{[T.yA]:e}}):Object.assign(this.value,{nodeSelector:t,nodeName:e}),this.value?.affinity?.nodeAffinity&&delete this.value.affinity.nodeAffinity;break;case"affinity":delete this.value.nodeName,delete this.value.nodeSelector,this.value.affinity?Object.assign(this.value.affinity,{nodeAffinity:a}):Object.assign(this.value,{affinity:{nodeAffinity:a}});break;default:delete this.value.nodeName,delete this.value.nodeSelector,this.value?.affinity?.nodeAffinity&&delete this.value.affinity.nodeAffinity}},isEmpty:b.Im},watch:{"value.nodeSelector":{handler(e){if(this.isHarvester&&e?.[T.yA]){this.selectNode="nodeSelector";const t=e[T.yA];this.nodeName=t;const a=this.nodes.map((e=>e.value));t&&!a.includes(t)&&(this.$store.dispatch("growl/error",{title:this.$store.getters["i18n/t"]("harvester.vmTemplate.tips.notExistNode.title",{name:t}),message:this.$store.getters["i18n/t"]("harvester.vmTemplate.tips.notExistNode.message")},{root:!0}),delete this.value.nodeSelector,this["nodeName"]="",this["selectNode"]=null)}}}}};const V=(0,C.A)(A,[["render",r]]);var O=V},18401:function(e,t,a){"use strict";a.d(t,{A:function(){return g}});var o=a(9274);const n={class:"password"},i={key:0,class:"addon"},l={key:1,class:"addon"},r={key:0,class:"mt-10 genPassword"};function s(e,t,a,s,d,c){const u=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",n,[(0,o.createVNode)(u,(0,o.mergeProps)({ref:"input",value:c.password,"onUpdate:value":t[3]||(t[3]=e=>c.password=e)},c.attributes,{type:a.isRandom||d.reveal?"text":"password",readonly:a.isRandom,label:a.label,required:a.required,disabled:a.isRandom,"ignore-password-managers":a.ignorePasswordManagers,mode:a.mode,onBlur:t[4]||(t[4]=t=>e.$emit("blur",t))}),{suffix:(0,o.withCtx)((()=>[a.isRandom?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[(0,o.createElementVNode)("a",{href:"#",onClick:t[0]||(t[0]=(0,o.withModifiers)((e=>c.copyTextToClipboard(c.password)),["prevent","stop"]))},(0,o.toDisplayString)(e.t("action.copy")),1)])):((0,o.openBlock)(),(0,o.createElementBlock)("div",l,[(0,o.createElementVNode)("a",{href:"#",tabindex:"0",class:"hide-show",role:"button",onClick:t[1]||(t[1]=(0,o.withModifiers)(((...e)=>c.hideShowFn&&c.hideShowFn(...e)),["prevent","stop"])),onKeyup:t[2]||(t[2]=(0,o.withKeys)((0,o.withModifiers)(((...e)=>c.hideShowFn&&c.hideShowFn(...e)),["prevent","stop"]),["space"]))},(0,o.toDisplayString)(c.hideShowLabel),33)]))])),_:1},16,["value","type","readonly","label","required","disabled","ignore-password-managers","mode"]),a.isRandom?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("a",{href:"#",onClick:t[5]||(t[5]=(0,o.withModifiers)(((...e)=>c.generatePassword&&c.generatePassword(...e)),["prevent","stop"]))},[t[6]||(t[6]=(0,o.createElementVNode)("i",{class:"icon icon-refresh"},null,-1)),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(e.t("changePassword.newGeneratedPassword")),1)])])):(0,o.createCommentVNode)("",!0)])}var d=a(65359),c=a(79380),u=a(92043),p=a(48881),h=a(14220),m={emits:["update:value","blur"],components:{LabeledInput:c.o},props:{value:{default:"",type:String},isRandom:{default:!1,type:Boolean},label:{default:"",type:String},name:{default:"",type:String},autocomplete:{type:String,default:""},required:{default:!1,type:Boolean},ignorePasswordManagers:{default:!1,type:Boolean},mode:{type:String,default:h.YQ}},data(){return{reveal:!1}},computed:{...(0,d.L8)({t:"i18n/t"}),password:{get(){return this.value},set(e){this.$emit("update:value",e)}},attributes(){const e={};return this.name&&(e.id=this.name,e.name=this.name),this.autocomplete&&(e.autocomplete=this.autocomplete),e},hideShowLabel(){return this.reveal?this.t("action.hide"):this.t("action.show")}},watch:{isRandom(){this.isRandom&&this.generatePassword()}},created(){this.isRandom&&this.generatePassword()},methods:{copyTextToClipboard:p.e,generatePassword(){this.password=(0,u.vx)(16,u.LQ.ALPHA_NUM)},show(e){this.reveal=e},focus(){this.$refs.input.$refs.value.focus()},hideShowFn(){this.reveal?this.reveal=!1:this.reveal=!0}}},f=(a(48823),a(47433));const v=(0,f.A)(m,[["render",s],["__scopeId","data-v-3366c7ce"]]);var g=v},19413:function(e,t,a){"use strict";a.d(t,{A:function(){return V}});var o=a(9274);const n={class:"col span-12"},i={class:"row mt-20 mb-20"},l={class:"col span-6"},r={class:"col span-6"},s={class:"row"},d={key:0,class:"row mt-10 mb-20"},c={class:"row mt-20"},u={class:"col span-9"},p={key:0,class:"col span-3"};function h(e,t,a,h,m,f){const v=(0,o.resolveComponent)("LabeledSelect"),g=(0,o.resolveComponent)("RadioGroup"),y=(0,o.resolveComponent)("LabeledInput"),b=(0,o.resolveComponent)("MatchExpressions"),w=(0,o.resolveComponent)("ArrayListGrouped");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{style:{width:"100%"},class:"row","onUpdate:value":t[1]||(t[1]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(w,{value:m.allSelectorTerms,"onUpdate:value":t[0]||(t[0]=e=>m.allSelectorTerms=e),class:"mt-20","default-add-value":m.defaultAddValue,mode:a.mode,"add-label":f.addLabel,onRemove:f.remove},{default:(0,o.withCtx)((t=>[(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(v,{mode:a.mode,options:[e.t("workload.scheduling.affinity.affinityOption"),e.t("workload.scheduling.affinity.antiAffinityOption")],value:t.row.value._anti?e.t("workload.scheduling.affinity.antiAffinityOption"):e.t("workload.scheduling.affinity.affinityOption"),label:e.t("workload.scheduling.affinity.type"),"data-testid":`pod-affinity-type-index${t.i}`,"onUpdate:value":e=>t.row.value._anti=!t.row.value._anti},null,8,["mode","options","value","label","data-testid","onUpdate:value"])]),(0,o.createElementVNode)("div",r,[(0,o.createVNode)(v,{mode:a.mode,options:[e.t("workload.scheduling.affinity.preferred"),e.t("workload.scheduling.affinity.required")],value:f.priorityDisplay(t.row.value),label:e.t("workload.scheduling.affinity.priority"),"data-testid":`pod-affinity-priority-index${t.i}`,"onUpdate:value":e=>f.changePriority(t.row.value,t.i)},null,8,["mode","options","value","label","data-testid","onUpdate:value"])])]),(0,o.createElementVNode)("div",s,[(0,o.createVNode)(g,{options:f.namespaceSelectionOptions,labels:f.namespaceSelectionLabels,name:`namespaces-${t.row.value._id}`,mode:a.mode,value:t.row.value._namespaceOption,"data-testid":`pod-affinity-namespacetype-index${t.i}`,"onUpdate:value":e=>f.changeNamespaceMode(e,t.row.value,t.i)},null,8,["options","labels","name","mode","value","data-testid","onUpdate:value"])]),t.row.value._namespaceOption===m.NAMESPACE_SELECTION_OPTION_VALUES.SELECTED?((0,o.openBlock)(),(0,o.createElementBlock)("div",d,[f.hasNamespaces&&!a.forceInputNamespaceSelection?((0,o.openBlock)(),(0,o.createBlock)(v,{key:0,value:t.row.value.namespaces,"onUpdate:value":[e=>t.row.value.namespaces=e,e=>f.updateNamespaces(t.row.value,t.row.value.namespaces)],mode:a.mode,multiple:!0,taggable:!0,options:f.allNamespacesOptions,label:f.labeledInputNamespaceLabel,"data-testid":`pod-affinity-namespace-select-index${t.i}`},null,8,["value","onUpdate:value","mode","options","label","data-testid"])):((0,o.openBlock)(),(0,o.createBlock)(y,{key:1,value:t.row.value._namespaces,"onUpdate:value":[e=>t.row.value._namespaces=e,e=>f.updateNamespaces(t.row.value,t.row.value._namespaces)],mode:a.mode,label:f.labeledInputNamespaceLabel,placeholder:e.t("harvesterManager.affinity.namespaces.placeholder"),"data-testid":`pod-affinity-namespace-input-index${t.i}`},null,8,["value","onUpdate:value","mode","label","placeholder","data-testid"]))])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(b,{mode:a.mode,class:"col span-12 mt-20",type:f.pod,value:f.get(t.row.value,"labelSelector.matchExpressions"),"show-remove":!1,"data-testid":`pod-affinity-expressions-index${t.i}`,"onUpdate:value":e=>f.updateLabelSelector(e,t)},null,8,["mode","type","value","data-testid","onUpdate:value"]),(0,o.createElementVNode)("div",c,[(0,o.createElementVNode)("div",u,[f.hasNodes?((0,o.openBlock)(),(0,o.createBlock)(v,{key:0,value:t.row.value.topologyKey,"onUpdate:value":[e=>t.row.value.topologyKey=e,f.update],taggable:!0,searchable:!0,"close-on-select":!1,mode:a.mode,required:"",label:e.t("workload.scheduling.affinity.topologyKey.label"),placeholder:f.topologyKeyPlaceholder,options:f.existingNodeLabels,disabled:"view"===a.mode,loading:a.loading,"data-testid":`pod-affinity-topology-select-index${t.i}`},null,8,["value","onUpdate:value","mode","label","placeholder","options","disabled","loading","data-testid"])):((0,o.openBlock)(),(0,o.createBlock)(y,{key:1,value:t.row.value.topologyKey,"onUpdate:value":[e=>t.row.value.topologyKey=e,f.update],mode:a.mode,label:e.t("workload.scheduling.affinity.topologyKey.label"),placeholder:f.topologyKeyPlaceholder,required:"","data-testid":`pod-affinity-topology-input-index${t.i}`},null,8,["value","onUpdate:value","mode","label","placeholder","data-testid"]))]),"weight"in t.row.value?((0,o.openBlock)(),(0,o.createElementBlock)("div",p,[(0,o.createVNode)(y,{value:t.row.value.weight,"onUpdate:value":[e=>t.row.value.weight=e,f.update],valueModifiers:{number:!0},mode:a.mode,type:"number",min:"1",max:"100",label:e.t("workload.scheduling.affinity.weight.label"),placeholder:e.t("workload.scheduling.affinity.weight.placeholder"),"data-testid":`pod-affinity-weight-index${t.i}`},null,8,["value","onUpdate:value","mode","label","placeholder","data-testid"])])):(0,o.createCommentVNode)("",!0)])])),_:1},8,["value","default-add-value","mode","add-label","onRemove"])])],32)}var m=a(65359),f=a(14220),v=a(76978),g=a(35664),y=a(51270),b=a(77988),w=a(10196),k=a(79380),x=a(92043),S=a(74302),E=a(12784),N=a.n(E),C=a(31097),B=a(68851);const D={POD:"pod",ALL:"all",SELECTED:"selected"};var _={emits:["update"],components:{ArrayListGrouped:C.A,MatchExpressions:y.A,LabeledSelect:b.A,RadioGroup:w.z,LabeledInput:k.o},props:{value:{type:Object,default:()=>({})},field:{type:String,default:"affinity"},mode:{type:String,default:"create"},nodes:{type:Array,default:()=>[]},namespaces:{type:Array,default:null},allNamespacesOptionAvailable:{default:!1,type:Boolean},forceInputNamespaceSelection:{default:!1,type:Boolean},removeLabeledInputNamespaceLabel:{default:!1,type:Boolean},overwriteLabels:{type:Object,default:null},loading:{default:!1,type:Boolean}},data(){this.value[this.field]||(this.value[this.field]={});const{podAffinity:e={},podAntiAffinity:t={}}=this.value[this.field],a=[...e.preferredDuringSchedulingIgnoredDuringExecution||[],...e.requiredDuringSchedulingIgnoredDuringExecution||[]].map((e=>{let t=(0,v.o8)(e);return t._id=(0,x.vx)(4),t._anti=!1,e.podAffinityTerm?(Object.assign(t,e.podAffinityTerm),t=this.parsePodAffinityTerm(t),delete t.podAffinityTerm):t=this.parsePodAffinityTerm(t),t})),o=[...t.preferredDuringSchedulingIgnoredDuringExecution||[],...t.requiredDuringSchedulingIgnoredDuringExecution||[]].map((e=>{let t=(0,v.o8)(e);return t._id=(0,x.vx)(4),t._anti=!0,e.podAffinityTerm?(Object.assign(t,e.podAffinityTerm),t=this.parsePodAffinityTerm(t),delete t.podAffinityTerm):t=this.parsePodAffinityTerm(t),t})),n=[...a,...o];return{allSelectorTerms:n,defaultWeight:1,rerenderNums:(0,x.vx)(4),NAMESPACE_SELECTION_OPTION_VALUES:D,defaultAddValue:{_namespaceOption:D.POD,matchExpressions:[],namespaces:null,_namespaces:null}}},computed:{...(0,m.L8)({t:"i18n/t"}),isView(){return this.mode===f.nW},pod(){return g.Sm},node(){return g.NW},labeledInputNamespaceLabel(){return this.removeLabeledInputNamespaceLabel?"":this.overwriteLabels?.namespaceInputLabel||this.t("workload.scheduling.affinity.matchExpressions.inNamespaces")},allNamespacesOptions(){const e=this.$store.getters["currentStore"](g.CU),t=this.namespaces||this.$store.getters[`${e}/all`](g.CU),a=(0,S.Ul)(t.map((e=>({label:e.nameDisplay,value:e.id}))),"label");return a},existingNodeLabels(){return(0,B.oQ)(this.nodes)},hasNodes(){return this.nodes.length},namespaceSelectionOptions(){return this.allNamespacesOptionAvailable?[D.POD,D.ALL,D.SELECTED]:[D.POD,D.SELECTED]},namespaceSelectionLabels(){return this.overwriteLabels?.namespaceSelectionLabels?this.overwriteLabels?.namespaceSelectionLabels:this.allNamespacesOptionAvailable?[this.t("workload.scheduling.affinity.thisPodNamespace"),this.t("workload.scheduling.affinity.allNamespaces"),this.t("workload.scheduling.affinity.matchExpressions.inNamespaces")]:[this.t("workload.scheduling.affinity.thisPodNamespace"),this.t("workload.scheduling.affinity.matchExpressions.inNamespaces")]},addLabel(){return this.overwriteLabels?.addLabel||this.t("podAffinity.addLabel")},topologyKeyPlaceholder(){return this.overwriteLabels?.topologyKeyPlaceholder||this.t("workload.scheduling.affinity.topologyKey.placeholder")},hasNamespaces(){return this.allNamespacesOptions.length}},created(){this.queueUpdate=N()(this.update,500)},methods:{parsePodAffinityTerm(e){return e.namespaceSelector&&"object"===typeof e.namespaceSelector&&!Object.keys(e.namespaceSelector).length&&this.allNamespacesOptionAvailable?e._namespaceOption=D.ALL:e.namespaces?.length?e._namespaceOption=D.SELECTED:e._namespaceOption=D.POD,e._namespaces=(e.namespaces||[]).toString(),e},update(){const e={requiredDuringSchedulingIgnoredDuringExecution:[],preferredDuringSchedulingIgnoredDuringExecution:[]},t={requiredDuringSchedulingIgnoredDuringExecution:[],preferredDuringSchedulingIgnoredDuringExecution:[]};this.allSelectorTerms.forEach((a=>{if(a._anti)if(a.weight){const e={podAffinityTerm:{...a},weight:a.weight||this.defaultWeight};delete e.podAffinityTerm.weight,t.preferredDuringSchedulingIgnoredDuringExecution.push(e)}else t.requiredDuringSchedulingIgnoredDuringExecution.push(a);else if(a.weight){const t={podAffinityTerm:a,weight:a.weight||this.defaultWeight};e.preferredDuringSchedulingIgnoredDuringExecution.push(t)}else e.requiredDuringSchedulingIgnoredDuringExecution.push(a)})),Object.assign(this.value[this.field],{podAffinity:e,podAntiAffinity:t}),this.$emit("update",this.value)},remove(){this.rerenderNums=(0,x.vx)(4),this.queueUpdate()},changePriority(e,t){e.weight?delete e.weight:e.weight=this.defaultWeight,this.allSelectorTerms[t]=(0,v.o8)(e),this.queueUpdate()},priorityDisplay(e){return"weight"in e?this.t("workload.scheduling.affinity.preferred"):this.t("workload.scheduling.affinity.required")},changeNamespaceMode(e,t,a){switch(t["_namespaceOption"]=e,e){case D.POD:t.namespaces=null,t._namespaces=null,(t.namespaceSelector||null===t.namespaceSelector)&&delete t.namespaceSelector;break;case D.ALL:t.namespaceSelector={},(t.namespaces||null===t.namespaces)&&delete t.namespaces,(t._namespaces||null===t._namespaces)&&delete t._namespaces;break;default:t["namespaces"]=[],t["_namespaces"]="",(t.namespaceSelector||null===t.namespaceSelector)&&delete t.namespaceSelector;break}this.allSelectorTerms[a]=t,this.queueUpdate()},updateNamespaces(e,t){let a=t;"string"===typeof t&&(a=t.split(",").map((e=>e.trim())).filter((e=>e?.length))),e["namespaces"]=a,this.queueUpdate()},updateLabelSelector(e,t){this.set(t.row.value,"labelSelector.matchExpressions",e),this.queueUpdate()},isEmpty:v.Im,get:v.Jt,set:v.hZ}},T=(a(35567),a(47433));const A=(0,T.A)(_,[["render",h]]);var V=A},72551:function(e,t,a){"use strict";a.d(t,{A:function(){return M}});var o=a(9274);const n={class:"mt-20"};function i(e,t,a,i,l,r){const s=(0,o.resolveComponent)("Conditions"),d=(0,o.resolveComponent)("Tab"),c=(0,o.resolveComponent)("PaginatedResourceTable"),u=(0,o.resolveComponent)("RelatedResources"),p=(0,o.resolveComponent)("Tabbed"),h=(0,o.resolveDirective)("t");return(0,o.openBlock)(),(0,o.createBlock)(p,(0,o.mergeProps)(e.$attrs,{"default-tab":a.defaultTab,onChanged:r.tabChange}),{default:(0,o.withCtx)((()=>[(0,o.renderSlot)(e.$slots,"default"),l.showConditions?((0,o.openBlock)(),(0,o.createBlock)(d,{key:0,"label-key":"resourceTabs.conditions.tab",name:"conditions",weight:-1,"display-alert-icon":r.conditionsHaveIssues},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(s,{value:a.value},null,8,["value"])])),_:1},8,["display-alert-icon"])):(0,o.createCommentVNode)("",!0),r.showEvents?((0,o.openBlock)(),(0,o.createBlock)(d,{key:1,"label-key":"resourceTabs.events.tab",name:"events",weight:-2},{default:(0,o.withCtx)((()=>["events"===l.selectedTab?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,schema:l.eventSchema,"local-filter":r.filterEventsLocal,"api-filter":r.filterEventsApi,"use-query-params-for-simple-filtering":!1,headers:r.eventHeaders,paginationHeaders:l.paginationHeaders,namespaced:!1},null,8,["schema","local-filter","api-filter","headers","paginationHeaders"])):(0,o.createCommentVNode)("",!0)])),_:1})):(0,o.createCommentVNode)("",!0),r.showRelated?((0,o.openBlock)(),(0,o.createBlock)(d,{key:2,name:"related","label-key":"resourceTabs.related.tab",weight:-3},{default:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h3",null,null,512),[[h,"resourceTabs.related.from"]]),(0,o.createVNode)(u,{"ignore-types":[a.value.type],value:a.value,direction:"from"},null,8,["ignore-types","value"]),(0,o.withDirectives)((0,o.createElementVNode)("h3",n,null,512),[[h,"resourceTabs.related.to"]]),(0,o.createVNode)(u,{"ignore-types":[a.value.type],value:a.value,direction:"to"},null,8,["ignore-types","value"])])),_:1})):(0,o.createCommentVNode)("",!0)])),_:3},16,["default-tab","onChanged"])}var l=a(59808),r=a(49584),s=a(91825);function d(e,t,a,n,i,l){const r=(0,o.resolveComponent)("SortableTable");return(0,o.openBlock)(),(0,o.createBlock)(r,{headers:l.headers,rows:l.rows,"key-field":"condition","default-sort-by":"condition","table-actions":!1,"row-actions":!1,search:!1},{"cell:condition":(0,o.withCtx)((({row:e})=>[(0,o.createElementVNode)("span",{class:(0,o.normalizeClass)({"text-error":e.error})},(0,o.toDisplayString)(e.condition),3)])),"cell:status":(0,o.withCtx)((({row:e})=>[(0,o.createElementVNode)("span",{class:(0,o.normalizeClass)({"text-error":e.error})},(0,o.toDisplayString)(e.status),3)])),_:1},8,["headers","rows"])}var c=a(81345),u={components:{SortableTable:c.A},props:{value:{type:Object,default:()=>({})}},computed:{headers(){return[{name:"condition",labelKey:"tableHeaders.condition",value:"condition",width:150,sort:"condition",dashIfEmpty:!0},{name:"status",labelKey:"tableHeaders.status",value:"status",width:75,sort:"status",dashIfEmpty:!0},{name:"time",labelKey:"tableHeaders.updated",value:"time",sort:"time",formatter:"LiveDate",formatterOpts:{addSuffix:!0},width:125,dashIfEmpty:!0},{name:"message",labelKey:"tableHeaders.message",value:"message",sort:["message"],dashIfEmpty:!0}]},rows(){return(this.value.status?.conditions||[]).map((e=>{let t=e.message||"";return e.reason&&(t=`[${e.reason}] ${t}`.trim()),{condition:e.type||"Unknown",status:e.status||"Unknown",error:e.error,time:e.lastProbeTime||e.lastUpdateTime||e.lastTransitionTime,message:t}}))}}},p=a(47433);const h=(0,p.A)(u,[["render",d]]);var m=h,f=a(35664);function v(e,t,a,n,i,l){const r=(0,o.resolveComponent)("ResourceTable");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createVNode)(r,(0,o.mergeProps)(e.$attrs,{schema:e.schema,rows:e.rows,"alt-loading":e.canPaginate&&!e.isFirstLoad,loading:e.loading,groupable:e.groupable,headers:e.safeHeaders,namespaced:e.namespaced,"external-pagination-enabled":e.canPaginate,"external-pagination-result":e.paginationResult,onPaginationChanged:e.paginationChanged}),(0,o.createSlots)({_:2},[(0,o.renderList)(e.$slots,((t,a)=>({name:a,fn:(0,o.withCtx)((t=>[(0,o.renderSlot)(e.$slots,a,(0,o.normalizeProps)((0,o.guardReactiveProps)(t)))]))})))]),1040,["schema","rows","alt-loading","loading","groupable","headers","namespaced","external-pagination-enabled","external-pagination-result","onPaginationChanged"])])}var g=a(23667),y=a(53500),b=(0,o.defineComponent)({name:"PaginatedResourceTable",components:{ResourceTable:y.A},mixins:[g.A],props:{schema:{type:Object,required:!0},headers:{type:Array,default:null},paginationHeaders:{type:Array,default:null},groupable:{type:Boolean,default:null},namespaced:{type:Boolean,default:null},fetchSecondaryResources:{type:Function,default:null},fetchPageSecondaryResources:{type:Function,default:null}},data(){return{resource:this.schema.id}},async fetch(){const e=[this.$fetchType(this.resource,[],this.inStore)];this.fetchSecondaryResources&&e.push(this.fetchSecondaryResources({canPaginate:this.canPaginate})),await Promise.all(e)},computed:{safeHeaders(){const e=this.canPaginate?this.paginationHeaders:this.headers;return e||this.$store.getters["type-map/headersFor"](this.schema,this.canPaginate)}}});const w=(0,p.A)(b,[["render",v]]);var k=w,x=a(14220);function S(e,t,a,n,i,l){const r=(0,o.resolveComponent)("BadgeState"),s=(0,o.resolveComponent)("ResourceTable");return(0,o.openBlock)(),(0,o.createBlock)(s,{schema:null,rows:l.rows,headers:l.headers,search:!1,"table-actions":!1,namespaced:!0,"mangle-action-resources":l.getRealResources,"paging-label":"sortableTable.paging.generic",groupable:!1},{"cell:state":(0,o.withCtx)((({row:e})=>[e.real?((0,o.openBlock)(),(0,o.createBlock)(r,{key:0,value:e.real},null,8,["value"])):((0,o.openBlock)(),(0,o.createBlock)(r,{key:1,value:e},null,8,["value"]))])),_:1},8,["rows","headers","mangle-action-resources"])}var E=a(73883),N=a(68774),C=a(74302),B=a(27278),D=a(87102),_={components:{ResourceTable:y.A,BadgeState:D.j},props:{value:{type:Object,required:!0},rel:{type:String,default:null},direction:{type:String,default:"to"},ignoreTypes:{type:Array,default:()=>[]}},data(){return{loadedResources:1}},computed:{filteredRelationships(){let e=this.value?.metadata?.relationships||[];return e=e.filter((e=>{const t=e[`${this.direction}Type`];return!(!t||this.ignoreTypes.includes(t))&&(!this.rel||e.rel===this.rel)})),e},rows(){if(this.loadedResources<1)return;const e=this.$store.getters["clusterId"],t=this.$store.getters["currentStore"](),a=[];for(const o of this.filteredRelationships){const n=o.state||"active",i=(0,E.uU)(n,o.error,o.transitioning),l=o[`${this.direction}Type`],r=this.$store.getters[`${t}/schemaFor`](l);let s=o[`${this.direction}Id`];if(!s)continue;let d=null;const c=s.indexOf("/"),u=`${l}/${d}/${s}`;c>0&&(d=s.substr(0,c),s=s.substr(c+1));const p={name:`c-cluster-product-resource${d?"-namespace":""}-id`,params:{product:B.o,cluster:"management"===t?"local":e,resource:l,namespace:d,id:s}};a.push({type:l,real:this.$store.getters[`${t}/byId`](l,o[`${this.direction}Id`]),id:o[`${this.direction}Id`],state:n,metadata:{namespace:d,name:s},_key:u,name:s,namespace:d,nameDisplay:s,nameSort:(0,C.RY)(s).toLowerCase(),stateColor:i,detailLocation:p,typeDisplay:this.$store.getters["type-map/labelFor"](r),stateDisplay:(0,E.ch)(n),stateBackground:i.replace("text-","bg-"),groupByLabel:d})}return a},headers(){return[N.c4,N.ZE,N.o_,N.CU]}},methods:{async getRealResources(e){const t=this.$store.getters["currentStore"](),a=await Promise.allSettled(e.map((e=>this.$store.dispatch(`${t}/find`,{type:e.type,id:e.id})))),o=[];for(let n=0;n<a.length;n++)"fulfilled"===a[n].status&&o.push(a[n].value);return this.loadedResources++,o}}};const T=(0,p.A)(_,[["render",S]]);var A=T,V=a(50025),O=a(57699),I=a(46392),L={name:"ResourceTabs",components:{Tabbed:l.A,Tab:r.A,Conditions:m,PaginatedResourceTable:k,RelatedResources:A},mixins:[s.A],props:{value:{type:Object,default:()=>({})},mode:{type:String,default:x.nW},defaultTab:{type:String,default:null},needConditions:{type:Boolean,default:!0},needEvents:{type:Boolean,default:!0},needRelated:{type:Boolean,default:!0},extensionParams:{type:Object,default:null}},data(){const e=this.$store.getters["currentStore"](f.ll),t=this.$store.getters[`${e}/schemaFor`](f.ll);return{eventSchema:t,EVENT:f.ll,selectedTab:this.defaultTab,inStore:e,showConditions:!1,paginationHeaders:[O.ke,O.qI,N.rh,(0,I.UQ)("Subobject",t,this.$store.getters,!0),(0,I.UQ)("Source",t,this.$store.getters,!0),N.w5,(0,I.UQ)("First Seen",t,this.$store.getters,!0),(0,I.UQ)("Count",t,this.$store.getters,!0),O.l3]}},beforeUnmount(){this.$store.dispatch("cluster/forgetType",f.ll)},fetch(){this.setShowConditions()},computed:{showEvents(){return this.isView&&this.needEvents&&this.eventSchema},showRelated(){return this.isView&&this.needRelated},eventHeaders(){return[{name:"type",label:this.t("tableHeaders.type"),value:"eventType",sort:"eventType"},{name:"reason",label:this.t("tableHeaders.reason"),value:"reason",sort:"reason"},{name:"date",label:this.t("tableHeaders.updated"),value:"date",sort:"date:desc",formatter:"LiveDate",formatterOpts:{addSuffix:!0},width:125},{name:"message",label:this.t("tableHeaders.message"),value:"message",sort:"message"}]},conditionsHaveIssues(){return!!this.showConditions&&this.value.status?.conditions?.filter((e=>!(0,E.rv)(e))).some((e=>e.error))}},methods:{tabChange(e){this.selectedTab=e?.selectedName},async setShowConditions(){this.isView&&this.needConditions&&this.value?.type&&this.schema?.fetchResourceFields&&(await this.schema.fetchResourceFields(),this.showConditions=this.$store.getters[`${this.inStore}/pathExistsInSchema`](this.value.type,"status.conditions"))},filterEventsLocal(e){return e.filter((e=>e.involvedObject?.uid===this.value?.metadata?.uid))},filterEventsApi(e){e.filters||(e.filters=[]);const t="involvedObject.uid";let a=null;for(let n=0;n<e.filters.length;n++){const o=e.filters[n];if(o.fields.find((e=>e.field===t))){a=o;break}}const o=V.eY.createSingleField({field:t,exact:!0,value:this.value.metadata.uid,equals:!0});return a?Object.assign(a,o):e.filters.push(o),e}}};const P=(0,p.A)(L,[["render",i]]);var M=P},77290:function(e,t,a){"use strict";a.d(t,{A:function(){return u}});var o=a(9274);function n(e,t,a,n,i,l){const r=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createBlock)(r,(0,o.mergeProps)({ref:"value",value:l.displayValue},e.$attrs,{type:"number",min:a.min,mode:a.mode,label:a.label,delay:a.delay,"label-key":a.labelKey,tooltip:a.tooltip,"tooltip-key":a.tooltipKey,required:a.required,placeholder:a.placeholder,"hide-arrows":a.hideArrows,onChange:t[0]||(t[0]=e=>l.update(e.target.value)),onBlur:t[1]||(t[1]=e=>l.update(e.target.value))}),{suffix:(0,o.withCtx)((()=>[l.displayUnit?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:0,class:(0,o.normalizeClass)(["addon",{"with-tooltip":a.tooltip||a.tooltipKey}])},(0,o.toDisplayString)(l.displayUnit),3)):(0,o.createCommentVNode)("",!0)])),_:1},16,["value","min","mode","label","delay","label-key","tooltip","tooltip-key","required","placeholder","hide-arrows"])}var i=a(95799),l=a(79380),r=a(14220),s={components:{LabeledInput:l.o},emits:["update:value","update:validation","change","blur"],props:{outputAs:{type:String,default:"number"},outputModifier:{type:Boolean,default:!1},inputExponent:{type:Number,default:0},baseUnit:{type:String,default:"B"},hideArrows:{type:Boolean,default:!1},increment:{type:Number,default:1e3},suffix:{type:String,default:null},mode:{type:String,default:r.G5},value:{type:[Number,String],default:null},label:{type:String,default:null},labelKey:{type:String,default:null},tooltip:{type:[String,Object],default:null},tooltipKey:{type:String,default:null},required:{type:Boolean,default:!1},min:{type:[Number,String],default:0},placeholder:{type:[String,Number],default:""},delay:{type:Number,default:0},positive:{type:Boolean,default:!1}},computed:{unit(){let e;return e=this.inputExponent>=0?i.QN[this.inputExponent]:i.kq[-1*this.inputExponent],1024===this.increment&&e&&(e+="i"),e},parsedValue(){return"string"===typeof this.value?(0,i.ao)(this.value):this.value},displayValue(){let e="";return(this.parsedValue||0===this.parsedValue)&&(e=(0,i.Mo)(this.parsedValue,{increment:this.increment,addSuffix:!1,maxExponent:this.inputExponent,minExponent:this.inputExponent})),e},displayUnit(){return this.suffix?this.suffix:this.unit+this.baseUnit}},methods:{focus(){const e=this.$refs.value;e&&e.focus()},update(e){let t=""===e?null:e;this.positive&&e<0&&(t=0),this.outputModifier?t=null===t?null:`${e}${this.unit}`:"string"===this.outputAs?t=null===t?"":`${e}`:t&&(t=this.unit?(0,i.ao)(`${t}${this.unit}`):parseInt(t)),this.$emit("update:value",t)}}},d=(a(99738),a(47433));const c=(0,d.A)(s,[["render",n],["__scopeId","data-v-de90d6f0"]]);var u=c},68454:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,".node-selector{position:relative}",""]),t["default"]=r},40439:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,".label[data-v-a3d99010]{display:flex;flex-direction:column}.label .value[data-v-a3d99010]{font-size:14px;line-height:18px}",""]),t["default"]=r},15829:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,".label[data-v-357627fa]{display:flex;flex-direction:column}.label .value[data-v-357627fa]{font-size:14px;line-height:18px}",""]),t["default"]=r},46545:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,".key-value{width:100%}.key-value .file-selector.role-link{text-transform:none;padding:0}.key-value .kv-container{display:grid;align-items:center;-moz-column-gap:20px;column-gap:20px}.key-value .kv-container label{margin-bottom:0}.key-value .kv-container .kv-item{width:100%;margin:10px 0 10px 0}.key-value .kv-container .kv-item.extra,.key-value .kv-container .kv-item.key{align-self:flex-start}.key-value .kv-container .kv-item.value .value-container.upload-button{position:relative;display:flex;justify-content:right;align-items:center}.key-value .kv-container .kv-item.value .value-container .file-selector{position:absolute;margin-right:5px}.key-value .kv-container .kv-item.value textarea{padding:10px 10px 10px 10px}.key-value .kv-container .kv-item .text-monospace:not(.conceal){font-family:monospace,monospace}.key-value .row,.key-value .rowgroup{display:grid;grid-column-start:1;grid-column-end:span end;grid-template-columns:subgrid}.key-value .row:before{display:none}.key-value .remove{text-align:center}.key-value .remove BUTTON{padding:0}.key-value .title{margin-bottom:10px}.key-value .title .read-from-file{float:right}.key-value input{height:40px;line-height:1}.key-value .footer .protip{float:right;padding:5px 0}.key-value .download{text-align:right}.key-value .copy-value{padding:0 0 0 10px}",""]),t["default"]=r},85692:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,".labels__header[data-v-680c438c]{display:flex;justify-content:space-between}",""]),t["default"]=r},39823:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,".operator .vs__dropdown-option[data-v-023836b7]{padding:3px 6px 3px 6px!important}.remove-expression[data-v-023836b7]{padding:8px;position:absolute;margin-bottom:10px;right:0;top:0;z-index:2}.remove-expression i[data-v-023836b7]{font-size:2em}.remove-container[data-v-023836b7]{display:flex;justify-content:center}.match-expression-header[data-v-023836b7],.match-expression-row[data-v-023836b7]{display:grid;grid-template-columns:1fr 1fr 1fr;margin:5px 0;grid-gap:1.75%}.match-expression-header>LABEL[data-v-023836b7],.match-expression-row>LABEL[data-v-023836b7]{margin:0}.match-expression-header[data-v-023836b7]:not(.view),.match-expression-row[data-v-023836b7]:not(.view){grid-template-columns:repeat(3,1fr) 50px}.match-expression-row>div>input[data-v-023836b7]{min-height:40px!important}.match-expression-header-matching[data-v-023836b7],.match-expression-row-matching[data-v-023836b7]{grid-template-columns:1fr 1fr 1fr 1fr}.match-expression-header-matching[data-v-023836b7]:not(.view),.match-expression-row-matching[data-v-023836b7]:not(.view){grid-template-columns:1fr 1fr 1fr 1fr 100px}",""]),t["default"]=r},17847:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,".password[data-v-3366c7ce]{display:flex;flex-direction:column}.password .labeled-input .addon[data-v-3366c7ce]{padding-left:12px;min-width:65px}.password .labeled-input .addon .hide-show[data-v-3366c7ce]:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:4px}.password .genPassword[data-v-3366c7ce]{display:flex;justify-content:flex-end}",""]),t["default"]=r},49530:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,".addon.with-tooltip[data-v-de90d6f0]{position:relative;right:30px}",""]),t["default"]=r},55182:function(e,t,a){"use strict";a.r(t);var o=a(36758),n=a.n(o),i=a(40935),l=a.n(i),r=l()(n());r.push([e.id,'.toggle-container[data-v-0f4adcf7]{align-items:center;display:flex}.toggle-container span[data-v-0f4adcf7]:first-child{padding-right:6px}.toggle-container span[data-v-0f4adcf7]:last-child{padding-left:6px}.switch[data-v-0f4adcf7]{position:relative;display:inline-block;width:48px;height:24px}.switch input[data-v-0f4adcf7]{opacity:0;width:0;height:0}.slider[data-v-0f4adcf7]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--checkbox-disabled-bg);transition:.4s}.slider.focus[data-v-0f4adcf7]{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px;transition:0s}.slider[data-v-0f4adcf7]:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:var(--checkbox-tick);transition:.4s}input:checked+.slider[data-v-0f4adcf7]{background-color:var(--checkbox-ticked-bg)}input:focus+.slider[data-v-0f4adcf7]{box-shadow:0 0 1px var(--checkbox-ticked-bg)}input:checked+.slider[data-v-0f4adcf7]:before{transform:translateX(24px)}.slider.round[data-v-0f4adcf7]{border-radius:34px}.slider.round[data-v-0f4adcf7]:before{border-radius:50%}',""]),t["default"]=r},24989:function(e,t,a){"use strict";a.d(t,{J:function(){return o}});const o={OPAQUE:"Opaque",SERVICE_ACCT:"kubernetes.io/service-account-token",DOCKER_JSON:"kubernetes.io/dockerconfigjson",BASIC:"kubernetes.io/basic-auth",SSH:"kubernetes.io/ssh-auth",TLS:"kubernetes.io/tls",BOOTSTRAP:"bootstrap.kubernetes.io/token",ISTIO_TLS:"istio.io/key-and-cert",HELM_RELEASE:"helm.sh/release.v1",FLEET_CLUSTER:"fleet.cattle.io/cluster-registration-values",CLOUD_CREDENTIAL:"provisioning.cattle.io/cloud-credential",RKE_AUTH_CONFIG:"rke.cattle.io/auth-config"}},98285:function(e,t,a){"use strict";a.d(t,{H:function(){return qt}});var o=a(9274); +/*! + * vue-draggable-next v2.2.0 + * (c) 2023 Anish George + * @license MIT + */ +/**! + * Sortable 1.14.0 + * @author RubaXa <trash@rubaxa.org> + * @author owenm <owen23355@gmail.com> + * @license MIT + */ +function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e){return l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(e[o]=a[o])}return e},s.apply(this,arguments)}function d(e,t){if(null==e)return{};var a,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)a=i[o],t.indexOf(a)>=0||(n[a]=e[a]);return n}function c(e,t){if(null==e)return{};var a,o,n=d(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)a=i[o],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u="1.14.0";function p(e){if("undefined"!==typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var h=p(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),m=p(/Edge/i),f=p(/firefox/i),v=p(/safari/i)&&!p(/chrome/i)&&!p(/android/i),g=p(/iP(ad|od|hone)/i),y=p(/chrome/i)&&p(/android/i),b={capture:!1,passive:!1};function w(e,t,a){e.addEventListener(t,a,!h&&b)}function k(e,t,a){e.removeEventListener(t,a,!h&&b)}function x(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(a){return!1}return!1}}function S(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function E(e,t,a,o){if(e){a=a||document;do{if(null!=t&&(">"===t[0]?e.parentNode===a&&x(e,t):x(e,t))||o&&e===a)return e;if(e===a)break}while(e=S(e))}return null}var N,C=/\s+/g;function B(e,t,a){if(e&&t)if(e.classList)e.classList[a?"add":"remove"](t);else{var o=(" "+e.className+" ").replace(C," ").replace(" "+t+" "," ");e.className=(o+(a?" "+t:"")).replace(C," ")}}function D(e,t,a){var o=e&&e.style;if(o){if(void 0===a)return document.defaultView&&document.defaultView.getComputedStyle?a=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(a=e.currentStyle),void 0===t?a:a[t];t in o||-1!==t.indexOf("webkit")||(t="-webkit-"+t),o[t]=a+("string"===typeof a?"":"px")}}function _(e,t){var a="";if("string"===typeof e)a=e;else do{var o=D(e,"transform");o&&"none"!==o&&(a=o+" "+a)}while(!t&&(e=e.parentNode));var n=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return n&&new n(a)}function T(e,t,a){if(e){var o=e.getElementsByTagName(t),n=0,i=o.length;if(a)for(;n<i;n++)a(o[n],n);return o}return[]}function A(){var e=document.scrollingElement;return e||document.documentElement}function V(e,t,a,o,n){if(e.getBoundingClientRect||e===window){var i,l,r,s,d,c,u;if(e!==window&&e.parentNode&&e!==A()?(i=e.getBoundingClientRect(),l=i.top,r=i.left,s=i.bottom,d=i.right,c=i.height,u=i.width):(l=0,r=0,s=window.innerHeight,d=window.innerWidth,c=window.innerHeight,u=window.innerWidth),(t||a)&&e!==window&&(n=n||e.parentNode,!h))do{if(n&&n.getBoundingClientRect&&("none"!==D(n,"transform")||a&&"static"!==D(n,"position"))){var p=n.getBoundingClientRect();l-=p.top+parseInt(D(n,"border-top-width")),r-=p.left+parseInt(D(n,"border-left-width")),s=l+i.height,d=r+i.width;break}}while(n=n.parentNode);if(o&&e!==window){var m=_(n||e),f=m&&m.a,v=m&&m.d;m&&(l/=v,r/=f,u/=f,c/=v,s=l+c,d=r+u)}return{top:l,left:r,bottom:s,right:d,width:u,height:c}}}function O(e,t,a){var o=R(e,!0),n=V(e)[t];while(o){var i=V(o)[a],l=void 0;if(l="top"===a||"left"===a?n>=i:n<=i,!l)return o;if(o===A())break;o=R(o,!1)}return!1}function I(e,t,a,o){var n=0,i=0,l=e.children;while(i<l.length){if("none"!==l[i].style.display&&l[i]!==We.ghost&&(o||l[i]!==We.dragged)&&E(l[i],a.draggable,e,!1)){if(n===t)return l[i];n++}i++}return null}function L(e,t){var a=e.lastElementChild;while(a&&(a===We.ghost||"none"===D(a,"display")||t&&!x(a,t)))a=a.previousElementSibling;return a||null}function P(e,t){var a=0;if(!e||!e.parentNode)return-1;while(e=e.previousElementSibling)"TEMPLATE"===e.nodeName.toUpperCase()||e===We.clone||t&&!x(e,t)||a++;return a}function M(e){var t=0,a=0,o=A();if(e)do{var n=_(e),i=n.a,l=n.d;t+=e.scrollLeft*i,a+=e.scrollTop*l}while(e!==o&&(e=e.parentNode));return[t,a]}function $(e,t){for(var a in e)if(e.hasOwnProperty(a))for(var o in t)if(t.hasOwnProperty(o)&&t[o]===e[a][o])return Number(a);return-1}function R(e,t){if(!e||!e.getBoundingClientRect)return A();var a=e,o=!1;do{if(a.clientWidth<a.scrollWidth||a.clientHeight<a.scrollHeight){var n=D(a);if(a.clientWidth<a.scrollWidth&&("auto"==n.overflowX||"scroll"==n.overflowX)||a.clientHeight<a.scrollHeight&&("auto"==n.overflowY||"scroll"==n.overflowY)){if(!a.getBoundingClientRect||a===document.body)return A();if(o||t)return a;o=!0}}}while(a=a.parentNode);return A()}function U(e,t){if(e&&t)for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a]);return e}function F(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}function q(e,t){return function(){if(!N){var a=arguments,o=this;1===a.length?e.call(o,a[0]):e.apply(o,a),N=setTimeout((function(){N=void 0}),t)}}}function j(){clearTimeout(N),N=void 0}function H(e,t,a){e.scrollLeft+=t,e.scrollTop+=a}function K(e){var t=window.Polymer,a=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):a?a(e).clone(!0)[0]:e.cloneNode(!0)}var X="Sortable"+(new Date).getTime();function Y(){var e,t=[];return{captureAnimationState:function(){if(t=[],this.options.animation){var e=[].slice.call(this.el.children);e.forEach((function(e){if("none"!==D(e,"display")&&e!==We.ghost){t.push({target:e,rect:V(e)});var a=i({},t[t.length-1].rect);if(e.thisAnimationDuration){var o=_(e,!0);o&&(a.top-=o.f,a.left-=o.e)}e.fromRect=a}}))}},addAnimationState:function(e){t.push(e)},removeAnimationState:function(e){t.splice($(t,{target:e}),1)},animateAll:function(a){var o=this;if(!this.options.animation)return clearTimeout(e),void("function"===typeof a&&a());var n=!1,i=0;t.forEach((function(e){var t=0,a=e.target,l=a.fromRect,r=V(a),s=a.prevFromRect,d=a.prevToRect,c=e.rect,u=_(a,!0);u&&(r.top-=u.f,r.left-=u.e),a.toRect=r,a.thisAnimationDuration&&F(s,r)&&!F(l,r)&&(c.top-r.top)/(c.left-r.left)===(l.top-r.top)/(l.left-r.left)&&(t=W(c,s,d,o.options)),F(r,l)||(a.prevFromRect=l,a.prevToRect=r,t||(t=o.options.animation),o.animate(a,c,r,t)),t&&(n=!0,i=Math.max(i,t),clearTimeout(a.animationResetTimer),a.animationResetTimer=setTimeout((function(){a.animationTime=0,a.prevFromRect=null,a.fromRect=null,a.prevToRect=null,a.thisAnimationDuration=null}),t),a.thisAnimationDuration=t)})),clearTimeout(e),n?e=setTimeout((function(){"function"===typeof a&&a()}),i):"function"===typeof a&&a(),t=[]},animate:function(e,t,a,o){if(o){D(e,"transition",""),D(e,"transform","");var n=_(this.el),i=n&&n.a,l=n&&n.d,r=(t.left-a.left)/(i||1),s=(t.top-a.top)/(l||1);e.animatingX=!!r,e.animatingY=!!s,D(e,"transform","translate3d("+r+"px,"+s+"px,0)"),this.forRepaintDummy=z(e),D(e,"transition","transform "+o+"ms"+(this.options.easing?" "+this.options.easing:"")),D(e,"transform","translate3d(0,0,0)"),"number"===typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout((function(){D(e,"transition",""),D(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1}),o)}}}}function z(e){return e.offsetWidth}function W(e,t,a,o){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-a.top,2)+Math.pow(t.left-a.left,2))*o.animation}var G=[],Q={initializeByDefault:!0},J={mount:function(e){for(var t in Q)Q.hasOwnProperty(t)&&!(t in e)&&(e[t]=Q[t]);G.forEach((function(t){if(t.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")})),G.push(e)},pluginEvent:function(e,t,a){var o=this;this.eventCanceled=!1,a.cancel=function(){o.eventCanceled=!0};var n=e+"Global";G.forEach((function(o){t[o.pluginName]&&(t[o.pluginName][n]&&t[o.pluginName][n](i({sortable:t},a)),t.options[o.pluginName]&&t[o.pluginName][e]&&t[o.pluginName][e](i({sortable:t},a)))}))},initializePlugins:function(e,t,a,o){for(var n in G.forEach((function(o){var n=o.pluginName;if(e.options[n]||o.initializeByDefault){var i=new o(e,t,e.options);i.sortable=e,i.options=e.options,e[n]=i,s(a,i.defaults)}})),e.options)if(e.options.hasOwnProperty(n)){var i=this.modifyOption(e,n,e.options[n]);"undefined"!==typeof i&&(e.options[n]=i)}},getEventProperties:function(e,t){var a={};return G.forEach((function(o){"function"===typeof o.eventProperties&&s(a,o.eventProperties.call(t[o.pluginName],e))})),a},modifyOption:function(e,t,a){var o;return G.forEach((function(n){e[n.pluginName]&&n.optionListeners&&"function"===typeof n.optionListeners[t]&&(o=n.optionListeners[t].call(e[n.pluginName],a))})),o}};function Z(e){var t=e.sortable,a=e.rootEl,o=e.name,n=e.targetEl,l=e.cloneEl,r=e.toEl,s=e.fromEl,d=e.oldIndex,c=e.newIndex,u=e.oldDraggableIndex,p=e.newDraggableIndex,f=e.originalEvent,v=e.putSortable,g=e.extraEventProperties;if(t=t||a&&a[X],t){var y,b=t.options,w="on"+o.charAt(0).toUpperCase()+o.substr(1);!window.CustomEvent||h||m?(y=document.createEvent("Event"),y.initEvent(o,!0,!0)):y=new CustomEvent(o,{bubbles:!0,cancelable:!0}),y.to=r||a,y.from=s||a,y.item=n||a,y.clone=l,y.oldIndex=d,y.newIndex=c,y.oldDraggableIndex=u,y.newDraggableIndex=p,y.originalEvent=f,y.pullMode=v?v.lastPutMode:void 0;var k=i(i({},g),J.getEventProperties(o,t));for(var x in k)y[x]=k[x];a&&a.dispatchEvent(y),b[w]&&b[w].call(t,y)}}var ee=["evt"],te=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=a.evt,n=c(a,ee);J.pluginEvent.bind(We)(e,t,i({dragEl:oe,parentEl:ne,ghostEl:ie,rootEl:le,nextEl:re,lastDownEl:se,cloneEl:de,cloneHidden:ce,dragStarted:Se,putSortable:ve,activeSortable:We.active,originalEvent:o,oldIndex:ue,oldDraggableIndex:he,newIndex:pe,newDraggableIndex:me,hideGhostForTarget:Ke,unhideGhostForTarget:Xe,cloneNowHidden:function(){ce=!0},cloneNowShown:function(){ce=!1},dispatchSortableEvent:function(e){ae({sortable:t,name:e,originalEvent:o})}},n))};function ae(e){Z(i({putSortable:ve,cloneEl:de,targetEl:oe,rootEl:le,oldIndex:ue,oldDraggableIndex:he,newIndex:pe,newDraggableIndex:me},e))}var oe,ne,ie,le,re,se,de,ce,ue,pe,he,me,fe,ve,ge,ye,be,we,ke,xe,Se,Ee,Ne,Ce,Be,De=!1,_e=!1,Te=[],Ae=!1,Ve=!1,Oe=[],Ie=!1,Le=[],Pe="undefined"!==typeof document,Me=g,$e=m||h?"cssFloat":"float",Re=Pe&&!y&&!g&&"draggable"in document.createElement("div"),Ue=function(){if(Pe){if(h)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),Fe=function(e,t){var a=D(e),o=parseInt(a.width)-parseInt(a.paddingLeft)-parseInt(a.paddingRight)-parseInt(a.borderLeftWidth)-parseInt(a.borderRightWidth),n=I(e,0,t),i=I(e,1,t),l=n&&D(n),r=i&&D(i),s=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+V(n).width,d=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+V(i).width;if("flex"===a.display)return"column"===a.flexDirection||"column-reverse"===a.flexDirection?"vertical":"horizontal";if("grid"===a.display)return a.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(n&&l["float"]&&"none"!==l["float"]){var c="left"===l["float"]?"left":"right";return!i||"both"!==r.clear&&r.clear!==c?"horizontal":"vertical"}return n&&("block"===l.display||"flex"===l.display||"table"===l.display||"grid"===l.display||s>=o&&"none"===a[$e]||i&&"none"===a[$e]&&s+d>o)?"vertical":"horizontal"},qe=function(e,t,a){var o=a?e.left:e.top,n=a?e.right:e.bottom,i=a?e.width:e.height,l=a?t.left:t.top,r=a?t.right:t.bottom,s=a?t.width:t.height;return o===l||n===r||o+i/2===l+s/2},je=function(e,t){var a;return Te.some((function(o){var n=o[X].options.emptyInsertThreshold;if(n&&!L(o)){var i=V(o),l=e>=i.left-n&&e<=i.right+n,r=t>=i.top-n&&t<=i.bottom+n;return l&&r?a=o:void 0}})),a},He=function(e){function t(e,a){return function(o,n,i,l){var r=o.options.group.name&&n.options.group.name&&o.options.group.name===n.options.group.name;if(null==e&&(a||r))return!0;if(null==e||!1===e)return!1;if(a&&"clone"===e)return e;if("function"===typeof e)return t(e(o,n,i,l),a)(o,n,i,l);var s=(a?o:n).options.group.name;return!0===e||"string"===typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var a={},o=e.group;o&&"object"==l(o)||(o={name:o}),a.name=o.name,a.checkPull=t(o.pull,!0),a.checkPut=t(o.put),a.revertClone=o.revertClone,e.group=a},Ke=function(){!Ue&&ie&&D(ie,"display","none")},Xe=function(){!Ue&&ie&&D(ie,"display","")};Pe&&document.addEventListener("click",(function(e){if(_e)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),_e=!1,!1}),!0);var Ye=function(e){if(oe){e=e.touches?e.touches[0]:e;var t=je(e.clientX,e.clientY);if(t){var a={};for(var o in e)e.hasOwnProperty(o)&&(a[o]=e[o]);a.target=a.rootEl=t,a.preventDefault=void 0,a.stopPropagation=void 0,t[X]._onDragOver(a)}}},ze=function(e){oe&&oe.parentNode[X]._isOutsideThisEl(e.target)};function We(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=s({},t),e[X]=this;var a={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Fe(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==We.supportPointer&&"PointerEvent"in window&&!v,emptyInsertThreshold:5};for(var o in J.initializePlugins(this,e,a),a)!(o in t)&&(t[o]=a[o]);for(var n in He(t),this)"_"===n.charAt(0)&&"function"===typeof this[n]&&(this[n]=this[n].bind(this));this.nativeDraggable=!t.forceFallback&&Re,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?w(e,"pointerdown",this._onTapStart):(w(e,"mousedown",this._onTapStart),w(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(w(e,"dragover",this),w(e,"dragenter",this)),Te.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),s(this,Y())}function Ge(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}function Qe(e,t,a,o,n,i,l,r){var s,d,c=e[X],u=c.options.onMove;return!window.CustomEvent||h||m?(s=document.createEvent("Event"),s.initEvent("move",!0,!0)):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=a,s.draggedRect=o,s.related=n||t,s.relatedRect=i||V(t),s.willInsertAfter=r,s.originalEvent=l,e.dispatchEvent(s),u&&(d=u.call(c,s,l)),d}function Je(e){e.draggable=!1}function Ze(){Ie=!1}function et(e,t,a){var o=V(I(a.el,0,a.options,!0)),n=10;return t?e.clientX<o.left-n||e.clientY<o.top&&e.clientX<o.right:e.clientY<o.top-n||e.clientY<o.bottom&&e.clientX<o.left}function tt(e,t,a){var o=V(L(a.el,a.options.draggable)),n=10;return t?e.clientX>o.right+n||e.clientX<=o.right&&e.clientY>o.bottom&&e.clientX>=o.left:e.clientX>o.right&&e.clientY>o.top||e.clientX<=o.right&&e.clientY>o.bottom+n}function at(e,t,a,o,n,i,l,r){var s=o?e.clientY:e.clientX,d=o?a.height:a.width,c=o?a.top:a.left,u=o?a.bottom:a.right,p=!1;if(!l)if(r&&Ce<d*n){if(!Ae&&(1===Ne?s>c+d*i/2:s<u-d*i/2)&&(Ae=!0),Ae)p=!0;else if(1===Ne?s<c+Ce:s>u-Ce)return-Ne}else if(s>c+d*(1-n)/2&&s<u-d*(1-n)/2)return ot(t);return p=p||l,p&&(s<c+d*i/2||s>u-d*i/2)?s>c+d/2?1:-1:0}function ot(e){return P(oe)<P(e)?1:-1}function nt(e){var t=e.tagName+e.className+e.src+e.href+e.textContent,a=t.length,o=0;while(a--)o+=t.charCodeAt(a);return o.toString(36)}function it(e){Le.length=0;var t=e.getElementsByTagName("input"),a=t.length;while(a--){var o=t[a];o.checked&&Le.push(o)}}function lt(e){return setTimeout(e,0)}function rt(e){return clearTimeout(e)}We.prototype={constructor:We,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(Ee=null)},_getDirection:function(e,t){return"function"===typeof this.options.direction?this.options.direction.call(this,e,t,oe):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,a=this.el,o=this.options,n=o.preventOnFilter,i=e.type,l=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,r=(l||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||r,d=o.filter;if(it(a),!oe&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||o.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!v||!r||"SELECT"!==r.tagName.toUpperCase())&&(r=E(r,o.draggable,a,!1),(!r||!r.animated)&&se!==r)){if(ue=P(r),he=P(r,o.draggable),"function"===typeof d){if(d.call(this,e,r,this))return ae({sortable:t,rootEl:s,name:"filter",targetEl:r,toEl:a,fromEl:a}),te("filter",t,{evt:e}),void(n&&e.cancelable&&e.preventDefault())}else if(d&&(d=d.split(",").some((function(o){if(o=E(s,o.trim(),a,!1),o)return ae({sortable:t,rootEl:o,name:"filter",targetEl:r,fromEl:a,toEl:a}),te("filter",t,{evt:e}),!0})),d))return void(n&&e.cancelable&&e.preventDefault());o.handle&&!E(s,o.handle,a,!1)||this._prepareDragStart(e,l,r)}}},_prepareDragStart:function(e,t,a){var o,n=this,i=n.el,l=n.options,r=i.ownerDocument;if(a&&!oe&&a.parentNode===i){var s=V(a);if(le=i,oe=a,ne=oe.parentNode,re=oe.nextSibling,se=a,fe=l.group,We.dragged=oe,ge={target:oe,clientX:(t||e).clientX,clientY:(t||e).clientY},ke=ge.clientX-s.left,xe=ge.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,oe.style["will-change"]="all",o=function(){te("delayEnded",n,{evt:e}),We.eventCanceled?n._onDrop():(n._disableDelayedDragEvents(),!f&&n.nativeDraggable&&(oe.draggable=!0),n._triggerDragStart(e,t),ae({sortable:n,name:"choose",originalEvent:e}),B(oe,l.chosenClass,!0))},l.ignore.split(",").forEach((function(e){T(oe,e.trim(),Je)})),w(r,"dragover",Ye),w(r,"mousemove",Ye),w(r,"touchmove",Ye),w(r,"mouseup",n._onDrop),w(r,"touchend",n._onDrop),w(r,"touchcancel",n._onDrop),f&&this.nativeDraggable&&(this.options.touchStartThreshold=4,oe.draggable=!0),te("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(m||h))o();else{if(We.eventCanceled)return void this._onDrop();w(r,"mouseup",n._disableDelayedDrag),w(r,"touchend",n._disableDelayedDrag),w(r,"touchcancel",n._disableDelayedDrag),w(r,"mousemove",n._delayedDragTouchMoveHandler),w(r,"touchmove",n._delayedDragTouchMoveHandler),l.supportPointer&&w(r,"pointermove",n._delayedDragTouchMoveHandler),n._dragStartTimer=setTimeout(o,l.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){oe&&Je(oe),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;k(e,"mouseup",this._disableDelayedDrag),k(e,"touchend",this._disableDelayedDrag),k(e,"touchcancel",this._disableDelayedDrag),k(e,"mousemove",this._delayedDragTouchMoveHandler),k(e,"touchmove",this._delayedDragTouchMoveHandler),k(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?w(document,"pointermove",this._onTouchMove):w(document,t?"touchmove":"mousemove",this._onTouchMove):(w(oe,"dragend",this),w(le,"dragstart",this._onDragStart));try{document.selection?lt((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(a){}},_dragStarted:function(e,t){if(De=!1,le&&oe){te("dragStarted",this,{evt:t}),this.nativeDraggable&&w(document,"dragover",ze);var a=this.options;!e&&B(oe,a.dragClass,!1),B(oe,a.ghostClass,!0),We.active=this,e&&this._appendGhost(),ae({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ye){this._lastX=ye.clientX,this._lastY=ye.clientY,Ke();var e=document.elementFromPoint(ye.clientX,ye.clientY),t=e;while(e&&e.shadowRoot){if(e=e.shadowRoot.elementFromPoint(ye.clientX,ye.clientY),e===t)break;t=e}if(oe.parentNode[X]._isOutsideThisEl(e),t)do{if(t[X]){var a=void 0;if(a=t[X]._onDragOver({clientX:ye.clientX,clientY:ye.clientY,target:e,rootEl:t}),a&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Xe()}},_onTouchMove:function(e){if(ge){var t=this.options,a=t.fallbackTolerance,o=t.fallbackOffset,n=e.touches?e.touches[0]:e,i=ie&&_(ie,!0),l=ie&&i&&i.a,r=ie&&i&&i.d,s=Me&&Be&&M(Be),d=(n.clientX-ge.clientX+o.x)/(l||1)+(s?s[0]-Oe[0]:0)/(l||1),c=(n.clientY-ge.clientY+o.y)/(r||1)+(s?s[1]-Oe[1]:0)/(r||1);if(!We.active&&!De){if(a&&Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))<a)return;this._onDragStart(e,!0)}if(ie){i?(i.e+=d-(be||0),i.f+=c-(we||0)):i={a:1,b:0,c:0,d:1,e:d,f:c};var u="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");D(ie,"webkitTransform",u),D(ie,"mozTransform",u),D(ie,"msTransform",u),D(ie,"transform",u),be=d,we=c,ye=n}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!ie){var e=this.options.fallbackOnBody?document.body:le,t=V(oe,!0,Me,!0,e),a=this.options;if(Me){Be=e;while("static"===D(Be,"position")&&"none"===D(Be,"transform")&&Be!==document)Be=Be.parentNode;Be!==document.body&&Be!==document.documentElement?(Be===document&&(Be=A()),t.top+=Be.scrollTop,t.left+=Be.scrollLeft):Be=A(),Oe=M(Be)}ie=oe.cloneNode(!0),B(ie,a.ghostClass,!1),B(ie,a.fallbackClass,!0),B(ie,a.dragClass,!0),D(ie,"transition",""),D(ie,"transform",""),D(ie,"box-sizing","border-box"),D(ie,"margin",0),D(ie,"top",t.top),D(ie,"left",t.left),D(ie,"width",t.width),D(ie,"height",t.height),D(ie,"opacity","0.8"),D(ie,"position",Me?"absolute":"fixed"),D(ie,"zIndex","100000"),D(ie,"pointerEvents","none"),We.ghost=ie,e.appendChild(ie),D(ie,"transform-origin",ke/parseInt(ie.style.width)*100+"% "+xe/parseInt(ie.style.height)*100+"%")}},_onDragStart:function(e,t){var a=this,o=e.dataTransfer,n=a.options;te("dragStart",this,{evt:e}),We.eventCanceled?this._onDrop():(te("setupClone",this),We.eventCanceled||(de=K(oe),de.draggable=!1,de.style["will-change"]="",this._hideClone(),B(de,this.options.chosenClass,!1),We.clone=de),a.cloneId=lt((function(){te("clone",a),We.eventCanceled||(a.options.removeCloneOnHide||le.insertBefore(de,oe),a._hideClone(),ae({sortable:a,name:"clone"}))})),!t&&B(oe,n.dragClass,!0),t?(_e=!0,a._loopId=setInterval(a._emulateDragOver,50)):(k(document,"mouseup",a._onDrop),k(document,"touchend",a._onDrop),k(document,"touchcancel",a._onDrop),o&&(o.effectAllowed="move",n.setData&&n.setData.call(a,o,oe)),w(document,"drop",a),D(oe,"transform","translateZ(0)")),De=!0,a._dragStartId=lt(a._dragStarted.bind(a,t,e)),w(document,"selectstart",a),Se=!0,v&&D(document.body,"user-select","none"))},_onDragOver:function(e){var t,a,o,n,l=this.el,r=e.target,s=this.options,d=s.group,c=We.active,u=fe===d,p=s.sort,h=ve||c,m=this,f=!1;if(!Ie){if(void 0!==e.preventDefault&&e.cancelable&&e.preventDefault(),r=E(r,s.draggable,l,!0),$("dragOver"),We.eventCanceled)return f;if(oe.contains(e.target)||r.animated&&r.animatingX&&r.animatingY||m._ignoreWhileAnimating===r)return U(!1);if(_e=!1,c&&!s.disabled&&(u?p||(o=ne!==le):ve===this||(this.lastPutMode=fe.checkPull(this,c,oe,e))&&d.checkPut(this,c,oe,e))){if(n="vertical"===this._getDirection(e,r),t=V(oe),$("dragOverValid"),We.eventCanceled)return f;if(o)return ne=le,R(),this._hideClone(),$("revert"),We.eventCanceled||(re?le.insertBefore(oe,re):le.appendChild(oe)),U(!0);var v=L(l,s.draggable);if(!v||tt(e,n,this)&&!v.animated){if(v===oe)return U(!1);if(v&&l===e.target&&(r=v),r&&(a=V(r)),!1!==Qe(le,l,oe,t,r,a,e,!!r))return R(),l.appendChild(oe),ne=l,F(),U(!0)}else if(v&&et(e,n,this)){var g=I(l,0,s,!0);if(g===oe)return U(!1);if(r=g,a=V(r),!1!==Qe(le,l,oe,t,r,a,e,!1))return R(),l.insertBefore(oe,g),ne=l,F(),U(!0)}else if(r.parentNode===l){a=V(r);var y,b,w=0,k=oe.parentNode!==l,x=!qe(oe.animated&&oe.toRect||t,r.animated&&r.toRect||a,n),S=n?"top":"left",N=O(r,"top","top")||O(oe,"top","top"),C=N?N.scrollTop:void 0;if(Ee!==r&&(y=a[S],Ae=!1,Ve=!x&&s.invertSwap||k),w=at(e,r,a,n,x?1:s.swapThreshold,null==s.invertedSwapThreshold?s.swapThreshold:s.invertedSwapThreshold,Ve,Ee===r),0!==w){var _=P(oe);do{_-=w,b=ne.children[_]}while(b&&("none"===D(b,"display")||b===ie))}if(0===w||b===r)return U(!1);Ee=r,Ne=w;var T=r.nextElementSibling,A=!1;A=1===w;var M=Qe(le,l,oe,t,r,a,e,A);if(!1!==M)return 1!==M&&-1!==M||(A=1===M),Ie=!0,setTimeout(Ze,30),R(),A&&!T?l.appendChild(oe):r.parentNode.insertBefore(oe,A?T:r),N&&H(N,0,C-N.scrollTop),ne=oe.parentNode,void 0===y||Ve||(Ce=Math.abs(y-V(r)[S])),F(),U(!0)}if(l.contains(oe))return U(!1)}return!1}function $(s,d){te(s,m,i({evt:e,isOwner:u,axis:n?"vertical":"horizontal",revert:o,dragRect:t,targetRect:a,canSort:p,fromSortable:h,target:r,completed:U,onMove:function(a,o){return Qe(le,l,oe,t,a,V(a),e,o)},changed:F},d))}function R(){$("dragOverAnimationCapture"),m.captureAnimationState(),m!==h&&h.captureAnimationState()}function U(t){return $("dragOverCompleted",{insertion:t}),t&&(u?c._hideClone():c._showClone(m),m!==h&&(B(oe,ve?ve.options.ghostClass:c.options.ghostClass,!1),B(oe,s.ghostClass,!0)),ve!==m&&m!==We.active?ve=m:m===We.active&&ve&&(ve=null),h===m&&(m._ignoreWhileAnimating=r),m.animateAll((function(){$("dragOverAnimationComplete"),m._ignoreWhileAnimating=null})),m!==h&&(h.animateAll(),h._ignoreWhileAnimating=null)),(r===oe&&!oe.animated||r===l&&!r.animated)&&(Ee=null),s.dragoverBubble||e.rootEl||r===document||(oe.parentNode[X]._isOutsideThisEl(e.target),!t&&Ye(e)),!s.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),f=!0}function F(){pe=P(oe),me=P(oe,s.draggable),ae({sortable:m,name:"change",toEl:l,newIndex:pe,newDraggableIndex:me,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){k(document,"mousemove",this._onTouchMove),k(document,"touchmove",this._onTouchMove),k(document,"pointermove",this._onTouchMove),k(document,"dragover",Ye),k(document,"mousemove",Ye),k(document,"touchmove",Ye)},_offUpEvents:function(){var e=this.el.ownerDocument;k(e,"mouseup",this._onDrop),k(e,"touchend",this._onDrop),k(e,"pointerup",this._onDrop),k(e,"touchcancel",this._onDrop),k(document,"selectstart",this)},_onDrop:function(e){var t=this.el,a=this.options;pe=P(oe),me=P(oe,a.draggable),te("drop",this,{evt:e}),ne=oe&&oe.parentNode,pe=P(oe),me=P(oe,a.draggable),We.eventCanceled||(De=!1,Ve=!1,Ae=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),rt(this.cloneId),rt(this._dragStartId),this.nativeDraggable&&(k(document,"drop",this),k(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),v&&D(document.body,"user-select",""),D(oe,"transform",""),e&&(Se&&(e.cancelable&&e.preventDefault(),!a.dropBubble&&e.stopPropagation()),ie&&ie.parentNode&&ie.parentNode.removeChild(ie),(le===ne||ve&&"clone"!==ve.lastPutMode)&&de&&de.parentNode&&de.parentNode.removeChild(de),oe&&(this.nativeDraggable&&k(oe,"dragend",this),Je(oe),oe.style["will-change"]="",Se&&!De&&B(oe,ve?ve.options.ghostClass:this.options.ghostClass,!1),B(oe,this.options.chosenClass,!1),ae({sortable:this,name:"unchoose",toEl:ne,newIndex:null,newDraggableIndex:null,originalEvent:e}),le!==ne?(pe>=0&&(ae({rootEl:ne,name:"add",toEl:ne,fromEl:le,originalEvent:e}),ae({sortable:this,name:"remove",toEl:ne,originalEvent:e}),ae({rootEl:ne,name:"sort",toEl:ne,fromEl:le,originalEvent:e}),ae({sortable:this,name:"sort",toEl:ne,originalEvent:e})),ve&&ve.save()):pe!==ue&&pe>=0&&(ae({sortable:this,name:"update",toEl:ne,originalEvent:e}),ae({sortable:this,name:"sort",toEl:ne,originalEvent:e})),We.active&&(null!=pe&&-1!==pe||(pe=ue,me=he),ae({sortable:this,name:"end",toEl:ne,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){te("nulling",this),le=oe=ne=ie=re=de=se=ce=ge=ye=Se=pe=me=ue=he=Ee=Ne=ve=fe=We.dragged=We.ghost=We.clone=We.active=null,Le.forEach((function(e){e.checked=!0})),Le.length=be=we=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":oe&&(this._onDragOver(e),Ge(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e,t=[],a=this.el.children,o=0,n=a.length,i=this.options;o<n;o++)e=a[o],E(e,i.draggable,this.el,!1)&&t.push(e.getAttribute(i.dataIdAttr)||nt(e));return t},sort:function(e,t){var a={},o=this.el;this.toArray().forEach((function(e,t){var n=o.children[t];E(n,this.options.draggable,o,!1)&&(a[e]=n)}),this),t&&this.captureAnimationState(),e.forEach((function(e){a[e]&&(o.removeChild(a[e]),o.appendChild(a[e]))})),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return E(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var a=this.options;if(void 0===t)return a[e];var o=J.modifyOption(this,e,t);a[e]="undefined"!==typeof o?o:t,"group"===e&&He(a)},destroy:function(){te("destroy",this);var e=this.el;e[X]=null,k(e,"mousedown",this._onTapStart),k(e,"touchstart",this._onTapStart),k(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(k(e,"dragover",this),k(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),(function(e){e.removeAttribute("draggable")})),this._onDrop(),this._disableDelayedDragEvents(),Te.splice(Te.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!ce){if(te("hideClone",this),We.eventCanceled)return;D(de,"display","none"),this.options.removeCloneOnHide&&de.parentNode&&de.parentNode.removeChild(de),ce=!0}},_showClone:function(e){if("clone"===e.lastPutMode){if(ce){if(te("showClone",this),We.eventCanceled)return;oe.parentNode!=le||this.options.group.revertClone?re?le.insertBefore(de,re):le.appendChild(de):le.insertBefore(de,oe),this.options.group.revertClone&&this.animate(oe,de),D(de,"display",""),ce=!1}}else this._hideClone()}},Pe&&w(document,"touchmove",(function(e){(We.active||De)&&e.cancelable&&e.preventDefault()})),We.utils={on:w,off:k,css:D,find:T,is:function(e,t){return!!E(e,t,e,!1)},extend:U,throttle:q,closest:E,toggleClass:B,clone:K,index:P,nextTick:lt,cancelNextTick:rt,detectDirection:Fe,getChild:I},We.get=function(e){return e[X]},We.mount=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];t[0].constructor===Array&&(t=t[0]),t.forEach((function(e){if(!e.prototype||!e.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(e));e.utils&&(We.utils=i(i({},We.utils),e.utils)),J.mount(e)}))},We.create=function(e,t){return new We(e,t)},We.version=u;var st,dt,ct,ut,pt,ht,mt=[],ft=!1;function vt(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===e.charAt(0)&&"function"===typeof this[e]&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?w(document,"dragover",this._handleAutoScroll):this.options.supportPointer?w(document,"pointermove",this._handleFallbackAutoScroll):t.touches?w(document,"touchmove",this._handleFallbackAutoScroll):w(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;this.options.dragOverBubble||t.rootEl||this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?k(document,"dragover",this._handleAutoScroll):(k(document,"pointermove",this._handleFallbackAutoScroll),k(document,"touchmove",this._handleFallbackAutoScroll),k(document,"mousemove",this._handleFallbackAutoScroll)),yt(),gt(),j()},nulling:function(){pt=dt=st=ft=ht=ct=ut=null,mt.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var a=this,o=(e.touches?e.touches[0]:e).clientX,n=(e.touches?e.touches[0]:e).clientY,i=document.elementFromPoint(o,n);if(pt=e,t||this.options.forceAutoScrollFallback||m||h||v){bt(e,this.options,i,t);var l=R(i,!0);!ft||ht&&o===ct&&n===ut||(ht&&yt(),ht=setInterval((function(){var i=R(document.elementFromPoint(o,n),!0);i!==l&&(l=i,gt()),bt(e,a.options,i,t)}),10),ct=o,ut=n)}else{if(!this.options.bubbleScroll||R(i,!0)===A())return void gt();bt(e,this.options,R(i,!1),!1)}}},s(e,{pluginName:"scroll",initializeByDefault:!0})}function gt(){mt.forEach((function(e){clearInterval(e.pid)})),mt=[]}function yt(){clearInterval(ht)}var bt=q((function(e,t,a,o){if(t.scroll){var n,i=(e.touches?e.touches[0]:e).clientX,l=(e.touches?e.touches[0]:e).clientY,r=t.scrollSensitivity,s=t.scrollSpeed,d=A(),c=!1;dt!==a&&(dt=a,gt(),st=t.scroll,n=t.scrollFn,!0===st&&(st=R(a,!0)));var u=0,p=st;do{var h=p,m=V(h),f=m.top,v=m.bottom,g=m.left,y=m.right,b=m.width,w=m.height,k=void 0,x=void 0,S=h.scrollWidth,E=h.scrollHeight,N=D(h),C=h.scrollLeft,B=h.scrollTop;h===d?(k=b<S&&("auto"===N.overflowX||"scroll"===N.overflowX||"visible"===N.overflowX),x=w<E&&("auto"===N.overflowY||"scroll"===N.overflowY||"visible"===N.overflowY)):(k=b<S&&("auto"===N.overflowX||"scroll"===N.overflowX),x=w<E&&("auto"===N.overflowY||"scroll"===N.overflowY));var _=k&&(Math.abs(y-i)<=r&&C+b<S)-(Math.abs(g-i)<=r&&!!C),T=x&&(Math.abs(v-l)<=r&&B+w<E)-(Math.abs(f-l)<=r&&!!B);if(!mt[u])for(var O=0;O<=u;O++)mt[O]||(mt[O]={});mt[u].vx==_&&mt[u].vy==T&&mt[u].el===h||(mt[u].el=h,mt[u].vx=_,mt[u].vy=T,clearInterval(mt[u].pid),0==_&&0==T||(c=!0,mt[u].pid=setInterval(function(){o&&0===this.layer&&We.active._onTouchMove(pt);var t=mt[this.layer].vy?mt[this.layer].vy*s:0,a=mt[this.layer].vx?mt[this.layer].vx*s:0;"function"===typeof n&&"continue"!==n.call(We.dragged.parentNode[X],a,t,e,pt,mt[this.layer].el)||H(mt[this.layer].el,a,t)}.bind({layer:u}),24))),u++}while(t.bubbleScroll&&p!==d&&(p=R(p,!1)));ft=c}}),30),wt=function(e){var t=e.originalEvent,a=e.putSortable,o=e.dragEl,n=e.activeSortable,i=e.dispatchSortableEvent,l=e.hideGhostForTarget,r=e.unhideGhostForTarget;if(t){var s=a||n;l();var d=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,c=document.elementFromPoint(d.clientX,d.clientY);r(),s&&!s.el.contains(c)&&(i("spill"),this.onSpill({dragEl:o,putSortable:a}))}};function kt(){}function xt(){}function St(){return"undefined"!==typeof window?window.console:a.g.console}kt.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,a=e.putSortable;this.sortable.captureAnimationState(),a&&a.captureAnimationState();var o=I(this.sortable.el,this.startIndex,this.options);o?this.sortable.el.insertBefore(t,o):this.sortable.el.appendChild(t),this.sortable.animateAll(),a&&a.animateAll()},drop:wt},s(kt,{pluginName:"revertOnSpill"}),xt.prototype={onSpill:function(e){var t=e.dragEl,a=e.putSortable,o=a||this.sortable;o.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),o.animateAll()},drop:wt},s(xt,{pluginName:"removeOnSpill"}),We.mount(new vt),We.mount(xt,kt);const Et=St();function Nt(e){const t=Object.create(null);return function(a){const o=t[a];return o||(t[a]=e(a))}}const Ct=/-(\w)/g,Bt=Nt((e=>e.replace(Ct,((e,t)=>t?t.toUpperCase():""))));function Dt(e){null!==e.parentElement&&e.parentElement.removeChild(e)}function _t(e,t,a){const o=0===a?e.children[0]:e.children[a-1].nextSibling;e.insertBefore(t,o)}function Tt(e,t){return Object.values(e).indexOf(t)}function At(e,t,a,o){if(!e)return[];const n=Object.values(e),i=t.length-o,l=[...t].map(((e,t)=>t>=i?n.length:n.indexOf(e)));return l}function Vt(e,t){this.$nextTick((()=>this.$emit(e.toLowerCase(),t)))}function Ot(e){return t=>{null!==this.realList&&this["onDrag"+e](t),Vt.call(this,e,t)}}function It(e){return["transition-group","TransitionGroup"].includes(e)}function Lt(e){if(!e||1!==e.length)return!1;const[{type:t}]=e;return!!t&&It(t.name)}function Pt(e,t){return t?{...t.props,...t.attrs}:e}const Mt=["Start","Add","Remove","Update","End"],$t=["Choose","Unchoose","Sort","Filter","Clone"],Rt=["Move",...Mt,...$t].map((e=>"on"+e));let Ut=null;const Ft={options:Object,list:{type:Array,required:!1,default:null},noTransitionOnDrag:{type:Boolean,default:!1},clone:{type:Function,default:e=>e},tag:{type:String,default:"div"},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null},component:{type:String,default:null},modelValue:{type:Array,required:!1,default:null}},qt=(0,o.defineComponent)({name:"VueDraggableNext",inheritAttrs:!1,emits:["update:modelValue","move","change",...Mt.map((e=>e.toLowerCase())),...$t.map((e=>e.toLowerCase()))],props:Ft,data(){return{transitionMode:!1,noneFunctionalComponentMode:!1,headerOffset:0,footerOffset:0,_sortable:{},visibleIndexes:[],context:{}}},render(){const e=this.$slots.default?this.$slots.default():null,t=Pt(this.$attrs,this.componentData);return e?(this.transitionMode=Lt(e),(0,o.h)(this.getTag(),t,e)):(0,o.h)(this.getTag(),t,[])},created(){null!==this.list&&null!==this.modelValue&&Et.error("list props are mutually exclusive! Please set one.")},mounted(){const e={};Mt.forEach((t=>{e["on"+t]=Ot.call(this,t)})),$t.forEach((t=>{e["on"+t]=Vt.bind(this,t)}));const t=Object.keys(this.$attrs).reduce(((e,t)=>(e[Bt(t)]=this.$attrs[t],e)),{}),a=Object.assign({},t,e,{onMove:(e,t)=>this.onDragMove(e,t)});!("draggable"in a)&&(a.draggable=">*");const o=1===this.$el.nodeType?this.$el:this.$el.parentElement;this._sortable=new We(o,a),o.__draggable_component__=this,this.computeIndexes()},beforeUnmount(){try{void 0!==this._sortable&&this._sortable.destroy()}catch(e){}},computed:{realList(){return this.list?this.list:this.modelValue}},watch:{$attrs:{handler(e){this.updateOptions(e)},deep:!0},realList(){this.computeIndexes()}},methods:{getTag(){return this.component?(0,o.resolveComponent)(this.component):this.tag},updateOptions(e){for(var t in e){const a=Bt(t);-1===Rt.indexOf(a)&&this._sortable.option(a,e[t])}},getChildrenNodes(){return this.$el.children},computeIndexes(){this.$nextTick((()=>{this.visibleIndexes=At(this.getChildrenNodes(),this.$el.children,this.transitionMode,this.footerOffset)}))},getUnderlyingVm(e){const t=Tt(this.getChildrenNodes()||[],e);if(-1===t)return null;const a=this.realList[t];return{index:t,element:a}},emitChanges(e){this.$nextTick((()=>{this.$emit("change",e)}))},alterList(e){if(this.list)return void e(this.list);const t=[...this.modelValue];e(t),this.$emit("update:modelValue",t)},spliceList(){const e=e=>e.splice(...arguments);this.alterList(e)},updatePosition(e,t){const a=a=>a.splice(t,0,a.splice(e,1)[0]);this.alterList(a)},getVmIndex(e){const t=this.visibleIndexes,a=t.length;return e>a-1?a:t[e]},getComponent(){return this.$slots.default?this.$slots.default()[0].componentInstance:null},resetTransitionData(e){if(!this.noTransitionOnDrag||!this.transitionMode)return;var t=this.getChildrenNodes();t[e].data=null;const a=this.getComponent();a.children=[],a.kept=void 0},onDragStart(e){this.computeIndexes(),this.context=this.getUnderlyingVm(e.item),this.context&&(e.item._underlying_vm_=this.clone(this.context.element),Ut=e.item)},onDragAdd(e){const t=e.item._underlying_vm_;if(void 0===t)return;Dt(e.item);const a=this.getVmIndex(e.newIndex);this.spliceList(a,0,t),this.computeIndexes();const o={element:t,newIndex:a};this.emitChanges({added:o})},onDragRemove(e){if(_t(this.$el,e.item,e.oldIndex),"clone"===e.pullMode)return void Dt(e.clone);if(!this.context)return;const t=this.context.index;this.spliceList(t,1);const a={element:this.context.element,oldIndex:t};this.resetTransitionData(t),this.emitChanges({removed:a})},onDragUpdate(e){Dt(e.item),_t(e.from,e.item,e.oldIndex);const t=this.context.index,a=this.getVmIndex(e.newIndex);this.updatePosition(t,a);const o={element:this.context.element,oldIndex:t,newIndex:a};this.emitChanges({moved:o})},updateProperty(e,t){e.hasOwnProperty(t)&&(e[t]+=this.headerOffset)},onDragMove(e,t){const a=this.move;if(!a||!this.realList)return!0;const o=this.getRelatedContextFromMoveEvent(e),n=this.context,i=this.computeFutureIndex(o,e);Object.assign(n,{futureIndex:i});const l=Object.assign({},e,{relatedContext:o,draggedContext:n});return a(l,t)},onDragEnd(){this.computeIndexes(),Ut=null},getTrargetedComponent(e){return e.__draggable_component__},getRelatedContextFromMoveEvent({to:e,related:t}){const a=this.getTrargetedComponent(e);if(!a)return{component:a};const o=a.realList,n={list:o,component:a};if(e!==t&&o&&a.getUnderlyingVm){const e=a.getUnderlyingVm(t);if(e)return Object.assign(e,n)}return n},computeFutureIndex(e,t){const a=[...t.to.children].filter((e=>"none"!==e.style["display"]));if(0===a.length)return 0;const o=a.indexOf(t.related),n=e.component.getVmIndex(o),i=-1!==a.indexOf(Ut);return i||!t.willInsertAfter?n:n+1}}})},35567:function(e,t,a){var o=a(68454);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("4ba94651",o,!0,{sourceMap:!1,shadowMode:!1})},18071:function(e,t,a){var o=a(40439);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("a1c3e378",o,!0,{sourceMap:!1,shadowMode:!1})},88405:function(e,t,a){var o=a(15829);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("0b86ac08",o,!0,{sourceMap:!1,shadowMode:!1})},11761:function(e,t,a){var o=a(46545);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("84f74820",o,!0,{sourceMap:!1,shadowMode:!1})},53788:function(e,t,a){var o=a(85692);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("2f431e88",o,!0,{sourceMap:!1,shadowMode:!1})},93071:function(e,t,a){var o=a(39823);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("3af37976",o,!0,{sourceMap:!1,shadowMode:!1})},48823:function(e,t,a){var o=a(17847);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("727495c9",o,!0,{sourceMap:!1,shadowMode:!1})},99738:function(e,t,a){var o=a(49530);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("193727f5",o,!0,{sourceMap:!1,shadowMode:!1})},88430:function(e,t,a){var o=a(55182);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var n=a(74825).A;n("24bba31a",o,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.514.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.514.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.514.js.map new file mode 100644 index 00000000..17032f96 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.514.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.514.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/InputOrDisplay.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/InputOrDisplay.vue?cdda","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/LabelValue.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/LabelValue.vue?0a72","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/KeyValue.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/KeyValue.vue?e790","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Labels.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue?151a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue?ceb7","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Labels.vue?1d9b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/MatchExpressions.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/MatchExpressions.vue?d0ef","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/NodeScheduling.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/NodeAffinity.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/NodeAffinity.vue?6ac7","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/NodeScheduling.vue?f524","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Password.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Password.vue?9946","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/PodAffinity.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/PodAffinity.vue?c836","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceTabs/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Conditions.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Conditions.vue?8f43","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PaginatedResourceTable.vue?6771","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PaginatedResourceTable.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PaginatedResourceTable.vue?9eda","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/RelatedResources.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/RelatedResources.vue?df11","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceTabs/index.vue?3fd5","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/UnitInput.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/UnitInput.vue?cb25","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/PodAffinity.vue?7ead","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/InputOrDisplay.vue?a955","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/LabelValue.vue?dfe1","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/KeyValue.vue?4afe","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Labels.vue?edd4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/MatchExpressions.vue?7e28","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Password.vue?a61e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/UnitInput.vue?0347","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue?1f3b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/secret.js","webpack://harvester-1.5.0-dev/../../node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/PodAffinity.vue?2047","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/InputOrDisplay.vue?3741","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/LabelValue.vue?03f4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/KeyValue.vue?483d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Labels.vue?1360","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/MatchExpressions.vue?f698","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Password.vue?90ad","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/UnitInput.vue?ac4c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue?fb75"],"sourcesContent":["<script>\nimport { _VIEW } from '@shell/config/query-params';\n\nexport default {\n name: 'InputOrDisplay',\n props: {\n name: {\n type: String,\n required: true\n },\n value: {\n type: [Number, String, Array, undefined],\n default: ''\n },\n mode: {\n type: String,\n default: 'edit'\n }\n },\n computed: {\n isView() {\n return this.mode === _VIEW;\n },\n\n displayValue() {\n if (Array.isArray(this.value) && this.value.length === 0) {\n return '';\n } else {\n return this.value;\n }\n }\n }\n};\n</script>\n\n<template>\n <div\n v-if=\"isView\"\n class=\"label\"\n >\n <div class=\"text-label\">\n <slot name=\"name\">\n {{ name }}\n </slot>\n </div>\n <div class=\"value\">\n <slot name=\"value\">\n {{ displayValue }}\n </slot>\n </div>\n </div>\n <slot v-else />\n</template>\n\n<style lang=\"scss\" scoped>\n.label {\n display: flex;\n flex-direction: column;\n\n .value {\n font-size: 14px;\n line-height: $input-line-height;\n }\n}\n</style>\n","import { render } from \"./InputOrDisplay.vue?vue&type=template&id=a3d99010&scoped=true\"\nimport script from \"./InputOrDisplay.vue?vue&type=script&lang=js\"\nexport * from \"./InputOrDisplay.vue?vue&type=script&lang=js\"\n\nimport \"./InputOrDisplay.vue?vue&type=style&index=0&id=a3d99010&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a3d99010\"]])\n\nexport default __exports__","<script>\nexport default {\n props: {\n name: {\n type: String,\n required: true\n },\n value: {\n type: [Number, String, undefined],\n default: ''\n }\n }\n};\n</script>\n\n<template>\n <div class=\"label\">\n <div class=\"text-label\">\n <slot name=\"name\">\n {{ name }}\n </slot>\n </div>\n\n <div class=\"value\">\n <slot name=\"value\">\n {{ value }}\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.label {\n display: flex;\n flex-direction: column;\n\n .value {\n font-size: 14px;\n line-height: $input-line-height;\n }\n}\n</style>\n","import { render } from \"./LabelValue.vue?vue&type=template&id=357627fa&scoped=true\"\nimport script from \"./LabelValue.vue?vue&type=script&lang=js\"\nexport * from \"./LabelValue.vue?vue&type=script&lang=js\"\n\nimport \"./LabelValue.vue?vue&type=style&index=0&id=357627fa&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-357627fa\"]])\n\nexport default __exports__","<script>\nimport debounce from 'lodash/debounce';\nimport { typeOf } from '@shell/utils/sort';\nimport { removeAt, removeObject } from '@shell/utils/array';\nimport { base64Encode, base64Decode, binarySize } from '@shell/utils/crypto';\nimport { downloadFile } from '@shell/utils/download';\nimport { TextAreaAutoGrow } from '@components/Form/TextArea';\nimport { get } from '@shell/utils/object';\nimport Select from '@shell/components/form/Select';\nimport FileSelector from '@shell/components/form/FileSelector';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { asciiLike } from '@shell/utils/string';\nimport CodeMirror from '@shell/components/CodeMirror';\nimport isEqual from 'lodash/isEqual';\n\nexport default {\n name: 'KeyValue',\n\n emits: ['focusKey', 'update:value'],\n\n components: {\n CodeMirror,\n Select,\n TextAreaAutoGrow,\n FileSelector\n },\n props: {\n value: {\n type: [Array, Object],\n default: null,\n },\n defaultValue: {\n type: [Array, Object],\n default: null,\n },\n // If the user supplies this array, then it indicates which keys should be shown as binary\n binaryValueKeys: {\n type: [Array, Object],\n default: null\n },\n mode: {\n type: String,\n default: _EDIT,\n },\n asMap: {\n type: Boolean,\n default: true,\n },\n initialEmptyRow: {\n type: Boolean,\n default: false,\n },\n title: {\n type: String,\n default: ''\n },\n\n titleProtip: {\n type: String,\n default: ''\n },\n\n protip: {\n type: [String, Boolean],\n default: '',\n },\n // For asMap=false, the name of the field that goes into the row objects\n keyName: {\n type: String,\n default: 'key',\n },\n keyLabel: {\n type: String,\n default: '',\n },\n keyEditable: {\n type: Boolean,\n default: true,\n },\n // Offer a set of suggestions for the keys as a Select instead of Input\n keyOptions: {\n type: Array,\n default: null,\n },\n // If false and keyOptions are provided, the key MUST be one of the keyOptions.\n keyTaggable: {\n type: Boolean,\n default: true,\n },\n keyOptionUnique: {\n type: Boolean,\n default: false,\n },\n keyPlaceholder: {\n type: String,\n default: '',\n },\n /**\n * List of keys which needs to be disabled and hidden based on toggler\n */\n protectedKeys: {\n type: Array,\n default: () => [],\n },\n /**\n * Conditionally display protected keys, if any\n */\n toggleFilter: {\n type: Boolean,\n default: false,\n },\n separatorLabel: {\n type: String,\n default: '',\n },\n // For asMap=false, the name of the field that goes into the row objects\n valueName: {\n type: String,\n default: 'value',\n },\n valueLabel: {\n type: String,\n default: '',\n },\n valuePlaceholder: {\n type: String,\n default: '',\n },\n valueCanBeEmpty: {\n type: Boolean,\n default: false,\n },\n displayValuesAsBinary: {\n type: Boolean,\n default: false,\n },\n valueMarkdownMultiline: {\n type: Boolean,\n default: false,\n },\n valueMultiline: {\n type: Boolean,\n default: true,\n },\n valueTrim: {\n type: Boolean,\n default: true,\n },\n handleBase64: {\n type: Boolean,\n default: false,\n },\n valueConcealed: {\n type: Boolean,\n default: false,\n },\n // On initial reading of the existing value, this function is called\n // and can return false to say that a value is not supported for editing.\n // This is mainly useful for resources like envVars that have a valueFrom\n // you want to preserve but not support editing\n supported: {\n type: Function,\n default: (v) => true,\n },\n // For asMap=false, preserve (copy) these keys from the original value into the emitted value.\n // Also useful for valueFrom as above.\n preserveKeys: {\n type: Array,\n default: null,\n },\n extraColumns: {\n type: Array,\n default: () => [],\n },\n defaultAddData: {\n type: Object,\n default: () => {},\n },\n addLabel: {\n type: String,\n default: '',\n },\n addIcon: {\n type: String,\n default: 'icon-plus',\n },\n addAllowed: {\n type: Boolean,\n default: true,\n },\n readIcon: {\n type: String,\n default: 'icon-upload',\n },\n readAllowed: {\n type: Boolean,\n default: true,\n },\n readAccept: {\n type: String,\n default: '*',\n },\n readMultiple: {\n type: Boolean,\n default: false,\n },\n removeLabel: {\n type: String,\n default: '',\n },\n removeIcon: {\n type: String,\n default: 'icon-minus',\n },\n removeAllowed: {\n type: Boolean,\n default: true,\n },\n fileModifier: {\n type: Function,\n default: (name, value) => ({ name, value })\n },\n parserSeparators: {\n type: Array,\n default: () => [':', '='],\n },\n loading: {\n default: false,\n type: Boolean\n },\n parseLinesFromFile: {\n default: false,\n type: Boolean\n },\n parseValueFromFile: {\n default: false,\n type: Boolean\n },\n disabled: {\n default: false,\n type: Boolean\n },\n },\n data() {\n const rows = this.getRows(this.value);\n\n return {\n rows,\n codeMirrorFocus: {},\n lastUpdated: null\n };\n },\n computed: {\n _protip() {\n return this.protip || this.t('keyValue.protip', null, true);\n },\n _keyLabel() {\n return this.keyLabel || this.t('generic.key');\n },\n _keyPlaceholder() {\n return this.keyPlaceholder || this.t('keyValue.keyPlaceholder');\n },\n _valueLabel() {\n return this.valueLabel || this.t('generic.value');\n },\n _valuePlaceholder() {\n return this.valuePlaceholder || this.t('keyValue.valuePlaceholder');\n },\n _addLabel() {\n return this.addLabel || this.t('generic.add');\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n containerStyle() {\n const gap = this.canRemove ? ' 50px' : '';\n const size = 2 + this.extraColumns.length;\n\n return `grid-template-columns: repeat(${ size }, 1fr)${ gap };`;\n },\n usedKeyOptions() {\n return this.rows.map((row) => row[this.keyName]);\n },\n filteredKeyOptions() {\n if (this.keyOptionUnique) {\n return this.keyOptions\n .filter((option) => !this.usedKeyOptions.includes(option.value));\n }\n\n return this.keyOptions;\n },\n /**\n * Prevent removal if expressly not allowed and not in view mode\n */\n canRemove() {\n return !this.isView && this.removeAllowed;\n },\n /**\n * Filter rows based on toggler, keeping to still emit all the values\n */\n filteredRows() {\n return this.rows.filter((row) => !(this.isProtected(row.key) && !this.toggleFilter));\n }\n },\n created() {\n this.queueUpdate = debounce(this.update, 500);\n },\n watch: {\n /**\n * KV works with v-model:value=value\n * value is transformed into this.rows (base64 decode, mark supported etc)\n * on input, this.update constructs a new value from this.rows and emits\n * if the parent component changes value, KV needs to re-compute this.rows\n * If the value changes because the user has edited it using KV, then KV should NOT re-compute rows\n * the value watcher will compare the last value KV emitted with the new value KV detects and re-compute rows if they don't match\n */\n value: {\n deep: true,\n handler(neu, old) {\n this.valuePropChanged(neu, old);\n }\n }\n },\n methods: {\n valuePropChanged(neu) {\n if (!isEqual(neu, this.lastUpdated)) {\n this.rows = this.getRows(neu);\n }\n },\n\n isProtected(key) {\n return this.protectedKeys && this.protectedKeys.includes(key);\n },\n\n getRows(value) {\n const rows = [];\n\n if ( this.asMap ) {\n const input = value || {};\n\n Object.keys(input).forEach((key) => {\n let value = input[key];\n const decodedValue = base64Decode(input[key]);\n const asciiValue = asciiLike(decodedValue);\n\n if ( this.handleBase64 && asciiValue) {\n value = base64Decode(value);\n }\n\n rows.push({\n key,\n value,\n binary: this.displayValuesAsBinary || (this.handleBase64 && !asciiValue),\n canEncode: this.handleBase64 && asciiValue,\n supported: true,\n });\n });\n } else {\n const input = value || [];\n\n for ( const row of input ) {\n let value = row[this.valueName] || '';\n\n const decodedValue = base64Decode(row[this.valueName]);\n const asciiValue = asciiLike(decodedValue);\n\n if ( this.handleBase64 && asciiValue) {\n value = base64Decode(value);\n }\n const entry = {\n [this.keyName]: row[this.keyName] || '',\n [this.valueName]: value,\n binary: this.displayValuesAsBinary || (this.handleBase64 && !asciiValue),\n canEncode: this.handleBase64 && asciiValue,\n supported: this.supported(row),\n };\n\n this.preserveKeys?.map((k) => {\n if ( typeof row[k] !== 'undefined' ) {\n entry[k] = row[k];\n }\n });\n rows.push(entry);\n }\n }\n if ( rows && !rows.length && this.initialEmptyRow ) {\n rows.push({\n [this.keyName]: '',\n [this.valueName]: '',\n binary: false,\n canEncode: this.handleBase64,\n supported: true\n });\n }\n\n return rows;\n },\n\n add(key = '', value = '') {\n const obj = {\n ...this.defaultAddData,\n [this.keyName]: key,\n [this.valueName]: value,\n };\n\n obj.binary = false;\n obj.canEncode = this.handleBase64;\n obj.supported = true;\n this.rows.push(obj);\n this.queueUpdate();\n this.$nextTick(() => {\n if (this.$refs.key) {\n const keys = this.$refs.key;\n\n const lastKey = keys[keys.length - 1];\n\n lastKey.focus();\n } else {\n this.$emit('focusKey');\n }\n });\n },\n remove(idx) {\n removeAt(this.rows, idx);\n this.queueUpdate();\n },\n removeEmptyRows() {\n const cleaned = this.rows.filter((row) => {\n return (row.value.length || row.key.length);\n });\n\n this['rows'] = cleaned;\n },\n onFileSelected(file) {\n const { name, value } = this.fileModifier(file.name, file.value);\n\n if (!this.parseLinesFromFile) {\n this.add(name, value, this.displayValuesAsBinary);\n } else {\n const lines = value.split('\\n');\n\n lines.forEach((line) => {\n // Ignore empty lines\n if (line.length) {\n const [key, value] = line.split('=');\n\n this.add(key, value);\n }\n });\n\n if (lines.length > 0) {\n this.removeEmptyRows();\n }\n }\n },\n download(idx, ev) {\n const row = this.rows[idx];\n const name = row[this.keyName];\n const value = row[this.valueName];\n\n downloadFile(name, value, 'application/octet-stream');\n },\n update() {\n let out;\n\n if ( this.asMap ) {\n out = {};\n const keyName = this.keyName;\n const valueName = this.valueName;\n\n for ( const row of this.rows ) {\n let value = (row[valueName] || '');\n const key = (row[keyName] || '').trim();\n\n if (value && typeOf(value) === 'object') {\n out[key] = JSON.parse(JSON.stringify(value));\n } else {\n value = value || '';\n if (this.valueTrim && asciiLike(value)) {\n value = value.trim();\n }\n if (row.canEncode) {\n value = base64Encode(value);\n }\n if ( key && (value || this.valueCanBeEmpty) ) {\n out[key] = value;\n }\n }\n }\n } else {\n const preserveKeys = this.preserveKeys || [];\n\n removeObject(preserveKeys, this.keyName);\n removeObject(preserveKeys, this.valueName);\n out = this.rows.map((row) => {\n let value = row[this.valueName];\n\n if (row.canEncode) {\n value = base64Encode(value);\n }\n const entry = {\n [this.keyName]: row[this.keyName],\n [this.valueName]: value,\n };\n\n for ( const k of preserveKeys ) {\n if ( typeof row[k] !== 'undefined' ) {\n entry[k] = row[k];\n }\n }\n\n return entry;\n });\n }\n this.lastUpdated = out;\n\n this.$emit('update:value', out);\n },\n onPaste(index, event) {\n const text = event.clipboardData.getData('text/plain');\n const lines = text.split('\\n');\n const splits = lines.map((line) => {\n const splitter = this.parserSeparators.find((sep) => line.includes(sep));\n\n return splitter ? line.split(splitter) : '';\n }).filter((split) => split && split.length > 0);\n\n if (splits.length === 0 || (splits.length === 1 && splits[0].length < 2)) {\n return;\n }\n event.preventDefault();\n const keyValues = splits.map((split) => ({\n [this.keyName]: (split[0] || '').trim(),\n [this.valueName]: (split[1] || '').trim(),\n supported: true,\n canEncode: this.handleBase64,\n binary: this.displayValuesAsBinary\n }));\n\n this.rows.splice(index, 1, ...keyValues);\n this.queueUpdate();\n },\n calculateOptions(value) {\n const valueOption = this.keyOptions.find((o) => o.value === value);\n\n if (valueOption) {\n return [valueOption, ...this.filteredKeyOptions];\n }\n\n return this.filteredKeyOptions;\n },\n binaryTextSize(val) {\n const handledValue = this.handleBase64 ? base64Decode(val) : val;\n const n = val.length ? binarySize(handledValue) : 0;\n\n return this.t('detailText.binary', { n }, true);\n },\n get,\n /**\n * Update 'rows' variable with the user's input and prevents to update queue before the row model is updated\n */\n onInputMarkdownMultiline(idx, value) {\n this.rows = this.rows.map((row, i) => i === idx ? { ...row, value } : row);\n this.queueUpdate();\n },\n /**\n * Set focus on CodeMirror fields\n */\n onFocusMarkdownMultiline(idx, value) {\n this.codeMirrorFocus[idx] = value;\n },\n onValueFileSelected(idx, file) {\n const { name, value } = file;\n\n if (!this.rows[idx][this.keyName]) {\n this.rows[idx][this.keyName] = name;\n }\n this.rows[idx][this.valueName] = value;\n },\n isValueFieldEmpty(value) {\n return !value || value.trim().length === 0;\n }\n }\n};\n</script>\n<template>\n <div class=\"key-value\">\n <div\n v-if=\"title || $slots.title\"\n class=\"clearfix\"\n >\n <slot name=\"title\">\n <h3>\n {{ title }}\n <i\n v-if=\"titleProtip\"\n v-clean-tooltip=\"titleProtip\"\n class=\"icon icon-info\"\n />\n </h3>\n </slot>\n </div>\n <div\n class=\"kv-container\"\n role=\"grid\"\n :aria-rowcount=\"rows.length\"\n :aria-colcount=\"extraColumns.length + 2\"\n :style=\"containerStyle\"\n >\n <template v-if=\"rows.length || isView\">\n <div class=\"rowgroup\">\n <div class=\"row\">\n <label\n class=\"text-label\"\n role=\"columnheader\"\n >\n {{ _keyLabel }}\n <i\n v-if=\"_protip && !isView && addAllowed\"\n v-clean-tooltip=\"_protip\"\n class=\"icon icon-info\"\n />\n </label>\n <label\n class=\"text-label\"\n role=\"columnheader\"\n >\n {{ _valueLabel }}\n </label>\n <label\n v-for=\"(c, i) in extraColumns\"\n :key=\"i\"\n role=\"columnheader\"\n >\n <slot :name=\"'label:'+c\">{{ c }}</slot>\n </label>\n <slot\n v-if=\"canRemove\"\n name=\"remove\"\n >\n <span />\n </slot>\n </div>\n </div>\n </template>\n <template v-if=\"!rows.length && isView\">\n <div class=\"rowgroup\">\n <div class=\"row\">\n <div\n class=\"kv-item key text-muted\"\n role=\"gridcell\"\n >\n —\n </div>\n <div\n class=\"kv-item key text-muted\"\n role=\"gridcell\"\n >\n —\n </div>\n </div>\n </div>\n </template>\n <template\n v-for=\"(row,i) in filteredRows\"\n v-else\n :key=\"i\"\n >\n <div class=\"rowgroup\">\n <div class=\"row\">\n <!-- Key -->\n <div\n class=\"kv-item key\"\n role=\"gridcell\"\n :aria-rowindex=\"i+1\"\n :aria-colindex=\"1\"\n >\n <slot\n name=\"key\"\n :row=\"row\"\n :mode=\"mode\"\n :keyName=\"keyName\"\n :valueName=\"valueName\"\n :queueUpdate=\"queueUpdate\"\n :disabled=\"disabled\"\n >\n <Select\n v-if=\"keyOptions\"\n ref=\"key\"\n v-model:value=\"row[keyName]\"\n :searchable=\"true\"\n :disabled=\"disabled || isProtected(row.key)\"\n :clearable=\"false\"\n :taggable=\"keyTaggable\"\n :options=\"calculateOptions(row[keyName])\"\n :data-testid=\"`select-kv-item-key-${i}`\"\n :aria-label=\"t('generic.ariaLabel.key', {index: i})\"\n @update:value=\"queueUpdate\"\n />\n <input\n v-else\n ref=\"key\"\n v-model=\"row[keyName]\"\n :disabled=\"isView || disabled || !keyEditable || isProtected(row.key)\"\n :placeholder=\"_keyPlaceholder\"\n :data-testid=\"`input-kv-item-key-${i}`\"\n :aria-label=\"t('generic.ariaLabel.key', {index: i})\"\n @input=\"queueUpdate\"\n @paste=\"onPaste(i, $event)\"\n >\n </slot>\n </div>\n\n <!-- Value -->\n <div\n :data-testid=\"`kv-item-value-${i}`\"\n class=\"kv-item value\"\n role=\"gridcell\"\n :aria-rowindex=\"i+1\"\n :aria-colindex=\"2\"\n >\n <slot\n name=\"value\"\n :row=\"row\"\n :mode=\"mode\"\n :keyName=\"keyName\"\n :valueName=\"valueName\"\n :queueUpdate=\"queueUpdate\"\n >\n <div v-if=\"!row.supported\">\n {{ t('detailText.unsupported', null, true) }}\n </div>\n <div v-else-if=\"row.binary\">\n {{ binaryTextSize(row.value) }}\n </div>\n <div\n v-else\n class=\"value-container\"\n :class=\"{ 'upload-button': parseValueFromFile }\"\n >\n <CodeMirror\n v-if=\"valueMarkdownMultiline\"\n ref=\"cm\"\n data-testid=\"code-mirror-multiline-field\"\n :class=\"{['focus']: codeMirrorFocus[i]}\"\n :value=\"row[valueName]\"\n :as-text-area=\"true\"\n :mode=\"mode\"\n :options=\"{\n screenReaderLabel: t('generic.ariaLabel.value', { index: i })\n }\"\n @onInput=\"onInputMarkdownMultiline(i, $event)\"\n @onFocus=\"onFocusMarkdownMultiline(i, $event)\"\n />\n <TextAreaAutoGrow\n v-else-if=\"valueMultiline && row[valueName] !== undefined\"\n v-model:value=\"row[valueName]\"\n data-testid=\"value-multiline\"\n :class=\"{'conceal': valueConcealed}\"\n :disabled=\"disabled || isProtected(row.key)\"\n :mode=\"mode\"\n :placeholder=\"_valuePlaceholder\"\n :min-height=\"40\"\n :spellcheck=\"false\"\n :aria-label=\"t('generic.ariaLabel.value', {index: i})\"\n @update:value=\"queueUpdate\"\n />\n <input\n v-else\n v-model=\"row[valueName]\"\n :disabled=\"isView || disabled || isProtected(row.key)\"\n :type=\"valueConcealed ? 'password' : 'text'\"\n :placeholder=\"_valuePlaceholder\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n :data-testid=\"`input-kv-item-value-${i}`\"\n :aria-label=\"t('generic.ariaLabel.value', {index: i})\"\n @input=\"queueUpdate\"\n >\n <FileSelector\n v-if=\"parseValueFromFile && readAllowed && !isView && isValueFieldEmpty(row[valueName])\"\n class=\"btn btn-sm role-secondary file-selector\"\n :label=\"t('generic.upload')\"\n :include-file-name=\"true\"\n :aria-label=\"t('generic.ariaLabel.value', {index: i})\"\n @selected=\"onValueFileSelected(i, $event)\"\n />\n </div>\n </slot>\n </div>\n <div\n v-for=\"(c, j) in extraColumns\"\n :key=\"`${i}-${j}`\"\n class=\"kv-item extra\"\n role=\"gridcell\"\n :aria-rowindex=\"i+1\"\n :aria-colindex=\"j+3\"\n >\n <slot\n :name=\"'col:' + c\"\n :row=\"row\"\n :queue-update=\"queueUpdate\"\n :i=\"i\"\n />\n </div>\n <div\n v-if=\"canRemove\"\n :key=\"i\"\n class=\"kv-item remove\"\n role=\"gridcell\"\n :aria-rowindex=\"i+1\"\n :aria-colindex=\"extraColumns.length+3\"\n :data-testid=\"`remove-column-${i}`\"\n >\n <slot\n name=\"removeButton\"\n :remove=\"remove\"\n :row=\"row\"\n :i=\"i\"\n >\n <button\n type=\"button\"\n role=\"button\"\n :disabled=\"isView || isProtected(row.key) || disabled\"\n :aria-label=\"removeLabel || t('generic.remove')\"\n class=\"btn role-link\"\n @click=\"remove(i)\"\n >\n {{ removeLabel || t('generic.remove') }}\n </button>\n </slot>\n </div>\n </div>\n </div>\n </template>\n </div>\n <div\n v-if=\"(addAllowed || readAllowed) && !isView\"\n class=\"footer mt-20\"\n >\n <slot\n name=\"add\"\n :add=\"add\"\n >\n <button\n v-if=\"addAllowed\"\n type=\"button\"\n role=\"button\"\n class=\"btn role-tertiary add\"\n data-testid=\"add_row_item_button\"\n :disabled=\"loading || disabled || (keyOptions && filteredKeyOptions.length === 0)\"\n :aria-label=\"_addLabel\"\n @click=\"add()\"\n >\n <i\n v-if=\"loading\"\n class=\"mr-5 icon icon-spinner icon-spin icon-lg\"\n /> {{ _addLabel }}\n </button>\n <FileSelector\n v-if=\"readAllowed\"\n :disabled=\"isView\"\n class=\"role-tertiary\"\n :label=\"t('generic.readFromFile')\"\n :include-file-name=\"true\"\n @selected=\"onFileSelected\"\n />\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.key-value {\n width: 100%;\n .file-selector.role-link {\n text-transform: initial;\n padding: 0;\n }\n .kv-container {\n display: grid;\n align-items: center;\n column-gap: 20px;\n label {\n margin-bottom: 0;\n }\n & .kv-item {\n width: 100%;\n margin: 10px 0px 10px 0px;\n &.key, &.extra {\n align-self: flex-start;\n }\n &.value .value-container {\n &.upload-button {\n position: relative;\n display: flex;\n justify-content: right;\n align-items: center;\n }\n .file-selector {\n position: absolute;\n margin-right: 5px;\n }\n }\n &.value textarea {\n padding: 10px 10px 10px 10px;\n }\n\n .text-monospace:not(.conceal) {\n font-family: monospace, monospace;\n }\n }\n }\n\n .rowgroup {\n display: grid;\n grid-column-start: 1;\n grid-column-end: span end;\n grid-template-columns: subgrid;\n }\n\n .row {\n &::before {\n display: none;\n }\n display: grid;\n grid-column-start: 1;\n grid-column-end: span end;\n grid-template-columns: subgrid;\n }\n\n .remove {\n text-align: center;\n BUTTON {\n padding: 0px;\n }\n }\n .title {\n margin-bottom: 10px;\n .read-from-file {\n float: right;\n }\n }\n input {\n height: 40px;\n line-height: 1;\n }\n .footer {\n .protip {\n float: right;\n padding: 5px 0;\n }\n }\n .download {\n text-align: right;\n }\n .copy-value {\n padding: 0px 0px 0px 10px;\n }\n}\n</style>\n","import { render } from \"./KeyValue.vue?vue&type=template&id=41c6a53a\"\nimport script from \"./KeyValue.vue?vue&type=script&lang=js\"\nexport * from \"./KeyValue.vue?vue&type=script&lang=js\"\n\nimport \"./KeyValue.vue?vue&type=style&index=0&id=41c6a53a&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport KeyValue from '@shell/components/form/KeyValue';\nimport { ToggleSwitch } from '@components/Form/ToggleSwitch';\n\nexport default {\n components: {\n ToggleSwitch,\n KeyValue\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true,\n },\n\n displaySideBySide: {\n type: Boolean,\n default: false,\n },\n\n defaultContainerClass: {\n type: String,\n default: '',\n },\n\n defaultSectionClass: {\n type: String,\n default: '',\n },\n\n labelTitleTooltip: {\n type: String,\n default: '',\n },\n\n annotationTitleTooltip: {\n type: String,\n default: '',\n },\n\n showAnnotations: {\n type: Boolean,\n default: true,\n },\n\n showLabelTitle: {\n type: Boolean,\n default: true,\n }\n },\n\n data() {\n return { toggler: false };\n },\n\n computed: {\n containerClass() {\n return `${ this.displaySideBySide ? 'row' : '' } ${ this.defaultContainerClass }`.trim();\n },\n\n sectionClass() {\n return `${ this.displaySideBySide ? 'col span-6' : 'row' } ${ this.defaultSectionClass }`.trim();\n },\n\n columnsClass() {\n return `${ this.displaySideBySide ? 'col span-6' : 'row' }`.trim();\n }\n }\n};\n</script>\n<template>\n <div :class=\"containerClass\">\n <div :class=\"defaultSectionClass\">\n <div class=\"labels\">\n <div class=\"labels__header\">\n <h3 v-if=\"showLabelTitle\">\n <t k=\"labels.labels.title\" />\n </h3>\n <ToggleSwitch\n v-if=\"value.hasSystemLabels\"\n v-model:value=\"toggler\"\n name=\"label-system-toggle\"\n :on-label=\"t('labels.labels.show')\"\n />\n </div>\n <p class=\"mt-10 mb-10\">\n <t k=\"labels.labels.description\" />\n </p>\n <div :class=\"columnsClass\">\n <slot\n name=\"labels\"\n :toggler=\"toggler\"\n >\n <KeyValue\n key=\"labels\"\n :value=\"value.labels\"\n :protected-keys=\"value.systemLabels || []\"\n :toggle-filter=\"toggler\"\n :add-label=\"t('labels.addLabel')\"\n :mode=\"mode\"\n :read-allowed=\"false\"\n :value-can-be-empty=\"true\"\n @update:value=\"value.setLabels($event)\"\n />\n </slot>\n </div>\n </div>\n </div>\n <div class=\"spacer\" />\n <div\n v-if=\"showAnnotations\"\n :class=\"sectionClass\"\n >\n <KeyValue\n key=\"annotations\"\n :value=\"value.annotations\"\n :add-label=\"t('labels.addAnnotation')\"\n :mode=\"mode\"\n :protected-keys=\"value.systemAnnotations || []\"\n :toggle-filter=\"toggler\"\n :title=\"t('labels.annotations.title')\"\n :title-protip=\"annotationTitleTooltip\"\n :read-allowed=\"false\"\n :value-can-be-empty=\"true\"\n @update:value=\"value.setAnnotations($event)\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.labels {\n &__header {\n display: flex;\n justify-content: space-between;\n }\n}\n</style>\n","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withKeys as _withKeys, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"toggle-container\" }\nconst _hoisted_2 = { class: \"switch hand\" }\nconst _hoisted_3 = [\"checked\", \"aria-label\"]\nconst _hoisted_4 = {\n ref: \"switchChrome\",\n class: \"slider round\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_1, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"label no-select hand\", { active: !_ctx.state}]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.toggle(false)))\n }, _toDisplayString(_ctx.offLabel), 3),\n _createElementVNode(\"label\", _hoisted_2, [\n _createElementVNode(\"input\", {\n ref: \"switchInput\",\n type: \"checkbox\",\n role: \"switch\",\n checked: _ctx.state,\n \"aria-label\": _ctx.onLabel,\n onInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.toggle(null))),\n onKeydown: _cache[2] || (_cache[2] = _withKeys(($event: any) => (_ctx.toggle(null)), [\"enter\"]))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", _hoisted_4, null, 512)\n ]),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"label no-select hand\", { active: _ctx.state}]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.toggle(true)))\n }, _toDisplayString(_ctx.onLabel), 3)\n ]))\n}","<script lang=\"ts\">\nimport { defineComponent, onMounted, onBeforeUnmount, useTemplateRef } from 'vue';\n\ntype StateType = boolean | 'true' | 'false' | undefined;\n\nexport default defineComponent({\n props: {\n value: {\n type: [Boolean, String, Number],\n default: false\n },\n\n offValue: {\n type: [Boolean, String, Number],\n default: false,\n },\n\n onValue: {\n type: [Boolean, String, Number],\n default: true,\n },\n\n offLabel: {\n type: String,\n default: '',\n },\n\n onLabel: {\n type: String,\n default: '',\n },\n },\n\n emits: ['update:value'],\n\n setup() {\n const switchChrome = useTemplateRef<HTMLElement>('switchChrome');\n const focus = () => {\n switchChrome.value?.classList.add('focus');\n };\n\n const blur = () => {\n switchChrome.value?.classList.remove('focus');\n };\n\n const switchInput = useTemplateRef<HTMLInputElement>('switchInput');\n\n onMounted(() => {\n switchInput.value?.addEventListener('focus', focus);\n switchInput.value?.addEventListener('blur', blur);\n });\n\n onBeforeUnmount(() => {\n switchInput.value?.removeEventListener('focus', focus);\n switchInput.value?.removeEventListener('blur', blur);\n });\n },\n\n data() {\n return { state: false as StateType };\n },\n\n watch: {\n value: {\n handler() {\n this.state = this.value === this.onValue;\n },\n immediate: true\n }\n },\n\n methods: {\n toggle(neu: StateType | null) {\n this.state = neu === null ? !this.state : neu;\n this.$emit('update:value', this.state ? this.onValue : this.offValue);\n }\n }\n});\n</script>\n\n<template>\n <span class=\"toggle-container\">\n <span\n class=\"label no-select hand\"\n :class=\"{ active: !state}\"\n @click=\"toggle(false)\"\n >{{ offLabel }}</span>\n <label class=\"switch hand\">\n <input\n ref=\"switchInput\"\n type=\"checkbox\"\n role=\"switch\"\n :checked=\"state\"\n :aria-label=\"onLabel\"\n @input=\"toggle(null)\"\n @keydown.enter=\"toggle(null)\"\n >\n <span\n ref=\"switchChrome\"\n class=\"slider round\"\n />\n </label>\n <span\n class=\"label no-select hand\"\n :class=\"{ active: state}\"\n @click=\"toggle(true)\"\n >{{ onLabel }}</span>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n$toggle-height: 16px;\n\n.toggle-container {\n align-items: center;\n display: flex;\n\n span:first-child {\n padding-right: 6px;\n }\n span:last-child {\n padding-left: 6px;\n }\n}\n/* The switch - the box around the slider */\n.switch {\n position: relative;\n display: inline-block;\n width: 48px;\n height: $toggle-height + 8px;\n}\n\n/* Hide default HTML checkbox */\n.switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n/* The slider */\n.slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: var(--checkbox-disabled-bg);\n -webkit-transition: .4s;\n transition: .4s;\n\n &.focus {\n @include focus-outline;\n outline-offset: 2px;\n -webkit-transition: 0s;\n transition: 0s;\n }\n}\n\n.slider:before {\n position: absolute;\n content: \"\";\n height: $toggle-height;\n width: $toggle-height;\n left: 4px;\n bottom: 4px;\n background-color: var(--checkbox-tick);\n -webkit-transition: .4s;\n transition: .4s;\n}\n\ninput:checked + .slider {\n background-color: var(--checkbox-ticked-bg);\n}\n\ninput:focus + .slider {\n box-shadow: 0 0 1px var(--checkbox-ticked-bg);\n}\n\ninput:checked + .slider:before {\n transform: translateX(24px);\n}\n\n/* Rounded sliders */\n.slider.round {\n border-radius: 34px;\n}\n\n.slider.round:before {\n border-radius: 50%;\n}\n</style>\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=0f4adcf7&scoped=true&ts=true\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=ts\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=ts\"\n\nimport \"./ToggleSwitch.vue?vue&type=style&index=0&id=0f4adcf7&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0f4adcf7\"]])\n\nexport default __exports__","import { render } from \"./Labels.vue?vue&type=template&id=680c438c&scoped=true\"\nimport script from \"./Labels.vue?vue&type=script&lang=js\"\nexport * from \"./Labels.vue?vue&type=script&lang=js\"\n\nimport \"./Labels.vue?vue&type=style&index=0&id=680c438c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-680c438c\"]])\n\nexport default __exports__","<script>\nimport { NODE, POD } from '@shell/config/types';\nimport Select from '@shell/components/form/Select';\nimport { mapGetters } from 'vuex';\nimport { isArray, removeObject } from '@shell/utils/array';\nimport { clone } from '@shell/utils/object';\nimport { convert, simplify } from '@shell/utils/selector';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nexport default {\n emits: ['update:value', 'remove'],\n\n components: { Select, LabeledSelect },\n props: {\n // Array of actual match expressions\n // or k8s selector Object of {matchExpressions, matchLabels}\n value: {\n type: [Array, Object],\n default: () => []\n },\n\n // CRU mode\n mode: {\n type: String,\n default: 'edit'\n },\n\n // pod/node affinity types have different operator options\n type: {\n type: String,\n default: NODE\n },\n\n // has select for matching fields or expressions (used for node affinity)\n // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#nodeselectorterm-v1-core\n matchingSelectorDisplay: {\n type: Boolean,\n default: false,\n },\n\n // whether or not to show an initial empty row of inputs when value is empty in editing modes\n initialEmptyRow: {\n type: Boolean,\n default: false,\n },\n\n // whether or not to show add rule button at bottom\n showAddButton: {\n type: Boolean,\n default: true\n },\n\n // whether or not to show remove rule button right side of the rule\n showRemoveButton: {\n type: Boolean,\n default: true\n },\n\n // whether or not to show remove button in upper right\n showRemove: {\n type: Boolean,\n default: true\n },\n\n // if options are passed for keys, then the key's input will become a select\n keysSelectOptions: {\n type: Array,\n default: () => []\n }\n },\n\n data() {\n const t = this.$store.getters['i18n/t'];\n\n const podOptions = [\n { label: t('workload.scheduling.affinity.matchExpressions.in'), value: 'In' },\n { label: t('workload.scheduling.affinity.matchExpressions.notIn'), value: 'NotIn' },\n { label: t('workload.scheduling.affinity.matchExpressions.exists'), value: 'Exists' },\n { label: t('workload.scheduling.affinity.matchExpressions.doesNotExist'), value: 'DoesNotExist' },\n ];\n\n const nodeOptions = [\n { label: t('workload.scheduling.affinity.matchExpressions.in'), value: 'In' },\n { label: t('workload.scheduling.affinity.matchExpressions.notIn'), value: 'NotIn' },\n { label: t('workload.scheduling.affinity.matchExpressions.exists'), value: 'Exists' },\n { label: t('workload.scheduling.affinity.matchExpressions.doesNotExist'), value: 'DoesNotExist' },\n { label: t('workload.scheduling.affinity.matchExpressions.lessThan'), value: 'Lt' },\n { label: t('workload.scheduling.affinity.matchExpressions.greaterThan'), value: 'Gt' },\n ];\n\n const ops = this.type === NODE ? nodeOptions : podOptions;\n\n let rules;\n\n // special case for matchFields and matchExpressions\n // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#nodeselectorterm-v1-core\n if ( this.matchingSelectorDisplay) {\n const rulesByType = {\n matchFields: [],\n matchExpressions: []\n };\n\n ['matchFields', 'matchExpressions'].forEach((type) => {\n rulesByType[type] = this.parseRules(this.value[type], type);\n });\n\n rules = [...rulesByType.matchFields, ...rulesByType.matchExpressions];\n } else if ( isArray(this.value) ) {\n rules = [...this.value];\n rules = this.parseRules(rules);\n } else {\n rules = convert(this.value.matchLabels, this.value.matchExpressions);\n rules = this.parseRules(rules);\n }\n\n if (!rules.length && this.initialEmptyRow && !this.isView) {\n const newRule = {\n key: '',\n operator: 'In',\n values: ''\n };\n\n if (this.matchingSelectorDisplay) {\n newRule.matching = 'matchExpressions';\n }\n\n rules.push(newRule);\n }\n\n return {\n ops,\n rules,\n custom: []\n };\n },\n\n computed: {\n isView() {\n return this.mode === 'view';\n },\n\n node() {\n return NODE;\n },\n\n pod() {\n return POD;\n },\n\n hasKeySelectOptions() {\n return !!this.keysSelectOptions?.length;\n },\n\n matchingSelectOptions() {\n return [\n {\n label: this.t('workload.scheduling.affinity.matchExpressions.label'),\n value: 'matchExpressions',\n },\n {\n label: this.t('workload.scheduling.affinity.matchFields.label'),\n value: 'matchFields',\n },\n ];\n },\n\n ...mapGetters({ t: 'i18n/t' })\n },\n\n methods: {\n parseRules(rules, matching) {\n if (rules?.length) {\n return rules.map((rule) => {\n const newRule = clone(rule);\n\n if (newRule.values && typeof newRule.values !== 'string') {\n newRule.values = newRule.values.join(', ');\n }\n\n if (matching) {\n newRule.matching = matching;\n }\n\n return newRule;\n });\n }\n\n return [];\n },\n\n removeRule(row) {\n removeObject(this.rules, row);\n this.update();\n },\n\n addRule() {\n const newRule = {\n key: '',\n operator: 'In',\n values: ''\n };\n\n if (this.matchingSelectorDisplay) {\n newRule.matching = 'matchExpressions';\n }\n\n this.rules.push(newRule);\n },\n\n update() {\n this.$nextTick(() => {\n const out = this.rules.map((rule) => {\n const expression = { key: rule.key, operator: rule.operator };\n\n if (this.matchingSelectorDisplay) {\n expression.matching = rule.matching;\n }\n\n let val = (rule.values || '').trim();\n\n if ( rule.operator === 'Exists' || rule.operator === 'DoesNotExist') {\n val = null;\n }\n\n if ( val !== null ) {\n expression.values = val.split(/\\s*,\\s*/);\n }\n\n return expression;\n }).filter((x) => !!x);\n\n if ( isArray(this.value) || this.matchingSelectorDisplay ) {\n this.$emit('update:value', out);\n } else {\n this.$emit('update:value', simplify(out));\n }\n });\n }\n }\n};\n</script>\n\n<template>\n <div>\n <button\n v-if=\"showRemove && !isView\"\n type=\"button\"\n class=\"btn role-link remove-expression\"\n @click=\"$emit('remove')\"\n >\n <i class=\"icon icon-x\" />\n </button>\n\n <div\n v-if=\"rules.length\"\n class=\"match-expression-header\"\n :class=\"{ 'view':isView, 'match-expression-header-matching': matchingSelectorDisplay }\"\n >\n <label v-if=\"matchingSelectorDisplay\">\n {{ t('workload.scheduling.affinity.matchExpressions.matchType') }}\n </label>\n <label>\n {{ t('workload.scheduling.affinity.matchExpressions.key') }}\n </label>\n <label>\n {{ t('workload.scheduling.affinity.matchExpressions.operator') }}\n </label>\n <label>\n {{ t('workload.scheduling.affinity.matchExpressions.value') }}\n </label>\n <span />\n </div>\n <div\n v-for=\"(row, index) in rules\"\n :key=\"index\"\n class=\"match-expression-row\"\n :class=\"{'view':isView, 'mb-10': index !== rules.length - 1, 'match-expression-row-matching': matchingSelectorDisplay}\"\n >\n <!-- Select for matchFields and matchExpressions -->\n <div\n v-if=\"matchingSelectorDisplay\"\n :data-testid=\"`input-match-type-field-${index}`\"\n >\n <div v-if=\"isView\">\n {{ row.matching }}\n </div>\n <LabeledSelect\n v-else\n v-model:value=\"row.matching\"\n :mode=\"mode\"\n :options=\"matchingSelectOptions\"\n :data-testid=\"`input-match-type-field-control-${index}`\"\n @selecting=\"update\"\n />\n </div>\n <div\n :data-testid=\"`input-match-expression-key-${index}`\"\n >\n <div v-if=\"isView\">\n {{ row.key }}\n </div>\n <input\n v-else-if=\"!hasKeySelectOptions\"\n v-model=\"row.key\"\n :mode=\"mode\"\n :data-testid=\"`input-match-expression-key-control-${index}`\"\n @input=\"update\"\n >\n <LabeledSelect\n v-else\n v-model:value=\"row.key\"\n :mode=\"mode\"\n :options=\"keysSelectOptions\"\n :data-testid=\"`input-match-expression-key-control-select-${index}`\"\n />\n </div>\n <div\n :data-testid=\"`input-match-expression-operator-${index}`\"\n >\n <div v-if=\"isView\">\n {{ row.operator }}\n </div>\n <Select\n v-else\n v-model:value=\"row.operator\"\n class=\"operator single\"\n :options=\"ops\"\n :clearable=\"false\"\n :reduce=\"opt=>opt.value\"\n :mode=\"mode\"\n :data-testid=\"`input-match-expression-operator-control-${index}`\"\n @update:value=\"update\"\n />\n </div>\n\n <div\n v-if=\"row.operator==='Exists' || row.operator==='DoesNotExist'\"\n class=\"no-value\"\n >\n <label class=\"text-muted\">…</label>\n </div>\n <div\n v-else\n :data-testid=\"`input-match-expression-values-${index}`\"\n >\n <div v-if=\"isView\">\n {{ row.values }}\n </div>\n <input\n v-else\n v-model=\"row.values\"\n :mode=\"mode\"\n :disabled=\"row.operator==='Exists' || row.operator==='DoesNotExist'\"\n :data-testid=\"`input-match-expression-values-control-${index}`\"\n @input=\"update\"\n >\n </div>\n <div\n v-if=\"showRemoveButton\"\n class=\"remove-container\"\n >\n <button\n v-if=\"!isView\"\n type=\"button\"\n class=\"btn role-link\"\n :style=\"{padding:'0px'}\"\n\n :disabled=\"mode==='view'\"\n :data-testid=\"`input-match-expression-remove-control-${index}`\"\n @click=\"removeRule(row)\"\n >\n <t k=\"generic.remove\" />\n </button>\n </div>\n </div>\n <div\n v-if=\"!isView && showAddButton\"\n class=\"mt-20\"\n >\n <button\n type=\"button\"\n class=\"btn role-tertiary add\"\n :data-testid=\"`input-match-expression-add-rule`\"\n @click=\"addRule\"\n >\n <t k=\"workload.scheduling.affinity.matchExpressions.addRule\" />\n </button>\n </div>\n </div>\n</template>\n\n<style lang='scss' scoped>\n $separator: 20;\n $remove: 75;\n $spacing: 10px;\n\n .operator {\n & .vs__dropdown-option{\n padding: 3px 6px 3px 6px !important\n }\n }\n\n .remove-expression {\n padding: 8px;\n position: absolute;\n margin-bottom:10px;\n right: 0px;\n top: 0px;\n z-index: z-index('overContent');\n\n i {\n font-size:2em;\n }\n }\n\n .remove-container {\n display: flex;\n justify-content: center;\n }\n\n .match-expression-row, .match-expression-header {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n margin: 5px 0;\n grid-gap: $column-gutter;\n\n & > LABEL {\n margin: 0;\n }\n\n &:not(.view){\n grid-template-columns: repeat(3, 1fr) 50px;\n }\n }\n\n .match-expression-row > div > input {\n min-height: 40px !important;\n }\n .match-expression-row-matching, .match-expression-header-matching {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n\n &:not(.view){\n grid-template-columns: 1fr 1fr 1fr 1fr 100px;\n }\n }\n</style>\n","import { render } from \"./MatchExpressions.vue?vue&type=template&id=023836b7&scoped=true\"\nimport script from \"./MatchExpressions.vue?vue&type=script&lang=js\"\nexport * from \"./MatchExpressions.vue?vue&type=script&lang=js\"\n\nimport \"./MatchExpressions.vue?vue&type=style&index=0&id=023836b7&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-023836b7\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { RadioGroup } from '@components/Form/Radio';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport NodeAffinity from '@shell/components/form/NodeAffinity';\nimport { HARVESTER_NAME as VIRTUAL } from '@shell/config/features';\nimport { _VIEW } from '@shell/config/query-params';\nimport { isEmpty } from '@shell/utils/object';\nimport { HOSTNAME } from '@shell/config/labels-annotations';\n\nexport default {\n components: {\n RadioGroup,\n LabeledSelect,\n NodeAffinity,\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n nodes: {\n type: Array,\n default: () => []\n },\n\n mode: {\n type: String,\n default: 'create'\n },\n\n loading: {\n default: false,\n type: Boolean\n },\n },\n\n data() {\n const isHarvester = this.$store.getters['currentProduct'].inStore === VIRTUAL;\n\n let { nodeName = '' } = this.value;\n const { affinity = {}, nodeSelector = {} } = this.value;\n\n const { nodeAffinity = {} } = affinity;\n\n let selectNode = null;\n\n if (this.value.nodeName) {\n selectNode = 'nodeSelector';\n } else if (isHarvester && this.value?.nodeSelector?.[HOSTNAME]) {\n selectNode = 'nodeSelector';\n nodeName = nodeSelector[HOSTNAME];\n } else if (!isEmpty(nodeAffinity)) {\n selectNode = 'affinity';\n }\n\n if (!nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution) {\n nodeAffinity['requiredDuringSchedulingIgnoredDuringExecution'] = { nodeSelectorTerms: [] };\n }\n if (!nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution) {\n nodeAffinity['preferredDuringSchedulingIgnoredDuringExecution'] = [];\n }\n\n return {\n selectNode, nodeName, nodeAffinity, nodeSelector\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n isView() {\n return this.mode === _VIEW;\n },\n\n isHarvester() {\n return this.$store.getters['currentProduct'].inStore === VIRTUAL;\n },\n\n selectNodeOptions() {\n const prefix = this.isHarvester ? 'harvester.virtualMachine' : 'workload';\n const out = [{\n label: this.t(`${ prefix }.scheduling.affinity.anyNode`),\n value: null\n },\n {\n label: this.t(`${ prefix }.scheduling.affinity.specificNode`),\n value: 'nodeSelector'\n },\n {\n label: this.t(`${ prefix }.scheduling.affinity.schedulingRules`),\n value: 'affinity'\n }];\n\n return out;\n },\n\n },\n methods: {\n update() {\n const { nodeName, nodeSelector, nodeAffinity } = this;\n\n switch (this.selectNode) {\n case 'nodeSelector':\n if (this.isHarvester) {\n Object.assign(this.value, { nodeSelector: { [HOSTNAME]: nodeName } });\n } else {\n Object.assign(this.value, { nodeSelector, nodeName });\n }\n if (this.value?.affinity?.nodeAffinity) {\n delete this.value.affinity.nodeAffinity;\n }\n break;\n case 'affinity':\n delete this.value.nodeName;\n delete this.value.nodeSelector;\n if (!this.value.affinity) {\n Object.assign(this.value, { affinity: { nodeAffinity } });\n } else {\n Object.assign(this.value.affinity, { nodeAffinity });\n }\n break;\n default:\n delete this.value.nodeName;\n delete this.value.nodeSelector;\n if (this.value?.affinity?.nodeAffinity) {\n delete this.value.affinity.nodeAffinity;\n }\n }\n },\n isEmpty\n },\n\n watch: {\n 'value.nodeSelector': {\n handler(nodeSelector) {\n if (this.isHarvester && nodeSelector?.[HOSTNAME]) {\n this.selectNode = 'nodeSelector';\n const nodeName = nodeSelector[HOSTNAME];\n\n this.nodeName = nodeName;\n\n const array = this.nodes.map((n) => n.value);\n\n if (nodeName && !array.includes(nodeName)) {\n this.$store.dispatch('growl/error', {\n title: this.$store.getters['i18n/t']('harvester.vmTemplate.tips.notExistNode.title', { name: nodeName }),\n message: this.$store.getters['i18n/t']('harvester.vmTemplate.tips.notExistNode.message')\n }, { root: true });\n\n delete this.value.nodeSelector;\n this['nodeName'] = '';\n this['selectNode'] = null;\n }\n }\n },\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <RadioGroup\n v-model:value=\"selectNode\"\n name=\"selectNode\"\n :options=\"selectNodeOptions\"\n :mode=\"mode\"\n :data-testid=\"'node-scheduling-selectNode'\"\n @input=\"update\"\n />\n </div>\n <template v-if=\"selectNode === 'nodeSelector'\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"nodeName\"\n :label=\"t('workload.scheduling.affinity.nodeName')\"\n :options=\"nodes || []\"\n :mode=\"mode\"\n :multiple=\"false\"\n :loading=\"loading\"\n :data-testid=\"'node-scheduling-nodeSelector'\"\n @update:value=\"update\"\n />\n </div>\n </div>\n </template>\n <template v-else-if=\"selectNode === 'affinity'\">\n <NodeAffinity\n v-model:value=\"nodeAffinity\"\n :mode=\"mode\"\n :data-testid=\"'node-scheduling-nodeAffinity'\"\n @input=\"update\"\n />\n </template>\n </div>\n</template>\n","<script>\nimport debounce from 'lodash/debounce';\nimport { _VIEW } from '@shell/config/query-params';\nimport { mapGetters } from 'vuex';\nimport { get, isEmpty, clone } from '@shell/utils/object';\nimport { NODE } from '@shell/config/types';\nimport MatchExpressions from '@shell/components/form/MatchExpressions';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { randomStr } from '@shell/utils/string';\nimport ArrayListGrouped from '@shell/components/form/ArrayListGrouped';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n ArrayListGrouped, MatchExpressions, LabeledSelect, LabeledInput\n },\n\n props: {\n // value should be NodeAffinity or VolumeNodeAffinity\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n mode: {\n type: String,\n default: 'create'\n },\n\n // has select for matching fields or expressions (used for node affinity)\n // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#nodeselectorterm-v1-core\n matchingSelectorDisplay: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n // VolumeNodeAffinity only has 'required' field\n if (this.value.required) {\n return { nodeSelectorTerms: this.value.required.nodeSelectorTerms };\n } else {\n const { preferredDuringSchedulingIgnoredDuringExecution = [], requiredDuringSchedulingIgnoredDuringExecution = {} } = this.value;\n const { nodeSelectorTerms = [] } = requiredDuringSchedulingIgnoredDuringExecution;\n const allSelectorTerms = [...preferredDuringSchedulingIgnoredDuringExecution, ...nodeSelectorTerms].map((term) => {\n const neu = clone(term);\n\n neu._id = randomStr(4);\n if (term.preference) {\n Object.assign(neu, term.preference);\n delete neu.preference;\n }\n\n return neu;\n });\n\n return {\n allSelectorTerms,\n weightedNodeSelectorTerms: preferredDuringSchedulingIgnoredDuringExecution,\n defaultWeight: 1,\n // rules in MatchExpressions.vue can not catch changes what happens on parent component\n // we need re-render it via key changing\n rerenderNums: randomStr(4)\n };\n }\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n isView() {\n return this.mode === _VIEW;\n },\n hasWeighted() {\n return !!this.weightedNodeSelectorTerms;\n },\n node() {\n return NODE;\n },\n affinityOptions() {\n const out = [this.t('workload.scheduling.affinity.preferred'), this.t('workload.scheduling.affinity.required')];\n\n return out;\n }\n },\n\n created() {\n this.queueUpdate = debounce(this.update, 500);\n },\n\n methods: {\n update() {\n const out = {};\n const requiredDuringSchedulingIgnoredDuringExecution = { nodeSelectorTerms: [] };\n const preferredDuringSchedulingIgnoredDuringExecution = [] ;\n\n this.allSelectorTerms.forEach((t) => {\n const term = { ...t };\n\n // the 'matching' field isn't part of the affinity spec: including this in the save request will cause a flood of errors that might cause the request to fail\n // same deal with term.preference.weight\n if (term.matchExpressions) {\n term.matchExpressions = (term.matchExpressions || []).map((expression) => {\n const out = { ...expression };\n\n delete out.matching;\n\n return out;\n });\n }\n\n if (term.matchFields) {\n term.matchFields = (term.matchFields || []).map((field) => {\n const out = { ...field };\n\n delete out.matching;\n\n return out;\n });\n }\n\n if (term.weight) {\n const neu = { weight: term.weight, preference: term };\n\n delete neu.preference.weight;\n\n preferredDuringSchedulingIgnoredDuringExecution.push(neu);\n } else {\n requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.push(term);\n }\n });\n\n if (preferredDuringSchedulingIgnoredDuringExecution.length) {\n out.preferredDuringSchedulingIgnoredDuringExecution = preferredDuringSchedulingIgnoredDuringExecution;\n }\n if (requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.length) {\n out.requiredDuringSchedulingIgnoredDuringExecution = requiredDuringSchedulingIgnoredDuringExecution;\n }\n\n this.$emit('update:value', out);\n },\n\n remove() {\n this.rerenderNums = randomStr(4);\n this.queueUpdate();\n },\n\n changePriority(term) {\n if (term.weight) {\n delete term['weight'];\n } else {\n term['weight'] = 1;\n }\n this.update();\n },\n\n priorityDisplay(term) {\n return 'weight' in term ? this.t('workload.scheduling.affinity.preferred') : this.t('workload.scheduling.affinity.required');\n },\n\n updateExpressions(row, expressions) {\n const expressionsMatching = {\n matchFields: [],\n matchExpressions: []\n };\n\n if (expressions.length) {\n expressions.forEach((expression) => {\n expressionsMatching[expression.matching || 'matchExpressions'].push(expression);\n });\n\n row['matchFields'] = expressionsMatching.matchFields;\n row['matchExpressions'] = expressionsMatching.matchExpressions;\n\n this.update();\n }\n },\n\n get,\n\n isEmpty\n }\n\n};\n</script>\n\n<template>\n <div\n class=\"row\"\n @update:value=\"queueUpdate\"\n >\n <div class=\"col span-12\">\n <ArrayListGrouped\n v-model:value=\"allSelectorTerms\"\n class=\"mt-20\"\n :mode=\"mode\"\n :default-add-value=\"{matchExpressions:[]}\"\n :add-label=\"t('workload.scheduling.affinity.addNodeSelector')\"\n @remove=\"remove\"\n >\n <template #default=\"props\">\n <div class=\"row\">\n <div class=\"col span-9\">\n <LabeledSelect\n :options=\"affinityOptions\"\n :value=\"priorityDisplay(props.row.value)\"\n :label=\"t('workload.scheduling.affinity.priority')\"\n :mode=\"mode\"\n :data-testid=\"`node-affinity-priority-index${props.i}`\"\n @update:value=\"(changePriority(props.row.value))\"\n />\n </div>\n <div\n v-if=\"'weight' in props.row.value\"\n class=\"col span-3\"\n >\n <LabeledInput\n v-model:value.number=\"props.row.value.weight\"\n :mode=\"mode\"\n type=\"number\"\n min=\"1\"\n max=\"100\"\n :label=\"t('workload.scheduling.affinity.weight.label')\"\n :placeholder=\"t('workload.scheduling.affinity.weight.placeholder')\"\n :data-testid=\"`node-affinity-weight-index${props.i}`\"\n @update:value=\"update\"\n />\n </div>\n </div>\n <MatchExpressions\n :value=\"matchingSelectorDisplay ? props.row.value : props.row.value.matchExpressions\"\n :matching-selector-display=\"matchingSelectorDisplay\"\n :mode=\"mode\"\n class=\"col span-12 mt-20\"\n :type=\"node\"\n :show-remove=\"false\"\n :data-testid=\"`node-affinity-expressions-index${props.i}`\"\n @update:value=\"(updateExpressions(props.row.value, $event))\"\n />\n </template>\n </ArrayListGrouped>\n </div>\n </div>\n</template>\n\n<style>\n</style>\n","import { render } from \"./NodeAffinity.vue?vue&type=template&id=4a2688fd\"\nimport script from \"./NodeAffinity.vue?vue&type=script&lang=js\"\nexport * from \"./NodeAffinity.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./NodeScheduling.vue?vue&type=template&id=547fa626\"\nimport script from \"./NodeScheduling.vue?vue&type=script&lang=js\"\nexport * from \"./NodeScheduling.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { CHARSET, randomStr } from '@shell/utils/string';\nimport { copyTextToClipboard } from '@shell/utils/clipboard';\nimport { _CREATE } from '@shell/config/query-params';\n\nexport default {\n emits: ['update:value', 'blur'],\n\n components: { LabeledInput },\n props: {\n value: {\n default: '',\n type: String,\n },\n isRandom: {\n default: false,\n type: Boolean,\n },\n label: {\n default: '',\n type: String,\n },\n name: {\n default: '',\n type: String\n },\n autocomplete: {\n type: String,\n default: ''\n },\n required: {\n default: false,\n type: Boolean,\n },\n ignorePasswordManagers: {\n default: false,\n type: Boolean,\n },\n mode: {\n type: String,\n default: _CREATE,\n }\n },\n data() {\n return { reveal: false };\n },\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n password: {\n get() {\n return this.value;\n },\n set(val) {\n this.$emit('update:value', val);\n }\n },\n attributes() {\n const attributes = { };\n\n if (this.name) {\n attributes.id = this.name;\n attributes.name = this.name;\n }\n if (this.autocomplete) {\n attributes.autocomplete = this.autocomplete;\n }\n\n return attributes;\n },\n hideShowLabel() {\n return this.reveal ? this.t('action.hide') : this.t('action.show');\n }\n },\n watch: {\n isRandom() {\n if (this.isRandom) {\n this.generatePassword();\n }\n }\n },\n created() {\n if (this.isRandom) {\n this.generatePassword();\n }\n },\n methods: {\n copyTextToClipboard,\n generatePassword() {\n this.password = randomStr(16, CHARSET.ALPHA_NUM);\n },\n show(reveal) {\n this.reveal = reveal;\n },\n focus() {\n this.$refs.input.$refs.value.focus();\n },\n hideShowFn() {\n this.reveal ? this.reveal = false : this.reveal = true;\n }\n }\n};\n</script>\n\n<template>\n <div class=\"password\">\n <LabeledInput\n ref=\"input\"\n v-model:value=\"password\"\n v-bind=\"attributes\"\n :type=\"isRandom || reveal ? 'text' : 'password'\"\n :readonly=\"isRandom\"\n :label=\"label\"\n :required=\"required\"\n :disabled=\"isRandom\"\n :ignore-password-managers=\"ignorePasswordManagers\"\n :mode=\"mode\"\n @blur=\"$emit('blur', $event)\"\n >\n <template #suffix>\n <div\n v-if=\"isRandom\"\n class=\"addon\"\n >\n <a\n href=\"#\"\n @click.prevent.stop=\"copyTextToClipboard(password)\"\n >{{ t('action.copy') }}</a>\n </div>\n <div\n v-else\n class=\"addon\"\n >\n <a\n href=\"#\"\n tabindex=\"0\"\n class=\"hide-show\"\n role=\"button\"\n @click.prevent.stop=\"hideShowFn\"\n @keyup.space.prevent.stop=\"hideShowFn\"\n >\n {{ hideShowLabel }}\n </a>\n </div>\n </template>\n </LabeledInput>\n <div\n v-if=\"isRandom\"\n class=\"mt-10 genPassword\"\n >\n <a\n href=\"#\"\n @click.prevent.stop=\"generatePassword\"\n ><i class=\"icon icon-refresh\" /> {{ t('changePassword.newGeneratedPassword') }}</a>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .password {\n display: flex;\n flex-direction: column;\n\n .labeled-input {\n .addon {\n padding-left: 12px;\n min-width: 65px;\n\n .hide-show:focus-visible {\n @include focus-outline;\n outline-offset: 4px;\n }\n }\n }\n .genPassword {\n display: flex;\n justify-content: flex-end;\n }\n }\n\n</style>\n","import { render } from \"./Password.vue?vue&type=template&id=3366c7ce&scoped=true\"\nimport script from \"./Password.vue?vue&type=script&lang=js\"\nexport * from \"./Password.vue?vue&type=script&lang=js\"\n\nimport \"./Password.vue?vue&type=style&index=0&id=3366c7ce&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3366c7ce\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { _VIEW } from '@shell/config/query-params';\nimport { get, set, isEmpty, clone } from '@shell/utils/object';\nimport { POD, NODE, NAMESPACE } from '@shell/config/types';\nimport MatchExpressions from '@shell/components/form/MatchExpressions';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { randomStr } from '@shell/utils/string';\nimport { sortBy } from '@shell/utils/sort';\nimport debounce from 'lodash/debounce';\nimport ArrayListGrouped from '@shell/components/form/ArrayListGrouped';\nimport { getUniqueLabelKeys } from '@shell/utils/array';\n\nconst NAMESPACE_SELECTION_OPTION_VALUES = {\n POD: 'pod',\n ALL: 'all',\n SELECTED: 'selected',\n};\n\nexport default {\n emits: ['update'],\n\n components: {\n ArrayListGrouped, MatchExpressions, LabeledSelect, RadioGroup, LabeledInput\n },\n\n props: {\n // pod template spec\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n // Field key on the value object to store the pod affinity - typically this is 'affinity'\n // Cluster Agent Configuration uses a different field\n field: {\n type: String,\n default: 'affinity'\n },\n\n mode: {\n type: String,\n default: 'create'\n },\n\n nodes: {\n type: Array,\n default: () => []\n },\n\n namespaces: {\n type: Array,\n default: null\n },\n\n allNamespacesOptionAvailable: {\n default: false,\n type: Boolean\n },\n\n forceInputNamespaceSelection: {\n default: false,\n type: Boolean\n },\n\n removeLabeledInputNamespaceLabel: {\n default: false,\n type: Boolean\n },\n\n overwriteLabels: {\n type: Object,\n default: null\n },\n\n loading: {\n default: false,\n type: Boolean\n },\n },\n\n data() {\n if (!this.value[this.field]) {\n this.value[this.field] = {};\n }\n const { podAffinity = {}, podAntiAffinity = {} } = this.value[this.field];\n const allAffinityTerms = [...(podAffinity.preferredDuringSchedulingIgnoredDuringExecution || []), ...(podAffinity.requiredDuringSchedulingIgnoredDuringExecution || [])].map((term) => {\n let out = clone(term);\n\n out._id = randomStr(4);\n out._anti = false;\n if (term.podAffinityTerm) {\n Object.assign(out, term.podAffinityTerm);\n out = this.parsePodAffinityTerm(out);\n\n delete out.podAffinityTerm;\n } else {\n out = this.parsePodAffinityTerm(out);\n }\n\n return out;\n });\n const allAntiTerms = [...(podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution || []), ...(podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution || [])].map((term) => {\n let out = clone(term);\n\n out._id = randomStr(4);\n out._anti = true;\n if (term.podAffinityTerm) {\n Object.assign(out, term.podAffinityTerm);\n out = this.parsePodAffinityTerm(out);\n\n delete out.podAffinityTerm;\n } else {\n out = this.parsePodAffinityTerm(out);\n }\n\n return out;\n });\n\n const allSelectorTerms = [...allAffinityTerms, ...allAntiTerms];\n\n return {\n allSelectorTerms,\n defaultWeight: 1,\n // rules in MatchExpressions.vue can not catch changes what happens on parent component\n // we need re-render it via key changing\n rerenderNums: randomStr(4),\n NAMESPACE_SELECTION_OPTION_VALUES,\n defaultAddValue: {\n _namespaceOption: NAMESPACE_SELECTION_OPTION_VALUES.POD,\n matchExpressions: [],\n namespaces: null,\n _namespaces: null,\n }\n };\n },\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n isView() {\n return this.mode === _VIEW;\n },\n\n pod() {\n return POD;\n },\n\n node() {\n return NODE;\n },\n\n labeledInputNamespaceLabel() {\n return this.removeLabeledInputNamespaceLabel ? '' : this.overwriteLabels?.namespaceInputLabel || this.t('workload.scheduling.affinity.matchExpressions.inNamespaces');\n },\n\n allNamespacesOptions() {\n const inStore = this.$store.getters['currentStore'](NAMESPACE);\n const choices = this.namespaces || this.$store.getters[`${ inStore }/all`](NAMESPACE);\n\n const out = sortBy(choices.map((obj) => {\n return {\n label: obj.nameDisplay,\n value: obj.id,\n };\n }), 'label');\n\n return out;\n },\n\n existingNodeLabels() {\n return getUniqueLabelKeys(this.nodes);\n },\n\n hasNodes() {\n return this.nodes.length;\n },\n\n namespaceSelectionOptions() {\n if (this.allNamespacesOptionAvailable) {\n return [\n NAMESPACE_SELECTION_OPTION_VALUES.POD,\n NAMESPACE_SELECTION_OPTION_VALUES.ALL,\n NAMESPACE_SELECTION_OPTION_VALUES.SELECTED\n ];\n }\n\n return [\n NAMESPACE_SELECTION_OPTION_VALUES.POD,\n NAMESPACE_SELECTION_OPTION_VALUES.SELECTED\n ];\n },\n\n namespaceSelectionLabels() {\n if (this.overwriteLabels?.namespaceSelectionLabels) {\n return this.overwriteLabels?.namespaceSelectionLabels;\n }\n\n if (this.allNamespacesOptionAvailable) {\n return [\n this.t('workload.scheduling.affinity.thisPodNamespace'),\n this.t('workload.scheduling.affinity.allNamespaces'),\n this.t('workload.scheduling.affinity.matchExpressions.inNamespaces')\n ];\n }\n\n return [\n this.t('workload.scheduling.affinity.thisPodNamespace'),\n this.t('workload.scheduling.affinity.matchExpressions.inNamespaces')\n ];\n },\n\n addLabel() {\n return this.overwriteLabels?.addLabel || this.t('podAffinity.addLabel');\n },\n\n topologyKeyPlaceholder() {\n return this.overwriteLabels?.topologyKeyPlaceholder || this.t('workload.scheduling.affinity.topologyKey.placeholder');\n },\n\n hasNamespaces() {\n return this.allNamespacesOptions.length;\n },\n },\n\n created() {\n this.queueUpdate = debounce(this.update, 500);\n },\n\n methods: {\n parsePodAffinityTerm(out) {\n if (out.namespaceSelector && typeof out.namespaceSelector === 'object' && !Object.keys(out.namespaceSelector).length && this.allNamespacesOptionAvailable) {\n out._namespaceOption = NAMESPACE_SELECTION_OPTION_VALUES.ALL;\n } else if (out.namespaces?.length) {\n out._namespaceOption = NAMESPACE_SELECTION_OPTION_VALUES.SELECTED;\n } else {\n out._namespaceOption = NAMESPACE_SELECTION_OPTION_VALUES.POD;\n }\n\n out._namespaces = (out.namespaces || []).toString();\n\n return out;\n },\n\n update() {\n const podAffinity = { requiredDuringSchedulingIgnoredDuringExecution: [], preferredDuringSchedulingIgnoredDuringExecution: [] };\n const podAntiAffinity = { requiredDuringSchedulingIgnoredDuringExecution: [], preferredDuringSchedulingIgnoredDuringExecution: [] };\n\n this.allSelectorTerms.forEach((term) => {\n if (term._anti) {\n if (term.weight) {\n const neu = { podAffinityTerm: { ...term }, weight: term.weight || this.defaultWeight };\n\n delete neu.podAffinityTerm.weight;\n podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.push(neu);\n } else {\n podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.push(term);\n }\n } else if (term.weight) {\n const neu = { podAffinityTerm: term, weight: term.weight || this.defaultWeight };\n\n podAffinity.preferredDuringSchedulingIgnoredDuringExecution.push(neu);\n } else {\n podAffinity.requiredDuringSchedulingIgnoredDuringExecution.push(term);\n }\n });\n\n Object.assign(this.value[this.field], { podAffinity, podAntiAffinity });\n this.$emit('update', this.value);\n },\n\n remove() {\n this.rerenderNums = randomStr(4);\n this.queueUpdate();\n },\n\n changePriority(term, idx) {\n if (term.weight) {\n delete term.weight;\n } else {\n term.weight = this.defaultWeight;\n }\n\n this.allSelectorTerms[idx] = clone(term);\n this.queueUpdate();\n },\n\n priorityDisplay(term) {\n return 'weight' in term ? this.t('workload.scheduling.affinity.preferred') : this.t('workload.scheduling.affinity.required');\n },\n\n changeNamespaceMode(val, term, idx) {\n term['_namespaceOption'] = val;\n\n switch (val) {\n case NAMESPACE_SELECTION_OPTION_VALUES.POD:\n term.namespaces = null;\n term._namespaces = null;\n\n if (term.namespaceSelector || term.namespaceSelector === null) {\n delete term.namespaceSelector;\n }\n break;\n case NAMESPACE_SELECTION_OPTION_VALUES.ALL:\n term.namespaceSelector = {};\n\n if (term.namespaces || term.namespaces === null) {\n delete term.namespaces;\n }\n\n if (term._namespaces || term._namespaces === null) {\n delete term._namespaces;\n }\n break;\n\n default:\n term['namespaces'] = [];\n term['_namespaces'] = '';\n\n if (term.namespaceSelector || term.namespaceSelector === null) {\n delete term.namespaceSelector;\n }\n\n break;\n }\n\n this.allSelectorTerms[idx] = term;\n this.queueUpdate();\n },\n\n updateNamespaces(term, namespaces) {\n let nsArray = namespaces;\n\n // namespaces would be String if there is no namespace\n if (typeof namespaces === 'string') {\n nsArray = namespaces.split(',').map((ns) => ns.trim()).filter((ns) => ns?.length);\n }\n\n term['namespaces'] = nsArray;\n this.queueUpdate();\n },\n\n updateLabelSelector(e, props) {\n this.set(props.row.value, 'labelSelector.matchExpressions', e);\n this.queueUpdate();\n },\n\n isEmpty,\n get,\n set\n }\n\n};\n</script>\n\n<template>\n <div\n :style=\"{'width':'100%'}\"\n class=\"row\"\n @update:value=\"queueUpdate\"\n >\n <div class=\"col span-12\">\n <ArrayListGrouped\n v-model:value=\"allSelectorTerms\"\n class=\"mt-20\"\n :default-add-value=\"defaultAddValue\"\n :mode=\"mode\"\n :add-label=\"addLabel\"\n @remove=\"remove\"\n >\n <template #default=\"props\">\n <div class=\"row mt-20 mb-20\">\n <div class=\"col span-6\">\n <LabeledSelect\n :mode=\"mode\"\n :options=\"[t('workload.scheduling.affinity.affinityOption'),t('workload.scheduling.affinity.antiAffinityOption')]\"\n :value=\"props.row.value._anti ?t('workload.scheduling.affinity.antiAffinityOption') :t('workload.scheduling.affinity.affinityOption') \"\n :label=\"t('workload.scheduling.affinity.type')\"\n :data-testid=\"`pod-affinity-type-index${props.i}`\"\n @update:value=\"props.row.value._anti = !props.row.value._anti\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledSelect\n :mode=\"mode\"\n :options=\"[t('workload.scheduling.affinity.preferred'),t('workload.scheduling.affinity.required')]\"\n :value=\"priorityDisplay(props.row.value)\"\n :label=\"t('workload.scheduling.affinity.priority')\"\n :data-testid=\"`pod-affinity-priority-index${props.i}`\"\n @update:value=\"changePriority(props.row.value, props.i)\"\n />\n </div>\n </div>\n <div class=\"row\">\n <RadioGroup\n :options=\"namespaceSelectionOptions\"\n :labels=\"namespaceSelectionLabels\"\n :name=\"`namespaces-${props.row.value._id}`\"\n :mode=\"mode\"\n :value=\"props.row.value._namespaceOption\"\n :data-testid=\"`pod-affinity-namespacetype-index${props.i}`\"\n @update:value=\"changeNamespaceMode($event, props.row.value, props.i)\"\n />\n </div>\n <div\n v-if=\"props.row.value._namespaceOption === NAMESPACE_SELECTION_OPTION_VALUES.SELECTED\"\n class=\"row mt-10 mb-20\"\n >\n <LabeledSelect\n v-if=\"hasNamespaces && !forceInputNamespaceSelection\"\n v-model:value=\"props.row.value.namespaces\"\n :mode=\"mode\"\n :multiple=\"true\"\n :taggable=\"true\"\n :options=\"allNamespacesOptions\"\n :label=\"labeledInputNamespaceLabel\"\n :data-testid=\"`pod-affinity-namespace-select-index${props.i}`\"\n @update:value=\"updateNamespaces(props.row.value, props.row.value.namespaces)\"\n />\n <LabeledInput\n v-else\n v-model:value=\"props.row.value._namespaces\"\n :mode=\"mode\"\n :label=\"labeledInputNamespaceLabel\"\n :placeholder=\"t('harvesterManager.affinity.namespaces.placeholder')\"\n :data-testid=\"`pod-affinity-namespace-input-index${props.i}`\"\n @update:value=\"updateNamespaces(props.row.value, props.row.value._namespaces)\"\n />\n </div>\n <MatchExpressions\n :mode=\"mode\"\n class=\" col span-12 mt-20\"\n :type=\"pod\"\n :value=\"get(props.row.value, 'labelSelector.matchExpressions')\"\n :show-remove=\"false\"\n :data-testid=\"`pod-affinity-expressions-index${props.i}`\"\n @update:value=\"e=>updateLabelSelector(e, props)\"\n />\n <div class=\"row mt-20\">\n <div class=\"col span-9\">\n <LabeledSelect\n v-if=\"hasNodes\"\n v-model:value=\"props.row.value.topologyKey\"\n :taggable=\"true\"\n :searchable=\"true\"\n :close-on-select=\"false\"\n :mode=\"mode\"\n required\n :label=\"t('workload.scheduling.affinity.topologyKey.label')\"\n :placeholder=\"topologyKeyPlaceholder\"\n :options=\"existingNodeLabels\"\n :disabled=\"mode==='view'\"\n :loading=\"loading\"\n :data-testid=\"`pod-affinity-topology-select-index${props.i}`\"\n @update:value=\"update\"\n />\n <LabeledInput\n v-else\n v-model:value=\"props.row.value.topologyKey\"\n :mode=\"mode\"\n :label=\"t('workload.scheduling.affinity.topologyKey.label')\"\n :placeholder=\"topologyKeyPlaceholder\"\n required\n :data-testid=\"`pod-affinity-topology-input-index${props.i}`\"\n @update:value=\"update\"\n />\n </div>\n <div\n v-if=\"'weight' in props.row.value\"\n class=\"col span-3\"\n >\n <LabeledInput\n v-model:value.number=\"props.row.value.weight\"\n :mode=\"mode\"\n type=\"number\"\n min=\"1\"\n max=\"100\"\n :label=\"t('workload.scheduling.affinity.weight.label')\"\n :placeholder=\"t('workload.scheduling.affinity.weight.placeholder')\"\n :data-testid=\"`pod-affinity-weight-index${props.i}`\"\n @update:value=\"update\"\n />\n </div>\n </div>\n </template>\n </ArrayListGrouped>\n </div>\n </div>\n</template>\n\n<style>\n.node-selector{\n position: relative;\n}\n</style>\n","import { render } from \"./PodAffinity.vue?vue&type=template&id=e5f4433c\"\nimport script from \"./PodAffinity.vue?vue&type=script&lang=js\"\nexport * from \"./PodAffinity.vue?vue&type=script&lang=js\"\n\nimport \"./PodAffinity.vue?vue&type=style&index=0&id=e5f4433c&lang=css\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\n/*\n Tab component for resource CRU pages featuring:\n Labels and Annotation tabs with content filtered by create-edit-view mixin\n*/\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport Conditions from '@shell/components/form/Conditions';\nimport { EVENT } from '@shell/config/types';\nimport PaginatedResourceTable from '@shell/components/PaginatedResourceTable.vue';\nimport { _VIEW } from '@shell/config/query-params';\nimport RelatedResources from '@shell/components/RelatedResources';\nimport { isConditionReadyAndWaiting } from '@shell/plugins/dashboard-store/resource-class';\nimport { PaginationParamFilter } from '@shell/types/store/pagination.types';\nimport { MESSAGE, REASON } from '@shell/config/table-headers';\nimport { STEVE_EVENT_LAST_SEEN, STEVE_EVENT_TYPE, STEVE_NAME_COL } from '@shell/config/pagination-table-headers';\nimport { headerFromSchemaColString } from '@shell/store/type-map.utils';\n\nexport default {\n\n name: 'ResourceTabs',\n\n components: {\n Tabbed,\n Tab,\n Conditions,\n PaginatedResourceTable,\n RelatedResources,\n },\n\n mixins: [CreateEditView],\n\n props: {\n // resource instance\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n // create-edit-view mode\n mode: {\n type: String,\n default: _VIEW,\n },\n\n defaultTab: {\n type: String,\n default: null,\n },\n\n needConditions: {\n type: Boolean,\n default: true\n },\n\n needEvents: {\n type: Boolean,\n default: true\n },\n\n needRelated: {\n type: Boolean,\n default: true\n },\n\n extensionParams: {\n type: Object,\n default: null\n }\n },\n\n data() {\n const inStore = this.$store.getters['currentStore'](EVENT);\n const eventSchema = this.$store.getters[`${ inStore }/schemaFor`](EVENT); // @TODO be smarter about which resources actually ever have events\n\n return {\n eventSchema,\n EVENT,\n selectedTab: this.defaultTab,\n inStore,\n showConditions: false,\n paginationHeaders: [\n STEVE_EVENT_LAST_SEEN,\n STEVE_EVENT_TYPE,\n REASON,\n headerFromSchemaColString('Subobject', eventSchema, this.$store.getters, true),\n headerFromSchemaColString('Source', eventSchema, this.$store.getters, true),\n MESSAGE,\n headerFromSchemaColString('First Seen', eventSchema, this.$store.getters, true),\n headerFromSchemaColString('Count', eventSchema, this.$store.getters, true),\n STEVE_NAME_COL,\n ]\n };\n },\n\n beforeUnmount() {\n this.$store.dispatch('cluster/forgetType', EVENT);\n },\n\n fetch() {\n // By this stage the `value` should be set. Taking a chance that this is true\n // The alternative is have an expensive watch on the `value` and trigger there (as well)\n this.setShowConditions();\n },\n\n computed: {\n showEvents() {\n return this.isView && this.needEvents && this.eventSchema;\n },\n showRelated() {\n return this.isView && this.needRelated;\n },\n eventHeaders() {\n return [\n {\n name: 'type',\n label: this.t('tableHeaders.type'),\n value: 'eventType',\n sort: 'eventType',\n },\n {\n name: 'reason',\n label: this.t('tableHeaders.reason'),\n value: 'reason',\n sort: 'reason',\n },\n {\n name: 'date',\n label: this.t('tableHeaders.updated'),\n value: 'date',\n sort: 'date:desc',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n width: 125\n },\n {\n name: 'message',\n label: this.t('tableHeaders.message'),\n value: 'message',\n sort: 'message',\n },\n ];\n },\n conditionsHaveIssues() {\n if (this.showConditions) {\n return this.value.status?.conditions?.filter((cond) => !isConditionReadyAndWaiting(cond)).some((cond) => cond.error);\n }\n\n return false;\n }\n },\n\n methods: {\n // Ensures we only fetch events and show the table when the events tab has been activated\n tabChange(neu) {\n this.selectedTab = neu?.selectedName;\n },\n\n /**\n * Conditions come from a resource's `status`. They are used by both core resources like workloads as well as those from CRDs\n * - Workloads\n * - Nodes\n * - Fleet git repo\n * - Cluster (provisioning)\n *\n * Check here if the resource type contains conditions via the schema resourceFields\n */\n async setShowConditions() {\n if (this.isView && this.needConditions && !!this.value?.type && !!this.schema?.fetchResourceFields) {\n await this.schema.fetchResourceFields();\n\n this.showConditions = this.$store.getters[`${ this.inStore }/pathExistsInSchema`](this.value.type, 'status.conditions');\n }\n },\n\n /**\n * Filter out hidden repos from list of all repos\n */\n filterEventsLocal(rows) {\n return rows.filter((event) => event.involvedObject?.uid === this.value?.metadata?.uid);\n },\n\n /**\n * Filter out hidden repos via api\n *\n * pagination: PaginationArgs\n * returns: PaginationArgs\n */\n filterEventsApi(pagination) {\n if (!pagination.filters) {\n pagination.filters = [];\n }\n\n const field = `involvedObject.uid`; // Pending API Support - https://github.com/rancher/rancher/issues/48603\n\n // of type PaginationParamFilter\n let existing = null;\n\n for (let i = 0; i < pagination.filters.length; i++) {\n const filter = pagination.filters[i];\n\n if (!!filter.fields.find((f) => f.field === field)) {\n existing = filter;\n break;\n }\n }\n\n const required = PaginationParamFilter.createSingleField({\n field,\n exact: true,\n value: this.value.metadata.uid,\n equals: true\n });\n\n if (!!existing) {\n Object.assign(existing, required);\n } else {\n pagination.filters.push(required);\n }\n\n return pagination;\n }\n }\n};\n</script>\n\n<template>\n <Tabbed\n v-bind=\"$attrs\"\n :default-tab=\"defaultTab\"\n @changed=\"tabChange\"\n >\n <slot />\n\n <Tab\n v-if=\"showConditions\"\n label-key=\"resourceTabs.conditions.tab\"\n name=\"conditions\"\n :weight=\"-1\"\n :display-alert-icon=\"conditionsHaveIssues\"\n >\n <Conditions :value=\"value\" />\n </Tab>\n\n <Tab\n v-if=\"showEvents\"\n label-key=\"resourceTabs.events.tab\"\n name=\"events\"\n :weight=\"-2\"\n >\n <!-- namespaced: false given we don't want the default handling of namespaced resource (apply header filter) -->\n <PaginatedResourceTable\n v-if=\"selectedTab === 'events'\"\n :schema=\"eventSchema\"\n :local-filter=\"filterEventsLocal\"\n :api-filter=\"filterEventsApi\"\n :use-query-params-for-simple-filtering=\"false\"\n :headers=\"eventHeaders\"\n :paginationHeaders=\"paginationHeaders\"\n :namespaced=\"false\"\n />\n </Tab>\n\n <Tab\n v-if=\"showRelated\"\n name=\"related\"\n label-key=\"resourceTabs.related.tab\"\n :weight=\"-3\"\n >\n <h3 v-t=\"'resourceTabs.related.from'\" />\n <RelatedResources\n :ignore-types=\"[value.type]\"\n :value=\"value\"\n direction=\"from\"\n />\n\n <h3\n v-t=\"'resourceTabs.related.to'\"\n class=\"mt-20\"\n />\n <RelatedResources\n :ignore-types=\"[value.type]\"\n :value=\"value\"\n direction=\"to\"\n />\n </Tab>\n </Tabbed>\n</template>\n","<script>\nimport SortableTable from '@shell/components/SortableTable';\n\nexport default {\n components: { SortableTable },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n computed: {\n headers() {\n return [\n {\n name: 'condition',\n labelKey: 'tableHeaders.condition',\n value: 'condition',\n width: 150,\n sort: 'condition',\n dashIfEmpty: true,\n },\n {\n name: 'status',\n labelKey: 'tableHeaders.status',\n value: 'status',\n width: 75,\n sort: 'status',\n dashIfEmpty: true,\n },\n {\n name: 'time',\n labelKey: 'tableHeaders.updated',\n value: 'time',\n sort: 'time',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n width: 125,\n dashIfEmpty: true,\n },\n {\n name: 'message',\n labelKey: 'tableHeaders.message',\n value: 'message',\n sort: ['message'],\n dashIfEmpty: true,\n },\n ];\n },\n\n rows() {\n return (this.value.status?.conditions || []).map((cond) => {\n let message = cond.message || '';\n\n if ( cond.reason ) {\n message = `[${ cond.reason }] ${ message }`.trim();\n }\n\n return {\n condition: cond.type || 'Unknown',\n status: cond.status || 'Unknown',\n error: cond.error,\n time: cond.lastProbeTime || cond.lastUpdateTime || cond.lastTransitionTime,\n message,\n };\n });\n },\n }\n};\n</script>\n\n<template>\n <SortableTable\n :headers=\"headers\"\n :rows=\"rows\"\n key-field=\"condition\"\n default-sort-by=\"condition\"\n :table-actions=\"false\"\n :row-actions=\"false\"\n :search=\"false\"\n >\n <template #cell:condition=\"{row}\">\n <span :class=\"{'text-error': row.error}\">{{ row.condition }}</span>\n </template>\n\n <template #cell:status=\"{row}\">\n <span :class=\"{'text-error': row.error}\">{{ row.status }}</span>\n </template>\n </SortableTable>\n</template>\n","import { render } from \"./Conditions.vue?vue&type=template&id=14e4eb96\"\nimport script from \"./Conditions.vue?vue&type=script&lang=js\"\nexport * from \"./Conditions.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, renderSlot as _renderSlot, resolveComponent as _resolveComponent, mergeProps as _mergeProps, withCtx as _withCtx, renderList as _renderList, createSlots as _createSlots, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ResourceTable = _resolveComponent(\"ResourceTable\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_ResourceTable, _mergeProps(_ctx.$attrs, {\n schema: _ctx.schema,\n rows: _ctx.rows,\n \"alt-loading\": _ctx.canPaginate && !_ctx.isFirstLoad,\n loading: _ctx.loading,\n groupable: _ctx.groupable,\n headers: _ctx.safeHeaders,\n namespaced: _ctx.namespaced,\n \"external-pagination-enabled\": _ctx.canPaginate,\n \"external-pagination-result\": _ctx.paginationResult,\n onPaginationChanged: _ctx.paginationChanged\n }), _createSlots({ _: 2 }, [\n _renderList(_ctx.$slots, (_, slot) => {\n return {\n name: slot,\n fn: _withCtx((scope) => [\n _renderSlot(_ctx.$slots, slot, _normalizeProps(_guardReactiveProps(scope)))\n ])\n }\n })\n ]), 1040, [\"schema\", \"rows\", \"alt-loading\", \"loading\", \"groupable\", \"headers\", \"namespaced\", \"external-pagination-enabled\", \"external-pagination-result\", \"onPaginationChanged\"])\n ]))\n}","<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport ResourceFetch from '@shell/mixins/resource-fetch';\nimport ResourceTable from '@shell/components/ResourceTable.vue';\n\n/**\n * This is meant to enable ResourceList like capabilities outside of List pages / components\n *\n * Specifically\n * - Resource Fetch features, including server-side pagination\n * - Some plumbing\n *\n * This avoids polluting the owning component with mixins\n *\n */\nexport default defineComponent({\n name: 'PaginatedResourceTable',\n\n components: { ResourceTable },\n\n mixins: [ResourceFetch],\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n\n headers: {\n type: Array,\n default: null,\n },\n\n paginationHeaders: {\n type: Array,\n default: null,\n },\n\n groupable: {\n type: Boolean,\n default: null, // Null: auto based on namespaced and type custom groupings\n },\n\n namespaced: {\n type: Boolean,\n default: null, // Automatic from schema\n },\n\n /**\n * Information may be required from resources other than the primary one shown per row\n *\n * This will fetch them ALL and will be run in a non-server-side pagination world\n *\n * of type PagTableFetchSecondaryResources\n */\n fetchSecondaryResources: {\n type: Function,\n default: null,\n },\n\n /**\n * Information may be required from resources other than the primary one shown per row\n *\n * This will fetch only those relevant to the current page using server-side pagination based filters\n *\n * called from shell/mixins/resource-fetch-api-pagination.js\n *\n * of type PagTableFetchPageSecondaryResources\n */\n fetchPageSecondaryResources: {\n type: Function,\n default: null,\n }\n },\n\n data() {\n return { resource: this.schema.id };\n },\n\n async fetch() {\n const promises = [\n this.$fetchType(this.resource, [], this.inStore),\n ];\n\n if (this.fetchSecondaryResources) {\n promises.push(this.fetchSecondaryResources({ canPaginate: this.canPaginate }));\n }\n\n await Promise.all(promises);\n },\n\n computed: {\n safeHeaders(): any[] {\n const customHeaders: any[] = this.canPaginate ? this.paginationHeaders : this.headers;\n\n return customHeaders || this.$store.getters['type-map/headersFor'](this.schema, this.canPaginate);\n }\n }\n});\n\n</script>\n\n<template>\n <div>\n <ResourceTable\n v-bind=\"$attrs\"\n :schema=\"schema\"\n :rows=\"rows\"\n :alt-loading=\"canPaginate && !isFirstLoad\"\n :loading=\"loading\"\n :groupable=\"groupable\"\n\n :headers=\"safeHeaders\"\n :namespaced=\"namespaced\"\n\n :external-pagination-enabled=\"canPaginate\"\n :external-pagination-result=\"paginationResult\"\n @pagination-changed=\"paginationChanged\"\n >\n <!-- Pass down templates provided by the caller -->\n <template\n v-for=\"(_, slot) of $slots\"\n v-slot:[slot]=\"scope\"\n :key=\"slot\"\n >\n <slot\n :name=\"slot\"\n v-bind=\"scope\"\n />\n </template>\n </ResourceTable>\n </div>\n</template>\n","import { render } from \"./PaginatedResourceTable.vue?vue&type=template&id=3c605941&ts=true\"\nimport script from \"./PaginatedResourceTable.vue?vue&type=script&lang=ts\"\nexport * from \"./PaginatedResourceTable.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { colorForState, stateDisplay } from '@shell/plugins/dashboard-store/resource-class';\nimport { NAME, NAMESPACE, STATE, TYPE } from '@shell/config/table-headers';\nimport { sortableNumericSuffix } from '@shell/utils/sort';\nimport { NAME as EXPLORER } from '@shell/config/product/explorer';\nimport { BadgeState } from '@components/BadgeState';\n\nexport default {\n components: { ResourceTable, BadgeState },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n rel: {\n type: String,\n default: null,\n },\n\n direction: {\n type: String,\n default: 'to'\n },\n\n ignoreTypes: {\n type: Array,\n default: () => []\n }\n },\n\n data() {\n return { loadedResources: 1 };\n },\n\n computed: {\n filteredRelationships() {\n let all = this.value?.metadata?.relationships || [];\n\n // @TODO probably will need more flexible filtering here for\n // related resources other than helm app resources...\n\n all = all.filter((relationship) => {\n const type = relationship[`${ this.direction }Type`];\n\n if (!type || this.ignoreTypes.includes(type)) {\n return false;\n }\n\n if (this.rel && relationship.rel !== this.rel) {\n return false;\n }\n\n return true;\n });\n\n return all;\n },\n\n rows() {\n if ( this.loadedResources < 1 ) {\n // This does nothing except force recompute when loaded resources change below\n return;\n }\n\n const cluster = this.$store.getters['clusterId'];\n const inStore = this.$store.getters['currentStore']();\n const out = [];\n\n for ( const r of this.filteredRelationships) {\n const state = r.state || 'active';\n const stateColor = colorForState(state, r.error, r.transitioning);\n const type = r[`${ this.direction }Type`];\n const schema = this.$store.getters[`${ inStore }/schemaFor`](type);\n\n let name = r[`${ this.direction }Id`];\n\n // Skip things like toType/toNamespace+selector for now\n if ( !name ) {\n continue;\n }\n\n let namespace = null;\n const idx = name.indexOf('/');\n const key = `${ type }/${ namespace }/${ name }`;\n\n if ( idx > 0 ) {\n namespace = name.substr(0, idx);\n name = name.substr(idx + 1);\n }\n\n const detailLocation = {\n name: `c-cluster-product-resource${ namespace ? '-namespace' : '' }-id`,\n params: {\n product: EXPLORER,\n cluster: inStore === 'management' ? 'local' : cluster,\n resource: type,\n namespace,\n id: name,\n }\n };\n\n out.push({\n type,\n real: this.$store.getters[`${ inStore }/byId`](type, r[`${ this.direction }Id`]),\n id: r[`${ this.direction }Id`],\n state,\n metadata: { namespace, name },\n _key: key,\n\n name,\n namespace,\n nameDisplay: name,\n nameSort: sortableNumericSuffix(name).toLowerCase(),\n\n stateColor,\n detailLocation,\n typeDisplay: this.$store.getters['type-map/labelFor'](schema),\n stateDisplay: stateDisplay(state),\n stateBackground: stateColor.replace('text-', 'bg-'),\n groupByLabel: namespace,\n });\n }\n\n return out;\n },\n\n headers() {\n return [\n STATE,\n TYPE,\n NAME,\n NAMESPACE,\n ];\n },\n },\n\n methods: {\n async getRealResources(rows) {\n const inStore = this.$store.getters['currentStore']();\n\n const res = await Promise.allSettled(rows.map((row) => {\n return this.$store.dispatch(`${ inStore }/find`, { type: row.type, id: row.id });\n }));\n\n const out = [];\n\n for ( let i = 0 ; i < res.length ; i++ ) {\n if ( res[i].status === 'fulfilled' ) {\n out.push(res[i].value);\n }\n }\n\n this.loadedResources++;\n\n return out;\n }\n },\n};\n</script>\n\n<template>\n <ResourceTable\n :schema=\"null\"\n :rows=\"rows\"\n :headers=\"headers\"\n :search=\"false\"\n :table-actions=\"false\"\n :namespaced=\"true\"\n :mangle-action-resources=\"getRealResources\"\n paging-label=\"sortableTable.paging.generic\"\n :groupable=\"false\"\n >\n <template #cell:state=\"{row}\">\n <BadgeState\n v-if=\"row.real\"\n :value=\"row.real\"\n />\n <BadgeState\n v-else\n :value=\"row\"\n />\n </template>\n </ResourceTable>\n</template>\n","import { render } from \"./RelatedResources.vue?vue&type=template&id=8ef6c89e\"\nimport script from \"./RelatedResources.vue?vue&type=script&lang=js\"\nexport * from \"./RelatedResources.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=9b3a03dc\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { parseSi, formatSi, UNITS, FRACTIONAL } from '@shell/utils/units';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { _EDIT } from '@shell/config/query-params';\n\nexport default {\n components: { LabeledInput },\n\n emits: ['update:value', 'update:validation', 'change', 'blur'],\n\n props: {\n /**\n * Convert output to string\n * Output will also be a string regardless of this prop if outputModifier = true\n */\n outputAs: {\n type: String,\n default: 'number',\n },\n\n /**\n * Append exponential modifier in output, eg \"123Mi\"\n * If this is false while inputExponent is true, the output val will be converted to base units\n * eg user is views in terms of MiB but integer values corresponding to B are actually emitted\n */\n outputModifier: {\n type: Boolean,\n default: false\n },\n\n /**\n * Set modifier on base unit - positive vals map to UNITS array, negative to FRACTIONAL\n * String input values with SI notation will be converted to this measurement unit,\n * eg \"1Gi\" will become \"1024Mi\" if this is set to 2\n * UNITS = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n * FRACTIONAL = ['', 'm', 'u', 'n', 'p', 'f', 'a', 'z', 'y'];\n */\n inputExponent: {\n type: Number,\n default: 0,\n },\n\n /**\n * Combines with inputExponent to make displayed unit.\n * Use 'suffix' if the input's units are strictly for display\n */\n baseUnit: {\n type: String,\n default: 'B',\n },\n\n /**\n * Hide arrows on number input when it overlaps with the unit\n */\n hideArrows: {\n type: Boolean,\n default: false\n },\n\n /**\n * If set to 1024, binary modifier will be used eg MiB instead of MB\n */\n increment: {\n type: Number,\n default: 1000,\n },\n\n /**\n * Ignore baseUnit and inputExponent in favor of a display-only suffix\n * display/emit integers without SI conversion\n */\n suffix: {\n type: String,\n default: null,\n },\n\n /**\n * LabeledInput props\n */\n mode: {\n type: String,\n default: _EDIT\n },\n\n value: {\n type: [Number, String],\n default: null\n },\n\n label: {\n type: String,\n default: null\n },\n\n labelKey: {\n type: String,\n default: null\n },\n\n tooltip: {\n type: [String, Object],\n default: null\n },\n\n tooltipKey: {\n type: String,\n default: null\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n min: {\n type: [Number, String],\n default: 0\n },\n\n placeholder: {\n type: [String, Number],\n default: ''\n },\n\n /**\n * Optionally delay on input while typing\n */\n delay: {\n type: Number,\n default: 0\n },\n\n positive: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n unit() {\n let out;\n\n if ( this.inputExponent >= 0 ) {\n out = UNITS[this.inputExponent];\n } else {\n out = FRACTIONAL[-1 * this.inputExponent];\n }\n if (this.increment === 1024 && out) {\n out += 'i';\n }\n\n return out;\n },\n\n /**\n * Parse string with unit modifier to base unit eg \"1m\" -> 0.001\n */\n parsedValue() {\n return typeof this.value === 'string' ? parseSi(this.value) : this.value;\n },\n\n /**\n * Convert integer value\n */\n displayValue() {\n let displayValue = '';\n\n if ( this.parsedValue || this.parsedValue === 0) {\n displayValue = formatSi(this.parsedValue, {\n increment: this.increment,\n addSuffix: false,\n maxExponent: this.inputExponent,\n minExponent: this.inputExponent,\n });\n }\n\n return displayValue ;\n },\n\n /**\n * Conditionally display value with unit or SI suffix\n */\n displayUnit() {\n if (this.suffix) {\n return this.suffix;\n }\n\n return this.unit + this.baseUnit;\n }\n },\n\n methods: {\n focus() {\n const comp = this.$refs.value;\n\n if (comp) {\n comp.focus();\n }\n },\n\n update(inputValue) {\n let out = inputValue === '' ? null : inputValue;\n\n if (this.positive && inputValue < 0) {\n out = 0;\n }\n\n if (this.outputModifier) {\n out = out === null ? null : `${ inputValue }${ this.unit }`;\n } else if ( this.outputAs === 'string' ) {\n out = out === null ? '' : `${ inputValue }`;\n } else if (out) {\n out = this.unit ? parseSi(`${ out }${ this.unit }`) : parseInt(out);\n }\n\n this.$emit('update:value', out);\n },\n }\n};\n</script>\n\n<template>\n <LabeledInput\n ref=\"value\"\n :value=\"displayValue\"\n v-bind=\"$attrs\"\n type=\"number\"\n :min=\"min\"\n :mode=\"mode\"\n :label=\"label\"\n :delay=\"delay\"\n :label-key=\"labelKey\"\n :tooltip=\"tooltip\"\n :tooltip-key=\"tooltipKey\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :hide-arrows=\"hideArrows\"\n @change=\"update($event.target.value)\"\n @blur=\"update($event.target.value)\"\n >\n <template #suffix>\n <div\n v-if=\"displayUnit\"\n class=\"addon\"\n :class=\"{'with-tooltip': tooltip || tooltipKey}\"\n >\n {{ displayUnit }}\n </div>\n </template>\n </LabeledInput>\n</template>\n\n<style lang=\"scss\" scoped>\n .addon.with-tooltip {\n position: relative;\n right: 30px;\n }\n</style>\n","import { render } from \"./UnitInput.vue?vue&type=template&id=de90d6f0&scoped=true\"\nimport script from \"./UnitInput.vue?vue&type=script&lang=js\"\nexport * from \"./UnitInput.vue?vue&type=script&lang=js\"\n\nimport \"./UnitInput.vue?vue&type=style&index=0&id=de90d6f0&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-de90d6f0\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".node-selector{position:relative}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".label[data-v-a3d99010]{display:flex;flex-direction:column}.label .value[data-v-a3d99010]{font-size:14px;line-height:18px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".label[data-v-357627fa]{display:flex;flex-direction:column}.label .value[data-v-357627fa]{font-size:14px;line-height:18px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".key-value{width:100%}.key-value .file-selector.role-link{text-transform:none;padding:0}.key-value .kv-container{display:grid;align-items:center;-moz-column-gap:20px;column-gap:20px}.key-value .kv-container label{margin-bottom:0}.key-value .kv-container .kv-item{width:100%;margin:10px 0 10px 0}.key-value .kv-container .kv-item.extra,.key-value .kv-container .kv-item.key{align-self:flex-start}.key-value .kv-container .kv-item.value .value-container.upload-button{position:relative;display:flex;justify-content:right;align-items:center}.key-value .kv-container .kv-item.value .value-container .file-selector{position:absolute;margin-right:5px}.key-value .kv-container .kv-item.value textarea{padding:10px 10px 10px 10px}.key-value .kv-container .kv-item .text-monospace:not(.conceal){font-family:monospace,monospace}.key-value .row,.key-value .rowgroup{display:grid;grid-column-start:1;grid-column-end:span end;grid-template-columns:subgrid}.key-value .row:before{display:none}.key-value .remove{text-align:center}.key-value .remove BUTTON{padding:0}.key-value .title{margin-bottom:10px}.key-value .title .read-from-file{float:right}.key-value input{height:40px;line-height:1}.key-value .footer .protip{float:right;padding:5px 0}.key-value .download{text-align:right}.key-value .copy-value{padding:0 0 0 10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".labels__header[data-v-680c438c]{display:flex;justify-content:space-between}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".operator .vs__dropdown-option[data-v-023836b7]{padding:3px 6px 3px 6px!important}.remove-expression[data-v-023836b7]{padding:8px;position:absolute;margin-bottom:10px;right:0;top:0;z-index:2}.remove-expression i[data-v-023836b7]{font-size:2em}.remove-container[data-v-023836b7]{display:flex;justify-content:center}.match-expression-header[data-v-023836b7],.match-expression-row[data-v-023836b7]{display:grid;grid-template-columns:1fr 1fr 1fr;margin:5px 0;grid-gap:1.75%}.match-expression-header>LABEL[data-v-023836b7],.match-expression-row>LABEL[data-v-023836b7]{margin:0}.match-expression-header[data-v-023836b7]:not(.view),.match-expression-row[data-v-023836b7]:not(.view){grid-template-columns:repeat(3,1fr) 50px}.match-expression-row>div>input[data-v-023836b7]{min-height:40px!important}.match-expression-header-matching[data-v-023836b7],.match-expression-row-matching[data-v-023836b7]{grid-template-columns:1fr 1fr 1fr 1fr}.match-expression-header-matching[data-v-023836b7]:not(.view),.match-expression-row-matching[data-v-023836b7]:not(.view){grid-template-columns:1fr 1fr 1fr 1fr 100px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".password[data-v-3366c7ce]{display:flex;flex-direction:column}.password .labeled-input .addon[data-v-3366c7ce]{padding-left:12px;min-width:65px}.password .labeled-input .addon .hide-show[data-v-3366c7ce]:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:4px}.password .genPassword[data-v-3366c7ce]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".addon.with-tooltip[data-v-de90d6f0]{position:relative;right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".toggle-container[data-v-0f4adcf7]{align-items:center;display:flex}.toggle-container span[data-v-0f4adcf7]:first-child{padding-right:6px}.toggle-container span[data-v-0f4adcf7]:last-child{padding-left:6px}.switch[data-v-0f4adcf7]{position:relative;display:inline-block;width:48px;height:24px}.switch input[data-v-0f4adcf7]{opacity:0;width:0;height:0}.slider[data-v-0f4adcf7]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--checkbox-disabled-bg);transition:.4s}.slider.focus[data-v-0f4adcf7]{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px;transition:0s}.slider[data-v-0f4adcf7]:before{position:absolute;content:\\\"\\\";height:16px;width:16px;left:4px;bottom:4px;background-color:var(--checkbox-tick);transition:.4s}input:checked+.slider[data-v-0f4adcf7]{background-color:var(--checkbox-ticked-bg)}input:focus+.slider[data-v-0f4adcf7]{box-shadow:0 0 1px var(--checkbox-ticked-bg)}input:checked+.slider[data-v-0f4adcf7]:before{transform:translateX(24px)}.slider.round[data-v-0f4adcf7]{border-radius:34px}.slider.round[data-v-0f4adcf7]:before{border-radius:50%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export const SECRET_TYPES = {\n OPAQUE: 'Opaque',\n SERVICE_ACCT: 'kubernetes.io/service-account-token',\n DOCKER_JSON: 'kubernetes.io/dockerconfigjson',\n BASIC: 'kubernetes.io/basic-auth',\n SSH: 'kubernetes.io/ssh-auth',\n TLS: 'kubernetes.io/tls',\n BOOTSTRAP: 'bootstrap.kubernetes.io/token',\n ISTIO_TLS: 'istio.io/key-and-cert',\n HELM_RELEASE: 'helm.sh/release.v1',\n FLEET_CLUSTER: 'fleet.cattle.io/cluster-registration-values',\n CLOUD_CREDENTIAL: 'provisioning.cattle.io/cloud-credential',\n RKE_AUTH_CONFIG: 'rke.cattle.io/auth-config'\n};\n","/*!\n * vue-draggable-next v2.2.0\n * (c) 2023 Anish George\n * @license MIT\n */\nimport { defineComponent, h, resolveComponent } from 'vue';\n\n/**!\n * Sortable 1.14.0\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar version = \"1.14.0\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\n */\n\n\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\n * @return {Number} The index of the object in the array, or -1\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n } // Safari ignores further event handling after mousedown\n\n\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // if there is a last element, it is the target\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n\n if (firstChild === dragEl) {\n return completed(false);\n }\n\n target = firstChild;\n targetRect = getRect(target);\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var rect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var spacer = 10;\n return vertical ? evt.clientX < rect.left - spacer || evt.clientY < rect.top && evt.clientX < rect.right : evt.clientY < rect.top - spacer || evt.clientY < rect.bottom && evt.clientX < rect.left;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nfunction getConsole() {\r\n if (typeof window !== 'undefined') {\r\n return window.console;\r\n }\r\n return global.console;\r\n}\r\nconst console = getConsole();\r\nfunction cached(fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn(str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n };\r\n}\r\nconst regex = /-(\\w)/g;\r\nconst camelize = cached((str) => str.replace(regex, (_, c) => (c ? c.toUpperCase() : '')));\r\nfunction removeNode(node) {\r\n if (node.parentElement !== null) {\r\n node.parentElement.removeChild(node);\r\n }\r\n}\r\nfunction insertNodeAt(fatherNode, node, position) {\r\n const refNode = position === 0\r\n ? fatherNode.children[0]\r\n : fatherNode.children[position - 1].nextSibling;\r\n fatherNode.insertBefore(node, refNode);\r\n}\n\nfunction computeVmIndex(vnodes, element) {\r\n return Object.values(vnodes).indexOf(element);\r\n}\r\nfunction computeIndexes(slots, children, isTransition, footerOffset) {\r\n if (!slots) {\r\n return [];\r\n }\r\n const elmFromNodes = Object.values(slots);\r\n const footerIndex = children.length - footerOffset;\r\n const rawIndexes = [...children].map((elt, idx) => idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt));\r\n return rawIndexes;\r\n}\r\nfunction emit(evtName, evtData) {\r\n //@ts-ignore\r\n this.$nextTick(() => this.$emit(evtName.toLowerCase(), evtData));\r\n}\r\nfunction delegateAndEmit(evtName) {\r\n //@ts-ignore\r\n return evtData => {\r\n //@ts-ignore\r\n if (this.realList !== null) {\r\n //@ts-ignore\r\n this['onDrag' + evtName](evtData);\r\n }\r\n //@ts-ignore\r\n emit.call(this, evtName, evtData);\r\n };\r\n}\r\nfunction isTransitionName(name) {\r\n return ['transition-group', 'TransitionGroup'].includes(name);\r\n}\r\nfunction isTransition(slots) {\r\n if (!slots || slots.length !== 1) {\r\n return false;\r\n }\r\n // @ts-ignore\r\n const [{ type }] = slots;\r\n if (!type) {\r\n return false;\r\n }\r\n //@ts-ignore\r\n return isTransitionName(type.name);\r\n}\r\nfunction getComponentAttributes($attrs, componentData) {\r\n if (!componentData) {\r\n return $attrs;\r\n }\r\n return { ...componentData.props, ...componentData.attrs };\r\n}\r\nconst eventsListened = ['Start', 'Add', 'Remove', 'Update', 'End'];\r\nconst eventsToEmit = ['Choose', 'Unchoose', 'Sort', 'Filter', 'Clone'];\r\nconst readonlyProperties = ['Move', ...eventsListened, ...eventsToEmit].map(evt => 'on' + evt);\r\n// @ts-ignore\r\nlet draggingElement = null;\r\nconst props = {\r\n options: Object,\r\n list: {\r\n type: Array,\r\n required: false,\r\n default: null,\r\n },\r\n noTransitionOnDrag: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n clone: {\r\n type: Function,\r\n default: (original) => {\r\n return original;\r\n },\r\n },\r\n tag: {\r\n type: String,\r\n default: 'div',\r\n },\r\n move: {\r\n type: Function,\r\n default: null,\r\n },\r\n componentData: {\r\n type: Object,\r\n required: false,\r\n default: null,\r\n },\r\n component: {\r\n type: String,\r\n default: null,\r\n },\r\n modelValue: {\r\n type: Array,\r\n required: false,\r\n default: null,\r\n },\r\n};\r\nconst VueDraggableNext = defineComponent({\r\n name: 'VueDraggableNext',\r\n inheritAttrs: false,\r\n emits: [\r\n 'update:modelValue',\r\n 'move',\r\n 'change',\r\n ...eventsListened.map(s => s.toLowerCase()),\r\n ...eventsToEmit.map(s => s.toLowerCase()),\r\n ],\r\n props,\r\n data() {\r\n return {\r\n transitionMode: false,\r\n noneFunctionalComponentMode: false,\r\n headerOffset: 0,\r\n footerOffset: 0,\r\n _sortable: {},\r\n visibleIndexes: [],\r\n context: {},\r\n };\r\n },\r\n render() {\r\n const slots = this.$slots.default ? this.$slots.default() : null;\r\n const attrs = getComponentAttributes(this.$attrs, this.componentData);\r\n if (!slots)\r\n return h(this.getTag(), attrs, []);\r\n this.transitionMode = isTransition(slots);\r\n return h(this.getTag(), attrs, slots);\r\n },\r\n created() {\r\n if (this.list !== null && this.modelValue !== null) {\r\n console.error('list props are mutually exclusive! Please set one.');\r\n }\r\n },\r\n mounted() {\r\n const optionsAdded = {};\r\n eventsListened.forEach(elt => {\r\n optionsAdded['on' + elt] = delegateAndEmit.call(this, elt);\r\n });\r\n eventsToEmit.forEach(elt => {\r\n optionsAdded['on' + elt] = emit.bind(this, elt);\r\n });\r\n const attributes = Object.keys(this.$attrs).reduce((res, key) => {\r\n res[camelize(key)] = this.$attrs[key];\r\n return res;\r\n }, {});\r\n const options = Object.assign({}, attributes, optionsAdded, {\r\n onMove: (evt, originalEvent) => {\r\n return this.onDragMove(evt, originalEvent);\r\n },\r\n });\r\n !('draggable' in options) && (options.draggable = '>*');\r\n const targetDomElement = this.$el.nodeType === 1 ? this.$el : this.$el.parentElement;\r\n this._sortable = new Sortable(targetDomElement, options);\r\n targetDomElement.__draggable_component__ = this;\r\n this.computeIndexes();\r\n },\r\n beforeUnmount() {\r\n try {\r\n if (this._sortable !== undefined)\r\n this._sortable.destroy();\r\n }\r\n catch (error) { }\r\n },\r\n computed: {\r\n realList() {\r\n return this.list ? this.list : this.modelValue;\r\n },\r\n },\r\n watch: {\r\n $attrs: {\r\n handler(newOptionValue) {\r\n this.updateOptions(newOptionValue);\r\n },\r\n deep: true,\r\n },\r\n realList() {\r\n this.computeIndexes();\r\n },\r\n },\r\n methods: {\r\n getTag() {\r\n return this.component ? resolveComponent(this.component) : this.tag;\r\n },\r\n updateOptions(newOptionValue) {\r\n for (var property in newOptionValue) {\r\n const value = camelize(property);\r\n if (readonlyProperties.indexOf(value) === -1) {\r\n this._sortable.option(value, newOptionValue[property]);\r\n }\r\n }\r\n },\r\n getChildrenNodes() {\r\n return this.$el.children;\r\n },\r\n computeIndexes() {\r\n this.$nextTick(() => {\r\n this.visibleIndexes = computeIndexes(this.getChildrenNodes(), this.$el.children, this.transitionMode, this.footerOffset);\r\n });\r\n },\r\n getUnderlyingVm(htmlElt) {\r\n const index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\r\n if (index === -1) {\r\n //Edge case during move callback: related element might be\r\n //an element different from collection\r\n return null;\r\n }\r\n //@ts-ignore\r\n const element = this.realList[index];\r\n return { index, element };\r\n },\r\n emitChanges(evt) {\r\n this.$nextTick(() => {\r\n this.$emit('change', evt);\r\n });\r\n },\r\n alterList(onList) {\r\n if (this.list) {\r\n onList(this.list);\r\n return;\r\n }\r\n const newList = [...this.modelValue];\r\n onList(newList);\r\n this.$emit('update:modelValue', newList);\r\n },\r\n spliceList() {\r\n const spliceList = (list) => list.splice(...arguments);\r\n this.alterList(spliceList);\r\n },\r\n updatePosition(oldIndex, newIndex) {\r\n const updatePosition = (list) => list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\r\n this.alterList(updatePosition);\r\n },\r\n getVmIndex(domIndex) {\r\n const indexes = this.visibleIndexes;\r\n const numberIndexes = indexes.length;\r\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\r\n },\r\n getComponent() {\r\n return this.$slots.default\r\n ? //@ts-ignore\r\n this.$slots.default()[0].componentInstance\r\n : null;\r\n },\r\n resetTransitionData(index) {\r\n if (!this.noTransitionOnDrag || !this.transitionMode) {\r\n return;\r\n }\r\n var nodes = this.getChildrenNodes();\r\n nodes[index].data = null;\r\n const transitionContainer = this.getComponent();\r\n transitionContainer.children = [];\r\n transitionContainer.kept = undefined;\r\n },\r\n onDragStart(evt) {\r\n this.computeIndexes();\r\n this.context = this.getUnderlyingVm(evt.item);\r\n if (!this.context)\r\n return;\r\n evt.item._underlying_vm_ = this.clone(this.context.element);\r\n draggingElement = evt.item;\r\n },\r\n onDragAdd(evt) {\r\n const element = evt.item._underlying_vm_;\r\n if (element === undefined) {\r\n return;\r\n }\r\n removeNode(evt.item);\r\n const newIndex = this.getVmIndex(evt.newIndex);\r\n //@ts-ignore\r\n this.spliceList(newIndex, 0, element);\r\n this.computeIndexes();\r\n const added = { element, newIndex };\r\n this.emitChanges({ added });\r\n },\r\n onDragRemove(evt) {\r\n insertNodeAt(this.$el, evt.item, evt.oldIndex);\r\n if (evt.pullMode === 'clone') {\r\n removeNode(evt.clone);\r\n return;\r\n }\r\n if (!this.context)\r\n return;\r\n const oldIndex = this.context.index;\r\n //@ts-ignore\r\n this.spliceList(oldIndex, 1);\r\n const removed = { element: this.context.element, oldIndex };\r\n this.resetTransitionData(oldIndex);\r\n this.emitChanges({ removed });\r\n },\r\n onDragUpdate(evt) {\r\n removeNode(evt.item);\r\n insertNodeAt(evt.from, evt.item, evt.oldIndex);\r\n //@ts-ignore\r\n const oldIndex = this.context.index;\r\n const newIndex = this.getVmIndex(evt.newIndex);\r\n this.updatePosition(oldIndex, newIndex);\r\n //@ts-ignore\r\n const moved = { element: this.context.element, oldIndex, newIndex };\r\n this.emitChanges({ moved });\r\n },\r\n updateProperty(evt, propertyName) {\r\n evt.hasOwnProperty(propertyName) &&\r\n (evt[propertyName] += this.headerOffset);\r\n },\r\n onDragMove(evt, originalEvent) {\r\n const onMove = this.move;\r\n if (!onMove || !this.realList) {\r\n return true;\r\n }\r\n const relatedContext = this.getRelatedContextFromMoveEvent(evt);\r\n const draggedContext = this.context;\r\n const futureIndex = this.computeFutureIndex(relatedContext, evt);\r\n Object.assign(draggedContext, { futureIndex });\r\n const sendEvt = Object.assign({}, evt, {\r\n relatedContext,\r\n draggedContext,\r\n });\r\n return onMove(sendEvt, originalEvent);\r\n },\r\n onDragEnd() {\r\n this.computeIndexes();\r\n draggingElement = null;\r\n },\r\n getTrargetedComponent(htmElement) {\r\n return htmElement.__draggable_component__;\r\n },\r\n getRelatedContextFromMoveEvent({ to, related }) {\r\n const component = this.getTrargetedComponent(to);\r\n if (!component) {\r\n return { component };\r\n }\r\n const list = component.realList;\r\n const context = { list, component };\r\n if (to !== related && list && component.getUnderlyingVm) {\r\n const destination = component.getUnderlyingVm(related);\r\n if (destination) {\r\n return Object.assign(destination, context);\r\n }\r\n }\r\n return context;\r\n },\r\n computeFutureIndex(relatedContext, evt) {\r\n const domChildren = [...evt.to.children].filter(el => el.style['display'] !== 'none');\r\n if (domChildren.length === 0)\r\n return 0;\r\n const currentDOMIndex = domChildren.indexOf(evt.related);\r\n const currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\r\n const draggedInList = domChildren.indexOf(draggingElement) !== -1;\r\n return draggedInList || !evt.willInsertAfter\r\n ? currentIndex\r\n : currentIndex + 1;\r\n },\r\n },\r\n});\n\nexport { VueDraggableNext };\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[3]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./PodAffinity.vue?vue&type=style&index=0&id=e5f4433c&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4ba94651\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./InputOrDisplay.vue?vue&type=style&index=0&id=a3d99010&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a1c3e378\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./LabelValue.vue?vue&type=style&index=0&id=357627fa&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0b86ac08\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./KeyValue.vue?vue&type=style&index=0&id=41c6a53a&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"84f74820\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Labels.vue?vue&type=style&index=0&id=680c438c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2f431e88\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./MatchExpressions.vue?vue&type=style&index=0&id=023836b7&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3af37976\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Password.vue?vue&type=style&index=0&id=3366c7ce&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"727495c9\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./UnitInput.vue?vue&type=style&index=0&id=de90d6f0&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"193727f5\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ToggleSwitch.vue?vue&type=style&index=0&id=0f4adcf7&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"24bba31a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["key","class","$options","isView","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_renderSlot","_ctx","$slots","_createTextVNode","_toDisplayString","$props","name","_hoisted_3","displayValue","undefined","props","type","String","required","value","Number","Array","default","mode","computed","this","_VIEW","isArray","length","__exports__","render","role","title","titleProtip","_createCommentVNode","$data","rows","extraColumns","style","_normalizeStyle","containerStyle","_hoisted_5","_hoisted_6","_hoisted_7","_keyLabel","_protip","addAllowed","_hoisted_8","_hoisted_9","_valueLabel","_Fragment","_renderList","c","i","canRemove","_hoisted_10","_cache","filteredRows","row","_hoisted_11","keyName","valueName","queueUpdate","disabled","keyOptions","_createBlock","_component_Select","ref_for","ref","$event","searchable","isProtected","clearable","taggable","keyTaggable","options","calculateOptions","t","index","keyEditable","placeholder","_keyPlaceholder","onInput","args","onPaste","_hoisted_13","_hoisted_12","supported","binary","_hoisted_16","binaryTextSize","_normalizeClass","parseValueFromFile","valueMarkdownMultiline","_component_CodeMirror","codeMirrorFocus","onOnInput","onInputMarkdownMultiline","onOnFocus","onFocusMarkdownMultiline","valueMultiline","_component_TextAreaAutoGrow","valueConcealed","_valuePlaceholder","spellcheck","autocorrect","autocapitalize","_hoisted_17","readAllowed","isValueFieldEmpty","_component_FileSelector","label","onSelected","onValueFileSelected","_hoisted_15","_hoisted_14","j","_hoisted_18","remove","removeLabel","onClick","_hoisted_20","_hoisted_19","_hoisted_4","_hoisted_21","add","loading","filteredKeyOptions","_addLabel","_hoisted_23","_hoisted_22","onFileSelected","emits","components","CodeMirror","Select","TextAreaAutoGrow","FileSelector","Object","defaultValue","binaryValueKeys","_EDIT","asMap","Boolean","initialEmptyRow","protip","keyLabel","keyOptionUnique","keyPlaceholder","protectedKeys","toggleFilter","separatorLabel","valueLabel","valuePlaceholder","valueCanBeEmpty","displayValuesAsBinary","valueTrim","handleBase64","Function","v","preserveKeys","defaultAddData","addLabel","addIcon","readIcon","readAccept","readMultiple","removeIcon","removeAllowed","fileModifier","parserSeparators","parseLinesFromFile","data","getRows","lastUpdated","gap","size","usedKeyOptions","map","filter","option","includes","created","debounce","update","watch","deep","handler","neu","old","valuePropChanged","methods","isEqual","input","keys","forEach","decodedValue","base64Decode","asciiValue","asciiLike","push","canEncode","entry","k","obj","$nextTick","$refs","lastKey","focus","$emit","idx","removeAt","removeEmptyRows","cleaned","file","lines","split","line","download","ev","downloadFile","out","trim","typeOf","JSON","parse","stringify","base64Encode","removeObject","event","text","clipboardData","getData","splits","splitter","find","sep","preventDefault","keyValues","splice","valueOption","o","val","handledValue","n","binarySize","get","containerClass","defaultSectionClass","showLabelTitle","_createVNode","_component_t","hasSystemLabels","_component_ToggleSwitch","toggler","columnsClass","_component_KeyValue","labels","systemLabels","setLabels","showAnnotations","sectionClass","annotations","systemAnnotations","annotationTitleTooltip","setAnnotations","$setup","_openBlock","active","state","toggle","offLabel","checked","onLabel","onKeydown","_withKeys","defineComponent","offValue","onValue","setup","switchChrome","useTemplateRef","classList","blur","switchInput","onMounted","addEventListener","onBeforeUnmount","removeEventListener","immediate","ToggleSwitch","KeyValue","displaySideBySide","defaultContainerClass","labelTitleTooltip","showRemove","rules","matchingSelectorDisplay","matching","_component_LabeledSelect","matchingSelectOptions","onSelecting","hasKeySelectOptions","keysSelectOptions","operator","ops","reduce","opt","values","showRemoveButton","padding","removeRule","showAddButton","addRule","LabeledSelect","NODE","$store","getters","podOptions","nodeOptions","rulesByType","matchFields","matchExpressions","parseRules","convert","matchLabels","newRule","custom","node","pod","POD","mapGetters","rule","clone","join","expression","x","simplify","_component_RadioGroup","selectNode","selectNodeOptions","nodeName","nodes","multiple","_component_NodeAffinity","nodeAffinity","_component_ArrayListGrouped","allSelectorTerms","onRemove","_withCtx","affinityOptions","priorityDisplay","changePriority","_component_LabeledInput","weight","valueModifiers","number","min","max","_component_MatchExpressions","updateExpressions","_","ArrayListGrouped","MatchExpressions","LabeledInput","nodeSelectorTerms","preferredDuringSchedulingIgnoredDuringExecution","requiredDuringSchedulingIgnoredDuringExecution","term","_id","randomStr","preference","assign","weightedNodeSelectorTerms","defaultWeight","rerenderNums","hasWeighted","field","expressions","expressionsMatching","isEmpty","RadioGroup","NodeAffinity","isHarvester","inStore","VIRTUAL","affinity","nodeSelector","HOSTNAME","prefix","array","dispatch","message","root","_mergeProps","password","attributes","isRandom","reveal","readonly","ignorePasswordManagers","onBlur","suffix","href","_withModifiers","copyTextToClipboard","tabindex","hideShowFn","onKeyup","hideShowLabel","generatePassword","autocomplete","_CREATE","set","id","CHARSET","ALPHA_NUM","show","defaultAddValue","_anti","namespaceSelectionOptions","namespaceSelectionLabels","_namespaceOption","changeNamespaceMode","NAMESPACE_SELECTION_OPTION_VALUES","SELECTED","hasNamespaces","forceInputNamespaceSelection","namespaces","updateNamespaces","allNamespacesOptions","labeledInputNamespaceLabel","_namespaces","e","updateLabelSelector","hasNodes","topologyKey","topologyKeyPlaceholder","existingNodeLabels","ALL","allNamespacesOptionAvailable","removeLabeledInputNamespaceLabel","overwriteLabels","podAffinity","podAntiAffinity","allAffinityTerms","podAffinityTerm","parsePodAffinityTerm","allAntiTerms","namespaceInputLabel","NAMESPACE","choices","sortBy","nameDisplay","getUniqueLabelKeys","namespaceSelector","toString","nsArray","ns","_component_Tabbed","$attrs","defaultTab","onChanged","tabChange","showConditions","_component_Tab","conditionsHaveIssues","_component_Conditions","showEvents","selectedTab","_component_PaginatedResourceTable","schema","eventSchema","filterEventsLocal","filterEventsApi","headers","eventHeaders","paginationHeaders","namespaced","showRelated","_component_RelatedResources","direction","_component_SortableTable","search","error","condition","status","SortableTable","labelKey","width","sort","dashIfEmpty","formatter","formatterOpts","addSuffix","conditions","cond","reason","time","lastProbeTime","lastUpdateTime","lastTransitionTime","_component_ResourceTable","_resolveComponent","canPaginate","isFirstLoad","groupable","safeHeaders","paginationResult","onPaginationChanged","paginationChanged","_createSlots","slot","fn","scope","_normalizeProps","_guardReactiveProps","ResourceTable","mixins","ResourceFetch","fetchSecondaryResources","fetchPageSecondaryResources","resource","fetch","promises","$fetchType","Promise","all","customHeaders","getRealResources","real","_component_BadgeState","BadgeState","rel","ignoreTypes","loadedResources","filteredRelationships","metadata","relationships","relationship","cluster","r","stateColor","colorForState","transitioning","namespace","indexOf","substr","detailLocation","params","product","EXPLORER","_key","nameSort","sortableNumericSuffix","toLowerCase","typeDisplay","stateDisplay","stateBackground","replace","groupByLabel","STATE","TYPE","NAME","res","allSettled","Tabbed","Tab","Conditions","PaginatedResourceTable","RelatedResources","CreateEditView","needConditions","needEvents","needRelated","extensionParams","EVENT","STEVE_EVENT_LAST_SEEN","STEVE_EVENT_TYPE","REASON","headerFromSchemaColString","MESSAGE","STEVE_NAME_COL","beforeUnmount","setShowConditions","isConditionReadyAndWaiting","some","selectedName","fetchResourceFields","involvedObject","uid","pagination","filters","existing","fields","f","PaginationParamFilter","createSingleField","exact","equals","delay","tooltip","tooltipKey","hideArrows","onChange","target","displayUnit","outputAs","outputModifier","inputExponent","baseUnit","increment","positive","unit","UNITS","FRACTIONAL","parsedValue","parseSi","formatSi","maxExponent","minExponent","comp","inputValue","parseInt","___CSS_LOADER_EXPORT___","module","SECRET_TYPES","OPAQUE","SERVICE_ACCT","DOCKER_JSON","BASIC","SSH","TLS","BOOTSTRAP","ISTIO_TLS","HELM_RELEASE","FLEET_CLUSTER","CLOUD_CREDENTIAL","RKE_AUTH_CONFIG","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread2","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","Symbol","iterator","constructor","prototype","configurable","writable","_extends","hasOwnProperty","call","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","version","userAgent","pattern","window","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","on","el","off","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","className","css","prop","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","tagName","list","getElementsByTagName","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","innerHeight","innerWidth","containerRect","elMatrix","scaleX","a","scaleY","d","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","visible","getChild","childNum","includeDragEl","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","toUpperCase","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","indexOfObject","arr","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","extend","dst","src","isRectEqual","rect1","rect2","Math","round","throttle","callback","ms","_this","setTimeout","cancelThrottle","clearTimeout","scrollBy","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","Date","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","slice","child","rect","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","forRepaintDummy","repaint","easing","animated","offsetWidth","sqrt","pow","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","p","pluginName","concat","pluginEvent","eventName","sortable","evt","eventCanceled","cancel","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","allEventProperties","_excluded","bind","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","createElement","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","clear","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","ret","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsFirst","spacer","_ghostIsLast","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","str","sum","charCodeAt","_saveInputCheckedState","inputs","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","dx","dy","b","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","changed","firstChild","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","toArray","order","getAttribute","useAnimation","items","destroy","querySelectorAll","removeAttribute","utils","is","nextTick","cancelNextTick","detectDirection","element","_len","create","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","AutoScrollPlugin","AutoScroll","scroll","forceAutoScrollFallback","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","_ref2","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","getConsole","console","g","startIndex","dragStart","_ref3","_ref4","parentSortable","cached","cache","hit","regex","camelize","removeNode","parentElement","insertNodeAt","fatherNode","position","refNode","computeVmIndex","vnodes","computeIndexes","slots","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","elt","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","getComponentAttributes","componentData","attrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","noTransitionOnDrag","original","tag","move","component","modelValue","VueDraggableNext","inheritAttrs","s","transitionMode","noneFunctionalComponentMode","headerOffset","_sortable","visibleIndexes","context","h","getTag","mounted","optionsAdded","onDragMove","targetDomElement","$el","__draggable_component__","newOptionValue","updateOptions","resolveComponent","property","getChildrenNodes","getUnderlyingVm","htmlElt","emitChanges","alterList","onList","newList","spliceList","updatePosition","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","relatedContext","getRelatedContextFromMoveEvent","draggedContext","futureIndex","computeFutureIndex","sendEvt","onDragEnd","getTrargetedComponent","htmElement","destination","domChildren","currentDOMIndex","currentIndex","draggedInList","content","__esModule","locals","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.530.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.530.js new file mode 100644 index 00000000..011aea36 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.530.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[530],{12243:function(e,t,a){"use strict";a.d(t,{A:function(){return v}});var r=a(9274);const o={class:"percentage-bar"},s={key:0,class:"ml-5 percentage-value"};function n(e,t,a,n,l,c){const i=(0,r.resolveComponent)("Bar");return(0,r.openBlock)(),(0,r.createElementBlock)("span",o,[(0,r.createVNode)(i,{percentage:a.modelValue,"primary-color":c.primaryColor,slices:a.slices},null,8,["percentage","primary-color","slices"]),a.showPercentage?((0,r.openBlock)(),(0,r.createElementBlock)("span",s,(0,r.toDisplayString)(c.formattedPercentage),1)):(0,r.createCommentVNode)("",!0)])}function l(e,t,a,o,s,n){return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:"bar",style:(0,r.normalizeStyle)(n.barStyle)},[(0,r.createElementVNode)("div",{class:"indicator",style:(0,r.normalizeStyle)(n.indicatorStyle)},null,4),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(n.sliceStyles,((e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:t,class:"slice",style:(0,r.normalizeStyle)(e)},null,4)))),128))],4)}var c={props:{percentage:{type:Number,required:!0},primaryColor:{type:String,default:"--primary"},secondaryColor:{type:String,default:"--border"},slices:{type:Array,default:()=>[]}},computed:{indicatorStyle(){return{width:`${this.percentage}%`,backgroundColor:`var(${this.primaryColor})`}},barStyle(){return{backgroundColor:`var(${this.secondaryColor})`}},sliceStyles(){return this.slices.map((e=>({left:`${e}%`,visibility:e<this.percentage?"visible":"hidden"})))}}},i=(a(54752),a(47433));const d=(0,i.A)(c,[["render",l],["__scopeId","data-v-b4f4e2ae"]]);var p=d,u=a(92043);const g={LESS:"LESS",MORE:"MORE"};var m={components:{Bar:p},props:{modelValue:{type:Number,required:!0,validator(e){return e>=0}},preferredDirection:{type:String,default:g.LESS},showPercentage:{type:Boolean,default:!1},colorStops:{type:Object,default:null},slices:{type:Array,default:()=>[]}},computed:{primaryColor(){const e=this.preferredDirection===g.LESS;if(this.colorStops){const t=Object.keys(this.colorStops).sort();if(e){let e=t.length-1;while(this.modelValue<t[e])e--;return this.colorStops[t[e]]}{let e=0;while(this.modelValue>t[e])e++;return this.colorStops[t[e]]}}const t=e?80:20,a=e?this.modelValue:t,r=e?t:this.modelValue;return a<=r?"--primary":"--error"},formattedPercentage(){return(0,u.l9)(this.modelValue)}}};a(70738);const h=(0,i.A)(m,[["render",n],["__scopeId","data-v-4ade54a6"]]);var v=h},74562:function(e,t,a){"use strict";a.d(t,{A:function(){return p}});var r=a(9274);const o={key:0};function s(e,t,a,s,n,l){const c=(0,r.resolveComponent)("BadgeState");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[a.arbitrary?((0,r.openBlock)(),(0,r.createElementBlock)("div",o,[a.value?((0,r.openBlock)(),(0,r.createBlock)(c,{key:0,color:n.stateBackground,label:n.stateDisplay},null,8,["color","label"])):(0,r.createCommentVNode)("",!0)])):((0,r.openBlock)(),(0,r.createBlock)(c,{key:1,value:a.row},null,8,["value"]))])}var n=a(87102),l=a(73883),c={components:{BadgeState:n.j},props:{value:{type:String,default:""},row:{type:Object,required:!0},col:{type:Object,default:()=>{}},arbitrary:{type:Boolean,default:!1}},data(){return{stateDisplay:"",stateBackground:""}},watch:{value:{handler(){if(this.arbitrary){const e=(0,l.uU)(this.value);this.stateDisplay=(0,l.ch)(this.value),this.stateBackground=e.replace("text-","bg-")}},immediate:!0}}},i=a(47433);const d=(0,i.A)(c,[["render",s]]);var p=d},61530:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return ve}});var r=a(9274);const o={key:0,class:"upgrade"},s={class:"upgrade-info mb-10"},n={key:0,class:"repoInfo"},l={class:"row"},c={class:"col span-12"},i=["href"],d={key:0,class:"row mb-5"},p={class:"col span-12"},u={class:"state"},g={key:1,class:"row mb-5"},m={class:"col span-12"},h={class:"state"},v={class:"error ml-5"},f={class:"row mb-5"},y={class:"col span-6"},k={class:"text-muted"},b={class:"col span-6"},E={class:"text-muted"},V={class:"row mb-5"},S={class:"col span-6"},N={class:"text-muted"},w={class:"col span-6"},B={class:"text-muted"},x={class:"row mb-5"},R={class:"col span-6"},D={class:"text-muted"},C={class:"col span-6"},A={class:"text-muted"},P={key:1,class:"text-warning mb-20"},M={key:2},L={class:"float-r text-info"},I={class:"text-warning"},_={class:"float-r text-info"},U={key:3,class:"text-warning"},$={class:"footer"},G=["disabled"];function F(e,t,a,F,T,O){const z=(0,r.resolveComponent)("BadgeStateFormatter"),j=(0,r.resolveComponent)("PercentageBar"),q=(0,r.resolveComponent)("ProgressBarList"),H=(0,r.resolveComponent)("v-dropdown"),W=(0,r.resolveDirective)("clean-tooltip");return O.enabled&&O.isShow?((0,r.openBlock)(),(0,r.createElementBlock)("div",o,[(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createBlock)(H,{class:"hand"},{popper:(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",s,[O.repoInfo?((0,r.openBlock)(),(0,r.createElementBlock)("div",n,[(0,r.createElementVNode)("div",l,[(0,r.createElementVNode)("div",c,[(0,r.createElementVNode)("a",{href:O.releaseLink,target:"_blank"},(0,r.toDisplayString)(O.upgradeVersion),9,i)])]),O.latestResource?((0,r.openBlock)(),(0,r.createElementBlock)("div",d,[(0,r.createElementVNode)("div",p,[(0,r.createElementVNode)("p",u,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.repoInfo.upgradeStatus"))+": ",1),(0,r.createVNode)(z,{class:"ml-5",row:O.latestResource},null,8,["row"])])])])):(0,r.createCommentVNode)("",!0),O.downloadLogFailReason?((0,r.openBlock)(),(0,r.createElementBlock)("div",g,[(0,r.createElementVNode)("div",m,[(0,r.createElementVNode)("p",h,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.repoInfo.logStatus"))+": ",1),(0,r.createElementVNode)("span",v,(0,r.toDisplayString)(O.downloadLogFailReason),1)])])])):(0,r.createCommentVNode)("",!0),t[3]||(t[3]=(0,r.createElementVNode)("p",{class:"bordered-section"},null,-1)),(0,r.createElementVNode)("div",f,[(0,r.createElementVNode)("div",y,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.repoInfo.os"))+": ",1),(0,r.createElementVNode)("span",k,(0,r.toDisplayString)(O.repoInfo.release.os),1)]),(0,r.createElementVNode)("div",b,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.productLabel"))+": ",1),(0,r.createElementVNode)("span",E,(0,r.toDisplayString)(O.repoInfo.release.harvester),1)])]),(0,r.createElementVNode)("div",V,[(0,r.createElementVNode)("div",S,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.repoInfo.harvesterChart"))+": ",1),(0,r.createElementVNode)("span",N,(0,r.toDisplayString)(O.repoInfo.release.harvesterChart),1)]),(0,r.createElementVNode)("div",w,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.repoInfo.monitoringChart"))+": ",1),(0,r.createElementVNode)("span",B,(0,r.toDisplayString)(O.repoInfo.release.monitoringChart),1)])]),(0,r.createElementVNode)("div",x,[(0,r.createElementVNode)("div",R,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.repoInfo.kubernetes"))+": ",1),(0,r.createElementVNode)("span",D,(0,r.toDisplayString)(O.repoInfo.release.kubernetes),1)]),(0,r.createElementVNode)("div",C,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("product.rancher"))+": ",1),(0,r.createElementVNode)("span",A,(0,r.toDisplayString)(O.repoInfo.release.rancher),1)])]),t[4]||(t[4]=(0,r.createElementVNode)("p",{class:"bordered-section"},null,-1))])):(0,r.createCommentVNode)("",!0),O.overallMessage?((0,r.openBlock)(),(0,r.createElementBlock)("p",P,(0,r.toDisplayString)(O.overallMessage),1)):(0,r.createCommentVNode)("",!0),O.showImage?((0,r.openBlock)(),(0,r.createElementBlock)("div",M,[(0,r.createElementVNode)("h4",null,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.upgradeImage")),1),(0,r.createElementVNode)("span",L,(0,r.toDisplayString)(O.imageProgress)+"%",1)]),(0,r.createVNode)(j,{"model-value":O.imageProgress,"preferred-direction":"MORE"},null,8,["model-value"]),(0,r.createElementVNode)("p",I,(0,r.toDisplayString)(O.imageMessage),1),t[5]||(t[5]=(0,r.createElementVNode)("p",{class:"bordered-section"},null,-1))])):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("h4",null,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.createRepository"))+" ",1),(0,r.createElementVNode)("span",_,(0,r.toDisplayString)(O.repoReady.isReady?e.t("harvester.upgradePage.succeeded"):e.t("harvester.upgradePage.pending")),1)]),O.repoReady.message?((0,r.openBlock)(),(0,r.createElementBlock)("p",U,(0,r.toDisplayString)(O.repoReady.message),1)):(0,r.createCommentVNode)("",!0),t[6]||(t[6]=(0,r.createElementVNode)("p",{class:"bordered-section"},null,-1)),(0,r.createVNode)(q,{title:e.t("harvester.upgradePage.upgradeNode"),precent:O.nodesPercent,list:O.nodesStatus},null,8,["title","precent","list"]),t[7]||(t[7]=(0,r.createElementVNode)("p",{class:"bordered-section"},null,-1)),(0,r.createVNode)(q,{title:e.t("harvester.upgradePage.upgradeSysService"),precent:O.sysServiceTotal,list:O.sysServiceUpgradeMessage},null,8,["title","precent","list"])]),(0,r.createElementVNode)("div",$,[O.canStartedDownload?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,disabled:T.logDownloading,class:"btn role-primary mr-10",onClick:t[0]||(t[0]=e=>O.downloadLog())},[(0,r.createElementVNode)("i",{class:(0,r.normalizeClass)(["icon mr-10",[T.logDownloading?"icon-spinner icon-spin":"icon-download"]])},null,2),(0,r.createTextVNode)(" "+(0,r.toDisplayString)(e.t("harvester.upgradePage.repoInfo.downloadLog")),1)],8,G)):(0,r.createCommentVNode)("",!0),O.latestResource.isUpgradeSucceeded?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:1,class:"btn role-primary",onClick:t[1]||(t[1]=e=>O.ignoreMessage())},(0,r.toDisplayString)(e.t("harvester.upgradePage.dismissMessage")),1)):(0,r.createCommentVNode)("",!0)])])),default:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"button-content",{},(()=>[t[2]||(t[2]=(0,r.createElementVNode)("i",{class:"warning icon-fw icon icon-dot-open dot-icon"},null,-1))]),!0)])),_:3})),[[W,{placement:"bottom-left"}]])])):(0,r.createCommentVNode)("",!0)}var T=a(35664),O=a(88339),z=a(2602),j=a(12243),q=a(74562),H=a(65359),W=a(20652),K=a(32766);const Y={class:"bar-list"},J={class:"float-r text-info"},Q={class:"total-bar"},X={class:"bar"},Z={class:"custom-content"},ee={class:"warning"};function te(e,t,a,o,s,n){const l=(0,r.resolveComponent)("PercentageBar"),c=(0,r.resolveComponent)("Collapse");return(0,r.openBlock)(),(0,r.createElementBlock)("div",Y,[(0,r.createElementVNode)("h4",null,[(0,r.createTextVNode)((0,r.toDisplayString)(a.title)+" ",1),(0,r.createElementVNode)("span",J,(0,r.toDisplayString)(a.precent)+"%",1)]),(0,r.createElementVNode)("div",null,[(0,r.createElementVNode)("div",null,[(0,r.createVNode)(c,{open:s.open,"onUpdate:open":t[1]||(t[1]=e=>s.open=e)},{title:(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",Q,[(0,r.createElementVNode)("span",X,[(0,r.createVNode)(l,{"model-value":a.precent,"preferred-direction":"MORE"},null,8,["model-value"])]),(0,r.createElementVNode)("span",{class:"on-off",onClick:t[0]||(t[0]=(...e)=>n.handleSwitch&&n.handleSwitch(...e))},(0,r.toDisplayString)(s.open?e.t("harvester.generic.close"):e.t("harvester.generic.open")),1)])])),default:(0,r.withCtx)((()=>[(0,r.createElementVNode)("template",null,[(0,r.createElementVNode)("div",Z,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(a.list,((e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:t},[(0,r.createElementVNode)("p",null,[(0,r.createTextVNode)((0,r.toDisplayString)(e.name)+" ",1),(0,r.createElementVNode)("span",{class:(0,r.normalizeClass)(["status",{[e.state]:!0}])},(0,r.toDisplayString)(e.state),3)]),(0,r.createVNode)(l,{"model-value":e.percent,"preferred-direction":"MORE"},null,8,["model-value"]),(0,r.createElementVNode)("p",ee,(0,r.toDisplayString)(e.message),1)])))),128))])])])),_:1},8,["open"])])])])}const ae={class:"collapse"},re={key:0,class:"icon icon-chevron-down","data-testid":"collapse-icon-down"},oe={key:1,class:"icon icon-chevron-right","data-testid":"collapse-icon-right"},se={key:0,class:"content","data-testid":"collapse-content"};function ne(e,t,a,o,s,n){return(0,r.openBlock)(),(0,r.createElementBlock)("div",ae,[(0,r.renderSlot)(e.$slots,"title",{},(()=>[(0,r.createElementVNode)("div",{class:"advanced text-link","data-testid":"collapse-div",onClick:t[0]||(t[0]=(...e)=>n.showAdvanced&&n.showAdvanced(...e))},[a.open?((0,r.openBlock)(),(0,r.createElementBlock)("i",re)):((0,r.openBlock)(),(0,r.createElementBlock)("i",oe)),(0,r.createTextVNode)(" "+(0,r.toDisplayString)(a.title),1)])]),!0),a.open?((0,r.openBlock)(),(0,r.createElementBlock)("div",se,[(0,r.renderSlot)(e.$slots,"default",{},void 0,!0)])):(0,r.createCommentVNode)("",!0)])}var le={name:"Collapse",emits:["update:open"],props:{open:{type:Boolean,default:!0},title:{type:String,default:""}},methods:{showAdvanced(){this.$emit("update:open",!this.open)}}},ce=(a(87198),a(47433));const ie=(0,ce.A)(le,[["render",ne],["__scopeId","data-v-cd1e7dd4"]]);var de=ie,pe={name:"HarvesterUpgradeProgressList",components:{PercentageBar:j.A,Collapse:de},props:{title:{type:String,default:""},precent:{type:Number,default:0},list:{type:Array,default:()=>[]}},data(){return{open:!0}},methods:{handleSwitch(){this.open=!this.open}}};a(23703);const ue=(0,ce.A)(pe,[["render",te],["__scopeId","data-v-6057fc37"]]);var ge=ue,me={name:"HarvesterUpgradeHeader",components:{PercentageBar:j.A,ProgressBarList:ge,BadgeStateFormatter:q.A},async fetch(){const e={};this.$store.getters["harvester/schemaFor"](K.rk.IMAGE)&&(e.images=this.$store.dispatch("harvester/findAll",{type:K.rk.IMAGE})),this.$store.getters["harvester/schemaFor"](K.rk.UPGRADE)&&(e.upgrades=this.$store.dispatch("harvester/findAll",{type:K.rk.UPGRADE})),this.$store.getters["harvester/schemaFor"](T.NW)&&(e.nodes=this.$store.dispatch("harvester/findAll",{type:T.NW})),this.$store.getters["harvester/schemaFor"](K.rk.UPGRADE_LOG)&&(e.upgradeLogs=this.$store.dispatch("harvester/findAll",{type:K.rk.UPGRADE_LOG})),await(0,O.kR)(e)},data(){return{filename:"",logDownloading:!1}},computed:{...(0,H.L8)(["currentProduct","isVirtualCluster"]),enabled(){return this.isVirtualCluster&&this.currentProduct.name===W.KR},latestResource(){return this.$store.getters["harvester/all"](K.rk.UPGRADE).find((e=>e.isLatestUpgrade))},latestUpgradeLogResource(){const e=`${this.latestResource.id}-upgradelog`;return this.$store.getters["harvester/all"](K.rk.UPGRADE_LOG).find((t=>t.id===e))},downloadLogFailReason(){if(!this.filename){const e=this.latestUpgradeLogResource?.latestArchivesFileName;return this.latestUpgradeLogResource?.downloadArchivesStatus(e)}return this.latestUpgradeLogResource?.downloadArchivesStatus(this.filename)},canStartedDownload(){return this.latestUpgradeLogResource?.canStartedDownload||!1},overallMessage(){return this.latestResource?.overallMessage},upgradeImage(){const e=this.latestResource?.upgradeImage;return this.$store.getters["harvester/all"](K.rk.IMAGE).find((t=>t.id===e))},imageProgress(){return this.upgradeImage?.progress||0},showImage(){return!this.latestResource.isUpgradeSucceeded},imageMessage(){return this.latestResource?.upgradeImageMessage},repoReady(){return this.latestResource.createRepo},isShow(){return this.latestResource&&!this.latestResource.hasReadMessage},nodesStatus(){return this.latestResource?.nodeUpgradeMessage},sysServiceUpgradeMessage(){return this.latestResource?.sysServiceUpgradeMessage},sysServiceTotal(){return this.sysServiceUpgradeMessage?.[0].percent||0},nodesPercent(){return this.latestResource?.nodeTotalPercent||0},repoInfo(){return this.latestResource.repoInfo},releaseLink(){return`https://github.com/harvester/harvester/releases/tag/${this.latestResource?.spec?.version}`},upgradeVersion(){return this.latestResource?.spec?.version}},methods:{ignoreMessage(){this.latestResource.setLabel(z.r.REAY_MESSAGE,"true"),this.latestResource.save()},async generateLogFileName(){const e=await this.latestUpgradeLogResource.doActionGrowl("generate");this.filename=e?.data},waitFileGeneratedReady(){const e=this.latestUpgradeLogResource.id;return new Promise((t=>{let a;const r=setInterval((async()=>{a=await this.$store.dispatch("harvester/find",{type:K.rk.UPGRADE_LOG,id:e,opt:{force:!0}},{root:!0}),a.fileIsReady(this.filename)&&(this.logDownloading=!1,clearInterval(r),t())}),2500)}))},async downloadLog(){this.logDownloading=!0,await this.generateLogFileName(),this.waitFileGeneratedReady().then((()=>{this.downloadLogFailReason||this.latestUpgradeLogResource.downloadLog(this.filename),this.logDownloading=!1}))}}};a(65366);const he=(0,ce.A)(me,[["render",F],["__scopeId","data-v-43438c55"]]);var ve=he},78846:function(e,t,a){"use strict";a.r(t);var r=a(36758),o=a.n(r),s=a(40935),n=a.n(s),l=n()(o());l.push([e.id,".advanced[data-v-cd1e7dd4]{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0 5px;cursor:pointer;line-height:40px;font-size:15px;font-weight:500}.content[data-v-cd1e7dd4]{background:var(--nav-active);padding:10px;margin-top:6px;border-radius:4px}",""]),t["default"]=l},56530:function(e,t,a){"use strict";a.r(t);var r=a(36758),o=a.n(r),s=a(40935),n=a.n(s),l=n()(o());l.push([e.id,".percentage-bar[data-v-4ade54a6]{display:flex;flex-direction:row}.percentage-bar .percentage-value[data-v-4ade54a6]{word-break:keep-all}",""]),t["default"]=l},22880:function(e,t,a){"use strict";a.r(t);var r=a(36758),o=a.n(r),s=a(40935),n=a.n(s),l=n()(o());l.push([e.id,".bar[data-v-b4f4e2ae]{width:100%;height:15px;border-radius:7.5px;overflow:hidden;position:relative}.bar .indicator[data-v-b4f4e2ae]{height:100%}.bar .slice[data-v-b4f4e2ae]{position:absolute;top:0;bottom:0;width:1px;background-color:var(--body-bg)}",""]),t["default"]=l},77110:function(e,t,a){"use strict";a.r(t);var r=a(36758),o=a.n(r),s=a(40935),n=a.n(s),l=n()(o());l.push([e.id,"a[data-v-43438c55]{float:right;color:var(--link)!important;text-decoration:none}.upgrade[data-v-43438c55]{height:100%;min-width:40px;display:flex;align-items:center}.upgrade .dot-icon[data-v-43438c55]{font-size:24px;vertical-align:middle;color:#00a483}.upgrade-info[data-v-43438c55]{min-width:550px;max-height:90vh;overflow-y:scroll}.upgrade-info .repoInfo .col span[data-v-43438c55]{word-break:break-all}.upgrade-info .repoInfo p.state[data-v-43438c55]{display:flex;align-items:center}.upgrade-info .error[data-v-43438c55]{color:var(--error)}.upgrade-info .float-r[data-v-43438c55]{float:right}.upgrade-info p[data-v-43438c55]{word-break:break-word;margin-top:5px}.footer[data-v-43438c55]{display:flex;justify-content:flex-end}",""]),t["default"]=l},91351:function(e,t,a){"use strict";a.r(t);var r=a(36758),o=a.n(r),s=a(40935),n=a.n(s),l=n()(o());l.push([e.id,".bar-list .float-r[data-v-6057fc37]{float:right}.bar-list .total-bar[data-v-6057fc37]{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bar-list .total-bar .bar[data-v-6057fc37]{width:85%}.bar-list .total-bar .on-off[data-v-6057fc37]{margin-left:10px;cursor:pointer}.bar-list .custom-content .item[data-v-6057fc37]{margin-bottom:14px}.bar-list .custom-content .item p[data-v-6057fc37]{margin-bottom:4px}.bar-list .custom-content .item .status[data-v-6057fc37]{float:right}.bar-list .custom-content .item .Pending[data-v-6057fc37],.bar-list .custom-content .item .Succeeded[data-v-6057fc37],.bar-list .custom-content .item .Upgrading[data-v-6057fc37]{color:var(--success)}.bar-list .custom-content .item .failed[data-v-6057fc37],.bar-list .custom-content .item .warning[data-v-6057fc37]{color:var(--error)}",""]),t["default"]=l},87198:function(e,t,a){var r=a(78846);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var o=a(74825).A;o("1f45ea4e",r,!0,{sourceMap:!1,shadowMode:!1})},70738:function(e,t,a){var r=a(56530);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var o=a(74825).A;o("b37b1fae",r,!0,{sourceMap:!1,shadowMode:!1})},54752:function(e,t,a){var r=a(22880);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var o=a(74825).A;o("bcd5ae90",r,!0,{sourceMap:!1,shadowMode:!1})},65366:function(e,t,a){var r=a(77110);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var o=a(74825).A;o("65ed7577",r,!0,{sourceMap:!1,shadowMode:!1})},23703:function(e,t,a){var r=a(91351);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var o=a(74825).A;o("39f5695b",r,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.530.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.530.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.530.js.map new file mode 100644 index 00000000..15853733 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.530.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.530.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?3786","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?1d96","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/formatter/BadgeStateFormatter.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/formatter/BadgeStateFormatter.vue?67d1","webpack://harvester-1.5.0-dev/./components/HarvesterUpgradeHeader.vue","webpack://harvester-1.5.0-dev/./components/HarvesterUpgradeProgressBarList.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Collapse.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Collapse.vue?660e","webpack://harvester-1.5.0-dev/./components/HarvesterUpgradeProgressBarList.vue?63ec","webpack://harvester-1.5.0-dev/./components/HarvesterUpgradeHeader.vue?795b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Collapse.vue?6748","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?a566","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?23d8","webpack://harvester-1.5.0-dev/./components/HarvesterUpgradeHeader.vue?3ac7","webpack://harvester-1.5.0-dev/./components/HarvesterUpgradeProgressBarList.vue?d156","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Collapse.vue?e04f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?53c9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?4823","webpack://harvester-1.5.0-dev/./components/HarvesterUpgradeHeader.vue?b1fc","webpack://harvester-1.5.0-dev/./components/HarvesterUpgradeProgressBarList.vue?a2f0"],"sourcesContent":["<script>\nimport Bar from '@shell/components/graph/Bar';\nimport { formatPercent } from '@shell/utils/string';\n\nexport const PreferredDirection = {\n LESS: 'LESS',\n MORE: 'MORE'\n};\n\n/**\n * A percentage bar which can be used to display how much a resource is being consumed.\n */\nexport default {\n components: { Bar },\n props: {\n /**\n * A value representing the percentage to be displayed. *Must be a value between 0 and 100*.\n */\n modelValue: {\n type: Number,\n required: true,\n validator(value) {\n return value >= 0;\n }\n },\n\n /**\n * A value which indicates which direction is better so we can change the color appropriately (Valid values: 'LESS' or 'MORE')\n */\n preferredDirection: {\n type: String,\n default: PreferredDirection.LESS\n },\n\n /**\n * Determines whether we display the numerical percentage value to the right of the bar.\n */\n showPercentage: {\n type: Boolean,\n default: false\n },\n\n /**\n * Optional map of percentage:color class stops to apply to bar\n */\n\n colorStops: {\n type: Object,\n default: null\n },\n\n /**\n * Show vertical lines to denote where multiple sources that are contributing to this percentage end\n */\n slices: {\n type: Array,\n default: () => []\n }\n },\n\n computed: {\n primaryColor() {\n const isLess = this.preferredDirection === PreferredDirection.LESS;\n\n if (this.colorStops) {\n const thresholds = Object.keys(this.colorStops).sort();\n\n if (isLess) {\n let i = thresholds.length - 1;\n\n while (this.modelValue < thresholds[i]) {\n i--;\n }\n\n return this.colorStops[thresholds[i]];\n } else {\n let i = 0;\n\n while (this.modelValue > thresholds[i]) {\n i++;\n }\n\n return this.colorStops[thresholds[i]];\n }\n }\n const threshold = isLess ? 80 : 20;\n\n const left = isLess ? this.modelValue : threshold;\n const right = isLess ? threshold : this.modelValue;\n\n if (left <= right) {\n return '--primary';\n }\n\n return '--error';\n },\n formattedPercentage() {\n return formatPercent(this.modelValue);\n }\n },\n};\n</script>\n\n<template>\n <span class=\"percentage-bar\">\n <Bar\n :percentage=\"modelValue\"\n :primary-color=\"primaryColor\"\n :slices=\"slices\"\n />\n <span\n v-if=\"showPercentage\"\n class=\"ml-5 percentage-value\"\n >{{ formattedPercentage }}</span>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n.percentage-bar {\n display: flex;\n flex-direction: row;\n\n .percentage-value {\n word-break: keep-all;\n }\n}\n</style>\n","<script>\r\nexport default {\r\n props: {\r\n percentage: {\r\n type: Number,\r\n required: true\r\n },\r\n primaryColor: {\r\n type: String,\r\n default: '--primary'\r\n },\r\n secondaryColor: {\r\n type: String,\r\n default: '--border'\r\n },\r\n slices: {\r\n type: Array,\r\n default: () => []\r\n }\r\n },\r\n computed: {\r\n indicatorStyle() {\r\n return {\r\n width: `${ this.percentage }%`,\r\n backgroundColor: `var(${ this.primaryColor })`\r\n };\r\n },\r\n barStyle() {\r\n return { backgroundColor: `var(${ this.secondaryColor })` };\r\n },\r\n sliceStyles() {\r\n return this.slices.map((slice) => ({\r\n left: `${ slice }%`,\r\n visibility: slice < this.percentage ? 'visible' : 'hidden'\r\n }));\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div\n class=\"bar\"\n :style=\"barStyle\"\n >\r\n <div\n class=\"indicator\"\n :style=\"indicatorStyle\"\n />\r\n <div\n v-for=\"(sliceStyle, i) in sliceStyles\"\n :key=\"i\"\n class=\"slice\"\n :style=\"sliceStyle\"\n />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.bar {\r\n $height: 15px;\r\n\r\n width: 100%;\r\n height: $height;\r\n border-radius: math.div($height, 2);\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .indicator {\r\n height: 100%;\r\n }\r\n\r\n .slice {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n width: 1px;\r\n background-color: var(--body-bg);\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./Bar.vue?vue&type=template&id=b4f4e2ae&scoped=true\"\nimport script from \"./Bar.vue?vue&type=script&lang=js\"\nexport * from \"./Bar.vue?vue&type=script&lang=js\"\n\nimport \"./Bar.vue?vue&type=style&index=0&id=b4f4e2ae&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b4f4e2ae\"]])\n\nexport default __exports__","import { render } from \"./PercentageBar.vue?vue&type=template&id=4ade54a6&scoped=true\"\nimport script from \"./PercentageBar.vue?vue&type=script&lang=js\"\nexport * from \"./PercentageBar.vue?vue&type=script&lang=js\"\n\nimport \"./PercentageBar.vue?vue&type=style&index=0&id=4ade54a6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4ade54a6\"]])\n\nexport default __exports__","<script>\nimport { BadgeState } from '@components/BadgeState';\nimport { colorForState, stateDisplay } from '@shell/plugins/dashboard-store/resource-class';\nexport default {\n components: { BadgeState },\n props: {\n value: {\n type: String,\n default: ''\n },\n row: {\n type: Object,\n required: true\n },\n col: {\n type: Object,\n default: () => {}\n },\n\n arbitrary: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n stateDisplay: '',\n stateBackground: ''\n };\n },\n\n watch: {\n value: {\n handler() {\n if (this.arbitrary) {\n const color = colorForState(this.value);\n\n this.stateDisplay = stateDisplay(this.value);\n this.stateBackground = color.replace('text-', 'bg-');\n }\n },\n immediate: true\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"arbitrary\">\n <BadgeState\n v-if=\"value\"\n :color=\"stateBackground\"\n :label=\"stateDisplay\"\n />\n </div>\n <BadgeState\n v-else\n :value=\"row\"\n />\n </div>\n</template>\n","import { render } from \"./BadgeStateFormatter.vue?vue&type=template&id=4e99fcbc\"\nimport script from \"./BadgeStateFormatter.vue?vue&type=script&lang=js\"\nexport * from \"./BadgeStateFormatter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { NODE } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport PercentageBar from '@shell/components/PercentageBar';\nimport BadgeStateFormatter from '@shell/components/formatter/BadgeStateFormatter';\nimport { mapGetters } from 'vuex';\nimport { PRODUCT_NAME as HARVESTER } from '../config/harvester';\nimport { HCI } from '../types';\nimport ProgressBarList from './HarvesterUpgradeProgressBarList';\n\nexport default {\n name: 'HarvesterUpgradeHeader',\n components: {\n PercentageBar, ProgressBarList, BadgeStateFormatter\n },\n\n async fetch() {\n const hash = {};\n\n if (this.$store.getters['harvester/schemaFor'](HCI.IMAGE)) {\n hash.images = this.$store.dispatch('harvester/findAll', { type: HCI.IMAGE });\n }\n\n if (this.$store.getters['harvester/schemaFor'](HCI.UPGRADE)) {\n hash.upgrades = this.$store.dispatch('harvester/findAll', { type: HCI.UPGRADE });\n }\n\n if (this.$store.getters['harvester/schemaFor'](NODE)) {\n hash.nodes = this.$store.dispatch('harvester/findAll', { type: NODE });\n }\n\n if (this.$store.getters['harvester/schemaFor'](HCI.UPGRADE_LOG)) {\n hash.upgradeLogs = this.$store.dispatch('harvester/findAll', { type: HCI.UPGRADE_LOG });\n }\n\n await allHash(hash);\n },\n\n data() {\n return {\n filename: '',\n logDownloading: false\n };\n },\n\n computed: {\n ...mapGetters(['currentProduct', 'isVirtualCluster']),\n\n enabled() {\n return this.isVirtualCluster && this.currentProduct.name === HARVESTER;\n },\n\n latestResource() {\n return this.$store.getters['harvester/all'](HCI.UPGRADE).find( (U) => U.isLatestUpgrade);\n },\n\n latestUpgradeLogResource() {\n const upgradeLogId = `${ this.latestResource.id }-upgradelog`;\n\n return this.$store.getters['harvester/all'](HCI.UPGRADE_LOG).find( (U) => U.id === upgradeLogId);\n },\n\n downloadLogFailReason() {\n if (!this.filename) {\n const filename = this.latestUpgradeLogResource?.latestArchivesFileName;\n\n return this.latestUpgradeLogResource?.downloadArchivesStatus(filename);\n }\n\n return this.latestUpgradeLogResource?.downloadArchivesStatus(this.filename);\n },\n\n canStartedDownload() {\n return this.latestUpgradeLogResource?.canStartedDownload || false;\n },\n\n overallMessage() {\n return this.latestResource?.overallMessage;\n },\n\n upgradeImage() {\n const id = this.latestResource?.upgradeImage;\n\n return this.$store.getters['harvester/all'](HCI.IMAGE).find((I) => I.id === id);\n },\n\n imageProgress() {\n return this.upgradeImage?.progress || 0;\n },\n\n showImage() {\n return !this.latestResource.isUpgradeSucceeded;\n },\n\n imageMessage() {\n return this.latestResource?.upgradeImageMessage;\n },\n\n repoReady() {\n return this.latestResource.createRepo;\n },\n\n isShow() {\n return this.latestResource && !this.latestResource.hasReadMessage;\n },\n\n nodesStatus() {\n return this.latestResource?.nodeUpgradeMessage;\n },\n\n sysServiceUpgradeMessage() {\n return this.latestResource?.sysServiceUpgradeMessage;\n },\n\n sysServiceTotal() {\n return this.sysServiceUpgradeMessage?.[0].percent || 0;\n },\n\n nodesPercent() {\n return this.latestResource?.nodeTotalPercent || 0;\n },\n\n repoInfo() {\n return this.latestResource.repoInfo;\n },\n\n releaseLink() {\n return `https://github.com/harvester/harvester/releases/tag/${ this.latestResource?.spec?.version }`;\n },\n\n upgradeVersion() {\n return this.latestResource?.spec?.version;\n }\n },\n\n methods: {\n ignoreMessage() {\n this.latestResource.setLabel(HCI_ANNOTATIONS.REAY_MESSAGE, 'true');\n this.latestResource.save();\n },\n\n async generateLogFileName() {\n const res = await this.latestUpgradeLogResource.doActionGrowl('generate');\n\n this.filename = res?.data;\n },\n\n waitFileGeneratedReady() {\n const id = this.latestUpgradeLogResource.id;\n\n return new Promise((resolve) => {\n let log;\n\n const timer = setInterval(async() => {\n log = await this.$store.dispatch('harvester/find', {\n type: HCI.UPGRADE_LOG,\n id,\n opt: { force: true }\n }, { root: true });\n\n if (log.fileIsReady(this.filename)) {\n this.logDownloading = false;\n clearInterval(timer);\n resolve();\n }\n }, 2500);\n });\n },\n\n async downloadLog() {\n this.logDownloading = true;\n await this.generateLogFileName();\n this.waitFileGeneratedReady().then(() => {\n if (!this.downloadLogFailReason) {\n this.latestUpgradeLogResource.downloadLog(this.filename);\n }\n this.logDownloading = false;\n });\n }\n }\n};\n</script>\n<template>\n <div\n v-if=\"enabled && isShow\"\n class=\"upgrade\"\n >\n <v-dropdown\n v-clean-tooltip=\"{\n placement: 'bottom-left',\n }\"\n class=\"hand\"\n >\n <slot name=\"button-content\">\n <i class=\"warning icon-fw icon icon-dot-open dot-icon\" />\n </slot>\n\n <template #popper>\n <div class=\"upgrade-info mb-10\">\n <div\n v-if=\"repoInfo\"\n class=\"repoInfo\"\n >\n <div class=\"row\">\n <div class=\"col span-12\">\n <a\n :href=\"releaseLink\"\n target=\"_blank\"\n >{{ upgradeVersion }}</a>\n </div>\n </div>\n <div\n v-if=\"latestResource\"\n class=\"row mb-5\"\n >\n <div class=\"col span-12\">\n <p class=\"state\">\n {{ t('harvester.upgradePage.repoInfo.upgradeStatus') }}: <BadgeStateFormatter\n class=\"ml-5\"\n :row=\"latestResource\"\n />\n </p>\n </div>\n </div>\n\n <div\n v-if=\"downloadLogFailReason\"\n class=\"row mb-5\"\n >\n <div class=\"col span-12\">\n <p class=\"state\">\n {{ t('harvester.upgradePage.repoInfo.logStatus') }}: <span class=\"error ml-5\">{{ downloadLogFailReason }}</span>\n </p>\n </div>\n </div>\n\n <p class=\"bordered-section\"></p>\n\n <div class=\"row mb-5\">\n <div class=\"col span-6\">\n {{ t('harvester.upgradePage.repoInfo.os') }}: <span class=\"text-muted\">{{ repoInfo.release.os }}</span>\n </div>\n\n <div class=\"col span-6\">\n {{ t('harvester.productLabel') }}: <span class=\"text-muted\">{{ repoInfo.release.harvester }}</span>\n </div>\n </div>\n\n <div class=\"row mb-5\">\n <div class=\"col span-6\">\n {{ t('harvester.upgradePage.repoInfo.harvesterChart') }}: <span class=\"text-muted\">{{ repoInfo.release.harvesterChart }}</span>\n </div>\n\n <div class=\"col span-6\">\n {{ t('harvester.upgradePage.repoInfo.monitoringChart') }}: <span class=\"text-muted\">{{ repoInfo.release.monitoringChart }}</span>\n </div>\n </div>\n\n <div class=\"row mb-5\">\n <div class=\"col span-6\">\n {{ t('harvester.upgradePage.repoInfo.kubernetes') }}: <span class=\"text-muted\">{{ repoInfo.release.kubernetes }}</span>\n </div>\n\n <div class=\"col span-6\">\n {{ t('product.rancher') }}: <span class=\"text-muted\">{{ repoInfo.release.rancher }}</span>\n </div>\n </div>\n\n <p class=\"bordered-section\"></p>\n </div>\n\n <p\n v-if=\"overallMessage\"\n class=\"text-warning mb-20\"\n >\n {{ overallMessage }}\n </p>\n\n <div v-if=\"showImage\">\n <h4>{{ t('harvester.upgradePage.upgradeImage') }}<span class=\"float-r text-info\">{{ imageProgress }}%</span></h4>\n <PercentageBar\n :model-value=\"imageProgress\"\n preferred-direction=\"MORE\"\n />\n <p class=\"text-warning\">\n {{ imageMessage }}\n </p>\n <p class=\"bordered-section\"></p>\n </div>\n\n <h4>{{ t('harvester.upgradePage.createRepository') }} <span class=\"float-r text-info\">{{ repoReady.isReady ? t('harvester.upgradePage.succeeded') : t('harvester.upgradePage.pending') }}</span></h4>\n <p\n v-if=\"repoReady.message\"\n class=\"text-warning\"\n >\n {{ repoReady.message }}\n </p>\n <p class=\"bordered-section\"></p>\n\n <ProgressBarList\n :title=\"t('harvester.upgradePage.upgradeNode')\"\n :precent=\"nodesPercent\"\n :list=\"nodesStatus\"\n />\n <p class=\"bordered-section\"></p>\n\n <ProgressBarList\n :title=\"t('harvester.upgradePage.upgradeSysService')\"\n :precent=\"sysServiceTotal\"\n :list=\"sysServiceUpgradeMessage\"\n />\n </div>\n\n <div class=\"footer\">\n <button\n v-if=\"canStartedDownload\"\n :disabled=\"logDownloading\"\n class=\"btn role-primary mr-10\"\n @click=\"downloadLog()\"\n >\n <i\n class=\"icon mr-10\"\n :class=\"[logDownloading ? 'icon-spinner icon-spin' : 'icon-download']\"\n ></i> {{ t('harvester.upgradePage.repoInfo.downloadLog') }}\n </button>\n\n <button\n v-if=\"latestResource.isUpgradeSucceeded\"\n class=\"btn role-primary\"\n @click=\"ignoreMessage()\"\n >\n {{ t('harvester.upgradePage.dismissMessage') }}\n </button>\n </div>\n </template>\n </v-dropdown>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\na {\n float: right;\n color: var(--link) !important;\n text-decoration: none;\n}\n\n.upgrade {\n height: 100%;\n min-width: 40px;\n display: flex;\n align-items: center;\n\n .dot-icon {\n font-size: 24px;\n vertical-align: middle;\n color: #00a483;\n }\n}\n\n.upgrade-info {\n min-width: 550px;\n max-height: 90vh;\n overflow-y: scroll;\n\n .repoInfo {\n .col span {\n word-break: break-all\n }\n\n p.state {\n display: flex;\n align-items: center;\n }\n }\n\n .error {\n color: var(--error);\n }\n\n .float-r {\n float: right;\n }\n\n p {\n word-break: break-word;\n margin-top: 5px;\n }\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n}\n</style>\n","<script>\nimport Collapse from '@shell/components/Collapse';\nimport PercentageBar from '@shell/components/PercentageBar';\n\nexport default {\n name: 'HarvesterUpgradeProgressList',\n components: { PercentageBar, Collapse },\n\n props: {\n title: {\n type: String,\n default: ''\n },\n\n precent: {\n type: Number,\n default: 0\n },\n\n list: {\n type: Array,\n default: () => {\n return [];\n }\n }\n },\n\n data() {\n return { open: true };\n },\n\n methods: {\n handleSwitch() {\n this.open = !this.open;\n }\n }\n};\n</script>\n\n<template>\n <div class=\"bar-list\">\n <h4>{{ title }} <span class=\"float-r text-info\">{{ precent }}%</span></h4>\n <div>\n <div>\n <Collapse v-model:open=\"open\">\n <template #title>\n <div class=\"total-bar\">\n <span class=\"bar\"><PercentageBar\n :model-value=\"precent\"\n preferred-direction=\"MORE\"\n /></span>\n <span\n class=\"on-off\"\n @click=\"handleSwitch\"\n > {{ open ? t('harvester.generic.close') : t('harvester.generic.open') }}</span>\n </div>\n </template>\n\n <template>\n <div class=\"custom-content\">\n <div\n v-for=\"(item, i) in list\"\n :key=\"i\"\n >\n <p>\n {{ item.name }} <span\n class=\"status\"\n :class=\"{ [item.state]: true }\"\n >{{ item.state }}</span>\n </p>\n <PercentageBar\n :model-value=\"item.percent\"\n preferred-direction=\"MORE\"\n />\n <p class=\"warning\">\n {{ item.message }}\n </p>\n </div>\n </div>\n </template>\n </Collapse>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.bar-list {\n .float-r {\n float: right;\n }\n\n .total-bar {\n display: flex;\n user-select: none;\n .bar {\n width: 85%;\n }\n .on-off {\n margin-left: 10px;\n cursor: pointer;\n }\n }\n .custom-content {\n .item {\n margin-bottom: 14px;\n p {\n margin-bottom: 4px;\n }\n .status {\n float: right;\n }\n .Succeeded, .Upgrading, .Pending {\n color: var(--success);\n }\n .failed {\n color: var(--error)\n }\n .warning {\n color: var(--error);\n }\n }\n }\n}\n\n</style>\n","<script>\nexport default {\n name: 'Collapse',\n\n emits: ['update:open'],\n\n props: {\n open: {\n type: Boolean,\n default: true\n },\n\n title: {\n type: String,\n default: ''\n }\n },\n\n methods: {\n showAdvanced() {\n this.$emit('update:open', !this.open);\n }\n }\n};\n</script>\n\n<template>\n <div class=\"collapse\">\n <slot name=\"title\">\n <div\n class=\"advanced text-link\"\n data-testid=\"collapse-div\"\n @click=\"showAdvanced\"\n >\n <i\n v-if=\"open\"\n class=\"icon icon-chevron-down\"\n data-testid=\"collapse-icon-down\"\n />\n <i\n v-else\n class=\"icon icon-chevron-right\"\n data-testid=\"collapse-icon-right\"\n />\n {{ title }}\n </div>\n </slot>\n\n <div\n v-if=\"open\"\n class=\"content\"\n data-testid=\"collapse-content\"\n >\n <slot />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.advanced {\n user-select: none;\n padding: 0 5px;\n cursor: pointer;\n line-height: 40px;\n font-size: 15px;\n font-weight: 500;\n}\n.content {\n background: var(--nav-active);\n padding: 10px;\n margin-top: 6px;\n border-radius: 4px;\n}\n</style>\n","import { render } from \"./Collapse.vue?vue&type=template&id=cd1e7dd4&scoped=true\"\nimport script from \"./Collapse.vue?vue&type=script&lang=js\"\nexport * from \"./Collapse.vue?vue&type=script&lang=js\"\n\nimport \"./Collapse.vue?vue&type=style&index=0&id=cd1e7dd4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cd1e7dd4\"]])\n\nexport default __exports__","import { render } from \"./HarvesterUpgradeProgressBarList.vue?vue&type=template&id=6057fc37&scoped=true\"\nimport script from \"./HarvesterUpgradeProgressBarList.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterUpgradeProgressBarList.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterUpgradeProgressBarList.vue?vue&type=style&index=0&id=6057fc37&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6057fc37\"]])\n\nexport default __exports__","import { render } from \"./HarvesterUpgradeHeader.vue?vue&type=template&id=43438c55&scoped=true\"\nimport script from \"./HarvesterUpgradeHeader.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterUpgradeHeader.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterUpgradeHeader.vue?vue&type=style&index=0&id=43438c55&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-43438c55\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".advanced[data-v-cd1e7dd4]{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0 5px;cursor:pointer;line-height:40px;font-size:15px;font-weight:500}.content[data-v-cd1e7dd4]{background:var(--nav-active);padding:10px;margin-top:6px;border-radius:4px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".percentage-bar[data-v-4ade54a6]{display:flex;flex-direction:row}.percentage-bar .percentage-value[data-v-4ade54a6]{word-break:keep-all}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".bar[data-v-b4f4e2ae]{width:100%;height:15px;border-radius:7.5px;overflow:hidden;position:relative}.bar .indicator[data-v-b4f4e2ae]{height:100%}.bar .slice[data-v-b4f4e2ae]{position:absolute;top:0;bottom:0;width:1px;background-color:var(--body-bg)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"a[data-v-43438c55]{float:right;color:var(--link)!important;text-decoration:none}.upgrade[data-v-43438c55]{height:100%;min-width:40px;display:flex;align-items:center}.upgrade .dot-icon[data-v-43438c55]{font-size:24px;vertical-align:middle;color:#00a483}.upgrade-info[data-v-43438c55]{min-width:550px;max-height:90vh;overflow-y:scroll}.upgrade-info .repoInfo .col span[data-v-43438c55]{word-break:break-all}.upgrade-info .repoInfo p.state[data-v-43438c55]{display:flex;align-items:center}.upgrade-info .error[data-v-43438c55]{color:var(--error)}.upgrade-info .float-r[data-v-43438c55]{float:right}.upgrade-info p[data-v-43438c55]{word-break:break-word;margin-top:5px}.footer[data-v-43438c55]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".bar-list .float-r[data-v-6057fc37]{float:right}.bar-list .total-bar[data-v-6057fc37]{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bar-list .total-bar .bar[data-v-6057fc37]{width:85%}.bar-list .total-bar .on-off[data-v-6057fc37]{margin-left:10px;cursor:pointer}.bar-list .custom-content .item[data-v-6057fc37]{margin-bottom:14px}.bar-list .custom-content .item p[data-v-6057fc37]{margin-bottom:4px}.bar-list .custom-content .item .status[data-v-6057fc37]{float:right}.bar-list .custom-content .item .Pending[data-v-6057fc37],.bar-list .custom-content .item .Succeeded[data-v-6057fc37],.bar-list .custom-content .item .Upgrading[data-v-6057fc37]{color:var(--success)}.bar-list .custom-content .item .failed[data-v-6057fc37],.bar-list .custom-content .item .warning[data-v-6057fc37]{color:var(--error)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Collapse.vue?vue&type=style&index=0&id=cd1e7dd4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1f45ea4e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./PercentageBar.vue?vue&type=style&index=0&id=4ade54a6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b37b1fae\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Bar.vue?vue&type=style&index=0&id=b4f4e2ae&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"bcd5ae90\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterUpgradeHeader.vue?vue&type=style&index=0&id=43438c55&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"65ed7577\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterUpgradeProgressBarList.vue?vue&type=style&index=0&id=6057fc37&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"39f5695b\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","key","_createElementBlock","_hoisted_1","_createVNode","_component_Bar","percentage","$props","modelValue","$options","primaryColor","slices","showPercentage","_hoisted_2","_toDisplayString","formattedPercentage","_createCommentVNode","style","_normalizeStyle","barStyle","_createElementVNode","indicatorStyle","_Fragment","_renderList","sliceStyles","sliceStyle","i","props","type","Number","required","String","default","secondaryColor","Array","computed","width","this","backgroundColor","map","slice","left","visibility","__exports__","PreferredDirection","LESS","MORE","components","Bar","validator","value","preferredDirection","Boolean","colorStops","Object","isLess","thresholds","keys","sort","length","threshold","right","formatPercent","render","arbitrary","_createBlock","_component_BadgeState","color","$data","stateBackground","label","stateDisplay","row","BadgeState","col","data","watch","handler","colorForState","replace","immediate","enabled","isShow","_component_v_dropdown","popper","_withCtx","repoInfo","_hoisted_3","_hoisted_4","_hoisted_5","href","releaseLink","target","upgradeVersion","_hoisted_6","latestResource","_hoisted_7","_hoisted_8","_hoisted_9","_createTextVNode","_ctx","t","_component_BadgeStateFormatter","downloadLogFailReason","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","release","os","_hoisted_17","_hoisted_18","harvester","_hoisted_19","_hoisted_20","_hoisted_21","harvesterChart","_hoisted_22","_hoisted_23","monitoringChart","_hoisted_24","_hoisted_25","_hoisted_26","kubernetes","_hoisted_27","_hoisted_28","rancher","overallMessage","_hoisted_29","showImage","_hoisted_30","_hoisted_31","imageProgress","_component_PercentageBar","_hoisted_32","imageMessage","_hoisted_33","repoReady","isReady","message","_hoisted_34","_component_ProgressBarList","title","precent","nodesPercent","list","nodesStatus","sysServiceTotal","sysServiceUpgradeMessage","_hoisted_35","canStartedDownload","disabled","logDownloading","onClick","_cache","$event","downloadLog","_normalizeClass","_hoisted_36","isUpgradeSucceeded","ignoreMessage","_renderSlot","$slots","_","_component_Collapse","open","args","handleSwitch","item","name","state","percent","showAdvanced","undefined","emits","methods","$emit","PercentageBar","Collapse","ProgressBarList","BadgeStateFormatter","fetch","hash","$store","getters","HCI","IMAGE","images","dispatch","UPGRADE","upgrades","NODE","nodes","UPGRADE_LOG","upgradeLogs","allHash","filename","mapGetters","isVirtualCluster","currentProduct","HARVESTER","find","U","isLatestUpgrade","latestUpgradeLogResource","upgradeLogId","id","latestArchivesFileName","downloadArchivesStatus","upgradeImage","I","progress","upgradeImageMessage","createRepo","hasReadMessage","nodeUpgradeMessage","nodeTotalPercent","spec","version","setLabel","HCI_ANNOTATIONS","REAY_MESSAGE","save","generateLogFileName","res","doActionGrowl","waitFileGeneratedReady","Promise","resolve","log","timer","setInterval","async","opt","force","root","fileIsReady","clearInterval","then","___CSS_LOADER_EXPORT___","push","module","content","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.545.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.545.js new file mode 100644 index 00000000..c263540f --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.545.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[545],{55423:function(e,t,r){"use strict";r.d(t,{A:function(){return h}});var o=r(9274);const s={class:"vm-schedule-filter"},a={key:0,class:"banner-item bg-warning"},n=["disabled"],l={class:"filter-popup"};function i(e,t,r,i,c,d){const p=(0,o.resolveComponent)("RadioGroup"),u=(0,o.resolveComponent)("v-dropdown");return(0,o.openBlock)(),(0,o.createElementBlock)("div",s,[c.selected?((0,o.openBlock)(),(0,o.createElementBlock)("span",a,[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.tableHeaders.vmSchedule"))+(0,o.toDisplayString)(c.selected?` = ${c.selected}`:"")+" ",1),(0,o.createElementVNode)("i",{class:"icon icon-close ml-5",onClick:t[0]||(t[0]=(...e)=>d.remove&&d.remove(...e))})])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(u,{"popper-class":"vm-schedule-dropdown",triggers:d.scheduleOptions.length?["click"]:[],placement:"bottom-end",offset:"1",distance:20},{popper:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(p,{value:c.selected,"onUpdate:value":[t[1]||(t[1]=e=>c.selected=e),d.onSelect],class:"mr-10 ml-10",name:"model",options:d.scheduleOptions,labels:d.scheduleOptions},null,8,["value","options","labels","onUpdate:value"])])])),default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("button",{ref:"actionDropDown",class:"btn bg-primary mr-10",disabled:!d.enableFilterButton},[(0,o.renderSlot)(e.$slots,"title",{},(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.fields.filterSchedule")),1)]),!0)],8,n)])),_:3},8,["triggers"])])}var c=r(10196),d={name:"HarvesterFilterVMSchedule",emits:["change-rows"],components:{RadioGroup:c.z},props:{rows:{type:Array,required:!0}},data(){return{selected:""}},computed:{scheduleOptions(){const e=this.rows.map((e=>e.sourceSchedule)).filter((e=>e));return Array.from(new Set(e))},enableFilterButton(){return this.rows.some((e=>void 0!==e.sourceSchedule))}},methods:{onSelect(e){this.selected=e,this.filterRows()},remove(){this.selected="",this.filterRows()},filterRows(){if(!this.selected)return void this.$emit("change-rows",this.rows);const e=this.rows.filter((e=>e.sourceSchedule===this.selected));this.$emit("change-rows",e,this.selected)}},watch:{rows:{deep:!0,immediate:!1,handler(){this.filterRows()}}}},p=(r(21967),r(69753),r(47433));const u=(0,p.A)(d,[["render",i],["__scopeId","data-v-05c066f4"]]);var h=u},58784:function(e,t,r){"use strict";r.d(t,{A:function(){return h}});var o=r(9274);const s={class:"overview-web-console"};function a(e,t,r,a,n,l){const i=(0,o.resolveComponent)("ButtonDropdown");return(0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.createVNode)(i,{disabled:l.isOff,"no-drop":l.isOff,"button-label":"Console","dropdown-options":l.options,size:"sm",onClickAction:l.handleDropdown},null,8,["disabled","no-drop","dropdown-options","onClickAction"])])}var n=r(8552),l=r(65359),i=r(50784),c=r(20652),d={name:"VMConsoleBar",components:{ButtonDropdown:n.A},props:{resourceType:{type:Object,required:!0,default:()=>({})}},computed:{...(0,l.L8)({t:"i18n/t"}),isOff(){return this.resourceType.stateDisplay===i.OFF},options(){return[{label:this.t("harvester.virtualMachine.console.novnc"),value:"vnc"},{label:this.t("harvester.virtualMachine.console.serial"),value:"serial"}]}},methods:{handleDropdown(e){this.show(e.value)},show(e){let t=this.resourceType.metadata?.ownerReferences?.[0]?.uid;void 0===t&&(t=this.resourceType.metadata.uid);const r=window.location.host,o=window.location.pathname.replace(this.$route.path,""),s=this.$route?.params,a=`https://${r}${o}/${c.KR}/c/${s.cluster}/console/${t}/${e}`;window.open(a,"_blank",`toolbars=0,width=${screen.width-200},height=${screen.height-200},left=0,top=0,noreferrer`)},isEmpty(e){return void 0!==e&&0===Object.keys(e).length}}},p=(r(93969),r(47433));const u=(0,p.A)(d,[["render",a]]);var h=u},69760:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);const s={key:0},a={key:0};function n(e,t,r,n,l,i){const c=(0,o.resolveComponent)("BadgeState");return i.migrationState?((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[r.showSuccess?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",a,"/")),(0,o.createVNode)(c,{label:i.migrationState,color:i.migrationBackground},null,8,["label","color"])])):(0,o.createCommentVNode)("",!0)}var l=r(87102),i=r(32766),c={emits:["state-changed"],components:{BadgeState:l.j},props:{vmResource:{type:Object,required:!0},showSuccess:{type:Boolean,default:!0}},computed:{vmiResource(){const e=this.$store.getters["harvester/all"](i.rk.VMI)||[],t=e.find((e=>e?.metadata?.ownerReferences?.[0]?.uid===this.vmResource?.metadata?.uid));return t},migrationState(){return this.vmiResource?.migrationState?.status||""},migrationBackground(){return this.vmiResource?.migrationStateBackground||""}},watch:{migrationState(e){this.$emit("state-changed",e)}}},d=(r(50002),r(47433));const p=(0,d.A)(c,[["render",n],["__scopeId","data-v-9e992d88"]]);var u=p},98993:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return p}});var o=r(9274);const s={class:"state"};function a(e,t,r,a,n,l){const i=(0,o.resolveComponent)("HarvesterMigrationState"),c=(0,o.resolveComponent)("VMState"),d=(0,o.resolveComponent)("v-dropdown");return(0,o.openBlock)(),(0,o.createElementBlock)("span",null,[(0,o.withDirectives)((0,o.createVNode)(i,{"vm-resource":r.row,onStateChanged:l.migrationStateChanged},null,8,["vm-resource","onStateChanged"]),[[o.vShow,n.isMigrating]]),(0,o.withDirectives)((0,o.createElementVNode)("div",s,[(0,o.createVNode)(c,{row:r.row},null,8,["row"]),l.warningMessage.length?((0,o.openBlock)(),(0,o.createBlock)(d,{key:0,ref:"popover",trigger:"manual",offset:"16"},{popper:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",{onMouseenter:t[3]||(t[3]=e=>l.showMessage(!0)),onMouseleave:t[4]||(t[4]=e=>l.showMessage(!1))},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.warningMessage,((s,a)=>((0,o.openBlock)(),(0,o.createElementBlock)("p",{key:a},[(0,o.createTextVNode)((0,o.toDisplayString)(a+1)+". ",1),l.canMiss(r.row,s)?((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,class:"text-link",role:"button",onClick:t[2]||(t[2]=(...e)=>l.dismiss&&l.dismiss(...e))},(0,o.toDisplayString)(e.t("harvester.upgradePage.dismissMessage")),1)):(0,o.createCommentVNode)("",!0),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(s),1)])))),128))],32)])),default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("span",{class:"tooltip-target",onMouseenter:t[0]||(t[0]=e=>l.showMessage(!0)),onMouseleave:t[1]||(t[1]=e=>l.delayClose())},t[5]||(t[5]=[(0,o.createElementVNode)("i",{class:"icon icon-warning icon-lg text-warning"},null,-1)]),32)])),_:1},512)):(0,o.createCommentVNode)("",!0)],512),[[o.vShow,!n.isMigrating]])])}var n=r(74562),l=r(69760),i={components:{VMState:n.A,HarvesterMigrationState:l["default"]},props:{value:{type:String,default:""},row:{type:Object,required:!0},allNodeNetwork:{type:Array,default:()=>[]},allClusterNetwork:{type:Array,default:()=>[]}},data(){return{isMigrating:!1,timer:null}},beforeUnmount(){this.timer&&clearTimeout(this.timer)},computed:{warningMessage(){const e=[];if("VM error"===this.row?.actualState&&this.row.warningMessage?.message&&e.push(this.row.warningMessage?.message),this.row?.migrationMessage&&e.push(this.row?.migrationMessage.message),this.row.warningMessage?.message)if(this.row.warningMessage?.pod){const t=this.row.warningMessage.pod;t.metadata?.state?.error&&!/pod has unbound immediate PersistentVolumeClaims/.test(t.metadata?.state?.message)&&e.push(t.metadata?.state?.message)}else e.push(this.row.warningMessage?.message);return e}},methods:{migrationStateChanged(e){this.isMigrating="Failed"!==e&&!!e},showMessage(e){this.timer&&clearTimeout(this.timer),this.$refs.popover&&(e?this.$refs.popover.show():this.$refs.popover.hide())},delayClose(){this.timer=setTimeout((()=>{this.showMessage(!1)}),500)},async dismiss(){try{await this.row.doAction("dismissInsufficientResourceQuota")}catch(e){400!==e?._status&&503!==e?._status||this.$store.dispatch("growl/error",{title:this.t("harvester.notification.title.error"),message:e?.errors[0]},{root:!0})}},canMiss(e,t){return e.warningMessage?.message===t&&e.warningMessage?.canDismiss}}},c=(r(84326),r(47433));const d=(0,c.A)(i,[["render",a],["__scopeId","data-v-216558d8"]]);var p=d},9470:function(e,t,r){"use strict";r.r(t),r.d(t,{NETWORK_HEADERS:function(){return w},default:function(){return b}});var o=r(9274);const s={key:1},a={class:"state"};function n(e,t,r,n,l,i){const c=(0,o.resolveComponent)("Loading"),d=(0,o.resolveComponent)("router-link"),p=(0,o.resolveComponent)("Banner"),u=(0,o.resolveComponent)("BadgeState"),h=(0,o.resolveComponent)("v-dropdown"),m=(0,o.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0})):((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[i.abnormalNetwork.length?((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,{key:0},(0,o.renderList)(i.abnormalNetwork,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(p,{key:t,color:"error"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{to:e.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.name)+": ",1)])),_:2},1032,["to"]),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(e.message),1)])),_:2},1024)))),128)):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(m,(0,o.mergeProps)(e.$attrs,{headers:i.headers,"default-sort-by":"age",schema:i.schema,groupable:!0,rows:i.filterRows,"key-field":"_key"}),{"cell:state":(0,o.withCtx)((({row:e})=>[(0,o.createElementVNode)("div",a,[(0,o.createVNode)(u,{row:e},null,8,["row"]),e.clusterNetworkErrorMessage?((0,o.openBlock)(),(0,o.createBlock)(h,{key:0,trigger:"hover",offset:"16"},{popper:(0,o.withCtx)((()=>[(0,o.createElementVNode)("p",null,(0,o.toDisplayString)(e.clusterNetworkErrorMessage),1)])),default:(0,o.withCtx)((()=>[t[0]||(t[0]=(0,o.createElementVNode)("span",{class:"tooltip-target"},[(0,o.createElementVNode)("i",{class:"icon icon-warning icon-lg text-warning"})],-1))])),_:2},1024)):(0,o.createCommentVNode)("",!0)])])),_:1},16,["headers","schema","rows"])]))}var l=r(9980),i=r(84409),c=r(53500),d=r(74562),p=r(68774),u=r(35664),h=r(88339),m=r(2602),v=r(32766);const g={id:v.rk.NETWORK_ATTACHMENT,type:u.yx,attributes:{kind:v.rk.NETWORK_ATTACHMENT,namespaced:!0},metadata:{name:v.rk.NETWORK_ATTACHMENT}},w=[p.o_,p.CU,{name:"type",value:"vlanType",sort:"spec.config",labelKey:"tableHeaders.networkType"},{name:"vlan",value:"vlanId",sort:"spec.config",labelKey:"tableHeaders.networkVlan"},{name:"connectivity",value:"connectivity",labelKey:"tableHeaders.routeConnectivity",formatter:"BadgeStateFormatter",formatterOpts:{arbitrary:!0},width:130},p.K];var f={name:"HarvesterListNetworks",components:{ResourceTable:c.A,Banner:l.l,Loading:i.A,BadgeState:d.A},async fetch(){const e=this.$store.getters["currentCluster"],t=e.isHarvester?"harvester":"cluster",r={rows:this.$store.dispatch(`${t}/findAll`,{type:u.XG})};this.$store.getters[`${t}/schemaFor`](v.rk.NODE_NETWORK)&&(r.hostNetworks=this.$store.dispatch(`${t}/findAll`,{type:v.rk.NODE_NETWORK})),this.$store.getters[`${t}/schemaFor`](v.rk.CLUSTER_NETWORK)&&(r.clusterNetworks=this.$store.dispatch(`${t}/findAll`,{type:v.rk.CLUSTER_NETWORK}));const o=await(0,h.kR)(r);this.rows=o.rows,this.hostNetworks=o.hostNetworks||[]},data(){return{hash:{},rows:[],hosts:[],hostNetworks:[]}},computed:{headers(){return[p.c4,p.o_,p.CU,{name:"type",value:"vlanType",sort:"spec.config",labelKey:"tableHeaders.networkType"},{name:"clusterNetwork",value:"clusterNetwork",sort:"clusterNetwork",labelKey:"harvester.network.clusterNetwork.label"},{name:"vlan",value:"vlanId",sort:"spec.config",labelKey:"tableHeaders.networkVlan"},{name:"connectivity",value:"connectivity",labelKey:"tableHeaders.routeConnectivity",formatter:"NetworkRouteConnectivity",formatterOpts:{arbitrary:!0},width:130},p.K]},schema(){return g},abnormalNetwork(){const e=this.hostNetworks.filter((e=>!e.isReady));return e.map((e=>e.linkMessage))},filterRows(){return this.rows.filter((e=>!e.metadata?.annotations?.[m.r.STORAGE_NETWORK]))}},typeDisplay(){return this.$store.getters["type-map/labelFor"](g,99)}},k=(r(55336),r(47433));const y=(0,k.A)(f,[["render",n],["__scopeId","data-v-3a727eb5"]]);var b=y},61117:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return y},schema:function(){return g}});var o=r(9274);const s={key:1},a={key:1};function n(e,t,r,n,l,i){const c=(0,o.resolveComponent)("Loading"),d=(0,o.resolveComponent)("Masthead"),p=(0,o.resolveComponent)("FilterVMSchedule"),u=(0,o.resolveComponent)("router-link"),h=(0,o.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0})):((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.createVNode)(d,{schema:null,resource:l.resource,"type-display":i.typeDisplay,"create-button-label":e.t("harvester.vmSnapshot.createText")},null,8,["resource","type-display","create-button-label"]),(0,o.createVNode)(h,(0,o.mergeProps)(e.$attrs,{headers:i.headers,groupable:!0,rows:i.filteredRows,schema:i.schema,"sort-generation-fn":i.sortGenerationFn,"key-field":"_key","default-sort-by":"age"}),(0,o.createSlots)({"col:name":(0,o.withCtx)((({row:e})=>[(0,o.createElementVNode)("td",null,[(0,o.createElementVNode)("span",null,[e.status&&e.status.source?((0,o.openBlock)(),(0,o.createBlock)(u,{key:0,to:e.detailLocation},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.nameDisplay),1)])),_:2},1032,["to"])):((0,o.openBlock)(),(0,o.createElementBlock)("span",a,(0,o.toDisplayString)(e.nameDisplay),1))])])])),_:2},[i.schedulingVMBackupFeatureEnabled?{name:"more-header-middle",fn:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{rows:i.getRawRows,onChangeRows:i.changeRows},null,8,["rows","onChangeRows"])])),key:"0"}:void 0]),1040,["headers","rows","schema","sort-generation-fn"])]))}var l=r(84409),i=r(66656),c=r(53500),d=r(35664),p=r(88339),u=r(55423),h=r(68774),m=r(32766),v=r(41837);const g={id:m.rk.VM_SNAPSHOT,type:d.yx,attributes:{kind:m.rk.VM_SNAPSHOT,namespaced:!0},metadata:{name:m.rk.VM_SNAPSHOT}};var w={name:"HarvesterListVMSnapshot",components:{ResourceTable:c.A,Loading:l.A,Masthead:i.A,FilterVMSchedule:u.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await(0,p.kR)({vms:this.$store.dispatch(`${e}/findAll`,{type:m.rk.VM}),rows:this.$store.dispatch(`${e}/findAll`,{type:m.rk.BACKUP})}),r=this.$store.getters[`${e}/schemaFor`](m.rk.BACKUP);r?.collectionMethods.find((e=>"post"===e.toLowerCase()))||this.$store.dispatch("type-map/configureType",{match:m.rk.VM_SNAPSHOT,isCreatable:!1}),this.rows=t.rows,this.snapshots=t.rows},data(){const e={...this.$route.params},t=e.resource;return{rows:[],snapshots:[],searchSchedule:"",resource:t}},computed:{headers(){const e=[h.c4,h.o_,h.CU,{name:"targetVM",labelKey:"harvester.tableHeaders.targetVm",value:"attachVM",align:"left",sort:"attachVM",formatter:"AttachVMWithName"}];return this.schedulingVMBackupFeatureEnabled&&e.push({name:"backupCreatedFrom",labelKey:"harvester.tableHeaders.vmSchedule",value:"sourceSchedule",sort:"sourceSchedule",formatter:"BackupCreatedFrom"}),e.push({name:"readyToUse",labelKey:"tableHeaders.readyToUse",value:"status.readyToUse",align:"center",sort:"status.readyToUse",formatter:"Checked"},h.K),e},schedulingVMBackupFeatureEnabled(){return this.$store.getters["harvester-common/getFeatureEnabled"]("schedulingVMBackup")},getRawRows(){return this.rows.filter((e=>e.spec?.type===v.a.SNAPSHOT))},schema(){return g},typeDisplay(){return this.$store.getters["type-map/labelFor"](g,99)},filteredRows(){return this.snapshots.filter((e=>e.spec?.type!==v.a.BACKUP))}},methods:{changeRows(e,t){this["searchSchedule"]=t,this["snapshots"]=e},sortGenerationFn(){let e=(0,c.S)(this.schema,this.$store);return e+=this.searchSchedule,e}}},f=r(47433);const k=(0,f.A)(w,[["render",n]]);var y=k},29809:function(e,t,r){"use strict";r.r(t),r.d(t,{VM_HEADERS:function(){return f},default:function(){return N}});var o=r(9274);const s={key:1},a={class:"state"},n={class:"name-console"},l={key:1};function i(e,t,r,i,c,d){const p=(0,o.resolveComponent)("Loading"),u=(0,o.resolveComponent)("HarvesterVmState"),h=(0,o.resolveComponent)("router-link"),m=(0,o.resolveComponent)("ConsoleBar"),v=(0,o.resolveComponent)("ResourceTable"),g=(0,o.resolveDirective)("tooltip");return e.$fetchState.pending?((0,o.openBlock)(),(0,o.createBlock)(p,{key:0})):((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.createVNode)(v,(0,o.mergeProps)(e.$attrs,{headers:d.headers,"default-sort-by":"age",rows:d.rows,schema:r.schema,groupable:!0,"key-field":"_key"}),{"cell:state":(0,o.withCtx)((e=>[(0,o.createElementVNode)("div",a,[(0,o.createVNode)(u,{class:"vmstate",row:e.row,"all-node-network":c.allNodeNetworks,"all-cluster-network":c.allClusterNetworks},null,8,["row","all-node-network","all-cluster-network"])])])),"cell:name":(0,o.withCtx)((e=>[(0,o.createElementVNode)("div",n,[e.row.type!==c.HCI.VMI?((0,o.openBlock)(),(0,o.createBlock)(h,{key:0,to:e.row.detailLocation},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.row.metadata.name)+" ",1),d.lockIconTooltipMessage(e.row)?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("i",{key:0,class:(0,o.normalizeClass)(["icon icon-lock",{"green-icon":"all"===e.row.encryptedVolumeType,"yellow-icon":"partial"===e.row.encryptedVolumeType}])},null,2)),[[g,d.lockIconTooltipMessage(e.row)]]):(0,o.createCommentVNode)("",!0)])),_:2},1032,["to"])):((0,o.openBlock)(),(0,o.createElementBlock)("span",l,(0,o.toDisplayString)(e.row.metadata.name),1)),(0,o.createVNode)(m,{"resource-type":e.row,class:"console mr-10 ml-10"},null,8,["resource-type"])])])),_:1},16,["headers","rows","schema"])]))}var c=r(53500),d=r(68774),p=r(35664),u=r(88339),h=r(84409),m=r(76978),v=r(32766),g=r(98993),w=r(58784);const f=[d.c4,{...d.o_,width:350},d.CU,{name:"CPU",label:"CPU",sort:["spec.template.spec.domain.cpu.cores"],value:"spec.template.spec.domain.cpu.cores",align:"center",dashIfEmpty:!0},{name:"Memory",value:"displayMemory",sort:["memorySort"],align:"center",labelKey:"tableHeaders.memory",formatter:"Si",formatterOpts:{opts:{increment:1024,addSuffix:!0,maxExponent:3,minExponent:3,suffix:"i"},needParseSi:!0}},{name:"ip",label:"IP Address",value:"id",formatter:"HarvesterIpAddress",labelKey:"tableHeaders.ipAddress",sort:["id"]},{...d.K,sort:"metadata.creationTimestamp:desc"}];var k={name:"HarvesterListVM",components:{Loading:h.A,HarvesterVmState:g["default"],ConsoleBar:w.A,ResourceTable:c.A},props:{schema:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={vms:this.$store.dispatch(`${e}/findAll`,{type:v.rk.VM}),pod:this.$store.dispatch(`${e}/findAll`,{type:p.Sm}),pvcs:this.$store.dispatch(`${e}/findAll`,{type:p.YH}),pvs:this.$store.dispatch(`${e}/findAll`,{type:p.PV}),images:this.$store.dispatch(`${e}/findAll`,{type:v.rk.IMAGE}),restore:this.$store.dispatch(`${e}/findAll`,{type:v.rk.RESTORE}),backups:this.$store.dispatch(`${e}/findAll`,{type:v.rk.BACKUP}),storage:this.$store.dispatch(`${e}/findAll`,{type:p.fJ})};this.$store.getters[`${e}/schemaFor`](v.rk.RESOURCE_QUOTA)&&(t.resourceQuotas=this.$store.dispatch(`${e}/findAll`,{type:v.rk.RESOURCE_QUOTA})),this.$store.getters[`${e}/schemaFor`](p.NW)&&(t.nodes=this.$store.dispatch(`${e}/findAll`,{type:p.NW}),this.hasNode=!0),this.$store.getters[`${e}/schemaFor`](v.rk.NODE_NETWORK)&&(t.nodeNetworks=this.$store.dispatch(`${e}/findAll`,{type:v.rk.NODE_NETWORK})),this.$store.getters[`${e}/schemaFor`](v.rk.CLUSTER_NETWORK)&&(t.clusterNetworks=this.$store.dispatch(`${e}/findAll`,{type:v.rk.CLUSTER_NETWORK}));const r=await(0,u.kR)(t);this.allVMs=r.vms,this.allNodeNetworks=r.nodeNetworks||[],this.allClusterNetworks=r.clusterNetworks||[]},data(){return{hasNode:!1,allVMs:[],allVMIs:[],allNodeNetworks:[],allClusterNetworks:[],HCI:v.rk}},computed:{headers(){const e={name:"restoreProgress",labelKey:"harvester.tableHeaders.restore",value:"restoreProgress",align:"left",formatter:"HarvesterBackupProgressBar",width:200},t={name:"node",label:"Node",value:"nodeName",sort:["realAttachNodeName"],formatter:"HarvesterHost",labelKey:"harvester.tableHeaders.vm.node"},r=(0,m.o8)(f);return this.hasNode&&r.splice(-1,0,t),this.hasBackUpRestoreInProgress&&r.splice(-1,0,e),r},rows(){const e=this.allVMIs.filter((e=>!this.allVMs.find((t=>t.id===e.id))));return[...this.allVMs,...e]},hasBackUpRestoreInProgress(){return!!this.rows.find((e=>e.restoreResource&&!e.restoreResource.fromSnapshot&&!e.restoreResource.isComplete))}},async created(){const e=this.$store.getters["currentProduct"].inStore,t=await this.$store.dispatch(`${e}/findAll`,{type:v.rk.VMI});await this.$store.dispatch(`${e}/findAll`,{type:v.rk.VMIM}),this["allVMIs"]=t},methods:{lockIconTooltipMessage(e){const t="";return"all"===e.encryptedVolumeType?this.t("harvester.virtualMachine.volume.lockTooltip.all"):"partial"===e.encryptedVolumeType?this.t("harvester.virtualMachine.volume.lockTooltip.partial"):t}}},y=(r(76945),r(47433));const b=(0,y.A)(k,[["render",i],["__scopeId","data-v-731b1bf3"]]);var N=b},51151:function(e,t,r){"use strict";r.r(t);var o=r(36758),s=r.n(o),a=r(40935),n=r.n(a),l=n()(s());l.push([e.id,".vm-schedule-dropdown .v-popper__arrow-container{display:none}",""]),t["default"]=l},72921:function(e,t,r){"use strict";r.r(t);var o=r(36758),s=r.n(o),a=r(40935),n=r.n(a),l=n()(s());l.push([e.id,".vm-schedule-filter[data-v-05c066f4]{display:inline-block}.vm-schedule-filter .banner-item[data-v-05c066f4]{display:inline-block;font-size:16px;margin-right:10px;padding:6px;border-radius:2px}.vm-schedule-filter .banner-item i[data-v-05c066f4]{cursor:pointer;vertical-align:middle}.filter-popup[data-v-05c066f4]{width:-moz-max-content;width:max-content}",""]),t["default"]=l},37201:function(e,t,r){"use strict";r.r(t);var o=r(36758),s=r.n(o),a=r(40935),n=r.n(a),l=n()(s());l.push([e.id,".overview-web-console .btn{line-height:24px;min-height:24px}",""]),t["default"]=l},99826:function(e,t,r){"use strict";r.r(t);var o=r(36758),s=r.n(o),a=r(40935),n=r.n(a),l=n()(s());l.push([e.id,".badge-state[data-v-9e992d88]{padding:5px 10px;border:1px solid transparent;border-radius:20px}.badge-state.bg-info[data-v-9e992d88]{border-color:var(--primary)}.badge-state.bg-error[data-v-9e992d88]{border-color:var(--error)}.badge-state.bg-warning[data-v-9e992d88]{border-color:var(--warning)}.badge-state.bg-success[data-v-9e992d88]{color:var(--success);border-color:var(--success);background:transparent}.sortable-table TD .badge-state[data-v-9e992d88]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;word-wrap:break-word;display:inline-block;max-width:100%;position:relative;padding:2px 10px 1px 10px;font-size:1em;max-width:200px;font-size:.85em;vertical-align:middle}",""]),t["default"]=l},21126:function(e,t,r){"use strict";r.r(t);var o=r(36758),s=r.n(o),a=r(40935),n=r.n(a),l=n()(s());l.push([e.id,".state[data-v-216558d8]{display:flex;justify-content:space-between}.state .icon-warning[data-v-216558d8]{margin-top:2px}",""]),t["default"]=l},62376:function(e,t,r){"use strict";r.r(t);var o=r(36758),s=r.n(o),a=r(40935),n=r.n(a),l=n()(s());l.push([e.id,".state[data-v-3a727eb5]{display:flex;justify-content:space-between}.state .icon-warning[data-v-3a727eb5]{margin-top:2px}",""]),t["default"]=l},60049:function(e,t,r){"use strict";r.r(t);var o=r(36758),s=r.n(o),a=r(40935),n=r.n(a),l=n()(s());l.push([e.id,".state[data-v-731b1bf3]{display:flex}.state .vmstate[data-v-731b1bf3]{margin-right:6px}.green-icon[data-v-731b1bf3]{color:var(--success)}.yellow-icon[data-v-731b1bf3]{color:var(--warning)}.name-console[data-v-731b1bf3]{display:flex;align-items:center;justify-content:space-between}.name-console span[data-v-731b1bf3]{padding-right:4px;line-height:26px;white-space:nowrap}",""]),t["default"]=l},5662:function(e,t,r){"use strict";function o(e){const t=Object.keys(e),r=Object.values(e);return Promise.allSettled(r).then((e=>{const r={};for(let o=0;o<t.length;o++)"fulfilled"===e[o].status?r[t[o]]=e[o].value:r[t[o]]=[];return r}))}r.d(t,{v:function(){return o}})},21967:function(e,t,r){var o=r(51151);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=r(74825).A;s("59a4d00e",o,!0,{sourceMap:!1,shadowMode:!1})},69753:function(e,t,r){var o=r(72921);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=r(74825).A;s("e1fabce2",o,!0,{sourceMap:!1,shadowMode:!1})},93969:function(e,t,r){var o=r(37201);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=r(74825).A;s("84bb1b30",o,!0,{sourceMap:!1,shadowMode:!1})},50002:function(e,t,r){var o=r(99826);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=r(74825).A;s("3657a623",o,!0,{sourceMap:!1,shadowMode:!1})},84326:function(e,t,r){var o=r(21126);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=r(74825).A;s("390707e0",o,!0,{sourceMap:!1,shadowMode:!1})},55336:function(e,t,r){var o=r(62376);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=r(74825).A;s("526396c4",o,!0,{sourceMap:!1,shadowMode:!1})},76945:function(e,t,r){var o=r(60049);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=r(74825).A;s("52385cd1",o,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.545.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.545.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.545.js.map new file mode 100644 index 00000000..047598f2 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.545.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.545.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./components/FilterVMSchedule.vue","webpack://harvester-1.5.0-dev/./components/FilterVMSchedule.vue?ad60","webpack://harvester-1.5.0-dev/./components/VMConsoleBar.vue","webpack://harvester-1.5.0-dev/./components/VMConsoleBar.vue?836b","webpack://harvester-1.5.0-dev/./formatters/HarvesterMigrationState.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterMigrationState.vue?8f03","webpack://harvester-1.5.0-dev/./formatters/HarvesterVmState.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterVmState.vue?4d70","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.networkattachmentdefinition.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.networkattachmentdefinition.vue?a521","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.vmsnapshot.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.vmsnapshot.vue?43bc","webpack://harvester-1.5.0-dev/./list/kubevirt.io.virtualmachine.vue","webpack://harvester-1.5.0-dev/./list/kubevirt.io.virtualmachine.vue?a0bb","webpack://harvester-1.5.0-dev/./components/FilterVMSchedule.vue?8969","webpack://harvester-1.5.0-dev/./components/FilterVMSchedule.vue?f8be","webpack://harvester-1.5.0-dev/./components/VMConsoleBar.vue?3b12","webpack://harvester-1.5.0-dev/./formatters/HarvesterMigrationState.vue?b095","webpack://harvester-1.5.0-dev/./formatters/HarvesterVmState.vue?8a15","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.networkattachmentdefinition.vue?be28","webpack://harvester-1.5.0-dev/./list/kubevirt.io.virtualmachine.vue?2c4e","webpack://harvester-1.5.0-dev/./utils/promise.js","webpack://harvester-1.5.0-dev/./components/FilterVMSchedule.vue?6d50","webpack://harvester-1.5.0-dev/./components/FilterVMSchedule.vue?1871","webpack://harvester-1.5.0-dev/./components/VMConsoleBar.vue?922a","webpack://harvester-1.5.0-dev/./formatters/HarvesterMigrationState.vue?e5ec","webpack://harvester-1.5.0-dev/./formatters/HarvesterVmState.vue?737c","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.networkattachmentdefinition.vue?3c51","webpack://harvester-1.5.0-dev/./list/kubevirt.io.virtualmachine.vue?2dc1"],"sourcesContent":["<script>\nimport { RadioGroup } from '@components/Form/Radio';\n\nexport default {\n name: 'HarvesterFilterVMSchedule',\n\n emits: ['change-rows'],\n\n components: { RadioGroup },\n\n props: {\n rows: {\n type: Array,\n required: true,\n },\n },\n\n data() {\n return { selected: '' };\n },\n\n computed: {\n scheduleOptions() {\n const options = this.rows.map((r) => r.sourceSchedule).filter((r) => r);\n\n return Array.from(new Set(options));\n },\n enableFilterButton() {\n return this.rows.some((r) => r.sourceSchedule !== undefined);\n }\n },\n\n methods: {\n onSelect(selected) {\n this.selected = selected;\n this.filterRows();\n },\n\n remove() {\n this.selected = '';\n this.filterRows();\n },\n\n filterRows() {\n if (!this.selected) {\n this.$emit('change-rows', this.rows);\n\n return;\n }\n const filteredRows = this.rows.filter((row) => row.sourceSchedule === this.selected);\n\n this.$emit('change-rows', filteredRows, this.selected);\n }\n },\n\n watch: {\n rows: {\n deep: true,\n immediate: false,\n handler() {\n this.filterRows();\n }\n }\n }\n};\n</script>\n\n<template>\n <div\n class=\"vm-schedule-filter\"\n >\n <span\n v-if=\"selected\"\n class=\"banner-item bg-warning\"\n >\n {{ t('harvester.tableHeaders.vmSchedule') }}{{ selected ? ` = ${selected}`: '' }}\n <i\n class=\"icon icon-close ml-5\"\n @click=\"remove\"\n />\n </span>\n <v-dropdown\n popper-class=\"vm-schedule-dropdown\"\n :triggers=\"scheduleOptions.length ? ['click'] : []\"\n placement=\"bottom-end\"\n offset=\"1\"\n :distance=\"20\"\n >\n <button\n ref=\"actionDropDown\"\n class=\"btn bg-primary mr-10\"\n :disabled=\"!enableFilterButton\"\n >\n <slot name=\"title\">\n {{ t('harvester.fields.filterSchedule') }}\n </slot>\n </button>\n\n <template #popper>\n <div class=\"filter-popup\">\n <RadioGroup\n v-model:value=\"selected\"\n class=\"mr-10 ml-10\"\n name=\"model\"\n :options=\"scheduleOptions\"\n :labels=\"scheduleOptions\"\n @update:value=\"onSelect\"\n />\n </div>\n </template>\n </v-dropdown>\n </div>\n</template>\n\n<style lang=\"scss\">\n.vm-schedule-dropdown .v-popper__arrow-container {\n display: none;\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.vm-schedule-filter {\n display: inline-block;\n\n .banner-item {\n display: inline-block;\n font-size: 16px;\n margin-right: 10px;\n padding: 6px;\n border-radius: 2px;\n\n i {\n cursor: pointer;\n vertical-align: middle;\n }\n }\n}\n.filter-popup {\n width: max-content;\n}\n\n</style>\n","import { render } from \"./FilterVMSchedule.vue?vue&type=template&id=05c066f4&scoped=true\"\nimport script from \"./FilterVMSchedule.vue?vue&type=script&lang=js\"\nexport * from \"./FilterVMSchedule.vue?vue&type=script&lang=js\"\n\nimport \"./FilterVMSchedule.vue?vue&type=style&index=0&id=05c066f4&lang=scss\"\nimport \"./FilterVMSchedule.vue?vue&type=style&index=1&id=05c066f4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-05c066f4\"]])\n\nexport default __exports__","<script>\nimport ButtonDropdown from '@shell/components/ButtonDropdown';\nimport { mapGetters } from 'vuex';\nimport { OFF } from '../models/kubevirt.io.virtualmachine';\nimport { PRODUCT_NAME } from '../config/harvester';\n\nexport default {\n name: 'VMConsoleBar',\n\n components: { ButtonDropdown },\n\n props: {\n resourceType: {\n type: Object,\n required: true,\n default: () => {\n return {};\n }\n }\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n isOff() {\n return this.resourceType.stateDisplay === OFF;\n },\n\n options() {\n return [\n {\n label: this.t('harvester.virtualMachine.console.novnc'),\n value: 'vnc'\n },\n {\n label: this.t('harvester.virtualMachine.console.serial'),\n value: 'serial'\n }\n ];\n }\n },\n\n methods: {\n handleDropdown(c) {\n this.show(c.value);\n },\n\n show(type) {\n let uid = this.resourceType.metadata?.ownerReferences?.[0]?.uid;\n\n if (uid === undefined) {\n uid = this.resourceType.metadata.uid;\n }\n\n const host = window.location.host;\n const prefix = window.location.pathname.replace(this.$route.path, '');\n const params = this.$route?.params;\n\n const url = `https://${ host }${ prefix }/${ PRODUCT_NAME }/c/${ params.cluster }/console/${ uid }/${ type }`;\n\n window.open(\n url,\n '_blank',\n `toolbars=0,width=${ screen.width - 200 },height=${ screen.height - 200 },left=0,top=0,noreferrer`\n );\n },\n\n isEmpty(o) {\n return o !== undefined && Object.keys(o).length === 0;\n }\n }\n};\n</script>\n\n<template>\n <div class=\"overview-web-console\">\n <ButtonDropdown\n :disabled=\"isOff\"\n :no-drop=\"isOff\"\n button-label=\"Console\"\n :dropdown-options=\"options\"\n size=\"sm\"\n @click-action=\"handleDropdown\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n.overview-web-console {\n .btn {\n line-height: 24px;\n min-height: 24px;\n }\n}\n</style>\n","import { render } from \"./VMConsoleBar.vue?vue&type=template&id=31591718\"\nimport script from \"./VMConsoleBar.vue?vue&type=script&lang=js\"\nexport * from \"./VMConsoleBar.vue?vue&type=script&lang=js\"\n\nimport \"./VMConsoleBar.vue?vue&type=style&index=0&id=31591718&lang=scss\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { BadgeState } from '@components/BadgeState';\nimport { HCI } from '../types';\n\nexport default {\n emits: ['state-changed'],\n\n components: { BadgeState },\n\n props: {\n vmResource: {\n type: Object,\n required: true\n },\n showSuccess: {\n type: Boolean,\n default: true\n }\n },\n\n computed: {\n vmiResource() {\n const vmiList = this.$store.getters['harvester/all'](HCI.VMI) || [];\n const vmi = vmiList.find( (VMI) => {\n return VMI?.metadata?.ownerReferences?.[0]?.uid === this.vmResource?.metadata?.uid;\n });\n\n return vmi;\n },\n migrationState() {\n return this.vmiResource?.migrationState?.status || '';\n },\n migrationBackground() {\n return this.vmiResource?.migrationStateBackground || '';\n }\n },\n\n watch: {\n migrationState(neu) {\n this.$emit('state-changed', neu);\n }\n },\n};\n</script>\n\n<template>\n <div v-if=\"migrationState\">\n <span v-if=\"!showSuccess\">/</span>\n <BadgeState\n :label=\"migrationState\"\n :color=\"migrationBackground\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .badge-state {\n padding: 5px 10px;\n border: 1px solid transparent;\n border-radius: 20px;\n\n &.bg-info {\n border-color: var(--primary);\n }\n\n &.bg-error {\n border-color: var(--error);\n }\n\n &.bg-warning {\n border-color: var(--warning);\n }\n\n // Successful states are de-emphasized by using [text-]color instead of background-color\n &.bg-success {\n color: var(--success);\n border-color: var(--success);\n background: transparent;\n }\n }\n\n .sortable-table TD .badge-state {\n @include clip;\n display: inline-block;\n max-width: 100%;\n position: relative;\n padding: 2px 10px 1px 10px;\n font-size: 1em;\n max-width: 200px;\n font-size: .85em;\n vertical-align: middle;\n }\n</style>\n","import { render } from \"./HarvesterMigrationState.vue?vue&type=template&id=9e992d88&scoped=true\"\nimport script from \"./HarvesterMigrationState.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterMigrationState.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterMigrationState.vue?vue&type=style&index=0&id=9e992d88&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9e992d88\"]])\n\nexport default __exports__","<script>\nimport VMState from '@shell/components/formatter/BadgeStateFormatter';\nimport HarvesterMigrationState from './HarvesterMigrationState';\n\nexport default {\n components: { VMState, HarvesterMigrationState },\n props: {\n value: {\n type: String,\n default: ''\n },\n\n row: {\n type: Object,\n required: true\n },\n\n allNodeNetwork: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n allClusterNetwork: {\n type: Array,\n default: () => {\n return [];\n }\n }\n },\n\n data() {\n return {\n isMigrating: false,\n timer: null,\n };\n },\n\n beforeUnmount() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n\n computed: {\n warningMessage() {\n const out = [];\n\n if (this.row?.actualState === 'VM error' && this.row.warningMessage?.message) {\n out.push(this.row.warningMessage?.message);\n }\n\n if (this.row?.migrationMessage) {\n out.push(this.row?.migrationMessage.message);\n }\n\n if (this.row.warningMessage?.message) {\n if (this.row.warningMessage?.pod) {\n const pod = this.row.warningMessage.pod;\n\n if (pod.metadata?.state?.error && !/pod has unbound immediate PersistentVolumeClaims/.test(pod.metadata?.state?.message)) {\n out.push(pod.metadata?.state?.message);\n }\n } else {\n out.push(this.row.warningMessage?.message);\n }\n }\n\n return out;\n }\n },\n\n methods: {\n migrationStateChanged(neu) {\n if (neu === 'Failed') {\n this.isMigrating = false;\n } else {\n this.isMigrating = !!neu;\n }\n },\n\n showMessage(show) {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n\n if (this.$refs.popover) {\n if (show) {\n this.$refs.popover.show();\n } else {\n this.$refs.popover.hide();\n }\n }\n },\n\n delayClose() {\n this.timer = setTimeout(() => {\n this.showMessage(false);\n }, 500);\n },\n\n async dismiss() {\n try {\n await this.row.doAction('dismissInsufficientResourceQuota');\n } catch (err) {\n if (err?._status === 400 || err?._status === 503) {\n this.$store.dispatch('growl/error', {\n title: this.t('harvester.notification.title.error'),\n message: err?.errors[0]\n }, { root: true });\n }\n }\n },\n\n canMiss(row, message) {\n return row.warningMessage?.message === message && row.warningMessage?.canDismiss;\n }\n },\n};\n</script>\n\n<template>\n <span>\n <HarvesterMigrationState\n v-show=\"isMigrating\"\n :vm-resource=\"row\"\n @state-changed=\"migrationStateChanged\"\n />\n <div\n v-show=\"!isMigrating\"\n class=\"state\"\n >\n <VMState :row=\"row\" />\n <v-dropdown\n v-if=\"warningMessage.length\"\n ref=\"popover\"\n trigger=\"manual\"\n offset=\"16\"\n >\n <span\n class=\"tooltip-target\"\n @mouseenter=\"showMessage(true)\"\n @mouseleave=\"delayClose()\"\n >\n <i class=\"icon icon-warning icon-lg text-warning\" />\n </span>\n\n <template #popper>\n <div\n @mouseenter=\"showMessage(true)\"\n @mouseleave=\"showMessage(false)\"\n >\n <p\n v-for=\"(message, index) in warningMessage\"\n :key=\"index\"\n >\n {{ index + 1 }}.\n <a\n v-if=\"canMiss(row, message)\"\n class=\"text-link\"\n role=\"button\"\n @click=\"dismiss\"\n >\n {{ t('harvester.upgradePage.dismissMessage') }}\n </a>\n {{ message }}\n </p>\n </div>\n </template>\n </v-dropdown>\n </div>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n justify-content: space-between;\n\n .icon-warning {\n margin-top: 2px;\n }\n}\n</style>\n","import { render } from \"./HarvesterVmState.vue?vue&type=template&id=216558d8&scoped=true\"\nimport script from \"./HarvesterVmState.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVmState.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterVmState.vue?vue&type=style&index=0&id=216558d8&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-216558d8\"]])\n\nexport default __exports__","<script>\nimport { Banner } from '@components/Banner';\nimport Loading from '@shell/components/Loading';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport BadgeState from '@shell/components/formatter/BadgeStateFormatter';\n\nimport { NAME, AGE, NAMESPACE, STATE } from '@shell/config/table-headers';\nimport { NETWORK_ATTACHMENT, SCHEMA } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport { HCI as HCI_ANNOTATIONS } from '../config/labels-annotations';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.NETWORK_ATTACHMENT,\n type: SCHEMA,\n attributes: {\n kind: HCI.NETWORK_ATTACHMENT,\n namespaced: true\n },\n metadata: { name: HCI.NETWORK_ATTACHMENT },\n};\n\nexport const NETWORK_HEADERS = [\n NAME,\n NAMESPACE,\n {\n name: 'type',\n value: 'vlanType',\n sort: 'spec.config',\n labelKey: 'tableHeaders.networkType'\n },\n {\n name: 'vlan',\n value: 'vlanId',\n sort: 'spec.config',\n labelKey: 'tableHeaders.networkVlan'\n },\n {\n name: 'connectivity',\n value: 'connectivity',\n labelKey: 'tableHeaders.routeConnectivity',\n formatter: 'BadgeStateFormatter',\n formatterOpts: { arbitrary: true },\n width: 130,\n },\n AGE\n];\n\nexport default {\n name: 'HarvesterListNetworks',\n components: {\n ResourceTable,\n Banner,\n Loading,\n BadgeState,\n },\n\n async fetch() {\n const currentCluster = this.$store.getters['currentCluster'];\n const storeName = currentCluster.isHarvester ? 'harvester' : 'cluster';\n\n const _hash = { rows: this.$store.dispatch(`${ storeName }/findAll`, { type: NETWORK_ATTACHMENT }) };\n\n if (this.$store.getters[`${ storeName }/schemaFor`](HCI.NODE_NETWORK)) {\n _hash.hostNetworks = this.$store.dispatch(`${ storeName }/findAll`, { type: HCI.NODE_NETWORK });\n }\n\n if (this.$store.getters[`${ storeName }/schemaFor`](HCI.CLUSTER_NETWORK)) {\n _hash.clusterNetworks = this.$store.dispatch(`${ storeName }/findAll`, { type: HCI.CLUSTER_NETWORK });\n }\n\n const hash = await allHash(_hash);\n\n this.rows = hash.rows;\n this.hostNetworks = hash.hostNetworks || [];\n },\n\n data() {\n return {\n hash: {},\n rows: [],\n hosts: [],\n hostNetworks: [],\n };\n },\n\n computed: {\n headers() {\n return [\n STATE,\n NAME,\n NAMESPACE,\n {\n name: 'type',\n value: 'vlanType',\n sort: 'spec.config',\n labelKey: 'tableHeaders.networkType'\n },\n {\n name: 'clusterNetwork',\n value: 'clusterNetwork',\n sort: 'clusterNetwork',\n labelKey: 'harvester.network.clusterNetwork.label'\n },\n {\n name: 'vlan',\n value: 'vlanId',\n sort: 'spec.config',\n labelKey: 'tableHeaders.networkVlan'\n },\n {\n name: 'connectivity',\n value: 'connectivity',\n labelKey: 'tableHeaders.routeConnectivity',\n formatter: 'NetworkRouteConnectivity',\n formatterOpts: { arbitrary: true },\n width: 130,\n },\n AGE\n ];\n },\n\n schema() {\n return schema;\n },\n\n abnormalNetwork() {\n const notReadyCrd = this.hostNetworks.filter( (O) => !O.isReady);\n\n return notReadyCrd.map( (O) => O.linkMessage);\n },\n\n filterRows() {\n return this.rows.filter((row) => {\n return !row.metadata?.annotations?.[HCI_ANNOTATIONS.STORAGE_NETWORK];\n });\n }\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <template v-if=\"abnormalNetwork.length\">\n <Banner\n v-for=\"(item, i) in abnormalNetwork\"\n :key=\"i\"\n color=\"error\"\n >\n <router-link :to=\"item.to\">\n {{ item.name }}:\n </router-link>\n {{ item.message }}\n </Banner>\n </template>\n\n <ResourceTable\n v-bind=\"$attrs\"\n :headers=\"headers\"\n default-sort-by=\"age\"\n :schema=\"schema\"\n :groupable=\"true\"\n :rows=\"filterRows\"\n key-field=\"_key\"\n >\n <template #cell:state=\"{row}\">\n <div class=\"state\">\n <BadgeState\n :row=\"row\"\n />\n <v-dropdown\n v-if=\"row.clusterNetworkErrorMessage\"\n trigger=\"hover\"\n offset=\"16\"\n >\n <span class=\"tooltip-target\">\n <i class=\"icon icon-warning icon-lg text-warning\" />\n </span>\n\n <template #popper>\n <p>\n {{ row.clusterNetworkErrorMessage }}\n </p>\n </template>\n </v-dropdown>\n </div>\n </template>\n </ResourceTable>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n justify-content: space-between;\n\n .icon-warning {\n margin-top: 2px;\n }\n}\n</style>\n","import { render } from \"./harvesterhci.io.networkattachmentdefinition.vue?vue&type=template&id=3a727eb5&scoped=true\"\nimport script from \"./harvesterhci.io.networkattachmentdefinition.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.networkattachmentdefinition.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.networkattachmentdefinition.vue?vue&type=style&index=0&id=3a727eb5&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3a727eb5\"]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport Masthead from '@shell/components/ResourceList/Masthead';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { SCHEMA } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport FilterVMSchedule from '../components/FilterVMSchedule';\nimport { STATE, AGE, NAME, NAMESPACE } from '@shell/config/table-headers';\nimport { HCI } from '../types';\nimport { BACKUP_TYPE } from '../config/types';\nimport { defaultTableSortGenerationFn } from '@shell/components/ResourceTable.vue';\n\nexport const schema = {\n id: HCI.VM_SNAPSHOT,\n type: SCHEMA,\n attributes: {\n kind: HCI.VM_SNAPSHOT,\n namespaced: true\n },\n metadata: { name: HCI.VM_SNAPSHOT },\n};\n\nexport default {\n name: 'HarvesterListVMSnapshot',\n components: {\n ResourceTable, Loading, Masthead, FilterVMSchedule\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hash = await allHash({\n vms: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM }),\n rows: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.BACKUP }),\n });\n\n const schema = this.$store.getters[`${ inStore }/schemaFor`](HCI.BACKUP);\n\n if (!schema?.collectionMethods.find((x) => x.toLowerCase() === 'post')) {\n this.$store.dispatch('type-map/configureType', { match: HCI.VM_SNAPSHOT, isCreatable: false });\n }\n\n this.rows = hash.rows;\n this.snapshots = hash.rows;\n },\n\n data() {\n const params = { ...this.$route.params };\n\n const resource = params.resource;\n\n return {\n rows: [],\n snapshots: [],\n searchSchedule: '',\n resource,\n };\n },\n\n computed: {\n headers() {\n const cols = [\n STATE,\n NAME,\n NAMESPACE,\n {\n name: 'targetVM',\n labelKey: 'harvester.tableHeaders.targetVm',\n value: 'attachVM',\n align: 'left',\n sort: 'attachVM',\n formatter: 'AttachVMWithName'\n },\n ];\n\n if (this.schedulingVMBackupFeatureEnabled) {\n cols.push({\n name: 'backupCreatedFrom',\n labelKey: 'harvester.tableHeaders.vmSchedule',\n value: 'sourceSchedule',\n sort: 'sourceSchedule',\n formatter: 'BackupCreatedFrom',\n });\n }\n\n cols.push(...[\n {\n name: 'readyToUse',\n labelKey: 'tableHeaders.readyToUse',\n value: 'status.readyToUse',\n align: 'center',\n sort: 'status.readyToUse',\n formatter: 'Checked',\n },\n AGE\n ]);\n\n return cols;\n },\n\n schedulingVMBackupFeatureEnabled() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('schedulingVMBackup');\n },\n\n getRawRows() {\n return this.rows.filter((r) => r.spec?.type === BACKUP_TYPE.SNAPSHOT);\n },\n\n schema() {\n return schema;\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n },\n\n filteredRows() {\n return this.snapshots.filter((r) => r.spec?.type !== BACKUP_TYPE.BACKUP);\n },\n },\n\n methods: {\n changeRows(filteredRows, searchSchedule) {\n this['searchSchedule'] = searchSchedule;\n this['snapshots'] = filteredRows;\n },\n\n sortGenerationFn() {\n let base = defaultTableSortGenerationFn(this.schema, this.$store);\n\n base += this.searchSchedule;\n\n return base;\n },\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <Masthead\n :schema=\"null\"\n :resource=\"resource\"\n :type-display=\"typeDisplay\"\n :create-button-label=\"t('harvester.vmSnapshot.createText')\"\n />\n <ResourceTable\n v-bind=\"$attrs\"\n :headers=\"headers\"\n :groupable=\"true\"\n :rows=\"filteredRows\"\n :schema=\"schema\"\n :sort-generation-fn=\"sortGenerationFn\"\n key-field=\"_key\"\n default-sort-by=\"age\"\n >\n <template\n v-if=\"schedulingVMBackupFeatureEnabled\"\n #more-header-middle\n >\n <FilterVMSchedule\n :rows=\"getRawRows\"\n @change-rows=\"changeRows\"\n />\n </template>\n <template #col:name=\"{row}\">\n <td>\n <span>\n <router-link\n v-if=\"row.status && row.status.source\"\n :to=\"row.detailLocation\"\n >\n {{ row.nameDisplay }}\n </router-link>\n <span v-else>\n {{ row.nameDisplay }}\n </span>\n </span>\n </td>\n </template>\n </ResourceTable>\n </div>\n</template>\n","import { render } from \"./harvesterhci.io.vmsnapshot.vue?vue&type=template&id=4fa8fe89\"\nimport script from \"./harvesterhci.io.vmsnapshot.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.vmsnapshot.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { STATE, AGE, NAME, NAMESPACE } from '@shell/config/table-headers';\nimport {\n PVC, PV, NODE, POD, STORAGE_CLASS\n} from '@shell/config/types';\n\nimport { allHash } from '@shell/utils/promise';\nimport Loading from '@shell/components/Loading';\nimport { clone } from '@shell/utils/object';\nimport { HCI } from '../types';\nimport HarvesterVmState from '../formatters/HarvesterVmState';\nimport ConsoleBar from '../components/VMConsoleBar';\n\nexport const VM_HEADERS = [\n STATE,\n {\n ...NAME,\n width: 350,\n },\n NAMESPACE,\n {\n name: 'CPU',\n label: 'CPU',\n sort: ['spec.template.spec.domain.cpu.cores'],\n value: 'spec.template.spec.domain.cpu.cores',\n align: 'center',\n dashIfEmpty: true,\n },\n {\n name: 'Memory',\n value: 'displayMemory',\n sort: ['memorySort'],\n align: 'center',\n labelKey: 'tableHeaders.memory',\n formatter: 'Si',\n formatterOpts: {\n opts: {\n increment: 1024, addSuffix: true, maxExponent: 3, minExponent: 3, suffix: 'i',\n },\n needParseSi: true\n },\n },\n {\n name: 'ip',\n label: 'IP Address',\n value: 'id',\n formatter: 'HarvesterIpAddress',\n labelKey: 'tableHeaders.ipAddress',\n sort: ['id'],\n },\n {\n ...AGE,\n sort: 'metadata.creationTimestamp:desc',\n }\n];\n\nexport default {\n name: 'HarvesterListVM',\n components: {\n Loading,\n HarvesterVmState,\n ConsoleBar,\n ResourceTable\n },\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {\n vms: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM }),\n pod: this.$store.dispatch(`${ inStore }/findAll`, { type: POD }),\n pvcs: this.$store.dispatch(`${ inStore }/findAll`, { type: PVC }),\n pvs: this.$store.dispatch(`${ inStore }/findAll`, { type: PV }),\n images: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.IMAGE }),\n restore: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.RESTORE }),\n backups: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.BACKUP }),\n storage: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }),\n };\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.RESOURCE_QUOTA)) {\n _hash.resourceQuotas = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.RESOURCE_QUOTA });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](NODE)) {\n _hash.nodes = this.$store.dispatch(`${ inStore }/findAll`, { type: NODE });\n this.hasNode = true;\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.NODE_NETWORK)) {\n _hash.nodeNetworks = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.NODE_NETWORK });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.CLUSTER_NETWORK)) {\n _hash.clusterNetworks = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.CLUSTER_NETWORK });\n }\n\n const hash = await allHash(_hash);\n\n this.allVMs = hash.vms;\n this.allNodeNetworks = hash.nodeNetworks || [];\n this.allClusterNetworks = hash.clusterNetworks || [];\n },\n\n data() {\n return {\n hasNode: false,\n allVMs: [],\n allVMIs: [],\n allNodeNetworks: [],\n allClusterNetworks: [],\n HCI\n };\n },\n\n computed: {\n headers() {\n const restoreCol = {\n name: 'restoreProgress',\n labelKey: 'harvester.tableHeaders.restore',\n value: 'restoreProgress',\n align: 'left',\n formatter: 'HarvesterBackupProgressBar',\n width: 200,\n };\n const nodeCol = {\n name: 'node',\n label: 'Node',\n value: 'nodeName',\n sort: ['realAttachNodeName'],\n formatter: 'HarvesterHost',\n labelKey: 'harvester.tableHeaders.vm.node'\n };\n\n const cols = clone(VM_HEADERS);\n\n if (this.hasNode) {\n cols.splice(-1, 0, nodeCol);\n }\n\n if (this.hasBackUpRestoreInProgress) {\n cols.splice(-1, 0, restoreCol);\n }\n\n return cols;\n },\n\n rows() {\n const matchVMIs = this.allVMIs.filter((VMI) => !this.allVMs.find((VM) => VM.id === VMI.id));\n\n return [...this.allVMs, ...matchVMIs];\n },\n\n /**\n * We want to show the progress bar only for Backup's restore; snapshot's restore is immediate.\n */\n hasBackUpRestoreInProgress() {\n return !!this.rows.find((r) => r.restoreResource && !r.restoreResource.fromSnapshot && !r.restoreResource.isComplete);\n }\n },\n\n async created() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const vmis = await this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VMI });\n\n await this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VMIM });\n\n this['allVMIs'] = vmis;\n },\n\n methods: {\n lockIconTooltipMessage(row) {\n const message = '';\n\n if (row.encryptedVolumeType === 'all') {\n return this.t('harvester.virtualMachine.volume.lockTooltip.all');\n } else if (row.encryptedVolumeType === 'partial') {\n return this.t('harvester.virtualMachine.volume.lockTooltip.partial');\n }\n\n return message;\n }\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <ResourceTable\n v-bind=\"$attrs\"\n :headers=\"headers\"\n default-sort-by=\"age\"\n :rows=\"rows\"\n :schema=\"schema\"\n :groupable=\"true\"\n key-field=\"_key\"\n >\n <template\n #cell:state=\"scope\"\n class=\"state-col\"\n >\n <div class=\"state\">\n <HarvesterVmState\n class=\"vmstate\"\n :row=\"scope.row\"\n :all-node-network=\"allNodeNetworks\"\n :all-cluster-network=\"allClusterNetworks\"\n />\n </div>\n </template>\n\n <template #cell:name=\"scope\">\n <div class=\"name-console\">\n <router-link\n v-if=\"scope.row.type !== HCI.VMI\"\n :to=\"scope.row.detailLocation\"\n >\n {{ scope.row.metadata.name }}\n <i\n v-if=\"lockIconTooltipMessage(scope.row)\"\n v-tooltip=\"lockIconTooltipMessage(scope.row)\"\n class=\"icon icon-lock\"\n :class=\"{'green-icon': scope.row.encryptedVolumeType === 'all', 'yellow-icon': scope.row.encryptedVolumeType === 'partial'}\"\n />\n </router-link>\n <span v-else>\n {{ scope.row.metadata.name }}\n </span>\n <ConsoleBar\n :resource-type=\"scope.row\"\n class=\"console mr-10 ml-10\"\n />\n </div>\n </template>\n </ResourceTable>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n\n .vmstate {\n margin-right: 6px;\n }\n}\n\n.green-icon {\n color: var(--success);\n}\n\n.yellow-icon {\n color: var(--warning);\n}\n\n.name-console {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n span {\n padding-right: 4px;\n line-height: 26px;\n white-space: nowrap;\n }\n}\n</style>\n","import { render } from \"./kubevirt.io.virtualmachine.vue?vue&type=template&id=731b1bf3&scoped=true\"\nimport script from \"./kubevirt.io.virtualmachine.vue?vue&type=script&lang=js\"\nexport * from \"./kubevirt.io.virtualmachine.vue?vue&type=script&lang=js\"\n\nimport \"./kubevirt.io.virtualmachine.vue?vue&type=style&index=0&id=731b1bf3&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-731b1bf3\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vm-schedule-dropdown .v-popper__arrow-container{display:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vm-schedule-filter[data-v-05c066f4]{display:inline-block}.vm-schedule-filter .banner-item[data-v-05c066f4]{display:inline-block;font-size:16px;margin-right:10px;padding:6px;border-radius:2px}.vm-schedule-filter .banner-item i[data-v-05c066f4]{cursor:pointer;vertical-align:middle}.filter-popup[data-v-05c066f4]{width:-moz-max-content;width:max-content}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".overview-web-console .btn{line-height:24px;min-height:24px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".badge-state[data-v-9e992d88]{padding:5px 10px;border:1px solid transparent;border-radius:20px}.badge-state.bg-info[data-v-9e992d88]{border-color:var(--primary)}.badge-state.bg-error[data-v-9e992d88]{border-color:var(--error)}.badge-state.bg-warning[data-v-9e992d88]{border-color:var(--warning)}.badge-state.bg-success[data-v-9e992d88]{color:var(--success);border-color:var(--success);background:transparent}.sortable-table TD .badge-state[data-v-9e992d88]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;word-wrap:break-word;display:inline-block;max-width:100%;position:relative;padding:2px 10px 1px 10px;font-size:1em;max-width:200px;font-size:.85em;vertical-align:middle}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-216558d8]{display:flex;justify-content:space-between}.state .icon-warning[data-v-216558d8]{margin-top:2px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-3a727eb5]{display:flex;justify-content:space-between}.state .icon-warning[data-v-3a727eb5]{margin-top:2px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-731b1bf3]{display:flex}.state .vmstate[data-v-731b1bf3]{margin-right:6px}.green-icon[data-v-731b1bf3]{color:var(--success)}.yellow-icon[data-v-731b1bf3]{color:var(--warning)}.name-console[data-v-731b1bf3]{display:flex;align-items:center;justify-content:space-between}.name-console span[data-v-731b1bf3]{padding-right:4px;line-height:26px;white-space:nowrap}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export function allSettled(hash) {\n const keys = Object.keys(hash);\n const promises = Object.values(hash);\n\n return Promise.allSettled(promises).then((res) => {\n const out = {};\n\n for ( let i = 0 ; i < keys.length ; i++ ) {\n if (res[i].status === 'fulfilled') {\n out[keys[i]] = res[i].value;\n } else {\n out[keys[i]] = [];\n }\n }\n\n return out;\n });\n}\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./FilterVMSchedule.vue?vue&type=style&index=0&id=05c066f4&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"59a4d00e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./FilterVMSchedule.vue?vue&type=style&index=1&id=05c066f4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e1fabce2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./VMConsoleBar.vue?vue&type=style&index=0&id=31591718&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"84bb1b30\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterMigrationState.vue?vue&type=style&index=0&id=9e992d88&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3657a623\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterVmState.vue?vue&type=style&index=0&id=216558d8&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"390707e0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.networkattachmentdefinition.vue?vue&type=style&index=0&id=3a727eb5&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"526396c4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./kubevirt.io.virtualmachine.vue?vue&type=style&index=0&id=731b1bf3&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"52385cd1\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","key","_createElementBlock","_hoisted_1","$data","selected","_hoisted_2","_createTextVNode","_toDisplayString","_ctx","t","_createElementVNode","onClick","_cache","args","$options","remove","_createCommentVNode","_createVNode","_component_v_dropdown","triggers","scheduleOptions","length","placement","offset","distance","popper","_withCtx","_hoisted_4","_component_RadioGroup","value","$event","onSelect","name","options","labels","default","ref","disabled","enableFilterButton","_renderSlot","$slots","_hoisted_3","_","emits","components","RadioGroup","props","rows","type","Array","required","data","computed","this","map","r","sourceSchedule","filter","from","Set","some","undefined","methods","filterRows","$emit","filteredRows","row","watch","deep","immediate","handler","__exports__","render","_component_ButtonDropdown","isOff","size","onClickAction","handleDropdown","ButtonDropdown","resourceType","Object","mapGetters","stateDisplay","OFF","label","c","show","uid","metadata","ownerReferences","host","window","location","prefix","pathname","replace","$route","path","params","url","PRODUCT_NAME","cluster","open","screen","width","height","isEmpty","o","keys","migrationState","$props","showSuccess","_component_BadgeState","color","migrationBackground","BadgeState","vmResource","Boolean","vmiResource","vmiList","$store","getters","HCI","VMI","vmi","find","status","migrationStateBackground","neu","_component_HarvesterMigrationState","onStateChanged","migrationStateChanged","isMigrating","_component_VMState","warningMessage","_createBlock","trigger","onMouseenter","showMessage","onMouseleave","_Fragment","_renderList","message","index","canMiss","role","dismiss","delayClose","VMState","HarvesterMigrationState","String","allNodeNetwork","allClusterNetwork","timer","beforeUnmount","clearTimeout","out","actualState","push","migrationMessage","pod","state","error","test","$refs","popover","hide","setTimeout","doAction","err","_status","dispatch","title","errors","root","canDismiss","$fetchState","pending","_component_Loading","abnormalNetwork","item","i","_component_Banner","_component_router_link","to","_component_ResourceTable","_mergeProps","$attrs","headers","schema","groupable","clusterNetworkErrorMessage","id","NETWORK_ATTACHMENT","SCHEMA","attributes","kind","namespaced","NETWORK_HEADERS","NAME","NAMESPACE","sort","labelKey","formatter","formatterOpts","arbitrary","AGE","ResourceTable","Banner","Loading","fetch","currentCluster","storeName","isHarvester","_hash","NODE_NETWORK","hostNetworks","CLUSTER_NETWORK","clusterNetworks","hash","allHash","hosts","STATE","notReadyCrd","O","isReady","linkMessage","annotations","HCI_ANNOTATIONS","STORAGE_NETWORK","typeDisplay","_component_Masthead","resource","sortGenerationFn","_createSlots","source","detailLocation","nameDisplay","schedulingVMBackupFeatureEnabled","fn","_component_FilterVMSchedule","getRawRows","onChangeRows","changeRows","VM_SNAPSHOT","Masthead","FilterVMSchedule","inStore","vms","VM","BACKUP","collectionMethods","x","toLowerCase","match","isCreatable","snapshots","searchSchedule","cols","align","spec","BACKUP_TYPE","SNAPSHOT","base","defaultTableSortGenerationFn","scope","_component_HarvesterVmState","allNodeNetworks","allClusterNetworks","lockIconTooltipMessage","_normalizeClass","encryptedVolumeType","_component_ConsoleBar","VM_HEADERS","dashIfEmpty","opts","increment","addSuffix","maxExponent","minExponent","suffix","needParseSi","HarvesterVmState","ConsoleBar","POD","pvcs","PVC","pvs","PV","images","IMAGE","restore","RESTORE","backups","storage","STORAGE_CLASS","RESOURCE_QUOTA","resourceQuotas","NODE","nodes","hasNode","nodeNetworks","allVMs","allVMIs","restoreCol","nodeCol","clone","splice","hasBackUpRestoreInProgress","matchVMIs","restoreResource","fromSnapshot","isComplete","created","vmis","VMIM","___CSS_LOADER_EXPORT___","module","allSettled","promises","values","Promise","then","res","content","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.60.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.60.js new file mode 100644 index 00000000..bacdc0e0 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.60.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[60],{45060:function(e,t,n){var o,a,i,r=n(4364);(function(n,r){a=[],o=r,i="function"===typeof o?o.apply(t,a):o,void 0===i||(e.exports=i)})(0,(function(){"use strict";function t(e,t){return"undefined"==typeof t?t={autoBom:!1}:"object"!=typeof t&&(r.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}function o(e,t,n){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="blob",o.onload=function(){s(o.response,t,n)},o.onerror=function(){r.error("could not download file")},o.send()}function a(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function i(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(o){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var c="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof n.g&&n.g.global===n.g?n.g:void 0,s=c.saveAs||("object"!=typeof window||window!==c?function(){}:"download"in HTMLAnchorElement.prototype?function(e,t,n){var r=c.URL||c.webkitURL,s=document.createElement("a");t=t||e.name||"download",s.download=t,s.rel="noopener","string"==typeof e?(s.href=e,s.origin===location.origin?i(s):a(s.href)?o(e,t,n):i(s,s.target="_blank")):(s.href=r.createObjectURL(e),setTimeout((function(){r.revokeObjectURL(s.href)}),4e4),setTimeout((function(){i(s)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,n,r){if(n=n||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(t(e,r),n);else if(a(e))o(e,n,r);else{var c=document.createElement("a");c.href=e,c.target="_blank",setTimeout((function(){i(c)}))}}:function(e,t,n,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),"string"==typeof e)return o(e,t,n);var i="application/octet-stream"===e.type,r=/constructor/i.test(c.HTMLElement)||c.safari,s=/CriOS\/[\d]+/.test(navigator.userAgent);if((s||i&&r)&&"object"==typeof FileReader){var f=new FileReader;f.onloadend=function(){var e=f.result;e=s?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=e:location=e,a=null},f.readAsDataURL(e)}else{var l=c.URL||c.webkitURL,u=l.createObjectURL(e);a?a.location=u:location.href=u,a=null,setTimeout((function(){l.revokeObjectURL(u)}),4e4)}});c.saveAs=s.saveAs=s,e.exports=s}))}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.60.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.60.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.60.js.map new file mode 100644 index 00000000..228d9761 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.60.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.60.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/file-saver/dist/FileSaver.min.js"],"sourcesContent":["(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(b,c,d){var e=new XMLHttpRequest;e.open(\"GET\",b),e.responseType=\"blob\",e.onload=function(){a(e.response,c,d)},e.onerror=function(){console.error(\"could not download file\")},e.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(a,b,d,e){if(e=e||open(\"\",\"_blank\"),e&&(e.document.title=e.document.body.innerText=\"downloading...\"),\"string\"==typeof a)return c(a,b,d);var g=\"application/octet-stream\"===a.type,h=/constructor/i.test(f.HTMLElement)||f.safari,i=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((i||g&&h)&&\"object\"==typeof FileReader){var j=new FileReader;j.onloadend=function(){var a=j.result;a=i?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),e?e.location.href=a:location=a,e=null},j.readAsDataURL(a)}else{var k=f.URL||f.webkitURL,l=k.createObjectURL(a);e?e.location=l:location.href=l,e=null,setTimeout(function(){k.revokeObjectURL(l)},4E4)}});f.saveAs=a.saveAs=a,\"undefined\"!=typeof module&&(module.exports=a)});\n\n//# sourceMappingURL=FileSaver.min.js.map"],"names":["this","b","a","autoBom","console","warn","test","type","Blob","c","d","e","XMLHttpRequest","open","responseType","onload","response","onerror","error","send","status","dispatchEvent","MouseEvent","document","createEvent","initMouseEvent","window","f","self","g","global","saveAs","HTMLAnchorElement","prototype","h","i","URL","webkitURL","j","createElement","name","download","rel","href","origin","location","target","createObjectURL","setTimeout","revokeObjectURL","navigator","msSaveOrOpenBlob","title","body","innerText","HTMLElement","safari","userAgent","FileReader","onloadend","result","replace","readAsDataURL","k","l","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.623.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.623.js new file mode 100644 index 00000000..f6a00d0c --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.623.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[623],{68732:function(e,t,r){"use strict";r.d(t,{A:function(){return v}});var a=r(9274);const o={class:"consumption-gauge"},l={key:0},s={class:"numbers"},n={key:0},i={key:1},c={class:"numbers-stats"},d={class:"percentage"},u={class:"mt-10"};function p(e,t,r,p,m,f){const h=(0,a.resolveComponent)("PercentageBar");return(0,a.openBlock)(),(0,a.createElementBlock)("div",o,[r.resourceName&&!r.usedAsResourceName?((0,a.openBlock)(),(0,a.createElementBlock)("h3",l,(0,a.toDisplayString)(r.resourceName),1)):(0,a.createCommentVNode)("",!0),(0,a.createElementVNode)("div",s,[(0,a.renderSlot)(e.$slots,"title",{amountTemplateValues:f.amountTemplateValues,formattedPercentage:f.formattedPercentage},(()=>[r.usedAsResourceName?((0,a.openBlock)(),(0,a.createElementBlock)("h4",n,(0,a.toDisplayString)(r.resourceName),1)):((0,a.openBlock)(),(0,a.createElementBlock)("span",i,(0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.used")),1)),(0,a.createElementVNode)("span",c,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.amount",f.amountTemplateValues))+" ",1),(0,a.createElementVNode)("span",d,[t[0]||(t[0]=(0,a.createElementVNode)("i",null,"/ ",-1)),(0,a.createTextVNode)((0,a.toDisplayString)(f.formattedPercentage),1)])])]))]),(0,a.createElementVNode)("div",u,[(0,a.createVNode)(h,{modelValue:f.percentageBarValue,"color-stops":r.colorStops},null,8,["modelValue","color-stops"])])])}var m=r(12243),f=r(92043),h={components:{PercentageBar:m.A},props:{resourceName:{type:String,default:""},capacity:{type:Number,required:!0},used:{type:Number,required:!0},units:{type:String,default:""},numberFormatter:{type:Function,default:e=>Number.isInteger(e)?e:e.toFixed(2)},colorStops:{type:Object,default:null},usedAsResourceName:{type:Boolean,defaut:!1}},computed:{displayUnits(){return this.units?` ${this.units}`:""},percentageBarValue(){return this.used&&this.capacity?100*this.used/this.capacity:0},amountTemplateValues(){return{used:this.numberFormatter(this.used||0),total:this.numberFormatter(this.capacity||0),unit:this.displayUnits}},formattedPercentage(){return(0,f.l9)(this.percentageBarValue)}}},y=(r(95606),r(47433));const g=(0,y.A)(h,[["render",p]]);var v=g},38076:function(e,t,r){"use strict";r.d(t,{A:function(){return d}});var a=r(9274);function o(e,t,r,o,l,s){return r.text?((0,a.openBlock)(),(0,a.createElementBlock)("a",{key:0,class:(0,a.normalizeClass)(["copy-to-clipboard-text",{copied:l.copied,plain:r.plain}]),href:"#",onClick:t[0]||(t[0]=(...e)=>s.clicked&&s.clicked(...e))},[(0,a.createTextVNode)((0,a.toDisplayString)(r.text)+" ",1),(0,a.createElementVNode)("i",{class:(0,a.normalizeClass)(["icon",{"icon-copy":!l.copied,"icon-checkmark":l.copied}])},null,2)],2)):(0,a.createCommentVNode)("",!0)}var l=r(48881),s=r(99726),n={emits:["error"],props:{text:{type:String,required:!0},plain:{type:Boolean,default:!1}},data(){return{copied:!1}},methods:{clicked(e){this.copied||(e.preventDefault(),(0,l.e)(this.text).then((()=>{this.copied=!0;let t=e.target;"I"===t.tagName&&(t=t.parentElement||t),setTimeout((()=>{this.copied=!1}),500)})).catch((e=>{this.$emit("error",(0,s.rz)(e))})))}}},i=(r(48734),r(47433));const c=(0,i.A)(n,[["render",o],["__scopeId","data-v-d8c131ea"]]);var d=c},12243:function(e,t,r){"use strict";r.d(t,{A:function(){return y}});var a=r(9274);const o={class:"percentage-bar"},l={key:0,class:"ml-5 percentage-value"};function s(e,t,r,s,n,i){const c=(0,a.resolveComponent)("Bar");return(0,a.openBlock)(),(0,a.createElementBlock)("span",o,[(0,a.createVNode)(c,{percentage:r.modelValue,"primary-color":i.primaryColor,slices:r.slices},null,8,["percentage","primary-color","slices"]),r.showPercentage?((0,a.openBlock)(),(0,a.createElementBlock)("span",l,(0,a.toDisplayString)(i.formattedPercentage),1)):(0,a.createCommentVNode)("",!0)])}function n(e,t,r,o,l,s){return(0,a.openBlock)(),(0,a.createElementBlock)("div",{class:"bar",style:(0,a.normalizeStyle)(s.barStyle)},[(0,a.createElementVNode)("div",{class:"indicator",style:(0,a.normalizeStyle)(s.indicatorStyle)},null,4),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(s.sliceStyles,((e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:t,class:"slice",style:(0,a.normalizeStyle)(e)},null,4)))),128))],4)}var i={props:{percentage:{type:Number,required:!0},primaryColor:{type:String,default:"--primary"},secondaryColor:{type:String,default:"--border"},slices:{type:Array,default:()=>[]}},computed:{indicatorStyle(){return{width:`${this.percentage}%`,backgroundColor:`var(${this.primaryColor})`}},barStyle(){return{backgroundColor:`var(${this.secondaryColor})`}},sliceStyles(){return this.slices.map((e=>({left:`${e}%`,visibility:e<this.percentage?"visible":"hidden"})))}}},c=(r(54752),r(47433));const d=(0,c.A)(i,[["render",n],["__scopeId","data-v-b4f4e2ae"]]);var u=d,p=r(92043);const m={LESS:"LESS",MORE:"MORE"};var f={components:{Bar:u},props:{modelValue:{type:Number,required:!0,validator(e){return e>=0}},preferredDirection:{type:String,default:m.LESS},showPercentage:{type:Boolean,default:!1},colorStops:{type:Object,default:null},slices:{type:Array,default:()=>[]}},computed:{primaryColor(){const e=this.preferredDirection===m.LESS;if(this.colorStops){const t=Object.keys(this.colorStops).sort();if(e){let e=t.length-1;while(this.modelValue<t[e])e--;return this.colorStops[t[e]]}{let e=0;while(this.modelValue>t[e])e++;return this.colorStops[t[e]]}}const t=e?80:20,r=e?this.modelValue:t,a=e?t:this.modelValue;return r<=a?"--primary":"--error"},formattedPercentage(){return(0,p.l9)(this.modelValue)}}};r(70738);const h=(0,c.A)(f,[["render",s],["__scopeId","data-v-4ade54a6"]]);var y=h},15503:function(e,t,r){"use strict";r.d(t,{A:function(){return p}});var a=r(9274);const o=["aria-label"];function l(e,t,r,l,s,n){const i=(0,a.resolveDirective)("trim-whitespace");return(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("div",{class:(0,a.normalizeClass)({progress:!0,multi:n.pieces.length>1}),"aria-label":n.ariaLabelText},[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(n.pieces,((e,t)=>(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:t,class:(0,a.normalizeClass)({piece:!0,[e.color]:!0}),style:(0,a.normalizeStyle)(e.style)},null,6)),[[i]]))),128))],10,o)),[[i]])}var s=r(74302),n=r(76978),i={props:{values:{type:Array,required:!0},colorKey:{type:String,default:"color"},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},min:{type:Number,default:0},max:{type:Number,default:null},minPercent:{type:Number,default:5},showZeros:{type:Boolean,default:!1}},computed:{pieces(){const e=[];for(const l of this.values){const t=(0,n.Jt)(l,this.colorKey),r=(0,n.Jt)(l,this.labelKey),a=(0,n.Jt)(l,this.valueKey);(0!==a||this.showZeros)&&e.push({color:t,label:r,value:a})}const t=this.minPercent||0,r=this.min||0;let a=this.max,o=0;this.max||(a=100,e.length&&(a=e.map((e=>e.value)).reduce(((e,t)=>e+t))));for(const l of e){const e=Math.max(t,c(l.value,r,a));l.percent=e,o+=e}o>100&&((0,s.Ul)(e,"percent",!0)[0].percent-=o-100);for(const l of e)l.style=`width: ${l.percent}%`;return e.filter((e=>e.percent))},ariaLabelText(){if(Array.isArray(this.values)&&this.values.length){let e="";return this.values.forEach((t=>{e+=`${t.value} ${1===t.value?"item":"items"} ${t.label}`})),e}return""}}};function c(e,t,r){e=Math.max(t,Math.min(r,e));let a=e/(r-t)*100;return a=Math.floor(100*a)/100,a}r(11740);var d=r(47433);const u=(0,d.A)(i,[["render",l],["__scopeId","data-v-f3ae1ea4"]]);var p=u},33814:function(e,t,r){"use strict";r.r(t);var a=r(36758),o=r.n(a),l=r(40935),s=r.n(l),n=s()(o());n.push([e.id,".consumption-gauge .numbers{display:flex;flex-direction:row;justify-content:space-between}.consumption-gauge .numbers-stats{display:flex;flex-direction:row;align-items:center;gap:10px;align-self:baseline}.consumption-gauge .numbers .percentage{font-weight:700}.consumption-gauge .numbers .percentage i{margin-right:10px}",""]),t["default"]=n},82398:function(e,t,r){"use strict";r.r(t);var a=r(36758),o=r.n(a),l=r(40935),s=r.n(l),n=s()(o());n.push([e.id,".copy-to-clipboard-text[data-v-d8c131ea]{white-space:nowrap}.copy-to-clipboard-text.plain[data-v-d8c131ea]{color:var(--body-text)}.copy-to-clipboard-text.plain[data-v-d8c131ea]:hover{text-decoration:none}.copy-to-clipboard-text.copied[data-v-d8c131ea]{pointer-events:none;color:var(--success)}",""]),t["default"]=n},56530:function(e,t,r){"use strict";r.r(t);var a=r(36758),o=r.n(a),l=r(40935),s=r.n(l),n=s()(o());n.push([e.id,".percentage-bar[data-v-4ade54a6]{display:flex;flex-direction:row}.percentage-bar .percentage-value[data-v-4ade54a6]{word-break:keep-all}",""]),t["default"]=n},54492:function(e,t,r){"use strict";r.r(t);var a=r(36758),o=r.n(a),l=r(40935),s=r.n(l),n=s()(o());n.push([e.id,".progress[data-v-f3ae1ea4]{display:block;border-radius:90px;background-color:var(--progress-bg);height:10px;width:100px}.progress .piece[data-v-f3ae1ea4]{display:inline-block;height:10px;border-radius:0;border-right:1px solid var(--progress-divider);vertical-align:top}.progress .piece[data-v-f3ae1ea4]:first-child{border-top-left-radius:90px;border-bottom-left-radius:90px}.progress .piece[data-v-f3ae1ea4]:last-child{border-top-right-radius:90px;border-bottom-right-radius:90px;border-right:0}.piece.bg-success[data-v-f3ae1ea4]:only-child{opacity:.5}",""]),t["default"]=n},22880:function(e,t,r){"use strict";r.r(t);var a=r(36758),o=r.n(a),l=r(40935),s=r.n(l),n=s()(o());n.push([e.id,".bar[data-v-b4f4e2ae]{width:100%;height:15px;border-radius:7.5px;overflow:hidden;position:relative}.bar .indicator[data-v-b4f4e2ae]{height:100%}.bar .slice[data-v-b4f4e2ae]{position:absolute;top:0;bottom:0;width:1px;background-color:var(--body-bg)}",""]),t["default"]=n},95606:function(e,t,r){var a=r(33814);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var o=r(74825).A;o("0177b65e",a,!0,{sourceMap:!1,shadowMode:!1})},48734:function(e,t,r){var a=r(82398);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var o=r(74825).A;o("3ce8dc3a",a,!0,{sourceMap:!1,shadowMode:!1})},70738:function(e,t,r){var a=r(56530);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var o=r(74825).A;o("b37b1fae",a,!0,{sourceMap:!1,shadowMode:!1})},11740:function(e,t,r){var a=r(54492);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var o=r(74825).A;o("7c53273f",a,!0,{sourceMap:!1,shadowMode:!1})},54752:function(e,t,r){var a=r(22880);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var o=r(74825).A;o("bcd5ae90",a,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.623.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.623.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.623.js.map new file mode 100644 index 00000000..4b12bf2c --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.623.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.623.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ConsumptionGauge.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ConsumptionGauge.vue?c2d3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?432c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?3786","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?1d96","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue?ef45","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ConsumptionGauge.vue?78c1","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?c2d2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?a566","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue?415a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?23d8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ConsumptionGauge.vue?2b4e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?a90d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/PercentageBar.vue?53c9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue?06b3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Bar.vue?4823"],"sourcesContent":["<script>\nimport PercentageBar from '@shell/components/PercentageBar';\nimport { formatPercent } from '@shell/utils/string';\n\n/**\n * A detailed view of how much a resource is being consumed.\n */\nexport default {\n components: { PercentageBar },\n props: {\n /**\n * The name of the resource to be displayed.\n */\n resourceName: {\n type: String,\n default: ''\n },\n /**\n * The total amount of the resource (both used and unused amount).\n */\n capacity: {\n type: Number,\n required: true\n },\n /**\n * The amount of the resource that is currently in use.\n */\n used: {\n type: Number,\n required: true\n },\n /**\n * The units that should be displayed when referencing amounts of the resource.\n */\n units: {\n type: String,\n default: ''\n },\n /**\n * A method which can be used to format the *capacity* and *used* numbers for display.\n */\n numberFormatter: {\n type: Function,\n default: (value) => Number.isInteger(value) ? value : value.toFixed(2)\n },\n\n /**\n * Optional map of css color class: percentage stops to apply to bar\n */\n\n colorStops: {\n type: Object,\n default: null\n },\n\n /**\n * Reduce the vertial height by changed 'Used' for the resource name\n */\n usedAsResourceName: {\n type: Boolean,\n defaut: false\n }\n },\n computed: {\n displayUnits() {\n if ( this.units ) {\n return ` ${ this.units }`;\n }\n\n return '';\n },\n percentageBarValue() {\n if (!this.used || !this.capacity) {\n return 0;\n }\n\n return (this.used * 100) / this.capacity;\n },\n amountTemplateValues() {\n return {\n used: this.numberFormatter(this.used || 0),\n total: this.numberFormatter(this.capacity || 0),\n unit: this.displayUnits\n };\n },\n formattedPercentage() {\n return formatPercent(this.percentageBarValue);\n }\n }\n};\n</script>\n\n<template>\n <div class=\"consumption-gauge\">\n <h3 v-if=\"resourceName && !usedAsResourceName\">\n {{ resourceName }}\n </h3>\n <div class=\"numbers\">\n <!-- @slot Optional slot to use as the title rather than showing the resource name -->\n <slot\n name=\"title\"\n :amountTemplateValues=\"amountTemplateValues\"\n :formattedPercentage=\"formattedPercentage\"\n >\n <h4 v-if=\"usedAsResourceName\">\n {{ resourceName }}\n </h4>\n <span v-else>{{ t('node.detail.glance.consumptionGauge.used') }}</span>\n <span class=\"numbers-stats\">\n {{ t('node.detail.glance.consumptionGauge.amount', amountTemplateValues) }}\n <span class=\"percentage\"><i>/ </i>{{ formattedPercentage }}</span>\n </span>\n </slot>\n </div>\n <div class=\"mt-10\">\n <PercentageBar\n :modelValue=\"percentageBarValue\"\n :color-stops=\"colorStops\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.consumption-gauge {\n .numbers {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n &-stats {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 10px;\n align-self: baseline;\n\n }\n\n .percentage {\n font-weight: bold;\n i {\n margin-right: 10px;\n }\n }\n }\n}\n</style>\n","import { render } from \"./ConsumptionGauge.vue?vue&type=template&id=0160c554\"\nimport script from \"./ConsumptionGauge.vue?vue&type=script&lang=js\"\nexport * from \"./ConsumptionGauge.vue?vue&type=script&lang=js\"\n\nimport \"./ConsumptionGauge.vue?vue&type=style&index=0&id=0160c554&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { copyTextToClipboard } from '@shell/utils/clipboard';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nexport default {\n emits: ['error'],\n\n props: {\n text: {\n type: String,\n required: true,\n },\n // Show as plain - don't show in link style\n plain: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return { copied: false };\n },\n\n methods: {\n clicked(event) {\n if (!this.copied) {\n event.preventDefault();\n copyTextToClipboard(this.text).then(() => {\n this.copied = true;\n\n let t = event.target;\n\n if (t.tagName === 'I') {\n t = t.parentElement || t;\n }\n setTimeout(() => {\n this.copied = false;\n }, 500);\n }).catch((e) => {\n this.$emit('error', exceptionToErrorsArray(e));\n });\n }\n },\n }\n};\n</script>\n\n<template>\n <a\n v-if=\"text\"\n class=\"copy-to-clipboard-text\"\n :class=\"{ 'copied': copied, 'plain': plain}\"\n href=\"#\"\n @click=\"clicked\"\n >\n {{ text }} <i\n class=\"icon\"\n :class=\"{ 'icon-copy': !copied, 'icon-checkmark': copied}\"\n />\n </a>\n</template>\n<style lang=\"scss\" scoped>\n .copy-to-clipboard-text {\n white-space: nowrap;\n &.plain {\n color: var(--body-text);\n\n &:hover {\n text-decoration: none;\n }\n }\n\n &.copied {\n pointer-events: none;\n color: var(--success);\n }\n }\n</style>\n","import { render } from \"./CopyToClipboardText.vue?vue&type=template&id=d8c131ea&scoped=true\"\nimport script from \"./CopyToClipboardText.vue?vue&type=script&lang=js\"\nexport * from \"./CopyToClipboardText.vue?vue&type=script&lang=js\"\n\nimport \"./CopyToClipboardText.vue?vue&type=style&index=0&id=d8c131ea&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d8c131ea\"]])\n\nexport default __exports__","<script>\nimport Bar from '@shell/components/graph/Bar';\nimport { formatPercent } from '@shell/utils/string';\n\nexport const PreferredDirection = {\n LESS: 'LESS',\n MORE: 'MORE'\n};\n\n/**\n * A percentage bar which can be used to display how much a resource is being consumed.\n */\nexport default {\n components: { Bar },\n props: {\n /**\n * A value representing the percentage to be displayed. *Must be a value between 0 and 100*.\n */\n modelValue: {\n type: Number,\n required: true,\n validator(value) {\n return value >= 0;\n }\n },\n\n /**\n * A value which indicates which direction is better so we can change the color appropriately (Valid values: 'LESS' or 'MORE')\n */\n preferredDirection: {\n type: String,\n default: PreferredDirection.LESS\n },\n\n /**\n * Determines whether we display the numerical percentage value to the right of the bar.\n */\n showPercentage: {\n type: Boolean,\n default: false\n },\n\n /**\n * Optional map of percentage:color class stops to apply to bar\n */\n\n colorStops: {\n type: Object,\n default: null\n },\n\n /**\n * Show vertical lines to denote where multiple sources that are contributing to this percentage end\n */\n slices: {\n type: Array,\n default: () => []\n }\n },\n\n computed: {\n primaryColor() {\n const isLess = this.preferredDirection === PreferredDirection.LESS;\n\n if (this.colorStops) {\n const thresholds = Object.keys(this.colorStops).sort();\n\n if (isLess) {\n let i = thresholds.length - 1;\n\n while (this.modelValue < thresholds[i]) {\n i--;\n }\n\n return this.colorStops[thresholds[i]];\n } else {\n let i = 0;\n\n while (this.modelValue > thresholds[i]) {\n i++;\n }\n\n return this.colorStops[thresholds[i]];\n }\n }\n const threshold = isLess ? 80 : 20;\n\n const left = isLess ? this.modelValue : threshold;\n const right = isLess ? threshold : this.modelValue;\n\n if (left <= right) {\n return '--primary';\n }\n\n return '--error';\n },\n formattedPercentage() {\n return formatPercent(this.modelValue);\n }\n },\n};\n</script>\n\n<template>\n <span class=\"percentage-bar\">\n <Bar\n :percentage=\"modelValue\"\n :primary-color=\"primaryColor\"\n :slices=\"slices\"\n />\n <span\n v-if=\"showPercentage\"\n class=\"ml-5 percentage-value\"\n >{{ formattedPercentage }}</span>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n.percentage-bar {\n display: flex;\n flex-direction: row;\n\n .percentage-value {\n word-break: keep-all;\n }\n}\n</style>\n","<script>\r\nexport default {\r\n props: {\r\n percentage: {\r\n type: Number,\r\n required: true\r\n },\r\n primaryColor: {\r\n type: String,\r\n default: '--primary'\r\n },\r\n secondaryColor: {\r\n type: String,\r\n default: '--border'\r\n },\r\n slices: {\r\n type: Array,\r\n default: () => []\r\n }\r\n },\r\n computed: {\r\n indicatorStyle() {\r\n return {\r\n width: `${ this.percentage }%`,\r\n backgroundColor: `var(${ this.primaryColor })`\r\n };\r\n },\r\n barStyle() {\r\n return { backgroundColor: `var(${ this.secondaryColor })` };\r\n },\r\n sliceStyles() {\r\n return this.slices.map((slice) => ({\r\n left: `${ slice }%`,\r\n visibility: slice < this.percentage ? 'visible' : 'hidden'\r\n }));\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div\n class=\"bar\"\n :style=\"barStyle\"\n >\r\n <div\n class=\"indicator\"\n :style=\"indicatorStyle\"\n />\r\n <div\n v-for=\"(sliceStyle, i) in sliceStyles\"\n :key=\"i\"\n class=\"slice\"\n :style=\"sliceStyle\"\n />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.bar {\r\n $height: 15px;\r\n\r\n width: 100%;\r\n height: $height;\r\n border-radius: math.div($height, 2);\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .indicator {\r\n height: 100%;\r\n }\r\n\r\n .slice {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n width: 1px;\r\n background-color: var(--body-bg);\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./Bar.vue?vue&type=template&id=b4f4e2ae&scoped=true\"\nimport script from \"./Bar.vue?vue&type=script&lang=js\"\nexport * from \"./Bar.vue?vue&type=script&lang=js\"\n\nimport \"./Bar.vue?vue&type=style&index=0&id=b4f4e2ae&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b4f4e2ae\"]])\n\nexport default __exports__","import { render } from \"./PercentageBar.vue?vue&type=template&id=4ade54a6&scoped=true\"\nimport script from \"./PercentageBar.vue?vue&type=script&lang=js\"\nexport * from \"./PercentageBar.vue?vue&type=script&lang=js\"\n\nimport \"./PercentageBar.vue?vue&type=style&index=0&id=4ade54a6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4ade54a6\"]])\n\nexport default __exports__","<script>\nimport { sortBy } from '@shell/utils/sort';\nimport { get } from '@shell/utils/object';\n\nexport default {\n props: {\n values: {\n type: Array,\n required: true,\n },\n\n colorKey: {\n type: String,\n default: 'color',\n },\n labelKey: {\n type: String,\n default: 'label',\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: null,\n },\n minPercent: {\n type: Number,\n default: 5,\n },\n showZeros: {\n type: Boolean,\n default: false,\n }\n },\n\n computed: {\n pieces() {\n const out = [];\n\n for ( const obj of this.values ) {\n const color = get(obj, this.colorKey);\n const label = get(obj, this.labelKey);\n const value = get(obj, this.valueKey);\n\n if ( value === 0 && !this.showZeros) {\n continue;\n }\n\n out.push({\n color,\n label,\n value,\n });\n }\n\n const minPercent = this.minPercent || 0;\n const min = this.min || 0;\n let max = this.max;\n let sum = 0;\n\n if ( !this.max ) {\n max = 100;\n if ( out.length ) {\n max = out.map((x) => x.value).reduce((a, b) => a + b);\n }\n }\n\n for ( const obj of out ) {\n const percent = Math.max(minPercent, toPercent(obj.value, min, max));\n\n obj.percent = percent;\n sum += percent;\n }\n\n // If the sum is bigger than 100%, take it out of the biggest piece\n if ( sum > 100 ) {\n sortBy(out, 'percent', true)[0].percent -= sum - 100;\n }\n\n for ( const obj of out ) {\n obj.style = `width: ${ obj.percent }%`;\n }\n\n return out.filter((obj) => obj.percent);\n },\n ariaLabelText() {\n if (Array.isArray(this.values) && this.values.length) {\n let ariaLabel = '';\n\n this.values.forEach((val) => {\n ariaLabel += `${ val.value } ${ val.value === 1 ? 'item' : 'items' } ${ val.label }`;\n });\n\n return ariaLabel;\n }\n\n return '';\n }\n }\n};\n\nfunction toPercent(value, min, max) {\n value = Math.max(min, Math.min(max, value));\n let per = value / (max - min) * 100; // Percent 0-100\n\n per = Math.floor(per * 100) / 100; // Round to 2 decimal places\n\n return per;\n}\n\n</script>\n\n<template>\n <div\n v-trim-whitespace\n :class=\"{progress: true, multi: pieces.length > 1}\"\n :aria-label=\"ariaLabelText\"\n >\n <div\n v-for=\"(piece, idx) of pieces\"\n :key=\"idx\"\n v-trim-whitespace\n :class=\"{'piece': true, [piece.color]: true}\"\n :style=\"piece.style\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n $progress-divider-width: 1px;\n $progress-border-radius: 90px;\n $progress-height: 10px;\n $progress-width: 100px;\n\n .progress {\n display: block;\n border-radius: $progress-border-radius;\n background-color: var(--progress-bg);\n height: $progress-height;\n width: $progress-width;\n\n .piece {\n display: inline-block;\n vertical-align: top;\n height: $progress-height;\n border-radius: 0;\n border-right: $progress-divider-width solid var(--progress-divider);\n vertical-align: top;\n\n &:first-child {\n border-top-left-radius: $progress-border-radius;\n border-bottom-left-radius: $progress-border-radius;\n }\n\n &:last-child {\n border-top-right-radius: $progress-border-radius;\n border-bottom-right-radius: $progress-border-radius;\n border-right: 0;\n }\n }\n }\n\n .piece.bg-success:only-child {\n opacity: 0.5;\n }\n</style>\n","import { render } from \"./ProgressBarMulti.vue?vue&type=template&id=f3ae1ea4&scoped=true\"\nimport script from \"./ProgressBarMulti.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressBarMulti.vue?vue&type=script&lang=js\"\n\nimport \"./ProgressBarMulti.vue?vue&type=style&index=0&id=f3ae1ea4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f3ae1ea4\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".consumption-gauge .numbers{display:flex;flex-direction:row;justify-content:space-between}.consumption-gauge .numbers-stats{display:flex;flex-direction:row;align-items:center;gap:10px;align-self:baseline}.consumption-gauge .numbers .percentage{font-weight:700}.consumption-gauge .numbers .percentage i{margin-right:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".copy-to-clipboard-text[data-v-d8c131ea]{white-space:nowrap}.copy-to-clipboard-text.plain[data-v-d8c131ea]{color:var(--body-text)}.copy-to-clipboard-text.plain[data-v-d8c131ea]:hover{text-decoration:none}.copy-to-clipboard-text.copied[data-v-d8c131ea]{pointer-events:none;color:var(--success)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".percentage-bar[data-v-4ade54a6]{display:flex;flex-direction:row}.percentage-bar .percentage-value[data-v-4ade54a6]{word-break:keep-all}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".progress[data-v-f3ae1ea4]{display:block;border-radius:90px;background-color:var(--progress-bg);height:10px;width:100px}.progress .piece[data-v-f3ae1ea4]{display:inline-block;height:10px;border-radius:0;border-right:1px solid var(--progress-divider);vertical-align:top}.progress .piece[data-v-f3ae1ea4]:first-child{border-top-left-radius:90px;border-bottom-left-radius:90px}.progress .piece[data-v-f3ae1ea4]:last-child{border-top-right-radius:90px;border-bottom-right-radius:90px;border-right:0}.piece.bg-success[data-v-f3ae1ea4]:only-child{opacity:.5}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".bar[data-v-b4f4e2ae]{width:100%;height:15px;border-radius:7.5px;overflow:hidden;position:relative}.bar .indicator[data-v-b4f4e2ae]{height:100%}.bar .slice[data-v-b4f4e2ae]{position:absolute;top:0;bottom:0;width:1px;background-color:var(--body-bg)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ConsumptionGauge.vue?vue&type=style&index=0&id=0160c554&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0177b65e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./CopyToClipboardText.vue?vue&type=style&index=0&id=d8c131ea&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3ce8dc3a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./PercentageBar.vue?vue&type=style&index=0&id=4ade54a6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b37b1fae\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ProgressBarMulti.vue?vue&type=style&index=0&id=f3ae1ea4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7c53273f\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Bar.vue?vue&type=style&index=0&id=b4f4e2ae&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"bcd5ae90\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","key","_createElementBlock","_hoisted_1","$props","resourceName","usedAsResourceName","_hoisted_2","_toDisplayString","_createCommentVNode","_createElementVNode","_hoisted_3","_renderSlot","_ctx","$slots","amountTemplateValues","$options","formattedPercentage","_hoisted_4","_hoisted_5","t","_hoisted_6","_createTextVNode","_hoisted_7","_hoisted_8","_createVNode","_component_PercentageBar","modelValue","percentageBarValue","colorStops","components","PercentageBar","props","type","String","default","capacity","Number","required","used","units","numberFormatter","Function","value","isInteger","toFixed","Object","Boolean","defaut","computed","displayUnits","this","total","unit","formatPercent","__exports__","render","text","_normalizeClass","$data","copied","plain","href","onClick","_cache","args","clicked","emits","data","methods","event","preventDefault","copyTextToClipboard","then","target","tagName","parentElement","setTimeout","catch","e","$emit","exceptionToErrorsArray","_component_Bar","percentage","primaryColor","slices","showPercentage","style","_normalizeStyle","barStyle","indicatorStyle","_Fragment","_renderList","sliceStyles","sliceStyle","i","secondaryColor","Array","width","backgroundColor","map","slice","left","visibility","PreferredDirection","LESS","MORE","Bar","validator","preferredDirection","isLess","thresholds","keys","sort","length","threshold","right","progress","multi","pieces","ariaLabelText","piece","idx","color","values","colorKey","labelKey","valueKey","min","max","minPercent","showZeros","out","obj","get","label","push","sum","x","reduce","a","b","percent","Math","toPercent","sortBy","filter","isArray","ariaLabel","forEach","val","per","floor","___CSS_LOADER_EXPORT___","module","id","content","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.643.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.643.js new file mode 100644 index 00000000..11310b6a --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.643.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[643],{13539:function(e,t,r){"use strict";r.d(t,{A:function(){return B}});var o=r(9274);const a={class:"chart"},s={key:0,class:"hw-gauge"},n={class:"values text-muted"},l={key:0},i={key:1},c={key:2},u={key:3},d={key:1,class:"hw-gauge"},p={class:"values text-muted"},f={key:0},h={key:1},m={key:2},v={key:3};function g(e,t,r,g,y,k){const x=(0,o.resolveComponent)("ConsumptionGauge"),b=(0,o.resolveComponent)("SimpleBox");return(0,o.openBlock)(),(0,o.createBlock)(b,{class:"hardware-resource-gauge"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",a,[(0,o.createElementVNode)("h3",null,(0,o.toDisplayString)(r.name),1),!r.reserved||void 0===r.reserved.total&&void 0===r.reserved.useful?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.createVNode)(x,{capacity:r.reserved.total,used:r.reserved.useful,"color-stops":k.colorStops},{title:(0,o.withCtx)((()=>[(0,o.createElementVNode)("span",null,[(0,o.createTextVNode)((0,o.toDisplayString)(r.reservedTitle??e.t("clusterIndexPage.hardwareResourceGauge.reserved"))+" ",1),(0,o.createElementVNode)("span",n,[r.reserved.formattedUseful?((0,o.openBlock)(),(0,o.createElementBlock)("span",l,(0,o.toDisplayString)(r.reserved.formattedUseful),1)):((0,o.openBlock)(),(0,o.createElementBlock)("span",i,(0,o.toDisplayString)(k.maxDecimalPlaces(r.reserved.useful)),1)),t[0]||(t[0]=(0,o.createTextVNode)(" / ")),r.reserved.formattedTotal?((0,o.openBlock)(),(0,o.createElementBlock)("span",c,(0,o.toDisplayString)(r.reserved.formattedTotal),1)):((0,o.openBlock)(),(0,o.createElementBlock)("span",u,(0,o.toDisplayString)(k.maxDecimalPlaces(r.reserved.total))+" "+(0,o.toDisplayString)(r.reserved.units),1))])]),(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(k.percentage(r.reserved)),1)])),_:1},8,["capacity","used","color-stops"])])),r.used&&void 0!==r.used.useful?((0,o.openBlock)(),(0,o.createElementBlock)("div",d,[(0,o.createVNode)(x,{capacity:r.used.total,used:r.used.useful,"color-stops":k.colorStops},{title:(0,o.withCtx)((()=>[(0,o.createElementVNode)("span",null,[(0,o.createTextVNode)((0,o.toDisplayString)(r.usedTitle??e.t("clusterIndexPage.hardwareResourceGauge.used"))+" ",1),(0,o.createElementVNode)("span",p,[r.used.formattedUseful?((0,o.openBlock)(),(0,o.createElementBlock)("span",f,(0,o.toDisplayString)(r.used.formattedUseful),1)):((0,o.openBlock)(),(0,o.createElementBlock)("span",h,(0,o.toDisplayString)(k.maxDecimalPlaces(r.used.useful)),1)),t[1]||(t[1]=(0,o.createTextVNode)(" / ")),r.used.formattedTotal?((0,o.openBlock)(),(0,o.createElementBlock)("span",m,(0,o.toDisplayString)(r.used.formattedTotal),1)):((0,o.openBlock)(),(0,o.createElementBlock)("span",v,(0,o.toDisplayString)(k.maxDecimalPlaces(r.used.total))+" "+(0,o.toDisplayString)(r.used.units),1))])]),(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(k.percentage(r.used)),1)])),_:1},8,["capacity","used","color-stops"])])):(0,o.createCommentVNode)("",!0)])])),_:1})}var y=r(68732),k=r(87211),x={components:{ConsumptionGauge:y.A,SimpleBox:k.A},props:{name:{type:String,required:!0},units:{type:String,default:""},used:{type:Object,default:null},usedTitle:{type:String,default:null},reserved:{type:Object,default:null},reservedTitle:{type:String,default:null}},computed:{colorStops(){return{0:"--success",30:"--warning",70:"--error"}}},methods:{maxDecimalPlaces(e){return Math.round(100*e)/100},strokes(e,t){return{primaryStrokeColor:this.rgba(e,1),primaryStrokeGradientColor:this.rgba(t,1),secondaryStrokeColor:this.rgba(e,.1),secondaryStrokeGradientColor:this.rgba(t,.1)}},rgba(e,t){return`rgba(var(${e}), ${t})`},percentage(e){return 0===e.total?0:`${(e.useful/e.total*100).toFixed(2)}%`}}},b=(r(32778),r(47433));const S=(0,b.A)(x,[["render",g],["__scopeId","data-v-0e4e8f37"]]);var B=S},96413:function(e,t,r){"use strict";r.d(t,{A:function(){return i}});var o=r(9274);function a(e,t,r,a,s,n){const l=(0,o.resolveComponent)("t"),i=(0,o.resolveComponent)("router-link");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.renderSlot)(e.$slots,"prefix",{},(()=>[r.prefixLabel?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0,k:r.prefixLabel,raw:!0},null,8,["k"])):(0,o.createCommentVNode)("",!0),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(r.prefix),1)])),(0,o.createVNode)(i,{to:r.to,target:r.target},{default:(0,o.withCtx)((()=>[(0,o.renderSlot)(e.$slots,"middle",{},(()=>[r.middleLabel?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0,k:r.middleLabel,raw:!0},null,8,["k"])):(0,o.createCommentVNode)("",!0),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(r.middle),1)]))])),_:3},8,["to","target"]),(0,o.renderSlot)(e.$slots,"suffix",{},(()=>[r.suffixLabel?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0,k:r.suffixLabel,raw:!0},null,8,["k"])):(0,o.createCommentVNode)("",!0),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(r.suffix),1)]))])}var s={props:{to:{type:[String,Object],required:!0},prefix:{type:String,default:""},suffix:{type:String,default:""},middle:{type:String,default:""},prefixLabel:{type:String,default:""},suffixLabel:{type:String,default:""},middleLabel:{type:String,default:""},target:{type:String,default:"self"}}},n=r(47433);const l=(0,n.A)(s,[["render",a]]);var i=l},15503:function(e,t,r){"use strict";r.d(t,{A:function(){return p}});var o=r(9274);const a=["aria-label"];function s(e,t,r,s,n,l){const i=(0,o.resolveDirective)("trim-whitespace");return(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)({progress:!0,multi:l.pieces.length>1}),"aria-label":l.ariaLabelText},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.pieces,((e,t)=>(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:t,class:(0,o.normalizeClass)({piece:!0,[e.color]:!0}),style:(0,o.normalizeStyle)(e.style)},null,6)),[[i]]))),128))],10,a)),[[i]])}var n=r(74302),l=r(76978),i={props:{values:{type:Array,required:!0},colorKey:{type:String,default:"color"},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},min:{type:Number,default:0},max:{type:Number,default:null},minPercent:{type:Number,default:5},showZeros:{type:Boolean,default:!1}},computed:{pieces(){const e=[];for(const s of this.values){const t=(0,l.Jt)(s,this.colorKey),r=(0,l.Jt)(s,this.labelKey),o=(0,l.Jt)(s,this.valueKey);(0!==o||this.showZeros)&&e.push({color:t,label:r,value:o})}const t=this.minPercent||0,r=this.min||0;let o=this.max,a=0;this.max||(o=100,e.length&&(o=e.map((e=>e.value)).reduce(((e,t)=>e+t))));for(const s of e){const e=Math.max(t,c(s.value,r,o));s.percent=e,a+=e}a>100&&((0,n.Ul)(e,"percent",!0)[0].percent-=a-100);for(const s of e)s.style=`width: ${s.percent}%`;return e.filter((e=>e.percent))},ariaLabelText(){if(Array.isArray(this.values)&&this.values.length){let e="";return this.values.forEach((t=>{e+=`${t.value} ${1===t.value?"item":"items"} ${t.label}`})),e}return""}}};function c(e,t,r){e=Math.max(t,Math.min(r,e));let o=e/(r-t)*100;return o=Math.floor(100*o)/100,o}r(11740);var u=r(47433);const d=(0,u.A)(i,[["render",s],["__scopeId","data-v-f3ae1ea4"]]);var p=d},31855:function(e,t,r){"use strict";r.d(t,{dD:function(){return d},Ay:function(){return v},xS:function(){return p}});var o=r(9274);const a={class:"warnings"},s={key:0,class:"warn-count mb-10 chip"},n={key:1,class:"error-count chip"};function l(e,t,r,l,i,c){const u=(0,o.resolveComponent)("SimpleBox");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createVNode)(u,{class:(0,o.normalizeClass)(["container",{"has-link":!!c.location}]),onClick:c.goToResource},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("h1",null,(0,o.toDisplayString)(c.resourceCounts.total),1),(0,o.createElementVNode)("h3",null,(0,o.toDisplayString)(c.name),1),(0,o.createElementVNode)("div",a,[c.resourceCounts.warningCount?((0,o.openBlock)(),(0,o.createElementBlock)("div",s,(0,o.toDisplayString)(c.resourceCounts.warningCount),1)):(0,o.createCommentVNode)("",!0),c.resourceCounts.errorCount?((0,o.openBlock)(),(0,o.createElementBlock)("div",n,(0,o.toDisplayString)(c.resourceCounts.errorCount),1)):(0,o.createCommentVNode)("",!0)])])),_:1},8,["class","onClick"])])}var i=r(87211),c=r(35664),u=r(73883);function d(e){switch(e){case"text-success":case"text-info":return"useful";case"text-warning":return"warningCount";default:return"errorCount"}}function p(e,t){const r=e.getters["currentStore"](c.i2),o=e.getters[`${r}/all`](c.i2)?.[0]?.counts,a=o?.[t]?.summary||{},s={total:a.count||0,useful:a.count||0,warningCount:0,errorCount:0};return Object.entries(a.states||{}).forEach((e=>{const t=(0,u.uU)(e[0]),r=e[1],o=d(t);s["useful"]-=r,s[o]+=r})),s}var f={components:{SimpleBox:i.A},props:{resource:{type:String,default:""},spoofedCounts:{type:Object,default:null},cluster:{type:String,default:null}},computed:{resourceCounts(){return this.spoofedCounts?this.spoofedCounts:p(this.$store,this.resource)},location(){if(this.spoofedCounts)return this.spoofedCounts.location;const e={name:"c-cluster-product-resource",params:{product:this.$store.getters["currentProduct"].name,resource:this.resource}};return this.cluster&&(e.params.cluster=this.cluster),e},name(){if(this.spoofedCounts)return this.spoofedCounts.name;const e=this.$store.getters["currentStore"](this.resource),t=this.$store.getters[`${e}/schemaFor`](this.resource);return this.$store.getters["type-map/labelFor"](t,this.resourceCounts.useful)}},methods:{goToResource(){this.location&&this.$router.push(this.location)}}},h=(r(61167),r(47433));const m=(0,h.A)(f,[["render",l],["__scopeId","data-v-39c6e929"]]);var v=m},74562:function(e,t,r){"use strict";r.d(t,{A:function(){return d}});var o=r(9274);const a={key:0};function s(e,t,r,s,n,l){const i=(0,o.resolveComponent)("BadgeState");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[r.arbitrary?((0,o.openBlock)(),(0,o.createElementBlock)("div",a,[r.value?((0,o.openBlock)(),(0,o.createBlock)(i,{key:0,color:n.stateBackground,label:n.stateDisplay},null,8,["color","label"])):(0,o.createCommentVNode)("",!0)])):((0,o.openBlock)(),(0,o.createBlock)(i,{key:1,value:r.row},null,8,["value"]))])}var n=r(87102),l=r(73883),i={components:{BadgeState:n.j},props:{value:{type:String,default:""},row:{type:Object,required:!0},col:{type:Object,default:()=>{}},arbitrary:{type:Boolean,default:!1}},data(){return{stateDisplay:"",stateBackground:""}},watch:{value:{handler(){if(this.arbitrary){const e=(0,l.uU)(this.value);this.stateDisplay=(0,l.ch)(this.value),this.stateBackground=e.replace("text-","bg-")}},immediate:!0}}},c=r(47433);const u=(0,c.A)(i,[["render",s]]);var d=u},27536:function(e,t,r){"use strict";r.d(t,{A:function(){return v}});var o=r(9274);const a={key:0,class:"text-muted"},s={key:1,class:"live-date"},n={key:2,class:"live-date"};function l(e,t,r,l,i,c){const u=(0,o.resolveDirective)("clean-tooltip");return c.suffixedLabel?r.showTooltip?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("span",s,[(0,o.createTextVNode)((0,o.toDisplayString)(c.suffixedLabel),1)])),[[u,{content:c.title,placement:r.tooltipPlacement}]]):((0,o.openBlock)(),(0,o.createElementBlock)("span",n,(0,o.toDisplayString)(c.suffixedLabel),1)):((0,o.openBlock)(),(0,o.createElementBlock)("span",a," — "))}var i=r(23464),c=r.n(i),u=r(91462),d=r(92043),p=r(34255),f={props:{value:{type:[String,Number],default:""},addSuffix:{type:Boolean,default:!1},addPrefix:{type:Boolean,default:!1},suffix:{type:String,default:"ago"},tooltipPlacement:{type:String,default:"auto"},showTooltip:{type:Boolean,default:!0},isCountdown:{type:Boolean,default:!1}},mounted(){this.liveUpdate(c()())},data(){return{label:"-"}},computed:{title(){if(!this.value)return"";const e=(0,d.ZD)(this.$store.getters["prefs/get"](u.DX)),t=(0,d.ZD)(this.$store.getters["prefs/get"](u.G$)),r=c()(this.value).format(`${e} ${t}`);return r},suffixedLabel(){if(!this.value)return this.label;let e=this.label||"";if(e&&this.addSuffix){const t=this.$store.getters["i18n/exists"],r=`suffix.${this.suffix}`,o=t(r)?this.t(r):this.suffix;e=`${e} ${o}`}return e},dayValue(){return this.value?c()(this.value):null}},watch:{value(){this.liveUpdate(c()())}},methods:{liveUpdate(e){if(!this.dayValue)return"-"!==this.label&&(this.label="-"),300;if(this.isCountdown&&e.valueOf()>this.dayValue?.valueOf())return this.label="-",300;const t=(0,p.qx)(this.dayValue,e),r=t.diff<0||!this.addPrefix?"":"-";let o=t.label;return 0===t.diff?o="Just now":(o+=` ${r}${this.t(t.unitsKey,{count:t.label})}`,o=o.trim()),this.label!==o&&(this.label=o),t.next||1}}},h=r(47433);const m=(0,h.A)(f,[["render",l]]);var v=m},73322:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),s=r(40935),n=r.n(s),l=n()(a());l.push([e.id,".hardware-resource-gauge[data-v-0e4e8f37]{position:relative;display:flex;flex-direction:column}.hardware-resource-gauge .hw-gauge[data-v-0e4e8f37]:not(:first-of-type){margin-top:20px}.hardware-resource-gauge .values[data-v-0e4e8f37]{font-size:12px;padding-left:10px}",""]),t["default"]=l},54492:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),s=r(40935),n=r.n(s),l=n()(a());l.push([e.id,".progress[data-v-f3ae1ea4]{display:block;border-radius:90px;background-color:var(--progress-bg);height:10px;width:100px}.progress .piece[data-v-f3ae1ea4]{display:inline-block;height:10px;border-radius:0;border-right:1px solid var(--progress-divider);vertical-align:top}.progress .piece[data-v-f3ae1ea4]:first-child{border-top-left-radius:90px;border-bottom-left-radius:90px}.progress .piece[data-v-f3ae1ea4]:last-child{border-top-right-radius:90px;border-bottom-right-radius:90px;border-right:0}.piece.bg-success[data-v-f3ae1ea4]:only-child{opacity:.5}",""]),t["default"]=l},15119:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),s=r(40935),n=r.n(s),l=n()(a());l.push([e.id,".has-link[data-v-39c6e929]{cursor:pointer}.has-link[data-v-39c6e929]:hover{border-color:var(--link)}[data-v-39c6e929] .content{display:flex;justify-content:space-between;align-items:center}[data-v-39c6e929] .content H1,[data-v-39c6e929] .content H3{margin:0}[data-v-39c6e929] .content .chip{border-radius:2em;color:var(--body-bg);padding:0 1em}[data-v-39c6e929] .content .chip.warn-count{background:var(--warning)}[data-v-39c6e929] .content .chip.error-count{background:var(--error)}",""]),t["default"]=l},3221:function(e){!function(t,r){e.exports=r()}(0,(function(){"use strict";return function(e,t,r){var o=function(e,t){if(!t.length)return r();var o;1===t.length&&t[0].length>0&&(t=t[0]),o=t[0];for(var a=1;a<t.length;a+=1)t[a].isValid()&&!t[a][e](o)||(o=t[a]);return o};r.max=function(){var e=[].slice.call(arguments,0);return o("isAfter",e)},r.min=function(){var e=[].slice.call(arguments,0);return o("isBefore",e)}}}))},57657:function(e){!function(t,r){e.exports=r()}(0,(function(){"use strict";return function(e,t,r){var o=(new Date).getTimezoneOffset(),a=t.prototype;r.utc=function(e){return new t({date:e,utc:!0,args:arguments})},a.utc=function(){return r(this.toDate(),{locale:this.$L,utc:!0})},a.local=function(){return r(this.toDate(),{locale:this.$L,utc:!1})};var s=a.parse;a.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),s.call(this,e)};var n=a.init;a.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else n.call(this)};var l=a.utcOffset;a.utcOffset=function(e){var t=this.$utils().u;if(t(e))return this.$u?0:t(this.$offset)?l.call(this):this.$offset;var r,a=Math.abs(e)<=16?60*e:e;return 0!==e?(r=this.local().add(a+o,"minute")).$offset=a:r=this.utc(),r};var i=a.format;a.format=function(e){var t=e||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return i.call(this,t)},a.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+o;return this.$d.valueOf()-6e4*e},a.isUTC=function(){return!!this.$u},a.toISOString=function(){return this.toDate().toISOString()},a.toString=function(){return this.toDate().toUTCString()};var c=a.toDate;a.toDate=function(e){return"s"===e&&this.$offset?r(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():c.call(this)}}}))},32778:function(e,t,r){var o=r(73322);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("1c1305c7",o,!0,{sourceMap:!1,shadowMode:!1})},11740:function(e,t,r){var o=r(54492);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("7c53273f",o,!0,{sourceMap:!1,shadowMode:!1})},61167:function(e,t,r){var o=r(15119);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("320454d5",o,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.643.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.643.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.643.js.map new file mode 100644 index 00000000..61a0c71f --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.643.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.643.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/HardwareResourceGauge.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/HardwareResourceGauge.vue?125d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/MessageLink.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/MessageLink.vue?6dc7","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue?ef45","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceSummary.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceSummary.vue?1be3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/formatter/BadgeStateFormatter.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/formatter/BadgeStateFormatter.vue?67d1","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/formatter/LiveDate.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/formatter/LiveDate.vue?8175","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/HardwareResourceGauge.vue?dd5c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue?415a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceSummary.vue?42b1","webpack://harvester-1.5.0-dev/../../node_modules/dayjs/plugin/minMax.js","webpack://harvester-1.5.0-dev/../../node_modules/dayjs/plugin/utc.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/HardwareResourceGauge.vue?265d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue?06b3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceSummary.vue?68b8"],"sourcesContent":["<script>\nimport ConsumptionGauge from '@shell/components/ConsumptionGauge';\nimport SimpleBox from '@shell/components/SimpleBox';\n\nexport default {\n components: { ConsumptionGauge, SimpleBox },\n props: {\n name: {\n type: String,\n required: true\n },\n\n units: {\n type: String,\n default: ''\n },\n\n used: {\n type: Object,\n default: null\n },\n\n usedTitle: {\n type: String,\n default: null\n },\n\n reserved: {\n type: Object,\n default: null\n },\n\n reservedTitle: {\n type: String,\n default: null\n }\n },\n computed: {\n colorStops() {\n return {\n 0: '--success', 30: '--warning', 70: '--error'\n };\n }\n },\n methods: {\n maxDecimalPlaces(n) {\n return Math.round(n * 100) / 100;\n },\n\n strokes(primary, secondary) {\n return {\n primaryStrokeColor: this.rgba(primary, 1),\n primaryStrokeGradientColor: this.rgba(secondary, 1),\n secondaryStrokeColor: this.rgba(primary, 0.1),\n secondaryStrokeGradientColor: this.rgba(secondary, 0.1)\n };\n },\n\n rgba(variable, opacity) {\n return `rgba(var(${ variable }), ${ opacity })`;\n },\n\n percentage(resource) {\n if (resource.total === 0) {\n return 0;\n }\n\n return `${ (resource.useful / resource.total * 100).toFixed(2) }%`;\n }\n }\n};\n</script>\n\n<template>\n <SimpleBox class=\"hardware-resource-gauge\">\n <div class=\"chart\">\n <h3>\n {{ name }}\n </h3>\n <div\n v-if=\"reserved && (reserved.total !== undefined || reserved.useful !== undefined)\"\n class=\"hw-gauge\"\n >\n <ConsumptionGauge\n :capacity=\"reserved.total\"\n :used=\"reserved.useful\"\n :color-stops=\"colorStops\"\n >\n <template #title>\n <span>\n {{ reservedTitle ?? t('clusterIndexPage.hardwareResourceGauge.reserved') }}\n <span class=\"values text-muted\">\n <span v-if=\"reserved.formattedUseful\">\n {{ reserved.formattedUseful }}\n </span>\n <span v-else>\n {{ maxDecimalPlaces(reserved.useful) }}\n </span>\n /\n <span v-if=\"reserved.formattedTotal\">\n {{ reserved.formattedTotal }}\n </span>\n <span v-else>\n {{ maxDecimalPlaces(reserved.total) }} {{ reserved.units }}\n </span>\n </span>\n </span>\n <span>\n {{ percentage(reserved) }}\n </span>\n </template>\n </ConsumptionGauge>\n </div>\n <div\n v-if=\"used && used.useful !== undefined\"\n class=\"hw-gauge\"\n >\n <ConsumptionGauge\n :capacity=\"used.total\"\n :used=\"used.useful\"\n :color-stops=\"colorStops\"\n >\n <template #title>\n <span>\n {{ usedTitle ?? t('clusterIndexPage.hardwareResourceGauge.used') }}\n <span class=\"values text-muted\">\n <span v-if=\"used.formattedUseful\">\n {{ used.formattedUseful }}\n </span>\n <span v-else>\n {{ maxDecimalPlaces(used.useful) }}\n </span>\n /\n <span v-if=\"used.formattedTotal\">\n {{ used.formattedTotal }}\n </span>\n <span v-else>\n {{ maxDecimalPlaces(used.total) }} {{ used.units }}\n </span>\n </span>\n </span>\n <span>\n {{ percentage(used) }}\n </span>\n </template>\n </ConsumptionGauge>\n </div>\n </div>\n </SimpleBox>\n</template>\n\n<style lang=\"scss\" scoped>\n .hardware-resource-gauge {\n $spacing: 10px;\n $large-spacing: $spacing * 1.5;\n\n position: relative;\n display: flex;\n flex-direction: column;\n\n .hw-gauge:not(:first-of-type) {\n margin-top: 20px;\n }\n\n .values {\n font-size: 12px;\n padding-left: 10px;\n }\n }\n</style>\n","import { render } from \"./HardwareResourceGauge.vue?vue&type=template&id=0e4e8f37&scoped=true\"\nimport script from \"./HardwareResourceGauge.vue?vue&type=script&lang=js\"\nexport * from \"./HardwareResourceGauge.vue?vue&type=script&lang=js\"\n\nimport \"./HardwareResourceGauge.vue?vue&type=style&index=0&id=0e4e8f37&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0e4e8f37\"]])\n\nexport default __exports__","<script>\nexport default {\n props: {\n to: {\n type: [String, Object],\n required: true\n },\n\n prefix: {\n type: String,\n default: ''\n },\n\n suffix: {\n type: String,\n default: ''\n },\n\n middle: {\n type: String,\n default: ''\n },\n\n prefixLabel: {\n type: String,\n default: ''\n },\n\n suffixLabel: {\n type: String,\n default: ''\n },\n\n middleLabel: {\n type: String,\n default: ''\n },\n\n target: {\n type: String,\n default: 'self'\n }\n }\n};\n</script>\n\n<template>\n <div>\n <slot name=\"prefix\">\n <t\n v-if=\"prefixLabel\"\n :k=\"prefixLabel\"\n :raw=\"true\"\n />\n {{ prefix }}\n </slot>\n <router-link\n :to=\"to\"\n :target=\"target\"\n >\n <slot name=\"middle\">\n <t\n v-if=\"middleLabel\"\n :k=\"middleLabel\"\n :raw=\"true\"\n />\n {{ middle }}\n </slot>\n </router-link>\n <slot name=\"suffix\">\n <t\n v-if=\"suffixLabel\"\n :k=\"suffixLabel\"\n :raw=\"true\"\n />\n {{ suffix }}\n </slot>\n </div>\n</template>\n","import { render } from \"./MessageLink.vue?vue&type=template&id=e05ba5fa\"\nimport script from \"./MessageLink.vue?vue&type=script&lang=js\"\nexport * from \"./MessageLink.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { sortBy } from '@shell/utils/sort';\nimport { get } from '@shell/utils/object';\n\nexport default {\n props: {\n values: {\n type: Array,\n required: true,\n },\n\n colorKey: {\n type: String,\n default: 'color',\n },\n labelKey: {\n type: String,\n default: 'label',\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: null,\n },\n minPercent: {\n type: Number,\n default: 5,\n },\n showZeros: {\n type: Boolean,\n default: false,\n }\n },\n\n computed: {\n pieces() {\n const out = [];\n\n for ( const obj of this.values ) {\n const color = get(obj, this.colorKey);\n const label = get(obj, this.labelKey);\n const value = get(obj, this.valueKey);\n\n if ( value === 0 && !this.showZeros) {\n continue;\n }\n\n out.push({\n color,\n label,\n value,\n });\n }\n\n const minPercent = this.minPercent || 0;\n const min = this.min || 0;\n let max = this.max;\n let sum = 0;\n\n if ( !this.max ) {\n max = 100;\n if ( out.length ) {\n max = out.map((x) => x.value).reduce((a, b) => a + b);\n }\n }\n\n for ( const obj of out ) {\n const percent = Math.max(minPercent, toPercent(obj.value, min, max));\n\n obj.percent = percent;\n sum += percent;\n }\n\n // If the sum is bigger than 100%, take it out of the biggest piece\n if ( sum > 100 ) {\n sortBy(out, 'percent', true)[0].percent -= sum - 100;\n }\n\n for ( const obj of out ) {\n obj.style = `width: ${ obj.percent }%`;\n }\n\n return out.filter((obj) => obj.percent);\n },\n ariaLabelText() {\n if (Array.isArray(this.values) && this.values.length) {\n let ariaLabel = '';\n\n this.values.forEach((val) => {\n ariaLabel += `${ val.value } ${ val.value === 1 ? 'item' : 'items' } ${ val.label }`;\n });\n\n return ariaLabel;\n }\n\n return '';\n }\n }\n};\n\nfunction toPercent(value, min, max) {\n value = Math.max(min, Math.min(max, value));\n let per = value / (max - min) * 100; // Percent 0-100\n\n per = Math.floor(per * 100) / 100; // Round to 2 decimal places\n\n return per;\n}\n\n</script>\n\n<template>\n <div\n v-trim-whitespace\n :class=\"{progress: true, multi: pieces.length > 1}\"\n :aria-label=\"ariaLabelText\"\n >\n <div\n v-for=\"(piece, idx) of pieces\"\n :key=\"idx\"\n v-trim-whitespace\n :class=\"{'piece': true, [piece.color]: true}\"\n :style=\"piece.style\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n $progress-divider-width: 1px;\n $progress-border-radius: 90px;\n $progress-height: 10px;\n $progress-width: 100px;\n\n .progress {\n display: block;\n border-radius: $progress-border-radius;\n background-color: var(--progress-bg);\n height: $progress-height;\n width: $progress-width;\n\n .piece {\n display: inline-block;\n vertical-align: top;\n height: $progress-height;\n border-radius: 0;\n border-right: $progress-divider-width solid var(--progress-divider);\n vertical-align: top;\n\n &:first-child {\n border-top-left-radius: $progress-border-radius;\n border-bottom-left-radius: $progress-border-radius;\n }\n\n &:last-child {\n border-top-right-radius: $progress-border-radius;\n border-bottom-right-radius: $progress-border-radius;\n border-right: 0;\n }\n }\n }\n\n .piece.bg-success:only-child {\n opacity: 0.5;\n }\n</style>\n","import { render } from \"./ProgressBarMulti.vue?vue&type=template&id=f3ae1ea4&scoped=true\"\nimport script from \"./ProgressBarMulti.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressBarMulti.vue?vue&type=script&lang=js\"\n\nimport \"./ProgressBarMulti.vue?vue&type=style&index=0&id=f3ae1ea4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f3ae1ea4\"]])\n\nexport default __exports__","<script>\nimport SimpleBox from '@shell/components/SimpleBox';\nimport { COUNT } from '@shell/config/types';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\n\nexport function colorToCountName(color) {\n switch (color) {\n case 'text-success':\n case 'text-info':\n return 'useful';\n case 'text-warning':\n return 'warningCount';\n default:\n return 'errorCount';\n }\n}\n\nexport function resourceCounts(store, resource) {\n const inStore = store.getters['currentStore'](COUNT);\n const clusterCounts = store.getters[`${ inStore }/all`](COUNT)?.[0]?.counts;\n const summary = clusterCounts?.[resource]?.summary || {};\n\n const counts = {\n total: summary.count || 0,\n useful: summary.count || 0,\n warningCount: 0,\n errorCount: 0\n };\n\n Object.entries(summary.states || {}).forEach((entry) => {\n const color = colorForState(entry[0]);\n const count = entry[1];\n const countName = colorToCountName(color);\n\n counts['useful'] -= count;\n counts[countName] += count;\n });\n\n return counts;\n}\n\nexport default {\n components: { SimpleBox },\n\n props: {\n resource: {\n type: String,\n default: ''\n },\n\n spoofedCounts: {\n type: Object,\n default: null\n },\n\n cluster: {\n type: String,\n default: null,\n },\n },\n\n computed: {\n resourceCounts() {\n if (this.spoofedCounts) {\n return this.spoofedCounts;\n }\n\n return resourceCounts(this.$store, this.resource);\n },\n\n location() {\n if (this.spoofedCounts) {\n return this.spoofedCounts.location;\n }\n\n const route = {\n name: 'c-cluster-product-resource',\n params: {\n product: this.$store.getters['currentProduct'].name,\n resource: this.resource,\n }\n };\n\n if (this.cluster) {\n route.params.cluster = this.cluster;\n }\n\n return route;\n },\n\n name() {\n if (this.spoofedCounts) {\n return this.spoofedCounts.name;\n }\n const inStore = this.$store.getters['currentStore'](this.resource);\n const schema = this.$store.getters[`${ inStore }/schemaFor`](this.resource);\n\n return this.$store.getters['type-map/labelFor'](schema, this.resourceCounts.useful);\n },\n },\n\n methods: {\n goToResource() {\n if (this.location) {\n this.$router.push(this.location);\n }\n },\n }\n\n};\n</script>\n\n<template>\n <div>\n <SimpleBox\n class=\"container\"\n :class=\"{'has-link': !!location}\"\n @click=\"goToResource\"\n >\n <h1>{{ resourceCounts.total }}</h1>\n <h3>\n {{ name }}\n </h3>\n <div class=\"warnings\">\n <div\n v-if=\"resourceCounts.warningCount\"\n class=\"warn-count mb-10 chip\"\n >\n {{ resourceCounts.warningCount }}\n </div>\n <div\n v-if=\"resourceCounts.errorCount\"\n class=\"error-count chip\"\n >\n {{ resourceCounts.errorCount }}\n </div>\n </div>\n </SimpleBox>\n </div>\n</template>\n\n<style lang='scss' scoped>\n .has-link {\n cursor: pointer;\n\n &:hover {\n border-color: var(--link);\n }\n }\n\n :deep() .content{\n display: flex;\n justify-content: space-between;\n align-items: center;\n & H1, H3 {\n margin: 0;\n }\n\n & .chip{\n border-radius: 2em;\n color: var(--body-bg);\n padding: 0px 1em;\n\n &.warn-count {\n background: var(--warning)\n }\n\n &.error-count {\n background: var(--error)\n }\n }\n}\n</style>\n","import { render } from \"./ResourceSummary.vue?vue&type=template&id=39c6e929&scoped=true\"\nimport script from \"./ResourceSummary.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceSummary.vue?vue&type=script&lang=js\"\n\nimport \"./ResourceSummary.vue?vue&type=style&index=0&id=39c6e929&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-39c6e929\"]])\n\nexport default __exports__","<script>\nimport { BadgeState } from '@components/BadgeState';\nimport { colorForState, stateDisplay } from '@shell/plugins/dashboard-store/resource-class';\nexport default {\n components: { BadgeState },\n props: {\n value: {\n type: String,\n default: ''\n },\n row: {\n type: Object,\n required: true\n },\n col: {\n type: Object,\n default: () => {}\n },\n\n arbitrary: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n stateDisplay: '',\n stateBackground: ''\n };\n },\n\n watch: {\n value: {\n handler() {\n if (this.arbitrary) {\n const color = colorForState(this.value);\n\n this.stateDisplay = stateDisplay(this.value);\n this.stateBackground = color.replace('text-', 'bg-');\n }\n },\n immediate: true\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"arbitrary\">\n <BadgeState\n v-if=\"value\"\n :color=\"stateBackground\"\n :label=\"stateDisplay\"\n />\n </div>\n <BadgeState\n v-else\n :value=\"row\"\n />\n </div>\n</template>\n","import { render } from \"./BadgeStateFormatter.vue?vue&type=template&id=4e99fcbc\"\nimport script from \"./BadgeStateFormatter.vue?vue&type=script&lang=js\"\nexport * from \"./BadgeStateFormatter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport day from 'dayjs';\nimport { DATE_FORMAT, TIME_FORMAT } from '@shell/store/prefs';\nimport { escapeHtml } from '@shell/utils/string';\nimport { diffFrom } from '@shell/utils/time';\n\nexport default {\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n\n addSuffix: {\n type: Boolean,\n default: false,\n },\n\n addPrefix: {\n type: Boolean,\n default: false\n },\n\n suffix: {\n type: String,\n default: 'ago',\n },\n\n tooltipPlacement: {\n type: String,\n default: 'auto'\n },\n\n showTooltip: {\n type: Boolean,\n default: true\n },\n\n /**\n * Determines if the live date should behave like a countdown by comparing\n * the provided value and the current date. When the countdown reaches 0, a\n * \"-\" is rendered.\n */\n isCountdown: {\n type: Boolean,\n default: false,\n }\n },\n\n mounted() {\n // Set initial value;\n this.liveUpdate(day());\n },\n\n data() {\n return { label: '-' };\n },\n\n computed: {\n title() {\n if ( !this.value ) {\n return '';\n }\n\n const dateFormat = escapeHtml( this.$store.getters['prefs/get'](DATE_FORMAT));\n const timeFormat = escapeHtml( this.$store.getters['prefs/get'](TIME_FORMAT));\n\n const out = day(this.value).format(`${ dateFormat } ${ timeFormat }`);\n\n return out;\n },\n\n suffixedLabel() {\n if (!this.value) {\n // If there is no value, then do not show the suffix\n return this.label;\n }\n\n let out = this.label || '';\n\n if (out && this.addSuffix) {\n const exists = this.$store.getters['i18n/exists'];\n const suffixKey = `suffix.${ this.suffix }`;\n const suffix = exists(suffixKey) ? this.t(suffixKey) : this.suffix;\n\n out = `${ out } ${ suffix }`;\n }\n\n return out;\n },\n\n dayValue() {\n if (!this.value) {\n return null;\n }\n\n return day(this.value);\n }\n },\n\n watch: {\n value() {\n this.liveUpdate(day());\n }\n },\n\n methods: {\n liveUpdate(now) {\n if (!this.dayValue) {\n if (this.label !== '-') {\n this.label = '-';\n }\n\n return 300;\n }\n\n if (this.isCountdown && now.valueOf() > this.dayValue?.valueOf()) {\n this.label = '-';\n\n return 300;\n }\n\n const diff = diffFrom(this.dayValue, now);\n const prefix = (diff.diff < 0 || !this.addPrefix ? '' : '-');\n\n let label = diff.label;\n\n if ( diff.diff === 0 ) {\n label = 'Just now';\n } else {\n label += ` ${ prefix }${ this.t(diff.unitsKey, { count: diff.label }) }`;\n label = label.trim();\n }\n\n if ( this.label !== label ) {\n this.label = label;\n }\n\n return diff.next || 1;\n },\n }\n};\n</script>\n\n<template>\n <span\n v-if=\"!suffixedLabel\"\n class=\"text-muted\"\n >\n —\n </span>\n <span\n v-else-if=\"showTooltip\"\n v-clean-tooltip=\"{content: title, placement: tooltipPlacement}\"\n class=\"live-date\"\n >\n {{ suffixedLabel }}\n </span>\n <span\n v-else\n class=\"live-date\"\n >\n {{ suffixedLabel }}\n </span>\n</template>\n","import { render } from \"./LiveDate.vue?vue&type=template&id=64fe413c\"\nimport script from \"./LiveDate.vue?vue&type=script&lang=js\"\nexport * from \"./LiveDate.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".hardware-resource-gauge[data-v-0e4e8f37]{position:relative;display:flex;flex-direction:column}.hardware-resource-gauge .hw-gauge[data-v-0e4e8f37]:not(:first-of-type){margin-top:20px}.hardware-resource-gauge .values[data-v-0e4e8f37]{font-size:12px;padding-left:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".progress[data-v-f3ae1ea4]{display:block;border-radius:90px;background-color:var(--progress-bg);height:10px;width:100px}.progress .piece[data-v-f3ae1ea4]{display:inline-block;height:10px;border-radius:0;border-right:1px solid var(--progress-divider);vertical-align:top}.progress .piece[data-v-f3ae1ea4]:first-child{border-top-left-radius:90px;border-bottom-left-radius:90px}.progress .piece[data-v-f3ae1ea4]:last-child{border-top-right-radius:90px;border-bottom-right-radius:90px;border-right:0}.piece.bg-success[data-v-f3ae1ea4]:only-child{opacity:.5}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".has-link[data-v-39c6e929]{cursor:pointer}.has-link[data-v-39c6e929]:hover{border-color:var(--link)}[data-v-39c6e929] .content{display:flex;justify-content:space-between;align-items:center}[data-v-39c6e929] .content H1,[data-v-39c6e929] .content H3{margin:0}[data-v-39c6e929] .content .chip{border-radius:2em;color:var(--body-bg);padding:0 1em}[data-v-39c6e929] .content .chip.warn-count{background:var(--warning)}[data-v-39c6e929] .content .chip.error-count{background:var(--error)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):e.dayjs_plugin_minMax=n()}(this,function(){\"use strict\";return function(e,n,t){var i=function(e,n){if(!n.length)return t();var i;1===n.length&&n[0].length>0&&(n=n[0]),i=n[0];for(var r=1;r<n.length;r+=1)n[r].isValid()&&!n[r][e](i)||(i=n[r]);return i};t.max=function(){var e=[].slice.call(arguments,0);return i(\"isAfter\",e)},t.min=function(){var e=[].slice.call(arguments,0);return i(\"isBefore\",e)}}});\n","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):t.dayjs_plugin_utc=i()}(this,function(){\"use strict\";return function(t,i,e){var s=(new Date).getTimezoneOffset(),n=i.prototype;e.utc=function(t){return new i({date:t,utc:!0,args:arguments})},n.utc=function(){return e(this.toDate(),{locale:this.$L,utc:!0})},n.local=function(){return e(this.toDate(),{locale:this.$L,utc:!1})};var u=n.parse;n.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),u.call(this,t)};var o=n.init;n.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else o.call(this)};var f=n.utcOffset;n.utcOffset=function(t){var i=this.$utils().u;if(i(t))return this.$u?0:i(this.$offset)?f.call(this):this.$offset;var e,n=Math.abs(t)<=16?60*t:t;return 0!==t?(e=this.local().add(n+s,\"minute\")).$offset=n:e=this.utc(),e};var r=n.format;n.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return r.call(this,i)},n.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+s;return this.$d.valueOf()-6e4*t},n.isUTC=function(){return!!this.$u},n.toISOString=function(){return this.toDate().toISOString()},n.toString=function(){return this.toDate().toUTCString()};var a=n.toDate;n.toDate=function(t){return\"s\"===t&&this.$offset?e(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():a.call(this)}}});\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./HardwareResourceGauge.vue?vue&type=style&index=0&id=0e4e8f37&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1c1305c7\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ProgressBarMulti.vue?vue&type=style&index=0&id=f3ae1ea4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7c53273f\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ResourceSummary.vue?vue&type=style&index=0&id=39c6e929&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"320454d5\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","key","_createBlock","_component_SimpleBox","default","_withCtx","_createElementVNode","_hoisted_1","_toDisplayString","$props","name","reserved","undefined","total","useful","_createCommentVNode","_createElementBlock","_hoisted_2","_createVNode","_component_ConsumptionGauge","capacity","used","$options","colorStops","title","_createTextVNode","reservedTitle","_ctx","t","_hoisted_3","formattedUseful","_hoisted_4","_hoisted_5","maxDecimalPlaces","formattedTotal","_hoisted_6","_hoisted_7","units","percentage","_","_hoisted_8","usedTitle","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","components","ConsumptionGauge","SimpleBox","props","type","String","required","Object","computed","methods","n","Math","round","strokes","primary","secondary","primaryStrokeColor","this","rgba","primaryStrokeGradientColor","secondaryStrokeColor","secondaryStrokeGradientColor","variable","opacity","resource","toFixed","__exports__","render","_renderSlot","$slots","prefixLabel","_component_t","k","raw","prefix","_component_router_link","to","target","middleLabel","middle","suffixLabel","suffix","_normalizeClass","progress","multi","pieces","length","ariaLabelText","_Fragment","_renderList","piece","idx","color","style","_normalizeStyle","values","Array","colorKey","labelKey","valueKey","min","Number","max","minPercent","showZeros","Boolean","out","obj","get","label","value","push","sum","map","x","reduce","a","b","percent","toPercent","sortBy","filter","isArray","ariaLabel","forEach","val","per","floor","location","onClick","goToResource","resourceCounts","warningCount","errorCount","colorToCountName","store","inStore","getters","COUNT","clusterCounts","counts","summary","count","entries","states","entry","colorForState","countName","spoofedCounts","cluster","$store","route","params","product","schema","$router","arbitrary","_component_BadgeState","$data","stateBackground","stateDisplay","row","BadgeState","col","data","watch","handler","replace","immediate","suffixedLabel","showTooltip","placement","tooltipPlacement","addSuffix","addPrefix","isCountdown","mounted","liveUpdate","day","dateFormat","escapeHtml","DATE_FORMAT","timeFormat","TIME_FORMAT","format","exists","suffixKey","dayValue","now","valueOf","diff","diffFrom","unitsKey","trim","next","___CSS_LOADER_EXPORT___","module","id","e","exports","i","r","isValid","slice","call","arguments","s","Date","getTimezoneOffset","prototype","utc","date","args","toDate","locale","$L","local","u","parse","$u","$utils","$offset","o","init","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","f","utcOffset","abs","add","isUTC","toISOString","toString","toUTCString","content","__esModule","locals"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.850.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.850.js new file mode 100644 index 00000000..fe68a639 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.850.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[850],{27547:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return U},ksmtunedMode:function(){return N},ksmtunedRunOption:function(){return w}});var s=a(9274);const o={class:"row"},l={class:"col span-6"},r={class:"col span-6"},n={class:"row"},i={class:"col span-6"},d={class:"col span-6"},u={class:"row"},c={class:"col span-6"};function m(e,t,a,m,p,v){const h=(0,s.resolveComponent)("LabeledSelect"),b=(0,s.resolveComponent)("UnitInput"),y=(0,s.resolveComponent)("Checkbox"),f=(0,s.resolveComponent)("t"),g=(0,s.resolveComponent)("RadioGroup"),k=(0,s.resolveComponent)("LabeledInput");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createVNode)(h,{value:p.spec.run,"onUpdate:value":t[0]||(t[0]=e=>p.spec.run=e),label:e.t("harvester.host.ksmtuned.run"),options:p.ksmtunedRunOption,class:"mb-20",mode:a.mode,required:""},null,8,["value","label","options","mode"]),v.showKsmt?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[(0,s.createVNode)(b,{value:p.spec.thresCoef,"onUpdate:value":t[1]||(t[1]=e=>p.spec.thresCoef=e),valueModifiers:{number:!0},label:e.t("harvester.host.ksmtuned.thresCoef"),suffix:"%",delay:0,required:"",mode:a.mode,class:"mb-20"},null,8,["value","label","mode"]),(0,s.createVNode)(y,{value:p.enableMergeAcrossNodes,"onUpdate:value":t[2]||(t[2]=e=>p.enableMergeAcrossNodes=e),mode:a.mode,class:"check mb-20",type:"checkbox",label:e.t("harvester.host.ksmtuned.enableMergeNodes")},null,8,["value","mode","label"]),(0,s.createElementVNode)("h3",null,[(0,s.createVNode)(f,{k:"harvester.host.ksmtuned.modeLink",raw:!0,url:v.ksmtunedLink},null,8,["url"])]),(0,s.createVNode)(g,{value:p.spec.mode,"onUpdate:value":t[3]||(t[3]=e=>p.spec.mode=e),class:"mb-20",name:e.t("harvester.host.ksmtuned.mode"),options:p.ksmtunedMode},null,8,["value","name","options"]),v.isCustomizedMode?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[(0,s.createElementVNode)("div",o,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(k,{value:p.spec.ksmtunedParameters.boost,"onUpdate:value":t[4]||(t[4]=e=>p.spec.ksmtunedParameters.boost=e),valueModifiers:{number:!0},required:"",type:"number",label:e.t("harvester.host.ksmtuned.parameters.boost"),tooltip:e.t("harvester.host.ksmtuned.parameters.description.boost"),class:"mb-20",mode:a.mode},null,8,["value","label","tooltip","mode"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(k,{value:p.spec.ksmtunedParameters.decay,"onUpdate:value":t[5]||(t[5]=e=>p.spec.ksmtunedParameters.decay=e),valueModifiers:{number:!0},required:"",type:"number",label:e.t("harvester.host.ksmtuned.parameters.decay"),tooltip:e.t("harvester.host.ksmtuned.parameters.description.decay"),class:"mb-20",mode:a.mode},null,8,["value","label","tooltip","mode"])])]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",i,[(0,s.createVNode)(k,{value:p.spec.ksmtunedParameters.minPages,"onUpdate:value":t[6]||(t[6]=e=>p.spec.ksmtunedParameters.minPages=e),valueModifiers:{number:!0},required:"",type:"number",label:e.t("harvester.host.ksmtuned.parameters.minPages"),tooltip:e.t("harvester.host.ksmtuned.parameters.description.minPages"),class:"mb-20",mode:a.mode},null,8,["value","label","tooltip","mode"])]),(0,s.createElementVNode)("div",d,[(0,s.createVNode)(k,{value:p.spec.ksmtunedParameters.maxPages,"onUpdate:value":t[7]||(t[7]=e=>p.spec.ksmtunedParameters.maxPages=e),valueModifiers:{number:!0},required:"",type:"number",label:e.t("harvester.host.ksmtuned.parameters.maxPages"),tooltip:e.t("harvester.host.ksmtuned.parameters.description.maxPages"),class:"mb-20",mode:a.mode},null,8,["value","label","tooltip","mode"])])]),(0,s.createElementVNode)("div",u,[(0,s.createElementVNode)("div",c,[(0,s.createVNode)(k,{value:p.spec.ksmtunedParameters.sleepMsec,"onUpdate:value":t[8]||(t[8]=e=>p.spec.ksmtunedParameters.sleepMsec=e),valueModifiers:{number:!0},required:"",type:"number",label:e.t("harvester.host.ksmtuned.parameters.sleepMsec"),tooltip:e.t("harvester.host.ksmtuned.parameters.description.sleepMsec"),class:"mb-20",mode:a.mode},null,8,["value","label","tooltip","mode"])])])],64)):(0,s.createCommentVNode)("",!0)],64)):(0,s.createCommentVNode)("",!0)])}var p=a(77988),v=a(79380),h=a(77290),b=a(10196),y=a(42200),f=a(32766),g=a(66242),k=a(3791);const N=[{value:"standard",label:"Standard"},{value:"high",label:"High-Perfomanace"},{value:"customized",label:"Customized"}],w=[{label:"Run",value:"run"},{label:"Stop",value:"stop"},{label:"Prune",value:"prune"}];var V={name:"HarvesterKsmtuned",components:{Checkbox:y.S,LabeledInput:v.o,LabeledSelect:p.A,RadioGroup:b.z,UnitInput:h.A},props:{mode:{type:String,required:!0},node:{type:Object,required:!0},registerBeforeHook:{type:Function,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await this.$store.dispatch(`${e}/findAll`,{type:f.rk.KSTUNED});this.ksmtuned=t.find((e=>e.id===this.node.id)),this.enableMergeAcrossNodes=!!this.ksmtuned.spec?.mergeAcrossNodes,this.spec=this.ksmtuned.spec},data(){return{ksmtuned:{},spec:{},thresCoef:30,ksmtunedMode:N,ksmtunedRunOption:w,enableMergeAcrossNodes:!0}},created(){this.registerBeforeHook(this.saveKsmtuned,"saveKsmtuned")},computed:{isCustomizedMode(){return"customized"===this.spec.mode},showKsmt(){return"run"===this.spec.run},ksmtunedLink(){const e=this.$store.getters["harvester-common/getServerVersion"]();return(0,k.nn)(g.d.KSMTUNED_MODE,e)}},methods:{async saveKsmtuned(){this.spec.mergeAcrossNodes=this.enableMergeAcrossNodes?1:0,this.ksmtuned["spec"]=this.spec,await this.ksmtuned.save().catch((e=>{if("error"===e?.type)return this.$store.dispatch("growl/error",{title:this.t("harvester.notification.title.error"),message:e?.message},{root:!0}),Promise.reject(new Error("saveKsmtuned error"))}))}}},C=a(47433);const E=(0,C.A)(V,[["render",m]]);var U=E},58094:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return b}});var s=a(9274);const o={class:"vm__credentials-users"};function l(e,t,a,l,r,n){const i=(0,s.resolveComponent)("LabeledSelect"),d=(0,s.resolveComponent)("LabeledInput"),u=(0,s.resolveComponent)("ModalWithCard");return(0,s.openBlock)(),(0,s.createElementBlock)("div",o,[(0,s.createVNode)(i,{value:r.selectedUser,"onUpdate:value":t[0]||(t[0]=e=>r.selectedUser=e),options:a.userOptions,label:e.t("harvester.virtualMachine.accessCredentials.injectSSH.users"),taggable:a.multiple,mode:a.mode,multiple:a.multiple,searchable:!1,tooltip:e.t("harvester.virtualMachine.accessCredentials.userTips"),class:(0,s.normalizeClass)({hasUsers:r.selectedUser.length>0}),onInput:n.update},null,8,["value","options","label","taggable","mode","multiple","tooltip","class","onInput"]),r.isOpen?((0,s.openBlock)(),(0,s.createBlock)(u,{key:0,name:r.randomStr,width:"40%",errors:r.errors,onFinish:n.addUser,onClose:n.cancel},{title:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.t("harvester.virtualMachine.accessCredentials.injectSSH.addUser")),1)])),content:(0,s.withCtx)((()=>[(0,s.createVNode)(d,{value:r.newUsername,"onUpdate:value":t[1]||(t[1]=e=>r.newUsername=e),label:e.t("harvester.virtualMachine.input.username"),class:"mb-20",required:"",onKeydown:(0,s.withKeys)((0,s.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","label","onKeydown"])])),_:1},8,["name","errors","onFinish","onClose"])):(0,s.createCommentVNode)("",!0)])}var r=a(65359),n=a(76978),i=a(92043),d=a(79380),u=a(77988),c=a(40973);const m="_NEW";var p={emits:["update:user","update:newUser"],components:{LabeledInput:d.o,LabeledSelect:u.A,ModalWithCard:c.A},props:{value:{type:[Array,String],default:()=>[]},resourceType:{type:Object,default:()=>({})},userOptions:{type:Array,default:()=>[]},multiple:{type:Boolean,default:!1},mode:{type:String,default:"create"},disabled:{type:Boolean,default:!1}},data(){return{selectedUser:this.value,newUsername:"",randomStr:(0,i.vx)(5).toLowerCase(),errors:[],isOpen:!1}},computed:{...(0,r.L8)({t:"i18n/t"})},watch:{value(e){this.selectedUser=e},selectedUser(e,t){e.includes(m)&&(this["selectedUser"]=t,this.update(),this.show())}},methods:{update(){this.$emit("update:user",(0,n.o8)(this.selectedUser))},addUser(e){const t=/^[-._0-9a-zA-Z]+$/;if(this.errors=[],!t.test(this.newUsername)){const t=this.t("harvester.virtualMachine.accessCredentials.invalidUser");return this.errors.push(t),void e(!1)}if(this.userOptions.includes(this.newUsername)){const t=this.t("harvester.virtualMachine.accessCredentials.duplicatedUser");return this.errors.push(t),void e(!1)}this.multiple?this.selectedUser.push(this.newUsername):this.selectedUser=this.newUsername,this.$emit("update:newUser",this.newUsername),this.update(),e(!0),this.cancel()},show(){this.isOpen=!0},hide(){this.isOpen=!1},cancel(){this.hide(),this.newUsername=""}}},v=(a(84388),a(47433));const h=(0,v.A)(p,[["render",l]]);var b=h},60068:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return g}});var s=a(9274);const o=["onClick"],l={key:0,class:"mt-20"};function r(e,t,a,r,n,i){const d=(0,s.resolveComponent)("Banner"),u=(0,s.resolveComponent)("InfoBox");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createVNode)(d,{class:"mb-20",color:"info",label:e.t("harvester.virtualMachine.accessCredentials.tips")},null,8,["label"]),((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(n.rows,((e,l)=>((0,s.openBlock)(),(0,s.createElementBlock)("div",{key:l},[(0,s.createVNode)(u,{class:"volume-source"},{default:(0,s.withCtx)((()=>[i.isEdit?((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:0,type:"button",class:"role-link btn btn-sm remove-vol",onClick:t=>i.remove(e)},t[2]||(t[2]=[(0,s.createElementVNode)("i",{class:"icon icon-x"},null,-1)]),8,o)):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("h3",null,[(0,s.createElementVNode)("span",null,(0,s.toDisplayString)(i.headerFor(e.source)),1)]),(0,s.createElementVNode)("div",null,[((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)(i.componentFor(e.source)),{value:n.rows[l],"onUpdate:value":e=>n.rows[l]=e,rows:n.rows,"resource-type":a.resourceType,"user-options":i.userOptions,mode:a.mode,idx:l,onUpdate:i.update,"onUpdate:newUser":i.updateNewUser},null,40,["value","onUpdate:value","rows","resource-type","user-options","mode","idx","onUpdate","onUpdate:newUser"]))])])),_:2},1024)])))),128)),i.isEdit&&a.isQemuInstalled?((0,s.openBlock)(),(0,s.createElementBlock)("div",l,[(0,s.createElementVNode)("button",{type:"button",class:"btn btn-sm bg-primary mr-15 mb-10",onClick:t[0]||(t[0]=e=>i.addCredentials(n.ACCESS_CREDENTIALS.RESET_PWD))},(0,s.toDisplayString)(e.t("harvester.virtualMachine.accessCredentials.resetPwd.label")),1),(0,s.createElementVNode)("button",{type:"button",class:"btn btn-sm bg-primary mr-15 mb-10",onClick:t[1]||(t[1]=e=>i.addCredentials(n.ACCESS_CREDENTIALS.INJECT_SSH))},(0,s.toDisplayString)(e.t("harvester.virtualMachine.accessCredentials.injectSSH.label")),1)])):(0,s.createCommentVNode)("",!0)])}var n=a(65359),i=a(9980),d=a(26962),u=a(92043),c=a(68851),m=a(14220),p=a(2602),v=a(66905);const h="_NEW";var b={emits:["update:value"],components:{Banner:i.l,InfoBox:d.A},props:{value:{type:Array,default:()=>[]},resourceType:{type:Object,default:()=>({})},mode:{type:String,default:"create"},disableCreate:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},isQemuInstalled:{type:Boolean,default:!1}},data(){return{ACCESS_CREDENTIALS:v.cI,toRemove:[],toSave:[],rows:[],newUserOptions:[]}},computed:{...(0,n.L8)({t:"i18n/t"}),isEdit(){return this.mode===m.G5},historyUsersOptions(){const e=JSON.parse(this.resourceType?.spec?.template?.metadata?.annotations?.[p.r.DYNAMIC_SSHKEYS_USERS]||"[]");return e.unshift({label:this.t("harvester.virtualMachine.accessCredentials.injectSSH.addUser"),value:h}),e},userOptions(){return Array.from(new Set([...this.historyUsersOptions,...this.newUserOptions]))}},watch:{value:{handler(e){this.rows=[...e]},deep:!0,immediate:!0}},methods:{addCredentials(e){const t={source:e,users:[],sshkeys:[],username:"",newPassword:"",secretName:this.generateSecretName(this.resourceType.metadata.name)};this.rows.push(t),this.update()},remove(e){(0,c.Gj)(this.rows,e),this.update()},update(){this.$emit("update:value",this.rows)},updateNewUser(e){this.newUserOptions.push(e)},generateSecretName(e){return e?`${e}-${(0,u.vx)(5).toLowerCase()}`:void 0},componentFor(e){switch(e){case v.cI.RESET_PWD:return a(23574)["default"];case v.cI.INJECT_SSH:return a(18933)["default"]}},headerFor(e){return{userPassword:this.$store.getters["i18n/t"]("harvester.virtualMachine.accessCredentials.resetPwd.label"),sshPublicKey:this.$store.getters["i18n/t"]("harvester.virtualMachine.accessCredentials.injectSSH.label")}[e]}}},y=(a(38239),a(47433));const f=(0,y.A)(b,[["render",r],["__scopeId","data-v-61977bc4"]]);var g=f},23574:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return m}});var s=a(9274);const o={class:"col span-6"},l={class:"col span-6"};function r(e,t,a,r,n,i){const d=(0,s.resolveComponent)("AccessCredentialsUsers"),u=(0,s.resolveComponent)("Password");return(0,s.openBlock)(),(0,s.createElementBlock)("div",{class:"row","onUpdate:value":t[2]||(t[2]=(...e)=>i.update&&i.update(...e))},[(0,s.createElementVNode)("div",o,[(0,s.createVNode)(d,{value:a.value.username,"onUpdate:value":t[0]||(t[0]=e=>a.value.username=e),"resource-type":a.resourceType,"user-options":a.userOptions,multiple:!1,mode:a.mode,"onUpdate:user":i.updateUser,"onUpdate:newUser":i.updateNewUser},null,8,["value","resource-type","user-options","mode","onUpdate:user","onUpdate:newUser"])]),(0,s.createElementVNode)("div",l,[(0,s.createVNode)(u,{ref:"password",value:a.value.newPassword,"onUpdate:value":t[1]||(t[1]=e=>a.value.newPassword=e),mode:a.mode,disabled:"edit"!==a.mode,label:e.t("harvester.virtualMachine.input.password"),required:""},null,8,["value","mode","disabled","label"])])],32)}var n=a(18401),i=a(58094),d={name:"HarvesterEditVolume",emits:["update","update:newUser"],components:{Password:n.A,AccessCredentialsUsers:i["default"]},props:{mode:{type:String,default:"create"},resourceType:{type:Object,default:()=>({})},userOptions:{type:Array,default:()=>[]},value:{type:Object,default:()=>({})}},data(){return{defaultPwdValue:{username:"",newPassword:""}}},methods:{update(){this.$emit("update")},updateUser(e){this.value["username"]=e,this.update()},updateNewUser(e){this.$emit("update:newUser",e)}}},u=(a(27461),a(47433));const c=(0,u.A)(d,[["render",r],["__scopeId","data-v-7d19b7bd"]]);var m=c},18933:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var s=a(9274);const o={class:"columns row"},l={class:"col span-6"},r={class:"col span-6"};function n(e,t,a,n,i,d){const u=(0,s.resolveComponent)("AccessCredentialsUsers"),c=(0,s.resolveComponent)("SSHKey");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createElementVNode)("div",o,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(u,{value:a.value.users,"onUpdate:value":t[0]||(t[0]=e=>a.value.users=e),"resource-type":a.resourceType,"user-options":a.userOptions,mode:a.mode,multiple:!0,"onUpdate:user":d.updateUser,"onUpdate:newUser":d.updateNewUser},null,8,["value","resource-type","user-options","mode","onUpdate:user","onUpdate:newUser"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(c,{value:a.value.sshkeys,"onUpdate:value":t[1]||(t[1]=e=>a.value.sshkeys=e),class:"mb-20",namespace:a.resourceType.metadata.namespace,mode:a.mode,searchable:!1,"onUpdate:sshKey":d.updateSSH},null,8,["value","namespace","mode","onUpdate:sshKey"])])])])}var i=a(59026),d=a(58094),u={name:"HarvesterEditVolume",emits:["update","update:newUser"],components:{SSHKey:i["default"],AccessCredentialsUsers:d["default"]},props:{mode:{type:String,default:"create"},resourceType:{type:Object,default:()=>({})},userOptions:{type:Array,default:()=>[]},value:{type:Object,default:()=>({})}},methods:{update(){this.$emit("update")},updateUser(e){this.value["users"]=e,this.update()},updateSSH(e){this.value["sshkeys"]=e,this.update()},updateNewUser(e){this.$emit("update:newUser",e)}}},c=a(47433);const m=(0,c.A)(u,[["render",n]]);var p=m},16369:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var s=a(9274);const o={class:"mb-20"},l={class:"text-muted mb-20"},r={class:"resource-yaml"};function n(e,t,a,n,i,d){const u=(0,s.resolveComponent)("t"),c=(0,s.resolveComponent)("LabeledSelect"),m=(0,s.resolveComponent)("YamlEditor");return(0,s.openBlock)(),(0,s.createElementBlock)("div",o,[(0,s.createElementVNode)("h3",null,(0,s.toDisplayString)(e.t(`harvester.virtualMachine.cloudConfig.${a.type}.title`)),1),(0,s.createElementVNode)("p",l,[(0,s.createVNode)(u,{k:`harvester.virtualMachine.cloudConfig.${a.type}.tip`,raw:!0},null,8,["k"])]),d.isView?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createBlock)(c,{key:0,value:i.id,"onUpdate:value":t[0]||(t[0]=e=>i.id=e),class:"mb-20",options:a.options,disabled:a.viewCode,"label-key":`harvester.virtualMachine.cloudConfig.${a.type}.label`},null,8,["value","options","disabled","label-key"])),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(m,{ref:"yaml",value:i.yamlScript,"onUpdate:value":t[1]||(t[1]=e=>i.yamlScript=e),class:"yaml-editor","editor-mode":d.editorMode},null,8,["value","editor-mode"])])])}var i=a(65359),d=a(77988),u=a(36143),c=a(14220),m=a(35664);const p="_NEW",v="_NONE";var h={components:{YamlEditor:u.A,LabeledSelect:d.A},emits:["updateTemplateId","show","update"],props:{mode:{type:String,default:"create"},value:{type:String,default:""},type:{type:String,default:""},options:{type:Array,default:()=>[]},configId:{type:String,default:""},viewCode:{type:Boolean,default:!1}},data(){return{id:"",yamlScript:this.value}},computed:{...(0,i.L8)({t:"i18n/t"}),editorMode(){return this.isView||this.viewCode?u.j.VIEW_CODE:u.j.EDIT_CODE},isView(){return this.mode===c.nW}},watch:{value(e){this.yamlScript=e},configId(e){this.id=this.configId},id(e,t){const a=this.$store.getters["harvester/byId"](m.K5,e)?.data?.cloudInit||"";if(this.$emit("updateTemplateId",this.type,e),e){if(e===p)return this.$emit("show",this.type),void(this.id=t);this.yamlScript=e===v?"":a,this.$refs["yaml"].updateValue(a)}},yamlScript(e){this.$emit("update",e,this.type)}},methods:{refresh(){this.$refs.yaml.refresh()},updateValue(){this.$refs["yaml"].updateValue(this.value)}}},b=(a(71157),a(47433));const y=(0,b.A)(h,[["render",n],["__scopeId","data-v-1613a356"]]);var f=y},81559:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return w}});var s=a(9274);const o={key:0},l={class:"mb-20"},r={class:"mb-20"},n={class:"yaml"},i={class:"resource-yaml"};function d(e,t,a,d,u,c){const m=(0,s.resolveComponent)("DataTemplate"),p=(0,s.resolveComponent)("LabeledInput"),v=(0,s.resolveComponent)("YamlEditor"),h=(0,s.resolveComponent)("ModalWithCard");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[c.isView?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("h2",o,(0,s.toDisplayString)(e.t("harvester.virtualMachine.cloudConfig.title")),1)),(0,s.createElementVNode)("div",l,[(0,s.createVNode)(m,{ref:"userTemplate",value:a.userScript,type:"user","view-code":a.viewCode,mode:a.mode,"config-id":u.configUserId,options:u.optionUser,onShow:c.show,onUpdate:c.update,onUpdateTemplateId:c.updateTemplateId},null,8,["value","view-code","mode","config-id","options","onShow","onUpdate","onUpdateTemplateId"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(m,{ref:"networkTemplate",value:a.networkScript,type:"network","view-code":a.viewCode,mode:a.mode,"config-id":u.configNetworkId,options:u.optionNetwork,onShow:c.show,onUpdate:c.update},null,8,["value","view-code","mode","config-id","options","onShow","onUpdate"])]),u.isOpen?((0,s.openBlock)(),(0,s.createBlock)(h,{key:1,name:"createCloudTemplate",width:"40%",errors:u.errors,onFinish:c.save,onClose:c.cancel},{title:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.t("harvester.virtualMachine.cloudConfig.createTemplateTitle",{name:c.createTypeLable})),1)])),content:(0,s.withCtx)((()=>[(0,s.createVNode)(p,{value:u.cloudTemplateName,"onUpdate:value":t[0]||(t[0]=e=>u.cloudTemplateName=e),label:e.t("harvester.virtualMachine.input.name"),class:"mb-20",required:"",onKeydown:(0,s.withKeys)((0,s.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","label","onKeydown"]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",i,[(0,s.createVNode)(v,{ref:"createTemplate",value:u.cloudTemplate,"onUpdate:value":t[1]||(t[1]=e=>u.cloudTemplate=e),class:"yaml-editor","editor-mode":c.editorMode},null,8,["value","editor-mode"])])])])),_:1},8,["errors","onFinish","onClose"])):(0,s.createCommentVNode)("",!0)])}var u=a(65359),c=a(79380),m=a(36143),p=a(40973),v=a(35664),h=a(2602),b=a(14220),y=a(16369);const f="_NEW";var g={emits:["updateUserData","updateNetworkData","updateDataTemplateId"],components:{DataTemplate:y["default"],YamlEditor:m.A,LabeledInput:c.o,ModalWithCard:p.A},props:{mode:{type:String,default:"create"},namespace:{type:String,default:""},userScript:{type:String,default:""},networkScript:{type:String,default:""},viewCode:{type:Boolean,default:!1}},data(){return{errors:[],templateType:"",cloudTemplate:"",cloudTemplateName:"",configUserId:"",configNetworkId:"",optionUser:[],optionNetwork:[],isOpen:!1}},async fetch(){const e=await this.$store.dispatch("harvester/findAll",{type:v.K5}),t=[],a=[];for(const s of e)"user"===s.metadata?.labels?.[h.r.CLOUD_INIT]&&t.push({label:s?.id,value:s?.id}),"network"===s.metadata?.labels?.[h.r.CLOUD_INIT]&&a.push({label:s?.id,value:s?.id});t.unshift({label:this.t("harvester.virtualMachine.cloudConfig.createNew"),value:f}),a.unshift({label:this.t("harvester.virtualMachine.cloudConfig.createNew"),value:f}),this.optionUser=t,this.optionNetwork=a},computed:{...(0,u.L8)({t:"i18n/t"}),createTypeLable(){const e=`harvester.virtualMachine.cloudConfig.${this.templateType}.label`;return this.t(e)},editorMode(){return this.isView?m.j.VIEW_CODE:m.j.EDIT_CODE},isView(){return this.mode===b.nW}},methods:{updateValue(){this.$refs["userTemplate"].updateValue(),this.$refs["networkTemplate"].updateValue()},update(e,t){"user"===t&&this.$emit("updateUserData",e),"network"===t&&this.$emit("updateNetworkData",e)},updateTemplateId(e,t){this.$emit("updateDataTemplateId",e,t)},show(e){this.templateType=e,this.isOpen=!0},async save(e){if(this.errors=[],!this.cloudTemplateName)return this.errors.push(this.t("validation.required",{key:this.t("harvester.virtualMachine.input.name")},!0)),void e(!1);if(!this.cloudTemplate){const t="user"===this.templateType?"harvester.cloudTemplate.userData":"harvester.cloudTemplate.networkData";return this.errors.push(this.t("validation.required",{key:this.t(t)},!0)),void e(!1)}const t=await this.$store.dispatch("harvester/create",{type:v.K5,metadata:{labels:{[h.r.CLOUD_INIT]:this.templateType},name:this.cloudTemplateName,namespace:this.namespace},data:{cloudInit:this.cloudTemplate}});try{const a=await t.save();a.id&&("user"===this.templateType?this.configUserId=a.id:this.configNetworkId=a.id,this.$fetch()),e(!0),this.cancel()}catch(a){this.errors=[a.message],e(!1)}},cancel(){this.cloudTemplate="",this.cloudTemplateName="",this["errors"]=[],this.isOpen=!1},refresh(){this.$refs["userTemplate"].refresh(),this.$refs["networkTemplate"].refresh()}}},k=(a(9729),a(47433));const N=(0,k.A)(g,[["render",d],["__scopeId","data-v-2d3a6d84"]]);var w=N},75403:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var s=a(9274);const o={class:"row"},l={class:"col span-6 mb-10"},r={class:"col span-6 mb-10"};function n(e,t,a,n,i,d){const u=(0,s.resolveComponent)("UnitInput"),c=(0,s.resolveComponent)("InputOrDisplay");return(0,s.openBlock)(),(0,s.createElementBlock)("div",o,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(c,{name:"CPU",value:d.cupDisplay,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(u,{value:i.localCpu,"onUpdate:value":[t[0]||(t[0]=e=>i.localCpu=e),d.change],label:"CPU",suffix:"C",delay:0,required:"",disabled:a.disabled,mode:a.mode,class:"mb-20"},null,8,["value","disabled","mode","onUpdate:value"])])),_:1},8,["value","mode"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.input.memory"),value:d.memoryDisplay,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(u,{value:i.localMemory,"onUpdate:value":[t[1]||(t[1]=e=>i.localMemory=e),d.change],label:e.t("harvester.virtualMachine.input.memory"),mode:a.mode,"input-exponent":3,delay:0,increment:1024,"output-modifier":!0,disabled:a.disabled,required:"",class:"mb-20"},null,8,["value","label","mode","disabled","onUpdate:value"])])),_:1},8,["name","value","mode"])])])}var i=a(77290),d=a(60090),u={name:"HarvesterEditCpuMemory",emits:["updateCpuMemory"],components:{UnitInput:i.A,InputOrDisplay:d.A},props:{cpu:{type:Number,default:null},memory:{type:String,default:null},mode:{type:String,default:"create"},disabled:{type:Boolean,default:!1}},data(){return{localCpu:this.cpu,localMemory:this.memory}},computed:{cupDisplay(){return`${this.localCpu} C`},memoryDisplay(){return`${this.localMemory}`}},watch:{cpu(e){this.localCpu=e},memory(e){e&&!e.includes("null")&&(this.localMemory=e)}},methods:{change(){let e="";e=String(this.localMemory).includes("Gi")?this.localMemory:`${this.localMemory}Gi`,e.includes("null")&&(e=null),this.$emit("updateCpuMemory",this.localCpu,e)}}},c=a(47433);const m=(0,c.A)(u,[["render",n]]);var p=m},48893:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return C}});var s=a(9274);const o={class:"row mb-20"},l={"data-testid":"input-hen-name",class:"col span-6"},r={"data-testid":"input-hen-model",class:"col span-6"},n={"data-testid":"input-hen-networkName",class:"col span-6"},i={"data-testid":"input-hen-type",class:"col span-6"},d={key:0},u={class:"row mb-20"},c={class:"row"},m={key:0,"data-testid":"input-hen-macAddress",class:"col span-6"};function p(e,t,a,p,v,h){const b=(0,s.resolveComponent)("LabeledInput"),y=(0,s.resolveComponent)("InputOrDisplay"),f=(0,s.resolveComponent)("LabeledSelect");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createElementVNode)("div",o,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(y,{name:e.t("harvester.fields.name"),value:a.value.name,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(b,{value:a.value.name,"onUpdate:value":[t[0]||(t[0]=e=>a.value.name=e),h.update],label:e.t("harvester.fields.name"),required:"",mode:a.mode,disabled:h.isDisabled},null,8,["value","label","mode","disabled","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(y,{name:e.t("harvester.fields.model"),value:a.value.model,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(f,{value:a.value.model,"onUpdate:value":[t[1]||(t[1]=e=>a.value.model=e),h.update],label:e.t("harvester.fields.model"),disabled:h.isDisabled,options:h.modelOption,mode:a.mode,required:""},null,8,["value","label","disabled","options","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",{class:(0,s.normalizeClass)(["row",{"mb-20":!v.isMasquerade}])},[(0,s.createElementVNode)("div",n,[(0,s.createVNode)(y,{name:e.t("harvester.fields.network"),value:a.value.networkName,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(f,{value:a.value.networkName,"onUpdate:value":[t[2]||(t[2]=e=>a.value.networkName=e),h.updateNetworkName],label:e.t("harvester.fields.network"),options:h.allNetworkOption,mode:a.mode,required:"",disabled:h.isDisabled},null,8,["value","label","options","mode","disabled","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",i,[(0,s.createVNode)(y,{name:e.t("harvester.fields.type"),value:a.value.type,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(f,{value:a.value.type,"onUpdate:value":[t[3]||(t[3]=e=>a.value.type=e),h.update],label:e.t("harvester.fields.type"),options:h.typeOption,mode:a.mode,required:""},null,8,["value","label","options","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])])],2),!v.isMasquerade&&a.isSingle?((0,s.openBlock)(),(0,s.createElementBlock)("div",d,[(0,s.createElementVNode)("div",u,[(0,s.createElementVNode)("a",{role:"button",onClick:t[4]||(t[4]=(...e)=>h.toggleAdvanced&&h.toggleAdvanced(...e))},(0,s.toDisplayString)(v.showAdvanced?e.t("harvester.generic.hideMore"):e.t("harvester.generic.showMore")),1)]),(0,s.createElementVNode)("div",c,[v.showAdvanced?((0,s.openBlock)(),(0,s.createElementBlock)("div",m,[(0,s.createVNode)(y,{name:e.t("harvester.fields.macAddress"),value:a.value.macAddress,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(b,{value:a.value.macAddress,"onUpdate:value":[t[5]||(t[5]=e=>a.value.macAddress=e),h.update],"label-key":"harvester.fields.macAddress",mode:a.mode,tooltip:e.t("harvester.virtualMachine.volume.macTip")},null,8,["value","mode","tooltip","onUpdate:value"])])),_:1},8,["name","value","mode"])])):(0,s.createCommentVNode)("",!0)])])):(0,s.createCommentVNode)("",!0)])}var v=a(60090),h=a(79380),b=a(77988),y=a(76978),f=a(14220),g=a(48249);const k=[{label:"virtio",value:"virtio"},{label:"e1000",value:"e1000"},{label:"e1000e",value:"e1000e"},{label:"ne2k_pci",value:"ne2k_pci"},{label:"pcnet",value:"pcnet"},{label:"rtl8139",value:"rtl8139"}];var N={name:"HarvesterEditNetwork",emits:["update"],components:{LabeledInput:h.o,LabeledSelect:b.A,InputOrDisplay:v.A},props:{value:{type:Object,default:()=>({})},networkOption:{type:Array,default:()=>[]},rows:{type:Array,default:()=>[]},mode:{type:String,default:"create"},isSingle:{type:Boolean,default:!0}},data(){const e=this.value.isPod;return e&&(this.value.networkName=g.PO),{isMasquerade:e,hasManagementNetwork:!1,showAdvanced:!1}},computed:{isDisabled(){return this.isMasquerade&&!this.value.newCreateId&&!this.isCreate},isView(){return this.mode===f.nW},isCreate(){return this.mode===f.YQ},modelOption(){return k},allNetworkOption(){const e=(0,y.o8)(this.networkOption),t=[{label:g.PO,value:g.PO}];return this.value.newCreateId&&this.hasManagementNetwork?e:this.value.newCreateId&&!this.hasManagementNetwork?[...t,...e]:this.isMasquerade?t:e},typeOption(){const e=[{label:"masquerade",value:"masquerade"},{label:"bridge",value:"bridge"}],t=[{label:"bridge",value:"bridge"}];return this.isMasquerade?e:t}},watch:{rows:{handler(e){const t=!!e.some((e=>e.isPod));this["hasManagementNetwork"]=t},immediate:!0,deep:!0},isSingle(e){e||(this.value["macAddress"]="",this.update())}},methods:{updateNetworkName(e){e===g.PO?(this.value.isPod=!0,this.value.macAddress=""):this.value.isPod=!1,this["isMasquerade"]=this.value.isPod,this.value.isPod?this.value.type="masquerade":this.value.type="bridge",this.update()},update(){this.$emit("update")},toggleAdvanced(){this.showAdvanced=!this.showAdvanced}}},w=a(47433);const V=(0,w.A)(N,[["render",p]]);var C=V},8746:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var s=a(9274);const o=["onClick"];function l(e,t,a,l,r,n){const i=(0,s.resolveComponent)("Base"),d=(0,s.resolveComponent)("InfoBox");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(r.rows,((l,u)=>((0,s.openBlock)(),(0,s.createBlock)(d,{key:u},{default:(0,s.withCtx)((()=>[n.isView?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:0,type:"button",class:"role-link remove-vol",onClick:e=>n.remove(l)},t[1]||(t[1]=[(0,s.createElementVNode)("i",{class:"icon icon-x"},null,-1)]),8,o)),(0,s.createElementVNode)("h3",null,(0,s.toDisplayString)(e.t("harvester.virtualMachine.network.title")),1),(0,s.createVNode)(i,{value:r.rows[u],"onUpdate:value":e=>r.rows[u]=e,rows:r.rows,mode:a.mode,"is-single":a.isSingle,"network-option":n.networkOption,onUpdate:n.update},null,8,["value","onUpdate:value","rows","mode","is-single","network-option","onUpdate"])])),_:2},1024)))),128)),n.isView?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:0,type:"button",class:"btn btn-sm bg-primary",onClick:t[0]||(t[0]=(...e)=>n.add&&n.add(...e))},(0,s.toDisplayString)(e.t("harvester.virtualMachine.network.addNetwork")),1))])}var r=a(26962),n=a(35664),i=a(74302),d=a(76978),u=a(92043),c=a(68851),m=a(14220),p=a(2602),v=a(48893),h={components:{InfoBox:r.A,Base:v["default"]},props:{mode:{type:String,default:"create"},value:{type:Array,default:()=>[]},isSingle:{type:Boolean,default:!0}},data(){return{rows:this.addKeyId((0,d.o8)(this.value)),nameIdx:1}},computed:{isView(){return this.mode===m.nW},networkOption(){const e=this.$store.getters["harvester/all"](n.XG).filter((e=>!e.metadata?.annotations?.[p.r.STORAGE_NETWORK])),t=(0,i.Ul)(e.map((e=>{const t=e.isNotReady?`${e.id} (${this.t("generic.notReady")})`:e.id;return{label:t,value:e.id,disabled:e.isNotReady}})),"label");return t}},watch:{value(e){this.rows=e}},methods:{add(e){const t=this.generateName(),a={name:t,networkName:"",model:"virtio",type:"bridge",newCreateId:(0,u.vx)(10),rowKeyId:(0,u.vx)(10)};this.rows.push(a),this.update()},remove(e){(0,c.Gj)(this.rows,e),this.update()},addKeyId(e){return e.map((e=>({...e,rowKeyId:(0,u.vx)(10)})))},generateName(){let e="",t=!0;while(t)e=`nic-${this.nameIdx}`,t=this.rows.find((t=>t.name===e)),this.nameIdx++;return e},update(){this.$emit("update:value",this.rows)}}},b=(a(89982),a(47433));const y=(0,b.A)(h,[["render",l],["__scopeId","data-v-697c87ca"]]);var f=y},59026:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return y}});var s=a(9274);function o(e,t,a,o,l,r){const n=(0,s.resolveComponent)("LabeledSelect"),i=(0,s.resolveComponent)("LabeledInput"),d=(0,s.resolveComponent)("ModalWithCard");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createVNode)(n,{value:l.checkedSsh,"onUpdate:value":[t[0]||(t[0]=e=>l.checkedSsh=e),r.update],label:e.t("harvester.virtualMachine.input.sshKey"),taggable:!a.disabled,mode:a.mode,multiple:!0,searchable:a.searchable,disabled:a.disabled,options:r.sshOption},null,8,["value","label","taggable","mode","searchable","disabled","options","onUpdate:value"]),l.isOpen?((0,s.openBlock)(),(0,s.createBlock)(d,{key:0,name:l.randomStr,width:"40%",errors:l.errors,onFinish:r.save,onClose:r.cancel},{title:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.t("harvester.virtualMachine.sshTitle")),1)])),content:(0,s.withCtx)((()=>[(0,s.createVNode)(i,{value:l.sshName,"onUpdate:value":t[1]||(t[1]=e=>l.sshName=e),label:e.t("harvester.virtualMachine.input.name"),class:"mb-20",required:"",onKeydown:(0,s.withKeys)((0,s.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","label","onKeydown"]),(0,s.createVNode)(i,{value:l.publicKey,"onUpdate:value":t[2]||(t[2]=e=>l.publicKey=e),label:e.t("harvester.virtualMachine.input.sshKeyValue"),"min-height":160,class:"mb-20",type:"multiline",required:""},null,8,["value","label"])])),_:1},8,["name","errors","onFinish","onClose"])):(0,s.createCommentVNode)("",!0)])}var l=a(65359),r=a(92043),n=a(79380),i=a(77988),d=a(40973),u=a(14220),c=a(35664),m=a(32766);const p="_NEW";var v={emits:["update:sshKey"],components:{LabeledInput:n.o,ModalWithCard:d.A,LabeledSelect:i.A},props:{value:{type:Array,default:()=>[]},mode:{type:String,default:"create"},disableCreate:{type:Boolean,default:!1},namespace:{type:String,default:""},createNamespace:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1}},data(){return{checkedSsh:this.value,publicKey:"",sshName:"",randomStr:(0,r.vx)(5).toLowerCase(),errors:[],isAll:!1,checkAll:!1,isOpen:!1}},computed:{...(0,l.L8)({t:"i18n/t"}),schema(){return this.$store.getters["harvester/schemaFor"](m.rk.SSH)},isCreatable(){return!(this.schema&&!this.schema?.collectionMethods.find((e=>["blocked-post","post"].includes(e.toLowerCase()))))},sshOption(){if(this.mode===u.nW||this.mode===u.G5)return[];const e=this.$store.getters["harvester/all"](m.rk.SSH).map((e=>({label:e.id,value:e.id})));return!this.disableCreate&&this.mode!==u.nW&&this.isCreatable&&e.unshift({label:this.t("harvester.virtualMachine.createSSHKey"),value:p}),e}},watch:{publicKey(e){const t=e.trim(),a=t.split(/\s+/);if(3===a.length&&!this.sshName){const e=a[2];this.randomStr=(0,r.vx)(10).toLowerCase(),this.sshName=e.includes("@")?e.split("@")[0]:e}},value(e){this.checkedSsh=e},checkedSsh(e){e.includes(p)&&this.show()}},methods:{show(){this.isOpen=!0},hide(){this.isOpen=!1},async createNamespaceIfNeeded(){if(!this.createNamespace||this.disableCreate)return;const e=await this.$store.dispatch("harvester/findAll",{type:c.CU}),t=e?.find((e=>e.name===this.namespace));if(!t){const e=await this.$store.dispatch("harvester/createNamespace",{name:this.namespace},{root:!0});e.applyDefaults(),await e.save()}},async createSSHKey(){const e=await this.$store.dispatch("harvester/create",{metadata:{name:this.sshName,namespace:this.namespace},spec:{publicKey:this.publicKey},type:m.rk.SSH}),t=await e.save();t.id&&(this.checkedSsh.push(`${this.namespace}/${this.sshName}`),this.update())},async save(e){if(this.errors=[],!this.sshName){const e=this.t("harvester.virtualMachine.input.name"),t=this.t("validation.required",{key:e});this.errors.push(t)}if(!this.publicKey){const e=this.t("harvester.virtualMachine.input.sshKeyValue"),t=this.t("validation.required",{key:e});this.errors.push(t)}if(this.sshName.length>63){const e=this.t("harvester.validation.custom.tooLongName",{max:63});this.errors.push(e)}if(this.errors.length>0)e(!1);else try{await this.createNamespaceIfNeeded(),await this.createSSHKey(),e(!0),this.cancel()}catch(t){this.errors=[t.message],e(!1)}},cancel(){this.hide(),this.resetFields()},resetFields(){this.sshName="",this.publicKey="",this.errors=[]},update(){const e=this.checkedSsh.filter((e=>e!==p));this.$emit("update:sshKey",e)}}},h=a(47433);const b=(0,h.A)(v,[["render",o]]);var y=b},95191:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return q}});var s=a(9274);const o=["onClick"],l=["onClick"],r={key:0,class:"title"},n=["href"],i={key:1},d={class:"bootOrder"},u={key:0,class:"mr-15"},c=["disabled","onClick"],m=["disabled","onClick"],p={class:"text-muted"},v={class:"mt-15"},h={key:2},b=["disabled"],y={class:"buttons"};function f(e,t,a,f,g,k){const N=(0,s.resolveComponent)("Banner"),w=(0,s.resolveComponent)("router-link"),V=(0,s.resolveComponent)("BadgeStateFormatter"),C=(0,s.resolveComponent)("InfoBox"),E=(0,s.resolveComponent)("VueDraggableNext"),U=(0,s.resolveComponent)("ModalWithCard"),S=(0,s.resolveDirective)("clean-tooltip");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[k.isView?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createBlock)(N,{key:0,color:"info","label-key":"harvester.virtualMachine.volume.dragTip"})),(0,s.createVNode)(E,{list:g.rows,disabled:k.isView,"item-key":"id",onEnd:k.update},{default:(0,s.withCtx)((()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(g.rows,((h,b)=>((0,s.openBlock)(),(0,s.createElementBlock)("div",{key:h.id},[(0,s.createVNode)(C,{class:"box"},{default:(0,s.withCtx)((()=>[k.isView?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:0,type:"button",class:"role-link btn btn-sm remove",onClick:e=>k.removeVolume(h)},t[6]||(t[6]=[(0,s.createElementVNode)("i",{class:"icon icon-x"},null,-1)]),8,o)),h.hotpluggable&&k.isView?((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:1,type:"button",class:"role-link btn remove",onClick:e=>k.unplugVolume(h)},(0,s.toDisplayString)(e.t("harvester.virtualMachine.unplug.detachVolume")),9,l)):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("h3",null,[h.to&&k.isVirtualType?((0,s.openBlock)(),(0,s.createElementBlock)("span",r,[(0,s.createVNode)(w,{to:h.to},{default:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.t("harvester.virtualMachine.volume.edit"))+" "+(0,s.toDisplayString)(k.headerFor(h.source)),1)])),_:2},1032,["to"]),h.pvc?((0,s.openBlock)(),(0,s.createBlock)(V,{key:0,class:"ml-10 state",arbitrary:!0,row:h.pvc,value:h.pvc.state},null,8,["row","value"])):(0,s.createCommentVNode)("",!0),k.dev&&h.pvc&&h.pvc.resourceExternalLink?(0,s.withDirectives)(((0,s.openBlock)(),(0,s.createElementBlock)("a",{key:1,class:"ml-5 resource-external",rel:"nofollow noopener noreferrer",target:"_blank",href:h.pvc.resourceExternalLink.url},t[7]||(t[7]=[(0,s.createElementVNode)("i",{class:"icon icon-external-link"},null,-1)]),8,n)),[[S,e.t(h.pvc.resourceExternalLink.tipsKey||"generic.resourceExternalLinkTips")]]):(0,s.createCommentVNode)("",!0)])):((0,s.openBlock)(),(0,s.createElementBlock)("span",i,(0,s.toDisplayString)(k.headerFor(h.source,!!h?.volumeBackups)),1))]),(0,s.createElementVNode)("div",null,[((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)(k.componentFor(h.source)),{value:g.rows[b],rows:g.rows,namespace:a.namespace,"is-create":k.isCreate,"is-edit":k.isEdit,"is-view":k.isView,"is-virtual-type":k.isVirtualType,mode:a.mode,idx:b,"validate-required":a.validateRequired,onUpdate:k.update},null,40,["value","rows","namespace","is-create","is-edit","is-view","is-virtual-type","mode","idx","validate-required","onUpdate"]))]),(0,s.createElementVNode)("div",d,[k.isView?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("div",u,[(0,s.createElementVNode)("button",{disabled:0===b,class:"btn btn-sm role-primary",onClick:(0,s.withModifiers)((e=>k.changeSort(b,!1)),["prevent"])},t[8]||(t[8]=[(0,s.createElementVNode)("i",{class:"icon icon-lg icon-chevron-up"},null,-1)]),8,c),(0,s.createElementVNode)("button",{disabled:b===g.rows.length-1,class:"btn btn-sm role-primary",onClick:(0,s.withModifiers)((e=>k.changeSort(b,!0)),["prevent"])},t[9]||(t[9]=[(0,s.createElementVNode)("i",{class:"icon icon-lg icon-chevron-down"},null,-1)]),8,m)])),(0,s.createElementVNode)("div",p," bootOrder: "+(0,s.toDisplayString)(b+1),1)]),(0,s.createElementVNode)("div",v,[h.volumeStatus&&!k.isCreate?((0,s.openBlock)(),(0,s.createBlock)(N,{key:0,class:"volume-status",color:"warning",label:g.ucFirst(h.volumeStatus)},null,8,["label"])):(0,s.createCommentVNode)("",!0),a.value.volumeBackups&&a.value.volumeBackups.error&&a.value.volumeBackups.error.message?((0,s.openBlock)(),(0,s.createBlock)(N,{key:1,color:"error",label:g.ucFirst(a.value.volumeBackups.error.message)},null,8,["label"])):(0,s.createCommentVNode)("",!0),k.isLonghornV2(h)&&!k.isView?((0,s.openBlock)(),(0,s.createBlock)(N,{key:2,color:"warning",label:e.t("harvester.volume.longhorn.disableResize")},null,8,["label"])):(0,s.createCommentVNode)("",!0)])])),_:2},1024)])))),128))])),_:1},8,["list","disabled","onEnd"]),k.showVolumeTip?((0,s.openBlock)(),(0,s.createBlock)(N,{key:1,color:"warning",label:e.t("harvester.virtualMachine.volume.volumeTip")},null,8,["label"])):(0,s.createCommentVNode)("",!0),k.isView?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("div",h,[(0,s.createElementVNode)("button",{type:"button",class:"btn btn-sm bg-primary mr-15 mb-10",disabled:0===g.rows.length,onClick:t[0]||(t[0]=e=>k.addVolume(g.SOURCE_TYPE.NEW))},(0,s.toDisplayString)(e.t("harvester.virtualMachine.volume.addVolume")),9,b),a.existingVolumeDisabled?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:0,type:"button",class:"btn btn-sm bg-primary mr-15 mb-10",onClick:t[1]||(t[1]=e=>k.addVolume(g.SOURCE_TYPE.ATTACH_VOLUME))},(0,s.toDisplayString)(e.t("harvester.virtualMachine.volume.addExistingVolume")),1)),(0,s.createElementVNode)("button",{type:"button",class:"btn btn-sm bg-primary mr-15 mb-10",onClick:t[2]||(t[2]=e=>k.addVolume(g.SOURCE_TYPE.IMAGE))},(0,s.toDisplayString)(e.t("harvester.virtualMachine.volume.addVmImage")),1),(0,s.createElementVNode)("button",{type:"button",class:"btn btn-sm bg-primary mb-10",onClick:t[3]||(t[3]=e=>k.addVolume(g.SOURCE_TYPE.CONTAINER))},(0,s.toDisplayString)(e.t("harvester.virtualMachine.volume.addContainer")),1)])),g.isOpen?((0,s.openBlock)(),(0,s.createBlock)(U,{key:3,name:"deleteTip",width:400},{title:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.t("harvester.virtualMachine.volume.unmount.title")),1)])),content:(0,s.withCtx)((()=>[(0,s.createElementVNode)("span",null,(0,s.toDisplayString)(e.t("harvester.virtualMachine.volume.unmount.message")),1)])),footer:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",y,[(0,s.createElementVNode)("button",{class:"btn role-secondary mr-20",onClick:t[4]||(t[4]=(0,s.withModifiers)(((...e)=>k.cancel&&k.cancel(...e)),["prevent"]))},(0,s.toDisplayString)(e.t("generic.no")),1),(0,s.createElementVNode)("button",{class:"btn bg-primary mr-20",onClick:t[5]||(t[5]=(0,s.withModifiers)(((...e)=>k.deleteVolume&&k.deleteVolume(...e)),["prevent"]))},(0,s.toDisplayString)(e.t("generic.yes")),1)])])),_:1})):(0,s.createCommentVNode)("",!0)])}var g=a(98285),k=a(26962),N=a(9980),w=a(74562),V=a(77290),C=a(79380),E=a(77988),U=a(40973),S=a(35664),M=a(76978),B=a(92043),x=a(68851),I=a(14220),T=a(91462),A=a(66905),O=a(20652),_=a(32766),L={emits:["update:value"],components:{Banner:N.l,BadgeStateFormatter:w.A,VueDraggableNext:g.H,InfoBox:k.A,LabeledInput:C.o,UnitInput:V.A,LabeledSelect:E.A,ModalWithCard:U.A},props:{vm:{type:Object,default:()=>({})},mode:{type:String,default:I.YQ},value:{type:Array,default:()=>[]},namespace:{type:String,default:null},existingVolumeDisabled:{type:Boolean,default:!1},validateRequired:{type:Boolean,default:!1},customVolumeMode:{type:String,default:"Block"},customAccessMode:{type:String,default:"ReadWriteMany"},resourceType:{type:String,default:""}},async fetch(){await this.$store.dispatch("harvester/findAll",{type:S.YH})},data(){return{ucFirst:B.TF,SOURCE_TYPE:A.xO,rows:(0,M.o8)(this.value),nameIdx:1,vol:null,isOpen:!1}},computed:{dev(){try{return this.$store.getters["prefs/get"](T.bc)}catch{return this.$store.getters["prefs/get"](T.IJ)}},isVirtualType(){return this.resourceType===_.rk.VM},isView(){return this.mode===I.nW},isEdit(){return this.mode===I.G5},isCreate(){return this.mode===I.YQ},showVolumeTip(){const e=this.getImageDisplayName(this.rows[0]?.image);return!(1!==this.rows.length||"cd-rom"!==this.rows[0].type||!/.iso$/i.test(e))},pvcs(){return this.$store.getters["harvester/all"](S.YH)||[]}},watch:{value:{handler(e){const t=(0,M.o8)(e).map((e=>(this.isCreate||e.source===A.xO.CONTAINER||e.newCreateId||(e.to={name:`${O.KR}-c-cluster-resource-namespace-id`,params:{resource:_.rk.VOLUME,namespace:this.namespace,id:e.realName},query:{mode:I.G5}},e.pvc=this.pvcs.find((t=>t.metadata.name===e.realName))),e)));this["rows"]=t},deep:!0,immediate:!0}},methods:{addVolume(e){const t=this.generateName(),a={id:(0,B.vx)(5),name:t,source:e,size:"10Gi",type:"disk",accessMode:this.customAccessMode,volumeMode:this.customVolumeMode,volumeName:"",bus:"virtio",newCreateId:(0,B.vx)(10)};e===A.xO.NEW&&(a.storageClassName=this.defaultStorageClass?.metadata?.name||"longhorn"),this.rows.push(a),this.update()},generateName(){let e="",t=!0;while(t)e=`disk-${this.nameIdx}`,t=this.rows.find((t=>t.name===e)),this.nameIdx++;return e},removeVolume(e){this.vol=e,!e.newCreateId&&this.isEdit&&this.isVirtualType?this.isOpen=!0:((0,x.Gj)(this.rows,e),this.update())},unplugVolume(e){this.vm.unplugVolume(e.name)},componentFor(e){switch(e){case A.xO.NEW:return a(18693)["default"];case A.xO.IMAGE:return a(49083)["default"];case A.xO.ATTACH_VOLUME:return a(6970)["default"];case A.xO.CONTAINER:return a(88656)["default"]}},headerFor(e,t=!1){const a={[A.xO.NEW]:this.$store.getters["i18n/t"]("harvester.virtualMachine.volume.title.volume"),[A.xO.IMAGE]:this.$store.getters["i18n/t"]("harvester.virtualMachine.volume.title.vmImage"),[A.xO.ATTACH_VOLUME]:this.$store.getters["i18n/t"]("harvester.virtualMachine.volume.title.existingVolume"),[A.xO.CONTAINER]:this.$store.getters["i18n/t"]("harvester.virtualMachine.volume.title.container")}[e];return t?`${a} and Backups`:a},update(){this.$emit("update:value",this.rows)},deleteVolume(){(0,x.Gj)(this.rows,this.vol),this.update(),this.cancel()},cancel(){this.isOpen=!1},changeSort(e,t){this.rows.splice(t?e:e-1,1,...this.rows.splice(t?e+1:e,1,this.rows[t?e:e-1])),this.update()},getImageDisplayName(e){return this.$store.getters["harvester/all"](_.rk.IMAGE).find((t=>t.id===e))?.spec?.displayName},isLonghornV2(e){return e?.pvc?.isLonghornV2||e?.pvc?.storageClass?.isLonghornV2}}},$=(a(5121),a(47433));const D=(0,$.A)(L,[["render",f],["__scopeId","data-v-73008bf1"]]);var q=D},88656:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return N}});var s=a(9274);const o={class:"row mb-20"},l={"data-testid":"input-hec-name",class:"col span-6"},r={"data-testid":"input-hec-type",class:"col span-6"},n={class:"row mb-20"},i={"data-testid":"input-hec-container",class:"col span-6"},d={"data-testid":"input-hec-bus",class:"col span-6"},u={class:"row mb-20"},c={key:0,class:"col span-6"};function m(e,t,a,m,p,v){const h=(0,s.resolveComponent)("LabeledInput"),b=(0,s.resolveComponent)("InputOrDisplay"),y=(0,s.resolveComponent)("LabeledSelect"),f=(0,s.resolveComponent)("LabelValue"),g=(0,s.resolveComponent)("Banner");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createElementVNode)("div",o,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(b,{name:e.t("harvester.fields.name"),value:a.value.name,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(h,{value:a.value.name,"onUpdate:value":[t[0]||(t[0]=e=>a.value.name=e),v.update],label:e.t("harvester.fields.name"),required:"",mode:a.mode},null,8,["value","label","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(b,{name:e.t("harvester.fields.type"),value:a.value.type,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(y,{value:a.value.type,"onUpdate:value":[t[1]||(t[1]=e=>a.value.type=e),v.update],label:e.t("harvester.fields.type"),options:p.VOLUME_TYPE,mode:a.mode,required:""},null,8,["value","label","options","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",i,[(0,s.createVNode)(b,{name:e.t("harvester.virtualMachine.volume.dockerImage"),value:a.value.container,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(h,{value:a.value.container,"onUpdate:value":[t[2]||(t[2]=e=>a.value.container=e),v.update],label:e.t("harvester.virtualMachine.volume.dockerImage"),mode:a.mode,required:""},null,8,["value","label","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",d,[(0,s.createVNode)(b,{name:e.t("harvester.virtualMachine.volume.bus"),value:a.value.bus,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(y,{value:a.value.bus,"onUpdate:value":[t[3]||(t[3]=e=>a.value.bus=e),v.update],label:e.t("harvester.virtualMachine.volume.bus"),options:p.InterfaceOption,mode:a.mode},null,8,["value","label","options","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",u,[a.value.volumeBackups?((0,s.openBlock)(),(0,s.createElementBlock)("div",c,[(0,s.createVNode)(b,{name:e.t("harvester.virtualMachine.volume.readyToUse"),value:a.value.volumeBackups.readyToUse,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(f,{name:e.t("harvester.virtualMachine.volume.readyToUse"),value:a.value.volumeBackups.readyToUse},null,8,["name","value"])])),_:1},8,["name","value","mode"])])):(0,s.createCommentVNode)("",!0)]),a.value.volumeBackups&&a.value.volumeBackups.error&&a.value.volumeBackups.error.message?((0,s.openBlock)(),(0,s.createBlock)(g,{key:0,color:"error",class:"mb-20",label:a.value.volumeBackups.error.message},null,8,["label"])):(0,s.createCommentVNode)("",!0)])}var p=a(79380),v=a(77988),h=a(60090),b=a(66905),y=a(9980),f={name:"HarvesterEditContainer",emits:["update"],components:{LabeledInput:p.o,LabeledSelect:v.A,InputOrDisplay:h.A,Banner:y.l},props:{mode:{type:String,default:"create"},value:{type:Object,required:!0}},data(){return{VOLUME_TYPE:b._w,InterfaceOption:b.$z}},watch:{"value.type"(e){"cd-rom"===e&&(this.value["bus"]="sata",this.update())}},methods:{update(){this.$emit("update")}}},g=a(47433);const k=(0,g.A)(f,[["render",m]]);var N=k},6970:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return x}});var s=a(9274);const o={class:"row mb-20"},l={"data-testid":"input-hee-name",class:"col span-6"},r={"data-testid":"input-hee-type",class:"col span-6"},n={class:"row mb-20"},i={"data-testid":"input-hee-volumeName",class:"col span-6"},d={"data-testid":"input-hee-size",class:"col span-6"},u={class:"row mb-20"},c={key:0,"data-testid":"input-hee-image",class:"col span-6"},m={"data-testid":"input-hee-bus",class:"col span-6"},p={key:1,class:"col span-6"};function v(e,t,a,v,h,b){const y=(0,s.resolveComponent)("LabeledInput"),f=(0,s.resolveComponent)("InputOrDisplay"),g=(0,s.resolveComponent)("LabeledSelect"),k=(0,s.resolveComponent)("UnitInput"),N=(0,s.resolveComponent)("LabelValue"),w=(0,s.resolveComponent)("Banner");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createElementVNode)("div",o,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(f,{name:e.t("harvester.fields.name"),value:a.value.name,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(y,{value:a.value.name,"onUpdate:value":[t[0]||(t[0]=e=>a.value.name=e),b.update],label:e.t("harvester.fields.name"),mode:a.mode,required:""},null,8,["value","label","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(f,{name:e.t("harvester.fields.type"),value:a.value.type,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(g,{value:a.value.type,"onUpdate:value":[t[1]||(t[1]=e=>a.value.type=e),b.update],label:e.t("harvester.fields.type"),mode:a.mode,options:h.VOLUME_TYPE,required:""},null,8,["value","label","mode","options","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",i,[(0,s.createVNode)(f,{name:e.t("harvester.fields.volume"),value:a.value.volumeName,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(g,{value:a.value.volumeName,"onUpdate:value":[t[2]||(t[2]=e=>a.value.volumeName=e),b.update],disabled:b.isDisabled,label:e.t("harvester.fields.volume"),mode:a.mode,options:b.volumeOption,required:""},null,8,["value","disabled","label","mode","options","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",d,[(0,s.createVNode)(f,{name:e.t("harvester.fields.size"),value:a.value.size,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(k,{value:a.value.size,"onUpdate:value":[t[3]||(t[3]=e=>a.value.size=e),b.update],"output-modifier":!0,increment:1024,"input-exponent":3,label:e.t("harvester.fields.size"),mode:a.mode,disabled:!0},null,8,["value","label","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",u,[b.image?((0,s.openBlock)(),(0,s.createElementBlock)("div",c,[(0,s.createVNode)(f,{name:e.t("harvester.fields.image"),value:b.image,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(y,{value:b.image,"onUpdate:value":[t[4]||(t[4]=e=>b.image=e),b.update],label:e.t("harvester.fields.image"),mode:a.mode,disabled:!0},null,8,["value","label","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])])):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("div",m,[(0,s.createVNode)(f,{name:e.t("harvester.virtualMachine.volume.bus"),value:a.value.bus,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(g,{value:a.value.bus,"onUpdate:value":[t[5]||(t[5]=e=>a.value.bus=e),b.update],label:e.t("harvester.virtualMachine.volume.bus"),mode:a.mode,options:h.InterfaceOption,disabled:!0,required:""},null,8,["value","label","mode","options","onUpdate:value"])])),_:1},8,["name","value","mode"])]),a.value.volumeBackups?((0,s.openBlock)(),(0,s.createElementBlock)("div",p,[(0,s.createVNode)(f,{name:e.t("harvester.virtualMachine.volume.readyToUse"),value:a.value.volumeBackups.readyToUse,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(N,{name:e.t("harvester.virtualMachine.volume.readyToUse"),value:a.value.volumeBackups.readyToUse},null,8,["name","value"])])),_:1},8,["name","value","mode"])])):(0,s.createCommentVNode)("",!0)]),a.value.volumeBackups&&a.value.volumeBackups.error&&a.value.volumeBackups.error.message?((0,s.openBlock)(),(0,s.createBlock)(w,{key:0,color:"error",class:"mb-20",label:a.value.volumeBackups.error.message},null,8,["label"])):(0,s.createCommentVNode)("",!0)])}var h=a(77290),b=a(79380),y=a(39412),f=a(77988),g=a(60090),k=a(9980),N=a(74302),w=a(35664),V=a(14220),C=a(2602),E=a(32766),U=a(66905),S={name:"HarvesterEditExisting",emits:["update"],components:{UnitInput:h.A,LabeledInput:b.o,LabeledSelect:f.A,InputOrDisplay:g.A,LabelValue:y.A,Banner:k.l},props:{mode:{type:String,default:V.YQ},value:{type:Object,required:!0},isEdit:{type:Boolean,default:!1},namespace:{type:String,default:null},idx:{type:Number,default:0},rows:{type:Array,required:!0}},data(){return this.value.realName&&(this.value.volumeName=this.value.realName),{VOLUME_TYPE:U._w,InterfaceOption:U.$z,loading:!1}},computed:{isDisabled(){return!this.value.newCreateId&&this.isEdit},allPVCs(){const e=this.$store.getters["harvester/all"](w.YH);return e.filter((e=>!this.namespace||this.namespace===e.metadata.namespace))||[]},image(){const e=this.$store.getters["harvester/all"](E.rk.IMAGE).find((e=>e.id===this.pvcResource?.metadata?.annotations?.[C.r.IMAGE_ID]));if(e)return`${e.metadata.namespace}/${e.spec.displayName}`},pvcResource(){return this.allPVCs.find((e=>e.metadata.name===this.value.volumeName))},volumeOption(){return(0,N.Ul)(this.allPVCs.filter((e=>{let t=!0,a=!1;return this.rows.forEach((a=>{a.volumeName===e.metadata.name&&(t=!1)})),!(0===this.idx&&!e.metadata?.annotations?.[C.r.IMAGE_ID])&&("true"!==e.metadata?.annotations?.[C.r.GOLDEN_IMAGE]&&(e.attachVM&&t&&e.attachVM?.id===this.vm?.id&&this.isEdit?a=!1:e.attachVM&&(a=!0),t&&!a&&e.isAvailable))})).map((e=>({label:e.metadata.name,value:e.metadata.name}))),"label")}},watch:{"value.volumeName"(e){const t=this.allPVCs.find((t=>t.metadata.name===e));t&&(this.value.accessModes=t.spec.accessModes[0],this.value.size=t.spec.resources.requests.storage,this.value.storageClassName=t.spec.storageClassName,this.value.volumeMode=t.spec.volumeMode)},"value.type"(e){"cd-rom"===e&&(this.value["bus"]="sata",this.update())},pvcResource:{handler(e){!this.value.volumeName&&e?.metadata?.name&&(this.value.volumeName=e.metadata.name)},deep:!0,immediate:!0}},methods:{update(){this.$emit("update")}}},M=a(47433);const B=(0,M.A)(S,[["render",v]]);var x=B},49083:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return T}});var s=a(9274);const o={class:"row mb-20"},l={"data-testid":"input-hevi-name",class:"col span-6"},r={"data-testid":"input-hevi-type",class:"col span-6"},n={class:"row mb-20"},i={"data-testid":"input-hevi-image",class:"col span-6"},d={"data-testid":"input-hevi-size",class:"col span-6"},u={class:"row mb-20"},c={"data-testid":"input-hevi-bus",class:"col span-6"},m={key:0,class:"col span-3"},p={class:"row mb-20"},v={key:0,class:"col span-3"};function h(e,t,a,h,b,y){const f=(0,s.resolveComponent)("LabeledInput"),g=(0,s.resolveComponent)("InputOrDisplay"),k=(0,s.resolveComponent)("LabeledSelect"),N=(0,s.resolveComponent)("UnitInput"),w=(0,s.resolveComponent)("LabelValue"),V=(0,s.resolveComponent)("Banner");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createElementVNode)("div",o,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(g,{name:e.t("harvester.fields.name"),value:a.value.name,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(f,{value:a.value.name,"onUpdate:value":[t[0]||(t[0]=e=>a.value.name=e),y.update],label:e.t("harvester.fields.name"),required:"",mode:a.mode},null,8,["value","label","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(g,{name:e.t("harvester.fields.type"),value:a.value.type,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(k,{value:a.value.type,"onUpdate:value":[t[1]||(t[1]=e=>a.value.type=e),y.update],label:e.t("harvester.fields.type"),options:b.VOLUME_TYPE,mode:a.mode},null,8,["value","label","options","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",i,[(0,s.createVNode)(g,{name:e.t("harvester.fields.image"),value:y.imageName,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(k,{value:a.value.image,"onUpdate:value":[t[2]||(t[2]=e=>a.value.image=e),y.onImageChange],disabled:0===a.idx&&!a.isCreate&&!a.value.newCreateId&&a.isVirtualType,label:e.t("harvester.fields.image"),options:y.imagesOption,mode:a.mode,searchable:!0,required:a.validateRequired},null,8,["value","disabled","label","options","mode","required","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",d,[(0,s.createVNode)(g,{name:e.t("harvester.fields.size"),value:a.value.size,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(N,{value:a.value.size,"onUpdate:value":[t[3]||(t[3]=e=>a.value.size=e),y.update],"output-modifier":!0,increment:1024,"input-exponent":3,label:e.t("harvester.fields.size"),mode:a.mode,required:a.validateRequired,disable:y.isLonghornV2,suffix:"GiB"},null,8,["value","label","mode","required","disable","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",u,[(0,s.createElementVNode)("div",c,[(0,s.createVNode)(g,{name:e.t("harvester.virtualMachine.volume.bus"),value:a.value.bus,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(k,{value:a.value.bus,"onUpdate:value":[t[4]||(t[4]=e=>a.value.bus=e),y.update],label:e.t("harvester.virtualMachine.volume.bus"),mode:a.mode,options:b.InterfaceOption},null,8,["value","label","mode","options","onUpdate:value"])])),_:1},8,["name","value","mode"])]),a.value.volumeEncryptionFeatureEnabled&&y.isView?((0,s.openBlock)(),(0,s.createElementBlock)("div",m,[(0,s.createVNode)(w,{name:e.t("harvester.virtualMachine.volume.encryption"),value:y.encryptionValue},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0)]),(0,s.createElementVNode)("div",p,[a.value.volumeBackups&&y.isView?((0,s.openBlock)(),(0,s.createElementBlock)("div",v,[(0,s.createVNode)(w,{name:e.t("harvester.virtualMachine.volume.readyToUse"),value:y.readyToUse},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0)]),a.value.volumeBackups&&a.value.volumeBackups.error&&a.value.volumeBackups.error.message?((0,s.openBlock)(),(0,s.createBlock)(V,{key:0,color:"error",class:"mb-20",label:a.value.volumeBackups.error.message},null,8,["label"])):(0,s.createCommentVNode)("",!0),!y.isView&&y.showDiskTooSmallError?((0,s.openBlock)(),(0,s.createBlock)(V,{key:1,color:"error",label:e.t("harvester.virtualMachine.volume.vmImageVolumeTip",{diskSize:y.diskSize,imageVirtualSize:y.imageVirtualSize})},null,8,["label"])):(0,s.createCommentVNode)("",!0)])}var b=a(68851),y=a(77290),f=a(79380),g=a(77988),k=a(60090),N=a(9980),w=a(35664),V=a(95799),C=a(32766),E=a(66905),U=a(14220),S=a(39412),M=a(92043),B={name:"HarvesterEditVMImage",emits:["update"],components:{UnitInput:y.A,LabeledInput:f.o,LabeledSelect:g.A,InputOrDisplay:k.A,LabelValue:S.A,Banner:N.l},props:{value:{type:Object,default:()=>({})},namespace:{type:String,default:null},mode:{type:String,default:"create"},idx:{type:Number,required:!0},isCreate:{type:Boolean,default:!0},isEdit:{type:Boolean,default:!1},validateRequired:{type:Boolean,required:!0},isVirtualType:{type:Boolean,default:!0}},data(){return{VOLUME_TYPE:E._w,InterfaceOption:E.$z,loading:!1,images:[]}},fetch(){this.images=this.$store.getters["harvester/all"](C.rk.IMAGE)},computed:{encryptionValue(){return(0,M.TF)(String(this.value.isEncrypted))},isView(){return this.mode===U.nW},imagesOption(){return this.images.filter((e=>e.isReady)).sort(((e,t)=>e.creationTimestamp>t.creationTimestamp?-1:1)).map((e=>({label:this.imageOptionLabel(e),value:e.id})))},imageName(){const e=this.imagesOption.find((e=>e.value===this.value.image));return e?e.label:"-"},readyToUse(){const e=String(this.value.volumeBackups?.readyToUse||!1);return(0,M.TF)(e)},pvcsResource(){const e=this.$store.getters["harvester/all"](w.YH)||[];return e.find((e=>!this.namespace||e.id===`${this.namespace}/${this.value.volumeName}`))},thirdPartyStorageEnabled(){return this.$store.getters["harvester-common/getFeatureEnabled"]("thirdPartyStorage")},isLonghornV2(){return this.value.pvc?.isLonghornV2||this.value.pvc?.storageClass?.isLonghornV2},selectedImage(){return this.$store.getters["harvester/all"](C.rk.IMAGE)?.find((e=>this.value.image===e.id))},imageVirtualSize(){return this.selectedImage?.virtualSize},diskSize(){const e=this.value?.size||"0";return`${e.replace("Gi","")} GB`},imageVirtualSizeInByte(){return Math.max(this.selectedImage?.status?.size,this.selectedImage?.status?.virtualSize)},diskSizeInByte(){return(0,V.ao)(this.value?.size||"0")},showDiskTooSmallError(){return!!this.thirdPartyStorageEnabled&&this.imageVirtualSizeInByte>this.diskSizeInByte}},watch:{"value.type"(e){"cd-rom"===e&&(this.value["bus"]="sata",this.update())},"value.image"(e){this.checkImageExists(e)},imagesOption(){this.checkImageExists(this.value.image)},pvcsResource:{handler(e){if(e?.spec?.resources?.requests?.storage&&this.isVirtualType){const t=(0,V.ao)(e.spec.resources.requests.storage),a=(0,V.Mo)(t,{increment:1024,addSuffix:!1,maxExponent:3,minExponent:3});this.value.size=`${a}Gi`}},deep:!0,immediate:!0}},methods:{imageOptionLabel(e){let t=`${e.metadata.namespace}/${e.spec.displayName}`;return this.thirdPartyStorageEnabled&&(t+=` (${e.imageStorageClass} / ${e.virtualSize})`),t},update(){this.value.hasDiskError=this.showDiskTooSmallError,this.$emit("update")},onImageChange(){const e=this.$store.getters["harvester/all"](C.rk.IMAGE)?.find((e=>this.value.image===e.id)),t=/iso$/i.test(e?.imageSuffix),a=Math.max(e?.status?.size,e?.status?.virtualSize);if(t?(this.value["type"]="cd-rom",this.value["bus"]="sata"):(this.value["type"]="disk",this.value["bus"]="virtio"),a){let e=Math.ceil(a/1024/1024/1024);t||(e=Math.max(e,10)),this.value["size"]=`${e}Gi`}this.update()},onOpen(){this.images=this.$store.getters["harvester/all"](C.rk.IMAGE)},checkImageExists(e){e&&this.imagesOption.length>0&&!(0,b.jq)(this.imagesOption,"value",e)&&(this.$store.dispatch("growl/error",{title:this.$store.getters["i18n/t"]("harvester.vmTemplate.tips.notExistImage.title",{name:e}),message:this.$store.getters["i18n/t"]("harvester.vmTemplate.tips.notExistImage.message")},{root:!0}),this.value["image"]="")}}},x=a(47433);const I=(0,x.A)(B,[["render",h]]);var T=I},18693:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return T}});var s=a(9274);const o={class:"row mb-20"},l={class:"col span-6","data-testid":"input-hev-name"},r={class:"col span-6","data-testid":"input-hev-type"},n={class:"row mb-20"},i={"data-testid":"input-hav-storage",class:"col span-6"},d={class:"col span-6","data-testid":"input-hev-size"},u={class:"row mb-20"},c={"data-testid":"input-hev-bus",class:"col span-6"},m={key:0,class:"col span-6"},p={class:"row mb-20"},v={key:0,class:"col span-3"};function h(e,t,a,h,b,y){const f=(0,s.resolveComponent)("Loading"),g=(0,s.resolveComponent)("LabeledInput"),k=(0,s.resolveComponent)("InputOrDisplay"),N=(0,s.resolveComponent)("LabeledSelect"),w=(0,s.resolveComponent)("UnitInput"),V=(0,s.resolveComponent)("LabelValue");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createVNode)(f,{mode:"relative",loading:b.loading},null,8,["loading"]),(0,s.createElementVNode)("div",o,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(k,{name:e.t("harvester.fields.name"),value:a.value.name,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(g,{value:a.value.name,"onUpdate:value":[t[0]||(t[0]=e=>a.value.name=e),y.update],label:e.t("harvester.fields.name"),mode:a.mode,required:""},null,8,["value","label","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",r,[(0,s.createVNode)(k,{name:e.t("harvester.fields.type"),value:a.value.type,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(N,{value:a.value.type,"onUpdate:value":[t[1]||(t[1]=e=>a.value.type=e),y.update],label:e.t("harvester.fields.type"),options:b.VOLUME_TYPE,required:"",mode:a.mode},null,8,["value","label","options","mode","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",i,[(0,s.createVNode)(k,{name:e.t("harvester.storage.storageClass.label"),value:a.value.storageClassName,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(N,{value:a.value.storageClassName,"onUpdate:value":[t[2]||(t[2]=e=>a.value.storageClassName=e),y.update],options:y.storageClassOptions,label:e.t("harvester.storage.storageClass.label"),mode:a.mode,disabled:y.isDisabled,required:a.validateRequired},null,8,["value","options","label","mode","disabled","required","onUpdate:value"])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",d,[(0,s.createVNode)(k,{name:e.t("harvester.fields.size"),value:a.value.size,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(w,{value:a.value.size,"onUpdate:value":[t[3]||(t[3]=e=>a.value.size=e),y.update],"output-modifier":!0,increment:1024,"input-exponent":3,mode:a.mode,required:a.validateRequired,label:e.t("harvester.fields.size"),disabled:y.isLonghornV2},null,8,["value","mode","required","label","disabled","onUpdate:value"])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",u,[(0,s.createElementVNode)("div",c,[(0,s.createVNode)(k,{name:e.t("harvester.virtualMachine.volume.bus"),value:a.value.bus,mode:a.mode},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(N,{value:a.value.bus,"onUpdate:value":[t[4]||(t[4]=e=>a.value.bus=e),y.update],label:e.t("harvester.virtualMachine.volume.bus"),mode:a.mode,options:b.InterfaceOption,required:""},null,8,["value","label","mode","options","onUpdate:value"])])),_:1},8,["name","value","mode"])]),a.value.volumeEncryptionFeatureEnabled&&y.isView?((0,s.openBlock)(),(0,s.createElementBlock)("div",m,[(0,s.createVNode)(V,{name:e.t("harvester.virtualMachine.volume.encryption"),value:y.encryptionValue},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0)]),(0,s.createElementVNode)("div",p,[a.value.volumeBackups&&y.isView?((0,s.openBlock)(),(0,s.createElementBlock)("div",v,[(0,s.createVNode)(V,{name:e.t("harvester.virtualMachine.volume.readyToUse"),value:y.readyToUse},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0)])])}var b=a(84409),y=a(77290),f=a(60090),g=a(79380),k=a(77988),N=a(35664),w=a(95799),V=a(66905),C=a(14220),E=a(39412),U=a(92043),S=a(82877),M=a(15908),B={name:"HarvesterEditVolume",emits:["update"],components:{InputOrDisplay:f.A,Loading:b.A,LabeledInput:g.o,LabeledSelect:k.A,UnitInput:y.A,LabelValue:E.A},props:{mode:{type:String,default:"create"},isEdit:{type:Boolean,default:!1},namespace:{type:String,default:null},value:{type:Object,default:()=>({})},validateRequired:{type:Boolean,required:!0},isVirtualType:{type:Boolean,default:!0}},data(){return{VOLUME_TYPE:V._w,InterfaceOption:V.$z,loading:!1}},computed:{longhornV2LVMSupport(){return this.$store.getters["harvester-common/getFeatureEnabled"]("longhornV2LVMSupport")},encryptionValue(){return(0,U.TF)(String(this.value.isEncrypted))},readyToUse(){const e=String(this.value.volumeBackups?.readyToUse||!1);return(0,U.TF)(e)},isView(){return this.mode===C.nW},pvcsResource(){const e=this.$store.getters["harvester/all"](N.YH)||[];return e.find((e=>e.id===`${this.namespace}/${this.value.volumeName}`))},isDisabled(){return!this.value.newCreateId&&this.isEdit&&this.isVirtualType},storageClasses(){return this.$store.getters["harvester/all"](N.fJ)||[]},storageClassOptions(){return this.storageClasses.filter((e=>!e.parameters?.backingImage)).map((e=>{const t=e.isDefault?`${e.name} (${this.t("generic.default")})`:e.name;return{label:t,value:e.name}}))||[]},isLonghornV2(){return this.value.pvc?.isLonghornV2||this.value.pvc?.storageClass?.isLonghornV2}},watch:{"value.storageClassName":{immediate:!0,handler(e){this.value.accessMode=this.getAccessMode(e)}},"value.type"(e){"cd-rom"===e&&(this.value["bus"]="sata",this.update())},pvcsResource:{handler(e){if(e?.spec?.resources?.requests?.storage){const t=(0,w.ao)(e.spec.resources.requests.storage),a=(0,w.Mo)(t,{increment:1024,addSuffix:!1,maxExponent:3,minExponent:3});this.value.size=`${a}Gi`}},deep:!0,immediate:!0}},methods:{getAccessMode(e){if(!this.longhornV2LVMSupport)return"ReadWriteMany";const t=this.storageClasses.find((t=>t.name===e));let a=this.value.pvc?.isLvm||this.value.pvc?.isLonghornV2;return t&&(a=t.provisioner===S.LVM_DRIVER||t.parameters?.dataEngine===M.DATA_ENGINE_V2),a?"ReadWriteOnce":"ReadWriteMany"},update(){this.$emit("update")}}},x=a(47433);const I=(0,x.A)(B,[["render",h]]);var T=I},19044:function(e,t,a){"use strict";a.r(t);var s=a(36758),o=a.n(s),l=a(40935),r=a.n(l),n=r()(o());n.push([e.id,".vm__credentials-users .hasUsers.labeled-select.edit.taggable .labeled-tooltip .icon.status-icon{top:30px}",""]),t["default"]=n},67647:function(e,t,a){"use strict";a.r(t);var s=a(36758),o=a.n(s),l=a(40935),r=a.n(l),n=r()(o());n.push([e.id,".volume-source[data-v-61977bc4]{position:relative}.remove-vol[data-v-61977bc4]{position:absolute;top:10px;right:10px;padding:0}",""]),t["default"]=n},34213:function(e,t,a){"use strict";a.r(t);var s=a(36758),o=a.n(s),l=a(40935),r=a.n(l),n=r()(o());n.push([e.id,".action[data-v-7d19b7bd]{display:flex;flex-direction:row-reverse}",""]),t["default"]=n},67381:function(e,t,a){"use strict";a.r(t);var s=a(36758),o=a.n(s),l=a(40935),r=a.n(l),n=r()(o());n.push([e.id,"[data-v-1613a356] .resource-yaml{flex:1;display:flex;flex-direction:column}[data-v-1613a356] .resource-yaml .yaml-editor{flex:1;min-height:200px}[data-v-1613a356] .resource-yaml .yaml-editor .code-mirror .CodeMirror{min-height:200px}",""]),t["default"]=n},47905:function(e,t,a){"use strict";a.r(t);var s=a(36758),o=a.n(s),l=a(40935),r=a.n(l),n=r()(o());n.push([e.id,".yaml[data-v-2d3a6d84]{height:350px;overflow:auto}[data-v-2d3a6d84] .resource-yaml{flex:1;display:flex;flex-direction:column}[data-v-2d3a6d84] .resource-yaml .yaml-editor{flex:1;min-height:350px}[data-v-2d3a6d84] .resource-yaml .yaml-editor .code-mirror .CodeMirror{min-height:350px}",""]),t["default"]=n},87582:function(e,t,a){"use strict";a.r(t);var s=a(36758),o=a.n(s),l=a(40935),r=a.n(l),n=r()(o());n.push([e.id,".infoBox[data-v-697c87ca]{position:relative}.remove-vol[data-v-697c87ca]{position:absolute;top:10px;right:16px;padding:0;max-height:28px;min-height:28px}",""]),t["default"]=n},75233:function(e,t,a){"use strict";a.r(t);var s=a(36758),o=a.n(s),l=a(40935),r=a.n(l),n=r()(o());n.push([e.id,".box[data-v-73008bf1]{position:relative}.title[data-v-73008bf1]{display:flex}.title .state[data-v-73008bf1]{font-size:16px}.remove[data-v-73008bf1]{position:absolute;top:10px;right:10px;padding:0}.bootOrder[data-v-73008bf1]{display:flex;align-items:center}.buttons[data-v-73008bf1]{width:100%;display:flex;justify-content:flex-end}.volume-status[data-v-73008bf1]:first-letter{text-transform:uppercase}.resource-external[data-v-73008bf1]{display:flex;justify-content:center;align-items:center}.banner[data-v-73008bf1]{margin:10px 0}",""]),t["default"]=n},154:function(e,t,a){"use strict";var s=a(68851);t.A={computed:{conditions(){return this.value?.conditions||[]},readyCondition(){return(0,s.cy)(this.conditions)?(0,s.jq)(this.conditions,"type","Ready")||{}:this.conditions.Ready},schedulableCondition(){return(0,s.cy)(this.conditions)?(0,s.jq)(this.conditions,"type","Schedulable")||{}:this.conditions.Schedulable}}}},84388:function(e,t,a){var s=a(19044);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=a(74825).A;o("32886c2c",s,!0,{sourceMap:!1,shadowMode:!1})},38239:function(e,t,a){var s=a(67647);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=a(74825).A;o("9e59092a",s,!0,{sourceMap:!1,shadowMode:!1})},27461:function(e,t,a){var s=a(34213);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=a(74825).A;o("05d24086",s,!0,{sourceMap:!1,shadowMode:!1})},71157:function(e,t,a){var s=a(67381);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=a(74825).A;o("df2188a2",s,!0,{sourceMap:!1,shadowMode:!1})},9729:function(e,t,a){var s=a(47905);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=a(74825).A;o("5e97709f",s,!0,{sourceMap:!1,shadowMode:!1})},89982:function(e,t,a){var s=a(87582);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=a(74825).A;o("6b7d4a78",s,!0,{sourceMap:!1,shadowMode:!1})},5121:function(e,t,a){var s=a(75233);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var o=a(74825).A;o("de67123e",s,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.850.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.850.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.850.js.map new file mode 100644 index 00000000..7a2d9696 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.850.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.850.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/HarvesterKsmtuned.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/HarvesterKsmtuned.vue?c10f","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/AccessCredentialsUsers.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/AccessCredentialsUsers.vue?8a0b","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/index.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/index.vue?2264","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/basicAuth.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/basicAuth.vue?5e1c","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/sshkey.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/sshkey.vue?a2e2","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/DataTemplate.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/DataTemplate.vue?bad2","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/index.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/index.vue?66f1","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCpuMemory.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCpuMemory.vue?917b","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/base.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/base.vue?59b2","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/index.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/index.vue?76e0","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineSSHKey.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineSSHKey.vue?b372","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/index.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/index.vue?e7b1","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/container.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/container.vue?1e8a","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/existing.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/existing.vue?a6c8","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/vmImage.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/vmImage.vue?2baf","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/volume.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/volume.vue?1cdc","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/AccessCredentialsUsers.vue?9a64","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/index.vue?afec","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/basicAuth.vue?2273","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/DataTemplate.vue?ee03","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/index.vue?55f6","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/index.vue?138b","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/index.vue?daaa","webpack://harvester-1.5.0-dev/./mixins/harvester-disk.js","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/AccessCredentialsUsers.vue?ee1e","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/index.vue?5ba3","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/basicAuth.vue?80d9","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/DataTemplate.vue?609c","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/index.vue?85b4","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/index.vue?93fb","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVolume/index.vue?f533"],"sourcesContent":["<script>\nimport LabeledSelect from '@shell/components/form/LabeledSelect.vue';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { HCI } from '../../types';\nimport { DOC } from '../../config/doc-links';\nimport { docLink } from '../../utils/feature-flags';\n\nexport const ksmtunedMode = [{\n value: 'standard',\n label: 'Standard'\n}, {\n value: 'high',\n label: 'High-Perfomanace'\n}, {\n value: 'customized',\n label: 'Customized'\n}];\n\nexport const ksmtunedRunOption = [{\n label: 'Run',\n value: 'run'\n}, {\n label: 'Stop',\n value: 'stop'\n}, {\n label: 'Prune',\n value: 'prune'\n}];\n\nexport default {\n name: 'HarvesterKsmtuned',\n components: {\n Checkbox, LabeledInput, LabeledSelect, RadioGroup, UnitInput\n },\n\n props: {\n mode: {\n type: String,\n required: true\n },\n\n node: {\n type: Object,\n required: true,\n },\n\n registerBeforeHook: {\n type: Function,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = await this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.KSTUNED });\n\n this.ksmtuned = hash.find((node) => {\n return node.id === this.node.id;\n });\n\n this.enableMergeAcrossNodes = !!this.ksmtuned.spec?.mergeAcrossNodes;\n this.spec = this.ksmtuned.spec;\n },\n\n data() {\n return {\n ksmtuned: {},\n spec: {},\n thresCoef: 30,\n ksmtunedMode,\n ksmtunedRunOption,\n enableMergeAcrossNodes: true\n };\n },\n\n created() {\n this.registerBeforeHook(this.saveKsmtuned, 'saveKsmtuned');\n },\n\n computed: {\n isCustomizedMode() {\n return this.spec.mode === 'customized';\n },\n\n showKsmt() {\n return this.spec.run === 'run';\n },\n\n ksmtunedLink() {\n const version = this.$store.getters['harvester-common/getServerVersion']();\n\n return docLink(DOC.KSMTUNED_MODE, version);\n }\n },\n\n methods: {\n async saveKsmtuned() {\n this.spec.mergeAcrossNodes = this.enableMergeAcrossNodes ? 1 : 0;\n this.ksmtuned['spec'] = this.spec;\n\n await this.ksmtuned.save().catch((reason) => {\n if (reason?.type === 'error') {\n this.$store.dispatch('growl/error', {\n title: this.t('harvester.notification.title.error'),\n message: reason?.message\n }, { root: true });\n\n return Promise.reject(new Error('saveKsmtuned error'));\n }\n });\n },\n }\n};\n</script>\n\n<template>\n <div>\n <LabeledSelect\n v-model:value=\"spec.run\"\n :label=\"t('harvester.host.ksmtuned.run')\"\n :options=\"ksmtunedRunOption\"\n class=\"mb-20\"\n :mode=\"mode\"\n required\n />\n\n <template v-if=\"showKsmt\">\n <UnitInput\n v-model:value.number=\"spec.thresCoef\"\n :label=\"t('harvester.host.ksmtuned.thresCoef')\"\n suffix=\"%\"\n :delay=\"0\"\n required\n :mode=\"mode\"\n class=\"mb-20\"\n />\n\n <Checkbox\n v-model:value=\"enableMergeAcrossNodes\"\n :mode=\"mode\"\n class=\"check mb-20\"\n type=\"checkbox\"\n :label=\"t('harvester.host.ksmtuned.enableMergeNodes')\"\n />\n\n <h3>\n <t\n k=\"harvester.host.ksmtuned.modeLink\"\n :raw=\"true\"\n :url=\"ksmtunedLink\"\n />\n </h3>\n <RadioGroup\n v-model:value=\"spec.mode\"\n class=\"mb-20\"\n :name=\"t('harvester.host.ksmtuned.mode')\"\n :options=\"ksmtunedMode\"\n />\n\n <template v-if=\"isCustomizedMode\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"spec.ksmtunedParameters.boost\"\n required\n type=\"number\"\n :label=\"t('harvester.host.ksmtuned.parameters.boost')\"\n :tooltip=\"t('harvester.host.ksmtuned.parameters.description.boost')\"\n class=\"mb-20\"\n :mode=\"mode\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"spec.ksmtunedParameters.decay\"\n required\n type=\"number\"\n :label=\"t('harvester.host.ksmtuned.parameters.decay')\"\n :tooltip=\"t('harvester.host.ksmtuned.parameters.description.decay')\"\n class=\"mb-20\"\n :mode=\"mode\"\n />\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"spec.ksmtunedParameters.minPages\"\n required\n type=\"number\"\n :label=\"t('harvester.host.ksmtuned.parameters.minPages')\"\n :tooltip=\"t('harvester.host.ksmtuned.parameters.description.minPages')\"\n class=\"mb-20\"\n :mode=\"mode\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"spec.ksmtunedParameters.maxPages\"\n required\n type=\"number\"\n :label=\"t('harvester.host.ksmtuned.parameters.maxPages')\"\n :tooltip=\"t('harvester.host.ksmtuned.parameters.description.maxPages')\"\n class=\"mb-20\"\n :mode=\"mode\"\n />\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"spec.ksmtunedParameters.sleepMsec\"\n required\n type=\"number\"\n :label=\"t('harvester.host.ksmtuned.parameters.sleepMsec')\"\n :tooltip=\"t('harvester.host.ksmtuned.parameters.description.sleepMsec')\"\n class=\"mb-20\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </template>\n </template>\n </div>\n</template>\n","import { render } from \"./HarvesterKsmtuned.vue?vue&type=template&id=f483a644\"\nimport script from \"./HarvesterKsmtuned.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterKsmtuned.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { clone } from '@shell/utils/object';\nimport { randomStr } from '@shell/utils/string';\n\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport ModalWithCard from '@shell/components/ModalWithCard';\n\nconst _NEW = '_NEW';\n\nexport default {\n emits: ['update:user', 'update:newUser'],\n\n components: {\n LabeledInput,\n LabeledSelect,\n ModalWithCard,\n },\n\n props: {\n value: {\n type: [Array, String],\n default: () => {\n return [];\n }\n },\n\n resourceType: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n userOptions: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n multiple: {\n type: Boolean,\n default: false\n },\n\n mode: {\n type: String,\n default: 'create',\n },\n\n disabled: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n selectedUser: this.value,\n newUsername: '',\n randomStr: randomStr(5).toLowerCase(),\n errors: [],\n isOpen: false,\n };\n },\n\n computed: { ...mapGetters({ t: 'i18n/t' }) },\n\n watch: {\n value(neu) {\n this.selectedUser = neu;\n },\n\n selectedUser(val, old) {\n if ( val.includes(_NEW)) {\n this['selectedUser'] = old;\n this.update();\n this.show();\n }\n }\n },\n\n methods: {\n update() {\n this.$emit('update:user', clone(this.selectedUser));\n },\n\n addUser(buttonCb) {\n const reg = /^[-._0-9a-zA-Z]+$/;\n\n this.errors = [];\n\n if (!reg.test(this.newUsername)) {\n const message = this.t('harvester.virtualMachine.accessCredentials.invalidUser');\n\n this.errors.push(message);\n buttonCb(false);\n\n return;\n }\n\n if (this.userOptions.includes(this.newUsername)) {\n const message = this.t('harvester.virtualMachine.accessCredentials.duplicatedUser');\n\n this.errors.push(message);\n buttonCb(false);\n\n return;\n }\n\n if (this.multiple) {\n this.selectedUser.push(this.newUsername);\n } else {\n this.selectedUser = this.newUsername;\n }\n\n this.$emit('update:newUser', this.newUsername);\n this.update();\n\n buttonCb(true);\n this.cancel();\n },\n\n show() {\n this.isOpen = true;\n },\n\n hide() {\n this.isOpen = false;\n },\n\n cancel() {\n this.hide();\n this.newUsername = '';\n },\n\n }\n};\n</script>\n\n<template>\n <div class=\"vm__credentials-users\">\n <LabeledSelect\n v-model:value=\"selectedUser\"\n :options=\"userOptions\"\n :label=\"t('harvester.virtualMachine.accessCredentials.injectSSH.users')\"\n :taggable=\"multiple\"\n :mode=\"mode\"\n :multiple=\"multiple\"\n :searchable=\"false\"\n :tooltip=\"t('harvester.virtualMachine.accessCredentials.userTips')\"\n :class=\"{'hasUsers': selectedUser.length > 0}\"\n @input=\"update\"\n />\n\n <ModalWithCard\n v-if=\"isOpen\"\n :name=\"randomStr\"\n width=\"40%\"\n :errors=\"errors\"\n @finish=\"addUser\"\n @close=\"cancel\"\n >\n <template #title>\n {{ t('harvester.virtualMachine.accessCredentials.injectSSH.addUser') }}\n </template>\n\n <template #content>\n <LabeledInput\n v-model:value=\"newUsername\"\n :label=\"t('harvester.virtualMachine.input.username')\"\n class=\"mb-20\"\n required\n @keydown.native.enter.prevent=\"()=>{}\"\n />\n </template>\n </ModalWithCard>\n </div>\n</template>\n\n<style lang=\"scss\">\n .vm__credentials-users {\n .hasUsers.labeled-select.edit.taggable {\n .labeled-tooltip {\n .icon.status-icon {\n top: 30px;\n }\n }\n }\n }\n</style>\n","import { render } from \"./AccessCredentialsUsers.vue?vue&type=template&id=a9540abc\"\nimport script from \"./AccessCredentialsUsers.vue?vue&type=script&lang=js\"\nexport * from \"./AccessCredentialsUsers.vue?vue&type=script&lang=js\"\n\nimport \"./AccessCredentialsUsers.vue?vue&type=style&index=0&id=a9540abc&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\n\nimport { Banner } from '@components/Banner';\nimport InfoBox from '@shell/components/InfoBox';\n\nimport { randomStr } from '@shell/utils/string';\nimport { removeObject } from '@shell/utils/array';\nimport { _EDIT } from '@shell/config/query-params';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { ACCESS_CREDENTIALS } from '../../../config/harvester-map';\n\nconst _NEW = '_NEW';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n Banner,\n InfoBox\n },\n\n props: {\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n resourceType: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n mode: {\n type: String,\n default: 'create',\n },\n\n disableCreate: {\n type: Boolean,\n default: false\n },\n\n disabled: {\n type: Boolean,\n default: false\n },\n\n isQemuInstalled: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n ACCESS_CREDENTIALS,\n toRemove: [],\n toSave: [],\n rows: [],\n newUserOptions: [],\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n isEdit() {\n return this.mode === _EDIT;\n },\n\n historyUsersOptions() {\n const out = JSON.parse(this.resourceType?.spec?.template?.metadata?.annotations?.[HCI_ANNOTATIONS.DYNAMIC_SSHKEYS_USERS] || '[]');\n\n out.unshift({\n label: this.t('harvester.virtualMachine.accessCredentials.injectSSH.addUser'),\n value: _NEW,\n });\n\n return out;\n },\n\n userOptions() {\n return Array.from(new Set([...this.historyUsersOptions, ...this.newUserOptions]));\n },\n },\n\n watch: {\n value: {\n handler(neu) {\n this.rows = [...neu];\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n addCredentials(type) {\n const neu = {\n source: type,\n users: [],\n sshkeys: [],\n username: '',\n newPassword: '',\n secretName: this.generateSecretName(this.resourceType.metadata.name),\n };\n\n this.rows.push(neu);\n this.update();\n },\n\n remove(row) {\n removeObject(this.rows, row);\n this.update();\n },\n\n update() {\n this.$emit('update:value', this.rows);\n },\n\n updateNewUser(newUser) {\n this.newUserOptions.push(newUser);\n },\n\n generateSecretName(name) {\n return name ? `${ name }-${ randomStr(5).toLowerCase() }` : undefined;\n },\n\n componentFor(type) {\n switch (type) {\n case ACCESS_CREDENTIALS.RESET_PWD:\n return require(`./type/basicAuth.vue`).default;\n case ACCESS_CREDENTIALS.INJECT_SSH:\n return require(`./type/sshkey.vue`).default;\n }\n },\n\n headerFor(type) {\n return {\n userPassword: this.$store.getters['i18n/t']('harvester.virtualMachine.accessCredentials.resetPwd.label'),\n sshPublicKey: this.$store.getters['i18n/t']('harvester.virtualMachine.accessCredentials.injectSSH.label'),\n }[type];\n },\n }\n};\n</script>\n\n<template>\n <div>\n <Banner\n class=\"mb-20\"\n color=\"info\"\n :label=\"t('harvester.virtualMachine.accessCredentials.tips')\"\n />\n\n <div\n v-for=\"(row, i) in rows\"\n :key=\"i\"\n >\n <InfoBox class=\"volume-source\">\n <button\n v-if=\"isEdit\"\n type=\"button\"\n class=\"role-link btn btn-sm remove-vol\"\n @click=\"remove(row)\"\n >\n <i class=\"icon icon-x\" />\n </button>\n <h3>\n <span>\n {{ headerFor(row.source) }}\n </span>\n </h3>\n <div>\n <component\n :is=\"componentFor(row.source)\"\n v-model:value=\"rows[i]\"\n :rows=\"rows\"\n :resource-type=\"resourceType\"\n :user-options=\"userOptions\"\n :mode=\"mode\"\n :idx=\"i\"\n @update=\"update\"\n @update:newUser=\"updateNewUser\"\n />\n </div>\n </InfoBox>\n </div>\n\n <div\n v-if=\"isEdit && isQemuInstalled\"\n class=\"mt-20\"\n >\n <button\n type=\"button\"\n class=\"btn btn-sm bg-primary mr-15 mb-10\"\n @click=\"addCredentials(ACCESS_CREDENTIALS.RESET_PWD)\"\n >\n {{ t('harvester.virtualMachine.accessCredentials.resetPwd.label') }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm bg-primary mr-15 mb-10\"\n @click=\"addCredentials(ACCESS_CREDENTIALS.INJECT_SSH)\"\n >\n {{ t('harvester.virtualMachine.accessCredentials.injectSSH.label') }}\n </button>\n </div>\n </div>\n</template>\n\n<style lang='scss' scoped>\n .volume-source {\n position: relative;\n }\n\n .remove-vol {\n position: absolute;\n top: 10px;\n right: 10px;\n padding: 0px;\n }\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=61977bc4&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=61977bc4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-61977bc4\"]])\n\nexport default __exports__","<script>\nimport Password from '@shell/components/form/Password';\nimport AccessCredentialsUsers from '../AccessCredentialsUsers';\n\nexport default {\n name: 'HarvesterEditVolume',\n\n emits: ['update', 'update:newUser'],\n\n components: { Password, AccessCredentialsUsers },\n\n props: {\n mode: {\n type: String,\n default: 'create'\n },\n\n resourceType: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n userOptions: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n },\n\n data() {\n return {\n defaultPwdValue: {\n username: '',\n newPassword: ''\n }\n };\n },\n\n methods: {\n update() {\n this.$emit('update');\n },\n\n updateUser(neu) {\n this.value['username'] = neu;\n this.update();\n },\n\n updateNewUser(neu) {\n this.$emit('update:newUser', neu);\n }\n },\n};\n</script>\n\n<template>\n <div\n class=\"row\"\n @update:value=\"update\"\n >\n <div class=\"col span-6\">\n <AccessCredentialsUsers\n v-model:value=\"value.username\"\n :resource-type=\"resourceType\"\n :user-options=\"userOptions\"\n :multiple=\"false\"\n :mode=\"mode\"\n @update:user=\"updateUser\"\n @update:newUser=\"updateNewUser\"\n />\n </div>\n <div class=\"col span-6\">\n <Password\n ref=\"password\"\n v-model:value=\"value.newPassword\"\n :mode=\"mode\"\n :disabled=\"mode !== 'edit'\"\n :label=\"t('harvester.virtualMachine.input.password')\"\n required\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.action {\n display: flex;\n flex-direction: row-reverse;\n}\n</style>\n","import { render } from \"./basicAuth.vue?vue&type=template&id=7d19b7bd&scoped=true\"\nimport script from \"./basicAuth.vue?vue&type=script&lang=js\"\nexport * from \"./basicAuth.vue?vue&type=script&lang=js\"\n\nimport \"./basicAuth.vue?vue&type=style&index=0&id=7d19b7bd&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d19b7bd\"]])\n\nexport default __exports__","<script>\nimport SSHKey from '../../VirtualMachineSSHKey';\nimport AccessCredentialsUsers from '../AccessCredentialsUsers';\n\nexport default {\n name: 'HarvesterEditVolume',\n\n emits: ['update', 'update:newUser'],\n\n components: { SSHKey, AccessCredentialsUsers },\n\n props: {\n mode: {\n type: String,\n default: 'create'\n },\n\n resourceType: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n userOptions: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n },\n\n methods: {\n update() {\n this.$emit('update');\n },\n\n updateUser(neu) {\n this.value['users'] = neu;\n this.update();\n },\n\n updateSSH(neu) {\n this.value['sshkeys'] = neu;\n this.update();\n },\n\n updateNewUser(neu) {\n this.$emit('update:newUser', neu);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"columns row\">\n <div class=\"col span-6\">\n <AccessCredentialsUsers\n v-model:value=\"value.users\"\n :resource-type=\"resourceType\"\n :user-options=\"userOptions\"\n :mode=\"mode\"\n :multiple=\"true\"\n @update:user=\"updateUser\"\n @update:newUser=\"updateNewUser\"\n />\n </div>\n <div class=\"col span-6\">\n <SSHKey\n v-model:value=\"value.sshkeys\"\n class=\"mb-20\"\n :namespace=\"resourceType.metadata.namespace\"\n :mode=\"mode\"\n :searchable=\"false\"\n @update:sshKey=\"updateSSH\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./sshkey.vue?vue&type=template&id=366508df\"\nimport script from \"./sshkey.vue?vue&type=script&lang=js\"\nexport * from \"./sshkey.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\n\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport YamlEditor, { EDITOR_MODES } from '@shell/components/YamlEditor';\n\nimport { _VIEW } from '@shell/config/query-params';\nimport { CONFIG_MAP } from '@shell/config/types';\n\nconst _NEW = '_NEW';\nconst _NONE = '_NONE';\n\nexport default {\n components: { YamlEditor, LabeledSelect },\n\n emits: ['updateTemplateId', 'show', 'update'],\n\n props: {\n mode: {\n type: String,\n default: 'create'\n },\n value: {\n type: String,\n default: ''\n },\n type: {\n type: String,\n default: ''\n },\n options: {\n type: Array,\n default: () => {\n return [];\n }\n },\n configId: {\n type: String,\n default: ''\n },\n viewCode: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n id: '',\n yamlScript: this.value,\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n editorMode() {\n return this.isView || this.viewCode ? EDITOR_MODES.VIEW_CODE : EDITOR_MODES.EDIT_CODE;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n },\n\n watch: {\n value(neu) {\n this.yamlScript = neu;\n },\n\n configId(neu) {\n this.id = this.configId;\n },\n\n id(neu, old) {\n const cloudInit = this.$store.getters['harvester/byId'](CONFIG_MAP, neu)?.data?.cloudInit || '';\n\n this.$emit('updateTemplateId', this.type, neu);\n if (!neu) {\n // should not reset yaml when nothing is selected\n return;\n } else if (neu === _NEW) {\n this.$emit('show', this.type);\n this.id = old;\n\n return;\n } else if (neu === _NONE ) {\n this.yamlScript = '';\n } else {\n this.yamlScript = cloudInit;\n }\n\n this.$refs['yaml'].updateValue(cloudInit);\n },\n\n yamlScript(neu) {\n this.$emit('update', neu, this.type);\n }\n },\n\n methods: {\n refresh() {\n this.$refs.yaml.refresh();\n },\n\n updateValue() {\n this.$refs['yaml'].updateValue(this.value);\n }\n }\n};\n</script>\n\n<template>\n <div class=\"mb-20\">\n <h3>{{ t(`harvester.virtualMachine.cloudConfig.${type}.title`) }}</h3>\n <p class=\"text-muted mb-20\">\n <t\n :k=\"`harvester.virtualMachine.cloudConfig.${type}.tip`\"\n :raw=\"true\"\n />\n </p>\n\n <LabeledSelect\n v-if=\"!isView\"\n v-model:value=\"id\"\n class=\"mb-20\"\n :options=\"options\"\n :disabled=\"viewCode\"\n :label-key=\"`harvester.virtualMachine.cloudConfig.${type}.label`\"\n />\n\n <div class=\"resource-yaml\">\n <YamlEditor\n ref=\"yaml\"\n v-model:value=\"yamlScript\"\n class=\"yaml-editor\"\n :editor-mode=\"editorMode\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n$yaml-height: 200px;\n\n:deep() .resource-yaml {\n flex: 1;\n display: flex;\n flex-direction: column;\n\n & .yaml-editor{\n flex: 1;\n min-height: $yaml-height;\n\n & .code-mirror .CodeMirror {\n min-height: $yaml-height;\n }\n }\n}\n</style>\n","import { render } from \"./DataTemplate.vue?vue&type=template&id=1613a356&scoped=true\"\nimport script from \"./DataTemplate.vue?vue&type=script&lang=js\"\nexport * from \"./DataTemplate.vue?vue&type=script&lang=js\"\n\nimport \"./DataTemplate.vue?vue&type=style&index=0&id=1613a356&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1613a356\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\n\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport YamlEditor, { EDITOR_MODES } from '@shell/components/YamlEditor';\nimport ModalWithCard from '@shell/components/ModalWithCard';\n\nimport { CONFIG_MAP } from '@shell/config/types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { _VIEW } from '@shell/config/query-params';\nimport DataTemplate from './DataTemplate';\n\nconst _NEW = '_NEW';\n\nexport default {\n emits: ['updateUserData', 'updateNetworkData', 'updateDataTemplateId'],\n\n components: {\n DataTemplate, YamlEditor, LabeledInput, ModalWithCard\n },\n\n props: {\n mode: {\n type: String,\n default: 'create'\n },\n namespace: {\n type: String,\n default: ''\n },\n userScript: {\n type: String,\n default: ''\n },\n networkScript: {\n type: String,\n default: ''\n },\n viewCode: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n errors: [],\n templateType: '',\n cloudTemplate: '',\n cloudTemplateName: '',\n configUserId: '',\n configNetworkId: '',\n optionUser: [],\n optionNetwork: [],\n isOpen: false\n };\n },\n\n async fetch() {\n const configs = await this.$store.dispatch('harvester/findAll', { type: CONFIG_MAP });\n\n const optionUser = [];\n const optionNetwork = [];\n\n for (const config of configs) {\n if (config.metadata?.labels?.[HCI_ANNOTATIONS.CLOUD_INIT] === 'user') {\n optionUser.push({\n label: config?.id,\n value: config?.id\n });\n }\n\n if (config.metadata?.labels?.[HCI_ANNOTATIONS.CLOUD_INIT] === 'network') {\n optionNetwork.push({\n label: config?.id,\n value: config?.id\n });\n }\n }\n\n optionUser.unshift({\n label: this.t('harvester.virtualMachine.cloudConfig.createNew'),\n value: _NEW,\n });\n\n optionNetwork.unshift({\n label: this.t('harvester.virtualMachine.cloudConfig.createNew'),\n value: _NEW,\n });\n\n this.optionUser = optionUser;\n this.optionNetwork = optionNetwork;\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n createTypeLable() {\n const label = `harvester.virtualMachine.cloudConfig.${ this.templateType }.label`;\n\n return this.t(label);\n },\n\n editorMode() {\n return this.isView ? EDITOR_MODES.VIEW_CODE : EDITOR_MODES.EDIT_CODE;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n },\n\n methods: {\n updateValue() {\n this.$refs['userTemplate'].updateValue();\n this.$refs['networkTemplate'].updateValue();\n },\n\n update(value, type) {\n if (type === 'user') {\n this.$emit('updateUserData', value);\n }\n if (type === 'network') {\n this.$emit('updateNetworkData', value);\n }\n },\n\n updateTemplateId(type, id) {\n this.$emit('updateDataTemplateId', type, id);\n },\n\n show(templateType) {\n this.templateType = templateType;\n this.isOpen = true;\n },\n\n async save(buttonCb) {\n this.errors = [];\n\n if (!this.cloudTemplateName) {\n this.errors.push(this.t('validation.required', { key: this.t('harvester.virtualMachine.input.name') }, true));\n buttonCb(false);\n\n return;\n }\n\n if (!this.cloudTemplate) {\n const keyLabel = this.templateType === 'user' ? 'harvester.cloudTemplate.userData' : 'harvester.cloudTemplate.networkData';\n\n this.errors.push(this.t('validation.required', { key: this.t(keyLabel) }, true));\n buttonCb(false);\n\n return;\n }\n\n const templateValue = await this.$store.dispatch('harvester/create', {\n type: CONFIG_MAP,\n metadata: {\n labels: { [HCI_ANNOTATIONS.CLOUD_INIT]: this.templateType },\n name: this.cloudTemplateName,\n namespace: this.namespace\n },\n data: { cloudInit: this.cloudTemplate },\n });\n\n try {\n const res = await templateValue.save();\n\n if (res.id) {\n this.templateType === 'user' ? this.configUserId = res.id : this.configNetworkId = res.id;\n this.$fetch();\n }\n buttonCb(true);\n this.cancel();\n } catch (err) {\n this.errors = [err.message];\n buttonCb(false);\n }\n },\n\n cancel() {\n this.cloudTemplate = '';\n this.cloudTemplateName = '';\n this['errors'] = [];\n this.isOpen = false;\n },\n\n refresh() {\n this.$refs['userTemplate'].refresh();\n this.$refs['networkTemplate'].refresh();\n },\n }\n};\n</script>\n\n<template>\n <div>\n <h2 v-if=\"!isView\">\n {{ t('harvester.virtualMachine.cloudConfig.title') }}\n </h2>\n\n <div class=\"mb-20\">\n <DataTemplate\n ref=\"userTemplate\"\n :value=\"userScript\"\n type=\"user\"\n :view-code=\"viewCode\"\n :mode=\"mode\"\n :config-id=\"configUserId\"\n :options=\"optionUser\"\n @show=\"show\"\n @update=\"update\"\n @updateTemplateId=\"updateTemplateId\"\n />\n </div>\n\n <div class=\"mb-20\">\n <DataTemplate\n ref=\"networkTemplate\"\n :value=\"networkScript\"\n type=\"network\"\n :view-code=\"viewCode\"\n :mode=\"mode\"\n :config-id=\"configNetworkId\"\n :options=\"optionNetwork\"\n @show=\"show\"\n @update=\"update\"\n />\n </div>\n\n <ModalWithCard\n v-if=\"isOpen\"\n name=\"createCloudTemplate\"\n width=\"40%\"\n :errors=\"errors\"\n @finish=\"save\"\n @close=\"cancel\"\n >\n <template #title>\n {{ t('harvester.virtualMachine.cloudConfig.createTemplateTitle', { name: createTypeLable }) }}\n </template>\n\n <template #content>\n <LabeledInput\n v-model:value=\"cloudTemplateName\"\n :label=\"t('harvester.virtualMachine.input.name')\"\n class=\"mb-20\"\n required\n @keydown.native.enter.prevent=\"()=>{}\"\n />\n\n <div class=\"yaml\">\n <div class=\"resource-yaml\">\n <YamlEditor\n ref=\"createTemplate\"\n v-model:value=\"cloudTemplate\"\n class=\"yaml-editor\"\n :editor-mode=\"editorMode\"\n />\n </div>\n </div>\n </template>\n </ModalWithCard>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n$yaml-height: 350px;\n\n.yaml {\n height: $yaml-height;\n overflow: auto;\n}\n\n:deep() .resource-yaml {\n flex: 1;\n display: flex;\n flex-direction: column;\n\n & .yaml-editor{\n flex: 1;\n min-height: $yaml-height;\n\n & .code-mirror .CodeMirror {\n min-height: $yaml-height;\n }\n }\n}\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=2d3a6d84&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=2d3a6d84&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2d3a6d84\"]])\n\nexport default __exports__","<script>\nimport UnitInput from '@shell/components/form/UnitInput';\nimport InputOrDisplay from '@shell/components/InputOrDisplay';\n\nexport default {\n name: 'HarvesterEditCpuMemory',\n\n emits: ['updateCpuMemory'],\n\n components: { UnitInput, InputOrDisplay },\n\n props: {\n cpu: {\n type: Number,\n default: null\n },\n memory: {\n type: String,\n default: null\n },\n mode: {\n type: String,\n default: 'create',\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n localCpu: this.cpu,\n localMemory: this.memory\n };\n },\n\n computed: {\n cupDisplay() {\n return `${ this.localCpu } C`;\n },\n\n memoryDisplay() {\n return `${ this.localMemory }`;\n }\n },\n\n watch: {\n cpu(neu) {\n this.localCpu = neu;\n },\n memory(neu) {\n if (neu && !neu.includes('null')) {\n this.localMemory = neu;\n }\n }\n },\n\n methods: {\n change() {\n let memory = '';\n\n if (String(this.localMemory).includes('Gi')) {\n memory = this.localMemory;\n } else {\n memory = `${ this.localMemory }Gi`;\n }\n if (memory.includes('null')) {\n memory = null;\n }\n this.$emit('updateCpuMemory', this.localCpu, memory);\n },\n\n }\n};\n</script>\n\n<template>\n <div class=\"row\">\n <div class=\"col span-6 mb-10\">\n <InputOrDisplay\n name=\"CPU\"\n :value=\"cupDisplay\"\n :mode=\"mode\"\n >\n <UnitInput\n v-model:value=\"localCpu\"\n label=\"CPU\"\n suffix=\"C\"\n :delay=\"0\"\n required\n :disabled=\"disabled\"\n :mode=\"mode\"\n class=\"mb-20\"\n @update:value=\"change\"\n />\n </InputOrDisplay>\n </div>\n\n <div class=\"col span-6 mb-10\">\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.input.memory')\"\n :value=\"memoryDisplay\"\n :mode=\"mode\"\n >\n <UnitInput\n v-model:value=\"localMemory\"\n :label=\"t('harvester.virtualMachine.input.memory')\"\n :mode=\"mode\"\n :input-exponent=\"3\"\n :delay=\"0\"\n :increment=\"1024\"\n :output-modifier=\"true\"\n :disabled=\"disabled\"\n required\n class=\"mb-20\"\n @update:value=\"change\"\n />\n </InputOrDisplay>\n </div>\n </div>\n</template>\n","import { render } from \"./VirtualMachineCpuMemory.vue?vue&type=template&id=294a4075\"\nimport script from \"./VirtualMachineCpuMemory.vue?vue&type=script&lang=js\"\nexport * from \"./VirtualMachineCpuMemory.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport InputOrDisplay from '@shell/components/InputOrDisplay';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nimport { clone } from '@shell/utils/object';\nimport { _CREATE, _VIEW } from '@shell/config/query-params';\nimport { MANAGEMENT_NETWORK } from '../../../mixins/harvester-vm';\n\nconst MODEL = [{\n label: 'virtio',\n value: 'virtio'\n}, {\n label: 'e1000',\n value: 'e1000'\n}, {\n label: 'e1000e',\n value: 'e1000e'\n}, {\n label: 'ne2k_pci',\n value: 'ne2k_pci'\n}, {\n label: 'pcnet',\n value: 'pcnet'\n}, {\n label: 'rtl8139',\n value: 'rtl8139'\n}];\n\nexport default {\n name: 'HarvesterEditNetwork',\n\n emits: ['update'],\n\n components: {\n LabeledInput, LabeledSelect, InputOrDisplay\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n networkOption: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n rows: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n mode: {\n type: String,\n default: 'create'\n },\n\n isSingle: {\n type: Boolean,\n default: true\n }\n },\n\n data() {\n const isMasquerade = this.value.isPod;\n\n if (isMasquerade) {\n this.value.networkName = MANAGEMENT_NETWORK;\n }\n\n return {\n isMasquerade,\n hasManagementNetwork: false,\n showAdvanced: false,\n };\n },\n\n computed: {\n isDisabled() {\n return this.isMasquerade && !this.value.newCreateId && !this.isCreate;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isCreate() {\n return this.mode === _CREATE;\n },\n\n modelOption() {\n return MODEL;\n },\n\n allNetworkOption() {\n const vlanNetwork = clone(this.networkOption);\n const managementNetwork = [{\n label: MANAGEMENT_NETWORK,\n value: MANAGEMENT_NETWORK\n }];\n\n if (this.value.newCreateId && this.hasManagementNetwork) {\n return vlanNetwork;\n } else if (this.value.newCreateId && !this.hasManagementNetwork) {\n return [...managementNetwork, ...vlanNetwork];\n } else if (this.isMasquerade) {\n return managementNetwork;\n } else {\n return vlanNetwork;\n }\n },\n\n typeOption() {\n const masquerade = [{\n label: 'masquerade',\n value: 'masquerade'\n }, {\n label: 'bridge',\n value: 'bridge'\n }];\n\n const other = [{\n label: 'bridge',\n value: 'bridge'\n }];\n\n return this.isMasquerade ? masquerade : other;\n }\n },\n\n watch: {\n rows: {\n handler(neu) {\n const hasManagementNetwork = !!neu.some((N) => N.isPod);\n\n this['hasManagementNetwork'] = hasManagementNetwork;\n },\n immediate: true,\n deep: true\n },\n\n isSingle(neu) {\n if (!neu) {\n this.value['macAddress'] = '';\n this.update();\n }\n }\n },\n\n methods: {\n /**\n * Patch k8s value based on type of network\n */\n updateNetworkName(neu) {\n if (neu === MANAGEMENT_NETWORK) {\n this.value.isPod = true;\n this.value.macAddress = '';\n } else {\n this.value.isPod = false;\n }\n\n this['isMasquerade'] = this.value.isPod;\n\n if (this.value.isPod) {\n this.value.type = 'masquerade';\n } else {\n this.value.type = 'bridge';\n }\n this.update();\n },\n\n update() {\n this.$emit('update');\n },\n\n toggleAdvanced() {\n this.showAdvanced = !this.showAdvanced;\n },\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hen-name\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.name')\"\n :value=\"value.name\"\n :mode=\"mode\"\n >\n <LabeledInput\n v-model:value=\"value.name\"\n :label=\"t('harvester.fields.name')\"\n required\n :mode=\"mode\"\n :disabled=\"isDisabled\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n\n <div\n data-testid=\"input-hen-model\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.model')\"\n :value=\"value.model\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.model\"\n :label=\"t('harvester.fields.model')\"\n :disabled=\"isDisabled\"\n :options=\"modelOption\"\n :mode=\"mode\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n\n <div\n class=\"row\"\n :class=\"{'mb-20': !isMasquerade}\"\n >\n <div\n data-testid=\"input-hen-networkName\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.network')\"\n :value=\"value.networkName\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.networkName\"\n :label=\"t('harvester.fields.network')\"\n :options=\"allNetworkOption\"\n :mode=\"mode\"\n required\n :disabled=\"isDisabled\"\n @update:value=\"updateNetworkName\"\n />\n </InputOrDisplay>\n </div>\n\n <div\n data-testid=\"input-hen-type\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.type')\"\n :value=\"value.type\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.type\"\n :label=\"t('harvester.fields.type')\"\n :options=\"typeOption\"\n :mode=\"mode\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n\n <div v-if=\"!isMasquerade && isSingle\">\n <div class=\"row mb-20\">\n <a\n role=\"button\"\n @click=\"toggleAdvanced\"\n >\n {{ showAdvanced ? t('harvester.generic.hideMore') : t('harvester.generic.showMore') }}\n </a>\n </div>\n\n <div class=\"row\">\n <div\n v-if=\"showAdvanced\"\n data-testid=\"input-hen-macAddress\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.macAddress')\"\n :value=\"value.macAddress\"\n :mode=\"mode\"\n >\n <LabeledInput\n v-model:value=\"value.macAddress\"\n label-key=\"harvester.fields.macAddress\"\n :mode=\"mode\"\n :tooltip=\"t('harvester.virtualMachine.volume.macTip')\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./base.vue?vue&type=template&id=26215ae8\"\nimport script from \"./base.vue?vue&type=script&lang=js\"\nexport * from \"./base.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport InfoBox from '@shell/components/InfoBox';\n\nimport { NETWORK_ATTACHMENT } from '@shell/config/types';\nimport { sortBy } from '@shell/utils/sort';\nimport { clone } from '@shell/utils/object';\nimport { randomStr } from '@shell/utils/string';\nimport { removeObject } from '@shell/utils/array';\nimport { _VIEW } from '@shell/config/query-params';\nimport { HCI as HCI_ANNOTATIONS } from '../../../config/labels-annotations';\nimport Base from './base';\n\nexport default {\n components: { InfoBox, Base },\n\n props: {\n mode: {\n type: String,\n default: 'create'\n },\n\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n isSingle: {\n type: Boolean,\n default: true\n }\n },\n\n data() {\n return {\n rows: this.addKeyId(clone(this.value)),\n nameIdx: 1\n };\n },\n\n computed: {\n isView() {\n return this.mode === _VIEW;\n },\n\n networkOption() {\n const choices = this.$store.getters['harvester/all'](NETWORK_ATTACHMENT).filter((row) => {\n return !row.metadata?.annotations?.[HCI_ANNOTATIONS.STORAGE_NETWORK];\n });\n\n const out = sortBy(\n choices.map((N) => {\n const label = N.isNotReady ? `${ N.id } (${ this.t('generic.notReady') })` : N.id;\n\n return {\n label,\n value: N.id,\n disabled: N.isNotReady,\n };\n }),\n 'label'\n );\n\n return out;\n },\n },\n\n watch: {\n value(neu) {\n this.rows = neu;\n },\n },\n\n methods: {\n add(type) {\n const name = this.generateName();\n\n const neu = {\n name,\n networkName: '',\n model: 'virtio',\n type: 'bridge',\n newCreateId: randomStr(10),\n rowKeyId: randomStr(10)\n };\n\n this.rows.push(neu);\n this.update();\n },\n\n remove(vol) {\n removeObject(this.rows, vol);\n this.update();\n },\n\n addKeyId(row) {\n return row.map((R) => {\n return {\n ...R,\n rowKeyId: randomStr(10)\n };\n });\n },\n\n generateName() {\n let name = '';\n let hasUsed = true;\n\n while (hasUsed) {\n name = `nic-${ this.nameIdx }`;\n hasUsed = this.rows.find( (O) => O.name === name);\n this.nameIdx++;\n }\n\n return name;\n },\n\n update() {\n this.$emit('update:value', this.rows);\n }\n }\n};\n</script>\n\n<template>\n <div>\n <InfoBox\n v-for=\"(row, i) in rows\"\n :key=\"i\"\n >\n <button\n v-if=\"!isView\"\n type=\"button\"\n class=\"role-link remove-vol\"\n @click=\"remove(row)\"\n >\n <i class=\"icon icon-x\" />\n </button>\n\n <h3> {{ t('harvester.virtualMachine.network.title') }} </h3>\n\n <Base\n v-model:value=\"rows[i]\"\n :rows=\"rows\"\n :mode=\"mode\"\n :is-single=\"isSingle\"\n :network-option=\"networkOption\"\n @update=\"update\"\n />\n </InfoBox>\n\n <button\n v-if=\"!isView\"\n type=\"button\"\n class=\"btn btn-sm bg-primary\"\n @click=\"add\"\n >\n {{ t('harvester.virtualMachine.network.addNetwork') }}\n </button>\n </div>\n</template>\n\n<style lang='scss' scoped>\n.infoBox{\n position: relative;\n}\n\n.remove-vol {\n position: absolute;\n top: 10px;\n right: 16px;\n padding:0px;\n max-height: 28px;\n min-height: 28px;\n}\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=697c87ca&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=697c87ca&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-697c87ca\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { randomStr } from '@shell/utils/string';\n\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport ModalWithCard from '@shell/components/ModalWithCard';\n\nimport { _VIEW, _EDIT } from '@shell/config/query-params';\n\nimport { NAMESPACE } from '@shell/config/types';\nimport { HCI } from '../../types';\n\nconst _NEW = '_NEW';\n\nexport default {\n emits: ['update:sshKey'],\n\n components: {\n LabeledInput,\n ModalWithCard,\n LabeledSelect,\n },\n\n props: {\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n mode: {\n type: String,\n default: 'create',\n },\n\n disableCreate: {\n type: Boolean,\n default: false\n },\n\n namespace: {\n type: String,\n default: ''\n },\n\n createNamespace: {\n type: Boolean,\n default: false,\n },\n\n searchable: {\n type: Boolean,\n default: true,\n },\n\n disabled: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n checkedSsh: this.value,\n publicKey: '',\n sshName: '',\n randomStr: randomStr(5).toLowerCase(),\n errors: [],\n isAll: false,\n checkAll: false,\n isOpen: false,\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n schema() {\n return this.$store.getters['harvester/schemaFor']( HCI.SSH );\n },\n\n isCreatable() {\n if ( this.schema && !this.schema?.collectionMethods.find((x) => ['blocked-post', 'post'].includes(x.toLowerCase())) ) {\n return false;\n }\n\n return true ;\n },\n\n sshOption() {\n if (this.mode === _VIEW || this.mode === _EDIT) {\n return [];\n }\n const out = this.$store.getters['harvester/all'](HCI.SSH).map( (O) => {\n return {\n label: O.id,\n value: O.id\n };\n });\n\n if (!(this.disableCreate || this.mode === _VIEW) && this.isCreatable) {\n out.unshift({\n label: this.t('harvester.virtualMachine.createSSHKey'),\n value: _NEW,\n });\n }\n\n return out;\n },\n },\n\n watch: {\n publicKey(neu) {\n const trimNeu = neu.trim();\n const splitSSH = trimNeu.split(/\\s+/);\n\n if (splitSSH.length === 3 && !this.sshName) {\n const keyComment = splitSSH[2];\n\n this.randomStr = randomStr(10).toLowerCase();\n this.sshName = keyComment.includes('@') ? keyComment.split('@')[0] : keyComment;\n }\n },\n\n value(neu) {\n this.checkedSsh = neu;\n },\n\n checkedSsh(val) {\n // if click on Create a New...\n if (val.includes(_NEW)) {\n this.show();\n }\n }\n },\n\n methods: {\n show() {\n this.isOpen = true;\n },\n\n hide() {\n this.isOpen = false;\n },\n\n async createNamespaceIfNeeded() {\n if (!this.createNamespace || this.disableCreate) {\n return;\n }\n\n const namespaces = await this.$store.dispatch('harvester/findAll', { type: NAMESPACE });\n\n const exists = namespaces?.find((n) => n.name === this.namespace);\n\n if (!exists) {\n const ns = await this.$store.dispatch('harvester/createNamespace', { name: this.namespace }, { root: true });\n\n ns.applyDefaults();\n await ns.save();\n }\n },\n\n async createSSHKey() {\n const sshValue = await this.$store.dispatch('harvester/create', {\n metadata: {\n name: this.sshName,\n namespace: this.namespace\n },\n spec: { publicKey: this.publicKey },\n type: HCI.SSH\n });\n\n const res = await sshValue.save();\n\n if (res.id) {\n this.checkedSsh.push(`${ this.namespace }/${ this.sshName }`);\n this.update();\n }\n },\n\n async save(buttonCb) {\n this.errors = [];\n\n if (!this.sshName) {\n const fieldName = this.t('harvester.virtualMachine.input.name');\n const message = this.t('validation.required', { key: fieldName });\n\n this.errors.push(message);\n }\n\n if (!this.publicKey) {\n const fieldName = this.t('harvester.virtualMachine.input.sshKeyValue');\n const message = this.t('validation.required', { key: fieldName });\n\n this.errors.push(message);\n }\n\n if (this.sshName.length > 63) {\n const message = this.t('harvester.validation.custom.tooLongName', { max: 63 });\n\n this.errors.push(message);\n }\n\n if (this.errors.length > 0) {\n buttonCb(false);\n\n return;\n }\n\n try {\n await this.createNamespaceIfNeeded();\n\n await this.createSSHKey();\n\n buttonCb(true);\n this.cancel();\n } catch (err) {\n this.errors = [err.message];\n buttonCb(false);\n }\n },\n\n cancel() {\n this.hide();\n this.resetFields();\n },\n\n resetFields() {\n this.sshName = '';\n this.publicKey = '';\n this.errors = [];\n },\n\n update() {\n const sshKeys = this.checkedSsh.filter((key) => key !== _NEW);\n\n this.$emit('update:sshKey', sshKeys);\n },\n }\n};\n</script>\n\n<template>\n <div>\n <LabeledSelect\n v-model:value=\"checkedSsh\"\n :label=\"t('harvester.virtualMachine.input.sshKey')\"\n :taggable=\"!disabled\"\n :mode=\"mode\"\n :multiple=\"true\"\n :searchable=\"searchable\"\n :disabled=\"disabled\"\n :options=\"sshOption\"\n @update:value=\"update\"\n />\n\n <ModalWithCard\n v-if=\"isOpen\"\n :name=\"randomStr\"\n width=\"40%\"\n :errors=\"errors\"\n @finish=\"save\"\n @close=\"cancel\"\n >\n <template #title>\n {{ t('harvester.virtualMachine.sshTitle') }}\n </template>\n\n <template #content>\n <LabeledInput\n v-model:value=\"sshName\"\n :label=\"t('harvester.virtualMachine.input.name')\"\n class=\"mb-20\"\n required\n @keydown.native.enter.prevent=\"()=>{}\"\n />\n\n <LabeledInput\n v-model:value=\"publicKey\"\n :label=\"t('harvester.virtualMachine.input.sshKeyValue')\"\n :min-height=\"160\"\n class=\"mb-20\"\n type=\"multiline\"\n required\n />\n </template>\n </ModalWithCard>\n </div>\n</template>\n","import { render } from \"./VirtualMachineSSHKey.vue?vue&type=template&id=463e0232\"\nimport script from \"./VirtualMachineSSHKey.vue?vue&type=script&lang=js\"\nexport * from \"./VirtualMachineSSHKey.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { VueDraggableNext } from 'vue-draggable-next';\nimport InfoBox from '@shell/components/InfoBox';\nimport { Banner } from '@components/Banner';\nimport BadgeStateFormatter from '@shell/components/formatter/BadgeStateFormatter';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport ModalWithCard from '@shell/components/ModalWithCard';\n\nimport { PVC } from '@shell/config/types';\nimport { clone } from '@shell/utils/object';\nimport { ucFirst, randomStr } from '@shell/utils/string';\nimport { removeObject } from '@shell/utils/array';\nimport { _VIEW, _EDIT, _CREATE } from '@shell/config/query-params';\nimport { PLUGIN_DEVELOPER, DEV } from '@shell/store/prefs';\nimport { SOURCE_TYPE } from '../../../config/harvester-map';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../../config/harvester';\nimport { HCI } from '../../../types';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n Banner, BadgeStateFormatter, VueDraggableNext, InfoBox, LabeledInput, UnitInput, LabeledSelect, ModalWithCard\n },\n\n props: {\n vm: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n mode: {\n type: String,\n default: _CREATE\n },\n\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n namespace: {\n type: String,\n default: null\n },\n\n existingVolumeDisabled: {\n type: Boolean,\n default: false\n },\n\n validateRequired: {\n type: Boolean,\n default: false\n },\n\n customVolumeMode: {\n type: String,\n default: 'Block'\n },\n\n customAccessMode: {\n type: String,\n default: 'ReadWriteMany'\n },\n\n resourceType: {\n type: String,\n default: ''\n }\n },\n\n async fetch() {\n await this.$store.dispatch('harvester/findAll', { type: PVC });\n },\n\n data() {\n return {\n ucFirst,\n SOURCE_TYPE,\n rows: clone(this.value),\n nameIdx: 1,\n vol: null,\n isOpen: false\n };\n },\n\n computed: {\n dev() {\n try {\n return this.$store.getters['prefs/get'](PLUGIN_DEVELOPER);\n } catch {\n return this.$store.getters['prefs/get'](DEV);\n }\n },\n\n isVirtualType() {\n return this.resourceType === HCI.VM;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isEdit() {\n return this.mode === _EDIT;\n },\n\n isCreate() {\n return this.mode === _CREATE;\n },\n\n showVolumeTip() {\n const imageName = this.getImageDisplayName(this.rows[0]?.image);\n\n if (this.rows.length === 1 && this.rows[0].type === 'cd-rom' && /.iso$/i.test(imageName)) {\n return true;\n }\n\n return false;\n },\n\n pvcs() {\n return this.$store.getters['harvester/all'](PVC) || [];\n },\n },\n\n watch: {\n value: {\n handler(neu) {\n const rows = clone(neu).map((V) => {\n if (!this.isCreate && V.source !== SOURCE_TYPE.CONTAINER && !V.newCreateId) {\n V.to = {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-namespace-id`,\n params: {\n resource: HCI.VOLUME,\n namespace: this.namespace,\n id: V.realName\n },\n query: { mode: _EDIT }\n };\n\n V.pvc = this.pvcs.find((pvc) => pvc.metadata.name === V.realName);\n }\n\n return V;\n });\n\n this['rows'] = rows;\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n addVolume(type) {\n const name = this.generateName();\n const neu = {\n id: randomStr(5),\n name,\n source: type,\n size: '10Gi',\n type: 'disk',\n accessMode: this.customAccessMode,\n volumeMode: this.customVolumeMode,\n volumeName: '',\n bus: 'virtio',\n newCreateId: randomStr(10), // judge whether it is a disk that has been created\n };\n\n if (type === SOURCE_TYPE.NEW) {\n neu.storageClassName = this.defaultStorageClass?.metadata?.name || 'longhorn';\n }\n\n this.rows.push(neu);\n this.update();\n },\n\n generateName() {\n let name = '';\n let hasName = true;\n\n while (hasName) {\n name = `disk-${ this.nameIdx }`;\n hasName = this.rows.find((O) => O.name === name);\n this.nameIdx++;\n }\n\n return name;\n },\n\n removeVolume(vol) {\n this.vol = vol;\n if (!vol.newCreateId && this.isEdit && this.isVirtualType) {\n this.isOpen = true;\n } else {\n removeObject(this.rows, vol);\n this.update();\n }\n },\n\n unplugVolume(volume) {\n this.vm.unplugVolume(volume.name);\n },\n\n componentFor(type) {\n switch (type) {\n case SOURCE_TYPE.NEW:\n return require(`./type/volume.vue`).default;\n case SOURCE_TYPE.IMAGE:\n return require(`./type/vmImage.vue`).default;\n case SOURCE_TYPE.ATTACH_VOLUME:\n return require(`./type/existing.vue`).default;\n case SOURCE_TYPE.CONTAINER:\n return require(`./type/container.vue`).default;\n }\n },\n\n headerFor(type, hasVolBackups = false) {\n const mainHeader = {\n [SOURCE_TYPE.NEW]: this.$store.getters['i18n/t']('harvester.virtualMachine.volume.title.volume'),\n [SOURCE_TYPE.IMAGE]: this.$store.getters['i18n/t']('harvester.virtualMachine.volume.title.vmImage'),\n [SOURCE_TYPE.ATTACH_VOLUME]: this.$store.getters['i18n/t']('harvester.virtualMachine.volume.title.existingVolume'),\n [SOURCE_TYPE.CONTAINER]: this.$store.getters['i18n/t']('harvester.virtualMachine.volume.title.container'),\n }[type];\n\n return hasVolBackups ? `${ mainHeader } and Backups` : mainHeader;\n },\n\n update() {\n this.$emit('update:value', this.rows);\n },\n\n deleteVolume() {\n removeObject(this.rows, this.vol);\n this.update();\n this.cancel();\n },\n\n cancel() {\n this.isOpen = false;\n },\n\n changeSort(idx, type) {\n // true: down, false: up\n this.rows.splice(type ? idx : idx - 1, 1, ...this.rows.splice(type ? idx + 1 : idx, 1, this.rows[type ? idx : idx - 1]));\n this.update();\n },\n\n getImageDisplayName(id) {\n return this.$store.getters['harvester/all'](HCI.IMAGE).find((image) => image.id === id)?.spec?.displayName;\n },\n\n isLonghornV2(volume) {\n return volume?.pvc?.isLonghornV2 || volume?.pvc?.storageClass?.isLonghornV2;\n }\n },\n};\n</script>\n\n<template>\n <div>\n <Banner\n v-if=\"!isView\"\n color=\"info\"\n label-key=\"harvester.virtualMachine.volume.dragTip\"\n />\n <VueDraggableNext\n :list=\"rows\"\n :disabled=\"isView\"\n item-key=\"id\"\n @end=\"update\"\n >\n <div\n v-for=\"(volume, i) in rows\"\n :key=\"volume.id\"\n >\n <InfoBox class=\"box\">\n <button\n v-if=\"!isView\"\n type=\"button\"\n class=\"role-link btn btn-sm remove\"\n @click=\"removeVolume(volume)\"\n >\n <i class=\"icon icon-x\" />\n </button>\n <button\n v-if=\"volume.hotpluggable && isView\"\n type=\"button\"\n class=\"role-link btn remove\"\n @click=\"unplugVolume(volume)\"\n >\n {{ t('harvester.virtualMachine.unplug.detachVolume') }}\n </button>\n <h3>\n <span\n v-if=\"volume.to && isVirtualType\"\n class=\"title\"\n >\n <router-link :to=\"volume.to\">\n {{ t('harvester.virtualMachine.volume.edit') }} {{ headerFor(volume.source) }}\n </router-link>\n\n <BadgeStateFormatter\n v-if=\"volume.pvc\"\n class=\"ml-10 state\"\n :arbitrary=\"true\"\n :row=\"volume.pvc\"\n :value=\"volume.pvc.state\"\n />\n <a\n v-if=\"dev && !!volume.pvc && !!volume.pvc.resourceExternalLink\"\n v-clean-tooltip=\"t(volume.pvc.resourceExternalLink.tipsKey || 'generic.resourceExternalLinkTips')\"\n class=\"ml-5 resource-external\"\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n :href=\"volume.pvc.resourceExternalLink.url\"\n >\n <i class=\"icon icon-external-link\" />\n </a>\n </span>\n\n <span v-else>\n {{ headerFor(volume.source, !!volume?.volumeBackups) }}\n </span>\n </h3>\n <div>\n <component\n :is=\"componentFor(volume.source)\"\n :value=\"rows[i]\"\n :rows=\"rows\"\n :namespace=\"namespace\"\n :is-create=\"isCreate\"\n :is-edit=\"isEdit\"\n :is-view=\"isView\"\n :is-virtual-type=\"isVirtualType\"\n :mode=\"mode\"\n :idx=\"i\"\n :validate-required=\"validateRequired\"\n @update=\"update\"\n />\n </div>\n\n <div class=\"bootOrder\">\n <div\n v-if=\"!isView\"\n class=\"mr-15\"\n >\n <button\n :disabled=\"i === 0\"\n class=\"btn btn-sm role-primary\"\n @click.prevent=\"changeSort(i, false)\"\n >\n <i class=\"icon icon-lg icon-chevron-up\"></i>\n </button>\n\n <button\n :disabled=\"i === rows.length -1\"\n class=\"btn btn-sm role-primary\"\n @click.prevent=\"changeSort(i, true)\"\n >\n <i class=\"icon icon-lg icon-chevron-down\"></i>\n </button>\n </div>\n\n <div class=\"text-muted\">\n bootOrder: {{ i + 1 }}\n </div>\n </div>\n\n <div class=\"mt-15\">\n <Banner\n v-if=\"volume.volumeStatus && !isCreate\"\n class=\"volume-status\"\n color=\"warning\"\n :label=\"ucFirst(volume.volumeStatus)\"\n />\n <Banner\n v-if=\"value.volumeBackups && value.volumeBackups.error && value.volumeBackups.error.message\"\n color=\"error\"\n :label=\"ucFirst(value.volumeBackups.error.message)\"\n />\n <Banner\n v-if=\"isLonghornV2(volume) && !isView\"\n color=\"warning\"\n :label=\"t('harvester.volume.longhorn.disableResize')\"\n />\n </div>\n </InfoBox>\n </div>\n </VueDraggableNext>\n <Banner\n v-if=\"showVolumeTip\"\n color=\"warning\"\n :label=\"t('harvester.virtualMachine.volume.volumeTip')\"\n />\n\n <div v-if=\"!isView\">\n <button\n type=\"button\"\n class=\"btn btn-sm bg-primary mr-15 mb-10\"\n :disabled=\"rows.length === 0\"\n @click=\"addVolume(SOURCE_TYPE.NEW)\"\n >\n {{ t('harvester.virtualMachine.volume.addVolume') }}\n </button>\n\n <button\n v-if=\"!existingVolumeDisabled\"\n type=\"button\"\n class=\"btn btn-sm bg-primary mr-15 mb-10\"\n @click=\"addVolume(SOURCE_TYPE.ATTACH_VOLUME)\"\n >\n {{ t('harvester.virtualMachine.volume.addExistingVolume') }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm bg-primary mr-15 mb-10\"\n @click=\"addVolume(SOURCE_TYPE.IMAGE)\"\n >\n {{ t('harvester.virtualMachine.volume.addVmImage') }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm bg-primary mb-10\"\n @click=\"addVolume(SOURCE_TYPE.CONTAINER)\"\n >\n {{ t('harvester.virtualMachine.volume.addContainer') }}\n </button>\n </div>\n\n <ModalWithCard\n v-if=\"isOpen\"\n name=\"deleteTip\"\n :width=\"400\"\n >\n <template #title>\n {{ t('harvester.virtualMachine.volume.unmount.title') }}\n </template>\n\n <template #content>\n <span>{{ t('harvester.virtualMachine.volume.unmount.message') }}</span>\n </template>\n\n <template #footer>\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-20\"\n @click.prevent=\"cancel\"\n >\n {{ t('generic.no') }}\n </button>\n\n <button\n class=\"btn bg-primary mr-20\"\n @click.prevent=\"deleteVolume\"\n >\n {{ t('generic.yes') }}\n </button>\n </div>\n </template>\n </ModalWithCard>\n </div>\n</template>\n\n<style lang='scss' scoped>\n .box {\n position: relative;\n }\n\n .title {\n display: flex;\n\n .state {\n font-size: 16px;\n }\n }\n\n .remove {\n position: absolute;\n top: 10px;\n right: 10px;\n padding: 0px;\n }\n\n .bootOrder {\n display: flex;\n align-items: center;\n }\n\n .buttons {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n }\n\n .volume-status:first-letter {\n text-transform: uppercase;\n }\n\n .resource-external {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .banner {\n margin: 10px 0;\n }\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=73008bf1&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=73008bf1&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-73008bf1\"]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport InputOrDisplay from '@shell/components/InputOrDisplay';\nimport { VOLUME_TYPE, InterfaceOption } from '../../../../config/harvester-map';\nimport { Banner } from '@components/Banner';\n\nexport default {\n name: 'HarvesterEditContainer',\n\n emits: ['update'],\n\n components: {\n LabeledInput, LabeledSelect, InputOrDisplay, Banner\n },\n\n props: {\n mode: {\n type: String,\n default: 'create'\n },\n\n value: {\n type: Object,\n required: true\n },\n },\n\n data() {\n return {\n VOLUME_TYPE,\n InterfaceOption\n };\n },\n\n watch: {\n 'value.type'(neu) {\n if (neu === 'cd-rom') {\n this.value['bus'] = 'sata';\n this.update();\n }\n },\n },\n\n methods: {\n update() {\n this.$emit('update');\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hec-name\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.name')\"\n :value=\"value.name\"\n :mode=\"mode\"\n >\n <LabeledInput\n v-model:value=\"value.name\"\n :label=\"t('harvester.fields.name')\"\n required\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n <div\n data-testid=\"input-hec-type\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.type')\"\n :value=\"value.type\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.type\"\n :label=\"t('harvester.fields.type')\"\n :options=\"VOLUME_TYPE\"\n :mode=\"mode\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hec-container\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.volume.dockerImage')\"\n :value=\"value.container\"\n :mode=\"mode\"\n >\n <LabeledInput\n v-model:value=\"value.container\"\n :label=\"t('harvester.virtualMachine.volume.dockerImage')\"\n :mode=\"mode\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n <div\n data-testid=\"input-hec-bus\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.volume.bus')\"\n :value=\"value.bus\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.bus\"\n :label=\"t('harvester.virtualMachine.volume.bus')\"\n :options=\"InterfaceOption\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n <div class=\"row mb-20\">\n <div\n v-if=\"value.volumeBackups\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.volume.readyToUse')\"\n :value=\"value.volumeBackups.readyToUse\"\n :mode=\"mode\"\n >\n <LabelValue\n :name=\"t('harvester.virtualMachine.volume.readyToUse')\"\n :value=\"value.volumeBackups.readyToUse\"\n />\n </InputOrDisplay>\n </div>\n </div>\n <Banner\n v-if=\"value.volumeBackups && value.volumeBackups.error && value.volumeBackups.error.message\"\n color=\"error\"\n class=\"mb-20\"\n :label=\"value.volumeBackups.error.message\"\n />\n </div>\n</template>\n","import { render } from \"./container.vue?vue&type=template&id=f22885b6\"\nimport script from \"./container.vue?vue&type=script&lang=js\"\nexport * from \"./container.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport UnitInput from '@shell/components/form/UnitInput';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabelValue from '@shell/components/LabelValue';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport InputOrDisplay from '@shell/components/InputOrDisplay';\nimport { Banner } from '@components/Banner';\nimport { sortBy } from '@shell/utils/sort';\nimport { PVC } from '@shell/config/types';\nimport { _CREATE } from '@shell/config/query-params';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../../../../types';\nimport { VOLUME_TYPE, InterfaceOption } from '../../../../config/harvester-map';\n\nexport default {\n name: 'HarvesterEditExisting',\n\n emits: ['update'],\n\n components: {\n UnitInput, LabeledInput, LabeledSelect, InputOrDisplay, LabelValue, Banner\n },\n\n props: {\n mode: {\n type: String,\n default: _CREATE\n },\n\n value: {\n type: Object,\n required: true\n },\n\n isEdit: {\n type: Boolean,\n default: false\n },\n\n namespace: {\n type: String,\n default: null\n },\n\n idx: {\n type: Number,\n default: 0\n },\n\n rows: {\n type: Array,\n required: true\n },\n },\n\n data() {\n if (this.value.realName) {\n this.value.volumeName = this.value.realName;\n }\n\n return {\n VOLUME_TYPE,\n InterfaceOption,\n loading: false,\n };\n },\n\n computed: {\n isDisabled() {\n return !this.value.newCreateId && this.isEdit;\n },\n\n allPVCs() {\n const allPVCs = this.$store.getters['harvester/all'](PVC);\n\n return allPVCs.filter((P) => {\n return this.namespace ? this.namespace === P.metadata.namespace : true;\n }) || [];\n },\n\n image() {\n const imageResource = this.$store.getters['harvester/all'](HCI.IMAGE).find((I) => I.id === this.pvcResource?.metadata?.annotations?.[HCI_ANNOTATIONS.IMAGE_ID]);\n\n if (!imageResource) {\n return;\n }\n\n return `${ imageResource.metadata.namespace }/${ imageResource.spec.displayName }`;\n },\n\n pvcResource() {\n return this.allPVCs.find( (P) => P.metadata.name === this.value.volumeName );\n },\n\n volumeOption() {\n return sortBy(\n this.allPVCs\n .filter( (pvc) => {\n let isAvailable = true;\n let isBeingUsed = false;\n\n this.rows.forEach( (O) => {\n if (O.volumeName === pvc.metadata.name) {\n isAvailable = false;\n }\n });\n\n if (this.idx === 0 && !pvc.metadata?.annotations?.[HCI_ANNOTATIONS.IMAGE_ID]) {\n return false;\n }\n\n if (pvc.metadata?.annotations?.[HCI_ANNOTATIONS.GOLDEN_IMAGE] === 'true') {\n return false;\n }\n\n if (pvc.attachVM && isAvailable && pvc.attachVM?.id === this.vm?.id && this.isEdit) {\n isBeingUsed = false;\n } else if (pvc.attachVM) {\n isBeingUsed = true;\n }\n\n return isAvailable && !isBeingUsed && pvc.isAvailable;\n })\n .map((pvc) => {\n return {\n label: pvc.metadata.name,\n value: pvc.metadata.name\n };\n }),\n 'label'\n );\n },\n },\n\n watch: {\n 'value.volumeName'(neu) {\n const pvcResource = this.allPVCs.find( (P) => P.metadata.name === neu);\n\n if (!pvcResource) {\n return;\n }\n\n this.value.accessModes = pvcResource.spec.accessModes[0];\n this.value.size = pvcResource.spec.resources.requests.storage;\n this.value.storageClassName = pvcResource.spec.storageClassName;\n this.value.volumeMode = pvcResource.spec.volumeMode;\n },\n\n 'value.type'(neu) {\n if (neu === 'cd-rom') {\n this.value['bus'] = 'sata';\n this.update();\n }\n },\n\n pvcResource: {\n handler(pvc) {\n if (!this.value.volumeName && pvc?.metadata?.name) {\n this.value.volumeName = pvc.metadata.name;\n }\n },\n deep: true,\n immediate: true\n },\n },\n\n methods: {\n update() {\n this.$emit('update');\n },\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hee-name\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.name')\"\n :value=\"value.name\"\n :mode=\"mode\"\n >\n <LabeledInput\n v-model:value=\"value.name\"\n :label=\"t('harvester.fields.name')\"\n :mode=\"mode\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n\n <div\n data-testid=\"input-hee-type\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.type')\"\n :value=\"value.type\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.type\"\n :label=\"t('harvester.fields.type')\"\n :mode=\"mode\"\n :options=\"VOLUME_TYPE\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hee-volumeName\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.volume')\"\n :value=\"value.volumeName\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.volumeName\"\n :disabled=\"isDisabled\"\n :label=\"t('harvester.fields.volume')\"\n :mode=\"mode\"\n :options=\"volumeOption\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n\n <div\n data-testid=\"input-hee-size\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.size')\"\n :value=\"value.size\"\n :mode=\"mode\"\n >\n <UnitInput\n v-model:value=\"value.size\"\n :output-modifier=\"true\"\n :increment=\"1024\"\n :input-exponent=\"3\"\n :label=\"t('harvester.fields.size')\"\n :mode=\"mode\"\n :disabled=\"true\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div\n v-if=\"!!image\"\n data-testid=\"input-hee-image\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.image')\"\n :value=\"image\"\n :mode=\"mode\"\n >\n <LabeledInput\n v-model:value=\"image\"\n :label=\"t('harvester.fields.image')\"\n :mode=\"mode\"\n :disabled=\"true\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n <div\n data-testid=\"input-hee-bus\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.volume.bus')\"\n :value=\"value.bus\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.bus\"\n :label=\"t('harvester.virtualMachine.volume.bus')\"\n :mode=\"mode\"\n :options=\"InterfaceOption\"\n :disabled=\"true\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n <div\n v-if=\"value.volumeBackups\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.volume.readyToUse')\"\n :value=\"value.volumeBackups.readyToUse\"\n :mode=\"mode\"\n >\n <LabelValue\n :name=\"t('harvester.virtualMachine.volume.readyToUse')\"\n :value=\"value.volumeBackups.readyToUse\"\n />\n </InputOrDisplay>\n </div>\n </div>\n <Banner\n v-if=\"value.volumeBackups && value.volumeBackups.error && value.volumeBackups.error.message\"\n color=\"error\"\n class=\"mb-20\"\n :label=\"value.volumeBackups.error.message\"\n />\n </div>\n</template>\n","import { render } from \"./existing.vue?vue&type=template&id=732516f5\"\nimport script from \"./existing.vue?vue&type=script&lang=js\"\nexport * from \"./existing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { findBy } from '@shell/utils/array';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport InputOrDisplay from '@shell/components/InputOrDisplay';\nimport { Banner } from '@components/Banner';\nimport { PVC } from '@shell/config/types';\nimport { formatSi, parseSi } from '@shell/utils/units';\nimport { HCI } from '../../../../types';\nimport { VOLUME_TYPE, InterfaceOption } from '../../../../config/harvester-map';\nimport { _VIEW } from '@shell/config/query-params';\nimport LabelValue from '@shell/components/LabelValue';\nimport { ucFirst } from '@shell/utils/string';\n\nexport default {\n name: 'HarvesterEditVMImage',\n\n emits: ['update'],\n\n components: {\n UnitInput, LabeledInput, LabeledSelect, InputOrDisplay, LabelValue, Banner\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n namespace: {\n type: String,\n default: null\n },\n\n mode: {\n type: String,\n default: 'create'\n },\n\n idx: {\n type: Number,\n required: true\n },\n\n isCreate: {\n type: Boolean,\n default: true\n },\n isEdit: {\n type: Boolean,\n default: false\n },\n\n validateRequired: {\n type: Boolean,\n required: true\n },\n\n isVirtualType: {\n type: Boolean,\n default: true\n }\n },\n\n data() {\n return {\n VOLUME_TYPE,\n InterfaceOption,\n loading: false,\n images: [],\n };\n },\n\n fetch() {\n this.images = this.$store.getters['harvester/all'](HCI.IMAGE);\n },\n\n computed: {\n encryptionValue() {\n return ucFirst(String(this.value.isEncrypted));\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n imagesOption() {\n return this.images.filter((c) => c.isReady).sort((a, b) => a.creationTimestamp > b.creationTimestamp ? -1 : 1).map( (I) => {\n return {\n label: this.imageOptionLabel(I),\n value: I.id\n };\n });\n },\n\n imageName() {\n const image = this.imagesOption.find((I) => I.value === this.value.image);\n\n return image ? image.label : '-';\n },\n\n readyToUse() {\n const val = String(this.value.volumeBackups?.readyToUse || false);\n\n return ucFirst(val);\n },\n\n pvcsResource() {\n const allPVCs = this.$store.getters['harvester/all'](PVC) || [];\n\n return allPVCs.find((P) => {\n return this.namespace ? P.id === `${ this.namespace }/${ this.value.volumeName }` : true;\n });\n },\n\n thirdPartyStorageEnabled() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('thirdPartyStorage');\n },\n\n isLonghornV2() {\n return this.value.pvc?.isLonghornV2 || this.value.pvc?.storageClass?.isLonghornV2;\n },\n\n selectedImage() {\n return this.$store.getters['harvester/all'](HCI.IMAGE)?.find( (I) => this.value.image === I.id);\n },\n\n imageVirtualSize() {\n return this.selectedImage?.virtualSize;\n },\n\n diskSize() {\n const size = this.value?.size || '0';\n\n return `${ size.replace('Gi', '') } GB`;\n },\n\n imageVirtualSizeInByte() {\n return Math.max(this.selectedImage?.status?.size, this.selectedImage?.status?.virtualSize);\n },\n\n diskSizeInByte() {\n return parseSi(this.value?.size || '0');\n },\n\n showDiskTooSmallError() {\n if (!this.thirdPartyStorageEnabled ) {\n return false;\n }\n\n return this.imageVirtualSizeInByte > this.diskSizeInByte;\n }\n },\n\n watch: {\n 'value.type'(neu) {\n if (neu === 'cd-rom') {\n this.value['bus'] = 'sata';\n this.update();\n }\n },\n\n 'value.image'(neu) {\n this.checkImageExists(neu);\n },\n\n imagesOption() {\n this.checkImageExists(this.value.image);\n },\n\n pvcsResource: {\n handler(pvc) {\n if (pvc?.spec?.resources?.requests?.storage && this.isVirtualType) {\n const parseValue = parseSi(pvc.spec.resources.requests.storage);\n\n const formatSize = formatSi(parseValue, {\n increment: 1024,\n addSuffix: false,\n maxExponent: 3,\n minExponent: 3,\n });\n\n this.value.size = `${ formatSize }Gi`;\n }\n },\n deep: true,\n immediate: true\n },\n },\n\n methods: {\n imageOptionLabel(image) {\n let label = `${ image.metadata.namespace }/${ image.spec.displayName }`;\n\n if (this.thirdPartyStorageEnabled) {\n label += ` (${ image.imageStorageClass } / ${ image.virtualSize })`;\n }\n\n return label;\n },\n update() {\n this.value.hasDiskError = this.showDiskTooSmallError;\n this.$emit('update');\n },\n\n onImageChange() {\n const imageResource = this.$store.getters['harvester/all'](HCI.IMAGE)?.find( (I) => this.value.image === I.id);\n const isIsoImage = /iso$/i.test(imageResource?.imageSuffix);\n const imageSize = Math.max(imageResource?.status?.size, imageResource?.status?.virtualSize);\n\n if (isIsoImage) {\n this.value['type'] = 'cd-rom';\n this.value['bus'] = 'sata';\n } else {\n this.value['type'] = 'disk';\n this.value['bus'] = 'virtio';\n }\n\n if (imageSize) {\n let imageSizeGiB = Math.ceil(imageSize / 1024 / 1024 / 1024);\n\n if (!isIsoImage) {\n imageSizeGiB = Math.max(imageSizeGiB, 10);\n }\n this.value['size'] = `${ imageSizeGiB }Gi`;\n }\n\n this.update();\n },\n\n onOpen() {\n this.images = this.$store.getters['harvester/all'](HCI.IMAGE);\n },\n\n checkImageExists(imageId) {\n if (!!imageId && this.imagesOption.length > 0 && !findBy(this.imagesOption, 'value', imageId)) {\n this.$store.dispatch('growl/error', {\n title: this.$store.getters['i18n/t']('harvester.vmTemplate.tips.notExistImage.title', { name: imageId }),\n message: this.$store.getters['i18n/t']('harvester.vmTemplate.tips.notExistImage.message')\n }, { root: true });\n\n this.value['image'] = '';\n }\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hevi-name\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.name')\"\n :value=\"value.name\"\n :mode=\"mode\"\n >\n <LabeledInput\n v-model:value=\"value.name\"\n :label=\"t('harvester.fields.name')\"\n required\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n\n <div\n data-testid=\"input-hevi-type\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.type')\"\n :value=\"value.type\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.type\"\n :label=\"t('harvester.fields.type')\"\n :options=\"VOLUME_TYPE\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hevi-image\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.image')\"\n :value=\"imageName\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.image\"\n :disabled=\"idx === 0 && !isCreate && !value.newCreateId && isVirtualType\"\n :label=\"t('harvester.fields.image')\"\n :options=\"imagesOption\"\n :mode=\"mode\"\n :searchable=\"true\"\n :required=\"validateRequired\"\n @update:value=\"onImageChange\"\n />\n </InputOrDisplay>\n </div>\n\n <div\n data-testid=\"input-hevi-size\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.size')\"\n :value=\"value.size\"\n :mode=\"mode\"\n >\n <UnitInput\n v-model:value=\"value.size\"\n :output-modifier=\"true\"\n :increment=\"1024\"\n :input-exponent=\"3\"\n :label=\"t('harvester.fields.size')\"\n :mode=\"mode\"\n :required=\"validateRequired\"\n :disable=\"isLonghornV2\"\n suffix=\"GiB\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hevi-bus\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.volume.bus')\"\n :value=\"value.bus\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.bus\"\n :label=\"t('harvester.virtualMachine.volume.bus')\"\n :mode=\"mode\"\n :options=\"InterfaceOption\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n <div\n v-if=\"value.volumeEncryptionFeatureEnabled && isView\"\n class=\"col span-3\"\n >\n <LabelValue\n :name=\"t('harvester.virtualMachine.volume.encryption')\"\n :value=\"encryptionValue\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <div\n v-if=\"value.volumeBackups && isView\"\n class=\"col span-3\"\n >\n <LabelValue\n :name=\"t('harvester.virtualMachine.volume.readyToUse')\"\n :value=\"readyToUse\"\n />\n </div>\n </div>\n <Banner\n v-if=\"value.volumeBackups && value.volumeBackups.error && value.volumeBackups.error.message\"\n color=\"error\"\n class=\"mb-20\"\n :label=\"value.volumeBackups.error.message\"\n />\n <Banner\n v-if=\"!isView && showDiskTooSmallError\"\n color=\"error\"\n :label=\"t('harvester.virtualMachine.volume.vmImageVolumeTip', {diskSize: diskSize, imageVirtualSize: imageVirtualSize})\"\n />\n </div>\n</template>\n","import { render } from \"./vmImage.vue?vue&type=template&id=1edcb721\"\nimport script from \"./vmImage.vue?vue&type=script&lang=js\"\nexport * from \"./vmImage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport InputOrDisplay from '@shell/components/InputOrDisplay';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { PVC, STORAGE_CLASS } from '@shell/config/types';\nimport { formatSi, parseSi } from '@shell/utils/units';\nimport { VOLUME_TYPE, InterfaceOption } from '../../../../config/harvester-map';\nimport { _VIEW } from '@shell/config/query-params';\nimport LabelValue from '@shell/components/LabelValue';\nimport { ucFirst } from '@shell/utils/string';\nimport { LVM_DRIVER } from '../../../../models/harvester/storage.k8s.io.storageclass';\nimport { DATA_ENGINE_V2 } from '../../../../models/harvester/persistentvolumeclaim';\n\nexport default {\n name: 'HarvesterEditVolume',\n\n emits: ['update'],\n\n components: {\n InputOrDisplay, Loading, LabeledInput, LabeledSelect, UnitInput, LabelValue\n },\n\n props: {\n mode: {\n type: String,\n default: 'create'\n },\n\n isEdit: {\n type: Boolean,\n default: false\n },\n\n namespace: {\n type: String,\n default: null\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n validateRequired: {\n type: Boolean,\n required: true\n },\n\n isVirtualType: {\n type: Boolean,\n default: true\n }\n },\n\n data() {\n return {\n VOLUME_TYPE,\n InterfaceOption,\n loading: false,\n };\n },\n\n computed: {\n longhornV2LVMSupport() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('longhornV2LVMSupport');\n },\n\n encryptionValue() {\n return ucFirst(String(this.value.isEncrypted));\n },\n\n readyToUse() {\n const val = String(this.value.volumeBackups?.readyToUse || false);\n\n return ucFirst(val);\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n pvcsResource() {\n const allPVCs = this.$store.getters['harvester/all'](PVC) || [];\n\n return allPVCs.find((P) => P.id === `${ this.namespace }/${ this.value.volumeName }`);\n },\n\n isDisabled() {\n return !this.value.newCreateId && this.isEdit && this.isVirtualType;\n },\n\n storageClasses() {\n return this.$store.getters[`harvester/all`](STORAGE_CLASS) || [];\n },\n\n storageClassOptions() {\n return this.storageClasses.filter((s) => !s.parameters?.backingImage).map((s) => {\n const label = s.isDefault ? `${ s.name } (${ this.t('generic.default') })` : s.name;\n\n return {\n label,\n value: s.name,\n };\n }) || [];\n },\n\n isLonghornV2() {\n return this.value.pvc?.isLonghornV2 || this.value.pvc?.storageClass?.isLonghornV2;\n }\n },\n\n watch: {\n 'value.storageClassName': {\n immediate: true,\n handler(neu) {\n this.value.accessMode = this.getAccessMode(neu);\n }\n },\n\n 'value.type'(neu) {\n if (neu === 'cd-rom') {\n this.value['bus'] = 'sata';\n this.update();\n }\n },\n\n pvcsResource: {\n handler(pvc) {\n if (pvc?.spec?.resources?.requests?.storage) {\n const parseValue = parseSi(pvc.spec.resources.requests.storage);\n\n const formatSize = formatSi(parseValue, {\n increment: 1024,\n addSuffix: false,\n maxExponent: 3,\n minExponent: 3,\n });\n\n this.value.size = `${ formatSize }Gi`;\n }\n },\n deep: true,\n immediate: true\n },\n },\n\n methods: {\n getAccessMode(storageClassName) {\n if (!this.longhornV2LVMSupport) {\n return 'ReadWriteMany';\n }\n\n const storageClass = this.storageClasses.find((sc) => sc.name === storageClassName);\n\n let readWriteOnce = this.value.pvc?.isLvm || this.value.pvc?.isLonghornV2;\n\n if (storageClass) {\n readWriteOnce = storageClass.provisioner === LVM_DRIVER || storageClass.parameters?.dataEngine === DATA_ENGINE_V2;\n }\n\n return readWriteOnce ? 'ReadWriteOnce' : 'ReadWriteMany';\n },\n\n update() {\n this.$emit('update');\n },\n },\n};\n</script>\n\n<template>\n <div>\n <Loading\n mode=\"relative\"\n :loading=\"loading\"\n />\n <div class=\"row mb-20\">\n <div\n class=\"col span-6\"\n data-testid=\"input-hev-name\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.name')\"\n :value=\"value.name\"\n :mode=\"mode\"\n >\n <LabeledInput\n v-model:value=\"value.name\"\n :label=\"t('harvester.fields.name')\"\n :mode=\"mode\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n\n <div\n class=\"col span-6\"\n data-testid=\"input-hev-type\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.type')\"\n :value=\"value.type\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.type\"\n :label=\"t('harvester.fields.type')\"\n :options=\"VOLUME_TYPE\"\n required\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hav-storage\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.storage.storageClass.label')\"\n :value=\"value.storageClassName\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.storageClassName\"\n :options=\"storageClassOptions\"\n :label=\"t('harvester.storage.storageClass.label')\"\n :mode=\"mode\"\n :disabled=\"isDisabled\"\n :required=\"validateRequired\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n <div\n class=\"col span-6\"\n data-testid=\"input-hev-size\"\n >\n <InputOrDisplay\n :name=\"t('harvester.fields.size')\"\n :value=\"value.size\"\n :mode=\"mode\"\n >\n <UnitInput\n v-model:value=\"value.size\"\n :output-modifier=\"true\"\n :increment=\"1024\"\n :input-exponent=\"3\"\n :mode=\"mode\"\n :required=\"validateRequired\"\n :label=\"t('harvester.fields.size')\"\n :disabled=\"isLonghornV2\"\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n </div>\n <div class=\"row mb-20\">\n <div\n data-testid=\"input-hev-bus\"\n class=\"col span-6\"\n >\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.volume.bus')\"\n :value=\"value.bus\"\n :mode=\"mode\"\n >\n <LabeledSelect\n v-model:value=\"value.bus\"\n :label=\"t('harvester.virtualMachine.volume.bus')\"\n :mode=\"mode\"\n :options=\"InterfaceOption\"\n required\n @update:value=\"update\"\n />\n </InputOrDisplay>\n </div>\n <div\n v-if=\"value.volumeEncryptionFeatureEnabled && isView\"\n class=\"col span-6\"\n >\n <LabelValue\n :name=\"t('harvester.virtualMachine.volume.encryption')\"\n :value=\"encryptionValue\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <div\n v-if=\"value.volumeBackups && isView\"\n class=\"col span-3\"\n >\n <LabelValue\n :name=\"t('harvester.virtualMachine.volume.readyToUse')\"\n :value=\"readyToUse\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./volume.vue?vue&type=template&id=4f13dbfd\"\nimport script from \"./volume.vue?vue&type=script&lang=js\"\nexport * from \"./volume.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vm__credentials-users .hasUsers.labeled-select.edit.taggable .labeled-tooltip .icon.status-icon{top:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".volume-source[data-v-61977bc4]{position:relative}.remove-vol[data-v-61977bc4]{position:absolute;top:10px;right:10px;padding:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".action[data-v-7d19b7bd]{display:flex;flex-direction:row-reverse}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-1613a356] .resource-yaml{flex:1;display:flex;flex-direction:column}[data-v-1613a356] .resource-yaml .yaml-editor{flex:1;min-height:200px}[data-v-1613a356] .resource-yaml .yaml-editor .code-mirror .CodeMirror{min-height:200px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".yaml[data-v-2d3a6d84]{height:350px;overflow:auto}[data-v-2d3a6d84] .resource-yaml{flex:1;display:flex;flex-direction:column}[data-v-2d3a6d84] .resource-yaml .yaml-editor{flex:1;min-height:350px}[data-v-2d3a6d84] .resource-yaml .yaml-editor .code-mirror .CodeMirror{min-height:350px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".infoBox[data-v-697c87ca]{position:relative}.remove-vol[data-v-697c87ca]{position:absolute;top:10px;right:16px;padding:0;max-height:28px;min-height:28px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".box[data-v-73008bf1]{position:relative}.title[data-v-73008bf1]{display:flex}.title .state[data-v-73008bf1]{font-size:16px}.remove[data-v-73008bf1]{position:absolute;top:10px;right:10px;padding:0}.bootOrder[data-v-73008bf1]{display:flex;align-items:center}.buttons[data-v-73008bf1]{width:100%;display:flex;justify-content:flex-end}.volume-status[data-v-73008bf1]:first-letter{text-transform:uppercase}.resource-external[data-v-73008bf1]{display:flex;justify-content:center;align-items:center}.banner[data-v-73008bf1]{margin:10px 0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { findBy, isArray } from '@shell/utils/array';\n\nexport default {\n computed: {\n conditions() {\n return this.value?.conditions || [];\n },\n\n readyCondition() {\n if (isArray(this.conditions)) {\n return findBy(this.conditions, 'type', 'Ready') || {};\n } else {\n return this.conditions.Ready;\n }\n },\n\n schedulableCondition() {\n if (isArray(this.conditions)) {\n return findBy(this.conditions, 'type', 'Schedulable') || {};\n } else {\n return this.conditions.Schedulable;\n }\n },\n },\n};\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./AccessCredentialsUsers.vue?vue&type=style&index=0&id=a9540abc&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"32886c2c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=61977bc4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9e59092a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./basicAuth.vue?vue&type=style&index=0&id=7d19b7bd&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"05d24086\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./DataTemplate.vue?vue&type=style&index=0&id=1613a356&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"df2188a2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=2d3a6d84&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5e97709f\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=697c87ca&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6b7d4a78\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=73008bf1&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"de67123e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","_createElementBlock","_createVNode","_component_LabeledSelect","value","$data","spec","run","_cache","$event","label","_ctx","t","options","ksmtunedRunOption","mode","$props","required","$options","showKsmt","_Fragment","key","_component_UnitInput","thresCoef","valueModifiers","number","suffix","delay","_component_Checkbox","enableMergeAcrossNodes","type","_createElementVNode","_component_t","k","raw","url","ksmtunedLink","_component_RadioGroup","name","ksmtunedMode","isCustomizedMode","_hoisted_1","_hoisted_2","_component_LabeledInput","ksmtunedParameters","boost","tooltip","_hoisted_3","decay","_hoisted_4","_hoisted_5","minPages","_hoisted_6","maxPages","_hoisted_7","_hoisted_8","sleepMsec","_createCommentVNode","components","Checkbox","LabeledInput","LabeledSelect","RadioGroup","UnitInput","props","String","node","Object","registerBeforeHook","Function","fetch","inStore","this","$store","getters","hash","dispatch","HCI","KSTUNED","ksmtuned","find","id","mergeAcrossNodes","data","created","saveKsmtuned","computed","version","docLink","DOC","KSMTUNED_MODE","methods","save","catch","reason","title","message","root","Promise","reject","Error","__exports__","render","selectedUser","userOptions","taggable","multiple","searchable","_normalizeClass","length","onInput","update","isOpen","_createBlock","_component_ModalWithCard","randomStr","width","errors","onFinish","addUser","onClose","cancel","_withCtx","_createTextVNode","_toDisplayString","content","newUsername","onKeydown","_withKeys","_withModifiers","_","_NEW","emits","ModalWithCard","Array","default","resourceType","Boolean","disabled","toLowerCase","mapGetters","watch","neu","val","old","includes","show","$emit","clone","buttonCb","reg","test","push","hide","_component_Banner","color","_renderList","rows","row","i","_component_InfoBox","isEdit","onClick","remove","headerFor","source","_resolveDynamicComponent","componentFor","idx","onUpdate","updateNewUser","isQemuInstalled","addCredentials","ACCESS_CREDENTIALS","RESET_PWD","INJECT_SSH","Banner","InfoBox","disableCreate","toRemove","toSave","newUserOptions","_EDIT","historyUsersOptions","out","JSON","parse","template","metadata","annotations","HCI_ANNOTATIONS","DYNAMIC_SSHKEYS_USERS","unshift","from","Set","handler","deep","immediate","users","sshkeys","username","newPassword","secretName","generateSecretName","removeObject","newUser","undefined","require","userPassword","sshPublicKey","args","_component_AccessCredentialsUsers","updateUser","_component_Password","ref","Password","AccessCredentialsUsers","defaultPwdValue","_component_SSHKey","namespace","updateSSH","SSHKey","isView","viewCode","_component_YamlEditor","yamlScript","editorMode","_NONE","YamlEditor","configId","EDITOR_MODES","VIEW_CODE","EDIT_CODE","_VIEW","cloudInit","CONFIG_MAP","$refs","updateValue","refresh","yaml","_component_DataTemplate","userScript","configUserId","optionUser","onShow","onUpdateTemplateId","updateTemplateId","networkScript","configNetworkId","optionNetwork","createTypeLable","cloudTemplateName","cloudTemplate","DataTemplate","templateType","configs","config","labels","CLOUD_INIT","keyLabel","templateValue","res","$fetch","err","_component_InputOrDisplay","cupDisplay","localCpu","change","memoryDisplay","localMemory","increment","InputOrDisplay","cpu","Number","memory","isDisabled","model","modelOption","isMasquerade","networkName","updateNetworkName","allNetworkOption","typeOption","isSingle","role","toggleAdvanced","showAdvanced","_hoisted_9","macAddress","MODEL","networkOption","isPod","MANAGEMENT_NETWORK","hasManagementNetwork","newCreateId","isCreate","_CREATE","vlanNetwork","managementNetwork","masquerade","other","some","N","_component_Base","add","Base","addKeyId","nameIdx","choices","NETWORK_ATTACHMENT","filter","STORAGE_NETWORK","sortBy","map","isNotReady","generateName","rowKeyId","vol","R","hasUsed","O","checkedSsh","sshOption","sshName","publicKey","createNamespace","isAll","checkAll","schema","SSH","isCreatable","collectionMethods","x","trimNeu","trim","splitSSH","split","keyComment","createNamespaceIfNeeded","namespaces","NAMESPACE","exists","n","ns","applyDefaults","createSSHKey","sshValue","fieldName","max","resetFields","sshKeys","_component_VueDraggableNext","list","onEnd","volume","removeVolume","hotpluggable","unplugVolume","to","isVirtualType","_component_router_link","pvc","_component_BadgeStateFormatter","arbitrary","state","dev","resourceExternalLink","rel","target","href","tipsKey","volumeBackups","validateRequired","changeSort","_hoisted_10","_hoisted_11","volumeStatus","ucFirst","error","isLonghornV2","showVolumeTip","_hoisted_12","addVolume","SOURCE_TYPE","NEW","_hoisted_13","existingVolumeDisabled","ATTACH_VOLUME","IMAGE","CONTAINER","footer","_hoisted_14","deleteVolume","BadgeStateFormatter","VueDraggableNext","vm","customVolumeMode","customAccessMode","PVC","PLUGIN_DEVELOPER","DEV","VM","imageName","getImageDisplayName","image","pvcs","V","HARVESTER_PRODUCT","params","resource","VOLUME","realName","query","size","accessMode","volumeMode","volumeName","bus","storageClassName","defaultStorageClass","hasName","hasVolBackups","mainHeader","splice","displayName","storageClass","VOLUME_TYPE","container","InterfaceOption","readyToUse","_component_LabelValue","volumeOption","LabelValue","loading","allPVCs","P","imageResource","I","pvcResource","IMAGE_ID","isAvailable","isBeingUsed","forEach","GOLDEN_IMAGE","attachVM","accessModes","resources","requests","storage","onImageChange","imagesOption","disable","volumeEncryptionFeatureEnabled","encryptionValue","showDiskTooSmallError","diskSize","imageVirtualSize","images","isEncrypted","c","isReady","sort","a","b","creationTimestamp","imageOptionLabel","pvcsResource","thirdPartyStorageEnabled","selectedImage","virtualSize","replace","imageVirtualSizeInByte","Math","status","diskSizeInByte","parseSi","checkImageExists","parseValue","formatSize","formatSi","addSuffix","maxExponent","minExponent","imageStorageClass","hasDiskError","isIsoImage","imageSuffix","imageSize","imageSizeGiB","ceil","onOpen","imageId","findBy","_component_Loading","storageClassOptions","Loading","longhornV2LVMSupport","storageClasses","STORAGE_CLASS","s","parameters","backingImage","isDefault","getAccessMode","sc","readWriteOnce","isLvm","provisioner","LVM_DRIVER","dataEngine","DATA_ENGINE_V2","___CSS_LOADER_EXPORT___","module","conditions","readyCondition","isArray","Ready","schedulableCondition","Schedulable","__esModule","locals","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.934.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.934.js new file mode 100644 index 00000000..4192ac4d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.934.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[934],{14290:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return f}});var a=r(9274);const s={class:"precent-data"},o={class:"ml-10 percentage"},n={key:0,class:"mt-10"},c={class:"precent-data"},i={class:"ml-10 percentage"};function u(e,t,r,u,l,d){const m=(0,a.resolveComponent)("ConsumptionGauge");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createVNode)(m,{capacity:d.cpuTotal,used:d.reserved,units:d.cpuUnits,"resource-name":r.resourceName},{title:(0,a.withCtx)((({amountTemplateValues:t,formattedPercentage:r})=>[(0,a.createElementVNode)("span",null,(0,a.toDisplayString)(e.t("harvester.formatters.hardwareResourceGauge.reserved")),1),(0,a.createElementVNode)("span",s,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.amount",t))+" ",1),(0,a.createElementVNode)("span",o,"/ "+(0,a.toDisplayString)(r),1)])])),_:1},8,["capacity","used","units","resource-name"]),r.showUsed?((0,a.openBlock)(),(0,a.createElementBlock)("div",n,[(0,a.createVNode)(m,{capacity:d.cpuTotal,used:d.used,units:d.cpuUnits},{title:(0,a.withCtx)((({amountTemplateValues:t,formattedPercentage:r})=>[(0,a.createElementVNode)("span",null,(0,a.toDisplayString)(e.t("harvester.formatters.hardwareResourceGauge.used")),1),(0,a.createElementVNode)("span",c,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.amount",t))+" ",1),(0,a.createElementVNode)("span",i,"/ "+(0,a.toDisplayString)(r),1)])])),_:1},8,["capacity","used","units"])])):(0,a.createCommentVNode)("",!0)])}var l=r(68732),d=r(35664),m=r(95799),p={name:"HarvesterCpuUsed",components:{ConsumptionGauge:l.A},props:{value:{type:String,default:""},row:{type:Object,required:!0},resourceName:{type:String,default:""},showUsed:{type:Boolean,default:!1}},data(){return{}},computed:{metrics(){return this.$store.getters["harvester/byId"](d.$v.NODE,this.row.id)},cpuTotal(){let e=0;return this.metrics&&(e=this.metrics.cpuCapacity),e},cpuUnits(){return"C"},node(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](d.NW,this.row.id);return t},reserved(){return this.metrics?this.node.cpuReserved:0},used(){return this.metrics?(0,m.ao)(this.metrics?.usage?.cpu||"0m"):0}}},h=(r(96782),r(47433));const g=(0,h.A)(p,[["render",u],["__scopeId","data-v-6c8e8046"]]);var f=g},24423:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return f}});var a=r(9274);const s={key:0};function o(e,t,r,o,n,c){const i=(0,a.resolveComponent)("CopyToClipboardText"),u=(0,a.resolveDirective)("clean-tooltip");return c.showIP?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(c.ips,(({ip:e,name:t})=>((0,a.openBlock)(),(0,a.createElementBlock)("span",{key:e},[(0,a.withDirectives)((0,a.createVNode)(i,{text:e},null,8,["text"]),[[u,t]])])))),128))])):(0,a.createCommentVNode)("",!0)}var n=r(76978),c=r(92043),i=r(2602),u=r(38076),l=r(32766),d=r(48249),m=r(50784),p={components:{CopyToClipboardText:u.A},props:{value:{type:String,default:""},row:{type:Object,required:!0},col:{type:Object,default:()=>{}}},data(){return{inStore:"harvester"}},created(){const e=this.$store.getters["currentProduct"].inStore;this.inStore=e},computed:{ips(){return[...this.vmiIp,...this.networkAnnotationIP].filter(Boolean).sort(((e,t)=>e.ip<t.ip?-1:1))},networkAnnotationIP(){if("Running"!==this.row.actualState)return[];const e=(0,n.Jt)(this.row,`metadata.annotations."${i.r.NETWORK_IPS}"`)||"[]";try{const t=JSON.parse(e);return t.map((e=>({ip:e.replace(/\/[\d\D]*/,""),name:""})))}catch(t){return[]}},vmiIp(){const e=this.$store.getters[`${this.inStore}/all`](l.rk.VMI),t=e.find((e=>e.id===this.value))||null,r=this.row.networksName||[],a=t?.spec?.networks||[];return(t?.status?.interfaces||[]).filter((e=>(0,c.eH)(e.ipAddress)&&r.includes(e.name))).map((e=>{let t;const r=a.find((t=>t.name===e.name));return r&&r.multus?t=r.multus.networkName:r&&r.pod&&(t=d.PO),{ip:e.ipAddress,name:t}}))},showIP(){return this.row.stateDisplay!==m.OFF}}},h=r(47433);const g=(0,h.A)(p,[["render",o]]);var f=g},44599:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return f}});var a=r(9274);const s={class:"precent-data"},o={class:"ml-10 percentage"},n={key:0,class:"mt-10"},c={class:"precent-data"},i={class:"ml-10 percentage"};function u(e,t,r,u,l,d){const m=(0,a.resolveComponent)("ConsumptionGauge");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[(0,a.createVNode)(m,{capacity:d.memoryTotal,used:d.reserved,units:d.memoryUnits,"number-formatter":d.memoryFormatter,"resource-name":r.resourceName},{title:(0,a.withCtx)((({amountTemplateValues:t,formattedPercentage:r})=>[(0,a.createElementVNode)("span",null,(0,a.toDisplayString)(e.t("harvester.formatters.hardwareResourceGauge.reserved")),1),(0,a.createElementVNode)("span",s,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.amount",t))+" ",1),(0,a.createElementVNode)("span",o,"/ "+(0,a.toDisplayString)(r),1)])])),_:1},8,["capacity","used","units","number-formatter","resource-name"]),r.showUsed?((0,a.openBlock)(),(0,a.createElementBlock)("div",n,[(0,a.createVNode)(m,{capacity:d.memoryTotal,used:d.used,units:d.memoryUnits,"number-formatter":d.memoryFormatter},{title:(0,a.withCtx)((({amountTemplateValues:t,formattedPercentage:r})=>[(0,a.createElementVNode)("span",null,(0,a.toDisplayString)(e.t("harvester.formatters.hardwareResourceGauge.used")),1),(0,a.createElementVNode)("span",c,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.amount",t))+" ",1),(0,a.createElementVNode)("span",i,"/ "+(0,a.toDisplayString)(r),1)])])),_:1},8,["capacity","used","units","number-formatter"])])):(0,a.createCommentVNode)("",!0)])}var l=r(68732),d=r(35664),m=r(95799),p={name:"HarvesterMemoryUsed",components:{ConsumptionGauge:l.A},props:{value:{type:String,default:""},row:{type:Object,required:!0},resourceName:{type:String,default:""},showUsed:{type:Boolean,default:!1}},data(){return{}},computed:{metrics(){return this.$store.getters["harvester/byId"](d.$v.NODE,this.row.id)},memoryTotal(){let e=0;return this.metrics&&(e=this.metrics.memoryCapacity),e},memoryUnits(){const e=(0,m.$W)(this.memoryTotal,1024);return`${m.QN[e]}iB`},node(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](d.NW,this.row.id);return t},reserved(){return this.metrics?this.node.memoryReserved:0},used(){return this.metrics?(0,m.ao)(this.metrics?.usage?.memory||"0m",{increment:1024}):0}},methods:{memoryFormatter(e){const t=(0,m.$W)(this.memoryTotal,1024),r={addSuffix:!1,increment:1024,minExponent:t};return(0,m.Mo)(e,r)}}},h=(r(46444),r(47433));const g=(0,h.A)(p,[["render",u],["__scopeId","data-v-73bad608"]]);var f=g},91341:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return f}});var a=r(9274);const s={key:0},o={class:"precent-data"},n={class:"ml-10 percentage"},c={class:"precent-data"},i={class:"ml-10 percentage"};function u(e,t,r,u,l,d){const m=(0,a.resolveComponent)("ConsumptionGauge");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[r.showAllocated?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(m,{capacity:d.storageStats.total,used:d.storageStats.scheduled,units:d.allocatedUnits,"number-formatter":d.formatter,"resource-name":r.resourceName},{title:(0,a.withCtx)((({formattedPercentage:t})=>[(0,a.createElementVNode)("span",null,(0,a.toDisplayString)(e.t("harvester.dashboard.hardwareResourceGauge.allocated")),1),(0,a.createElementVNode)("span",o,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.amount",d.allocatedAmountTemplateValues))+" ",1),(0,a.createElementVNode)("span",n," / "+(0,a.toDisplayString)(t),1)])])),_:1},8,["capacity","used","units","number-formatter","resource-name"])])):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(m,{capacity:d.storageStats.maximum,used:d.storageStats.used,units:d.usedUnits,"number-formatter":d.formatter,"resource-name":r.showAllocated?"":r.resourceName,class:(0,a.normalizeClass)({"mt-10":r.showAllocated})},{title:(0,a.withCtx)((({formattedPercentage:t})=>[(0,a.createElementVNode)("span",null,(0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.used")),1),(0,a.createElementVNode)("span",c,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("node.detail.glance.consumptionGauge.amount",d.usedAmountTemplateValues))+" ",1),(0,a.createElementVNode)("span",i," / "+(0,a.toDisplayString)(t),1)])])),_:1},8,["capacity","used","units","number-formatter","resource-name","class"])])}var l=r(68732),d=r(35664),m=r(95799),p={name:"HarvesterStorageUsed",components:{ConsumptionGauge:l.A},props:{value:{type:String,default:""},row:{type:Object,required:!0},resourceName:{type:String,default:""},showAllocated:{type:Boolean,default:!1}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;this.longhornSettings=await this.$store.dispatch(`${e}/findAll`,{type:d.oe.SETTINGS})},data(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](d.oe.SETTINGS)||[];return{longhornSettings:t}},computed:{storageStats(){const e={used:0,scheduled:0,maximum:0,reserved:0,total:0},t=this.$store.getters["currentProduct"].inStore,r=this.$store.getters[`${t}/byId`](d.oe.NODES,`longhorn-system/${this.row.id}`)||{},a=this.longhornSettings.find((e=>"longhorn-system/storage-over-provisioning-percentage"===e.id)),s=r?.spec?.disks||{},o=r?.status?.diskStatus||{};return e.used+=r?.spec?.allowScheduling?r.used:0,Object.keys(s).map((t=>{e.scheduled+=r?.spec?.allowScheduling&&o[t]?.storageScheduled||0,e.reserved+=s[t]?.storageReserved||0})),Object.values(o).map((t=>{e.maximum+=t?.storageMaximum||0})),e.total=(e.maximum-e.reserved)*Number(a?.value??0)/100,e},allocatedUnits(){const e=(0,m.$W)(this.storageStats.total,1024);return`${m.QN[e]}iB`},usedUnits(){const e=(0,m.$W)(this.storageStats.maximum,1024);return`${m.QN[e]}iB`},formatUsed(){let e=this.formatter(this.storageStats.used);return!Number.parseFloat(e)>0&&(e=this.formatter(this.storageStats.used,{canRoundToZero:!0})),e},formatAllocated(){let e=this.formatter(this.storageStats.scheduled);return!Number.parseFloat(e)>0&&(e=this.formatter(this.storageStats.scheduled,{canRoundToZero:!0})),e},usedAmountTemplateValues(){return{used:this.formatUsed,total:this.formatter(this.storageStats.maximum),unit:this.usedUnits}},allocatedAmountTemplateValues(){return{used:this.formatAllocated,total:this.formatter(this.storageStats.total),unit:this.allocatedUnits}}},methods:{formatter(e,t){const r=(0,m.$W)(this.storageStats.maximum,1024),a={addSuffix:!1,increment:1024,minExponent:r};return(0,m.Mo)(e,{...a,...t})}}},h=(r(39070),r(47433));const g=(0,h.A)(p,[["render",u],["__scopeId","data-v-b8df5fb6"]]);var f=g},61678:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),c=n()(s());c.push([e.id,".precent-data[data-v-6c8e8046]{white-space:nowrap}",""]),t["default"]=c},65196:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),c=n()(s());c.push([e.id,".precent-data[data-v-73bad608]{white-space:nowrap}",""]),t["default"]=c},33822:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),c=n()(s());c.push([e.id,".precent-data[data-v-b8df5fb6]{white-space:nowrap}",""]),t["default"]=c},96782:function(e,t,r){var a=r(61678);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("912be7e2",a,!0,{sourceMap:!1,shadowMode:!1})},46444:function(e,t,r){var a=r(65196);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("775e73e2",a,!0,{sourceMap:!1,shadowMode:!1})},39070:function(e,t,r){var a=r(33822);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("37c2fa98",a,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.934.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.934.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.934.js.map new file mode 100644 index 00000000..579d2d69 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.934.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.934.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./formatters/HarvesterCPUUsed.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterCPUUsed.vue?97e2","webpack://harvester-1.5.0-dev/./formatters/HarvesterIpAddress.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterIpAddress.vue?103e","webpack://harvester-1.5.0-dev/./formatters/HarvesterMemoryUsed.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterMemoryUsed.vue?38ed","webpack://harvester-1.5.0-dev/./formatters/HarvesterStorageUsed.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterStorageUsed.vue?351c","webpack://harvester-1.5.0-dev/./formatters/HarvesterCPUUsed.vue?9c2d","webpack://harvester-1.5.0-dev/./formatters/HarvesterMemoryUsed.vue?ce41","webpack://harvester-1.5.0-dev/./formatters/HarvesterStorageUsed.vue?21ed","webpack://harvester-1.5.0-dev/./formatters/HarvesterCPUUsed.vue?c942","webpack://harvester-1.5.0-dev/./formatters/HarvesterMemoryUsed.vue?e517","webpack://harvester-1.5.0-dev/./formatters/HarvesterStorageUsed.vue?c56a"],"sourcesContent":["<script>\nimport ConsumptionGauge from '@shell/components/ConsumptionGauge';\nimport { METRIC, NODE } from '@shell/config/types';\nimport { parseSi } from '@shell/utils/units';\n\nexport default {\n name: 'HarvesterCpuUsed',\n components: { ConsumptionGauge },\n\n props: {\n value: {\n type: String,\n default: ''\n },\n\n row: {\n type: Object,\n required: true\n },\n\n resourceName: {\n type: String,\n default: ''\n },\n\n showUsed: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {};\n },\n\n computed: {\n metrics() {\n return this.$store.getters['harvester/byId'](METRIC.NODE, this.row.id);\n },\n\n cpuTotal() {\n let out = 0;\n\n if (this.metrics) {\n out = this.metrics.cpuCapacity;\n }\n\n return out;\n },\n\n cpuUnits() {\n return 'C';\n },\n\n node() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const node = this.$store.getters[`${ inStore }/byId`](NODE, this.row.id);\n\n return node;\n },\n\n reserved() {\n if (this.metrics) {\n return this.node.cpuReserved;\n } else {\n return 0;\n }\n },\n\n used() {\n if (this.metrics) {\n return parseSi(this.metrics?.usage?.cpu || '0m');\n } else {\n return 0;\n }\n },\n }\n};\n</script>\n\n<template>\n <div>\n <ConsumptionGauge\n :capacity=\"cpuTotal\"\n :used=\"reserved\"\n :units=\"cpuUnits\"\n :resource-name=\"resourceName\"\n >\n <template #title=\"{amountTemplateValues, formattedPercentage}\">\n <span>\n {{ t('harvester.formatters.hardwareResourceGauge.reserved') }}\n </span>\n <span class=\"precent-data\">\n {{ t('node.detail.glance.consumptionGauge.amount', amountTemplateValues) }}\n <span class=\"ml-10 percentage\">/ {{ formattedPercentage }}\n </span>\n </span>\n </template>\n </ConsumptionGauge>\n <div\n v-if=\"showUsed\"\n class=\"mt-10\"\n >\n <ConsumptionGauge\n :capacity=\"cpuTotal\"\n :used=\"used\"\n :units=\"cpuUnits\"\n >\n <template #title=\"{amountTemplateValues, formattedPercentage}\">\n <span>\n {{ t('harvester.formatters.hardwareResourceGauge.used') }}\n </span>\n <span class=\"precent-data\">\n {{ t('node.detail.glance.consumptionGauge.amount', amountTemplateValues) }}\n <span class=\"ml-10 percentage\">/ {{ formattedPercentage }}\n </span>\n </span>\n </template>\n </ConsumptionGauge>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.precent-data {\n white-space: nowrap;\n}\n</style>\n","import { render } from \"./HarvesterCPUUsed.vue?vue&type=template&id=6c8e8046&scoped=true\"\nimport script from \"./HarvesterCPUUsed.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterCPUUsed.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterCPUUsed.vue?vue&type=style&index=0&id=6c8e8046&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6c8e8046\"]])\n\nexport default __exports__","<script>\nimport { get } from '@shell/utils/object';\nimport { isIpv4 } from '@shell/utils/string';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport CopyToClipboardText from '@shell/components/CopyToClipboardText';\nimport { HCI } from '../types';\nimport { MANAGEMENT_NETWORK } from '../mixins/harvester-vm';\nimport { OFF } from '../models/kubevirt.io.virtualmachine';\n\nexport default {\n components: { CopyToClipboardText },\n props: {\n value: {\n type: String,\n default: ''\n },\n row: {\n type: Object,\n required: true\n },\n col: {\n type: Object,\n default: () => {}\n }\n },\n\n data() {\n return { inStore: 'harvester' };\n },\n\n created() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.inStore = inStore;\n },\n\n computed: {\n // Return VM instance IP and VM annotation IP\n ips() {\n return [...this.vmiIp, ...this.networkAnnotationIP]\n .filter(Boolean)\n .sort((a, b) => a.ip < b.ip ? -1 : 1);\n },\n\n networkAnnotationIP() {\n if (this.row.actualState !== 'Running') { // TODO: Running\n return [];\n }\n\n const annotationIp = get(this.row, `metadata.annotations.\"${ HCI_ANNOTATIONS.NETWORK_IPS }\"`) || '[]';\n\n // Obtain IP from VM annotation, remove the CIDR suffix number if CIDR Exist\n try {\n const out = JSON.parse(annotationIp);\n\n return out.map( (ip) => ({\n ip: ip.replace(/\\/[\\d\\D]*/, ''),\n name: ''\n }));\n } catch (e) {\n return [];\n }\n },\n\n vmiIp() {\n const vmiResources = this.$store.getters[`${ this.inStore }/all`](HCI.VMI);\n const resource = vmiResources.find((VMI) => VMI.id === this.value) || null;\n const networksName = this.row.networksName || [];\n const vmiNetworks = resource?.spec?.networks || [];\n\n return (resource?.status?.interfaces || []).filter((intf) => {\n return isIpv4(intf.ipAddress) && networksName.includes(intf.name);\n }).map((intf) => {\n let name;\n const network = vmiNetworks.find((network) => network.name === intf.name);\n\n if (network && network.multus) {\n name = network.multus.networkName;\n } else if (network && network.pod) {\n name = MANAGEMENT_NETWORK;\n }\n\n return {\n ip: intf.ipAddress,\n name\n };\n });\n },\n\n showIP() {\n return this.row.stateDisplay !== OFF;\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"showIP\">\n <span\n v-for=\"{ip, name} in ips\"\n :key=\"ip\"\n >\n <CopyToClipboardText\n v-clean-tooltip=\"name\"\n :text=\"ip\"\n />\n </span>\n </div>\n</template>\n","import { render } from \"./HarvesterIpAddress.vue?vue&type=template&id=606b8e13\"\nimport script from \"./HarvesterIpAddress.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterIpAddress.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ConsumptionGauge from '@shell/components/ConsumptionGauge';\nimport { METRIC, NODE } from '@shell/config/types';\nimport { formatSi, exponentNeeded, UNITS, parseSi } from '@shell/utils/units';\n\nexport default {\n name: 'HarvesterMemoryUsed',\n components: { ConsumptionGauge },\n\n props: {\n value: {\n type: String,\n default: ''\n },\n\n row: {\n type: Object,\n required: true\n },\n\n resourceName: {\n type: String,\n default: ''\n },\n\n showUsed: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {};\n },\n\n computed: {\n metrics() {\n return this.$store.getters['harvester/byId'](METRIC.NODE, this.row.id);\n },\n\n memoryTotal() {\n let out = 0;\n\n if (this.metrics) {\n out = this.metrics.memoryCapacity;\n }\n\n return out;\n },\n\n memoryUnits() {\n const exponent = exponentNeeded(this.memoryTotal, 1024);\n\n return `${ UNITS[exponent] }iB`;\n },\n\n node() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const node = this.$store.getters[`${ inStore }/byId`](NODE, this.row.id);\n\n return node;\n },\n\n reserved() {\n if (this.metrics) {\n return this.node.memoryReserved;\n } else {\n return 0;\n }\n },\n\n used() {\n if (this.metrics) {\n return parseSi(this.metrics?.usage?.memory || '0m', { increment: 1024 });\n } else {\n return 0;\n }\n },\n },\n\n methods: {\n memoryFormatter(value) {\n const exponent = exponentNeeded(this.memoryTotal, 1024);\n\n const formatOptions = {\n addSuffix: false,\n increment: 1024,\n minExponent: exponent\n };\n\n return formatSi(value, formatOptions);\n },\n }\n};\n</script>\n\n<template>\n <div>\n <ConsumptionGauge\n :capacity=\"memoryTotal\"\n :used=\"reserved\"\n :units=\"memoryUnits\"\n :number-formatter=\"memoryFormatter\"\n :resource-name=\"resourceName\"\n >\n <template #title=\"{amountTemplateValues, formattedPercentage}\">\n <span>\n {{ t('harvester.formatters.hardwareResourceGauge.reserved') }}\n </span>\n <span class=\"precent-data\">\n {{ t('node.detail.glance.consumptionGauge.amount', amountTemplateValues) }}\n <span class=\"ml-10 percentage\">/ {{ formattedPercentage }}\n </span>\n </span>\n </template>\n </ConsumptionGauge>\n <div\n v-if=\"showUsed\"\n class=\"mt-10\"\n >\n <ConsumptionGauge\n :capacity=\"memoryTotal\"\n :used=\"used\"\n :units=\"memoryUnits\"\n :number-formatter=\"memoryFormatter\"\n >\n <template #title=\"{amountTemplateValues, formattedPercentage}\">\n <span>\n {{ t('harvester.formatters.hardwareResourceGauge.used') }}\n </span>\n <span class=\"precent-data\">\n {{ t('node.detail.glance.consumptionGauge.amount', amountTemplateValues) }}\n <span class=\"ml-10 percentage\">/ {{ formattedPercentage }}\n </span>\n </span>\n </template>\n </ConsumptionGauge>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.precent-data {\n white-space: nowrap;\n}\n</style>\n","import { render } from \"./HarvesterMemoryUsed.vue?vue&type=template&id=73bad608&scoped=true\"\nimport script from \"./HarvesterMemoryUsed.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterMemoryUsed.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterMemoryUsed.vue?vue&type=style&index=0&id=73bad608&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-73bad608\"]])\n\nexport default __exports__","<script>\nimport ConsumptionGauge from '@shell/components/ConsumptionGauge';\nimport { LONGHORN } from '@shell/config/types';\nimport { formatSi, exponentNeeded, UNITS } from '@shell/utils/units';\n\nexport default {\n name: 'HarvesterStorageUsed',\n components: { ConsumptionGauge },\n\n props: {\n value: {\n type: String,\n default: ''\n },\n\n row: {\n type: Object,\n required: true\n },\n\n resourceName: {\n type: String,\n default: ''\n },\n\n showAllocated: {\n type: Boolean,\n default: false,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.longhornSettings = await this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.SETTINGS });\n },\n\n data() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const longhornSettings = this.$store.getters[`${ inStore }/all`](LONGHORN.SETTINGS) || [];\n\n return { longhornSettings };\n },\n\n computed: {\n storageStats() {\n const stats = {\n used: 0,\n scheduled: 0,\n maximum: 0,\n reserved: 0,\n total: 0\n };\n const inStore = this.$store.getters['currentProduct'].inStore;\n const node = this.$store.getters[`${ inStore }/byId`](LONGHORN.NODES, `longhorn-system/${ this.row.id }`) || {};\n const storageOverProvisioningPercentageSetting = this.longhornSettings.find((s) => s.id === 'longhorn-system/storage-over-provisioning-percentage');\n const disks = node?.spec?.disks || {};\n const diskStatus = node?.status?.diskStatus || {};\n\n stats.used += node?.spec?.allowScheduling ? node.used : 0;\n\n Object.keys(disks).map((key) => {\n stats.scheduled += node?.spec?.allowScheduling ? (diskStatus[key]?.storageScheduled || 0) : 0;\n stats.reserved += disks[key]?.storageReserved || 0;\n });\n Object.values(diskStatus).map((diskStat) => {\n stats.maximum += diskStat?.storageMaximum || 0;\n });\n\n stats.total = ((stats.maximum - stats.reserved) * Number(storageOverProvisioningPercentageSetting?.value ?? 0)) / 100;\n\n return stats;\n },\n\n allocatedUnits() {\n const exponent = exponentNeeded(this.storageStats.total, 1024);\n\n return `${ UNITS[exponent] }iB`;\n },\n\n usedUnits() {\n const exponent = exponentNeeded(this.storageStats.maximum, 1024);\n\n return `${ UNITS[exponent] }iB`;\n },\n\n formatUsed() {\n let out = this.formatter(this.storageStats.used);\n\n if (!Number.parseFloat(out) > 0) {\n out = this.formatter(this.storageStats.used, { canRoundToZero: true });\n }\n\n return out;\n },\n\n formatAllocated() {\n let out = this.formatter(this.storageStats.scheduled);\n\n if (!Number.parseFloat(out) > 0) {\n out = this.formatter(this.storageStats.scheduled, { canRoundToZero: true });\n }\n\n return out;\n },\n\n usedAmountTemplateValues() {\n return {\n used: this.formatUsed,\n total: this.formatter(this.storageStats.maximum),\n unit: this.usedUnits,\n };\n },\n\n allocatedAmountTemplateValues() {\n return {\n used: this.formatAllocated,\n total: this.formatter(this.storageStats.total),\n unit: this.allocatedUnits,\n };\n },\n },\n\n methods: {\n formatter(value, format) {\n const minExponent = exponentNeeded(this.storageStats.maximum, 1024);\n const formatOptions = {\n addSuffix: false,\n increment: 1024,\n minExponent,\n };\n\n return formatSi(value, {\n ...formatOptions,\n ...format,\n });\n },\n }\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"showAllocated\"\n >\n <ConsumptionGauge\n :capacity=\"storageStats.total\"\n :used=\"storageStats.scheduled\"\n :units=\"allocatedUnits\"\n :number-formatter=\"formatter\"\n :resource-name=\"resourceName\"\n >\n <template #title=\"{formattedPercentage}\">\n <span>\n {{ t('harvester.dashboard.hardwareResourceGauge.allocated') }}\n </span>\n <span class=\"precent-data\">\n {{ t('node.detail.glance.consumptionGauge.amount', allocatedAmountTemplateValues) }}\n <span class=\"ml-10 percentage\">\n / {{ formattedPercentage }}\n </span>\n </span>\n </template>\n </ConsumptionGauge>\n </div>\n <ConsumptionGauge\n :capacity=\"storageStats.maximum\"\n :used=\"storageStats.used\"\n :units=\"usedUnits\"\n :number-formatter=\"formatter\"\n :resource-name=\"showAllocated ? '' : resourceName\"\n :class=\"{\n 'mt-10': showAllocated,\n }\"\n >\n <template #title=\"{formattedPercentage}\">\n <span>\n {{ t('node.detail.glance.consumptionGauge.used') }}\n </span>\n <span class=\"precent-data\">\n {{ t('node.detail.glance.consumptionGauge.amount', usedAmountTemplateValues) }}\n <span class=\"ml-10 percentage\">\n / {{ formattedPercentage }}\n </span>\n </span>\n </template>\n </ConsumptionGauge>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.precent-data {\n white-space: nowrap;\n}\n</style>\n","import { render } from \"./HarvesterStorageUsed.vue?vue&type=template&id=b8df5fb6&scoped=true\"\nimport script from \"./HarvesterStorageUsed.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterStorageUsed.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterStorageUsed.vue?vue&type=style&index=0&id=b8df5fb6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b8df5fb6\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".precent-data[data-v-6c8e8046]{white-space:nowrap}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".precent-data[data-v-73bad608]{white-space:nowrap}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".precent-data[data-v-b8df5fb6]{white-space:nowrap}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterCPUUsed.vue?vue&type=style&index=0&id=6c8e8046&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"912be7e2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterMemoryUsed.vue?vue&type=style&index=0&id=73bad608&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"775e73e2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterStorageUsed.vue?vue&type=style&index=0&id=b8df5fb6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"37c2fa98\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","key","_createElementBlock","_createVNode","_component_ConsumptionGauge","capacity","$options","cpuTotal","used","reserved","units","cpuUnits","$props","resourceName","title","_withCtx","amountTemplateValues","formattedPercentage","_createElementVNode","_toDisplayString","_ctx","t","_hoisted_1","_createTextVNode","_hoisted_2","_","showUsed","_hoisted_3","_hoisted_4","_hoisted_5","_createCommentVNode","name","components","ConsumptionGauge","props","value","type","String","default","row","Object","required","Boolean","data","computed","metrics","this","$store","getters","METRIC","NODE","id","out","cpuCapacity","node","inStore","cpuReserved","parseSi","usage","cpu","__exports__","render","showIP","_Fragment","_renderList","ips","ip","_component_CopyToClipboardText","text","CopyToClipboardText","col","created","vmiIp","networkAnnotationIP","filter","sort","a","b","actualState","annotationIp","get","HCI_ANNOTATIONS","NETWORK_IPS","JSON","parse","map","replace","e","vmiResources","HCI","VMI","resource","find","networksName","vmiNetworks","spec","networks","status","interfaces","intf","isIpv4","ipAddress","includes","network","multus","networkName","pod","MANAGEMENT_NETWORK","stateDisplay","OFF","memoryTotal","memoryUnits","memoryFormatter","memoryCapacity","exponent","exponentNeeded","UNITS","memoryReserved","memory","increment","methods","formatOptions","addSuffix","minExponent","formatSi","showAllocated","storageStats","total","scheduled","allocatedUnits","formatter","allocatedAmountTemplateValues","maximum","usedUnits","_normalizeClass","usedAmountTemplateValues","fetch","longhornSettings","dispatch","LONGHORN","SETTINGS","stats","NODES","storageOverProvisioningPercentageSetting","s","disks","diskStatus","allowScheduling","keys","storageScheduled","storageReserved","values","diskStat","storageMaximum","Number","formatUsed","parseFloat","canRoundToZero","formatAllocated","unit","format","___CSS_LOADER_EXPORT___","push","module","content","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.csv.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.csv.js new file mode 100644 index 00000000..5fb6b4ce --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.csv.js @@ -0,0 +1,8 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[829],{41880:function(e,t){var i,r,n; +/* @license +Papa Parse +v5.3.0 +https://github.com/mholt/PapaParse +License: MIT +*/!function(s,a){r=[],i=a,n="function"===typeof i?i.apply(t,r):i,void 0===n||(e.exports=n)}(0,(function e(){"use strict";var t="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{},i=!t.document&&!!t.postMessage,r=i&&/blob:/i.test((t.location||{}).protocol),n={},s=0,a={parse:function(i,r){var o=(r=r||{}).dynamicTyping||!1;if(b(o)&&(r.dynamicTypingFunction=o,o={}),r.dynamicTyping=o,r.transform=!!b(r.transform)&&r.transform,r.worker&&a.WORKERS_SUPPORTED){var h=function(){if(!a.WORKERS_SUPPORTED)return!1;var i,r,o=(i=t.URL||t.webkitURL||null,r=e.toString(),a.BLOB_URL||(a.BLOB_URL=i.createObjectURL(new Blob(["(",r,")();"],{type:"text/javascript"})))),h=new t.Worker(o);return h.onmessage=g,h.id=s++,n[h.id]=h}();return h.userStep=r.step,h.userChunk=r.chunk,h.userComplete=r.complete,h.userError=r.error,r.step=b(r.step),r.chunk=b(r.chunk),r.complete=b(r.complete),r.error=b(r.error),delete r.worker,void h.postMessage({input:i,config:r,workerId:h.id})}var c=null;return a.NODE_STREAM_INPUT,"string"==typeof i?c=r.download?new u(r):new d(r):!0===i.readable&&b(i.read)&&b(i.on)?c=new l(r):(t.File&&i instanceof File||i instanceof Object)&&(c=new f(r)),c.stream(i)},unparse:function(e,t){var i=!1,r=!0,n=",",s="\r\n",o='"',h=o+o,u=!1,f=null,d=!1;!function(){if("object"==typeof t){if("string"!=typeof t.delimiter||a.BAD_DELIMITERS.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(n=t.delimiter),("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(i=t.quotes),"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(u=t.skipEmptyLines),"string"==typeof t.newline&&(s=t.newline),"string"==typeof t.quoteChar&&(o=t.quoteChar),"boolean"==typeof t.header&&(r=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");f=t.columns}void 0!==t.escapeChar&&(h=t.escapeChar+o),"boolean"==typeof t.escapeFormulae&&(d=t.escapeFormulae)}}();var l=new RegExp(p(o),"g");if("string"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return _(null,e,u);if("object"==typeof e[0])return _(f||c(e[0]),e,u)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:c(e.data[0])),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),_(e.fields||[],e.data||[],u);throw new Error("Unable to serialize unrecognized input");function c(e){if("object"!=typeof e)return[];var t=[];for(var i in e)t.push(i);return t}function _(e,t,i){var a="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var o=Array.isArray(e)&&0<e.length,h=!Array.isArray(t[0]);if(o&&r){for(var u=0;u<e.length;u++)0<u&&(a+=n),a+=g(e[u],u);0<t.length&&(a+=s)}for(var f=0;f<t.length;f++){var d=o?e.length:t[f].length,l=!1,c=o?0===Object.keys(t[f]).length:0===t[f].length;if(i&&!o&&(l="greedy"===i?""===t[f].join("").trim():1===t[f].length&&0===t[f][0].length),"greedy"===i&&o){for(var p=[],_=0;_<d;_++){var m=h?e[_]:_;p.push(t[f][m])}l=""===p.join("").trim()}if(!l){for(var v=0;v<d;v++){0<v&&!c&&(a+=n);var y=o&&h?e[v]:v;a+=g(t[f][y],v)}f<t.length-1&&(!i||0<d&&!c)&&(a+=s)}}return a}function g(e,t){if(null==e)return"";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);!0===d&&"string"==typeof e&&null!==e.match(/^[=+\-@].*$/)&&(e="'"+e);var r=e.toString().replace(l,h),s="boolean"==typeof i&&i||"function"==typeof i&&i(e,t)||Array.isArray(i)&&i[t]||function(e,t){for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1}(r,a.BAD_DELIMITERS)||-1<r.indexOf(n)||" "===r.charAt(0)||" "===r.charAt(r.length-1);return s?o+r+o:r}}};if(a.RECORD_SEP=String.fromCharCode(30),a.UNIT_SEP=String.fromCharCode(31),a.BYTE_ORDER_MARK="\ufeff",a.BAD_DELIMITERS=["\r","\n",'"',a.BYTE_ORDER_MARK],a.WORKERS_SUPPORTED=!i&&!!t.Worker,a.NODE_STREAM_INPUT=1,a.LocalChunkSize=10485760,a.RemoteChunkSize=5242880,a.DefaultDelimiter=",",a.Parser=_,a.ParserHandle=c,a.NetworkStreamer=u,a.FileStreamer=f,a.StringStreamer=d,a.ReadableStreamStreamer=l,t.jQuery){var o=t.jQuery;o.fn.parse=function(e){var i=e.config||{},r=[];return this.each((function(e){if("INPUT"!==o(this).prop("tagName").toUpperCase()||"file"!==o(this).attr("type").toLowerCase()||!t.FileReader||!this.files||0===this.files.length)return!0;for(var n=0;n<this.files.length;n++)r.push({file:this.files[n],inputElem:this,instanceConfig:o.extend({},i)})})),n(),this;function n(){if(0!==r.length){var t,i,n,h,u=r[0];if(b(e.before)){var f=e.before(u.file,u.inputElem);if("object"==typeof f){if("abort"===f.action)return t="AbortError",i=u.file,n=u.inputElem,h=f.reason,void(b(e.error)&&e.error({name:t},i,n,h));if("skip"===f.action)return void s();"object"==typeof f.config&&(u.instanceConfig=o.extend(u.instanceConfig,f.config))}else if("skip"===f)return void s()}var d=u.instanceConfig.complete;u.instanceConfig.complete=function(e){b(d)&&d(e,u.file,u.inputElem),s()},a.parse(u.file,u.instanceConfig)}else b(e.complete)&&e.complete()}function s(){r.splice(0,1),n()}}}function h(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=y(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new c(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,i){if(this.isFirstChunk&&b(this._config.beforeFirstChunk)){var n=this._config.beforeFirstChunk(e);void 0!==n&&(e=n)}this.isFirstChunk=!1,this._halted=!1;var s=this._partialLine+e;this._partialLine="";var o=this._handle.parse(s,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var h=o.meta.cursor;this._finished||(this._partialLine=s.substring(h-this._baseIndex),this._baseIndex=h),o&&o.data&&(this._rowCount+=o.data.length);var u=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(r)t.postMessage({results:o,workerId:a.WORKER_ID,finished:u});else if(b(this._config.chunk)&&!i){if(this._config.chunk(o,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);o=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(o.data),this._completeResults.errors=this._completeResults.errors.concat(o.errors),this._completeResults.meta=o.meta),this._completed||!u||!b(this._config.complete)||o&&o.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),u||o&&o.meta.paused||this._nextChunk(),o}this._halted=!0},this._sendError=function(e){b(this._config.error)?this._config.error(e):r&&this._config.error&&t.postMessage({workerId:a.WORKER_ID,error:e,finished:!1})}}function u(e){var t;(e=e||{}).chunkSize||(e.chunkSize=a.RemoteChunkSize),h.call(this,e),this._nextChunk=i?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),i||(t.onload=k(this._chunkLoaded,this),t.onerror=k(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!i),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var r in e)t.setRequestHeader(r,e[r])}if(this._config.chunkSize){var n=this._start+this._config.chunkSize-1;t.setRequestHeader("Range","bytes="+this._start+"-"+n)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}i&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader("Content-Range");return null===t?-1:parseInt(t.substring(t.lastIndexOf("/")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var i=t.statusText||e;this._sendError(new Error(i))}}function f(e){var t,i;(e=e||{}).chunkSize||(e.chunkSize=a.LocalChunkSize),h.call(this,e);var r="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,i=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=k(this._chunkLoaded,this),t.onerror=k(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input;if(this._config.chunkSize){var n=Math.min(this._start+this._config.chunkSize,this._input.size);e=i.call(e,this._start,n)}var s=t.readAsText(e,this._config.encoding);r||this._chunkLoaded({target:{result:s}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function d(e){var t;h.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,i=this._config.chunkSize;return i?(e=t.substring(0,i),t=t.substring(i)):(e=t,t=""),this._finished=!t,this.parseChunk(e)}}}function l(e){h.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){h.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){h.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=k((function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=k((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=k((function(){this._streamCleanUp(),r=!0,this._streamData("")}),this),this._streamCleanUp=k((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function c(e){var t,i,r,n=Math.pow(2,53),s=-n,o=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)(e[-+]?\d+)?\s*$/,h=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,u=this,f=0,d=0,l=!1,c=!1,g=[],m={data:[],errors:[],meta:{}};if(b(e.step)){var v=e.step;e.step=function(t){if(m=t,E())w();else{if(w(),0===m.data.length)return;f+=t.data.length,e.preview&&f>e.preview?i.abort():(m.data=m.data[0],v(m,u))}}}function k(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function w(){if(m&&r&&(R("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+a.DefaultDelimiter+"'"),r=!1),e.skipEmptyLines)for(var t=0;t<m.data.length;t++)k(m.data[t])&&m.data.splice(t--,1);return E()&&function(){if(m)if(Array.isArray(m.data[0])){for(var t=0;E()&&t<m.data.length;t++)m.data[t].forEach(i);m.data.splice(0,1)}else m.data.forEach(i);function i(t,i){b(e.transformHeader)&&(t=e.transformHeader(t,i)),g.push(t)}}(),function(){if(!m||!e.header&&!e.dynamicTyping&&!e.transform)return m;function t(t,i){var r,n=e.header?{}:[];for(r=0;r<t.length;r++){var s=r,a=t[r];e.header&&(s=r>=g.length?"__parsed_extra":g[r]),e.transform&&(a=e.transform(a,s)),a=C(s,a),"__parsed_extra"===s?(n[s]=n[s]||[],n[s].push(a)):n[s]=a}return e.header&&(r>g.length?R("FieldMismatch","TooManyFields","Too many fields: expected "+g.length+" fields but parsed "+r,d+i):r<g.length&&R("FieldMismatch","TooFewFields","Too few fields: expected "+g.length+" fields but parsed "+r,d+i)),n}var i=1;return!m.data.length||Array.isArray(m.data[0])?(m.data=m.data.map(t),i=m.data.length):m.data=t(m.data,0),e.header&&m.meta&&(m.meta.fields=g),d+=i,m}()}function E(){return e.header&&0===g.length}function C(t,i){return r=t,e.dynamicTypingFunction&&void 0===e.dynamicTyping[r]&&(e.dynamicTyping[r]=e.dynamicTypingFunction(r)),!0===(e.dynamicTyping[r]||e.dynamicTyping)?"true"===i||"TRUE"===i||"false"!==i&&"FALSE"!==i&&(function(e){if(o.test(e)){var t=parseFloat(e);if(s<t&&t<n)return!0}return!1}(i)?parseFloat(i):h.test(i)?new Date(i):""===i?null:i):i;var r}function R(e,t,i,r){var n={type:e,code:t,message:i};void 0!==r&&(n.row=r),m.errors.push(n)}this.parse=function(n,s,o){var h=e.quoteChar||'"';if(e.newline||(e.newline=function(e,t){e=e.substring(0,1048576);var i=new RegExp(p(t)+"([^]*?)"+p(t),"gm"),r=(e=e.replace(i,"")).split("\r"),n=e.split("\n"),s=1<n.length&&n[0].length<r[0].length;if(1===r.length||s)return"\n";for(var a=0,o=0;o<r.length;o++)"\n"===r[o][0]&&a++;return a>=r.length/2?"\r\n":"\r"}(n,h)),r=!1,e.delimiter)b(e.delimiter)&&(e.delimiter=e.delimiter(n),m.meta.delimiter=e.delimiter);else{var u=function(t,i,r,n,s){var o,h,u,f;s=s||[",","\t","|",";",a.RECORD_SEP,a.UNIT_SEP];for(var d=0;d<s.length;d++){var l=s[d],c=0,p=0,g=0;u=void 0;for(var m=new _({comments:n,delimiter:l,newline:i,preview:10}).parse(t),v=0;v<m.data.length;v++)if(r&&k(m.data[v]))g++;else{var y=m.data[v].length;p+=y,void 0!==u?0<y&&(c+=Math.abs(y-u),u=y):u=y}0<m.data.length&&(p/=m.data.length-g),(void 0===h||c<=h)&&(void 0===f||f<p)&&1.99<p&&(h=c,o=l,f=p)}return{successful:!!(e.delimiter=o),bestDelimiter:o}}(n,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess);u.successful?e.delimiter=u.bestDelimiter:(r=!0,e.delimiter=a.DefaultDelimiter),m.meta.delimiter=e.delimiter}var f=y(e);return e.preview&&e.header&&f.preview++,t=n,i=new _(f),m=i.parse(t,s,o),w(),l?{meta:{paused:!0}}:m||{meta:{paused:!1}}},this.paused=function(){return l},this.pause=function(){l=!0,i.abort(),t=b(e.chunk)?"":t.substring(i.getCharIndex())},this.resume=function(){u.streamer._halted?(l=!1,u.streamer.parseChunk(t,!0)):setTimeout(u.resume,3)},this.aborted=function(){return c},this.abort=function(){c=!0,i.abort(),m.meta.aborted=!0,b(e.complete)&&e.complete(m),t=""}}function p(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _(e){var t,i=(e=e||{}).delimiter,r=e.newline,n=e.comments,s=e.step,o=e.preview,h=e.fastMode,u=t=void 0===e.quoteChar?'"':e.quoteChar;if(void 0!==e.escapeChar&&(u=e.escapeChar),("string"!=typeof i||-1<a.BAD_DELIMITERS.indexOf(i))&&(i=","),n===i)throw new Error("Comment character same as delimiter");!0===n?n="#":("string"!=typeof n||-1<a.BAD_DELIMITERS.indexOf(n))&&(n=!1),"\n"!==r&&"\r"!==r&&"\r\n"!==r&&(r="\n");var f=0,d=!1;this.parse=function(e,a,l){if("string"!=typeof e)throw new Error("Input must be a string");var c=e.length,_=i.length,g=r.length,m=n.length,v=b(s),y=[],k=[],w=[],E=f=0;if(!e)return j();if(h||!1!==h&&-1===e.indexOf(t)){for(var C=e.split(r),R=0;R<C.length;R++){if(w=C[R],f+=w.length,R!==C.length-1)f+=r.length;else if(l)return j();if(!n||w.substring(0,m)!==n){if(v){if(y=[],L(w.split(i)),q(),d)return j()}else L(w.split(i));if(o&&o<=R)return y=y.slice(0,o),j(!0)}}return j()}for(var S=e.indexOf(i,f),x=e.indexOf(r,f),O=new RegExp(p(u)+p(t),"g"),D=e.indexOf(t,f);;)if(e[f]!==t)if(n&&0===w.length&&e.substring(f,f+m)===n){if(-1===x)return j();f=x+g,x=e.indexOf(r,f),S=e.indexOf(i,f)}else{if(-1!==S&&(S<x||-1===x)){if(!(S<D)){w.push(e.substring(f,S)),f=S+_,S=e.indexOf(i,f);continue}var I=U(S,D,x);if(I&&void 0!==I.nextDelim){S=I.nextDelim,D=I.quoteSearch,w.push(e.substring(f,S)),f=S+_,S=e.indexOf(i,f);continue}}if(-1===x)break;if(w.push(e.substring(f,x)),M(x+g),v&&(q(),d))return j();if(o&&y.length>=o)return j(!0)}else for(D=f,f++;;){if(-1===(D=e.indexOf(t,D+1)))return l||k.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:y.length,index:f}),z();if(D===c-1)return z(e.substring(f,D).replace(O,t));if(t!==u||e[D+1]!==u){if(t===u||0===D||e[D-1]!==u){-1!==S&&S<D+1&&(S=e.indexOf(i,D+1)),-1!==x&&x<D+1&&(x=e.indexOf(r,D+1));var T=F(-1===x?S:Math.min(S,x));if(e[D+1+T]===i){w.push(e.substring(f,D).replace(O,t)),e[f=D+1+T+_]!==t&&(D=e.indexOf(t,f)),S=e.indexOf(i,f),x=e.indexOf(r,f);break}var A=F(x);if(e.substring(D+1+A,D+1+A+g)===r){if(w.push(e.substring(f,D).replace(O,t)),M(D+1+A+g),S=e.indexOf(i,f),D=e.indexOf(t,f),v&&(q(),d))return j();if(o&&y.length>=o)return j(!0);break}k.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:y.length,index:f}),D++}}else D++}return z();function L(e){y.push(e),E=f}function F(t){var i=0;if(-1!==t){var r=e.substring(D+1,t);r&&""===r.trim()&&(i=r.length)}return i}function z(t){return l||(void 0===t&&(t=e.substring(f)),w.push(t),f=c,L(w),v&&q()),j()}function M(t){f=t,L(w),w=[],x=e.indexOf(r,f)}function j(e){return{data:y,errors:k,meta:{delimiter:i,linebreak:r,aborted:d,truncated:!!e,cursor:E+(a||0)}}}function q(){s(j()),y=[],k=[]}function U(r,n,s){var a={nextDelim:void 0,quoteSearch:void 0},o=e.indexOf(t,n+1);if(n<r&&r<o&&(o<s||-1===s)){var h=e.indexOf(i,o);if(-1===h)return a;o<h&&(o=e.indexOf(t,o+1)),a=U(h,o,s)}else a={nextDelim:r,quoteSearch:n};return a}},this.abort=function(){d=!0},this.getCharIndex=function(){return f}}function g(e){var t=e.data,i=n[t.workerId],r=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var s={abort:function(){r=!0,m(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:v,resume:v};if(b(i.userStep)){for(var a=0;a<t.results.data.length&&(i.userStep({data:t.results.data[a],errors:t.results.errors,meta:t.results.meta},s),!r);a++);delete t.results}else b(i.userChunk)&&(i.userChunk(t.results,s,t.file),delete t.results)}t.finished&&!r&&m(t.workerId,t.results)}function m(e,t){var i=n[e];b(i.userComplete)&&i.userComplete(t),i.terminate(),delete n[e]}function v(){throw new Error("Not implemented.")}function y(e){if("object"!=typeof e||null===e)return e;var t=Array.isArray(e)?[]:{};for(var i in e)t[i]=y(e[i]);return t}function k(e,t){return function(){e.apply(t,arguments)}}function b(e){return"function"==typeof e}return r&&(t.onmessage=function(e){var i=e.data;if(void 0===a.WORKER_ID&&i&&(a.WORKER_ID=i.workerId),"string"==typeof i.input)t.postMessage({workerId:a.WORKER_ID,results:a.parse(i.input,i.config),finished:!0});else if(t.File&&i.input instanceof File||i.input instanceof Object){var r=a.parse(i.input,i.config);r&&t.postMessage({workerId:a.WORKER_ID,results:r,finished:!0})}}),(u.prototype=Object.create(h.prototype)).constructor=u,(f.prototype=Object.create(h.prototype)).constructor=f,(d.prototype=Object.create(d.prototype)).constructor=d,(l.prototype=Object.create(h.prototype)).constructor=l,a}))}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.csv.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.csv.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.csv.js.map new file mode 100644 index 00000000..789837cd --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.csv.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.csv.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/papaparse/papaparse.min.js"],"sourcesContent":["/* @license\nPapa Parse\nv5.3.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()}(this,function s(){\"use strict\";var f=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=n&&/blob:/i.test((f.location||{}).protocol),a={},h=0,b={parse:function(e,t){var i=(t=t||{}).dynamicTyping||!1;U(i)&&(t.dynamicTypingFunction=i,i={});if(t.dynamicTyping=i,t.transform=!!U(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var r=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(i=f.URL||f.webkitURL||null,r=s.toString(),b.BLOB_URL||(b.BLOB_URL=i.createObjectURL(new Blob([\"(\",r,\")();\"],{type:\"text/javascript\"})))),t=new f.Worker(e);var i,r;return t.onmessage=m,t.id=h++,a[t.id]=t}();return r.userStep=t.step,r.userChunk=t.chunk,r.userComplete=t.complete,r.userError=t.error,t.step=U(t.step),t.chunk=U(t.chunk),t.complete=U(t.complete),t.error=U(t.error),delete t.worker,void r.postMessage({input:e,config:t,workerId:r.id})}var n=null;b.NODE_STREAM_INPUT,\"string\"==typeof e?n=t.download?new l(t):new p(t):!0===e.readable&&U(e.read)&&U(e.on)?n=new g(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var n=!1,m=!0,_=\",\",v=\"\\r\\n\",s='\"',a=s+s,i=!1,r=null,o=!1;!function(){if(\"object\"!=typeof t)return;\"string\"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(_=t.delimiter);(\"boolean\"==typeof t.quotes||\"function\"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes);\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines);\"string\"==typeof t.newline&&(v=t.newline);\"string\"==typeof t.quoteChar&&(s=t.quoteChar);\"boolean\"==typeof t.header&&(m=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");r=t.columns}void 0!==t.escapeChar&&(a=t.escapeChar+s);\"boolean\"==typeof t.escapeFormulae&&(o=t.escapeFormulae)}();var h=new RegExp(q(s),\"g\");\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return f(null,e,i);if(\"object\"==typeof e[0])return f(r||u(e[0]),e,i)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:u(e.data[0])),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),f(e.fields||[],e.data||[],i);throw new Error(\"Unable to serialize unrecognized input\");function u(e){if(\"object\"!=typeof e)return[];var t=[];for(var i in e)t.push(i);return t}function f(e,t,i){var r=\"\";\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0<e.length,s=!Array.isArray(t[0]);if(n&&m){for(var a=0;a<e.length;a++)0<a&&(r+=_),r+=y(e[a],a);0<t.length&&(r+=v)}for(var o=0;o<t.length;o++){var h=n?e.length:t[o].length,u=!1,f=n?0===Object.keys(t[o]).length:0===t[o].length;if(i&&!n&&(u=\"greedy\"===i?\"\"===t[o].join(\"\").trim():1===t[o].length&&0===t[o][0].length),\"greedy\"===i&&n){for(var d=[],l=0;l<h;l++){var c=s?e[l]:l;d.push(t[o][c])}u=\"\"===d.join(\"\").trim()}if(!u){for(var p=0;p<h;p++){0<p&&!f&&(r+=_);var g=n&&s?e[p]:p;r+=y(t[o][g],p)}o<t.length-1&&(!i||0<h&&!f)&&(r+=v)}}return r}function y(e,t){if(null==e)return\"\";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);!0===o&&\"string\"==typeof e&&null!==e.match(/^[=+\\-@].*$/)&&(e=\"'\"+e);var i=e.toString().replace(h,a),r=\"boolean\"==typeof n&&n||\"function\"==typeof n&&n(e,t)||Array.isArray(n)&&n[t]||function(e,t){for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1}(i,b.BAD_DELIMITERS)||-1<i.indexOf(_)||\" \"===i.charAt(0)||\" \"===i.charAt(i.length-1);return r?s+i+s:i}}};if(b.RECORD_SEP=String.fromCharCode(30),b.UNIT_SEP=String.fromCharCode(31),b.BYTE_ORDER_MARK=\"\\ufeff\",b.BAD_DELIMITERS=[\"\\r\",\"\\n\",'\"',b.BYTE_ORDER_MARK],b.WORKERS_SUPPORTED=!n&&!!f.Worker,b.NODE_STREAM_INPUT=1,b.LocalChunkSize=10485760,b.RemoteChunkSize=5242880,b.DefaultDelimiter=\",\",b.Parser=w,b.ParserHandle=i,b.NetworkStreamer=l,b.FileStreamer=c,b.StringStreamer=p,b.ReadableStreamStreamer=g,f.jQuery){var d=f.jQuery;d.fn.parse=function(o){var i=o.config||{},h=[];return this.each(function(e){if(!(\"INPUT\"===d(this).prop(\"tagName\").toUpperCase()&&\"file\"===d(this).attr(\"type\").toLowerCase()&&f.FileReader)||!this.files||0===this.files.length)return!0;for(var t=0;t<this.files.length;t++)h.push({file:this.files[t],inputElem:this,instanceConfig:d.extend({},i)})}),e(),this;function e(){if(0!==h.length){var e,t,i,r,n=h[0];if(U(o.before)){var s=o.before(n.file,n.inputElem);if(\"object\"==typeof s){if(\"abort\"===s.action)return e=\"AbortError\",t=n.file,i=n.inputElem,r=s.reason,void(U(o.error)&&o.error({name:e},t,i,r));if(\"skip\"===s.action)return void u();\"object\"==typeof s.config&&(n.instanceConfig=d.extend(n.instanceConfig,s.config))}else if(\"skip\"===s)return void u()}var a=n.instanceConfig.complete;n.instanceConfig.complete=function(e){U(a)&&a(e,n.file,n.inputElem),u()},b.parse(n.file,n.instanceConfig)}else U(o.complete)&&o.complete()}function u(){h.splice(0,1),e()}}}function u(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=E(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new i(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,t){if(this.isFirstChunk&&U(this._config.beforeFirstChunk)){var i=this._config.beforeFirstChunk(e);void 0!==i&&(e=i)}this.isFirstChunk=!1,this._halted=!1;var r=this._partialLine+e;this._partialLine=\"\";var n=this._handle.parse(r,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var s=n.meta.cursor;this._finished||(this._partialLine=r.substring(s-this._baseIndex),this._baseIndex=s),n&&n.data&&(this._rowCount+=n.data.length);var a=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(o)f.postMessage({results:n,workerId:b.WORKER_ID,finished:a});else if(U(this._config.chunk)&&!t){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);n=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!U(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){U(this._config.error)?this._config.error(e):o&&this._config.error&&f.postMessage({workerId:b.WORKER_ID,error:e,finished:!1})}}function l(e){var r;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize),u.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),n||(r.onload=y(this._chunkLoaded,this),r.onerror=y(this._chunkError,this)),r.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)r.setRequestHeader(t,e[t])}if(this._config.chunkSize){var i=this._start+this._config.chunkSize-1;r.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i)}try{r.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===r.status&&this._chunkError()}},this._chunkLoaded=function(){4===r.readyState&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:r.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader(\"Content-Range\");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf(\"/\")+1))}(r),this.parseChunk(r.responseText)))},this._chunkError=function(e){var t=r.statusText||e;this._sendError(new Error(t))}}function c(e){var r,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize),u.call(this,e);var s=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,s?((r=new FileReader).onload=y(this._chunkLoaded,this),r.onerror=y(this._chunkError,this)):r=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input;if(this._config.chunkSize){var t=Math.min(this._start+this._config.chunkSize,this._input.size);e=n.call(e,this._start,t)}var i=r.readAsText(e,this._config.encoding);s||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(r.error)}}function p(e){var i;u.call(this,e=e||{}),this.stream=function(e){return i=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,t=this._config.chunkSize;return t?(e=i.substring(0,t),i=i.substring(t)):(e=i,i=\"\"),this._finished=!i,this.parseChunk(e)}}}function g(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=y(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=y(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=y(function(){this._streamCleanUp(),r=!0,this._streamData(\"\")},this),this._streamCleanUp=y(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function i(_){var a,o,h,r=Math.pow(2,53),n=-r,s=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)(e[-+]?\\d+)?\\s*$/,u=/(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/,t=this,i=0,f=0,d=!1,e=!1,l=[],c={data:[],errors:[],meta:{}};if(U(_.step)){var p=_.step;_.step=function(e){if(c=e,m())g();else{if(g(),0===c.data.length)return;i+=e.data.length,_.preview&&i>_.preview?o.abort():(c.data=c.data[0],p(c,t))}}}function v(e){return\"greedy\"===_.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){if(c&&h&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+b.DefaultDelimiter+\"'\"),h=!1),_.skipEmptyLines)for(var e=0;e<c.data.length;e++)v(c.data[e])&&c.data.splice(e--,1);return m()&&function(){if(!c)return;function e(e,t){U(_.transformHeader)&&(e=_.transformHeader(e,t)),l.push(e)}if(Array.isArray(c.data[0])){for(var t=0;m()&&t<c.data.length;t++)c.data[t].forEach(e);c.data.splice(0,1)}else c.data.forEach(e)}(),function(){if(!c||!_.header&&!_.dynamicTyping&&!_.transform)return c;function e(e,t){var i,r=_.header?{}:[];for(i=0;i<e.length;i++){var n=i,s=e[i];_.header&&(n=i>=l.length?\"__parsed_extra\":l[i]),_.transform&&(s=_.transform(s,n)),s=y(n,s),\"__parsed_extra\"===n?(r[n]=r[n]||[],r[n].push(s)):r[n]=s}return _.header&&(i>l.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+l.length+\" fields but parsed \"+i,f+t):i<l.length&&k(\"FieldMismatch\",\"TooFewFields\",\"Too few fields: expected \"+l.length+\" fields but parsed \"+i,f+t)),r}var t=1;!c.data.length||Array.isArray(c.data[0])?(c.data=c.data.map(e),t=c.data.length):c.data=e(c.data,0);_.header&&c.meta&&(c.meta.fields=l);return f+=t,c}()}function m(){return _.header&&0===l.length}function y(e,t){return i=e,_.dynamicTypingFunction&&void 0===_.dynamicTyping[i]&&(_.dynamicTyping[i]=_.dynamicTypingFunction(i)),!0===(_.dynamicTyping[i]||_.dynamicTyping)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&(function(e){if(s.test(e)){var t=parseFloat(e);if(n<t&&t<r)return!0}return!1}(t)?parseFloat(t):u.test(t)?new Date(t):\"\"===t?null:t):t;var i}function k(e,t,i,r){var n={type:e,code:t,message:i};void 0!==r&&(n.row=r),c.errors.push(n)}this.parse=function(e,t,i){var r=_.quoteChar||'\"';if(_.newline||(_.newline=function(e,t){e=e.substring(0,1048576);var i=new RegExp(q(t)+\"([^]*?)\"+q(t),\"gm\"),r=(e=e.replace(i,\"\")).split(\"\\r\"),n=e.split(\"\\n\"),s=1<n.length&&n[0].length<r[0].length;if(1===r.length||s)return\"\\n\";for(var a=0,o=0;o<r.length;o++)\"\\n\"===r[o][0]&&a++;return a>=r.length/2?\"\\r\\n\":\"\\r\"}(e,r)),h=!1,_.delimiter)U(_.delimiter)&&(_.delimiter=_.delimiter(e),c.meta.delimiter=_.delimiter);else{var n=function(e,t,i,r,n){var s,a,o,h;n=n||[\",\",\"\\t\",\"|\",\";\",b.RECORD_SEP,b.UNIT_SEP];for(var u=0;u<n.length;u++){var f=n[u],d=0,l=0,c=0;o=void 0;for(var p=new w({comments:r,delimiter:f,newline:t,preview:10}).parse(e),g=0;g<p.data.length;g++)if(i&&v(p.data[g]))c++;else{var m=p.data[g].length;l+=m,void 0!==o?0<m&&(d+=Math.abs(m-o),o=m):o=m}0<p.data.length&&(l/=p.data.length-c),(void 0===a||d<=a)&&(void 0===h||h<l)&&1.99<l&&(a=d,s=f,h=l)}return{successful:!!(_.delimiter=s),bestDelimiter:s}}(e,_.newline,_.skipEmptyLines,_.comments,_.delimitersToGuess);n.successful?_.delimiter=n.bestDelimiter:(h=!0,_.delimiter=b.DefaultDelimiter),c.meta.delimiter=_.delimiter}var s=E(_);return _.preview&&_.header&&s.preview++,a=e,o=new w(s),c=o.parse(a,t,i),g(),d?{meta:{paused:!0}}:c||{meta:{paused:!1}}},this.paused=function(){return d},this.pause=function(){d=!0,o.abort(),a=U(_.chunk)?\"\":a.substring(o.getCharIndex())},this.resume=function(){t.streamer._halted?(d=!1,t.streamer.parseChunk(a,!0)):setTimeout(t.resume,3)},this.aborted=function(){return e},this.abort=function(){e=!0,o.abort(),c.meta.aborted=!0,U(_.complete)&&_.complete(c),a=\"\"}}function q(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function w(e){var O,D=(e=e||{}).delimiter,I=e.newline,T=e.comments,A=e.step,L=e.preview,F=e.fastMode,z=O=void 0===e.quoteChar?'\"':e.quoteChar;if(void 0!==e.escapeChar&&(z=e.escapeChar),(\"string\"!=typeof D||-1<b.BAD_DELIMITERS.indexOf(D))&&(D=\",\"),T===D)throw new Error(\"Comment character same as delimiter\");!0===T?T=\"#\":(\"string\"!=typeof T||-1<b.BAD_DELIMITERS.indexOf(T))&&(T=!1),\"\\n\"!==I&&\"\\r\"!==I&&\"\\r\\n\"!==I&&(I=\"\\n\");var M=0,j=!1;this.parse=function(a,t,i){if(\"string\"!=typeof a)throw new Error(\"Input must be a string\");var r=a.length,e=D.length,n=I.length,s=T.length,o=U(A),h=[],u=[],f=[],d=M=0;if(!a)return R();if(F||!1!==F&&-1===a.indexOf(O)){for(var l=a.split(I),c=0;c<l.length;c++){if(f=l[c],M+=f.length,c!==l.length-1)M+=I.length;else if(i)return R();if(!T||f.substring(0,s)!==T){if(o){if(h=[],b(f.split(D)),S(),j)return R()}else b(f.split(D));if(L&&L<=c)return h=h.slice(0,L),R(!0)}}return R()}for(var p=a.indexOf(D,M),g=a.indexOf(I,M),m=new RegExp(q(z)+q(O),\"g\"),_=a.indexOf(O,M);;)if(a[M]!==O)if(T&&0===f.length&&a.substring(M,M+s)===T){if(-1===g)return R();M=g+n,g=a.indexOf(I,M),p=a.indexOf(D,M)}else{if(-1!==p&&(p<g||-1===g)){if(!(p<_)){f.push(a.substring(M,p)),M=p+e,p=a.indexOf(D,M);continue}var v=x(p,_,g);if(v&&void 0!==v.nextDelim){p=v.nextDelim,_=v.quoteSearch,f.push(a.substring(M,p)),M=p+e,p=a.indexOf(D,M);continue}}if(-1===g)break;if(f.push(a.substring(M,g)),C(g+n),o&&(S(),j))return R();if(L&&h.length>=L)return R(!0)}else for(_=M,M++;;){if(-1===(_=a.indexOf(O,_+1)))return i||u.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:h.length,index:M}),E();if(_===r-1)return E(a.substring(M,_).replace(m,O));if(O!==z||a[_+1]!==z){if(O===z||0===_||a[_-1]!==z){-1!==p&&p<_+1&&(p=a.indexOf(D,_+1)),-1!==g&&g<_+1&&(g=a.indexOf(I,_+1));var y=w(-1===g?p:Math.min(p,g));if(a[_+1+y]===D){f.push(a.substring(M,_).replace(m,O)),a[M=_+1+y+e]!==O&&(_=a.indexOf(O,M)),p=a.indexOf(D,M),g=a.indexOf(I,M);break}var k=w(g);if(a.substring(_+1+k,_+1+k+n)===I){if(f.push(a.substring(M,_).replace(m,O)),C(_+1+k+n),p=a.indexOf(D,M),_=a.indexOf(O,M),o&&(S(),j))return R();if(L&&h.length>=L)return R(!0);break}u.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:h.length,index:M}),_++}}else _++}return E();function b(e){h.push(e),d=M}function w(e){var t=0;if(-1!==e){var i=a.substring(_+1,e);i&&\"\"===i.trim()&&(t=i.length)}return t}function E(e){return i||(void 0===e&&(e=a.substring(M)),f.push(e),M=r,b(f),o&&S()),R()}function C(e){M=e,b(f),f=[],g=a.indexOf(I,M)}function R(e){return{data:h,errors:u,meta:{delimiter:D,linebreak:I,aborted:j,truncated:!!e,cursor:d+(t||0)}}}function S(){A(R()),h=[],u=[]}function x(e,t,i){var r={nextDelim:void 0,quoteSearch:void 0},n=a.indexOf(O,t+1);if(t<e&&e<n&&(n<i||-1===i)){var s=a.indexOf(D,n);if(-1===s)return r;n<s&&(n=a.indexOf(O,n+1)),r=x(s,n,i)}else r={nextDelim:e,quoteSearch:t};return r}},this.abort=function(){j=!0},this.getCharIndex=function(){return M}}function m(e){var t=e.data,i=a[t.workerId],r=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){r=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:v,resume:v};if(U(i.userStep)){for(var s=0;s<t.results.data.length&&(i.userStep({data:t.results.data[s],errors:t.results.errors,meta:t.results.meta},n),!r);s++);delete t.results}else U(i.userChunk)&&(i.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!r&&_(t.workerId,t.results)}function _(e,t){var i=a[e];U(i.userComplete)&&i.userComplete(t),i.terminate(),delete a[e]}function v(){throw new Error(\"Not implemented.\")}function E(e){if(\"object\"!=typeof e||null===e)return e;var t=Array.isArray(e)?[]:{};for(var i in e)t[i]=E(e[i]);return t}function y(e,t){return function(){e.apply(t,arguments)}}function U(e){return\"function\"==typeof e}return o&&(f.onmessage=function(e){var t=e.data;void 0===b.WORKER_ID&&t&&(b.WORKER_ID=t.workerId);if(\"string\"==typeof t.input)f.postMessage({workerId:b.WORKER_ID,results:b.parse(t.input,t.config),finished:!0});else if(f.File&&t.input instanceof File||t.input instanceof Object){var i=b.parse(t.input,t.config);i&&f.postMessage({workerId:b.WORKER_ID,results:i,finished:!0})}}),(l.prototype=Object.create(u.prototype)).constructor=l,(c.prototype=Object.create(u.prototype)).constructor=c,(p.prototype=Object.create(p.prototype)).constructor=p,(g.prototype=Object.create(u.prototype)).constructor=g,b});"],"names":["e","t","this","s","f","self","window","n","document","postMessage","o","test","location","protocol","a","h","b","parse","i","dynamicTyping","U","dynamicTypingFunction","transform","worker","WORKERS_SUPPORTED","r","URL","webkitURL","toString","BLOB_URL","createObjectURL","Blob","type","Worker","onmessage","m","id","userStep","step","userChunk","chunk","userComplete","complete","userError","error","input","config","workerId","NODE_STREAM_INPUT","download","l","p","readable","read","on","g","File","Object","c","stream","unparse","_","v","delimiter","BAD_DELIMITERS","filter","indexOf","length","quotes","Array","isArray","skipEmptyLines","newline","quoteChar","header","columns","Error","escapeChar","escapeFormulae","RegExp","q","JSON","u","data","fields","meta","push","y","keys","join","trim","d","constructor","Date","stringify","slice","match","replace","charAt","RECORD_SEP","String","fromCharCode","UNIT_SEP","BYTE_ORDER_MARK","LocalChunkSize","RemoteChunkSize","DefaultDelimiter","Parser","w","ParserHandle","NetworkStreamer","FileStreamer","StringStreamer","ReadableStreamStreamer","jQuery","fn","each","prop","toUpperCase","attr","toLowerCase","FileReader","files","file","inputElem","instanceConfig","extend","before","action","reason","name","splice","_handle","_finished","_completed","_halted","_input","_baseIndex","_partialLine","_rowCount","_start","_nextChunk","isFirstChunk","_completeResults","errors","E","chunkSize","parseInt","streamer","_config","call","parseChunk","beforeFirstChunk","paused","aborted","cursor","substring","preview","results","WORKER_ID","finished","concat","_sendError","_readChunk","_chunkLoaded","XMLHttpRequest","withCredentials","onload","onerror","_chunkError","open","downloadRequestBody","downloadRequestHeaders","setRequestHeader","send","message","status","readyState","responseText","getResponseHeader","lastIndexOf","statusText","webkitSlice","mozSlice","FileReaderSync","Math","min","size","readAsText","encoding","target","result","pause","prototype","apply","arguments","resume","_streamData","_streamEnd","_streamError","_checkIsFinished","shift","_streamCleanUp","removeListener","pow","abort","k","forEach","transformHeader","map","parseFloat","code","row","split","comments","abs","successful","bestDelimiter","delimitersToGuess","getCharIndex","setTimeout","O","D","I","T","A","L","F","fastMode","z","M","j","R","S","x","nextDelim","quoteSearch","C","index","linebreak","truncated","terminate","create"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.detail.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.detail.js new file mode 100644 index 00000000..4978805b --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.detail.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[332],{38076:function(e,t,a){"use strict";a.d(t,{A:function(){return d}});var s=a(9274);function r(e,t,a,r,l,o){return a.text?((0,s.openBlock)(),(0,s.createElementBlock)("a",{key:0,class:(0,s.normalizeClass)(["copy-to-clipboard-text",{copied:l.copied,plain:a.plain}]),href:"#",onClick:t[0]||(t[0]=(...e)=>o.clicked&&o.clicked(...e))},[(0,s.createTextVNode)((0,s.toDisplayString)(a.text)+" ",1),(0,s.createElementVNode)("i",{class:(0,s.normalizeClass)(["icon",{"icon-copy":!l.copied,"icon-checkmark":l.copied}])},null,2)],2)):(0,s.createCommentVNode)("",!0)}var l=a(48881),o=a(99726),n={emits:["error"],props:{text:{type:String,required:!0},plain:{type:Boolean,default:!1}},data(){return{copied:!1}},methods:{clicked(e){this.copied||(e.preventDefault(),(0,l.e)(this.text).then((()=>{this.copied=!0;let t=e.target;"I"===t.tagName&&(t=t.parentElement||t),setTimeout((()=>{this.copied=!1}),500)})).catch((e=>{this.$emit("error",(0,o.rz)(e))})))}}},c=(a(48734),a(47433));const i=(0,c.A)(n,[["render",r],["__scopeId","data-v-d8c131ea"]]);var d=i},48604:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return va}});var s=a(9274);const r={key:1},l={key:0,class:"row mb-20"},o={class:"col span-12"},n={class:"mt-5"};function c(e,t,a,c,i,d){const u=(0,s.resolveComponent)("Loading"),m=(0,s.resolveComponent)("Banner"),v=(0,s.resolveComponent)("Basic"),p=(0,s.resolveComponent)("Tab"),h=(0,s.resolveComponent)("Instance"),k=(0,s.resolveComponent)("VlanStatus"),b=(0,s.resolveComponent)("InfoBox"),y=(0,s.resolveComponent)("Tag"),g=(0,s.resolveComponent)("LabelValue"),N=(0,s.resolveComponent)("Disk"),V=(0,s.resolveComponent)("ArrayListGrouped"),f=(0,s.resolveComponent)("HarvesterKsmtuned"),w=(0,s.resolveComponent)("HarvesterSeeder"),C=(0,s.resolveComponent)("SortableTable"),E=(0,s.resolveComponent)("Tabbed"),S=(0,s.resolveDirective)("clean-html");return e.$fetchState.pending?((0,s.openBlock)(),(0,s.createBlock)(u,{key:0})):((0,s.openBlock)(),(0,s.createElementBlock)("div",r,["disabled"===d.ntpSyncedStatus.status?((0,s.openBlock)(),(0,s.createBlock)(m,{key:0,color:"warning"},{default:(0,s.withCtx)((()=>[(0,s.withDirectives)((0,s.createElementVNode)("span",null,null,512),[[S,e.t(d.ntpSyncedStatus.warning.key)]])])),_:1})):(0,s.createCommentVNode)("",!0),"unsynced"===d.ntpSyncedStatus.status?((0,s.openBlock)(),(0,s.createBlock)(m,{key:1,color:"warning"},{default:(0,s.withCtx)((()=>[(0,s.withDirectives)((0,s.createElementVNode)("span",null,null,512),[[S,e.t(d.ntpSyncedStatus.warning.key,{current:d.ntpSyncedStatus.warning.current},!0)]])])),_:1})):(0,s.createCommentVNode)("",!0),(0,s.createVNode)(E,(0,s.mergeProps)(e.$attrs,{class:"mt-15","side-tabs":!0,onChanged:d.tabChange}),{default:(0,s.withCtx)((()=>[(0,s.createVNode)(p,{name:"basics",label:e.t("harvester.host.tabs.basics"),weight:4,class:"bordered-table"},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(v,{value:a.value,metrics:i.metrics,mode:i.mode},null,8,["value","metrics","mode"])])),_:1},8,["label"]),(0,s.createVNode)(p,{name:"instance",label:e.t("harvester.host.tabs.instance"),weight:3,class:"bordered-table"},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(h,{node:a.value},null,8,["node"])])),_:1},8,["label"]),d.hasHostNetworksSchema&&d.vlanStatuses.length>0?((0,s.openBlock)(),(0,s.createBlock)(p,{key:0,name:"network",label:e.t("harvester.host.tabs.network"),weight:2,class:"bordered-table"},{default:(0,s.withCtx)((()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(d.vlanStatuses,((e,t)=>((0,s.openBlock)(),(0,s.createBlock)(b,{key:t},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(k,{value:e,mode:i.mode},null,8,["value","mode"])])),_:2},1024)))),128))])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),d.hasBlockDevicesSchema?((0,s.openBlock)(),(0,s.createBlock)(p,{key:1,name:"disk",weight:1,label:e.t("harvester.host.tabs.storage")},{default:(0,s.withCtx)((()=>[d.longhornNode?((0,s.openBlock)(),(0,s.createElementBlock)("div",l,[(0,s.createElementVNode)("div",o,[d.longhornNode.spec.tags.length?((0,s.openBlock)(),(0,s.createBlock)(g,{key:0,name:e.t("harvester.host.tags.label")},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",n,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(d.longhornNode.spec.tags,((e,t)=>((0,s.openBlock)(),(0,s.createBlock)(y,{key:t},{default:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e),1)])),_:2},1024)))),128))])])),_:1},8,["name"])):(0,s.createCommentVNode)("",!0)])])):(0,s.createCommentVNode)("",!0),(0,s.createVNode)(V,{value:i.newDisks,"onUpdate:value":t[0]||(t[0]=e=>i.newDisks=e),mode:i.mode,"can-remove":!1,"initial-empty-row":!1},{default:(0,s.withCtx)((e=>[(0,s.createVNode)(N,{value:e.row.value,"onUpdate:value":t=>e.row.value=t,class:"mb-20",mode:i.mode,disks:i.disks},null,8,["value","onUpdate:value","mode","disks"])])),_:1},8,["value","mode"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),d.hasKsmtunedSchema?((0,s.openBlock)(),(0,s.createBlock)(p,{key:2,name:"ksmtuned",weight:0,"show-header":!1,label:e.t("harvester.host.tabs.ksmtuned")},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(f,{mode:i.mode,node:a.value},null,8,["mode","node"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),d.seederEnabled?((0,s.openBlock)(),(0,s.createBlock)(p,{key:3,name:"seeder",weight:-1,label:e.t("harvester.host.tabs.seeder")},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(w,{mode:i.mode,node:a.value,inventory:i.inventory},null,8,["mode","node","inventory"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),(0,s.createVNode)(p,{"label-key":"harvester.virtualMachine.detail.tabs.events",name:"events",weight:-99},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(C,{rows:d.events,headers:d.eventHeaders,"key-field":"id",search:!1,"table-actions":!1,"row-actions":!1,"default-sort-by":"date"},null,8,["rows","headers"])])),_:1})])),_:1},16,["onChanged"])]))}var i=a(65359),d=a(8529),u=a(59808),m=a(49584),v=a(26962),p=a(39412),h=a(31097),k=a(84409),b=a(81345),y=a(56943),g=a(52799),N=a(35664),V=a(2602),f=a(88339),w=a(95799),C=a(68851),E=a(76978),S=a(92043),B=a(32766);const A={class:"host-detail"},T={class:"row mb-20"},_={class:"col span-6"},x={class:"col span-6"},M={class:"row mb-20"},$={class:"col span-6"},D={class:"col span-6"},O={class:"role"},R={key:0,class:"text-warning ml-20"},I={class:"row mb-20"},L={class:"col span-6"},P={class:"col span-6"},U={class:"row mb-20"},H={key:0,class:"col span-6"},K={class:"col span-6"},j=["href"],F={key:1},q={class:"row mb-20"},J={key:0,class:"col span-4"},z={class:"row mb-20"},G={class:"col span-4"},Q={class:"col span-4"},W={class:"col span-4"},Y={key:2,class:"row mb-20"},X={key:0,class:"col span-4"},Z={key:1,class:"col span-4"},ee={key:2,class:"col span-4"};function te(e,t,a,r,l,o){const n=(0,s.resolveComponent)("Banner"),c=(0,s.resolveComponent)("LabelValue"),i=(0,s.resolveComponent)("HarvesterCPUUsed"),d=(0,s.resolveComponent)("HarvesterMemoryUsed"),u=(0,s.resolveComponent)("HarvesterStorageUsed");return(0,s.openBlock)(),(0,s.createElementBlock)("div",A,[a.value.isKVMDisable?((0,s.openBlock)(),(0,s.createBlock)(n,{key:0,color:"error","label-key":"harvester.host.detail.kvm.disableMessage"})):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("h3",null,(0,s.toDisplayString)(e.t("harvester.host.tabs.overview")),1),(0,s.createElementVNode)("div",T,[(0,s.createElementVNode)("div",_,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.customName"),value:o.customName},null,8,["name","value"])]),(0,s.createElementVNode)("div",x,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.hostIP"),value:a.value.internalIp},null,8,["name","value"])])]),(0,s.createElementVNode)("div",M,[(0,s.createElementVNode)("div",$,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.os"),value:a.value.status.nodeInfo.osImage},null,8,["name","value"])]),(0,s.createElementVNode)("div",D,[(0,s.createElementVNode)("div",O,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.role")},{value:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(o.nodeType)+" ",1),o.nodeRoleState?((0,s.openBlock)(),(0,s.createElementBlock)("span",R,(0,s.toDisplayString)(o.nodeRoleState),1)):(0,s.createCommentVNode)("",!0)])),_:1},8,["name"])])])]),(0,s.createElementVNode)("div",I,[(0,s.createElementVNode)("div",L,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.create"),value:a.value.metadata.creationTimestamp},null,8,["name","value"])]),(0,s.createElementVNode)("div",P,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.update"),value:o.lastUpdateTime},null,8,["name","value"])])]),(0,s.createElementVNode)("div",U,[!a.value.isEtcd&&a.value.cpuPinningFeatureEnabled?((0,s.openBlock)(),(0,s.createElementBlock)("div",H,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.cpuManager"),value:o.cpuManagerStatus},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("div",K,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.consoleUrl"),value:o.consoleUrl.value},{default:(0,s.withCtx)((()=>[(0,s.createElementVNode)("a",{slot:"value",href:o.consoleUrl.value,target:"_blank"},(0,s.toDisplayString)(o.consoleUrl.display),9,j)])),_:1},8,["name","value"])])]),o.hasMetricNodeSchema?((0,s.openBlock)(),(0,s.createElementBlock)("div",F,[t[0]||(t[0]=(0,s.createElementVNode)("hr",{class:"divider"},null,-1)),(0,s.createElementVNode)("h3",null,(0,s.toDisplayString)(e.t("harvester.host.tabs.monitor")),1),(0,s.createElementVNode)("div",q,[(0,s.createElementVNode)("div",{class:(0,s.normalizeClass)(["col",{"span-4":o.hasLonghornSchema,"span-6":!o.hasLonghornSchema}])},[(0,s.createVNode)(i,{row:a.value,"resource-name":e.t("node.detail.glance.consumptionGauge.cpu"),"show-used":!0},null,8,["row","resource-name"])],2),(0,s.createElementVNode)("div",{class:(0,s.normalizeClass)(["col",{"span-4":o.hasLonghornSchema,"span-6":!o.hasLonghornSchema}])},[(0,s.createVNode)(d,{row:a.value,"resource-name":e.t("node.detail.glance.consumptionGauge.memory"),"show-used":!0},null,8,["row","resource-name"])],2),o.hasLonghornSchema?((0,s.openBlock)(),(0,s.createElementBlock)("div",J,[(0,s.createVNode)(u,{row:a.value,"resource-name":e.t("harvester.host.detail.storage"),"show-allocated":!0},null,8,["row","resource-name"])])):(0,s.createCommentVNode)("",!0)])])):(0,s.createCommentVNode)("",!0),t[1]||(t[1]=(0,s.createElementVNode)("hr",{class:"section-divider"},null,-1)),(0,s.createElementVNode)("h3",null,(0,s.toDisplayString)(e.t("harvester.host.detail.more")),1),(0,s.createElementVNode)("div",z,[(0,s.createElementVNode)("div",G,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.uuid"),value:a.value.status.nodeInfo.systemUUID},null,8,["name","value"])]),(0,s.createElementVNode)("div",Q,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.kernel"),value:a.value.status.nodeInfo.kernelVersion},null,8,["name","value"])]),(0,s.createElementVNode)("div",W,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.containerRuntime"),value:a.value.status.nodeInfo.containerRuntimeVersion},null,8,["name","value"])])]),a.value.manufacturer||a.value.serialNumber||a.value.model?((0,s.openBlock)(),(0,s.createElementBlock)("div",Y,[a.value.manufacturer?((0,s.openBlock)(),(0,s.createElementBlock)("div",X,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.manufacturer"),value:a.value.manufacturer},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0),a.value.serialNumber?((0,s.openBlock)(),(0,s.createElementBlock)("div",Z,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.serialNumber"),value:a.value.serialNumber},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0),a.value.model?((0,s.openBlock)(),(0,s.createElementBlock)("div",ee,[(0,s.createVNode)(c,{name:e.t("harvester.host.detail.model"),value:a.value.model},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0)])):(0,s.createCommentVNode)("",!0)])}var ae=a(9980),se=a(14290),re=a(44599),le=a(91341);const oe="complete",ne="promoteRestart",ce="promoteSucceed";var ie={name:"BasicNode",components:{Banner:ae.l,LabelValue:p.A,HarvesterCPUUsed:se["default"],HarvesterMemoryUsed:re["default"],HarvesterStorageUsed:le["default"]},props:{value:{type:Object,required:!0},metrics:{type:Object,required:!1,default:()=>null},mode:{type:String,required:!1,default:"view"}},computed:{customName(){return this.value.metadata?.annotations?.[V.r.HOST_CUSTOM_NAME]},cpuManagerStatus(){return this.value.isCPUManagerEnableInProgress?this.t("generic.loading"):this.t("generic."+(this.value.isCPUManagerEnabled?"enabled":"disabled"))},consoleUrl(){const e=this.value.metadata?.annotations?.[V.r.HOST_CONSOLE_URL];let t=e;return e?(e.startsWith("http://")||e.startsWith("https://")||(t=`http://${e}`),{display:e,value:t}):""},cpuTotal(){let e=0;return this.metrics&&(e=this.metrics.cpuCapacity),e},cpuUsage(){let e=0;return this.metrics&&(e=this.metrics.cpuUsage),e},memoryTotal(){let e=0;return this.metrics&&(e=this.metrics.memoryCapacity),e},memoryUsage(){let e=0;return this.metrics&&(e=this.metrics.memoryUsage),e},cpuUnits(){return"C"},memoryUnits(){const e=(0,w.$W)(this.memoryTotal,1024);return`${w.QN[e]}iB`},nodeType(){return this.value.isEtcd?this.t("harvester.host.detail.etcd"):this.value.isMaster?this.t("harvester.host.detail.management"):this.t("harvester.host.detail.compute")},lastUpdateTime(){return this.value.status?.conditions?.[0]?.lastHeartbeatTime},nodeRoleState(){if(!this.value.isEtcd){const e=this.value.metadata?.annotations?.[V.r.PROMOTE_STATUS];if(e===oe){const e=void 0!==this.value.metadata?.labels?.[V.r.NODE_ROLE_MASTER]||void 0!==this.value.metadata?.labels?.[V.r.NODE_ROLE_CONTROL_PLANE];return this.t(`harvester.host.promote.${e?ce:ne}`)}}return null},hasMetricNodeSchema(){const e=this.$store.getters["currentProduct"].inStore;return!!this.$store.getters[`${e}/schemaFor`](N.$v.NODE)},hasLonghornSchema(){const e=this.$store.getters["currentProduct"].inStore;return!!this.$store.getters[`${e}/schemaFor`](N.oe.NODES)}},methods:{memoryFormatter(e){const t=(0,w.$W)(this.memoryTotal,1024),a={addSuffix:!1,increment:1024,minExponent:t};return(0,w.Mo)(e,a)}}},de=(a(23857),a(47433));const ue=(0,de.A)(ie,[["render",te],["__scopeId","data-v-4ba6006f"]]);var me=ue;const ve={key:1,id:"host-instances",class:"row"},pe={class:"col span-12"},he={class:"state"};function ke(e,t,a,r,l,o){const n=(0,s.resolveComponent)("Loading"),c=(0,s.resolveComponent)("HarvesterVmState"),i=(0,s.resolveComponent)("SortableTable");return e.$fetchState.pending?((0,s.openBlock)(),(0,s.createBlock)(n,{key:0})):((0,s.openBlock)(),(0,s.createElementBlock)("div",ve,[(0,s.createElementVNode)("div",pe,[(0,s.createVNode)(i,(0,s.mergeProps)(e.$attrs,{headers:o.headers,"default-sort-by":"age",rows:o.rows,"key-field":"_key"}),{"cell:state":(0,s.withCtx)((e=>[(0,s.createElementVNode)("div",he,[(0,s.createVNode)(c,{class:"vmstate",row:e.row,"all-cluster-network":o.allClusterNetwork},null,8,["row","all-cluster-network"])])])),_:1},16,["headers","rows"])])]))}var be=a(68774),ye=a(2841),ge=a(98993),Ne={name:"InstanceNode",components:{SortableTable:b.A,Loading:k.A,HarvesterVmState:ge["default"]},props:{node:{type:Object,required:!0}},async fetch(){await(0,f.kR)({vms:this.$store.dispatch("harvester/findAll",{type:B.rk.VM}),vmis:this.$store.dispatch("harvester/findAll",{type:B.rk.VMI}),allClusterNetwork:this.$store.dispatch("harvester/findAll",{type:B.rk.CLUSTER_NETWORK})})},computed:{allClusterNetwork(){return this.$store.getters["harvester/all"](B.rk.CLUSTER_NETWORK)},rows(){const e=this.$store.getters["harvester/all"](B.rk.VM);return e.filter((e=>e.vmi?.status?.nodeName===this.node?.metadata?.labels?.[ye.yA]))},headers(){return[be.c4,be.o_,{name:"vmCPU",labelKey:"tableHeaders.cpu",search:!1,sort:["spec.template.spec.domain.cpu.cores"],value:"spec.template.spec.domain.cpu.cores",width:120},{name:"vmRAM",labelKey:"glance.memory",search:!1,sort:["memorySort"],value:"spec.template.spec.domain.resources.limits.memory",width:120},{name:"ip",label:"IP Address",labelKey:"harvester.tableHeaders.vm.ipAddress",value:"id",formatter:"HarvesterIpAddress"},{...be.K,sort:"metadata.creationTimestamp:desc"}]}}};a(18350);const Ve=(0,de.A)(Ne,[["render",ke],["__scopeId","data-v-313f57d6"]]);var fe=Ve;const we={key:1},Ce={class:"row"},Ee={class:"col span-12"},Se={class:"mt-5"},Be={class:"row mt-10"},Ae={class:"col span-12"},Te={class:"pull-left"},_e={class:"pull-right"},xe={key:0,class:"row mt-30"},Me={class:"col span-4"},$e={class:"col span-4"},De={class:"col span-4"},Oe={class:"row mt-10"},Re={class:"col span-4"},Ie={key:0,class:"col span-4"},Le={class:"col span-4"};function Pe(e,t,a,r,l,o){const n=(0,s.resolveComponent)("Banner"),c=(0,s.resolveComponent)("Tag"),i=(0,s.resolveComponent)("LabelValue"),d=(0,s.resolveComponent)("RadioGroup"),u=(0,s.resolveComponent)("BadgeState"),m=(0,s.resolveDirective)("clean-tooltip");return(0,s.openBlock)(),(0,s.createElementBlock)("div",{class:"disk","onUpdate:value":t[1]||(t[1]=(...e)=>o.update&&o.update(...e))},[o.mountedMessage?((0,s.openBlock)(),(0,s.createBlock)(n,{key:0,color:"error",label:o.mountedMessage},null,8,["label"])):(0,s.createCommentVNode)("",!0),a.value.isNew?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("div",we,[(0,s.createElementVNode)("div",Ce,[(0,s.createElementVNode)("div",Ee,[a.value.tags.length?((0,s.openBlock)(),(0,s.createBlock)(i,{key:0,name:e.t("harvester.host.disk.tags.label")},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",Se,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(a.value.tags,((e,t)=>((0,s.openBlock)(),(0,s.createBlock)(c,{key:t},{default:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e),1)])),_:2},1024)))),128))])])),_:1},8,["name"])):(0,s.createCommentVNode)("",!0)])]),(0,s.createElementVNode)("div",Be,[(0,s.createElementVNode)("div",Ae,[(0,s.createElementVNode)("div",Te,[(0,s.createVNode)(d,{value:a.value.allowScheduling,"onUpdate:value":t[0]||(t[0]=e=>a.value.allowScheduling=e),name:"diskScheduling",label:e.t("harvester.host.disk.allowScheduling.label"),mode:a.mode,options:o.allowSchedulingOptions,row:!0},null,8,["value","label","mode","options"])]),(0,s.createElementVNode)("div",_e,[(0,s.createTextVNode)((0,s.toDisplayString)(e.t("harvester.host.disk.conditions"))+": ",1),(0,s.withDirectives)((0,s.createVNode)(u,{color:"True"===e.readyCondition.status?"bg-success":"bg-error",icon:"True"===e.readyCondition.status?"icon-checkmark":"icon-warning",label:"Ready",class:"mr-10 ml-10 state"},null,8,["color","icon"]),[[m,e.readyCondition.message]]),(0,s.withDirectives)((0,s.createVNode)(u,{color:"True"===e.schedulableCondition.status&&o.targetDisk?.allowScheduling?"bg-success":"bg-error",icon:"True"===e.schedulableCondition.status&&o.targetDisk?.allowScheduling?"icon-checkmark":"icon-warning",label:"Schedulable",class:"mr-10 state"},null,8,["color","icon"]),[[m,o.schedulableTooltipMessage]]),o.provisionPhase.label?((0,s.openBlock)(),(0,s.createBlock)(u,{key:0,color:o.provisionPhase.color,icon:o.provisionPhase.icon,label:o.provisionPhase.label,class:"mr-10 state"},null,8,["color","icon","label"])):(0,s.createCommentVNode)("",!0)])])]),a.value.isNew?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("div",xe,[(0,s.createElementVNode)("div",Me,[(0,s.createVNode)(i,{name:e.t("harvester.host.disk.storageAvailable.label"),value:a.value.storageAvailable},null,8,["name","value"])]),(0,s.createElementVNode)("div",$e,[(0,s.createVNode)(i,{name:e.t("harvester.host.disk.storageScheduled.label"),value:a.value.storageScheduled},null,8,["name","value"])]),(0,s.createElementVNode)("div",De,[(0,s.createVNode)(i,{name:e.t("harvester.host.disk.storageMaximum.label"),value:a.value.storageMaximum},null,8,["name","value"])])])),t[2]||(t[2]=(0,s.createElementVNode)("hr",{class:"mt-10"},null,-1))])),(0,s.createElementVNode)("div",Oe,[(0,s.createElementVNode)("div",Re,[(0,s.createVNode)(i,{name:e.t("generic.name"),value:a.value.displayName},null,8,["name","value"])]),a.value.path?((0,s.openBlock)(),(0,s.createElementBlock)("div",Ie,[(0,s.createVNode)(i,{name:e.t("harvester.host.disk.path.label"),value:a.value.path},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("div",Le,[(0,s.createVNode)(i,{name:e.t("harvester.host.disk.provisioner"),value:o.provisioner},null,8,["name","value"])])])],32)}var Ue=a(87102),He=a(154),Ke=a(10196),je={emits:["update:value"],components:{LabelValue:p.A,BadgeState:Ue.j,Banner:ae.l,Tag:d.A,RadioGroup:Ke.z},mixins:[He.A],props:{value:{type:Object,default:()=>({})},disks:{type:Array,default:()=>[]},mode:{type:String,default:"edit"}},data(){return{}},computed:{targetDisk(){return this.disks.find((e=>e.name===this.value.name))},schedulableTooltipMessage(){const{name:e,path:t}=this.value;return this.targetDisk&&!this.targetDisk.allowScheduling&&e&&t?this.t("harvester.host.disk.allowScheduling.tooltip",{name:e,path:t}):this.schedulableCondition.message},allowSchedulingOptions(){return[{label:this.t("generic.enabled"),value:!0},{label:this.t("generic.disabled"),value:!1}]},evictionRequestedOptions(){return[{label:this.t("generic.yes"),value:!0},{label:this.t("generic.no"),value:!1}]},provisionPhase(){return this.value?.blockDevice?.provisionPhase||{}},mountedMessage(){const e=this.value?.blockDevice?.metadata?.state||{};return e?.error?e?.message:""},provisioner(){let e=`harvester.host.disk.storage.longhorn.${N.Zd}.label`;return this.value?.blockDevice?.spec?.provisioner.longhorn&&(e=`harvester.host.disk.storage.longhorn.${this.value.blockDevice.spec.provisioner.longhorn.engineVersion}.label`),this.value?.blockDevice?.spec?.provisioner.lvm&&(e="harvester.host.disk.storage.lvm.label"),this.t(e)}},methods:{update(){this.$emit("update:value",this.value)},canEditPath(e){return!!this.mountedMessage||!(!e.isNew||!e.originPath)}}};a(91810);const Fe=(0,de.A)(je,[["render",Pe],["__scopeId","data-v-2f2890f0"]]);var qe=Fe;const Je={class:"row"},ze={class:"col span-12"},Ge={class:"pull-right"},Qe={class:"row mt-10"},We={class:"col span-6"},Ye={class:"col span-6"},Xe={class:"row mt-20"},Ze={class:"col span-12"};function et(e,t,a,r,l,o){const n=(0,s.resolveComponent)("BadgeState"),c=(0,s.resolveComponent)("LabelValue"),i=(0,s.resolveComponent)("LinkStatus"),d=(0,s.resolveComponent)("ArrayListGrouped"),u=(0,s.resolveDirective)("clean-tooltip");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createElementVNode)("div",Je,[(0,s.createElementVNode)("div",ze,[(0,s.createElementVNode)("div",Ge,[(0,s.createTextVNode)((0,s.toDisplayString)(e.t("resourceTabs.conditions.tab"))+": ",1),(0,s.withDirectives)((0,s.createVNode)(n,{color:"True"===o.readyCondition.status?"bg-success":"bg-error",icon:"True"===o.readyCondition.status?"icon-checkmark":"icon-warning",label:e.t("tableHeaders.ready"),class:"mr-10 ml-10 state"},null,8,["color","icon","label"]),[[u,o.readyCondition.message]])])])]),(0,s.createElementVNode)("div",Qe,[(0,s.createElementVNode)("div",We,[(0,s.createVNode)(c,{name:e.t("harvester.network.clusterNetwork.label"),value:a.value.status.clusterNetwork},null,8,["name","value"])]),(0,s.createElementVNode)("div",Ye,[(0,s.createVNode)(c,{name:e.t("harvester.vlanStatus.vlanConfig.label"),value:a.value.status.vlanConfig},null,8,["name","value"])])]),(0,s.createElementVNode)("div",Xe,[(0,s.createElementVNode)("div",Ze,[(0,s.createVNode)(d,{value:o.linkStatus,"onUpdate:value":t[0]||(t[0]=e=>o.linkStatus=e),mode:a.mode,"can-remove":!1},{default:(0,s.withCtx)((e=>[(0,s.createVNode)(i,{value:e.row.value,mode:a.mode},null,8,["value","mode"])])),_:1},8,["value","mode"])])])])}var tt=a(14220);const at={class:"row mt-10"},st={class:"col span-6"},rt={class:"col span-6"},lt={class:"row mt-10"},ot={class:"col span-6"},nt={class:"col span-6"},ct={class:"row mt-10"},it={key:0,class:"col span-6"};function dt(e,t,a,r,l,o){const n=(0,s.resolveComponent)("LabelValue");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createElementVNode)("div",at,[(0,s.createElementVNode)("div",st,[(0,s.createVNode)(n,{name:e.t("generic.name"),value:a.value.name},null,8,["name","value"])]),(0,s.createElementVNode)("div",rt,[(0,s.createVNode)(n,{name:e.t("tableHeaders.state"),value:a.value.state},null,8,["name","value"])])]),(0,s.createElementVNode)("div",lt,[(0,s.createElementVNode)("div",ot,[(0,s.createVNode)(n,{name:e.t("tableHeaders.type"),value:a.value.type},null,8,["name","value"])]),(0,s.createElementVNode)("div",nt,[(0,s.createVNode)(n,{name:e.t("harvester.fields.macAddress"),value:a.value.mac},null,8,["name","value"])])]),(0,s.createElementVNode)("div",ct,["true"===a.value.promiscuous?((0,s.openBlock)(),(0,s.createElementBlock)("div",it,[(0,s.createVNode)(n,{name:e.t("harvester.fields.promiscuous"),value:a.value.promiscuous},{value:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)("true"===a.value.promiscuous?e.t("generic.yes"):e.t("generic.no")),1)])),_:1},8,["name","value"])])):(0,s.createCommentVNode)("",!0)])])}var ut={name:"LinkStatus",components:{LabelValue:p.A},props:{value:{type:Object,required:!0},mode:{type:String,default:tt.YQ}}};const mt=(0,de.A)(ut,[["render",dt]]);var vt=mt,pt={name:"HarvesterHostNetwork",components:{LabelValue:p.A,LinkStatus:vt,ArrayListGrouped:h.A,BadgeState:Ue.j},props:{value:{type:Object,required:!0},mode:{type:String,default:tt.YQ}},computed:{conditions(){return this.value?.status?.conditions||[]},readyCondition(){return(0,C.jq)(this.conditions,"type","ready")||{}},linkStatus(){const e=this.value?.status?.linkMonitor,t=this.value?.status?.node,a=this.$store.getters["currentProduct"].inStore,s=this.$store.getters[`${a}/all`](B.rk.LINK_MONITOR),r=(s.filter((t=>t.id===e))||[])[0]||{};return r?.status?.linkStatus?.[t]||[]}}};const ht=(0,de.A)(pt,[["render",et]]);var kt=ht;const bt={class:"row mb-20"},yt={class:"col span-4"},gt={key:0,class:"row mb-20"},Nt={class:"col span-4"},Vt={class:"col span-4"},ft={class:"col span-4"},wt={key:1},Ct={class:"row mb-20"},Et={class:"col span-4"},St={class:"col span-4"},Bt={class:"col span-4"},At={class:"row mb-20"},Tt={class:"col span-4"},_t={class:"col span-4"},xt={class:"row mb-20"},Mt={class:"col span-4"},$t={class:"col span-4"},Dt={class:"col span-4"},Ot={class:"row mb-20"},Rt={class:"col span-4"},It={class:"col span-4"},Lt={class:"col span-4"},Pt={class:"row mb-20"},Ut={class:"col span-4"},Ht={class:"col span-4"};function Kt(e,t,a,r,l,o){const n=(0,s.resolveComponent)("LabelValue"),c=(0,s.resolveComponent)("t");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[l.ksmtuned.status?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[(0,s.createElementVNode)("h2",null,(0,s.toDisplayString)(e.t("harvester.host.ksmtuned.configure")),1),(0,s.createElementVNode)("div",bt,[(0,s.createElementVNode)("div",yt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.run"),value:o.runText},null,8,["name","value"])])]),o.showRunInformation?((0,s.openBlock)(),(0,s.createElementBlock)("div",gt,[(0,s.createElementVNode)("div",Nt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.thresCoef"),value:o.thresCoef},null,8,["name","value"])]),(0,s.createElementVNode)("div",Vt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.mode"),value:o.modeText},null,8,["name","value"])]),(0,s.createElementVNode)("div",ft,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.enableMergeNodes"),value:o.mergeNodesText},null,8,["name","value"])])])):(0,s.createCommentVNode)("",!0),o.showRunInformation?((0,s.openBlock)(),(0,s.createElementBlock)("div",wt,[t[0]||(t[0]=(0,s.createElementVNode)("hr",{class:"divider"},null,-1)),(0,s.createElementVNode)("h3",null,(0,s.toDisplayString)(e.t("harvester.host.ksmtuned.parameters.title")),1),(0,s.createElementVNode)("div",Ct,[(0,s.createElementVNode)("div",Et,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.parameters.boost"),value:l.ksmtuned.spec.ksmtunedParameters.boost},null,8,["name","value"])]),(0,s.createElementVNode)("div",St,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.parameters.decay"),value:l.ksmtuned.spec.ksmtunedParameters.decay},null,8,["name","value"])]),(0,s.createElementVNode)("div",Bt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.parameters.sleepMsec"),value:l.ksmtuned.spec.ksmtunedParameters.sleepMsec},null,8,["name","value"])])]),(0,s.createElementVNode)("div",At,[(0,s.createElementVNode)("div",Tt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.parameters.minPages"),value:l.ksmtuned.spec.ksmtunedParameters.minPages},null,8,["name","value"])]),(0,s.createElementVNode)("div",_t,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.parameters.maxPages"),value:l.ksmtuned.spec.ksmtunedParameters.maxPages},null,8,["name","value"])])])])):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("div",null,[t[1]||(t[1]=(0,s.createElementVNode)("hr",{class:"divider"},null,-1)),(0,s.createElementVNode)("h3",null,[(0,s.createVNode)(c,{k:"harvester.host.ksmtuned.statistics.title",raw:!0})]),(0,s.createElementVNode)("div",xt,[(0,s.createElementVNode)("div",Mt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.ksmStatus")},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("span",{class:(0,s.normalizeClass)(o.ksmdPhaseTextColor)},(0,s.toDisplayString)(o.ksmdPhase),3)])),_:1},8,["name"])]),(0,s.createElementVNode)("div",$t,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.statistics.sharing"),value:l.ksmtuned.status.sharing},null,8,["name","value"])]),(0,s.createElementVNode)("div",Dt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.statistics.shared"),value:l.ksmtuned.status.shared},null,8,["name","value"])])]),(0,s.createElementVNode)("div",Ot,[(0,s.createElementVNode)("div",Rt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.statistics.unshared"),value:l.ksmtuned.status.unshared},null,8,["name","value"])]),(0,s.createElementVNode)("div",It,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.statistics.volatile"),value:l.ksmtuned.status.volatile},null,8,["name","value"])]),(0,s.createElementVNode)("div",Lt,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.statistics.fullScans"),value:l.ksmtuned.status.fullScans},null,8,["name","value"])])]),(0,s.createElementVNode)("div",Pt,[(0,s.createElementVNode)("div",Ut,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.statistics.stableNodeDups"),value:l.ksmtuned.status.stableNodeDups},null,8,["name","value"])]),(0,s.createElementVNode)("div",Ht,[(0,s.createVNode)(n,{name:e.t("harvester.host.ksmtuned.statistics.stableNodeChains"),value:l.ksmtuned.status.stableNodeChains},null,8,["name","value"])])])])],64)):(0,s.createCommentVNode)("",!0)])}var jt=a(27547),Ft={name:"HarvesterKsmtuned",components:{LabelValue:p.A},props:{mode:{type:String,required:!0},node:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await this.$store.dispatch(`${e}/findAll`,{type:B.rk.KSTUNED});this.ksmtuned=t.find((e=>e.id===this.node.id))},data(){return{ksmtuned:{}}},computed:{modeText(){const e=this.ksmtuned.spec.mode;return jt.ksmtunedMode.find((t=>t.value===e)).label},thresCoef(){return`${this.ksmtuned.spec.thresCoef} %`},runText(){const e=this.ksmtuned.spec.run;return jt.ksmtunedRunOption.find((t=>t.value===e)).label},showRunInformation(){return"run"===this.ksmtuned.spec.run},mergeNodesText(){return this.ksmtuned.spec?.mergeAcrossNodes?this.t("harvester.host.ksmtuned.enable"):this.t("harvester.host.ksmtuned.disable")},ksmdPhase(){return this.ksmtuned?.status?.ksmdPhase},ksmdPhaseTextColor(){return"Running"===this.ksmdPhase?"text-success":"text-warning"}}};const qt=(0,de.A)(Ft,[["render",Kt]]);var Jt=qt;const zt={key:0},Gt={key:1},Qt={class:"row mb-20"},Wt={class:"col span-6"},Yt={class:"col span-6"},Xt={class:"row"},Zt={class:"col span-6"},ea={class:"col span-6"},ta={class:"row mt-20"},aa={class:"col span-6"},sa={key:0,class:"col span-6"},ra={key:2,class:"row"},la={class:"col span-6"};function oa(e,t,a,r,l,o){const n=(0,s.resolveComponent)("Banner"),c=(0,s.resolveComponent)("LabelValue"),i=(0,s.resolveComponent)("RadioGroup");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[a.inventory.warningMessages.length>0?((0,s.openBlock)(),(0,s.createElementBlock)("div",zt,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(a.inventory.warningMessages,((e,t)=>((0,s.openBlock)(),(0,s.createBlock)(n,{key:t,color:"error",label:e.text},null,8,["label"])))),128))])):(0,s.createCommentVNode)("",!0),l.enableInventory?((0,s.openBlock)(),(0,s.createElementBlock)("div",Gt,[(0,s.createElementVNode)("div",Qt,[(0,s.createElementVNode)("div",Wt,[(0,s.createVNode)(c,{name:e.t("harvester.seeder.inventory.host.label"),value:l.value.spec.baseboardSpec.connection.host},null,8,["name","value"])]),(0,s.createElementVNode)("div",Yt,[(0,s.createVNode)(c,{name:e.t("harvester.seeder.inventory.port.label"),value:l.value.spec.baseboardSpec.connection.port},null,8,["name","value"])])]),(0,s.createElementVNode)("div",Xt,[(0,s.createElementVNode)("div",Zt,[(0,s.createVNode)(c,{name:e.t("harvester.seeder.inventory.insecureTLS.label"),value:l.value.spec.baseboardSpec.connection.insecureTLS?e.t("generic.yes"):e.t("generic.no")},null,8,["name","value"])]),(0,s.createElementVNode)("div",ea,[(0,s.createVNode)(c,{name:e.t("harvester.seeder.inventory.secret.label"),value:o.selectedSecret},null,8,["name","value"])])]),(0,s.createElementVNode)("div",ta,[(0,s.createElementVNode)("div",aa,[(0,s.createVNode)(c,{name:e.t("harvester.seeder.inventory.event.label"),value:l.value.spec.events.enabled?e.t("generic.enabled"):e.t("generic.disabled")},null,8,["name","value"])]),l.value.spec.events.enabled?((0,s.openBlock)(),(0,s.createElementBlock)("div",sa,[(0,s.createVNode)(c,{name:e.t("harvester.seeder.inventory.pollingInterval.label"),value:l.value.spec.events.pollingInterval},null,8,["name","value"])])):(0,s.createCommentVNode)("",!0)])])):((0,s.openBlock)(),(0,s.createElementBlock)("div",ra,[(0,s.createElementVNode)("div",la,[(0,s.createVNode)(i,{value:l.enableInventory,"onUpdate:value":t[0]||(t[0]=e=>l.enableInventory=e),options:[{label:e.t("generic.enabled"),value:!0},{label:e.t("generic.disabled"),value:!1}],mode:a.mode,name:"enableInventory"},null,8,["value","options","mode"])])]))])}var na={name:"HarvesterSeeder",components:{RadioGroup:Ke.z,LabelValue:p.A,Banner:ae.l},props:{mode:{type:String,required:!0},node:{type:Object,required:!0},inventory:{type:Object,required:!0}},data(){const e=!!this.inventory?.id;return{enableInventory:e,value:this.inventory}},computed:{selectedSecret(){const e=this.value.spec?.baseboardSpec?.connection?.authSecretRef?.namespace,t=this.value?.spec?.baseboardSpec?.connection?.authSecretRef?.name;return e&&t?`${e}/${t}`:"N/A"}}};const ca=(0,de.A)(na,[["render",oa]]);var ia=ca;const da="longhorn-system";var ua={name:"DetailHost",components:{Tabbed:u.A,Tab:m.A,Tag:d.A,Basic:me,Instance:fe,ArrayListGrouped:h.A,Disk:qe,InfoBox:v.A,VlanStatus:kt,LabelValue:p.A,HarvesterKsmtuned:Jt,Loading:k.A,SortableTable:b.A,HarvesterSeeder:ia,Banner:y.A},mixins:[g.A],props:{value:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={nodes:this.$store.dispatch("harvester/findAll",{type:N.NW}),pods:this.$store.dispatch(`${e}/findAll`,{type:N.Sm})};this.$store.getters["harvester/schemaFor"](B.rk.VLAN_STATUS)&&(t.hostNetworks=this.$store.dispatch("harvester/findAll",{type:B.rk.VLAN_STATUS})),this.$store.getters["harvester/schemaFor"](B.rk.BLOCK_DEVICE)&&(t.blockDevices=this.$store.dispatch("harvester/findAll",{type:B.rk.BLOCK_DEVICE})),this.$store.getters["harvester/schemaFor"](N.oe.NODES)&&(t.longhornNodes=this.$store.dispatch("harvester/findAll",{type:N.oe.NODES})),this.$store.getters["harvester/schemaFor"](B.rk.LINK_MONITOR)&&(t.linkMonitors=this.$store.dispatch("harvester/findAll",{type:B.rk.LINK_MONITOR})),this.$store.getters["harvester/schemaFor"](B.rk.ADD_ONS)&&(t.addons=this.$store.dispatch(`${e}/findAll`,{type:B.rk.ADD_ONS})),this.$store.getters["harvester/schemaFor"](B.rk.INVENTORY)&&(t.inventories=this.$store.dispatch(`${e}/findAll`,{type:B.rk.INVENTORY}));const a=await(0,f.kR)(t),s=(a.hostNetworks||[]).find((e=>this.value.id===e.attachNodeName));this.loadMetrics(),s&&(this.hostNetworkResource=s);const r=this.$store.getters[`${e}/all`](B.rk.BLOCK_DEVICE),l=r.filter((e=>{const t=e?.spec?.nodeName===this.value.id,a=(0,C.jq)(this.longhornDisks,"name",e.metadata.name);return e?.isProvisioned&&t&&!a})).map((e=>({isNew:!0,name:e?.metadata?.name,originPath:e?.spec?.fileSystem?.mountPoint,path:e?.spec?.fileSystem?.mountPoint,blockDevice:e,displayName:e?.displayName,forceFormatted:e?.spec?.fileSystem?.forceFormatted||!1}))),o=[...this.longhornDisks,...l];this.disks=o,this.newDisks=(0,E.o8)(o);const n=this.$store.getters[`${e}/all`](B.rk.ADD_ONS),c=n.find((e=>"harvester-system/harvester-seeder"===e.id)),i=!!c&&c?.spec?.enabled;if(i){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](B.rk.INVENTORY)||[],a=t.find((e=>e.id===`harvester-system/${this.value.id}`));a?this.inventory=a:(this.inventory=await this.$store.dispatch(`${e}/create`,{type:B.rk.INVENTORY,metadata:{name:this.value.id,namespace:"harvester-system"}}),this.inventory.applyDefaults())}},data(){return{metrics:null,mode:"view",hostNetworkResource:null,newDisks:[],disks:[],allEvents:[],didLoadEvents:!1,inventory:{}}},computed:{...(0,i.L8)({t:"i18n/t"}),longhornDisks(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](N.oe.NODES,`longhorn-system/${this.value.id}`),a=t?.status?.diskStatus||{},s=t?.spec?.disks||{},r={increment:1024,minExponent:3,maxExponent:3,maxPrecision:2,suffix:"iB"},l=Object.keys(a).map((t=>{const l=this.$store.getters[`${e}/byId`](B.rk.BLOCK_DEVICE,`longhorn-system/${t}`);return{...a[t],...s?.[t],name:t,isNew:!1,storageReserved:(0,w.Mo)(s[t]?.storageReserved,r),storageAvailable:(0,w.Mo)(a[t]?.storageAvailable,r),storageMaximum:(0,w.Mo)(a[t]?.storageMaximum,r),storageScheduled:(0,w.Mo)(a[t]?.storageScheduled,r),blockDevice:l,displayName:l?.displayName||t,forceFormatted:l?.spec?.fileSystem?.forceFormatted||!1,tags:s?.[t]?.tags||[]}}));return l},hasKsmtunedSchema(){const e=this.$store.getters["currentProduct"].inStore;return!!this.$store.getters[`${e}/schemaFor`](B.rk.KSTUNED)},hasBlockDevicesSchema(){return!!this.$store.getters["harvester/schemaFor"](B.rk.BLOCK_DEVICE)},hasHostNetworksSchema(){return!!this.$store.getters["harvester/schemaFor"](B.rk.VLAN_STATUS)},vlanStatuses(){const e=this.$store.getters["currentProduct"].inStore,t=this.value.id,a=this.$store.getters[`${e}/all`](B.rk.VLAN_STATUS);return a.filter((e=>e?.status?.node===t))||[]},longhornNode(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](N.oe.NODES);return t.find((e=>e.id===`${da}/${this.value.id}`))},events(){return this.allEvents.filter((e=>e.involvedObject?.uid===this.value?.metadata?.uid&&"SeederUpdated"!==e.reason)).map((e=>({reason:`${e.reason||this.t("generic.unknown")}${e.count>1?` (${e.count})`:""}`.trim(),message:e.message||this.t("generic.unknown"),date:e.lastTimestamp||e.firstTimestamp||e.metadata.creationTimestamp,eventType:e.eventType})))},eventHeaders(){return[{name:"reason",label:this.t("tableHeaders.reason"),value:"reason",sort:"reason"},{name:"message",label:this.t("tableHeaders.message"),value:"message",sort:"message"},{name:"date",label:this.t("tableHeaders.updated"),value:"date",sort:"date:desc",formatter:"LiveDate",formatterOpts:{addSuffix:!0},width:125}]},seederEnabled(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](B.rk.ADD_ONS),a=t.find((e=>"harvester-system/harvester-seeder"===e.id));return!!a&&a?.spec?.enabled},ntpSync(){const e=this.value.metadata?.annotations?.[V.r.NODE_NTP_SYNC_STATUS];let t=null;if(!e)return t;try{t=JSON.parse(e)}catch(a){this.$store.dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,S.ZD)(this.value.metadata.name)}),err:a},{root:!0})}return t},ntpSyncedStatus(){const e=this.ntpSync?.ntpSyncStatus;return"disabled"===e?{status:"disabled",warning:{key:"harvester.host.ntp.ntpSyncStatus.isDisabled"}}:"unsynced"===e?{status:"unsynced",warning:{key:"harvester.host.ntp.ntpSyncStatus.isUnsynced",current:this.ntpSync?.currentNtpServers?`<code>${this.ntpSync.currentNtpServers}</code>`:""}}:{}}},methods:{async loadMetrics(){const e=this.$store.getters["harvester/schemaFor"](N.$v.NODE);e&&(this.metrics=await this.$store.dispatch("harvester/find",{type:N.$v.NODE,id:this.value.id,opt:{force:!0,watch:!1}}),this.$forceUpdate())},tabChange(e){this.didLoadEvents||"events"!==e?.selectedName||this.$store.dispatch("harvester/findAll",{type:N.ll}).then((e=>{this.allEvents=e,this.didLoadEvents=!0}))}}};const ma=(0,de.A)(ua,[["render",c]]);var va=ma},39562:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var s=a(9274);const r={class:"mt-10"},l={class:"mt-10"};function o(e,t,a,o,n,c){const i=(0,s.resolveComponent)("Loading"),d=(0,s.resolveComponent)("CopyCode"),u=(0,s.resolveComponent)("Tab"),m=(0,s.resolveComponent)("ResourceTabs"),v=(0,s.resolveDirective)("clean-html");return e.$fetchState.pending?((0,s.openBlock)(),(0,s.createBlock)(i,{key:0})):((0,s.openBlock)(),(0,s.createBlock)(m,{key:1,value:a.value,"default-tab":c.defaultTab,onInput:t[0]||(t[0]=t=>e.$emit("input",t))},{default:(0,s.withCtx)((()=>[c.showRegistration?((0,s.openBlock)(),(0,s.createBlock)(u,{key:0,name:"registration",label:e.t("cluster.tabs.registration"),weight:2,class:"p-10"},{default:(0,s.withCtx)((()=>[(0,s.withDirectives)((0,s.createElementVNode)("h4",null,null,512),[[v,e.t("cluster.harvester.registration.step1",null,!0)]]),(0,s.withDirectives)((0,s.createElementVNode)("h4",r,null,512),[[v,e.t("cluster.harvester.registration.step2",null,!0)]]),(0,s.withDirectives)((0,s.createElementVNode)("h4",l,null,512),[[v,e.t("cluster.harvester.registration.step3",null,!0)]]),(0,s.createVNode)(d,{class:"m-10 p-10"},{default:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(c.registrationURL),1)])),_:1})])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["value","default-tab"]))}var n=a(84409),c=a(72551);function i(e,t,a,r,l,o){const n=(0,s.resolveDirective)("clean-tooltip");return(0,s.withDirectives)(((0,s.openBlock)(),(0,s.createElementBlock)("code",{class:"copy",onClick:t[0]||(t[0]=(0,s.withModifiers)(((...e)=>o.clicked&&o.clicked(...e)),["stop","prevent"]))},[(0,s.renderSlot)(e.$slots,"default",{},void 0,!0)])),[[n,o.tooltip]])}var d=a(68851),u=a(48881),m=a(99726);function v(e){return e.text?e.text:(0,d.cy)(e)?e.map(v).join(" "):e.children?(0,d.cy)(e.children)?e.children.map(v).join(" "):e.children:""}var p={emits:["copied","error"],data(){return{copied:!1}},methods:{clicked(e){e.stopPropagation(),e.preventDefault();const t=v(this.$slots.default()).trim();(0,u.e)(t).then((()=>{this.copied=!0,setTimeout((()=>{this.copied=!1}),2e3),this.$emit("copied")})).catch((e=>{this.$emit("error",(0,m.rz)(e))}))}},computed:{tooltip(){const e=this.copied?"Copied!":"Click to Copy";return{content:e,hideOnTargetClick:!1}}}},h=(a(25635),a(47433));const k=(0,h.A)(p,[["render",i],["__scopeId","data-v-2163c48c"]]);var b=k,y=a(49584),g=a(88339),N={emits:["input"],components:{Loading:n.A,ResourceTabs:c.A,Tab:y.A,CopyCode:b},props:{value:{type:Object,default:()=>({})}},async fetch(){await this.value.waitForProvisioner();const e={clusterToken:this.value.getOrCreateToken()},t=await(0,g.kR)(e);this.allNodes=t.allNodes||[],this.allNodePools=t.allNodePools||[],this.clusterToken=t.clusterToken},data(){return{clusterToken:null}},computed:{defaultTab(){return this.showRegistration&&!this.machines?.length?"registration":""},showRegistration(){return!!this.clusterToken&&(!!this.value.isImported&&!this.value.mgmt?.isReady)},registrationURL(){return(this.clusterToken?.command||"").replace("kubectl apply -f ","")}}};const V=(0,h.A)(N,[["render",o]]);var f=V},1948:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return P}});var s=a(9274);const r={class:"row"},l={class:"col span-6 mb-20"},o={class:"col span-6 mb-20"},n={class:"row"},c={class:"col span-6 mb-20"},i={class:"col span-6 mb-20"},d={class:"row"},u={class:"col span-6 mb-20"},m={class:"col span-6 mb-20"};function v(e,t,a,v,p,h){const k=(0,s.resolveComponent)("LabelValue"),b=(0,s.resolveComponent)("Tab"),y=(0,s.resolveComponent)("BackupList"),g=(0,s.resolveComponent)("SnapshotList"),N=(0,s.resolveComponent)("Tabbed");return(0,s.openBlock)(),(0,s.createBlock)(N,(0,s.mergeProps)(e.$attrs,{class:"mt-15","side-tabs":!0}),{default:(0,s.withCtx)((()=>[(0,s.createVNode)(b,{name:"basic",label:e.t("harvester.virtualMachine.detail.tabs.basics"),class:"bordered-table",weight:99},{default:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",r,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(k,{name:e.t("harvester.schedule.detail.namespace"),value:a.value.metadata.namespace},null,8,["name","value"])]),(0,s.createElementVNode)("div",o,[(0,s.createVNode)(k,{name:e.t("harvester.schedule.detail.sourceVM"),value:a.value.spec.vmbackup.source.name},null,8,["name","value"])])]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",c,[(0,s.createVNode)(k,{name:e.t("harvester.schedule.cron"),value:h.cronExpression},null,8,["name","value"])]),(0,s.createElementVNode)("div",i,[(0,s.createVNode)(k,{name:e.t("harvester.schedule.scheduleType"),value:a.value.spec.vmbackup.type},null,8,["name","value"])])]),(0,s.createElementVNode)("div",d,[(0,s.createElementVNode)("div",u,[(0,s.createVNode)(k,{name:e.t("harvester.schedule.retain.label"),value:a.value.spec.retain},null,8,["name","value"])]),(0,s.createElementVNode)("div",m,[(0,s.createVNode)(k,{name:e.t("harvester.schedule.maxFailure.label"),value:a.value.spec.maxFailure},null,8,["name","value"])])])])),_:1},8,["label"]),h.isBackup?((0,s.openBlock)(),(0,s.createBlock)(b,{key:0,name:"backups",label:e.t("harvester.schedule.tabs.backups"),weight:89,class:"bordered-table"},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(y,{id:a.value.id},null,8,["id"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),h.isSnapshot?((0,s.openBlock)(),(0,s.createBlock)(b,{key:1,name:"snapshots",label:e.t("harvester.schedule.tabs.snapshots"),weight:79,class:"bordered-table"},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(g,{id:a.value.id},null,8,["id"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0)])),_:1},16)}var p=a(39412),h=a(59808),k=a(49584),b=a(41837);const y={key:1};function g(e,t,a,r,l,o){const n=(0,s.resolveComponent)("router-link"),c=(0,s.resolveComponent)("ResourceTable");return(0,s.openBlock)(),(0,s.createBlock)(c,(0,s.mergeProps)(e.$attrs,{headers:o.headers,groupable:!1,rows:o.filteredRows,schema:l.schema,"key-field":"_key","default-sort-by":"age"}),{"col:name":(0,s.withCtx)((({row:e})=>[(0,s.createElementVNode)("td",null,[(0,s.createElementVNode)("span",null,[e?.status?.source?((0,s.openBlock)(),(0,s.createBlock)(n,{key:0,to:e.detailLocation},{default:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.nameDisplay),1)])),_:2},1032,["to"])):((0,s.openBlock)(),(0,s.createElementBlock)("span",y,(0,s.toDisplayString)(e.nameDisplay),1))])])])),_:1},16,["headers","rows","schema"])}var N=a(53500),V=a(68774),f=a(5662),w=a(32766),C=a(2602),E={name:"BackupList",components:{ResourceTable:N.A},props:{id:{type:String,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await(0,f.v)({backups:this.$store.dispatch(`${e}/findAll`,{type:w.rk.BACKUP})});this.rows=t.backups},data(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/schemaFor`](w.rk.BACKUP);return{rows:[],schema:t}},computed:{headers(){const e=[V.c4,{...V.o_,width:400},{name:"targetVM",labelKey:"tableHeaders.targetVm",value:"attachVM",align:"left",sort:"attachVM",formatter:"AttachVMWithName"},{name:"backupTarget",labelKey:"tableHeaders.backupTarget",value:"backupTarget",sort:"backupTarget",align:"left",formatter:"HarvesterBackupTargetValidation"},{name:"readyToUse",labelKey:"tableHeaders.readyToUse",value:"status.readyToUse",sort:"status.readyToUse",align:"center",formatter:"Checked"}];return this.hasBackupProgresses&&e.push({name:"backupProgress",labelKey:"tableHeaders.progress",value:"backupProgress",sort:"backupProgress",align:"left",formatter:"HarvesterBackupProgressBar"}),e.push(V.K),e},hasBackupProgresses(){return!!this.rows.find((e=>void 0!==e.status?.progress))},filteredRows(){let e=this.rows.filter((e=>e.spec?.type===b.a.BACKUP));return this.id&&(e=e.filter((e=>e.metadata.annotations?.[C.r.SVM_BACKUP_ID]===this.id))),e}}},S=a(47433);const B=(0,S.A)(E,[["render",g]]);var A=B;const T={key:1};function _(e,t,a,r,l,o){const n=(0,s.resolveComponent)("router-link"),c=(0,s.resolveComponent)("ResourceTable");return(0,s.openBlock)(),(0,s.createBlock)(c,(0,s.mergeProps)(e.$attrs,{headers:o.headers,groupable:!1,rows:o.filteredRows,schema:l.schema,"key-field":"_key","default-sort-by":"age"}),{"col:name":(0,s.withCtx)((({row:e})=>[(0,s.createElementVNode)("td",null,[(0,s.createElementVNode)("span",null,[e?.status?.source?((0,s.openBlock)(),(0,s.createBlock)(n,{key:0,to:e.detailLocation},{default:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.nameDisplay),1)])),_:2},1032,["to"])):((0,s.openBlock)(),(0,s.createElementBlock)("span",T,(0,s.toDisplayString)(e.nameDisplay),1))])])])),_:1},16,["headers","rows","schema"])}var x=a(61117),M={name:"SnapshotList",components:{ResourceTable:N.A},props:{id:{type:String,required:!0}},async fetch(){const e=await(0,f.v)({backups:this.$store.dispatch("harvester/findAll",{type:w.rk.BACKUP})});this.rows=e.backups},data(){return{rows:[],schema:x.schema}},computed:{headers(){return[V.c4,V.o_,{name:"targetVM",labelKey:"tableHeaders.targetVm",value:"attachVM",align:"left",formatter:"AttachVMWithName"},{name:"readyToUse",labelKey:"tableHeaders.readyToUse",value:"status.readyToUse",align:"center",formatter:"Checked"},V.K]},filteredRows(){let e=this.rows.filter((e=>e.spec?.type===b.a.SNAPSHOT));return this.id&&(e=e.filter((e=>e.metadata.annotations?.[C.r.SVM_BACKUP_ID]===this.id))),e}}};const $=(0,S.A)(M,[["render",_]]);var D=$,O=a(37021),R=a.n(O),I={name:"ScheduleVmBackupDetail",components:{BackupList:A,SnapshotList:D,Tab:k.A,Tabbed:h.A,LabelValue:p.A},props:{value:{type:Object,required:!0}},computed:{isBackup(){return this.value.spec.vmbackup.type===b.a.BACKUP},isSnapshot(){return this.value.spec.vmbackup.type===b.a.SNAPSHOT},cronExpression(){let e="";try{e=R().toString(this.value.spec.cron,{verbose:!0})}catch(t){e=this.t("generic.invalidCron")}return e?`${this.value.spec.cron} (${e})`:this.value.spec.cron}}};a(27270);const L=(0,S.A)(I,[["render",v],["__scopeId","data-v-3a89cf31"]]);var P=L},84735:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return $}});var s=a(9274);const r={key:0,class:"row"},l={class:"col span-12"},o={class:"row mt-20"},n={class:"col span-6"},c={class:"col span-6"},i={key:1,class:"row"},d={class:"col span-6"},u={class:"col span-6"},m={key:2,class:"row"},v={class:"col span-6"},p={class:"col span-6"},h={key:3,class:"row"},k={class:"col span-6"},b={class:"col span-6"},y={key:4},g={key:0},N={class:"m-20 text-center"};function V(e,t,a,V,f,w){const C=(0,s.resolveComponent)("DetailText"),E=(0,s.resolveComponent)("Tab"),S=(0,s.resolveComponent)("ResourceTabs"),B=(0,s.resolveDirective)("t");return(0,s.openBlock)(),(0,s.createBlock)(S,{value:a.value,"need-events":!1,"need-related":!1,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("input",t))},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(E,{name:"data",label:w.dataLabel},{default:(0,s.withCtx)((()=>[w.isRegistry||w.isBasicAuth?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[w.isRegistry?((0,s.openBlock)(),(0,s.createElementBlock)("div",r,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(C,{value:f.registryUrl,"label-key":"secret.registry.domainName"},null,8,["value"])])])):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("div",o,[(0,s.createElementVNode)("div",n,[(0,s.createVNode)(C,{value:f.username,"label-key":"secret.registry.username"},null,8,["value"])]),(0,s.createElementVNode)("div",c,[(0,s.createVNode)(C,{value:f.password,"label-key":"secret.registry.password",conceal:!0},null,8,["value"])])])],64)):w.isCertificate?((0,s.openBlock)(),(0,s.createElementBlock)("div",i,[(0,s.createElementVNode)("div",d,[(0,s.createVNode)(C,{value:f.key,"label-key":"secret.certificate.privateKey",conceal:!0},null,8,["value"])]),(0,s.createElementVNode)("div",u,[(0,s.createVNode)(C,{value:f.crt,"label-key":"secret.certificate.certificate"},null,8,["value"])])])):w.isSvcAcctToken?((0,s.openBlock)(),(0,s.createElementBlock)("div",m,[(0,s.createElementVNode)("div",v,[(0,s.createVNode)(C,{value:f.crt,"label-key":"secret.serviceAcct.ca"},null,8,["value"])]),(0,s.createElementVNode)("div",p,[(0,s.createVNode)(C,{value:f.key,"label-key":"secret.serviceAcct.token",conceal:!0},null,8,["value"])])])):w.isSsh?((0,s.openBlock)(),(0,s.createElementBlock)("div",h,[(0,s.createElementVNode)("div",k,[(0,s.createVNode)(C,{value:f.username,"label-key":"secret.ssh.public"},null,8,["value"])]),(0,s.createElementVNode)("div",b,[(0,s.createVNode)(C,{value:f.password,"label-key":"secret.ssh.private",conceal:!0},null,8,["value"])])])):((0,s.openBlock)(),(0,s.createElementBlock)("div",y,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(w.parsedRows,((e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)("div",{key:t,class:"entry"},[(0,s.createVNode)(C,{value:e.value,label:e.key,conceal:!0},null,8,["value","label"])])))),128)),w.parsedRows.length?(0,s.createCommentVNode)("",!0):((0,s.openBlock)(),(0,s.createElementBlock)("div",g,[(0,s.withDirectives)((0,s.createElementVNode)("div",N,null,512),[[B,"sortableTable.noRows"]])]))]))])),_:1},8,["label"])])),_:1},8,["value","mode"])}var f=a(24989),w=a(4514),C=a(91825),E=a(72551),S=a(87383),B=a(49584);const A=[f.J.OPAQUE,f.J.DOCKER_JSON,f.J.TLS,f.J.SSH,f.J.BASIC],T=["DockerHub","Quay.io","Artifactory","Custom"];var _={emits:["input"],components:{ResourceTabs:E.A,DetailText:S.A,Tab:B.A},mixins:[C.A],props:{value:{type:Object,default:()=>({})}},data(){let e,t,a,s,r,l="Custom";if(this.value._type===f.J.DOCKER_JSON){const s=(0,w.u)(this.value.data[".dockerconfigjson"]),{auths:r}=JSON.parse(s);a=Object.keys(r)[0],"index.docker.io/v1/"===a?l="DockerHub":"quay.io"===a?l="Quay.io":a.includes("artifactory")&&(l="Artifactory"),e=r[a].username,t=r[a].password}const o=this.value?.data||{};return this.value._type===f.J.TLS&&(s="edit"===this.mode?"":(0,w.u)(o["tls.key"]),r=(0,w.u)(o["tls.crt"])),this.value._type===f.J.SERVICE_ACCT&&(s=(0,w.u)(o["token"]),r=(0,w.u)(o["ca.crt"])),this.value._type===f.J.BASIC&&(e=(0,w.u)(o.username||""),t=(0,w.u)(o.password||"")),this.value._type===f.J.SSH&&(e=(0,w.u)(o["ssh-publickey"]||""),t=(0,w.u)(o["ssh-privatekey"]||"")),this.value._type||(this.value["_type"]=f.J.OPAQUE),{types:A,registryAddresses:T,registryProvider:l,username:e,password:t,registryUrl:a,key:s,crt:r,relatedServices:[]}},computed:{isCertificate(){return this.value._type===f.J.TLS},isSvcAcctToken(){return this.value._type===f.J.SERVICE_ACCT},isRegistry(){return this.value._type===f.J.DOCKER_JSON},isSsh(){return this.value._type===f.J.SSH},isBasicAuth(){return this.value._type===f.J.BASIC},parsedRows(){const e=[],{data:t={}}=this.value;return Object.keys(t).forEach((a=>{const s=(0,w.u)(t[a]);e.push({key:a,value:s})})),e},dataLabel(){switch(this.value._type){case f.J.TLS:return this.t("secret.certificate.certificate");case f.J.SSH:return this.t("secret.ssh.keys");case f.J.BASIC:return this.t("secret.authentication");default:return this.t("secret.data")}}}},x=(a(98326),a(47433));const M=(0,x.A)(_,[["render",V],["__scopeId","data-v-16758c8a"]]);var $=M},19509:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return R}});var s=a(9274);const r={class:"row"},l={class:"col span-6 mb-20"},o={class:"col span-6 mb-20"},n={class:"row"},c={class:"col span-6 mb-20"},i={class:"col span-6 mb-20"},d={class:"mb-20"},u={class:"row"},m={class:"col span-6 mb-20"},v={class:"col span-6 mb-20"},p={key:0},h={key:1};function k(e,t,a,k,b,y){const g=(0,s.resolveComponent)("Loading"),N=(0,s.resolveComponent)("LabelValue"),V=(0,s.resolveComponent)("CpuMemory"),f=(0,s.resolveComponent)("Tab"),w=(0,s.resolveComponent)("Volume"),C=(0,s.resolveComponent)("Network"),E=(0,s.resolveComponent)("OverviewKeypairs"),S=(0,s.resolveComponent)("CloudConfig"),B=(0,s.resolveComponent)("Checkbox"),A=(0,s.resolveComponent)("Tabbed"),T=(0,s.resolveComponent)("CruResource");return e.$fetchState.pending?((0,s.openBlock)(),(0,s.createBlock)(g,{key:0})):((0,s.openBlock)(),(0,s.createBlock)(T,{key:1,"done-route":e.doneRoute,resource:a.value,mode:a.mode,"apply-hooks":e.applyHooks},{default:(0,s.withCtx)((()=>[e.spec?((0,s.openBlock)(),(0,s.createBlock)(A,{key:0,"side-tabs":!0,onChanged:y.onTabChanged},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(f,{name:"Basics",label:e.t("harvester.virtualMachine.detail.tabs.basics")},{default:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",r,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(N,{name:e.t("harvester.virtualMachine.detail.details.name"),value:y.name},null,8,["name","value"])]),(0,s.createElementVNode)("div",o,[(0,s.createVNode)(N,{name:e.t("harvester.fields.image"),value:y.imageName},null,8,["name","value"])])]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",c,[(0,s.createVNode)(N,{name:e.t("harvester.virtualMachine.detail.details.hostname"),value:y.hostname},null,8,["name","value"])]),(0,s.createElementVNode)("div",i,[(0,s.createVNode)(N,{name:e.t("harvester.virtualMachine.input.MachineType"),value:e.machineType},null,8,["name","value"])])]),(0,s.createElementVNode)("div",d,[(0,s.createVNode)(V,{cpu:e.cpu,mode:a.mode,memory:e.memory},null,8,["cpu","mode","memory"])]),(0,s.createElementVNode)("div",u,[(0,s.createElementVNode)("div",m,[(0,s.createVNode)(N,{name:e.t("harvester.virtualMachine.detail.details.bootOrder")},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",null,[(0,s.createElementVNode)("ul",null,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(y.disks,((e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)("li",{key:t},(0,s.toDisplayString)(e.bootOrder)+". "+(0,s.toDisplayString)(e.name)+" ("+(0,s.toDisplayString)(y.getDeviceType(e))+") ",1)))),128))])])])),_:1},8,["name"])]),(0,s.createElementVNode)("div",v,[(0,s.createVNode)(N,{name:e.t("harvester.virtualMachine.detail.details.CDROMs")},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",null,[y.cdroms.length>0?((0,s.openBlock)(),(0,s.createElementBlock)("ul",p,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(y.cdroms,((e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)("li",{key:t},(0,s.toDisplayString)(e.name),1)))),128))])):((0,s.openBlock)(),(0,s.createElementBlock)("span",h,(0,s.toDisplayString)(e.t("harvester.virtualMachine.detail.notAvailable")),1))])])),_:1},8,["name"])])])])),_:1},8,["label"]),(0,s.createVNode)(f,{name:"volume",label:e.t("harvester.tab.volume"),weight:-1},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(w,{value:e.diskRows,"onUpdate:value":t[0]||(t[0]=t=>e.diskRows=t),mode:a.mode},null,8,["value","mode"])])),_:1},8,["label"]),(0,s.createVNode)(f,{name:"network",label:e.t("harvester.tab.network"),weight:-2},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(C,{value:e.networkRows,"onUpdate:value":t[1]||(t[1]=t=>e.networkRows=t),mode:a.mode},null,8,["value","mode"])])),_:1},8,["label"]),(0,s.createVNode)(f,{name:"keypairs",label:e.t("harvester.virtualMachine.detail.tabs.keypairs"),class:"bordered-table",weight:-3},{default:(0,s.withCtx)((()=>[b.vm?((0,s.openBlock)(),(0,s.createBlock)(E,{key:0,value:b.vm,"onUpdate:value":t[2]||(t[2]=e=>b.vm=e)},null,8,["value"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["label"]),(0,s.createVNode)(f,{name:"advanced",label:e.t("harvester.tab.advanced"),weight:-4},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(S,{ref:"yamlEditor","user-script":e.userScript,mode:a.mode,"network-script":e.networkScript},null,8,["user-script","mode","network-script"]),t[4]||(t[4]=(0,s.createElementVNode)("div",{class:"spacer"},null,-1)),(0,s.createVNode)(B,{value:e.installUSBTablet,"onUpdate:value":t[3]||(t[3]=t=>e.installUSBTablet=t),mode:a.mode,class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.enableUsb")},null,8,["value","mode","label"])])),_:1},8,["label"])])),_:1},8,["onChanged"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["done-route","resource","mode","apply-hooks"]))}var b=a(59808),y=a(49584),g=a(84409),N=a(99960),V=a(42200),f=a(39412),w=a(88339),C=a(91825),E=a(48249),S=a(32766),B=a(75403),A=a(63536),T=a(95191),_=a(8746),x=a(81559);const M="n/a";var $={name:"BackupDetail",components:{Volume:T["default"],Network:_["default"],CruResource:N.A,Tabbed:b.A,Loading:g.A,LabelValue:f.A,Tab:y.A,CloudConfig:x["default"],Checkbox:V.S,CpuMemory:B["default"],OverviewKeypairs:A.A},mixins:[C.A,E.Ay],inheritAttrs:!1,props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},async fetch(){await(0,w.kR)({allImages:this.$store.dispatch("harvester/findAll",{type:S.rk.IMAGE})})},data(){return{vm:null}},computed:{name(){return this.value?.metadata?.name||M},hostname(){return this?.spec?.template?.spec?.hostname},imageName(){const e=this.$store.getters["harvester/all"](S.rk.IMAGE)||[],t=e.find((e=>this.imageId===e.id));return t?.spec?.displayName||"-"},disks(){const e=this?.spec?.template?.spec?.domain?.devices?.disks||[];return e.filter((e=>!!e.bootOrder)).sort(((e,t)=>e.bootOrder<t.bootOrder?-1:1))},cdroms(){const e=this?.spec?.template?.spec?.domain?.devices?.disks||[];return e.filter((e=>!!e.cdrom))}},methods:{getDeviceType(e){return e.disk?"Disk":"CD-ROM"},isEmpty(e){return void 0!==e&&0===Object.keys(e).length},onTabChanged({tab:e}){"advanced"===e.name&&this.$refs.yamlEditor?.refresh()}}},D=a(47433);const O=(0,D.A)($,[["render",k]]);var R=O},99144:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return ae}});var s=a(9274);const r={class:"row"},l={class:"col span-12"},o={key:0},n={key:1},c={class:"row"},i={class:"col span-12"},d={class:"row"},u={class:"col span-12"},m={class:"row"},v={class:"col span-12"},p={class:"row"},h={class:"col span-12"},k={key:0,class:"row mb-20"},b={class:"col span-12"},y={class:"text-label"},g={key:1},N={key:2,class:"text-muted"},V={key:1,class:"row mb-20"},f={class:"col span-12"},w={class:"text-label"},C={key:1},E={key:2,class:"text-muted"},S={key:2,class:"row"},B={class:"col span-12"};function A(e,t,a,A,T,_){const x=(0,s.resolveComponent)("LabelValue"),M=(0,s.resolveComponent)("CopyToClipboardText"),$=(0,s.resolveComponent)("router-link"),D=(0,s.resolveComponent)("Tab"),O=(0,s.resolveComponent)("Storage"),R=(0,s.resolveComponent)("Tabbed");return(0,s.openBlock)(),(0,s.createBlock)(R,(0,s.mergeProps)(e.$attrs,{class:"mt-15","side-tabs":!0}),{default:(0,s.withCtx)((()=>[(0,s.createVNode)(D,{name:"detail",label:e.t("harvester.virtualMachine.detail.tabs.basics"),class:"bordered-table",weight:99},{default:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",r,[(0,s.createElementVNode)("div",l,[_.isUpload?((0,s.openBlock)(),(0,s.createBlock)(x,{key:0,name:e.t("harvester.image.fileName"),value:_.imageName,class:"mb-20"},null,8,["name","value"])):((0,s.openBlock)(),(0,s.createBlock)(x,{key:1,name:e.t("harvester.image.url"),value:_.url,class:"mb-20"},{value:(0,s.withCtx)((()=>["-"!==_.url?((0,s.openBlock)(),(0,s.createElementBlock)("div",o,[(0,s.createVNode)(M,{text:_.url},null,8,["text"])])):((0,s.openBlock)(),(0,s.createElementBlock)("div",n,(0,s.toDisplayString)(_.url),1))])),_:1},8,["name","value"]))])]),(0,s.createElementVNode)("div",c,[(0,s.createElementVNode)("div",i,[(0,s.createVNode)(x,{name:e.t("harvester.image.size"),value:_.formattedValue,class:"mb-20"},null,8,["name","value"])])]),(0,s.createElementVNode)("div",d,[(0,s.createElementVNode)("div",u,[(0,s.createVNode)(x,{name:e.t("harvester.image.virtualSize"),value:_.virtualSize,class:"mb-20"},null,8,["name","value"])])]),(0,s.createElementVNode)("div",m,[(0,s.createElementVNode)("div",v,[(0,s.createVNode)(x,{name:e.t("nameNsDescription.description.label"),value:_.description,class:"mb-20"},null,8,["name","value"])])]),(0,s.createElementVNode)("div",p,[(0,s.createElementVNode)("div",h,[(0,s.createVNode)(x,{name:e.t("harvester.image.isEncryption"),value:_.isEncryptedString,class:"mb-20"},null,8,["name","value"])])]),a.value.volumeEncryptionFeatureEnabled&&a.value.isEncrypted?((0,s.openBlock)(),(0,s.createElementBlock)("div",k,[(0,s.createElementVNode)("div",b,[(0,s.createElementVNode)("div",y,(0,s.toDisplayString)(e.t("harvester.image.encryptionSecret")),1),_.encryptionSecret&&_.secretLink?((0,s.openBlock)(),(0,s.createBlock)($,{key:0,to:_.secretLink},{default:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(_.encryptionSecret),1)])),_:1},8,["to"])):_.encryptionSecret?((0,s.openBlock)(),(0,s.createElementBlock)("span",g,(0,s.toDisplayString)(_.encryptionSecret),1)):((0,s.openBlock)(),(0,s.createElementBlock)("span",N," — "))])])):(0,s.createCommentVNode)("",!0),a.value.volumeEncryptionFeatureEnabled&&_.isEncryptedOrDecrypted?((0,s.openBlock)(),(0,s.createElementBlock)("div",V,[(0,s.createElementVNode)("div",f,[(0,s.createElementVNode)("div",w,(0,s.toDisplayString)(e.t("harvester.image.sourceImage")),1),_.sourceImageId&&_.sourceImageLink?((0,s.openBlock)(),(0,s.createBlock)($,{key:0,to:_.sourceImageLink},{default:(0,s.withCtx)((()=>[(0,s.createTextVNode)((0,s.toDisplayString)(_.sourceImageId),1)])),_:1},8,["to"])):_.sourceImageId?((0,s.openBlock)(),(0,s.createElementBlock)("span",C,(0,s.toDisplayString)(_.sourceImageId),1)):((0,s.openBlock)(),(0,s.createElementBlock)("span",E," — "))])])):(0,s.createCommentVNode)("",!0),"-"!==_.errorMessage?((0,s.openBlock)(),(0,s.createElementBlock)("div",S,[(0,s.createElementVNode)("div",B,[(0,s.createElementVNode)("div",null,(0,s.toDisplayString)(e.t("tableHeaders.message")),1),(0,s.createElementVNode)("div",{class:(0,s.normalizeClass)({error:"-"!==_.errorMessage})},(0,s.toDisplayString)(_.errorMessage),3)])])):(0,s.createCommentVNode)("",!0)])),_:1},8,["label"]),(0,s.createVNode)(D,{name:"storage",label:e.t("harvester.storage.label"),weight:89,class:"bordered-table"},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(O,{value:a.value.spec.storageClassParameters,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.storageClassParameters=e)},null,8,["value"])])),_:1},8,["label"])])),_:1},16)}var T=a(38076),_=a(39412),x=a(2841),M=a(2602),$=a(32766),D=a(59808),O=a(49584),R=a(68851),I=a(76978),L=a(92043);const P={key:0,class:"row mb-20"},U={class:"col span-12"},H={key:1,class:"row mb-20"},K={class:"col span-12"},j={class:"row mb-20"},F={class:"col span-6"},q={class:"col span-6"},J={class:"row mb-20"},z={class:"col span-6"};function G(e,t,a,r,l,o){const n=(0,s.resolveComponent)("LabelValue");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[a.value.nodeSelector?((0,s.openBlock)(),(0,s.createElementBlock)("div",P,[(0,s.createElementVNode)("div",U,[(0,s.createVNode)(n,{name:e.t("harvester.storage.nodeSelector.label"),value:a.value.nodeSelector},null,8,["name","value"])])])):(0,s.createCommentVNode)("",!0),a.value.diskSelector?((0,s.openBlock)(),(0,s.createElementBlock)("div",H,[(0,s.createElementVNode)("div",K,[(0,s.createVNode)(n,{name:e.t("harvester.storage.diskSelector.label"),value:a.value.diskSelector},null,8,["name","value"])])])):(0,s.createCommentVNode)("",!0),(0,s.createElementVNode)("div",j,[(0,s.createElementVNode)("div",F,[(0,s.createVNode)(n,{name:e.t("harvester.storage.migratable.label"),value:o.migratable},null,8,["name","value"])]),(0,s.createElementVNode)("div",q,[(0,s.createVNode)(n,{name:e.t("harvester.storage.numberOfReplicas.label"),value:a.value.numberOfReplicas},null,8,["name","value"])])]),(0,s.createElementVNode)("div",J,[(0,s.createElementVNode)("div",z,[(0,s.createVNode)(n,{name:e.t("harvester.storage.staleReplicaTimeout.label"),value:a.value.staleReplicaTimeout},null,8,["name","value"])])])])}var Q={props:{value:{type:Object,default:()=>{}}},components:{LabelValue:_.A},computed:{migratable(){return"true"===this.value.migratable?this.t("generic.yes"):this.t("generic.no")}}},W=a(47433);const Y=(0,W.A)(Q,[["render",G]]);var X=Y,Z=a(35664),ee={components:{CopyToClipboardText:T.A,Tab:O.A,Tabbed:D.A,LabelValue:_.A,Storage:X},props:{value:{type:Object,required:!0}},async fetch(){if(this.value.volumeEncryptionFeatureEnabled){const e=this.$store.getters["currentProduct"].inStore;this.secrets=await this.$store.dispatch(`${e}/findAll`,{type:Z.bB}),this.images=await this.$store.dispatch(`${e}/findAll`,{type:$.rk.IMAGE})}},data(){return{secrets:[],images:[]}},computed:{formattedValue(){return this.value?.downSize},virtualSize(){return this.value?.virtualSize},url(){return this.value?.spec?.url||"-"},description(){return this.value?.metadata?.annotations?.[x.tC]||"-"},errorMessage(){const e=(0,I.Jt)(this.value,"status.conditions");return(0,R.jq)(e,"type","Imported")?.message||"-"},isUpload(){return"upload"===this.value?.spec?.sourceType},sourceImage(){const{sourceImageName:e,sourceImageNamespace:t}=this.value?.spec?.securityParameters||{};if(t&&e){const a=`${t}/${e}`;return this.images.find((e=>e.id===a))}return null},sourceImageLink(){return this.sourceImage?.detailLocation},sourceImageId(){return this.sourceImage?this.sourceImage.displayNameWithNamespace:""},isEncryptedOrDecrypted(){return["encrypt","decrypt"].includes(this.value?.spec?.securityParameters?.cryptoOperation)},encryptionSecret(){return this.value.isEncrypted?this.value.encryptionSecret:"-"},secretLink(){return this.secrets.find((e=>e.id===this.value.encryptionSecret))?.detailLocation},isEncryptedString(){return(0,L.TF)(String(this.value.isEncrypted))},imageName(){return this.value?.metadata?.annotations?.[M.r.IMAGE_NAME]||"-"}}};a(5530);const te=(0,W.A)(ee,[["render",A],["__scopeId","data-v-327163e2"]]);var ae=te},97072:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return O}});var s=a(9274);const r={class:"row mb-10"},l={class:"col span-6"},o={class:"col span-6"},n={class:"row mb-10"},c={class:"col span-6"},i={class:"col span-6"},d={class:"row mb-10"},u={class:"col span-6"},m={class:"col span-6"},v={key:0},p={key:1};function h(e,t,a,h,k,b){const y=(0,s.resolveComponent)("Loading"),g=(0,s.resolveComponent)("LabelValue"),N=(0,s.resolveComponent)("CpuMemory"),V=(0,s.resolveComponent)("Tab"),f=(0,s.resolveComponent)("Volume"),w=(0,s.resolveComponent)("Network"),C=(0,s.resolveComponent)("OverviewKeypairs"),E=(0,s.resolveComponent)("CloudConfig"),S=(0,s.resolveComponent)("Checkbox"),B=(0,s.resolveComponent)("Tabbed"),A=(0,s.resolveComponent)("CruResource");return e.$fetchState.pending?((0,s.openBlock)(),(0,s.createBlock)(y,{key:0})):((0,s.openBlock)(),(0,s.createBlock)(A,{key:1,"done-route":e.doneRoute,resource:a.value,mode:a.mode,"apply-hooks":e.applyHooks},{default:(0,s.withCtx)((()=>[e.spec?((0,s.openBlock)(),(0,s.createBlock)(B,{key:0,"side-tabs":!0,onChanged:b.onTabChanged},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(V,{name:"Basics",label:e.t("harvester.virtualMachine.detail.tabs.basics")},{default:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",r,[(0,s.createElementVNode)("div",l,[(0,s.createVNode)(g,{name:e.t("harvester.virtualMachine.detail.details.name"),value:b.name},null,8,["name","value"])]),(0,s.createElementVNode)("div",o,[(0,s.createVNode)(g,{name:e.t("harvester.fields.image"),value:b.imageName},null,8,["name","value"])])]),(0,s.createElementVNode)("div",n,[(0,s.createElementVNode)("div",c,[(0,s.createVNode)(g,{name:e.t("harvester.virtualMachine.detail.details.hostname"),value:b.hostname},null,8,["name","value"])]),(0,s.createElementVNode)("div",i,[(0,s.createVNode)(g,{name:e.t("harvester.virtualMachine.input.MachineType"),value:e.machineType},null,8,["name","value"])])]),(0,s.createVNode)(N,{cpu:e.cpu,mode:a.mode,memory:e.memory},null,8,["cpu","mode","memory"]),(0,s.createElementVNode)("div",d,[(0,s.createElementVNode)("div",u,[(0,s.createVNode)(g,{name:e.t("harvester.virtualMachine.detail.details.bootOrder")},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",null,[(0,s.createElementVNode)("ul",null,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(b.disks,((e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)("li",{key:t},(0,s.toDisplayString)(e.bootOrder)+". "+(0,s.toDisplayString)(e.name)+" ("+(0,s.toDisplayString)(b.getDeviceType(e))+") ",1)))),128))])])])),_:1},8,["name"])]),(0,s.createElementVNode)("div",m,[(0,s.createVNode)(g,{name:e.t("harvester.virtualMachine.detail.details.CDROMs")},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",null,[b.cdroms.length>0?((0,s.openBlock)(),(0,s.createElementBlock)("ul",v,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(b.cdroms,((e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)("li",{key:t},(0,s.toDisplayString)(e.name),1)))),128))])):((0,s.openBlock)(),(0,s.createElementBlock)("span",p,(0,s.toDisplayString)(e.t("harvester.virtualMachine.detail.notAvailable")),1))])])),_:1},8,["name"])])])])),_:1},8,["label"]),(0,s.createVNode)(V,{name:"volume",label:e.t("harvester.tab.volume"),weight:-1},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(f,{value:e.diskRows,"onUpdate:value":t[0]||(t[0]=t=>e.diskRows=t),mode:a.mode},null,8,["value","mode"])])),_:1},8,["label"]),(0,s.createVNode)(V,{name:"network",label:e.t("harvester.tab.network"),weight:-2},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(w,{value:e.networkRows,"onUpdate:value":t[1]||(t[1]=t=>e.networkRows=t),mode:a.mode},null,8,["value","mode"])])),_:1},8,["label"]),(0,s.createVNode)(V,{name:"keypairs",label:e.t("harvester.virtualMachine.detail.tabs.keypairs"),class:"bordered-table",weight:-3},{default:(0,s.withCtx)((()=>[k.vm?((0,s.openBlock)(),(0,s.createBlock)(C,{key:0,value:k.vm,"onUpdate:value":t[2]||(t[2]=e=>k.vm=e)},null,8,["value"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["label"]),(0,s.createVNode)(V,{name:"advanced",label:e.t("harvester.tab.advanced"),weight:-4},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(E,{ref:"yamlEditor","user-script":e.userScript,mode:a.mode,"network-script":e.networkScript},null,8,["user-script","mode","network-script"]),t[4]||(t[4]=(0,s.createElementVNode)("div",{class:"spacer"},null,-1)),(0,s.createVNode)(S,{value:e.installUSBTablet,"onUpdate:value":t[3]||(t[3]=t=>e.installUSBTablet=t),mode:a.mode,class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.enableUsb")},null,8,["value","mode","label"])])),_:1},8,["label"])])),_:1},8,["onChanged"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["done-route","resource","mode","apply-hooks"]))}var k=a(59808),b=a(49584),y=a(84409),g=a(99960),N=a(42200),V=a(39412),f=a(88339),w=a(91825),C=a(48249),E=a(32766),S=a(75403),B=a(63536),A=a(95191),T=a(8746),_=a(81559);const x="n/a";var M={name:"VMSnapshotDetail",components:{Volume:A["default"],Network:T["default"],CruResource:g.A,Tabbed:k.A,Loading:y.A,LabelValue:V.A,Tab:b.A,CloudConfig:_["default"],Checkbox:N.S,CpuMemory:S["default"],OverviewKeypairs:B.A},mixins:[w.A,C.Ay],inheritAttrs:!1,props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},async fetch(){await(0,f.kR)({allImages:this.$store.dispatch("harvester/findAll",{type:E.rk.IMAGE})})},data(){return{vm:null}},computed:{name(){return this.value?.metadata?.name||x},hostname(){return this?.spec?.template?.spec?.hostname},imageName(){const e=this.$store.getters["harvester/all"](E.rk.IMAGE)||[],t=e.find((e=>this.imageId===e.id));return t?.spec?.displayName||"-"},disks(){const e=this?.spec?.template?.spec?.domain?.devices?.disks||[];return e.filter((e=>!!e.bootOrder)).sort(((e,t)=>e.bootOrder<t.bootOrder?-1:1))},cdroms(){const e=this?.spec?.template?.spec?.domain?.devices?.disks||[];return e.filter((e=>!!e.cdrom))}},methods:{getDeviceType(e){return e.disk?"Disk":"CD-ROM"},isEmpty(e){return void 0!==e&&0===Object.keys(e).length},onTabChanged({tab:e}){"advanced"===e.name&&this.$refs.yamlEditor?.refresh()}}},$=a(47433);const D=(0,$.A)(M,[["render",h]]);var O=D},63536:function(e,t,a){"use strict";a.d(t,{A:function(){return g}});var s=a(9274);const r={class:"overview-sshKeys"},l={class:"col span-4"},o={class:"col span-7 offset-1"},n={key:0,class:"key-display"},c=["onClick"],i=["onClick"];function d(e,t,a,d,u,m){return(0,s.openBlock)(),(0,s.createElementBlock)("div",r,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(u.sshKeys,((e,a)=>((0,s.openBlock)(),(0,s.createElementBlock)("div",{key:a},[(0,s.createElementVNode)("div",l,(0,s.toDisplayString)(e.id),1),(0,s.createElementVNode)("div",o,[e.showKey?((0,s.openBlock)(),(0,s.createElementBlock)("div",n,[(0,s.createTextVNode)((0,s.toDisplayString)(e.publicKey)+" ",1),(0,s.createElementVNode)("button",{class:"btn btn-sm role-link hide-bar",onClick:e=>m.toggleShow(a)},t[0]||(t[0]=[(0,s.createElementVNode)("i",{class:"icon icon-x"},null,-1)]),8,c)])):((0,s.openBlock)(),(0,s.createElementBlock)("button",{key:1,class:"btn btn-sm role-link",onClick:e=>m.toggleShow(a)},t[1]||(t[1]=[(0,s.createTextVNode)(" *******"),(0,s.createElementVNode)("i",{class:"icons icon-show"},null,-1)]),8,i))])])))),128))])}var u=a(8138),m=a.n(u),v=a(88339),p=a(32766),h=a(73975),k={mixins:[h.Ay],props:{value:{type:Object,required:!0}},async fetch(){const e=await(0,v.kR)({allSSHs:this.$store.dispatch("harvester/findAll",{type:p.rk.SSH})});this.allSSHs=e.allSSHs},data(){return{allSSHs:[],sshKeys:[]}},methods:{toggleShow(e){const t=this.sshKeys[e];this.sshKeys[e]={...t,showKey:!t.showKey}},getKeys(){return this.mergeAllSSHs(this.value?.spec)},isShow(e=""){const t=this.sshKeys.find((t=>t?.data?.id===e))||{};return t.showKey||!1}},watch:{allSSHs(e){const t=this.getKeys().map((e=>({id:e.id,publicKey:m()(e.data)?e.data:e.data?.spec?.publicKey,showKey:this.isShow(e.id)})));this["sshKeys"]=t}}},b=(a(66439),a(47433));const y=(0,b.A)(k,[["render",d],["__scopeId","data-v-67f09e09"]]);var g=y},59544:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return Ce}});var s=a(9274);function r(e,t,a,r,l,o){const n=(0,s.resolveComponent)("OverviewBasics"),c=(0,s.resolveComponent)("Tab"),i=(0,s.resolveComponent)("Volume"),d=(0,s.resolveComponent)("Network"),u=(0,s.resolveComponent)("OverviewKeypairs"),m=(0,s.resolveComponent)("LabelValue"),v=(0,s.resolveComponent)("DashboardMetrics"),p=(0,s.resolveComponent)("NodeScheduling"),h=(0,s.resolveComponent)("PodAffinity"),k=(0,s.resolveComponent)("AccessCredentials"),b=(0,s.resolveComponent)("CloudConfig"),y=(0,s.resolveComponent)("Events"),g=(0,s.resolveComponent)("Migration"),N=(0,s.resolveComponent)("KeyValue"),V=(0,s.resolveComponent)("Labels"),f=(0,s.resolveComponent)("Tabbed");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createVNode)(f,(0,s.mergeProps)(e.$attrs,{class:"mt-15","side-tabs":!0,onChanged:o.onTabChanged}),{default:(0,s.withCtx)((()=>[(0,s.createVNode)(c,{name:"basics",label:e.t("harvester.virtualMachine.detail.tabs.basics"),class:"bordered-table",weight:7},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(n,{value:a.value,vmi:o.vmi,mode:"view"},null,8,["value","vmi"])])),_:1},8,["label"]),(0,s.createVNode)(c,{name:"disks",label:e.t("harvester.tab.volume"),class:"bordered-table",weight:6},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(i,{value:e.diskRows,"onUpdate:value":t[0]||(t[0]=t=>e.diskRows=t),mode:"view",namespace:a.value.metadata.namespace,vm:a.value,"resource-type":a.value.type},null,8,["value","namespace","vm","resource-type"])])),_:1},8,["label"]),(0,s.createVNode)(c,{name:"networks",label:e.t("harvester.virtualMachine.detail.tabs.networks"),class:"bordered-table",weight:5},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(d,{value:e.networkRows,"onUpdate:value":t[1]||(t[1]=t=>e.networkRows=t),mode:"view"},null,8,["value"])])),_:1},8,["label"]),(0,s.createVNode)(c,{name:"keypairs",label:e.t("harvester.virtualMachine.detail.tabs.keypairs"),class:"bordered-table",weight:4},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(u,{value:a.value},null,8,["value"])])),_:1},8,["label"]),l.hasResourceQuotaSchema?((0,s.openBlock)(),(0,s.createBlock)(c,{key:0,name:"quotas",label:e.t("harvester.tab.quotas"),weight:3},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(m,{name:e.t("harvester.snapshot.totalSnapshotSize"),value:o.totalSnapshotSize},null,8,["name","value"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),l.showVmMetrics?((0,s.openBlock)(),(0,s.createBlock)(c,{key:1,name:"vm-metrics",label:e.t("harvester.virtualMachine.detail.tabs.metrics"),weight:2.5},{default:(0,s.withCtx)((e=>[e.active?((0,s.openBlock)(),(0,s.createBlock)(v,{key:0,"detail-url":l.VM_METRICS_DETAIL_URL,"graph-height":"550px","has-summary-and-detail":!1,vars:o.graphVars},null,8,["detail-url","vars"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),(0,s.createVNode)(c,{name:"nodeScheduling",label:e.t("workload.container.titles.nodeScheduling"),weight:2.4},{default:(0,s.withCtx)((({active:t})=>[e.spec?((0,s.openBlock)(),(0,s.createBlock)(p,{key:t,mode:e.mode,value:e.spec.template.spec,nodes:e.nodesIdOptions},null,8,["mode","value","nodes"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["label"]),(0,s.createVNode)(c,{label:e.t("harvester.tab.vmScheduling"),name:"vmScheduling",weight:2.3},{default:(0,s.withCtx)((({active:t})=>[e.spec?((0,s.openBlock)(),(0,s.createBlock)(h,{key:t,mode:e.mode,value:e.spec.template.spec,nodes:e.nodes,"all-namespaces-option-available":!0,namespaces:e.filteredNamespaces,"overwrite-labels":e.affinityLabels},null,8,["mode","value","nodes","namespaces","overwrite-labels"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["label"]),(0,s.createVNode)(c,{label:e.t("harvester.tab.accessCredentials"),class:"bordered-table",name:"accessCredentials",weight:2.2},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(k,{mode:"view",value:e.accessCredentials,"resource-type":a.value},null,8,["value","resource-type"])])),_:1},8,["label"]),(0,s.createVNode)(c,{name:"cloudConfig",label:e.t("harvester.virtualMachine.detail.tabs.cloudConfig"),class:"bordered-table",weight:2},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(b,{ref:"yamlEditor",mode:"view","user-script":e.userScript,"network-script":e.networkScript},null,8,["user-script","network-script"])])),_:1},8,["label"]),(0,s.createVNode)(c,{name:"event",label:e.t("harvester.virtualMachine.detail.tabs.events"),weight:1},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(y,{resource:o.vmi,events:o.events},null,8,["resource","events"])])),_:1},8,["label"]),(0,s.createVNode)(c,{name:"migration",label:e.t("harvester.virtualMachine.detail.tabs.migration")},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(g,{value:a.value,"vmi-resource":o.vmi},null,8,["value","vmi-resource"])])),_:1},8,["label"]),(0,s.createVNode)(c,{name:"instanceLabel",label:e.t("harvester.tab.instanceLabel"),weight:-99},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(V,{"default-container-class":"labels-and-annotations-container",value:a.value,mode:e.mode,"display-side-by-side":!1,"show-annotations":!1,"show-label-title":!1},{labels:(0,s.withCtx)((({toggler:r})=>[(0,s.createVNode)(N,{key:"labels",value:a.value.instanceLabels,"protected-keys":a.value.systemLabels||[],"toggle-filter":r,"add-label":e.t("labels.addLabel"),mode:e.mode,"read-allowed":!1,"value-can-be-empty":!0,"onUpdate:value":t[2]||(t[2]=e=>a.value.setInstanceLabels(e))},null,8,["value","protected-keys","toggle-filter","add-label","mode"])])),_:1},8,["value","mode"])])),_:1},8,["label"])])),_:1},16,["onChanged"])])}var l=a(65359),o=a(59808),n=a(49584),c=a(35664),i=a(91825),d=a(83030),u=a(88339),m=a(97348),v=a(41077),p=a(19413),h=a(25088),k=a(7365),b=a(39412),y=a(32766),g=a(48249),N=a(81559),V=a(95191),f=a(8746),w=a(60068);const C={class:"text-info"},E={key:0};function S(e,t,a,r,l,o){const n=(0,s.resolveComponent)("SortableTable");return(0,s.openBlock)(),(0,s.createBlock)(n,{rows:a.events,headers:l.eventHeaders,"key-field":"id",search:!1,"table-actions":!1,"row-actions":!1,paging:!0,"rows-per-page":10,"default-sort-by":"date"},{"cell:resource":(0,s.withCtx)((({row:e,value:t})=>[(0,s.createElementVNode)("div",C,(0,s.toDisplayString)(t),1),e.message?((0,s.openBlock)(),(0,s.createElementBlock)("div",E,(0,s.toDisplayString)(e.displayMessage),1)):(0,s.createCommentVNode)("",!0)])),_:1},8,["rows","headers"])}var B=a(68774),A=a(81345),T={name:"VirtualMachineEvents",components:{SortableTable:A.A},props:{events:{type:Array,required:!0}},data(){const e={...B.rh,canBeVariable:!0,width:180},t=[e,{name:"resource",label:"Resource",labelKey:"clusterIndexPage.sections.events.resource.label",value:"displayInvolvedObject",sort:["involvedObject.kind","involvedObject.name"],canBeVariable:!0},{align:"right",name:"date",label:"Date",labelKey:"clusterIndexPage.sections.events.date.label",value:"lastTimestamp",sort:"lastTimestamp:desc",formatter:"LiveDate",formatterOpts:{addSuffix:!0},width:125,defaultSort:!0}];return{eventHeaders:t}}},_=a(47433);const x=(0,_.A)(T,[["render",S]]);var M=x;const $={class:"row mb-20"},D={class:"col span-6"},O={class:"col span-6"},R={class:"row mb-20"},I={class:"col span-6"},L={class:"col span-6"};function P(e,t,a,r,l,o){const n=(0,s.resolveComponent)("LabelValue");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createElementVNode)("div",$,[(0,s.createElementVNode)("div",D,[(0,s.createVNode)(n,{name:e.t("harvester.virtualMachine.detail.details.sourceNode"),value:o.sourceNode},null,8,["name","value"])]),(0,s.createElementVNode)("div",O,[(0,s.createVNode)(n,{name:e.t("harvester.virtualMachine.detail.details.targetNode"),value:o.targetNode},null,8,["name","value"])])]),(0,s.createElementVNode)("div",R,[(0,s.createElementVNode)("div",I,[(0,s.createVNode)(n,{name:e.t("harvester.virtualMachine.detail.details.started"),value:o.started},null,8,["name","value"])]),(0,s.createElementVNode)("div",L,[(0,s.createVNode)(n,{name:e.t("harvester.virtualMachine.detail.details.ended"),value:o.ended},null,8,["name","value"])])])])}var U={name:"VirtualMachineMigration",components:{LabelValue:b.A},props:{value:{type:Object,required:!0},vmiResource:{type:Object,required:!0,default:()=>({})}},data(){return{localResource:this.vmiResource}},computed:{migrationState(){return this.localResource?.status?.migrationState},sourceNode(){return this.migrationState?.sourceNode||"N/A"},targetNode(){return this.migrationState?.targetNode||"N/A"},started(){return this.migrationState?.startTimestamp||"N/A"},ended(){return this.migrationState?.endTimestamp||"N/A"},message(){return"N/A"}},watch:{vmiResource:{handler(e){this.localResource=e},deep:!0}}};const H=(0,_.A)(U,[["render",P]]);var K=H;const j={class:"overview-basics"},F={class:"row"},q={class:"col span-6"},J={class:"smart-row"},z={class:"console"},G={class:"col span-6"},Q={class:"row"},W={class:"col span-6"},Y={class:"col span-6"},X={class:"row"},Z={class:"col span-6"},ee={class:"col span-6"},te={class:"row"},ae={class:"col span-6"},se={class:"col span-6"},re={key:0},le={key:1},oe={class:"row"},ne={class:"col span-6"},ce={class:"row"},ie={class:"col span-6"},de={class:"col span-6"};function ue(e,t,a,r,l,o){const n=(0,s.resolveComponent)("VMConsoleBar"),c=(0,s.resolveComponent)("LabelValue"),i=(0,s.resolveComponent)("HarvesterIpAddress"),d=(0,s.resolveComponent)("InputOrDisplay");return(0,s.openBlock)(),(0,s.createElementBlock)("div",null,[(0,s.createVNode)(n,{"resource-type":a.value,class:"consoleBut"},null,8,["resource-type"]),(0,s.createElementVNode)("div",j,[(0,s.createElementVNode)("div",F,[(0,s.createElementVNode)("div",q,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.detail.details.name"),value:a.value.nameDisplay},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",J,[(0,s.createElementVNode)("div",z,(0,s.toDisplayString)(a.value.nameDisplay),1)])])),_:1},8,["name","value"])]),(0,s.createElementVNode)("div",G,[(0,s.createVNode)(c,{name:e.t("harvester.fields.image"),value:o.imageName},null,8,["name","value"])])]),(0,s.createElementVNode)("div",Q,[(0,s.createElementVNode)("div",W,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.detail.details.hostname"),value:o.hostname},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",null,(0,s.toDisplayString)(o.hostname),1)])),_:1},8,["name","value"])]),(0,s.createElementVNode)("div",Y,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.detail.details.node"),value:o.node},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",null,(0,s.toDisplayString)(o.node),1)])),_:1},8,["name","value"])])]),(0,s.createElementVNode)("div",X,[(0,s.createElementVNode)("div",Z,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.detail.details.ipAddress")},{value:(0,s.withCtx)((()=>[(0,s.createVNode)(i,{value:a.value.id,"onUpdate:value":t[0]||(t[0]=e=>a.value.id=e),row:a.value},null,8,["value","row"])])),_:1},8,["name"])]),(0,s.createElementVNode)("div",ee,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.detail.details.created"),value:o.creationTimestamp},null,8,["name","value"])])]),t[1]||(t[1]=(0,s.createElementVNode)("hr",{class:"section-divider"},null,-1)),(0,s.createElementVNode)("h2",null,(0,s.toDisplayString)(e.t("harvester.virtualMachine.detail.tabs.configurations")),1),(0,s.createElementVNode)("div",te,[(0,s.createElementVNode)("div",ae,[(0,s.createVNode)(d,{name:e.t("harvester.virtualMachine.detail.details.bootOrder"),value:o.disks,mode:a.mode},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("ul",null,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(o.disks,((e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)("li",{key:t},(0,s.toDisplayString)(e.bootOrder)+". "+(0,s.toDisplayString)(e.name)+" ("+(0,s.toDisplayString)(o.getDeviceType(e))+") ",1)))),128))])])),_:1},8,["name","value","mode"])]),(0,s.createElementVNode)("div",se,[(0,s.createVNode)(d,{name:e.t("harvester.virtualMachine.detail.details.CDROMs"),value:o.cdroms,mode:a.mode},{value:(0,s.withCtx)((()=>[(0,s.createElementVNode)("div",null,[o.cdroms.length>0?((0,s.openBlock)(),(0,s.createElementBlock)("ul",re,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(o.cdroms,((e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)("li",{key:t},(0,s.toDisplayString)(e.name),1)))),128))])):((0,s.openBlock)(),(0,s.createElementBlock)("span",le,(0,s.toDisplayString)(e.t("harvester.virtualMachine.detail.notAvailable")),1))])])),_:1},8,["name","value","mode"])])]),(0,s.createElementVNode)("div",oe,[(0,s.createElementVNode)("div",ne,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.detail.details.operatingSystem"),value:o.operatingSystem},null,8,["name","value"])]),(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.detail.details.flavor"),value:o.flavor},null,8,["name","value"])]),(0,s.createElementVNode)("div",ce,[(0,s.createElementVNode)("div",ie,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.detail.details.kernelRelease"),value:o.kernelRelease},null,8,["name","value"])]),(0,s.createElementVNode)("div",de,[(0,s.createVNode)(c,{name:e.t("harvester.virtualMachine.input.MachineType"),value:o.machineType},null,8,["name","value"])])])])])}var me=a(60090),ve=a(24423),pe=a(58784);const he="n/a";var ke={name:"VMDetailsBasics",components:{VMConsoleBar:pe.A,HarvesterIpAddress:ve["default"],LabelValue:b.A,InputOrDisplay:me.A},mixins:[i.A],props:{value:{type:Object,required:!0},vmi:{type:Object,required:!0,default:()=>({})},mode:{type:String,required:!0}},computed:{creationTimestamp(){const e=new Date(this.value?.metadata?.creationTimestamp);return e.getMonth?`${e.getMonth()+1}/${e.getDate()}/${e.getUTCFullYear()}`:he},node(){const e=this.vmi?.status?.nodeName||he;return this.isDown?this.t("harvester.virtualMachine.detail.details.down"):e},hostname(){const e=this.vmi?.spec?.hostname||this.vmi?.status?.guestOSInfo?.hostname||this.t("harvester.virtualMachine.detail.GuestAgentNotInstalled");return this.isDown?this.t("harvester.virtualMachine.detail.details.down"):e},imageName(){const e=this.$store.getters["harvester/all"](y.rk.IMAGE)||[],t=e.find((e=>this.value.rootImageId===e.id));return t?.spec?.displayName||"N/A"},disks(){const e=this.value?.spec?.template?.spec?.domain?.devices?.disks||[];return e.filter((e=>!!e.bootOrder)).sort(((e,t)=>e.bootOrder<t.bootOrder?-1:1))},cdroms(){const e=this.value?.spec?.template?.spec?.domain?.devices?.disks||[];return e.filter((e=>!!e.cdrom))},flavor(){const e=this.value?.spec?.template?.spec?.domain;return`${e.cpu?.cores} vCPU , ${e.resources?.limits?.memory} ${this.t("harvester.virtualMachine.input.memory")}`},kernelRelease(){const e=this.vmi?.status?.guestOSInfo?.kernelRelease||this.t("harvester.virtualMachine.detail.GuestAgentNotInstalled");return this.isDown?this.t("harvester.virtualMachine.detail.details.down"):e},operatingSystem(){const e=this.vmi?.status?.guestOSInfo?.prettyName||this.t("harvester.virtualMachine.detail.GuestAgentNotInstalled");return this.isDown?this.t("harvester.virtualMachine.detail.details.down"):e},isDown(){return this.isEmpty(this.vmi)},machineType(){return this.value?.spec?.template?.spec?.domain?.machine?.type||void 0}},methods:{getDeviceType(e){return e.disk?"Disk":"CD-ROM"},isEmpty(e){return void 0!==e&&0===Object.keys(e).length}}};a(40152);const be=(0,_.A)(ke,[["render",ue],["__scopeId","data-v-e27d81a6"]]);var ye=be,ge=a(63536),Ne=a(95799);const Ve="/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/harvester-vm-detail-1/vm-info-detail?orgId=1";var fe={name:"VMIDetailsPage",components:{Tab:n.A,Tabbed:o.A,Events:M,OverviewBasics:ye,LabelValue:b.A,Volume:V["default"],Network:f["default"],OverviewKeypairs:ge.A,CloudConfig:N["default"],Migration:K,DashboardMetrics:d.A,AccessCredentials:w["default"],NodeScheduling:v.A,PodAffinity:p.A,KeyValue:h.A,Labels:k.A},mixins:[i.A,g.Ay],props:{value:{type:Object,required:!0}},data(){return{hasResourceQuotaSchema:!1,switchToCloud:!1,VM_METRICS_DETAIL_URL:Ve,showVmMetrics:!1}},async created(){const e=this.$store.getters["currentProduct"].inStore;this.hasResourceQuotaSchema=!!this.$store.getters[`${e}/schemaFor`](y.rk.RESOURCE_QUOTA);const t={pods:this.$store.dispatch(`${e}/findAll`,{type:c.Sm}),services:this.$store.dispatch(`${e}/findAll`,{type:c.YV}),events:this.$store.dispatch(`${e}/findAll`,{type:c.ll}),allSSHs:this.$store.dispatch(`${e}/findAll`,{type:y.rk.SSH}),vmis:this.$store.dispatch(`${e}/findAll`,{type:y.rk.VMI}),restore:this.$store.dispatch(`${e}/findAll`,{type:y.rk.RESTORE})};this.hasResourceQuotaSchema&&(t.resourceQuotas=this.$store.dispatch(`${e}/findAll`,{type:y.rk.RESOURCE_QUOTA})),await(0,u.kR)(t),(0,u.DD)((0,m.Qr)(this.$store,this.currentCluster.id,[Ve],"harvester"),this,"showVmMetrics","Determine vm metrics")},computed:{...(0,l.L8)(["currentCluster"]),totalSnapshotSize(){return void 0===this.value.snapshotSizeQuota||null===this.value.snapshotSizeQuota?" - ":0===this.value.snapshotSizeQuota?"0":(0,Ne.Mo)(this.value.snapshotSizeQuota,{increment:1024,addSuffix:!0,suffix:"i"})},vmi(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](y.rk.VMI)||[],a=t.find((e=>e?.metadata?.ownerReferences?.[0]?.uid===this.value?.metadata?.uid));return a},allEvents(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/all`](c.ll)},events(){return this.allEvents.filter((e=>{const{name:t,creationTimestamp:a}=this.value?.metadata||{},s=this.value.podResource?.metadata?.name,r=this.value.persistentVolumeClaimName||[],l=e?.involvedObject?.name,o=r.find((e=>e===l));return(l===t||l===s||o)&&e.firstTimestamp>=a})).sort(((e,t)=>e.lastTimestamp>t.lastTimestamp?-1:1))},graphVars(){return{namespace:this.value.namespace,vm:this.value.name}}},methods:{onTabChanged({tab:e}){"cloudConfig"===e.name&&this.$refs.yamlEditor?.refresh()}},watch:{value:{handler(e){const t=this.getDiskRows(e);this["diskRows"]=t},deep:!0}}};const we=(0,_.A)(fe,[["render",r]]);var Ce=we},67973:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var s=a(9274);function r(e,t,a,r,l,o){const n=(0,s.resolveComponent)("SortableTable"),c=(0,s.resolveComponent)("Tab"),i=(0,s.resolveComponent)("ResourceTabs");return(0,s.openBlock)(),(0,s.createBlock)(i,{value:a.value,"need-related":!1,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("input",t))},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(c,{name:"network","label-key":"harvester.ipPool.network.label",weight:99},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(n,{"key-field":"_key",headers:o.networkHeaders,rows:o.networks,"row-actions":!1,"table-actions":!1,search:!1},null,8,["headers","rows"])])),_:1}),(0,s.createVNode)(c,{name:"range","label-key":"harvester.ipPool.tabs.range",weight:89},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(n,{"key-field":"_key",headers:o.rangeHeaders,rows:o.ranges,"row-actions":!1,"table-actions":!1,search:!1},null,8,["headers","rows"])])),_:1})])),_:1},8,["value"])}var l=a(72551),o=a(49584),n=a(81345),c=a(35664),i=a(88339),d=a(9470),u={emits:["input"],components:{ResourceTabs:l.A,Tab:o.A,SortableTable:n.A},props:{value:{type:Object,default:()=>({})}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={ipPools:this.$store.dispatch(`${e}/findAll`,{type:c.XG})};await(0,i.kR)(t)},computed:{networks(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](c.XG);return t.filter((e=>e?.id===this.value?.spec?.selector?.network))},networkHeaders(){return d.NETWORK_HEADERS},ranges(){return this.value.spec.ranges},rangeHeaders(){return[{name:"subnet",label:this.t("harvester.ipPool.subnet.label"),value:"subnet"},{name:"gateway",label:this.t("harvester.ipPool.gateway.label"),value:"gateway"},{name:"startIP",label:this.t("harvester.ipPool.startIP.label"),value:"rangeStart"},{name:"endIP",label:this.t("harvester.ipPool.endIP.label"),value:"rangeEnd"}]}}},m=a(47433);const v=(0,m.A)(u,[["render",r]]);var p=v},55224:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return b}});var s=a(9274);function r(e,t,a,r,l,o){const n=(0,s.resolveComponent)("SortableTable"),c=(0,s.resolveComponent)("Tab"),i=(0,s.resolveComponent)("ResourceTabs");return(0,s.openBlock)(),(0,s.createBlock)(i,{value:a.value,"need-related":!1,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("input",t))},{default:(0,s.withCtx)((()=>["pool"===a.value.spec.ipam?((0,s.openBlock)(),(0,s.createBlock)(c,{key:0,name:"ipPool","label-key":"harvester.loadBalancer.ipPool.label",weight:99},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(n,{"key-field":"_key",headers:o.ipPoolHeaders,rows:o.ipPools,"row-actions":!1,"table-actions":!1,search:!1},null,8,["headers","rows"])])),_:1})):(0,s.createCommentVNode)("",!0),"vm"===a.value.spec.workloadType?((0,s.openBlock)(),(0,s.createBlock)(c,{key:1,name:"vm",label:e.t("harvester.loadBalancer.backendServers.label"),class:"bordered-table",weight:98},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(n,{rows:o.vms,headers:o.vmHeaders,"key-field":"id","row-actions":!1,"table-actions":!1,search:o.vms.length>10},null,8,["rows","headers","search"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),"vm"===a.value.spec.workloadType?((0,s.openBlock)(),(0,s.createBlock)(c,{key:2,name:"listeners",label:e.t("harvester.loadBalancer.tabs.listeners"),class:"bordered-table",weight:89},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(n,{"key-field":"_key",headers:o.listenerHeaders,rows:o.listeners,"row-actions":!1,"table-actions":!1,search:!1},null,8,["headers","rows"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0),"vm"===a.value.spec.workloadType?((0,s.openBlock)(),(0,s.createBlock)(c,{key:3,name:"selector",label:e.t("harvester.loadBalancer.tabs.backendServer"),class:"bordered-table",weight:79},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(n,{"key-field":"_key",headers:o.serviceSelectorInfoHeaders,rows:o.backendServerSelectors,"row-actions":!1,"table-actions":!1,"show-headers":!0,search:!1},null,8,["headers","rows"])])),_:1},8,["label"])):(0,s.createCommentVNode)("",!0)])),_:1},8,["value"])}var l=a(72551),o=a(49584),n=a(81345),c=a(32766),i=a(88339),d=a(68774),u=a(29809),m=a(38823),v=a(62261),p={emits:["input"],components:{ResourceTabs:l.A,Tab:o.A,SortableTable:n.A},props:{value:{type:Object,default:()=>({})}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={ipPools:this.$store.dispatch(`${e}/findAll`,{type:c.rk.IP_POOL}),vms:this.$store.dispatch(`${e}/findAll`,{type:c.rk.VM})};await(0,i.kR)(t)},computed:{ipPools(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](c.rk.IP_POOL);return t.filter((e=>e.id===this.value.status.allocatedAddress.ipPool))},ipPoolHeaders(){return v.IP_POOL_HEADERS},listeners(){const e=this.value?.spec?.listeners;return e},listenerHeaders(){return[{name:"name",label:this.t("tableHeaders.name"),value:"name",sort:"name:desc"},{name:"port",label:this.t("tableHeaders.port"),value:"port",sort:"port:desc"},{name:"protocol",label:this.t("tableHeaders.protocol"),value:"protocol",sort:"protocol:desc"},{name:"backendPort",label:this.t("harvester.loadBalancer.listeners.backendPort.label"),value:"backendPort",sort:"backendPort:desc"}]},backendServerSelectors(){return Object.keys(this.value.spec?.backendServerSelector||{}).map((e=>({key:e,value:this.value.spec.backendServerSelector[e]})))},serviceSelectorInfoHeaders(){return[{...d._,width:200},d.Qg]},vmHeaders(){const e=["state","ip","node"];return u.VM_HEADERS.filter((t=>!e.includes(t.name)))},vms(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](c.rk.VM).filter((e=>e.metadata.namespace===this.value.metadata.namespace)),a=(0,m.wC)(t,this.value?.spec?.backendServerSelector,"spec.template.metadata.labels");return a}}},h=a(47433);const k=(0,h.A)(p,[["render",r]]);var b=k},27626:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return b}});var s=a(9274);function r(e,t,a,r,l,o){const n=(0,s.resolveComponent)("SortableTable"),c=(0,s.resolveComponent)("Tab"),i=(0,s.resolveComponent)("ResourceTabs");return(0,s.openBlock)(),(0,s.createBlock)(i,{value:a.value,"need-related":!1,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("input",t))},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(c,{name:"node","label-key":"harvester.vlanConfig.titles.host",weight:99},{default:(0,s.withCtx)((()=>[(0,s.createVNode)(n,{"key-field":"_key",headers:o.nodeHeaders,rows:o.nodes,"row-actions":!1,"table-actions":!1,search:!1},null,8,["headers","rows"])])),_:1})])),_:1},8,["value"])}var l=a(72551),o=a(49584),n=a(81345),c=a(88339),i=a(68774),d=a(38823),u=a(35664),m=a(76978),v=a(2602),p={emits:["input"],components:{ResourceTabs:l.A,Tab:o.A,SortableTable:n.A},props:{value:{type:Object,default:()=>({})}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;this.$store.dispatch("harvester/findAll",{type:u.NW});const t={nodes:this.$store.dispatch(`${e}/findAll`,{type:u.NW})};await(0,c.kR)(t)},computed:{nodeHeaders(){return[i.c4,i.o_,{name:"host-ip",labelKey:"tableHeaders.hostIp",search:["internalIp"],value:"internalIp",sort:["internalIp"]},i.K]},nodes(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](u.NW),a=this.value?.metadata?.annotations?.[v.r.MATCHED_NODES],s=this.value?.spec?.nodeSelector;return(0,m.Im)(s)?a&&a.length>0?t.filter((e=>a.includes(e.id))):t:(0,d.wC)(t,s)}}},h=a(47433);const k=(0,h.A)(p,[["render",r]]);var b=k},44195:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".copy[data-v-2163c48c]{cursor:pointer}",""]),t["default"]=n},82398:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".copy-to-clipboard-text[data-v-d8c131ea]{white-space:nowrap}.copy-to-clipboard-text.plain[data-v-d8c131ea]{color:var(--body-text)}.copy-to-clipboard-text.plain[data-v-d8c131ea]:hover{text-decoration:none}.copy-to-clipboard-text.copied[data-v-d8c131ea]{pointer-events:none;color:var(--success)}",""]),t["default"]=n},27729:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".role[data-v-4ba6006f]{display:flex}",""]),t["default"]=n},37282:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".close[data-v-2f2890f0]{top:10px;right:10px;padding:0;position:absolute}.disk[data-v-2f2890f0]{position:relative}.disk .secret-name[data-v-2f2890f0]{height:61px}.disk[data-v-2f2890f0]:not(:last-of-type){padding-bottom:10px;margin-bottom:30px}.flex[data-v-2f2890f0]{display:flex;justify-content:space-between}.badge-state[data-v-2f2890f0]{padding:2px 5px}",""]),t["default"]=n},24718:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,"#host-instances[data-v-313f57d6] thead th{vertical-align:middle}#host-instances[data-v-313f57d6] .state{display:flex}#host-instances[data-v-313f57d6] .state .vmstate{margin-right:6px}",""]),t["default"]=n},72070:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".error[data-v-3a89cf31]{color:var(--error)}",""]),t["default"]=n},99318:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".entry[data-v-16758c8a]{margin-top:10px}.entry[data-v-16758c8a]:first-of-type{margin-top:0}",""]),t["default"]=n},63770:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".error[data-v-327163e2]{color:var(--error)}",""]),t["default"]=n},26648:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".consoleBut[data-v-e27d81a6]{display:flex;justify-content:flex-end}.overview-basics[data-v-e27d81a6]{display:grid;grid-template-columns:100%;grid-template-rows:auto;grid-row-gap:15px}.overview-basics .badge-state[data-v-e27d81a6]{padding:2px 5px;font-size:12px;margin-right:3px}.overview-basics .smart-row[data-v-e27d81a6]{display:flex;flex-direction:row}.overview-basics .smart-row .console[data-v-e27d81a6]{display:flex;overflow:hidden}.overview-basics__name[data-v-e27d81a6]{flex:1}.overview-basics__ssh-key[data-v-e27d81a6]{min-width:150px}",""]),t["default"]=n},62087:function(e,t,a){"use strict";a.r(t);var s=a(36758),r=a.n(s),l=a(40935),o=a.n(l),n=o()(r());n.push([e.id,".overview-sshKeys[data-v-67f09e09]{text-align:left;max-height:700px;overflow:auto}.overview-sshKeys__item[data-v-67f09e09]{margin-bottom:15px}.overview-sshKeys__item[data-v-67f09e09]:last-child{margin-bottom:0}.overview-sshKeys .key-display[data-v-67f09e09]{position:relative;padding-right:30px;word-break:break-word}.overview-sshKeys .key-display .hide-bar[data-v-67f09e09]{position:absolute;top:-10px;right:10px}",""]),t["default"]=n},25635:function(e,t,a){var s=a(44195);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("a9071e02",s,!0,{sourceMap:!1,shadowMode:!1})},48734:function(e,t,a){var s=a(82398);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("3ce8dc3a",s,!0,{sourceMap:!1,shadowMode:!1})},23857:function(e,t,a){var s=a(27729);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("0c700004",s,!0,{sourceMap:!1,shadowMode:!1})},91810:function(e,t,a){var s=a(37282);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("30b5bd84",s,!0,{sourceMap:!1,shadowMode:!1})},18350:function(e,t,a){var s=a(24718);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("72445b24",s,!0,{sourceMap:!1,shadowMode:!1})},27270:function(e,t,a){var s=a(72070);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("c5f3af0a",s,!0,{sourceMap:!1,shadowMode:!1})},98326:function(e,t,a){var s=a(99318);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("33698eec",s,!0,{sourceMap:!1,shadowMode:!1})},5530:function(e,t,a){var s=a(63770);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("43932117",s,!0,{sourceMap:!1,shadowMode:!1})},40152:function(e,t,a){var s=a(26648);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("492a6099",s,!0,{sourceMap:!1,shadowMode:!1})},66439:function(e,t,a){var s=a(62087);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.id,s,""]]),s.locals&&(e.exports=s.locals);var r=a(74825).A;r("5043011e",s,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.detail.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.detail.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.detail.js.map new file mode 100644 index 00000000..80824f54 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.detail.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.detail.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?432c","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/index.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterHostBasic.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterHostBasic.vue?c280","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/VirtualMachineInstance.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/VirtualMachineInstance.vue?64a0","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterHostDisk.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterHostDisk.vue?9701","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/VlanStatus/index.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/VlanStatus/LinkStatus.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/VlanStatus/LinkStatus.vue?37eb","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/VlanStatus/index.vue?b1f6","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterKsmtuned.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterKsmtuned.vue?be04","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterSeeder.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterSeeder.vue?e6ee","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/index.vue?dfdc","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.management.cluster.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyCode.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyCode.vue?ae92","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.management.cluster.vue?4444","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.schedulevmbackup/index.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.schedulevmbackup/BackupList.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.schedulevmbackup/BackupList.vue?e901","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.schedulevmbackup/SnapshotList.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.schedulevmbackup/SnapshotList.vue?39f2","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.schedulevmbackup/index.vue?d022","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.secret.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.secret.vue?9025","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.virtualmachinebackup/index.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.virtualmachinebackup/index.vue?f841","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.virtualmachineimage/index.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.virtualmachineimage/Storage.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.virtualmachineimage/Storage.vue?940c","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.virtualmachineimage/index.vue?b7d1","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.vmsnapshot/index.vue","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.vmsnapshot/index.vue?96b5","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineKeypairs.vue","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineKeypairs.vue?aaa0","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/index.vue","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineEvents.vue","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineEvents.vue?f2bf","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineMigration.vue","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineMigration.vue?1d4e","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineBasics.vue","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineBasics.vue?8596","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/index.vue?efc7","webpack://harvester-1.5.0-dev/./detail/loadbalancer.harvesterhci.io.ippool.vue","webpack://harvester-1.5.0-dev/./detail/loadbalancer.harvesterhci.io.ippool.vue?0699","webpack://harvester-1.5.0-dev/./detail/loadbalancer.harvesterhci.io.loadbalancer.vue","webpack://harvester-1.5.0-dev/./detail/loadbalancer.harvesterhci.io.loadbalancer.vue?fe3d","webpack://harvester-1.5.0-dev/./detail/network.harvesterhci.io.vlanconfig.vue","webpack://harvester-1.5.0-dev/./detail/network.harvesterhci.io.vlanconfig.vue?2f2a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyCode.vue?39be","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?c2d2","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterHostBasic.vue?0339","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterHostDisk.vue?2bc3","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/VirtualMachineInstance.vue?936b","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.schedulevmbackup/index.vue?1680","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.secret.vue?4172","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.virtualmachineimage/index.vue?f641","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineBasics.vue?abf8","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineKeypairs.vue?762f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyCode.vue?4451","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?a90d","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterHostBasic.vue?f51d","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/HarvesterHostDisk.vue?e858","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.host/VirtualMachineInstance.vue?ed66","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.schedulevmbackup/index.vue?ee03","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.secret.vue?6a5a","webpack://harvester-1.5.0-dev/./detail/harvesterhci.io.virtualmachineimage/index.vue?c8e2","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineBasics.vue?d52e","webpack://harvester-1.5.0-dev/./detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineKeypairs.vue?f027"],"sourcesContent":["<script>\nimport { copyTextToClipboard } from '@shell/utils/clipboard';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nexport default {\n emits: ['error'],\n\n props: {\n text: {\n type: String,\n required: true,\n },\n // Show as plain - don't show in link style\n plain: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return { copied: false };\n },\n\n methods: {\n clicked(event) {\n if (!this.copied) {\n event.preventDefault();\n copyTextToClipboard(this.text).then(() => {\n this.copied = true;\n\n let t = event.target;\n\n if (t.tagName === 'I') {\n t = t.parentElement || t;\n }\n setTimeout(() => {\n this.copied = false;\n }, 500);\n }).catch((e) => {\n this.$emit('error', exceptionToErrorsArray(e));\n });\n }\n },\n }\n};\n</script>\n\n<template>\n <a\n v-if=\"text\"\n class=\"copy-to-clipboard-text\"\n :class=\"{ 'copied': copied, 'plain': plain}\"\n href=\"#\"\n @click=\"clicked\"\n >\n {{ text }} <i\n class=\"icon\"\n :class=\"{ 'icon-copy': !copied, 'icon-checkmark': copied}\"\n />\n </a>\n</template>\n<style lang=\"scss\" scoped>\n .copy-to-clipboard-text {\n white-space: nowrap;\n &.plain {\n color: var(--body-text);\n\n &:hover {\n text-decoration: none;\n }\n }\n\n &.copied {\n pointer-events: none;\n color: var(--success);\n }\n }\n</style>\n","import { render } from \"./CopyToClipboardText.vue?vue&type=template&id=d8c131ea&scoped=true\"\nimport script from \"./CopyToClipboardText.vue?vue&type=script&lang=js\"\nexport * from \"./CopyToClipboardText.vue?vue&type=script&lang=js\"\n\nimport \"./CopyToClipboardText.vue?vue&type=style&index=0&id=d8c131ea&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d8c131ea\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport Tag from '@shell/components/Tag';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport InfoBox from '@shell/components/InfoBox';\nimport LabelValue from '@shell/components/LabelValue';\nimport ArrayListGrouped from '@shell/components/form/ArrayListGrouped';\nimport Loading from '@shell/components/Loading.vue';\nimport SortableTable from '@shell/components/SortableTable';\nimport Banner from '@components/Banner/Banner.vue';\n\nimport metricPoller from '@shell/mixins/metric-poller';\nimport {\n METRIC, NODE, LONGHORN, POD, EVENT\n} from '@shell/config/types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { allHash } from '@shell/utils/promise';\nimport { formatSi } from '@shell/utils/units';\nimport { findBy } from '@shell/utils/array';\nimport { clone } from '@shell/utils/object';\nimport { escapeHtml } from '@shell/utils/string';\nimport { HCI } from '../../types';\n\nimport Basic from './HarvesterHostBasic';\nimport Instance from './VirtualMachineInstance';\nimport Disk from './HarvesterHostDisk';\nimport VlanStatus from './VlanStatus';\nimport HarvesterKsmtuned from './HarvesterKsmtuned.vue';\nimport HarvesterSeeder from './HarvesterSeeder';\n\nconst LONGHORN_SYSTEM = 'longhorn-system';\n\nexport default {\n name: 'DetailHost',\n\n components: {\n Tabbed,\n Tab,\n Tag,\n Basic,\n Instance,\n ArrayListGrouped,\n Disk,\n InfoBox,\n VlanStatus,\n LabelValue,\n HarvesterKsmtuned,\n Loading,\n SortableTable,\n HarvesterSeeder,\n Banner,\n },\n mixins: [metricPoller],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = {\n nodes: this.$store.dispatch('harvester/findAll', { type: NODE }),\n pods: this.$store.dispatch(`${ inStore }/findAll`, { type: POD }),\n };\n\n if (this.$store.getters['harvester/schemaFor'](HCI.VLAN_STATUS)) {\n hash.hostNetworks = this.$store.dispatch('harvester/findAll', { type: HCI.VLAN_STATUS });\n }\n\n if (this.$store.getters['harvester/schemaFor'](HCI.BLOCK_DEVICE)) {\n hash.blockDevices = this.$store.dispatch('harvester/findAll', { type: HCI.BLOCK_DEVICE });\n }\n\n if (this.$store.getters['harvester/schemaFor'](LONGHORN.NODES)) {\n hash.longhornNodes = this.$store.dispatch('harvester/findAll', { type: LONGHORN.NODES });\n }\n\n if (this.$store.getters['harvester/schemaFor'](HCI.LINK_MONITOR)) {\n hash.linkMonitors = this.$store.dispatch('harvester/findAll', { type: HCI.LINK_MONITOR });\n }\n\n if (this.$store.getters['harvester/schemaFor'](HCI.ADD_ONS)) {\n hash.addons = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS });\n }\n\n if (this.$store.getters['harvester/schemaFor'](HCI.INVENTORY)) {\n hash.inventories = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.INVENTORY });\n }\n\n const res = await allHash(hash);\n const hostNetworkResource = (res.hostNetworks || []).find( (O) => this.value.id === O.attachNodeName);\n\n this.loadMetrics();\n\n if (hostNetworkResource) {\n this.hostNetworkResource = hostNetworkResource;\n }\n\n const blockDevices = this.$store.getters[`${ inStore }/all`](HCI.BLOCK_DEVICE);\n const provisionedBlockDevices = blockDevices.filter((d) => {\n const isCurrentNode = d?.spec?.nodeName === this.value.id;\n const isLonghornMounted = findBy(this.longhornDisks, 'name', d.metadata.name);\n\n return d?.isProvisioned && isCurrentNode && !isLonghornMounted;\n })\n .map((d) => {\n return {\n isNew: true,\n name: d?.metadata?.name,\n originPath: d?.spec?.fileSystem?.mountPoint,\n path: d?.spec?.fileSystem?.mountPoint,\n blockDevice: d,\n displayName: d?.displayName,\n forceFormatted: d?.spec?.fileSystem?.forceFormatted || false,\n };\n });\n\n const disks = [...this.longhornDisks, ...provisionedBlockDevices];\n\n this.disks = disks;\n this.newDisks = clone(disks);\n\n const addons = this.$store.getters[`${ inStore }/all`](HCI.ADD_ONS);\n const seeder = addons.find((addon) => addon.id === 'harvester-system/harvester-seeder');\n\n const seederEnabled = seeder ? seeder?.spec?.enabled : false;\n\n if (seederEnabled) {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const inventories = this.$store.getters[`${ inStore }/all`](HCI.INVENTORY) || [];\n\n const inventory = inventories.find((inv) => inv.id === `harvester-system/${ this.value.id }`);\n\n if (inventory) {\n this.inventory = inventory;\n } else {\n this.inventory = await this.$store.dispatch(`${ inStore }/create`, {\n type: HCI.INVENTORY,\n metadata: {\n name: this.value.id,\n namespace: 'harvester-system'\n },\n });\n\n this.inventory.applyDefaults();\n }\n }\n },\n\n data() {\n return {\n metrics: null,\n mode: 'view',\n hostNetworkResource: null,\n newDisks: [],\n disks: [],\n allEvents: [],\n didLoadEvents: false,\n inventory: {},\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n longhornDisks() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const longhornNode = this.$store.getters[`${ inStore }/byId`](LONGHORN.NODES, `longhorn-system/${ this.value.id }`);\n const diskStatus = longhornNode?.status?.diskStatus || {};\n const diskSpec = longhornNode?.spec?.disks || {};\n\n const formatOptions = {\n increment: 1024,\n minExponent: 3,\n maxExponent: 3,\n maxPrecision: 2,\n suffix: 'iB',\n };\n\n const longhornDisks = Object.keys(diskStatus).map((key) => {\n const blockDevice = this.$store.getters[`${ inStore }/byId`](HCI.BLOCK_DEVICE, `longhorn-system/${ key }`);\n\n return {\n ...diskStatus[key],\n ...diskSpec?.[key],\n name: key,\n isNew: false,\n storageReserved: formatSi(diskSpec[key]?.storageReserved, formatOptions),\n storageAvailable: formatSi(diskStatus[key]?.storageAvailable, formatOptions),\n storageMaximum: formatSi(diskStatus[key]?.storageMaximum, formatOptions),\n storageScheduled: formatSi(diskStatus[key]?.storageScheduled, formatOptions),\n blockDevice,\n displayName: blockDevice?.displayName || key,\n forceFormatted: blockDevice?.spec?.fileSystem?.forceFormatted || false,\n tags: diskSpec?.[key]?.tags || [],\n };\n });\n\n return longhornDisks;\n },\n\n hasKsmtunedSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return !!this.$store.getters[`${ inStore }/schemaFor`](HCI.KSTUNED);\n },\n\n hasBlockDevicesSchema() {\n return !!this.$store.getters['harvester/schemaFor'](HCI.BLOCK_DEVICE);\n },\n\n hasHostNetworksSchema() {\n return !!this.$store.getters['harvester/schemaFor'](HCI.VLAN_STATUS);\n },\n\n vlanStatuses() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const nodeId = this.value.id;\n const vlanStatuses = this.$store.getters[`${ inStore }/all`](HCI.VLAN_STATUS);\n\n return vlanStatuses.filter((s) => s?.status?.node === nodeId) || [];\n },\n\n longhornNode() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const longhornNodes = this.$store.getters[`${ inStore }/all`](LONGHORN.NODES);\n\n return longhornNodes.find((node) => node.id === `${ LONGHORN_SYSTEM }/${ this.value.id }`);\n },\n\n events() {\n return this.allEvents.filter((event) => {\n return event.involvedObject?.uid === this.value?.metadata?.uid &&\n event.reason !== 'SeederUpdated';\n }).map((event) => {\n return {\n reason: (`${ event.reason || this.t('generic.unknown') }${ event.count > 1 ? ` (${ event.count })` : '' }`).trim(),\n message: event.message || this.t('generic.unknown'),\n date: event.lastTimestamp || event.firstTimestamp || event.metadata.creationTimestamp,\n eventType: event.eventType\n };\n });\n },\n\n eventHeaders() {\n return [\n {\n name: 'reason',\n label: this.t('tableHeaders.reason'),\n value: 'reason',\n sort: 'reason',\n },\n {\n name: 'message',\n label: this.t('tableHeaders.message'),\n value: 'message',\n sort: 'message',\n },\n {\n name: 'date',\n label: this.t('tableHeaders.updated'),\n value: 'date',\n sort: 'date:desc',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n width: 125\n },\n ];\n },\n\n seederEnabled() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const addons = this.$store.getters[`${ inStore }/all`](HCI.ADD_ONS);\n const seeder = addons.find((addon) => addon.id === 'harvester-system/harvester-seeder');\n\n return seeder ? seeder?.spec?.enabled : false;\n },\n\n ntpSync() {\n const jsonString = this.value.metadata?.annotations?.[HCI_ANNOTATIONS.NODE_NTP_SYNC_STATUS];\n let out = null;\n\n if (!jsonString) {\n return out;\n }\n\n try {\n out = JSON.parse(jsonString);\n } catch (err) {\n this.$store.dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.value.metadata.name) }),\n err,\n }, { root: true });\n }\n\n return out;\n },\n\n ntpSyncedStatus() {\n const status = this.ntpSync?.ntpSyncStatus;\n\n if (status === 'disabled') {\n return {\n status: 'disabled',\n warning: { key: 'harvester.host.ntp.ntpSyncStatus.isDisabled' }\n };\n }\n\n if (status === 'unsynced') {\n return {\n status: 'unsynced',\n warning: {\n key: 'harvester.host.ntp.ntpSyncStatus.isUnsynced',\n current: this.ntpSync?.currentNtpServers ? `<code>${ this.ntpSync.currentNtpServers }</code>` : '',\n }\n };\n }\n\n return {};\n },\n },\n\n methods: {\n async loadMetrics() {\n const schema = this.$store.getters['harvester/schemaFor'](METRIC.NODE);\n\n if (schema) {\n this.metrics = await this.$store.dispatch('harvester/find', {\n type: METRIC.NODE,\n id: this.value.id,\n opt: { force: true, watch: false }\n });\n\n this.$forceUpdate();\n }\n },\n\n // Ensures we only fetch events and show the table when the events tab has been activated\n tabChange(neu) {\n if (!this.didLoadEvents && neu?.selectedName === 'events') {\n this.$store.dispatch(`harvester/findAll`, { type: EVENT }).then((events) => {\n this.allEvents = events;\n this.didLoadEvents = true;\n });\n }\n },\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <Banner\n v-if=\"ntpSyncedStatus.status === 'disabled'\"\n color=\"warning\"\n >\n <span v-clean-html=\"t(ntpSyncedStatus.warning.key)\"></span>\n </Banner>\n <Banner\n v-if=\"ntpSyncedStatus.status === 'unsynced'\"\n color=\"warning\"\n >\n <span v-clean-html=\"t(ntpSyncedStatus.warning.key, { current: ntpSyncedStatus.warning.current }, true)\"></span>\n </Banner>\n <Tabbed\n v-bind=\"$attrs\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n @changed=\"tabChange\"\n >\n <Tab\n name=\"basics\"\n :label=\"t('harvester.host.tabs.basics')\"\n :weight=\"4\"\n class=\"bordered-table\"\n >\n <Basic\n :value=\"value\"\n :metrics=\"metrics\"\n :mode=\"mode\"\n />\n </Tab>\n <Tab\n name=\"instance\"\n :label=\"t('harvester.host.tabs.instance')\"\n :weight=\"3\"\n class=\"bordered-table\"\n >\n <Instance :node=\"value\" />\n </Tab>\n <Tab\n v-if=\"hasHostNetworksSchema && vlanStatuses.length > 0\"\n name=\"network\"\n :label=\"t('harvester.host.tabs.network')\"\n :weight=\"2\"\n class=\"bordered-table\"\n >\n <InfoBox\n v-for=\"(vlan, i) in vlanStatuses\"\n :key=\"i\"\n >\n <VlanStatus\n :value=\"vlan\"\n :mode=\"mode\"\n />\n </InfoBox>\n </Tab>\n <Tab\n v-if=\"hasBlockDevicesSchema\"\n name=\"disk\"\n :weight=\"1\"\n :label=\"t('harvester.host.tabs.storage')\"\n >\n <div\n v-if=\"longhornNode\"\n class=\"row mb-20\"\n >\n <div class=\"col span-12\">\n <LabelValue\n v-if=\"longhornNode.spec.tags.length\"\n :name=\"t('harvester.host.tags.label')\"\n >\n <template #value>\n <div class=\"mt-5\">\n <Tag\n v-for=\"(prop, key) in longhornNode.spec.tags\"\n :key=\"key\"\n >\n {{ prop }}\n </Tag>\n </div>\n </template>\n </LabelValue>\n </div>\n </div>\n <ArrayListGrouped\n v-model:value=\"newDisks\"\n :mode=\"mode\"\n :can-remove=\"false\"\n :initial-empty-row=\"false\"\n >\n <template #default=\"props\">\n <Disk\n v-model:value=\"props.row.value\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disks=\"disks\"\n />\n </template>\n </ArrayListGrouped>\n </Tab>\n\n <Tab\n v-if=\"hasKsmtunedSchema\"\n name=\"ksmtuned\"\n :weight=\"0\"\n :show-header=\"false\"\n :label=\"t('harvester.host.tabs.ksmtuned')\"\n >\n <HarvesterKsmtuned\n :mode=\"mode\"\n :node=\"value\"\n />\n </Tab>\n\n <Tab\n v-if=\"seederEnabled\"\n name=\"seeder\"\n :weight=\"-1\"\n :label=\"t('harvester.host.tabs.seeder')\"\n >\n <HarvesterSeeder\n :mode=\"mode\"\n :node=\"value\"\n :inventory=\"inventory\"\n />\n </Tab>\n\n <Tab\n label-key=\"harvester.virtualMachine.detail.tabs.events\"\n name=\"events\"\n :weight=\"-99\"\n >\n <SortableTable\n :rows=\"events\"\n :headers=\"eventHeaders\"\n key-field=\"id\"\n :search=\"false\"\n :table-actions=\"false\"\n :row-actions=\"false\"\n default-sort-by=\"date\"\n />\n </Tab>\n </Tabbed>\n </div>\n</template>\n","<script>\nimport LabelValue from '@shell/components/LabelValue';\nimport { formatSi, exponentNeeded, UNITS } from '@shell/utils/units';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { LONGHORN, METRIC } from '@shell/config/types';\nimport { Banner } from '@components/Banner';\nimport HarvesterCPUUsed from '../../formatters/HarvesterCPUUsed';\nimport HarvesterMemoryUsed from '../../formatters/HarvesterMemoryUsed';\nimport HarvesterStorageUsed from '../../formatters/HarvesterStorageUsed';\n\nconst COMPLETE = 'complete';\nconst PROMOTE_RESTART = 'promoteRestart';\nconst PROMOTE_SUCCEED = 'promoteSucceed';\n\nexport default {\n name: 'BasicNode',\n\n components: {\n Banner,\n LabelValue,\n HarvesterCPUUsed,\n HarvesterMemoryUsed,\n HarvesterStorageUsed,\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n metrics: {\n type: Object,\n required: false,\n default: () => {\n return null;\n }\n },\n\n mode: {\n type: String,\n required: false,\n default: 'view'\n },\n },\n\n computed: {\n customName() {\n return this.value.metadata?.annotations?.[HCI_ANNOTATIONS.HOST_CUSTOM_NAME];\n },\n cpuManagerStatus() {\n if (this.value.isCPUManagerEnableInProgress) {\n return this.t('generic.loading');\n }\n\n return this.t(`generic.${ this.value.isCPUManagerEnabled ? 'enabled' : 'disabled' }`);\n },\n\n consoleUrl() {\n const consoleUrl = this.value.metadata?.annotations?.[HCI_ANNOTATIONS.HOST_CONSOLE_URL];\n let value = consoleUrl;\n\n if (!consoleUrl) {\n return '';\n }\n\n if (!consoleUrl.startsWith('http://') && !consoleUrl.startsWith('https://')) {\n value = `http://${ consoleUrl }`;\n }\n\n return {\n display: consoleUrl,\n value\n };\n },\n\n cpuTotal() {\n let out = 0;\n\n if (this.metrics) {\n out = this.metrics.cpuCapacity;\n }\n\n return out;\n },\n\n cpuUsage() {\n let out = 0;\n\n if (this.metrics) {\n out = this.metrics.cpuUsage;\n }\n\n return out;\n },\n\n memoryTotal() {\n let out = 0;\n\n if (this.metrics) {\n out = this.metrics.memoryCapacity;\n }\n\n return out;\n },\n\n memoryUsage() {\n let out = 0;\n\n if (this.metrics) {\n out = this.metrics.memoryUsage;\n }\n\n return out;\n },\n\n cpuUnits() {\n return 'C';\n },\n\n memoryUnits() {\n const exponent = exponentNeeded(this.memoryTotal, 1024);\n\n return `${ UNITS[exponent] }iB`;\n },\n\n nodeType() {\n if (this.value.isEtcd) {\n return this.t('harvester.host.detail.etcd');\n }\n\n if (this.value.isMaster) {\n return this.t('harvester.host.detail.management');\n }\n\n return this.t('harvester.host.detail.compute');\n },\n\n lastUpdateTime() {\n return this.value.status?.conditions?.[0]?.lastHeartbeatTime;\n },\n\n nodeRoleState() {\n if (!this.value.isEtcd) {\n const promoteStatus = this.value.metadata?.annotations?.[HCI_ANNOTATIONS.PROMOTE_STATUS];\n\n if (promoteStatus === COMPLETE) {\n const isExistRoleStatus = this.value.metadata?.labels?.[HCI_ANNOTATIONS.NODE_ROLE_MASTER] !== undefined || this.value.metadata?.labels?.[HCI_ANNOTATIONS.NODE_ROLE_CONTROL_PLANE] !== undefined;\n\n return this.t(`harvester.host.promote.${ isExistRoleStatus ? PROMOTE_SUCCEED : PROMOTE_RESTART }`);\n }\n }\n\n return null;\n },\n\n hasMetricNodeSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return !!this.$store.getters[`${ inStore }/schemaFor`](METRIC.NODE);\n },\n\n hasLonghornSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return !!this.$store.getters[`${ inStore }/schemaFor`](LONGHORN.NODES);\n },\n },\n\n methods: {\n memoryFormatter(value) {\n const exponent = exponentNeeded(this.memoryTotal, 1024);\n\n const formatOptions = {\n addSuffix: false,\n increment: 1024,\n minExponent: exponent\n };\n\n return formatSi(value, formatOptions);\n },\n }\n};\n</script>\n\n<template>\n <div class=\"host-detail\">\n <Banner\n v-if=\"value.isKVMDisable\"\n color=\"error\"\n label-key=\"harvester.host.detail.kvm.disableMessage\"\n />\n <h3>{{ t('harvester.host.tabs.overview') }}</h3>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.host.detail.customName')\"\n :value=\"customName\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.host.detail.hostIP')\"\n :value=\"value.internalIp\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.host.detail.os')\"\n :value=\"value.status.nodeInfo.osImage\"\n />\n </div>\n <div class=\"col span-6\">\n <div class=\"role\">\n <LabelValue :name=\"t('harvester.host.detail.role')\">\n <template #value>\n {{ nodeType }}\n <span\n v-if=\"nodeRoleState\"\n class=\"text-warning ml-20\"\n >\n {{ nodeRoleState }}\n </span>\n </template>\n </LabelValue>\n </div>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.host.detail.create')\"\n :value=\"value.metadata.creationTimestamp\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.host.detail.update')\"\n :value=\"lastUpdateTime\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div\n v-if=\"!value.isEtcd && value.cpuPinningFeatureEnabled\"\n class=\"col span-6\"\n >\n <LabelValue\n :name=\"t('harvester.host.detail.cpuManager')\"\n :value=\"cpuManagerStatus\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.host.detail.consoleUrl')\"\n :value=\"consoleUrl.value\"\n >\n <a\n slot=\"value\"\n :href=\"consoleUrl.value\"\n target=\"_blank\"\n >{{ consoleUrl.display }}</a>\n </LabelValue>\n </div>\n </div>\n\n <div v-if=\"hasMetricNodeSchema\">\n <hr class=\"divider\" />\n <h3>{{ t('harvester.host.tabs.monitor') }}</h3>\n <div class=\"row mb-20\">\n <div\n class=\"col\"\n :class=\"{\n 'span-4': hasLonghornSchema,\n 'span-6': !hasLonghornSchema,\n }\"\n >\n <HarvesterCPUUsed\n :row=\"value\"\n :resource-name=\"t('node.detail.glance.consumptionGauge.cpu')\"\n :show-used=\"true\"\n />\n </div>\n <div\n class=\"col\"\n :class=\"{\n 'span-4': hasLonghornSchema,\n 'span-6': !hasLonghornSchema,\n }\"\n >\n <HarvesterMemoryUsed\n :row=\"value\"\n :resource-name=\"t('node.detail.glance.consumptionGauge.memory')\"\n :show-used=\"true\"\n />\n </div>\n <div\n v-if=\"hasLonghornSchema\"\n class=\"col span-4\"\n >\n <HarvesterStorageUsed\n :row=\"value\"\n :resource-name=\"t('harvester.host.detail.storage')\"\n :show-allocated=\"true\"\n />\n </div>\n </div>\n </div>\n\n <hr class=\"section-divider\" />\n <h3>{{ t('harvester.host.detail.more') }}</h3>\n <div class=\"row mb-20\">\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.detail.uuid')\"\n :value=\"value.status.nodeInfo.systemUUID\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.detail.kernel')\"\n :value=\"value.status.nodeInfo.kernelVersion\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.detail.containerRuntime')\"\n :value=\"value.status.nodeInfo.containerRuntimeVersion\"\n />\n </div>\n </div>\n <div\n v-if=\"value.manufacturer || value.serialNumber || value.model\"\n class=\"row mb-20\"\n >\n <div\n v-if=\"value.manufacturer\"\n class=\"col span-4\"\n >\n <LabelValue\n :name=\"t('harvester.host.detail.manufacturer')\"\n :value=\"value.manufacturer\"\n />\n </div>\n <div\n v-if=\"value.serialNumber\"\n class=\"col span-4\"\n >\n <LabelValue\n :name=\"t('harvester.host.detail.serialNumber')\"\n :value=\"value.serialNumber\"\n />\n </div>\n <div\n v-if=\"value.model\"\n class=\"col span-4\"\n >\n <LabelValue\n :name=\"t('harvester.host.detail.model')\"\n :value=\"value.model\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.role {\n display: flex;\n}\n</style>\n","import { render } from \"./HarvesterHostBasic.vue?vue&type=template&id=4ba6006f&scoped=true\"\nimport script from \"./HarvesterHostBasic.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterHostBasic.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterHostBasic.vue?vue&type=style&index=0&id=4ba6006f&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4ba6006f\"]])\n\nexport default __exports__","<script>\nimport { STATE, AGE, NAME } from '@shell/config/table-headers';\nimport SortableTable from '@shell/components/SortableTable';\nimport Loading from '@shell/components/Loading';\nimport { allHash } from '@shell/utils/promise';\nimport { HOSTNAME } from '@shell/config/labels-annotations';\nimport HarvesterVmState from '../../formatters/HarvesterVmState';\nimport { HCI } from '../../types';\n\nexport default {\n name: 'InstanceNode',\n\n components: {\n SortableTable,\n Loading,\n HarvesterVmState,\n },\n\n props: {\n node: {\n type: Object,\n required: true,\n },\n },\n\n async fetch() {\n await allHash({\n vms: this.$store.dispatch('harvester/findAll', { type: HCI.VM }),\n vmis: this.$store.dispatch('harvester/findAll', { type: HCI.VMI }),\n allClusterNetwork: this.$store.dispatch('harvester/findAll', { type: HCI.CLUSTER_NETWORK }),\n });\n },\n\n computed: {\n allClusterNetwork() {\n return this.$store.getters['harvester/all'](HCI.CLUSTER_NETWORK);\n },\n\n rows() {\n const vms = this.$store.getters['harvester/all'](HCI.VM);\n\n return vms.filter((vm) => vm.vmi?.status?.nodeName === this.node?.metadata?.labels?.[HOSTNAME]);\n },\n\n headers() {\n return [\n STATE,\n NAME,\n {\n name: 'vmCPU',\n labelKey: 'tableHeaders.cpu',\n search: false,\n sort: ['spec.template.spec.domain.cpu.cores'],\n value: 'spec.template.spec.domain.cpu.cores',\n width: 120\n },\n {\n name: 'vmRAM',\n labelKey: 'glance.memory',\n search: false,\n sort: ['memorySort'],\n value: 'spec.template.spec.domain.resources.limits.memory',\n width: 120\n },\n {\n name: 'ip',\n label: 'IP Address',\n labelKey: 'harvester.tableHeaders.vm.ipAddress',\n value: 'id',\n formatter: 'HarvesterIpAddress'\n },\n {\n ...AGE,\n sort: 'metadata.creationTimestamp:desc',\n }\n ];\n },\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div\n v-else\n id=\"host-instances\"\n class=\"row\"\n >\n <div class=\"col span-12\">\n <SortableTable\n v-bind=\"$attrs\"\n :headers=\"headers\"\n default-sort-by=\"age\"\n :rows=\"rows\"\n key-field=\"_key\"\n >\n <template\n #cell:state=\"scope\"\n class=\"state-col\"\n >\n <div class=\"state\">\n <HarvesterVmState\n class=\"vmstate\"\n :row=\"scope.row\"\n :all-cluster-network=\"allClusterNetwork\"\n />\n </div>\n </template>\n </Sortabletable>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n#host-instances {\n :deep() thead th {\n vertical-align: middle;\n }\n\n :deep() .state {\n display: flex;\n\n .vmstate {\n margin-right: 6px;\n }\n }\n}\n</style>\n","import { render } from \"./VirtualMachineInstance.vue?vue&type=template&id=313f57d6&scoped=true\"\nimport script from \"./VirtualMachineInstance.vue?vue&type=script&lang=js\"\nexport * from \"./VirtualMachineInstance.vue?vue&type=script&lang=js\"\n\nimport \"./VirtualMachineInstance.vue?vue&type=style&index=0&id=313f57d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-313f57d6\"]])\n\nexport default __exports__","<script>\nimport Tag from '@shell/components/Tag';\nimport LabelValue from '@shell/components/LabelValue';\nimport { BadgeState } from '@components/BadgeState';\nimport { Banner } from '@components/Banner';\nimport HarvesterDisk from '../../mixins/harvester-disk';\nimport { RadioGroup } from '@components/Form/Radio';\n\nimport { LONGHORN_VERSION_V1 } from '@shell/config/types';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n LabelValue,\n BadgeState,\n Banner,\n Tag,\n RadioGroup\n },\n\n mixins: [\n HarvesterDisk,\n ],\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n disks: {\n type: Array,\n default: () => [],\n },\n mode: {\n type: String,\n default: 'edit',\n },\n },\n data() {\n return {};\n },\n computed: {\n targetDisk() {\n return this.disks.find((disk) => disk.name === this.value.name);\n },\n schedulableTooltipMessage() {\n const { name, path } = this.value;\n\n if (this.targetDisk && !this.targetDisk.allowScheduling && name && path) {\n return this.t('harvester.host.disk.allowScheduling.tooltip', { name, path });\n } else {\n return this.schedulableCondition.message;\n }\n },\n allowSchedulingOptions() {\n return [{\n label: this.t('generic.enabled'),\n value: true,\n }, {\n label: this.t('generic.disabled'),\n value: false,\n }];\n },\n\n evictionRequestedOptions() {\n return [{\n label: this.t('generic.yes'),\n value: true,\n }, {\n label: this.t('generic.no'),\n value: false,\n }];\n },\n\n provisionPhase() {\n return this.value?.blockDevice?.provisionPhase || {};\n },\n\n mountedMessage() {\n const state = this.value?.blockDevice?.metadata?.state || {};\n\n if (state?.error) {\n return state?.message;\n } else {\n return '';\n }\n },\n\n provisioner() {\n let labelKey = `harvester.host.disk.storage.longhorn.${ LONGHORN_VERSION_V1 }.label`;\n\n if (this.value?.blockDevice?.spec?.provisioner.longhorn) {\n labelKey = `harvester.host.disk.storage.longhorn.${ this.value.blockDevice.spec.provisioner.longhorn.engineVersion }.label`;\n }\n\n if (this.value?.blockDevice?.spec?.provisioner.lvm) {\n labelKey = 'harvester.host.disk.storage.lvm.label';\n }\n\n return this.t(labelKey);\n },\n },\n methods: {\n update() {\n this.$emit('update:value', this.value);\n },\n\n canEditPath(value) {\n if (this.mountedMessage) {\n return true;\n }\n\n if (value.isNew && !!value.originPath) {\n return true;\n }\n\n return false;\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"disk\"\n @update:value=\"update\"\n >\n <Banner\n v-if=\"mountedMessage\"\n color=\"error\"\n :label=\"mountedMessage\"\n />\n <div v-if=\"!value.isNew\">\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabelValue\n v-if=\"value.tags.length\"\n :name=\"t('harvester.host.disk.tags.label')\"\n >\n <template #value>\n <div class=\"mt-5\">\n <Tag\n v-for=\"(prop, key) in value.tags\"\n :key=\"key\"\n >\n {{ prop }}\n </Tag>\n </div>\n </template>\n </LabelValue>\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-12\">\n <div class=\"pull-left\">\n <RadioGroup\n v-model:value=\"value.allowScheduling\"\n name=\"diskScheduling\"\n :label=\"t('harvester.host.disk.allowScheduling.label')\"\n :mode=\"mode\"\n :options=\"allowSchedulingOptions\"\n :row=\"true\"\n />\n </div>\n <div class=\"pull-right\">\n {{ t('harvester.host.disk.conditions') }}:\n <BadgeState\n v-clean-tooltip=\"readyCondition.message\"\n :color=\"readyCondition.status === 'True' ? 'bg-success' : 'bg-error' \"\n :icon=\"readyCondition.status === 'True' ? 'icon-checkmark' : 'icon-warning' \"\n label=\"Ready\"\n class=\"mr-10 ml-10 state\"\n />\n <BadgeState\n v-clean-tooltip=\"schedulableTooltipMessage\"\n :color=\"schedulableCondition.status === 'True' && targetDisk?.allowScheduling ? 'bg-success' : 'bg-error' \"\n :icon=\"schedulableCondition.status === 'True' && targetDisk?.allowScheduling ? 'icon-checkmark' : 'icon-warning' \"\n label=\"Schedulable\"\n class=\"mr-10 state\"\n />\n <BadgeState\n v-if=\"provisionPhase.label\"\n :color=\"provisionPhase.color\"\n :icon=\"provisionPhase.icon\"\n :label=\"provisionPhase.label\"\n class=\"mr-10 state\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"!value.isNew\"\n class=\"row mt-30\"\n >\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.disk.storageAvailable.label')\"\n :value=\"value.storageAvailable\"\n />\n </div>\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.disk.storageScheduled.label')\"\n :value=\"value.storageScheduled\"\n />\n </div>\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.disk.storageMaximum.label')\"\n :value=\"value.storageMaximum\"\n />\n </div>\n </div>\n <hr class=\"mt-10\" />\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('generic.name')\"\n :value=\"value.displayName\"\n />\n </div>\n <div\n v-if=\"value.path\"\n class=\"col span-4\"\n >\n <LabelValue\n :name=\"t('harvester.host.disk.path.label')\"\n :value=\"value.path\"\n />\n </div>\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.disk.provisioner')\"\n :value=\"provisioner\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.close {\n top: 10px;\n right: 10px;\n padding:0;\n position: absolute;\n}\n\n.disk {\n position: relative;\n\n .secret-name {\n height: $input-height;\n }\n\n &:not(:last-of-type) {\n padding-bottom: 10px;\n margin-bottom: 30px;\n }\n}\n\n.flex {\n display: flex;\n justify-content: space-between;\n}\n\n.badge-state {\n padding: 2px 5px;\n}\n</style>\n","import { render } from \"./HarvesterHostDisk.vue?vue&type=template&id=2f2890f0&scoped=true\"\nimport script from \"./HarvesterHostDisk.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterHostDisk.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterHostDisk.vue?vue&type=style&index=0&id=2f2890f0&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2f2890f0\"]])\n\nexport default __exports__","<script>\nimport LabelValue from '@shell/components/LabelValue';\nimport ArrayListGrouped from '@shell/components/form/ArrayListGrouped';\nimport { BadgeState } from '@components/BadgeState';\n\nimport { _CREATE } from '@shell/config/query-params';\nimport { findBy } from '@shell/utils/array';\n\nimport { HCI } from '../../../types';\nimport LinkStatus from './LinkStatus';\n\nexport default {\n name: 'HarvesterHostNetwork',\n\n components: {\n LabelValue,\n LinkStatus,\n ArrayListGrouped,\n BadgeState,\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n default: _CREATE,\n },\n },\n\n computed: {\n conditions() {\n return this.value?.status?.conditions || [];\n },\n\n readyCondition() {\n return findBy(this.conditions, 'type', 'ready') || {};\n },\n\n linkStatus() {\n const linkMonitorId = this.value?.status?.linkMonitor;\n const nodeName = this.value?.status?.node;\n\n const inStore = this.$store.getters['currentProduct'].inStore;\n const linkMonitors = this.$store.getters[`${ inStore }/all`](HCI.LINK_MONITOR);\n const linkMonitor = (linkMonitors.filter((l) => l.id === linkMonitorId) || [])[0] || {};\n\n return linkMonitor?.status?.linkStatus?.[nodeName] || [];\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <div class=\"pull-right\">\n {{ t('resourceTabs.conditions.tab') }}:\n <BadgeState\n v-clean-tooltip=\"readyCondition.message\"\n :color=\"readyCondition.status === 'True' ? 'bg-success' : 'bg-error' \"\n :icon=\"readyCondition.status === 'True' ? 'icon-checkmark' : 'icon-warning' \"\n :label=\"t('tableHeaders.ready')\"\n class=\"mr-10 ml-10 state\"\n />\n </div>\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.network.clusterNetwork.label')\"\n :value=\"value.status.clusterNetwork\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.vlanStatus.vlanConfig.label')\"\n :value=\"value.status.vlanConfig\"\n />\n </div>\n </div>\n <div class=\"row mt-20\">\n <div class=\"col span-12\">\n <ArrayListGrouped\n v-model:value=\"linkStatus\"\n :mode=\"mode\"\n :can-remove=\"false\"\n >\n <template #default=\"props\">\n <LinkStatus\n :value=\"props.row.value\"\n :mode=\"mode\"\n />\n </template>\n </ArrayListGrouped>\n </div>\n </div>\n </div>\n</template>\n","<script>\nimport LabelValue from '@shell/components/LabelValue';\n\nimport { _CREATE } from '@shell/config/query-params';\n\nexport default {\n name: 'LinkStatus',\n\n components: { LabelValue },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n default: _CREATE,\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('generic.name')\"\n :value=\"value.name\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('tableHeaders.state')\"\n :value=\"value.state\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('tableHeaders.type')\"\n :value=\"value.type\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.fields.macAddress')\"\n :value=\"value.mac\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div\n v-if=\"value.promiscuous === 'true'\"\n class=\"col span-6\"\n >\n <LabelValue\n :name=\"t('harvester.fields.promiscuous')\"\n :value=\"value.promiscuous\"\n >\n <template #value>\n {{ value.promiscuous === 'true' ? t('generic.yes') : t('generic.no') }}\n </template>\n </LabelValue>\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./LinkStatus.vue?vue&type=template&id=464d8096\"\nimport script from \"./LinkStatus.vue?vue&type=script&lang=js\"\nexport * from \"./LinkStatus.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=0daa1cf5\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport LabelValue from '@shell/components/LabelValue';\nimport { HCI } from '../../types';\nimport { ksmtunedMode, ksmtunedRunOption } from '../../edit/harvesterhci.io.host/HarvesterKsmtuned.vue';\n\nexport default {\n name: 'HarvesterKsmtuned',\n components: { LabelValue },\n\n props: {\n mode: {\n type: String,\n required: true\n },\n\n node: {\n type: Object,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = await this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.KSTUNED });\n\n this.ksmtuned = hash.find((node) => {\n return node.id === this.node.id;\n });\n },\n\n data() {\n return { ksmtuned: {} };\n },\n\n computed: {\n modeText() {\n const mode = this.ksmtuned.spec.mode;\n\n return ksmtunedMode.find((M) => M.value === mode).label;\n },\n\n thresCoef() {\n return `${ this.ksmtuned.spec.thresCoef } %`;\n },\n\n runText() {\n const run = this.ksmtuned.spec.run;\n\n return ksmtunedRunOption.find((M) => M.value === run).label;\n },\n\n showRunInformation() {\n return this.ksmtuned.spec.run === 'run';\n },\n\n mergeNodesText() {\n return this.ksmtuned.spec?.mergeAcrossNodes ? this.t('harvester.host.ksmtuned.enable') : this.t('harvester.host.ksmtuned.disable');\n },\n\n ksmdPhase() {\n return this.ksmtuned?.status?.ksmdPhase;\n },\n\n ksmdPhaseTextColor() {\n return this.ksmdPhase === 'Running' ? 'text-success' : 'text-warning';\n }\n },\n};\n</script>\n\n<template>\n <div>\n <template v-if=\"ksmtuned.status\">\n <h2>\n {{ t('harvester.host.ksmtuned.configure') }}\n </h2>\n <div class=\"row mb-20\">\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.run')\"\n :value=\"runText\"\n />\n </div>\n </div>\n\n <div\n v-if=\"showRunInformation\"\n class=\"row mb-20\"\n >\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.thresCoef')\"\n :value=\"thresCoef\"\n />\n </div>\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.mode')\"\n :value=\"modeText\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.enableMergeNodes')\"\n :value=\"mergeNodesText\"\n />\n </div>\n </div>\n\n <div v-if=\"showRunInformation\">\n <hr class=\"divider\" />\n\n <h3>{{ t('harvester.host.ksmtuned.parameters.title') }}</h3>\n <div class=\"row mb-20\">\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.parameters.boost')\"\n :value=\"ksmtuned.spec.ksmtunedParameters.boost\"\n />\n </div>\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.parameters.decay')\"\n :value=\"ksmtuned.spec.ksmtunedParameters.decay\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.parameters.sleepMsec')\"\n :value=\"ksmtuned.spec.ksmtunedParameters.sleepMsec\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.parameters.minPages')\"\n :value=\"ksmtuned.spec.ksmtunedParameters.minPages\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.parameters.maxPages')\"\n :value=\"ksmtuned.spec.ksmtunedParameters.maxPages\"\n />\n </div>\n </div>\n </div>\n\n <div>\n <hr class=\"divider\" />\n <h3>\n <t\n k=\"harvester.host.ksmtuned.statistics.title\"\n :raw=\"true\"\n />\n </h3>\n <div class=\"row mb-20\">\n <div class=\"col span-4\">\n <LabelValue :name=\"t('harvester.host.ksmtuned.ksmStatus')\">\n <template #value>\n <span :class=\"ksmdPhaseTextColor\">{{ ksmdPhase }}</span>\n </template>\n </LabelValue>\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.statistics.sharing')\"\n :value=\"ksmtuned.status.sharing\"\n />\n </div>\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.statistics.shared')\"\n :value=\"ksmtuned.status.shared\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.statistics.unshared')\"\n :value=\"ksmtuned.status.unshared\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.statistics.volatile')\"\n :value=\"ksmtuned.status.volatile\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.statistics.fullScans')\"\n :value=\"ksmtuned.status.fullScans\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.statistics.stableNodeDups')\"\n :value=\"ksmtuned.status.stableNodeDups\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabelValue\n :name=\"t('harvester.host.ksmtuned.statistics.stableNodeChains')\"\n :value=\"ksmtuned.status.stableNodeChains\"\n />\n </div>\n </div>\n </div>\n </template>\n </div>\n</template>\n","import { render } from \"./HarvesterKsmtuned.vue?vue&type=template&id=759a21a0\"\nimport script from \"./HarvesterKsmtuned.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterKsmtuned.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { RadioGroup } from '@components/Form/Radio';\nimport LabelValue from '@shell/components/LabelValue';\nimport { Banner } from '@components/Banner';\n\nexport default {\n name: 'HarvesterSeeder',\n\n components: {\n RadioGroup,\n LabelValue,\n Banner,\n },\n\n props: {\n mode: {\n type: String,\n required: true\n },\n\n node: {\n type: Object,\n required: true,\n },\n\n inventory: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n const enableInventory = !!this.inventory?.id;\n\n return {\n enableInventory,\n value: this.inventory,\n };\n },\n\n computed: {\n selectedSecret() {\n const namespace = this.value.spec?.baseboardSpec?.connection?.authSecretRef?.namespace;\n const name = this.value?.spec?.baseboardSpec?.connection?.authSecretRef?.name;\n\n if (namespace && name) {\n return `${ namespace }/${ name }`;\n } else {\n return 'N/A';\n }\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"inventory.warningMessages.length > 0\">\n <Banner\n v-for=\"(msg, i) in inventory.warningMessages\"\n :key=\"i\"\n color=\"error\"\n :label=\"msg.text\"\n />\n </div>\n <div v-if=\"enableInventory\">\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.seeder.inventory.host.label')\"\n :value=\"value.spec.baseboardSpec.connection.host\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.seeder.inventory.port.label')\"\n :value=\"value.spec.baseboardSpec.connection.port\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.seeder.inventory.insecureTLS.label')\"\n :value=\"value.spec.baseboardSpec.connection.insecureTLS ? t('generic.yes') : t('generic.no')\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.seeder.inventory.secret.label')\"\n :value=\"selectedSecret\"\n />\n </div>\n </div>\n\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.seeder.inventory.event.label')\"\n :value=\"value.spec.events.enabled ? t('generic.enabled') : t('generic.disabled')\"\n />\n </div>\n <div\n v-if=\"value.spec.events.enabled\"\n class=\"col span-6\"\n >\n <LabelValue\n :name=\"t('harvester.seeder.inventory.pollingInterval.label')\"\n :value=\"value.spec.events.pollingInterval\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"row\"\n >\n <div class=\"col span-6\">\n <RadioGroup\n v-model:value=\"enableInventory\"\n :options=\"[\n { label: t('generic.enabled'), value: true },\n { label: t('generic.disabled'), value: false }\n ]\"\n :mode=\"mode\"\n name=\"enableInventory\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./HarvesterSeeder.vue?vue&type=template&id=e3661a34\"\nimport script from \"./HarvesterSeeder.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterSeeder.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=3c0ff454\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport CopyCode from '@shell/components/CopyCode';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { allHash } from '@shell/utils/promise';\n\nexport default {\n emits: ['input'],\n\n components: {\n Loading,\n ResourceTabs,\n Tab,\n CopyCode,\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n async fetch() {\n await this.value.waitForProvisioner();\n\n const hash = { clusterToken: this.value.getOrCreateToken() };\n\n const res = await allHash(hash);\n\n this.allNodes = res.allNodes || [];\n this.allNodePools = res.allNodePools || [];\n this.clusterToken = res.clusterToken;\n },\n\n data() {\n return { clusterToken: null };\n },\n\n computed: {\n defaultTab() {\n if (this.showRegistration && !this.machines?.length) {\n return 'registration';\n }\n\n return '';\n },\n\n showRegistration() {\n if ( !this.clusterToken ) {\n return false;\n }\n\n if ( this.value.isImported ) {\n return !this.value.mgmt?.isReady;\n }\n\n return false;\n },\n\n registrationURL() {\n return (this.clusterToken?.command || '').replace('kubectl apply -f ', '');\n },\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <ResourceTabs\n v-else\n :value=\"value\"\n :default-tab=\"defaultTab\"\n @input=\"$emit('input', $event)\"\n >\n <Tab\n v-if=\"showRegistration\"\n name=\"registration\"\n :label=\"t('cluster.tabs.registration')\"\n :weight=\"2\"\n class=\"p-10\"\n >\n <h4\n v-clean-html=\"t('cluster.harvester.registration.step1', null, true)\"\n />\n\n <h4\n v-clean-html=\"t('cluster.harvester.registration.step2', null, true)\"\n class=\"mt-10\"\n />\n\n <h4\n v-clean-html=\"t('cluster.harvester.registration.step3', null, true)\"\n class=\"mt-10\"\n />\n <CopyCode class=\"m-10 p-10\">\n {{ registrationURL }}\n </CopyCode>\n </Tab>\n </ResourceTabs>\n</template>\n","<script>\nimport { isArray } from '@shell/utils/array';\nimport { copyTextToClipboard } from '@shell/utils/clipboard';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\n\nfunction flatten(node) {\n if ( node.text ) {\n return node.text;\n } else if ( isArray(node) ) {\n return node.map(flatten).join(' ');\n } else if ( node.children ) {\n if ( isArray(node.children) ) {\n return node.children.map(flatten).join(' ');\n } else {\n return node.children;\n }\n } else {\n return '';\n }\n}\n\nexport default {\n emits: ['copied', 'error'],\n\n data() {\n return { copied: false };\n },\n\n methods: {\n clicked($event) {\n $event.stopPropagation();\n $event.preventDefault();\n\n const content = flatten(this.$slots.default()).trim();\n\n copyTextToClipboard(content).then(() => {\n this.copied = true;\n\n setTimeout(() => {\n this.copied = false;\n }, 2000);\n this.$emit('copied');\n }).catch((e) => {\n this.$emit('error', exceptionToErrorsArray(e));\n });\n },\n },\n\n computed: {\n tooltip() {\n const content = this.copied ? 'Copied!' : 'Click to Copy';\n\n return {\n content,\n hideOnTargetClick: false\n };\n }\n }\n};\n</script>\n\n<template>\n <code\n v-clean-tooltip=\"tooltip\"\n class=\"copy\"\n @click.stop.prevent=\"clicked\"\n ><slot /></code>\n</template>\n\n<style lang=\"scss\" scoped>\n .copy {\n cursor: pointer;\n }\n</style>\n","import { render } from \"./CopyCode.vue?vue&type=template&id=2163c48c&scoped=true\"\nimport script from \"./CopyCode.vue?vue&type=script&lang=js\"\nexport * from \"./CopyCode.vue?vue&type=script&lang=js\"\n\nimport \"./CopyCode.vue?vue&type=style&index=0&id=2163c48c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2163c48c\"]])\n\nexport default __exports__","import { render } from \"./harvesterhci.io.management.cluster.vue?vue&type=template&id=66a38698\"\nimport script from \"./harvesterhci.io.management.cluster.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.management.cluster.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport LabelValue from '@shell/components/LabelValue';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { BACKUP_TYPE } from '../../config/types';\nimport BackupList from './BackupList';\nimport SnapshotList from './SnapshotList';\nimport cronstrue from 'cronstrue';\n\nexport default {\n name: 'ScheduleVmBackupDetail',\n components: {\n BackupList,\n SnapshotList,\n Tab,\n Tabbed,\n LabelValue,\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n },\n\n computed: {\n isBackup() {\n return this.value.spec.vmbackup.type === BACKUP_TYPE.BACKUP;\n },\n isSnapshot() {\n return this.value.spec.vmbackup.type === BACKUP_TYPE.SNAPSHOT;\n },\n cronExpression() {\n let cronHint = '';\n\n try {\n cronHint = cronstrue.toString(this.value.spec.cron, { verbose: true });\n } catch (e) {\n cronHint = this.t('generic.invalidCron');\n }\n\n return cronHint ? `${ this.value.spec.cron } (${ cronHint })` : this.value.spec.cron;\n }\n }\n};\n</script>\n\n<template>\n <Tabbed\n v-bind=\"$attrs\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n >\n <Tab\n name=\"basic\"\n :label=\"t('harvester.virtualMachine.detail.tabs.basics')\"\n class=\"bordered-table\"\n :weight=\"99\"\n >\n <div class=\"row\">\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.schedule.detail.namespace')\"\n :value=\"value.metadata.namespace\"\n />\n </div>\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.schedule.detail.sourceVM')\"\n :value=\"value.spec.vmbackup.source.name\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.schedule.cron')\"\n :value=\"cronExpression\"\n />\n </div>\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.schedule.scheduleType')\"\n :value=\"value.spec.vmbackup.type\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.schedule.retain.label')\"\n :value=\"value.spec.retain\"\n />\n </div>\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.schedule.maxFailure.label')\"\n :value=\"value.spec.maxFailure\"\n />\n </div>\n </div>\n </Tab>\n <Tab\n v-if=\"isBackup\"\n name=\"backups\"\n :label=\"t('harvester.schedule.tabs.backups')\"\n :weight=\"89\"\n class=\"bordered-table\"\n >\n <BackupList :id=\"value.id\" />\n </Tab>\n <Tab\n v-if=\"isSnapshot\"\n name=\"snapshots\"\n :label=\"t('harvester.schedule.tabs.snapshots')\"\n :weight=\"79\"\n class=\"bordered-table\"\n >\n <SnapshotList :id=\"value.id\" />\n </Tab>\n </Tabbed>\n</template>\n\n<style lang=\"scss\" scoped>\n.error {\n color: var(--error);\n}\n</style>\n","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { STATE, NAME, AGE } from '@shell/config/table-headers';\nimport { allSettled } from '../../utils/promise';\nimport { BACKUP_TYPE } from '../../config/types';\nimport { HCI } from '../../types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\n\nexport default {\n name: 'BackupList',\n\n components: { ResourceTable },\n\n props: {\n id: {\n type: String,\n required: true,\n },\n },\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hash = await allSettled({ backups: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.BACKUP }) });\n\n this.rows = hash.backups;\n },\n\n data() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const schema = this.$store.getters[`${ inStore }/schemaFor`](HCI.BACKUP);\n\n return {\n rows: [],\n schema\n };\n },\n\n computed: {\n headers() {\n const cols = [\n STATE,\n {\n ...NAME,\n width: 400\n },\n {\n name: 'targetVM',\n labelKey: 'tableHeaders.targetVm',\n value: 'attachVM',\n align: 'left',\n sort: 'attachVM',\n formatter: 'AttachVMWithName'\n },\n {\n name: 'backupTarget',\n labelKey: 'tableHeaders.backupTarget',\n value: 'backupTarget',\n sort: 'backupTarget',\n align: 'left',\n formatter: 'HarvesterBackupTargetValidation'\n },\n {\n name: 'readyToUse',\n labelKey: 'tableHeaders.readyToUse',\n value: 'status.readyToUse',\n sort: 'status.readyToUse',\n align: 'center',\n formatter: 'Checked',\n },\n ];\n\n if (this.hasBackupProgresses) {\n cols.push({\n name: 'backupProgress',\n labelKey: 'tableHeaders.progress',\n value: 'backupProgress',\n sort: 'backupProgress',\n align: 'left',\n formatter: 'HarvesterBackupProgressBar',\n });\n }\n cols.push(AGE);\n\n return cols;\n },\n\n hasBackupProgresses() {\n return !!this.rows.find((R) => R.status?.progress !== undefined);\n },\n\n filteredRows() {\n let r = this.rows.filter((row) => row.spec?.type === BACKUP_TYPE.BACKUP);\n\n if (this.id) {\n r = r.filter((backup) => backup.metadata.annotations?.[HCI_ANNOTATIONS.SVM_BACKUP_ID] === this.id);\n }\n\n return r;\n },\n },\n};\n</script>\n\n<template>\n <ResourceTable\n v-bind=\"$attrs\"\n :headers=\"headers\"\n :groupable=\"false\"\n :rows=\"filteredRows\"\n :schema=\"schema\"\n key-field=\"_key\"\n default-sort-by=\"age\"\n >\n <template #col:name=\"{row}\">\n <td>\n <span>\n <router-link\n v-if=\"row?.status?.source\"\n :to=\"row.detailLocation\"\n >\n {{ row.nameDisplay }}\n </router-link>\n <span v-else>\n {{ row.nameDisplay }}\n </span>\n </span>\n </td>\n </template>\n </ResourceTable>\n</template>\n","import { render } from \"./BackupList.vue?vue&type=template&id=7bb13e16\"\nimport script from \"./BackupList.vue?vue&type=script&lang=js\"\nexport * from \"./BackupList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { STATE, NAME, AGE } from '@shell/config/table-headers';\nimport { allSettled } from '../../utils/promise';\nimport { BACKUP_TYPE } from '../../config/types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../../types';\nimport { schema } from '../../list/harvesterhci.io.vmsnapshot';\n\nexport default {\n name: 'SnapshotList',\n\n components: { ResourceTable },\n\n props: {\n\n id: {\n type: String,\n required: true,\n },\n },\n async fetch() {\n const hash = await allSettled({ backups: this.$store.dispatch('harvester/findAll', { type: HCI.BACKUP }) });\n\n this.rows = hash.backups;\n },\n\n data() {\n return {\n rows: [],\n schema\n };\n },\n\n computed: {\n headers() {\n return [\n STATE,\n NAME,\n {\n name: 'targetVM',\n labelKey: 'tableHeaders.targetVm',\n value: 'attachVM',\n align: 'left',\n formatter: 'AttachVMWithName'\n },\n {\n name: 'readyToUse',\n labelKey: 'tableHeaders.readyToUse',\n value: 'status.readyToUse',\n align: 'center',\n formatter: 'Checked',\n },\n AGE\n ];\n },\n\n filteredRows() {\n let r = this.rows.filter((row) => row.spec?.type === BACKUP_TYPE.SNAPSHOT);\n\n if (this.id) {\n r = r.filter((row) => row.metadata.annotations?.[HCI_ANNOTATIONS.SVM_BACKUP_ID] === this.id);\n }\n\n return r;\n },\n },\n};\n</script>\n\n<template>\n <ResourceTable\n v-bind=\"$attrs\"\n :headers=\"headers\"\n :groupable=\"false\"\n :rows=\"filteredRows\"\n :schema=\"schema\"\n key-field=\"_key\"\n default-sort-by=\"age\"\n >\n <template #col:name=\"{row}\">\n <td>\n <span>\n <router-link\n v-if=\"row?.status?.source\"\n :to=\"row.detailLocation\"\n >\n {{ row.nameDisplay }}\n </router-link>\n <span v-else>\n {{ row.nameDisplay }}\n </span>\n </span>\n </td>\n </template>\n </ResourceTable>\n</template>\n","import { render } from \"./SnapshotList.vue?vue&type=template&id=56e72150\"\nimport script from \"./SnapshotList.vue?vue&type=script&lang=js\"\nexport * from \"./SnapshotList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=3a89cf31&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3a89cf31&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3a89cf31\"]])\n\nexport default __exports__","<script>\nimport { SECRET_TYPES as TYPES } from '@shell/config/secret';\nimport { base64Decode } from '@shell/utils/crypto';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport DetailText from '@shell/components/DetailText';\nimport Tab from '@shell/components/Tabbed/Tab';\n\nconst types = [\n TYPES.OPAQUE,\n TYPES.DOCKER_JSON,\n TYPES.TLS,\n TYPES.SSH,\n TYPES.BASIC,\n];\nconst registryAddresses = [\n 'DockerHub', 'Quay.io', 'Artifactory', 'Custom'\n];\n\nexport default {\n emits: ['input'],\n\n components: {\n ResourceTabs,\n DetailText,\n Tab,\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n data() {\n let username;\n let password;\n let registryUrl;\n let registryProvider = 'Custom';\n let key;\n let crt;\n\n if (this.value._type === TYPES.DOCKER_JSON) {\n const json = base64Decode(this.value.data['.dockerconfigjson']);\n\n const { auths } = JSON.parse(json);\n\n registryUrl = Object.keys(auths)[0];\n\n if (registryUrl === 'index.docker.io/v1/') {\n registryProvider = 'DockerHub';\n } else if (registryUrl === 'quay.io') {\n registryProvider = 'Quay.io';\n } else if (registryUrl.includes('artifactory')) {\n registryProvider = 'Artifactory';\n }\n\n username = auths[registryUrl].username;\n password = auths[registryUrl].password;\n }\n\n const data = this.value?.data || {};\n\n if (this.value._type === TYPES.TLS) {\n // do not show existing key when editing\n key = this.mode === 'edit' ? '' : base64Decode(data['tls.key']);\n\n crt = base64Decode(data['tls.crt']);\n }\n\n if (this.value._type === TYPES.SERVICE_ACCT) {\n key = base64Decode(data['token']);\n crt = base64Decode(data['ca.crt']);\n }\n\n if ( this.value._type === TYPES.BASIC ) {\n username = base64Decode(data.username || '');\n password = base64Decode(data.password || '');\n }\n\n if ( this.value._type === TYPES.SSH ) {\n username = base64Decode(data['ssh-publickey'] || '');\n password = base64Decode(data['ssh-privatekey'] || '');\n }\n\n if (!this.value._type) {\n this.value['_type'] = TYPES.OPAQUE;\n }\n\n return {\n types,\n registryAddresses,\n registryProvider,\n username,\n password,\n registryUrl,\n key,\n crt,\n relatedServices: [],\n };\n },\n\n computed: {\n isCertificate() {\n return this.value._type === TYPES.TLS;\n },\n\n isSvcAcctToken() {\n return this.value._type === TYPES.SERVICE_ACCT;\n },\n\n isRegistry() {\n return this.value._type === TYPES.DOCKER_JSON;\n },\n\n isSsh() {\n return this.value._type === TYPES.SSH;\n },\n\n isBasicAuth() {\n return this.value._type === TYPES.BASIC;\n },\n\n parsedRows() {\n const rows = [];\n const { data = {} } = this.value;\n\n Object.keys(data).forEach((key) => {\n const value = base64Decode(data[key]);\n\n rows.push({\n key,\n value\n });\n });\n\n return rows;\n },\n\n dataLabel() {\n switch (this.value._type) {\n case TYPES.TLS:\n return this.t('secret.certificate.certificate');\n case TYPES.SSH:\n return this.t('secret.ssh.keys');\n case TYPES.BASIC:\n return this.t('secret.authentication');\n default:\n return this.t('secret.data');\n }\n }\n },\n};\n</script>\n\n<template>\n <ResourceTabs\n :value=\"value\"\n :need-events=\"false\"\n :need-related=\"false\"\n :mode=\"mode\"\n @update:value=\"$emit('input', $event)\"\n >\n <Tab\n name=\"data\"\n :label=\"dataLabel\"\n >\n <template v-if=\"isRegistry || isBasicAuth\">\n <div\n v-if=\"isRegistry\"\n class=\"row\"\n >\n <div class=\"col span-12\">\n <DetailText\n :value=\"registryUrl\"\n label-key=\"secret.registry.domainName\"\n />\n </div>\n </div>\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <DetailText\n :value=\"username\"\n label-key=\"secret.registry.username\"\n />\n </div>\n <div class=\"col span-6\">\n <DetailText\n :value=\"password\"\n label-key=\"secret.registry.password\"\n :conceal=\"true\"\n />\n </div>\n </div>\n </template>\n\n <div\n v-else-if=\"isCertificate\"\n class=\"row\"\n >\n <div class=\"col span-6\">\n <DetailText\n :value=\"key\"\n label-key=\"secret.certificate.privateKey\"\n :conceal=\"true\"\n />\n </div>\n <div class=\"col span-6\">\n <DetailText\n :value=\"crt\"\n label-key=\"secret.certificate.certificate\"\n />\n </div>\n </div>\n\n <div\n v-else-if=\"isSvcAcctToken\"\n class=\"row\"\n >\n <div class=\"col span-6\">\n <DetailText\n :value=\"crt\"\n label-key=\"secret.serviceAcct.ca\"\n />\n </div>\n <div class=\"col span-6\">\n <DetailText\n :value=\"key\"\n label-key=\"secret.serviceAcct.token\"\n :conceal=\"true\"\n />\n </div>\n </div>\n\n <div\n v-else-if=\"isSsh\"\n class=\"row\"\n >\n <div class=\"col span-6\">\n <DetailText\n :value=\"username\"\n label-key=\"secret.ssh.public\"\n />\n </div>\n <div class=\"col span-6\">\n <DetailText\n :value=\"password\"\n label-key=\"secret.ssh.private\"\n :conceal=\"true\"\n />\n </div>\n </div>\n\n <div v-else>\n <div\n v-for=\"(row,idx) in parsedRows\"\n :key=\"idx\"\n class=\"entry\"\n >\n <DetailText\n :value=\"row.value\"\n :label=\"row.key\"\n :conceal=\"true\"\n />\n </div>\n <div v-if=\"!parsedRows.length\">\n <div\n v-t=\"'sortableTable.noRows'\"\n class=\"m-20 text-center\"\n />\n </div>\n </div>\n </Tab>\n </ResourceTabs>\n</template>\n\n<style lang=\"scss\" scoped>\n .entry {\n margin-top: 10px;\n\n &:first-of-type {\n margin-top: 0;\n }\n }\n</style>\n","import { render } from \"./harvesterhci.io.secret.vue?vue&type=template&id=16758c8a&scoped=true\"\nimport script from \"./harvesterhci.io.secret.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.secret.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.secret.vue?vue&type=style&index=0&id=16758c8a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-16758c8a\"]])\n\nexport default __exports__","<script>\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport Loading from '@shell/components/Loading';\nimport CruResource from '@shell/components/CruResource';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport LabelValue from '@shell/components/LabelValue';\nimport { allHash } from '@shell/utils/promise';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport VM_MIXIN from '../../mixins/harvester-vm';\nimport { HCI } from '../../types';\nimport CpuMemory from '../../edit/kubevirt.io.virtualmachine/VirtualMachineCpuMemory';\n\nimport OverviewKeypairs from '../kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineKeypairs';\nimport Volume from '../../edit/kubevirt.io.virtualmachine/VirtualMachineVolume';\nimport Network from '../../edit/kubevirt.io.virtualmachine/VirtualMachineNetwork';\nimport CloudConfig from '../../edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig';\nconst UNDEFINED = 'n/a';\n\nexport default {\n name: 'BackupDetail',\n\n components: {\n Volume,\n Network,\n CruResource,\n Tabbed,\n Loading,\n LabelValue,\n Tab,\n CloudConfig,\n Checkbox,\n CpuMemory,\n OverviewKeypairs,\n },\n\n mixins: [CreateEditView, VM_MIXIN],\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n mode: {\n type: String,\n required: true,\n },\n },\n\n async fetch() {\n await allHash({ allImages: this.$store.dispatch('harvester/findAll', { type: HCI.IMAGE }) });\n },\n\n data() {\n return { vm: null };\n },\n\n computed: {\n name() {\n return this.value?.metadata?.name || UNDEFINED;\n },\n\n hostname() {\n return this?.spec?.template?.spec?.hostname;\n },\n\n imageName() {\n const imageList = this.$store.getters['harvester/all'](HCI.IMAGE) || [];\n\n const image = imageList.find( (I) => this.imageId === I.id);\n\n return image?.spec?.displayName || '-';\n },\n\n disks() {\n const disks = this?.spec?.template?.spec?.domain?.devices?.disks || [];\n\n return disks.filter((disk) => {\n return !!disk.bootOrder;\n }).sort((a, b) => {\n if (a.bootOrder < b.bootOrder) {\n return -1;\n }\n\n return 1;\n });\n },\n\n cdroms() {\n const disks = this?.spec?.template?.spec?.domain?.devices?.disks || [];\n\n return disks.filter((disk) => {\n return !!disk.cdrom;\n });\n },\n },\n\n methods: {\n getDeviceType(o) {\n if (o.disk) {\n return 'Disk';\n } else {\n return 'CD-ROM';\n }\n },\n isEmpty(o) {\n return o !== undefined && Object.keys(o).length === 0;\n },\n onTabChanged({ tab }) {\n if (tab.name === 'advanced') {\n this.$refs.yamlEditor?.refresh();\n }\n }\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <CruResource\n v-else\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :apply-hooks=\"applyHooks\"\n >\n <Tabbed\n v-if=\"spec\"\n :side-tabs=\"true\"\n @changed=\"onTabChanged\"\n >\n <Tab\n name=\"Basics\"\n :label=\"t('harvester.virtualMachine.detail.tabs.basics')\"\n >\n <div class=\"row\">\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.name')\"\n :value=\"name\"\n />\n </div>\n\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.fields.image')\"\n :value=\"imageName\"\n />\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.hostname')\"\n :value=\"hostname\"\n />\n </div>\n\n <div class=\"col span-6 mb-20\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.input.MachineType')\"\n :value=\"machineType\"\n />\n </div>\n </div>\n <div class=\"mb-20\">\n <CpuMemory\n :cpu=\"cpu\"\n :mode=\"mode\"\n :memory=\"memory\"\n />\n </div>\n <div class=\"row\">\n <div class=\"col span-6 mb-20\">\n <LabelValue :name=\"t('harvester.virtualMachine.detail.details.bootOrder')\">\n <template #value>\n <div>\n <ul>\n <li\n v-for=\"(disk, i) in disks\"\n :key=\"i\"\n >\n {{ disk.bootOrder }}. {{ disk.name }} ({{ getDeviceType(disk) }})\n </li>\n </ul>\n </div>\n </template>\n </LabelValue>\n </div>\n <div class=\"col span-6 mb-20\">\n <LabelValue :name=\"t('harvester.virtualMachine.detail.details.CDROMs')\">\n <template #value>\n <div>\n <ul v-if=\"cdroms.length > 0\">\n <li\n v-for=\"(rom, i) in cdroms\"\n :key=\"i\"\n >\n {{ rom.name }}\n </li>\n </ul>\n <span v-else>\n {{ t(\"harvester.virtualMachine.detail.notAvailable\") }}\n </span>\n </div>\n </template>\n </LabelValue>\n </div>\n </div>\n </Tab>\n <Tab\n name=\"volume\"\n :label=\"t('harvester.tab.volume')\"\n :weight=\"-1\"\n >\n <Volume\n v-model:value=\"diskRows\"\n :mode=\"mode\"\n />\n </Tab>\n\n <Tab\n name=\"network\"\n :label=\"t('harvester.tab.network')\"\n :weight=\"-2\"\n >\n <Network\n v-model:value=\"networkRows\"\n :mode=\"mode\"\n />\n </Tab>\n\n <Tab\n name=\"keypairs\"\n :label=\"t('harvester.virtualMachine.detail.tabs.keypairs')\"\n class=\"bordered-table\"\n :weight=\"-3\"\n >\n <OverviewKeypairs\n v-if=\"vm\"\n v-model:value=\"vm\"\n />\n </Tab>\n\n <Tab\n name=\"advanced\"\n :label=\"t('harvester.tab.advanced')\"\n :weight=\"-4\"\n >\n <CloudConfig\n ref=\"yamlEditor\"\n :user-script=\"userScript\"\n :mode=\"mode\"\n :network-script=\"networkScript\"\n />\n\n <div class=\"spacer\"></div>\n <Checkbox\n v-model:value=\"installUSBTablet\"\n :mode=\"mode\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.enableUsb')\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=36fb68f2\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CopyToClipboardText from '@shell/components/CopyToClipboardText';\nimport LabelValue from '@shell/components/LabelValue';\nimport { DESCRIPTION } from '@shell/config/labels-annotations';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../../types';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { findBy } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\nimport { ucFirst } from '@shell/utils/string';\nimport Storage from './Storage';\nimport { SECRET } from '@shell/config/types';\n\nexport default {\n components: {\n CopyToClipboardText,\n Tab,\n Tabbed,\n LabelValue,\n Storage,\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n },\n\n async fetch() {\n if (this.value.volumeEncryptionFeatureEnabled) {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.secrets = await this.$store.dispatch(`${ inStore }/findAll`, { type: SECRET });\n this.images = await this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.IMAGE });\n }\n },\n\n data() {\n return {\n secrets: [],\n images: []\n };\n },\n\n computed: {\n formattedValue() {\n return this.value?.downSize;\n },\n\n virtualSize() {\n return this.value?.virtualSize;\n },\n\n url() {\n return this.value?.spec?.url || '-';\n },\n\n description() {\n return this.value?.metadata?.annotations?.[DESCRIPTION] || '-';\n },\n\n errorMessage() {\n const conditions = get(this.value, 'status.conditions');\n\n return findBy(conditions, 'type', 'Imported')?.message || '-';\n },\n\n isUpload() {\n return this.value?.spec?.sourceType === 'upload';\n },\n\n sourceImage() {\n const { sourceImageName, sourceImageNamespace } = this.value?.spec?.securityParameters || {};\n\n if (sourceImageNamespace && sourceImageName) {\n const imageId = `${ sourceImageNamespace }/${ sourceImageName }`;\n\n return this.images.find((image) => image.id === imageId);\n }\n\n return null;\n },\n\n sourceImageLink() {\n return this.sourceImage?.detailLocation;\n },\n\n sourceImageId() {\n if (this.sourceImage) {\n return this.sourceImage.displayNameWithNamespace;\n }\n\n return '';\n },\n\n isEncryptedOrDecrypted() {\n return ['encrypt', 'decrypt'].includes(this.value?.spec?.securityParameters?.cryptoOperation);\n },\n\n encryptionSecret() {\n if (!this.value.isEncrypted) {\n return '-';\n }\n\n return this.value.encryptionSecret;\n },\n\n secretLink() {\n return this.secrets.find((sc) => sc.id === this.value.encryptionSecret)?.detailLocation;\n },\n\n isEncryptedString() {\n return ucFirst(String(this.value.isEncrypted));\n },\n\n imageName() {\n return this.value?.metadata?.annotations?.[HCI_ANNOTATIONS.IMAGE_NAME] || '-';\n },\n }\n};\n</script>\n\n<template>\n <Tabbed\n v-bind=\"$attrs\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n >\n <Tab\n name=\"detail\"\n :label=\"t('harvester.virtualMachine.detail.tabs.basics')\"\n class=\"bordered-table\"\n :weight=\"99\"\n >\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabelValue\n v-if=\"isUpload\"\n :name=\"t('harvester.image.fileName')\"\n :value=\"imageName\"\n class=\"mb-20\"\n />\n <LabelValue\n v-else\n :name=\"t('harvester.image.url')\"\n :value=\"url\"\n class=\"mb-20\"\n >\n <template #value>\n <div v-if=\"url !== '-'\">\n <CopyToClipboardText :text=\"url\" />\n </div>\n <div v-else>\n {{ url }}\n </div>\n </template>\n </LabelValue>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabelValue\n :name=\"t('harvester.image.size')\"\n :value=\"formattedValue\"\n class=\"mb-20\"\n />\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabelValue\n :name=\"t('harvester.image.virtualSize')\"\n :value=\"virtualSize\"\n class=\"mb-20\"\n />\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabelValue\n :name=\"t('nameNsDescription.description.label')\"\n :value=\"description\"\n class=\"mb-20\"\n />\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabelValue\n :name=\"t('harvester.image.isEncryption')\"\n :value=\"isEncryptedString\"\n class=\"mb-20\"\n />\n </div>\n </div>\n\n <div\n v-if=\"value.volumeEncryptionFeatureEnabled && value.isEncrypted\"\n class=\"row mb-20\"\n >\n <div class=\"col span-12\">\n <div class=\"text-label\">\n {{ t('harvester.image.encryptionSecret') }}\n </div>\n <router-link\n v-if=\"encryptionSecret && secretLink\"\n :to=\"secretLink\"\n >\n {{ encryptionSecret }}\n </router-link>\n <span v-else-if=\"encryptionSecret\">\n {{ encryptionSecret }}\n </span>\n <span\n v-else\n class=\"text-muted\"\n >\n —\n </span>\n </div>\n </div>\n\n <div\n v-if=\"value.volumeEncryptionFeatureEnabled && isEncryptedOrDecrypted\"\n class=\"row mb-20\"\n >\n <div class=\"col span-12\">\n <div class=\"text-label\">\n {{ t('harvester.image.sourceImage') }}\n </div>\n <router-link\n v-if=\"sourceImageId && sourceImageLink\"\n :to=\"sourceImageLink\"\n >\n {{ sourceImageId }}\n </router-link>\n <span v-else-if=\"sourceImageId\">\n {{ sourceImageId }}\n </span>\n <span\n v-else\n class=\"text-muted\"\n >\n —\n </span>\n </div>\n </div>\n\n <div\n v-if=\"errorMessage !== '-'\"\n class=\"row\"\n >\n <div class=\"col span-12\">\n <div>\n {{ t('tableHeaders.message') }}\n </div>\n <div :class=\"{ 'error': errorMessage !== '-' }\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n </Tab>\n <Tab\n name=\"storage\"\n :label=\"t('harvester.storage.label')\"\n :weight=\"89\"\n class=\"bordered-table\"\n >\n <Storage\n v-model:value=\"value.spec.storageClassParameters\"\n />\n </Tab>\n </Tabbed>\n</template>\n\n<style lang=\"scss\" scoped>\n.error {\n color: var(--error);\n}\n</style>\n","<script>\nimport LabelValue from '@shell/components/LabelValue';\n\nexport default {\n props: {\n value: {\n type: Object,\n default: () => {}\n },\n },\n\n components: { LabelValue },\n\n computed: {\n migratable() {\n return this.value.migratable === 'true' ? this.t('generic.yes') : this.t('generic.no');\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"value.nodeSelector\"\n class=\"row mb-20\"\n >\n <div class=\"col span-12\">\n <LabelValue\n :name=\"t('harvester.storage.nodeSelector.label')\"\n :value=\"value.nodeSelector\"\n />\n </div>\n </div>\n <div\n v-if=\"value.diskSelector\"\n class=\"row mb-20\"\n >\n <div class=\"col span-12\">\n <LabelValue\n :name=\"t('harvester.storage.diskSelector.label')\"\n :value=\"value.diskSelector\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.storage.migratable.label')\"\n :value=\"migratable\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.storage.numberOfReplicas.label')\"\n :value=\"value.numberOfReplicas\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.storage.staleReplicaTimeout.label')\"\n :value=\"value.staleReplicaTimeout\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./Storage.vue?vue&type=template&id=f2a31958\"\nimport script from \"./Storage.vue?vue&type=script&lang=js\"\nexport * from \"./Storage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=327163e2&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=327163e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-327163e2\"]])\n\nexport default __exports__","<script>\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport Loading from '@shell/components/Loading';\nimport CruResource from '@shell/components/CruResource';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport LabelValue from '@shell/components/LabelValue';\nimport { allHash } from '@shell/utils/promise';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport VM_MIXIN from '../../mixins/harvester-vm';\nimport { HCI } from '../../types';\nimport CpuMemory from '../../edit/kubevirt.io.virtualmachine/VirtualMachineCpuMemory';\n\nimport OverviewKeypairs from '../kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineKeypairs';\nimport Volume from '../../edit/kubevirt.io.virtualmachine/VirtualMachineVolume';\nimport Network from '../../edit/kubevirt.io.virtualmachine/VirtualMachineNetwork';\nimport CloudConfig from '../../edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig';\nconst UNDEFINED = 'n/a';\n\nexport default {\n name: 'VMSnapshotDetail',\n\n components: {\n Volume,\n Network,\n CruResource,\n Tabbed,\n Loading,\n LabelValue,\n Tab,\n CloudConfig,\n Checkbox,\n CpuMemory,\n OverviewKeypairs,\n },\n\n mixins: [CreateEditView, VM_MIXIN],\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n mode: {\n type: String,\n required: true,\n },\n },\n\n async fetch() {\n await allHash({ allImages: this.$store.dispatch('harvester/findAll', { type: HCI.IMAGE }) });\n },\n\n data() {\n return { vm: null };\n },\n\n computed: {\n name() {\n return this.value?.metadata?.name || UNDEFINED;\n },\n\n hostname() {\n return this?.spec?.template?.spec?.hostname;\n },\n\n imageName() {\n const imageList = this.$store.getters['harvester/all'](HCI.IMAGE) || [];\n\n const image = imageList.find( (I) => this.imageId === I.id);\n\n return image?.spec?.displayName || '-';\n },\n\n disks() {\n const disks = this?.spec?.template?.spec?.domain?.devices?.disks || [];\n\n return disks.filter((disk) => {\n return !!disk.bootOrder;\n }).sort((a, b) => {\n if (a.bootOrder < b.bootOrder) {\n return -1;\n }\n\n return 1;\n });\n },\n\n cdroms() {\n const disks = this?.spec?.template?.spec?.domain?.devices?.disks || [];\n\n return disks.filter((disk) => {\n return !!disk.cdrom;\n });\n },\n },\n\n methods: {\n getDeviceType(o) {\n if (o.disk) {\n return 'Disk';\n } else {\n return 'CD-ROM';\n }\n },\n isEmpty(o) {\n return o !== undefined && Object.keys(o).length === 0;\n },\n onTabChanged({ tab }) {\n if (tab.name === 'advanced') {\n this.$refs.yamlEditor?.refresh();\n }\n }\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <CruResource\n v-else\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :apply-hooks=\"applyHooks\"\n >\n <Tabbed\n v-if=\"spec\"\n :side-tabs=\"true\"\n @changed=\"onTabChanged\"\n >\n <Tab\n name=\"Basics\"\n :label=\"t('harvester.virtualMachine.detail.tabs.basics')\"\n >\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.name')\"\n :value=\"name\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.fields.image')\"\n :value=\"imageName\"\n />\n </div>\n </div>\n\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.hostname')\"\n :value=\"hostname\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.input.MachineType')\"\n :value=\"machineType\"\n />\n </div>\n </div>\n\n <CpuMemory\n :cpu=\"cpu\"\n :mode=\"mode\"\n :memory=\"memory\"\n />\n\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabelValue :name=\"t('harvester.virtualMachine.detail.details.bootOrder')\">\n <template #value>\n <div>\n <ul>\n <li\n v-for=\"(disk, i) in disks\"\n :key=\"i\"\n >\n {{ disk.bootOrder }}. {{ disk.name }} ({{ getDeviceType(disk) }})\n </li>\n </ul>\n </div>\n </template>\n </LabelValue>\n </div>\n <div class=\"col span-6\">\n <LabelValue :name=\"t('harvester.virtualMachine.detail.details.CDROMs')\">\n <template #value>\n <div>\n <ul v-if=\"cdroms.length > 0\">\n <li\n v-for=\"(rom, i) in cdroms\"\n :key=\"i\"\n >\n {{ rom.name }}\n </li>\n </ul>\n <span v-else>\n {{ t(\"harvester.virtualMachine.detail.notAvailable\") }}\n </span>\n </div>\n </template>\n </LabelValue>\n </div>\n </div>\n </Tab>\n\n <Tab\n name=\"volume\"\n :label=\"t('harvester.tab.volume')\"\n :weight=\"-1\"\n >\n <Volume\n v-model:value=\"diskRows\"\n :mode=\"mode\"\n />\n </Tab>\n\n <Tab\n name=\"network\"\n :label=\"t('harvester.tab.network')\"\n :weight=\"-2\"\n >\n <Network\n v-model:value=\"networkRows\"\n :mode=\"mode\"\n />\n </Tab>\n\n <Tab\n name=\"keypairs\"\n :label=\"t('harvester.virtualMachine.detail.tabs.keypairs')\"\n class=\"bordered-table\"\n :weight=\"-3\"\n >\n <OverviewKeypairs\n v-if=\"vm\"\n v-model:value=\"vm\"\n />\n </Tab>\n\n <Tab\n name=\"advanced\"\n :label=\"t('harvester.tab.advanced')\"\n :weight=\"-4\"\n >\n <CloudConfig\n ref=\"yamlEditor\"\n :user-script=\"userScript\"\n :mode=\"mode\"\n :network-script=\"networkScript\"\n />\n\n <div class=\"spacer\"></div>\n <Checkbox\n v-model:value=\"installUSBTablet\"\n :mode=\"mode\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.enableUsb')\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=1442cb2e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport isString from 'lodash/isString';\nimport { allHash } from '@shell/utils/promise';\nimport { HCI } from '../../../types';\nimport impl from '../../../mixins/harvester-vm/impl';\n\nexport default {\n mixins: [impl],\n\n props: {\n value: {\n type: Object,\n required: true\n }\n },\n\n async fetch() {\n const hash = await allHash({ allSSHs: this.$store.dispatch('harvester/findAll', { type: HCI.SSH }) });\n\n this.allSSHs = hash.allSSHs;\n },\n\n data() {\n return {\n allSSHs: [],\n sshKeys: []\n };\n },\n\n methods: {\n toggleShow(idx) {\n const ssh = this.sshKeys[idx];\n\n this.sshKeys[idx] = {\n ...ssh,\n showKey: !ssh.showKey\n };\n },\n\n getKeys() {\n return this.mergeAllSSHs(this.value?.spec);\n },\n\n isShow(id = '') {\n const ssh = this.sshKeys.find((O) => O?.data?.id === id) || {};\n\n return ssh.showKey || false;\n }\n },\n\n watch: {\n allSSHs(neu) {\n const out = this.getKeys().map((ssh) => {\n return {\n id: ssh.id,\n publicKey: isString(ssh.data) ? ssh.data : ssh.data?.spec?.publicKey,\n showKey: this.isShow(ssh.id)\n };\n });\n\n this['sshKeys'] = out;\n }\n }\n};\n</script>\n\n<template>\n <div class=\"overview-sshKeys\">\n <div\n v-for=\"(ssh, index) in sshKeys\"\n :key=\"index\"\n >\n <div class=\"col span-4\">\n {{ ssh.id }}\n </div>\n <div class=\"col span-7 offset-1\">\n <div\n v-if=\"ssh.showKey\"\n class=\"key-display\"\n >\n {{ ssh.publicKey }}\n <button\n class=\"btn btn-sm role-link hide-bar\"\n @click=\"toggleShow(index)\"\n >\n <i class=\"icon icon-x\"></i>\n </button>\n </div>\n <button\n v-else\n class=\"btn btn-sm role-link\"\n @click=\"toggleShow(index)\"\n >\n *******<i class=\"icons icon-show\"></i>\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .overview-sshKeys {\n text-align: left;\n max-height: 700px;\n overflow: auto;\n\n &__item {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .key-display {\n position: relative;\n padding-right: 30px;\n word-break: break-word;\n\n .hide-bar {\n position: absolute;\n top: -10px;\n right: 10px;\n }\n }\n }\n</style>\n","import { render } from \"./VirtualMachineKeypairs.vue?vue&type=template&id=67f09e09&scoped=true\"\nimport script from \"./VirtualMachineKeypairs.vue?vue&type=script&lang=js\"\nexport * from \"./VirtualMachineKeypairs.vue?vue&type=script&lang=js\"\n\nimport \"./VirtualMachineKeypairs.vue?vue&type=style&index=0&id=67f09e09&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67f09e09\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { EVENT, SERVICE, POD } from '@shell/config/types';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport DashboardMetrics from '@shell/components/DashboardMetrics';\nimport { allHash, setPromiseResult } from '@shell/utils/promise';\nimport { allDashboardsExist } from '@shell/utils/grafana';\nimport NodeScheduling from '@shell/components/form/NodeScheduling';\nimport PodAffinity from '@shell/components/form/PodAffinity';\nimport KeyValue from '@shell/components/form/KeyValue';\nimport Labels from '@shell/components/form/Labels';\nimport LabelValue from '@shell/components/LabelValue';\nimport { HCI } from '../../types';\nimport VM_MIXIN from '../../mixins/harvester-vm';\n\nimport CloudConfig from '../../edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig';\nimport Volume from '../../edit/kubevirt.io.virtualmachine/VirtualMachineVolume';\nimport Network from '../../edit/kubevirt.io.virtualmachine/VirtualMachineNetwork';\nimport AccessCredentials from '../../edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials';\nimport Events from './VirtualMachineTabs/VirtualMachineEvents';\nimport Migration from './VirtualMachineTabs/VirtualMachineMigration';\nimport OverviewBasics from './VirtualMachineTabs/VirtualMachineBasics';\nimport OverviewKeypairs from './VirtualMachineTabs/VirtualMachineKeypairs';\nimport { formatSi } from '@shell/utils/units';\n\nconst VM_METRICS_DETAIL_URL = '/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/harvester-vm-detail-1/vm-info-detail?orgId=1';\n\nexport default {\n name: 'VMIDetailsPage',\n\n components: {\n Tab,\n Tabbed,\n Events,\n OverviewBasics,\n LabelValue,\n Volume,\n Network,\n OverviewKeypairs,\n CloudConfig,\n Migration,\n DashboardMetrics,\n AccessCredentials,\n NodeScheduling,\n PodAffinity,\n KeyValue,\n Labels,\n },\n\n mixins: [CreateEditView, VM_MIXIN],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n return {\n hasResourceQuotaSchema: false,\n switchToCloud: false,\n VM_METRICS_DETAIL_URL,\n showVmMetrics: false,\n };\n },\n\n async created() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.hasResourceQuotaSchema = !!this.$store.getters[`${ inStore }/schemaFor`](HCI.RESOURCE_QUOTA);\n\n const hash = {\n pods: this.$store.dispatch(`${ inStore }/findAll`, { type: POD }),\n services: this.$store.dispatch(`${ inStore }/findAll`, { type: SERVICE }),\n events: this.$store.dispatch(`${ inStore }/findAll`, { type: EVENT }),\n allSSHs: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SSH }),\n vmis: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VMI }),\n restore: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.RESTORE }),\n };\n\n if (this.hasResourceQuotaSchema) {\n hash.resourceQuotas = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.RESOURCE_QUOTA });\n }\n\n await allHash(hash);\n\n setPromiseResult(\n allDashboardsExist(this.$store, this.currentCluster.id, [VM_METRICS_DETAIL_URL], 'harvester'),\n this,\n 'showVmMetrics',\n 'Determine vm metrics'\n );\n },\n\n computed: {\n ...mapGetters(['currentCluster']),\n\n totalSnapshotSize() {\n if (this.value.snapshotSizeQuota === undefined || this.value.snapshotSizeQuota === null) {\n return ' - ';\n }\n\n if (this.value.snapshotSizeQuota === 0) {\n return '0';\n }\n\n return formatSi(this.value.snapshotSizeQuota, {\n increment: 1024,\n addSuffix: true,\n suffix: 'i',\n });\n },\n\n vmi() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const vmiList = this.$store.getters[`${ inStore }/all`](HCI.VMI) || [];\n const vmi = vmiList.find( (VMI) => {\n return VMI?.metadata?.ownerReferences?.[0]?.uid === this.value?.metadata?.uid;\n });\n\n return vmi;\n },\n\n allEvents() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/all`](EVENT);\n },\n\n events() {\n return this.allEvents.filter((e) => {\n const { name, creationTimestamp } = this.value?.metadata || {};\n const podName = this.value.podResource?.metadata?.name;\n const pvcName = this.value.persistentVolumeClaimName || [];\n\n const involvedName = e?.involvedObject?.name;\n\n const matchPVC = pvcName.find((name) => name === involvedName);\n\n return (involvedName === name || involvedName === podName || matchPVC) && e.firstTimestamp >= creationTimestamp;\n }).sort((a, b) => {\n if (a.lastTimestamp > b.lastTimestamp) {\n return -1;\n }\n\n return 1;\n });\n },\n\n graphVars() {\n return {\n namespace: this.value.namespace,\n vm: this.value.name\n };\n },\n },\n\n methods: {\n onTabChanged({ tab }) {\n if (tab.name === 'cloudConfig') {\n this.$refs.yamlEditor?.refresh();\n }\n },\n },\n\n watch: {\n value: {\n handler(neu) {\n const diskRows = this.getDiskRows(neu);\n\n this['diskRows'] = diskRows;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div>\n <Tabbed\n v-bind=\"$attrs\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n @changed=\"onTabChanged\"\n >\n <Tab\n name=\"basics\"\n :label=\"t('harvester.virtualMachine.detail.tabs.basics')\"\n class=\"bordered-table\"\n :weight=\"7\"\n >\n <OverviewBasics\n :value=\"value\"\n :vmi=\"vmi\"\n mode=\"view\"\n />\n </Tab>\n\n <Tab\n name=\"disks\"\n :label=\"t('harvester.tab.volume')\"\n class=\"bordered-table\"\n :weight=\"6\"\n >\n <Volume\n v-model:value=\"diskRows\"\n mode=\"view\"\n :namespace=\"value.metadata.namespace\"\n :vm=\"value\"\n :resource-type=\"value.type\"\n />\n </Tab>\n\n <Tab\n name=\"networks\"\n :label=\"t('harvester.virtualMachine.detail.tabs.networks')\"\n class=\"bordered-table\"\n :weight=\"5\"\n >\n <Network\n v-model:value=\"networkRows\"\n mode=\"view\"\n />\n </Tab>\n\n <Tab\n name=\"keypairs\"\n :label=\"t('harvester.virtualMachine.detail.tabs.keypairs')\"\n class=\"bordered-table\"\n :weight=\"4\"\n >\n <OverviewKeypairs :value=\"value\" />\n </Tab>\n\n <Tab\n v-if=\"hasResourceQuotaSchema\"\n name=\"quotas\"\n :label=\"t('harvester.tab.quotas')\"\n :weight=\"3\"\n >\n <LabelValue\n :name=\"t('harvester.snapshot.totalSnapshotSize')\"\n :value=\"totalSnapshotSize\"\n />\n </Tab>\n\n <Tab\n v-if=\"showVmMetrics\"\n name=\"vm-metrics\"\n :label=\"t('harvester.virtualMachine.detail.tabs.metrics')\"\n :weight=\"2.5\"\n >\n <template #default=\"props\">\n <DashboardMetrics\n v-if=\"props.active\"\n :detail-url=\"VM_METRICS_DETAIL_URL\"\n graph-height=\"550px\"\n :has-summary-and-detail=\"false\"\n :vars=\"graphVars\"\n />\n </template>\n </Tab>\n\n <Tab\n name=\"nodeScheduling\"\n :label=\"t('workload.container.titles.nodeScheduling')\"\n :weight=\"2.4\"\n >\n <template #default=\"{active}\">\n <NodeScheduling\n v-if=\"spec\"\n :key=\"active\"\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :nodes=\"nodesIdOptions\"\n />\n </template>\n </Tab>\n\n <Tab\n :label=\"t('harvester.tab.vmScheduling')\"\n name=\"vmScheduling\"\n :weight=\"2.3\"\n >\n <template #default=\"{active}\">\n <PodAffinity\n v-if=\"spec\"\n :key=\"active\"\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :nodes=\"nodes\"\n :all-namespaces-option-available=\"true\"\n :namespaces=\"filteredNamespaces\"\n :overwrite-labels=\"affinityLabels\"\n />\n </template>\n </Tab>\n\n <Tab\n :label=\"t('harvester.tab.accessCredentials')\"\n class=\"bordered-table\"\n name=\"accessCredentials\"\n :weight=\"2.2\"\n >\n <AccessCredentials\n mode=\"view\"\n :value=\"accessCredentials\"\n :resource-type=\"value\"\n />\n </Tab>\n\n <Tab\n name=\"cloudConfig\"\n :label=\"t('harvester.virtualMachine.detail.tabs.cloudConfig')\"\n class=\"bordered-table\"\n :weight=\"2\"\n >\n <CloudConfig\n ref=\"yamlEditor\"\n mode=\"view\"\n :user-script=\"userScript\"\n :network-script=\"networkScript\"\n />\n </Tab>\n\n <Tab\n name=\"event\"\n :label=\"t('harvester.virtualMachine.detail.tabs.events')\"\n :weight=\"1\"\n >\n <Events\n :resource=\"vmi\"\n :events=\"events\"\n />\n </Tab>\n\n <Tab\n name=\"migration\"\n :label=\"t('harvester.virtualMachine.detail.tabs.migration')\"\n >\n <Migration\n :value=\"value\"\n :vmi-resource=\"vmi\"\n />\n </Tab>\n\n <Tab\n name=\"instanceLabel\"\n :label=\"t('harvester.tab.instanceLabel')\"\n :weight=\"-99\"\n >\n <Labels\n :default-container-class=\"'labels-and-annotations-container'\"\n :value=\"value\"\n :mode=\"mode\"\n :display-side-by-side=\"false\"\n :show-annotations=\"false\"\n :show-label-title=\"false\"\n >\n <template #labels=\"{toggler}\">\n <KeyValue\n key=\"labels\"\n :value=\"value.instanceLabels\"\n :protected-keys=\"value.systemLabels || []\"\n :toggle-filter=\"toggler\"\n :add-label=\"t('labels.addLabel')\"\n :mode=\"mode\"\n :read-allowed=\"false\"\n :value-can-be-empty=\"true\"\n @update:value=\"value.setInstanceLabels($event)\"\n />\n </template>\n </Labels>\n </Tab>\n </Tabbed>\n </div>\n</template>\n","<script>\nimport { REASON } from '@shell/config/table-headers';\nimport SortableTable from '@shell/components/SortableTable';\n\nexport default {\n name: 'VirtualMachineEvents',\n\n components: { SortableTable },\n\n props: {\n events: {\n type: Array,\n required: true,\n },\n },\n\n data() {\n const reason = {\n ...REASON,\n canBeVariable: true,\n width: 180\n };\n\n const eventHeaders = [\n reason,\n {\n name: 'resource',\n label: 'Resource',\n labelKey: 'clusterIndexPage.sections.events.resource.label',\n value: 'displayInvolvedObject',\n sort: ['involvedObject.kind', 'involvedObject.name'],\n canBeVariable: true,\n },\n {\n align: 'right',\n name: 'date',\n label: 'Date',\n labelKey: 'clusterIndexPage.sections.events.date.label',\n value: 'lastTimestamp',\n sort: 'lastTimestamp:desc',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n width: 125,\n defaultSort: true,\n },\n ];\n\n return { eventHeaders };\n },\n\n};\n</script>\n\n<template>\n <SortableTable\n :rows=\"events\"\n :headers=\"eventHeaders\"\n key-field=\"id\"\n :search=\"false\"\n :table-actions=\"false\"\n :row-actions=\"false\"\n :paging=\"true\"\n :rows-per-page=\"10\"\n default-sort-by=\"date\"\n >\n <template #cell:resource=\"{row, value}\">\n <div class=\"text-info\">\n {{ value }}\n </div>\n <div v-if=\"row.message\">\n {{ row.displayMessage }}\n </div>\n </template>\n </SortableTable>\n</template>\n","import { render } from \"./VirtualMachineEvents.vue?vue&type=template&id=1d2655fa\"\nimport script from \"./VirtualMachineEvents.vue?vue&type=script&lang=js\"\nexport * from \"./VirtualMachineEvents.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport LabelValue from '@shell/components/LabelValue';\n\nexport default {\n name: 'VirtualMachineMigration',\n\n components: { LabelValue },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n vmiResource: {\n type: Object,\n required: true,\n default: () => {\n return {};\n }\n }\n },\n\n data() {\n return { localResource: this.vmiResource };\n },\n\n computed: {\n migrationState() {\n return this.localResource?.status?.migrationState;\n },\n sourceNode() {\n return this.migrationState?.sourceNode || 'N/A';\n },\n targetNode() {\n return this.migrationState?.targetNode || 'N/A';\n },\n started() {\n return this.migrationState?.startTimestamp || 'N/A';\n },\n ended() {\n return this.migrationState?.endTimestamp || 'N/A';\n },\n message() {\n return 'N/A';\n }\n },\n\n watch: {\n vmiResource: {\n handler(neu) {\n this.localResource = neu;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.sourceNode')\"\n :value=\"sourceNode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.targetNode')\"\n :value=\"targetNode\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.started')\"\n :value=\"started\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.ended')\"\n :value=\"ended\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./VirtualMachineMigration.vue?vue&type=template&id=447bf292\"\nimport script from \"./VirtualMachineMigration.vue?vue&type=script&lang=js\"\nexport * from \"./VirtualMachineMigration.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport LabelValue from '@shell/components/LabelValue';\nimport InputOrDisplay from '@shell/components/InputOrDisplay';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport HarvesterIpAddress from '../../../formatters/HarvesterIpAddress';\nimport VMConsoleBar from '../../../components/VMConsoleBar';\nimport { HCI } from '../../../types';\n\nconst UNDEFINED = 'n/a';\n\nexport default {\n name: 'VMDetailsBasics',\n\n components: {\n VMConsoleBar,\n HarvesterIpAddress,\n LabelValue,\n InputOrDisplay\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n required: true\n },\n vmi: {\n type: Object,\n required: true,\n default: () => {\n return {};\n }\n },\n mode: {\n type: String,\n required: true,\n },\n },\n\n computed: {\n creationTimestamp() {\n const date = new Date(this.value?.metadata?.creationTimestamp);\n\n if (!date.getMonth) {\n return UNDEFINED;\n }\n\n return `${ date.getMonth() + 1 }/${ date.getDate() }/${ date.getUTCFullYear() }`;\n },\n\n node() {\n const node = this.vmi?.status?.nodeName || UNDEFINED;\n\n return this.isDown ? this.t('harvester.virtualMachine.detail.details.down') : node;\n },\n\n hostname() {\n const hostName = this.vmi?.spec?.hostname || this.vmi?.status?.guestOSInfo?.hostname || this.t('harvester.virtualMachine.detail.GuestAgentNotInstalled');\n\n return this.isDown ? this.t('harvester.virtualMachine.detail.details.down') : hostName;\n },\n\n imageName() {\n const imageList = this.$store.getters['harvester/all'](HCI.IMAGE) || [];\n const image = imageList.find( (I) => this.value.rootImageId === I.id);\n\n return image?.spec?.displayName || 'N/A';\n },\n\n disks() {\n const disks = this.value?.spec?.template?.spec?.domain?.devices?.disks || [];\n\n return disks.filter((disk) => {\n return !!disk.bootOrder;\n }).sort((a, b) => {\n if (a.bootOrder < b.bootOrder) {\n return -1;\n }\n\n return 1;\n });\n },\n\n cdroms() {\n const disks = this.value?.spec?.template?.spec?.domain?.devices?.disks || [];\n\n return disks.filter((disk) => {\n return !!disk.cdrom;\n });\n },\n\n flavor() {\n const domain = this.value?.spec?.template?.spec?.domain;\n\n return `${ domain.cpu?.cores } vCPU , ${ domain.resources?.limits?.memory } ${ this.t('harvester.virtualMachine.input.memory') }`;\n },\n\n kernelRelease() {\n const kernelRelease = this.vmi?.status?.guestOSInfo?.kernelRelease || this.t('harvester.virtualMachine.detail.GuestAgentNotInstalled');\n\n return this.isDown ? this.t('harvester.virtualMachine.detail.details.down') : kernelRelease;\n },\n\n operatingSystem() {\n const operatingSystem = this.vmi?.status?.guestOSInfo?.prettyName || this.t('harvester.virtualMachine.detail.GuestAgentNotInstalled');\n\n return this.isDown ? this.t('harvester.virtualMachine.detail.details.down') : operatingSystem;\n },\n\n isDown() {\n return this.isEmpty(this.vmi);\n },\n\n machineType() {\n return this.value?.spec?.template?.spec?.domain?.machine?.type || undefined;\n }\n },\n\n methods: {\n getDeviceType(o) {\n if (o.disk) {\n return 'Disk';\n } else {\n return 'CD-ROM';\n }\n },\n isEmpty(o) {\n return o !== undefined && Object.keys(o).length === 0;\n }\n }\n};\n</script>\n\n<template>\n <div>\n <VMConsoleBar\n :resource-type=\"value\"\n class=\"consoleBut\"\n />\n <div class=\"overview-basics\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.name')\"\n :value=\"value.nameDisplay\"\n >\n <template #value>\n <div class=\"smart-row\">\n <div class=\"console\">\n {{ value.nameDisplay }}\n </div>\n </div>\n </template>\n </LabelValue>\n </div>\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.fields.image')\"\n :value=\"imageName\"\n />\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.hostname')\"\n :value=\"hostname\"\n >\n <template #value>\n <div>\n {{ hostname }}\n </div>\n </template>\n </LabelValue>\n </div>\n\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.node')\"\n :value=\"node\"\n >\n <template #value>\n <div>\n {{ node }}\n </div>\n </template>\n </LabelValue>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabelValue :name=\"t('harvester.virtualMachine.detail.details.ipAddress')\">\n <template #value>\n <HarvesterIpAddress\n v-model:value=\"value.id\"\n :row=\"value\"\n />\n </template>\n </LabelValue>\n </div>\n\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.created')\"\n :value=\"creationTimestamp\"\n />\n </div>\n </div>\n\n <hr class=\"section-divider\" />\n\n <h2>{{ t('harvester.virtualMachine.detail.tabs.configurations') }}</h2>\n\n <div class=\"row\">\n <div class=\"col span-6\">\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.detail.details.bootOrder')\"\n :value=\"disks\"\n :mode=\"mode\"\n >\n <template #value>\n <ul>\n <li\n v-for=\"(disk, i) in disks\"\n :key=\"i\"\n >\n {{ disk.bootOrder }}. {{ disk.name }} ({{ getDeviceType(disk) }})\n </li>\n </ul>\n </template>\n </InputOrDisplay>\n </div>\n <div class=\"col span-6\">\n <InputOrDisplay\n :name=\"t('harvester.virtualMachine.detail.details.CDROMs')\"\n :value=\"cdroms\"\n :mode=\"mode\"\n >\n <template #value>\n <div>\n <ul v-if=\"cdroms.length > 0\">\n <li\n v-for=\"(rom, i) in cdroms\"\n :key=\"i\"\n >\n {{ rom.name }}\n </li>\n </ul>\n <span v-else>\n {{ t(\"harvester.virtualMachine.detail.notAvailable\") }}\n </span>\n </div>\n </template>\n </InputOrDisplay>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.operatingSystem')\"\n :value=\"operatingSystem\"\n />\n </div>\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.flavor')\"\n :value=\"flavor\"\n />\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.detail.details.kernelRelease')\"\n :value=\"kernelRelease\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.virtualMachine.input.MachineType')\"\n :value=\"machineType\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .consoleBut {\n display: flex;\n justify-content: flex-end;\n }\n\n .overview-basics {\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: auto;\n grid-row-gap: 15px;\n\n .badge-state {\n padding: 2px 5px;\n font-size: 12px;\n margin-right: 3px;\n }\n\n .smart-row {\n display: flex;\n flex-direction: row;\n\n .console {\n display: flex;\n overflow: hidden;\n }\n }\n\n &__name {\n flex: 1;\n }\n\n &__ssh-key {\n min-width: 150px;\n }\n }\n</style>\n","import { render } from \"./VirtualMachineBasics.vue?vue&type=template&id=e27d81a6&scoped=true\"\nimport script from \"./VirtualMachineBasics.vue?vue&type=script&lang=js\"\nexport * from \"./VirtualMachineBasics.vue?vue&type=script&lang=js\"\n\nimport \"./VirtualMachineBasics.vue?vue&type=style&index=0&id=e27d81a6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e27d81a6\"]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=fbcb499c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport SortableTable from '@shell/components/SortableTable';\nimport { NETWORK_ATTACHMENT } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport { NETWORK_HEADERS } from '@pkg/harvester/list/harvesterhci.io.networkattachmentdefinition.vue';\n\nexport default {\n emits: ['input'],\n\n components: {\n ResourceTabs,\n Tab,\n SortableTable,\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = { ipPools: this.$store.dispatch(`${ inStore }/findAll`, { type: NETWORK_ATTACHMENT }) };\n\n await allHash(hash);\n },\n\n computed: {\n networks() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const networks = this.$store.getters[`${ inStore }/all`](NETWORK_ATTACHMENT);\n\n return networks.filter((n) => n?.id === this.value?.spec?.selector?.network);\n },\n\n networkHeaders() {\n return NETWORK_HEADERS;\n },\n\n ranges() {\n return this.value.spec.ranges;\n },\n\n rangeHeaders() {\n return [{\n name: 'subnet',\n label: this.t('harvester.ipPool.subnet.label'),\n value: 'subnet',\n }, {\n name: 'gateway',\n label: this.t('harvester.ipPool.gateway.label'),\n value: 'gateway',\n }, {\n name: 'startIP',\n label: this.t('harvester.ipPool.startIP.label'),\n value: 'rangeStart',\n }, {\n name: 'endIP',\n label: this.t('harvester.ipPool.endIP.label'),\n value: 'rangeEnd',\n }];\n },\n },\n};\n</script>\n\n<template>\n <ResourceTabs\n :value=\"value\"\n :need-related=\"false\"\n @update:value=\"$emit('input', $event)\"\n >\n <Tab\n name=\"network\"\n label-key=\"harvester.ipPool.network.label\"\n :weight=\"99\"\n >\n <SortableTable\n key-field=\"_key\"\n :headers=\"networkHeaders\"\n :rows=\"networks\"\n :row-actions=\"false\"\n :table-actions=\"false\"\n :search=\"false\"\n />\n </Tab>\n <Tab\n name=\"range\"\n label-key=\"harvester.ipPool.tabs.range\"\n :weight=\"89\"\n >\n <SortableTable\n key-field=\"_key\"\n :headers=\"rangeHeaders\"\n :rows=\"ranges\"\n :row-actions=\"false\"\n :table-actions=\"false\"\n :search=\"false\"\n />\n </Tab>\n </ResourceTabs>\n</template>\n","import { render } from \"./loadbalancer.harvesterhci.io.ippool.vue?vue&type=template&id=623c120b\"\nimport script from \"./loadbalancer.harvesterhci.io.ippool.vue?vue&type=script&lang=js\"\nexport * from \"./loadbalancer.harvesterhci.io.ippool.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport SortableTable from '@shell/components/SortableTable';\nimport { HCI } from '@pkg/harvester/types';\nimport { allHash } from '@shell/utils/promise';\nimport { KEY, VALUE } from '@shell/config/table-headers';\nimport { VM_HEADERS } from '@pkg/harvester/list/kubevirt.io.virtualmachine';\nimport { matching } from '@shell/utils/selector';\nimport { IP_POOL_HEADERS } from '../config/harvester-cluster';\n\nexport default {\n emits: ['input'],\n\n components: {\n ResourceTabs,\n Tab,\n SortableTable,\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = {\n ipPools: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.IP_POOL }),\n vms: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM }),\n };\n\n await allHash(hash);\n },\n\n computed: {\n ipPools() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const ipPools = this.$store.getters[`${ inStore }/all`](HCI.IP_POOL);\n\n return ipPools.filter((i) => i.id === this.value.status.allocatedAddress.ipPool);\n },\n\n ipPoolHeaders() {\n return IP_POOL_HEADERS;\n },\n\n listeners() {\n const listeners = this.value?.spec?.listeners;\n\n return listeners;\n },\n\n listenerHeaders() {\n return [\n {\n name: 'name',\n label: this.t('tableHeaders.name'),\n value: 'name',\n sort: 'name:desc',\n },\n {\n name: 'port',\n label: this.t('tableHeaders.port'),\n value: 'port',\n sort: 'port:desc',\n },\n {\n name: 'protocol',\n label: this.t('tableHeaders.protocol'),\n value: 'protocol',\n sort: 'protocol:desc',\n },\n {\n name: 'backendPort',\n label: this.t('harvester.loadBalancer.listeners.backendPort.label'),\n value: 'backendPort',\n sort: 'backendPort:desc',\n },\n ];\n },\n\n backendServerSelectors() {\n return Object.keys(this.value.spec?.backendServerSelector || {}).map((key) => ({\n key,\n value: this.value.spec.backendServerSelector[key],\n }));\n },\n\n serviceSelectorInfoHeaders() {\n return [\n {\n ...KEY,\n width: 200,\n },\n VALUE,\n ];\n },\n\n vmHeaders() {\n const filterNames = ['state', 'ip', 'node'];\n\n return VM_HEADERS.filter((h) => !filterNames.includes(h.name));\n },\n\n vms() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const vms = this.$store.getters[`${ inStore }/all`](HCI.VM).filter((vm) => vm.metadata.namespace === this.value.metadata.namespace);\n const match = matching(vms, this.value?.spec?.backendServerSelector, 'spec.template.metadata.labels');\n\n return match;\n }\n },\n};\n</script>\n\n<template>\n <ResourceTabs\n :value=\"value\"\n :need-related=\"false\"\n @update:value=\"$emit('input', $event)\"\n >\n <Tab\n v-if=\"value.spec.ipam === 'pool'\"\n name=\"ipPool\"\n label-key=\"harvester.loadBalancer.ipPool.label\"\n :weight=\"99\"\n >\n <SortableTable\n key-field=\"_key\"\n :headers=\"ipPoolHeaders\"\n :rows=\"ipPools\"\n :row-actions=\"false\"\n :table-actions=\"false\"\n :search=\"false\"\n />\n </Tab>\n <Tab\n v-if=\"value.spec.workloadType === 'vm'\"\n name=\"vm\"\n :label=\"t('harvester.loadBalancer.backendServers.label')\"\n class=\"bordered-table\"\n :weight=\"98\"\n >\n <SortableTable\n :rows=\"vms\"\n :headers=\"vmHeaders\"\n key-field=\"id\"\n :row-actions=\"false\"\n :table-actions=\"false\"\n :search=\"vms.length > 10 ? true : false\"\n />\n </Tab>\n <Tab\n v-if=\"value.spec.workloadType === 'vm'\"\n name=\"listeners\"\n :label=\"t('harvester.loadBalancer.tabs.listeners')\"\n class=\"bordered-table\"\n :weight=\"89\"\n >\n <SortableTable\n key-field=\"_key\"\n :headers=\"listenerHeaders\"\n :rows=\"listeners\"\n :row-actions=\"false\"\n :table-actions=\"false\"\n :search=\"false\"\n />\n </Tab>\n <Tab\n v-if=\"value.spec.workloadType === 'vm'\"\n name=\"selector\"\n :label=\"t('harvester.loadBalancer.tabs.backendServer')\"\n class=\"bordered-table\"\n :weight=\"79\"\n >\n <SortableTable\n key-field=\"_key\"\n :headers=\"serviceSelectorInfoHeaders\"\n :rows=\"backendServerSelectors\"\n :row-actions=\"false\"\n :table-actions=\"false\"\n :show-headers=\"true\"\n :search=\"false\"\n />\n </Tab>\n </ResourceTabs>\n</template>\n","import { render } from \"./loadbalancer.harvesterhci.io.loadbalancer.vue?vue&type=template&id=5dd05171\"\nimport script from \"./loadbalancer.harvesterhci.io.loadbalancer.vue?vue&type=script&lang=js\"\nexport * from \"./loadbalancer.harvesterhci.io.loadbalancer.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport SortableTable from '@shell/components/SortableTable';\n\nimport { allHash } from '@shell/utils/promise';\nimport { STATE, NAME, AGE } from '@shell/config/table-headers';\nimport { matching } from '@shell/utils/selector';\nimport { NODE } from '@shell/config/types';\nimport { isEmpty } from '@shell/utils/object';\nimport { HCI } from '@pkg/harvester/config/labels-annotations';\n\nexport default {\n emits: ['input'],\n\n components: {\n ResourceTabs,\n Tab,\n SortableTable,\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.$store.dispatch('harvester/findAll', { type: NODE });\n\n const hash = { nodes: this.$store.dispatch(`${ inStore }/findAll`, { type: NODE }) };\n\n await allHash(hash);\n },\n\n computed: {\n nodeHeaders() {\n return [\n STATE,\n NAME,\n {\n name: 'host-ip',\n labelKey: 'tableHeaders.hostIp',\n search: ['internalIp'],\n value: 'internalIp',\n sort: ['internalIp'],\n },\n AGE,\n ];\n },\n\n nodes() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const nodes = this.$store.getters[`${ inStore }/all`](NODE);\n const matchedNodes = this.value?.metadata?.annotations?.[HCI.MATCHED_NODES];\n const selector = this.value?.spec?.nodeSelector;\n\n if (!isEmpty(selector)) {\n return matching(nodes, selector);\n } else if (matchedNodes && matchedNodes.length > 0) {\n return nodes.filter((node) => matchedNodes.includes(node.id));\n } else {\n return nodes;\n }\n }\n },\n};\n</script>\n\n<template>\n <ResourceTabs\n :value=\"value\"\n :need-related=\"false\"\n @update:value=\"$emit('input', $event)\"\n >\n <Tab\n name=\"node\"\n label-key=\"harvester.vlanConfig.titles.host\"\n :weight=\"99\"\n >\n <SortableTable\n key-field=\"_key\"\n :headers=\"nodeHeaders\"\n :rows=\"nodes\"\n :row-actions=\"false\"\n :table-actions=\"false\"\n :search=\"false\"\n />\n </Tab>\n </ResourceTabs>\n</template>\n","import { render } from \"./network.harvesterhci.io.vlanconfig.vue?vue&type=template&id=3ff8fe62\"\nimport script from \"./network.harvesterhci.io.vlanconfig.vue?vue&type=script&lang=js\"\nexport * from \"./network.harvesterhci.io.vlanconfig.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".copy[data-v-2163c48c]{cursor:pointer}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".copy-to-clipboard-text[data-v-d8c131ea]{white-space:nowrap}.copy-to-clipboard-text.plain[data-v-d8c131ea]{color:var(--body-text)}.copy-to-clipboard-text.plain[data-v-d8c131ea]:hover{text-decoration:none}.copy-to-clipboard-text.copied[data-v-d8c131ea]{pointer-events:none;color:var(--success)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".role[data-v-4ba6006f]{display:flex}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".close[data-v-2f2890f0]{top:10px;right:10px;padding:0;position:absolute}.disk[data-v-2f2890f0]{position:relative}.disk .secret-name[data-v-2f2890f0]{height:61px}.disk[data-v-2f2890f0]:not(:last-of-type){padding-bottom:10px;margin-bottom:30px}.flex[data-v-2f2890f0]{display:flex;justify-content:space-between}.badge-state[data-v-2f2890f0]{padding:2px 5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#host-instances[data-v-313f57d6] thead th{vertical-align:middle}#host-instances[data-v-313f57d6] .state{display:flex}#host-instances[data-v-313f57d6] .state .vmstate{margin-right:6px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".error[data-v-3a89cf31]{color:var(--error)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".entry[data-v-16758c8a]{margin-top:10px}.entry[data-v-16758c8a]:first-of-type{margin-top:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".error[data-v-327163e2]{color:var(--error)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".consoleBut[data-v-e27d81a6]{display:flex;justify-content:flex-end}.overview-basics[data-v-e27d81a6]{display:grid;grid-template-columns:100%;grid-template-rows:auto;grid-row-gap:15px}.overview-basics .badge-state[data-v-e27d81a6]{padding:2px 5px;font-size:12px;margin-right:3px}.overview-basics .smart-row[data-v-e27d81a6]{display:flex;flex-direction:row}.overview-basics .smart-row .console[data-v-e27d81a6]{display:flex;overflow:hidden}.overview-basics__name[data-v-e27d81a6]{flex:1}.overview-basics__ssh-key[data-v-e27d81a6]{min-width:150px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".overview-sshKeys[data-v-67f09e09]{text-align:left;max-height:700px;overflow:auto}.overview-sshKeys__item[data-v-67f09e09]{margin-bottom:15px}.overview-sshKeys__item[data-v-67f09e09]:last-child{margin-bottom:0}.overview-sshKeys .key-display[data-v-67f09e09]{position:relative;padding-right:30px;word-break:break-word}.overview-sshKeys .key-display .hide-bar[data-v-67f09e09]{position:absolute;top:-10px;right:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./CopyCode.vue?vue&type=style&index=0&id=2163c48c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a9071e02\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./CopyToClipboardText.vue?vue&type=style&index=0&id=d8c131ea&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3ce8dc3a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterHostBasic.vue?vue&type=style&index=0&id=4ba6006f&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0c700004\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterHostDisk.vue?vue&type=style&index=0&id=2f2890f0&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"30b5bd84\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./VirtualMachineInstance.vue?vue&type=style&index=0&id=313f57d6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"72445b24\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=3a89cf31&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c5f3af0a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.secret.vue?vue&type=style&index=0&id=16758c8a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"33698eec\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=327163e2&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"43932117\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./VirtualMachineBasics.vue?vue&type=style&index=0&id=e27d81a6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"492a6099\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./VirtualMachineKeypairs.vue?vue&type=style&index=0&id=67f09e09&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5043011e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["$props","text","_createElementBlock","key","class","_normalizeClass","$data","copied","plain","href","onClick","_cache","args","$options","clicked","_createTextVNode","_toDisplayString","_createElementVNode","_createCommentVNode","emits","props","type","String","required","Boolean","default","data","methods","event","this","preventDefault","copyTextToClipboard","then","t","target","tagName","parentElement","setTimeout","catch","e","$emit","exceptionToErrorsArray","__exports__","render","_ctx","$fetchState","pending","_createBlock","_component_Loading","_hoisted_1","ntpSyncedStatus","status","_component_Banner","color","_withCtx","warning","_","current","_createVNode","_component_Tabbed","_mergeProps","$attrs","onChanged","tabChange","_component_Tab","name","label","weight","_component_Basic","value","metrics","mode","_component_Instance","node","hasHostNetworksSchema","vlanStatuses","length","_Fragment","_renderList","vlan","i","_component_InfoBox","_component_VlanStatus","hasBlockDevicesSchema","longhornNode","_hoisted_2","_hoisted_3","spec","tags","_component_LabelValue","_hoisted_4","prop","_component_Tag","_component_ArrayListGrouped","newDisks","$event","_component_Disk","row","disks","hasKsmtunedSchema","_component_HarvesterKsmtuned","seederEnabled","_component_HarvesterSeeder","inventory","_component_SortableTable","rows","events","headers","eventHeaders","search","isKVMDisable","customName","internalIp","_hoisted_5","_hoisted_6","nodeInfo","osImage","_hoisted_7","_hoisted_8","nodeType","nodeRoleState","_hoisted_9","_hoisted_10","_hoisted_11","metadata","creationTimestamp","_hoisted_12","lastUpdateTime","_hoisted_13","isEtcd","cpuPinningFeatureEnabled","_hoisted_14","cpuManagerStatus","_hoisted_15","consoleUrl","slot","display","_hoisted_16","hasMetricNodeSchema","_hoisted_17","_hoisted_18","hasLonghornSchema","_component_HarvesterCPUUsed","_component_HarvesterMemoryUsed","_hoisted_19","_component_HarvesterStorageUsed","_hoisted_20","_hoisted_21","systemUUID","_hoisted_22","kernelVersion","_hoisted_23","containerRuntimeVersion","manufacturer","serialNumber","model","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","COMPLETE","PROMOTE_RESTART","PROMOTE_SUCCEED","components","Banner","LabelValue","HarvesterCPUUsed","HarvesterMemoryUsed","HarvesterStorageUsed","Object","computed","annotations","HCI_ANNOTATIONS","HOST_CUSTOM_NAME","isCPUManagerEnableInProgress","isCPUManagerEnabled","HOST_CONSOLE_URL","startsWith","cpuTotal","out","cpuCapacity","cpuUsage","memoryTotal","memoryCapacity","memoryUsage","cpuUnits","memoryUnits","exponent","exponentNeeded","UNITS","isMaster","conditions","lastHeartbeatTime","promoteStatus","PROMOTE_STATUS","isExistRoleStatus","undefined","labels","NODE_ROLE_MASTER","NODE_ROLE_CONTROL_PLANE","inStore","$store","getters","METRIC","NODE","LONGHORN","NODES","memoryFormatter","formatOptions","addSuffix","increment","minExponent","formatSi","id","scope","_component_HarvesterVmState","allClusterNetwork","SortableTable","Loading","HarvesterVmState","fetch","allHash","vms","dispatch","HCI","VM","vmis","VMI","CLUSTER_NETWORK","filter","vm","vmi","nodeName","HOSTNAME","STATE","NAME","labelKey","sort","width","formatter","AGE","update","mountedMessage","isNew","_component_RadioGroup","allowScheduling","options","allowSchedulingOptions","_component_BadgeState","readyCondition","icon","message","schedulableCondition","targetDisk","schedulableTooltipMessage","provisionPhase","storageAvailable","storageScheduled","storageMaximum","displayName","path","provisioner","BadgeState","Tag","RadioGroup","mixins","HarvesterDisk","Array","find","disk","evictionRequestedOptions","blockDevice","state","error","LONGHORN_VERSION_V1","longhorn","engineVersion","lvm","canEditPath","originPath","clusterNetwork","vlanConfig","linkStatus","_component_LinkStatus","mac","promiscuous","_CREATE","LinkStatus","ArrayListGrouped","findBy","linkMonitorId","linkMonitor","linkMonitors","LINK_MONITOR","l","ksmtuned","runText","showRunInformation","thresCoef","modeText","mergeNodesText","ksmtunedParameters","boost","decay","sleepMsec","minPages","maxPages","_component_t","k","raw","ksmdPhaseTextColor","ksmdPhase","sharing","shared","unshared","volatile","fullScans","stableNodeDups","stableNodeChains","hash","KSTUNED","ksmtunedMode","M","run","ksmtunedRunOption","mergeAcrossNodes","warningMessages","msg","enableInventory","baseboardSpec","connection","host","port","insecureTLS","selectedSecret","enabled","pollingInterval","namespace","authSecretRef","LONGHORN_SYSTEM","Tabbed","Tab","Basic","Instance","Disk","InfoBox","VlanStatus","HarvesterKsmtuned","HarvesterSeeder","metricPoller","nodes","pods","POD","VLAN_STATUS","hostNetworks","BLOCK_DEVICE","blockDevices","longhornNodes","ADD_ONS","addons","INVENTORY","inventories","res","hostNetworkResource","O","attachNodeName","loadMetrics","provisionedBlockDevices","d","isCurrentNode","isLonghornMounted","longhornDisks","isProvisioned","map","fileSystem","mountPoint","forceFormatted","clone","seeder","addon","inv","applyDefaults","allEvents","didLoadEvents","mapGetters","diskStatus","diskSpec","maxExponent","maxPrecision","suffix","keys","storageReserved","nodeId","s","involvedObject","uid","reason","count","trim","date","lastTimestamp","firstTimestamp","eventType","formatterOpts","ntpSync","jsonString","NODE_NTP_SYNC_STATUS","JSON","parse","err","title","escapeHtml","root","ntpSyncStatus","currentNtpServers","schema","opt","force","watch","$forceUpdate","neu","selectedName","EVENT","_component_ResourceTabs","defaultTab","onInput","showRegistration","_component_CopyCode","registrationURL","_withModifiers","_renderSlot","$slots","tooltip","flatten","isArray","join","children","stopPropagation","content","hideOnTargetClick","ResourceTabs","CopyCode","waitForProvisioner","clusterToken","getOrCreateToken","allNodes","allNodePools","machines","isImported","mgmt","isReady","command","replace","vmbackup","source","cronExpression","retain","maxFailure","isBackup","_component_BackupList","isSnapshot","_component_SnapshotList","_component_ResourceTable","groupable","filteredRows","_component_router_link","to","detailLocation","nameDisplay","ResourceTable","allSettled","backups","BACKUP","cols","align","hasBackupProgresses","push","R","progress","r","BACKUP_TYPE","backup","SVM_BACKUP_ID","SNAPSHOT","BackupList","SnapshotList","cronHint","cronstrue","cron","verbose","dataLabel","isRegistry","isBasicAuth","_component_DetailText","registryUrl","username","password","conceal","isCertificate","crt","isSvcAcctToken","isSsh","parsedRows","idx","types","TYPES","OPAQUE","DOCKER_JSON","TLS","SSH","BASIC","registryAddresses","DetailText","CreateEditView","registryProvider","_type","json","base64Decode","auths","includes","SERVICE_ACCT","relatedServices","forEach","_component_CruResource","doneRoute","resource","applyHooks","onTabChanged","imageName","hostname","machineType","_component_CpuMemory","cpu","memory","bootOrder","getDeviceType","cdroms","rom","_component_Volume","diskRows","_component_Network","networkRows","_component_OverviewKeypairs","_component_CloudConfig","ref","userScript","networkScript","_component_Checkbox","installUSBTablet","UNDEFINED","Volume","Network","CruResource","CloudConfig","Checkbox","CpuMemory","OverviewKeypairs","VM_MIXIN","inheritAttrs","allImages","IMAGE","template","imageList","image","I","imageId","domain","devices","a","b","cdrom","o","isEmpty","tab","$refs","yamlEditor","refresh","isUpload","url","_component_CopyToClipboardText","formattedValue","virtualSize","description","isEncryptedString","volumeEncryptionFeatureEnabled","isEncrypted","encryptionSecret","secretLink","isEncryptedOrDecrypted","sourceImageId","sourceImageLink","errorMessage","_component_Storage","storageClassParameters","nodeSelector","diskSelector","migratable","numberOfReplicas","staleReplicaTimeout","CopyToClipboardText","Storage","secrets","SECRET","images","downSize","DESCRIPTION","get","sourceType","sourceImage","sourceImageName","sourceImageNamespace","securityParameters","displayNameWithNamespace","cryptoOperation","sc","ucFirst","IMAGE_NAME","sshKeys","ssh","index","showKey","publicKey","toggleShow","impl","allSSHs","getKeys","mergeAllSSHs","isShow","isString","_component_OverviewBasics","hasResourceQuotaSchema","totalSnapshotSize","showVmMetrics","active","_component_DashboardMetrics","VM_METRICS_DETAIL_URL","vars","graphVars","_component_NodeScheduling","nodesIdOptions","_component_PodAffinity","namespaces","filteredNamespaces","affinityLabels","_component_AccessCredentials","accessCredentials","_component_Events","_component_Migration","_component_Labels","toggler","_component_KeyValue","instanceLabels","systemLabels","setInstanceLabels","paging","displayMessage","REASON","canBeVariable","defaultSort","sourceNode","targetNode","started","ended","vmiResource","localResource","migrationState","startTimestamp","endTimestamp","handler","deep","_component_VMConsoleBar","_component_HarvesterIpAddress","_component_InputOrDisplay","operatingSystem","flavor","kernelRelease","VMConsoleBar","HarvesterIpAddress","InputOrDisplay","Date","getMonth","getDate","getUTCFullYear","isDown","hostName","guestOSInfo","rootImageId","cores","resources","limits","prettyName","machine","Events","OverviewBasics","Migration","DashboardMetrics","AccessCredentials","NodeScheduling","PodAffinity","KeyValue","Labels","switchToCloud","created","RESOURCE_QUOTA","services","SERVICE","restore","RESTORE","resourceQuotas","setPromiseResult","allDashboardsExist","currentCluster","snapshotSizeQuota","vmiList","ownerReferences","podName","podResource","pvcName","persistentVolumeClaimName","involvedName","matchPVC","getDiskRows","networkHeaders","networks","rangeHeaders","ranges","ipPools","NETWORK_ATTACHMENT","n","selector","network","NETWORK_HEADERS","ipam","ipPoolHeaders","workloadType","vmHeaders","listenerHeaders","listeners","serviceSelectorInfoHeaders","backendServerSelectors","IP_POOL","allocatedAddress","ipPool","IP_POOL_HEADERS","backendServerSelector","KEY","VALUE","filterNames","VM_HEADERS","h","match","matching","nodeHeaders","matchedNodes","MATCHED_NODES","___CSS_LOADER_EXPORT___","module","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.dialog.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.dialog.js new file mode 100644 index 00000000..454f44da --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.dialog.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[907],{38076:function(e,t,a){"use strict";a.d(t,{A:function(){return d}});var o=a(9274);function s(e,t,a,s,r,n){return a.text?((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,class:(0,o.normalizeClass)(["copy-to-clipboard-text",{copied:r.copied,plain:a.plain}]),href:"#",onClick:t[0]||(t[0]=(...e)=>n.clicked&&n.clicked(...e))},[(0,o.createTextVNode)((0,o.toDisplayString)(a.text)+" ",1),(0,o.createElementVNode)("i",{class:(0,o.normalizeClass)(["icon",{"icon-copy":!r.copied,"icon-checkmark":r.copied}])},null,2)],2)):(0,o.createCommentVNode)("",!0)}var r=a(48881),n=a(99726),l={emits:["error"],props:{text:{type:String,required:!0},plain:{type:Boolean,default:!1}},data(){return{copied:!1}},methods:{clicked(e){this.copied||(e.preventDefault(),(0,r.e)(this.text).then((()=>{this.copied=!0;let t=e.target;"I"===t.tagName&&(t=t.parentElement||t),setTimeout((()=>{this.copied=!1}),500)})).catch((e=>{this.$emit("error",(0,n.rz)(e))})))}}},c=(a(48734),a(47433));const i=(0,c.A)(l,[["render",s],["__scopeId","data-v-d8c131ea"]]);var d=i},77290:function(e,t,a){"use strict";a.d(t,{A:function(){return u}});var o=a(9274);function s(e,t,a,s,r,n){const l=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createBlock)(l,(0,o.mergeProps)({ref:"value",value:n.displayValue},e.$attrs,{type:"number",min:a.min,mode:a.mode,label:a.label,delay:a.delay,"label-key":a.labelKey,tooltip:a.tooltip,"tooltip-key":a.tooltipKey,required:a.required,placeholder:a.placeholder,"hide-arrows":a.hideArrows,onChange:t[0]||(t[0]=e=>n.update(e.target.value)),onBlur:t[1]||(t[1]=e=>n.update(e.target.value))}),{suffix:(0,o.withCtx)((()=>[n.displayUnit?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:0,class:(0,o.normalizeClass)(["addon",{"with-tooltip":a.tooltip||a.tooltipKey}])},(0,o.toDisplayString)(n.displayUnit),3)):(0,o.createCommentVNode)("",!0)])),_:1},16,["value","min","mode","label","delay","label-key","tooltip","tooltip-key","required","placeholder","hide-arrows"])}var r=a(95799),n=a(79380),l=a(14220),c={components:{LabeledInput:n.o},emits:["update:value","update:validation","change","blur"],props:{outputAs:{type:String,default:"number"},outputModifier:{type:Boolean,default:!1},inputExponent:{type:Number,default:0},baseUnit:{type:String,default:"B"},hideArrows:{type:Boolean,default:!1},increment:{type:Number,default:1e3},suffix:{type:String,default:null},mode:{type:String,default:l.G5},value:{type:[Number,String],default:null},label:{type:String,default:null},labelKey:{type:String,default:null},tooltip:{type:[String,Object],default:null},tooltipKey:{type:String,default:null},required:{type:Boolean,default:!1},min:{type:[Number,String],default:0},placeholder:{type:[String,Number],default:""},delay:{type:Number,default:0},positive:{type:Boolean,default:!1}},computed:{unit(){let e;return e=this.inputExponent>=0?r.QN[this.inputExponent]:r.kq[-1*this.inputExponent],1024===this.increment&&e&&(e+="i"),e},parsedValue(){return"string"===typeof this.value?(0,r.ao)(this.value):this.value},displayValue(){let e="";return(this.parsedValue||0===this.parsedValue)&&(e=(0,r.Mo)(this.parsedValue,{increment:this.increment,addSuffix:!1,maxExponent:this.inputExponent,minExponent:this.inputExponent})),e},displayUnit(){return this.suffix?this.suffix:this.unit+this.baseUnit}},methods:{focus(){const e=this.$refs.value;e&&e.focus()},update(e){let t=""===e?null:e;this.positive&&e<0&&(t=0),this.outputModifier?t=null===t?null:`${e}${this.unit}`:"string"===this.outputAs?t=null===t?"":`${e}`:t&&(t=this.unit?(0,r.ao)(`${t}${this.unit}`):parseInt(t)),this.$emit("update:value",t)}}},i=(a(99738),a(47433));const d=(0,i.A)(c,[["render",s],["__scopeId","data-v-de90d6f0"]]);var u=d},4642:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return b}});var o=a(9274);const s={class:"buttons"};function r(e,t,a,r,n,l){const c=(0,o.resolveComponent)("Checkbox"),i=(0,o.resolveComponent)("LabeledInput"),d=(0,o.resolveComponent)("AsyncButton"),u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(m,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.cloneVM.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(c,{value:n.cloneData,"onUpdate:value":t[0]||(t[0]=e=>n.cloneData=e),class:"mb-10","label-key":"harvester.modal.cloneVM.type"},null,8,["value"]),(0,o.withDirectives)((0,o.createVNode)(i,{value:n.name,"onUpdate:value":t[1]||(t[1]=e=>n.name=e),class:"mb-20",label:e.t("harvester.modal.cloneVM.name"),required:""},null,8,["value","label"]),[[o.vShow,n.cloneData]])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[2]||(t[2]=(...e)=>l.close&&l.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(d,{mode:"create","action-label":n.cloneData?e.t("harvester.modal.cloneVM.action.create"):e.t("harvester.modal.cloneVM.action.clone"),disabled:n.cloneData&&!n.name,onClick:l.create},null,8,["action-label","disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(n.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t})))),128))])),_:1})}var n=a(99726),l=a(65359),c=a(37785),i=a(9980),d=a(42200),u=a(88857),m=a(79380),p={name:"CloneVMModal",emits:["close"],components:{AsyncButton:u.A,Banner:i.l,Checkbox:d.S,Card:c.Z,LabeledInput:m.o},props:{resources:{type:Array,required:!0}},data(){return{name:"",cloneData:!0,errors:[]}},computed:{...(0,l.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]}},methods:{close(){this.name="",this.$emit("close")},async create(e){if(!this.cloneData)return this.resources[0].goToClone(),e(!1),void this.close();try{const t=await this.actionResource.doAction("clone",{targetVm:this.name},{},!1);if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("harvester.notification.title.succeed"),message:this.t("harvester.modal.cloneVM.message.success",{name:this.name})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,n.rz)(a);this["errors"]=o,e(!1)}}}},h=(a(23819),a(47433));const v=(0,h.A)(p,[["render",r],["__scopeId","data-v-2bfd791b"]]);var b=v},82819:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return g}});var o=a(9274);const s={class:"text-default-text"},r={class:"pl-10 pr-10"},n={class:"text-info mt-20"},l={class:"actions"};function c(e,t,a,c,i,d){const u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("AsyncButton"),p=(0,o.resolveComponent)("Card"),h=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createElementVNode)("h4",s,(0,o.toDisplayString)(e.t("dialog.confirmExecution.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.withDirectives)((0,o.createElementVNode)("span",null,null,512),[[h,e.t(d.warningMessageKey,{type:d.type,names:d.resourceNames},!0)]]),(0,o.createElementVNode)("div",n,(0,o.toDisplayString)(d.protip),1),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t})))),128))])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("button",{class:"btn role-secondary",onClick:t[0]||(t[0]=(...e)=>d.close&&d.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(m,{mode:"apply",class:"btn bg-primary ml-10",disabled:e.applyDisabled,onClick:d.apply},null,8,["disabled","onClick"])])])),_:1})}var i=a(65359),d=a(99726),u=a(35881),m=a(88857),p=a(9980),h=a(37785),v=a(92043),b={name:"ConfirmExecutionDialog",emits:["close"],components:{AsyncButton:m.A,Banner:p.l,Card:h.Z},props:{resources:{type:Array,required:!0}},data(){return{errors:[]}},computed:{...(0,i.aH)("action-menu",["modalData"]),warningMessageKey(){return this.modalData.warningMessageKey},names(){return this.resources.map((e=>e.nameDisplay)).slice(0,5)},resourceNames(){return this.names.reduce(((e,t,a)=>(a>=5||(e+=`<b>${(0,v.ZD)(t)}</b>`,a===this.names.length-1?e+=this.plusMore:e+=a===this.resources.length-2?" and ":", "),e)),"")},plusMore(){const e=this.resources.length-this.names.length;return this.t("dialog.confirmExecution.andOthers",{count:e})},type(){const e=new Set(this.resources.reduce(((e,t)=>(e.push(t.type),e)),[]));if(e.size>1)return this.t("generic.resource",{count:this.resources.length});const t=this.resources[0]?.schema;return t?this.$store.getters["type-map/labelFor"](t,this.resources.length):"resource"+(1===this.resources.length?"":"s")},protip(){return this.t("dialog.confirmExecution.protip",{alternateLabel:u.ZA})}},methods:{escapeHtml:v.ZD,close(){this.errors=[],this.$emit("close")},async apply(e){try{for(const e of this.resources)await e.doActionGrowl(this.modalData.action,{});e(!0),this.close()}catch(t){this.errors=(0,d.rz)(t),e(!1)}}}},f=(a(51375),a(47433));const y=(0,f.A)(b,[["render",c],["__scopeId","data-v-530bd8a8"]]);var g=y},16996:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return k}});var o=a(9274);const s={class:"text-default-text"},r={class:"pl-10 pr-10"},n={class:"mt-10 mb-10"},l={class:"mb-10"},c={class:"text-info mt-20"};function i(e,t,a,i,d,u){const m=(0,o.resolveComponent)("CopyToClipboardText"),p=(0,o.resolveComponent)("Banner"),h=(0,o.resolveComponent)("AsyncButton"),v=(0,o.resolveComponent)("Card"),b=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(v,{class:"prompt-related","show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createElementVNode)("h4",s,(0,o.toDisplayString)(e.t("promptRemove.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.withDirectives)((0,o.createElementVNode)("span",null,null,512),[[b,e.t(u.warningMessageKey,{type:u.type,names:u.resourceNames},!0)]]),(0,o.createElementVNode)("div",n,[(0,o.withDirectives)((0,o.createElementVNode)("span",null,null,512),[[b,e.t("promptRemove.confirmName",{nameToMatch:u.escapeHtml(u.nameToMatch)},!0)]])]),(0,o.createElementVNode)("div",l,[(0,o.createVNode)(m,{text:u.nameToMatch},null,8,["text"])]),(0,o.withDirectives)((0,o.createElementVNode)("input",{id:"confirm","onUpdate:modelValue":t[0]||(t[0]=e=>d.confirmName=e),type:"text"},null,512),[[o.vModelText,d.confirmName]]),(0,o.createElementVNode)("div",c,(0,o.toDisplayString)(u.protip),1),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(d.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(p,{key:t})))),128))])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>u.close&&u.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(h,{mode:"delete",class:"btn bg-error ml-10",disabled:u.deleteDisabled,onClick:u.remove},null,8,["disabled","onClick"])])),_:1})}var d=a(65359),u=a(99726),m=a(35881),p=a(88857),h=a(9980),v=a(37785),b=a(92043),f=a(38076),y={name:"ConfirmRelatedToRemoveDialog",emits:["close"],components:{AsyncButton:p.A,Banner:h.l,Card:v.Z,CopyToClipboardText:f.A},props:{resources:{type:Array,required:!0}},data(){return{errors:[],confirmName:""}},computed:{...(0,d.aH)("action-menu",["modalData"]),warningMessageKey(){return this.modalData.warningMessageKey},names(){return this.resources.map((e=>e.nameDisplay)).slice(0,5)},resourceNames(){return this.names.reduce(((e,t,a)=>(a>=5||(e+=`<b>${(0,b.ZD)(t)}</b>`,a===this.names.length-1?e+=this.plusMore:e+=a===this.resources.length-2?" and ":", "),e)),"")},nameToMatch(){return this.resources[0].nameDisplay},plusMore(){const e=this.resources.length-this.names.length;return this.t("promptRemove.andOthers",{count:e})},type(){const e=new Set(this.resources.reduce(((e,t)=>(e.push(t.type),e)),[]));if(e.size>1)return this.t("generic.resource",{count:this.resources.length});const t=this.resources[0]?.schema;return t?this.$store.getters["type-map/labelFor"](t,this.resources.length):"resource"+(1===this.resources.length?"":"s")},deleteDisabled(){return this.confirmName!==this.nameToMatch},protip(){return this.t("promptRemove.protip",{alternateLabel:m.ZA})}},methods:{escapeHtml:b.ZD,close(){this.confirmName="",this.errors=[],this.$emit("close")},async remove(e){try{for(const e of this.resources)await e.remove();e(!0),this.close()}catch(t){this.errors=(0,u.rz)(t),e(!1)}}}},g=(a(12408),a(47433));const C=(0,g.A)(y,[["render",i],["__scopeId","data-v-18d7e6fa"]]);var k=C},97183:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const s={class:"actions"},r={class:"buttons"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("Checkbox"),d=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.cloneVM.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.cloneData,"onUpdate:value":t[0]||(t[0]=e=>l.cloneData=e),class:"mb-10","label-key":"harvester.modal.cloneVM.type"},null,8,["value"]),(0,o.withDirectives)((0,o.createVNode)(d,{value:l.name,"onUpdate:value":t[1]||(t[1]=e=>l.name=e),class:"mb-20",label:e.t("harvester.modal.cloneVM.name"),required:""},null,8,["value","label"]),[[o.vShow,l.cloneData]])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[2]||(t[2]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(u,{mode:"create","action-label":l.cloneData?e.t("harvester.modal.cloneVM.action.create"):e.t("harvester.modal.cloneVM.action.clone"),disabled:l.cloneData&&!l.name,onClick:c.create},null,8,["action-label","disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t,color:"error",label:e},null,8,["label"])))),128))])])),_:1})}var l=a(99726),c=a(65359),i=a(37785),d=a(9980),u=a(42200),m=a(88857),p=a(79380),h={name:"CloneVMModal",emits:["close"],components:{AsyncButton:m.A,Banner:d.l,Checkbox:u.S,Card:i.Z,LabeledInput:p.o},props:{resources:{type:Array,required:!0}},data(){return{name:"",cloneData:!0,errors:[]}},computed:{...(0,c.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]}},methods:{close(){this.name="",this.$emit("close")},async create(e){if(!this.cloneData)return this.resources[0].goToClone(),e(!1),void this.close();try{const t=await this.actionResource.doAction("clone",{targetVm:this.name},{},!1);if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("harvester.notification.title.succeed"),message:this.t("harvester.modal.cloneVM.message.success",{name:this.name})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,l.rz)(a);this["errors"]=o,e(!1)}}}},v=(a(89404),a(47433));const b=(0,v.A)(h,[["render",n],["__scopeId","data-v-336a14ce"]]);var f=b},90059:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return b}});var o=a(9274);const s={class:"text-default-text"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("AsyncButton"),u=(0,o.resolveComponent)("Card"),m=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(u,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[m,e.t("promptRemove.title")]])])),body:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.pci.enablePassthroughWarning")),1)])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[0]||(t[0]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(d,{mode:"enable",onClick:i.save},null,8,["onClick"])])])])),_:1})}var c=a(65359),i=a(37785),d=a(88857),u=a(92043),m=a(32766),p={name:"HarvesterEnablePciPassthrough",emits:["close"],components:{AsyncButton:d.A,Card:i.Z},props:{resources:{type:Array,required:!0}},data(){return{}},computed:{...(0,c.L8)({t:"i18n/t"})},methods:{close(){this.$emit("close")},async save(e){const t=this.$store.getters["isSingleProduct"];let a="admin";if(!t){const e=this.$store.getters["auth/v3User"];a=e?.username||e?.id}for(let s=0;s<this.resources.length;s++){const t=this.resources[s],r=this.$store.getters["currentProduct"].inStore,n=await this.$store.dispatch(`${r}/create`,{type:m.rk.PCI_CLAIM,metadata:{name:t.metadata.name,ownerReferences:[{apiVersion:"devices.harvesterhci.io/v1beta1",kind:"PCIDevice",name:t.metadata.name,uid:t.metadata.uid}]},spec:{address:t.status.address,nodeName:t.status.nodeName,userName:a}});try{await n.save(),e(!0),this.close()}catch(o){this.$store.dispatch("growl/fromError",{title:this.t("harvester.pci.claimError",{name:(0,u.ZD)(t.metadata.name)}),err:o},{root:!0}),e(!1)}}}}},h=(a(97730),a(47433));const v=(0,h.A)(p,[["render",l],["__scopeId","data-v-44897704"]]);var b=v},67038:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return v}});var o=a(9274);const s={class:"text-default-text"},r={class:"buttons actions"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("LabeledInput"),d=(0,o.resolveComponent)("AsyncButton"),u=(0,o.resolveComponent)("Card"),m=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(u,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[m,e.t("promptRemove.title")]])])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.numVFs,"onUpdate:value":t[0]||(t[0]=e=>l.numVFs=e),valueModifiers:{number:!0},type:"number",min:"1",required:"",label:e.t("harvester.sriov.numVFs")},null,8,["value","label"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(d,{mode:"enable",onClick:c.save},null,8,["onClick"])])])),_:1})}var l=a(98752),c=a(65359),i=a(37785),d=a(88857),u=a(92043),m={name:"HarvesterEnableSriovDevice",emits:["close"],components:{LabeledInput:l.A,AsyncButton:d.A,Card:i.Z},props:{resources:{type:Array,required:!0}},data(){const e=this.resources[0].spec?.numVFs||1;return{numVFs:e,numVFsHistory:e}},computed:{...(0,c.L8)({t:"i18n/t"})},watch:{numVFs(e){(!parseFloat(e)||parseFloat(e)<1)&&(this.numVFs=1)}},methods:{close(){this.$emit("close")},async save(e){const t=this.resources[0];try{this.resources[0].spec.numVFs=this.numVFs,await t.save(),e(!0),this.close()}catch(a){this.resources[0].spec.numVFs=this.numVFsHistory,this.$store.dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,u.ZD)(t.metadata.name)}),err:a},{root:!0}),e(!1)}}}},p=(a(50142),a(47433));const h=(0,p.A)(m,[["render",n],["__scopeId","data-v-bcaa7c4a"]]);var v=h},29905:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return b}});var o=a(9274);const s={class:"text-default-text"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("t"),u=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Card"),p=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(m,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[p,e.t("promptRemove.title")]])])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{k:"harvester.usb.enablePassthroughWarning",raw:!0})])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[0]||(t[0]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(u,{mode:"enable",onClick:i.save},null,8,["onClick"])])])])),_:1})}var c=a(65359),i=a(37785),d=a(88857),u=a(92043),m=a(32766),p={name:"HarvesterEnableUSBPassthrough",emits:["close"],components:{AsyncButton:d.A,Card:i.Z},props:{resources:{type:Array,required:!0}},data(){return{}},computed:{...(0,c.L8)({t:"i18n/t"})},methods:{close(){this.$emit("close")},async save(e){const t=this.$store.getters["isSingleProduct"];let a="admin";if(!t){const e=this.$store.getters["auth/v3User"];a=e?.username||e?.id}for(let s=0;s<this.resources.length;s++){const t=this.resources[s],r=this.$store.getters["currentProduct"].inStore,n=await this.$store.dispatch(`${r}/create`,{type:m.rk.USB_CLAIM,metadata:{name:t.metadata.name,ownerReferences:[{apiVersion:"devices.harvesterhci.io/v1beta1",kind:"USBDevice",name:t.metadata.name,uid:t.metadata.uid}]},spec:{pciAddress:t.status.pciAddress,nodeName:t.status.nodeName,userName:a}});try{await n.save(),e(!0),this.close()}catch(o){this.$store.dispatch("growl/fromError",{title:this.t("harvester.usb.claimError",{name:(0,u.ZD)(t.metadata.name)}),err:o},{root:!0}),e(!1)}}}}},h=(a(34661),a(47433));const v=(0,h.A)(p,[["render",l],["__scopeId","data-v-0cd7660b"]]);var b=v},71524:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const s={class:"text-default-text"},r={class:"body"},n={class:"type-field"},l={class:"buttons actions"};function c(e,t,a,c,i,d){const u=(0,o.resolveComponent)("LabeledSelect"),m=(0,o.resolveComponent)("AsyncButton"),p=(0,o.resolveComponent)("Card"),h=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[h,e.t("harvester.vgpu.enable.title")]])])),body:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(u,{value:i.type,"onUpdate:value":t[0]||(t[0]=e=>i.type=e),required:"",options:i.availableTypes,searchable:!0,label:e.t("harvester.vgpu.enable.type")},null,8,["value","options","label"])])])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>d.close&&d.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(m,{mode:"edit",disabled:!i.type,onClick:d.save},null,8,["disabled","onClick"])])])),_:1})}var i=a(65359),d=a(37785),u=a(77988),m=a(88857),p=a(92043),h={name:"HarvesterEnableVGpuDevice",emits:["close"],components:{AsyncButton:m.A,Card:d.Z,LabeledSelect:u.A},props:{resources:{type:Array,required:!0}},data(){return{type:this.resources[0].spec?.vGPUTypeName,availableTypes:Object.keys(this.resources[0].status?.availableTypes||{})}},computed:{...(0,i.L8)({t:"i18n/t"})},methods:{close(){this.$emit("close")},async save(e){const t=this.resources[0];try{this.resources[0].spec.vGPUTypeName=this.type,this.resources[0].spec.enabled=!0,await t.save(),e(!0),this.close()}catch(a){this.$store.dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,p.ZD)(t.metadata.name)}),err:a},{root:!0}),e(!1)}}}},v=(a(24738),a(47433));const b=(0,v.A)(h,[["render",c],["__scopeId","data-v-093a01ba"]]);var f=b},2790:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return k}});var o=a(9274);const s={class:"text-default-text"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("LabeledSelect"),m=(0,o.resolveComponent)("AsyncButton"),p=(0,o.resolveComponent)("Banner"),h=(0,o.resolveComponent)("Card"),v=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(h,{ref:"modal",name:"modal","show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[v,e.t("harvester.modal.hotplug.title")]])])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{value:c.diskName,"onUpdate:value":t[0]||(t[0]=e=>c.diskName=e),label:e.t("generic.name"),required:""},null,8,["value","label"]),(0,o.createVNode)(u,{value:c.volumeName,"onUpdate:value":t[1]||(t[1]=e=>c.volumeName=e),label:e.t("harvester.fields.volume"),options:i.volumeOption,class:"mt-20",required:""},null,8,["value","label","options"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-secondary mr-10",onClick:t[2]||(t[2]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(m,{mode:"apply",disabled:!c.diskName||!c.volumeName,onClick:i.save},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(p,{key:t})))),128))])])),_:1},512)}var c=a(99726),i=a(74302),d=a(65359),u=a(35664),m=a(2602),p=a(37785),h=a(9980),v=a(88857),b=a(79380),f=a(77988),y={name:"HotplugModal",emits:["close"],components:{AsyncButton:v.A,Card:p.Z,LabeledInput:b.o,LabeledSelect:f.A,Banner:h.l},props:{resources:{type:Array,required:!0}},async fetch(){this.allPVCs=await this.$store.dispatch("harvester/findAll",{type:u.YH})},data(){return{diskName:"",volumeName:"",errors:[],allPVCs:[]}},computed:{...(0,d.L8)({t:"i18n/t"}),PVCs(){return this.allPVCs.filter((e=>this.actionResource.metadata.namespace===e.metadata.namespace))||[]},actionResource(){return this.resources[0]},volumeOption(){return(0,i.Ul)(this.PVCs.filter((e=>!e.metadata?.annotations?.[m.r.IMAGE_ID]&&!e.attachVM)).map((e=>({label:e.metadata.name,value:e.metadata.name}))),"label")}},methods:{close(){this.diskName="",this.volumeName="",this.$emit("close")},async save(e){if(this.actionResource)try{const t=await this.actionResource.doAction("addVolume",{volumeSourceName:this.volumeName,diskName:this.diskName},{},!1);if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.modal.hotplug.success",{diskName:this.diskName,vm:this.actionResource.nameDisplay})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,c.rz)(a);this["errors"]=o,e(!1)}}}},g=(a(70576),a(47433));const C=(0,g.A)(y,[["render",l],["__scopeId","data-v-e57e8be6"]]);var k=C},51094:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const s={class:"text-default-text"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("Card"),h=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[h,e.t("harvester.modal.backup.addBackup")]])])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{value:c.backUpName,"onUpdate:value":t[0]||(t[0]=e=>c.backUpName=e),label:e.t("generic.name"),required:""},null,8,["value","label"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(u,{mode:"create",disabled:!c.backUpName,onClick:i.save},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t,color:"error",label:e},null,8,["label"])))),128))])])),_:1})}var c=a(99726),i=a(65359),d=a(37785),u=a(9980),m=a(88857),p=a(79380),h={name:"HarvesterBackupModal",emits:["close"],components:{AsyncButton:m.A,Card:d.Z,LabeledInput:p.o,Banner:u.l},props:{resources:{type:Array,required:!0}},data(){return{backUpName:"",errors:[]}},computed:{...(0,i.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]}},methods:{close(){this.backUpName="",this.$emit("close")},async save(e){if(this.actionResource)try{const t=await this.actionResource.doAction("backup",{name:this.backUpName},{},!1);if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.modal.backup.success",{backUpName:this.backUpName})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,c.rz)(a);this["errors"]=o,e(!1)}}}},v=(a(79539),a(47433));const b=(0,v.A)(h,[["render",l],["__scopeId","data-v-59cc760a"]]);var f=b},55441:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const s={class:"actions"},r={class:"buttons"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("Checkbox"),d=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.createTemplate.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.withData,"onUpdate:value":t[0]||(t[0]=e=>l.withData=e),class:"mb-10",label:"With Data"},null,8,["value"]),(0,o.createVNode)(d,{value:l.templateName,"onUpdate:value":t[1]||(t[1]=e=>l.templateName=e),class:"mb-20",label:e.t("harvester.modal.createTemplate.name"),required:""},null,8,["value","label"]),(0,o.createVNode)(d,{value:l.description,"onUpdate:value":t[2]||(t[2]=e=>l.description=e),label:e.t("harvester.modal.createTemplate.description")},null,8,["value","label"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[3]||(t[3]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(u,{mode:"create",disabled:!l.templateName,onClick:c.save},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t})))),128))])])),_:1})}var l=a(99726),c=a(65359),i=a(37785),d=a(9980),u=a(42200),m=a(88857),p=a(79380),h={name:"HarvesterCloneTemplateModal",emits:["close"],components:{AsyncButton:m.A,Banner:d.l,Card:i.Z,Checkbox:u.S,LabeledInput:p.o},props:{resources:{type:Array,required:!0}},data(){return{templateName:"",description:"",withData:!1,errors:[]}},computed:{...(0,c.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]}},methods:{close(){this.templateName="",this.description="",this.$emit("close")},async save(e){try{const t=await this.actionResource.doAction("createTemplate",{name:this.templateName,description:this.description,withData:this.withData},{},!1);if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.modal.createTemplate.message.success",{templateName:this.templateName})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,l.rz)(a);this["errors"]=o,e(!1)}}}},v=(a(9822),a(47433));const b=(0,v.A)(h,[["render",n],["__scopeId","data-v-b0964c8c"]]);var f=b},26717:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const s={class:"text-info mb-10"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("Checkbox"),u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("AsyncButton"),p=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.ejectCDROM.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createElementVNode)("span",s,(0,o.toDisplayString)(e.t("harvester.modal.ejectCDROM.operationTip")),1),(0,o.createElementVNode)("div",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.allDisk,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(d,{key:t,value:e.value,"onUpdate:value":t=>e.value=t,label:e.name},null,8,["value","onUpdate:value","label"])))),128))]),(0,o.createVNode)(u,{color:"warning"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e.t("harvester.modal.ejectCDROM.warnTip")),1)])),_:1})])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[0]||(t[0]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(m,{mode:"delete",disabled:!c.diskNames.length,class:"btn bg-error ml-10",onClick:i.remove},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t,color:"error",label:e},null,8,["label"])))),128))])])),_:1})}var c=a(65359),i=a(37785),d=a(9980),u=a(88857),m=a(42200),p=a(99726),h={name:"HarvesterEjectCDROMModal",emits:["close"],components:{AsyncButton:u.A,Card:i.Z,Checkbox:m.S,Banner:d.l},props:{resources:{type:Array,required:!0}},data(){const e=[],t=this.resources[0].spec.template.spec.domain.devices.disks;return Array.isArray(t)&&t.forEach((t=>{t.cdrom&&e.push({name:t.name,value:!1})})),{allDisk:e,errors:[],diskNames:[]}},computed:{...(0,c.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]},isDeleteDisabled(){return 0===this.diskNames.length}},methods:{updateNames(e){this.diskNames=e},async remove(e){try{await this.actionResource.doAction("ejectCdRom",{diskNames:this.diskNames}),this.close(),e(!0)}catch(t){const a=t?.data||t,o=(0,p.rz)(a);this["errors"]=o,e(!1)}},close(){this.backupName="",this.errors=[],this.$emit("close")}},watch:{allDisk:{handler(e){const t=[];e.forEach((e=>{e.value&&t.push(e.name)})),this["diskNames"]=t},deep:!0}}},v=(a(88547),a(47433));const b=(0,v.A)(h,[["render",l],["__scopeId","data-v-8cf7507a"]]);var f=b},6285:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return C}});var o=a(9274);const s={class:"actions"},r={class:"buttons"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("LabeledSelect"),d=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.exportImage.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.namespace,"onUpdate:value":t[0]||(t[0]=e=>l.namespace=e),label:e.t("harvester.modal.exportImage.namespace"),options:c.namespaces,class:"mb-20",required:""},null,8,["value","label","options"]),(0,o.createVNode)(d,{value:l.name,"onUpdate:value":t[1]||(t[1]=e=>l.name=e),label:e.t("harvester.modal.exportImage.name"),required:""},null,8,["value","label"]),(0,o.createVNode)(i,{value:l.storageClassName,"onUpdate:value":t[2]||(t[2]=e=>l.storageClassName=e),options:c.storageClassOptions,label:e.t("harvester.storage.storageClass.label"),class:"mt-20",required:""},null,8,["value","options","label"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[3]||(t[3]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(u,{mode:"create",disabled:c.disableSave,onClick:c.save},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t})))),128))])])),_:1})}var l=a(65359),c=a(99726),i=a(74302),d=a(37785),u=a(9980),m=a(88857),p=a(79380),h=a(77988),v=a(35664),b=a(88339),f={name:"HarvesterExportImageDialog",emits:["close"],components:{AsyncButton:m.A,Banner:u.l,Card:d.Z,LabeledInput:p.o,LabeledSelect:h.A},props:{resources:{type:Array,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={storages:this.$store.dispatch(`${e}/findAll`,{type:v.fJ})};await(0,b.kR)(t);const a=this.$store.getters[`${e}/all`](v.fJ).find((e=>e.isDefault));this["storageClassName"]=a?.metadata?.name||"longhorn"},data(){const e=this.$store.getters["defaultNamespace"]||"";return{name:"",namespace:e,storageClassName:"",errors:[]}},computed:{...(0,l.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]},namespaces(){const e=this.$store.getters["harvester/all"](v.CU).filter((e=>!e.isSystem)),t=(0,i.Ul)(e.map((e=>({label:e.nameDisplay,value:e.id}))),"label");return t},disableSave(){return!(this.name&&this.namespace&&this.storageClassName)},storageClassOptions(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](v.fJ),a=t.filter((e=>!e.parameters?.backingImage)).map((e=>{const t=e.isDefault?`${e.name} (${this.t("generic.default")})`:e.name;return{label:t,value:e.name}}))||[];return a}},methods:{close(){this.name="",this.namespace="",this.storageClassName="",this.$emit("close")},async save(e){try{const t=await this.actionResource.doAction("export",{displayName:this.name,namespace:this.namespace,storageClassName:this.storageClassName});if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.modal.exportImage.message.success",{name:this.name})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,c.rz)(a);this["errors"]=o,e(!1)}}}},y=(a(72e3),a(47433));const g=(0,y.A)(f,[["render",n],["__scopeId","data-v-1106b2cc"]]);var C=g},24384:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return y}});var o=a(9274);const s={class:"vm-list mb-5"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("Checkbox"),u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("BadgeState"),p=(0,o.resolveComponent)("AsyncButton"),h=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(h,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.host.enableMaintenance.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",null,[(0,o.createVNode)(d,{value:c.force,"onUpdate:value":[t[0]||(t[0]=e=>c.force=e),i.onInputForce],"label-key":"harvester.host.enableMaintenance.force"},null,8,["value","onUpdate:value"])]),(0,o.createVNode)(u,{color:"warning",label:e.t("harvester.host.enableMaintenance.protip")},null,8,["label"]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t,color:"error",label:i.ucFirst(e)},null,8,["label"])))),128)),c.force?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(u,{key:0,class:"mt-0",color:"warning","label-key":"harvester.host.enableMaintenance.shutDownVMs"})),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.unhealthyVMs,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:t},[(0,o.createVNode)(u,{color:"error mt-0 mb-5"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("p",null,(0,o.toDisplayString)(i.ucFirst(e.message)),1)])),_:2},1024),(0,o.createElementVNode)("div",s,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.vms,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t,color:"bg-error mb-5 mr-5",label:e},null,8,["label"])))),128))])])))),128))])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(p,{mode:"apply",onClick:i.apply},null,8,["onClick"])])])])),_:1})}var c=a(65359),i=a(88857),d=a(37785),u=a(9980),m=a(42200),p=(a(99726),a(87102)),h=a(92043),v={emits:["close"],components:{Card:d.Z,Checkbox:m.S,AsyncButton:i.A,Banner:u.l,BadgeState:p.j},props:{resources:{type:Array,required:!0}},data(){return{errors:[],unhealthyVMs:[],force:!1}},computed:{...(0,c.L8)({t:"i18n/t"}),improveMaintenanceModeFeatureEnabled(){return this.$store.getters["harvester-common/getFeatureEnabled"]("improveMaintenanceMode")},actionResource(){return this.resources[0]}},methods:{ucFirst:h.TF,onInputForce(e){e&&(this.unhealthyVMs=[])},close(){this.$emit("close")},async apply(e){this.errors=[],this.unhealthyVMs=[];try{const t=await this.actionResource.doAction("maintenancePossible");if(this.force)200===t._status||204===t._status?(await this.actionResource.doAction("enableMaintenanceMode",{force:"true"}),e(!0),this.close()):e(!1);else if(200===t._status||204===t._status){const t=await this.actionResource.doAction("listUnhealthyVM");let a=t;this.improveMaintenanceModeFeatureEnabled||(a=t.message?[t]:[]),a?.length?(this.unhealthyVMs=a,e(!1)):(await this.actionResource.doAction("enableMaintenanceMode",{force:"false"}),e(!0),this.close())}else e(!1)}catch(t){const a=[t?.data]||0;this.errors=a,e(!1)}}}},b=(a(10865),a(47433));const f=(0,b.A)(v,[["render",l],["__scopeId","data-v-f2cea8a0"]]);var y=f},21569:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return y}});var o=a(9274);const s={class:"buttons"};function r(e,t,a,r,n,l){const c=(0,o.resolveComponent)("Banner"),i=(0,o.resolveComponent)("LabeledSelect"),d=(0,o.resolveComponent)("AsyncButton"),u=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(u,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.migration.title")),1)])),body:(0,o.withCtx)((()=>[l.actionResource?.isCpuPinning?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,color:"warning",label:l.cpuPinningAlertMessage},null,8,["label"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(i,{value:n.nodeName,"onUpdate:value":t[0]||(t[0]=e=>n.nodeName=e),label:e.t("harvester.modal.migration.fields.nodeName.label"),placeholder:e.t("harvester.modal.migration.fields.nodeName.placeholder"),options:l.nodeNameList},null,8,["value","label","placeholder","options"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>l.close&&l.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(d,{mode:"apply",disabled:!n.nodeName,onClick:l.apply},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(n.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(c,{key:t,color:"error",label:e},null,8,["label"])))),128))])),_:1})}var n=a(65359),l=a(35664),c=a(99726),i=a(2602),d=a(37785),u=a(9980),m=a(88857),p=a(77988),h=a(32766),v={emits:["close"],components:{AsyncButton:m.A,Banner:u.l,Card:d.Z,LabeledSelect:p.A},props:{resources:{type:Array,required:!0}},async fetch(){try{if(!this.actionResource.hasAction("findMigratableNodes"))return;const e=await this.actionResource.$dispatch("resourceAction",{resource:this.actionResource,actionName:"findMigratableNodes",body:{},opt:{}});this.availableNodes=e.nodes}catch(e){this.actionResource.$dispatch("growl/fromError",{title:this.t("generic.notification.title.error"),err:e.data||e},{root:!0})}},data(){return{nodeName:"",errors:[],availableNodes:[]}},computed:{...(0,n.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]},vmi(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](h.rk.VMI),a=t.find((e=>e.id===this.actionResource?.id))||null;return a},cpuPinningAlertMessage(){return this.t("harvester.virtualMachine.cpuPinning.migrationMessage")},nodeNameList(){const e=this.$store.getters["harvester/all"](l.NW);return e.filter((e=>{const t=!!this.availableNodes.includes(e.id),a="true"!==e.isEtcd,o=this.actionResource?.isCpuPinning,s=!o||e.isCPUManagerEnabled;return t&&a&&s})).map((e=>{let t=e?.metadata?.name;const a=e?.metadata?.name,o=e?.metadata?.annotations?.[i.r.HOST_CUSTOM_NAME];return o&&(t=o),{label:t,value:a}}))}},methods:{close(){this.nodeName="",this.errors=[],this.$emit("close")},async apply(e){if(this.actionResource){if(!this.nodeName){const t=this.$store.getters["i18n/t"]("harvester.modal.migration.fields.nodeName.label"),a=this.$store.getters["i18n/t"]("validation.required",{key:t});return this["errors"]=[a],void e(!1)}try{await this.actionResource.doAction("migrate",{nodeName:this.nodeName},{},!1),e(!0),this.close()}catch(t){const a=t?.data||t,o=(0,c.rz)(a);this["errors"]=o,e(!1)}}else e(!1)}}},b=(a(84700),a(47433));const f=(0,b.A)(v,[["render",r],["__scopeId","data-v-44239a1b"]]);var y=f},59248:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const s={class:"text-default-text"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("Banner"),u=(0,o.resolveComponent)("UnitInput"),m=(0,o.resolveComponent)("AsyncButton"),p=(0,o.resolveComponent)("Card"),h=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[h,e.t("harvester.modal.quota.editQuota")]])])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.quota.bannerMessage")),1)])),_:1}),(0,o.createVNode)(u,{value:c.totalSnapshotSize,"onUpdate:value":t[0]||(t[0]=e=>c.totalSnapshotSize=e),label:e.t("harvester.snapshot.totalSnapshotSize"),disabled:!1,"input-exponent":3,increment:1024,"output-modifier":!0,suffix:"GiB",class:"mb-20"},null,8,["value","label"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(m,{onClick:i.save},null,8,["onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(d,{key:t,color:"error",label:e},null,8,["label"])))),128))])])),_:1})}var c=a(65359),i=a(37785),d=a(9980),u=a(88857),m=a(77290),p=a(99726),h={name:"HarvesterVMQuotaDialog",components:{AsyncButton:u.A,Card:i.Z,UnitInput:m.A,Banner:d.l},props:{resources:{type:Array,required:!0}},created(){this.totalSnapshotSize=this.modalData.snapshotSizeQuota},data(){return{totalSnapshotSize:"",errors:[]}},computed:{...(0,c.aH)("action-menu",["modalData"]),...(0,c.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]}},methods:{close(){this.totalSnapshotSize="",this.$emit("close")},async save(e){try{null===this.totalSnapshotSize||"0Gi"===this.totalSnapshotSize?await this.actionResource.doAction("deleteResourceQuota"):await this.actionResource.doAction("updateResourceQuota",{totalSnapshotSizeQuota:this.totalSnapshotSize}),this.close(),e(!0)}catch(t){const a=t?.data||t,o=(0,p.rz)(a);this["errors"]=o,e(!1)}}}},v=(a(85381),a(47433));const b=(0,v.A)(h,[["render",l],["__scopeId","data-v-5d55ff4f"]]);var f=b},58402:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return g}});var o=a(9274);const s={class:"actions"},r={class:"buttons"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("LabeledSelect"),d=(0,o.resolveComponent)("AsyncButton"),u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(m,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.restore.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.backupName,"onUpdate:value":t[0]||(t[0]=e=>l.backupName=e),label:e.t("harvester.modal.restore.selectBackup"),"localized-label":!0,options:c.backupOption,required:""},null,8,["value","label","options"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(d,{mode:"create",disabled:!l.backupName,onClick:c.saveRestore},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t})))),128))])])),_:1})}var l=a(65359),c=a(92043),i=a(88339),d=a(99726),u=a(37785),m=a(9980),p=a(88857),h=a(77988),v=a(32766),b={name:"HarvesterRestoreModal",emits:["close"],components:{AsyncButton:p.A,Banner:m.l,Card:u.Z,LabeledSelect:h.A},async fetch(){const e=await(0,i.kR)({backups:this.$store.dispatch("harvester/findAll",{type:v.rk.BACKUP})});this.backups=e.backups},props:{resources:{type:Array,required:!0}},data(){return{backups:[],backupName:"",errors:[]}},computed:{...(0,l.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]},backupOption(){const e=this.backups.filter((e=>e.attachVM===this.actionResource?.metadata?.name));return e.map((e=>({value:e.metadata.name,label:e.metadata.name})))}},methods:{close(){this.backupName="",this.errors=[],this.$emit("close")},async saveRestore(e){const t=`restore-${this.backupName}-${(0,c.vx)(5).toLowerCase()}`;if(!this.backupName)return this["errors"]=[this.t("harvester.modal.restore.message.backup")],void e(!1);try{const a=await this.actionResource.doAction("restore",{backupName:this.backupName,name:t},{},!1);if(200===a._status||204===a._status)this.$store.dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.modal.restore.success",{name:this.backupName})},{root:!0}),this.close(),e(!0);else{const t=[a?.data]||0;this["errors"]=t,e(!1)}}catch(a){const t=a?.data||a,o=(0,d.rz)(t);this["errors"]=o,e(!1)}}}},f=(a(84594),a(47433));const y=(0,f.A)(b,[["render",n],["__scopeId","data-v-60048f60"]]);var g=y},94968:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return b}});var o=a(9274);const s={class:"text-default-text"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("AsyncButton"),u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("Card"),p=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(m,{ref:"modal",name:"modal","show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[p,e.t("harvester.virtualMachine.unplug.title",{name:i.diskName})]])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-secondary mr-10",onClick:t[0]||(t[0]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(d,{mode:"apply","action-label":e.t("harvester.virtualMachine.unplug.actionLabel"),"waiting-label":e.t("harvester.virtualMachine.unplug.actionLabel"),"success-label":e.t("harvester.virtualMachine.unplug.actionLabel"),onClick:i.save},null,8,["action-label","waiting-label","success-label","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t,color:"error",label:e},null,8,["label"])))),128))])])),_:1},512)}var c=a(65359),i=a(99726),d=a(37785),u=a(9980),m=a(88857),p={name:"HarvesterHotUnplugModal",emits:["close"],components:{AsyncButton:m.A,Card:d.Z,Banner:u.l},props:{resources:{type:Array,required:!0}},data(){return{errors:[]}},computed:{...(0,c.aH)("action-menu",["modalData"]),...(0,c.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]},diskName(){return this.modalData.diskName}},methods:{close(){this.$emit("close")},async save(e){try{const t=await this.actionResource.doAction("removeVolume",{diskName:this.diskName});if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.modal.hotunplug.success",{name:this.diskName})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,i.rz)(a);this["errors"]=o,e(!1)}}}},h=(a(16401),a(47433));const v=(0,h.A)(p,[["render",l],["__scopeId","data-v-6701b372"]]);var b=v},66690:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return g}});var o=a(9274);const s={class:"text-default-text"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("Card"),h=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[h,e.t("harvester.modal.vmSnapshot.title")]])])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{value:i.actionResource.metadata.namespace,"onUpdate:value":t[0]||(t[0]=e=>i.actionResource.metadata.namespace=e),disabled:!0,label:e.t("generic.namespace")},null,8,["value","label"]),(0,o.createVNode)(d,{value:c.snapshotName,"onUpdate:value":t[1]||(t[1]=e=>c.snapshotName=e),class:"mt-20",label:e.t("generic.name"),required:""},null,8,["value","label"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[2]||(t[2]=(...e)=>i.close&&i.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(u,{mode:"create",disabled:!c.snapshotName,onClick:i.save},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t})))),128))])])),_:1})}var c=a(99726),i=a(65359),d=a(37785),u=a(9980),m=a(88857),p=a(79380),h=a(32766),v=a(41837),b={name:"HarvesterVMSnapshotDialog",emits:["close"],components:{AsyncButton:m.A,Card:d.Z,LabeledInput:p.o,Banner:u.l},props:{resources:{type:Array,required:!0}},data(){return{snapshotName:"",snapshotNamespace:"",errors:[]}},computed:{...(0,i.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]}},methods:{close(){this.snapshotNamespace="",this.snapshotName="",this.$emit("close")},async save(e){if(this.actionResource)try{const t=await this.$store.dispatch("harvester/create",{metadata:{name:this.snapshotName,namespace:this.actionResource.metadata.namespace,ownerReferences:this.getOwnerReferencesFromVM(this.actionResource)},spec:{source:{apiGroup:"kubevirt.io",kind:"VirtualMachine",name:this.actionResource.metadata.name},type:v.a.SNAPSHOT},type:h.rk.BACKUP});await t.save(),this.$store.dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.modal.vmSnapshot.success",{name:this.snapshotName})},{root:!0}),this.close(),e(!0)}catch(t){const a=t?.data||t,o=(0,c.rz)(a);this["errors"]=o,e(!1)}},getOwnerReferencesFromVM(e){const t=e.metadata.name,a=e.kind,o="kubevirt.io/v1",s=e?.metadata?.uid;return[{name:t,kind:a,uid:s,apiVersion:o}]}}},f=(a(19707),a(47433));const y=(0,f.A)(b,[["render",l],["__scopeId","data-v-e167c52e"]]);var g=y},32082:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return y}});var o=a(9274);const s={class:"actions"},r={class:"buttons"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("LabeledSelect"),d=(0,o.resolveComponent)("AsyncButton"),u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(m,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.migration.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.clusterNetwork,"onUpdate:value":t[0]||(t[0]=e=>l.clusterNetwork=e),label:e.t("harvester.harvesterVlanConfigMigrateDialog.targetClusterNetwork.label"),placeholder:e.t("harvester.harvesterVlanConfigMigrateDialog.targetClusterNetwork.placeholder"),options:c.clusterNetworks},null,8,["value","label","placeholder","options"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(d,{mode:"apply",disabled:!l.clusterNetwork,onClick:c.apply},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t})))),128))])])),_:1})}var l=a(65359),c=a(32766),i=a(99726),d=a(76978),u=a(37785),m=a(9980),p=a(88857),h=a(77988),v={emits:["close"],components:{AsyncButton:p.A,Banner:m.l,Card:u.Z,LabeledSelect:h.A},props:{resources:{type:Array,required:!0}},data(){return{clusterNetwork:"",errors:[]}},computed:{...(0,l.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]},clusterNetworks(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](c.rk.CLUSTER_NETWORK);return t.filter((e=>e.id!==this.actionResource.spec?.clusterNetwork&&"mgmt"!==e.id)).map((e=>{const t=e.id,a=e.id;return{label:t,value:a}}))}},methods:{close(){this.nodeName="",this.errors=[],this.$emit("close")},async apply(e){try{const t=(0,d.o8)(this.actionResource);t.spec.clusterNetwork=this.clusterNetwork,await this.$store.dispatch("harvester/request",{url:`/v1/harvester/${c.rk.VLAN_CONFIG}s/${t.id}`,method:"PUT",data:t}),e(!0),this.close()}catch(t){const a=t?.data||t,o=(0,i.rz)(a);this["errors"]=o,e(!1)}}}},b=(a(69765),a(47433));const f=(0,b.A)(v,[["render",n],["__scopeId","data-v-283b2220"]]);var y=f},89257:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);const s={class:"text-default-text"},r={class:"actions"},n={class:"buttons"};function l(e,t,a,l,c,i){const d=(0,o.resolveComponent)("Card"),u=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(d,{ref:"modal",name:"modal","show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createElementVNode)("h4",s,(0,o.toDisplayString)(e.t("generic.tip")),1)])),body:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("p",null,null,512),[[u,e.t(e.modalData.contentKey)]])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-secondary mr-10",onClick:t[0]||(t[0]=(...e)=>i.ok&&i.ok(...e))},(0,o.toDisplayString)(e.t("generic.ok")),1)])])])),_:1},512)}var c=a(65359),i=a(37785),d={name:"HarvesterHotUnplugModal",emits:["close"],components:{Card:i.Z},props:{resources:{type:Array,required:!0}},computed:{...(0,c.aH)("action-menu",["modalData"]),...(0,c.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]}},methods:{ok(){this.modalData?.callback("ok"),this.$emit("close")}}},u=(a(75290),a(47433));const m=(0,u.A)(d,[["render",l],["__scopeId","data-v-6bf42877"]]);var p=m},80296:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return g}});var o=a(9274);const s={class:"text-default-text"},r={class:"pl-10 pr-10"},n={class:"bottom"},l={class:"buttons"};function c(e,t,a,c,i,d){const u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("AsyncButton"),p=(0,o.resolveComponent)("Card"),h=(0,o.resolveComponent)("app-modal"),v=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(h,{class:"restart-modal",name:"restartDialog",width:600,height:"auto","click-to-close":!1,onClose:d.close},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{class:"prompt-restart","show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",s,null,512),[[v,e.t("harvester.modal.restart.title")]])])),body:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("div",r,null,512),[[v,e.t("harvester.modal.restart.tip")]])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",n,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t,color:"error",label:e},null,8,["label"])))),128)),(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[0]||(t[0]=(...e)=>d.close&&d.close(...e))},(0,o.toDisplayString)(e.t("harvester.modal.restart.cancel")),1),(0,o.createVNode)(m,{mode:"restart",onClick:d.apply},null,8,["onClick"])])])])),_:1})])),_:1},8,["onClose"])}var i=a(65359),d=a(88857),u=a(37785),m=a(9980),p=a(99726),h=a(162),v=a(4364),b={emits:["close"],components:{AppModal:h.A,Card:u.Z,AsyncButton:d.A,Banner:m.l},props:{vm:{type:Object,required:!0}},data(){return{errors:[],resolve:null}},computed:{...(0,i.L8)({t:"i18n/t"})},methods:{close(){this.resolve(),this.$emit("close")},apply(e){try{this.vm.doActionGrowl("restart",{}),e(!0),this.close()}catch(t){v.error(t),this.errors=(0,p.rz)(t),e(!1)}}}},f=(a(38917),a(47433));const y=(0,f.A)(b,[["render",c],["__scopeId","data-v-574c27ab"]]);var g=y},63457:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return C}});var o=a(9274);const s={class:"actions"},r={class:"buttons"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("LabeledInput"),d=(0,o.resolveComponent)("LabeledSelect"),u=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.restoreSnapshot.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.name,"onUpdate:value":t[0]||(t[0]=e=>l.name=e),label:e.t("harvester.modal.restoreSnapshot.name"),required:""},null,8,["value","label"]),c.showStorageClass?((0,o.openBlock)(),(0,o.createBlock)(d,{key:0,value:l.storageClassName,"onUpdate:value":t[1]||(t[1]=e=>l.storageClassName=e),options:c.storageClassOptions,label:e.t("harvester.storage.storageClass.label"),class:"mt-20",required:""},null,8,["value","options","label"])):(0,o.createCommentVNode)("",!0)])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[2]||(t[2]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(u,{mode:"create",disabled:c.disableSave,onClick:c.save},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t})))),128))])])),_:1})}var l=a(65359),c=a(99726),i=a(37785),d=a(9980),u=a(88857),m=a(79380),p=a(77988),h=a(2602),v=a(88339),b=a(35664),f={name:"HarvesterRestoreSnapshotDialog",emits:["close"],components:{AsyncButton:u.A,Banner:d.l,Card:i.Z,LabeledInput:m.o,LabeledSelect:p.A},props:{resources:{type:Array,required:!0}},data(){return{name:"",errors:[],storageClassName:""}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={storages:this.$store.dispatch(`${e}/findAll`,{type:b.fJ})};if(await(0,v.kR)(t),this.showStorageClass){const t=this.$store.getters[`${e}/all`](b.fJ).find((e=>e.isDefault)),a=this.resources[0].metadata?.annotations[h.r.STORAGE_CLASS];this["storageClassName"]=a||t?.metadata?.name||"longhorn"}},computed:{...(0,l.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]||{}},disableSave(){return!(this.name&&(!this.showStorageClass||this.storageClassName))},storageClassOptions(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](b.fJ),a=t.filter((e=>!e.parameters?.backingImage)).filter((e=>e.provisioner===this.actionResource.metadata?.annotations[h.r.STORAGE_PROVISIONER])).map((e=>{const t=e.isDefault?`${e.name} (${this.t("generic.default")})`:e.name;return{label:t,value:e.name}}))||[];return a},showStorageClass(){return"data"===this.actionResource?.volume?.source}},methods:{close(){this.name="",this.storageClassName="",this.$emit("close")},async save(e){try{const t={name:this.name};this.showStorageClass&&(t.storageClassName=this.storageClassName);const a=await this.actionResource.doAction("restore",t);if(200===a._status||204===a._status)this.$store.dispatch("growl/success",{title:this.t("harvester.notification.title.succeed"),message:this.t("harvester.modal.restoreSnapshot.success",{name:this.name})},{root:!0}),this.close(),e(!0);else{const t=[a?.data]||0;this["errors"]=t,e(!1)}}catch(t){const a=t?.data||t,o=(0,c.rz)(a);this["errors"]=o,e(!1)}}}},y=(a(6617),a(47433));const g=(0,y.A)(f,[["render",n],["__scopeId","data-v-7d03279c"]]);var C=g},81825:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return b}});var o=a(9274);const s={class:"actions"},r={class:"buttons"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("LabeledInput"),d=(0,o.resolveComponent)("AsyncButton"),u=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(m,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.snapshot.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.name,"onUpdate:value":t[0]||(t[0]=e=>l.name=e),label:e.t("harvester.modal.snapshot.name"),required:""},null,8,["value","label"])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[1]||(t[1]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(d,{mode:"create",disabled:c.disableSave,onClick:c.save},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t,color:"error",label:e},null,8,["label"])))),128))])])),_:1})}var l=a(65359),c=a(99726),i=a(37785),d=a(9980),u=a(88857),m=a(79380),p={name:"HarvesterSnapshotDialog",emits:["close"],components:{AsyncButton:u.A,Banner:d.l,Card:i.Z,LabeledInput:m.o},props:{resources:{type:Array,required:!0}},data(){return{name:"",errors:[]}},computed:{...(0,l.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]},disableSave(){return!this.name}},methods:{close(){this.name="",this.$emit("close")},async save(e){try{const t=await this.actionResource.doAction("snapshot",{name:this.name});if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("harvester.notification.title.succeed"),message:this.t("harvester.modal.snapshot.message.success",{name:this.name})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,c.rz)(a);this["errors"]=o,e(!1)}}}},h=(a(43644),a(47433));const v=(0,h.A)(p,[["render",n],["__scopeId","data-v-290c9c84"]]);var b=v},4767:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const s={class:"actions"},r={class:"buttons"};function n(e,t,a,n,l,c){const i=(0,o.resolveComponent)("Checkbox"),d=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("Card");return(0,o.openBlock)(),(0,o.createBlock)(p,{"show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.modal.volumeClone.title")),1)])),body:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:l.cloneData,"onUpdate:value":t[0]||(t[0]=e=>l.cloneData=e),class:"mb-10","label-key":"harvester.modal.cloneVM.type"},null,8,["value"]),(0,o.withDirectives)((0,o.createVNode)(d,{value:l.name,"onUpdate:value":t[1]||(t[1]=e=>l.name=e),class:"mb-20",label:e.t("harvester.modal.volumeClone.name"),required:""},null,8,["value","label"]),[[o.vShow,l.cloneData]])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[2]||(t[2]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("generic.cancel")),1),(0,o.createVNode)(u,{mode:"create",disabled:c.disableSave,onClick:c.save},null,8,["disabled","onClick"])]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(l.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t})))),128))])])),_:1})}var l=a(65359),c=a(99726),i=a(37785),d=a(9980),u=a(88857),m=a(79380),p=a(42200),h={name:"HarvesterPvcCloneDialog",emits:["close"],components:{AsyncButton:u.A,Banner:d.l,Card:i.Z,LabeledInput:m.o,Checkbox:p.S},props:{resources:{type:Array,required:!0}},data(){return{name:"",cloneData:!0,errors:[]}},computed:{...(0,l.L8)({t:"i18n/t"}),actionResource(){return this.resources[0]},disableSave(){return this.cloneData&&!this.name}},methods:{close(){this.name="",this.$emit("close")},async save(e){if(!this.cloneData)return this.resources[0].goToClone(),e(!1),void this.close();try{const t=await this.actionResource.doAction("clone",{name:this.name});if(200===t._status||204===t._status)this.$store.dispatch("growl/success",{title:this.t("harvester.notification.title.succeed"),message:this.t("harvester.modal.volumeClone.message.success",{name:this.name})},{root:!0}),this.close(),e(!0);else{const a=[t?.data]||0;this["errors"]=a,e(!1)}}catch(t){const a=t?.data||t,o=(0,c.rz)(a);this["errors"]=o,e(!1)}}}},v=(a(22105),a(47433));const b=(0,v.A)(h,[["render",n],["__scopeId","data-v-571d94b4"]]);var f=b},82398:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".copy-to-clipboard-text[data-v-d8c131ea]{white-space:nowrap}.copy-to-clipboard-text.plain[data-v-d8c131ea]{color:var(--body-text)}.copy-to-clipboard-text.plain[data-v-d8c131ea]:hover{text-decoration:none}.copy-to-clipboard-text.copied[data-v-d8c131ea]{pointer-events:none;color:var(--success)}",""]),t["default"]=l},49530:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".addon.with-tooltip[data-v-de90d6f0]{position:relative;right:30px}",""]),t["default"]=l},54091:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-2bfd791b],.buttons[data-v-2bfd791b]{width:100%}.buttons[data-v-2bfd791b]{display:flex;justify-content:flex-end}",""]),t["default"]=l},57359:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".modal-container[data-v-530bd8a8]{max-width:400px}.actions[data-v-530bd8a8]{width:100%;text-align:right}",""]),t["default"]=l},77688:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-18d7e6fa]{text-align:right}",""]),t["default"]=l},8796:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-336a14ce],.buttons[data-v-336a14ce]{width:100%}.buttons[data-v-336a14ce]{display:flex;justify-content:flex-end}",""]),t["default"]=l},83682:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-44897704],.buttons[data-v-44897704]{width:100%}.buttons[data-v-44897704]{display:flex;justify-content:flex-end}",""]),t["default"]=l},75230:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-bcaa7c4a],.buttons[data-v-bcaa7c4a]{width:100%}.buttons[data-v-bcaa7c4a]{display:flex;justify-content:flex-end}",""]),t["default"]=l},46853:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-0cd7660b],.buttons[data-v-0cd7660b]{width:100%}.buttons[data-v-0cd7660b]{display:flex;justify-content:flex-end}",""]),t["default"]=l},63330:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".body[data-v-093a01ba]{display:flex;flex-direction:column}.body-field[data-v-093a01ba]{margin-top:10px}.actions[data-v-093a01ba],.buttons[data-v-093a01ba]{width:100%}.buttons[data-v-093a01ba]{display:flex;justify-content:flex-end}",""]),t["default"]=l},87920:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-e57e8be6],.buttons[data-v-e57e8be6]{width:100%}.buttons[data-v-e57e8be6]{display:flex;justify-content:flex-end}",""]),t["default"]=l},48595:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-59cc760a],.buttons[data-v-59cc760a]{width:100%}.buttons[data-v-59cc760a]{display:flex;justify-content:flex-end}",""]),t["default"]=l},36286:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-b0964c8c],.buttons[data-v-b0964c8c]{width:100%}.buttons[data-v-b0964c8c]{display:flex;justify-content:flex-end}",""]),t["default"]=l},55235:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-8cf7507a],.buttons[data-v-8cf7507a]{width:100%}.buttons[data-v-8cf7507a]{display:flex;justify-content:flex-end}",""]),t["default"]=l},15475:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-1106b2cc],.buttons[data-v-1106b2cc]{width:100%}.buttons[data-v-1106b2cc]{display:flex;justify-content:flex-end}",""]),t["default"]=l},31409:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-f2cea8a0]{width:100%}.vm-list[data-v-f2cea8a0]{display:flex;flex-wrap:wrap}.buttons[data-v-f2cea8a0]{display:flex;justify-content:flex-end;width:100%}",""]),t["default"]=l},49628:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-44239a1b],.buttons[data-v-44239a1b]{width:100%}.buttons[data-v-44239a1b]{display:flex;justify-content:flex-end}",""]),t["default"]=l},82309:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-5d55ff4f],.buttons[data-v-5d55ff4f]{width:100%}.buttons[data-v-5d55ff4f]{display:flex;justify-content:flex-end}",""]),t["default"]=l},95698:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-60048f60],.buttons[data-v-60048f60]{width:100%}.buttons[data-v-60048f60]{display:flex;justify-content:flex-end}",""]),t["default"]=l},61009:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-6701b372],.buttons[data-v-6701b372]{width:100%}.buttons[data-v-6701b372]{display:flex;justify-content:flex-end}",""]),t["default"]=l},84859:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-e167c52e],.buttons[data-v-e167c52e]{width:100%}.buttons[data-v-e167c52e]{display:flex;justify-content:flex-end}",""]),t["default"]=l},68901:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-283b2220],.buttons[data-v-283b2220]{width:100%}.buttons[data-v-283b2220]{display:flex;justify-content:flex-end}",""]),t["default"]=l},76986:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-6bf42877],.buttons[data-v-6bf42877]{width:100%}.buttons[data-v-6bf42877]{display:flex;justify-content:flex-end}",""]),t["default"]=l},86373:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".restart-modal[data-v-574c27ab]{z-index:45}.prompt-restart[data-v-574c27ab]{margin:0}.bottom[data-v-574c27ab]{display:flex;flex-direction:column;flex:1}.bottom .banner[data-v-574c27ab]{margin-top:0}.bottom .buttons[data-v-574c27ab]{display:flex;justify-content:flex-end;width:100%}",""]),t["default"]=l},74713:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-7d03279c],.buttons[data-v-7d03279c]{width:100%}.buttons[data-v-7d03279c]{display:flex;justify-content:flex-end}",""]),t["default"]=l},88924:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-290c9c84],.buttons[data-v-290c9c84]{width:100%}.buttons[data-v-290c9c84]{display:flex;justify-content:flex-end}",""]),t["default"]=l},9817:function(e,t,a){"use strict";a.r(t);var o=a(36758),s=a.n(o),r=a(40935),n=a.n(r),l=n()(s());l.push([e.id,".actions[data-v-571d94b4],.buttons[data-v-571d94b4]{width:100%}.buttons[data-v-571d94b4]{display:flex;justify-content:flex-end}",""]),t["default"]=l},48734:function(e,t,a){var o=a(82398);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("3ce8dc3a",o,!0,{sourceMap:!1,shadowMode:!1})},99738:function(e,t,a){var o=a(49530);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("193727f5",o,!0,{sourceMap:!1,shadowMode:!1})},23819:function(e,t,a){var o=a(54091);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("0d6331e5",o,!0,{sourceMap:!1,shadowMode:!1})},51375:function(e,t,a){var o=a(57359);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("49b8e237",o,!0,{sourceMap:!1,shadowMode:!1})},12408:function(e,t,a){var o=a(77688);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("1bd6ffc2",o,!0,{sourceMap:!1,shadowMode:!1})},89404:function(e,t,a){var o=a(8796);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("5ab9c184",o,!0,{sourceMap:!1,shadowMode:!1})},97730:function(e,t,a){var o=a(83682);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("e3d240be",o,!0,{sourceMap:!1,shadowMode:!1})},50142:function(e,t,a){var o=a(75230);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("a9664cc8",o,!0,{sourceMap:!1,shadowMode:!1})},34661:function(e,t,a){var o=a(46853);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("fdfdda18",o,!0,{sourceMap:!1,shadowMode:!1})},24738:function(e,t,a){var o=a(63330);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("f98e315a",o,!0,{sourceMap:!1,shadowMode:!1})},70576:function(e,t,a){var o=a(87920);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("8e476556",o,!0,{sourceMap:!1,shadowMode:!1})},79539:function(e,t,a){var o=a(48595);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("125688d0",o,!0,{sourceMap:!1,shadowMode:!1})},9822:function(e,t,a){var o=a(36286);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("72a488c1",o,!0,{sourceMap:!1,shadowMode:!1})},88547:function(e,t,a){var o=a(55235);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("5b5ddc36",o,!0,{sourceMap:!1,shadowMode:!1})},72e3:function(e,t,a){var o=a(15475);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("7d8a92dc",o,!0,{sourceMap:!1,shadowMode:!1})},10865:function(e,t,a){var o=a(31409);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("8948f2e0",o,!0,{sourceMap:!1,shadowMode:!1})},84700:function(e,t,a){var o=a(49628);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("5acd8c36",o,!0,{sourceMap:!1,shadowMode:!1})},85381:function(e,t,a){var o=a(82309);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("4ddd92fd",o,!0,{sourceMap:!1,shadowMode:!1})},84594:function(e,t,a){var o=a(95698);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("10f5f27c",o,!0,{sourceMap:!1,shadowMode:!1})},16401:function(e,t,a){var o=a(61009);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("5bbfbea4",o,!0,{sourceMap:!1,shadowMode:!1})},19707:function(e,t,a){var o=a(84859);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("548213e4",o,!0,{sourceMap:!1,shadowMode:!1})},69765:function(e,t,a){var o=a(68901);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("164e40ef",o,!0,{sourceMap:!1,shadowMode:!1})},75290:function(e,t,a){var o=a(76986);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("64c5083c",o,!0,{sourceMap:!1,shadowMode:!1})},38917:function(e,t,a){var o=a(86373);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("37a21e9a",o,!0,{sourceMap:!1,shadowMode:!1})},6617:function(e,t,a){var o=a(74713);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("6202193a",o,!0,{sourceMap:!1,shadowMode:!1})},43644:function(e,t,a){var o=a(88924);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("3204fb1c",o,!0,{sourceMap:!1,shadowMode:!1})},22105:function(e,t,a){var o=a(9817);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var s=a(74825).A;s("886ce63c",o,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.dialog.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.dialog.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.dialog.js.map new file mode 100644 index 00000000..c572f987 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.dialog.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.dialog.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?432c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/UnitInput.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/UnitInput.vue?cb25","webpack://harvester-1.5.0-dev/./dialog/CloneVmDialog.vue","webpack://harvester-1.5.0-dev/./dialog/CloneVmDialog.vue?49d0","webpack://harvester-1.5.0-dev/./dialog/ConfirmExecutionDialog.vue","webpack://harvester-1.5.0-dev/./dialog/ConfirmExecutionDialog.vue?0c5b","webpack://harvester-1.5.0-dev/./dialog/ConfirmRelatedToRemoveDialog.vue","webpack://harvester-1.5.0-dev/./dialog/ConfirmRelatedToRemoveDialog.vue?1adc","webpack://harvester-1.5.0-dev/./dialog/DeepCloneVmDialog.vue","webpack://harvester-1.5.0-dev/./dialog/DeepCloneVmDialog.vue?a809","webpack://harvester-1.5.0-dev/./dialog/EnablePciPassthrough.vue","webpack://harvester-1.5.0-dev/./dialog/EnablePciPassthrough.vue?7aac","webpack://harvester-1.5.0-dev/./dialog/EnableSriovDevice.vue","webpack://harvester-1.5.0-dev/./dialog/EnableSriovDevice.vue?8f35","webpack://harvester-1.5.0-dev/./dialog/EnableUSBPassthrough.vue","webpack://harvester-1.5.0-dev/./dialog/EnableUSBPassthrough.vue?9fe5","webpack://harvester-1.5.0-dev/./dialog/EnableVGpuDevice.vue","webpack://harvester-1.5.0-dev/./dialog/EnableVGpuDevice.vue?9f72","webpack://harvester-1.5.0-dev/./dialog/HarvesterAddHotplugModal.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterAddHotplugModal.vue?07c3","webpack://harvester-1.5.0-dev/./dialog/HarvesterBackupModal.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterBackupModal.vue?cdcc","webpack://harvester-1.5.0-dev/./dialog/HarvesterCloneTemplate.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterCloneTemplate.vue?bfbb","webpack://harvester-1.5.0-dev/./dialog/HarvesterEjectCDROMDialog.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterEjectCDROMDialog.vue?c94a","webpack://harvester-1.5.0-dev/./dialog/HarvesterExportImageDialog.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterExportImageDialog.vue?fddf","webpack://harvester-1.5.0-dev/./dialog/HarvesterMaintenanceDialog.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterMaintenanceDialog.vue?0396","webpack://harvester-1.5.0-dev/./dialog/HarvesterMigrationDialog.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterMigrationDialog.vue?c7cf","webpack://harvester-1.5.0-dev/./dialog/HarvesterQuotaDialog.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterQuotaDialog.vue?8e82","webpack://harvester-1.5.0-dev/./dialog/HarvesterRestoreDialog.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterRestoreDialog.vue?7100","webpack://harvester-1.5.0-dev/./dialog/HarvesterUnplugVolume.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterUnplugVolume.vue?05b0","webpack://harvester-1.5.0-dev/./dialog/HarvesterVMSnapshotDialog.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterVMSnapshotDialog.vue?8205","webpack://harvester-1.5.0-dev/./dialog/HarvesterVlanConfigMigrateDialog.vue","webpack://harvester-1.5.0-dev/./dialog/HarvesterVlanConfigMigrateDialog.vue?cfd4","webpack://harvester-1.5.0-dev/./dialog/MessageBox.vue","webpack://harvester-1.5.0-dev/./dialog/MessageBox.vue?1e05","webpack://harvester-1.5.0-dev/./dialog/RestartVMDialog.vue","webpack://harvester-1.5.0-dev/./dialog/RestartVMDialog.vue?01ab","webpack://harvester-1.5.0-dev/./dialog/RestoreSnapshotDialog.vue","webpack://harvester-1.5.0-dev/./dialog/RestoreSnapshotDialog.vue?8f75","webpack://harvester-1.5.0-dev/./dialog/SnapshotDialog.vue","webpack://harvester-1.5.0-dev/./dialog/SnapshotDialog.vue?4398","webpack://harvester-1.5.0-dev/./dialog/VolumeCloneDialog.vue","webpack://harvester-1.5.0-dev/./dialog/VolumeCloneDialog.vue?4fac","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?c2d2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/UnitInput.vue?0347","webpack://harvester-1.5.0-dev/./dialog/CloneVmDialog.vue?33b8","webpack://harvester-1.5.0-dev/./dialog/ConfirmExecutionDialog.vue?c058","webpack://harvester-1.5.0-dev/./dialog/ConfirmRelatedToRemoveDialog.vue?09ea","webpack://harvester-1.5.0-dev/./dialog/DeepCloneVmDialog.vue?f893","webpack://harvester-1.5.0-dev/./dialog/EnablePciPassthrough.vue?dbc3","webpack://harvester-1.5.0-dev/./dialog/EnableSriovDevice.vue?d276","webpack://harvester-1.5.0-dev/./dialog/EnableUSBPassthrough.vue?ee36","webpack://harvester-1.5.0-dev/./dialog/EnableVGpuDevice.vue?79c8","webpack://harvester-1.5.0-dev/./dialog/HarvesterAddHotplugModal.vue?d3ca","webpack://harvester-1.5.0-dev/./dialog/HarvesterBackupModal.vue?26f2","webpack://harvester-1.5.0-dev/./dialog/HarvesterCloneTemplate.vue?6c28","webpack://harvester-1.5.0-dev/./dialog/HarvesterEjectCDROMDialog.vue?9189","webpack://harvester-1.5.0-dev/./dialog/HarvesterExportImageDialog.vue?176f","webpack://harvester-1.5.0-dev/./dialog/HarvesterMaintenanceDialog.vue?3757","webpack://harvester-1.5.0-dev/./dialog/HarvesterMigrationDialog.vue?904e","webpack://harvester-1.5.0-dev/./dialog/HarvesterQuotaDialog.vue?a520","webpack://harvester-1.5.0-dev/./dialog/HarvesterRestoreDialog.vue?dcdc","webpack://harvester-1.5.0-dev/./dialog/HarvesterUnplugVolume.vue?9069","webpack://harvester-1.5.0-dev/./dialog/HarvesterVMSnapshotDialog.vue?dd4f","webpack://harvester-1.5.0-dev/./dialog/HarvesterVlanConfigMigrateDialog.vue?35cd","webpack://harvester-1.5.0-dev/./dialog/MessageBox.vue?33e3","webpack://harvester-1.5.0-dev/./dialog/RestartVMDialog.vue?9c2e","webpack://harvester-1.5.0-dev/./dialog/RestoreSnapshotDialog.vue?902f","webpack://harvester-1.5.0-dev/./dialog/SnapshotDialog.vue?56ec","webpack://harvester-1.5.0-dev/./dialog/VolumeCloneDialog.vue?bfd0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboardText.vue?a90d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/UnitInput.vue?ac4c","webpack://harvester-1.5.0-dev/./dialog/CloneVmDialog.vue?dffe","webpack://harvester-1.5.0-dev/./dialog/ConfirmExecutionDialog.vue?e8da","webpack://harvester-1.5.0-dev/./dialog/ConfirmRelatedToRemoveDialog.vue?8a7e","webpack://harvester-1.5.0-dev/./dialog/DeepCloneVmDialog.vue?e5af","webpack://harvester-1.5.0-dev/./dialog/EnablePciPassthrough.vue?7b94","webpack://harvester-1.5.0-dev/./dialog/EnableSriovDevice.vue?9767","webpack://harvester-1.5.0-dev/./dialog/EnableUSBPassthrough.vue?4051","webpack://harvester-1.5.0-dev/./dialog/EnableVGpuDevice.vue?5b3d","webpack://harvester-1.5.0-dev/./dialog/HarvesterAddHotplugModal.vue?3ffc","webpack://harvester-1.5.0-dev/./dialog/HarvesterBackupModal.vue?c8f0","webpack://harvester-1.5.0-dev/./dialog/HarvesterCloneTemplate.vue?207e","webpack://harvester-1.5.0-dev/./dialog/HarvesterEjectCDROMDialog.vue?7e02","webpack://harvester-1.5.0-dev/./dialog/HarvesterExportImageDialog.vue?2279","webpack://harvester-1.5.0-dev/./dialog/HarvesterMaintenanceDialog.vue?d3f4","webpack://harvester-1.5.0-dev/./dialog/HarvesterMigrationDialog.vue?0cd9","webpack://harvester-1.5.0-dev/./dialog/HarvesterQuotaDialog.vue?f355","webpack://harvester-1.5.0-dev/./dialog/HarvesterRestoreDialog.vue?644a","webpack://harvester-1.5.0-dev/./dialog/HarvesterUnplugVolume.vue?ce5e","webpack://harvester-1.5.0-dev/./dialog/HarvesterVMSnapshotDialog.vue?04b4","webpack://harvester-1.5.0-dev/./dialog/HarvesterVlanConfigMigrateDialog.vue?2784","webpack://harvester-1.5.0-dev/./dialog/MessageBox.vue?d25b","webpack://harvester-1.5.0-dev/./dialog/RestartVMDialog.vue?70b1","webpack://harvester-1.5.0-dev/./dialog/RestoreSnapshotDialog.vue?66ef","webpack://harvester-1.5.0-dev/./dialog/SnapshotDialog.vue?25ee","webpack://harvester-1.5.0-dev/./dialog/VolumeCloneDialog.vue?94b4"],"sourcesContent":["<script>\nimport { copyTextToClipboard } from '@shell/utils/clipboard';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nexport default {\n emits: ['error'],\n\n props: {\n text: {\n type: String,\n required: true,\n },\n // Show as plain - don't show in link style\n plain: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return { copied: false };\n },\n\n methods: {\n clicked(event) {\n if (!this.copied) {\n event.preventDefault();\n copyTextToClipboard(this.text).then(() => {\n this.copied = true;\n\n let t = event.target;\n\n if (t.tagName === 'I') {\n t = t.parentElement || t;\n }\n setTimeout(() => {\n this.copied = false;\n }, 500);\n }).catch((e) => {\n this.$emit('error', exceptionToErrorsArray(e));\n });\n }\n },\n }\n};\n</script>\n\n<template>\n <a\n v-if=\"text\"\n class=\"copy-to-clipboard-text\"\n :class=\"{ 'copied': copied, 'plain': plain}\"\n href=\"#\"\n @click=\"clicked\"\n >\n {{ text }} <i\n class=\"icon\"\n :class=\"{ 'icon-copy': !copied, 'icon-checkmark': copied}\"\n />\n </a>\n</template>\n<style lang=\"scss\" scoped>\n .copy-to-clipboard-text {\n white-space: nowrap;\n &.plain {\n color: var(--body-text);\n\n &:hover {\n text-decoration: none;\n }\n }\n\n &.copied {\n pointer-events: none;\n color: var(--success);\n }\n }\n</style>\n","import { render } from \"./CopyToClipboardText.vue?vue&type=template&id=d8c131ea&scoped=true\"\nimport script from \"./CopyToClipboardText.vue?vue&type=script&lang=js\"\nexport * from \"./CopyToClipboardText.vue?vue&type=script&lang=js\"\n\nimport \"./CopyToClipboardText.vue?vue&type=style&index=0&id=d8c131ea&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d8c131ea\"]])\n\nexport default __exports__","<script>\nimport { parseSi, formatSi, UNITS, FRACTIONAL } from '@shell/utils/units';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { _EDIT } from '@shell/config/query-params';\n\nexport default {\n components: { LabeledInput },\n\n emits: ['update:value', 'update:validation', 'change', 'blur'],\n\n props: {\n /**\n * Convert output to string\n * Output will also be a string regardless of this prop if outputModifier = true\n */\n outputAs: {\n type: String,\n default: 'number',\n },\n\n /**\n * Append exponential modifier in output, eg \"123Mi\"\n * If this is false while inputExponent is true, the output val will be converted to base units\n * eg user is views in terms of MiB but integer values corresponding to B are actually emitted\n */\n outputModifier: {\n type: Boolean,\n default: false\n },\n\n /**\n * Set modifier on base unit - positive vals map to UNITS array, negative to FRACTIONAL\n * String input values with SI notation will be converted to this measurement unit,\n * eg \"1Gi\" will become \"1024Mi\" if this is set to 2\n * UNITS = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n * FRACTIONAL = ['', 'm', 'u', 'n', 'p', 'f', 'a', 'z', 'y'];\n */\n inputExponent: {\n type: Number,\n default: 0,\n },\n\n /**\n * Combines with inputExponent to make displayed unit.\n * Use 'suffix' if the input's units are strictly for display\n */\n baseUnit: {\n type: String,\n default: 'B',\n },\n\n /**\n * Hide arrows on number input when it overlaps with the unit\n */\n hideArrows: {\n type: Boolean,\n default: false\n },\n\n /**\n * If set to 1024, binary modifier will be used eg MiB instead of MB\n */\n increment: {\n type: Number,\n default: 1000,\n },\n\n /**\n * Ignore baseUnit and inputExponent in favor of a display-only suffix\n * display/emit integers without SI conversion\n */\n suffix: {\n type: String,\n default: null,\n },\n\n /**\n * LabeledInput props\n */\n mode: {\n type: String,\n default: _EDIT\n },\n\n value: {\n type: [Number, String],\n default: null\n },\n\n label: {\n type: String,\n default: null\n },\n\n labelKey: {\n type: String,\n default: null\n },\n\n tooltip: {\n type: [String, Object],\n default: null\n },\n\n tooltipKey: {\n type: String,\n default: null\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n min: {\n type: [Number, String],\n default: 0\n },\n\n placeholder: {\n type: [String, Number],\n default: ''\n },\n\n /**\n * Optionally delay on input while typing\n */\n delay: {\n type: Number,\n default: 0\n },\n\n positive: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n unit() {\n let out;\n\n if ( this.inputExponent >= 0 ) {\n out = UNITS[this.inputExponent];\n } else {\n out = FRACTIONAL[-1 * this.inputExponent];\n }\n if (this.increment === 1024 && out) {\n out += 'i';\n }\n\n return out;\n },\n\n /**\n * Parse string with unit modifier to base unit eg \"1m\" -> 0.001\n */\n parsedValue() {\n return typeof this.value === 'string' ? parseSi(this.value) : this.value;\n },\n\n /**\n * Convert integer value\n */\n displayValue() {\n let displayValue = '';\n\n if ( this.parsedValue || this.parsedValue === 0) {\n displayValue = formatSi(this.parsedValue, {\n increment: this.increment,\n addSuffix: false,\n maxExponent: this.inputExponent,\n minExponent: this.inputExponent,\n });\n }\n\n return displayValue ;\n },\n\n /**\n * Conditionally display value with unit or SI suffix\n */\n displayUnit() {\n if (this.suffix) {\n return this.suffix;\n }\n\n return this.unit + this.baseUnit;\n }\n },\n\n methods: {\n focus() {\n const comp = this.$refs.value;\n\n if (comp) {\n comp.focus();\n }\n },\n\n update(inputValue) {\n let out = inputValue === '' ? null : inputValue;\n\n if (this.positive && inputValue < 0) {\n out = 0;\n }\n\n if (this.outputModifier) {\n out = out === null ? null : `${ inputValue }${ this.unit }`;\n } else if ( this.outputAs === 'string' ) {\n out = out === null ? '' : `${ inputValue }`;\n } else if (out) {\n out = this.unit ? parseSi(`${ out }${ this.unit }`) : parseInt(out);\n }\n\n this.$emit('update:value', out);\n },\n }\n};\n</script>\n\n<template>\n <LabeledInput\n ref=\"value\"\n :value=\"displayValue\"\n v-bind=\"$attrs\"\n type=\"number\"\n :min=\"min\"\n :mode=\"mode\"\n :label=\"label\"\n :delay=\"delay\"\n :label-key=\"labelKey\"\n :tooltip=\"tooltip\"\n :tooltip-key=\"tooltipKey\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :hide-arrows=\"hideArrows\"\n @change=\"update($event.target.value)\"\n @blur=\"update($event.target.value)\"\n >\n <template #suffix>\n <div\n v-if=\"displayUnit\"\n class=\"addon\"\n :class=\"{'with-tooltip': tooltip || tooltipKey}\"\n >\n {{ displayUnit }}\n </div>\n </template>\n </LabeledInput>\n</template>\n\n<style lang=\"scss\" scoped>\n .addon.with-tooltip {\n position: relative;\n right: 30px;\n }\n</style>\n","import { render } from \"./UnitInput.vue?vue&type=template&id=de90d6f0&scoped=true\"\nimport script from \"./UnitInput.vue?vue&type=script&lang=js\"\nexport * from \"./UnitInput.vue?vue&type=script&lang=js\"\n\nimport \"./UnitInput.vue?vue&type=style&index=0&id=de90d6f0&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-de90d6f0\"]])\n\nexport default __exports__","<script>\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { mapGetters } from 'vuex';\n\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\n\nexport default {\n name: 'CloneVMModal',\n\n emits: ['close'],\n\n components: {\n AsyncButton, Banner, Checkbox, Card, LabeledInput\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n name: '',\n cloneData: true,\n errors: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n },\n\n methods: {\n close() {\n this.name = '';\n this.$emit('close');\n },\n\n async create(buttonCb) {\n // shadow clone\n if (!this.cloneData) {\n this.resources[0].goToClone();\n buttonCb(false);\n this.close();\n\n return;\n }\n\n // deep clone\n try {\n const res = await this.actionResource.doAction('clone', { targetVm: this.name }, {}, false);\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch('growl/success', {\n title: this.t('harvester.notification.title.succeed'),\n message: this.t('harvester.modal.cloneVM.message.success', { name: this.name })\n }, { root: true });\n\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n },\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.cloneVM.title') }}\n </template>\n\n <template #body>\n <Checkbox\n v-model:value=\"cloneData\"\n class=\"mb-10\"\n label-key=\"harvester.modal.cloneVM.type\"\n />\n\n <LabeledInput\n v-show=\"cloneData\"\n v-model:value=\"name\"\n class=\"mb-20\"\n :label=\"t('harvester.modal.cloneVM.name')\"\n required\n />\n </template>\n\n <template\n #actions\n class=\"actions\"\n >\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"create\"\n :action-label=\"cloneData ? t('harvester.modal.cloneVM.action.create') : t('harvester.modal.cloneVM.action.clone')\"\n :disabled=\"cloneData && !name\"\n @click=\"create\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./CloneVmDialog.vue?vue&type=template&id=2bfd791b&scoped=true\"\nimport script from \"./CloneVmDialog.vue?vue&type=script&lang=js\"\nexport * from \"./CloneVmDialog.vue?vue&type=script&lang=js\"\n\nimport \"./CloneVmDialog.vue?vue&type=style&index=0&id=2bfd791b&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2bfd791b\"]])\n\nexport default __exports__","<script>\nimport { mapState } from 'vuex';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { alternateLabel } from '@shell/utils/platform';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { Banner } from '@components/Banner';\nimport { Card } from '@components/Card';\nimport { escapeHtml } from '@shell/utils/string';\n\n/**\n * @name ConfirmExecutionDialog\n * @description Dialog component to confirm the related resources before executing the action.\n */\nexport default {\n name: 'ConfirmExecutionDialog',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Banner,\n Card,\n },\n\n props: {\n /**\n * @property resources to be deleted.\n * @type {Resource[]} Array of the resource model's instance\n */\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return { errors: [] };\n },\n\n computed: {\n ...mapState('action-menu', ['modalData']),\n\n warningMessageKey() {\n return this.modalData.warningMessageKey;\n },\n\n names() {\n return this.resources.map((obj) => obj.nameDisplay).slice(0, 5);\n },\n\n resourceNames() {\n return this.names.reduce((res, name, i) => {\n if (i >= 5) {\n return res;\n }\n res += `<b>${ escapeHtml(name) }</b>`;\n if (i === this.names.length - 1) {\n res += this.plusMore;\n } else {\n res += i === this.resources.length - 2 ? ' and ' : ', ';\n }\n\n return res;\n }, '');\n },\n\n plusMore() {\n const remaining = this.resources.length - this.names.length;\n\n return this.t('dialog.confirmExecution.andOthers', { count: remaining });\n },\n\n type() {\n const types = new Set(this.resources.reduce((array, each) => {\n array.push(each.type);\n\n return array;\n }, []));\n\n if (types.size > 1) {\n return this.t('generic.resource', { count: this.resources.length });\n }\n\n const schema = this.resources[0]?.schema;\n\n if ( !schema ) {\n return `resource${ this.resources.length === 1 ? '' : 's' }`;\n }\n\n return this.$store.getters['type-map/labelFor'](schema, this.resources.length);\n },\n\n protip() {\n return this.t('dialog.confirmExecution.protip', { alternateLabel });\n },\n },\n\n methods: {\n escapeHtml,\n\n close() {\n this.errors = [];\n this.$emit('close');\n },\n\n async apply(buttonDone) {\n try {\n for (const resource of this.resources) {\n await resource.doActionGrowl(this.modalData.action, {});\n }\n buttonDone(true);\n this.close();\n } catch (e) {\n this.errors = exceptionToErrorsArray(e);\n buttonDone(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n <h4 class=\"text-default-text\">\n {{ t('dialog.confirmExecution.title') }}\n </h4>\n </template>\n\n <template #body>\n <div class=\"pl-10 pr-10\">\n <span\n v-clean-html=\"t(warningMessageKey, { type, names: resourceNames }, true)\"\n ></span>\n <div class=\"text-info mt-20\">\n {{ protip }}\n </div>\n <Banner\n v-for=\"(error, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <button\n class=\"btn role-secondary\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n <AsyncButton\n mode=\"apply\"\n class=\"btn bg-primary ml-10\"\n :disabled=\"applyDisabled\"\n @click=\"apply\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang='scss' scoped>\n .modal-container {\n max-width: 400px;\n }\n\n .actions {\n width: 100%;\n text-align: right;\n }\n</style>\n","import { render } from \"./ConfirmExecutionDialog.vue?vue&type=template&id=530bd8a8&scoped=true\"\nimport script from \"./ConfirmExecutionDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmExecutionDialog.vue?vue&type=script&lang=js\"\n\nimport \"./ConfirmExecutionDialog.vue?vue&type=style&index=0&id=530bd8a8&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-530bd8a8\"]])\n\nexport default __exports__","<script>\nimport { mapState } from 'vuex';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { alternateLabel } from '@shell/utils/platform';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { Banner } from '@components/Banner';\nimport { Card } from '@components/Card';\nimport { escapeHtml } from '@shell/utils/string';\nimport CopyToClipboardText from '@shell/components/CopyToClipboardText';\n\n/**\n * @name ConfirmRelatedToRemoveDialog\n * @description Dialog component to confirm the related resources before removing the resource.\n */\nexport default {\n name: 'ConfirmRelatedToRemoveDialog',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Banner,\n Card,\n CopyToClipboardText\n },\n\n props: {\n /**\n * @property resources to be deleted.\n * @type {Resource[]} Array of the resource model's instance\n */\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return { errors: [], confirmName: '' };\n },\n\n computed: {\n ...mapState('action-menu', ['modalData']),\n\n warningMessageKey() {\n return this.modalData.warningMessageKey;\n },\n\n names() {\n return this.resources.map((obj) => obj.nameDisplay).slice(0, 5);\n },\n\n resourceNames() {\n return this.names.reduce((res, name, i) => {\n if (i >= 5) {\n return res;\n }\n res += `<b>${ escapeHtml(name) }</b>`;\n if (i === this.names.length - 1) {\n res += this.plusMore;\n } else {\n res += i === this.resources.length - 2 ? ' and ' : ', ';\n }\n\n return res;\n }, '');\n },\n\n nameToMatch() {\n return this.resources[0].nameDisplay;\n },\n\n plusMore() {\n const remaining = this.resources.length - this.names.length;\n\n return this.t('promptRemove.andOthers', { count: remaining });\n },\n\n type() {\n const types = new Set(this.resources.reduce((array, each) => {\n array.push(each.type);\n\n return array;\n }, []));\n\n if (types.size > 1) {\n return this.t('generic.resource', { count: this.resources.length });\n }\n\n const schema = this.resources[0]?.schema;\n\n if ( !schema ) {\n return `resource${ this.resources.length === 1 ? '' : 's' }`;\n }\n\n return this.$store.getters['type-map/labelFor'](schema, this.resources.length);\n },\n\n deleteDisabled() {\n return this.confirmName !== this.nameToMatch;\n },\n\n protip() {\n return this.t('promptRemove.protip', { alternateLabel });\n },\n },\n\n methods: {\n escapeHtml,\n\n close() {\n this.confirmName = '';\n this.errors = [];\n this.$emit('close');\n },\n\n async remove(buttonDone) {\n try {\n for (const resource of this.resources) {\n await resource.remove();\n }\n buttonDone(true);\n this.close();\n } catch (e) {\n this.errors = exceptionToErrorsArray(e);\n buttonDone(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <Card\n class=\"prompt-related\"\n :show-highlight-border=\"false\"\n >\n <template #title>\n <h4 class=\"text-default-text\">\n {{ t('promptRemove.title') }}\n </h4>\n </template>\n\n <template #body>\n <div class=\"pl-10 pr-10\">\n <span\n v-clean-html=\"t(warningMessageKey, { type, names: resourceNames }, true)\"\n ></span>\n\n <div class=\"mt-10 mb-10\">\n <span\n v-clean-html=\"t('promptRemove.confirmName', { nameToMatch: escapeHtml(nameToMatch) }, true)\"\n ></span>\n </div>\n <div class=\"mb-10\">\n <CopyToClipboardText :text=\"nameToMatch\" />\n </div>\n <input\n id=\"confirm\"\n v-model=\"confirmName\"\n type=\"text\"\n />\n <div class=\"text-info mt-20\">\n {{ protip }}\n </div>\n <Banner\n v-for=\"(error, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n\n <template #actions>\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n <AsyncButton\n mode=\"delete\"\n class=\"btn bg-error ml-10\"\n :disabled=\"deleteDisabled\"\n @click=\"remove\"\n />\n </template>\n </Card>\n</template>\n\n<style lang='scss' scoped>\n .actions {\n text-align: right;\n }\n</style>\n","import { render } from \"./ConfirmRelatedToRemoveDialog.vue?vue&type=template&id=18d7e6fa&scoped=true\"\nimport script from \"./ConfirmRelatedToRemoveDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmRelatedToRemoveDialog.vue?vue&type=script&lang=js\"\n\nimport \"./ConfirmRelatedToRemoveDialog.vue?vue&type=style&index=0&id=18d7e6fa&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-18d7e6fa\"]])\n\nexport default __exports__","<script>\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { mapGetters } from 'vuex';\n\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\n\nexport default {\n name: 'CloneVMModal',\n\n emits: ['close'],\n\n components: {\n AsyncButton, Banner, Checkbox, Card, LabeledInput\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n name: '',\n cloneData: true,\n errors: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n },\n\n methods: {\n close() {\n this.name = '';\n this.$emit('close');\n },\n\n async create(buttonCb) {\n // shadow clone\n if (!this.cloneData) {\n this.resources[0].goToClone();\n buttonCb(false);\n this.close();\n\n return;\n }\n\n // deep clone\n try {\n const res = await this.actionResource.doAction('clone', { targetVm: this.name }, {}, false);\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch('growl/success', {\n title: this.t('harvester.notification.title.succeed'),\n message: this.t('harvester.modal.cloneVM.message.success', { name: this.name })\n }, { root: true });\n\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n },\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.cloneVM.title') }}\n </template>\n\n <template #body>\n <Checkbox\n v-model:value=\"cloneData\"\n class=\"mb-10\"\n label-key=\"harvester.modal.cloneVM.type\"\n />\n\n <LabeledInput\n v-show=\"cloneData\"\n v-model:value=\"name\"\n class=\"mb-20\"\n :label=\"t('harvester.modal.cloneVM.name')\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"create\"\n :action-label=\"cloneData ? t('harvester.modal.cloneVM.action.create') : t('harvester.modal.cloneVM.action.clone')\"\n :disabled=\"cloneData && !name\"\n @click=\"create\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./DeepCloneVmDialog.vue?vue&type=template&id=336a14ce&scoped=true\"\nimport script from \"./DeepCloneVmDialog.vue?vue&type=script&lang=js\"\nexport * from \"./DeepCloneVmDialog.vue?vue&type=script&lang=js\"\n\nimport \"./DeepCloneVmDialog.vue?vue&type=style&index=0&id=336a14ce&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-336a14ce\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { Card } from '@components/Card';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { escapeHtml } from '@shell/utils/string';\nimport { HCI } from '../types';\n\nexport default {\n name: 'HarvesterEnablePciPassthrough',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Card,\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {};\n },\n\n computed: { ...mapGetters({ t: 'i18n/t' }) },\n\n methods: {\n close() {\n this.$emit('close');\n },\n\n async save(buttonCb) {\n // isSingleProduct == this is a standalone Harvester cluster\n const isSingleProduct = this.$store.getters['isSingleProduct'];\n let userName = 'admin';\n\n // if this is imported Harvester, there may be users other than 'admin\n if (!isSingleProduct) {\n const user = this.$store.getters['auth/v3User'];\n\n userName = user?.username || user?.id;\n }\n\n for (let i = 0; i < this.resources.length; i++) {\n const actionResource = this.resources[i];\n const inStore = this.$store.getters['currentProduct'].inStore;\n const pt = await this.$store.dispatch(`${ inStore }/create`, {\n type: HCI.PCI_CLAIM,\n metadata: {\n name: actionResource.metadata.name,\n ownerReferences: [{\n apiVersion: 'devices.harvesterhci.io/v1beta1',\n kind: 'PCIDevice',\n name: actionResource.metadata.name,\n uid: actionResource.metadata.uid,\n }]\n },\n spec: {\n address: actionResource.status.address,\n nodeName: actionResource.status.nodeName,\n userName\n }\n } );\n\n try {\n await pt.save();\n buttonCb(true);\n this.close();\n } catch (err) {\n this.$store.dispatch('growl/fromError', {\n title: this.t('harvester.pci.claimError', { name: escapeHtml(actionResource.metadata.name) }),\n err,\n }, { root: true });\n buttonCb(false);\n }\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n <h4\n v-clean-html=\"t('promptRemove.title')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n {{ t('harvester.pci.enablePassthroughWarning') }}\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"enable\"\n @click=\"save\"\n />\n </div>\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./EnablePciPassthrough.vue?vue&type=template&id=44897704&scoped=true\"\nimport script from \"./EnablePciPassthrough.vue?vue&type=script&lang=js\"\nexport * from \"./EnablePciPassthrough.vue?vue&type=script&lang=js\"\n\nimport \"./EnablePciPassthrough.vue?vue&type=style&index=0&id=44897704&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-44897704\"]])\n\nexport default __exports__","<script>\nimport LabeledInput from '@components/Form/LabeledInput/LabeledInput.vue';\nimport { mapGetters } from 'vuex';\nimport { Card } from '@components/Card';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { escapeHtml } from '@shell/utils/string';\n\nexport default {\n name: 'HarvesterEnableSriovDevice',\n\n emits: ['close'],\n\n components: {\n LabeledInput,\n AsyncButton,\n Card,\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n const numVFs = this.resources[0].spec?.numVFs || 1;\n\n return { numVFs, numVFsHistory: numVFs };\n },\n\n computed: { ...mapGetters({ t: 'i18n/t' }) },\n\n watch: {\n numVFs(neu) {\n if (!parseFloat(neu) || parseFloat(neu) < 1) {\n this.numVFs = 1;\n }\n }\n },\n\n methods: {\n close() {\n this.$emit('close');\n },\n\n async save(buttonCb) {\n const actionResource = this.resources[0];\n\n try {\n this.resources[0].spec.numVFs = this.numVFs;\n await actionResource.save();\n buttonCb(true);\n this.close();\n } catch (err) {\n this.resources[0].spec.numVFs = this.numVFsHistory;\n this.$store.dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(actionResource.metadata.name) }),\n err,\n }, { root: true });\n buttonCb(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n <h4\n v-clean-html=\"t('promptRemove.title')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <LabeledInput\n v-model:value.number=\"numVFs\"\n type=\"number\"\n min=\"1\"\n required\n :label=\"t('harvester.sriov.numVFs')\"\n />\n </template>\n\n <template #actions>\n <div class=\"buttons actions\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"enable\"\n @click=\"save\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./EnableSriovDevice.vue?vue&type=template&id=bcaa7c4a&scoped=true\"\nimport script from \"./EnableSriovDevice.vue?vue&type=script&lang=js\"\nexport * from \"./EnableSriovDevice.vue?vue&type=script&lang=js\"\n\nimport \"./EnableSriovDevice.vue?vue&type=style&index=0&id=bcaa7c4a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-bcaa7c4a\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { Card } from '@components/Card';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { escapeHtml } from '@shell/utils/string';\nimport { HCI } from '../types';\n\nexport default {\n name: 'HarvesterEnableUSBPassthrough',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Card,\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {};\n },\n\n computed: { ...mapGetters({ t: 'i18n/t' }) },\n\n methods: {\n close() {\n this.$emit('close');\n },\n\n async save(buttonCb) {\n // isSingleProduct == this is a standalone Harvester cluster\n const isSingleProduct = this.$store.getters['isSingleProduct'];\n let userName = 'admin';\n\n // if this is imported Harvester, there may be users other than 'admin\n if (!isSingleProduct) {\n const user = this.$store.getters['auth/v3User'];\n\n userName = user?.username || user?.id;\n }\n\n for (let i = 0; i < this.resources.length; i++) {\n const actionResource = this.resources[i];\n const inStore = this.$store.getters['currentProduct'].inStore;\n const pt = await this.$store.dispatch(`${ inStore }/create`, {\n type: HCI.USB_CLAIM,\n metadata: {\n name: actionResource.metadata.name,\n ownerReferences: [{\n apiVersion: 'devices.harvesterhci.io/v1beta1',\n kind: 'USBDevice',\n name: actionResource.metadata.name,\n uid: actionResource.metadata.uid,\n }]\n },\n spec: {\n pciAddress: actionResource.status.pciAddress,\n nodeName: actionResource.status.nodeName,\n userName\n }\n } );\n\n try {\n await pt.save();\n buttonCb(true);\n this.close();\n } catch (err) {\n this.$store.dispatch('growl/fromError', {\n title: this.t('harvester.usb.claimError', { name: escapeHtml(actionResource.metadata.name) }),\n err,\n }, { root: true });\n buttonCb(false);\n }\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n <h4\n v-clean-html=\"t('promptRemove.title')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <t\n k=\"harvester.usb.enablePassthroughWarning\"\n :raw=\"true\"\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"enable\"\n @click=\"save\"\n />\n </div>\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./EnableUSBPassthrough.vue?vue&type=template&id=0cd7660b&scoped=true\"\nimport script from \"./EnableUSBPassthrough.vue?vue&type=script&lang=js\"\nexport * from \"./EnableUSBPassthrough.vue?vue&type=script&lang=js\"\n\nimport \"./EnableUSBPassthrough.vue?vue&type=style&index=0&id=0cd7660b&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0cd7660b\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { Card } from '@components/Card';\nimport LabeledSelect from '@shell/components/form/LabeledSelect.vue';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { escapeHtml } from '@shell/utils/string';\n\nexport default {\n name: 'HarvesterEnableVGpuDevice',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Card,\n LabeledSelect,\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n type: this.resources[0].spec?.vGPUTypeName,\n availableTypes: Object.keys(this.resources[0].status?.availableTypes || {}),\n };\n },\n\n computed: { ...mapGetters({ t: 'i18n/t' }) },\n\n methods: {\n close() {\n this.$emit('close');\n },\n\n async save(buttonCb) {\n const actionResource = this.resources[0];\n\n try {\n this.resources[0].spec.vGPUTypeName = this.type;\n this.resources[0].spec.enabled = true;\n await actionResource.save();\n buttonCb(true);\n this.close();\n } catch (err) {\n this.$store.dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(actionResource.metadata.name) }),\n err,\n }, { root: true });\n buttonCb(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n <h4\n v-clean-html=\"t('harvester.vgpu.enable.title')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <div class=\"body\">\n <div class=\"type-field\">\n <LabeledSelect\n v-model:value=\"type\"\n required\n :options=\"availableTypes\"\n :searchable=\"true\"\n :label=\"t('harvester.vgpu.enable.type')\"\n />\n </div>\n </div>\n </template>\n\n <template #actions>\n <div class=\"buttons actions\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"edit\"\n :disabled=\"!type\"\n @click=\"save\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n\n.body {\n display: flex;\n flex-direction: column;\n\n &-field {\n margin-top: 10px;\n }\n}\n\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./EnableVGpuDevice.vue?vue&type=template&id=093a01ba&scoped=true\"\nimport script from \"./EnableVGpuDevice.vue?vue&type=script&lang=js\"\nexport * from \"./EnableVGpuDevice.vue?vue&type=script&lang=js\"\n\nimport \"./EnableVGpuDevice.vue?vue&type=style&index=0&id=093a01ba&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-093a01ba\"]])\n\nexport default __exports__","<script>\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { sortBy } from '@shell/utils/sort';\nimport { mapGetters } from 'vuex';\nimport { PVC } from '@shell/config/types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nexport default {\n name: 'HotplugModal',\n\n emits: ['close'],\n\n components: {\n AsyncButton, Card, LabeledInput, LabeledSelect, Banner\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n async fetch() {\n this.allPVCs = await this.$store.dispatch('harvester/findAll', { type: PVC });\n },\n\n data() {\n return {\n diskName: '',\n volumeName: '',\n errors: [],\n allPVCs: [],\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n PVCs() {\n return this.allPVCs.filter((P) => this.actionResource.metadata.namespace === P.metadata.namespace) || [];\n },\n\n actionResource() {\n return this.resources[0];\n },\n\n volumeOption() {\n return sortBy(\n this.PVCs\n .filter( (pvc) => {\n if (!!pvc.metadata?.annotations?.[HCI_ANNOTATIONS.IMAGE_ID]) {\n return false;\n }\n\n return !pvc.attachVM;\n })\n .map((pvc) => {\n return {\n label: pvc.metadata.name,\n value: pvc.metadata.name\n };\n }),\n 'label'\n );\n },\n },\n\n methods: {\n close() {\n this.diskName = '';\n this.volumeName = '';\n this.$emit('close');\n },\n\n async save(buttonCb) {\n if (this.actionResource) {\n try {\n const res = await this.actionResource.doAction('addVolume', { volumeSourceName: this.volumeName, diskName: this.diskName }, {}, false);\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch('growl/success', {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.modal.hotplug.success', { diskName: this.diskName, vm: this.actionResource.nameDisplay })\n }, { root: true });\n\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n },\n }\n};\n</script>\n\n<template>\n <Card\n ref=\"modal\"\n name=\"modal\"\n :show-highlight-border=\"false\"\n >\n <template #title>\n <h4\n v-clean-html=\"t('harvester.modal.hotplug.title')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <LabeledInput\n v-model:value=\"diskName\"\n :label=\"t('generic.name')\"\n required\n />\n\n <LabeledSelect\n v-model:value=\"volumeName\"\n :label=\"t('harvester.fields.volume')\"\n :options=\"volumeOption\"\n class=\"mt-20\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n type=\"button\"\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"apply\"\n :disabled=\"!diskName || !volumeName\"\n @click=\"save\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterAddHotplugModal.vue?vue&type=template&id=e57e8be6&scoped=true\"\nimport script from \"./HarvesterAddHotplugModal.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterAddHotplugModal.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterAddHotplugModal.vue?vue&type=style&index=0&id=e57e8be6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e57e8be6\"]])\n\nexport default __exports__","<script>\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { mapGetters } from 'vuex';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\n\nexport default {\n name: 'HarvesterBackupModal',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Card,\n LabeledInput,\n Banner\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n backUpName: '',\n errors: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n }\n },\n\n methods: {\n close() {\n this.backUpName = '';\n this.$emit('close');\n },\n\n async save(buttonCb) {\n if (this.actionResource) {\n try {\n const res = await this.actionResource.doAction(\n 'backup',\n { name: this.backUpName },\n {},\n false\n );\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch(\n 'growl/success',\n {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.modal.backup.success', { backUpName: this.backUpName })\n },\n { root: true }\n );\n\n this.close();\n\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n <h4\n v-clean-html=\"t('harvester.modal.backup.addBackup')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <LabeledInput\n v-model:value=\"backUpName\"\n :label=\"t('generic.name')\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"create\"\n :disabled=\"!backUpName\"\n @click=\"save\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterBackupModal.vue?vue&type=template&id=59cc760a&scoped=true\"\nimport script from \"./HarvesterBackupModal.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterBackupModal.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterBackupModal.vue?vue&type=style&index=0&id=59cc760a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-59cc760a\"]])\n\nexport default __exports__","<script>\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { mapGetters } from 'vuex';\n\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\n\nexport default {\n name: 'HarvesterCloneTemplateModal',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Banner,\n Card,\n Checkbox,\n LabeledInput\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n templateName: '',\n description: '',\n withData: false,\n errors: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n }\n },\n\n methods: {\n close() {\n this.templateName = '';\n this.description = '';\n this.$emit('close');\n },\n\n async save(buttonCb) {\n try {\n const res = await this.actionResource.doAction(\n 'createTemplate',\n {\n name: this.templateName, description: this.description, withData: this.withData\n },\n {},\n false\n );\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch(\n 'growl/success',\n {\n title: this.t('generic.notification.title.succeed'),\n message: this.t(\n 'harvester.modal.createTemplate.message.success',\n { templateName: this.templateName }\n )\n },\n { root: true }\n );\n\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.createTemplate.title') }}\n </template>\n\n <template #body>\n <Checkbox\n v-model:value=\"withData\"\n class=\"mb-10\"\n label=\"With Data\"\n />\n\n <LabeledInput\n v-model:value=\"templateName\"\n class=\"mb-20\"\n :label=\"t('harvester.modal.createTemplate.name')\"\n required\n />\n\n <LabeledInput\n v-model:value=\"description\"\n :label=\"t('harvester.modal.createTemplate.description')\"\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"create\"\n :disabled=\"!templateName\"\n @click=\"save\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterCloneTemplate.vue?vue&type=template&id=b0964c8c&scoped=true\"\nimport script from \"./HarvesterCloneTemplate.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterCloneTemplate.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterCloneTemplate.vue?vue&type=style&index=0&id=b0964c8c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b0964c8c\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\n\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\n\nexport default {\n name: 'HarvesterEjectCDROMModal',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Card,\n Checkbox,\n Banner\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n const allDisk = [];\n const disks = this.resources[0].spec.template.spec.domain.devices.disks;\n\n if (Array.isArray(disks)) {\n disks.forEach((D) => {\n if (D.cdrom) {\n allDisk.push({\n name: D.name,\n value: false\n });\n }\n });\n }\n\n return {\n allDisk,\n errors: [],\n diskNames: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n\n isDeleteDisabled() {\n return this.diskNames.length === 0;\n }\n },\n\n methods: {\n updateNames(names) {\n this.diskNames = names;\n },\n\n async remove(buttonDone) {\n try {\n await this.actionResource.doAction('ejectCdRom', { diskNames: this.diskNames });\n this.close();\n buttonDone(true);\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonDone(false);\n }\n },\n\n close() {\n this.backupName = '';\n this.errors = [];\n this.$emit('close');\n }\n },\n\n watch: {\n allDisk: {\n handler(neu) {\n const diskNames = [];\n\n neu.forEach((D) => {\n if (D.value) {\n diskNames.push(D.name);\n }\n });\n\n this['diskNames'] = diskNames;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.ejectCDROM.title') }}\n </template>\n\n <template #body>\n <span class=\"text-info mb-10\">\n {{ t('harvester.modal.ejectCDROM.operationTip') }}\n </span>\n\n <div>\n <Checkbox\n v-for=\"(disk, i) in allDisk\"\n :key=\"i\"\n v-model:value=\"disk.value\"\n :label=\"disk.name\"\n />\n </div>\n\n <Banner color=\"warning\">\n <span>{{ t('harvester.modal.ejectCDROM.warnTip') }}</span>\n </Banner>\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"delete\"\n :disabled=\"!diskNames.length\"\n class=\"btn bg-error ml-10\"\n @click=\"remove\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterEjectCDROMDialog.vue?vue&type=template&id=8cf7507a&scoped=true\"\nimport script from \"./HarvesterEjectCDROMDialog.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterEjectCDROMDialog.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterEjectCDROMDialog.vue?vue&type=style&index=0&id=8cf7507a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8cf7507a\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\n\nimport { sortBy } from '@shell/utils/sort';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { NAMESPACE, STORAGE_CLASS } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\n\nexport default {\n name: 'HarvesterExportImageDialog',\n\n emits: ['close'],\n\n components: {\n AsyncButton, Banner, Card, LabeledInput, LabeledSelect\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = { storages: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }) };\n\n await allHash(hash);\n\n const defaultStorage = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS).find((s) => s.isDefault);\n\n this['storageClassName'] = defaultStorage?.metadata?.name || 'longhorn';\n },\n\n data() {\n const namespace = this.$store.getters['defaultNamespace'] || '';\n\n return {\n name: '',\n namespace,\n storageClassName: '',\n errors: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n\n namespaces() {\n const choices = this.$store.getters['harvester/all'](NAMESPACE).filter( (N) => !N.isSystem);\n\n const out = sortBy(\n choices.map((obj) => {\n return {\n label: obj.nameDisplay,\n value: obj.id,\n };\n }),\n 'label'\n );\n\n return out;\n },\n\n disableSave() {\n return !(this.name && this.namespace && this.storageClassName);\n },\n\n storageClassOptions() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const storages = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS);\n\n const out = storages.filter((s) => !s.parameters?.backingImage).map((s) => {\n const label = s.isDefault ? `${ s.name } (${ this.t('generic.default') })` : s.name;\n\n return {\n label,\n value: s.name,\n };\n }) || [];\n\n return out;\n },\n },\n\n methods: {\n close() {\n this.name = '';\n this.namespace = '';\n this.storageClassName = '';\n this.$emit('close');\n },\n\n async save(buttonCb) {\n try {\n const res = await this.actionResource.doAction('export', {\n displayName: this.name,\n namespace: this.namespace,\n storageClassName: this.storageClassName,\n });\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch('growl/success', {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.modal.exportImage.message.success', { name: this.name })\n }, { root: true });\n\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n },\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.exportImage.title') }}\n </template>\n\n <template #body>\n <LabeledSelect\n v-model:value=\"namespace\"\n :label=\"t('harvester.modal.exportImage.namespace')\"\n :options=\"namespaces\"\n class=\"mb-20\"\n required\n />\n\n <LabeledInput\n v-model:value=\"name\"\n :label=\"t('harvester.modal.exportImage.name')\"\n required\n />\n\n <LabeledSelect\n v-model:value=\"storageClassName\"\n :options=\"storageClassOptions\"\n :label=\"t('harvester.storage.storageClass.label')\"\n class=\"mt-20\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"create\"\n :disabled=\"disableSave\"\n @click=\"save\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterExportImageDialog.vue?vue&type=template&id=1106b2cc&scoped=true\"\nimport script from \"./HarvesterExportImageDialog.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterExportImageDialog.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterExportImageDialog.vue?vue&type=style&index=0&id=1106b2cc&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1106b2cc\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { BadgeState } from '@components/BadgeState';\nimport { ucFirst } from '@shell/utils/string';\n\nexport default {\n emits: ['close'],\n\n components: {\n Card,\n Checkbox,\n AsyncButton,\n Banner,\n BadgeState\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n errors: [],\n unhealthyVMs: [],\n force: false\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n improveMaintenanceModeFeatureEnabled() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('improveMaintenanceMode');\n },\n\n actionResource() {\n return this.resources[0];\n },\n },\n\n methods: {\n ucFirst,\n\n onInputForce(v) {\n if (v) {\n this.unhealthyVMs = [];\n }\n },\n\n close() {\n this.$emit('close');\n },\n\n async apply(buttonCb) {\n this.errors = [];\n this.unhealthyVMs = [];\n\n try {\n const res = await this.actionResource.doAction('maintenancePossible');\n\n if (this.force) {\n if (res._status === 200 || res._status === 204) {\n await this.actionResource.doAction('enableMaintenanceMode', { force: 'true' });\n buttonCb(true);\n this.close();\n } else {\n buttonCb(false);\n }\n } else if (res._status === 200 || res._status === 204) {\n const res = await this.actionResource.doAction('listUnhealthyVM');\n\n let data = res;\n\n if (!this.improveMaintenanceModeFeatureEnabled) {\n data = res.message ? [res] : [];\n }\n\n if (data?.length) {\n this.unhealthyVMs = data;\n buttonCb(false);\n } else {\n await this.actionResource.doAction('enableMaintenanceMode', { force: 'false' });\n buttonCb(true);\n this.close();\n }\n } else {\n buttonCb(false);\n }\n } catch (e) {\n const error = [e?.data] || exceptionToErrorsArray(e);\n\n this.errors = error;\n buttonCb(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.host.enableMaintenance.title') }}\n </template>\n\n <template #body>\n <div>\n <Checkbox\n v-model:value=\"force\"\n label-key=\"harvester.host.enableMaintenance.force\"\n @update:value=\"onInputForce\"\n />\n </div>\n\n <Banner\n color=\"warning\"\n :label=\"t('harvester.host.enableMaintenance.protip')\"\n />\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"ucFirst(err)\"\n />\n\n <Banner\n v-if=\"!force\"\n class=\"mt-0\"\n color=\"warning\"\n :label-key=\"'harvester.host.enableMaintenance.shutDownVMs'\"\n />\n\n <div\n v-for=\"(unhealthyVM, i) in unhealthyVMs\"\n :key=\"i\"\n >\n <Banner color=\"error mt-0 mb-5\">\n <p>\n {{ ucFirst(unhealthyVM.message) }}\n </p>\n </Banner>\n\n <div class=\"vm-list mb-5\">\n <BadgeState\n v-for=\"(vm, k) in unhealthyVM.vms\"\n :key=\"k\"\n color=\"bg-error mb-5 mr-5\"\n :label=\"vm\"\n />\n </div>\n </div>\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"apply\"\n @click=\"apply\"\n />\n </div>\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.vm-list {\n display: flex;\n flex-wrap: wrap;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterMaintenanceDialog.vue?vue&type=template&id=f2cea8a0&scoped=true\"\nimport script from \"./HarvesterMaintenanceDialog.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterMaintenanceDialog.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterMaintenanceDialog.vue?vue&type=style&index=0&id=f2cea8a0&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f2cea8a0\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\n\nimport { NODE } from '@shell/config/types';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\n\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { HCI } from '../types';\n\nexport default {\n emits: ['close'],\n\n components: {\n AsyncButton, Banner, Card, LabeledSelect\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n async fetch() {\n try {\n if (!this.actionResource.hasAction('findMigratableNodes')) {\n return;\n }\n\n const res = await this.actionResource.$dispatch('resourceAction', {\n resource: this.actionResource,\n actionName: 'findMigratableNodes',\n body: {},\n opt: {},\n });\n\n this.availableNodes = res.nodes;\n } catch (err) {\n this.actionResource.$dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error'),\n err: err.data || err,\n }, { root: true });\n }\n },\n\n data() {\n return {\n nodeName: '',\n errors: [],\n availableNodes: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n\n vmi() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const vmiResources = this.$store.getters[`${ inStore }/all`](HCI.VMI);\n const resource = vmiResources.find((VMI) => VMI.id === this.actionResource?.id) || null;\n\n return resource;\n },\n\n cpuPinningAlertMessage() {\n return this.t('harvester.virtualMachine.cpuPinning.migrationMessage');\n },\n\n nodeNameList() {\n const nodes = this.$store.getters['harvester/all'](NODE);\n\n return nodes.filter((n) => {\n const isNotSelfNode = !!this.availableNodes.includes(n.id);\n const isNotWitnessNode = n.isEtcd !== 'true'; // do not allow to migrate to self node and witness node\n const isCpuPinning = this.actionResource?.isCpuPinning;\n const matchingCpuManagerConfig = !isCpuPinning || n.isCPUManagerEnabled; // If cpu-pinning is enabled, filter-out non-enabled CPU manager nodes.\n\n return isNotSelfNode && isNotWitnessNode && matchingCpuManagerConfig;\n }).map((n) => {\n let label = n?.metadata?.name;\n const value = n?.metadata?.name;\n const custom = n?.metadata?.annotations?.[HCI_ANNOTATIONS.HOST_CUSTOM_NAME];\n\n if (custom) {\n label = custom;\n }\n\n return {\n label,\n value\n };\n });\n },\n },\n\n methods: {\n close() {\n this.nodeName = '';\n this.errors = [];\n this.$emit('close');\n },\n\n async apply(buttonDone) {\n if (!this.actionResource) {\n buttonDone(false);\n\n return;\n }\n\n if (!this.nodeName) {\n const name = this.$store.getters['i18n/t']('harvester.modal.migration.fields.nodeName.label');\n const message = this.$store.getters['i18n/t']('validation.required', { key: name });\n\n this['errors'] = [message];\n buttonDone(false);\n\n return;\n }\n\n try {\n await this.actionResource.doAction('migrate', { nodeName: this.nodeName }, {}, false);\n\n buttonDone(true);\n this.close();\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonDone(false);\n }\n },\n\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.migration.title') }}\n </template>\n\n <template #body>\n <Banner\n v-if=\"actionResource?.isCpuPinning\"\n color=\"warning\"\n :label=\"cpuPinningAlertMessage\"\n />\n <LabeledSelect\n v-model:value=\"nodeName\"\n :label=\"t('harvester.modal.migration.fields.nodeName.label')\"\n :placeholder=\"t('harvester.modal.migration.fields.nodeName.placeholder')\"\n :options=\"nodeNameList\"\n />\n </template>\n\n <template\n #actions\n class=\"actions\"\n >\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"apply\"\n :disabled=\"!nodeName\"\n @click=\"apply\"\n />\n </div>\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterMigrationDialog.vue?vue&type=template&id=44239a1b&scoped=true\"\nimport script from \"./HarvesterMigrationDialog.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterMigrationDialog.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterMigrationDialog.vue?vue&type=style&index=0&id=44239a1b&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-44239a1b\"]])\n\nexport default __exports__","<script>\nimport { mapGetters, mapState } from 'vuex';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\n\nexport default {\n name: 'HarvesterVMQuotaDialog',\n\n components: {\n AsyncButton,\n Card,\n UnitInput,\n Banner\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n created() {\n this.totalSnapshotSize = this.modalData.snapshotSizeQuota;\n },\n\n data() {\n return {\n totalSnapshotSize: '',\n errors: []\n };\n },\n\n computed: {\n ...mapState('action-menu', ['modalData']),\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n },\n\n methods: {\n\n close() {\n this.totalSnapshotSize = '';\n this.$emit('close');\n },\n\n async save(buttonDone) {\n try {\n // call delete action if user input 0Gi or empty string\n if (this.totalSnapshotSize === null || this.totalSnapshotSize === '0Gi' ) {\n await this.actionResource.doAction('deleteResourceQuota');\n } else {\n await this.actionResource.doAction('updateResourceQuota', { totalSnapshotSizeQuota: this.totalSnapshotSize });\n }\n this.close();\n buttonDone(true);\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonDone(false);\n }\n },\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n <h4\n v-clean-html=\"t('harvester.modal.quota.editQuota')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <Banner color=\"info\">\n {{ t('harvester.modal.quota.bannerMessage') }}\n </Banner>\n <UnitInput\n v-model:value=\"totalSnapshotSize\"\n :label=\"t('harvester.snapshot.totalSnapshotSize')\"\n :disabled=\"false\"\n :input-exponent=\"3\"\n :increment=\"1024\"\n :output-modifier=\"true\"\n suffix=\"GiB\"\n class=\"mb-20\"\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n <AsyncButton @click=\"save\" />\n </div>\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterQuotaDialog.vue?vue&type=template&id=5d55ff4f&scoped=true\"\nimport script from \"./HarvesterQuotaDialog.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterQuotaDialog.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterQuotaDialog.vue?vue&type=style&index=0&id=5d55ff4f&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5d55ff4f\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\n\nimport { randomStr } from '@shell/utils/string';\nimport { allHash } from '@shell/utils/promise';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\n\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { HCI } from '../types';\n\nexport default {\n name: 'HarvesterRestoreModal',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Banner,\n Card,\n LabeledSelect\n },\n\n async fetch() {\n const hash = await allHash({ backups: this.$store.dispatch('harvester/findAll', { type: HCI.BACKUP }) });\n\n this.backups = hash.backups;\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n backups: [],\n backupName: '',\n errors: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n\n backupOption() {\n const attachBackup = this.backups.filter((B) => {\n return B.attachVM === this.actionResource?.metadata?.name;\n });\n\n return attachBackup.map((O) => {\n return {\n value: O.metadata.name,\n label: O.metadata.name\n };\n });\n }\n },\n\n methods: {\n close() {\n this.backupName = '';\n this.errors = [];\n this.$emit('close');\n },\n\n async saveRestore(buttonCb) {\n const name = `restore-${ this.backupName }-${ randomStr(5).toLowerCase() }`;\n\n if (!this.backupName) {\n this['errors'] = [\n this.t('harvester.modal.restore.message.backup')\n ];\n buttonCb(false);\n\n return;\n }\n\n try {\n const res = await this.actionResource.doAction(\n 'restore',\n { backupName: this.backupName, name },\n {},\n false\n );\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch(\n 'growl/success',\n {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.modal.restore.success', { name: this.backupName })\n },\n { root: true }\n );\n\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.restore.title') }}\n </template>\n\n <template #body>\n <LabeledSelect\n v-model:value=\"backupName\"\n :label=\"t('harvester.modal.restore.selectBackup')\"\n :localized-label=\"true\"\n :options=\"backupOption\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"create\"\n :disabled=\"!backupName\"\n @click=\"saveRestore\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterRestoreDialog.vue?vue&type=template&id=60048f60&scoped=true\"\nimport script from \"./HarvesterRestoreDialog.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterRestoreDialog.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterRestoreDialog.vue?vue&type=style&index=0&id=60048f60&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-60048f60\"]])\n\nexport default __exports__","<script>\nimport { mapState, mapGetters } from 'vuex';\n\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\n\nexport default {\n name: 'HarvesterHotUnplugModal',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Card,\n Banner\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return { errors: [] };\n },\n\n computed: {\n ...mapState('action-menu', ['modalData']),\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n diskName() {\n return this.modalData.diskName;\n }\n },\n\n methods: {\n close() {\n this.$emit('close');\n },\n\n async save(buttonCb) {\n try {\n const res = await this.actionResource.doAction('removeVolume', { diskName: this.diskName });\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch(\n 'growl/success',\n {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.modal.hotunplug.success', { name: this.diskName })\n },\n { root: true }\n );\n\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <Card\n ref=\"modal\"\n name=\"modal\"\n :show-highlight-border=\"false\"\n >\n <template #title>\n <h4\n v-clean-html=\"t('harvester.virtualMachine.unplug.title', { name: diskName })\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n type=\"button\"\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"apply\"\n :action-label=\"t('harvester.virtualMachine.unplug.actionLabel')\"\n :waiting-label=\"t('harvester.virtualMachine.unplug.actionLabel')\"\n :success-label=\"t('harvester.virtualMachine.unplug.actionLabel')\"\n @click=\"save\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterUnplugVolume.vue?vue&type=template&id=6701b372&scoped=true\"\nimport script from \"./HarvesterUnplugVolume.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterUnplugVolume.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterUnplugVolume.vue?vue&type=style&index=0&id=6701b372&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6701b372\"]])\n\nexport default __exports__","<script>\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { mapGetters } from 'vuex';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { HCI } from '../types';\nimport { BACKUP_TYPE } from '../config/types';\n\nexport default {\n name: 'HarvesterVMSnapshotDialog',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Card,\n LabeledInput,\n Banner\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n snapshotName: '',\n snapshotNamespace: '',\n errors: []\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n }\n },\n\n methods: {\n close() {\n this.snapshotNamespace = '';\n this.snapshotName = '';\n this.$emit('close');\n },\n\n async save(buttonCb) {\n if (this.actionResource) {\n try {\n const snapshot = await this.$store.dispatch('harvester/create', {\n metadata: {\n name: this.snapshotName,\n namespace: this.actionResource.metadata.namespace,\n ownerReferences: this.getOwnerReferencesFromVM(this.actionResource)\n },\n spec: {\n source: {\n apiGroup: 'kubevirt.io',\n kind: 'VirtualMachine',\n name: this.actionResource.metadata.name\n },\n type: BACKUP_TYPE.SNAPSHOT\n },\n type: HCI.BACKUP\n });\n\n await snapshot.save();\n\n this.$store.dispatch(\n 'growl/success',\n {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.modal.vmSnapshot.success', { name: this.snapshotName })\n },\n { root: true }\n );\n\n this.close();\n\n buttonCb(true);\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n },\n\n getOwnerReferencesFromVM(resource) {\n const name = resource.metadata.name;\n const kind = resource.kind;\n const apiVersion = 'kubevirt.io/v1';\n const uid = resource?.metadata?.uid;\n\n return [{\n name,\n kind,\n uid,\n apiVersion,\n }];\n },\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n <h4\n v-clean-html=\"t('harvester.modal.vmSnapshot.title')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <LabeledInput\n v-model:value=\"actionResource.metadata.namespace\"\n :disabled=\"true\"\n :label=\"t('generic.namespace')\"\n />\n <LabeledInput\n v-model:value=\"snapshotName\"\n class=\"mt-20\"\n :label=\"t('generic.name')\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"create\"\n :disabled=\"!snapshotName\"\n @click=\"save\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterVMSnapshotDialog.vue?vue&type=template&id=e167c52e&scoped=true\"\nimport script from \"./HarvesterVMSnapshotDialog.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVMSnapshotDialog.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterVMSnapshotDialog.vue?vue&type=style&index=0&id=e167c52e&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e167c52e\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\n\nimport { HCI } from '@pkg/harvester/types';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { clone } from '@shell/utils/object';\n\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nexport default {\n emits: ['close'],\n\n components: {\n AsyncButton,\n Banner,\n Card,\n LabeledSelect,\n },\n\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n\n data() {\n return {\n clusterNetwork: '',\n errors: [],\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n\n clusterNetworks() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const clusterNetworks = this.$store.getters[`${ inStore }/all`](HCI.CLUSTER_NETWORK);\n\n return clusterNetworks.filter((c) => {\n return c.id !== this.actionResource.spec?.clusterNetwork && c.id !== 'mgmt';\n }).map((c) => {\n const label = c.id;\n const value = c.id;\n\n return {\n label,\n value,\n };\n });\n },\n },\n\n methods: {\n close() {\n this.nodeName = '';\n this.errors = [];\n this.$emit('close');\n },\n\n async apply(buttonDone) {\n try {\n const data = clone(this.actionResource);\n\n data.spec.clusterNetwork = this.clusterNetwork;\n\n await this.$store.dispatch('harvester/request', {\n url: `/v1/harvester/${ HCI.VLAN_CONFIG }s/${ data.id }`,\n method: 'PUT',\n data,\n });\n\n buttonDone(true);\n this.close();\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonDone(false);\n }\n },\n\n }\n};\n</script>\n\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.migration.title') }}\n </template>\n\n <template #body>\n <LabeledSelect\n v-model:value=\"clusterNetwork\"\n :label=\"t('harvester.harvesterVlanConfigMigrateDialog.targetClusterNetwork.label')\"\n :placeholder=\"t('harvester.harvesterVlanConfigMigrateDialog.targetClusterNetwork.placeholder')\"\n :options=\"clusterNetworks\"\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"apply\"\n :disabled=\"!clusterNetwork\"\n @click=\"apply\"\n />\n </div>\n\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./HarvesterVlanConfigMigrateDialog.vue?vue&type=template&id=283b2220&scoped=true\"\nimport script from \"./HarvesterVlanConfigMigrateDialog.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVlanConfigMigrateDialog.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterVlanConfigMigrateDialog.vue?vue&type=style&index=0&id=283b2220&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-283b2220\"]])\n\nexport default __exports__","<script>\nimport { mapState, mapGetters } from 'vuex';\nimport { Card } from '@components/Card';\n\nexport default {\n name: 'HarvesterHotUnplugModal',\n\n emits: ['close'],\n\n components: { Card },\n\n props: {\n resources: {\n type: Array,\n required: true\n },\n },\n\n computed: {\n ...mapState('action-menu', ['modalData']),\n ...mapGetters({ t: 'i18n/t' }),\n\n actionResource() {\n return this.resources[0];\n },\n },\n\n methods: {\n ok() {\n this.modalData?.callback('ok');\n this.$emit('close');\n },\n }\n};\n</script>\n\n<template>\n <Card\n ref=\"modal\"\n name=\"modal\"\n :show-highlight-border=\"false\"\n >\n <template #title>\n <h4 class=\"text-default-text\">\n {{ t('generic.tip') }}\n </h4>\n </template>\n\n <template #body>\n <p v-clean-html=\"t(modalData.contentKey)\"></p>\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n type=\"button\"\n class=\"btn role-secondary mr-10\"\n @click=\"ok\"\n >\n {{ t('generic.ok') }}\n </button>\n </div>\n </div>\n </template>\n </Card>\n</template>\n\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./MessageBox.vue?vue&type=template&id=6bf42877&scoped=true\"\nimport script from \"./MessageBox.vue?vue&type=script&lang=js\"\nexport * from \"./MessageBox.vue?vue&type=script&lang=js\"\n\nimport \"./MessageBox.vue?vue&type=style&index=0&id=6bf42877&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6bf42877\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport AppModal from '@shell/components/AppModal';\n\nexport default {\n emits: ['close'],\n\n components: {\n AppModal,\n Card,\n AsyncButton,\n Banner,\n },\n props: {\n vm: {\n type: Object,\n required: true\n },\n },\n data() {\n return { errors: [], resolve: null };\n },\n computed: { ...mapGetters({ t: 'i18n/t' }) },\n methods: {\n close() {\n this.resolve();\n this.$emit('close');\n },\n apply(buttonDone) {\n try {\n this.vm.doActionGrowl('restart', {});\n buttonDone(true);\n this.close();\n } catch (err) {\n console.error(err); // eslint-disable-line\n this.errors = exceptionToErrorsArray(err);\n buttonDone(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <app-modal\n class=\"restart-modal\"\n name=\"restartDialog\"\n :width=\"600\"\n height=\"auto\"\n :click-to-close=\"false\"\n @close=\"close\"\n >\n <Card\n class=\"prompt-restart\"\n :show-highlight-border=\"false\"\n >\n <template #title>\n <h4\n v-clean-html=\"t('harvester.modal.restart.title')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <div\n v-clean-html=\"t('harvester.modal.restart.tip')\"\n class=\"pl-10 pr-10\"\n />\n </template>\n\n <template #actions>\n <div class=\"bottom\">\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('harvester.modal.restart.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"restart\"\n @click=\"apply\"\n />\n </div>\n </div>\n </template>\n </Card>\n </app-modal>\n</template>\n<style lang='scss' scoped>\n .restart-modal {\n z-index: 45;\n }\n .prompt-restart {\n margin: 0;\n }\n .bottom {\n display: flex;\n flex-direction: column;\n flex: 1;\n .banner {\n margin-top: 0\n }\n .buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n }\n }\n</style>\n","import { render } from \"./RestartVMDialog.vue?vue&type=template&id=574c27ab&scoped=true\"\nimport script from \"./RestartVMDialog.vue?vue&type=script&lang=js\"\nexport * from \"./RestartVMDialog.vue?vue&type=script&lang=js\"\n\nimport \"./RestartVMDialog.vue?vue&type=style&index=0&id=574c27ab&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-574c27ab\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\n\nimport { allHash } from '@shell/utils/promise';\nimport { STORAGE_CLASS } from '@shell/config/types';\n\nexport default {\n name: 'HarvesterRestoreSnapshotDialog',\n\n emits: ['close'],\n\n components: {\n AsyncButton,\n Banner,\n Card,\n LabeledInput,\n LabeledSelect,\n },\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n data() {\n return {\n name: '',\n errors: [],\n storageClassName: '',\n };\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = { storages: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }) };\n\n await allHash(hash);\n\n if (this.showStorageClass) {\n const defaultStorage = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS).find((s) => s.isDefault);\n\n const currentStorageName = this.resources[0].metadata?.annotations[HCI_ANNOTATIONS.STORAGE_CLASS];\n\n this['storageClassName'] = currentStorageName || defaultStorage?.metadata?.name || 'longhorn';\n }\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n actionResource() {\n return this.resources[0] || {};\n },\n disableSave() {\n return !(this.name && (this.showStorageClass ? this.storageClassName : true));\n },\n\n storageClassOptions() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const storages = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS);\n\n const out = storages.filter((s) => !s.parameters?.backingImage).filter((s) => {\n return s.provisioner === this.actionResource.metadata?.annotations[HCI_ANNOTATIONS.STORAGE_PROVISIONER];\n }).map((s) => {\n const label = s.isDefault ? `${ s.name } (${ this.t('generic.default') })` : s.name;\n\n return {\n label,\n value: s.name,\n };\n }) || [];\n\n return out;\n },\n\n showStorageClass() {\n return this.actionResource?.volume?.source === 'data';\n },\n },\n methods: {\n close() {\n this.name = '';\n this.storageClassName = '';\n\n this.$emit('close');\n },\n async save(buttonCb) {\n try {\n const payload = { name: this.name };\n\n if (this.showStorageClass) {\n payload.storageClassName = this.storageClassName;\n }\n\n const res = await this.actionResource.doAction('restore', payload);\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch('growl/success', {\n title: this.t('harvester.notification.title.succeed'),\n message: this.t('harvester.modal.restoreSnapshot.success', { name: this.name })\n }, { root: true });\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n },\n};\n</script>\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.restoreSnapshot.title') }}\n </template>\n\n <template #body>\n <LabeledInput\n v-model:value=\"name\"\n :label=\"t('harvester.modal.restoreSnapshot.name')\"\n required\n />\n <LabeledSelect\n v-if=\"showStorageClass\"\n v-model:value=\"storageClassName\"\n :options=\"storageClassOptions\"\n :label=\"t('harvester.storage.storageClass.label')\"\n class=\"mt-20\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n <AsyncButton\n mode=\"create\"\n :disabled=\"disableSave\"\n @click=\"save\"\n />\n </div>\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n </Card>\n</template>\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./RestoreSnapshotDialog.vue?vue&type=template&id=7d03279c&scoped=true\"\nimport script from \"./RestoreSnapshotDialog.vue?vue&type=script&lang=js\"\nexport * from \"./RestoreSnapshotDialog.vue?vue&type=script&lang=js\"\n\nimport \"./RestoreSnapshotDialog.vue?vue&type=style&index=0&id=7d03279c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d03279c\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nexport default {\n name: 'HarvesterSnapshotDialog',\n\n emits: ['close'],\n\n components: {\n AsyncButton, Banner, Card, LabeledInput\n },\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n data() {\n return {\n name: '',\n errors: []\n };\n },\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n actionResource() {\n return this.resources[0];\n },\n disableSave() {\n return !this.name;\n }\n },\n methods: {\n close() {\n this.name = '';\n this.$emit('close');\n },\n async save(buttonCb) {\n try {\n const res = await this.actionResource.doAction('snapshot', { name: this.name });\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch('growl/success', {\n title: this.t('harvester.notification.title.succeed'),\n message: this.t('harvester.modal.snapshot.message.success', { name: this.name })\n }, { root: true });\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n },\n};\n</script>\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.snapshot.title') }}\n </template>\n\n <template #body>\n <LabeledInput\n v-model:value=\"name\"\n :label=\"t('harvester.modal.snapshot.name')\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n <AsyncButton\n mode=\"create\"\n :disabled=\"disableSave\"\n @click=\"save\"\n />\n </div>\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n </div>\n </template>\n </Card>\n</template>\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./SnapshotDialog.vue?vue&type=template&id=290c9c84&scoped=true\"\nimport script from \"./SnapshotDialog.vue?vue&type=script&lang=js\"\nexport * from \"./SnapshotDialog.vue?vue&type=script&lang=js\"\n\nimport \"./SnapshotDialog.vue?vue&type=style&index=0&id=290c9c84&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-290c9c84\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { Checkbox } from '@components/Form/Checkbox';\n\nexport default {\n name: 'HarvesterPvcCloneDialog',\n\n emits: ['close'],\n\n components: {\n AsyncButton, Banner, Card, LabeledInput, Checkbox\n },\n props: {\n resources: {\n type: Array,\n required: true\n }\n },\n data() {\n return {\n name: '',\n cloneData: true,\n errors: []\n };\n },\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n actionResource() {\n return this.resources[0];\n },\n disableSave() {\n return this.cloneData && !this.name;\n }\n },\n methods: {\n close() {\n this.name = '';\n this.$emit('close');\n },\n async save(buttonCb) {\n if (!this.cloneData) {\n this.resources[0].goToClone();\n buttonCb(false);\n this.close();\n\n return;\n }\n\n try {\n const res = await this.actionResource.doAction('clone', { name: this.name });\n\n if (res._status === 200 || res._status === 204) {\n this.$store.dispatch('growl/success', {\n title: this.t('harvester.notification.title.succeed'),\n message: this.t('harvester.modal.volumeClone.message.success', { name: this.name })\n }, { root: true });\n this.close();\n buttonCb(true);\n } else {\n const error = [res?.data] || exceptionToErrorsArray(res);\n\n this['errors'] = error;\n buttonCb(false);\n }\n } catch (err) {\n const error = err?.data || err;\n const message = exceptionToErrorsArray(error);\n\n this['errors'] = message;\n buttonCb(false);\n }\n }\n },\n};\n</script>\n<template>\n <Card :show-highlight-border=\"false\">\n <template #title>\n {{ t('harvester.modal.volumeClone.title') }}\n </template>\n\n <template #body>\n <Checkbox\n v-model:value=\"cloneData\"\n class=\"mb-10\"\n label-key=\"harvester.modal.cloneVM.type\"\n />\n\n <LabeledInput\n v-show=\"cloneData\"\n v-model:value=\"name\"\n class=\"mb-20\"\n :label=\"t('harvester.modal.volumeClone.name')\"\n required\n />\n </template>\n\n <template #actions>\n <div class=\"actions\">\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.cancel') }}\n </button>\n <AsyncButton\n mode=\"create\"\n :disabled=\"disableSave\"\n @click=\"save\"\n />\n </div>\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n />\n </div>\n </template>\n </Card>\n</template>\n<style lang=\"scss\" scoped>\n.actions {\n width: 100%;\n}\n.buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n</style>\n","import { render } from \"./VolumeCloneDialog.vue?vue&type=template&id=571d94b4&scoped=true\"\nimport script from \"./VolumeCloneDialog.vue?vue&type=script&lang=js\"\nexport * from \"./VolumeCloneDialog.vue?vue&type=script&lang=js\"\n\nimport \"./VolumeCloneDialog.vue?vue&type=style&index=0&id=571d94b4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-571d94b4\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".copy-to-clipboard-text[data-v-d8c131ea]{white-space:nowrap}.copy-to-clipboard-text.plain[data-v-d8c131ea]{color:var(--body-text)}.copy-to-clipboard-text.plain[data-v-d8c131ea]:hover{text-decoration:none}.copy-to-clipboard-text.copied[data-v-d8c131ea]{pointer-events:none;color:var(--success)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".addon.with-tooltip[data-v-de90d6f0]{position:relative;right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-2bfd791b],.buttons[data-v-2bfd791b]{width:100%}.buttons[data-v-2bfd791b]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".modal-container[data-v-530bd8a8]{max-width:400px}.actions[data-v-530bd8a8]{width:100%;text-align:right}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-18d7e6fa]{text-align:right}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-336a14ce],.buttons[data-v-336a14ce]{width:100%}.buttons[data-v-336a14ce]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-44897704],.buttons[data-v-44897704]{width:100%}.buttons[data-v-44897704]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-bcaa7c4a],.buttons[data-v-bcaa7c4a]{width:100%}.buttons[data-v-bcaa7c4a]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-0cd7660b],.buttons[data-v-0cd7660b]{width:100%}.buttons[data-v-0cd7660b]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".body[data-v-093a01ba]{display:flex;flex-direction:column}.body-field[data-v-093a01ba]{margin-top:10px}.actions[data-v-093a01ba],.buttons[data-v-093a01ba]{width:100%}.buttons[data-v-093a01ba]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-e57e8be6],.buttons[data-v-e57e8be6]{width:100%}.buttons[data-v-e57e8be6]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-59cc760a],.buttons[data-v-59cc760a]{width:100%}.buttons[data-v-59cc760a]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-b0964c8c],.buttons[data-v-b0964c8c]{width:100%}.buttons[data-v-b0964c8c]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-8cf7507a],.buttons[data-v-8cf7507a]{width:100%}.buttons[data-v-8cf7507a]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-1106b2cc],.buttons[data-v-1106b2cc]{width:100%}.buttons[data-v-1106b2cc]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-f2cea8a0]{width:100%}.vm-list[data-v-f2cea8a0]{display:flex;flex-wrap:wrap}.buttons[data-v-f2cea8a0]{display:flex;justify-content:flex-end;width:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-44239a1b],.buttons[data-v-44239a1b]{width:100%}.buttons[data-v-44239a1b]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-5d55ff4f],.buttons[data-v-5d55ff4f]{width:100%}.buttons[data-v-5d55ff4f]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-60048f60],.buttons[data-v-60048f60]{width:100%}.buttons[data-v-60048f60]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-6701b372],.buttons[data-v-6701b372]{width:100%}.buttons[data-v-6701b372]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-e167c52e],.buttons[data-v-e167c52e]{width:100%}.buttons[data-v-e167c52e]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-283b2220],.buttons[data-v-283b2220]{width:100%}.buttons[data-v-283b2220]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-6bf42877],.buttons[data-v-6bf42877]{width:100%}.buttons[data-v-6bf42877]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".restart-modal[data-v-574c27ab]{z-index:45}.prompt-restart[data-v-574c27ab]{margin:0}.bottom[data-v-574c27ab]{display:flex;flex-direction:column;flex:1}.bottom .banner[data-v-574c27ab]{margin-top:0}.bottom .buttons[data-v-574c27ab]{display:flex;justify-content:flex-end;width:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-7d03279c],.buttons[data-v-7d03279c]{width:100%}.buttons[data-v-7d03279c]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-290c9c84],.buttons[data-v-290c9c84]{width:100%}.buttons[data-v-290c9c84]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-571d94b4],.buttons[data-v-571d94b4]{width:100%}.buttons[data-v-571d94b4]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./CopyToClipboardText.vue?vue&type=style&index=0&id=d8c131ea&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3ce8dc3a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./UnitInput.vue?vue&type=style&index=0&id=de90d6f0&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"193727f5\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./CloneVmDialog.vue?vue&type=style&index=0&id=2bfd791b&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0d6331e5\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./ConfirmExecutionDialog.vue?vue&type=style&index=0&id=530bd8a8&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"49b8e237\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./ConfirmRelatedToRemoveDialog.vue?vue&type=style&index=0&id=18d7e6fa&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1bd6ffc2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./DeepCloneVmDialog.vue?vue&type=style&index=0&id=336a14ce&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5ab9c184\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./EnablePciPassthrough.vue?vue&type=style&index=0&id=44897704&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e3d240be\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./EnableSriovDevice.vue?vue&type=style&index=0&id=bcaa7c4a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a9664cc8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./EnableUSBPassthrough.vue?vue&type=style&index=0&id=0cd7660b&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"fdfdda18\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./EnableVGpuDevice.vue?vue&type=style&index=0&id=093a01ba&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f98e315a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterAddHotplugModal.vue?vue&type=style&index=0&id=e57e8be6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8e476556\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterBackupModal.vue?vue&type=style&index=0&id=59cc760a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"125688d0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterCloneTemplate.vue?vue&type=style&index=0&id=b0964c8c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"72a488c1\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterEjectCDROMDialog.vue?vue&type=style&index=0&id=8cf7507a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5b5ddc36\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterExportImageDialog.vue?vue&type=style&index=0&id=1106b2cc&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7d8a92dc\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterMaintenanceDialog.vue?vue&type=style&index=0&id=f2cea8a0&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8948f2e0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterMigrationDialog.vue?vue&type=style&index=0&id=44239a1b&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5acd8c36\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterQuotaDialog.vue?vue&type=style&index=0&id=5d55ff4f&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4ddd92fd\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterRestoreDialog.vue?vue&type=style&index=0&id=60048f60&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"10f5f27c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterUnplugVolume.vue?vue&type=style&index=0&id=6701b372&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5bbfbea4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterVMSnapshotDialog.vue?vue&type=style&index=0&id=e167c52e&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"548213e4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterVlanConfigMigrateDialog.vue?vue&type=style&index=0&id=283b2220&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"164e40ef\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./MessageBox.vue?vue&type=style&index=0&id=6bf42877&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"64c5083c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./RestartVMDialog.vue?vue&type=style&index=0&id=574c27ab&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"37a21e9a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./RestoreSnapshotDialog.vue?vue&type=style&index=0&id=7d03279c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6202193a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./SnapshotDialog.vue?vue&type=style&index=0&id=290c9c84&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3204fb1c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./VolumeCloneDialog.vue?vue&type=style&index=0&id=571d94b4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"886ce63c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["$props","text","_createElementBlock","key","class","_normalizeClass","$data","copied","plain","href","onClick","_cache","args","$options","clicked","_createTextVNode","_toDisplayString","_createElementVNode","_createCommentVNode","emits","props","type","String","required","Boolean","default","data","methods","event","this","preventDefault","copyTextToClipboard","then","t","target","tagName","parentElement","setTimeout","catch","e","$emit","exceptionToErrorsArray","__exports__","render","_createBlock","_component_LabeledInput","_mergeProps","ref","value","displayValue","_ctx","$attrs","min","mode","label","delay","labelKey","tooltip","tooltipKey","placeholder","hideArrows","onChange","$event","update","onBlur","suffix","_withCtx","displayUnit","_","components","LabeledInput","outputAs","outputModifier","inputExponent","Number","baseUnit","increment","_EDIT","Object","positive","computed","unit","out","UNITS","FRACTIONAL","parsedValue","parseSi","formatSi","addSuffix","maxExponent","minExponent","focus","comp","$refs","inputValue","parseInt","_component_Card","title","body","_createVNode","_component_Checkbox","cloneData","name","actions","_hoisted_1","close","_component_AsyncButton","disabled","create","_Fragment","_renderList","errors","err","i","_component_Banner","AsyncButton","Banner","Checkbox","Card","resources","Array","mapGetters","actionResource","buttonCb","goToClone","res","doAction","targetVm","_status","$store","dispatch","message","root","error","_hoisted_2","warningMessageKey","names","resourceNames","_hoisted_3","protip","_hoisted_4","applyDisabled","apply","mapState","modalData","map","obj","nameDisplay","slice","reduce","escapeHtml","length","plusMore","remaining","count","types","Set","array","each","push","size","schema","getters","alternateLabel","buttonDone","resource","doActionGrowl","action","nameToMatch","_component_CopyToClipboardText","id","confirmName","_hoisted_5","deleteDisabled","remove","CopyToClipboardText","color","save","isSingleProduct","userName","user","username","inStore","pt","HCI","PCI_CLAIM","metadata","ownerReferences","apiVersion","kind","uid","spec","address","status","nodeName","numVFs","valueModifiers","number","numVFsHistory","watch","neu","parseFloat","_component_t","k","raw","USB_CLAIM","pciAddress","_component_LabeledSelect","options","availableTypes","searchable","LabeledSelect","vGPUTypeName","keys","enabled","diskName","volumeName","volumeOption","fetch","allPVCs","PVC","PVCs","filter","P","namespace","sortBy","pvc","annotations","HCI_ANNOTATIONS","IMAGE_ID","attachVM","volumeSourceName","vm","backUpName","withData","templateName","description","allDisk","disk","diskNames","disks","template","domain","devices","isArray","forEach","D","cdrom","isDeleteDisabled","updateNames","backupName","handler","deep","namespaces","storageClassName","storageClassOptions","disableSave","hash","storages","STORAGE_CLASS","allHash","defaultStorage","find","s","isDefault","choices","NAMESPACE","N","isSystem","parameters","backingImage","displayName","force","onInputForce","ucFirst","unhealthyVMs","unhealthyVM","vms","_component_BadgeState","BadgeState","improveMaintenanceModeFeatureEnabled","v","isCpuPinning","cpuPinningAlertMessage","nodeNameList","hasAction","$dispatch","actionName","opt","availableNodes","nodes","vmi","vmiResources","VMI","NODE","n","isNotSelfNode","includes","isNotWitnessNode","isEtcd","matchingCpuManagerConfig","isCPUManagerEnabled","custom","HOST_CUSTOM_NAME","_component_UnitInput","totalSnapshotSize","UnitInput","created","snapshotSizeQuota","totalSnapshotSizeQuota","backupOption","saveRestore","backups","BACKUP","attachBackup","B","O","randomStr","toLowerCase","snapshotName","snapshotNamespace","snapshot","getOwnerReferencesFromVM","source","apiGroup","BACKUP_TYPE","SNAPSHOT","clusterNetwork","clusterNetworks","CLUSTER_NETWORK","c","clone","url","VLAN_CONFIG","method","contentKey","ok","callback","_component_app_modal","width","height","onClose","AppModal","resolve","console","showStorageClass","currentStorageName","provisioner","STORAGE_PROVISIONER","volume","payload","___CSS_LOADER_EXPORT___","module","content","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.edit.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.edit.js new file mode 100644 index 00000000..22c8a9c1 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.edit.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[739],{49306:function(e,t,a){"use strict";a.d(t,{A:function(){return h}});var o=a(9274);const r={class:"label"},s={class:"text-label"},l={class:"mt-10"},n=["onClick"],i={key:1,class:"tag input"};function d(e,t,a,d,c,u){const p=(0,o.resolveComponent)("t"),m=(0,o.resolveComponent)("Tag");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[a.labelKey?((0,o.openBlock)(),(0,o.createBlock)(p,{key:0,k:a.labelKey},null,8,["k"])):a.label?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:1},[(0,o.createTextVNode)((0,o.toDisplayString)(a.label),1)],64)):(0,o.createCommentVNode)("",!0)])]),(0,o.createElementVNode)("div",l,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(a.value,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(m,{key:t,class:"tag"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e),1),u.canRemove?((0,o.openBlock)(),(0,o.createElementBlock)("i",{key:0,class:"icon icon-close ml-5 icon-sm",onClick:t=>u.onRemoveTag(e)},null,8,n)):(0,o.createCommentVNode)("",!0)])),_:2},1024)))),128)),u.addVisible&&!c.inputVisible?((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:0,class:"tag add",onClick:t[0]||(t[0]=(...e)=>u.onClickPlusButton&&u.onClickPlusButton(...e))},[t[4]||(t[4]=(0,o.createElementVNode)("i",{class:"icon icon-plus icon-sm"},null,-1)),(0,o.createElementVNode)("span",null,[a.addLabelKey?((0,o.openBlock)(),(0,o.createBlock)(p,{key:0,k:a.addLabelKey},null,8,["k"])):a.addLabel?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:1},[(0,o.createTextVNode)((0,o.toDisplayString)(a.addLabel),1)],64)):(0,o.createCommentVNode)("",!0)])])):u.addVisible&&c.inputVisible?((0,o.openBlock)(),(0,o.createElementBlock)("span",i,[(0,o.withDirectives)((0,o.createElementVNode)("input",{ref:"addTagInput","onUpdate:modelValue":t[1]||(t[1]=e=>c.inputValue=e),type:"text",onBlur:t[2]||(t[2]=(...e)=>u.confirmAdd&&u.confirmAdd(...e)),onKeydown:t[3]||(t[3]=(0,o.withKeys)((0,o.withModifiers)(((...e)=>u.confirmAdd&&u.confirmAdd(...e)),["prevent"]),["enter"]))},null,544),[[o.vModelText,c.inputValue]])])):(0,o.createCommentVNode)("",!0)])])}var c=a(14220),u=a(8529),p={name:"Tags",emits:["update:value"],components:{Tag:u.A},props:{value:{type:Array,required:!0},label:{type:String,default:""},labelKey:{type:String,default:""},addLabel:{type:String,default:""},addLabelKey:{type:String,default:""},canAdd:{type:Boolean,default:!0},mode:{type:String,default:c.YQ},disabled:{type:Boolean,default:!1}},data(){return{tags:this.value,inputVisible:!1,inputValue:""}},computed:{isCreate(){return this.mode===c.YQ},isView(){return this.mode===c.nW},isEdit(){return this.mode===c.G5},canRemove(){return!this.isView},addVisible(){return this.canAdd&&!this.isView}},methods:{onClickPlusButton(){this.inputVisible=!0,this.$nextTick((()=>{this.$refs.addTagInput&&this.$refs.addTagInput.focus()}))},confirmAdd(){this.inputValue&&!this.value.includes(this.inputValue)&&(this.tags.push(this.inputValue),this.$emit("update:value",this.tags)),this.inputValue="",this.inputVisible=!1},onRemoveTag(e){this.tags=this.tags.filter((t=>t!==e)),this.$emit("update:value",this.tags)}}},m=(a(61051),a(47433));const v=(0,m.A)(p,[["render",d],["__scopeId","data-v-6b2f75f1"]]);var h=v},36955:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return m}});var o=a(9274);const r={class:"row mb-20"},s={class:"col span-12"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("FileSelector"),c=(0,o.resolveComponent)("TextAreaAutoGrow");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(d,{class:"btn btn-sm bg-primary mb-10",label:e.t("generic.readFromFile"),onSelected:i.onKeySelected},null,8,["label","onSelected"]),(0,o.createElementVNode)("div",null,[(0,o.createVNode)(c,{value:e.value.value,"onUpdate:value":t[0]||(t[0]=t=>e.value.value=t),"min-height":254},null,8,["value"])])])])])}var n=a(91825),i=a(29649),d=a(6879),c={name:"HarvesterAdditionalCA",components:{FileSelector:i.A,TextAreaAutoGrow:d.V},mixins:[n.A],methods:{onKeySelected:(0,i.B)("value.value")}},u=a(47433);const p=(0,u.A)(c,[["render",l]]);var m=p},53867:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);const r={class:"row"},s={class:"col span-12"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(d,{value:n.ratio,"onUpdate:value":[t[0]||(t[0]=e=>n.ratio=e),i.update],label:e.t("harvester.setting.ratio")},null,8,["value","label","onUpdate:value"])])])}var n=a(91825),i=a(79380),d={name:"AdditionalGuestMemoryOverheadRatio",components:{LabeledInput:i.o},mixins:[n.A],data(){return{ratio:this.value.value||this.value.default}},methods:{update(){this.value["value"]=this.ratio},useDefault(){this["ratio"]=this.value.default,this.update()}}},c=a(47433);const u=(0,c.A)(d,[["render",l]]);var p=u},32158:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return m}});var o=a(9274);const r={class:"row"},s={class:"col span-12"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("RadioGroup"),c=(0,o.resolveComponent)("UnitInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(d,{value:n.parseDefaultValue.enable,"onUpdate:value":[t[0]||(t[0]=e=>n.parseDefaultValue.enable=e),i.update],class:"mb-20",name:"model",options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","labels","onUpdate:value"]),n.parseDefaultValue.enable?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,value:n.parseDefaultValue.expiringInHours,"onUpdate:value":[t[1]||(t[1]=e=>n.parseDefaultValue.expiringInHours=e),i.update],valueModifiers:{number:!0},class:"mb-20",min:1,max:8759,required:!0,suffix:1===n.parseDefaultValue.expiringInHours?"Hour":"Hours",label:e.t("harvester.setting.autoRotateRKE2Certs.expiringInHours"),mode:e.mode},null,8,["value","suffix","label","mode","onUpdate:value"])):(0,o.createCommentVNode)("",!0)])])}var n=a(91825),i=a(10196),d=a(77290),c={name:"HarvesterAutoRotateRKE2Certs",components:{RadioGroup:i.z,UnitInput:d.A},mixins:[n.A],data(){let e={};try{e=JSON.parse(this.value.value)}catch(t){e=JSON.parse(this.value.default)}return{parseDefaultValue:e}},created(){this.update()},methods:{update(){const e=JSON.stringify(this.parseDefaultValue);this.value["value"]=e}},watch:{value:{handler(e){const t=JSON.parse(e.value);this["parseDefaultValue"]=t},deep:!0}}},u=(a(50072),a(47433));const p=(0,u.A)(c,[["render",l],["__scopeId","data-v-034d9714"]]);var m=p},65325:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const r={class:"col span-12"},s={class:"mb-20"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("LabeledSelect"),c=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("Tip"),p=(0,o.resolveComponent)("Password"),m=(0,o.resolveComponent)("MessageLink");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:"row",onInput:t[7]||(t[7]=(...e)=>i.update&&i.update(...e))},[(0,o.createElementVNode)("div",r,[(0,o.createVNode)(d,{value:n.parseDefaultValue.type,"onUpdate:value":[t[0]||(t[0]=e=>n.parseDefaultValue.type=e),i.update],class:"mb-20",label:e.t("harvester.fields.type"),options:i.typeOption},null,8,["value","label","options","onUpdate:value"]),(0,o.createVNode)(c,{value:n.parseDefaultValue.endpoint,"onUpdate:value":t[1]||(t[1]=e=>n.parseDefaultValue.endpoint=e),class:"mb-5",placeholder:i.endpointPlaceholder,mode:e.mode,label:"Endpoint"},null,8,["value","placeholder","mode"]),(0,o.createVNode)(u,{class:"mb-20",icon:"icon icon-info",text:e.t("harvester.backup.backupTargetTip")},null,8,["text"]),i.isS3?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:0},[(0,o.createVNode)(c,{value:n.parseDefaultValue.bucketName,"onUpdate:value":t[2]||(t[2]=e=>n.parseDefaultValue.bucketName=e),class:"mb-20",mode:e.mode,label:"Bucket Name",required:""},null,8,["value","mode"]),(0,o.createVNode)(c,{value:n.parseDefaultValue.bucketRegion,"onUpdate:value":t[3]||(t[3]=e=>n.parseDefaultValue.bucketRegion=e),class:"mb-20",mode:e.mode,label:"Bucket Region",required:""},null,8,["value","mode"]),(0,o.createVNode)(c,{value:n.parseDefaultValue.accessKeyId,"onUpdate:value":t[4]||(t[4]=e=>n.parseDefaultValue.accessKeyId=e),placeholder:e.t("harvester.setting.placeholder.accessKeyId"),class:"mb-20",mode:e.mode,label:"Access Key ID",required:""},null,8,["value","placeholder","mode"]),(0,o.createVNode)(p,{value:n.parseDefaultValue.secretAccessKey,"onUpdate:value":t[5]||(t[5]=e=>n.parseDefaultValue.secretAccessKey=e),class:"mb-20",mode:e.mode,placeholder:e.t("harvester.setting.placeholder.secretAccessKey"),label:"Secret Access Key",required:""},null,8,["value","mode","placeholder"]),(0,o.createVNode)(d,{value:n.parseDefaultValue.virtualHostedStyle,"onUpdate:value":[t[6]||(t[6]=e=>n.parseDefaultValue.virtualHostedStyle=e),i.update],class:"mb-20",label:"Virtual Hosted-Style",options:i.virtualHostedStyleOptions},null,8,["value","options","onUpdate:value"]),(0,o.createElementVNode)("div",s,[(0,o.createVNode)(u,{icon:"icon icon-info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(m,{to:i.toCA,target:"_blank","prefix-label":"harvester.setting.message.ca.prefix","middle-label":"harvester.setting.message.ca.middle","suffix-label":"harvester.setting.message.ca.suffix"},null,8,["to"])])),_:1})])],64)):(0,o.createCommentVNode)("",!0)])],32)}var n=a(29349),i=a(18401),d=a(96413),c=a(91825),u=a(79380),p=a(77988),m=a(50889);const v="s3";var h={name:"HarvesterEditBackupTarget",components:{LabeledInput:u.o,LabeledSelect:p.A,Tip:n.A,Password:i.A,MessageLink:d.A},mixins:[c.A],data(){let e={};try{e=JSON.parse(this.value.value)}catch(t){e={type:"",endpoint:""}}return e.type||(e.type=v),e.virtualHostedStyle=!1,{parseDefaultValue:e,errors:[]}},computed:{typeOption(){return[{value:"nfs",label:"NFS"},{value:v,label:"S3"}]},virtualHostedStyleOptions(){return[{value:!0,label:"True"},{value:!1,label:"False"}]},isS3(){return this.parseDefaultValue.type===v},endpointPlaceholder(){return this.isS3?"":"nfs://server:/path/"},toCA(){return`${m.EP.ADDITIONAL_CA}?mode=edit`}},watch:{value:{handler(e){let t;try{t=JSON.parse(e.value)}catch(a){t={type:"",endpoint:""}}this["parseDefaultValue"]=t,this.update()},deep:!0}},created(){this.update()},methods:{update(){this.isS3||(delete this.parseDefaultValue.accessKeyId,delete this.parseDefaultValue.secretAccessKey,delete this.parseDefaultValue.bucketName,delete this.parseDefaultValue.bucketRegion,delete this.parseDefaultValue.virtualHostedStyle,delete this.parseDefaultValue.cert),this.isS3&&!this.parseDefaultValue.virtualHostedStyle&&(this.parseDefaultValue.virtualHostedStyle=!1),this.parseDefaultValue.type?this.value["value"]=JSON.stringify(this.parseDefaultValue):delete this.value["value"]},useDefault(){this["parseDefaultValue"]={type:"",endpoint:""}}}},b=(a(23628),a(47433));const g=(0,b.A)(h,[["render",l],["__scopeId","data-v-62a46348"]]);var f=g},90955:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return M}});var o=a(9274);const r=["onClick"],s={class:"row mb-20"},l={class:"col span-12"},n={class:"mb-20"},i={class:"row mb-20"},d=["onClick"],c={class:"row mb-20"},u={class:"col span-12"},p={class:"col span-12"},m={class:"row mb-20"},v={class:"col span-6"},h={class:"col span-6"},b={class:"row mb-20"},g={class:"col span-6"},f={class:"col span-6"},k={class:"row"};function y(e,t,a,y,N,V){const C=(0,o.resolveComponent)("LabeledInput"),w=(0,o.resolveComponent)("LabeledSelect"),E=(0,o.resolveComponent)("KeyValue"),S=(0,o.resolveComponent)("InfoBox");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("h3",null,(0,o.toDisplayString)(e.t("harvester.setting.containerdRegistry.mirrors.mirrors")),1),(0,o.createElementVNode)("div",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(N.mirrors,((d,c)=>((0,o.openBlock)(),(0,o.createBlock)(S,{key:d.idx,class:"box"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("button",{type:"button",class:"role-link btn btn-sm remove",onClick:e=>V.remove("mirrors",c)},t[2]||(t[2]=[(0,o.createElementVNode)("i",{class:"icon icon-2x icon-x"},null,-1)]),8,r),(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(C,{value:d.key,"onUpdate:value":[e=>d.key=e,V.update],mode:a.mode,required:"","label-key":"harvester.setting.containerdRegistry.mirrors.registryName",onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","onUpdate:value","mode","onKeydown"])])]),(0,o.createElementVNode)("div",n,[(0,o.createVNode)(w,{value:d.value.Endpoints,"onUpdate:value":[e=>d.value.Endpoints=e,V.update],mode:a.mode,required:"","label-key":"harvester.setting.containerdRegistry.mirrors.endpoints",multiple:!0,taggable:!0,searchable:!0,options:[],onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","onUpdate:value","mode","onKeydown"])]),(0,o.createElementVNode)("div",i,[(0,o.createVNode)(E,{value:d.value.Rewrites,"onUpdate:value":[e=>d.value.Rewrites=e,V.update],"add-label":e.t("harvester.setting.containerdRegistry.mirrors.rewrite.addRewrite"),mode:a.mode,title:e.t("harvester.setting.containerdRegistry.mirrors.rewrite.rewrite"),"read-allowed":!1,"value-can-be-empty":!0,onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","onUpdate:value","add-label","mode","title","onKeydown"])])])),_:2},1024)))),128))]),(0,o.createElementVNode)("button",{class:"btn btn-sm role-primary",onClick:t[0]||(t[0]=(0,o.withModifiers)(((...e)=>V.addMirror&&V.addMirror(...e)),["self"]))},(0,o.toDisplayString)(e.t("harvester.setting.containerdRegistry.mirrors.addMirror")),1),t[4]||(t[4]=(0,o.createElementVNode)("hr",{class:"divider mt-20 mb-20"},null,-1)),(0,o.createElementVNode)("h3",null,(0,o.toDisplayString)(e.t("harvester.setting.containerdRegistry.configs.configs")),1),(0,o.createElementVNode)("div",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(N.configs,((r,s)=>((0,o.openBlock)(),(0,o.createBlock)(S,{key:r.idx,class:"box"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("button",{type:"button",class:"role-link btn btn-sm remove",onClick:e=>V.remove("configs",s)},t[3]||(t[3]=[(0,o.createElementVNode)("i",{class:"icon icon-2x icon-x"},null,-1)]),8,d),(0,o.createElementVNode)("div",c,[(0,o.createElementVNode)("div",u,[(0,o.createElementVNode)("div",p,[(0,o.createVNode)(C,{value:r.key,"onUpdate:value":[e=>r.key=e,V.update],mode:a.mode,placeholder:e.t("harvester.setting.containerdRegistry.configs.registryPlaceholder"),"label-key":"harvester.setting.containerdRegistry.configs.registryEDQNorIP"},null,8,["value","onUpdate:value","mode","placeholder"])])])]),(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,[(0,o.createVNode)(C,{value:r.value.Auth.Username,"onUpdate:value":[e=>r.value.Auth.Username=e,V.update],mode:a.mode,"label-key":"harvester.setting.containerdRegistry.configs.username"},null,8,["value","onUpdate:value","mode"])]),(0,o.createElementVNode)("div",h,[(0,o.createVNode)(C,{value:r.value.Auth.Password,"onUpdate:value":[e=>r.value.Auth.Password=e,V.update],mode:a.mode,"label-key":"harvester.setting.containerdRegistry.configs.password"},null,8,["value","onUpdate:value","mode"])])]),(0,o.createElementVNode)("div",b,[(0,o.createElementVNode)("div",g,[(0,o.createVNode)(C,{value:r.value.Auth.Auth,"onUpdate:value":[e=>r.value.Auth.Auth=e,V.update],mode:a.mode,type:"multiline","min-height":150,"label-key":"harvester.setting.containerdRegistry.configs.auth"},null,8,["value","onUpdate:value","mode"])]),(0,o.createElementVNode)("div",f,[(0,o.createVNode)(C,{value:r.value.Auth.IdentityToken,"onUpdate:value":[e=>r.value.Auth.IdentityToken=e,V.update],mode:a.mode,type:"multiline","min-height":150,"label-key":"harvester.setting.containerdRegistry.configs.identityToken"},null,8,["value","onUpdate:value","mode"])])]),(0,o.createElementVNode)("div",k,[(0,o.createVNode)(w,{value:r.value.TLS.InsecureSkipVerify,"onUpdate:value":[e=>r.value.TLS.InsecureSkipVerify=e,V.update],mode:a.mode,"label-key":"harvester.setting.containerdRegistry.configs.insecureSkipVerify",options:V.insecureSkipVerifyOption},null,8,["value","onUpdate:value","mode","options"])])])),_:2},1024)))),128)),(0,o.createElementVNode)("button",{class:"btn btn-sm role-primary",onClick:t[1]||(t[1]=(...e)=>V.addConfig&&V.addConfig(...e))},(0,o.toDisplayString)(e.t("harvester.setting.containerdRegistry.configs.addConfig")),1)])])}var N=a(79380),V=a(14220),C=a(92043),w=a(77988),E=a(25088),S=a(26962),B=a(76978),A={name:"HarvesterContainerdRegistry",components:{InfoBox:S.A,KeyValue:E.A,LabeledInput:N.o,LabeledSelect:w.A},props:{mode:{type:String,default:V.G5},value:{type:Object,default:()=>({})},registerBeforeHook:{type:Function,required:!0}},data(){const e={Endpoints:[],Rewrites:{}},t={Auth:{Username:"",Password:"",Auth:"",IdentityToken:""},TLS:{InsecureSkipVerify:!1}};let a={};const o={Mirrors:{"":(0,B.o8)(e)},Configs:{}};try{a=JSON.parse(this.value.value)}catch(c){a=o}Object.keys(a).length||(a=o);const r=a.Mirrors||{},s=a.Configs||{},l=Object.keys(r),n=Object.keys(s),i=l.map((e=>({key:e,value:a.Mirrors[e],idx:(0,C.vx)(5).toLowerCase()}))),d=n.map((e=>(a.Configs[e]?.Auth||(a.Configs[e].Auth=t.Auth),{key:e,value:a.Configs[e],idx:(0,C.vx)(5).toLowerCase()})));return{mirrors:i,configs:d,originMirror:e,originConfig:t,mirrorsKeys:l,configsKeys:n,errors:[]}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.willSave,"willSave")},computed:{insecureSkipVerifyOption(){return[{label:"True",value:!0},{label:"False",value:!1}]}},methods:{willSave(){const e=[];if(this.value.value)try{JSON.parse(this.value.value),this.mirrors.forEach((t=>{t.key||e.push(this.t("validation.required",{key:this.t("harvester.setting.containerdRegistry.mirrors.registryName")},!0)),0===t.value.Endpoints.length&&e.push(this.t("validation.required",{key:this.t("harvester.setting.containerdRegistry.mirrors.endpoints")},!0))})),this.configs.forEach((t=>{t.key||e.push(this.t("validation.required",{key:this.t("harvester.setting.containerdRegistry.configs.registryEDQNorIP")},!0))}))}catch(t){}return e.length>0?Promise.reject(e):Promise.resolve()},update(){const e={},t={};this.mirrors.forEach((t=>{e[t.key]=t.value})),this.configs.forEach((e=>{t[e.key]=e.value}));const a={Mirrors:e,Configs:t};Object.keys(e).length||delete a.Mirrors,Object.keys(t).length||delete a.Configs;const o=Object.keys(a).length?JSON.stringify(a):"";this.value["value"]=o},addMirror(){this.mirrors.push({key:"",value:(0,B.o8)(this.originMirror),idx:(0,C.vx)(5).toLowerCase()}),this.update()},addConfig(){this.configs.push({key:"",value:(0,B.o8)(this.originConfig),idx:(0,C.vx)(5).toLowerCase()}),this.update()},remove(e,t){this[e].splice(t,1),this.update()}},watch:{value:{handler(e){e.value||(this["mirrors"]=[],this["configs"]=[],this.update())},deep:!0}}},x=(a(88789),a(47433));const D=(0,x.A)(A,[["render",y],["__scopeId","data-v-d281fc5e"]]);var M=D},91932:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return y}});var o=a(9274);const r=["disabled","onClick"],s={class:"row"},l={class:"col span-4"},n={class:"col span-4"},i={class:"col span-4"},d=["disabled"];function c(e,t,a,c,u,p){const m=(0,o.resolveComponent)("LabeledSelect"),v=(0,o.resolveComponent)("InfoBox");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(u.configArr,((d,c)=>((0,o.openBlock)(),(0,o.createBlock)(v,{key:c},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("button",{disabled:p.disableEdit(d.key),type:"button",class:"role-link btn btn-sm remove",onClick:e=>p.remove(c)},t[1]||(t[1]=[(0,o.createElementVNode)("i",{class:"icon icon-x"},null,-1)]),8,r),(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(m,{value:d.key,"onUpdate:value":[e=>d.key=e,p.update],mode:a.mode,required:"",disabled:p.disableEdit(d.key),"label-key":"harvester.setting.csiDriverConfig.provisioner",searchable:!0,options:p.provisioners,onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","onUpdate:value","mode","disabled","options","onKeydown"])]),(0,o.createElementVNode)("div",n,[(0,o.createVNode)(m,{value:d.value.volumeSnapshotClassName,"onUpdate:value":[e=>d.value.volumeSnapshotClassName=e,p.update],mode:a.mode,required:"",disabled:p.disableEdit(d.key),options:p.getVolumeSnapshotOptions(d.key),label:e.t("harvester.setting.csiDriverConfig.volumeSnapshotClassName"),onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","onUpdate:value","mode","disabled","options","label","onKeydown"])]),(0,o.createElementVNode)("div",i,[(0,o.createVNode)(m,{value:d.value.backupVolumeSnapshotClassName,"onUpdate:value":[e=>d.value.backupVolumeSnapshotClassName=e,p.update],mode:a.mode,required:"",disabled:p.disableEdit(d.key),options:p.getVolumeSnapshotOptions(d.key),label:e.t("harvester.setting.csiDriverConfig.backupVolumeSnapshotClassName"),onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","onUpdate:value","mode","disabled","options","label","onKeydown"])])])])),_:2},1024)))),128)),(0,o.createElementVNode)("button",{class:"btn btn-sm role-primary",disabled:p.disableAdd,onClick:t[0]||(t[0]=(0,o.withModifiers)(((...e)=>p.add&&p.add(...e)),["self"]))},(0,o.toDisplayString)(e.t("generic.add")),9,d)])}var u=a(14220),p=a(77988),m=a(26962),v=a(88339),h=a(32766),b=a(35664),g={name:"HarvesterCsiDriver",components:{InfoBox:m.A,LabeledSelect:p.A},props:{mode:{type:String,default:u.G5},value:{type:Object,default:()=>({})},registerBeforeHook:{type:Function,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={csiDrivers:this.$store.dispatch(`${e}/findAll`,{type:h.Zq}),volumeSnapshotClass:this.$store.dispatch(`${e}/findAll`,{type:h.nE})};await(0,v.kR)(t)},data(){const e=this.value.value||this.value.default,t=this.parseValue(e);return{configArr:t}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.willSave,"willSave")},computed:{provisioners(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](h.Zq)||[];return t.filter((e=>!this.configArr.map((e=>e.key)).includes(e.name))).map((e=>e.name))},disableAdd(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](h.Zq)||[];return this.configArr.length>=t.length}},methods:{getVolumeSnapshotOptions(e){const t=this.$store.getters["currentProduct"].inStore,a=this.$store.getters[`${t}/all`](h.nE)||[];return a.filter((t=>t.driver===e)).map((e=>({label:e.name,value:e.name})))},parseValue(e){const t=[];let a={};try{a=JSON.parse(e)}catch(o){new Error("json error")}for(const[r,s]of Object.entries(a))t.push({key:r,value:s});return t},update(){const e={};this.configArr.map((t=>{e[t.key]=t.value}));const t=this.configArr.length?JSON.stringify(e):"";this.value["value"]=t},willSave(){this.update();const e=[];try{this.configArr.forEach((t=>{t.key||e.push(this.t("validation.required",{key:this.t("harvester.setting.csiDriverConfig.provisioner")},!0)),t.value.volumeSnapshotClassName||e.push(this.t("validation.required",{key:this.t("harvester.setting.csiDriverConfig.volumeSnapshotClassName")},!0)),t.value.backupVolumeSnapshotClassName||e.push(this.t("validation.required",{key:this.t("harvester.setting.csiDriverConfig.backupVolumeSnapshotClassName")},!0))}))}catch(t){}return e.length>0?Promise.reject(e):Promise.resolve()},remove(e){this.configArr.splice(e,1)},disableEdit(e){return e===b.lI},add(){this.configArr.push({key:"",value:{volumeSnapshotClassName:"",backupVolumeSnapshotClassName:""}})},useDefault(){const e=this.parseValue(this.value.default);this["configArr"]=e,this.update()}}},f=(a(12164),a(47433));const k=(0,f.A)(g,[["render",c],["__scopeId","data-v-34b9f214"]]);var y=k},59392:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);const r={class:"row"},s={class:"col span-12"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("UnitInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(d,{value:n.terminationGracePeriodSeconds,"onUpdate:value":[t[0]||(t[0]=e=>n.terminationGracePeriodSeconds=e),i.update],valueModifiers:{number:!0},suffix:1===n.terminationGracePeriodSeconds?"Second":"Seconds",label:e.t("harvester.virtualMachine.terminationGracePeriodSeconds.label"),mode:e.mode},null,8,["value","suffix","label","mode","onUpdate:value"])])])}var n=a(91825),i=a(77290),d={name:"DefaultVMTerminationGracePeriodSeconds",components:{UnitInput:i.A},mixins:[n.A],data(){return{terminationGracePeriodSeconds:this.value.value||this.value.default}},methods:{update(){this.value["value"]=String(this.terminationGracePeriodSeconds)},useDefault(){this["terminationGracePeriodSeconds"]=Number(this.value.default),this.update()}}},c=a(47433);const u=(0,c.A)(d,[["render",l]]);var p=u},18093:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);const r={class:"col span-12"};function s(e,t,a,s,l,n){const i=(0,o.resolveComponent)("t"),d=(0,o.resolveComponent)("Banner"),c=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createVNode)(d,{color:"warning"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{k:"harvester.setting.httpProxy.warning",raw:!0})])),_:1}),(0,o.createElementVNode)("div",{class:"row","onUpdate:value":t[3]||(t[3]=(...e)=>n.update&&n.update(...e))},[(0,o.createElementVNode)("div",r,[(0,o.createVNode)(c,{value:l.parseDefaultValue.httpProxy,"onUpdate:value":t[0]||(t[0]=e=>l.parseDefaultValue.httpProxy=e),class:"mb-20",mode:e.mode,label:"http-proxy"},null,8,["value","mode"]),(0,o.createVNode)(c,{value:l.parseDefaultValue.httpsProxy,"onUpdate:value":t[1]||(t[1]=e=>l.parseDefaultValue.httpsProxy=e),class:"mb-20",mode:e.mode,label:"https-proxy"},null,8,["value","mode"]),(0,o.createVNode)(c,{value:l.parseDefaultValue.noProxy,"onUpdate:value":t[2]||(t[2]=e=>l.parseDefaultValue.noProxy=e),class:"mb-20",mode:e.mode,label:"no-proxy"},null,8,["value","mode"])])],32)])}var l=a(91825),n=a(9980),i=a(79380),d={name:"HarvesterHttpProxy",components:{Banner:n.l,LabeledInput:i.o},mixins:[l.A],data(){let e={};try{e=JSON.parse(this.value.value)}catch(t){e=JSON.parse(this.value.default)}return{parseDefaultValue:e,errors:[]}},created(){this.update()},methods:{update(){const e=JSON.stringify(this.parseDefaultValue);this.value["value"]=e}},watch:{value:{handler(e){const t=JSON.parse(e.value);this["parseDefaultValue"]=t},deep:!0}}},c=a(47433);const u=(0,c.A)(d,[["render",s]]);var p=u},28436:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);const r={class:"row"},s={class:"col span-12"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("ArrayList");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(d,{value:n.parseDefaultValue.ntpServers,"onUpdate:value":[t[0]||(t[0]=e=>n.parseDefaultValue.ntpServers=e),i.update],title:e.t("harvester.host.ntp.label"),protip:e.t("harvester.host.ntp.tips"),"value-placeholder":e.t("harvester.host.ntp.placeholder"),mode:e.mode},null,8,["value","title","protip","value-placeholder","mode","onUpdate:value"])])])}var n=a(91825),i=a(22133),d={name:"HarvesterNtpServersConfig",components:{ArrayList:i.A},mixins:[n.A],data(){let e={};try{e=JSON.parse(this.value.value)}catch(t){e={ntpServers:[]}}return{parseDefaultValue:e}},watch:{value:{handler(e){let t;try{t=JSON.parse(e.value)}catch(a){t={ntpServers:[]}}this["parseDefaultValue"]=t,this.update()},deep:!0}},methods:{useDefault(){const e={ntpServers:[]};this["parseDefaultValue"]=e},update(){const e=JSON.stringify(this.parseDefaultValue);this.value["value"]=e}}},c=a(47433);const u=(0,c.A)(d,[["render",l]]);var p=u},70726:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);const r={class:"row"},s={class:"col span-12"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("UnitInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(d,{value:n.parseDefaultValue.cpu,"onUpdate:value":[t[0]||(t[0]=e=>n.parseDefaultValue.cpu=e),i.update],"label-key":"harvester.generic.cpu",suffix:"%",delay:0,required:"",mode:e.mode,class:"mb-20"},null,8,["value","mode","onUpdate:value"]),(0,o.createVNode)(d,{value:n.parseDefaultValue.memory,"onUpdate:value":[t[1]||(t[1]=e=>n.parseDefaultValue.memory=e),i.update],"label-key":"harvester.generic.memory",suffix:"%",delay:0,required:"",mode:e.mode,class:"mb-20"},null,8,["value","mode","onUpdate:value"]),(0,o.createVNode)(d,{value:n.parseDefaultValue.storage,"onUpdate:value":[t[2]||(t[2]=e=>n.parseDefaultValue.storage=e),i.update],"label-key":"harvester.generic.storage",suffix:"%",delay:0,required:"",mode:e.mode,class:"mb-20"},null,8,["value","mode","onUpdate:value"])])])}var n=a(91825),i=a(77290),d={name:"HarvesterOvercommitConfig",components:{UnitInput:i.A},mixins:[n.A],data(){let e={};try{e=JSON.parse(this.value.value)}catch(t){e=JSON.parse(this.value.default)}return{parseDefaultValue:e,errors:[]}},created(){this.update()},methods:{update(){const e=JSON.stringify(this.parseDefaultValue);this.value["value"]=e}},watch:{value:{handler(e){const t=JSON.parse(e.value);this["parseDefaultValue"]=t},deep:!0}}},c=a(47433);const u=(0,c.A)(d,[["render",l]]);var p=u},54122:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return V}});var o=a(9274);const r={class:"row mb-20"},s={class:"col span-12"},l={class:"mb-10"},n={class:"chooseFile"},i={class:"row mb-20"},d={class:"col span-12"},c={class:"mb-10"},u={class:"chooseFile"},p={class:"row mb-20"},m={class:"col span-12"},v={class:"mb-10"},h={class:"chooseFile"};function b(e,t,a,b,g,f){const k=(0,o.resolveComponent)("FileSelector");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,(0,o.toDisplayString)(e.t("harvester.setting.sslCertificates.publicCertificate")),1),(0,o.createElementVNode)("div",n,[(0,o.createVNode)(k,{"include-file-name":!0,class:"btn btn-sm bg-primary mr-20",label:"Choose File",onSelected:t[0]||(t[0]=e=>f.onKeySelectedCa("publicCertificate",e))}),(0,o.createElementVNode)("span",{class:(0,o.normalizeClass)({"text-muted":!g.publicCertificateFileName})},(0,o.toDisplayString)(g.publicCertificateFileName?g.publicCertificateFileName:e.t("harvester.generic.noFileChosen")),3)])])]),(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createElementVNode)("div",c,(0,o.toDisplayString)(e.t("harvester.setting.sslCertificates.privateKey")),1),(0,o.createElementVNode)("div",u,[(0,o.createVNode)(k,{"include-file-name":!0,class:"btn btn-sm bg-primary mr-20",label:"Choose File",onSelected:t[1]||(t[1]=e=>f.onKeySelectedCa("privateKey",e))}),(0,o.createElementVNode)("span",{class:(0,o.normalizeClass)({"text-muted":!g.privateKeyFileName})},(0,o.toDisplayString)(g.privateKeyFileName?g.privateKeyFileName:e.t("harvester.generic.noFileChosen")),3)])])]),(0,o.createElementVNode)("div",p,[(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,(0,o.toDisplayString)(e.t("harvester.setting.sslCertificates.ca")),1),(0,o.createElementVNode)("div",h,[(0,o.createVNode)(k,{"include-file-name":!0,class:"btn btn-sm bg-primary mr-20",label:"Choose File",onSelected:t[2]||(t[2]=e=>f.onKeySelectedCa("ca",e))}),(0,o.createElementVNode)("span",{class:(0,o.normalizeClass)({"text-muted":!g.caFileName})},(0,o.toDisplayString)(g.caFileName?g.caFileName:e.t("harvester.generic.noFileChosen")),3)])])])])}var g=a(91825),f=a(29649),k={name:"HarvesterSSLCertificates",components:{FileSelector:f.A},mixins:[g.A],data(){let e={};try{e=JSON.parse(this.value.value)}catch(t){e=JSON.parse(this.value.default)}return{parseDefaultValue:e,caFileName:"",publicCertificateFileName:"",privateKeyFileName:""}},methods:{onKeySelectedCa(e,t){const{name:a,value:o}=t;this.parseDefaultValue[e]=o,this[`${e}FileName`]=a;const r=JSON.stringify(this.parseDefaultValue);this.value["value"]=r}},watch:{value:{handler(e){const t=JSON.parse(e.value);this["parseDefaultValue"]=t},deep:!0}}},y=(a(92427),a(47433));const N=(0,y.A)(k,[["render",b],["__scopeId","data-v-27a09764"]]);var V=N},13515:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return h}});var o=a(9274);const r={class:"row mt-10"},s={class:"col span-12"},l={class:"row mt-20"},n={class:"col span-12"};function i(e,t,a,i,d,c){const u=(0,o.resolveComponent)("LabeledSelect"),p=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(u,{value:d.parsedDefaultValue.protocols,"onUpdate:value":[t[0]||(t[0]=e=>d.parsedDefaultValue.protocols=e),c.update],mode:a.mode,"label-key":"harvester.sslParameters.protocols.label",multiple:!0,options:c.protocolOptions},null,8,["value","mode","options","onUpdate:value"])])]),(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(p,{value:d.parsedDefaultValue.ciphers,"onUpdate:value":[t[1]||(t[1]=e=>d.parsedDefaultValue.ciphers=e),c.update],mode:a.mode,"label-key":"harvester.sslParameters.ciphers.label"},null,8,["value","mode","onUpdate:value"])])])])}var d=a(79380),c=a(14220),u=a(77988),p={name:"HarvesterSslParameters",components:{LabeledInput:d.o,LabeledSelect:u.A},props:{mode:{type:String,default:c.G5},value:{type:Object,default:()=>({})},registerBeforeHook:{type:Function,required:!0}},data(){let e={};try{e=JSON.parse(this.value.value)}catch(a){e=JSON.parse(this.value.default)}const t=e.protocols&&(e.protocols||"").split(" ");return{parsedDefaultValue:{protocols:t,ciphers:e.ciphers}}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.willSave,"willSave")},computed:{protocolOptions(){return[{label:"TLSv1.3",value:"TLSv1.3"},{label:"TLSv1.2",value:"TLSv1.2"},{label:`TLSv1.1 (${this.t("generic.deprecated")})`,value:"TLSv1.1"},{label:`TLSv1 (${this.t("generic.deprecated")})`,value:"TLSv1"},{label:`SSLv3 (${this.t("generic.deprecated")})`,value:"SSLv3"},{label:`SSLv2 (${this.t("generic.deprecated")})`,value:"SSLv2"}]}},methods:{update(){const e={protocols:(this.parsedDefaultValue.protocols||[]).join(" "),ciphers:this.parsedDefaultValue.ciphers},t=JSON.stringify(e);this.value["value"]=t},willSave(){const e=[],t=this.parsedDefaultValue.ciphers,a=this.parsedDefaultValue.protocols||[];t&&0===a.length&&e.push(this.t("validation.required",{key:this.t("harvester.sslParameters.protocols.label")},!0)),!t&&a.length>0&&e.push(this.t("validation.required",{key:this.t("harvester.sslParameters.ciphers.label")},!0));const o=/^(:?[A-Z0-9]+(?:-[A-Z0-9]+)+)+$/gm;return!t||t.match(o)&&!t.startsWith(":")||e.push(this.t("validation.invalid",{key:this.t("harvester.sslParameters.ciphers.label")},!0)),e.length>0?Promise.reject(e):Promise.resolve()}},watch:{"value.value":{handler(e){e===this.value.default&&(this.parsedDefaultValue.protocols=[],this.parsedDefaultValue.ciphers="")},deep:!0}}},m=a(47433);const v=(0,m.A)(p,[["render",i]]);var h=v},57589:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return x}});var o=a(9274);const r={key:0},s={class:"box"},l={class:"key"},n={class:"key"},i=["onUpdate:modelValue","placeholder"];function d(e,t,a,d,c,u){const p=(0,o.resolveComponent)("t"),m=(0,o.resolveComponent)("Banner"),v=(0,o.resolveComponent)("RadioGroup"),h=(0,o.resolveComponent)("LabeledSelect"),b=(0,o.resolveComponent)("LabeledInput"),g=(0,o.resolveComponent)("Tip"),f=(0,o.resolveComponent)("ArrayList");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(a.mode),"onUpdate:value":t[7]||(t[7]=(...e)=>u.update&&u.update(...e))},[(0,o.createVNode)(m,{color:"warning"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{k:"harvester.setting.storageNetwork.warning",raw:!0})])),_:1}),(0,o.createVNode)(v,{value:c.openVlan,"onUpdate:value":[t[0]||(t[0]=e=>c.openVlan=e),u.update],class:"mb-20",name:"model",options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","labels","onUpdate:value"]),c.openVlan?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createVNode)(h,{value:c.networkType,"onUpdate:value":t[1]||(t[1]=e=>c.networkType=e),class:"mb-20",options:u.networkTypes,mode:a.mode,label:e.t("harvester.fields.type"),required:""},null,8,["value","options","mode","label"]),u.showVlan?((0,o.openBlock)(),(0,o.createBlock)(b,{key:0,value:c.parsedDefaultValue.vlan,"onUpdate:value":[t[2]||(t[2]=e=>c.parsedDefaultValue.vlan=e),u.inputVlan],valueModifiers:{number:!0},type:"number",class:"mb-20",mode:a.mode,required:"",placeholder:"e.g. 1 - 4094","label-key":"harvester.setting.storageNetwork.vlan"},null,8,["value","mode","onUpdate:value"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(h,{value:c.parsedDefaultValue.clusterNetwork,"onUpdate:value":[t[3]||(t[3]=e=>c.parsedDefaultValue.clusterNetwork=e),u.update],"label-key":"harvester.setting.storageNetwork.clusterNetwork",class:"mb-20",required:"",options:u.clusterNetworkOptions},null,8,["value","options","onUpdate:value"]),(0,o.createVNode)(b,{value:c.parsedDefaultValue.range,"onUpdate:value":t[4]||(t[4]=e=>c.parsedDefaultValue.range=e),class:"mb-5",mode:a.mode,required:"",placeholder:e.t("harvester.setting.storageNetwork.range.placeholder"),"label-key":"harvester.setting.storageNetwork.range.label"},null,8,["value","mode","placeholder"]),(0,o.createVNode)(g,{class:"mb-20",icon:"icon icon-info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{k:"harvester.setting.storageNetwork.tip",raw:!0,url:u.storageNetworkExampleLink},null,8,["url"])])),_:1}),(0,o.createVNode)(f,{value:c.exclude,"onUpdate:value":[t[6]||(t[6]=e=>c.exclude=e),u.update],"show-header":!0,"default-add-value":c.defaultAddValue,mode:a.mode,"add-label":e.t("harvester.setting.storageNetwork.exclude.addIp")},{"column-headers":(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,(0,o.toDisplayString)(e.t("harvester.setting.storageNetwork.exclude.label")),1)])])),columns:(0,o.withCtx)((a=>[(0,o.createElementVNode)("div",n,[(0,o.withDirectives)((0,o.createElementVNode)("input",{"onUpdate:modelValue":e=>a.row.value=e,placeholder:e.t("harvester.setting.storageNetwork.exclude.placeholder"),"onUpdate:value":t[5]||(t[5]=(...e)=>u.update&&u.update(...e))},null,40,i),[[o.vModelText,a.row.value]])])])),_:1},8,["value","default-add-value","mode","add-label","onUpdate:value"])])):(0,o.createCommentVNode)("",!0)],34)}var c=a(79380),u=a(77988),p=a(10196),m=a(22133),v=a(87898),h=a(14220),b=a(9980),g=a(29349),f=a(88339),k=a(35664),y=a(32766),N=a(66242),V=a(3791),C=a(41837);const{L2VLAN:w,UNTAGGED:E}=C.A;var S={name:"HarvesterEditStorageNetwork",components:{ArrayList:m.A,Tip:g.A,Banner:b.l,LabeledInput:c.o,LabeledSelect:u.A,RadioGroup:p.z},props:{registerBeforeHook:{type:Function,required:!0},mode:{type:String,default:h.G5},value:{type:Object,default:()=>({})}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await(0,f.kR)({clusterNetworks:this.$store.dispatch(`${e}/findAll`,{type:y.rk.CLUSTER_NETWORK}),vlanStatus:this.$store.dispatch(`${e}/findAll`,{type:y.rk.VLAN_STATUS}),nodes:this.$store.dispatch(`${e}/findAll`,{type:k.NW})})},data(){let e={},t=!1,a=w;try{e=JSON.parse(this.value.value),a="vlan"in e?w:E,t=!0}catch(r){a=w,e={vlan:"",clusterNetwork:"",range:"",exclude:[]}}const o=e?.exclude?.toString().split(",")||[];return{openVlan:t,networkType:a,errors:[],exclude:o,parsedDefaultValue:e,defaultAddValue:""}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.willSave,"willSave")},computed:{showVlan(){return this.networkType===w},networkTypes(){const e=[w];return this.untaggedNetworkSettingEnabled&&e.push(E),e},storageNetworkExampleLink(){const e=this.$store.getters["harvester-common/getServerVersion"]();return(0,V.nn)(N.d.STORAGE_NETWORK_EXAMPLE,e)},untaggedNetworkSettingEnabled(){return this.$store.getters["harvester-common/getFeatureEnabled"]("untaggedNetworkSetting")},clusterNetworkOptions(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](y.rk.CLUSTER_NETWORK)||[],a=this.networkType===E?t.filter((e=>"mgmt"!==e.id)):t;return a.map((e=>{const t=!e.isReadyForStorageNetwork;return{label:t?`${e.id} (${this.t("generic.notReady")})`:e.id,value:e.id,disabled:t}}))}},watch:{networkType:{handler(e){this.parsedDefaultValue.clusterNetwork="",e===w?this.parsedDefaultValue.vlan="":delete this.parsedDefaultValue.vlan},deep:!0}},methods:{inputVlan(e){if(""===e)return void(this.parsedDefaultValue.vlan="");const t=Number(e);this.parsedDefaultValue.vlan=t>4094?4094:t<1?1:t},useDefault(){this.openVlan=!1,this.networkType=w,this.parsedDefaultValue={vlan:"",clusterNetwork:"",range:"",exclude:[]}},update(){const e=this.exclude.filter((e=>e));Array.isArray(e)&&e.length>0?this.parsedDefaultValue.exclude=e:delete this.parsedDefaultValue.exclude;const t=JSON.stringify(this.parsedDefaultValue);this.openVlan?this.value["value"]=t:this.value["value"]=""},willSave(){this.update();const e=[];if(!this.openVlan)return Promise.resolve();{const t=!!/^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2]\d|3[0-2])$/.test(this.parsedDefaultValue.range);if(t||e.push(this.t("harvester.setting.storageNetwork.range.invalid",null,!0)),this.networkType!==w||this.parsedDefaultValue.vlan||e.push(this.t("validation.required",{key:this.t("harvester.setting.storageNetwork.vlan")},!0)),this.parsedDefaultValue.clusterNetwork||e.push(this.t("validation.required",{key:this.t("harvester.setting.storageNetwork.clusterNetwork")},!0)),this.exclude){const t=this.exclude.find((e=>!(0,v.z8)(e)));t&&e.push(this.t("harvester.setting.storageNetwork.exclude.invalid",null,!0))}}return e.length>0?Promise.reject(e):Promise.resolve()}}},B=a(47433);const A=(0,B.A)(S,[["render",d]]);var x=A},48749:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);const r={class:"col span-12"};function s(e,t,a,s,l,n){const i=(0,o.resolveComponent)("LabeledInput"),d=(0,o.resolveComponent)("LabeledSelect");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:"row",onInput:t[3]||(t[3]=(...e)=>n.update&&n.update(...e))},[(0,o.createElementVNode)("div",r,[(0,o.createVNode)(i,{value:l.parseDefaultValue.repository,"onUpdate:value":t[0]||(t[0]=e=>l.parseDefaultValue.repository=e),class:"mb-20",mode:a.mode,required:"","label-key":"harvester.setting.supportBundleImage.repo"},null,8,["value","mode"]),(0,o.createVNode)(i,{value:l.parseDefaultValue.tag,"onUpdate:value":t[1]||(t[1]=e=>l.parseDefaultValue.tag=e),class:"mb-20",mode:a.mode,required:"","label-key":"harvester.setting.supportBundleImage.tag"},null,8,["value","mode"]),(0,o.createVNode)(d,{value:l.parseDefaultValue.imagePullPolicy,"onUpdate:value":[t[2]||(t[2]=e=>l.parseDefaultValue.imagePullPolicy=e),n.update],class:"mb-20",required:"","label-key":"harvester.setting.supportBundleImage.imagePullPolicy",options:n.imagePolicyOptions},null,8,["value","options","onUpdate:value"])])],32)}var l=a(14220),n=a(79380),i=a(77988),d={name:"HarvesterSupportBundleImage",components:{LabeledInput:n.o,LabeledSelect:i.A},props:{registerBeforeHook:{type:Function,required:!0},mode:{type:String,default:l.G5},value:{type:Object,default:()=>({})}},data(){let e={};try{e=JSON.parse(this.value.value)}catch(t){e=JSON.parse(this.value.default)}return{parseDefaultValue:e}},created(){this.update(),this.registerBeforeHook&&this.registerBeforeHook(this.willSave,"willSave")},computed:{imagePolicyOptions(){return[{label:this.t("generic.imagePullPolicy.always"),value:"Always"},{label:this.t("generic.imagePullPolicy.ifNotPresent"),value:"IfNotPresent"},{label:this.t("generic.imagePullPolicy.never"),value:"Never"}]}},methods:{update(){const e=JSON.stringify(this.parseDefaultValue);this.value["value"]=e},willSave(){const e=[];return this.parseDefaultValue.repository||e.push(this.t("validation.required",{key:this.t("harvester.setting.supportBundleImage.repo")},!0)),this.parseDefaultValue.tag||e.push(this.t("validation.required",{key:this.t("harvester.setting.supportBundleImage.tag")},!0)),e.length>0?Promise.reject(e):Promise.resolve()}},watch:{value:{handler(e){const t=JSON.parse(e.value);this["parseDefaultValue"]=t},deep:!0}}},c=a(47433);const u=(0,c.A)(d,[["render",s]]);var p=u},30859:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return m}});var o=a(9274);const r={class:"row"},s={class:"col span-12"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("LabeledSelect");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(d,{value:n.namespaces,"onUpdate:value":[t[0]||(t[0]=e=>n.namespaces=e),i.update],multiple:!0,"label-key":"nameNsDescription.namespace.label",mode:e.mode,options:i.namespaceOptions},null,8,["value","mode","options","onUpdate:value"])])])}var n=a(35664),i=a(91825),d=a(77988),c={name:"HarvesterBundleNamespaces",components:{LabeledSelect:d.A},mixins:[i.A],async fetch(){await this.$store.dispatch("harvester/findAll",{type:n.CU})},data(){let e=[];const t=this.value?.value||this.value?.default||"";return t&&(e=t.split(",")),{namespaces:e}},computed:{namespaceOptions(){return this.$store.getters["harvester/all"](n.CU).map((e=>({label:e.id,value:e.id})))}},methods:{update(){const e=this.namespaces.join(",");this.value["value"]=e}},watch:{"value.value":{handler(e){e!==this.value.default&&e||(this.namespaces=[])},deep:!0}}},u=a(47433);const p=(0,u.A)(c,[["render",l]]);var m=p},33955:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);const r={class:"col span-12"};function s(e,t,a,s,l,n){const i=(0,o.resolveComponent)("RadioGroup"),d=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:"row",onInput:t[2]||(t[2]=(...e)=>n.update&&n.update(...e))},[(0,o.createElementVNode)("div",r,[(0,o.createVNode)(i,{value:l.parseDefaultValue.enable,"onUpdate:value":t[0]||(t[0]=e=>l.parseDefaultValue.enable=e),class:"mb-20",name:"model",options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")],onInput:n.update},null,8,["value","labels","onInput"]),l.parseDefaultValue.enable?((0,o.openBlock)(),(0,o.createBlock)(d,{key:0,value:l.parseDefaultValue.period,"onUpdate:value":t[1]||(t[1]=e=>l.parseDefaultValue.period=e),valueModifiers:{number:!0},class:"mb-20",mode:e.mode,"label-key":"harvester.setting.vmForceDeletionPolicy.period"},null,8,["value","mode"])):(0,o.createCommentVNode)("",!0)])],32)}var l=a(91825),n=a(79380),i=a(10196),d={name:"HarvesterVMForceDeletePolicy",components:{LabeledInput:n.o,RadioGroup:i.z},mixins:[l.A],data(){let e={};try{e=JSON.parse(this.value.value)}catch(t){e=JSON.parse(this.value.default)}return{parseDefaultValue:e}},created(){this.update()},methods:{update(){const e=JSON.stringify(this.parseDefaultValue);this.value["value"]=e}},watch:{value:{handler(e){const t=JSON.parse(e.value);this["parseDefaultValue"]=t},deep:!0}}},c=(a(93612),a(47433));const u=(0,c.A)(d,[["render",s],["__scopeId","data-v-11b4ae46"]]);var p=u},80296:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return k}});var o=a(9274);const r={class:"text-default-text"},s={class:"pl-10 pr-10"},l={class:"bottom"},n={class:"buttons"};function i(e,t,a,i,d,c){const u=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("AsyncButton"),m=(0,o.resolveComponent)("Card"),v=(0,o.resolveComponent)("app-modal"),h=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(v,{class:"restart-modal",name:"restartDialog",width:600,height:"auto","click-to-close":!1,onClose:c.close},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(m,{class:"prompt-restart","show-highlight-border":!1},{title:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",r,null,512),[[h,e.t("harvester.modal.restart.title")]])])),body:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("div",s,null,512),[[h,e.t("harvester.modal.restart.tip")]])])),actions:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",l,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(d.errors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(u,{key:t,color:"error",label:e},null,8,["label"])))),128)),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("button",{class:"btn role-secondary mr-10",onClick:t[0]||(t[0]=(...e)=>c.close&&c.close(...e))},(0,o.toDisplayString)(e.t("harvester.modal.restart.cancel")),1),(0,o.createVNode)(p,{mode:"restart",onClick:c.apply},null,8,["onClick"])])])])),_:1})])),_:1},8,["onClose"])}var d=a(65359),c=a(88857),u=a(37785),p=a(9980),m=a(99726),v=a(162),h=a(4364),b={emits:["close"],components:{AppModal:v.A,Card:u.Z,AsyncButton:c.A,Banner:p.l},props:{vm:{type:Object,required:!0}},data(){return{errors:[],resolve:null}},computed:{...(0,d.L8)({t:"i18n/t"})},methods:{close(){this.resolve(),this.$emit("close")},apply(e){try{this.vm.doActionGrowl("restart",{}),e(!0),this.close()}catch(t){h.error(t),this.errors=(0,m.rz)(t),e(!1)}}}},g=(a(38917),a(47433));const f=(0,g.A)(b,[["render",i],["__scopeId","data-v-574c27ab"]]);var k=f},26370:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("RadioGroup"),i=(0,o.resolveComponent)("Tab"),d=(0,o.resolveComponent)("Tabbed");return(0,o.openBlock)(),(0,o.createBlock)(d,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{name:"basic",label:e.t("generic.basic"),weight:99},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(n,{value:a.value.spec.enabled,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.enabled=e),class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels"])])),_:1},8,["label"])])),_:1})}var s=a(59808),l=a(49584),n=a(10196),i=a(91825),d={name:"EditGenericAddon",components:{Tabbed:s.A,Tab:l.A,RadioGroup:n.z},mixins:[i.A],props:{value:{type:Object,required:!0},mode:{type:String,required:!0}}},c=(a(21030),a(47433));const u=(0,c.A)(d,[["render",r],["__scopeId","data-v-24a677c4"]]);var p=u},17438:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("RadioGroup"),i=(0,o.resolveComponent)("Tab"),d=(0,o.resolveComponent)("Tabbed");return(0,o.openBlock)(),(0,o.createBlock)(d,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{name:"basic",label:e.t("harvester.addons.vmImport.titles.basic"),weight:99},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(n,{value:a.value.spec.enabled,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.enabled=e),class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels"])])),_:1},8,["label"])])),_:1})}var s=a(59808),l=a(49584),n=a(10196),i=a(91825),d={name:"EditSeederAddon",components:{Tabbed:s.A,Tab:l.A,RadioGroup:n.z},mixins:[i.A],props:{value:{type:Object,required:!0},mode:{type:String,required:!0}}},c=(a(19949),a(47433));const u=(0,c.A)(d,[["render",r],["__scopeId","data-v-4b980a18"]]);var p=u},81135:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return c}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(n,{resource:a.value,mode:e.mode,errors:e.errors,onFinish:e.save},{default:(0,o.withCtx)((()=>[((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(l.currentComponent),{value:a.value,"register-before-hook":e.registerBeforeHook,mode:e.mode},null,8,["value","register-before-hook","mode"]))])),_:1},8,["resource","mode","errors","onFinish"])}var s=a(91825),l=a(99960),n={name:"EditAddon",components:{CruResource:l.A},mixins:[s.A],inheritAttrs:!1,props:{value:{type:Object,required:!0}},computed:{currentComponent(){const e=this.value.metadata.name;try{return a(2467)(`./${e}.vue`).default}catch{return a(26370)["default"]}}}},i=a(47433);const d=(0,i.A)(n,[["render",r]]);var c=d},57960:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return E}});var o=a(9274);const r={key:0},s={key:0,class:"row mb-15"},l={class:"col span-6"},n={class:"col span-6"},i={class:"row mb-15"};function d(e,t,a,d,c,u){const p=(0,o.resolveComponent)("Banner"),m=(0,o.resolveComponent)("RadioGroup"),v=(0,o.resolveComponent)("LabeledInput"),h=(0,o.resolveComponent)("Tab"),b=(0,o.resolveComponent)("Tabbed");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[u.parsingSpecError?((0,o.openBlock)(),(0,o.createBlock)(p,{key:0,color:"error",label:e.t("harvester.addons.nvidiaDriverToolkit.parsingSpecError",null,{raw:!0})},null,8,["label"])):((0,o.openBlock)(),(0,o.createBlock)(b,{key:1,"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(h,{name:"basic",label:e.t("harvester.addons.nvidiaDriverToolkit.titles.basic"),weight:1},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(m,{value:a.value.spec.enabled,class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")],"onUpdate:value":u.toggleEnable},null,8,["value","mode","labels","onUpdate:value"]),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[c.valuesContentJson.image?((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(v,{value:c.valuesContentJson.image.repo,"onUpdate:value":t[0]||(t[0]=e=>c.valuesContentJson.image.repo=e),mode:a.mode,required:!0,"label-key":"harvester.addons.nvidiaDriverToolkit.image.repository"},null,8,["value","mode"])]),(0,o.createElementVNode)("div",n,[(0,o.createVNode)(v,{value:c.valuesContentJson.image.tag,"onUpdate:value":t[1]||(t[1]=e=>c.valuesContentJson.image.tag=e),mode:a.mode,required:!0,class:"col span-6","label-key":"harvester.addons.nvidiaDriverToolkit.image.tag"},null,8,["value","mode"])])])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",i,[(0,o.createVNode)(v,{value:c.valuesContentJson.driverLocation,"onUpdate:value":t[2]||(t[2]=e=>c.valuesContentJson.driverLocation=e),mode:a.mode,required:!0,"label-key":"harvester.addons.nvidiaDriverToolkit.driver.location"},null,8,["value","mode"])])])):(0,o.createCommentVNode)("",!0)])),_:1},8,["label"])])),_:1}))])}var c=a(82451),u=a.n(c),p=a(20246),m=a.n(p),v=a(76978),h=a(59808),b=a(49584),g=a(10196),f=a(79380),k=a(9980),y=a(91825);const N={image:{repo:"rancher/harvester-nvidia-driver-toolkit"}};var V={name:"EditAddonNvidiaDriverToolkit",components:{Banner:k.l,LabeledInput:f.o,RadioGroup:g.z,Tabbed:h.A,Tab:b.A},mixins:[y.A],props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},data(){return{initSpec:(0,v.o8)(this.value.spec),valuesContentJson:this.parseValuesContent()}},watch:{valuesContentJson:{handler(e){this.update(e)},deep:!0}},computed:{parsingSpecError(){return this.valuesContentJson&&(void 0===this.valuesContentJson.image||void 0===this.valuesContentJson.driverLocation)}},methods:{parseValuesContent(){try{return u()({},N,m().load(this.value.spec.valuesContent))}catch(e){return this.$store.dispatch("growl/fromError",{title:this.$store.getters["i18n/t"]("generic.notification.title.error"),err:e.data||e},{root:!0}),N}},toggleEnable(e){this.resetSpec(),this.value.spec.enabled=e},resetSpec(){this.value.spec=(0,v.o8)(this.initSpec),this.valuesContentJson=this.parseValuesContent()},update(e){this.value.spec.valuesContent=m().dump(e)}}},C=(a(29977),a(47433));const w=(0,C.A)(V,[["render",d],["__scopeId","data-v-14fad698"]]);var E=w},55821:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return p}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("RadioGroup"),i=(0,o.resolveComponent)("Tab"),d=(0,o.resolveComponent)("Tabbed");return(0,o.openBlock)(),(0,o.createBlock)(d,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{name:"basic",label:e.t("harvester.addons.vmImport.titles.basic"),weight:99},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(n,{value:a.value.spec.enabled,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.enabled=e),class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels"])])),_:1},8,["label"])])),_:1})}var s=a(59808),l=a(49584),n=a(10196),i=a(91825),d={name:"EditAddonPCI",components:{Tabbed:s.A,Tab:l.A,RadioGroup:n.z},mixins:[i.A],props:{value:{type:Object,required:!0},mode:{type:String,required:!0}}},c=(a(71318),a(47433));const u=(0,c.A)(d,[["render",r],["__scopeId","data-v-bdc3ab06"]]);var p=u},70927:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return D}});var o=a(9274);const r={class:"row mt-20"},s={class:"col span-6"},l={class:"col span-6"},n={class:"row mt-20"},i={class:"col span-6"},d={class:"col span-6"},c={class:"row mt-20"},u={class:"col span-6"},p={class:"col span-6"},m={class:"row mt-20"},v={class:"col span-6"},h={class:"col span-6"};function b(e,t,a,b,g,f){const k=(0,o.resolveComponent)("RadioGroup"),y=(0,o.resolveComponent)("Tab"),N=(0,o.resolveComponent)("LabeledInput"),V=(0,o.resolveComponent)("Tabbed");return(0,o.openBlock)(),(0,o.createBlock)(V,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(y,{name:"basic",label:e.t("harvester.addons.vmImport.titles.basic"),weight:99},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(k,{value:a.value.spec.enabled,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.enabled=e),class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels"])])),_:1},8,["label"]),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createBlock)(y,{key:0,name:"fluentbit",label:e.t("harvester.logging.configuration.section.fluentbit"),weight:-1},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(N,{value:g.valuesContentJson.fluentbit.resources.requests.cpu,"onUpdate:value":t[1]||(t[1]=e=>g.valuesContentJson.fluentbit.resources.requests.cpu=e),label:e.t("monitoring.prometheus.config.requests.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",l,[(0,o.createVNode)(N,{value:g.valuesContentJson.fluentbit.resources.requests.memory,"onUpdate:value":t[2]||(t[2]=e=>g.valuesContentJson.fluentbit.resources.requests.memory=e),label:e.t("monitoring.prometheus.config.requests.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(N,{value:g.valuesContentJson.fluentbit.resources.limits.cpu,"onUpdate:value":t[3]||(t[3]=e=>g.valuesContentJson.fluentbit.resources.limits.cpu=e),label:e.t("monitoring.prometheus.config.limits.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",d,[(0,o.createVNode)(N,{value:g.valuesContentJson.fluentbit.resources.limits.memory,"onUpdate:value":t[4]||(t[4]=e=>g.valuesContentJson.fluentbit.resources.limits.memory=e),label:e.t("monitoring.prometheus.config.limits.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createBlock)(y,{key:1,name:"fluentd",label:e.t("harvester.logging.configuration.section.fluentd"),weight:-1},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",c,[(0,o.createElementVNode)("div",u,[(0,o.createVNode)(N,{value:g.valuesContentJson.fluentd.resources.requests.cpu,"onUpdate:value":t[5]||(t[5]=e=>g.valuesContentJson.fluentd.resources.requests.cpu=e),label:e.t("monitoring.prometheus.config.requests.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",p,[(0,o.createVNode)(N,{value:g.valuesContentJson.fluentd.resources.requests.memory,"onUpdate:value":t[6]||(t[6]=e=>g.valuesContentJson.fluentd.resources.requests.memory=e),label:e.t("monitoring.prometheus.config.requests.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,[(0,o.createVNode)(N,{value:g.valuesContentJson.fluentd.resources.limits.cpu,"onUpdate:value":t[7]||(t[7]=e=>g.valuesContentJson.fluentd.resources.limits.cpu=e),label:e.t("monitoring.prometheus.config.limits.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",h,[(0,o.createVNode)(N,{value:g.valuesContentJson.fluentd.resources.limits.memory,"onUpdate:value":t[8]||(t[8]=e=>g.valuesContentJson.fluentd.resources.limits.memory=e),label:e.t("monitoring.prometheus.config.limits.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0)])),_:1})}var g=a(82451),f=a.n(g),k=a(59808),y=a(49584),N=a(10196),V=a(79380),C=a(91825),w=a(20246),E=a.n(w);const S={fluentbit:{resources:{limits:{cpu:"200m",memory:"200Mi"},requests:{cpu:"50m",memory:"50Mi"}}},fluentd:{resources:{limits:{cpu:"1000m",memory:"800Mi"},requests:{cpu:"100m",memory:"20Mi"}}}};var B={name:"EditAddonLogging",components:{Tabbed:k.A,Tab:y.A,RadioGroup:N.z,LabeledInput:V.o},mixins:[C.A],props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},data(){let e=S;try{e=f()({},S,E().load(this.value.spec.valuesContent))}catch(t){e=S,this.$store.dispatch("growl/fromError",{title:this.$store.getters["i18n/t"]("generic.notification.title.error"),err:t.data||t},{root:!0})}return{valuesContentJson:e}},watch:{valuesContentJson:{handler(e){this.value.spec["valuesContent"]=E().dump(e)},deep:!0,immediate:!0}}},A=(a(82002),a(47433));const x=(0,A.A)(B,[["render",b],["__scopeId","data-v-4ac8f18c"]]);var D=x},59289:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return ke}});var o=a(9274);const r=["disabled","href"],s={class:"subtype-content"},l={class:"title"},n={class:"subtype-logo round-image"},i={class:"row"},d={class:"col span-6"},c={class:"col span-6"},u={class:"row mt-10"},p={class:"col span-6"},m={class:"col span-6"},v={class:"row mt-10"},h={class:"col span-12 mt-5"},b={class:"mb-0"},g={class:"row mt-10"},f={class:"col span-6"},k={class:"col span-6"},y={class:"row mt-10"},N={class:"col span-6"},V={class:"col span-6"},C={class:"row mt-10"},w={class:"col span-6"},E={class:"col span-6"},S={class:"row mt-10"},B={class:"col span-6"},A={class:"col span-6"},x=["disabled","href"],D={class:"subtype-content"},M={class:"title"},U={class:"subtype-logo round-image"},T={class:"row mt-10"},_={class:"col span-6"},R={class:"col span-6"},$={class:"row mt-10"},O={class:"col span-6"},I={class:"col span-6"},L=["disabled","href"],P={class:"subtype-content"},q={class:"title"},F={class:"subtype-logo round-image"},G={key:1},H={class:"row mt-10"},j={class:"col span-6"},J={class:"row mt-10"},K={class:"col span-6"},z={class:"col span-6"},Y={class:"row mt-10"},W={class:"col span-6"},Z={class:"col span-6"};function Q(e,t,a,Q,X,ee){const te=(0,o.resolveComponent)("RadioGroup"),ae=(0,o.resolveComponent)("Tab"),oe=(0,o.resolveComponent)("LazyImage"),re=(0,o.resolveComponent)("t"),se=(0,o.resolveComponent)("LabeledInput"),le=(0,o.resolveComponent)("Tabbed"),ne=(0,o.resolveDirective)("clean-tooltip");return(0,o.openBlock)(),(0,o.createBlock)(le,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(ae,{name:"basic",label:e.t("harvester.addons.vmImport.titles.basic"),weight:99},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(te,{value:a.value.spec.enabled,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.enabled=e),class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels"])])),_:1},8,["label"]),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createBlock)(ae,{key:0,name:"prometheus",label:e.t("harvester.setting.harvesterMonitoring.section.prometheus"),weight:-1},{default:(0,o.withCtx)((()=>[(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("a",{disabled:!X.externalLinks.prometheus.enabled,href:X.externalLinks.prometheus.link,target:"_blank",rel:"noopener noreferrer",class:"subtype-banner m-0 mt-10 mb-10"},[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(oe,{src:X.externalLinks.prometheus.iconSrc},null,8,["src"])]),(0,o.createElementVNode)("h5",null,[(0,o.createElementVNode)("span",null,[(0,o.createVNode)(re,{k:X.externalLinks.prometheus.label},null,8,["k"])])]),t[23]||(t[23]=(0,o.createElementVNode)("div",{class:"flex-right"},[(0,o.createElementVNode)("i",{class:"icon icon-external-link mr-10"})],-1))])])],8,r)),[[ne,X.externalLinks.prometheus.enabled?void 0:e.t("monitoring.overview.linkedList.na")]]),(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(se,{value:X.valuesContentJson.prometheus.prometheusSpec.scrapeInterval,"onUpdate:value":t[1]||(t[1]=e=>X.valuesContentJson.prometheus.prometheusSpec.scrapeInterval=e),label:e.t("monitoring.prometheus.config.scrape"),tooltip:e.t("harvester.setting.harvesterMonitoring.tips.scrape"),required:!0,mode:a.mode},null,8,["value","label","tooltip","mode"])]),(0,o.createElementVNode)("div",c,[(0,o.createVNode)(se,{value:X.valuesContentJson.prometheus.prometheusSpec.evaluationInterval,"onUpdate:value":t[2]||(t[2]=e=>X.valuesContentJson.prometheus.prometheusSpec.evaluationInterval=e),label:e.t("monitoring.prometheus.config.evaluation"),tooltip:e.t("harvester.setting.harvesterMonitoring.tips.evaluation"),required:!0,mode:a.mode},null,8,["value","label","tooltip","mode"])])]),(0,o.createElementVNode)("div",u,[(0,o.createElementVNode)("div",p,[(0,o.createVNode)(se,{value:X.valuesContentJson.prometheus.prometheusSpec.retention,"onUpdate:value":t[3]||(t[3]=e=>X.valuesContentJson.prometheus.prometheusSpec.retention=e),label:e.t("monitoring.prometheus.config.retention"),tooltip:e.t("harvester.setting.harvesterMonitoring.tips.retention"),required:!0,mode:a.mode},null,8,["value","label","tooltip","mode"])]),(0,o.createElementVNode)("div",m,[(0,o.createVNode)(se,{value:X.valuesContentJson.prometheus.prometheusSpec.retentionSize,"onUpdate:value":t[4]||(t[4]=e=>X.valuesContentJson.prometheus.prometheusSpec.retentionSize=e),label:e.t("monitoring.prometheus.config.retentionSize"),tooltip:e.t("harvester.setting.harvesterMonitoring.tips.retentionSize"),required:!0,mode:a.mode},null,8,["value","label","tooltip","mode"])])]),(0,o.createElementVNode)("div",v,[(0,o.createElementVNode)("div",h,[(0,o.createElementVNode)("h4",b,(0,o.toDisplayString)(e.t("monitoring.prometheus.config.resourceLimits")),1)])]),(0,o.createElementVNode)("div",g,[(0,o.createElementVNode)("div",f,[(0,o.createVNode)(se,{value:X.valuesContentJson.prometheus.prometheusSpec.resources.requests.cpu,"onUpdate:value":t[5]||(t[5]=e=>X.valuesContentJson.prometheus.prometheusSpec.resources.requests.cpu=e),label:e.t("monitoring.prometheus.config.requests.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",k,[(0,o.createVNode)(se,{value:X.valuesContentJson.prometheus.prometheusSpec.resources.requests.memory,"onUpdate:value":t[6]||(t[6]=e=>X.valuesContentJson.prometheus.prometheusSpec.resources.requests.memory=e),label:e.t("monitoring.prometheus.config.requests.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",y,[(0,o.createElementVNode)("div",N,[(0,o.createVNode)(se,{value:X.valuesContentJson.prometheus.prometheusSpec.resources.limits.cpu,"onUpdate:value":t[7]||(t[7]=e=>X.valuesContentJson.prometheus.prometheusSpec.resources.limits.cpu=e),label:e.t("monitoring.prometheus.config.limits.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",V,[(0,o.createVNode)(se,{value:X.valuesContentJson.prometheus.prometheusSpec.resources.limits.memory,"onUpdate:value":t[8]||(t[8]=e=>X.valuesContentJson.prometheus.prometheusSpec.resources.limits.memory=e),label:e.t("monitoring.prometheus.config.limits.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createBlock)(ae,{key:1,name:"nodeExporter",label:e.t("harvester.setting.harvesterMonitoring.section.prometheusNodeExporter"),weight:-2},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",C,[(0,o.createElementVNode)("div",w,[(0,o.createVNode)(se,{value:ee.prometheusNodeExporter.resources.limits.cpu,"onUpdate:value":t[9]||(t[9]=e=>ee.prometheusNodeExporter.resources.limits.cpu=e),label:e.t("monitoring.prometheus.config.limits.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",E,[(0,o.createVNode)(se,{value:ee.prometheusNodeExporter.resources.limits.memory,"onUpdate:value":t[10]||(t[10]=e=>ee.prometheusNodeExporter.resources.limits.memory=e),label:e.t("monitoring.prometheus.config.limits.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",S,[(0,o.createElementVNode)("div",B,[(0,o.createVNode)(se,{value:ee.prometheusNodeExporter.resources.requests.cpu,"onUpdate:value":t[11]||(t[11]=e=>ee.prometheusNodeExporter.resources.requests.cpu=e),label:e.t("monitoring.prometheus.config.requests.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",A,[(0,o.createVNode)(se,{value:ee.prometheusNodeExporter.resources.requests.memory,"onUpdate:value":t[12]||(t[12]=e=>ee.prometheusNodeExporter.resources.requests.memory=e),label:e.t("monitoring.prometheus.config.requests.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),a.value.spec.enabled&&X.valuesContentJson.grafana.resources?((0,o.openBlock)(),(0,o.createBlock)(ae,{key:2,name:"grafana",label:e.t("harvester.setting.harvesterMonitoring.section.grafana"),weight:-3},{default:(0,o.withCtx)((()=>[(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("a",{disabled:!X.externalLinks.grafana.enabled,href:X.externalLinks.grafana.link,target:"_blank",rel:"noopener nofollow",class:"subtype-banner m-0 mt-10 mb-10"},[(0,o.createElementVNode)("div",D,[(0,o.createElementVNode)("div",M,[(0,o.createElementVNode)("div",U,[(0,o.createVNode)(oe,{src:X.externalLinks.grafana.iconSrc},null,8,["src"])]),(0,o.createElementVNode)("h5",null,[(0,o.createElementVNode)("span",null,[(0,o.createVNode)(re,{k:X.externalLinks.grafana.label},null,8,["k"])])]),t[24]||(t[24]=(0,o.createElementVNode)("div",{class:"flex-right"},[(0,o.createElementVNode)("i",{class:"icon icon-external-link mr-10"})],-1))])])],8,x)),[[ne,X.externalLinks.grafana.enabled?void 0:e.t("monitoring.overview.linkedList.na")]]),(0,o.createElementVNode)("div",T,[(0,o.createElementVNode)("div",_,[(0,o.createVNode)(se,{value:X.valuesContentJson.grafana.resources.requests.cpu,"onUpdate:value":t[13]||(t[13]=e=>X.valuesContentJson.grafana.resources.requests.cpu=e),label:e.t("monitoring.prometheus.config.requests.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",R,[(0,o.createVNode)(se,{value:X.valuesContentJson.grafana.resources.requests.memory,"onUpdate:value":t[14]||(t[14]=e=>X.valuesContentJson.grafana.resources.requests.memory=e),label:e.t("monitoring.prometheus.config.requests.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",$,[(0,o.createElementVNode)("div",O,[(0,o.createVNode)(se,{value:X.valuesContentJson.grafana.resources.limits.cpu,"onUpdate:value":t[15]||(t[15]=e=>X.valuesContentJson.grafana.resources.limits.cpu=e),label:e.t("monitoring.prometheus.config.limits.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",I,[(0,o.createVNode)(se,{value:X.valuesContentJson.grafana.resources.limits.memory,"onUpdate:value":t[16]||(t[16]=e=>X.valuesContentJson.grafana.resources.limits.memory=e),label:e.t("monitoring.prometheus.config.limits.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createBlock)(ae,{key:3,name:"alertmanager",label:e.t("harvester.setting.harvesterMonitoring.section.alertmanager"),weight:-4},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(te,{value:X.valuesContentJson.alertmanager.enabled,"onUpdate:value":t[17]||(t[17]=e=>X.valuesContentJson.alertmanager.enabled=e),class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels"]),X.valuesContentJson.alertmanager.enabled?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,disabled:!X.externalLinks.alertmanager.enabled,href:X.externalLinks.alertmanager.link,target:"_blank",rel:"noopener noreferrer",class:"subtype-banner m-0 mt-10 mb-10"},[(0,o.createElementVNode)("div",P,[(0,o.createElementVNode)("div",q,[(0,o.createElementVNode)("div",F,[(0,o.createVNode)(oe,{src:X.externalLinks.alertmanager.iconSrc},null,8,["src"])]),(0,o.createElementVNode)("h5",null,[(0,o.createElementVNode)("span",null,[(0,o.createVNode)(re,{k:X.externalLinks.alertmanager.label},null,8,["k"])])]),t[25]||(t[25]=(0,o.createElementVNode)("div",{class:"flex-right"},[(0,o.createElementVNode)("i",{class:"icon icon-external-link mr-10"})],-1))])])],8,L)),[[ne,X.externalLinks.alertmanager.enabled?void 0:e.t("monitoring.overview.linkedList.na")]]):(0,o.createCommentVNode)("",!0),X.valuesContentJson.alertmanager.enabled?((0,o.openBlock)(),(0,o.createElementBlock)("div",G,[(0,o.createElementVNode)("div",H,[(0,o.createElementVNode)("div",j,[(0,o.createVNode)(se,{value:X.valuesContentJson.alertmanager.alertmanagerSpec.retention,"onUpdate:value":t[18]||(t[18]=e=>X.valuesContentJson.alertmanager.alertmanagerSpec.retention=e),label:e.t("monitoring.prometheus.config.retention"),required:!0,mode:a.mode},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",J,[(0,o.createElementVNode)("div",K,[(0,o.createVNode)(se,{value:X.valuesContentJson.alertmanager.alertmanagerSpec.resources.limits.cpu,"onUpdate:value":t[19]||(t[19]=e=>X.valuesContentJson.alertmanager.alertmanagerSpec.resources.limits.cpu=e),label:e.t("monitoring.prometheus.config.limits.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",z,[(0,o.createVNode)(se,{value:X.valuesContentJson.alertmanager.alertmanagerSpec.resources.limits.memory,"onUpdate:value":t[20]||(t[20]=e=>X.valuesContentJson.alertmanager.alertmanagerSpec.resources.limits.memory=e),label:e.t("monitoring.prometheus.config.limits.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",Y,[(0,o.createElementVNode)("div",W,[(0,o.createVNode)(se,{value:X.valuesContentJson.alertmanager.alertmanagerSpec.resources.requests.cpu,"onUpdate:value":t[21]||(t[21]=e=>X.valuesContentJson.alertmanager.alertmanagerSpec.resources.requests.cpu=e),label:e.t("monitoring.prometheus.config.requests.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",Z,[(0,o.createVNode)(se,{value:X.valuesContentJson.alertmanager.alertmanagerSpec.resources.requests.memory,"onUpdate:value":t[22]||(t[22]=e=>X.valuesContentJson.alertmanager.alertmanagerSpec.resources.requests.memory=e),label:e.t("monitoring.prometheus.config.requests.memory"),required:!0,mode:a.mode},null,8,["value","label","mode"])])])])):(0,o.createCommentVNode)("",!0)])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0)])),_:1})}var X=a(82451),ee=a.n(X),te=a(3514),ae=a.n(te),oe=a(20246),re=a.n(oe),se=a(88339),le=a(68851),ne=a(79380),ie=a(10196),de=a(48577),ce=a(59808),ue=a(49584),pe=a(91825),me=a(35664);const ve="cattle-monitoring-system",he={prometheus:{prometheusSpec:{resources:{limits:{cpu:"1000m",memory:"3000Mi"},requests:{cpu:"750m",memory:"750Mi"}},evaluationInterval:"1m",scrapeInterval:"1m",retention:"5d",retentionSize:"50GiB"}},"prometheus-node-exporter":{resources:{limits:{cpu:"200m",memory:"180Mi"},requests:{cpu:"100m",memory:"30Mi"}}},grafana:{resources:{limits:{cpu:"200m",memory:"500Mi"},requests:{cpu:"100m",memory:"200Mi"}}},alertmanager:{enabled:!1,alertmanagerSpec:{retention:"120h",resources:{limits:{cpu:"1000m",memory:"600Mi"},requests:{cpu:"100m",memory:"100Mi"}}}}};var be={name:"EditAddonMonitoring",components:{LabeledInput:ne.o,RadioGroup:ie.z,LazyImage:de.A,Tabbed:ce.A,Tab:ue.A},mixins:[pe.A],async fetch(){const{$store:e,externalLinks:t}=this;if(!e.getters["harvester/schemaFor"](me.Hr))return;const a=await(0,se.kR)({endpoints:e.dispatch("harvester/findAll",{type:me.Hr})});if(!ae()(a.endpoints)){const e=t.alertmanager,o=t.grafana,r=t.prometheus,s=(0,le.jq)(a.endpoints,"id",`${ve}/rancher-monitoring-alertmanager`),l=(0,le.jq)(a.endpoints,"id",`${ve}/rancher-monitoring-grafana`),n=(0,le.jq)(a.endpoints,"id",`${ve}/rancher-monitoring-prometheus`);ae()(s)||ae()(s.subsets)||(e.enabled=!0),ae()(l)||ae()(l.subsets)||(o.enabled=!0),ae()(n)||ae()(n.subsets)||(r.enabled=!0)}},props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},data(){const e=a(59826),t=a(91258),o=this.$store.getters["currentCluster"];let r=he;try{r=ee()({},he,re().load(this.value.spec.valuesContent))}catch(s){r=he,this.$store.dispatch("growl/fromError",{title:this.$store.getters["i18n/t"]("generic.notification.title.error"),err:s.data||s},{root:!0})}return{valuesContentJson:r,externalLinks:{alertmanager:{enabled:!1,iconSrc:t,label:"monitoring.overview.linkedList.alertManager.label",description:"monitoring.overview.linkedList.alertManager.description",link:`/k8s/clusters/${o.id}/api/v1/namespaces/${ve}/services/http:rancher-monitoring-alertmanager:9093/proxy`},grafana:{enabled:!1,iconSrc:e,label:"monitoring.overview.linkedList.grafana.label",description:"monitoring.overview.linkedList.grafana.description",link:`/k8s/clusters/${o.id}/api/v1/namespaces/${ve}/services/http:rancher-monitoring-grafana:80/proxy`},prometheus:{enabled:!1,iconSrc:t,label:"monitoring.overview.linkedList.prometheusPromQl.label",description:"monitoring.overview.linkedList.prometheusPromQl.description",link:`/k8s/clusters/${o.id}/api/v1/namespaces/${ve}/services/http:rancher-monitoring-prometheus:9090/proxy`}}}},computed:{prometheusNodeExporter(){return this.valuesContentJson["prometheus-node-exporter"]}},watch:{valuesContentJson:{handler(e){this.value.spec["valuesContent"]=re().dump(e)},deep:!0,immediate:!0}}},ge=(a(18813),a(47433));const fe=(0,ge.A)(be,[["render",Q],["__scopeId","data-v-077b6bf4"]]);var ke=fe},95627:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return V}});var o=a(9274);const r={class:"row"},s={class:"col span-12"},l={class:"row mb-20"},n={class:"col span-6"},i={class:"col span-6"},d={class:"row mt-20"},c={class:"col span-6"};function u(e,t,a,u,p,m){const v=(0,o.resolveComponent)("RadioGroup"),h=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(v,{value:a.value.spec.enabled,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.enabled=e),class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels"])])]),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:0},[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(h,{value:p.valuesContentJson.hostname,"onUpdate:value":t[1]||(t[1]=e=>p.valuesContentJson.hostname=e),"label-key":"harvester.addons.rancherVcluster.hostname",required:!0,mode:a.mode,placeholder:"rancher.$vip.nip.io"},null,8,["value","mode"])]),(0,o.createElementVNode)("div",i,[(0,o.createVNode)(h,{value:p.valuesContentJson.rancherVersion,"onUpdate:value":t[2]||(t[2]=e=>p.valuesContentJson.rancherVersion=e),"label-key":"harvester.addons.rancherVcluster.rancherVersion",required:!0,disabled:!0},null,8,["value"])])]),(0,o.createElementVNode)("div",d,[(0,o.createElementVNode)("div",c,[(0,o.createVNode)(h,{value:p.valuesContentJson.bootstrapPassword,"onUpdate:value":t[3]||(t[3]=e=>p.valuesContentJson.bootstrapPassword=e),"label-key":"harvester.addons.rancherVcluster.password",mode:a.mode,required:!0,type:"password"},null,8,["value","mode"])])])],64)):(0,o.createCommentVNode)("",!0)])}var p=a(82451),m=a.n(p),v=a(20246),h=a.n(v),b=a(79380),g=a(10196);const f={hostname:"",rancherVersion:"",bootstrapPassword:""};var k={name:"EditAddonVcluster",components:{LabeledInput:b.o,RadioGroup:g.z},inheritAttrs:!1,props:{value:{type:Object,required:!0},mode:{type:String,required:!0},registerBeforeHook:{type:Function,required:!0}},data(){let e={};try{e=m()({},f,h().load(this.value.spec.valuesContent))}catch(t){e=f,this.$store.dispatch("growl/fromError",{title:this.$store.getters["i18n/t"]("generic.notification.title.error"),err:t.data||t},{root:!0})}return{valuesContentJson:e}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.willSave,"willSave")},methods:{willSave(){const e=[];return this.value.spec.enabled?(this.valuesContentJson.hostname||e.push(this.t("validation.required",{key:this.t("harvester.addons.rancherVcluster.hostname")},!0)),this.valuesContentJson.bootstrapPassword||e.push(this.t("validation.required",{key:this.t("harvester.addons.rancherVcluster.password")},!0)),e.length>0?Promise.reject(e):Promise.resolve()):Promise.resolve()}},watch:{valuesContentJson:{handler(e){this.value.spec["valuesContent"]=h().dump(e)},deep:!0,immediate:!0}}},y=(a(11221),a(47433));const N=(0,y.A)(k,[["render",u],["__scopeId","data-v-b9cb7bba"]]);var V=N},32415:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return T}});var o=a(9274);const r={key:0},s={class:"row mt-10"},l={class:"col span-6"},n={class:"col span-6"},i={class:"row mt-10"},d={class:"col span-6"},c={class:"col span-6"},u={key:0},p={key:0},m={class:"row mt-10"},v={class:"col span-6"},h={class:"col span-6"};function b(e,t,a,b,g,f){const k=(0,o.resolveComponent)("RadioGroup"),y=(0,o.resolveComponent)("LabeledInput"),N=(0,o.resolveComponent)("LabeledSelect"),V=(0,o.resolveComponent)("Tab"),C=(0,o.resolveComponent)("Tabbed");return(0,o.openBlock)(),(0,o.createBlock)(C,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(V,{name:"basic",label:e.t("harvester.addons.vmImport.titles.basic"),weight:99},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(k,{value:a.value.spec.enabled,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.enabled=e),class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels"]),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(y,{value:g.valuesContent.resources.limits.cpu,"onUpdate:value":[t[1]||(t[1]=e=>g.valuesContent.resources.limits.cpu=e),f.update],label:e.t("monitoring.prometheus.config.limits.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode","onUpdate:value"])]),(0,o.createElementVNode)("div",n,[(0,o.createVNode)(y,{value:g.valuesContent.resources.limits.memory,"onUpdate:value":[t[2]||(t[2]=e=>g.valuesContent.resources.limits.memory=e),f.update],label:e.t("monitoring.prometheus.config.limits.memory"),required:!0,mode:a.mode},null,8,["value","label","mode","onUpdate:value"])])]),(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(y,{value:g.valuesContent.resources.requests.cpu,"onUpdate:value":[t[3]||(t[3]=e=>g.valuesContent.resources.requests.cpu=e),f.update],label:e.t("monitoring.prometheus.config.requests.cpu"),required:!0,mode:a.mode},null,8,["value","label","mode","onUpdate:value"])]),(0,o.createElementVNode)("div",c,[(0,o.createVNode)(y,{value:g.valuesContent.resources.requests.memory,"onUpdate:value":[t[4]||(t[4]=e=>g.valuesContent.resources.requests.memory=e),f.update],label:e.t("monitoring.prometheus.config.requests.memory"),required:!0,mode:a.mode},null,8,["value","label","mode","onUpdate:value"])])]),t[8]||(t[8]=(0,o.createElementVNode)("br",null,null,-1)),(0,o.createElementVNode)("h2",null,(0,o.toDisplayString)(e.t("harvester.addons.vmImport.titles.pvc")),1),a.value.spec.enabled?((0,o.openBlock)(),(0,o.createElementBlock)("div",u,[(0,o.createVNode)(k,{value:g.valuesContent.pvcClaim.enabled,"onUpdate:value":[t[5]||(t[5]=e=>g.valuesContent.pvcClaim.enabled=e),f.update],class:"mb-20",name:"model",mode:a.mode,options:[!0,!1],labels:[e.t("generic.enabled"),e.t("generic.disabled")]},null,8,["value","mode","labels","onUpdate:value"]),g.valuesContent.pvcClaim.enabled?((0,o.openBlock)(),(0,o.createElementBlock)("div",p,[(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,[(0,o.createVNode)(y,{value:g.valuesContent.pvcClaim.size,"onUpdate:value":[t[6]||(t[6]=e=>g.valuesContent.pvcClaim.size=e),f.update],label:e.t("harvester.volume.size"),required:!0,mode:a.mode},null,8,["value","label","mode","onUpdate:value"])]),(0,o.createElementVNode)("div",h,[(0,o.createVNode)(N,{value:g.valuesContent.pvcClaim.storageClassName,"onUpdate:value":[t[7]||(t[7]=e=>g.valuesContent.pvcClaim.storageClassName=e),f.update],options:f.storageClassOptions,label:e.t("harvester.storage.storageClass.label"),mode:a.mode,class:"mb-20"},null,8,["value","options","label","mode","onUpdate:value"])])])])):(0,o.createCommentVNode)("",!0)])):(0,o.createCommentVNode)("",!0)])):(0,o.createCommentVNode)("",!0)])),_:1},8,["label"])])),_:1})}var g=a(82451),f=a.n(g),k=a(20246),y=a.n(k),N=a(79380),V=a(59808),C=a(49584),w=a(10196),E=a(77988),S=a(91825),B=a(35664),A=a(88339);const x={resources:{requests:{cpu:"0.5",memory:"2Gi"},limits:{cpu:"2",memory:"4Gi"}},pvcClaim:{enabled:!1,size:"200Gi",storageClassName:""}};var D={name:"EditHarvesterLogging",components:{LabeledInput:N.o,Tabbed:V.A,Tab:C.A,RadioGroup:w.z,LabeledSelect:E.A},mixins:[S.A],props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={storages:this.$store.dispatch(`${e}/findAll`,{type:B.fJ})};await(0,A.kR)(t)},data(){const e=this.parseValuesContent();return{valuesContent:e}},computed:{storageClassOptions(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](B.fJ),a=t.filter((e=>!e.parameters?.backingImage)).map((e=>{const t=e.isDefault?`${e.name} (${this.t("generic.default")})`:e.name;return{label:t,value:e.name}}))||[];return a}},methods:{parseValuesContent(){try{return f()({},x,y().load(this.value.spec.valuesContent))}catch(e){return this.$store.dispatch("growl/fromError",{title:this.$store.getters["i18n/t"]("generic.notification.title.error"),err:e.data||e},{root:!0}),x}},update(){this.value.spec.valuesContent=y().dump(this.valuesContent)},setDefaultClassName(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](B.fJ).find((e=>e.isDefault));this.valuesContent.pvcClaim["storageClassName"]=this.valuesContent?.pvcClaim?.storageClassName||t?.metadata?.name||"longhorn",this.update()}},watch:{"valuesContent.pvcClaim.enabled"(e){e&&this.setDefaultClassName()}}},M=(a(27639),a(47433));const U=(0,M.A)(D,[["render",b],["__scopeId","data-v-7d4cbfa3"]]);var T=U},85019:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const r={class:"mb-20"},s={class:"resource-yaml"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("NameNsDescription"),c=(0,o.resolveComponent)("LabeledSelect"),u=(0,o.resolveComponent)("YamlEditor"),p=(0,o.resolveComponent)("Tab"),m=(0,o.resolveComponent)("Tabbed"),v=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(v,{"done-route":e.doneRoute,mode:e.mode,resource:e.value,errors:e.errors,"apply-hooks":e.applyHooks,onFinish:e.save,onCancel:e.done},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{value:e.value,mode:e.mode,namespaced:!0,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(m,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{name:"basics",label:e.t("harvester.host.tabs.basics"),weight:1},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createVNode)(c,{value:n.type,"onUpdate:value":t[1]||(t[1]=e=>n.type=e),label:e.t("harvester.cloudTemplate.templateType"),disabled:!e.isCreate,options:i.types},null,8,["value","label","disabled","options"])]),(0,o.createElementVNode)("div",s,[(0,o.createVNode)(u,{ref:"yamlUser",value:n.config,"onUpdate:value":t[2]||(t[2]=e=>n.config=e),class:"yaml-editor","editor-mode":"view"===e.mode?"VIEW_CODE":"EDIT_CODE",onOnChanges:i.update},null,8,["value","editor-mode","onOnChanges"])])])),_:1},8,["label"])])),_:1})])),_:1},8,["done-route","mode","resource","errors","apply-hooks","onFinish","onCancel"])}var n=a(59808),i=a(49584),d=a(99960),c=a(77988),u=a(32786),p=a(36143),m=a(91825),v=a(2602),h={name:"HarvesterEditCloudTemplate",emits:["update:value"],components:{Tab:i.A,Tabbed:n.A,YamlEditor:p.A,CruResource:d.A,LabeledSelect:c.A,NameNsDescription:u.A},mixins:[m.A],inheritAttrs:!1,data(){return{config:this.value.data?.cloudInit||"",type:this.value?.metadata?.labels?.[v.r.CLOUD_INIT]||"user"}},computed:{types(){return[{label:"User Data",value:"user"},{label:"Network Data",value:"network"}]}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.updateBeforeSave)},methods:{update(){this.value.data={cloudInit:this.config}},updateBeforeSave(){this.isCreate&&(this.value.metadata.labels={...this.value.metadata.labels,[v.r.CLOUD_INIT]:this.type},this.value.data={cloudInit:this.config})}}},b=(a(59852),a(47433));const g=(0,b.A)(h,[["render",l],["__scopeId","data-v-65b4127d"]]);var f=g},13965:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return P}});var o=a(9274);const r={key:3},s={class:"row"},l={class:"col span-12"},n={class:"row mt-10"},i={class:"col span-12"},d={class:"pull-left"},c={class:"pull-right"},u={key:0,class:"row mt-30"},p={class:"col flex span-12"},m={class:"row mt-10"},v={class:"col span-12"},h={class:"row mt-10"},b={key:0,class:"col span-6"},g={key:1,class:"col span-6"};function f(e,t,a,f,k,y){const N=(0,o.resolveComponent)("Banner"),V=(0,o.resolveComponent)("Tags"),C=(0,o.resolveComponent)("RadioGroup"),w=(0,o.resolveComponent)("BadgeState"),E=(0,o.resolveComponent)("LabelValue"),S=(0,o.resolveComponent)("LabeledInput"),B=(0,o.resolveComponent)("LabeledSelect"),A=(0,o.resolveComponent)("RadioButton"),x=(0,o.resolveComponent)("ModalWithCard"),D=(0,o.resolveDirective)("clean-tooltip");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:"disk","onUpdate:value":t[7]||(t[7]=(...e)=>y.update&&y.update(...e))},[t[9]||(t[9]=(0,o.createElementVNode)("div",{class:"mt-10"},null,-1)),y.mountedMessage&&y.isProvisioned?((0,o.openBlock)(),(0,o.createBlock)(N,{key:0,color:"error",label:y.mountedMessage},null,8,["label"])):(0,o.createCommentVNode)("",!0),y.isFormatting?((0,o.openBlock)(),(0,o.createBlock)(N,{key:1,color:"info",label:e.t("harvester.host.disk.fileSystem.formatting")},null,8,["label"])):y.isFormatted&&y.isLonghornV1&&!y.isCorrupted?((0,o.openBlock)(),(0,o.createBlock)(N,{key:2,color:"info",label:y.formattedBannerLabel},null,8,["label"])):(0,o.createCommentVNode)("",!0),a.value.isNew?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(V,{value:a.value.tags,"onUpdate:value":t[0]||(t[0]=e=>a.value.tags=e),label:e.t("harvester.host.disk.tags.label"),"add-label":e.t("harvester.host.disk.tags.addLabel"),mode:a.mode},null,8,["value","label","add-label","mode"])])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(C,{value:a.value.allowScheduling,"onUpdate:value":t[1]||(t[1]=e=>a.value.allowScheduling=e),name:"diskScheduling",label:e.t("harvester.host.disk.allowScheduling.label"),mode:a.mode,options:y.allowSchedulingOptions,row:!0},null,8,["value","label","mode","options"])]),(0,o.createElementVNode)("div",c,[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.host.disk.conditions"))+": ",1),(0,o.withDirectives)((0,o.createVNode)(w,{color:"True"===e.readyCondition.status?"bg-success":"bg-error",icon:"True"===e.readyCondition.status?"icon-checkmark":"icon-warning",label:"Ready",class:"mr-10 ml-10 state"},null,8,["color","icon"]),[[D,e.readyCondition.message]]),(0,o.withDirectives)((0,o.createVNode)(w,{color:"True"===e.schedulableCondition.status&&y.targetDisk?.allowScheduling?"bg-success":"bg-error",icon:"True"===e.schedulableCondition.status&&y.targetDisk?.allowScheduling?"icon-checkmark":"icon-warning",label:"Schedulable",class:"mr-10 state"},null,8,["color","icon"]),[[D,y.schedulableTooltipMessage]]),y.provisionPhase.label?((0,o.openBlock)(),(0,o.createBlock)(w,{key:0,color:y.provisionPhase.color,icon:y.provisionPhase.icon,label:y.provisionPhase.label,class:"mr-10 state"},null,8,["color","icon","label"])):(0,o.createCommentVNode)("",!0)])])]),a.value.isNew?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("div",u,[(0,o.createElementVNode)("div",p,[(0,o.createVNode)(E,{name:e.t("harvester.host.disk.storageAvailable.label"),value:a.value.storageAvailable},null,8,["name","value"]),(0,o.createVNode)(E,{name:e.t("harvester.host.disk.storageScheduled.label"),value:a.value.storageScheduled},null,8,["name","value"]),(0,o.createVNode)(E,{name:e.t("harvester.host.disk.storageMaximum.label"),value:a.value.storageMaximum},null,8,["name","value"])])])),t[8]||(t[8]=(0,o.createElementVNode)("hr",{class:"mt-10"},null,-1))])),(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,[(0,o.createVNode)(S,{value:a.value.displayName,"onUpdate:value":t[2]||(t[2]=e=>a.value.displayName=e),label:e.t("generic.name"),disabled:!0},null,8,["value","label"])])]),(0,o.createElementVNode)("div",h,[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)("col span-"+(a.value.isNew?"6":"12"))},[(0,o.createVNode)(B,{value:k.provisioner,"onUpdate:value":t[3]||(t[3]=e=>k.provisioner=e),mode:a.mode,"label-key":"harvester.host.disk.provisioner","localized-label":!0,searchable:!0,options:y.provisioners,disabled:y.isProvisioned||!a.value.isNew,tooltip:y.provisionerTooltip,onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","mode","options","disabled","tooltip","onKeydown"])],2),a.value.isNew&&y.isLonghornV1&&!y.isFormatted||y.isCorrupted?((0,o.openBlock)(),(0,o.createElementBlock)("div",b,[(0,o.createVNode)(C,{value:a.value.forceFormatted,"onUpdate:value":t[4]||(t[4]=e=>a.value.forceFormatted=e),mode:a.mode,name:"forceFormatted","label-key":"harvester.host.disk.forceFormatted.label",labels:[e.t("generic.no"),e.t("harvester.host.disk.forceFormatted.yes")],options:[!1,!0],disabled:y.forceFormattedDisabled,"tooltip-key":"harvester.host.disk.forceFormatted.toolTip"},{1:(0,o.withCtx)((({option:e,listeners:t})=>[(0,o.createVNode)(A,(0,o.mergeProps)({label:e.label,val:e.value,value:a.value.forceFormatted,disabled:y.forceFormattedDisabled&&!a.value.forceFormatted},(0,o.toHandlers)(t)),null,16,["label","val","value","disabled"])])),_:1},8,["value","mode","labels","disabled"])])):(0,o.createCommentVNode)("",!0),a.value.isNew&&y.isLvm?((0,o.openBlock)(),(0,o.createElementBlock)("div",g,[(0,o.createVNode)(B,{value:a.value.lvmVolumeGroup,"onUpdate:value":t[5]||(t[5]=e=>a.value.lvmVolumeGroup=e),mode:a.mode,"label-key":"harvester.host.disk.lvmVolumeGroup.label","localized-label":!0,searchable:!1,taggable:!0,multiple:!1,required:!0,disabled:y.isProvisioned,options:y.lvmVolumeGroups,onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","mode","disabled","options","onKeydown"])])):(0,o.createCommentVNode)("",!0)]),k.isOpen?((0,o.openBlock)(),(0,o.createBlock)(x,{key:4,ref:k.randomStr,name:k.randomStr,width:"30%",onFinish:y.saveCreateVolumeGroup,onClose:y.hideCreateVolumeGroup},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.host.disk.lvmVolumeGroup.label")),1)])),content:(0,o.withCtx)((()=>[(0,o.createVNode)(S,{value:k.volumeGroupDialog,"onUpdate:value":t[6]||(t[6]=e=>k.volumeGroupDialog=e),label:e.t("generic.name"),class:"mb-20",required:"",onKeydown:(0,o.withKeys)((0,o.withModifiers)((()=>{}),["prevent"]),["native","enter"])},null,8,["value","label","onKeydown"])])),_:1},8,["name","onFinish","onClose"])):(0,o.createCommentVNode)("",!0)],32)}var k=a(88339),y=a(35664),N=a(79380),V=a(39412),C=a(87102),w=a(9980),E=a(77988),S=a(10196),B=a(154),A=a(49306),x=a(32766),D=a(2602),M=a(83385),U=a(82877),T=a(40973),_=a(92043),R=a(14220);const $="_NEW";var O={components:{LabeledInput:N.o,LabeledSelect:E.A,LabelValue:V.A,BadgeState:C.j,Banner:w.l,RadioGroup:S.z,RadioButton:S.a,ModalWithCard:T.A,Tags:A.A},mixins:[B.A],props:{value:{type:Object,default:()=>({})},disks:{type:Array,default:()=>[]},node:{type:Object,default:()=>({})},mode:{type:String,default:"edit"}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await(0,k.kR)({csiDrivers:this.$store.dispatch(`${e}/findAll`,{type:y.Zq}),lvmVolumeGroups:this.$store.dispatch(`${e}/findAll`,{type:x.rk.LVM_VOLUME_GROUP})})},data(){let e=`${this.value.provisioner||y.lI}`;return e===y.lI&&(e=`${e}_${this.value.provisionerVersion||y.Zd}`),{provisioner:e,volumeGroupDialog:null,randomStr:(0,_.vx)(10).toLowerCase(),isOpen:!1}},computed:{provisioners(){const e=[],t=this.$store.getters["currentProduct"].inStore,a=this.$store.getters[`${t}/all`](y.Zq)||[];return a.forEach((({name:t})=>{switch(t){case y.lI:e.push({label:`harvester.host.disk.storage.longhorn.${y.Zd}.label`,value:`${t}_${y.Zd}`}),this.longhornSystemVersion!==y.SB&&this.value.provisionerVersion!==y.SB||e.push({label:`harvester.host.disk.storage.longhorn.${y.SB}.label`,value:`${t}_${y.SB}`,disabled:this.forceLonghornV1});break;case U.LVM_DRIVER:e.push({label:"harvester.host.disk.storage.lvm.label",value:t});break}})),e},lvmVolumeGroups(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](x.rk.LVM_VOLUME_GROUP)||[],a=t.filter((e=>e.spec.nodeName===this.node.name)).map((e=>e.spec.vgName));return a.unshift({label:this.t("harvester.host.disk.lvmVolumeGroup.create"),value:$}),a},targetDisk(){return this.disks.find((e=>e.name===this.value.name))},schedulableTooltipMessage(){const{name:e,path:t}=this.value;return this.targetDisk&&!this.targetDisk.allowScheduling&&e&&t?this.t("harvester.host.disk.allowScheduling.tooltip",{name:e,path:t}):this.schedulableCondition.message},allowSchedulingOptions(){return[{label:this.t("generic.enabled"),value:!0},{label:this.t("generic.disabled"),value:!1}]},evictionRequestedOptions(){return[{label:this.t("generic.yes"),value:!0},{label:this.t("generic.no"),value:!1}]},mountedMessage(){const e=this.blockDevice?.metadata?.state||{};return e?.error?e?.message:""},isProvisioned(){return this.blockDevice?.isProvisioned},forceFormattedDisabled(){const e=this.blockDevice?.status?.deviceStatus?.fileSystem?.LastFormattedAt,t=this.blockDevice?.status?.deviceStatus?.fileSystem.type,a=["ext4","XFS"];return!!(e||this.blockDevice?.childParts?.length>0)||!a.includes(t)&&(!t||!this.canEditPath)},canEditPath(){return!!this.mountedMessage||!(!this.value.isNew||this.value.originPath)},isFormatted(){return!!this.blockDevice?.status?.deviceStatus?.fileSystem?.LastFormattedAt},formattedBannerLabel(){const e=this.blockDevice?.status?.deviceStatus?.fileSystem?.type,t=this.t("harvester.host.disk.lastFormattedAt.info");return e?`${t} ${this.t("harvester.host.disk.fileSystem.info",{system:e})}`:t},provisionPhase(){return this.blockDevice?.provisionPhase||{}},blockDevice(){const e=this.$store.getters["currentProduct"].inStore,t=this.value?.name;return this.$store.getters[`${e}/byId`](x.rk.BLOCK_DEVICE,`${M.LONGHORN_SYSTEM}/${t}`)||{}},isCorrupted(){return this.blockDevice?.status?.deviceStatus?.fileSystem?.corrupted},isFormatting(){return this.blockDevice.isFormatting},longhornSystemVersion(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](y.oe.SETTINGS,M.LONGHORN_V2_DATA_ENGINE)||{};return"true"===t.value?y.SB:y.Zd},forceLonghornV1(){return"true"===this.node?.labels[D.r.DISABLE_LONGHORN_V2_ENGINE]},isLvm(){return this.value.provisioner===U.LVM_DRIVER},isLonghorn(){return this.value.provisioner===y.lI},isLonghornV1(){return this.isLonghorn&&this.value.provisionerVersion===y.Zd},provisionerTooltip(){return this.mode===R.G5&&this.isLonghorn&&this.longhornSystemVersion===y.SB&&this.forceLonghornV1?this.t("harvester.storage.storageClass.longhorn.versionTooltip"):null}},watch:{provisioner(e){this.randomStr=(0,_.vx)(10).toLowerCase();const[t,a]=e?.split("_");this.value.provisioner=t,t===y.lI?this.value.provisionerVersion=a||y.Zd:this.value.provisionerVersion=void 0},"value.lvmVolumeGroup"(e){e===$&&(this.value.lvmVolumeGroup=null,this.showCreateVolumeGroup())}},methods:{showCreateVolumeGroup(){this.volumeGroupDialog=null,this.isOpen=!0},hideCreateVolumeGroup(){this.isOpen=!1},saveCreateVolumeGroup(e){e(!0),this.value.lvmVolumeGroup=this.volumeGroupDialog,this.hideCreateVolumeGroup()},update(){this.$emit("update:value",this.value)}}},I=(a(94287),a(47433));const L=(0,I.A)(O,[["render",f],["__scopeId","data-v-30b402d6"]]);var P=L},65864:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return M}});var o=a(9274);const r={key:0},s={class:"row"},l={class:"col span-6"},n={key:1},i={class:"row mt-10"},d={class:"col span-6"},c={class:"col span-6"},u={class:"row mt-20"},p={class:"col span-6"},m={class:"row mt-20"},v={class:"col span-6"},h={key:0,class:"col span-6 mt-20"};function b(e,t,a,b,g,f){const k=(0,o.resolveComponent)("Banner"),y=(0,o.resolveComponent)("RadioGroup"),N=(0,o.resolveComponent)("LabeledInput"),V=(0,o.resolveComponent)("Checkbox"),C=(0,o.resolveComponent)("LabeledSelect"),w=(0,o.resolveComponent)("NameNsDescription"),E=(0,o.resolveComponent)("ModalWithCard");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[a.inventory.warningMessages.length>0?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(a.inventory.warningMessages,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(k,{key:t,color:"error",label:e.text},null,8,["label"])))),128))])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(y,{value:g.enableInventory,"onUpdate:value":t[0]||(t[0]=e=>g.enableInventory=e),options:[{label:e.t("generic.enabled"),value:!0},{label:e.t("generic.disabled"),value:!1}],mode:a.mode,name:"enableInventory"},null,8,["value","options","mode"])])]),g.enableInventory?((0,o.openBlock)(),(0,o.createElementBlock)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(N,{value:g.value.spec.baseboardSpec.connection.host,"onUpdate:value":t[1]||(t[1]=e=>g.value.spec.baseboardSpec.connection.host=e),label:e.t("harvester.seeder.inventory.host.label"),placeholder:e.t("harvester.seeder.inventory.host.placeholder"),mode:a.mode,required:""},null,8,["value","label","placeholder","mode"]),(0,o.createVNode)(V,{value:g.value.spec.baseboardSpec.connection.insecureTLS,"onUpdate:value":t[2]||(t[2]=e=>g.value.spec.baseboardSpec.connection.insecureTLS=e),class:"mt-5",mode:a.mode,label:e.t("harvester.seeder.inventory.insecureTLS.label")},null,8,["value","mode","label"])]),(0,o.createElementVNode)("div",c,[(0,o.createVNode)(N,{value:g.value.spec.baseboardSpec.connection.port,"onUpdate:value":t[3]||(t[3]=e=>g.value.spec.baseboardSpec.connection.port=e),valueModifiers:{number:!0},label:e.t("harvester.seeder.inventory.port.label"),placeholder:e.t("harvester.seeder.inventory.port.placeholder"),mode:a.mode,required:""},null,8,["value","label","placeholder","mode"])])]),(0,o.createElementVNode)("div",u,[(0,o.createElementVNode)("div",p,[(0,o.createVNode)(C,{value:f.selectedSecret,"onUpdate:value":t[4]||(t[4]=e=>f.selectedSecret=e),label:e.t("harvester.seeder.inventory.secret.label"),mode:a.mode,options:f.secretOption,required:""},null,8,["value","label","mode","options"])])]),(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,[(0,o.createVNode)(y,{value:g.value.spec.events.enabled,"onUpdate:value":t[5]||(t[5]=e=>g.value.spec.events.enabled=e),name:"enabled",options:[!0,!1],label:e.t("harvester.seeder.inventory.event.label"),labels:[e.t("generic.enabled"),e.t("generic.disabled")],mode:a.mode},null,8,["value","label","labels","mode"])])]),g.value.spec.events.enabled?((0,o.openBlock)(),(0,o.createElementBlock)("div",h,[(0,o.createVNode)(N,{value:g.value.spec.events.pollingInterval,"onUpdate:value":t[6]||(t[6]=e=>g.value.spec.events.pollingInterval=e),label:e.t("harvester.seeder.inventory.pollingInterval.label"),mode:a.mode},null,8,["value","label","mode"])])):(0,o.createCommentVNode)("",!0),g.isOpen?((0,o.openBlock)(),(0,o.createBlock)(E,{key:1,width:"80%",errors:g.errors,name:"secretModal",onFinish:f.saveSecret,onClose:f.cancel},{title:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.seeder.inventory.secret.create.title")),1)])),content:(0,o.withCtx)((()=>[(0,o.createVNode)(w,{value:g.secret,namespaced:!0,mode:"create","onUpdate:value":t[7]||(t[7]=t=>e.$emit("update:value",t))},null,8,["value"]),(0,o.createVNode)(N,{value:f.username,"onUpdate:value":t[8]||(t[8]=e=>f.username=e),label:e.t("harvester.virtualMachine.input.username"),class:"mb-20",required:""},null,8,["value","label"]),(0,o.createVNode)(N,{value:f.password,"onUpdate:value":t[9]||(t[9]=e=>f.password=e),type:"password",label:e.t("harvester.virtualMachine.input.password"),class:"mb-20",required:""},null,8,["value","label"])])),_:1},8,["errors","onFinish","onClose"])):(0,o.createCommentVNode)("",!0)])):(0,o.createCommentVNode)("",!0)])}var g=a(77988),f=a(79380),k=a(10196),y=a(42200),N=a(35664),V=a(40973),C=a(32786),w=a(9980),E=a(4514),S=a(99726);const B="_NEW";var A={name:"HarvesterSeeder",emits:["update:value"],components:{Checkbox:y.S,LabeledInput:f.o,LabeledSelect:g.A,RadioGroup:k.z,ModalWithCard:V.A,NameNsDescription:C.A,Banner:w.l},props:{mode:{type:String,required:!0},node:{type:Object,required:!0},registerAfterHook:{type:Function,required:!0},inventory:{type:Object,required:!0}},data(){const e=!!this.inventory?.id;return{enableInventory:e,value:this.inventory,secret:{},errors:[],newSecretSelected:!1,isOpen:!1}},created(){this.registerAfterHook(this.saveInventory,"saveInventory")},async fetch(){const e=this.$store.getters["currentProduct"].inStore;this.secret=await this.$store.dispatch(`${e}/create`,{type:N.bB,data:{username:"",password:""},metadata:{namespace:"",name:"",describe:""}})},computed:{secretOption(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](N.bB).filter((e=>e.data?.username&&e.data?.password)).map((e=>({label:e.id,value:e.id})));return t.unshift({label:this.t("harvester.virtualMachine.createSSHKey"),value:B}),t},selectedSecret:{get(){const e=this.value.spec?.baseboardSpec?.connection?.authSecretRef?.namespace,t=this.value?.spec?.baseboardSpec?.connection?.authSecretRef?.name;return e&&t?`${e}/${t}`:""},set(e){if(e===B)this.newSecretSelected=!0;else{const[t,a]=e.split("/");this.value.spec.baseboardSpec.connection.authSecretRef["namespace"]=t,this.value.spec.baseboardSpec.connection.authSecretRef["name"]=a}}},username:{get(){return(0,E.u)(this.secret?.data?.username)},set(e){this.secret.data["username"]=(0,E.KA)(e)}},password:{get(){return(0,E.u)(this.secret?.data?.password)},set(e){this.secret.data["password"]=(0,E.KA)(e)}}},methods:{async saveInventory(){if(this.enableInventory){const e=[];return this.value.spec.baseboardSpec.connection.host||e.push(this.t("validation.required",{key:this.t("harvester.seeder.inventory.host.label")},!0)),this.value.spec.baseboardSpec.connection.port||e.push(this.t("validation.required",{key:this.t("harvester.seeder.inventory.port.label")},!0)),this.selectedSecret||e.push(this.t("validation.required",{key:this.t("harvester.seeder.inventory.secret.label")},!0)),e.length>0?Promise.reject((0,S.rz)(e)):(this.value.id||(this.value.metadata.annotations["metal.harvesterhci.io/local-node-name"]=this.node.id),this.value.metadata.annotations["metal.harvesterhci.io/local-inventory"]="true",await this.value.save())}return this.value.id?await this.value.remove():Promise.resolve()},show(){this.isOpen=!0},hide(){this.isOpen=!1,this.newSecretSelected=!1},cancel(){this.hide()},async saveSecret(e){if(this.errors=[],this.username||this.errors.push(this.t("validation.required",{key:this.t("harvester.virtualMachine.input.username")},!0)),this.password||this.errors.push(this.t("validation.required",{key:this.t("harvester.virtualMachine.input.password")},!0)),this.errors.length>0)e(!1);else try{const t=await this.secret.save();t.id&&this.secretOption.push({label:t.id,value:t.id}),this.selectedSecret=t.id,e(!0),this.cancel()}catch(t){this.errors=[t.message],e(!1)}}},watch:{newSecretSelected(e){e&&this.show()}}},x=a(47433);const D=(0,x.A)(A,[["render",b]]);var M=D},83385:function(e,t,a){"use strict";a.r(t),a.d(t,{LONGHORN_SYSTEM:function(){return K},LONGHORN_V2_DATA_ENGINE:function(){return z},default:function(){return Q}});var o=a(9274);const r={key:1,id:"node"},s={class:"content"},l={key:0,class:"row mb-20"},n={class:"col span-12"},i={key:0},d={key:1},c=["onClick"],u={key:1},p={key:1},m={key:2};function v(e,t,a,v,h,b){const g=(0,o.resolveComponent)("Loading"),f=(0,o.resolveComponent)("NameNsDescription"),k=(0,o.resolveComponent)("LabeledInput"),y=(0,o.resolveComponent)("Tab"),N=(0,o.resolveComponent)("Tags"),V=(0,o.resolveComponent)("HarvesterDisk"),C=(0,o.resolveComponent)("ButtonDropdown"),w=(0,o.resolveComponent)("ArrayListGrouped"),E=(0,o.resolveComponent)("HarvesterKsmtuned"),S=(0,o.resolveComponent)("HarvesterSeeder"),B=(0,o.resolveComponent)("Banner"),A=(0,o.resolveComponent)("MessageLink"),x=(0,o.resolveComponent)("KeyValue"),D=(0,o.resolveComponent)("Tabbed"),M=(0,o.resolveComponent)("Footer");return e.$fetchState.pending?((0,o.openBlock)(),(0,o.createBlock)(g,{key:0})):((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(f,{value:a.value,namespaced:!1,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(D,{ref:"tabbed",class:"mt-15","side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(y,{name:"basics",weight:100,label:e.t("harvester.host.tabs.basics")},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(k,{value:h.customName,"onUpdate:value":t[1]||(t[1]=e=>h.customName=e),label:e.t("harvester.host.detail.customName"),class:"mb-20",mode:e.mode},null,8,["value","label","mode"]),(0,o.createVNode)(k,{value:h.consoleUrl,"onUpdate:value":t[2]||(t[2]=e=>h.consoleUrl=e),label:e.t("harvester.host.detail.consoleUrl"),class:"mb-20",mode:e.mode},null,8,["value","label","mode"])])),_:1},8,["label"]),b.hasBlockDevicesSchema?((0,o.openBlock)(),(0,o.createBlock)(y,{key:0,name:"disk",weight:80,label:e.t("harvester.host.tabs.storage")},{default:(0,o.withCtx)((()=>[b.longhornNode?((0,o.openBlock)(),(0,o.createElementBlock)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(N,{value:b.longhornNode.spec.tags,"onUpdate:value":t[3]||(t[3]=e=>b.longhornNode.spec.tags=e),label:e.t("harvester.host.tags.label"),"add-label":e.t("harvester.host.tags.addLabel"),mode:e.mode},null,8,["value","label","add-label","mode"])])])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(w,{value:h.newDisks,"onUpdate:value":t[5]||(t[5]=e=>h.newDisks=e),mode:e.mode,"initial-empty-row":!1},{default:(0,o.withCtx)((t=>[(0,o.createVNode)(V,{value:t.row.value,"onUpdate:value":e=>t.row.value=e,class:"mb-20",mode:e.mode,disks:h.disks,node:a.value},null,8,["value","onUpdate:value","mode","disks","node"])])),add:(0,o.withCtx)((()=>[e.isView?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(C,{key:0,"button-label":e.t("harvester.host.disk.add"),"dropdown-options":h.blockDeviceOpts,size:"sm",selectable:b.selectable,onClickAction:t[4]||(t[4]=e=>b.addDisk(e.value)),onDdButtonAction:b.ddButtonAction},{option:(0,o.withCtx)((e=>["group"===e.kind?((0,o.openBlock)(),(0,o.createElementBlock)("b",i,(0,o.toDisplayString)(e.label),1)):((0,o.openBlock)(),(0,o.createElementBlock)("div",d,(0,o.toDisplayString)(e.label),1))])),_:1},8,["button-label","dropdown-options","selectable","onDdButtonAction"]))])),"remove-button":(0,o.withCtx)((a=>[b.canRemove(a.row,a.i)&&!e.isView?((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:0,type:"button",class:"btn role-link close btn-sm",onClick:()=>b.onRemove(a)},t[6]||(t[6]=[(0,o.createElementVNode)("i",{class:"icon icon-x"},null,-1)]),8,c)):((0,o.openBlock)(),(0,o.createElementBlock)("span",u))])),_:1},8,["value","mode"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),b.hasKsmtunedSchema?((0,o.openBlock)(),(0,o.createBlock)(y,{key:1,name:"Ksmtuned",weight:70,label:e.t("harvester.host.tabs.ksmtuned")},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(E,{mode:e.mode,node:a.value,"register-before-hook":e.registerBeforeHook},null,8,["mode","node","register-before-hook"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),b.hasAddonSchema?((0,o.openBlock)(),(0,o.createBlock)(y,{key:2,name:"seeder",weight:60,label:e.t("harvester.host.tabs.seeder")},{default:(0,o.withCtx)((()=>[b.seederEnabled&&b.hasInventorySchema?((0,o.openBlock)(),(0,o.createBlock)(S,{key:0,mode:e.mode,node:a.value,"register-after-hook":e.registerAfterHook,inventory:h.inventory},null,8,["mode","node","register-after-hook","inventory"])):b.seederEnabled&&!b.hasInventorySchema?((0,o.openBlock)(),(0,o.createElementBlock)("div",p,[(0,o.createVNode)(B,{color:"info",label:e.t("harvester.seeder.banner.noInventory")},null,8,["label"])])):((0,o.openBlock)(),(0,o.createElementBlock)("div",m,[b.hasSeederAddon?((0,o.openBlock)(),(0,o.createBlock)(B,{key:0,color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(A,{to:b.toEnableSeederAddon,"prefix-label":"harvester.seeder.banner.enable.prefix","middle-label":"harvester.seeder.banner.enable.middle","suffix-label":"harvester.seeder.banner.enable.suffix"},null,8,["to"])])),_:1})):((0,o.openBlock)(),(0,o.createBlock)(B,{key:1,color:"warning",label:e.t("harvester.seeder.banner.noAddon")},null,8,["label"]))]))])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(y,{name:"labels","label-key":"harvester.host.tabs.labels"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(x,{key:"labels",value:h.filteredLabels,"add-label":e.t("labels.addLabel"),mode:e.mode,"read-allowed":!1,"value-can-be-empty":!0,"onUpdate:value":b.updateHostLabels},null,8,["value","add-label","mode","onUpdate:value"])])),_:1})])),_:1},512),b.showFormattedWarning?((0,o.openBlock)(),(0,o.createBlock)(B,{key:0,color:"warning",label:e.t("harvester.host.disk.forceFormatted.toolTip")},null,8,["label"])):(0,o.createCommentVNode)("",!0)]),(0,o.createVNode)(M,{class:"footer",mode:e.mode,errors:e.errors,onSave:e.save,onDone:e.done},null,8,["mode","errors","onSave","onDone"])]))}var h=a(65359),b=a(59808),g=a(49584),f=a(89210),k=a(32786),y=a(79380),N=a(31097),V=a(8552),C=a(91825),w=a(2602),E=a(35664),S=a(88339),B=a(95799),A=a(68851),x=a(76978),D=a(99726),M=a(25088),U=a(84409),T=a(96413),_=a(66905),R=a(20652),$=a(14220),O=a(74302),I=a(9980),L=a(32766),P=a(13965),q=a(65864),F=a(27547),G=a(49306),H=a(82877),j=a(46343),J=a.n(j);const K="longhorn-system",z="longhorn-system/v2-data-engine";var Y={name:"HarvesterEditNode",emits:["update:value"],components:{Footer:f.A,Tabbed:b.A,Tab:g.A,LabeledInput:y.o,NameNsDescription:k.A,ArrayListGrouped:N.A,HarvesterDisk:P["default"],HarvesterKsmtuned:F["default"],ButtonDropdown:V.A,KeyValue:M.A,Banner:I.l,Tags:G.A,Loading:U.A,HarvesterSeeder:q["default"],MessageLink:T.A},mixins:[C.A],inheritAttrs:!1,props:{value:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={longhornNodes:this.$store.dispatch(`${e}/findAll`,{type:E.oe.NODES}),blockDevices:this.$store.dispatch(`${e}/findAll`,{type:L.rk.BLOCK_DEVICE}),addons:this.$store.dispatch(`${e}/findAll`,{type:L.rk.ADD_ONS}),secrets:this.$store.dispatch(`${e}/findAll`,{type:E.bB})};this.longhornV2LVMSupport&&(t.longhornV2DataEngine=this.$store.dispatch(`${e}/find`,{type:E.oe.SETTINGS,id:z})),this.$store.getters[`${e}/schemaFor`](L.rk.INVENTORY)&&(t.inventories=this.$store.dispatch(`${e}/findAll`,{type:L.rk.INVENTORY})),await(0,S.kR)(t);const a=this.$store.getters[`${e}/all`](L.rk.BLOCK_DEVICE),o=a.filter((e=>{const t=e?.spec?.nodeName===this.value.id,a=(0,A.jq)(this.longhornDisks,"name",e.metadata.name);return e?.isProvisioned&&t&&!a})).map((e=>{const t=e?.status?.deviceStatus?.fileSystem?.corrupted;return{isNew:!0,name:e?.metadata?.name,originPath:e?.spec?.fileSystem?.mountPoint,path:e?.spec?.fileSystem?.mountPoint,blockDevice:e,displayName:e?.displayName,forceFormatted:!!t||(e?.spec?.fileSystem?.forceFormatted||!1),provisioner:e?.spec?.provisioner?.lvm?H.LVM_DRIVER:E.lI,provisionerVersion:e?.spec?.provisioner?.longhorn?.engineVersion||E.Zd,lvmVolumeGroup:e?.spec?.provisioner?.lvm?.vgName}})),r=[...this.longhornDisks,...o];this.disks=r,this.newDisks=(0,x.o8)(r),this.blockDeviceOpts=this.getBlockDeviceOpts();const s=this.$store.getters[`${e}/all`](L.rk.ADD_ONS),l=s.find((e=>e.id===`harvester-system/${_.Jo.HARVESTER_SEEDER}`)),n=!!l&&l?.spec?.enabled;if(n){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](L.rk.INVENTORY)||[],a=t.find((e=>e.id===`harvester-system/${this.value.id}`));a?this.inventory=await this.$store.dispatch(`${e}/clone`,{resource:a}):(this.inventory=await this.$store.dispatch(`${e}/create`,{type:L.rk.INVENTORY,metadata:{name:this.value.id,namespace:"harvester-system"}}),this.inventory.applyDefaults())}},data(){const e=this.value.metadata?.annotations?.[w.r.HOST_CUSTOM_NAME]||"",t=this.value.metadata?.annotations?.[w.r.HOST_CONSOLE_URL]||"";return{customName:e,consoleUrl:t,disks:[],newDisks:[],blockDevice:[],blockDeviceOpts:[],filteredLabels:(0,x.o8)(this.value.filteredSystemLabels),inventory:{},originValue:(0,x.o8)(this.value)}},computed:{...(0,h.L8)({t:"i18n/t"}),longhornV2LVMSupport(){return this.$store.getters["harvester-common/getFeatureEnabled"]("longhornV2LVMSupport")},removedDisks(){const e=this.disks.filter((e=>!(0,A.jq)(this.newDisks,"name",e.name)))||[];return e},longhornDisks(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](E.oe.NODES,`${K}/${this.value.id}`),a=t?.status?.diskStatus||{},o=t?.spec?.disks||{},r={increment:1024,minExponent:3,maxExponent:3,maxPrecision:2,suffix:"iB"},s=Object.keys(a).map((t=>{const s=this.$store.getters[`${e}/byId`](L.rk.BLOCK_DEVICE,`${K}/${t}`);return{...a[t],...o?.[t],name:t,isNew:!1,storageReserved:(0,B.Mo)(o[t]?.storageReserved,r),storageAvailable:(0,B.Mo)(a[t]?.storageAvailable,r),storageMaximum:(0,B.Mo)(a[t]?.storageMaximum,r),storageScheduled:(0,B.Mo)(a[t]?.storageScheduled,r),blockDevice:s,displayName:s?.displayName||t,forceFormatted:s?.spec?.fileSystem?.forceFormatted||!1,tags:o?.[t]?.tags||[],provisioner:s?.spec?.provisioner?.lvm?H.LVM_DRIVER:E.lI,provisionerVersion:s?.spec?.provisioner?.longhorn?.engineVersion||E.Zd,lvmVolumeGroup:s?.spec?.provisioner?.lvm?.vgName}}));return s},showFormattedWarning(){const e=this.newDisks.filter((e=>e.forceFormatted&&e.isNew&&e.provisionerVersion===E.Zd))||[];return e.length>0},hasKsmtunedSchema(){const e=this.$store.getters["currentProduct"].inStore;return!!this.$store.getters[`${e}/schemaFor`](L.rk.KSTUNED)},hasBlockDevicesSchema(){const e=this.$store.getters["currentProduct"].inStore;return!!this.$store.getters[`${e}/schemaFor`](L.rk.BLOCK_DEVICE)},longhornNode(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](E.oe.NODES);return t.find((e=>e.id===`${K}/${this.value.id}`))},seederEnabled(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](L.rk.ADD_ONS),a=t.find((e=>e.id===`harvester-system/${_.Jo.HARVESTER_SEEDER}`));return!!a&&a?.spec?.enabled},toEnableSeederAddon(){const{cluster:e}=this.$router?.currentRoute?.params||{};return{name:`${R.KR}-c-cluster-resource-namespace-id`,params:{resource:`${L.rk.ADD_ONS}`,namespace:"harvester-system",cluster:e,id:`${_.Jo.HARVESTER_SEEDER}`},query:{mode:$.G5}}},hasAddonSchema(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/schemaFor`](L.rk.ADD_ONS)},hasSeederAddon(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](L.rk.ADD_ONS);return t.find((e=>e.id===`harvester-system/${_.Jo.HARVESTER_SEEDER}`))},hasInventorySchema(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/schemaFor`](L.rk.INVENTORY)}},watch:{customName(e){this.value.setAnnotation(w.r.HOST_CUSTOM_NAME,e)},consoleUrl(e){this.value.setAnnotation(w.r.HOST_CONSOLE_URL,e)},newDisks(){this.blockDeviceOpts=this.getBlockDeviceOpts()}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.willSave,"willSave"),this.registerAfterHook&&(this.registerAfterHook(this.saveDisk),this.registerAfterHook(this.saveLonghornNode))},methods:{addDisk(e){const t=(0,A.jq)(this.removedDisks,"blockDevice.id",e);if(t)return this.newDisks.push(t);const a=this.$store.getters["currentProduct"].inStore,o=this.$store.getters[`${a}/byId`](L.rk.BLOCK_DEVICE,e),r=o?.spec?.fileSystem?.mountPoint,s=o?.status?.deviceStatus?.fileSystem?.LastFormattedAt;let l=!0;const n=["ext4","XFS"];o.childParts?.length>0?l=!0:(s||n.includes(o?.status?.deviceStatus?.fileSystem?.type))&&(l=!1);const i=o?.metadata?.name;this.newDisks.push({name:i,path:r,allowScheduling:!1,evictionRequested:!1,storageReserved:0,isNew:!0,originPath:o?.spec?.fileSystem?.mountPoint,blockDevice:o,displayName:o?.displayName,forceFormatted:l,provisioner:E.lI,provisionerVersion:E.Zd,lvmVolumeGroup:null})},async saveDisk(){const e=this.$store.getters["currentProduct"].inStore,t=this.newDisks.filter((e=>e.isNew)),a=this.disks.filter((e=>!(0,A.jq)(this.newDisks,"name",e.name)&&e.blockDevice));if(0===t.length&&0===a.length)return Promise.resolve();if(0!==t.length&&0===a.length){const a=t.filter((t=>{const a=this.$store.getters[`${e}/byId`](L.rk.BLOCK_DEVICE,`${K}/${t.name}`),{forceFormatted:o}=a.spec.fileSystem,{provisioner:r}=a.spec;return!(a.isProvisioned&&o===t.forceFormatted&&J()(r,t.provisioner))}));if(0===a.length)return Promise.resolve()}try{await Promise.all(t.map((t=>{const a=this.$store.getters[`${e}/byId`](L.rk.BLOCK_DEVICE,`${K}/${t.name}`);switch(a.spec.provision=!0,a.spec.fileSystem.forceFormatted=t.forceFormatted,t.provisioner){case E.lI:a.spec.provisioner={longhorn:{engineVersion:t.provisionerVersion}};break;case H.LVM_DRIVER:a.spec.provisioner={lvm:{vgName:t.lvmVolumeGroup}};break}return a.save()}))),await Promise.all(a.map((t=>{const a=this.$store.getters[`${e}/byId`](L.rk.BLOCK_DEVICE,`${K}/${t.name}`);return a.spec.provision=!1,a.save()}))),this.$store.dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.host.disk.notification.success",{name:this.value.metadata?.name||""})},{root:!0})}catch(o){return Promise.reject((0,D.rz)(o))}},canRemove(e){return!!e?.value?.blockDevice},onRemove(e){e.remove()},updateHostLabels(e){this.filteredLabels=e},selectable(e){return!e.disabled},getBlockDeviceOpts(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](L.rk.BLOCK_DEVICE),a=t.filter((e=>{const t=(0,A.jq)(e?.status?.conditions||[],"type","AddedToNode"),a=(0,A.jq)(this.newDisks,"name",e.metadata.name),o=(0,A.jq)(this.removedDisks,"name",e.metadata.name),r=e.status?.deviceStatus?.details?.deviceType;return"disk"===r&&"Active"===e?.status?.state&&!(((0,A.jq)(this.disks||[],"name",e.metadata.name)||e?.spec?.nodeName!==this.value.id||t&&"False"!==t?.status||e?.isProvisioned||a)&&!o)})).map((e=>{const t=e.spec?.devPath,a=e.status?.deviceStatus?.details?.deviceType,o=e.status?.deviceStatus?.capacity?.sizeBytes,r=(0,B.Mo)(o,{increment:1024}),s=e.status?.deviceStatus?.parentDevice,l=this.newDisks.find((e=>e.blockDevice?.status?.deviceStatus?.parentDevice===t)),n=e.displayName;let i=`${n} (Type: ${a}, Size: ${r})`;return s&&(i=`- ${i}`),{label:i,value:e.id,action:this.addDisk,kind:s?"":"group",disabled:!!l,group:s||t,isParent:!!s}}));return(0,O.Ul)(a,["group","isParent","label"])},ddButtonAction(){this.blockDeviceOpts=this.getBlockDeviceOpts()},willSave(){const e=this.filteredLabels||{};this.value.metadata.labels={...this.value.metadata.labels,...e};const t=this.value.filteredSystemLabels;Object.keys(t).map((t=>{e[t]||delete this.value.metadata.labels[t]}))},async saveLonghornNode(){const e=this.$store.getters["currentProduct"].inStore,t=this.longhornNode?.spec?.disks||{};this.newDisks.map((e=>{(t[e.name]||{}).tags=e.tags,(t[e.name]||{}).allowScheduling=e.allowScheduling}));let a=0;const o=async()=>{try{await this.longhornNode.save()}catch(t){if(409!==t.status&&403!==t.status||!(a<3))return Promise.reject((0,D.rz)(t));a++,await this.$store.dispatch(`${e}/find`,{type:E.oe.NODES,id:this.longhornNode.id,opt:{force:!0}}),await new Promise((e=>setTimeout(e,"5000"))),await o()}};this.longhornNode&&await o()}}},W=(a(30115),a(47433));const Z=(0,W.A)(Y,[["render",v],["__scopeId","data-v-5f263130"]]);var Q=Z},28355:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return g}});var o=a(9274);const r={class:"header mb-20"};function s(e,t,a,s,l,n){const i=(0,o.resolveComponent)("FileSelector"),d=(0,o.resolveComponent)("NameNsDescription"),c=(0,o.resolveComponent)("LabeledInput"),u=(0,o.resolveComponent)("Tab"),p=(0,o.resolveComponent)("Tabbed"),m=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(m,{"done-route":e.doneRoute,resource:a.value,mode:e.mode,errors:e.errors,"apply-hooks":e.applyHooks,onFinish:e.save},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[e.isCreate?((0,o.openBlock)(),(0,o.createBlock)(i,{key:0,class:"btn btn-sm bg-primary mt-10",label:e.t("generic.readFromFile"),accept:".pub",onSelected:n.onKeySelected},null,8,["label","onSelected"])):(0,o.createCommentVNode)("",!0)]),((0,o.openBlock)(),(0,o.createBlock)(d,{ref:"nd",key:l.randomString,value:a.value,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"])),(0,o.createVNode)(p,(0,o.mergeProps)(e.$attrs,{class:"mt-15","side-tabs":!0}),{default:(0,o.withCtx)((()=>[(0,o.createVNode)(u,{name:"basic",label:e.t("harvester.sshKey.tabs.basics"),weight:1,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(c,{value:l.publicKey,"onUpdate:value":t[1]||(t[1]=e=>l.publicKey=e),type:"multiline",mode:e.mode,"min-height":160,label:e.t("harvester.sshKey.keypair"),required:""},null,8,["value","mode","label"])])),_:1},8,["label"])])),_:1},16)])),_:1},8,["done-route","resource","mode","errors","apply-hooks","onFinish"])}var l=a(59808),n=a(49584),i=a(99960),d=a(79380),c=a(32786),u=a(29649),p=a(92043),m=a(91825),v={name:"HarvesterEditKeypair",emits:["update:value"],components:{Tab:n.A,Tabbed:l.A,CruResource:i.A,LabeledInput:d.o,FileSelector:u.A,NameNsDescription:c.A},mixins:[m.A],inheritAttrs:!1,props:{value:{type:Object,required:!0}},data(){return this.value.spec||(this.value.spec={},this.value.metadata={name:""}),{publicKey:this.value.spec.publicKey||"",randomString:""}},watch:{publicKey(e){const t=e.trim();this.value.spec.publicKey=t;const a=t.split(/\s+/);if(3===a.length&&!this.value.metadata.name){const e=a[2];this.randomString=(0,p.vx)(10).toLowerCase(),this.value.metadata.name=e.includes("@")?e.split("@")[0]:e}}},methods:{onKeySelected:(0,u.B)("publicKey")}},h=(a(54822),a(47433));const b=(0,h.A)(v,[["render",s],["__scopeId","data-v-392bdb63"]]);var g=b},70675:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return i}});var o=a(91462),r=a(35664),s=a(89351),l={extends:s.A,created(){this.isCreate&&this.value.type===r.cm.CLUSTER_FLOW&&(this.value.metadata.namespace="cattle-logging-system"),this.registerBeforeHook(this.willSave,"willSave"),this.registerAfterHook((()=>{const e=this.$store.getters["allNamespaces"],t=e.find((e=>"default"===e.id)),a=t?.id||e?.[0]?.id||"";this.value.$dispatch("prefs/set",{key:o.Ri,value:a},{root:!0}),this.willSave()}))}};const n=l;var i=n},17733:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return n}});var o=a(91462),r=a(955),s={extends:r["default"],created(){this.isCreate&&(this.value.metadata.namespace="cattle-logging-system"),this.registerAfterHook((()=>{const e=this.$store.getters["allNamespaces"],t=e.find((e=>"default"===e.id)),a=t?.id||e?.[0]?.id||"";this.value.$dispatch("prefs/set",{key:o.Ri,value:a},{root:!0})}))}};const l=s;var n=l},65647:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return d}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("Flow");return(0,o.openBlock)(),(0,o.createBlock)(n,(0,o.normalizeProps)((0,o.guardReactiveProps)(e.$attrs)),null,16)}var s=a(89351),l={components:{Flow:s.A}},n=a(47433);const i=(0,n.A)(l,[["render",r]]);var d=i},955:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return O}});var o=a(9274);const r={class:"output"},s={class:"row"},l={class:"col span-6"},n={class:"row"},i={class:"col span-6"};function d(e,t,a,d,c,u){const p=(0,o.resolveComponent)("NameNsDescription"),m=(0,o.resolveComponent)("Banner"),v=(0,o.resolveComponent)("LabeledSelect"),h=(0,o.resolveComponent)("Tab"),b=(0,o.resolveComponent)("YamlEditor"),g=(0,o.resolveComponent)("Labels"),f=(0,o.resolveComponent)("Tabbed"),k=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createVNode)(k,{"done-route":e.doneRoute,mode:u.cruMode,resource:e.value,subtypes:[],"validation-passed":!0,errors:e.errors,"can-yaml":!0,onError:t[5]||(t[5]=t=>e.errors=t),onFinish:e.save,onCancel:e.done},{default:(0,o.withCtx)((()=>[e.isView?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(p,{key:0,value:e.value,mode:e.mode,label:"generic.name","register-before-hook":e.registerBeforeHook,namespaced:e.value.type!==c.LOGGING.CLUSTER_OUTPUT,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode","register-before-hook","namespaced"])),c.selectedProviders.length>1?((0,o.openBlock)(),(0,o.createBlock)(m,{key:1,color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("logging.output.tips.singleProvider")),1)])),_:1})):e.value.allProvidersSupported?((0,o.openBlock)(),(0,o.createBlock)(f,{key:3,ref:"tabbed","side-tabs":!0,onChanged:t[4]||(t[4]=e=>u.tabChanged(e))},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(h,{name:"Output",label:"Output",weight:2},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(v,{value:c.loggingType,"onUpdate:value":t[1]||(t[1]=e=>c.loggingType=e),class:"mb-20",options:u.outputTypeOptions,disabled:!e.isCreate,mode:e.mode,label:e.t("generic.type")},null,8,["value","options","disabled","mode","label"])])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(v,{value:u.outputProvider,"onUpdate:value":t[2]||(t[2]=e=>u.outputProvider=e),label:"Output",options:c.providers,mode:e.mode},null,8,["value","options","mode"])])]),t[6]||(t[6]=(0,o.createElementVNode)("div",{class:"spacer"},null,-1)),((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(u.getComponent(c.selectedProvider)),{value:e.value.spec[c.selectedProvider],namespace:e.value.namespace,mode:e.mode},null,8,["value","namespace","mode"]))])),_:1}),(0,o.createVNode)(h,{name:"buffer",label:e.t("logging.output.buffer.label"),weight:1},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(b,{ref:"yaml",value:c.bufferYaml,"onUpdate:value":t[3]||(t[3]=e=>c.bufferYaml=e),scrolling:!1,"initial-yaml-values":c.initialBufferYaml,"editor-mode":e.isView?u.EDITOR_MODES.VIEW_CODE:u.EDITOR_MODES.EDIT_CODE,onOnReady:u.onYamlEditorReady},null,8,["value","initial-yaml-values","editor-mode","onOnReady"])])),_:1},8,["label"]),e.isView?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(h,{key:0,name:"labels-and-annotations","label-key":"generic.labelsAndAnnotations",weight:0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(g,{"default-container-class":"labels-and-annotations-container",value:e.value,mode:e.mode,"display-side-by-side":!1},null,8,["value","mode"])])),_:1}))])),_:1},512)):((0,o.openBlock)(),(0,o.createBlock)(m,{key:2,color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("logging.output.tips.multipleProviders")),1)])),_:1}))])),_:1},8,["done-route","mode","resource","errors","onFinish","onCancel"])])}var c=a(91825),u=a(35664),p=a(59808),m=a(49584),v=a(99960),h=a(32786),b=a(7365),g=a(77988),f=a(9980),k=a(44931),y=a(14220),N=a(76978),V=a(46343),C=a.n(V),w=a(3514),E=a.n(w),S=a(20246),B=a.n(S),A=a(37648),x=a(36143),D=a(66905);const M="Logging/Event",U="Audit Only",T=[M,U];var _={emits:["update:value"],components:{Banner:f.l,CruResource:v.A,Labels:b.A,LabeledSelect:g.A,NameNsDescription:h.A,Tab:m.A,Tabbed:p.A,YamlEditor:x.A},mixins:[c.A],inheritAttrs:!1,async fetch(){const e=this.$store.getters["harvester/all"](u.yx),t=this.$store.getters["harvester/byId"](u.yx,u.cm.OUTPUT),a=await t.fetchResourceFields();let o="";E()(this.value.spec[this.selectedProvider]?.buffer)?a&&(o=(0,A.mH)(e,`io.banzaicloud.logging.v1beta1.Output.spec.${this.selectedProvider}.buffer`,{},!0,1,"",u.cm.OUTPUT),o=o.substring(o.indexOf("\n")+1).replace(/# {2}/g,"#")):o=B().dump(this.value.spec[this.selectedProvider].buffer),o.length&&(this.bufferYaml=o,this.initialBufferYaml=o,this.$refs.yaml.updateValue(this.bufferYaml))},data(){this.isCreate&&(this.value.metadata.namespace="default"),(0,N.hZ)(this.value,"spec",this.value.spec||{});const e=k.PROVIDERS.map((e=>({...e,value:e.name,label:this.t(e.labelKey)}))),t=e.filter((e=>{const t=this.value.spec[e.name],a="forward"===e.name?t?.servers?.[0]||{}:t;return!E()(a)&&!C()(a,e.default)})),a=t?.[0]?.value||e[0].value,o=e.find((e=>e.name===a))?.default||e[0].default;return this.mode!==y.nW&&(0,N.hZ)(this.value.spec,a,this.value.spec[a]||(0,N.o8)(o)),{bufferYaml:"",initialBufferYaml:"",providers:e,selectedProvider:a,hasMultipleProvidersSelected:t.length>1,selectedProviders:t,LOGGING:u.cm,loggingType:this.value.loggingType!==D.UQ.AUDIT?M:U}},computed:{EDITOR_MODES(){return x.j},enabledProviders(){return this.providers.filter((e=>e.enabled))},cruMode(){return this.selectedProviders.length>1||!this.value.allProvidersSupported?y.nW:this.mode},outputTypeOptions(){return T},outputProvider:{get(){return this.selectedProvider},set(e){this.selectedProvider=e;const t=this.providers.find((t=>t.name===e))?.default||{};this.value.spec={[e]:this.value.spec[e]||(0,N.o8)(t)}}}},created(){this.registerBeforeHook(this.willSave,"willSave")},methods:{getComponent(e){return a(28431)(`./${e}`).default},launch(e){this.$refs.tabbed.select(e.name)},willSave(){const e=B().load(this.bufferYaml);E()(e)?delete this.value.spec[this.selectedProvider]["buffer"]:this.value.spec[this.selectedProvider].buffer=e,this.loggingType===U&&(this.value.spec["loggingRef"]="harvester-kube-audit-log-ref")},tabChanged({tab:e}){"buffer"===e.name&&this.$nextTick((()=>{this.$refs.yaml&&(this.$refs.yaml.refresh(),this.$refs.yaml.focus())}))},onYamlEditorReady(e){e.getMode().fold="yamlcomments",e.execCommand("foldAll"),e.execCommand("unfold")}}},R=(a(93459),a(47433));const $=(0,R.A)(_,[["render",d]]);var O=$},20906:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return C}});var o=a(9274);const r=["disabled","tooltip"],s={key:0,class:"icon icon-info"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("Loading"),c=(0,o.resolveComponent)("NameNsDescription"),u=(0,o.resolveComponent)("RouteConfig"),p=(0,o.resolveComponent)("Tab"),m=(0,o.resolveComponent)("router-link"),v=(0,o.resolveComponent)("ResourceTable"),h=(0,o.resolveComponent)("Tabbed"),b=(0,o.resolveComponent)("ActionMenu"),g=(0,o.resolveComponent)("CruResource"),f=(0,o.resolveDirective)("clean-tooltip");return e.$fetchState.pending?((0,o.openBlock)(),(0,o.createBlock)(d,{key:0})):((0,o.openBlock)(),(0,o.createBlock)(g,{key:1,class:"route","done-route":e.doneRoute,errors:e.errors,mode:e.mode,resource:e.value,subtypes:[],"cancel-event":!0,onError:t[2]||(t[2]=t=>e.errors=t),onFinish:e.save,onCancel:e.done},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(c,{value:e.value,mode:e.mode,namespaced:e.isNamespaced,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode","namespaced"]),(0,o.createVNode)(h,null,{default:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{label:e.t("monitoring.route.label"),weight:1,name:"route"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(u,{value:e.value.spec.route,mode:e.mode,"receiver-options":n.receiverOptions},null,8,["value","mode","receiver-options"])])),_:1},8,["label"]),(0,o.createVNode)(p,{label:e.t("alertmanagerConfigReceiver.receivers"),weight:2,name:"receivers"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(v,{headers:n.receiverTableHeaders,schema:n.receiverSchema,rows:e.value.spec.receivers||[],"get-custom-detail-link":i.getReceiverDetailLink,"table-actions":!1,"custom-actions":e.value.receiverActions,onClickedActionButton:i.setActionMenuState},{"header-button":(0,o.withCtx)((()=>[n.createReceiverLink&&n.createReceiverLink.name?((0,o.openBlock)(),(0,o.createBlock)(m,{key:0,to:e.mode!==n.create?n.createReceiverLink:{}},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("button",{class:"btn role-primary",disabled:e.mode===n.create,tooltip:e.t("monitoring.alertmanagerConfig.disabledReceiverButton")},[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("monitoring.receiver.addReceiver"))+" ",1),e.mode===n.create?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("i",s,null,512)),[[f,e.t("monitoring.alertmanagerConfig.disabledReceiverButton")]]):(0,o.createCommentVNode)("",!0)],8,r)])),_:1},8,["to"])):(0,o.createCommentVNode)("",!0)])),_:1},8,["headers","schema","rows","get-custom-detail-link","custom-actions","onClickedActionButton"])])),_:1},8,["label"])])),_:1}),(0,o.createVNode)(b,{"custom-actions":n.receiverActions,open:n.receiverActionMenuIsOpen,"use-custom-target-element":!0,"custom-target-element":n.actionMenuTargetElement,"custom-target-event":n.actionMenuTargetEvent,onClose:t[1]||(t[1]=e=>n.receiverActionMenuIsOpen=!1),onGoToEdit:i.goToEdit,onGoToEditYaml:i.goToEditYaml,onPromptRemove:i.promptRemove},null,8,["custom-actions","open","custom-target-element","custom-target-event","onGoToEdit","onGoToEditYaml","onPromptRemove"])])),_:1},8,["done-route","errors","mode","resource","onFinish","onCancel"]))}var n=a(99960),i=a(91825),d=a(59808),c=a(49584),u=a(35664),p=a(84409),m=a(32786),v=a(36143),h=a(57e3),b=a(45947),g=a(53500),f=a(40519),k=a(14220),y={emits:["update:value"],components:{ActionMenu:f.A,CruResource:n.A,Loading:p.A,NameNsDescription:m.A,ResourceTable:g.A,RouteConfig:b.A,Tab:c.A,Tabbed:d.A},mixins:[i.A],inheritAttrs:!1,async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=this.value.id,a=await this.$store.dispatch(`${e}/find`,{type:u.Rp.ALERTMANAGERCONFIG,id:t});this.alertmanagerConfigId=t,this.alertmanagerConfigResource=a,this.alertmanagerConfigDetailRoute=a._detailLocation;const o=a.availableActions,r=a.getReceiverActions(o);this.receiverActions=r},data(){this.value.applyDefaults();const e={},t=this.$store.getters["harvester/schemaFor"](u.Rp.SPOOFED.ALERTMANAGERCONFIG_RECEIVER_SPEC),a=this.$store.getters["harvester/schemaFor"](u.Rp.SPOOFED.ALERTMANAGERCONFIG_ROUTE_SPEC),o=(this.value?.spec?.receivers||[]).map((e=>e.name));return{actionMenuTargetElement:null,actionMenuTargetEvent:null,config:k.au,create:k.YQ,createReceiverLink:this.value.getCreateReceiverRoute(),defaultReceiverValues:e,receiverActionMenuIsOpen:!1,receiverTableHeaders:[{name:"name",labelKey:"tableHeaders.name",value:"name",sort:["nameSort"],formatter:"LinkDetail",canBeVariable:!0},{name:"type",labelKey:"tableHeaders.type",value:"name",formatter:"ReceiverIcons",canBeVariable:!0}],newReceiverType:null,receiverActions:[],receiverOptions:o,receiverTypes:h.RECEIVERS_TYPES,routeSchema:a,receiverSchema:t,selectedReceiverName:"",selectedRowValue:null,view:k.nW}},computed:{editorMode(){return this.mode===k.nW?v.j.VIEW_CODE:v.j.EDIT_CODE}},methods:{translateReceiverTypes(){return this.receiverTypes.map((e=>({...e,label:this.t(e.label)})))},getReceiverDetailLink(e){if(e&&e.name)return this.value.getReceiverDetailLink(e.name)},toggleReceiverActionMenu(){this.receiverActionMenuIsOpen=!0},setActionMenuState(e){const{event:t,targetElement:a}=e;if(!t||!a)throw new Error("Could not find action menu target element.");this.actionMenuTargetElement=a,this.actionMenuTargetEvent=t,this.selectedReceiverName=a.id.split("+").slice(2).join(""),this.toggleReceiverActionMenu()},goToEdit(){this.$router.push(this.alertmanagerConfigResource.getEditReceiverConfigRoute(this.selectedReceiverName,k.G5))},goToEditYaml(){this.$router.push(this.alertmanagerConfigResource.getEditReceiverYamlRoute(this.selectedReceiverName,k.G5))},promptRemove(){const e=this.selectedReceiverName,t=this.alertmanagerConfigResource.spec.receivers||[],a=t.filter((t=>t.name!==e));this.alertmanagerConfigResource.spec.receivers=a,this.alertmanagerConfigResource.save(...arguments)}}},N=(a(65548),a(47433));const V=(0,N.A)(y,[["render",l],["__scopeId","data-v-34ffb89b"]]);var C=V},95516:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return T}});var o=a(9274);const r={class:"row"},s={class:"col span-12"},l={class:"row mt-10"},n={class:"col span-6"},i={key:0,class:"row mt-10"},d={class:"col span-6"},c={key:1,class:"row mt-10"},u={class:"col span-6"},p={class:"col span-6"};function m(e,t,a,m,v,h){const b=(0,o.resolveComponent)("NameNsDescription"),g=(0,o.resolveComponent)("LabeledSelect"),f=(0,o.resolveComponent)("LabeledInput"),k=(0,o.resolveComponent)("Tab"),y=(0,o.resolveComponent)("RadioGroup"),N=(0,o.resolveComponent)("Tabbed"),V=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(V,{"done-route":e.doneRoute,resource:a.value,mode:e.mode,errors:e.errors,"apply-hooks":e.applyHooks,onFinish:h.saveNetwork},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(b,{ref:"nd",value:a.value,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(N,(0,o.mergeProps)(e.$attrs,{class:"mt-15","side-tabs":!0}),{default:(0,o.withCtx)((()=>[(0,o.createVNode)(k,{name:"basics",label:e.t("harvester.network.tabs.basics"),weight:99,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(g,{value:v.type,"onUpdate:value":t[1]||(t[1]=e=>v.type=e),class:"mb-20",options:h.networkType,mode:e.mode,label:e.t("harvester.fields.type"),required:""},null,8,["value","options","mode","label"]),h.isUntaggedNetwork?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(f,{key:0,value:v.config.vlan,"onUpdate:value":[t[2]||(t[2]=e=>v.config.vlan=e),h.input],valueModifiers:{number:!0},class:"mb-20",required:"",type:"number",placeholder:"e.g. 1-4094",label:e.t("tableHeaders.networkVlan"),mode:e.mode},null,8,["value","label","mode","onUpdate:value"])),(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(g,{value:v.config.bridge,"onUpdate:value":t[3]||(t[3]=e=>v.config.bridge=e),class:"mb-20",label:e.t("harvester.network.clusterNetwork.label"),required:"",options:h.clusterNetworkOptions,mode:e.mode,placeholder:e.t("harvester.network.clusterNetwork.selectPlaceholder")},null,8,["value","label","options","mode","placeholder"])])])])),_:1},8,["label"]),h.isUntaggedNetwork?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(k,{key:0,name:"layer3Network",label:e.t("harvester.network.tabs.layer3Network"),weight:98,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(y,{value:v.layer3Network.mode,"onUpdate:value":t[4]||(t[4]=e=>v.layer3Network.mode=e),name:"layer3NetworkMode",label:e.t("harvester.network.layer3Network.mode.label"),mode:e.mode,options:h.modeOptions},null,8,["value","label","mode","options"])])]),"auto"===v.layer3Network.mode?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(f,{value:v.layer3Network.serverIPAddr,"onUpdate:value":t[5]||(t[5]=e=>v.layer3Network.serverIPAddr=e),class:"mb-20",label:e.t("harvester.network.layer3Network.serverIPAddr.label"),mode:e.mode},null,8,["value","label","mode"])])])):((0,o.openBlock)(),(0,o.createElementBlock)("div",c,[(0,o.createElementVNode)("div",u,[(0,o.createVNode)(f,{value:v.layer3Network.cidr,"onUpdate:value":t[6]||(t[6]=e=>v.layer3Network.cidr=e),class:"mb-20",label:e.t("harvester.network.layer3Network.cidr.label"),placeholder:e.t("harvester.network.layer3Network.cidr.placeholder"),mode:e.mode,required:""},null,8,["value","label","placeholder","mode"])]),(0,o.createElementVNode)("div",p,[(0,o.createVNode)(f,{value:v.layer3Network.gateway,"onUpdate:value":t[7]||(t[7]=e=>v.layer3Network.gateway=e),class:"mb-20",label:e.t("harvester.network.layer3Network.gateway.label"),placeholder:e.t("harvester.network.layer3Network.gateway.placeholder"),mode:e.mode,required:""},null,8,["value","label","placeholder","mode"])])]))])),_:1},8,["label"]))])),_:1},16)])),_:1},8,["done-route","resource","mode","errors","apply-hooks","onFinish"])}var v=a(59808),h=a(49584),b=a(99960),g=a(79380),f=a(10196),k=a(32786),y=a(77988),N=a(2602),V=a(91825),C=a(88339),w=a(32766),E=a(41837);const{L2VLAN:S,UNTAGGED:B}=E.A,A="auto",x="manual";var D={emits:["update:value"],components:{Tab:h.A,Tabbed:v.A,CruResource:b.A,LabeledInput:g.o,NameNsDescription:k.A,RadioGroup:f.z,LabeledSelect:y.A},mixins:[V.A],inheritAttrs:!1,props:{value:{type:Object,required:!0}},data(){const e=JSON.parse(this.value.spec.config),t=this.value?.metadata?.annotations||{},a=JSON.parse(t[N.r.NETWORK_ROUTE]||"{}");(e.bridge||"").endsWith("-br")&&(e.bridge=e.bridge.slice(0,-3));const o=this.value.vlanType||S;return{config:e,type:o,layer3Network:{mode:a.mode||A,serverIPAddr:a.serverIPAddr||"",cidr:a.cidr||"",gateway:a.gateway||""}}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await(0,C.kR)({clusterNetworks:this.$store.dispatch(`${e}/findAll`,{type:w.rk.CLUSTER_NETWORK})})},created(){this.registerBeforeHook&&this.registerBeforeHook(this.updateBeforeSave)},computed:{modeOptions(){return[{label:this.t("harvester.network.layer3Network.mode.auto"),value:A},{label:this.t("harvester.network.layer3Network.mode.manual"),value:x}]},clusterNetworkOptions(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](w.rk.CLUSTER_NETWORK)||[];return t.map((e=>{const t=!e.isReady;return{label:t?`${e.id} (${this.t("generic.notReady")})`:e.id,value:e.id,disabled:t}}))},networkType(){return[S,B]},isUntaggedNetwork(){return this.isView?this.value.vlanType===B:this.type===B}},methods:{async saveNetwork(e){const t=[];if(this.config.vlan||this.isUntaggedNetwork||t.push(this.$store.getters["i18n/t"]("validation.required",{key:this.t("tableHeaders.networkVlan")})),this.config.bridge||t.push(this.$store.getters["i18n/t"]("validation.required",{key:this.t("harvester.network.clusterNetwork.label")})),this.layer3Network.mode===x&&(this.layer3Network.gateway||t.push(this.$store.getters["i18n/t"]("validation.required",{key:this.t("harvester.network.layer3Network.gateway.label")})),this.layer3Network.cidr||t.push(this.$store.getters["i18n/t"]("validation.required",{key:this.t("harvester.network.layer3Network.cidr.label")}))),t.length>0)return e(!1),this.errors=t,!1;this.value.setAnnotation(N.r.NETWORK_ROUTE,JSON.stringify(this.layer3Network)),await this.save(e)},input(e){if(""===e)return void(this.config.vlan="");const t=Number(e);this.config.vlan=t>4094?4094:t<1?1:t},updateBeforeSave(){this.config.name=this.value.metadata.name,this.isUntaggedNetwork&&delete this.config.vlan,this.value.spec.config=JSON.stringify({...this.config,bridge:`${this.config.bridge}-br`})}}},M=a(47433);const U=(0,M.A)(D,[["render",m]]);var T=U},18796:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return M}});var o=a(9274);const r={class:"banner"},s={class:"mb-30"},l={class:"row mb-30"},n={class:"col span-6"},i={class:"col span-6"};function d(e,t,a,d,c,u){const p=(0,o.resolveComponent)("MessageLink"),m=(0,o.resolveComponent)("Banner"),v=(0,o.resolveComponent)("RadioGroup"),h=(0,o.resolveComponent)("LabeledSelect"),b=(0,o.resolveComponent)("LabeledInput"),g=(0,o.resolveComponent)("Tab"),f=(0,o.resolveComponent)("Tabbed"),k=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(k,{"done-route":e.doneRoute,resource:a.value,mode:a.mode,errors:e.errors,"apply-hooks":e.applyHooks,"validation-passed":u.canSave,onFinish:e.save,onError:t[6]||(t[6]=t=>e.errors=t)},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[u.isBackupTargetUnAvailable?((0,o.openBlock)(),(0,o.createBlock)(m,{key:0,color:"error"},{default:(0,o.withCtx)((()=>[u.isEmptyValue?((0,o.openBlock)(),(0,o.createBlock)(p,{key:0,to:u.toBackupTargetSetting,target:e._blank,"prefix-label":"harvester.backup.message.noSetting.prefix","middle-label":"harvester.backup.message.noSetting.middle","suffix-label":"harvester.schedule.message.noSetting.suffix"},null,8,["to","target"])):((0,o.openBlock)(),(0,o.createBlock)(p,{key:1,to:u.toBackupTargetSetting,"prefix-label":"harvester.backup.message.errorTip.prefix","middle-label":"harvester.backup.message.errorTip.middle"},{suffix:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("harvester.backup.message.errorTip.suffix"))+" "+(0,o.toDisplayString)(u.errorMessage),1)])),_:1},8,["to"]))])),_:1})):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",s,[(0,o.createVNode)(v,{value:a.value.spec.vmbackup.type,"onUpdate:value":t[0]||(t[0]=e=>a.value.spec.vmbackup.type=e),name:"model",options:u.scheduleTypeOptions,labels:[e.t("harvester.schedule.type.backup"),e.t("harvester.schedule.type.snapshot")],disabled:e.isEdit||e.isView,mode:a.mode,row:"",onInput:u.onTypeChange},null,8,["value","options","labels","disabled","mode","onInput"])]),(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(h,{value:a.value.metadata.namespace,"onUpdate:value":t[1]||(t[1]=e=>a.value.metadata.namespace=e),label:e.t("nameNsDescription.namespace.label"),options:u.namespaces,required:"",disabled:u.isBackupTargetUnAvailable||e.isEdit||e.isView},null,8,["value","label","options","disabled"])]),(0,o.createElementVNode)("div",i,[(0,o.createVNode)(h,{value:a.value.spec.vmbackup.source.name,"onUpdate:value":t[2]||(t[2]=e=>a.value.spec.vmbackup.source.name=e),label:e.t("harvester.schedule.virtualMachine.title"),placeholder:e.t("harvester.schedule.virtualMachine.placeholder"),options:u.vmOptions,required:"",disabled:u.isBackupTargetUnAvailable||e.isEdit||e.isView},null,8,["value","label","placeholder","options","disabled"])])])]),(0,o.createVNode)(f,(0,o.mergeProps)(e.$attrs,{class:"mt-15","side-tabs":!0}),{default:(0,o.withCtx)((()=>[(0,o.createVNode)(g,{name:"basics",label:e.t("harvester.network.tabs.basics"),weight:99,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(b,{value:a.value.spec.cron,"onUpdate:value":t[3]||(t[3]=e=>a.value.spec.cron=e),class:"mb-30",type:"cron",required:"",mode:a.mode,label:e.t("harvester.schedule.cron"),placeholder:"0 * * * *",disabled:u.isBackupTargetUnAvailable||e.isView},null,8,["value","mode","label","disabled"]),(0,o.createVNode)(b,{value:a.value.spec.retain,"onUpdate:value":t[4]||(t[4]=e=>a.value.spec.retain=e),valueModifiers:{number:!0},class:"mb-30",min:2,max:250,type:"number",label:e.t("harvester.schedule.retain.label"),required:"",tooltip:e.t("harvester.schedule.retain.tooltip"),disabled:u.isBackupTargetUnAvailable||e.isView},null,8,["value","label","tooltip","disabled"]),(0,o.createVNode)(b,{value:a.value.spec.maxFailure,"onUpdate:value":t[5]||(t[5]=e=>a.value.spec.maxFailure=e),valueModifiers:{number:!0},class:"mb-30",min:2,type:"number",label:e.t("harvester.schedule.maxFailure.label"),required:"",tooltip:e.t("harvester.schedule.maxFailure.tooltip"),disabled:u.isBackupTargetUnAvailable||e.isView,onInput:u.validateFailure},null,8,["value","label","tooltip","disabled","onInput"])])),_:1},8,["label"])])),_:1},16)])),_:1},8,["done-route","resource","mode","errors","apply-hooks","validation-passed","onFinish"])}var c=a(10196),u=a(9980),p=a(79380),m=a(99960),v=a(59808),h=a(49584),b=a(96413),g=a(77988),f=a(91825),k=a(37021),y=a.n(k);function N(e=""){try{const t=y().toString(e);return!!t}catch(t){return!1}}var V=a(20652),C=a(88339),w=a(32766),E=a(74302),S=a(41837),B=a(14220),A={name:"CreateVMSchedule",components:{CruResource:m.A,Tabbed:v.A,Tab:h.A,RadioGroup:c.z,LabeledInput:p.o,LabeledSelect:g.A,MessageLink:b.A,Banner:u.l},mixins:[f.A],inheritAttrs:!1,async fetch(){const e=await(0,C.kR)({settings:this.$store.dispatch("harvester/findAll",{type:w.rk.SETTING}),vms:this.$store.dispatch("harvester/findAll",{type:w.rk.VM})});this.allVms=e.vms,this.settings=e.settings},props:{value:{type:Object,required:!0},mode:{type:String,required:!0}},data(){if(this.mode===B.YQ){const e=this.$store.getters["defaultNamespace"],t=this.$route.query?.vmNamespace||e,a=this.$route.query?.vmName;delete this.value.metadata.annotations,delete this.value.metadata.labels,this.value["metadata"]={namespace:t,name:a?`svmbackup-${a}`:""},this.value.spec||(this.value["spec"]={cron:"",retain:8,maxFailure:4,vmbackup:{source:{apiGroup:"kubevirt.io",kind:"VirtualMachine",name:a||""},type:S.a.BACKUP}})}return{settings:[]}},computed:{backupTargetResource(){return this.settings.find((e=>"backup-target"===e.id))},isEmptyValue(){return this.getBackupTargetValueIsEmpty(this.backupTargetResource)},canUpdate(){return this?.backupTargetResource?.canUpdate},errorMessage(){return this.backupTargetResource?.errMessage},canSave(){return!!this.value.spec.cron&&N(this.value.spec.cron)&&!!this.value.metadata.name&&!!this.value.metadata.namespace&&!!this.value.spec.retain&&!!this.value.spec.maxFailure},isBackupTargetUnAvailable(){return this.value.spec.vmbackup.type===S.a.BACKUP&&(this.errorMessage||this.isEmptyValue)&&this.canUpdate},vmOptions(){const e=this.$store.getters["harvester/all"](w.rk.VM).filter((e=>e.metadata.namespace===this.value.metadata.namespace)),t=e.map((e=>({label:e.nameDisplay,value:e.name})));return(0,E.Ul)(t,"label")},namespaces(){const e=this.$store.getters["allNamespaces"],t=(0,E.Ul)(e.map((e=>({label:e.nameDisplay,value:e.id}))),"label");return t},toBackupTargetSetting(){const{cluster:e}=this.$router?.currentRoute?.params||{};return{name:`${V.KR}-c-cluster-resource-id`,params:{resource:`${w.rk.SETTING}`,cluster:e,id:"backup-target"},query:{mode:B.G5}}},scheduleTypeOptions(){return[S.a.BACKUP,S.a.SNAPSHOT]}},watch:{"value.metadata.namespace"(){this.value.spec.vmbackup.source.name=""},"value.spec.vmbackup.source.name"(e){this.value.metadata.name=`svm${this.value.spec.vmbackup.type}-${e}`}},methods:{onTypeChange(e){this.value.metadata.name=`svm${e}-${this.value.spec.vmbackup.source.name}`},getBackupTargetValueIsEmpty(e){let t=!0;if(e?.value)try{const a=JSON.parse(e?.value);t=!a.type}catch(a){}return t},validateFailure(e){this.value.spec.retain&&e>this.value.spec.retain&&(this.value.spec["maxFailure"]=this.value.spec.retain)}}},x=a(47433);const D=(0,x.A)(A,[["render",d]]);var M=D},41398:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return B}});var o=a(9274);const r={class:"filled-height"};function s(e,t,a,s,l,n){const i=(0,o.resolveComponent)("Loading"),d=(0,o.resolveComponent)("NameNsDescription"),c=(0,o.resolveComponent)("Tab"),u=(0,o.resolveComponent)("Labels"),p=(0,o.resolveComponent)("Tabbed"),m=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createElementBlock)("form",r,[e.$fetchState.pending?((0,o.openBlock)(),(0,o.createBlock)(i,{key:0})):((0,o.openBlock)(),(0,o.createBlock)(m,{key:1,mode:e.mode,"validation-passed":!0,"selected-subtype":e.value._type,resource:e.value,errors:e.errors,onFinish:n.saveSecret,onError:t[2]||(t[2]=t=>e.errors=t)},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{value:e.value,mode:e.mode,namespaced:!l.isCloud,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode","namespaced"]),t[3]||(t[3]=(0,o.createElementVNode)("div",{class:"spacer"},null,-1)),l.isCloud?((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(n.cloudComponent),{key:0,ref:"cloudComponent","driver-name":n.driverName,value:e.value,mode:e.mode,"hide-sensitive-data":n.hideSensitiveData},null,8,["driver-name","value","mode","hide-sensitive-data"])):((0,o.openBlock)(),(0,o.createBlock)(p,{key:1,"side-tabs":!0,"default-tab":"data"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(c,{name:"data",label:n.dataLabel,weight:99},{default:(0,o.withCtx)((()=>[((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(n.dataComponent),{value:e.value,mode:e.mode,"hide-sensitive-data":n.hideSensitiveData},null,8,["value","mode","hide-sensitive-data"]))])),_:1},8,["label"]),(0,o.createVNode)(c,{name:"labels","label-key":"generic.labelsAndAnnotations",weight:-1},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(u,{value:e.value,"onUpdate:value":t[1]||(t[1]=t=>e.value=t),mode:e.mode},null,8,["value","mode"])])),_:1})])),_:1}))])),_:1},8,["mode","selected-subtype","resource","errors","onFinish"]))])}var l=a(24989),n=a(35664),i=a(91825),d=a(32786),c=a(79380),u=a(77988),p=a(99960),m=a(14220),v=a(84409),h=a(59808),b=a(49584),g=a(7365),f=a(91462),k=a(2841),y=a(68851),N=a(27436),V=a(26337),C=a(92043),w={name:"CruSecret",emits:["update:value"],components:{LabeledInput:c.o,LabeledSelect:u.A,Loading:v.A,NameNsDescription:d.A,CruResource:p.A,Tabbed:h.A,Tab:b.A,Labels:g.A,SelectIconGrid:V.A},mixins:[i.A],inheritAttrs:!1,async fetch(){this.isCloud&&(this.nodeDrivers=await this.$store.dispatch("management/findAll",{type:n.Mc.NODE_DRIVER}))},data(){const e=this.$route.query[m.Sd]===m.Qp,t=this.mode===m.G5&&this.value._type===l.J.CLOUD_CREDENTIAL,a=this.realMode===m.dT&&this.liveValue._type===l.J.CLOUD_CREDENTIAL,o=e||t||a;e&&(this.value.metadata.namespace=n.eo,this.value.metadata["name"]="",this.value["data"]={});const r=[{label:"Custom",value:"custom"},{label:"divider",disabled:!0,kind:"divider"}];return Object.values(l.J).forEach((e=>{r.push({label:e,value:e})})),this.mode===m.YQ&&(this.value["_type"]=l.J.OPAQUE),{isCloud:o,nodeDrivers:null,secretTypes:r,secretType:this.value._type,initialSecretType:this.value._type}},computed:{typeKey(){if(this.isCloud)return"cloud";switch(this.value._type){case l.J.TLS:return"tls";case l.J.BASIC:return"basic";case l.J.DOCKER_JSON:return"registry";case l.J.SSH:return"ssh"}return"generic"},dataComponent(){return a(48254)(`./${this.typeKey}`).default},driverName(){const e=this.value.metadata?.annotations?.[k.qt.CREDENTIAL_DRIVER];return e},cloudComponent(){const e=this.driverName,t=this.$store.getters["plugins/credentialDrivers"];return t.includes(e)?(0,N.qq)(e):(0,N.qq)("generic")},namespaces(){return this.$store.getters["cluster/all"](n.CU).map((e=>({label:e.nameDisplay,value:e.id})))},hideSensitiveData(){return this.$store.getters["prefs/get"](f.qv)},dataLabel(){switch(this.value._type){case l.J.TLS:return this.t("secret.certificate.certificate");case l.J.SSH:return this.t("secret.ssh.keys");case l.J.BASIC:return this.t("secret.authentication");default:return this.t("secret.data")}}},created(){this.registerAfterHook((()=>{const e=this.$store.getters["allNamespaces"],t=e.find((e=>"default"===e.id)),a=t?.id||e?.[0]?.id||"";this.value.$dispatch("prefs/set",{key:f.Ri,value:a},{root:!0})}))},methods:{async saveSecret(e){if(this.errors&&(0,y.IU)(this.errors),"function"===typeof this.$refs.cloudComponent?.test)try{const t=await this.$refs.cloudComponent.test();if(!t||t?.errors)return this.errors=t?.errors?t.errors:["Authentication test failed, please check your credentials"],void e(!1)}catch(t){return this.errors=[t],void e(!1)}return this.save(e)},typeDisplay(e,t){if(e===k.qt.CREDENTIAL_DRIVER)return this.$store.getters["i18n/withFallback"](`cluster.provider."${t}"`,null,t);{const t=e.replace(/^kubernetes.io\//,"");return this.$store.getters["i18n/withFallback"](`secret.types."${e}"`,null,t)}},initialDisplayFor(e){const t=((0,C.TF)(this.typeDisplay(e)||"").replace(/[^A-Z]/g,"")||e).substr(0,3);return this.$store.getters["i18n/withFallback"](`secret.initials."${e}"`,null,t)},selectCustomType(e){"custom"!==e&&(this.value["_type"]=e)}}},E=a(47433);const S=(0,E.A)(w,[["render",s]]);var B=S},56726:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return w}});var o=a(9274);const r={key:0,class:"edit-help"},s={class:"edit-change mt-20"},l=["disabled"],n={class:"mt-20"},i={key:0},d={key:1},c={key:2},u={key:3},p={key:4};function m(e,t,a,m,v,h){const b=(0,o.resolveComponent)("LabeledSelect"),g=(0,o.resolveComponent)("RadioGroup"),f=(0,o.resolveComponent)("TextAreaAutoGrow"),k=(0,o.resolveComponent)("LabeledInput"),y=(0,o.resolveComponent)("CruResource"),N=(0,o.resolveDirective)("clean-html"),V=(0,o.resolveDirective)("t");return(0,o.openBlock)(),(0,o.createBlock)(y,{class:"route",errors:v.errors,mode:e.mode,resource:e.value,subtypes:[],"can-yaml":!1,"cancel-event":!0,onError:t[6]||(t[6]=e=>v.errors=e),onFinish:h.saveSettings,onCancel:h.done},{default:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("h4",null,null,512),[[N,v.description]]),v.editHelp?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("h5",r,null,512)),[[N,v.editHelp]]):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",s,[(0,o.withDirectives)((0,o.createElementVNode)("h5",null,null,512),[[V,"advancedSettings.edit.changeSetting"]]),(0,o.createElementVNode)("button",{disabled:!v.canReset,type:"button",class:"btn role-primary",onClick:t[0]||(t[0]=(...e)=>h.useDefault&&h.useDefault(...e))},(0,o.toDisplayString)(e.t("advancedSettings.edit.useDefault")),9,l)]),(0,o.createElementVNode)("div",n,["import"===v.setting.from?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[v.hasCustomComponent?((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(v.customComponent),{key:0,ref:"settingComp",value:e.value,"onUpdate:value":t[1]||(t[1]=t=>e.value=t),"register-before-hook":e.registerBeforeHook,mode:e.mode},null,40,["value","register-before-hook","mode"])):(0,o.createCommentVNode)("",!0)])):"enum"===v.setting.kind?((0,o.openBlock)(),(0,o.createElementBlock)("div",d,[(0,o.createVNode)(b,{value:e.value.value,"onUpdate:value":t[2]||(t[2]=t=>e.value.value=t),label:e.t("advancedSettings.edit.value"),"localized-label":!0,mode:e.mode,options:v.enumOptions},null,8,["value","label","mode","options"])])):"boolean"===v.setting.kind?((0,o.openBlock)(),(0,o.createElementBlock)("div",c,[(0,o.createVNode)(g,{value:e.value.value,"onUpdate:value":t[3]||(t[3]=t=>e.value.value=t),name:"settings_value",labels:[e.t("advancedSettings.edit.trueOption"),e.t("advancedSettings.edit.falseOption")],options:["true","false"]},null,8,["value","labels"])])):"multiline"===v.setting.kind||"json"===v.setting.kind?((0,o.openBlock)(),(0,o.createElementBlock)("div",u,[(0,o.createVNode)(f,{value:e.value.value,"onUpdate:value":t[4]||(t[4]=t=>e.value.value=t),"min-height":254},null,8,["value"])])):((0,o.openBlock)(),(0,o.createElementBlock)("div",p,[(0,o.createVNode)(k,{value:e.value.value,"onUpdate:value":t[5]||(t[5]=t=>e.value.value=t),label:e.t("advancedSettings.edit.value")},null,8,["value","label"])]))])])),_:1},8,["errors","mode","resource","onFinish","onCancel"])}var v=a(99960),h=a(10196),b=a(79380),g=a(77988),f=a(6879),k=a(91825),y=a(50889),N={components:{CruResource:v.A,LabeledInput:b.o,LabeledSelect:g.A,RadioGroup:h.z,TextAreaAutoGrow:f.V},mixins:[k.A],inheritAttrs:!1,data(){const e=this.$store.getters["i18n/t"],t=y.gh[this.value.id]||y.LP[this.value.id];let o=[];"enum"===t.kind&&(o=t.options.map((e=>({label:`advancedSettings.enum.harv-${this.value.id}.${e}`,value:e}))));const r=t.canReset||!!this.value.default||this.value.canReset;void 0===this.value.value&&(this.value["value"]=null),this.value.value=this.value.value||this.value.default||"";const s=this.value.value,l=this.value?.type?.includes("harvesterhci"),n=a(26190).keys().map((e=>e.replace(/(\.\/)|(.vue)/g,"")));return{setting:t,description:e(l?`advancedSettings.descriptions.harv-${this.value.id}`:`advancedSettings.descriptions.${this.value.id}`),editHelp:e(`advancedSettings.editHelp.${this.value.id}`),enumOptions:o,canReset:r,errors:[],hasCustomComponent:!1,customComponent:null,customSettingComponents:n,oldValue:s}},computed:{doneLocationOverride(){return this.value.doneOverride}},created(){let e=!1;const t=this.customSettingComponents.includes(this.value.id);if(t)try{e=a(88292)(`./${this.value.id}.vue`).default}catch{}else{const t=this.$route.params.resource,o=this.value.metadata.name;try{e=a(80373)(`./${t}/${o}.vue`).default}catch{}}this.hasCustomComponent=!!e,this.customComponent=e,this.registerAfterHook((()=>{this.value.id===y.EP.RANCHER_MANAGER_SUPPORT&&this.$store.commit("isRancherInHarvester","true"===this.value.value)}))},methods:{done(){this.$router.go(-1)},async saveSettings(e){const t=this.$store.getters["i18n/t"];if("json"===this.setting.kind&&this.value.default)try{JSON.parse(this.value.value),this.errors=[]}catch(a){return this.errors=[t("advancedSettings.edit.invalidJSON")],e(!1)}this.value.metadata.name===y.EP.CLUSTER_REGISTRATION_URL&&this.oldValue&&this.value.value!==this.oldValue&&await this.clusterRegistrationUrlTip(),this.save(e)},clusterRegistrationUrlTip(){return new Promise((e=>{this.$store.dispatch("harvester/promptModal",{component:"MessageBox",callback:t=>{"ok"===t&&e()},contentKey:"harvester.setting.clusterRegistrationUrl.message"},{root:!0})}))},useDefault(e){e&&e.srcElement&&e.srcElement.blur(),this.value.id===y.EP.VLAN?(this.value.enable=!1,this.value.config&&(this.value.config.defaultPhysicalNIC="")):this.value.value=this.value.default||"","function"===typeof this.$refs.settingComp?.useDefault&&this.$refs.settingComp.useDefault()}}},V=(a(97596),a(47433));const C=(0,V.A)(N,[["render",m],["__scopeId","data-v-01b4cf42"]]);var w=C},39808:function(e,t,a){"use strict";a.r(t),a.d(t,{LVM_TOPOLOGY_LABEL:function(){return $},default:function(){return G}});var o=a(9274);const r={class:"row mt-20"},s={class:"col span-6"},l={class:"col span-6"},n={class:"row mt-20"},i={class:"col span-6"},d={class:"box"},c={class:"row"},u={class:"col span-4 key"},p={class:"col span-8 value"},m={class:"row custom-headers"},v={class:"col span-4 key"},h={class:"col span-8 value"};function b(e,t,a,b,g,f){const k=(0,o.resolveComponent)("Loading"),y=(0,o.resolveComponent)("NameNsDescription"),N=(0,o.resolveComponent)("LabeledSelect"),V=(0,o.resolveComponent)("Tab"),C=(0,o.resolveComponent)("RadioGroup"),w=(0,o.resolveComponent)("LabeledInput"),E=(0,o.resolveComponent)("Tags"),S=(0,o.resolveComponent)("ArrayList"),B=(0,o.resolveComponent)("Tabbed"),A=(0,o.resolveComponent)("CruResource");return e.$fetchState.pending?((0,o.openBlock)(),(0,o.createBlock)(k,{key:0})):((0,o.openBlock)(),(0,o.createBlock)(A,{key:1,"done-route":e.doneRoute,mode:e.mode,resource:e.value,subtypes:[],"validation-passed":!0,"apply-hooks":e.applyHooks,errors:e.errors,onError:t[6]||(t[6]=t=>e.errors=t),onFinish:e.save,onCancel:e.done},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(y,{namespaced:!1,value:e.value,mode:e.mode,"register-before-hook":e.registerBeforeHook,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode","register-before-hook"]),(0,o.createVNode)(N,{value:g.provisioner,"onUpdate:value":t[1]||(t[1]=e=>g.provisioner=e),label:"Provisioner",options:f.provisioners,"localized-label":!0,mode:f.modeOverride,searchable:!0,taggable:!0,class:"mb-20"},null,8,["value","options","mode"]),(0,o.createVNode)(B,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(V,{name:"parameters",label:e.t("storageClass.parameters.label"),weight:2},{default:(0,o.withCtx)((()=>[((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(f.getComponent(g.provisioner)),{key:g.provisioner,value:e.value,mode:f.modeOverride,"real-mode":e.realMode},null,8,["value","mode","real-mode"]))])),_:1},8,["label"]),(0,o.createVNode)(V,{name:"customize",label:e.t("storageClass.customize.label")},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(C,{value:e.value.reclaimPolicy,"onUpdate:value":t[2]||(t[2]=t=>e.value.reclaimPolicy=t),name:"reclaimPolicy",label:e.t("storageClass.customize.reclaimPolicy.label"),mode:f.modeOverride,options:g.reclaimPolicyOptions},null,8,["value","label","mode","options"])]),(0,o.createElementVNode)("div",l,[(0,o.createVNode)(C,{value:e.value.allowVolumeExpansion,"onUpdate:value":t[3]||(t[3]=t=>e.value.allowVolumeExpansion=t),name:"allowVolumeExpansion",label:e.t("storageClass.customize.allowVolumeExpansion.label"),mode:f.modeOverride,options:g.allowVolumeExpansionOptions},null,8,["value","label","mode","options"])])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(C,{value:e.value.volumeBindingMode,"onUpdate:value":t[4]||(t[4]=t=>e.value.volumeBindingMode=t),name:"volumeBindingMode",label:e.t("storageClass.customize.volumeBindingMode.label"),mode:f.modeOverride,options:g.volumeBindingModeOptions,disabled:g.provisioner===g.LVM_DRIVER},null,8,["value","label","mode","options","disabled"])])])])),_:1},8,["label"]),(0,o.createVNode)(V,{name:"allowedTopologies",label:e.t("harvester.storage.allowedTopologies.title"),weight:-1,tooltip:e.t("harvester.storage.allowedTopologies.tooltip")},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(S,{value:g.allowedTopologies,"onUpdate:value":t[5]||(t[5]=e=>g.allowedTopologies=e),"default-add-value":g.defaultAddValue,"initial-empty-row":!0,"show-header":!0,mode:f.modeOverride},{"column-headers":(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",d,[(0,o.createElementVNode)("div",c,[(0,o.createElementVNode)("div",u,[(0,o.createTextVNode)((0,o.toDisplayString)(e.t("generic.key"))+" ",1),t[7]||(t[7]=(0,o.createElementVNode)("span",{class:"required"},"*",-1))]),(0,o.createElementVNode)("div",p,(0,o.toDisplayString)(e.t("generic.value")),1)])])])),columns:(0,o.withCtx)((t=>[(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,[(0,o.createVNode)(w,{value:t.row.value.key,"onUpdate:value":e=>t.row.value.key=e,required:!0,mode:f.modeOverride},null,8,["value","onUpdate:value","mode"])]),(0,o.createElementVNode)("div",h,[(0,o.createVNode)(E,{value:t.row.value.values,"onUpdate:value":e=>t.row.value.values=e,"add-label":e.t("generic.add"),mode:f.modeOverride},null,8,["value","onUpdate:value","add-label","mode"])])])])),_:1},8,["value","default-add-value","mode"])])),_:1},8,["label","tooltip"])])),_:1})])),_:1},8,["done-route","mode","resource","apply-hooks","errors","onFinish","onCancel"]))}var g=a(91825),f=a(99960),k=a(32786),y=a(22133),N=a(49584),V=a(59808),C=a(10196),w=a(98752),E=a(77988),S=a(84409),B=a(14220),A=a(95265),x=a(35664),D=a(88339),M=a(76978),U=a(32766),T=a(49306),_=a(15908),R=a(82877);const $="topology.lvm.csi/node",O="longhorn-system/v2-data-engine",I="Immediate",L="WaitForFirstConsumer";var P={name:"HarvesterStorage",emits:["update:value"],components:{ArrayList:y.A,CruResource:f.A,LabeledSelect:E.A,LabeledInput:w.A,NameNsDescription:k.A,RadioGroup:C.z,Tab:N.A,Tabbed:V.A,Loading:S.A,Tags:T.A},mixins:[g.A],inheritAttrs:!1,data(){const e=[{label:this.t("storageClass.customize.reclaimPolicy.delete"),value:"Delete"},{label:this.t("storageClass.customize.reclaimPolicy.retain"),value:"Retain"}],t=[{label:this.t("generic.enabled"),value:!0},{label:this.t("generic.disabled"),value:!1}],a=[{label:this.t("storageClass.customize.volumeBindingMode.now"),value:I},{label:this.t("harvester.storage.customize.volumeBindingMode.later"),value:L}],o=(0,M.o8)(this.value.allowedTopologies?.[0]?.matchLabelExpressions||[]).filter((e=>e.key!==$));this.value["parameters"]=this.value.parameters||{},this.value["provisioner"]=this.value.provisioner||x.lI,this.value["allowVolumeExpansion"]=this.value.allowVolumeExpansion||t[0].value,this.value["reclaimPolicy"]=this.value.reclaimPolicy||e[0].value,this.value.provisioner===x.lI&&(this.value["parameters"]["dataEngine"]=this.value.longhornVersion,this.value["volumeBindingMode"]=this.value.volumeBindingMode||I),this.value.provisioner===R.LVM_DRIVER&&(this.value["volumeBindingMode"]=this.value.volumeBindingMode||L);let r=`${this.value.provisioner||x.lI}`;return r===x.lI&&(r=`${r}_${this.value.longhornVersion}`),{LVM_DRIVER:R.LVM_DRIVER,reclaimPolicyOptions:e,allowVolumeExpansionOptions:t,volumeBindingModeOptions:a,mountOptions:[],STORAGE_CLASS:x.fJ,provisioner:r,allowedTopologies:o,defaultAddValue:{key:"",values:[]}}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={namespaces:this.$store.dispatch(`${e}/findAll`,{type:x.CU}),storages:this.$store.dispatch(`${e}/findAll`,{type:x.fJ}),longhornNodes:this.$store.dispatch(`${e}/findAll`,{type:x.oe.NODES}),csiDrivers:this.$store.dispatch(`${e}/findAll`,{type:U.Zq})};this.value.longhornV2LVMSupport&&(t.longhornV2DataEngine=this.$store.dispatch(`${e}/find`,{type:x.oe.SETTINGS,id:O})),this.value.volumeEncryptionFeatureEnabled&&(t.secrets=this.$store.dispatch(`${e}/findAll`,{type:x.bB})),await(0,D.kR)(t)},computed:{showUnsupportedStorage:(0,A.r$)(A.Wt),inStore(){return this.$store.getters["currentProduct"].inStore},modeOverride(){return this.isCreate?B.YQ:B.nW},provisioners(){const e=[],t=this.$store.getters["currentProduct"].inStore,a=this.$store.getters[`${t}/all`](U.Zq)||[];return a.forEach((({name:t})=>{switch(t){case x.lI:e.push({label:`harvester.storage.storageClass.longhorn.${_.DATA_ENGINE_V1}.label`,value:`${t}_${_.DATA_ENGINE_V1}`}),this.longhornSystemVersion!==_.DATA_ENGINE_V2&&this.value.longhornVersion!==_.DATA_ENGINE_V2||e.push({label:`harvester.storage.storageClass.longhorn.${_.DATA_ENGINE_V2}.label`,value:`${t}_${_.DATA_ENGINE_V2}`});break;case R.LVM_DRIVER:e.push({label:"harvester.storage.storageClass.lvm.label",value:t});break}})),e},schema(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/schemaFor`](x.fJ)},longhornSystemVersion(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](x.oe.SETTINGS,O)||{};return"true"===t.value?_.DATA_ENGINE_V2:_.DATA_ENGINE_V1}},watch:{provisioner(e){const[t,a]=e?.split("_");let o={};if(t===R.LVM_DRIVER){const e=(this.value.allowedTopologies?.[0]?.matchLabelExpressions||[]).filter((e=>e.key!==$));e.length>0?this.value["allowedTopologies"]=[{matchLabelExpressions:e}]:delete this.value.allowedTopologies,this.value["volumeBindingMode"]=L}t===x.lI&&(o={dataEngine:a},this.value["volumeBindingMode"]=I),this.value["provisioner"]=t,this.value["allowVolumeExpansion"]=this.value.provisioner===x.lI,this.value["parameters"]=o}},created(){this.registerBeforeHook(this.willSave,"willSave")},methods:{getComponent(e){try{return a(6232)(`./${e}`).default}catch{return a(43868)["default"]}},willSave(){Object.keys(this.value.parameters).forEach((e=>{null!==this.value.parameters[e]&&""!==this.value.parameters[e]||delete this.value.parameters[e]})),this.formatAllowedTopoloties()},formatAllowedTopoloties(){const e=this.allowedTopologies.filter((e=>e.key!==$)),t=(this.value.allowedTopologies?.[0]?.matchLabelExpressions||[]).filter((e=>e.key===$));if(!e||0===e.length)return void(t.length>0?this.value.allowedTopologies=[{matchLabelExpressions:t}]:delete this.value.allowedTopologies);const a=e.filter((e=>!!e.key.trim()&&e.values.length>0&&!e.values.find((e=>!e.trim()))));a.length>0&&(this.value.allowedTopologies=[{matchLabelExpressions:[...a,...t]}])}}},q=(a(83219),a(47433));const F=(0,q.A)(P,[["render",b],["__scopeId","data-v-4918df50"]]);var G=F},43868:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return d}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("KeyValue");return(0,o.openBlock)(),(0,o.createBlock)(n,{value:a.value.parameters,"onUpdate:value":t[0]||(t[0]=e=>a.value.parameters=e),"add-label":e.t("storageClass.custom.addLabel"),"read-allowed":!1,mode:a.mode},null,8,["value","add-label","mode"])}var s=a(25088),l={components:{KeyValue:s.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0}}},n=a(47433);const i=(0,n.A)(l,[["render",r]]);var d=i},30050:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return $}});var o=a(9274);const r={class:"row"},s={class:"col span-6"},l={class:"col span-6"},n={class:"row mt-10"},i={class:"col span-6"},d={key:0,class:"text-muted"},c={class:"col span-6"},u={key:0,class:"text-muted"},p={class:"row mt-20"},m={class:"row mt-20"},v={key:0,class:"row mt-20"},h={class:"col span-6"};function b(e,t,a,b,g,f){const k=(0,o.resolveComponent)("LabeledInput"),y=(0,o.resolveComponent)("LabeledSelect"),N=(0,o.resolveComponent)("RadioGroup"),V=(0,o.resolveComponent)("KeyValue");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(k,{value:f.numberOfReplicas,"onUpdate:value":t[0]||(t[0]=e=>f.numberOfReplicas=e),label:e.t("harvester.storage.parameters.numberOfReplicas.label"),required:!0,mode:a.mode,min:"1",max:"3",type:"number"},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",l,[(0,o.createVNode)(k,{value:a.value.parameters.staleReplicaTimeout,"onUpdate:value":t[1]||(t[1]=e=>a.value.parameters.staleReplicaTimeout=e),label:e.t("harvester.storage.parameters.staleReplicaTimeout.label"),required:!0,mode:a.mode,type:"number"},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(y,{value:f.nodeSelector,"onUpdate:value":t[2]||(t[2]=e=>f.nodeSelector=e),label:e.t("harvester.storage.parameters.nodeSelector.label"),options:f.nodeTags,taggable:!0,multiple:!0,mode:a.mode},{"no-options":(0,o.withCtx)((({searching:t})=>[t?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",d,(0,o.toDisplayString)(e.t("harvester.storage.parameters.nodeSelector.no-options",null,!0)),1))])),_:1},8,["value","label","options","mode"])]),(0,o.createElementVNode)("div",c,[(0,o.createVNode)(y,{value:f.diskSelector,"onUpdate:value":t[3]||(t[3]=e=>f.diskSelector=e),label:e.t("harvester.storage.parameters.diskSelector.label"),options:f.diskTags,taggable:!0,multiple:!0,mode:a.mode},{"no-options":(0,o.withCtx)((({searching:t})=>[t?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",u,(0,o.toDisplayString)(e.t("harvester.storage.parameters.diskSelector.no-options",null,!0)),1))])),_:1},8,["value","label","options","mode"])])]),(0,o.createElementVNode)("div",p,[(0,o.createVNode)(N,{value:a.value.parameters.migratable,"onUpdate:value":t[4]||(t[4]=e=>a.value.parameters.migratable=e),name:"layer3NetworkMode",label:e.t("harvester.storage.parameters.migratable.label"),mode:a.mode,options:f.migratableOptions},null,8,["value","label","mode","options"])]),a.value.volumeEncryptionFeatureEnabled?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:0},[(0,o.createElementVNode)("div",m,[(0,o.createVNode)(N,{value:f.volumeEncryption,"onUpdate:value":t[5]||(t[5]=e=>f.volumeEncryption=e),name:"volumeEncryption",label:e.t("harvester.storage.volumeEncryption"),mode:a.mode,options:f.volumeEncryptionOptions},null,8,["value","label","mode","options"])]),"true"===a.value.parameters.encrypted?((0,o.openBlock)(),(0,o.createElementBlock)("div",v,[(0,o.createElementVNode)("div",h,[(0,o.createVNode)(y,{value:f.secret,"onUpdate:value":t[6]||(t[6]=e=>f.secret=e),label:e.t("harvester.storage.secret"),options:f.secretOptions,mode:a.mode},null,8,["value","label","options","mode"])])])):(0,o.createCommentVNode)("",!0)],64)):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(V,{value:f.parameters,"onUpdate:value":t[7]||(t[7]=e=>f.parameters=e),"add-label":e.t("storageClass.longhorn.addLabel"),"read-allowed":!1,mode:a.mode,class:"mt-10"},null,8,["value","add-label","mode"])])}var g=a(25088),f=a(77988),k=a(79380),y=a(55834),N=a(35664),V=a(14220),C=a(66905),w=a(76978),E=a(68851),S=a(15908);const{CSI_PROVISIONER_SECRET_NAME:B,CSI_PROVISIONER_SECRET_NAMESPACE:A,CSI_NODE_PUBLISH_SECRET_NAME:x,CSI_NODE_PUBLISH_SECRET_NAMESPACE:D,CSI_NODE_STAGE_SECRET_NAME:M,CSI_NODE_STAGE_SECRET_NAMESPACE:U}=C.Et;var T={name:"DriverLonghornIOV1",components:{KeyValue:g.A,LabeledSelect:f.A,LabeledInput:k.o,RadioGroup:y.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0},realMode:{type:String,required:!0}},data(){return this.realMode===V.YQ&&(this.value["parameters"]={numberOfReplicas:"3",staleReplicaTimeout:"30",diskSelector:null,nodeSelector:null,encrypted:"false",migratable:"true",dataEngine:S.DATA_ENGINE_V1}),{}},computed:{secrets(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](N.bB);return t.filter((e=>!1===e.isSystem))},longhornNodes(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/all`](N.oe.NODES)},nodeTags(){return(this.longhornNodes||[]).reduce(((e,t)=>{const a=t.spec?.tags||[];return(0,E.sb)([...e,...a])}),[])},diskTags(){return(this.longhornNodes||[]).reduce(((e,t)=>{const a=t.spec?.disks,o=Object.keys(a).reduce(((e,t)=>{const o=a[t]?.tags||[];return(0,E.sb)([...e,...o])}),[]);return(0,E.sb)([...e,...o])}),[])},isView(){return this.mode===V.nW},migratableOptions(){return[{label:this.t("generic.yes"),value:"true"},{label:this.t("generic.no"),value:"false"}]},secretOptions(){return this.secrets.map((e=>e.id))},volumeEncryptionOptions(){return[{label:this.t("generic.yes"),value:"true"},{label:this.t("generic.no"),value:"false"}]},parameters:{get(){const e=(0,w.o8)(this.value?.parameters)||{},t=["numberOfReplicas","staleReplicaTimeout","diskSelector","nodeSelector","migratable",...this.value.volumeEncryptionFeatureEnabled?["encrypted","dataEngine"]:[]];return[...t,...Object.values(C.Et)].forEach((t=>{delete e[t]})),e},set(e){Object.assign(this.value.parameters,e)}},volumeEncryption:{set(e){this.value["parameters"]={...this.value.parameters,encrypted:e}},get(){return this.value?.parameters?.encrypted||"false"}},secret:{get(){const e=this.value.parameters[A],t=this.value.parameters[B];return e&&t?`${e}/${t}`:""},set(e){const[t,a]=e.split("/");this.value["parameters"]={...this.value.parameters,[B]:a,[x]:a,[M]:a,[A]:t,[D]:t,[U]:t}}},nodeSelector:{get(){const e=this.value?.parameters?.nodeSelector;return(e||"").includes(",")?e.split(","):e?[e]:[]},set(e){this.value.parameters.nodeSelector=(e||[]).join(",")}},diskSelector:{get(){const e=this.value?.parameters?.diskSelector;return(e||"").includes(",")?e.split(","):e?[e]:[]},set(e){this.value.parameters.diskSelector=(e||[]).join(",")}},numberOfReplicas:{get(){return this.value?.parameters?.numberOfReplicas},set(e){e>=1&&e<=3&&(this.value.parameters.numberOfReplicas=String(e))}}}},_=(a(20545),a(47433));const R=(0,_.A)(T,[["render",b],["__scopeId","data-v-8c848812"]]);var $=R},42822:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return O}});var o=a(9274);const r={class:"row"},s={class:"col span-6"},l={class:"col span-6"},n={class:"row mt-10"},i={class:"col span-6"},d={key:0,class:"text-muted"},c={class:"col span-6"},u={key:0,class:"text-muted"},p={class:"row mt-20"},m={class:"row mt-20"},v={key:0,class:"row mt-20"},h={class:"col span-6"};function b(e,t,a,b,g,f){const k=(0,o.resolveComponent)("LabeledInput"),y=(0,o.resolveComponent)("LabeledSelect"),N=(0,o.resolveComponent)("RadioGroup"),V=(0,o.resolveComponent)("KeyValue");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(k,{value:f.numberOfReplicas,"onUpdate:value":t[0]||(t[0]=e=>f.numberOfReplicas=e),label:e.t("harvester.storage.parameters.numberOfReplicas.label"),required:!0,mode:a.mode,min:"1",max:"3",type:"number"},null,8,["value","label","mode"])]),(0,o.createElementVNode)("div",l,[(0,o.createVNode)(k,{value:a.value.parameters.staleReplicaTimeout,"onUpdate:value":t[1]||(t[1]=e=>a.value.parameters.staleReplicaTimeout=e),label:e.t("harvester.storage.parameters.staleReplicaTimeout.label"),required:!0,mode:a.mode,type:"number"},null,8,["value","label","mode"])])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(y,{value:f.nodeSelector,"onUpdate:value":t[2]||(t[2]=e=>f.nodeSelector=e),label:e.t("harvester.storage.parameters.nodeSelector.label"),options:f.nodeTags,taggable:!0,multiple:!0,mode:a.mode},{"no-options":(0,o.withCtx)((({searching:t})=>[t?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",d,(0,o.toDisplayString)(e.t("harvester.storage.parameters.nodeSelector.no-options",null,!0)),1))])),_:1},8,["value","label","options","mode"])]),(0,o.createElementVNode)("div",c,[(0,o.createVNode)(y,{value:f.diskSelector,"onUpdate:value":t[3]||(t[3]=e=>f.diskSelector=e),label:e.t("harvester.storage.parameters.diskSelector.label"),options:f.diskTags,taggable:!0,multiple:!0,mode:a.mode},{"no-options":(0,o.withCtx)((({searching:t})=>[t?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",u,(0,o.toDisplayString)(e.t("harvester.storage.parameters.diskSelector.no-options",null,!0)),1))])),_:1},8,["value","label","options","mode"])])]),(0,o.createElementVNode)("div",p,[(0,o.createVNode)(N,{value:a.value.parameters.migratable,"onUpdate:value":t[4]||(t[4]=e=>a.value.parameters.migratable=e),name:"layer3NetworkMode",label:e.t("harvester.storage.parameters.migratable.label"),mode:a.mode,options:f.migratableOptions,disabled:!a.value.thirdPartyStorageFeatureEnabled},null,8,["value","label","mode","options","disabled"])]),(0,o.createElementVNode)("div",m,[(0,o.createVNode)(N,{value:f.volumeEncryption,"onUpdate:value":t[5]||(t[5]=e=>f.volumeEncryption=e),name:"volumeEncryption",label:e.t("harvester.storage.volumeEncryption"),mode:a.mode,options:f.volumeEncryptionOptions,disabled:!0},null,8,["value","label","mode","options"])]),"true"===a.value.parameters.encrypted?((0,o.openBlock)(),(0,o.createElementBlock)("div",v,[(0,o.createElementVNode)("div",h,[(0,o.createVNode)(y,{value:f.secret,"onUpdate:value":t[6]||(t[6]=e=>f.secret=e),label:e.t("harvester.storage.secret"),options:f.secretOptions,mode:a.mode},null,8,["value","label","options","mode"])])])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(V,{value:f.parameters,"onUpdate:value":t[7]||(t[7]=e=>f.parameters=e),"add-label":e.t("storageClass.longhorn.addLabel"),"read-allowed":!1,mode:a.mode,class:"mt-10"},null,8,["value","add-label","mode"])])}var g=a(25088),f=a(77988),k=a(79380),y=a(55834),N=a(35664),V=a(14220),C=a(66905),w=a(76978),E=a(68851),S=a(15908);const B=["numberOfReplicas","staleReplicaTimeout","diskSelector","nodeSelector","migratable","encrypted","dataEngine"],{CSI_PROVISIONER_SECRET_NAME:A,CSI_PROVISIONER_SECRET_NAMESPACE:x,CSI_NODE_PUBLISH_SECRET_NAME:D,CSI_NODE_PUBLISH_SECRET_NAMESPACE:M,CSI_NODE_STAGE_SECRET_NAME:U,CSI_NODE_STAGE_SECRET_NAMESPACE:T}=C.Et;var _={name:"DriverLonghornIOV2",components:{KeyValue:g.A,LabeledSelect:f.A,LabeledInput:k.o,RadioGroup:y.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0},realMode:{type:String,required:!0}},data(){return this.realMode===V.YQ&&(this.value["parameters"]={numberOfReplicas:"3",staleReplicaTimeout:"30",diskSelector:null,nodeSelector:null,encrypted:"false",migratable:this.value.thirdPartyStorageFeatureEnabled?"true":"false",dataEngine:S.DATA_ENGINE_V2}),{}},computed:{secrets(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](N.bB);return t.filter((e=>!1===e.isSystem))},longhornNodes(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/all`](N.oe.NODES)},nodeTags(){return(this.longhornNodes||[]).reduce(((e,t)=>{const a=t.spec?.tags||[];return(0,E.sb)([...e,...a])}),[])},diskTags(){return(this.longhornNodes||[]).reduce(((e,t)=>{const a=t.spec?.disks,o=Object.keys(a).reduce(((e,t)=>{const o=a[t]?.tags||[];return(0,E.sb)([...e,...o])}),[]);return(0,E.sb)([...e,...o])}),[])},isView(){return this.mode===V.nW},migratableOptions(){return[{label:this.t("generic.yes"),value:"true"},{label:this.t("generic.no"),value:"false"}]},secretOptions(){return this.secrets.map((e=>e.id))},volumeEncryptionOptions(){return[{label:this.t("generic.yes"),value:"true"},{label:this.t("generic.no"),value:"false"}]},parameters:{get(){const e=(0,w.o8)(this.value?.parameters)||{};return B.forEach((t=>{delete e[t]})),Object.values(C.Et).forEach((t=>{delete e[t]})),e},set(e){Object.assign(this.value.parameters,e)}},volumeEncryption:{set(e){this.value["parameters"]={...this.value.parameters,encrypted:e}},get(){return this.value?.parameters?.encrypted||"false"}},secret:{get(){const e=this.value.parameters[x],t=this.value.parameters[A];return e&&t?`${e}/${t}`:""},set(e){const[t,a]=e.split("/");this.value["parameters"]={...this.value.parameters,[A]:a,[D]:a,[U]:a,[x]:t,[M]:t,[T]:t}}},nodeSelector:{get(){const e=this.value?.parameters?.nodeSelector;return(e||"").includes(",")?e.split(","):e?[e]:[]},set(e){this.value.parameters.nodeSelector=(e||[]).join(",")}},diskSelector:{get(){const e=this.value?.parameters?.diskSelector;return(e||"").includes(",")?e.split(","):e?[e]:[]},set(e){this.value.parameters.diskSelector=(e||[]).join(",")}},numberOfReplicas:{get(){return this.value?.parameters?.numberOfReplicas},set(e){e>=1&&e<=3&&(this.value.parameters.numberOfReplicas=String(e))}}}},R=(a(88198),a(47433));const $=(0,R.A)(_,[["render",b],["__scopeId","data-v-1618b260"]]);var O=$},14257:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return w}});var o=a(9274);const r={class:"row mt-10"},s={class:"col span-6"},l={key:0,class:"text-muted"},n={class:"row mt-10"},i={class:"col span-6"},d={key:0,class:"text-muted"},c={class:"col span-6"};function u(e,t,a,u,p,m){const v=(0,o.resolveComponent)("LabeledSelect"),h=(0,o.resolveComponent)("KeyValue");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(v,{value:p.node,"onUpdate:value":t[0]||(t[0]=e=>p.node=e),label:e.t("harvester.storage.parameters.node.label"),options:m.nodes,mode:a.mode,required:!0},{"no-options":(0,o.withCtx)((({searching:t})=>[t?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",l,(0,o.toDisplayString)(e.t("harvester.storage.parameters.diskSelector.no-options",null,!0)),1))])),_:1},8,["value","label","options","mode"])])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(v,{value:a.value.parameters.vgName,"onUpdate:value":t[1]||(t[1]=e=>a.value.parameters.vgName=e),label:e.t("harvester.storage.parameters.lvmVolumeGroup.label"),options:m.volumeGroups,mode:a.mode,required:!0},{"no-options":(0,o.withCtx)((({searching:t})=>[t?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",d,(0,o.toDisplayString)(e.t("harvester.storage.parameters.lvmVolumeGroup.no-options",null,!0)),1))])),_:1},8,["value","label","options","mode"])]),(0,o.createElementVNode)("div",c,[(0,o.createVNode)(v,{value:a.value.parameters.type,"onUpdate:value":t[2]||(t[2]=e=>a.value.parameters.type=e),label:e.t("harvester.storage.parameters.lvmVolumeGroupType.label"),options:p.volumeGroupTypes,mode:a.mode,required:!0},null,8,["value","label","options","mode"])])]),(0,o.createVNode)(h,{value:m.parameters,"onUpdate:value":t[3]||(t[3]=e=>m.parameters=e),"add-label":e.t("storageClass.longhorn.addLabel"),"read-allowed":!1,mode:a.mode,class:"mt-10"},null,8,["value","add-label","mode"])])}var p=a(25088),m=a(77988),v=a(88339),h=a(76978),b=a(32766),g=a(35664),f=a(39808);const k=["type","vgName"],y=[{matchLabelExpressions:[{key:f.LVM_TOPOLOGY_LABEL,values:[]}]}];var N={components:{KeyValue:p.A,LabeledSelect:m.A},props:{value:{type:Object,required:!0},mode:{type:String,required:!0},realMode:{type:String,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await(0,v.kR)({nodes:this.$store.dispatch(`${e}/findAll`,{type:g.NW}),lvmVolumeGroups:this.$store.dispatch(`${e}/findAll`,{type:b.rk.LVM_VOLUME_GROUP})})},data(){const e=(this.value.allowedTopologies?.[0]?.matchLabelExpressions||[]).find((e=>e.key===f.LVM_TOPOLOGY_LABEL))?.values[0];return{volumeGroupTypes:["striped","dm-thin"],node:e}},watch:{node(e){delete this.value.parameters.vgName;const t=[...y];t[0].matchLabelExpressions[0].values=[e],this.value.allowedTopologies=t}},computed:{nodes(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](g.NW)||[];return t.filter((e=>e.labels[f.LVM_TOPOLOGY_LABEL]===e.name)).map((e=>e.name))},volumeGroups(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](b.rk.LVM_VOLUME_GROUP)||[];return t.filter((e=>e.spec.nodeName===this.node)).map((e=>e.spec.vgName))},parameters:{get(){const e=(0,h.o8)(this.value?.parameters)||{};return k.map((t=>{delete e[t]})),e},set(e){Object.assign(this.value.parameters,e)}}}},V=(a(5648),a(47433));const C=(0,V.A)(N,[["render",u],["__scopeId","data-v-6afc4f36"]]);var w=C},57717:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return B}});var o=a(9274);const r={id:"restore"},s={class:"content"},l={class:"mb-20"},n={class:"row"},i={class:"col span-6"},d={class:"col span-6"};function c(e,t,a,c,u,p){const m=(0,o.resolveComponent)("RadioGroup"),v=(0,o.resolveComponent)("LabeledSelect"),h=(0,o.resolveComponent)("LabeledInput"),b=(0,o.resolveComponent)("Checkbox"),g=(0,o.resolveComponent)("Footer");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(m,{value:u.restoreNewVm,"onUpdate:value":t[0]||(t[0]=e=>u.restoreNewVm=e),name:"model",options:[!0,!1],labels:[e.t("harvester.backup.restore.createNew"),e.t("harvester.backup.restore.replaceExisting")],disabled:p.disableExisting,mode:e.mode},null,8,["value","labels","disabled","mode"])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(v,{value:u.namespace,"onUpdate:value":t[1]||(t[1]=e=>u.namespace=e),disabled:!u.restoreNewVm,label:e.t("nameNsDescription.namespace.label"),options:p.namespaces},null,8,["value","disabled","label","options"])]),(0,o.createElementVNode)("div",d,[(0,o.createVNode)(h,{value:u.name,"onUpdate:value":t[2]||(t[2]=e=>u.name=e),disabled:!u.restoreNewVm,label:e.t("harvester.backup.restore.virtualMachineName"),placeholder:e.t("nameNsDescription.name.placeholder"),class:"mb-20"},null,8,["value","disabled","label","placeholder"])])]),(0,o.createVNode)(v,{value:u.backupName,"onUpdate:value":t[3]||(t[3]=e=>u.backupName=e),class:"mb-20",label:e.t("harvester.backup.restore.backup"),options:p.backupOption},null,8,["value","label","options"]),u.restoreNewVm?((0,o.openBlock)(),(0,o.createBlock)(b,{key:0,value:u.restoreResource.spec.keepMacAddress,"onUpdate:value":t[4]||(t[4]=e=>u.restoreResource.spec.keepMacAddress=e),type:"checkbox",label:e.t("harvester.backup.restore.keepMacAddress")},null,8,["value","label"])):(0,o.createCommentVNode)("",!0),u.restoreNewVm?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(v,{key:1,value:u.deletionPolicy,"onUpdate:value":t[5]||(t[5]=e=>u.deletionPolicy=e),label:e.t("harvester.backup.restore.deletePreviousVolumes"),options:p.deletionPolicyOption},null,8,["value","label","options"]))]),(0,o.createVNode)(g,{mode:"create",class:"footer",errors:e.errors,onSave:p.saveRestore,onDone:p.cancelAction},null,8,["errors","onSave","onDone"])])}var u=a(89210),p=a(10196),m=a(79380),v=a(56417),h=a(77988),b=a(91825),g=a(88339),f=a(99726),k=a(74302),y=a(76978),N=a(32766),V=a(41837);const C={apiVersion:"harvesterhci.io/v1beta1",kind:"VirtualMachineRestore",metadata:{name:"",namespace:""},type:N.rk.RESTORE,spec:{target:{apiGroup:"kubevirt.io",kind:"VirtualMachine",name:""},virtualMachineBackupName:"",newVM:!0,deletionPolicy:"delete"}};var w={name:"CreateRestore",components:{Checkbox:v.A,Footer:u.A,RadioGroup:p.z,LabeledInput:m.o,LabeledSelect:h.A},mixins:[b.A],async fetch(){await(0,g.kR)({backups:this.$store.dispatch("harvester/findAll",{type:N.rk.BACKUP}),vms:this.$store.dispatch("harvester/findAll",{type:N.rk.VM})})},data(){const e=this.$route.query?.restoreMode,t=this.$route.query?.resourceName,a=(0,y.o8)(C),o="new"===e||void 0===e;return{backupName:t,restoreNewVm:o,restoreResource:a,name:"",description:"",deletionPolicy:"delete",namespace:""}},computed:{backupOption(){const e=this.$store.getters["harvester/all"](N.rk.BACKUP);return e.filter((e=>{const t=this.restoreNewVm||e.attachVmExisting;return t&&e?.status?.readyToUse&&e.spec?.type!==V.a.SNAPSHOT})).map((e=>({label:e.metadata.name,value:e.metadata.name})))},deletionPolicyOption(){return[{value:"delete",label:"Delete"},{value:"retain",label:"Retain"}]},currentBackupResource(){const e=this.backupName,t=this.$store.getters["harvester/all"](N.rk.BACKUP);return t.find((t=>t.name===e))},disableExisting(){return!this.currentBackupResource?.attachVmExisting},backupNamespace(){const e=this.$store.getters["harvester/all"](N.rk.BACKUP);return e.find((e=>e.metadata.name===this.backupName))?.metadata?.namespace},namespaces(){const e=this.$store.getters["allNamespaces"],t=(0,k.Ul)(e.map((e=>({label:e.nameDisplay,value:e.id}))),"label");return t}},watch:{backupName:{handler(e){this.currentBackupResource&&(this.restoreNewVm||(this.name=this?.currentBackupResource?.attachVM)),this.restoreResource.spec.virtualMachineBackupName=e},immediate:!0},restoreNewVm(e){this.name=e?"":this?.currentBackupResource?.attachVM},backupNamespace:{handler(e){this.namespace=e},immediate:!0}},methods:{cancelAction(){this.$router.go(-1)},async saveRestore(e){this.update();const t=await this.$store.dispatch("harvester/create",this.restoreResource);t.metadata.namespace=this.namespace,t.spec.virtualMachineBackupNamespace=this.backupNamespace;try{await t.save(),e(!0),this.$router.push({name:this.doneRoute,params:{resource:N.rk.VM}})}catch(a){this.errors=(0,f.rz)(a)||a,e(!1)}},update(){this.restoreResource.metadata.generateName=`restore-${this.backupName}-`,this.name&&(this.restoreResource.spec.target.name=this.name),this.restoreNewVm?(delete this.restoreResource.spec.deletionPolicy,this.restoreResource.spec.newVM=!0):(this.restoreResource.spec.deletionPolicy=this.deletionPolicy,delete this.restoreResource.spec.newVM,delete this.restoreResource.spec.keepMacAddress)}},componentTitle(){return"restoreVM"}},E=(a(4008),a(47433));const S=(0,E.A)(w,[["render",c],["__scopeId","data-v-dcf8e7de"]]);var B=S},17361:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return P}});var o=a(9274);const r={class:"row mb-20 mt-20"},s={class:"col span-12"},l={key:2},n={key:2,class:"fileName mt-5"},i={class:"row"},d={class:"col span-6"},c=["onUpdate:modelValue","disabled","placeholder","onInput"];function u(e,t,a,u,p,m){const v=(0,o.resolveComponent)("NameNsDescription"),h=(0,o.resolveComponent)("RadioGroup"),b=(0,o.resolveComponent)("LabeledInput"),g=(0,o.resolveComponent)("LabeledSelect"),f=(0,o.resolveComponent)("Tab"),k=(0,o.resolveComponent)("Select"),y=(0,o.resolveComponent)("KeyValue"),N=(0,o.resolveComponent)("Tabbed"),V=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(V,{"done-route":e.doneRoute,resource:a.value,mode:e.mode,errors:e.errors,"can-yaml":!!m.showEditAsYaml,"apply-hooks":e.applyHooks,onFinish:m.saveImage,onError:t[11]||(t[11]=t=>e.errors=t)},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(v,{ref:"nd",value:a.value,mode:e.mode,label:e.t("generic.name"),"name-key":"spec.displayName","onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode","label"]),(0,o.createVNode)(N,(0,o.mergeProps)(e.$attrs,{class:"mt-15","side-tabs":!0}),{default:(0,o.withCtx)((()=>[(0,o.createVNode)(f,{name:"basic",label:e.t("harvester.image.tabs.basics"),weight:99,class:"bordered-table"},{default:(0,o.withCtx)((()=>[e.isCreate?((0,o.openBlock)(),(0,o.createBlock)(h,{key:0,value:m.sourceType,"onUpdate:value":t[1]||(t[1]=e=>m.sourceType=e),name:"model",options:m.radioGroupOptions,labels:[e.t("harvester.image.sourceType.download"),e.t("harvester.image.sourceType.upload"),e.t("harvester.image.sourceType.encrypt"),e.t("harvester.image.sourceType.decrypt")],mode:e.mode},null,8,["value","options","labels","mode"])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[e.isCreate?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(b,{key:0,value:a.value.spec.sourceType,"onUpdate:value":t[2]||(t[2]=e=>a.value.spec.sourceType=e),mode:e.mode,class:"mb-20",disabled:e.isEdit,"label-key":"harvester.image.source"},null,8,["value","mode","disabled"])),"download"===a.value.spec.sourceType?((0,o.openBlock)(),(0,o.createBlock)(b,{key:1,value:a.value.spec.url,"onUpdate:value":t[3]||(t[3]=e=>a.value.spec.url=e),mode:e.mode,disabled:e.isEdit,class:"mb-20 labeled-input--tooltip",required:"","label-key":"harvester.image.url",tooltip:e.t("harvester.image.urlTip",{},!0)},null,8,["value","mode","disabled","tooltip"])):"upload"===a.value.spec.sourceType?((0,o.openBlock)(),(0,o.createElementBlock)("div",l,[e.isView?((0,o.openBlock)(),(0,o.createBlock)(b,{key:0,value:m.imageName,"onUpdate:value":t[4]||(t[4]=e=>m.imageName=e),mode:e.mode,class:"mt-20","label-key":"harvester.image.fileName"},null,8,["value","mode"])):(0,o.createCommentVNode)("",!0),e.isCreate?((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:1,type:"button",class:"btn role-primary",onClick:t[6]||(t[6]=(...e)=>m.selectFile&&m.selectFile(...e))},[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e.t("harvester.image.uploadFile")),1),(0,o.withDirectives)((0,o.createElementVNode)("input",{id:"file",ref:"file",type:"file",accept:".qcow, .qcow2, .raw, .img, .iso",onChange:t[5]||(t[5]=e=>m.handleFileUpload())},null,544),[[o.vShow,!1]])])):(0,o.createCommentVNode)("",!0),m.uploadFileName?((0,o.openBlock)(),(0,o.createElementBlock)("div",n,[t[12]||(t[12]=(0,o.createElementVNode)("span",{class:"icon icon-file"},null,-1)),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(m.uploadFileName),1)])):(0,o.createCommentVNode)("",!0)])):(0,o.createCommentVNode)("",!0),"download"===a.value.spec.sourceType?((0,o.openBlock)(),(0,o.createBlock)(b,{key:3,value:a.value.spec.checksum,"onUpdate:value":t[7]||(t[7]=e=>a.value.spec.checksum=e),mode:e.mode,disabled:e.isEdit,"label-key":"harvester.image.checksum",tooltip:e.t("harvester.image.checksumTip")},null,8,["value","mode","disabled","tooltip"])):(0,o.createCommentVNode)("",!0),"clone"===a.value.spec.sourceType?((0,o.openBlock)(),(0,o.createBlock)(g,{key:4,value:m.sourceImage,"onUpdate:value":t[8]||(t[8]=e=>m.sourceImage=e),options:m.sourceImageOptions,label:e.t("harvester.image.sourceImage"),mode:e.mode,disabled:e.isEdit,class:"mb-20"},null,8,["value","options","label","mode","disabled"])):(0,o.createCommentVNode)("",!0)])])])),_:1},8,["label"]),(0,o.createVNode)(f,{name:"storage",label:e.t("harvester.storage.label"),weight:89,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(g,{value:m.storageClassName,"onUpdate:value":t[9]||(t[9]=e=>m.storageClassName=e),options:m.storageClassOptions,label:e.t("harvester.storage.storageClass.label"),mode:e.mode,disabled:e.isEdit,class:"mb-20"},null,8,["value","options","label","mode","disabled"])])])])),_:1},8,["label"]),(0,o.createVNode)(f,{name:"labels",label:e.t("labels.labels.title"),weight:2,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(y,{key:"labels",ref:"labels",value:a.value.labels,"add-label":e.t("labels.addLabel"),mode:e.mode,"pad-left":!1,"read-allowed":!1,"value-can-be-empty":!0,onFocusKey:m.focusKey,"onUpdate:value":t[10]||(t[10]=e=>a.value.setLabels(e))},{value:(0,o.withCtx)((({row:t,keyName:a,valueName:r,queueUpdate:s})=>[m.internalAnnotations(t)?((0,o.openBlock)(),(0,o.createBlock)(k,{key:0,value:t[r],"onUpdate:value":[e=>t[r]=e,s],mode:e.mode,searchable:!0,clearable:!1,options:m.calculateOptions(t[a])},null,8,["value","onUpdate:value","mode","options"])):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":e=>t[r]=e,disabled:e.isView,type:"text",placeholder:e.t("keyValue.valuePlaceholder"),autocorrect:"off",autocapitalize:"off",spellcheck:"false",onInput:s},null,40,c)),[[o.vModelDynamic,t[r]]])])),_:1},8,["value","add-label","mode","onFocusKey"])])),_:1},8,["label"])])),_:1},16)])),_:1},8,["done-route","resource","mode","errors","can-yaml","apply-hooks","onFinish"])}var p=a(99960),m=a(59808),v=a(49584),h=a(79380),b=a(25088),g=a(32786),f=a(10196),k=a(18918),y=a(77988),N=a(91825),V=a(2602),C=a(99726),w=a(88339),E=a(35664),S=a(52880),B=a(48249),A=a(32766),x=a(82877);const D="encrypt",M="decrypt",U="clone",T="download",_="upload",R="raw_qcow2",$="longhorn";var O={name:"EditImage",inheritAttrs:!1,emits:["update:value"],components:{Tab:v.A,Tabbed:m.A,KeyValue:b.A,Select:k.A,CruResource:p.A,LabeledInput:h.o,NameNsDescription:g.A,RadioGroup:f.z,LabeledSelect:y.A},mixins:[N.A],props:{value:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await(0,w.kR)({images:this.$store.dispatch(`${e}/findAll`,{type:A.rk.IMAGE}),storageClasses:this.$store.dispatch(`${e}/findAll`,{type:E.fJ})}),this["storageClassName"]=this.storageClassName||this.defaultStorageClassName(),this.images=this.$store.getters[`${e}/all`](A.rk.IMAGE),this.storages=this.$store.getters[`${e}/all`](E.fJ);const{securityParameters:t}=this.value.spec;if(t){const e=`${t.sourceImageNamespace}/${t.sourceImageName}`;this.selectedImage=this.images.find((t=>t.id===e))}},data(){const{image:e,sourceType:t,cryptoOperation:a}=this.$route.query||{};if(this.value.spec||(this.value["spec"]={sourceType:t||T}),e&&a){const t=JSON.parse(e);this.value.spec.securityParameters={cryptoOperation:a,sourceImageName:t.metadata.name,sourceImageNamespace:t.metadata.namespace}}return this.value.metadata.name||(this.value.metadata.generateName="image-"),{selectedImage:null,storageClasses:[],images:[],url:this.value.spec.url,files:[],resource:"",headers:{},fileUrl:"",file:""}},computed:{uploadFileName(){return this.file?.name||""},imageName(){return this.value?.metadata?.annotations?.[V.r.IMAGE_NAME]||"-"},isCreateEdit(){return this.isCreate||this.isEdit},showEditAsYaml(){return this.value.spec.sourceType===T||this.value.spec.sourceType===U},radioGroupOptions(){return this.value.volumeEncryptionFeatureEnabled?[T,_,D,M]:[T,_]},encryptedStorageClasses(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](E.fJ);return t.filter((e=>e.isEncrypted))},nonEncryptedStorageClasses(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](E.fJ);return t.filter((e=>!e.isEncrypted))},storageClassOptions(){const e=this.value.spec?.securityParameters?.cryptoOperation===D?this.encryptedStorageClasses:this.nonEncryptedStorageClasses,t=this.value.thirdPartyStorageFeatureEnabled?e.filter((e=>!e.parameters?.backingImage)):e.filter((e=>!e.parameters?.backingImage&&e.provisioner!==x.LVM_DRIVER));return t.map((e=>{const t=e.isDefault?`${e.name} (${this.t("generic.default")})`:e.name;return{label:t,value:e.name}}))||[]},storageClassName:{get(){return this.value.metadata.annotations[V.r.STORAGE_CLASS]},set(e){this.value.metadata.annotations[V.r.STORAGE_CLASS]=e,this.value.thirdPartyStorageFeatureEnabled&&(this.value.spec.targetStorageClassName=e)}},sourceImageOptions(){let e=[];return this.value.spec.sourceType!==U?e:(e=this.value.spec.securityParameters.cryptoOperation===D?this.images.filter((e=>!e.isEncrypted)):this.images.filter((e=>e.isEncrypted)),e.map((e=>e.displayNameWithNamespace)))},sourceImage:{get(){return this.selectedImage?this.selectedImage.displayNameWithNamespace:""},set(e){this.selectedImage=this.images.find((t=>t.displayNameWithNamespace===e)),this.value.spec.securityParameters.sourceImageName=this.selectedImage?.metadata.name||"",this.value.spec.securityParameters.sourceImageNamespace=this.selectedImage?.metadata.namespace||""}},sourceType:{get(){return this.value.spec.sourceType===U?this.value.spec?.securityParameters?.cryptoOperation:this.value.spec.sourceType},set(e){e===M||e===D?(this.value.spec.sourceType=U,this.value.spec["securityParameters"]={cryptoOperation:e,sourceImageName:"",sourceImageNamespace:this.value.metadata.namespace},this.selectedImage=null):(delete this.value.spec["securityParameters"],this.value.spec.sourceType=e)}}},watch:{"value.spec.url"(e){const t=e.trim();this.setImageLabels(t)},"value.spec.sourceType"(){this["file"]=null,this.url="",this.$refs?.file?.value&&(this.$refs.file.value=null)},"value.spec.securityParameters.cryptoOperation"(){this.value.spec?.securityParameters?.cryptoOperation===D?this.storageClassName=this.encryptedStorageClasses[0]?.name||"":this.storageClassName=this.defaultStorageClassName()},storageClassName(e){const t=this.storages.find((t=>t.id===e));t&&this.value.thirdPartyStorageFeatureEnabled&&(this.value.spec.backend=t.isLonghornV1?"backingimage":"cdi")}},methods:{async saveImage(e){if(this.value.spec.displayName=(this.value.spec.displayName||"").trim(),this.isEdit)return await this.handleEditImage(e);if(this.value.spec.sourceType===_&&this.isCreate)try{this.value.spec.url="";const t=this.file;this.value.metadata.annotations[V.r.IMAGE_NAME]=t?.name;const a=await this.value.save();a.uploadImage(t),e(!0),this.done()}catch(t){this.errors=(0,C.rz)(t),e(!1)}else this.value.spec.url=this.value.spec.url?.trim()||"",this.save(e)},async handleEditImage(e){try{const t=[{op:"replace",path:"/metadata/labels",value:this.value.metadata.labels},{op:"replace",path:"/metadata/annotations",value:this.value.metadata.annotations}];await this.value.patch(t),e(!0),this.done()}catch(t){this.errors=(0,C.rz)(t),e(!1)}},setImageLabels(e){const t=e?.split("/")?.pop()||e,a=t?.split(".")?.pop()?.toLowerCase();if(S.Vi.includes(a)){const e="iso"===a?a:R;this.addLabel(V.r.IMAGE_SUFFIX,e),this.value.spec.displayName||this.$refs.nd.changeNameAndNamespace({text:t,selected:this.value.metadata.namespace})}const o=this.getOSType(e);o&&this.addLabel(V.r.OS_TYPE,o.value)},addLabel(e,t){const a=this.$refs.labels.rows;a.map(((t,a)=>{t.key===e&&this.$refs.labels.remove(a)})),this.$refs.labels.add(e,t)},handleFileUpload(){const e=this.$refs.file.files[0];this.file=e,this.setImageLabels(e?.name),this.value.spec.displayName||this.$refs.nd.changeNameAndNamespace({text:e?.name,selected:this.value.metadata.namespace}),this.setImageLabels()},selectFile(){this.$refs.file.value=null,this.$refs.file.click()},internalAnnotations(e){const t=[V.r.OS_TYPE,V.r.IMAGE_SUFFIX];return t.find((t=>t===e.key))},calculateOptions(e){return e===V.r.OS_TYPE?B.OS:e===V.r.IMAGE_SUFFIX?[{label:"ISO",value:"iso"},{label:"raw/qcow2",value:R}]:[]},focusKey(){this.$refs.key.focus()},getOSType(e){if(e)return B.OS.find((t=>t.match?!!t.match.find((t=>e.toLowerCase().includes(t)))&&t.value:!!e.toLowerCase().includes(t.value.toLowerCase())&&t.value))},defaultStorageClassName(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](E.fJ).find((e=>e.isDefault));return t?t.isEncrypted?$:t?.metadata?.name:$}}},I=(a(70585),a(47433));const L=(0,I.A)(O,[["render",u],["__scopeId","data-v-1d4328c1"]]);var P=L},18172:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return H}});var o=a(9274);const r={class:"mb-20"},s={class:"row mb-20"},l={class:"col span-6"},n={class:"col span-6"},i={class:"row mb-20"},d={class:"col span-6"},c={class:"col span-6"},u={class:"row mb-20"},p={key:0},m={class:"row mb-20"},v={class:"col span-6"};function h(e,t,a,h,b,g){const f=(0,o.resolveComponent)("NameNsDescription"),k=(0,o.resolveComponent)("Checkbox"),y=(0,o.resolveComponent)("CpuMemory"),N=(0,o.resolveComponent)("SSHKey"),V=(0,o.resolveComponent)("Tab"),C=(0,o.resolveComponent)("Volume"),w=(0,o.resolveComponent)("Network"),E=(0,o.resolveComponent)("NodeScheduling"),S=(0,o.resolveComponent)("PodAffinity"),B=(0,o.resolveComponent)("KeyValue"),A=(0,o.resolveComponent)("Labels"),x=(0,o.resolveComponent)("LabeledSelect"),D=(0,o.resolveComponent)("Reserved"),M=(0,o.resolveComponent)("UnitInput"),U=(0,o.resolveComponent)("CloudConfig"),T=(0,o.resolveComponent)("Tabbed"),_=(0,o.resolveComponent)("CruResource"),R=(0,o.resolveDirective)("t");return b.templateSpec&&e.spec?((0,o.openBlock)(),(0,o.createBlock)(_,{key:0,"done-route":e.doneRoute,resource:a.value,"can-yaml":!1,mode:e.mode,errors:e.errors,"apply-hooks":e.applyHooks,onFinish:g.saveVMT},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(f,{value:b.templateValue,mode:g.realTemplateMode,"name-label":"harvester.vmTemplate.nameNsDescription.name",namespaced:!0,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:templateValue",t))},null,8,["value","mode"]),b.templateId?((0,o.openBlock)(),(0,o.createBlock)(k,{key:0,value:b.isDefaultVersion,"onUpdate:value":t[1]||(t[1]=e=>b.isDefaultVersion=e),class:"mb-20",label:e.t("tableHeaders.defaultVersion"),type:"checkbox",mode:e.mode},null,8,["value","label","mode"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(T,{"side-tabs":!0,onChanged:g.onTabChanged},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(V,{name:"Basics",label:e.t("harvester.vmTemplate.tabs.basics")},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(y,{cpu:e.cpu,memory:e.memory,disabled:g.isConfig,onUpdateCpuMemory:e.updateCpuMemory},null,8,["cpu","memory","disabled","onUpdateCpuMemory"]),(0,o.createElementVNode)("div",r,[(0,o.createVNode)(N,{value:e.sshKey,"onUpdate:value":t[2]||(t[2]=t=>e.sshKey=t),"create-namespace":!0,namespace:b.templateValue.metadata.namespace,"disable-create":e.isView,mode:e.mode,"onUpdate:sshKey":e.updateSSHKey},null,8,["value","namespace","disable-create","mode","onUpdate:sshKey"])])])),_:1},8,["label"]),(0,o.createVNode)(V,{name:"Volume",label:e.t("harvester.tab.volume"),weight:-1},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(C,{value:e.diskRows,"onUpdate:value":t[3]||(t[3]=t=>e.diskRows=t),mode:e.mode,namespace:a.value.metadata.namespace,"existing-volume-disabled":!0},null,8,["value","mode","namespace"])])),_:1},8,["label"]),(0,o.createVNode)(V,{name:"Network",label:e.t("harvester.tab.network"),weight:-2},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(w,{value:e.networkRows,"onUpdate:value":t[4]||(t[4]=t=>e.networkRows=t),mode:e.mode},null,8,["value","mode"])])),_:1},8,["label"]),(0,o.createVNode)(V,{name:"nodeScheduling",label:e.t("workload.container.titles.nodeScheduling"),weight:-3},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(E,{mode:e.mode,value:e.spec.template.spec,nodes:e.nodesIdOptions},null,8,["mode","value","nodes"])])),_:1},8,["label"]),(0,o.createVNode)(V,{label:e.t("harvester.tab.vmScheduling"),name:"vmScheduling",weight:-4},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(S,{mode:e.mode,value:e.spec.template.spec,nodes:e.nodes,"all-namespaces-option-available":!0,namespaces:e.filteredNamespaces,"overwrite-labels":e.affinityLabels},null,8,["mode","value","nodes","namespaces","overwrite-labels"])])),_:1},8,["label"]),(0,o.createVNode)(V,{name:e.t("generic.labels"),label:e.t("harvester.tab.instanceLabel"),weight:-5},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(A,{"default-container-class":"labels-and-annotations-container",value:a.value,mode:e.mode,"display-side-by-side":!1,"show-annotations":!1,"show-label-title":!1},{labels:(0,o.withCtx)((({toggler:r})=>[(0,o.createVNode)(B,{key:"labels",value:a.value.instanceLabels,"protected-keys":a.value.systemLabels||[],"toggle-filter":r,"add-label":e.t("labels.addLabel"),mode:e.mode,"read-allowed":!1,"value-can-be-empty":!0,onInput:t[5]||(t[5]=e=>a.value.setInstanceLabels(e))},null,8,["value","protected-keys","toggle-filter","add-label","mode"])])),_:1},8,["value","mode"])])),_:1},8,["name","label"]),(0,o.createVNode)(V,{name:"advanced",label:e.t("harvester.tab.advanced"),weight:-99},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(x,{value:e.runStrategy,"onUpdate:value":t[6]||(t[6]=t=>e.runStrategy=t),"label-key":"harvester.virtualMachine.runStrategy",options:e.runStrategies,mode:e.mode},null,8,["value","options","mode"])]),(0,o.createElementVNode)("div",n,[(0,o.createVNode)(x,{value:e.osType,"onUpdate:value":t[7]||(t[7]=t=>e.osType=t),"label-key":"harvester.virtualMachine.osType",mode:e.mode,options:e.OS},null,8,["value","mode","options"])])]),(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(x,{value:e.maintenanceStrategy,"onUpdate:value":t[8]||(t[8]=t=>e.maintenanceStrategy=t),"label-key":"harvester.virtualMachine.maintenanceStrategy.label",options:e.maintenanceStrategies,"get-option-label":e.getMaintenanceStrategyOptionLabel,mode:e.mode},null,8,["value","options","get-option-label","mode"])]),(0,o.createElementVNode)("div",c,[(0,o.createVNode)(D,{"reserved-memory":e.reservedMemory,mode:e.mode,onUpdateReserved:e.updateReserved},null,8,["reserved-memory","mode","onUpdateReserved"])])]),(0,o.createElementVNode)("div",u,[e.showAdvanced?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,role:"button",onClick:t[9]||(t[9]=(...t)=>e.toggleAdvanced&&e.toggleAdvanced(...t))},null,512)),[[R,"harvester.generic.showMore"]]):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:1,role:"button",onClick:t[10]||(t[10]=(...t)=>e.toggleAdvanced&&e.toggleAdvanced(...t))},null,512)),[[R,"harvester.generic.showMore"]])]),e.showAdvanced?((0,o.openBlock)(),(0,o.createElementBlock)("div",p,[(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,[(0,o.createVNode)(M,{value:e.terminationGracePeriodSeconds,"onUpdate:value":t[11]||(t[11]=t=>e.terminationGracePeriodSeconds=t),suffix:1==e.terminationGracePeriodSeconds?"Second":"Seconds",label:e.t("harvester.virtualMachine.terminationGracePeriodSeconds.label"),mode:e.mode,onChange:e.updateTerminationGracePeriodSeconds},null,8,["value","suffix","label","mode","onChange"])])])])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(U,{ref:"yamlEditor",mode:e.mode,"user-script":e.userScript,namespace:b.templateValue.metadata.namespace,"network-script":e.networkScript,onUpdateUserData:e.updateUserData,onUpdateNetworkData:e.updateNetworkData},null,8,["mode","user-script","namespace","network-script","onUpdateUserData","onUpdateNetworkData"]),t[20]||(t[20]=(0,o.createElementVNode)("div",{class:"spacer"},null,-1)),a.value.cpuPinningFeatureEnabled?((0,o.openBlock)(),(0,o.createBlock)(k,{key:1,value:e.cpuPinning,"onUpdate:value":t[12]||(t[12]=t=>e.cpuPinning=t),class:"check",type:"checkbox","tooltip-key":"harvester.virtualMachine.cpuPinning.tooltip","label-key":"harvester.virtualMachine.cpuPinning.label",mode:e.mode},null,8,["value","mode"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(k,{value:e.installUSBTablet,"onUpdate:value":t[13]||(t[13]=t=>e.installUSBTablet=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.enableUsb"),mode:e.mode},null,8,["value","label","mode"]),(0,o.createVNode)(k,{value:e.installAgent,"onUpdate:value":t[14]||(t[14]=t=>e.installAgent=t),class:"check",type:"checkbox","label-key":"harvester.virtualMachine.installAgent",mode:e.mode},null,8,["value","mode"]),(0,o.createVNode)(k,{value:e.tpmEnabled,"onUpdate:value":t[15]||(t[15]=t=>e.tpmEnabled=t),class:"check",type:"checkbox","label-key":"harvester.virtualMachine.advancedOptions.tpm",mode:e.mode},null,8,["value","mode"]),a.value.tpmPersistentStateFeatureEnabled&&e.tpmEnabled?((0,o.openBlock)(),(0,o.createBlock)(k,{key:2,value:e.tpmPersistentStateEnabled,"onUpdate:value":t[16]||(t[16]=t=>e.tpmPersistentStateEnabled=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.advancedOptions.tpmPersistentState"),mode:e.mode},null,8,["value","label","mode"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(k,{value:e.efiEnabled,"onUpdate:value":t[17]||(t[17]=t=>e.efiEnabled=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.advancedOptions.efiEnabled"),mode:e.mode},null,8,["value","label","mode"]),a.value.efiPersistentStateFeatureEnabled&&e.efiEnabled?((0,o.openBlock)(),(0,o.createBlock)(k,{key:3,value:e.efiPersistentStateEnabled,"onUpdate:value":t[18]||(t[18]=t=>e.efiPersistentStateEnabled=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.advancedOptions.efiPersistentState"),mode:e.mode},null,8,["value","label","mode"])):(0,o.createCommentVNode)("",!0),e.efiEnabled?((0,o.openBlock)(),(0,o.createBlock)(k,{key:4,value:e.secureBoot,"onUpdate:value":t[19]||(t[19]=t=>e.secureBoot=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.advancedOptions.secureBoot"),mode:e.mode},null,8,["value","label","mode"])):(0,o.createCommentVNode)("",!0)])),_:1},8,["label"])])),_:1},8,["onChanged"])])),_:1},8,["done-route","resource","mode","errors","apply-hooks","onFinish"])):(0,o.createCommentVNode)("",!0)}var b=a(65359),g=a(59808),f=a(49584),k=a(42200),y=a(99960),N=a(32786),V=a(77988),C=a(7365),w=a(25088),E=a(41077),S=a(19413),B=a(77290),A=a(92043),x=a(14220),D=a(2602),M=a(91825),U=a(8135),T=a(32766),_=a(48249),R=a(5257),$=a(95191),O=a(8746),I=a(75403),L=a(81559),P=a(59026),q={name:"HarvesterEditVMTemplate",emits:["update:templateValue"],components:{Tab:f.A,SSHKey:P["default"],Volume:$["default"],Tabbed:g.A,Network:O["default"],Checkbox:k.S,CpuMemory:I["default"],CruResource:y.A,CloudConfig:L["default"],LabeledSelect:V.A,NameNsDescription:N.A,NodeScheduling:E.A,PodAffinity:S.A,Reserved:R["default"],UnitInput:B.A,Labels:C.A,KeyValue:w.A},mixins:[M.A,_.Ay],inheritAttrs:!1,props:{value:{type:Object,required:!0}},data(){this.mode===x.G5&&this.value.cleanForNew();const e=this.value.templateId||this.$route.query.templateId;return{templateId:e,templateValue:null,templateSpec:null,versionName:"",description:"",defaultVersion:null,isDefaultVersion:!1}},computed:{...(0,b.L8)({t:"i18n/t"}),isConfig(){return this.$route.query?.as===x.au||this.isView},realTemplateMode(){return this.templateId?x.nW:this.mode},secretNamePrefix(){return this.templateValue?.metadata?.name}},watch:{templateId:{async handler(e){const t=await this.$store.dispatch("harvester/findAll",{type:T.rk.VM_TEMPLATE});let a=t.find((t=>t.id===e))||null,o=a?.spec;a||(o={description:"",defaultVersionId:""},a=await this.$store.dispatch("harvester/create",{metadata:{name:"",namespace:""},spec:o,type:T.rk.VM_TEMPLATE})),this.templateValue=a,this.templateSpec=o},immediate:!0}},created(){this.registerAfterHook((async()=>{if(this.isDefaultVersion){const t=await this.$store.dispatch("harvester/findAll",{type:T.rk.VM_VERSION,opt:{force:!0}}),a=t.find((e=>e?.metadata?.annotations?.[D.r.TEMPLATE_VERSION_CUSTOM_NAME]===this.customName));if(a)try{this.templateValue.defaultVersionId=a.id;const e=[{op:"replace",path:"/spec/defaultVersionId",value:a.id}];await this.templateValue.patch(e,{url:this.templateValue.linkFor("view")})}catch(e){return Promise.reject(new Error(e.message))}}}))},mounted(){this.imageId=this.diskRows[0]?.image||""},methods:{async saveVMT(e){this.parseVM();const t=await this.$store.dispatch("harvester/findAll",{type:T.rk.VM_TEMPLATE}),a=t.find((e=>e.metadata.name===this.templateValue.metadata.name));try{if(this.templateId)a.save();else{if(!this.templateValue?.metadata?.name)return this.errors=[this.t("validation.required",{key:this.t("harvester.vmTemplate.nameNsDescription.name")})],void e(!1);await this.templateValue.save()}this.value.cleanForNew(),this.customName=(0,A.vx)(10),this.value.metadata["annotations"]={...this.value.metadata.annotations,[D.r.TEMPLATE_VERSION_CUSTOM_NAME]:this.customName};const t=this.templateValue.metadata.name||a.metadata.name,o=this.templateValue.metadata.namespace||a.metadata.namespace;this.isCreate&&(this.value.metadata.namespace=o),this.value.spec["templateId"]=`${o}/${t}`;const r=await this.value.save();await this.saveSecret(r),await this.applyHooks(U.Mz),this.done()}catch(o){this.errors=[o],e(!1)}},onTabChanged({tab:e}){"advanced"===e.name&&this.$refs.yamlEditor?.refresh()}}},F=a(47433);const G=(0,F.A)(q,[["render",h]]);var H=G},68747:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return B}});var o=a(9274);const r={id:"restore"},s={class:"content"},l={class:"mb-20"},n={class:"row"},i={class:"col span-6"},d={class:"col span-6"};function c(e,t,a,c,u,p){const m=(0,o.resolveComponent)("RadioGroup"),v=(0,o.resolveComponent)("LabeledSelect"),h=(0,o.resolveComponent)("LabeledInput"),b=(0,o.resolveComponent)("Footer");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(m,{value:u.restoreNewVm,"onUpdate:value":t[0]||(t[0]=e=>u.restoreNewVm=e),name:"model",options:[!0,!1],labels:[e.t("harvester.backup.restore.createNew"),e.t("harvester.backup.restore.replaceExisting")],disabled:p.disableExisting,mode:e.mode},null,8,["value","labels","disabled","mode"])]),(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(v,{value:u.namespace,"onUpdate:value":t[1]||(t[1]=e=>u.namespace=e),disabled:!0,label:e.t("nameNsDescription.namespace.label"),options:p.namespaces},null,8,["value","label","options"])]),(0,o.createElementVNode)("div",d,[(0,o.createVNode)(h,{value:u.name,"onUpdate:value":t[2]||(t[2]=e=>u.name=e),disabled:!u.restoreNewVm,label:e.t("harvester.backup.restore.virtualMachineName"),placeholder:e.t("nameNsDescription.name.placeholder"),class:"mb-20"},null,8,["value","disabled","label","placeholder"])])]),(0,o.createVNode)(v,{value:u.snapshotName,"onUpdate:value":t[3]||(t[3]=e=>u.snapshotName=e),class:"mb-20",label:e.t("harvester.vmSnapshot.snapshot"),options:p.snapshotOption},null,8,["value","label","options"]),u.restoreNewVm?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(v,{key:0,value:u.deletionPolicy,"onUpdate:value":t[4]||(t[4]=e=>u.deletionPolicy=e),label:e.t("harvester.backup.restore.deletePreviousVolumes"),options:p.deletionPolicyOption},null,8,["value","label","options"]))]),(0,o.createVNode)(b,{mode:"create",class:"footer",errors:e.errors,onSave:p.saveRestore,onDone:p.cancelAction},null,8,["errors","onSave","onDone"])])}var u=a(89210),p=a(10196),m=a(79380),v=a(77988),h=a(91825),b=a(88339),g=a(99726),f=a(35664),k=a(74302),y=a(76978),N=a(32766),V=a(41837);const C={apiVersion:"harvesterhci.io/v1beta1",kind:"VirtualMachineRestore",metadata:{name:"",namespace:""},type:N.rk.RESTORE,spec:{target:{apiGroup:"kubevirt.io",kind:"VirtualMachine",name:""},virtualMachineBackupName:"",newVM:!0,deletionPolicy:"retain"}};var w={name:"CreateRestore",components:{Footer:u.A,RadioGroup:p.z,LabeledInput:m.o,LabeledSelect:v.A},mixins:[h.A],async fetch(){await(0,b.kR)({backups:this.$store.dispatch("harvester/findAll",{type:N.rk.BACKUP}),vms:this.$store.dispatch("harvester/findAll",{type:N.rk.VM})})},data(){const e=this.$route.query?.restoreMode,t=this.$route.query?.resourceName,a=(0,y.o8)(C),o="new"===e||void 0===e;return{snapshotName:t,restoreNewVm:o,restoreResource:a,name:"",description:"",deletionPolicy:"retain",namespace:""}},computed:{snapshotOption(){const e=this.$store.getters["harvester/all"](N.rk.BACKUP);return e.filter((e=>{const t=this.restoreNewVm||e.attachVmExisting;return t&&e?.status?.readyToUse&&e.spec?.type===V.a.SNAPSHOT})).map((e=>({label:e.metadata.name,value:e.metadata.name})))},deletionPolicyOption(){return[{value:"retain",label:"Retain"}]},currentBackupResource(){const e=this.snapshotName,t=this.$store.getters["harvester/all"](N.rk.BACKUP);return t.find((t=>t.name===e))},disableExisting(){return!this.currentBackupResource?.attachVmExisting},snapshotNamespace(){const e=this.$store.getters["harvester/all"](N.rk.BACKUP);return e.find((e=>e.metadata.name===this.snapshotName))?.metadata?.namespace},namespaces(){const e=this.$store.getters["currentStore"](f.CU),t=this.$store.getters[`${e}/all`](f.CU),a=this.$store.getters["systemNamespaces"],o=(0,k.Ul)(t.filter((e=>!a.includes(e.metadata.name))).map((e=>({label:e.nameDisplay,value:e.id}))),"label");return o}},watch:{snapshotName:{handler(e){this.currentBackupResource&&(this.restoreNewVm||(this.name=this?.currentBackupResource?.attachVM)),this.restoreResource.spec.virtualMachineBackupName=e},immediate:!0},restoreNewVm(e){this.name=e?"":this?.currentBackupResource?.attachVM},snapshotNamespace:{handler(e){this.namespace=e},immediate:!0}},methods:{cancelAction(){this.$router.go(-1)},async saveRestore(e){this.update();const t=await this.$store.dispatch("harvester/create",this.restoreResource);t.metadata.namespace=this.namespace,t.spec.virtualMachineBackupNamespace=this.snapshotNamespace;try{await t.save(),e(!0),this.$router.push({name:this.doneRoute,params:{resource:N.rk.VM}})}catch(a){this.errors=(0,g.rz)(a)||a,e(!1)}},update(){this.restoreResource.metadata.generateName=`restore-${this.snapshotName}-`,this.name&&(this.restoreResource.spec.target.name=this.name),this.restoreNewVm?(delete this.restoreResource.spec.deletionPolicy,this.restoreResource.spec.newVM=!0):(this.restoreResource.spec.deletionPolicy=this.deletionPolicy,delete this.restoreResource.spec.newVM)}},componentTitle(){return"restoreVM"}},E=(a(38673),a(47433));const S=(0,E.A)(w,[["render",c],["__scopeId","data-v-6c93c587"]]);var B=S},49293:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return D}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("NameNsDescription"),i=(0,o.resolveComponent)("LabeledSelect"),d=(0,o.resolveComponent)("UnitInput"),c=(0,o.resolveComponent)("Banner"),u=(0,o.resolveComponent)("Tab"),p=(0,o.resolveComponent)("LabeledInput"),m=(0,o.resolveComponent)("SortableTable"),v=(0,o.resolveComponent)("ResourceTabs"),h=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(h,{"done-route":e.doneRoute,resource:e.value,mode:e.mode,errors:e.errors,"generate-yaml":l.generateYaml,"apply-hooks":e.applyHooks,onFinish:e.save},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(n,{value:e.value,namespaced:!0,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(v,{value:e.value,"onUpdate:value":t[15]||(t[15]=t=>e.value=t),class:"mt-15","need-conditions":!1,"need-related":!1,"side-tabs":!0,mode:e.mode},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(u,{name:"basic",label:e.t("harvester.volume.tabs.basics"),weight:3,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:s.source,"onUpdate:value":[t[1]||(t[1]=e=>s.source=e),l.update],label:e.t("harvester.volume.source"),options:l.sourceOption,disabled:!e.isCreate,required:"",mode:e.mode,class:"mb-20"},null,8,["value","label","options","disabled","mode","onUpdate:value"]),l.isVMImage?((0,o.openBlock)(),(0,o.createBlock)(i,{key:0,value:s.imageId,"onUpdate:value":[t[2]||(t[2]=e=>s.imageId=e),l.updateImage],label:e.t("harvester.volume.image"),options:l.imageOption,disabled:!e.isCreate,required:"",mode:e.mode,class:"mb-20"},null,8,["value","label","options","disabled","mode","onUpdate:value"])):(0,o.createCommentVNode)("",!0),"blank"===s.source?((0,o.openBlock)(),(0,o.createBlock)(i,{key:1,value:e.value.spec.storageClassName,"onUpdate:value":[t[3]||(t[3]=t=>e.value.spec.storageClassName=t),l.update],options:l.storageClassOptions,label:e.t("harvester.storage.storageClass.label"),mode:e.mode,class:"mb-20",disabled:!e.isCreate},null,8,["value","options","label","mode","disabled","onUpdate:value"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(d,{value:s.storage,"onUpdate:value":[t[4]||(t[4]=e=>s.storage=e),l.update],label:e.t("harvester.volume.size"),"input-exponent":3,"output-modifier":!0,increment:1024,mode:e.mode,disabled:e.value?.isLonghornV2&&l.isEdit,required:"",class:"mb-20"},null,8,["value","label","mode","disabled","onUpdate:value"]),e.value?.isLonghornV2&&l.isEdit?((0,o.openBlock)(),(0,o.createBlock)(c,{key:2,color:"warning"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e.t("harvester.volume.longhorn.disableResize")),1)])),_:1})):(0,o.createCommentVNode)("",!0)])),_:1},8,["label"]),e.isCreate?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(u,{key:0,name:"details",label:e.t("harvester.volume.tabs.details"),weight:2.5,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{value:l.frontendDisplay,"onUpdate:value":t[5]||(t[5]=e=>l.frontendDisplay=e),class:"mb-20",mode:e.mode,disabled:!0,label:e.t("harvester.volume.frontend")},null,8,["value","mode","label"]),(0,o.createVNode)(p,{value:l.attachedNode,"onUpdate:value":t[6]||(t[6]=e=>l.attachedNode=e),class:"mb-20",mode:e.mode,disabled:!0,label:e.t("harvester.volume.attachedNode")},null,8,["value","mode","label"]),(0,o.createVNode)(p,{value:l.endpoint,"onUpdate:value":t[7]||(t[7]=e=>l.endpoint=e),class:"mb-20",mode:e.mode,disabled:!0,label:e.t("harvester.volume.endpoint")},null,8,["value","mode","label"]),(0,o.createVNode)(i,{value:l.diskTags,"onUpdate:value":t[8]||(t[8]=e=>l.diskTags=e),multiple:!0,label:e.t("harvester.volume.diskTags"),options:[],disabled:!0,mode:e.mode,class:"mb-20"},null,8,["value","label","mode"]),(0,o.createVNode)(i,{value:l.nodeTags,"onUpdate:value":t[9]||(t[9]=e=>l.nodeTags=e),multiple:!0,label:e.t("harvester.volume.nodeTags"),options:[],disabled:!0,mode:e.mode,class:"mb-20"},null,8,["value","label","mode"]),(0,o.createVNode)(p,{value:l.lastBackup,"onUpdate:value":t[10]||(t[10]=e=>l.lastBackup=e),class:"mb-20",mode:e.mode,disabled:!0,label:e.t("harvester.volume.lastBackup")},null,8,["value","mode","label"]),(0,o.createVNode)(p,{value:l.lastBackupAt,"onUpdate:value":t[11]||(t[11]=e=>l.lastBackupAt=e),class:"mb-20",mode:e.mode,disabled:!0,label:e.t("harvester.volume.lastBackupAt")},null,8,["value","mode","label"]),(0,o.createVNode)(p,{value:l.replicasNumber,"onUpdate:value":t[12]||(t[12]=e=>l.replicasNumber=e),class:"mb-20",mode:e.mode,disabled:!0,label:e.t("harvester.volume.replicasNumber")},null,8,["value","mode","label"])])),_:1},8,["label"])),e.isCreate?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(u,{key:1,name:"instances",label:e.t("harvester.volume.tabs.snapshots"),weight:2,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(m,(0,o.mergeProps)(e.$attrs,{headers:l.snapshotHeaders,"default-sort-by":"age",rows:e.value.relatedVolumeSnapshotCounts,"key-field":"_key"}),null,16,["headers","rows"])])),_:1},8,["label"])),!e.isCreate&&e.value.spec.dataSource?((0,o.openBlock)(),(0,o.createBlock)(u,{key:2,name:"datasource",label:e.t("harvester.volume.tabs.datasource"),weight:1,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{value:l.dataSourceKind,"onUpdate:value":t[13]||(t[13]=e=>l.dataSourceKind=e),class:"mb-20",mode:e.mode,disabled:!0,label:e.t("harvester.volume.kind")},null,8,["value","mode","label"]),(0,o.createVNode)(p,{value:e.value.spec.dataSource.name,"onUpdate:value":t[14]||(t[14]=t=>e.value.spec.dataSource.name=t),mode:e.mode,disabled:!0,label:e.t("nameNsDescription.name.label")},null,8,["value","mode","label"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0)])),_:1},8,["value","mode"])])),_:1},8,["done-route","resource","mode","errors","generate-yaml","apply-hooks","onFinish"])}var s=a(49584),l=a(81345),n=a(99960),i=a(77290),d=a(72551),c=a(77988),u=a(79380),p=a(32786),m=a(9980),v=a(88339),h=a(76978),b=a(35664),g=a(74302),f=a(37648),k=a(14220),y=a(91825),N=a(2602),V=a(68774),C=a(66905),w=a(32766),E=a(82877),S=a(15908),B={name:"HarvesterVolume",emits:["update:value"],components:{Banner:m.l,Tab:s.A,UnitInput:i.A,CruResource:n.A,SortableTable:l.A,ResourceTabs:d.A,LabeledSelect:c.A,LabeledInput:u.o,NameNsDescription:p.A},mixins:[y.A],inheritAttrs:!1,async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={images:this.$store.dispatch(`${e}/findAll`,{type:w.rk.IMAGE}),snapshots:this.$store.dispatch(`${e}/findAll`,{type:w.qY}),storages:this.$store.dispatch(`${e}/findAll`,{type:b.fJ}),pvs:this.$store.dispatch(`${e}/findAll`,{type:b.PV})};this.$store.getters[`${e}/schemaFor`](b.oe.VOLUMES)&&(t.longhornVolumes=this.$store.dispatch(`${e}/findAll`,{type:b.oe.VOLUMES})),this.$store.getters[`${e}/schemaFor`](b.oe.ENGINES)&&(t.longhornEngines=this.$store.dispatch(`${e}/findAll`,{type:b.oe.ENGINES}));const a=await(0,v.kR)(t);this.snapshots=a.snapshots,this.images=a.images;const o=this.$store.getters["harvester/all"](b.fJ).find((e=>e.isDefault));this.value.spec["storageClassName"]=this.value?.spec?.storageClassName||o?.metadata?.name||"longhorn"},data(){this.mode===k.YQ&&(this.value.spec.volumeMode="Block",this.value.spec.accessModes=["ReadWriteMany"]);const e=this.value?.spec?.resources?.requests?.storage||null,t=(0,h.Jt)(this.value,`metadata.annotations."${N.r.IMAGE_ID}"`),a=t?"url":"blank";return{source:a,storage:e,imageId:t,snapshots:[],images:[]}},created(){this.registerBeforeHook(this.willSave,"willSave")},computed:{isBlank(){return"blank"===this.source},isEdit(){return this.mode===k.G5},isVMImage(){return"url"===this.source},longhornV2LVMSupport(){return this.$store.getters["harvester-common/getFeatureEnabled"]("longhornV2LVMSupport")},sourceOption(){return[{value:"blank",label:this.t("harvester.volume.sourceOptions.new")},{value:"url",label:this.t("harvester.volume.sourceOptions.vmImage")}]},interfaceOption(){return C.$z},imageOption(){return(0,g.Ul)(this.images.filter((e=>e.isReady)).map((e=>({label:`${e.metadata.namespace}/${e.spec.displayName}`,value:e.id}))),"label")},snapshotHeaders(){return[V.c4,V.o_,V.CU,{name:"size",labelKey:"tableHeaders.size",value:"status.restoreSize",sort:"size",formatter:"Si",formatterOpts:{opts:{increment:1024,addSuffix:!0,maxExponent:3,minExponent:3,suffix:"i"},needParseSi:!0}},{name:"readyToUse",labelKey:"tableHeaders.readyToUse",value:"status.readyToUse",align:"left",formatter:"Checked"},V.K]},dataSourceKind(){return C.$E[this.value.spec?.dataSource?.kind]},storageClasses(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/all`](b.fJ)},storageClassOptions(){return this.storageClasses.filter((e=>!e.parameters?.backingImage)).map((e=>{const t=e.isDefault?`${e.name} (${this.t("generic.default")})`:e.name;return{label:t,value:e.name}}))||[]},frontend(){return this.value.longhornVolume?.spec?.frontend},frontendDisplay(){const e=["blockdev"];return e.includes(this.frontend)?this.t(`harvester.volume.${this.frontend}`):this.frontend},attachedNode(){return this.value.longhornVolume?.spec?.nodeID},endpoint(){return this.value.longhornEngine?.status?.endpoint},diskTags(){return this.value.longhornVolume?.spec?.diskSelector},nodeTags(){return this.value.longhornVolume?.spec?.nodeSelector},replicasNumber(){return this.value.longhornVolume?.spec?.numberOfReplicas},lastBackup(){return this.value.longhornVolume?.status?.lastBackup},lastBackupAt(){return this.value.longhornVolume?.status?.lastBackupAt},rebuildStatus(){return this.value.longhornEngine?.status?.rebuildStatus}},methods:{getAccessMode(){if(!this.longhornV2LVMSupport)return["ReadWriteMany"];const e=this.value.spec.storageClassName,t=this.storageClasses.find((t=>t.name===e));let a=this.value.isLvm||this.value.isLonghornV2;return t&&(a=t.provisioner===E.LVM_DRIVER||t.parameters?.dataEngine===S.DATA_ENGINE_V2),a?["ReadWriteOnce"]:["ReadWriteMany"]},willSave(){this.update()},update(){let e="",t=this.value.spec.storageClassName;if(this.isVMImage&&this.imageId){const a=this.$store.getters["harvester/all"](w.rk.IMAGE);e={...this.value.metadata.annotations,[N.r.IMAGE_ID]:this.imageId},t=a?.find((e=>this.imageId===e.id))?.storageClassName}else e={...this.value.metadata.annotations};const a={...this.value.spec,resources:{requests:{storage:this.storage}},storageClassName:t,accessModes:this.getAccessMode()};this.value.setAnnotations(e),this.value["spec"]=a},updateImage(){if(this.isVMImage&&this.imageId){const e=this.images?.find((e=>this.imageId===e.id)),t=Math.max(e?.status?.size,e?.status?.virtualSize);t&&(this.storage=`${Math.ceil(t/1024/1024/1024)}Gi`)}this.update()},generateYaml(){const e=(0,f.Kq)(this.value);return e}}},A=a(47433);const x=(0,A.A)(B,[["render",r]]);var D=x},69305:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return C}});var o=a(9274);const r={class:"row"},s={class:"col span-12"},l={class:"row"},n={class:"col span-12"},i={key:0,class:"row"},d={class:"col span-12"};function c(e,t,a,c,u,p){const m=(0,o.resolveComponent)("NameNsDescription"),v=(0,o.resolveComponent)("LabeledInput"),h=(0,o.resolveComponent)("Tab"),b=(0,o.resolveComponent)("ResourceTabs"),g=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createVNode)(g,{"done-route":e.doneRoute,resource:e.value,mode:e.mode,errors:e.errors,"apply-hooks":e.applyHooks,onFinish:e.save},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(m,{value:e.value,namespaced:!0,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(b,{value:e.value,"onUpdate:value":t[4]||(t[4]=t=>e.value=t),class:"mt-15","need-conditions":!1,"need-related":!1,"side-tabs":!0,mode:e.mode},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(h,{name:"basics",label:e.t("harvester.virtualMachine.detail.tabs.basics"),class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(v,{value:p.size,"onUpdate:value":t[1]||(t[1]=e=>p.size=e),label:e.t("harvester.snapshot.size"),class:"mt-20",disabled:!0},null,8,["value","label"])])]),(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(v,{value:p.targetVolume,"onUpdate:value":t[2]||(t[2]=e=>p.targetVolume=e),label:e.t("harvester.snapshot.targetVolume"),class:"mt-20",disabled:!0},null,8,["value","label"])])]),p.isImageVolume?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(v,{value:p.imageName,"onUpdate:value":t[3]||(t[3]=e=>p.imageName=e),label:e.t("harvester.snapshot.image"),class:"mt-20",disabled:!0},null,8,["value","label"])])])):(0,o.createCommentVNode)("",!0)])),_:1},8,["label"])])),_:1},8,["value","mode"])])),_:1},8,["done-route","resource","mode","errors","apply-hooks","onFinish"])])}var u=a(49584),p=a(99960),m=a(72551),v=a(79380),h=a(32786),b=a(76978),g=a(91825),f=a(2841),k=a(32766),y={name:"HarvesterSnapshot",emits:["update:value"],components:{LabeledInput:v.o,Tab:u.A,ResourceTabs:m.A,CruResource:p.A,NameNsDescription:h.A},mixins:[g.A],inheritAttrs:!1,computed:{volume(){return this.volumes.find((e=>e.metadata.name===this.targetVolume))},size(){return this.value?.status?.restoreSize},isImageVolume(){return!!(0,b.Jt)(this.value,`metadata.annotations."${f.rk.IMAGE_ID}"`)},imageName(){const e=this.$store.getters["harvester/all"](k.rk.IMAGE).find((e=>e.id===(0,b.Jt)(this.value,`metadata.annotations."${f.rk.IMAGE_ID}"`)));return e?.spec?.displayName},targetVolume(){return this.value?.spec?.source?.persistentVolumeClaimName}}},N=a(47433);const V=(0,N.A)(y,[["render",c]]);var C=V},93987:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return m}});var o=a(9274);const r={class:"compat-matrix"},s={class:"device-col node-names"},l={class:"blank-corner"},n={class:"text-right"};function i(e,t,a,i,d,c){const u=(0,o.resolveDirective)("clean-tooltip");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,(0,o.toDisplayString)(e.t("harvester.devices.matrixDeviceClaimName")),1),(0,o.createElementVNode)("div",null,(0,o.toDisplayString)(e.t("harvester.devices.matrixHostName")),1)]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.allNodeNames,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:t},[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e),1)])))),128))]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(a.enabledDevices,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:t},[(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(["compat-cell device-label",{"text-muted":c.noneAvailable(e)}])},[(0,o.createTextVNode)((0,o.toDisplayString)(e.metadata.name),1)],2)),[[u,c.deviceTooltip(e)]]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(c.allNodeNames,((t,a)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:a,class:(0,o.normalizeClass)(["compat-cell",{"has-device":c.nodeHasDevice(t,e)}])},null,2)))),128))])))),128))])}var d=a(65359),c={props:{enabledDevices:{type:Array,required:!0},devicesByNode:{type:Object,required:!0},devicesInUse:{type:Object,default:()=>{}}},computed:{...(0,d.L8)({t:"i18n/t"}),allNodeNames(){return Object.keys(this.devicesByNode)},allDeviceIds(){return Object.keys(this.uniqueDevices)}},methods:{nodeNameFromId(e){return this.devicesByNode[e]?.name},nodeHasDevice(e,t){return t.status.nodeName===e},noneAvailable(e){const t=e.metadata?.name;return!!this.devicesInUse[t]},deviceTooltip(e){return`${e?.status?.resourceName}<br/>${e?.status?.description}`}}},u=(a(91950),a(47433));const p=(0,u.A)(c,[["render",i]]);var m=p},7060:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return T}});var o=a(9274);const r={key:0,class:"row"},s={class:"col span-12"},l={key:1},n={class:"row"},i={class:"col span-12"},d={class:"row"},c={class:"col span-6"},u={class:"text-label"},p={key:0,class:"row"},m={class:"col span-12 text-muted"},v={key:1,class:"text-error"},h={key:2,class:"row mt-20"},b={class:"col span-12"},g={class:"row mt-20"},f={class:"col span-12"};function k(e,t,a,k,y,N){const V=(0,o.resolveComponent)("Banner"),C=(0,o.resolveComponent)("t"),w=(0,o.resolveComponent)("LabeledSelect"),E=(0,o.resolveComponent)("CompatibilityMatrix"),S=(0,o.resolveComponent)("DeviceList"),B=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[y.oldFormatDevices.length>0?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(V,{color:"warning"},{default:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("p",null,null,512),[[B,e.t("harvester.pci.oldFormatDevices.help",{oldFormatDevicesHTML:N.oldFormatDevicesHTML},!0)]])])),_:1})])])):((0,o.openBlock)(),(0,o.createElementBlock)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(V,{color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(C,{k:"harvester.pci.howToUseDevice"})])),_:1}),y.selectedDevices.length>0?((0,o.openBlock)(),(0,o.createBlock)(V,{key:0,color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(C,{k:"harvester.pci.deviceInTheSameHost"})])),_:1})):(0,o.createCommentVNode)("",!0)])]),N.enabledDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:0},[(0,o.createElementVNode)("div",d,[(0,o.createElementVNode)("div",c,[(0,o.createVNode)(w,{value:y.selectedDevices,"onUpdate:value":t[0]||(t[0]=e=>y.selectedDevices=e),label:"Available PCI Devices",searchable:"",multiple:"",taggable:"",options:N.deviceOpts,mode:a.mode},{option:(0,o.withCtx)((e=>[(0,o.createElementVNode)("span",null,[(0,o.createTextVNode)((0,o.toDisplayString)(e.value)+" ",1),(0,o.createElementVNode)("span",u,"("+(0,o.toDisplayString)(e.displayLabel)+")",1)])])),_:1},8,["value","options","mode"])])]),N.compatibleNodes.length&&y.selectedDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",p,[(0,o.createElementVNode)("div",m,[t[3]||(t[3]=(0,o.createTextVNode)(" Compatible hosts: ")),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(N.compatibleNodes,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:t},(0,o.toDisplayString)(e)+(0,o.toDisplayString)(t<N.compatibleNodes.length-1?", ":""),1)))),128))])])):y.selectedDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",v,(0,o.toDisplayString)(e.t("harvester.pci.impossibleSelection")),1)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("button",{type:"button",class:"btn btn-sm role-link pl-0",onClick:t[1]||(t[1]=e=>{y.showMatrix=!y.showMatrix,e.target.blur()})},(0,o.toDisplayString)(y.showMatrix?e.t("harvester.pci.hideCompatibility"):e.t("harvester.pci.showCompatibility")),1),y.showMatrix?((0,o.openBlock)(),(0,o.createElementBlock)("div",h,[(0,o.createElementVNode)("div",b,[(0,o.createVNode)(E,{"enabled-devices":N.enabledDevices,"devices-by-node":N.devicesByNode,"devices-in-use":N.devicesInUse},null,8,["enabled-devices","devices-by-node","devices-in-use"])])])):(0,o.createCommentVNode)("",!0)],64)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",g,[(0,o.createElementVNode)("div",f,[(0,o.createVNode)(S,{schema:y.pciDeviceSchema,devices:y.pciDevices,onSubmit:t[2]||(t[2]=(0,o.withModifiers)((()=>{}),["prevent"]))},null,8,["schema","devices"])])])]))])}var y=a(14220),N=a(88339),V=a(77988),C=a(56943),w=a(65079),E=a.n(w),S=a(76978),B=a(32766),A=a(79428),x=a(93987),D={name:"VirtualMachinePCIDevices",components:{LabeledSelect:V.A,DeviceList:A["default"],CompatibilityMatrix:x["default"],Banner:C.A},props:{mode:{type:String,default:y.G5},value:{type:Object,default:()=>{}},vm:{type:Object,default:()=>{}}},async fetch(){const e={pciDevices:this.$store.dispatch("harvester/findAll",{type:B.rk.PCI_DEVICE}),claims:this.$store.dispatch("harvester/findAll",{type:B.rk.PCI_CLAIM}),vms:this.$store.dispatch("harvester/findAll",{type:B.rk.VM})},t=await(0,N.kR)(e);for(const l in t)this[l]=t[l];const a=[],o=[],r=this.value?.domain?.devices?.hostDevices||[],s=this.otherDevices(r).map((({name:e})=>e));r.forEach((({name:e,deviceName:t})=>{const r=(t||"").split("/")?.[1];r&&e.includes(r)&&!s.includes(e)?o.push(e):this.enabledDevices.find((t=>t?.metadata?.name===e))&&a.push(e)})),o.length>0?this.oldFormatDevices=o:this.selectedDevices=a},data(){return{pciDevices:[],claims:[],vms:[],selectedDevices:[],pciDeviceSchema:this.$store.getters["harvester/schemaFor"](B.rk.PCI_DEVICE),showMatrix:!1,oldFormatDevices:[]}},watch:{selectedDevices(e){const t=e.map((e=>{const t=this.enabledDevices.find((t=>t.metadata.name===e)),a=t?.status?.resourceName;return{deviceName:a,name:t?.metadata.name}})),a=[...this.otherDevices(this.value.domain.devices.hostDevices||[]),...t];(0,S.hZ)(this.value.domain.devices,"hostDevices",a)}},computed:{enabledDevices(){return this.pciDevices.filter((e=>e.isEnabled&&e.claimedByMe))||[]},devicesInUse(){const e=this.vms.reduce(((e,t)=>(t.metadata.name===this.vm?.metadata?.name||t.hostDevices.forEach((a=>{e[a.name]={usedBy:[t.metadata.name]}})),e)),{});return e},devicesByNode(){return this.enabledDevices?.reduce(((e,t)=>{const a=t.status?.nodeName;return a&&(e[a]?e[a].push(t):e[a]=[]),e}),{})},compatibleNodes(){const e=[...Object.keys(this.devicesByNode)];return this.selectedDevices.forEach((t=>{E()(e,(e=>{const a=this.enabledDevices.find((e=>e.metadata.name===t));return a.status.nodeName!==e}))})),e},deviceOpts(){const e=this.enabledDevices.filter((e=>{if(this.selectedDevices.length>0){const t=this.enabledDevices.find((e=>e.metadata.name===this.selectedDevices[0]));return!this.devicesInUse[e?.metadata.name]&&e.status.nodeName===t.status.nodeName}return!this.devicesInUse[e?.metadata.name]}));return e.map((e=>({value:e?.metadata.name,label:e?.metadata.name,displayLabel:e?.status?.resourceName})))},oldFormatDevicesHTML(){return this.oldFormatDevices.map((e=>`<li>${e}</li>`)).join("")}},methods:{otherDevices(e){return e.filter((e=>!this.pciDevices.find((t=>e.name===t.name))))},nodeNameFromUid(e){for(const t in this.uniqueDevices){const a=this.uniqueDevices[t].nodes,o=a.find((t=>t.systemUUID===e));if(o)return o.name}}}},M=a(47433);const U=(0,M.A)(D,[["render",k]]);var T=U},5257:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return d}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("UnitInput");return(0,o.openBlock)(),(0,o.createBlock)(n,{value:s.memory,"onUpdate:value":[t[0]||(t[0]=e=>s.memory=e),l.change],label:e.t("harvester.virtualMachine.input.reservedMemory"),mode:a.mode,"input-exponent":2,increment:1024,"output-modifier":!0},null,8,["value","label","mode","onUpdate:value"])}var s=a(77290),l={name:"HarvesterReserved",emits:["updateReserved"],components:{UnitInput:s.A},props:{reservedMemory:{type:String,default:null},mode:{type:String,default:"create"}},data(){return{memory:this.reservedMemory}},watch:{reservedMemory(e){this.memory=e}},methods:{change(){const{memory:e}=this;this.$emit("updateReserved",{memory:e})}}},n=a(47433);const i=(0,n.A)(l,[["render",r]]);var d=i},10707:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return M}});var o=a(9274);const r={class:"row"},s={class:"col span-12"},l={class:"row"},n={class:"col span-6"},i={class:"text-label"},d={key:0,class:"row"},c={class:"col span-12 text-muted"},u={key:1,class:"text-error"},p={key:2,class:"row mt-20"},m={class:"col span-12"},v={class:"row mt-20"},h={class:"col span-12"};function b(e,t,a,b,g,f){const k=(0,o.resolveComponent)("t"),y=(0,o.resolveComponent)("Banner"),N=(0,o.resolveComponent)("LabeledSelect"),V=(0,o.resolveComponent)("CompatibilityMatrix"),C=(0,o.resolveComponent)("DeviceList");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(y,{color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(k,{k:"harvester.usb.howToUseDevice"})])),_:1}),g.selectedDevices.length>0?((0,o.openBlock)(),(0,o.createBlock)(y,{key:0,color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(k,{k:"harvester.usb.deviceInTheSameHost"})])),_:1})):(0,o.createCommentVNode)("",!0)])]),f.enabledDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:0},[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(N,{value:g.selectedDevices,"onUpdate:value":t[0]||(t[0]=e=>g.selectedDevices=e),label:e.t("harvester.usb.available"),searchable:"",multiple:"",taggable:"",options:f.deviceOpts,mode:a.mode},{option:(0,o.withCtx)((e=>[(0,o.createElementVNode)("span",null,[(0,o.createTextVNode)((0,o.toDisplayString)(e.value)+" ",1),(0,o.createElementVNode)("span",i,"("+(0,o.toDisplayString)(e.displayLabel)+")",1)])])),_:1},8,["value","label","options","mode"])])]),f.compatibleNodes.length&&g.selectedDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",d,[(0,o.createElementVNode)("div",c,[t[3]||(t[3]=(0,o.createTextVNode)(" Compatible hosts: ")),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(f.compatibleNodes,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:e},(0,o.toDisplayString)(e)+(0,o.toDisplayString)(t<f.compatibleNodes.length-1?", ":""),1)))),128))])])):g.selectedDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",u,(0,o.toDisplayString)(e.t("harvester.usb.impossibleSelection")),1)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("button",{type:"button",class:"btn btn-sm role-link pl-0",onClick:t[1]||(t[1]=e=>{g.showMatrix=!g.showMatrix,e.target.blur()})},(0,o.toDisplayString)(g.showMatrix?e.t("harvester.usb.hideCompatibility"):e.t("harvester.usb.showCompatibility")),1),g.showMatrix?((0,o.openBlock)(),(0,o.createElementBlock)("div",p,[(0,o.createElementVNode)("div",m,[(0,o.createVNode)(V,{"enabled-devices":f.enabledDevices,"devices-by-node":f.devicesByNode,"devices-in-use":f.devicesInUse},null,8,["enabled-devices","devices-by-node","devices-in-use"])])])):(0,o.createCommentVNode)("",!0)],64)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",v,[(0,o.createElementVNode)("div",h,[(0,o.createVNode)(C,{schema:g.deviceSchema,devices:g.devices,onSubmit:t[2]||(t[2]=(0,o.withModifiers)((()=>{}),["prevent"]))},null,8,["schema","devices"])])])])}var g=a(14220),f=a(88339),k=a(32766),y=a(68774),N=a(77988),V=a(56943),C=a(93987),w=a(34529),E=a(65079),S=a.n(E),B=a(76978),A={name:"VirtualMachineUSBDevices",components:{Banner:V.A,CompatibilityMatrix:C["default"],DeviceList:w["default"],LabeledSelect:N.A},props:{mode:{type:String,default:g.G5},value:{type:Object,default:()=>{}},vm:{type:Object,default:()=>{}}},async fetch(){const e={devices:this.$store.dispatch("harvester/findAll",{type:k.rk.USB_DEVICE}),vms:this.$store.dispatch("harvester/findAll",{type:k.rk.VM})},t=await(0,f.kR)(e);for(const a in t)this[a]=t[a];this.selectedDevices=(this.value?.domain?.devices?.hostDevices||[]).map((({name:e})=>e)).filter((e=>this.enabledDevices.find((t=>t?.metadata?.name===e))))},data(){return{deviceSchema:this.$store.getters["harvester/schemaFor"](k.rk.USB_DEVICE),deviceHeaders:[{...y.c4},y.X0],devices:[],vms:[],selectedDevices:[],showMatrix:!1}},watch:{selectedDevices(e){const t=e.map((e=>{const t=this.enabledDevices.find((t=>t.metadata.name===e)),a=t?.status?.resourceName;return{deviceName:a,name:t?.metadata.name}})),a=[...this.otherDevices(this.value.domain.devices.hostDevices||[]),...t];(0,B.hZ)(this.value.domain.devices,"hostDevices",a)}},computed:{deviceOpts(){const e=this.enabledDevices.filter((e=>{if(this.selectedDevices.length>0){const t=this.enabledDevices.find((e=>e.metadata.name===this.selectedDevices[0]));return!this.devicesInUse[e?.metadata.name]&&e.status.nodeName===t?.status.nodeName}return!this.devicesInUse[e?.metadata.name]}));return e.map((e=>({value:e?.metadata.name,label:e?.metadata.name,displayLabel:e?.status?.description})))},enabledDevices(){return this.devices.filter((e=>e.status.enabled))},devicesInUse(){const e=this.vms.reduce(((e,t)=>(t.metadata.name===this.vm?.metadata?.name||t.hostDevices.forEach((a=>{e[a.name]={usedBy:[t.metadata.name]}})),e)),{});return e},devicesByNode(){return this.enabledDevices?.reduce(((e,t)=>{const a=t.status?.nodeName;return a&&(e[a]?e[a].push(t):e[a]=[]),e}),{})},compatibleNodes(){const e=[...Object.keys(this.devicesByNode)];return this.selectedDevices.forEach((t=>{S()(e,(e=>{const a=this.enabledDevices.find((e=>e.metadata.name===t));return a?.status.nodeName!==e}))})),e}},methods:{otherDevices(e){return e.filter((e=>!this.devices.find((t=>e.name===t.name))))}}},x=a(47433);const D=(0,x.A)(A,[["render",b]]);var M=D},92200:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return B}});var o=a(9274);const r={class:"row"},s={class:"col span-12"},l={class:"row"},n={class:"col span-6"},i={key:0,class:"row"},d={class:"col span-12 text-muted"},c={key:1,class:"text-error"},u={class:"row mt-20"},p={class:"col span-12"};function m(e,t,a,m,v,h){const b=(0,o.resolveComponent)("t"),g=(0,o.resolveComponent)("Banner"),f=(0,o.resolveComponent)("LabeledSelect"),k=(0,o.resolveComponent)("VGpuDeviceList");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(g,{color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(b,{k:"harvester.vgpu.howToUseDevice"})])),_:1}),v.selectedDevices.length>0?((0,o.openBlock)(),(0,o.createBlock)(g,{key:0,color:"info"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(b,{k:"harvester.vgpu.deviceInTheSameHost"})])),_:1})):(0,o.createCommentVNode)("",!0)])]),h.enabledDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:0},[(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(f,{value:v.selectedDevices,"onUpdate:value":t[0]||(t[0]=e=>v.selectedDevices=e),label:"Available vGPU Devices",searchable:"",multiple:"",taggable:"",options:h.deviceOpts,mode:a.mode},{option:(0,o.withCtx)((e=>[(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e.value),1)])),_:1},8,["value","options","mode"])])]),h.compatibleNodes.length&&v.selectedDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[(0,o.createElementVNode)("div",d,[t[2]||(t[2]=(0,o.createTextVNode)(" Compatible hosts: ")),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(h.compatibleNodes,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:t},(0,o.toDisplayString)(e)+(0,o.toDisplayString)(t<h.compatibleNodes.length-1?", ":""),1)))),128))])])):v.selectedDevices.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",c,(0,o.toDisplayString)(e.t("harvester.vgpu.impossibleSelection")),1)):(0,o.createCommentVNode)("",!0)],64)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",u,[(0,o.createElementVNode)("div",p,[(0,o.createVNode)(k,{schema:v.deviceSchema,devices:v.devices,onSubmit:t[1]||(t[1]=(0,o.withModifiers)((()=>{}),["prevent"]))},null,8,["schema","devices"])])])])}var v=a(14220),h=a(88339),b=a(77988),g=a(56943),f=a(65079),k=a.n(f),y=a(76978),N=a(32766),V=a(33212),C=a(68851),w={name:"VirtualMachineVGpuDevices",components:{Banner:g.A,LabeledSelect:b.A,VGpuDeviceList:V["default"]},props:{mode:{type:String,default:v.G5},value:{type:Object,default:()=>{}},vm:{type:Object,default:()=>{}}},async fetch(){const e={devices:this.$store.dispatch("harvester/findAll",{type:N.rk.VGPU_DEVICE}),vms:this.$store.dispatch("harvester/findAll",{type:N.rk.VM})},t=await(0,h.kR)(e);for(const o in t)this[o]=t[o];const a=this.vm.isOff?[...(this.value?.domain?.devices?.gpus||[]).map((({name:e})=>e))]:[...Object.values(this.vm?.provisionedVGpus).reduce(((e,t)=>[...e,...t]),[])];(0,C.sb)(a).forEach((e=>{this.enabledDevices.find((t=>t?.metadata?.name===e))&&this.selectedDevices.push(e)}))},data(){return{deviceSchema:this.$store.getters["harvester/schemaFor"](N.rk.VGPU_DEVICE),devices:[],vms:[],selectedDevices:[]}},watch:{selectedDevices(e){const t=e.map((e=>{const t=this.enabledDevices.find((t=>t.metadata.name===e)),a=`nvidia.com/${t?.status?.configureVGPUTypeName?.replace(/\s+/g,"_")}`;return{deviceName:a,name:t?.metadata.name}}));(0,y.hZ)(this.value.domain.devices,"gpus",t)}},computed:{enabledDevices(){return this.devices.filter((e=>e.isEnabled))||[]},devicesInUse(){const e=this.vms.reduce(((e,t)=>(t.metadata.name===this.vm?.metadata?.name||t.hostDevices.forEach((a=>{e[a.name]={usedBy:[t.metadata.name]}})),e)),{});return e},devicesByNode(){return this.enabledDevices?.reduce(((e,t)=>{const a=t.spec?.nodeName;return a&&(e[a]?e[a].push(t):e[a]=[]),e}),{})},compatibleNodes(){const e=[...Object.keys(this.devicesByNode)];return this.selectedDevices.forEach((t=>{k()(e,(e=>{const a=this.enabledDevices.find((e=>e.metadata.name===t));return a.spec.nodeName!==e}))})),e},deviceOpts(){const e=this.enabledDevices.filter((e=>{if(this.selectedDevices.length>0){const t=this.enabledDevices.find((e=>e.metadata.name===this.selectedDevices[0]));return!this.devicesInUse[e?.metadata.name]&&e.spec.nodeName===t.spec.nodeName}return!this.devicesInUse[e?.metadata.name]}));return e.map((e=>({value:e?.metadata.name,label:e?.metadata.name})))}}},E=a(47433);const S=(0,E.A)(w,[["render",m]]);var B=S},89740:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return de}});var o=a(9274);const r={key:2,class:"row mb-20"},s={class:"col span-6"},l={class:"col span-6"},n={class:"row mb-20"},i={class:"col span-6"},d={class:"col span-6"},c={class:"row mb-20"},u={class:"col span-6"},p={class:"col span-6"},m={class:"row mb-20"},v={key:0,class:"mb-20"},h={class:"row mb-20"},b={class:"col span-6"},g={class:"col span-6"},f={class:"row mb-20"},k={class:"col span-6"},y={key:1};function N(e,t,a,N,V,C){const w=(0,o.resolveComponent)("RadioGroup"),E=(0,o.resolveComponent)("LabeledInput"),S=(0,o.resolveComponent)("NameNsDescription"),B=(0,o.resolveComponent)("Checkbox"),A=(0,o.resolveComponent)("LabeledSelect"),x=(0,o.resolveComponent)("CpuMemory"),D=(0,o.resolveComponent)("SSHKey"),M=(0,o.resolveComponent)("Tab"),U=(0,o.resolveComponent)("Volume"),T=(0,o.resolveComponent)("Network"),_=(0,o.resolveComponent)("NodeScheduling"),R=(0,o.resolveComponent)("PodAffinity"),$=(0,o.resolveComponent)("PciDevices"),O=(0,o.resolveComponent)("VGpuDevices"),I=(0,o.resolveComponent)("UsbDevices"),L=(0,o.resolveComponent)("AccessCredentials"),P=(0,o.resolveComponent)("KeyValue"),q=(0,o.resolveComponent)("Labels"),F=(0,o.resolveComponent)("Reserved"),G=(0,o.resolveComponent)("UnitInput"),H=(0,o.resolveComponent)("CloudConfig"),j=(0,o.resolveComponent)("MessageLink"),J=(0,o.resolveComponent)("Banner"),K=(0,o.resolveComponent)("Tabbed"),z=(0,o.resolveComponent)("RestartVMDialog"),Y=(0,o.resolveComponent)("CruResource"),W=(0,o.resolveDirective)("t");return e.spec?((0,o.openBlock)(),(0,o.createBlock)(Y,{key:0,id:"vm","done-route":e.doneRoute,resource:a.value,"cancel-event":!0,mode:e.mode,"validation-passed":C.isValidationPassed,"can-yaml":!!V.isSingle,errors:e.errors,"generate-yaml":C.generateYaml,"apply-hooks":e.applyHooks,onFinish:C.saveVM,onCancel:C.cancelAction},{default:(0,o.withCtx)((()=>[e.isCreate?((0,o.openBlock)(),(0,o.createBlock)(w,{key:0,value:V.isSingle,"onUpdate:value":t[0]||(t[0]=e=>V.isSingle=e),class:"mb-20 vm-radio-group",name:"createInstanceMode",options:[!0,!1],labels:[e.t("harvester.virtualMachine.instance.single.label"),e.t("harvester.virtualMachine.instance.multiple.label")]},null,8,["value","labels"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(S,{value:a.value,mode:e.mode,"has-extra":!V.isSingle,"name-label":C.nameLabel,namespaced:!0,"name-placeholder":V.isSingle?"nameNsDescription.name.placeholder":"harvester.virtualMachine.instance.multiple.nameNsDescription","extra-columns":V.isSingle?[]:["type"],"onUpdate:value":t[2]||(t[2]=t=>e.$emit("update:value",t))},{type:(0,o.withCtx)((()=>[V.isSingle?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(E,{key:0,value:V.count,"onUpdate:value":[t[1]||(t[1]=e=>V.count=e),C.validateCount],valueModifiers:{number:!0},min:2,type:"number",label:e.t("harvester.virtualMachine.instance.multiple.count"),required:""},null,8,["value","label","onUpdate:value"]))])),_:1},8,["value","mode","has-extra","name-label","name-placeholder","extra-columns"]),e.isCreate?((0,o.openBlock)(),(0,o.createBlock)(B,{key:1,value:V.useTemplate,"onUpdate:value":t[3]||(t[3]=e=>V.useTemplate=e),class:"check mb-20",type:"checkbox","label-key":"harvester.virtualMachine.useTemplate.label"},null,8,["value"])):(0,o.createCommentVNode)("",!0),V.useTemplate?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(A,{value:V.templateId,"onUpdate:value":[t[4]||(t[4]=e=>V.templateId=e),C.updateTemplateId],"label-key":"harvester.virtualMachine.useTemplate.template.label",options:C.templateOptions},null,8,["value","options","onUpdate:value"])]),(0,o.createElementVNode)("div",l,[(0,o.createVNode)(A,{value:V.templateVersionId,"onUpdate:value":t[5]||(t[5]=e=>V.templateVersionId=e),"label-key":"harvester.virtualMachine.useTemplate.version.label",options:C.versionOptions},null,8,["value","options"])])])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(K,{"side-tabs":!0,onChanged:C.onTabChanged},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(M,{name:"basics",label:e.t("harvester.virtualMachine.detail.tabs.basics")},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(x,{cpu:e.cpu,memory:e.memory,mode:e.mode,onUpdateCpuMemory:e.updateCpuMemory},null,8,["cpu","memory","mode","onUpdateCpuMemory"]),(0,o.createVNode)(D,{value:e.sshKey,"onUpdate:value":t[6]||(t[6]=t=>e.sshKey=t),class:"mb-20","create-namespace":!0,namespace:a.value.metadata.namespace,mode:e.mode,disabled:e.isWindows||e.isEdit,"onUpdate:sshKey":e.updateSSHKey,onRegisterAfterHook:e.registerAfterHook},null,8,["value","namespace","mode","disabled","onUpdate:sshKey","onRegisterAfterHook"])])),_:1},8,["label"]),(0,o.createVNode)(M,{name:"Volume",label:e.t("harvester.tab.volume"),weight:-1},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(U,{value:e.diskRows,"onUpdate:value":t[7]||(t[7]=t=>e.diskRows=t),mode:e.mode,"custom-volume-mode":e.customVolumeMode,namespace:a.value.metadata.namespace,"resource-type":a.value.type,vm:a.value,"validate-required":!0},null,8,["value","mode","custom-volume-mode","namespace","resource-type","vm"])])),_:1},8,["label"]),(0,o.createVNode)(M,{name:"Network",label:e.t("harvester.tab.network"),weight:-2},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(T,{value:e.networkRows,"onUpdate:value":t[8]||(t[8]=t=>e.networkRows=t),mode:e.mode,"is-single":V.isSingle},null,8,["value","mode","is-single"])])),_:1},8,["label"]),(0,o.createVNode)(M,{name:"nodeScheduling",label:e.t("workload.container.titles.nodeScheduling"),weight:-3},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(_,{mode:e.mode,value:e.spec.template.spec,nodes:e.nodesIdOptions},null,8,["mode","value","nodes"])])),_:1},8,["label"]),(0,o.createVNode)(M,{label:e.t("harvester.tab.vmScheduling"),name:"vmScheduling",weight:-4},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(R,{mode:e.mode,value:e.spec.template.spec,nodes:e.nodes,"all-namespaces-option-available":!0,namespaces:e.filteredNamespaces,"overwrite-labels":e.affinityLabels},null,8,["mode","value","nodes","namespaces","overwrite-labels"])])),_:1},8,["label"]),e.enabledPCI?((0,o.openBlock)(),(0,o.createBlock)(M,{key:0,label:e.t("harvester.tab.pciDevices"),name:"pciDevices",weight:-5},{default:(0,o.withCtx)((()=>[(0,o.createVNode)($,{mode:e.mode,value:e.spec.template.spec,vm:a.value},null,8,["mode","value","vm"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),e.enabledSriovgpu?((0,o.openBlock)(),(0,o.createBlock)(M,{key:1,label:e.t("harvester.tab.vGpuDevices"),name:"vGpuDevices",weight:-6},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(O,{mode:e.mode,value:e.spec.template.spec,vm:a.value},null,8,["mode","value","vm"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),e.enabledPCI?((0,o.openBlock)(),(0,o.createBlock)(M,{key:2,label:e.t("harvester.tab.usbDevices"),name:"usbDevices",weight:-7},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(I,{mode:e.mode,value:e.spec.template.spec,vm:a.value},null,8,["mode","value","vm"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),e.isEdit?((0,o.openBlock)(),(0,o.createBlock)(M,{key:3,label:e.t("harvester.tab.accessCredentials"),name:"accessCredentials",weight:-8},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(L,{value:e.accessCredentials,"onUpdate:value":t[9]||(t[9]=t=>e.accessCredentials=t),mode:e.mode,"resource-type":a.value,"is-qemu-installed":C.isQemuInstalled},null,8,["value","mode","resource-type","is-qemu-installed"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(M,{name:"instanceLabel",label:e.t("harvester.tab.instanceLabel"),weight:-8},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(q,{"default-container-class":"labels-and-annotations-container",value:a.value,mode:e.mode,"display-side-by-side":!1,"show-annotations":!1,"show-label-title":!1},{labels:(0,o.withCtx)((({toggler:r})=>[(0,o.createVNode)(P,{key:"labels",value:a.value.instanceLabels,"protected-keys":a.value.systemLabels||[],"toggle-filter":r,"add-label":e.t("labels.addLabel"),mode:e.mode,"read-allowed":!1,"value-can-be-empty":!0,"onUpdate:value":t[10]||(t[10]=e=>a.value.setInstanceLabels(e))},null,8,["value","protected-keys","toggle-filter","add-label","mode"])])),_:1},8,["value","mode"])])),_:1},8,["label"]),(0,o.createVNode)(M,{name:"advanced",label:e.t("harvester.tab.advanced"),weight:-9},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(A,{value:e.runStrategy,"onUpdate:value":t[11]||(t[11]=t=>e.runStrategy=t),"label-key":"harvester.virtualMachine.runStrategy",options:e.runStrategies,mode:e.mode},null,8,["value","options","mode"])]),(0,o.createElementVNode)("div",d,[(0,o.createVNode)(A,{value:e.osType,"onUpdate:value":t[12]||(t[12]=t=>e.osType=t),"label-key":"harvester.virtualMachine.osType",options:e.OS,disabled:!e.isCreate},null,8,["value","options","disabled"])])]),(0,o.createElementVNode)("div",c,[(0,o.createElementVNode)("div",u,[(0,o.createVNode)(A,{value:e.maintenanceStrategy,"onUpdate:value":t[13]||(t[13]=t=>e.maintenanceStrategy=t),"label-key":"harvester.virtualMachine.maintenanceStrategy.label",options:e.maintenanceStrategies,"get-option-label":e.getMaintenanceStrategyOptionLabel,mode:e.mode},null,8,["value","options","get-option-label","mode"])]),(0,o.createElementVNode)("div",p,[(0,o.createVNode)(F,{"reserved-memory":e.reservedMemory,mode:e.mode,onUpdateReserved:e.updateReserved},null,8,["reserved-memory","mode","onUpdateReserved"])])]),(0,o.createElementVNode)("div",m,[e.showAdvanced?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,role:"button",onClick:t[14]||(t[14]=(...t)=>e.toggleAdvanced&&e.toggleAdvanced(...t))},null,512)),[[W,"harvester.generic.showMore"]]):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:1,role:"button",onClick:t[15]||(t[15]=(...t)=>e.toggleAdvanced&&e.toggleAdvanced(...t))},null,512)),[[W,"harvester.generic.showMore"]])]),e.showAdvanced?((0,o.openBlock)(),(0,o.createElementBlock)("div",v,[(0,o.createElementVNode)("div",h,[(0,o.createElementVNode)("div",b,[(0,o.createVNode)(E,{value:V.hostname,"onUpdate:value":t[16]||(t[16]=e=>V.hostname=e),"label-key":C.hostnameLabel,placeholder:C.hostPlaceholder,mode:e.mode},null,8,["value","label-key","placeholder","mode"])]),(0,o.createElementVNode)("div",g,[(0,o.createVNode)(A,{value:e.machineType,"onUpdate:value":t[17]||(t[17]=t=>e.machineType=t),"label-key":"harvester.virtualMachine.input.MachineType",options:C.machineTypeOptions,mode:e.mode},null,8,["value","options","mode"])])]),(0,o.createElementVNode)("div",f,[(0,o.createElementVNode)("div",k,[(0,o.createVNode)(G,{value:e.terminationGracePeriodSeconds,"onUpdate:value":[t[18]||(t[18]=t=>e.terminationGracePeriodSeconds=t),e.updateTerminationGracePeriodSeconds],suffix:1==e.terminationGracePeriodSeconds?"Second":"Seconds",label:e.t("harvester.virtualMachine.terminationGracePeriodSeconds.label"),mode:e.mode,positive:""},null,8,["value","suffix","label","mode","onUpdate:value"])])])])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(H,{ref:"yamlEditor","user-script":e.userScript,mode:e.mode,"view-code":e.isWindows,namespace:a.value.metadata.namespace,"network-script":e.networkScript,onUpdateUserData:e.updateUserData,onUpdateNetworkData:e.updateNetworkData,onUpdateDataTemplateId:e.updateDataTemplateId},null,8,["user-script","mode","view-code","namespace","network-script","onUpdateUserData","onUpdateNetworkData","onUpdateDataTemplateId"]),a.value.cpuPinningFeatureEnabled?((0,o.openBlock)(),(0,o.createBlock)(B,{key:1,value:e.cpuPinning,"onUpdate:value":t[19]||(t[19]=t=>e.cpuPinning=t),disabled:!C.enableCpuPinningCheckbox,class:"check",type:"checkbox","tooltip-key":"harvester.virtualMachine.cpuPinning.tooltip","label-key":"harvester.virtualMachine.cpuPinning.label",mode:e.mode},null,8,["value","disabled","mode"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(B,{value:e.installUSBTablet,"onUpdate:value":t[20]||(t[20]=t=>e.installUSBTablet=t),class:"check mt-20",type:"checkbox","tooltip-key":"harvester.virtualMachine.usbTip","label-key":"harvester.virtualMachine.enableUsb",mode:e.mode},null,8,["value","mode"]),(0,o.createVNode)(B,{value:e.installAgent,"onUpdate:value":[t[21]||(t[21]=t=>e.installAgent=t),e.updateAgent],class:"check",type:"checkbox",disabled:e.isWindows,"label-key":"harvester.virtualMachine.installAgent",mode:e.mode},null,8,["value","disabled","mode","onUpdate:value"]),(0,o.createVNode)(B,{value:e.tpmEnabled,"onUpdate:value":t[22]||(t[22]=t=>e.tpmEnabled=t),class:"check",type:"checkbox","label-key":"harvester.virtualMachine.advancedOptions.tpm",mode:e.mode},null,8,["value","mode"]),a.value.tpmPersistentStateFeatureEnabled&&e.tpmEnabled?((0,o.openBlock)(),(0,o.createBlock)(B,{key:2,value:e.tpmPersistentStateEnabled,"onUpdate:value":t[23]||(t[23]=t=>e.tpmPersistentStateEnabled=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.advancedOptions.tpmPersistentState"),mode:e.mode},null,8,["value","label","mode"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(B,{value:e.efiEnabled,"onUpdate:value":t[24]||(t[24]=t=>e.efiEnabled=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.advancedOptions.efiEnabled"),mode:e.mode},null,8,["value","label","mode"]),a.value.efiPersistentStateFeatureEnabled&&e.efiEnabled?((0,o.openBlock)(),(0,o.createBlock)(B,{key:3,value:e.efiPersistentStateEnabled,"onUpdate:value":t[25]||(t[25]=t=>e.efiPersistentStateEnabled=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.advancedOptions.efiPersistentState"),mode:e.mode},null,8,["value","label","mode"])):(0,o.createCommentVNode)("",!0),e.efiEnabled?((0,o.openBlock)(),(0,o.createBlock)(B,{key:4,value:e.secureBoot,"onUpdate:value":t[26]||(t[26]=t=>e.secureBoot=t),class:"check",type:"checkbox",label:e.t("harvester.virtualMachine.advancedOptions.secureBoot"),mode:e.mode},null,8,["value","label","mode"])):(0,o.createCommentVNode)("",!0),C.showCpuPinningBanner?((0,o.openBlock)(),(0,o.createBlock)(J,{key:5,color:"warning"},{default:(0,o.withCtx)((()=>["create"===e.mode?((0,o.openBlock)(),(0,o.createBlock)(j,{key:0,to:C.to,"prefix-label":"harvester.virtualMachine.advancedOptions.cpuManager.prefix","middle-label":"harvester.virtualMachine.advancedOptions.cpuManager.middle","suffix-label":"harvester.virtualMachine.advancedOptions.cpuManager.suffix"},null,8,["to"])):(0,o.createCommentVNode)("",!0),"edit"===e.mode?((0,o.openBlock)(),(0,o.createElementBlock)("span",y,(0,o.toDisplayString)(e.t("harvester.virtualMachine.cpuPinning.restartVMMessage")),1)):(0,o.createCommentVNode)("",!0)])),_:1})):(0,o.createCommentVNode)("",!0)])),_:1},8,["label"])])),_:1},8,["onChanged"]),V.isOpen?((0,o.openBlock)(),(0,o.createBlock)(z,{key:3,ref:"restartDialog",vm:a.value},null,8,["vm"])):(0,o.createCommentVNode)("",!0)])),_:1},8,["done-route","resource","mode","validation-passed","can-yaml","errors","generate-yaml","apply-hooks","onFinish","onCancel"])):(0,o.createCommentVNode)("",!0)}var V=a(45250),C=a(65359),w=a(59808),E=a(49584),S=a(42200),B=a(99960),A=a(10196),x=a(79380),D=a(77988),M=a(32786),U=a(77290),T=a(7365),_=a(41077),R=a(19413),$=a(92200),O=a(10707),I=a(25088),L=a(68851),P=a(76978),q=a(37648),F=a(99726),G=a(2602),H=a(8135),j=a(91825),J=a(66490),K=a(48249),z=a(32766),Y=a(80296),W=a(7060),Z=a(60068),Q=a(81559),X=a(75403),ee=a(8746),te=a(95191),ae=a(59026),oe=a(5257),re=a(9980),se=a(96413),le={name:"HarvesterEditVM",emits:["update:value"],components:{Tab:E.A,Tabbed:w.A,Checkbox:S.S,RadioGroup:A.z,CruResource:B.A,LabeledInput:x.o,LabeledSelect:D.A,NameNsDescription:M.A,Volume:te["default"],SSHKey:ae["default"],Network:ee["default"],CpuMemory:X["default"],CloudConfig:Q["default"],NodeScheduling:_.A,PodAffinity:R.A,AccessCredentials:Z["default"],Reserved:oe["default"],Labels:T.A,PciDevices:W["default"],RestartVMDialog:Y["default"],UnitInput:U.A,VGpuDevices:$["default"],KeyValue:I.A,Banner:re.l,MessageLink:se.A,UsbDevices:O["default"]},mixins:[j.A,K.Ay],inheritAttrs:!1,props:{value:{type:Object,required:!0}},data(){const e=(0,P.o8)(this.value),t="Running"===this.value.actualState,a=this.value.spec.template.spec.hostname||"";return{cloneVM:e,count:2,templateId:"",templateVersionId:"",namePrefix:"",isSingle:!0,useTemplate:!1,isOpen:!1,hostname:a,isRestartImmediately:t}},computed:{...(0,C.L8)({t:"i18n/t"}),to(){return{name:"harvester-c-cluster-resource",params:{cluster:this.$store.getters["clusterId"],resource:z.rk.HOST}}},machineTypeOptions(){return[{label:"None",value:""},{label:"q35",value:"q35"}]},templateOptions(){return this.templates.map((e=>{const t=this.hasAvailableVersion(e.id);return{label:e.id,value:e.id,disabled:!t}}))},versionOptions(){const e=this.curTemplateResource?.defaultVersion;return this.versions.filter((e=>e.templateId===this.templateId)).map((t=>{const a=t.version,o=e===a?`${a} (${this.t("generic.default")})`:a,r=t.id;return{label:o,value:r,disabled:!t.isReady}}))},curTemplateResource(){return this.templates.find((e=>e.id===this.templateId))},nameLabel(){return this.isSingle?"harvester.virtualMachine.instance.single.nameLabel":"harvester.virtualMachine.instance.multiple.nameLabel"},hostnameLabel(){return this.isSingle?"harvester.virtualMachine.instance.single.host.label":"harvester.virtualMachine.instance.multiple.host.label"},hostPlaceholder(){return this.isSingle?this.t("harvester.virtualMachine.instance.single.host.placeholder"):this.t("harvester.virtualMachine.instance.multiple.host.placeholder")},secretNamePrefix(){return this.value?.metadata?.name},isQemuInstalled(){return this.value.isQemuInstalled},hasRestartAction(){return this.value.hasAction("restart")},hasStartAction(){return this.value.hasAction("start")},enableCpuPinningCheckbox(){return"create"!==this.mode||this.nodes.some((e=>e.isCPUManagerEnabled))},isValidationPassed(){const e=this.diskRows.some((e=>!0===e.hasDiskError));return!e},showCpuPinningBanner(){return!!this.value.cpuPinningFeatureEnabled&&("edit"===this.mode?this.cpuPinning!==!!this.cloneVM.spec.template.spec.domain.cpu.dedicatedCpuPlacement:"create"===this.mode&&this.nodes.every((e=>!e.isCPUManagerEnabled)))}},watch:{templateId:{async handler(e,t){if(e&&e!==t&&!this.templateVersionId){const t=await this.$store.dispatch("harvester/findAll",{type:z.rk.VM_TEMPLATE});this.templateVersionId=t.find((t=>t.id===e))?.spec?.defaultVersionId}},immediate:!1},templateVersionId:{async handler(e){if(!e)return;const t=await this.$store.dispatch("harvester/findAll",{type:z.rk.VM_VERSION}),a=t.find((t=>t.id===e)),o=(0,P.o8)(a.spec.vm);delete o.spec?.template?.spec?.accessCredentials,delete o.spec?.template?.metadata?.annotations?.[G.r.DYNAMIC_SSHKEYS_NAMES],delete o.spec?.template?.metadata?.annotations?.[G.r.DYNAMIC_SSHKEYS_USERS];const r=(0,J.v)(o),s=r.map((e=>(e?.spec?.dataSource&&delete e.spec.dataSource,e)));o.metadata.annotations[G.r.VOLUME_CLAIM_TEMPLATE]=JSON.stringify(s),this.getInitConfig({value:o,existUserData:!0,fromTemplate:!0}),this["hasCreateVolumes"]=[]}},useTemplate(e){!1===e&&(this.templateId="",this.templateVersionId="",this.value.applyDefaults(),this.getInitConfig({value:this.value,init:this.isCreate}))}},created(){this.registerAfterHook((async()=>{await this.restartVM();const e=`${this.value.metadata.namespace}/${this.value.metadata.name}`,t=this.$store.getters["harvester/byId"](z.rk.VM,e);try{await this.saveSecret(t),await this.saveAccessCredentials(t)}catch(a){this.errors.push(...(0,F.rz)(a))}!this.errors.length&&this.isSingle&&this.done()})),this.registerBeforeHook&&this.registerBeforeHook(this.updateBeforeSave)},mounted(){this.imageId=this.$route.query?.image||this.imageId;const e=this.getDiskRows(this.value);this["diskRows"]=e;const t=this.$route.query.templateId,a=this.$route.query.versionId;t&&a&&(this.templateId=t,this.templateVersionId=a,this.useTemplate=!0)},methods:{cancelAction(){const{fromPage:e=z.rk.VM}=this.$route?.query,t={name:this.doneRoute,params:{resource:e}};this.$router.replace(t)},saveVM(e){(0,L.IU)(this.errors),this.isSingle?this.saveSingle(e):this.saveMultiple(e)},async saveSingle(e){this.parseVM(),this.value.spec.template.spec.hostname=this.hostname?this.hostname:this.value.metadata.name,await this._save(this.value,e),this.errors.length?e(!1):e(!0)},async saveMultiple(e){this.namePrefix=this.value.metadata.name||"";const t=this.namePrefix.endsWith("-")?"":"-",a=this.hostname?this.hostname:this.namePrefix;if(this.count<1)return this.errors=[this.t("harvester.virtualMachine.instance.multiple.countTip")],void e(!1);if(!this.value.metadata.name)return this.errors.push(this.t("validation.required",{key:this.t("generic.name")},!0)),void e(!1);const o=(0,P.o8)(this.value),r=(0,P.o8)(this.spec);for(let s=1;s<=this.count;s++){this.value["spec"]=o.spec,this["spec"]=r;const l=s<10?`0${s}`:s;this.value.cleanForNew(),this.value.metadata.name=`${this.namePrefix}${t}${l}`,this.value.spec.template.spec["hostname"]=`${a}${t}${l}`,this.secretName="",await this.parseVM();const n=await this.$store.dispatch("harvester/clone",{resource:this.value});await this._save(n,e),s!==this.count||this.errors.length?s===this.count&&(this.value.metadata.name=this.namePrefix,e(!1)):(e(!0),this.done())}},async _save(e,t){try{await this.applyHooks(H.Fm),await e.save(),await this.applyHooks(H.Mz)}catch(a){this.errors.push(...(0,F.rz)(a)),t(!1)}},restartVM(){if("edit"!==this.mode)return;if(!this.value.isRunning)return;const e=(0,P.o8)(this.value);delete e?.metadata,delete this.cloneVM?.metadata,delete this.cloneVM?.__clone;const t=JSON.parse(JSON.stringify(this.cloneVM)),a=JSON.parse(JSON.stringify(e));return(0,V.isEqual)(t,a)?void 0:new Promise((e=>{this.isOpen=!0,this.$nextTick((()=>{this.$refs.restartDialog.resolve=e}))}))},updateBeforeSave(){this.isSingle&&(this.value.spec.template.spec.hostname||(this.value.spec.template.spec["hostname"]=this.value.metadata.name));const e=this.getAccessCredentialsValidation();return e.length>0?Promise.reject(e):Promise.resolve()},validateCount(e){e>10&&(this["count"]=10)},updateTemplateId(){this.templateVersionId=""},onTabChanged({tab:e}){"advanced"===e.name&&this.$refs.yamlEditor?.refresh()},hasAvailableVersion(e){let t=!1;return this.versions.filter((t=>t.templateId===e)).find((e=>{e.isReady&&(t=!0)})),t},generateYaml(){this.parseVM();const e=(0,q.Kq)(this.value);return e}}},ne=(a(13209),a(47433));const ie=(0,ne.A)(le,[["render",N],["__scopeId","data-v-118c4d85"]]);var de=ie},89625:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return N}});var o=a(9274);const r={key:0},s={key:0,class:"pool-project"},l={class:"pool-namespace"},n={key:1,class:"pool-guestCluster"},i={key:2,class:"remove"},d={key:1,class:"footer"};function c(e,t,a,c,u,p){const m=(0,o.resolveComponent)("t"),v=(0,o.resolveComponent)("PriorityRow");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("h3",null,(0,o.toDisplayString)(e.t("harvester.ipPool.scope.label")),1),u.rows.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(["pool-headers",{"show-project-and-cluster":p.showProjectAndCluster}])},[p.showProjectAndCluster?((0,o.openBlock)(),(0,o.createElementBlock)("span",s,[(0,o.createVNode)(m,{k:"harvester.ipPool.project.label"})])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("span",l,[(0,o.createVNode)(m,{k:"harvester.ipPool.namespace.label"})]),p.showProjectAndCluster?((0,o.openBlock)(),(0,o.createElementBlock)("span",n,[(0,o.createVNode)(m,{k:"harvester.ipPool.guestCluster.label"})])):(0,o.createCommentVNode)("",!0),p.showRemove?((0,o.openBlock)(),(0,o.createElementBlock)("span",i)):(0,o.createCommentVNode)("",!0)],2),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(u.rows,((t,r)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:r},[(0,o.createVNode)(v,{row:t,mode:a.mode,rows:u.rows,idx:r,"onUpdate:value":e.queueUpdate,onRemove:e=>p.remove(r)},null,8,["row","mode","rows","idx","onUpdate:value","onRemove"])])))),128))])):(0,o.createCommentVNode)("",!0),p.showAdd?((0,o.openBlock)(),(0,o.createElementBlock)("div",d,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-tertiary add",onClick:t[0]||(t[0]=e=>p.add())},[(0,o.createVNode)(m,{k:"harvester.ipPool.scope.addLabel"})])])):(0,o.createCommentVNode)("",!0)])}var u=a(12784),p=a.n(u),m=a(14220),v=a(68851),h=a(76978),b=a(65359),g=a(1214),f={emits:["update:value"],components:{PriorityRow:g["default"]},props:{value:{type:Array,default:null},mode:{type:String,default:m.G5},autoAddIfEmpty:{type:Boolean,default:!0}},data(){const e=(0,h.o8)(this.value||[]);return{rows:e}},computed:{...(0,b.L8)(["isRancherInHarvester","isStandaloneHarvester"]),isView(){return this.mode===m.nW},showAdd(){return!this.isView},showRemove(){return!this.isView},showProjectAndCluster(){return!this.isStandaloneHarvester}},created(){this.queueUpdate=p()(this.update,500)},methods:{add(){const e={namespace:"*"};this.showProjectAndCluster?this.rows.push({...e,project:"*",guestCluster:"*"}):this.rows.push(e),this.queueUpdate()},remove(e){(0,v.Wq)(this.rows,e),this.queueUpdate()},update(){this.isView||this.$emit("update:value",this.rows)}}},k=(a(30347),a(47433));const y=(0,k.A)(f,[["render",c],["__scopeId","data-v-3ca2ec55"]]);var N=y},1214:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return y}});var o=a(9274);const r={key:0,class:"pool-project"},s={key:0},l={class:"pool-namespace"},n={key:0},i={key:1,class:"pool-guestCluster"},d={key:0},c={key:2,class:"remove"};function u(e,t,a,u,p,m){const v=(0,o.resolveComponent)("Select"),h=(0,o.resolveComponent)("t");return(0,o.openBlock)(),(0,o.createElementBlock)("div",{class:(0,o.normalizeClass)(["pool-row",{"show-project-and-cluster":m.showProjectAndCluster}])},[m.showProjectAndCluster?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[m.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",s,(0,o.toDisplayString)(a.row.project),1)):((0,o.openBlock)(),(0,o.createBlock)(v,{key:1,value:a.row.project,"onUpdate:value":[t[0]||(t[0]=e=>a.row.project=e),m.update],options:m.projectOptions},null,8,["value","options","onUpdate:value"]))])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",l,[m.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",n,(0,o.toDisplayString)(a.row.namespace),1)):((0,o.openBlock)(),(0,o.createBlock)(v,{key:1,value:a.row.namespace,"onUpdate:value":[t[1]||(t[1]=e=>a.row.namespace=e),m.update],options:m.namespaceOptions},null,8,["value","options","onUpdate:value"]))]),m.showProjectAndCluster?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[m.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",d,(0,o.toDisplayString)(a.row.guestCluster),1)):((0,o.openBlock)(),(0,o.createBlock)(v,{key:1,value:a.row.guestCluster,"onUpdate:value":[t[2]||(t[2]=e=>a.row.guestCluster=e),m.update],options:m.guestClusterOptions},null,8,["value","options","onUpdate:value"]))])):(0,o.createCommentVNode)("",!0),m.showRemove?((0,o.openBlock)(),(0,o.createElementBlock)("div",c,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-link",onClick:t[3]||(t[3]=e=>m.remove(a.idx))},[(0,o.createVNode)(h,{k:"generic.remove"})])])):(0,o.createCommentVNode)("",!0)],2)}var p=a(14220),m=a(18918),v=a(35664),h=a(65359),b=a(32766),g={emits:["update:value","remove"],components:{Select:m.A},props:{row:{type:Object,default:()=>({})},mode:{type:String,default:p.G5},rows:{type:Array,default:()=>[]},idx:{type:Number,required:!0}},data(){return{value:""}},computed:{...(0,h.L8)(["allNamespaces","currentCluster","isRancherInHarvester","isStandaloneHarvester"]),showProjectAndCluster(){return!this.isStandaloneHarvester},isView(){return this.mode===p.nW},showRemove(){return!this.isView},filteredNamespaces(){const e=this.allNamespaces||[];return e.filter((e=>"*"===this.row.project||(!this.row.project||e.project?.id===this.row.project)))},namespaceOptions(){const e=(this.filteredNamespaces||[]).map((e=>({label:e.metadata.name,value:e.id})));return[{label:this.t("generic.all"),value:"*"},...e]},guestClusterOptions(){const e=this.$store.getters["management/all"](v.qt.RANCHER_CLUSTER),t=this.$store.getters["management/all"](b.rk.HARVESTER_CONFIG),a=this.rows.map((e=>e?.guestCluster)),o=this.filteredNamespaces.map((e=>e.id)),r=e.filter((e=>{const r=e.spec?.rkeConfig?.machinePools||[],s=r[0]?.machineConfigRef?.name,l=t.find((e=>e.id===`fleet-default/${s}`));if(l){const t=l?.vmNamespace;return!("*"!==this.row.namespace||!o.includes(t))||t===this.row.namespace&&!a.includes(e.id)}return!1})).map((e=>({label:e.nameDisplay,value:e.metadata.name})));return[{label:this.t("generic.none"),value:""},{label:this.t("generic.all"),value:"*"},...r]},projectOptions(){const e=this.$store.getters["management/all"](v.Mc.PROJECT),t=e.filter((e=>e.metadata.namespace===this.currentCluster.id)).map((e=>({label:e.nameDisplay,value:e.id})));return[{label:this.t("generic.none"),value:""},{label:this.t("generic.all"),value:"*"},...t]}},methods:{update(){const{namespace:e,project:t,guestCluster:a}=this.row;this.$emit("update:value",{namespace:e,project:t,guestCluster:a})},remove(){this.$emit("remove")}},watch:{"row.project"(){"*"!==this.row.namespace&&(this.row.namespace=""),"*"===this.row.guestCluster&&""===this.row.guestCluster||(this.row.guestCluster="")},"row.namespace"(){"*"!==this.row.guestCluster&&(this.row.guestCluster="")}}},f=(a(59688),a(47433));const k=(0,f.A)(g,[["render",u],["__scopeId","data-v-6c39bd05"]]);var y=k},52728:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return T}});var o=a(9274);const r={key:0},s={class:"pool-subnet"},l={class:"pool-gateway"},n={key:0,class:"pool-startIP"},i={key:1,class:"pool-endIP"},d={key:2,class:"remove"},c={class:"pool-subnet"},u={key:0},p=["onUpdate:modelValue"],m={class:"pool-gateway"},v={key:0},h=["onUpdate:modelValue"],b={key:0,class:"pool-startIP"},g={key:0},f=["onUpdate:modelValue"],k={key:1,class:"pool-endIP"},y={key:0},N=["onUpdate:modelValue"],V={key:2,class:"remove"},C=["onClick"],w={key:1,class:"footer"};function E(e,t,a,E,S,B){const A=(0,o.resolveComponent)("t");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[S.rows.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(S.rows,((a,r)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:r},[(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(["pool-headers",{[a.type]:!0}])},[(0,o.createElementVNode)("span",s,[(0,o.createVNode)(A,{k:"harvester.ipPool.subnet.label"}),t[6]||(t[6]=(0,o.createElementVNode)("span",{class:"text-error"}," * ",-1))]),(0,o.createElementVNode)("span",l,[(0,o.createVNode)(A,{k:"harvester.ipPool.gateway.label"})]),"range"===a.type?((0,o.openBlock)(),(0,o.createElementBlock)("span",n,[(0,o.createVNode)(A,{k:"harvester.ipPool.startIP.label"})])):(0,o.createCommentVNode)("",!0),"range"===a.type?((0,o.openBlock)(),(0,o.createElementBlock)("span",i,[(0,o.createVNode)(A,{k:"harvester.ipPool.endIP.label"})])):(0,o.createCommentVNode)("",!0),B.showRemove?((0,o.openBlock)(),(0,o.createElementBlock)("span",d)):(0,o.createCommentVNode)("",!0)],2),(0,o.createElementVNode)("div",{class:(0,o.normalizeClass)(["pool-row",{[a.type]:!0}])},[(0,o.createElementVNode)("div",c,[B.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",u,(0,o.toDisplayString)(a.subnet),1)):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":e=>a.subnet=e,type:"text",onInput:t[0]||(t[0]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},null,40,p)),[[o.vModelText,a.subnet]])]),(0,o.createElementVNode)("div",m,[B.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",v,(0,o.toDisplayString)(a.gateway),1)):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":e=>a.gateway=e,type:"text",onInput:t[1]||(t[1]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},null,40,h)),[[o.vModelText,a.gateway]])]),"range"===a.type?((0,o.openBlock)(),(0,o.createElementBlock)("div",b,[B.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",g,(0,o.toDisplayString)(a.rangeStart),1)):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":e=>a.rangeStart=e,type:"text",onInput:t[2]||(t[2]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},null,40,f)),[[o.vModelText,a.rangeStart]])])):(0,o.createCommentVNode)("",!0),"range"===a.type?((0,o.openBlock)(),(0,o.createElementBlock)("div",k,[B.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",y,(0,o.toDisplayString)(a.rangeEnd),1)):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":e=>a.rangeEnd=e,type:"text",onInput:t[3]||(t[3]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},null,40,N)),[[o.vModelText,a.rangeEnd]])])):(0,o.createCommentVNode)("",!0),B.showRemove?((0,o.openBlock)(),(0,o.createElementBlock)("div",V,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-link",onClick:e=>B.remove(r)},[(0,o.createVNode)(A,{k:"generic.remove"})],8,C)])):(0,o.createCommentVNode)("",!0)],2)])))),128))])):(0,o.createCommentVNode)("",!0),B.showAdd?((0,o.openBlock)(),(0,o.createElementBlock)("div",w,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-tertiary add",onClick:t[4]||(t[4]=e=>B.addCIDR())},[(0,o.createVNode)(A,{k:"harvester.ipPool.cidr.addLabel"})]),(0,o.createElementVNode)("button",{type:"button",class:"btn role-tertiary add",onClick:t[5]||(t[5]=e=>B.addRange())},[(0,o.createVNode)(A,{k:"harvester.ipPool.range.addLabel"})])])):(0,o.createCommentVNode)("",!0)])}var S=a(12784),B=a.n(S),A=a(14220),x=a(68851),D={emits:["update:value"],props:{value:{type:Array,default:null},mode:{type:String,default:A.G5},specType:{type:String,default:"ClusterIP"},autoAddIfEmpty:{type:Boolean,default:!0}},data(){const e=(this.value||[]).map((e=>{let t="cidr";return e.rangeStart&&e.rangeEnd&&(t="range"),{...e,type:t}}));return{rows:e}},computed:{isView(){return this.mode===A.nW},showAdd(){return!this.isView},showRemove(){return!this.isView}},created(){this.queueUpdate=B()(this.update,500)},methods:{addCIDR(){this.rows.push({subnet:"",gateway:"",type:"cidr"}),this.queueUpdate()},addRange(){this.rows.push({subnet:"",gateway:"",rangeStart:"",rangeEnd:"",type:"range"}),this.queueUpdate()},remove(e){(0,x.Wq)(this.rows,e),this.queueUpdate()},update(){this.isView||this.$emit("update:value",this.rows)}}},M=(a(90839),a(47433));const U=(0,M.A)(D,[["render",E],["__scopeId","data-v-070c8736"]]);var T=U},10788:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const r={class:"row mb-20"},s={class:"col span-6"},l={class:"col span-6"};function n(e,t,a,n,i,d){const c=(0,o.resolveComponent)("LabeledSelect"),u=(0,o.resolveComponent)("LabeledInput"),p=(0,o.resolveComponent)("Priority");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(c,{value:i.selector.network,"onUpdate:value":[t[0]||(t[0]=e=>i.selector.network=e),e.queueUpdate],label:e.t("harvester.ipPool.network.label"),options:d.networkOptions,mode:a.mode},null,8,["value","label","options","mode","onUpdate:value"])]),(0,o.createElementVNode)("div",l,[(0,o.createVNode)(u,{value:i.selector.priority,"onUpdate:value":[t[1]||(t[1]=e=>i.selector.priority=e),d.update],valueModifiers:{number:!0},label:e.t("harvester.ipPool.priority.label"),mode:a.mode,type:"number",min:"0"},null,8,["value","label","mode","onUpdate:value"])])]),(0,o.createVNode)(p,{value:i.selector.scope,"onUpdate:value":[t[2]||(t[2]=e=>i.selector.scope=e),d.update],class:"col span-12",mode:a.mode},null,8,["value","mode","onUpdate:value"])])}var i=a(12784),d=a.n(i),c=a(77988),u=a(79380),p=a(35664),m=a(14220),v=a(89625),h={emits:["update:value"],components:{LabeledSelect:c.A,LabeledInput:u.o,Priority:v["default"]},props:{value:{type:Object,default:()=>({})},mode:{type:String,default:m.G5}},data(){const e=this.value||{network:"",priority:0,scope:[]};return{selector:e}},computed:{networkOptions(){const e=this.$store.getters["harvester/all"](p.XG)||[];return[{label:this.t("generic.none"),value:""},...e.map((e=>({label:e.id,value:e.id})))]}},created(){this.queueUpdate=d()(this.update,500)},methods:{update(){this.isView||this.$emit("update:value",this.selector)}}},b=a(47433);const g=(0,b.A)(h,[["render",n]]);var f=g},59405:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("NameNsDescription"),i=(0,o.resolveComponent)("Range"),d=(0,o.resolveComponent)("Tab"),c=(0,o.resolveComponent)("Selector"),u=(0,o.resolveComponent)("ResourceTabs"),p=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(p,{"done-route":e.doneRoute,resource:e.value,mode:e.mode,errors:s.errors,"apply-hooks":e.applyHooks,"yaml-modifiers":l.yamlModifiers,onFinish:e.save},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(n,{value:e.value,namespaced:!1,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(u,{class:"mt-15","need-conditions":!1,"need-related":!1,"side-tabs":!0,mode:e.mode},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{name:"range",label:e.t("harvester.ipPool.tabs.range"),weight:98,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{value:e.value.spec.ranges,"onUpdate:value":t[1]||(t[1]=t=>e.value.spec.ranges=t),class:"col span-12",mode:e.mode},null,8,["value","mode"])])),_:1},8,["label"]),(0,o.createVNode)(d,{name:"selector",label:e.t("harvester.ipPool.tabs.selector"),weight:97,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(c,{value:e.value.spec.selector,"onUpdate:value":t[2]||(t[2]=t=>e.value.spec.selector=t),mode:e.mode},null,8,["value","mode"])])),_:1},8,["label"])])),_:1},8,["mode"])])),_:1},8,["done-route","resource","mode","errors","apply-hooks","yaml-modifiers","onFinish"])}var s=a(32786),l=a(72551),n=a(49584),i=a(91825),d=a(35664),c=a(88339),u=a(99960),p=a(32766),m=a(52728),v=a(10788),h={name:"HarvesterIPPool",emits:["update:value"],components:{NameNsDescription:s.A,ResourceTabs:l.A,Tab:n.A,CruResource:u.A,Range:m["default"],Selector:v["default"]},mixins:[i.A],inheritAttrs:!1,async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={networks:this.$store.dispatch(`${e}/findAll`,{type:d.XG}),settings:this.$store.dispatch(`${e}/findAll`,{type:p.rk.SETTING})};this.$store.getters["management/schemaFor"](p.rk.HARVESTER_CONFIG)&&(t.harvesterConfigs=this.$store.dispatch("management/findAll",{type:p.rk.HARVESTER_CONFIG})),this.$store.getters["management/schemaFor"](d.qt.RANCHER_CLUSTER)&&(t.rancherClusters=this.$store.dispatch("management/findAll",{type:d.qt.RANCHER_CLUSTER})),await(0,c.kR)(t)},data(){return{errors:[]}},computed:{yamlModifiers(){const e=["metadata.managedFields","metadata.relationships","metadata.state","links","type","id"];return this.isCreate&&e.push("status"),{activelyRemove:e}}}},b=a(47433);const g=(0,b.A)(h,[["render",r]]);var f=g},68201:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return V}});var o=a(9274);const r={class:"row"},s={class:"col span-6"},l={key:0},n={class:"row mt-10"},i={key:0,class:"col span-6"},d={class:"col span-6"},c={class:"row mt-10"},u={class:"col span-6"},p={class:"col span-6"},m={class:"row mt-10"},v={class:"col span-6"};function h(e,t,a,h,b,g){const f=(0,o.resolveComponent)("RadioGroup"),k=(0,o.resolveComponent)("LabeledSelect"),y=(0,o.resolveComponent)("LabeledInput");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(f,{value:b.healthCheckEnabled,"onUpdate:value":t[0]||(t[0]=e=>b.healthCheckEnabled=e),mode:a.mode,name:"healthCheckEnabled",labels:[e.t("generic.disabled"),e.t("generic.enabled")],options:[!1,!0],disabled:a.disabled,onInput:g.onToggle},null,8,["value","mode","labels","disabled","onInput"])])]),b.healthCheckEnabled?((0,o.openBlock)(),(0,o.createElementBlock)("div",l,[(0,o.createElementVNode)("div",n,[b.healthCheckEnabled?((0,o.openBlock)(),(0,o.createElementBlock)("div",i,[(0,o.createVNode)(k,{value:a.value.port,"onUpdate:value":t[1]||(t[1]=e=>a.value.port=e),mode:a.mode,options:g.portOptions,required:"",label:e.t("harvester.service.healthCheckPort.label"),disabled:a.disabled},null,8,["value","mode","options","label","disabled"])])):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",d,[(0,o.createVNode)(y,{value:a.value.successThreshold,"onUpdate:value":t[2]||(t[2]=e=>a.value.successThreshold=e),valueModifiers:{number:!0},mode:a.mode,type:"number",label:e.t("harvester.service.healthCheckSuccessThreshold.label"),tooltip:e.t("harvester.service.healthCheckSuccessThreshold.description"),disabled:a.disabled},null,8,["value","mode","label","tooltip","disabled"])])]),(0,o.createElementVNode)("div",c,[(0,o.createElementVNode)("div",u,[(0,o.createVNode)(y,{value:a.value.failureThreshold,"onUpdate:value":t[3]||(t[3]=e=>a.value.failureThreshold=e),valueModifiers:{number:!0},mode:a.mode,type:"number",label:e.t("harvester.service.healthCheckFailureThreshold.label"),tooltip:e.t("harvester.service.healthCheckFailureThreshold.description"),disabled:a.disabled},null,8,["value","mode","label","tooltip","disabled"])]),(0,o.createElementVNode)("div",p,[(0,o.createVNode)(y,{value:a.value.periodSeconds,"onUpdate:value":t[4]||(t[4]=e=>a.value.periodSeconds=e),valueModifiers:{number:!0},mode:a.mode,type:"number",label:e.t("harvester.service.healthCheckPeriod.label"),disabled:a.disabled},null,8,["value","mode","label","disabled"])])]),(0,o.createElementVNode)("div",m,[(0,o.createElementVNode)("div",v,[(0,o.createVNode)(y,{value:a.value.timeoutSeconds,"onUpdate:value":t[5]||(t[5]=e=>a.value.timeoutSeconds=e),valueModifiers:{number:!0},mode:a.mode,type:"number",label:e.t("harvester.service.healthCheckTimeout.label"),disabled:a.disabled},null,8,["value","mode","label","disabled"])])])])):(0,o.createCommentVNode)("",!0)])}var b=a(79380),g=a(77988),f=a(55834),k={emits:["enabled"],components:{LabeledInput:b.o,LabeledSelect:g.A,RadioGroup:f.A},props:{value:{type:Object,required:!0},model:{type:Object,required:!0},mode:{type:String,default:"create"},disabled:{type:Boolean,default:!1}},data(){return{healthCheckEnabled:!!this.value.port}},computed:{portOptions(){const e=this.model?.spec?.listeners||[];return e.filter((e=>e.port&&"TCP"===e.protocol)).map((e=>e.backendPort))||[]}},methods:{onToggle(e){this.$emit("enabled",e)}}},y=a(47433);const N=(0,y.A)(k,[["render",h]]);var V=N},67347:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return R}});var o=a(9274);const r={key:0},s={class:"listener-headers"},l={class:"listener-name"},n={class:"listener-protocol"},i={class:"listener-port"},d={class:"listener-backendPort"},c={key:0,class:"remove"},u={class:"port-name"},p={key:0},m=["onUpdate:modelValue","placeholder"],v={class:"port-protocol"},h={key:0},b={class:"port"},g={key:0},f=["onUpdate:modelValue","placeholder"],k={class:"target-port"},y={key:0},N=["onUpdate:modelValue","placeholder"],V={key:0,class:"remove"},C=["onClick"],w={key:1,class:"footer"};function E(e,t,a,E,S,B){const A=(0,o.resolveComponent)("t"),x=(0,o.resolveComponent)("Select");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[S.rows.length?((0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createElementVNode)("span",l,[(0,o.createVNode)(A,{k:"harvester.loadBalancer.listeners.name.label"})]),(0,o.createElementVNode)("span",n,[(0,o.createVNode)(A,{k:"harvester.loadBalancer.listeners.protocol.label"})]),(0,o.createElementVNode)("span",i,[(0,o.createVNode)(A,{k:"harvester.loadBalancer.listeners.port.label"}),t[4]||(t[4]=(0,o.createElementVNode)("span",{class:"text-error"}," * ",-1))]),(0,o.createElementVNode)("span",d,[(0,o.createVNode)(A,{k:"harvester.loadBalancer.listeners.backendPort.label"}),t[5]||(t[5]=(0,o.createElementVNode)("span",{class:"text-error"}," * ",-1))]),B.showRemove?((0,o.openBlock)(),(0,o.createElementBlock)("span",c)):(0,o.createCommentVNode)("",!0)]),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(S.rows,((a,r)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:r,class:"listener-row"},[(0,o.createElementVNode)("div",u,[B.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",p,(0,o.toDisplayString)(a.name),1)):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,ref_for:!0,ref:"port-name","onUpdate:modelValue":e=>a.name=e,type:"text",placeholder:e.t("servicePorts.rules.name.placeholder"),onInput:t[0]||(t[0]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},null,40,m)),[[o.vModelText,a.name,void 0,{number:!0}]])]),(0,o.createElementVNode)("div",v,[B.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",h,(0,o.toDisplayString)(a.protocol),1)):((0,o.openBlock)(),(0,o.createBlock)(x,{key:1,value:a.protocol,"onUpdate:value":e=>a.protocol=e,options:B.protocolOptions,onInput:e.queueUpdate},null,8,["value","onUpdate:value","options","onInput"]))]),(0,o.createElementVNode)("div",b,[B.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",g,(0,o.toDisplayString)(a.port),1)):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,ref_for:!0,ref:"port","onUpdate:modelValue":e=>a.port=e,type:"number",min:"1",max:"65535",placeholder:e.t("servicePorts.rules.listening.placeholder"),onInput:t[1]||(t[1]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},null,40,f)),[[o.vModelText,a.port,void 0,{number:!0}]])]),(0,o.createElementVNode)("div",k,[B.isView?((0,o.openBlock)(),(0,o.createElementBlock)("span",y,(0,o.toDisplayString)(a.backendPort),1)):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("input",{key:1,"onUpdate:modelValue":e=>a.backendPort=e,type:"number",min:"1",max:"65535",placeholder:e.t("harvester.loadBalancer.listeners.backendPort.placeholder"),onInput:t[2]||(t[2]=(...t)=>e.queueUpdate&&e.queueUpdate(...t))},null,40,N)),[[o.vModelText,a.backendPort,void 0,{number:!0}]])]),B.showRemove?((0,o.openBlock)(),(0,o.createElementBlock)("div",V,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-link",onClick:e=>B.remove(r)},[(0,o.createVNode)(A,{k:"generic.remove"})],8,C)])):(0,o.createCommentVNode)("",!0)])))),128))])):(0,o.createCommentVNode)("",!0),B.showAdd?((0,o.openBlock)(),(0,o.createElementBlock)("div",w,[(0,o.createElementVNode)("button",{type:"button",class:"btn role-tertiary add",onClick:t[3]||(t[3]=e=>B.add())},[(0,o.createVNode)(A,{k:"generic.add"})])])):(0,o.createCommentVNode)("",!0)])}var S=a(12784),B=a.n(S),A=a(14220),x=a(68851),D=a(76978),M=a(18918),U={emits:["update:value"],components:{Select:M.A},props:{value:{type:Array,default:null},mode:{type:String,default:A.G5},autoAddIfEmpty:{type:Boolean,default:!0}},data(){const e=(0,D.o8)(this.value||[]);return{rows:e}},computed:{isView(){return this.mode===A.nW},showAdd(){return!this.isView},showRemove(){return!this.isView},protocolOptions(){return["TCP","UDP"]}},created(){this.queueUpdate=B()(this.update,500)},mounted(){this.isView||this.autoAddIfEmpty&&this.mode!==A.G5&&this?.rows.length<1&&this.add(!1)},methods:{add(e=!0){this.rows.push({name:"",port:null,protocol:"TCP",backendPort:null}),this.queueUpdate(),this.rows.length>0&&e&&this.$nextTick((()=>{const e=this.$refs["port-name"];e[e.length-1].focus()}))},remove(e){(0,x.Wq)(this.rows,e),this.queueUpdate()},update(){this.isView||this.$emit("update:value",this.rows)}}},T=(a(50004),a(47433));const _=(0,T.A)(U,[["render",E],["__scopeId","data-v-602acdc3"]]);var R=_},49464:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return D}});var o=a(9274);const r={class:"row"},s={class:"col span-6"},l={key:0,class:"col span-6"},n={class:"row"},i={class:"col span-12"};function d(e,t,a,d,c,u){const p=(0,o.resolveComponent)("NameNsDescription"),m=(0,o.resolveComponent)("LabeledSelect"),v=(0,o.resolveComponent)("Tab"),h=(0,o.resolveComponent)("Banner"),b=(0,o.resolveComponent)("Listeners"),g=(0,o.resolveComponent)("KeyValue"),f=(0,o.resolveComponent)("HealthCheck"),k=(0,o.resolveComponent)("ResourceTabs"),y=(0,o.resolveComponent)("CruResource"),N=(0,o.resolveDirective)("clean-html");return(0,o.openBlock)(),(0,o.createBlock)(y,{"done-route":e.doneRoute,resource:a.value,mode:e.mode,errors:e.errors,"apply-hooks":e.applyHooks,"yaml-modifiers":u.yamlModifiers,onFinish:e.save},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(p,{value:a.value,namespaced:!0,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(k,{class:"mt-15","need-conditions":!1,"need-related":!1,"side-tabs":!0,mode:e.mode},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(v,{name:"basic",label:e.t("harvester.loadBalancer.tabs.basic"),weight:99,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(m,{value:a.value.spec.ipam,"onUpdate:value":t[1]||(t[1]=e=>a.value.spec.ipam=e),label:e.t("harvester.loadBalancer.ipam.label"),options:u.ipamOption,mode:e.mode},null,8,["value","label","options","mode"])]),"pool"===a.value.spec.ipam?((0,o.openBlock)(),(0,o.createElementBlock)("div",l,[(0,o.createVNode)(m,{value:a.value.spec.ipPool,"onUpdate:value":[t[2]||(t[2]=e=>a.value.spec.ipPool=e),u.update],label:e.t("harvester.loadBalancer.ipPool.label"),options:u.ipPoolOptions,mode:e.mode},null,8,["value","label","options","mode","onUpdate:value"])])):(0,o.createCommentVNode)("",!0)])])),_:1},8,["label"]),"vm"===a.value.spec.workloadType?((0,o.openBlock)(),(0,o.createBlock)(v,{key:0,name:"listeners",label:e.t("harvester.loadBalancer.tabs.listeners"),weight:98,class:"bordered-table"},{default:(0,o.withCtx)((()=>[u.healthCheckPortInUseWarning?((0,o.openBlock)(),(0,o.createBlock)(h,{key:0,color:"warning"},{default:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("span",null,null,512),[[N,u.healthCheckPortInUseWarning]])])),_:1})):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(b,{value:a.value.spec.listeners,"onUpdate:value":t[3]||(t[3]=e=>a.value.spec.listeners=e),class:"col span-12",mode:e.mode},null,8,["value","mode"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),"vm"===a.value.spec.workloadType?((0,o.openBlock)(),(0,o.createBlock)(v,{key:1,name:"backendServer",label:e.t("harvester.loadBalancer.tabs.backendServer"),weight:97,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",n,[(0,o.createElementVNode)("div",i,[(0,o.createVNode)(h,{color:c.matchingVMs.none?"warning":"success"},{default:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("span",null,null,512),[[N,e.t("harvester.loadBalancer.backendServerSelector.matchingVMs.matchesSome",c.matchingVMs)]])])),_:1},8,["color"])])]),(0,o.createVNode)(g,{value:u.backendServerSelector,"onUpdate:value":t[4]||(t[4]=e=>u.backendServerSelector=e),mode:e.mode,"read-allowed":!1,"initial-empty-row":!0},null,8,["value","mode"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),"vm"===a.value.spec.workloadType?((0,o.openBlock)(),(0,o.createBlock)(v,{key:2,name:"healthCheck",label:e.t("harvester.loadBalancer.tabs.healthCheck"),weight:96,class:"bordered-table"},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(f,{value:a.value.spec.healthCheck,"onUpdate:value":t[5]||(t[5]=e=>a.value.spec.healthCheck=e),mode:e.mode,model:a.value,onEnabled:u.healthCheckEnabled},null,8,["value","mode","model","onEnabled"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0)])),_:1},8,["mode"])])),_:1},8,["done-route","resource","mode","errors","apply-hooks","yaml-modifiers","onFinish"])}var c=a(45250),u=a(32786),p=a(72551),m=a(77988),v=a(49584),h=a(99960),b=a(25088),g=a(56943),f=a(91825),k=a(35664),y=a(88339),N=a(38823),V=a(32766),C=a(67347),w=a(68201);const E="loadbalancer.harvesterhci.io/namespace",S="loadbalancer.harvesterhci.io/project";var B={name:"HarvesterLoadBalancer",emits:["update:value"],components:{NameNsDescription:u.A,ResourceTabs:p.A,LabeledSelect:m.A,Tab:v.A,Listeners:C["default"],HealthCheck:w["default"],CruResource:h.A,KeyValue:b.A,Banner:g.A},mixins:[f.A],inheritAttrs:!1,props:{value:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={ipPools:this.$store.dispatch(`${e}/findAll`,{type:V.rk.IP_POOL}),namespaces:this.$store.dispatch(`${e}/findAll`,{type:k.CU}),vms:this.$store.dispatch(`${e}/findAll`,{type:V.rk.VM})};this.$store.getters["management/schemaFor"](k.Mc.PROJECT)&&(t.projects=this.$store.dispatch("management/findAll",{type:k.Mc.PROJECT})),await(0,y.kR)(t),this.updateMatchingVMs()},data(){const e=this.value.metadata.annotations||[];this.value.spec.healthCheck||(this.value.spec.healthCheck={});const t={matched:0,matches:[],none:!0,sample:null,total:0};return{ipPool:this.value.spec.ipPool,projectSelector:e[S]||"",namespaceSelector:e[E]||"",matchingVMs:t}},computed:{ipamOption(){return[{label:this.t("harvester.loadBalancer.ipam.options.dhcp"),value:"dhcp"},{label:this.t("harvester.loadBalancer.ipam.options.pool"),value:"pool"}]},ipPoolOptions(){const e=this.$store.getters["harvester/all"](V.rk.IP_POOL),t=e.map((e=>e.id));return[{label:this.t("harvester.loadBalancer.ipPool.options.none"),value:""},...t]},projectOptions(){const e=this.$store.getters["harvester/all"](k.Mc.PROJECT);return e.map((e=>e.id))},namespaceOptions(){const e=this.$store.getters["harvester/all"](k.CU);return e.map((e=>e.id))},backendServerSelector:{get(){const e={};return Object.keys(this.value.spec?.backendServerSelector||{}).map((t=>{e[t]=(this.value.spec.backendServerSelector[t]||[]).join(",")||""})),e},set(e){const t={};Object.keys(e).map((a=>{t[a]=(e[a]||"").split(",")})),this.value.spec["backendServerSelector"]=t}},yamlModifiers(){const e=["metadata.managedFields","metadata.relationships","metadata.state","links","type","id"];return this.isCreate&&e.push("status"),{activelyRemove:e}},healthCheckPortInUseWarning(){const e=this.value?.spec?.healthCheck?.port,t=this.value?.spec?.listeners?.find((t=>t.backendPort===e));return e&&t?this.t("harvester.loadBalancer.healthCheck.warning.portInUse",{port:t.backendPort},!0):""}},methods:{update(){const{projectSelector:e,namespaceSelector:t}=this;e&&(this.value.metadata.annotations[S]=e),t&&(this.value.metadata.annotations[E]=t)},updateMatchingVMs:(0,c.throttle)((function(){const e=this.value.spec.backendServerSelector,t=this.$store.getters["harvester/all"](V.rk.VM).filter((e=>e.metadata.namespace===this.value.metadata.namespace));if((0,c.isEmpty)(e))this.matchingVMs={matched:0,total:t.length,none:!0,sample:null};else{const a=(0,N.wC)(t,e,"spec.template.metadata.labels");this.matchingVMs={matched:a.length,total:t.length,none:0===a.length,sample:a[0]?a[0].nameDisplay:null}}}),250,{leading:!0}),healthCheckEnabled(e){e||(this.value.spec.healthCheck={})}},watch:{backendServerSelector:"updateMatchingVMs","value.metadata.namespace":"updateMatchingVMs"}},A=(a(62541),a(47433));const x=(0,A.A)(B,[["render",d],["__scopeId","data-v-201c4480"]]);var D=x},38482:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return A}});var o=a(9274);const r={class:"row mb-20"},s={class:"col span-3"};function l(e,t,a,l,n,i){const d=(0,o.resolveComponent)("NameNsDescription"),c=(0,o.resolveComponent)("LabeledSelect"),u=(0,o.resolveComponent)("Banner"),p=(0,o.resolveComponent)("ProjectMembershipEditor"),m=(0,o.resolveComponent)("Tab"),v=(0,o.resolveComponent)("ResourceQuota"),h=(0,o.resolveComponent)("ContainerResourceLimit"),b=(0,o.resolveComponent)("Labels"),g=(0,o.resolveComponent)("Tabbed"),f=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(f,{class:"project","done-route":e.value.listLocation,errors:e.fvUnreportedValidationErrors,mode:e.mode,resource:e.value,subtypes:[],"can-yaml":!1,"validation-passed":e.fvFormIsValid,onError:t[4]||(t[4]=t=>e.errors=t),onFinish:i.save,onCancel:e.done},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{value:e.value,"name-editable":!0,mode:e.mode,namespaced:!1,"description-key":"spec.description","description-disabled":i.isDescriptionDisabled,"name-key":"spec.displayName","normalize-name":!1,rules:{name:e.fvGetAndReportPathRules("spec.displayName"),namespace:[],description:[]},"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode","description-disabled","rules"]),(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[i.pspOptions?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,value:e.value.spec.podSecurityPolicyTemplateId,"onUpdate:value":t[1]||(t[1]=t=>e.value.spec.podSecurityPolicyTemplateId=t),class:"psp",mode:e.mode,options:i.pspOptions,disabled:!n.canEditPSPBindings,label:e.t("project.psp.label")},null,8,["value","mode","options","disabled","label"])):(0,o.createCommentVNode)("",!0)])]),(0,o.createVNode)(g,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[i.canViewMembers?((0,o.openBlock)(),(0,o.createBlock)(m,{key:0,name:"members",label:e.t("project.members.label"),weight:10},{default:(0,o.withCtx)((()=>[i.showBannerForOnlyManagingMembers?((0,o.openBlock)(),(0,o.createBlock)(u,{key:0,color:"info",label:e.t("project.membersEditOnly")},null,8,["label"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(p,{mode:e.mode,"parent-id":e.value.id,onHasOwnerChanged:i.onHasOwnerChanged,onMembershipUpdate:i.onMembershipUpdate},null,8,["mode","parent-id","onHasOwnerChanged","onMembershipUpdate"])])),_:1},8,["label"])):(0,o.createCommentVNode)("",!0),(0,o.createVNode)(m,{name:"resource-quotas",label:e.t("project.resourceQuotas"),weight:9},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(v,{value:e.value,"onUpdate:value":t[2]||(t[2]=t=>e.value=t),mode:i.canEditTabElements,types:e.isStandaloneHarvester?n.HARVESTER_TYPES:n.RANCHER_TYPES,onRemove:i.removeQuota},null,8,["value","mode","types","onRemove"])])),_:1},8,["label"]),(0,o.createVNode)(m,{name:"container-default-resource-limit",label:i.resourceQuotaLabel,weight:8},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(h,{value:e.value.spec.containerDefaultResourceLimit,"onUpdate:value":t[3]||(t[3]=t=>e.value.spec.containerDefaultResourceLimit=t),mode:i.canEditTabElements,"show-tip":!1,"register-before-hook":e.registerBeforeHook},null,8,["value","mode","register-before-hook"])])),_:1},8,["label"]),(0,o.createVNode)(m,{name:"labels-and-annotations","label-key":"generic.labelsAndAnnotations",weight:7},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(b,{"default-container-class":"labels-and-annotations-container",value:e.value,mode:i.canEditTabElements,"display-side-by-side":!1},null,8,["value","mode"])])),_:1})])),_:1})])),_:1},8,["done-route","errors","mode","resource","validation-passed","onFinish","onCancel"])}var n=a(65359),i=a(85992),d=a(91825),c=a(77651),u=a(99960),p=a(7365),m=a(77988),v=a(51718),h=a(3712),b=a(49584),g=a(59808),f=a(32786),k=a(35664),y=a(27278),N=a(14220),V=a(31001),C=a(11518),w=a(9980),E={emits:["update:value"],components:{ContainerResourceLimit:i.A,CruResource:u.A,Labels:p.A,LabeledSelect:m.A,NameNsDescription:f.A,ProjectMembershipEditor:V.h,ResourceQuota:v.A,Tabbed:g.A,Tab:b.A,Banner:w.l},mixins:[d.A,c.A],inheritAttrs:!1,async fetch(){this.$store.getters["management/canList"](k.Mc.POD_SECURITY_POLICY_TEMPLATE)&&(this.allPSPs=await this.$store.dispatch("management/findAll",{type:k.Mc.POD_SECURITY_POLICY_TEMPLATE}));const e=this.$store.getters["management/schemaFor"](k.Mc.PSP_TEMPLATE_BINDING);this.canEditPSPBindings=!!e},data(){return this.value["spec"]=this.value.spec||{},this.value.spec["podSecurityPolicyTemplateId"]=this.value.status?.podSecurityPolicyTemplateId||"",{allPSPs:[],projectRoleTemplateBindingSchema:this.$store.getters["management/schemaFor"](k.Mc.PROJECT_ROLE_TEMPLATE_BINDING),createLocation:{name:"c-cluster-product-resource-create",params:{product:y.o,resource:k.Mc.PROJECT_ROLE_TEMPLATE_BINDING},query:{[N.iJ]:this.project?.id?.replace("/",":")}},resource:k.Mc.PROJECT_ROLE_TEMPLATE_BINDING,saveBindings:null,membershipHasOwner:!1,membershipUpdate:{},HARVESTER_TYPES:h.vq,RANCHER_TYPES:h.Sg,fvFormRuleSets:[{path:"spec.displayName",rules:["required"]}],canEditPSPBindings:!0}},computed:{...(0,n.L8)(["currentCluster","isStandaloneHarvester"]),canViewMembers(){return(0,V.A)(this.$store)},canEditProject(){return this.value?.links?.update},isDescriptionDisabled(){return this.mode===N.G5&&!this.canEditProject||!1},canEditTabElements(){return this.mode!==N.G5||this.canEditProject?this.mode:N.nW},showBannerForOnlyManagingMembers(){return this.mode===N.G5&&!this.canEditProject},isK3s(){return(this.currentCluster?.spec?.kubernetesVersion||"").includes("k3s")},pspOptions(){if(this.isK3s||!this.currentCluster.spec.defaultPodSecurityPolicyTemplateName)return null;const e=[{label:this.t("project.psp.default"),value:""}];if(this.allPSPs)for(const a of this.allPSPs)e.push({label:a.nameDisplay,value:a.id});const t=this.value.status?.podSecurityPolicyTemplateId;return t&&!e.find((e=>e.value===t))&&e.unshift({label:this.t("project.psp.current",{value:t}),value:t}),e},isHarvester(){return this.$store.getters["currentProduct"].inStore===C.T},resourceQuotaLabel(){return this.isHarvester?this.t("project.vmDefaultResourceLimit"):this.t("project.containerDefaultResourceLimit")}},watch:{hasOwner(){this.errors=this.hasOwner?[]:[this.t("project.haveOneOwner")]}},created(){this.value.metadata["namespace"]=this.$store.getters["currentCluster"].id,this.value["spec"]=this.value.spec||{},this.value.spec["containerDefaultResourceLimit"]=this.value.spec.containerDefaultResourceLimit||{}},methods:{async save(e){try{if(this.mode===N.YQ){const e=await this.value.save();this.membershipUpdate.save&&await this.membershipUpdate.save(e.id)}else if(this.mode===N.G5&&(this.canEditProject&&(await this.value.save(!0),await this.$store.dispatch("management/find",{type:k.Mc.PROJECT,id:this.value.id,opt:{force:!0}})),this.membershipUpdate.save)){const e=await this.value.norman;await this.membershipUpdate.save(e.id)}e(!0),this.$router.replace(this.value.listLocation)}catch(t){this.errors.push(t),e(!1)}},onHasOwnerChanged(e){this["membershipHasOwner"]=e},onMembershipUpdate(e){this["membershipUpdate"]=e},removeQuota(e){["resourceQuota","namespaceDefaultResourceQuota"].forEach((t=>{this.value?.spec[t]?.limit&&this.value?.spec[t]?.limit[e]&&delete this.value?.spec[t]?.limit[e],this.value?.spec[t]?.usedLimit&&this.value?.spec[t]?.usedLimit[e]&&delete this.value?.spec[t]?.usedLimit[e]}))}}},S=a(47433);const B=(0,S.A)(E,[["render",l]]);var A=B},87544:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return v}});var o=a(9274);function r(e,t,a,r,s,l){const n=(0,o.resolveComponent)("NameNsDescription"),i=(0,o.resolveComponent)("Labels"),d=(0,o.resolveComponent)("Tab"),c=(0,o.resolveComponent)("ResourceTabs"),u=(0,o.resolveComponent)("CruResource");return(0,o.openBlock)(),(0,o.createBlock)(u,{resource:e.value,mode:e.mode,errors:e.errors,onFinish:e.save},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(n,{value:e.value,mode:e.mode,namespaced:!1,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(c,{value:e.value,"onUpdate:value":t[1]||(t[1]=t=>e.value=t),mode:e.mode,"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(d,{name:"labels-and-annotations","label-key":"generic.labelsAndAnnotations",weight:-1},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(i,{"default-container-class":"labels-and-annotations-container",value:e.value,mode:e.mode,"display-side-by-side":!1},null,8,["value","mode"])])),_:1})])),_:1},8,["value","mode"])])),_:1},8,["resource","mode","errors","onFinish"])}var s=a(99960),l=a(32786),n=a(72551),i=a(49584),d=a(7365),c=a(91825),u={name:"EditClusterNetwork",emits:["update:value"],components:{CruResource:s.A,NameNsDescription:l.A,ResourceTabs:n.A,Tab:i.A,Labels:d.A},mixins:[c.A],inheritAttrs:!1,computed:{doneLocationOverride(){return this.value.doneOverride}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.validate)},methods:{validate(){const e=[],t=this.value?.metadata?.name;return t?t.length>12&&e.push(this.t("validation.stringLength.max",{key:this.t("generic.name"),count:12},!0)):e.push(this.t("validation.required",{key:this.t("generic.name")},!0)),e.length>0?Promise.reject(e):Promise.resolve()}}},p=a(47433);const m=(0,p.A)(u,[["render",r]]);var v=m},95058:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var o=a(9274);const r={class:"row"},s={key:0,class:"row mb-10"},l={class:"col span-6"};function n(e,t,a,n,i,d){const c=(0,o.resolveComponent)("RadioGroup"),u=(0,o.resolveComponent)("LabeledSelect"),p=(0,o.resolveComponent)("KeyValue");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.createElementVNode)("div",r,[(0,o.createVNode)(c,{value:i.selectNode,"onUpdate:value":[t[0]||(t[0]=e=>i.selectNode=e),d.update],name:"selectNode",options:d.selectNodeOptions,mode:a.mode},null,8,["value","options","mode","onUpdate:value"])]),"nodeSelector"===i.selectNode?((0,o.openBlock)(),(0,o.createElementBlock)("div",s,[(0,o.createElementVNode)("div",l,[(0,o.createVNode)(u,{value:i.nodeName,"onUpdate:value":[t[1]||(t[1]=e=>i.nodeName=e),d.update],label:e.t("workload.scheduling.affinity.nodeName"),options:a.nodes||[],mode:a.mode,multiple:!1},null,8,["value","label","options","mode","onUpdate:value"])])])):"custom"===i.selectNode?((0,o.openBlock)(),(0,o.createBlock)(p,{key:1,value:i.nodeSelector,"onUpdate:value":[t[2]||(t[2]=e=>i.nodeSelector=e),d.update],"key-label":e.t("generic.key"),mode:a.mode,"add-label":e.t("workload.scheduling.affinity.addNodeSelector"),"read-allowed":!1,"value-label":e.t("generic.value"),"initial-empty-row":!0},null,8,["value","key-label","mode","add-label","value-label","onUpdate:value"])):(0,o.createCommentVNode)("",!0)])}var i=a(65359),d=a(10196),c=a(77988),u=a(25088),p=a(2841),m=a(68851),v=a(32766),h={emits:["updateMatchingNICs","updateMatchingNodes"],components:{RadioGroup:d.z,LabeledSelect:c.A,KeyValue:u.A},props:{value:{type:Object,default:()=>({})},nodes:{type:Array,default:()=>[]},mode:{type:String,default:"create"}},data(){const{nodeSelector:e={}}=this.value;let t="all",a="";return e[p.yA]&&1===Object.keys(e).length?(t="nodeSelector",a=e[p.yA]):Object.keys(e).length>0&&(t="custom"),{selectNode:t,nodeName:a,nodeSelector:e}},computed:{...(0,i.L8)({t:"i18n/t"}),selectNodeOptions(){const e=[{label:this.t("harvester.vlanConfig.scheduling.affinity.allNodes"),value:"all"},{label:this.t("harvester.vlanConfig.scheduling.affinity.specificNode"),value:"nodeSelector"},{label:this.t("harvester.vlanConfig.scheduling.affinity.schedulingRules"),value:"custom"}];return e},nics(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](v.rk.LINK_MONITOR,"nic")||{},a=t?.status?.linkStatus||{},o=[];return Object.keys(a).map((e=>{const t=a[e]||[];t.map((t=>{(0,m.jq)(o,"name",t.name)||t.masterIndex||o.push({...t,nodeName:e})}))})),o}},methods:{update(){const{nodeName:e,nodeSelector:t}=this;switch(this.selectNode){case"all":delete this.value?.nodeSelector;break;case"nodeSelector":delete this.value?.nodeSelector,Object.assign(this.value,{nodeSelector:{[p.yA]:e}});break;case"custom":delete this.value.nodeName,delete this.value.nodeSelector,Object.assign(this.value,{nodeSelector:t});break;default:delete this.value.nodeSelector}this.$emit("updateMatchingNICs"),this.$emit("updateMatchingNodes")}}},b=a(47433);const g=(0,b.A)(h,[["render",n]]);var f=g},1307:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return H}});var o=a(9274);const r={class:"row"},s={class:"col span-12"},l={class:"row"},n={class:"col span-12"},i={class:"row mt-10"},d={class:"col span-6"},c={class:"col span-6"},u={class:"row mt-20"},p={class:"col span-12"},m={class:"mt-20"},v={class:"row"},h={class:"col span-6"},b={class:"col span-6"},g={class:"mt-20"},f={class:"row mt-10"},k={class:"col span-6"};function y(e,t,a,y,N,V){const C=(0,o.resolveComponent)("Loading"),w=(0,o.resolveComponent)("NameNsDescription"),E=(0,o.resolveComponent)("Banner"),S=(0,o.resolveComponent)("NodeSelector"),B=(0,o.resolveComponent)("Tab"),A=(0,o.resolveComponent)("LabelValue"),x=(0,o.resolveComponent)("ArrayListSelect"),D=(0,o.resolveComponent)("LabeledSelect"),M=(0,o.resolveComponent)("LabeledInput"),U=(0,o.resolveComponent)("Tabbed"),T=(0,o.resolveComponent)("CruResource"),_=(0,o.resolveDirective)("clean-html");return e.$fetchState.pending?((0,o.openBlock)(),(0,o.createBlock)(C,{key:0})):((0,o.openBlock)(),(0,o.createBlock)(T,{key:1,resource:e.value,mode:e.mode,errors:e.errors,onFinish:e.save},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(w,{value:e.value,mode:e.mode,namespaced:!1,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["value","mode"]),(0,o.createVNode)(U,{"side-tabs":!0},{default:(0,o.withCtx)((()=>[(0,o.createVNode)(B,{name:"nodeSelector",label:e.t("harvester.vlanConfig.titles.nodeSelector"),weight:99},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",r,[(0,o.createElementVNode)("div",s,[(0,o.createVNode)(E,{color:N.matchingNodes.none?"warning":"success"},{default:(0,o.withCtx)((()=>[(0,o.withDirectives)((0,o.createElementVNode)("span",null,null,512),[[_,e.t("harvester.vlanConfig.nodeSelector.matchingNodes.matchesSome",N.matchingNodes)]])])),_:1},8,["color"])])]),(0,o.createElementVNode)("div",l,[(0,o.createElementVNode)("div",n,[(0,o.createVNode)(S,{mode:e.mode,value:e.value.spec,nodes:V.nodeOptions,onUpdateMatchingNICs:V.updateMatchingNICs,onUpdateMatchingNodes:V.updateMatchingNodes},null,8,["mode","value","nodes","onUpdateMatchingNICs","onUpdateMatchingNodes"])])])])),_:1},8,["label"]),(0,o.createVNode)(B,{name:"upLink",label:e.t("harvester.vlanConfig.titles.uplink"),weight:99,"show-header":!1},{default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",d,[(0,o.createVNode)(A,{name:e.t("harvester.network.clusterNetwork.label"),value:e.value.spec.clusterNetwork},null,8,["name","value"])]),(0,o.createElementVNode)("div",c,[(0,o.createVNode)(A,{name:"Type",value:"VLAN"})])]),(0,o.createElementVNode)("div",u,[(0,o.createElementVNode)("div",p,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(N.nicErrors,((e,t)=>((0,o.openBlock)(),(0,o.createBlock)(E,{key:t,color:"warning",label:e},null,8,["label"])))),128)),(0,o.createVNode)(x,{value:e.value.spec.uplink.nics,"onUpdate:value":t[1]||(t[1]=t=>e.value.spec.uplink.nics=t),mode:e.mode,options:V.nicOptions,"enable-default-add-value":!1,"array-list-props":{addLabel:e.t("harvester.vlanConfig.uplink.nics.addLabel"),initialEmptyRow:!0,title:e.t("harvester.vlanConfig.uplink.nics.label"),required:!0,protip:!1},"select-props":{placeholder:e.t("harvester.vlanConfig.uplink.nics.placeholder")}},null,8,["value","mode","options","array-list-props","select-props"])])]),(0,o.createElementVNode)("h3",m,(0,o.toDisplayString)(e.t("harvester.vlanConfig.titles.bondOptions")),1),(0,o.createElementVNode)("div",v,[(0,o.createElementVNode)("div",h,[(0,o.createVNode)(D,{value:V.bondOptionMode,"onUpdate:value":t[2]||(t[2]=e=>V.bondOptionMode=e),label:e.t("harvester.vlanConfig.uplink.bondOptions.mode.label"),mode:e.mode,options:V.bondOptions,required:""},null,8,["value","label","mode","options"])]),(0,o.createElementVNode)("div",b,[(0,o.createVNode)(M,{value:V.miimon,"onUpdate:value":t[3]||(t[3]=e=>V.miimon=e),valueModifiers:{number:!0},label:e.t("harvester.vlanConfig.uplink.bondOptions.miimon.label"),mode:e.mode,type:"number",tooltip:e.t("harvester.vlanConfig.uplink.bondOptions.miimon.tooltip",null,!0)},null,8,["value","label","mode","tooltip"])])]),(0,o.createElementVNode)("h3",g,(0,o.toDisplayString)(e.t("harvester.vlanConfig.titles.attributes")),1),(0,o.createElementVNode)("div",f,[(0,o.createElementVNode)("div",k,[(0,o.createVNode)(M,{value:V.mtu,"onUpdate:value":t[4]||(t[4]=e=>V.mtu=e),valueModifiers:{number:!0},label:e.t("harvester.vlanConfig.uplink.linkAttributes.mtu.label"),mode:e.mode,type:"number"},null,8,["value","label","mode"])])])])),_:1},8,["label"])])),_:1})])),_:1},8,["resource","mode","errors","onFinish"]))}var N=a(45250),V=a(99960),C=a(32786),w=a(79380),E=a(77988),S=a(59808),B=a(49584),A=a(1050),x=a(39412),D=a(84409),M=a(9980),U=a(91825),T=a(35664),_=a(76978),R=a(68851),$=a(88339),O=a(2841),I=a(38823),L=a(32766),P=a(95058),q={emits:["update:value"],components:{CruResource:V.A,NameNsDescription:C.A,LabeledInput:w.o,LabeledSelect:E.A,Tabbed:S.A,Tab:B.A,NodeSelector:P["default"],ArrayListSelect:A.A,LabelValue:x.A,Loading:D.A,Banner:M.l},mixins:[U.A],inheritAttrs:!1,data(){const e=(0,_.o8)(this.value?.spec?.uplink?.nics||[]),t={matched:0,matches:[],none:!0,sample:null,total:0};return{type:"vlan",matchNICs:[],originNics:e,matchingNodes:t,nicErrors:[]}},created(){this.registerBeforeHook&&this.registerBeforeHook(this.validate);const e=this.$route.query.clusterNetwork;e&&(0,_.hZ)(this.value,"spec.clusterNetwork",e)},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={linkMonitors:this.$store.dispatch(`${e}/findAll`,{type:L.rk.LINK_MONITOR}),nodes:this.$store.dispatch(`${e}/findAll`,{type:T.NW})};await(0,$.kR)(t),this.updateMatchingNICs(),this.updateMatchingNodes()},computed:{nodeOptions(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](T.NW);return t.filter((e=>"true"!==e.isEtcd)).map((e=>({label:e.nameDisplay,value:e.id})))},mtu:{get(){return this.value?.spec?.uplink?.linkAttributes?.mtu},set(e){(0,_.hZ)(this.value,"spec.uplink.linkAttributes.mtu",e)}},bondOptionMode:{get(){return this.value?.spec?.uplink?.bondOptions?.mode},set(e){(0,_.hZ)(this.value,"spec.uplink.bondOptions.mode",e)}},miimon:{get(){return this.value?.spec?.uplink?.bondOptions?.miimon},set(e){(0,_.hZ)(this.value,"spec.uplink.bondOptions.miimon",e)}},bondOptions(){return["balance-rr","active-backup","balance-xor","broadcast","802.3ad","balance-tlb","balance-alb"]},doneLocationOverride(){return this.value.doneOverride},nics(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](L.rk.LINK_MONITOR,"nic")||{},a=t?.status?.linkStatus||{},o=this.nodes.map((e=>e.id)),r=[];return Object.keys(a).map((e=>{if(o.includes(e)){const t=a[e]||[];t.map((t=>{r.push({...t,nodeName:e})}))}})),r},nicOptions(){const e=[],t={};return(this.matchNICs||[]).map((a=>{a.masterIndex&&!this.originNics.includes(a.name)?(0,_.hZ)(t,`${a.name}.masterIndex`,!0):(0,R.jq)(e,"name",a.name)?(0,R.jq)(e,"name",a.name)&&((0,_.hZ)(t,`${a.name}.total`,t[a.name].total+1),(0,_.hZ)(t,`${a.name}.down`,"down"===a.state?t[a.name].down+1:t[a.name].down)):(e.push(a),(0,_.hZ)(t,`${a.name}.total`,1),(0,_.hZ)(t,`${a.name}.down`,"down"===a.state?1:0))})),e.filter((e=>!t[e.name].masterIndex)).map((e=>{let a="";return a=0===t[e.name].down?`${e.name} (Up)`:1===t[e.name].total?`${e.name} (Down)`:`${e.name} (${t[e.name].down}/${t[e.name].total} Down)`,{label:a,value:e.name,disabled:t[e.name].down>0}}))},nodes(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](T.NW);return t.filter((e=>"true"!==e.isEtcd))}},methods:{validate(){const e=[],t=this.value.spec?.uplink?.nics||[],a=this.t("validation.arrayCountRequired",{key:this.t("harvester.vlanConfig.uplink.nics.label"),count:1},!0);if(0===t.length?e.push(a):t.map((t=>{t||e.push(a);const o=this.nicOptions.find((e=>e.value===t));o&&o?.disabled&&e.push(this.t("harvester.vlanConfig.uplink.nics.validate.available",{nic:t},!0))})),this.value?.metadata?.name||e.push(this.t("validation.required",{key:this.t("generic.name")},!0)),this.value?.spec?.clusterNetwork||e.push(this.t("validation.required",{key:this.t("harvester.network.clusterNetwork.label")},!0)),e.length>0)return Promise.reject((0,R.sb)(e));{const e=this.value?.spec?.uplink?.bondOptions?.miimon;e||0===e||delete this.value?.spec?.uplink?.bondOptions?.miimon;const t=this.value?.spec?.uplink?.linkAttributes?.mtu;return t||0===t||delete this.value?.spec?.uplink?.linkAttributes?.mtu,Promise.resolve()}},updateMatchingNICs:(0,N.throttle)((function(){const e=this.value?.spec?.nodeSelector||{},t=this.nics||[];let a=[],o=[];if((0,N.isEmpty)(e))a=(0,_.o8)(t),o=(this.nodes||[]).map((e=>e.id));else if(e[O.yA]&&1===Object.keys(e).length)a=t.filter((t=>t.nodeName===e[O.yA])),o=[e[O.yA]];else{const r=(0,I.wC)(this.nodes||[],e).map((e=>e.id));a=t.filter((e=>r.includes(e.nodeName))),o=r.map((e=>e.id))}this.matchNICs=this.intersection(a,o)||[]}),250,{leading:!0}),intersection(e=[],t=[]){const a={};return e.map((e=>{a[e.name]=(a[e.name]||0)+1})),e.filter((e=>a[e.name]===t.length))},updateMatchingNodes:(0,N.throttle)((function(){const e=this.value?.spec?.nodeSelector||{},t=this.nodes||[];if((0,N.isEmpty)(e))this.matchingNodes={matched:t.length,total:t.length,none:!1,sample:t[0]?t[0].nameDisplay:null};else if(e[O.yA]&&1===Object.keys(e).length){const a=t.find((t=>t.id===e[O.yA]));this.matchingNodes=a?{matched:1,total:t.length,none:!1,sample:a.nameDisplay}:{matched:0,total:0,none:!0,sample:null}}else{const a=(0,I.wC)(t,e);this.matchingNodes={matched:a.length,total:t.length,none:0===a.length,sample:a[0]?a[0].nameDisplay:null}}}),250,{leading:!0})},watch:{nicOptions(e){const t=this.value.spec?.uplink?.nics||[],a=[];t.map((t=>{const o=e.find((e=>e.value===t));(o&&o?.disabled||!o)&&a.push(this.t("harvester.vlanConfig.uplink.nics.validate.available",{nic:t},!0))})),this.nicErrors=(0,R.sb)(a)}}},F=(a(59505),a(47433));const G=(0,F.A)(q,[["render",y],["__scopeId","data-v-7d89080c"]]);var H=G},5531:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".tag[data-v-6b2f75f1]{border:1px solid var(--primary);border-radius:var(--border-radius);box-sizing:border-box;margin:0;padding:0;font-size:14px;line-height:20px;list-style:none;display:inline-block;height:auto;margin-inline-end:8px;padding-inline:7px;white-space:nowrap;background:var(--accent-btn);opacity:1;text-align:start;color:var(--link);margin-bottom:10px;margin-right:8px;padding-top:8px;padding-bottom:8px}.tag i[data-v-6b2f75f1],.tag.add[data-v-6b2f75f1]{cursor:pointer}.tag.add[data-v-6b2f75f1]{border-style:dashed}.tag.add[data-v-6b2f75f1],.tag.input[data-v-6b2f75f1]{background:var(--body-bg)}.tag.input[data-v-6b2f75f1]{border:none;border-radius:none;padding:0}",""]),t["default"]=n},48952:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-034d9714] .radio-group{display:flex}[data-v-034d9714] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},18380:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"p[data-v-62a46348]{display:flex;align-items:center}.icon-h-question[data-v-62a46348]{font-size:24px}.tip[data-v-62a46348]{font-size:15px}.goCA[data-v-62a46348]{margin:0 3px}",""]),t["default"]=n},44309:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".box[data-v-d281fc5e]{position:relative;padding-top:40px}.remove[data-v-d281fc5e]{position:absolute;top:10px;right:10px;padding:0}",""]),t["default"]=n},30084:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".box[data-v-34b9f214]{position:relative;padding-top:40px}.remove[data-v-34b9f214]{position:absolute;top:10px;right:10px;padding:0}",""]),t["default"]=n},95083:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".chooseFile[data-v-27a09764]{display:flex;align-items:center}",""]),t["default"]=n},620:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-11b4ae46] .radio-group{display:flex}[data-v-11b4ae46] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},86373:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".restart-modal[data-v-574c27ab]{z-index:45}.prompt-restart[data-v-574c27ab]{margin:0}.bottom[data-v-574c27ab]{display:flex;flex-direction:column;flex:1}.bottom .banner[data-v-574c27ab]{margin-top:0}.bottom .buttons[data-v-574c27ab]{display:flex;justify-content:flex-end;width:100%}",""]),t["default"]=n},99334:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-24a677c4] .radio-group{display:flex}[data-v-24a677c4] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},57165:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-4b980a18] .radio-group{display:flex}[data-v-4b980a18] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},50745:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-14fad698] .radio-group{display:flex}[data-v-14fad698] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},1814:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-bdc3ab06] .radio-group{display:flex}[data-v-bdc3ab06] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},96370:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-4ac8f18c] .radio-group{display:flex}[data-v-4ac8f18c] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},12029:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-077b6bf4] .radio-group{display:flex}[data-v-077b6bf4] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},46453:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-b9cb7bba] .radio-group{display:flex}[data-v-b9cb7bba] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},88087:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-7d4cbfa3] .radio-group{display:flex}[data-v-7d4cbfa3] .radio-group .radio-container{margin-right:30px}",""]),t["default"]=n},96716:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"[data-v-65b4127d] .yaml-editor{flex:1;min-height:200px}[data-v-65b4127d] .yaml-editor .code-mirror .CodeMirror{position:static;height:auto;min-height:200px}",""]),t["default"]=n},24175:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".close[data-v-30b402d6]{top:10px;right:10px;padding:0;position:absolute}.disk[data-v-30b402d6]{position:relative}.disk .secret-name[data-v-30b402d6]{height:61px}.disk[data-v-30b402d6]:not(:last-of-type){padding-bottom:10px;margin-bottom:30px}.flex[data-v-30b402d6]{display:flex;justify-content:space-between}.badge-state[data-v-30b402d6]{padding:2px 5px}",""]),t["default"]=n},22051:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"#node[data-v-5f263130]{display:flex;flex-direction:column}#node[data-v-5f263130],#node .content[data-v-5f263130]{flex-grow:1}#node .wrapper[data-v-5f263130]{position:relative}#node .nicOption[data-v-5f263130]{display:flex;justify-content:space-between}",""]),t["default"]=n},30310:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".header[data-v-392bdb63]{display:flex;justify-content:flex-end}",""]),t["default"]=n},90739:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".output{display:flex;flex-direction:column;flex-grow:1}.output .provider h1{display:inline-block}.output .box-container{display:flex;justify-content:flex-start;flex-wrap:wrap;margin:0 -10px}@media only screen and (min-width:480px){.output .box-container .toggle-gradient-box{width:100%}}@media only screen and (min-width:768px){.output .box-container .toggle-gradient-box{width:calc(50% - 20px)}}@media only screen and (min-width:992px){.output .box-container .toggle-gradient-box{width:calc(33.33333% - 20px)}}@media only screen and (min-width:1281px){.output .box-container .toggle-gradient-box{width:calc(25% - 20px)}}.output .box-container .toggle-gradient-box{margin:10px;padding:10px;position:relative;border-radius:calc(var(--border-radius)*1.5)}.output .box-container .toggle-gradient-box:hover{box-shadow:0 0 30px var(--shadow);transition:box-shadow .1s ease-in-out;cursor:pointer}.output .box-container .toggle-gradient-box .side-label{transform:rotate(180deg);position:absolute;top:0;left:0;bottom:0;min-width:calc(var(--border-radius)*1.5);width:15px;border-top-right-radius:calc(var(--border-radius)*1.5);border-bottom-right-radius:calc(var(--border-radius)*1.5)}.output .box-container .toggle-gradient-box .side-label label{text-align:center;writing-mode:tb;height:100%;padding:0 2px;display:block;white-space:no-wrap;text-overflow:ellipsis}.output .box-container .toggle-gradient-box .logo{text-align:center;width:60px;height:60px;border-radius:calc(var(--border-radius)*2);overflow:hidden;background-color:#fff;display:inline-block;vertical-align:middle}.output .box-container .toggle-gradient-box .logo img{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;position:relative;top:2px}.output .box-container .toggle-gradient-box:hover{background-position:100%}.output .box-container .toggle-gradient-box .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:0;display:inline-block;vertical-align:middle}",""]),t["default"]=n},33100:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"h3[data-v-34ffb89b]{margin-top:2em}input[data-v-34ffb89b]{margin-top:1em}.route[real-mode=view] .label[data-v-34ffb89b]{color:var(--input-label)}button[data-v-34ffb89b]{margin-left:.5em}a[data-v-34ffb89b]:hover{text-decoration:none}",""]),t["default"]=n},99612:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".edit-change[data-v-01b4cf42]{align-items:center;display:flex}.edit-change>h5[data-v-01b4cf42]{flex:1}[data-v-01b4cf42] .edit-help code{padding:1px 5px}",""]),t["default"]=n},91923:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".custom-headers[data-v-4918df50]{align-items:center}",""]),t["default"]=n},65601:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".labeled-input.compact-input[data-v-8c848812]{padding:7px 10px}",""]),t["default"]=n},13158:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".labeled-input.compact-input[data-v-1618b260]{padding:7px 10px}",""]),t["default"]=n},25936:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".labeled-input.compact-input[data-v-6afc4f36]{padding:7px 10px}",""]),t["default"]=n},30056:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"#restore[data-v-dcf8e7de]{display:flex;flex-grow:1;flex-direction:column}#restore[data-v-dcf8e7de] .radio-group{display:flex}#restore[data-v-dcf8e7de] .radio-group .radio-container{margin-right:30px}#restore .content[data-v-dcf8e7de]{flex-grow:1}#restore .footer[data-v-dcf8e7de]{border-top:var(--header-border-size) solid var(--header-border);margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:10px 20px}#restore .footer[data-v-dcf8e7de] .spacer-small{padding:0}",""]),t["default"]=n},27193:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".kv-item.value>.unlabeled-select[data-v-1d4328c1]{height:40px;line-height:1}",""]),t["default"]=n},4689:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"#restore[data-v-6c93c587]{display:flex;flex-grow:1;flex-direction:column}#restore[data-v-6c93c587] .radio-group{display:flex}#restore[data-v-6c93c587] .radio-group .radio-container{margin-right:30px}#restore .content[data-v-6c93c587]{flex-grow:1}#restore .footer[data-v-6c93c587]{border-top:var(--header-border-size) solid var(--header-border);margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:10px 20px}#restore .footer[data-v-6c93c587] .spacer-small{padding:0}",""]),t["default"]=n},33422:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".compat-matrix,.device-col{display:flex}.device-col{flex-direction:column;border-right:1px solid var(--border)}.device-col>*{border-bottom:1px solid var(--border)}.compat-cell{flex-basis:1em;padding:0 10px 0 10px}.compat-cell.has-device{background-color:var(--info-banner-bg)}.device-label,.node-label{display:flex;align-items:center;color:var(--input-label)}.node-label{padding:0 10px;justify-content:center}.blank-corner,.compat-cell,.device-label,.node-label{flex-basis:calc(2em + 10px)}.blank-corner{background:linear-gradient(to top right,#fff 0,#fff calc(50% - 1px),var(--body-text) 50%,#fff calc(50% + 1px),#fff 100%)}.blank-corner DIV.text-right{padding-left:80px}",""]),t["default"]=n},47993:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"#vm[data-v-118c4d85] .vm-radio-group .radio-group{display:flex}#vm[data-v-118c4d85] .vm-radio-group .radio-group .radio-container{margin-right:30px}#vm .restart[data-v-118c4d85]{display:flex;justify-content:flex-end}#vm .banner-right[data-v-118c4d85]{width:auto;display:flex;justify-items:center}",""]),t["default"]=n},94379:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".pool-headers[data-v-3ca2ec55]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center;grid-template-columns:40% 40% 15%}.pool-headers.show-project-and-cluster[data-v-3ca2ec55]{grid-template-columns:25% 25% 25% 15%}",""]),t["default"]=n},23560:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".pool-row[data-v-6c39bd05]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center;grid-template-columns:40% 40% 15%}.pool-row.show-project-and-cluster[data-v-6c39bd05]{grid-template-columns:25% 25% 25% 15%}",""]),t["default"]=n},52951:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".pool-headers[data-v-070c8736],.pool-row[data-v-070c8736]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center}.pool-headers.cidr[data-v-070c8736],.pool-row.cidr[data-v-070c8736]{grid-template-columns:41.75% 41.75% 15%}.pool-headers.range[data-v-070c8736],.pool-row.range[data-v-070c8736]{grid-template-columns:20% 20% 20% 20% 15%}",""]),t["default"]=n},48564:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".listener-headers[data-v-602acdc3],.listener-row[data-v-602acdc3]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center;grid-template-columns:35% 15% 15% 15% 15%}",""]),t["default"]=n},38701:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,".title[data-v-201c4480]{margin-bottom:10px}.title .read-from-file[data-v-201c4480]{float:right}.ports-headers[data-v-201c4480],.ports-row[data-v-201c4480]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center}.ports-headers.show-protocol[data-v-201c4480],.ports-row.show-protocol[data-v-201c4480]{grid-template-columns:23% 23% 10% 15% 15% 10%}.ports-headers.show-protocol[data-v-201c4480]:not(.show-node-port),.ports-row.show-protocol[data-v-201c4480]:not(.show-node-port){grid-template-columns:31% 31% 10% 15% 10%}.ports-headers.show-node-port[data-v-201c4480]:not(.show-protocol),.ports-row.show-node-port[data-v-201c4480]:not(.show-protocol){grid-template-columns:28% 28% 15% 15% 10%}.ports-headers[data-v-201c4480]{color:var(--input-label)}.toggle-host-ports[data-v-201c4480]{color:var(--primary)}.remove BUTTON[data-v-201c4480]{padding:0}.ports-row>div[data-v-201c4480]{height:100%}.ports-row .port-protocol[data-v-201c4480] .unlabeled-select .v-select.inline{margin-top:2px}.footer[data-v-201c4480]{margin-top:10px;margin-left:5px}.footer .protip[data-v-201c4480]{float:right;padding:5px 0}",""]),t["default"]=n},56337:function(e,t,a){"use strict";a.r(t);var o=a(36758),r=a.n(o),s=a(40935),l=a.n(s),n=l()(r());n.push([e.id,"button[data-v-7d89080c]{all:unset;height:0;position:relative;top:-35px;float:right;margin-right:7px;cursor:pointer}button .align-value[data-v-7d89080c]{padding-top:7px}",""]),t["default"]=n},61051:function(e,t,a){var o=a(5531);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("2ab997d2",o,!0,{sourceMap:!1,shadowMode:!1})},50072:function(e,t,a){var o=a(48952);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("011aed91",o,!0,{sourceMap:!1,shadowMode:!1})},23628:function(e,t,a){var o=a(18380);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("5d7a8812",o,!0,{sourceMap:!1,shadowMode:!1})},88789:function(e,t,a){var o=a(44309);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("4412edfb",o,!0,{sourceMap:!1,shadowMode:!1})},12164:function(e,t,a){var o=a(30084);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("082769ce",o,!0,{sourceMap:!1,shadowMode:!1})},92427:function(e,t,a){var o=a(95083);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("3f5ef292",o,!0,{sourceMap:!1,shadowMode:!1})},93612:function(e,t,a){var o=a(620);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("073cf01f",o,!0,{sourceMap:!1,shadowMode:!1})},38917:function(e,t,a){var o=a(86373);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("37a21e9a",o,!0,{sourceMap:!1,shadowMode:!1})},21030:function(e,t,a){var o=a(99334);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("21824756",o,!0,{sourceMap:!1,shadowMode:!1})},19949:function(e,t,a){var o=a(57165);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("52afd3fe",o,!0,{sourceMap:!1,shadowMode:!1})},29977:function(e,t,a){var o=a(50745);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("77675dd2",o,!0,{sourceMap:!1,shadowMode:!1})},71318:function(e,t,a){var o=a(1814);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("097b633b",o,!0,{sourceMap:!1,shadowMode:!1})},82002:function(e,t,a){var o=a(96370);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("1492605e",o,!0,{sourceMap:!1,shadowMode:!1})},18813:function(e,t,a){var o=a(12029);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("3008a3f0",o,!0,{sourceMap:!1,shadowMode:!1})},11221:function(e,t,a){var o=a(46453);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("27f0bb08",o,!0,{sourceMap:!1,shadowMode:!1})},27639:function(e,t,a){var o=a(88087);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("d2d2f1a4",o,!0,{sourceMap:!1,shadowMode:!1})},59852:function(e,t,a){var o=a(96716);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("6b2b15ea",o,!0,{sourceMap:!1,shadowMode:!1})},94287:function(e,t,a){var o=a(24175);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("45099b66",o,!0,{sourceMap:!1,shadowMode:!1})},30115:function(e,t,a){var o=a(22051);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("51547f7a",o,!0,{sourceMap:!1,shadowMode:!1})},54822:function(e,t,a){var o=a(30310);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("2a649d0d",o,!0,{sourceMap:!1,shadowMode:!1})},93459:function(e,t,a){var o=a(90739);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("ccabc532",o,!0,{sourceMap:!1,shadowMode:!1})},65548:function(e,t,a){var o=a(33100);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("7673b10d",o,!0,{sourceMap:!1,shadowMode:!1})},97596:function(e,t,a){var o=a(99612);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("3051a4b8",o,!0,{sourceMap:!1,shadowMode:!1})},83219:function(e,t,a){var o=a(91923);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("f480f734",o,!0,{sourceMap:!1,shadowMode:!1})},20545:function(e,t,a){var o=a(65601);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("165b7990",o,!0,{sourceMap:!1,shadowMode:!1})},88198:function(e,t,a){var o=a(13158);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("2d4ffc04",o,!0,{sourceMap:!1,shadowMode:!1})},5648:function(e,t,a){var o=a(25936);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("24b87eda",o,!0,{sourceMap:!1,shadowMode:!1})},4008:function(e,t,a){var o=a(30056);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("99c9cf44",o,!0,{sourceMap:!1,shadowMode:!1})},70585:function(e,t,a){var o=a(27193);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("d10aabf8",o,!0,{sourceMap:!1,shadowMode:!1})},38673:function(e,t,a){var o=a(4689);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("344e8b72",o,!0,{sourceMap:!1,shadowMode:!1})},91950:function(e,t,a){var o=a(33422);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("5f8696f8",o,!0,{sourceMap:!1,shadowMode:!1})},13209:function(e,t,a){var o=a(47993);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("3c9b6400",o,!0,{sourceMap:!1,shadowMode:!1})},30347:function(e,t,a){var o=a(94379);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("99e79c7c",o,!0,{sourceMap:!1,shadowMode:!1})},59688:function(e,t,a){var o=a(23560);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("720afeca",o,!0,{sourceMap:!1,shadowMode:!1})},90839:function(e,t,a){var o=a(52951);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("6cebf0b2",o,!0,{sourceMap:!1,shadowMode:!1})},50004:function(e,t,a){var o=a(48564);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("54340006",o,!0,{sourceMap:!1,shadowMode:!1})},62541:function(e,t,a){var o=a(38701);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("41557fde",o,!0,{sourceMap:!1,shadowMode:!1})},59505:function(e,t,a){var o=a(56337);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var r=a(74825).A;r("676e5870",o,!0,{sourceMap:!1,shadowMode:!1})},28431:function(e,t,a){var o={"./__tests__/loki.test":28158,"./__tests__/loki.test.ts":28158,"./awsElasticsearch":92469,"./awsElasticsearch.vue":92469,"./azurestorage":54093,"./azurestorage.vue":54093,"./cloudwatch":4991,"./cloudwatch.vue":4991,"./datadog":19443,"./datadog.vue":19443,"./elasticsearch":97863,"./elasticsearch.vue":97863,"./file":77332,"./file.vue":77332,"./forward":83158,"./forward.vue":83158,"./gcs":17686,"./gcs.vue":17686,"./gelf":36118,"./gelf.vue":36118,"./kafka":97622,"./kafka.vue":97622,"./kinesisStream":37803,"./kinesisStream.vue":37803,"./logdna":46636,"./logdna.vue":46636,"./logz":72135,"./logz.vue":72135,"./loki":42629,"./loki.vue":42629,"./newrelic":12951,"./newrelic.vue":12951,"./opensearch":26087,"./opensearch.vue":26087,"./redis":49054,"./redis.vue":49054,"./s3":32156,"./s3.vue":32156,"./splunkHec":10918,"./splunkHec.vue":10918,"./sumologic":54132,"./sumologic.vue":54132,"./syslog":32401,"./syslog.vue":32401,"./utils":69598,"./utils.js":69598};function r(e){var t=s(e);return a(t)}function s(e){if(!a.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=s,e.exports=r,r.id=28431},48254:function(e,t,a){var o={"./":69216,"./basic":40756,"./basic.vue":40756,"./generic":94719,"./generic.vue":94719,"./index":69216,"./index.vue":69216,"./registry":25532,"./registry.vue":25532,"./ssh":13286,"./ssh.vue":13286,"./tls":64701,"./tls.vue":64701};function r(e){var t=s(e);return a(t)}function s(e){if(!a.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=s,e.exports=r,r.id=48254},88292:function(e,t,a){var o={"./additional-ca.vue":36955,"./additional-guest-memory-overhead-ratio.vue":53867,"./auto-rotate-rke2-certs.vue":32158,"./backup-target.vue":65325,"./containerd-registry.vue":90955,"./csi-driver-config.vue":91932,"./default-vm-termination-grace-period-seconds.vue":59392,"./http-proxy.vue":18093,"./ntp-servers.vue":28436,"./overcommit-config.vue":70726,"./ssl-certificates.vue":54122,"./ssl-parameters.vue":13515,"./storage-network.vue":57589,"./support-bundle-image.vue":48749,"./support-bundle-namespaces.vue":30859,"./vm-force-reset-policy.vue":33955};function r(e){var t=s(e);return a(t)}function s(e){if(!a.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=s,e.exports=r,r.id=88292},26190:function(e,t,a){var o={"./additional-ca.vue":36955,"./additional-guest-memory-overhead-ratio.vue":53867,"./auto-rotate-rke2-certs.vue":32158,"./backup-target.vue":65325,"./containerd-registry.vue":90955,"./csi-driver-config.vue":91932,"./default-vm-termination-grace-period-seconds.vue":59392,"./http-proxy.vue":18093,"./ntp-servers.vue":28436,"./overcommit-config.vue":70726,"./ssl-certificates.vue":54122,"./ssl-parameters.vue":13515,"./storage-network.vue":57589,"./support-bundle-image.vue":48749,"./support-bundle-namespaces.vue":30859,"./vm-force-reset-policy.vue":33955};function r(e){var t=s(e);return a(t)}function s(e){if(!a.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=s,e.exports=r,r.id=26190},2467:function(e,t,a){var o={"./generic.vue":26370,"./harvester-seeder.vue":17438,"./index.vue":81135,"./nvidia-driver-toolkit.vue":57960,"./pcidevices-controller.vue":55821,"./rancher-logging.vue":70927,"./rancher-monitoring.vue":59289,"./rancher-vcluster.vue":95627,"./vm-import-controller.vue":32415};function r(e){var t=s(e);return a(t)}function s(e){if(!a.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=s,e.exports=r,r.id=2467},6232:function(e,t,a){var o={"./custom":43868,"./custom.vue":43868,"./driver.longhorn.io_v1":30050,"./driver.longhorn.io_v1.vue":30050,"./driver.longhorn.io_v2":42822,"./driver.longhorn.io_v2.vue":42822,"./lvm.driver.harvesterhci.io":14257,"./lvm.driver.harvesterhci.io.vue":14257};function r(e){var t=s(e);return a(t)}function s(e){if(!a.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=s,e.exports=r,r.id=6232},80373:function(e,t,a){var o={"./harvesterhci.io.addon/generic.vue":26370,"./harvesterhci.io.addon/harvester-seeder.vue":17438,"./harvesterhci.io.addon/index.vue":81135,"./harvesterhci.io.addon/nvidia-driver-toolkit.vue":57960,"./harvesterhci.io.addon/pcidevices-controller.vue":55821,"./harvesterhci.io.addon/rancher-logging.vue":70927,"./harvesterhci.io.addon/rancher-monitoring.vue":59289,"./harvesterhci.io.addon/rancher-vcluster.vue":95627,"./harvesterhci.io.addon/vm-import-controller.vue":32415,"./harvesterhci.io.host/HarvesterDisk.vue":13965,"./harvesterhci.io.host/HarvesterKsmtuned.vue":27547,"./harvesterhci.io.host/HarvesterSeeder.vue":65864,"./harvesterhci.io.host/index.vue":83385,"./harvesterhci.io.monitoring.alertmanagerconfig/index.vue":20906,"./harvesterhci.io.storage/index.vue":39808,"./harvesterhci.io.storage/provisioners/custom.vue":43868,"./harvesterhci.io.storage/provisioners/driver.longhorn.io_v1.vue":30050,"./harvesterhci.io.storage/provisioners/driver.longhorn.io_v2.vue":42822,"./harvesterhci.io.storage/provisioners/lvm.driver.harvesterhci.io.vue":14257,"./kubevirt.io.virtualmachine/CompatibilityMatrix.vue":93987,"./kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/AccessCredentialsUsers.vue":58094,"./kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/index.vue":60068,"./kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/basicAuth.vue":23574,"./kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/sshkey.vue":18933,"./kubevirt.io.virtualmachine/VirtualMachineCloudConfig/DataTemplate.vue":16369,"./kubevirt.io.virtualmachine/VirtualMachineCloudConfig/index.vue":81559,"./kubevirt.io.virtualmachine/VirtualMachineCpuMemory.vue":75403,"./kubevirt.io.virtualmachine/VirtualMachineNetwork/base.vue":48893,"./kubevirt.io.virtualmachine/VirtualMachineNetwork/index.vue":8746,"./kubevirt.io.virtualmachine/VirtualMachinePciDevices/DeviceList.vue":79428,"./kubevirt.io.virtualmachine/VirtualMachinePciDevices/index.vue":7060,"./kubevirt.io.virtualmachine/VirtualMachineReserved.vue":5257,"./kubevirt.io.virtualmachine/VirtualMachineSSHKey.vue":59026,"./kubevirt.io.virtualmachine/VirtualMachineUSBDevices/DeviceList.vue":34529,"./kubevirt.io.virtualmachine/VirtualMachineUSBDevices/index.vue":10707,"./kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/VGpuDeviceList.vue":33212,"./kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/index.vue":92200,"./kubevirt.io.virtualmachine/VirtualMachineVolume/index.vue":95191,"./kubevirt.io.virtualmachine/VirtualMachineVolume/type/container.vue":88656,"./kubevirt.io.virtualmachine/VirtualMachineVolume/type/existing.vue":6970,"./kubevirt.io.virtualmachine/VirtualMachineVolume/type/vmImage.vue":49083,"./kubevirt.io.virtualmachine/VirtualMachineVolume/type/volume.vue":18693,"./kubevirt.io.virtualmachine/index.vue":89740,"./loadbalancer.harvesterhci.io.ippool/Priority.vue":89625,"./loadbalancer.harvesterhci.io.ippool/PriorityRow.vue":1214,"./loadbalancer.harvesterhci.io.ippool/Range.vue":52728,"./loadbalancer.harvesterhci.io.ippool/Selector.vue":10788,"./loadbalancer.harvesterhci.io.ippool/index.vue":59405,"./loadbalancer.harvesterhci.io.loadbalancer/HealthCheck.vue":68201,"./loadbalancer.harvesterhci.io.loadbalancer/Listeners.vue":67347,"./loadbalancer.harvesterhci.io.loadbalancer/index.vue":49464,"./network.harvesterhci.io.clusternetwork/index.vue":87544,"./network.harvesterhci.io.vlanconfig/NodeSelector.vue":95058,"./network.harvesterhci.io.vlanconfig/index.vue":1307};function r(e){var t=s(e);return a(t)}function s(e){if(!a.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=s,e.exports=r,r.id=80373}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.edit.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.edit.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.edit.js.map new file mode 100644 index 00000000..ab7db696 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.edit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.edit.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./components/DiskTags.vue","webpack://harvester-1.5.0-dev/./components/DiskTags.vue?e5b6","webpack://harvester-1.5.0-dev/./components/settings/additional-ca.vue","webpack://harvester-1.5.0-dev/./components/settings/additional-ca.vue?a3fd","webpack://harvester-1.5.0-dev/./components/settings/additional-guest-memory-overhead-ratio.vue","webpack://harvester-1.5.0-dev/./components/settings/additional-guest-memory-overhead-ratio.vue?ea76","webpack://harvester-1.5.0-dev/./components/settings/auto-rotate-rke2-certs.vue","webpack://harvester-1.5.0-dev/./components/settings/auto-rotate-rke2-certs.vue?dfb9","webpack://harvester-1.5.0-dev/./components/settings/backup-target.vue","webpack://harvester-1.5.0-dev/./components/settings/backup-target.vue?9f0a","webpack://harvester-1.5.0-dev/./components/settings/containerd-registry.vue","webpack://harvester-1.5.0-dev/./components/settings/containerd-registry.vue?0a06","webpack://harvester-1.5.0-dev/./components/settings/csi-driver-config.vue","webpack://harvester-1.5.0-dev/./components/settings/csi-driver-config.vue?f189","webpack://harvester-1.5.0-dev/./components/settings/default-vm-termination-grace-period-seconds.vue","webpack://harvester-1.5.0-dev/./components/settings/default-vm-termination-grace-period-seconds.vue?43bb","webpack://harvester-1.5.0-dev/./components/settings/http-proxy.vue","webpack://harvester-1.5.0-dev/./components/settings/http-proxy.vue?3455","webpack://harvester-1.5.0-dev/./components/settings/ntp-servers.vue","webpack://harvester-1.5.0-dev/./components/settings/ntp-servers.vue?ac4a","webpack://harvester-1.5.0-dev/./components/settings/overcommit-config.vue","webpack://harvester-1.5.0-dev/./components/settings/overcommit-config.vue?8ab9","webpack://harvester-1.5.0-dev/./components/settings/ssl-certificates.vue","webpack://harvester-1.5.0-dev/./components/settings/ssl-certificates.vue?68a1","webpack://harvester-1.5.0-dev/./components/settings/ssl-parameters.vue","webpack://harvester-1.5.0-dev/./components/settings/ssl-parameters.vue?5280","webpack://harvester-1.5.0-dev/./components/settings/storage-network.vue","webpack://harvester-1.5.0-dev/./components/settings/storage-network.vue?b2c5","webpack://harvester-1.5.0-dev/./components/settings/support-bundle-image.vue","webpack://harvester-1.5.0-dev/./components/settings/support-bundle-image.vue?c013","webpack://harvester-1.5.0-dev/./components/settings/support-bundle-namespaces.vue","webpack://harvester-1.5.0-dev/./components/settings/support-bundle-namespaces.vue?b57b","webpack://harvester-1.5.0-dev/./components/settings/vm-force-reset-policy.vue","webpack://harvester-1.5.0-dev/./components/settings/vm-force-reset-policy.vue?7fbd","webpack://harvester-1.5.0-dev/./dialog/RestartVMDialog.vue","webpack://harvester-1.5.0-dev/./dialog/RestartVMDialog.vue?01ab","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/generic.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/generic.vue?62e0","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/harvester-seeder.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/harvester-seeder.vue?b385","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/index.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/index.vue?1b85","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/nvidia-driver-toolkit.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/nvidia-driver-toolkit.vue?d225","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/pcidevices-controller.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/pcidevices-controller.vue?d2a6","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-logging.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-logging.vue?a50b","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-monitoring.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-monitoring.vue?e2b4","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-vcluster.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-vcluster.vue?bdbd","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/vm-import-controller.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/vm-import-controller.vue?c7bc","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.cloudtemplate.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.cloudtemplate.vue?8ad9","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/HarvesterDisk.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/HarvesterDisk.vue?2d78","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/HarvesterSeeder.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/HarvesterSeeder.vue?8fa4","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/index.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/index.vue?4328","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.keypair.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.keypair.vue?3971","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.clusterflow.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.clusterflow.vue?9b68","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.clusteroutput.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.clusteroutput.vue?0650","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.flow.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.flow.vue?962d","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.output.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.output.vue?2b77","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.monitoring.alertmanagerconfig/index.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.monitoring.alertmanagerconfig/index.vue?1de8","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.networkattachmentdefinition.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.networkattachmentdefinition.vue?f0bf","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.schedulevmbackup.vue","webpack://harvester-1.5.0-dev/./utils/cron.js","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.schedulevmbackup.vue?fefc","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.secret.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.secret.vue?d43a","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.setting.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.setting.vue?86d0","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/index.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/index.vue?c722","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/custom.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/custom.vue?4ce7","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/driver.longhorn.io_v1.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/driver.longhorn.io_v1.vue?9f92","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/driver.longhorn.io_v2.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/driver.longhorn.io_v2.vue?a23c","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/lvm.driver.harvesterhci.io.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/lvm.driver.harvesterhci.io.vue?12c6","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachinebackup.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachinebackup.vue?45d0","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachineimage.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachineimage.vue?f494","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachinetemplateversion.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachinetemplateversion.vue?fee6","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.vmsnapshot.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.vmsnapshot.vue?d2ee","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.volume.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.volume.vue?b842","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.volumesnapshot.vue","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.volumesnapshot.vue?ba74","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/CompatibilityMatrix.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/CompatibilityMatrix.vue?4551","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachinePciDevices/index.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachinePciDevices/index.vue?b0e5","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineReserved.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineReserved.vue?c61c","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineUSBDevices/index.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineUSBDevices/index.vue?f022","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/index.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/index.vue?9285","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/index.vue","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/index.vue?fa4b","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Priority.vue","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Priority.vue?4fc8","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/PriorityRow.vue","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/PriorityRow.vue?5a80","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Range.vue","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Range.vue?c130","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Selector.vue","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Selector.vue?b527","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/index.vue","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/index.vue?de7f","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/HealthCheck.vue","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/HealthCheck.vue?b94f","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/Listeners.vue","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/Listeners.vue?9c28","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/index.vue","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/index.vue?8a2e","webpack://harvester-1.5.0-dev/./edit/management.cattle.io.project.vue","webpack://harvester-1.5.0-dev/./edit/management.cattle.io.project.vue?3f34","webpack://harvester-1.5.0-dev/./edit/network.harvesterhci.io.clusternetwork/index.vue","webpack://harvester-1.5.0-dev/./edit/network.harvesterhci.io.clusternetwork/index.vue?cd9c","webpack://harvester-1.5.0-dev/./edit/network.harvesterhci.io.vlanconfig/NodeSelector.vue","webpack://harvester-1.5.0-dev/./edit/network.harvesterhci.io.vlanconfig/NodeSelector.vue?6477","webpack://harvester-1.5.0-dev/./edit/network.harvesterhci.io.vlanconfig/index.vue","webpack://harvester-1.5.0-dev/./edit/network.harvesterhci.io.vlanconfig/index.vue?fcd4","webpack://harvester-1.5.0-dev/./components/DiskTags.vue?ef9e","webpack://harvester-1.5.0-dev/./components/settings/auto-rotate-rke2-certs.vue?8261","webpack://harvester-1.5.0-dev/./components/settings/backup-target.vue?6581","webpack://harvester-1.5.0-dev/./components/settings/containerd-registry.vue?c471","webpack://harvester-1.5.0-dev/./components/settings/csi-driver-config.vue?fee7","webpack://harvester-1.5.0-dev/./components/settings/ssl-certificates.vue?8ac5","webpack://harvester-1.5.0-dev/./components/settings/vm-force-reset-policy.vue?6c5f","webpack://harvester-1.5.0-dev/./dialog/RestartVMDialog.vue?9c2e","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/generic.vue?8d0d","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/harvester-seeder.vue?96ea","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/nvidia-driver-toolkit.vue?d2d2","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/pcidevices-controller.vue?ee65","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-logging.vue?aacb","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-monitoring.vue?5c02","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-vcluster.vue?585d","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/vm-import-controller.vue?00df","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.cloudtemplate.vue?271c","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/HarvesterDisk.vue?3bb5","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/index.vue?ea00","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.keypair.vue?2f69","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.output.vue?f652","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.monitoring.alertmanagerconfig/index.vue?0209","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.setting.vue?875a","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/index.vue?9758","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/driver.longhorn.io_v1.vue?ca68","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/driver.longhorn.io_v2.vue?4401","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/lvm.driver.harvesterhci.io.vue?cba6","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachinebackup.vue?caef","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachineimage.vue?2639","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.vmsnapshot.vue?3174","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/CompatibilityMatrix.vue?3372","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/index.vue?ad22","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Priority.vue?7ecd","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/PriorityRow.vue?ecb3","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Range.vue?0c8a","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/Listeners.vue?a5b5","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/index.vue?9e26","webpack://harvester-1.5.0-dev/./edit/network.harvesterhci.io.vlanconfig/index.vue?2e24","webpack://harvester-1.5.0-dev/./components/DiskTags.vue?be84","webpack://harvester-1.5.0-dev/./components/settings/auto-rotate-rke2-certs.vue?f3d8","webpack://harvester-1.5.0-dev/./components/settings/backup-target.vue?4f48","webpack://harvester-1.5.0-dev/./components/settings/containerd-registry.vue?4f95","webpack://harvester-1.5.0-dev/./components/settings/csi-driver-config.vue?0b55","webpack://harvester-1.5.0-dev/./components/settings/ssl-certificates.vue?e81b","webpack://harvester-1.5.0-dev/./components/settings/vm-force-reset-policy.vue?b1a4","webpack://harvester-1.5.0-dev/./dialog/RestartVMDialog.vue?70b1","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/generic.vue?8126","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/harvester-seeder.vue?cf21","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/nvidia-driver-toolkit.vue?adb0","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/pcidevices-controller.vue?1192","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-logging.vue?de08","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-monitoring.vue?d1c7","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/rancher-vcluster.vue?7e6b","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/vm-import-controller.vue?f594","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.cloudtemplate.vue?459d","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/HarvesterDisk.vue?d8c1","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.host/index.vue?d89e","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.keypair.vue?ba04","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.logging.output.vue?7bb4","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.monitoring.alertmanagerconfig/index.vue?4d5b","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.setting.vue?9395","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/index.vue?d99c","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/driver.longhorn.io_v1.vue?c9f9","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/driver.longhorn.io_v2.vue?0acd","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/lvm.driver.harvesterhci.io.vue?3f4e","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachinebackup.vue?bfdd","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.virtualmachineimage.vue?9abd","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.vmsnapshot.vue?69b0","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/CompatibilityMatrix.vue?929f","webpack://harvester-1.5.0-dev/./edit/kubevirt.io.virtualmachine/index.vue?96eb","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Priority.vue?8245","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/PriorityRow.vue?ad46","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.ippool/Range.vue?b0d7","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/Listeners.vue?8d29","webpack://harvester-1.5.0-dev/./edit/loadbalancer.harvesterhci.io.loadbalancer/index.vue?b3f5","webpack://harvester-1.5.0-dev/./edit/network.harvesterhci.io.vlanconfig/index.vue?9759","webpack://harvester-1.5.0-dev/./.shell/edit/logging.banzaicloud.io.output/providers/ sync ^\\.\\/.*$","webpack://harvester-1.5.0-dev/./.shell/edit/secret/ sync ^\\.\\/.*$","webpack://harvester-1.5.0-dev/./components/settings/ sync ^\\.\\/.*\\.vue$","webpack://harvester-1.5.0-dev/./components/settings/ sync nonrecursive ^.*\\.vue$","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.addon/ sync ^\\.\\/.*\\.vue$","webpack://harvester-1.5.0-dev/./edit/harvesterhci.io.storage/provisioners/ sync ^\\.\\/.*$","webpack://harvester-1.5.0-dev/./edit/ sync ^\\.\\/.*\\/.*\\.vue$"],"sourcesContent":["<script>\nimport { _VIEW, _EDIT, _CREATE } from '@shell/config/query-params';\nimport Tag from '@shell/components/Tag';\n\nexport default {\n name: 'Tags',\n\n emits: ['update:value'],\n\n components: { Tag },\n\n props: {\n value: {\n type: Array,\n required: true,\n },\n\n label: {\n type: String,\n default: '',\n },\n\n labelKey: {\n type: String,\n default: '',\n },\n\n addLabel: {\n type: String,\n default: '',\n },\n\n addLabelKey: {\n type: String,\n default: '',\n },\n\n canAdd: {\n type: Boolean,\n default: true,\n },\n\n mode: {\n type: String,\n default: _CREATE,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {\n tags: this.value,\n inputVisible: false,\n inputValue: '',\n };\n },\n\n computed: {\n isCreate() {\n return this.mode === _CREATE;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isEdit() {\n return this.mode === _EDIT;\n },\n\n canRemove() {\n return !this.isView;\n },\n\n addVisible() {\n return this.canAdd && !this.isView;\n },\n },\n\n methods: {\n onClickPlusButton() {\n this.inputVisible = true;\n this.$nextTick(() => {\n if ( this.$refs.addTagInput ) {\n this.$refs.addTagInput.focus();\n }\n });\n },\n\n confirmAdd() {\n if (this.inputValue && !this.value.includes(this.inputValue)) {\n this.tags.push(this.inputValue);\n this.$emit('update:value', this.tags);\n }\n\n this.inputValue = '';\n this.inputVisible = false;\n },\n\n onRemoveTag(tag) {\n this.tags = this.tags.filter((v) => v !== tag);\n this.$emit('update:value', this.tags);\n },\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"label\">\n <div class=\"text-label\">\n <t\n v-if=\"labelKey\"\n :k=\"labelKey\"\n />\n <template v-else-if=\"label\">\n {{ label }}\n </template>\n </div>\n </div>\n <div class=\"mt-10\">\n <Tag\n v-for=\"(tag, i) in value\"\n :key=\"i\"\n class=\"tag\"\n >\n <span>\n {{ tag }}\n </span>\n <i\n v-if=\"canRemove\"\n class=\"icon icon-close ml-5 icon-sm\"\n @click=\"(e) => onRemoveTag(tag)\"\n />\n </Tag>\n <span\n v-if=\"addVisible && !inputVisible\"\n class=\"tag add\"\n @click=\"onClickPlusButton\"\n >\n <i class=\"icon icon-plus icon-sm\" />\n <span>\n <t\n v-if=\"addLabelKey\"\n :k=\"addLabelKey\"\n />\n <template v-else-if=\"addLabel\">\n {{ addLabel }}\n </template>\n </span>\n </span>\n <span\n v-else-if=\"addVisible && inputVisible\"\n class=\"tag input\"\n >\n <input\n ref=\"addTagInput\"\n v-model=\"inputValue\"\n type=\"text\"\n @blur=\"confirmAdd\"\n @keydown.enter.prevent=\"confirmAdd\"\n />\n </span>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .tag {\n border: 1px solid var(--primary);\n border-radius: var(--border-radius);\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n font-size: 14px;\n line-height: 20px;\n list-style: none;\n display: inline-block;\n height: auto;\n margin-inline-end: 8px;\n padding-inline: 7px;\n white-space: nowrap;\n background: var(--accent-btn);\n opacity: 1;\n text-align: start;\n color: var(--link);\n margin-bottom: 10px;\n margin-right: 8px;\n padding-top: 8px;\n padding-bottom: 8px;\n\n i {\n cursor: pointer;\n }\n\n &.add {\n background: var(--body-bg);\n border-style: dashed;\n cursor: pointer;\n }\n\n &.input {\n border: none;\n border-radius: none;\n background: var(--body-bg);\n padding: 0px;\n }\n }\n</style>\n","import { render } from \"./DiskTags.vue?vue&type=template&id=6b2f75f1&scoped=true\"\nimport script from \"./DiskTags.vue?vue&type=script&lang=js\"\nexport * from \"./DiskTags.vue?vue&type=script&lang=js\"\n\nimport \"./DiskTags.vue?vue&type=style&index=0&id=6b2f75f1&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6b2f75f1\"]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport FileSelector, { createOnSelected } from '@shell/components/form/FileSelector';\nimport { TextAreaAutoGrow } from '@components/Form/TextArea';\n\nexport default {\n name: 'HarvesterAdditionalCA',\n\n components: { FileSelector, TextAreaAutoGrow },\n\n mixins: [CreateEditView],\n\n methods: { onKeySelected: createOnSelected('value.value') },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <FileSelector\n class=\"btn btn-sm bg-primary mb-10\"\n :label=\"t('generic.readFromFile')\"\n @selected=\"onKeySelected\"\n />\n\n <div>\n <TextAreaAutoGrow\n v-model:value=\"value.value\"\n :min-height=\"254\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./additional-ca.vue?vue&type=template&id=ce5d9238\"\nimport script from \"./additional-ca.vue?vue&type=script&lang=js\"\nexport * from \"./additional-ca.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { LabeledInput } from '@components/Form/LabeledInput';\n\nexport default {\n name: 'AdditionalGuestMemoryOverheadRatio',\n\n components: { LabeledInput },\n\n mixins: [CreateEditView],\n\n data() {\n return { ratio: this.value.value || this.value.default };\n },\n\n methods: {\n update() {\n this.value['value'] = this.ratio;\n },\n\n useDefault() {\n this['ratio'] = this.value.default;\n this.update();\n },\n },\n};\n</script>\n\n<template>\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"ratio\"\n :label=\"t('harvester.setting.ratio')\"\n @update:value=\"update\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./additional-guest-memory-overhead-ratio.vue?vue&type=template&id=26d86d02\"\nimport script from \"./additional-guest-memory-overhead-ratio.vue?vue&type=script&lang=js\"\nexport * from \"./additional-guest-memory-overhead-ratio.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { RadioGroup } from '@components/Form/Radio';\nimport UnitInput from '@shell/components/form/UnitInput';\n\nexport default {\n name: 'HarvesterAutoRotateRKE2Certs',\n\n components: { RadioGroup, UnitInput },\n\n mixins: [CreateEditView],\n\n data() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parseDefaultValue = JSON.parse(this.value.default);\n }\n\n return { parseDefaultValue };\n },\n\n created() {\n this.update();\n },\n\n methods: {\n update() {\n const value = JSON.stringify(this.parseDefaultValue);\n\n this.value['value'] = value;\n }\n },\n\n watch: {\n value: {\n handler(neu) {\n const parseDefaultValue = JSON.parse(neu.value);\n\n this['parseDefaultValue'] = parseDefaultValue;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div class=\"row\">\n <div class=\"col span-12\">\n <RadioGroup\n v-model:value=\"parseDefaultValue.enable\"\n class=\"mb-20\"\n name=\"model\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n @update:value=\"update\"\n />\n <UnitInput\n v-if=\"parseDefaultValue.enable\"\n v-model:value.number=\"parseDefaultValue.expiringInHours\"\n class=\"mb-20\"\n :min=\"1\"\n :max=\"8759\"\n :required=\"true\"\n :suffix=\"parseDefaultValue.expiringInHours === 1 ? 'Hour' : 'Hours'\"\n :label=\"t('harvester.setting.autoRotateRKE2Certs.expiringInHours')\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./auto-rotate-rke2-certs.vue?vue&type=template&id=034d9714&scoped=true\"\nimport script from \"./auto-rotate-rke2-certs.vue?vue&type=script&lang=js\"\nexport * from \"./auto-rotate-rke2-certs.vue?vue&type=script&lang=js\"\n\nimport \"./auto-rotate-rke2-certs.vue?vue&type=style&index=0&id=034d9714&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-034d9714\"]])\n\nexport default __exports__","<script>\nimport Tip from '@shell/components/Tip';\nimport Password from '@shell/components/form/Password';\nimport MessageLink from '@shell/components/MessageLink';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { HCI_SETTING } from '../../config/settings';\n\nconst DEFAULT_TYPE = 's3';\n\nexport default {\n name: 'HarvesterEditBackupTarget',\n\n components: {\n LabeledInput, LabeledSelect, Tip, Password, MessageLink\n },\n\n mixins: [CreateEditView],\n\n data() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parseDefaultValue = { type: '', endpoint: '' };\n }\n\n // set default type to s3\n if (!parseDefaultValue.type) {\n parseDefaultValue.type = DEFAULT_TYPE;\n }\n\n // set default virtualHostedStyle to false\n parseDefaultValue.virtualHostedStyle = false;\n\n return {\n parseDefaultValue,\n errors: []\n };\n },\n\n computed: {\n typeOption() {\n return [{\n value: 'nfs',\n label: 'NFS'\n }, {\n value: DEFAULT_TYPE,\n label: 'S3'\n }];\n },\n\n virtualHostedStyleOptions() {\n return [{\n value: true,\n label: 'True'\n }, {\n value: false,\n label: 'False'\n }];\n },\n\n isS3() {\n return this.parseDefaultValue.type === DEFAULT_TYPE;\n },\n\n endpointPlaceholder() {\n return this.isS3 ? '' : 'nfs://server:/path/';\n },\n\n toCA() {\n return `${ HCI_SETTING.ADDITIONAL_CA }?mode=edit`;\n }\n },\n\n watch: {\n value: {\n handler(neu) {\n let parseDefaultValue;\n\n try {\n parseDefaultValue = JSON.parse(neu.value);\n } catch (err) {\n parseDefaultValue = { type: '', endpoint: '' };\n }\n\n this['parseDefaultValue'] = parseDefaultValue;\n this.update();\n },\n deep: true\n }\n },\n\n created() {\n this.update();\n },\n\n methods: {\n update() {\n if (!this.isS3) {\n delete this.parseDefaultValue.accessKeyId;\n delete this.parseDefaultValue.secretAccessKey;\n delete this.parseDefaultValue.bucketName;\n delete this.parseDefaultValue.bucketRegion;\n delete this.parseDefaultValue.virtualHostedStyle;\n delete this.parseDefaultValue.cert;\n }\n\n if (this.isS3 && !this.parseDefaultValue.virtualHostedStyle) {\n this.parseDefaultValue.virtualHostedStyle = false;\n }\n\n if (!this.parseDefaultValue.type) {\n delete this.value['value'];\n } else {\n this.value['value'] = JSON.stringify(this.parseDefaultValue);\n }\n },\n\n useDefault() {\n this['parseDefaultValue'] = { type: '', endpoint: '' };\n }\n }\n};\n</script>\n\n<template>\n <div\n class=\"row\"\n @input=\"update\"\n >\n <div class=\"col span-12\">\n <LabeledSelect\n v-model:value=\"parseDefaultValue.type\"\n class=\"mb-20\"\n :label=\"t('harvester.fields.type')\"\n :options=\"typeOption\"\n @update:value=\"update\"\n />\n <LabeledInput\n v-model:value=\"parseDefaultValue.endpoint\"\n class=\"mb-5\"\n :placeholder=\"endpointPlaceholder\"\n :mode=\"mode\"\n label=\"Endpoint\"\n />\n <Tip\n class=\"mb-20\"\n icon=\"icon icon-info\"\n :text=\"t('harvester.backup.backupTargetTip')\"\n />\n\n <template v-if=\"isS3\">\n <LabeledInput\n v-model:value=\"parseDefaultValue.bucketName\"\n class=\"mb-20\"\n :mode=\"mode\"\n label=\"Bucket Name\"\n required\n />\n\n <LabeledInput\n v-model:value=\"parseDefaultValue.bucketRegion\"\n class=\"mb-20\"\n :mode=\"mode\"\n label=\"Bucket Region\"\n required\n />\n\n <LabeledInput\n v-model:value=\"parseDefaultValue.accessKeyId\"\n :placeholder=\"t('harvester.setting.placeholder.accessKeyId')\"\n class=\"mb-20\"\n :mode=\"mode\"\n label=\"Access Key ID\"\n required\n />\n\n <Password\n v-model:value=\"parseDefaultValue.secretAccessKey\"\n class=\"mb-20\"\n :mode=\"mode\"\n :placeholder=\"t('harvester.setting.placeholder.secretAccessKey')\"\n label=\"Secret Access Key\"\n required\n />\n\n <LabeledSelect\n v-model:value=\"parseDefaultValue.virtualHostedStyle\"\n class=\"mb-20\"\n label=\"Virtual Hosted-Style\"\n :options=\"virtualHostedStyleOptions\"\n @update:value=\"update\"\n />\n\n <div class=\"mb-20\">\n <Tip icon=\"icon icon-info\">\n <MessageLink\n :to=\"toCA\"\n target=\"_blank\"\n prefix-label=\"harvester.setting.message.ca.prefix\"\n middle-label=\"harvester.setting.message.ca.middle\"\n suffix-label=\"harvester.setting.message.ca.suffix\"\n />\n </Tip>\n </div>\n </template>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\np {\n display: flex;\n align-items: center;\n}\n.icon-h-question {\n font-size: 24px;\n}\n.tip {\n font-size: 15px;\n}\n\n.goCA {\n margin: 0 3px;\n}\n</style>\n","import { render } from \"./backup-target.vue?vue&type=template&id=62a46348&scoped=true\"\nimport script from \"./backup-target.vue?vue&type=script&lang=js\"\nexport * from \"./backup-target.vue?vue&type=script&lang=js\"\n\nimport \"./backup-target.vue?vue&type=style&index=0&id=62a46348&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-62a46348\"]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { _EDIT } from '@shell/config/query-params';\nimport { randomStr } from '@shell/utils/string';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport KeyValue from '@shell/components/form/KeyValue';\nimport InfoBox from '@shell/components/InfoBox';\nimport { clone } from '@shell/utils/object';\n\nexport default {\n name: 'HarvesterContainerdRegistry',\n\n components: {\n InfoBox,\n KeyValue,\n LabeledInput,\n LabeledSelect,\n },\n\n props: {\n mode: {\n type: String,\n default: _EDIT,\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n\n registerBeforeHook: {\n type: Function,\n required: true,\n },\n },\n\n data() {\n const originMirror = {\n Endpoints: [],\n Rewrites: {}\n };\n\n const originConfig = {\n Auth: {\n Username: '',\n Password: '',\n Auth: '',\n IdentityToken: ''\n },\n TLS: { InsecureSkipVerify: false }\n };\n\n let originValue = {};\n const baseValue = {\n Mirrors: { '': clone(originMirror) },\n Configs: {}\n };\n\n try {\n originValue = JSON.parse(this.value.value);\n } catch (error) {\n originValue = baseValue;\n }\n\n if (!Object.keys(originValue).length) {\n originValue = baseValue;\n }\n\n const _mirrors = originValue.Mirrors || {};\n const _configs = originValue.Configs || {};\n const mirrorsKeys = Object.keys(_mirrors);\n const configsKeys = Object.keys(_configs);\n const mirrors = mirrorsKeys.map((key) => {\n return {\n key,\n value: originValue.Mirrors[key],\n idx: randomStr(5).toLowerCase()\n };\n });\n\n const configs = configsKeys.map((key) => {\n if (!originValue.Configs[key]?.Auth) {\n originValue.Configs[key].Auth = originConfig.Auth;\n }\n\n return {\n key,\n value: originValue.Configs[key],\n idx: randomStr(5).toLowerCase()\n };\n });\n\n return {\n mirrors,\n configs,\n originMirror,\n originConfig,\n mirrorsKeys,\n configsKeys,\n errors: [],\n };\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.willSave, 'willSave');\n }\n },\n\n computed: {\n insecureSkipVerifyOption() {\n return [{\n label: 'True',\n value: true\n }, {\n label: 'False',\n value: false\n }];\n },\n },\n\n methods: {\n willSave() {\n const errors = [];\n\n if (this.value.value) {\n try {\n JSON.parse(this.value.value);\n\n this.mirrors.forEach((mirror) => {\n if (!mirror.key) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.containerdRegistry.mirrors.registryName') }, true));\n }\n\n if (mirror.value.Endpoints.length === 0) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.containerdRegistry.mirrors.endpoints') }, true));\n }\n });\n\n this.configs.forEach((config) => {\n if (!config.key) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.containerdRegistry.configs.registryEDQNorIP') }, true));\n }\n });\n } catch (e) {\n\n }\n }\n\n if (errors.length > 0) {\n return Promise.reject(errors);\n } else {\n return Promise.resolve();\n }\n },\n\n update() {\n const _mirrors = {};\n const _configs = {};\n\n this.mirrors.forEach((mirror) => {\n _mirrors[mirror.key] = mirror.value;\n });\n\n this.configs.forEach((config) => {\n _configs[config.key] = config.value;\n });\n\n const out = {\n Mirrors: _mirrors,\n Configs: _configs\n };\n\n if (!Object.keys(_mirrors).length) {\n delete out.Mirrors;\n }\n\n if (!Object.keys(_configs).length) {\n delete out.Configs;\n }\n\n const value = Object.keys(out).length ? JSON.stringify(out) : '';\n\n this.value['value'] = value;\n },\n\n addMirror() {\n this.mirrors.push({\n key: '', value: clone(this.originMirror), idx: randomStr(5).toLowerCase()\n });\n this.update();\n },\n\n addConfig() {\n this.configs.push({\n key: '', value: clone(this.originConfig), idx: randomStr(5).toLowerCase()\n });\n this.update();\n },\n\n remove(type, idx) {\n this[type].splice(idx, 1);\n this.update();\n }\n },\n\n watch: {\n value: {\n handler(value) {\n if (!value.value) { // useDefaultVale\n this['mirrors'] = [];\n this['configs'] = [];\n this.update();\n }\n },\n deep: true,\n }\n }\n};\n</script>\n\n<template>\n <div>\n <h3>{{ t('harvester.setting.containerdRegistry.mirrors.mirrors') }}</h3>\n <div>\n <InfoBox\n v-for=\"mirror, idx in mirrors\"\n :key=\"mirror.idx\"\n class=\"box\"\n >\n <button\n type=\"button\"\n class=\"role-link btn btn-sm remove\"\n @click=\"remove('mirrors', idx)\"\n >\n <i class=\"icon icon-2x icon-x\" />\n </button>\n\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"mirror.key\"\n :mode=\"mode\"\n required\n label-key=\"harvester.setting.containerdRegistry.mirrors.registryName\"\n @keydown.native.enter.prevent=\"()=>{}\"\n @update:value=\"update\"\n />\n </div>\n </div>\n\n <div class=\"mb-20\">\n <LabeledSelect\n v-model:value=\"mirror.value.Endpoints\"\n :mode=\"mode\"\n required\n label-key=\"harvester.setting.containerdRegistry.mirrors.endpoints\"\n :multiple=\"true\"\n :taggable=\"true\"\n :searchable=\"true\"\n :options=\"[]\"\n @keydown.native.enter.prevent=\"()=>{}\"\n @update:value=\"update\"\n />\n </div>\n\n <div class=\"row mb-20\">\n <KeyValue\n v-model:value=\"mirror.value.Rewrites\"\n :add-label=\"t('harvester.setting.containerdRegistry.mirrors.rewrite.addRewrite')\"\n :mode=\"mode\"\n :title=\"t('harvester.setting.containerdRegistry.mirrors.rewrite.rewrite')\"\n :read-allowed=\"false\"\n :value-can-be-empty=\"true\"\n @keydown.native.enter.prevent=\"()=>{}\"\n @update:value=\"update\"\n />\n </div>\n </infobox>\n </div>\n\n <button\n class=\"btn btn-sm role-primary\"\n @click.self=\"addMirror\"\n >\n {{ t('harvester.setting.containerdRegistry.mirrors.addMirror') }}\n </button>\n\n <hr class=\"divider mt-20 mb-20\" />\n\n <h3>{{ t('harvester.setting.containerdRegistry.configs.configs') }}</h3>\n <div>\n <InfoBox\n v-for=\"config, idx in configs\"\n :key=\"config.idx\"\n class=\"box\"\n >\n <button\n type=\"button\"\n class=\"role-link btn btn-sm remove\"\n @click=\"remove('configs', idx)\"\n >\n <i class=\"icon icon-2x icon-x\" />\n </button>\n\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"config.key\"\n :mode=\"mode\"\n :placeholder=\"t('harvester.setting.containerdRegistry.configs.registryPlaceholder')\"\n label-key=\"harvester.setting.containerdRegistry.configs.registryEDQNorIP\"\n @update:value=\"update\"\n />\n </div>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"config.value.Auth.Username\"\n :mode=\"mode\"\n label-key=\"harvester.setting.containerdRegistry.configs.username\"\n @update:value=\"update\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"config.value.Auth.Password\"\n :mode=\"mode\"\n label-key=\"harvester.setting.containerdRegistry.configs.password\"\n @update:value=\"update\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"config.value.Auth.Auth\"\n :mode=\"mode\"\n type=\"multiline\"\n :min-height=\"150\"\n label-key=\"harvester.setting.containerdRegistry.configs.auth\"\n @update:value=\"update\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"config.value.Auth.IdentityToken\"\n :mode=\"mode\"\n type=\"multiline\"\n :min-height=\"150\"\n label-key=\"harvester.setting.containerdRegistry.configs.identityToken\"\n @update:value=\"update\"\n />\n </div>\n </div>\n\n <div class=\"row\">\n <LabeledSelect\n v-model:value=\"config.value.TLS.InsecureSkipVerify\"\n :mode=\"mode\"\n label-key=\"harvester.setting.containerdRegistry.configs.insecureSkipVerify\"\n :options=\"insecureSkipVerifyOption\"\n @update:value=\"update\"\n />\n </div>\n </infobox>\n\n <button\n class=\"btn btn-sm role-primary\"\n @click=\"addConfig\"\n >\n {{ t('harvester.setting.containerdRegistry.configs.addConfig') }}\n </button>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.box {\n position: relative;\n padding-top: 40px;\n}\n.remove {\n position: absolute;\n top: 10px;\n right: 10px;\n padding: 0px;\n}\n</style>\n","import { render } from \"./containerd-registry.vue?vue&type=template&id=d281fc5e&scoped=true\"\nimport script from \"./containerd-registry.vue?vue&type=script&lang=js\"\nexport * from \"./containerd-registry.vue?vue&type=script&lang=js\"\n\nimport \"./containerd-registry.vue?vue&type=style&index=0&id=d281fc5e&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d281fc5e\"]])\n\nexport default __exports__","<script>\nimport { _EDIT } from '@shell/config/query-params';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport InfoBox from '@shell/components/InfoBox';\nimport { allHash } from '@shell/utils/promise';\nimport { CSI_DRIVER, VOLUME_SNAPSHOT_CLASS } from '../../types';\n\nimport { LONGHORN_DRIVER } from '@shell/config/types';\n\nexport default {\n name: 'HarvesterCsiDriver',\n\n components: {\n InfoBox,\n LabeledSelect,\n },\n\n props: {\n mode: {\n type: String,\n default: _EDIT,\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n\n registerBeforeHook: {\n type: Function,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = {\n csiDrivers: this.$store.dispatch(`${ inStore }/findAll`, { type: CSI_DRIVER }),\n volumeSnapshotClass: this.$store.dispatch(`${ inStore }/findAll`, { type: VOLUME_SNAPSHOT_CLASS })\n };\n\n await allHash(hash);\n },\n\n data() {\n const initValue = this.value.value || this.value.default;\n const configArr = this.parseValue(initValue);\n\n return { configArr };\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.willSave, 'willSave');\n }\n },\n\n computed: {\n provisioners() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const csiDrivers = this.$store.getters[`${ inStore }/all`](CSI_DRIVER) || [];\n\n return csiDrivers.filter((provisioner) => {\n return !this.configArr.map((config) => config.key).includes(provisioner.name);\n }).map((provisioner) => {\n return provisioner.name;\n });\n },\n\n disableAdd() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const csiDrivers = this.$store.getters[`${ inStore }/all`](CSI_DRIVER) || [];\n\n return this.configArr.length >= csiDrivers.length;\n }\n },\n\n methods: {\n getVolumeSnapshotOptions(provisioner) {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const volumeSnapshotClass = this.$store.getters[`${ inStore }/all`](VOLUME_SNAPSHOT_CLASS) || [];\n\n return volumeSnapshotClass.filter((snapshot) => {\n return snapshot.driver === provisioner;\n }).map((snapshot) => {\n return {\n label: snapshot.name,\n value: snapshot.name\n };\n });\n },\n\n parseValue(value) {\n const out = [];\n let csiConfigJson = {};\n\n try {\n csiConfigJson = JSON.parse(value);\n } catch (e) {\n new Error('json error');\n }\n\n for (const [key, value] of Object.entries(csiConfigJson)) {\n out.push({\n key,\n value,\n });\n }\n\n return out;\n },\n\n update() {\n const out = {};\n\n this.configArr.map((config) => {\n out[config.key] = config.value;\n });\n\n const value = this.configArr.length ? JSON.stringify(out) : '';\n\n this.value['value'] = value;\n },\n\n willSave() {\n this.update();\n const errors = [];\n\n try {\n this.configArr.forEach((config) => {\n if (!config.key) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.csiDriverConfig.provisioner') }, true));\n }\n\n if (!config.value.volumeSnapshotClassName) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.csiDriverConfig.volumeSnapshotClassName') }, true));\n }\n\n if (!config.value.backupVolumeSnapshotClassName) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.csiDriverConfig.backupVolumeSnapshotClassName') }, true));\n }\n });\n } catch (e) {\n\n }\n\n if (errors.length > 0) {\n return Promise.reject(errors);\n } else {\n return Promise.resolve();\n }\n },\n\n remove(idx) {\n this.configArr.splice(idx, 1);\n },\n\n disableEdit(driver) {\n return driver === LONGHORN_DRIVER;\n },\n\n add() {\n this.configArr.push({\n key: '',\n value: { volumeSnapshotClassName: '', backupVolumeSnapshotClassName: '' }\n });\n },\n\n useDefault() {\n const configArr = this.parseValue(this.value.default);\n\n this['configArr'] = configArr;\n this.update();\n }\n }\n};\n</script>\n\n<template>\n <div>\n <InfoBox\n v-for=\"(driver, idx) in configArr\"\n :key=\"idx\"\n >\n <button\n :disabled=\"disableEdit(driver.key)\"\n type=\"button\"\n class=\"role-link btn btn-sm remove\"\n @click=\"remove(idx)\"\n >\n <i class=\"icon icon-x\" />\n </button>\n\n <div class=\"row\">\n <div class=\"col span-4\">\n <LabeledSelect\n v-model:value=\"driver.key\"\n :mode=\"mode\"\n required\n :disabled=\"disableEdit(driver.key)\"\n label-key=\"harvester.setting.csiDriverConfig.provisioner\"\n :searchable=\"true\"\n :options=\"provisioners\"\n @keydown.native.enter.prevent=\"()=>{}\"\n @update:value=\"update\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabeledSelect\n v-model:value=\"driver.value.volumeSnapshotClassName\"\n :mode=\"mode\"\n required\n :disabled=\"disableEdit(driver.key)\"\n :options=\"getVolumeSnapshotOptions(driver.key)\"\n :label=\"t('harvester.setting.csiDriverConfig.volumeSnapshotClassName')\"\n @keydown.native.enter.prevent=\"()=>{}\"\n @update:value=\"update\"\n />\n </div>\n\n <div class=\"col span-4\">\n <LabeledSelect\n v-model:value=\"driver.value.backupVolumeSnapshotClassName\"\n :mode=\"mode\"\n required\n :disabled=\"disableEdit(driver.key)\"\n :options=\"getVolumeSnapshotOptions(driver.key)\"\n :label=\"t('harvester.setting.csiDriverConfig.backupVolumeSnapshotClassName')\"\n @keydown.native.enter.prevent=\"()=>{}\"\n @update:value=\"update\"\n />\n </div>\n </div>\n </infobox>\n\n <button\n class=\"btn btn-sm role-primary\"\n :disabled=\"disableAdd\"\n @click.self=\"add\"\n >\n {{ t('generic.add') }}\n </button>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.box {\n position: relative;\n padding-top: 40px;\n}\n.remove {\n position: absolute;\n top: 10px;\n right: 10px;\n padding: 0px;\n}\n</style>\n","import { render } from \"./csi-driver-config.vue?vue&type=template&id=34b9f214&scoped=true\"\nimport script from \"./csi-driver-config.vue?vue&type=script&lang=js\"\nexport * from \"./csi-driver-config.vue?vue&type=script&lang=js\"\n\nimport \"./csi-driver-config.vue?vue&type=style&index=0&id=34b9f214&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-34b9f214\"]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport UnitInput from '@shell/components/form/UnitInput';\n\nexport default {\n name: 'DefaultVMTerminationGracePeriodSeconds',\n\n components: { UnitInput },\n\n mixins: [CreateEditView],\n\n data() {\n return { terminationGracePeriodSeconds: this.value.value || this.value.default };\n },\n\n methods: {\n update() {\n this.value['value'] = String(this.terminationGracePeriodSeconds);\n },\n\n useDefault() {\n this['terminationGracePeriodSeconds'] = Number(this.value.default);\n this.update();\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"row\"\n >\n <div class=\"col span-12\">\n <UnitInput\n v-model:value.number=\"terminationGracePeriodSeconds\"\n :suffix=\"terminationGracePeriodSeconds === 1 ? 'Second' : 'Seconds'\"\n :label=\"t('harvester.virtualMachine.terminationGracePeriodSeconds.label')\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./default-vm-termination-grace-period-seconds.vue?vue&type=template&id=6850d3c8\"\nimport script from \"./default-vm-termination-grace-period-seconds.vue?vue&type=script&lang=js\"\nexport * from \"./default-vm-termination-grace-period-seconds.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nimport { Banner } from '@components/Banner';\nimport { LabeledInput } from '@components/Form/LabeledInput';\n\nexport default {\n name: 'HarvesterHttpProxy',\n\n components: { Banner, LabeledInput },\n\n mixins: [CreateEditView],\n\n data() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parseDefaultValue = JSON.parse(this.value.default);\n }\n\n return {\n parseDefaultValue,\n errors: []\n };\n },\n\n created() {\n this.update();\n },\n\n methods: {\n update() {\n const value = JSON.stringify(this.parseDefaultValue);\n\n this.value['value'] = value;\n }\n },\n\n watch: {\n value: {\n handler(neu) {\n const parseDefaultValue = JSON.parse(neu.value);\n\n this['parseDefaultValue'] = parseDefaultValue;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div>\n <Banner color=\"warning\">\n <t\n k=\"harvester.setting.httpProxy.warning\"\n :raw=\"true\"\n />\n </Banner>\n\n <div\n class=\"row\"\n @update:value=\"update\"\n >\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"parseDefaultValue.httpProxy\"\n class=\"mb-20\"\n :mode=\"mode\"\n label=\"http-proxy\"\n />\n\n <LabeledInput\n v-model:value=\"parseDefaultValue.httpsProxy\"\n class=\"mb-20\"\n :mode=\"mode\"\n label=\"https-proxy\"\n />\n\n <LabeledInput\n v-model:value=\"parseDefaultValue.noProxy\"\n class=\"mb-20\"\n :mode=\"mode\"\n label=\"no-proxy\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./http-proxy.vue?vue&type=template&id=a68fe388\"\nimport script from \"./http-proxy.vue?vue&type=script&lang=js\"\nexport * from \"./http-proxy.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport ArrayList from '@shell/components/form/ArrayList.vue';\n\nexport default {\n name: 'HarvesterNtpServersConfig',\n\n components: { ArrayList },\n\n mixins: [CreateEditView],\n\n data() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parseDefaultValue = { ntpServers: [] };\n }\n\n return { parseDefaultValue };\n },\n\n watch: {\n value: {\n handler(neu) {\n let parseDefaultValue;\n\n try {\n parseDefaultValue = JSON.parse(neu.value);\n } catch (err) {\n parseDefaultValue = { ntpServers: [] };\n }\n\n this['parseDefaultValue'] = parseDefaultValue;\n this.update();\n },\n deep: true\n }\n },\n\n methods: {\n useDefault() {\n const parseDefaultValue = { ntpServers: [] };\n\n this['parseDefaultValue'] = parseDefaultValue;\n },\n\n update() {\n const value = JSON.stringify(this.parseDefaultValue);\n\n this.value['value'] = value;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"row\">\n <div class=\"col span-12\">\n <ArrayList\n v-model:value=\"parseDefaultValue.ntpServers\"\n :title=\"t('harvester.host.ntp.label')\"\n :protip=\"t('harvester.host.ntp.tips')\"\n :value-placeholder=\"t('harvester.host.ntp.placeholder')\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./ntp-servers.vue?vue&type=template&id=684a5255\"\nimport script from \"./ntp-servers.vue?vue&type=script&lang=js\"\nexport * from \"./ntp-servers.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport UnitInput from '@shell/components/form/UnitInput';\n\nexport default {\n name: 'HarvesterOvercommitConfig',\n\n components: { UnitInput },\n\n mixins: [CreateEditView],\n\n data() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parseDefaultValue = JSON.parse(this.value.default);\n }\n\n return {\n parseDefaultValue,\n errors: []\n };\n },\n\n created() {\n this.update();\n },\n\n methods: {\n update() {\n const value = JSON.stringify(this.parseDefaultValue);\n\n this.value['value'] = value;\n }\n },\n\n watch: {\n value: {\n handler(neu) {\n const parseDefaultValue = JSON.parse(neu.value);\n\n this['parseDefaultValue'] = parseDefaultValue;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div class=\"row\">\n <div class=\"col span-12\">\n <UnitInput\n v-model:value=\"parseDefaultValue.cpu\"\n label-key=\"harvester.generic.cpu\"\n suffix=\"%\"\n :delay=\"0\"\n required\n :mode=\"mode\"\n class=\"mb-20\"\n @update:value=\"update\"\n />\n <UnitInput\n v-model:value=\"parseDefaultValue.memory\"\n label-key=\"harvester.generic.memory\"\n suffix=\"%\"\n :delay=\"0\"\n required\n :mode=\"mode\"\n class=\"mb-20\"\n @update:value=\"update\"\n />\n <UnitInput\n v-model:value=\"parseDefaultValue.storage\"\n label-key=\"harvester.generic.storage\"\n suffix=\"%\"\n :delay=\"0\"\n required\n :mode=\"mode\"\n class=\"mb-20\"\n @update:value=\"update\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./overcommit-config.vue?vue&type=template&id=e7c025b0\"\nimport script from \"./overcommit-config.vue?vue&type=script&lang=js\"\nexport * from \"./overcommit-config.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport FileSelector from '@shell/components/form/FileSelector';\n\nexport default {\n name: 'HarvesterSSLCertificates',\n\n components: { FileSelector },\n\n mixins: [CreateEditView],\n\n data() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parseDefaultValue = JSON.parse(this.value.default);\n }\n\n return {\n parseDefaultValue,\n caFileName: '',\n publicCertificateFileName: '',\n privateKeyFileName: ''\n };\n },\n\n methods: {\n onKeySelectedCa(type, file) {\n const { name, value } = file;\n\n this.parseDefaultValue[type] = value;\n this[`${ type }FileName`] = name;\n const _value = JSON.stringify(this.parseDefaultValue);\n\n this.value['value'] = _value;\n }\n },\n\n watch: {\n value: {\n handler(neu) {\n const parseDefaultValue = JSON.parse(neu.value);\n\n this['parseDefaultValue'] = parseDefaultValue;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <div class=\"mb-10\">\n {{ t('harvester.setting.sslCertificates.publicCertificate') }}\n </div>\n\n <div class=\"chooseFile\">\n <FileSelector\n :include-file-name=\"true\"\n class=\"btn btn-sm bg-primary mr-20\"\n label=\"Choose File\"\n @selected=\"onKeySelectedCa('publicCertificate', $event)\"\n />\n <span :class=\"{ 'text-muted': !publicCertificateFileName }\">{{ publicCertificateFileName ? publicCertificateFileName : t('harvester.generic.noFileChosen') }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <div class=\"mb-10\">\n {{ t('harvester.setting.sslCertificates.privateKey') }}\n </div>\n\n <div class=\"chooseFile\">\n <FileSelector\n :include-file-name=\"true\"\n class=\"btn btn-sm bg-primary mr-20\"\n label=\"Choose File\"\n @selected=\"onKeySelectedCa('privateKey', $event)\"\n />\n <span :class=\"{ 'text-muted': !privateKeyFileName }\">{{ privateKeyFileName ? privateKeyFileName : t('harvester.generic.noFileChosen') }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <div class=\"mb-10\">\n {{ t('harvester.setting.sslCertificates.ca') }}\n </div>\n\n <div class=\"chooseFile\">\n <FileSelector\n :include-file-name=\"true\"\n class=\"btn btn-sm bg-primary mr-20\"\n label=\"Choose File\"\n @selected=\"onKeySelectedCa('ca', $event)\"\n />\n <span :class=\"{ 'text-muted': !caFileName }\">{{ caFileName ? caFileName : t('harvester.generic.noFileChosen') }}</span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.chooseFile {\n display: flex;\n align-items: center;\n}\n</style>\n","import { render } from \"./ssl-certificates.vue?vue&type=template&id=27a09764&scoped=true\"\nimport script from \"./ssl-certificates.vue?vue&type=script&lang=js\"\nexport * from \"./ssl-certificates.vue?vue&type=script&lang=js\"\n\nimport \"./ssl-certificates.vue?vue&type=style&index=0&id=27a09764&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-27a09764\"]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { _EDIT } from '@shell/config/query-params';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nexport default {\n name: 'HarvesterSslParameters',\n\n components: {\n LabeledInput,\n LabeledSelect,\n },\n\n props: {\n mode: {\n type: String,\n default: _EDIT,\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n\n registerBeforeHook: {\n type: Function,\n required: true,\n },\n },\n\n data() {\n let parsedDefaultValue = {};\n\n try {\n parsedDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parsedDefaultValue = JSON.parse(this.value.default);\n }\n\n const protocols = parsedDefaultValue.protocols && (parsedDefaultValue.protocols || '').split(' ');\n\n return {\n parsedDefaultValue: {\n protocols,\n ciphers: parsedDefaultValue.ciphers,\n },\n };\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.willSave, 'willSave');\n }\n },\n\n computed: {\n protocolOptions() {\n return [{\n label: 'TLSv1.3',\n value: 'TLSv1.3',\n }, {\n label: 'TLSv1.2',\n value: 'TLSv1.2',\n }, {\n label: `TLSv1.1 (${ this.t('generic.deprecated') })`,\n value: 'TLSv1.1',\n }, {\n label: `TLSv1 (${ this.t('generic.deprecated') })`,\n value: 'TLSv1',\n }, {\n label: `SSLv3 (${ this.t('generic.deprecated') })`,\n value: 'SSLv3',\n }, {\n label: `SSLv2 (${ this.t('generic.deprecated') })`,\n value: 'SSLv2',\n }];\n },\n },\n\n methods: {\n update() {\n const out = {\n protocols: (this.parsedDefaultValue.protocols || []).join(' '),\n ciphers: this.parsedDefaultValue.ciphers,\n };\n\n const value = JSON.stringify(out);\n\n this.value['value'] = value;\n },\n\n willSave() {\n const errors = [];\n\n const ciphers = this.parsedDefaultValue.ciphers;\n const protocols = this.parsedDefaultValue.protocols || [];\n\n if (ciphers && protocols.length === 0) {\n errors.push(this.t('validation.required', { key: this.t('harvester.sslParameters.protocols.label') }, true));\n }\n\n if (!ciphers && protocols.length > 0) {\n errors.push(this.t('validation.required', { key: this.t('harvester.sslParameters.ciphers.label') }, true));\n }\n\n const regex = /^(:?[A-Z0-9]+(?:-[A-Z0-9]+)+)+$/gm;\n\n if (ciphers && (!ciphers.match(regex) || ciphers.startsWith(':'))) {\n errors.push(this.t('validation.invalid', { key: this.t('harvester.sslParameters.ciphers.label') }, true));\n }\n\n if (errors.length > 0) {\n return Promise.reject(errors);\n } else {\n return Promise.resolve();\n }\n },\n },\n\n watch: {\n 'value.value': {\n handler(value) {\n if (value === this.value.default) {\n this.parsedDefaultValue.protocols = [];\n this.parsedDefaultValue.ciphers = '';\n }\n },\n deep: true,\n },\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mt-10\">\n <div class=\"col span-12\">\n <LabeledSelect\n v-model:value=\"parsedDefaultValue.protocols\"\n :mode=\"mode\"\n label-key=\"harvester.sslParameters.protocols.label\"\n :multiple=\"true\"\n :options=\"protocolOptions\"\n @update:value=\"update\"\n />\n </div>\n </div>\n <div class=\"row mt-20\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"parsedDefaultValue.ciphers\"\n :mode=\"mode\"\n label-key=\"harvester.sslParameters.ciphers.label\"\n @update:value=\"update\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./ssl-parameters.vue?vue&type=template&id=6da8c495\"\nimport script from \"./ssl-parameters.vue?vue&type=script&lang=js\"\nexport * from \"./ssl-parameters.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect.vue';\nimport { RadioGroup } from '@components/Form/Radio';\nimport ArrayList from '@shell/components/form/ArrayList';\nimport { isValidCIDR } from '@shell/utils/validators/cidr';\nimport { _EDIT } from '@shell/config/query-params';\nimport { Banner } from '@components/Banner';\nimport Tip from '@shell/components/Tip';\nimport { allHash } from '@shell/utils/promise';\nimport { NODE } from '@shell/config/types';\nimport { HCI } from '../../types';\nimport { DOC } from '../../config/doc-links';\nimport { docLink } from '../../utils/feature-flags';\nimport { NETWORK_TYPE } from '../../config/types';\n\nconst { L2VLAN, UNTAGGED } = NETWORK_TYPE;\n\nexport default {\n name: 'HarvesterEditStorageNetwork',\n\n components: {\n ArrayList,\n Tip,\n Banner,\n LabeledInput,\n LabeledSelect,\n RadioGroup\n },\n\n props: {\n registerBeforeHook: {\n type: Function,\n required: true,\n },\n\n mode: {\n type: String,\n default: _EDIT,\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n await allHash({\n clusterNetworks: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.CLUSTER_NETWORK }),\n vlanStatus: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VLAN_STATUS }),\n nodes: this.$store.dispatch(`${ inStore }/findAll`, { type: NODE }),\n });\n },\n\n data() {\n let parsedDefaultValue = {};\n let openVlan = false;\n let networkType = L2VLAN;\n\n try {\n parsedDefaultValue = JSON.parse(this.value.value);\n networkType = 'vlan' in parsedDefaultValue ? L2VLAN : UNTAGGED; // backend doesn't provide networkType, so we check if vlan is provided instead\n openVlan = true;\n } catch (error) {\n networkType = L2VLAN;\n parsedDefaultValue = {\n vlan: '',\n clusterNetwork: '',\n range: '',\n exclude: []\n };\n }\n const exclude = parsedDefaultValue?.exclude?.toString().split(',') || [];\n\n return {\n openVlan,\n networkType,\n errors: [],\n exclude,\n parsedDefaultValue,\n defaultAddValue: ''\n };\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.willSave, 'willSave');\n }\n },\n\n computed: {\n showVlan() {\n return this.networkType === L2VLAN;\n },\n networkTypes() {\n const types = [L2VLAN];\n\n if (this.untaggedNetworkSettingEnabled) {\n types.push(UNTAGGED);\n }\n\n return types;\n },\n storageNetworkExampleLink() {\n const version = this.$store.getters['harvester-common/getServerVersion']();\n\n return docLink(DOC.STORAGE_NETWORK_EXAMPLE, version);\n },\n\n untaggedNetworkSettingEnabled() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('untaggedNetworkSetting');\n },\n\n clusterNetworkOptions() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const clusterNetworks = this.$store.getters[`${ inStore }/all`](HCI.CLUSTER_NETWORK) || [];\n // untaggedNetwork filter out mgmt cluster network\n const clusterNetworksOptions = this.networkType === UNTAGGED ? clusterNetworks.filter((net) => net.id !== 'mgmt') : clusterNetworks;\n\n return clusterNetworksOptions.map((n) => {\n const disabled = !n.isReadyForStorageNetwork;\n\n return {\n label: disabled ? `${ n.id } (${ this.t('generic.notReady') })` : n.id,\n value: n.id,\n disabled,\n };\n });\n },\n },\n\n watch: {\n networkType: {\n handler(neu) {\n this.parsedDefaultValue.clusterNetwork = '';\n\n if (neu === L2VLAN) {\n this.parsedDefaultValue.vlan = '';\n } else {\n delete this.parsedDefaultValue.vlan;\n }\n },\n deep: true\n }\n },\n\n methods: {\n inputVlan(neu) {\n if (neu === '') {\n this.parsedDefaultValue.vlan = '';\n\n return;\n }\n const newValue = Number(neu);\n\n if (newValue > 4094) {\n this.parsedDefaultValue.vlan = 4094;\n } else if (newValue < 1) {\n this.parsedDefaultValue.vlan = 1;\n } else {\n this.parsedDefaultValue.vlan = newValue;\n }\n },\n\n useDefault() {\n this.openVlan = false;\n this.networkType = L2VLAN;\n this.parsedDefaultValue = {\n vlan: '',\n clusterNetwork: '',\n range: '',\n exclude: []\n };\n },\n\n update() {\n const exclude = this.exclude.filter((ip) => ip);\n\n if (Array.isArray(exclude) && exclude.length > 0) {\n this.parsedDefaultValue.exclude = exclude;\n } else {\n delete this.parsedDefaultValue.exclude;\n }\n\n const valueString = JSON.stringify(this.parsedDefaultValue);\n\n if (this.openVlan) {\n this.value['value'] = valueString;\n } else {\n this.value['value'] = '';\n }\n },\n\n willSave() {\n this.update();\n const errors = [];\n\n if (this.openVlan) {\n const valid = !!/^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\/([1-9]|[1-2]\\d|3[0-2])$/.test(this.parsedDefaultValue.range);\n\n if (!valid) {\n errors.push(this.t('harvester.setting.storageNetwork.range.invalid', null, true));\n }\n\n if (this.networkType === L2VLAN && !this.parsedDefaultValue.vlan) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.storageNetwork.vlan') }, true));\n }\n\n if (!this.parsedDefaultValue.clusterNetwork) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.storageNetwork.clusterNetwork') }, true));\n }\n\n if (this.exclude) {\n const hasInvalidCIDR = this.exclude.find((cidr) => {\n return !isValidCIDR(cidr);\n });\n\n if (hasInvalidCIDR) {\n errors.push(this.t('harvester.setting.storageNetwork.exclude.invalid', null, true));\n }\n }\n } else {\n return Promise.resolve();\n }\n\n if (errors.length > 0) {\n return Promise.reject(errors);\n } else {\n return Promise.resolve();\n }\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"mode\"\n @update:value=\"update\"\n >\n <Banner color=\"warning\">\n <t\n k=\"harvester.setting.storageNetwork.warning\"\n :raw=\"true\"\n />\n </Banner>\n\n <RadioGroup\n v-model:value=\"openVlan\"\n class=\"mb-20\"\n name=\"model\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n @update:value=\"update\"\n />\n\n <div v-if=\"openVlan\">\n <LabeledSelect\n v-model:value=\"networkType\"\n class=\"mb-20\"\n :options=\"networkTypes\"\n :mode=\"mode\"\n :label=\"t('harvester.fields.type')\"\n required\n />\n\n <LabeledInput\n v-if=\"showVlan\"\n v-model:value.number=\"parsedDefaultValue.vlan\"\n type=\"number\"\n class=\"mb-20\"\n :mode=\"mode\"\n required\n placeholder=\"e.g. 1 - 4094\"\n label-key=\"harvester.setting.storageNetwork.vlan\"\n @update:value=\"inputVlan\"\n />\n\n <LabeledSelect\n v-model:value=\"parsedDefaultValue.clusterNetwork\"\n label-key=\"harvester.setting.storageNetwork.clusterNetwork\"\n class=\"mb-20\"\n required\n :options=\"clusterNetworkOptions\"\n @update:value=\"update\"\n />\n\n <LabeledInput\n v-model:value=\"parsedDefaultValue.range\"\n class=\"mb-5\"\n :mode=\"mode\"\n required\n :placeholder=\"t('harvester.setting.storageNetwork.range.placeholder')\"\n label-key=\"harvester.setting.storageNetwork.range.label\"\n />\n <Tip\n class=\"mb-20\"\n icon=\"icon icon-info\"\n >\n <t\n k=\"harvester.setting.storageNetwork.tip\"\n :raw=\"true\"\n :url=\"storageNetworkExampleLink\"\n />\n </Tip>\n\n <ArrayList\n v-model:value=\"exclude\"\n :show-header=\"true\"\n :default-add-value=\"defaultAddValue\"\n :mode=\"mode\"\n :add-label=\"t('harvester.setting.storageNetwork.exclude.addIp')\"\n @update:value=\"update\"\n >\n <template #column-headers>\n <div class=\"box\">\n <div class=\"key\">\n {{ t('harvester.setting.storageNetwork.exclude.label') }}\n </div>\n </div>\n </template>\n <template #columns=\"scope\">\n <div class=\"key\">\n <input\n v-model=\"scope.row.value\"\n :placeholder=\"t('harvester.setting.storageNetwork.exclude.placeholder')\"\n @update:value=\"update\"\n />\n </div>\n </template>\n </ArrayList>\n </div>\n </div>\n</template>\n","import { render } from \"./storage-network.vue?vue&type=template&id=2390a23f\"\nimport script from \"./storage-network.vue?vue&type=script&lang=js\"\nexport * from \"./storage-network.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { _EDIT } from '@shell/config/query-params';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nexport default {\n name: 'HarvesterSupportBundleImage',\n\n components: { LabeledInput, LabeledSelect },\n\n props: {\n registerBeforeHook: {\n type: Function,\n required: true,\n },\n\n mode: {\n type: String,\n default: _EDIT,\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n },\n\n data() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parseDefaultValue = JSON.parse(this.value.default);\n }\n\n return { parseDefaultValue };\n },\n\n created() {\n this.update();\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.willSave, 'willSave');\n }\n },\n\n computed: {\n imagePolicyOptions() {\n return [{\n label: this.t('generic.imagePullPolicy.always'),\n value: 'Always',\n }, {\n label: this.t('generic.imagePullPolicy.ifNotPresent'),\n value: 'IfNotPresent',\n }, {\n label: this.t('generic.imagePullPolicy.never'),\n value: 'Never'\n }];\n }\n },\n\n methods: {\n update() {\n const value = JSON.stringify(this.parseDefaultValue);\n\n this.value['value'] = value;\n },\n\n willSave() {\n const errors = [];\n\n if (!this.parseDefaultValue.repository) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.supportBundleImage.repo') }, true));\n }\n\n if (!this.parseDefaultValue.tag) {\n errors.push(this.t('validation.required', { key: this.t('harvester.setting.supportBundleImage.tag') }, true));\n }\n\n if (errors.length > 0) {\n return Promise.reject(errors);\n } else {\n return Promise.resolve();\n }\n },\n },\n\n watch: {\n value: {\n handler(neu) {\n const parseDefaultValue = JSON.parse(neu.value);\n\n this['parseDefaultValue'] = parseDefaultValue;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div\n class=\"row\"\n @input=\"update\"\n >\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"parseDefaultValue.repository\"\n class=\"mb-20\"\n :mode=\"mode\"\n required\n label-key=\"harvester.setting.supportBundleImage.repo\"\n />\n\n <LabeledInput\n v-model:value=\"parseDefaultValue.tag\"\n class=\"mb-20\"\n :mode=\"mode\"\n required\n label-key=\"harvester.setting.supportBundleImage.tag\"\n />\n\n <LabeledSelect\n v-model:value=\"parseDefaultValue.imagePullPolicy\"\n class=\"mb-20\"\n required\n label-key=\"harvester.setting.supportBundleImage.imagePullPolicy\"\n :options=\"imagePolicyOptions\"\n @update:value=\"update\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./support-bundle-image.vue?vue&type=template&id=a914459c\"\nimport script from \"./support-bundle-image.vue?vue&type=script&lang=js\"\nexport * from \"./support-bundle-image.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { NAMESPACE } from '@shell/config/types';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nexport default {\n name: 'HarvesterBundleNamespaces',\n\n components: { LabeledSelect },\n\n mixins: [CreateEditView],\n\n async fetch() {\n await this.$store.dispatch('harvester/findAll', { type: NAMESPACE });\n },\n\n data() {\n let namespaces = [];\n const namespacesStr = this.value?.value || this.value?.default || '';\n\n if (namespacesStr) {\n namespaces = namespacesStr.split(',');\n }\n\n return { namespaces };\n },\n\n computed: {\n namespaceOptions() {\n return this.$store.getters['harvester/all'](NAMESPACE).map((N) => {\n return {\n label: N.id,\n value: N.id\n };\n });\n }\n },\n\n methods: {\n update() {\n const namespaceStr = this.namespaces.join(',');\n\n this.value['value'] = namespaceStr;\n }\n },\n\n watch: {\n 'value.value': {\n handler(neu) {\n if (neu === this.value.default || !neu) {\n this.namespaces = [];\n }\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabeledSelect\n v-model:value=\"namespaces\"\n :multiple=\"true\"\n label-key=\"nameNsDescription.namespace.label\"\n :mode=\"mode\"\n :options=\"namespaceOptions\"\n @update:value=\"update\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./support-bundle-namespaces.vue?vue&type=template&id=091b6d1c\"\nimport script from \"./support-bundle-namespaces.vue?vue&type=script&lang=js\"\nexport * from \"./support-bundle-namespaces.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { RadioGroup } from '@components/Form/Radio';\n\nexport default {\n name: 'HarvesterVMForceDeletePolicy',\n\n components: { LabeledInput, RadioGroup },\n\n mixins: [CreateEditView],\n\n data() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value.value);\n } catch (error) {\n parseDefaultValue = JSON.parse(this.value.default);\n }\n\n return { parseDefaultValue };\n },\n\n created() {\n this.update();\n },\n\n methods: {\n update() {\n const value = JSON.stringify(this.parseDefaultValue);\n\n this.value['value'] = value;\n }\n },\n\n watch: {\n value: {\n handler(neu) {\n const parseDefaultValue = JSON.parse(neu.value);\n\n this['parseDefaultValue'] = parseDefaultValue;\n },\n deep: true\n }\n }\n};\n</script>\n\n<template>\n <div\n class=\"row\"\n @input=\"update\"\n >\n <div class=\"col span-12\">\n <RadioGroup\n v-model:value=\"parseDefaultValue.enable\"\n class=\"mb-20\"\n name=\"model\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n @input=\"update\"\n />\n\n <LabeledInput\n v-if=\"parseDefaultValue.enable\"\n v-model:value.number=\"parseDefaultValue.period\"\n class=\"mb-20\"\n :mode=\"mode\"\n label-key=\"harvester.setting.vmForceDeletionPolicy.period\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./vm-force-reset-policy.vue?vue&type=template&id=11b4ae46&scoped=true\"\nimport script from \"./vm-force-reset-policy.vue?vue&type=script&lang=js\"\nexport * from \"./vm-force-reset-policy.vue?vue&type=script&lang=js\"\n\nimport \"./vm-force-reset-policy.vue?vue&type=style&index=0&id=11b4ae46&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-11b4ae46\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport AppModal from '@shell/components/AppModal';\n\nexport default {\n emits: ['close'],\n\n components: {\n AppModal,\n Card,\n AsyncButton,\n Banner,\n },\n props: {\n vm: {\n type: Object,\n required: true\n },\n },\n data() {\n return { errors: [], resolve: null };\n },\n computed: { ...mapGetters({ t: 'i18n/t' }) },\n methods: {\n close() {\n this.resolve();\n this.$emit('close');\n },\n apply(buttonDone) {\n try {\n this.vm.doActionGrowl('restart', {});\n buttonDone(true);\n this.close();\n } catch (err) {\n console.error(err); // eslint-disable-line\n this.errors = exceptionToErrorsArray(err);\n buttonDone(false);\n }\n }\n }\n};\n</script>\n\n<template>\n <app-modal\n class=\"restart-modal\"\n name=\"restartDialog\"\n :width=\"600\"\n height=\"auto\"\n :click-to-close=\"false\"\n @close=\"close\"\n >\n <Card\n class=\"prompt-restart\"\n :show-highlight-border=\"false\"\n >\n <template #title>\n <h4\n v-clean-html=\"t('harvester.modal.restart.title')\"\n class=\"text-default-text\"\n />\n </template>\n\n <template #body>\n <div\n v-clean-html=\"t('harvester.modal.restart.tip')\"\n class=\"pl-10 pr-10\"\n />\n </template>\n\n <template #actions>\n <div class=\"bottom\">\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :label=\"err\"\n />\n <div class=\"buttons\">\n <button\n class=\"btn role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('harvester.modal.restart.cancel') }}\n </button>\n\n <AsyncButton\n mode=\"restart\"\n @click=\"apply\"\n />\n </div>\n </div>\n </template>\n </Card>\n </app-modal>\n</template>\n<style lang='scss' scoped>\n .restart-modal {\n z-index: 45;\n }\n .prompt-restart {\n margin: 0;\n }\n .bottom {\n display: flex;\n flex-direction: column;\n flex: 1;\n .banner {\n margin-top: 0\n }\n .buttons {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n }\n }\n</style>\n","import { render } from \"./RestartVMDialog.vue?vue&type=template&id=574c27ab&scoped=true\"\nimport script from \"./RestartVMDialog.vue?vue&type=script&lang=js\"\nexport * from \"./RestartVMDialog.vue?vue&type=script&lang=js\"\n\nimport \"./RestartVMDialog.vue?vue&type=style&index=0&id=574c27ab&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-574c27ab\"]])\n\nexport default __exports__","<script>\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { RadioGroup } from '@components/Form/Radio';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nexport default {\n name: 'EditGenericAddon',\n components: {\n Tabbed,\n Tab,\n RadioGroup,\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true\n },\n },\n};\n</script>\n\n<template>\n <Tabbed :side-tabs=\"true\">\n <Tab\n name=\"basic\"\n :label=\"t('generic.basic')\"\n :weight=\"99\"\n >\n <RadioGroup\n v-model:value=\"value.spec.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n />\n </Tab>\n </Tabbed>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./generic.vue?vue&type=template&id=24a677c4&scoped=true\"\nimport script from \"./generic.vue?vue&type=script&lang=js\"\nexport * from \"./generic.vue?vue&type=script&lang=js\"\n\nimport \"./generic.vue?vue&type=style&index=0&id=24a677c4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-24a677c4\"]])\n\nexport default __exports__","<script>\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { RadioGroup } from '@components/Form/Radio';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nexport default {\n name: 'EditSeederAddon',\n components: {\n Tabbed,\n Tab,\n RadioGroup,\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true\n },\n },\n};\n</script>\n\n<template>\n <Tabbed :side-tabs=\"true\">\n <Tab\n name=\"basic\"\n :label=\"t('harvester.addons.vmImport.titles.basic')\"\n :weight=\"99\"\n >\n <RadioGroup\n v-model:value=\"value.spec.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n />\n </Tab>\n </Tabbed>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./harvester-seeder.vue?vue&type=template&id=4b980a18&scoped=true\"\nimport script from \"./harvester-seeder.vue?vue&type=script&lang=js\"\nexport * from \"./harvester-seeder.vue?vue&type=script&lang=js\"\n\nimport \"./harvester-seeder.vue?vue&type=style&index=0&id=4b980a18&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b980a18\"]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport CruResource from '@shell/components/CruResource';\n\nexport default {\n name: 'EditAddon',\n\n components: { CruResource },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n }\n },\n\n computed: {\n currentComponent() {\n const name = this.value.metadata.name;\n\n try {\n return require(`./${ name }.vue`).default;\n } catch {\n return require(`./generic.vue`).default;\n }\n },\n },\n};\n</script>\n\n<template>\n <CruResource\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n @finish=\"save\"\n >\n <component\n :is=\"currentComponent\"\n :value=\"value\"\n :register-before-hook=\"registerBeforeHook\"\n :mode=\"mode\"\n />\n </CruResource>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=733fe15c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport merge from 'lodash/merge';\nimport jsyaml from 'js-yaml';\nimport { clone } from '@shell/utils/object';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { Banner } from '@components/Banner';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nconst DEFAULT_VALUE = { image: { repo: 'rancher/harvester-nvidia-driver-toolkit' } };\n\nexport default {\n name: 'EditAddonNvidiaDriverToolkit',\n components: {\n Banner,\n LabeledInput,\n RadioGroup,\n Tabbed,\n Tab,\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true\n },\n },\n\n data() {\n return {\n initSpec: clone(this.value.spec),\n valuesContentJson: this.parseValuesContent()\n };\n },\n\n watch: {\n valuesContentJson: {\n handler(neu) {\n this.update(neu);\n },\n deep: true,\n }\n },\n\n computed: {\n parsingSpecError() {\n return this.valuesContentJson && (this.valuesContentJson.image === undefined || this.valuesContentJson.driverLocation === undefined);\n }\n },\n\n methods: {\n parseValuesContent() {\n try {\n return merge({}, DEFAULT_VALUE, jsyaml.load(this.value.spec.valuesContent));\n } catch (err) {\n this.$store.dispatch('growl/fromError', {\n title: this.$store.getters['i18n/t']('generic.notification.title.error'),\n err: err.data || err,\n }, { root: true });\n\n return DEFAULT_VALUE;\n }\n },\n\n toggleEnable(v) {\n this.resetSpec();\n this.value.spec.enabled = v;\n },\n\n resetSpec() {\n this.value.spec = clone(this.initSpec);\n\n this.valuesContentJson = this.parseValuesContent();\n },\n\n update(values) {\n this.value.spec.valuesContent = jsyaml.dump(values);\n }\n }\n};\n</script>\n\n<template>\n <div>\n <Banner\n v-if=\"parsingSpecError\"\n color=\"error\"\n :label=\"t('harvester.addons.nvidiaDriverToolkit.parsingSpecError', null, { raw: true })\"\n />\n <Tabbed\n v-else\n :side-tabs=\"true\"\n >\n <Tab\n name=\"basic\"\n :label=\"t('harvester.addons.nvidiaDriverToolkit.titles.basic')\"\n :weight=\"1\"\n >\n <RadioGroup\n :value=\"value.spec.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n @update:value=\"toggleEnable\"\n />\n <div v-if=\"value.spec.enabled\">\n <div\n v-if=\"valuesContentJson.image\"\n class=\"row mb-15\"\n >\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.image.repo\"\n :mode=\"mode\"\n :required=\"true\"\n label-key=\"harvester.addons.nvidiaDriverToolkit.image.repository\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.image.tag\"\n :mode=\"mode\"\n :required=\"true\"\n class=\"col span-6\"\n label-key=\"harvester.addons.nvidiaDriverToolkit.image.tag\"\n />\n </div>\n </div>\n <div class=\"row mb-15\">\n <LabeledInput\n v-model:value=\"valuesContentJson.driverLocation\"\n :mode=\"mode\"\n :required=\"true\"\n label-key=\"harvester.addons.nvidiaDriverToolkit.driver.location\"\n />\n </div>\n </div>\n </Tab>\n </Tabbed>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./nvidia-driver-toolkit.vue?vue&type=template&id=14fad698&scoped=true\"\nimport script from \"./nvidia-driver-toolkit.vue?vue&type=script&lang=js\"\nexport * from \"./nvidia-driver-toolkit.vue?vue&type=script&lang=js\"\n\nimport \"./nvidia-driver-toolkit.vue?vue&type=style&index=0&id=14fad698&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-14fad698\"]])\n\nexport default __exports__","<script>\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { RadioGroup } from '@components/Form/Radio';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nexport default {\n name: 'EditAddonPCI',\n components: {\n Tabbed,\n Tab,\n RadioGroup,\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true\n },\n },\n};\n</script>\n\n<template>\n <Tabbed :side-tabs=\"true\">\n <Tab\n name=\"basic\"\n :label=\"t('harvester.addons.vmImport.titles.basic')\"\n :weight=\"99\"\n >\n <RadioGroup\n v-model:value=\"value.spec.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n />\n </Tab>\n </Tabbed>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./pcidevices-controller.vue?vue&type=template&id=bdc3ab06&scoped=true\"\nimport script from \"./pcidevices-controller.vue?vue&type=script&lang=js\"\nexport * from \"./pcidevices-controller.vue?vue&type=script&lang=js\"\n\nimport \"./pcidevices-controller.vue?vue&type=style&index=0&id=bdc3ab06&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-bdc3ab06\"]])\n\nexport default __exports__","<script>\nimport merge from 'lodash/merge';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport jsyaml from 'js-yaml';\n\nconst DEFAUL_VALUE = {\n fluentbit: {\n resources: {\n limits: {\n cpu: '200m',\n memory: '200Mi'\n },\n requests: {\n cpu: '50m',\n memory: '50Mi'\n }\n }\n },\n fluentd: {\n resources: {\n limits: {\n cpu: '1000m',\n memory: '800Mi'\n },\n requests: {\n cpu: '100m',\n memory: '20Mi'\n }\n }\n },\n};\n\nexport default {\n name: 'EditAddonLogging',\n components: {\n Tabbed,\n Tab,\n RadioGroup,\n LabeledInput,\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true\n },\n },\n\n data() {\n let valuesContentJson = DEFAUL_VALUE;\n\n try {\n valuesContentJson = merge({}, DEFAUL_VALUE, jsyaml.load(this.value.spec.valuesContent));\n } catch (err) {\n valuesContentJson = DEFAUL_VALUE;\n\n this.$store.dispatch('growl/fromError', {\n title: this.$store.getters['i18n/t']('generic.notification.title.error'),\n err: err.data || err,\n }, { root: true });\n }\n\n return { valuesContentJson };\n },\n\n watch: {\n valuesContentJson: {\n handler(neu) {\n this.value.spec['valuesContent'] = jsyaml.dump(neu);\n },\n deep: true,\n immediate: true\n },\n },\n};\n</script>\n\n<template>\n <Tabbed :side-tabs=\"true\">\n <Tab\n name=\"basic\"\n :label=\"t('harvester.addons.vmImport.titles.basic')\"\n :weight=\"99\"\n >\n <RadioGroup\n v-model:value=\"value.spec.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n />\n </Tab>\n <Tab\n v-if=\"value.spec.enabled\"\n name=\"fluentbit\"\n :label=\"t('harvester.logging.configuration.section.fluentbit')\"\n :weight=\"-1\"\n >\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.fluentbit.resources.requests.cpu\"\n :label=\"t('monitoring.prometheus.config.requests.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.fluentbit.resources.requests.memory\"\n :label=\"t('monitoring.prometheus.config.requests.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.fluentbit.resources.limits.cpu\"\n :label=\"t('monitoring.prometheus.config.limits.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.fluentbit.resources.limits.memory\"\n :label=\"t('monitoring.prometheus.config.limits.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </Tab>\n <Tab\n v-if=\"value.spec.enabled\"\n name=\"fluentd\"\n :label=\"t('harvester.logging.configuration.section.fluentd')\"\n :weight=\"-1\"\n >\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.fluentd.resources.requests.cpu\"\n :label=\"t('monitoring.prometheus.config.requests.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.fluentd.resources.requests.memory\"\n :label=\"t('monitoring.prometheus.config.requests.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.fluentd.resources.limits.cpu\"\n :label=\"t('monitoring.prometheus.config.limits.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.fluentd.resources.limits.memory\"\n :label=\"t('monitoring.prometheus.config.limits.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </Tab>\n </Tabbed>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./rancher-logging.vue?vue&type=template&id=4ac8f18c&scoped=true\"\nimport script from \"./rancher-logging.vue?vue&type=script&lang=js\"\nexport * from \"./rancher-logging.vue?vue&type=script&lang=js\"\n\nimport \"./rancher-logging.vue?vue&type=style&index=0&id=4ac8f18c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4ac8f18c\"]])\n\nexport default __exports__","<script>\nimport merge from 'lodash/merge';\nimport isEmpty from 'lodash/isEmpty';\nimport jsyaml from 'js-yaml';\nimport { allHash } from '@shell/utils/promise';\nimport { findBy } from '@shell/utils/array';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { RadioGroup } from '@components/Form/Radio';\nimport LazyImage from '@shell/components/LazyImage';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { ENDPOINTS } from '@shell/config/types';\n\nconst CATTLE_MONITORING_NAMESPACE = 'cattle-monitoring-system';\nconst DEFAUL_VALUE = {\n prometheus: {\n prometheusSpec: {\n resources: {\n limits: {\n cpu: '1000m',\n memory: '3000Mi'\n },\n requests: {\n cpu: '750m',\n memory: '750Mi'\n }\n },\n evaluationInterval: '1m',\n scrapeInterval: '1m',\n retention: '5d',\n retentionSize: '50GiB',\n },\n },\n 'prometheus-node-exporter': {\n resources: {\n limits: {\n cpu: '200m',\n memory: '180Mi'\n },\n requests: {\n cpu: '100m',\n memory: '30Mi'\n }\n }\n },\n grafana: {\n resources: {\n limits: {\n cpu: '200m',\n memory: '500Mi'\n },\n requests: {\n cpu: '100m',\n memory: '200Mi'\n }\n }\n },\n alertmanager: {\n enabled: false,\n alertmanagerSpec: {\n retention: '120h',\n resources: {\n limits: {\n cpu: '1000m',\n memory: '600Mi'\n },\n requests: {\n cpu: '100m',\n memory: '100Mi'\n }\n }\n },\n }\n};\n\nexport default {\n name: 'EditAddonMonitoring',\n components: {\n LabeledInput, RadioGroup, LazyImage, Tabbed, Tab\n },\n\n mixins: [CreateEditView],\n\n async fetch() {\n const { $store, externalLinks } = this;\n\n if (!$store.getters['harvester/schemaFor'](ENDPOINTS)) {\n return;\n }\n\n const hash = await allHash({ endpoints: $store.dispatch('harvester/findAll', { type: ENDPOINTS }) });\n\n if (!isEmpty(hash.endpoints)) {\n const amMatch = externalLinks.alertmanager;\n const grafanaMatch = externalLinks.grafana;\n const promeMatch = externalLinks.prometheus;\n const alertmanager = findBy(\n hash.endpoints,\n 'id',\n `${ CATTLE_MONITORING_NAMESPACE }/rancher-monitoring-alertmanager`\n );\n const grafana = findBy(\n hash.endpoints,\n 'id',\n `${ CATTLE_MONITORING_NAMESPACE }/rancher-monitoring-grafana`\n );\n const prometheus = findBy(\n hash.endpoints,\n 'id',\n `${ CATTLE_MONITORING_NAMESPACE }/rancher-monitoring-prometheus`\n );\n\n if (!isEmpty(alertmanager) && !isEmpty(alertmanager.subsets)) {\n amMatch.enabled = true;\n }\n if (!isEmpty(grafana) && !isEmpty(grafana.subsets)) {\n grafanaMatch.enabled = true;\n }\n if (!isEmpty(prometheus) && !isEmpty(prometheus.subsets)) {\n promeMatch.enabled = true;\n }\n }\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true\n },\n },\n\n data() {\n const grafanaSrc = require('~shell/assets/images/vendor/grafana.svg');\n const prometheusSrc = require('~shell/assets/images/vendor/prometheus.svg');\n const currentCluster = this.$store.getters['currentCluster'];\n let valuesContentJson = DEFAUL_VALUE;\n\n try {\n valuesContentJson = merge({}, DEFAUL_VALUE, jsyaml.load(this.value.spec.valuesContent));\n } catch (err) {\n valuesContentJson = DEFAUL_VALUE;\n\n this.$store.dispatch('growl/fromError', {\n title: this.$store.getters['i18n/t']('generic.notification.title.error'),\n err: err.data || err,\n }, { root: true });\n }\n\n return {\n valuesContentJson,\n externalLinks: {\n alertmanager: {\n enabled: false,\n iconSrc: prometheusSrc,\n label: 'monitoring.overview.linkedList.alertManager.label',\n description:\n 'monitoring.overview.linkedList.alertManager.description',\n link: `/k8s/clusters/${ currentCluster.id }/api/v1/namespaces/${ CATTLE_MONITORING_NAMESPACE }/services/http:rancher-monitoring-alertmanager:9093/proxy`,\n },\n grafana: {\n enabled: false,\n iconSrc: grafanaSrc,\n label: 'monitoring.overview.linkedList.grafana.label',\n description: 'monitoring.overview.linkedList.grafana.description',\n link: `/k8s/clusters/${ currentCluster.id }/api/v1/namespaces/${ CATTLE_MONITORING_NAMESPACE }/services/http:rancher-monitoring-grafana:80/proxy`,\n },\n prometheus: {\n enabled: false,\n iconSrc: prometheusSrc,\n label: 'monitoring.overview.linkedList.prometheusPromQl.label',\n description:\n 'monitoring.overview.linkedList.prometheusPromQl.description',\n link: `/k8s/clusters/${ currentCluster.id }/api/v1/namespaces/${ CATTLE_MONITORING_NAMESPACE }/services/http:rancher-monitoring-prometheus:9090/proxy`,\n },\n }\n };\n },\n\n computed: {\n prometheusNodeExporter() {\n return this.valuesContentJson['prometheus-node-exporter'];\n },\n },\n\n watch: {\n valuesContentJson: {\n handler(neu) {\n this.value.spec['valuesContent'] = jsyaml.dump(neu);\n },\n deep: true,\n immediate: true\n },\n },\n};\n</script>\n\n<template>\n <Tabbed :side-tabs=\"true\">\n <Tab\n name=\"basic\"\n :label=\"t('harvester.addons.vmImport.titles.basic')\"\n :weight=\"99\"\n >\n <RadioGroup\n v-model:value=\"value.spec.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n />\n </Tab>\n <Tab\n v-if=\"value.spec.enabled\"\n name=\"prometheus\"\n :label=\"t('harvester.setting.harvesterMonitoring.section.prometheus')\"\n :weight=\"-1\"\n >\n <a\n v-clean-tooltip=\"!externalLinks.prometheus.enabled ? t('monitoring.overview.linkedList.na') : undefined\"\n :disabled=\"!externalLinks.prometheus.enabled\"\n :href=\"externalLinks.prometheus.link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"subtype-banner m-0 mt-10 mb-10\"\n >\n <div class=\"subtype-content\">\n <div class=\"title\">\n <div class=\"subtype-logo round-image\">\n <LazyImage :src=\"externalLinks.prometheus.iconSrc\" />\n </div>\n <h5>\n <span>\n <t :k=\"externalLinks.prometheus.label\" />\n </span>\n </h5>\n <div class=\"flex-right\">\n <i class=\"icon icon-external-link mr-10\" />\n </div>\n </div>\n </div>\n </a>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.prometheus.prometheusSpec.scrapeInterval\"\n :label=\"t('monitoring.prometheus.config.scrape')\"\n :tooltip=\"t('harvester.setting.harvesterMonitoring.tips.scrape')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.prometheus.prometheusSpec.evaluationInterval\"\n :label=\"t('monitoring.prometheus.config.evaluation')\"\n :tooltip=\"t('harvester.setting.harvesterMonitoring.tips.evaluation')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.prometheus.prometheusSpec.retention\"\n :label=\"t('monitoring.prometheus.config.retention')\"\n :tooltip=\"t('harvester.setting.harvesterMonitoring.tips.retention')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.prometheus.prometheusSpec.retentionSize\"\n :label=\"t('monitoring.prometheus.config.retentionSize')\"\n :tooltip=\"t('harvester.setting.harvesterMonitoring.tips.retentionSize')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-12 mt-5\">\n <h4 class=\"mb-0\">\n {{ t('monitoring.prometheus.config.resourceLimits') }}\n </h4>\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.prometheus.prometheusSpec.resources.requests.cpu\"\n :label=\"t('monitoring.prometheus.config.requests.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.prometheus.prometheusSpec.resources.requests.memory\"\n :label=\"t('monitoring.prometheus.config.requests.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.prometheus.prometheusSpec.resources.limits.cpu\"\n :label=\"t('monitoring.prometheus.config.limits.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.prometheus.prometheusSpec.resources.limits.memory\"\n :label=\"t('monitoring.prometheus.config.limits.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </Tab>\n <Tab\n v-if=\"value.spec.enabled\"\n name=\"nodeExporter\"\n :label=\"t('harvester.setting.harvesterMonitoring.section.prometheusNodeExporter')\"\n :weight=\"-2\"\n >\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"prometheusNodeExporter.resources.limits.cpu\"\n :label=\"t('monitoring.prometheus.config.limits.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"prometheusNodeExporter.resources.limits.memory\"\n :label=\"t('monitoring.prometheus.config.limits.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"prometheusNodeExporter.resources.requests.cpu\"\n :label=\"t('monitoring.prometheus.config.requests.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"prometheusNodeExporter.resources.requests.memory\"\n :label=\"t('monitoring.prometheus.config.requests.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </Tab>\n <Tab\n v-if=\"value.spec.enabled && valuesContentJson.grafana.resources\"\n name=\"grafana\"\n :label=\"t('harvester.setting.harvesterMonitoring.section.grafana')\"\n :weight=\"-3\"\n >\n <a\n v-clean-tooltip=\"!externalLinks.grafana.enabled ? t('monitoring.overview.linkedList.na') : undefined\"\n :disabled=\"!externalLinks.grafana.enabled\"\n :href=\"externalLinks.grafana.link\"\n target=\"_blank\"\n rel=\"noopener nofollow\"\n class=\"subtype-banner m-0 mt-10 mb-10\"\n >\n <div class=\"subtype-content\">\n <div class=\"title\">\n <div class=\"subtype-logo round-image\">\n <LazyImage :src=\"externalLinks.grafana.iconSrc\" />\n </div>\n <h5>\n <span>\n <t :k=\"externalLinks.grafana.label\" />\n </span>\n </h5>\n <div class=\"flex-right\">\n <i class=\"icon icon-external-link mr-10\" />\n </div>\n </div>\n </div>\n </a>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.grafana.resources.requests.cpu\"\n :label=\"t('monitoring.prometheus.config.requests.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.grafana.resources.requests.memory\"\n :label=\"t('monitoring.prometheus.config.requests.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.grafana.resources.limits.cpu\"\n :label=\"t('monitoring.prometheus.config.limits.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.grafana.resources.limits.memory\"\n :label=\"t('monitoring.prometheus.config.limits.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </Tab>\n <Tab\n v-if=\"value.spec.enabled\"\n name=\"alertmanager\"\n :label=\"t('harvester.setting.harvesterMonitoring.section.alertmanager')\"\n :weight=\"-4\"\n >\n <RadioGroup\n v-model:value=\"valuesContentJson.alertmanager.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n />\n\n <a\n v-if=\"valuesContentJson.alertmanager.enabled\"\n v-clean-tooltip=\"!externalLinks.alertmanager.enabled ? t('monitoring.overview.linkedList.na') : undefined\"\n :disabled=\"!externalLinks.alertmanager.enabled\"\n :href=\"externalLinks.alertmanager.link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"subtype-banner m-0 mt-10 mb-10\"\n >\n <div class=\"subtype-content\">\n <div class=\"title\">\n <div class=\"subtype-logo round-image\">\n <LazyImage :src=\"externalLinks.alertmanager.iconSrc\" />\n </div>\n <h5>\n <span>\n <t :k=\"externalLinks.alertmanager.label\" />\n </span>\n </h5>\n <div class=\"flex-right\">\n <i class=\"icon icon-external-link mr-10\" />\n </div>\n </div>\n </div>\n </a>\n\n <div v-if=\"valuesContentJson.alertmanager.enabled\">\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.alertmanager.alertmanagerSpec.retention\"\n :label=\"t('monitoring.prometheus.config.retention')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.alertmanager.alertmanagerSpec.resources.limits.cpu\"\n :label=\"t('monitoring.prometheus.config.limits.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.alertmanager.alertmanagerSpec.resources.limits.memory\"\n :label=\"t('monitoring.prometheus.config.limits.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.alertmanager.alertmanagerSpec.resources.requests.cpu\"\n :label=\"t('monitoring.prometheus.config.requests.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.alertmanager.alertmanagerSpec.resources.requests.memory\"\n :label=\"t('monitoring.prometheus.config.requests.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n />\n </div>\n </div>\n </div>\n </Tab>\n </Tabbed>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./rancher-monitoring.vue?vue&type=template&id=077b6bf4&scoped=true\"\nimport script from \"./rancher-monitoring.vue?vue&type=script&lang=js\"\nexport * from \"./rancher-monitoring.vue?vue&type=script&lang=js\"\n\nimport \"./rancher-monitoring.vue?vue&type=style&index=0&id=077b6bf4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-077b6bf4\"]])\n\nexport default __exports__","<script>\nimport merge from 'lodash/merge';\nimport jsyaml from 'js-yaml';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { RadioGroup } from '@components/Form/Radio';\n\nconst DEFAUL_VALUE = {\n hostname: '',\n rancherVersion: '',\n bootstrapPassword: '',\n};\n\nexport default {\n name: 'EditAddonVcluster',\n components: { LabeledInput, RadioGroup },\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true\n },\n registerBeforeHook: {\n type: Function,\n required: true,\n },\n },\n\n data() {\n let valuesContentJson = {};\n\n try {\n valuesContentJson = merge({}, DEFAUL_VALUE, jsyaml.load(this.value.spec.valuesContent));\n } catch (err) {\n valuesContentJson = DEFAUL_VALUE;\n\n this.$store.dispatch('growl/fromError', {\n title: this.$store.getters['i18n/t']('generic.notification.title.error'),\n err: err.data || err,\n }, { root: true });\n }\n\n return { valuesContentJson };\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.willSave, 'willSave');\n }\n },\n\n methods: {\n willSave() {\n const errors = [];\n\n if (!this.value.spec.enabled) {\n return Promise.resolve();\n }\n\n if (!this.valuesContentJson.hostname) {\n errors.push(this.t('validation.required', { key: this.t('harvester.addons.rancherVcluster.hostname') }, true));\n }\n\n if (!this.valuesContentJson.bootstrapPassword) {\n errors.push(this.t('validation.required', { key: this.t('harvester.addons.rancherVcluster.password') }, true));\n }\n\n if (errors.length > 0) {\n return Promise.reject(errors);\n } else {\n return Promise.resolve();\n }\n },\n },\n\n watch: {\n valuesContentJson: {\n handler(neu) {\n this.value.spec['valuesContent'] = jsyaml.dump(neu);\n },\n deep: true,\n immediate: true\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <RadioGroup\n v-model:value=\"value.spec.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n />\n </div>\n </div>\n\n <template v-if=\"value.spec.enabled\">\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.hostname\"\n label-key=\"harvester.addons.rancherVcluster.hostname\"\n :required=\"true\"\n :mode=\"mode\"\n placeholder=\"rancher.$vip.nip.io\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.rancherVersion\"\n label-key=\"harvester.addons.rancherVcluster.rancherVersion\"\n :required=\"true\"\n :disabled=\"true\"\n />\n </div>\n </div>\n\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContentJson.bootstrapPassword\"\n label-key=\"harvester.addons.rancherVcluster.password\"\n :mode=\"mode\"\n :required=\"true\"\n type=\"password\"\n />\n </div>\n </div>\n </template>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./rancher-vcluster.vue?vue&type=template&id=b9cb7bba&scoped=true\"\nimport script from \"./rancher-vcluster.vue?vue&type=script&lang=js\"\nexport * from \"./rancher-vcluster.vue?vue&type=script&lang=js\"\n\nimport \"./rancher-vcluster.vue?vue&type=style&index=0&id=b9cb7bba&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b9cb7bba\"]])\n\nexport default __exports__","<script>\nimport merge from 'lodash/merge';\nimport jsyaml from 'js-yaml';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { RadioGroup } from '@components/Form/Radio';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { STORAGE_CLASS } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\n\nconst DEFAULT_VALUES = {\n resources: {\n requests: {\n cpu: '0.5',\n memory: '2Gi'\n },\n limits: {\n cpu: '2',\n memory: '4Gi'\n }\n },\n pvcClaim: {\n enabled: false,\n size: '200Gi',\n storageClassName: ''\n }\n};\n\nexport default {\n name: 'EditHarvesterLogging',\n components: {\n LabeledInput,\n Tabbed,\n Tab,\n RadioGroup,\n LabeledSelect,\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n required: true\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = { storages: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }) };\n\n await allHash(hash);\n },\n\n data() {\n const valuesContent = this.parseValuesContent();\n\n return { valuesContent };\n },\n\n computed: {\n storageClassOptions() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const storages = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS);\n\n const out = storages.filter((s) => !s.parameters?.backingImage).map((s) => {\n const label = s.isDefault ? `${ s.name } (${ this.t('generic.default') })` : s.name;\n\n return {\n label,\n value: s.name,\n };\n }) || [];\n\n return out;\n },\n },\n\n methods: {\n parseValuesContent() {\n try {\n return merge({}, DEFAULT_VALUES, jsyaml.load(this.value.spec.valuesContent));\n } catch (err) {\n this.$store.dispatch('growl/fromError', {\n title: this.$store.getters['i18n/t']('generic.notification.title.error'),\n err: err.data || err,\n }, { root: true });\n\n return DEFAULT_VALUES;\n }\n },\n\n update() {\n this.value.spec.valuesContent = jsyaml.dump(this.valuesContent);\n },\n\n setDefaultClassName() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const defaultStorage = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS).find( (s) => s.isDefault);\n\n this.valuesContent.pvcClaim['storageClassName'] = this.valuesContent?.pvcClaim?.storageClassName || defaultStorage?.metadata?.name || 'longhorn';\n\n this.update();\n },\n },\n\n watch: {\n 'valuesContent.pvcClaim.enabled'(value) {\n if (value) {\n this.setDefaultClassName();\n }\n },\n },\n};\n</script>\n\n<template>\n <Tabbed :side-tabs=\"true\">\n <Tab\n name=\"basic\"\n :label=\"t('harvester.addons.vmImport.titles.basic')\"\n :weight=\"99\"\n >\n <RadioGroup\n v-model:value=\"value.spec.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n />\n\n <div v-if=\"value.spec.enabled\">\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContent.resources.limits.cpu\"\n :label=\"t('monitoring.prometheus.config.limits.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContent.resources.limits.memory\"\n :label=\"t('monitoring.prometheus.config.limits.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContent.resources.requests.cpu\"\n :label=\"t('monitoring.prometheus.config.requests.cpu')\"\n :required=\"true\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContent.resources.requests.memory\"\n :label=\"t('monitoring.prometheus.config.requests.memory')\"\n :required=\"true\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n </div>\n\n <br />\n <h2>{{ t('harvester.addons.vmImport.titles.pvc') }}</h2>\n <div v-if=\"value.spec.enabled\">\n <RadioGroup\n v-model:value=\"valuesContent.pvcClaim.enabled\"\n class=\"mb-20\"\n name=\"model\"\n :mode=\"mode\"\n :options=\"[true,false]\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n @update:value=\"update\"\n />\n\n <div v-if=\"valuesContent.pvcClaim.enabled\">\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"valuesContent.pvcClaim.size\"\n :label=\"t('harvester.volume.size')\"\n :required=\"true\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"valuesContent.pvcClaim.storageClassName\"\n :options=\"storageClassOptions\"\n :label=\"t('harvester.storage.storageClass.label')\"\n :mode=\"mode\"\n class=\"mb-20\"\n @update:value=\"update\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </Tab>\n </Tabbed>\n</template>\n\n<style lang=\"scss\" scoped>\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n</style>\n","import { render } from \"./vm-import-controller.vue?vue&type=template&id=7d4cbfa3&scoped=true\"\nimport script from \"./vm-import-controller.vue?vue&type=script&lang=js\"\nexport * from \"./vm-import-controller.vue?vue&type=script&lang=js\"\n\nimport \"./vm-import-controller.vue?vue&type=style&index=0&id=7d4cbfa3&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d4cbfa3\"]])\n\nexport default __exports__","<script>\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CruResource from '@shell/components/CruResource';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport YamlEditor from '@shell/components/YamlEditor';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { HCI } from '@pkg/harvester/config/labels-annotations';\n\nexport default {\n name: 'HarvesterEditCloudTemplate',\n\n emits: ['update:value'],\n\n components: {\n Tab,\n Tabbed,\n YamlEditor,\n CruResource,\n LabeledSelect,\n NameNsDescription,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n data() {\n return {\n config: this.value.data?.cloudInit || '',\n type: this.value?.metadata?.labels?.[HCI.CLOUD_INIT] || 'user',\n };\n },\n\n computed: {\n types() {\n return [{\n label: 'User Data',\n value: 'user'\n }, {\n label: 'Network Data',\n value: 'network'\n }];\n },\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.updateBeforeSave);\n }\n },\n\n methods: {\n update() {\n this.value.data = { cloudInit: this.config };\n },\n\n updateBeforeSave() {\n if (this.isCreate) {\n this.value.metadata.labels = {\n ...this.value.metadata.labels,\n [HCI.CLOUD_INIT]: this.type,\n };\n\n this.value.data = { cloudInit: this.config };\n }\n }\n }\n};\n</script>\n\n<template>\n <CruResource\n :done-route=\"doneRoute\"\n :mode=\"mode\"\n :resource=\"value\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n @finish=\"save\"\n @cancel=\"done\"\n >\n <NameNsDescription\n :value=\"value\"\n :mode=\"mode\"\n :namespaced=\"true\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <Tabbed :side-tabs=\"true\">\n <Tab\n name=\"basics\"\n :label=\"t('harvester.host.tabs.basics')\"\n :weight=\"1\"\n >\n <div class=\"mb-20\">\n <LabeledSelect\n v-model:value=\"type\"\n :label=\"t('harvester.cloudTemplate.templateType')\"\n :disabled=\"!isCreate\"\n :options=\"types\"\n />\n </div>\n\n <div class=\"resource-yaml\">\n <YamlEditor\n ref=\"yamlUser\"\n v-model:value=\"config\"\n class=\"yaml-editor\"\n :editor-mode=\"mode === 'view' ? 'VIEW_CODE' : 'EDIT_CODE'\"\n @onChanges=\"update\"\n />\n </div>\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n\n<style lang=\"scss\" scoped>\n $yaml-height: 200px;\n\n :deep() .yaml-editor{\n flex: 1;\n min-height: $yaml-height;\n & .code-mirror .CodeMirror {\n position: initial;\n height: auto;\n min-height: $yaml-height;\n }\n }\n</style>\n","import { render } from \"./harvesterhci.io.cloudtemplate.vue?vue&type=template&id=65b4127d&scoped=true\"\nimport script from \"./harvesterhci.io.cloudtemplate.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.cloudtemplate.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.cloudtemplate.vue?vue&type=style&index=0&id=65b4127d&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-65b4127d\"]])\n\nexport default __exports__","<script>\nimport { allHash } from '@shell/utils/promise';\nimport {\n CSI_DRIVER, LONGHORN, LONGHORN_DRIVER, LONGHORN_VERSION_V1, LONGHORN_VERSION_V2\n} from '@shell/config/types';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabelValue from '@shell/components/LabelValue';\nimport { BadgeState } from '@components/BadgeState';\nimport { Banner } from '@components/Banner';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { RadioGroup, RadioButton } from '@components/Form/Radio';\nimport HarvesterDisk from '../../mixins/harvester-disk';\nimport Tags from '../../components/DiskTags';\nimport { HCI } from '../../types';\nimport { HCI as HCI_LABELS_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { LONGHORN_SYSTEM } from './index';\nimport { LVM_DRIVER } from '../../models/harvester/storage.k8s.io.storageclass';\nimport ModalWithCard from '@shell/components/ModalWithCard';\nimport { randomStr } from '@shell/utils/string';\nimport { LONGHORN_V2_DATA_ENGINE } from './index.vue';\nimport { _EDIT } from '@shell/config/query-params';\n\nconst _NEW = '_NEW';\n\nexport default {\n components: {\n LabeledInput,\n LabeledSelect,\n LabelValue,\n BadgeState,\n Banner,\n RadioGroup,\n RadioButton,\n ModalWithCard,\n Tags,\n },\n\n mixins: [\n HarvesterDisk,\n ],\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n disks: {\n type: Array,\n default: () => [],\n },\n node: {\n type: Object,\n default: () => {\n return {};\n },\n },\n mode: {\n type: String,\n default: 'edit',\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n await allHash({\n csiDrivers: this.$store.dispatch(`${ inStore }/findAll`, { type: CSI_DRIVER }),\n lvmVolumeGroups: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.LVM_VOLUME_GROUP }),\n });\n },\n\n data() {\n let provisioner = `${ this.value.provisioner || LONGHORN_DRIVER }`;\n\n if (provisioner === LONGHORN_DRIVER) {\n provisioner = `${ provisioner }_${ this.value.provisionerVersion || LONGHORN_VERSION_V1 }`;\n }\n\n return {\n provisioner,\n volumeGroupDialog: null,\n randomStr: randomStr(10).toLowerCase(),\n isOpen: false\n };\n },\n\n computed: {\n provisioners() {\n const out = [];\n\n const inStore = this.$store.getters['currentProduct'].inStore;\n const csiDrivers = this.$store.getters[`${ inStore }/all`](CSI_DRIVER) || [];\n\n csiDrivers.forEach(({ name }) => {\n switch (name) {\n case LONGHORN_DRIVER:\n out.push({\n label: `harvester.host.disk.storage.longhorn.${ LONGHORN_VERSION_V1 }.label`,\n value: `${ name }_${ LONGHORN_VERSION_V1 }`,\n });\n\n if (this.longhornSystemVersion === LONGHORN_VERSION_V2 || this.value.provisionerVersion === LONGHORN_VERSION_V2) {\n out.push({\n label: `harvester.host.disk.storage.longhorn.${ LONGHORN_VERSION_V2 }.label`,\n value: `${ name }_${ LONGHORN_VERSION_V2 }`,\n disabled: this.forceLonghornV1\n });\n }\n break;\n case LVM_DRIVER:\n out.push({\n label: 'harvester.host.disk.storage.lvm.label',\n value: name,\n });\n break;\n }\n });\n\n return out;\n },\n\n lvmVolumeGroups() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const lvmVolumeGroups = this.$store.getters[`${ inStore }/all`](HCI.LVM_VOLUME_GROUP) || [];\n\n const out = lvmVolumeGroups.filter((group) => group.spec.nodeName === this.node.name).map((g) => g.spec.vgName);\n\n out.unshift({\n label: this.t('harvester.host.disk.lvmVolumeGroup.create'),\n value: _NEW,\n });\n\n return out;\n },\n\n targetDisk() {\n return this.disks.find((disk) => disk.name === this.value.name);\n },\n\n schedulableTooltipMessage() {\n const { name, path } = this.value;\n\n if (this.targetDisk && !this.targetDisk.allowScheduling && name && path) {\n return this.t('harvester.host.disk.allowScheduling.tooltip', { name, path });\n } else {\n return this.schedulableCondition.message;\n }\n },\n\n allowSchedulingOptions() {\n return [{\n label: this.t('generic.enabled'),\n value: true,\n }, {\n label: this.t('generic.disabled'),\n value: false,\n }];\n },\n\n evictionRequestedOptions() {\n return [{\n label: this.t('generic.yes'),\n value: true,\n }, {\n label: this.t('generic.no'),\n value: false,\n }];\n },\n\n mountedMessage() {\n const state = this.blockDevice?.metadata?.state || {};\n\n if (state?.error) {\n return state?.message;\n } else {\n return '';\n }\n },\n\n isProvisioned() {\n return this.blockDevice?.isProvisioned;\n },\n\n forceFormattedDisabled() {\n const lastFormattedAt = this.blockDevice?.status?.deviceStatus?.fileSystem?.LastFormattedAt;\n const fileSystem = this.blockDevice?.status?.deviceStatus?.fileSystem.type;\n\n const systems = ['ext4', 'XFS'];\n\n if (lastFormattedAt || this.blockDevice?.childParts?.length > 0) {\n return true;\n } else if (systems.includes(fileSystem)) {\n return false;\n } else if (!fileSystem) {\n return true;\n } else {\n return !this.canEditPath;\n }\n },\n\n canEditPath() {\n if (this.mountedMessage) {\n return true;\n }\n\n if (this.value.isNew && !this.value.originPath) {\n return true;\n }\n\n return false;\n },\n\n isFormatted() {\n return !!this.blockDevice?.status?.deviceStatus?.fileSystem?.LastFormattedAt;\n },\n\n formattedBannerLabel() {\n const system = this.blockDevice?.status?.deviceStatus?.fileSystem?.type;\n\n const label = this.t('harvester.host.disk.lastFormattedAt.info');\n\n if (system) {\n return `${ label } ${ this.t('harvester.host.disk.fileSystem.info', { system }) }`;\n } else {\n return label;\n }\n },\n\n provisionPhase() {\n return this.blockDevice?.provisionPhase || {};\n },\n\n blockDevice() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const name = this.value?.name;\n\n return this.$store.getters[`${ inStore }/byId`](HCI.BLOCK_DEVICE, `${ LONGHORN_SYSTEM }/${ name }`) || {};\n },\n\n isCorrupted() {\n return this.blockDevice?.status?.deviceStatus?.fileSystem?.corrupted;\n },\n\n isFormatting() {\n return this.blockDevice.isFormatting;\n },\n\n longhornSystemVersion() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const v2DataEngine = this.$store.getters[`${ inStore }/byId`](LONGHORN.SETTINGS, LONGHORN_V2_DATA_ENGINE) || {};\n\n return v2DataEngine.value === 'true' ? LONGHORN_VERSION_V2 : LONGHORN_VERSION_V1;\n },\n\n forceLonghornV1() {\n return this.node?.labels[HCI_LABELS_ANNOTATIONS.DISABLE_LONGHORN_V2_ENGINE] === 'true';\n },\n\n isLvm() {\n return this.value.provisioner === LVM_DRIVER;\n },\n\n isLonghorn() {\n return this.value.provisioner === LONGHORN_DRIVER;\n },\n\n isLonghornV1() {\n return this.isLonghorn && this.value.provisionerVersion === LONGHORN_VERSION_V1;\n },\n\n provisionerTooltip() {\n if (\n this.mode === _EDIT &&\n this.isLonghorn &&\n this.longhornSystemVersion === LONGHORN_VERSION_V2 &&\n this.forceLonghornV1\n ) {\n return this.t('harvester.storage.storageClass.longhorn.versionTooltip');\n }\n\n return null;\n }\n },\n\n watch: {\n provisioner(value) {\n this.randomStr = randomStr(10).toLowerCase();\n\n const [provisioner, provisionerVersion] = value?.split('_');\n\n this.value.provisioner = provisioner;\n\n if (provisioner === LONGHORN_DRIVER) {\n this.value.provisionerVersion = provisionerVersion || LONGHORN_VERSION_V1;\n } else {\n this.value.provisionerVersion = undefined;\n }\n },\n\n 'value.lvmVolumeGroup'(neu) {\n if (neu === _NEW) {\n this.value.lvmVolumeGroup = null;\n this.showCreateVolumeGroup();\n }\n }\n },\n\n methods: {\n showCreateVolumeGroup() {\n this.volumeGroupDialog = null;\n this.isOpen = true;\n },\n\n hideCreateVolumeGroup() {\n this.isOpen = false;\n },\n\n saveCreateVolumeGroup(buttonCb) {\n buttonCb(true);\n this.value.lvmVolumeGroup = this.volumeGroupDialog;\n this.hideCreateVolumeGroup();\n },\n\n update() {\n this.$emit('update:value', this.value);\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"disk\"\n @update:value=\"update\"\n >\n <div class=\"mt-10\" />\n <Banner\n v-if=\"mountedMessage && isProvisioned\"\n color=\"error\"\n :label=\"mountedMessage\"\n />\n <Banner\n v-if=\"isFormatting\"\n color=\"info\"\n :label=\"t('harvester.host.disk.fileSystem.formatting')\"\n />\n <Banner\n v-else-if=\"isFormatted && isLonghornV1 && !isCorrupted\"\n color=\"info\"\n :label=\"formattedBannerLabel\"\n />\n <div v-if=\"!value.isNew\">\n <div class=\"row\">\n <div class=\"col span-12\">\n <Tags\n v-model:value=\"value.tags\"\n :label=\"t('harvester.host.disk.tags.label')\"\n :add-label=\"t('harvester.host.disk.tags.addLabel')\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-12\">\n <div class=\"pull-left\">\n <RadioGroup\n v-model:value=\"value.allowScheduling\"\n name=\"diskScheduling\"\n :label=\"t('harvester.host.disk.allowScheduling.label')\"\n :mode=\"mode\"\n :options=\"allowSchedulingOptions\"\n :row=\"true\"\n />\n </div>\n <div class=\"pull-right\">\n {{ t('harvester.host.disk.conditions') }}:\n <BadgeState\n v-clean-tooltip=\"readyCondition.message\"\n :color=\"readyCondition.status === 'True' ? 'bg-success' : 'bg-error' \"\n :icon=\"readyCondition.status === 'True' ? 'icon-checkmark' : 'icon-warning' \"\n label=\"Ready\"\n class=\"mr-10 ml-10 state\"\n />\n <BadgeState\n v-clean-tooltip=\"schedulableTooltipMessage\"\n :color=\"schedulableCondition.status === 'True' && targetDisk?.allowScheduling ? 'bg-success' : 'bg-error' \"\n :icon=\"schedulableCondition.status === 'True' && targetDisk?.allowScheduling ? 'icon-checkmark' : 'icon-warning' \"\n label=\"Schedulable\"\n class=\"mr-10 state\"\n />\n <BadgeState\n v-if=\"provisionPhase.label\"\n :color=\"provisionPhase.color\"\n :icon=\"provisionPhase.icon\"\n :label=\"provisionPhase.label\"\n class=\"mr-10 state\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"!value.isNew\"\n class=\"row mt-30\"\n >\n <div class=\"col flex span-12\">\n <LabelValue\n :name=\"t('harvester.host.disk.storageAvailable.label')\"\n :value=\"value.storageAvailable\"\n />\n <LabelValue\n :name=\"t('harvester.host.disk.storageScheduled.label')\"\n :value=\"value.storageScheduled\"\n />\n <LabelValue\n :name=\"t('harvester.host.disk.storageMaximum.label')\"\n :value=\"value.storageMaximum\"\n />\n </div>\n </div>\n <hr class=\"mt-10\" />\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"value.displayName\"\n :label=\"t('generic.name')\"\n :disabled=\"true\"\n />\n </div>\n </div>\n\n <div class=\"row mt-10\">\n <div :class=\"`col span-${ value.isNew ? '6': '12' }`\">\n <LabeledSelect\n v-model:value=\"provisioner\"\n :mode=\"mode\"\n label-key=\"harvester.host.disk.provisioner\"\n :localized-label=\"true\"\n :searchable=\"true\"\n :options=\"provisioners\"\n :disabled=\"isProvisioned || !value.isNew\"\n :tooltip=\"provisionerTooltip\"\n @keydown.native.enter.prevent=\"()=>{}\"\n />\n </div>\n <div\n v-if=\"(value.isNew && isLonghornV1 && !isFormatted) || isCorrupted\"\n class=\"col span-6\"\n >\n <RadioGroup\n v-model:value=\"value.forceFormatted\"\n :mode=\"mode\"\n name=\"forceFormatted\"\n label-key=\"harvester.host.disk.forceFormatted.label\"\n :labels=\"[t('generic.no'),t('harvester.host.disk.forceFormatted.yes')]\"\n :options=\"[false, true]\"\n :disabled=\"forceFormattedDisabled\"\n tooltip-key=\"harvester.host.disk.forceFormatted.toolTip\"\n >\n <template #1=\"{option, listeners}\">\n <RadioButton\n :label=\"option.label\"\n :val=\"option.value\"\n :value=\"value.forceFormatted\"\n :disabled=\"forceFormattedDisabled && !value.forceFormatted\"\n v-on=\"listeners\"\n />\n </template>\n </RadioGroup>\n </div>\n <div\n v-if=\"value.isNew && isLvm\"\n class=\"col span-6\"\n >\n <LabeledSelect\n v-model:value=\"value.lvmVolumeGroup\"\n :mode=\"mode\"\n label-key=\"harvester.host.disk.lvmVolumeGroup.label\"\n :localized-label=\"true\"\n :searchable=\"false\"\n :taggable=\"true\"\n :multiple=\"false\"\n :required=\"true\"\n :disabled=\"isProvisioned\"\n :options=\"lvmVolumeGroups\"\n @keydown.native.enter.prevent=\"()=>{}\"\n />\n </div>\n </div>\n <ModalWithCard\n v-if=\"isOpen\"\n :ref=\"randomStr\"\n :name=\"randomStr\"\n width=\"30%\"\n @finish=\"saveCreateVolumeGroup\"\n @close=\"hideCreateVolumeGroup\"\n >\n <template #title>\n {{ t('harvester.host.disk.lvmVolumeGroup.label') }}\n </template>\n\n <template #content>\n <LabeledInput\n v-model:value=\"volumeGroupDialog\"\n :label=\"t('generic.name')\"\n class=\"mb-20\"\n required\n @keydown.native.enter.prevent=\"()=>{}\"\n />\n </template>\n </ModalWithCard>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.close {\n top: 10px;\n right: 10px;\n padding:0;\n position: absolute;\n}\n\n.disk {\n position: relative;\n\n .secret-name {\n height: $input-height;\n }\n\n &:not(:last-of-type) {\n padding-bottom: 10px;\n margin-bottom: 30px;\n }\n}\n\n.flex {\n display: flex;\n justify-content: space-between;\n}\n\n.badge-state {\n padding: 2px 5px;\n}\n</style>\n","import { render } from \"./HarvesterDisk.vue?vue&type=template&id=30b402d6&scoped=true\"\nimport script from \"./HarvesterDisk.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterDisk.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterDisk.vue?vue&type=style&index=0&id=30b402d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-30b402d6\"]])\n\nexport default __exports__","<script>\nimport LabeledSelect from '@shell/components/form/LabeledSelect.vue';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { SECRET } from '@shell/config/types';\nimport ModalWithCard from '@shell/components/ModalWithCard';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { Banner } from '@components/Banner';\n\nimport { base64Encode, base64Decode } from '@shell/utils/crypto';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\n\nconst _NEW = '_NEW';\n\nexport default {\n name: 'HarvesterSeeder',\n\n emits: ['update:value'],\n\n components: {\n Checkbox,\n LabeledInput,\n LabeledSelect,\n RadioGroup,\n ModalWithCard,\n NameNsDescription,\n Banner,\n },\n\n props: {\n mode: {\n type: String,\n required: true\n },\n\n node: {\n type: Object,\n required: true,\n },\n\n registerAfterHook: {\n type: Function,\n required: true,\n },\n\n inventory: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n const enableInventory = !!this.inventory?.id;\n\n return {\n enableInventory,\n value: this.inventory,\n secret: {},\n errors: [],\n newSecretSelected: false,\n isOpen: false,\n };\n },\n\n created() {\n this.registerAfterHook(this.saveInventory, 'saveInventory');\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.secret = await this.$store.dispatch(`${ inStore }/create`, {\n type: SECRET,\n data: {\n username: '',\n password: '',\n },\n metadata: {\n namespace: '',\n name: '',\n describe: '',\n },\n });\n },\n\n computed: {\n secretOption() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const out = this.$store.getters[`${ inStore }/all`](SECRET).filter((s) => {\n return s.data?.username && s.data?.password;\n }).map( (s) => {\n return {\n label: s.id,\n value: s.id\n };\n });\n\n out.unshift({\n label: this.t('harvester.virtualMachine.createSSHKey'),\n value: _NEW,\n });\n\n return out;\n },\n\n selectedSecret: {\n get() {\n const namespace = this.value.spec?.baseboardSpec?.connection?.authSecretRef?.namespace;\n const name = this.value?.spec?.baseboardSpec?.connection?.authSecretRef?.name;\n\n if (namespace && name) {\n return `${ namespace }/${ name }`;\n } else {\n return '';\n }\n },\n\n set(value) {\n if (value === _NEW) {\n this.newSecretSelected = true;\n } else {\n const [namespace, name] = value.split('/');\n\n this.value.spec.baseboardSpec.connection.authSecretRef['namespace'] = namespace;\n this.value.spec.baseboardSpec.connection.authSecretRef['name'] = name;\n }\n },\n },\n\n username: {\n get() {\n return base64Decode(this.secret?.data?.username);\n },\n\n set(value) {\n this.secret.data['username'] = base64Encode(value);\n }\n },\n\n password: {\n get() {\n return base64Decode(this.secret?.data?.password);\n },\n\n set(value) {\n this.secret.data['password'] = base64Encode(value);\n }\n },\n },\n\n methods: {\n async saveInventory() {\n if (this.enableInventory) {\n const errors = [];\n\n if (!this.value.spec.baseboardSpec.connection.host) {\n errors.push(this.t('validation.required', { key: this.t('harvester.seeder.inventory.host.label') }, true));\n }\n\n if (!this.value.spec.baseboardSpec.connection.port) {\n errors.push(this.t('validation.required', { key: this.t('harvester.seeder.inventory.port.label') }, true));\n }\n\n if (!this.selectedSecret) {\n errors.push(this.t('validation.required', { key: this.t('harvester.seeder.inventory.secret.label') }, true));\n }\n\n if (errors.length > 0) {\n return Promise.reject(exceptionToErrorsArray(errors));\n }\n\n if (!this.value.id) {\n this.value.metadata.annotations['metal.harvesterhci.io/local-node-name'] = this.node.id;\n }\n\n this.value.metadata.annotations['metal.harvesterhci.io/local-inventory'] = 'true';\n\n return await this.value.save();\n } else if (this.value.id) {\n return await this.value.remove();\n } else {\n return Promise.resolve();\n }\n },\n\n show() {\n this.isOpen = true;\n },\n\n hide() {\n this.isOpen = false;\n this.newSecretSelected = false;\n },\n\n cancel() {\n this.hide();\n },\n\n async saveSecret(buttonCb) {\n this.errors = [];\n\n if (!this.username) {\n this.errors.push(this.t('validation.required', { key: this.t('harvester.virtualMachine.input.username') }, true));\n }\n\n if (!this.password) {\n this.errors.push(this.t('validation.required', { key: this.t('harvester.virtualMachine.input.password') }, true));\n }\n\n if (this.errors.length > 0) {\n buttonCb(false);\n\n return;\n }\n\n try {\n const res = await this.secret.save();\n\n if (res.id) {\n this.secretOption.push({\n label: res.id,\n value: res.id\n });\n }\n\n this.selectedSecret = res.id;\n\n buttonCb(true);\n this.cancel();\n } catch (err) {\n this.errors = [err.message];\n buttonCb(false);\n }\n }\n },\n\n watch: {\n newSecretSelected(val) {\n if (val) {\n this.show();\n }\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"inventory.warningMessages.length > 0\">\n <Banner\n v-for=\"(msg, i) in inventory.warningMessages\"\n :key=\"i\"\n color=\"error\"\n :label=\"msg.text\"\n />\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <RadioGroup\n v-model:value=\"enableInventory\"\n :options=\"[\n { label: t('generic.enabled'), value: true },\n { label: t('generic.disabled'), value: false }\n ]\"\n :mode=\"mode\"\n name=\"enableInventory\"\n />\n </div>\n </div>\n <div v-if=\"enableInventory\">\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.spec.baseboardSpec.connection.host\"\n :label=\"t('harvester.seeder.inventory.host.label')\"\n :placeholder=\"t('harvester.seeder.inventory.host.placeholder')\"\n :mode=\"mode\"\n required\n />\n <Checkbox\n v-model:value=\"value.spec.baseboardSpec.connection.insecureTLS\"\n class=\"mt-5\"\n :mode=\"mode\"\n :label=\"t('harvester.seeder.inventory.insecureTLS.label')\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"value.spec.baseboardSpec.connection.port\"\n :label=\"t('harvester.seeder.inventory.port.label')\"\n :placeholder=\"t('harvester.seeder.inventory.port.placeholder')\"\n :mode=\"mode\"\n required\n />\n </div>\n </div>\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"selectedSecret\"\n :label=\"t('harvester.seeder.inventory.secret.label')\"\n :mode=\"mode\"\n :options=\"secretOption\"\n required\n />\n </div>\n </div>\n <div class=\"row mt-20\">\n <div class=\"col span-6\">\n <RadioGroup\n v-model:value=\"value.spec.events.enabled\"\n name=\"enabled\"\n :options=\"[true, false]\"\n :label=\"t('harvester.seeder.inventory.event.label')\"\n :labels=\"[t('generic.enabled'), t('generic.disabled')]\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div\n v-if=\"value.spec.events.enabled\"\n class=\"col span-6 mt-20\"\n >\n <LabeledInput\n v-model:value=\"value.spec.events.pollingInterval\"\n :label=\"t('harvester.seeder.inventory.pollingInterval.label')\"\n :mode=\"mode\"\n />\n </div>\n\n <ModalWithCard\n v-if=\"isOpen\"\n width=\"80%\"\n :errors=\"errors\"\n name=\"secretModal\"\n @finish=\"saveSecret\"\n @close=\"cancel\"\n >\n <template #title>\n {{ t('harvester.seeder.inventory.secret.create.title') }}\n </template>\n\n <template #content>\n <NameNsDescription\n :value=\"secret\"\n :namespaced=\"true\"\n mode=\"create\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <LabeledInput\n v-model:value=\"username\"\n :label=\"t('harvester.virtualMachine.input.username')\"\n class=\"mb-20\"\n required\n />\n\n <LabeledInput\n v-model:value=\"password\"\n type=\"password\"\n :label=\"t('harvester.virtualMachine.input.password')\"\n class=\"mb-20\"\n required\n />\n </template>\n </ModalWithCard>\n </div>\n </div>\n</template>\n","import { render } from \"./HarvesterSeeder.vue?vue&type=template&id=a2a1671e\"\nimport script from \"./HarvesterSeeder.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterSeeder.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport Footer from '@shell/components/form/Footer';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport ArrayListGrouped from '@shell/components/form/ArrayListGrouped';\nimport ButtonDropdown from '@shell/components/ButtonDropdown';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { HCI as HCI_LABELS_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { LONGHORN, SECRET, LONGHORN_DRIVER, LONGHORN_VERSION_V1 } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport { formatSi } from '@shell/utils/units';\nimport { findBy } from '@shell/utils/array';\nimport { clone } from '@shell/utils/object';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport KeyValue from '@shell/components/form/KeyValue';\nimport Loading from '@shell/components/Loading.vue';\nimport MessageLink from '@shell/components/MessageLink';\nimport { ADD_ONS } from '@pkg/harvester/config/harvester-map';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '@pkg/harvester/config/harvester';\n\nimport { _EDIT } from '@shell/config/query-params';\nimport { sortBy } from '@shell/utils/sort';\nimport { Banner } from '@components/Banner';\nimport { HCI } from '../../types';\nimport HarvesterDisk from './HarvesterDisk';\nimport HarvesterSeeder from './HarvesterSeeder';\nimport HarvesterKsmtuned from './HarvesterKsmtuned';\nimport Tags from '../../components/DiskTags';\nimport { LVM_DRIVER } from '../../models/harvester/storage.k8s.io.storageclass';\nimport isEqual from 'lodash/isEqual';\n\nexport const LONGHORN_SYSTEM = 'longhorn-system';\n\nexport const LONGHORN_V2_DATA_ENGINE = 'longhorn-system/v2-data-engine';\n\nexport default {\n name: 'HarvesterEditNode',\n\n emits: ['update:value'],\n\n components: {\n Footer,\n Tabbed,\n Tab,\n LabeledInput,\n NameNsDescription,\n ArrayListGrouped,\n HarvesterDisk,\n HarvesterKsmtuned,\n ButtonDropdown,\n KeyValue,\n Banner,\n Tags,\n Loading,\n HarvesterSeeder,\n MessageLink,\n },\n mixins: [CreateEditView],\n inheritAttrs: false,\n props: {\n value: {\n type: Object,\n required: true,\n }\n },\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = {\n longhornNodes: this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.NODES }),\n blockDevices: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.BLOCK_DEVICE }),\n addons: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS }),\n secrets: this.$store.dispatch(`${ inStore }/findAll`, { type: SECRET })\n };\n\n if (this.longhornV2LVMSupport) {\n hash.longhornV2DataEngine = this.$store.dispatch(`${ inStore }/find`, { type: LONGHORN.SETTINGS, id: LONGHORN_V2_DATA_ENGINE });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.INVENTORY)) {\n hash.inventories = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.INVENTORY });\n }\n\n await allHash(hash);\n\n const blockDevices = this.$store.getters[`${ inStore }/all`](HCI.BLOCK_DEVICE);\n const provisionedBlockDevices = blockDevices.filter((d) => {\n const isCurrentNode = d?.spec?.nodeName === this.value.id;\n const isLonghornMounted = findBy(this.longhornDisks, 'name', d.metadata.name);\n\n return d?.isProvisioned && isCurrentNode && !isLonghornMounted;\n })\n .map((d) => {\n const corrupted = d?.status?.deviceStatus?.fileSystem?.corrupted;\n\n return {\n isNew: true,\n name: d?.metadata?.name,\n originPath: d?.spec?.fileSystem?.mountPoint,\n path: d?.spec?.fileSystem?.mountPoint,\n blockDevice: d,\n displayName: d?.displayName,\n forceFormatted: corrupted ? true : d?.spec?.fileSystem?.forceFormatted || false,\n provisioner: d?.spec?.provisioner?.lvm ? LVM_DRIVER : LONGHORN_DRIVER,\n provisionerVersion: d?.spec?.provisioner?.longhorn?.engineVersion || LONGHORN_VERSION_V1,\n lvmVolumeGroup: d?.spec?.provisioner?.lvm?.vgName,\n };\n });\n\n const disks = [...this.longhornDisks, ...provisionedBlockDevices];\n\n this.disks = disks;\n this.newDisks = clone(disks);\n this.blockDeviceOpts = this.getBlockDeviceOpts();\n\n const addons = this.$store.getters[`${ inStore }/all`](HCI.ADD_ONS);\n const seeder = addons.find((addon) => addon.id === `harvester-system/${ ADD_ONS.HARVESTER_SEEDER }`);\n\n const seederEnabled = seeder ? seeder?.spec?.enabled : false;\n\n if (seederEnabled) {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const inventories = this.$store.getters[`${ inStore }/all`](HCI.INVENTORY) || [];\n\n const inventory = inventories.find((inv) => inv.id === `harvester-system/${ this.value.id }`);\n\n if (inventory) {\n this.inventory = await this.$store.dispatch(`${ inStore }/clone`, { resource: inventory });\n } else {\n this.inventory = await this.$store.dispatch(`${ inStore }/create`, {\n type: HCI.INVENTORY,\n metadata: {\n name: this.value.id,\n namespace: 'harvester-system'\n },\n });\n\n this.inventory.applyDefaults();\n }\n }\n },\n\n data() {\n const customName = this.value.metadata?.annotations?.[HCI_LABELS_ANNOTATIONS.HOST_CUSTOM_NAME] || '';\n const consoleUrl = this.value.metadata?.annotations?.[HCI_LABELS_ANNOTATIONS.HOST_CONSOLE_URL] || '';\n\n return {\n customName,\n consoleUrl,\n disks: [],\n newDisks: [],\n blockDevice: [],\n blockDeviceOpts: [],\n filteredLabels: clone(this.value.filteredSystemLabels),\n inventory: {},\n originValue: clone(this.value),\n };\n },\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n longhornV2LVMSupport() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('longhornV2LVMSupport');\n },\n\n removedDisks() {\n const out = this.disks.filter((d) => {\n return !findBy(this.newDisks, 'name', d.name);\n }) || [];\n\n return out;\n },\n\n longhornDisks() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const longhornNode = this.$store.getters[`${ inStore }/byId`](LONGHORN.NODES, `${ LONGHORN_SYSTEM }/${ this.value.id }`);\n const diskStatus = longhornNode?.status?.diskStatus || {};\n const diskSpec = longhornNode?.spec?.disks || {};\n\n const formatOptions = {\n increment: 1024,\n minExponent: 3,\n maxExponent: 3,\n maxPrecision: 2,\n suffix: 'iB',\n };\n\n const longhornDisks = Object.keys(diskStatus).map((key) => {\n const blockDevice = this.$store.getters[`${ inStore }/byId`](HCI.BLOCK_DEVICE, `${ LONGHORN_SYSTEM }/${ key }`);\n\n return {\n ...diskStatus[key],\n ...diskSpec?.[key],\n name: key,\n isNew: false,\n storageReserved: formatSi(diskSpec[key]?.storageReserved, formatOptions),\n storageAvailable: formatSi(diskStatus[key]?.storageAvailable, formatOptions),\n storageMaximum: formatSi(diskStatus[key]?.storageMaximum, formatOptions),\n storageScheduled: formatSi(diskStatus[key]?.storageScheduled, formatOptions),\n blockDevice,\n displayName: blockDevice?.displayName || key,\n forceFormatted: blockDevice?.spec?.fileSystem?.forceFormatted || false,\n tags: diskSpec?.[key]?.tags || [],\n provisioner: blockDevice?.spec?.provisioner?.lvm ? LVM_DRIVER : LONGHORN_DRIVER,\n provisionerVersion: blockDevice?.spec?.provisioner?.longhorn?.engineVersion || LONGHORN_VERSION_V1,\n lvmVolumeGroup: blockDevice?.spec?.provisioner?.lvm?.vgName,\n };\n });\n\n return longhornDisks;\n },\n\n showFormattedWarning() {\n const out = this.newDisks.filter((d) => d.forceFormatted && d.isNew && d.provisionerVersion === LONGHORN_VERSION_V1) || [];\n\n return out.length > 0;\n },\n\n hasKsmtunedSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return !!this.$store.getters[`${ inStore }/schemaFor`](HCI.KSTUNED);\n },\n\n hasBlockDevicesSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return !!this.$store.getters[`${ inStore }/schemaFor`](HCI.BLOCK_DEVICE);\n },\n\n longhornNode() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const longhornNodes = this.$store.getters[`${ inStore }/all`](LONGHORN.NODES);\n\n return longhornNodes.find((node) => node.id === `${ LONGHORN_SYSTEM }/${ this.value.id }`);\n },\n\n seederEnabled() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const addons = this.$store.getters[`${ inStore }/all`](HCI.ADD_ONS);\n const seeder = addons.find((addon) => addon.id === `harvester-system/${ ADD_ONS.HARVESTER_SEEDER }`);\n\n return seeder ? seeder?.spec?.enabled : false;\n },\n\n toEnableSeederAddon() {\n const { cluster } = this.$router?.currentRoute?.params || {};\n\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-namespace-id`,\n params: {\n resource: `${ HCI.ADD_ONS }`,\n namespace: 'harvester-system',\n cluster,\n id: `${ ADD_ONS.HARVESTER_SEEDER }`\n },\n query: { mode: _EDIT }\n };\n },\n\n hasAddonSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS);\n },\n\n hasSeederAddon() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const addons = this.$store.getters[`${ inStore }/all`](HCI.ADD_ONS);\n\n return addons.find((addon) => addon.id === `harvester-system/${ ADD_ONS.HARVESTER_SEEDER }`);\n },\n\n hasInventorySchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/schemaFor`](HCI.INVENTORY);\n },\n },\n watch: {\n customName(neu) {\n this.value.setAnnotation(HCI_LABELS_ANNOTATIONS.HOST_CUSTOM_NAME, neu);\n },\n\n consoleUrl(neu) {\n this.value.setAnnotation(HCI_LABELS_ANNOTATIONS.HOST_CONSOLE_URL, neu);\n },\n\n newDisks() {\n this.blockDeviceOpts = this.getBlockDeviceOpts();\n },\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.willSave, 'willSave');\n }\n\n if (this.registerAfterHook) {\n this.registerAfterHook(this.saveDisk);\n this.registerAfterHook(this.saveLonghornNode);\n }\n },\n\n methods: {\n addDisk(id) {\n const removedDisk = findBy(this.removedDisks, 'blockDevice.id', id);\n\n if (removedDisk) {\n return this.newDisks.push(removedDisk);\n }\n\n const inStore = this.$store.getters['currentProduct'].inStore;\n const disk = this.$store.getters[`${ inStore }/byId`](HCI.BLOCK_DEVICE, id);\n const mountPoint = disk?.spec?.fileSystem?.mountPoint;\n const lastFormattedAt = disk?.status?.deviceStatus?.fileSystem?.LastFormattedAt;\n\n let forceFormatted = true;\n const systems = ['ext4', 'XFS'];\n\n if (disk.childParts?.length > 0) {\n forceFormatted = true;\n } else if (lastFormattedAt) {\n forceFormatted = false;\n } else if (systems.includes(disk?.status?.deviceStatus?.fileSystem?.type)) {\n forceFormatted = false;\n }\n\n const name = disk?.metadata?.name;\n\n this.newDisks.push({\n name,\n path: mountPoint,\n allowScheduling: false,\n evictionRequested: false,\n storageReserved: 0,\n isNew: true,\n originPath: disk?.spec?.fileSystem?.mountPoint,\n blockDevice: disk,\n displayName: disk?.displayName,\n forceFormatted,\n provisioner: LONGHORN_DRIVER,\n provisionerVersion: LONGHORN_VERSION_V1,\n lvmVolumeGroup: null,\n });\n },\n\n async saveDisk() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const addDisks = this.newDisks.filter((d) => d.isNew);\n const removeDisks = this.disks.filter((d) => !findBy(this.newDisks, 'name', d.name) && d.blockDevice);\n\n if (addDisks.length === 0 && removeDisks.length === 0) {\n return Promise.resolve();\n } else if (addDisks.length !== 0 && removeDisks.length === 0) {\n const updatedDisks = addDisks.filter((d) => {\n const blockDevice = this.$store.getters[`${ inStore }/byId`](HCI.BLOCK_DEVICE, `${ LONGHORN_SYSTEM }/${ d.name }`);\n const { forceFormatted } = blockDevice.spec.fileSystem;\n const { provisioner } = blockDevice.spec;\n\n return !(blockDevice.isProvisioned && forceFormatted === d.forceFormatted && isEqual(provisioner, d.provisioner));\n });\n\n if (updatedDisks.length === 0) {\n return Promise.resolve();\n }\n }\n\n try {\n await Promise.all(addDisks.map((d) => {\n const blockDevice = this.$store.getters[`${ inStore }/byId`](HCI.BLOCK_DEVICE, `${ LONGHORN_SYSTEM }/${ d.name }`);\n\n blockDevice.spec.provision = true;\n blockDevice.spec.fileSystem.forceFormatted = d.forceFormatted;\n\n switch (d.provisioner) {\n case LONGHORN_DRIVER:\n blockDevice.spec.provisioner = { longhorn: { engineVersion: d.provisionerVersion } };\n break;\n case LVM_DRIVER:\n blockDevice.spec.provisioner = { lvm: { vgName: d.lvmVolumeGroup } };\n break;\n }\n\n return blockDevice.save();\n }));\n\n await Promise.all(removeDisks.map((d) => {\n const blockDevice = this.$store.getters[`${ inStore }/byId`](HCI.BLOCK_DEVICE, `${ LONGHORN_SYSTEM }/${ d.name }`);\n\n blockDevice.spec.provision = false;\n\n return blockDevice.save();\n }));\n\n this.$store.dispatch('growl/success', {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.host.disk.notification.success', { name: this.value.metadata?.name || '' }),\n }, { root: true });\n } catch (err) {\n return Promise.reject(exceptionToErrorsArray(err));\n }\n },\n\n canRemove(row) {\n return !!row?.value?.blockDevice;\n },\n\n onRemove(scope) {\n scope.remove();\n },\n\n updateHostLabels(labels) {\n this.filteredLabels = labels;\n },\n\n selectable(opt) {\n if ( opt.disabled) {\n return false;\n }\n\n return true;\n },\n\n getBlockDeviceOpts() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const blockDevices = this.$store.getters[`${ inStore }/all`](HCI.BLOCK_DEVICE);\n\n const out = blockDevices\n .filter((d) => {\n const addedToNodeCondition = findBy(d?.status?.conditions || [], 'type', 'AddedToNode');\n const isAdded = findBy(this.newDisks, 'name', d.metadata.name);\n const isRemoved = findBy(this.removedDisks, 'name', d.metadata.name);\n\n const deviceType = d.status?.deviceStatus?.details?.deviceType;\n\n if (deviceType !== 'disk' || d?.status?.state !== 'Active') {\n return false;\n }\n\n if ((!findBy(this.disks || [], 'name', d.metadata.name) &&\n d?.spec?.nodeName === this.value.id &&\n (!addedToNodeCondition || addedToNodeCondition?.status === 'False') &&\n !d?.isProvisioned &&\n !isAdded) ||\n isRemoved\n ) {\n return true;\n } else {\n return false;\n }\n })\n .map((d) => {\n const devPath = d.spec?.devPath;\n const deviceType = d.status?.deviceStatus?.details?.deviceType;\n const sizeBytes = d.status?.deviceStatus?.capacity?.sizeBytes;\n const size = formatSi(sizeBytes, { increment: 1024 });\n const parentDevice = d.status?.deviceStatus?.parentDevice;\n const isChildAdded = this.newDisks.find((newDisk) => newDisk.blockDevice?.status?.deviceStatus?.parentDevice === devPath);\n const name = d.displayName;\n\n let label = `${ name } (Type: ${ deviceType }, Size: ${ size })`;\n\n if (parentDevice) {\n label = `- ${ label }`;\n }\n\n return {\n label,\n value: d.id,\n action: this.addDisk,\n kind: !parentDevice ? 'group' : '',\n disabled: !!isChildAdded,\n group: parentDevice || devPath,\n isParent: !!parentDevice,\n };\n });\n\n return sortBy(out, ['group', 'isParent', 'label']);\n },\n\n ddButtonAction() {\n this.blockDeviceOpts = this.getBlockDeviceOpts();\n },\n\n willSave() {\n const filteredLabels = this.filteredLabels || {};\n\n this.value.metadata.labels = {\n ...this.value.metadata.labels,\n ...filteredLabels,\n };\n\n const originLabels = this.value.filteredSystemLabels;\n\n Object.keys(originLabels).map((key) => {\n if (!filteredLabels[key]) {\n delete this.value.metadata.labels[key];\n }\n });\n },\n\n async saveLonghornNode() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const disks = this.longhornNode?.spec?.disks || {};\n\n // update each disk tags and scheduling\n this.newDisks.map((disk) => {\n (disks[disk.name] || {}).tags = disk.tags;\n (disks[disk.name] || {}).allowScheduling = disk.allowScheduling;\n });\n let count = 0;\n\n const retrySave = async() => {\n try {\n await this.longhornNode.save();\n } catch (err) {\n if ((err.status === 409 || err.status === 403) && count < 3) {\n count++;\n\n await this.$store.dispatch(`${ inStore }/find`, {\n type: LONGHORN.NODES,\n id: this.longhornNode.id,\n opt: { force: true },\n });\n\n await new Promise((resolve) => setTimeout(resolve, '5000'));\n await retrySave();\n } else {\n return Promise.reject(exceptionToErrorsArray(err));\n }\n }\n };\n\n if (this.longhornNode) {\n await retrySave();\n }\n },\n },\n};\n</script>\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div\n v-else\n id=\"node\"\n >\n <div class=\"content\">\n <NameNsDescription\n :value=\"value\"\n :namespaced=\"false\"\n :mode=\"mode\"\n @update:value=\"$emit('update:value', $event)\"\n />\n <Tabbed\n ref=\"tabbed\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n >\n <Tab\n name=\"basics\"\n :weight=\"100\"\n :label=\"t('harvester.host.tabs.basics')\"\n >\n <LabeledInput\n v-model:value=\"customName\"\n :label=\"t('harvester.host.detail.customName')\"\n class=\"mb-20\"\n :mode=\"mode\"\n />\n\n <LabeledInput\n v-model:value=\"consoleUrl\"\n :label=\"t('harvester.host.detail.consoleUrl')\"\n class=\"mb-20\"\n :mode=\"mode\"\n />\n </Tab>\n <Tab\n v-if=\"hasBlockDevicesSchema\"\n name=\"disk\"\n :weight=\"80\"\n :label=\"t('harvester.host.tabs.storage')\"\n >\n <div\n v-if=\"longhornNode\"\n class=\"row mb-20\"\n >\n <div class=\"col span-12\">\n <Tags\n v-model:value=\"longhornNode.spec.tags\"\n :label=\"t('harvester.host.tags.label')\"\n :add-label=\"t('harvester.host.tags.addLabel')\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <ArrayListGrouped\n v-model:value=\"newDisks\"\n :mode=\"mode\"\n :initial-empty-row=\"false\"\n >\n <template #default=\"props\">\n <HarvesterDisk\n v-model:value=\"props.row.value\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disks=\"disks\"\n :node=\"value\"\n />\n </template>\n <template #add>\n <ButtonDropdown\n v-if=\"!isView\"\n :button-label=\"t('harvester.host.disk.add')\"\n :dropdown-options=\"blockDeviceOpts\"\n size=\"sm\"\n :selectable=\"selectable\"\n @click-action=\"e=>addDisk(e.value)\"\n @dd-button-action=\"ddButtonAction\"\n >\n <template #option=\"option\">\n <template v-if=\"option.kind === 'group'\">\n <b>\n {{ option.label }}\n </b>\n </template>\n <div v-else>\n {{ option.label }}\n </div>\n </template>\n </ButtonDropdown>\n </template>\n <template #remove-button=\"scope\">\n <button\n v-if=\"canRemove(scope.row, scope.i) && !isView\"\n type=\"button\"\n class=\"btn role-link close btn-sm\"\n @click=\"() => onRemove(scope)\"\n >\n <i class=\"icon icon-x\" />\n </button>\n <span v-else />\n </template>\n </ArrayListGrouped>\n </Tab>\n <Tab\n v-if=\"hasKsmtunedSchema\"\n name=\"Ksmtuned\"\n :weight=\"70\"\n :label=\"t('harvester.host.tabs.ksmtuned')\"\n >\n <HarvesterKsmtuned\n :mode=\"mode\"\n :node=\"value\"\n :register-before-hook=\"registerBeforeHook\"\n />\n </Tab>\n <Tab\n v-if=\"hasAddonSchema\"\n name=\"seeder\"\n :weight=\"60\"\n :label=\"t('harvester.host.tabs.seeder')\"\n >\n <HarvesterSeeder\n v-if=\"seederEnabled && hasInventorySchema\"\n :mode=\"mode\"\n :node=\"value\"\n :register-after-hook=\"registerAfterHook\"\n :inventory=\"inventory\"\n />\n <div v-else-if=\"seederEnabled && !hasInventorySchema\">\n <Banner\n color=\"info\"\n :label=\"t('harvester.seeder.banner.noInventory')\"\n />\n </div>\n <div v-else>\n <Banner\n v-if=\"hasSeederAddon\"\n color=\"info\"\n >\n <MessageLink\n :to=\"toEnableSeederAddon\"\n prefix-label=\"harvester.seeder.banner.enable.prefix\"\n middle-label=\"harvester.seeder.banner.enable.middle\"\n suffix-label=\"harvester.seeder.banner.enable.suffix\"\n />\n </Banner>\n <Banner\n v-else\n color=\"warning\"\n :label=\"t('harvester.seeder.banner.noAddon')\"\n />\n </div>\n </Tab>\n <Tab\n name=\"labels\"\n label-key=\"harvester.host.tabs.labels\"\n >\n <KeyValue\n key=\"labels\"\n :value=\"filteredLabels\"\n :add-label=\"t('labels.addLabel')\"\n :mode=\"mode\"\n :read-allowed=\"false\"\n :value-can-be-empty=\"true\"\n @update:value=\"updateHostLabels\"\n />\n </Tab>\n </Tabbed>\n <Banner\n v-if=\"showFormattedWarning\"\n color=\"warning\"\n :label=\"t('harvester.host.disk.forceFormatted.toolTip')\"\n />\n </div>\n\n <Footer\n class=\"footer\"\n :mode=\"mode\"\n :errors=\"errors\"\n @save=\"save\"\n @done=\"done\"\n />\n </div>\n</template>\n<style lang=\"scss\" scoped>\n#node {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n\n .content {\n flex-grow: 1\n }\n\n .wrapper{\n position: relative;\n }\n .nicOption {\n display: flex;\n justify-content: space-between;\n }\n}\n\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=5f263130&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=5f263130&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5f263130\"]])\n\nexport default __exports__","<script>\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CruResource from '@shell/components/CruResource';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport FileSelector, { createOnSelected } from '@shell/components/form/FileSelector';\n\nimport { randomStr } from '@shell/utils/string';\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nexport default {\n name: 'HarvesterEditKeypair',\n\n emits: ['update:value'],\n\n components: {\n Tab,\n Tabbed,\n CruResource,\n LabeledInput,\n FileSelector,\n NameNsDescription\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n }\n },\n\n data() {\n if ( !this.value.spec ) {\n this.value.spec = {};\n this.value.metadata = { name: '' };\n }\n\n return {\n publicKey: this.value.spec.publicKey || '',\n randomString: '',\n };\n },\n\n watch: {\n publicKey(neu) {\n const trimNeu = neu.trim();\n\n this.value.spec.publicKey = trimNeu;\n\n const splitSSH = trimNeu.split(/\\s+/);\n\n if (splitSSH.length === 3 && !this.value.metadata.name) {\n const keyComment = splitSSH[2];\n\n this.randomString = randomStr(10).toLowerCase();\n this.value.metadata.name = keyComment.includes('@') ? keyComment.split('@')[0] : keyComment;\n }\n }\n },\n\n methods: { onKeySelected: createOnSelected('publicKey') },\n};\n</script>\n\n<template>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n @finish=\"save\"\n >\n <div class=\"header mb-20\">\n <FileSelector\n v-if=\"isCreate\"\n class=\"btn btn-sm bg-primary mt-10\"\n :label=\"t('generic.readFromFile')\"\n accept=\".pub\"\n @selected=\"onKeySelected\"\n />\n </div>\n\n <NameNsDescription\n ref=\"nd\"\n :key=\"randomString\"\n :value=\"value\"\n :mode=\"mode\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <Tabbed\n v-bind=\"$attrs\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n >\n <Tab\n name=\"basic\"\n :label=\"t('harvester.sshKey.tabs.basics')\"\n :weight=\"1\"\n class=\"bordered-table\"\n >\n <LabeledInput\n v-model:value=\"publicKey\"\n type=\"multiline\"\n :mode=\"mode\"\n :min-height=\"160\"\n :label=\"t('harvester.sshKey.keypair')\"\n required\n />\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n\n<style lang=\"scss\" scoped>\n.header {\n display: flex;\n justify-content: flex-end;\n}\n</style>\n","import { render } from \"./harvesterhci.io.keypair.vue?vue&type=template&id=392bdb63&scoped=true\"\nimport script from \"./harvesterhci.io.keypair.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.keypair.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.keypair.vue?vue&type=style&index=0&id=392bdb63&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-392bdb63\"]])\n\nexport default __exports__","<script>\nimport { LAST_NAMESPACE } from '@shell/store/prefs';\nimport { LOGGING } from '@shell/config/types';\nimport Flow from '@shell/edit/logging-flow';\n\nexport default {\n extends: Flow,\n created() {\n if (this.isCreate && this.value.type === LOGGING.CLUSTER_FLOW) {\n this.value.metadata.namespace = 'cattle-logging-system';\n }\n\n this.registerBeforeHook(this.willSave, 'willSave');\n this.registerAfterHook(() => {\n const allNamespaces = this.$store.getters['allNamespaces'];\n const defaultNamepsace = allNamespaces.find((N) => N.id === 'default');\n const ns = defaultNamepsace?.id || allNamespaces?.[0]?.id || '';\n\n this.value.$dispatch('prefs/set', { key: LAST_NAMESPACE, value: ns }, { root: true });\n this.willSave();\n });\n }\n};\n\n</script>\n","import script from \"./harvesterhci.io.logging.clusterflow.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.logging.clusterflow.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<script>\nimport { LAST_NAMESPACE } from '@shell/store/prefs';\nimport CreateEditView from './harvesterhci.io.logging.output';\n\nexport default {\n extends: CreateEditView,\n created() {\n if (this.isCreate) {\n this.value.metadata.namespace = 'cattle-logging-system';\n }\n\n this.registerAfterHook(() => {\n const allNamespaces = this.$store.getters['allNamespaces'];\n const defaultNamepsace = allNamespaces.find((N) => N.id === 'default');\n const ns = defaultNamepsace?.id || allNamespaces?.[0]?.id || '';\n\n this.value.$dispatch('prefs/set', { key: LAST_NAMESPACE, value: ns }, { root: true });\n });\n }\n};\n</script>\n","import script from \"./harvesterhci.io.logging.clusteroutput.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.logging.clusteroutput.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<script>\nimport Flow from '@shell/edit/logging-flow';\nexport default { components: { Flow } };\n</script>\n<template>\n <Flow v-bind=\"$attrs\" />\n</template>\n","import { render } from \"./harvesterhci.io.logging.flow.vue?vue&type=template&id=3b39f8e8\"\nimport script from \"./harvesterhci.io.logging.flow.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.logging.flow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { LOGGING, SCHEMA } from '@shell/config/types';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CruResource from '@shell/components/CruResource';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport Labels from '@shell/components/form/Labels';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { Banner } from '@components/Banner';\nimport { PROVIDERS } from '@shell/models/logging.banzaicloud.io.output';\nimport { _VIEW } from '@shell/config/query-params';\nimport { clone, set } from '@shell/utils/object';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport jsyaml from 'js-yaml';\nimport { createYaml } from '@shell/utils/create-yaml';\nimport YamlEditor, { EDITOR_MODES } from '@shell/components/YamlEditor';\nimport { FLOW_TYPE } from '../config/harvester-map';\n\nconst LOGGING_EVENT = 'Logging/Event';\nconst AUDIT_ONLY = 'Audit Only';\nconst OUTPUT_TYPE = [LOGGING_EVENT, AUDIT_ONLY];\n\nexport default {\n emits: ['update:value'],\n\n components: {\n Banner, CruResource, Labels, LabeledSelect, NameNsDescription, Tab, Tabbed, YamlEditor\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n async fetch() {\n const schemas = this.$store.getters['harvester/all'](SCHEMA);\n\n const resourceSchema = this.$store.getters['harvester/byId'](SCHEMA, LOGGING.OUTPUT);\n\n const schemaDefinition = await resourceSchema.fetchResourceFields();\n\n let bufferYaml = '';\n\n if ( !isEmpty(this.value.spec[this.selectedProvider]?.buffer) ) {\n bufferYaml = jsyaml.dump(this.value.spec[this.selectedProvider].buffer);\n } else if (schemaDefinition) {\n bufferYaml = createYaml(\n schemas,\n `io.banzaicloud.logging.v1beta1.Output.spec.${ this.selectedProvider }.buffer`,\n {},\n true,\n 1,\n '',\n LOGGING.OUTPUT\n );\n\n // createYaml doesn't support passing reference types (array, map) as the first type. As such\n // I'm manipulating the output since I'm not sure it's something we want to actually support\n // seeing as it's really createResourceYaml and this here is a gray area between spoofed types\n // and just a field within a spec.\n bufferYaml = bufferYaml.substring(bufferYaml.indexOf('\\n') + 1).replace(/# {2}/g, '#');\n }\n\n if (bufferYaml.length) {\n this.bufferYaml = bufferYaml;\n this.initialBufferYaml = bufferYaml;\n\n this.$refs.yaml.updateValue(this.bufferYaml);\n }\n },\n\n data() {\n if (this.isCreate) {\n this.value.metadata.namespace = 'default';\n }\n set(this.value, 'spec', this.value.spec || {});\n\n const providers = PROVIDERS.map((provider) => ({\n ...provider,\n value: provider.name,\n label: this.t(provider.labelKey)\n }));\n\n const selectedProviders = providers.filter((provider) => {\n const specProvider = this.value.spec[provider.name];\n const correctedSpecProvider = provider.name === 'forward' ? specProvider?.servers?.[0] || {} : specProvider;\n\n return !isEmpty(correctedSpecProvider) && !isEqual(correctedSpecProvider, provider.default);\n });\n\n const selectedProvider = selectedProviders?.[0]?.value || providers[0].value; // selected provider name\n const selectedProviderDefault = providers.find((p) => p.name === selectedProvider)?.default || providers[0].default;\n\n if (this.mode !== _VIEW) {\n set(this.value.spec, selectedProvider, this.value.spec[selectedProvider] || clone(selectedProviderDefault));\n }\n\n return {\n bufferYaml: '',\n initialBufferYaml: '',\n providers,\n selectedProvider,\n hasMultipleProvidersSelected: selectedProviders.length > 1,\n selectedProviders,\n LOGGING,\n loggingType: this.value.loggingType !== FLOW_TYPE.AUDIT ? LOGGING_EVENT : AUDIT_ONLY\n };\n },\n\n computed: {\n EDITOR_MODES() {\n return EDITOR_MODES;\n },\n enabledProviders() {\n return this.providers.filter((p) => p.enabled);\n },\n cruMode() {\n if (this.selectedProviders.length > 1 || !this.value.allProvidersSupported) {\n return _VIEW;\n }\n\n return this.mode;\n },\n outputTypeOptions() {\n return OUTPUT_TYPE;\n },\n outputProvider: {\n get() {\n return this.selectedProvider;\n },\n\n set(newProvider) {\n this.selectedProvider = newProvider;\n const providerDefaultSpec = this.providers.find((p) => p.name === newProvider)?.default || {};\n\n this.value.spec = { [newProvider]: this.value.spec[newProvider] || clone(providerDefaultSpec) };\n }\n },\n },\n\n created() {\n this.registerBeforeHook(this.willSave, 'willSave');\n },\n methods: {\n getComponent(name) {\n return require(`@shell/edit/logging.banzaicloud.io.output/providers/${ name }`).default;\n },\n launch(provider) {\n this.$refs.tabbed.select(provider.name);\n },\n willSave() {\n const bufferJson = jsyaml.load(this.bufferYaml);\n\n if (!isEmpty(bufferJson)) {\n this.value.spec[this.selectedProvider].buffer = bufferJson;\n } else {\n delete this.value.spec[this.selectedProvider]['buffer'];\n }\n\n if (this.loggingType === AUDIT_ONLY) {\n this.value.spec['loggingRef'] = 'harvester-kube-audit-log-ref';\n }\n },\n tabChanged({ tab }) {\n if ( tab.name === 'buffer' ) {\n this.$nextTick(() => {\n if ( this.$refs.yaml ) {\n this.$refs.yaml.refresh();\n this.$refs.yaml.focus();\n }\n });\n }\n },\n onYamlEditorReady(cm) {\n cm.getMode().fold = 'yamlcomments';\n cm.execCommand('foldAll');\n cm.execCommand('unfold');\n },\n }\n};\n</script>\n\n<template>\n <div class=\"output\">\n <CruResource\n :done-route=\"doneRoute\"\n :mode=\"cruMode\"\n :resource=\"value\"\n :subtypes=\"[]\"\n :validation-passed=\"true\"\n :errors=\"errors\"\n :can-yaml=\"true\"\n @error=\"e=>errors = e\"\n @finish=\"save\"\n @cancel=\"done\"\n >\n <NameNsDescription\n v-if=\"!isView\"\n :value=\"value\"\n :mode=\"mode\"\n label=\"generic.name\"\n :register-before-hook=\"registerBeforeHook\"\n :namespaced=\"value.type !== LOGGING.CLUSTER_OUTPUT\"\n @update:value=\"$emit('update:value', $event)\"\n />\n <Banner\n v-if=\"selectedProviders.length > 1\"\n color=\"info\"\n >\n {{ t('logging.output.tips.singleProvider') }}\n </Banner>\n <Banner\n v-else-if=\"!value.allProvidersSupported\"\n color=\"info\"\n >\n {{ t('logging.output.tips.multipleProviders') }}\n </Banner>\n <Tabbed\n v-else\n ref=\"tabbed\"\n :side-tabs=\"true\"\n @changed=\"tabChanged($event)\"\n >\n <Tab\n name=\"Output\"\n label=\"Output\"\n :weight=\"2\"\n >\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"loggingType\"\n class=\"mb-20\"\n :options=\"outputTypeOptions\"\n :disabled=\"!isCreate\"\n :mode=\"mode\"\n :label=\"t('generic.type')\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"outputProvider\"\n label=\"Output\"\n :options=\"providers\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div class=\"spacer\"></div>\n <component\n :is=\"getComponent(selectedProvider)\"\n :value=\"value.spec[selectedProvider]\"\n :namespace=\"value.namespace\"\n :mode=\"mode\"\n />\n </Tab>\n <Tab\n name=\"buffer\"\n :label=\"t('logging.output.buffer.label')\"\n :weight=\"1\"\n >\n <YamlEditor\n ref=\"yaml\"\n v-model:value=\"bufferYaml\"\n :scrolling=\"false\"\n :initial-yaml-values=\"initialBufferYaml\"\n :editor-mode=\"isView ? EDITOR_MODES.VIEW_CODE : EDITOR_MODES.EDIT_CODE\"\n @onReady=\"onYamlEditorReady\"\n />\n </Tab>\n <Tab\n v-if=\"!isView\"\n name=\"labels-and-annotations\"\n label-key=\"generic.labelsAndAnnotations\"\n :weight=\"0\"\n >\n <Labels\n default-container-class=\"labels-and-annotations-container\"\n :value=\"value\"\n :mode=\"mode\"\n :display-side-by-side=\"false\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n </div>\n</template>\n\n<style lang=\"scss\">\n $chart: 110px;\n $side: 15px;\n $margin: 10px;\n $logo: 60px;\n\n.output {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n .provider {\n h1 {\n display: inline-block;\n }\n }\n\n .box-container {\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n margin: 0 -1*$margin;\n\n @media only screen and (min-width: map-get($breakpoints, '--viewport-4')) {\n .toggle-gradient-box {\n width: 100%;\n }\n }\n @media only screen and (min-width: map-get($breakpoints, '--viewport-7')) {\n .toggle-gradient-box {\n width: calc(50% - 2 * #{$margin});\n }\n }\n @media only screen and (min-width: map-get($breakpoints, '--viewport-9')) {\n .toggle-gradient-box {\n width: calc(33.33333% - 2 * #{$margin});\n }\n }\n @media only screen and (min-width: map-get($breakpoints, '--viewport-12')) {\n .toggle-gradient-box {\n width: calc(25% - 2 * #{$margin});\n }\n }\n\n .toggle-gradient-box {\n margin: $margin;\n padding: $margin;\n position: relative;\n border-radius: calc( 1.5 * var(--border-radius));\n\n &:hover {\n box-shadow: 0 0 30px var(--shadow);\n transition: box-shadow 0.1s ease-in-out;\n cursor: pointer;\n }\n\n .side-label {\n transform: rotate(180deg);\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n min-width: calc(1.5 * var(--border-radius));\n width: $side;\n border-top-right-radius: calc( 1.5 * var(--border-radius));\n border-bottom-right-radius: calc( 1.5 * var(--border-radius));\n\n label {\n text-align: center;\n writing-mode: tb;\n height: 100%;\n padding: 0 2px;\n display: block;\n white-space: no-wrap;\n text-overflow: ellipsis;\n }\n }\n\n .logo {\n text-align: center;\n width: $logo;\n height: $logo;\n border-radius: calc(2 * var(--border-radius));\n overflow: hidden;\n background-color: white;\n display: inline-block;\n vertical-align: middle;\n\n img {\n width: $logo - 4px;\n height: $logo - 4px;\n object-fit: contain;\n position: relative;\n top: 2px;\n }\n }\n\n &:hover {\n background-position: right center;\n }\n\n .name {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 0;\n display: inline-block;\n vertical-align: middle;\n }\n }\n }\n}\n</style>\n","import { render } from \"./harvesterhci.io.logging.output.vue?vue&type=template&id=10b747e0\"\nimport script from \"./harvesterhci.io.logging.output.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.logging.output.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.logging.output.vue?vue&type=style&index=0&id=10b747e0&lang=scss\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CruResource from '@shell/components/CruResource';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { MONITORING } from '@shell/config/types';\nimport Loading from '@shell/components/Loading';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { EDITOR_MODES } from '@shell/components/YamlEditor';\nimport { RECEIVERS_TYPES } from '@shell/models/monitoring.coreos.com.receiver';\nimport RouteConfig from '@shell/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport ActionMenu from '@shell/components/ActionMenu';\nimport { _CREATE, _EDIT, _VIEW, _CONFIG } from '@shell/config/query-params';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n ActionMenu,\n CruResource,\n Loading,\n NameNsDescription,\n ResourceTable,\n RouteConfig,\n Tab,\n Tabbed,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const alertmanagerConfigId = this.value.id;\n\n const alertmanagerConfigResource = await this.$store.dispatch(`${ inStore }/find`, { type: MONITORING.ALERTMANAGERCONFIG, id: alertmanagerConfigId });\n\n this.alertmanagerConfigId = alertmanagerConfigId;\n this.alertmanagerConfigResource = alertmanagerConfigResource;\n this.alertmanagerConfigDetailRoute = alertmanagerConfigResource._detailLocation;\n\n const alertmanagerConfigActions = alertmanagerConfigResource.availableActions;\n const receiverActions = alertmanagerConfigResource.getReceiverActions(alertmanagerConfigActions);\n\n this.receiverActions = receiverActions;\n },\n\n data() {\n this.value.applyDefaults();\n\n const defaultReceiverValues = {};\n const receiverSchema = this.$store.getters['harvester/schemaFor'](MONITORING.SPOOFED.ALERTMANAGERCONFIG_RECEIVER_SPEC);\n const routeSchema = this.$store.getters['harvester/schemaFor'](MONITORING.SPOOFED.ALERTMANAGERCONFIG_ROUTE_SPEC);\n const receiverOptions = (this.value?.spec?.receivers || []).map((receiver) => receiver.name);\n\n return {\n actionMenuTargetElement: null,\n actionMenuTargetEvent: null,\n config: _CONFIG,\n create: _CREATE,\n createReceiverLink: this.value.getCreateReceiverRoute(),\n defaultReceiverValues,\n receiverActionMenuIsOpen: false,\n receiverTableHeaders: [\n {\n name: 'name',\n labelKey: 'tableHeaders.name',\n value: 'name',\n sort: ['nameSort'],\n formatter: 'LinkDetail',\n canBeVariable: true,\n },\n {\n name: 'type',\n labelKey: 'tableHeaders.type',\n value: 'name',\n formatter: 'ReceiverIcons',\n canBeVariable: true,\n }\n // Add more columns\n ],\n newReceiverType: null,\n receiverActions: [],\n receiverOptions,\n receiverTypes: RECEIVERS_TYPES,\n routeSchema,\n receiverSchema,\n selectedReceiverName: '',\n selectedRowValue: null,\n view: _VIEW,\n };\n },\n\n computed: {\n editorMode() {\n if ( this.mode === _VIEW ) {\n return EDITOR_MODES.VIEW_CODE;\n }\n\n return EDITOR_MODES.EDIT_CODE;\n },\n },\n methods: {\n translateReceiverTypes() {\n return this.receiverTypes.map((receiverType) => {\n return {\n ...receiverType,\n label: this.t(receiverType.label)\n };\n });\n },\n getReceiverDetailLink(receiverData) {\n if (receiverData && receiverData.name) {\n return this.value.getReceiverDetailLink(receiverData.name);\n }\n },\n\n toggleReceiverActionMenu() {\n this.receiverActionMenuIsOpen = true;\n },\n setActionMenuState(eventData) {\n // This method is called when the user clicks a context menu\n // for a receiver in the receiver in the receiver list view.\n // It sets the target element so the menu can open where the\n // user clicked.\n const { event, targetElement } = eventData;\n\n // TargetElement could be an array of more than\n // one if there is more than one ref of the same name.\n if (event && targetElement) {\n this.actionMenuTargetElement = targetElement;\n this.actionMenuTargetEvent = event;\n\n // We take the selected receiver name out of the target\n // element's ID to help us build the URL to link to\n // the detail page of that receiver.\n // We use a plus sign as the delimiter to separate the\n // name because the plus is not an allowed character in\n // Kubernetes names.\n this.selectedReceiverName = targetElement.id.split('+').slice(2).join('');\n\n this.toggleReceiverActionMenu();\n } else {\n throw new Error('Could not find action menu target element.');\n }\n },\n goToEdit() {\n // 'goToEdit' is the exact name of an action for AlertmanagerConfig\n // and this method executes the action.\n this.$router.push(this.alertmanagerConfigResource.getEditReceiverConfigRoute(this.selectedReceiverName, _EDIT));\n },\n\n goToEditYaml() {\n // 'goToEditYaml' is the exact name of an action for AlertmanagerConfig\n // and this method executes the action.\n this.$router.push(this.alertmanagerConfigResource.getEditReceiverYamlRoute(this.selectedReceiverName, _EDIT));\n },\n promptRemove() {\n // 'promptRemove' is the exact name of an action for AlertmanagerConfig\n // and this method executes the action.\n // Get the name of the receiver to delete from the action info.\n const nameOfReceiverToDelete = this.selectedReceiverName;\n // Remove it from the configuration of the parent AlertmanagerConfig\n // resource.\n const existingReceivers = this.alertmanagerConfigResource.spec.receivers || [];\n const receiversMinusDeletedItem = existingReceivers.filter((receiver) => {\n return receiver.name !== nameOfReceiverToDelete;\n });\n\n this.alertmanagerConfigResource.spec.receivers = receiversMinusDeletedItem;\n // After saving the AlertmanagerConfig, the resource has been deleted.\n this.alertmanagerConfigResource.save(...arguments);\n }\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <CruResource\n v-else\n class=\"route\"\n :done-route=\"doneRoute\"\n :errors=\"errors\"\n :mode=\"mode\"\n :resource=\"value\"\n :subtypes=\"[]\"\n :cancel-event=\"true\"\n @error=\"e=>errors = e\"\n @finish=\"save\"\n @cancel=\"done\"\n >\n <NameNsDescription\n :value=\"value\"\n :mode=\"mode\"\n :namespaced=\"isNamespaced\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <Tabbed>\n <Tab\n :label=\"t('monitoring.route.label')\"\n :weight=\"1\"\n name=\"route\"\n >\n <RouteConfig\n :value=\"value.spec.route\"\n :mode=\"mode\"\n :receiver-options=\"receiverOptions\"\n />\n </Tab>\n <Tab\n :label=\"t('alertmanagerConfigReceiver.receivers')\"\n :weight=\"2\"\n name=\"receivers\"\n >\n <ResourceTable\n :headers=\"receiverTableHeaders\"\n :schema=\"receiverSchema\"\n :rows=\"value.spec.receivers || []\"\n :get-custom-detail-link=\"getReceiverDetailLink\"\n :table-actions=\"false\"\n :custom-actions=\"value.receiverActions\"\n @clickedActionButton=\"setActionMenuState\"\n >\n <template #header-button>\n <router-link\n v-if=\"createReceiverLink && createReceiverLink.name\"\n :to=\"mode !== create ? createReceiverLink : {}\"\n >\n <button\n class=\"btn role-primary\"\n :disabled=\"mode === create\"\n :tooltip=\"t('monitoring.alertmanagerConfig.disabledReceiverButton')\"\n >\n {{ t('monitoring.receiver.addReceiver') }}\n <i\n v-if=\"mode === create\"\n v-clean-tooltip=\"t('monitoring.alertmanagerConfig.disabledReceiverButton')\"\n class=\"icon icon-info\"\n />\n </button>\n </router-link>\n </template>\n </ResourceTable>\n </Tab>\n </Tabbed>\n <ActionMenu\n :custom-actions=\"receiverActions\"\n :open=\"receiverActionMenuIsOpen\"\n :use-custom-target-element=\"true\"\n :custom-target-element=\"actionMenuTargetElement\"\n :custom-target-event=\"actionMenuTargetEvent\"\n @close=\"receiverActionMenuIsOpen = false\"\n @goToEdit=\"goToEdit\"\n @goToEditYaml=\"goToEditYaml\"\n @promptRemove=\"promptRemove\"\n />\n </CruResource>\n</template>\n\n<style lang=\"scss\" scoped>\n h3 {\n margin-top: 2em;\n }\n input {\n margin-top: 1em;\n }\n .route {\n &[real-mode=view] .label {\n color: var(--input-label);\n }\n }\n button {\n margin-left: 0.5em;\n }\n a:hover {\n text-decoration: none;\n }\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=34ffb89b&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=34ffb89b&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-34ffb89b\"]])\n\nexport default __exports__","<script>\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CruResource from '@shell/components/CruResource';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { RadioGroup } from '@components/Form/Radio';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nimport { HCI as HCI_LABELS_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { allHash } from '@shell/utils/promise';\nimport { HCI } from '../types';\nimport { NETWORK_TYPE } from '../config/types';\n\nconst { L2VLAN, UNTAGGED } = NETWORK_TYPE;\n\nconst AUTO = 'auto';\nconst MANUAL = 'manual';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n Tab,\n Tabbed,\n CruResource,\n LabeledInput,\n NameNsDescription,\n RadioGroup,\n LabeledSelect,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n }\n },\n\n data() {\n const config = JSON.parse(this.value.spec.config);\n const annotations = this.value?.metadata?.annotations || {};\n const layer3Network = JSON.parse(annotations[HCI_LABELS_ANNOTATIONS.NETWORK_ROUTE] || '{}');\n\n if ((config.bridge || '').endsWith('-br')) {\n config.bridge = config.bridge.slice(0, -3);\n }\n\n const type = this.value.vlanType || L2VLAN ;\n\n return {\n config,\n type,\n layer3Network: {\n mode: layer3Network.mode || AUTO,\n serverIPAddr: layer3Network.serverIPAddr || '',\n cidr: layer3Network.cidr || '',\n gateway: layer3Network.gateway || '',\n },\n };\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n await allHash({ clusterNetworks: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.CLUSTER_NETWORK }) });\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.updateBeforeSave);\n }\n },\n\n computed: {\n modeOptions() {\n return [{\n label: this.t('harvester.network.layer3Network.mode.auto'),\n value: AUTO,\n }, {\n label: this.t('harvester.network.layer3Network.mode.manual'),\n value: MANUAL,\n }];\n },\n\n clusterNetworkOptions() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const clusterNetworks = this.$store.getters[`${ inStore }/all`](HCI.CLUSTER_NETWORK) || [];\n\n return clusterNetworks.map((n) => {\n const disabled = !n.isReady;\n\n return {\n label: disabled ? `${ n.id } (${ this.t('generic.notReady') })` : n.id,\n value: n.id,\n disabled,\n };\n });\n },\n\n networkType() {\n return [L2VLAN, UNTAGGED];\n },\n\n isUntaggedNetwork() {\n if (this.isView) {\n return this.value.vlanType === UNTAGGED;\n }\n\n return this.type === UNTAGGED;\n }\n },\n\n methods: {\n async saveNetwork(buttonCb) {\n const errors = [];\n\n if (!this.config.vlan && !this.isUntaggedNetwork) {\n errors.push(this.$store.getters['i18n/t']('validation.required', { key: this.t('tableHeaders.networkVlan') }));\n }\n\n if (!this.config.bridge) {\n errors.push(this.$store.getters['i18n/t']('validation.required', { key: this.t('harvester.network.clusterNetwork.label') }));\n }\n\n if (this.layer3Network.mode === MANUAL) {\n if (!this.layer3Network.gateway) {\n errors.push(this.$store.getters['i18n/t']('validation.required', { key: this.t('harvester.network.layer3Network.gateway.label') }));\n }\n if (!this.layer3Network.cidr) {\n errors.push(this.$store.getters['i18n/t']('validation.required', { key: this.t('harvester.network.layer3Network.cidr.label') }));\n }\n }\n\n if (errors.length > 0) {\n buttonCb(false);\n this.errors = errors;\n\n return false;\n }\n\n this.value.setAnnotation(HCI_LABELS_ANNOTATIONS.NETWORK_ROUTE, JSON.stringify(this.layer3Network));\n\n await this.save(buttonCb);\n },\n\n input(neu) {\n if (neu === '') {\n this.config.vlan = '';\n\n return;\n }\n const newValue = Number(neu);\n\n if (newValue > 4094) {\n this.config.vlan = 4094;\n } else if (newValue < 1) {\n this.config.vlan = 1;\n } else {\n this.config.vlan = newValue;\n }\n },\n\n updateBeforeSave() {\n this.config.name = this.value.metadata.name;\n\n if (this.isUntaggedNetwork) {\n delete this.config.vlan;\n }\n\n this.value.spec.config = JSON.stringify({\n ...this.config,\n bridge: `${ this.config.bridge }-br`,\n });\n },\n }\n};\n</script>\n\n<template>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n @finish=\"saveNetwork\"\n >\n <NameNsDescription\n ref=\"nd\"\n :value=\"value\"\n :mode=\"mode\"\n @update:value=\"$emit('update:value', $event)\"\n />\n <Tabbed\n v-bind=\"$attrs\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n >\n <Tab\n name=\"basics\"\n :label=\"t('harvester.network.tabs.basics')\"\n :weight=\"99\"\n class=\"bordered-table\"\n >\n <LabeledSelect\n v-model:value=\"type\"\n class=\"mb-20\"\n :options=\"networkType\"\n :mode=\"mode\"\n :label=\"t('harvester.fields.type')\"\n required\n />\n\n <LabeledInput\n v-if=\"!isUntaggedNetwork\"\n v-model:value.number=\"config.vlan\"\n class=\"mb-20\"\n required\n type=\"number\"\n placeholder=\"e.g. 1-4094\"\n :label=\"t('tableHeaders.networkVlan')\"\n :mode=\"mode\"\n @update:value=\"input\"\n />\n\n <div class=\"row\">\n <div\n class=\"col span-12\"\n >\n <LabeledSelect\n v-model:value=\"config.bridge\"\n class=\"mb-20\"\n :label=\"t('harvester.network.clusterNetwork.label')\"\n required\n :options=\"clusterNetworkOptions\"\n :mode=\"mode\"\n :placeholder=\"t('harvester.network.clusterNetwork.selectPlaceholder')\"\n />\n </div>\n </div>\n </Tab>\n <Tab\n v-if=\"!isUntaggedNetwork\"\n name=\"layer3Network\"\n :label=\"t('harvester.network.tabs.layer3Network')\"\n :weight=\"98\"\n class=\"bordered-table\"\n >\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <RadioGroup\n v-model:value=\"layer3Network.mode\"\n name=\"layer3NetworkMode\"\n :label=\"t('harvester.network.layer3Network.mode.label')\"\n :mode=\"mode\"\n :options=\"modeOptions\"\n />\n </div>\n </div>\n <div\n v-if=\"layer3Network.mode === 'auto'\"\n class=\"row mt-10\"\n >\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"layer3Network.serverIPAddr\"\n class=\"mb-20\"\n :label=\"t('harvester.network.layer3Network.serverIPAddr.label')\"\n :mode=\"mode\"\n />\n </div>\n </div>\n <div\n v-else\n class=\"row mt-10\"\n >\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"layer3Network.cidr\"\n class=\"mb-20\"\n :label=\"t('harvester.network.layer3Network.cidr.label')\"\n :placeholder=\"t('harvester.network.layer3Network.cidr.placeholder')\"\n :mode=\"mode\"\n required\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"layer3Network.gateway\"\n class=\"mb-20\"\n :label=\"t('harvester.network.layer3Network.gateway.label')\"\n :placeholder=\"t('harvester.network.layer3Network.gateway.placeholder')\"\n :mode=\"mode\"\n required\n />\n </div>\n </div>\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n","import { render } from \"./harvesterhci.io.networkattachmentdefinition.vue?vue&type=template&id=004d6092\"\nimport script from \"./harvesterhci.io.networkattachmentdefinition.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.networkattachmentdefinition.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { RadioGroup } from '@components/Form/Radio';\nimport { Banner } from '@components/Banner';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport CruResource from '@shell/components/CruResource';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport MessageLink from '@shell/components/MessageLink';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { isCronValid } from '@pkg/harvester/utils/cron';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '@pkg/harvester/config/harvester';\nimport { allHash } from '@shell/utils/promise';\nimport { HCI } from '../types';\nimport { sortBy } from '@shell/utils/sort';\nimport { BACKUP_TYPE } from '../config/types';\nimport { _EDIT, _CREATE } from '@shell/config/query-params';\n\nexport default {\n name: 'CreateVMSchedule',\n components: {\n CruResource,\n Tabbed,\n Tab,\n RadioGroup,\n LabeledInput,\n LabeledSelect,\n MessageLink,\n Banner,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n async fetch() {\n const hash = await allHash({\n settings: this.$store.dispatch('harvester/findAll', { type: HCI.SETTING }),\n vms: this.$store.dispatch('harvester/findAll', { type: HCI.VM }),\n });\n\n this.allVms = hash.vms;\n this.settings = hash.settings;\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n mode: {\n type: String,\n required: true,\n }\n },\n\n data() {\n if (this.mode === _CREATE) {\n const defaultNs = this.$store.getters['defaultNamespace'];\n const vmNamespace = this.$route.query?.vmNamespace || defaultNs;\n const vmName = this.$route.query?.vmName;\n\n delete this.value.metadata.annotations;\n delete this.value.metadata.labels;\n\n this.value['metadata'] = {\n namespace: vmNamespace,\n name: vmName ? `svmbackup-${ vmName }` : ''\n };\n\n if (!this.value.spec) {\n this.value['spec'] = {\n cron: '',\n retain: 8,\n maxFailure: 4,\n vmbackup: {\n source: {\n apiGroup: 'kubevirt.io',\n kind: 'VirtualMachine',\n name: vmName || ''\n },\n type: BACKUP_TYPE.BACKUP\n }\n };\n }\n }\n\n return { settings: [] };\n },\n\n computed: {\n backupTargetResource() {\n return this.settings.find( (O) => O.id === 'backup-target');\n },\n isEmptyValue() {\n return this.getBackupTargetValueIsEmpty(this.backupTargetResource);\n },\n canUpdate() {\n return this?.backupTargetResource?.canUpdate;\n },\n errorMessage() {\n return this.backupTargetResource?.errMessage;\n },\n canSave() {\n return !!this.value.spec.cron && isCronValid(this.value.spec.cron) &&\n !!this.value.metadata.name &&\n !!this.value.metadata.namespace &&\n !!this.value.spec.retain &&\n !!this.value.spec.maxFailure;\n },\n isBackupTargetUnAvailable() {\n return this.value.spec.vmbackup.type === BACKUP_TYPE.BACKUP && (this.errorMessage || this.isEmptyValue) && this.canUpdate;\n },\n vmOptions() {\n const nsVmList = this.$store.getters['harvester/all'](HCI.VM).filter((vm) => vm.metadata.namespace === this.value.metadata.namespace);\n const vmObjectLists = nsVmList.map((obj) => ({\n label: obj.nameDisplay,\n value: obj.name,\n }));\n\n return sortBy(vmObjectLists, 'label');\n },\n\n namespaces() {\n const allNamespaces = this.$store.getters['allNamespaces'];\n const out = sortBy(\n allNamespaces.map((obj) => {\n return {\n label: obj.nameDisplay,\n value: obj.id,\n };\n }),\n 'label'\n );\n\n return out;\n },\n toBackupTargetSetting() {\n const { cluster } = this.$router?.currentRoute?.params || {};\n\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-id`,\n params: {\n resource: `${ HCI.SETTING }`,\n cluster,\n id: 'backup-target'\n },\n query: { mode: _EDIT }\n };\n },\n scheduleTypeOptions() {\n return [BACKUP_TYPE.BACKUP, BACKUP_TYPE.SNAPSHOT];\n }\n },\n\n watch: {\n 'value.metadata.namespace'() {\n this.value.spec.vmbackup.source.name = '';\n },\n 'value.spec.vmbackup.source.name'(neu) {\n this.value.metadata.name = `svm${ this.value.spec.vmbackup.type }-${ neu }`;\n }\n },\n\n methods: {\n onTypeChange(newType) {\n this.value.metadata.name = `svm${ newType }-${ this.value.spec.vmbackup.source.name }`;\n },\n getBackupTargetValueIsEmpty(resource) {\n let out = true;\n\n if (resource?.value) {\n try {\n const valueJson = JSON.parse(resource?.value);\n\n out = !valueJson.type;\n } catch (e) {}\n }\n\n return out;\n },\n\n validateFailure(count) {\n if (this.value.spec.retain && count > this.value.spec.retain) {\n this.value.spec['maxFailure'] = this.value.spec.retain;\n }\n },\n },\n};\n</script>\n\n<template>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n :validation-passed=\"canSave\"\n @finish=\"save\"\n @error=\"e=>errors = e\"\n >\n <div class=\"banner\">\n <Banner\n v-if=\"isBackupTargetUnAvailable\"\n color=\"error\"\n >\n <MessageLink\n v-if=\"isEmptyValue\"\n :to=\"toBackupTargetSetting\"\n :target=\"_blank\"\n prefix-label=\"harvester.backup.message.noSetting.prefix\"\n middle-label=\"harvester.backup.message.noSetting.middle\"\n suffix-label=\"harvester.schedule.message.noSetting.suffix\"\n />\n <MessageLink\n v-else\n :to=\"toBackupTargetSetting\"\n prefix-label=\"harvester.backup.message.errorTip.prefix\"\n middle-label=\"harvester.backup.message.errorTip.middle\"\n >\n <template #suffix>\n {{ t('harvester.backup.message.errorTip.suffix') }} {{ errorMessage }}\n </template>\n </MessageLink>\n </Banner>\n <div class=\"mb-30\">\n <RadioGroup\n v-model:value=\"value.spec.vmbackup.type\"\n name=\"model\"\n :options=\"scheduleTypeOptions\"\n :labels=\"[t('harvester.schedule.type.backup'), t('harvester.schedule.type.snapshot')]\"\n :disabled=\"isEdit || isView\"\n :mode=\"mode\"\n row\n @input=\"onTypeChange\"\n />\n </div>\n <div class=\"row mb-30\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"value.metadata.namespace\"\n :label=\"t('nameNsDescription.namespace.label')\"\n :options=\"namespaces\"\n required\n :disabled=\"isBackupTargetUnAvailable || isEdit || isView\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"value.spec.vmbackup.source.name\"\n :label=\"t('harvester.schedule.virtualMachine.title')\"\n :placeholder=\"t('harvester.schedule.virtualMachine.placeholder')\"\n :options=\"vmOptions\"\n required\n :disabled=\"isBackupTargetUnAvailable || isEdit || isView\"\n />\n </div>\n </div>\n </div>\n <Tabbed\n v-bind=\"$attrs\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n >\n <Tab\n name=\"basics\"\n :label=\"t('harvester.network.tabs.basics')\"\n :weight=\"99\"\n class=\"bordered-table\"\n >\n <LabeledInput\n v-model:value=\"value.spec.cron\"\n class=\"mb-30\"\n type=\"cron\"\n required\n :mode=\"mode\"\n :label=\"t('harvester.schedule.cron')\"\n placeholder=\"0 * * * *\"\n :disabled=\"isBackupTargetUnAvailable || isView\"\n />\n <LabeledInput\n v-model:value.number=\"value.spec.retain\"\n class=\"mb-30\"\n :min=\"2\"\n :max=\"250\"\n type=\"number\"\n :label=\"t('harvester.schedule.retain.label')\"\n required\n :tooltip=\"t('harvester.schedule.retain.tooltip')\"\n :disabled=\"isBackupTargetUnAvailable || isView\"\n />\n <LabeledInput\n v-model:value.number=\"value.spec.maxFailure\"\n class=\"mb-30\"\n :min=\"2\"\n type=\"number\"\n :label=\"t('harvester.schedule.maxFailure.label')\"\n required\n :tooltip=\"t('harvester.schedule.maxFailure.tooltip')\"\n :disabled=\"isBackupTargetUnAvailable || isView\"\n @input=\"validateFailure\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n","import cronstrue from 'cronstrue';\n\nexport function isCronValid(schedule = '') {\n try {\n const hint = cronstrue.toString(schedule);\n\n return !!hint;\n } catch (e) {\n return false;\n }\n}\n","import { render } from \"./harvesterhci.io.schedulevmbackup.vue?vue&type=template&id=995bf5ea\"\nimport script from \"./harvesterhci.io.schedulevmbackup.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.schedulevmbackup.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { SECRET_TYPES as TYPES } from '@shell/config/secret';\nimport { MANAGEMENT, NAMESPACE, DEFAULT_WORKSPACE } from '@shell/config/types';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport CruResource from '@shell/components/CruResource';\nimport {\n CLOUD_CREDENTIAL, _CLONE, _CREATE, _EDIT, _FLAGGED\n} from '@shell/config/query-params';\nimport Loading from '@shell/components/Loading';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport Labels from '@shell/components/form/Labels';\nimport { HIDE_SENSITIVE, LAST_NAMESPACE } from '@shell/store/prefs';\nimport { CAPI } from '@shell/config/labels-annotations';\nimport { clear } from '@shell/utils/array';\nimport { importCloudCredential } from '@shell/utils/dynamic-importer';\nimport SelectIconGrid from '@shell/components/SelectIconGrid';\nimport { ucFirst } from '@shell/utils/string';\n\nexport default {\n name: 'CruSecret',\n\n emits: ['update:value'],\n\n components: {\n LabeledInput,\n LabeledSelect,\n Loading,\n NameNsDescription,\n CruResource,\n Tabbed,\n Tab,\n Labels,\n SelectIconGrid\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n async fetch() {\n if ( this.isCloud ) {\n this.nodeDrivers = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.NODE_DRIVER });\n }\n },\n\n data() {\n const newCloudCred = this.$route.query[CLOUD_CREDENTIAL] === _FLAGGED;\n const editCloudCred = this.mode === _EDIT && this.value._type === TYPES.CLOUD_CREDENTIAL;\n const cloneCloudCred = this.realMode === _CLONE && this.liveValue._type === TYPES.CLOUD_CREDENTIAL;\n const isCloud = newCloudCred || editCloudCred || cloneCloudCred;\n\n if ( newCloudCred ) {\n this.value.metadata.namespace = DEFAULT_WORKSPACE;\n\n this.value.metadata['name'] = '';\n\n this.value['data'] = {};\n }\n\n const secretTypes = [\n {\n label: 'Custom',\n value: 'custom'\n },\n {\n label: 'divider',\n disabled: true,\n kind: 'divider'\n }\n ];\n\n Object.values(TYPES).forEach((t) => {\n secretTypes.push({\n label: t,\n value: t\n });\n });\n\n if ( this.mode === _CREATE ) {\n this.value['_type'] = TYPES.OPAQUE;\n }\n\n return {\n isCloud,\n nodeDrivers: null,\n secretTypes,\n secretType: this.value._type,\n initialSecretType: this.value._type\n };\n },\n\n computed: {\n typeKey() {\n if ( this.isCloud ) {\n return 'cloud';\n }\n\n switch ( this.value._type ) {\n case TYPES.TLS: return 'tls';\n case TYPES.BASIC: return 'basic';\n case TYPES.DOCKER_JSON: return 'registry';\n case TYPES.SSH: return 'ssh';\n }\n\n return 'generic';\n },\n\n dataComponent() {\n return require(`@shell/edit/secret/${ this.typeKey }`).default;\n },\n\n driverName() {\n const driver = this.value.metadata?.annotations?.[CAPI.CREDENTIAL_DRIVER];\n\n return driver;\n },\n\n cloudComponent() {\n const driver = this.driverName;\n const haveProviders = this.$store.getters['plugins/credentialDrivers'];\n\n if ( haveProviders.includes(driver) ) {\n return importCloudCredential(driver);\n }\n\n return importCloudCredential('generic');\n },\n\n namespaces() {\n return this.$store.getters['cluster/all'](NAMESPACE).map((obj) => {\n return {\n label: obj.nameDisplay,\n value: obj.id,\n };\n });\n },\n\n hideSensitiveData() {\n return this.$store.getters['prefs/get'](HIDE_SENSITIVE);\n },\n\n dataLabel() {\n switch (this.value._type) {\n case TYPES.TLS:\n return this.t('secret.certificate.certificate');\n case TYPES.SSH:\n return this.t('secret.ssh.keys');\n case TYPES.BASIC:\n return this.t('secret.authentication');\n default:\n return this.t('secret.data');\n }\n },\n },\n\n created() {\n this.registerAfterHook(() => {\n const allNamespaces = this.$store.getters['allNamespaces'];\n const defaultNamepsace = allNamespaces.find((N) => N.id === 'default');\n const ns = defaultNamepsace?.id || allNamespaces?.[0]?.id || '';\n\n this.value.$dispatch('prefs/set', { key: LAST_NAMESPACE, value: ns }, { root: true });\n });\n },\n\n methods: {\n async saveSecret(btnCb) {\n if ( this.errors ) {\n clear(this.errors);\n }\n\n if ( typeof this.$refs.cloudComponent?.test === 'function' ) {\n try {\n const res = await this.$refs.cloudComponent.test();\n\n if ( !res || res?.errors) {\n if (res?.errors) {\n this.errors = res.errors;\n } else {\n this.errors = ['Authentication test failed, please check your credentials'];\n }\n btnCb(false);\n\n return;\n }\n } catch (e) {\n this.errors = [e];\n btnCb(false);\n\n return;\n }\n }\n\n return this.save(btnCb);\n },\n\n typeDisplay(type, driver) {\n if ( type === CAPI.CREDENTIAL_DRIVER ) {\n return this.$store.getters['i18n/withFallback'](`cluster.provider.\"${ driver }\"`, null, driver);\n } else {\n const fallback = type.replace(/^kubernetes.io\\//, '');\n\n return this.$store.getters['i18n/withFallback'](`secret.types.\"${ type }\"`, null, fallback);\n }\n },\n\n initialDisplayFor(type) {\n const fallback = (ucFirst(this.typeDisplay(type) || '').replace(/[^A-Z]/g, '') || type).substr(0, 3);\n\n return this.$store.getters['i18n/withFallback'](`secret.initials.\"${ type }\"`, null, fallback);\n },\n\n selectCustomType(type) {\n if (type !== 'custom') {\n this.value['_type'] = type;\n }\n }\n },\n};\n</script>\n\n<template>\n <form class=\"filled-height\">\n <Loading v-if=\"$fetchState.pending\" />\n <CruResource\n v-else\n :mode=\"mode\"\n :validation-passed=\"true\"\n :selected-subtype=\"value._type\"\n :resource=\"value\"\n :errors=\"errors\"\n @finish=\"saveSecret\"\n @error=\"e=>errors = e\"\n >\n <NameNsDescription\n :value=\"value\"\n :mode=\"mode\"\n :namespaced=\"!isCloud\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <div class=\"spacer\" />\n <component\n :is=\"cloudComponent\"\n v-if=\"isCloud\"\n ref=\"cloudComponent\"\n :driver-name=\"driverName\"\n :value=\"value\"\n :mode=\"mode\"\n :hide-sensitive-data=\"hideSensitiveData\"\n />\n <Tabbed\n v-else\n :side-tabs=\"true\"\n default-tab=\"data\"\n >\n <Tab\n name=\"data\"\n :label=\"dataLabel\"\n :weight=\"99\"\n >\n <component\n :is=\"dataComponent\"\n :value=\"value\"\n :mode=\"mode\"\n :hide-sensitive-data=\"hideSensitiveData\"\n />\n </Tab>\n <Tab\n name=\"labels\"\n label-key=\"generic.labelsAndAnnotations\"\n :weight=\"-1\"\n >\n <Labels\n v-model:value=\"value\"\n :mode=\"mode\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n </form>\n</template>\n","import { render } from \"./harvesterhci.io.secret.vue?vue&type=template&id=2c6ae6fe\"\nimport script from \"./harvesterhci.io.secret.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.secret.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CruResource from '@shell/components/CruResource';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { TextAreaAutoGrow } from '@components/Form/TextArea';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nimport { HCI_ALLOWED_SETTINGS, HCI_SINGLE_CLUSTER_ALLOWED_SETTING, HCI_SETTING } from '../config/settings';\n\nexport default {\n components: {\n CruResource,\n LabeledInput,\n LabeledSelect,\n RadioGroup,\n TextAreaAutoGrow\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n data() {\n const t = this.$store.getters['i18n/t'];\n const setting =\n HCI_ALLOWED_SETTINGS[this.value.id] ||\n HCI_SINGLE_CLUSTER_ALLOWED_SETTING[this.value.id];\n\n let enumOptions = [];\n\n if (setting.kind === 'enum') {\n enumOptions = setting.options.map((id) => ({\n label: `advancedSettings.enum.harv-${ this.value.id }.${ id }`,\n value: id\n }));\n }\n\n const canReset =\n setting.canReset || !!this.value.default || this.value.canReset;\n\n if (this.value.value === undefined) {\n this.value['value'] = null;\n }\n\n this.value.value = this.value.value || this.value.default || '';\n const oldValue = this.value.value;\n\n const isHarvester = this.value?.type?.includes('harvesterhci');\n\n // Get all the custom volume types from the file names of this folder\n const customSettingComponents = require\n .context('../components/settings', false, /^.*\\.vue$/)\n .keys()\n .map((path) => path.replace(/(\\.\\/)|(.vue)/g, ''));\n\n return {\n setting,\n description: isHarvester ? t(`advancedSettings.descriptions.harv-${ this.value.id }`) : t(`advancedSettings.descriptions.${ this.value.id }`),\n editHelp: t(`advancedSettings.editHelp.${ this.value.id }`),\n enumOptions,\n canReset,\n errors: [],\n hasCustomComponent: false,\n customComponent: null,\n customSettingComponents,\n oldValue\n };\n },\n\n computed: {\n doneLocationOverride() {\n return this.value.doneOverride;\n }\n },\n\n created() {\n let customComponent = false;\n const hasCustomComponent = this.customSettingComponents.includes(this.value.id);\n\n if ( hasCustomComponent ) {\n try {\n customComponent = require(`../components/settings/${ this.value.id }.vue`).default;\n } catch {}\n } else {\n // Some resources like vlan and network go out to a non-standard location (edit/<resource>/<id>.vue). For example\n // 'edit/harvesterhci.io.managedchart/rancher-monitoring.vue'\n const resource = this.$route.params.resource;\n const name = this.value.metadata.name;\n\n try {\n customComponent = require(`./${ resource }/${ name }.vue`).default;\n } catch {}\n }\n\n this.hasCustomComponent = !!customComponent;\n this.customComponent = customComponent;\n\n this.registerAfterHook(() => {\n if (this.value.id === HCI_SETTING.RANCHER_MANAGER_SUPPORT) {\n this.$store.commit('isRancherInHarvester', this.value.value === 'true');\n }\n });\n },\n\n methods: {\n done() {\n this.$router.go(-1);\n },\n\n async saveSettings(done) {\n const t = this.$store.getters['i18n/t'];\n\n // Validate the JSON if the setting is a json value\n if (this.setting.kind === 'json' && this.value.default) {\n try {\n JSON.parse(this.value.value);\n this.errors = [];\n } catch (e) {\n this.errors = [t('advancedSettings.edit.invalidJSON')];\n\n return done(false);\n }\n }\n\n if (this.value.metadata.name === HCI_SETTING.CLUSTER_REGISTRATION_URL && this.oldValue && this.value.value !== this.oldValue) {\n await this.clusterRegistrationUrlTip();\n }\n\n this.save(done);\n },\n\n clusterRegistrationUrlTip() {\n return new Promise((resolve) => {\n this.$store.dispatch('harvester/promptModal', {\n component: 'MessageBox',\n callback: (action) => {\n if (action === 'ok') {\n resolve();\n }\n },\n contentKey: 'harvester.setting.clusterRegistrationUrl.message'\n }, { root: true });\n });\n },\n\n useDefault(ev) {\n // Lose the focus on the button after click\n if (ev && ev.srcElement) {\n ev.srcElement.blur();\n }\n\n if (this.value.id === HCI_SETTING.VLAN) {\n this.value.enable = false;\n if (this.value.config) {\n this.value.config.defaultPhysicalNIC = '';\n }\n } else {\n this.value.value = this.value.default || '';\n }\n\n if (typeof this.$refs.settingComp?.useDefault === 'function') {\n this.$refs.settingComp.useDefault();\n }\n }\n }\n};\n</script>\n\n<template>\n <CruResource\n class=\"route\"\n :errors=\"errors\"\n :mode=\"mode\"\n :resource=\"value\"\n :subtypes=\"[]\"\n :can-yaml=\"false\"\n :cancel-event=\"true\"\n @error=\"e => (errors = e)\"\n @finish=\"saveSettings\"\n @cancel=\"done\"\n >\n <h4 v-clean-html=\"description\"></h4>\n\n <h5\n v-if=\"editHelp\"\n v-clean-html=\"editHelp\"\n class=\"edit-help\"\n />\n\n <div class=\"edit-change mt-20\">\n <h5 v-t=\"'advancedSettings.edit.changeSetting'\" />\n <button\n :disabled=\"!canReset\"\n type=\"button\"\n class=\"btn role-primary\"\n @click=\"useDefault\"\n >\n {{ t('advancedSettings.edit.useDefault') }}\n </button>\n </div>\n\n <div class=\"mt-20\">\n <div v-if=\"setting.from === 'import'\">\n <component\n :is=\"customComponent\"\n v-if=\"hasCustomComponent\"\n ref=\"settingComp\"\n v-model:value=\"value\"\n :register-before-hook=\"registerBeforeHook\"\n :mode=\"mode\"\n />\n </div>\n <div v-else-if=\"setting.kind === 'enum'\">\n <LabeledSelect\n v-model:value=\"value.value\"\n :label=\"t('advancedSettings.edit.value')\"\n :localized-label=\"true\"\n :mode=\"mode\"\n :options=\"enumOptions\"\n />\n </div>\n <div v-else-if=\"setting.kind === 'boolean'\">\n <RadioGroup\n v-model:value=\"value.value\"\n name=\"settings_value\"\n :labels=\"[\n t('advancedSettings.edit.trueOption'),\n t('advancedSettings.edit.falseOption')\n ]\"\n :options=\"['true', 'false']\"\n />\n </div>\n <div v-else-if=\"setting.kind === 'multiline' || setting.kind === 'json'\">\n <TextAreaAutoGrow\n v-model:value=\"value.value\"\n :min-height=\"254\"\n />\n </div>\n <div v-else>\n <LabeledInput\n v-model:value=\"value.value\"\n :label=\"t('advancedSettings.edit.value')\"\n />\n </div>\n </div>\n </CruResource>\n</template>\n\n<style lang=\"scss\" scoped>\n.edit-change {\n align-items: center;\n display: flex;\n\n > h5 {\n flex: 1;\n }\n}\n\n:deep() .edit-help code {\n padding: 1px 5px;\n}\n</style>\n","import { render } from \"./harvesterhci.io.setting.vue?vue&type=template&id=01b4cf42&scoped=true\"\nimport script from \"./harvesterhci.io.setting.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.setting.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.setting.vue?vue&type=style&index=0&id=01b4cf42&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-01b4cf42\"]])\n\nexport default __exports__","<script>\r\nimport CreateEditView from '@shell/mixins/create-edit-view';\r\nimport CruResource from '@shell/components/CruResource';\r\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\r\nimport ArrayList from '@shell/components/form/ArrayList';\r\nimport Tab from '@shell/components/Tabbed/Tab';\r\nimport Tabbed from '@shell/components/Tabbed';\r\nimport { RadioGroup } from '@components/Form/Radio';\r\n\r\nimport LabeledInput from '@components/Form/LabeledInput/LabeledInput.vue';\r\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\r\nimport Loading from '@shell/components/Loading';\r\n\r\nimport { _CREATE, _VIEW } from '@shell/config/query-params';\r\nimport { mapFeature, UNSUPPORTED_STORAGE_DRIVERS } from '@shell/store/features';\r\nimport {\r\n STORAGE_CLASS, LONGHORN, LONGHORN_DRIVER, SECRET, NAMESPACE\r\n} from '@shell/config/types';\r\nimport { allHash } from '@shell/utils/promise';\r\nimport { clone } from '@shell/utils/object';\r\nimport { CSI_DRIVER } from '../../types';\r\nimport Tags from '../../components/DiskTags';\r\nimport { DATA_ENGINE_V1, DATA_ENGINE_V2 } from '../../models/harvester/persistentvolumeclaim';\r\nimport { LVM_DRIVER } from '../../models/harvester/storage.k8s.io.storageclass';\r\n\r\nexport const LVM_TOPOLOGY_LABEL = 'topology.lvm.csi/node';\r\n\r\nconst LONGHORN_V2_DATA_ENGINE = 'longhorn-system/v2-data-engine';\r\nconst VOLUME_BINDING_MODE_IMMEDIATE = 'Immediate';\r\nconst VOLUME_BINDING_MODE_WAIT = 'WaitForFirstConsumer';\r\n\r\nexport default {\r\n name: 'HarvesterStorage',\r\n\r\n emits: ['update:value'],\r\n\r\n components: {\r\n ArrayList,\r\n CruResource,\r\n LabeledSelect,\r\n LabeledInput,\r\n NameNsDescription,\r\n RadioGroup,\r\n Tab,\r\n Tabbed,\r\n Loading,\r\n Tags,\r\n },\r\n\r\n mixins: [CreateEditView],\r\n\r\n inheritAttrs: false,\r\n\r\n data() {\r\n const reclaimPolicyOptions = [{\r\n label: this.t('storageClass.customize.reclaimPolicy.delete'),\r\n value: 'Delete'\r\n }, {\r\n label: this.t('storageClass.customize.reclaimPolicy.retain'),\r\n value: 'Retain'\r\n }];\r\n\r\n const allowVolumeExpansionOptions = [\r\n {\r\n label: this.t('generic.enabled'),\r\n value: true\r\n },\r\n {\r\n label: this.t('generic.disabled'),\r\n value: false\r\n }\r\n ];\r\n\r\n const volumeBindingModeOptions = [\r\n {\r\n label: this.t('storageClass.customize.volumeBindingMode.now'),\r\n value: VOLUME_BINDING_MODE_IMMEDIATE\r\n },\r\n {\r\n label: this.t('harvester.storage.customize.volumeBindingMode.later'),\r\n value: VOLUME_BINDING_MODE_WAIT\r\n }\r\n ];\r\n\r\n const allowedTopologies = clone(this.value.allowedTopologies?.[0]?.matchLabelExpressions || []).filter((t) => t.key !== LVM_TOPOLOGY_LABEL);\r\n\r\n this.value['parameters'] = this.value.parameters || {};\r\n this.value['provisioner'] = this.value.provisioner || LONGHORN_DRIVER;\r\n this.value['allowVolumeExpansion'] = this.value.allowVolumeExpansion || allowVolumeExpansionOptions[0].value;\r\n this.value['reclaimPolicy'] = this.value.reclaimPolicy || reclaimPolicyOptions[0].value;\r\n\r\n if (this.value.provisioner === LONGHORN_DRIVER) {\r\n this.value['parameters']['dataEngine'] = this.value.longhornVersion;\r\n this.value['volumeBindingMode'] = this.value.volumeBindingMode || VOLUME_BINDING_MODE_IMMEDIATE;\r\n }\r\n\r\n if (this.value.provisioner === LVM_DRIVER) {\r\n this.value['volumeBindingMode'] = this.value.volumeBindingMode || VOLUME_BINDING_MODE_WAIT;\r\n }\r\n\r\n let provisioner = `${ this.value.provisioner || LONGHORN_DRIVER }`;\r\n\r\n if (provisioner === LONGHORN_DRIVER) {\r\n provisioner = `${ provisioner }_${ this.value.longhornVersion }`;\r\n }\r\n\r\n return {\r\n LVM_DRIVER,\r\n reclaimPolicyOptions,\r\n allowVolumeExpansionOptions,\r\n volumeBindingModeOptions,\r\n mountOptions: [],\r\n STORAGE_CLASS,\r\n provisioner,\r\n allowedTopologies,\r\n defaultAddValue: {\r\n key: '',\r\n values: [],\r\n },\r\n };\r\n },\r\n\r\n async fetch() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n\r\n const hash = {\r\n namespaces: this.$store.dispatch(`${ inStore }/findAll`, { type: NAMESPACE }),\r\n storages: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }),\r\n longhornNodes: this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.NODES }),\r\n csiDrivers: this.$store.dispatch(`${ inStore }/findAll`, { type: CSI_DRIVER })\r\n };\r\n\r\n if (this.value.longhornV2LVMSupport) {\r\n hash.longhornV2DataEngine = this.$store.dispatch(`${ inStore }/find`, { type: LONGHORN.SETTINGS, id: LONGHORN_V2_DATA_ENGINE });\r\n }\r\n\r\n if (this.value.volumeEncryptionFeatureEnabled) {\r\n hash.secrets = this.$store.dispatch(`${ inStore }/findAll`, { type: SECRET });\r\n }\r\n\r\n await allHash(hash);\r\n },\r\n\r\n computed: {\r\n showUnsupportedStorage: mapFeature(UNSUPPORTED_STORAGE_DRIVERS),\r\n\r\n inStore() {\r\n return this.$store.getters['currentProduct'].inStore;\r\n },\r\n\r\n modeOverride() {\r\n return this.isCreate ? _CREATE : _VIEW;\r\n },\r\n\r\n provisioners() {\r\n const out = [];\r\n\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n const csiDrivers = this.$store.getters[`${ inStore }/all`](CSI_DRIVER) || [];\r\n\r\n csiDrivers.forEach(({ name }) => {\r\n switch (name) {\r\n case LONGHORN_DRIVER:\r\n out.push({\r\n label: `harvester.storage.storageClass.longhorn.${ DATA_ENGINE_V1 }.label`,\r\n value: `${ name }_${ DATA_ENGINE_V1 }`,\r\n });\r\n\r\n if (this.longhornSystemVersion === DATA_ENGINE_V2 || this.value.longhornVersion === DATA_ENGINE_V2) {\r\n out.push({\r\n label: `harvester.storage.storageClass.longhorn.${ DATA_ENGINE_V2 }.label`,\r\n value: `${ name }_${ DATA_ENGINE_V2 }`,\r\n });\r\n }\r\n break;\r\n case LVM_DRIVER:\r\n out.push({\r\n label: 'harvester.storage.storageClass.lvm.label',\r\n value: name,\r\n });\r\n break;\r\n }\r\n });\r\n\r\n return out;\r\n },\r\n\r\n schema() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n\r\n return this.$store.getters[`${ inStore }/schemaFor`](STORAGE_CLASS);\r\n },\r\n\r\n longhornSystemVersion() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n const v2DataEngine = this.$store.getters[`${ inStore }/byId`](LONGHORN.SETTINGS, LONGHORN_V2_DATA_ENGINE) || {};\r\n\r\n return v2DataEngine.value === 'true' ? DATA_ENGINE_V2 : DATA_ENGINE_V1;\r\n },\r\n },\r\n\r\n watch: {\r\n provisioner(neu) {\r\n const [provisioner, dataEngine] = neu?.split('_');\r\n\r\n let parameters = {};\r\n\r\n if (provisioner === LVM_DRIVER) {\r\n const matchLabelExpressions = (this.value.allowedTopologies?.[0]?.matchLabelExpressions || []).filter((t) => t.key !== LVM_TOPOLOGY_LABEL);\r\n\r\n if (matchLabelExpressions.length > 0) {\r\n this.value['allowedTopologies'] = [{ matchLabelExpressions }];\r\n } else {\r\n delete this.value.allowedTopologies;\r\n }\r\n\r\n this.value['volumeBindingMode'] = VOLUME_BINDING_MODE_WAIT;\r\n }\r\n\r\n if (provisioner === LONGHORN_DRIVER) {\r\n parameters = { dataEngine };\r\n this.value['volumeBindingMode'] = VOLUME_BINDING_MODE_IMMEDIATE;\r\n }\r\n\r\n this.value['provisioner'] = provisioner;\r\n this.value['allowVolumeExpansion'] = this.value.provisioner === LONGHORN_DRIVER;\r\n this.value['parameters'] = parameters;\r\n }\r\n },\r\n\r\n created() {\r\n this.registerBeforeHook(this.willSave, 'willSave');\r\n },\r\n\r\n methods: {\r\n getComponent(name) {\r\n try {\r\n return require(`./provisioners/${ name }`).default;\r\n } catch {\r\n return require(`./provisioners/custom`).default;\r\n }\r\n },\r\n\r\n willSave() {\r\n Object.keys(this.value.parameters).forEach((key) => {\r\n if (this.value.parameters[key] === null || this.value.parameters[key] === '') {\r\n delete this.value.parameters[key];\r\n }\r\n });\r\n\r\n this.formatAllowedTopoloties();\r\n },\r\n\r\n formatAllowedTopoloties() {\r\n const neu = this.allowedTopologies.filter((t) => t.key !== LVM_TOPOLOGY_LABEL);\r\n const lvmMatchExpression = (this.value.allowedTopologies?.[0]?.matchLabelExpressions || []).filter((t) => t.key === LVM_TOPOLOGY_LABEL);\r\n\r\n if (!neu || neu.length === 0) {\r\n if (lvmMatchExpression.length > 0) {\r\n this.value.allowedTopologies = [{ matchLabelExpressions: lvmMatchExpression }];\r\n } else {\r\n delete this.value.allowedTopologies;\r\n }\r\n\r\n return;\r\n }\r\n\r\n const matchLabelExpressions = neu.filter((R) => !!R.key.trim() && (R.values.length > 0 && !R.values.find((V) => !V.trim())));\r\n\r\n if (matchLabelExpressions.length > 0) {\r\n this.value.allowedTopologies = [{ matchLabelExpressions: [...matchLabelExpressions, ...lvmMatchExpression] }];\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <Loading v-if=\"$fetchState.pending\" />\r\n <CruResource\r\n v-else\r\n :done-route=\"doneRoute\"\r\n :mode=\"mode\"\r\n :resource=\"value\"\r\n :subtypes=\"[]\"\r\n :validation-passed=\"true\"\r\n :apply-hooks=\"applyHooks\"\r\n :errors=\"errors\"\r\n @error=\"e=>errors = e\"\r\n @finish=\"save\"\r\n @cancel=\"done\"\r\n >\r\n <NameNsDescription\r\n :namespaced=\"false\"\r\n :value=\"value\"\r\n :mode=\"mode\"\r\n :register-before-hook=\"registerBeforeHook\"\r\n @update:value=\"$emit('update:value', $event)\"\r\n />\r\n <LabeledSelect\r\n v-model:value=\"provisioner\"\r\n label=\"Provisioner\"\r\n :options=\"provisioners\"\r\n :localized-label=\"true\"\r\n :mode=\"modeOverride\"\r\n :searchable=\"true\"\r\n :taggable=\"true\"\r\n class=\"mb-20\"\r\n />\r\n <Tabbed :side-tabs=\"true\">\r\n <Tab\r\n name=\"parameters\"\r\n :label=\"t('storageClass.parameters.label')\"\r\n :weight=\"2\"\r\n >\r\n <component\r\n :is=\"getComponent(provisioner)\"\r\n :key=\"provisioner\"\r\n :value=\"value\"\r\n :mode=\"modeOverride\"\r\n :real-mode=\"realMode\"\r\n />\r\n </Tab>\r\n <Tab\r\n name=\"customize\"\r\n :label=\"t('storageClass.customize.label')\"\r\n >\r\n <div class=\"row mt-20\">\r\n <div class=\"col span-6\">\r\n <RadioGroup\r\n v-model:value=\"value.reclaimPolicy\"\r\n name=\"reclaimPolicy\"\r\n :label=\"t('storageClass.customize.reclaimPolicy.label')\"\r\n :mode=\"modeOverride\"\r\n :options=\"reclaimPolicyOptions\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <RadioGroup\r\n v-model:value=\"value.allowVolumeExpansion\"\r\n name=\"allowVolumeExpansion\"\r\n :label=\"t('storageClass.customize.allowVolumeExpansion.label')\"\r\n :mode=\"modeOverride\"\r\n :options=\"allowVolumeExpansionOptions\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"row mt-20\">\r\n <div class=\"col span-6\">\r\n <RadioGroup\r\n v-model:value=\"value.volumeBindingMode\"\r\n name=\"volumeBindingMode\"\r\n :label=\"t('storageClass.customize.volumeBindingMode.label')\"\r\n :mode=\"modeOverride\"\r\n :options=\"volumeBindingModeOptions\"\r\n :disabled=\"provisioner === LVM_DRIVER\"\r\n />\r\n </div>\r\n </div>\r\n </Tab>\r\n <Tab\r\n name=\"allowedTopologies\"\r\n :label=\"t('harvester.storage.allowedTopologies.title')\"\r\n :weight=\"-1\"\r\n :tooltip=\"t('harvester.storage.allowedTopologies.tooltip')\"\r\n >\r\n <ArrayList\r\n v-model:value=\"allowedTopologies\"\r\n :default-add-value=\"defaultAddValue\"\r\n :initial-empty-row=\"true\"\r\n :show-header=\"true\"\r\n :mode=\"modeOverride\"\r\n >\r\n <template #column-headers>\r\n <div class=\"box\">\r\n <div class=\"row\">\r\n <div class=\"col span-4 key\">\r\n {{ t('generic.key') }}\r\n <span class=\"required\">*</span>\r\n </div>\r\n <div class=\"col span-8 value\">\r\n {{ t('generic.value') }}\r\n </div>\r\n </div>\r\n </div>\r\n </template>\r\n <template #columns=\"scope\">\r\n <div class=\"row custom-headers\">\r\n <div class=\"col span-4 key\">\r\n <LabeledInput\r\n v-model:value=\"scope.row.value.key\"\r\n :required=\"true\"\r\n :mode=\"modeOverride\"\r\n />\r\n </div>\r\n <div class=\"col span-8 value\">\r\n <Tags\r\n v-model:value=\"scope.row.value.values\"\r\n :add-label=\"t('generic.add')\"\r\n :mode=\"modeOverride\"\r\n />\r\n </div>\r\n </div>\r\n </template>\r\n </ArrayList>\r\n </Tab>\r\n </Tabbed>\r\n </CruResource>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n .custom-headers {\r\n align-items: center;\r\n }\r\n</style>\r\n","import { render } from \"./index.vue?vue&type=template&id=4918df50&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=4918df50&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4918df50\"]])\n\nexport default __exports__","<script>\r\nimport KeyValue from '@shell/components/form/KeyValue';\r\n\r\nexport default {\r\n components: { KeyValue },\r\n props: {\r\n value: {\r\n type: Object,\r\n required: true\r\n },\r\n mode: {\r\n type: String,\r\n required: true\r\n }\r\n }\r\n};\r\n</script>\r\n<template>\r\n <KeyValue\n v-model:value=\"value.parameters\"\n :add-label=\"t('storageClass.custom.addLabel')\"\n :read-allowed=\"false\"\n :mode=\"mode\"\n />\r\n</template>\r\n","import { render } from \"./custom.vue?vue&type=template&id=28c88542\"\nimport script from \"./custom.vue?vue&type=script&lang=js\"\nexport * from \"./custom.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport KeyValue from '@shell/components/form/KeyValue';\r\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport RadioGroup from '@components/Form/Radio/RadioGroup';\r\nimport { SECRET, LONGHORN } from '@shell/config/types';\r\nimport { _CREATE, _VIEW } from '@shell/config/query-params';\r\nimport { CSI_SECRETS } from '@pkg/harvester/config/harvester-map';\r\nimport { clone } from '@shell/utils/object';\r\nimport { uniq } from '@shell/utils/array';\r\nimport { DATA_ENGINE_V1 } from '../../../models/harvester/persistentvolumeclaim';\r\n\r\nconst {\r\n CSI_PROVISIONER_SECRET_NAME,\r\n CSI_PROVISIONER_SECRET_NAMESPACE,\r\n CSI_NODE_PUBLISH_SECRET_NAME,\r\n CSI_NODE_PUBLISH_SECRET_NAMESPACE,\r\n CSI_NODE_STAGE_SECRET_NAME,\r\n CSI_NODE_STAGE_SECRET_NAMESPACE\r\n} = CSI_SECRETS;\r\n\r\nexport default {\r\n name: 'DriverLonghornIOV1',\r\n\r\n components: {\r\n KeyValue,\r\n LabeledSelect,\r\n LabeledInput,\r\n RadioGroup,\r\n },\r\n\r\n props: {\r\n value: {\r\n type: Object,\r\n required: true\r\n },\r\n mode: {\r\n type: String,\r\n required: true\r\n },\r\n realMode: {\r\n type: String,\r\n required: true\r\n },\r\n },\r\n\r\n data() {\r\n if (this.realMode === _CREATE) {\r\n this.value['parameters'] = {\r\n numberOfReplicas: '3',\r\n staleReplicaTimeout: '30',\r\n diskSelector: null,\r\n nodeSelector: null,\r\n encrypted: 'false',\r\n migratable: 'true',\r\n dataEngine: DATA_ENGINE_V1\r\n };\r\n }\r\n\r\n return { };\r\n },\r\n\r\n computed: {\r\n secrets() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n\r\n const allSecrets = this.$store.getters[`${ inStore }/all`](SECRET);\r\n\r\n // only show non-system secret to user to select\r\n return allSecrets.filter((secret) => secret.isSystem === false);\r\n },\r\n\r\n longhornNodes() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n\r\n return this.$store.getters[`${ inStore }/all`](LONGHORN.NODES);\r\n },\r\n\r\n nodeTags() {\r\n return (this.longhornNodes || []).reduce((sum, node) => {\r\n const tags = node.spec?.tags || [];\r\n\r\n return uniq([...sum, ...tags]);\r\n }, []);\r\n },\r\n\r\n diskTags() {\r\n return (this.longhornNodes || []).reduce((sum, node) => {\r\n const disks = node.spec?.disks;\r\n\r\n const tagsOfNode = Object.keys(disks).reduce((sum, key) => {\r\n const tags = disks[key]?.tags || [];\r\n\r\n return uniq([...sum, ...tags]);\r\n }, []);\r\n\r\n return uniq([...sum, ...tagsOfNode]);\r\n }, []);\r\n },\r\n\r\n isView() {\r\n return this.mode === _VIEW;\r\n },\r\n\r\n migratableOptions() {\r\n return [{\r\n label: this.t('generic.yes'),\r\n value: 'true'\r\n }, {\r\n label: this.t('generic.no'),\r\n value: 'false'\r\n }];\r\n },\r\n\r\n secretOptions() {\r\n return this.secrets.map((secret) => secret.id);\r\n },\r\n\r\n volumeEncryptionOptions() {\r\n return [{\r\n label: this.t('generic.yes'),\r\n value: 'true'\r\n }, {\r\n label: this.t('generic.no'),\r\n value: 'false'\r\n }];\r\n },\r\n\r\n parameters: {\r\n get() {\r\n const parameters = clone(this.value?.parameters) || {};\r\n\r\n // UI components for Longhorn storage class parameters\r\n const defaultParameters = [\r\n 'numberOfReplicas',\r\n 'staleReplicaTimeout',\r\n 'diskSelector',\r\n 'nodeSelector',\r\n 'migratable',\r\n ...(this.value.volumeEncryptionFeatureEnabled ? ['encrypted', 'dataEngine'] : []),\r\n ];\r\n\r\n [...defaultParameters, ...Object.values(CSI_SECRETS)].forEach((key) => {\r\n delete parameters[key];\r\n });\r\n\r\n return parameters;\r\n },\r\n\r\n set(value) {\r\n Object.assign(this.value.parameters, value);\r\n }\r\n },\r\n\r\n volumeEncryption: {\r\n set(neu) {\r\n this.value['parameters'] = {\r\n ...this.value.parameters,\r\n encrypted: neu\r\n };\r\n },\r\n\r\n get() {\r\n return this.value?.parameters?.encrypted || 'false';\r\n }\r\n },\r\n\r\n secret: {\r\n get() {\r\n const selectedNs = this.value.parameters[CSI_PROVISIONER_SECRET_NAMESPACE];\r\n const selectedName = this.value.parameters[CSI_PROVISIONER_SECRET_NAME];\r\n\r\n if (selectedNs && selectedName) {\r\n return `${ selectedNs }/${ selectedName }`;\r\n }\r\n\r\n return '';\r\n },\r\n\r\n set(selectedSecret) {\r\n const [namespace, name] = selectedSecret.split('/');\r\n\r\n this.value['parameters'] = {\r\n ...this.value.parameters,\r\n [CSI_PROVISIONER_SECRET_NAME]: name,\r\n [CSI_NODE_PUBLISH_SECRET_NAME]: name,\r\n [CSI_NODE_STAGE_SECRET_NAME]: name,\r\n [CSI_PROVISIONER_SECRET_NAMESPACE]: namespace,\r\n [CSI_NODE_PUBLISH_SECRET_NAMESPACE]: namespace,\r\n [CSI_NODE_STAGE_SECRET_NAMESPACE]: namespace\r\n };\r\n }\r\n },\r\n\r\n nodeSelector: {\r\n get() {\r\n const nodeSelector = this.value?.parameters?.nodeSelector;\r\n\r\n if ((nodeSelector || '').includes(',')) {\r\n return nodeSelector.split(',');\r\n } else if (nodeSelector) {\r\n return [nodeSelector];\r\n } else {\r\n return [];\r\n }\r\n },\r\n\r\n set(value) {\r\n this.value.parameters.nodeSelector = (value || []).join(',');\r\n }\r\n },\r\n\r\n diskSelector: {\r\n get() {\r\n const diskSelector = this.value?.parameters?.diskSelector;\r\n\r\n if ((diskSelector || '').includes(',')) {\r\n return diskSelector.split(',');\r\n } else if (diskSelector) {\r\n return [diskSelector];\r\n } else {\r\n return [];\r\n }\r\n },\r\n\r\n set(value) {\r\n this.value.parameters.diskSelector = (value || []).join(',');\r\n }\r\n },\r\n\r\n numberOfReplicas: {\r\n get() {\r\n return this.value?.parameters?.numberOfReplicas;\r\n },\r\n\r\n set(value) {\r\n if (value >= 1 && value <= 3) {\r\n this.value.parameters.numberOfReplicas = String(value);\r\n }\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\r\n v-model:value=\"numberOfReplicas\"\r\n :label=\"t('harvester.storage.parameters.numberOfReplicas.label')\"\r\n :required=\"true\"\r\n :mode=\"mode\"\r\n min=\"1\"\r\n max=\"3\"\r\n type=\"number\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\r\n v-model:value=\"value.parameters.staleReplicaTimeout\"\r\n :label=\"t('harvester.storage.parameters.staleReplicaTimeout.label')\"\r\n :required=\"true\"\r\n :mode=\"mode\"\r\n type=\"number\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"row mt-10\">\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"nodeSelector\"\r\n :label=\"t('harvester.storage.parameters.nodeSelector.label')\"\r\n :options=\"nodeTags\"\r\n :taggable=\"true\"\r\n :multiple=\"true\"\r\n :mode=\"mode\"\r\n >\r\n <template #no-options=\"{ searching }\">\r\n <span\r\n v-if=\"!searching\"\r\n class=\"text-muted\"\r\n >\r\n {{ t('harvester.storage.parameters.nodeSelector.no-options', null, true) }}\r\n </span>\r\n </template>\r\n </LabeledSelect>\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"diskSelector\"\r\n :label=\"t('harvester.storage.parameters.diskSelector.label')\"\r\n :options=\"diskTags\"\r\n :taggable=\"true\"\r\n :multiple=\"true\"\r\n :mode=\"mode\"\r\n >\r\n <template #no-options=\"{ searching }\">\r\n <span\r\n v-if=\"!searching\"\r\n class=\"text-muted\"\r\n >\r\n {{ t('harvester.storage.parameters.diskSelector.no-options', null, true) }}\r\n </span>\r\n </template>\r\n </LabeledSelect>\r\n </div>\r\n </div>\r\n <div class=\"row mt-20\">\r\n <RadioGroup\r\n v-model:value=\"value.parameters.migratable\"\r\n name=\"layer3NetworkMode\"\r\n :label=\"t('harvester.storage.parameters.migratable.label')\"\r\n :mode=\"mode\"\r\n :options=\"migratableOptions\"\r\n />\r\n </div>\r\n <template v-if=\"value.volumeEncryptionFeatureEnabled\">\r\n <div class=\"row mt-20\">\r\n <RadioGroup\r\n v-model:value=\"volumeEncryption\"\r\n name=\"volumeEncryption\"\r\n :label=\"t('harvester.storage.volumeEncryption')\"\r\n :mode=\"mode\"\r\n :options=\"volumeEncryptionOptions\"\r\n />\r\n </div>\r\n <div\r\n v-if=\"value.parameters.encrypted === 'true'\"\r\n class=\"row mt-20\"\r\n >\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"secret\"\r\n :label=\"t('harvester.storage.secret')\"\r\n :options=\"secretOptions\"\r\n :mode=\"mode\"\r\n />\r\n </div>\r\n </div>\r\n </template>\r\n <KeyValue\r\n v-model:value=\"parameters\"\r\n :add-label=\"t('storageClass.longhorn.addLabel')\"\r\n :read-allowed=\"false\"\r\n :mode=\"mode\"\r\n class=\"mt-10\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.labeled-input.compact-input {\r\n padding: 7px 10px;\r\n}\r\n</style>\r\n","import { render } from \"./driver.longhorn.io_v1.vue?vue&type=template&id=8c848812&scoped=true\"\nimport script from \"./driver.longhorn.io_v1.vue?vue&type=script&lang=js\"\nexport * from \"./driver.longhorn.io_v1.vue?vue&type=script&lang=js\"\n\nimport \"./driver.longhorn.io_v1.vue?vue&type=style&index=0&id=8c848812&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8c848812\"]])\n\nexport default __exports__","<script>\r\nimport KeyValue from '@shell/components/form/KeyValue';\r\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport RadioGroup from '@components/Form/Radio/RadioGroup';\r\nimport { SECRET, LONGHORN } from '@shell/config/types';\r\nimport { _CREATE, _VIEW } from '@shell/config/query-params';\r\nimport { CSI_SECRETS } from '@pkg/harvester/config/harvester-map';\r\nimport { clone } from '@shell/utils/object';\r\nimport { uniq } from '@shell/utils/array';\r\nimport { DATA_ENGINE_V2 } from '../../../models/harvester/persistentvolumeclaim';\r\n\r\n// UI components for Longhorn storage class parameters\r\nconst DEFAULT_PARAMETERS = [\r\n 'numberOfReplicas',\r\n 'staleReplicaTimeout',\r\n 'diskSelector',\r\n 'nodeSelector',\r\n 'migratable',\r\n 'encrypted',\r\n 'dataEngine',\r\n];\r\n\r\nconst {\r\n CSI_PROVISIONER_SECRET_NAME,\r\n CSI_PROVISIONER_SECRET_NAMESPACE,\r\n CSI_NODE_PUBLISH_SECRET_NAME,\r\n CSI_NODE_PUBLISH_SECRET_NAMESPACE,\r\n CSI_NODE_STAGE_SECRET_NAME,\r\n CSI_NODE_STAGE_SECRET_NAMESPACE\r\n} = CSI_SECRETS;\r\n\r\nexport default {\r\n name: 'DriverLonghornIOV2',\r\n\r\n components: {\r\n KeyValue,\r\n LabeledSelect,\r\n LabeledInput,\r\n RadioGroup,\r\n },\r\n\r\n props: {\r\n value: {\r\n type: Object,\r\n required: true\r\n },\r\n mode: {\r\n type: String,\r\n required: true\r\n },\r\n realMode: {\r\n type: String,\r\n required: true\r\n },\r\n },\r\n\r\n data() {\r\n if (this.realMode === _CREATE) {\r\n this.value['parameters'] = {\r\n numberOfReplicas: '3',\r\n staleReplicaTimeout: '30',\r\n diskSelector: null,\r\n nodeSelector: null,\r\n encrypted: 'false',\r\n migratable: this.value.thirdPartyStorageFeatureEnabled ? 'true' : 'false',\r\n dataEngine: DATA_ENGINE_V2\r\n };\r\n }\r\n\r\n return { };\r\n },\r\n\r\n computed: {\r\n secrets() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n\r\n const allSecrets = this.$store.getters[`${ inStore }/all`](SECRET);\r\n\r\n // only show non-system secret to user to select\r\n return allSecrets.filter((secret) => secret.isSystem === false);\r\n },\r\n\r\n longhornNodes() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n\r\n return this.$store.getters[`${ inStore }/all`](LONGHORN.NODES);\r\n },\r\n\r\n nodeTags() {\r\n return (this.longhornNodes || []).reduce((sum, node) => {\r\n const tags = node.spec?.tags || [];\r\n\r\n return uniq([...sum, ...tags]);\r\n }, []);\r\n },\r\n\r\n diskTags() {\r\n return (this.longhornNodes || []).reduce((sum, node) => {\r\n const disks = node.spec?.disks;\r\n\r\n const tagsOfNode = Object.keys(disks).reduce((sum, key) => {\r\n const tags = disks[key]?.tags || [];\r\n\r\n return uniq([...sum, ...tags]);\r\n }, []);\r\n\r\n return uniq([...sum, ...tagsOfNode]);\r\n }, []);\r\n },\r\n\r\n isView() {\r\n return this.mode === _VIEW;\r\n },\r\n\r\n migratableOptions() {\r\n return [{\r\n label: this.t('generic.yes'),\r\n value: 'true'\r\n }, {\r\n label: this.t('generic.no'),\r\n value: 'false'\r\n }];\r\n },\r\n\r\n secretOptions() {\r\n return this.secrets.map((secret) => secret.id);\r\n },\r\n\r\n volumeEncryptionOptions() {\r\n return [{\r\n label: this.t('generic.yes'),\r\n value: 'true'\r\n }, {\r\n label: this.t('generic.no'),\r\n value: 'false'\r\n }];\r\n },\r\n\r\n parameters: {\r\n get() {\r\n const parameters = clone(this.value?.parameters) || {};\r\n\r\n DEFAULT_PARAMETERS.forEach((key) => {\r\n delete parameters[key];\r\n });\r\n\r\n Object.values(CSI_SECRETS).forEach((key) => {\r\n delete parameters[key];\r\n });\r\n\r\n return parameters;\r\n },\r\n\r\n set(value) {\r\n Object.assign(this.value.parameters, value);\r\n }\r\n },\r\n\r\n volumeEncryption: {\r\n set(neu) {\r\n this.value['parameters'] = {\r\n ...this.value.parameters,\r\n encrypted: neu\r\n };\r\n },\r\n\r\n get() {\r\n return this.value?.parameters?.encrypted || 'false';\r\n }\r\n },\r\n\r\n secret: {\r\n get() {\r\n const selectedNs = this.value.parameters[CSI_PROVISIONER_SECRET_NAMESPACE];\r\n const selectedName = this.value.parameters[CSI_PROVISIONER_SECRET_NAME];\r\n\r\n if (selectedNs && selectedName) {\r\n return `${ selectedNs }/${ selectedName }`;\r\n }\r\n\r\n return '';\r\n },\r\n\r\n set(selectedSecret) {\r\n const [namespace, name] = selectedSecret.split('/');\r\n\r\n this.value['parameters'] = {\r\n ...this.value.parameters,\r\n [CSI_PROVISIONER_SECRET_NAME]: name,\r\n [CSI_NODE_PUBLISH_SECRET_NAME]: name,\r\n [CSI_NODE_STAGE_SECRET_NAME]: name,\r\n [CSI_PROVISIONER_SECRET_NAMESPACE]: namespace,\r\n [CSI_NODE_PUBLISH_SECRET_NAMESPACE]: namespace,\r\n [CSI_NODE_STAGE_SECRET_NAMESPACE]: namespace\r\n };\r\n }\r\n },\r\n\r\n nodeSelector: {\r\n get() {\r\n const nodeSelector = this.value?.parameters?.nodeSelector;\r\n\r\n if ((nodeSelector || '').includes(',')) {\r\n return nodeSelector.split(',');\r\n } else if (nodeSelector) {\r\n return [nodeSelector];\r\n } else {\r\n return [];\r\n }\r\n },\r\n\r\n set(value) {\r\n this.value.parameters.nodeSelector = (value || []).join(',');\r\n }\r\n },\r\n\r\n diskSelector: {\r\n get() {\r\n const diskSelector = this.value?.parameters?.diskSelector;\r\n\r\n if ((diskSelector || '').includes(',')) {\r\n return diskSelector.split(',');\r\n } else if (diskSelector) {\r\n return [diskSelector];\r\n } else {\r\n return [];\r\n }\r\n },\r\n\r\n set(value) {\r\n this.value.parameters.diskSelector = (value || []).join(',');\r\n }\r\n },\r\n\r\n numberOfReplicas: {\r\n get() {\r\n return this.value?.parameters?.numberOfReplicas;\r\n },\r\n\r\n set(value) {\r\n if (value >= 1 && value <= 3) {\r\n this.value.parameters.numberOfReplicas = String(value);\r\n }\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <LabeledInput\r\n v-model:value=\"numberOfReplicas\"\r\n :label=\"t('harvester.storage.parameters.numberOfReplicas.label')\"\r\n :required=\"true\"\r\n :mode=\"mode\"\r\n min=\"1\"\r\n max=\"3\"\r\n type=\"number\"\r\n />\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledInput\r\n v-model:value=\"value.parameters.staleReplicaTimeout\"\r\n :label=\"t('harvester.storage.parameters.staleReplicaTimeout.label')\"\r\n :required=\"true\"\r\n :mode=\"mode\"\r\n type=\"number\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"row mt-10\">\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"nodeSelector\"\r\n :label=\"t('harvester.storage.parameters.nodeSelector.label')\"\r\n :options=\"nodeTags\"\r\n :taggable=\"true\"\r\n :multiple=\"true\"\r\n :mode=\"mode\"\r\n >\r\n <template #no-options=\"{ searching }\">\r\n <span\r\n v-if=\"!searching\"\r\n class=\"text-muted\"\r\n >\r\n {{ t('harvester.storage.parameters.nodeSelector.no-options', null, true) }}\r\n </span>\r\n </template>\r\n </LabeledSelect>\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"diskSelector\"\r\n :label=\"t('harvester.storage.parameters.diskSelector.label')\"\r\n :options=\"diskTags\"\r\n :taggable=\"true\"\r\n :multiple=\"true\"\r\n :mode=\"mode\"\r\n >\r\n <template #no-options=\"{ searching }\">\r\n <span\r\n v-if=\"!searching\"\r\n class=\"text-muted\"\r\n >\r\n {{ t('harvester.storage.parameters.diskSelector.no-options', null, true) }}\r\n </span>\r\n </template>\r\n </LabeledSelect>\r\n </div>\r\n </div>\r\n <div class=\"row mt-20\">\r\n <RadioGroup\r\n v-model:value=\"value.parameters.migratable\"\r\n name=\"layer3NetworkMode\"\r\n :label=\"t('harvester.storage.parameters.migratable.label')\"\r\n :mode=\"mode\"\r\n :options=\"migratableOptions\"\r\n :disabled=\"!value.thirdPartyStorageFeatureEnabled\"\r\n />\r\n </div>\r\n <div class=\"row mt-20\">\r\n <RadioGroup\r\n v-model:value=\"volumeEncryption\"\r\n name=\"volumeEncryption\"\r\n :label=\"t('harvester.storage.volumeEncryption')\"\r\n :mode=\"mode\"\r\n :options=\"volumeEncryptionOptions\"\r\n :disabled=\"true\"\r\n />\r\n </div>\r\n <div\r\n v-if=\"value.parameters.encrypted === 'true'\"\r\n class=\"row mt-20\"\r\n >\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"secret\"\r\n :label=\"t('harvester.storage.secret')\"\r\n :options=\"secretOptions\"\r\n :mode=\"mode\"\r\n />\r\n </div>\r\n </div>\r\n <KeyValue\r\n v-model:value=\"parameters\"\r\n :add-label=\"t('storageClass.longhorn.addLabel')\"\r\n :read-allowed=\"false\"\r\n :mode=\"mode\"\r\n class=\"mt-10\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.labeled-input.compact-input {\r\n padding: 7px 10px;\r\n}\r\n</style>\r\n","import { render } from \"./driver.longhorn.io_v2.vue?vue&type=template&id=1618b260&scoped=true\"\nimport script from \"./driver.longhorn.io_v2.vue?vue&type=script&lang=js\"\nexport * from \"./driver.longhorn.io_v2.vue?vue&type=script&lang=js\"\n\nimport \"./driver.longhorn.io_v2.vue?vue&type=style&index=0&id=1618b260&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1618b260\"]])\n\nexport default __exports__","<script>\r\n\r\nimport KeyValue from '@shell/components/form/KeyValue';\r\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\r\n\r\nimport { allHash } from '@shell/utils/promise';\r\nimport { clone } from '@shell/utils/object';\r\nimport { HCI } from '../../../types';\r\nimport { NODE } from '@shell/config/types';\r\nimport { LVM_TOPOLOGY_LABEL } from '../index.vue';\r\n\r\nconst DEFAULT_PARAMETERS = [\r\n 'type',\r\n 'vgName'\r\n];\r\n\r\nconst DEFAULT_TOPOLOGIES = [{\r\n matchLabelExpressions: [{\r\n key: LVM_TOPOLOGY_LABEL,\r\n values: []\r\n }]\r\n}];\r\n\r\nexport default {\r\n components: {\r\n KeyValue,\r\n LabeledSelect,\r\n },\r\n\r\n props: {\r\n value: {\r\n type: Object,\r\n required: true\r\n },\r\n mode: {\r\n type: String,\r\n required: true\r\n },\r\n realMode: {\r\n type: String,\r\n required: true\r\n },\r\n },\r\n\r\n async fetch() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n\r\n await allHash({\r\n nodes: this.$store.dispatch(`${ inStore }/findAll`, { type: NODE }),\r\n lvmVolumeGroups: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.LVM_VOLUME_GROUP }),\r\n });\r\n },\r\n\r\n data() {\r\n const node = (this.value.allowedTopologies?.[0]?.matchLabelExpressions || []).find((t) => t.key === LVM_TOPOLOGY_LABEL)?.values[0];\r\n\r\n return {\r\n volumeGroupTypes: ['striped', 'dm-thin'],\r\n node,\r\n };\r\n },\r\n\r\n watch: {\r\n node(value) {\r\n delete (this.value.parameters.vgName);\r\n\r\n const allowedTopologies = [...DEFAULT_TOPOLOGIES];\r\n\r\n allowedTopologies[0].matchLabelExpressions[0].values = [value];\r\n\r\n this.value.allowedTopologies = allowedTopologies;\r\n }\r\n },\r\n\r\n computed: {\r\n nodes() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n const nodes = this.$store.getters[`${ inStore }/all`](NODE) || [];\r\n\r\n return nodes.filter((n) => n.labels[LVM_TOPOLOGY_LABEL] === n.name).map((n) => n.name);\r\n },\r\n\r\n volumeGroups() {\r\n const inStore = this.$store.getters['currentProduct'].inStore;\r\n const lvmVolumeGroups = this.$store.getters[`${ inStore }/all`](HCI.LVM_VOLUME_GROUP) || [];\r\n\r\n return lvmVolumeGroups\r\n .filter((group) => group.spec.nodeName === this.node)\r\n .map((g) => g.spec.vgName);\r\n },\r\n\r\n parameters: {\r\n get() {\r\n const parameters = clone(this.value?.parameters) || {};\r\n\r\n DEFAULT_PARAMETERS.map((key) => {\r\n delete parameters[key];\r\n });\r\n\r\n return parameters;\r\n },\r\n\r\n set(value) {\r\n Object.assign(this.value.parameters, value);\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n<template>\r\n <div>\r\n <div class=\"row mt-10\">\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"node\"\r\n :label=\"t('harvester.storage.parameters.node.label')\"\r\n :options=\"nodes\"\r\n :mode=\"mode\"\r\n :required=\"true\"\r\n >\r\n <template #no-options=\"{ searching }\">\r\n <span\n v-if=\"!searching\"\n class=\"text-muted\"\n >\r\n {{ t('harvester.storage.parameters.diskSelector.no-options', null, true) }}\r\n </span>\r\n </template>\r\n </LabeledSelect>\r\n </div>\r\n </div>\r\n <div class=\"row mt-10\">\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"value.parameters.vgName\"\r\n :label=\"t('harvester.storage.parameters.lvmVolumeGroup.label')\"\r\n :options=\"volumeGroups\"\r\n :mode=\"mode\"\r\n :required=\"true\"\r\n >\r\n <template #no-options=\"{ searching }\">\r\n <span\n v-if=\"!searching\"\n class=\"text-muted\"\n >\r\n {{ t('harvester.storage.parameters.lvmVolumeGroup.no-options', null, true) }}\r\n </span>\r\n </template>\r\n </LabeledSelect>\r\n </div>\r\n <div class=\"col span-6\">\r\n <LabeledSelect\r\n v-model:value=\"value.parameters.type\"\r\n :label=\"t('harvester.storage.parameters.lvmVolumeGroupType.label')\"\r\n :options=\"volumeGroupTypes\"\r\n :mode=\"mode\"\r\n :required=\"true\"\r\n />\r\n </div>\r\n </div>\r\n <KeyValue\r\n v-model:value=\"parameters\"\r\n :add-label=\"t('storageClass.longhorn.addLabel')\"\r\n :read-allowed=\"false\"\r\n :mode=\"mode\"\r\n class=\"mt-10\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.labeled-input.compact-input {\r\n padding: 7px 10px;\r\n}\r\n</style>\r\n","import { render } from \"./lvm.driver.harvesterhci.io.vue?vue&type=template&id=6afc4f36&scoped=true\"\nimport script from \"./lvm.driver.harvesterhci.io.vue?vue&type=script&lang=js\"\nexport * from \"./lvm.driver.harvesterhci.io.vue?vue&type=script&lang=js\"\n\nimport \"./lvm.driver.harvesterhci.io.vue?vue&type=style&index=0&id=6afc4f36&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6afc4f36\"]])\n\nexport default __exports__","<script>\nimport Footer from '@shell/components/form/Footer';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport Checkbox from '@components/Form/Checkbox/Checkbox';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { allHash } from '@shell/utils/promise';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { sortBy } from '@shell/utils/sort';\nimport { clone } from '@shell/utils/object';\nimport { HCI } from '../types';\nimport { BACKUP_TYPE } from '../config/types';\n\nconst createObject = {\n apiVersion: 'harvesterhci.io/v1beta1',\n kind: 'VirtualMachineRestore',\n metadata: { name: '', namespace: '' },\n type: HCI.RESTORE,\n spec: {\n target: {\n apiGroup: 'kubevirt.io',\n kind: 'VirtualMachine',\n name: ''\n },\n virtualMachineBackupName: '',\n newVM: true,\n deletionPolicy: 'delete'\n }\n};\n\nexport default {\n name: 'CreateRestore',\n components: {\n Checkbox,\n Footer,\n RadioGroup,\n LabeledInput,\n LabeledSelect,\n },\n\n mixins: [CreateEditView],\n\n async fetch() {\n await allHash({\n backups: this.$store.dispatch('harvester/findAll', { type: HCI.BACKUP }),\n vms: this.$store.dispatch('harvester/findAll', { type: HCI.VM }),\n });\n },\n\n data() {\n const restoreMode = this.$route.query?.restoreMode;\n const backupName = this.$route.query?.resourceName;\n\n const restoreResource = clone(createObject);\n\n const restoreNewVm = restoreMode === 'new' || restoreMode === undefined;\n\n return {\n backupName,\n restoreNewVm,\n restoreResource,\n name: '',\n description: '',\n deletionPolicy: 'delete',\n namespace: ''\n };\n },\n\n computed: {\n backupOption() {\n const choices = this.$store.getters['harvester/all'](HCI.BACKUP);\n\n return choices.filter( (T) => {\n const hasVM = this.restoreNewVm || T.attachVmExisting;\n\n return hasVM && T?.status?.readyToUse && T.spec?.type !== BACKUP_TYPE.SNAPSHOT;\n }).map( (T) => {\n return {\n label: T.metadata.name,\n value: T.metadata.name\n };\n });\n },\n\n deletionPolicyOption() {\n return [{\n value: 'delete',\n label: 'Delete'\n }, {\n value: 'retain',\n label: 'Retain'\n }];\n },\n\n currentBackupResource() {\n const name = this.backupName;\n\n const backupList = this.$store.getters['harvester/all'](HCI.BACKUP);\n\n return backupList.find( (O) => O.name === name);\n },\n\n disableExisting() {\n return !this.currentBackupResource?.attachVmExisting;\n },\n\n backupNamespace() {\n const backupList = this.$store.getters['harvester/all'](HCI.BACKUP);\n\n return backupList.find( (B) => B.metadata.name === this.backupName)?.metadata?.namespace;\n },\n\n namespaces() {\n const allNamespaces = this.$store.getters['allNamespaces'];\n\n const out = sortBy(\n allNamespaces.map((obj) => {\n return {\n label: obj.nameDisplay,\n value: obj.id,\n };\n }),\n 'label'\n );\n\n return out;\n },\n },\n\n watch: {\n backupName: {\n handler(neu) {\n if (this.currentBackupResource) {\n if (!this.restoreNewVm) {\n this.name = this?.currentBackupResource?.attachVM;\n }\n }\n\n this.restoreResource.spec.virtualMachineBackupName = neu;\n },\n immediate: true\n },\n\n restoreNewVm(neu) {\n if (neu) {\n this.name = '';\n } else {\n this.name = this?.currentBackupResource?.attachVM;\n }\n },\n\n backupNamespace: {\n handler(neu) {\n this.namespace = neu;\n },\n immediate: true\n }\n },\n\n methods: {\n cancelAction() {\n this.$router.go(-1);\n },\n\n async saveRestore(buttonCb) {\n this.update();\n\n const proxyResource = await this.$store.dispatch('harvester/create', this.restoreResource);\n\n proxyResource.metadata.namespace = this.namespace;\n proxyResource.spec.virtualMachineBackupNamespace = this.backupNamespace;\n\n try {\n await proxyResource.save();\n buttonCb(true);\n\n this.$router.push({\n name: this.doneRoute,\n params: { resource: HCI.VM }\n });\n } catch (err) {\n this.errors = exceptionToErrorsArray(err) || err;\n buttonCb(false);\n }\n },\n\n update() {\n this.restoreResource.metadata.generateName = `restore-${ this.backupName }-`;\n if (this.name) {\n this.restoreResource.spec.target.name = this.name;\n }\n\n if (this.restoreNewVm) {\n delete this.restoreResource.spec.deletionPolicy;\n this.restoreResource.spec.newVM = true;\n } else {\n this.restoreResource.spec.deletionPolicy = this.deletionPolicy;\n delete this.restoreResource.spec.newVM;\n delete this.restoreResource.spec.keepMacAddress;\n }\n }\n },\n\n componentTitle() {\n return 'restoreVM';\n }\n};\n</script>\n\n<template>\n <div id=\"restore\">\n <div class=\"content\">\n <div class=\"mb-20\">\n <RadioGroup\n v-model:value=\"restoreNewVm\"\n name=\"model\"\n :options=\"[true,false]\"\n :labels=\"[t('harvester.backup.restore.createNew'), t('harvester.backup.restore.replaceExisting')]\"\n :disabled=\"disableExisting\"\n :mode=\"mode\"\n />\n </div>\n\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"namespace\"\n :disabled=\"!restoreNewVm\"\n :label=\"t('nameNsDescription.namespace.label')\"\n :options=\"namespaces\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"name\"\n :disabled=\"!restoreNewVm\"\n :label=\"t('harvester.backup.restore.virtualMachineName')\"\n :placeholder=\"t('nameNsDescription.name.placeholder')\"\n class=\"mb-20\"\n />\n </div>\n </div>\n\n <LabeledSelect\n v-model:value=\"backupName\"\n class=\"mb-20\"\n :label=\"t('harvester.backup.restore.backup')\"\n :options=\"backupOption\"\n />\n\n <Checkbox\n v-if=\"restoreNewVm\"\n v-model:value=\"restoreResource.spec.keepMacAddress\"\n type=\"checkbox\"\n :label=\"t('harvester.backup.restore.keepMacAddress')\"\n />\n\n <LabeledSelect\n v-if=\"!restoreNewVm\"\n v-model:value=\"deletionPolicy\"\n :label=\"t('harvester.backup.restore.deletePreviousVolumes')\"\n :options=\"deletionPolicyOption\"\n />\n </div>\n\n <Footer\n mode=\"create\"\n class=\"footer\"\n :errors=\"errors\"\n @save=\"saveRestore\"\n @done=\"cancelAction\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n#restore {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n\n .content {\n flex-grow: 1\n }\n\n .footer {\n border-top: var(--header-border-size) solid var(--header-border);\n\n // Overrides outlet padding\n margin-left: -$space-m;\n margin-right: -$space-m;\n margin-bottom: -$space-m;\n padding: $space-s $space-m;\n\n :deep() .spacer-small {\n padding: 0px;\n }\n }\n}\n</style>\n","import { render } from \"./harvesterhci.io.virtualmachinebackup.vue?vue&type=template&id=dcf8e7de&scoped=true\"\nimport script from \"./harvesterhci.io.virtualmachinebackup.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.virtualmachinebackup.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.virtualmachinebackup.vue?vue&type=style&index=0&id=dcf8e7de&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-dcf8e7de\"]])\n\nexport default __exports__","<script>\nimport CruResource from '@shell/components/CruResource';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport KeyValue from '@shell/components/form/KeyValue';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { RadioGroup } from '@components/Form/Radio';\nimport Select from '@shell/components/form/Select';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { allHash } from '@shell/utils/promise';\nimport { STORAGE_CLASS } from '@shell/config/types';\nimport { VM_IMAGE_FILE_FORMAT } from '../validators/vm-image';\nimport { OS } from '../mixins/harvester-vm';\nimport { HCI } from '../types';\nimport { LVM_DRIVER } from '../models/harvester/storage.k8s.io.storageclass';\n\nconst ENCRYPT = 'encrypt';\nconst DECRYPT = 'decrypt';\nconst CLONE = 'clone';\nconst DOWNLOAD = 'download';\nconst UPLOAD = 'upload';\nconst rawORqcow2 = 'raw_qcow2';\nconst LONGHORN = 'longhorn';\n\nexport default {\n name: 'EditImage',\n\n inheritAttrs: false,\n\n emits: ['update:value'],\n\n components: {\n Tab,\n Tabbed,\n KeyValue,\n Select,\n CruResource,\n LabeledInput,\n NameNsDescription,\n RadioGroup,\n LabeledSelect,\n },\n\n mixins: [CreateEditView],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n await allHash({\n images: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.IMAGE }),\n storageClasses: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }),\n });\n\n this['storageClassName'] = this.storageClassName || this.defaultStorageClassName();\n this.images = this.$store.getters[`${ inStore }/all`](HCI.IMAGE);\n\n this.storages = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS);\n\n const { securityParameters } = this.value.spec;\n\n // edit and view mode should show the source image\n if (securityParameters) {\n // image ns/name = image.id\n const sourceImage = `${ securityParameters.sourceImageNamespace }/${ securityParameters.sourceImageName }`;\n\n this.selectedImage = this.images.find((image) => image.id === sourceImage);\n }\n },\n\n data() {\n // pass from Encrypt Image / Decrypt Image actions\n const { image, sourceType, cryptoOperation } = this.$route.query || {};\n\n if ( !this.value.spec ) {\n this.value['spec'] = { sourceType: sourceType || DOWNLOAD };\n }\n\n if (image && cryptoOperation) {\n const imageObject = JSON.parse(image);\n\n this.value.spec.securityParameters = {\n cryptoOperation,\n sourceImageName: imageObject.metadata.name,\n sourceImageNamespace: imageObject.metadata.namespace\n };\n }\n\n if (!this.value.metadata.name) {\n this.value.metadata.generateName = 'image-';\n }\n\n return {\n selectedImage: null,\n storageClasses: [],\n images: [],\n url: this.value.spec.url,\n files: [],\n resource: '',\n headers: {},\n fileUrl: '',\n file: '',\n };\n },\n\n computed: {\n uploadFileName() {\n return this.file?.name || '';\n },\n\n imageName() {\n return this.value?.metadata?.annotations?.[HCI_ANNOTATIONS.IMAGE_NAME] || '-';\n },\n\n isCreateEdit() {\n return this.isCreate || this.isEdit;\n },\n\n showEditAsYaml() {\n return this.value.spec.sourceType === DOWNLOAD || this.value.spec.sourceType === CLONE;\n },\n\n radioGroupOptions() {\n if (this.value.volumeEncryptionFeatureEnabled) {\n return [\n DOWNLOAD,\n UPLOAD,\n ENCRYPT,\n DECRYPT\n ];\n }\n\n return [\n DOWNLOAD,\n UPLOAD\n ];\n },\n\n encryptedStorageClasses() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const storages = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS);\n\n return storages.filter((s) => s.isEncrypted);\n },\n\n nonEncryptedStorageClasses() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const storages = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS);\n\n return storages.filter((s) => !s.isEncrypted);\n },\n\n storageClassOptions() {\n const storages = this.value.spec?.securityParameters?.cryptoOperation === ENCRYPT ? this.encryptedStorageClasses : this.nonEncryptedStorageClasses;\n const filteredStorages = this.value.thirdPartyStorageFeatureEnabled ? storages.filter((s) => !s.parameters?.backingImage) : storages\n .filter((s) => !s.parameters?.backingImage && s.provisioner !== LVM_DRIVER) ;\n\n return filteredStorages\n .map((s) => {\n const label = s.isDefault ? `${ s.name } (${ this.t('generic.default') })` : s.name;\n\n return {\n label,\n value: s.name,\n };\n }) || [];\n },\n\n storageClassName: {\n get() {\n return this.value.metadata.annotations[HCI_ANNOTATIONS.STORAGE_CLASS];\n },\n\n set(nue) {\n this.value.metadata.annotations[HCI_ANNOTATIONS.STORAGE_CLASS] = nue;\n if (this.value.thirdPartyStorageFeatureEnabled) {\n this.value.spec.targetStorageClassName = nue;\n }\n }\n },\n sourceImageOptions() {\n let options = [];\n\n if (this.value.spec.sourceType !== CLONE) {\n return options;\n }\n if (this.value.spec.securityParameters.cryptoOperation === ENCRYPT) {\n options = this.images.filter((image) => !image.isEncrypted);\n } else {\n options = this.images.filter((image) => image.isEncrypted);\n }\n\n return options.map((image) => image.displayNameWithNamespace);\n },\n sourceImage: {\n get() {\n if (this.selectedImage) {\n return this.selectedImage.displayNameWithNamespace;\n }\n\n return '';\n },\n set(neu) {\n this.selectedImage = this.images.find((i) => i.displayNameWithNamespace === neu);\n // sourceImageName should bring the name of the image\n this.value.spec.securityParameters.sourceImageName = this.selectedImage?.metadata.name || '';\n this.value.spec.securityParameters.sourceImageNamespace = this.selectedImage?.metadata.namespace || '';\n }\n },\n sourceType: {\n get() {\n if (this.value.spec.sourceType === CLONE) {\n return this.value.spec?.securityParameters?.cryptoOperation;\n } else {\n return this.value.spec.sourceType;\n }\n },\n\n set(neu) {\n if (neu === DECRYPT || neu === ENCRYPT) {\n this.value.spec.sourceType = CLONE;\n this.value.spec['securityParameters'] = {\n cryptoOperation: neu,\n sourceImageName: '',\n sourceImageNamespace: this.value.metadata.namespace\n };\n this.selectedImage = null;\n } else {\n delete this.value.spec['securityParameters'];\n this.value.spec.sourceType = neu;\n }\n }\n }\n },\n\n watch: {\n 'value.spec.url'(neu) {\n const url = neu.trim();\n\n this.setImageLabels(url);\n },\n\n 'value.spec.sourceType'() {\n this['file'] = null;\n this.url = '';\n\n if (this.$refs?.file?.value) {\n this.$refs.file.value = null;\n }\n },\n 'value.spec.securityParameters.cryptoOperation'() {\n if (this.value.spec?.securityParameters?.cryptoOperation === ENCRYPT) {\n this.storageClassName = this.encryptedStorageClasses[0]?.name || '';\n } else { // URL / FILE / DECRYPT should use default storage class\n this.storageClassName = this.defaultStorageClassName();\n }\n },\n 'storageClassName'(neu) {\n const storageClass = this.storages.find((s) => s.id === neu);\n\n if (storageClass && this.value.thirdPartyStorageFeatureEnabled) {\n this.value.spec.backend = storageClass.isLonghornV1 ? 'backingimage' : 'cdi';\n }\n }\n },\n\n methods: {\n async saveImage(buttonCb) {\n this.value.spec.displayName = (this.value.spec.displayName || '').trim();\n\n if (this.isEdit) return await this.handleEditImage(buttonCb);\n\n if (this.value.spec.sourceType === UPLOAD && this.isCreate) {\n try {\n this.value.spec.url = '';\n\n const file = this.file;\n\n this.value.metadata.annotations[HCI_ANNOTATIONS.IMAGE_NAME] = file?.name;\n\n const res = await this.value.save();\n\n res.uploadImage(file);\n\n buttonCb(true);\n this.done();\n } catch (e) {\n this.errors = exceptionToErrorsArray(e);\n buttonCb(false);\n }\n } else {\n this.value.spec.url = this.value.spec.url?.trim() || '';\n this.save(buttonCb);\n }\n },\n\n async handleEditImage(buttonCb) {\n try {\n const data = [{\n op: 'replace', path: '/metadata/labels', value: this.value.metadata.labels\n }, {\n op: 'replace', path: '/metadata/annotations', value: this.value.metadata.annotations\n }];\n\n await this.value.patch(data);\n buttonCb(true);\n this.done();\n } catch (e) {\n this.errors = exceptionToErrorsArray(e);\n buttonCb(false);\n }\n },\n\n setImageLabels(str) {\n const suffixName = str?.split('/')?.pop() || str;\n\n const fileSuffix = suffixName?.split('.')?.pop()?.toLowerCase();\n\n if (VM_IMAGE_FILE_FORMAT.includes(fileSuffix)) {\n const labelValue = fileSuffix === 'iso' ? fileSuffix : rawORqcow2;\n\n this.addLabel(HCI_ANNOTATIONS.IMAGE_SUFFIX, labelValue);\n\n if (!this.value.spec.displayName) {\n this.$refs.nd.changeNameAndNamespace({\n text: suffixName,\n selected: this.value.metadata.namespace,\n });\n }\n }\n\n const os = this.getOSType(str);\n\n if (os) {\n this.addLabel(HCI_ANNOTATIONS.OS_TYPE, os.value);\n }\n },\n\n addLabel(labelKey, value) {\n const rows = this.$refs.labels.rows;\n\n rows.map((label, idx) => {\n if (label.key === labelKey) {\n this.$refs.labels.remove(idx);\n }\n });\n this.$refs.labels.add(labelKey, value);\n },\n\n handleFileUpload() {\n const file = this.$refs.file.files[0];\n\n this.file = file;\n\n this.setImageLabels(file?.name);\n\n if (!this.value.spec.displayName) {\n this.$refs.nd.changeNameAndNamespace({\n text: file?.name,\n selected: this.value.metadata.namespace,\n });\n }\n\n this.setImageLabels();\n },\n\n selectFile() {\n // Clear the value so the user can reselect the same file again\n this.$refs.file.value = null;\n this.$refs.file.click();\n },\n\n internalAnnotations(option) {\n const optionKeys = [HCI_ANNOTATIONS.OS_TYPE, HCI_ANNOTATIONS.IMAGE_SUFFIX];\n\n return optionKeys.find((O) => O === option.key);\n },\n\n calculateOptions(keyName) {\n if (keyName === HCI_ANNOTATIONS.OS_TYPE) {\n return OS;\n } else if (keyName === HCI_ANNOTATIONS.IMAGE_SUFFIX) {\n return [{\n label: 'ISO',\n value: 'iso'\n }, {\n label: 'raw/qcow2',\n value: rawORqcow2\n }];\n }\n\n return [];\n },\n\n focusKey() {\n this.$refs.key.focus();\n },\n\n getOSType(str) {\n if (!str) {\n return;\n }\n\n return OS.find( (os) => {\n if (os.match) {\n return os.match.find((matchValue) => str.toLowerCase().includes(matchValue)) ? os.value : false;\n } else {\n return str.toLowerCase().includes(os.value.toLowerCase()) ? os.value : false;\n }\n });\n },\n\n defaultStorageClassName() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const defaultStorage = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS).find((s) => s.isDefault);\n\n if (!defaultStorage) {\n return LONGHORN;\n }\n\n // if default sc is encrypted, use longhorn as default\n return defaultStorage.isEncrypted ? LONGHORN : defaultStorage?.metadata?.name;\n }\n },\n};\n</script>\n\n<template>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n :can-yaml=\"showEditAsYaml ? true : false\"\n :apply-hooks=\"applyHooks\"\n @finish=\"saveImage\"\n @error=\"e=>errors=e\"\n >\n <NameNsDescription\n ref=\"nd\"\n :value=\"value\"\n :mode=\"mode\"\n :label=\"t('generic.name')\"\n name-key=\"spec.displayName\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <Tabbed\n v-bind=\"$attrs\"\n class=\"mt-15\"\n :side-tabs=\"true\"\n >\n <Tab\n name=\"basic\"\n :label=\"t('harvester.image.tabs.basics')\"\n :weight=\"99\"\n class=\"bordered-table\"\n >\n <RadioGroup\n v-if=\"isCreate\"\n v-model:value=\"sourceType\"\n name=\"model\"\n :options=\"radioGroupOptions\"\n :labels=\"[\n t('harvester.image.sourceType.download'),\n t('harvester.image.sourceType.upload'),\n t('harvester.image.sourceType.encrypt'),\n t('harvester.image.sourceType.decrypt'),\n ]\"\n :mode=\"mode\"\n />\n <div class=\"row mb-20 mt-20\">\n <div class=\"col span-12\">\n <LabeledInput\n v-if=\"!isCreate\"\n v-model:value=\"value.spec.sourceType\"\n :mode=\"mode\"\n class=\"mb-20\"\n :disabled=\"isEdit\"\n label-key=\"harvester.image.source\"\n />\n\n <LabeledInput\n v-if=\"value.spec.sourceType === 'download'\"\n v-model:value=\"value.spec.url\"\n :mode=\"mode\"\n :disabled=\"isEdit\"\n class=\"mb-20 labeled-input--tooltip\"\n required\n label-key=\"harvester.image.url\"\n :tooltip=\"t('harvester.image.urlTip', {}, true)\"\n />\n\n <div v-else-if=\"value.spec.sourceType === 'upload'\">\n <LabeledInput\n v-if=\"isView\"\n v-model:value=\"imageName\"\n :mode=\"mode\"\n class=\"mt-20\"\n label-key=\"harvester.image.fileName\"\n />\n\n <button\n v-if=\"isCreate\"\n type=\"button\"\n class=\"btn role-primary\"\n @click=\"selectFile\"\n >\n <span>\n {{ t('harvester.image.uploadFile') }}\n </span>\n <input\n v-show=\"false\"\n id=\"file\"\n ref=\"file\"\n type=\"file\"\n accept=\".qcow, .qcow2, .raw, .img, .iso\"\n @change=\"handleFileUpload()\"\n />\n </button>\n\n <div\n v-if=\"uploadFileName\"\n class=\"fileName mt-5\"\n >\n <span class=\"icon icon-file\" />\n {{ uploadFileName }}\n </div>\n </div>\n\n <LabeledInput\n v-if=\"value.spec.sourceType === 'download'\"\n v-model:value=\"value.spec.checksum\"\n :mode=\"mode\"\n :disabled=\"isEdit\"\n label-key=\"harvester.image.checksum\"\n :tooltip=\"t('harvester.image.checksumTip')\"\n />\n\n <LabeledSelect\n v-if=\"value.spec.sourceType === 'clone'\"\n v-model:value=\"sourceImage\"\n :options=\"sourceImageOptions\"\n :label=\"t('harvester.image.sourceImage')\"\n :mode=\"mode\"\n :disabled=\"isEdit\"\n class=\"mb-20\"\n />\n </div>\n </div>\n </Tab>\n\n <Tab\n name=\"storage\"\n :label=\"t('harvester.storage.label')\"\n :weight=\"89\"\n class=\"bordered-table\"\n >\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"storageClassName\"\n :options=\"storageClassOptions\"\n :label=\"t('harvester.storage.storageClass.label')\"\n :mode=\"mode\"\n :disabled=\"isEdit\"\n class=\"mb-20\"\n />\n </div>\n </div>\n </Tab>\n\n <Tab\n name=\"labels\"\n :label=\"t('labels.labels.title')\"\n :weight=\"2\"\n class=\"bordered-table\"\n >\n <KeyValue\n key=\"labels\"\n ref=\"labels\"\n :value=\"value.labels\"\n :add-label=\"t('labels.addLabel')\"\n :mode=\"mode\"\n :pad-left=\"false\"\n :read-allowed=\"false\"\n :value-can-be-empty=\"true\"\n @focusKey=\"focusKey\"\n @update:value=\"value.setLabels($event)\"\n >\n <template #value=\"{row, keyName, valueName, queueUpdate}\">\n <Select\n v-if=\"internalAnnotations(row)\"\n v-model:value=\"row[valueName]\"\n :mode=\"mode\"\n :searchable=\"true\"\n :clearable=\"false\"\n :options=\"calculateOptions(row[keyName])\"\n @update:value=\"queueUpdate\"\n />\n <input\n v-else\n v-model=\"row[valueName]\"\n :disabled=\"isView\"\n :type=\"'text'\"\n :placeholder=\"t('keyValue.valuePlaceholder')\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n @input=\"queueUpdate\"\n />\n </template>\n </KeyValue>\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n\n<style lang=\"scss\" scoped>\n.kv-item.value > .unlabeled-select {\n height: 40px;\n line-height: 1;\n}\n</style>\n","import { render } from \"./harvesterhci.io.virtualmachineimage.vue?vue&type=template&id=1d4328c1&scoped=true\"\nimport script from \"./harvesterhci.io.virtualmachineimage.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.virtualmachineimage.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.virtualmachineimage.vue?vue&type=style&index=0&id=1d4328c1&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1d4328c1\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport CruResource from '@shell/components/CruResource';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport Labels from '@shell/components/form/Labels';\nimport KeyValue from '@shell/components/form/KeyValue';\nimport NodeScheduling from '@shell/components/form/NodeScheduling';\nimport PodAffinity from '@shell/components/form/PodAffinity';\nimport UnitInput from '@shell/components/form/UnitInput';\n\nimport { randomStr } from '@shell/utils/string';\nimport { _CONFIG, _EDIT, _VIEW } from '@shell/config/query-params';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { AFTER_SAVE_HOOKS } from '@shell/mixins/child-hook';\nimport { HCI } from '../types';\nimport VM_MIXIN from '../mixins/harvester-vm';\nimport Reserved from './kubevirt.io.virtualmachine/VirtualMachineReserved';\nimport Volume from './kubevirt.io.virtualmachine/VirtualMachineVolume';\nimport Network from './kubevirt.io.virtualmachine/VirtualMachineNetwork';\nimport CpuMemory from './kubevirt.io.virtualmachine/VirtualMachineCpuMemory';\nimport CloudConfig from './kubevirt.io.virtualmachine/VirtualMachineCloudConfig';\nimport SSHKey from './kubevirt.io.virtualmachine/VirtualMachineSSHKey';\n\nexport default {\n name: 'HarvesterEditVMTemplate',\n\n emits: ['update:templateValue'],\n\n components: {\n Tab,\n SSHKey,\n Volume,\n Tabbed,\n Network,\n Checkbox,\n CpuMemory,\n CruResource,\n CloudConfig,\n LabeledSelect,\n NameNsDescription,\n NodeScheduling,\n PodAffinity,\n Reserved,\n UnitInput,\n Labels,\n KeyValue,\n },\n\n mixins: [CreateEditView, VM_MIXIN],\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n if (this.mode === _EDIT) {\n this.value.cleanForNew();\n }\n\n const templateId = this.value.templateId || this.$route.query.templateId;\n\n return {\n templateId,\n templateValue: null,\n templateSpec: null,\n versionName: '',\n description: '',\n defaultVersion: null,\n isDefaultVersion: false,\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n isConfig() {\n return this.$route.query?.as === _CONFIG || this.isView;\n },\n\n realTemplateMode() {\n return this.templateId ? _VIEW : this.mode;\n },\n\n secretNamePrefix() {\n return this.templateValue?.metadata?.name;\n },\n },\n\n watch: {\n templateId: {\n async handler(neu) {\n const templates = await this.$store.dispatch('harvester/findAll', { type: HCI.VM_TEMPLATE });\n let templateValue = templates.find( (V) => V.id === neu) || null;\n let templateSpec = templateValue?.spec;\n\n if (!templateValue) {\n templateSpec = {\n description: '',\n defaultVersionId: ''\n };\n\n templateValue = await this.$store.dispatch('harvester/create', {\n metadata: {\n name: '',\n namespace: ''\n },\n spec: templateSpec,\n type: HCI.VM_TEMPLATE\n });\n }\n\n this.templateValue = templateValue;\n this.templateSpec = templateSpec;\n },\n immediate: true\n }\n },\n\n created() {\n this.registerAfterHook(async() => {\n if (this.isDefaultVersion) {\n // Set the default version according to annotation:[HCI_ANNOTATIONS.TEMPLATE_VERSION_CUSTOM_NAME]\n const versions = await this.$store.dispatch('harvester/findAll', { type: HCI.VM_VERSION, opt: { force: true } });\n\n const version = versions.find( (V) => V?.metadata?.annotations?.[HCI_ANNOTATIONS.TEMPLATE_VERSION_CUSTOM_NAME] === this.customName);\n\n if (version) {\n try {\n this.templateValue.defaultVersionId = version.id;\n\n const data = [{\n op: 'replace', path: '/spec/defaultVersionId', value: version.id\n }];\n\n await this.templateValue.patch( data, { url: this.templateValue.linkFor('view') });\n } catch (err) {\n return Promise.reject(new Error(err.message));\n }\n }\n }\n });\n },\n\n mounted() {\n this.imageId = this.diskRows[0]?.image || '';\n },\n\n methods: {\n async saveVMT(buttonCb) {\n this.parseVM();\n\n const templates = await this.$store.dispatch('harvester/findAll', { type: HCI.VM_TEMPLATE });\n const template = templates.find( (O) => O.metadata.name === this.templateValue.metadata.name);\n\n try {\n if (!this.templateId) {\n if (this.templateValue?.metadata?.name) {\n await this.templateValue.save();\n } else {\n this.errors = [this.t('validation.required', { key: this.t('harvester.vmTemplate.nameNsDescription.name') })];\n buttonCb(false);\n\n return;\n }\n } else {\n template.save();\n }\n\n this.value.cleanForNew();\n this.customName = randomStr(10);\n this.value.metadata['annotations'] = {\n ...this.value.metadata.annotations,\n [HCI_ANNOTATIONS.TEMPLATE_VERSION_CUSTOM_NAME]: this.customName\n };\n\n const name = this.templateValue.metadata.name || template.metadata.name;\n const namespace = this.templateValue.metadata.namespace || template.metadata.namespace;\n\n if (this.isCreate) {\n this.value.metadata.namespace = namespace;\n }\n\n this.value.spec['templateId'] = `${ namespace }/${ name }`;\n const res = await this.value.save();\n\n await this.saveSecret(res);\n await this.applyHooks(AFTER_SAVE_HOOKS);\n this.done();\n } catch (e) {\n this.errors = [e];\n buttonCb(false);\n }\n },\n\n onTabChanged({ tab }) {\n if (tab.name === 'advanced') {\n this.$refs.yamlEditor?.refresh();\n }\n },\n },\n};\n</script>\n\n<template>\n <CruResource\n v-if=\"templateSpec && spec\"\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :can-yaml=\"false\"\n :mode=\"mode\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n @finish=\"saveVMT\"\n >\n <NameNsDescription\n :value=\"templateValue\"\n :mode=\"realTemplateMode\"\n name-label=\"harvester.vmTemplate.nameNsDescription.name\"\n :namespaced=\"true\"\n @update:value=\"$emit('update:templateValue', $event)\"\n />\n\n <Checkbox\n v-if=\"templateId\"\n v-model:value=\"isDefaultVersion\"\n class=\"mb-20\"\n :label=\"t('tableHeaders.defaultVersion')\"\n type=\"checkbox\"\n :mode=\"mode\"\n />\n\n <Tabbed\n :side-tabs=\"true\"\n @changed=\"onTabChanged\"\n >\n <Tab\n name=\"Basics\"\n :label=\"t('harvester.vmTemplate.tabs.basics')\"\n >\n <CpuMemory\n :cpu=\"cpu\"\n :memory=\"memory\"\n :disabled=\"isConfig\"\n @updateCpuMemory=\"updateCpuMemory\"\n />\n\n <div class=\"mb-20\">\n <SSHKey\n v-model:value=\"sshKey\"\n :create-namespace=\"true\"\n :namespace=\"templateValue.metadata.namespace\"\n :disable-create=\"isView\"\n :mode=\"mode\"\n @update:sshKey=\"updateSSHKey\"\n />\n </div>\n </Tab>\n\n <Tab\n name=\"Volume\"\n :label=\"t('harvester.tab.volume')\"\n :weight=\"-1\"\n >\n <Volume\n v-model:value=\"diskRows\"\n :mode=\"mode\"\n :namespace=\"value.metadata.namespace\"\n :existing-volume-disabled=\"true\"\n />\n </Tab>\n\n <Tab\n name=\"Network\"\n :label=\"t('harvester.tab.network')\"\n :weight=\"-2\"\n >\n <Network\n v-model:value=\"networkRows\"\n :mode=\"mode\"\n />\n </Tab>\n\n <Tab\n name=\"nodeScheduling\"\n :label=\"t('workload.container.titles.nodeScheduling')\"\n :weight=\"-3\"\n >\n <template #default>\n <NodeScheduling\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :nodes=\"nodesIdOptions\"\n />\n </template>\n </Tab>\n\n <Tab\n :label=\"t('harvester.tab.vmScheduling')\"\n name=\"vmScheduling\"\n :weight=\"-4\"\n >\n <template #default>\n <PodAffinity\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :nodes=\"nodes\"\n :all-namespaces-option-available=\"true\"\n :namespaces=\"filteredNamespaces\"\n :overwrite-labels=\"affinityLabels\"\n />\n </template>\n </Tab>\n\n <Tab\n :name=\"t('generic.labels')\"\n :label=\"t('harvester.tab.instanceLabel')\"\n :weight=\"-5\"\n >\n <Labels\n :default-container-class=\"'labels-and-annotations-container'\"\n :value=\"value\"\n :mode=\"mode\"\n :display-side-by-side=\"false\"\n :show-annotations=\"false\"\n :show-label-title=\"false\"\n >\n <template #labels=\"{toggler}\">\n <KeyValue\n key=\"labels\"\n :value=\"value.instanceLabels\"\n :protected-keys=\"value.systemLabels || []\"\n :toggle-filter=\"toggler\"\n :add-label=\"t('labels.addLabel')\"\n :mode=\"mode\"\n :read-allowed=\"false\"\n :value-can-be-empty=\"true\"\n @input=\"value.setInstanceLabels($event)\"\n />\n </template>\n </Labels>\n </Tab>\n\n <Tab\n name=\"advanced\"\n :label=\"t('harvester.tab.advanced')\"\n :weight=\"-99\"\n >\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"runStrategy\"\n label-key=\"harvester.virtualMachine.runStrategy\"\n :options=\"runStrategies\"\n :mode=\"mode\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"osType\"\n label-key=\"harvester.virtualMachine.osType\"\n :mode=\"mode\"\n :options=\"OS\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"maintenanceStrategy\"\n label-key=\"harvester.virtualMachine.maintenanceStrategy.label\"\n :options=\"maintenanceStrategies\"\n :get-option-label=\"getMaintenanceStrategyOptionLabel\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <Reserved\n :reserved-memory=\"reservedMemory\"\n :mode=\"mode\"\n @updateReserved=\"updateReserved\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <a\n v-if=\"showAdvanced\"\n v-t=\"'harvester.generic.showMore'\"\n role=\"button\"\n @click=\"toggleAdvanced\"\n />\n <a\n v-else\n v-t=\"'harvester.generic.showMore'\"\n role=\"button\"\n @click=\"toggleAdvanced\"\n />\n </div>\n\n <div v-if=\"showAdvanced\">\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <UnitInput\n v-model:value=\"terminationGracePeriodSeconds\"\n :suffix=\"terminationGracePeriodSeconds == 1 ? 'Second' : 'Seconds'\"\n :label=\"t('harvester.virtualMachine.terminationGracePeriodSeconds.label')\"\n :mode=\"mode\"\n @change=\"updateTerminationGracePeriodSeconds\"\n />\n </div>\n </div>\n </div>\n\n <CloudConfig\n ref=\"yamlEditor\"\n :mode=\"mode\"\n :user-script=\"userScript\"\n :namespace=\"templateValue.metadata.namespace\"\n :network-script=\"networkScript\"\n @updateUserData=\"updateUserData\"\n @updateNetworkData=\"updateNetworkData\"\n />\n\n <div class=\"spacer\"></div>\n <Checkbox\n v-if=\"value.cpuPinningFeatureEnabled\"\n v-model:value=\"cpuPinning\"\n class=\"check\"\n type=\"checkbox\"\n tooltip-key=\"harvester.virtualMachine.cpuPinning.tooltip\"\n label-key=\"harvester.virtualMachine.cpuPinning.label\"\n :mode=\"mode\"\n />\n <Checkbox\n v-model:value=\"installUSBTablet\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.enableUsb')\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-model:value=\"installAgent\"\n class=\"check\"\n type=\"checkbox\"\n label-key=\"harvester.virtualMachine.installAgent\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-model:value=\"tpmEnabled\"\n class=\"check\"\n type=\"checkbox\"\n label-key=\"harvester.virtualMachine.advancedOptions.tpm\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-if=\"value.tpmPersistentStateFeatureEnabled && tpmEnabled\"\n v-model:value=\"tpmPersistentStateEnabled\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.advancedOptions.tpmPersistentState')\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-model:value=\"efiEnabled\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.advancedOptions.efiEnabled')\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-if=\"value.efiPersistentStateFeatureEnabled && efiEnabled\"\n v-model:value=\"efiPersistentStateEnabled\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.advancedOptions.efiPersistentState')\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-if=\"efiEnabled\"\n v-model:value=\"secureBoot\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.advancedOptions.secureBoot')\"\n :mode=\"mode\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n","import { render } from \"./harvesterhci.io.virtualmachinetemplateversion.vue?vue&type=template&id=3f98c6db\"\nimport script from \"./harvesterhci.io.virtualmachinetemplateversion.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.virtualmachinetemplateversion.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport Footer from '@shell/components/form/Footer';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { allHash } from '@shell/utils/promise';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { NAMESPACE } from '@shell/config/types';\nimport { sortBy } from '@shell/utils/sort';\nimport { clone } from '@shell/utils/object';\nimport { HCI } from '../types';\nimport { BACKUP_TYPE } from '../config/types';\n\nconst createObject = {\n apiVersion: 'harvesterhci.io/v1beta1',\n kind: 'VirtualMachineRestore',\n metadata: { name: '', namespace: '' },\n type: HCI.RESTORE,\n spec: {\n target: {\n apiGroup: 'kubevirt.io',\n kind: 'VirtualMachine',\n name: ''\n },\n virtualMachineBackupName: '',\n newVM: true,\n deletionPolicy: 'retain'\n }\n};\n\nexport default {\n name: 'CreateRestore',\n components: {\n Footer,\n RadioGroup,\n LabeledInput,\n LabeledSelect,\n },\n\n mixins: [CreateEditView],\n\n async fetch() {\n await allHash({\n backups: this.$store.dispatch('harvester/findAll', { type: HCI.BACKUP }),\n vms: this.$store.dispatch('harvester/findAll', { type: HCI.VM }),\n });\n },\n\n data() {\n const restoreMode = this.$route.query?.restoreMode;\n const snapshotName = this.$route.query?.resourceName;\n\n const restoreResource = clone(createObject);\n\n const restoreNewVm = restoreMode === 'new' || restoreMode === undefined;\n\n return {\n snapshotName,\n restoreNewVm,\n restoreResource,\n name: '',\n description: '',\n deletionPolicy: 'retain',\n namespace: ''\n };\n },\n\n computed: {\n snapshotOption() {\n const choices = this.$store.getters['harvester/all'](HCI.BACKUP);\n\n return choices.filter( (T) => {\n const hasVM = this.restoreNewVm || T.attachVmExisting;\n\n return hasVM && T?.status?.readyToUse && T.spec?.type === BACKUP_TYPE.SNAPSHOT;\n }).map( (T) => {\n return {\n label: T.metadata.name,\n value: T.metadata.name\n };\n });\n },\n\n deletionPolicyOption() {\n return [{\n value: 'retain',\n label: 'Retain'\n }];\n },\n\n currentBackupResource() {\n const name = this.snapshotName;\n\n const backupList = this.$store.getters['harvester/all'](HCI.BACKUP);\n\n return backupList.find( (O) => O.name === name);\n },\n\n disableExisting() {\n return !this.currentBackupResource?.attachVmExisting;\n },\n\n snapshotNamespace() {\n const backupList = this.$store.getters['harvester/all'](HCI.BACKUP);\n\n return backupList.find( (B) => B.metadata.name === this.snapshotName)?.metadata?.namespace;\n },\n\n namespaces() {\n const inStore = this.$store.getters['currentStore'](NAMESPACE);\n const choices = this.$store.getters[`${ inStore }/all`](NAMESPACE);\n const systemNamespaces = this.$store.getters['systemNamespaces'];\n\n const out = sortBy(\n choices.filter((N) => !systemNamespaces.includes(N.metadata.name)).map((obj) => {\n return {\n label: obj.nameDisplay,\n value: obj.id,\n };\n }),\n 'label'\n );\n\n return out;\n },\n },\n\n watch: {\n snapshotName: {\n handler(neu) {\n if (this.currentBackupResource) {\n if (!this.restoreNewVm) {\n this.name = this?.currentBackupResource?.attachVM;\n }\n }\n\n this.restoreResource.spec.virtualMachineBackupName = neu;\n },\n immediate: true\n },\n\n restoreNewVm(neu) {\n if (neu) {\n this.name = '';\n } else {\n this.name = this?.currentBackupResource?.attachVM;\n }\n },\n\n snapshotNamespace: {\n handler(neu) {\n this.namespace = neu;\n },\n immediate: true\n }\n },\n\n methods: {\n cancelAction() {\n this.$router.go(-1);\n },\n async saveRestore(buttonCb) {\n this.update();\n\n const proxyResource = await this.$store.dispatch('harvester/create', this.restoreResource);\n\n proxyResource.metadata.namespace = this.namespace;\n proxyResource.spec.virtualMachineBackupNamespace = this.snapshotNamespace;\n\n try {\n await proxyResource.save();\n buttonCb(true);\n\n this.$router.push({\n name: this.doneRoute,\n params: { resource: HCI.VM }\n });\n } catch (err) {\n this.errors = exceptionToErrorsArray(err) || err;\n buttonCb(false);\n }\n },\n\n update() {\n this.restoreResource.metadata.generateName = `restore-${ this.snapshotName }-`;\n if (this.name) {\n this.restoreResource.spec.target.name = this.name;\n }\n\n if (this.restoreNewVm) {\n delete this.restoreResource.spec.deletionPolicy;\n this.restoreResource.spec.newVM = true;\n } else {\n this.restoreResource.spec.deletionPolicy = this.deletionPolicy;\n delete this.restoreResource.spec.newVM;\n }\n }\n },\n\n componentTitle() {\n return 'restoreVM';\n }\n};\n</script>\n\n<template>\n <div id=\"restore\">\n <div class=\"content\">\n <div class=\"mb-20\">\n <RadioGroup\n v-model:value=\"restoreNewVm\"\n name=\"model\"\n :options=\"[true,false]\"\n :labels=\"[t('harvester.backup.restore.createNew'), t('harvester.backup.restore.replaceExisting')]\"\n :disabled=\"disableExisting\"\n :mode=\"mode\"\n />\n </div>\n\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"namespace\"\n :disabled=\"true\"\n :label=\"t('nameNsDescription.namespace.label')\"\n :options=\"namespaces\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"name\"\n :disabled=\"!restoreNewVm\"\n :label=\"t('harvester.backup.restore.virtualMachineName')\"\n :placeholder=\"t('nameNsDescription.name.placeholder')\"\n class=\"mb-20\"\n />\n </div>\n </div>\n\n <LabeledSelect\n v-model:value=\"snapshotName\"\n class=\"mb-20\"\n :label=\"t('harvester.vmSnapshot.snapshot')\"\n :options=\"snapshotOption\"\n />\n\n <LabeledSelect\n v-if=\"!restoreNewVm\"\n v-model:value=\"deletionPolicy\"\n :label=\"t('harvester.backup.restore.deletePreviousVolumes')\"\n :options=\"deletionPolicyOption\"\n />\n </div>\n\n <Footer\n mode=\"create\"\n class=\"footer\"\n :errors=\"errors\"\n @save=\"saveRestore\"\n @done=\"cancelAction\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n#restore {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n\n :deep() .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n\n .content {\n flex-grow: 1\n }\n\n .footer {\n border-top: var(--header-border-size) solid var(--header-border);\n\n // Overrides outlet padding\n margin-left: -$space-m;\n margin-right: -$space-m;\n margin-bottom: -$space-m;\n padding: $space-s $space-m;\n\n :deep() .spacer-small {\n padding: 0px;\n }\n }\n}\n</style>\n","import { render } from \"./harvesterhci.io.vmsnapshot.vue?vue&type=template&id=6c93c587&scoped=true\"\nimport script from \"./harvesterhci.io.vmsnapshot.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.vmsnapshot.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.vmsnapshot.vue?vue&type=style&index=0&id=6c93c587&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6c93c587\"]])\n\nexport default __exports__","<script>\nimport Tab from '@shell/components/Tabbed/Tab';\nimport SortableTable from '@shell/components/SortableTable';\nimport CruResource from '@shell/components/CruResource';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { Banner } from '@components/Banner';\nimport { allHash } from '@shell/utils/promise';\nimport { get } from '@shell/utils/object';\nimport { STORAGE_CLASS, LONGHORN, PV } from '@shell/config/types';\nimport { sortBy } from '@shell/utils/sort';\nimport { saferDump } from '@shell/utils/create-yaml';\nimport { _CREATE, _EDIT } from '@shell/config/query-params';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { STATE, NAME, AGE, NAMESPACE } from '@shell/config/table-headers';\nimport { InterfaceOption, VOLUME_DATA_SOURCE_KIND } from '../config/harvester-map';\nimport { HCI, VOLUME_SNAPSHOT } from '../types';\nimport { LVM_DRIVER } from '../models/harvester/storage.k8s.io.storageclass';\nimport { DATA_ENGINE_V2 } from '../models/harvester/persistentvolumeclaim';\n\nexport default {\n name: 'HarvesterVolume',\n\n emits: ['update:value'],\n\n components: {\n Banner,\n Tab,\n UnitInput,\n CruResource,\n SortableTable,\n ResourceTabs,\n LabeledSelect,\n LabeledInput,\n NameNsDescription,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {\n images: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.IMAGE }),\n snapshots: this.$store.dispatch(`${ inStore }/findAll`, { type: VOLUME_SNAPSHOT }),\n storages: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }),\n pvs: this.$store.dispatch(`${ inStore }/findAll`, { type: PV }),\n };\n\n if (this.$store.getters[`${ inStore }/schemaFor`](LONGHORN.VOLUMES)) {\n _hash.longhornVolumes = this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.VOLUMES });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](LONGHORN.ENGINES)) {\n _hash.longhornEngines = this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.ENGINES });\n }\n\n const hash = await allHash(_hash);\n\n this.snapshots = hash.snapshots;\n this.images = hash.images;\n\n const defaultStorage = this.$store.getters[`harvester/all`](STORAGE_CLASS).find( (O) => O.isDefault);\n\n this.value.spec['storageClassName'] = this.value?.spec?.storageClassName || defaultStorage?.metadata?.name || 'longhorn';\n },\n\n data() {\n if (this.mode === _CREATE) {\n this.value.spec.volumeMode = 'Block';\n this.value.spec.accessModes = ['ReadWriteMany'];\n }\n\n const storage = this.value?.spec?.resources?.requests?.storage || null;\n const imageId = get(this.value, `metadata.annotations.\"${ HCI_ANNOTATIONS.IMAGE_ID }\"`);\n const source = !imageId ? 'blank' : 'url';\n\n return {\n source,\n storage,\n imageId,\n snapshots: [],\n images: [],\n };\n },\n\n created() {\n this.registerBeforeHook(this.willSave, 'willSave');\n },\n\n computed: {\n isBlank() {\n return this.source === 'blank';\n },\n\n isEdit() {\n return this.mode === _EDIT;\n },\n\n isVMImage() {\n return this.source === 'url';\n },\n\n longhornV2LVMSupport() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('longhornV2LVMSupport');\n },\n\n sourceOption() {\n return [{\n value: 'blank',\n label: this.t('harvester.volume.sourceOptions.new')\n }, {\n value: 'url',\n label: this.t('harvester.volume.sourceOptions.vmImage')\n }];\n },\n\n interfaceOption() {\n return InterfaceOption;\n },\n\n imageOption() {\n return sortBy(\n this.images\n .filter((obj) => obj.isReady)\n .map((obj) => {\n return {\n label: `${ obj.metadata.namespace }/${ obj.spec.displayName }`,\n value: obj.id\n };\n }),\n 'label'\n );\n },\n\n snapshotHeaders() {\n return [\n STATE,\n NAME,\n NAMESPACE,\n {\n name: 'size',\n labelKey: 'tableHeaders.size',\n value: 'status.restoreSize',\n sort: 'size',\n formatter: 'Si',\n formatterOpts: {\n opts: {\n increment: 1024, addSuffix: true, maxExponent: 3, minExponent: 3, suffix: 'i',\n },\n needParseSi: true\n },\n },\n {\n name: 'readyToUse',\n labelKey: 'tableHeaders.readyToUse',\n value: 'status.readyToUse',\n align: 'left',\n formatter: 'Checked',\n },\n AGE\n ];\n },\n\n dataSourceKind() {\n return VOLUME_DATA_SOURCE_KIND[this.value.spec?.dataSource?.kind];\n },\n\n storageClasses() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/all`](STORAGE_CLASS);\n },\n\n storageClassOptions() {\n return this.storageClasses.filter((s) => !s.parameters?.backingImage).map((s) => {\n const label = s.isDefault ? `${ s.name } (${ this.t('generic.default') })` : s.name;\n\n return {\n label,\n value: s.name,\n };\n }) || [];\n },\n\n frontend() {\n return this.value.longhornVolume?.spec?.frontend;\n },\n\n frontendDisplay() {\n const format = ['blockdev'];\n\n if (format.includes(this.frontend)) {\n return this.t(`harvester.volume.${ this.frontend }`);\n }\n\n return this.frontend;\n },\n\n attachedNode() {\n return this.value.longhornVolume?.spec?.nodeID;\n },\n\n endpoint() {\n return this.value.longhornEngine?.status?.endpoint;\n },\n\n diskTags() {\n return this.value.longhornVolume?.spec?.diskSelector;\n },\n\n nodeTags() {\n return this.value.longhornVolume?.spec?.nodeSelector;\n },\n\n replicasNumber() {\n return this.value.longhornVolume?.spec?.numberOfReplicas;\n },\n\n lastBackup() {\n return this.value.longhornVolume?.status?.lastBackup;\n },\n\n lastBackupAt() {\n return this.value.longhornVolume?.status?.lastBackupAt;\n },\n\n rebuildStatus() {\n return this.value.longhornEngine?.status?.rebuildStatus;\n }\n },\n\n methods: {\n getAccessMode() {\n if (!this.longhornV2LVMSupport) {\n return ['ReadWriteMany'];\n }\n\n const storageClassName = this.value.spec.storageClassName;\n const storageClass = this.storageClasses.find((sc) => sc.name === storageClassName);\n\n let readWriteOnce = this.value.isLvm || this.value.isLonghornV2;\n\n if (storageClass) {\n readWriteOnce = storageClass.provisioner === LVM_DRIVER || storageClass.parameters?.dataEngine === DATA_ENGINE_V2;\n }\n\n return readWriteOnce ? ['ReadWriteOnce'] : ['ReadWriteMany'];\n },\n willSave() {\n this.update();\n },\n update() {\n let imageAnnotations = '';\n let storageClassName = this.value.spec.storageClassName;\n\n if (this.isVMImage && this.imageId) {\n const images = this.$store.getters['harvester/all'](HCI.IMAGE);\n\n imageAnnotations = {\n ...this.value.metadata.annotations,\n [HCI_ANNOTATIONS.IMAGE_ID]: this.imageId\n };\n storageClassName = images?.find((image) => this.imageId === image.id)?.storageClassName;\n } else {\n imageAnnotations = { ...this.value.metadata.annotations };\n }\n\n const spec = {\n ...this.value.spec,\n resources: { requests: { storage: this.storage } },\n storageClassName,\n accessModes: this.getAccessMode(),\n };\n\n this.value.setAnnotations(imageAnnotations);\n\n this.value['spec'] = spec;\n },\n updateImage() {\n if (this.isVMImage && this.imageId) {\n const imageResource = this.images?.find((image) => this.imageId === image.id);\n const imageSize = Math.max(imageResource?.status?.size, imageResource?.status?.virtualSize);\n\n if (imageSize) {\n this.storage = `${ Math.ceil(imageSize / 1024 / 1024 / 1024) }Gi`;\n }\n }\n this.update();\n },\n generateYaml() {\n const out = saferDump(this.value);\n\n return out;\n },\n }\n};\n</script>\n\n<template>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n :generate-yaml=\"generateYaml\"\n :apply-hooks=\"applyHooks\"\n @finish=\"save\"\n >\n <NameNsDescription\n :value=\"value\"\n :namespaced=\"true\"\n :mode=\"mode\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <ResourceTabs\n v-model:value=\"value\"\n class=\"mt-15\"\n :need-conditions=\"false\"\n :need-related=\"false\"\n :side-tabs=\"true\"\n :mode=\"mode\"\n >\n <Tab\n name=\"basic\"\n :label=\"t('harvester.volume.tabs.basics')\"\n :weight=\"3\"\n class=\"bordered-table\"\n >\n <LabeledSelect\n v-model:value=\"source\"\n :label=\"t('harvester.volume.source')\"\n :options=\"sourceOption\"\n :disabled=\"!isCreate\"\n required\n :mode=\"mode\"\n class=\"mb-20\"\n @update:value=\"update\"\n />\n\n <LabeledSelect\n v-if=\"isVMImage\"\n v-model:value=\"imageId\"\n :label=\"t('harvester.volume.image')\"\n :options=\"imageOption\"\n :disabled=\"!isCreate\"\n required\n :mode=\"mode\"\n class=\"mb-20\"\n @update:value=\"updateImage\"\n />\n\n <LabeledSelect\n v-if=\"source === 'blank'\"\n v-model:value=\"value.spec.storageClassName\"\n :options=\"storageClassOptions\"\n :label=\"t('harvester.storage.storageClass.label')\"\n :mode=\"mode\"\n class=\"mb-20\"\n :disabled=\"!isCreate\"\n @update:value=\"update\"\n />\n\n <UnitInput\n v-model:value=\"storage\"\n :label=\"t('harvester.volume.size')\"\n :input-exponent=\"3\"\n :output-modifier=\"true\"\n :increment=\"1024\"\n :mode=\"mode\"\n :disabled=\"value?.isLonghornV2 && isEdit\"\n required\n class=\"mb-20\"\n @update:value=\"update\"\n />\n\n <Banner\n v-if=\"value?.isLonghornV2 && isEdit\"\n color=\"warning\"\n >\n <span>{{ t('harvester.volume.longhorn.disableResize') }}</span>\n </Banner>\n </Tab>\n <Tab\n v-if=\"!isCreate\"\n name=\"details\"\n :label=\"t('harvester.volume.tabs.details')\"\n :weight=\"2.5\"\n class=\"bordered-table\"\n >\n <LabeledInput\n v-model:value=\"frontendDisplay\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disabled=\"true\"\n :label=\"t('harvester.volume.frontend')\"\n />\n <LabeledInput\n v-model:value=\"attachedNode\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disabled=\"true\"\n :label=\"t('harvester.volume.attachedNode')\"\n />\n <LabeledInput\n v-model:value=\"endpoint\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disabled=\"true\"\n :label=\"t('harvester.volume.endpoint')\"\n />\n <LabeledSelect\n v-model:value=\"diskTags\"\n :multiple=\"true\"\n :label=\"t('harvester.volume.diskTags')\"\n :options=\"[]\"\n :disabled=\"true\"\n :mode=\"mode\"\n class=\"mb-20\"\n />\n <LabeledSelect\n v-model:value=\"nodeTags\"\n :multiple=\"true\"\n :label=\"t('harvester.volume.nodeTags')\"\n :options=\"[]\"\n :disabled=\"true\"\n :mode=\"mode\"\n class=\"mb-20\"\n />\n <LabeledInput\n v-model:value=\"lastBackup\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disabled=\"true\"\n :label=\"t('harvester.volume.lastBackup')\"\n />\n <LabeledInput\n v-model:value=\"lastBackupAt\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disabled=\"true\"\n :label=\"t('harvester.volume.lastBackupAt')\"\n />\n <LabeledInput\n v-model:value=\"replicasNumber\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disabled=\"true\"\n :label=\"t('harvester.volume.replicasNumber')\"\n />\n </Tab>\n <Tab\n v-if=\"!isCreate\"\n name=\"instances\"\n :label=\"t('harvester.volume.tabs.snapshots')\"\n :weight=\"2\"\n class=\"bordered-table\"\n >\n <SortableTable\n v-bind=\"$attrs\"\n :headers=\"snapshotHeaders\"\n default-sort-by=\"age\"\n :rows=\"value.relatedVolumeSnapshotCounts\"\n key-field=\"_key\"\n />\n </Tab>\n <Tab\n v-if=\"!isCreate && value.spec.dataSource\"\n name=\"datasource\"\n :label=\"t('harvester.volume.tabs.datasource')\"\n :weight=\"1\"\n class=\"bordered-table\"\n >\n <LabeledInput\n v-model:value=\"dataSourceKind\"\n class=\"mb-20\"\n :mode=\"mode\"\n :disabled=\"true\"\n :label=\"t('harvester.volume.kind')\"\n />\n <LabeledInput\n v-model:value=\"value.spec.dataSource.name\"\n :mode=\"mode\"\n :disabled=\"true\"\n :label=\"t('nameNsDescription.name.label')\"\n />\n </Tab>\n </ResourceTabs>\n </CruResource>\n</template>\n","import { render } from \"./harvesterhci.io.volume.vue?vue&type=template&id=cd80f1a8\"\nimport script from \"./harvesterhci.io.volume.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.volume.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CruResource from '@shell/components/CruResource';\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { get } from '@shell/utils/object';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { HCI as HCI_ANNOTATIONS } from '@shell/config/labels-annotations';\nimport { HCI } from '../types';\n\nexport default {\n name: 'HarvesterSnapshot',\n\n emits: ['update:value'],\n\n components: {\n LabeledInput,\n Tab,\n ResourceTabs,\n CruResource,\n NameNsDescription,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n computed: {\n volume() {\n return this.volumes.find((V) => {\n return V.metadata.name === this.targetVolume;\n });\n },\n\n size() {\n return this.value?.status?.restoreSize;\n },\n\n isImageVolume() {\n return !!get(this.value, `metadata.annotations.\"${ HCI_ANNOTATIONS.IMAGE_ID }\"`);\n },\n\n imageName() {\n const image = this.$store.getters['harvester/all'](HCI.IMAGE).find((I) => {\n return I.id === get(this.value, `metadata.annotations.\"${ HCI_ANNOTATIONS.IMAGE_ID }\"`);\n });\n\n return image?.spec?.displayName;\n },\n\n targetVolume() {\n return this.value?.spec?.source?.persistentVolumeClaimName;\n },\n },\n};\n</script>\n<template>\n <div>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n @finish=\"save\"\n >\n <NameNsDescription\n :value=\"value\"\n :namespaced=\"true\"\n :mode=\"mode\"\n @update:value=\"$emit('update:value', $event)\"\n />\n <ResourceTabs\n v-model:value=\"value\"\n class=\"mt-15\"\n :need-conditions=\"false\"\n :need-related=\"false\"\n :side-tabs=\"true\"\n :mode=\"mode\"\n >\n <Tab\n name=\"basics\"\n :label=\"t('harvester.virtualMachine.detail.tabs.basics')\"\n class=\"bordered-table\"\n >\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"size\"\n :label=\"t('harvester.snapshot.size')\"\n class=\"mt-20\"\n :disabled=\"true\"\n />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"targetVolume\"\n :label=\"t('harvester.snapshot.targetVolume')\"\n class=\"mt-20\"\n :disabled=\"true\"\n />\n </div>\n </div>\n <div\n v-if=\"isImageVolume\"\n class=\"row\"\n >\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"imageName\"\n :label=\"t('harvester.snapshot.image')\"\n class=\"mt-20\"\n :disabled=\"true\"\n />\n </div>\n </div>\n </Tab>\n </ResourceTabs>\n </CruResource>\n </div>\n</template>\n","import { render } from \"./harvesterhci.io.volumesnapshot.vue?vue&type=template&id=0aa058ab\"\nimport script from \"./harvesterhci.io.volumesnapshot.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.volumesnapshot.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nexport default {\n props: {\n /**\n * deviceId/vendorId is unique per type of device - there may be multiple CRD objects for a given device\n * {\n * [deviceId/vendorId]: {\n * nodes: array of devicecrd.status.nodeName's for given device,\n * deviceCRDs: array of all instances of given device\n * }\n * }\n */\n enabledDevices: {\n type: Array,\n required: true\n },\n /**\n * {\n * [node name]: [devices]\n * }\n */\n devicesByNode: {\n type: Object,\n required: true\n },\n\n /**\n * {\n * [deviceCRD.status.resourceName]: {\n * count: number of this device in use by other vms\n * usedBy: [names of all vms using this device]\n * }\n * }\n */\n\n devicesInUse: {\n type: Object,\n default: () => {}\n }\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n allNodeNames() {\n return Object.keys(this.devicesByNode);\n },\n\n allDeviceIds() {\n return Object.keys(this.uniqueDevices);\n }\n },\n\n methods: {\n nodeNameFromId(id) {\n return this.devicesByNode[id]?.name;\n },\n\n nodeHasDevice(nodeName, deviceCRD) {\n return deviceCRD.status.nodeName === nodeName;\n },\n\n noneAvailable(deviceCRD) {\n const name = deviceCRD.metadata?.name;\n\n return !!this.devicesInUse[name];\n },\n\n deviceTooltip(deviceCRD) {\n return `${ deviceCRD?.status?.resourceName }<br/>${ deviceCRD?.status?.description }`;\n }\n }\n};\n</script>\n\n<template>\n <div class=\"compat-matrix\">\n <div class=\"device-col node-names\">\n <div class=\"blank-corner\">\n <div class=\"text-right\">\n {{ t('harvester.devices.matrixDeviceClaimName') }}\n </div>\n <div>{{ t('harvester.devices.matrixHostName') }}</div>\n </div>\n <div\n v-for=\"(nodeName, i) in allNodeNames\"\n :key=\"i\"\n >\n <span> {{ nodeName }}</span>\n </div>\n </div>\n <div\n v-for=\"(deviceCRD, i) in enabledDevices\"\n :key=\"i\"\n >\n <div\n v-clean-tooltip=\"deviceTooltip(deviceCRD)\"\n class=\"compat-cell device-label\"\n :class=\"{'text-muted': noneAvailable(deviceCRD)}\"\n >\n {{ deviceCRD.metadata.name }}\n </div>\n <div\n v-for=\"(nodeName, k) in allNodeNames\"\n :key=\"k\"\n class=\"compat-cell\"\n :class=\"{'has-device': nodeHasDevice(nodeName, deviceCRD)}\"\n />\n </div>\n </div>\n</template>\n\n<style lang='scss'>\n.compat-matrix {\n display: flex;\n}\n\n.device-col {\n display: flex;\n flex-direction: column;\n\n border-right: 1px solid var(--border);\n\n &>*{\n border-bottom: 1px solid var(--border);\n }\n}\n\n.compat-cell {\n flex-basis: 1em;\n padding: 0px 10px 0px 10px;\n\n &.has-device {\n background-color: var(--info-banner-bg);\n }\n}\n\n.node-label, .device-label {\n display: flex;\n align-items: center;\n color: var(--input-label);\n}\n\n.node-label{\n padding: 0 10px;\n justify-content: center;\n}\n\n.node-label, .device-label, .compat-cell, .blank-corner {\n flex-basis: calc(2em + 10px);\n}\n\n.blank-corner {\n background: linear-gradient(\n to top right,\n #fff 0%,\n #fff calc(50% - 1px),\n var(--body-text) 50%,\n #fff calc(50% + 1px),\n #fff 100%\n );\n\n DIV.text-right {\n padding-left: 80px;\n }\n}\n</style>\n","import { render } from \"./CompatibilityMatrix.vue?vue&type=template&id=3ec20e2a\"\nimport script from \"./CompatibilityMatrix.vue?vue&type=script&lang=js\"\nexport * from \"./CompatibilityMatrix.vue?vue&type=script&lang=js\"\n\nimport \"./CompatibilityMatrix.vue?vue&type=style&index=0&id=3ec20e2a&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { _EDIT } from '@shell/config/query-params';\nimport { allHash } from '@shell/utils/promise';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport Banner from '@components/Banner/Banner.vue';\nimport remove from 'lodash/remove';\nimport { set } from '@shell/utils/object';\nimport { HCI } from '../../../types';\nimport DeviceList from './DeviceList';\nimport CompatibilityMatrix from '../CompatibilityMatrix';\n\nexport default {\n name: 'VirtualMachinePCIDevices',\n components: {\n LabeledSelect,\n DeviceList,\n CompatibilityMatrix,\n Banner\n },\n props: {\n mode: {\n type: String,\n default: _EDIT\n },\n // spec.template.spec\n value: {\n type: Object,\n default: () => {}\n },\n\n vm: {\n type: Object,\n default: () => {}\n }\n },\n\n async fetch() {\n const hash = {\n // claims fetched here so synchronous pciDevice model property works\n pciDevices: this.$store.dispatch('harvester/findAll', { type: HCI.PCI_DEVICE }),\n claims: this.$store.dispatch('harvester/findAll', { type: HCI.PCI_CLAIM }),\n vms: this.$store.dispatch(`harvester/findAll`, { type: HCI.VM })\n\n };\n\n const res = await allHash(hash);\n\n for (const key in res) {\n this[key] = res[key];\n }\n\n const selectedDevices = [];\n const oldFormatDevices = [];\n\n const vmDevices = this.value?.domain?.devices?.hostDevices || [];\n const otherDevices = this.otherDevices(vmDevices).map(({ name }) => name);\n\n vmDevices.forEach(({ name, deviceName }) => {\n const checkName = (deviceName || '').split('/')?.[1];\n\n if (checkName && name.includes(checkName) && !otherDevices.includes(name)) {\n oldFormatDevices.push(name);\n } else if (this.enabledDevices.find((device) => device?.metadata?.name === name)) {\n selectedDevices.push(name);\n }\n });\n\n if (oldFormatDevices.length > 0) {\n this.oldFormatDevices = oldFormatDevices;\n } else {\n this.selectedDevices = selectedDevices;\n }\n },\n\n data() {\n return {\n pciDevices: [],\n claims: [],\n vms: [],\n selectedDevices: [],\n pciDeviceSchema: this.$store.getters['harvester/schemaFor'](HCI.PCI_DEVICE),\n showMatrix: false,\n oldFormatDevices: [],\n };\n },\n\n watch: {\n selectedDevices(neu) {\n const formatted = neu.map((selectedDevice) => {\n const deviceCRD = this.enabledDevices.find((device) => device.metadata.name === selectedDevice);\n const deviceName = deviceCRD?.status?.resourceName;\n\n return {\n deviceName,\n name: deviceCRD?.metadata.name,\n };\n });\n\n const devices = [\n ...this.otherDevices(this.value.domain.devices.hostDevices || []),\n ...formatted,\n ];\n\n set(this.value.domain.devices, 'hostDevices', devices);\n }\n },\n\n computed: {\n // user can only select devices for whcih pci passthrough is enabled/claimed by them - determined by finding the associated passthrough CRD\n enabledDevices() {\n return this.pciDevices.filter((device) => {\n return device.isEnabled && device.claimedByMe;\n }) || [];\n },\n\n // find devices in use by other VMs and sum the number of each device already in use\n devicesInUse() {\n const inUse = this.vms.reduce((inUse, vm) => {\n // dont count devices in this vm as 'disabled' if they're just being used in the vm currently being edited\n if (vm.metadata.name === this.vm?.metadata?.name) {\n return inUse;\n }\n\n vm.hostDevices.forEach((device) => {\n inUse[device.name] = { usedBy: [vm.metadata.name] };\n });\n\n return inUse;\n }, {});\n\n return inUse;\n },\n\n devicesByNode() {\n return this.enabledDevices?.reduce((acc, device) => {\n const nodeName = device.status?.nodeName;\n\n if (nodeName) {\n if (!acc[nodeName]) {\n acc[nodeName] = [];\n } else {\n acc[nodeName].push(device);\n }\n }\n\n return acc;\n }, {});\n },\n\n // determine which nodes contain all devices selected\n compatibleNodes() {\n const out = [...Object.keys(this.devicesByNode)];\n\n this.selectedDevices.forEach((deviceUid) => {\n remove(out, (nodeName) => {\n const device = this.enabledDevices.find((deviceCRD) => deviceCRD.metadata.name === deviceUid);\n\n return device.status.nodeName !== nodeName;\n });\n });\n\n return out;\n },\n\n // format an array of available devices for the dropdown\n deviceOpts() {\n const filteredOptions = this.enabledDevices.filter((deviceCRD) => {\n if (this.selectedDevices.length > 0) {\n const selectedDevice = this.enabledDevices.find((device) => device.metadata.name === this.selectedDevices[0]);\n\n return !this.devicesInUse[deviceCRD?.metadata.name] && deviceCRD.status.nodeName === selectedDevice.status.nodeName;\n }\n\n return !this.devicesInUse[deviceCRD?.metadata.name];\n });\n\n return filteredOptions.map((deviceCRD) => {\n return {\n value: deviceCRD?.metadata.name,\n label: deviceCRD?.metadata.name,\n displayLabel: deviceCRD?.status?.resourceName,\n };\n });\n },\n\n oldFormatDevicesHTML() {\n return this.oldFormatDevices.map((device) => {\n return `<li>${ device }</li>`;\n }).join('');\n },\n },\n\n methods: {\n otherDevices(vmDevices) {\n return vmDevices.filter((device) => !this.pciDevices.find((pci) => device.name === pci.name));\n },\n\n nodeNameFromUid(uid) {\n for (const deviceUid in this.uniqueDevices) {\n const nodes = this.uniqueDevices[deviceUid].nodes;\n const thisNode = nodes.find((node) => node.systemUUID === uid);\n\n if (thisNode) {\n return thisNode.name;\n }\n }\n },\n }\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"oldFormatDevices.length > 0\"\n class=\"row\"\n >\n <div class=\"col span-12\">\n <Banner color=\"warning\">\n <p v-clean-html=\"t('harvester.pci.oldFormatDevices.help', {oldFormatDevicesHTML}, true)\" />\n </Banner>\n </div>\n </div>\n <div v-else>\n <div class=\"row\">\n <div class=\"col span-12\">\n <Banner color=\"info\">\n <t k=\"harvester.pci.howToUseDevice\" />\n </Banner>\n <Banner\n v-if=\"selectedDevices.length > 0\"\n color=\"info\"\n >\n <t k=\"harvester.pci.deviceInTheSameHost\" />\n </Banner>\n </div>\n </div>\n <template v-if=\"enabledDevices.length\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"selectedDevices\"\n label=\"Available PCI Devices\"\n searchable\n multiple\n taggable\n :options=\"deviceOpts\"\n :mode=\"mode\"\n >\n <template #option=\"option\">\n <span>{{ option.value }} <span class=\"text-label\">({{ option.displayLabel }})</span></span>\n </template>\n </LabeledSelect>\n </div>\n </div>\n <div\n v-if=\"compatibleNodes.length && selectedDevices.length\"\n class=\"row\"\n >\n <div class=\"col span-12 text-muted\">\n Compatible hosts:\n <!-- eslint-disable-next-line vue/no-parsing-error -->\n <span\n v-for=\"(node, idx) in compatibleNodes\"\n :key=\"idx\"\n >{{ node }}{{ idx < compatibleNodes.length-1 ? ', ' : '' }}</span>\n </div>\n </div>\n <div\n v-else-if=\"selectedDevices.length\"\n class=\"text-error\"\n >\n {{ t('harvester.pci.impossibleSelection') }}\n </div>\n <button\n type=\"button\"\n class=\"btn btn-sm role-link pl-0\"\n @click=\"e=>{showMatrix = !showMatrix; e.target.blur()}\"\n >\n {{ showMatrix ? t('harvester.pci.hideCompatibility') : t('harvester.pci.showCompatibility') }}\n </button>\n <div\n v-if=\"showMatrix\"\n class=\"row mt-20\"\n >\n <div class=\"col span-12\">\n <CompatibilityMatrix\n :enabled-devices=\"enabledDevices\"\n :devices-by-node=\"devicesByNode\"\n :devices-in-use=\"devicesInUse\"\n />\n </div>\n </div>\n </template>\n <div class=\"row mt-20\">\n <div class=\"col span-12\">\n <DeviceList\n :schema=\"pciDeviceSchema\"\n :devices=\"pciDevices\"\n @submit.prevent\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=7f34f732\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport UnitInput from '@shell/components/form/UnitInput';\n\nexport default {\n name: 'HarvesterReserved',\n\n emits: ['updateReserved'],\n\n components: { UnitInput },\n\n props: {\n reservedMemory: {\n type: String,\n default: null\n },\n mode: {\n type: String,\n default: 'create',\n },\n },\n\n data() {\n return { memory: this.reservedMemory };\n },\n\n watch: {\n reservedMemory(memory) {\n this.memory = memory;\n },\n },\n\n methods: {\n change() {\n const { memory } = this;\n\n this.$emit('updateReserved', { memory });\n },\n }\n};\n</script>\n\n<template>\n <UnitInput\n v-model:value=\"memory\"\n :label=\"t('harvester.virtualMachine.input.reservedMemory')\"\n :mode=\"mode\"\n :input-exponent=\"2\"\n :increment=\"1024\"\n :output-modifier=\"true\"\n @update:value=\"change\"\n />\n</template>\n","import { render } from \"./VirtualMachineReserved.vue?vue&type=template&id=7f300fc7\"\nimport script from \"./VirtualMachineReserved.vue?vue&type=script&lang=js\"\nexport * from \"./VirtualMachineReserved.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { _EDIT } from '@shell/config/query-params';\nimport { allHash } from '@shell/utils/promise';\nimport { HCI } from '../../../types';\nimport { STATE, SIMPLE_NAME } from '@shell/config/table-headers';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport Banner from '@components/Banner/Banner.vue';\nimport CompatibilityMatrix from '../CompatibilityMatrix';\nimport DeviceList from './DeviceList';\n\nimport remove from 'lodash/remove';\nimport { set } from '@shell/utils/object';\n\nexport default {\n name: 'VirtualMachineUSBDevices',\n components: {\n Banner,\n CompatibilityMatrix,\n DeviceList,\n LabeledSelect,\n },\n props: {\n mode: {\n type: String,\n default: _EDIT\n },\n\n value: {\n type: Object,\n default: () => {}\n },\n\n vm: {\n type: Object,\n default: () => {}\n }\n },\n\n async fetch() {\n const hash = {\n devices: this.$store.dispatch('harvester/findAll', { type: HCI.USB_DEVICE }),\n vms: this.$store.dispatch(`harvester/findAll`, { type: HCI.VM })\n };\n\n const res = await allHash(hash);\n\n for (const key in res) {\n this[key] = res[key];\n }\n\n this.selectedDevices = (this.value?.domain?.devices?.hostDevices || [])\n .map(({ name }) => name)\n .filter((name) => this.enabledDevices.find((device) => device?.metadata?.name === name));\n },\n\n data() {\n return {\n deviceSchema: this.$store.getters['harvester/schemaFor'](HCI.USB_DEVICE),\n deviceHeaders: [\n { ...STATE },\n SIMPLE_NAME,\n ],\n devices: [],\n vms: [],\n selectedDevices: [],\n showMatrix: false,\n };\n },\n\n watch: {\n selectedDevices(neu) {\n const formatted = neu.map((selectedDevice) => {\n const deviceCRD = this.enabledDevices.find((device) => device.metadata.name === selectedDevice);\n const deviceName = deviceCRD?.status?.resourceName;\n\n return {\n deviceName,\n name: deviceCRD?.metadata.name,\n };\n });\n\n const devices = [\n ...this.otherDevices(this.value.domain.devices.hostDevices || []),\n ...formatted,\n ];\n\n set(this.value.domain.devices, 'hostDevices', devices);\n }\n },\n\n computed: {\n deviceOpts() {\n const filteredOptions = this.enabledDevices.filter((deviceCRD) => {\n if (this.selectedDevices.length > 0) {\n const selectedDevice = this.enabledDevices.find((device) => device.metadata.name === this.selectedDevices[0]);\n\n return !this.devicesInUse[deviceCRD?.metadata.name] && deviceCRD.status.nodeName === selectedDevice?.status.nodeName;\n }\n\n return !this.devicesInUse[deviceCRD?.metadata.name];\n });\n\n return filteredOptions.map((deviceCRD) => {\n return {\n value: deviceCRD?.metadata.name,\n label: deviceCRD?.metadata.name,\n displayLabel: deviceCRD?.status?.description,\n };\n });\n },\n\n enabledDevices() {\n return this.devices.filter((device) => {\n return device.status.enabled;\n });\n },\n\n devicesInUse() {\n const inUse = this.vms.reduce((inUse, vm) => {\n if (vm.metadata.name === this.vm?.metadata?.name) {\n return inUse;\n }\n\n vm.hostDevices.forEach((device) => {\n inUse[device.name] = { usedBy: [vm.metadata.name] };\n });\n\n return inUse;\n }, {});\n\n return inUse;\n },\n\n devicesByNode() {\n return this.enabledDevices?.reduce((acc, device) => {\n const nodeName = device.status?.nodeName;\n\n if (nodeName) {\n if (!acc[nodeName]) {\n acc[nodeName] = [];\n } else {\n acc[nodeName].push(device);\n }\n }\n\n return acc;\n }, {});\n },\n\n compatibleNodes() {\n const out = [...Object.keys(this.devicesByNode)];\n\n this.selectedDevices.forEach((deviceUid) => {\n remove(out, (nodeName) => {\n const device = this.enabledDevices.find((deviceCRD) => deviceCRD.metadata.name === deviceUid);\n\n return device?.status.nodeName !== nodeName;\n });\n });\n\n return out;\n },\n },\n\n methods: {\n otherDevices(vmDevices) {\n return vmDevices.filter((device) => !this.devices.find((usb) => device.name === usb.name));\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <Banner color=\"info\">\n <t k=\"harvester.usb.howToUseDevice\" />\n </Banner>\n <Banner\n v-if=\"selectedDevices.length > 0\"\n color=\"info\"\n >\n <t k=\"harvester.usb.deviceInTheSameHost\" />\n </Banner>\n </div>\n </div>\n <template v-if=\"enabledDevices.length\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"selectedDevices\"\n :label=\"t('harvester.usb.available')\"\n searchable\n multiple\n taggable\n :options=\"deviceOpts\"\n :mode=\"mode\"\n >\n <template #option=\"option\">\n <span>{{ option.value }} <span class=\"text-label\">({{ option.displayLabel }})</span></span>\n </template>\n </LabeledSelect>\n </div>\n </div>\n <div\n v-if=\"compatibleNodes.length && selectedDevices.length\"\n class=\"row\"\n >\n <div class=\"col span-12 text-muted\">\n Compatible hosts:\n <!-- eslint-disable-next-line vue/no-parsing-error -->\n <span\n v-for=\"(node, idx) in compatibleNodes\"\n :key=\"node\"\n >{{ node }}{{ idx < compatibleNodes.length-1 ? ', ' : '' }}</span>\n </div>\n </div>\n <div\n v-else-if=\"selectedDevices.length\"\n class=\"text-error\"\n >\n {{ t('harvester.usb.impossibleSelection') }}\n </div>\n <button\n type=\"button\"\n class=\"btn btn-sm role-link pl-0\"\n @click=\"e=>{showMatrix = !showMatrix; e.target.blur()}\"\n >\n {{ showMatrix ? t('harvester.usb.hideCompatibility') : t('harvester.usb.showCompatibility') }}\n </button>\n <div\n v-if=\"showMatrix\"\n class=\"row mt-20\"\n >\n <div class=\"col span-12\">\n <CompatibilityMatrix\n :enabled-devices=\"enabledDevices\"\n :devices-by-node=\"devicesByNode\"\n :devices-in-use=\"devicesInUse\"\n />\n </div>\n </div>\n </template>\n <div class=\"row mt-20\">\n <div class=\"col span-12\">\n <DeviceList\n :schema=\"deviceSchema\"\n :devices=\"devices\"\n @submit.prevent\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=67da2dd2\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { _EDIT } from '@shell/config/query-params';\nimport { allHash } from '@shell/utils/promise';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport Banner from '@components/Banner/Banner.vue';\n\nimport remove from 'lodash/remove';\nimport { set } from '@shell/utils/object';\nimport { HCI } from '../../../types';\nimport VGpuDeviceList from './VGpuDeviceList';\nimport { uniq } from '@shell/utils/array';\n\nexport default {\n name: 'VirtualMachineVGpuDevices',\n components: {\n Banner,\n LabeledSelect,\n VGpuDeviceList\n },\n props: {\n mode: {\n type: String,\n default: _EDIT\n },\n\n value: {\n type: Object,\n default: () => {}\n },\n\n vm: {\n type: Object,\n default: () => {}\n }\n },\n\n async fetch() {\n const hash = {\n devices: this.$store.dispatch('harvester/findAll', { type: HCI.VGPU_DEVICE }),\n vms: this.$store.dispatch(`harvester/findAll`, { type: HCI.VM })\n };\n\n const res = await allHash(hash);\n\n for (const key in res) {\n this[key] = res[key];\n }\n\n const vGpus = this.vm.isOff ? [\n ...(this.value?.domain?.devices?.gpus || []).map(({ name }) => name),\n ] : [\n ...Object.values(this.vm?.provisionedVGpus).reduce((acc, gpus) => [...acc, ...gpus], [])\n ];\n\n uniq(vGpus).forEach((name) => {\n if (this.enabledDevices.find((device) => device?.metadata?.name === name)) {\n this.selectedDevices.push(name);\n }\n });\n },\n\n data() {\n return {\n deviceSchema: this.$store.getters['harvester/schemaFor'](HCI.VGPU_DEVICE),\n devices: [],\n vms: [],\n selectedDevices: [],\n };\n },\n\n watch: {\n selectedDevices(neu) {\n const formatted = neu.map((selectedDevice) => {\n const deviceCRD = this.enabledDevices.find((device) => device.metadata.name === selectedDevice);\n const deviceName = `nvidia.com/${ deviceCRD?.status?.configureVGPUTypeName?.replace(/\\s+/g, '_') }`;\n\n return {\n deviceName,\n name: deviceCRD?.metadata.name,\n };\n });\n\n set(this.value.domain.devices, 'gpus', formatted);\n }\n },\n\n computed: {\n enabledDevices() {\n return this.devices.filter((device) => {\n return device.isEnabled;\n }) || [];\n },\n\n devicesInUse() {\n const inUse = this.vms.reduce((inUse, vm) => {\n if (vm.metadata.name === this.vm?.metadata?.name) {\n return inUse;\n }\n\n vm.hostDevices.forEach((device) => {\n inUse[device.name] = { usedBy: [vm.metadata.name] };\n });\n\n return inUse;\n }, {});\n\n return inUse;\n },\n\n devicesByNode() {\n return this.enabledDevices?.reduce((acc, device) => {\n const nodeName = device.spec?.nodeName;\n\n if (nodeName) {\n if (!acc[nodeName]) {\n acc[nodeName] = [];\n } else {\n acc[nodeName].push(device);\n }\n }\n\n return acc;\n }, {});\n },\n\n compatibleNodes() {\n const out = [...Object.keys(this.devicesByNode)];\n\n this.selectedDevices.forEach((deviceUid) => {\n remove(out, (nodeName) => {\n const device = this.enabledDevices.find((deviceCRD) => deviceCRD.metadata.name === deviceUid);\n\n return device.spec.nodeName !== nodeName;\n });\n });\n\n return out;\n },\n\n deviceOpts() {\n const filteredOptions = this.enabledDevices.filter((deviceCRD) => {\n if (this.selectedDevices.length > 0) {\n const selectedDevice = this.enabledDevices.find((device) => device.metadata.name === this.selectedDevices[0]);\n\n return !this.devicesInUse[deviceCRD?.metadata.name] && deviceCRD.spec.nodeName === selectedDevice.spec.nodeName;\n }\n\n return !this.devicesInUse[deviceCRD?.metadata.name];\n });\n\n return filteredOptions.map((deviceCRD) => {\n return {\n value: deviceCRD?.metadata.name,\n label: deviceCRD?.metadata.name,\n };\n });\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <Banner color=\"info\">\n <t k=\"harvester.vgpu.howToUseDevice\" />\n </Banner>\n <Banner\n v-if=\"selectedDevices.length > 0\"\n color=\"info\"\n >\n <t k=\"harvester.vgpu.deviceInTheSameHost\" />\n </Banner>\n </div>\n </div>\n <template v-if=\"enabledDevices.length\">\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"selectedDevices\"\n label=\"Available vGPU Devices\"\n searchable\n multiple\n taggable\n :options=\"deviceOpts\"\n :mode=\"mode\"\n >\n <template #option=\"option\">\n <span>{{ option.value }}</span>\n </template>\n </LabeledSelect>\n </div>\n </div>\n <div\n v-if=\"compatibleNodes.length && selectedDevices.length\"\n class=\"row\"\n >\n <div class=\"col span-12 text-muted\">\n Compatible hosts:\n <!-- eslint-disable-next-line vue/no-parsing-error -->\n <span\n v-for=\"(node, idx) in compatibleNodes\"\n :key=\"idx\"\n >{{ node }}{{ idx < compatibleNodes.length-1 ? ', ' : '' }}</span>\n </div>\n </div>\n <div\n v-else-if=\"selectedDevices.length\"\n class=\"text-error\"\n >\n {{ t('harvester.vgpu.impossibleSelection') }}\n </div>\n </template>\n <div class=\"row mt-20\">\n <div class=\"col span-12\">\n <VGpuDeviceList\n :schema=\"deviceSchema\"\n :devices=\"devices\"\n @submit.prevent\n />\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=9cac5d78\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { isEqual } from 'lodash';\nimport { mapGetters } from 'vuex';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport CruResource from '@shell/components/CruResource';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport UnitInput from '@shell/components/form/UnitInput';\nimport Labels from '@shell/components/form/Labels';\n\nimport NodeScheduling from '@shell/components/form/NodeScheduling';\nimport PodAffinity from '@shell/components/form/PodAffinity';\nimport VGpuDevices from './VirtualMachineVGpuDevices/index';\nimport UsbDevices from './VirtualMachineUSBDevices/index';\nimport KeyValue from '@shell/components/form/KeyValue';\n\nimport { clear } from '@shell/utils/array';\nimport { clone } from '@shell/utils/object';\nimport { saferDump } from '@shell/utils/create-yaml';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { BEFORE_SAVE_HOOKS, AFTER_SAVE_HOOKS } from '@shell/mixins/child-hook';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nimport { parseVolumeClaimTemplates } from '@pkg/utils/vm';\nimport VM_MIXIN from '../../mixins/harvester-vm';\nimport { HCI } from '../../types';\nimport RestartVMDialog from '../../dialog/RestartVMDialog';\nimport PciDevices from './VirtualMachinePciDevices/index';\nimport AccessCredentials from './VirtualMachineAccessCredentials';\nimport CloudConfig from './VirtualMachineCloudConfig';\nimport CpuMemory from './VirtualMachineCpuMemory';\nimport Network from './VirtualMachineNetwork';\nimport Volume from './VirtualMachineVolume';\nimport SSHKey from './VirtualMachineSSHKey';\nimport Reserved from './VirtualMachineReserved';\nimport { Banner } from '@components/Banner';\nimport MessageLink from '@shell/components/MessageLink';\n\nexport default {\n name: 'HarvesterEditVM',\n\n emits: ['update:value'],\n\n components: {\n Tab,\n Tabbed,\n Checkbox,\n RadioGroup,\n CruResource,\n LabeledInput,\n LabeledSelect,\n NameNsDescription,\n Volume,\n SSHKey,\n Network,\n CpuMemory,\n CloudConfig,\n NodeScheduling,\n PodAffinity,\n AccessCredentials,\n Reserved,\n Labels,\n PciDevices,\n RestartVMDialog,\n UnitInput,\n VGpuDevices,\n KeyValue,\n Banner,\n MessageLink,\n UsbDevices,\n },\n\n mixins: [CreateEditView, VM_MIXIN],\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n const cloneVM = clone(this.value);\n const isRestartImmediately = this.value.actualState === 'Running';\n\n const hostname = this.value.spec.template.spec.hostname || '';\n\n return {\n cloneVM,\n count: 2,\n templateId: '',\n templateVersionId: '',\n namePrefix: '',\n isSingle: true,\n useTemplate: false,\n isOpen: false,\n hostname,\n isRestartImmediately,\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n to() {\n return {\n name: 'harvester-c-cluster-resource',\n params: { cluster: this.$store.getters['clusterId'], resource: HCI.HOST },\n };\n },\n\n machineTypeOptions() {\n return [{\n label: 'None',\n value: ''\n }, {\n label: 'q35',\n value: 'q35'\n }];\n },\n\n templateOptions() {\n return this.templates.map( (T) => {\n const isReady = this.hasAvailableVersion(T.id);\n\n return {\n label: T.id,\n value: T.id,\n disabled: !isReady\n };\n });\n },\n\n versionOptions() {\n const defaultVersion = this.curTemplateResource?.defaultVersion;\n\n return this.versions.filter( (O) => O.templateId === this.templateId).map( (T) => {\n const version = T.version;\n\n const label = defaultVersion === version ? `${ version } (${ this.t('generic.default') })` : version;\n const value = T.id;\n\n return {\n label,\n value,\n disabled: !T.isReady\n };\n });\n },\n\n curTemplateResource() {\n return this.templates.find( (O) => O.id === this.templateId);\n },\n\n nameLabel() {\n return this.isSingle ? 'harvester.virtualMachine.instance.single.nameLabel' : 'harvester.virtualMachine.instance.multiple.nameLabel';\n },\n\n hostnameLabel() {\n return this.isSingle ? 'harvester.virtualMachine.instance.single.host.label' : 'harvester.virtualMachine.instance.multiple.host.label';\n },\n\n hostPlaceholder() {\n return this.isSingle ? this.t('harvester.virtualMachine.instance.single.host.placeholder') : this.t('harvester.virtualMachine.instance.multiple.host.placeholder');\n },\n\n secretNamePrefix() {\n return this.value?.metadata?.name;\n },\n\n isQemuInstalled() {\n return this.value.isQemuInstalled;\n },\n\n hasRestartAction() {\n return this.value.hasAction('restart');\n },\n\n hasStartAction() {\n return this.value.hasAction('start');\n },\n\n enableCpuPinningCheckbox() {\n if (this.mode === 'create') {\n return this.nodes.some((node) => node.isCPUManagerEnabled); // any one of nodes has label cpuManager=true\n }\n\n return true;\n },\n isValidationPassed() {\n // check if any disk hasDiskError is true\n const hasError = this.diskRows.some((disk) => disk.hasDiskError === true);\n\n return !hasError;\n },\n showCpuPinningBanner() {\n if (!this.value.cpuPinningFeatureEnabled) {\n return false;\n }\n\n if (this.mode === 'edit') {\n return this.cpuPinning !== !!this.cloneVM.spec.template.spec.domain.cpu.dedicatedCpuPlacement;\n }\n\n if (this.mode === 'create') {\n return this.nodes.every((node) => !node.isCPUManagerEnabled); // no node enabled CPU manager\n }\n\n return false;\n }\n },\n\n watch: {\n templateId: {\n async handler(id, old) {\n if (!id) {\n return;\n }\n if (id !== old && !this.templateVersionId) {\n const templates = await this.$store.dispatch('harvester/findAll', { type: HCI.VM_TEMPLATE });\n\n this.templateVersionId = templates.find( (O) => O.id === id)?.spec?.defaultVersionId;\n }\n },\n immediate: false\n },\n\n templateVersionId: {\n async handler(id) {\n if (!id) {\n return;\n }\n const versions = await this.$store.dispatch('harvester/findAll', { type: HCI.VM_VERSION });\n const curVersion = versions.find( (V) => V.id === id);\n const cloneVersionVM = clone(curVersion.spec.vm);\n\n delete cloneVersionVM.spec?.template?.spec?.accessCredentials;\n delete cloneVersionVM.spec?.template?.metadata?.annotations?.[HCI_ANNOTATIONS.DYNAMIC_SSHKEYS_NAMES];\n delete cloneVersionVM.spec?.template?.metadata?.annotations?.[HCI_ANNOTATIONS.DYNAMIC_SSHKEYS_USERS];\n\n const claimTemplate = parseVolumeClaimTemplates(cloneVersionVM);\n\n const deleteDataSource = claimTemplate.map((volume) => {\n if (volume?.spec?.dataSource) {\n delete volume.spec.dataSource;\n }\n\n return volume;\n });\n\n cloneVersionVM.metadata.annotations[HCI_ANNOTATIONS.VOLUME_CLAIM_TEMPLATE] = JSON.stringify(deleteDataSource);\n\n this.getInitConfig({\n value: cloneVersionVM, existUserData: true, fromTemplate: true\n });\n this['hasCreateVolumes'] = []; // When using the template, all volume names need to be newly created\n }\n },\n\n useTemplate(neu) {\n if (neu === false) {\n this.templateId = '';\n this.templateVersionId = '';\n this.value.applyDefaults();\n this.getInitConfig({ value: this.value, init: this.isCreate });\n }\n },\n },\n\n created() {\n this.registerAfterHook(async() => {\n await this.restartVM();\n const id = `${ this.value.metadata.namespace }/${ this.value.metadata.name }`;\n\n const res = this.$store.getters['harvester/byId'](HCI.VM, id);\n\n try {\n await this.saveSecret(res);\n await this.saveAccessCredentials(res);\n } catch (e) {\n this.errors.push(...exceptionToErrorsArray(e));\n }\n\n if (!this.errors.length && this.isSingle) {\n this.done();\n }\n });\n\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.updateBeforeSave);\n }\n },\n\n mounted() {\n this.imageId = this.$route.query?.image || this.imageId;\n\n const diskRows = this.getDiskRows(this.value);\n\n this['diskRows'] = diskRows;\n const templateId = this.$route.query.templateId;\n const templateVersionId = this.$route.query.versionId;\n\n if (templateId && templateVersionId) {\n this.templateId = templateId;\n this.templateVersionId = templateVersionId;\n this.useTemplate = true;\n }\n },\n\n methods: {\n cancelAction() {\n const { fromPage = HCI.VM } = this.$route?.query; // default back to VM list page\n const cancelOverride = {\n name: this.doneRoute,\n params: { resource: fromPage }\n };\n\n this.$router.replace(cancelOverride);\n },\n saveVM(buttonCb) {\n clear(this.errors);\n\n if (this.isSingle) {\n this.saveSingle(buttonCb);\n } else {\n this.saveMultiple(buttonCb);\n }\n },\n\n async saveSingle(buttonCb) {\n this.parseVM();\n this.value.spec.template.spec.hostname = this.hostname ? this.hostname : this.value.metadata.name;\n await this._save(this.value, buttonCb);\n if (!this.errors.length) {\n buttonCb(true);\n } else {\n buttonCb(false);\n }\n },\n\n async saveMultiple(buttonCb) {\n this.namePrefix = this.value.metadata.name || '';\n const join = this.namePrefix.endsWith('-') ? '' : '-';\n const baseHostname = this.hostname ? this.hostname : this.namePrefix;\n\n if (this.count < 1) {\n this.errors = [this.t('harvester.virtualMachine.instance.multiple.countTip')];\n buttonCb(false);\n\n return;\n }\n\n if (!this.value.metadata.name) {\n this.errors.push(this.t('validation.required', { key: this.t('generic.name') }, true));\n buttonCb(false);\n\n return;\n }\n\n const cloneValue = clone(this.value);\n const cloneSpec = clone(this.spec);\n\n for (let i = 1; i <= this.count; i++) {\n this.value['spec'] = cloneValue.spec;\n this['spec'] = cloneSpec;\n const suffix = i < 10 ? `0${ i }` : i;\n\n this.value.cleanForNew();\n this.value.metadata.name = `${ this.namePrefix }${ join }${ suffix }`;\n this.value.spec.template.spec['hostname'] = `${ baseHostname }${ join }${ suffix }`;\n this.secretName = '';\n await this.parseVM();\n const basicValue = await this.$store.dispatch('harvester/clone', { resource: this.value });\n\n await this._save(basicValue, buttonCb);\n\n if (i === this.count && !this.errors.length) {\n buttonCb(true);\n this.done();\n } else if (i === this.count) {\n this.value.metadata.name = this.namePrefix;\n buttonCb(false);\n }\n }\n },\n\n async _save(value, buttonCb) {\n try {\n await this.applyHooks(BEFORE_SAVE_HOOKS);\n await value.save();\n await this.applyHooks(AFTER_SAVE_HOOKS);\n } catch (e) {\n this.errors.push(...exceptionToErrorsArray(e));\n buttonCb(false);\n }\n },\n\n restartVM() {\n if (this.mode !== 'edit') {\n return;\n }\n if (!this.value.isRunning) {\n return;\n }\n const cloneDeepNewVM = clone(this.value);\n\n delete cloneDeepNewVM?.metadata;\n delete this.cloneVM?.metadata;\n delete this.cloneVM?.__clone;\n\n const oldVM = JSON.parse(JSON.stringify(this.cloneVM));\n const newVM = JSON.parse(JSON.stringify(cloneDeepNewVM));\n\n if (isEqual(oldVM, newVM)) {\n return;\n }\n\n return new Promise((resolve) => {\n this.isOpen = true;\n\n this.$nextTick(() => {\n this.$refs.restartDialog.resolve = resolve;\n });\n });\n },\n\n updateBeforeSave() {\n if (this.isSingle) {\n if (!this.value.spec.template.spec.hostname) {\n this.value.spec.template.spec['hostname'] = this.value.metadata.name;\n }\n }\n\n const errors = this.getAccessCredentialsValidation();\n\n if (errors.length > 0) {\n return Promise.reject(errors);\n } else {\n return Promise.resolve();\n }\n },\n\n validateCount(count) {\n if (count > 10) {\n this['count'] = 10;\n }\n },\n\n updateTemplateId() {\n this.templateVersionId = '';\n },\n\n onTabChanged({ tab }) {\n if (tab.name === 'advanced') {\n this.$refs.yamlEditor?.refresh();\n }\n },\n\n hasAvailableVersion(templateId) {\n let hasAvailableVersion = false;\n\n this.versions.filter( (O) => O.templateId === templateId).find( (T) => {\n if (T.isReady) {\n hasAvailableVersion = true;\n }\n });\n\n return hasAvailableVersion;\n },\n\n generateYaml() {\n this.parseVM();\n const out = saferDump(this.value);\n\n return out;\n },\n },\n};\n</script>\n\n<template>\n <CruResource\n v-if=\"spec\"\n id=\"vm\"\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :cancel-event=\"true\"\n :mode=\"mode\"\n :validation-passed=\"isValidationPassed\"\n :can-yaml=\"isSingle ? true : false\"\n :errors=\"errors\"\n :generate-yaml=\"generateYaml\"\n :apply-hooks=\"applyHooks\"\n @finish=\"saveVM\"\n @cancel=\"cancelAction\"\n >\n <RadioGroup\n v-if=\"isCreate\"\n v-model:value=\"isSingle\"\n class=\"mb-20 vm-radio-group\"\n name=\"createInstanceMode\"\n :options=\"[true,false]\"\n :labels=\"[t('harvester.virtualMachine.instance.single.label'), t('harvester.virtualMachine.instance.multiple.label')]\"\n />\n\n <NameNsDescription\n :value=\"value\"\n :mode=\"mode\"\n :has-extra=\"!isSingle\"\n :name-label=\"nameLabel\"\n :namespaced=\"true\"\n :name-placeholder=\"isSingle ? 'nameNsDescription.name.placeholder' : 'harvester.virtualMachine.instance.multiple.nameNsDescription'\"\n :extra-columns=\"isSingle ? [] :['type']\"\n @update:value=\"$emit('update:value', $event)\"\n >\n <template #type>\n <LabeledInput\n v-if=\"!isSingle\"\n v-model:value.number=\"count\"\n :min=\"2\"\n type=\"number\"\n :label=\"t('harvester.virtualMachine.instance.multiple.count')\"\n required\n @update:value=\"validateCount\"\n />\n </template>\n </NameNsDescription>\n\n <Checkbox\n v-if=\"isCreate\"\n v-model:value=\"useTemplate\"\n class=\"check mb-20\"\n type=\"checkbox\"\n label-key=\"harvester.virtualMachine.useTemplate.label\"\n />\n\n <div\n v-if=\"useTemplate\"\n class=\"row mb-20\"\n >\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"templateId\"\n label-key=\"harvester.virtualMachine.useTemplate.template.label\"\n :options=\"templateOptions\"\n @update:value=\"updateTemplateId\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"templateVersionId\"\n label-key=\"harvester.virtualMachine.useTemplate.version.label\"\n :options=\"versionOptions\"\n />\n </div>\n </div>\n\n <Tabbed\n :side-tabs=\"true\"\n @changed=\"onTabChanged\"\n >\n <Tab\n name=\"basics\"\n :label=\"t('harvester.virtualMachine.detail.tabs.basics')\"\n >\n <CpuMemory\n :cpu=\"cpu\"\n :memory=\"memory\"\n :mode=\"mode\"\n @updateCpuMemory=\"updateCpuMemory\"\n />\n\n <SSHKey\n v-model:value=\"sshKey\"\n class=\"mb-20\"\n :create-namespace=\"true\"\n :namespace=\"value.metadata.namespace\"\n :mode=\"mode\"\n :disabled=\"isWindows || isEdit\"\n @update:sshKey=\"updateSSHKey\"\n @register-after-hook=\"registerAfterHook\"\n />\n </Tab>\n\n <Tab\n name=\"Volume\"\n :label=\"t('harvester.tab.volume')\"\n :weight=\"-1\"\n >\n <Volume\n v-model:value=\"diskRows\"\n :mode=\"mode\"\n :custom-volume-mode=\"customVolumeMode\"\n :namespace=\"value.metadata.namespace\"\n :resource-type=\"value.type\"\n :vm=\"value\"\n :validate-required=\"true\"\n />\n </Tab>\n\n <Tab\n name=\"Network\"\n :label=\"t('harvester.tab.network')\"\n :weight=\"-2\"\n >\n <Network\n v-model:value=\"networkRows\"\n :mode=\"mode\"\n :is-single=\"isSingle\"\n />\n </Tab>\n\n <Tab\n name=\"nodeScheduling\"\n :label=\"t('workload.container.titles.nodeScheduling')\"\n :weight=\"-3\"\n >\n <template #default>\n <NodeScheduling\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :nodes=\"nodesIdOptions\"\n />\n </template>\n </Tab>\n\n <Tab\n :label=\"t('harvester.tab.vmScheduling')\"\n name=\"vmScheduling\"\n :weight=\"-4\"\n >\n <template #default>\n <PodAffinity\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :nodes=\"nodes\"\n :all-namespaces-option-available=\"true\"\n :namespaces=\"filteredNamespaces\"\n :overwrite-labels=\"affinityLabels\"\n />\n </template>\n </Tab>\n\n <Tab\n v-if=\"enabledPCI\"\n :label=\"t('harvester.tab.pciDevices')\"\n name=\"pciDevices\"\n :weight=\"-5\"\n >\n <PciDevices\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :vm=\"value\"\n />\n </Tab>\n\n <Tab\n v-if=\"enabledSriovgpu\"\n :label=\"t('harvester.tab.vGpuDevices')\"\n name=\"vGpuDevices\"\n :weight=\"-6\"\n >\n <VGpuDevices\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :vm=\"value\"\n />\n </Tab>\n\n <Tab\n v-if=\"enabledPCI\"\n :label=\"t('harvester.tab.usbDevices')\"\n name=\"usbDevices\"\n :weight=\"-7\"\n >\n <UsbDevices\n :mode=\"mode\"\n :value=\"spec.template.spec\"\n :vm=\"value\"\n />\n </Tab>\n\n <Tab\n v-if=\"isEdit\"\n :label=\"t('harvester.tab.accessCredentials')\"\n name=\"accessCredentials\"\n :weight=\"-8\"\n >\n <AccessCredentials\n v-model:value=\"accessCredentials\"\n :mode=\"mode\"\n :resource-type=\"value\"\n :is-qemu-installed=\"isQemuInstalled\"\n />\n </Tab>\n\n <Tab\n name=\"instanceLabel\"\n :label=\"t('harvester.tab.instanceLabel')\"\n :weight=\"-8\"\n >\n <Labels\n :default-container-class=\"'labels-and-annotations-container'\"\n :value=\"value\"\n :mode=\"mode\"\n :display-side-by-side=\"false\"\n :show-annotations=\"false\"\n :show-label-title=\"false\"\n >\n <template #labels=\"{toggler}\">\n <KeyValue\n key=\"labels\"\n :value=\"value.instanceLabels\"\n :protected-keys=\"value.systemLabels || []\"\n :toggle-filter=\"toggler\"\n :add-label=\"t('labels.addLabel')\"\n :mode=\"mode\"\n :read-allowed=\"false\"\n :value-can-be-empty=\"true\"\n @update:value=\"value.setInstanceLabels($event)\"\n />\n </template>\n </Labels>\n </Tab>\n\n <Tab\n name=\"advanced\"\n :label=\"t('harvester.tab.advanced')\"\n :weight=\"-9\"\n >\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"runStrategy\"\n label-key=\"harvester.virtualMachine.runStrategy\"\n :options=\"runStrategies\"\n :mode=\"mode\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"osType\"\n label-key=\"harvester.virtualMachine.osType\"\n :options=\"OS\"\n :disabled=\"!isCreate\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"maintenanceStrategy\"\n label-key=\"harvester.virtualMachine.maintenanceStrategy.label\"\n :options=\"maintenanceStrategies\"\n :get-option-label=\"getMaintenanceStrategyOptionLabel\"\n :mode=\"mode\"\n />\n </div>\n <div class=\"col span-6\">\n <Reserved\n :reserved-memory=\"reservedMemory\"\n :mode=\"mode\"\n @updateReserved=\"updateReserved\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <a\n v-if=\"showAdvanced\"\n v-t=\"'harvester.generic.showMore'\"\n role=\"button\"\n @click=\"toggleAdvanced\"\n />\n <a\n v-else\n v-t=\"'harvester.generic.showMore'\"\n role=\"button\"\n @click=\"toggleAdvanced\"\n />\n </div>\n\n <div\n v-if=\"showAdvanced\"\n class=\"mb-20\"\n >\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"hostname\"\n :label-key=\"hostnameLabel\"\n :placeholder=\"hostPlaceholder\"\n :mode=\"mode\"\n />\n </div>\n\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"machineType\"\n label-key=\"harvester.virtualMachine.input.MachineType\"\n :options=\"machineTypeOptions\"\n :mode=\"mode\"\n />\n </div>\n </div>\n\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <UnitInput\n v-model:value=\"terminationGracePeriodSeconds\"\n :suffix=\"terminationGracePeriodSeconds == 1 ? 'Second' : 'Seconds'\"\n :label=\"t('harvester.virtualMachine.terminationGracePeriodSeconds.label')\"\n :mode=\"mode\"\n positive\n @update:value=\"updateTerminationGracePeriodSeconds\"\n />\n </div>\n </div>\n </div>\n\n <CloudConfig\n ref=\"yamlEditor\"\n :user-script=\"userScript\"\n :mode=\"mode\"\n :view-code=\"isWindows\"\n :namespace=\"value.metadata.namespace\"\n :network-script=\"networkScript\"\n @updateUserData=\"updateUserData\"\n @updateNetworkData=\"updateNetworkData\"\n @updateDataTemplateId=\"updateDataTemplateId\"\n />\n\n <Checkbox\n v-if=\"value.cpuPinningFeatureEnabled\"\n v-model:value=\"cpuPinning\"\n :disabled=\"!enableCpuPinningCheckbox\"\n class=\"check\"\n type=\"checkbox\"\n tooltip-key=\"harvester.virtualMachine.cpuPinning.tooltip\"\n label-key=\"harvester.virtualMachine.cpuPinning.label\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-model:value=\"installUSBTablet\"\n class=\"check mt-20\"\n type=\"checkbox\"\n tooltip-key=\"harvester.virtualMachine.usbTip\"\n label-key=\"harvester.virtualMachine.enableUsb\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-model:value=\"installAgent\"\n class=\"check\"\n type=\"checkbox\"\n :disabled=\"isWindows\"\n label-key=\"harvester.virtualMachine.installAgent\"\n :mode=\"mode\"\n @update:value=\"updateAgent\"\n />\n\n <Checkbox\n v-model:value=\"tpmEnabled\"\n class=\"check\"\n type=\"checkbox\"\n label-key=\"harvester.virtualMachine.advancedOptions.tpm\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-if=\"value.tpmPersistentStateFeatureEnabled && tpmEnabled\"\n v-model:value=\"tpmPersistentStateEnabled\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.advancedOptions.tpmPersistentState')\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-model:value=\"efiEnabled\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.advancedOptions.efiEnabled')\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-if=\"value.efiPersistentStateFeatureEnabled && efiEnabled\"\n v-model:value=\"efiPersistentStateEnabled\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.advancedOptions.efiPersistentState')\"\n :mode=\"mode\"\n />\n\n <Checkbox\n v-if=\"efiEnabled\"\n v-model:value=\"secureBoot\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.virtualMachine.advancedOptions.secureBoot')\"\n :mode=\"mode\"\n />\n\n <Banner\n v-if=\"showCpuPinningBanner\"\n color=\"warning\"\n >\n <MessageLink\n v-if=\"mode === 'create'\"\n :to=\"to\"\n prefix-label=\"harvester.virtualMachine.advancedOptions.cpuManager.prefix\"\n middle-label=\"harvester.virtualMachine.advancedOptions.cpuManager.middle\"\n suffix-label=\"harvester.virtualMachine.advancedOptions.cpuManager.suffix\"\n />\n <span v-if=\"mode==='edit'\">\n {{ t('harvester.virtualMachine.cpuPinning.restartVMMessage') }}\n </span>\n </Banner>\n </Tab>\n </Tabbed>\n\n <RestartVMDialog\n v-if=\"isOpen\"\n ref=\"restartDialog\"\n :vm=\"value\"\n />\n </CruResource>\n</template>\n\n<style lang=\"scss\" scoped>\n#vm {\n :deep() .vm-radio-group .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n\n .restart {\n display: flex;\n justify-content: flex-end;\n }\n\n .banner-right {\n width: auto;\n display: flex;\n justify-items: center;\n }\n}\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=118c4d85&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=118c4d85&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-118c4d85\"]])\n\nexport default __exports__","<script>\nimport debounce from 'lodash/debounce';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { removeAt } from '@shell/utils/array';\nimport { clone } from '@shell/utils/object';\nimport { mapGetters } from 'vuex';\nimport PriorityRow from './PriorityRow';\n\nexport default {\n emits: ['update:value'],\n\n components: { PriorityRow },\n\n props: {\n value: {\n type: Array,\n default: null,\n },\n mode: {\n type: String,\n default: _EDIT,\n },\n autoAddIfEmpty: {\n type: Boolean,\n default: true,\n }\n },\n\n data() {\n const rows = clone(this.value || []);\n\n return { rows };\n },\n\n computed: {\n ...mapGetters(['isRancherInHarvester', 'isStandaloneHarvester']),\n\n isView() {\n return this.mode === _VIEW;\n },\n\n showAdd() {\n return !this.isView;\n },\n\n showRemove() {\n return !this.isView;\n },\n\n showProjectAndCluster() {\n return !this.isStandaloneHarvester;\n },\n },\n\n created() {\n this.queueUpdate = debounce(this.update, 500);\n },\n\n methods: {\n add() {\n const defaultRow = { namespace: '*' };\n\n if (!this.showProjectAndCluster) {\n this.rows.push(defaultRow);\n } else {\n this.rows.push({\n ...defaultRow,\n project: '*',\n guestCluster: '*',\n });\n }\n\n this.queueUpdate();\n },\n\n remove(idx) {\n removeAt(this.rows, idx);\n this.queueUpdate();\n },\n\n update() {\n if ( this.isView ) {\n return;\n }\n\n this.$emit('update:value', this.rows);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <h3>\n {{ t('harvester.ipPool.scope.label') }}\n </h3>\n <div v-if=\"rows.length\">\n <div\n class=\"pool-headers\"\n :class=\"{\n 'show-project-and-cluster': showProjectAndCluster,\n }\"\n >\n <span\n v-if=\"showProjectAndCluster\"\n class=\"pool-project\"\n >\n <t k=\"harvester.ipPool.project.label\" />\n </span>\n <span class=\"pool-namespace\">\n <t k=\"harvester.ipPool.namespace.label\" />\n </span>\n <span\n v-if=\"showProjectAndCluster\"\n class=\"pool-guestCluster\"\n >\n <t k=\"harvester.ipPool.guestCluster.label\" />\n </span>\n <span\n v-if=\"showRemove\"\n class=\"remove\"\n />\n </div>\n <div\n v-for=\"(row, idx) in rows\"\n :key=\"idx\"\n >\n <PriorityRow\n :row=\"row\"\n :mode=\"mode\"\n :rows=\"rows\"\n :idx=\"idx\"\n @update:value=\"queueUpdate\"\n @remove=\"remove(idx)\"\n />\n </div>\n </div>\n <div\n v-if=\"showAdd\"\n class=\"footer\"\n >\n <button\n type=\"button\"\n class=\"btn role-tertiary add\"\n @click=\"add()\"\n >\n <t k=\"harvester.ipPool.scope.addLabel\" />\n </button>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .pool-headers {\n display: grid;\n grid-column-gap: $column-gutter;\n margin-bottom: 10px;\n align-items: center;\n\n grid-template-columns: 40% 40% 15%;\n\n &.show-project-and-cluster {\n grid-template-columns: 25% 25% 25% 15%;\n }\n }\n</style>\n","import { render } from \"./Priority.vue?vue&type=template&id=3ca2ec55&scoped=true\"\nimport script from \"./Priority.vue?vue&type=script&lang=js\"\nexport * from \"./Priority.vue?vue&type=script&lang=js\"\n\nimport \"./Priority.vue?vue&type=style&index=0&id=3ca2ec55&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3ca2ec55\"]])\n\nexport default __exports__","<script>\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport Select from '@shell/components/form/Select';\nimport { MANAGEMENT, CAPI } from '@shell/config/types';\nimport { mapGetters } from 'vuex';\nimport { HCI } from '@pkg/harvester/types';\n\nexport default {\n emits: ['update:value', 'remove'],\n\n components: { Select },\n\n props: {\n row: {\n type: Object,\n default: () => ({}),\n },\n\n mode: {\n type: String,\n default: _EDIT,\n },\n\n rows: {\n type: Array,\n default: () => [],\n },\n\n idx: {\n type: Number,\n required: true,\n },\n },\n\n data() {\n return { value: '' };\n },\n\n computed: {\n ...mapGetters(['allNamespaces', 'currentCluster', 'isRancherInHarvester', 'isStandaloneHarvester']),\n\n showProjectAndCluster() {\n return !this.isStandaloneHarvester;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n showRemove() {\n return !this.isView;\n },\n\n filteredNamespaces() {\n const namespaces = this.allNamespaces || [];\n\n return namespaces.filter((namespace) => {\n if (this.row.project === '*') {\n return true;\n } else if (this.row.project) {\n return namespace.project?.id === this.row.project;\n } else {\n return true;\n }\n });\n },\n\n namespaceOptions() {\n const out = (this.filteredNamespaces || []).map((namespace) => {\n return {\n label: namespace.metadata.name,\n value: namespace.id,\n };\n });\n\n return [{\n label: this.t('generic.all'),\n value: '*',\n }, ...out];\n },\n\n guestClusterOptions() {\n const clusters = this.$store.getters['management/all'](CAPI.RANCHER_CLUSTER);\n const configs = this.$store.getters['management/all'](HCI.HARVESTER_CONFIG);\n const selectedClusters = this.rows.map((row) => row?.guestCluster);\n const filteredNamespaces = this.filteredNamespaces.map((n) => n.id);\n\n const out = clusters.filter((c) => {\n const machinePools = c.spec?.rkeConfig?.machinePools || [];\n const machineConfigName = machinePools[0]?.machineConfigRef?.name;\n const config = configs.find((c) => c.id === `fleet-default/${ machineConfigName }`);\n\n if (config) {\n const vmNamespace = config?.vmNamespace;\n\n if (this.row.namespace === '*' && filteredNamespaces.includes(vmNamespace)) {\n return true;\n } else {\n return vmNamespace === this.row.namespace && !selectedClusters.includes(c.id);\n }\n } else {\n return false;\n }\n }).map((cluster) => {\n return {\n label: cluster.nameDisplay,\n value: cluster.metadata.name,\n };\n });\n\n return [{\n label: this.t('generic.none'),\n value: '',\n }, {\n label: this.t('generic.all'),\n value: '*',\n }, ...out];\n },\n\n projectOptions() {\n const projects = this.$store.getters['management/all'](MANAGEMENT.PROJECT);\n\n const out = projects.filter((p) => p.metadata.namespace === this.currentCluster.id).map((project) => {\n return {\n label: project.nameDisplay,\n value: project.id,\n };\n });\n\n return [{\n label: this.t('generic.none'),\n value: '',\n }, {\n label: this.t('generic.all'),\n value: '*',\n }, ...out];\n },\n },\n\n methods: {\n update() {\n const { namespace, project, guestCluster } = this.row;\n\n this.$emit('update:value', {\n namespace,\n project,\n guestCluster,\n });\n },\n\n remove() {\n this.$emit('remove');\n },\n },\n\n watch: {\n 'row.project'() {\n if (this.row.namespace !== '*') {\n this.row.namespace = '';\n }\n\n if (this.row.guestCluster !== '*' || this.row.guestCluster !== '') {\n this.row.guestCluster = '';\n }\n },\n\n 'row.namespace'() {\n if (this.row.guestCluster !== '*') {\n this.row.guestCluster = '';\n }\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"pool-row\"\n :class=\"{\n 'show-project-and-cluster': showProjectAndCluster,\n }\"\n >\n <div\n v-if=\"showProjectAndCluster\"\n class=\"pool-project\"\n >\n <span v-if=\"isView\">\n {{ row.project }}\n </span>\n <Select\n v-else\n v-model:value=\"row.project\"\n :options=\"projectOptions\"\n @update:value=\"update\"\n />\n </div>\n <div class=\"pool-namespace\">\n <span v-if=\"isView\">\n {{ row.namespace }}\n </span>\n <Select\n v-else\n v-model:value=\"row.namespace\"\n :options=\"namespaceOptions\"\n @update:value=\"update\"\n />\n </div>\n <div\n v-if=\"showProjectAndCluster\"\n class=\"pool-guestCluster\"\n >\n <span v-if=\"isView\">\n {{ row.guestCluster }}\n </span>\n <Select\n v-else\n v-model:value=\"row.guestCluster\"\n :options=\"guestClusterOptions\"\n @update:value=\"update\"\n />\n </div>\n <div\n v-if=\"showRemove\"\n class=\"remove\"\n >\n <button\n type=\"button\"\n class=\"btn role-link\"\n @click=\"remove(idx)\"\n >\n <t k=\"generic.remove\" />\n </button>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .pool-row {\n display: grid;\n grid-column-gap: $column-gutter;\n margin-bottom: 10px;\n align-items: center;\n\n grid-template-columns: 40% 40% 15%;\n\n &.show-project-and-cluster {\n grid-template-columns: 25% 25% 25% 15%;\n }\n }\n</style>\n","import { render } from \"./PriorityRow.vue?vue&type=template&id=6c39bd05&scoped=true\"\nimport script from \"./PriorityRow.vue?vue&type=script&lang=js\"\nexport * from \"./PriorityRow.vue?vue&type=script&lang=js\"\n\nimport \"./PriorityRow.vue?vue&type=style&index=0&id=6c39bd05&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6c39bd05\"]])\n\nexport default __exports__","<script>\nimport debounce from 'lodash/debounce';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { removeAt } from '@shell/utils/array';\n\nexport default {\n emits: ['update:value'],\n\n props: {\n value: {\n type: Array,\n default: null,\n },\n mode: {\n type: String,\n default: _EDIT,\n },\n specType: {\n type: String,\n default: 'ClusterIP',\n },\n autoAddIfEmpty: {\n type: Boolean,\n default: true,\n }\n },\n\n data() {\n const rows = (this.value || []).map((row) => {\n let type = 'cidr';\n\n if (row.rangeStart && row.rangeEnd) {\n type = 'range';\n }\n\n return {\n ...row,\n type,\n };\n });\n\n return { rows };\n },\n\n computed: {\n isView() {\n return this.mode === _VIEW;\n },\n\n showAdd() {\n return !this.isView;\n },\n\n showRemove() {\n return !this.isView;\n },\n },\n\n created() {\n this.queueUpdate = debounce(this.update, 500);\n },\n\n methods: {\n addCIDR() {\n this.rows.push({\n subnet: '',\n gateway: '',\n type: 'cidr',\n });\n\n this.queueUpdate();\n },\n\n addRange() {\n this.rows.push({\n subnet: '',\n gateway: '',\n rangeStart: '',\n rangeEnd: '',\n type: 'range',\n });\n\n this.queueUpdate();\n },\n\n remove(idx) {\n removeAt(this.rows, idx);\n this.queueUpdate();\n },\n\n update() {\n if ( this.isView ) {\n return;\n }\n\n this.$emit('update:value', this.rows);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"rows.length\">\n <div\n v-for=\"(row, idx) in rows\"\n :key=\"idx\"\n >\n <div\n class=\"pool-headers\"\n :class=\"{\n [row.type]: true,\n }\"\n >\n <span class=\"pool-subnet\">\n <t k=\"harvester.ipPool.subnet.label\" />\n <span class=\"text-error\">\n *\n </span>\n </span>\n <span\n class=\"pool-gateway\"\n >\n <t k=\"harvester.ipPool.gateway.label\" />\n </span>\n <span\n v-if=\"row.type === 'range'\"\n class=\"pool-startIP\"\n >\n <t k=\"harvester.ipPool.startIP.label\" />\n </span>\n <span\n v-if=\"row.type === 'range'\"\n class=\"pool-endIP\"\n >\n <t k=\"harvester.ipPool.endIP.label\" />\n </span>\n <span\n v-if=\"showRemove\"\n class=\"remove\"\n />\n </div>\n <div\n class=\"pool-row\"\n :class=\"{\n [row.type]: true,\n }\"\n >\n <div class=\"pool-subnet\">\n <span v-if=\"isView\">\n {{ row.subnet }}\n </span>\n <input\n v-else\n v-model=\"row.subnet\"\n type=\"text\"\n @input=\"queueUpdate\"\n />\n </div>\n <div\n class=\"pool-gateway\"\n >\n <span v-if=\"isView\">\n {{ row.gateway }}\n </span>\n <input\n v-else\n v-model=\"row.gateway\"\n type=\"text\"\n @input=\"queueUpdate\"\n />\n </div>\n <div\n v-if=\"row.type === 'range'\"\n class=\"pool-startIP\"\n >\n <span v-if=\"isView\">\n {{ row.rangeStart }}\n </span>\n <input\n v-else\n v-model=\"row.rangeStart\"\n type=\"text\"\n @input=\"queueUpdate\"\n />\n </div>\n <div\n v-if=\"row.type === 'range'\"\n class=\"pool-endIP\"\n >\n <span v-if=\"isView\">\n {{ row.rangeEnd }}\n </span>\n <input\n v-else\n v-model=\"row.rangeEnd\"\n type=\"text\"\n @input=\"queueUpdate\"\n />\n </div>\n <div\n v-if=\"showRemove\"\n class=\"remove\"\n >\n <button\n type=\"button\"\n class=\"btn role-link\"\n @click=\"remove(idx)\"\n >\n <t k=\"generic.remove\" />\n </button>\n </div>\n </div>\n </div>\n </div>\n <div\n v-if=\"showAdd\"\n class=\"footer\"\n >\n <button\n type=\"button\"\n class=\"btn role-tertiary add\"\n @click=\"addCIDR()\"\n >\n <t k=\"harvester.ipPool.cidr.addLabel\" />\n </button>\n <button\n type=\"button\"\n class=\"btn role-tertiary add\"\n @click=\"addRange()\"\n >\n <t k=\"harvester.ipPool.range.addLabel\" />\n </button>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .pool-headers, .pool-row {\n display: grid;\n grid-column-gap: $column-gutter;\n margin-bottom: 10px;\n align-items: center;\n\n &.cidr {\n grid-template-columns: 40%+$column-gutter 40%+$column-gutter 15%;\n }\n\n &.range {\n grid-template-columns: 20% 20% 20% 20% 15%;\n }\n }\n</style>\n","import { render } from \"./Range.vue?vue&type=template&id=070c8736&scoped=true\"\nimport script from \"./Range.vue?vue&type=script&lang=js\"\nexport * from \"./Range.vue?vue&type=script&lang=js\"\n\nimport \"./Range.vue?vue&type=style&index=0&id=070c8736&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-070c8736\"]])\n\nexport default __exports__","<script>\nimport debounce from 'lodash/debounce';\n\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { LabeledInput } from '@components/Form/LabeledInput';\n\nimport { NETWORK_ATTACHMENT } from '@shell/config/types';\nimport { _EDIT } from '@shell/config/query-params';\nimport Priority from './Priority';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n LabeledSelect,\n LabeledInput,\n Priority,\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n mode: {\n type: String,\n default: _EDIT,\n },\n },\n\n data() {\n const selector = this.value || {\n network: '',\n priority: 0,\n scope: [],\n };\n\n return { selector };\n },\n\n computed: {\n networkOptions() {\n const networks = this.$store.getters['harvester/all'](NETWORK_ATTACHMENT) || [];\n\n return [{\n label: this.t('generic.none'),\n value: '',\n }, ...networks.map((n) => ({\n label: n.id,\n value: n.id,\n }))];\n },\n },\n\n created() {\n this.queueUpdate = debounce(this.update, 500);\n },\n\n methods: {\n update() {\n if ( this.isView ) {\n return;\n }\n\n this.$emit('update:value', this.selector);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"selector.network\"\n :label=\"t('harvester.ipPool.network.label')\"\n :options=\"networkOptions\"\n :mode=\"mode\"\n @update:value=\"queueUpdate\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"selector.priority\"\n :label=\"t('harvester.ipPool.priority.label')\"\n :mode=\"mode\"\n type=\"number\"\n min=\"0\"\n @update:value=\"update\"\n />\n </div>\n </div>\n <Priority\n v-model:value=\"selector.scope\"\n class=\"col span-12\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n</template>\n","import { render } from \"./Selector.vue?vue&type=template&id=3d16d01e\"\nimport script from \"./Selector.vue?vue&type=script&lang=js\"\nexport * from \"./Selector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport { NETWORK_ATTACHMENT, CAPI } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport CruResource from '@shell/components/CruResource';\nimport { HCI } from '@pkg/harvester/types';\nimport Range from './Range';\nimport Selector from './Selector';\n\nexport default {\n name: 'HarvesterIPPool',\n\n emits: ['update:value'],\n\n components: {\n NameNsDescription,\n ResourceTabs,\n Tab,\n CruResource,\n Range,\n Selector,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = {\n networks: this.$store.dispatch(`${ inStore }/findAll`, { type: NETWORK_ATTACHMENT }),\n settings: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SETTING }),\n };\n\n if (this.$store.getters['management/schemaFor'](HCI.HARVESTER_CONFIG)) {\n hash.harvesterConfigs = this.$store.dispatch(`management/findAll`, { type: HCI.HARVESTER_CONFIG });\n }\n\n if (this.$store.getters['management/schemaFor'](CAPI.RANCHER_CLUSTER)) {\n hash.rancherClusters = this.$store.dispatch(`management/findAll`, { type: CAPI.RANCHER_CLUSTER });\n }\n\n await allHash(hash);\n },\n\n data() {\n return { errors: [] };\n },\n\n computed: {\n yamlModifiers() {\n const activelyRemove = [\n 'metadata.managedFields',\n 'metadata.relationships',\n 'metadata.state',\n 'links',\n 'type',\n 'id'\n ];\n\n if (this.isCreate) {\n activelyRemove.push('status');\n }\n\n return { activelyRemove };\n },\n },\n};\n</script>\n\n<template>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n :yaml-modifiers=\"yamlModifiers\"\n @finish=\"save\"\n >\n <NameNsDescription\n :value=\"value\"\n :namespaced=\"false\"\n :mode=\"mode\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <ResourceTabs\n class=\"mt-15\"\n :need-conditions=\"false\"\n :need-related=\"false\"\n :side-tabs=\"true\"\n :mode=\"mode\"\n >\n <Tab\n name=\"range\"\n :label=\"t('harvester.ipPool.tabs.range')\"\n :weight=\"98\"\n class=\"bordered-table\"\n >\n <Range\n v-model:value=\"value.spec.ranges\"\n class=\"col span-12\"\n :mode=\"mode\"\n />\n </Tab>\n <Tab\n name=\"selector\"\n :label=\"t('harvester.ipPool.tabs.selector')\"\n :weight=\"97\"\n class=\"bordered-table\"\n >\n <Selector\n v-model:value=\"value.spec.selector\"\n :mode=\"mode\"\n />\n </Tab>\n </ResourceTabs>\n </CruResource>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=753a6a42\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport RadioGroup from '@components/Form/Radio/RadioGroup';\n\nexport default {\n emits: ['enabled'],\n\n components: {\n LabeledInput,\n LabeledSelect,\n RadioGroup,\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n\n model: {\n type: Object,\n required: true,\n },\n\n mode: {\n type: String,\n default: 'create'\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return { healthCheckEnabled: !!this.value.port };\n },\n\n computed: {\n portOptions() {\n const ports = this.model?.spec?.listeners || [];\n\n return ports.filter((p) => p.port && p.protocol === 'TCP').map((p) => p.backendPort) || [];\n },\n },\n\n methods: {\n onToggle(value) {\n this.$emit('enabled', value);\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-6\">\n <RadioGroup\n v-model:value=\"healthCheckEnabled\"\n :mode=\"mode\"\n name=\"healthCheckEnabled\"\n :labels=\"[t('generic.disabled'),t('generic.enabled')]\"\n :options=\"[false, true]\"\n :disabled=\"disabled\"\n @input=\"onToggle\"\n />\n </div>\n </div>\n <div v-if=\"healthCheckEnabled\">\n <div class=\"row mt-10\">\n <div\n v-if=\"healthCheckEnabled\"\n class=\"col span-6\"\n >\n <LabeledSelect\n v-model:value=\"value.port\"\n :mode=\"mode\"\n :options=\"portOptions\"\n required\n :label=\"t('harvester.service.healthCheckPort.label')\"\n :disabled=\"disabled\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"value.successThreshold\"\n :mode=\"mode\"\n type=\"number\"\n :label=\"t('harvester.service.healthCheckSuccessThreshold.label')\"\n :tooltip=\"t('harvester.service.healthCheckSuccessThreshold.description')\"\n :disabled=\"disabled\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"value.failureThreshold\"\n :mode=\"mode\"\n type=\"number\"\n :label=\"t('harvester.service.healthCheckFailureThreshold.label')\"\n :tooltip=\"t('harvester.service.healthCheckFailureThreshold.description')\"\n :disabled=\"disabled\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"value.periodSeconds\"\n :mode=\"mode\"\n type=\"number\"\n :label=\"t('harvester.service.healthCheckPeriod.label')\"\n :disabled=\"disabled\"\n />\n </div>\n </div>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"value.timeoutSeconds\"\n :mode=\"mode\"\n type=\"number\"\n :label=\"t('harvester.service.healthCheckTimeout.label')\"\n :disabled=\"disabled\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render } from \"./HealthCheck.vue?vue&type=template&id=42a157ca\"\nimport script from \"./HealthCheck.vue?vue&type=script&lang=js\"\nexport * from \"./HealthCheck.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport debounce from 'lodash/debounce';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { removeAt } from '@shell/utils/array';\nimport { clone } from '@shell/utils/object';\nimport Select from '@shell/components/form/Select';\n\nexport default {\n emits: ['update:value'],\n\n components: { Select },\n props: {\n value: {\n type: Array,\n default: null,\n },\n mode: {\n type: String,\n default: _EDIT,\n },\n autoAddIfEmpty: {\n type: Boolean,\n default: true,\n }\n },\n\n data() {\n const rows = clone(this.value || []);\n\n return { rows };\n },\n\n computed: {\n isView() {\n return this.mode === _VIEW;\n },\n\n showAdd() {\n return !this.isView;\n },\n\n showRemove() {\n return !this.isView;\n },\n\n protocolOptions() {\n return ['TCP', 'UDP'];\n },\n },\n\n created() {\n this.queueUpdate = debounce(this.update, 500);\n },\n\n mounted() {\n if ( this.isView ) {\n return;\n }\n\n if (this.autoAddIfEmpty && this.mode !== _EDIT && this?.rows.length < 1) {\n // don't focus on mount because we'll pull focus from name/namespace input\n this.add(false);\n }\n },\n\n methods: {\n add(focus = true) {\n this.rows.push({\n name: '',\n port: null,\n protocol: 'TCP',\n backendPort: null,\n });\n\n this.queueUpdate();\n\n if (this.rows.length > 0 && focus) {\n this.$nextTick(() => {\n const inputs = this.$refs['port-name'];\n\n inputs[inputs.length - 1].focus();\n });\n }\n },\n\n remove(idx) {\n removeAt(this.rows, idx);\n this.queueUpdate();\n },\n\n update() {\n if ( this.isView ) {\n return;\n }\n\n this.$emit('update:value', this.rows);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"rows.length\">\n <div\n class=\"listener-headers\"\n >\n <span class=\"listener-name\">\n <t k=\"harvester.loadBalancer.listeners.name.label\" />\n </span>\n <span class=\"listener-protocol\">\n <t k=\"harvester.loadBalancer.listeners.protocol.label\" />\n </span>\n <span class=\"listener-port\">\n <t k=\"harvester.loadBalancer.listeners.port.label\" />\n <span class=\"text-error\">\n *\n </span>\n </span>\n <span class=\"listener-backendPort\">\n <t k=\"harvester.loadBalancer.listeners.backendPort.label\" />\n <span class=\"text-error\">\n *\n </span>\n </span>\n <span\n v-if=\"showRemove\"\n class=\"remove\"\n />\n </div>\n <div\n v-for=\"(row, idx) in rows\"\n :key=\"idx\"\n class=\"listener-row\"\n >\n <div class=\"port-name\">\n <span v-if=\"isView\">\n {{ row.name }}\n </span>\n <input\n v-else\n ref=\"port-name\"\n v-model.number=\"row.name\"\n type=\"text\"\n :placeholder=\"t('servicePorts.rules.name.placeholder')\"\n @input=\"queueUpdate\"\n />\n </div>\n <div class=\"port-protocol\">\n <span v-if=\"isView\">\n {{ row.protocol }}\n </span>\n <Select\n v-else\n v-model:value=\"row.protocol\"\n :options=\"protocolOptions\"\n @input=\"queueUpdate\"\n />\n </div>\n <div class=\"port\">\n <span v-if=\"isView\">\n {{ row.port }}\n </span>\n <input\n v-else\n ref=\"port\"\n v-model.number=\"row.port\"\n type=\"number\"\n min=\"1\"\n max=\"65535\"\n :placeholder=\"t('servicePorts.rules.listening.placeholder')\"\n @input=\"queueUpdate\"\n />\n </div>\n <div class=\"target-port\">\n <span v-if=\"isView\">{{ row.backendPort }}</span>\n <input\n v-else\n v-model.number=\"row.backendPort\"\n type=\"number\"\n min=\"1\"\n max=\"65535\"\n :placeholder=\"t('harvester.loadBalancer.listeners.backendPort.placeholder')\"\n @input=\"queueUpdate\"\n />\n </div>\n <div\n v-if=\"showRemove\"\n class=\"remove\"\n >\n <button\n type=\"button\"\n class=\"btn role-link\"\n @click=\"remove(idx)\"\n >\n <t k=\"generic.remove\" />\n </button>\n </div>\n </div>\n </div>\n <div\n v-if=\"showAdd\"\n class=\"footer\"\n >\n <button\n type=\"button\"\n class=\"btn role-tertiary add\"\n @click=\"add()\"\n >\n <t k=\"generic.add\" />\n </button>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .listener-headers, .listener-row{\n display: grid;\n grid-column-gap: $column-gutter;\n margin-bottom: 10px;\n align-items: center;\n grid-template-columns: 35% 15% 15% 15% 15%;\n }\n</style>\n","import { render } from \"./Listeners.vue?vue&type=template&id=602acdc3&scoped=true\"\nimport script from \"./Listeners.vue?vue&type=script&lang=js\"\nexport * from \"./Listeners.vue?vue&type=script&lang=js\"\n\nimport \"./Listeners.vue?vue&type=style&index=0&id=602acdc3&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-602acdc3\"]])\n\nexport default __exports__","<script>\nimport { throttle, isEmpty } from 'lodash';\n\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport ResourceTabs from '@shell/components/form/ResourceTabs';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport CruResource from '@shell/components/CruResource';\nimport KeyValue from '@shell/components/form/KeyValue';\nimport Banner from '@components/Banner/Banner';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nimport { MANAGEMENT, NAMESPACE } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport { matching } from '@shell/utils/selector';\nimport { HCI } from '@pkg/harvester/types';\n\nimport Listeners from './Listeners';\nimport HealthCheck from './HealthCheck';\n\nconst NAMESPACE_SELECTOR = 'loadbalancer.harvesterhci.io/namespace';\nconst PROJECT_SELECTOR = 'loadbalancer.harvesterhci.io/project';\n\nexport default {\n name: 'HarvesterLoadBalancer',\n\n emits: ['update:value'],\n\n components: {\n NameNsDescription,\n ResourceTabs,\n LabeledSelect,\n Tab,\n Listeners,\n HealthCheck,\n CruResource,\n KeyValue,\n Banner,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n props: {\n value: {\n type: Object,\n required: true,\n }\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = {\n ipPools: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.IP_POOL }),\n namespaces: this.$store.dispatch(`${ inStore }/findAll`, { type: NAMESPACE }),\n vms: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM }),\n };\n\n if (this.$store.getters['management/schemaFor'](MANAGEMENT.PROJECT)) {\n hash.projects = this.$store.dispatch('management/findAll', { type: MANAGEMENT.PROJECT });\n }\n\n await allHash(hash);\n\n this.updateMatchingVMs();\n },\n\n data() {\n const annotations = this.value.metadata.annotations || [];\n\n if (!this.value.spec.healthCheck) {\n this.value.spec.healthCheck = {};\n }\n\n const matchingVMs = {\n matched: 0,\n matches: [],\n none: true,\n sample: null,\n total: 0,\n };\n\n return {\n ipPool: this.value.spec.ipPool,\n projectSelector: annotations[PROJECT_SELECTOR] || '',\n namespaceSelector: annotations[NAMESPACE_SELECTOR] || '',\n matchingVMs,\n };\n },\n\n computed: {\n ipamOption() {\n return [{\n label: this.t('harvester.loadBalancer.ipam.options.dhcp'),\n value: 'dhcp',\n }, {\n label: this.t('harvester.loadBalancer.ipam.options.pool'),\n value: 'pool',\n }];\n },\n\n ipPoolOptions() {\n const ipPools = this.$store.getters['harvester/all'](HCI.IP_POOL);\n\n const out = ipPools.map((ipPool) => ipPool.id);\n\n return [{\n label: this.t('harvester.loadBalancer.ipPool.options.none'),\n value: '',\n }, ...out];\n },\n\n projectOptions() {\n const projects = this.$store.getters['harvester/all'](MANAGEMENT.PROJECT);\n\n return projects.map((project) => project.id);\n },\n\n namespaceOptions() {\n const namespaces = this.$store.getters['harvester/all'](NAMESPACE);\n\n return namespaces.map((n) => n.id);\n },\n\n backendServerSelector: {\n get() {\n const out = {};\n\n Object.keys(this.value.spec?.backendServerSelector || {}).map((key) => {\n out[key] = (this.value.spec.backendServerSelector[key] || []).join(',') || '';\n });\n\n return out;\n },\n\n set(value) {\n const backendServerSelector = {};\n\n Object.keys(value).map((key) => {\n backendServerSelector[key] = (value[key] || '').split(',');\n });\n\n this.value.spec['backendServerSelector'] = backendServerSelector;\n },\n },\n\n yamlModifiers() {\n const activelyRemove = [\n 'metadata.managedFields',\n 'metadata.relationships',\n 'metadata.state',\n 'links',\n 'type',\n 'id'\n ];\n\n if (this.isCreate) {\n activelyRemove.push('status');\n }\n\n return { activelyRemove };\n },\n\n healthCheckPortInUseWarning() {\n const healthCheckPort = this.value?.spec?.healthCheck?.port;\n const portInUse = this.value?.spec?.listeners?.find((l) => l.backendPort === healthCheckPort);\n\n if (healthCheckPort && portInUse) {\n return this.t('harvester.loadBalancer.healthCheck.warning.portInUse', { port: portInUse.backendPort }, true);\n }\n\n return '';\n }\n },\n\n methods: {\n update() {\n const { projectSelector, namespaceSelector } = this;\n\n if (projectSelector) {\n this.value.metadata.annotations[PROJECT_SELECTOR] = projectSelector;\n }\n\n if (namespaceSelector) {\n this.value.metadata.annotations[NAMESPACE_SELECTOR] = namespaceSelector;\n }\n },\n\n updateMatchingVMs: throttle(function() {\n const backendServerSelector = this.value.spec.backendServerSelector;\n const allVMs = this.$store.getters['harvester/all'](HCI.VM).filter((vm) => vm.metadata.namespace === this.value.metadata.namespace);\n\n if (isEmpty(backendServerSelector)) {\n this.matchingVMs = {\n matched: 0,\n total: allVMs.length,\n none: true,\n sample: null,\n };\n } else {\n const match = matching(allVMs, backendServerSelector, 'spec.template.metadata.labels');\n\n this.matchingVMs = {\n matched: match.length,\n total: allVMs.length,\n none: match.length === 0,\n sample: match[0] ? match[0].nameDisplay : null,\n };\n }\n }, 250, { leading: true }),\n\n healthCheckEnabled(v) {\n if (!v) {\n this.value.spec.healthCheck = {};\n }\n }\n },\n\n watch: {\n backendServerSelector: 'updateMatchingVMs',\n 'value.metadata.namespace': 'updateMatchingVMs',\n },\n};\n</script>\n\n<template>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n :yaml-modifiers=\"yamlModifiers\"\n @finish=\"save\"\n >\n <NameNsDescription\n :value=\"value\"\n :namespaced=\"true\"\n :mode=\"mode\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <ResourceTabs\n class=\"mt-15\"\n :need-conditions=\"false\"\n :need-related=\"false\"\n :side-tabs=\"true\"\n :mode=\"mode\"\n >\n <Tab\n name=\"basic\"\n :label=\"t('harvester.loadBalancer.tabs.basic')\"\n :weight=\"99\"\n class=\"bordered-table\"\n >\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"value.spec.ipam\"\n :label=\"t('harvester.loadBalancer.ipam.label')\"\n :options=\"ipamOption\"\n :mode=\"mode\"\n />\n </div>\n <div\n v-if=\"value.spec.ipam === 'pool'\"\n class=\"col span-6\"\n >\n <LabeledSelect\n v-model:value=\"value.spec.ipPool\"\n :label=\"t('harvester.loadBalancer.ipPool.label')\"\n :options=\"ipPoolOptions\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n </div>\n </Tab>\n <Tab\n v-if=\"value.spec.workloadType === 'vm'\"\n name=\"listeners\"\n :label=\"t('harvester.loadBalancer.tabs.listeners')\"\n :weight=\"98\"\n class=\"bordered-table\"\n >\n <Banner\n v-if=\"healthCheckPortInUseWarning\"\n color=\"warning\"\n >\n <span v-clean-html=\"healthCheckPortInUseWarning\" />\n </Banner>\n <Listeners\n v-model:value=\"value.spec.listeners\"\n class=\"col span-12\"\n :mode=\"mode\"\n />\n </Tab>\n <Tab\n v-if=\"value.spec.workloadType === 'vm'\"\n name=\"backendServer\"\n :label=\"t('harvester.loadBalancer.tabs.backendServer')\"\n :weight=\"97\"\n class=\"bordered-table\"\n >\n <div class=\"row\">\n <div class=\"col span-12\">\n <Banner :color=\"(matchingVMs.none ? 'warning' : 'success')\">\n <span v-clean-html=\"t('harvester.loadBalancer.backendServerSelector.matchingVMs.matchesSome', matchingVMs)\" />\n </Banner>\n </div>\n </div>\n <KeyValue\n v-model:value=\"backendServerSelector\"\n :mode=\"mode\"\n :read-allowed=\"false\"\n :initial-empty-row=\"true\"\n />\n </Tab>\n <Tab\n v-if=\"value.spec.workloadType === 'vm'\"\n name=\"healthCheck\"\n :label=\"t('harvester.loadBalancer.tabs.healthCheck')\"\n :weight=\"96\"\n class=\"bordered-table\"\n >\n <HealthCheck\n v-model:value=\"value.spec.healthCheck\"\n :mode=\"mode\"\n :model=\"value\"\n @enabled=\"healthCheckEnabled\"\n />\n </Tab>\n </ResourceTabs>\n </CruResource>\n</template>\n\n<style lang=\"scss\" scoped>\n $remove: 75;\n $checkbox: 75;\n\n .title {\n margin-bottom: 10px;\n\n .read-from-file {\n float: right;\n }\n }\n\n .ports-headers, .ports-row{\n display: grid;\n grid-column-gap: $column-gutter;\n margin-bottom: 10px;\n align-items: center;\n\n &.show-protocol{\n grid-template-columns: 23% 23% 10% 15% 15% 10%;\n &:not(.show-node-port){\n grid-template-columns: 31% 31% 10% 15% 10%;\n }\n }\n &.show-node-port:not(.show-protocol){\n grid-template-columns: 28% 28% 15% 15% 10%;\n }\n }\n\n .ports-headers {\n color: var(--input-label);\n }\n\n .toggle-host-ports {\n color: var(--primary);\n }\n\n .remove BUTTON {\n padding: 0px;\n }\n\n .ports-row {\n > div {\n height: 100%;\n }\n\n .port-protocol :deep() {\n .unlabeled-select {\n .v-select.inline {\n margin-top: 2px;\n }\n }\n }\n }\n\n .footer {\n margin-top: 10px;\n margin-left: 5px;\n\n .protip {\n float: right;\n padding: 5px 0;\n }\n }\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=201c4480&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=201c4480&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-201c4480\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport ContainerResourceLimit from '@shell/components/ContainerResourceLimit';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport FormValidation from '@shell/mixins/form-validation';\nimport CruResource from '@shell/components/CruResource';\nimport Labels from '@shell/components/form/Labels';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport ResourceQuota from '@shell/components/form/ResourceQuota/Project';\nimport { HARVESTER_TYPES, RANCHER_TYPES } from '@shell/components/form/ResourceQuota/shared';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport Tabbed from '@shell/components/Tabbed';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { NAME } from '@shell/config/product/explorer';\nimport { PROJECT_ID, _VIEW, _CREATE, _EDIT } from '@shell/config/query-params';\nimport ProjectMembershipEditor from '@shell/components/form/Members/ProjectMembershipEditor';\nimport { canViewProjectMembershipEditor } from '@shell/components/form/Members/ProjectMembershipEditor.vue';\nimport { HARVESTER_NAME as HARVESTER } from '@shell/config/features';\nimport { Banner } from '@components/Banner';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n ContainerResourceLimit, CruResource, Labels, LabeledSelect, NameNsDescription, ProjectMembershipEditor, ResourceQuota, Tabbed, Tab, Banner\n },\n\n mixins: [CreateEditView, FormValidation],\n\n inheritAttrs: false,\n\n async fetch() {\n if ( this.$store.getters['management/canList'](MANAGEMENT.POD_SECURITY_POLICY_TEMPLATE) ) {\n this.allPSPs = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.POD_SECURITY_POLICY_TEMPLATE });\n }\n\n // User can only change the PSP if the user has permissions to see the binding schema for PSP Templates\n const pspBindingSchema = this.$store.getters['management/schemaFor'](MANAGEMENT.PSP_TEMPLATE_BINDING);\n\n this.canEditPSPBindings = !!pspBindingSchema;\n },\n data() {\n this.value['spec'] = this.value.spec || {};\n this.value.spec['podSecurityPolicyTemplateId'] = this.value.status?.podSecurityPolicyTemplateId || '';\n\n return {\n allPSPs: [],\n projectRoleTemplateBindingSchema: this.$store.getters[`management/schemaFor`](MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING),\n createLocation: {\n name: 'c-cluster-product-resource-create',\n params: {\n product: NAME,\n resource: MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING,\n },\n query: { [PROJECT_ID]: this.project?.id?.replace('/', ':') }\n },\n resource: MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING,\n saveBindings: null,\n membershipHasOwner: false,\n membershipUpdate: {},\n HARVESTER_TYPES,\n RANCHER_TYPES,\n fvFormRuleSets: [{ path: 'spec.displayName', rules: ['required'] }],\n canEditPSPBindings: true,\n };\n },\n computed: {\n ...mapGetters(['currentCluster', 'isStandaloneHarvester']),\n\n canViewMembers() {\n return canViewProjectMembershipEditor(this.$store);\n },\n\n canEditProject() {\n return this.value?.links?.update;\n },\n\n isDescriptionDisabled() {\n return (this.mode === _EDIT && !this.canEditProject) || false;\n },\n\n canEditTabElements() {\n if (this.mode === _EDIT && !this.canEditProject) {\n return _VIEW;\n }\n\n return this.mode;\n },\n\n showBannerForOnlyManagingMembers() {\n return this.mode === _EDIT && !this.canEditProject;\n },\n\n isK3s() {\n return (this.currentCluster?.spec?.kubernetesVersion || '').includes('k3s');\n },\n\n pspOptions() {\n if ( this.isK3s || !this.currentCluster.spec.defaultPodSecurityPolicyTemplateName ) {\n return null;\n }\n\n const out = [{ label: this.t('project.psp.default'), value: '' }];\n\n if ( this.allPSPs ) {\n for ( const pspt of this.allPSPs ) {\n out.push({\n label: pspt.nameDisplay,\n value: pspt.id,\n });\n }\n }\n\n const cur = this.value.status?.podSecurityPolicyTemplateId;\n\n if ( cur && !out.find((x) => x.value === cur) ) {\n out.unshift({ label: this.t('project.psp.current', { value: cur }), value: cur });\n }\n\n return out;\n },\n\n isHarvester() {\n return this.$store.getters['currentProduct'].inStore === HARVESTER;\n },\n\n resourceQuotaLabel() {\n if (this.isHarvester) {\n return this.t('project.vmDefaultResourceLimit');\n }\n\n return this.t('project.containerDefaultResourceLimit');\n },\n },\n watch: {\n hasOwner() {\n this.errors = this.hasOwner ? [] : [this.t('project.haveOneOwner')];\n }\n },\n created() {\n this.value.metadata['namespace'] = this.$store.getters['currentCluster'].id;\n this.value['spec'] = this.value.spec || {};\n this.value.spec['containerDefaultResourceLimit'] = this.value.spec.containerDefaultResourceLimit || {};\n },\n methods: {\n async save(saveCb) {\n try {\n // clear up of the unused resourceQuotas will now be done on the model side\n\n if (this.mode === _CREATE) {\n const savedProject = await this.value.save();\n\n if (this.membershipUpdate.save) {\n await this.membershipUpdate.save(savedProject.id);\n }\n } else if (this.mode === _EDIT) {\n if (this.canEditProject) {\n await this.value.save(true);\n\n // We updated the Norman resource - re-fetch the Steve resource so we know it is definitely updated in the store\n await this.$store.dispatch('management/find', {\n type: MANAGEMENT.PROJECT,\n id: this.value.id,\n opt: { force: true }\n });\n }\n\n // // we allow users with permissions for projectroletemplatebindings to be able to manage members on projects\n if (this.membershipUpdate.save) {\n const norman = await this.value.norman;\n\n await this.membershipUpdate.save(norman.id);\n }\n }\n\n saveCb(true);\n this.$router.replace(this.value.listLocation);\n } catch (ex) {\n this.errors.push(ex);\n saveCb(false);\n }\n },\n\n onHasOwnerChanged(hasOwner) {\n this['membershipHasOwner'] = hasOwner;\n },\n\n onMembershipUpdate(update) {\n this['membershipUpdate'] = update;\n },\n\n removeQuota(key) {\n ['resourceQuota', 'namespaceDefaultResourceQuota'].forEach((specProp) => {\n if (this.value?.spec[specProp]?.limit && this.value?.spec[specProp]?.limit[key]) {\n delete this.value?.spec[specProp]?.limit[key];\n }\n if (this.value?.spec[specProp]?.usedLimit && this.value?.spec[specProp]?.usedLimit[key]) {\n delete this.value?.spec[specProp]?.usedLimit[key];\n }\n });\n }\n },\n};\n</script>\n<template>\n <CruResource\n class=\"project\"\n :done-route=\"value.listLocation\"\n :errors=\"fvUnreportedValidationErrors\"\n :mode=\"mode\"\n :resource=\"value\"\n :subtypes=\"[]\"\n :can-yaml=\"false\"\n :validation-passed=\"fvFormIsValid\"\n @error=\"e=>errors = e\"\n @finish=\"save\"\n @cancel=\"done\"\n >\n <NameNsDescription\n :value=\"value\"\n :name-editable=\"true\"\n :mode=\"mode\"\n :namespaced=\"false\"\n description-key=\"spec.description\"\n :description-disabled=\"isDescriptionDisabled\"\n name-key=\"spec.displayName\"\n :normalize-name=\"false\"\n :rules=\"{ name: fvGetAndReportPathRules('spec.displayName'), namespace: [], description: [] }\"\n @update:value=\"$emit('update:value', $event)\"\n />\n <div class=\"row mb-20\">\n <div class=\"col span-3\">\n <LabeledSelect\n v-if=\"pspOptions\"\n v-model:value=\"value.spec.podSecurityPolicyTemplateId\"\n class=\"psp\"\n :mode=\"mode\"\n :options=\"pspOptions\"\n :disabled=\"!canEditPSPBindings\"\n :label=\"t('project.psp.label')\"\n />\n </div>\n </div>\n <Tabbed :side-tabs=\"true\">\n <Tab\n v-if=\"canViewMembers\"\n name=\"members\"\n :label=\"t('project.members.label')\"\n :weight=\"10\"\n >\n <Banner\n v-if=\"showBannerForOnlyManagingMembers\"\n color=\"info\"\n :label=\"t('project.membersEditOnly')\"\n />\n <ProjectMembershipEditor\n :mode=\"mode\"\n :parent-id=\"value.id\"\n @has-owner-changed=\"onHasOwnerChanged\"\n @membership-update=\"onMembershipUpdate\"\n />\n </Tab>\n <Tab\n name=\"resource-quotas\"\n :label=\"t('project.resourceQuotas')\"\n :weight=\"9\"\n >\n <ResourceQuota\n v-model:value=\"value\"\n :mode=\"canEditTabElements\"\n :types=\"isStandaloneHarvester ? HARVESTER_TYPES : RANCHER_TYPES\"\n @remove=\"removeQuota\"\n />\n </Tab>\n <Tab\n name=\"container-default-resource-limit\"\n :label=\"resourceQuotaLabel\"\n :weight=\"8\"\n >\n <ContainerResourceLimit\n v-model:value=\"value.spec.containerDefaultResourceLimit\"\n :mode=\"canEditTabElements\"\n :show-tip=\"false\"\n :register-before-hook=\"registerBeforeHook\"\n />\n </Tab>\n <Tab\n name=\"labels-and-annotations\"\n label-key=\"generic.labelsAndAnnotations\"\n :weight=\"7\"\n >\n <Labels\n default-container-class=\"labels-and-annotations-container\"\n :value=\"value\"\n :mode=\"canEditTabElements\"\n :display-side-by-side=\"false\"\n />\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n","import { render } from \"./management.cattle.io.project.vue?vue&type=template&id=26db8e94\"\nimport script from \"./management.cattle.io.project.vue?vue&type=script&lang=js\"\nexport * from \"./management.cattle.io.project.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CruResource from '@shell/components/CruResource';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport ResourceTabs from '@shell/components/form/ResourceTabs/index';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport Labels from '@shell/components/form/Labels';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nexport default {\n name: 'EditClusterNetwork',\n\n emits: ['update:value'],\n\n components: {\n CruResource,\n NameNsDescription,\n ResourceTabs,\n Tab,\n Labels,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n computed: {\n doneLocationOverride() {\n return this.value.doneOverride;\n }\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.validate);\n }\n },\n\n methods: {\n validate() {\n const errors = [];\n\n const name = this.value?.metadata?.name;\n\n if (!name) {\n errors.push(this.t('validation.required', { key: this.t('generic.name') }, true));\n } else if (name.length > 12) {\n errors.push(this.t('validation.stringLength.max', {\n key: this.t('generic.name'),\n count: 12,\n }, true));\n }\n\n if (errors.length > 0) {\n return Promise.reject(errors);\n } else {\n return Promise.resolve();\n }\n },\n },\n};\n</script>\n\n<template>\n <CruResource\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n @finish=\"save\"\n >\n <NameNsDescription\n :value=\"value\"\n :mode=\"mode\"\n :namespaced=\"false\"\n @update:value=\"$emit('update:value', $event)\"\n />\n <ResourceTabs\n v-model:value=\"value\"\n :mode=\"mode\"\n :side-tabs=\"true\"\n >\n <Tab\n name=\"labels-and-annotations\"\n label-key=\"generic.labelsAndAnnotations\"\n :weight=\"-1\"\n >\n <Labels\n default-container-class=\"labels-and-annotations-container\"\n :value=\"value\"\n :mode=\"mode\"\n :display-side-by-side=\"false\"\n />\n </Tab>\n </ResourceTabs>\n </CruResource>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=42e6938c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\n\nimport { RadioGroup } from '@components/Form/Radio';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport KeyValue from '@shell/components/form/KeyValue';\n\nimport { HOSTNAME } from '@shell/config/labels-annotations';\nimport { findBy } from '@shell/utils/array';\nimport { HCI } from '../../types';\n\nexport default {\n emits: ['updateMatchingNICs', 'updateMatchingNodes'],\n\n components: {\n RadioGroup,\n LabeledSelect,\n KeyValue,\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n nodes: {\n type: Array,\n default: () => []\n },\n\n mode: {\n type: String,\n default: 'create'\n }\n },\n\n data() {\n const { nodeSelector = {} } = this.value;\n\n let selectNode = 'all';\n let nodeName = '';\n\n if (nodeSelector[HOSTNAME] && Object.keys(nodeSelector).length === 1) {\n selectNode = 'nodeSelector';\n nodeName = nodeSelector[HOSTNAME];\n } else if (Object.keys(nodeSelector).length > 0) {\n selectNode = 'custom';\n }\n\n return {\n selectNode,\n nodeName,\n nodeSelector,\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n selectNodeOptions() {\n const out = [{\n label: this.t(`harvester.vlanConfig.scheduling.affinity.allNodes`),\n value: 'all'\n },\n {\n label: this.t(`harvester.vlanConfig.scheduling.affinity.specificNode`),\n value: 'nodeSelector'\n },\n {\n label: this.t(`harvester.vlanConfig.scheduling.affinity.schedulingRules`),\n value: 'custom'\n }];\n\n return out;\n },\n\n nics() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const linkMonitor = this.$store.getters[`${ inStore }/byId`](HCI.LINK_MONITOR, 'nic') || {};\n const linkStatus = linkMonitor?.status?.linkStatus || {};\n\n const out = [];\n\n Object.keys(linkStatus).map((nodeName) => {\n const nics = linkStatus[nodeName] || [];\n\n nics.map((nic) => {\n if (!findBy(out, 'name', nic.name) && !nic.masterIndex) {\n out.push({\n ...nic,\n nodeName,\n });\n }\n });\n });\n\n return out;\n },\n },\n\n methods: {\n update() {\n const { nodeName, nodeSelector } = this;\n\n switch (this.selectNode) {\n case 'all':\n delete this.value?.nodeSelector;\n\n break;\n case 'nodeSelector':\n delete this.value?.nodeSelector;\n\n Object.assign(this.value, { nodeSelector: { [HOSTNAME]: nodeName } });\n break;\n case 'custom':\n delete this.value.nodeName;\n delete this.value.nodeSelector;\n\n Object.assign(this.value, { nodeSelector });\n break;\n default:\n delete this.value.nodeSelector;\n }\n\n this.$emit('updateMatchingNICs');\n this.$emit('updateMatchingNodes');\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <RadioGroup\n v-model:value=\"selectNode\"\n name=\"selectNode\"\n :options=\"selectNodeOptions\"\n :mode=\"mode\"\n @update:value=\"update\"\n />\n </div>\n <template v-if=\"selectNode === 'nodeSelector'\">\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"nodeName\"\n :label=\"t('workload.scheduling.affinity.nodeName')\"\n :options=\"nodes || []\"\n :mode=\"mode\"\n :multiple=\"false\"\n @update:value=\"update\"\n />\n </div>\n </div>\n </template>\n <template v-else-if=\"selectNode === 'custom'\">\n <KeyValue\n v-model:value=\"nodeSelector\"\n :key-label=\"t('generic.key')\"\n :mode=\"mode\"\n :add-label=\"t('workload.scheduling.affinity.addNodeSelector')\"\n :read-allowed=\"false\"\n :value-label=\"t('generic.value')\"\n :initial-empty-row=\"true\"\n @update:value=\"update\"\n />\n </template>\n </div>\n</template>\n","import { render } from \"./NodeSelector.vue?vue&type=template&id=912808be\"\nimport script from \"./NodeSelector.vue?vue&type=script&lang=js\"\nexport * from \"./NodeSelector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { isEmpty, throttle } from 'lodash';\n\nimport CruResource from '@shell/components/CruResource';\nimport NameNsDescription from '@shell/components/form/NameNsDescription';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport ArrayListSelect from '@shell/components/form/ArrayListSelect';\nimport LabelValue from '@shell/components/LabelValue';\nimport Loading from '@shell/components/Loading';\nimport { Banner } from '@components/Banner';\n\nimport CreateEditView from '@shell/mixins/create-edit-view';\n\nimport { NODE } from '@shell/config/types';\nimport { set, clone } from '@shell/utils/object';\nimport { uniq, findBy } from '@shell/utils/array';\nimport { allHash } from '@shell/utils/promise';\nimport { HOSTNAME } from '@shell/config/labels-annotations';\nimport { matching } from '@shell/utils/selector';\nimport { HCI } from '../../types';\n\nimport NodeSelector from './NodeSelector';\n\nexport default {\n emits: ['update:value'],\n\n components: {\n CruResource,\n NameNsDescription,\n LabeledInput,\n LabeledSelect,\n Tabbed,\n Tab,\n NodeSelector,\n ArrayListSelect,\n LabelValue,\n Loading,\n Banner,\n },\n\n mixins: [CreateEditView],\n\n inheritAttrs: false,\n\n data() {\n const originNics = clone(this.value?.spec?.uplink?.nics || []);\n\n const matchingNodes = {\n matched: 0,\n matches: [],\n none: true,\n sample: null,\n total: 0,\n };\n\n return {\n type: 'vlan',\n matchNICs: [],\n originNics,\n matchingNodes,\n nicErrors: [],\n };\n },\n\n created() {\n if (this.registerBeforeHook) {\n this.registerBeforeHook(this.validate);\n }\n\n const clusterNetwork = this.$route.query.clusterNetwork;\n\n if (clusterNetwork) {\n set(this.value, 'spec.clusterNetwork', clusterNetwork);\n }\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = {\n linkMonitors: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.LINK_MONITOR }),\n nodes: this.$store.dispatch(`${ inStore }/findAll`, { type: NODE }),\n };\n\n await allHash(hash);\n\n this.updateMatchingNICs();\n this.updateMatchingNodes();\n },\n\n computed: {\n nodeOptions() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const nodes = this.$store.getters[`${ inStore }/all`](NODE);\n\n return nodes.filter((n) => n.isEtcd !== 'true').map((node) => {\n return {\n label: node.nameDisplay,\n value: node.id\n };\n });\n },\n\n mtu: {\n get() {\n return this.value?.spec?.uplink?.linkAttributes?.mtu;\n },\n\n set(value) {\n set(this.value, 'spec.uplink.linkAttributes.mtu', value);\n }\n },\n\n bondOptionMode: {\n get() {\n return this.value?.spec?.uplink?.bondOptions?.mode;\n },\n\n set(value) {\n set(this.value, 'spec.uplink.bondOptions.mode', value);\n },\n },\n\n miimon: {\n get() {\n return this.value?.spec?.uplink?.bondOptions?.miimon;\n },\n\n set(value) {\n set(this.value, 'spec.uplink.bondOptions.miimon', value);\n },\n },\n\n bondOptions() {\n return [\n 'balance-rr',\n 'active-backup',\n 'balance-xor',\n 'broadcast',\n '802.3ad',\n 'balance-tlb',\n 'balance-alb',\n ];\n },\n\n doneLocationOverride() {\n return this.value.doneOverride;\n },\n\n nics() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const linkMonitor = this.$store.getters[`${ inStore }/byId`](HCI.LINK_MONITOR, 'nic') || {};\n const linkStatus = linkMonitor?.status?.linkStatus || {};\n const nodes = this.nodes.map((n) => n.id);\n\n const out = [];\n\n // The node name in the Link monitor is not deleted after the nodes is deleted\n // So the UI needs to filter it first.\n Object.keys(linkStatus).map((nodeName) => {\n if (nodes.includes(nodeName)) {\n const nics = linkStatus[nodeName] || [];\n\n nics.map((nic) => {\n out.push({\n ...nic,\n nodeName,\n });\n });\n }\n });\n\n return out;\n },\n\n nicOptions() {\n const out = [];\n const map = {};\n\n (this.matchNICs || []).map((nic) => {\n if (nic.masterIndex && !this.originNics.includes(nic.name)) {\n set(map, `${ nic.name }.masterIndex`, true);\n } else if (!findBy(out, 'name', nic.name)) {\n out.push(nic);\n\n set(map, `${ nic.name }.total`, 1);\n set(map, `${ nic.name }.down`, nic.state === 'down' ? 1 : 0);\n } else if (findBy(out, 'name', nic.name)) {\n set(map, `${ nic.name }.total`, map[nic.name].total + 1);\n set(map, `${ nic.name }.down`, nic.state === 'down' ? map[nic.name].down + 1 : map[nic.name].down);\n }\n });\n\n return out.filter((o) => !map[o.name].masterIndex).map((o) => {\n let label = '';\n\n if (map[o.name].down === 0) {\n label = `${ o.name } (Up)`;\n } else if (map[o.name].total === 1) {\n label = `${ o.name } (Down)`;\n } else {\n label = `${ o.name } (${ map[o.name].down }/${ map[o.name].total } Down)`;\n }\n\n return {\n label,\n value: o.name,\n disabled: map[o.name].down > 0,\n };\n });\n },\n\n nodes() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const nodes = this.$store.getters[`${ inStore }/all`](NODE);\n\n return nodes.filter((n) => n.isEtcd !== 'true');\n },\n },\n\n methods: {\n validate() {\n const errors = [];\n\n const nics = this.value.spec?.uplink?.nics || [];\n const nicRequired = this.t('validation.arrayCountRequired', { key: this.t('harvester.vlanConfig.uplink.nics.label'), count: 1 }, true);\n\n if (nics.length === 0) {\n errors.push(nicRequired);\n } else {\n nics.map((n) => {\n if (!n) {\n errors.push(nicRequired);\n }\n\n const option = this.nicOptions.find((option) => option.value === n);\n\n if (option && option?.disabled) {\n errors.push(this.t('harvester.vlanConfig.uplink.nics.validate.available', { nic: n }, true));\n }\n });\n }\n\n if (!this.value?.metadata?.name) {\n errors.push(this.t('validation.required', { key: this.t('generic.name') }, true));\n }\n\n if (!this.value?.spec?.clusterNetwork) {\n errors.push(this.t('validation.required', { key: this.t('harvester.network.clusterNetwork.label') }, true));\n }\n\n if (errors.length > 0) {\n return Promise.reject(uniq(errors));\n } else {\n const miimon = this.value?.spec?.uplink?.bondOptions?.miimon;\n\n if (!miimon && miimon !== 0) {\n delete this.value?.spec?.uplink?.bondOptions?.miimon;\n }\n\n const mtu = this.value?.spec?.uplink?.linkAttributes?.mtu;\n\n if (!mtu && mtu !== 0 ) {\n delete this.value?.spec?.uplink?.linkAttributes?.mtu;\n }\n\n return Promise.resolve();\n }\n },\n\n updateMatchingNICs: throttle(function() {\n const nodeSelector = this.value?.spec?.nodeSelector || {};\n\n const allNICs = this.nics || [];\n let matchNICs = [];\n let commonNodes = [];\n\n if (isEmpty(nodeSelector)) {\n matchNICs = clone(allNICs);\n commonNodes = (this.nodes || []).map((n) => n.id);\n } else if (nodeSelector[HOSTNAME] && Object.keys(nodeSelector).length === 1) {\n matchNICs = allNICs.filter((n) => n.nodeName === nodeSelector[HOSTNAME]);\n commonNodes = [nodeSelector[HOSTNAME]];\n } else {\n const matchNodes = matching(this.nodes || [], nodeSelector).map((n) => n.id);\n\n matchNICs = allNICs.filter((n) => matchNodes.includes(n.nodeName));\n commonNodes = matchNodes.map((n) => n.id);\n }\n\n this.matchNICs = this.intersection(matchNICs, commonNodes) || [];\n }, 250, { leading: true }),\n\n intersection(nics = [], commonNodes = []) {\n const map = {};\n\n nics.map((n) => {\n map[n.name] = (map[n.name] || 0) + 1;\n });\n\n return nics.filter((n) => map[n.name] === commonNodes.length);\n },\n\n updateMatchingNodes: throttle(function() {\n const selector = this.value?.spec?.nodeSelector || {};\n const allNodes = this.nodes || [];\n\n if (isEmpty(selector)) {\n this.matchingNodes = {\n matched: allNodes.length,\n total: allNodes.length,\n none: false,\n sample: allNodes[0] ? allNodes[0].nameDisplay : null,\n };\n } else if (selector[HOSTNAME] && Object.keys(selector).length === 1) {\n const matchNode = allNodes.find((n) => n.id === selector[HOSTNAME]);\n\n if (matchNode) {\n this.matchingNodes = {\n matched: 1,\n total: allNodes.length,\n none: false,\n sample: matchNode.nameDisplay,\n };\n } else {\n this.matchingNodes = {\n matched: 0,\n total: 0,\n none: true,\n sample: null,\n };\n }\n } else {\n const match = matching(allNodes, selector);\n\n this.matchingNodes = {\n matched: match.length,\n total: allNodes.length,\n none: match.length === 0,\n sample: match[0] ? match[0].nameDisplay : null,\n };\n }\n }, 250, { leading: true }),\n },\n\n watch: {\n nicOptions(options) {\n const nics = this.value.spec?.uplink?.nics || [];\n const nicErrors = [];\n\n nics.map((n) => {\n const option = options.find((option) => option.value === n);\n\n if ((option && option?.disabled) || !option) {\n nicErrors.push(this.t('harvester.vlanConfig.uplink.nics.validate.available', { nic: n }, true));\n }\n });\n\n this.nicErrors = uniq(nicErrors);\n },\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <CruResource\n v-else\n :resource=\"value\"\n :mode=\"mode\"\n :errors=\"errors\"\n @finish=\"save\"\n >\n <NameNsDescription\n :value=\"value\"\n :mode=\"mode\"\n :namespaced=\"false\"\n @update:value=\"$emit('update:value', $event)\"\n />\n\n <Tabbed\n :side-tabs=\"true\"\n >\n <Tab\n name=\"nodeSelector\"\n :label=\"t('harvester.vlanConfig.titles.nodeSelector')\"\n :weight=\"99\"\n >\n <div class=\"row\">\n <div class=\"col span-12\">\n <Banner :color=\"(matchingNodes.none ? 'warning' : 'success')\">\n <span v-clean-html=\"t('harvester.vlanConfig.nodeSelector.matchingNodes.matchesSome', matchingNodes)\" />\n </Banner>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <NodeSelector\n :mode=\"mode\"\n :value=\"value.spec\"\n :nodes=\"nodeOptions\"\n @updateMatchingNICs=\"updateMatchingNICs\"\n @updateMatchingNodes=\"updateMatchingNodes\"\n />\n </div>\n </div>\n </Tab>\n\n <Tab\n name=\"upLink\"\n :label=\"t('harvester.vlanConfig.titles.uplink')\"\n :weight=\"99\"\n :show-header=\"false\"\n >\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabelValue\n :name=\"t('harvester.network.clusterNetwork.label')\"\n :value=\"value.spec.clusterNetwork\"\n />\n </div>\n <div class=\"col span-6\">\n <LabelValue\n name=\"Type\"\n value=\"VLAN\"\n />\n </div>\n </div>\n\n <div class=\"row mt-20\">\n <div class=\"col span-12\">\n <Banner\n v-for=\"(err, i) in nicErrors\"\n :key=\"i\"\n color=\"warning\"\n :label=\"err\"\n />\n <ArrayListSelect\n v-model:value=\"value.spec.uplink.nics\"\n :mode=\"mode\"\n :options=\"nicOptions\"\n :enable-default-add-value=\"false\"\n :array-list-props=\"{\n addLabel: t('harvester.vlanConfig.uplink.nics.addLabel'),\n initialEmptyRow: true,\n title: t('harvester.vlanConfig.uplink.nics.label'),\n required: true,\n protip: false,\n }\"\n :select-props=\"{\n placeholder: t('harvester.vlanConfig.uplink.nics.placeholder'),\n }\"\n />\n </div>\n </div>\n\n <h3 class=\"mt-20\">\n {{ t('harvester.vlanConfig.titles.bondOptions') }}\n </h3>\n <div class=\"row\">\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"bondOptionMode\"\n :label=\"t('harvester.vlanConfig.uplink.bondOptions.mode.label')\"\n :mode=\"mode\"\n :options=\"bondOptions\"\n required\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"miimon\"\n :label=\"t('harvester.vlanConfig.uplink.bondOptions.miimon.label')\"\n :mode=\"mode\"\n type=\"number\"\n :tooltip=\"t('harvester.vlanConfig.uplink.bondOptions.miimon.tooltip', null, true)\"\n />\n </div>\n </div>\n\n <h3 class=\"mt-20\">\n {{ t('harvester.vlanConfig.titles.attributes') }}\n </h3>\n <div class=\"row mt-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value.number=\"mtu\"\n :label=\"t('harvester.vlanConfig.uplink.linkAttributes.mtu.label')\"\n :mode=\"mode\"\n type=\"number\"\n />\n </div>\n </div>\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n\n<style lang=\"scss\" scoped>\nbutton {\n all: unset;\n height: 0;\n position: relative;\n top: -35px;\n float: right;\n margin-right: 7px;\n\n cursor: pointer;\n\n .align-value {\n padding-top: 7px;\n }\n}\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=7d89080c&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=7d89080c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d89080c\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tag[data-v-6b2f75f1]{border:1px solid var(--primary);border-radius:var(--border-radius);box-sizing:border-box;margin:0;padding:0;font-size:14px;line-height:20px;list-style:none;display:inline-block;height:auto;margin-inline-end:8px;padding-inline:7px;white-space:nowrap;background:var(--accent-btn);opacity:1;text-align:start;color:var(--link);margin-bottom:10px;margin-right:8px;padding-top:8px;padding-bottom:8px}.tag i[data-v-6b2f75f1],.tag.add[data-v-6b2f75f1]{cursor:pointer}.tag.add[data-v-6b2f75f1]{border-style:dashed}.tag.add[data-v-6b2f75f1],.tag.input[data-v-6b2f75f1]{background:var(--body-bg)}.tag.input[data-v-6b2f75f1]{border:none;border-radius:none;padding:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-034d9714] .radio-group{display:flex}[data-v-034d9714] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"p[data-v-62a46348]{display:flex;align-items:center}.icon-h-question[data-v-62a46348]{font-size:24px}.tip[data-v-62a46348]{font-size:15px}.goCA[data-v-62a46348]{margin:0 3px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".box[data-v-d281fc5e]{position:relative;padding-top:40px}.remove[data-v-d281fc5e]{position:absolute;top:10px;right:10px;padding:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".box[data-v-34b9f214]{position:relative;padding-top:40px}.remove[data-v-34b9f214]{position:absolute;top:10px;right:10px;padding:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".chooseFile[data-v-27a09764]{display:flex;align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-11b4ae46] .radio-group{display:flex}[data-v-11b4ae46] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".restart-modal[data-v-574c27ab]{z-index:45}.prompt-restart[data-v-574c27ab]{margin:0}.bottom[data-v-574c27ab]{display:flex;flex-direction:column;flex:1}.bottom .banner[data-v-574c27ab]{margin-top:0}.bottom .buttons[data-v-574c27ab]{display:flex;justify-content:flex-end;width:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-24a677c4] .radio-group{display:flex}[data-v-24a677c4] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-4b980a18] .radio-group{display:flex}[data-v-4b980a18] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-14fad698] .radio-group{display:flex}[data-v-14fad698] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-bdc3ab06] .radio-group{display:flex}[data-v-bdc3ab06] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-4ac8f18c] .radio-group{display:flex}[data-v-4ac8f18c] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-077b6bf4] .radio-group{display:flex}[data-v-077b6bf4] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-b9cb7bba] .radio-group{display:flex}[data-v-b9cb7bba] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-7d4cbfa3] .radio-group{display:flex}[data-v-7d4cbfa3] .radio-group .radio-container{margin-right:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-65b4127d] .yaml-editor{flex:1;min-height:200px}[data-v-65b4127d] .yaml-editor .code-mirror .CodeMirror{position:static;height:auto;min-height:200px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".close[data-v-30b402d6]{top:10px;right:10px;padding:0;position:absolute}.disk[data-v-30b402d6]{position:relative}.disk .secret-name[data-v-30b402d6]{height:61px}.disk[data-v-30b402d6]:not(:last-of-type){padding-bottom:10px;margin-bottom:30px}.flex[data-v-30b402d6]{display:flex;justify-content:space-between}.badge-state[data-v-30b402d6]{padding:2px 5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#node[data-v-5f263130]{display:flex;flex-direction:column}#node[data-v-5f263130],#node .content[data-v-5f263130]{flex-grow:1}#node .wrapper[data-v-5f263130]{position:relative}#node .nicOption[data-v-5f263130]{display:flex;justify-content:space-between}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".header[data-v-392bdb63]{display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".output{display:flex;flex-direction:column;flex-grow:1}.output .provider h1{display:inline-block}.output .box-container{display:flex;justify-content:flex-start;flex-wrap:wrap;margin:0 -10px}@media only screen and (min-width:480px){.output .box-container .toggle-gradient-box{width:100%}}@media only screen and (min-width:768px){.output .box-container .toggle-gradient-box{width:calc(50% - 20px)}}@media only screen and (min-width:992px){.output .box-container .toggle-gradient-box{width:calc(33.33333% - 20px)}}@media only screen and (min-width:1281px){.output .box-container .toggle-gradient-box{width:calc(25% - 20px)}}.output .box-container .toggle-gradient-box{margin:10px;padding:10px;position:relative;border-radius:calc(var(--border-radius)*1.5)}.output .box-container .toggle-gradient-box:hover{box-shadow:0 0 30px var(--shadow);transition:box-shadow .1s ease-in-out;cursor:pointer}.output .box-container .toggle-gradient-box .side-label{transform:rotate(180deg);position:absolute;top:0;left:0;bottom:0;min-width:calc(var(--border-radius)*1.5);width:15px;border-top-right-radius:calc(var(--border-radius)*1.5);border-bottom-right-radius:calc(var(--border-radius)*1.5)}.output .box-container .toggle-gradient-box .side-label label{text-align:center;writing-mode:tb;height:100%;padding:0 2px;display:block;white-space:no-wrap;text-overflow:ellipsis}.output .box-container .toggle-gradient-box .logo{text-align:center;width:60px;height:60px;border-radius:calc(var(--border-radius)*2);overflow:hidden;background-color:#fff;display:inline-block;vertical-align:middle}.output .box-container .toggle-gradient-box .logo img{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;position:relative;top:2px}.output .box-container .toggle-gradient-box:hover{background-position:100%}.output .box-container .toggle-gradient-box .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:0;display:inline-block;vertical-align:middle}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"h3[data-v-34ffb89b]{margin-top:2em}input[data-v-34ffb89b]{margin-top:1em}.route[real-mode=view] .label[data-v-34ffb89b]{color:var(--input-label)}button[data-v-34ffb89b]{margin-left:.5em}a[data-v-34ffb89b]:hover{text-decoration:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".edit-change[data-v-01b4cf42]{align-items:center;display:flex}.edit-change>h5[data-v-01b4cf42]{flex:1}[data-v-01b4cf42] .edit-help code{padding:1px 5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".custom-headers[data-v-4918df50]{align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".labeled-input.compact-input[data-v-8c848812]{padding:7px 10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".labeled-input.compact-input[data-v-1618b260]{padding:7px 10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".labeled-input.compact-input[data-v-6afc4f36]{padding:7px 10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#restore[data-v-dcf8e7de]{display:flex;flex-grow:1;flex-direction:column}#restore[data-v-dcf8e7de] .radio-group{display:flex}#restore[data-v-dcf8e7de] .radio-group .radio-container{margin-right:30px}#restore .content[data-v-dcf8e7de]{flex-grow:1}#restore .footer[data-v-dcf8e7de]{border-top:var(--header-border-size) solid var(--header-border);margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:10px 20px}#restore .footer[data-v-dcf8e7de] .spacer-small{padding:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".kv-item.value>.unlabeled-select[data-v-1d4328c1]{height:40px;line-height:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#restore[data-v-6c93c587]{display:flex;flex-grow:1;flex-direction:column}#restore[data-v-6c93c587] .radio-group{display:flex}#restore[data-v-6c93c587] .radio-group .radio-container{margin-right:30px}#restore .content[data-v-6c93c587]{flex-grow:1}#restore .footer[data-v-6c93c587]{border-top:var(--header-border-size) solid var(--header-border);margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:10px 20px}#restore .footer[data-v-6c93c587] .spacer-small{padding:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".compat-matrix,.device-col{display:flex}.device-col{flex-direction:column;border-right:1px solid var(--border)}.device-col>*{border-bottom:1px solid var(--border)}.compat-cell{flex-basis:1em;padding:0 10px 0 10px}.compat-cell.has-device{background-color:var(--info-banner-bg)}.device-label,.node-label{display:flex;align-items:center;color:var(--input-label)}.node-label{padding:0 10px;justify-content:center}.blank-corner,.compat-cell,.device-label,.node-label{flex-basis:calc(2em + 10px)}.blank-corner{background:linear-gradient(to top right,#fff 0,#fff calc(50% - 1px),var(--body-text) 50%,#fff calc(50% + 1px),#fff 100%)}.blank-corner DIV.text-right{padding-left:80px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#vm[data-v-118c4d85] .vm-radio-group .radio-group{display:flex}#vm[data-v-118c4d85] .vm-radio-group .radio-group .radio-container{margin-right:30px}#vm .restart[data-v-118c4d85]{display:flex;justify-content:flex-end}#vm .banner-right[data-v-118c4d85]{width:auto;display:flex;justify-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".pool-headers[data-v-3ca2ec55]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center;grid-template-columns:40% 40% 15%}.pool-headers.show-project-and-cluster[data-v-3ca2ec55]{grid-template-columns:25% 25% 25% 15%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".pool-row[data-v-6c39bd05]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center;grid-template-columns:40% 40% 15%}.pool-row.show-project-and-cluster[data-v-6c39bd05]{grid-template-columns:25% 25% 25% 15%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".pool-headers[data-v-070c8736],.pool-row[data-v-070c8736]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center}.pool-headers.cidr[data-v-070c8736],.pool-row.cidr[data-v-070c8736]{grid-template-columns:41.75% 41.75% 15%}.pool-headers.range[data-v-070c8736],.pool-row.range[data-v-070c8736]{grid-template-columns:20% 20% 20% 20% 15%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".listener-headers[data-v-602acdc3],.listener-row[data-v-602acdc3]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center;grid-template-columns:35% 15% 15% 15% 15%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".title[data-v-201c4480]{margin-bottom:10px}.title .read-from-file[data-v-201c4480]{float:right}.ports-headers[data-v-201c4480],.ports-row[data-v-201c4480]{display:grid;grid-column-gap:1.75%;margin-bottom:10px;align-items:center}.ports-headers.show-protocol[data-v-201c4480],.ports-row.show-protocol[data-v-201c4480]{grid-template-columns:23% 23% 10% 15% 15% 10%}.ports-headers.show-protocol[data-v-201c4480]:not(.show-node-port),.ports-row.show-protocol[data-v-201c4480]:not(.show-node-port){grid-template-columns:31% 31% 10% 15% 10%}.ports-headers.show-node-port[data-v-201c4480]:not(.show-protocol),.ports-row.show-node-port[data-v-201c4480]:not(.show-protocol){grid-template-columns:28% 28% 15% 15% 10%}.ports-headers[data-v-201c4480]{color:var(--input-label)}.toggle-host-ports[data-v-201c4480]{color:var(--primary)}.remove BUTTON[data-v-201c4480]{padding:0}.ports-row>div[data-v-201c4480]{height:100%}.ports-row .port-protocol[data-v-201c4480] .unlabeled-select .v-select.inline{margin-top:2px}.footer[data-v-201c4480]{margin-top:10px;margin-left:5px}.footer .protip[data-v-201c4480]{float:right;padding:5px 0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"button[data-v-7d89080c]{all:unset;height:0;position:relative;top:-35px;float:right;margin-right:7px;cursor:pointer}button .align-value[data-v-7d89080c]{padding-top:7px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./DiskTags.vue?vue&type=style&index=0&id=6b2f75f1&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2ab997d2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./auto-rotate-rke2-certs.vue?vue&type=style&index=0&id=034d9714&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"011aed91\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./backup-target.vue?vue&type=style&index=0&id=62a46348&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5d7a8812\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./containerd-registry.vue?vue&type=style&index=0&id=d281fc5e&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4412edfb\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./csi-driver-config.vue?vue&type=style&index=0&id=34b9f214&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"082769ce\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./ssl-certificates.vue?vue&type=style&index=0&id=27a09764&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3f5ef292\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./vm-force-reset-policy.vue?vue&type=style&index=0&id=11b4ae46&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"073cf01f\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./RestartVMDialog.vue?vue&type=style&index=0&id=574c27ab&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"37a21e9a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./generic.vue?vue&type=style&index=0&id=24a677c4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"21824756\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvester-seeder.vue?vue&type=style&index=0&id=4b980a18&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"52afd3fe\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./nvidia-driver-toolkit.vue?vue&type=style&index=0&id=14fad698&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"77675dd2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./pcidevices-controller.vue?vue&type=style&index=0&id=bdc3ab06&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"097b633b\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./rancher-logging.vue?vue&type=style&index=0&id=4ac8f18c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1492605e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./rancher-monitoring.vue?vue&type=style&index=0&id=077b6bf4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3008a3f0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./rancher-vcluster.vue?vue&type=style&index=0&id=b9cb7bba&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"27f0bb08\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./vm-import-controller.vue?vue&type=style&index=0&id=7d4cbfa3&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d2d2f1a4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.cloudtemplate.vue?vue&type=style&index=0&id=65b4127d&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6b2b15ea\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterDisk.vue?vue&type=style&index=0&id=30b402d6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"45099b66\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=5f263130&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"51547f7a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.keypair.vue?vue&type=style&index=0&id=392bdb63&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2a649d0d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.logging.output.vue?vue&type=style&index=0&id=10b747e0&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ccabc532\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=34ffb89b&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7673b10d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.setting.vue?vue&type=style&index=0&id=01b4cf42&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3051a4b8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=4918df50&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f480f734\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./driver.longhorn.io_v1.vue?vue&type=style&index=0&id=8c848812&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"165b7990\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./driver.longhorn.io_v2.vue?vue&type=style&index=0&id=1618b260&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2d4ffc04\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./lvm.driver.harvesterhci.io.vue?vue&type=style&index=0&id=6afc4f36&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"24b87eda\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.virtualmachinebackup.vue?vue&type=style&index=0&id=dcf8e7de&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"99c9cf44\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.virtualmachineimage.vue?vue&type=style&index=0&id=1d4328c1&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d10aabf8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.vmsnapshot.vue?vue&type=style&index=0&id=6c93c587&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"344e8b72\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./CompatibilityMatrix.vue?vue&type=style&index=0&id=3ec20e2a&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5f8696f8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=118c4d85&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3c9b6400\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./Priority.vue?vue&type=style&index=0&id=3ca2ec55&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"99e79c7c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./PriorityRow.vue?vue&type=style&index=0&id=6c39bd05&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"720afeca\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./Range.vue?vue&type=style&index=0&id=070c8736&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6cebf0b2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./Listeners.vue?vue&type=style&index=0&id=602acdc3&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"54340006\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=201c4480&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"41557fde\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=7d89080c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"676e5870\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","var map = {\n\t\"./__tests__/loki.test\": 28158,\n\t\"./__tests__/loki.test.ts\": 28158,\n\t\"./awsElasticsearch\": 92469,\n\t\"./awsElasticsearch.vue\": 92469,\n\t\"./azurestorage\": 54093,\n\t\"./azurestorage.vue\": 54093,\n\t\"./cloudwatch\": 4991,\n\t\"./cloudwatch.vue\": 4991,\n\t\"./datadog\": 19443,\n\t\"./datadog.vue\": 19443,\n\t\"./elasticsearch\": 97863,\n\t\"./elasticsearch.vue\": 97863,\n\t\"./file\": 77332,\n\t\"./file.vue\": 77332,\n\t\"./forward\": 83158,\n\t\"./forward.vue\": 83158,\n\t\"./gcs\": 17686,\n\t\"./gcs.vue\": 17686,\n\t\"./gelf\": 36118,\n\t\"./gelf.vue\": 36118,\n\t\"./kafka\": 97622,\n\t\"./kafka.vue\": 97622,\n\t\"./kinesisStream\": 37803,\n\t\"./kinesisStream.vue\": 37803,\n\t\"./logdna\": 46636,\n\t\"./logdna.vue\": 46636,\n\t\"./logz\": 72135,\n\t\"./logz.vue\": 72135,\n\t\"./loki\": 42629,\n\t\"./loki.vue\": 42629,\n\t\"./newrelic\": 12951,\n\t\"./newrelic.vue\": 12951,\n\t\"./opensearch\": 26087,\n\t\"./opensearch.vue\": 26087,\n\t\"./redis\": 49054,\n\t\"./redis.vue\": 49054,\n\t\"./s3\": 32156,\n\t\"./s3.vue\": 32156,\n\t\"./splunkHec\": 10918,\n\t\"./splunkHec.vue\": 10918,\n\t\"./sumologic\": 54132,\n\t\"./sumologic.vue\": 54132,\n\t\"./syslog\": 32401,\n\t\"./syslog.vue\": 32401,\n\t\"./utils\": 69598,\n\t\"./utils.js\": 69598\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 28431;","var map = {\n\t\"./\": 69216,\n\t\"./basic\": 40756,\n\t\"./basic.vue\": 40756,\n\t\"./generic\": 94719,\n\t\"./generic.vue\": 94719,\n\t\"./index\": 69216,\n\t\"./index.vue\": 69216,\n\t\"./registry\": 25532,\n\t\"./registry.vue\": 25532,\n\t\"./ssh\": 13286,\n\t\"./ssh.vue\": 13286,\n\t\"./tls\": 64701,\n\t\"./tls.vue\": 64701\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 48254;","var map = {\n\t\"./additional-ca.vue\": 36955,\n\t\"./additional-guest-memory-overhead-ratio.vue\": 53867,\n\t\"./auto-rotate-rke2-certs.vue\": 32158,\n\t\"./backup-target.vue\": 65325,\n\t\"./containerd-registry.vue\": 90955,\n\t\"./csi-driver-config.vue\": 91932,\n\t\"./default-vm-termination-grace-period-seconds.vue\": 59392,\n\t\"./http-proxy.vue\": 18093,\n\t\"./ntp-servers.vue\": 28436,\n\t\"./overcommit-config.vue\": 70726,\n\t\"./ssl-certificates.vue\": 54122,\n\t\"./ssl-parameters.vue\": 13515,\n\t\"./storage-network.vue\": 57589,\n\t\"./support-bundle-image.vue\": 48749,\n\t\"./support-bundle-namespaces.vue\": 30859,\n\t\"./vm-force-reset-policy.vue\": 33955\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 88292;","var map = {\n\t\"./additional-ca.vue\": 36955,\n\t\"./additional-guest-memory-overhead-ratio.vue\": 53867,\n\t\"./auto-rotate-rke2-certs.vue\": 32158,\n\t\"./backup-target.vue\": 65325,\n\t\"./containerd-registry.vue\": 90955,\n\t\"./csi-driver-config.vue\": 91932,\n\t\"./default-vm-termination-grace-period-seconds.vue\": 59392,\n\t\"./http-proxy.vue\": 18093,\n\t\"./ntp-servers.vue\": 28436,\n\t\"./overcommit-config.vue\": 70726,\n\t\"./ssl-certificates.vue\": 54122,\n\t\"./ssl-parameters.vue\": 13515,\n\t\"./storage-network.vue\": 57589,\n\t\"./support-bundle-image.vue\": 48749,\n\t\"./support-bundle-namespaces.vue\": 30859,\n\t\"./vm-force-reset-policy.vue\": 33955\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 26190;","var map = {\n\t\"./generic.vue\": 26370,\n\t\"./harvester-seeder.vue\": 17438,\n\t\"./index.vue\": 81135,\n\t\"./nvidia-driver-toolkit.vue\": 57960,\n\t\"./pcidevices-controller.vue\": 55821,\n\t\"./rancher-logging.vue\": 70927,\n\t\"./rancher-monitoring.vue\": 59289,\n\t\"./rancher-vcluster.vue\": 95627,\n\t\"./vm-import-controller.vue\": 32415\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 2467;","var map = {\n\t\"./custom\": 43868,\n\t\"./custom.vue\": 43868,\n\t\"./driver.longhorn.io_v1\": 30050,\n\t\"./driver.longhorn.io_v1.vue\": 30050,\n\t\"./driver.longhorn.io_v2\": 42822,\n\t\"./driver.longhorn.io_v2.vue\": 42822,\n\t\"./lvm.driver.harvesterhci.io\": 14257,\n\t\"./lvm.driver.harvesterhci.io.vue\": 14257\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6232;","var map = {\n\t\"./harvesterhci.io.addon/generic.vue\": 26370,\n\t\"./harvesterhci.io.addon/harvester-seeder.vue\": 17438,\n\t\"./harvesterhci.io.addon/index.vue\": 81135,\n\t\"./harvesterhci.io.addon/nvidia-driver-toolkit.vue\": 57960,\n\t\"./harvesterhci.io.addon/pcidevices-controller.vue\": 55821,\n\t\"./harvesterhci.io.addon/rancher-logging.vue\": 70927,\n\t\"./harvesterhci.io.addon/rancher-monitoring.vue\": 59289,\n\t\"./harvesterhci.io.addon/rancher-vcluster.vue\": 95627,\n\t\"./harvesterhci.io.addon/vm-import-controller.vue\": 32415,\n\t\"./harvesterhci.io.host/HarvesterDisk.vue\": 13965,\n\t\"./harvesterhci.io.host/HarvesterKsmtuned.vue\": 27547,\n\t\"./harvesterhci.io.host/HarvesterSeeder.vue\": 65864,\n\t\"./harvesterhci.io.host/index.vue\": 83385,\n\t\"./harvesterhci.io.monitoring.alertmanagerconfig/index.vue\": 20906,\n\t\"./harvesterhci.io.storage/index.vue\": 39808,\n\t\"./harvesterhci.io.storage/provisioners/custom.vue\": 43868,\n\t\"./harvesterhci.io.storage/provisioners/driver.longhorn.io_v1.vue\": 30050,\n\t\"./harvesterhci.io.storage/provisioners/driver.longhorn.io_v2.vue\": 42822,\n\t\"./harvesterhci.io.storage/provisioners/lvm.driver.harvesterhci.io.vue\": 14257,\n\t\"./kubevirt.io.virtualmachine/CompatibilityMatrix.vue\": 93987,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/AccessCredentialsUsers.vue\": 58094,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/index.vue\": 60068,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/basicAuth.vue\": 23574,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/sshkey.vue\": 18933,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineCloudConfig/DataTemplate.vue\": 16369,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineCloudConfig/index.vue\": 81559,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineCpuMemory.vue\": 75403,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineNetwork/base.vue\": 48893,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineNetwork/index.vue\": 8746,\n\t\"./kubevirt.io.virtualmachine/VirtualMachinePciDevices/DeviceList.vue\": 79428,\n\t\"./kubevirt.io.virtualmachine/VirtualMachinePciDevices/index.vue\": 7060,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineReserved.vue\": 5257,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineSSHKey.vue\": 59026,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineUSBDevices/DeviceList.vue\": 34529,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineUSBDevices/index.vue\": 10707,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/VGpuDeviceList.vue\": 33212,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/index.vue\": 92200,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineVolume/index.vue\": 95191,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineVolume/type/container.vue\": 88656,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineVolume/type/existing.vue\": 6970,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineVolume/type/vmImage.vue\": 49083,\n\t\"./kubevirt.io.virtualmachine/VirtualMachineVolume/type/volume.vue\": 18693,\n\t\"./kubevirt.io.virtualmachine/index.vue\": 89740,\n\t\"./loadbalancer.harvesterhci.io.ippool/Priority.vue\": 89625,\n\t\"./loadbalancer.harvesterhci.io.ippool/PriorityRow.vue\": 1214,\n\t\"./loadbalancer.harvesterhci.io.ippool/Range.vue\": 52728,\n\t\"./loadbalancer.harvesterhci.io.ippool/Selector.vue\": 10788,\n\t\"./loadbalancer.harvesterhci.io.ippool/index.vue\": 59405,\n\t\"./loadbalancer.harvesterhci.io.loadbalancer/HealthCheck.vue\": 68201,\n\t\"./loadbalancer.harvesterhci.io.loadbalancer/Listeners.vue\": 67347,\n\t\"./loadbalancer.harvesterhci.io.loadbalancer/index.vue\": 49464,\n\t\"./network.harvesterhci.io.clusternetwork/index.vue\": 87544,\n\t\"./network.harvesterhci.io.vlanconfig/NodeSelector.vue\": 95058,\n\t\"./network.harvesterhci.io.vlanconfig/index.vue\": 1307\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 80373;"],"names":["class","key","_createElementBlock","_createElementVNode","_hoisted_1","_hoisted_2","$props","labelKey","_createBlock","_component_t","k","label","_Fragment","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_renderList","value","tag","i","_component_Tag","default","_withCtx","$options","canRemove","onClick","e","onRemoveTag","_hoisted_4","_","addVisible","$data","inputVisible","_cache","args","onClickPlusButton","addLabelKey","addLabel","_hoisted_5","ref","$event","inputValue","type","onBlur","confirmAdd","onKeydown","_withKeys","_withModifiers","name","emits","components","Tag","props","Array","required","String","canAdd","Boolean","mode","_CREATE","disabled","data","tags","this","computed","isCreate","isView","_VIEW","isEdit","_EDIT","methods","$nextTick","$refs","addTagInput","focus","includes","push","$emit","filter","v","__exports__","render","_createVNode","_component_FileSelector","_ctx","t","onSelected","onKeySelected","_component_TextAreaAutoGrow","FileSelector","TextAreaAutoGrow","mixins","CreateEditView","createOnSelected","_component_LabeledInput","ratio","update","LabeledInput","useDefault","_component_RadioGroup","parseDefaultValue","enable","options","labels","_component_UnitInput","expiringInHours","valueModifiers","number","min","max","suffix","RadioGroup","UnitInput","JSON","parse","error","created","stringify","watch","handler","neu","deep","onInput","_component_LabeledSelect","typeOption","endpoint","placeholder","endpointPlaceholder","_component_Tip","icon","text","isS3","bucketName","bucketRegion","accessKeyId","_component_Password","secretAccessKey","virtualHostedStyle","virtualHostedStyleOptions","_component_MessageLink","to","toCA","target","DEFAULT_TYPE","LabeledSelect","Tip","Password","MessageLink","errors","HCI_SETTING","ADDITIONAL_CA","err","cert","mirrors","mirror","idx","_component_InfoBox","remove","Endpoints","multiple","taggable","searchable","_component_KeyValue","Rewrites","title","addMirror","configs","config","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","Auth","Username","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","IdentityToken","_hoisted_16","TLS","InsecureSkipVerify","insecureSkipVerifyOption","addConfig","InfoBox","KeyValue","Object","registerBeforeHook","Function","originMirror","originConfig","originValue","baseValue","Mirrors","clone","Configs","keys","length","_mirrors","_configs","mirrorsKeys","configsKeys","map","randomStr","toLowerCase","willSave","forEach","Promise","reject","resolve","out","splice","configArr","driver","disableEdit","provisioners","volumeSnapshotClassName","getVolumeSnapshotOptions","backupVolumeSnapshotClassName","disableAdd","add","fetch","inStore","$store","getters","hash","csiDrivers","dispatch","CSI_DRIVER","volumeSnapshotClass","VOLUME_SNAPSHOT_CLASS","allHash","initValue","parseValue","provisioner","snapshot","csiConfigJson","Error","entries","LONGHORN_DRIVER","terminationGracePeriodSeconds","Number","_component_Banner","color","raw","httpProxy","httpsProxy","noProxy","Banner","_component_ArrayList","ntpServers","protip","ArrayList","cpu","delay","memory","storage","onKeySelectedCa","_normalizeClass","publicCertificateFileName","privateKeyFileName","caFileName","file","_value","parsedDefaultValue","protocols","protocolOptions","ciphers","split","join","regex","match","startsWith","openVlan","networkType","networkTypes","showVlan","vlan","inputVlan","clusterNetwork","clusterNetworkOptions","range","url","storageNetworkExampleLink","exclude","defaultAddValue","columns","scope","row","L2VLAN","UNTAGGED","NETWORK_TYPE","clusterNetworks","HCI","CLUSTER_NETWORK","vlanStatus","VLAN_STATUS","nodes","NODE","toString","types","untaggedNetworkSettingEnabled","version","docLink","DOC","STORAGE_NETWORK_EXAMPLE","clusterNetworksOptions","net","id","n","isReadyForStorageNetwork","newValue","ip","isArray","valueString","valid","test","hasInvalidCIDR","find","cidr","isValidCIDR","repository","imagePullPolicy","imagePolicyOptions","namespaces","namespaceOptions","NAMESPACE","namespacesStr","N","namespaceStr","period","_component_app_modal","width","height","onClose","close","_component_Card","body","actions","_component_AsyncButton","apply","AppModal","Card","AsyncButton","vm","mapGetters","buttonDone","doActionGrowl","console","exceptionToErrorsArray","_component_Tabbed","_component_Tab","weight","spec","enabled","Tabbed","Tab","_component_CruResource","resource","onFinish","save","_resolveDynamicComponent","currentComponent","CruResource","inheritAttrs","metadata","require","parsingSpecError","toggleEnable","valuesContentJson","image","repo","driverLocation","DEFAULT_VALUE","initSpec","parseValuesContent","undefined","merge","jsyaml","valuesContent","root","resetSpec","values","fluentbit","resources","requests","limits","fluentd","DEFAUL_VALUE","immediate","externalLinks","prometheus","href","link","rel","_component_LazyImage","src","iconSrc","prometheusSpec","scrapeInterval","tooltip","evaluationInterval","retention","retentionSize","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","prometheusNodeExporter","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","grafana","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_26","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","alertmanager","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_36","_hoisted_40","_hoisted_41","_hoisted_42","alertmanagerSpec","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","CATTLE_MONITORING_NAMESPACE","LazyImage","ENDPOINTS","endpoints","isEmpty","amMatch","grafanaMatch","promeMatch","findBy","subsets","grafanaSrc","prometheusSrc","currentCluster","description","hostname","rancherVersion","bootstrapPassword","pvcClaim","size","storageClassName","storageClassOptions","DEFAULT_VALUES","storages","STORAGE_CLASS","s","parameters","backingImage","isDefault","setDefaultClassName","defaultStorage","doneRoute","applyHooks","onCancel","done","_component_NameNsDescription","namespaced","_component_YamlEditor","onOnChanges","YamlEditor","NameNsDescription","cloudInit","CLOUD_INIT","updateBeforeSave","mountedMessage","isProvisioned","isFormatting","isFormatted","isLonghornV1","isCorrupted","formattedBannerLabel","isNew","_component_Tags","allowScheduling","allowSchedulingOptions","_component_BadgeState","readyCondition","status","message","schedulableCondition","targetDisk","schedulableTooltipMessage","provisionPhase","_component_LabelValue","storageAvailable","storageScheduled","storageMaximum","displayName","provisionerTooltip","forceFormatted","forceFormattedDisabled","option","listeners","_component_RadioButton","_mergeProps","val","_toHandlers","isLvm","lvmVolumeGroup","lvmVolumeGroups","isOpen","_component_ModalWithCard","saveCreateVolumeGroup","hideCreateVolumeGroup","content","volumeGroupDialog","_NEW","LabelValue","BadgeState","RadioButton","ModalWithCard","Tags","HarvesterDisk","disks","node","LVM_VOLUME_GROUP","provisionerVersion","LONGHORN_VERSION_V1","longhornSystemVersion","LONGHORN_VERSION_V2","forceLonghornV1","LVM_DRIVER","group","nodeName","g","vgName","unshift","disk","path","evictionRequestedOptions","state","blockDevice","lastFormattedAt","deviceStatus","fileSystem","LastFormattedAt","systems","childParts","canEditPath","originPath","system","BLOCK_DEVICE","LONGHORN_SYSTEM","corrupted","v2DataEngine","LONGHORN","SETTINGS","LONGHORN_V2_DATA_ENGINE","HCI_LABELS_ANNOTATIONS","DISABLE_LONGHORN_V2_ENGINE","isLonghorn","showCreateVolumeGroup","buttonCb","inventory","warningMessages","msg","enableInventory","baseboardSpec","connection","host","_component_Checkbox","insecureTLS","port","selectedSecret","secretOption","events","pollingInterval","saveSecret","cancel","secret","username","password","Checkbox","registerAfterHook","newSecretSelected","saveInventory","SECRET","namespace","describe","get","authSecretRef","set","base64Decode","base64Encode","annotations","show","hide","res","$fetchState","pending","_component_Loading","customName","consoleUrl","hasBlockDevicesSchema","longhornNode","_component_ArrayListGrouped","newDisks","_component_HarvesterDisk","_component_ButtonDropdown","blockDeviceOpts","selectable","onClickAction","addDisk","onDdButtonAction","ddButtonAction","kind","onRemove","hasKsmtunedSchema","_component_HarvesterKsmtuned","hasAddonSchema","seederEnabled","hasInventorySchema","_component_HarvesterSeeder","hasSeederAddon","toEnableSeederAddon","filteredLabels","updateHostLabels","showFormattedWarning","_component_Footer","onSave","onDone","Footer","ArrayListGrouped","HarvesterKsmtuned","ButtonDropdown","Loading","HarvesterSeeder","longhornNodes","NODES","blockDevices","addons","ADD_ONS","secrets","longhornV2LVMSupport","longhornV2DataEngine","INVENTORY","inventories","provisionedBlockDevices","d","isCurrentNode","isLonghornMounted","longhornDisks","mountPoint","lvm","longhorn","engineVersion","getBlockDeviceOpts","seeder","addon","HARVESTER_SEEDER","inv","applyDefaults","HOST_CUSTOM_NAME","HOST_CONSOLE_URL","filteredSystemLabels","removedDisks","diskStatus","diskSpec","formatOptions","increment","minExponent","maxExponent","maxPrecision","storageReserved","formatSi","KSTUNED","cluster","$router","currentRoute","params","HARVESTER_PRODUCT","query","setAnnotation","saveDisk","saveLonghornNode","removedDisk","evictionRequested","addDisks","removeDisks","updatedDisks","isEqual","all","provision","opt","addedToNodeCondition","conditions","isAdded","isRemoved","deviceType","details","devPath","sizeBytes","capacity","parentDevice","isChildAdded","newDisk","action","isParent","sortBy","originLabels","count","retrySave","async","force","setTimeout","accept","randomString","$attrs","publicKey","trimNeu","trim","splitSSH","keyComment","extends","Flow","LOGGING","CLUSTER_FLOW","allNamespaces","defaultNamepsace","ns","$dispatch","LAST_NAMESPACE","_component_Flow","_normalizeProps","_guardReactiveProps","cruMode","subtypes","onError","CLUSTER_OUTPUT","selectedProviders","allProvidersSupported","onChanged","tabChanged","loggingType","outputTypeOptions","outputProvider","providers","getComponent","selectedProvider","bufferYaml","scrolling","initialBufferYaml","EDITOR_MODES","VIEW_CODE","EDIT_CODE","onOnReady","onYamlEditorReady","_component_Labels","LOGGING_EVENT","AUDIT_ONLY","OUTPUT_TYPE","Labels","schemas","SCHEMA","resourceSchema","OUTPUT","schemaDefinition","fetchResourceFields","buffer","createYaml","substring","indexOf","replace","yaml","updateValue","PROVIDERS","provider","specProvider","correctedSpecProvider","servers","selectedProviderDefault","p","hasMultipleProvidersSelected","FLOW_TYPE","AUDIT","enabledProviders","newProvider","providerDefaultSpec","launch","tabbed","select","bufferJson","tab","refresh","cm","getMode","fold","execCommand","isNamespaced","_component_RouteConfig","route","receiverOptions","_component_ResourceTable","headers","receiverTableHeaders","schema","receiverSchema","rows","receivers","getReceiverDetailLink","receiverActions","onClickedActionButton","setActionMenuState","createReceiverLink","_component_router_link","create","_component_ActionMenu","open","receiverActionMenuIsOpen","actionMenuTargetElement","actionMenuTargetEvent","onGoToEdit","goToEdit","onGoToEditYaml","goToEditYaml","onPromptRemove","promptRemove","ActionMenu","ResourceTable","RouteConfig","alertmanagerConfigId","alertmanagerConfigResource","MONITORING","ALERTMANAGERCONFIG","alertmanagerConfigDetailRoute","_detailLocation","alertmanagerConfigActions","availableActions","getReceiverActions","defaultReceiverValues","SPOOFED","ALERTMANAGERCONFIG_RECEIVER_SPEC","routeSchema","ALERTMANAGERCONFIG_ROUTE_SPEC","receiver","_CONFIG","getCreateReceiverRoute","sort","formatter","canBeVariable","newReceiverType","receiverTypes","RECEIVERS_TYPES","selectedReceiverName","selectedRowValue","view","editorMode","translateReceiverTypes","receiverType","receiverData","toggleReceiverActionMenu","eventData","event","targetElement","slice","getEditReceiverConfigRoute","getEditReceiverYamlRoute","nameOfReceiverToDelete","existingReceivers","receiversMinusDeletedItem","arguments","saveNetwork","isUntaggedNetwork","input","bridge","layer3Network","modeOptions","serverIPAddr","gateway","AUTO","MANUAL","NETWORK_ROUTE","endsWith","vlanType","isReady","canSave","isBackupTargetUnAvailable","isEmptyValue","toBackupTargetSetting","_blank","errorMessage","vmbackup","scheduleTypeOptions","onTypeChange","source","vmOptions","cron","retain","maxFailure","validateFailure","isCronValid","schedule","hint","cronstrue","settings","SETTING","vms","VM","allVms","defaultNs","vmNamespace","$route","vmName","apiGroup","BACKUP_TYPE","BACKUP","backupTargetResource","O","getBackupTargetValueIsEmpty","canUpdate","errMessage","nsVmList","vmObjectLists","obj","nameDisplay","SNAPSHOT","newType","valueJson","_type","isCloud","cloudComponent","driverName","hideSensitiveData","dataLabel","dataComponent","SelectIconGrid","nodeDrivers","MANAGEMENT","NODE_DRIVER","newCloudCred","CLOUD_CREDENTIAL","_FLAGGED","editCloudCred","TYPES","cloneCloudCred","realMode","_CLONE","liveValue","DEFAULT_WORKSPACE","secretTypes","OPAQUE","secretType","initialSecretType","typeKey","BASIC","DOCKER_JSON","SSH","CAPI","CREDENTIAL_DRIVER","haveProviders","importCloudCredential","HIDE_SENSITIVE","btnCb","clear","typeDisplay","fallback","initialDisplayFor","ucFirst","substr","selectCustomType","saveSettings","editHelp","canReset","setting","from","hasCustomComponent","customComponent","enumOptions","HCI_ALLOWED_SETTINGS","HCI_SINGLE_CLUSTER_ALLOWED_SETTING","oldValue","isHarvester","customSettingComponents","doneLocationOverride","doneOverride","RANCHER_MANAGER_SUPPORT","commit","go","CLUSTER_REGISTRATION_URL","clusterRegistrationUrlTip","component","callback","contentKey","ev","srcElement","blur","VLAN","defaultPhysicalNIC","settingComp","modeOverride","reclaimPolicy","reclaimPolicyOptions","allowVolumeExpansion","allowVolumeExpansionOptions","volumeBindingMode","volumeBindingModeOptions","allowedTopologies","LVM_TOPOLOGY_LABEL","VOLUME_BINDING_MODE_IMMEDIATE","VOLUME_BINDING_MODE_WAIT","matchLabelExpressions","longhornVersion","mountOptions","volumeEncryptionFeatureEnabled","showUnsupportedStorage","mapFeature","UNSUPPORTED_STORAGE_DRIVERS","DATA_ENGINE_V1","DATA_ENGINE_V2","dataEngine","formatAllowedTopoloties","lvmMatchExpression","R","V","numberOfReplicas","staleReplicaTimeout","nodeSelector","nodeTags","searching","diskSelector","diskTags","migratable","migratableOptions","volumeEncryption","volumeEncryptionOptions","encrypted","secretOptions","CSI_PROVISIONER_SECRET_NAME","CSI_PROVISIONER_SECRET_NAMESPACE","CSI_NODE_PUBLISH_SECRET_NAME","CSI_NODE_PUBLISH_SECRET_NAMESPACE","CSI_NODE_STAGE_SECRET_NAME","CSI_NODE_STAGE_SECRET_NAMESPACE","CSI_SECRETS","allSecrets","isSystem","reduce","sum","uniq","tagsOfNode","defaultParameters","assign","selectedNs","selectedName","thirdPartyStorageFeatureEnabled","DEFAULT_PARAMETERS","volumeGroups","volumeGroupTypes","DEFAULT_TOPOLOGIES","restoreNewVm","disableExisting","backupName","backupOption","restoreResource","keepMacAddress","deletionPolicy","deletionPolicyOption","saveRestore","cancelAction","createObject","apiVersion","RESTORE","virtualMachineBackupName","newVM","backups","restoreMode","resourceName","choices","T","hasVM","attachVmExisting","readyToUse","currentBackupResource","backupList","backupNamespace","B","attachVM","proxyResource","virtualMachineBackupNamespace","generateName","componentTitle","showEditAsYaml","saveImage","sourceType","radioGroupOptions","imageName","selectFile","onChange","handleFileUpload","uploadFileName","checksum","sourceImage","sourceImageOptions","onFocusKey","focusKey","setLabels","keyName","valueName","queueUpdate","internalAnnotations","_component_Select","clearable","calculateOptions","autocorrect","autocapitalize","spellcheck","ENCRYPT","DECRYPT","CLONE","DOWNLOAD","UPLOAD","rawORqcow2","Select","images","IMAGE","storageClasses","defaultStorageClassName","securityParameters","sourceImageNamespace","sourceImageName","selectedImage","cryptoOperation","imageObject","files","fileUrl","HCI_ANNOTATIONS","IMAGE_NAME","isCreateEdit","encryptedStorageClasses","isEncrypted","nonEncryptedStorageClasses","filteredStorages","nue","targetStorageClassName","displayNameWithNamespace","setImageLabels","storageClass","backend","handleEditImage","uploadImage","op","patch","str","suffixName","pop","fileSuffix","VM_IMAGE_FILE_FORMAT","labelValue","IMAGE_SUFFIX","nd","changeNameAndNamespace","selected","os","getOSType","OS_TYPE","click","optionKeys","OS","matchValue","templateSpec","saveVMT","templateValue","realTemplateMode","templateId","isDefaultVersion","onTabChanged","_component_CpuMemory","isConfig","onUpdateCpuMemory","updateCpuMemory","_component_SSHKey","sshKey","updateSSHKey","_component_Volume","diskRows","_component_Network","networkRows","_component_NodeScheduling","template","nodesIdOptions","_component_PodAffinity","filteredNamespaces","affinityLabels","toggler","instanceLabels","systemLabels","setInstanceLabels","runStrategy","runStrategies","osType","maintenanceStrategy","maintenanceStrategies","getMaintenanceStrategyOptionLabel","_component_Reserved","reservedMemory","onUpdateReserved","updateReserved","showAdvanced","role","toggleAdvanced","updateTerminationGracePeriodSeconds","_component_CloudConfig","userScript","networkScript","onUpdateUserData","updateUserData","onUpdateNetworkData","updateNetworkData","cpuPinningFeatureEnabled","cpuPinning","installUSBTablet","installAgent","tpmEnabled","tpmPersistentStateFeatureEnabled","tpmPersistentStateEnabled","efiEnabled","efiPersistentStateFeatureEnabled","efiPersistentStateEnabled","secureBoot","SSHKey","Volume","Network","CpuMemory","CloudConfig","NodeScheduling","PodAffinity","Reserved","VM_MIXIN","cleanForNew","versionName","defaultVersion","as","secretNamePrefix","templates","VM_TEMPLATE","defaultVersionId","versions","VM_VERSION","TEMPLATE_VERSION_CUSTOM_NAME","linkFor","mounted","imageId","parseVM","AFTER_SAVE_HOOKS","yamlEditor","snapshotName","snapshotOption","snapshotNamespace","systemNamespaces","generateYaml","_component_ResourceTabs","sourceOption","isVMImage","updateImage","imageOption","isLonghornV2","frontendDisplay","attachedNode","lastBackup","lastBackupAt","replicasNumber","_component_SortableTable","snapshotHeaders","relatedVolumeSnapshotCounts","dataSource","dataSourceKind","SortableTable","ResourceTabs","_hash","snapshots","VOLUME_SNAPSHOT","pvs","PV","VOLUMES","longhornVolumes","ENGINES","longhornEngines","volumeMode","accessModes","IMAGE_ID","isBlank","interfaceOption","InterfaceOption","STATE","NAME","formatterOpts","opts","addSuffix","needParseSi","align","AGE","VOLUME_DATA_SOURCE_KIND","frontend","longhornVolume","format","nodeID","longhornEngine","rebuildStatus","getAccessMode","sc","readWriteOnce","imageAnnotations","setAnnotations","imageResource","imageSize","Math","virtualSize","ceil","saferDump","targetVolume","isImageVolume","volume","volumes","restoreSize","I","persistentVolumeClaimName","allNodeNames","enabledDevices","deviceCRD","noneAvailable","deviceTooltip","nodeHasDevice","devicesByNode","devicesInUse","allDeviceIds","uniqueDevices","nodeNameFromId","oldFormatDevices","oldFormatDevicesHTML","selectedDevices","deviceOpts","displayLabel","compatibleNodes","showMatrix","_component_CompatibilityMatrix","_component_DeviceList","pciDeviceSchema","devices","pciDevices","onSubmit","DeviceList","CompatibilityMatrix","PCI_DEVICE","claims","PCI_CLAIM","vmDevices","domain","hostDevices","otherDevices","deviceName","checkName","device","formatted","selectedDevice","isEnabled","claimedByMe","inUse","usedBy","acc","deviceUid","filteredOptions","pci","nodeNameFromUid","uid","thisNode","systemUUID","change","deviceSchema","USB_DEVICE","deviceHeaders","SIMPLE_NAME","usb","_component_VGpuDeviceList","VGpuDeviceList","VGPU_DEVICE","vGpus","isOff","gpus","provisionedVGpus","configureVGPUTypeName","isValidationPassed","isSingle","saveVM","nameLabel","validateCount","useTemplate","updateTemplateId","templateOptions","templateVersionId","versionOptions","isWindows","onRegisterAfterHook","customVolumeMode","enabledPCI","_component_PciDevices","enabledSriovgpu","_component_VGpuDevices","_component_UsbDevices","_component_AccessCredentials","accessCredentials","isQemuInstalled","hostnameLabel","hostPlaceholder","machineType","machineTypeOptions","positive","onUpdateDataTemplateId","updateDataTemplateId","enableCpuPinningCheckbox","updateAgent","showCpuPinningBanner","_component_RestartVMDialog","AccessCredentials","PciDevices","RestartVMDialog","VGpuDevices","UsbDevices","cloneVM","isRestartImmediately","actualState","namePrefix","HOST","hasAvailableVersion","curTemplateResource","hasRestartAction","hasAction","hasStartAction","some","isCPUManagerEnabled","hasError","hasDiskError","dedicatedCpuPlacement","every","old","curVersion","cloneVersionVM","DYNAMIC_SSHKEYS_NAMES","DYNAMIC_SSHKEYS_USERS","claimTemplate","parseVolumeClaimTemplates","deleteDataSource","VOLUME_CLAIM_TEMPLATE","getInitConfig","existUserData","fromTemplate","init","restartVM","saveAccessCredentials","getDiskRows","versionId","fromPage","cancelOverride","saveSingle","saveMultiple","_save","baseHostname","cloneValue","cloneSpec","secretName","basicValue","BEFORE_SAVE_HOOKS","isRunning","cloneDeepNewVM","__clone","oldVM","restartDialog","getAccessCredentialsValidation","showProjectAndCluster","showRemove","_component_PriorityRow","showAdd","PriorityRow","autoAddIfEmpty","isStandaloneHarvester","debounce","defaultRow","project","guestCluster","removeAt","projectOptions","guestClusterOptions","clusters","RANCHER_CLUSTER","HARVESTER_CONFIG","selectedClusters","c","machinePools","rkeConfig","machineConfigName","machineConfigRef","projects","PROJECT","subnet","rangeStart","rangeEnd","addCIDR","addRange","specType","selector","network","networkOptions","priority","_component_Priority","Priority","networks","NETWORK_ATTACHMENT","yamlModifiers","_component_Range","ranges","_component_Selector","Range","Selector","harvesterConfigs","rancherClusters","activelyRemove","healthCheckEnabled","onToggle","portOptions","successThreshold","failureThreshold","periodSeconds","timeoutSeconds","model","ports","protocol","backendPort","ref_for","inputs","ipam","ipamOption","ipPool","ipPoolOptions","workloadType","healthCheckPortInUseWarning","_component_Listeners","matchingVMs","none","backendServerSelector","_component_HealthCheck","healthCheck","onEnabled","NAMESPACE_SELECTOR","PROJECT_SELECTOR","Listeners","HealthCheck","ipPools","IP_POOL","updateMatchingVMs","matched","matches","sample","total","projectSelector","namespaceSelector","healthCheckPort","portInUse","l","throttle","allVMs","matching","leading","listLocation","fvUnreportedValidationErrors","fvFormIsValid","isDescriptionDisabled","rules","fvGetAndReportPathRules","pspOptions","podSecurityPolicyTemplateId","canEditPSPBindings","canViewMembers","showBannerForOnlyManagingMembers","_component_ProjectMembershipEditor","onHasOwnerChanged","onMembershipUpdate","_component_ResourceQuota","canEditTabElements","HARVESTER_TYPES","RANCHER_TYPES","removeQuota","resourceQuotaLabel","_component_ContainerResourceLimit","containerDefaultResourceLimit","ContainerResourceLimit","ProjectMembershipEditor","ResourceQuota","FormValidation","POD_SECURITY_POLICY_TEMPLATE","allPSPs","pspBindingSchema","PSP_TEMPLATE_BINDING","projectRoleTemplateBindingSchema","PROJECT_ROLE_TEMPLATE_BINDING","createLocation","product","PROJECT_ID","saveBindings","membershipHasOwner","membershipUpdate","fvFormRuleSets","canViewProjectMembershipEditor","canEditProject","links","isK3s","kubernetesVersion","defaultPodSecurityPolicyTemplateName","pspt","cur","x","HARVESTER","hasOwner","saveCb","savedProject","norman","ex","specProp","limit","usedLimit","validate","selectNode","selectNodeOptions","HOSTNAME","nics","linkMonitor","LINK_MONITOR","linkStatus","nic","masterIndex","matchingNodes","_component_NodeSelector","nodeOptions","onUpdateMatchingNICs","updateMatchingNICs","onUpdateMatchingNodes","updateMatchingNodes","nicErrors","_component_ArrayListSelect","uplink","nicOptions","bondOptionMode","bondOptions","miimon","mtu","NodeSelector","ArrayListSelect","originNics","matchNICs","linkMonitors","isEtcd","linkAttributes","down","o","nicRequired","allNICs","commonNodes","matchNodes","intersection","allNodes","matchNode","___CSS_LOADER_EXPORT___","module","__esModule","locals","exports","webpackContext","req","webpackContextResolve","__webpack_require__","code"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.formatters.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.formatters.js new file mode 100644 index 00000000..6f49c227 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.formatters.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[902],{59989:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);const a={key:1};function n(e,t,r,n,s,i){const l=(0,o.resolveComponent)("router-link");return i.to?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0,to:i.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(r.value),1)])),_:1},8,["to"])):((0,o.openBlock)(),(0,o.createElementBlock)("span",a,(0,o.toDisplayString)(r.value),1))}var s=r(32766),i={props:{value:{type:String,default:""},row:{type:Object,default:()=>({})}},data(){const e=this.$store.getters["harvester/all"](s.rk.VM)||[];return{vmList:e}},computed:{vm(){const e=this.vmList.find((e=>e.id===`${this.row.metadata.namespace}/${this.value}`));return e},to(){return this.vm?.detailLocation}}},l=r(47433);const c=(0,l.A)(i,[["render",n]]);var u=c},22234:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return d}});var o=r(9274);const a={key:1},n={key:2,class:"text-muted"};function s(e,t,r,s,i,l){const c=(0,o.resolveComponent)("router-link");return l.to?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,to:l.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(r.value),1)])),_:1},8,["to"])):r.value?((0,o.openBlock)(),(0,o.createElementBlock)("span",a,(0,o.toDisplayString)(r.value),1)):((0,o.openBlock)(),(0,o.createElementBlock)("span",n," — "))}var i=r(32766),l={props:{value:{type:String,default:""}},data(){const e=this.$store.getters["harvester/all"](i.rk.SCHEDULE_VM_BACKUP)||[];return{scheduleList:e}},computed:{vmSchedule(){return this.value?this.scheduleList.find((e=>e.id===this.value)):""},to(){return this.vmSchedule?.detailLocation}}},c=r(47433);const u=(0,c.A)(l,[["render",s]]);var d=u},32012:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);function a(e,t,r,a,n,s){return(0,o.openBlock)(),(0,o.createElementBlock)("span",null,(0,o.toDisplayString)(s.displayLabel),1)}var n=r(2602),s=r(65359),i={props:{value:{type:Object,default:()=>({})}},computed:{...(0,s.L8)({t:"i18n/t"}),displayLabel(){return"user"===this.value?.[n.r.CLOUD_INIT]?this.t("harvester.cloudTemplate.userData"):this.t("harvester.cloudTemplate.networkData")}}},l=r(47433);const c=(0,l.A)(i,[["render",a]]);var u=c},13396:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return m}});var o=r(9274);const a={key:0,class:"empty"},n={key:1,class:"parent"},s={class:"progress-box"},i={class:"text"},l={key:2};function c(e,t,r,c,u,d){const p=(0,o.resolveComponent)("ProgressBarMulti"),v=(0,o.resolveDirective)("clean-tooltip");return d.isEmpty?((0,o.openBlock)(),(0,o.createElementBlock)("div",a,t[0]||(t[0]=[(0,o.createElementVNode)("span",{class:"text-muted"}," — ",-1)]))):"complete"!=d.status?((0,o.openBlock)(),(0,o.createElementBlock)("div",n,[(0,o.createElementVNode)("div",s,[(0,o.withDirectives)((0,o.createVNode)(p,{values:d.percentage,min:0,max:100},null,8,["values"]),[[v,d.tooltip]])]),(0,o.createElementVNode)("div",i,(0,o.toDisplayString)(r.value.percentage||0)+"% ",1)])):((0,o.openBlock)(),(0,o.createElementBlock)("div",l,(0,o.toDisplayString)(e.t("generic.completed")),1))}var u=r(15503),d={name:"HarvesterBackupProgressBar",components:{ProgressBarMulti:u.A},props:{value:{type:Object,default:()=>({})}},computed:{isEmpty(){return void 0===this.value?.percentage},status(){switch(this.value?.percentage){case 0:return"starting";case 100:return"complete";default:return"progress"}},percentage(){const e=Number(this.value.percentage);let t="bg-success";return 0===e?t="bg-secondary":e<30?t="bg-darker":e<70&&(t="bg-warning"),[{value:e,color:t}]},tooltip(){if(!this.value?.details?.volumes?.length)return null;const e=this.t(`harvester.${this.value.type}.progress.details`),t=this.value.details.volumes.map((e=>`<br><b>${e.volumeName}</b>: ${e.progress||0}%`));return t.reduce(((e,t)=>e+t),`${e}<br>`)}}},p=(r(43817),r(47433));const v=(0,p.A)(d,[["render",c],["__scopeId","data-v-fa34696c"]]);var m=v},26398:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return p}});var o=r(9274);const a={key:0},n={key:1},s={key:0,class:"text-error"};function i(e,t,r,i,l,c){return c.isMatch?((0,o.openBlock)(),(0,o.createElementBlock)("div",a,(0,o.toDisplayString)(r.value),1)):((0,o.openBlock)(),(0,o.createElementBlock)("div",n,[(0,o.createTextVNode)((0,o.toDisplayString)(r.value)+" ",1),r.value?((0,o.openBlock)(),(0,o.createElementBlock)("p",s,(0,o.toDisplayString)(e.t("harvester.backup.matchTarget")),1)):(0,o.createCommentVNode)("",!0)]))}var l=r(32766),c={props:{value:{type:String,default:""}},async fetch(){const e=await this.$store.dispatch("harvester/findAll",{type:l.rk.SETTING});this.harvesterSettings=e},data(){return{harvesterSettings:[]}},computed:{isMatch(){const e=this.$store.getters["harvester/all"](l.rk.SETTING)||[],t=e.find((e=>"backup-target"===e.id));let r=!1;try{r=this.value===t?.parseValue?.endpoint}catch(o){}return r}}},u=r(47433);const d=(0,u.A)(c,[["render",i]]);var p=d},46e3:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return d}});var o=r(9274);const a={key:0},n={key:1},s={key:2,class:"text-muted"};function i(e,t,r,i,l,c){const u=(0,o.resolveDirective)("clean-tooltip");return c.row?.isCPUManagerEnableInProgress?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("span",a,t[0]||(t[0]=[(0,o.createElementVNode)("i",{class:"icon icon-spinner icon-spin"},null,-1)]))),[[u,c.cpuManagerStatus]]):c.row?.isCPUManagerEnabled?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("span",n,t[1]||(t[1]=[(0,o.createElementVNode)("i",{class:"icon icon-checkmark"},null,-1)]))),[[u,c.cpuManagerStatus]]):(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("span",s,t[2]||(t[2]=[(0,o.createTextVNode)(" — ")]))),[[u,c.cpuManagerStatus]])}var l={name:"HarvesterCPUPinningFormatter",props:{value:{type:String,default:""},rows:{type:Array,required:!0}},computed:{row(){return this.rows.find((e=>e.id===this.value))},cpuManagerStatus(){return this.row?.isCPUManagerEnableInProgress?this.t("generic.loading"):this.row?.isCPUManagerEnabled?this.t("generic.enabled"):this.t("generic.disabled")}}},c=r(47433);const u=(0,c.A)(l,[["render",i]]);var d=u},79211:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);function a(e,t,r,a,n,s){const i=(0,o.resolveDirective)("clean-tooltip");return(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createElementBlock)("span",null,[(0,o.createTextVNode)((0,o.toDisplayString)(r.value),1)])),[[i,s.cronTooltipHint]])}var n=r(37021),s=r.n(n),i={props:{value:{type:String,default:""}},computed:{cronTooltipHint(){let e="";try{e=s().toString(this.value,{verbose:!0})}catch(t){e=this.t("generic.invalidCron")}return e||this.value.spec.cron}}},l=r(47433);const c=(0,l.A)(i,[["render",a]]);var u=c},8579:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return v}});var o=r(9274);const a={class:"state"};function n(e,t,r,n,s,i){const l=(0,o.resolveComponent)("BadgeState"),c=(0,o.resolveComponent)("v-dropdown"),u=(0,o.resolveDirective)("clean-tooltip");return(0,o.openBlock)(),(0,o.createElementBlock)("div",a,[(0,o.withDirectives)((0,o.createVNode)(l,{color:i.stateBackground,label:i.stateDisplay},null,8,["color","label"]),[[u,i.errorMessage]]),i.warningMessage.length?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,trigger:"hover",offset:"16"},{popper:(0,o.withCtx)((()=>[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.warningMessage,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("p",{key:t},(0,o.toDisplayString)(t+1)+". "+(0,o.toDisplayString)(e),1)))),128))])),default:(0,o.withCtx)((()=>[t[0]||(t[0]=(0,o.createElementVNode)("span",{class:"tooltip-target ml-5"},[(0,o.createElementVNode)("i",{class:"icon icon-warning icon-lg text-warning"})],-1))])),_:1})):(0,o.createCommentVNode)("",!0)])}var s=r(87102),i=r(73883);const l="healthy",c="warning";var u={components:{BadgeState:s.j},props:{value:{type:String,default:""},row:{type:Object,required:!0}},computed:{diskState(){const e=this.row?.longhornDisks||[],t=e.reduce(((e,t)=>("True"===t?.readyCondition?.status&&"True"===t?.schedulableCondition?.status||(e=c),e)),l);return t},stateDisplay(){return(0,i.ch)(this.diskState)},stateBackground(){return this.diskState===l?"bg-success":"bg-warning"},errorMessage(){return this.diskState!==l?this.t("harvester.host.disk.error"):""},warningMessage(){const e=this.row?.unProvisionedDisks||[],t=[];return e.map((e=>{e?.metadata?.state?.error&&t.push(e.metadata.state.message)})),t}}},d=(r(20978),r(47433));const p=(0,d.A)(u,[["render",n],["__scopeId","data-v-af7a018c"]]);var v=p},18290:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);function a(e,t,r,a,n,s){const i=(0,o.resolveComponent)("CopyToClipboardText"),l=(0,o.resolveDirective)("clean-tooltip");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[(0,o.withDirectives)((0,o.createVNode)(i,{text:s.nameDisplay},null,8,["text"]),[[l,s.ip]])])}var n=r(35664),s=r(38076),i={components:{CopyToClipboardText:s.A},props:{value:{type:String,default:""}},computed:{node(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/byId`](n.NW,this.value)},ip(){return this.node?.internalIp},nameDisplay(){return this.node?.nameDisplay||""}}},l=r(47433);const c=(0,l.A)(i,[["render",a]]);var u=c},52279:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);function a(e,t,r,a,n,s){const i=(0,o.resolveComponent)("CopyToClipboardText");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(s.parsed,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:t},[(0,o.createVNode)(i,{text:e.label},null,8,["text"])])))),128))])}var n=r(38076),s=r(50667),i={components:{CopyToClipboardText:n.A},props:{row:{type:Object,required:!0},col:{type:Object,required:!0}},computed:{parsed(){const e=this.row||{},t=e?.spec?.listeners||[],r=[],o=e.status?.address;if(o)return t.length>0?t.forEach((e=>{let t;const a=[80,443].includes(e.port);t="TCP"===e?.protocol&&a&&(0,s.E4)(e.port,e?.protocol)?`https://${o}:${e.port}`:`http://${o}:${e.port}`;let n=o;a||(n=`${o}:${e.port}`);const i=`<a href="${t}" target="_blank" rel="noopener noreferrer nofollow">${n}</a>`;r.push({html:i,label:n})})):r.push({html:o,label:o}),r}}},l=r(47433);const c=(0,l.A)(i,[["render",a]]);var u=c},69760:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return p}});var o=r(9274);const a={key:0},n={key:0};function s(e,t,r,s,i,l){const c=(0,o.resolveComponent)("BadgeState");return l.migrationState?((0,o.openBlock)(),(0,o.createElementBlock)("div",a,[r.showSuccess?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createElementBlock)("span",n,"/")),(0,o.createVNode)(c,{label:l.migrationState,color:l.migrationBackground},null,8,["label","color"])])):(0,o.createCommentVNode)("",!0)}var i=r(87102),l=r(32766),c={emits:["state-changed"],components:{BadgeState:i.j},props:{vmResource:{type:Object,required:!0},showSuccess:{type:Boolean,default:!0}},computed:{vmiResource(){const e=this.$store.getters["harvester/all"](l.rk.VMI)||[],t=e.find((e=>e?.metadata?.ownerReferences?.[0]?.uid===this.vmResource?.metadata?.uid));return t},migrationState(){return this.vmiResource?.migrationState?.status||""},migrationBackground(){return this.vmiResource?.migrationStateBackground||""}},watch:{migrationState(e){this.$emit("state-changed",e)}}},u=(r(50002),r(47433));const d=(0,u.A)(c,[["render",s],["__scopeId","data-v-9e992d88"]]);var p=d},93922:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return m}});var o=r(9274);const a={class:"vfs"},n={key:0},s={key:0},i={class:"vfs-popup"},l={key:0};function c(e,t,r,c,u,d){const p=(0,o.resolveComponent)("router-link"),v=(0,o.resolveComponent)("v-dropdown");return(0,o.openBlock)(),(0,o.createElementBlock)("div",a,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(d.rows.visible,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:t},[(0,o.createVNode)(p,{to:e.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.name),1)])),_:2},1032,["to"]),t<d.rows.visible.length-1?((0,o.openBlock)(),(0,o.createElementBlock)("span",n,", ")):(0,o.createCommentVNode)("",!0)])))),128)),(0,o.createVNode)(v,{trigger:"click",placement:"top"},{popper:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(d.rows.invisible,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:t},[(0,o.createVNode)(p,{to:e.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.name),1)])),_:2},1032,["to"]),t<d.rows.invisible.length-1?((0,o.openBlock)(),(0,o.createElementBlock)("span",l,", ")):(0,o.createCommentVNode)("",!0)])))),128))])])])),default:(0,o.withCtx)((()=>[d.allVFs.length>u.limitedNumbers?((0,o.openBlock)(),(0,o.createElementBlock)("span",s,[t[1]||(t[1]=(0,o.createTextVNode)(" , ")),(0,o.createElementVNode)("a",{href:"javascript:void(0)",class:"show-more",onClick:t[0]||(t[0]=(0,o.withModifiers)((e=>u.showAll=!u.showAll),["prevent"]))},(0,o.toDisplayString)(e.t("harvester.sriov.showMore")),1)])):(0,o.createCommentVNode)("",!0)])),_:1})])}var u=r(20652),d={name:"HarvesterVFAddress",props:{row:{type:Object,required:!0}},data(){return{showAll:!1,limitedNumbers:3}},computed:{allVFs(){return this.row.status?.vfAddresses||[]},rows(){const e=this.allVFs.map((e=>{const[t,r,o]=e.split(":"),a=`${this.row.spec?.nodeName}-${t}${r}${o.replace(".","")}`,n={name:`${u.KR}-c-cluster-resource`,params:{cluster:this.$store.getters["clusterId"],resource:this.row.childDevice},query:{q:a}};return{to:n,name:e}}));return{visible:e.slice(0,this.limitedNumbers),invisible:e.slice(this.limitedNumbers)}}}},p=(r(28910),r(47433));const v=(0,p.A)(d,[["render",c],["__scopeId","data-v-3622b06f"]]);var m=v},22011:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);const a={class:"vfs-num"};function n(e,t,r,n,s,i){const l=(0,o.resolveComponent)("router-link");return(0,o.openBlock)(),(0,o.createElementBlock)("div",a,[(0,o.createVNode)(l,{to:i.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(r.row.numVFs),1)])),_:1},8,["to"])])}var s=r(20652),i={name:"HarvesterVFsNum",props:{row:{type:Object,required:!0}},computed:{to(){return{name:`${s.KR}-c-cluster-resource`,params:{cluster:this.$store.getters["clusterId"],resource:this.row.childDevice},query:{parentSriov:this.row.id}}}}},l=r(47433);const c=(0,l.A)(i,[["render",n]]);var u=c},66810:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return m}});var o=r(9274);const a={class:"vgpudevices"},n={key:0},s={key:0},i={class:"vgpu-popup"},l={key:0};function c(e,t,r,c,u,d){const p=(0,o.resolveComponent)("router-link"),v=(0,o.resolveComponent)("v-dropdown");return(0,o.openBlock)(),(0,o.createElementBlock)("div",a,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(d.rows.visible,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:t},[(0,o.createVNode)(p,{to:e.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.name),1)])),_:2},1032,["to"]),t<d.rows.visible.length-1?((0,o.openBlock)(),(0,o.createElementBlock)("span",n,", ")):(0,o.createCommentVNode)("",!0)])))),128)),(0,o.createVNode)(v,{trigger:"click",placement:"top"},{popper:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",i,[(0,o.createElementVNode)("div",null,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(d.rows.invisible,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("span",{key:t},[(0,o.createVNode)(p,{to:e.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.name),1)])),_:2},1032,["to"]),t<d.rows.invisible.length-1?((0,o.openBlock)(),(0,o.createElementBlock)("span",l,", ")):(0,o.createCommentVNode)("",!0)])))),128))])])])),default:(0,o.withCtx)((()=>[d.allVGpuDevices.length>u.limitedNumbers?((0,o.openBlock)(),(0,o.createElementBlock)("span",s,[t[1]||(t[1]=(0,o.createTextVNode)(" , ")),(0,o.createElementVNode)("a",{href:"javascript:void(0)",class:"show-more",onClick:t[0]||(t[0]=(0,o.withModifiers)((e=>u.showAll=!u.showAll),["prevent"]))},(0,o.toDisplayString)(e.t("harvester.sriovgpu.showMore")),1)])):(0,o.createCommentVNode)("",!0)])),_:1})])}var u=r(20652),d={name:"HarvesterVGpuDevices",props:{row:{type:Object,required:!0}},data(){return{showAll:!1,limitedNumbers:2}},computed:{allVGpuDevices(){return this.row.status?.vGPUDevices||[]},rows(){const e=this.allVGpuDevices.map((e=>{const t={name:`${u.KR}-c-cluster-resource`,params:{cluster:this.$store.getters["clusterId"],resource:this.row.childDevice},query:{q:e}};return{to:t,name:e}}));return{visible:e.slice(0,this.limitedNumbers),invisible:e.slice(this.limitedNumbers)}}}},p=(r(6987),r(47433));const v=(0,p.A)(d,[["render",c],["__scopeId","data-v-e3909f16"]]);var m=v},98993:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return d}});var o=r(9274);const a={class:"state"};function n(e,t,r,n,s,i){const l=(0,o.resolveComponent)("HarvesterMigrationState"),c=(0,o.resolveComponent)("VMState"),u=(0,o.resolveComponent)("v-dropdown");return(0,o.openBlock)(),(0,o.createElementBlock)("span",null,[(0,o.withDirectives)((0,o.createVNode)(l,{"vm-resource":r.row,onStateChanged:i.migrationStateChanged},null,8,["vm-resource","onStateChanged"]),[[o.vShow,s.isMigrating]]),(0,o.withDirectives)((0,o.createElementVNode)("div",a,[(0,o.createVNode)(c,{row:r.row},null,8,["row"]),i.warningMessage.length?((0,o.openBlock)(),(0,o.createBlock)(u,{key:0,ref:"popover",trigger:"manual",offset:"16"},{popper:(0,o.withCtx)((()=>[(0,o.createElementVNode)("div",{onMouseenter:t[3]||(t[3]=e=>i.showMessage(!0)),onMouseleave:t[4]||(t[4]=e=>i.showMessage(!1))},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.warningMessage,((a,n)=>((0,o.openBlock)(),(0,o.createElementBlock)("p",{key:n},[(0,o.createTextVNode)((0,o.toDisplayString)(n+1)+". ",1),i.canMiss(r.row,a)?((0,o.openBlock)(),(0,o.createElementBlock)("a",{key:0,class:"text-link",role:"button",onClick:t[2]||(t[2]=(...e)=>i.dismiss&&i.dismiss(...e))},(0,o.toDisplayString)(e.t("harvester.upgradePage.dismissMessage")),1)):(0,o.createCommentVNode)("",!0),(0,o.createTextVNode)(" "+(0,o.toDisplayString)(a),1)])))),128))],32)])),default:(0,o.withCtx)((()=>[(0,o.createElementVNode)("span",{class:"tooltip-target",onMouseenter:t[0]||(t[0]=e=>i.showMessage(!0)),onMouseleave:t[1]||(t[1]=e=>i.delayClose())},t[5]||(t[5]=[(0,o.createElementVNode)("i",{class:"icon icon-warning icon-lg text-warning"},null,-1)]),32)])),_:1},512)):(0,o.createCommentVNode)("",!0)],512),[[o.vShow,!s.isMigrating]])])}var s=r(74562),i=r(69760),l={components:{VMState:s.A,HarvesterMigrationState:i["default"]},props:{value:{type:String,default:""},row:{type:Object,required:!0},allNodeNetwork:{type:Array,default:()=>[]},allClusterNetwork:{type:Array,default:()=>[]}},data(){return{isMigrating:!1,timer:null}},beforeUnmount(){this.timer&&clearTimeout(this.timer)},computed:{warningMessage(){const e=[];if("VM error"===this.row?.actualState&&this.row.warningMessage?.message&&e.push(this.row.warningMessage?.message),this.row?.migrationMessage&&e.push(this.row?.migrationMessage.message),this.row.warningMessage?.message)if(this.row.warningMessage?.pod){const t=this.row.warningMessage.pod;t.metadata?.state?.error&&!/pod has unbound immediate PersistentVolumeClaims/.test(t.metadata?.state?.message)&&e.push(t.metadata?.state?.message)}else e.push(this.row.warningMessage?.message);return e}},methods:{migrationStateChanged(e){this.isMigrating="Failed"!==e&&!!e},showMessage(e){this.timer&&clearTimeout(this.timer),this.$refs.popover&&(e?this.$refs.popover.show():this.$refs.popover.hide())},delayClose(){this.timer=setTimeout((()=>{this.showMessage(!1)}),500)},async dismiss(){try{await this.row.doAction("dismissInsufficientResourceQuota")}catch(e){400!==e?._status&&503!==e?._status||this.$store.dispatch("growl/error",{title:this.t("harvester.notification.title.error"),message:e?.errors[0]},{root:!0})}},canMiss(e,t){return e.warningMessage?.message===t&&e.warningMessage?.canDismiss}}},c=(r(84326),r(47433));const u=(0,c.A)(l,[["render",n],["__scopeId","data-v-216558d8"]]);var d=u},5538:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return v}});var o=r(9274);const a={class:"state"},n={class:"warning-message"};function s(e,t,r,s,i,l){const c=(0,o.resolveComponent)("ProgressBarMulti"),u=(0,o.resolveComponent)("VolumeState"),d=(0,o.resolveComponent)("v-dropdown"),p=(0,o.resolveDirective)("clean-tooltip");return(0,o.openBlock)(),(0,o.createElementBlock)("span",null,[(0,o.createElementVNode)("div",null,[l.isRebuilding?(0,o.withDirectives)(((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,values:l.percentage,min:0,max:100,class:"mb-10"},null,8,["values"])),[[p,l.rebuildingMessage]]):(0,o.createCommentVNode)("",!0)]),(0,o.createElementVNode)("div",a,[(0,o.createVNode)(u,{row:r.row},null,8,["row"]),l.warningMessage?((0,o.openBlock)(),(0,o.createBlock)(d,{key:0,trigger:"hover",offset:"16"},{popper:(0,o.withCtx)((()=>[(0,o.createElementVNode)("p",n,(0,o.toDisplayString)(l.warningMessage),1)])),default:(0,o.withCtx)((()=>[t[0]||(t[0]=(0,o.createElementVNode)("span",{class:"tooltip-target"},[(0,o.createElementVNode)("i",{class:"icon icon-warning icon-lg text-warning"})],-1))])),_:1})):(0,o.createCommentVNode)("",!0)])])}var i=r(15503),l=r(2602),c=r(74562),u={components:{VolumeState:c.A,ProgressBarMulti:i.A},props:{row:{type:Object,required:!0}},computed:{warningMessage(){return this.row.relatedPV?.metadata?.annotations?.[l.r.VOLUME_ERROR]},rebuildStatus(){return this.row.longhornEngine?.status?.rebuildStatus},isRebuilding(){return this.rebuildStatus&&Object.keys(this.rebuildStatus).length>0},percentage(){if(!this.isRebuilding)return;const e=Object.values(this.rebuildStatus)?.[0],t=e?.progress;return[{value:t,color:"bg-warning"}]},rebuildingMessage(){return this.$store.getters["i18n/t"]("harvester.volume.rebuildingMessage",{percentage:this.percentage[0].value})}}},d=(r(77726),r(47433));const p=(0,d.A)(u,[["render",s],["__scopeId","data-v-e0f7fbca"]]);var v=p},47385:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return d}});var o=r(9274);const a={key:0,class:"text"},n={key:1,class:"text"};function s(e,t,r,s,i,l){const c=(0,o.resolveComponent)("BadgeStateFormatter");return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,["N/A"!==r.value?((0,o.openBlock)(),(0,o.createElementBlock)("div",a,[(0,o.createVNode)(c,{class:"ml-10",arbitrary:r.arbitrary,row:r.row,value:r.value},null,8,["arbitrary","row","value"])])):((0,o.openBlock)(),(0,o.createElementBlock)("div",n,(0,o.toDisplayString)(r.value),1))])}var i=r(74562),l={components:{BadgeStateFormatter:i.A},props:{value:{type:String,default:""},row:{type:Object,required:!0},col:{type:Object,default:()=>{}},arbitrary:{type:Boolean,default:!1}},data(){return{}}},c=(r(77278),r(47433));const u=(0,c.A)(l,[["render",s],["__scopeId","data-v-d543d746"]]);var d=u},40179:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return l}});var o=r(9274);function a(e,t,r,a,n,s){const i=(0,o.resolveComponent)("router-link");return r.value.length>0?((0,o.openBlock)(),(0,o.createBlock)(i,{key:0,to:s.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(r.value.length),1)])),_:1},8,["to"])):(0,o.createCommentVNode)("",!0)}var n={props:{value:{type:Array,default:()=>[]},row:{type:Object,default:()=>({})}},computed:{to(){const e=this.row?.detailLocation;return e.hash="#instances",e}}},s=r(47433);const i=(0,s.A)(n,[["render",a]]);var l=i},67359:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);const a={key:1};function n(e,t,r,n,s,i){const l=(0,o.resolveComponent)("router-link");return i.to?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0,to:i.to},{default:(0,o.withCtx)((()=>[(0,o.createTextVNode)((0,o.toDisplayString)(r.value),1)])),_:1},8,["to"])):((0,o.openBlock)(),(0,o.createElementBlock)("span",a,(0,o.toDisplayString)(r.value),1))}var s=r(35664),i={props:{value:{type:String,default:""},row:{type:Object,default:()=>({})}},async fetch(){this.volumeList=await this.$store.dispatch("harvester/findAll",{type:s.YH})},data(){return{volumeList:[]}},computed:{volume(){const e=this.row?.metadata?.namespace,t=this.volumeList.find((t=>t.id===`${e}/${this.value}`))||{};return t},to(){return this.volume?.detailLocation}}},l=r(47433);const c=(0,l.A)(i,[["render",n]]);var u=c},12521:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var o=r(9274);const a={class:"state"};function n(e,t,r,n,s,i){const l=(0,o.resolveComponent)("State"),c=(0,o.resolveComponent)("v-dropdown");return(0,o.openBlock)(),(0,o.createElementBlock)("span",null,[(0,o.createElementVNode)("div",a,[(0,o.createVNode)(l,{row:r.row},null,8,["row"]),i.warningMessages.length>0?((0,o.openBlock)(),(0,o.createBlock)(c,{key:0,trigger:"hover",offset:"16"},{popper:(0,o.withCtx)((()=>[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.warningMessages,((e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("p",{key:t},(0,o.toDisplayString)(t+1)+". "+(0,o.toDisplayString)(e.text),1)))),128))])),default:(0,o.withCtx)((()=>[t[0]||(t[0]=(0,o.createElementVNode)("span",{class:"tooltip-target"},[(0,o.createElementVNode)("i",{class:"icon icon-warning icon-lg text-warning"})],-1))])),_:1})):(0,o.createCommentVNode)("",!0)])])}var s=r(74562),i={components:{State:s.A},props:{row:{type:Object,required:!0}},computed:{warningMessages(){return this.row.warningMessages}}},l=(r(26801),r(47433));const c=(0,l.A)(i,[["render",n],["__scopeId","data-v-61fe0c74"]]);var u=c},41929:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,'.parent[data-v-fa34696c]{display:grid;grid-template-areas:"progress text";grid-template-columns:auto 80px;align-items:center}.parent .progress[data-v-fa34696c]{background-color:#b8c3dc;width:100%}.parent .progress-box[data-v-fa34696c]{grid-area:progress}.parent .text[data-v-fa34696c]{grid-area:text;text-align:center}',""]),t["default"]=i},22962:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,".state[data-v-af7a018c]{display:flex;justify-content:left}.state .icon-warning[data-v-af7a018c]{margin-top:2px}",""]),t["default"]=i},99826:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,".badge-state[data-v-9e992d88]{padding:5px 10px;border:1px solid transparent;border-radius:20px}.badge-state.bg-info[data-v-9e992d88]{border-color:var(--primary)}.badge-state.bg-error[data-v-9e992d88]{border-color:var(--error)}.badge-state.bg-warning[data-v-9e992d88]{border-color:var(--warning)}.badge-state.bg-success[data-v-9e992d88]{color:var(--success);border-color:var(--success);background:transparent}.sortable-table TD .badge-state[data-v-9e992d88]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;word-wrap:break-word;display:inline-block;max-width:100%;position:relative;padding:2px 10px 1px 10px;font-size:1em;max-width:200px;font-size:.85em;vertical-align:middle}",""]),t["default"]=i},84910:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,".vfs[data-v-3622b06f]{min-width:380px}.vfs .show-more[data-v-3622b06f]{font-size:12px}.popover .popover-inner .vfs-popup a[data-v-3622b06f]{color:var(--link)}.popover .popover-inner .vfs-popup a[data-v-3622b06f]:hover{text-decoration:underline;color:var(--body-text)}",""]),t["default"]=i},15243:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,".vgpudevices[data-v-e3909f16]{min-width:380px}.vgpudevices .show-more[data-v-e3909f16]{font-size:12px}.popover .popover-inner .vgpu-popup a[data-v-e3909f16]{color:var(--link)}.popover .popover-inner .vgpu-popup a[data-v-e3909f16]:hover{text-decoration:underline;color:var(--body-text)}",""]),t["default"]=i},21126:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,".state[data-v-216558d8]{display:flex;justify-content:space-between}.state .icon-warning[data-v-216558d8]{margin-top:2px}",""]),t["default"]=i},11966:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,".state[data-v-e0f7fbca]{display:flex}.state .icon-warning[data-v-e0f7fbca]{margin-top:2px}.warning-message[data-v-e0f7fbca]:first-letter{text-transform:uppercase}",""]),t["default"]=i},45086:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,".text[data-v-d543d746]{text-align:center}",""]),t["default"]=i},97905:function(e,t,r){"use strict";r.r(t);var o=r(36758),a=r.n(o),n=r(40935),s=r.n(n),i=s()(a());i.push([e.id,".state[data-v-61fe0c74]{display:flex}.state .icon-warning[data-v-61fe0c74]{margin-top:2px}",""]),t["default"]=i},43817:function(e,t,r){var o=r(41929);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("4c5ab4e7",o,!0,{sourceMap:!1,shadowMode:!1})},20978:function(e,t,r){var o=r(22962);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("ca65fb14",o,!0,{sourceMap:!1,shadowMode:!1})},50002:function(e,t,r){var o=r(99826);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("3657a623",o,!0,{sourceMap:!1,shadowMode:!1})},28910:function(e,t,r){var o=r(84910);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("ec71e408",o,!0,{sourceMap:!1,shadowMode:!1})},6987:function(e,t,r){var o=r(15243);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("68ffca1c",o,!0,{sourceMap:!1,shadowMode:!1})},84326:function(e,t,r){var o=r(21126);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("390707e0",o,!0,{sourceMap:!1,shadowMode:!1})},77726:function(e,t,r){var o=r(11966);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("1c23f151",o,!0,{sourceMap:!1,shadowMode:!1})},77278:function(e,t,r){var o=r(45086);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("4ab85800",o,!0,{sourceMap:!1,shadowMode:!1})},26801:function(e,t,r){var o=r(97905);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals);var a=r(74825).A;a("c7ee64b6",o,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.formatters.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.formatters.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.formatters.js.map new file mode 100644 index 00000000..8df29c85 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.formatters.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.formatters.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./formatters/AttachVMWithName.vue","webpack://harvester-1.5.0-dev/./formatters/AttachVMWithName.vue?91e5","webpack://harvester-1.5.0-dev/./formatters/BackupCreatedFrom.vue","webpack://harvester-1.5.0-dev/./formatters/BackupCreatedFrom.vue?0025","webpack://harvester-1.5.0-dev/./formatters/CloudInitType.vue","webpack://harvester-1.5.0-dev/./formatters/CloudInitType.vue?886b","webpack://harvester-1.5.0-dev/./formatters/HarvesterBackupProgressBar.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterBackupProgressBar.vue?028f","webpack://harvester-1.5.0-dev/./formatters/HarvesterBackupTargetValidation.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterBackupTargetValidation.vue?d247","webpack://harvester-1.5.0-dev/./formatters/HarvesterCPUPinning.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterCPUPinning.vue?fa89","webpack://harvester-1.5.0-dev/./formatters/HarvesterCronExpression.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterCronExpression.vue?7096","webpack://harvester-1.5.0-dev/./formatters/HarvesterDiskState.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterDiskState.vue?5ea9","webpack://harvester-1.5.0-dev/./formatters/HarvesterHost.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterHost.vue?c743","webpack://harvester-1.5.0-dev/./formatters/HarvesterListener.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterListener.vue?e8d4","webpack://harvester-1.5.0-dev/./formatters/HarvesterMigrationState.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterMigrationState.vue?8f03","webpack://harvester-1.5.0-dev/./formatters/HarvesterVFAddress.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterVFAddress.vue?6a7e","webpack://harvester-1.5.0-dev/./formatters/HarvesterVFsNum.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterVFsNum.vue?2489","webpack://harvester-1.5.0-dev/./formatters/HarvesterVGpuDevices.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterVGpuDevices.vue?e5e8","webpack://harvester-1.5.0-dev/./formatters/HarvesterVmState.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterVmState.vue?4d70","webpack://harvester-1.5.0-dev/./formatters/HarvesterVolumeState.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterVolumeState.vue?625a","webpack://harvester-1.5.0-dev/./formatters/NetworkRouteConnectivity.vue","webpack://harvester-1.5.0-dev/./formatters/NetworkRouteConnectivity.vue?5b98","webpack://harvester-1.5.0-dev/./formatters/RelatedVolumeSnapshotCounts.vue","webpack://harvester-1.5.0-dev/./formatters/RelatedVolumeSnapshotCounts.vue?4ee1","webpack://harvester-1.5.0-dev/./formatters/SnapshotTargetVolume.vue","webpack://harvester-1.5.0-dev/./formatters/SnapshotTargetVolume.vue?daec","webpack://harvester-1.5.0-dev/./formatters/StateWithPopover.vue","webpack://harvester-1.5.0-dev/./formatters/StateWithPopover.vue?30b5","webpack://harvester-1.5.0-dev/./formatters/HarvesterBackupProgressBar.vue?e584","webpack://harvester-1.5.0-dev/./formatters/HarvesterDiskState.vue?a5a2","webpack://harvester-1.5.0-dev/./formatters/HarvesterMigrationState.vue?b095","webpack://harvester-1.5.0-dev/./formatters/HarvesterVFAddress.vue?2d34","webpack://harvester-1.5.0-dev/./formatters/HarvesterVGpuDevices.vue?9589","webpack://harvester-1.5.0-dev/./formatters/HarvesterVmState.vue?8a15","webpack://harvester-1.5.0-dev/./formatters/HarvesterVolumeState.vue?e18b","webpack://harvester-1.5.0-dev/./formatters/NetworkRouteConnectivity.vue?9e11","webpack://harvester-1.5.0-dev/./formatters/StateWithPopover.vue?7c48","webpack://harvester-1.5.0-dev/./formatters/HarvesterBackupProgressBar.vue?f380","webpack://harvester-1.5.0-dev/./formatters/HarvesterDiskState.vue?77d4","webpack://harvester-1.5.0-dev/./formatters/HarvesterMigrationState.vue?e5ec","webpack://harvester-1.5.0-dev/./formatters/HarvesterVFAddress.vue?9256","webpack://harvester-1.5.0-dev/./formatters/HarvesterVGpuDevices.vue?3b08","webpack://harvester-1.5.0-dev/./formatters/HarvesterVmState.vue?737c","webpack://harvester-1.5.0-dev/./formatters/HarvesterVolumeState.vue?b9f3","webpack://harvester-1.5.0-dev/./formatters/NetworkRouteConnectivity.vue?054d","webpack://harvester-1.5.0-dev/./formatters/StateWithPopover.vue?6cf6"],"sourcesContent":["<script>\nimport { HCI } from '../types';\n\nexport default {\n props: {\n value: {\n type: String,\n default: ''\n },\n row: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n data() {\n const vmList = this.$store.getters['harvester/all'](HCI.VM) || [];\n\n return { vmList };\n },\n\n computed: {\n vm() {\n const vm = this.vmList.find( (V) => V.id === `${ this.row.metadata.namespace }/${ this.value }`);\n\n return vm;\n },\n\n to() {\n return this.vm?.detailLocation;\n },\n }\n};\n</script>\n\n<template>\n <router-link\n v-if=\"to\"\n :to=\"to\"\n >\n {{ value }}\n </router-link>\n\n <span v-else>\n {{ value }}\n </span>\n</template>\n","import { render } from \"./AttachVMWithName.vue?vue&type=template&id=1181c513\"\nimport script from \"./AttachVMWithName.vue?vue&type=script&lang=js\"\nexport * from \"./AttachVMWithName.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { HCI } from '../types';\n\nexport default {\n props: {\n value: {\n type: String,\n default: ''\n },\n },\n data() {\n const scheduleList = this.$store.getters['harvester/all'](HCI.SCHEDULE_VM_BACKUP) || [];\n\n return { scheduleList };\n },\n computed: {\n vmSchedule() {\n if (!this.value) {\n return '';\n } else {\n return this.scheduleList.find((s) => s.id === this.value);\n }\n },\n to() {\n return this.vmSchedule?.detailLocation;\n },\n }\n};\n</script>\n\n<template>\n <router-link\n v-if=\"to\"\n :to=\"to\"\n >\n {{ value }}\n </router-link>\n <span v-else-if=\"value\">\n {{ value }}\n </span>\n <span\n v-else\n class=\"text-muted\"\n >\n —\n </span>\n</template>\n","import { render } from \"./BackupCreatedFrom.vue?vue&type=template&id=ffec2bb2\"\nimport script from \"./BackupCreatedFrom.vue?vue&type=script&lang=js\"\nexport * from \"./BackupCreatedFrom.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { HCI } from '@pkg/harvester/config/labels-annotations';\nimport { mapGetters } from 'vuex';\n\nexport default {\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n displayLabel() {\n return this.value?.[HCI.CLOUD_INIT] === 'user' ? this.t('harvester.cloudTemplate.userData') : this.t('harvester.cloudTemplate.networkData');\n }\n },\n};\n</script>\n\n<template>\n <span> {{ displayLabel }} </span>\n</template>\n","import { render } from \"./CloudInitType.vue?vue&type=template&id=57122a98\"\nimport script from \"./CloudInitType.vue?vue&type=script&lang=js\"\nexport * from \"./CloudInitType.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ProgressBarMulti from '@shell/components/ProgressBarMulti';\n\nexport default {\n name: 'HarvesterBackupProgressBar',\n components: { ProgressBarMulti },\n\n props: {\n value: {\n type: Object,\n default: () => ({}),\n },\n },\n\n computed: {\n isEmpty() {\n return this.value?.percentage === undefined;\n },\n status() {\n switch (this.value?.percentage) {\n case 0:\n return 'starting';\n case 100:\n return 'complete';\n\n default:\n return 'progress';\n }\n },\n\n percentage() {\n const value = Number(this.value.percentage);\n let color = 'bg-success';\n\n if (value === 0) {\n color = 'bg-secondary';\n } else if (value < 30) {\n color = 'bg-darker';\n } else if (value < 70) {\n color = 'bg-warning';\n }\n\n return [{\n value,\n color\n }];\n },\n\n tooltip() {\n if (!this.value?.details?.volumes?.length) {\n return null;\n }\n const title = this.t(`harvester.${ this.value.type }.progress.details`);\n const rows = this.value.details.volumes.map((v) => `<br><b>${ v.volumeName }</b>: ${ v.progress || 0 }%`);\n\n return rows.reduce((acc, r) => acc + r, `${ title }<br>`);\n },\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"isEmpty\"\n class=\"empty\"\n >\n <span class=\"text-muted\">\n —\n </span>\n </div>\n <div\n v-else-if=\"status != 'complete'\"\n class=\"parent\"\n >\n <div class=\"progress-box\">\n <ProgressBarMulti\n v-clean-tooltip=\"tooltip\"\n :values=\"percentage\"\n :min=\"0\"\n :max=\"100\"\n />\n </div>\n <div class=\"text\">\n {{ value.percentage || 0 }}%\n </div>\n </div>\n <div v-else>\n {{ t('generic.completed') }}\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .parent {\n display: grid;\n grid-template-areas: \"progress text\";\n grid-template-columns: auto 80px;\n align-items: center;\n .progress {\n background-color: darken(#EBEEF5, 15%);\n width: 100%;\n }\n .progress-box {\n grid-area: progress;\n }\n .text {\n grid-area: text;\n text-align: center;\n }\n }\n</style>\n","import { render } from \"./HarvesterBackupProgressBar.vue?vue&type=template&id=fa34696c&scoped=true\"\nimport script from \"./HarvesterBackupProgressBar.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterBackupProgressBar.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterBackupProgressBar.vue?vue&type=style&index=0&id=fa34696c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fa34696c\"]])\n\nexport default __exports__","<script>\nimport { HCI } from '../types';\n\nexport default {\n props: {\n value: {\n type: String,\n default: ''\n }\n },\n\n async fetch() {\n const harvesterSettings = await this.$store.dispatch('harvester/findAll', { type: HCI.SETTING });\n\n this.harvesterSettings = harvesterSettings;\n },\n\n data() {\n return { harvesterSettings: [] };\n },\n\n computed: {\n isMatch() {\n const harvesterSettings = this.$store.getters['harvester/all'](HCI.SETTING) || [];\n const resource = harvesterSettings.find( (V) => V.id === 'backup-target');\n\n let isMatch = false;\n\n try {\n isMatch = this.value === resource?.parseValue?.endpoint;\n } catch (e) {}\n\n return isMatch;\n }\n }\n};\n</script>\n\n<template>\n <div v-if=\"isMatch\">\n {{ value }}\n </div>\n <div v-else>\n {{ value }}\n <p\n v-if=\"value\"\n class=\"text-error\"\n >\n {{ t('harvester.backup.matchTarget') }}\n </p>\n </div>\n</template>\n","import { render } from \"./HarvesterBackupTargetValidation.vue?vue&type=template&id=eb6d1f7e\"\nimport script from \"./HarvesterBackupTargetValidation.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterBackupTargetValidation.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\n\nexport default {\n name: 'HarvesterCPUPinningFormatter',\n props: {\n value: {\n type: String, // id\n default: '',\n },\n rows: {\n type: Array,\n required: true,\n },\n },\n computed: {\n row() {\n return this.rows.find((r) => r.id === this.value);\n },\n cpuManagerStatus() {\n if (this.row?.isCPUManagerEnableInProgress) {\n return this.t('generic.loading');\n }\n\n return this.row?.isCPUManagerEnabled ? this.t('generic.enabled') : this.t('generic.disabled');\n },\n }\n};\n</script>\n\n<template>\n <span\n v-if=\"row?.isCPUManagerEnableInProgress\"\n v-clean-tooltip=\"cpuManagerStatus\"\n >\n <i class=\"icon icon-spinner icon-spin\" />\n </span>\n <span\n v-else-if=\"row?.isCPUManagerEnabled\"\n v-clean-tooltip=\"cpuManagerStatus\"\n >\n <i class=\"icon icon-checkmark\" />\n </span>\n <span\n v-else\n v-clean-tooltip=\"cpuManagerStatus\"\n class=\"text-muted\"\n >\n —\n </span>\n</template>\n","import { render } from \"./HarvesterCPUPinning.vue?vue&type=template&id=79f08508\"\nimport script from \"./HarvesterCPUPinning.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterCPUPinning.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport cronstrue from 'cronstrue';\n\nexport default {\n props: {\n value: {\n type: String,\n default: ''\n },\n },\n computed: {\n cronTooltipHint() {\n let cronHint = '';\n\n try {\n cronHint = cronstrue.toString(this.value, { verbose: true });\n } catch (e) {\n cronHint = this.t('generic.invalidCron');\n }\n\n return cronHint || this.value.spec.cron;\n }\n\n }\n};\n</script>\n\n<template>\n <span v-clean-tooltip=\"cronTooltipHint\">\n {{ value }}\n </span>\n</template>\n","import { render } from \"./HarvesterCronExpression.vue?vue&type=template&id=3acb72bc\"\nimport script from \"./HarvesterCronExpression.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterCronExpression.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { BadgeState } from '@components/BadgeState';\nimport { stateDisplay } from '@shell/plugins/dashboard-store/resource-class';\n\nconst ACTIVE = 'healthy';\nconst WARNING = 'warning';\n\nexport default {\n components: { BadgeState },\n props: {\n value: {\n type: String,\n default: ''\n },\n row: {\n type: Object,\n required: true\n },\n },\n\n computed: {\n diskState() {\n const longhornDisks = this.row?.longhornDisks || [];\n const out = longhornDisks.reduce((state, disk) => {\n if (disk?.readyCondition?.status !== 'True' || disk?.schedulableCondition?.status !== 'True') {\n state = WARNING;\n }\n\n return state;\n }, ACTIVE);\n\n return out;\n },\n\n stateDisplay() {\n return stateDisplay(this.diskState);\n },\n\n stateBackground() {\n if ( this.diskState === ACTIVE ) {\n return 'bg-success';\n } else {\n return 'bg-warning';\n }\n },\n\n errorMessage() {\n if (this.diskState !== ACTIVE) {\n return this.t('harvester.host.disk.error');\n }\n\n return '';\n },\n\n warningMessage() {\n const blockDevices = this.row?.unProvisionedDisks || [];\n\n const out = [];\n\n blockDevices.map((b) => {\n if (b?.metadata?.state?.error) {\n out.push(b.metadata.state.message);\n }\n });\n\n return out;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"state\">\n <BadgeState\n v-clean-tooltip=\"errorMessage\"\n :color=\"stateBackground\"\n :label=\"stateDisplay\"\n />\n <v-dropdown\n v-if=\"warningMessage.length\"\n trigger=\"hover\"\n offset=\"16\"\n >\n <span class=\"tooltip-target ml-5\">\n <i class=\"icon icon-warning icon-lg text-warning\" />\n </span>\n\n <template #popper>\n <p\n v-for=\"(message, index) in warningMessage\"\n :key=\"index\"\n >\n {{ index + 1 }}. {{ message }}\n </p>\n </template>\n </v-dropdown>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n justify-content: left;\n\n .icon-warning {\n margin-top: 2px;\n }\n}\n</style>\n","import { render } from \"./HarvesterDiskState.vue?vue&type=template&id=af7a018c&scoped=true\"\nimport script from \"./HarvesterDiskState.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterDiskState.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterDiskState.vue?vue&type=style&index=0&id=af7a018c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-af7a018c\"]])\n\nexport default __exports__","<script>\nimport { NODE } from '@shell/config/types';\nimport CopyToClipboardText from '@shell/components/CopyToClipboardText';\n\nexport default {\n components: { CopyToClipboardText },\n props: {\n value: {\n type: String,\n default: ''\n },\n },\n\n computed: {\n node() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/byId`](NODE, this.value);\n },\n\n ip() {\n return this.node?.internalIp;\n },\n\n nameDisplay() {\n return this.node?.nameDisplay || '';\n }\n },\n};\n</script>\n\n<template>\n <div>\n <CopyToClipboardText\n v-clean-tooltip=\"ip\"\n :text=\"nameDisplay\"\n />\n </div>\n</template>\n","import { render } from \"./HarvesterHost.vue?vue&type=template&id=9cdbf30e\"\nimport script from \"./HarvesterHost.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterHost.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CopyToClipboardText from '@shell/components/CopyToClipboardText';\nimport { isMaybeSecure } from '@shell/utils/url';\n\nexport default {\n components: { CopyToClipboardText },\n\n props: {\n row: {\n type: Object,\n required: true,\n },\n col: {\n type: Object,\n required: true,\n },\n },\n\n computed: {\n parsed() {\n const row = this.row || {};\n const listeners = row?.spec?.listeners || [];\n const out = [];\n const address = row.status?.address;\n\n if (!address) {\n return;\n }\n\n if (listeners.length > 0) {\n listeners.forEach((p) => {\n let proxyUrl;\n\n const hidePort = [80, 443].includes(p.port);\n\n if (p?.protocol === 'TCP' && hidePort) {\n if (isMaybeSecure(p.port, p?.protocol)) {\n proxyUrl = `https://${ address }:${ p.port }`;\n } else {\n proxyUrl = `http://${ address }:${ p.port }`;\n }\n } else {\n proxyUrl = `http://${ address }:${ p.port }`;\n }\n\n let label = address;\n\n if (!hidePort) {\n label = `${ address }:${ p.port }`;\n }\n\n const html = `<a href=\"${ proxyUrl }\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">${ label }</a>`;\n\n out.push({ html, label });\n });\n } else {\n out.push({ html: address, label: address });\n }\n\n return out;\n },\n },\n};\n</script>>\n\n<template>\n <div>\n <div\n v-for=\"(port, index) in parsed\"\n :key=\"index\"\n >\n <CopyToClipboardText :text=\"port.label\" />\n </div>\n </div>\n</template>\n","import { render } from \"./HarvesterListener.vue?vue&type=template&id=10785d46\"\nimport script from \"./HarvesterListener.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterListener.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { BadgeState } from '@components/BadgeState';\nimport { HCI } from '../types';\n\nexport default {\n emits: ['state-changed'],\n\n components: { BadgeState },\n\n props: {\n vmResource: {\n type: Object,\n required: true\n },\n showSuccess: {\n type: Boolean,\n default: true\n }\n },\n\n computed: {\n vmiResource() {\n const vmiList = this.$store.getters['harvester/all'](HCI.VMI) || [];\n const vmi = vmiList.find( (VMI) => {\n return VMI?.metadata?.ownerReferences?.[0]?.uid === this.vmResource?.metadata?.uid;\n });\n\n return vmi;\n },\n migrationState() {\n return this.vmiResource?.migrationState?.status || '';\n },\n migrationBackground() {\n return this.vmiResource?.migrationStateBackground || '';\n }\n },\n\n watch: {\n migrationState(neu) {\n this.$emit('state-changed', neu);\n }\n },\n};\n</script>\n\n<template>\n <div v-if=\"migrationState\">\n <span v-if=\"!showSuccess\">/</span>\n <BadgeState\n :label=\"migrationState\"\n :color=\"migrationBackground\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .badge-state {\n padding: 5px 10px;\n border: 1px solid transparent;\n border-radius: 20px;\n\n &.bg-info {\n border-color: var(--primary);\n }\n\n &.bg-error {\n border-color: var(--error);\n }\n\n &.bg-warning {\n border-color: var(--warning);\n }\n\n // Successful states are de-emphasized by using [text-]color instead of background-color\n &.bg-success {\n color: var(--success);\n border-color: var(--success);\n background: transparent;\n }\n }\n\n .sortable-table TD .badge-state {\n @include clip;\n display: inline-block;\n max-width: 100%;\n position: relative;\n padding: 2px 10px 1px 10px;\n font-size: 1em;\n max-width: 200px;\n font-size: .85em;\n vertical-align: middle;\n }\n</style>\n","import { render } from \"./HarvesterMigrationState.vue?vue&type=template&id=9e992d88&scoped=true\"\nimport script from \"./HarvesterMigrationState.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterMigrationState.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterMigrationState.vue?vue&type=style&index=0&id=9e992d88&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9e992d88\"]])\n\nexport default __exports__","<script>\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\n\nexport default {\n name: 'HarvesterVFAddress',\n\n props: {\n row: {\n type: Object,\n required: true\n },\n },\n\n data() {\n return { showAll: false, limitedNumbers: 3 };\n },\n\n computed: {\n allVFs() {\n return this.row.status?.vfAddresses || [];\n },\n\n rows() {\n const out = this.allVFs.map((O) => {\n const [prefix, middle, suffix] = O.split(':');\n const q = `${ this.row.spec?.nodeName }-${ prefix }${ middle }${ suffix.replace('.', '') }`;\n const to = {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { cluster: this.$store.getters['clusterId'], resource: this.row.childDevice },\n query: { q }\n };\n\n return {\n to,\n name: O\n };\n });\n\n return {\n visible: out.slice(0, this.limitedNumbers),\n invisible: out.slice(this.limitedNumbers)\n };\n },\n }\n};\n</script>\n\n<template>\n <div class=\"vfs\">\n <span\n v-for=\"(vf, index) in rows.visible\"\n :key=\"index\"\n >\n <router-link\n :to=\"vf.to\"\n >\n {{ vf.name }}\n </router-link>\n\n <span v-if=\"index < rows.visible.length - 1\">, </span>\n </span>\n\n <v-dropdown\n trigger=\"click\"\n placement=\"top\"\n >\n <span v-if=\"allVFs.length > limitedNumbers\">\n , <a\n href=\"javascript:void(0)\"\n class=\"show-more\"\n @click.prevent=\"showAll = !showAll\"\n >\n {{ t('harvester.sriov.showMore') }}\n </a>\n </span>\n\n <template #popper>\n <div class=\"vfs-popup\">\n <div>\n <span\n v-for=\"(vf, index) in rows.invisible\"\n :key=\"index\"\n >\n <router-link\n :to=\"vf.to\"\n >\n {{ vf.name }}\n </router-link>\n\n <span v-if=\"index < rows.invisible.length - 1\">, </span>\n </span>\n </div>\n </div>\n </template>\n </v-dropdown>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n\n .vfs {\n min-width: 380px;\n\n .show-more {\n font-size: 12px;\n }\n }\n .popover .popover-inner .vfs-popup a {\n color: var(--link);\n\n &:hover {\n text-decoration: underline;\n color: var(--body-text);\n }\n }\n</style>\n","import { render } from \"./HarvesterVFAddress.vue?vue&type=template&id=3622b06f&scoped=true\"\nimport script from \"./HarvesterVFAddress.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVFAddress.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterVFAddress.vue?vue&type=style&index=0&id=3622b06f&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3622b06f\"]])\n\nexport default __exports__","<script>\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\n\nexport default {\n name: 'HarvesterVFsNum',\n\n props: {\n row: {\n type: Object,\n required: true\n },\n },\n\n computed: {\n to() {\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { cluster: this.$store.getters['clusterId'], resource: this.row.childDevice },\n query: { parentSriov: this.row.id }\n };\n }\n }\n};\n</script>\n\n<template>\n <div class=\"vfs-num\">\n <router-link\n :to=\"to\"\n >\n {{ row.numVFs }}\n </router-link>\n </div>\n</template>\n","import { render } from \"./HarvesterVFsNum.vue?vue&type=template&id=d181062c\"\nimport script from \"./HarvesterVFsNum.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVFsNum.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\n\nexport default {\n name: 'HarvesterVGpuDevices',\n\n props: {\n row: {\n type: Object,\n required: true\n },\n },\n\n data() {\n return { showAll: false, limitedNumbers: 2 };\n },\n\n computed: {\n allVGpuDevices() {\n return this.row.status?.vGPUDevices || [];\n },\n\n rows() {\n const out = this.allVGpuDevices.map((device) => {\n const to = {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { cluster: this.$store.getters['clusterId'], resource: this.row.childDevice },\n query: { q: device }\n };\n\n return {\n to,\n name: device\n };\n });\n\n return {\n visible: out.slice(0, this.limitedNumbers),\n invisible: out.slice(this.limitedNumbers)\n };\n },\n }\n};\n</script>\n\n<template>\n <div class=\"vgpudevices\">\n <span\n v-for=\"(vgpu, index) in rows.visible\"\n :key=\"index\"\n >\n <router-link\n :to=\"vgpu.to\"\n >\n {{ vgpu.name }}\n </router-link>\n\n <span v-if=\"index < rows.visible.length - 1\">, </span>\n </span>\n\n <v-dropdown\n trigger=\"click\"\n placement=\"top\"\n >\n <span v-if=\"allVGpuDevices.length > limitedNumbers\">\n , <a\n href=\"javascript:void(0)\"\n class=\"show-more\"\n @click.prevent=\"showAll = !showAll\"\n >\n {{ t('harvester.sriovgpu.showMore') }}\n </a>\n </span>\n\n <template #popper>\n <div class=\"vgpu-popup\">\n <div>\n <span\n v-for=\"(vgpu, index) in rows.invisible\"\n :key=\"index\"\n >\n <router-link\n :to=\"vgpu.to\"\n >\n {{ vgpu.name }}\n </router-link>\n\n <span v-if=\"index < rows.invisible.length - 1\">, </span>\n </span>\n </div>\n </div>\n </template>\n </v-dropdown>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .vgpudevices {\n min-width: 380px;\n\n .show-more {\n font-size: 12px;\n }\n }\n .popover .popover-inner .vgpu-popup a {\n color: var(--link);\n\n &:hover {\n text-decoration: underline;\n color: var(--body-text);\n }\n }\n</style>\n","import { render } from \"./HarvesterVGpuDevices.vue?vue&type=template&id=e3909f16&scoped=true\"\nimport script from \"./HarvesterVGpuDevices.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVGpuDevices.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterVGpuDevices.vue?vue&type=style&index=0&id=e3909f16&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e3909f16\"]])\n\nexport default __exports__","<script>\nimport VMState from '@shell/components/formatter/BadgeStateFormatter';\nimport HarvesterMigrationState from './HarvesterMigrationState';\n\nexport default {\n components: { VMState, HarvesterMigrationState },\n props: {\n value: {\n type: String,\n default: ''\n },\n\n row: {\n type: Object,\n required: true\n },\n\n allNodeNetwork: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n allClusterNetwork: {\n type: Array,\n default: () => {\n return [];\n }\n }\n },\n\n data() {\n return {\n isMigrating: false,\n timer: null,\n };\n },\n\n beforeUnmount() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n\n computed: {\n warningMessage() {\n const out = [];\n\n if (this.row?.actualState === 'VM error' && this.row.warningMessage?.message) {\n out.push(this.row.warningMessage?.message);\n }\n\n if (this.row?.migrationMessage) {\n out.push(this.row?.migrationMessage.message);\n }\n\n if (this.row.warningMessage?.message) {\n if (this.row.warningMessage?.pod) {\n const pod = this.row.warningMessage.pod;\n\n if (pod.metadata?.state?.error && !/pod has unbound immediate PersistentVolumeClaims/.test(pod.metadata?.state?.message)) {\n out.push(pod.metadata?.state?.message);\n }\n } else {\n out.push(this.row.warningMessage?.message);\n }\n }\n\n return out;\n }\n },\n\n methods: {\n migrationStateChanged(neu) {\n if (neu === 'Failed') {\n this.isMigrating = false;\n } else {\n this.isMigrating = !!neu;\n }\n },\n\n showMessage(show) {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n\n if (this.$refs.popover) {\n if (show) {\n this.$refs.popover.show();\n } else {\n this.$refs.popover.hide();\n }\n }\n },\n\n delayClose() {\n this.timer = setTimeout(() => {\n this.showMessage(false);\n }, 500);\n },\n\n async dismiss() {\n try {\n await this.row.doAction('dismissInsufficientResourceQuota');\n } catch (err) {\n if (err?._status === 400 || err?._status === 503) {\n this.$store.dispatch('growl/error', {\n title: this.t('harvester.notification.title.error'),\n message: err?.errors[0]\n }, { root: true });\n }\n }\n },\n\n canMiss(row, message) {\n return row.warningMessage?.message === message && row.warningMessage?.canDismiss;\n }\n },\n};\n</script>\n\n<template>\n <span>\n <HarvesterMigrationState\n v-show=\"isMigrating\"\n :vm-resource=\"row\"\n @state-changed=\"migrationStateChanged\"\n />\n <div\n v-show=\"!isMigrating\"\n class=\"state\"\n >\n <VMState :row=\"row\" />\n <v-dropdown\n v-if=\"warningMessage.length\"\n ref=\"popover\"\n trigger=\"manual\"\n offset=\"16\"\n >\n <span\n class=\"tooltip-target\"\n @mouseenter=\"showMessage(true)\"\n @mouseleave=\"delayClose()\"\n >\n <i class=\"icon icon-warning icon-lg text-warning\" />\n </span>\n\n <template #popper>\n <div\n @mouseenter=\"showMessage(true)\"\n @mouseleave=\"showMessage(false)\"\n >\n <p\n v-for=\"(message, index) in warningMessage\"\n :key=\"index\"\n >\n {{ index + 1 }}.\n <a\n v-if=\"canMiss(row, message)\"\n class=\"text-link\"\n role=\"button\"\n @click=\"dismiss\"\n >\n {{ t('harvester.upgradePage.dismissMessage') }}\n </a>\n {{ message }}\n </p>\n </div>\n </template>\n </v-dropdown>\n </div>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n justify-content: space-between;\n\n .icon-warning {\n margin-top: 2px;\n }\n}\n</style>\n","import { render } from \"./HarvesterVmState.vue?vue&type=template&id=216558d8&scoped=true\"\nimport script from \"./HarvesterVmState.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVmState.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterVmState.vue?vue&type=style&index=0&id=216558d8&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-216558d8\"]])\n\nexport default __exports__","<script>\nimport ProgressBarMulti from '@shell/components/ProgressBarMulti';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport VolumeState from '@shell/components/formatter/BadgeStateFormatter';\n\nexport default {\n components: { VolumeState, ProgressBarMulti },\n props: {\n row: {\n type: Object,\n required: true\n },\n },\n\n computed: {\n warningMessage() {\n return this.row.relatedPV?.metadata?.annotations?.[HCI_ANNOTATIONS.VOLUME_ERROR];\n },\n\n rebuildStatus() {\n return this.row.longhornEngine?.status?.rebuildStatus;\n },\n\n isRebuilding() {\n return this.rebuildStatus && Object.keys(this.rebuildStatus).length > 0;\n },\n\n percentage() {\n if (!this.isRebuilding) {\n return;\n }\n\n const rebuildStatus = Object.values(this.rebuildStatus)?.[0];\n const value = rebuildStatus?.progress;\n\n return [{\n value,\n color: 'bg-warning'\n }];\n },\n\n rebuildingMessage() {\n return this.$store.getters['i18n/t']('harvester.volume.rebuildingMessage', { percentage: this.percentage[0].value });\n }\n },\n};\n</script>\n\n<template>\n <span>\n <div>\n <ProgressBarMulti\n v-if=\"isRebuilding\"\n v-clean-tooltip=\"rebuildingMessage\"\n :values=\"percentage\"\n :min=\"0\"\n :max=\"100\"\n class=\"mb-10\"\n />\n </div>\n <div class=\"state\">\n <VolumeState :row=\"row\" />\n <v-dropdown\n v-if=\"!!warningMessage\"\n trigger=\"hover\"\n offset=\"16\"\n >\n <span class=\"tooltip-target\">\n <i class=\"icon icon-warning icon-lg text-warning\" />\n </span>\n\n <template #popper>\n <p class=\"warning-message\">\n {{ warningMessage }}\n </p>\n </template>\n </v-dropdown>\n </div>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n\n .icon-warning {\n margin-top: 2px;\n }\n}\n.warning-message:first-letter {\n text-transform: uppercase;\n}\n\n</style>\n","import { render } from \"./HarvesterVolumeState.vue?vue&type=template&id=e0f7fbca&scoped=true\"\nimport script from \"./HarvesterVolumeState.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVolumeState.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterVolumeState.vue?vue&type=style&index=0&id=e0f7fbca&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e0f7fbca\"]])\n\nexport default __exports__","<script>\nimport BadgeStateFormatter from '@shell/components/formatter/BadgeStateFormatter';\n\nexport default {\n components: { BadgeStateFormatter },\n props: {\n value: {\n type: String,\n default: ''\n },\n row: {\n type: Object,\n required: true\n },\n col: {\n type: Object,\n default: () => {}\n },\n\n arbitrary: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {};\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"value !== 'N/A'\"\n class=\"text\"\n >\n <BadgeStateFormatter\n class=\"ml-10\"\n :arbitrary=\"arbitrary\"\n :row=\"row\"\n :value=\"value\"\n />\n </div>\n <div\n v-else\n class=\"text\"\n >\n {{ value }}\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.text {\n text-align: center;\n}\n</style>\n","import { render } from \"./NetworkRouteConnectivity.vue?vue&type=template&id=d543d746&scoped=true\"\nimport script from \"./NetworkRouteConnectivity.vue?vue&type=script&lang=js\"\nexport * from \"./NetworkRouteConnectivity.vue?vue&type=script&lang=js\"\n\nimport \"./NetworkRouteConnectivity.vue?vue&type=style&index=0&id=d543d746&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d543d746\"]])\n\nexport default __exports__","<script>\nexport default {\n props: {\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n row: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n computed: {\n to() {\n const to = this.row?.detailLocation;\n\n to.hash = '#instances';\n\n return to;\n },\n }\n};\n</script>\n\n<template>\n <router-link\n v-if=\"value.length > 0\"\n :to=\"to\"\n >\n {{ value.length }}\n </router-link>\n</template>\n","import { render } from \"./RelatedVolumeSnapshotCounts.vue?vue&type=template&id=4ceb034f\"\nimport script from \"./RelatedVolumeSnapshotCounts.vue?vue&type=script&lang=js\"\nexport * from \"./RelatedVolumeSnapshotCounts.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { PVC } from '@shell/config/types';\nexport default {\n props: {\n value: {\n type: String,\n default: ''\n },\n row: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n async fetch() {\n this.volumeList = await this.$store.dispatch('harvester/findAll', { type: PVC });\n },\n data() {\n return { volumeList: [] };\n },\n computed: {\n volume() {\n const namespace = this.row?.metadata?.namespace;\n const volume = this.volumeList.find( (V) => V.id === `${ namespace }/${ this.value }`) || {};\n\n return volume;\n },\n to() {\n return this.volume?.detailLocation;\n },\n }\n};\n</script>\n<template>\n <router-link\n v-if=\"to\"\n :to=\"to\"\n >\n {{ value }}\n </router-link>\n <span v-else>\n {{ value }}\n </span>\n</template>\n","import { render } from \"./SnapshotTargetVolume.vue?vue&type=template&id=0e097ca4\"\nimport script from \"./SnapshotTargetVolume.vue?vue&type=script&lang=js\"\nexport * from \"./SnapshotTargetVolume.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport State from '@shell/components/formatter/BadgeStateFormatter';\n\nexport default {\n components: { State },\n\n props: {\n row: {\n type: Object,\n required: true\n },\n },\n\n computed: {\n warningMessages() {\n return this.row.warningMessages;\n },\n },\n};\n</script>\n\n<template>\n <span>\n <div class=\"state\">\n <State\n :row=\"row\"\n />\n <v-dropdown\n v-if=\"warningMessages.length > 0\"\n trigger=\"hover\"\n offset=\"16\"\n >\n <span class=\"tooltip-target\">\n <i class=\"icon icon-warning icon-lg text-warning\" />\n </span>\n\n <template #popper>\n <p\n v-for=\"(message, index) in warningMessages\"\n :key=\"index\"\n >\n {{ index + 1 }}.\n {{ message.text }}\n </p>\n </template>\n </v-dropdown>\n </div>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n\n .icon-warning {\n margin-top: 2px;\n }\n}\n</style>\n","import { render } from \"./StateWithPopover.vue?vue&type=template&id=61fe0c74&scoped=true\"\nimport script from \"./StateWithPopover.vue?vue&type=script&lang=js\"\nexport * from \"./StateWithPopover.vue?vue&type=script&lang=js\"\n\nimport \"./StateWithPopover.vue?vue&type=style&index=0&id=61fe0c74&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-61fe0c74\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".parent[data-v-fa34696c]{display:grid;grid-template-areas:\\\"progress text\\\";grid-template-columns:auto 80px;align-items:center}.parent .progress[data-v-fa34696c]{background-color:#b8c3dc;width:100%}.parent .progress-box[data-v-fa34696c]{grid-area:progress}.parent .text[data-v-fa34696c]{grid-area:text;text-align:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-af7a018c]{display:flex;justify-content:left}.state .icon-warning[data-v-af7a018c]{margin-top:2px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".badge-state[data-v-9e992d88]{padding:5px 10px;border:1px solid transparent;border-radius:20px}.badge-state.bg-info[data-v-9e992d88]{border-color:var(--primary)}.badge-state.bg-error[data-v-9e992d88]{border-color:var(--error)}.badge-state.bg-warning[data-v-9e992d88]{border-color:var(--warning)}.badge-state.bg-success[data-v-9e992d88]{color:var(--success);border-color:var(--success);background:transparent}.sortable-table TD .badge-state[data-v-9e992d88]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;word-wrap:break-word;display:inline-block;max-width:100%;position:relative;padding:2px 10px 1px 10px;font-size:1em;max-width:200px;font-size:.85em;vertical-align:middle}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vfs[data-v-3622b06f]{min-width:380px}.vfs .show-more[data-v-3622b06f]{font-size:12px}.popover .popover-inner .vfs-popup a[data-v-3622b06f]{color:var(--link)}.popover .popover-inner .vfs-popup a[data-v-3622b06f]:hover{text-decoration:underline;color:var(--body-text)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vgpudevices[data-v-e3909f16]{min-width:380px}.vgpudevices .show-more[data-v-e3909f16]{font-size:12px}.popover .popover-inner .vgpu-popup a[data-v-e3909f16]{color:var(--link)}.popover .popover-inner .vgpu-popup a[data-v-e3909f16]:hover{text-decoration:underline;color:var(--body-text)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-216558d8]{display:flex;justify-content:space-between}.state .icon-warning[data-v-216558d8]{margin-top:2px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-e0f7fbca]{display:flex}.state .icon-warning[data-v-e0f7fbca]{margin-top:2px}.warning-message[data-v-e0f7fbca]:first-letter{text-transform:uppercase}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".text[data-v-d543d746]{text-align:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-61fe0c74]{display:flex}.state .icon-warning[data-v-61fe0c74]{margin-top:2px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterBackupProgressBar.vue?vue&type=style&index=0&id=fa34696c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4c5ab4e7\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterDiskState.vue?vue&type=style&index=0&id=af7a018c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ca65fb14\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterMigrationState.vue?vue&type=style&index=0&id=9e992d88&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3657a623\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterVFAddress.vue?vue&type=style&index=0&id=3622b06f&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ec71e408\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterVGpuDevices.vue?vue&type=style&index=0&id=e3909f16&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"68ffca1c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterVmState.vue?vue&type=style&index=0&id=216558d8&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"390707e0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterVolumeState.vue?vue&type=style&index=0&id=e0f7fbca&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1c23f151\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./NetworkRouteConnectivity.vue?vue&type=style&index=0&id=d543d746&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4ab85800\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./StateWithPopover.vue?vue&type=style&index=0&id=61fe0c74&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c7ee64b6\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["key","$options","to","_createBlock","_component_router_link","default","_withCtx","_createTextVNode","_toDisplayString","$props","value","_","_createElementBlock","_hoisted_1","props","type","String","row","Object","data","vmList","this","$store","getters","HCI","VM","computed","vm","find","V","id","metadata","namespace","detailLocation","__exports__","render","class","_hoisted_2","scheduleList","SCHEDULE_VM_BACKUP","vmSchedule","s","displayLabel","mapGetters","t","CLOUD_INIT","isEmpty","_cache","_createElementVNode","status","_hoisted_3","_createVNode","_component_ProgressBarMulti","values","percentage","min","max","tooltip","_hoisted_4","_hoisted_5","_ctx","name","components","ProgressBarMulti","undefined","Number","color","details","volumes","length","title","rows","map","v","volumeName","progress","reduce","acc","r","isMatch","_createCommentVNode","fetch","harvesterSettings","dispatch","SETTING","resource","parseValue","endpoint","e","isCPUManagerEnableInProgress","cpuManagerStatus","isCPUManagerEnabled","Array","required","cronTooltipHint","cronHint","cronstrue","verbose","spec","cron","_component_BadgeState","stateBackground","label","stateDisplay","errorMessage","warningMessage","_component_v_dropdown","trigger","offset","popper","_Fragment","_renderList","message","index","ACTIVE","WARNING","BadgeState","diskState","longhornDisks","out","state","disk","readyCondition","schedulableCondition","blockDevices","unProvisionedDisks","b","error","push","_component_CopyToClipboardText","text","nameDisplay","ip","CopyToClipboardText","node","inStore","NODE","internalIp","parsed","port","col","listeners","address","forEach","p","proxyUrl","hidePort","includes","protocol","isMaybeSecure","html","migrationState","showSuccess","migrationBackground","emits","vmResource","Boolean","vmiResource","vmiList","VMI","vmi","ownerReferences","uid","migrationStateBackground","watch","neu","$emit","visible","vf","placement","invisible","allVFs","$data","limitedNumbers","href","onClick","_withModifiers","$event","showAll","vfAddresses","O","prefix","middle","suffix","split","q","nodeName","replace","HARVESTER_PRODUCT","params","cluster","childDevice","query","slice","numVFs","parentSriov","vgpu","allVGpuDevices","vGPUDevices","device","_component_HarvesterMigrationState","onStateChanged","migrationStateChanged","isMigrating","_component_VMState","ref","onMouseenter","showMessage","onMouseleave","canMiss","role","args","dismiss","delayClose","VMState","HarvesterMigrationState","allNodeNetwork","allClusterNetwork","timer","beforeUnmount","clearTimeout","actualState","migrationMessage","pod","test","methods","show","$refs","popover","hide","setTimeout","doAction","err","_status","errors","root","canDismiss","isRebuilding","rebuildingMessage","_component_VolumeState","VolumeState","relatedPV","annotations","HCI_ANNOTATIONS","VOLUME_ERROR","rebuildStatus","longhornEngine","keys","_component_BadgeStateFormatter","arbitrary","BadgeStateFormatter","hash","volumeList","PVC","volume","_component_State","warningMessages","State","___CSS_LOADER_EXPORT___","module","content","__esModule","locals","exports","add"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.js new file mode 100644 index 00000000..1bd0153d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.js @@ -0,0 +1,120 @@ +(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue"),require("__jszip"),require("__jsyaml")):"function"===typeof define&&define.amd?define([,"__jszip","__jsyaml"],t):"object"===typeof exports?exports["harvester-1.5.0-dev"]=t(require("vue"),require("__jszip"),require("__jsyaml")):e["harvester-1.5.0-dev"]=t(e["Vue"],e["__jszip"],e["__jsyaml"])})("undefined"!==typeof self?self:this,(function(e,t,n){return function(){var r={4979:function(){"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(e,t){"use strict";if(null==e)throw new TypeError("Cannot convert undefined or null to object");const n=Object(e);for(let r=1;r<arguments.length;r++){const e=arguments[r];if(null!=e)for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])}return n},writable:!0,configurable:!0}),(()=>{function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,"function"!==typeof window.CustomEvent&&(window.CustomEvent=e)})(),Number.isInteger=Number.isInteger||function(e){return"number"===typeof e&&isFinite(e)&&Math.floor(e)===e}},19469:function(e,t,n){var r={"./email":51557,"./email.vue":51557,"./opsgenie":72420,"./opsgenie.vue":72420,"./pagerduty":12772,"./pagerduty.vue":12772,"./slack":33427,"./slack.vue":33427,"./webhook":4496,"./webhook.vue":4496};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=19469},26093:function(e,t,n){"use strict";var r=n(39907),i=n(4364);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,l(r.key),r)}}function s(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function l(e){var t=c(e,"string");return"symbol"===a(t)?t:String(t)}function c(e,t){if("object"!==a(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var d,h,p=n(41342),f=p.codes,m=f.ERR_AMBIGUOUS_ARGUMENT,g=f.ERR_INVALID_ARG_TYPE,v=f.ERR_INVALID_ARG_VALUE,b=f.ERR_INVALID_RETURN_VALUE,y=f.ERR_MISSING_ARGS,w=n(49801),E=n(49208),_=E.inspect,S=n(49208).types,k=S.isPromise,x=S.isRegExp,A=n(23225)(),N=n(61937)(),C=n(79818)("RegExp.prototype.test");new Map;function T(){var e=n(5656);d=e.isDeepEqual,h=e.isDeepStrictEqual}var R=!1,O=e.exports=M,I={};function L(e){if(e.message instanceof Error)throw e.message;throw new w(e)}function D(e,t,n,a,o){var s,l=arguments.length;if(0===l)s="Failed";else if(1===l)n=e,e=void 0;else{if(!1===R){R=!0;var c=r.emitWarning?r.emitWarning:i.warn.bind(i);c("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}2===l&&(a="!=")}if(n instanceof Error)throw n;var u={actual:e,expected:t,operator:void 0===a?"fail":a,stackStartFn:o||D};void 0!==n&&(u.message=n);var d=new w(u);throw s&&(d.message=s,d.generatedMessage=!0),d}function P(e,t,n,r){if(!n){var i=!1;if(0===t)i=!0,r="No value argument passed to `assert.ok()`";else if(r instanceof Error)throw r;var a=new w({actual:n,expected:!0,message:r,operator:"==",stackStartFn:e});throw a.generatedMessage=i,a}}function M(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];P.apply(void 0,[M,t.length].concat(t))}function B(e,t,n){if(arguments.length<2)throw new y("actual","expected");void 0===d&&T(),h(e,t)&&L({actual:e,expected:t,message:n,operator:"notDeepStrictEqual",stackStartFn:B})}O.fail=D,O.AssertionError=w,O.ok=M,O.equal=function e(t,n,r){if(arguments.length<2)throw new y("actual","expected");t!=n&&L({actual:t,expected:n,message:r,operator:"==",stackStartFn:e})},O.notEqual=function e(t,n,r){if(arguments.length<2)throw new y("actual","expected");t==n&&L({actual:t,expected:n,message:r,operator:"!=",stackStartFn:e})},O.deepEqual=function e(t,n,r){if(arguments.length<2)throw new y("actual","expected");void 0===d&&T(),d(t,n)||L({actual:t,expected:n,message:r,operator:"deepEqual",stackStartFn:e})},O.notDeepEqual=function e(t,n,r){if(arguments.length<2)throw new y("actual","expected");void 0===d&&T(),d(t,n)&&L({actual:t,expected:n,message:r,operator:"notDeepEqual",stackStartFn:e})},O.deepStrictEqual=function e(t,n,r){if(arguments.length<2)throw new y("actual","expected");void 0===d&&T(),h(t,n)||L({actual:t,expected:n,message:r,operator:"deepStrictEqual",stackStartFn:e})},O.notDeepStrictEqual=B,O.strictEqual=function e(t,n,r){if(arguments.length<2)throw new y("actual","expected");N(t,n)||L({actual:t,expected:n,message:r,operator:"strictEqual",stackStartFn:e})},O.notStrictEqual=function e(t,n,r){if(arguments.length<2)throw new y("actual","expected");N(t,n)&&L({actual:t,expected:n,message:r,operator:"notStrictEqual",stackStartFn:e})};var F=s((function e(t,n,r){var i=this;u(this,e),n.forEach((function(e){e in t&&(void 0!==r&&"string"===typeof r[e]&&x(t[e])&&C(t[e],r[e])?i[e]=r[e]:i[e]=t[e])}))}));function $(e,t,n,r,i,a){if(!(n in e)||!h(e[n],t[n])){if(!r){var o=new F(e,i),s=new F(t,i,e),l=new w({actual:o,expected:s,operator:"deepStrictEqual",stackStartFn:a});throw l.actual=e,l.expected=t,l.operator=a.name,l}L({actual:e,expected:t,message:r,operator:a.name,stackStartFn:a})}}function U(e,t,n,r){if("function"!==typeof t){if(x(t))return C(t,e);if(2===arguments.length)throw new g("expected",["Function","RegExp"],t);if("object"!==a(e)||null===e){var i=new w({actual:e,expected:t,message:n,operator:"deepStrictEqual",stackStartFn:r});throw i.operator=r.name,i}var o=Object.keys(t);if(t instanceof Error)o.push("name","message");else if(0===o.length)throw new v("error",t,"may not be an empty object");return void 0===d&&T(),o.forEach((function(i){"string"===typeof e[i]&&x(t[i])&&C(t[i],e[i])||$(e,t,i,n,o,r)})),!0}return void 0!==t.prototype&&e instanceof t||!Error.isPrototypeOf(t)&&!0===t.call({},e)}function j(e){if("function"!==typeof e)throw new g("fn","Function",e);try{e()}catch(t){return t}return I}function V(e){return k(e)||null!==e&&"object"===a(e)&&"function"===typeof e.then&&"function"===typeof e.catch}function K(e){return Promise.resolve().then((function(){var t;if("function"===typeof e){if(t=e(),!V(t))throw new b("instance of Promise","promiseFn",t)}else{if(!V(e))throw new g("promiseFn",["Function","Promise"],e);t=e}return Promise.resolve().then((function(){return t})).then((function(){return I})).catch((function(e){return e}))}))}function H(e,t,n,r){if("string"===typeof n){if(4===arguments.length)throw new g("error",["Object","Error","Function","RegExp"],n);if("object"===a(t)&&null!==t){if(t.message===n)throw new m("error/message",'The error message "'.concat(t.message,'" is identical to the message.'))}else if(t===n)throw new m("error/message",'The error "'.concat(t,'" is identical to the message.'));r=n,n=void 0}else if(null!=n&&"object"!==a(n)&&"function"!==typeof n)throw new g("error",["Object","Error","Function","RegExp"],n);if(t===I){var i="";n&&n.name&&(i+=" (".concat(n.name,")")),i+=r?": ".concat(r):".";var o="rejects"===e.name?"rejection":"exception";L({actual:void 0,expected:n,operator:e.name,message:"Missing expected ".concat(o).concat(i),stackStartFn:e})}if(n&&!U(t,n,r,e))throw t}function G(e,t,n,r){if(t!==I){if("string"===typeof n&&(r=n,n=void 0),!n||U(t,n)){var i=r?": ".concat(r):".",a="doesNotReject"===e.name?"rejection":"exception";L({actual:t,expected:n,operator:e.name,message:"Got unwanted ".concat(a).concat(i,"\n")+'Actual message: "'.concat(t&&t.message,'"'),stackStartFn:e})}throw t}}function z(e,t,n,r,i){if(!x(t))throw new g("regexp","RegExp",t);var o="match"===i;if("string"!==typeof e||C(t,e)!==o){if(n instanceof Error)throw n;var s=!n;n=n||("string"!==typeof e?'The "string" argument must be of type string. Received type '+"".concat(a(e)," (").concat(_(e),")"):(o?"The input did not match the regular expression ":"The input was expected to not match the regular expression ")+"".concat(_(t),". Input:\n\n").concat(_(e),"\n"));var l=new w({actual:e,expected:t,message:n,operator:i,stackStartFn:r});throw l.generatedMessage=s,l}}function q(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];P.apply(void 0,[q,t.length].concat(t))}O.throws=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];H.apply(void 0,[e,j(t)].concat(r))},O.rejects=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return K(t).then((function(t){return H.apply(void 0,[e,t].concat(r))}))},O.doesNotThrow=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];G.apply(void 0,[e,j(t)].concat(r))},O.doesNotReject=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return K(t).then((function(t){return G.apply(void 0,[e,t].concat(r))}))},O.ifError=function e(t){if(null!==t&&void 0!==t){var n="ifError got unwanted exception: ";"object"===a(t)&&"string"===typeof t.message?0===t.message.length&&t.constructor?n+=t.constructor.name:n+=t.message:n+=_(t);var r=new w({actual:t,expected:null,operator:"ifError",message:n,stackStartFn:e}),i=t.stack;if("string"===typeof i){var o=i.split("\n");o.shift();for(var s=r.stack.split("\n"),l=0;l<o.length;l++){var c=s.indexOf(o[l]);if(-1!==c){s=s.slice(0,c);break}}r.stack="".concat(s.join("\n"),"\n").concat(o.join("\n"))}throw r}},O.match=function e(t,n,r){z(t,n,r,e,"match")},O.doesNotMatch=function e(t,n,r){z(t,n,r,e,"doesNotMatch")},O.strict=A(q,O,{equal:O.strictEqual,deepEqual:O.deepStrictEqual,notEqual:O.notStrictEqual,notDeepEqual:O.notDeepStrictEqual}),O.strict.strict=O.strict},49801:function(e,t,n){"use strict";var r=n(39907);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t,n){return t=u(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,u(r.key),r)}}function c(e,t,n){return t&&l(e.prototype,t),n&&l(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function u(e){var t=d(e,"string");return"symbol"===_(t)?t:String(t)}function d(e,t){if("object"!==_(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function h(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&w(e,t)}function p(e){var t=b();return function(){var n,r=E(e);if(t){var i=E(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f(this,n)}}function f(e,t){if(t&&("object"===_(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e){var t="function"===typeof Map?new Map:void 0;return g=function(e){if(null===e||!y(e))return e;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return v(e,arguments,E(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),w(n,e)},g(e)}function v(e,t,n){return v=b()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=Function.bind.apply(e,r),a=new i;return n&&w(a,n.prototype),a},v.apply(null,arguments)}function b(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function y(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function w(e,t){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},w(e,t)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function _(e){return _="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_(e)}var S=n(49208),k=S.inspect,x=n(41342),A=x.codes.ERR_INVALID_ARG_TYPE;function N(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function C(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;t=Math.floor(Math.log(t)/Math.log(2));while(t)e+=e,t--;return e+=e.substring(0,n-e.length),e}var T="",R="",O="",I="",L={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},D=10;function P(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function M(e){return k(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function B(e,t,n){var i="",a="",o=0,s="",l=!1,c=M(e),u=c.split("\n"),d=M(t).split("\n"),h=0,p="";if("strictEqual"===n&&"object"===_(e)&&"object"===_(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===u.length&&1===d.length&&u[0]!==d[0]){var f=u[0].length+d[0].length;if(f<=D){if(("object"!==_(e)||null===e)&&("object"!==_(t)||null===t)&&(0!==e||0!==t))return"".concat(L[n],"\n\n")+"".concat(u[0]," !== ").concat(d[0],"\n")}else if("strictEqualObject"!==n){var m=r.stderr&&r.stderr.isTTY?r.stderr.columns:80;if(f<m){while(u[0][h]===d[0][h])h++;h>2&&(p="\n ".concat(C(" ",h),"^"),h=0)}}}var g=u[u.length-1],v=d[d.length-1];while(g===v){if(h++<2?s="\n ".concat(g).concat(s):i=g,u.pop(),d.pop(),0===u.length||0===d.length)break;g=u[u.length-1],v=d[d.length-1]}var b=Math.max(u.length,d.length);if(0===b){var y=c.split("\n");if(y.length>30){y[26]="".concat(T,"...").concat(I);while(y.length>27)y.pop()}return"".concat(L.notIdentical,"\n\n").concat(y.join("\n"),"\n")}h>3&&(s="\n".concat(T,"...").concat(I).concat(s),l=!0),""!==i&&(s="\n ".concat(i).concat(s),i="");var w=0,E=L[n]+"\n".concat(R,"+ actual").concat(I," ").concat(O,"- expected").concat(I),S=" ".concat(T,"...").concat(I," Lines skipped");for(h=0;h<b;h++){var k=h-o;if(u.length<h+1)k>1&&h>2&&(k>4?(a+="\n".concat(T,"...").concat(I),l=!0):k>3&&(a+="\n ".concat(d[h-2]),w++),a+="\n ".concat(d[h-1]),w++),o=h,i+="\n".concat(O,"-").concat(I," ").concat(d[h]),w++;else if(d.length<h+1)k>1&&h>2&&(k>4?(a+="\n".concat(T,"...").concat(I),l=!0):k>3&&(a+="\n ".concat(u[h-2]),w++),a+="\n ".concat(u[h-1]),w++),o=h,a+="\n".concat(R,"+").concat(I," ").concat(u[h]),w++;else{var x=d[h],A=u[h],P=A!==x&&(!N(A,",")||A.slice(0,-1)!==x);P&&N(x,",")&&x.slice(0,-1)===A&&(P=!1,A+=","),P?(k>1&&h>2&&(k>4?(a+="\n".concat(T,"...").concat(I),l=!0):k>3&&(a+="\n ".concat(u[h-2]),w++),a+="\n ".concat(u[h-1]),w++),o=h,a+="\n".concat(R,"+").concat(I," ").concat(A),i+="\n".concat(O,"-").concat(I," ").concat(x),w+=2):(a+=i,i="",1!==k&&0!==h||(a+="\n ".concat(A),w++))}if(w>20&&h<b-2)return"".concat(E).concat(S,"\n").concat(a,"\n").concat(T,"...").concat(I).concat(i,"\n")+"".concat(T,"...").concat(I)}return"".concat(E).concat(l?S:"","\n").concat(a).concat(i).concat(s).concat(p)}var F=function(e,t){h(i,e);var n=p(i);function i(e){var t;if(s(this,i),"object"!==_(e)||null===e)throw new A("options","Object",e);var a=e.message,o=e.operator,l=e.stackStartFn,c=e.actual,u=e.expected,d=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=a)t=n.call(this,String(a));else if(r.stderr&&r.stderr.isTTY&&(r.stderr&&r.stderr.getColorDepth&&1!==r.stderr.getColorDepth()?(T="",R="",I="",O=""):(T="",R="",I="",O="")),"object"===_(c)&&null!==c&&"object"===_(u)&&null!==u&&"stack"in c&&c instanceof Error&&"stack"in u&&u instanceof Error&&(c=P(c),u=P(u)),"deepStrictEqual"===o||"strictEqual"===o)t=n.call(this,B(c,u,o));else if("notDeepStrictEqual"===o||"notStrictEqual"===o){var h=L[o],p=M(c).split("\n");if("notStrictEqual"===o&&"object"===_(c)&&null!==c&&(h=L.notStrictEqualObject),p.length>30){p[26]="".concat(T,"...").concat(I);while(p.length>27)p.pop()}t=1===p.length?n.call(this,"".concat(h," ").concat(p[0])):n.call(this,"".concat(h,"\n\n").concat(p.join("\n"),"\n"))}else{var g=M(c),v="",b=L[o];"notDeepEqual"===o||"notEqual"===o?(g="".concat(L[o],"\n\n").concat(g),g.length>1024&&(g="".concat(g.slice(0,1021),"..."))):(v="".concat(M(u)),g.length>512&&(g="".concat(g.slice(0,509),"...")),v.length>512&&(v="".concat(v.slice(0,509),"...")),"deepEqual"===o||"equal"===o?g="".concat(b,"\n\n").concat(g,"\n\nshould equal\n\n"):v=" ".concat(o," ").concat(v)),t=n.call(this,"".concat(g).concat(v))}return Error.stackTraceLimit=d,t.generatedMessage=!a,Object.defineProperty(m(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=c,t.expected=u,t.operator=o,Error.captureStackTrace&&Error.captureStackTrace(m(t),l),t.stack,t.name="AssertionError",f(t)}return c(i,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return k(this,a(a({},t),{},{customInspect:!1,depth:0}))}}]),i}(g(Error),k.custom);e.exports=F},41342:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}function a(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e){var t=s(e,"string");return"symbol"===r(t)?t:String(t)}function s(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!==r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function d(e){var t=f();return function(){var n,r=m(e);if(t){var i=m(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function h(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}var g,v,b={};function y(e,t,n){function r(e,n,r){return"string"===typeof t?t:t(e,n,r)}n||(n=Error);var i=function(t){c(i,t);var n=d(i);function i(t,a,o){var s;return l(this,i),s=n.call(this,r(t,a,o)),s.code=e,s}return a(i)}(n);b[e]=i}function w(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}function E(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function _(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function S(e,t,n){return"number"!==typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}y("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),y("ERR_INVALID_ARG_TYPE",(function(e,t,i){var a,o;if(void 0===g&&(g=n(26093)),g("string"===typeof e,"'name' must be a string"),"string"===typeof t&&E(t,"not ")?(a="must not be",t=t.replace(/^not /,"")):a="must be",_(e," argument"))o="The ".concat(e," ").concat(a," ").concat(w(t,"type"));else{var s=S(e,".")?"property":"argument";o='The "'.concat(e,'" ').concat(s," ").concat(a," ").concat(w(t,"type"))}return o+=". Received type ".concat(r(i)),o}),TypeError),y("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===v&&(v=n(49208));var i=v.inspect(t);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(i)}),TypeError,RangeError),y("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var i;return i=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(r(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(i,".")}),TypeError),y("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];void 0===g&&(g=n(26093)),g(t.length>0,"At least one arg needs to be specified");var i="The ",a=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),a){case 1:i+="".concat(t[0]," argument");break;case 2:i+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:i+=t.slice(0,a-1).join(", "),i+=", and ".concat(t[a-1]," arguments");break}return"".concat(i," must be specified")}),TypeError),e.exports.codes=b},5656:function(e,t,n){"use strict";function r(e,t){return l(e)||s(e,t)||a(e,t)||i()}function i(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(e,t){if(e){if("string"===typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}function l(e){if(Array.isArray(e))return e}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}var u=void 0!==/a/g.flags,d=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},h=function(e){var t=[];return e.forEach((function(e,n){return t.push([n,e])})),t},p=Object.is?Object.is:n(55968),f=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},m=Number.isNaN?Number.isNaN:n(7838);function g(e){return e.call.bind(e)}var v=g(Object.prototype.hasOwnProperty),b=g(Object.prototype.propertyIsEnumerable),y=g(Object.prototype.toString),w=n(49208).types,E=w.isAnyArrayBuffer,_=w.isArrayBufferView,S=w.isDate,k=w.isMap,x=w.isRegExp,A=w.isSet,N=w.isNativeError,C=w.isBoxedPrimitive,T=w.isNumberObject,R=w.isStringObject,O=w.isBooleanObject,I=w.isBigIntObject,L=w.isSymbolObject,D=w.isFloat32Array,P=w.isFloat64Array;function M(e){if(0===e.length||e.length>10)return!0;for(var t=0;t<e.length;t++){var n=e.charCodeAt(t);if(n<48||n>57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function B(e){return Object.keys(e).filter(M).concat(f(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))} +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */function F(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0}var $=void 0,U=!0,j=!1,V=0,K=1,H=2,G=3;function z(e,t){return u?e.source===t.source&&e.flags===t.flags:RegExp.prototype.toString.call(e)===RegExp.prototype.toString.call(t)}function q(e,t){if(e.byteLength!==t.byteLength)return!1;for(var n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}function X(e,t){return e.byteLength===t.byteLength&&0===F(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function W(e,t){return e.byteLength===t.byteLength&&0===F(new Uint8Array(e),new Uint8Array(t))}function Y(e,t){return T(e)?T(t)&&p(Number.prototype.valueOf.call(e),Number.prototype.valueOf.call(t)):R(e)?R(t)&&String.prototype.valueOf.call(e)===String.prototype.valueOf.call(t):O(e)?O(t)&&Boolean.prototype.valueOf.call(e)===Boolean.prototype.valueOf.call(t):I(e)?I(t)&&BigInt.prototype.valueOf.call(e)===BigInt.prototype.valueOf.call(t):L(t)&&Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t)}function Q(e,t,n,r){if(e===t)return 0!==e||(!n||p(e,t));if(n){if("object"!==c(e))return"number"===typeof e&&m(e)&&m(t);if("object"!==c(t)||null===e||null===t)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1}else{if(null===e||"object"!==c(e))return(null===t||"object"!==c(t))&&e==t;if(null===t||"object"!==c(t))return!1}var i=y(e),a=y(t);if(i!==a)return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;var o=B(e,$),s=B(t,$);return o.length===s.length&&Z(e,t,n,r,K,o)}if("[object Object]"===i&&(!k(e)&&k(t)||!A(e)&&A(t)))return!1;if(S(e)){if(!S(t)||Date.prototype.getTime.call(e)!==Date.prototype.getTime.call(t))return!1}else if(x(e)){if(!x(t)||!z(e,t))return!1}else if(N(e)||e instanceof Error){if(e.message!==t.message||e.name!==t.name)return!1}else{if(_(e)){if(n||!D(e)&&!P(e)){if(!X(e,t))return!1}else if(!q(e,t))return!1;var l=B(e,$),u=B(t,$);return l.length===u.length&&Z(e,t,n,r,V,l)}if(A(e))return!(!A(t)||e.size!==t.size)&&Z(e,t,n,r,H);if(k(e))return!(!k(t)||e.size!==t.size)&&Z(e,t,n,r,G);if(E(e)){if(!W(e,t))return!1}else if(C(e)&&!Y(e,t))return!1}return Z(e,t,n,r,V)}function J(e,t){return t.filter((function(t){return b(e,t)}))}function Z(e,t,n,r,i,a){if(5===arguments.length){a=Object.keys(e);var o=Object.keys(t);if(a.length!==o.length)return!1}for(var s=0;s<a.length;s++)if(!v(t,a[s]))return!1;if(n&&5===arguments.length){var l=f(e);if(0!==l.length){var c=0;for(s=0;s<l.length;s++){var u=l[s];if(b(e,u)){if(!b(t,u))return!1;a.push(u),c++}else if(b(t,u))return!1}var d=f(t);if(l.length!==d.length&&J(t,d).length!==c)return!1}else{var h=f(t);if(0!==h.length&&0!==J(t,h).length)return!1}}if(0===a.length&&(i===V||i===K&&0===e.length||0===e.size))return!0;if(void 0===r)r={val1:new Map,val2:new Map,position:0};else{var p=r.val1.get(e);if(void 0!==p){var m=r.val2.get(t);if(void 0!==m)return p===m}r.position++}r.val1.set(e,r.position),r.val2.set(t,r.position);var g=se(e,t,n,a,r,i);return r.val1.delete(e),r.val2.delete(t),g}function ee(e,t,n,r){for(var i=d(e),a=0;a<i.length;a++){var o=i[a];if(Q(t,o,n,r))return e.delete(o),!0}return!1}function te(e){switch(c(e)){case"undefined":return null;case"object":return;case"symbol":return!1;case"string":e=+e;case"number":if(m(e))return!1}return!0}function ne(e,t,n){var r=te(n);return null!=r?r:t.has(r)&&!e.has(r)}function re(e,t,n,r,i){var a=te(n);if(null!=a)return a;var o=t.get(a);return!(void 0===o&&!t.has(a)||!Q(r,o,!1,i))&&(!e.has(a)&&Q(r,o,!1,i))}function ie(e,t,n,r){for(var i=null,a=d(e),o=0;o<a.length;o++){var s=a[o];if("object"===c(s)&&null!==s)null===i&&(i=new Set),i.add(s);else if(!t.has(s)){if(n)return!1;if(!ne(e,t,s))return!1;null===i&&(i=new Set),i.add(s)}}if(null!==i){for(var l=d(t),u=0;u<l.length;u++){var h=l[u];if("object"===c(h)&&null!==h){if(!ee(i,h,n,r))return!1}else if(!n&&!e.has(h)&&!ee(i,h,n,r))return!1}return 0===i.size}return!0}function ae(e,t,n,r,i,a){for(var o=d(e),s=0;s<o.length;s++){var l=o[s];if(Q(n,l,i,a)&&Q(r,t.get(l),i,a))return e.delete(l),!0}return!1}function oe(e,t,n,i){for(var a=null,o=h(e),s=0;s<o.length;s++){var l=r(o[s],2),u=l[0],d=l[1];if("object"===c(u)&&null!==u)null===a&&(a=new Set),a.add(u);else{var p=t.get(u);if(void 0===p&&!t.has(u)||!Q(d,p,n,i)){if(n)return!1;if(!re(e,t,u,d,i))return!1;null===a&&(a=new Set),a.add(u)}}}if(null!==a){for(var f=h(t),m=0;m<f.length;m++){var g=r(f[m],2),v=g[0],b=g[1];if("object"===c(v)&&null!==v){if(!ae(a,e,v,b,n,i))return!1}else if(!n&&(!e.has(v)||!Q(e.get(v),b,!1,i))&&!ae(a,e,v,b,!1,i))return!1}return 0===a.size}return!0}function se(e,t,n,r,i,a){var o=0;if(a===H){if(!ie(e,t,n,i))return!1}else if(a===G){if(!oe(e,t,n,i))return!1}else if(a===K)for(;o<e.length;o++){if(!v(e,o)){if(v(t,o))return!1;for(var s=Object.keys(e);o<s.length;o++){var l=s[o];if(!v(t,l)||!Q(e[l],t[l],n,i))return!1}return s.length===Object.keys(t).length}if(!v(t,o)||!Q(e[o],t[o],n,i))return!1}for(o=0;o<r.length;o++){var c=r[o];if(!Q(e[c],t[c],n,i))return!1}return!0}function le(e,t){return Q(e,t,j)}function ce(e,t){return Q(e,t,U)}e.exports={isDeepEqual:le,isDeepStrictEqual:ce}},7991:function(e,t){"use strict";t.byteLength=c,t.toByteArray=d,t.fromByteArray=f;for(var n=[],r=[],i="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,s=a.length;o<s;++o)n[o]=a[o],r[a.charCodeAt(o)]=o;function l(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");-1===n&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function c(e){var t=l(e),n=t[0],r=t[1];return 3*(n+r)/4-r}function u(e,t,n){return 3*(t+n)/4-n}function d(e){var t,n,a=l(e),o=a[0],s=a[1],c=new i(u(e,o,s)),d=0,h=s>0?o-4:o;for(n=0;n<h;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],c[d++]=t>>16&255,c[d++]=t>>8&255,c[d++]=255&t;return 2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[d++]=255&t),1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[d++]=t>>8&255,c[d++]=255&t),c}function h(e){return n[e>>18&63]+n[e>>12&63]+n[e>>6&63]+n[63&e]}function p(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),i.push(h(r));return i.join("")}function f(e){for(var t,r=e.length,i=r%3,a=[],o=16383,s=0,l=r-i;s<l;s+=o)a.push(p(e,s,s+o>l?l:s+o));return 1===i?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},1048:function(e,t,n){"use strict";var r=n(4364),i=n(7991),a=n(39318),o="function"===typeof Symbol&&"function"===typeof Symbol["for"]?Symbol["for"]("nodejs.util.inspect.custom"):null; +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <https://feross.org> + * @license MIT + */t.Buffer=u,t.SlowBuffer=E,t.INSPECT_MAX_BYTES=50;var s=2147483647;function l(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(n){return!1}}function c(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"===typeof e){if("string"===typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return d(e,t,n)}function d(e,t,n){if("string"===typeof e)return m(e,t);if(ArrayBuffer.isView(e))return v(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(J(e,ArrayBuffer)||e&&J(e.buffer,ArrayBuffer))return b(e,t,n);if("undefined"!==typeof SharedArrayBuffer&&(J(e,SharedArrayBuffer)||e&&J(e.buffer,SharedArrayBuffer)))return b(e,t,n);if("number"===typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return u.from(r,t,n);var i=y(e);if(i)return i;if("undefined"!==typeof Symbol&&null!=Symbol.toPrimitive&&"function"===typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function h(e){if("number"!==typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function p(e,t,n){return h(e),e<=0?c(e):void 0!==t?"string"===typeof n?c(e).fill(t,n):c(e).fill(t):c(e)}function f(e){return h(e),c(e<0?0:0|w(e))}function m(e,t){if("string"===typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var n=0|_(e,t),r=c(n),i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function g(e){for(var t=e.length<0?0:0|w(e.length),n=c(t),r=0;r<t;r+=1)n[r]=255&e[r];return n}function v(e){if(J(e,Uint8Array)){var t=new Uint8Array(e);return b(t.buffer,t.byteOffset,t.byteLength)}return g(e)}function b(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');var r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,u.prototype),r}function y(e){if(u.isBuffer(e)){var t=0|w(e.length),n=c(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!==typeof e.length||Z(e.length)?c(0):g(e):"Buffer"===e.type&&Array.isArray(e.data)?g(e.data):void 0}function w(e){if(e>=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function E(e){return+e!=e&&(e=0),u.alloc(+e)}function _(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||J(e,ArrayBuffer))return e.byteLength;if("string"!==typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Y(e).length;default:if(i)return r?-1:q(e).length;t=(""+t).toLowerCase(),i=!0}}function S(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";e||(e="utf8");while(1)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return L(this,t,n);case"ascii":return M(this,t,n);case"latin1":case"binary":return B(this,t,n);case"base64":return I(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function k(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function x(e,t,n,r,i){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,Z(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"===typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:A(e,t,n,r,i);if("number"===typeof t)return t&=255,"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):A(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function A(e,t,n,r,i){var a,o=1,s=e.length,l=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(a=n;a<s;a++)if(c(e,a)===c(t,-1===u?0:a-u)){if(-1===u&&(u=a),a-u+1===l)return u*o}else-1!==u&&(a-=a-u),u=-1}else for(n+l>s&&(n=s-l),a=n;a>=0;a--){for(var d=!0,h=0;h<l;h++)if(c(e,a+h)!==c(t,h)){d=!1;break}if(d)return a}return-1}function N(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var a=t.length;r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(Z(s))return o;e[n+o]=s}return o}function C(e,t,n,r){return Q(q(t,e.length-n),e,n,r)}function T(e,t,n,r){return Q(X(t),e,n,r)}function R(e,t,n,r){return Q(Y(t),e,n,r)}function O(e,t,n,r){return Q(W(t,e.length-n),e,n,r)}function I(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function L(e,t,n){n=Math.min(e.length,n);var r=[],i=t;while(i<n){var a,o,s,l,c=e[i],u=null,d=c>239?4:c>223?3:c>191?2:1;if(i+d<=n)switch(d){case 1:c<128&&(u=c);break;case 2:a=e[i+1],128===(192&a)&&(l=(31&c)<<6|63&a,l>127&&(u=l));break;case 3:a=e[i+1],o=e[i+2],128===(192&a)&&128===(192&o)&&(l=(15&c)<<12|(63&a)<<6|63&o,l>2047&&(l<55296||l>57343)&&(u=l));break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128===(192&a)&&128===(192&o)&&128===(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s,l>65535&&l<1114112&&(u=l))}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=d}return P(r)}t.kMaxLength=s,u.TYPED_ARRAY_SUPPORT=l(),u.TYPED_ARRAY_SUPPORT||"undefined"===typeof r||"function"!==typeof r.error||r.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}}),u.poolSize=8192,u.from=function(e,t,n){return d(e,t,n)},Object.setPrototypeOf(u.prototype,Uint8Array.prototype),Object.setPrototypeOf(u,Uint8Array),u.alloc=function(e,t,n){return p(e,t,n)},u.allocUnsafe=function(e){return f(e)},u.allocUnsafeSlow=function(e){return f(e)},u.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==u.prototype},u.compare=function(e,t){if(J(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),J(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=u.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var a=e[n];if(J(a,Uint8Array))i+a.length>r.length?u.from(a).copy(r,i):Uint8Array.prototype.set.call(r,a,i);else{if(!u.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,i)}i+=a.length}return r},u.byteLength=_,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)k(this,t,t+1);return this},u.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)k(this,t,t+3),k(this,t+1,t+2);return this},u.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)k(this,t,t+7),k(this,t+1,t+6),k(this,t+2,t+5),k(this,t+3,t+4);return this},u.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?L(this,0,e):S.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(e+=" ... "),"<Buffer "+e+">"},o&&(u.prototype[o]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(J(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var a=i-r,o=n-t,s=Math.min(a,o),l=this.slice(r,i),c=e.slice(t,n),d=0;d<s;++d)if(l[d]!==c[d]){a=l[d],o=c[d];break}return a<o?-1:o<a?1:0},u.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},u.prototype.indexOf=function(e,t,n){return x(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return x(this,e,t,n,!1)},u.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"===typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return N(this,e,t,n);case"utf8":case"utf-8":return C(this,e,t,n);case"ascii":case"latin1":case"binary":return T(this,e,t,n);case"base64":return R(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function P(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var n="",r=0;while(r<t)n+=String.fromCharCode.apply(String,e.slice(r,r+=D));return n}function M(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function B(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function F(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=ee[e[a]];return i}function $(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length-1;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function U(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,n,r,i,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function V(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function K(e,t,n,r,i){return t=+t,n>>>=0,i||V(e,t,n,4,34028234663852886e22,-34028234663852886e22),a.write(e,t,n,r,23,4),n+4}function H(e,t,n,r,i){return t=+t,n>>>=0,i||V(e,t,n,8,17976931348623157e292,-17976931348623157e292),a.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r=this.subarray(e,t);return Object.setPrototypeOf(r,u.prototype),r},u.prototype.readUintLE=u.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||U(e,t,this.length);var r=this[e],i=1,a=0;while(++a<t&&(i*=256))r+=this[e+a]*i;return r},u.prototype.readUintBE=u.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||U(e,t,this.length);var r=this[e+--t],i=1;while(t>0&&(i*=256))r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||U(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||U(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||U(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||U(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||U(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||U(e,t,this.length);var r=this[e],i=1,a=0;while(++a<t&&(i*=256))r+=this[e+a]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||U(e,t,this.length);var r=t,i=1,a=this[e+--r];while(r>0&&(i*=256))a+=this[e+--r]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return e>>>=0,t||U(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||U(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||U(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||U(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||U(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return e>>>=0,t||U(e,4,this.length),a.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||U(e,4,this.length),a.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||U(e,8,this.length),a.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||U(e,8,this.length),a.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){var i=Math.pow(2,8*n)-1;j(this,e,t,n,i,0)}var a=1,o=0;this[t]=255&e;while(++o<n&&(a*=256))this[t+o]=e/a&255;return t+n},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){var i=Math.pow(2,8*n)-1;j(this,e,t,n,i,0)}var a=n-1,o=1;this[t+a]=255&e;while(--a>=0&&(o*=256))this[t+a]=e/o&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;this[t]=255&e;while(++a<n&&(o*=256))e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o|0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;this[t+a]=255&e;while(--a>=0&&(o*=256))e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o|0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeFloatLE=function(e,t,n){return K(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return K(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return H(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return H(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i=r-n;return this===e&&"function"===typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),i},u.prototype.fill=function(e,t,n,r){if("string"===typeof e){if("string"===typeof t?(r=t,t=0,n=this.length):"string"===typeof n&&(r=n,n=this.length),void 0!==r&&"string"!==typeof r)throw new TypeError("encoding must be a string");if("string"===typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===e.length){var i=e.charCodeAt(0);("utf8"===r&&i<128||"latin1"===r)&&(e=i)}}else"number"===typeof e?e&=255:"boolean"===typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=u.isBuffer(e)?e:u.from(e,r),s=o.length;if(0===s)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(a=0;a<n-t;++a)this[a+t]=o[a%s]}return this};var G=/[^+/0-9A-Za-z-_]/g;function z(e){if(e=e.split("=")[0],e=e.trim().replace(G,""),e.length<2)return"";while(e.length%4!==0)e+="=";return e}function q(e,t){var n;t=t||1/0;for(var r=e.length,i=null,a=[],o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function X(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function W(e,t){for(var n,r,i,a=[],o=0;o<e.length;++o){if((t-=2)<0)break;n=e.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r)}return a}function Y(e){return i.toByteArray(z(e))}function Q(e,t,n,r){for(var i=0;i<r;++i){if(i+n>=t.length||i>=e.length)break;t[i+n]=e[i]}return i}function J(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Z(e){return e!==e}var ee=function(){for(var e="0123456789abcdef",t=new Array(256),n=0;n<16;++n)for(var r=16*n,i=0;i<16;++i)t[r+i]=e[n]+e[i];return t}()},30049:function(e){e.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},9262:function(e,t,n){"use strict";n.d(t,{$8:function(){return s},Df:function(){return o},HG:function(){return a}});var r=n(40207),i=n(35664);const a={VERSION_RANCHER:"server-version",VERSION_CLI:"cli-version",VERSION_MACHINE:"machine-version",VERSION_HELM:"helm-version",CLI_URL:{DARWIN:"cli-url-darwin",WINDOWS:"cli-url-windows",LINUX:"cli-url-linux"},API_HOST:"api-host",CA_CERTS:"cacerts",HIDE_LOCAL_CLUSTER:"hide-local-cluster",AUTH_TOKEN_MAX_TTL_MINUTES:"auth-token-max-ttl-minutes",KUBECONFIG_GENERATE_TOKEN:"kubeconfig-generate-token",KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES:"kubeconfig-default-token-ttl-minutes",ENGINE_URL:"engine-install-url",ENGINE_ISO_URL:"engine-iso-url",FIRST_LOGIN:"first-login",INGRESS_IP_DOMAIN:"ingress-ip-domain",SERVER_URL:"server-url",RKE_METADATA_CONFIG:"rke-metadata-config",EULA_AGREED:"eula-agreed",AUTH_USER_INFO_MAX_AGE_SECONDS:"auth-user-info-max-age-seconds",AUTH_USER_SESSION_TTL_MINUTES:"auth-user-session-ttl-minutes",AUTH_USER_INFO_RESYNC_CRON:"auth-user-info-resync-cron",AUTH_LOCAL_VALIDATE_DESC:"auth-password-requirements-description",PASSWORD_MIN_LENGTH:"password-min-length",CLUSTER_TEMPLATE_ENFORCEMENT:"cluster-template-enforcement",UI_INDEX:"ui-index",UI_DASHBOARD_INDEX:"ui-dashboard-index",UI_DASHBOARD_HARVESTER_LEGACY_PLUGIN:"ui-dashboard-harvester-legacy-plugin",UI_OFFLINE_PREFERRED:"ui-offline-preferred",SYSTEM_DEFAULT_REGISTRY:"system-default-registry",UI_ISSUES:"ui-issues",PL:"ui-pl",PL_RANCHER_VALUE:"rancher",SUPPORTED:"has-support",BANNERS:"ui-banners",ISSUES:"ui-issues",BRAND:"ui-brand",LOGO_LIGHT:"ui-logo-light",LOGO_DARK:"ui-logo-dark",BANNER_LIGHT:"ui-banner-light",BANNER_DARK:"ui-banner-dark",LOGIN_BACKGROUND_LIGHT:"ui-login-background-light",LOGIN_BACKGROUND_DARK:"ui-login-background-dark",PRIMARY_COLOR:"ui-primary-color",LINK_COLOR:"ui-link-color",COMMUNITY_LINKS:"ui-community-links",FAVICON:"ui-favicon",UI_PERFORMANCE:"ui-performance",UI_CUSTOM_LINKS:"ui-custom-links",UI_SUPPORTED_K8S_VERSIONS:"ui-k8s-supported-versions-range",THEME:"ui-theme",SYSTEM_NAMESPACES:"system-namespaces",CLUSTER_AGENT_DEFAULT_AFFINITY:"cluster-agent-default-affinity",FLEET_AGENT_DEFAULT_AFFINITY:"fleet-agent-default-affinity",ADD_EXTENSION_REPOS_BANNER_DISPLAY:"display-add-extension-repos-banner",AGENT_TLS_MODE:"agent-tls-mode",USER_RETENTION_CRON:"user-retention-cron",USER_RETENTION_DRY_RUN:"user-retention-dry-run",USER_LAST_LOGIN_DEFAULT:"user-last-login-default",DISABLE_INACTIVE_USER_AFTER:"disable-inactive-user-after",DELETE_INACTIVE_USER_AFTER:"delete-inactive-user-after",K3S_UPGRADER_UNINSTALL_CONCURRENCY:"k3s-based-upgrader-uninstall-concurrency"},o={[a.CA_CERTS]:{kind:"multiline",readOnly:!0},[a.ENGINE_URL]:{},[a.ENGINE_ISO_URL]:{},[a.PASSWORD_MIN_LENGTH]:{kind:"integer",ruleSet:[{name:"betweenValues",key:"Password",factoryArg:[2,256]},{name:"isInteger",key:"Password"},{name:"isPositive",key:"Password"},{name:"isOctal",key:"Password"}]},[a.INGRESS_IP_DOMAIN]:{},[a.AUTH_USER_INFO_MAX_AGE_SECONDS]:{},[a.AUTH_USER_SESSION_TTL_MINUTES]:{},[a.AUTH_TOKEN_MAX_TTL_MINUTES]:{},[a.KUBECONFIG_GENERATE_TOKEN]:{kind:"boolean"},[a.KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES]:{kind:"integer"},[a.AUTH_USER_INFO_RESYNC_CRON]:{},[a.SERVER_URL]:{kind:"url",canReset:!0},[a.RKE_METADATA_CONFIG]:{kind:"json"},[a.SYSTEM_DEFAULT_REGISTRY]:{},[a.UI_INDEX]:{},[a.UI_DASHBOARD_INDEX]:{},[a.UI_OFFLINE_PREFERRED]:{kind:"enum",options:["dynamic","true","false"]},[a.BRAND]:{canReset:!0},[a.CLUSTER_TEMPLATE_ENFORCEMENT]:{kind:"boolean"},[a.HIDE_LOCAL_CLUSTER]:{kind:"boolean"},[a.AGENT_TLS_MODE]:{kind:"enum",options:["strict","system-store"],warning:"agent-tls-mode"},[a.K3S_UPGRADER_UNINSTALL_CONCURRENCY]:{kind:"integer",ruleSet:[{name:"minValue",factoryArg:1}]}},s={inactivity:{enabled:!1,threshold:900},incrementalLoading:{enabled:!0,threshold:1500},manualRefresh:{enabled:!1,threshold:1500},disableWebsocketNotification:!0,garbageCollection:r.W,forceNsFilterV2:{enabled:!1},advancedWorker:{enabled:!1},kubeAPI:{warningHeader:{separator:"299 - ",notificationBlockList:["299 - unknown field"]}},serverPagination:{enabled:!1,stores:{cluster:{resources:{enableAll:!1,enableSome:{enabled:[i.NW,i.ll,i.oU.CRON_JOB,i.oU.DAEMON_SET,i.oU.DEPLOYMENT,i.oU.JOB,i.oU.STATEFUL_SET,i.Sm,i.W8.APP,i.W8.CLUSTER_REPO,i.W8.OPERATION,i.wT,i.kf,i.YV,i.PV,i.K5,i.fJ,i.YH,i.bB,i.oU.REPLICA_SET,i.oU.REPLICATION_CONTROLLER],generic:!0}}},management:{resources:{enableAll:!1,enableSome:{enabled:[{resource:i.qt.RANCHER_CLUSTER,context:["home","side-bar"]},{resource:i.Mc.CLUSTER,context:["side-bar"]}],generic:!1}}}}}}},25659:function(e,t,n){"use strict";n.d(t,{A:function(){return p}});var r,i=n(31915),a=n(35881),o=n(92043),s=n(14220),l=n(37327),c=n(76978);function u(e,t){const n=(0,l.P)(e);return"home"===t&&"home"===e.name||t===n}function d({name:e,query:t},n){return!(n!==s.G5||!t.mode||t.mode!==s.G5||t.as)||(!(n!==s.au||!t.as||t.as!==s.au)||(!(n!==s.fS||t.as||!e.includes("-id")||t.mode&&t?.mode===s.G5)||(!(n!==s.wC||e.includes("-id")||!e.includes("-resource"))||!(n!==s.YQ||!e.endsWith("-create")))))}function h(e,t,n){if(!Object.keys(t).length)return!0;const{params:r}=e,i=["product","resource","namespace","cluster","id","mode","path","hash","queryParam","context"];let a=!0;for(let o=0;o<i.length;o++){const s=i[o];if(t[s]){const i=Array.isArray(t[s])?t[s]:[t[s]];for(let t=0;t<i.length;t++){const o=i[t];if(o&&(a="hash"===s?!!e.hash&&e.hash.includes(o):"product"===s?u(e,o):"mode"===s?d(e,o):"resource"===s?r[s]&&"*"===o||o===r[s]:"context"===s?(0,c.n4)(o,n):"queryParam"===s?(0,c.n4)(o,e.query):"path"===s&&o.urlPath?o.endsWith?e.path.endsWith(o.urlPath):!Object.keys(o).includes("exact")||o.exact?o.urlPath===e.path:e.path.includes(o.urlPath):o===r[s]),a)break}if(!a)break}}return a}function p(e,t,n,r,s=e,l){const c=[];if(e.$plugin?.getUIConfig){const u=e.$plugin.getUIConfig(t,n);u.forEach(((e,d)=>{if(h(r,e.locationConfig,l||{})){if(t===i.c7.CARD)n===i.O4.CLUSTER_DASHBOARD_CARD&&e.labelKey&&(u[d].label=s.t(e.labelKey));else if(t===i.c7.ACTION&&(n===i.ug.TABLE&&(e.labelKey&&(u[d].label=s.t(e.labelKey)),u[d].bulkable=u[d].multiple||u[d].bulkable,u[d].action||(u[d].action=`custom-table-action-${(0,o.vx)(10).toLowerCase()}`)),n===i.ug.HEADER&&e.shortcut))if("string"===typeof e.shortcut)u[d].shortcutLabel=()=>a.cX?`(⌘-${e.shortcut.toUpperCase()})`:`(Ctrl-${e.shortcut.toUpperCase()})`,u[d].shortcutKey={windows:["ctrl",e.shortcut],mac:["meta",e.shortcut]};else if("object"===typeof e.shortcut&&!Array.isArray(e.shortcut)&&null!==e.shortcut){u[d].shortcutKey=e.shortcut;const t=a.cX?u[d].shortcut.mac:u[d].shortcut.windows?u[d].shortcut.windows:[];let n="";t.forEach(((e,r)=>{r<t.length-1?(e="meta"===e?"⌘":(0,o.TF)(e),n+=`${e}`,n+="-"):n+=`${e.toUpperCase()}`})),u[d].shortcutLabel=()=>`(${n})`}c.push(u[d])}}))}return c}(function(e){e["_CONFIG"]="config",e["_CREATE"]="create",e["_DETAIL"]="detail",e["_EDIT"]="edit",e["_LIST"]="list"})(r||(r={}))},31915:function(e,t,n){"use strict";var r,i,a,o,s,l;n.d(t,{O4:function(){return s},W3:function(){return l},W7:function(){return a},c7:function(){return r},lX:function(){return o},ug:function(){return i}}),function(e){e["ACTION"]="Action",e["TAB"]="Tab",e["PANEL"]="Panel",e["CARD"]="Card",e["TABLE_COL"]="TableColumn"}(r||(r={})),function(e){e["HEADER"]="header-action",e["TABLE"]="table-action"}(i||(i={})),function(e){e["DETAILS_MASTHEAD"]="details-masthead",e["DETAIL_TOP"]="detail-top",e["RESOURCE_LIST"]="resource-list"}(a||(a={})),function(e){e["RESOURCE_DETAIL"]="tab",e["CLUSTER_CREATE_RKE2"]="cluster-create-rke2"}(o||(o={})),function(e){e["CLUSTER_DASHBOARD_CARD"]="cluster-dashboard-card"}(s||(s={})),function(e){e["RESOURCE"]="resource-list"}(l||(l={}))},63503:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(14220);function i(e,t){e&&("function"===typeof t&&(t=t()),e.style.width="string"!==typeof t?`${t}px`:t)}function a(e){if(e&&e.length)return e.length?parseFloat(getComputedStyle(e[0]).width.replace("px","")):parseFloat(getComputedStyle(e).width.replace("px",""))}var o={inheritAttrs:!1,emits:["update:validation","on-focus","on-blur"],props:{mode:{type:String,default:r.G5},label:{type:String,default:null},labelKey:{type:String,default:null},placeholderKey:{type:String,default:null},tooltip:{type:[String,Object],default:null},hoverTooltip:{type:Boolean,default:!0},tooltipKey:{type:String,default:null},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placeholder:{type:[String,Number],default:""},value:{type:[String,Number,Object],default:""},options:{default:null,type:Array},searchable:{default:!1,type:Boolean},filterable:{default:!0,type:Boolean},rules:{default:()=>[],type:Array,validator:e=>e.every((e=>["function"].includes(typeof e)))},requireDirty:{default:!0,type:Boolean}},data(){return{raised:this.mode===r.nW||!!`${this.value}`,focused:!1,blurred:null}},computed:{requiredField(){return this.required||this.rules.some((e=>"required"===e?.name))},empty(){return!!`${this.value}`},isView(){return this.mode===r.nW},isDisabled(){return this.disabled||this.isView},isSearchable(){const{searchable:e,canPaginate:t}=this;if(t)return!0;const n=this.options||[];return!!(e||n.length>=10)},isFilterable(){const{filterable:e,canPaginate:t}=this;return!t&&e},validationMessage(){const e=this.rules.find((e=>"required"===e?.name)),t=[],n=this?.value;if(e&&this.blurred&&!this.focused){const t=e(n);if(t)return this.$emit("update:validation",!1),t}for(const r of this.rules){const e=r(n);e&&"required"!==r.name&&t.push(e)}return t.length>0&&(this.blurred||this.focused||!this.requireDirty)?(this.$emit("update:validation",!1),t.join(", ")):void this.$emit("update:validation",!0)}},methods:{resizeHandler(){this.$nextTick((()=>{const e=this.$refs.select.querySelector("ul.vs__dropdown-menu"),t=a(this.$refs.select)||0,n=a(e)||0;n<t&&i(e,t)}))},onFocus(){return this.$emit("on-focus"),this.onFocusLabeled()},onFocusLabeled(){this.raised=!0,this.focused=!0},onBlur(){return this.$emit("on-blur"),this.onBlurLabeled()},onBlurLabeled(){this.focused=!1,this.value||(this.raised=!1),this.blurred=Date.now()}}}},25192:function(e,t,n){"use strict";n.r(t);var r=n(41212),i=n(35664);describe("class Deployment",(()=>{describe("replicaSetId",(()=>{it.each([{relationships:[],expected:void 0},{relationships:[{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id"}],expected:"rel-id"},{relationships:[{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-1",message:"ReplicaSet is available. Replicas: 1"}],expected:"rel-id-1"},{relationships:[{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-1",message:"ReplicaSet is available. Replicas: 0"},{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-2",message:"ReplicaSet is available. Replicas: 1"}],expected:"rel-id-2"},{relationships:[{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-1",message:"Message without replicas count"},{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-2",message:"Another message without replicas count"}],expected:"rel-id-1"},{relationships:[{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-1",message:"ReplicaSet is available. Replicas: 0"},{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-2",message:"ReplicaSet is available. Replicas: 0"}],expected:"rel-id-1"},{relationships:[{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-1",message:"Message without replicas count"},{rel:"owner",toType:i.oU.REPLICA_SET,toId:"rel-id-2",message:"ReplicaSet is available. Replicas: 0"}],expected:"rel-id-1"}])("replicaSetId",(({relationships:e,expected:t})=>{const n={id:"any-id",type:i.oU.DEPLOYMENT,metadata:{name:"any-name",namespace:"any-namespace",uid:"any-uid",relationships:e}},a=new r["default"](n);expect(a.replicaSetId).toStrictEqual(t)}))}))}))},8432:function(e,t,n){"use strict";n.r(t);var r=n(43020);describe("class Cronjob",(()=>{it("should have no ownerReferences by default",(()=>{const e={id:"any-id",type:"batch.job",apiVersion:"batch/v1",kind:"Job",metadata:{name:"any-name",namespace:"any-namespace",uid:"any-uid"},spec:{jobTemplate:{}}},t={name:"any-name",namespace:"any-namespace",uid:"any-uid"},n=new r["default"](e);expect(n.metadata).toStrictEqual(t)})),describe("method runNow",(()=>{it("should populate job metadata",(async()=>{const e={id:"any-id",type:"batch.job",apiVersion:"batch/v1",kind:"Job",metadata:{name:"any-name",namespace:"any-namespace",uid:"any-uid"},spec:{jobTemplate:{}}},t=Date.now(),n={name:`${e.metadata.name}-${t}`,namespace:e.metadata.namespace,ownerReferences:[{apiVersion:"batch/v1",controller:!0,kind:"Job",name:e.metadata.name,uid:e.metadata.uid}],uid:e.metadata.uid},i=()=>({...e,save:jest.fn(),goToDetail:jest.fn()}),a=new r["default"](e,{dispatch:i});jest.useFakeTimers().setSystemTime(t),jest.spyOn(a,"$dispatch").mockImplementation(i),await a.runNow(),expect(a.metadata).toStrictEqual(n)})),it("should redirect to another page",(async()=>{const e={metadata:{name:"any-name"},spec:{jobTemplate:{}}},t=jest.fn(),n=()=>({...e,save:jest.fn(),goToDetail:t}),i=new r["default"](e,{dispatch:n});jest.spyOn(i,"$dispatch").mockImplementation(n),await i.runNow(),expect(t).toHaveBeenCalledWith()}))}))}))},13573:function(e,t,n){"use strict";n.r(t);var r=n(16787);describe("class NormanCluster",(()=>{const e=jest.fn((()=>"abc")),t={rootGetters:{"i18n/t":e},dispatch:jest.fn()};it("should return empty arrays of system labels and system annotations if cluster labels and annotations are undefined",(()=>{const e=new r["default"]({},t);expect(e.systemLabels).toStrictEqual([]),expect(e.systemAnnotations).toStrictEqual([])})),it("should list all the cluster's annotation keys that contain coreos.com, cattle.io, k3s.io, kubernetes.io, or k3s.io",(()=>{const e=["cattle.io/test","coreos.com","test.cattle.io/something","kubernetes.io/test"],n=new r["default"]({annotations:{"cattle.io/test":"abc","coreos.com":"abc","k3s.io/test":"abc","test.cattle.io/something":"abc","kubernetes.io/test":"abc","other-label":"abc"}},t);expect(e.find((e=>!n.systemAnnotations.includes(e)))).toBeUndefined()})),it("should list all the cluster's label keys that contain io.cattle.lifecycle, kubernetes.io, cattle.io, or k3s.io",(()=>{const e=["cattle.io/test","test.io.cattle.lifecycle","test.kubernetes.io/test","k3s.io/test"],n=new r["default"]({labels:{"cattle.io/test":"abc","test.io.cattle.lifecycle":"abc","k3s.io/test":"abc","test.kubernetes.io/test":"abc","other-label":"abc"}},t);expect(e.find((e=>!n.systemLabels.includes(e)))).toBeUndefined()}))}))},84264:function(e,t,n){"use strict";n.r(t);var r=n(5904);describe("class FleetCluster",(()=>{it("should provide bundleInfo if correct data is present",(()=>{const e=new r["default"]({metadata:{},spec:{},status:{display:{readyBundles:"0/1"}}});expect(e.bundleInfo.ready).toBe(0),expect(e.bundleInfo.total).toBe(1),expect(Object.getOwnPropertyNames(e.bundleInfo)).not.toContain("noValidData")})),describe("should provide bundleInfo with error",(()=>{it.each([[""],["/"],["1/"],["/1"],["1/1/2"],["a/1"],["a/b"],["any-string"],["any-string1/string2"]])('with multiple scenarios of wrongful "readyBundles" data',(e=>{const t=new r["default"]({metadata:{},spec:{},status:{display:{readyBundles:e}}});expect(Object.getOwnPropertyNames(t.bundleInfo)).toContain("noValidData")}))}))}))},58221:function(e,t,n){"use strict";n.r(t);var r=n(16544);jest.mock("@shell/utils/clipboard",(()=>({copyTextToClipboard:jest.fn((()=>Promise.resolve({})))}))),describe("class MgmtCluster",(()=>{describe("provisioner",(()=>{const e=[[{provider:"rke",driver:"imported"},"imported"],[{provider:"k3s",driver:"K3S"},"K3S"],[{provider:"aks",driver:"AKS"},"AKS"],[{},"imported"]];it.each(e)("should return provisioner value properly based on the props data",((e,t)=>{const n=new r["default"]({status:e});expect(n.provisioner).toBe(t)}))}))}))},25529:function(e,t,n){"use strict";n.r(t);var r=n(77917);describe("class MgmtNode",(()=>{const e="foo",t="bar",n=jest.fn((()=>t)),i={rootGetters:{"i18n/t":n}},a=()=>{jest.clearAllMocks()};it("should not return addresses if they are not present in the resource status, the internalNodeStatus, or the rkeNode key in status",(()=>{const e=new r["default"]({status:{}});expect(e.addresses).toStrictEqual([]),a()})),describe("should return addresses",(()=>{const t=[e];it("if they are present directly on the resource status",(()=>{const e=new r["default"]({status:{addresses:t}});expect(e.addresses).toStrictEqual(t)})),it('if they are not present directly on the resource status but are on "status.internalNodeStatus"',(()=>{const e=new r["default"]({status:{internalNodeStatus:{addresses:t}}});expect(e.addresses).toStrictEqual(t)}))})),describe("should return an internalIp",(()=>{const t=[{type:"InternalIP",address:e}],n=e;it("if addresses includes an object with an appropriate type and address",(()=>{const n=new r["default"]({status:{addresses:t}});expect(n.internalIp).toStrictEqual(e)})),it("if internalNodeStatus.addresses includes an object with an appropriate type and address",(()=>{const n=new r["default"]({status:{internalNodeStatus:{addresses:t}}});expect(n.internalIp).toStrictEqual(e)})),it("if addresses and internalNodeStatus.addresses do not provide an internal ip and the status includes an rkeNode key with an appropriate type and address",(()=>{const e=new r["default"]({status:{rkeNode:{internalAddress:n}}});expect(e.internalIp).toStrictEqual(n)}))})),describe("should return an externalIp",(()=>{const t=[{type:"ExternalIP",address:e}],n=e;it("if addresses includes an object with an appropriate type and address",(()=>{const n=new r["default"]({status:{addresses:t}});expect(n.externalIp).toStrictEqual(e)})),it("if internalNodeStatus.addresses includes an object with an appropriate type and address",(()=>{const n=new r["default"]({status:{internalNodeStatus:{addresses:t}}});expect(n.externalIp).toStrictEqual(e)})),it("if addresses and internalNodeStatus.addresses do not provide an external ip and the status includes an rkeNode key with an appropriate type and address",(()=>{const e=new r["default"]({status:{rkeNode:{address:n}}});expect(e.externalIp).toStrictEqual(n)}))})),describe("should return an appropriate message",(()=>{it("if there is no internalIp to display",(()=>{const e=new r["default"]({status:{}},i);expect(e.internalIp).toStrictEqual(t),expect(n).toHaveBeenCalledTimes(1),expect(n).toHaveBeenCalledWith("generic.none"),a()})),it("if there is no externalIp to display",(()=>{const e=new r["default"]({status:{}},i);expect(e.externalIp).toStrictEqual(t),expect(n).toHaveBeenCalledTimes(1),expect(n).toHaveBeenCalledWith("generic.none"),a()}))})),describe("canScaleDown",(()=>{const e="test",t="test/id",i={worker:{worker:!0,etcd:!1,controlPlane:!1},etcd:{worker:!1,etcd:!0,controlPlane:!1},controlPlane:{worker:!1,etcd:!1,controlPlane:!0},etcdAndControlPlane:{worker:!1,etcd:!0,controlPlane:!0},all:{worker:!0,etcd:!0,controlPlane:!0}},a={id:"01",isWorker:!0,isControlPlane:!1,isEtcd:!1},o={id:"02",isWorker:!1,isControlPlane:!1,isEtcd:!0},s={id:"03",isWorker:!1,isControlPlane:!0,isEtcd:!1},l={id:"03",isWorker:!1,isControlPlane:!0,isEtcd:!0},c={id:"04",isWorker:!0,isControlPlane:!0,isEtcd:!0},u={rootGetters:{"rancher/byId":()=>({actions:{scaledown:"scaledown"}}),"i18n/t":n}};it.each([[{spec:i.worker,nodes:[a]},!0],[{spec:i.etcd,nodes:[o,o,s]},!0],[{spec:i.etcdAndControlPlane,nodes:[l,l]},!0],[{spec:i.etcdAndControlPlane,nodes:[l]},!1],[{spec:i.all,nodes:[c]},!1],[{spec:i.all,nodes:[c,c]},!0]])("should return canScaleDown properly",((n,i)=>{const{spec:a,nodes:o}=n,s=new r["default"]({spec:a,id:t},{...u,getters:{all:()=>[{mgmtClusterId:e,nodes:o}]}});expect(s.canScaleDown).toStrictEqual(i)}))}))}))},94479:function(e,t,n){"use strict";n.r(t);var r=n(68959);describe("class MgmtNodePool",(()=>{describe("canScaleDownPool",(()=>{const e="test",t="test/id",n={worker:{worker:!0,etcd:!1,controlPlane:!1},etcd:{worker:!1,etcd:!0,controlPlane:!1},controlPlane:{worker:!1,etcd:!1,controlPlane:!0},etcdAndControlPlane:{worker:!1,etcd:!0,controlPlane:!0},all:{worker:!0,etcd:!0,controlPlane:!0}},i={id:"01",isWorker:!0,isControlPlane:!1,isEtcd:!1},a={id:"02",isWorker:!1,isControlPlane:!1,isEtcd:!0},o={id:"03",isWorker:!1,isControlPlane:!0,isEtcd:!1},s={id:"03",isWorker:!1,isControlPlane:!0,isEtcd:!0},l={id:"04",isWorker:!0,isControlPlane:!0,isEtcd:!0},c={rootGetters:{"rancher/byId":()=>({actions:{scaledown:"scaledown"}})}};it.each([[{spec:n.worker,nodes:[i]},!0],[{spec:n.etcd,nodes:[a,a,o]},!0],[{spec:n.etcdAndControlPlane,nodes:[s,s]},!0],[{spec:n.etcdAndControlPlane,nodes:[s]},!1],[{spec:n.all,nodes:[l]},!1],[{spec:n.all,nodes:[l,l]},!0]])("should return canScaleDownPool properly",((n,i)=>{const{spec:a,nodes:o}=n,s=new r["default"]({spec:a,id:t},{...c,getters:{all:()=>[{mgmtClusterId:e,nodes:o}]}});expect(s.canScaleDownPool()).toStrictEqual(i)}))}))}))},68882:function(e,t,n){"use strict";n.r(t);var r=n(67867),i=n(2841),a=n(71025);describe("class Namespace",(()=>{describe("checking if isSystem",(()=>{it.each([["whatever1",i.eG,!0],["whatever2","any-annotation",!1],["whatever3","",!1]])("should return true if it has the correct annotation",((e,t,n)=>{const i=new r["default"]({});i.metadata={...i.metadata,name:e},t&&(i.metadata.annotations={[t]:"true"}),expect(i.isSystem).toBe(n)}));const e=[];a.A.forEach((t=>{e.push([t,!0])})),e.push(["c-whatever-system",!1]),e.push(["cattle-whatever",!1]),e.push(["",!1]),it.each(e)("should return true if it belongs to the curated list of namespaces",((e,t)=>{const n=new r["default"]({});n.metadata={...n.metadata,name:e},expect(n.isSystem).toBe(t)})),it.each([["cattle-c-whatever-system",!0],["cattle-whatever",!1],["c-whatever-system",!1]])('should return true if starts with "cattle-" end with "-system',((e,t)=>{const n=new r["default"]({});n.metadata={...n.metadata,name:e},expect(n.isSystem).toBe(t)}))})),it.todo("should check if isFleetManaged"),describe("checking if isObscure",(()=>{it.each([["c-whatever-system","management.cattle.io/system-namespace",!0],["p-whatever",i.eG,!0],["p-whatever","",!1],["","",!1]])("should return a value if is system AND has the correct prefix",((e,t,n)=>{const i=new r["default"]({});i.metadata={...i.metadata,name:e},t&&(i.metadata.annotations={[t]:"true"}),expect(i.isObscure).toBe(n)}))})),it.each([["foo:bar","bar"],["",null]])("given %p annotation, projectId should be %p",((e,t)=>{const n=new r["default"]({});n.metadata={name:"",annotations:{"field.cattle.io/projectId":e}},expect(n.projectId).toBe(t)})),it.todo("should return the project"),it.todo("should return the groupByLabel with i18n"),it.todo("should return the project name with i18n"),it.todo("should return the projectNameSort"),it.todo("should check if istioInstalled"),it.todo("should check if injectionEnabled"),describe("handling Istio labels",(()=>{const e=jest.fn();it.each([{metadata:{name:"",labels:{"istio-injection":"whatever"}},save:e},[{metadata:{name:"",labels:{"istio-injection":"whatever"}},save:e}]])("should handle both data as list and single object and save",(t=>{const n=new r["default"]({});n.enableAutoInjection(t),expect(e).toHaveBeenCalledWith()})),it("should add auto injection label as enable",(()=>{const t={metadata:{name:"",labels:{"istio-injection":"whatever"}},save:e},n=new r["default"]({});n.enableAutoInjection(t),expect(t.metadata.labels["istio-injection"]).toBe("enabled")})),it("should remove label on disable",(()=>{const t={metadata:{name:"",labels:{"istio-injection":"whatever"}},save:e},n=new r["default"]({});n.enableAutoInjection(t,!1),expect(t.metadata.labels["istio-injection"]).toBeUndefined()}))})),it.todo("should disableAutoInjection"),it.todo("should check if confirmRemove"),describe("handling listLocation",(()=>{it.each([["c-cluster-product-projectsnamespaces",!0],["c-cluster-product-resource",!1]])("should return the name %p if is Rancher (%p)",((e,t)=>{const n=new r["default"]({});jest.spyOn(n,"$rootGetters","get").mockReturnValue({isRancher:t,currentProduct:{inStore:""}}),expect(n.listLocation.name).toBe(e)})),it("should return the name and resource if Harvester",(()=>{const e=new r["default"]({});jest.spyOn(e,"$rootGetters","get").mockReturnValue({isRancher:!0,currentProduct:{inStore:"harvester"}});const t={name:"harvester-c-cluster-projectsnamespaces",params:{resource:"namespace"}};expect(e.listLocation).toStrictEqual(t)}))})),it.todo("should return _detailLocation with a name"),it.todo("should return the resourceQuota"),it.todo("should set the resourceQuota as reactive Vue property"),it.todo("should reset project with cleanForNew")}))},4915:function(e,t,n){"use strict";n.r(t);var r=n(77917);describe("class Node",(()=>{const e="foo",t="bar",n=jest.fn((()=>t)),i={rootGetters:{"i18n/t":n}},a=()=>{jest.clearAllMocks()};it("should not return addresses if they are not present in the resource status",(()=>{const e=new r["default"]({status:{}});expect(e.addresses).toStrictEqual([]),a()})),describe("should return addresses",(()=>{const t=[e];it("if they are present directly on the resource status",(()=>{const e=new r["default"]({status:{addresses:t}});expect(e.addresses).toStrictEqual(t)}))})),describe("should return an internalIp",(()=>{const t=[{type:"InternalIP",address:e}];it("if addresses includes an object with an appropriate type and address",(()=>{const n=new r["default"]({status:{addresses:t}});expect(n.internalIp).toStrictEqual(e)}))})),describe("should return an externalIp",(()=>{const t=[{type:"ExternalIP",address:e}];it("if addresses includes an object with an appropriate type and address",(()=>{const n=new r["default"]({status:{addresses:t}});expect(n.externalIp).toStrictEqual(e)})),it("if internalNodeStatus.addresses includes an object with an appropriate type and address",(()=>{const n=new r["default"]({status:{internalNodeStatus:{addresses:t}}});expect(n.externalIp).toStrictEqual(e)}))})),describe("should return an appropriate message",(()=>{it("if there is no internalIp to display",(()=>{const e=new r["default"]({status:{}},i);expect(e.internalIp).toStrictEqual(t),expect(n).toHaveBeenCalledTimes(1),expect(n).toHaveBeenCalledWith("generic.none"),a()})),it("if there is no externalIp to display",(()=>{const e=new r["default"]({status:{}},i);expect(e.externalIp).toStrictEqual(t),expect(n).toHaveBeenCalledTimes(1),expect(n).toHaveBeenCalledWith("generic.none"),a()}))}))}))},29759:function(e,t,n){"use strict";n.r(t);var r=n(47685);describe("class ProvCluster",(()=>{const e={clusterName:"test",provisioner:"GKE",spec:{rkeConfig:{}},mgmt:{spec:{gkeConfig:{privateClusterConfig:{enablePrivateEndpoint:!0}}}}},t={clusterName:"test",provisioner:"EKS",spec:{rkeConfig:{}},mgmt:{spec:{eksConfig:{privateAccess:!0}}}},n={clusterName:"test",provisioner:"AKS",spec:{rkeConfig:{}},mgmt:{spec:{aksConfig:{privateCluster:!0}}}};describe("isHostedKubernetesProvider + isPrivateHostedProvider",(()=>{const i=[[e,!0],[t,!0],[n,!0]],a=()=>{jest.clearAllMocks()};it.each(i)("should return the isHostedKubernetesProvider and isPrivateHostedProvider values properly based on the props data",((e,t)=>{const n=new r["default"]({spec:e.spec});jest.spyOn(n,"mgmt","get").mockReturnValue(e.mgmt),jest.spyOn(n,"provisioner","get").mockReturnValue(e.provisioner),expect(n.isRke2).toBe(t),expect(n.isHostedKubernetesProvider).toBe(t),expect(n.isPrivateHostedProvider).toBe(t),a()}))})),describe("hasError",(()=>{const e=[{error:!1,lastUpdateTime:"2022-10-17T23:09:15Z",status:"True",transitioning:!1,type:"Ready"}],t=[{error:!0,lastUpdateTime:"2022-10-17T23:09:15Z",status:"False",message:"some-error-message",transitioning:!1,type:"Pending"}],n=[],i=[{error:!0,lastUpdateTime:"2022-10-17T23:09:15Z",status:"False",message:"some-error-message",transitioning:!1,type:"Pending"},{error:!1,lastUpdateTime:"2023-10-17T23:09:15Z",status:"True",transitioning:!1,type:"Ready"}],a=[{error:!1,lastUpdateTime:"2022-10-17T23:09:15Z",status:"True",transitioning:!1,type:"Ready"},{error:!0,lastUpdateTime:"2023-10-17T23:09:15Z",status:"False",message:"some-error-message",transitioning:!1,type:"Pending"}],o=[{error:!0,lastUpdateTime:"",status:"False",message:"some-error-message",transitioning:!1,type:"Pending"},{error:!1,lastUpdateTime:"2023-10-17T23:09:15Z",status:"True",transitioning:!1,type:"Ready"}],s=[["conditionsWithoutError",e,!1],["conditionsWithoutReady",t,!0],["noConditions",n,!1],["conditionsWithReadyLatest",i,!1],["conditionsWithErrorLatest",a,!0],["conditionsWithProblemInLastUpdateTimeProp",o,!1]],l=()=>{jest.clearAllMocks()};it.each(s)('should return the hasError value properly based on the "status.conditions" props data for testcase %p',((e,t,n)=>{const i={rootGetters:{"management/byId":jest.fn()}},a=new r["default"]({status:{conditions:t}},i);expect(a.hasError).toBe(n),l()}))}))}))},81453:function(e,t,n){"use strict";n.r(t);var r=n(2334);describe("class: schema:",(()=>{describe("parseType",(()=>{it.each([["array",void 0,["array"]],["map",void 0,["map"]],["io.cattle.provisioning.v1.Cluster.status",void 0,["io.cattle.provisioning.v1.Cluster.status"]],["array[string]",void 0,["array","string"]],["array",{subtype:"string"},["array","string"]],["map[string]",void 0,["map","string"]],["map",{subtype:"string"},["map","string"]],["array[io.cattle.provisioning.v1.Cluster.status]",void 0,["array","io.cattle.provisioning.v1.Cluster.status"]],["array",{subtype:"io.cattle.provisioning.v1.Cluster.status"},["array","io.cattle.provisioning.v1.Cluster.status"]],["map[io.cattle.provisioning.v1.Cluster.status]",void 0,["map","io.cattle.provisioning.v1.Cluster.status"]],["map",{subtype:"io.cattle.provisioning.v1.Cluster.status"},["map","io.cattle.provisioning.v1.Cluster.status"]]])("string: %p and field: %p ... should equal %p",((e,t,n)=>{expect((0,r.parseType)(e,t)).toStrictEqual(n)}))}))}))},19147:function(e,t,n){"use strict";n.r(t);var r=n(1133);describe("class Secret",(()=>{it("should contains the type attribute if cleanForDownload",(async()=>{const e=new r["default"]({}),t="apiVersion: v1\nkind: Secret\nmetadata:\n name: my-secret\ntype: Opaque\n",n=await e.cleanForDownload(t);expect(n).toBe(t)})),it("should remove id, links and actions keys if cleanForDownload",(async()=>{const e=new r["default"]({}),t="apiVersion: v1\nkind: Secret\nmetadata:\n name: my-secret\n namespace: default\ntype: Opaque\n",n="id: test_id\nlinks:\n view: https://example.com\nactions:\n remove: https://example.com",i=`${t}\n${n}`,a=await e.cleanForDownload(i);expect(a).toBe(t)}))}))},66888:function(e,t,n){"use strict";n.r(t);var r=n(45858),i=n(96730);describe("class SteveSchema",(()=>{describe("schema diet",(()=>{it("schema Definitions",(async()=>{const e="cluster",t="steveTest";r["default"].reset(e);const n={id:t,metadata:{name:t},resourceFields:null,links:{self:`/v1/schemas/${t}`}},a={type:t,resourceFields:{a:{},b:{}}},o={a:{type:"a"},b:{type:"b"}},s=new r["default"](n,{dispatch:jest.fn().mockImplementation(((e,n)=>(expect(e).toBe("request"),expect(n.type).toBe("schemaDefinition"),expect(n.url).toBe(`/v1/schemaDefinitions/${t}`),{definitionType:t,definitions:{[t]:a,...o}}))),state:{config:{namespace:e}}});expect(s.schemaDefinition).toBeNull(),expect(s.schemaDefinitions).toBeNull(),expect(s.requiresResourceFields).toBeTruthy(),expect(s.hasResourceFields).toBeFalsy(),await s.fetchResourceFields(),expect(s.schemaDefinition).toStrictEqual(a),expect(s.schemaDefinitions).toStrictEqual(o),expect(s.requiresResourceFields).toBeTruthy(),expect(s.hasResourceFields).toBeTruthy(),(0,i.HC)(s,{...n}),expect(s.schemaDefinition).toStrictEqual(a),expect(s.schemaDefinitions).toStrictEqual(o),expect(s.requiresResourceFields).toBeTruthy(),expect(s.hasResourceFields).toBeTruthy()}))}))}))},77107:function(e,t,n){"use strict";n.r(t);var r=n(63809);describe("class StorageClass",(()=>{describe("checking if provisionerDisplay",(()=>{it.each([["kubernetes.io/azure-disk",!0],["kubernetes.io/portworx-volume",!0],["rancher.io/local-path",!1],["some-random-string-as-provisioner",!1]])("should NOT show a suffix IF they are built-in (on the PROVISIONER_OPTIONS list)",((e,t)=>{const n=new r["default"]({metadata:{},spec:{},provisioner:e});jest.spyOn(n,"$rootGetters","get").mockReturnValue({"i18n/t":jest.fn()}),expect(!!r.PROVISIONER_OPTIONS.find((t=>t.value===e))).toBe(t)}))}))}))},91624:function(e,t,n){"use strict";var r=n(70775);const i="dsaf",a={type:i,__rehydrate:"whatever",__clone:"whatever"},o="asdasd",s={...a,type:o,__clone:"whatever",metadata:{clusterName:"whatever",creationTimestamp:"whatever",deletionGracePeriodSeconds:"whatever",deletionTimestamp:"whatever",fields:"whatever",finalizers:"whatever",generateName:"whatever",generation:"whatever",initializers:"whatever",managedFields:"whatever",ownerReferences:"whatever",relationships:"whatever",selfLink:"whatever",state:"whatever",uid:"whatever",resourceVersion:"whatever"},spec:{versions:{schema:"whatever"}},links:"whatever",status:"whatever",stringData:"whatever"};describe("class: Workload",(()=>{describe("given custom workload keys",(()=>{const e="image",t={image:e,__active:"whatever",active:"whatever",_init:"whatever",error:"whatever"},n={...s,type:"123abv",__rehydrate:"whatever",__clone:"whatever",spec:{template:{spec:{containers:[t],initContainers:[t]}}}};n.metadata.name="abc",it("should keep internal keys",(()=>{const e=new r["default"](n,{getters:{schemaFor:()=>({linkFor:jest.fn()})},dispatch:jest.fn(),rootGetters:{"i18n/t":jest.fn()}});expect({...e}).toStrictEqual(n)})),describe("method: save",(()=>{it("should remove all the internal keys",(async()=>{const t=jest.fn(),i=new r["default"](n,{getters:{schemaFor:()=>({linkFor:jest.fn()})},dispatch:t,rootGetters:{"i18n/t":jest.fn(),"i18n/exists":()=>!0}}),a={metadata:{name:"abc",fields:"whatever",resourceVersion:"whatever",clusterName:"whatever",deletionGracePeriodSeconds:"whatever",generateName:"whatever"},spec:{template:{spec:{containers:[{image:e}],initContainers:[{image:e}]}}}};await i.save();const o={data:a,headers:{accept:"application/json","content-type":"application/json"},method:"post",url:void 0};expect(t).toHaveBeenCalledWith("request",{opt:o,type:n.type}),expect({...i}).toStrictEqual(n)}))}))}))}))},45858:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(35664),i=n(2334),a=n(23330),o=n(4364);const s={};class l extends i["default"]{static reset(e){delete s[e]}constructor(e,t,n,r){super(e,t,n,r),s[this.store]||(s[this.store]={ids:{},definitions:{}}),this.requiresResourceFields=null===this._resourceFields}get hasResourceFields(){return this.requiresResourceFields?!!this.schemaDefinition?.resourceFields:!!this._resourceFields}get resourceFields(){if(this.requiresResourceFields){if(!this.schemaDefinitionsIds)throw new Error(`Cannot find resourceFields for Schema ${this.id} (schemaDefinitions have not been fetched) `);if(!this.schemaDefinition)throw new Error(`No schemaDefinition for ${this.id} found (not in schemaDefinition response) `);return this.schemaDefinition.resourceFields}return this._resourceFields}set resourceFields(e){this._resourceFields=e,this.requiresResourceFields=null===this._resourceFields}async fetchResourceFields(e=0){if(!this.requiresResourceFields)return;if(this.schemaDefinition)return this.schemaDefinition;const t=this.schemaDefinitionUrl;if(!t)return void o.warn(`Unable to fetch schema definitions for ${this.id} (failed to find url of schema definition)`);if(e>=4)return void o.warn(`Unable to fetch schema definitions for ${this.id} (too many failed requests)`);let n;try{n=await this.$dispatch("request",{type:r.m4.SCHEMA_DEFINITION,url:t})}catch(i){return 500===i?._status||503===i?._status?(await(0,a.u)(2e3),this.fetchResourceFields(++e)):void o.warn(`Unable to fetch schema definitions for ${this.id}`,i)}return this.cacheSchemaDefinitionResponse(n),this.schemaDefinition}cacheSchemaDefinitionResponse(e){const{[e.definitionType]:t,...n}=e.definitions,r=this.store;s[r].ids[this.id]={self:t.type,others:Object.keys(n)},Object.entries(e.definitions).forEach((([e,t])=>{s[r].definitions[e]=t}))}get schemaDefinition(){return this.schemaDefinitionsIds?s[this.store].definitions[this.schemaDefinitionsIds.self]:null}get schemaDefinitions(){return this.schemaDefinitionsIds?this.schemaDefinitionsIds.others.reduce(((e,t)=>(e[t]=s[this.store].definitions[t],e)),{}):null}get schemaDefinitionUrl(){return this.links?.self?.replace("/schemas/","/schemaDefinitions/")}get store(){return this.$ctx.state?.config?.namespace}get schemaDefinitionsIds(){return s[this.store]?.ids[this.id]}}},81565:function(e,t,n){"use strict";var r,i=n(18110),a=n(34765);class o{isApplicable(e){return Array.isArray(e.namespaced)}isEnabled(e){const t=e["currentProduct"];if("cluster"!==t?.inStore)return!1;if(t?.showWorkspaceSwitcher)return!1;const n=(0,a.fD)(e);return!!n.forceNsFilterV2?.enabled}checkAndCreateParam(e){return this.isApplicable(e)?this.createParam(e.namespaced):""}createParam(e){if(!e||!e.length)return"";const t=e.reduce(((e,t)=>{const n=t.replace(i.os,"").replace(i.tA,"");return n.startsWith("-")?e.exclude.push(t.substring(1,t.length)):e.include.push(n),e}),{include:[],exclude:[]});let n="";return t.include.length&&(n=`${o.param}=${t.include.join(",")}`),t.exclude.length&&(n=`${o.param}!=${t.exclude.join(",")}`),n}}r=o,r.param="projectsornamespaces",t.A=new o},22915:function(e,t,n){"use strict";n.d(t,{C:function(){return o}});var r=n(76978),i=n(20246),a=n.n(i);function o(e,t){if(!e)return;const{rootKeys:n=["id","links","type","actions"],metadataKeys:i=["fields","relationships","state"],conditionKeys:o=["error","transitioning"]}=t||{},s=a().load(e);return(0,r.cX)(s,n),(0,r.cX)(s?.metadata,i),(s?.status?.conditions||[]).forEach((e=>(0,r.cX)(e,o))),a().dump(s)}},82637:function(e,t,n){"use strict";var r,i=n(50025),a=n(18110),o=n(68851),s=n(35664),l=n(2841),c=n(4364);class u{handlePrefAndSettingFilter(e,t,n){return e.reduce(((e,r)=>{const a=!t&&r.isObscure,o=!!n&&r.isSystem;return(a||o)&&e.push(i.eY.createSingleField({field:"metadata.namespace",value:r.name,equals:!1})),e}),[])}handleSystemOrUserFilter(e,t,n){const r=e.filter((e=>e.isSystem));return t?[i.eY.createMultipleFields(r.map((e=>new i.Js({field:"metadata.namespace",value:e.name}))))]:r.map((e=>i.eY.createSingleField({field:"metadata.namespace",value:e.name,equals:!1})))}handleSelectionFilter(e,t){const n=[new i.B6({projectOrNamespace:e})];return t?{projectsOrNamespaces:n,filters:e.filter((e=>e.startsWith(a.tA))).map((e=>i.eY.createSingleField({field:"metadata.namespace",value:e.replace(a.tA,""),equals:!1})))}:{projectsOrNamespaces:n,filters:[]}}}class d extends u{convertArrayPath(e){return e.startsWith("metadata.fields.")?`metadata.fields[${e.substring(16)}]`:e}createSortForPagination(e){return this.convertArrayPath(e)}createParamsFromNsFilter({allNamespaces:e,selection:t,isAllNamespaces:n,isLocalCluster:r,showDynamicRancherNamespaces:i,productHidesSystemNamespaces:o}){if(n&&i&&!o)return{projectsOrNamespaces:[],filters:[]};let s=[],l=[];i&&!o||(l=this.handlePrefAndSettingFilter(e,i,o));const c=t[0]===a.Rc,u=t[0]===a.bE;if(1===t.length&&(c||u))l.push(...this.handleSystemOrUserFilter(e,c,u));else{const e=this.handleSelectionFilter(t,r);s=e.projectsOrNamespaces,l.push(...e.filters)}return{projectsOrNamespaces:s,filters:l}}createParamsForPagination(e,t){if(!t.pagination)return;const n=[],r=this.convertPaginationParams(e,t.pagination.projectsOrNamespaces);if(r&&n.push(r),t.pagination.page&&n.push(`page=${t.pagination.page}`),t.pagination.pageSize&&n.push(`pagesize=${t.pagination.pageSize}`),t.pagination.sort?.length){const r={checked:new Array,invalid:new Array},i=t.pagination.sort.map((t=>(this.validateField(r,e,t.field),`${t.asc?"":"-"}${this.convertArrayPath(t.field)}`))).join(",");n.push(`sort=${i}`),r.invalid.length&&c.warn(`Pagination API does not support sorting '${e.id}' by the requested fields: ${(0,o.sb)(r.invalid).join(", ")}`)}if(t.pagination.filters?.length){const r=this.convertPaginationParams(e,t.pagination.filters);r&&n.push(r)}return n.join("&")}validateField(e,t,n){n&&(e.checked.includes(n)||(e.checked.push(n),t?.attributes.columns.find((e=>e.field.replace("$.","").replace("[",".").replace("]","")===n))||e.invalid.push(n)))}convertPaginationParams(e,t=[]){const n={checked:new Array,invalid:new Array},r=t.filter((e=>!!e.fields.length)).map((t=>{const r=t.fields.map((t=>{if(t.field){this.validateField(n,e,t.field);const r=encodeURIComponent(t.value),i=t.exact?`'${r}'`:r;return`${this.convertArrayPath(t.field)}${t.equals?"=":"!="}${i}`}return t.value})).join(",");return`${t.param}${t.equals?"=":"!="}${r}`})),i=r.reduce(((e,t)=>(e[t]=!0,e)),{}),a=Object.keys(i).join("&");return n.invalid.length&&c.warn(`Pagination API does not support filtering '${e.id}' by the requested fields: ${(0,o.sb)(n.invalid).join(", ")}`),a}}r=d,r.VALID_FIELDS={"":[{field:"metadata.name"},{field:"metadata.namespace"},{field:"id"},{field:"metadata.state.name"},{field:"metadata.creationTimestamp"}],[s.NW]:[{field:"status.nodeInfo.kubeletVersion"},{field:"status.nodeInfo.operatingSystem"}],[s.Sm]:[{field:"spec.containers.image"},{field:"spec.nodeName"}],[s.Mc.NODE]:[{field:"status.nodeName"}],[s.Mc.NODE_POOL]:[{field:"spec.clusterName"}],[s.Mc.NODE_TEMPLATE]:[{field:"spec.clusterName"}],[s.Mc.CLUSTER]:[{field:"spec.internal"},{field:"spec.displayName"},{field:"status.provider"},{field:`metadata.labels."${l.qt.PROVIDER}"`}],[s.K5]:[{field:"metadata.labels[harvesterhci.io/cloud-init-template]"}],[s.CU]:[{field:"metadata.labels[field.cattle.io/projectId]"}],[s.qt.MACHINE]:[{field:"spec.clusterName"}],[s.ll]:[{field:"_type"},{field:"reason"},{field:"involvedObject.kind"},{field:"message"}],[s.W8.CLUSTER_REPO]:[{field:"spec.gitRepo"},{field:"spec.gitBranch"},{field:"metadata.annotations[clusterrepo.cattle.io/hidden]"}],[s.W8.OPERATION]:[{field:"status.action"},{field:"status.namespace"},{field:"status.releaseName"}],[s.qt.RANCHER_CLUSTER]:[{field:`metadata.labels."${l.qt.PROVIDER}"`},{field:"status.provider"},{field:"status.clusterName"}],[s.YV]:[{field:"spec.type"}],[s.kf]:[],[s.wT]:[],[s.YH]:[{field:"spec.volumeName"}],[s.PV]:[{field:"status.reason"},{field:"spec.persistentVolumeReclaimPolicy"}],[s.fJ]:[{field:"provisioner"}],[s.W8.APP]:[{field:"spec.chart.metadata.name"}],[s.oU.CRON_JOB]:[{field:`metadata.annotations[${l.bs}]`}],[s.oU.DAEMON_SET]:[{field:`metadata.annotations[${l.bs}]`}],[s.oU.DEPLOYMENT]:[{field:`metadata.annotations[${l.bs}]`}],[s.oU.JOB]:[{field:`metadata.annotations[${l.bs}]`}],[s.oU.STATEFUL_SET]:[{field:`metadata.annotations[${l.bs}]`}]},t.A=new d},87102:function(e,t,n){"use strict";n.d(t,{j:function(){return l}});var r=n(9274);function i(e,t,n,i,a,o){return(0,r.openBlock)(),(0,r.createElementBlock)("span",{class:(0,r.normalizeClass)(["badge-state",e.bg])},[e.icon?((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:0,class:(0,r.normalizeClass)(["icon",{[e.icon]:!0,"mr-5":!!e.msg}])},null,2)):(0,r.createCommentVNode)("",!0),(0,r.createTextVNode)((0,r.toDisplayString)(e.msg),1)],2)}var a=(0,r.defineComponent)({props:{value:{type:Object,default:null},color:{type:String,default:null},icon:{type:String,default:null},label:{type:String,default:null}},computed:{bg(){return this.value?.stateBackground||this.color},msg(){return this.value?.stateDisplay||this.label}}}),o=(n(18111),n(32701),n(47433));const s=(0,o.A)(a,[["render",i],["__scopeId","data-v-64b26d7f"]]);var l=s},9980:function(e,t,n){"use strict";n.d(t,{l:function(){return r.A}});var r=n(56943)},37785:function(e,t,n){"use strict";n.d(t,{Z:function(){return fe}});var r=n(9274);const i={class:"card-wrap"},a={class:"card-title","data-testid":"card-title-slot"},o={class:"card-body","data-testid":"card-body-slot"},s={key:0,class:"card-actions","data-testid":"card-actions-slot"};function l(e,t,n,l,c,u){return(0,r.openBlock)(),(0,r.createElementBlock)("div",{ref:"cardContainer",class:(0,r.normalizeClass)(["card-container",{"highlight-border":e.showHighlightBorder,"card-sticky":e.sticky}]),"data-testid":"card"},[(0,r.createElementVNode)("div",i,[(0,r.createElementVNode)("div",a,[(0,r.renderSlot)(e.$slots,"title",{},(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.title),1)]))]),t[1]||(t[1]=(0,r.createElementVNode)("hr",null,null,-1)),(0,r.createElementVNode)("div",o,[(0,r.renderSlot)(e.$slots,"body",{},(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.content),1)]))]),e.showActions?((0,r.openBlock)(),(0,r.createElementBlock)("div",s,[(0,r.renderSlot)(e.$slots,"actions",{},(()=>[(0,r.createElementVNode)("button",{class:"btn role-primary",onClick:t[0]||(t[0]=(...t)=>e.buttonAction&&e.buttonAction(...t))},(0,r.toDisplayString)(e.buttonText),1)]))])):(0,r.createCommentVNode)("",!0)])],2)}var c=n(4364),u=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],d=u.join(","),h="undefined"===typeof Element,p=h?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,f=!h&&Element.prototype.getRootNode?function(e){var t;return null===e||void 0===e||null===(t=e.getRootNode)||void 0===t?void 0:t.call(e)}:function(e){return null===e||void 0===e?void 0:e.ownerDocument},m=function e(t,n){var r;void 0===n&&(n=!0);var i=null===t||void 0===t||null===(r=t.getAttribute)||void 0===r?void 0:r.call(t,"inert"),a=""===i||"true"===i,o=a||n&&t&&e(t.parentNode);return o},g=function(e){var t,n=null===e||void 0===e||null===(t=e.getAttribute)||void 0===t?void 0:t.call(e,"contenteditable");return""===n||"true"===n},v=function(e,t,n){if(m(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(d));return t&&p.call(e,d)&&r.unshift(e),r=r.filter(n),r},b=function e(t,n,r){var i=[],a=Array.from(t);while(a.length){var o=a.shift();if(!m(o,!1))if("SLOT"===o.tagName){var s=o.assignedElements(),l=s.length?s:o.children,c=e(l,!0,r);r.flatten?i.push.apply(i,c):i.push({scopeParent:o,candidates:c})}else{var u=p.call(o,d);u&&r.filter(o)&&(n||!t.includes(o))&&i.push(o);var h=o.shadowRoot||"function"===typeof r.getShadowRoot&&r.getShadowRoot(o),f=!m(h,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(o));if(h&&f){var g=e(!0===h?o.children:h.children,!0,r);r.flatten?i.push.apply(i,g):i.push({scopeParent:o,candidates:g})}else a.unshift.apply(a,o.children)}}return i},y=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},w=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||g(e))&&!y(e)?0:e.tabIndex},E=function(e,t){var n=w(e);return n<0&&t&&!y(e)?0:n},_=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},S=function(e){return"INPUT"===e.tagName},k=function(e){return S(e)&&"hidden"===e.type},x=function(e){var t="DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}));return t},A=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},N=function(e){if(!e.name)return!0;var t,n=e.form||f(e),r=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!==typeof window&&"undefined"!==typeof window.CSS&&"function"===typeof window.CSS.escape)t=r(window.CSS.escape(e.name));else try{t=r(e.name)}catch(a){return c.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",a.message),!1}var i=A(t,e.form);return!i||i===e},C=function(e){return S(e)&&"radio"===e.type},T=function(e){return C(e)&&!N(e)},R=function(e){var t,n=e&&f(e),r=null===(t=n)||void 0===t?void 0:t.host,i=!1;if(n&&n!==e){var a,o,s;i=!!(null!==(a=r)&&void 0!==a&&null!==(o=a.ownerDocument)&&void 0!==o&&o.contains(r)||null!==e&&void 0!==e&&null!==(s=e.ownerDocument)&&void 0!==s&&s.contains(e));while(!i&&r){var l,c,u;n=f(r),r=null===(l=n)||void 0===l?void 0:l.host,i=!(null===(c=r)||void 0===c||null===(u=c.ownerDocument)||void 0===u||!u.contains(r))}}return i},O=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return 0===n&&0===r},I=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var i=p.call(e,"details>summary:first-of-type"),a=i?e.parentElement:e;if(p.call(a,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return O(e)}else{if("function"===typeof r){var o=e;while(e){var s=e.parentElement,l=f(e);if(s&&!s.shadowRoot&&!0===r(s))return O(e);e=e.assignedSlot?e.assignedSlot:s||l===e.ownerDocument?s:l.host}e=o}if(R(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1},L=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName)){var t=e.parentElement;while(t){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if("LEGEND"===r.tagName)return!!p.call(t,"fieldset[disabled] *")||!r.contains(e)}return!0}t=t.parentElement}}return!1},D=function(e,t){return!(t.disabled||m(t)||k(t)||I(t,e)||x(t)||L(t))},P=function(e,t){return!(T(t)||w(t)<0||!D(e,t))},M=function(e){var t=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(t)||t>=0)},B=function e(t){var n=[],r=[];return t.forEach((function(t,i){var a=!!t.scopeParent,o=a?t.scopeParent:t,s=E(o,a),l=a?e(t.candidates):o;0===s?a?n.push.apply(n,l):n.push(o):r.push({documentOrder:i,tabIndex:s,item:t,isScope:a,content:l})})),r.sort(_).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},F=function(e,t){var n;return t=t||{},n=t.getShadowRoot?b([e],t.includeContainer,{filter:P.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:M}):v(e,t.includeContainer,P.bind(null,t)),B(n)},$=function(e,t){var n;return t=t||{},n=t.getShadowRoot?b([e],t.includeContainer,{filter:D.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):v(e,t.includeContainer,D.bind(null,t)),n},U=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==p.call(e,d)&&P(t,e)},j=u.concat("iframe").join(","),V=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==p.call(e,j)&&D(t,e)}; +/*! +* tabbable 6.2.0 +* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE +*/ +/*! +* focus-trap 7.6.2 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/ +function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function H(e){if(Array.isArray(e))return K(e)}function G(e,t,n){return(t=J(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function q(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function X(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function W(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Y(e){return H(e)||z(e)||Z(e)||q()}function Q(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function J(e){var t=Q(e,"string");return"symbol"==typeof t?t:t+""}function Z(e,t){if(e){if("string"==typeof e)return K(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?K(e,t):void 0}}var ee={activateTrap:function(e,t){if(e.length>0){var n=e[e.length-1];n!==t&&n.pause()}var r=e.indexOf(t);-1===r||e.splice(r,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()}},te=function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"===typeof e.select},ne=function(e){return"Escape"===(null===e||void 0===e?void 0:e.key)||"Esc"===(null===e||void 0===e?void 0:e.key)||27===(null===e||void 0===e?void 0:e.keyCode)},re=function(e){return"Tab"===(null===e||void 0===e?void 0:e.key)||9===(null===e||void 0===e?void 0:e.keyCode)},ie=function(e){return re(e)&&!e.shiftKey},ae=function(e){return re(e)&&e.shiftKey},oe=function(e){return setTimeout(e,0)},se=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return"function"===typeof e?e.apply(void 0,n):e},le=function(e){return e.target.shadowRoot&&"function"===typeof e.composedPath?e.composedPath()[0]:e.target},ce=[],ue=function(e,t){var n,r=(null===t||void 0===t?void 0:t.document)||document,i=(null===t||void 0===t?void 0:t.trapStack)||ce,a=W({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isKeyForward:ie,isKeyBackward:ae},t),o={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},s=function(e,t,n){return e&&void 0!==e[t]?e[t]:a[n||t]},l=function(e,t){var n="function"===typeof(null===t||void 0===t?void 0:t.composedPath)?t.composedPath():void 0;return o.containerGroups.findIndex((function(t){var r=t.container,i=t.tabbableNodes;return r.contains(e)||(null===n||void 0===n?void 0:n.includes(r))||i.find((function(t){return t===e}))}))},c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.hasFallback,i=void 0!==n&&n,o=t.params,s=void 0===o?[]:o,l=a[e];if("function"===typeof l&&(l=l.apply(void 0,Y(s))),!0===l&&(l=void 0),!l){if(void 0===l||!1===l)return l;throw new Error("`".concat(e,"` was specified but was not a node, or did not return a node"))}var c=l;if("string"===typeof l){try{c=r.querySelector(l)}catch(u){throw new Error("`".concat(e,'` appears to be an invalid selector; error="').concat(u.message,'"'))}if(!c&&!i)throw new Error("`".concat(e,"` as selector refers to no known node"))}return c},u=function(){var e=c("initialFocus",{hasFallback:!0});if(!1===e)return!1;if(void 0===e||e&&!V(e,a.tabbableOptions))if(l(r.activeElement)>=0)e=r.activeElement;else{var t=o.tabbableGroups[0],n=t&&t.firstTabbableNode;e=n||c("fallbackFocus")}else null===e&&(e=c("fallbackFocus"));if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},d=function(){if(o.containerGroups=o.containers.map((function(e){var t=F(e,a.tabbableOptions),n=$(e,a.tabbableOptions),r=t.length>0?t[0]:void 0,i=t.length>0?t[t.length-1]:void 0,o=n.find((function(e){return U(e)})),s=n.slice().reverse().find((function(e){return U(e)})),l=!!t.find((function(e){return w(e)>0}));return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:l,firstTabbableNode:r,lastTabbableNode:i,firstDomTabbableNode:o,lastDomTabbableNode:s,nextTabbableNode:function(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=t.indexOf(e);return i<0?r?n.slice(n.indexOf(e)+1).find((function(e){return U(e)})):n.slice(0,n.indexOf(e)).reverse().find((function(e){return U(e)})):t[i+(r?1:-1)]}}})),o.tabbableGroups=o.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),o.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(o.containerGroups.find((function(e){return e.posTabIndexesFound}))&&o.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},h=function(e){var t=e.activeElement;if(t)return t.shadowRoot&&null!==t.shadowRoot.activeElement?h(t.shadowRoot):t},p=function(e){!1!==e&&e!==h(document)&&(e&&e.focus?(e.focus({preventScroll:!!a.preventScroll}),o.mostRecentlyFocusedNode=e,te(e)&&e.select()):p(u()))},f=function(e){var t=c("setReturnFocus",{params:[e]});return t||!1!==t&&e},m=function(e){var t=e.target,n=e.event,r=e.isBackward,i=void 0!==r&&r;t=t||le(n),d();var s=null;if(o.tabbableGroups.length>0){var u=l(t,n),h=u>=0?o.containerGroups[u]:void 0;if(u<0)s=i?o.tabbableGroups[o.tabbableGroups.length-1].lastTabbableNode:o.tabbableGroups[0].firstTabbableNode;else if(i){var p=o.tabbableGroups.findIndex((function(e){var n=e.firstTabbableNode;return t===n}));if(p<0&&(h.container===t||V(t,a.tabbableOptions)&&!U(t,a.tabbableOptions)&&!h.nextTabbableNode(t,!1))&&(p=u),p>=0){var f=0===p?o.tabbableGroups.length-1:p-1,m=o.tabbableGroups[f];s=w(t)>=0?m.lastTabbableNode:m.lastDomTabbableNode}else re(n)||(s=h.nextTabbableNode(t,!1))}else{var g=o.tabbableGroups.findIndex((function(e){var n=e.lastTabbableNode;return t===n}));if(g<0&&(h.container===t||V(t,a.tabbableOptions)&&!U(t,a.tabbableOptions)&&!h.nextTabbableNode(t))&&(g=u),g>=0){var v=g===o.tabbableGroups.length-1?0:g+1,b=o.tabbableGroups[v];s=w(t)>=0?b.firstTabbableNode:b.firstDomTabbableNode}else re(n)||(s=h.nextTabbableNode(t))}}else s=c("fallbackFocus");return s},g=function(e){var t=le(e);l(t,e)>=0||(se(a.clickOutsideDeactivates,e)?n.deactivate({returnFocus:a.returnFocusOnDeactivate}):se(a.allowOutsideClick,e)||e.preventDefault())},v=function(e){var t=le(e),n=l(t,e)>=0;if(n||t instanceof Document)n&&(o.mostRecentlyFocusedNode=t);else{var r;e.stopImmediatePropagation();var i=!0;if(o.mostRecentlyFocusedNode)if(w(o.mostRecentlyFocusedNode)>0){var s=l(o.mostRecentlyFocusedNode),c=o.containerGroups[s].tabbableNodes;if(c.length>0){var d=c.findIndex((function(e){return e===o.mostRecentlyFocusedNode}));d>=0&&(a.isKeyForward(o.recentNavEvent)?d+1<c.length&&(r=c[d+1],i=!1):d-1>=0&&(r=c[d-1],i=!1))}}else o.containerGroups.some((function(e){return e.tabbableNodes.some((function(e){return w(e)>0}))}))||(i=!1);else i=!1;i&&(r=m({target:o.mostRecentlyFocusedNode,isBackward:a.isKeyBackward(o.recentNavEvent)})),p(r||(o.mostRecentlyFocusedNode||u()))}o.recentNavEvent=void 0},b=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];o.recentNavEvent=e;var n=m({event:e,isBackward:t});n&&(re(e)&&e.preventDefault(),p(n))},y=function(e){(a.isKeyForward(e)||a.isKeyBackward(e))&&b(e,a.isKeyBackward(e))},E=function(e){ne(e)&&!1!==se(a.escapeDeactivates,e)&&(e.preventDefault(),n.deactivate())},_=function(e){var t=le(e);l(t,e)>=0||se(a.clickOutsideDeactivates,e)||se(a.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},S=function(){if(o.active)return ee.activateTrap(i,n),o.delayInitialFocusTimer=a.delayInitialFocus?oe((function(){p(u())})):p(u()),r.addEventListener("focusin",v,!0),r.addEventListener("mousedown",g,{capture:!0,passive:!1}),r.addEventListener("touchstart",g,{capture:!0,passive:!1}),r.addEventListener("click",_,{capture:!0,passive:!1}),r.addEventListener("keydown",y,{capture:!0,passive:!1}),r.addEventListener("keydown",E),n},k=function(){if(o.active)return r.removeEventListener("focusin",v,!0),r.removeEventListener("mousedown",g,!0),r.removeEventListener("touchstart",g,!0),r.removeEventListener("click",_,!0),r.removeEventListener("keydown",y,!0),r.removeEventListener("keydown",E),n},x=function(e){var t=e.some((function(e){var t=Array.from(e.removedNodes);return t.some((function(e){return e===o.mostRecentlyFocusedNode}))}));t&&p(u())},A="undefined"!==typeof window&&"MutationObserver"in window?new MutationObserver(x):void 0,N=function(){A&&(A.disconnect(),o.active&&!o.paused&&o.containers.map((function(e){A.observe(e,{subtree:!0,childList:!0})})))};return n={get active(){return o.active},get paused(){return o.paused},activate:function(e){if(o.active)return this;var t=s(e,"onActivate"),n=s(e,"onPostActivate"),i=s(e,"checkCanFocusTrap");i||d(),o.active=!0,o.paused=!1,o.nodeFocusedBeforeActivation=r.activeElement,null===t||void 0===t||t();var a=function(){i&&d(),S(),N(),null===n||void 0===n||n()};return i?(i(o.containers.concat()).then(a,a),this):(a(),this)},deactivate:function(e){if(!o.active)return this;var t=W({onDeactivate:a.onDeactivate,onPostDeactivate:a.onPostDeactivate,checkCanReturnFocus:a.checkCanReturnFocus},e);clearTimeout(o.delayInitialFocusTimer),o.delayInitialFocusTimer=void 0,k(),o.active=!1,o.paused=!1,N(),ee.deactivateTrap(i,n);var r=s(t,"onDeactivate"),l=s(t,"onPostDeactivate"),c=s(t,"checkCanReturnFocus"),u=s(t,"returnFocus","returnFocusOnDeactivate");null===r||void 0===r||r();var d=function(){oe((function(){u&&p(f(o.nodeFocusedBeforeActivation)),null===l||void 0===l||l()}))};return u&&c?(c(f(o.nodeFocusedBeforeActivation)).then(d,d),this):(d(),this)},pause:function(e){if(o.paused||!o.active)return this;var t=s(e,"onPause"),n=s(e,"onPostPause");return o.paused=!0,null===t||void 0===t||t(),k(),N(),null===n||void 0===n||n(),this},unpause:function(e){if(!o.paused||!o.active)return this;var t=s(e,"onUnpause"),n=s(e,"onPostUnpause");return o.paused=!1,null===t||void 0===t||t(),d(),S(),N(),null===n||void 0===n||n(),this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return o.containers=t.map((function(e){return"string"===typeof e?r.querySelector(e):e})),o.active&&d(),N(),this}},n.updateContainerElements(e),n},de=(0,r.defineComponent)({name:"Card",props:{title:{type:String,default:""},content:{type:String,default:""},buttonAction:{type:Function,default:()=>{}},buttonText:{type:String,default:"go"},showHighlightBorder:{type:Boolean,default:!0},showActions:{type:Boolean,default:!0},sticky:{type:Boolean,default:!1},triggerFocusTrap:{type:Boolean,default:!1}},data(){return{focusTrapInstance:{}}},mounted(){this.triggerFocusTrap&&(this.focusTrapInstance=ue(this.$refs.cardContainer,{escapeDeactivates:!0,allowOutsideClick:!0}),this.$nextTick((()=>{this.focusTrapInstance.activate()})))},beforeUnmount(){this.focusTrapInstance&&this.triggerFocusTrap&&this.focusTrapInstance.deactivate()}}),he=(n(32775),n(47433));const pe=(0,he.A)(de,[["render",l]]);var fe=pe},42200:function(e,t,n){"use strict";n.d(t,{S:function(){return r.A}});var r=n(56417)},79380:function(e,t,n){"use strict";n.d(t,{o:function(){return r.A}});var r=n(98752)},10196:function(e,t,n){"use strict";n.d(t,{a:function(){return r.A},z:function(){return i.A}});var r=n(90061),i=n(55834)},6879:function(e,t,n){"use strict";n.d(t,{V:function(){return r.A}});var r=n(59378)},49924:function(e,t,n){"use strict";n.d(t,{Z:function(){return r.A}});var r=n(44443)},46392:function(e,t,n){"use strict";n.d(t,{Bm:function(){return a},Ng:function(){return c},UQ:function(){return o},h1:function(){return l}});var r=n(68851);n(35664);const i=/^\$\.metadata\.fields\[([0-9]*)\]/;function a(e,t){const{headers:n,typeOptions:i,schema:a,columns:o,pagination:l}=t,{state:c,name:u,namespace:d,id:h,age:p}=o,{rootGetters:f}=e,m=i.showState?[c]:[],g=a.attributes||{},v=g.columns||[];if(n?.[a.id]?.length)return n[a.id].map((e=>{if("string"===typeof e){const t=(0,r.jq)(v,"name",e);return t?s(t,f,l,p):null}return e})).filter((e=>!!e));let b=!1;const y=g.namespaced||!1;for(const r of v)"name"===r.format?(b=!0,m.push(u||s(r,f,l,p)),y&&m.push(d)):m.push(s(r,f,l,p));b||((0,r.PT)(m,1,h||u),y&&(0,r.PT)(m,2,d));const w=m.find((e=>"age"===e.name.toLocaleLowerCase()));return w&&((0,r.Gj)(m,w),i.showAge&&m.push(w)),m}function o(e,t,n,r,i){const a=t.attributes.columns.find((t=>t.name===e));if(!a)throw new Error(`Unable to find column '${e}' in schema '${t.id}'`);return s(a,n,r,i)}function s(e,t,n,r){let i,a,o;if((""===e.format||"date"===e.format)&&"Age"===e.name&&r)return r;"date"!==e.format&&"date"!==e.type||(i="Date",a=120,o={multiline:!0}),"number"!==e.type&&"int"!==e.type||(i="Number");const s=e.name.includes(" ")?e.name.split(" ").map((e=>e.charAt(0).toUpperCase()+e.substring(1))).join(""):e.name,c=t["i18n/exists"],u=t["i18n/t"],d=`tableHeaders.${s.charAt(0).toLowerCase()+s.slice(1)}`,h=e.description||"",p=h&&"."===h[h.length-1]?h.slice(0,-1):h,f=l(e,!1),m=n?f:l(e,!0);return{name:e.name.toLowerCase(),label:c(d)?u(d):e.name,value:m,sort:[f],search:f,formatter:i,formatterOpts:o,width:a,tooltip:p}}function l(e,t=!0){const n=e.field.startsWith(".")?`$${e.field}`:e.field,r=n.match(i);if(r&&2===r.length){const e=parseInt(r[1],10);return t?t=>t.metadata?.fields?.[e]:`metadata.fields.${e}`}return n}const c=(e,t)=>"function"===typeof e?!!t&&e(t):e},15328:function(e,t,n){"use strict";n.d(t,{c:function(){return r},w:function(){return i}});const r={GROUP:"group",DIVIDER:"divider",NONE:"none"},i=[r.GROUP,r.DIVIDER]},50025:function(e,t,n){"use strict";n.d(t,{B6:function(){return s},Js:function(){return i},eY:function(){return o},gR:function(){return l}});var r=n(18110);class i{constructor({field:e,value:t,equals:n=!0,exact:r=!0}){this.field=e,this.value=t,this.equals=n,this.exact=r}}class a{constructor({param:e,equals:t=!0,fields:n=[]}){this.param=e,this.equals=t,this.fields=n}}class o extends a{constructor({equals:e=!0,fields:t=[]}){super({param:"filter",equals:e,fields:t})}static createSingleField(e){return new o({fields:[new i(e)]})}static createMultipleFields(e){return new o({fields:e})}}class s extends a{constructor({equals:e=!0,projectOrNamespace:t=[]}){const n=t.map((e=>new i({value:e.replace(r.os,"").replace(r.tA,"")})));super({param:"projectsornamespaces",equals:e,fields:n})}}class l{constructor({page:e=1,pageSize:t=10,sort:n=[],filters:r=[],projectsOrNamespaces:i=[]}){this.page=e,this.pageSize=t,this.sort=n,this.filters=r?Array.isArray(r)?r:[r]:[],this.projectsOrNamespaces=i?Array.isArray(i)?i:[i]:[]}}},39669:function(e,t,n){"use strict";n.d(t,{c:function(){return r}});const r={TABLET:"tablet",LAPTOP:"laptop",DESKTOP:"desktop"}},68851:function(e,t,n){"use strict";n.d(t,{$M:function(){return s},Gj:function(){return o},IU:function(){return p},P1:function(){return v},PG:function(){return l},PT:function(){return u},WP:function(){return m},Wq:function(){return h},cn:function(){return c},cy:function(){return d},jq:function(){return g},oQ:function(){return w},sb:function(){return y},yI:function(){return b}});var r=n(13182),i=n.n(r),a=n(76978);function o(e,t){const n=e.indexOf(t);return n>=0&&e.splice(n,1),e}function s(e,t){let n,r=[];for(n=0;n<t.length;n++){let i=e.indexOf(t[n]);while(-1!==i)r.push(i),i=e.indexOf(t[n],i+1)}if(!r.length)return e;r=r.sort(((e,t)=>e-t));const i=[];let a,o;while(r.length){a=r.shift(),o=a;while(r.length&&r[0]===o+1)o=r.shift();i.push({start:a,end:o})}for(n=i.length-1;n>=0;n--){const{start:t,end:r}=i[n];e.splice(t,r-t+1)}return e}function l(e,t){const n=e.indexOf(t);-1===n&&e.push(t)}function c(e,t){const n=[];for(const r of t)e.includes(r)||n.includes(r)||n.push(r);e.push(...n)}function u(e,t,...n){e.splice(t,0,...n)}function d(e){return Array.isArray(e)}function h(e,t,n=1){if(t<0)throw new Error("Index too low");if(t+n>e.length)throw new Error("Index + length too high");return e.splice(t,n),e}function p(e){e.splice(0,e.length)}function f(e,t,n,r){return t=t||[],"object"===typeof n?t[e]((e=>{for(const t in n){const r=n[t],i=(0,a.Jt)(e,t);if("undefined"===typeof r){if(!i)return!1}else if(i!==r)return!1}return!0})):void 0===r?t[e]((e=>!!(0,a.Jt)(e,n))):t[e]((e=>(0,a.Jt)(e,n)===r))}function m(e,t,n){return f("filter",e,t,n)}function g(e,t,n){return f("find",e,t,n)}function v(e,t){return 0===i()(e,t).length}function b(e,t,n=!1){if(!e&&!t)return!1;if(e?.length!==t?.length)return!1;if(n){const n={};t.forEach(((e,t)=>{n[t]=!1}));for(let r=0;r<e.length;r++){const i=e[r],o=t.findIndex(((e,t)=>(0,a.n4)(e,i)&&!n[t]));if(!(o>=0))return!1;n[o]=!0}}else for(let r=0;r<e.length;r++)if(!(0,a.n4)(e[r],t[r]))return!1;return!0}function y(e){const t=[];return c(t,e),t}function w(e){const t=e.reduce(((e,t)=>(Object.keys(t.metadata.labels).forEach((t=>e[t]=!0)),e)),{});return Object.keys(t).sort()}},23330:function(e,t,n){"use strict";n.d(t,{f:function(){return i},u:function(){return a}});var r=n(4364);const i=(e,t="",n=3e6,i=500,a=!1)=>{return o("Starting wait for",t),new Promise(((r,a)=>{e()&&(o("Wait for",t||"unknown","done immediately"),r(void 0));const s=setTimeout((()=>{if(o("Wait for",t,"timed out"),clearInterval(l),clearTimeout(s),!t)throw new Error(`waitFor timed out after ${n/1e3} seconds`);a(new Error(`Failed waiting for: ${t}`))}),n),l=setInterval((()=>{e()?(o("Wait for",t,"done"),clearInterval(l),clearTimeout(s),r(void 0)):t&&o("Wait for",t,"not done yet")}),i)}));function o(...e){a&&r.log(...e)}},a=e=>new Promise((t=>setTimeout(t,e)))},40207:function(e,t,n){"use strict";n.d(t,{W:function(){return r}});const r={enabled:!1,enabledInterval:!0,interval:300,enabledOnNavigate:!0,ageThreshold:120,countThreshold:500}},90599:function(e,t,n){"use strict";var r,i=n(9262),a=n(35664),o=n(40207),s=n(4364);class l{constructor(){this.cachedGcPrefs=o.W,this.cachedGcPrefsStamp="",this.debugLog=(...e)=>{l.ENABLE_DEBUG_LOGGING&&s.debug("GC",...e)},this.gcLastRun=0,this.getUiPerfGarbageCollection=e=>{const t=e.management.types[a.Mc.SETTING]?.list?.find((e=>e.id===i.HG.UI_PERFORMANCE));if(!t||!t.value)return;const n=`${t.metadata.generation}-${t.metadata.resourceVersion}`;if(this.cachedGcPrefsStamp!==n){this.debugLog(`Updating ${i.HG.UI_PERFORMANCE} cache`),this.cachedGcPrefsStamp=n;const e=JSON.parse(t.value);this.cachedGcPrefs=e.garbageCollection}return this.cachedGcPrefs},this.lastAccessedCache={},this.lastRouteChange=0}gcEnabledAll(e,t){return this.gcEnabledForStore(e.state)&&this.gcEnabledSetting(e)&&this.gcEnabledForType(e,t)}gcEnabledSetting(e){const{rootState:t}=e,n=this.getUiPerfGarbageCollection(t);return n?.enabled}gcEnabledForStore(e){return e?.config?.supportsGc}gcEnabledForType(e,t){const{getters:n}=e;return!(!t||n.gcIgnoreTypes[t])}gcEnabledInterval(e){const{rootState:t}=e,n=this.getUiPerfGarbageCollection(t);return{enabled:n?.enabledInterval,interval:n?.interval||0}}gcEnabledRoute(e){const{rootState:t}=e,n=this.getUiPerfGarbageCollection(t);return n?.enabledOnNavigate}garbageCollect(e,t={}){const n=(new Date).getTime();if(null===this.gcLastRun||n-this.gcLastRun<l.GC_RE_RUN_GAP)return void this.debugLog("Skipping (running or recently run)",this.gcLastRun?new Date(this.gcLastRun):"running");this.gcLastRun=null;const r={};try{const{getters:i,rootState:o,dispatch:s}=e;if(!o.clusterReady)return this.debugLog("Skipping (cluster not ready)"),void(this.gcLastRun=(new Date).getTime());this.debugLog("------ Started ------");const l=this.getUiPerfGarbageCollection(o);if(!l)return;const c=1e3*l.ageThreshold,u=l.countThreshold;this.debugLog(`Max Age: ${c}. Max Count: ${u}`);const d=e.state.config.namespace;Object.entries(this.lastAccessedCache[d]||{}).forEach((([o,l])=>{if(!l)return void this.debugLog(`${o}: Skipping (no accessed time)`);if(!this.gcEnabledForType(e,o))return void this.debugLog(`${o}: Skipping (type ignored by store)`);if(t[o])return void this.debugLog(`${o}: Skipping (navigating to type)`);if(n-l<=c)return void this.debugLog(`${o}: Skipping (recently accessed)`);if(void 0!==this.lastRouteChange&&this.lastRouteChange<l)return void this.debugLog(`${o}: Skipping (used in current route/page)`);const d=i.all(a.i2)[0].counts[o]?.summary.count,h=d??0;void 0===h||h<u?this.debugLog(`${o}: Skipping (too few of resource)`):(this.debugLog(`${o}: Removing from store`),s("forgetType",o),r[o]=h)})),this.gcLastRun=(new Date).getTime()}catch(i){this.debugLog(": Error",i),this.gcLastRun=(new Date).getTime()}Object.keys(r).length>0&&s.info("Garbage Collected Resources",r),this.debugLog("------ Finished ------")}gcUpdateLastAccessed(e,t){if(!this.gcEnabledAll(e,t))return;const n=e.state.config.namespace;this.lastAccessedCache[n]||(this.lastAccessedCache[n]={}),this.lastAccessedCache[n][t]=(new Date).getTime()}gcUpdateRouteChanged(){this.lastRouteChange=(new Date).getTime()}gcResetStore(e){const t=e.config.namespace;delete this.lastAccessedCache[t],this.debugLog("Forgetting Store:",t)}gcResetType(e,t){const n=e.config.namespace;this.lastAccessedCache[n]&&(delete this.lastAccessedCache[n][t],this.debugLog("Forgetting Type:",n,t))}}r=l,r.ENABLE_DEBUG_LOGGING=!1,r.GC_RE_RUN_GAP=5e3;const c=new l;t.A=c},15092:function(e,t,n){"use strict";var r=n(18110),i=n(68851),a=n(76978),o=n(95265),s=n(34765);class l{constructor(){this.validNsProjectFilters=[r.tj,r.Rc,r.bE,r.Rc,r.T6.NAMESPACE,r.T6.PROJECT,r.x8,r.TD]}getSettings({rootGetters:e}){const t=(0,s.fD)(e);return t.serverPagination}isSteveCacheEnabled({rootGetters:e}){return e["features/get"]?.(o.Vw)}isEnabled({rootGetters:e},t){if(!this.isSteveCacheEnabled({rootGetters:e}))return!1;const n=this.getSettings({rootGetters:e});if(!n?.enabled)return!1;if(!t)return!1;const r=n.stores?.[t.store];if(!r)return!1;if(!t.resource)return!0;if(r.resources.enableAll)return!0;if(!t.resource.id)return!1;const i=!e["type-map/configuredHeaders"](t.resource.id)&&!e["type-map/configuredPaginationHeaders"](t.resource.id)&&!e["type-map/hasCustomList"](t.resource.id);return!(!r.resources.enableSome.generic||!i)||!!r.resources.enableSome.enabled.find((e=>"string"===typeof e?e===t.resource?.id:e.resource===t.resource?.id&&(!e.context||!!t.resource?.context&&e.context.includes(t.resource.context))))}validateNsProjectFilters(e){return e?.every((e=>this.validateNsProjectFilter(e)))}validateNsProjectFilter(e){return!(!e.startsWith(r.os)&&!e.startsWith(r.tA))||this.validNsProjectFilters.includes(e)}paginationFilterEqual(e,t){return e.param===t.param&&e.equals===t.equals&&(0,i.yI)(e.fields,t.fields,!0)}paginationFiltersEqual(e,t){if(e&&e?.length!==t?.length)return!1;for(let n=0;n<e.length;n++)if(!this.paginationFilterEqual(e[n],t[n]))return!1;return!0}paginationEqual(e,t){const{filters:n=[],sort:r=[],projectsOrNamespaces:o=[],...s}=e||{},{filters:l=[],sort:c=[],projectsOrNamespaces:u=[],...d}=t||{};return(0,a.n4)(s,d)&&this.paginationFiltersEqual(n,l)&&this.paginationFiltersEqual(o,u)&&(0,i.yI)(r,c,!0)}}t.A=new l},34765:function(e,t,n){"use strict";n.d(t,{eB:function(){return o},fD:function(){return s}});var r=n(35664),i=n(9262),a=(n(92043),n(63905),n(4364));const o=async(e,t,n,i=!0)=>{let a;try{a=await e.dispatch("management/find",{type:r.Mc.SETTING,id:t})}catch{const o=e.getters["management/schemaFor"](r.Mc.SETTING),s=o.linkFor("collection");a=await e.dispatch("management/create",{type:r.Mc.SETTING,metadata:{name:t},value:n,default:n||""}),i&&await a.save({url:s})}return a},s=e=>{const t=e["management/byId"](r.Mc.SETTING,i.HG.UI_PERFORMANCE);let n={};if(t?.value)try{n=JSON.parse(t.value)}catch(s){a.warn("ui-performance setting contains invalid data")}const o=Object.assign({},i.$8);return Object.assign(o,n||{})}},49148:function(e,t){"use strict";t.A={memberOfObject:(e,t)=>Object.entries(e||{}).find((([e])=>e===t)),memberOfComponent:(e,t)=>e[t]}},50667:function(e,t,n){"use strict";function r(e,t,n){let r=e+(e.includes("?")?"&":"?");return Array.isArray(n)||(n=[n]),r+=n.map((e=>null===e?`${encodeURIComponent(t)}`:`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"),r}function i(e,t){return t&&"object"===typeof t&&Object.keys(t).forEach((n=>{e=r(e,n,t[n])})),e}function a(e,t){const n=t.toLowerCase();return o([e],[443,8443],["443"])||"https"===n}function o(e,t,n){for(let r=0;r<e.length;r++){const i=e[r];if(t.includes(i))return!0;for(let e=0;e<n.length;e++){const t=`${n[e]}`,r=`${i}`;if(r!==t&&r.endsWith(t))return!0}}return!1}function s(e){const t=s.options,n=t.parser[t.strictMode?"strict":"loose"].exec(e);if(!n)throw new Error(`Cannot parse as uri: ${e}`);const r={};let i=14;while(i--)r[t.key[i]]=n[i]||"";return r.query={},r.queryStr.replace(t.q.parser,((e,n,i)=>(n&&(r[t.q.name][n]=i),""))),r}function l(e){let t=`${e.protocol}://`;return e.user&&e.password?t+=`${e.user}:${e.password}@`:e.user&&(t+=`${e.user}@`),t+=e.host,e.port&&(t+=`:${e.port}`),t+=e.path||"/",t=i(t,e.query||{}),e.anchor&&(t+=`#${e.anchor}`),t}n.d(t,{As:function(){return l},E4:function(){return a},R_:function(){return r},g:function(){return i},qg:function(){return s}}),s.options={strictMode:!1,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","queryStr","anchor"],q:{name:"query",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}}},71274:function(e,t,n){"use strict";n.d(t,{A:function(){return m}});var r=n(35664),i=n(2841),a=n(3514),o=n.n(a),s=n(52103),l=n.n(s),c=n(24138),u=n.n(c),d=n(68094),h=n(70500);class p{constructor(e){this.string=String(e),this.int=parseInt(this.string,10),this.empty=!e&&0!==this.int,this.isNumber=!isNaN(this.int)&&!this.string.includes("e"),this.isInt=this.isNumber&&!this.string.includes(".")}}const f=(e,t)=>{for(const n of t){const t=n(e);if(t)return t}};function m(e,{key:t="Value"}){const n=n=>r=>"."===r?.slice(0,1)?e(`validation.dns.${n}.startDot`,{key:t}):void 0,a=n=>r=>"."===r?.slice(-1)?e(`validation.dns.${n}.endDot`,{key:t}):void 0,s=n=>r=>r?.slice(0,1)?.match(/[0-9]/)?e(`validation.dns.${n}.startNumber`,{key:t}):void 0,c=n=>r=>"-"===r?.slice(0,1)?e(`validation.dns.${n}.startHyphen`,{key:t}):void 0,m=n=>r=>"-"===r?.slice(-1)?e(`validation.dns.${n}.endHyphen`,{key:t}):void 0,g=n=>r=>Number(r)<Number(n)?e("validation.minValue",{key:t,min:n}):void 0,v=n=>r=>Number(r)>Number(n)?e("validation.maxValue",{key:t,max:n}):void 0,b=([n,r])=>i=>g(n)(i)||v(r)(i)?e("validation.betweenValues",{key:t,min:n,max:r}):void 0,y=n=>r=>r.length<Number(n)?e("validation.minLength",{key:t,min:n}):void 0,w=n=>r=>r.length>Number(n)?e("validation.maxLength",{key:t,max:n}):void 0,E=([n,r])=>i=>y(n)(i)||w(r)(i)?e("validation.betweenLengths",{key:t,min:n,max:r}):void 0,_=n=>isNaN(parseInt(n,10))?e("validation.number.requiredInt",{key:t}):void 0,S=n=>!Number.isInteger(+n)||`${n}`.match(/\.+/g)?e("validation.number.requiredInt",{key:t}):void 0,k=n=>+n<0?e("validation.number.isPositive",{key:t}):void 0,x=n=>{const r=`${n}`,i=r.match(/(^0+)(.+)/);return i?e("validation.number.isOctal",{key:t}):void 0},A=n=>parseInt(n,10)<1||parseInt(n,10)>65535?e("validation.number.between",{key:t,min:"1",max:"65535"}):void 0,N=n=>{const r=n?.match(/[^${'A-Za-z0-9-'}]/g);if(r)return e("validation.chars",{key:t,count:r.length,chars:r.map((e=>" "===e?"Space":`"${e}"`)).join(", ")})},C=n=>"--"===n?.substr(2,2)&&"xn"!==n?.substr(0,2)?e("validation.dns.doubleHyphen",{key:t}):void 0,T=n=>"--"===n?.substr(2,2)&&"xn"!==n?.substr(0,2)?e("validation.dns.doubleHyphen",{key:t}):void 0,R=n=>(r="")=>0===r.length?e(`validation.dns.${n}.emptyLabel`,{key:t,min:1}):void 0,O=(n,r=63)=>(i="")=>i.length>r?e(`validation.dns.${n}.tooLongLabel`,{key:t,max:r}):void 0,I=(n="")=>n.length>253?e("validation.dns.hostname.tooLong",{key:t,max:253}):void 0,L=(n="")=>"/"!==n[0]&&n.length>0?e("validation.path",{key:t}):void 0,D=n=>n||!1===n?void 0:e("validation.required",{key:t}),P=(n="")=>n.toLowerCase()!==n?e("validation.noUpperCase",{key:t}):void 0,M=t=>{try{h.M.validation(t)}catch(n){return e(h.M.message)}},B=t=>t&&!(0,d.Q6)(t)?e("validation.setting.serverUrl.https"):void 0,F=t=>(0,d.M8)(t)?e("validation.setting.serverUrl.localhost"):void 0,$=t=>(0,d.fB)(t)?e("validation.setting.serverUrl.trailingForwardSlash"):void 0,U=t=>t&&!u()(t)?e("validation.setting.serverUrl.url"):void 0,j=t=>t&&!/^((http|git|ssh|http(s)|file|\/?)|(git@[\w\.]+))(:(\/\/)?)([\w\.@\:\/\-]+)([\d\/\w.-]+?)(.git){0,1}(\/)?$/gm.test(t)?e("validation.git.repository"):void 0,V=n=>n&&!/^[a-zA-Z0-9]+$/.test(n)?e("validation.alphanumeric",{key:t}):void 0,K=n=>/^\d+[hms]$/.test(n)?void 0:e("validation.monitoring.route.interval",{key:t}),H=t=>t?.image?void 0:e("workload.validation.containerImage",{name:t.name}),G=t=>{const n=t.jobTemplate?t?.jobTemplate?.spec?.template?.spec?.containers:t?.template?.spec?.containers;return n&&n.length?n.map((e=>H(e))).find((e=>e)):e("validation.required",{key:e("workload.container.titles.containers")})},z=e=>{const t=[N,c("label"),m("label"),C,O("label")];return f(e,t)},q=e=>{const t=[N,c("label"),m("label"),T,R("label"),O("label",15)];return f(e,t)},X=e=>{const t=[N,s("label"),c("label"),m("label"),C,R("label"),O("label")];return f(e,t)},W=e=>{if(e){const t=[n("hostname"),I,a("hostname")],r=f(e,t);if(r)return r;const i=e.split("."),o=[N,c("hostname"),m("hostname"),C,R("hostname"),O("hostname")];for(let e=0;e<i.length;e++){const t=f(i[e],o);if(t)return t}}},Y=e=>(e=e?e.replace(/^\*\./,""):e,W(e)),Q=t=>o()(t)?e("validation.service.externalName.none"):W(t),J=e=>"This is an error returned by the testRule validator",Z=t=>o()(t?.groups)?e("validation.prometheusRule.groups.required"):void 0,ee=t=>n=>t&&(n||"")?.match(/^(c-.{5}|local)$/i)?e("validation.cluster.name"):void 0,te=t=>{const{name:n,idx:r}=t,i=new p(t.nodePort),a=new p(t.port),s=new p(t.targetPort);if(o()(n))return e("validation.service.ports.name.required",{position:r+1});if(!i.empty){if(!i.isInt)return e("validation.service.ports.nodePort.requiredInt",{position:r+1});if(i.int<1||i.int>65535)return e("validation.service.ports.nodePort.between",{position:r+1})}if(a.empty)return e("validation.service.ports.port.required",{position:r+1});if(!a.isInt)return e("validation.service.ports.port.requiredInt",{position:r+1});if(a.int<1||a.int>65535)return e("validation.service.ports.port.between",{position:r+1});if(a.string?.includes("."))return a;if(s.empty)return e("validation.service.ports.targetPort.required",{position:r+1});if(s.isInt){if(s.int<1||s.int>65535)return e("validation.service.ports.targetPort.between",{position:r+1})}else{const e=q(s.string);if(e)return e}},ne=(t,n)=>{let r;return o()(t?.name)?e("validation.prometheusRule.groups.valid.name",{index:n}):o()(t.rules)?e("validation.prometheusRule.groups.valid.singleEntry",{index:n}):(t.rules.forEach(((t,i)=>{const a=i+1;l()(t,"alert")&&o()(t?.alert)&&!r?r=e("validation.prometheusRule.groups.valid.rule.alertName",{groupIndex:n,ruleIndex:a}):l()(t,"record")&&o()(t?.record)&&(r=e("validation.prometheusRule.groups.valid.rule.recordName",{groupIndex:n,ruleIndex:a})),(l()(t,"expr")&&o()(t.expr)&&!r||!l()(t,"expr")&&!r)&&(r=e("validation.prometheusRule.groups.valid.rule.expr",{groupIndex:n,ruleIndex:a})),l()(t,"alert")&&(l()(t,"labels")&&o()(t.labels)&&!r||!l()(t,"labels")&&!r)&&(r=e("validation.prometheusRule.groups.valid.rule.labels",{groupIndex:n,ruleIndex:a}))})),r)},re=e=>{const t=[...e];let n;return t.forEach(((e,t,r)=>{n=ne(e,t+1),n&&(r.length=t+1)})),n},ie=t=>{if(o()(t?.match)&&o()(t?.["match_re"]))return e("validation.monitoring.route.match")},ae=t=>(n=[])=>{if(n.some((e=>o()(e.verbs))))return e("validation.roleTemplate.roleTemplateRules.missingVerb");if(n.some((e=>e.resources?.length&&e.nonResourceURLs?.length)))return e("validation.roleTemplate.roleTemplateRules.noResourceAndNonResource");if(t===r.lk.ROLE){if(n.some((e=>o()(e.resources))))return e("validation.roleTemplate.roleTemplateRules.missingResource");if(n.some((e=>o()(e.apiGroups))))return e("validation.roleTemplate.roleTemplateRules.missingApiGroup")}else if(n.some((e=>o()(e.resources)&&o()(e.nonResourceURLs))))return e("validation.roleTemplate.roleTemplateRules.missingOneResource")},oe=e=>{},se=t=>{const n=JSON.parse(t),r=n.type;if(!r)return e("validation.required",{key:"Type"});if("s3"===r){if(!n.accessKeyId)return e("validation.required",{key:"accessKeyId"});if(!n.secretAccessKey)return e("validation.required",{key:"secretAccessKey"});if(!n.bucketRegion)return e("validation.required",{key:"bucketRegion"});if(!n.bucketName)return e("validation.required",{key:"bucketName"})}},le=t=>{const n=["qcow","qcow2","raw","img","iso"];if(!t||""===t)return;const r=t.split("/").pop(),i=r.split(".").pop().toLowerCase();return n.includes(i)?void 0:e("harvester.validation.image.ruleTip")},ce=(t={})=>{if(!t[i.rk.IMAGE_NAME])return e("validation.required",{key:e("harvester.image.fileName")})},ue=r=>{const i=r?.match(/[^a-z0-9.-]/g);return i?e("validation.chars",{key:t,count:i.length,chars:i.map((e=>" "===e?"Space":`"${e}"`)).join(", ")}):f(r,[c("label"),m("label"),n("label"),a("label"),D])};return{absolutePath:L,alphanumeric:V,backupTarget:se,betweenLengths:E,betweenValues:b,clusterIp:oe,clusterName:ee,containerImage:H,containerImages:G,cronSchedule:M,dnsLabel:z,dnsLabelIanaServiceName:q,dnsLabelRestricted:X,externalName:Q,fileRequired:ce,gitRepository:j,groupsAreValid:re,hostname:W,imageUrl:le,interval:K,https:B,localhost:F,trailingForwardSlash:$,url:U,matching:ie,maxLength:w,maxValue:v,minLength:y,minValue:g,noUpperCase:P,portNumber:A,required:D,requiredInt:_,isInteger:S,isPositive:k,isOctal:x,roleTemplateRules:ae,ruleGroups:Z,servicePort:te,subDomain:ue,testRule:J,wildcardHostname:Y}}},20652:function(e,t,n){"use strict";n.d(t,{KR:function(){return r}});const r="harvester";n(53938)},50889:function(e,t,n){"use strict";n.d(t,{EP:function(){return r},LP:function(){return a},gh:function(){return i}});const r={BACKUP_TARGET:"backup-target",CONTAINERD_REGISTRY:"containerd-registry",LOG_LEVEL:"log-level",SERVER_VERSION:"server-version",UI_INDEX:"ui-index",UI_PLUGIN_INDEX:"ui-plugin-index",UPGRADE_CHECKER_ENABLED:"upgrade-checker-enabled",UPGRADE_CHECKER_URL:"upgrade-checker-url",VLAN:"vlan",UI_SOURCE:"ui-source",UI_PL:"ui-pl",HTTP_PROXY:"http-proxy",ADDITIONAL_CA:"additional-ca",OVERCOMMIT_CONFIG:"overcommit-config",CLUSTER_REGISTRATION_URL:"cluster-registration-url",DEFAULT_STORAGE_CLASS:"default-storage-class",SUPPORT_BUNDLE_TIMEOUT:"support-bundle-timeout",SUPPORT_BUNDLE_EXPIRATION:"support-bundle-expiration",SUPPORT_BUNDLE_IMAGE:"support-bundle-image",SUPPORT_BUNDLE_NODE_COLLECTION_TIMEOUT:"support-bundle-node-collection-timeout",STORAGE_NETWORK:"storage-network",VM_FORCE_RESET_POLICY:"vm-force-reset-policy",SSL_CERTIFICATES:"ssl-certificates",SSL_PARAMETERS:"ssl-parameters",SUPPORT_BUNDLE_NAMESPACES:"support-bundle-namespaces",AUTO_DISK_PROVISION_PATHS:"auto-disk-provision-paths",RELEASE_DOWNLOAD_URL:"release-download-url",CCM_CSI_VERSION:"harvester-csi-ccm-versions",CSI_DRIVER_CONFIG:"csi-driver-config",VM_TERMINATION_PERIOD:"default-vm-termination-grace-period-seconds",NTP_SERVERS:"ntp-servers",AUTO_ROTATE_RKE2_CERTS:"auto-rotate-rke2-certs",KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES:"kubeconfig-default-token-ttl-minutes",LONGHORN_V2_DATA_ENGINE_ENABLED:"longhorn-v2-data-engine-enabled",ADDITIONAL_GUEST_MEMORY_OVERHEAD_RATIO:"additional-guest-memory-overhead-ratio"},i={[r.BACKUP_TARGET]:{kind:"json",from:"import",canReset:!0},[r.LOG_LEVEL]:{kind:"enum",options:["info","debug","trace"]},[r.VLAN]:{kind:"custom",from:"import",alias:"vlan"},[r.AUTO_ROTATE_RKE2_CERTS]:{kind:"json",from:"import",featureFlag:"autoRotateRke2CertsSetting"},[r.CSI_DRIVER_CONFIG]:{kind:"json",from:"import"},[r.SERVER_VERSION]:{readOnly:!0},[r.UPGRADE_CHECKER_ENABLED]:{kind:"boolean"},[r.UPGRADE_CHECKER_URL]:{kind:"url"},[r.HTTP_PROXY]:{kind:"json",from:"import"},[r.ADDITIONAL_CA]:{kind:"multiline",canReset:!0,from:"import"},[r.OVERCOMMIT_CONFIG]:{kind:"json",from:"import"},[r.SUPPORT_BUNDLE_TIMEOUT]:{},[r.SUPPORT_BUNDLE_EXPIRATION]:{},[r.SUPPORT_BUNDLE_NODE_COLLECTION_TIMEOUT]:{featureFlag:"supportBundleNodeCollectionTimeoutSetting"},[r.SUPPORT_BUNDLE_IMAGE]:{kind:"json",from:"import"},[r.STORAGE_NETWORK]:{kind:"custom",from:"import",canReset:!0},[r.VM_FORCE_RESET_POLICY]:{kind:"json",from:"import"},[r.SSL_CERTIFICATES]:{kind:"json",from:"import"},[r.SSL_PARAMETERS]:{kind:"json",from:"import",canReset:!0},[r.SUPPORT_BUNDLE_NAMESPACES]:{from:"import",canReset:!0},[r.AUTO_DISK_PROVISION_PATHS]:{canReset:!0},[r.RELEASE_DOWNLOAD_URL]:{kind:"url"},[r.UI_PLUGIN_INDEX]:{kind:"url"},[r.CONTAINERD_REGISTRY]:{kind:"json",from:"import",canReset:!0},[r.UI_SOURCE]:{kind:"enum",options:["auto","external","bundled"]},[r.UI_INDEX]:{kind:"url"},[r.VM_TERMINATION_PERIOD]:{kind:"string",from:"import"},[r.NTP_SERVERS]:{kind:"json",from:"import",canReset:!0},[r.KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES]:{featureFlag:"kubeconfigDefaultTokenTTLMinutesSetting"},[r.LONGHORN_V2_DATA_ENGINE_ENABLED]:{kind:"boolean",experimental:!0,featureFlag:"longhornV2LVMSupport"},[r.ADDITIONAL_GUEST_MEMORY_OVERHEAD_RATIO]:{kind:"string",from:"import"}},a={[r.CLUSTER_REGISTRATION_URL]:{kind:"url",canReset:!0},[r.UI_PL]:{kind:"custom",from:"import",alias:"branding"}}},32766:function(e,t,n){"use strict";n.d(t,{Zq:function(){return a},nE:function(){return o},qY:function(){return i},rk:function(){return r}});const r={VM:"kubevirt.io.virtualmachine",VMI:"kubevirt.io.virtualmachineinstance",VMIM:"kubevirt.io.virtualmachineinstancemigration",VM_TEMPLATE:"harvesterhci.io.virtualmachinetemplate",VM_VERSION:"harvesterhci.io.virtualmachinetemplateversion",IMAGE:"harvesterhci.io.virtualmachineimage",SSH:"harvesterhci.io.keypair",VOLUME:"harvesterhci.io.volume",USER:"harvesterhci.io.user",SETTING:"harvesterhci.io.setting",UPGRADE:"harvesterhci.io.upgrade",UPGRADE_LOG:"harvesterhci.io.upgradelog",SCHEDULE_VM_BACKUP:"harvesterhci.io.schedulevmbackup",BACKUP:"harvesterhci.io.virtualmachinebackup",RESTORE:"harvesterhci.io.virtualmachinerestore",NODE_NETWORK:"network.harvesterhci.io.nodenetwork",CLUSTER_NETWORK:"network.harvesterhci.io.clusternetwork",SUPPORT_BUNDLE:"harvesterhci.io.supportbundle",NETWORK_ATTACHMENT:"harvesterhci.io.networkattachmentdefinition",CLUSTER:"harvesterhci.io.management.cluster",DASHBOARD:"harvesterhci.io.dashboard",BLOCK_DEVICE:"harvesterhci.io.blockdevice",CLOUD_TEMPLATE:"harvesterhci.io.cloudtemplate",HOST:"harvesterhci.io.host",VERSION:"harvesterhci.io.version",SNAPSHOT:"harvesterhci.io.volumesnapshot",VM_SNAPSHOT:"harvesterhci.io.vmsnapshot",ALERTMANAGERCONFIG:"harvesterhci.io.monitoring.alertmanagerconfig",CLUSTER_FLOW:"harvesterhci.io.logging.clusterflow",CLUSTER_OUTPUT:"harvesterhci.io.logging.clusteroutput",FLOW:"harvesterhci.io.logging.flow",OUTPUT:"harvesterhci.io.logging.output",STORAGE:"harvesterhci.io.storage",RESOURCE_QUOTA:"harvesterhci.io.resourcequota",KSTUNED:"node.harvesterhci.io.ksmtuned",PCI_DEVICE:"devices.harvesterhci.io.pcidevice",PCI_CLAIM:"devices.harvesterhci.io.pcideviceclaim",SR_IOV:"devices.harvesterhci.io.sriovnetworkdevice",VGPU_DEVICE:"devices.harvesterhci.io.vgpudevice",SR_IOVGPU_DEVICE:"devices.harvesterhci.io.sriovgpudevice",USB_DEVICE:"devices.harvesterhci.io.usbdevice",USB_CLAIM:"devices.harvesterhci.io.usbdeviceclaim",VLAN_CONFIG:"network.harvesterhci.io.vlanconfig",VLAN_STATUS:"network.harvesterhci.io.vlanstatus",ADD_ONS:"harvesterhci.io.addon",LINK_MONITOR:"network.harvesterhci.io.linkmonitor",SECRET:"harvesterhci.io.secret",INVENTORY:"metal.harvesterhci.io.inventory",LB:"loadbalancer.harvesterhci.io.loadbalancer",IP_POOL:"loadbalancer.harvesterhci.io.ippool",HARVESTER_CONFIG:"rke-machine-config.cattle.io.harvesterconfig",LVM_VOLUME_GROUP:"harvesterhci.io.lvmvolumegroup"},i="snapshot.storage.k8s.io.volumesnapshot",a="storage.k8s.io.csidriver",o="snapshot.storage.k8s.io.volumesnapshotclass"},40519:function(e,t,n){"use strict";n.d(t,{A:function(){return T}});var r=n(9274);const i={key:0},a=["disabled","data-testid","tabindex","onClick","onKeyup"],o={key:0,class:"no-actions"};function s(e,t,n,s,l,c){const u=(0,r.resolveComponent)("IconOrSvg"),d=(0,r.resolveDirective)("clean-html"),h=(0,r.resolveDirective)("t");return c.showing||n.open?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createElementVNode)("div",{class:"background",onClick:t[0]||(t[0]=(...e)=>c.hide&&c.hide(...e)),onContextmenu:t[1]||(t[1]=(0,r.withModifiers)((()=>{}),["prevent"]))},null,32),(0,r.createElementVNode)("ul",{class:"list-unstyled menu",style:(0,r.normalizeStyle)(l.style)},[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(c.menuOptions,((e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)("li",{key:t,disabled:!!e.disabled||null,class:(0,r.normalizeClass)({divider:e.divider}),"data-testid":n.componentTestid+"-"+t+"-item",tabindex:e.divider?-1:0,onClick:t=>c.execute(e,t),onKeyup:[(0,r.withKeys)((t=>c.execute(e,t)),["enter"]),(0,r.withKeys)((t=>c.execute(e,t)),["space"])]},[e.icon||e.svg?((0,r.openBlock)(),(0,r.createBlock)(u,{key:0,icon:e.icon,src:e.svg,class:"icon",color:"header"},null,8,["icon","src"])):(0,r.createCommentVNode)("",!0),(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[d,e.label]])],42,a)))),128)),c.hasOptions(c.menuOptions)?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)("li",o,[(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[h,"sortableTable.noActions"]])]))],4)])):(0,r.createCommentVNode)("",!0)}var l=n(65359),c=n(14817),u=n(35881);const d=["src"],h={key:2,class:"icon icon-extension"};function p(e,t,n,i,a,o){return n.src?((0,r.openBlock)(),(0,r.createElementBlock)("img",{key:0,src:n.src,class:(0,r.normalizeClass)(["svg-icon",a.className])},null,10,d)):n.icon?((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:1,class:(0,r.normalizeClass)(["icon group-icon",n.icon])},null,2)):((0,r.openBlock)(),(0,r.createElementBlock)("i",h))}class f{constructor(e,t,n){this.set(e,t,n)}toString(){return`rgb(${Math.round(this.r)}, ${Math.round(this.g)}, ${Math.round(this.b)})`}set(e,t,n){this.r=this.clamp(e),this.g=this.clamp(t),this.b=this.clamp(n)}hueRotate(e=0){e=e/180*Math.PI;const t=Math.sin(e),n=Math.cos(e);this.multiply([.213+.787*n-.213*t,.715-.715*n-.715*t,.072-.072*n+.928*t,.213-.213*n+.143*t,.715+.285*n+.14*t,.072-.072*n-.283*t,.213-.213*n-.787*t,.715-.715*n+.715*t,.072+.928*n+.072*t])}grayscale(e=1){this.multiply([.2126+.7874*(1-e),.7152-.7152*(1-e),.0722-.0722*(1-e),.2126-.2126*(1-e),.7152+.2848*(1-e),.0722-.0722*(1-e),.2126-.2126*(1-e),.7152-.7152*(1-e),.0722+.9278*(1-e)])}sepia(e=1){this.multiply([.393+.607*(1-e),.769-.769*(1-e),.189-.189*(1-e),.349-.349*(1-e),.686+.314*(1-e),.168-.168*(1-e),.272-.272*(1-e),.534-.534*(1-e),.131+.869*(1-e)])}saturate(e=1){this.multiply([.213+.787*e,.715-.715*e,.072-.072*e,.213-.213*e,.715+.285*e,.072-.072*e,.213-.213*e,.715-.715*e,.072+.928*e])}multiply(e){const t=this.clamp(this.r*e[0]+this.g*e[1]+this.b*e[2]),n=this.clamp(this.r*e[3]+this.g*e[4]+this.b*e[5]),r=this.clamp(this.r*e[6]+this.g*e[7]+this.b*e[8]);this.r=t,this.g=n,this.b=r}brightness(e=1){this.linear(e)}contrast(e=1){this.linear(e,-.5*e+.5)}linear(e=1,t=0){this.r=this.clamp(this.r*e+255*t),this.g=this.clamp(this.g*e+255*t),this.b=this.clamp(this.b*e+255*t)}invert(e=1){this.r=this.clamp(255*(e+this.r/255*(1-2*e))),this.g=this.clamp(255*(e+this.g/255*(1-2*e))),this.b=this.clamp(255*(e+this.b/255*(1-2*e)))}hsl(){const e=this.r/255,t=this.g/255,n=this.b/255,r=Math.max(e,t,n),i=Math.min(e,t,n),a=(r+i)/2;let o=a,s=a;if(r===i)o=s=0;else{const l=r-i;switch(s=a>.5?l/(2-r-i):l/(r+i),r){case e:o=(t-n)/l+(t<n?6:0);break;case t:o=(n-e)/l+2;break;case n:o=(e-t)/l+4;break}o/=6}return{h:100*o,s:100*s,l:100*a}}clamp(e){return e>255?e=255:e<0&&(e=0),e}}class m{constructor(e){this.target=new f(e.r,e.g,e.b),this.targetHSL=this.target.hsl(),this.reusedColor=new f(0,0,0)}solve(){const e=this.solveNarrow(this.solveWide());return{values:e.values,loss:e.loss,filter:this.css(e.values)}}solveWide(){const e=5,t=15,n=[60,180,18e3,600,1.2,1.2];let r={loss:1/0};for(let i=0;r.loss>25&&i<3;i++){const i=[50,20,3750,50,100,100],a=this.spsa(e,n,t,i,1e3);a.loss<r.loss&&(r=a)}return r}solveNarrow(e){const t=e.loss,n=2,r=t+1,i=[.25*r,.25*r,r,.25*r,.2*r,.2*r];return this.spsa(t,i,n,e.values,500)}spsa(e,t,n,r,i){const a=1,o=.16666666666666666;let s=null,l=1/0;const c=new Array(6),u=new Array(6),d=new Array(6);for(let p=0;p<i;p++){const i=n/Math.pow(p+1,o);for(let e=0;e<6;e++)c[e]=Math.random()>.5?1:-1,u[e]=r[e]+i*c[e],d[e]=r[e]-i*c[e];const f=this.loss(u)-this.loss(d);for(let n=0;n<6;n++){const o=f/(2*i)*c[n],s=t[n]/Math.pow(e+p+1,a);r[n]=h(r[n]-s*o,n)}const m=this.loss(r);m<l&&(s=r.slice(0),l=m)}return{values:s,loss:l};function h(e,t){let n=100;return 2===t?n=7500:4!==t&&5!==t||(n=200),3===t?e>n?e%=n:e<0&&(e=n+e%n):e<0?e=0:e>n&&(e=n),e}}loss(e){const t=this.reusedColor;t.set(0,0,0),t.invert(e[0]/100),t.sepia(e[1]/100),t.saturate(e[2]/100),t.hueRotate(3.6*e[3]),t.brightness(e[4]/100),t.contrast(e[5]/100);const n=t.hsl();return Math.abs(t.r-this.target.r)+Math.abs(t.g-this.target.g)+Math.abs(t.b-this.target.b)+Math.abs(n.h-this.targetHSL.h)+Math.abs(n.s-this.targetHSL.s)+Math.abs(n.l-this.targetHSL.l)}css(e){function t(t,n=1){return Math.round(e[t]*n)}return`filter: invert(${t(0)}%) sepia(${t(1)}%) saturate(${t(2)}%) hue-rotate(${t(3,3.6)}deg) brightness(${t(4)}%) contrast(${t(5)}%);`}}var g=n(78347);const v={},b={},y={header:{color:"--header-btn-text",hover:"--header-btn-text-hover"},primary:{color:"--link",hover:"--primary-hover-text"}};var w={name:"IconOrSvg",props:{src:{type:String,default:()=>{}},icon:{type:String,default:()=>{}},color:{type:String,default:()=>"primary"}},data(){return{className:""}},created(){this.src&&this.setColor()},methods:{setColor(){const e=this.$store.getters["prefs/theme"];let t,n;for(let l=0;l<Object.keys(document.styleSheets).length;l++){let r=!1;const i=document.styleSheets[l];if(i&&i.cssRules)for(let a=0;a<Object.keys(i.cssRules).length;a++){const o=i.cssRules[a];if(o.selectorText&&("light"===e&&(o.selectorText.includes("body")||o.selectorText.includes("BODY"))&&o.selectorText.includes(".theme-light")&&o.style.cssText.includes("--link:")||"dark"===e&&o.selectorText.includes(".theme-dark"))){t=(0,g.yq)(o.style.getPropertyValue(y[this.color].color).trim()),n=(0,g.yq)(o.style.getPropertyValue(y[this.color].hover).trim()),t=(0,g.Tv)(t),n=(0,g.Tv)(n),r=!0;break}}if(r)break}const r=(0,g.qe)(t),i=(0,g.qe)(n),a=`${r.r}-${r.g}-${r.b}`,o=`${i.r}-${i.g}-${i.b}`,s=`svg-icon-${a}-${o}`;if(!b[s]){let e=v[n];if(!e){const t=new m(i),r=t.solve();e=r?.filter,v[n]=e}let a=v[t];if(!a){const e=new m(r),n=e.solve();a=n?.filter,v[t]=a}const o=`\n img.${s} {\n ${a};\n }\n img.${s}:hover {\n ${e};\n }\n button:hover > img.${s} {\n ${e};\n }\n li:hover > img.${s} {\n ${e};\n }\n a.option:hover > img.${s} {\n ${e};\n } `,l=document.createElement("style");l.innerText=o,document.head.appendChild(l),b[s]=!0}this["className"]=s}}},E=(n(86961),n(47433));const _=(0,E.A)(w,[["render",p],["__scopeId","data-v-373e6345"]]);var S=_;const k="hide",x="calculate",A="show";var N={name:"ActionMenu",emits:["close"],components:{IconOrSvg:S},props:{customActions:{type:Array,default:()=>[]},open:{type:Boolean,default:!1},useCustomTargetElement:{type:Boolean,default:!1},customTargetElement:{type:HTMLElement,default:null},customTargetEvent:{type:[PointerEvent,MouseEvent],default:null},componentTestid:{type:String,default:"action-menu"}},data(){return{phase:k,style:{}}},computed:{...(0,l.L8)({targetElem:"action-menu/elem",targetEvent:"action-menu/event",shouldShow:"action-menu/showing",options:"action-menu/options"}),showing(){return this.phase!==k},menuOptions(){return this.customActions.length>0?this.customActions:this.options}},watch:{shouldShow:{handler(e){e?(this.phase=x,this.updateStyle(),this.$nextTick((()=>{this.phase===x&&(this.phase=A,this.updateStyle())}))):this.phase=k}},open(){this.updateStyle()},"$route.path"(e,t){this.hide()}},methods:{hide(){this.useCustomTargetElement?this.$emit("close"):this.$store.commit("action-menu/hide")},updateStyle(){if(this.phase===A&&!this.useCustomTargetElement){const e=this.$el?.querySelector&&this.$el.querySelector(".menu"),t=this.targetEvent,n=this.targetElem;return this.style=(0,c.Tb)(e,n||t,{overlapX:!0,fudgeX:n?-2:0,fudgeY:n?20:0,positionX:n?c.Q8:c.Q7,positionY:c.Q8}),void(this.style.visibility="visible")}if(this.open&&this.useCustomTargetElement){const e=this.$el?.querySelector&&this.$el.querySelector(".menu"),t=this.customTargetElement;return this.style=(0,c.Tb)(e,t,{overlapX:!0,fudgeX:t?4:0,fudgeY:t?4:0,positionX:t?c.Q8:c.Q7,positionY:c.Q8},!0),void(this.style.visibility="visible")}this.style={}},execute(e,t,n){if(!e.disabled){if(e.invoke){const n=e.invoke;if(n&&e.enabled){const r=this.$store.getters["action-menu/resources"],i={event:t,action:e,isAlt:(0,u.nN)(t)};1===r.length&&n.apply(this,[i,r])}}else if(this.useCustomTargetElement)this.$emit(e.action,{action:e,event:t,...n,route:this.$route});else{const r={alt:(0,u.nN)(t)};this.$store.dispatch("action-menu/execute",{action:e,args:n,opts:r})}this.hide()}},hasOptions(e){return void 0!==e.length?e.length:Object.keys(e).length>0}}};n(4071);const C=(0,E.A)(N,[["render",s],["__scopeId","data-v-3af780f6"]]);var T=C},162:function(e,t,n){"use strict";n.d(t,{A:function(){return c}});var r=n(9274);const i=["data-modal"];function a(e,t,n,a,o,s){return(0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{to:"#modals"},[(0,r.createVNode)(r.Transition,{name:"modal-fade",appear:""},{default:(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",{class:"modal-overlay","data-modal":e.name,onClick:t[1]||(t[1]=(...t)=>e.handleClickOutside&&e.handleClickOutside(...t))},[(0,r.createElementVNode)("div",(0,r.mergeProps)(e.$attrs,{ref:"modalRef",class:[e.customClass,"modal-container"],style:e.modalStyles,onClick:t[0]||(t[0]=(0,r.withModifiers)((()=>{}),["stop"]))}),[(0,r.renderSlot)(e.$slots,"default")],16)],8,i)])),_:3})])}var o=(0,r.defineComponent)({name:"AppModal",emits:["close"],inheritAttrs:!1,props:{clickToClose:{type:Boolean,default:!0},width:{type:[Number,String],default:600,validator(e){return"number"===typeof e?e>0:"string"===typeof e&&/^(0*(?:[1-9][0-9]*|0)\.?\d*)+(px|%)$/.test(e)}},customClass:{type:String,default:""},styles:{type:String,default:""},name:{type:String,default:""}},computed:{modalWidth(){if(this.isValidWidth(this.width)){const e="number"===typeof this.width?"px":"";return`${this.width}${e}`}return"600px"},stylesPropToObj(){return this.styles.split(";").map((e=>e.trim().split(":"))).reduce(((e,[t,n])=>({...e,[t]:n})),{})},modalStyles(){return{width:this.modalWidth,...this.stylesPropToObj}}},mounted(){document.addEventListener("keydown",this.handleEscapeKey)},beforeUnmount(){document.removeEventListener("keydown",this.handleEscapeKey)},methods:{handleClickOutside(e){this.clickToClose&&this.$refs.modalRef&&!this.$refs.modalRef.contains(e.target)&&this.$emit("close")},handleEscapeKey(e){this.clickToClose&&"Escape"===e.key&&this.$emit("close")},isValidWidth(e){return"number"===typeof e?e>0:"string"===typeof e&&/^(0*(?:[1-9][0-9]*|0)\.?\d*)+(px|%)$/.test(e)}}}),s=(n(53935),n(47433));const l=(0,s.A)(o,[["render",a]]);var c=l},88857:function(e,t,n){"use strict";n.d(t,{R:function(){return l},A:function(){return m}});var r=n(9274);const i=["name","type","disabled","tab-index","data-testid"],a={key:2};function o(e,t,n,o,s,l){const c=(0,r.resolveDirective)("clean-tooltip"),u=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("button",{ref:"btn",class:(0,r.normalizeClass)(e.classes),name:e.name,type:e.type,disabled:e.isDisabled,"tab-index":e.tabIndex,"data-testid":e.componentTestid+"-async-button",onClick:t[0]||(t[0]=(...t)=>e.clicked&&e.clicked(...t))},[e.isManualRefresh?((0,r.openBlock)(),(0,r.createElementBlock)("span",{key:0,class:(0,r.normalizeClass)({"mr-10":e.displayIcon&&"sm"!==e.size,"mr-5":e.displayIcon&&"sm"===e.size})},(0,r.toDisplayString)(e.t("action.refresh")),3)):(0,r.createCommentVNode)("",!0),e.displayIcon?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:1,class:(0,r.normalizeClass)({icon:!0,"icon-lg":!0,[e.displayIcon]:!0,"mr-0":e.isManualRefresh})},null,2)),[[c,e.tooltip]]):(0,r.createCommentVNode)("",!0),"text"===e.labelAs&&e.displayLabel?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("span",a,null,512)),[[c,e.tooltip],[u,e.displayLabel]]):(0,r.createCommentVNode)("",!0)],10,i)}var s=n(49148);const l={ACTION:"action",WAITING:"waiting",SUCCESS:"success",ERROR:"error"},c="text",u="tooltip",d={timer:void 0};var h=(0,r.defineComponent)({props:{mode:{type:String,default:"edit"},delay:{type:Number,default:5e3},name:{type:String,default:null},disabled:{type:Boolean,default:!1},type:{type:String,default:"button"},tabIndex:{type:Number,default:null},actionColor:{type:String,default:"role-primary"},waitingColor:{type:String,default:"bg-primary"},successColor:{type:String,default:"bg-success"},errorColor:{type:String,default:"bg-error"},actionLabel:{type:String,default:null},waitingLabel:{type:String,default:null},successLabel:{type:String,default:null},errorLabel:{type:String,default:null},icon:{type:String,default:null},labelAs:{type:String,default:c},size:{type:String,default:""},currentPhase:{type:String,default:l.ACTION},componentTestid:{type:String,default:"action-button"},manual:{type:Boolean,default:!1}},setup(){const e=(0,r.inject)("timer",d.timer);return{timer:e}},emits:["click"],data(){return{phase:this.currentPhase}},watch:{currentPhase(e){this.phase=e}},computed:{classes(){const e=`${this.phase}Color`,t=s.A.memberOfComponent(this,e),n={btn:!0,[t]:!0};return this.size&&(n[`btn-${this.size}`]=!0),n},displayIcon(){const e=this.$store.getters["i18n/exists"],t=this.$store.getters["i18n/t"],n=`asyncButton.${this.mode}.${this.phase}Icon`,r=`asyncButton.default.${this.phase}Icon`;let i="";return this.icon?i=this.icon:e(n)?i=`icon-${t(n)}`:e(r)&&(i=`icon-${t(r)}`),this.isSpinning&&(i||(i="icon-spinner"),i+=" icon-spin"),i},displayLabel(){const e=s.A.memberOfComponent(this,`${this.phase}Label`),t=this.$store.getters["i18n/exists"],n=this.$store.getters["i18n/t"],r=`asyncButton.${this.mode}.${this.phase}`,i=`asyncButton.default.${this.phase}`;return e||(t(r)?n(r):t(i)?n(i):"")},isSpinning(){return this.phase===l.WAITING},isDisabled(){return this.disabled||this.phase===l.WAITING},isManualRefresh(){return"manual-refresh"===this.mode},tooltip(){return this.labelAs===u?{content:this.displayLabel,hideOnTargetClick:!1}:null}},beforeUnmount(){this.timer&&clearTimeout(this.timer)},methods:{clicked(){if(this.isDisabled)return;this.timer&&clearTimeout(this.timer),this.manual||(this.phase=l.WAITING);const e=e=>{this.done(e)};this.$emit("click",e)},done(e){"cancelled"===e?this.phase=l.ACTION:(this.phase=e?l.SUCCESS:l.ERROR,this.timer=setTimeout((()=>{this.timerDone()}),this.delay))},timerDone(){this.phase!==l.SUCCESS&&this.phase!==l.ERROR||(this.phase=l.ACTION)},focus(){this.$refs.btn.focus()}}}),p=(n(53543),n(47433));const f=(0,p.A)(h,[["render",o],["__scopeId","data-v-799da077"]]);var m=f},8552:function(e,t,n){"use strict";n.d(t,{A:function(){return yt}});var r=n(9274);const i=["onClick"];function a(e,t,n,a,o,s){const l=(0,r.resolveComponent)("v-select");return(0,r.openBlock)(),(0,r.createBlock)(l,(0,r.mergeProps)({ref:"button-dropdown",class:["button-dropdown btn",{disabled:n.disabled,focused:o.focused}]},e.$attrs,{"append-to-body":!0,"calculate-position":s.withPopper,searchable:!1,clearable:!1,"close-on-select":n.closeOnSelect,filterable:!1,modelValue:n.buttonLabel,options:n.dropdownOptions,"map-keydown":e.mappedKeys,"get-option-key":e=>n.optionKey?s.get(e,n.optionKey):s.getOptionLabel(e),"get-option-label":e=>s.getOptionLabel(e),selectable:n.selectable,"onSearch:blur":s.onBlur,"onSearch:focus":s.onFocus,"onUpdate:modelValue":t[1]||(t[1]=t=>e.$emit("click-action",t))}),(0,r.createSlots)({"no-options":(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"no-options",{},void 0,!0)])),"selected-option":(0,r.withCtx)((e=>[(0,r.createElementVNode)("button",{tabindex:"-1",type:"button",class:"dropdown-button-two btn","data-testid":"dropdown-button",onClick:t=>s.ddButtonAction(e),onFocus:t[0]||(t[0]=(...e)=>s.focusSearch&&s.focusSearch(...e))},(0,r.toDisplayString)(e.label),41,i)])),_:2},[(0,r.renderList)(e.$slots,((t,n)=>({name:n,fn:(0,r.withCtx)((t=>["selected-option"!==n&&"function"===typeof e.$slots[n]?(0,r.renderSlot)(e.$slots,n,(0,r.normalizeProps)((0,r.mergeProps)({key:0},t)),void 0,!0):(0,r.createCommentVNode)("",!0)]))})))]),1040,["class","calculate-position","close-on-select","modelValue","options","map-keydown","get-option-key","get-option-label","selectable","onSearch:blur","onSearch:focus"])}function o(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function s(e){var t=o(e).Element;return e instanceof t||e instanceof Element}function l(e){var t=o(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function c(e){if("undefined"===typeof ShadowRoot)return!1;var t=o(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var u=Math.max,d=Math.min,h=Math.round;function p(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function f(){return!/^((?!chrome|android).)*safari/i.test(p())}function m(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&l(e)&&(i=e.offsetWidth>0&&h(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&h(r.height)/e.offsetHeight||1);var c=s(e)?o(e):window,u=c.visualViewport,d=!f()&&n,p=(r.left+(d&&u?u.offsetLeft:0))/i,m=(r.top+(d&&u?u.offsetTop:0))/a,g=r.width/i,v=r.height/a;return{width:g,height:v,top:m,right:p+g,bottom:m+v,left:p,x:p,y:m}}function g(e){var t=o(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function v(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function b(e){return e!==o(e)&&l(e)?v(e):g(e)}function y(e){return e?(e.nodeName||"").toLowerCase():null}function w(e){return((s(e)?e.ownerDocument:e.document)||window.document).documentElement}function E(e){return m(w(e)).left+g(e).scrollLeft}function _(e){return o(e).getComputedStyle(e)}function S(e){var t=_(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function k(e){var t=e.getBoundingClientRect(),n=h(t.width)/e.offsetWidth||1,r=h(t.height)/e.offsetHeight||1;return 1!==n||1!==r}function x(e,t,n){void 0===n&&(n=!1);var r=l(t),i=l(t)&&k(t),a=w(t),o=m(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&(("body"!==y(t)||S(a))&&(s=b(t)),l(t)?(c=m(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=E(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function A(e){var t=m(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function N(e){return"html"===y(e)?e:e.assignedSlot||e.parentNode||(c(e)?e.host:null)||w(e)}function C(e){return["html","body","#document"].indexOf(y(e))>=0?e.ownerDocument.body:l(e)&&S(e)?e:C(N(e))}function T(e,t){var n;void 0===t&&(t=[]);var r=C(e),i=r===(null==(n=e.ownerDocument)?void 0:n.body),a=o(r),s=i?[a].concat(a.visualViewport||[],S(r)?r:[]):r,l=t.concat(s);return i?l:l.concat(T(N(s)))}function R(e){return["table","td","th"].indexOf(y(e))>=0}function O(e){return l(e)&&"fixed"!==_(e).position?e.offsetParent:null}function I(e){var t=/firefox/i.test(p()),n=/Trident/i.test(p());if(n&&l(e)){var r=_(e);if("fixed"===r.position)return null}var i=N(e);c(i)&&(i=i.host);while(l(i)&&["html","body"].indexOf(y(i))<0){var a=_(i);if("none"!==a.transform||"none"!==a.perspective||"paint"===a.contain||-1!==["transform","perspective"].indexOf(a.willChange)||t&&"filter"===a.willChange||t&&a.filter&&"none"!==a.filter)return i;i=i.parentNode}return null}function L(e){var t=o(e),n=O(e);while(n&&R(n)&&"static"===_(n).position)n=O(n);return n&&("html"===y(n)||"body"===y(n)&&"static"===_(n).position)?t:n||I(e)||t}var D="top",P="bottom",M="right",B="left",F="auto",$=[D,P,M,B],U="start",j="end",V="clippingParents",K="viewport",H="popper",G="reference",z=$.reduce((function(e,t){return e.concat([t+"-"+U,t+"-"+j])}),[]),q=[].concat($,[F]).reduce((function(e,t){return e.concat([t,t+"-"+U,t+"-"+j])}),[]),X="beforeRead",W="read",Y="afterRead",Q="beforeMain",J="main",Z="afterMain",ee="beforeWrite",te="write",ne="afterWrite",re=[X,W,Y,Q,J,Z,ee,te,ne];function ie(e){var t=new Map,n=new Set,r=[];function i(e){n.add(e.name);var a=[].concat(e.requires||[],e.requiresIfExists||[]);a.forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),r}function ae(e){var t=ie(e);return re.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}function oe(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}function se(e){var t=e.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}var le={placement:"bottom",modifiers:[],strategy:"absolute"};function ce(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"===typeof e.getBoundingClientRect)}))}function ue(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,r=void 0===n?[]:n,i=t.defaultOptions,a=void 0===i?le:i;return function(e,t,n){void 0===n&&(n=a);var i={placement:"bottom",orderedModifiers:[],options:Object.assign({},le,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],l=!1,c={state:i,setOptions:function(n){var o="function"===typeof n?n(i.options):n;d(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:s(e)?T(e):e.contextElement?T(e.contextElement):[],popper:T(t)};var l=ae(se([].concat(r,i.options.modifiers)));return i.orderedModifiers=l.filter((function(e){return e.enabled})),u(),c.update()},forceUpdate:function(){if(!l){var e=i.elements,t=e.reference,n=e.popper;if(ce(t,n)){i.rects={reference:x(t,L(n),"fixed"===i.options.strategy),popper:A(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach((function(e){return i.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<i.orderedModifiers.length;r++)if(!0!==i.reset){var a=i.orderedModifiers[r],o=a.fn,s=a.options,u=void 0===s?{}:s,d=a.name;"function"===typeof o&&(i=o({state:i,options:u,name:d,instance:c})||i)}else i.reset=!1,r=-1}}},update:oe((function(){return new Promise((function(e){c.forceUpdate(),e(i)}))})),destroy:function(){d(),l=!0}};if(!ce(e,t))return c;function u(){i.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,a=e.effect;if("function"===typeof a){var s=a({state:i,name:t,instance:c,options:r}),l=function(){};o.push(s||l)}}))}function d(){o.forEach((function(e){return e()})),o=[]}return c.setOptions(n).then((function(e){!l&&n.onFirstUpdate&&n.onFirstUpdate(e)})),c}}var de={passive:!0};function he(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=void 0===i||i,s=r.resize,l=void 0===s||s,c=o(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach((function(e){e.addEventListener("scroll",n.update,de)})),l&&c.addEventListener("resize",n.update,de),function(){a&&u.forEach((function(e){e.removeEventListener("scroll",n.update,de)})),l&&c.removeEventListener("resize",n.update,de)}}var pe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:he,data:{}};function fe(e){return e.split("-")[0]}function me(e){return e.split("-")[1]}function ge(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ve(e){var t,n=e.reference,r=e.element,i=e.placement,a=i?fe(i):null,o=i?me(i):null,s=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(a){case D:t={x:s,y:n.y-r.height};break;case P:t={x:s,y:n.y+n.height};break;case M:t={x:n.x+n.width,y:l};break;case B:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var c=a?ge(a):null;if(null!=c){var u="y"===c?"height":"width";switch(o){case U:t[c]=t[c]-(n[u]/2-r[u]/2);break;case j:t[c]=t[c]+(n[u]/2-r[u]/2);break;default:}}return t}function be(e){var t=e.state,n=e.name;t.modifiersData[n]=ve({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var ye={name:"popperOffsets",enabled:!0,phase:"read",fn:be,data:{}},we={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ee(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:h(n*i)/i||0,y:h(r*i)/i||0}}function _e(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,l=e.position,c=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,h=e.isFixed,p=s.x,f=void 0===p?0:p,m=s.y,g=void 0===m?0:m,v="function"===typeof d?d({x:f,y:g}):{x:f,y:g};f=v.x,g=v.y;var b=s.hasOwnProperty("x"),y=s.hasOwnProperty("y"),E=B,S=D,k=window;if(u){var x=L(n),A="clientHeight",N="clientWidth";if(x===o(n)&&(x=w(n),"static"!==_(x).position&&"absolute"===l&&(A="scrollHeight",N="scrollWidth")),i===D||(i===B||i===M)&&a===j){S=P;var C=h&&x===k&&k.visualViewport?k.visualViewport.height:x[A];g-=C-r.height,g*=c?1:-1}if(i===B||(i===D||i===P)&&a===j){E=M;var T=h&&x===k&&k.visualViewport?k.visualViewport.width:x[N];f-=T-r.width,f*=c?1:-1}}var R,O=Object.assign({position:l},u&&we),I=!0===d?Ee({x:f,y:g},o(n)):{x:f,y:g};return f=I.x,g=I.y,c?Object.assign({},O,(R={},R[S]=y?"0":"",R[E]=b?"0":"",R.transform=(k.devicePixelRatio||1)<=1?"translate("+f+"px, "+g+"px)":"translate3d("+f+"px, "+g+"px, 0)",R)):Object.assign({},O,(t={},t[S]=y?g+"px":"",t[E]=b?f+"px":"",t.transform="",t))}function Se(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=void 0===r||r,a=n.adaptive,o=void 0===a||a,s=n.roundOffsets,l=void 0===s||s,c={placement:fe(t.placement),variation:me(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,_e(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,_e(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var ke={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Se,data:{}};function xe(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];l(i)&&y(i)&&(Object.assign(i.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))}function Ae(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]),o=a.reduce((function(e,t){return e[t]="",e}),{});l(r)&&y(r)&&(Object.assign(r.style,o),Object.keys(i).forEach((function(e){r.removeAttribute(e)})))}))}}var Ne={name:"applyStyles",enabled:!0,phase:"write",fn:xe,effect:Ae,requires:["computeStyles"]};function Ce(e,t,n){var r=fe(e),i=[B,D].indexOf(r)>=0?-1:1,a="function"===typeof n?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o=o||0,s=(s||0)*i,[B,M].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function Te(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=void 0===i?[0,0]:i,o=q.reduce((function(e,n){return e[n]=Ce(n,t.rects,a),e}),{}),s=o[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=o}var Re={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Te},Oe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return Oe[e]}))}var Le={start:"end",end:"start"};function De(e){return e.replace(/start|end/g,(function(e){return Le[e]}))}function Pe(e,t){var n=o(e),r=w(e),i=n.visualViewport,a=r.clientWidth,s=r.clientHeight,l=0,c=0;if(i){a=i.width,s=i.height;var u=f();(u||!u&&"fixed"===t)&&(l=i.offsetLeft,c=i.offsetTop)}return{width:a,height:s,x:l+E(e),y:c}}function Me(e){var t,n=w(e),r=g(e),i=null==(t=e.ownerDocument)?void 0:t.body,a=u(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=u(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-r.scrollLeft+E(e),l=-r.scrollTop;return"rtl"===_(i||n).direction&&(s+=u(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function Be(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&c(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Fe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function $e(e,t){var n=m(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Ue(e,t,n){return t===K?Fe(Pe(e,n)):s(t)?$e(t,n):Fe(Me(w(e)))}function je(e){var t=T(N(e)),n=["absolute","fixed"].indexOf(_(e).position)>=0,r=n&&l(e)?L(e):e;return s(r)?t.filter((function(e){return s(e)&&Be(e,r)&&"body"!==y(e)})):[]}function Ve(e,t,n,r){var i="clippingParents"===t?je(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce((function(t,n){var i=Ue(e,n,r);return t.top=u(i.top,t.top),t.right=d(i.right,t.right),t.bottom=d(i.bottom,t.bottom),t.left=u(i.left,t.left),t}),Ue(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Ke(){return{top:0,right:0,bottom:0,left:0}}function He(e){return Object.assign({},Ke(),e)}function Ge(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function ze(e,t){void 0===t&&(t={});var n=t,r=n.placement,i=void 0===r?e.placement:r,a=n.strategy,o=void 0===a?e.strategy:a,l=n.boundary,c=void 0===l?V:l,u=n.rootBoundary,d=void 0===u?K:u,h=n.elementContext,p=void 0===h?H:h,f=n.altBoundary,g=void 0!==f&&f,v=n.padding,b=void 0===v?0:v,y=He("number"!==typeof b?b:Ge(b,$)),E=p===H?G:H,_=e.rects.popper,S=e.elements[g?E:p],k=Ve(s(S)?S:S.contextElement||w(e.elements.popper),c,d,o),x=m(e.elements.reference),A=ve({reference:x,element:_,strategy:"absolute",placement:i}),N=Fe(Object.assign({},_,A)),C=p===H?N:x,T={top:k.top-C.top+y.top,bottom:C.bottom-k.bottom+y.bottom,left:k.left-C.left+y.left,right:C.right-k.right+y.right},R=e.modifiersData.offset;if(p===H&&R){var O=R[i];Object.keys(T).forEach((function(e){var t=[M,P].indexOf(e)>=0?1:-1,n=[D,P].indexOf(e)>=0?"y":"x";T[e]+=O[n]*t}))}return T}function qe(e,t){void 0===t&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=void 0===l?q:l,u=me(r),d=u?s?z:z.filter((function(e){return me(e)===u})):$,h=d.filter((function(e){return c.indexOf(e)>=0}));0===h.length&&(h=d);var p=h.reduce((function(t,n){return t[n]=ze(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[fe(n)],t}),{});return Object.keys(p).sort((function(e,t){return p[e]-p[t]}))}function Xe(e){if(fe(e)===F)return[];var t=Ie(e);return[De(e),t,De(t)]}function We(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=void 0===i||i,o=n.altAxis,s=void 0===o||o,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,h=n.altBoundary,p=n.flipVariations,f=void 0===p||p,m=n.allowedAutoPlacements,g=t.options.placement,v=fe(g),b=v===g,y=l||(b||!f?[Ie(g)]:Xe(g)),w=[g].concat(y).reduce((function(e,n){return e.concat(fe(n)===F?qe(t,{placement:n,boundary:u,rootBoundary:d,padding:c,flipVariations:f,allowedAutoPlacements:m}):n)}),[]),E=t.rects.reference,_=t.rects.popper,S=new Map,k=!0,x=w[0],A=0;A<w.length;A++){var N=w[A],C=fe(N),T=me(N)===U,R=[D,P].indexOf(C)>=0,O=R?"width":"height",I=ze(t,{placement:N,boundary:u,rootBoundary:d,altBoundary:h,padding:c}),L=R?T?M:B:T?P:D;E[O]>_[O]&&(L=Ie(L));var $=Ie(L),j=[];if(a&&j.push(I[C]<=0),s&&j.push(I[L]<=0,I[$]<=0),j.every((function(e){return e}))){x=N,k=!1;break}S.set(N,j)}if(k)for(var V=f?3:1,K=function(e){var t=w.find((function(t){var n=S.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return x=t,"break"},H=V;H>0;H--){var G=K(H);if("break"===G)break}t.placement!==x&&(t.modifiersData[r]._skip=!0,t.placement=x,t.reset=!0)}}var Ye={name:"flip",enabled:!0,phase:"main",fn:We,requiresIfExists:["offset"],data:{_skip:!1}};function Qe(e){return"x"===e?"y":"x"}function Je(e,t,n){return u(e,d(t,n))}function Ze(e,t,n){var r=Je(e,t,n);return r>n?n:r}function et(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=void 0===i||i,o=n.altAxis,s=void 0!==o&&o,l=n.boundary,c=n.rootBoundary,h=n.altBoundary,p=n.padding,f=n.tether,m=void 0===f||f,g=n.tetherOffset,v=void 0===g?0:g,b=ze(t,{boundary:l,rootBoundary:c,padding:p,altBoundary:h}),y=fe(t.placement),w=me(t.placement),E=!w,_=ge(y),S=Qe(_),k=t.modifiersData.popperOffsets,x=t.rects.reference,N=t.rects.popper,C="function"===typeof v?v(Object.assign({},t.rects,{placement:t.placement})):v,T="number"===typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),R=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(k){if(a){var I,F="y"===_?D:B,$="y"===_?P:M,j="y"===_?"height":"width",V=k[_],K=V+b[F],H=V-b[$],G=m?-N[j]/2:0,z=w===U?x[j]:N[j],q=w===U?-N[j]:-x[j],X=t.elements.arrow,W=m&&X?A(X):{width:0,height:0},Y=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Ke(),Q=Y[F],J=Y[$],Z=Je(0,x[j],W[j]),ee=E?x[j]/2-G-Z-Q-T.mainAxis:z-Z-Q-T.mainAxis,te=E?-x[j]/2+G+Z+J+T.mainAxis:q+Z+J+T.mainAxis,ne=t.elements.arrow&&L(t.elements.arrow),re=ne?"y"===_?ne.clientTop||0:ne.clientLeft||0:0,ie=null!=(I=null==R?void 0:R[_])?I:0,ae=V+ee-ie-re,oe=V+te-ie,se=Je(m?d(K,ae):K,V,m?u(H,oe):H);k[_]=se,O[_]=se-V}if(s){var le,ce="x"===_?D:B,ue="x"===_?P:M,de=k[S],he="y"===S?"height":"width",pe=de+b[ce],ve=de-b[ue],be=-1!==[D,B].indexOf(y),ye=null!=(le=null==R?void 0:R[S])?le:0,we=be?pe:de-x[he]-N[he]-ye+T.altAxis,Ee=be?de+x[he]+N[he]-ye-T.altAxis:ve,_e=m&&be?Ze(we,de,Ee):Je(m?we:pe,de,m?Ee:ve);k[S]=_e,O[S]=_e-de}t.modifiersData[r]=O}}var tt={name:"preventOverflow",enabled:!0,phase:"main",fn:et,requiresIfExists:["offset"]},nt=function(e,t){return e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e,He("number"!==typeof e?e:Ge(e,$))};function rt(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=fe(n.placement),l=ge(s),c=[B,M].indexOf(s)>=0,u=c?"height":"width";if(a&&o){var d=nt(i.padding,n),h=A(a),p="y"===l?D:B,f="y"===l?P:M,m=n.rects.reference[u]+n.rects.reference[l]-o[l]-n.rects.popper[u],g=o[l]-n.rects.reference[l],v=L(a),b=v?"y"===l?v.clientHeight||0:v.clientWidth||0:0,y=m/2-g/2,w=d[p],E=b-h[u]-d[f],_=b/2-h[u]/2+y,S=Je(w,_,E),k=l;n.modifiersData[r]=(t={},t[k]=S,t.centerOffset=S-_,t)}}function it(e){var t=e.state,n=e.options,r=n.element,i=void 0===r?"[data-popper-arrow]":r;null!=i&&("string"!==typeof i||(i=t.elements.popper.querySelector(i),i))&&Be(t.elements.popper,i)&&(t.elements.arrow=i)}var at={name:"arrow",enabled:!0,phase:"main",fn:rt,effect:it,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ot(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function st(e){return[D,M,P,B].some((function(t){return e[t]>=0}))}function lt(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=ze(t,{elementContext:"reference"}),s=ze(t,{altBoundary:!0}),l=ot(o,r),c=ot(s,i,a),u=st(l),d=st(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var ct={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:lt},ut=[pe,ye,ke,Ne,Re,Ye,tt,at,ct],dt=ue({defaultModifiers:ut}),ht=n(76978),pt=n(8138),ft=n.n(pt),mt=n(89626),gt={emits:["dd-button-action","click-action"],mixins:[mt.A],props:{buttonLabel:{default:"",type:String},closeOnSelect:{default:!0,type:Boolean},disabled:{default:!1,type:Boolean},dropdownOptions:{default:()=>[],type:Array},optionKey:{default:null,type:String},optionLabel:{default:"label",type:String},size:{default:null,type:String},value:{default:null,type:String},placement:{default:"bottom-start",type:String},selectable:{default:e=>!e||!e.disabled&&"group"!==e.kind&&"divider"!==e.kind&&!e.loading,type:Function}},data(){return{focused:!1}},methods:{withPopper(e,t,{width:n}){const r=t.$refs.search.clientWidth,i=e.clientWidth;e.style.width=i<r?`${r}px`:"min-content";const a=dt(t.$refs.toggle,e,{placement:this.placement||"bottom-start",modifiers:[{name:"offset",options:{offset:[-2,2]}},{name:"toggleClass",enabled:!0,phase:"write",fn({state:e}){t.$el.setAttribute("x-placement",e.placement)}}]});return()=>a.destroy()},ddButtonAction(e){this.focusSearch(),this.$emit("dd-button-action",e)},getOptionLabel(e){return ft()(e)?e:this.$attrs["get-option-label"]?this.$attrs["get-option-label"](e):(0,ht.Jt)(e,this.optionLabel)?this.localizedLabel?this.$store.getters["i18n/t"]((0,ht.Jt)(e,this.optionLabel)):(0,ht.Jt)(e,this.optionLabel):e},onFocus(){return this.onFocusLabeled()},onFocusLabeled(){this.focused=!0},onBlur(){return this.onBlurLabeled()},onBlurLabeled(){this.focused=!1},focusSearch(){this.$nextTick((()=>{const e=this.$refs["button-dropdown"].searchEl;e&&e.focus()}))},get:ht.Jt}},vt=(n(9722),n(47433));const bt=(0,vt.A)(gt,[["render",a],["__scopeId","data-v-2ab9ff7a"]]);var yt=bt},21762:function(e,t,n){"use strict";n.d(t,{A:function(){return d}});var r=n(9274);const i={class:"btn-group"},a=["data-testid","disabled","aria-label","onClick"],o={key:2};function s(e,t,n,s,l,c){const u=(0,r.resolveComponent)("t"),d=(0,r.resolveDirective)("clean-tooltip"),h=(0,r.resolveDirective)("trim-whitespace");return(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(c.optionObjects,((t,i)=>(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:i,"data-testid":`button-group-child-${i}`,type:"button",class:(0,r.normalizeClass)(t.class),disabled:n.disabled||t.disabled,role:"button","aria-label":t.labelKey?e.t(t.labelKey):t.label,onClick:e=>c.change(t.value)},[(0,r.renderSlot)(e.$slots,"option",{label:t.label,value:t.value},(()=>[t.icon?((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:0,class:(0,r.normalizeClass)({icon:!0,[t.icon]:!0,[`icon-${n.iconSize}`]:!!n.iconSize})},null,2)):(0,r.createCommentVNode)("",!0),t.labelKey?((0,r.openBlock)(),(0,r.createBlock)(u,{key:1,k:t.labelKey},null,8,["k"])):t.label?((0,r.openBlock)(),(0,r.createElementBlock)("span",o,(0,r.toDisplayString)(t.label),1)):(0,r.createCommentVNode)("",!0)]))],10,a)),[[d,t.tooltipKey?e.t(t.tooltipKey):t.tooltip]]))),128))])),[[h]])}var l={emits:["update:value"],props:{value:{type:[String,Number,Boolean,Object],required:!0},inactiveClass:{type:String,default:"bg-disabled"},activeClass:{type:String,default:"bg-primary"},options:{type:Array,required:!0},iconSize:{type:String,default:null},disabled:{type:Boolean,default:!1}},computed:{optionObjects(){const e=this.value;return this.options.map((t=>{let n;n=t&&"object"===typeof t&&"undefined"!==typeof t.value?Object.assign({},t):{label:t,value:t};const r=e===n.value;return n.class={btn:!0,[this.inactiveClass]:!r,[this.activeClass]:r},n}))}},methods:{change(e){this.$emit("update:value",e)}}},c=n(47433);const u=(0,c.A)(l,[["render",s]]);var d=u},76332:function(e,t,n){"use strict";n.d(t,{A:function(){return s}});var r=n(9274),i=(0,r.defineComponent)({__name:"ButtonMultiAction",props:{borderless:{type:Boolean},invisible:{type:Boolean}},emits:["click"],setup(e){const t=e,n=(0,r.computed)((()=>({borderless:t?.borderless,invisible:t?.invisible})));return(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)("button",{type:"button",class:(0,r.normalizeClass)(["btn btn-sm role-multi-action actions",n.value]),onClick:t[0]||(t[0]=t=>e.$emit("click",t))},t[1]||(t[1]=[(0,r.createElementVNode)("i",{class:"icon icon-actions"},null,-1)]),2))}}),a=(n(47045),n(47433));const o=(0,a.A)(i,[["__scopeId","data-v-750b8386"]]);var s=o},94965:function(e,t,n){"use strict";n.d(t,{A:function(){return f}});var r=n(9274);const i={key:0},a={key:0,class:"keymap overlay"},o={key:1};function s(e,t,n,s,l,c){const u=(0,r.resolveComponent)("Codemirror"),d=(0,r.resolveDirective)("clean-tooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:(0,r.normalizeClass)(["code-mirror",{["as-text-area"]:n.asTextArea}])},[l.loaded?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[n.showKeyMapBox&&!l.removeKeyMapBox&&c.keyMapTooltip&&c.isNonDefaultKeyMap?((0,r.openBlock)(),(0,r.createElementBlock)("div",a,[(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("div",{class:"keymap-indicator","data-testid":"code-mirror-keymap",onClick:t[0]||(t[0]=(...e)=>c.closeKeyMapInfo&&c.closeKeyMapInfo(...e))},t[1]||(t[1]=[(0,r.createElementVNode)("i",{class:"icon icon-keyboard keymap-icon"},null,-1),(0,r.createElementVNode)("div",{class:"close-indicator"},[(0,r.createElementVNode)("i",{class:"icon icon-close icon-sm"})],-1)]))),[[d,c.keyMapTooltip]])])):(0,r.createCommentVNode)("",!0),(0,r.createVNode)(u,{ref:"codeMirrorRef",value:n.value,options:c.combinedOptions,disabled:c.isDisabled,"original-style":!0,onReady:c.onReady,onInput:c.onInput,onChanges:c.onChanges,onFocus:c.onFocus,onBlur:c.onBlur},null,8,["value","options","disabled","onReady","onInput","onChanges","onFocus","onBlur"])])):((0,r.openBlock)(),(0,r.createElementBlock)("div",o," Loading... "))],2)}var l=n(91462),c=n(14220),u=n(4364),d={name:"CodeMirror",emits:["onReady","onInput","onChanges","onFocus","validationChanged"],props:{mode:{type:String,default:c.G5},value:{type:String,required:!0},options:{type:Object,default:()=>{}},asTextArea:{type:Boolean,default:!1},showKeyMapBox:{type:Boolean,default:!1}},data(){return{codeMirrorRef:null,loaded:!1,removeKeyMapBox:!1,hasLintErrors:!1}},computed:{isDisabled(){return this.mode===c.nW},combinedOptions(){const e=this.$store.getters["prefs/theme"],t=this.$store.getters["prefs/get"](l.aP),n={tabSize:2,indentWithTabs:!1,mode:"yaml",keyMap:t,theme:`base16-${e}`,lineNumbers:!0,line:!0,styleActiveLine:!1,lineWrapping:!0,foldGutter:!0,styleSelectedText:!0,showCursorWhenSelecting:!0,autocorrect:!1};return this.asTextArea&&(n.lineNumbers=!1,n.foldGutter=!1,n.tabSize=0,n.extraKeys={Tab:!1}),Object.assign(n,this.options),this.options?.lint&&(n.lint={onUpdateLinting:this.handleLintErrors}),n},keyMapTooltip(){if(this.combinedOptions?.keyMap){const e=this.t(`prefs.keymap.${this.combinedOptions.keyMap}`);return this.t("codeMirror.keymap.indicatorToolip",{name:e})}return null},isNonDefaultKeyMap(){return"sublime"!==this.combinedOptions?.keyMap}},created(){window.__codeMirrorLoader?window.__codeMirrorLoader().then((()=>{this.loaded=!0})):u.error("Code mirror loader not available")},watch:{hasLintErrors(e){this.$emit("validationChanged",!e)}},methods:{handleLintErrors(e=[]){const t=e.filter((e=>!e.severity||"error"===e.severity)).length>0;this.hasLintErrors=t},focus(){this.$refs.codeMirrorRef&&this.$refs.codeMirrorRef.cminstance.focus()},refresh(){this.$refs.codeMirrorRef&&this.$refs.codeMirrorRef.refresh()},onReady(e){this.$emit("validationChanged",!0),this.$nextTick((()=>{e.refresh(),this.codeMirrorRef=e})),this.$emit("onReady",e)},onInput(e){this.$emit("onInput",e)},onChanges(e,t){this.$emit("onChanges",e,t)},onFocus(){this.$emit("onFocus",!0)},onBlur(){this.$emit("onFocus",!1)},updateValue(e){this.$refs.codeMirrorRef&&this.$refs.codeMirrorRef.cminstance.doc.setValue(e)},closeKeyMapInfo(){this.removeKeyMapBox=!0}}},h=(n(38993),n(47433));const p=(0,h.A)(d,[["render",s]]);var f=p},99960:function(e,t,n){"use strict";n.d(t,{A:function(){return Ke}});var r=n(9274);const i={class:"cru"},a={key:0,class:"description"},o={key:0,id:"cru-errors",class:"cru__errors"},s={key:1,class:"subtypes-container cru__content"},l=["data-testid","onClick"],c={class:"subtype-container"},u={class:"subtype-logo"},d=["src","alt"],h={key:1,class:"round-image"},p={key:0,class:"banner-abbrv"},f={key:0},m={key:1},g={class:"subtype-body"},v={key:0},b={key:1},y=["href"],w={key:0},E={key:1,class:"description"},_={key:0},S={key:1},k={key:0,class:"resource-container cru__content cru__content-wizard"},x={class:"controls-steps"},A=["onClick"],N=["disabled","onClick"],C=["data-testid"],T={key:4,class:"cru-resource-yaml-container resource-container cru__content"},R={class:"controls-middle"},O=["data-testid","onClick"],I=["data-testid","disabled","onClick"],L={key:0,class:"controls-right"},D=["data-testid","onClick"];function P(e,t,n,P,M,B){const F=(0,r.resolveComponent)("Banner"),$=(0,r.resolveComponent)("t"),U=(0,r.resolveComponent)("AsyncButton"),j=(0,r.resolveComponent)("CruResourceFooter"),V=(0,r.resolveComponent)("Wizard"),K=(0,r.resolveComponent)("ResourceYaml"),H=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("section",i,[(0,r.renderSlot)(e.$slots,"noticeBanner",{},void 0,!0),n.description?((0,r.openBlock)(),(0,r.createElementBlock)("p",a,(0,r.toDisplayString)(n.description),1)):(0,r.createCommentVNode)("",!0),((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(B.isView?"div":"form"),{value:n.resource,"data-testid":"cru-form",class:"create-resource-container cru__form",onSubmit:t[6]||(t[6]=(0,r.withModifiers)((()=>{}),["prevent"])),onKeydown:t[7]||(t[7]=(0,r.withKeys)((e=>B.onPressEnter(e)),["enter"]))},{default:(0,r.withCtx)((()=>[B.hasErrors?((0,r.openBlock)(),(0,r.createElementBlock)("div",o,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(n.errors,((e,t)=>((0,r.openBlock)(),(0,r.createBlock)(F,{key:t,color:"error","data-testid":`error-banner${t}`,label:B.stringify(B.mappedErrors[e].message),icon:B.mappedErrors[e].icon,closable:!0,onClose:e=>B.closeError(t)},null,8,["data-testid","label","icon","onClose"])))),128))])):(0,r.createCommentVNode)("",!0),B.showSubtypeSelection?((0,r.openBlock)(),(0,r.createElementBlock)("div",s,[(0,r.renderSlot)(e.$slots,"subtypes",{subtypes:n.subtypes},(()=>[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(n.subtypes,((i,a)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:a,class:(0,r.normalizeClass)(["subtype-banner",{selected:i.id===B._selectedSubtype}]),"data-testid":`subtype-banner-item-${i.id}`,onClick:e=>B.selectType(i.id,e)},[(0,r.renderSlot)(e.$slots,"subtype-content",{},(()=>[(0,r.createElementVNode)("div",c,[(0,r.createElementVNode)("div",u,[i.bannerImage?((0,r.openBlock)(),(0,r.createElementBlock)("img",{key:0,src:i.bannerImage,alt:(n.resource.type?n.resource.type+": ":"")+(i.label||"")},null,8,d)):((0,r.openBlock)(),(0,r.createElementBlock)("div",h,[i.bannerAbbrv?((0,r.openBlock)(),(0,r.createElementBlock)("div",p,[e.$store.getters["i18n/exists"](i.bannerAbbrv)?((0,r.openBlock)(),(0,r.createElementBlock)("span",f,(0,r.toDisplayString)(e.t(i.bannerAbbrv)),1)):((0,r.openBlock)(),(0,r.createElementBlock)("span",{key:1,style:(0,r.normalizeStyle)({fontSize:M.abbrSizes[i.bannerAbbrv.length]})},(0,r.toDisplayString)(i.bannerAbbrv),5))])):((0,r.openBlock)(),(0,r.createElementBlock)("div",m,(0,r.toDisplayString)(i.id.slice(0,1).toUpperCase()),1))]))]),(0,r.createElementVNode)("div",g,[(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)(["title",{"with-description":!!i.description}])},[(0,r.createElementVNode)("h5",null,[e.$store.getters["i18n/exists"](i.label)?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("span",v,null,512)),[[H,e.t(i.label)]]):((0,r.openBlock)(),(0,r.createElementBlock)("span",b,(0,r.toDisplayString)(i.label),1))]),i.docLink?((0,r.openBlock)(),(0,r.createElementBlock)("a",{key:0,href:i.docLink,target:"_blank",rel:"noopener nofollow",class:"flex-right"},[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("generic.moreInfo"))+" ",1),t[8]||(t[8]=(0,r.createElementVNode)("i",{class:"icon icon-external-link"},null,-1))],8,y)):(0,r.createCommentVNode)("",!0)],2),i.description?((0,r.openBlock)(),(0,r.createElementBlock)("hr",w)):(0,r.createCommentVNode)("",!0),i.description?((0,r.openBlock)(),(0,r.createElementBlock)("div",E,[e.$store.getters["i18n/exists"](i.description)?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("span",_,null,512)),[[H,e.t(i.description,{},!0)]]):((0,r.openBlock)(),(0,r.createElementBlock)("span",S,(0,r.toDisplayString)(i.description),1))])):(0,r.createCommentVNode)("",!0)])])]),!0)],10,l)))),128))]),!0)])):(0,r.createCommentVNode)("",!0),M.showAsForm&&n.steps.length?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[B._selectedSubtype||!n.subtypes.length?((0,r.openBlock)(),(0,r.createElementBlock)("div",k,[n.resource?((0,r.openBlock)(),(0,r.createBlock)(V,{key:0,ref:"Wizard","header-mode":n.mode,steps:n.steps,"edit-first-step":n.stepsOptions.editFirstStep,errors:n.errors,"finish-mode":n.finishMode,class:"wizard",onError:t[2]||(t[2]=e=>n.errors=e)},{stepContainer:(0,r.withCtx)((({activeStep:t})=>[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(n.steps,((n,i)=>((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:i},[n.name===t.name||n.hidden?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:n.name,class:(0,r.normalizeClass)(["step-container__step",{hide:n.name!==t.name&&n.hidden}])},[(0,r.renderSlot)(e.$slots,n.name,{step:n},void 0,!0)],2)):(0,r.createCommentVNode)("",!0)],64)))),128))])),controlsContainer:(0,r.withCtx)((({showPrevious:i,next:a,back:o,activeStep:s,canNext:l,activeStepIndex:c,visibleSteps:u})=>[(0,r.createVNode)(j,{class:"cru__footer",mode:n.mode,"is-form":M.showAsForm,"show-cancel":n.showCancel,onCancelConfirmed:B.confirmCancel},(0,r.createSlots)({default:(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",x,[B.showYaml?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,type:"button",class:"btn role-secondary",onClick:t[0]||(t[0]=(...e)=>B.showPreviewYaml&&B.showPreviewYaml(...e))},[(0,r.createVNode)($,{k:"cruResource.previewYaml"})])):(0,r.createCommentVNode)("",!0),i?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:1,type:"button",class:"btn role-secondary",onClick:e=>o()},[(0,r.createVNode)($,{k:"wizard.previous"})],8,A)):(0,r.createCommentVNode)("",!0),c===u.length-1?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[B.showSubtypeSelection||B.isView?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createBlock)(U,{key:0,ref:"save",disabled:!s.ready,mode:n.finishButtonMode||n.mode,onClick:t[1]||(t[1]=t=>e.$emit("finish",t))},null,8,["disabled","mode"]))],64)):((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:3,disabled:!l,type:"button",class:"btn role-primary",onClick:e=>a()},[(0,r.createVNode)($,{k:"wizard.next"})],8,N))])])),_:2},[(0,r.renderList)(e.$slots,((t,n)=>({name:n,fn:(0,r.withCtx)((t=>[B.shouldProvideSlot(n)?(0,r.renderSlot)(e.$slots,n,(0,r.normalizeProps)((0,r.mergeProps)({key:0},t)),void 0,!0):(0,r.createCommentVNode)("",!0)]))})))]),1032,["mode","is-form","show-cancel","onCancelConfirmed"])])),_:3},8,["header-mode","steps","edit-first-step","errors","finish-mode"])):(0,r.createCommentVNode)("",!0)])):(0,r.createCommentVNode)("",!0)],64)):M.showAsForm?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:3},[B._selectedSubtype||!n.subtypes.length?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:0,class:"resource-container cru__content",style:(0,r.normalizeStyle)([n.minHeight?{"min-height":n.minHeight}:{}])},[(0,r.renderSlot)(e.$slots,"default",{},void 0,!0)],4)):(0,r.createCommentVNode)("",!0),(0,r.renderSlot)(e.$slots,"form-footer",{},(()=>[(0,r.createVNode)(j,{class:"cru__footer",mode:n.mode,"is-form":M.showAsForm,"show-cancel":n.showCancel,"component-testid":n.componentTestid,onCancelConfirmed:B.confirmCancel},(0,r.createSlots)({_:2},[(0,r.renderList)(e.$slots,((t,n)=>({name:n,fn:(0,r.withCtx)((t=>[B.shouldProvideSlot(n)?(0,r.renderSlot)(e.$slots,n,(0,r.normalizeProps)((0,r.mergeProps)({key:0},t)),void 0,!0):(0,r.createCommentVNode)("",!0)]))}))),B.isView?void 0:{name:"default",fn:(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",null,[B.showYaml?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,"data-testid":n.componentTestid+"-yaml",type:"button",class:"btn role-secondary",onClick:t[3]||(t[3]=(...e)=>B.showPreviewYaml&&B.showPreviewYaml(...e))},[(0,r.createVNode)($,{k:"cruResource.previewYaml"})],8,C)):(0,r.createCommentVNode)("",!0),B.showSubtypeSelection?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createBlock)(U,{key:1,ref:"save",disabled:!B.canSave,mode:n.finishButtonMode||n.mode,"data-testid":n.componentTestid+"-save",onClick:t[4]||(t[4]=e=>B.clickSave(e))},null,8,["disabled","mode","data-testid"]))])])),key:"0"}]),1032,["mode","is-form","show-cancel","component-testid","onCancelConfirmed"])]),!0)],64)):B.showYaml&&!M.showAsForm?((0,r.openBlock)(),(0,r.createElementBlock)("section",T,[(0,r.createVNode)(K,{ref:"resourceyaml",value:n.resource,mode:n.mode,"initial-yaml-for-diff":M.initialYaml,yaml:M.resourceYaml,"offer-preview":B.isEdit,"done-route":n.doneRoute,"done-override":n.resource.doneOverride,errors:n.errors,"apply-hooks":n.applyHooks,class:"resource-container cru__content",onError:t[5]||(t[5]=t=>e.$emit("error",t))},{yamlFooter:(0,r.withCtx)((({yamlSave:t,showPreview:i,yamlPreview:a,yamlUnpreview:o,canDiff:s})=>[(0,r.renderSlot)(e.$slots,"cru-yaml-footer",{},(()=>[(0,r.createVNode)(j,{class:"cru__footer","done-route":n.doneRoute,mode:n.mode,"is-form":M.showAsForm,onCancelConfirmed:B.confirmCancel},{default:(0,r.withCtx)((({checkCancel:l})=>[(0,r.createElementVNode)("div",R,[i?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,type:"button",class:"btn role-secondary","data-testid":n.componentTestid+"-yaml-yaml",onClick:o},[(0,r.createVNode)($,{k:"resourceYaml.buttons.continue"})],8,O)):(0,r.createCommentVNode)("",!0),!i&&B.isEdit?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:1,"data-testid":n.componentTestid+"-yaml-yaml-preview",disabled:!s,type:"button",class:"btn role-secondary",onClick:a},[(0,r.createVNode)($,{k:"resourceYaml.buttons.diff"})],8,I)):(0,r.createCommentVNode)("",!0)]),B._selectedSubtype||!n.subtypes.length?((0,r.openBlock)(),(0,r.createElementBlock)("div",L,[(0,r.createElementVNode)("button",{"data-testid":n.componentTestid+"-yaml-cancel",type:"button",class:"btn role-secondary",onClick:e=>l(!1)},[(0,r.createVNode)($,{k:"cruResource.backToForm"})],8,D),B.showSubtypeSelection?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createBlock)(U,{key:0,"data-testid":n.componentTestid+"-yaml-save",disabled:!B.canSave,"action-label":B.isEdit?e.t("generic.save"):e.t("generic.create"),onClick:e=>t(e)},null,8,["data-testid","disabled","action-label","onClick"]))])):(0,r.createCommentVNode)("",!0)])),_:2},1032,["done-route","mode","is-form","onCancelConfirmed"])]),!0)])),_:3},8,["value","mode","initial-yaml-for-diff","yaml","offer-preview","done-route","done-override","errors","apply-hooks"])])):(0,r.createCommentVNode)("",!0)])),_:3},40,["value"]))])}var M=n(3514),B=n.n(M),F=n(37648),$=n(76978),U=n(35664),j=n(63354),V=n(9980),K=n(88857),H=n(65359),G=n(99726);const z={class:"cru-resource-footer"},q=["data-testid"];function X(e,t,n,i,a,o){const s=(0,r.resolveComponent)("t"),l=(0,r.resolveComponent)("AsyncButton"),c=(0,r.resolveComponent)("ResourceCancelModal");return(0,r.openBlock)(),(0,r.createElementBlock)("div",z,[(0,r.renderSlot)(e.$slots,"footer-prefix"),(0,r.renderSlot)(e.$slots,"cancel",{},(()=>[!o.isView&&n.showCancel?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,id:"cru-cancel","data-testid":n.componentTestid+"-cancel",type:"button",class:"btn role-secondary",onClick:t[0]||(t[0]=t=>n.confirmCancelRequired?o.checkCancel(!0):e.$emit("cancel-confirmed",!0))},[(0,r.createVNode)(s,{k:"generic.cancel"})],8,q)):(0,r.createCommentVNode)("",!0)])),(0,r.renderSlot)(e.$slots,"default",{checkCancel:o.checkCancel},(()=>[o.isView?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createBlock)(l,{key:0,"data-testid":n.componentTestid+"-create",mode:n.finishButtonMode||n.mode,onClick:t[1]||(t[1]=t=>e.$emit("finish",t))},null,8,["data-testid","mode"]))])),(0,r.createVNode)(c,{ref:"cancelModal","is-cancel-modal":a.isCancelModal,"is-form":n.isForm,onConfirmCancel:t[2]||(t[2]=e=>o.confirmCancel(e))},null,8,["is-cancel-modal","is-form"])])}const W={class:"header"},Y={class:"text-default-text"},Q={key:1},J={class:"body"},Z={key:0},ee={key:1},te={class:"footer"},ne={key:0},re={key:1};function ie(e,t,n,i,a,o){const s=(0,r.resolveComponent)("t"),l=(0,r.resolveComponent)("app-modal");return a.showModal?((0,r.openBlock)(),(0,r.createBlock)(l,{key:0,customClass:"confirm-modal",name:"cancel-modal",width:440,height:"auto",onClose:o.cancelCancel},{default:(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",W,[(0,r.createElementVNode)("h4",Y,[n.isCancelModal?((0,r.openBlock)(),(0,r.createBlock)(s,{key:0,k:"generic.cancel"})):((0,r.openBlock)(),(0,r.createElementBlock)("span",Q,(0,r.toDisplayString)(e.t("cruResource.backToForm")),1))])]),(0,r.createElementVNode)("div",J,[n.isCancelModal?((0,r.openBlock)(),(0,r.createElementBlock)("p",Z,[(0,r.createVNode)(s,{k:"cruResource.cancelBody"})])):((0,r.openBlock)(),(0,r.createElementBlock)("p",ee,[(0,r.createVNode)(s,{k:"cruResource.backBody"})]))]),(0,r.createElementVNode)("div",te,[(0,r.createElementVNode)("button",{type:"button",class:"btn role-secondary",onClick:t[0]||(t[0]=(...e)=>o.cancelCancel&&o.cancelCancel(...e))},(0,r.toDisplayString)(n.isForm?e.t("cruResource.reviewForm"):e.t("cruResource.reviewYaml")),1),(0,r.createElementVNode)("button",{type:"button",class:"btn role-primary",onClick:t[1]||(t[1]=(...e)=>o.confirmCancel&&o.confirmCancel(...e))},[n.isCancelModal?((0,r.openBlock)(),(0,r.createElementBlock)("span",ne,(0,r.toDisplayString)(e.t("cruResource.confirmCancel")),1)):((0,r.openBlock)(),(0,r.createElementBlock)("span",re,(0,r.toDisplayString)(e.t("cruResource.confirmBack")),1))])])])),_:1},8,["onClose"])):(0,r.createCommentVNode)("",!0)}var ae=n(162),oe={emits:["cancel-cancel","confirm-cancel"],components:{AppModal:ae.A},props:{isCancelModal:{type:Boolean,default:!1},isForm:{type:Boolean,default:!1}},data(){return{showModal:!1}},watch:{},methods:{show(){this.showModal=!0},cancelCancel(){this.showModal=!1,this.$emit("cancel-cancel")},confirmCancel(){this.showModal=!1,this.$emit("confirm-cancel",this.isCancelModal)}}},se=(n(93127),n(47433));const le=(0,se.A)(oe,[["render",ie],["__scopeId","data-v-72d8b215"]]);var ce=le,ue=n(14220),de={emits:["cancel-confirmed","finish"],components:{AsyncButton:K.A,ResourceCancelModal:ce},props:{mode:{type:String,default:"create"},isForm:{type:Boolean,default:!0},finishButtonMode:{type:String,default:null},confirmCancelRequired:{type:Boolean,default:!1},confirmBackRequired:{type:Boolean,default:!0},showCancel:{type:Boolean,default:!0},componentTestid:{type:String,default:"form-footer"}},data(){return{isCancelModal:!1}},computed:{...(0,H.L8)({t:"i18n/t"}),isView(){return this.mode===ue.nW}},methods:{checkCancel(e){this.isCancelModal=!!e,this.$refs.cancelModal.show()},confirmCancel(e){this.$emit("cancel-confirmed",e)}}};n(36851);const he=(0,se.A)(de,[["render",X]]);var pe=he,fe=n(8135);const me={ref:"wizard",class:"outer-container"},ge={class:"header"},ve={class:"title"},be={key:0,class:"top choice-banner"},ye={class:"title"},we={key:0,class:"round-image"},Ee={class:"subtitle"},_e={key:0},Se={key:1,class:"subtext"},ke={key:1,class:"subtitle"},xe={key:0,class:"subtext"},Ae={class:"step-sequence"},Ne=["id"],Ce=["aria-controls","aria-selected","onClick"],Te={id:"wizard-footer-controls",class:"controls-row pt-20"},Re={class:"controls-steps"},Oe=["disabled"],Ie=["disabled"];function Le(e,t,n,i,a,o){const s=(0,r.resolveComponent)("Loading"),l=(0,r.resolveComponent)("LazyImage"),c=(0,r.resolveComponent)("Banner"),u=(0,r.resolveComponent)("t"),d=(0,r.resolveComponent)("AsyncButton");return(0,r.openBlock)(),(0,r.createElementBlock)("div",me,[o.stepsLoaded?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createBlock)(s,{key:0,mode:"relative"})),(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)(["outer-container",{hide:!o.stepsLoaded}])},[(0,r.createElementVNode)("div",ge,[(0,r.createElementVNode)("div",ve,[n.showBanner?((0,r.openBlock)(),(0,r.createElementBlock)("div",be,[n.bannerImage||n.bannerTitle?(0,r.renderSlot)(e.$slots,"bannerTitle",{key:0},(()=>[(0,r.withDirectives)((0,r.createElementVNode)("div",ye,[(0,r.renderSlot)(e.$slots,"bannerTitleImage",{},(()=>[n.bannerImage?((0,r.openBlock)(),(0,r.createElementBlock)("div",we,[(0,r.createVNode)(l,{src:n.bannerImage,class:"logo"},null,8,["src"])])):(0,r.createCommentVNode)("",!0)]),!0),(0,r.createElementVNode)("div",Ee,[n.bannerTitle?((0,r.openBlock)(),(0,r.createElementBlock)("h2",_e,(0,r.toDisplayString)(n.bannerTitle),1)):(0,r.createCommentVNode)("",!0),n.bannerTitleSubtext?((0,r.openBlock)(),(0,r.createElementBlock)("span",Se,(0,r.toDisplayString)(n.bannerTitleSubtext),1)):(0,r.createCommentVNode)("",!0)])],512),[[r.vShow,n.initialTitle||o.activeStepIndex>0]])]),!0):(0,r.createCommentVNode)("",!0),a.activeStep&&o.showSteps?((0,r.openBlock)(),(0,r.createElementBlock)("div",ke,[(0,r.createElementVNode)("h2",null,(0,r.toDisplayString)(n.headerMode?e.t(`wizard.${n.headerMode}`):e.t(`asyncButton.${n.finishMode}.action`))+": "+(0,r.toDisplayString)(e.t("wizard.step",{number:o.activeStepIndex+1})),1),(0,r.renderSlot)(e.$slots,"bannerSubtext",{},(()=>[null!==a.activeStep.subtext?((0,r.openBlock)(),(0,r.createElementBlock)("span",xe,(0,r.toDisplayString)(a.activeStep.subtext||a.activeStep.label),1)):(0,r.createCommentVNode)("",!0)]),!0)])):(0,r.createCommentVNode)("",!0)])):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("div",Ae,[o.showSteps?((0,r.openBlock)(),(0,r.createElementBlock)("ul",{key:0,class:"steps",tabindex:"0",onKeyup:[t[0]||(t[0]=(0,r.withKeys)((0,r.withModifiers)((t=>e.selectNext(1)),["stop"]),["right"])),t[1]||(t[1]=(0,r.withKeys)((0,r.withModifiers)((t=>e.selectNext(-1)),["stop"]),["left"]))]},[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(o.visibleSteps,((e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:t},[(0,r.createElementVNode)("li",{id:e.name,class:(0,r.normalizeClass)({step:!0,active:e.name===a.activeStep.name,disabled:!o.isAvailable(e)}),role:"presentation"},[(0,r.createElementVNode)("span",{"aria-controls":"step"+t+1,"aria-selected":e.name===a.activeStep.name,role:"tab",class:"controls",onClick:(0,r.withModifiers)((e=>o.goToStep(t+1,!0)),["prevent"])},[(0,r.createElementVNode)("span",{class:(0,r.normalizeClass)(["icon icon-lg",{"icon-dot":e.name===a.activeStep.name,"icon-dot-open":e.name!==a.activeStep.name}])},null,2),(0,r.createElementVNode)("span",null,(0,r.toDisplayString)(e.label),1)],8,Ce)],10,Ne),t!==o.visibleSteps.length-1?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:e.name,class:"divider"})):(0,r.createCommentVNode)("",!0)],64)))),128))],32)):(0,r.createCommentVNode)("",!0)])])]),(0,r.renderSlot)(e.$slots,"stepContainer",{class:"step-container",activeStep:a.activeStep},(()=>[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(n.steps,((t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:n},[t.name===a.activeStep.name||t.hidden?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:t.name,class:(0,r.normalizeClass)(["step-container__step",{hide:t.name!==a.activeStep.name&&t.hidden}])},[(0,r.renderSlot)(e.$slots,t.name,{step:t},void 0,!0)],2)):(0,r.createCommentVNode)("",!0)],64)))),128))]),!0),(0,r.renderSlot)(e.$slots,"controlsContainer",{showPrevious:o.showPrevious,next:o.next,back:o.back,canNext:o.canNext,activeStepIndex:o.activeStepIndex,visibleSteps:o.visibleSteps,errorStrings:o.errorStrings,finish:o.finish,cancel:o.cancel,activeStep:a.activeStep},(()=>[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(o.errorStrings,((e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:t},[(0,r.createVNode)(c,{color:"error",label:e,closable:!0,class:"footer-error",onClose:e=>n.errors.splice(t,1)},null,8,["label","onClose"])])))),128)),(0,r.createElementVNode)("div",Te,[(0,r.renderSlot)(e.$slots,"cancel",{cancel:o.cancel},(()=>[(0,r.createElementVNode)("button",{type:"button",class:"btn role-secondary",onClick:t[2]||(t[2]=(...e)=>o.cancel&&o.cancel(...e))},[(0,r.createVNode)(u,{k:"generic.cancel"})])]),!0),(0,r.createElementVNode)("div",Re,[o.showPrevious?(0,r.renderSlot)(e.$slots,"back",{key:0,back:o.back},(()=>[(0,r.createElementVNode)("button",{disabled:!o.canPrevious||!n.editFirstStep&&1===o.activeStepIndex,type:"button",class:"btn role-secondary",onClick:t[3]||(t[3]=e=>o.back())},[(0,r.createVNode)(u,{k:"wizard.previous"})],8,Oe)]),!0):(0,r.createCommentVNode)("",!0),o.activeStepIndex===o.visibleSteps.length-1?(0,r.renderSlot)(e.$slots,"finish",{key:1,finish:o.finish},(()=>[(0,r.createVNode)(d,{disabled:!a.activeStep.ready,mode:n.finishMode,onClick:o.finish},null,8,["disabled","mode","onClick"])]),!0):(0,r.renderSlot)(e.$slots,"next",{key:2,next:o.next},(()=>[(0,r.createElementVNode)("button",{disabled:!o.canNext,type:"button",class:(0,r.normalizeClass)(o.nextButtonStyle),onClick:t[4]||(t[4]=e=>o.next())},[(0,r.createVNode)(u,{k:o.nextButtonLabel},null,8,["k"])],10,Ie)]),!0)])])]),!0)],2)],512)}var De=n(84409),Pe=n(48577),Me={name:"Wizard",emits:["next","cancel","finish"],components:{AsyncButton:K.A,Banner:V.l,Loading:De.A,LazyImage:Pe.A},props:{steps:{type:Array,required:!0},initStepIndex:{type:Number,default:0},editFirstStep:{type:Boolean,default:!1},showBanner:{type:Boolean,default:!0},initialTitle:{type:Boolean,default:!0},bannerTitle:{type:String,default:null},bannerImage:{type:String,default:null},bannerTitleSubtext:{type:String,default:null},headerMode:{type:String,default:null},finishMode:{type:String,default:"finish"},errors:{type:Array,default:null}},data(){return{activeStep:null}},computed:{errorStrings(){return(this.errors||[]).map((e=>(0,G.As)(e)))},activeStepIndex(){return this.visibleSteps.findIndex((e=>e.name===this.activeStep.name))},showPrevious(){if(0===this.activeStepIndex)return!1;for(let e=0;e<this.activeStepIndex;e++){const t=this.visibleSteps[e];if(!t)break;if(!t.hidden)return!0}return!1},canPrevious(){return!this.activeStep?.previousButton?.disable&&(this.activeStepIndex>1||this.editFirstStep)},canNext(){return this.activeStepIndex<this.visibleSteps.length-1&&this.activeStep.ready},readySteps(){return this.visibleSteps.filter((e=>e.ready))},showSteps(){return!1!==this.activeStep.showSteps&&this.visibleSteps.length>1},stepsLoaded(){return!this.steps.some((e=>!0===e.loading))},visibleSteps(){return this.steps.filter((e=>!e.hidden))},nextButtonStyle(){return this.activeStep.nextButton?.style||"btn role-primary"},nextButtonLabel(){return this.activeStep.nextButton?.labelKey||"wizard.next"}},watch:{stepsLoaded(e,t){!t&&e&&(this.activeStep=this.visibleSteps[this.initStepIndex],this.goToStep(this.activeStepIndex+1))},errors(){this.$nextTick((()=>{this.$refs.wizard.scrollTop=this.$refs.wizard.scrollHeight}))}},created(){this.activeStep=this.visibleSteps[this.initStepIndex],this.goToStep(this.activeStepIndex+1)},methods:{goToStep(e,t){if(e<1)return;if(!this.editFirstStep&&1===e&&t)return;const n=this.visibleSteps[e-1];n&&(this.isAvailable(n)||1===e)&&(this.activeStep=n,this.$emit("next",{step:n}))},cancel(){this.$emit("cancel")},finish(e){this.$emit("finish",e)},next(){this.goToStep(this.activeStepIndex+2)},back(){this.goToStep(this.activeStepIndex)},isAvailable(e){if(!e)return!1;const t=this.visibleSteps.findIndex((t=>t.name===e.name));if(0===t&&!this.editFirstStep)return!1;for(let n=0;n<t;n++)if(!1===this.visibleSteps[n].ready)return!1;return!0}}};n(14813);const Be=(0,se.A)(Me,[["render",Le],["__scopeId","data-v-21be6a33"]]);var Fe=Be,$e=n(4364);const Ue="show-preview-yaml";var je={name:"CruResource",emits:["select-type","error","cancel","finish"],components:{AsyncButton:K.A,Banner:V.l,CruResourceFooter:pe,ResourceYaml:j.A,Wizard:Fe},props:{doneRoute:{type:[String,Object],default:null},cancelEvent:{type:Boolean,default:!1},showCancel:{type:Boolean,default:!0},mode:{type:String,required:!0},resource:{type:[String,Object],required:!0},subtypes:{type:Array,default:()=>[]},selectedSubtype:{type:String,default:null},validationPassed:{type:Boolean,default:!0},errors:{type:Array,default:()=>[]},errorsMap:{type:Object,default:null},canYaml:{type:Boolean,default:!0},generateYaml:{type:Function,default:null},finishButtonMode:{type:String,default:null},preventEnterSubmit:{type:Boolean,default:!1},applyHooks:{type:Function,default:null},steps:{type:Array,default:()=>[]},stepsOptions:{type:Object,default:()=>({editFirstStep:!0})},finishMode:{type:String,default:"finish"},minHeight:{type:String,default:""},namespaceKey:{type:String,default:"metadata.namespace"},componentTestid:{type:String,default:"form"},description:{type:String,default:""},yamlModifiers:{type:Object,default:void 0}},data(e){const t=this.$store.getters["currentStore"](this.resource),n=this.$store.getters[`${t}/schemaFor`](this.resource.type);return{isCancelModal:!1,showAsForm:this.$route.query[ue.AS]!==ue.zD,resourceYaml:null,initialYaml:null,initialResource:(0,$.o8)(this.resource),abbrSizes:{3:"24px",4:"18px",5:"16px",6:"14px"},schema:n}},computed:{canSave(){const{validationPassed:e,showAsForm:t,steps:n}=this;return t&&n?.length?e&&this.steps.every((e=>e.ready)):!this.showAsForm||this.validationPassed},canEditYaml(){return!this.schema?.resourceMethods?.includes("blocked-PUT")},showYaml(){return this.canYaml&&(this._selectedSubtype||!this.subtypes.length)&&this.canEditYaml&&this.mode!==ue.nW},isView(){return this.mode===ue.nW},isEdit(){return this.mode===ue.G5},_selectedSubtype(){return this.selectedSubtype?this.selectedSubtype:this.$route.query[ue.UA]},showSubtypeSelection(){return!B()(this.subtypes)&&!this._selectedSubtype},...(0,H.L8)({t:"i18n/t"}),...(0,H.aH)("cru-resource",["createNamespace"]),...(0,H.i0)("cru-resource",["setCreateNamespace"]),hasErrors(){return this.errors?.length&&Array.isArray(this.errors)},mappedErrors(){return this.errors?this.errorsMap||this.errors.reduce(((e,t)=>({...e,[t]:{message:t,icon:null}})),{}):{}}},created(){this._selectedSubtype&&this.$emit("select-type",this._selectedSubtype)},mounted(){this.$store.dispatch("cru-resource/setCreateNamespace",!1)},beforeUnmount(){this.$store.dispatch("cru-resource/setCreateNamespace",!1)},methods:{stringify:G.As,confirmCancel(e=!0){e?this.emitOrRoute():this.showAsForm||(this.resourceYaml=null,this.showAsForm=!0,this.$router.applyQuery({[ue.AS]:ue.xz}))},closeError(e){const t=this.errors.filter(((t,n)=>n!==e));this.$emit("error",t,this.errors[e])},emitOrRoute(){if(this.cancelEvent)this.$emit("cancel");else{const{resource:e=this.resource.type}=this.$route.params,t=this.resource.doneOverride,n={name:this.doneRoute,params:{resource:e}};this.$router.replace(t||n)}},async createResourceYaml(e,t=this.resource){if(await(this.schema?.fetchResourceFields()),"function"===typeof this.generateYaml)return this.generateYaml.apply(this,t);{const n=this.$store.getters["currentStore"](t),r=this.$store.getters[`${n}/all`](U.yx),i=(0,$.o8)(t),a=(0,F.Yd)(r,t.type,i,e);return a}},async showPreviewYaml(){if(await(this.schema?.fetchResourceFields()),this.applyHooks)try{await this.applyHooks(fe.Fm,Ue)}catch(t){return void $e.warn("Unable to show yaml: ",t)}const e=await this.createResourceYaml(this.yamlModifiers);this.resourceYaml=e,this.showAsForm=!1,this.$router.applyQuery({[ue.AS]:ue.zD})},selectType(e,t){"A"!==t?.srcElement?.tagName&&(this.$router.applyQuery({[ue.UA]:e}),this.$emit("select-type",e))},async clickSave(e){try{await this.createNamespaceIfNeeded(),this.$emit("finish",e)}catch(t){this.$emit("error",(0,G.rz)(t.message)),e(!1)}},save(){this.$refs.save.clicked()},async createNamespaceIfNeeded(){const e=this.$store.getters["currentStore"](this.resource),t=(0,$.Jt)(this.resource,this.namespaceKey);let n=!1;if(this.createNamespace){try{n=!!await this.$store.dispatch(`${e}/find`,{type:U.CU,id:t})}catch{}if(this.createNamespace&&!n)try{const n=await this.$store.dispatch(`${e}/createNamespace`,{name:t},{root:!0});n.applyDefaults(),await n.save()}catch(r){throw this.$emit("error",(0,G.rz)(r)),new Error(`Could not create the new namespace. ${r.message}`)}}},onPressEnter(e){this.preventEnterSubmit&&e.preventDefault()},shouldProvideSlot(e){return"default"!==e&&"function"===typeof this.$slots[e]}},watch:{async showAsForm(e){e||this.initialYaml||(this.initialYaml=await this.createResourceYaml(void 0,this.initialResource))}}};n(45529);const Ve=(0,se.A)(je,[["render",P],["__scopeId","data-v-820bce44"]]);var Ke=Ve},87383:function(e,t,n){"use strict";n.d(t,{A:function(){return S}});var r=n(9274);const i={key:0},a={key:1},o={key:2,class:"text-italic"},s={key:3,class:"text-italic"};function l(e,t,n,l,c,u){const d=(0,r.resolveComponent)("CodeMirror"),h=(0,r.resolveComponent)("CopyToClipboard"),p=(0,r.resolveDirective)("t"),f=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:(0,r.normalizeClass)({"force-wrap":!0,"with-copy":n.copy})},[n.labelKey?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("h5",i,null,512)),[[p,n.labelKey]]):n.label?((0,r.openBlock)(),(0,r.createElementBlock)("h5",a,(0,r.toDisplayString)(n.label),1)):(0,r.createCommentVNode)("",!0),u.isEmpty?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("span",o,null,512)),[[p,"detailText.empty"]]):u.isBinary?((0,r.openBlock)(),(0,r.createElementBlock)("span",s,(0,r.toDisplayString)(u.body),1)):u.jsonStr?((0,r.openBlock)(),(0,r.createBlock)(d,{key:4,options:{mode:{name:"javascript",json:!0},lineNumbers:!1,foldGutter:!1,readOnly:!0},value:u.jsonStr,class:(0,r.normalizeClass)({conceal:u.concealed})},null,8,["value","class"])):(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("span",{key:5,"data-testid":"detail-top_html",class:(0,r.normalizeClass)({conceal:u.concealed,monospace:n.monospace&&!u.isBinary})},null,2)),[[f,u.bodyHtml]]),u.isBinary||u.jsonStr||!u.isLong||c.expanded?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)("a",{key:6,href:"#",onClick:t[0]||(t[0]=(0,r.withModifiers)(((...e)=>u.expand&&u.expand(...e)),["prevent"]))},(0,r.toDisplayString)(u.plusMore),1)),n.copy&&!u.isBinary?((0,r.openBlock)(),(0,r.createBlock)(h,{key:7,text:n.value,class:"role-tertiary","action-color":""},null,8,["text"])):(0,r.createCommentVNode)("",!0)],2)}var c=n(65359),u=n(92043),d=n(91462);function h(e,t,n,i,a,o){const s=(0,r.resolveComponent)("AsyncButton");return(0,r.openBlock)(),(0,r.createBlock)(s,(0,r.mergeProps)({icon:"icon-copy","show-label":n.showLabel,"action-label":"Copy","waiting-label":"Copying...","success-label":"Copied!","error-label":"Error Copying"},e.$attrs,{delay:2e3,onClick:o.clicked}),null,16,["show-label","onClick"])}var p=n(88857),f=n(48881),m={components:{AsyncButton:p.A},props:{text:{type:String,required:!0},showLabel:{type:Boolean,default:!0}},methods:{clicked(e){(0,f.e)(this.text).then((()=>{e(!0)})).catch((()=>{e(!1)}))}}},g=n(47433);const v=(0,g.A)(m,[["render",h]]);var b=v,y=n(94965),w=n(4514),E={components:{CopyToClipboard:b,CodeMirror:y.A},props:{label:{type:String,default:null},labelKey:{type:String,default:null},value:{type:String,default:null},maxLength:{type:Number,default:640},binary:{type:Boolean,default:null},conceal:{type:Boolean,default:!1},monospace:{type:Boolean,default:!0},copy:{type:Boolean,default:!0}},data(){const e=this.value.length<=this.maxLength;return{expanded:e}},computed:{isBinary(){return null===this.binary?"string"===typeof this.value&&!(0,u.XC)(this.value):this.binary},size(){return`${this.value}`.length},isLong(){return this.size>this.maxLength},isEmpty(){return 0===this.size},body(){return this.isBinary?this.t("detailText.binary",{n:this.value.length?(0,w.dQ)(this.value):0},!0):this.expanded?this.value:this.value.slice(0,this.maxLength)},jsonStr(){const e=this.value;if(e&&(e.startsWith("{")||e.startsWith("[")))try{let t=JSON.parse(e);return t=JSON.stringify(t,null,2),t}catch{}return null},bodyHtml(){return(0,u.Kn)(this.body)},plusMore(){if(this.expanded)return this.t("detailText.collapse");const e=Math.max(this.size-this.maxLength,0);return this.t("detailText.plusMore",{n:e}).trim()},hideSensitiveData(){return this.$store.getters["prefs/get"](d.qv)},concealed(){return this.conceal&&this.hideSensitiveData&&!this.isBinary},...(0,c.L8)({t:"i18n/t"})},methods:{expand(){this.expanded=!this.expanded}}};n(27539);const _=(0,g.A)(E,[["render",l],["__scopeId","data-v-348d5cf1"]]);var S=_},26962:function(e,t,n){"use strict";n.d(t,{A:function(){return c}});var r=n(9274);const i={key:0,class:"step-number mb-10"};function a(e,t,n,a,o,s){return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:(0,r.normalizeClass)([{stepped:!!n.step},"info-box"])},[n.step?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createElementVNode)("h2",null,"Step "+(0,r.toDisplayString)(n.step),1)])):(0,r.createCommentVNode)("",!0),(0,r.renderSlot)(e.$slots,"default",{},void 0,!0)],2)}var o={props:{step:{type:Number,default:null}}},s=(n(40876),n(47433));const l=(0,s.A)(o,[["render",a],["__scopeId","data-v-1c5683df"]]);var c=l},48577:function(e,t,n){"use strict";n.d(t,{A:function(){return c}});var r=n(9274);const i=["src"];function a(e,t,n,a,o,s){return(0,r.openBlock)(),(0,r.createElementBlock)("img",(0,r.mergeProps)({ref:"img",src:n.initialSrc},e.$attrs),null,16,i)}var o={props:{initialSrc:{type:String,default:n(39802)},errorSrc:{type:String,default:n(39802)},src:{type:String,default:null}},watch:{src(e,t){e!==t&&this.loadImage()}},mounted(){this.loadImage()},beforeUnmount(){const e=this.$refs.img;e&&e.removeEventListener("error",this.boundError)},methods:{loadImage(){const e=this.$refs.img;this.src&&(e.setAttribute("src",this.src),this.boundError=this.onError.bind(this),e.addEventListener("error",this.boundError))},onError(){const e=this.$refs.img;e&&e.setAttribute("src",this.errorSrc)}}},s=n(47433);const l=(0,s.A)(o,[["render",a]]);var c=l},84409:function(e,t,n){"use strict";n.d(t,{A:function(){return u}});var r=n(9274);const i={key:0,class:"loading-indicator"},a={key:1};function o(e,t,n,o,s,l){const c=(0,r.resolveComponent)("t");return n.loading?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[s.showMessage?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:0,class:(0,r.normalizeClass)(["overlay",{"overlay-content-mode":"content"===n.mode,"overlay-main-mode":"main"===n.mode}])},[(0,r.createVNode)(c,{k:"generic.loading",raw:!0})],2)):(0,r.createCommentVNode)("",!0)])):((0,r.openBlock)(),(0,r.createElementBlock)("div",a,[(0,r.renderSlot)(e.$slots,"default",{},void 0,!0)]))}var s={props:{loading:{type:Boolean,default:!0},mode:{type:String,default:"content"},noDelay:{type:Boolean,default:!1}},data(){return{timer:null,showMessage:this.noDelay}},mounted(){this.timer=setTimeout((()=>{this.showMessage=!0}),250)},beforeUnmount(){clearTimeout(this.timer)}},l=(n(54851),n(47433));const c=(0,l.A)(s,[["render",o],["__scopeId","data-v-1d9696d1"]]);var u=c},40973:function(e,t,n){"use strict";n.d(t,{A:function(){return f}});var r=n(9274);const i={class:"text-default-text"},a={class:"footer"};function o(e,t,n,o,s,l){const c=(0,r.resolveComponent)("Banner"),u=(0,r.resolveComponent)("AsyncButton"),d=(0,r.resolveComponent)("Card"),h=(0,r.resolveComponent)("app-modal");return(0,r.openBlock)(),(0,r.createBlock)(h,(0,r.mergeProps)({name:n.name,width:n.width,"click-to-close":!1,height:n.height},e.$attrs,{class:"modal","data-testid":"mvc__card",onClose:t[2]||(t[2]=t=>e.$emit("finish",t))}),{default:(0,r.withCtx)((()=>[(0,r.createVNode)(d,{class:"modal","show-highlight-border":!1},{title:(0,r.withCtx)((()=>[(0,r.createElementVNode)("h4",i,[(0,r.renderSlot)(e.$slots,"title",{},void 0,!0)])])),body:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"content",{},void 0,!0),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(n.errors,((e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:t},[(0,r.createVNode)(c,{class:"banner",color:"error",label:e},null,8,["label"])])))),128))])),actions:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"footer",{},(()=>[(0,r.createElementVNode)("div",a,[(0,r.createElementVNode)("button",{class:"btn role-secondary mr-20",onClick:t[0]||(t[0]=(0,r.withModifiers)(((...e)=>l.hide&&l.hide(...e)),["prevent"]))},(0,r.toDisplayString)(n.closeText),1),(0,r.createVNode)(u,{mode:n.saveText,onClick:t[1]||(t[1]=t=>e.$emit("finish",t))},null,8,["mode"])])]),!0)])),_:3})])),_:3},16,["name","width","height"])}var s=n(37785),l=n(9980),c=n(88857),u=n(162),d={name:"ModalWithCard",emits:["close","finish"],components:{Card:s.Z,Banner:l.l,AsyncButton:c.A,AppModal:u.A},props:{name:{type:String,required:!0},closeText:{type:String,default:"Close"},saveText:{type:String,default:"create"},width:{type:[String,Number],default:"50%"},height:{type:[String,Number],default:"auto"},errors:{type:Array,default:()=>[]}},methods:{hide(){this.$emit("close")}}},h=(n(76238),n(53456),n(47433));const p=(0,h.A)(d,[["render",o],["__scopeId","data-v-0430f766"]]);var f=p},66656:function(e,t,n){"use strict";n.d(t,{A:function(){return x}});var r=n(9274);const i={class:"with-subheader"},a={class:"title"},o={class:"m-0"},s={class:"sub-header"},l={class:"actions-container"},c={class:"actions"};function u(e,t,n,u,d,h){const p=(0,r.resolveComponent)("TypeDescription"),f=(0,r.resolveComponent)("TabTitle"),m=(0,r.resolveComponent)("Favorite"),g=(0,r.resolveComponent)("ResourceLoadingIndicator"),v=(0,r.resolveComponent)("router-link");return(0,r.openBlock)(),(0,r.createElementBlock)("header",i,[(0,r.renderSlot)(e.$slots,"typeDescription",{},(()=>[(0,r.createVNode)(p,{resource:n.resource},null,8,["resource"])]),!0),(0,r.createElementVNode)("div",a,[(0,r.createElementVNode)("h1",o,[(0,r.createVNode)(f,null,{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(h._typeDisplay),1)])),_:1}),t[0]||(t[0]=(0,r.createTextVNode)()),e.isExplorer?((0,r.openBlock)(),(0,r.createBlock)(m,{key:0,resource:n.favoriteResource||n.resource},null,8,["resource"])):(0,r.createCommentVNode)("",!0)]),n.showIncrementalLoadingIndicator?((0,r.openBlock)(),(0,r.createBlock)(g,{key:0,resources:n.loadResources,indeterminate:n.loadIndeterminate},null,8,["resources","indeterminate"])):(0,r.createCommentVNode)("",!0)]),(0,r.createElementVNode)("div",s,[(0,r.renderSlot)(e.$slots,"subHeader",{},void 0,!0)]),(0,r.createElementVNode)("div",l,[(0,r.renderSlot)(e.$slots,"actions",{},(()=>[(0,r.createElementVNode)("div",c,[(0,r.renderSlot)(e.$slots,"extraActions",{},void 0,!0),(0,r.renderSlot)(e.$slots,"createButton",{},(()=>[d.hasEditComponent&&h._isCreatable?((0,r.openBlock)(),(0,r.createBlock)(v,{key:0,to:h._createLocation,class:"btn role-primary","data-testid":n.componentTestid+"-create"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(h._createButtonlabel),1)])),_:1},8,["to","data-testid"])):h._isYamlCreatable?((0,r.openBlock)(),(0,r.createBlock)(v,{key:1,to:h._yamlCreateLocation,class:"btn role-primary","data-testid":n.componentTestid+"-create-yaml"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("resourceList.head.createFromYaml")),1)])),_:1},8,["to","data-testid"])):(0,r.createCommentVNode)("",!0)]),!0)])]),!0)])])}var d=n(65359);const h=["aria-checked"];function p(e,t,n,i,a,o){return(0,r.openBlock)(),(0,r.createElementBlock)("i",{tabindex:0,"aria-checked":!!o.isFavorite,class:(0,r.normalizeClass)(["favorite icon",{"icon-star-open":!o.isFavorite,"icon-star":o.isFavorite}]),"aria-role":"button",onClick:t[0]||(t[0]=(0,r.withModifiers)(((...e)=>o.toggle&&o.toggle(...e)),["stop","prevent"])),onKeydown:[t[1]||(t[1]=(0,r.withKeys)((0,r.withModifiers)(((...e)=>o.toggle&&o.toggle(...e)),["prevent"]),["enter"])),t[2]||(t[2]=(0,r.withKeys)((0,r.withModifiers)(((...e)=>o.toggle&&o.toggle(...e)),["prevent"]),["space"]))]},null,42,h)}var f={props:{resource:{type:String,required:!0}},computed:{isFavorite(){return this.$store.getters["type-map/isFavorite"](this.resource)}},methods:{toggle(){this.isFavorite?this.$store.dispatch("type-map/removeFavorite",this.resource):this.$store.dispatch("type-map/addFavorite",this.resource)}}},m=(n(94246),n(47433));const g=(0,m.A)(f,[["render",p],["__scopeId","data-v-f74a378a"]]);var v=g,b=n(89559),y=n(76978),w=n(14220),E=n(44453),_=n(22896),S={name:"MastheadResourceList",components:{Favorite:v,TypeDescription:b.A,ResourceLoadingIndicator:E.A,TabTitle:_.A},props:{resource:{type:String,required:!0},favoriteResource:{type:String,default:null},schema:{type:Object,default:null},typeDisplay:{type:String,default:null},isCreatable:{type:Boolean,default:null},isYamlCreatable:{type:Boolean,default:null},createLocation:{type:Object,default:null},yamlCreateLocation:{type:Object,default:null},createButtonLabel:{type:String,default:null},loadResources:{type:Array,default:()=>[]},loadIndeterminate:{type:Boolean,default:!1},showIncrementalLoadingIndicator:{type:Boolean,default:!1},componentTestid:{type:String,default:"masthead"}},data(){const e={...this.$route.params},t={name:`${this.$route.name}-create`,params:e},n=this.$store.getters["type-map/hasCustomEdit"](this.resource),r={name:`${this.$route.name}-create`,params:e,query:{[w.AS]:w.zD}};return{formRoute:t,yamlRoute:r,hasEditComponent:n}},computed:{get:y.Jt,...(0,d.L8)(["isExplorer","currentCluster"]),resourceName(){return this.schema?this.$store.getters["type-map/labelFor"](this.schema):this.resource},_typeDisplay(){return null!==this.typeDisplay?this.typeDisplay:this.schema?this.$store.getters["type-map/labelFor"](this.schema,99):"?"},_isYamlCreatable(){return null!==this.isYamlCreatable?this.isYamlCreatable:this.schema&&this._isCreatable&&this.$store.getters["type-map/optionsFor"](this.resource).canYaml},_isCreatable(){return null!==this.isCreatable?this.isCreatable:!(this.schema&&!this.schema?.collectionMethods.find((e=>["blocked-post","post"].includes(e.toLowerCase()))))&&this.$store.getters["type-map/optionsFor"](this.resource).isCreatable},_createLocation(){return this.createLocation||this.formRoute},_yamlCreateLocation(){return this.yamlCreateLocation||this.yamlRoute},_createButtonlabel(){return this.createButtonLabel||this.t("resourceList.head.create")}}};n(93463);const k=(0,m.A)(S,[["render",u],["__scopeId","data-v-577fc9fa"]]);var x=k},44453:function(e,t,n){"use strict";n.d(t,{A:function(){return g}});var r=n(9274);const i={key:0,class:"ml-10 resource-loading-indicator"},a={class:"inner"},o={class:"resource-loader"},s={class:"rl-bg"},l={key:0},c={class:"rl-fg"},u={key:0};function d(e,t,n,d,h,p){return p.count&&!p.haveAll?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createElementVNode)("div",a,[(0,r.createElementVNode)("div",o,[(0,r.createElementVNode)("div",s,[t[0]||(t[0]=(0,r.createElementVNode)("i",{class:"icon icon-spinner icon-spin"},null,-1)),(0,r.createElementVNode)("span",null,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("resourceLoadingIndicator.loading"))+" ",1),n.indeterminate?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)("span",l,(0,r.toDisplayString)(p.count)+" / "+(0,r.toDisplayString)(p.total),1))])])]),(0,r.createElementVNode)("div",{class:"resource-loader",style:(0,r.normalizeStyle)({width:p.width})},[(0,r.createElementVNode)("div",c,[t[1]||(t[1]=(0,r.createElementVNode)("i",{class:"icon icon-spinner icon-spin"},null,-1)),(0,r.createElementVNode)("span",null,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("resourceLoadingIndicator.loading"))+" ",1),n.indeterminate?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)("span",u,(0,r.toDisplayString)(p.count)+" / "+(0,r.toDisplayString)(p.total),1))])])],4)])])):(0,r.createCommentVNode)("",!0)}var h=n(35664),p={name:"ResourceLoadingIndicator",props:{resources:{type:Array,required:!0},indeterminate:{type:Boolean,default:!1}},data(){const e=this.$store.getters["currentStore"](this.resource);return{inStore:e}},computed:{rowsCount(){if(this.resources.length>0){const e=this.$store.getters[`${this.inStore}/all`](this.resources[0])||[];return(e||[]).length}return 0},haveAll(){return this.resources.reduce(((e,t)=>e&&this.$store.getters[`${this.inStore}/haveAll`](t)),!0)},total(){const e=this.$store.getters[`${this.inStore}/all`](h.i2);return this.resources.reduce(((t,n)=>{const r=e?.[0]?.counts?.[n],i=r?.summary?.count,a=i||0;return t+a}),0)},count(){return this.resources.reduce(((e,t)=>e+(this.$store.getters[`${this.inStore}/all`](t)||[]).length),0)},width(){const e=Math.ceil(this.count/this.total*100);return`${e}%`}}},f=(n(97876),n(47433));const m=(0,f.A)(p,[["render",d],["__scopeId","data-v-6457c305"]]);var g=m},53500:function(e,t,n){"use strict";n.d(t,{A:function(){return w},S:function(){return g}});var r=n(9274);const i={class:"group-tab"};function a(e,t,n,a,o,s){const l=(0,r.resolveComponent)("ButtonGroup"),c=(0,r.resolveComponent)("SortableTable"),u=(0,r.resolveDirective)("clean-html"),d=(0,r.resolveDirective)("shortkey");return(0,r.openBlock)(),(0,r.createBlock)(c,(0,r.mergeProps)({ref:"table"},e.$attrs,{headers:s._headers,rows:s.filteredRows,loading:n.loading,"alt-loading":n.altLoading,"group-by":s.computedGroupBy,group:s.group,"group-options":s.groupOptions,search:n.search,paging:!0,"paging-params":s.parsedPagingParams,"paging-label":n.pagingLabel,"rows-per-page":n.rowsPerPage,"row-actions":n.rowActions,"table-actions":s._showBulkActions,"overflow-x":n.overflowX,"overflow-y":n.overflowY,"get-custom-detail-link":n.getCustomDetailLink,"has-advanced-filtering":n.hasAdvancedFiltering,"adv-filter-hide-labels-as-cols":n.advFilterHideLabelsAsCols,"adv-filter-prevent-filtering-labels":n.advFilterPreventFilteringLabels,"key-field":n.keyField,sortGeneration:o.sortGeneration,"sort-generation-fn":s.safeSortGenerationFn,"use-query-params-for-simple-filtering":n.useQueryParamsForSimpleFiltering,"force-update-live-and-delayed":n.forceUpdateLiveAndDelayed,"external-pagination-enabled":n.externalPaginationEnabled,"external-pagination-result":n.externalPaginationResult,"mandatory-sort":s._mandatorySort,onClickedActionButton:s.handleActionButtonClick,onGroupValueChange:t[5]||(t[5]=e=>s.group=e)}),(0,r.createSlots)({"group-by":(0,r.withCtx)((({group:e})=>[(0,r.withDirectives)((0,r.createElementVNode)("div",i,null,512),[[u,e.ref]])])),shortkeys:(0,r.withCtx)((()=>[(0,r.withDirectives)((0,r.createElementVNode)("button",{class:"hide",onShortkey:t[1]||(t[1]=e=>s.keyAction("edit"))},null,544),[[d,["e"],void 0,{once:!0}]]),(0,r.withDirectives)((0,r.createElementVNode)("button",{class:"hide",onShortkey:t[2]||(t[2]=e=>s.keyAction("yaml"))},null,544),[[d,["y"],void 0,{once:!0}]]),s._showBulkActions?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,class:"hide",onShortkey:t[3]||(t[3]=e=>s.keyAction("remove"))},null,544)),[[d,["del"],void 0,{once:!0}]]):(0,r.createCommentVNode)("",!0),s._showBulkActions?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:1,class:"hide",onShortkey:t[4]||(t[4]=e=>s.keyAction("remove"))},null,544)),[[d,["backspace"],void 0,{once:!0}]]):(0,r.createCommentVNode)("",!0)])),_:2},[s.showGrouping?{name:"header-middle",fn:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"more-header-middle"),(0,r.createVNode)(l,{value:s.group,"onUpdate:value":t[0]||(t[0]=e=>s.group=e),options:s.groupOptions},null,8,["value","options"])])),key:"0"}:void 0,s.showGrouping?{name:"header-right",fn:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"header-right")])),key:"1"}:void 0,(0,r.renderList)(e.$slots,((t,n)=>({name:n,fn:(0,r.withCtx)((t=>[(0,r.renderSlot)(e.$slots,n,(0,r.normalizeProps)((0,r.guardReactiveProps)(t)))]))})))]),1040,["headers","rows","loading","alt-loading","group-by","group","group-options","search","paging-params","paging-label","rows-per-page","row-actions","table-actions","overflow-x","overflow-y","get-custom-detail-link","has-advanced-filtering","adv-filter-hide-labels-as-cols","adv-filter-prevent-filtering-labels","key-field","sortGeneration","sort-generation-fn","use-query-params-for-simple-filtering","force-update-live-and-delayed","external-pagination-enabled","external-pagination-result","mandatory-sort","onClickedActionButton"])}var o=n(65359),s=n(76978),l=n(91462),c=n(21762),u=n(81345),d=n(68774),h=n(68851),p=n(31915),f=n(25659);const m="namespace",g=(e,t)=>{if(!e)return null;const n=e.id;let r=n;const i=t.getters["currentStore"](n),a=t.getters[`${i}/currentGeneration`]?.(n);a&&(r+=`/${a}`);const o=t.getters["activeNamespaceCacheKey"];return o?`${r}/${o}`:r};var v={name:"ResourceTable",emits:["clickedActionButton"],components:{ButtonGroup:c.A,SortableTable:u.A},props:{schema:{type:Object,default:null},rows:{type:Array,required:!0},loading:{type:Boolean,required:!1},altLoading:{type:Boolean,required:!1},keyField:{type:String,default:"_key"},headers:{type:Array,default:null},groupBy:{type:String,default:null},namespaced:{type:Boolean,default:null},search:{type:Boolean,default:!0},tableActions:{type:[Boolean,null],default:null},pagingLabel:{type:String,default:"sortableTable.paging.resource"},pagingParams:{type:Object,default:null},rowActions:{type:Boolean,default:!0},groupable:{type:Boolean,default:null},groupTooltip:{type:String,default:"resourceTable.groupBy.namespace"},overflowX:{type:Boolean,default:!1},overflowY:{type:Boolean,default:!1},sortGenerationFn:{type:Function,default:null},getCustomDetailLink:{type:Function,default:null},ignoreFilter:{type:Boolean,default:!1},hasAdvancedFiltering:{type:Boolean,default:!1},advFilterHideLabelsAsCols:{type:Boolean,default:!1},advFilterPreventFilteringLabels:{type:Boolean,default:!1},useQueryParamsForSimpleFiltering:{type:Boolean,default:!1},forceUpdateLiveAndDelayed:{type:Number,default:0},externalPaginationEnabled:{type:Boolean,default:!1},externalPaginationResult:{type:Object,default:null},rowsPerPage:{type:Number,default:null}},mounted(){window.addEventListener("keyup",this.handleEnterKeyPress)},beforeUnmount(){window.removeEventListener("keyup",this.handleEnterKeyPress)},data(){const e=this.schema?.id?this.$store.getters["currentStore"](this.schema.id):void 0;return{inStore:e,sortGeneration:void 0}},watch:{filteredRows:{handler(){this.currentProduct.showWorkspaceSwitcher&&(this.sortGeneration=this.safeSortGenerationFn(this.schema,this.$store))},immediate:!0}},computed:{options(){return this.$store.getters["type-map/optionsFor"](this.schema,this.externalPaginationEnabled)},_listGroupMapped(){return this.options?.listGroups?.reduce(((e,t)=>(e[t.value]=t,e)),{})},_mandatorySort(){return this.options?.listMandatorySort},...(0,o.L8)(["currentProduct"]),isNamespaced(){return null!==this.namespaced?this.namespaced:!!(0,s.Jt)(this.schema,"attributes.namespaced")},showNamespaceColumn(){const e="namespace"===this.group,t=!this.showGrouping||!e;return t},_showBulkActions(){if(null!==this.tableActions)return this.tableActions;if(this.schema){const e=this.$store.getters["type-map/hideBulkActionsFor"](this.schema);return!e}return!1},_headers(){let e;const t=this.showNamespaceColumn;if(e=this.headers?this.headers.slice():this.$store.getters["type-map/headersFor"](this.schema,this.externalPaginationEnabled),this.$store.$plugin?.getUIConfig){const t=(0,f.A)(this,p.c7.TABLE_COL,p.W3.RESOURCE,this.$route);let n=e.length;if(e.length>0){const t=e.findIndex((e=>e.name===d.K.name));if(t>=0)n=t;else{const t=e.findIndex((e=>(!e.label||!e.label?.trim())&&(!e.labelKey||!e.labelKey?.trim())));t>=0&&(n=t)}}t.forEach((t=>{!t.value&&t.getValue&&(t.value=t.getValue),e.splice(n,0,t)}))}if(!t){const t=e.findIndex((e=>e.name===d.CU.name));t>=0&&e.splice(t,1)}const n=this._listGroupMapped?.[this.group];if(n?.hideColumn){const t=e.findIndex((e=>e.name===n.hideColumn));t>=0&&e.splice(t,1)}return e},filteredRows(){const e=this.$store.getters["isAllNamespaces"];if(!this.isNamespaced||this.ignoreFilter||this.externalPaginationEnabled||e&&!this.currentProduct?.hideSystemResources||this.inStore&&this.$store.getters[`${this.inStore}/haveNamespace`](this.schema.id)?.length)return this.rows||[];const t=this.$store.getters["namespaces"]();if(!this.rows)return[];const n=this.$store.getters["haveAllNamespace"];return this.rows.filter((e=>this.currentProduct?.hideSystemResources&&this.isNamespaced?!!t[e.metadata.namespace]&&!e.isSystemResource:!this.isNamespaced||(!!n||!!t[e.metadata.namespace])))},_group:(0,l.AN)(l.EI),group:{get(){const e=this.groupOptions.find((e=>e.value===this._group));return e?this._group:this.groupOptions.find((e=>e.value===m))?m:this.groupOptions[0]?.value||m},set(e){this._group=e}},showGrouping(){if(null===this.groupable){const e=this.$store.getters["isMultipleNamespaces"]&&this.isNamespaced,t=!!this.options?.listGroups?.length;return e||t}return this.groupable||!1},computedGroupBy(){if(!this.showGrouping)return null;if(this.groupBy)return this.groupBy;if("namespace"===this.group)return"groupByLabel";const e=this._listGroupMapped?.[this.group];return e?.field?e.field:null},groupOptions(){if(this.options?.listGroupsWillOverride&&this.options?.listGroups?.length)return this.options?.listGroups;const e=[{tooltipKey:"resourceTable.groupBy.none",icon:"icon-list-flat",value:"none"}];return this.options?.hiddenNamespaceGroupButton||e.push({tooltipKey:this.groupTooltip,icon:"icon-folder",value:"namespace"}),this.options?.listGroups?.length?e.concat(this.options.listGroups):e},parsedPagingParams(){return this.pagingParams?this.pagingParams:this.schema?{singularLabel:this.$store.getters["type-map/labelFor"](this.schema),pluralLabel:this.$store.getters["type-map/labelFor"](this.schema,99)}:{singularLabel:"",pluralLabel:""}}},methods:{keyAction(e){const t=this.$refs.table;if(!t)return;const n=t.selectedRows;if("remove"!==e){if(1===n.length)switch(e){case"detail":n[0].goToDetail();break;case"edit":n[0].goToEdit();break;case"yaml":n[0].goToViewYaml();break}}else{const e=(0,h.jq)(t.availableActions,"action","promptRemove");e&&(t.setBulkActionOfInterest(e),t.applyTableAction(e))}},clearSelection(){this.$refs.table.clearSelection()},safeSortGenerationFn(){return this.sortGenerationFn?this.sortGenerationFn(this.schema,this.$store):g(this.schema,this.$store)},handleActionButtonClick(e){this.$emit("clickedActionButton",e)},handleEnterKeyPress(e){"Enter"===e.key&&this.keyAction("detail")}}},b=n(47433);const y=(0,b.A)(v,[["render",a]]);var w=y},63354:function(e,t,n){"use strict";n.d(t,{A:function(){return E}});var r=n(9274);const i={class:"root resource-yaml flex-content"},a=["disabled"];function o(e,t,n,o,s,l){const c=(0,r.resolveComponent)("YamlEditor"),u=(0,r.resolveComponent)("FileSelector"),d=(0,r.resolveComponent)("t"),h=(0,r.resolveComponent)("Footer");return(0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createVNode)(c,{ref:"yamleditor",value:s.currentYaml,"onUpdate:value":t[0]||(t[0]=e=>s.currentYaml=e),"initial-yaml-values":s.initialYaml,class:"yaml-editor flex-content","editor-mode":l.editorMode,onOnReady:l.onReady},null,8,["value","initial-yaml-values","editor-mode","onOnReady"]),(0,r.renderSlot)(e.$slots,"yamlFooter",{currentYaml:s.currentYaml,showPreview:s.showPreview,yamlPreview:l.preview,yamlSave:l.save,yamlUnpreview:l.unpreview,canDiff:l.canDiff},(()=>[n.showFooter?((0,r.openBlock)(),(0,r.createBlock)(h,{key:0,class:(0,r.normalizeClass)(["footer",{edit:!l.isView}]),mode:n.mode,errors:s.errors,onSave:l.save,onDone:l.done},(0,r.createSlots)({_:2},[l.isView?void 0:{name:"left",fn:(0,r.withCtx)((()=>[(0,r.createVNode)(u,{class:"btn role-secondary",label:e.t("generic.readFromFile"),onSelected:l.onFileSelected},null,8,["label","onSelected"])])),key:"0"},l.isView?void 0:{name:"middle",fn:(0,r.withCtx)((()=>[s.showPreview?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,type:"button",class:"btn role-secondary",onClick:t[1]||(t[1]=(...e)=>l.unpreview&&l.unpreview(...e))},[(0,r.createVNode)(d,{k:"resourceYaml.buttons.continue"})])):n.offerPreview?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:1,disabled:!l.canDiff,type:"button",class:"btn role-secondary",onClick:t[2]||(t[2]=(...e)=>l.preview&&l.preview(...e))},[(0,r.createVNode)(d,{k:"resourceYaml.buttons.diff"})],8,a)):(0,r.createCommentVNode)("",!0)])),key:"1"}]),1032,["class","mode","errors","onSave","onDone"])):(0,r.createCommentVNode)("",!0)]),!0)])}var s=n(20246),l=n.n(s),c=n(36143),u=n(29649),d=n(89210),h=n(2841),p=n(92043),f=n(74302),m=n(14220),g=n(8135),v=n(99726),b={emits:["error"],components:{Footer:d.A,FileSelector:u.A,YamlEditor:c.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},initialYamlForDiff:{type:String,default:null},yaml:{type:String,required:!0},doneRoute:{type:[String,Object],default:null},offerPreview:{type:Boolean,default:!0},parentParams:{type:Object,default:null},doneOverride:{type:[Function,Object],default:null},showFooter:{type:Boolean,default:!0},applyHooks:{type:Function,default:null}},data(){return this.$router.applyQuery({[m.$y]:m.xz}),{initialYaml:this.initialYamlForDiff||this.yaml,currentYaml:this.yaml,showPreview:!1,errors:null,cm:null,initialReady:!0}},computed:{schema(){const e=this.$store.getters["currentStore"](this.value.type);return this.$store.getters[`${e}/schemaFor`](this.value.type)},isCreate(){return this.mode===m.YQ},isView(){return this.mode===m.nW},isEdit(){return this.mode===m.G5},editorMode(){return this.$route.query.mode===m.nW||this.isView&&(this.$route.query.mode!==m.G5||this.$route.query.mode!==m.nW)?c.j.VIEW_CODE:this.showPreview?c.j.DIFF_CODE:c.j.EDIT_CODE},canDiff(){return this.initialYaml!==this.currentYaml}},watch:{yaml(e){this.mode===m.nW&&(this.currentYaml=e)},mode(e,t){e===m.YQ&&t===m.nW&&(this.currentYaml=this.value.cleanYaml(this.yaml,e))}},methods:{onInput(e){this.currentYaml=e,this.onReady(this.cm)},onReady(e){if(!this.initialReady)return;this.initialReady=!1,this.cm=e,this.isEdit&&e.foldLinesMatching(/^status:\s*$/);try{const t=l().load(this.currentYaml),n=Object.keys(t?.metadata?.annotations||{}),r=h.VT.map((e=>(0,p.OF)(e)));let i=!1;for(const e of n){if(i)break;for(const t of r)if(e.match(t)){i=!0;break}}i&&e.foldLinesMatching(/^\s+annotations:\s*$/)}catch(n){}e.foldLinesMatching(/managedFields/),this.value?.yamlFolding&&this.value.yamlFolding.forEach((t=>e.foldYaml(t)));const t=e.getMode().fold;e.getMode().fold="yamlcomments",e.execCommand("foldAll"),e.getMode().fold=t},updateValue(e){this.$refs.yamleditor.updateValue(e)},preview(){this.updateValue(this.currentYaml),this.showPreview=!0,this.$router.applyQuery({[m.$y]:m.Qp})},unpreview(){this.showPreview=!1,this.$router.applyQuery({[m.$y]:m.xz})},async save(e){const t=this.value.yamlForSave(this.currentYaml)||this.currentYaml;try{this.applyHooks&&await this.applyHooks(g.Fm);try{await this.value.saveYaml(t)}catch(r){return n.call(this,r)}this.applyHooks&&await this.applyHooks(g.Mz),e(!0),this.done()}catch(r){return n.call(this,r)}function n(t){if(t&&t.response&&t.response.data){const e=t.response.data;e&&e.message?this.errors=[e.message]:this.errors=[t]}else this.errors=[t];e(!1),this.$emit("error",(0,v.rz)(t))}},done(){if(this.doneOverride)return"function"===typeof this.doneOverride?this.doneOverride():this.$router.replace(this.doneOverride);this.doneRoute&&("object"!==(0,f.QP)(this.doneRoute)?this.$router.replace({name:this.doneRoute,params:{resource:this.value.type}}):this.$router.replace(this.doneRoute))},onFileSelected(e){const t=this.$refs.yamleditor;t&&t.updateValue(e)}}},y=(n(35200),n(46130),n(47433));const w=(0,y.A)(b,[["render",o],["__scopeId","data-v-49797251"]]);var E=w},87211:function(e,t,n){"use strict";n.d(t,{A:function(){return p}});var r=n(9274);const i={key:0,class:"simple-box","data-testid":"simple-box-container"},a={key:0,class:"top"},o={key:0,"data-testid":"simple-box-title"},s={class:"content"};function l(e,t,n,l,c,u){return e.shown?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[n.title||n.canClose||e.$slots.title?((0,r.openBlock)(),(0,r.createElementBlock)("div",a,[(0,r.renderSlot)(e.$slots,"title",{},(()=>[n.title?((0,r.openBlock)(),(0,r.createElementBlock)("h2",o,(0,r.toDisplayString)(n.title),1)):(0,r.createCommentVNode)("",!0)]),!0),n.canClose||e.pref?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:0,class:"close-button","data-testid":"simple-box-close",onClick:t[0]||(t[0]=e=>u.closeBox(e))},t[1]||(t[1]=[(0,r.createElementVNode)("i",{class:"icon icon-close"},null,-1)]))):(0,r.createCommentVNode)("",!0)])):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("div",s,[(0,r.renderSlot)(e.$slots,"default",{},void 0,!0)])])):(0,r.createCommentVNode)("",!0)}var c=n(55277),u={name:"SimpleBox",emits:["close"],mixins:[c.A],props:{title:{type:String,default:null},canClose:{type:Boolean,default:!1}},methods:{closeBox(e){this.hide(),this.$emit("close",e)}}},d=(n(2578),n(87968),n(47433));const h=(0,d.A)(u,[["render",l],["__scopeId","data-v-48821e48"]]);var p=h},81345:function(e,t,n){"use strict";n.d(t,{A:function(){return bt}});var r=n(9274);const i=["data-testid"],a=["id","disabled","data-testid","onClick","onMouseover"],o=["disabled"],s={class:"list-unstyled menu"},l=["onClick","onMouseover"],c={key:0,class:"middle"},u={key:1,class:"search row","data-testid":"search-box-filter-row"},d={key:0,class:"advanced-filters-applied"},h={class:"label"},p=["onClick"],f={key:2,ref:"advanced-filter-group",class:"advanced-filter-group"},m={class:"advanced-filter-container"},g=["placeholder"],v={class:"middle-block"},b={class:"bottom-block"},y=["disabled"],w=["aria-label","placeholder"],E={key:1},_={key:2},S=["colspan"],k={class:"data-loading"},x={key:3},A={class:"no-rows"},N=["colspan"],C={key:4},T={class:"no-results"},R=["colspan"],O={class:"group-row"},I=["colspan"],L={class:"group-tab"},D=["data-testid","data-node-id","data-cant-run-bulk-action-of-interest"],P={key:0,class:"row-check",align:"middle"},M={key:1,class:"row-expand",align:"middle"},B=["onClick"],F=["data-title","data-testid","align","width"],$={key:4,class:"text-muted"},U={key:2,align:"middle"},j=["data-testid"],V={key:0,class:"row-check",align:"middle"},K=["colspan"],H={key:0,class:"paging"},G=["disabled"],z=["disabled"],q=["disabled"],X=["disabled"];function W(e,t,n,W,Y,Q){const J=(0,r.resolveComponent)("ActionDropdown"),Z=(0,r.resolveComponent)("AsyncButton"),ee=(0,r.resolveComponent)("LabeledSelect"),te=(0,r.resolveComponent)("THead"),ne=(0,r.resolveComponent)("t"),re=(0,r.resolveComponent)("Checkbox"),ie=(0,r.resolveComponent)("ButtonMultiAction"),ae=(0,r.resolveDirective)("clean-html"),oe=(0,r.resolveDirective)("clean-tooltip"),se=(0,r.resolveDirective)("close-popper"),le=(0,r.resolveDirective)("trim-whitespace"),ce=(0,r.resolveDirective)("shortkey");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{ref:"container","data-testid":n.componentTestid+"-list-container"},[(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)([{titled:e.$slots.title&&e.$slots.title.length},"sortable-table-header"])},[(0,r.renderSlot)(e.$slots,"title",{},void 0,!0),Q.showHeaderRow?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:0,class:(0,r.normalizeClass)(["fixed-header-actions",{button:!!e.$slots["header-button"],"advanced-filtering":e.hasAdvancedFiltering}])},[(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)([e.bulkActionsClass,"bulk"])},[(0,r.renderSlot)(e.$slots,"header-left",{},(()=>[n.tableActions?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.availableActions,(i=>(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("button",{id:i.action,key:i.action,type:"button",class:(0,r.normalizeClass)(["btn role-primary",{[e.bulkActionClass]:!0}]),disabled:!i.enabled,"data-testid":n.componentTestid+"-"+i.action,onClick:t=>e.applyTableAction(i,null,t),onMouseover:e=>Q.setBulkActionOfInterest(i),onMouseleave:t[0]||(t[0]=e=>Q.setBulkActionOfInterest(null))},[i.icon?((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:0,class:(0,r.normalizeClass)(i.icon)},null,2)):(0,r.createCommentVNode)("",!0),(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[ae,i.label]])],42,a)),[[oe,e.actionTooltip]]))),128)),(0,r.createVNode)(J,{class:(0,r.normalizeClass)([e.bulkActionsDropdownClass,"bulk-actions-dropdown"]),"disable-button":!e.selectedRows.length,size:"sm"},{"button-content":(0,r.withCtx)((()=>[(0,r.createElementVNode)("button",{ref:"actionDropDown",class:"btn bg-primary mr-0",disabled:!e.selectedRows.length},[t[21]||(t[21]=(0,r.createElementVNode)("i",{class:"icon icon-gear"},null,-1)),(0,r.createElementVNode)("span",null,(0,r.toDisplayString)(e.t("sortableTable.bulkActions.collapsed.label")),1),t[22]||(t[22]=(0,r.createElementVNode)("i",{class:"ml-10 icon icon-chevron-down"},null,-1))],8,o)])),"popover-content":(0,r.withCtx)((()=>[(0,r.createElementVNode)("ul",s,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.hiddenActions,((n,i)=>(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("li",{key:i,class:(0,r.normalizeClass)({disabled:!n.enabled}),onClick:t=>e.applyTableAction(n,null,t),onMouseover:e=>Q.setBulkActionOfInterest(n),onMouseleave:t[1]||(t[1]=e=>Q.setBulkActionOfInterest(null))},[n.icon?((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:0,class:(0,r.normalizeClass)(n.icon)},null,2)):(0,r.createCommentVNode)("",!0),(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[ae,n.label]])],42,l)),[[se],[oe,{content:e.actionTooltip,placement:"right"}]]))),128))])])),_:1},8,["class","disable-button"]),e.selectedRowsText?((0,r.openBlock)(),(0,r.createElementBlock)("label",{key:0,class:(0,r.normalizeClass)([e.bulkActionAvailabilityClass,"action-availability"])},(0,r.toDisplayString)(e.selectedRowsText),3)):(0,r.createCommentVNode)("",!0)],64)):(0,r.createCommentVNode)("",!0)]),!0)],2),!e.hasAdvancedFiltering&&e.$slots["header-middle"]?((0,r.openBlock)(),(0,r.createElementBlock)("div",c,[(0,r.renderSlot)(e.$slots,"header-middle",{},void 0,!0)])):(0,r.createCommentVNode)("",!0),n.search||e.hasAdvancedFiltering||e.isTooManyItemsToAutoUpdate||e.$slots["header-right"]?((0,r.openBlock)(),(0,r.createElementBlock)("div",u,[e.hasAdvancedFiltering?((0,r.openBlock)(),(0,r.createElementBlock)("ul",d,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.advancedFilteringValues,((n,i)=>((0,r.openBlock)(),(0,r.createElementBlock)("li",{key:i},[(0,r.createElementVNode)("span",h,(0,r.toDisplayString)(`"${n.value}" ${e.t("sortableTable.in")} ${n.label}`),1),(0,r.createElementVNode)("span",{class:"cross",onClick:t=>e.clearAdvancedFilter(i)},"✕",8,p),t[23]||(t[23]=(0,r.createElementVNode)("div",{class:"bg"},null,-1))])))),128))])):(0,r.createCommentVNode)("",!0),(0,r.renderSlot)(e.$slots,"header-right",{},void 0,!0),e.isTooManyItemsToAutoUpdate?((0,r.openBlock)(),(0,r.createBlock)(Z,{key:1,mode:"manual-refresh",size:n.manualRefreshButtonSize,"current-phase":Y.refreshButtonPhase,onClick:e.debouncedRefreshTableData},null,8,["size","current-phase","onClick"])):(0,r.createCommentVNode)("",!0),e.hasAdvancedFiltering?((0,r.openBlock)(),(0,r.createElementBlock)("div",f,[(0,r.createElementVNode)("button",{class:"btn role-primary",onClick:t[2]||(t[2]=t=>{e.advancedFilteringVisibility=!e.advancedFilteringVisibility})},(0,r.toDisplayString)(e.t("sortableTable.addFilter")),1),(0,r.withDirectives)((0,r.createElementVNode)("div",m,[(0,r.withDirectives)((0,r.createElementVNode)("input",{ref:"advancedSearchQuery","onUpdate:modelValue":t[3]||(t[3]=t=>e.advFilterSearchTerm=t),type:"search",class:"advanced-search-box",placeholder:e.t("sortableTable.filterFor")},null,8,g),[[r.vModelText,e.advFilterSearchTerm]]),(0,r.createElementVNode)("div",v,[(0,r.createElementVNode)("span",null,(0,r.toDisplayString)(e.t("sortableTable.in")),1),(0,r.createVNode)(ee,{value:e.advFilterSelectedProp,"onUpdate:value":t[4]||(t[4]=t=>e.advFilterSelectedProp=t),class:"filter-select",clearable:!0,options:e.advFilterSelectOptions,disabled:!1,searchable:!1,mode:"edit",multiple:!1,taggable:!1,placeholder:e.t("sortableTable.selectCol"),onSelecting:t[5]||(t[5]=t=>e.advFilterSelectedLabel=t.label)},null,8,["value","options","placeholder"])]),(0,r.createElementVNode)("div",b,[(0,r.createElementVNode)("button",{class:"btn role-secondary",disabled:!e.advancedFilteringValues.length,onClick:t[6]||(t[6]=(...t)=>e.clearAllAdvancedFilters&&e.clearAllAdvancedFilters(...t))},(0,r.toDisplayString)(e.t("sortableTable.resetFilters")),9,y),(0,r.createElementVNode)("button",{class:"btn role-primary",onClick:t[7]||(t[7]=(...t)=>e.addAdvancedFilter&&e.addAdvancedFilter(...t))},(0,r.toDisplayString)(e.t("sortableTable.add")),1)])],512),[[r.vShow,e.advancedFilteringVisibility]])],512)):n.search?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("input",{key:3,ref:"searchQuery","onUpdate:modelValue":t[8]||(t[8]=e=>Y.eventualSearchQuery=e),type:"search",class:"input-sm search-box","aria-label":e.t("sortableTable.searchLabel"),placeholder:e.t("sortableTable.search")},null,8,w)),[[r.vModelText,Y.eventualSearchQuery]]):(0,r.createCommentVNode)("",!0),(0,r.renderSlot)(e.$slots,"header-button",{},void 0,!0)])):(0,r.createCommentVNode)("",!0)],2)):(0,r.createCommentVNode)("",!0)],2),(0,r.createElementVNode)("table",{class:(0,r.normalizeClass)(["sortable-table",Q.classObject]),width:"100%",role:"table"},[n.showHeaders?((0,r.openBlock)(),(0,r.createBlock)(te,{key:0,"label-for":Q.labelFor,columns:Q.columns,group:e.group,"group-options":e.advGroupOptions,"has-advanced-filtering":e.hasAdvancedFiltering,"adv-filter-hide-labels-as-cols":e.advFilterHideLabelsAsCols,"table-actions":n.tableActions,"table-cols-options":e.columnOptions,"row-actions":n.rowActions,"sub-expand-column":n.subExpandColumn,"row-actions-width":n.rowActionsWidth,"how-much-selected":e.howMuchSelected,"sort-by":e.sortBy,"default-sort-by":e._defaultSortBy,descending:e.descending,"no-rows":Q.noRows,loading:Y.isLoading&&!Y.loadingDelay,"no-results":Q.noResults,onOnToggleAll:e.onToggleAll,onOnSortChange:e.changeSort,onColVisibilityChange:e.changeColVisibility,onGroupValueChange:t[9]||(t[9]=t=>e.$emit("group-value-change",t)),onUpdateColsOptions:e.updateColsOptions},null,8,["label-for","columns","group","group-options","has-advanced-filtering","adv-filter-hide-labels-as-cols","table-actions","table-cols-options","row-actions","sub-expand-column","row-actions-width","how-much-selected","sort-by","default-sort-by","descending","no-rows","loading","no-results","onOnToggleAll","onOnSortChange","onColVisibilityChange","onUpdateColsOptions"])):(0,r.createCommentVNode)("",!0),Y.isLoading&&!Y.loadingDelay?((0,r.openBlock)(),(0,r.createElementBlock)("div",E)):Y.isLoading&&!n.altLoading?((0,r.openBlock)(),(0,r.createElementBlock)("tbody",_,[(0,r.renderSlot)(e.$slots,"loading",{},(()=>[(0,r.createElementVNode)("tr",null,[(0,r.createElementVNode)("td",{colspan:Q.fullColspan},[(0,r.createElementVNode)("div",k,[t[24]||(t[24]=(0,r.createElementVNode)("i",{class:"icon-spin icon icon-spinner"},null,-1)),(0,r.createVNode)(ne,{k:"generic.loading",raw:!0})])],8,S)])]),!0)])):Q.noRows?((0,r.openBlock)(),(0,r.createElementBlock)("tbody",x,[(0,r.renderSlot)(e.$slots,"no-rows",{},(()=>[(0,r.createElementVNode)("tr",A,[(0,r.createElementVNode)("td",{colspan:Q.fullColspan},[n.showNoRows?((0,r.openBlock)(),(0,r.createBlock)(ne,{key:0,k:n.noRowsKey},null,8,["k"])):(0,r.createCommentVNode)("",!0)],8,N)])]),!0)])):Q.noResults?((0,r.openBlock)(),(0,r.createElementBlock)("tbody",C,[(0,r.renderSlot)(e.$slots,"no-results",{},(()=>[(0,r.createElementVNode)("tr",T,[(0,r.createElementVNode)("td",{colspan:Q.fullColspan,class:"text-center"},[(0,r.createVNode)(ne,{k:n.noDataKey},null,8,["k"])],8,R)])]),!0)])):((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,{key:5},(0,r.renderList)(Q.displayRows,(i=>((0,r.openBlock)(),(0,r.createElementBlock)("tbody",{key:i.key,class:(0,r.normalizeClass)({group:n.groupBy})},[n.groupBy?(0,r.renderSlot)(e.$slots,"group-row",{key:0,group:i,fullColspan:Q.fullColspan},(()=>[(0,r.createElementVNode)("tr",O,[(0,r.createElementVNode)("td",{colspan:Q.fullColspan},[(0,r.renderSlot)(e.$slots,"group-by",{group:i.grp},(()=>[(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("div",L,[(0,r.createTextVNode)((0,r.toDisplayString)(i.ref),1)])),[[le]])]),!0)],8,I)])]),!0):(0,r.createCommentVNode)("",!0),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(i.rows,((i,a)=>((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:a},[(0,r.renderSlot)(e.$slots,"main-row",{row:i.row},(()=>[(0,r.renderSlot)(e.$slots,"main-row:"+(i.row.mainRowKey||a),{fullColspan:Q.fullColspan},(()=>[(0,r.createElementVNode)("tr",{class:(0,r.normalizeClass)(["main-row",{"has-sub-row":i.showSubRow}]),"data-testid":n.componentTestid+"-"+a+"-row","data-node-id":i.key,"data-cant-run-bulk-action-of-interest":Y.actionOfInterest&&!i.canRunBulkActionOfInterest},[n.tableActions?((0,r.openBlock)(),(0,r.createElementBlock)("td",P,[(0,r.createTextVNode)((0,r.toDisplayString)(i.mainRowKey),1),(0,r.createVNode)(re,{class:"selection-checkbox","data-node-id":i.key,"data-testid":n.componentTestid+"-"+a+"-checkbox",value:e.selectedRows.includes(i.row)},null,8,["data-node-id","data-testid","value"])])):(0,r.createCommentVNode)("",!0),n.subExpandColumn?((0,r.openBlock)(),(0,r.createElementBlock)("td",M,[(0,r.createElementVNode)("i",{"data-title":"Toggle Expand",class:(0,r.normalizeClass)({icon:!0,"icon-chevron-right":!Y.expanded[i.row[n.keyField]],"icon-chevron-down":!!Y.expanded[i.row[n.keyField]]}),onClick:(0,r.withModifiers)((e=>Q.toggleExpand(i.row)),["stop"])},null,10,B)])):(0,r.createCommentVNode)("",!0),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(i.columns,((t,o)=>(0,r.renderSlot)(e.$slots,"col:"+t.col.name,{key:o,row:i.row,col:t.col,dt:Q.dt,expanded:Y.expanded,rowKey:i.key},(()=>[(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("td",{key:t.col.name,"data-title":t.col.label,"data-testid":`sortable-cell-${a}-${o}`,align:t.col.align||"left",class:(0,r.normalizeClass)({["col-"+t.dasherize]:!!t.col.formatter,[t.col.breakpoint]:!!t.col.breakpoint,["skip-select"]:t.col.skipSelect}),width:t.col.width},[(0,r.renderSlot)(e.$slots,"cell:"+t.col.name,{row:i.row,col:t.col,value:t.value},(()=>[t.component&&t.needRef?((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(t.component),(0,r.mergeProps)({key:0,ref_for:!0,ref:"column",value:t.value,row:i.row,col:t.col},t.col.formatterOpts,{"row-key":i.key,"get-custom-detail-link":n.getCustomDetailLink}),null,16,["value","row","col","row-key","get-custom-detail-link"])):t.component?((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(t.component),(0,r.mergeProps)({key:1,value:t.value,row:i.row,col:t.col,ref_for:!0},t.col.formatterOpts,{"row-key":i.key}),null,16,["value","row","col","row-key"])):t.col.formatter?((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(t.col.formatter),(0,r.mergeProps)({key:2,value:t.value,row:i.row,col:t.col,ref_for:!0},t.col.formatterOpts,{"row-key":i.key}),null,16,["value","row","col","row-key"])):""!==t.value?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:3},[(0,r.createTextVNode)((0,r.toDisplayString)(t.formatted),1)],64)):t.col.dashIfEmpty?((0,r.openBlock)(),(0,r.createElementBlock)("span",$,"—")):(0,r.createCommentVNode)("",!0)]),!0)],10,F)),[[r.vShow,!e.hasAdvancedFiltering||e.hasAdvancedFiltering&&t.col.isColVisible]])]),!0))),128)),n.rowActions?((0,r.openBlock)(),(0,r.createElementBlock)("td",U,[(0,r.renderSlot)(e.$slots,"row-actions",{row:i.row},(()=>[(0,r.createVNode)(ie,{id:`actionButton+${a}+${i.row&&i.row.name?i.row.name:""}`,ref_for:!0,ref:`actionButton${a}`,"aria-haspopup":"true","aria-expanded":"false","data-testid":n.componentTestid+"-"+a+"-action-button",borderless:!0,onClick:e=>Q.handleActionButtonClick(a,e),onKeyup:[(0,r.withKeys)((e=>Q.handleActionButtonClick(a,e)),["enter"]),(0,r.withKeys)((e=>Q.handleActionButtonClick(a,e)),["space"])]},null,8,["id","data-testid","onClick","onKeyup"])]),!0)])):(0,r.createCommentVNode)("",!0)],10,D)]),!0)]),!0),i.showSubRow?(0,r.renderSlot)(e.$slots,"sub-row",{key:0,fullColspan:Q.fullColspan,row:i.row,subMatches:Y.subMatches,keyField:n.keyField,componentTestid:n.componentTestid,i:a,onRowMouseEnter:e.onRowMouseEnter,onRowMouseLeave:e.onRowMouseLeave},(()=>[i.row.stateDescription?((0,r.openBlock)(),(0,r.createElementBlock)("tr",{key:i.row[n.keyField]+"-description","data-testid":n.componentTestid+"-"+a+"-row-description",class:"state-description sub-row",onMouseenter:t[10]||(t[10]=(...t)=>e.onRowMouseEnter&&e.onRowMouseEnter(...t)),onMouseleave:t[11]||(t[11]=(...t)=>e.onRowMouseLeave&&e.onRowMouseLeave(...t))},[n.tableActions?((0,r.openBlock)(),(0,r.createElementBlock)("td",V)):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("td",{colspan:Q.fullColspan-(n.tableActions?1:0),class:(0,r.normalizeClass)({"text-error":i.row.stateObj.error})},(0,r.toDisplayString)(i.row.stateDescription),11,K)],40,j)):(0,r.createCommentVNode)("",!0)]),!0):(0,r.createCommentVNode)("",!0)],64)))),128))],2)))),128))],2),e.showPaging?((0,r.openBlock)(),(0,r.createElementBlock)("div",H,[(0,r.createElementVNode)("button",{type:"button",class:"btn btn-sm role-multi-action","data-testid":"pagination-first",disabled:1==e.page||n.loading,onClick:t[12]||(t[12]=t=>e.goToPage("first"))},t[25]||(t[25]=[(0,r.createElementVNode)("i",{class:"icon icon-chevron-beginning"},null,-1)]),8,G),(0,r.createElementVNode)("button",{type:"button",class:"btn btn-sm role-multi-action","data-testid":"pagination-prev",disabled:1==e.page||n.loading,onClick:t[13]||(t[13]=t=>e.goToPage("prev"))},t[26]||(t[26]=[(0,r.createElementVNode)("i",{class:"icon icon-chevron-left"},null,-1)]),8,z),(0,r.createElementVNode)("span",null,(0,r.toDisplayString)(e.pagingDisplay),1),(0,r.createElementVNode)("button",{type:"button",class:"btn btn-sm role-multi-action","data-testid":"pagination-next",disabled:e.page==e.totalPages||n.loading,onClick:t[14]||(t[14]=t=>e.goToPage("next"))},t[27]||(t[27]=[(0,r.createElementVNode)("i",{class:"icon icon-chevron-right"},null,-1)]),8,q),(0,r.createElementVNode)("button",{type:"button",class:"btn btn-sm role-multi-action","data-testid":"pagination-last",disabled:e.page==e.totalPages||n.loading,onClick:t[15]||(t[15]=t=>e.goToPage("last"))},t[28]||(t[28]=[(0,r.createElementVNode)("i",{class:"icon icon-chevron-end"},null,-1)]),8,X)])):(0,r.createCommentVNode)("",!0),n.search?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:1,class:"hide",onShortkey:t[16]||(t[16]=e=>Q.focusSearch())},null,544)),[[ce,["/"],void 0,{once:!0}]]):(0,r.createCommentVNode)("",!0),n.tableActions?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[(0,r.withDirectives)((0,r.createElementVNode)("button",{class:"hide",onShortkey:t[17]||(t[17]=e=>Q.focusNext(e))},null,544),[[ce,["j"]]]),(0,r.withDirectives)((0,r.createElementVNode)("button",{class:"hide",onShortkey:t[18]||(t[18]=e=>Q.focusPrevious(e))},null,544),[[ce,["k"]]]),(0,r.withDirectives)((0,r.createElementVNode)("button",{class:"hide",onShortkey:t[19]||(t[19]=e=>Q.focusNext(e,!0))},null,544),[[ce,["shift","j"]]]),(0,r.withDirectives)((0,r.createElementVNode)("button",{class:"hide",onShortkey:t[20]||(t[20]=e=>Q.focusPrevious(e,!0))},null,544),[[ce,["shift","k"]]]),(0,r.renderSlot)(e.$slots,"shortkeys",{},void 0,!0)],64)):(0,r.createCommentVNode)("",!0)],8,i)}var Y=n(65359),Q=n(23464),J=n.n(Q),Z=n(3514),ee=n.n(Z),te=n(92043),ne=n(76978),re=n(68851),ie=n(42200),ae=n(88857);const oe={class:"dropdown-button-group"},se=["disabled"];function le(e,t,n,i,a,o){const s=(0,r.resolveComponent)("v-dropdown");return(0,r.openBlock)(),(0,r.createElementBlock)("div",oe,[(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)(["dropdown-button bg-primary",{"one-action":!n.dualAction,[o.buttonSize]:!0,disabled:n.disableButton}])},[(0,r.createVNode)(s,{placement:"bottom",container:!1,disabled:n.disableButton,flip:!1},{popper:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"popover-content")])),default:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"button-content",{buttonSize:o.buttonSize},(()=>[(0,r.createElementVNode)("button",{ref:"popoverButton",class:(0,r.normalizeClass)(["icon-container bg-primary no-left-border-radius",o.buttonSize]),disabled:n.disableButton,type:"button"},t[0]||(t[0]=[(0,r.createTextVNode)(" Button "),(0,r.createElementVNode)("i",{class:"icon icon-chevron-down"},null,-1)]),10,se)]))])),_:3},8,["disabled"])],2)])}var ce={name:"ActionDropdown",props:{size:{type:String,default:""},dualAction:{type:Boolean,default:!0},disableButton:{type:Boolean,default:!1}},computed:{buttonSize(){const{size:e}=this;let t;switch(e){case"":t="btn";break;case"xs":t="btn btn-xs";break;case"sm":t="btn btn-sm";break;case"lg":t="btn btn-lg";break;default:}return t}},methods:{hasSlot(e="default"){return!!this.$slots[e]||!!this.$slots.name()},togglePopover(){}}},ue=(n(63864),n(47433));const de=(0,ue.A)(ce,[["render",le]]);var he=de,pe=n(97331),fe=n.n(pe),me=n(12784),ge=n.n(me);const ve=["width"],be=["width"],ye=["align","width","tabindex","aria-sort","onClick","onKeyup"],we={class:"content"},Ee={key:0,class:"text-muted"},_e={key:0,class:"sort"},Se={class:"icon icon-info not-filter-icon"},ke={class:"icon-stack"},xe={key:0,class:"icon icon-sort-down icon-stack-1x"},Ae={key:1,class:"icon icon-sort-up icon-stack-1x"},Ne=["width"],Ce={ref:"table-options",class:"table-options-group"},Te={key:0,class:"table-options-grouping"},Re={class:"table-options-col-subtitle"},Oe={class:"table-options-col-subtitle mb-20"},Ie=["width"];function Le(e,t,n,i,a,o){const s=(0,r.resolveComponent)("Checkbox"),l=(0,r.resolveComponent)("LabeledSelect"),c=(0,r.resolveDirective)("clean-html"),u=(0,r.resolveDirective)("clean-tooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("thead",null,[(0,r.createElementVNode)("tr",{class:(0,r.normalizeClass)({loading:n.loading,"top-aligned":o.hasColumnWithSubLabel})},[n.tableActions?((0,r.openBlock)(),(0,r.createElementBlock)("th",{key:0,width:n.checkWidth},[(0,r.createVNode)(s,{value:o.isAll,"onUpdate:value":t[0]||(t[0]=e=>o.isAll=e),class:"check","data-testid":"sortable-table_check_select_all",indeterminate:o.isIndeterminate,disabled:n.noRows||n.noResults},null,8,["value","indeterminate","disabled"])],8,ve)):(0,r.createCommentVNode)("",!0),n.subExpandColumn?((0,r.openBlock)(),(0,r.createElementBlock)("th",{key:1,width:n.expandWidth},null,8,be)):(0,r.createCommentVNode)("",!0),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(n.columns,(i=>(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("th",{key:i.name,align:i.align||"left",width:i.width,class:(0,r.normalizeClass)([{sortable:i.sort,[i.breakpoint]:!!i.breakpoint},"sortable-table-head-element"]),tabindex:i.sort?0:-1,"aria-sort":o.ariaSort(i),onClick:(0,r.withModifiers)((e=>o.changeSort(e,i)),["prevent"]),onKeyup:[(0,r.withKeys)((e=>o.changeSort(e,i)),["enter"]),(0,r.withKeys)((e=>o.changeSort(e,i)),["space"])]},[(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)(["table-header-container",{"not-filterable":n.hasAdvancedFiltering&&!i.isFilter}])},[(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("div",we,[(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[c,n.labelFor(i)]]),i.subLabel?((0,r.openBlock)(),(0,r.createElementBlock)("span",Ee,(0,r.toDisplayString)(i.subLabel),1)):(0,r.createCommentVNode)("",!0)])),[[u,o.tooltip(i)]]),i.sort?((0,r.openBlock)(),(0,r.createElementBlock)("div",_e,[(0,r.withDirectives)((0,r.createElementVNode)("i",Se,null,512),[[r.vShow,n.hasAdvancedFiltering&&!i.isFilter],[u,e.t("sortableTable.tableHeader.noFilter")]]),(0,r.createElementVNode)("span",ke,[t[3]||(t[3]=(0,r.createElementVNode)("i",{class:"icon icon-sort icon-stack-1x faded"},null,-1)),o.isCurrent(i)&&!n.descending?((0,r.openBlock)(),(0,r.createElementBlock)("i",xe)):(0,r.createCommentVNode)("",!0),o.isCurrent(i)&&n.descending?((0,r.openBlock)(),(0,r.createElementBlock)("i",Ae)):(0,r.createCommentVNode)("",!0)])])):(0,r.createCommentVNode)("",!0)],2)],42,ye)),[[r.vShow,!n.hasAdvancedFiltering||n.hasAdvancedFiltering&&i.isColVisible]]))),128)),n.rowActions&&n.hasAdvancedFiltering&&n.tableColsOptions.length?((0,r.openBlock)(),(0,r.createElementBlock)("th",{key:2,width:n.rowActionsWidth},[(0,r.createElementVNode)("div",Ce,[(0,r.createElementVNode)("button",{"aria-haspopup":"true","aria-expanded":"false",type:"button",class:"btn btn-sm role-multi-action table-options-btn",onClick:t[1]||(t[1]=(...e)=>o.tableColsOptionsClick&&o.tableColsOptionsClick(...e))},t[4]||(t[4]=[(0,r.createElementVNode)("i",{class:"icon icon-actions"},null,-1)])),(0,r.withDirectives)((0,r.createElementVNode)("div",{class:"table-options-container",style:(0,r.normalizeStyle)(a.tableColsMenuPosition)},[o.hasAdvGrouping?((0,r.openBlock)(),(0,r.createElementBlock)("div",Te,[(0,r.createElementVNode)("span",Re,(0,r.toDisplayString)(e.t("sortableTable.tableHeader.groupBy"))+":",1),(0,r.createVNode)(l,{value:o.advGroup,"onUpdate:value":t[2]||(t[2]=e=>o.advGroup=e),class:"table-options-grouping-select",clearable:!0,options:n.groupOptions,disabled:!1,searchable:!1,mode:"edit",multiple:!1,taggable:!1},null,8,["value","options"])])):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("p",Oe,(0,r.toDisplayString)(e.t("sortableTable.tableHeader.show"))+": ",1),(0,r.createElementVNode)("ul",null,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(n.tableColsOptions,((e,t)=>(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("li",{key:t,class:(0,r.normalizeClass)({visible:!e.preventColToggle})},[(0,r.withDirectives)((0,r.createVNode)(s,{value:e.isColVisible,"onUpdate:value":[t=>e.isColVisible=t,t=>o.tableOptionsCheckbox(t,e.label)],class:"table-options-checkbox",label:e.label},null,8,["value","onUpdate:value","label"]),[[r.vShow,!e.preventColToggle]])],2)),[[r.vShow,e.isTableOption]]))),128))])],4),[[r.vShow,a.tableColsOptionsVisibility]])],512)],8,Ne)):n.rowActions?((0,r.openBlock)(),(0,r.createElementBlock)("th",{key:3,width:n.rowActionsWidth},null,8,Ie)):(0,r.createCommentVNode)("",!0)],2)])}var De=n(35881);function Pe(e,t){if(e=e?.parentElement,!e)return null;const n=e.matches||e.matchesSelector;return n.call(e,t)?e:Pe(e,t)}const Me="all",Be="some",Fe="none";var $e={mounted(){const e=this.$el.querySelector("TABLE");this._onRowClickBound=this.onRowClick.bind(this),this._onRowMousedownBound=this.onRowMousedown.bind(this),this._onRowContextBound=this.onRowContext.bind(this),e.addEventListener("click",this._onRowClickBound),e.addEventListener("mousedown",this._onRowMousedownBound),e.addEventListener("contextmenu",this._onRowContextBound)},beforeUnmount(){const e=this.$el.querySelector("TABLE");e.removeEventListener("click",this._onRowClickBound),e.removeEventListener("mousedown",this._onRowMousedownBound),e.removeEventListener("contextmenu",this._onRowContextBound)},computed:{...(0,Y.L8)({targetElem:"action-menu/elem",shouldShow:"action-menu/showing"}),howMuchSelected(){const e=this.pagedRows.length,t=this.selectedRows.length;return t>=e&&e>0?Me:t>0?Be:Fe},bulkActionsForSelection(){let e=!1;const t=this.pagedRows,n=this.arrangedRows||t;let r=this.selectedRows;if(!this.selectedRows.length){if(!n)return[];const t=n[0];r=t?[t]:[],e=!0}const i={};for(const o of t)if(o.availableActions)for(const e of o.availableActions)e.bulkable&&je(i,e,!1);for(const o of r)if(o.availableActions)for(const e of o.availableActions)e.bulkable&&e.enabled&&je(i,e,!1);const a=Ve(i,e);return a.forEach((e=>{const t=this.selectedRows.some((t=>{const n=t.availableActions||[];return n.some((t=>t.action===e.action&&t.enabled))}));e.enabled=this.selectedRows.length>0&&t})),a.sort(((e,t)=>(t.weight||0)-(e.weight||0)))}},data(){return{selectedRows:[],prevNode:null}},watch:{pagedRows(){const e=this.pagedRows,t=[];for(const n of this.selectedRows)e.includes(n)||t.push(n);this.update([],t)}},methods:{onToggleAll(e){return e?(this.update(this.pagedRows,[]),!0):(this.update([],this.pagedRows),!1)},onRowMousedown(e){((0,De._Z)(e)||this.isSelectionCheckbox(e.target))&&e.preventDefault()},onRowMouseEnter(e){const t=e.target.closest("TR");if(t.classList.contains("sub-row")){const e=t.previousElementSibling;e.classList.add("sub-row-hovered")}},onRowMouseLeave(e){const t=e.target.closest("TR");if(t.classList.contains("sub-row")){const e=t.previousElementSibling;e.classList.remove("sub-row-hovered")}},nodeForEvent(e){const t=e.target.tagName,n=e.target,r=n.closest(".actions");if(n.classList.contains("select-all-check"))return;if(!r&&("A"===t||"BUTTON"===t||Pe(n,".btn")))return;const i=e.target.closest("TR");return this.nodeForRow(i)},nodeForRow(e){if(e?.classList.contains("separator-row"))return;while(e&&!e.classList.contains("main-row"))e=e.previousElementSibling;if(!e)return;const t=e.dataset.nodeId;if(!t)return;const n=this.pagedRows.find((e=>(0,ne.Jt)(e,this.keyField)===t));return n},async onRowClick(e){const t=this.nodeForEvent(e),n=e.target.closest("TD"),r=n?.classList.contains("skip-select");if(r)return;const i=this.selectedRows,a=this.isSelectionCheckbox(e.target)||n?.classList.contains("row-check"),o=n?.classList.contains("row-expand"),s=this.pagedRows;if(this.$emit("rowClick",e),!t)return;if(o)return void this.toggleExpand(t);const l=e.target.closest(".actions");if(l){let n=[t];if(this.mangleActionResources){const e=l.querySelector("i");e.classList.remove("icon-actions"),e.classList.add("icon-spinner"),e.classList.add("icon-spin");try{n=await this.mangleActionResources(n)}finally{e.classList.remove("icon-spinner"),e.classList.remove("icon-spin"),e.classList.add("icon-actions")}}return void(this.targetElem||this.shouldShow?this.targetElem===l&&this.shouldShow&&this.$store.commit("action-menu/hide"):this.$store.commit("action-menu/show",{resources:n,event:e,elem:l}))}const c=i.includes(t);let u=this.prevNode;if(u&&s.includes(u)||(u=t),(0,De.yC)(e))this.toggle(t);else if((0,De._Z)(e)){const e=this.nodesBetween(u,t);c?this.update([],e):this.update(e,[])}else a?this.toggle(t):this.update([t],s);this.prevNode=t},async onRowContext(e){const t=this.nodeForEvent(e);if((0,De.A0)(e))return;if(!t)return;e.preventDefault(),e.stopPropagation(),this.prevNode=t;const n=this.selectedRows.includes(t);n||this.update([t],this.selectedRows.slice());let r=this.selectedRows;this.mangleActionResources&&(r=await this.mangleActionResources(r)),this.$store.commit("action-menu/show",{resources:r,event:e})},keySelectRow(e,t=!1){const n=this.nodeForRow(e),r=this.pagedRows;n&&(t?this.update([n],[]):this.update([n],r),this.prevNode=n)},isSelectionCheckbox(e){return"INPUT"===e.tagName&&"checkbox"===e.type&&null!==e.closest(".selection-checkbox")},nodesBetween(e,t){let n=[];const r=this.groupBy;if(r){const r=this.groupedRows;let i=this.groupIdx(e),a=this.groupIdx(t);if(!i||!a)return[];(i.group>a.group||i.group===a.group&&i.item>a.item)&&([i,a]=[a,i]);for(let e=i.group;e<=a.group;e++){const t=r[e].rows;let o=i.group===e?i.item:0;while(t[o]&&(e<a.group||o<=a.item))n.push(t[o]),o++}}else{const r=this.pagedRows;let i=r.indexOf(e),a=r.indexOf(t);[i,a]=[Math.min(i,a),Math.max(i,a)],n=r.slice(i,a+1)}return n=n.filter((e=>!this.selectedRows.includes(e))),n},groupIdx(e){const t=this.groupedRows;for(let n=0;n<t.length;n++){const r=t[n].rows;for(let t=0;t<r.length;t++)if(r[t]===e)return{group:n,item:t}}return null},toggle(e){const t=[],n=[];this.selectedRows.includes(e)?n.push(e):t.push(e),this.update(t,n)},update(e,t){t.forEach((e=>{const t=this.selectedRows.findIndex((t=>t===e));-1!==t&&this.selectedRows.splice(t,1)})),e&&this.selectedRows.push(...e),t.length&&this.$nextTick((()=>{for(let e=0;e<t.length;e++)this.updateInput(t[e],!1,this.keyField)})),e.length&&this.$nextTick((()=>{for(let t=0;t<e.length;t++)this.updateInput(e[t],!0,this.keyField)})),this.$nextTick((()=>{this.$emit("selection",this.selectedRows)}))},updateInput(e,t,n){const r=(0,ne.Jt)(e,n);if(r){const e=this.$el.querySelector(`div[data-checkbox-ctrl][data-node-id="${r}"]`);if(e&&!e.disabled){const n=e.querySelector("label");n&&(n.value=t);let r=e.closest("tr"),i=!0;while(r&&(i||r.classList.contains("sub-row")))t?r.classList.add("row-selected"):r.classList.remove("row-selected"),r=r.nextElementSibling,i=!1}}},select(e){e.forEach((e=>{const t=(0,ne.Jt)(e,this.keyField),n=this.$el.querySelector(`label[data-node-id="${t}"]`);n.dispatchEvent(new Event("click"))}))},applyTableAction(e,t,n){const r={alt:n&&(0,De.nN)(n),event:n},i=this.selectedRows.filter((t=>{const n=t.availableActions.find((t=>t.action===e.action));return n?.enabled}));Ke(i,e,t,r,this),this.actionOfInterest=null},clearSelection(){this.update([],this.selectedRows)}}};let Ue=0;function je(e,t,n=!0){let r=t.action;r||(r=`anon${Ue}`,Ue++);let i=e[r];return i||(i=Object.assign({},t),e[r]=i,i.allEnabled=!1),t.enabled?i.anyEnabled=!0:i.allEnabled=!1,n&&(i.available=(i.available||0)+(t.enabled?1:0),i.total=(i.total||0)+1),i}function Ve(e,t=!1){const n=(0,re.WP)(Object.values(e),"anyEnabled",!0);for(const r of n)r.enabled=!t&&r.available>=r.total;return n}function Ke(e,t,n,r={},i){if(n=n||[],t.invoke){const a={action:t,event:r.event,isAlt:!!r.alt};return t.invoke.apply(i,[a,e||[],n])}if(e.length>1&&t.bulkAction&&!r.alt){const r=e[0][t.bulkAction];if(r)return r.call(e[0],e,...n)}const a=[];for(const o of e){let e;e=r.alt&&t.altAction?o[t.altAction]:o[t.action],e&&a.push(e.apply(o,n))}return Promise.all(a)}var He=n(14817),Ge=n(77988),ze={emits:["update-cols-options","on-toggle-all","group-value-change","on-sort-change","col-visibility-change"],components:{Checkbox:ie.S,LabeledSelect:Ge.A},props:{columns:{type:Array,required:!0},sortBy:{type:String,required:!0},defaultSortBy:{type:String,default:""},group:{type:String,default:""},groupOptions:{type:Array,default:()=>[]},descending:{type:Boolean,required:!0},hasAdvancedFiltering:{type:Boolean,required:!1},tableColsOptions:{type:Array,default:()=>[]},tableActions:{type:Boolean,required:!0},rowActions:{type:Boolean,required:!0},howMuchSelected:{type:String,required:!0},checkWidth:{type:Number,default:30},rowActionsWidth:{type:Number,required:!0},subExpandColumn:{type:Boolean,default:!1},expandWidth:{type:Number,default:30},labelFor:{type:Function,required:!0},noRows:{type:Boolean,default:!0},noResults:{type:Boolean,default:!0},loading:{type:Boolean,required:!1}},data(){return{tableColsOptionsVisibility:!1,tableColsMenuPosition:null}},watch:{advancedFilteringValues(){this.watcherUpdateLiveAndDelayed(!0,!1)},tableColsOptionsVisibility(e){e?(window.addEventListener("click",this.onClickOutside),this.$emit("update-cols-options")):window.removeEventListener("click",this.onClickOutside)}},computed:{isAll:{get(){return this.howMuchSelected!==Fe},set(e){this.$emit("on-toggle-all",e)}},hasAdvGrouping(){return this.group?.length&&this.groupOptions?.length},advGroup:{get(){return this.group||this.advGroup},set(e){this.$emit("group-value-change",e)}},isIndeterminate(){return this.howMuchSelected===Be},hasColumnWithSubLabel(){return this.columns.some((e=>e.subLabel))}},methods:{changeSort(e,t){if(!t.sort)return;let n=!1;this.sortBy===t.name&&(n=!this.descending),this.$emit("on-sort-change",t.name,n)},isCurrent(e){return e.name===this.sortBy},ariaSort(e){return this.isCurrent(e)?this.descending?this.t("generic.descending"):this.t("generic.ascending"):this.t("generic.none")},tableColsOptionsClick(e){const t=document.querySelector(".table-options-container"),n=document.querySelector(".table-options-btn");this.tableColsMenuPosition=(0,He.Tb)(t,e||n,{overlapX:!0,fudgeX:326,fudgeY:-22,positionX:He.Q7,positionY:He.Q8}),this.tableColsOptionsVisibility=!this.tableColsOptionsVisibility},onClickOutside(e){const t=this.$refs["table-options"];t&&!t.contains(e.target)&&(this.tableColsOptionsVisibility=!1)},tableOptionsCheckbox(e,t){this.$emit("col-visibility-change",{label:t,value:e})},tooltip(e){if(!e.tooltip)return null;const t=this.$store.getters["i18n/exists"];return t(e.tooltip)?this.t(e.tooltip):e.tooltip}}};n(24183),n(717);const qe=(0,ue.A)(ze,[["render",Le],["__scopeId","data-v-d8d3445c"]]);var Xe=qe;const We="allcols",Ye="All Columns",Qe=":::islabel";var Je={data(){return{searchQuery:null,previousFilter:null,previousResult:null}},computed:{searchFields(){const e=Ze(this.columns);return this.extraSearchFields&&(0,re.cn)(e,this.extraSearchFields),e},filteredRows(){if(!this.externalPaginationEnabled)return this.hasAdvancedFiltering?this.handleAdvancedFiltering():this.handleFiltering()}},methods:{handleAdvancedFiltering(){if(this.subMatches=null,this.searchQuery.length){const e=(this.arrangedRows||[]).slice(),t=e.filter((e=>this.searchQuery.every((t=>{if(t.prop===We){const n=this.advFilterSelectOptions.slice(1);let r=[];return n.forEach((e=>{if(e.value.includes("[")&&e.value.includes("]"))r=r.concat(JSON.parse(e.value));else{const t=e.isLabel?`${e.label}${Qe}`:e.value;r.push(t)}})),tt(r,[t.value],e)}{if(t.prop.includes("[")&&t.prop.includes("]"))return tt(JSON.parse(t.prop),[t.value],e);let n=t.prop;return t.prop.includes("metadata.labels")&&(n=`${t.label}${Qe}`),tt([n],[t.value],e)}}))));return t}return this.arrangedRows},handleFiltering(){const e=(this.searchQuery||"").trim().toLowerCase();let t;if(e&&this.previousResult&&e.startsWith(this.previousFilter)?t=this.previousResult.slice():(this.previousResult=null,t=(this.arrangedRows||[]).slice()),this.previousFilter=e,!e.length)return this.subMatches=null,this.previousResult=null,t;const n=this.searchFields,r=e.split(/\s*[, ]\s*/),i=this.subSearch,a=this.subFields,o={};for(let s=t.length-1;s>=0;s--){const e=t[s];let l=0,c=!0;if(c=tt(n,r,e),a&&i){const t=e[i]||[];for(let n=t.length-1;n>=0;n--){let t=!0;t=tt(a,r,e),t&&l++}o[(0,ne.Jt)(e,this.keyField)]=l}c||0!==l||(0,re.Wq)(t,s)}return this.subMatches=o,this.previousResult=t,t}},watch:{arrangedRows(e){this.previousResult=null},searchQuery(){this.debouncedPaginationChanged()}}};function Ze(e){const t=[];return(e||[]).forEach((e=>{const n=e.search;n?"string"===typeof n?(0,re.PG)(t,n):(0,re.cy)(n)&&(0,re.cn)(t,n):!1===n||(0,re.PG)(t,e.value||e.name)})),t.filter((e=>!!e))}const et=/^[0-9a-f\.:]+$/i;function tt(e,t,n){for(let r=0;r<t.length;r++){let i=!0,a=t[r];return"!"===a.substr(0,1)&&(i=!1,a=a.substr(1)),!a||nt(e,a,n)===i}}function nt(e,t,n){for(let r of e){if(!r)continue;if("function"!==typeof r&&r.includes(Qe)&&(!n.metadata.labels||!n.metadata.labels[r.replace(Qe,"")]))continue;let e,i;if("function"===typeof r)i=r(n);else if(r.includes(Qe))i=n.metadata.labels[r.replace(Qe,"")];else{const t=r.indexOf(":");t>0&&(e=r.substr(t+1),r=r.substr(0,t)),i=r.includes(".")?(0,ne.Jt)(n,r):n[r]}if(void 0!==i&&(i=`${i}`.toLowerCase(),i))if(e){if("exact"===e){if(i===t)return!0}else if("ip"===e){const e=et.test(t);if(e){const e=new RegExp(`(?:^|\\.)${t}(?:\\.|$)`);if(e.test(i))return!0}}else if("prefix"===e&&0===i.indexOf(t))return!0}else if(i.includes(`${t}`.toLowerCase()))return!0}return!1}var rt=n(74302);const it=["nameSort","id"];var at={computed:{sortFields(){let e=(this.groupBy?this.groupSort||this.groupBy:null)||[],t=[];const n=(this.columns||this.headers).find((e=>e&&e.name&&e.name.toLowerCase()===this.sortBy.toLowerCase()));return this.sortBy&&n&&n.sort&&(t=n.sort),Array.isArray(e)||(e=[e]),Array.isArray(t)||(t=[t]),(0,re.sb)([...e,...t].concat(...this.mandatorySort||it))},arrangedRows(){if(this.externalPaginationEnabled)return;let e;const t=this.sortGeneration||this.sortGenerationFn?.apply(this);if(t&&(e=`${t}/${this.rows.length}/${this.descending}/${this.sortFields.join(",")}`,this.cacheKey===e))return this.cachedRows;const n=(0,rt.Ul)(this.rows,this.sortFields,this.descending);return e&&(this.cacheKey=e,this.cachedRows=n),n}},data(){let e=null;if(this._defaultSortBy=this.defaultSortBy,!this._defaultSortBy){const e=this.headers.find((e=>!!e.defaultSort)),t=this.headers.find((e=>"name"===e.name));if(e)this._defaultSortBy=e.name;else if(t)this._defaultSortBy=t.name;else{const e=this.headers.filter((e=>"state"!==e.name))[0];this._defaultSortBy=e?e.name:"id"}}return e&&this.headers.find((t=>t.name===e))||(e=this._defaultSortBy),{sortBy:e,descending:!1,cachedRows:null,cacheKey:null}},methods:{changeSort(e,t){this.sortBy=e,this.descending=t,this.setPage(1)}},watch:{sortFields(){this.debouncedPaginationChanged()},descending(){this.debouncedPaginationChanged()}}},ot=n(91462),st={computed:{totalRows(){return this.externalPaginationEnabled?this.externalPaginationResult?.count||0:this.filteredRows.length},indexFrom(){return Math.max(0,1+this.perPage*(this.page-1))},indexTo(){return Math.min(this.totalRows,this.indexFrom+this.perPage-1)},totalPages(){return Math.ceil(this.totalRows/this.perPage)},showPaging(){if(!this.paging)return!1;const e=this.totalPages>1;return(this.altLoading||!this.loading)&&e},pagingDisplay(){const e={...this.pagingParams||{},count:this.totalRows,pages:this.totalPages,from:this.indexFrom,to:this.indexTo};return this.$store.getters["i18n/t"](this.pagingLabel,e)},pagedRows(){return this.externalPaginationEnabled?this.rows:this.paging?this.filteredRows.slice(this.indexFrom-1,this.indexTo):this.filteredRows}},data(){const e=this.getPerPage();return{page:1,perPage:e}},watch:{pagedRows(){const e=this.indexFrom,t=this.totalRows;this.totalPages>0&&this.page>1&&e>t&&this.setPage(this.totalPages)},page(){this.debouncedPaginationChanged()},perPage(){this.debouncedPaginationChanged()}},methods:{getPerPage(){let e=this.rowsPerPage||0;return e<=0&&(e=parseInt(this.$store.getters["prefs/get"](ot.kc),10)||0),e<=0&&(e=10),e},setPage(e){this.page!==e&&(this.page=e)},goToPage(e){let t;switch(e){case"first":t=1;break;case"prev":t=Math.max(1,this.page-1);break;case"next":t=Math.min(this.totalPages,this.page+1);break;case"last":t=this.totalPages;break}this.setPage(t)},getPageByRow(e,t=e=>e){const n=this.filteredRows.map(t).indexOf(e);return-1===n?null:Math.ceil(n/this.perPage)}}},lt={computed:{selectedGroupOption(){return this.groupOptions?.find((e=>e.value===this.group))},groupedRows(){const e=this.groupBy,t=this.groupRef||this.selectedGroupOption?.groupLabelKey||e;if(!e)return[{key:"default",ref:"default",rows:this.pagedRows}];const n=[],r={};for(const i of this.pagedRows){const a=(0,ne.Jt)(i,e)||"",o=(0,ne.Jt)(i,t);let s=r[a];s?s.rows.push(i):(s={key:a,ref:o,rows:[i]},r[a]=s,n.push(s))}return n}}};const ct="inline-block";var ut={data(){return{bulkActionsClass:"bulk",bulkActionClass:"bulk-action",bulkActionsDropdownClass:"bulk-actions-dropdown",bulkActionAvailabilityClass:"action-availability",hiddenActions:[],updateHiddenBulkActions:ge()(this.protectedUpdateHiddenBulkActions,10)}},beforeUnmount(){window.removeEventListener("resize",this.onWindowResize)},mounted(){window.addEventListener("resize",this.onWindowResize),this.updateHiddenBulkActions()},watch:{selectedRows(){this.updateHiddenBulkActions()},keyedAvailableActions(){this.updateHiddenBulkActions()}},computed:{availableActions(){return this.bulkActionsForSelection.filter((e=>!e.external))},keyedAvailableActions(){return this.availableActions.map((e=>e.action))},selectedRowsText(){return this.selectedRows.length?this.t("sortableTable.actionAvailability.selected",{actionable:this.selectedRows.length}):null},actionTooltip(){if(!this.selectedRows.length||!this.actionOfInterest)return null;const e=this.selectedRows.filter(this.canRunBulkActionOfInterest).length;return e===this.selectedRows.length?null:this.t("sortableTable.actionAvailability.some",{actionable:e,total:this.selectedRows.length})}},methods:{onWindowResize(){this.updateHiddenBulkActions(),this.onScroll()},protectedUpdateHiddenBulkActions(){if(!this.$refs.container)return;const e=this.$refs.container.querySelector(`.${this.bulkActionsClass}`),t=this.$refs.container.querySelector(`.${this.bulkActionsDropdownClass}`);if(!e||!t)return;const n=e.offsetWidth,r=this.$refs.container.querySelectorAll(`.${this.bulkActionClass}`),i=Array.from(r||[]),a=this.$refs.container.querySelector(`.${this.bulkActionAvailabilityClass}`);let o=0;this.selectedRowsText&&(a?(a.style.display=ct,o=a.offsetWidth):a.style.display="none;"),this.hiddenActions=[];let s=0,l=!1,c=n-o;for(let u=0;u<i.length;u++){const e=i[u];e.style.display=ct;const r=e.offsetWidth;if(s+=r+15,s>=c)if(l){const t=e.attributes.getNamedItem("id").value;this.hiddenActions.push(this.availableActions.find((e=>e.action===t))),e.style.display="none"}else t.style.display=ct,u=-1,s=0,l=!0,c=n-t.offsetWidth-o}l||(t.style.display="none")}}};const dt=We;var ht={props:{group:{type:String,default:()=>""},groupOptions:{type:Array,default:()=>[]},hasAdvancedFiltering:{type:Boolean,default:!1},advFilterHideLabelsAsCols:{type:Boolean,default:!1},advFilterPreventFilteringLabels:{type:Boolean,default:!1}},data(){return{columnOptions:[],colOptionsWatcher:null,advancedFilteringVisibility:!1,advancedFilteringValues:[],advFilterSearchTerm:null,advFilterSelectedProp:dt,advFilterSelectedLabel:Ye,column:null}},mounted(){this.hasAdvancedFiltering&&this.updateColsOptions()},watch:{advancedFilteringValues(){this.watcherUpdateLiveAndDelayed(!0,!1)},advancedFilteringVisibility(e){e?(window.addEventListener("click",this.onClickOutside),this.updateColsOptions()):window.removeEventListener("click",this.onClickOutside)}},computed:{advFilterSelectOptions(){return this.columnOptions.filter((e=>e.isFilter&&!e.preventFiltering))},advGroupOptions(){return this.groupOptions.map((e=>({label:this.t(e.tooltipKey),value:e.value})))}},methods:{handleColsVisibilyAndFiltering(e){const t=e;return this.columnOptions.forEach((e=>{if(e.isTableOption){const n=t.findIndex((t=>t.name===e.name));-1!==n?(t[n].isColVisible=e.isColVisible,t[n].isFilter=e.isFilter):t.push(e)}})),t},setColsOptions(){let e=[];const t=[],n=[],r=this.headers.slice().filter((e=>!e.maxPageSize||e.maxPageSize&&e.maxPageSize>=this.perPage));return r.forEach((e=>{const t=e.name,r=e.labelKey?this.t(`${e.labelKey}`):e.label,i=!(Object.keys(e).includes("search")&&!e.search);let a=e.sort;const o=e.valueProp||e.value;let s=null,l=!0;if(e.sort&&o?("string"===typeof e.sort&&(a=e.sort.includes(":")?[e.sort.split(":")[0]]:[e.sort]),s=a.includes(o)?JSON.stringify([o]):JSON.stringify(a.concat([o]))):s=o?JSON.stringify([o]):null,this.columnOptions?.length){const e=this.columnOptions.find((e=>e.name===t&&e.label===r));e&&(l=e.isColVisible)}n.push({name:t,label:r,value:s,isFilter:i,isTableOption:!0,isColVisible:l})})),this.rows.length&&this.rows.forEach((e=>{e.metadata?.labels&&Object.keys(e.metadata?.labels).length&&Object.keys(e.metadata?.labels).forEach((e=>{const n={name:e,label:e,value:`metadata.labels.${e}`,isFilter:!0,isTableOption:!0,isColVisible:!1,isLabel:!0,preventFiltering:this.advFilterPreventFilteringLabels,preventColToggle:this.advFilterHideLabelsAsCols};if(this.columnOptions?.length){const t=this.columnOptions.find((t=>t.name===e&&t.label===e));t&&(n.isColVisible=t.isColVisible)}t.filter((t=>t.label===e)).length||t.push(n)}))})),e=n.concat(t),e.length&&e.unshift({name:Ye,label:Ye,value:We,isFilter:!0,isTableOption:!1}),e},addAdvancedFilter(){this.advFilterSelectedProp&&this.advFilterSearchTerm&&(this.advancedFilteringValues.push({prop:this.advFilterSelectedProp,value:this.advFilterSearchTerm,label:this.advFilterSelectedLabel}),this.eventualSearchQuery=this.advancedFilteringValues,this.advancedFilteringVisibility=!1,this.advFilterSelectedProp=dt,this.advFilterSelectedLabel=Ye,this.advFilterSearchTerm=null)},clearAllAdvancedFilters(){this.advancedFilteringValues=[],this.eventualSearchQuery=this.advancedFilteringValues,this.advancedFilteringVisibility=!1,this.advFilterSelectedProp=dt,this.advFilterSelectedLabel=Ye,this.advFilterSearchTerm=null},clearAdvancedFilter(e){this.advancedFilteringValues.splice(e,1),this.eventualSearchQuery=this.advancedFilteringValues},onClickOutside(e){const t=this.$refs["advanced-filter-group"];t&&!t.contains(e.target)&&(this.advancedFilteringVisibility=!1)},updateColsOptions(){this.columnOptions=this.setColsOptions()},changeColVisibility(e){const t=this.columnOptions.findIndex((t=>t.label===e.label));-1!==t&&(this.columnOptions[t].isColVisible=e.value)}}};const pt={};var ft=n(76332),mt=n(4364),gt={name:"SortableTable",emits:["clickedActionButton","pagination-changed","group-value-change","selection","rowClick"],components:{THead:Xe,Checkbox:ie.S,AsyncButton:ae.A,ActionDropdown:he,LabeledSelect:Ge.A,ButtonMultiAction:ft.A},mixins:[Je,at,st,lt,$e,ut,ht],props:{headers:{type:Array,required:!0},rows:{type:Array,required:!0},keyField:{type:String,default:"_key"},loading:{type:Boolean,required:!1},altLoading:{type:Boolean,required:!1},groupBy:{type:String,default:null},groupRef:{type:String,default:null},groupSort:{type:Array,default:null},defaultSortBy:{type:String,default:null},tableActions:{type:Boolean,default:!0},rowActions:{type:Boolean,default:!0},mangleActionResources:{type:Function,default:null},rowActionsWidth:{type:Number,default:40},search:{type:Boolean,default:!0},extraSearchFields:{type:Array,default:null},subRows:{type:Boolean,default:!1},subRowsDescription:{type:Boolean,default:!0},subExpandable:{type:Boolean,default:!1},subExpandColumn:{type:Boolean,default:!1},subSearch:{type:String,default:null},subFields:{type:Array,default:null},topDivider:{type:Boolean,default:!0},bodyDividers:{type:Boolean,default:!1},overflowX:{type:Boolean,default:!1},overflowY:{type:Boolean,default:!1},paging:{type:Boolean,default:!1},pagingLabel:{type:String,default:"sortableTable.paging.generic"},pagingParams:{type:Object,default:null},rowsPerPage:{type:Number,default:null},noRowsKey:{type:String,default:"sortableTable.noRows"},showNoRows:{type:Boolean,default:!0},noDataKey:{type:String,default:"sortableTable.noData"},showHeaders:{type:Boolean,default:!0},sortGenerationFn:{type:Function,default:null},sortGeneration:{type:String,default:null},mandatorySort:{type:Array,default:null},getCustomDetailLink:{type:Function,default:null},componentTestid:{type:String,default:"sortable-table"},useQueryParamsForSimpleFiltering:{type:Boolean,default:!1},forceUpdateLiveAndDelayed:{type:Number,default:0},externalPaginationEnabled:{type:Boolean,default:!1},externalPaginationResult:{type:Object,default:null},manualRefreshButtonSize:{type:String,default:""}},data(){let e="",t="";!this.hasAdvancedFiltering&&this.useQueryParamsForSimpleFiltering&&this.$route.query?.q&&(e=this.$route.query?.q,t=this.$route.query?.q);const n=this.loading||!1;return{refreshButtonPhase:n?ae.R.WAITING:ae.R.ACTION,expanded:{},searchQuery:e,eventualSearchQuery:t,subMatches:null,actionOfInterest:null,loadingDelay:!1,debouncedPaginationChanged:null,isLoading:n}},mounted(){this._loadingDelayTimer=setTimeout((()=>{this.loadingDelay=!0}),200);const e=document.querySelector("main");this._onScroll=this.onScroll.bind(this),e?.addEventListener("scroll",this._onScroll),this.debouncedPaginationChanged()},beforeUnmount(){clearTimeout(this._scrollTimer),clearTimeout(this._loadingDelayTimer),clearTimeout(this._altLoadingDelayTimer),clearTimeout(this._liveColumnsTimer),clearTimeout(this._delayedColumnsTimer),clearTimeout(this.manualRefreshTimer);const e=document.querySelector("main");e?.removeEventListener("scroll",this._onScroll)},watch:{eventualSearchQuery:ge()((function(e){if(this.searchQuery=e,!this.hasAdvancedFiltering&&this.useQueryParamsForSimpleFiltering){const t={name:this.$route.name,params:{...this.$route.params},query:{...this.$route.query,q:e}};!e&&this.$route.query?.q&&(t.query={}),this.$router.replace(t)}}),200),descending(e,t){this.watcherUpdateLiveAndDelayed(e,t)},searchQuery(e,t){this.watcherUpdateLiveAndDelayed(e,t)},sortFields(e,t){this.watcherUpdateLiveAndDelayed(e,t)},groupBy(e,t){this.watcherUpdateLiveAndDelayed(e,t)},namespaces(e,t){this.watcherUpdateLiveAndDelayed(e,t)},page(e,t){this.watcherUpdateLiveAndDelayed(e,t)},forceUpdateLiveAndDelayed(e,t){this.watcherUpdateLiveAndDelayed(e,t)},initalLoad:{handler(e){e&&(this._didinit=!0,this.$nextTick((()=>this.updateLiveAndDelayed())))},immediate:!0},manualRefreshLoadingFinished:{handler(e,t){this.refreshButtonPhase=e?ae.R.ACTION:ae.R.WAITING,e&&e!==t&&this.$nextTick((()=>this.updateLiveAndDelayed()))},immediate:!0},loading:{handler(e,t){this.refreshButtonPhase=e?ae.R.WAITING:ae.R.ACTION,this.altLoading?e?this._altLoadingDelayTimer=setTimeout((()=>{this.isLoading=!0}),200):(clearTimeout(this._altLoadingDelayTimer),this.isLoading=!1):this.isLoading=e},immediate:!0}},created(){this.debouncedRefreshTableData=ge()(this.refreshTableData,500),this.debouncedPaginationChanged=ge()(this.paginationChanged,50)},computed:{...(0,Y.L8)({isTooManyItemsToAutoUpdate:"resource-fetch/isTooManyItemsToAutoUpdate"}),...(0,Y.L8)({isManualRefreshLoading:"resource-fetch/manualRefreshIsLoading"}),namespaces(){return this.$store.getters["activeNamespaceCache"]},initalLoad(){return!(this.isLoading||this._didinit||!this.rows?.length)},manualRefreshLoadingFinished(){const e=!(this.isLoading||!this._didinit||!this.rows?.length||this.isManualRefreshLoading);return e},fullColspan(){let e=0;for(let t=0;t<this.columns.length;t++)this.columns[t].hide||e++;return this.tableActions&&e++,this.subExpandColumn&&e++,this.rowActions&&e++,e},noResults(){return!!this.searchQuery&&0===this.pagedRows.length},noRows(){return!this.noResults&&0===(this.rows||[]).length},showHeaderRow(){return this.search||this.tableActions||this.$slots["header-left"]||this.$slots["header-middle"]||this.$slots["header-right"]||this.isTooManyItemsToAutoUpdate},columns(){const e=this.headers.slice().filter((e=>!e.maxPageSize||e.maxPageSize&&e.maxPageSize>=this.perPage));if(this.groupBy){const t=e.find((e=>e.name===this.groupBy));t&&(0,re.Gj)(e,t)}const t=e.find((e=>!e.width));if(!t){const t=e.find((e=>e.canBeVariable));if(t){const n=(0,ne.o8)(t);delete n.width,e.splice(e.indexOf(t),1,n)}}if(this.hasAdvancedFiltering){const t=this.handleColsVisibilyAndFiltering(e);return t}return e},dt(){const e={check:"Select: ",actions:"Actions: "};return this.columns.forEach((t=>{e[t.name]=`${t.label||t.name}:`})),e},classObject(){return{"top-divider":this.topDivider,"body-dividers":this.bodyDividers,"overflow-y":this.overflowY,"overflow-x":this.overflowX,"alt-loading":this.altLoading&&this.isLoading}},hasLiveColumns(){const e=this.columns.find((e=>e.formatter?.startsWith("Live")||e.liveUpdates));return!!e},hasDelayedColumns(){const e=this.columns.find((e=>e.delayLoading));return!!e},columnFormmatterIDs(){const e={};return this.columns.forEach((t=>{t.formatter&&(e[t.formatter]=(0,te._k)(t.formatter))})),e},displayRows(){const e=[],t=this.columnFormmatterIDs;return this.groupedRows.forEach((n=>{const i={grp:n,key:n.key,ref:n.ref,rows:[]};e.push(i),n.rows.forEach((e=>{const n={row:e,key:this.get(e,this.keyField),showSubRow:this.showSubRow(e,this.keyField),canRunBulkActionOfInterest:this.canRunBulkActionOfInterest(e),columns:[]};i.rows.push(n),this.columns.forEach((i=>{const a=i.delayLoading?void 0:this.valueFor(e,i,i.isLabel);let o,s=a,l=!1;if(Array.isArray(a)&&(s=a.join(", ")),i.formatter)if(pt[i.formatter])o=pt[i.formatter],l=!0;else{const e=this.$plugin?.getDynamic("formatters",i.formatter);e&&(o=(0,r.defineAsyncComponent)(e),l=!0)}n.columns.push({col:i,value:a,formatted:s,component:o,needRef:l,delayed:i.delayLoading,live:i.formatter?.startsWith("Live")||i.liveUpdates,label:this.labelFor(i),dasherize:t[i.formatter]||""})}))}))})),e}},methods:{refreshTableData(){this.$store.dispatch("resource-fetch/doManualRefresh")},get:ne.Jt,dasherize:te._k,onScroll(){(this.hasLiveColumns||this.hasDelayedColumns)&&(clearTimeout(this._liveColumnsTimer),clearTimeout(this._scrollTimer),clearTimeout(this._delayedColumnsTimer),this._scrollTimer=setTimeout((()=>{this.updateLiveColumns(),this.updateDelayedColumns()}),300))},watcherUpdateLiveAndDelayed(e,t){e!==t&&this.$nextTick((()=>this.updateLiveAndDelayed()))},updateLiveAndDelayed(){this.hasLiveColumns&&this.updateLiveColumns(),this.hasDelayedColumns&&this.updateDelayedColumns()},updateDelayedColumns(){if(clearTimeout(this._delayedColumnsTimer),!this.$refs.column||0===this.pagedRows.length)return;const e=this.$refs.column.filter((e=>e.startDelayedLoading&&!e.__delayedLoading)),t=(window.innerHeight||document.documentElement.clientHeight)+100;let n=0;for(let r=0;r<e.length;r++){const i=e[r],a=i.$el.getBoundingClientRect().y;if(a>=0&&a<=t&&(i.startDelayedLoading(!0),i.__delayedLoading=!0,n++,4===n))return void(this._delayedColumnsTimer=setTimeout(this.updateDelayedColumns,100))}},updateLiveColumns(){if(clearTimeout(this._liveColumnsTimer),!this.$refs.column||!this.hasLiveColumns||0===this.pagedRows.length)return;const e=window.innerHeight||document.documentElement.clientHeight,t=this.$refs.column.filter((e=>!!e.liveUpdate)),n=J()();let r=Number.MAX_SAFE_INTEGER;for(let i=0;i<t.length;i++){const a=t[i],o=a.$el.getBoundingClientRect().y;if(o>=0&&o<=e){const e=a.liveUpdate(n);e<r&&(r=e)}}r<1&&(r=1),this._liveColumnsTimer=setTimeout((()=>this.updateLiveColumns()),1e3*r)},labelFor(e){return e.labelKey?this.t(e.labelKey,void 0,!0):e.label?e.label:(0,te.TF)(e.name)},valueFor(e,t,n){if("function"===typeof t.value)return t.value(e);if(n)return e.metadata?.labels&&e.metadata?.labels[t.label]?e.metadata?.labels[t.label]:"";const r=t.value||t.name;if(!r)return mt.error("No path has been defined for this column, unable to get value of cell",t),"";const i=(0,ne.Jt)(e,r);return null===i||void 0===i?"":i},isExpanded(e){const t=e[this.keyField];return!!this.expanded[t]},toggleExpand(e){const t=e[this.keyField],n=!this.expanded[t];return this.expanded[t]=n,this.expanded={...this.expanded},n},setBulkActionOfInterest(e){this.actionOfInterest=e},canRunBulkActionOfInterest(e){if(!this.actionOfInterest||ee()(e?.availableActions))return!1;const t=e.availableActions?.find((e=>e.action===this.actionOfInterest.action));return t?.enabled},focusSearch(){this.$refs.searchQuery&&(this.$refs.searchQuery.focus(),this.$refs.searchQuery.select())},nearestCheckbox(){return document.activeElement.closest("tr.main-row")?.querySelector(".checkbox-custom")},focusAdjacent(e=!0){const t=Array.from(this.$el.querySelectorAll(".checkbox-custom")),n=this.nearestCheckbox();let r=-1;return r=n?t.indexOf(n)+(e?1:-1):e?1:t.length-1,r<1?(r=1,null):r>=t.length?(r=t.length-1,null):t[r]?(t[r].focus(),t[r]):void 0},focusNext:fe()((function(e,t=!1){const n=this.focusAdjacent(!0),r=Pe(n,"tr");r?.classList.contains("row-selected")||this.keySelectRow(r,t)}),50),focusPrevious:fe()((function(e,t=!1){const n=this.focusAdjacent(!1),r=Pe(n,"tr");r?.classList.contains("row-selected")||this.keySelectRow(r,t)}),50),showSubRow(e,t){const n=this.subRows&&(!this.subExpandable||this.expanded[(0,ne.Jt)(e,t)]),r=this.subRowsDescription&&e.stateDescription;return n||r},handleActionButtonClick(e,t){this.$emit("clickedActionButton",{event:t,targetElement:this.$refs[`actionButton${e}`][0]})},paginationChanged(){this.externalPaginationEnabled&&this.$emit("pagination-changed",{page:this.page,perPage:this.perPage,filter:{searchFields:this.searchFields,searchQuery:this.searchQuery},sort:this.sortFields,descending:this.descending})}}};n(90828),n(21198);const vt=(0,ue.A)(gt,[["render",W],["__scopeId","data-v-171d81ac"]]);var bt=vt},22896:function(e,t,n){"use strict";n.d(t,{A:function(){return c}});var r=n(65359);function i(...e){document.title=e.filter((e=>e)).join(" - ")}var a=n(49845),o=n(4364),s={props:{breadcrumb:{type:[String,Boolean],default:"full",validator(e){return["full","vendor-only"].includes(e)||!1===e}},includeVendor:{type:Boolean,default:!0},showChild:{type:Boolean,default:!0}},computed:{...(0,r.L8)(["isExplorer","currentCluster","currentProduct"])},methods:{computeTitle(){if(!this.$slots.default||"string"!==typeof this.$slots.default()[0].children)return o.error("The <TabTitle> component only supports text as the child."),[];const e=[this.$slots.default()[0].children.trim()];if("full"===this.breadcrumb)if(this.currentCluster&&(this.isExplorer||this.currentCluster.isHarvester))e.unshift(this.currentCluster.nameDisplay);else if(this.currentProduct?.name){const t=this.$store.getters["i18n/withFallback"](`product.${this.currentProduct.name}`,null,null);t&&e.unshift(t)}return this.includeVendor&&["full","vendor-only"].includes(this.breadcrumb)&&e.unshift((0,a.f7)()),e},updatePageTitle(){i(...this.computeTitle())}},created(){this.updatePageTitle()},render(){return this.updatePageTitle(),this.showChild?this.$slots.default():null}};const l=s;var c=l},49584:function(e,t,n){"use strict";n.d(t,{A:function(){return d}});var r=n(9274);const i=["id","aria-hidden"],a={key:0,class:"tab-header"},o={key:0,class:"icon icon-info icon-lg"};function s(e,t,n,s,l,c){const u=(0,r.resolveDirective)("clean-tooltip");return(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("section",{id:n.name,"aria-hidden":!l.active,role:"tabpanel"},[c.shouldShowHeader?((0,r.openBlock)(),(0,r.createElementBlock)("div",a,[(0,r.createElementVNode)("h2",null,[(0,r.createTextVNode)((0,r.toDisplayString)(c.labelDisplay)+" ",1),n.tooltip?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",o,null,512)),[[u,n.tooltip]]):(0,r.createCommentVNode)("",!0)]),(0,r.renderSlot)(e.$slots,"tab-header-right",{},void 0,!0)])):(0,r.createCommentVNode)("",!0),(0,r.renderSlot)(e.$slots,"default",(0,r.normalizeProps)((0,r.guardReactiveProps)({active:l.active})),void 0,!0)],8,i)),[[r.vShow,l.active]])}var l={inject:["addTab","removeTab","sideTabs"],emits:["active"],props:{label:{default:null,type:String},labelKey:{default:null,type:String},name:{required:!0,type:String},tooltip:{default:null,type:[String,Object]},weight:{default:0,required:!1,type:Number},showHeader:{type:Boolean,default:null},displayAlertIcon:{type:Boolean,default:null},error:{type:Boolean,default:!1},badge:{default:0,required:!1,type:Number}},data(){return{active:null}},computed:{labelDisplay(){return this.labelKey?this.$store.getters["i18n/t"](this.labelKey):this.label?this.label:this.name},shouldShowHeader(){return null!==this.showHeader?this.showHeader:this.sideTabs||!1}},watch:{active(e){e&&this.$emit("active")}},mounted(){this.addTab(this)},beforeUnmount(){this.removeTab(this)}},c=(n(24e3),n(47433));const u=(0,c.A)(l,[["render",s],["__scopeId","data-v-6f6df00a"]]);var d=u},59808:function(e,t,n){"use strict";n.d(t,{A:function(){return A}});var r=n(9274);const i=["id","data-testid"],a=["data-testid","aria-controls","aria-selected","aria-label","onClick","onKeyup"],o={key:0,class:"tab-badge"},s={key:1,class:"conditions-alert-icon icon-error"},l={key:0,class:"tab disabled"},c={key:1,class:"tab-list-footer"},u=["disabled"];function d(e,t,n,d,h,p){const f=(0,r.resolveComponent)("Tab"),m=(0,r.resolveDirective)("clean-tooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:(0,r.normalizeClass)({"side-tabs":!!n.sideTabs,"tabs-only":n.tabsOnly}),"data-testid":"tabbed"},[p.hideTabs?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)("ul",{key:0,ref:"tablist",role:"tablist",class:(0,r.normalizeClass)(["tabs",{clearfix:!n.sideTabs,vertical:n.sideTabs,horizontal:!n.sideTabs}]),"data-testid":"tabbed-block",onKeydown:[t[3]||(t[3]=(0,r.withKeys)((0,r.withModifiers)((e=>p.selectNext(1)),["prevent"]),["right"])),t[4]||(t[4]=(0,r.withKeys)((0,r.withModifiers)((e=>p.selectNext(-1)),["prevent"]),["left"])),t[5]||(t[5]=(0,r.withKeys)((0,r.withModifiers)((e=>p.selectNext(1)),["prevent"]),["down"])),t[6]||(t[6]=(0,r.withKeys)((0,r.withModifiers)((e=>p.selectNext(-1)),["prevent"]),["up"]))]},[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(p.sortedTabs,(t=>((0,r.openBlock)(),(0,r.createElementBlock)("li",{id:t.name,key:t.name,"data-testid":t.name,class:(0,r.normalizeClass)({tab:!0,active:t.active,disabled:t.disabled,error:t.error}),role:"presentation"},[(0,r.createElementVNode)("a",{"data-testid":`btn-${t.name}`,"aria-controls":"#"+t.name,"aria-selected":t.active,"aria-label":t.labelDisplay,role:"tab",tabindex:"0",onClick:(0,r.withModifiers)((e=>p.select(t.name,e)),["prevent"]),onKeyup:[(0,r.withKeys)((e=>p.select(t.name,e)),["enter"]),(0,r.withKeys)((e=>p.select(t.name,e)),["space"])]},[(0,r.createElementVNode)("span",null,(0,r.toDisplayString)(t.labelDisplay),1),t.badge?((0,r.openBlock)(),(0,r.createElementBlock)("span",o,(0,r.toDisplayString)(t.badge),1)):(0,r.createCommentVNode)("",!0),p.hasIcon(t)?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",s,null,512)),[[m,e.t("validation.tab")]]):(0,r.createCommentVNode)("",!0)],40,a)],10,i)))),128)),n.sideTabs&&!p.sortedTabs.length?((0,r.openBlock)(),(0,r.createElementBlock)("li",l,[(0,r.createElementVNode)("a",{href:"#",onClick:t[0]||(t[0]=(0,r.withModifiers)((()=>{}),["prevent"]))},"(None)")])):(0,r.createCommentVNode)("",!0),n.sideTabs&&n.showTabsAddRemove?((0,r.openBlock)(),(0,r.createElementBlock)("ul",c,[(0,r.createElementVNode)("li",null,[(0,r.createElementVNode)("button",{type:"button",class:"btn bg-transparent","data-testid":"tab-list-add",onClick:t[1]||(t[1]=(...e)=>p.tabAddClicked&&p.tabAddClicked(...e))},t[7]||(t[7]=[(0,r.createElementVNode)("i",{class:"icon icon-plus"},null,-1)])),(0,r.createElementVNode)("button",{type:"button",class:"btn bg-transparent",disabled:!p.sortedTabs.length,"data-testid":"tab-list-remove",onClick:t[2]||(t[2]=(...e)=>p.tabRemoveClicked&&p.tabRemoveClicked(...e))},t[8]||(t[8]=[(0,r.createElementVNode)("i",{class:"icon icon-minus"},null,-1)]),8,u)])])):(0,r.createCommentVNode)("",!0),(0,r.renderSlot)(e.$slots,"tab-row-extras",{},void 0,!0)],34)),(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)({"tab-container":!!h.tabs.length||!!n.sideTabs,"no-content":n.noContent,"tab-container--flat":!!n.flat})},[(0,r.renderSlot)(e.$slots,"default",{},void 0,!0),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(h.extensionTabs,((e,t)=>((0,r.openBlock)(),(0,r.createBlock)(f,{key:`${e.name}${t}`,name:e.name,label:e.label,"label-key":e.labelKey,weight:e.weight,tooltip:e.tooltip,"show-header":e.showHeader,"display-alert-icon":e.displayAlertIcon,error:e.error,badge:e.badge},{default:(0,r.withCtx)((()=>[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(e.component)))])),_:2},1032,["name","label","label-key","weight","tooltip","show-header","display-alert-icon","error","badge"])))),128))],2)],2)}var h=n(13981),p=n.n(h),f=n(3514),m=n.n(f),g=n(68851),v=n(74302),b=n(92154),y=n.n(b),w=n(31915),E=n(25659),_=n(49584),S={name:"Tabbed",components:{Tab:_.A},emits:["changed","addTab","removeTab"],props:{defaultTab:{type:String,default:null},sideTabs:{type:Boolean,default:!1},hideSingleTab:{type:Boolean,default:!1},showTabsAddRemove:{type:Boolean,default:!1},scrollOnChange:{type:Boolean,default:!1},useHash:{type:Boolean,default:!0},noContent:{type:Boolean,default:!1},flat:{type:Boolean,default:!1},tabsOnly:{type:Boolean,default:!1}},provide(){const e=this.tabs;return{sideTabs:this.sideTabs,addTab(t){const n=(0,g.jq)(e,"name",t.name);n&&(0,g.Gj)(e,n),(0,g.PG)(e,t)},removeTab(t){(0,g.Gj)(e,t)}}},data(){const e=(0,E.A)(this,w.c7.TAB,w.lX.RESOURCE_DETAIL,this.$route,this,this.extensionParams)||[],t=e.map((e=>({...e,active:!1})));return{tabs:[...t],extensionTabs:t,activeTabName:null}},computed:{sortedTabs(){return(0,v.Ul)(this.tabs,["weight:desc","labelDisplay","name"])},hideTabs(){return this.hideSingleTab&&1===this.sortedTabs.length}},watch:{sortedTabs(e){const{defaultTab:t,useHash:n}=this,r=e.find((e=>e.active)),i=n?this.$route.hash:void 0,a=n?i.slice(1):void 0,o=e.find((e=>e.name===a&&!e.active)),s=p()(e)||null;m()(r)?n&&!m()(o)?this.select(o.name):m()(t)||m()(e.find((e=>e.name===t)))?s?.name&&this.select(s.name):this.select(t):n&&r?.name===a&&this.select(r.name)}},mounted(){this.useHash&&window.addEventListener("hashchange",this.hashChange)},unmounted(){this.useHash&&window.removeEventListener("hashchange",this.hashChange)},methods:{hasIcon(e){return e.displayAlertIcon||e.error&&!e.active},hashChange(){if(!this.scrollOnChange){const e=document.getElementsByTagName("main")[0];e&&(e.scrollTop=0)}this.select(this.$route.hash)},find(e){return this.sortedTabs.find((t=>t.name===e))},select(e){const{sortedTabs:t}=this,n=this.find(e),r=`#${e}`;if(n&&!n.disabled){if(this.useHash){const e=this.$router.currentRoute._value,t=e.hash;if(this.useHash&&t!==r){const t={...e};t.hash=r,this.$router.replace(t)}}for(const e of t)e.active=e.name===n.name;this.$emit("changed",{tab:n,selectedName:n.name}),this.activeTabName=n.name}},selectNext(e){const{sortedTabs:t}=this,n=t.findIndex((e=>e.active)),r=a(n,e,t.length),i=t[r].name;function a(e,t,n){const r=e+t;return r>=n?0:r<=0?n-1:r}this.select(i),this.$nextTick((()=>{this.$refs.tablist.focus()}))},tabAddClicked(){const e=y()(this.tabs,(e=>e.active));this.$emit("addTab",e)},tabRemoveClicked(){const e=y()(this.tabs,(e=>e.active));this.$emit("removeTab",e)}}},k=(n(16892),n(47433));const x=(0,k.A)(S,[["render",d],["__scopeId","data-v-79e80ea7"]]);var A=x},8529:function(e,t,n){"use strict";n.d(t,{A:function(){return c}});var r=n(9274);const i={class:"tag"};function a(e,t,n,a,o,s){return(0,r.openBlock)(),(0,r.createElementBlock)("span",i,[(0,r.renderSlot)(e.$slots,"default",{},void 0,!0)])}var o={},s=(n(4901),n(47433));const l=(0,s.A)(o,[["render",a],["__scopeId","data-v-0d281a35"]]);var c=l},89559:function(e,t,n){"use strict";n.d(t,{A:function(){return p}});var r=n(9274);function i(e,t,n,i,a,o){const s=(0,r.resolveComponent)("Banner");return o.typeDescriptionKey?((0,r.openBlock)(),(0,r.createBlock)(s,{key:0,class:"type-banner mb-20 mt-0",color:"info",closable:!0,"label-key":o.typeDescriptionKey,onClose:o.hideTypeDescription},null,8,["label-key","onClose"])):(0,r.createCommentVNode)("",!0)}var a=n(65359),o=n(9980),s=n(91462),l=n(68851),c=n(35664),u={components:{Banner:o.l},props:{resource:{type:String,required:!0}},computed:{...(0,a.L8)(["currentCluster"]),hideDescriptions:(0,s.AN)(s.xL),typeDescriptionKey(){let e;return e=this.resource===c.W8.CLUSTER_REPO?!this.currentCluster||this.currentCluster.isLocal?'typeDescription."catalog.cattle.io.clusterrepo.local"':'typeDescription."catalog.cattle.io.clusterrepo"':`typeDescription."${this.resource}"`,!this.hideDescriptions.includes(this.resource)&&!this.hideDescriptions.includes("ALL")&&(!!this.$store.getters["i18n/exists"](e)&&e)}},methods:{hideTypeDescription(){const e=this.hideDescriptions.slice();(0,l.PG)(e,this.resource),this.hideDescriptions=e}}},d=n(47433);const h=(0,d.A)(u,[["render",i]]);var p=h},36143:function(e,t,n){"use strict";n.d(t,{j:function(){return S},A:function(){return A}});var r=n(9274);const i={class:"yaml-editor"},a={class:"text-right"},o={key:0,class:"btn-group btn-sm diff-mode"};function s(e,t,n,s,l,c){const u=(0,r.resolveComponent)("CodeMirror"),d=(0,r.resolveComponent)("FileDiff"),h=(0,r.resolveDirective)("trim-whitespace");return(0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createElementVNode)("div",a,[c.isPreview&&!n.hidePreviewButtons?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("span",o,[(0,r.createElementVNode)("button",{type:"button",class:(0,r.normalizeClass)(["btn btn-sm bg-default",{active:"split"!==c.diffMode}]),onClick:t[0]||(t[0]=e=>c.diffMode="unified")},"Unified",2),(0,r.createElementVNode)("button",{type:"button",class:(0,r.normalizeClass)(["btn btn-sm bg-default",{active:"split"===c.diffMode}]),onClick:t[1]||(t[1]=e=>c.diffMode="split")},"Split",2)])),[[h]]):(0,r.createCommentVNode)("",!0)]),c.showCodeEditor?((0,r.openBlock)(),(0,r.createBlock)(u,{key:0,ref:"cm",class:(0,r.normalizeClass)({fill:!0,scrolling:n.scrolling}),value:l.curValue,options:c.codeMirrorOptions,showKeyMapBox:!0,"data-testid":n.componentTestid+"-code-mirror",onOnInput:c.onInput,onOnReady:c.onReady,onOnChanges:c.onChanges,onValidationChanged:t[2]||(t[2]=t=>e.$emit("validationChanged",t))},null,8,["class","value","options","data-testid","onOnInput","onOnReady","onOnChanges"])):((0,r.openBlock)(),(0,r.createBlock)(d,{key:1,class:(0,r.normalizeClass)({fill:!0,scrolling:n.scrolling}),filename:".yaml","side-by-side":"split"===c.diffMode,orig:l.original,neu:l.curValue,"footer-space":80},null,8,["class","side-by-side","orig","neu"]))])}var l=n(20246),c=n.n(l),u=n(91462),d=n(3514),h=n.n(d),p=n(37648),f=n(94965);const m={id:"diffElement",ref:"root",class:"root"};function g(e,t,n,i,a,o){const s=(0,r.resolveComponent)("resize-observer");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[(0,r.createVNode)(s,{onNotify:o.fit},null,8,["onNotify"]),(0,r.createElementVNode)("div",m,null,512)])}var v=n(34312),b=n(46867),y={props:{filename:{type:String,default:"file.txt"},sideBySide:{type:Boolean,default:!1},orig:{type:String,required:!0},neu:{type:String,required:!0},autoResize:{type:Boolean,default:!0},footerSpace:{type:Number,default:0},minHeight:{type:Number,default:200}},mounted(){this.draw()},watch:{sideBySide(){this.draw()}},methods:{draw(){const e=document.getElementById("diffElement"),t=(0,b.createPatch)(this.filename,this.orig,this.neu),n={synchronisedScroll:!0,outputFormat:this.sideBySide?"side-by-side":"line-by-line",drawFileList:!1,matching:"words"},r=new v.Diff2HtmlUI(e,t,n);r.draw(),this.fit()},fit(){if(!this.autoResize)return;const e=this.$refs.root;if(!e)return;const t=e.getBoundingClientRect();if(!t)return;const n=window.innerHeight-t.top-this.footerSpace;e.style.height=`${Math.max(0,n)}px`}}},w=(n(32435),n(45978),n(47433));const E=(0,w.A)(y,[["render",g],["__scopeId","data-v-639a852a"]]);var _=E;const S={EDIT_CODE:"EDIT_CODE",VIEW_CODE:"VIEW_CODE",DIFF_CODE:"DIFF_CODE"};var k={emits:["update:value","newObject","onInput","onReady","onChanges","validationChanged"],components:{CodeMirror:f.A,FileDiff:_},props:{editorMode:{type:String,default:S.EDIT_CODE,validator(e){return Object.values(S).includes(e)}},asObject:{type:Boolean,default:!1},initialYamlValues:{type:[String,Object],default:""},scrolling:{type:Boolean,default:!0},value:{type:[String,Object],default:""},hidePreviewButtons:{type:Boolean,default:!1},componentTestid:{type:String,default:"yaml-editor"}},data(){const{initialYamlValues:e,value:t}=this;let n,r;return n=this.asObject?(0,p.Kq)(t):t||"",r=this.asObject&&e?(0,p.Kq)(e):e,h()(r)&&(r=t),{original:r,curValue:n}},computed:{codeMirrorOptions(){const e=this.editorMode===S.VIEW_CODE,t=[];return e||t.push("CodeMirror-lint-markers"),t.push("CodeMirror-foldgutter"),{readOnly:e,gutters:t,mode:"yaml",lint:!e,lineNumbers:!e,styleActiveLine:!1,tabSize:2,indentWithTabs:!1,cursorBlinkRate:e?-1:530,extraKeys:{"Ctrl-Space":"autocomplete",Tab:e=>{e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertSoftTab")},"Shift-Tab":e=>{e.indentSelection("subtract")}},screenReaderLabel:this.t("import.editor.label")}},isPreview(){return this.editorMode===S.DIFF_CODE},diffMode:(0,u.AN)(u.Mu),showCodeEditor(){return[S.EDIT_CODE,S.VIEW_CODE].includes(this.editorMode)}},watch:{showUploadPrompt(e){e&&this.$refs.yamluploader.click()}},methods:{focus(){this.$refs.cm&&this.$refs.cm.focus()},refresh(){this.$refs.cm&&this.$refs.cm.refresh()},onInput(e){this.asObject||this.$emit("update:value",...arguments);try{const t=c().load(e);this.asObject?this.$emit("update:value",t):this.$emit("newObject",t)}catch(t){}this.$emit("onInput",...arguments)},onReady(){this.$emit("onReady",...arguments)},onChanges(){this.$emit("onChanges",...arguments)},updateValue(e){this.curValue=e,this.$refs.cm.updateValue(e)}}};n(31135);const x=(0,w.A)(k,[["render",s]]);var A=x},22133:function(e,t,n){"use strict";n.d(t,{A:function(){return O}});var r=n(9274);const i={key:0,class:"clearfix"},a={key:0,class:"required"},o={key:1,class:"icon icon-info"},s={key:0},l={class:"value text-label mb-10"},c=["data-testid"],u={class:"value"},d=["onUpdate:modelValue","data-testid","placeholder","disabled","onPaste"],h={key:0,class:"remove"},p=["disabled","data-testid","onClick"],f={key:2},m={key:0,class:"text-muted"},g={key:3,class:"footer mt-20"},v=["disabled"],b={key:0,class:"mr-5 icon icon-spinner icon-spin icon-lg"};function y(e,t,n,y,w,E){const _=(0,r.resolveComponent)("TextAreaAutoGrow"),S=(0,r.resolveComponent)("LabeledInput"),k=(0,r.resolveDirective)("clean-tooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[n.title?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.renderSlot)(e.$slots,"title",{},(()=>[(0,r.createElementVNode)("h3",null,[(0,r.createTextVNode)((0,r.toDisplayString)(n.title)+" ",1),n.required?((0,r.openBlock)(),(0,r.createElementBlock)("span",a,"*")):(0,r.createCommentVNode)("",!0),E.showProtip?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",o,null,512)),[[k,n.protip]]):(0,r.createCommentVNode)("",!0)])]),!0)])):(0,r.createCommentVNode)("",!0),w.rows.length?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[n.showHeader?((0,r.openBlock)(),(0,r.createElementBlock)("div",s,[(0,r.renderSlot)(e.$slots,"column-headers",{},(()=>[(0,r.createElementVNode)("label",l,(0,r.toDisplayString)(n.valueLabel),1)]),!0)])):(0,r.createCommentVNode)("",!0),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(w.rows,((t,i)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:i,"data-testid":`array-list-box${i}`,class:"box"},[(0,r.renderSlot)(e.$slots,"columns",{queueUpdate:e.queueUpdate,i:i,rows:w.rows,row:t,mode:n.mode,isView:E.isView},(()=>[(0,r.createElementVNode)("div",u,[(0,r.renderSlot)(e.$slots,"value",{row:t,mode:n.mode,isView:E.isView,queueUpdate:e.queueUpdate},(()=>[n.valueMultiline?((0,r.openBlock)(),(0,r.createBlock)(_,{key:0,ref_for:!0,ref:"value",value:t.value,"onUpdate:value":[e=>t.value=e,e.queueUpdate],"data-testid":`textarea-${i}`,placeholder:n.valuePlaceholder,mode:n.mode,disabled:n.disabled,onPaste:e=>E.onPaste(i,e)},null,8,["value","onUpdate:value","data-testid","placeholder","mode","disabled","onPaste"])):n.rules.length>0?((0,r.openBlock)(),(0,r.createBlock)(S,{key:1,ref_for:!0,ref:"value",value:t.value,"onUpdate:value":[e=>t.value=e,e.queueUpdate],"data-testid":`labeled-input-${i}`,placeholder:n.valuePlaceholder,disabled:E.isView||n.disabled,rules:n.rules,compact:!1,onPaste:e=>E.onPaste(i,e)},null,8,["value","onUpdate:value","data-testid","placeholder","disabled","rules","onPaste"])):(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("input",{key:2,ref_for:!0,ref:"value","onUpdate:modelValue":e=>t.value=e,"data-testid":`input-${i}`,placeholder:n.valuePlaceholder,disabled:E.isView||n.disabled,onPaste:e=>E.onPaste(i,e)},null,40,d)),[[r.vModelText,t.value]])]),!0)])]),!0),E.showRemove?((0,r.openBlock)(),(0,r.createElementBlock)("div",h,[(0,r.renderSlot)(e.$slots,"remove-button",{remove:()=>E.remove(t,i),i:i,row:t},(()=>[(0,r.createElementVNode)("button",{type:"button",disabled:E.isView,class:"btn role-link","data-testid":`remove-item-${i}`,onClick:e=>E.remove(t,i)},(0,r.toDisplayString)(E._removeLabel),9,p)]),!0)])):(0,r.createCommentVNode)("",!0)],8,c)))),128))],64)):((0,r.openBlock)(),(0,r.createElementBlock)("div",f,[(0,r.renderSlot)(e.$slots,"empty",{},(()=>["view"===n.mode?((0,r.openBlock)(),(0,r.createElementBlock)("div",m," — ")):(0,r.createCommentVNode)("",!0)]),!0)])),E.showAdd&&!E.isView?((0,r.openBlock)(),(0,r.createElementBlock)("div",g,[E.showAdd?(0,r.renderSlot)(e.$slots,"add",{key:0,add:E.add},(()=>[(0,r.createElementVNode)("button",{type:"button",class:"btn role-tertiary add",disabled:n.loading||E.disableAdd,"data-testid":"array-list-button",onClick:t[0]||(t[0]=e=>E.add())},[n.loading?((0,r.openBlock)(),(0,r.createElementBlock)("i",b)):(0,r.createCommentVNode)("",!0),(0,r.createTextVNode)(" "+(0,r.toDisplayString)(E._addLabel),1)],8,v)]),!0):(0,r.createCommentVNode)("",!0)])):(0,r.createCommentVNode)("",!0)])}var w=n(12784),E=n.n(w),_=n(14220),S=n(68851),k=n(6879),x=n(76978),A=n(79380);const N="Tip: Paste lines into any list field for easy bulk entry";var C={emits:["add","remove","update:value"],components:{TextAreaAutoGrow:k.V,LabeledInput:A.o},props:{value:{type:Array,default:null},mode:{type:String,default:_.G5},initialEmptyRow:{type:Boolean,default:!1},title:{type:String,default:""},protip:{type:[String,Boolean],default:N},showHeader:{type:Boolean,default:!1},valueLabel:{type:String,default:"Value"},valuePlaceholder:{type:String,default:"e.g. bar"},valueMultiline:{type:Boolean,default:!1},addLabel:{type:String,default:""},addAllowed:{type:Boolean,default:!0},addDisabled:{type:Boolean,default:!1},removeLabel:{type:String,default:""},removeAllowed:{type:Boolean,default:!0},defaultAddValue:{type:[String,Number,Object,Array],default:""},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},rules:{default:()=>[],type:Array,validator:e=>e.every((e=>["function"].includes(typeof e)))}},data(){const e=(Array.isArray(this.value)?this.value:[]).slice(),t=[];for(const n of e)t.push({value:n});if(!t.length&&this.initialEmptyRow){const e=this.defaultAddValue?(0,x.o8)(this.defaultAddValue):"";t.push({value:e})}return{rows:t,lastUpdateWasFromValue:!1}},computed:{_addLabel(){return this.addLabel||this.t("generic.add")},_removeLabel(){return this.removeLabel||this.t("generic.remove")},isView(){return this.mode===_.nW},showAdd(){return this.addAllowed},disableAdd(){return this.addDisabled},showRemove(){return this.removeAllowed},isDefaultProtip(){return this.protip===N},showProtip(){return!(!this.protip||this.isDefaultProtip)||!this.valueMultiline&&this.protip}},watch:{value:{deep:!0,handler(){this.lastUpdateWasFromValue=!0,this.rows=(this.value||[]).map((e=>({value:e})))}},rows:{deep:!0,handler(e,t){this.lastUpdateWasFromValue||this.queueUpdate(),this.lastUpdateWasFromValue=!1}}},created(){this.queueUpdate=E()(this.update,50)},methods:{add(){this.rows.push({value:(0,x.o8)(this.defaultAddValue)}),this.defaultAddValue&&this.queueUpdate(),this.$nextTick((()=>{const e=this.$refs.value;e&&e.length>0&&e[e.length-1].focus(),this.$emit("add")}))},remove(e,t){this.$emit("remove",{row:e,index:t}),(0,S.Wq)(this.rows,t),this.queueUpdate()},update(){if(this.isView)return;const e=[];for(const t of this.rows){const n=!this.valueMultiline&&"string"===typeof t.value,r=n?t.value.trim():t.value;"undefined"!==typeof r&&e.push(r)}this.$emit("update:value",e)},onPaste(e,t){t.preventDefault();const n=t.clipboardData.getData("text/plain");if(this.valueMultiline)this.rows[e].value=n;else{const r=n.split("\n").map((e=>({value:e})));t.preventDefault(),this.rows.splice(e,1,...r)}this.update()}}},T=(n(58222),n(47433));const R=(0,T.A)(C,[["render",y],["__scopeId","data-v-d6b8fa5e"]]);var O=R},31097:function(e,t,n){"use strict";n.d(t,{A:function(){return p}});var r=n(9274);const i=["data-testid","onClick"],a={key:1};function o(e,t,n,o,s,l){const c=(0,r.resolveComponent)("InfoBox"),u=(0,r.resolveComponent)("ArrayList");return(0,r.openBlock)(),(0,r.createBlock)(u,(0,r.mergeProps)({class:"array-list-grouped",value:n.value},e.$attrs,{"add-allowed":n.canAdd&&!l.isView,mode:n.mode,"initial-empty-row":n.initialEmptyRow,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t)),onAdd:t[1]||(t[1]=t=>e.$emit("add")),onRemove:t[2]||(t[2]=t=>e.$emit("remove",t))}),(0,r.createSlots)({columns:(0,r.withCtx)((t=>[(0,r.createVNode)(c,null,{default:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"default",(0,r.normalizeProps)((0,r.guardReactiveProps)(t)))])),_:2},1024)])),"remove-button":(0,r.withCtx)((e=>[l.canRemoveRow(e.row,e.i)?((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,type:"button",class:"btn role-link close btn-sm","data-testid":`remove-item-${e.i}`,onClick:e.remove},t[3]||(t[3]=[(0,r.createElementVNode)("i",{class:"icon icon-x"},null,-1)]),8,i)):((0,r.openBlock)(),(0,r.createElementBlock)("span",a))])),_:2},[(0,r.renderList)(e.$slots,((t,n)=>({name:n,fn:(0,r.withCtx)((t=>["function"===typeof e.$slots[n]?(0,r.renderSlot)(e.$slots,n,(0,r.normalizeProps)((0,r.mergeProps)({key:0},t))):(0,r.createCommentVNode)("",!0)]))})))]),1040,["value","add-allowed","mode","initial-empty-row"])}var s=n(22133),l=n(26962),c=n(14220),u={name:"ArrayListGrouped",components:{ArrayList:s.A,InfoBox:l.A},props:{canRemove:{type:[Boolean,Function],default:!0},canAdd:{type:Boolean,default:!0},initialEmptyRow:{type:Boolean,default:!1},mode:{type:String,default:c.G5},value:{type:Object,default:()=>({})}},emits:["update:value","add","remove"],computed:{isView(){return this.mode===c.nW}},methods:{canRemoveRow(e,t){return!this.isView&&("function"===typeof this.canRemove?this.canRemove(e,t):this.canRemove)}}},d=(n(53575),n(47433));const h=(0,d.A)(u,[["render",o]]);var p=h},29649:function(e,t,n){"use strict";n.d(t,{B:function(){return c},A:function(){return p}});var r=n(9274);const i=["disabled","aria-label"],a=["multiple","webkitdirectory","accept"];function o(e,t,n,o,s,l){return l.isView?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)("button",{key:0,disabled:n.disabled,"aria-label":n.label,type:"button",role:"button",class:"file-selector btn","data-testid":"file-selector__uploader-button",onClick:t[1]||(t[1]=(...e)=>l.selectFile&&l.selectFile(...e))},[(0,r.createElementVNode)("span",null,(0,r.toDisplayString)(n.label),1),(0,r.createElementVNode)("input",{ref:"uploader",type:"file",class:"hide",multiple:n.multiple,webkitdirectory:n.directory,accept:n.accept,onChange:t[0]||(t[0]=(...e)=>l.fileChange&&l.fileChange(...e))},null,40,a)],8,i))}var s=n(14220),l=n(76978);function c(e){return function(t){(0,l.hZ)(this,e,t)}}var u={emits:["error","selected"],props:{label:{type:String,required:!0},mode:{type:String,default:s.G5},disabled:{type:Boolean,default:!1},includeFileName:{type:Boolean,default:!1},showGrowlError:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},byteLimit:{type:Number,default:0},readAsDataUrl:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},rawData:{type:Boolean,default:!1},accept:{type:String,default:"*"}},computed:{isView(){return this.mode===s.nW}},methods:{selectFile(){this.$refs.uploader.value=null,this.$refs.uploader.click()},async fileChange(e){const t=e.target,n=Array.from(t.files||[]);if(this.byteLimit)for(const i of n)if(i.size>this.byteLimit)return void this.$emit("error",`${i.name} exceeds the file size limit of ${this.byteLimit} bytes`);if(this.rawData){const e=this.multiple||1!==n.length?n:n[0];this.$emit("selected",e)}else try{const e=n.map(this.getFileContents),t=await Promise.all(e),r=this.multiple||1!==t.length?t:t[0];this.$emit("selected",r)}catch(r){this.$emit("error",r),this.showGrowlError&&this.$store.dispatch("growl/fromError",{title:"Error reading file",error:r},{root:!0})}},getFileContents(e){return new Promise(((t,n)=>{const r=new FileReader;r.onload=n=>{const r=n.target.result,i=e.name,a=this.includeFileName?{value:r,name:i}:r;t(a)},r.onerror=e=>{n(e)},this.readAsDataUrl?r.readAsDataURL(e):r.readAsText(e)}))}}},d=n(47433);const h=(0,d.A)(u,[["render",o]]);var p=h},89210:function(e,t,n){"use strict";n.d(t,{A:function(){return m}});var r=n(9274);const i={key:0},a={class:"buttons"},o={class:"left"},s={class:"right"};function l(e,t,n,l,c,u){const d=(0,r.resolveComponent)("Banner"),h=(0,r.resolveComponent)("t"),p=(0,r.resolveComponent)("AsyncButton");return e.isView?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[t[1]||(t[1]=(0,r.createElementVNode)("div",{class:"spacer-small"},null,-1)),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.errors,((e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:t},[(0,r.createVNode)(d,{color:"error",label:e},null,8,["label"])])))),128)),(0,r.createElementVNode)("div",a,[(0,r.createElementVNode)("div",o,[(0,r.renderSlot)(e.$slots,"left")]),(0,r.createElementVNode)("div",s,[(0,r.renderSlot)(e.$slots,"cancel",{},(()=>[(0,r.createElementVNode)("button",{type:"button",class:"btn role-secondary",onClick:t[0]||(t[0]=(...t)=>e.done&&e.done(...t))},[(0,r.createVNode)(h,{k:"generic.cancel"})])])),(0,r.renderSlot)(e.$slots,"middle"),(0,r.renderSlot)(e.$slots,"save",{},(()=>[e.isView?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createBlock)(p,{key:0,mode:e.mode,disabled:e.disableSave,onClick:e.save},null,8,["mode","disabled","onClick"]))])),(0,r.renderSlot)(e.$slots,"right")])])]))}var c=n(14220),u=n(88857),d=n(56943),h=(0,r.defineComponent)({emits:["save","done"],components:{AsyncButton:u.A,Banner:d.A},props:{mode:{type:String,required:!0},errors:{type:Array,default:null},disableSave:{type:Boolean,default:!1}},computed:{isView(){return this.mode===c.nW}},methods:{save(e){this.$emit("save",e)},done(){this.$emit("done")}}}),p=(n(13343),n(47433));const f=(0,p.A)(h,[["render",l]]);var m=f},77988:function(e,t,n){"use strict";n.d(t,{A:function(){return B}});var r=n(9274);const i=["tabindex"],a={key:0},o={key:2,class:"required"},s={key:0,class:"only-user-opts"},l={key:1,class:"vs__option-kind-group"},c={key:1},u={key:2},d={key:3,class:"option-kind-highlighted"},h=["onMousedown"],p={key:0,class:"icon icon-warning pull-right",style:{"font-size":"20px"}},f={key:0,class:"pagination-slot"},m={class:"load-more"},g={key:0,class:"icon icon-spinner icon-spin"},v={key:1},b={class:"count"},y={class:"no-options-slot"},w={key:0},E={key:1,class:"paginating"},_={key:0,class:"icon icon-spinner icon-spin icon-lg"};function S(e,t,n,S,k,x){const A=(0,r.resolveComponent)("t"),N=(0,r.resolveComponent)("v-select"),C=(0,r.resolveComponent)("LabeledTooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{ref:"select",class:(0,r.normalizeClass)(["labeled-select",[e.$attrs.class,{disabled:e.isView||n.disabled,focused:e.focused,[e.mode]:!0,[n.status]:n.status,taggable:e.$attrs.taggable,taggable:e.$attrs.multiple,hoverable:n.hoverTooltip,"compact-input":e.isCompact,"no-label":!x.hasLabel}]]),tabindex:e.isView||n.disabled?-1:0,onClick:t[4]||(t[4]=(...e)=>x.focusSearch&&x.focusSearch(...e)),onKeyup:t[5]||(t[5]=(0,r.withKeys)(((...e)=>x.focusSearch&&x.focusSearch(...e)),["enter","space","down"]))},[(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)({"labeled-container":!0,raised:e.raised,empty:e.empty,[e.mode]:!0}),style:{border:"none"}},[x.hasLabel?((0,r.openBlock)(),(0,r.createElementBlock)("label",a,[e.labelKey?((0,r.openBlock)(),(0,r.createBlock)(A,{key:0,k:e.labelKey},null,8,["k"])):e.label?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createTextVNode)((0,r.toDisplayString)(e.label),1)],64)):(0,r.createCommentVNode)("",!0),e.requiredField?((0,r.openBlock)(),(0,r.createElementBlock)("span",o,"*")):(0,r.createCommentVNode)("",!0)])):(0,r.createCommentVNode)("",!0)],2),(0,r.createVNode)(N,(0,r.mergeProps)({ref:"select-input"},x.filteredAttrs,{class:["inline",{"no-label":!(e.label||"").length}],"append-to-body":n.appendToBody,"calculate-position":x.positionDropdown,clearable:n.clearable,disabled:e.isView||n.disabled||n.loading,"get-option-key":x.getOptionKey,"get-option-label":e=>x.getOptionLabel(e),label:n.optionLabel,options:x._options,"map-keydown":e.mappedKeys,placeholder:e.placeholder,reduce:e=>n.reduce(e),filterable:e.isFilterable,searchable:e.isSearchable,selectable:n.selectable,modelValue:null==n.value||n.loading?"":n.value,"dropdown-should-open":x.dropdownShouldOpen,tabindex:-1,"onUpdate:modelValue":t[1]||(t[1]=t=>{e.$emit("selecting",t),e.$emit("update:value",t)}),"onSearch:blur":x.onBlur,"onSearch:focus":x.onFocus,onSearch:x.onSearch,onOpen:x.onOpen,onClose:x.onClose,"onOption:selecting":t[2]||(t[2]=t=>e.$emit("selecting",t)),"onOption:deselecting":t[3]||(t[3]=t=>e.$emit("deselecting",t))}),(0,r.createSlots)({option:(0,r.withCtx)((t=>[x.showTagPrompts?((0,r.openBlock)(),(0,r.createElementBlock)("div",s,(0,r.toDisplayString)(e.t("labeledSelect.pressEnter",{input:x.getOptionLabel(t.label)})),1)):"group"===t.kind?((0,r.openBlock)(),(0,r.createElementBlock)("div",l,[t.icon?((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:0,class:(0,r.normalizeClass)(["icon",{[t.icon]:!0}])},null,2)):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("b",null,(0,r.toDisplayString)(x.getOptionLabel(t)),1),t.badge?((0,r.openBlock)(),(0,r.createElementBlock)("div",c,(0,r.toDisplayString)(t.badge),1)):(0,r.createCommentVNode)("",!0)])):"divider"===t.kind?((0,r.openBlock)(),(0,r.createElementBlock)("hr",u)):"highlighted"===t.kind?((0,r.openBlock)(),(0,r.createElementBlock)("div",d,(0,r.toDisplayString)(t.label),1)):((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:4,class:(0,r.normalizeClass)(["vs__option-kind",{"has-icon":x.hasGroupIcon}]),onMousedown:e=>x.onClickOption(t,e)},[(0,r.createTextVNode)((0,r.toDisplayString)(x.getOptionLabel(t))+" ",1),t.error?((0,r.openBlock)(),(0,r.createElementBlock)("i",p)):(0,r.createCommentVNode)("",!0)],42,h))])),"list-footer":(0,r.withCtx)((()=>[e.canPaginate&&e.totalResults&&e.pages>1?((0,r.openBlock)(),(0,r.createElementBlock)("div",f,[(0,r.createElementVNode)("div",m,[e.paginating?((0,r.openBlock)(),(0,r.createElementBlock)("i",g)):((0,r.openBlock)(),(0,r.createElementBlock)("div",v,[e.canLoadMore?((0,r.openBlock)(),(0,r.createElementBlock)("a",{key:0,onClick:t[0]||(t[0]=(...t)=>e.loadMore&&e.loadMore(...t))},(0,r.toDisplayString)(e.t("labelSelect.pagination.more")),1)):(0,r.createCommentVNode)("",!0)]))]),(0,r.createElementVNode)("div",b,(0,r.toDisplayString)(e.optionCounts),1)])):(0,r.createCommentVNode)("",!0)])),"no-options":(0,r.withCtx)((({search:i})=>[(0,r.createElementVNode)("div",y,[x.showTagPrompts?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[e.searching?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)("span",w,(0,r.toDisplayString)(e.t("labeledSelect.startTyping")),1))],64)):e.paginating?((0,r.openBlock)(),(0,r.createElementBlock)("div",E,t[6]||(t[6]=[(0,r.createElementVNode)("i",{class:"icon icon-spinner icon-spin"},null,-1)]))):i?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("labelSelect.noOptions.noMatch")),1)],64)):((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:3},[(0,r.createTextVNode)((0,r.toDisplayString)(e.t(n.noOptionsLabelKey)),1)],64))])])),_:2},[(0,r.renderList)(e.$slots,((t,n)=>({name:n,fn:(0,r.withCtx)((t=>[(0,r.renderSlot)(e.$slots,n,(0,r.normalizeProps)((0,r.guardReactiveProps)(t)),void 0,!0)]))})))]),1040,["append-to-body","calculate-position","class","clearable","disabled","get-option-key","get-option-label","label","options","map-keydown","placeholder","reduce","filterable","searchable","selectable","modelValue","dropdown-should-open","onSearch:blur","onSearch:focus","onSearch","onOpen","onClose"]),n.loading?((0,r.openBlock)(),(0,r.createElementBlock)("i",_)):(0,r.createCommentVNode)("",!0),n.tooltip&&!e.focused?((0,r.openBlock)(),(0,r.createBlock)(C,{key:1,hover:n.hoverTooltip,value:n.tooltip,status:n.status},null,8,["hover","value","status"])):(0,r.createCommentVNode)("",!0),e.validationMessage?((0,r.openBlock)(),(0,r.createBlock)(C,{key:2,hover:n.hoverTooltip,value:e.validationMessage},null,8,["hover","value"])):(0,r.createCommentVNode)("",!0)],42,i)}var k={props:{compact:{type:Boolean,default:null},label:{type:String,default:null},labelKey:{type:String,default:null}},computed:{isCompact(){return null!==this.compact?this.compact:!(this.label||this.labelKey)}}},x=n(63503),A=n(76978),N=n(49924),C=n(89626),T=n(20162),R=n(45250),O=n(15328),I=(0,r.defineComponent)({props:{paginate:{default:null,type:Function},inStore:{type:String,default:"cluster"},resourceType:{type:String,default:null}},data(){return{currentPage:1,search:"",pageSize:10,pages:0,debouncedRequestPagination:(0,R.debounce)(this.requestPagination,700),page:[],totalResults:0,paginating:!1}},async mounted(){this.canPaginate&&await this.requestPagination()},computed:{canPaginate(){return!!this.paginate&&!!this.resourceType&&this.$store.getters[`${this.inStore}/paginationEnabled`](this.resourceType)},canLoadMore(){return this.pages>this.currentPage},optionsInPage(){return this.canPaginate?this._options.filter((e=>e.kind!==O.c.NONE&&!O.w.includes(e.kind))).length:0},optionCounts(){return this.canPaginate&&this.optionsInPage!==this.totalResults?this.$store.getters["i18n/t"]("labelSelect.pagination.counts",{count:this.optionsInPage,totalCount:this.totalResults}):""}},methods:{loadMore(){this.currentPage++,this.requestPagination()},setPaginationFilter(e){this.paginating=!0,this.currentPage=1,this.search=e,this.debouncedRequestPagination(!0)},async requestPagination(e=!1){this.paginating=!0;const t=this.paginate,{page:n,pages:r,total:i}=await t({resetPage:e,pageContent:this.page||[],page:this.currentPage,filter:this.search,pageSize:this.pageSize});this.page=n,this.pages=r||0,this.totalResults=i||0,this.paginating=!1}}}),L=n(65359),D={name:"LabeledSelect",inheritAttrs:!1,components:{LabeledTooltip:N.Z},mixins:[k,x.A,C.A,I],emits:["on-open","on-close","selecting","deselecting","search","update:validation","update:value"],props:{appendToBody:{default:!0,type:Boolean},clearable:{default:!1,type:Boolean},disabled:{default:!1,type:Boolean},required:{default:!1,type:Boolean},hoverTooltip:{default:!0,type:Boolean},loading:{default:!1,type:Boolean},localizedLabel:{default:!1,type:Boolean},optionKey:{default:null,type:String},optionLabel:{default:"label",type:String},placement:{default:null,type:String},reduce:{default:e=>e&&"object"===typeof e&&void 0!==e.value?e.value:e,type:Function},selectable:{default:e=>!e||!(e.disabled||O.w.includes(e.kind)||e.loading),type:Function},status:{default:null,type:String},tooltip:{default:null,type:[String,Object]},value:{default:null,type:[String,Object,Number,Array,Boolean]},options:{type:Array,default:()=>[]},closeOnSelect:{type:Boolean,default:!0},noOptionsLabelKey:{type:String,default:"labelSelect.noOptions.empty"}},data(){return{selectedVisibility:"visible",shouldOpen:!0}},computed:{...(0,L.L8)({t:"i18n/t"}),hasLabel(){return!this.isCompact&&(!!this.label||!!this.labelKey||!!this.$slots.label)},hasGroupIcon(){return!!this.canPaginate&&!!this._options.find((e=>"group"===e.kind&&!!e.icon))},_options(){return this.canPaginate?this.page:this.options},filteredAttrs(){const{class:e,...t}=this.$attrs;return t},showTagPrompts(){return!this.options.length&&this.$attrs.taggable&&this.isSearchable}},methods:{focusSearch(){this.overridesMixinPreventDoubleTriggerKeysOpen?this.$nextTick((()=>{const e=this.$refs["select"];e&&e.focus(),this.overridesMixinPreventDoubleTriggerKeysOpen=!1})):(this.$refs["select-input"].open=!0,this.$nextTick((()=>{const e=this.$refs["select-input"]?.searchEl;e&&e.focus()})))},onFocus(){this.selectedVisibility="hidden",this.onFocusLabeled()},onBlur(){this.selectedVisibility="visible",this.onBlurLabeled()},onOpen(){this.$emit("on-open"),this.resizeHandler()},onClose(){this.$emit("on-close")},getOptionLabel(e){if(e){if(this.$attrs["get-option-label"])return this.$attrs["get-option-label"](e);if((0,A.Jt)(e,this.optionLabel)){if(this.localizedLabel){const t=(0,A.Jt)(e,this.optionLabel);return this.$store.getters["i18n/t"](t)||t}return(0,A.Jt)(e,this.optionLabel)}return e}},positionDropdown(e,t,{width:n}){(0,T.s)(e,t,n,this.placement)},get:A.Jt,onClickOption(e,t){T.t.call(this,e,t)},dropdownShouldOpen(e,t=!1){const{noDrop:n,mutableLoading:r}=e,{open:i}=e,a=this.shouldOpen;return t?(e.open=!0,!0):(!1===a&&(this.shouldOpen=!0,e.closeSearchOptions()),!n&&(i&&a&&!r))},onSearch(e,t){this.canPaginate?this.setPaginationFilter(e):e&&this.dropdownShouldOpen(this.$refs["select-input"],!0),this.$emit("search",e,t)},getOptionKey(e){return this.optionKey?(0,A.Jt)(e,this.optionKey):this.getOptionLabel(e)}}},P=(n(38106),n(47433));const M=(0,P.A)(D,[["render",S],["__scopeId","data-v-92b3990a"]]);var B=M},94397:function(e,t,n){"use strict";n.d(t,{A:function(){return p}});var r=n(9274);function i(e,t,n,i,a,o){const s=(0,r.resolveComponent)("LabeledSelect");return(0,r.openBlock)(),(0,r.createBlock)(s,(0,r.mergeProps)(e.labelSelectAttributes,{loading:e.$fetchState.pending,options:e.allOfType,paginate:e.paginateType,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))}),null,16,["loading","options","paginate"])}var a,o=n(77988),s=n(50025),l=n(4364);async function c({opts:e,type:t,ctx:n,filters:r=[],sort:i=[{asc:!0,field:"metadata.namespace"},{asc:!0,field:"metadata.name"}],store:a="cluster",groupByNamespace:o=!0,classify:c=!1}){const{pageContent:u,page:d,pageSize:h,resetPage:p}=e;try{const e=new s.gR({page:d,pageSize:h,sort:i,filters:r}),l=n.getters[`${a}/urlFor`](t,null,{pagination:e}),f=await n.dispatch(`${a}/request`,{url:l});let m=f.data;c&&(m=await n.dispatch("cluster/createMany",m));const g=p?m:u.concat(m);let v;if(o){const e={};g.forEach((t=>{const n=t.metadata.namespace;"group"!==t.kind&&(e[n]||(e[n]=[]),e[n].push(t))})),v=[],Object.keys(e).sort().forEach((t=>{v.push({kind:"group",icon:"icon-namespace",id:t,metadata:{name:t},disabled:!0}),v=v.concat(e[t])}))}else v=g;return{page:v,pages:f.pages||Math.ceil(f.count/(h||Number.MAX_SAFE_INTEGER)),total:f.count}}catch(f){l.error(f)}return{page:[],pages:0,total:0}}(function(e){e["ALL_RESOURCES"]="ALL",e["DYNAMIC"]="DYNAMIC"})(a||(a={}));var u=(0,r.defineComponent)({name:"ResourceLabeledSelect",components:{LabeledSelect:o.A},emits:["update:value"],props:{resourceType:{type:String,required:!0},inStore:{type:String,default:"cluster"},paginateMode:{type:String,default:a.DYNAMIC},allResourcesSettings:{type:Object,default:null},paginatedResourceSettings:{type:Object,default:null}},data(){return{paginate:!1}},async fetch(){switch(this.paginateMode){case a.ALL_RESOURCES:this.paginate=!1;break;case a.DYNAMIC:this.paginate=this.$store.getters[`${this.inStore}/paginationEnabled`](this.resourceType);break}this.paginate||await this.$store.dispatch(`${this.inStore}/findAll`,{type:this.resourceType})},computed:{labelSelectAttributes(){const e={...this.$attrs,...this.$props};return this.paginate?{...e,...this.paginatedResourceSettings?.labelSelectOptions||{}}:{...e,...this.allResourcesSettings?.labelSelectOptions||{}}},allOfType(){if(this.$fetchState.pending||this.paginate)return[];const e=this.$store.getters[`${this.inStore}/all`](this.resourceType);return this.allResourcesSettings?.updateResources?this.allResourcesSettings.updateResources(e):e}},methods:{async paginateType(e){if(this.paginatedResourceSettings?.overrideRequest)return await this.paginatedResourceSettings.overrideRequest(e);const{filter:t}=e,n=t?[s.eY.createSingleField({field:"metadata.name",value:t,exact:!1})]:[],r={opts:e,filters:n,type:this.resourceType,ctx:{getters:this.$store.getters,dispatch:this.$store.dispatch},sort:[{asc:!0,field:"metadata.name"}]},i=this.paginatedResourceSettings?.requestSettings?this.paginatedResourceSettings.requestSettings(r):r,a=await c(i);return this.paginatedResourceSettings?.updateResources?{...a,page:this.paginatedResourceSettings.updateResources(a.page)}:a}}}),d=n(47433);const h=(0,d.A)(u,[["render",i]]);var p=h},18918:function(e,t,n){"use strict";n.d(t,{A:function(){return m}});var r=n(9274);const i=["tabindex"],a=["onMousedown"];function o(e,t,n,o,s,l){const c=(0,r.resolveComponent)("v-select"),u=(0,r.resolveComponent)("LabeledTooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{ref:"select",class:(0,r.normalizeClass)(["unlabeled-select",{disabled:n.disabled||e.isView,focused:e.focused,[n.mode]:!0,[n.status]:n.status,taggable:e.$attrs.taggable,taggable:e.$attrs.multiple,"compact-input":n.compact,[e.$attrs.class]:e.$attrs.class}]),tabindex:n.disabled||e.isView?-1:0,onClick:t[2]||(t[2]=(...e)=>l.focusSearch&&l.focusSearch(...e)),onKeyup:t[3]||(t[3]=(0,r.withKeys)(((...e)=>l.focusSearch&&l.focusSearch(...e)),["enter","space","down"]))},[(0,r.createVNode)(c,(0,r.mergeProps)({ref:"select-input"},l.deClassedAttrs,{class:["inline",{"select-input-view":"view"===n.mode}],autoscroll:!0,"append-to-body":n.appendToBody,"calculate-position":l.positionDropdown,disabled:e.isView||n.disabled,"get-option-key":e=>l.getOptionKey(e),"get-option-label":e=>l.getOptionLabel(e),label:n.optionLabel,options:e.options,"close-on-select":n.closeOnSelect,"map-keydown":e.mappedKeys,placeholder:n.placeholder,reduce:e=>n.reduce(e),searchable:e.isSearchable,selectable:l.selectable,modelValue:null!=n.value?n.value:"",dropdownShouldOpen:l.handleDropdownOpen,tabindex:-1,"onUpdate:modelValue":t[0]||(t[0]=t=>e.$emit("update:value",t)),"onSearch:blur":e.onBlur,"onSearch:focus":e.onFocus,onOpen:e.resizeHandler,"onOption:created":t[1]||(t[1]=t=>e.$emit("createdListItem",t))}),(0,r.createSlots)({option:(0,r.withCtx)((e=>[(0,r.createElementVNode)("div",{onMousedown:t=>l.onClickOption(e,t)},(0,r.toDisplayString)(l.getOptionLabel(e.label)),41,a)])),_:2},[(0,r.renderList)(e.$slots,((t,n)=>({name:n,fn:(0,r.withCtx)((t=>[(0,r.renderSlot)(e.$slots,n,(0,r.normalizeProps)((0,r.guardReactiveProps)(t)),void 0,!0)]))})))]),1040,["class","append-to-body","calculate-position","disabled","get-option-key","get-option-label","label","options","close-on-select","map-keydown","placeholder","reduce","searchable","selectable","modelValue","dropdownShouldOpen","onSearch:blur","onSearch:focus","onOpen"]),n.tooltip&&!e.focused?((0,r.openBlock)(),(0,r.createBlock)(u,{key:0,hover:n.hoverTooltip,value:n.tooltip,status:n.status},null,8,["hover","value","status"])):(0,r.createCommentVNode)("",!0),l.validationMessage?((0,r.openBlock)(),(0,r.createBlock)(u,{key:1,hover:n.hoverTooltip,value:l.validationMessage},null,8,["hover","value"])):(0,r.createCommentVNode)("",!0)],42,i)}var s=n(76978),l=n(63503),c=n(89626),u=n(49924),d=n(20162),h={emits:["update:value","createdListItem"],components:{LabeledTooltip:u.Z},mixins:[l.A,c.A],props:{appendToBody:{default:!0,type:Boolean},disabled:{default:!1,type:Boolean},getKeyForOption:{default:null,type:Function},mode:{default:"edit",type:String},optionKey:{default:null,type:String},optionLabel:{default:"label",type:String},placement:{default:null,type:String},placeholder:{type:String,default:""},popperOverride:{type:Function,default:null},reduce:{default:e=>e&&"object"===typeof e&&void 0!==e.value?e.value:e,type:Function},tooltip:{type:String,default:null},hoverTooltip:{type:Boolean,default:!0},status:{type:String,default:null},value:{default:null,type:[String,Object,Number,Array,Boolean]},closeOnSelect:{type:Boolean,default:!0},compact:{type:Boolean,default:null}},methods:{getOptionLabel(e){return this.$attrs["get-option-label"]?this.$attrs["get-option-label"](e):(0,s.Jt)(e,this.optionLabel)?this.localizedLabel?this.$store.getters["i18n/t"]((0,s.Jt)(e,this.optionLabel)):(0,s.Jt)(e,this.optionLabel):e},positionDropdown(e,t,{width:n}){if(this.popperOverride)return this.popperOverride(e,t,{width:n});(0,d.s)(e,t,n,this.placement)},focusSearch(){this.overridesMixinPreventDoubleTriggerKeysOpen?this.$nextTick((()=>{const e=this.$refs["select"];e&&e.focus(),this.overridesMixinPreventDoubleTriggerKeysOpen=!1})):(this.$refs["select-input"].open=!0,this.$nextTick((()=>{const e=this.$refs["select-input"]?.searchEl;e&&e.focus()})))},get:s.Jt,onClickOption(e,t){d.t.call(this,e,t)},selectable(e){return!e||!e.disabled&&"group"!==e.kind&&"divider"!==e.kind&&!e.loading},getOptionKey(e){if(e&&this.optionKey)return(0,s.Jt)(e,this.optionKey);if(e?.optionKey)return(0,s.Jt)(e,e.optionKey);const t=this.getOptionLabel(e);return"string"===typeof t||"number"===typeof t?t:Math.random(1e5)},report(e){alert(e)},handleDropdownOpen(e){return!e.noDrop&&!e.disabled&&e.open}},computed:{requiredField(){return this.required||this.rules.some((e=>"required"===e?.name))},validationMessage(){const e=this.rules.find((e=>"required"===e?.name)),t=[],n=this?.value;if(e&&this.blurred&&!this.focused){const t=e(n);if(t)return t}for(const r of this.rules){const e=r(n);e&&"required"!==r.name&&t.push(e)}return t.length>0&&(this.blurred||this.focused)?t.join(", "):void 0},canPaginate(){return!1},deClassedAttrs(){const{class:e,...t}=this.$attrs;return t}}},p=(n(83957),n(47433));const f=(0,p.A)(h,[["render",o],["__scopeId","data-v-fef44118"]]);var m=f},88703:function(e,t,n){"use strict";n.d(t,{A:function(){return b}});var r=n(9274);const i={class:"secret-selector show-key-selector"},a={class:"input-container"};function o(e,t,n,o,s,l){const c=(0,r.resolveComponent)("ResourceLabeledSelect"),u=(0,r.resolveComponent)("LabeledSelect");return(0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createElementVNode)("div",a,[(0,r.createVNode)(c,{value:s.name,"onUpdate:value":t[0]||(t[0]=e=>s.name=e),class:"col span-6",disabled:!l.isView&&n.disabled,loading:e.$fetchState.pending,label:n.secretNameLabel,mode:n.mode,"resource-type":s.SECRET,"paginated-resource-settings":s.paginateSecretsSetting,"all-resources-settings":s.allSecretsSettings,onSelecting:l.updateSecretName},null,8,["value","disabled","loading","label","mode","resource-type","paginated-resource-settings","all-resources-settings","onSelecting"]),(0,r.createVNode)(u,{value:s.key,"onUpdate:value":t[1]||(t[1]=e=>s.key=e),class:"col span-6",disabled:l.isKeyDisabled,options:l.keys,label:n.keyNameLabel,mode:n.mode,onSelecting:l.updateSecretKey},null,8,["value","disabled","options","label","mode","onSelecting"])])])}var s=n(77988),l=n(94397),c=n(35664),u=n(14220),d=n(1133),h=n(15328),p=n(50025);const f="__[[NONE]]__";var m={emits:["updateSecretName","updateSecretKey"],components:{LabeledSelect:s.A,ResourceLabeledSelect:l.A},props:{test:{type:String,default:""},initialName:{type:String,required:!0},initialKey:{type:String,required:!0},namespace:{type:String,required:!0},types:{type:Array,default:()=>Object.values(d.TYPES)},disabled:{type:Boolean,default:!1},secretNameLabel:{type:String,default:"Secret Name"},keyNameLabel:{type:String,default:"Key"},mode:{type:String,default:u.G5}},data(e){return{secrets:[],name:e.initialName,key:e.initialKey,none:f,SECRET:c.bB,allSecretsSettings:{mapResult:e=>{const t=e.filter((e=>this.types.includes(e._type)&&e.namespace===this.namespace)),n=this.mapSecrets(t.sort(((e,t)=>e.name.localeCompare(t.name))));return this.secrets=t,n}},paginateSecretsSetting:{requestSettings:this.paginatePageOptions,mapResult:e=>{const t=this.mapSecrets(e);return this.secrets=e,t}}}},computed:{keys(){const e=(this.secrets||[]).find((e=>e.name===this.name))||{};return Object.keys(e.data||{}).map((e=>({label:e,value:e})))},isView(){return this.mode===u.nW},isKeyDisabled(){return!this.isView&&(!this.name||this.name===f||this.disabled)}},methods:{mapSecrets(e){const t=e.reduce(((e,t)=>(t.kind===h.c.NONE||(t.id?e.push({label:t.name,value:t.name}):e.push(t)),e)),[]);return[{label:"None",value:f,kind:h.c.NONE},...t]},paginatePageOptions(e){const{opts:{filter:t}}=e,n=t?[p.eY.createSingleField({field:"metadata.name",value:t})]:[];return n.push(p.eY.createSingleField({field:"metadata.namespace",value:this.namespace}),p.eY.createSingleField({field:"metadata.fields.1",value:this.types.join(",")})),{...e,filters:n,groupByNamespace:!1,classify:!0,sort:[{asc:!0,field:"metadata.name"}]}},updateSecretName(e){e.value===this.none&&(this.key=""),e.value&&this.$emit("updateSecretName",e.value)},updateSecretKey(e){e.value&&this.$emit("updateSecretKey",e.value)}}},g=(n(91230),n(47433));const v=(0,g.A)(m,[["render",o]]);var b=v},99383:function(e,t,n){"use strict";n.d(t,{A:function(){return y}});var r=n(9274);const i={class:"row"},a={class:"col span-12"},o={class:"row mb-20"},s={class:"row mb-20"},l={class:"row mb-20"},c={class:"row mb-20"},u={class:"col span-12"};function d(e,t,n,d,h,p){const f=(0,r.resolveComponent)("SimpleSecretSelector"),m=(0,r.resolveComponent)("Banner"),g=(0,r.resolveComponent)("LabeledInput");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[(0,r.createElementVNode)("div",i,[(0,r.createElementVNode)("div",a,[(0,r.createElementVNode)("h3",null,(0,r.toDisplayString)(e.t("monitoring.receiver.tls.label")),1)])]),(0,r.createElementVNode)("div",o,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(f,{key:0,"initial-key":h.initialCaSecretKey,"initial-name":h.initialCaSecretName,mode:n.mode,namespace:n.namespace,disabled:n.mode===h.view,"secret-name-label":e.t("monitoringReceiver.tls.ca"),onUpdateSecretName:p.updateCaSecretName,onUpdateSecretKey:p.updateCaSecretKey},null,8,["initial-key","initial-name","mode","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(m,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))]),(0,r.createElementVNode)("div",s,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(f,{key:0,"initial-key":h.initialClientCertSecretKey,"initial-name":h.initialClientCertSecretName,mode:n.mode,namespace:n.namespace,disabled:n.mode===h.view,"secret-name-label":e.t("monitoringReceiver.tls.cert"),onUpdateSecretName:p.updateClientCertSecretName,onUpdateSecretKey:p.updateClientCertSecretKey},null,8,["initial-key","initial-name","mode","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(m,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))]),(0,r.createElementVNode)("div",l,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(f,{key:0,"initial-key":h.initialClientKeySecretKey,"initial-name":h.initialClientKeySecretName,mode:n.mode,namespace:n.namespace,disabled:n.mode===h.view,"secret-name-label":e.t("monitoringReceiver.tls.key"),onUpdateSecretName:p.updateClientKeySecretName,onUpdateSecretKey:p.updateClientKeySecretKey},null,8,["initial-key","initial-name","mode","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(m,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))]),(0,r.createElementVNode)("div",c,[(0,r.createElementVNode)("div",u,[(0,r.createVNode)(g,{value:n.value.tlsConfig.serverName,"onUpdate:value":t[0]||(t[0]=e=>n.value.tlsConfig.serverName=e),mode:n.mode,label:e.t("monitoringReceiver.tls.serverName"),tooltip:e.t("monitoringReceiver.tls.serverNameTooltip")},null,8,["value","mode","label","tooltip"])])])])}var h=n(79380),p=n(9980),f=n(88703),m=n(14220),g={components:{Banner:p.l,LabeledInput:h.o,SimpleSecretSelector:f.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},namespace:{type:String,required:!0}},data(){return this.value["tlsConfig"]=this.value.tlsConfig||{},{initialCaSecretKey:this.value.tlsConfig.ca?.secret?.key?this.value.tlsConfig.ca.secret.key:"",initialCaSecretName:this.value.tlsConfig.ca?.secret?.name?this.value.tlsConfig.ca.secret.name:"",initialClientCertSecretKey:this.value.tlsConfig.cert?.secret?.key?this.value.tlsConfig.cert.secret.key:"",initialClientCertSecretName:this.value.tlsConfig.cert?.secret?.name?this.value.tlsConfig.cert.secret.name:"",initialClientKeySecretKey:this.value.tlsConfig.keySecret?.key?this.value.tlsConfig.keySecret.key:"",initialClientKeySecretName:this.value.tlsConfig.keySecret?.name?this.value.tlsConfig.keySecret.name:"",view:m.nW,none:"__[[NONE]]__"}},methods:{updateCaSecretName(e){const t=this.value.tlsConfig.ca?.secret?.key||"";this.value.tlsConfig.ca||(this.value.tlsConfig["ca"]={secret:{name:e,key:""}}),this.value.tlsConfig.ca?.secret?e===this.none?this.value.tlsConfig.ca={}:this.value.tlsConfig.ca.secret={key:t,name:e}:this.value.tlsConfig.ca["secret"]={key:t,name:e}},updateCaSecretKey(e){const t=this.value.tlsConfig.ca?.secret?.name||"";this.value.tlsConfig.ca||(this.value.tlsConfig["ca"]={secret:{name:"",key:e}}),this.value.tlsConfig.ca?.secret?this.value.tlsConfig.ca.secret={name:t,key:e}:this.value.tlsConfig.ca["secret"]={key:"",name:t}},updateClientCertSecretName(e){const t=this.value.tlsConfig.cert?.secret?.key||"";this.value.tlsConfig.cert||(this.value.tlsConfig["cert"]={secret:{name:e,key:""}}),this.value.tlsConfig.cert?.secret?e===this.none?this.value.tlsConfig.cert={}:this.value.tlsConfig.cert.secret={key:t,name:e}:this.value.tlsConfig.cert["secret"]={key:"",name:e}},updateClientCertSecretKey(e){const t=this.value.tlsConfig.cert?.secret?.name||"";this.value.tlsConfig.cert||(this.value.tlsConfig["cert"]={secret:{name:"",key:e}}),this.value.tlsConfig.cert?.secret?this.value.tlsConfig.cert.secret={name:t,key:e}:this.value.tlsConfig.cert["secret"]={key:"",name:t}},updateClientKeySecretName(e){const t=this.value.tlsConfig.keySecret?.key||"";this.value.tlsConfig.keySecret?e===this.none?this.value.tlsConfig.keySecret={}:this.value.tlsConfig.keySecret={key:t,name:e}:this.value.tlsConfig["keySecret"]={key:"",name:e}},updateClientKeySecretKey(e){const t=this.value.tlsConfig.keySecret?.name||"";this.value.tlsConfig.keySecret?this.value.tlsConfig.keySecret={name:t,key:e}:this.value.tlsConfig["keySecret"]={key:e,name:""}}}},v=n(47433);const b=(0,v.A)(g,[["render",d]]);var y=b},51557:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return k}});var r=n(9274);const i={class:"row mb-20"},a={class:"col span-6"},o={class:"col span-6"},s={class:"row mb-20"},l={class:"col span-12"},c={class:"row mb-20"},u={class:"col span-6"},d={class:"col span-6"},h={key:0,class:"row mb-20"},p={class:"col span-6"},f={class:"row mb-20"};function m(e,t,n,m,g,v){const b=(0,r.resolveComponent)("LabeledInput"),y=(0,r.resolveComponent)("Checkbox"),w=(0,r.resolveComponent)("SimpleSecretSelector"),E=(0,r.resolveComponent)("Banner"),_=(0,r.resolveComponent)("TLS");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[t[7]||(t[7]=(0,r.createElementVNode)("div",{class:"row"},[(0,r.createElementVNode)("div",{class:"col span-12"},[(0,r.createElementVNode)("h3",null,"Target")])],-1)),(0,r.createElementVNode)("div",i,[(0,r.createElementVNode)("div",a,[(0,r.createVNode)(b,{value:n.value.to,"onUpdate:value":t[0]||(t[0]=e=>n.value.to=e),mode:n.mode,label:"Default Recipient Address",placeholder:"e.g. admin@example.com"},null,8,["value","mode"])]),(0,r.createElementVNode)("div",o,[(0,r.createVNode)(y,{value:n.value.sendResolved,"onUpdate:value":t[1]||(t[1]=e=>n.value.sendResolved=e),mode:n.mode,class:"mt-20",label:"Enable send resolved alerts"},null,8,["value","mode"])])]),t[8]||(t[8]=(0,r.createElementVNode)("h2",{class:"mb-10"}," SMTP ",-1)),(0,r.createElementVNode)("div",s,[(0,r.createElementVNode)("div",l,[(0,r.createVNode)(b,{value:n.value.from,"onUpdate:value":t[2]||(t[2]=e=>n.value.from=e),mode:n.mode,label:"Sender",placeholder:"e.g. admin@example.com"},null,8,["value","mode"])])]),(0,r.createElementVNode)("div",c,[(0,r.createElementVNode)("div",u,[(0,r.createVNode)(b,{value:n.value.smarthost,"onUpdate:value":t[3]||(t[3]=e=>n.value.smarthost=e),mode:n.mode,label:"Host",placeholder:"e.g. 192.168.1.121:587"},null,8,["value","mode"])]),(0,r.createElementVNode)("div",d,[(0,r.createVNode)(y,{value:n.value.requireTLS,"onUpdate:value":t[4]||(t[4]=e=>n.value.requireTLS=e),mode:n.mode,class:"mt-20",label:"Use TLS"},null,8,["value","mode"])])]),n.namespace?((0,r.openBlock)(),(0,r.createElementBlock)("div",h,[(0,r.createElementVNode)("div",p,[(0,r.createVNode)(b,{value:n.value.authUsername,"onUpdate:value":t[5]||(t[5]=e=>n.value.authUsername=e),mode:n.mode,label:e.t("monitoring.alertmanagerConfig.email.username"),placeholder:"e.g. John"},null,8,["value","mode","label"])])])):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("div",f,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(w,{key:0,"initial-key":g.initialAuthPasswordSecretKey,mode:n.mode,"initial-name":g.initialAuthPasswordSecretName,namespace:n.namespace,disabled:n.mode===g.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.email.password"),onUpdateSecretName:v.updateAuthPasswordSecretName,onUpdateSecretKey:v.updateAuthPasswordSecretKey},null,8,["initial-key","mode","initial-name","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(E,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))]),(0,r.createVNode)(_,{value:n.value,class:"mb-20",mode:n.mode,namespace:n.namespace,"onUpdate:value":t[6]||(t[6]=t=>e.$emit("input",t))},null,8,["value","mode","namespace"])])}var g=n(79380),v=n(42200),b=n(99383),y=n(88703),w=n(14220),E={emits:["input"],components:{Checkbox:v.S,LabeledInput:g.o,SimpleSecretSelector:y.A,TLS:b.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},namespace:{type:String,default:""}},data(){return this.value["sendResolved"]=this.value.sendResolved||!1,this.value["requireTLS"]=this.value.requireTLS||!1,{view:w.nW,initialAuthPasswordSecretName:this.value?.authPassword?.name?this.value.authPassword.name:"",initialAuthPasswordSecretKey:this.value.authPassword?.key?this.value.authPassword.key:"",none:"__[[NONE]]__"}},methods:{updateAuthPasswordSecretName(e){const t=this.value.authPassword?.key||"";this.value.authPassword?e===this.none?delete this.value.authPassword:this.value.authPassword={key:t,name:e}:this.value["authPassword"]={key:"",name:e}},updateAuthPasswordSecretKey(e){const t=this.value.authPassword?.name||"";this.value.authPassword?this.value.authPassword={name:t,key:e}:this.value["authPassword"]={name:"",key:e}}}},_=n(47433);const S=(0,_.A)(E,[["render",m]]);var k=S},72420:function(e,t,n){"use strict";n.r(t),n.d(t,{TARGETS:function(){return O},TYPES:function(){return I},default:function(){return P}});var r=n(9274);const i={class:"row mb-20"},a={class:"row mb-20"},o={class:"col span-12"},s={class:"row mb-20"},l={class:"row"},c={class:"col span-12"},u={class:"responders-heading"},d={class:"row responder"},h={class:"col span-6"},p={key:0},f={class:"col-span-6 target-container"},m={key:0};function g(e,t,n,g,v,b){const y=(0,r.resolveComponent)("SimpleSecretSelector"),w=(0,r.resolveComponent)("Banner"),E=(0,r.resolveComponent)("LabeledInput"),_=(0,r.resolveComponent)("Checkbox"),S=(0,r.resolveComponent)("Select"),k=(0,r.resolveComponent)("InputWithSelect"),x=(0,r.resolveComponent)("ArrayList");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[t[5]||(t[5]=(0,r.createElementVNode)("div",{class:"row"},[(0,r.createElementVNode)("div",{class:"col span-12"},[(0,r.createElementVNode)("h3",null,"Target")])],-1)),(0,r.createElementVNode)("div",i,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(y,{key:0,"initial-key":v.initialApiKeySecretKey,mode:n.mode,"initial-name":v.initialApiKeySecretName,namespace:n.namespace,disabled:n.mode===v.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.opsgenie.apiKey"),onUpdateSecretName:b.updateApiKeySecretName,onUpdateSecretKey:b.updateApiKeySecretKey},null,8,["initial-key","mode","initial-name","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(w,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))]),(0,r.createElementVNode)("div",a,[(0,r.createElementVNode)("div",o,[(0,r.createVNode)(E,{value:n.value.httpConfig.proxyURL,"onUpdate:value":t[0]||(t[0]=e=>n.value.httpConfig.proxyURL=e),mode:n.mode,label:"Proxy URL",placeholder:"e.g. http://my-proxy/"},null,8,["value","mode"])])]),(0,r.createElementVNode)("div",s,[(0,r.createVNode)(_,{value:n.value.sendResolved,"onUpdate:value":t[1]||(t[1]=e=>n.value.sendResolved=e),mode:n.mode,label:"Enable send resolved alerts"},null,8,["value","mode"])]),(0,r.createElementVNode)("div",l,[(0,r.createElementVNode)("div",c,[t[4]||(t[4]=(0,r.createElementVNode)("h3",null,"Responders",-1)),(0,r.createVNode)(x,{value:v.responders,"onUpdate:value":t[2]||(t[2]=e=>v.responders=e),mode:n.mode,"default-add-value":v.defaultResponder,"show-header":!0},{"column-headers":(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",u,[(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)(["row",{"mb-15":b.isView,"mb-10":!b.isView}])},t[3]||(t[3]=[(0,r.createElementVNode)("div",{class:"col span-6"},[(0,r.createElementVNode)("span",{class:"text-label"},"Type")],-1),(0,r.createElementVNode)("div",{class:"col span-6 send-to"},[(0,r.createElementVNode)("span",{class:"text-label"},"Send To")],-1)]),2)])])),columns:(0,r.withCtx)((e=>[(0,r.createElementVNode)("div",d,[(0,r.createElementVNode)("div",h,[b.isView?((0,r.openBlock)(),(0,r.createElementBlock)("span",p,(0,r.toDisplayString)(b.typeLabel(e.row.value.type)),1)):((0,r.openBlock)(),(0,r.createBlock)(S,{key:1,value:e.row.value.type,"onUpdate:value":t=>e.row.value.type=t,mode:n.mode,options:v.TYPES},null,8,["value","onUpdate:value","mode","options"]))]),(0,r.createElementVNode)("div",f,[b.isView?((0,r.openBlock)(),(0,r.createElementBlock)("span",m,(0,r.toDisplayString)(b.targetLabel(e.row.value.target))+": "+(0,r.toDisplayString)(e.row.value.value),1)):((0,r.openBlock)(),(0,r.createBlock)(k,{key:1,class:"target",mode:n.mode,options:v.TARGETS,"select-value":e.row.value.target,"text-value":e.row.value.value,"onUpdate:value":t=>b.updateResponder(t,e.row.value)},null,8,["mode","options","select-value","text-value","onUpdate:value"]))])])])),_:1},8,["value","mode","default-add-value"])])])])}var v=n(22133),b=n(79380),y=n(18918),w=n(42200);const E=["disabled","placeholder"];function _(e,t,n,i,a,o){const s=(0,r.resolveComponent)("LabeledSelect"),l=(0,r.resolveComponent)("Select"),c=(0,r.resolveComponent)("LabeledInput");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:(0,r.normalizeClass)([{"select-after":!n.selectBeforeText},"input-container row"])},[n.selectLabel?((0,r.openBlock)(),(0,r.createBlock)(s,{key:0,value:a.selected,"onUpdate:value":[t[0]||(t[0]=e=>a.selected=e),o.change],label:n.selectLabel,class:(0,r.normalizeClass)({"in-input":!e.isView}),options:n.options,searchable:!1,clearable:!1,disabled:n.disabled||e.isView,taggable:n.taggable,"create-option":e=>({label:e,value:e}),multiple:!1,mode:e.mode,"option-label":n.optionLabel,placement:e.$attrs.placement?e.$attrs.placement:null,"v-bind":e.$attrs,rules:n.selectRules},null,8,["value","label","class","options","disabled","taggable","create-option","mode","option-label","placement","v-bind","rules","onUpdate:value"])):((0,r.openBlock)(),(0,r.createBlock)(l,{key:1,value:a.selected,"onUpdate:value":[t[1]||(t[1]=e=>a.selected=e),o.change],options:n.options,searchable:n.searchable,disabled:n.disabled||e.isView,clearable:!1,class:"in-input",taggable:n.taggable,"create-option":e=>({label:e,value:e}),multiple:!1,mode:e.mode,"option-label":n.optionLabel,placement:e.$attrs.placement?e.$attrs.placement:null,"v-bind":e.$attrs},null,8,["value","options","searchable","disabled","taggable","create-option","mode","option-label","placement","v-bind","onUpdate:value"])),n.textLabel||n.textRules.length>0?((0,r.openBlock)(),(0,r.createBlock)(c,(0,r.mergeProps)({key:2,ref:"text",value:a.string,"onUpdate:value":t[2]||(t[2]=e=>a.string=e),class:"input-string col span-8",label:n.textLabel,placeholder:n.placeholder,disabled:n.disabled||n.textDisabled,required:n.textRequired,mode:e.mode,rules:n.textRules},e.$attrs,{"onUpdate:value":o.change}),{label:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"label",{},void 0,!0)])),suffix:(0,r.withCtx)((()=>[(0,r.renderSlot)(e.$slots,"suffix",{},void 0,!0)])),_:3},16,["value","label","placeholder","disabled","required","mode","rules","onUpdate:value"])):(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("input",{key:3,ref:"text","onUpdate:modelValue":t[3]||(t[3]=e=>a.string=e),class:"input-string",disabled:e.isView,placeholder:n.placeholder,autocomplete:"off",onInput:t[4]||(t[4]=(...e)=>o.change&&o.change(...e))},null,40,E)),[[r.vModelText,a.string]])],2)}var S=n(63503),k=n(77988),x={name:"InputWithSelect",emits:["update:value"],components:{LabeledInput:b.o,LabeledSelect:k.A,Select:y.A},mixins:[S.A],props:{disabled:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},taggable:{type:Boolean,default:!1},selectLabel:{type:String,default:""},selectValue:{type:String,default:null},optionLabel:{type:String,default:"label"},options:{type:Array,required:!0},selectBeforeText:{type:Boolean,default:!0},textLabel:{type:String,default:""},textRequired:{type:Boolean,default:!1},textDisabled:{type:Boolean,default:!1},textValue:{type:[String,Number],default:""},placeholder:{type:String,default:""},textRules:{default:()=>[],type:Array},selectRules:{default:()=>[],type:Array}},data(){return{selected:this.selectValue||this.options[0].value,string:this.textValue}},computed:{canPaginate(){return!1}},methods:{focus(){const e=this.$refs.text;e&&e.focus()},change(){this.$emit("update:value",{selected:this.selected,text:this.string})}},watch:{textValue(e){this.string=e}}},A=(n(32254),n(47433));const N=(0,A.A)(x,[["render",_],["__scopeId","data-v-035f9ce5"]]);var C=N,T=n(88703),R=n(14220);const O=[{label:"Id",value:"id"},{label:"Name",value:"name"},{label:"Username",value:"username"}],I=[{label:"Team",value:"team"},{label:"User",value:"user"},{label:"Escalation",value:"escalation"},{label:"Schedule",value:"schedule"}];var L={components:{ArrayList:v.A,Checkbox:w.S,InputWithSelect:C,LabeledInput:b.o,Select:y.A,SimpleSecretSelector:T.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},namespace:{type:String,default:""}},data(){this.value["httpConfig"]=this.value.httpConfig||{},this.value["sendResolved"]="boolean"!==typeof this.value.sendResolved||this.value.send_resolved,this.value["responders"]=this.value.responders||[];const e=this.value.responders.map((e=>{const t=O.find((t=>e[t.value]));return{type:e.type,target:t.value,value:e[t.value]}}));return{defaultResponder:{type:I[0].value,target:O[0].value,value:""},responders:e,TARGETS:O,TYPES:I,view:R.nW,initialApiKeySecretName:this.value?.apiKey?.name?this.value.apiKey.name:"",initialApiKeySecretKey:this.value?.apiKey?.key?this.value.apiKey.key:"",none:"__[[NONE]]__"}},computed:{isView(){return this.mode===R.nW}},watch:{responders:{deep:!0,handler(){const e=this.responders.map((e=>({type:e.type,[e.target]:e.value})));this.value["responders"]=e}}},methods:{updateResponder({selected:e,text:t},n){n.target=e,n.value=t},typeLabel(e){return I.find((t=>t.value===e)).label},targetLabel(e){return O.find((t=>t.value===e)).label},updateApiKeySecretName(e){const t=this.value.apiKey?.key||"";this.value.apiKey?e===this.none?delete this.value.apiKey:this.value.apiKey={key:t,name:e}:this.value["apiKey"]={key:"",name:e}},updateApiKeySecretKey(e){const t=this.value.apiKey?.name||"";this.value.apiKey?this.value.apiKey={name:t,key:e}:this.value["apiKey"]={name:"",key:e}}}};n(7156);const D=(0,A.A)(L,[["render",g],["__scopeId","data-v-174af1a6"]]);var P=D},12772:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return y}});var r=n(9274);const i={key:0,class:"row mb-20"},a={class:"col span-6"},o={key:1,class:"row mb-20"},s={class:"row mb-20"},l={class:"col span-12"},c={class:"row"};function u(e,t,n,u,d,h){const p=(0,r.resolveComponent)("LabeledSelect"),f=(0,r.resolveComponent)("SimpleSecretSelector"),m=(0,r.resolveComponent)("Banner"),g=(0,r.resolveComponent)("LabeledInput"),v=(0,r.resolveComponent)("Checkbox");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[t[3]||(t[3]=(0,r.createElementVNode)("div",{class:"row"},[(0,r.createElementVNode)("div",{class:"col span-12"},[(0,r.createElementVNode)("h3",null,"Target")])],-1)),n.namespace?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createElementVNode)("div",a,[(0,r.createVNode)(p,{value:d.integrationType,"onUpdate:value":t[0]||(t[0]=e=>d.integrationType=e),options:d.integrationTypeOptions,mode:n.mode,label:"Integration Type"},null,8,["value","options","mode"])])])):(0,r.createCommentVNode)("",!0),n.namespace?((0,r.openBlock)(),(0,r.createElementBlock)("div",o,["Events API v2"===d.integrationType?((0,r.openBlock)(),(0,r.createBlock)(f,{key:0,"initial-key":d.initialRoutingKeySecretKey,mode:n.mode,"initial-name":d.initialRoutingKeySecretName,namespace:n.namespace,disabled:n.mode===d.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.pagerDuty.routingKey"),onUpdateSecretName:h.updateRoutingKeySecretName,onUpdateSecretKey:h.updateRoutingKeySecretKey},null,8,["initial-key","mode","initial-name","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):(0,r.createCommentVNode)("",!0),"Prometheus"===d.integrationType?((0,r.openBlock)(),(0,r.createBlock)(f,{key:1,"initial-key":d.initialServiceKeySecretKey,mode:n.mode,"initial-name":d.initialServiceKeySecretName,namespace:n.namespace,disabled:n.mode===d.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.pagerDuty.serviceKey"),onUpdateSecretName:h.updateServiceKeySecretName,onUpdateSecretKey:h.updateServiceKeySecretKey},null,8,["initial-key","mode","initial-name","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):(0,r.createCommentVNode)("",!0)])):((0,r.openBlock)(),(0,r.createBlock)(m,{key:2,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1})),(0,r.createElementVNode)("div",s,[(0,r.createElementVNode)("div",l,[(0,r.createVNode)(g,{value:n.value.httpConfig.proxyURL,"onUpdate:value":t[1]||(t[1]=e=>n.value.httpConfig.proxyURL=e),mode:n.mode,label:"Proxy URL",placeholder:"e.g. http://my-proxy/","data-testid":"v2-monitoring-receiver-pagerduty-proxy-url"},null,8,["value","mode"])])]),(0,r.createElementVNode)("div",c,[(0,r.createVNode)(v,{value:n.value.sendResolved,"onUpdate:value":t[2]||(t[2]=e=>n.value.sendResolved=e),mode:n.mode,label:"Enable send resolved alerts"},null,8,["value","mode"])])])}var d=n(79380),h=n(77988),p=n(42200),f=n(88703),m=n(14220),g={components:{Checkbox:p.S,LabeledInput:d.o,LabeledSelect:h.A,SimpleSecretSelector:f.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},namespace:{type:String,default:""}},data(){this.value["httpConfig"]=this.value.httpConfig||{},this.value["sendResolved"]="boolean"!==typeof this.value.send_resolved||this.value.send_resolved;const e={"Events API v2":"routingKey",Prometheus:"serviceKey"},t=Object.keys(e);return{integrationMapping:e,integrationTypeOptions:t,integrationType:this.value.serviceKey?t[1]:t[0],initialRoutingKeySecretKey:this.value.routingKey?.key||"",initialRoutingKeySecretName:this.value.routingKey?.name||"",initialServiceKeySecretKey:this.value.serviceKey?.key||"",initialServiceKeySecretName:this.value.serviceKey?.name||"",view:m.nW,none:"__[[NONE]]__"}},watch:{integrationType(){this.integrationTypeOptions.forEach((e=>{this.value[this.integrationMapping[e]]=null}))}},methods:{updateRoutingKeySecretName(e){const t=this.value.routingKey?.key||"";this.value.routingKey?e===this.none?delete this.value.routingKey:this.value.routingKey={key:t,name:e}:this.value["routingKey"]={key:"",name:e}},updateRoutingKeySecretKey(e){const t=this.value.routingKey?.name||"";this.value.routingKey?this.value.routingKey={name:t,key:e}:this.value["routingKey"]={name:"",key:e}},updateServiceKeySecretName(e){const t=this.value.serviceKey?.key||"";this.value.serviceKey?e===this.none?delete this.value.serviceKey:this.value.serviceKey={key:t,name:e}:this.value["serviceKey"]={key:"",name:e}},updateServiceKeySecretKey(e){const t=this.value.serviceKey?.name||"";this.value.serviceKey?this.value.serviceKey={name:t,key:e}:this.value["serviceKey"]={name:"",key:e}}}},v=n(47433);const b=(0,v.A)(g,[["render",u]]);var y=b},33427:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return y}});var r=n(9274);const i={class:"row mb-20"},a={class:"helper-text text-right mt-10"},o={class:"row mb-20"},s={class:"col span-6"},l={class:"col span-6"},c={class:"row"};function u(e,t,n,u,d,h){const p=(0,r.resolveComponent)("SimpleSecretSelector"),f=(0,r.resolveComponent)("Banner"),m=(0,r.resolveComponent)("t"),g=(0,r.resolveComponent)("LabeledInput"),v=(0,r.resolveComponent)("Checkbox");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[t[3]||(t[3]=(0,r.createElementVNode)("div",{class:"row"},[(0,r.createElementVNode)("div",{class:"col span-12"},[(0,r.createElementVNode)("h3",null,"Target")])],-1)),(0,r.createElementVNode)("div",i,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(p,{key:0,"initial-key":d.initialSecretKey,mode:n.mode,"initial-name":d.initialSecretName,tooltip:e.t("alertmanagerConfigReceiver.slack.apiUrlTooltip"),namespace:n.namespace,disabled:n.mode===d.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.slack.apiUrl"),onUpdateSecretName:h.updateSecretName,onUpdateSecretKey:h.updateSecretKey},null,8,["initial-key","mode","initial-name","tooltip","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(f,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1})),(0,r.createElementVNode)("p",a,[(0,r.createVNode)(m,{k:"monitoringReceiver.slack.info",raw:!0})])]),(0,r.createElementVNode)("div",o,[(0,r.createElementVNode)("div",s,[(0,r.createVNode)(g,{value:n.value.channel,"onUpdate:value":t[0]||(t[0]=e=>n.value.channel=e),mode:n.mode,label:"Default Channel",placeholder:"e.g. #example"},null,8,["value","mode"])]),(0,r.createElementVNode)("div",l,[(0,r.createVNode)(g,{value:n.value.httpConfig.proxyURL,"onUpdate:value":t[1]||(t[1]=e=>n.value.httpConfig.proxyURL=e),mode:n.mode,label:"Proxy URL",placeholder:"e.g. http://my-proxy/"},null,8,["value","mode"])])]),(0,r.createElementVNode)("div",c,[(0,r.createVNode)(v,{value:n.value.sendResolved,"onUpdate:value":t[2]||(t[2]=e=>n.value.sendResolved=e),mode:n.mode,label:"Enable send resolved alerts"},null,8,["value","mode"])])])}var d=n(79380),h=n(42200),p=n(9980),f=n(88703),m=n(14220),g={components:{Banner:p.l,Checkbox:h.S,LabeledInput:d.o,SimpleSecretSelector:f.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},namespace:{type:String,default:""}},data(){return this.value["httpConfig"]=this.value.httpConfig||{},this.value["sendResolved"]=this.value.sendResolved||!1,this.mode===m.YQ&&(this.value.text=this.value.text||'{{ template "slack.rancher.text" . }}'),{view:m.nW,initialSecretKey:this.value?.apiURL?.key?this.value.apiURL.key:"",initialSecretName:this.value.apiURL?.name?this.value.apiURL.name:"",none:"__[[NONE]]__"}},methods:{updateSecretName(e){const t=this.value.apiURL?.key||"";this.value.apiURL?e===this.none?delete this.value.apiURL:this.value.apiURL={key:t,name:e}:this.value["apiURL"]={key:"",name:e}},updateSecretKey(e){const t=this.value.apiURL?.name||"";this.value.apiURL?this.value.apiURL={key:e,name:t}:this.value["apiURL"]={key:e,name:""}}}},v=n(47433);const b=(0,v.A)(g,[["render",u]]);var y=b},4496:function(e,t,n){"use strict";n.r(t),n.d(t,{ALIBABA_CLOUD_SMS_URL:function(){return D},MS_TEAMS_URL:function(){return L},WEBHOOK_TYPES:function(){return P},default:function(){return F}});var r=n(9274);const i={class:"row mb-20"},a={class:"row mb-20"},o={class:"col span-12"},s={class:"row mb-20"},l={class:"row mb-20"},c={class:"col span-12"},u={class:"row mb-20"};function d(e,t,n,d,h,p){const f=(0,r.resolveComponent)("Banner"),m=(0,r.resolveComponent)("LabeledSelect"),g=(0,r.resolveComponent)("LabeledInput"),v=(0,r.resolveComponent)("SimpleSecretSelector"),b=(0,r.resolveComponent)("Checkbox"),y=(0,r.resolveComponent)("TLS"),w=(0,r.resolveComponent)("Auth"),E=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[n.mode!==h.view?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createBlock)(f,{key:0,color:"info"},null,512)),[[E,e.t("monitoringReceiver.webhook.banner",{},e.raw=!0)]]):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("div",i,[(0,r.createVNode)(m,{value:h.selectedWebhookType,"onUpdate:value":[t[0]||(t[0]=e=>h.selectedWebhookType=e),t[1]||(t[1]=e=>p.updateWebhookType(e))],disabled:n.mode===h.view,label:e.t("monitoringReceiver.webhook.add.selectWebhookType"),placeholder:e.t("monitoringReceiver.webhook.add.generic"),"localized-label":!0,options:h.webhookOptons},null,8,["value","disabled","label","placeholder","options"])]),t[7]||(t[7]=(0,r.createElementVNode)("div",{class:"row"},[(0,r.createElementVNode)("div",{class:"col span-12"},[(0,r.createElementVNode)("h3",{class:"mb-0"}," Target ")])],-1)),h.showNamespaceBanner?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createBlock)(f,{key:1,color:"info"},null,512)),[[E,e.t("monitoringReceiver.webhook.modifyNamespace",{},e.raw=!0)]]):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("div",a,[(0,r.createElementVNode)("div",o,[(0,r.createVNode)(g,{value:n.value.url,"onUpdate:value":t[2]||(t[2]=e=>n.value.url=e),mode:n.mode,label:e.t("monitoring.alertmanagerConfig.webhook.url"),tooltip:e.t("monitoring.alertmanagerConfig.webhook.urlSecretTooltip")},null,8,["value","mode","label","tooltip"])])]),(0,r.createElementVNode)("div",s,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(v,{key:0,"initial-key":h.initialUrlSecretKey,"initial-name":h.initialUrlSecretName,mode:n.mode,namespace:n.namespace,disabled:n.mode===h.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.webhook.urlSecret"),onUpdateSecretName:p.updateUrlSecretName,onUpdateSecretKey:p.updateUrlSecretKey},null,8,["initial-key","initial-name","mode","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(f,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))]),(0,r.createElementVNode)("div",l,[(0,r.createElementVNode)("div",c,[(0,r.createVNode)(g,{value:n.value.httpConfig.proxyURL,"onUpdate:value":t[3]||(t[3]=e=>n.value.httpConfig.proxyURL=e),mode:n.mode,label:e.t("monitoringReceiver.shared.proxyUrl.label"),placeholder:e.t("monitoringReceiver.shared.proxyUrl.placeholder")},null,8,["value","mode","label","placeholder"])])]),(0,r.createElementVNode)("div",u,[(0,r.createVNode)(b,{value:n.value.sendResolved,"onUpdate:value":t[4]||(t[4]=e=>n.value.sendResolved=e),mode:n.mode,label:e.t("monitoringReceiver.shared.sendResolved.label")},null,8,["value","mode","label"])]),(0,r.createVNode)(y,{value:n.value.httpConfig,"onUpdate:value":t[5]||(t[5]=e=>n.value.httpConfig=e),class:"mb-20",mode:n.mode,namespace:n.namespace},null,8,["value","mode","namespace"]),(0,r.createVNode)(w,{value:n.value.httpConfig,"onUpdate:value":t[6]||(t[6]=e=>n.value.httpConfig=e),mode:n.mode,namespace:n.namespace},null,8,["value","mode","namespace"])])}var h=n(79380),p=n(77988),f=n(42200),m=n(9980),g=n(88703),v=n(14220),b=n(99383);const y={class:"row"},w={class:"col span-6"},E={class:"row mb-20"},_={class:"col span-12"},S={key:0,class:"row mb-20"},k={key:1,class:"row mb-20"},x={key:2,class:"row mb-20"};function A(e,t,n,i,a,o){const s=(0,r.resolveComponent)("LabeledSelect"),l=(0,r.resolveComponent)("SimpleSecretSelector"),c=(0,r.resolveComponent)("Banner");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[(0,r.createElementVNode)("div",y,[(0,r.createElementVNode)("div",w,[(0,r.createElementVNode)("h3",null,(0,r.toDisplayString)(e.t("monitoringReceiver.auth.label")),1)])]),(0,r.createElementVNode)("div",E,[(0,r.createElementVNode)("div",_,[(0,r.createVNode)(s,{value:a.authType,"onUpdate:value":[t[0]||(t[0]=e=>a.authType=e),t[1]||(t[1]=e=>o.initializeType(a.authOptions,a.authType))],disabled:n.mode===a.view,options:a.authOptions,label:"Auth Type"},null,8,["value","disabled","options"])])]),"basicAuth"===a.authType?((0,r.openBlock)(),(0,r.createElementBlock)("div",S,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(l,{key:0,"initial-key":a.initialBasicAuthUsernameSecretKey,"initial-name":a.initialBasicAuthUsernameSecretName,mode:n.mode,namespace:n.namespace,disabled:n.mode===a.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.auth.basicAuthUsername"),onUpdateSecretName:o.updateBasicAuthUsernameSecretName,onUpdateSecretKey:o.updateBasicAuthUsernameSecretKey},null,8,["initial-key","initial-name","mode","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(c,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))])):(0,r.createCommentVNode)("",!0),"basicAuth"===a.authType?((0,r.openBlock)(),(0,r.createElementBlock)("div",k,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(l,{key:0,"initial-key":a.initialBasicAuthPasswordSecretKey,"initial-name":a.initialBasicAuthPasswordSecretName,mode:n.mode,namespace:n.namespace,disabled:n.mode===a.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.auth.basicAuthPassword"),onUpdateSecretName:o.updateBasicAuthPasswordSecretName,onUpdateSecretKey:o.updateBasicAuthPasswordSecretKey},null,8,["initial-key","initial-name","mode","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(c,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))])):(0,r.createCommentVNode)("",!0),"bearerTokenSecret"===a.authType?((0,r.openBlock)(),(0,r.createElementBlock)("div",x,[n.namespace?((0,r.openBlock)(),(0,r.createBlock)(l,{key:0,"initial-key":a.initialBearerTokenSecretKey,"initial-name":a.initialBearerTokenSecretName,mode:n.mode,namespace:n.namespace,disabled:n.mode===a.view,"secret-name-label":e.t("monitoring.alertmanagerConfig.auth.bearerTokenSecret"),onUpdateSecretName:o.updateBearerTokenSecretName,onUpdateSecretKey:o.updateBearerTokenSecretKey},null,8,["initial-key","initial-name","mode","namespace","disabled","secret-name-label","onUpdateSecretName","onUpdateSecretKey"])):((0,r.openBlock)(),(0,r.createBlock)(c,{key:1,color:"error"},{default:(0,r.withCtx)((()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("alertmanagerConfigReceiver.namespaceWarning")),1)])),_:1}))])):(0,r.createCommentVNode)("",!0)])}var N=n(3514),C=n.n(N),T={components:{LabeledSelect:p.A,SimpleSecretSelector:g.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},namespace:{type:String,required:!0}},data(){this.value["basicAuth"]=this.value.basicAuth||{};const e=[{value:"none",label:this.t("monitoringReceiver.auth.none.label")},{value:"basicAuth",label:this.t("monitoringReceiver.auth.basicAuth.label"),default:{}},{value:"bearerTokenSecret",label:this.t("monitoringReceiver.auth.bearerToken.label"),default:{}}],t=e.map((e=>e.value)),n=t.find((e=>!C()(this.value[e])))||t[0];return this.initializeType(e,n),{authOptions:e,authTypes:t,authType:n,view:v.nW,none:"__[[NONE]]__",initialBearerTokenSecretName:this.value?.bearerTokenSecret?.name?this.value.bearerTokenSecret.name:"",initialBearerTokenSecretKey:this.value?.bearerTokenSecret?.key?this.value.bearerTokenSecret.key:"",initialBasicAuthUsernameSecretName:this.value?.basicAuth?.username?.name?this.value.basicAuth.username.name:"",initialBasicAuthUsernameSecretKey:this.value?.basicAuth?.username?.key?this.value.basicAuth.username.key:"",initialBasicAuthPasswordSecretName:this.value?.basicAuth?.password?.name?this.value.basicAuth.password.name:"",initialBasicAuthPasswordSecretKey:this.value?.basicAuth?.password?.key?this.value.basicAuth.password.key:""}},methods:{initializeType(e,t){e.forEach((e=>{e.value===t&&"none"!==t?this.value.authOption.value=this.value[e.value]||e.default:"undefined"!==typeof this.value[e.value]&&delete this.value[e.value]}))},updateBearerTokenSecretName(e){const t=this.value.bearerTokenSecret?.key||"";this.value.bearerTokenSecret?e===this.none?delete this.value.bearerTokenSecret:this.value.bearerTokenSecret={key:t,name:e}:this.value["bearerTokenSecret"]={key:"",name:e}},updateBearerTokenSecretKey(e){const t=this.value.bearerTokenSecret?.name||"";this.value.bearerTokenSecret?this.value.bearerTokenSecret={name:t,key:e}:this.value["bearerTokenSecret"]={name:"",key:e}},updateBasicAuthUsernameSecretName(e){this.value.basicAuth||(this.value["basicAuth"]={username:{key:"",name:e},password:{key:"",name:""}});const t=this.value.basicAuth.username?.key||"";this.value.basicAuth.username?e===this.none?delete this.value.basicAuth.username:this.value.basicAuth.username={key:t,name:e}:this.value.basicAuth["username"]={key:"",name:e}},updateBasicAuthUsernameSecretKey(e){this.value.basicAuth||(this.value["basicAuth"]={username:{key:e,name:""},password:{key:"",name:""}});const t=this.value.basicAuth.username?.name||"";this.value.basicAuth.username?this.value.basicAuth.username={key:e,name:t}:this.value.basicAuth["username"]={key:e,name:""}},updateBasicAuthPasswordSecretName(e){this.value.basicAuth||(this.value["basicAuth"]={username:{key:"",name:""},password:{key:"",name:e}});const t=this.value.basicAuth.password?.key||"";this.value.basicAuth.password?e===this.none?delete this.value.basicAuth.password:this.value.basicAuth.password={key:t,name:e}:this.value.basicAuth["password"]={key:"",name:e}},updateBasicAuthPasswordSecretKey(e){this.value.basicAuth||(this.value["basicAuth"]={username:{key:"",name:""},password:{key:e,name:""}});const t=this.value.basicAuth.password?.name||"";this.value.basicAuth.password?this.value.basicAuth.password={key:e,name:t}:this.value.basicAuth["password"]={key:e,name:""}}}},R=n(47433);const O=(0,R.A)(T,[["render",A]]);var I=O;const L="http://rancher-alerting-drivers-prom2teams.cattle-monitoring-system.svc:8089/v2/connector",D="http://rancher-alerting-drivers-sachet.cattle-monitoring-system.svc:9876/alert",P={ALIBABA_CLOUD_SMS:"alibaba-cloud-sms",GENERIC:"generic",MS_TEAMS:"ms-teams"};var M={components:{Auth:I,Banner:m.l,Checkbox:f.S,LabeledInput:h.o,LabeledSelect:p.A,SimpleSecretSelector:g.A,TLS:b.A},props:{mode:{type:String,required:!0},value:{type:Object,required:!0},namespace:{type:String,default:""}},data(e){this.value["httpConfig"]=this.value.httpConfig||{},this.value["sendResolved"]=this.value.sendResolved||!1;const t=this.value.url===L||this.value.url===D;return{showNamespaceBanner:t&&this.mode!==v.nW,view:v.nW,initialUrlSecretName:this.value?.urlSecret?.name?this.value.urlSecret.name:"",initialUrlSecretKey:this.value?.urlSecret?.key?this.value.urlSecret.key:"",webhookOptons:[{label:this.t("monitoringReceiver.webhook.add.generic"),value:P.GENERIC},{label:this.t("monitoringReceiver.webhook.add.msTeams"),value:P.MS_TEAMS},{label:this.t("monitoringReceiver.webhook.add.alibabaCloudSms"),value:P.ALIBABA_CLOUD_SMS}],msTeamsUrl:L,alibabaCloudSmsUrl:D,selectedWebhookType:this.getTypeFromUrl(this.value.url),none:"__[[NONE]]__"}},methods:{getTypeFromUrl(e){switch(e){case L:return P.MS_TEAMS;case D:return P.ALIBABA_CLOUD_SMS;default:return P.GENERIC}},updateUrlSecretName(e){const t=this.value.urlSecret?.key||"";this.value.urlSecret?e===this.none?delete this.value.urlSecret:this.value.urlSecret={key:t,name:e}:this.value["urlSecret"]={key:"",name:e}},updateUrlSecretKey(e){const t=this.value.urlSecret?.name||"";this.value.urlSecret?this.value.urlSecret={name:t,key:e}:this.value["urlSecret"]={name:"",key:e}},updateWebhookType(e){switch(e){case"ms-teams":this.value.url=this.msTeamsUrl,this.selectedWebhookType=P.MS_TEAMS;break;case"alibaba-cloud-sms":this.value.url=this.alibabaCloudSmsUrl,this.selectedWebhookType=P.ALIBABA_CLOUD_SMS;break;default:this.value.url="",this.selectedWebhookType=P.GENERIC}},updateWebhookUrl(e){this.value.url=e}}};const B=(0,R.A)(M,[["render",d]]);var F=B},88897:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return d}});var r=n(9274);const i={key:0,class:"text info mb-10 mt-20"},a={key:1,class:"text-warning mb-10 mt-20"};function o(e,t,n,o,s,l){const c=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("promptRemove.attemptingToRemove",{type:n.type}))+" ",1),(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[c,e.resourceNames(e.names,e.plusMore,e.t)]]),e.info?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[c,e.info]])])):(0,r.createCommentVNode)("",!0),e.warning?((0,r.openBlock)(),(0,r.createElementBlock)("div",a,(0,r.toDisplayString)(e.warning),1)):(0,r.createCommentVNode)("",!0)])}var s=n(55105),l={name:"GlobalRolePromptRemove",mixins:[s["default"]],props:{value:{type:Array,default:()=>[]},type:{type:String,required:!0}}},c=(n(72316),n(47433));const u=(0,c.A)(l,[["render",o],["__scopeId","data-v-06b0c427"]]);var d=u},90523:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return y}});var r=n(9274);const i={class:"mb-10"},a={class:"display-name"},o={class:"delete-warning"},s={class:"mt-10"},l={key:0,class:"mt-20 remove-project-dialog"},c={class:"mt-10 ml-20"};function u(e,t,n,u,d,h){const p=(0,r.resolveComponent)("Checkbox"),f=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[(0,r.createElementVNode)("div",null,[(0,r.createElementVNode)("div",i,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("promptRemove.attemptingToRemove",{type:n.type}))+" ",1),(0,r.createElementVNode)("span",a,(0,r.toDisplayString)(`${h.displayName}.`),1),h.canSeeProjectlessNamespaces?(0,r.createCommentVNode)("",!0):((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[(0,r.createElementVNode)("span",o,(0,r.toDisplayString)(e.t("promptRemove.willDeleteAssociatedNamespaces")),1),t[1]||(t[1]=(0,r.createTextVNode)()),t[2]||(t[2]=(0,r.createElementVNode)("br",null,null,-1)),(0,r.withDirectives)((0,r.createElementVNode)("div",s,null,512),[[f,h.resourceNames(h.names,h.plusMore,e.t)]])],64))]),h.filteredNamespaces.length>0&&h.canSeeProjectlessNamespaces?((0,r.openBlock)(),(0,r.createElementBlock)("div",l,[(0,r.createVNode)(p,{value:d.deleteProjectNamespaces,"onUpdate:value":t[0]||(t[0]=e=>d.deleteProjectNamespaces=e),label:e.t("promptRemove.deleteAssociatedNamespaces")},null,8,["value","label"]),(0,r.createElementVNode)("div",c,[(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[f,h.resourceNames(h.names,h.plusMore,e.t)]])])])):(0,r.createCommentVNode)("",!0)])])}var d=n(65359),h=n(2841),p=n(35664),f=n(42200),m=n(92043),g={name:"ProjectAndNamespacesPromptRemove",components:{Checkbox:f.S},props:{value:{type:Array,default:()=>[]},type:{type:String,required:!0}},async fetch(){this.allNamespaces=await this.$store.dispatch("cluster/findAll",{type:p.CU}),this.allProjects=await this.$store.dispatch("management/findAll",{type:p.Mc.PROJECT})},data(){return{deleteProjectNamespaces:!1,allNamespaces:[],allProjects:[]}},computed:{...(0,d.aH)("action-menu",["toRemove"]),...(0,d.L8)({t:"i18n/t"}),...(0,d.L8)(["currentCluster"]),currentProject(){return this.allProjects?this.value[0]:{}},filteredNamespaces(){return this.currentProject?this.allNamespaces.filter((e=>e.metadata.labels[h.yl]===this.currentProject.metadata?.name)):[]},plusMore(){const e=this.filteredNamespaces.length>5?this.filteredNamespaces.length-5:0;return this.t("promptRemove.andOthers",{count:e})},displayName(){return this.currentProject?.spec?.displayName},names(){return this.filteredNamespaces.map((e=>e.nameDisplay)).slice(0,5)},canSeeProjectlessNamespaces(){return this.currentCluster.canUpdate}},methods:{resourceNames:m.Nr,remove(){return!(!this.deleteProjectNamespaces&&this.canSeeProjectlessNamespaces)&&Promise.all(this.filteredNamespaces.map((e=>e.remove()))).then((()=>!1))}}},v=(n(71718),n(47433));const b=(0,v.A)(g,[["render",u],["__scopeId","data-v-0b3eae82"]]);var y=b},47627:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return d}});var r=n(9274);const i={key:0,class:"text info mb-10 mt-20"},a={key:1,class:"text-warning mb-10 mt-20"};function o(e,t,n,o,s,l){const c=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("promptRemove.attemptingToRemove",{type:n.type}))+" ",1),(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[c,e.resourceNames(e.names,e.plusMore,e.t)]]),e.info?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.withDirectives)((0,r.createElementVNode)("span",null,null,512),[[c,e.info]])])):(0,r.createCommentVNode)("",!0),e.warning?((0,r.openBlock)(),(0,r.createElementBlock)("div",a,(0,r.toDisplayString)(e.warning),1)):(0,r.createCommentVNode)("",!0)])}var s=n(55105),l={name:"RoleTemplatePromptRemove",mixins:[s["default"]],props:{value:{type:Array,default:()=>[]},type:{type:String,required:!0}}},c=(n(45566),n(47433));const u=(0,c.A)(l,[["render",o],["__scopeId","data-v-e0c89e72"]]);var d=u},72164:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return g}});var r=n(9274);const i={class:"mt-10"},a={class:"mb-30"},o={class:"machine-name"},s={class:"mb-30"};function l(e,t,n,l,c,u){const d=(0,r.resolveComponent)("Checkbox"),h=(0,r.resolveComponent)("Banner"),p=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createElementVNode)("div",a,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("promptRemove.attemptingToRemove",{type:n.type}))+" ",1),(0,r.withDirectives)((0,r.createElementVNode)("span",o,null,512),[[p,u.podNames]])]),(0,r.createElementVNode)("div",s,[(0,r.createVNode)(d,{value:c.forceDelete,"onUpdate:value":t[0]||(t[0]=e=>c.forceDelete=e),label:e.t("promptForceRemove.forceDelete")},null,8,["value","label"])]),(0,r.createVNode)(h,{color:"warning","label-key":"promptForceRemove.podRemoveWarning"}),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(c.errors,((e,t)=>((0,r.openBlock)(),(0,r.createBlock)(h,{key:t,class:"",color:"error",label:e},null,8,["label"])))),128))])}var c=n(9980),u=n(56417),d=n(65359),h=n(45250),p={name:"PromptRemovePodDialog",emits:["errors"],components:{Banner:c.l,Checkbox:u.A},props:{value:{type:Array,default:()=>[]},names:{type:Array,default:()=>[]},type:{type:String,required:!0},close:{type:Function,required:!0},doneLocation:{type:Object,default:()=>{}}},data(){return{errors:[],forceDelete:!1}},computed:{...(0,d.aH)("action-menu",["toRemove"]),...(0,d.L8)({t:"i18n/t"}),plusMore(){const e=this.names.length-this.names.length;return this.t("promptRemove.andOthers",{count:e})},podNames(){return this.names.reduce(((e,t,n)=>(n>=5||(e+=`<b>${t}</b>`,n===this.names.length-1?e+=this.plusMore:e+=n===this.toRemove.length-2?" and ":", "),e)),"")}},methods:{async remove(e){let t;this.doneLocation&&(t={...this.doneLocation});try{await Promise.all(this.value.map((e=>this.removePod(e)))),t&&!(0,h.isEmpty)(t)&&this.value?.[0]?.currentRouter().push(t),this.close()}catch(n){this.$emit("errors",n),e(!1)}},removePod(e){const t=this.forceDelete?{data:{gracePeriod:0,force:!0}}:void 0;return e.remove(t)}}},f=(n(7359),n(47433));const m=(0,f.A)(p,[["render",l],["__scopeId","data-v-64ba45e0"]]);var g=m},56943:function(e,t,n){"use strict";n.d(t,{A:function(){return f}});var r=n(9274);const i={key:0,class:"banner__icon","data-testid":"banner-icon"},a={key:1},o={key:2},s=["aria-label"];function l(e,t,n,l,c,u){const d=(0,r.resolveComponent)("t"),h=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:(0,r.normalizeClass)(["banner",{[e.color]:!0}]),role:"banner"},[e.icon?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.createElementVNode)("i",{class:(0,r.normalizeClass)(["icon icon-2x",e.icon])},null,2)])):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("div",{class:(0,r.normalizeClass)(["banner__content",{closable:e.closable,stacked:e.stacked,icon:e.icon}]),"data-testid":"banner-content"},[(0,r.renderSlot)(e.$slots,"default",{},(()=>[e.labelKey?((0,r.openBlock)(),(0,r.createBlock)(d,{key:0,k:e.labelKey,raw:!0},null,8,["k"])):e.messageLabel?((0,r.openBlock)(),(0,r.createElementBlock)("span",a,(0,r.toDisplayString)(e.messageLabel),1)):(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("span",o,null,512)),[[h,e.nlToBr(e.label)]])]),!0),e.closable?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:0,class:"banner__content__closer",tabindex:"0",role:"button","aria-label":e.t("generic.close"),onClick:t[0]||(t[0]=t=>e.$emit("close")),onKeyup:[t[1]||(t[1]=(0,r.withKeys)((t=>e.$emit("close")),["enter"])),t[2]||(t[2]=(0,r.withKeys)((t=>e.$emit("close")),["space"]))]},t[3]||(t[3]=[(0,r.createElementVNode)("i",{"data-testid":"banner-close",class:"icon icon-close closer-icon"},null,-1)]),40,s)):(0,r.createCommentVNode)("",!0)],2)],2)}var c=n(92043),u=n(99726),d=(0,r.defineComponent)({props:{color:{type:String,default:"secondary"},label:{type:[String,Error,Object],default:null},labelKey:{type:String,default:null},icon:{type:String,default:null},closable:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1}},emits:["close"],computed:{messageLabel(){return"string"!==typeof this.label?(0,u.As)(this.label):void 0}},methods:{nlToBr:c.Kn}}),h=(n(67394),n(47433));const p=(0,h.A)(d,[["render",l],["__scopeId","data-v-1a4e45d4"]]);var f=p},56417:function(e,t,n){"use strict";n.d(t,{A:function(){return b}});var r=n(9274);const i=["for"],a=["checked","value","name"],o=["tabindex","aria-label","aria-checked"],s=["tabindex"],l=["tabindex"],c={key:0,class:"checkbox-outer-container-description"};function u(e,t,n,u,d,h){const p=(0,r.resolveComponent)("t"),f=(0,r.resolveDirective)("clean-tooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:(0,r.normalizeClass)(["checkbox-outer-container",{"v-popper--has-tooltip":e.hasTooltip}]),"data-checkbox-ctrl":""},[(0,r.createElementVNode)("label",{class:(0,r.normalizeClass)(["checkbox-container",{disabled:e.isDisabled}]),for:e.id,onKeydown:[t[2]||(t[2]=(0,r.withKeys)((0,r.withModifiers)((t=>e.clicked(t)),["prevent"]),["enter"])),t[3]||(t[3]=(0,r.withKeys)((0,r.withModifiers)((t=>e.clicked(t)),["prevent"]),["space"]))],onClick:t[4]||(t[4]=t=>e.clicked(t))},[(0,r.createElementVNode)("input",{checked:e.isChecked,value:e.valueWhenTrue,type:"checkbox",tabindex:"-1",name:e.id,onClick:t[0]||(t[0]=(0,r.withModifiers)((()=>{}),["stop","prevent"])),onKeyup:t[1]||(t[1]=(0,r.withKeys)((0,r.withModifiers)((()=>{}),["stop","prevent"]),["enter"]))},null,40,a),(0,r.createElementVNode)("span",{class:(0,r.normalizeClass)(["checkbox-custom",{indeterminate:e.indeterminate}]),tabindex:e.isDisabled?-1:0,"aria-label":e.label,"aria-checked":!!e.value,role:"checkbox"},null,10,o),e.$slots.label||e.label||e.labelKey||e.hasTooltip?((0,r.openBlock)(),(0,r.createElementBlock)("span",{key:0,class:(0,r.normalizeClass)(["checkbox-label",{"checkbox-primary":e.primary}])},[(0,r.renderSlot)(e.$slots,"label",{},(()=>[e.labelKey?((0,r.openBlock)(),(0,r.createBlock)(p,{key:0,k:e.labelKey,raw:!0},null,8,["k"])):e.label?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createTextVNode)((0,r.toDisplayString)(e.label),1)],64)):(0,r.createCommentVNode)("",!0),e.tooltipKey?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:2,class:"checkbox-info icon icon-info icon-lg",tabindex:e.isDisabled?-1:0},null,8,s)),[[f,{content:e.t(e.tooltipKey),triggers:["hover","touch","focus"]}]]):e.tooltip?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:3,class:"checkbox-info icon icon-info icon-lg",tabindex:e.isDisabled?-1:0},null,8,l)),[[f,{content:e.tooltip,triggers:["hover","touch","focus"]}]]):(0,r.createCommentVNode)("",!0)]))],2)):(0,r.createCommentVNode)("",!0)],42,i),e.descriptionKey||e.description?((0,r.openBlock)(),(0,r.createElementBlock)("div",c,[e.descriptionKey?((0,r.openBlock)(),(0,r.createBlock)(p,{key:0,k:e.descriptionKey},null,8,["k"])):e.description?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createTextVNode)((0,r.toDisplayString)(e.description),1)],64)):(0,r.createCommentVNode)("",!0)])):(0,r.createCommentVNode)("",!0)],2)}var d=n(14220),h=n(68851),p=n(46108),f=n.n(p),m=(0,r.defineComponent)({name:"Checkbox",props:{value:{type:[Boolean,Array,String],default:!1},label:{type:String,default:null},labelKey:{type:String,default:null},id:{type:String,default:String(1e3*Math.random())},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},mode:{type:String,default:d.G5},tooltip:{type:[String,Object],default:null},tooltipKey:{type:String,default:null},valueWhenTrue:{type:[Boolean,String,Number],default:!0},descriptionKey:{type:String,default:null},description:{type:String,default:null},primary:{type:Boolean,default:!1}},emits:["update:value"],computed:{isDisabled(){return this.disabled||this.mode===d.nW},isChecked(){return this.isMulti(this.value)?this.findTrueValues(this.value):this.value===this.valueWhenTrue},hasTooltip(){return!!this.tooltip||!!this.tooltipKey}},methods:{clicked(e){if("A"===e.target.tagName&&e.target.href)return!0;if(e.stopPropagation(),e.preventDefault(),this.isDisabled)return;const t={bubbles:!0,cancelable:!1,shiftKey:e.shiftKey,altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey},n=new CustomEvent("click",t),r=f()(this.value);this.isMulti(r)?(this.isChecked?(0,h.Gj)(r,this.valueWhenTrue):(0,h.PG)(r,this.valueWhenTrue),this.$emit("update:value",r)):this.isString(this.valueWhenTrue)?this.isChecked?this.$emit("update:value",null):this.$emit("update:value",this.valueWhenTrue):(this.$emit("update:value",!r),this.$el.dispatchEvent(n))},isMulti(e){return Array.isArray(e)},isString(e){return"string"===typeof e},findTrueValues(e){return e.find((e=>e===this.valueWhenTrue))||!1}}}),g=(n(43767),n(47433));const v=(0,g.A)(m,[["render",u]]);var b=v},98752:function(e,t,n){"use strict";n.d(t,{A:function(){return A}});var r=n(9274);const i={key:0},a={key:2,class:"required"},o=["maxlength","disabled","type","value","placeholder","data-lpignore"],s={key:2,class:"sub-label","data-testid":"sub-label"},l=["aria-label"],c={key:1};function u(e,t,n,u,d,h){const p=(0,r.resolveComponent)("t"),f=(0,r.resolveComponent)("TextAreaAutoGrow"),m=(0,r.resolveComponent)("LabeledTooltip"),g=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{class:(0,r.normalizeClass)({"labeled-input":!0,focused:e.focused,[e.mode]:!0,disabled:e.isDisabled,[e.status]:e.status,suffix:e.hasSuffix,"v-popper--has-tooltip":e.hasTooltip,"compact-input":e.isCompact,hideArrows:e.hideArrows,[e.className]:!0})},[(0,r.renderSlot)(e.$slots,"label",{},(()=>[e.hasLabel?((0,r.openBlock)(),(0,r.createElementBlock)("label",i,[e.labelKey?((0,r.openBlock)(),(0,r.createBlock)(p,{key:0,k:e.labelKey},null,8,["k"])):e.label?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createTextVNode)((0,r.toDisplayString)(e.label),1)],64)):(0,r.createCommentVNode)("",!0),e.requiredField?((0,r.openBlock)(),(0,r.createElementBlock)("span",a,"*")):(0,r.createCommentVNode)("",!0)])):(0,r.createCommentVNode)("",!0)]),!0),(0,r.renderSlot)(e.$slots,"prefix",{},void 0,!0),(0,r.renderSlot)(e.$slots,"field",{},(()=>["multiline"===e.type||"multiline-password"===e.type?((0,r.openBlock)(),(0,r.createBlock)(f,(0,r.mergeProps)({key:0,ref:"value"},e.$attrs,{maxlength:e._maxlength,disabled:e.isDisabled,value:e.value||"",placeholder:e._placeholder,autocapitalize:"off",class:{conceal:"multiline-password"===e.type},"onUpdate:value":e.onInput,onFocus:e.onFocus,onBlur:e.onBlur}),null,16,["maxlength","disabled","value","placeholder","class","onUpdate:value","onFocus","onBlur"])):((0,r.openBlock)(),(0,r.createElementBlock)("input",(0,r.mergeProps)({key:1,ref:"value",class:{"no-label":!e.hasLabel}},e.$attrs,{maxlength:e._maxlength,disabled:e.isDisabled,type:"cron"===e.type?"text":e.type,value:e.value,placeholder:e._placeholder,autocomplete:"off",autocapitalize:"off","data-lpignore":e.ignorePasswordManagers,onInput:t[0]||(t[0]=(...t)=>e.onInput&&e.onInput(...t)),onFocus:t[1]||(t[1]=(...t)=>e.onFocus&&e.onFocus(...t)),onBlur:t[2]||(t[2]=(...t)=>e.onBlur&&e.onBlur(...t)),onChange:t[3]||(t[3]=(...t)=>e.onChange&&e.onChange(...t))}),null,16,o))]),!0),(0,r.renderSlot)(e.$slots,"suffix",{},void 0,!0),e.hasTooltip&&!e.focused?((0,r.openBlock)(),(0,r.createBlock)(m,{key:0,hover:e.hoverTooltip,value:e.tooltipValue,status:e.status},null,8,["hover","value","status"])):(0,r.createCommentVNode)("",!0),e.validationMessage?((0,r.openBlock)(),(0,r.createBlock)(m,{key:1,hover:e.hoverTooltip,value:e.validationMessage},null,8,["hover","value"])):(0,r.createCommentVNode)("",!0),e.cronHint||e.subLabel?((0,r.openBlock)(),(0,r.createElementBlock)("div",s,[e.cronHint?((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:0,role:"alert","aria-label":e.cronHint},(0,r.toDisplayString)(e.cronHint),9,l)):(0,r.createCommentVNode)("",!0),e.subLabel?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("div",c,null,512)),[[g,e.subLabel]]):(0,r.createCommentVNode)("",!0)])):(0,r.createCommentVNode)("",!0)],2)}var d=n(59378),h=n(44443),p=n(92043),f=n(37021),m=n.n(f),g=n(3369),v=n(45250),b=n(14220);const y={tooltipKey:{type:String,default:null},placeholder:{type:[String,Number],default:""},placeholderKey:{type:String,default:null},label:{type:String,default:null},labelKey:{type:String,default:null},value:{type:[String,Number,Object],default:""},mode:{type:String,default:b.G5},rules:{default:()=>[],type:Array,validator:e=>e.every((e=>["function"].includes(typeof e)))},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},requireDirty:{default:!0,type:Boolean}},w=((0,r.defineEmits)(["update:validation"]),(e,t)=>{const n=(0,r.ref)(e.mode===b.nW||!!`${e.value}`),i=(0,r.ref)(!1),a=(0,r.ref)(null),o=(0,r.computed)((()=>e.required||e.rules?.some((e=>"required"===e?.name)))),s=(0,r.computed)((()=>e.mode===b.nW)),l=(0,r.computed)((()=>e.disabled||s.value)),c=(0,r.computed)((()=>{const n=e.rules.find((e=>"required"===e?.name)),r=[],o=e.value;if(n&&a.value&&!i.value){const e=n(o);if(e)return t("update:validation",!1),e}for(const t of e.rules){const e=t(o);e&&"required"!==t.name&&r.push(e)}return r.length>0&&(a.value||i.value||!e.requireDirty)?(t("update:validation",!1),r.join(", ")):void t("update:validation",!0)})),u=()=>{n.value=!0,i.value=!0},d=()=>{i.value=!1,e.value||(n.value=!1),a.value=Date.now()};return{raised:n,focused:i,blurred:a,onFocusLabeled:u,onBlurLabeled:d,isDisabled:l,validationMessage:c,requiredField:o}}),E=e=>{const t=(0,r.computed)((()=>null!==e.compact&&void 0!==e.compact?!!e.compact:!(e.label||e.labelKey)));return{isCompact:t}},_={onInput(){}};var S=(0,r.defineComponent)({components:{LabeledTooltip:h.A,TextAreaAutoGrow:d.A},inheritAttrs:!1,props:{...y,type:{type:String,default:"text"},status:{type:String,default:null},subLabel:{type:String,default:null},tooltip:{default:null,type:[String,Object]},hoverTooltip:{type:Boolean,default:!0},ignorePasswordManagers:{default:!1,type:Boolean},maxlength:{type:Number,default:null},hideArrows:{type:Boolean,default:!1},delay:{type:Number,default:0},class:{type:String,default:""}},emits:["change","update:value","blur","update:validation"],setup(e,{emit:t}){const{focused:n,onFocusLabeled:i,onBlurLabeled:a,isDisabled:o,validationMessage:s,requiredField:l}=w(e,t),{isCompact:c}=E(e),u=(0,r.inject)("onInput",_.onInput);return{focused:n,onFocusLabeled:i,onBlurLabeled:a,onInput:u,isDisabled:o,validationMessage:s,requiredField:l,isCompact:c}},data(){return{updated:!1,validationErrors:""}},computed:{hasLabel(){return!this.isCompact&&(!!this.label||!!this.labelKey||!!this.$slots.label)},hasTooltip(){return!!this.tooltip||!!this.tooltipKey},tooltipValue(){if(this.hasTooltip)return this.tooltipKey?this.t(this.tooltipKey):this.tooltip},hasSuffix(){return!!this.$slots.suffix},cronHint(){if("cron"!==this.type||!this.value)return;const e=["@yearly","@annually","@monthly","@weekly","@daily","@midnight","@hourly"],t=e.includes(this.value);if(!t&&!(0,g.isValidCron)(this.value,{alias:!0,allowBlankDay:!0,allowSevenAsSunday:!0}))return this.t("generic.invalidCron");try{const e=m().toString(this.value||"",{verbose:!0});return e}catch(n){return this.t("generic.invalidCron")}},_placeholder(){return this.placeholder?this.placeholder.toString():this.placeholderKey?this.t(this.placeholderKey):""},_maxlength(){if("text"===this.type&&this.maxlength)return this.maxlength},className(){return this.class}},created(){this.onInput=this.delay?(0,v.debounce)(this.delayInput,this.delay):this.delayInput},methods:{focus(){const e=this.$refs.value;e&&e.focus()},select(){const e=this.$refs.value;e&&e.select()},onChange(e){this.$emit("change",e)},delayInput(e){const t="string"===typeof e?e:e?.target?.value;this.$emit("update:value",t)},onFocus(){this.onFocusLabeled()},onBlur(e){this.$emit("blur",e),this.onBlurLabeled()},escapeHtml:p.ZD}}),k=(n(29039),n(71037),n(47433));const x=(0,k.A)(S,[["render",u],["__scopeId","data-v-3954a5a8"]]);var A=x},90061:function(e,t,n){"use strict";n.d(t,{A:function(){return v}});var r=n(9274);const i=["id","disabled","name","value","checked"],a=["tabindex","aria-label","aria-checked"],o={class:"labeling"},s=["for"],l={key:1},c={key:0,class:"radio-button-outer-container-description"},u={key:1,class:"radio-button-outer-container-description"};function d(e,t,n,d,h,p){const f=(0,r.resolveComponent)("t"),m=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("label",{class:(0,r.normalizeClass)({disabled:e.isDisabled,"radio-container":!0}),onKeydown:[t[1]||(t[1]=(0,r.withKeys)((t=>e.clicked(t)),["enter"])),t[2]||(t[2]=(0,r.withKeys)((t=>e.clicked(t)),["space"]))],onClick:t[3]||(t[3]=(0,r.withModifiers)((t=>e.clicked(t)),["stop"]))},[(0,r.createElementVNode)("input",{id:e.randomString,disabled:e.isDisabled,name:e.name,value:""+e.val,checked:e.isChecked,type:"radio",tabindex:-1,onClick:t[0]||(t[0]=(0,r.withModifiers)((()=>{}),["stop","prevent"]))},null,8,i),(0,r.createElementVNode)("span",{ref:"custom",class:(0,r.normalizeClass)([e.isDisabled?"text-muted":"","radio-custom"]),tabindex:e.isDisabled?-1:0,"aria-label":e.label,"aria-checked":e.isChecked,role:"radio"},null,10,a),(0,r.createElementVNode)("div",o,[(0,r.createElementVNode)("label",{class:(0,r.normalizeClass)([e.muteLabel?"text-muted":"","radio-label","m-0"]),for:e.name},[e.hasLabelSlot?(0,r.renderSlot)(e.$slots,"label",{key:0}):e.label?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("span",l,null,512)),[[m,e.label]]):(0,r.createCommentVNode)("",!0)],10,s),e.descriptionKey||e.description?((0,r.openBlock)(),(0,r.createElementBlock)("div",c,[e.descriptionKey?((0,r.openBlock)(),(0,r.createBlock)(f,{key:0,k:e.descriptionKey},null,8,["k"])):e.description?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createTextVNode)((0,r.toDisplayString)(e.description),1)],64)):(0,r.createCommentVNode)("",!0)])):e.hasDescriptionSlot?((0,r.openBlock)(),(0,r.createElementBlock)("div",u,[(0,r.renderSlot)(e.$slots,"description")])):(0,r.createCommentVNode)("",!0)])],34)}var h=n(14220),p=n(92043),f=(0,r.defineComponent)({props:{name:{type:String,default:""},val:{required:!0,validator:()=>!0},value:{required:!0,validator:()=>!0},label:{type:String,default:""},disabled:{type:Boolean,default:!1},mode:{type:String,default:"edit"},descriptionKey:{type:String,default:null},description:{type:String,default:null}},emits:["update:value"],data(){return{isChecked:this.value===this.val,randomString:`${(0,p.vx)()}-radio`}},computed:{isDisabled(){return this.mode===h.nW||this.disabled},muteLabel(){return this.disabled&&!(this.mode===h.nW&&this.isChecked)},hasDescriptionSlot(){return!!this.$slots.description},hasLabelSlot(){return!!this.$slots.label}},watch:{value(e){this.isChecked=this.val===e,this.isChecked&&this.$refs.custom.focus()}},methods:{clicked(e){const t=e.target;this.isDisabled||t instanceof HTMLElement&&"A"===t.tagName||this.$emit("update:value",this.val)}}}),m=(n(12914),n(47433));const g=(0,m.A)(f,[["render",d]]);var v=g},55834:function(e,t,n){"use strict";n.d(t,{A:function(){return f}});var r=n(9274);const i={key:0,class:"radio-group label"},a={key:2,class:"icon icon-info icon-lg"},o={key:3,class:"icon icon-info icon-lg"},s=["aria-label"];function l(e,t,n,l,c,u){const d=(0,r.resolveComponent)("t"),h=(0,r.resolveComponent)("RadioButton"),p=(0,r.resolveDirective)("clean-tooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[e.label||e.labelKey||e.tooltip||e.tooltipKey||e.$slots.label?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[(0,r.renderSlot)(e.$slots,"label",{},(()=>[(0,r.createElementVNode)("h3",null,[e.labelKey?((0,r.openBlock)(),(0,r.createBlock)(d,{key:0,k:e.labelKey},null,8,["k"])):e.label?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createTextVNode)((0,r.toDisplayString)(e.label),1)],64)):(0,r.createCommentVNode)("",!0),e.tooltipKey?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",a,null,512)),[[p,e.t(e.tooltipKey)]]):e.tooltip?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",o,null,512)),[[p,e.tooltip]]):(0,r.createCommentVNode)("",!0)])]))])):(0,r.createCommentVNode)("",!0),(0,r.createElementVNode)("div",{role:"radiogroup","aria-label":e.radioGroupLabel,class:(0,r.normalizeClass)(["radio-group",{row:e.row}]),onKeyup:[t[1]||(t[1]=(0,r.withKeys)((0,r.withModifiers)((t=>e.clickNext(1)),["stop"]),["down"])),t[2]||(t[2]=(0,r.withKeys)((0,r.withModifiers)((t=>e.clickNext(-1)),["stop"]),["up"]))]},[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.normalizedOptions,((n,i)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:i},[(0,r.renderSlot)(e.$slots,i,{vBind:e.$attrs,option:n,isDisabled:e.isDisabled},(()=>[(0,r.createVNode)(h,{name:e.name,value:e.value,label:n.label,description:n.description,val:n.value,disabled:e.isDisabled,mode:e.mode,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("update:value",t))},null,8,["name","value","label","description","val","disabled","mode"])]))])))),128))],42,s)])}var c=n(14220),u=n(90061),d=(0,r.defineComponent)({components:{RadioButton:u.A},props:{name:{type:String,required:!0},options:{type:Array,required:!0},labels:{type:Array,default:null},value:{type:[Boolean,String,Object],default:null},disabled:{type:Boolean,default:!1},mode:{type:String,default:"edit"},label:{type:String,default:null},labelKey:{type:String,default:null},tooltip:{type:[String,Object],default:null},tooltipKey:{type:String,default:null},row:{type:Boolean,default:!1}},emits:["update:value"],computed:{normalizedOptions(){const e=[];for(let t=0;t<this.options.length;t++){const n=this.options[t];"object"===typeof n&&n?e.push(n):this.labels?e.push({label:this.labels[t],value:n}):e.push({label:n,value:n})}return e},isView(){return this.mode===c.nW},isDisabled(){return this.disabled||this.isView},radioGroupLabel(){return this.labelKey?this.t(this.labelKey):this.label?this.label:""}},methods:{clickNext(e){const t=this.normalizedOptions,n=t.find((e=>e.value===this.value));let r=(n?t.indexOf(n):-1)+e;r>=t.length?r=t.length-1:r<0&&(r=0),this.$emit("update:value",t[r].value)}}}),h=(n(5091),n(47433));const p=(0,h.A)(d,[["render",l]]);var f=p},59378:function(e,t,n){"use strict";n.d(t,{A:function(){return h}});var r=n(9274);const i=["value","data-testid","disabled","placeholder","spellcheck"];function a(e,t,n,a,o,s){return(0,r.openBlock)(),(0,r.createElementBlock)("textarea",(0,r.mergeProps)({ref:"ta",value:e.value,"data-testid":e.$attrs["data-testid"]?e.$attrs["data-testid"]:"text-area-auto-grow",disabled:e.isDisabled,style:e.style,placeholder:e.placeholder,class:[e.className,"no-resize no-ease"]},e.$attrs,{spellcheck:e.spellcheck,onPaste:t[0]||(t[0]=t=>e.$emit("paste",t)),onInput:t[1]||(t[1]=t=>e.onInput(t)),onFocus:t[2]||(t[2]=t=>e.$emit("focus",t)),onBlur:t[3]||(t[3]=t=>e.$emit("blur",t))}),null,16,i)}var o=n(45250),s=n(14220);const l={queueResize(){}};var c=(0,r.defineComponent)({inheritAttrs:!1,props:{value:{type:String,required:!0},class:{type:[String,Array,Object],default:""},mode:{type:String,default:s.G5},minHeight:{type:Number,default:25},maxHeight:{type:Number,default:200},placeholder:{type:String,default:""},spellcheck:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1}},emits:["update:value","paste","focus","blur"],setup(){const e=(0,r.inject)("queueResize",l.queueResize);return{queueResize:e}},data(){return{curHeight:this.minHeight,overflow:"hidden"}},computed:{isDisabled(){return this.disabled||this.mode===s.nW},style(){return`height: ${this.curHeight}px; overflow: ${this.overflow};`},className(){return this.class}},watch:{$attrs:{deep:!0,handler(){this.queueResize()}}},created(){this.queueResize=(0,o.debounce)(this.autoSize,100)},mounted(){this.$refs.ta.style.height=`${this.curHeight}px`,this.$nextTick((()=>{this.autoSize()}))},methods:{onInput(e){const t=e?.target?.value;this.$emit("update:value",t),this.queueResize()},focus(){(this.$refs?.ta).focus()},autoSize(){const e=this.$refs.ta;if(!e)return;e.style.height="1px";const t=parseInt(getComputedStyle(e).getPropertyValue("borderTopWidth"),10)||0+parseInt(getComputedStyle(e).getPropertyValue("borderBottomWidth"),10)||0,n=Math.max(this.minHeight,Math.min(e.scrollHeight+t,this.maxHeight));e.style.overflowY=e.scrollHeight>n?"auto":"hidden",e.style.height=`${n}px`,this.curHeight=n}}}),u=n(47433);const d=(0,u.A)(c,[["render",a]]);var h=d},44443:function(e,t,n){"use strict";n.d(t,{A:function(){return u}});var r=n(9274);const i={key:0,class:"tooltip","x-placement":"bottom"},a={class:"tooltip-inner"};function o(e,t,n,o,s,l){const c=(0,r.resolveDirective)("clean-tooltip");return(0,r.openBlock)(),(0,r.createElementBlock)("div",{ref:"container",class:(0,r.normalizeClass)(["labeled-tooltip",{[e.status]:!0,hoverable:e.hover}])},[e.hover?(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createElementBlock)("i",{key:0,class:(0,r.normalizeClass)([{hover:!e.value,[e.iconClass]:!0},"icon status-icon"])},null,2)),[[c,e.isObject(e.value)?{content:e.value.content,popperClass:[`tooltip-${e.status}`],...e.value}:e.value]]):((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createElementVNode)("i",{class:(0,r.normalizeClass)([{hover:!e.value},"icon status-icon"])},null,2),e.value?((0,r.openBlock)(),(0,r.createElementBlock)("div",i,[t[0]||(t[0]=(0,r.createElementVNode)("div",{class:"tooltip-arrow"},null,-1)),(0,r.createElementVNode)("div",a,(0,r.toDisplayString)(e.value),1)])):(0,r.createCommentVNode)("",!0)],64))],2)}var s=(0,r.defineComponent)({props:{value:{type:[String,Object],default:null},status:{type:String,default:"error"},hover:{type:Boolean,default:!0}},computed:{iconClass(){return"error"===this.status?"icon-warning":"icon-info"}},methods:{isObject(e){return"object"===typeof e&&null!==e&&!!e.content}}}),l=(n(39265),n(47433));const c=(0,l.A)(s,[["render",o]]);var u=c},91806:function(e,t,n){"use strict";n.d(t,{A:function(){return m}});var r=n(9274);const i={class:"mb-5"},a={class:"mb-5"},o={class:"mb-5"},s=["href"];function l(e,t,n,l,c,u){const d=(0,r.resolveComponent)("Banner"),h=(0,r.resolveDirective)("clean-html");return(0,r.openBlock)(),(0,r.createElementBlock)("div",null,[(0,r.createVNode)(d,{color:"warning"},{default:(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",null,[(0,r.createElementVNode)("strong",null,(0,r.toDisplayString)(e.t("harvester.upgradePage.upgradeInfo.warning"))+":",1),(0,r.withDirectives)((0,r.createElementVNode)("p",i,null,512),[[h,e.t("harvester.upgradePage.upgradeInfo.doc",{url:u.upgradeLink},!0)]]),(0,r.createElementVNode)("p",a,(0,r.toDisplayString)(e.t("harvester.upgradePage.upgradeInfo.tip")),1),(0,r.createElementVNode)("p",o,[(0,r.createTextVNode)((0,r.toDisplayString)(e.t("harvester.upgradePage.upgradeInfo.moreNotes"))+" ",1),(0,r.createElementVNode)("a",{href:u.releaseVersion,target:"_blank"},(0,r.toDisplayString)(e.t("generic.moreInfo")),9,s)])])])),_:1})])}var c=n(9980),u=n(66242),d=n(3791),h={name:"HarvesterUpgradeInfo",components:{Banner:c.l},props:{version:{type:String,default:""}},computed:{releaseVersion(){return this.version?`https://github.com/harvester/harvester/releases/tag/${this.version}`:"https://github.com/harvester/harvester/releases"},upgradeLink(){const e=this.$store.getters["harvester-common/getServerVersion"]();return(0,d.nn)(u.d.UPGRADE_URL,e)}}},p=n(47433);const f=(0,p.A)(h,[["render",l]]);var m=f},86328:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return B}});var r=n(9274);const i={class:"bundleModal"},a={class:"p-20"},o={key:0,class:"content"},s={key:1,class:"content"},l={class:"circle"},c={class:"footer mt-20"};function u(e,t,n,u,d,h){const p=(0,r.resolveComponent)("LabeledInput"),f=(0,r.resolveComponent)("GraphCircle"),m=(0,r.resolveComponent)("Banner"),g=(0,r.resolveComponent)("AsyncButton"),v=(0,r.resolveComponent)("app-modal");return(0,r.openBlock)(),(0,r.createElementBlock)("div",i,[d.isOpen?((0,r.openBlock)(),(0,r.createBlock)(v,{key:0,name:"bundle-modal","custom-class":"bundleModal","click-to-close":!1,width:550,height:390,class:"remove-modal support-modal",onClose:h.close},{default:(0,r.withCtx)((()=>[(0,r.createElementVNode)("div",a,[(0,r.createElementVNode)("h2",null,(0,r.toDisplayString)(e.t("harvester.modal.bundle.title")),1),h.bundlePending?((0,r.openBlock)(),(0,r.createElementBlock)("div",s,[(0,r.createElementVNode)("div",l,[(0,r.createVNode)(f,{"primary-stroke-color":"green","secondary-stroke-color":"white","stroke-width":6,percentage:h.percentage,"show-text":!0},null,8,["percentage"])])])):((0,r.openBlock)(),(0,r.createElementBlock)("div",o,[(0,r.createVNode)(p,{value:d.url,"onUpdate:value":t[0]||(t[0]=e=>d.url=e),label:e.t("harvester.modal.bundle.url"),class:"mb-20"},null,8,["value","label"]),(0,r.createVNode)(p,{value:d.description,"onUpdate:value":t[1]||(t[1]=e=>d.description=e),label:e.t("harvester.modal.bundle.description"),type:"multiline","min-height":120,required:""},null,8,["value","label"])])),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(d.errors,((e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)("div",{key:t},[(0,r.createVNode)(m,{color:"error",label:h.stringify(e)},null,8,["label"])])))),128)),(0,r.createElementVNode)("div",c,[(0,r.createElementVNode)("button",{class:"btn btn-sm role-secondary mr-10",onClick:t[2]||(t[2]=(...e)=>h.close&&h.close(...e))},(0,r.toDisplayString)(e.t("generic.close")),1),(0,r.createVNode)(g,{type:"submit",mode:"generate",class:"btn btn-sm bg-primary",disabled:h.bundlePending,onClick:h.save},null,8,["disabled","onClick"])])])])),_:1},8,["onClose"])):(0,r.createCommentVNode)("",!0)])}var d=n(92043),h=n(99726),p=n(79380),f=n(88857);const m=["viewBox"],g=["transform"],v=["id"],b=["stop-color"],y=["stop-color"],w=["id"],E=["stop-color"],_=["stop-color"],S=["r","cy","cx","stroke-width","stroke"],k=["r","cy","cx","stroke-width","stroke","stroke-dasharray","stroke-dashoffset"],x=["x","y","fill"];function A(e,t,n,i,a,o){return(0,r.openBlock)(),(0,r.createElementBlock)("svg",{class:"circle",width:"100%",height:"100%",viewBox:o.viewBox},[(0,r.createElementVNode)("g",{transform:o.transform},[(0,r.createElementVNode)("defs",null,[(0,r.createElementVNode)("linearGradient",{id:o.primaryStrokeColorId,x1:"0%",y1:"0%",x2:"100%",y2:"0%"},[(0,r.createElementVNode)("stop",{offset:"50%","stop-color":n.primaryStrokeGradientColor||n.primaryStrokeColor},null,8,b),(0,r.createElementVNode)("stop",{offset:"100%","stop-color":n.primaryStrokeColor},null,8,y)],8,v),(0,r.createElementVNode)("linearGradient",{id:o.secondaryStrokeColorId,x1:"0%",y1:"0%",x2:"100%",y2:"0%"},[(0,r.createElementVNode)("stop",{offset:"50%","stop-color":n.secondaryStrokeGradientColor||n.secondaryStrokeColor},null,8,E),(0,r.createElementVNode)("stop",{offset:"100%","stop-color":n.secondaryStrokeColor},null,8,_)],8,w)]),(0,r.createElementVNode)("circle",{r:o.radius,cy:o.center,cx:o.center,"stroke-width":n.strokeWidth,stroke:`url(#${o.secondaryStrokeColorId})`,fill:"none"},null,8,S),(0,r.createElementVNode)("circle",{r:o.radius,cy:o.center,cx:o.center,"stroke-width":n.strokeWidth,stroke:`url(#${o.primaryStrokeColorId})`,"stroke-dasharray":o.circumference,"stroke-dashoffset":o.circumference*(1-n.percentage),fill:"none"},null,8,k)],8,g),n.showText?((0,r.openBlock)(),(0,r.createElementBlock)("text",{key:0,x:o.center,y:o.center,style:{"font-size":"25","dominant-baseline":"middle","text-anchor":"middle"},fill:`url(#${o.primaryStrokeColorId})`},(0,r.toDisplayString)(o.parsePercentage)+"% ",9,x)):(0,r.createCommentVNode)("",!0)],8,m)}let N=0;var C={props:{percentage:{type:Number,default:.75},strokeWidth:{type:Number,default:22},primaryStrokeColor:{type:String,required:!0},primaryStrokeGradientColor:{type:String,default:null},secondaryStrokeColor:{type:String,required:!0},secondaryStrokeGradientColor:{type:String,default:null},rotate:{type:Number,default:90},showText:{type:Boolean,default:!1}},data(){return{id:N++}},computed:{viewportSize(){return 100},radius(){const e=this.viewportSize/2,t=this.strokeWidth/2;return e-t},center(){return this.viewportSize/2},viewBox(){return`0 0 ${this.viewportSize} ${this.viewportSize}`},circumference(){return 2*Math.PI*this.radius},transform(){return`rotate(${this.rotate}, ${this.center}, ${this.center})`},strokeDasharray(){return this.circumference},strokeDashoffset(){return this.circumference*(1-this.percentage)},primaryStrokeColorId(){return`primary-${N}`},secondaryStrokeColorId(){return`secondary-${N}`},parsePercentage(){return parseInt(100*this.percentage)||0}}},T=(n(34941),n(47433));const R=(0,T.A)(C,[["render",A],["__scopeId","data-v-5f78e642"]]);var O=R,I=n(9980),L=n(162),D=n(32766),P={name:"SupportBundle",components:{LabeledInput:p.o,GraphCircle:O,AsyncButton:f.A,Banner:I.l,AppModal:L.A},data(){return{url:"",description:"",errors:[],isOpen:!1}},computed:{bundlePending(){return this.$store.getters["harvester-common/isBundlePending"]},isShowBundleModal(){return this.$store.getters["harvester-common/isShowBundleModal"]},percentage(){return this.$store.getters["harvester-common/getBundlePercentage"]}},watch:{isShowBundleModal:{handler(e){e?this.$nextTick((()=>{this.isOpen=!0})):(this.isOpen=!1,this.url="",this.description="")},immediate:!0}},methods:{stringify:h.As,close(){this.isOpen=!1,this.$store.commit("harvester-common/toggleBundleModal",!1),this.backUpName=""},async save(e){this.errors=[];const t=`bundle-${(0,d.vx)(5).toLowerCase()}`,n="harvester-system",r={apiVersion:"harvesterhci.io/v1beta1",type:D.rk.SUPPORT_BUNDLE,kind:"SupportBundle",metadata:{name:t,namespace:n},spec:{issueURL:this.url,description:this.description}},i=this.$store.getters["currentProduct"].inStore,a=await this.$store.dispatch(`${i}/create`,r);try{await a.save(),this.$store.commit("harvester-common/setLatestBundleId",`${n}/${t}`,{root:!0}),this.$store.dispatch("harvester-common/bundleProgress",{root:!0})}catch(o){this.errors=(0,h.rz)(o),e(!1)}}}};n(13358);const M=(0,T.A)(P,[["render",u],["__scopeId","data-v-4369f8da"]]);var B=M},79818:function(e,t,n){"use strict";var r=n(528),i=n(28498),a=i(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"===typeof n&&a(e,".prototype.")>-1?i(n):n}},28498:function(e,t,n){"use strict";var r=n(79138),i=n(528),a=n(26108),o=n(3468),s=i("%Function.prototype.apply%"),l=i("%Function.prototype.call%"),c=i("%Reflect.apply%",!0)||r.call(l,s),u=n(64940),d=i("%Math.max%");e.exports=function(e){if("function"!==typeof e)throw new o("a function is required");var t=c(r,l,arguments);return a(t,1+d(0,e.length-(arguments.length-1)),!0)};var h=function(){return c(r,s,arguments)};u?u(e.exports,"apply",{value:h}):e.exports.apply=h},59246:function(e,t,n){const r=n(76931),i={};for(const s of Object.keys(r))i[r[s]]=s;const a={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=a;for(const s of Object.keys(a)){if(!("channels"in a[s]))throw new Error("missing channels property: "+s);if(!("labels"in a[s]))throw new Error("missing channel labels property: "+s);if(a[s].labels.length!==a[s].channels)throw new Error("channel and label counts mismatch: "+s);const{channels:e,labels:t}=a[s];delete a[s].channels,delete a[s].labels,Object.defineProperty(a[s],"channels",{value:e}),Object.defineProperty(a[s],"labels",{value:t})}function o(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}a.rgb.hsl=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i;let s,l;a===i?s=0:t===a?s=(n-r)/o:n===a?s=2+(r-t)/o:r===a&&(s=4+(t-n)/o),s=Math.min(60*s,360),s<0&&(s+=360);const c=(i+a)/2;return l=a===i?0:c<=.5?o/(a+i):o/(2-a-i),[s,100*l,100*c]},a.rgb.hsv=function(e){let t,n,r,i,a;const o=e[0]/255,s=e[1]/255,l=e[2]/255,c=Math.max(o,s,l),u=c-Math.min(o,s,l),d=function(e){return(c-e)/6/u+.5};return 0===u?(i=0,a=0):(a=u/c,t=d(o),n=d(s),r=d(l),o===c?i=r-n:s===c?i=1/3+t-r:l===c&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*a,100*c]},a.rgb.hwb=function(e){const t=e[0],n=e[1];let r=e[2];const i=a.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[i,100*o,100*r]},a.rgb.cmyk=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r),a=(1-t-i)/(1-i)||0,o=(1-n-i)/(1-i)||0,s=(1-r-i)/(1-i)||0;return[100*a,100*o,100*s,100*i]},a.rgb.keyword=function(e){const t=i[e];if(t)return t;let n,a=1/0;for(const i of Object.keys(r)){const t=r[i],s=o(e,t);s<a&&(a=s,n=i)}return n},a.keyword.rgb=function(e){return r[e]},a.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;const i=.4124*t+.3576*n+.1805*r,a=.2126*t+.7152*n+.0722*r,o=.0193*t+.1192*n+.9505*r;return[100*i,100*a,100*o]},a.rgb.lab=function(e){const t=a.rgb.xyz(e);let n=t[0],r=t[1],i=t[2];n/=95.047,r/=100,i/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;const o=116*r-16,s=500*(n-r),l=200*(r-i);return[o,s,l]},a.hsl.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;let i,a,o;if(0===n)return o=255*r,[o,o,o];i=r<.5?r*(1+n):r+n-r*n;const s=2*r-i,l=[0,0,0];for(let c=0;c<3;c++)a=t+1/3*-(c-1),a<0&&a++,a>1&&a--,o=6*a<1?s+6*(i-s)*a:2*a<1?i:3*a<2?s+(i-s)*(2/3-a)*6:s,l[c]=255*o;return l},a.hsl.hsv=function(e){const t=e[0];let n=e[1]/100,r=e[2]/100,i=n;const a=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=a<=1?a:2-a;const o=(r+n)/2,s=0===r?2*i/(a+i):2*n/(r+n);return[t,100*s,100*o]},a.hsv.rgb=function(e){const t=e[0]/60,n=e[1]/100;let r=e[2]/100;const i=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*a),l=255*r*(1-n*(1-a));switch(r*=255,i){case 0:return[r,l,o];case 1:return[s,r,o];case 2:return[o,r,l];case 3:return[o,s,r];case 4:return[l,o,r];case 5:return[r,o,s]}},a.hsv.hsl=function(e){const t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01);let a,o;o=(2-n)*r;const s=(2-n)*i;return a=n*i,a/=s<=1?s:2-s,a=a||0,o/=2,[t,100*a,100*o]},a.hwb.rgb=function(e){const t=e[0]/360;let n=e[1]/100,r=e[2]/100;const i=n+r;let a;i>1&&(n/=i,r/=i);const o=Math.floor(6*t),s=1-r;a=6*t-o,0!==(1&o)&&(a=1-a);const l=n+a*(s-n);let c,u,d;switch(o){default:case 6:case 0:c=s,u=l,d=n;break;case 1:c=l,u=s,d=n;break;case 2:c=n,u=s,d=l;break;case 3:c=n,u=l,d=s;break;case 4:c=l,u=n,d=s;break;case 5:c=s,u=n,d=l;break}return[255*c,255*u,255*d]},a.cmyk.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100,a=1-Math.min(1,t*(1-i)+i),o=1-Math.min(1,n*(1-i)+i),s=1-Math.min(1,r*(1-i)+i);return[255*a,255*o,255*s]},a.xyz.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100;let i,a,o;return i=3.2406*t+-1.5372*n+-.4986*r,a=-.9689*t+1.8758*n+.0415*r,o=.0557*t+-.204*n+1.057*r,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),[255*i,255*a,255*o]},a.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;const i=116*n-16,a=500*(t-n),o=200*(n-r);return[i,a,o]},a.lab.xyz=function(e){const t=e[0],n=e[1],r=e[2];let i,a,o;a=(t+16)/116,i=n/500+a,o=a-r/200;const s=a**3,l=i**3,c=o**3;return a=s>.008856?s:(a-16/116)/7.787,i=l>.008856?l:(i-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,i*=95.047,a*=100,o*=108.883,[i,a,o]},a.lab.lch=function(e){const t=e[0],n=e[1],r=e[2];let i;const a=Math.atan2(r,n);i=360*a/2/Math.PI,i<0&&(i+=360);const o=Math.sqrt(n*n+r*r);return[t,o,i]},a.lch.lab=function(e){const t=e[0],n=e[1],r=e[2],i=r/360*2*Math.PI,a=n*Math.cos(i),o=n*Math.sin(i);return[t,a,o]},a.rgb.ansi16=function(e,t=null){const[n,r,i]=e;let o=null===t?a.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),0===o)return 30;let s=30+(Math.round(i/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return 2===o&&(s+=60),s},a.hsv.ansi16=function(e){return a.rgb.ansi16(a.hsv.rgb(e),e[2])},a.rgb.ansi256=function(e){const t=e[0],n=e[1],r=e[2];if(t===n&&n===r)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;const i=16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5);return i},a.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const n=.5*(1+~~(e>50)),r=(1&t)*n*255,i=(t>>1&1)*n*255,a=(t>>2&1)*n*255;return[r,i,a]},a.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;const n=Math.floor(e/36)/5*255,r=Math.floor((t=e%36)/6)/5*255,i=t%6/5*255;return[n,r,i]},a.rgb.hex=function(e){const t=((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2])),n=t.toString(16).toUpperCase();return"000000".substring(n.length)+n},a.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];3===t[0].length&&(n=n.split("").map((e=>e+e)).join(""));const r=parseInt(n,16),i=r>>16&255,a=r>>8&255,o=255&r;return[i,a,o]},a.rgb.hcg=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),a=Math.min(Math.min(t,n),r),o=i-a;let s,l;return s=o<1?a/(1-o):0,l=o<=0?0:i===t?(n-r)/o%6:i===n?2+(r-t)/o:4+(t-n)/o,l/=6,l%=1,[360*l,100*o,100*s]},a.hsl.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n);let i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},a.hsv.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=t*n;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},a.hcg.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];const i=[0,0,0],a=t%1*6,o=a%1,s=1-o;let l=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return l=(1-n)*r,[255*(n*i[0]+l),255*(n*i[1]+l),255*(n*i[2]+l)]},a.hcg.hsv=function(e){const t=e[1]/100,n=e[2]/100,r=t+n*(1-t);let i=0;return r>0&&(i=t/r),[e[0],100*i,100*r]},a.hcg.hsl=function(e){const t=e[1]/100,n=e[2]/100,r=n*(1-t)+.5*t;let i=0;return r>0&&r<.5?i=t/(2*r):r>=.5&&r<1&&(i=t/(2*(1-r))),[e[0],100*i,100*r]},a.hcg.hwb=function(e){const t=e[1]/100,n=e[2]/100,r=t+n*(1-t);return[e[0],100*(r-t),100*(1-r)]},a.hwb.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=1-n,i=r-t;let a=0;return i<1&&(a=(r-i)/(1-i)),[e[0],100*i,100*a]},a.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},a.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},a.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},a.gray.hsl=function(e){return[0,0,e[0]]},a.gray.hsv=a.gray.hsl,a.gray.hwb=function(e){return[0,100,e[0]]},a.gray.cmyk=function(e){return[0,0,0,e[0]]},a.gray.lab=function(e){return[e[0],0,0]},a.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),n=(t<<16)+(t<<8)+t,r=n.toString(16).toUpperCase();return"000000".substring(r.length)+r},a.rgb.gray=function(e){const t=(e[0]+e[1]+e[2])/3;return[t/255*100]}},99047:function(e,t,n){const r=n(59246),i=n(30802),a={},o=Object.keys(r);function s(e){const t=function(...t){const n=t[0];return void 0===n||null===n?n:(n.length>1&&(t=n),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function l(e){const t=function(...t){const n=t[0];if(void 0===n||null===n)return n;n.length>1&&(t=n);const r=e(t);if("object"===typeof r)for(let e=r.length,i=0;i<e;i++)r[i]=Math.round(r[i]);return r};return"conversion"in e&&(t.conversion=e.conversion),t}o.forEach((e=>{a[e]={},Object.defineProperty(a[e],"channels",{value:r[e].channels}),Object.defineProperty(a[e],"labels",{value:r[e].labels});const t=i(e),n=Object.keys(t);n.forEach((n=>{const r=t[n];a[e][n]=l(r),a[e][n].raw=s(r)}))})),e.exports=a},30802:function(e,t,n){const r=n(59246);function i(){const e={},t=Object.keys(r);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function a(e){const t=i(),n=[e];t[e].distance=0;while(n.length){const e=n.pop(),i=Object.keys(r[e]);for(let r=i.length,a=0;a<r;a++){const r=i[a],o=t[r];-1===o.distance&&(o.distance=t[e].distance+1,o.parent=e,n.unshift(r))}}return t}function o(e,t){return function(n){return t(e(n))}}function s(e,t){const n=[t[e].parent,e];let i=r[t[e].parent][e],a=t[e].parent;while(t[a].parent)n.unshift(t[a].parent),i=o(r[t[a].parent][a],i),a=t[a].parent;return i.conversion=n,i}e.exports=function(e){const t=a(e),n={},r=Object.keys(t);for(let i=r.length,a=0;a<i;a++){const e=r[a],i=t[e];null!==i.parent&&(n[e]=s(e,t))}return n}},76931:function(e){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},43269:function(e,t,n){var r=n(76931),i=n(59975),a=Object.hasOwnProperty,o=Object.create(null);for(var s in r)a.call(r,s)&&(o[r[s]]=s);var l=e.exports={to:{},get:{}};function c(e,t,n){return Math.min(Math.max(t,e),n)}function u(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}l.get=function(e){var t,n,r=e.substring(0,3).toLowerCase();switch(r){case"hsl":t=l.get.hsl(e),n="hsl";break;case"hwb":t=l.get.hwb(e),n="hwb";break;default:t=l.get.rgb(e),n="rgb";break}return t?{model:n,value:t}:null},l.get.rgb=function(e){if(!e)return null;var t,n,i,o=/^#([a-f0-9]{3,4})$/i,s=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,l=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,u=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,d=/^(\w+)$/,h=[0,0,0,1];if(t=e.match(s)){for(i=t[2],t=t[1],n=0;n<3;n++){var p=2*n;h[n]=parseInt(t.slice(p,p+2),16)}i&&(h[3]=parseInt(i,16)/255)}else if(t=e.match(o)){for(t=t[1],i=t[3],n=0;n<3;n++)h[n]=parseInt(t[n]+t[n],16);i&&(h[3]=parseInt(i+i,16)/255)}else if(t=e.match(l)){for(n=0;n<3;n++)h[n]=parseInt(t[n+1],0);t[4]&&(t[5]?h[3]=.01*parseFloat(t[4]):h[3]=parseFloat(t[4]))}else{if(!(t=e.match(u)))return(t=e.match(d))?"transparent"===t[1]?[0,0,0,0]:a.call(r,t[1])?(h=r[t[1]],h[3]=1,h):null:null;for(n=0;n<3;n++)h[n]=Math.round(2.55*parseFloat(t[n+1]));t[4]&&(t[5]?h[3]=.01*parseFloat(t[4]):h[3]=parseFloat(t[4]))}for(n=0;n<3;n++)h[n]=c(h[n],0,255);return h[3]=c(h[3],0,1),h},l.get.hsl=function(e){if(!e)return null;var t=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,n=e.match(t);if(n){var r=parseFloat(n[4]),i=(parseFloat(n[1])%360+360)%360,a=c(parseFloat(n[2]),0,100),o=c(parseFloat(n[3]),0,100),s=c(isNaN(r)?1:r,0,1);return[i,a,o,s]}return null},l.get.hwb=function(e){if(!e)return null;var t=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,n=e.match(t);if(n){var r=parseFloat(n[4]),i=(parseFloat(n[1])%360+360)%360,a=c(parseFloat(n[2]),0,100),o=c(parseFloat(n[3]),0,100),s=c(isNaN(r)?1:r,0,1);return[i,a,o,s]}return null},l.to.hex=function(){var e=i(arguments);return"#"+u(e[0])+u(e[1])+u(e[2])+(e[3]<1?u(Math.round(255*e[3])):"")},l.to.rgb=function(){var e=i(arguments);return e.length<4||1===e[3]?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"},l.to.rgb.percent=function(){var e=i(arguments),t=Math.round(e[0]/255*100),n=Math.round(e[1]/255*100),r=Math.round(e[2]/255*100);return e.length<4||1===e[3]?"rgb("+t+"%, "+n+"%, "+r+"%)":"rgba("+t+"%, "+n+"%, "+r+"%, "+e[3]+")"},l.to.hsl=function(){var e=i(arguments);return e.length<4||1===e[3]?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"},l.to.hwb=function(){var e=i(arguments),t="";return e.length>=4&&1!==e[3]&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"},l.to.keyword=function(e){return o[e.slice(0,3)]}},70465:function(e,t,n){const r=n(43269),i=n(99047),a=["keyword","gray","hex"],o={};for(const m of Object.keys(i))o[[...i[m].labels].sort().join("")]=m;const s={};function l(e,t){if(!(this instanceof l))return new l(e,t);if(t&&t in a&&(t=null),t&&!(t in i))throw new Error("Unknown model: "+t);let n,c;if(null==e)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof l)this.model=e.model,this.color=[...e.color],this.valpha=e.valpha;else if("string"===typeof e){const t=r.get(e);if(null===t)throw new Error("Unable to parse color from string: "+e);this.model=t.model,c=i[this.model].channels,this.color=t.value.slice(0,c),this.valpha="number"===typeof t.value[c]?t.value[c]:1}else if(e.length>0){this.model=t||"rgb",c=i[this.model].channels;const n=Array.prototype.slice.call(e,0,c);this.color=f(n,c),this.valpha="number"===typeof e[c]?e[c]:1}else if("number"===typeof e)this.model="rgb",this.color=[e>>16&255,e>>8&255,255&e],this.valpha=1;else{this.valpha=1;const t=Object.keys(e);"alpha"in e&&(t.splice(t.indexOf("alpha"),1),this.valpha="number"===typeof e.alpha?e.alpha:0);const r=t.sort().join("");if(!(r in o))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=o[r];const{labels:a}=i[this.model],s=[];for(n=0;n<a.length;n++)s.push(e[a[n]]);this.color=f(s)}if(s[this.model])for(c=i[this.model].channels,n=0;n<c;n++){const e=s[this.model][n];e&&(this.color[n]=e(this.color[n]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}l.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(e){let t=this.model in r.to?this:this.rgb();t=t.round("number"===typeof e?e:1);const n=1===t.valpha?t.color:[...t.color,this.valpha];return r.to[t.model](n)},percentString(e){const t=this.rgb().round("number"===typeof e?e:1),n=1===t.valpha?t.color:[...t.color,this.valpha];return r.to.rgb.percent(n)},array(){return 1===this.valpha?[...this.color]:[...this.color,this.valpha]},object(){const e={},{channels:t}=i[this.model],{labels:n}=i[this.model];for(let r=0;r<t;r++)e[n[r]]=this.color[r];return 1!==this.valpha&&(e.alpha=this.valpha),e},unitArray(){const e=this.rgb().color;return e[0]/=255,e[1]/=255,e[2]/=255,1!==this.valpha&&e.push(this.valpha),e},unitObject(){const e=this.rgb().object();return e.r/=255,e.g/=255,e.b/=255,1!==this.valpha&&(e.alpha=this.valpha),e},round(e){return e=Math.max(e||0,0),new l([...this.color.map(u(e)),this.valpha],this.model)},alpha(e){return void 0!==e?new l([...this.color,Math.max(0,Math.min(1,e))],this.model):this.valpha},red:d("rgb",0,h(255)),green:d("rgb",1,h(255)),blue:d("rgb",2,h(255)),hue:d(["hsl","hsv","hsl","hwb","hcg"],0,(e=>(e%360+360)%360)),saturationl:d("hsl",1,h(100)),lightness:d("hsl",2,h(100)),saturationv:d("hsv",1,h(100)),value:d("hsv",2,h(100)),chroma:d("hcg",1,h(100)),gray:d("hcg",2,h(100)),white:d("hwb",1,h(100)),wblack:d("hwb",2,h(100)),cyan:d("cmyk",0,h(100)),magenta:d("cmyk",1,h(100)),yellow:d("cmyk",2,h(100)),black:d("cmyk",3,h(100)),x:d("xyz",0,h(95.047)),y:d("xyz",1,h(100)),z:d("xyz",2,h(108.833)),l:d("lab",0,h(100)),a:d("lab",1),b:d("lab",2),keyword(e){return void 0!==e?new l(e):i[this.model].keyword(this.color)},hex(e){return void 0!==e?new l(e):r.to.hex(this.rgb().round().color)},hexa(e){if(void 0!==e)return new l(e);const t=this.rgb().round().color;let n=Math.round(255*this.valpha).toString(16).toUpperCase();return 1===n.length&&(n="0"+n),r.to.hex(t)+n},rgbNumber(){const e=this.rgb().color;return(255&e[0])<<16|(255&e[1])<<8|255&e[2]},luminosity(){const e=this.rgb().color,t=[];for(const[n,r]of e.entries()){const e=r/255;t[n]=e<=.04045?e/12.92:((e+.055)/1.055)**2.4}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrast(e){const t=this.luminosity(),n=e.luminosity();return t>n?(t+.05)/(n+.05):(n+.05)/(t+.05)},level(e){const t=this.contrast(e);return t>=7?"AAA":t>=4.5?"AA":""},isDark(){const e=this.rgb().color,t=(2126*e[0]+7152*e[1]+722*e[2])/1e4;return t<128},isLight(){return!this.isDark()},negate(){const e=this.rgb();for(let t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten(e){const t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken(e){const t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate(e){const t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate(e){const t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten(e){const t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken(e){const t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale(){const e=this.rgb().color,t=.3*e[0]+.59*e[1]+.11*e[2];return l.rgb(t,t,t)},fade(e){return this.alpha(this.valpha-this.valpha*e)},opaquer(e){return this.alpha(this.valpha+this.valpha*e)},rotate(e){const t=this.hsl();let n=t.color[0];return n=(n+e)%360,n=n<0?360+n:n,t.color[0]=n,t},mix(e,t){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);const n=e.rgb(),r=this.rgb(),i=void 0===t?.5:t,a=2*i-1,o=n.alpha()-r.alpha(),s=((a*o===-1?a:(a+o)/(1+a*o))+1)/2,c=1-s;return l.rgb(s*n.red()+c*r.red(),s*n.green()+c*r.green(),s*n.blue()+c*r.blue(),n.alpha()*i+r.alpha()*(1-i))}};for(const m of Object.keys(i)){if(a.includes(m))continue;const{channels:e}=i[m];l.prototype[m]=function(...e){return this.model===m?new l(this):e.length>0?new l(e,m):new l([...p(i[this.model][m].raw(this.color)),this.valpha],m)},l[m]=function(...t){let n=t[0];return"number"===typeof n&&(n=f(t,e)),new l(n,m)}}function c(e,t){return Number(e.toFixed(t))}function u(e){return function(t){return c(t,e)}}function d(e,t,n){e=Array.isArray(e)?e:[e];for(const r of e)(s[r]||(s[r]=[]))[t]=n;return e=e[0],function(r){let i;return void 0!==r?(n&&(r=n(r)),i=this[e](),i.color[t]=r,i):(i=this[e]().color[t],n&&(i=n(i)),i)}}function h(e){return function(t){return Math.max(0,Math.min(e,t))}}function p(e){return Array.isArray(e)?e:[e]}function f(e,t){for(let n=0;n<t;n++)"number"!==typeof e[n]&&(e[n]=0);return e}e.exports=l},4364:function(e,t,n){var r=n(49208),i=n(26093);function a(){return(new Date).getTime()}var o,s=Array.prototype.slice,l={};o="undefined"!==typeof n.g&&n.g.console?n.g.console:"undefined"!==typeof window&&window.console?window.console:{};for(var c=[[f,"log"],[m,"info"],[g,"warn"],[v,"error"],[b,"time"],[y,"timeEnd"],[w,"trace"],[E,"dir"],[_,"assert"]],u=0;u<c.length;u++){var d=c[u],h=d[0],p=d[1];o[p]||(o[p]=h)}function f(){}function m(){o.log.apply(o,arguments)}function g(){o.log.apply(o,arguments)}function v(){o.warn.apply(o,arguments)}function b(e){l[e]=a()}function y(e){var t=l[e];if(!t)throw new Error("No such label: "+e);delete l[e];var n=a()-t;o.log(e+": "+n+"ms")}function w(){var e=new Error;e.name="Trace",e.message=r.format.apply(null,arguments),o.error(e.stack)}function E(e){o.log(r.inspect(e)+"\n")}function _(e){if(!e){var t=s.call(arguments,1);i.ok(!1,r.format.apply(null,t))}}e.exports=o},3369:function(e,t){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.isValidCron=void 0;var r=function(e){return/^\d+$/.test(e)?Number(e):NaN},i=function(e){return"*"===e},a=function(e){return"?"===e},o=function(e,t,n){return e>=t&&e<=n},s=function(e,t,n){var a=e.split("-");switch(a.length){case 1:return i(e)||o(r(e),t,n);case 2:var s=a.map((function(e){return r(e)})),l=s[0],c=s[1];return l<=c&&o(l,t,n)&&o(c,t,n);default:return!1}},l=function(e){return void 0===e||-1===e.search(/[^\d]/)&&r(e)>0},c=function(e,t,n){if(-1!==e.search(/[^\d-,\/*]/))return!1;var r=e.split(",");return r.every((function(e){var r=e.split("/");if(e.trim().endsWith("/"))return!1;if(r.length>2)return!1;var i=r[0],a=r[1];return s(i,t,n)&&l(a)}))},u=function(e){return c(e,0,59)},d=function(e){return c(e,0,59)},h=function(e){return c(e,0,23)},p=function(e,t){return t&&a(e)||c(e,1,31)},f={jan:"1",feb:"2",mar:"3",apr:"4",may:"5",jun:"6",jul:"7",aug:"8",sep:"9",oct:"10",nov:"11",dec:"12"},m=function(e,t){if(-1!==e.search(/\/[a-zA-Z]/))return!1;if(t){var n=e.toLowerCase().replace(/[a-z]{3}/g,(function(e){return void 0===f[e]?e:f[e]}));return c(n,1,12)}return c(e,1,12)},g={sun:"0",mon:"1",tue:"2",wed:"3",thu:"4",fri:"5",sat:"6"},v=function(e,t,n,r){if(n&&a(e))return!0;if(!n&&a(e))return!1;if(-1!==e.search(/\/[a-zA-Z]/))return!1;if(t){var i=e.toLowerCase().replace(/[a-z]{3}/g,(function(e){return void 0===g[e]?e:g[e]}));return c(i,0,r?7:6)}return c(e,0,r?7:6)},b=function(e,t,n){return!(n&&a(e)&&a(t))},y=function(e){return e.trim().split(/\s+/)},w={alias:!1,seconds:!1,allowBlankDay:!1,allowSevenAsSunday:!1};t.isValidCron=function(e,t){t=n(n({},w),t);var r=y(e);if(r.length>(t.seconds?6:5)||r.length<5)return!1;var i=[];if(6===r.length){var a=r.shift();a&&i.push(u(a))}var o=r[0],s=r[1],l=r[2],c=r[3],f=r[4];return i.push(d(o)),i.push(h(s)),i.push(p(l,t.allowBlankDay)),i.push(m(c,t.alias)),i.push(v(f,t.alias,t.allowBlankDay,t.allowSevenAsSunday)),i.push(b(l,f,t.allowBlankDay)),i.every(Boolean)}},37021:function(e,t,n){var r=n(4364);(function(t,n){e.exports=n()})(globalThis,(()=>(()=>{"use strict";var e={794:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CronParser=void 0;var r=n(586),i=function(){function e(e,t,n){void 0===t&&(t=!0),void 0===n&&(n=!1),this.expression=e,this.dayOfWeekStartIndexZero=t,this.monthStartIndexZero=n}return e.prototype.parse=function(){var e,t,n=null!==(e=this.expression)&&void 0!==e?e:"";if(n.startsWith("@")){var r=this.parseSpecial(this.expression);t=this.extractParts(r)}else t=this.extractParts(this.expression);return this.normalize(t),this.validate(t),t},e.prototype.parseSpecial=function(e){var t={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *"},n=t[e];if(!n)throw new Error("Unknown special expression.");return n},e.prototype.extractParts=function(e){if(!this.expression)throw new Error("cron expression is empty");for(var t=e.trim().split(/[ ]+/),n=0;n<t.length;n++)if(t[n].includes(",")){var r=t[n].split(",").map((function(e){return e.trim()})).filter((function(e){return""!==e})).map((function(e){return isNaN(Number(e))?e:Number(e)})).filter((function(e){return null!==e&&""!==e}));0===r.length&&r.push("*"),r.sort((function(e,t){return null!==e&&null!==t?e-t:0})),t[n]=r.map((function(e){return null!==e?e.toString():""})).join(",")}if(t.length<5)throw new Error("Expression has only ".concat(t.length," part").concat(1==t.length?"":"s",". At least 5 parts are required."));if(5==t.length)t.unshift(""),t.push("");else if(6==t.length){var i=/\d{4}$/.test(t[5])||"?"==t[4]||"?"==t[2];i?t.unshift(""):t.push("")}else if(t.length>7)throw new Error("Expression has ".concat(t.length," parts; too many!"));return t},e.prototype.normalize=function(e){var t=this;if(e[3]=e[3].replace("?","*"),e[5]=e[5].replace("?","*"),e[2]=e[2].replace("?","*"),0==e[0].indexOf("0/")&&(e[0]=e[0].replace("0/","*/")),0==e[1].indexOf("0/")&&(e[1]=e[1].replace("0/","*/")),0==e[2].indexOf("0/")&&(e[2]=e[2].replace("0/","*/")),0==e[3].indexOf("1/")&&(e[3]=e[3].replace("1/","*/")),0==e[4].indexOf("1/")&&(e[4]=e[4].replace("1/","*/")),0==e[6].indexOf("1/")&&(e[6]=e[6].replace("1/","*/")),e[5]=e[5].replace(/(^\d)|([^#/\s]\d)/g,(function(e){var n=e.replace(/\D/,""),r=n;return t.dayOfWeekStartIndexZero?"7"==n&&(r="0"):r=(parseInt(n)-1).toString(),e.replace(n,r)})),"L"==e[5]&&(e[5]="6"),"?"==e[3]&&(e[3]="*"),e[3].indexOf("W")>-1&&(e[3].indexOf(",")>-1||e[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var n={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var r in n)e[5]=e[5].replace(new RegExp(r,"gi"),n[r].toString());e[4]=e[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,(function(e){var n=e.replace(/\D/,""),r=n;return t.monthStartIndexZero&&(r=(parseInt(n)+1).toString()),e.replace(n,r)}));var i={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var a in i)e[4]=e[4].replace(new RegExp(a,"gi"),i[a].toString());"0"==e[0]&&(e[0]=""),/\*|\-|\,|\//.test(e[2])||!/\*|\//.test(e[1])&&!/\*|\//.test(e[0])||(e[2]+="-".concat(e[2]));for(var o=0;o<e.length;o++)if(-1!=e[o].indexOf(",")&&(e[o]=e[o].split(",").filter((function(e){return""!==e})).join(",")||"*"),"*/1"==e[o]&&(e[o]="*"),e[o].indexOf("/")>-1&&!/^\*|\-|\,/.test(e[o])){var s=null;switch(o){case 4:s="12";break;case 5:s="6";break;case 6:s="9999";break;default:s=null;break}if(null!==s){var l=e[o].split("/");e[o]="".concat(l[0],"-").concat(s,"/").concat(l[1])}}},e.prototype.validate=function(e){this.assertNoInvalidCharacters("DOW",e[5]),this.assertNoInvalidCharacters("DOM",e[3]),this.validateRange(e)},e.prototype.validateRange=function(e){r.default.secondRange(e[0]),r.default.minuteRange(e[1]),r.default.hourRange(e[2]),r.default.dayOfMonthRange(e[3]),r.default.monthRange(e[4],this.monthStartIndexZero),r.default.dayOfWeekRange(e[5],this.dayOfWeekStartIndexZero)},e.prototype.assertNoInvalidCharacters=function(e,t){var n=t.match(/[A-KM-VX-Z]+/gi);if(n&&n.length)throw new Error("".concat(e," part contains invalid values: '").concat(n.toString(),"'"))},e}();t.CronParser=i},728:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionDescriptor=void 0;var i=n(910),a=n(794),o=function(){function e(t,n){if(this.expression=t,this.options=n,this.expressionParts=new Array(5),!this.options.locale&&e.defaultLocale&&(this.options.locale=e.defaultLocale),!e.locales[this.options.locale]){var i=Object.keys(e.locales)[0];r.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(i,"'.")),this.options.locale=i}this.i18n=e.locales[this.options.locale],void 0===n.use24HourTimeFormat&&(n.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return e.toString=function(t,n){var r=void 0===n?{}:n,i=r.throwExceptionOnParseError,a=void 0===i||i,o=r.verbose,s=void 0!==o&&o,l=r.dayOfWeekStartIndexZero,c=void 0===l||l,u=r.monthStartIndexZero,d=void 0!==u&&u,h=r.use24HourTimeFormat,p=r.locale,f=void 0===p?null:p,m=r.tzOffset,g=void 0===m?0:m,v={throwExceptionOnParseError:a,verbose:s,dayOfWeekStartIndexZero:c,monthStartIndexZero:d,use24HourTimeFormat:h,locale:f,tzOffset:g},b=new e(t,v);return b.getFullDescription()},e.initialize=function(t,n){void 0===n&&(n="en"),e.specialCharacters=["/","-",",","*"],e.defaultLocale=n,t.load(e.locales)},e.prototype.getFullDescription=function(){var e="";try{var t=new a.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);this.expressionParts=t.parse();var n=this.getTimeOfDayDescription(),r=this.getDayOfMonthDescription(),i=this.getMonthDescription(),o=this.getDayOfWeekDescription(),s=this.getYearDescription();e+=n+r+o+i+s,e=this.transformVerbosity(e,!!this.options.verbose),e=e.charAt(0).toLocaleUpperCase()+e.substr(1)}catch(l){if(this.options.throwExceptionOnParseError)throw"".concat(l);e=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD()}return e},e.prototype.getTimeOfDayDescription=function(){var t=this.expressionParts[0],n=this.expressionParts[1],r=this.expressionParts[2],a="";if(i.StringUtilities.containsAny(n,e.specialCharacters)||i.StringUtilities.containsAny(r,e.specialCharacters)||i.StringUtilities.containsAny(t,e.specialCharacters))if(t||!(n.indexOf("-")>-1)||n.indexOf(",")>-1||n.indexOf("/")>-1||i.StringUtilities.containsAny(r,e.specialCharacters))if(!t&&r.indexOf(",")>-1&&-1==r.indexOf("-")&&-1==r.indexOf("/")&&!i.StringUtilities.containsAny(n,e.specialCharacters)){var o=r.split(",");a+=this.i18n.at();for(var s=0;s<o.length;s++)a+=" ",a+=this.formatTime(o[s],n,""),s<o.length-2&&(a+=","),s==o.length-2&&(a+=this.i18n.spaceAnd())}else{var l=this.getSecondsDescription(),c=this.getMinutesDescription(),u=this.getHoursDescription();if(a+=l,a&&c&&(a+=", "),a+=c,c===u)return a;a&&u&&(a+=", "),a+=u}else{var d=n.split("-");a+=i.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(r,d[0],""),this.formatTime(r,d[1],""))}else a+=this.i18n.atSpace()+this.formatTime(r,n,t);return a},e.prototype.getSecondsDescription=function(){var e=this,t=this.getSegmentDescription(this.expressionParts[0],this.i18n.everySecond(),(function(e){return e}),(function(t){return i.StringUtilities.format(e.i18n.everyX0Seconds(t),t)}),(function(t){return e.i18n.secondsX0ThroughX1PastTheMinute()}),(function(t){return"0"==t?"":parseInt(t)<20?e.i18n.atX0SecondsPastTheMinute(t):e.i18n.atX0SecondsPastTheMinuteGt20()||e.i18n.atX0SecondsPastTheMinute(t)}));return t},e.prototype.getMinutesDescription=function(){var e=this,t=this.expressionParts[0],n=this.expressionParts[2],r=this.getSegmentDescription(this.expressionParts[1],this.i18n.everyMinute(),(function(e){return e}),(function(t){return i.StringUtilities.format(e.i18n.everyX0Minutes(t),t)}),(function(t){return e.i18n.minutesX0ThroughX1PastTheHour()}),(function(r){try{return"0"==r&&-1==n.indexOf("/")&&""==t?e.i18n.everyHour():parseInt(r)<20?e.i18n.atX0MinutesPastTheHour(r):e.i18n.atX0MinutesPastTheHourGt20()||e.i18n.atX0MinutesPastTheHour(r)}catch(i){return e.i18n.atX0MinutesPastTheHour(r)}}));return r},e.prototype.getHoursDescription=function(){var e=this,t=this.expressionParts[2],n=this.getSegmentDescription(t,this.i18n.everyHour(),(function(t){return e.formatTime(t,"0","")}),(function(t){return i.StringUtilities.format(e.i18n.everyX0Hours(t),t)}),(function(t){return e.i18n.betweenX0AndX1()}),(function(t){return e.i18n.atX0()}));if(n&&t.includes("-")&&"0"!=this.expressionParts[1]){var r=Array.from(n.matchAll(/:00/g));if(r.length>1){var a=r[r.length-1].index;n=n.substring(0,a)+":59"+n.substring(a+3)}}return n},e.prototype.getDayOfWeekDescription=function(){var e=this,t=this.i18n.daysOfTheWeek(),n=null;return n="*"==this.expressionParts[5]?"":this.getSegmentDescription(this.expressionParts[5],this.i18n.commaEveryDay(),(function(n,r){var i=n;n.indexOf("#")>-1?i=n.substring(0,n.indexOf("#")):n.indexOf("L")>-1&&(i=i.replace("L",""));var a=parseInt(i);if(e.options.tzOffset){var o=e.expressionParts[2],s=parseInt(o)+(e.options.tzOffset?e.options.tzOffset:0);s>=24?a++:s<0&&a--,a>6?a=0:a<0&&(a=6)}var l=e.i18n.daysOfTheWeekInCase?e.i18n.daysOfTheWeekInCase(r)[a]:t[a];if(n.indexOf("#")>-1){var c=null,u=n.substring(n.indexOf("#")+1),d=n.substring(0,n.indexOf("#"));switch(u){case"1":c=e.i18n.first(d);break;case"2":c=e.i18n.second(d);break;case"3":c=e.i18n.third(d);break;case"4":c=e.i18n.fourth(d);break;case"5":c=e.i18n.fifth(d);break}l=c+" "+l}return l}),(function(t){return 1==parseInt(t)?"":i.StringUtilities.format(e.i18n.commaEveryX0DaysOfTheWeek(t),t)}),(function(t){var n=t.substring(0,t.indexOf("-")),r="*"!=e.expressionParts[3];return r?e.i18n.commaAndX0ThroughX1(n):e.i18n.commaX0ThroughX1(n)}),(function(t){var n=null;if(t.indexOf("#")>-1){var r=t.substring(t.indexOf("#")+1);n=e.i18n.commaOnThe(r).trim()+e.i18n.spaceX0OfTheMonth()}else if(t.indexOf("L")>-1)n=e.i18n.commaOnTheLastX0OfTheMonth(t.replace("L",""));else{var i="*"!=e.expressionParts[3];n=i?e.i18n.commaAndOnX0():e.i18n.commaOnlyOnX0(t)}return n})),n},e.prototype.getMonthDescription=function(){var e=this,t=this.i18n.monthsOfTheYear(),n=this.getSegmentDescription(this.expressionParts[4],"",(function(n,r){return r&&e.i18n.monthsOfTheYearInCase?e.i18n.monthsOfTheYearInCase(r)[parseInt(n)-1]:t[parseInt(n)-1]}),(function(t){return 1==parseInt(t)?"":i.StringUtilities.format(e.i18n.commaEveryX0Months(t),t)}),(function(t){return e.i18n.commaMonthX0ThroughMonthX1()||e.i18n.commaX0ThroughX1()}),(function(t){return e.i18n.commaOnlyInMonthX0?e.i18n.commaOnlyInMonthX0():e.i18n.commaOnlyInX0()}));return n},e.prototype.getDayOfMonthDescription=function(){var e=this,t=null,n=this.expressionParts[3];switch(n){case"L":t=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":t=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var r=n.match(/(\d{1,2}W)|(W\d{1,2})/);if(r){var a=parseInt(r[0].replace("W","")),o=1==a?this.i18n.firstWeekday():i.StringUtilities.format(this.i18n.weekdayNearestDayX0(),a.toString());t=i.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),o);break}var s=n.match(/L-(\d{1,2})/);if(s){var l=s[1];t=i.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(l),l);break}if("*"==n&&"*"!=this.expressionParts[5])return"";t=this.getSegmentDescription(n,this.i18n.commaEveryDay(),(function(t){return"L"==t?e.i18n.lastDay():e.i18n.dayX0?i.StringUtilities.format(e.i18n.dayX0(),t):t}),(function(t){return"1"==t?e.i18n.commaEveryDay():e.i18n.commaEveryX0Days(t)}),(function(t){return e.i18n.commaBetweenDayX0AndX1OfTheMonth(t)}),(function(t){return e.i18n.commaOnDayX0OfTheMonth(t)}));break}return t},e.prototype.getYearDescription=function(){var e=this,t=this.getSegmentDescription(this.expressionParts[6],"",(function(e){return/^\d+$/.test(e)?new Date(parseInt(e),1).getFullYear().toString():e}),(function(t){return i.StringUtilities.format(e.i18n.commaEveryX0Years(t),t)}),(function(t){return e.i18n.commaYearX0ThroughYearX1()||e.i18n.commaX0ThroughX1()}),(function(t){return e.i18n.commaOnlyInYearX0?e.i18n.commaOnlyInYearX0():e.i18n.commaOnlyInX0()}));return t},e.prototype.getSegmentDescription=function(e,t,n,r,a,o){var s=null,l=e.indexOf("/")>-1,c=e.indexOf("-")>-1,u=e.indexOf(",")>-1;if(e)if("*"===e)s=t;else if(l||c||u)if(u){for(var d=e.split(","),h="",p=0;p<d.length;p++)if(p>0&&d.length>2&&(h+=",",p<d.length-1&&(h+=" ")),p>0&&d.length>1&&(p==d.length-1||2==d.length)&&(h+="".concat(this.i18n.spaceAnd()," ")),d[p].indexOf("/")>-1||d[p].indexOf("-")>-1){var f=d[p].indexOf("-")>-1&&-1==d[p].indexOf("/"),m=this.getSegmentDescription(d[p],t,n,r,f?this.i18n.commaX0ThroughX1:a,o);f&&(m=m.replace(", ","")),h+=m}else h+=l?this.getSegmentDescription(d[p],t,n,r,a,o):n(d[p]);s=l?h:i.StringUtilities.format(o(e),h)}else if(l){d=e.split("/");if(s=i.StringUtilities.format(r(d[1]),d[1]),d[0].indexOf("-")>-1){var g=this.generateRangeSegmentDescription(d[0],a,n);0!=g.indexOf(", ")&&(s+=", "),s+=g}else if(-1==d[0].indexOf("*")){var v=i.StringUtilities.format(o(d[0]),n(d[0]));v=v.replace(", ",""),s+=i.StringUtilities.format(this.i18n.commaStartingX0(),v)}}else c&&(s=this.generateRangeSegmentDescription(e,a,n));else s=i.StringUtilities.format(o(e),n(e));else s="";return s},e.prototype.generateRangeSegmentDescription=function(e,t,n){var r="",a=e.split("-"),o=n(a[0],1),s=n(a[1],2),l=t(e);return r+=i.StringUtilities.format(l,o,s),r},e.prototype.formatTime=function(e,t,n){var r=0,i=0;this.options.tzOffset&&(r=this.options.tzOffset>0?Math.floor(this.options.tzOffset):Math.ceil(this.options.tzOffset),i=parseFloat((this.options.tzOffset%1).toFixed(2)),0!=i&&(i*=60));var a=parseInt(e)+r,o=parseInt(t)+i;o>=60?(o-=60,a+=1):o<0&&(o+=60,a-=1),a>=24?a-=24:a<0&&(a=24+a);var s="",l=!1;this.options.use24HourTimeFormat||(l=!(!this.i18n.setPeriodBeforeTime||!this.i18n.setPeriodBeforeTime()),s=l?"".concat(this.getPeriod(a)," "):" ".concat(this.getPeriod(a)),a>12&&(a-=12),0===a&&(a=12));var c="";return n&&(c=":".concat(("00"+n).substring(n.length))),"".concat(l?s:"").concat(("00"+a.toString()).substring(a.toString().length),":").concat(("00"+o.toString()).substring(o.toString().length)).concat(c).concat(l?"":s)},e.prototype.transformVerbosity=function(e,t){return t||(e=e.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),e=e.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),e=e.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),e=e.replace(/\, ?$/,"")),e},e.prototype.getPeriod=function(e){return e>=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},e.locales={},e}();t.ExpressionDescriptor=o},336:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.enLocaleLoader=void 0;var r=n(751),i=function(){function e(){}return e.prototype.load=function(e){e["en"]=new r.en},e}();t.enLocaleLoader=i},751:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.en=void 0;var n=function(){function e(){}return e.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},e.prototype.atX0MinutesPastTheHourGt20=function(){return null},e.prototype.commaMonthX0ThroughMonthX1=function(){return null},e.prototype.commaYearX0ThroughYearX1=function(){return null},e.prototype.use24HourTimeFormatByDefault=function(){return!1},e.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occured when generating the expression description. Check the cron expression syntax."},e.prototype.everyMinute=function(){return"every minute"},e.prototype.everyHour=function(){return"every hour"},e.prototype.atSpace=function(){return"At "},e.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},e.prototype.at=function(){return"At"},e.prototype.spaceAnd=function(){return" and"},e.prototype.everySecond=function(){return"every second"},e.prototype.everyX0Seconds=function(){return"every %s seconds"},e.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},e.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},e.prototype.everyX0Minutes=function(){return"every %s minutes"},e.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},e.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},e.prototype.everyX0Hours=function(){return"every %s hours"},e.prototype.betweenX0AndX1=function(){return"between %s and %s"},e.prototype.atX0=function(){return"at %s"},e.prototype.commaEveryDay=function(){return", every day"},e.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},e.prototype.commaX0ThroughX1=function(){return", %s through %s"},e.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},e.prototype.first=function(){return"first"},e.prototype.second=function(){return"second"},e.prototype.third=function(){return"third"},e.prototype.fourth=function(){return"fourth"},e.prototype.fifth=function(){return"fifth"},e.prototype.commaOnThe=function(){return", on the "},e.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},e.prototype.lastDay=function(){return"the last day"},e.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},e.prototype.commaOnlyOnX0=function(){return", only on %s"},e.prototype.commaAndOnX0=function(){return", and on %s"},e.prototype.commaEveryX0Months=function(){return", every %s months"},e.prototype.commaOnlyInX0=function(){return", only in %s"},e.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},e.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},e.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},e.prototype.firstWeekday=function(){return"first weekday"},e.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},e.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},e.prototype.commaEveryX0Days=function(){return", every %s days"},e.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},e.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},e.prototype.commaEveryHour=function(){return", every hour"},e.prototype.commaEveryX0Years=function(){return", every %s years"},e.prototype.commaStartingX0=function(){return", starting %s"},e.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},e.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},e}();t.en=n},586:(e,t)=>{function n(e,t){if(!e)throw new Error(t)}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.secondRange=function(e){for(var t=e.split(","),r=0;r<t.length;r++)if(!isNaN(parseInt(t[r],10))){var i=parseInt(t[r],10);n(i>=0&&i<=59,"seconds part must be >= 0 and <= 59")}},e.minuteRange=function(e){for(var t=e.split(","),r=0;r<t.length;r++)if(!isNaN(parseInt(t[r],10))){var i=parseInt(t[r],10);n(i>=0&&i<=59,"minutes part must be >= 0 and <= 59")}},e.hourRange=function(e){for(var t=e.split(","),r=0;r<t.length;r++)if(!isNaN(parseInt(t[r],10))){var i=parseInt(t[r],10);n(i>=0&&i<=23,"hours part must be >= 0 and <= 23")}},e.dayOfMonthRange=function(e){for(var t=e.split(","),r=0;r<t.length;r++)if(!isNaN(parseInt(t[r],10))){var i=parseInt(t[r],10);n(i>=1&&i<=31,"DOM part must be >= 1 and <= 31")}},e.monthRange=function(e,t){for(var r=e.split(","),i=0;i<r.length;i++)if(!isNaN(parseInt(r[i],10))){var a=parseInt(r[i],10);n(a>=1&&a<=12,t?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},e.dayOfWeekRange=function(e,t){for(var r=e.split(","),i=0;i<r.length;i++)if(!isNaN(parseInt(r[i],10))){var a=parseInt(r[i],10);n(a>=0&&a<=6,t?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},e}();t["default"]=r},910:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringUtilities=void 0;var n=function(){function e(){}return e.format=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return e.replace(/%s/g,(function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return t.shift()}))},e.containsAny=function(e,t){return t.some((function(t){return e.indexOf(t)>-1}))},e}();t.StringUtilities=n}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}var i={};return(()=>{var e=i;Object.defineProperty(e,"__esModule",{value:!0}),e.toString=void 0;var t=n(728),r=n(336);t.ExpressionDescriptor.initialize(new r.enLocaleLoader),e["default"]=t.ExpressionDescriptor;var a=t.ExpressionDescriptor.toString;e.toString=a})(),i})()))},67592:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".validation-message{padding:5px;position:absolute;bottom:-35px}",""]),t["default"]=s},28913:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,"#__layout,#__nuxt,#app,.vm-console,.vm-console>DIV,.vm-console>DIV>DIV,BODY,HTML,MAIN{height:100%}",""]),t["default"]=s},8199:function(e,t,n){"use strict";var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.d2h-wrapper{text-align:left}.d2h-file-header{background-color:#f7f7f7;border-bottom:1px solid #d8d8d8;display:flex;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;height:35px;padding:5px 10px}.d2h-file-header.d2h-sticky-header{position:sticky;top:0;z-index:1}.d2h-file-stats{display:flex;font-size:14px;margin-left:auto}.d2h-lines-added{border:1px solid #b4e2b4;border-radius:5px 0 0 5px;color:#399839;padding:2px;text-align:right;vertical-align:middle}.d2h-lines-deleted{border:1px solid #e9aeae;border-radius:0 5px 5px 0;color:#c33;margin-left:1px;padding:2px;text-align:left;vertical-align:middle}.d2h-file-name-wrapper{align-items:center;display:flex;font-size:15px;width:100%}.d2h-file-name{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.d2h-file-wrapper{margin-bottom:1em}.d2h-file-collapse,.d2h-file-wrapper{border:1px solid #ddd;border-radius:3px}.d2h-file-collapse{-webkit-box-pack:end;-ms-flex-pack:end;align-items:center;cursor:pointer;display:none;font-size:12px;justify-content:flex-end;padding:4px 8px}.d2h-file-collapse.d2h-selected{background-color:#c8e1ff}.d2h-file-collapse-input{margin:0 4px 0 0}.d2h-diff-table{border-collapse:collapse;font-family:Menlo,Consolas,monospace;font-size:13px;width:100%}.d2h-files-diff{display:flex;width:100%}.d2h-file-diff{overflow-y:hidden}.d2h-file-diff.d2h-d-none,.d2h-files-diff.d2h-d-none{display:none}.d2h-file-side-diff{display:inline-block;overflow-x:scroll;overflow-y:hidden;width:50%}.d2h-code-line{padding:0 8em}.d2h-code-line,.d2h-code-side-line{display:inline-block;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;width:100%}.d2h-code-side-line{padding:0 4.5em}.d2h-code-line-ctn{word-wrap:normal;background:none;display:inline-block;padding:0;-webkit-user-select:text;-moz-user-select:text;user-select:text;vertical-align:middle;white-space:pre;width:100%}.d2h-code-line del,.d2h-code-side-line del{background-color:#ffb6ba}.d2h-code-line del,.d2h-code-line ins,.d2h-code-side-line del,.d2h-code-side-line ins{border-radius:.2em;display:inline-block;margin-top:-1px;text-decoration:none;vertical-align:middle}.d2h-code-line ins,.d2h-code-side-line ins{background-color:#97f295;text-align:left}.d2h-code-line-prefix{word-wrap:normal;background:none;display:inline;padding:0;white-space:pre}.line-num1{float:left}.line-num1,.line-num2{box-sizing:border-box;overflow:hidden;padding:0 .5em;text-overflow:ellipsis;width:3.5em}.line-num2{float:right}.d2h-code-linenumber{background-color:#fff;border:solid #eee;border-width:0 1px;box-sizing:border-box;color:rgba(0,0,0,.3);cursor:pointer;display:inline-block;position:absolute;text-align:right;width:7.5em}.d2h-code-linenumber:after{content:"\\200b"}.d2h-code-side-linenumber{background-color:#fff;border:solid #eee;border-width:0 1px;box-sizing:border-box;color:rgba(0,0,0,.3);cursor:pointer;display:inline-block;overflow:hidden;padding:0 .5em;position:absolute;text-align:right;text-overflow:ellipsis;width:4em}.d2h-code-side-linenumber:after{content:"\\200b"}.d2h-code-side-emptyplaceholder,.d2h-emptyplaceholder{background-color:#f1f1f1;border-color:#e1e1e1}.d2h-code-line-prefix,.d2h-code-linenumber,.d2h-code-side-linenumber,.d2h-emptyplaceholder{-webkit-user-select:none;-moz-user-select:none;user-select:none}.d2h-code-linenumber,.d2h-code-side-linenumber{direction:rtl}.d2h-del{background-color:#fee8e9;border-color:#e9aeae}.d2h-ins{background-color:#dfd;border-color:#b4e2b4}.d2h-info{background-color:#f8fafd;border-color:#d5e4f2;color:rgba(0,0,0,.3)}.d2h-file-diff .d2h-del.d2h-change{background-color:#fdf2d0}.d2h-file-diff .d2h-ins.d2h-change{background-color:#ded}.d2h-file-list-wrapper{margin-bottom:10px}.d2h-file-list-wrapper a{color:#3572b0;text-decoration:none}.d2h-file-list-wrapper a:visited{color:#3572b0}.d2h-file-list-header{text-align:left}.d2h-file-list-title{font-weight:700}.d2h-file-list-line{display:flex;text-align:left}.d2h-file-list{display:block;list-style:none;margin:0;padding:0}.d2h-file-list>li{border-bottom:1px solid #ddd;margin:0;padding:5px 10px}.d2h-file-list>li:last-child{border-bottom:none}.d2h-file-switch{cursor:pointer;display:none;font-size:10px}.d2h-icon{fill:currentColor;margin-right:10px;vertical-align:middle}.d2h-deleted{color:#c33}.d2h-added{color:#399839}.d2h-changed{color:#d0b44c}.d2h-moved{color:#3572b0}.d2h-tag{background-color:#fff;display:flex;font-size:10px;margin-left:5px;padding:0 2px}.d2h-deleted-tag{border:1px solid #c33}.d2h-added-tag{border:1px solid #399839}.d2h-changed-tag{border:1px solid #d0b44c}.d2h-moved-tag{border:1px solid #3572b0}',""]),t.A=s},96696:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".dropdown-button-group .no-left-border-radius{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-button-group .no-right-border-radius{border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-button-group .btn{line-height:normal;border:0}.dropdown-button-group .btn-group-xs>.btn,.dropdown-button-group .btn-xs,.dropdown-button-group .btn-xs .btn-label{padding:2px 3px;font-size:13px}.dropdown-button-group .v-popper .text-right{margin-top:5px}.dropdown-button-group .v-popper .trigger{height:100%}.dropdown-button-group .v-popper .trigger .icon-container{height:100%;padding:10px 10px 10px 10px}.dropdown-button-group .v-popper .trigger .icon-container i{transform:scale(1)}.dropdown-button-group .v-popper .trigger .icon-container.btn-xs{padding:2px 4px 4px 4px}.dropdown-button-group .v-popper .trigger .icon-container.btn-sm{padding:10px 10px 10px 10px}.dropdown-button-group .v-popper .trigger .icon-container.btn-lg{padding:18px 10px 10px 10px}.dropdown-button-group .v-popper .trigger .icon-container:focus{outline-style:none;box-shadow:none;border-color:transparent}.dropdown-button-group .dropdown-button{background:var(--tooltip-bg);color:var(--link-text);padding:0;display:inline-flex}.dropdown-button-group .dropdown-button .wrapper-content button{border-right:0}.dropdown-button-group .dropdown-button .icon-chevron-down,.dropdown-button-group .dropdown-button>*{color:var(--primary);background-color:transparent}.dropdown-button-group .dropdown-button.bg-primary:hover{background:var(--accent-btn-hover)}.dropdown-button-group .dropdown-button.one-action{position:relative}.dropdown-button-group .dropdown-button.one-action>.btn{padding:15px 35px 15px 15px}.dropdown-button-group .dropdown-button.one-action .v-popper .trigger{position:absolute;top:0;right:0;left:0;bottom:0}.dropdown-button-group .dropdown-button.one-action .v-popper .trigger BUTTON{position:absolute;right:0}.dropdown-button-group .v-popper__popper{border:none;margin-top:0}.dropdown-button-group .v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{display:none}.dropdown-button-group .v-popper__popper .v-popper__inner{color:var(--dropdown-text);background-color:var(--dropdown-bg);border:1px solid var(--dropdown-border);padding:0;text-align:left}.dropdown-button-group .v-popper__popper .v-popper__inner LI{padding:10px}.dropdown-button-group .v-popper__popper .v-popper__inner LI.divider{padding-top:0;padding-bottom:0}.dropdown-button-group .v-popper__popper .v-popper__inner LI.divider>.divider-inner{padding:0;border-bottom:1px solid var(--dropdown-divider);width:125%;margin:0 auto}.dropdown-button-group .v-popper__popper .v-popper__inner LI:not(.divider):hover{background-color:var(--dropdown-hover-bg);color:var(--dropdown-hover-text);cursor:pointer}.dropdown-button-group .user-info{border-bottom:1px solid var(--border);display:block}",""]),t["default"]=s},26855:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".menu[data-v-3af780f6],.root[data-v-3af780f6]{position:absolute}.menu[data-v-3af780f6]{visibility:hidden;top:0;left:0;z-index:41;min-width:145px;color:var(--dropdown-text);background-color:var(--dropdown-bg);border:1px solid var(--dropdown-border);border-radius:5px;box-shadow:0 5px 20px var(--shadow)}.menu LI[data-v-3af780f6]{align-items:center;display:flex;padding:8px 10px;margin:0}.menu LI[data-v-3af780f6]:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:-2px}.menu LI[disabled][data-v-3af780f6]{cursor:not-allowed!important;color:var(--disabled-text)}.menu LI.divider[data-v-3af780f6]{padding:0;border-bottom:1px solid var(--dropdown-divider)}.menu LI[data-v-3af780f6]:not(.divider):hover{background-color:var(--dropdown-hover-bg);color:var(--dropdown-hover-text);cursor:pointer}.menu LI .icon[data-v-3af780f6]{display:unset;width:14px;text-align:center;margin-right:8px}.menu LI.no-actions[data-v-3af780f6],.menu LI.no-actions[data-v-3af780f6]:hover{color:var(--disabled-text)}.menu LI.no-actions[data-v-3af780f6]:hover{background-color:initial;cursor:default}.background[data-v-3af780f6]{position:fixed;top:0;left:0;right:0;bottom:0;opacity:0;z-index:40}",""]),t["default"]=s},5711:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".modal-overlay{position:absolute;top:0;left:0;width:100vw;height:100vh;background-color:var(--overlay-bg);display:flex;justify-content:center;align-items:center;z-index:20}.modal-overlay .modal-container{background-color:var(--modal-bg);border-radius:var(--border-radius);max-height:95vh;overflow:auto;border:2px solid var(--modal-border)}.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .2s}.modal-fade-enter,.modal-fade-leave-to{opacity:0}",""]),t["default"]=s},4711:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".manual-refresh i[data-v-799da077]{margin:0 0 0 8px!important;font-size:1rem!important}",""]),t["default"]=s},70655:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".banner-graphic{position:relative}.banner-graphic .graphic{display:flex;flex-direction:column;height:240px;overflow:hidden}.banner-graphic .graphic>img.banner{flex:1;-o-object-fit:cover;object-fit:cover}.banner-graphic .title{display:flex;justify-content:center;align-items:center;position:absolute;text-align:center;top:0;height:100%;width:100%;margin-top:-20px}.banner-graphic.small .graphic{height:200px}.banner-graphic.small .graphic img.banner{margin-top:-20px}",""]),t["default"]=s},31354:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".button-dropdown.btn-sm[data-v-2ab9ff7a] >.vs__dropdown-toggle .vs__actions:after{font-size:1.6rem}.button-dropdown.btn-lg[data-v-2ab9ff7a] >.vs__dropdown-toggle .vs__actions:after{font-size:2.6rem}.button-dropdown[data-v-2ab9ff7a]{background:var(--accent-btn);border:solid 1px var(--link);color:var(--link);padding:0}.button-dropdown.vs--open[data-v-2ab9ff7a] {outline:none;box-shadow:none}.button-dropdown[data-v-2ab9ff7a]:hover .vs__dropdown-toggle .vs__actions,.button-dropdown[data-v-2ab9ff7a]:hover .vs__selected-options{background:var(--accent-btn-hover)}.button-dropdown[data-v-2ab9ff7a]:hover .vs__selected-options .vs__selected button{background-color:transparent;color:var(--accent-btn-hover-text)}.button-dropdown[data-v-2ab9ff7a]:hover .vs__dropdown-toggle .vs__actions:after{color:var(--accent-btn-hover-text)}.button-dropdown[data-v-2ab9ff7a] >.vs__dropdown-toggle{width:100%;display:grid;grid-template-columns:75% 25%;border:none;background:transparent}.button-dropdown[data-v-2ab9ff7a] >.vs__dropdown-toggle .vs__actions:after{color:var(--link);line-height:1}.button-dropdown[data-v-2ab9ff7a] .vs__selected-options .vs__selected{margin:unset;border:none}.button-dropdown[data-v-2ab9ff7a] .vs__selected-options .vs__selected button{border:none;background:transparent;color:var(--link)}.button-dropdown[data-v-2ab9ff7a] .vs__selected-options .vs__search{position:absolute;opacity:0;padding:0}.button-dropdown[data-v-2ab9ff7a] .vs__dropdown-menu{min-width:unset;width:-moz-fit-content;width:fit-content}",""]),t["default"]=s},44325:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".borderless[data-v-750b8386]{background-color:transparent;border:none}.borderless[data-v-750b8386]:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:-2px}.borderless[data-v-750b8386]:focus,.borderless[data-v-750b8386]:hover{background-color:var(--accent-btn);box-shadow:none}",""]),t["default"]=s},16817:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.code-mirror.as-text-area .codemirror-container{min-height:40px;position:relative;display:block;box-sizing:border-box;width:100%;padding:10px;background-color:var(--input-bg);border-radius:var(--border-radius);border:solid var(--border-width) var(--input-border);color:var(--input-text)}.code-mirror.as-text-area .codemirror-container:hover{border-color:var(--input-hover-border)}.code-mirror.as-text-area .codemirror-container.focus,.code-mirror.as-text-area .codemirror-container:focus{outline:none;border-color:var(--outline)}.code-mirror.as-text-area .codemirror-container .CodeMirror-wrap pre{word-break:break-word}.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-even:before,.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-odd:before,.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line:not(:last-child)>span:after{color:var(--muted);position:absolute;line-height:20px;pointer-events:none}.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line:not(:last-child)>span:after{content:"↵";margin-left:2px}.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-even:before,.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-odd:before{font-weight:700;content:"·"}.code-mirror.as-text-area .codemirror-container .CodeMirror-lines{color:var(--input-text);padding:0}.code-mirror.as-text-area .codemirror-container .CodeMirror-lines .CodeMirror-line>span>span.cm-overlay{font-family:monospace}.code-mirror.as-text-area .codemirror-container .CodeMirror-lines .CodeMirror-line>span{font-family:Lato,arial,helvetica,sans-serif}.code-mirror.as-text-area .codemirror-container .CodeMirror-sizer{min-height:20px}.code-mirror.as-text-area .codemirror-container .CodeMirror-selected{background-color:var(--primary)!important}.code-mirror.as-text-area .codemirror-container .CodeMirror-selectedtext{color:var(--primary-text)}.code-mirror.as-text-area .codemirror-container .CodeMirror-line::selection,.code-mirror.as-text-area .codemirror-container .CodeMirror-line>span::selection,.code-mirror.as-text-area .codemirror-container .CodeMirror-line>span>span::selection{color:var(--primary-text);background-color:var(--primary)}.code-mirror.as-text-area .codemirror-container .CodeMirror-line::-moz-selection,.code-mirror.as-text-area .codemirror-container .CodeMirror-line>span::-moz-selection,.code-mirror.as-text-area .codemirror-container .CodeMirror-line>span>span::-moz-selection{color:var(--primary-text);background-color:var(--primary)}.code-mirror.as-text-area .codemirror-container .CodeMirror-gutters .CodeMirror-foldgutter:empty{display:none}.code-mirror{position:relative}.code-mirror .codemirror-container{z-index:0;font-size:inherit!important}.code-mirror .codemirror-container .CodeMirror{height:auto;background:none}.code-mirror .codemirror-container .CodeMirror-gutters{background:inherit}.code-mirror .keymap.overlay{position:absolute;display:flex;top:7px;right:7px;z-index:1;cursor:pointer}.code-mirror .keymap.overlay .keymap-indicator{width:48px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;color:var(--darker);background-color:var(--overlay-bg);font-size:12px}.code-mirror .keymap.overlay .keymap-indicator .close-indicator{width:0}.code-mirror .keymap.overlay .keymap-indicator .close-indicator .icon-close{color:var(--primary);opacity:0}.code-mirror .keymap.overlay .keymap-indicator .keymap-icon{font-size:24px;opacity:.8;transition:margin-right .1s ease-in-out}.code-mirror .keymap.overlay .keymap-indicator:hover{border:1px solid var(--primary);border-radius:var(--border-radius)}.code-mirror .keymap.overlay .keymap-indicator:hover .close-indicator{margin-left:-6px;width:auto}.code-mirror .keymap.overlay .keymap-indicator:hover .close-indicator .icon-close{opacity:1;transition:opacity .1s ease-in-out .1s}.code-mirror .keymap.overlay .keymap-indicator:hover .keymap-icon{opacity:.6;margin-right:10px}',""]),t["default"]=s},1694:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=n(20062),l=n.n(s),c=new URL(n(45605),n.b),u=o()(i()),d=l()(c);u.push([e.id,"h2[data-v-05573032]{display:flex;align-items:center}h2 i[data-v-05573032]{font-size:12px;margin-left:5px}.support-link[data-v-05573032]:not(:last-child){margin-bottom:15px}.wechat-modal[data-v-05573032]{margin:60px;display:flex;flex-direction:column;align-items:center}.link[data-v-05573032]{cursor:pointer}.btn[data-v-05573032]{margin:20px auto 0}.qr-img[data-v-05573032]{background-image:url("+d+");background-repeat:no-repeat;background-size:cover;background-position:50%;height:128px;width:128px;margin:15px auto 10px}",""]),t["default"]=u},76985:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".cru-resource-yaml-container .resource-yaml .yaml-editor[data-v-820bce44]{min-height:100px}.create-resource-container .resource-container[data-v-820bce44]{display:flex;flex-direction:column}.create-resource-container .subtype-banner .round-image[data-v-820bce44]{background-color:var(--primary)}.title[data-v-820bce44]{margin-top:20px}.title.with-description[data-v-820bce44]{margin-top:0}.subtype-container[data-v-820bce44]{position:relative;display:flex;height:100%}.subtype-body[data-v-820bce44]{flex:1;padding:10px}.subtype-logo[data-v-820bce44]{align-items:center;display:flex;justify-content:center;min-width:100px;min-height:100px;overflow:hidden;background-color:var(--box-bg)}.subtype-logo img[data-v-820bce44]{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;position:relative;top:2px}form.create-resource-container .cru__footer[data-v-820bce44]{border-top:var(--header-border-size) solid var(--header-border)}.cru[data-v-820bce44],.cru__form[data-v-820bce44]{display:flex;flex-direction:column;flex-grow:1}.cru__content[data-v-820bce44]{flex-grow:1}.cru__content-wizard[data-v-820bce44]{display:flex}.cru__footer[data-v-820bce44]{right:0;bottom:0;margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:10px 20px}.cru__errors[data-v-820bce44],.cru__footer[data-v-820bce44]{position:sticky;background-color:var(--header-bg)}.cru__errors[data-v-820bce44]{top:0;z-index:1;margin:10px 0}.description[data-v-820bce44]{margin-bottom:15px;margin-top:5px}",""]),t["default"]=s},23283:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".cru-resource-footer{display:flex;justify-content:flex-end;margin-top:20px;z-index:40}.cru-resource-footer .btn{margin-left:20px}",""]),t["default"]=s},2387:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".with-copy[data-v-348d5cf1]{border:solid 1px var(--border);padding:10px;position:relative;background-color:var(--input-bg);border-radius:var(--border-radius);border:solid var(--border-width) var(--input-border)}.with-copy>button[data-v-348d5cf1]{position:absolute;top:-1px;right:-1px;border-radius:0 0 0 var(--border-radius)}.monospace[data-v-348d5cf1]{white-space:pre-wrap;word-wrap:break-all}",""]),t["default"]=s},6618:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.detail-top:not(.empty){padding-top:10px;border-top:1px solid var(--border);margin-top:10px}.detail-top .namespaceLinkList:not(:first-child):before{content:", "}.detail-top .tags{display:inline-flex;flex-direction:row;flex-wrap:wrap;position:relative;top:-2px}.detail-top .tags .label{position:relative;top:4px}.detail-top .tags .tag{margin:2px 4px 0 2px;font-size:12px}.detail-top .annotation{margin-top:10px}.detail-top .label{color:var(--input-label);margin:0 4px 0 0}.detail-top__label-button{padding:4px}.detail-top .details{display:flex;flex-direction:row;flex-wrap:wrap}.detail-top .details .detail{margin-right:20px;margin-bottom:3px}.detail-top .details:not(:first-of-type){margin-top:3px}.detail-top>div:not(:last-of-type){margin-bottom:4px}.detail-top .icon{vertical-align:top}',""]),t["default"]=s},95009:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".project-namespaces[data-v-4b76ed34] .project-namespaces-table table{table-layout:fixed}.project-namespaces[data-v-4b76ed34] .project-name{line-height:30px}.project-namespaces[data-v-4b76ed34] .project-bar{display:flex;flex-direction:row;justify-content:space-between}.project-namespaces[data-v-4b76ed34] .project-bar .group-tab{max-width:calc(100% - 230px)}.project-namespaces[data-v-4b76ed34] .project-bar .project-name{display:flex;flex-direction:row;align-items:center}.project-namespaces[data-v-4b76ed34] .project-bar .project-name span:first-child{padding-right:8px}.project-namespaces[data-v-4b76ed34] .project-bar .project-name span:last-child{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.project-namespaces[data-v-4b76ed34] .project-bar.has-description .right{margin-top:5px}.project-namespaces[data-v-4b76ed34] .project-bar.has-description .group-tab,.project-namespaces[data-v-4b76ed34] .project-bar.has-description .group-tab:after{height:50px}.project-namespaces[data-v-4b76ed34] .project-bar.has-description .group-tab:after{right:-20px}.project-namespaces[data-v-4b76ed34] .project-bar.has-description .group-tab .description{margin-top:-20px}.project-namespaces[data-v-4b76ed34] .namespace-name{display:flex;align-items:center}.project-namespaces[data-v-4b76ed34] .namespace-name .icon-istio{color:var(--primary)}",""]),t["default"]=s},59395:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".psa-tooltip{margin:3px 0;padding:0 8px 0 22px}",""]),t["default"]=s},9299:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".root[data-v-639a852a]{max-width:100%;position:relative;overflow:auto}",""]),t["default"]=s},20602:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=n(8199),l=o()(i());l.i(s.A),l.push([e.id,"[data-v-639a852a] .d2h-wrapper .d2h-file-header{display:none}[data-v-639a852a] .d2h-wrapper .d2h-file-wrapper{border-color:var(--diff-border)}[data-v-639a852a] .d2h-wrapper .d2h-diff-table{font-family:Menlo,Consolas,monospace;font-size:13px}[data-v-639a852a] .d2h-wrapper .d2h-code-side-emptyplaceholder,[data-v-639a852a] .d2h-wrapper .d2h-emptyplaceholder{border-color:var(--diff-linenum-border);background-color:var(--diff-empty-placeholder)}[data-v-639a852a] .d2h-wrapper .d2h-code-linenumber,[data-v-639a852a] .d2h-wrapper .d2h-code-side-linenumber{background-color:var(--diff-linenum-bg);color:var(--diff-linenum);border-color:var(--diff-linenum-border);border-left:0}[data-v-639a852a] .d2h-wrapper .d2h-code-line del,[data-v-639a852a] .d2h-wrapper .d2h-code-side-line del{background-color:var(--diff-line-del-bg)}[data-v-639a852a] .d2h-wrapper .d2h-code-line ins,[data-v-639a852a] .d2h-wrapper .d2h-code-side-line ins{background-color:var(--diff-line-ins-bg)}[data-v-639a852a] .d2h-wrapper .d2h-del{background-color:var(--diff-del-bg);border-color:var(--diff-del-border);color:var(--body-text)}[data-v-639a852a] .d2h-wrapper .d2h-ins{background-color:var(--diff-ins-bg);border-color:var(--diff-ins-border);color:var(--body-text)}[data-v-639a852a] .d2h-wrapper .d2h-info{background-color:var(--diff-header-bg);color:var(--diff-header);border-color:var(--diff-header-border)}[data-v-639a852a] .d2h-wrapper .d2h-file-diff .d2h-del.d2h-change{background-color:var(--diff-chg-del)}[data-v-639a852a] .d2h-wrapper .d2h-file-diff .d2h-ins.d2h-change{background-color:var(--diff-chg-ins)}",""]),t["default"]=l},71124:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".vertical[data-v-01996ade]{flex-direction:column;width:100%}.subtle[data-v-01996ade]{opacity:.7}.message-icon[data-v-01996ade]{display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column}.message-icon>I[data-v-01996ade]{font-size:64px;margin-bottom:20px}.message-icon>I.info[data-v-01996ade]{color:var(--primary)}.message-icon>I.error[data-v-01996ade]{color:var(--error)}.message-icon>I.warning[data-v-01996ade]{color:var(--warning)}.message-icon>I.success[data-v-01996ade]{color:var(--success)}.message-icon>.message[data-v-01996ade]{font-size:20px;margin-bottom:40px;max-width:60%;text-align:center;line-height:30px}",""]),t["default"]=s},92049:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".svg-icon[data-v-373e6345]{height:24px;width:24px}",""]),t["default"]=s},83234:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".indented-panel{height:100%;width:90%;margin-left:5%}@media only screen and (max-width:992px){.indented-panel{margin:0 20px;width:auto}}",""]),t["default"]=s},73132:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".info-box[data-v-1c5683df]{border:2px solid var(--tabbed-border);padding:10px;margin-bottom:20px;border-radius:var(--border-radius);flex-grow:1;flex-basis:0;position:relative}.info-box .stepped[data-v-1c5683df]{padding-left:40px}.info-box .step-number[data-v-1c5683df]{border-radius:var(--border-radius);background:var(--secondary);color:var(--input-text);display:inline-block;padding:5px 10px}.info-box .step-list[data-v-1c5683df]{margin:0}.info-box .info-column[data-v-1c5683df]:not(:last-child){border-right:1px solid var(--tabbed-border)}.info-box .info-row[data-v-1c5683df]{margin-bottom:10px}.info-box .info-row .info-row-label[data-v-1c5683df]{padding-top:2px;display:inline-block}.info-box .info-column label[data-v-1c5683df],.info-box .info-row label[data-v-1c5683df]{color:var(--input-label)}.info-box .info-column .usage[data-v-1c5683df]{margin-bottom:10px}.info-box .info-column .usage label[data-v-1c5683df]{display:inline-block;font-size:12px;padding-top:6px}.info-box .info-column .flex-item-half[data-v-1c5683df]{align-items:center}",""]),t["default"]=s},89827:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".overlay[data-v-1d9696d1]{align-items:center;background-color:var(--overlay-bg);display:flex;justify-content:center;position:absolute;bottom:0;top:0;left:0;right:0;text-align:center;z-index:12}.overlay-main-mode[data-v-1d9696d1]{top:var(--header-height);z-index:51}.overlay-content-mode[data-v-1d9696d1]{left:calc(var(--nav-width));top:var(--header-height)}",""]),t["default"]=s},49358:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".footer[data-v-0430f766]{width:100%;display:flex;justify-content:center}.banner[data-v-0430f766]{margin-bottom:0}",""]),t["default"]=s},59024:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".modal{border-radius:var(--border-radius);max-height:100vh}.modal.card-container{box-shadow:none}",""]),t["default"]=s},46618:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".move-modal .namespaces{max-height:200px;overflow-y:scroll}.move-modal .move-modal-card{box-shadow:none;border-radius:var(--border-radius)}.move-modal .actions{text-align:right}.move-modal .card-actions{display:flex;justify-content:center}",""]),t["default"]=s},3284:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".confirm-modal .btn[data-v-72d8b215]{margin:0 10px}.confirm-modal .body[data-v-72d8b215]{min-height:75px;padding:10px 0 0 15px}.confirm-modal .body p[data-v-72d8b215]{margin-top:10px}.confirm-modal .header[data-v-72d8b215]{background-color:var(--error);padding:15px 0 0 15px;height:50px}.confirm-modal .header h4[data-v-72d8b215]{color:#fff}.confirm-modal .footer[data-v-72d8b215]{border-top:1px solid var(--border);text-align:center;padding:10px 0 0 15px;height:60px}",""]),t["default"]=s},94469:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".masthead[data-v-81c48f58]{padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:10px}HEADER[data-v-81c48f58]{margin:0 0 0 -5px}HEADER .title[data-v-81c48f58]{overflow-x:hidden}.primaryheader[data-v-81c48f58],.primaryheader h1[data-v-81c48f58]{display:flex;flex-direction:row;align-items:center}.primaryheader h1[data-v-81c48f58]{margin:0;overflow-x:hidden}.primaryheader h1 .masthead-resource-title[data-v-81c48f58]{padding:0 8px;text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.primaryheader h1 .masthead-resource-list-link[data-v-81c48f58]{margin:5px}.subheader[data-v-81c48f58]{display:flex;flex-direction:row;color:var(--input-label)}.subheader[data-v-81c48f58]>*{margin:5px 20px 5px 0}.subheader .live-data[data-v-81c48f58]{color:var(--body-text);margin-left:3px}.state-banner[data-v-81c48f58]{margin:3px 0 0 0}.masthead-state[data-v-81c48f58]{font-size:medium}.masthead-istio .icon[data-v-81c48f58]{vertical-align:middle;color:var(--primary)}.left-right-split[data-v-81c48f58]{display:grid;align-items:center}.left-right-split .left-half[data-v-81c48f58]{grid-column:1}.left-right-split .right-half[data-v-81c48f58]{grid-column:2}div.actions-container>div.actions[data-v-81c48f58]{display:flex;flex-direction:row;justify-content:flex-end}.resource-external[data-v-81c48f58]{font-size:18px}",""]),t["default"]=s},90961:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".flex-content[data-v-3c03c7c6]{display:flex;flex-direction:column;flex-grow:1}",""]),t["default"]=s},36631:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.title[data-v-577fc9fa]{align-items:center;display:flex}.title h1[data-v-577fc9fa]{margin:0}header[data-v-577fc9fa]{margin-bottom:20px}header.with-subheader[data-v-577fc9fa]{grid-template-areas:"type-banner type-banner" "title actions" "sub-header sub-header" "state-banner state-banner"}.sub-header[data-v-577fc9fa]{grid-area:sub-header}.sub-header a[data-v-577fc9fa]{display:inline-block}',""]),t["default"]=s},50612:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".resource-loading-indicator[data-v-6457c305]{border:1px solid var(--link);border-radius:10px;position:relative;width:-moz-min-content;width:min-content;overflow:hidden}.resource-loading-indicator .resource-loader[data-v-6457c305]:last-child{position:absolute;top:0;background-color:var(--link);color:var(--link-text);overflow:hidden;white-space:nowrap}.resource-loading-indicator .resource-loader[data-v-6457c305]{padding:1px 10px;width:-moz-max-content;width:max-content}.resource-loading-indicator .resource-loader .rl-bg[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg[data-v-6457c305]{align-content:center;display:flex}.resource-loading-indicator .resource-loader .rl-bg>i[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg>i[data-v-6457c305]{font-size:18px;line-height:18px}.resource-loading-indicator .resource-loader .rl-bg>span[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg>span[data-v-6457c305]{margin-left:5px}",""]),t["default"]=s},23132:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".header[data-v-515e48d4],H2[data-v-515e48d4]{position:relative}H2[data-v-515e48d4]{margin:0 0 20px 0}.filter[data-v-515e48d4]{line-height:45px}.right-action[data-v-515e48d4]{position:absolute;top:10px;right:10px}",""]),t["default"]=s},82496:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".flex-content[data-v-49797251]{display:flex;flex-direction:column;flex-grow:1}.footer[data-v-49797251]{margin-top:20px;right:0;position:sticky;bottom:0;background-color:var(--header-bg);margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:10px 20px}.footer.edit[data-v-49797251]{border-top:var(--header-border-size) solid var(--header-border)}",""]),t["default"]=s},56690:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".resource-yaml .yaml-editor{min-height:200px}.resource-yaml footer .actions{text-align:right}.resource-yaml .spacer-small{padding:0}",""]),t["default"]=s},86226:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".top[data-v-48821e48]{display:flex;position:relative}.top>h2[data-v-48821e48]{flex:1}.close-button[data-v-48821e48]{cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px}.close-button>i[data-v-48821e48]{font-size:14px;opacity:.5}.close-button[data-v-48821e48]:hover{background-color:var(--wm-closer-hover-bg)}",""]),t["default"]=s},83904:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".simple-box{background:var(--simple-box-bg) 0 0 no-repeat padding-box;box-shadow:0 0 10px var(--simple-box-shadow);border:1px solid var(--simple-box-border);padding:15px}.simple-box .top{line-height:24px;font-size:18px;border-bottom:1px solid var(--simple-box-divider);padding-bottom:15px;margin:0 -15px 10px -15px;padding:0 15px 15px 15px;align-items:center;display:flex .simple-box .top BUTTON;display-padding:0;display-height:fit-content;display-align-self:flex-start}.simple-box .top H2{margin-bottom:0}.simple-box .content{padding:15px}",""]),t["default"]=s},50391:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".table-options-group .table-options-btn.role-multi-action[data-v-d8d3445c]{background-color:transparent;border:none;font-size:18px}.table-options-group .table-options-btn.role-multi-action[data-v-d8d3445c]:focus,.table-options-group .table-options-btn.role-multi-action[data-v-d8d3445c]:hover{background-color:var(--accent-btn);box-shadow:none}.table-options-group .table-options-container[data-v-d8d3445c]{width:350px;border:1px solid var(--primary);background-color:var(--body-bg);padding:20px;z-index:1}.table-options-group .table-options-container .table-options-grouping[data-v-d8d3445c]{display:flex;align-items:center;margin-bottom:20px}.table-options-group .table-options-container .table-options-grouping span[data-v-d8d3445c]{white-space:nowrap;margin-right:10px}.table-options-group .table-options-container ul[data-v-d8d3445c]{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto}.table-options-group .table-options-container ul li[data-v-d8d3445c]{margin:0;padding:0}.table-options-group .table-options-container ul li.visible[data-v-d8d3445c]{margin:0 0 10px 0}.sortable>SPAN[data-v-d8d3445c]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.sortable>SPAN[data-v-d8d3445c]:active,.sortable>SPAN[data-v-d8d3445c]:hover{text-decoration:underline;color:var(--body-text)}.top-aligned th[data-v-d8d3445c]{vertical-align:top;padding-top:10px}thead tr[data-v-d8d3445c]{background-color:var(--sortable-table-header-bg);text-align:left;border-bottom:1px solid var(--sortable-table-top-divider)}th[data-v-d8d3445c],thead tr[data-v-d8d3445c]{color:var(--body-text)}th[data-v-d8d3445c]{padding:8px 5px;font-weight:400;border:0}th.sortable-table-head-element[data-v-d8d3445c]:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:-4px}th .table-header-container[data-v-d8d3445c]{display:inline-flex}th .table-header-container .content[data-v-d8d3445c]{display:flex;flex-direction:column}th .table-header-container.not-filterable[data-v-d8d3445c],th .table-header-container.not-filterable .icon-stack[data-v-d8d3445c]{margin-top:-2px}th .table-header-container .not-filter-icon[data-v-d8d3445c]{font-size:16px;color:var(--primary);vertical-align:super}th[data-v-d8d3445c]:first-child{padding-left:10px}th[data-v-d8d3445c]:last-child{padding-right:10px}th:not(.sortable)>SPAN[data-v-d8d3445c]{display:block;margin-bottom:2px}th A[data-v-d8d3445c]{color:var(--body-text)}@media only screen and (max-width:480px){th.desktop[data-v-d8d3445c],th.laptop[data-v-d8d3445c],th.tablet[data-v-d8d3445c]{display:none}}@media only screen and (max-width:992px){th.desktop[data-v-d8d3445c],th.laptop[data-v-d8d3445c]{display:none}}@media only screen and (max-width:1281px){th.desktop[data-v-d8d3445c]{display:none}}.icon-stack[data-v-d8d3445c]{width:12px}.icon-sort.faded[data-v-d8d3445c]{opacity:.3}",""]),t["default"]=s},62445:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".table-options-checkbox .checkbox-custom{min-width:14px}.table-options-checkbox .checkbox-label{color:var(--body-text)}",""]),t["default"]=s},54924:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".sortable-table.alt-loading[data-v-171d81ac]{opacity:.5;pointer-events:none}.advanced-filter-group[data-v-171d81ac]{position:relative;margin-left:10px}.advanced-filter-group .advanced-filter-container[data-v-171d81ac]{position:absolute;top:38px;right:0;width:300px;border:1px solid var(--primary);background-color:var(--body-bg);padding:20px;z-index:2}.advanced-filter-group .advanced-filter-container .middle-block[data-v-171d81ac]{display:flex;align-items:center;margin-top:20px}.advanced-filter-group .advanced-filter-container .middle-block span[data-v-171d81ac]{margin-right:20px}.advanced-filter-group .advanced-filter-container .middle-block button[data-v-171d81ac]{margin-left:20px}.advanced-filter-group .advanced-filter-container .bottom-block[data-v-171d81ac]{display:flex;align-items:center;margin-top:40px;justify-content:space-between}.advanced-filters-applied[data-v-171d81ac]{display:inline-flex;margin:0;padding:0;list-style:none;max-width:100%;flex-wrap:wrap;justify-content:flex-end}.advanced-filters-applied li[data-v-171d81ac]{margin:0 20px 10px 0;padding:2px 5px;border:1px solid;display:flex;align-items:center;position:relative;height:20px}.advanced-filters-applied li[data-v-171d81ac]:nth-child(4n+1){border-color:var(--success)}.advanced-filters-applied li:nth-child(4n+1) .bg[data-v-171d81ac]{background-color:var(--success)}.advanced-filters-applied li[data-v-171d81ac]:nth-child(4n+2){border-color:var(--warning)}.advanced-filters-applied li:nth-child(4n+2) .bg[data-v-171d81ac]{background-color:var(--warning)}.advanced-filters-applied li[data-v-171d81ac]:nth-child(4n+3){border-color:var(--info)}.advanced-filters-applied li:nth-child(4n+3) .bg[data-v-171d81ac]{background-color:var(--info)}.advanced-filters-applied li[data-v-171d81ac]:nth-child(4n+4){border-color:var(--error)}.advanced-filters-applied li:nth-child(4n+4) .bg[data-v-171d81ac]{background-color:var(--error)}.advanced-filters-applied li .bg[data-v-171d81ac]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.2;z-index:-1}.advanced-filters-applied li .label[data-v-171d81ac]{margin-right:10px;font-size:11px}.advanced-filters-applied li .cross[data-v-171d81ac]{font-size:12px;font-weight:700;cursor:pointer}@media only screen and (max-width:480px){td.desktop[data-v-171d81ac],td.laptop[data-v-171d81ac],td.tablet[data-v-171d81ac]{display:none}}@media only screen and (max-width:992px){td.desktop[data-v-171d81ac],td.laptop[data-v-171d81ac]{display:none}}@media only screen and (max-width:1281px){td.desktop[data-v-171d81ac]{display:none}}tr td div.data-loading[data-v-171d81ac]{align-items:center;display:flex;justify-content:center;padding:20px 0}tr td div.data-loading>i[data-v-171d81ac]{font-size:20px;height:20px;margin-right:5px;width:20px}.search-box[data-v-171d81ac]{height:40px;margin-left:10px;min-width:180px}",""]),t["default"]=s},87886:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.filter-select .vs__selected-options .vs__selected{text-align:left}.sortable-table{border-collapse:collapse;min-width:400px;border-radius:5px 5px 0 0;outline:1px solid var(--border);overflow:hidden;background:var(--sortable-table-bg);border-radius:4px}.sortable-table.overflow-x{overflow-x:visible}.sortable-table.overflow-y{overflow-y:visible}.sortable-table td{padding:8px 5px;border:0}.sortable-table td:first-child{padding-left:10px}.sortable-table td:last-child{padding-right:10px}.sortable-table td.row-check{padding-top:12px}.sortable-table tbody tr{border-bottom:1px solid var(--sortable-table-top-divider);background-color:var(--sortable-table-row-bg)}.sortable-table tbody tr.main-row.has-sub-row{border-bottom:0}.sortable-table tbody tr.main-row:not(.row-selected):hover+.sub-row{background-color:var(--sortable-table-hover-bg)}.sortable-table tbody tr:last-of-type{border-bottom:0}.sortable-table tbody tr.sub-row-hovered,.sortable-table tbody tr:hover{background-color:var(--sortable-table-hover-bg)}.sortable-table tbody tr.state-description>td{font-size:13px;padding-top:0;overflow-wrap:anywhere}.sortable-table tbody tr.active-row{color:var(--sortable-table-header-bg)}.sortable-table tbody tr.row-selected{background:var(--sortable-table-selected-bg)}.sortable-table tbody .no-rows td{padding:30px 0;text-align:center}.sortable-table tbody .no-results:hover,.sortable-table tbody .no-rows:hover{background-color:var(--body-bg)}.sortable-table tbody.group:before{content:"";display:block;height:20px;background-color:transparent}.sortable-table tbody tr.group-row{background-color:initial}.sortable-table tbody tr.group-row:first-child{border-bottom:2px solid var(--sortable-table-row-bg)}.sortable-table tbody tr.group-row:not(:first-child){margin-top:20px}.sortable-table tbody tr.group-row td{padding:0}.sortable-table tbody tr.group-row td:first-of-type{border-left:1px solid var(--sortable-table-accent-bg)}.sortable-table tbody tr.group-row .group-tab{height:40px;line-height:40px;padding:0 10px;border-radius:4px 4px 0 0;background-color:var(--sortable-table-row-bg);position:relative;top:1px;display:inline-block;z-index:10;min-width:72px}.sortable-table tbody tr.group-row .group-tab:after,.sortable-table tbody tr.group-row .group-tab:before{content:" ";display:table}.sortable-table tbody tr.group-row .group-tab:after{clear:both}.sortable-table tbody tr.group-row .group-tab>SPAN{color:var(--sortable-table-group-label)}.sortable-table tbody tr.group-row .group-tab:after{height:40px;width:70px;border-radius:5px 5px 0 0;background-color:var(--sortable-table-row-bg);content:"";position:absolute;right:-15px;top:0;transform:skewX(40deg);z-index:-1}.for-inputs TABLE.sortable-table{width:100%;border-collapse:collapse;margin-bottom:10px}.for-inputs TABLE.sortable-table>TBODY>TR>TD,.for-inputs TABLE.sortable-table>THEAD>TR>TH{padding-right:10px;padding-bottom:10px}.for-inputs TABLE.sortable-table>TBODY>TR>TD:last-of-type,.for-inputs TABLE.sortable-table>THEAD>TR>TH:last-of-type{padding-right:0}.for-inputs TABLE.sortable-table>TBODY>TR:first-of-type>TD{padding-top:10px}.for-inputs TABLE.sortable-table>TBODY>TR:last-of-type>TD{padding-bottom:0}.for-inputs.clone TABLE.sortable-table>THEAD>TR>TH,.for-inputs.create TABLE.sortable-table>THEAD>TR>TH,.for-inputs.edit TABLE.sortable-table>THEAD>TR>TH{border-color:transparent}.sortable-table-header{position:relative;z-index:11}.sortable-table-header.titled{display:flex;align-items:center}.fixed-header-actions.button{grid-template-columns:[bulk] auto [middle] min-content [search] minmax(min-content,350px)}.fixed-header-actions{padding:0 0 20px 0;width:100%;z-index:11;background:transparent;display:grid;grid-template-columns:[bulk] auto [middle] min-content [search] minmax(min-content,200px);grid-column-gap:10px}.fixed-header-actions.advanced-filtering{grid-template-columns:[bulk] auto [middle] minmax(min-content,auto) [search] minmax(min-content,auto)}.fixed-header-actions .bulk{grid-area:bulk}.fixed-header-actions .bulk>BUTTON{display:none}.fixed-header-actions .bulk>BUTTON:not(:last-of-type){margin-right:10px}.fixed-header-actions .bulk .action-availability{display:none;margin-left:10px;vertical-align:middle;margin-top:2px}.fixed-header-actions .bulk .dropdown-button li.disabled{color:var(--disabled-text);cursor:not-allowed}.fixed-header-actions .bulk .dropdown-button li.disabled:hover{color:var(--disabled-text);background-color:unset;cursor:not-allowed}.fixed-header-actions .bulk .bulk-action .icon{vertical-align:-10%}.fixed-header-actions .middle{grid-area:middle;white-space:nowrap}.fixed-header-actions .middle .icon.icon-backup.animate{animation-name:spin;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fixed-header-actions .search{grid-area:search;text-align:right;justify-content:flex-end}.fixed-header-actions .bulk-actions-dropdown{display:none}.fixed-header-actions .bulk-actions-dropdown .dropdown-button{background-color:var(--primary)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button:hover{background-color:var(--primary-hover-bg);color:var(--primary-hover-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button .icon-chevron-down,.fixed-header-actions .bulk-actions-dropdown .dropdown-button>*{color:var(--primary-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button .button-divider{border-color:var(--primary-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled{border-color:var(--disabled-bg)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled .icon-chevron-down{color:var(--disabled-text)!important}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled .button-divider{border-color:var(--disabled-text)}.paging{margin-top:10px;text-align:center}.paging SPAN{display:inline-block;min-width:200px}',""]),t["default"]=s},94944:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".tab-header[data-v-6f6df00a]{display:flex;justify-content:space-between;margin-bottom:15px;align-items:center}.tab-header h2[data-v-6f6df00a]{margin:0}",""]),t["default"]=s},61276:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".tabs[data-v-79e80ea7]{list-style-type:none;margin:0;padding:0}.tabs.horizontal[data-v-79e80ea7]{border:solid thin var(--border);border-bottom:0;display:flex;flex-direction:row}.tabs.horizontal+.tab-container[data-v-79e80ea7]{border:solid thin var(--border)}.tabs.horizontal .tab.active[data-v-79e80ea7]{border-bottom:solid 2px var(--primary)}.tabs[data-v-79e80ea7]:focus{outline:none}.tabs:focus .tab.active a span[data-v-79e80ea7]{text-decoration:underline}.tabs .tab[data-v-79e80ea7]{position:relative;float:left;padding:0 8px 0 0;cursor:pointer}.tabs .tab A[data-v-79e80ea7]{display:flex;align-items:center;padding:10px 15px}.tabs .tab A[data-v-79e80ea7]:hover{text-decoration:none}.tabs .tab A:hover span[data-v-79e80ea7]{text-decoration:underline}.tabs .tab A[data-v-79e80ea7]:focus-visible{outline:2px solid var(--primary-keyboard-focus)}.tabs .tab A:focus-visible span[data-v-79e80ea7]{text-decoration:underline}.tabs .tab .conditions-alert-icon[data-v-79e80ea7]{color:var(--error);padding-left:4px}.tabs .tab[data-v-79e80ea7]:last-child{padding-right:0}.tabs .tab.active>A[data-v-79e80ea7]{color:var(--primary);text-decoration:none}.tabs .tab.error A>i[data-v-79e80ea7]{color:var(--error)}.tabs .tab .tab-badge[data-v-79e80ea7]{margin-left:5px;background-color:var(--link);color:#fff;border-radius:6px;padding:1px 7px;font-size:11px}.tab-container[data-v-79e80ea7]{padding:20px}.tab-container.no-content[data-v-79e80ea7]{padding:0 0 3px 0}.tab-container--flat[data-v-79e80ea7]{padding:0}.tab-container--flat .side-tabs[data-v-79e80ea7]{box-shadow:unset}.tabs-only[data-v-79e80ea7]{margin-bottom:20px}.tabs-only .tab-container[data-v-79e80ea7]{display:none}.tabs-only .tabs[data-v-79e80ea7]{border:0;border-bottom:2px solid var(--border)}.side-tabs[data-v-79e80ea7]{display:flex;box-shadow:0 0 20px var(--shadow);border-radius:calc(var(--border-radius)*2);background-color:var(--tabbed-sidebar-bg)}.side-tabs .tab-container[data-v-79e80ea7]{padding:20px}.side-tabs .tabs[data-v-79e80ea7]{width:200px;min-width:200px;display:flex;flex:1 0;flex-direction:column}.side-tabs .tabs .tab[data-v-79e80ea7]{width:100%;border-left:5px solid transparent}.side-tabs .tabs .tab A[data-v-79e80ea7],.side-tabs .tabs .tab.toggle A[data-v-79e80ea7]{color:var(--primary)}.side-tabs .tabs .tab.active[data-v-79e80ea7]{background-color:var(--body-bg);border-left:solid 5px var(--primary)}.side-tabs .tabs .tab.active A[data-v-79e80ea7]{color:var(--input-label)}.side-tabs .tabs .tab.disabled[data-v-79e80ea7]{background-color:var(--disabled-bg)}.side-tabs .tabs .tab.disabled A[data-v-79e80ea7]{color:var(--disabled-text);text-decoration:none}.side-tabs .tabs .tab-list-footer[data-v-79e80ea7]{list-style:none;padding:0;margin-top:auto}.side-tabs .tabs .tab-list-footer li[data-v-79e80ea7]{display:flex;flex:1}.side-tabs .tabs .tab-list-footer li .btn[data-v-79e80ea7]{flex:1 1;display:flex;justify-content:center}.side-tabs .tabs .tab-list-footer li button[data-v-79e80ea7]:first-of-type{border-top:solid 1px var(--border);border-right:solid 1px var(--border);border-top-right-radius:0}.side-tabs .tabs .tab-list-footer li button[data-v-79e80ea7]:last-of-type{border-top:solid 1px var(--border);border-top-left-radius:0}.side-tabs .tab-container[data-v-79e80ea7]{width:calc(100% - 200px);flex-grow:1;background-color:var(--body-bg)}",""]),t["default"]=s},32101:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".tag[data-v-0d281a35]{border-radius:var(--border-radius);color:var(--tag-primary);background-color:var(--tag-bg);padding:4px 6px 3px 6px;font-size:12px}",""]),t["default"]=s},9309:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".outer-container[data-v-21be6a33]{display:flex;flex-direction:column;flex:1;padding:0;justify-content:flex-start}.header[data-v-21be6a33]{display:flex;align-content:space-between;align-items:center;margin-bottom:20px;border-bottom:var(--header-border-size) solid var(--header-border)}.header .step-sequence[data-v-21be6a33],.header>.title[data-v-21be6a33]{flex:1;min-height:60px;display:flex}.header .step-sequence .steps[data-v-21be6a33]{flex:1;margin:0 30px;display:flex;justify-content:space-between;list-style-type:none;padding:0}.header .step-sequence .steps[data-v-21be6a33]:focus{outline:none;box-shadow:none}.header .step-sequence .steps li.step[data-v-21be6a33]{display:flex;flex-direction:row;flex-grow:1;align-items:center}.header .step-sequence .steps li.step>span>span[data-v-21be6a33]:last-of-type{padding-bottom:0}.header .step-sequence .steps li.step[data-v-21be6a33]:last-of-type{flex-grow:0}.header .step-sequence .steps li.step .controls[data-v-21be6a33]{display:flex;flex-direction:column;align-items:center;width:40px;overflow:visible;padding-top:7px}.header .step-sequence .steps li.step .controls>span[data-v-21be6a33]{padding-bottom:3px;margin-bottom:5px;white-space:nowrap}.header .step-sequence .steps li.step.active .controls[data-v-21be6a33]{color:var(--primary)}.header .step-sequence .steps li.step:not(.disabled) .controls[data-v-21be6a33]:hover>*{color:var(--primary)!important;cursor:pointer}.header .step-sequence .steps li.step:not(.active) .controls[data-v-21be6a33]>*{color:var(--input-disabled-text);text-decoration:none}.header .step-sequence .steps .divider[data-v-21be6a33]{flex-basis:100%;border-top:1px solid var(--border);position:relative;top:17px}.cru__content .header .step-sequence .steps .divider[data-v-21be6a33]{top:13px}.header .choice-banner[data-v-21be6a33]{flex-basis:40%;display:flex;align-items:center;margin-bottom:10px}.header .choice-banner.selected[data-v-21be6a33]{background-color:var(--accent-btn)}.header .choice-banner.top H2[data-v-21be6a33]{margin:0}.header .choice-banner.top .title[data-v-21be6a33]{display:flex;align-items:center;justify-content:space-evenly;position:relative}.header .choice-banner.top .title>.subtitle[data-v-21be6a33]{margin-right:20px}.header .choice-banner.top .subtitle[data-v-21be6a33]{display:flex;flex-direction:column}.header .choice-banner.top .subtitle .subtext[data-v-21be6a33]{color:var(--input-label)}.header .choice-banner[data-v-21be6a33]:not(.top){box-shadow:0 0 12px 3px var(--box-bg);flex-direction:row;align-items:center;justify-content:start}.header .choice-banner[data-v-21be6a33]:not(.top):hover{outline:var(--outline-width) solid var(--outline);cursor:pointer}.header .choice-banner .round-image[data-v-21be6a33]{min-width:50px;height:50px;margin:10px 10px 10px 0;border-radius:50%;overflow:hidden}.header .choice-banner .round-image .logo[data-v-21be6a33]{min-width:50px;height:50px}.step-container[data-v-21be6a33]{position:relative;flex:1 1 auto;height:0;overflow-y:auto;padding:20px 2px 2px 2px;display:flex;flex-direction:column}.step-container__step[data-v-21be6a33]{overflow:hidden;display:flex;flex-direction:column;flex:1}.footer-error[data-v-21be6a33]{margin-top:-40px;margin-bottom:70px}.controls-row[data-v-21be6a33]{margin-left:-20px;margin-right:-20px;padding:10px 20px;display:flex;justify-content:space-between;padding-top:10px;border-top:var(--header-border-size) solid var(--header-border);position:absolute;bottom:0;width:100%;background:var(--body-bg)}.controls-row .controls-steps .btn[data-v-21be6a33]{margin-left:10px}",""]),t["default"]=s},67007:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".yaml-editor{display:flex;flex-direction:column}.yaml-editor .fill{flex:1}.yaml-editor .codemirror-container{position:relative}.yaml-editor .codemirror-container .CodeMirror,.yaml-editor .codemirror-container .CodeMirror .CodeMirror-gutters{background-color:var(--yaml-editor-bg)}.yaml-editor .diff-mode{background-color:var(--diff-header-bg);padding:5px 5px;border-bottom-right-radius:0;border-bottom-left-radius:0}.yaml-editor .d2h-file-wrapper{border-top-right-radius:0}",""]),t["default"]=s},78712:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.chart-container{position:relative;border:1px solid var(--border);min-height:100px}.chart-container,.chart-container .loading-container{display:flex;background-color:var(--body-bg);border-radius:var(--border-radius)}.chart-container .loading-container{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;align-items:center;justify-content:center;flex-direction:column}.chart-container .loading-container i{font-size:24px}.chart-container #tree{width:70%;height:-moz-fit-content;height:fit-content}.chart-container #tree svg{margin-top:3px}.chart-container #tree .link{stroke:var(--darker)}.chart-container #tree .node{cursor:pointer}.chart-container #tree .node.active .node-hover-layer{display:block}.chart-container #tree .node.repo.active>circle{transform:scale(1.2)}.chart-container #tree .node.bundle.active>circle{transform:scale(1.35)}.chart-container #tree .node.bundle-deployment.active>circle{transform:scale(1.6)}.chart-container #tree .node.node-default-fill>circle,.chart-container #tree .node.repo>circle{fill:var(--muted)}.chart-container #tree .node:not(.repo).node-success>circle{fill:var(--success)}.chart-container #tree .node:not(.repo).node-info>circle{fill:var(--info)}.chart-container #tree .node:not(.repo).node-warning>circle{fill:var(--warning)}.chart-container #tree .node:not(.repo).node-error>circle{fill:var(--error)}.chart-container #tree .node .node-hover-layer{stroke:var(--body-bg);stroke-width:2;display:none}.chart-container .more-info-container{width:30%;position:relative;border-left:1px solid var(--border);background-color:var(--body-bg);overflow:hidden}.chart-container .more-info-container,.chart-container .more-info-container .more-info{border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.chart-container .more-info-container .more-info{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;padding:20px;overflow-y:auto}.chart-container .more-info-container .more-info table td{vertical-align:top;padding-bottom:10px}.chart-container .more-info-container .more-info table td.align-middle{vertical-align:middle}.chart-container .more-info-container .more-info table .more-info-item-label{color:var(--darker);margin-right:8px}.chart-container .more-info-container .more-info table .single-error{color:var(--error)}.chart-container .more-info-container .more-info table p{line-height:1.5em}',""]),t["default"]=s},19662:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".box[data-v-d6b8fa5e],.title[data-v-d6b8fa5e]{margin-bottom:10px}.box[data-v-d6b8fa5e]{display:grid;grid-template-columns:auto 75px;align-items:center}.box .value[data-v-d6b8fa5e]{flex:1}.box .value INPUT[data-v-d6b8fa5e]{height:40px}.remove[data-v-d6b8fa5e]{text-align:right}.footer .protip[data-v-d6b8fa5e]{float:right;padding:5px 0}.required[data-v-d6b8fa5e]{color:var(--error)}",""]),t["default"]=s},67271:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".array-list-grouped>.box{position:relative;display:block}.array-list-grouped>.box>.remove{position:absolute;top:0;right:0}.array-list-grouped>.box>.info-box{margin-bottom:0;padding-right:25px}",""]),t["default"]=s},83852:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".color-input[data-v-4b3e7faa]{border:1px solid var(--border);border-radius:var(--border-radius);padding:10px}.color-input[data-v-4b3e7faa]:focus-visible{outline:2px solid var(--primary-keyboard-focus)}.color-input.disabled[data-v-4b3e7faa],.color-input.disabled .selected[data-v-4b3e7faa],.color-input[disabled][data-v-4b3e7faa],.color-input[disabled][data-v-4b3e7faa]:hover{color:var(--input-disabled-text);background-color:var(--input-disabled-bg);outline-width:0;border-color:var(--input-disabled-border);cursor:not-allowed}.color-input.disabled .selected div[data-v-4b3e7faa],.color-input.disabled .selected input[data-v-4b3e7faa],.color-input.disabled .selected label[data-v-4b3e7faa],.color-input.disabled .selected span[data-v-4b3e7faa],.color-input.disabled div[data-v-4b3e7faa],.color-input.disabled input[data-v-4b3e7faa],.color-input.disabled label[data-v-4b3e7faa],.color-input.disabled span[data-v-4b3e7faa],.color-input[disabled] div[data-v-4b3e7faa],.color-input[disabled] input[data-v-4b3e7faa],.color-input[disabled] label[data-v-4b3e7faa],.color-input[disabled] span[data-v-4b3e7faa],.color-input[disabled]:hover div[data-v-4b3e7faa],.color-input[disabled]:hover input[data-v-4b3e7faa],.color-input[disabled]:hover label[data-v-4b3e7faa],.color-input[disabled]:hover span[data-v-4b3e7faa]{cursor:not-allowed!important}.color-input.disabled .selected label[data-v-4b3e7faa],.color-input.disabled label[data-v-4b3e7faa],.color-input[disabled] label[data-v-4b3e7faa],.color-input[disabled]:hover label[data-v-4b3e7faa]{color:var(--input-disabled-label);display:inline-block;z-index:1}.color-input.disabled .selected[data-v-4b3e7faa]::-moz-placeholder,.color-input.disabled[data-v-4b3e7faa]::-moz-placeholder,.color-input[disabled][data-v-4b3e7faa]::-moz-placeholder,.color-input[disabled][data-v-4b3e7faa]:hover::-moz-placeholder{color:var(--input-disabled-placeholder)}.color-input.disabled .selected[data-v-4b3e7faa]::placeholder,.color-input.disabled[data-v-4b3e7faa]::placeholder,.color-input[disabled][data-v-4b3e7faa]::placeholder,.color-input[disabled][data-v-4b3e7faa]:hover::placeholder{color:var(--input-disabled-placeholder)}.color-input LABEL[data-v-4b3e7faa]{display:block}.color-input .preview-container[data-v-4b3e7faa]:hover{cursor:pointer}.color-input .preview-container .color-value[data-v-4b3e7faa]{margin-left:4px}.color-input .color-display[data-v-4b3e7faa]{border:1px solid var(--border)}.color-input .color-display[data-v-4b3e7faa]:focus{outline:none;box-shadow:0 0 0 var(--outline-width) var(--outline);background:var(--input-focus-bg)}.color-input INPUT[data-v-4b3e7faa]{border:none;padding:0;width:23px;height:23px;-webkit-appearance:none;opacity:0}.color-input INPUT[data-v-4b3e7faa]:hover{cursor:pointer}",""]),t["default"]=s},58335:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.buttons{display:grid;grid-template-areas:"left right";grid-template-columns:"min-content auto"}.buttons .left{grid-area:left;text-align:left}.buttons .left .btn,.buttons .left button{margin:0 1.75% 0 0}.buttons .right{grid-area:right;text-align:right}.buttons .right .btn,.buttons .right button{margin:0 0 0 1.75%}',""]),t["default"]=s},38238:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".input-container[data-v-035f9ce5]{display:flex}.input-container.select-after[data-v-035f9ce5]{height:100%;flex-direction:row-reverse}.input-container.select-after .input-string[data-v-035f9ce5]{border-radius:var(--border-radius) 0 0 var(--border-radius);border-right:0;border-left-width:1px}.input-container.select-after .in-input[data-v-035f9ce5]{border-radius:0 var(--border-radius) var(--border-radius) 0}.input-container.select-after .in-input.labeled-select .selected[data-v-035f9ce5]{color:var(--input-text);text-align:center;margin-right:1em}.input-container.select-after .in-input.focused[data-v-035f9ce5]:not(.vs__dropdown-up){border-bottom-right-radius:0}.input-container.select-after .in-input.focused.vs__dropdown-up[data-v-035f9ce5]{border-top-right-radius:0}.input-container.select-after .input-string.focused[data-v-035f9ce5],.input-container.select-after .input-string[data-v-035f9ce5]:focus,.input-container.select-after .input-string[data-v-035f9ce5]:hover:not(.focused):not(.disabled):not(:focus){padding-left:10px!important}.input-container .input-string[data-v-035f9ce5]{padding-right:0;width:60%;flex-grow:1;border-radius:0 var(--border-radius) var(--border-radius) 0;border-left-width:0;margin-left:-1px;position:relative;display:table;border-collapse:separate}.input-container .input-string[data-v-035f9ce5]:hover:not(.focused):not(.disabled):not(:focus):not(.view){border-left:1px solid var(--input-hover-border);border-right:1px solid var(--input-hover-border);padding-left:9px}.input-container .input-string.focused[data-v-035f9ce5],.input-container .input-string[data-v-035f9ce5]:focus{border-left:1px solid var(--outline)!important;border-right:1px solid var(--outline)!important;padding-left:9px}.input-container .in-input[data-v-035f9ce5]{margin-right:0}.input-container .in-input[data-v-035f9ce5]:hover:not(.focused):not(.disabled),.input-container .in-input[data-v-035f9ce5]:hover:not(.focused):not(.disabled):not(.view){border:1px solid var(--input-hover-border)!important}.input-container .in-input.focused[data-v-035f9ce5]{border:1px solid var(--outline)!important}.input-container .in-input.labeled-select.focused[data-v-035f9ce5] ,.input-container .in-input.unlabeled-select.focused[data-v-035f9ce5] {outline:none}.input-container .in-input.labeled-select[data-v-035f9ce5]:not(.disabled):not(.view) ,.input-container .in-input.unlabeled-select[data-v-035f9ce5]:not(.disabled):not(.view) {border:solid 1px var(--input-border)}.input-container .in-input.labeled-select[data-v-035f9ce5] ,.input-container .in-input.unlabeled-select[data-v-035f9ce5] {box-shadow:none;width:20%;margin-right:1px}.input-container .in-input.labeled-select[data-v-035f9ce5] .vs__selected,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .vs__selected{color:var(--input-text)}.input-container .in-input.labeled-select[data-v-035f9ce5] .vs__dropdown-menu,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .vs__dropdown-menu{box-shadow:none}.input-container .in-input.labeled-select[data-v-035f9ce5] .vs__dropdown-menu .vs__dropdown-option,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .vs__dropdown-menu .vs__dropdown-option{padding:3px 5px}.input-container .in-input.labeled-select[data-v-035f9ce5] .v-select:not(.vs--disabled) .vs__dropdown-toggle,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .v-select:not(.vs--disabled) .vs__dropdown-toggle{border-radius:var(--border-radius) 0 0 var(--border-radius)}.input-container .in-input.labeled-select[data-v-035f9ce5] .v-select:not(.vs--disabled).vs--open .vs__dropdown-toggle,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .v-select:not(.vs--disabled).vs--open .vs__dropdown-toggle{color:var(--outline)!important}",""]),t["default"]=s},74298:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".labeled-select[data-v-92b3990a]{position:relative;padding-bottom:1px}.labeled-select.no-label.compact-input[data-v-92b3990a] .vs__actions:after{top:-2px}.labeled-select.no-label.compact-input .labeled-container[data-v-92b3990a]{padding:5px 0 1px 10px}.labeled-select.no-label[data-v-92b3990a]:not(.compact-input){height:61px;padding-top:4px}.labeled-select.no-label[data-v-92b3990a]:not(.compact-input) .vs__actions:after{top:0}.labeled-select .icon-spinner[data-v-92b3990a]{position:absolute;left:calc(50% - .5em);top:calc(50% - .5em)}.labeled-select .labeled-container[data-v-92b3990a]{padding:7px 0 0 10px;padding:10px 0 0 10px}.labeled-select .labeled-container label[data-v-92b3990a]{margin:0}.labeled-select .labeled-container .selected[data-v-92b3990a]{background-color:transparent}.labeled-select.view.labeled-input .labeled-container[data-v-92b3990a]{padding:0}.labeled-select.taggable.compact-input[data-v-92b3990a]{min-height:40px}.labeled-select.taggable.compact-input[data-v-92b3990a] .vs__selected-options{padding-top:8px!important}.labeled-select.taggable[data-v-92b3990a]:not(.compact-input){min-height:61px}.labeled-select.taggable[data-v-92b3990a]:not(.compact-input) .vs__selected-options{margin-top:0}.labeled-select[data-v-92b3990a]:not(.taggable) .vs__selected-options .vs__selected{width:100%}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options{padding:3px 0}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options .vs__selected{border-color:var(--accent-btn);height:20px;min-height:unset!important;padding:0 0 0 7px!important}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options .vs__selected>button{height:20px;line-height:14px}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options .vs__selected>button:hover{background-color:var(--primary);border-radius:0}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options .vs__selected>button:hover:after{color:#fff}.labeled-select[data-v-92b3990a] .vs__selected-options{margin-top:-5px}.labeled-select[data-v-92b3990a] .v-select:not(.vs--single) .vs__selected-options{padding:5px 0}.labeled-select[data-v-92b3990a] .vs__actions:after{position:relative;top:-10px}.labeled-select[data-v-92b3990a] .v-select.vs--open .vs__dropdown-toggle{color:var(--outline)!important}[data-v-92b3990a] .labeled-select.disabled .labeled-container,[data-v-92b3990a] .labeled-select.disabled .vs__dropdown-toggle,[data-v-92b3990a] .labeled-select.disabled input,[data-v-92b3990a] .labeled-select.disabled label{cursor:not-allowed}.labeled-select .no-label[data-v-92b3990a] .v-select:not(.vs--single){min-height:33px}.labeled-select .no-label[data-v-92b3990a] .selected{padding-top:8px;padding-bottom:9px;position:relative;max-height:2.3em;overflow:hidden}.labeled-select .no-label[data-v-92b3990a] .vs__selected-options{padding:8px 0 7px 0}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group[data-v-92b3990a]{display:flex;align-items:center}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group i[data-v-92b3990a]{width:18px}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>b[data-v-92b3990a]{flex:1}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>div[data-v-92b3990a]{background-color:var(--primary);border-radius:4px;color:var(--primary-text);font-size:12px;height:18px;line-height:18px;margin-top:1px;padding:0 10px}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind.has-icon[data-v-92b3990a],.vs__dropdown-menu.has-icon .vs__option-kind div[data-v-92b3990a]{padding-left:18px}.vs__dropdown-menu .pagination-slot[data-v-92b3990a]{display:flex;align-items:center;justify-content:center;position:relative;margin-top:5px}.vs__dropdown-menu .pagination-slot .load-more[data-v-92b3990a]{display:flex;align-items:center;height:19px}.vs__dropdown-menu .pagination-slot .load-more a[data-v-92b3990a]{cursor:pointer}.vs__dropdown-menu .pagination-slot .count[data-v-92b3990a]{position:absolute;right:10px}.vs__dropdown-menu .no-options-slot .paginating[data-v-92b3990a]{display:flex;align-items:center;justify-content:center}.vs__dropdown-option>.option-kind-highlighted[data-v-92b3990a]{color:var(--dropdown-highlight-text)}.vs__dropdown-option.vs__dropdown-option--highlight>.option-kind-highlighted[data-v-92b3990a],.vs__dropdown-option.vs__dropdown-option--selected>.option-kind-highlighted[data-v-92b3990a],.vs__dropdown-option>.option-kind-highlighted[data-v-92b3990a]:hover{color:var(--dropdown-hover-text)}.vs__dropdown-menu .vs__dropdown-option .only-user-opts[data-v-92b3990a]{color:var(--dropdown-text);background-color:var(--dropdown-bg);margin:0 -5px;padding:3px 20px}",""]),t["default"]=s},18133:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".unlabeled-select[data-v-fef44118]{position:relative}.unlabeled-select[data-v-fef44118] .v-select.select-input-view .vs__actions{visibility:hidden}.unlabeled-select .vs--multiple[data-v-fef44118] .vs__selected-options .vs__selected{width:auto}.unlabeled-select[data-v-fef44118] .labeled-tooltip.error .status-icon{top:7px;right:2px}.unlabeled-select[data-v-fef44118] .vs__selected-options{display:flex;margin:3px}.unlabeled-select[data-v-fef44118] .vs__selected-options .vs__selected{width:auto}.unlabeled-select[data-v-fef44118] .v-select.vs--open .vs__dropdown-toggle{color:var(--outline)!important}.unlabeled-select.focused.success[data-v-fef44118],.unlabeled-select.success[data-v-fef44118]{border:solid 1px var(--success)}.unlabeled-select.focused.success .selected[data-v-fef44118],.unlabeled-select.focused.success .vs__actions[data-v-fef44118]:after,.unlabeled-select.focused.success input[data-v-fef44118],.unlabeled-select.success .selected[data-v-fef44118],.unlabeled-select.success .vs__actions[data-v-fef44118]:after,.unlabeled-select.success input[data-v-fef44118]{color:var(--success)}.unlabeled-select.focused.warning[data-v-fef44118],.unlabeled-select.warning[data-v-fef44118]{border:solid 1px var(--warning)}.unlabeled-select.focused.warning .selected[data-v-fef44118],.unlabeled-select.focused.warning .vs__actions[data-v-fef44118]:after,.unlabeled-select.focused.warning input[data-v-fef44118],.unlabeled-select.warning .selected[data-v-fef44118],.unlabeled-select.warning .vs__actions[data-v-fef44118]:after,.unlabeled-select.warning input[data-v-fef44118]{color:var(--warning)}.unlabeled-select.error[data-v-fef44118],.unlabeled-select.focused.error[data-v-fef44118]{border:solid 1px var(--error)}.unlabeled-select.error .vs__actions[data-v-fef44118]:after,.unlabeled-select.error>label[data-v-fef44118],.unlabeled-select.focused.error .vs__actions[data-v-fef44118]:after,.unlabeled-select.focused.error>label[data-v-fef44118]{color:var(--error)}.unlabeled-select.compact-input[data-v-fef44118]{min-height:40px;line-height:18px}",""]),t["default"]=s},61502:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".secret-selector{width:100%}.secret-selector label{display:block}.secret-selector .labeled-select{min-height:61px}.secret-selector .vs__selected-options{padding:8px 0 7px 0}.secret-selector label{display:inline-block}.secret-selector.show-key-selector .input-container>*{display:inline-block;width:50%}.secret-selector.show-key-selector .input-container>.labeled-select.focused{z-index:10}.secret-selector.show-key-selector .input-container>:first-child{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.secret-selector.show-key-selector .input-container>:last-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none;float:right}",""]),t["default"]=s},38589:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,"svg.text[data-v-5f78e642]{fill:red}",""]),t["default"]=s},29094:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".favorite[data-v-f74a378a]{position:relative;cursor:pointer;font-size:20px;transform:ease-in-out-all 1s}.favorite.icon-star-open[data-v-f74a378a]{color:var(--muted)}.favorite.icon-star-closed[data-v-f74a378a]{color:var(--body-text)}",""]),t["default"]=s},35693:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".receiver .box-container.create-resource-container{display:flex;justify-content:space-between;flex-wrap:wrap;margin:0 -10px}.receiver .box-container.create-resource-container .subtype-banner{justify-content:space-between;align-items:center;flex-direction:row}.receiver .right{padding:30px;border-left:1px solid var(--border)}.receiver .logo{text-align:center;width:60px;height:60px;border-radius:calc(var(--border-radius)*2);overflow:hidden;background-color:#fff;display:inline-block;vertical-align:middle}.receiver .logo img{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;position:relative;top:2px}.receiver .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:0;display:inline-block;vertical-align:middle}",""]),t["default"]=s},42836:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".responders-heading[data-v-174af1a6]{display:grid;grid-template-columns:auto 75px}.responder[data-v-174af1a6],.responder .target-container[data-v-174af1a6]{width:100%}.responder .target-container[data-v-174af1a6] .unlabeled-select{min-width:35%;height:100%}.responder .target[data-v-174af1a6]{height:100%}",""]),t["default"]=s},90428:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".text.info[data-v-06b0c427]{display:flex;align-items:center}.text.info>span[data-v-06b0c427]{margin-right:5px}",""]),t["default"]=s},56454:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".delete-warning[data-v-0b3eae82]{color:var(--error)}.remove-project-dialog[data-v-0b3eae82]{border:1px solid var(--border);padding:10px;border-radius:5px}.remove-project-dialog .display-name[data-v-0b3eae82]{font-weight:700}",""]),t["default"]=s},51582:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".text.info[data-v-e0c89e72]{display:flex;align-items:center}.text.info>span[data-v-e0c89e72]{margin-right:5px}",""]),t["default"]=s},58655:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".actions[data-v-64ba45e0]{text-align:right}.machine-name[data-v-64ba45e0]{font-weight:600}",""]),t["default"]=s},48415:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".badge-state[data-v-64b26d7f]{align-items:center;display:inline-flex;padding:2px 10px;border:1px solid transparent;border-radius:20px}.badge-state.bg-info[data-v-64b26d7f]{border-color:var(--info)}.badge-state.bg-error[data-v-64b26d7f]{border-color:var(--error)}.badge-state.bg-warning[data-v-64b26d7f]{border-color:var(--warning)}.badge-state.bg-success[data-v-64b26d7f]{color:var(--success);background:transparent;border-color:var(--success)}.badge-state.badge-disabled[data-v-64b26d7f]{color:var(--badge-state-disabled-text);background-color:var(--badge-state-disabled-bg);border:1px solid var(--badge-state-disabled-border)}",""]),t["default"]=s},30909:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".sortable-table TD .badge-state{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;word-wrap:break-word;display:inline-block;max-width:100%;position:relative;max-width:110px;font-size:.85em;vertical-align:middle}",""]),t["default"]=s},58498:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".banner[data-v-1a4e45d4]{display:flex;margin:15px 0;position:relative;width:100%;color:var(--body-text)}.banner__icon[data-v-1a4e45d4]{width:48px;flex-grow:1;display:flex;justify-content:center;align-items:center;box-sizing:content-box}.primary .banner__icon[data-v-1a4e45d4]{background:var(--primary)}.secondary .banner__icon[data-v-1a4e45d4]{background:var(--default)}.success .banner__icon[data-v-1a4e45d4]{background:var(--success)}.info .banner__icon[data-v-1a4e45d4]{background:var(--info)}.warning .banner__icon[data-v-1a4e45d4]{background:var(--warning)}.error .banner__icon[data-v-1a4e45d4]{background:var(--error);color:var(--primary-text)}.banner__content[data-v-1a4e45d4]{padding:10px;transition:all .2s ease;line-height:20px;width:100%;border-left:4px solid transparent;display:flex;gap:3px}.primary .banner__content[data-v-1a4e45d4]{background:var(--primary);border-color:var(--primary)}.secondary .banner__content[data-v-1a4e45d4]{background:var(--default-banner-bg);border-color:var(--default)}.success .banner__content[data-v-1a4e45d4]{background:var(--success-banner-bg);border-color:var(--success)}.info .banner__content[data-v-1a4e45d4]{background:var(--info-banner-bg);border-color:var(--info)}.warning .banner__content[data-v-1a4e45d4]{background:var(--warning-banner-bg);border-color:var(--warning)}.error .banner__content[data-v-1a4e45d4]{background:var(--error-banner-bg);border-color:var(--error);color:var(--error)}.banner__content.stacked[data-v-1a4e45d4]{padding:0 10px;margin:0;transition:none}.banner__content.stacked[data-v-1a4e45d4]:first-child{padding-top:10px}.banner__content.stacked[data-v-1a4e45d4]:last-child{padding-bottom:10px}.banner__content.closable[data-v-1a4e45d4]{padding-right:48px}.banner__content__closer[data-v-1a4e45d4]{display:flex;align-items:center;cursor:pointer;position:absolute;top:0;right:0;bottom:0;width:24px;line-height:24px;text-align:center;outline:none}.banner__content__closer .closer-icon[data-v-1a4e45d4]{opacity:.7}.banner__content__closer .closer-icon[data-v-1a4e45d4]:hover{opacity:1;color:var(--link)}.banner__content__closer:focus-visible i[data-v-1a4e45d4]{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px}.banner__content.icon[data-v-1a4e45d4]{border-left:none}",""]),t["default"]=s},71047:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".card-container{border-radius:var(--border-radius);display:flex;flex-basis:40%;margin:10px;min-height:100px;padding:10px;box-shadow:0 0 20px var(--shadow)}.card-container.highlight-border{border-left:5px solid var(--primary)}.card-container:not(.top){align-items:top;flex-direction:row;justify-content:start}.card-container .card-wrap{width:100%}.card-container .card-body{color:var(--input-label);display:flex;flex-direction:column;justify-content:center}.card-container .card-actions{align-self:end;display:flex;padding-top:20px}.card-container .card-title{align-items:center;display:flex;width:100%}.card-container .card-title h5{margin:0}.card-container .card-title .flex-right{margin-left:auto}.card-container.card-sticky{overflow:hidden}.card-container.card-sticky .card-wrap{display:flex;flex-direction:column}.card-container.card-sticky .card-wrap .card-body{justify-content:flex-start;overflow:auto}.card-container.card-sticky .card-wrap>*{flex:0}.card-container.card-sticky .card-wrap .card-body{flex:1}",""]),t["default"]=s},12215:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.checkbox-outer-container{display:inline-flex;flex-direction:column}.checkbox-outer-container-description{color:var(--input-label);font-size:14px;margin-left:19px;margin-top:5px;opacity:.8}.checkbox-container{position:relative;display:inline-flex;align-items:center;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--border-radius)}.checkbox-container .checkbox-label{color:var(--input-label);display:inline-flex;margin:0 10px 0 5px}.checkbox-container .checkbox-label.checkbox-primary{color:inherit;font-weight:600}.checkbox-container .checkbox-info{line-height:normal;margin-left:2px}.checkbox-container .checkbox-info:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px}.checkbox-container .checkbox-custom{height:14px;width:14px;background-color:var(--body-bg);border-radius:var(--border-radius);border:1px solid var(--border);flex-shrink:0}.checkbox-container .checkbox-custom:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px;border-radius:0}.checkbox-container input{opacity:0;position:absolute;z-index:-1}.checkbox-container input:focus-visible~.checkbox-custom{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px;border-radius:0}.checkbox-container input:checked~.checkbox-custom{background-color:var(--primary);transform:rotate(0deg) scale(1);opacity:1;border:1px solid var(--primary)}.checkbox-container .checkbox-custom:after{position:absolute;content:"";left:0;top:0;height:0;width:0;border-radius:var(--border-radius);border:solid;border-color:var(--input-text);border-width:0 3px 3px 0;transform:rotate(0deg) scale(0);opacity:1}.checkbox-container input:checked~.checkbox-custom:after{transform:rotate(45deg) scale(1);opacity:1;left:4px;width:4px;height:10px;border:solid;border-color:var(--checkbox-tick);border-width:0 2px 2px 0;background-color:transparent}.checkbox-container input:checked~.checkbox-custom.indeterminate:after{transform:scale(1);opacity:1;left:3px;top:2px;width:6px;height:5px;border:solid;border-color:var(--checkbox-tick);border-width:0 0 2px 0;background-color:transparent}.checkbox-container.disabled .checkbox-custom,.checkbox-container.disabled input:checked~.checkbox-custom{background-color:var(--checkbox-disabled-bg);border-color:var(--checkbox-disabled-bg)}.checkbox-container.disabled input:checked~.checkbox-custom:after{border-color:var(--checkbox-tick-disabled)}.checkbox-container.disabled{cursor:not-allowed}.checkbox-container .checkbox-view{display:flex;flex-direction:column}.checkbox-container .checkbox-view LABEL{color:var(--input-label)}',""]),t["default"]=s},21199:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".labeled-input.view input[data-v-3954a5a8]{text-overflow:ellipsis}.hideArrows input[data-v-3954a5a8]::-webkit-inner-spin-button,.hideArrows input[data-v-3954a5a8]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.hideArrows input[type=number][data-v-3954a5a8]{-moz-appearance:textfield}",""]),t["default"]=s},37746:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".radio-view{display:flex;flex-direction:column}.radio-view LABEL{color:var(--input-label)}.radio-group .text-label{display:block;padding-bottom:5px}.radio-container{position:relative;display:inline-flex;align-items:flex-start;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--border-radius);padding-bottom:5px}.radio-container,.radio-container .radio-button-outer-container-description,.radio-container .radio-label{cursor:pointer}.radio-container.disabled,.radio-container.disabled .radio-button-outer-container-description,.radio-container.disabled .radio-label{cursor:not-allowed}.radio-container .radio-custom{height:14px;width:14px;min-height:14px;min-width:14px;background-color:var(--input-bg);border-radius:50%;border:1.5px solid var(--border);margin-top:5px}.radio-container input{display:none}.radio-container .radio-custom[aria-checked=true]{background-color:var(--primary);transform:rotate(0deg) scale(1);opacity:1;border:1.5px solid var(--primary)}.radio-container .radio-custom[aria-checked=true].text-muted{opacity:.25}.radio-container input:disabled~.radio-custom:not([aria-checked=true]){background-color:var(--disabled-bg);opacity:.25}.radio-container .radio-button-outer-container-description{color:var(--input-label);font-size:11px;margin-top:5px}.radio-container .labeling{display:inline-flex;flex-direction:column;margin:3px 10px 0 5px}",""]),t["default"]=s},21027:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".radio-group:focus{border:none;outline:none}.radio-group h3{position:relative}.radio-group.row{display:flex}.radio-group.row .radio-container{margin-right:10px}.radio-group .label{font-size:14px!important}",""]),t["default"]=s},31649:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".labeled-tooltip{position:absolute;width:100%;height:100%;left:0;top:0}.labeled-tooltip.hoverable{height:0}.labeled-tooltip .status-icon{position:absolute;right:30px;top:18px;z-index:3}.labeled-tooltip.error .status-icon{color:var(--error);top:7px;right:5px}.labeled-tooltip.warning .status-icon{color:var(--warning)}.labeled-tooltip.success .status-icon{color:var(--success)}.v-popper__popper.v-popper--theme-tooltip .v-popper__inner pre{padding:2px;vertical-align:middle}",""]),t["default"]=s},52304:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".role[data-v-fa2c9f40]{align-items:center;background-color:rgba(0,0,0,.05);border:1px solid var(--header-border);border-radius:5px;color:var(--tag-text);line-height:20px;padding:2px 5px;white-space:nowrap;display:inline-flex;margin-right:3px}.role-value.text-link-enabled[data-v-fa2c9f40]{cursor:pointer}.role-value.text-link-enabled[data-v-fa2c9f40]:hover{color:var(--primary)}.role-value+.icon-close[data-v-fa2c9f40]{margin-left:3px;cursor:pointer}.role-value+.icon-close[data-v-fa2c9f40]:hover{color:var(--primary)}.project-members[data-v-fa2c9f40] .group-bar{display:flex;justify-content:space-between}.cluster-add[data-v-fa2c9f40]{justify-content:flex-end}",""]),t["default"]=s},72326:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=n(96599),l=o()(i());l.i(s.A),l.push([e.id,"#__layout,#__nuxt,MAIN,body{height:100%}.harvester-shell-container{height:100%;overflow:hidden}.harvester-shell-container .shell-body,.harvester-shell-container .terminal.xterm{height:100%}",""]),t["default"]=l},65320:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".error[data-v-56da10be]{overflow:hidden}.error .row[data-v-56da10be]{align-items:center}.error h1[data-v-56da10be]{font-size:5rem}.error .desert-landscape img[data-v-56da10be]{max-width:100%}",""]),t["default"]=s},64065:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".displayed-keys .banner[data-v-7821dcb9]{margin:0}.displayed-banners[data-v-7821dcb9]{max-height:155px;overflow:auto}.actions[data-v-7821dcb9]{width:100%;display:flex;justify-content:flex-end}",""]),t["default"]=s},38245:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".combination-keys__container[data-v-11c334cb]{max-width:60px}.combination-keys__container DIV[data-v-11c334cb],.combination-keys__container SPAN[data-v-11c334cb]{display:block;text-align:center}.combination-keys__container SPAN[data-v-11c334cb]{border-radius:3px}.combination-keys__container SPAN.open[data-v-11c334cb],.combination-keys__container SPAN[data-v-11c334cb]:hover{color:var(--primary-hover-text);background:var(--primary-hover-bg)}",""]),t["default"]=s},30116:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".vm-console[data-v-55ed4d1a]{height:100%;display:grid;grid-template-rows:30px auto}.combination-keys[data-v-55ed4d1a]{background:#282828}",""]),t["default"]=s},13998:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".bundleModal .support-modal[data-v-4369f8da]{border-radius:var(--border-radius);max-height:100vh}.bundleModal .bundle[data-v-4369f8da]{cursor:pointer;color:var(--primary)}.bundleModal .icon-spinner[data-v-4369f8da]{font-size:100px}.bundleModal .content[data-v-4369f8da]{height:218px}.bundleModal .content .circle[data-v-4369f8da]{padding-top:20px;height:160px}.bundleModal div[data-v-4369f8da]{line-height:normal}.bundleModal .footer[data-v-4369f8da]{display:flex;justify-content:center}",""]),t["default"]=s},33403:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,"#air-gap[data-v-f88eec4a] .image-group .radio-group{display:flex}#air-gap[data-v-f88eec4a] .image-group .radio-group .radio-container{margin-right:30px}#air-gap .chooseFile[data-v-f88eec4a]{display:flex;align-items:center}",""]),t["default"]=s},64970:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".header[data-v-a0fecebc]{border-bottom:1px solid var(--border);margin-bottom:0;padding-bottom:20px}.header H1[data-v-a0fecebc]{flex:1}",""]),t["default"]=s},76592:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".link-example[data-v-45ae37da]{display:flex;align-content:center}.link-example a[data-v-45ae37da]{margin:auto}.logo-container[data-v-45ae37da]{display:flex;flex-direction:column}.logo-container[data-v-45ae37da] .simple-box{position:relative;flex:1;max-height:120px}.logo-container[data-v-45ae37da] .simple-box .content{height:100%;display:flex}.logo-container[data-v-45ae37da] .simple-box .logo-preview{max-width:100%}.logo-container LABEL[data-v-45ae37da]{position:absolute;top:10px;left:10px}",""]),t["default"]=s},75106:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,"#__layout[data-v-2efbfdaf],#__nuxt[data-v-2efbfdaf],body[data-v-2efbfdaf],main[data-v-2efbfdaf]{height:100%}",""]),t["default"]=s},81945:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".content[data-v-74e3f663]{display:grid;grid-column-gap:20px;grid-row-gap:20px;grid-template-columns:70% 30%}.only-community[data-v-74e3f663]{display:grid;grid-template-columns:100%}.community[data-v-74e3f663]{border-left:1px solid var(--border);padding-left:20px}.community>h2[data-v-74e3f663]{font-size:18px;font-weight:300;margin-bottom:20px}.community .support-link[data-v-74e3f663]{margin:10px 0}.box[data-v-74e3f663]{padding:20px;border:1px solid var(--border)}.box.box-primary[data-v-74e3f663]{border-color:var(--primary)}.box>h2[data-v-74e3f663]{font-size:20px;font-weight:300}.box>div[data-v-74e3f663]{font-weight:300;line-height:18px;opacity:.8}.role-secondary[data-v-74e3f663]:focus{background-color:transparent}.warning[data-v-74e3f663]{margin:0 -5px 0 -5px;padding:5px;background-color:var(--warning-banner-bg)}",""]),t["default"]=s},66208:function(e,t,n){"use strict";n.r(t);var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,'.dashboard-root[data-v-140c2578]{display:flex;flex-direction:column;height:100vh}.dashboard-content[data-v-140c2578]{display:grid;flex-grow:1;grid-template-areas:"main";grid-template-columns:auto;grid-template-rows:auto}.logo[data-v-140c2578]{margin:200px 0 40px 0}.logo[data-v-140c2578],.tagline[data-v-140c2578]{display:flex;justify-content:center}.tagline[data-v-140c2578]{margin-top:30px}.tagline>div[data-v-140c2578]{font-size:16px;line-height:22px;max-width:80%;text-align:center}.description[data-v-140c2578]{font-size:24px!important;font-weight:400}',""]),t["default"]=s},96599:function(e,t,n){"use strict";var r=n(36758),i=n.n(r),a=n(40935),o=n.n(a),s=o()(i());s.push([e.id,".xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}",""]),t.A=s},40935:function(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r="undefined"!==typeof t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,i,a){"string"===typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(o[l]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&o[u[0]]||("undefined"!==typeof a&&("undefined"===typeof u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},20062:function(e){"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},36758:function(e){"use strict";e.exports=function(e){return e[1]}},23464:function(e){!function(t,n){e.exports=n()}(0,(function(){"use strict";var e="millisecond",t="second",n="minute",r="hour",i="day",a="week",o="month",s="quarter",l="year",c=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,u=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},h={s:d,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+d(r,2,"0")+":"+d(i,2,"0")},m:function(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,o),i=t-r<0,a=e.clone().add(n+(i?-1:1),o);return Number(-(n+(t-r)/(i?r-a:a-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return{M:o,y:l,w:a,d:i,D:"date",h:r,m:n,s:t,ms:e,Q:s}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},f="en",m={};m[f]=p;var g=function(e){return e instanceof w},v=function(e,t,n){var r;if(!e)return f;if("string"==typeof e)m[e]&&(r=e),t&&(m[e]=t,r=e);else{var i=e.name;m[i]=e,r=i}return!n&&r&&(f=r),r||!n&&f},b=function(e,t){if(g(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new w(n)},y=h;y.l=v,y.i=g,y.w=function(e,t){return b(e,{locale:t.$L,utc:t.$u,$offset:t.$offset})};var w=function(){function d(e){this.$L=this.$L||v(e.locale,null,!0),this.parse(e)}var h=d.prototype;return h.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(y.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(c);if(r)return n?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(t)}(e),this.init()},h.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},h.$utils=function(){return y},h.isValid=function(){return!("Invalid Date"===this.$d.toString())},h.isSame=function(e,t){var n=b(e);return this.startOf(t)<=n&&n<=this.endOf(t)},h.isAfter=function(e,t){return b(e)<this.startOf(t)},h.isBefore=function(e,t){return this.endOf(t)<b(e)},h.$g=function(e,t,n){return y.u(e)?this[t]:this.set(n,e)},h.year=function(e){return this.$g(e,"$y",l)},h.month=function(e){return this.$g(e,"$M",o)},h.day=function(e){return this.$g(e,"$W",i)},h.date=function(e){return this.$g(e,"$D","date")},h.hour=function(e){return this.$g(e,"$H",r)},h.minute=function(e){return this.$g(e,"$m",n)},h.second=function(e){return this.$g(e,"$s",t)},h.millisecond=function(t){return this.$g(t,"$ms",e)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(e,s){var c=this,u=!!y.u(s)||s,d=y.p(e),h=function(e,t){var n=y.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return u?n:n.endOf(i)},p=function(e,t){return y.w(c.toDate()[e].apply(c.toDate("s"),(u?[0,0,0,0]:[23,59,59,999]).slice(t)),c)},f=this.$W,m=this.$M,g=this.$D,v="set"+(this.$u?"UTC":"");switch(d){case l:return u?h(1,0):h(31,11);case o:return u?h(1,m):h(0,m+1);case a:var b=this.$locale().weekStart||0,w=(f<b?f+7:f)-b;return h(u?g-w:g+(6-w),m);case i:case"date":return p(v+"Hours",0);case r:return p(v+"Minutes",1);case n:return p(v+"Seconds",2);case t:return p(v+"Milliseconds",3);default:return this.clone()}},h.endOf=function(e){return this.startOf(e,!1)},h.$set=function(a,s){var c,u=y.p(a),d="set"+(this.$u?"UTC":""),h=(c={},c[i]=d+"Date",c.date=d+"Date",c[o]=d+"Month",c[l]=d+"FullYear",c[r]=d+"Hours",c[n]=d+"Minutes",c[t]=d+"Seconds",c[e]=d+"Milliseconds",c)[u],p=u===i?this.$D+(s-this.$W):s;if(u===o||u===l){var f=this.clone().set("date",1);f.$d[h](p),f.init(),this.$d=f.set("date",Math.min(this.$D,f.daysInMonth())).toDate()}else h&&this.$d[h](p);return this.init(),this},h.set=function(e,t){return this.clone().$set(e,t)},h.get=function(e){return this[y.p(e)]()},h.add=function(e,s){var c,u=this;e=Number(e);var d=y.p(s),h=function(t){var n=b(u);return y.w(n.date(n.date()+Math.round(t*e)),u)};if(d===o)return this.set(o,this.$M+e);if(d===l)return this.set(l,this.$y+e);if(d===i)return h(1);if(d===a)return h(7);var p=(c={},c[n]=6e4,c[r]=36e5,c[t]=1e3,c)[d]||1,f=this.$d.getTime()+e*p;return y.w(f,this)},h.subtract=function(e,t){return this.add(-1*e,t)},h.format=function(e){var t=this;if(!this.isValid())return"Invalid Date";var n=e||"YYYY-MM-DDTHH:mm:ssZ",r=y.z(this),i=this.$locale(),a=this.$H,o=this.$m,s=this.$M,l=i.weekdays,c=i.months,d=function(e,r,i,a){return e&&(e[r]||e(t,n))||i[r].substr(0,a)},h=function(e){return y.s(a%12||12,e,"0")},p=i.meridiem||function(e,t,n){var r=e<12?"AM":"PM";return n?r.toLowerCase():r},f={YY:String(this.$y).slice(-2),YYYY:this.$y,M:s+1,MM:y.s(s+1,2,"0"),MMM:d(i.monthsShort,s,c,3),MMMM:d(c,s),D:this.$D,DD:y.s(this.$D,2,"0"),d:String(this.$W),dd:d(i.weekdaysMin,this.$W,l,2),ddd:d(i.weekdaysShort,this.$W,l,3),dddd:l[this.$W],H:String(a),HH:y.s(a,2,"0"),h:h(1),hh:h(2),a:p(a,o,!0),A:p(a,o,!1),m:String(o),mm:y.s(o,2,"0"),s:String(this.$s),ss:y.s(this.$s,2,"0"),SSS:y.s(this.$ms,3,"0"),Z:r};return n.replace(u,(function(e,t){return t||f[e]||r.replace(":","")}))},h.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},h.diff=function(e,c,u){var d,h=y.p(c),p=b(e),f=6e4*(p.utcOffset()-this.utcOffset()),m=this-p,g=y.m(this,p);return g=(d={},d[l]=g/12,d[o]=g,d[s]=g/3,d[a]=(m-f)/6048e5,d[i]=(m-f)/864e5,d[r]=m/36e5,d[n]=m/6e4,d[t]=m/1e3,d)[h]||m,u?g:y.a(g)},h.daysInMonth=function(){return this.endOf(o).$D},h.$locale=function(){return m[this.$L]},h.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=v(e,t,!0);return r&&(n.$L=r),n},h.clone=function(){return y.w(this.$d,this)},h.toDate=function(){return new Date(this.valueOf())},h.toJSON=function(){return this.isValid()?this.toISOString():null},h.toISOString=function(){return this.$d.toISOString()},h.toString=function(){return this.$d.toUTCString()},d}();return b.prototype=w.prototype,b.extend=function(e,t){return e(t,w,b),b},b.locale=v,b.isDayjs=g,b.unix=function(e){return b(1e3*e)},b.en=m[f],b.Ls=m,b}))},70686:function(e,t,n){"use strict";var r=n(64940),i=n(5731),a=n(3468),o=n(69336);e.exports=function(e,t,n){if(!e||"object"!==typeof e&&"function"!==typeof e)throw new a("`obj` must be an object or a function`");if("string"!==typeof t&&"symbol"!==typeof t)throw new a("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!==typeof arguments[3]&&null!==arguments[3])throw new a("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!==typeof arguments[4]&&null!==arguments[4])throw new a("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!==typeof arguments[5]&&null!==arguments[5])throw new a("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!==typeof arguments[6])throw new a("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,u=arguments.length>6&&arguments[6],d=!!o&&o(e,t);if(r)r(e,t,{configurable:null===c&&d?d.configurable:!c,enumerable:null===s&&d?d.enumerable:!s,value:n,writable:null===l&&d?d.writable:!l});else{if(!u&&(s||l||c))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=n}}},41857:function(e,t,n){"use strict";var r=n(49228),i="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),a=Object.prototype.toString,o=Array.prototype.concat,s=n(70686),l=function(e){return"function"===typeof e&&"[object Function]"===a.call(e)},c=n(17239)(),u=function(e,t,n,r){if(t in e)if(!0===r){if(e[t]===n)return}else if(!l(r)||!r())return;c?s(e,t,n,!0):s(e,t,n)},d=function(e,t){var n=arguments.length>2?arguments[2]:{},a=r(t);i&&(a=o.call(a,Object.getOwnPropertySymbols(t)));for(var s=0;s<a.length;s+=1)u(e,a[s],t[a[s]],n[a[s]])};d.supportsDescriptors=!!c,e.exports=d},46867:function(e,t){ +/*! + + diff v4.0.1 + +Software License Agreement (BSD License) + +Copyright (c) 2009-2015, Kevin Decker <kpdecker@gmail.com> + +All rights reserved. + +Redistribution and use of this software in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of Kevin Decker nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@license +*/ +(function(e,n){n(t)})(0,(function(e){"use strict";function t(){}function n(e,t,n,r,i){for(var a=0,o=t.length,s=0,l=0;a<o;a++){var c=t[a];if(c.removed){if(c.value=e.join(r.slice(l,l+c.count)),l+=c.count,a&&t[a-1].added){var u=t[a-1];t[a-1]=t[a],t[a]=u}}else{if(!c.added&&i){var d=n.slice(s,s+c.count);d=d.map((function(e,t){var n=r[l+t];return n.length>e.length?n:e})),c.value=e.join(d)}else c.value=e.join(n.slice(s,s+c.count));s+=c.count,c.added||(l+=c.count)}}var h=t[o-1];return o>1&&"string"===typeof h.value&&(h.added||h.removed)&&e.equals("",h.value)&&(t[o-2].value+=h.value,t.pop()),t}function r(e){return{newPos:e.newPos,components:e.components.slice(0)}}t.prototype={diff:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=i.callback;"function"===typeof i&&(a=i,i={}),this.options=i;var o=this;function s(e){return a?(setTimeout((function(){a(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var l=t.length,c=e.length,u=1,d=l+c,h=[{newPos:-1,components:[]}],p=this.extractCommon(h[0],t,e,0);if(h[0].newPos+1>=l&&p+1>=c)return s([{value:this.join(t),count:t.length}]);function f(){for(var i=-1*u;i<=u;i+=2){var a=void 0,d=h[i-1],p=h[i+1],f=(p?p.newPos:0)-i;d&&(h[i-1]=void 0);var m=d&&d.newPos+1<l,g=p&&0<=f&&f<c;if(m||g){if(!m||g&&d.newPos<p.newPos?(a=r(p),o.pushComponent(a.components,void 0,!0)):(a=d,a.newPos++,o.pushComponent(a.components,!0,void 0)),f=o.extractCommon(a,t,e,i),a.newPos+1>=l&&f+1>=c)return s(n(o,a.components,t,e,o.useLongestToken));h[i]=a}else h[i]=void 0}u++}if(a)(function e(){setTimeout((function(){if(u>d)return a();f()||e()}),0)})();else while(u<=d){var m=f();if(m)return m}},pushComponent:function(e,t,n){var r=e[e.length-1];r&&r.added===t&&r.removed===n?e[e.length-1]={count:r.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,r){var i=t.length,a=n.length,o=e.newPos,s=o-r,l=0;while(o+1<i&&s+1<a&&this.equals(t[o+1],n[s+1]))o++,s++,l++;return l&&e.components.push({count:l}),e.newPos=o,s},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};var i=new t;function a(e,t,n){return i.diff(e,t,n)}function o(e,t){if("function"===typeof e)t.callback=e;else if(e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var s=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,l=/\S/,c=new t;function u(e,t,n){return n=o(n,{ignoreWhitespace:!0}),c.diff(e,t,n)}function d(e,t,n){return c.diff(e,t,n)}c.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!l.test(e)&&!l.test(t)},c.tokenize=function(e){for(var t=e.split(/(\s+|[()[\]{}'"]|\b)/),n=0;n<t.length-1;n++)!t[n+1]&&t[n+2]&&s.test(t[n])&&s.test(t[n+2])&&(t[n]+=t[n+2],t.splice(n+1,2),n--);return t};var h=new t;function p(e,t,n){return h.diff(e,t,n)}function f(e,t,n){var r=o(n,{ignoreWhitespace:!0});return h.diff(e,t,r)}h.tokenize=function(e){var t=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var r=0;r<n.length;r++){var i=n[r];r%2&&!this.options.newlineIsToken?t[t.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),t.push(i))}return t};var m=new t;function g(e,t,n){return m.diff(e,t,n)}m.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)};var v=new t;function b(e,t,n){return v.diff(e,t,n)}function y(e){return y="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function w(e){return E(e)||_(e)||S()}function E(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function _(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function S(){throw new TypeError("Invalid attempt to spread non-iterable instance")}v.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};var k=Object.prototype.toString,x=new t;function A(e,t,n){return x.diff(e,t,n)}function N(e,t,n,r,i){var a,o;for(t=t||[],n=n||[],r&&(e=r(i,e)),a=0;a<t.length;a+=1)if(t[a]===e)return n[a];if("[object Array]"===k.call(e)){for(t.push(e),o=new Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=N(e[a],t,n,r,i);return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),"object"===y(e)&&null!==e){t.push(e),o={},n.push(o);var s,l=[];for(s in e)e.hasOwnProperty(s)&&l.push(s);for(l.sort(),a=0;a<l.length;a+=1)s=l[a],o[s]=N(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}x.useLongestToken=!0,x.tokenize=h.tokenize,x.castInput=function(e){var t=this.options,n=t.undefinedReplacement,r=t.stringifyReplacer,i=void 0===r?function(e,t){return"undefined"===typeof t?n:t}:r;return"string"===typeof e?e:JSON.stringify(N(e,null,null,i),i," ")},x.equals=function(e,n){return t.prototype.equals.call(x,e.replace(/,([\r\n])/g,"$1"),n.replace(/,([\r\n])/g,"$1"))};var C=new t;function T(e,t,n){return C.diff(e,t,n)}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.split(/\r\n|[\n\v\f\r\x85]/),r=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],i=[],a=0;function o(){var e={};i.push(e);while(a<n.length){var r=n[a];if(/^(\-\-\-|\+\+\+|@@)\s/.test(r))break;var o=/^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(r);o&&(e.index=o[1]),a++}s(e),s(e),e.hunks=[];while(a<n.length){var c=n[a];if(/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(c))break;if(/^@@/.test(c))e.hunks.push(l());else{if(c&&t.strict)throw new Error("Unknown line "+(a+1)+" "+JSON.stringify(c));a++}}}function s(e){var t=/^(---|\+\+\+)\s+(.*)$/.exec(n[a]);if(t){var r="---"===t[1]?"old":"new",i=t[2].split("\t",2),o=i[0].replace(/\\\\/g,"\\");/^".*"$/.test(o)&&(o=o.substr(1,o.length-2)),e[r+"FileName"]=o,e[r+"Header"]=(i[1]||"").trim(),a++}}function l(){for(var e=a,i=n[a++],o=i.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/),s={oldStart:+o[1],oldLines:+o[2]||1,newStart:+o[3],newLines:+o[4]||1,lines:[],linedelimiters:[]},l=0,c=0;a<n.length;a++){if(0===n[a].indexOf("--- ")&&a+2<n.length&&0===n[a+1].indexOf("+++ ")&&0===n[a+2].indexOf("@@"))break;var u=0==n[a].length&&a!=n.length-1?" ":n[a][0];if("+"!==u&&"-"!==u&&" "!==u&&"\\"!==u)break;s.lines.push(n[a]),s.linedelimiters.push(r[a]||"\n"),"+"===u?l++:"-"===u?c++:" "===u&&(l++,c++)}if(l||1!==s.newLines||(s.newLines=0),c||1!==s.oldLines||(s.oldLines=0),t.strict){if(l!==s.newLines)throw new Error("Added line count did not match for hunk at line "+(e+1));if(c!==s.oldLines)throw new Error("Removed line count did not match for hunk at line "+(e+1))}return s}while(a<n.length)o();return i}function O(e,t,n){var r=!0,i=!1,a=!1,o=1;return function s(){if(r&&!a){if(i?o++:r=!1,e+o<=n)return o;a=!0}if(!i)return a||(r=!0),t<=e-o?-o++:(i=!0,s())}}function I(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof t&&(t=R(t)),Array.isArray(t)){if(t.length>1)throw new Error("applyPatch only works with a single input.");t=t[0]}var r,i,a=e.split(/\r\n|[\n\v\f\r\x85]/),o=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],s=t.hunks,l=n.compareLine||function(e,t,n,r){return t===r},c=0,u=n.fuzzFactor||0,d=0,h=0;function p(e,t){for(var n=0;n<e.lines.length;n++){var r=e.lines[n],i=r.length>0?r[0]:" ",o=r.length>0?r.substr(1):r;if(" "===i||"-"===i){if(!l(t+1,a[t],i,o)&&(c++,c>u))return!1;t++}}return!0}for(var f=0;f<s.length;f++){for(var m=s[f],g=a.length-m.oldLines,v=0,b=h+m.oldStart-1,y=O(b,d,g);void 0!==v;v=y())if(p(m,b+v)){m.offset=h+=v;break}if(void 0===v)return!1;d=m.offset+m.oldStart+m.oldLines}for(var w=0,E=0;E<s.length;E++){var _=s[E],S=_.oldStart+_.offset+w-1;w+=_.newLines-_.oldLines,S<0&&(S=0);for(var k=0;k<_.lines.length;k++){var x=_.lines[k],A=x.length>0?x[0]:" ",N=x.length>0?x.substr(1):x,C=_.linedelimiters[k];if(" "===A)S++;else if("-"===A)a.splice(S,1),o.splice(S,1);else if("+"===A)a.splice(S,0,N),o.splice(S,0,C),S++;else if("\\"===A){var T=_.lines[k-1]?_.lines[k-1][0]:null;"+"===T?r=!0:"-"===T&&(i=!0)}}}if(r)while(!a[a.length-1])a.pop(),o.pop();else i&&(a.push(""),o.push("\n"));for(var I=0;I<a.length-1;I++)a[I]=a[I]+o[I];return a.join("")}function L(e,t){"string"===typeof e&&(e=R(e));var n=0;function r(){var i=e[n++];if(!i)return t.complete();t.loadFile(i,(function(e,n){if(e)return t.complete(e);var a=I(n,i,t);t.patched(i,a,(function(e){if(e)return t.complete(e);r()}))}))}r()}function D(e,t,n,r,i,a,o){o||(o={}),"undefined"===typeof o.context&&(o.context=4);var s=p(n,r,o);function l(e){return e.map((function(e){return" "+e}))}s.push({value:"",lines:[]});for(var c=[],u=0,d=0,h=[],f=1,m=1,g=function(e){var t=s[e],i=t.lines||t.value.replace(/\n$/,"").split("\n");if(t.lines=i,t.added||t.removed){var a;if(!u){var p=s[e-1];u=f,d=m,p&&(h=o.context>0?l(p.lines.slice(-o.context)):[],u-=h.length,d-=h.length)}(a=h).push.apply(a,w(i.map((function(e){return(t.added?"+":"-")+e})))),t.added?m+=i.length:f+=i.length}else{if(u)if(i.length<=2*o.context&&e<s.length-2){var g;(g=h).push.apply(g,w(l(i)))}else{var v,b=Math.min(i.length,o.context);(v=h).push.apply(v,w(l(i.slice(0,b))));var y={oldStart:u,oldLines:f-u+b,newStart:d,newLines:m-d+b,lines:h};if(e>=s.length-2&&i.length<=o.context){var E=/\n$/.test(n),_=/\n$/.test(r),S=0==i.length&&h.length>y.oldLines;!E&&S&&h.splice(y.oldLines,0,"\\ No newline at end of file"),(E||S)&&_||h.push("\\ No newline at end of file")}c.push(y),u=0,d=0,h=[]}f+=i.length,m+=i.length}},v=0;v<s.length;v++)g(v);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:a,hunks:c}}function P(e,t,n,r,i,a,o){var s=D(e,t,n,r,i,a,o),l=[];e==t&&l.push("Index: "+e),l.push("==================================================================="),l.push("--- "+s.oldFileName+("undefined"===typeof s.oldHeader?"":"\t"+s.oldHeader)),l.push("+++ "+s.newFileName+("undefined"===typeof s.newHeader?"":"\t"+s.newHeader));for(var c=0;c<s.hunks.length;c++){var u=s.hunks[c];l.push("@@ -"+u.oldStart+","+u.oldLines+" +"+u.newStart+","+u.newLines+" @@"),l.push.apply(l,u.lines)}return l.join("\n")+"\n"}function M(e,t,n,r,i,a){return P(e,e,t,n,r,i,a)}function B(e,t){return e.length===t.length&&F(e,t)}function F(e,t){if(t.length>e.length)return!1;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}function $(e){var t=ne(e.lines),n=t.oldLines,r=t.newLines;void 0!==n?e.oldLines=n:delete e.oldLines,void 0!==r?e.newLines=r:delete e.newLines}function U(e,t,n){e=j(e,n),t=j(t,n);var r={};(e.index||t.index)&&(r.index=e.index||t.index),(e.newFileName||t.newFileName)&&(V(e)?V(t)?(r.oldFileName=K(r,e.oldFileName,t.oldFileName),r.newFileName=K(r,e.newFileName,t.newFileName),r.oldHeader=K(r,e.oldHeader,t.oldHeader),r.newHeader=K(r,e.newHeader,t.newHeader)):(r.oldFileName=e.oldFileName,r.newFileName=e.newFileName,r.oldHeader=e.oldHeader,r.newHeader=e.newHeader):(r.oldFileName=t.oldFileName||e.oldFileName,r.newFileName=t.newFileName||e.newFileName,r.oldHeader=t.oldHeader||e.oldHeader,r.newHeader=t.newHeader||e.newHeader)),r.hunks=[];var i=0,a=0,o=0,s=0;while(i<e.hunks.length||a<t.hunks.length){var l=e.hunks[i]||{oldStart:1/0},c=t.hunks[a]||{oldStart:1/0};if(H(l,c))r.hunks.push(G(l,o)),i++,s+=l.newLines-l.oldLines;else if(H(c,l))r.hunks.push(G(c,s)),a++,o+=c.newLines-c.oldLines;else{var u={oldStart:Math.min(l.oldStart,c.oldStart),oldLines:0,newStart:Math.min(l.newStart+o,c.oldStart+s),newLines:0,lines:[]};z(u,l.oldStart,l.lines,c.oldStart,c.lines),a++,i++,r.hunks.push(u)}}return r}function j(e,t){if("string"===typeof e){if(/^@@/m.test(e)||/^Index:/m.test(e))return R(e)[0];if(!t)throw new Error("Must provide a base reference or pass in a patch");return D(void 0,void 0,t,e)}return e}function V(e){return e.newFileName&&e.newFileName!==e.oldFileName}function K(e,t,n){return t===n?t:(e.conflict=!0,{mine:t,theirs:n})}function H(e,t){return e.oldStart<t.oldStart&&e.oldStart+e.oldLines<t.oldStart}function G(e,t){return{oldStart:e.oldStart,oldLines:e.oldLines,newStart:e.newStart+t,newLines:e.newLines,lines:e.lines}}function z(e,t,n,r,i){var a={offset:t,lines:n,index:0},o={offset:r,lines:i,index:0};Y(e,a,o),Y(e,o,a);while(a.index<a.lines.length&&o.index<o.lines.length){var s=a.lines[a.index],l=o.lines[o.index];if("-"!==s[0]&&"+"!==s[0]||"-"!==l[0]&&"+"!==l[0])if("+"===s[0]&&" "===l[0]){var c;(c=e.lines).push.apply(c,w(J(a)))}else if("+"===l[0]&&" "===s[0]){var u;(u=e.lines).push.apply(u,w(J(o)))}else"-"===s[0]&&" "===l[0]?X(e,a,o):"-"===l[0]&&" "===s[0]?X(e,o,a,!0):s===l?(e.lines.push(s),a.index++,o.index++):W(e,J(a),J(o));else q(e,a,o)}Q(e,a),Q(e,o),$(e)}function q(e,t,n){var r=J(t),i=J(n);if(ee(r)&&ee(i)){var a,o;if(F(r,i)&&te(n,r,r.length-i.length))return void(a=e.lines).push.apply(a,w(r));if(F(i,r)&&te(t,i,i.length-r.length))return void(o=e.lines).push.apply(o,w(i))}else if(B(r,i)){var s;return void(s=e.lines).push.apply(s,w(r))}W(e,r,i)}function X(e,t,n,r){var i,a=J(t),o=Z(n,a);o.merged?(i=e.lines).push.apply(i,w(o.merged)):W(e,r?o:a,r?a:o)}function W(e,t,n){e.conflict=!0,e.lines.push({conflict:!0,mine:t,theirs:n})}function Y(e,t,n){while(t.offset<n.offset&&t.index<t.lines.length){var r=t.lines[t.index++];e.lines.push(r),t.offset++}}function Q(e,t){while(t.index<t.lines.length){var n=t.lines[t.index++];e.lines.push(n)}}function J(e){var t=[],n=e.lines[e.index][0];while(e.index<e.lines.length){var r=e.lines[e.index];if("-"===n&&"+"===r[0]&&(n="+"),n!==r[0])break;t.push(r),e.index++}return t}function Z(e,t){var n=[],r=[],i=0,a=!1,o=!1;while(i<t.length&&e.index<e.lines.length){var s=e.lines[e.index],l=t[i];if("+"===l[0])break;if(a=a||" "!==s[0],r.push(l),i++,"+"===s[0]){o=!0;while("+"===s[0])n.push(s),s=e.lines[++e.index]}l.substr(1)===s.substr(1)?(n.push(s),e.index++):o=!0}if("+"===(t[i]||"")[0]&&a&&(o=!0),o)return n;while(i<t.length)r.push(t[i++]);return{merged:r,changes:n}}function ee(e){return e.reduce((function(e,t){return e&&"-"===t[0]}),!0)}function te(e,t,n){for(var r=0;r<n;r++){var i=t[t.length-n+r].substr(1);if(e.lines[e.index+r]!==" "+i)return!1}return e.index+=n,!0}function ne(e){var t=0,n=0;return e.forEach((function(e){if("string"!==typeof e){var r=ne(e.mine),i=ne(e.theirs);void 0!==t&&(r.oldLines===i.oldLines?t+=r.oldLines:t=void 0),void 0!==n&&(r.newLines===i.newLines?n+=r.newLines:n=void 0)}else void 0===n||"+"!==e[0]&&" "!==e[0]||n++,void 0===t||"-"!==e[0]&&" "!==e[0]||t++})),{oldLines:t,newLines:n}}function re(e){for(var t,n,r=[],i=0;i<e.length;i++)t=e[i],n=t.added?1:t.removed?-1:0,r.push([n,t.value]);return r}function ie(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];r.added?t.push("<ins>"):r.removed&&t.push("<del>"),t.push(ae(r.value)),r.added?t.push("</ins>"):r.removed&&t.push("</del>")}return t.join("")}function ae(e){var t=e;return t=t.replace(/&/g,"&"),t=t.replace(/</g,"<"),t=t.replace(/>/g,">"),t=t.replace(/"/g,"""),t}C.tokenize=function(e){return e.slice()},C.join=C.removeEmpty=function(e){return e},e.Diff=t,e.diffChars=a,e.diffWords=u,e.diffWordsWithSpace=d,e.diffLines=p,e.diffTrimmedLines=f,e.diffSentences=g,e.diffCss=b,e.diffJson=A,e.diffArrays=T,e.structuredPatch=D,e.createTwoFilesPatch=P,e.createPatch=M,e.applyPatch=I,e.applyPatches=L,e.parsePatch=R,e.merge=U,e.convertChangesToDMP=re,e.convertChangesToXML=ie,e.canonicalize=N,Object.defineProperty(e,"__esModule",{value:!0})}))},18841:function(e,t,n){"use strict";var r=n(4364),i=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var r,i=0,a=t.length;i<a;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))};Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0;var a=n(51305),o=n(44869);function s(e,t){var n=e.split(".");return n.length>1?n[n.length-1]:t}function l(e,t){return t.reduce((function(t,n){return t||e.startsWith(n)}),!1)}var c=["a/","b/","i/","w/","c/","o/"];function u(e,t,n){var r=void 0!==n?i(i([],c,!0),[n],!1):c,a=t?new RegExp("^".concat((0,o.escapeForRegExp)(t),' "?(.+?)"?$')):new RegExp('^"?(.+?)"?$'),s=a.exec(e)||[],l=s[1],u=void 0===l?"":l,d=r.find((function(e){return 0===u.indexOf(e)})),h=d?u.slice(d.length):u;return h.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}function d(e,t){return u(e,"---",t)}function h(e,t){return u(e,"+++",t)}function p(e,t){void 0===t&&(t={});var n=[],i=null,o=null,c=null,p=null,f=null,m=null,g=null,v="--- ",b="+++ ",y="@@",w=/^old mode (\d{6})/,E=/^new mode (\d{6})/,_=/^deleted file mode (\d{6})/,S=/^new file mode (\d{6})/,k=/^copy from "?(.+)"?/,x=/^copy to "?(.+)"?/,A=/^rename from "?(.+)"?/,N=/^rename to "?(.+)"?/,C=/^similarity index (\d+)%/,T=/^dissimilarity index (\d+)%/,R=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,O=/^Binary files (.*) and (.*) differ/,I=/^GIT binary patch/,L=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,D=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,P=/^new file mode (\d{6})/,M=/^deleted file mode (\d{6}),(\d{6})/,B=e.replace(/\\ No newline at end of file/g,"").replace(/\r\n?/g,"\n").split("\n");function F(){null!==o&&null!==i&&(i.blocks.push(o),o=null)}function $(){null!==i&&(i.oldName||null===m||(i.oldName=m),i.newName||null===g||(i.newName=g),i.newName&&(n.push(i),i=null)),m=null,g=null}function U(){F(),$(),i={blocks:[],deletedLines:0,addedLines:0}}function j(e){var t;F(),null!==i&&((t=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(e))?(i.isCombined=!1,c=parseInt(t[1],10),f=parseInt(t[2],10)):(t=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(e))?(i.isCombined=!0,c=parseInt(t[1],10),p=parseInt(t[2],10),f=parseInt(t[3],10)):(e.startsWith(y)&&r.error("Failed to parse lines, starting in 0!"),c=0,f=0,i.isCombined=!1)),o={lines:[],oldStartLine:c,oldStartLine2:p,newStartLine:f,header:e}}function V(e){if(null!==i&&null!==o&&null!==c&&null!==f){var t={content:e},n=i.isCombined?["+ "," +","++"]:["+"],r=i.isCombined?["- "," -","--"]:["-"];l(e,n)?(i.addedLines++,t.type=a.LineType.INSERT,t.oldNumber=void 0,t.newNumber=f++):l(e,r)?(i.deletedLines++,t.type=a.LineType.DELETE,t.oldNumber=c++,t.newNumber=void 0):(t.type=a.LineType.CONTEXT,t.oldNumber=c++,t.newNumber=f++),o.lines.push(t)}}function K(e,t){var n=t;while(n<B.length-3){if(e.startsWith("diff"))return!1;if(B[n].startsWith(v)&&B[n+1].startsWith(b)&&B[n+2].startsWith(y))return!0;n++}return!1}return B.forEach((function(e,r){if(e&&!e.startsWith("*")){var a,l=B[r-1],c=B[r+1],p=B[r+2];if(e.startsWith("diff")){U();var f=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/;if((a=f.exec(e))&&(m=u(a[1],void 0,t.dstPrefix),g=u(a[2],void 0,t.srcPrefix)),null===i)throw new Error("Where is my file !!!");i.isGitDiff=!0}else if((!i||!i.isGitDiff&&i&&e.startsWith(v)&&c.startsWith(b)&&p.startsWith(y))&&U(),!(null===i||void 0===i?void 0:i.isTooBig))if(i&&("number"===typeof t.diffMaxChanges&&i.addedLines+i.deletedLines>t.diffMaxChanges||"number"===typeof t.diffMaxLineLength&&e.length>t.diffMaxLineLength)){i.isTooBig=!0,i.addedLines=0,i.deletedLines=0,i.blocks=[],o=null;var F="function"===typeof t.diffTooBigMessage?t.diffTooBigMessage(n.length):"Diff too big to be displayed";j(F)}else{if(e.startsWith(v)&&c.startsWith(b)||e.startsWith(b)&&l.startsWith(v)){if(i&&!i.oldName&&e.startsWith("--- ")&&(a=d(e,t.srcPrefix)))return i.oldName=a,void(i.language=s(i.oldName,i.language));if(i&&!i.newName&&e.startsWith("+++ ")&&(a=h(e,t.dstPrefix)))return i.newName=a,void(i.language=s(i.newName,i.language))}if(i&&(e.startsWith(y)||i.isGitDiff&&i.oldName&&i.newName&&!o))j(e);else if(o&&(e.startsWith("+")||e.startsWith("-")||e.startsWith(" ")))V(e);else{var $=!K(e,r);if(null===i)throw new Error("Where is my file !!!");(a=w.exec(e))?i.oldMode=a[1]:(a=E.exec(e))?i.newMode=a[1]:(a=_.exec(e))?(i.deletedFileMode=a[1],i.isDeleted=!0):(a=S.exec(e))?(i.newFileMode=a[1],i.isNew=!0):(a=k.exec(e))?($&&(i.oldName=a[1]),i.isCopy=!0):(a=x.exec(e))?($&&(i.newName=a[1]),i.isCopy=!0):(a=A.exec(e))?($&&(i.oldName=a[1]),i.isRename=!0):(a=N.exec(e))?($&&(i.newName=a[1]),i.isRename=!0):(a=O.exec(e))?(i.isBinary=!0,i.oldName=u(a[1],void 0,t.srcPrefix),i.newName=u(a[2],void 0,t.dstPrefix),j("Binary file")):I.test(e)?(i.isBinary=!0,j(e)):(a=C.exec(e))?i.unchangedPercentage=parseInt(a[1],10):(a=T.exec(e))?i.changedPercentage=parseInt(a[1],10):(a=R.exec(e))?(i.checksumBefore=a[1],i.checksumAfter=a[2],a[3]&&(i.mode=a[3])):(a=L.exec(e))?(i.checksumBefore=[a[2],a[3]],i.checksumAfter=a[1]):(a=D.exec(e))?(i.oldMode=[a[2],a[3]],i.newMode=a[1]):(a=P.exec(e))?(i.newFileMode=a[1],i.isNew=!0):(a=M.exec(e))&&(i.deletedFileMode=a[1],i.isDeleted=!0)}}}})),F(),$(),n}t.parse=p},53052:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.defaultTemplates=void 0;var o=a(n(62133));t.defaultTemplates={},t.defaultTemplates["file-summary-line"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<li class="d2h-file-list-line">'),r.b("\n"+n),r.b(' <span class="d2h-file-name-wrapper">'),r.b("\n"+n),r.b(r.rp("<fileIcon0",e,t," ")),r.b(' <a href="#'),r.b(r.v(r.f("fileHtmlId",e,t,0))),r.b('" class="d2h-file-name">'),r.b(r.v(r.f("fileName",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b(' <span class="d2h-file-stats">'),r.b("\n"+n),r.b(' <span class="d2h-lines-added">'),r.b(r.v(r.f("addedLines",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <span class="d2h-lines-deleted">'),r.b(r.v(r.f("deletedLines",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(" </span>"),r.b("\n"+n),r.b(" </span>"),r.b("\n"+n),r.b("</li>"),r.fl()},partials:{"<fileIcon0":{name:"fileIcon",partials:{},subs:{}}},subs:{}}),t.defaultTemplates["file-summary-wrapper"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="d2h-file-list-wrapper">'),r.b("\n"+n),r.b(' <div class="d2h-file-list-header">'),r.b("\n"+n),r.b(' <span class="d2h-file-list-title">Files changed ('),r.b(r.v(r.f("filesNumber",e,t,0))),r.b(")</span>"),r.b("\n"+n),r.b(' <a class="d2h-file-switch d2h-hide">hide</a>'),r.b("\n"+n),r.b(' <a class="d2h-file-switch d2h-show">show</a>'),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <ol class="d2h-file-list">'),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("files",e,t,0))),r.b("\n"+n),r.b(" </ol>"),r.b("\n"+n),r.b("</div>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["generic-block-header"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<tr>"),r.b("\n"+n),r.b(' <td class="'),r.b(r.v(r.f("lineClass",e,t,0))),r.b(" "),r.b(r.v(r.d("CSSLineClass.INFO",e,t,0))),r.b('"></td>'),r.b("\n"+n),r.b(' <td class="'),r.b(r.v(r.d("CSSLineClass.INFO",e,t,0))),r.b('">'),r.b("\n"+n),r.b(' <div class="'),r.b(r.v(r.f("contentClass",e,t,0))),r.b('">'),r.b(r.t(r.f("blockHeader",e,t,0))),r.b("</div>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b("</tr>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["generic-empty-diff"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<tr>"),r.b("\n"+n),r.b(' <td class="'),r.b(r.v(r.d("CSSLineClass.INFO",e,t,0))),r.b('">'),r.b("\n"+n),r.b(' <div class="'),r.b(r.v(r.f("contentClass",e,t,0))),r.b('">'),r.b("\n"+n),r.b(" File without changes"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b("</tr>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["generic-file-path"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-file-name-wrapper">'),r.b("\n"+n),r.b(r.rp("<fileIcon0",e,t," ")),r.b(' <span class="d2h-file-name">'),r.b(r.v(r.f("fileDiffName",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(r.rp("<fileTag1",e,t," ")),r.b("</span>"),r.b("\n"+n),r.b('<label class="d2h-file-collapse">'),r.b("\n"+n),r.b(' <input class="d2h-file-collapse-input" type="checkbox" name="viewed" value="viewed">'),r.b("\n"+n),r.b(" Viewed"),r.b("\n"+n),r.b("</label>"),r.fl()},partials:{"<fileIcon0":{name:"fileIcon",partials:{},subs:{}},"<fileTag1":{name:"fileTag",partials:{},subs:{}}},subs:{}}),t.defaultTemplates["generic-line"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<tr>"),r.b("\n"+n),r.b(' <td class="'),r.b(r.v(r.f("lineClass",e,t,0))),r.b(" "),r.b(r.v(r.f("type",e,t,0))),r.b('">'),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("lineNumber",e,t,0))),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b(' <td class="'),r.b(r.v(r.f("type",e,t,0))),r.b('">'),r.b("\n"+n),r.b(' <div class="'),r.b(r.v(r.f("contentClass",e,t,0))),r.b('">'),r.b("\n"+n),r.s(r.f("prefix",e,t,1),e,t,0,162,238,"{{ }}")&&(r.rs(e,t,(function(e,t,r){r.b(' <span class="d2h-code-line-prefix">'),r.b(r.t(r.f("prefix",e,t,0))),r.b("</span>"),r.b("\n"+n)})),e.pop()),r.s(r.f("prefix",e,t,1),e,t,1,0,0,"")||(r.b(' <span class="d2h-code-line-prefix"> </span>'),r.b("\n"+n)),r.s(r.f("content",e,t,1),e,t,0,371,445,"{{ }}")&&(r.rs(e,t,(function(e,t,r){r.b(' <span class="d2h-code-line-ctn">'),r.b(r.t(r.f("content",e,t,0))),r.b("</span>"),r.b("\n"+n)})),e.pop()),r.s(r.f("content",e,t,1),e,t,1,0,0,"")||(r.b(' <span class="d2h-code-line-ctn"><br></span>'),r.b("\n"+n)),r.b(" </div>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b("</tr>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["generic-wrapper"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="d2h-wrapper">'),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("content",e,t,0))),r.b("\n"+n),r.b("</div>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["icon-file-added"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon d2h-added" height="16" title="added" version="1.1" viewBox="0 0 14 16"'),r.b("\n"+n),r.b(' width="14">'),r.b("\n"+n),r.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z"></path>'),r.b("\n"+n),r.b("</svg>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["icon-file-changed"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon d2h-changed" height="16" title="modified" version="1.1"'),r.b("\n"+n),r.b(' viewBox="0 0 14 16" width="14">'),r.b("\n"+n),r.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z"></path>'),r.b("\n"+n),r.b("</svg>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["icon-file-deleted"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon d2h-deleted" height="16" title="removed" version="1.1"'),r.b("\n"+n),r.b(' viewBox="0 0 14 16" width="14">'),r.b("\n"+n),r.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM11 9H3V7h8v2z"></path>'),r.b("\n"+n),r.b("</svg>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["icon-file-renamed"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon d2h-moved" height="16" title="renamed" version="1.1"'),r.b("\n"+n),r.b(' viewBox="0 0 14 16" width="14">'),r.b("\n"+n),r.b(' <path d="M6 9H3V7h3V4l5 4-5 4V9z m8-7v12c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h12c0.55 0 1 0.45 1 1z m-1 0H1v12h12V2z"></path>'),r.b("\n"+n),r.b("</svg>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["icon-file"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12">'),r.b("\n"+n),r.b(' <path d="M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z"></path>'),r.b("\n"+n),r.b("</svg>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["line-by-line-file-diff"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="'),r.b(r.v(r.f("fileHtmlId",e,t,0))),r.b('" class="d2h-file-wrapper" data-lang="'),r.b(r.v(r.d("file.language",e,t,0))),r.b('">'),r.b("\n"+n),r.b(' <div class="d2h-file-header">'),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("filePath",e,t,0))),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <div class="d2h-file-diff">'),r.b("\n"+n),r.b(' <div class="d2h-code-wrapper">'),r.b("\n"+n),r.b(' <table class="d2h-diff-table">'),r.b("\n"+n),r.b(' <tbody class="d2h-diff-tbody">'),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("diffs",e,t,0))),r.b("\n"+n),r.b(" </tbody>"),r.b("\n"+n),r.b(" </table>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("</div>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["line-by-line-numbers"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="line-num1">'),r.b(r.v(r.f("oldNumber",e,t,0))),r.b("</div>"),r.b("\n"+n),r.b('<div class="line-num2">'),r.b(r.v(r.f("newNumber",e,t,0))),r.b("</div>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["side-by-side-file-diff"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="'),r.b(r.v(r.f("fileHtmlId",e,t,0))),r.b('" class="d2h-file-wrapper" data-lang="'),r.b(r.v(r.d("file.language",e,t,0))),r.b('">'),r.b("\n"+n),r.b(' <div class="d2h-file-header">'),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("filePath",e,t,0))),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <div class="d2h-files-diff">'),r.b("\n"+n),r.b(' <div class="d2h-file-side-diff">'),r.b("\n"+n),r.b(' <div class="d2h-code-wrapper">'),r.b("\n"+n),r.b(' <table class="d2h-diff-table">'),r.b("\n"+n),r.b(' <tbody class="d2h-diff-tbody">'),r.b("\n"+n),r.b(" "),r.b(r.t(r.d("diffs.left",e,t,0))),r.b("\n"+n),r.b(" </tbody>"),r.b("\n"+n),r.b(" </table>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <div class="d2h-file-side-diff">'),r.b("\n"+n),r.b(' <div class="d2h-code-wrapper">'),r.b("\n"+n),r.b(' <table class="d2h-diff-table">'),r.b("\n"+n),r.b(' <tbody class="d2h-diff-tbody">'),r.b("\n"+n),r.b(" "),r.b(r.t(r.d("diffs.right",e,t,0))),r.b("\n"+n),r.b(" </tbody>"),r.b("\n"+n),r.b(" </table>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("</div>"),r.fl()},partials:{},subs:{}}),t.defaultTemplates["tag-file-added"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-tag d2h-added d2h-added-tag">ADDED</span>'),r.fl()},partials:{},subs:{}}),t.defaultTemplates["tag-file-changed"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-tag d2h-changed d2h-changed-tag">CHANGED</span>'),r.fl()},partials:{},subs:{}}),t.defaultTemplates["tag-file-deleted"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-tag d2h-deleted d2h-deleted-tag">DELETED</span>'),r.fl()},partials:{},subs:{}}),t.defaultTemplates["tag-file-renamed"]=new o.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-tag d2h-moved d2h-moved-tag">RENAMED</span>'),r.fl()},partials:{},subs:{}})},9402:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},r.apply(this,arguments)},i=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.html=t.parse=t.defaultDiff2HtmlConfig=void 0;var l=o(n(18841)),c=o(n(82417)),u=o(n(14023)),d=o(n(39959)),h=n(51305),p=s(n(29706));function f(e,n){return void 0===n&&(n={}),l.parse(e,r(r({},t.defaultDiff2HtmlConfig),n))}function m(e,n){void 0===n&&(n={});var i=r(r({},t.defaultDiff2HtmlConfig),n),a="string"===typeof e?l.parse(e,i):e,o=new p.default(i),s=i.drawFileList?c.render(a,o):"",h="side-by-side"===i.outputFormat?new d.default(o,i).render(a):new u.default(o,i).render(a);return s+h}t.defaultDiff2HtmlConfig=r(r(r({},u.defaultLineByLineRendererConfig),d.defaultSideBySideRendererConfig),{outputFormat:h.OutputFormatType.LINE_BY_LINE,drawFileList:!0}),t.parse=f,t.html=m},82417:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.render=void 0;var o=a(n(94762)),s="file-summary",l="icon";function c(e,t){var n=e.map((function(e){return t.render(s,"line",{fileHtmlId:o.getHtmlId(e),oldName:e.oldName,newName:e.newName,fileName:o.filenameDiff(e),deletedLines:"-"+e.deletedLines,addedLines:"+"+e.addedLines},{fileIcon:t.template(l,o.getFileIcon(e))})})).join("\n");return t.render(s,"wrapper",{filesNumber:e.length,files:n})}t.render=c},29706:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},r.apply(this,arguments)},i=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0});var s=o(n(62133)),l=n(53052),c=function(){function e(e){var t=e.compiledTemplates,n=void 0===t?{}:t,i=e.rawTemplates,a=void 0===i?{}:i,o=Object.entries(a).reduce((function(e,t){var n,i=t[0],a=t[1],o=s.compile(a,{asString:!1});return r(r({},e),(n={},n[i]=o,n))}),{});this.preCompiledTemplates=r(r(r({},l.defaultTemplates),n),o)}return e.compile=function(e){return s.compile(e,{asString:!1})},e.prototype.render=function(e,t,n,r,i){var a=this.templateKey(e,t);try{var o=this.preCompiledTemplates[a];return o.render(n,r,i)}catch(s){throw new Error("Could not find template to render '".concat(a,"'"))}},e.prototype.template=function(e,t){return this.preCompiledTemplates[this.templateKey(e,t)]},e.prototype.templateKey=function(e,t){return"".concat(e,"-").concat(t)},e}();t["default"]=c},14023:function(e,t,n){"use strict";var r=n(4364),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},i.apply(this,arguments)},a=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&a(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.defaultLineByLineRendererConfig=void 0;var l=s(n(54166)),c=s(n(94762)),u=n(51305);t.defaultLineByLineRendererConfig=i(i({},c.defaultRenderConfig),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200});var d="generic",h="line-by-line",p="icon",f="tag",m=function(){function e(e,n){void 0===n&&(n={}),this.hoganUtils=e,this.config=i(i({},t.defaultLineByLineRendererConfig),n)}return e.prototype.render=function(e){var t=this,n=e.map((function(e){var n;return n=e.blocks.length?t.generateFileHtml(e):t.generateEmptyDiff(),t.makeFileDiffHtml(e,n)})).join("\n");return this.hoganUtils.render(d,"wrapper",{content:n})},e.prototype.makeFileDiffHtml=function(e,t){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&0===e.blocks.length)return"";var n=this.hoganUtils.template(h,"file-diff"),r=this.hoganUtils.template(d,"file-path"),i=this.hoganUtils.template(p,"file"),a=this.hoganUtils.template(f,c.getFileIcon(e));return n.render({file:e,fileHtmlId:c.getHtmlId(e),diffs:t,filePath:r.render({fileDiffName:c.filenameDiff(e)},{fileIcon:i,fileTag:a})})},e.prototype.generateEmptyDiff=function(){return this.hoganUtils.render(d,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:c.CSSLineClass})},e.prototype.generateFileHtml=function(e){var t=this,n=l.newMatcherFn(l.newDistanceFn((function(t){return c.deconstructLine(t.content,e.isCombined).content})));return e.blocks.map((function(i){var a=t.hoganUtils.render(d,"block-header",{CSSLineClass:c.CSSLineClass,blockHeader:e.isTooBig?i.header:c.escapeForHtml(i.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return t.applyLineGroupping(i).forEach((function(i){var o=i[0],s=i[1],l=i[2];if(s.length&&l.length&&!o.length)t.applyRematchMatching(s,l,n).map((function(n){var r=n[0],i=n[1],o=t.processChangedLines(e.isCombined,r,i),s=o.left,l=o.right;a+=s,a+=l}));else if(o.length)o.forEach((function(n){var r=c.deconstructLine(n.content,e.isCombined),i=r.prefix,o=r.content;a+=t.generateSingleLineHtml({type:c.CSSLineClass.CONTEXT,prefix:i,content:o,oldNumber:n.oldNumber,newNumber:n.newNumber})}));else if(s.length||l.length){var u=t.processChangedLines(e.isCombined,s,l),d=u.left,h=u.right;a+=d,a+=h}else r.error("Unknown state reached while processing groups of lines",o,s,l)})),a})).join("\n")},e.prototype.applyLineGroupping=function(e){for(var t=[],n=[],r=[],i=0;i<e.lines.length;i++){var a=e.lines[i];(a.type!==u.LineType.INSERT&&r.length||a.type===u.LineType.CONTEXT&&n.length>0)&&(t.push([[],n,r]),n=[],r=[]),a.type===u.LineType.CONTEXT?t.push([[a],[],[]]):a.type===u.LineType.INSERT&&0===n.length?t.push([[],[],[a]]):a.type===u.LineType.INSERT&&n.length>0?r.push(a):a.type===u.LineType.DELETE&&n.push(a)}return(n.length||r.length)&&(t.push([[],n,r]),n=[],r=[]),t},e.prototype.applyRematchMatching=function(e,t,n){var r=e.length*t.length,i=Math.max.apply(null,[0].concat(e.concat(t).map((function(e){return e.content.length})))),a=r<this.config.matchingMaxComparisons&&i<this.config.maxLineSizeInBlockForComparison&&("lines"===this.config.matching||"words"===this.config.matching);return a?n(e,t):[[e,t]]},e.prototype.processChangedLines=function(e,t,n){for(var r={right:"",left:""},a=Math.max(t.length,n.length),o=0;o<a;o++){var s=t[o],l=n[o],u=void 0!==s&&void 0!==l?c.diffHighlight(s.content,l.content,e,this.config):void 0,d=void 0!==s&&void 0!==s.oldNumber?i(i({},void 0!==u?{prefix:u.oldLine.prefix,content:u.oldLine.content,type:c.CSSLineClass.DELETE_CHANGES}:i(i({},c.deconstructLine(s.content,e)),{type:c.toCSSClass(s.type)})),{oldNumber:s.oldNumber,newNumber:s.newNumber}):void 0,h=void 0!==l&&void 0!==l.newNumber?i(i({},void 0!==u?{prefix:u.newLine.prefix,content:u.newLine.content,type:c.CSSLineClass.INSERT_CHANGES}:i(i({},c.deconstructLine(l.content,e)),{type:c.toCSSClass(l.type)})),{oldNumber:l.oldNumber,newNumber:l.newNumber}):void 0,p=this.generateLineHtml(d,h),f=p.left,m=p.right;r.left+=f,r.right+=m}return r},e.prototype.generateLineHtml=function(e,t){return{left:this.generateSingleLineHtml(e),right:this.generateSingleLineHtml(t)}},e.prototype.generateSingleLineHtml=function(e){if(void 0===e)return"";var t=this.hoganUtils.render(h,"numbers",{oldNumber:e.oldNumber||"",newNumber:e.newNumber||""});return this.hoganUtils.render(d,"line",{type:e.type,lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line",prefix:" "===e.prefix?" ":e.prefix,content:e.content,lineNumber:t})},e}();t["default"]=m},54166:function(e,t){"use strict";function n(e,t){if(0===e.length)return t.length;if(0===t.length)return e.length;var n,r,i=[];for(n=0;n<=t.length;n++)i[n]=[n];for(r=0;r<=e.length;r++)i[0][r]=r;for(n=1;n<=t.length;n++)for(r=1;r<=e.length;r++)t.charAt(n-1)===e.charAt(r-1)?i[n][r]=i[n-1][r-1]:i[n][r]=Math.min(i[n-1][r-1]+1,Math.min(i[n][r-1]+1,i[n-1][r]+1));return i[t.length][e.length]}function r(e){return function(t,r){var i=e(t).trim(),a=e(r).trim(),o=n(i,a);return o/(i.length+a.length)}}function i(e){function t(t,n,r){void 0===r&&(r=new Map);for(var i,a=1/0,o=0;o<t.length;++o)for(var s=0;s<n.length;++s){var l=JSON.stringify([t[o],n[s]]),c=void 0;r.has(l)&&(c=r.get(l))||(c=e(t[o],n[s]),r.set(l,c)),c<a&&(a=c,i={indexA:o,indexB:s,score:a})}return i}function n(e,r,i,a){void 0===i&&(i=0),void 0===a&&(a=new Map);var o=t(e,r,a);if(!o||e.length+r.length<3)return[[e,r]];var s=e.slice(0,o.indexA),l=r.slice(0,o.indexB),c=[e[o.indexA]],u=[r[o.indexB]],d=o.indexA+1,h=o.indexB+1,p=e.slice(d),f=r.slice(h),m=n(s,l,i+1,a),g=n(c,u,i+1,a),v=n(p,f,i+1,a),b=g;return(o.indexA>0||o.indexB>0)&&(b=m.concat(b)),(e.length>d||r.length>h)&&(b=b.concat(v)),b}return n}Object.defineProperty(t,"__esModule",{value:!0}),t.newMatcherFn=t.newDistanceFn=t.levenshtein=void 0,t.levenshtein=n,t.newDistanceFn=r,t.newMatcherFn=i},94762:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},r.apply(this,arguments)},i=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.diffHighlight=t.getFileIcon=t.getHtmlId=t.filenameDiff=t.deconstructLine=t.escapeForHtml=t.toCSSClass=t.defaultRenderConfig=t.CSSLineClass=void 0;var s=o(n(48063)),l=n(44869),c=o(n(54166)),u=n(51305);t.CSSLineClass={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info",INSERT_CHANGES:"d2h-ins d2h-change",DELETE_CHANGES:"d2h-del d2h-change"},t.defaultRenderConfig={matching:u.LineMatchingType.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:u.DiffStyleType.WORD};var d="/",h=c.newDistanceFn((function(e){return e.value})),p=c.newMatcherFn(h);function f(e){return-1!==e.indexOf("dev/null")}function m(e){return e.replace(/(<ins[^>]*>((.|\n)*?)<\/ins>)/g,"")}function g(e){return e.replace(/(<del[^>]*>((.|\n)*?)<\/del>)/g,"")}function v(e){switch(e){case u.LineType.CONTEXT:return t.CSSLineClass.CONTEXT;case u.LineType.INSERT:return t.CSSLineClass.INSERTS;case u.LineType.DELETE:return t.CSSLineClass.DELETES}}function b(e){return e?2:1}function y(e){return e.slice(0).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function w(e,t,n){void 0===n&&(n=!0);var r=b(t);return{prefix:e.substring(0,r),content:n?y(e.substring(r)):e.substring(r)}}function E(e){var t=(0,l.unifyPath)(e.oldName),n=(0,l.unifyPath)(e.newName);if(t===n||f(t)||f(n))return f(n)?t:n;var r=[],i=[],a=t.split(d),o=n.split(d),s=a.length,c=o.length,u=0,h=s-1,p=c-1;while(u<h&&u<p){if(a[u]!==o[u])break;r.push(o[u]),u+=1}while(h>u&&p>u){if(a[h]!==o[p])break;i.unshift(o[p]),h-=1,p-=1}var m=r.join(d),g=i.join(d),v=a.slice(u,h+1).join(d),b=o.slice(u,p+1).join(d);return m.length&&g.length?m+d+"{"+v+" → "+b+"}"+d+g:m.length?m+d+"{"+v+" → "+b+"}":g.length?"{"+v+" → "+b+"}"+d+g:t+" → "+n}function _(e){return"d2h-".concat((0,l.hashCode)(E(e)).toString().slice(-6))}function S(e){var t="file-changed";return e.isRename||e.isCopy?t="file-renamed":e.isNew?t="file-added":e.isDeleted?t="file-deleted":e.newName!==e.oldName&&(t="file-renamed"),t}function k(e,n,i,a){void 0===a&&(a={});var o=r(r({},t.defaultRenderConfig),a),l=o.matching,c=o.maxLineLengthHighlight,u=o.matchWordsThreshold,d=o.diffStyle,f=w(e,i,!1),v=w(n,i,!1);if(f.content.length>c||v.content.length>c)return{oldLine:{prefix:f.prefix,content:y(f.content)},newLine:{prefix:v.prefix,content:y(v.content)}};var b="char"===d?s.diffChars(f.content,v.content):s.diffWordsWithSpace(f.content,v.content),E=[];if("word"===d&&"words"===l){var _=b.filter((function(e){return e.removed})),S=b.filter((function(e){return e.added})),k=p(S,_);k.forEach((function(e){if(1===e[0].length&&1===e[1].length){var t=h(e[0][0],e[1][0]);t<u&&(E.push(e[0][0]),E.push(e[1][0]))}}))}var x=b.reduce((function(e,t){var n=t.added?"ins":t.removed?"del":null,r=E.indexOf(t)>-1?' class="d2h-change"':"",i=y(t.value);return null!==n?"".concat(e,"<").concat(n).concat(r,">").concat(i,"</").concat(n,">"):"".concat(e).concat(i)}),"");return{oldLine:{prefix:f.prefix,content:m(x)},newLine:{prefix:v.prefix,content:g(x)}}}t.toCSSClass=v,t.escapeForHtml=y,t.deconstructLine=w,t.filenameDiff=E,t.getHtmlId=_,t.getFileIcon=S,t.diffHighlight=k},39959:function(e,t,n){"use strict";var r=n(4364),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},i.apply(this,arguments)},a=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&a(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.defaultSideBySideRendererConfig=void 0;var l=s(n(54166)),c=s(n(94762)),u=n(51305);t.defaultSideBySideRendererConfig=i(i({},c.defaultRenderConfig),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200});var d="generic",h="side-by-side",p="icon",f="tag",m=function(){function e(e,n){void 0===n&&(n={}),this.hoganUtils=e,this.config=i(i({},t.defaultSideBySideRendererConfig),n)}return e.prototype.render=function(e){var t=this,n=e.map((function(e){var n;return n=e.blocks.length?t.generateFileHtml(e):t.generateEmptyDiff(),t.makeFileDiffHtml(e,n)})).join("\n");return this.hoganUtils.render(d,"wrapper",{content:n})},e.prototype.makeFileDiffHtml=function(e,t){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&0===e.blocks.length)return"";var n=this.hoganUtils.template(h,"file-diff"),r=this.hoganUtils.template(d,"file-path"),i=this.hoganUtils.template(p,"file"),a=this.hoganUtils.template(f,c.getFileIcon(e));return n.render({file:e,fileHtmlId:c.getHtmlId(e),diffs:t,filePath:r.render({fileDiffName:c.filenameDiff(e)},{fileIcon:i,fileTag:a})})},e.prototype.generateEmptyDiff=function(){return{right:"",left:this.hoganUtils.render(d,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:c.CSSLineClass})}},e.prototype.generateFileHtml=function(e){var t=this,n=l.newMatcherFn(l.newDistanceFn((function(t){return c.deconstructLine(t.content,e.isCombined).content})));return e.blocks.map((function(i){var a={left:t.makeHeaderHtml(i.header,e),right:t.makeHeaderHtml("")};return t.applyLineGroupping(i).forEach((function(i){var o=i[0],s=i[1],l=i[2];if(s.length&&l.length&&!o.length)t.applyRematchMatching(s,l,n).map((function(n){var r=n[0],i=n[1],o=t.processChangedLines(e.isCombined,r,i),s=o.left,l=o.right;a.left+=s,a.right+=l}));else if(o.length)o.forEach((function(n){var r=c.deconstructLine(n.content,e.isCombined),i=r.prefix,o=r.content,s=t.generateLineHtml({type:c.CSSLineClass.CONTEXT,prefix:i,content:o,number:n.oldNumber},{type:c.CSSLineClass.CONTEXT,prefix:i,content:o,number:n.newNumber}),l=s.left,u=s.right;a.left+=l,a.right+=u}));else if(s.length||l.length){var u=t.processChangedLines(e.isCombined,s,l),d=u.left,h=u.right;a.left+=d,a.right+=h}else r.error("Unknown state reached while processing groups of lines",o,s,l)})),a})).reduce((function(e,t){return{left:e.left+t.left,right:e.right+t.right}}),{left:"",right:""})},e.prototype.applyLineGroupping=function(e){for(var t=[],n=[],r=[],i=0;i<e.lines.length;i++){var a=e.lines[i];(a.type!==u.LineType.INSERT&&r.length||a.type===u.LineType.CONTEXT&&n.length>0)&&(t.push([[],n,r]),n=[],r=[]),a.type===u.LineType.CONTEXT?t.push([[a],[],[]]):a.type===u.LineType.INSERT&&0===n.length?t.push([[],[],[a]]):a.type===u.LineType.INSERT&&n.length>0?r.push(a):a.type===u.LineType.DELETE&&n.push(a)}return(n.length||r.length)&&(t.push([[],n,r]),n=[],r=[]),t},e.prototype.applyRematchMatching=function(e,t,n){var r=e.length*t.length,i=Math.max.apply(null,[0].concat(e.concat(t).map((function(e){return e.content.length})))),a=r<this.config.matchingMaxComparisons&&i<this.config.maxLineSizeInBlockForComparison&&("lines"===this.config.matching||"words"===this.config.matching);return a?n(e,t):[[e,t]]},e.prototype.makeHeaderHtml=function(e,t){return this.hoganUtils.render(d,"block-header",{CSSLineClass:c.CSSLineClass,blockHeader:(null===t||void 0===t?void 0:t.isTooBig)?e:c.escapeForHtml(e),lineClass:"d2h-code-side-linenumber",contentClass:"d2h-code-side-line"})},e.prototype.processChangedLines=function(e,t,n){for(var r={right:"",left:""},a=Math.max(t.length,n.length),o=0;o<a;o++){var s=t[o],l=n[o],u=void 0!==s&&void 0!==l?c.diffHighlight(s.content,l.content,e,this.config):void 0,d=void 0!==s&&void 0!==s.oldNumber?i(i({},void 0!==u?{prefix:u.oldLine.prefix,content:u.oldLine.content,type:c.CSSLineClass.DELETE_CHANGES}:i(i({},c.deconstructLine(s.content,e)),{type:c.toCSSClass(s.type)})),{number:s.oldNumber}):void 0,h=void 0!==l&&void 0!==l.newNumber?i(i({},void 0!==u?{prefix:u.newLine.prefix,content:u.newLine.content,type:c.CSSLineClass.INSERT_CHANGES}:i(i({},c.deconstructLine(l.content,e)),{type:c.toCSSClass(l.type)})),{number:l.newNumber}):void 0,p=this.generateLineHtml(d,h),f=p.left,m=p.right;r.left+=f,r.right+=m}return r},e.prototype.generateLineHtml=function(e,t){return{left:this.generateSingleHtml(e),right:this.generateSingleHtml(t)}},e.prototype.generateSingleHtml=function(e){var t="d2h-code-side-linenumber",n="d2h-code-side-line";return this.hoganUtils.render(d,"line",{type:(null===e||void 0===e?void 0:e.type)||"".concat(c.CSSLineClass.CONTEXT," d2h-emptyplaceholder"),lineClass:void 0!==e?t:"".concat(t," d2h-code-side-emptyplaceholder"),contentClass:void 0!==e?n:"".concat(n," d2h-code-side-emptyplaceholder"),prefix:" "===(null===e||void 0===e?void 0:e.prefix)?" ":null===e||void 0===e?void 0:e.prefix,content:null===e||void 0===e?void 0:e.content,lineNumber:null===e||void 0===e?void 0:e.number})},e}();t["default"]=m},51305:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DiffStyleType=t.LineMatchingType=t.OutputFormatType=t.LineType=void 0,function(e){e["INSERT"]="insert",e["DELETE"]="delete",e["CONTEXT"]="context"}(t.LineType||(t.LineType={})),t.OutputFormatType={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"},t.LineMatchingType={LINES:"lines",WORDS:"words",NONE:"none"},t.DiffStyleType={WORD:"word",CHAR:"char"}},33908:function(e,t,n){"use strict";var r=n(4364),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},i.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.Diff2HtmlUI=t.defaultDiff2HtmlUIConfig=void 0;var a=n(53126),o=n(9402);t.defaultDiff2HtmlUIConfig=i(i({},o.defaultDiff2HtmlConfig),{synchronisedScroll:!0,highlight:!0,fileListToggle:!0,fileListStartVisible:!1,highlightLanguages:new Map,smartSelection:!0,fileContentToggle:!0,stickyFileHeaders:!0});var s=function(){function e(e,n,r,a){void 0===r&&(r={}),this.hljs=null,this.currentSelectionColumnId=-1,this.config=i(i({},t.defaultDiff2HtmlUIConfig),r),this.diffHtml=void 0!==n?(0,o.html)(n,this.config):e.innerHTML,this.targetElement=e,void 0!==a&&(this.hljs=a)}return e.prototype.draw=function(){this.targetElement.innerHTML=this.diffHtml,this.config.synchronisedScroll&&this.synchronisedScroll(),this.config.highlight&&this.highlightCode(),this.config.fileListToggle&&this.fileListToggle(this.config.fileListStartVisible),this.config.fileContentToggle&&this.fileContentToggle(),this.config.stickyFileHeaders&&this.stickyFileHeaders()},e.prototype.synchronisedScroll=function(){this.targetElement.querySelectorAll(".d2h-file-wrapper").forEach((function(e){var t=Array().slice.call(e.querySelectorAll(".d2h-file-side-diff")),n=t[0],r=t[1];if(void 0!==n&&void 0!==r){var i=function(e){null!==e&&null!==e.target&&(e.target===n?(r.scrollTop=n.scrollTop,r.scrollLeft=n.scrollLeft):(n.scrollTop=r.scrollTop,n.scrollLeft=r.scrollLeft))};n.addEventListener("scroll",i),r.addEventListener("scroll",i)}}))},e.prototype.fileListToggle=function(e){var t=this.targetElement.querySelector(".d2h-show"),n=this.targetElement.querySelector(".d2h-hide"),r=this.targetElement.querySelector(".d2h-file-list");if(null!==t&&null!==n&&null!==r){var i=function(){t.style.display="none",n.style.display="inline",r.style.display="block"},a=function(){t.style.display="inline",n.style.display="none",r.style.display="none"};t.addEventListener("click",(function(){return i()})),n.addEventListener("click",(function(){return a()}));var o=this.getHashTag();"files-summary-show"===o?i():"files-summary-hide"===o?a():e?i():a()}},e.prototype.fileContentToggle=function(){this.targetElement.querySelectorAll(".d2h-file-collapse").forEach((function(e){e.style.display="flex";var t=function(t){var n,r=null===(n=e.closest(".d2h-file-wrapper"))||void 0===n?void 0:n.querySelector(t);null!==r&&void 0!==r&&(e.classList.toggle("d2h-selected"),r.classList.toggle("d2h-d-none"))},n=function(n){e!==n.target&&(t(".d2h-file-diff"),t(".d2h-files-diff"))};e.addEventListener("click",(function(e){return n(e)}))}))},e.prototype.highlightCode=function(){var e=this,t=this.hljs;if(null===t)throw new Error("Missing a `highlight.js` implementation. Please provide one when instantiating Diff2HtmlUI.");var n=this.targetElement.querySelectorAll(".d2h-file-wrapper");n.forEach((function(n){var r=n.getAttribute("data-lang");e.config.highlightLanguages instanceof Map||(e.config.highlightLanguages=new Map(Object.entries(e.config.highlightLanguages)));var i=r&&e.config.highlightLanguages.has(r)?e.config.highlightLanguages.get(r):r?(0,a.getLanguage)(r):"plaintext",o=n.querySelectorAll(".d2h-code-line-ctn");o.forEach((function(n){var r=n.textContent,o=n.parentNode;if(null!==r&&null!==o&&e.isElement(o)){var s=(0,a.closeTags)(t.highlight(r,{language:i,ignoreIllegals:!0})),l=(0,a.nodeStream)(n);if(l.length){var c=document.createElementNS("http://www.w3.org/1999/xhtml","div");c.innerHTML=s.value,s.value=(0,a.mergeStreams)(l,(0,a.nodeStream)(c),r)}n.classList.add("hljs"),s.language&&n.classList.add(s.language),n.innerHTML=s.value}}))}))},e.prototype.stickyFileHeaders=function(){this.targetElement.querySelectorAll(".d2h-file-header").forEach((function(e){e.classList.add("d2h-sticky-header")}))},e.prototype.smartSelection=function(){r.warn("Smart selection is now enabled by default with CSS. No need to call this method anymore.")},e.prototype.getHashTag=function(){var e=document.URL,t=e.indexOf("#"),n=null;return-1!==t&&(n=e.substr(t+1)),n},e.prototype.isElement=function(e){return null!==e&&void 0!==(null===e||void 0===e?void 0:e.classList)},e}();t.Diff2HtmlUI=s},34312:function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0}),t.defaultDiff2HtmlUIConfig=t.Diff2HtmlUI=void 0;var i=n(42418),a=n(33908);Object.defineProperty(t,"defaultDiff2HtmlUIConfig",{enumerable:!0,get:function(){return a.defaultDiff2HtmlUIConfig}});var o=function(e){function t(t,n,r){return void 0===r&&(r={}),e.call(this,t,n,r,i.hljs)||this}return r(t,e),t}(a.Diff2HtmlUI);t.Diff2HtmlUI=o},53126:function(e,t){"use strict";function n(e){return e.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">")}function r(e){return e.nodeName.toLowerCase()}function i(e){var t=[],n=function(e,i){for(var a=e.firstChild;a;a=a.nextSibling)3===a.nodeType&&null!==a.nodeValue?i+=a.nodeValue.length:1===a.nodeType&&(t.push({event:"start",offset:i,node:a}),i=n(a,i),r(a).match(/br|hr|img|input/)||t.push({event:"stop",offset:i,node:a}));return i};return n(e,0),t}function a(e,t,i){var a=0,o="",s=[];function l(e){return null!==e&&void 0!==(null===e||void 0===e?void 0:e.attributes)}function c(){return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t}function u(e){if(!l(e))throw new Error("Node is not an Element");o+="<".concat(r(e)," ").concat(Array().map.call(e.attributes,(function(e){return"".concat(e.nodeName,'="').concat(n(e.value).replace(/"/g,"""),'"')})).join(" "),">")}function d(e){o+="</"+r(e)+">"}function h(e){("start"===e.event?u:d)(e.node)}while(e.length||t.length){var p=c();if(o+=n(i.substring(a,p[0].offset)),a=p[0].offset,p===e){s.reverse().forEach(d);do{h(p.splice(0,1)[0]),p=c()}while(p===e&&p.length&&p[0].offset===a);s.reverse().forEach(u)}else"start"===p[0].event?s.push(p[0].node):s.pop(),h(p.splice(0,1)[0])}return o+n(i.substr(a))}function o(e){var t=new Array;return e.value=e.value.split("\n").map((function(e){var n=t.map((function(e){return'<span class="'.concat(e,'">')})).join(""),r=e.matchAll(/(<span class="(.*?)">|<\/span>)/g);Array.from(r).forEach((function(e){"</span>"===e[0]?t.shift():t.unshift(e[2])}));var i="</span>".repeat(t.length);return n+e+i})).join("\n"),e}Object.defineProperty(t,"__esModule",{value:!0}),t.getLanguage=t.closeTags=t.mergeStreams=t.nodeStream=void 0,t.nodeStream=i,t.mergeStreams=a,t.closeTags=o;var s={"1c":"1c",abnf:"abnf",accesslog:"accesslog",as:"actionscript",adb:"ada",ada:"ada",ads:"ada",angelscript:"angelscript",apache:"apache",applescript:"applescript",scpt:"applescript",arcade:"arcade",cpp:"cpp",hpp:"cpp",arduino:"arduino",ino:"arduino",armasm:"armasm",arm:"armasm",xml:"xml",html:"xml",xhtml:"xml",rss:"xml",atom:"xml",xjb:"xml",xsd:"xml",xsl:"xml",plist:"xml",svg:"xml",asciidoc:"asciidoc",adoc:"asciidoc",asc:"asciidoc",aspectj:"aspectj",ahk:"autohotkey",ahkl:"autohotkey",au3:"autoit",avrasm:"avrasm",awk:"awk",axapta:"axapta","x++":"axapta",bash:"bash",sh:"bash",zsh:"bash",b:"basic",bnf:"bnf",bf:"brainfuck",c:"c",h:"c",cats:"c",idc:"c",cal:"cal",capnproto:"capnproto",capnp:"capnproto",ceylon:"ceylon",clean:"clean",clj:"clojure",boot:"clojure",cl2:"clojure",cljc:"clojure",cljs:"clojure","cljs.hl":"clojure",cljscm:"clojure",cljx:"clojure",hic:"clojure","clojure-repl":"clojure-repl",cmake:"cmake","cmake.in":"cmake",coffee:"coffeescript",_coffee:"coffeescript",cake:"coffeescript",cjsx:"coffeescript",iced:"coffeescript",cson:"coffeescript",coq:"coq",cos:"cos",cls:"cos",crmsh:"crmsh",crm:"crmsh",pcmk:"crmsh",cr:"crystal",cs:"csharp",csx:"csharp",csp:"csp",css:"css",d:"d",di:"d",md:"markdown",markdown:"markdown",mdown:"markdown",mdwn:"markdown",mkd:"markdown",mkdn:"markdown",mkdown:"markdown",ronn:"markdown",workbook:"markdown",dart:"dart",dpr:"delphi",dfm:"delphi",pas:"delphi",pascal:"delphi",diff:"diff",patch:"diff",django:"django",jinja:"django",dns:"dns",zone:"dns",bind:"dns",dockerfile:"dockerfile",docker:"dockerfile",dos:"dos",bat:"dos",cmd:"dos",dsconfig:"dsconfig",dts:"dts",dust:"dust",dst:"dust",ebnf:"ebnf",ex:"elixir",exs:"elixir",elm:"elm",rb:"ruby",builder:"ruby",eye:"ruby",gemspec:"ruby",god:"ruby",jbuilder:"ruby",mspec:"ruby",pluginspec:"ruby",podspec:"ruby",rabl:"ruby",rake:"ruby",rbuild:"ruby",rbw:"ruby",rbx:"ruby",ru:"ruby",ruby:"ruby",spec:"ruby",thor:"ruby",watchr:"ruby",erb:"erb","erlang-repl":"erlang-repl",erl:"erlang","app.src":"erlang",escript:"erlang",hrl:"erlang",xrl:"erlang",yrl:"erlang",excel:"excel",xls:"excel",xlsx:"excel",fix:"fix",flix:"flix",f90:"fortran",f:"fortran",f03:"fortran",f08:"fortran",f77:"fortran",f95:"fortran",for:"fortran",fpp:"fortran",fs:"fsharp",fsx:"fsharp",gams:"gams",gms:"gams",gauss:"gauss",gss:"gauss",gcode:"gcode",nc:"gcode",gherkin:"gherkin",glsl:"glsl",fp:"glsl",frag:"glsl",frg:"glsl",fsh:"glsl",fshader:"glsl",geo:"glsl",geom:"glsl",glslv:"glsl",gshader:"glsl",shader:"glsl",tesc:"glsl",tese:"glsl",vert:"glsl",vrx:"glsl",vsh:"glsl",vshader:"glsl",gml:"gml",go:"go",bal:"go",golo:"golo",gololang:"golo",gradle:"gradle",groovy:"groovy",grt:"groovy",gtpl:"groovy",gvy:"groovy",haml:"haml","haml.deface":"haml",handlebars:"handlebars",hbs:"handlebars","html.hbs":"handlebars","html.handlebars":"handlebars",hs:"haskell",hsc:"haskell",idr:"haskell",purs:"haskell",hx:"haxe",hxsl:"haxe",hsp:"hsp",htmlbars:"htmlbars",http:"http",https:"http",hy:"hy",inform7:"inform7",i7:"inform7",ini:"ini",toml:"ini",cfg:"ini",prefs:"ini",irpf90:"irpf90",isbl:"isbl",java:"java",jsp:"java",js:"javascript",jsx:"javascript",_js:"javascript",bones:"javascript",es:"javascript",es6:"javascript",gs:"javascript",jake:"javascript",jsb:"javascript",jscad:"javascript",jsfl:"javascript",jsm:"javascript",jss:"javascript",mjs:"javascript",njs:"javascript",pac:"javascript",sjs:"javascript",ssjs:"javascript",xsjs:"javascript",xsjslib:"javascript",cfc:"javascript","jboss-cli":"jboss-cli",json:"json",avsc:"json",geojson:"json",gltf:"json","JSON-tmLanguage":"json",jsonl:"json",tfstate:"json","tfstate.backup":"json",topojson:"json",webapp:"json",webmanifest:"json",jl:"julia","julia-repl":"julia-repl",kt:"kotlin",ktm:"kotlin",kts:"kotlin",lasso:"lasso",lassoscript:"lasso",tex:"latex",ldif:"ldif",leaf:"leaf",less:"less",lisp:"lisp",factor:"lisp",livecodeserver:"livecodeserver",ls:"livescript",_ls:"livescript",llvm:"llvm",lsl:"lsl",lua:"lua",nse:"lua",p8:"lua",pd_lua:"lua",rbxs:"lua",wlua:"lua",mak:"makefile",make:"makefile",mk:"makefile",mkfile:"makefile",mathematica:"mathematica",mma:"mathematica",wl:"mathematica",matlab:"matlab",maxima:"maxima",mel:"mel",mercury:"mercury",mipsasm:"mipsasm",miz:"mizar",voc:"mizar",al:"perl",cgi:"perl",fcgi:"perl",perl:"perl",ph:"perl",plx:"perl",pl:"perl",pm:"perl",psgi:"perl",t:"perl",mojolicious:"mojolicious",monkey:"monkey",monkey2:"monkey",moonscript:"moonscript",moon:"moonscript",n1ql:"n1ql",nginxconf:"nginx",nim:"nim",nimrod:"nim",nix:"nix",nsi:"nsis",nsh:"nsis",m:"objectivec",objc:"objectivec",mm:"objectivec","obj-c":"objectivec","obj-c++":"objectivec","objective-c++":"objectivec",fun:"ocaml",sig:"ocaml",ml:"ocaml",mli:"ocaml",eliom:"ocaml",eliomi:"ocaml",ml4:"ocaml",mll:"ocaml",mly:"ocaml",openscad:"openscad",oxygene:"oxygene",parser3:"parser3",pf:"pf","pf.conf":"pf",pgsql:"pgsql",postgres:"pgsql",postgresql:"pgsql",php:"php",aw:"php",ctp:"php",inc:"php",php3:"php",php4:"php",php5:"php",phps:"php",phpt:"php","php-template":"php-template",plaintext:"plaintext",txt:"plaintext",text:"plaintext",pony:"pony",ps:"powershell",ps1:"powershell",psd1:"powershell",psm1:"powershell",pde:"processing",profile:"profile",pro:"prolog",prolog:"prolog",yap:"prolog",properties:"properties",proto:"protobuf",puppet:"puppet",pp:"puppet",purebasic:"purebasic",py:"python",bzl:"python",gyp:"python",gypi:"python",lmi:"python",py3:"python",pyde:"python",pyi:"python",pyp:"python",pyt:"python",pyw:"python",rpy:"python",tac:"python",wsgi:"python",xpy:"python","python-repl":"python-repl",pycon:"python-repl",q:"q",k:"q",kdb:"q",qml:"qml",r:"r",rd:"r",rsx:"r",reasonml:"reasonml",re:"reasonml",rib:"rib",roboconf:"roboconf",graph:"roboconf",instances:"roboconf",routeros:"routeros",rsl:"rsl",ruleslanguage:"ruleslanguage",rs:"rust","rs.in":"rust",sas:"sas",scala:"scala",kojo:"scala",sbt:"scala",sc:"scala",scm:"scheme",sch:"scheme",sld:"scheme",sls:"scheme",sps:"scheme",ss:"scheme",rkt:"scheme",scilab:"scilab",scss:"scss",shell:"shell",smali:"smali",st:"smalltalk",sml:"sml",sqf:"sqf",sql:"sql",cql:"sql",ddl:"sql",mysql:"sql",prc:"sql",tab:"sql",udf:"sql",viw:"sql",stan:"stan",stanfuncs:"stan",stata:"stata",step21:"step21",step:"step21",stp:"step21",styl:"stylus",subunit:"subunit",swift:"swift",taggerscript:"taggerscript",yml:"yaml",mir:"yaml",reek:"yaml",rviz:"yaml","sublime-syntax":"yaml",syntax:"yaml",yaml:"yaml","yaml-tmlanguage":"yaml","yml.mysql":"yaml",tap:"tap",tcl:"tcl",adp:"tcl",tm:"tcl",thrift:"thrift",tp:"tp",twig:"twig",craftcms:"twig",ts:"typescript",tsx:"typescript",vala:"vala",vbnet:"vbnet",vb:"vbnet",vbscript:"vbscript",vbs:"vbscript","vbscript-html":"vbscript-html",v:"verilog",veo:"verilog",vhdl:"vhdl",vhd:"vhdl",vhf:"vhdl",vhi:"vhdl",vho:"vhdl",vhs:"vhdl",vht:"vhdl",vhw:"vhdl",vim:"vim",x86asm:"x86asm",xl:"xl",xquery:"xquery",xpath:"xquery",xq:"xquery",zephir:"zephir",zep:"zephir"};function l(e){var t;return null!==(t=s[e])&&void 0!==t?t:"plaintext"}t.getLanguage=l},42418:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.hljs=void 0;var i=r(n(3973)),a=r(n(68049)),o=r(n(21869)),s=r(n(69205)),l=r(n(46760)),c=r(n(33089)),u=r(n(37620)),d=r(n(25326)),h=r(n(17025)),p=r(n(35678)),f=r(n(63355)),m=r(n(50687)),g=r(n(92835)),v=r(n(16361)),b=r(n(82476)),y=r(n(74809)),w=r(n(42892)),E=r(n(79386)),_=r(n(84441)),S=r(n(25236)),k=r(n(51468)),x=r(n(95541)),A=r(n(53528)),N=r(n(88842)),C=r(n(74192)),T=r(n(99682)),R=r(n(26418)),O=r(n(73113)),I=r(n(90020)),L=r(n(44063)),D=r(n(1075)),P=r(n(8090)),M=r(n(77190)),B=r(n(30374)),F=r(n(3315)),$=r(n(86072)),U=r(n(69318)),j=r(n(74071)),V=r(n(37592)),K=r(n(50619)),H=r(n(45107)),G=r(n(76015)),z=r(n(2061)),q=r(n(90944)),X=r(n(8368)),W=r(n(31914)),Y=r(n(74222)),Q=r(n(7846)),J=r(n(90984)),Z=r(n(72723)),ee=r(n(98005)),te=r(n(45745));i.default.registerLanguage("cpp",a.default),i.default.registerLanguage("xml",o.default),i.default.registerLanguage("awk",s.default),i.default.registerLanguage("bash",l.default),i.default.registerLanguage("c",c.default),i.default.registerLanguage("clojure",u.default),i.default.registerLanguage("crystal",d.default),i.default.registerLanguage("csharp",h.default),i.default.registerLanguage("csp",p.default),i.default.registerLanguage("css",f.default),i.default.registerLanguage("markdown",m.default),i.default.registerLanguage("dart",g.default),i.default.registerLanguage("diff",v.default),i.default.registerLanguage("dockerfile",b.default),i.default.registerLanguage("elixir",y.default),i.default.registerLanguage("elm",w.default),i.default.registerLanguage("ruby",E.default),i.default.registerLanguage("erlang",_.default),i.default.registerLanguage("fsharp",S.default),i.default.registerLanguage("go",k.default),i.default.registerLanguage("gradle",x.default),i.default.registerLanguage("groovy",A.default),i.default.registerLanguage("handlebars",N.default),i.default.registerLanguage("haskell",C.default),i.default.registerLanguage("ini",T.default),i.default.registerLanguage("java",R.default),i.default.registerLanguage("javascript",O.default),i.default.registerLanguage("json",I.default),i.default.registerLanguage("kotlin",L.default),i.default.registerLanguage("less",D.default),i.default.registerLanguage("lisp",P.default),i.default.registerLanguage("lua",M.default),i.default.registerLanguage("makefile",B.default),i.default.registerLanguage("perl",F.default),i.default.registerLanguage("nginx",$.default),i.default.registerLanguage("objectivec",U.default),i.default.registerLanguage("pgsql",j.default),i.default.registerLanguage("php",V.default),i.default.registerLanguage("plaintext",K.default),i.default.registerLanguage("powershell",H.default),i.default.registerLanguage("properties",G.default),i.default.registerLanguage("protobuf",z.default),i.default.registerLanguage("python",q.default),i.default.registerLanguage("rust",X.default),i.default.registerLanguage("scala",W.default),i.default.registerLanguage("scss",Y.default),i.default.registerLanguage("shell",Q.default),i.default.registerLanguage("sql",J.default),i.default.registerLanguage("swift",Z.default),i.default.registerLanguage("yaml",ee.default),i.default.registerLanguage("typescript",te.default),t.hljs=i.default},44869:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hashCode=t.unifyPath=t.escapeForRegExp=void 0;var n=["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"],r=RegExp("["+n.join("\\")+"]","g");function i(e){return e.replace(r,"\\$&")}function a(e){return e?e.replace(/\\/g,"/"):e}function o(e){var t,n,r,i=0;for(t=0,r=e.length;t<r;t++)n=e.charCodeAt(t),i=(i<<5)-i+n,i|=0;return i}t.escapeForRegExp=i,t.unifyPath=a,t.hashCode=o},26990:function(e,t){"use strict";function n(e){for(var t,n,r=[],i=0;i<e.length;i++)t=e[i],n=t.added?1:t.removed?-1:0,r.push([n,t.value]);return r}Object.defineProperty(t,"__esModule",{value:!0}),t.convertChangesToDMP=n},69438:function(e,t){"use strict";function n(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];i.added?t.push("<ins>"):i.removed&&t.push("<del>"),t.push(r(i.value)),i.added?t.push("</ins>"):i.removed&&t.push("</del>")}return t.join("")}function r(e){var t=e;return t=t.replace(/&/g,"&"),t=t.replace(/</g,"<"),t=t.replace(/>/g,">"),t=t.replace(/"/g,"""),t}Object.defineProperty(t,"__esModule",{value:!0}),t.convertChangesToXML=n},49906:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diffArrays=o,t.arrayDiff=void 0;var r=i(n(22458));function i(e){return e&&e.__esModule?e:{default:e}}var a=new r["default"];function o(e,t,n){return a.diff(e,t,n)}t.arrayDiff=a,a.tokenize=function(e){return e.slice()},a.join=a.removeEmpty=function(e){return e}},22458:function(e,t){"use strict";function n(){}function r(e,t,n,r,i){for(var a=0,o=t.length,s=0,l=0;a<o;a++){var c=t[a];if(c.removed){if(c.value=e.join(r.slice(l,l+c.count)),l+=c.count,a&&t[a-1].added){var u=t[a-1];t[a-1]=t[a],t[a]=u}}else{if(!c.added&&i){var d=n.slice(s,s+c.count);d=d.map((function(e,t){var n=r[l+t];return n.length>e.length?n:e})),c.value=e.join(d)}else c.value=e.join(n.slice(s,s+c.count));s+=c.count,c.added||(l+=c.count)}}var h=t[o-1];return o>1&&"string"===typeof h.value&&(h.added||h.removed)&&e.equals("",h.value)&&(t[o-2].value+=h.value,t.pop()),t}function i(e){return{newPos:e.newPos,components:e.components.slice(0)}}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n,n.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.callback;"function"===typeof n&&(a=n,n={}),this.options=n;var o=this;function s(e){return a?(setTimeout((function(){a(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var l=t.length,c=e.length,u=1,d=l+c;n.maxEditLength&&(d=Math.min(d,n.maxEditLength));var h=[{newPos:-1,components:[]}],p=this.extractCommon(h[0],t,e,0);if(h[0].newPos+1>=l&&p+1>=c)return s([{value:this.join(t),count:t.length}]);function f(){for(var n=-1*u;n<=u;n+=2){var a=void 0,d=h[n-1],p=h[n+1],f=(p?p.newPos:0)-n;d&&(h[n-1]=void 0);var m=d&&d.newPos+1<l,g=p&&0<=f&&f<c;if(m||g){if(!m||g&&d.newPos<p.newPos?(a=i(p),o.pushComponent(a.components,void 0,!0)):(a=d,a.newPos++,o.pushComponent(a.components,!0,void 0)),f=o.extractCommon(a,t,e,n),a.newPos+1>=l&&f+1>=c)return s(r(o,a.components,t,e,o.useLongestToken));h[n]=a}else h[n]=void 0}u++}if(a)(function e(){setTimeout((function(){if(u>d)return a();f()||e()}),0)})();else while(u<=d){var m=f();if(m)return m}},pushComponent:function(e,t,n){var r=e[e.length-1];r&&r.added===t&&r.removed===n?e[e.length-1]={count:r.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,r){var i=t.length,a=n.length,o=e.newPos,s=o-r,l=0;while(o+1<i&&s+1<a&&this.equals(t[o+1],n[s+1]))o++,s++,l++;return l&&e.components.push({count:l}),e.newPos=o,s},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}}},14960:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diffChars=o,t.characterDiff=void 0;var r=i(n(22458));function i(e){return e&&e.__esModule?e:{default:e}}var a=new r["default"];function o(e,t,n){return a.diff(e,t,n)}t.characterDiff=a},91224:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diffCss=o,t.cssDiff=void 0;var r=i(n(22458));function i(e){return e&&e.__esModule?e:{default:e}}var a=new r["default"];function o(e,t,n){return a.diff(e,t,n)}t.cssDiff=a,a.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)}},69593:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diffJson=c,t.canonicalize=u,t.jsonDiff=void 0;var r=a(n(22458)),i=n(91617);function a(e){return e&&e.__esModule?e:{default:e}}function o(e){return o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var s=Object.prototype.toString,l=new r["default"];function c(e,t,n){return l.diff(e,t,n)}function u(e,t,n,r,i){var a,l;for(t=t||[],n=n||[],r&&(e=r(i,e)),a=0;a<t.length;a+=1)if(t[a]===e)return n[a];if("[object Array]"===s.call(e)){for(t.push(e),l=new Array(e.length),n.push(l),a=0;a<e.length;a+=1)l[a]=u(e[a],t,n,r,i);return t.pop(),n.pop(),l}if(e&&e.toJSON&&(e=e.toJSON()),"object"===o(e)&&null!==e){t.push(e),l={},n.push(l);var c,d=[];for(c in e)e.hasOwnProperty(c)&&d.push(c);for(d.sort(),a=0;a<d.length;a+=1)c=d[a],l[c]=u(e[c],t,n,r,c);t.pop(),n.pop()}else l=e;return l}t.jsonDiff=l,l.useLongestToken=!0,l.tokenize=i.lineDiff.tokenize,l.castInput=function(e){var t=this.options,n=t.undefinedReplacement,r=t.stringifyReplacer,i=void 0===r?function(e,t){return"undefined"===typeof t?n:t}:r;return"string"===typeof e?e:JSON.stringify(u(e,null,null,i),i," ")},l.equals=function(e,t){return r["default"].prototype.equals.call(l,e.replace(/,([\r\n])/g,"$1"),t.replace(/,([\r\n])/g,"$1"))}},91617:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diffLines=s,t.diffTrimmedLines=l,t.lineDiff=void 0;var r=a(n(22458)),i=n(85928);function a(e){return e&&e.__esModule?e:{default:e}}var o=new r["default"];function s(e,t,n){return o.diff(e,t,n)}function l(e,t,n){var r=(0,i.generateOptions)(n,{ignoreWhitespace:!0});return o.diff(e,t,r)}t.lineDiff=o,o.tokenize=function(e){var t=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var r=0;r<n.length;r++){var i=n[r];r%2&&!this.options.newlineIsToken?t[t.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),t.push(i))}return t}},82402:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diffSentences=o,t.sentenceDiff=void 0;var r=i(n(22458));function i(e){return e&&e.__esModule?e:{default:e}}var a=new r["default"];function o(e,t,n){return a.diff(e,t,n)}t.sentenceDiff=a,a.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)}},59843:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diffWords=c,t.diffWordsWithSpace=u,t.wordDiff=void 0;var r=a(n(22458)),i=n(85928);function a(e){return e&&e.__esModule?e:{default:e}}var o=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,s=/\S/,l=new r["default"];function c(e,t,n){return n=(0,i.generateOptions)(n,{ignoreWhitespace:!0}),l.diff(e,t,n)}function u(e,t,n){return l.diff(e,t,n)}t.wordDiff=l,l.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!s.test(e)&&!s.test(t)},l.tokenize=function(e){for(var t=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),n=0;n<t.length-1;n++)!t[n+1]&&t[n+2]&&o.test(t[n])&&o.test(t[n+2])&&(t[n]+=t[n+2],t.splice(n+1,2),n--);return t}},48063:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Diff",{enumerable:!0,get:function(){return r["default"]}}),Object.defineProperty(t,"diffChars",{enumerable:!0,get:function(){return i.diffChars}}),Object.defineProperty(t,"diffWords",{enumerable:!0,get:function(){return a.diffWords}}),Object.defineProperty(t,"diffWordsWithSpace",{enumerable:!0,get:function(){return a.diffWordsWithSpace}}),Object.defineProperty(t,"diffLines",{enumerable:!0,get:function(){return o.diffLines}}),Object.defineProperty(t,"diffTrimmedLines",{enumerable:!0,get:function(){return o.diffTrimmedLines}}),Object.defineProperty(t,"diffSentences",{enumerable:!0,get:function(){return s.diffSentences}}),Object.defineProperty(t,"diffCss",{enumerable:!0,get:function(){return l.diffCss}}),Object.defineProperty(t,"diffJson",{enumerable:!0,get:function(){return c.diffJson}}),Object.defineProperty(t,"canonicalize",{enumerable:!0,get:function(){return c.canonicalize}}),Object.defineProperty(t,"diffArrays",{enumerable:!0,get:function(){return u.diffArrays}}),Object.defineProperty(t,"applyPatch",{enumerable:!0,get:function(){return d.applyPatch}}),Object.defineProperty(t,"applyPatches",{enumerable:!0,get:function(){return d.applyPatches}}),Object.defineProperty(t,"parsePatch",{enumerable:!0,get:function(){return h.parsePatch}}),Object.defineProperty(t,"merge",{enumerable:!0,get:function(){return p.merge}}),Object.defineProperty(t,"structuredPatch",{enumerable:!0,get:function(){return f.structuredPatch}}),Object.defineProperty(t,"createTwoFilesPatch",{enumerable:!0,get:function(){return f.createTwoFilesPatch}}),Object.defineProperty(t,"createPatch",{enumerable:!0,get:function(){return f.createPatch}}),Object.defineProperty(t,"convertChangesToDMP",{enumerable:!0,get:function(){return m.convertChangesToDMP}}),Object.defineProperty(t,"convertChangesToXML",{enumerable:!0,get:function(){return g.convertChangesToXML}});var r=v(n(22458)),i=n(14960),a=n(59843),o=n(91617),s=n(82402),l=n(91224),c=n(69593),u=n(49906),d=n(55474),h=n(7709),p=n(26694),f=n(37668),m=n(26990),g=n(69438);function v(e){return e&&e.__esModule?e:{default:e}}},55474:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.applyPatch=o,t.applyPatches=s;var r=n(7709),i=a(n(55772));function a(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof t&&(t=(0,r.parsePatch)(t)),Array.isArray(t)){if(t.length>1)throw new Error("applyPatch only works with a single input.");t=t[0]}var a,o,s=e.split(/\r\n|[\n\v\f\r\x85]/),l=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],c=t.hunks,u=n.compareLine||function(e,t,n,r){return t===r},d=0,h=n.fuzzFactor||0,p=0,f=0;function m(e,t){for(var n=0;n<e.lines.length;n++){var r=e.lines[n],i=r.length>0?r[0]:" ",a=r.length>0?r.substr(1):r;if(" "===i||"-"===i){if(!u(t+1,s[t],i,a)&&(d++,d>h))return!1;t++}}return!0}for(var g=0;g<c.length;g++){for(var v=c[g],b=s.length-v.oldLines,y=0,w=f+v.oldStart-1,E=(0,i["default"])(w,p,b);void 0!==y;y=E())if(m(v,w+y)){v.offset=f+=y;break}if(void 0===y)return!1;p=v.offset+v.oldStart+v.oldLines}for(var _=0,S=0;S<c.length;S++){var k=c[S],x=k.oldStart+k.offset+_-1;_+=k.newLines-k.oldLines;for(var A=0;A<k.lines.length;A++){var N=k.lines[A],C=N.length>0?N[0]:" ",T=N.length>0?N.substr(1):N,R=k.linedelimiters[A];if(" "===C)x++;else if("-"===C)s.splice(x,1),l.splice(x,1);else if("+"===C)s.splice(x,0,T),l.splice(x,0,R),x++;else if("\\"===C){var O=k.lines[A-1]?k.lines[A-1][0]:null;"+"===O?a=!0:"-"===O&&(o=!0)}}}if(a)while(!s[s.length-1])s.pop(),l.pop();else o&&(s.push(""),l.push("\n"));for(var I=0;I<s.length-1;I++)s[I]=s[I]+l[I];return s.join("")}function s(e,t){"string"===typeof e&&(e=(0,r.parsePatch)(e));var n=0;function i(){var r=e[n++];if(!r)return t.complete();t.loadFile(r,(function(e,n){if(e)return t.complete(e);var a=o(n,r,t);t.patched(r,a,(function(e){if(e)return t.complete(e);i()}))}))}i()}},37668:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.structuredPatch=u,t.formatPatch=d,t.createTwoFilesPatch=h,t.createPatch=p;var r=n(91617);function i(e){return l(e)||s(e)||o(e)||a()}function a(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(e,t){if(e){if("string"===typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function s(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function l(e){if(Array.isArray(e))return c(e)}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t,n,a,o,s,l){l||(l={}),"undefined"===typeof l.context&&(l.context=4);var c=(0,r.diffLines)(n,a,l);if(c){c.push({value:"",lines:[]});for(var u=[],d=0,h=0,p=[],f=1,m=1,g=function(e){var t=c[e],r=t.lines||t.value.replace(/\n$/,"").split("\n");if(t.lines=r,t.added||t.removed){var o;if(!d){var s=c[e-1];d=f,h=m,s&&(p=l.context>0?b(s.lines.slice(-l.context)):[],d-=p.length,h-=p.length)}(o=p).push.apply(o,i(r.map((function(e){return(t.added?"+":"-")+e})))),t.added?m+=r.length:f+=r.length}else{if(d)if(r.length<=2*l.context&&e<c.length-2){var g;(g=p).push.apply(g,i(b(r)))}else{var v,y=Math.min(r.length,l.context);(v=p).push.apply(v,i(b(r.slice(0,y))));var w={oldStart:d,oldLines:f-d+y,newStart:h,newLines:m-h+y,lines:p};if(e>=c.length-2&&r.length<=l.context){var E=/\n$/.test(n),_=/\n$/.test(a),S=0==r.length&&p.length>w.oldLines;!E&&S&&n.length>0&&p.splice(w.oldLines,0,"\\ No newline at end of file"),(E||S)&&_||p.push("\\ No newline at end of file")}u.push(w),d=0,h=0,p=[]}f+=r.length,m+=r.length}},v=0;v<c.length;v++)g(v);return{oldFileName:e,newFileName:t,oldHeader:o,newHeader:s,hunks:u}}function b(e){return e.map((function(e){return" "+e}))}}function d(e){var t=[];e.oldFileName==e.newFileName&&t.push("Index: "+e.oldFileName),t.push("==================================================================="),t.push("--- "+e.oldFileName+("undefined"===typeof e.oldHeader?"":"\t"+e.oldHeader)),t.push("+++ "+e.newFileName+("undefined"===typeof e.newHeader?"":"\t"+e.newHeader));for(var n=0;n<e.hunks.length;n++){var r=e.hunks[n];0===r.oldLines&&(r.oldStart-=1),0===r.newLines&&(r.newStart-=1),t.push("@@ -"+r.oldStart+","+r.oldLines+" +"+r.newStart+","+r.newLines+" @@"),t.push.apply(t,r.lines)}return t.join("\n")+"\n"}function h(e,t,n,r,i,a,o){return d(u(e,t,n,r,i,a,o))}function p(e,t,n,r,i,a){return h(e,e,t,n,r,i,a)}},26694:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calcLineCount=h,t.merge=p;var r=n(37668),i=n(7709),a=n(73361);function o(e){return u(e)||c(e)||l(e)||s()}function s(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(e,t){if(e){if("string"===typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function c(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function u(e){if(Array.isArray(e))return d(e)}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function h(e){var t=T(e.lines),n=t.oldLines,r=t.newLines;void 0!==n?e.oldLines=n:delete e.oldLines,void 0!==r?e.newLines=r:delete e.newLines}function p(e,t,n){e=f(e,n),t=f(t,n);var r={};(e.index||t.index)&&(r.index=e.index||t.index),(e.newFileName||t.newFileName)&&(m(e)?m(t)?(r.oldFileName=g(r,e.oldFileName,t.oldFileName),r.newFileName=g(r,e.newFileName,t.newFileName),r.oldHeader=g(r,e.oldHeader,t.oldHeader),r.newHeader=g(r,e.newHeader,t.newHeader)):(r.oldFileName=e.oldFileName,r.newFileName=e.newFileName,r.oldHeader=e.oldHeader,r.newHeader=e.newHeader):(r.oldFileName=t.oldFileName||e.oldFileName,r.newFileName=t.newFileName||e.newFileName,r.oldHeader=t.oldHeader||e.oldHeader,r.newHeader=t.newHeader||e.newHeader)),r.hunks=[];var i=0,a=0,o=0,s=0;while(i<e.hunks.length||a<t.hunks.length){var l=e.hunks[i]||{oldStart:1/0},c=t.hunks[a]||{oldStart:1/0};if(v(l,c))r.hunks.push(b(l,o)),i++,s+=l.newLines-l.oldLines;else if(v(c,l))r.hunks.push(b(c,s)),a++,o+=c.newLines-c.oldLines;else{var u={oldStart:Math.min(l.oldStart,c.oldStart),oldLines:0,newStart:Math.min(l.newStart+o,c.oldStart+s),newLines:0,lines:[]};y(u,l.oldStart,l.lines,c.oldStart,c.lines),a++,i++,r.hunks.push(u)}}return r}function f(e,t){if("string"===typeof e){if(/^@@/m.test(e)||/^Index:/m.test(e))return(0,i.parsePatch)(e)[0];if(!t)throw new Error("Must provide a base reference or pass in a patch");return(0,r.structuredPatch)(void 0,void 0,t,e)}return e}function m(e){return e.newFileName&&e.newFileName!==e.oldFileName}function g(e,t,n){return t===n?t:(e.conflict=!0,{mine:t,theirs:n})}function v(e,t){return e.oldStart<t.oldStart&&e.oldStart+e.oldLines<t.oldStart}function b(e,t){return{oldStart:e.oldStart,oldLines:e.oldLines,newStart:e.newStart+t,newLines:e.newLines,lines:e.lines}}function y(e,t,n,r,i){var a={offset:t,lines:n,index:0},s={offset:r,lines:i,index:0};S(e,a,s),S(e,s,a);while(a.index<a.lines.length&&s.index<s.lines.length){var l=a.lines[a.index],c=s.lines[s.index];if("-"!==l[0]&&"+"!==l[0]||"-"!==c[0]&&"+"!==c[0])if("+"===l[0]&&" "===c[0]){var u;(u=e.lines).push.apply(u,o(x(a)))}else if("+"===c[0]&&" "===l[0]){var d;(d=e.lines).push.apply(d,o(x(s)))}else"-"===l[0]&&" "===c[0]?E(e,a,s):"-"===c[0]&&" "===l[0]?E(e,s,a,!0):l===c?(e.lines.push(l),a.index++,s.index++):_(e,x(a),x(s));else w(e,a,s)}k(e,a),k(e,s),h(e)}function w(e,t,n){var r=x(t),i=x(n);if(N(r)&&N(i)){var s,l;if((0,a.arrayStartsWith)(r,i)&&C(n,r,r.length-i.length))return void(s=e.lines).push.apply(s,o(r));if((0,a.arrayStartsWith)(i,r)&&C(t,i,i.length-r.length))return void(l=e.lines).push.apply(l,o(i))}else if((0,a.arrayEqual)(r,i)){var c;return void(c=e.lines).push.apply(c,o(r))}_(e,r,i)}function E(e,t,n,r){var i,a=x(t),s=A(n,a);s.merged?(i=e.lines).push.apply(i,o(s.merged)):_(e,r?s:a,r?a:s)}function _(e,t,n){e.conflict=!0,e.lines.push({conflict:!0,mine:t,theirs:n})}function S(e,t,n){while(t.offset<n.offset&&t.index<t.lines.length){var r=t.lines[t.index++];e.lines.push(r),t.offset++}}function k(e,t){while(t.index<t.lines.length){var n=t.lines[t.index++];e.lines.push(n)}}function x(e){var t=[],n=e.lines[e.index][0];while(e.index<e.lines.length){var r=e.lines[e.index];if("-"===n&&"+"===r[0]&&(n="+"),n!==r[0])break;t.push(r),e.index++}return t}function A(e,t){var n=[],r=[],i=0,a=!1,o=!1;while(i<t.length&&e.index<e.lines.length){var s=e.lines[e.index],l=t[i];if("+"===l[0])break;if(a=a||" "!==s[0],r.push(l),i++,"+"===s[0]){o=!0;while("+"===s[0])n.push(s),s=e.lines[++e.index]}l.substr(1)===s.substr(1)?(n.push(s),e.index++):o=!0}if("+"===(t[i]||"")[0]&&a&&(o=!0),o)return n;while(i<t.length)r.push(t[i++]);return{merged:r,changes:n}}function N(e){return e.reduce((function(e,t){return e&&"-"===t[0]}),!0)}function C(e,t,n){for(var r=0;r<n;r++){var i=t[t.length-n+r].substr(1);if(e.lines[e.index+r]!==" "+i)return!1}return e.index+=n,!0}function T(e){var t=0,n=0;return e.forEach((function(e){if("string"!==typeof e){var r=T(e.mine),i=T(e.theirs);void 0!==t&&(r.oldLines===i.oldLines?t+=r.oldLines:t=void 0),void 0!==n&&(r.newLines===i.newLines?n+=r.newLines:n=void 0)}else void 0===n||"+"!==e[0]&&" "!==e[0]||n++,void 0===t||"-"!==e[0]&&" "!==e[0]||t++})),{oldLines:t,newLines:n}}},7709:function(e,t){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.split(/\r\n|[\n\v\f\r\x85]/),r=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],i=[],a=0;function o(){var e={};i.push(e);while(a<n.length){var r=n[a];if(/^(\-\-\-|\+\+\+|@@)\s/.test(r))break;var o=/^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(r);o&&(e.index=o[1]),a++}s(e),s(e),e.hunks=[];while(a<n.length){var c=n[a];if(/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(c))break;if(/^@@/.test(c))e.hunks.push(l());else{if(c&&t.strict)throw new Error("Unknown line "+(a+1)+" "+JSON.stringify(c));a++}}}function s(e){var t=/^(---|\+\+\+)\s+(.*)$/.exec(n[a]);if(t){var r="---"===t[1]?"old":"new",i=t[2].split("\t",2),o=i[0].replace(/\\\\/g,"\\");/^".*"$/.test(o)&&(o=o.substr(1,o.length-2)),e[r+"FileName"]=o,e[r+"Header"]=(i[1]||"").trim(),a++}}function l(){var e=a,i=n[a++],o=i.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/),s={oldStart:+o[1],oldLines:"undefined"===typeof o[2]?1:+o[2],newStart:+o[3],newLines:"undefined"===typeof o[4]?1:+o[4],lines:[],linedelimiters:[]};0===s.oldLines&&(s.oldStart+=1),0===s.newLines&&(s.newStart+=1);for(var l=0,c=0;a<n.length;a++){if(0===n[a].indexOf("--- ")&&a+2<n.length&&0===n[a+1].indexOf("+++ ")&&0===n[a+2].indexOf("@@"))break;var u=0==n[a].length&&a!=n.length-1?" ":n[a][0];if("+"!==u&&"-"!==u&&" "!==u&&"\\"!==u)break;s.lines.push(n[a]),s.linedelimiters.push(r[a]||"\n"),"+"===u?l++:"-"===u?c++:" "===u&&(l++,c++)}if(l||1!==s.newLines||(s.newLines=0),c||1!==s.oldLines||(s.oldLines=0),t.strict){if(l!==s.newLines)throw new Error("Added line count did not match for hunk at line "+(e+1));if(c!==s.oldLines)throw new Error("Removed line count did not match for hunk at line "+(e+1))}return s}while(a<n.length)o();return i}Object.defineProperty(t,"__esModule",{value:!0}),t.parsePatch=n},73361:function(e,t){"use strict";function n(e,t){return e.length===t.length&&r(e,t)}function r(e,t){if(t.length>e.length)return!1;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}Object.defineProperty(t,"__esModule",{value:!0}),t.arrayEqual=n,t.arrayStartsWith=r},55772:function(e,t){"use strict";function n(e,t,n){var r=!0,i=!1,a=!1,o=1;return function s(){if(r&&!a){if(i?o++:r=!1,e+o<=n)return o;a=!0}if(!i)return a||(r=!0),t<=e-o?-o++:(i=!0,s())}}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n},85928:function(e,t){"use strict";function n(e,t){if("function"===typeof e)t.callback=e;else if(e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}Object.defineProperty(t,"__esModule",{value:!0}),t.generateOptions=n},71651:function(e,t,n){var r=n(4364); +/*! @license DOMPurify 2.5.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.4/LICENSE */(function(t,n){e.exports=n()})(0,(function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,n){return t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(e,n)}function n(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function i(e,r,a){return i=n()?Reflect.construct:function(e,n,r){var i=[null];i.push.apply(i,n);var a=Function.bind.apply(e,i),o=new a;return r&&t(o,r.prototype),o},i.apply(null,arguments)}function a(e){return o(e)||s(e)||l(e)||u()}function o(e){if(Array.isArray(e))return c(e)}function s(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function l(e,t){if(e){if("string"===typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function u(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var d=Object.hasOwnProperty,h=Object.setPrototypeOf,p=Object.isFrozen,f=Object.getPrototypeOf,m=Object.getOwnPropertyDescriptor,g=Object.freeze,v=Object.seal,b=Object.create,y="undefined"!==typeof Reflect&&Reflect,w=y.apply,E=y.construct;w||(w=function(e,t,n){return e.apply(t,n)}),g||(g=function(e){return e}),v||(v=function(e){return e}),E||(E=function(e,t){return i(e,a(t))});var _=D(Array.prototype.forEach),S=D(Array.prototype.pop),k=D(Array.prototype.push),x=D(String.prototype.toLowerCase),A=D(String.prototype.toString),N=D(String.prototype.match),C=D(String.prototype.replace),T=D(String.prototype.indexOf),R=D(String.prototype.trim),O=D(RegExp.prototype.test),I=P(TypeError);function L(e){return"number"===typeof e&&isNaN(e)}function D(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return w(e,t,r)}}function P(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return E(e,n)}}function M(e,t,n){var r;n=null!==(r=n)&&void 0!==r?r:x,h&&h(e,null);var i=t.length;while(i--){var a=t[i];if("string"===typeof a){var o=n(a);o!==a&&(p(t)||(t[i]=o),a=o)}e[a]=!0}return e}function B(e){var t,n=b(null);for(t in e)!0===w(d,e,[t])&&(n[t]=e[t]);return n}function F(e,t){while(null!==e){var n=m(e,t);if(n){if(n.get)return D(n.get);if("function"===typeof n.value)return D(n.value)}e=f(e)}function i(e){return r.warn("fallback value for",e),null}return i}var $=g(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),U=g(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),j=g(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),V=g(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),K=g(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),H=g(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),G=g(["#text"]),z=g(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),q=g(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),X=g(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),W=g(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Y=v(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Q=v(/<%[\w\W]*|[\w\W]*%>/gm),J=v(/\${[\w\W]*}/gm),Z=v(/^data-[\-\w.\u00B7-\uFFFF]/),ee=v(/^aria-[\-\w]+$/),te=v(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ne=v(/^(?:\w+script|data):/i),re=v(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ie=v(/^html$/i),ae=v(/^[a-z][.\w]*(-[.\w]+)+$/i),oe=function(){return"undefined"===typeof window?null:window},se=function(t,n){if("object"!==e(t)||"function"!==typeof t.createPolicy)return null;var i=null,a="data-tt-policy-suffix";n.currentScript&&n.currentScript.hasAttribute(a)&&(i=n.currentScript.getAttribute(a));var o="dompurify"+(i?"#"+i:"");try{return t.createPolicy(o,{createHTML:function(e){return e},createScriptURL:function(e){return e}})}catch(s){return r.warn("TrustedTypes policy "+o+" could not be created."),null}};function le(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:oe(),n=function(e){return le(e)};if(n.version="2.5.4",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var r=t.document,i=t.document,o=t.DocumentFragment,s=t.HTMLTemplateElement,l=t.Node,c=t.Element,u=t.NodeFilter,d=t.NamedNodeMap,h=void 0===d?t.NamedNodeMap||t.MozNamedAttrMap:d,p=t.HTMLFormElement,f=t.DOMParser,m=t.trustedTypes,v=c.prototype,b=F(v,"cloneNode"),y=F(v,"nextSibling"),w=F(v,"childNodes"),E=F(v,"parentNode");if("function"===typeof s){var D=i.createElement("template");D.content&&D.content.ownerDocument&&(i=D.content.ownerDocument)}var P=se(m,r),ce=P?P.createHTML(""):"",ue=i,de=ue.implementation,he=ue.createNodeIterator,pe=ue.createDocumentFragment,fe=ue.getElementsByTagName,me=r.importNode,ge={};try{ge=B(i).documentMode?i.documentMode:{}}catch(Ft){}var ve={};n.isSupported="function"===typeof E&&de&&void 0!==de.createHTMLDocument&&9!==ge;var be,ye,we=Y,Ee=Q,_e=J,Se=Z,ke=ee,xe=ne,Ae=re,Ne=ae,Ce=te,Te=null,Re=M({},[].concat(a($),a(U),a(j),a(K),a(G))),Oe=null,Ie=M({},[].concat(a(z),a(q),a(X),a(W))),Le=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),De=null,Pe=null,Me=!0,Be=!0,Fe=!1,$e=!0,Ue=!1,je=!0,Ve=!1,Ke=!1,He=!1,Ge=!1,ze=!1,qe=!1,Xe=!0,We=!1,Ye="user-content-",Qe=!0,Je=!1,Ze={},et=null,tt=M({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),nt=null,rt=M({},["audio","video","img","source","image","track"]),it=null,at=M({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ot="http://www.w3.org/1998/Math/MathML",st="http://www.w3.org/2000/svg",lt="http://www.w3.org/1999/xhtml",ct=lt,ut=!1,dt=null,ht=M({},[ot,st,lt],A),pt=["application/xhtml+xml","text/html"],ft="text/html",mt=null,gt=255,vt=i.createElement("form"),bt=function(e){return e instanceof RegExp||e instanceof Function},yt=function(t){mt&&mt===t||(t&&"object"===e(t)||(t={}),t=B(t),be=be=-1===pt.indexOf(t.PARSER_MEDIA_TYPE)?ft:t.PARSER_MEDIA_TYPE,ye="application/xhtml+xml"===be?A:x,Te="ALLOWED_TAGS"in t?M({},t.ALLOWED_TAGS,ye):Re,Oe="ALLOWED_ATTR"in t?M({},t.ALLOWED_ATTR,ye):Ie,dt="ALLOWED_NAMESPACES"in t?M({},t.ALLOWED_NAMESPACES,A):ht,it="ADD_URI_SAFE_ATTR"in t?M(B(at),t.ADD_URI_SAFE_ATTR,ye):at,nt="ADD_DATA_URI_TAGS"in t?M(B(rt),t.ADD_DATA_URI_TAGS,ye):rt,et="FORBID_CONTENTS"in t?M({},t.FORBID_CONTENTS,ye):tt,De="FORBID_TAGS"in t?M({},t.FORBID_TAGS,ye):{},Pe="FORBID_ATTR"in t?M({},t.FORBID_ATTR,ye):{},Ze="USE_PROFILES"in t&&t.USE_PROFILES,Me=!1!==t.ALLOW_ARIA_ATTR,Be=!1!==t.ALLOW_DATA_ATTR,Fe=t.ALLOW_UNKNOWN_PROTOCOLS||!1,$e=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,Ue=t.SAFE_FOR_TEMPLATES||!1,je=!1!==t.SAFE_FOR_XML,Ve=t.WHOLE_DOCUMENT||!1,Ge=t.RETURN_DOM||!1,ze=t.RETURN_DOM_FRAGMENT||!1,qe=t.RETURN_TRUSTED_TYPE||!1,He=t.FORCE_BODY||!1,Xe=!1!==t.SANITIZE_DOM,We=t.SANITIZE_NAMED_PROPS||!1,Qe=!1!==t.KEEP_CONTENT,Je=t.IN_PLACE||!1,Ce=t.ALLOWED_URI_REGEXP||Ce,ct=t.NAMESPACE||lt,Le=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&bt(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Le.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&bt(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Le.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"===typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Le.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ue&&(Be=!1),ze&&(Ge=!0),Ze&&(Te=M({},a(G)),Oe=[],!0===Ze.html&&(M(Te,$),M(Oe,z)),!0===Ze.svg&&(M(Te,U),M(Oe,q),M(Oe,W)),!0===Ze.svgFilters&&(M(Te,j),M(Oe,q),M(Oe,W)),!0===Ze.mathMl&&(M(Te,K),M(Oe,X),M(Oe,W))),t.ADD_TAGS&&(Te===Re&&(Te=B(Te)),M(Te,t.ADD_TAGS,ye)),t.ADD_ATTR&&(Oe===Ie&&(Oe=B(Oe)),M(Oe,t.ADD_ATTR,ye)),t.ADD_URI_SAFE_ATTR&&M(it,t.ADD_URI_SAFE_ATTR,ye),t.FORBID_CONTENTS&&(et===tt&&(et=B(et)),M(et,t.FORBID_CONTENTS,ye)),Qe&&(Te["#text"]=!0),Ve&&M(Te,["html","head","body"]),Te.table&&(M(Te,["tbody"]),delete De.tbody),g&&g(t),mt=t)},wt=M({},["mi","mo","mn","ms","mtext"]),Et=M({},["foreignobject","annotation-xml"]),_t=M({},["title","style","font","a","script"]),St=M({},U);M(St,j),M(St,V);var kt=M({},K);M(kt,H);var xt=function(e){var t=E(e);t&&t.tagName||(t={namespaceURI:ct,tagName:"template"});var n=x(e.tagName),r=x(t.tagName);return!!dt[e.namespaceURI]&&(e.namespaceURI===st?t.namespaceURI===lt?"svg"===n:t.namespaceURI===ot?"svg"===n&&("annotation-xml"===r||wt[r]):Boolean(St[n]):e.namespaceURI===ot?t.namespaceURI===lt?"math"===n:t.namespaceURI===st?"math"===n&&Et[r]:Boolean(kt[n]):e.namespaceURI===lt?!(t.namespaceURI===st&&!Et[r])&&(!(t.namespaceURI===ot&&!wt[r])&&(!kt[n]&&(_t[n]||!St[n]))):!("application/xhtml+xml"!==be||!dt[e.namespaceURI]))},At=function(e){k(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(Ft){try{e.outerHTML=ce}catch(Ft){e.remove()}}},Nt=function(e,t){try{k(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(Ft){k(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Oe[e])if(Ge||ze)try{At(t)}catch(Ft){}else try{t.setAttribute(e,"")}catch(Ft){}},Ct=function(e){var t,n;if(He)e="<remove></remove>"+e;else{var r=N(e,/^[\r\n\t ]+/);n=r&&r[0]}"application/xhtml+xml"===be&&ct===lt&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");var a=P?P.createHTML(e):e;if(ct===lt)try{t=(new f).parseFromString(a,be)}catch(Ft){}if(!t||!t.documentElement){t=de.createDocument(ct,"template",null);try{t.documentElement.innerHTML=ut?ce:a}catch(Ft){}}var o=t.body||t.documentElement;return e&&n&&o.insertBefore(i.createTextNode(n),o.childNodes[0]||null),ct===lt?fe.call(t,Ve?"html":"body")[0]:Ve?t.documentElement:o},Tt=function(e){return he.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null,!1)},Rt=function(e){return e instanceof p&&("undefined"!==typeof e.__depth&&"number"!==typeof e.__depth||"undefined"!==typeof e.__removalCount&&"number"!==typeof e.__removalCount||"string"!==typeof e.nodeName||"string"!==typeof e.textContent||"function"!==typeof e.removeChild||!(e.attributes instanceof h)||"function"!==typeof e.removeAttribute||"function"!==typeof e.setAttribute||"string"!==typeof e.namespaceURI||"function"!==typeof e.insertBefore||"function"!==typeof e.hasChildNodes)},Ot=function(t){return"object"===e(l)?t instanceof l:t&&"object"===e(t)&&"number"===typeof t.nodeType&&"string"===typeof t.nodeName},It=function(e,t,r){ve[e]&&_(ve[e],(function(e){e.call(n,t,r,mt)}))},Lt=function(e){var t;if(It("beforeSanitizeElements",e,null),Rt(e))return At(e),!0;if(O(/[\u0080-\uFFFF]/,e.nodeName))return At(e),!0;var r=ye(e.nodeName);if(It("uponSanitizeElement",e,{tagName:r,allowedTags:Te}),e.hasChildNodes()&&!Ot(e.firstElementChild)&&(!Ot(e.content)||!Ot(e.content.firstElementChild))&&O(/<[/\w]/g,e.innerHTML)&&O(/<[/\w]/g,e.textContent))return At(e),!0;if("select"===r&&O(/<template/i,e.innerHTML))return At(e),!0;if(7===e.nodeType)return At(e),!0;if(je&&8===e.nodeType&&O(/<[/\w]/g,e.data))return At(e),!0;if(!Te[r]||De[r]){if(!De[r]&&Pt(r)){if(Le.tagNameCheck instanceof RegExp&&O(Le.tagNameCheck,r))return!1;if(Le.tagNameCheck instanceof Function&&Le.tagNameCheck(r))return!1}if(Qe&&!et[r]){var i=E(e)||e.parentNode,a=w(e)||e.childNodes;if(a&&i)for(var o=a.length,s=o-1;s>=0;--s){var l=b(a[s],!0);l.__removalCount=(e.__removalCount||0)+1,i.insertBefore(l,y(e))}}return At(e),!0}return e instanceof c&&!xt(e)?(At(e),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!O(/<\/no(script|embed|frames)/i,e.innerHTML)?(Ue&&3===e.nodeType&&(t=e.textContent,t=C(t,we," "),t=C(t,Ee," "),t=C(t,_e," "),e.textContent!==t&&(k(n.removed,{element:e.cloneNode()}),e.textContent=t)),It("afterSanitizeElements",e,null),!1):(At(e),!0)},Dt=function(e,t,n){if(Xe&&("id"===t||"name"===t)&&(n in i||n in vt||"__depth"===n||"__removalCount"===n))return!1;if(Be&&!Pe[t]&&O(Se,t));else if(Me&&O(ke,t));else if(!Oe[t]||Pe[t]){if(!(Pt(e)&&(Le.tagNameCheck instanceof RegExp&&O(Le.tagNameCheck,e)||Le.tagNameCheck instanceof Function&&Le.tagNameCheck(e))&&(Le.attributeNameCheck instanceof RegExp&&O(Le.attributeNameCheck,t)||Le.attributeNameCheck instanceof Function&&Le.attributeNameCheck(t))||"is"===t&&Le.allowCustomizedBuiltInElements&&(Le.tagNameCheck instanceof RegExp&&O(Le.tagNameCheck,n)||Le.tagNameCheck instanceof Function&&Le.tagNameCheck(n))))return!1}else if(it[t]);else if(O(Ce,C(n,Ae,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!nt[e]){if(Fe&&!O(xe,C(n,Ae,"")));else if(n)return!1}else;return!0},Pt=function(e){return"annotation-xml"!==e&&N(e,Ne)},Mt=function(t){var r,i,a,o;It("beforeSanitizeAttributes",t,null);var s=t.attributes;if(s){var l={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Oe};o=s.length;while(o--){r=s[o];var c=r,u=c.name,d=c.namespaceURI;if(i="value"===u?r.value:R(r.value),a=ye(u),l.attrName=a,l.attrValue=i,l.keepAttr=!0,l.forceKeepAttr=void 0,It("uponSanitizeAttribute",t,l),i=l.attrValue,!l.forceKeepAttr&&(Nt(u,t),l.keepAttr))if($e||!O(/\/>/i,i))if(je&&O(/((--!?|])>)|<\/(style|title)/i,i))Nt(u,t);else{Ue&&(i=C(i,we," "),i=C(i,Ee," "),i=C(i,_e," "));var h=ye(t.nodeName);if(Dt(h,a,i)){if(!We||"id"!==a&&"name"!==a||(Nt(u,t),i=Ye+i),P&&"object"===e(m)&&"function"===typeof m.getAttributeType)if(d);else switch(m.getAttributeType(h,a)){case"TrustedHTML":i=P.createHTML(i);break;case"TrustedScriptURL":i=P.createScriptURL(i);break}try{d?t.setAttributeNS(d,u,i):t.setAttribute(u,i),Rt(t)?At(t):S(n.removed)}catch(Ft){}}}else Nt(u,t)}It("afterSanitizeAttributes",t,null)}},Bt=function e(t){var n,r=Tt(t);It("beforeSanitizeShadowDOM",t,null);while(n=r.nextNode())if(It("uponSanitizeShadowNode",n,null),!Lt(n)){var i=E(n);1===n.nodeType&&(i&&i.__depth?n.__depth=(n.__removalCount||0)+i.__depth+1:n.__depth=1),(n.__depth>=gt||L(n.__depth))&&At(n),n.content instanceof o&&(n.content.__depth=n.__depth,e(n.content)),Mt(n)}It("afterSanitizeShadowDOM",t,null)};return n.sanitize=function(i){var a,s,c,u,d,h=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(ut=!i,ut&&(i="\x3c!--\x3e"),"string"!==typeof i&&!Ot(i)){if("function"!==typeof i.toString)throw I("toString is not a function");if(i=i.toString(),"string"!==typeof i)throw I("dirty is not a string, aborting")}if(!n.isSupported){if("object"===e(t.toStaticHTML)||"function"===typeof t.toStaticHTML){if("string"===typeof i)return t.toStaticHTML(i);if(Ot(i))return t.toStaticHTML(i.outerHTML)}return i}if(Ke||yt(h),n.removed=[],"string"===typeof i&&(Je=!1),Je){if(i.nodeName){var p=ye(i.nodeName);if(!Te[p]||De[p])throw I("root node is forbidden and cannot be sanitized in-place")}}else if(i instanceof l)a=Ct("\x3c!----\x3e"),s=a.ownerDocument.importNode(i,!0),1===s.nodeType&&"BODY"===s.nodeName||"HTML"===s.nodeName?a=s:a.appendChild(s);else{if(!Ge&&!Ue&&!Ve&&-1===i.indexOf("<"))return P&&qe?P.createHTML(i):i;if(a=Ct(i),!a)return Ge?null:qe?ce:""}a&&He&&At(a.firstChild);var f=Tt(Je?i:a);while(c=f.nextNode())if((3!==c.nodeType||c!==u)&&!Lt(c)){var m=E(c);1===c.nodeType&&(m&&m.__depth?c.__depth=(c.__removalCount||0)+m.__depth+1:c.__depth=1),(c.__depth>=gt||L(c.__depth))&&At(c),c.content instanceof o&&(c.content.__depth=c.__depth,Bt(c.content)),Mt(c),u=c}if(u=null,Je)return i;if(Ge){if(ze){d=pe.call(a.ownerDocument);while(a.firstChild)d.appendChild(a.firstChild)}else d=a;return(Oe.shadowroot||Oe.shadowrootmod)&&(d=me.call(r,d,!0)),d}var g=Ve?a.outerHTML:a.innerHTML;return Ve&&Te["!doctype"]&&a.ownerDocument&&a.ownerDocument.doctype&&a.ownerDocument.doctype.name&&O(ie,a.ownerDocument.doctype.name)&&(g="<!DOCTYPE "+a.ownerDocument.doctype.name+">\n"+g),Ue&&(g=C(g,we," "),g=C(g,Ee," "),g=C(g,_e," ")),P&&qe?P.createHTML(g):g},n.setConfig=function(e){yt(e),Ke=!0},n.clearConfig=function(){mt=null,Ke=!1},n.isValidAttribute=function(e,t,n){mt||yt({});var r=ye(e),i=ye(t);return Dt(r,i,n)},n.addHook=function(e,t){"function"===typeof t&&(ve[e]=ve[e]||[],k(ve[e],t))},n.removeHook=function(e){if(ve[e])return S(ve[e])},n.removeHooks=function(e){ve[e]&&(ve[e]=[])},n.removeAllHooks=function(){ve={}},n}var ce=le();return ce}))},64940:function(e,t,n){"use strict";var r=n(528),i=r("%Object.defineProperty%",!0)||!1;if(i)try{i({},"a",{value:1})}catch(a){i=!1}e.exports=i},29110:function(e){"use strict";e.exports=EvalError},29838:function(e){"use strict";e.exports=Error},61155:function(e){"use strict";e.exports=RangeError},94943:function(e){"use strict";e.exports=ReferenceError},5731:function(e){"use strict";e.exports=SyntaxError},3468:function(e){"use strict";e.exports=TypeError},32140:function(e){"use strict";e.exports=URIError},50046:function(e,t,n){"use strict";var r,i=n(4364),a="object"===typeof Reflect?Reflect:null,o=a&&"function"===typeof a.apply?a.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};function s(e){i&&i.warn&&i.warn(e)}r=a&&"function"===typeof a.ownKeys?a.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var l=Number.isNaN||function(e){return e!==e};function c(){c.init.call(this)}e.exports=c,e.exports.once=E,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var u=10;function d(e){if("function"!==typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function h(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function p(e,t,n,r){var i,a,o;if(d(n),a=e._events,void 0===a?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),void 0===o)o=a[t]=n,++e._eventsCount;else if("function"===typeof o?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=h(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,s(l)}return e}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function m(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}function g(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"===typeof i?n?[i.listener||i]:[i]:n?w(i):b(i,i.length)}function v(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"===typeof n)return 1;if(void 0!==n)return n.length}return 0}function b(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function y(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function w(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function E(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){"function"===typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}S(e,t,a,{once:!0}),"error"!==t&&_(e,i,{once:!0})}))}function _(e,t,n){"function"===typeof e.on&&S(e,"error",t,n)}function S(e,t,n,r){if("function"===typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!==typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(a){r.once&&e.removeEventListener(t,i),n(a)}))}}Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return u},set:function(e){if("number"!==typeof e||e<0||l(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");u=e}}),c.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},c.prototype.setMaxListeners=function(e){if("number"!==typeof e||e<0||l(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},c.prototype.getMaxListeners=function(){return h(this)},c.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=i[e];if(void 0===l)return!1;if("function"===typeof l)o(l,this,t);else{var c=l.length,u=b(l,c);for(n=0;n<c;++n)o(u[n],this,t)}return!0},c.prototype.addListener=function(e,t){return p(this,e,t,!1)},c.prototype.on=c.prototype.addListener,c.prototype.prependListener=function(e,t){return p(this,e,t,!0)},c.prototype.once=function(e,t){return d(t),this.on(e,m(this,e,t)),this},c.prototype.prependOnceListener=function(e,t){return d(t),this.prependListener(e,m(this,e,t)),this},c.prototype.removeListener=function(e,t){var n,r,i,a,o;if(d(t),r=this._events,void 0===r)return this;if(n=r[e],void 0===n)return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!==typeof n){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():y(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},c.prototype.off=c.prototype.removeListener,c.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,void 0===n)return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,a=Object.keys(n);for(r=0;r<a.length;++r)i=a[r],"removeListener"!==i&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(t=n[e],"function"===typeof t)this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return g(this,e,!0)},c.prototype.rawListeners=function(e){return g(this,e,!1)},c.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):v.call(e,t)},c.prototype.listenerCount=v,c.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},80705:function(e,t,n){"use strict";var r=n(89617),i=Object.prototype.toString,a=Object.prototype.hasOwnProperty,o=function(e,t,n){for(var r=0,i=e.length;r<i;r++)a.call(e,r)&&(null==n?t(e[r],r,e):t.call(n,e[r],r,e))},s=function(e,t,n){for(var r=0,i=e.length;r<i;r++)null==n?t(e.charAt(r),r,e):t.call(n,e.charAt(r),r,e)},l=function(e,t,n){for(var r in e)a.call(e,r)&&(null==n?t(e[r],r,e):t.call(n,e[r],r,e))},c=function(e,t,n){if(!r(t))throw new TypeError("iterator must be a function");var a;arguments.length>=3&&(a=n),"[object Array]"===i.call(e)?o(e,t,a):"string"===typeof e?s(e,t,a):l(e,t,a)};e.exports=c},28794:function(e){"use strict";var t="Function.prototype.bind called on incompatible ",n=Object.prototype.toString,r=Math.max,i="[object Function]",a=function(e,t){for(var n=[],r=0;r<e.length;r+=1)n[r]=e[r];for(var i=0;i<t.length;i+=1)n[i+e.length]=t[i];return n},o=function(e,t){for(var n=[],r=t||0,i=0;r<e.length;r+=1,i+=1)n[i]=e[r];return n},s=function(e,t){for(var n="",r=0;r<e.length;r+=1)n+=e[r],r+1<e.length&&(n+=t);return n};e.exports=function(e){var l=this;if("function"!==typeof l||n.apply(l)!==i)throw new TypeError(t+l);for(var c,u=o(arguments,1),d=function(){if(this instanceof c){var t=l.apply(this,a(u,arguments));return Object(t)===t?t:this}return l.apply(e,a(u,arguments))},h=r(0,l.length-u.length),p=[],f=0;f<h;f++)p[f]="$"+f;if(c=Function("binder","return function ("+s(p,",")+"){ return binder.apply(this,arguments); }")(d),l.prototype){var m=function(){};m.prototype=l.prototype,c.prototype=new m,m.prototype=null}return c}},79138:function(e,t,n){"use strict";var r=n(28794);e.exports=Function.prototype.bind||r},528:function(e,t,n){"use strict";var r,i=n(29838),a=n(29110),o=n(61155),s=n(94943),l=n(5731),c=n(3468),u=n(32140),d=Function,h=function(e){try{return d('"use strict"; return ('+e+").constructor;")()}catch(t){}},p=Object.getOwnPropertyDescriptor;if(p)try{p({},"")}catch(M){p=null}var f=function(){throw new c},m=p?function(){try{return f}catch(e){try{return p(arguments,"callee").get}catch(t){return f}}}():f,g=n(53558)(),v=n(66869)(),b=Object.getPrototypeOf||(v?function(e){return e.__proto__}:null),y={},w="undefined"!==typeof Uint8Array&&b?b(Uint8Array):r,E={__proto__:null,"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":g&&b?b([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":y,"%AsyncGenerator%":y,"%AsyncGeneratorFunction%":y,"%AsyncIteratorPrototype%":y,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":a,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":d,"%GeneratorFunction%":y,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":g&&b?b(b([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&g&&b?b((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":o,"%ReferenceError%":s,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&g&&b?b((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":g&&b?b(""[Symbol.iterator]()):r,"%Symbol%":g?Symbol:r,"%SyntaxError%":l,"%ThrowTypeError%":m,"%TypedArray%":w,"%TypeError%":c,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":u,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(b)try{null.error}catch(M){var _=b(b(M));E["%Error.prototype%"]=_}var S=function e(t){var n;if("%AsyncFunction%"===t)n=h("async function () {}");else if("%GeneratorFunction%"===t)n=h("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=h("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&b&&(n=b(i.prototype))}return E[t]=n,n},k={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},x=n(79138),A=n(78554),N=x.call(Function.call,Array.prototype.concat),C=x.call(Function.apply,Array.prototype.splice),T=x.call(Function.call,String.prototype.replace),R=x.call(Function.call,String.prototype.slice),O=x.call(Function.call,RegExp.prototype.exec),I=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,L=/\\(\\)?/g,D=function(e){var t=R(e,0,1),n=R(e,-1);if("%"===t&&"%"!==n)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new l("invalid intrinsic syntax, expected opening `%`");var r=[];return T(e,I,(function(e,t,n,i){r[r.length]=n?T(i,L,"$1"):t||e})),r},P=function(e,t){var n,r=e;if(A(k,r)&&(n=k[r],r="%"+n[0]+"%"),A(E,r)){var i=E[r];if(i===y&&(i=S(r)),"undefined"===typeof i&&!t)throw new c("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new l("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new c('"allowMissing" argument must be a boolean');if(null===O(/^%?[^%]*%?$/,e))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=D(e),r=n.length>0?n[0]:"",i=P("%"+r+"%",t),a=i.name,o=i.value,s=!1,u=i.alias;u&&(r=u[0],C(n,N([0,1],u)));for(var d=1,h=!0;d<n.length;d+=1){var f=n[d],m=R(f,0,1),g=R(f,-1);if(('"'===m||"'"===m||"`"===m||'"'===g||"'"===g||"`"===g)&&m!==g)throw new l("property names with quotes must have matching quotes");if("constructor"!==f&&h||(s=!0),r+="."+f,a="%"+r+"%",A(E,a))o=E[a];else if(null!=o){if(!(f in o)){if(!t)throw new c("base intrinsic for "+e+" exists, but the property is not available.");return}if(p&&d+1>=n.length){var v=p(o,f);h=!!v,o=h&&"get"in v&&!("originalValue"in v.get)?v.get:o[f]}else h=A(o,f),o=o[f];h&&!s&&(E[a]=o)}}return o}},69336:function(e,t,n){"use strict";var r=n(528),i=r("%Object.getOwnPropertyDescriptor%",!0);if(i)try{i([],"length")}catch(a){i=null}e.exports=i},17239:function(e,t,n){"use strict";var r=n(64940),i=function(){return!!r};i.hasArrayLengthDefineBug=function(){if(!r)return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},66869:function(e){"use strict";var t={__proto__:null,foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!(t instanceof n)}},53558:function(e,t,n){"use strict";var r="undefined"!==typeof Symbol&&Symbol,i=n(62908);e.exports=function(){return"function"===typeof r&&("function"===typeof Symbol&&("symbol"===typeof r("foo")&&("symbol"===typeof Symbol("bar")&&i())))}},62908:function(e){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;var r=42;for(t in e[t]=r,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var a=Object.getOwnPropertyDescriptor(e,t);if(a.value!==r||!0!==a.enumerable)return!1}return!0}},51913:function(e,t,n){"use strict";var r=n(62908);e.exports=function(){return r()&&!!Symbol.toStringTag}},78554:function(e,t,n){"use strict";var r=Function.prototype.call,i=Object.prototype.hasOwnProperty,a=n(79138);e.exports=a.call(r,i)},51815:function(e,t){(function(e){var t=/\S/,n=/\"/g,r=/\n/g,i=/\r/g,a=/\\/g,o=/\u2028/,s=/\u2029/;function l(e){"}"===e.n.substr(e.n.length-1)&&(e.n=e.n.substring(0,e.n.length-1))}function c(e){return e.trim?e.trim():e.replace(/^\s*|\s*$/g,"")}function u(e,t,n){if(t.charAt(n)!=e.charAt(0))return!1;for(var r=1,i=e.length;r<i;r++)if(t.charAt(n+r)!=e.charAt(r))return!1;return!0}e.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(n,r){var i=n.length,a=0,o=1,s=2,d=a,h=null,p=null,f="",m=[],g=!1,v=0,b=0,y="{{",w="}}";function E(){f.length>0&&(m.push({tag:"_t",text:new String(f)}),f="")}function _(){for(var n=!0,r=b;r<m.length;r++)if(n=e.tags[m[r].tag]<e.tags["_v"]||"_t"==m[r].tag&&null===m[r].text.match(t),!n)return!1;return n}function S(e,t){if(E(),e&&_())for(var n,r=b;r<m.length;r++)m[r].text&&((n=m[r+1])&&">"==n.tag&&(n.indent=m[r].text.toString()),m.splice(r,1));else t||m.push({tag:"\n"});g=!1,b=m.length}function k(e,t){var n="="+w,r=e.indexOf(n,t),i=c(e.substring(e.indexOf("=",t)+1,r)).split(" ");return y=i[0],w=i[i.length-1],r+n.length-1}for(r&&(r=r.split(" "),y=r[0],w=r[1]),v=0;v<i;v++)d==a?u(y,n,v)?(--v,E(),d=o):"\n"==n.charAt(v)?S(g):f+=n.charAt(v):d==o?(v+=y.length-1,p=e.tags[n.charAt(v+1)],h=p?n.charAt(v+1):"_v","="==h?(v=k(n,v),d=a):(p&&v++,d=s),g=v):u(w,n,v)?(m.push({tag:h,n:c(f),otag:y,ctag:w,i:"/"==h?g-y.length:v+w.length}),f="",v+=w.length-1,d=a,"{"==h&&("}}"==w?v++:l(m[m.length-1]))):f+=n.charAt(v);return S(g,!0),m};var d={_t:!0,"\n":!0,$:!0,"/":!0};function h(t,n,r,i){var a=[],o=null,s=null,l=null;s=r[r.length-1];while(t.length>0){if(l=t.shift(),s&&"<"==s.tag&&!(l.tag in d))throw new Error("Illegal content in < super tag.");if(e.tags[l.tag]<=e.tags["$"]||p(l,i))r.push(l),l.nodes=h(t,l.tag,r,i);else{if("/"==l.tag){if(0===r.length)throw new Error("Closing tag without opener: /"+l.n);if(o=r.pop(),l.n!=o.n&&!f(l.n,o.n,i))throw new Error("Nesting error: "+o.n+" vs. "+l.n);return o.end=l.i,a}"\n"==l.tag&&(l.last=0==t.length||"\n"==t[0].tag)}a.push(l)}if(r.length>0)throw new Error("missing closing tag: "+r.pop().n);return a}function p(e,t){for(var n=0,r=t.length;n<r;n++)if(t[n].o==e.n)return e.tag="#",!0}function f(e,t,n){for(var r=0,i=n.length;r<i;r++)if(n[r].c==e&&n[r].o==t)return!0}function m(e){var t=[];for(var n in e)t.push('"'+b(n)+'": function(c,p,t,i) {'+e[n]+"}");return"{ "+t.join(",")+" }"}function g(e){var t=[];for(var n in e.partials)t.push('"'+b(n)+'":{name:"'+b(e.partials[n].name)+'", '+g(e.partials[n])+"}");return"partials: {"+t.join(",")+"}, subs: "+m(e.subs)}e.stringify=function(t,n,r){return"{code: function (c,p,i) { "+e.wrapMain(t.code)+" },"+g(t)+"}"};var v=0;function b(e){return e.replace(a,"\\\\").replace(n,'\\"').replace(r,"\\n").replace(i,"\\r").replace(o,"\\u2028").replace(s,"\\u2029")}function y(e){return~e.indexOf(".")?"d":"f"}function w(e,t){var n="<"+(t.prefix||""),r=n+e.n+v++;return t.partials[r]={name:e.n,partials:{}},t.code+='t.b(t.rp("'+b(r)+'",c,p,"'+(e.indent||"")+'"));',r}function E(e,t){t.code+="t.b(t.t(t."+y(e.n)+'("'+b(e.n)+'",c,p,0)));'}function _(e){return"t.b("+e+");"}e.generate=function(t,n,r){v=0;var i={code:"",subs:{},partials:{}};return e.walk(t,i),r.asString?this.stringify(i,n,r):this.makeTemplate(i,n,r)},e.wrapMain=function(e){return'var t=this;t.b(i=i||"");'+e+"return t.fl();"},e.template=e.Template,e.makeTemplate=function(e,t,n){var r=this.makePartials(e);return r.code=new Function("c","p","i",this.wrapMain(e.code)),new this.template(r,t,this,n)},e.makePartials=function(e){var t,n={subs:{},partials:e.partials,name:e.name};for(t in n.partials)n.partials[t]=this.makePartials(n.partials[t]);for(t in e.subs)n.subs[t]=new Function("c","p","t","i",e.subs[t]);return n},e.codegen={"#":function(t,n){n.code+="if(t.s(t."+y(t.n)+'("'+b(t.n)+'",c,p,1),c,p,0,'+t.i+","+t.end+',"'+t.otag+" "+t.ctag+'")){t.rs(c,p,function(c,p,t){',e.walk(t.nodes,n),n.code+="});c.pop();}"},"^":function(t,n){n.code+="if(!t.s(t."+y(t.n)+'("'+b(t.n)+'",c,p,1),c,p,1,0,0,"")){',e.walk(t.nodes,n),n.code+="};"},">":w,"<":function(t,n){var r={partials:{},code:"",subs:{},inPartial:!0};e.walk(t.nodes,r);var i=n.partials[w(t,n)];i.subs=r.subs,i.partials=r.partials},$:function(t,n){var r={subs:{},code:"",partials:n.partials,prefix:t.n};e.walk(t.nodes,r),n.subs[t.n]=r.code,n.inPartial||(n.code+='t.sub("'+b(t.n)+'",c,p,i);')},"\n":function(e,t){t.code+=_('"\\n"'+(e.last?"":" + i"))},_v:function(e,t){t.code+="t.b(t.v(t."+y(e.n)+'("'+b(e.n)+'",c,p,0)));'},_t:function(e,t){t.code+=_('"'+b(e.text)+'"')},"{":E,"&":E},e.walk=function(t,n){for(var r,i=0,a=t.length;i<a;i++)r=e.codegen[t[i].tag],r&&r(t[i],n);return n},e.parse=function(e,t,n){return n=n||{},h(e,"",[],n.sectionTags||[])},e.cache={},e.cacheKey=function(e,t){return[e,!!t.asString,!!t.disableLambda,t.delimiters,!!t.modelGet].join("||")},e.compile=function(t,n){n=n||{};var r=e.cacheKey(t,n),i=this.cache[r];if(i){var a=i.partials;for(var o in a)delete a[o].instance;return i}return i=this.generate(this.parse(this.scan(t,n.delimiters),t,n),t,n),this.cache[r]=i}})(t)},62133:function(e,t,n){var r=n(51815);r.Template=n(72252).Template,r.template=r.Template,e.exports=r},72252:function(e,t){(function(e){function t(e,t,n){var r;return t&&"object"==typeof t&&(void 0!==t[e]?r=t[e]:n&&t.get&&"function"==typeof t.get&&(r=t.get(e))),r}function n(e,t,n,r,i,a){function o(){}function s(){}var l;o.prototype=e,s.prototype=e.subs;var c=new o;for(l in c.subs=new s,c.subsText={},c.buf="",r=r||{},c.stackSubs=r,c.subsText=a,t)r[l]||(r[l]=t[l]);for(l in r)c.subs[l]=r[l];for(l in i=i||{},c.stackPartials=i,n)i[l]||(i[l]=n[l]);for(l in i)c.partials[l]=i[l];return c}e.Template=function(e,t,n,r){e=e||{},this.r=e.code||this.r,this.c=n,this.options=r||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.buf=""},e.Template.prototype={r:function(e,t,n){return""},v:u,t:c,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var r=this.partials[e],i=t[r.name];if(r.instance&&r.base==i)return r.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[e].base=i,r.subs){for(key in t.stackText||(t.stackText={}),r.subs)t.stackText[key]||(t.stackText[key]=void 0!==this.activeSub&&t.stackText[this.activeSub]?t.stackText[this.activeSub]:this.text);i=n(i,r.subs,r.partials,this.stackSubs,this.stackPartials,t.stackText)}return this.partials[e].instance=i,i},rp:function(e,t,n,r){var i=this.ep(e,n);return i?i.ri(t,n,r):""},rs:function(e,t,n){var r=e[e.length-1];if(d(r))for(var i=0;i<r.length;i++)e.push(r[i]),n(e,t,this),e.pop();else n(e,t,this)},s:function(e,t,n,r,i,a,o){var s;return(!d(e)||0!==e.length)&&("function"==typeof e&&(e=this.ms(e,t,n,r,i,a,o)),s=!!e,!r&&s&&t&&t.push("object"==typeof e?e:t[t.length-1]),s)},d:function(e,n,r,i){var a,o=e.split("."),s=this.f(o[0],n,r,i),l=this.options.modelGet,c=null;if("."===e&&d(n[n.length-2]))s=n[n.length-1];else for(var u=1;u<o.length;u++)a=t(o[u],s,l),void 0!==a?(c=s,s=a):s="";return!(i&&!s)&&(i||"function"!=typeof s||(n.push(c),s=this.mv(s,n,r),n.pop()),s)},f:function(e,n,r,i){for(var a=!1,o=null,s=!1,l=this.options.modelGet,c=n.length-1;c>=0;c--)if(o=n[c],a=t(e,o,l),void 0!==a){s=!0;break}return s?(i||"function"!=typeof a||(a=this.mv(a,n,r)),a):!i&&""},ls:function(e,t,n,r,i){var a=this.options.delimiters;return this.options.delimiters=i,this.b(this.ct(c(e.call(t,r)),t,n)),this.options.delimiters=a,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,t,n,r,i,a,o){var s,l=t[t.length-1],c=e.call(l);return"function"==typeof c?!!r||(s=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,l,n,s.substring(i,a),o)):c},mv:function(e,t,n){var r=t[t.length-1],i=e.call(r);return"function"==typeof i?this.ct(c(i.call(r)),r,n):i},sub:function(e,t,n,r){var i=this.subs[e];i&&(this.activeSub=e,i(t,n,this,r),this.activeSub=!1)}};var r=/&/g,i=/</g,a=/>/g,o=/\'/g,s=/\"/g,l=/[&<>\"\']/;function c(e){return String(null===e||void 0===e?"":e)}function u(e){return e=c(e),l.test(e)?e.replace(r,"&").replace(i,"<").replace(a,">").replace(o,"'").replace(s,"""):e}var d=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}})(t)},27500:function(e,t,n){var r=n(4865),i=n(75442),a=e.exports;for(var o in r)r.hasOwnProperty(o)&&(a[o]=r[o]);function s(e){if("string"===typeof e&&(e=i.parse(e)),e.protocol||(e.protocol="https:"),"https:"!==e.protocol)throw new Error('Protocol "'+e.protocol+'" not supported. Expected "https:"');return e}a.request=function(e,t){return e=s(e),r.request.call(this,e,t)},a.get=function(e,t){return e=s(e),r.get.call(this,e,t)}},36313:function(e,t,n){var r=n(33486)["hp"];(function(){var t;t="undefined"!==typeof e.exports?n(86530):window.PNGlib;var i=function(e,t){if("string"!==typeof e||e.length<15)throw"A hash of at least 15 characters is required.";this.defaults={background:[240,240,240,255],margin:.08,size:64,saturation:.7,brightness:.5,format:"png"},this.options="object"===typeof t?t:this.defaults,"number"===typeof arguments[1]&&(this.options.size=arguments[1]),arguments[2]&&(this.options.margin=arguments[2]),this.hash=e,this.background=this.options.background||this.defaults.background,this.size=this.options.size||this.defaults.size,this.format=this.options.format||this.defaults.format,this.margin=void 0!==this.options.margin?this.options.margin:this.defaults.margin;var n=parseInt(this.hash.substr(-7),16)/268435455,r=this.options.saturation||this.defaults.saturation,i=this.options.brightness||this.defaults.brightness;this.foreground=this.options.foreground||this.hsl2rgb(n,r,i)};i.prototype={background:null,foreground:null,hash:null,margin:null,size:null,format:null,image:function(){return this.isSvg()?new a(this.size,this.foreground,this.background):new t(this.size,this.size,256)},render:function(){var e,t,n=this.image(),r=this.size,i=Math.floor(r*this.margin),a=Math.floor((r-2*i)/5),o=Math.floor((r-5*a)/2),s=n.color.apply(n,this.background),l=n.color.apply(n,this.foreground);for(e=0;e<15;e++)t=parseInt(this.hash.charAt(e),16)%2?s:l,e<5?this.rectangle(2*a+o,e*a+o,a,a,t,n):e<10?(this.rectangle(1*a+o,(e-5)*a+o,a,a,t,n),this.rectangle(3*a+o,(e-5)*a+o,a,a,t,n)):e<15&&(this.rectangle(0*a+o,(e-10)*a+o,a,a,t,n),this.rectangle(4*a+o,(e-10)*a+o,a,a,t,n));return n},rectangle:function(e,t,n,r,i,a){var o,s;if(this.isSvg())a.rectangles.push({x:e,y:t,w:n,h:r,color:i});else for(o=e;o<e+n;o++)for(s=t;s<t+r;s++)a.buffer[a.index(o,s)]=i},hsl2rgb:function(e,t,n){return e*=6,t=[n+=t*=n<.5?n:1-n,n-e%1*t*2,n-=t*=2,n,n+e%1*t,n+t],[255*t[~~e%6],255*t[(16|e)%6],255*t[(8|e)%6]]},toString:function(e){return e?this.render().getDump():this.render().getBase64()},isSvg:function(){return this.format.match(/svg/i)}};var a=function(e,t,n){this.size=e,this.foreground=this.color.apply(this,t),this.background=this.color.apply(this,n),this.rectangles=[]};a.prototype={size:null,foreground:null,background:null,rectangles:null,color:function(e,t,n,r){var i=[e,t,n].map(Math.round);return i.push(r>=0&&r<=255?r/255:1),"rgba("+i.join(",")+")"},getDump:function(){var e,t,n,r=this.foreground,i=this.background,a=.005*this.size;for(t="<svg xmlns='http://www.w3.org/2000/svg' width='"+this.size+"' height='"+this.size+"' style='background-color:"+i+";'><g style='fill:"+r+"; stroke:"+r+"; stroke-width:"+a+";'>",e=0;e<this.rectangles.length;e++)n=this.rectangles[e],n.color!=i&&(t+="<rect x='"+n.x+"' y='"+n.y+"' width='"+n.w+"' height='"+n.h+"'/>");return t+="</g></svg>",t},getBase64:function(){if("function"===typeof btoa)return btoa(this.getDump());if(r)return new r(this.getDump(),"binary").toString("base64");throw"Cannot generate base64 output"}},"undefined"!==typeof e.exports?e.exports=i:window.Identicon=i})()},86530:function(e){ +/** +* A handy class to calculate color values. +* +* @version 1.0 +* @author Robert Eisele <robert@xarg.org> +* @copyright Copyright (c) 2010, Robert Eisele +* @link http://www.xarg.org/2010/03/generate-client-side-png-files-using-javascript/ +* @license http://www.opensource.org/licenses/bsd-license.php BSD License +* +*/ +(function(){function t(e,t){for(var n=2;n<arguments.length;n++)for(var r=0;r<arguments[n].length;r++)e[t++]=arguments[n].charAt(r)}function n(e){return String.fromCharCode(e>>8&255,255&e)}function r(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)}function i(e){return String.fromCharCode(255&e,e>>8&255)}var a=function(e,a,o){this.width=e,this.height=a,this.depth=o,this.pix_size=a*(e+1),this.data_size=2+this.pix_size+5*Math.floor((65534+this.pix_size)/65535)+4,this.ihdr_offs=0,this.ihdr_size=25,this.plte_offs=this.ihdr_offs+this.ihdr_size,this.plte_size=8+3*o+4,this.trns_offs=this.plte_offs+this.plte_size,this.trns_size=8+o+4,this.idat_offs=this.trns_offs+this.trns_size,this.idat_size=8+this.data_size+4,this.iend_offs=this.idat_offs+this.idat_size,this.iend_size=12,this.buffer_size=this.iend_offs+this.iend_size,this.buffer=new Array,this.palette=new Object,this.pindex=0;for(var s=new Array,l=0;l<this.buffer_size;l++)this.buffer[l]="\0";t(this.buffer,this.ihdr_offs,r(this.ihdr_size-12),"IHDR",r(e),r(a),"\b"),t(this.buffer,this.plte_offs,r(this.plte_size-12),"PLTE"),t(this.buffer,this.trns_offs,r(this.trns_size-12),"tRNS"),t(this.buffer,this.idat_offs,r(this.idat_size-12),"IDAT"),t(this.buffer,this.iend_offs,r(this.iend_size-12),"IEND");var c=30912;c+=31-c%31,t(this.buffer,this.idat_offs+8,n(c));for(l=0;(l<<16)-1<this.pix_size;l++){var u,d;l+65535<this.pix_size?(u=65535,d="\0"):(u=this.pix_size-(l<<16)-l,d=""),t(this.buffer,this.idat_offs+8+2+(l<<16)+(l<<2),d,i(u),i(~u))}for(l=0;l<256;l++){for(var h=l,p=0;p<8;p++)h=1&h?-306674912^h>>1&2147483647:h>>1&2147483647;s[l]=h}this.index=function(e,t){var n=t*(this.width+1)+e+1,r=this.idat_offs+8+2+5*Math.floor(n/65535+1)+n;return r},this.color=function(e,t,n,r){r=r>=0?r:255;var i=((r<<8|e)<<8|t)<<8|n;if("undefined"==typeof this.palette[i]){if(this.pindex==this.depth)return"\0";var a=this.plte_offs+8+3*this.pindex;this.buffer[a+0]=String.fromCharCode(e),this.buffer[a+1]=String.fromCharCode(t),this.buffer[a+2]=String.fromCharCode(n),this.buffer[this.trns_offs+8+this.pindex]=String.fromCharCode(r),this.palette[i]=String.fromCharCode(this.pindex++)}return this.palette[i]},this.getBase64=function(){var e,t,n,r,i,a,o,s=this.getDump(),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=s.length,u=0,d="";do{e=s.charCodeAt(u),r=e>>2,t=s.charCodeAt(u+1),i=(3&e)<<4|t>>4,n=s.charCodeAt(u+2),a=c<u+2?64:(15&t)<<2|n>>6,o=c<u+3?64:63&n,d+=l.charAt(r)+l.charAt(i)+l.charAt(a)+l.charAt(o)}while((u+=3)<c);return d},this.getDump=function(){for(var e=65521,n=5552,i=1,a=0,o=n,l=0;l<this.height;l++)for(var c=-1;c<this.width;c++)i+=this.buffer[this.index(c,l)].charCodeAt(0),a+=i,0==(o-=1)&&(i%=e,a%=e,o=n);function u(e,n,i){for(var a=-1,o=4;o<i-4;o+=1)a=s[255&(a^e[n+o].charCodeAt(0))]^a>>8&16777215;t(e,n+i-4,r(~a))}return i%=e,a%=e,t(this.buffer,this.idat_offs+this.idat_size-8,r(a<<16|i)),u(this.buffer,this.ihdr_offs,this.ihdr_size),u(this.buffer,this.plte_offs,this.plte_size),u(this.buffer,this.trns_offs,this.trns_size),u(this.buffer,this.idat_offs,this.idat_size),u(this.buffer,this.iend_offs,this.iend_size),"‰PNG\r\n\n"+this.buffer.join("")}};"undefined"!==typeof e.exports?e.exports=a:window.PNGlib=a})()},39318:function(e,t){ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ +t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,l=(1<<s)-1,c=l>>1,u=-7,d=n?i-1:0,h=n?-1:1,p=e[t+d];for(d+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,r),a-=c}return(p?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,l,c=8*a-i-1,u=(1<<c)-1,d=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:a-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),t+=o+d>=1?h/l:h*Math.pow(2,1-d),t*l>=2&&(o++,l/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*l-1)*Math.pow(2,i),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[n+p]=255&s,p+=f,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;e[n+p]=255&o,p+=f,o/=256,c-=8);e[n+p-f]|=128*m}},35615:function(e){"function"===typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},55387:function(e,t,n){"use strict";var r=n(51913)(),i=n(79818),a=i("Object.prototype.toString"),o=function(e){return!(r&&e&&"object"===typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===a(e)},s=function(e){return!!o(e)||null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Array]"!==a(e)&&"[object Function]"===a(e.callee)},l=function(){return o(arguments)}();o.isLegacyArguments=s,e.exports=l?o:s},37114:function(e){e.exports=function(e){return!(!e||"string"===typeof e)&&(e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&"String"!==e.constructor.name))}},89617:function(e){"use strict";var t,n,r=Function.prototype.toString,i="object"===typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"===typeof i&&"function"===typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw n}}),n={},i((function(){throw 42}),null,t)}catch(y){y!==n&&(i=null)}else i=null;var a=/^\s*class\b/,o=function(e){try{var t=r.call(e);return a.test(t)}catch(n){return!1}},s=function(e){try{return!o(e)&&(r.call(e),!0)}catch(t){return!1}},l=Object.prototype.toString,c="[object Object]",u="[object Function]",d="[object GeneratorFunction]",h="[object HTMLAllCollection]",p="[object HTML document.all class]",f="[object HTMLCollection]",m="function"===typeof Symbol&&!!Symbol.toStringTag,g=!(0 in[,]),v=function(){return!1};if("object"===typeof document){var b=document.all;l.call(b)===l.call(document.all)&&(v=function(e){if((g||!e)&&("undefined"===typeof e||"object"===typeof e))try{var t=l.call(e);return(t===h||t===p||t===f||t===c)&&null==e("")}catch(n){}return!1})}e.exports=i?function(e){if(v(e))return!0;if(!e)return!1;if("function"!==typeof e&&"object"!==typeof e)return!1;try{i(e,null,t)}catch(r){if(r!==n)return!1}return!o(e)&&s(e)}:function(e){if(v(e))return!0;if(!e)return!1;if("function"!==typeof e&&"object"!==typeof e)return!1;if(m)return s(e);if(o(e))return!1;var t=l.call(e);return!(t!==u&&t!==d&&!/^\[object HTML/.test(t))&&s(e)}},2625:function(e,t,n){"use strict";var r,i=Object.prototype.toString,a=Function.prototype.toString,o=/^\s*(?:function)?\*/,s=n(51913)(),l=Object.getPrototypeOf,c=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(e){}};e.exports=function(e){if("function"!==typeof e)return!1;if(o.test(a.call(e)))return!0;if(!s){var t=i.call(e);return"[object GeneratorFunction]"===t}if(!l)return!1;if("undefined"===typeof r){var n=c();r=!!n&&l(n)}return l(e)===r}},98006:function(e){"use strict";e.exports=function(e){return e!==e}},7838:function(e,t,n){"use strict";var r=n(28498),i=n(41857),a=n(98006),o=n(41591),s=n(61641),l=r(o(),Number);i(l,{getPolyfill:o,implementation:a,shim:s}),e.exports=l},41591:function(e,t,n){"use strict";var r=n(98006);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:r}},61641:function(e,t,n){"use strict";var r=n(41857),i=n(41591);e.exports=function(){var e=i();return r(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},95943:function(e,t,n){"use strict";var r=n(52730);e.exports=function(e){return!!r(e)}},24138:function(e){e.exports=i;var t=/^(?:\w+:)?\/\/(\S+)$/,n=/^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/,r=/^[^\s\.]+\.\S{2,}$/;function i(e){if("string"!==typeof e)return!1;var i=e.match(t);if(!i)return!1;var a=i[1];return!!a&&!(!n.test(a)&&!r.test(a))}},39198:function(e,t,n){var r=n(33486)["hp"],i={userAgent:!1},a={},o="11.0.0",s="jsrsasign(all) 11.0.0 (2024-01-16) (c) 2010-2023 Kenji Urushima | kjur.github.io/jsrsasign/license",l=l||function(e,t){var n={},r=n.lib={},i=r.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var n=new e;return t&&n.mixIn(t),n.hasOwnProperty("init")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),a=r.WordArray=i.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||s).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var a=0;a<i;a++){var o=n[a>>>2]>>>24-a%4*8&255;t[r+a>>>2]|=o<<24-(r+a)%4*8}else for(a=0;a<i;a+=4)t[r+a>>>2]=n[a>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=i.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n=[],r=0;r<t;r+=4)n.push(4294967296*e.random()|0);return new a.init(n,t)}}),o=n.enc={},s=o.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var a=t[i>>>2]>>>24-i%4*8&255;r.push((a>>>4).toString(16)),r.push((15&a).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new a.init(n,t/2)}},l=o.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var a=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(a))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new a.init(n,t)}},c=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},u=r.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,r=n.words,i=n.sigBytes,o=this.blockSize,s=4*o,l=i/s;l=t?e.ceil(l):e.max((0|l)-this._minBufferSize,0);var c=l*o,u=e.min(4*c,i);if(c){for(var d=0;d<c;d+=o)this._doProcessBlock(r,d);var h=r.splice(0,c);n.sigBytes-=u}return new a.init(h,u)},clone:function(){var e=i.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),d=(r.Hasher=u.extend({cfg:i.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){u.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new d.HMAC.init(e,n).finalize(t)}}}),n.algo={});return n}(Math);(function(e){var t=l,n=t.lib,r=n.Base,i=n.WordArray;t=t.x64={};t.Word=r.extend({init:function(e,t){this.high=e,this.low=t}}),t.WordArray=r.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:8*t.length},toX32:function(){for(var e=this.words,t=e.length,n=[],r=0;r<t;r++){var a=e[r];n.push(a.high),n.push(a.low)}return i.create(n,this.sigBytes)},clone:function(){for(var e=r.clone.call(this),t=e.words=this.words.slice(0),n=t.length,i=0;i<n;i++)t[i]=t[i].clone();return e}})})(),l.lib.Cipher||function(e){var t=l,n=t.lib,r=n.Base,i=n.WordArray,a=n.BufferedBlockAlgorithm,o=t.enc.Base64,s=t.algo.EvpKDF,c=n.Cipher=a.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){a.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(t,n,r){return("string"==typeof n?m:f).encrypt(e,t,n,r)},decrypt:function(t,n,r){return("string"==typeof n?m:f).decrypt(e,t,n,r)}}}});n.StreamCipher=c.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var u=t.mode={},d=function(t,n,r){var i=this._iv;i?this._iv=e:i=this._prevBlock;for(var a=0;a<r;a++)t[n+a]^=i[a]},h=(n.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();h.Encryptor=h.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize;d.call(this,e,t,r),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+r)}}),h.Decryptor=h.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=e.slice(t,t+r);n.decryptBlock(e,t),d.call(this,e,t,r),this._prevBlock=i}}),u=u.CBC=h,h=(t.pad={}).Pkcs7={pad:function(e,t){for(var n=4*t,r=(n=n-e.sigBytes%n,n<<24|n<<16|n<<8|n),a=[],o=0;o<n;o+=4)a.push(r);n=i.create(a,n),e.concat(n)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},n.BlockCipher=c.extend({cfg:c.cfg.extend({mode:u,padding:h}),reset:function(){c.reset.call(this);var e=this.cfg,t=e.iv;e=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=e.createEncryptor;else n=e.createDecryptor,this._minBufferSize=1;this._mode=n.call(e,this,t&&t.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var p=n.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),f=(u=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return e=e.salt,(e?i.create([1398893684,1701076831]).concat(e).concat(t):t).toString(o)},parse:function(e){e=o.parse(e);var t=e.words;if(1398893684==t[0]&&1701076831==t[1]){var n=i.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return p.create({ciphertext:e,salt:n})}},n.SerializableCipher=r.extend({cfg:r.extend({format:u}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r);return t=i.finalize(t),i=i.cfg,p.create({ciphertext:t,key:n,iv:i.iv,algorithm:e,mode:i.mode,padding:i.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),m=(t=(t.kdf={}).OpenSSL={execute:function(e,t,n,r){return r||(r=i.random(8)),e=s.create({keySize:t+n}).compute(e,r),n=i.create(e.words.slice(t),4*n),e.sigBytes=4*t,p.create({key:e,iv:n,salt:r})}},n.PasswordBasedCipher=f.extend({cfg:f.cfg.extend({kdf:t}),encrypt:function(e,t,n,r){return r=this.cfg.extend(r),n=r.kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,e=f.encrypt.call(this,e,t,n.key,r),e.mixIn(n),e},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt),r.iv=n.iv,f.decrypt.call(this,e,t,n.key,r)}}))}(),function(){for(var e=l,t=e.lib.BlockCipher,n=e.algo,r=[],i=[],a=[],o=[],s=[],c=[],u=[],d=[],h=[],p=[],f=[],m=0;256>m;m++)f[m]=128>m?m<<1:m<<1^283;var g=0,v=0;for(m=0;256>m;m++){var b=v^v<<1^v<<2^v<<3^v<<4;b=b>>>8^255&b^99;r[g]=b,i[b]=g;var y=f[g],w=f[y],E=f[w],_=257*f[b]^16843008*b;a[g]=_<<24|_>>>8,o[g]=_<<16|_>>>16,s[g]=_<<8|_>>>24,c[g]=_,_=16843009*E^65537*w^257*y^16843008*g,u[b]=_<<24|_>>>8,d[b]=_<<16|_>>>16,h[b]=_<<8|_>>>24,p[b]=_,g?(g=y^f[f[f[E^y]]],v^=f[f[v]]):g=v=1}var S=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes/4,i=(e=4*((this._nRounds=n+6)+1),this._keySchedule=[]),a=0;a<e;a++)if(a<n)i[a]=t[a];else{var o=i[a-1];a%n?6<n&&4==a%n&&(o=r[o>>>24]<<24|r[o>>>16&255]<<16|r[o>>>8&255]<<8|r[255&o]):(o=o<<8|o>>>24,o=r[o>>>24]<<24|r[o>>>16&255]<<16|r[o>>>8&255]<<8|r[255&o],o^=S[a/n|0]<<24),i[a]=i[a-n]^o}for(t=this._invKeySchedule=[],n=0;n<e;n++)a=e-n,o=n%4?i[a]:i[a-4],t[n]=4>n||4>=a?o:u[r[o>>>24]]^d[r[o>>>16&255]]^h[r[o>>>8&255]]^p[r[255&o]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,o,s,c,r)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,d,h,p,i),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var l=this._nRounds,c=e[t]^n[0],u=e[t+1]^n[1],d=e[t+2]^n[2],h=e[t+3]^n[3],p=4,f=1;f<l;f++){var m=r[c>>>24]^i[u>>>16&255]^a[d>>>8&255]^o[255&h]^n[p++],g=r[u>>>24]^i[d>>>16&255]^a[h>>>8&255]^o[255&c]^n[p++],v=r[d>>>24]^i[h>>>16&255]^a[c>>>8&255]^o[255&u]^n[p++];h=r[h>>>24]^i[c>>>16&255]^a[u>>>8&255]^o[255&d]^n[p++],c=m,u=g,d=v}m=(s[c>>>24]<<24|s[u>>>16&255]<<16|s[d>>>8&255]<<8|s[255&h])^n[p++],g=(s[u>>>24]<<24|s[d>>>16&255]<<16|s[h>>>8&255]<<8|s[255&c])^n[p++],v=(s[d>>>24]<<24|s[h>>>16&255]<<16|s[c>>>8&255]<<8|s[255&u])^n[p++],h=(s[h>>>24]<<24|s[c>>>16&255]<<16|s[u>>>8&255]<<8|s[255&d])^n[p++],e[t]=m,e[t+1]=g,e[t+2]=v,e[t+3]=h},keySize:8});e.AES=t._createHelper(n)}(),function(){function e(e,t){var n=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=n,this._lBlock^=n<<e}function t(e,t){var n=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=n,this._rBlock^=n<<e}var n=l,r=n.lib,i=r.WordArray,a=(r=r.BlockCipher,n.algo),o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],u=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],h=a.DES=r.extend({_doReset:function(){for(var e=this._key.words,t=[],n=0;56>n;n++){var r=o[n]-1;t[n]=e[r>>>5]>>>31-r%32&1}for(e=this._subKeys=[],r=0;16>r;r++){var i=e[r]=[],a=c[r];for(n=0;24>n;n++)i[n/6|0]|=t[(s[n]-1+a)%28]<<31-n%6,i[4+(n/6|0)]|=t[28+(s[n+24]-1+a)%28]<<31-n%6;for(i[0]=i[0]<<1|i[0]>>>31,n=1;7>n;n++)i[n]>>>=4*(n-1)+3;i[7]=i[7]<<5|i[7]>>>27}for(t=this._invSubKeys=[],n=0;16>n;n++)t[n]=e[15-n]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(n,r,i){this._lBlock=n[r],this._rBlock=n[r+1],e.call(this,4,252645135),e.call(this,16,65535),t.call(this,2,858993459),t.call(this,8,16711935),e.call(this,1,1431655765);for(var a=0;16>a;a++){for(var o=i[a],s=this._lBlock,l=this._rBlock,c=0,h=0;8>h;h++)c|=u[h][((l^o[h])&d[h])>>>0];this._lBlock=l,this._rBlock=s^c}i=this._lBlock,this._lBlock=this._rBlock,this._rBlock=i,e.call(this,1,1431655765),t.call(this,8,16711935),t.call(this,2,858993459),e.call(this,16,65535),e.call(this,4,252645135),n[r]=this._lBlock,n[r+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});n.DES=r._createHelper(h),a=a.TripleDES=r.extend({_doReset:function(){var e=this._key.words;this._des1=h.createEncryptor(i.create(e.slice(0,2))),this._des2=h.createEncryptor(i.create(e.slice(2,4))),this._des3=h.createEncryptor(i.create(e.slice(4,6)))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2}),n.TripleDES=r._createHelper(a)}(),function(){var e=l,t=e.lib.WordArray;e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp(),e=[];for(var i=0;i<n;i+=3)for(var a=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,o=0;4>o&&i+.75*o<n;o++)e.push(r.charAt(a>>>6*(3-o)&63));if(t=r.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var n=e.length,r=this._map,i=r.charAt(64);i&&(i=e.indexOf(i),-1!=i&&(n=i));i=[];for(var a=0,o=0;o<n;o++)if(o%4){var s=r.indexOf(e.charAt(o-1))<<o%4*2,l=r.indexOf(e.charAt(o))>>>6-o%4*2;i[a>>>2]|=(s|l)<<24-a%4*8,a++}return t.create(i,a)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(e){function t(e,t,n,r,i,a,o){return e=e+(t&n|~t&r)+i+o,(e<<a|e>>>32-a)+t}function n(e,t,n,r,i,a,o){return e=e+(t&r|n&~r)+i+o,(e<<a|e>>>32-a)+t}function r(e,t,n,r,i,a,o){return e=e+(t^n^r)+i+o,(e<<a|e>>>32-a)+t}function i(e,t,n,r,i,a,o){return e=e+(n^(t|~r))+i+o,(e<<a|e>>>32-a)+t}for(var a=l,o=a.lib,s=o.WordArray,c=o.Hasher,u=(o=a.algo,[]),d=0;64>d;d++)u[d]=4294967296*e.abs(e.sin(d+1))|0;o=o.MD5=c.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,a){for(var o=0;16>o;o++){var s=a+o,l=e[s];e[s]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}o=this._hash.words,s=e[a+0],l=e[a+1];var c=e[a+2],d=e[a+3],h=e[a+4],p=e[a+5],f=e[a+6],m=e[a+7],g=e[a+8],v=e[a+9],b=e[a+10],y=e[a+11],w=e[a+12],E=e[a+13],_=e[a+14],S=e[a+15],k=o[0],x=o[1],A=o[2],N=o[3];k=t(k,x,A,N,s,7,u[0]),N=t(N,k,x,A,l,12,u[1]),A=t(A,N,k,x,c,17,u[2]),x=t(x,A,N,k,d,22,u[3]),k=t(k,x,A,N,h,7,u[4]),N=t(N,k,x,A,p,12,u[5]),A=t(A,N,k,x,f,17,u[6]),x=t(x,A,N,k,m,22,u[7]),k=t(k,x,A,N,g,7,u[8]),N=t(N,k,x,A,v,12,u[9]),A=t(A,N,k,x,b,17,u[10]),x=t(x,A,N,k,y,22,u[11]),k=t(k,x,A,N,w,7,u[12]),N=t(N,k,x,A,E,12,u[13]),A=t(A,N,k,x,_,17,u[14]),x=t(x,A,N,k,S,22,u[15]),k=n(k,x,A,N,l,5,u[16]),N=n(N,k,x,A,f,9,u[17]),A=n(A,N,k,x,y,14,u[18]),x=n(x,A,N,k,s,20,u[19]),k=n(k,x,A,N,p,5,u[20]),N=n(N,k,x,A,b,9,u[21]),A=n(A,N,k,x,S,14,u[22]),x=n(x,A,N,k,h,20,u[23]),k=n(k,x,A,N,v,5,u[24]),N=n(N,k,x,A,_,9,u[25]),A=n(A,N,k,x,d,14,u[26]),x=n(x,A,N,k,g,20,u[27]),k=n(k,x,A,N,E,5,u[28]),N=n(N,k,x,A,c,9,u[29]),A=n(A,N,k,x,m,14,u[30]),x=n(x,A,N,k,w,20,u[31]),k=r(k,x,A,N,p,4,u[32]),N=r(N,k,x,A,g,11,u[33]),A=r(A,N,k,x,y,16,u[34]),x=r(x,A,N,k,_,23,u[35]),k=r(k,x,A,N,l,4,u[36]),N=r(N,k,x,A,h,11,u[37]),A=r(A,N,k,x,m,16,u[38]),x=r(x,A,N,k,b,23,u[39]),k=r(k,x,A,N,E,4,u[40]),N=r(N,k,x,A,s,11,u[41]),A=r(A,N,k,x,d,16,u[42]),x=r(x,A,N,k,f,23,u[43]),k=r(k,x,A,N,v,4,u[44]),N=r(N,k,x,A,w,11,u[45]),A=r(A,N,k,x,S,16,u[46]),x=r(x,A,N,k,c,23,u[47]),k=i(k,x,A,N,s,6,u[48]),N=i(N,k,x,A,m,10,u[49]),A=i(A,N,k,x,_,15,u[50]),x=i(x,A,N,k,p,21,u[51]),k=i(k,x,A,N,w,6,u[52]),N=i(N,k,x,A,d,10,u[53]),A=i(A,N,k,x,b,15,u[54]),x=i(x,A,N,k,l,21,u[55]),k=i(k,x,A,N,g,6,u[56]),N=i(N,k,x,A,S,10,u[57]),A=i(A,N,k,x,f,15,u[58]),x=i(x,A,N,k,E,21,u[59]),k=i(k,x,A,N,h,6,u[60]),N=i(N,k,x,A,y,10,u[61]),A=i(A,N,k,x,c,15,u[62]),x=i(x,A,N,k,v,21,u[63]);o[0]=o[0]+k|0,o[1]=o[1]+x|0,o[2]=o[2]+A|0,o[3]=o[3]+N|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;n[i>>>5]|=128<<24-i%32;var a=e.floor(r/4294967296);for(n[15+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),n[14+(i+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(n.length+1),this._process(),t=this._hash,n=t.words,r=0;4>r;r++)i=n[r],n[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8);return t},clone:function(){var e=c.clone.call(this);return e._hash=this._hash.clone(),e}}),a.MD5=c._createHelper(o),a.HmacMD5=c._createHmacHelper(o)}(Math),function(){var e=l,t=e.lib,n=t.WordArray,r=t.Hasher,i=[];t=e.algo.SHA1=r.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],a=n[1],o=n[2],s=n[3],l=n[4],c=0;80>c;c++){if(16>c)i[c]=0|e[t+c];else{var u=i[c-3]^i[c-8]^i[c-14]^i[c-16];i[c]=u<<1|u>>>31}u=(r<<5|r>>>27)+l+i[c],u=20>c?u+(1518500249+(a&o|~a&s)):40>c?u+(1859775393+(a^o^s)):60>c?u+((a&o|a&s|o&s)-1894007588):u+((a^o^s)-899497514),l=s,s=o,o=a<<30|a>>>2,a=r,r=u}n[0]=n[0]+r|0,n[1]=n[1]+a|0,n[2]=n[2]+o|0,n[3]=n[3]+s|0,n[4]=n[4]+l|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=Math.floor(n/4294967296),t[15+(r+64>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA1=r._createHelper(t),e.HmacSHA1=r._createHmacHelper(t)}(),function(e){for(var t=l,n=t.lib,r=n.WordArray,i=n.Hasher,a=(n=t.algo,[]),o=[],s=function(e){return 4294967296*(e-(0|e))|0},c=2,u=0;64>u;){var d;e:{d=c;for(var h=e.sqrt(d),p=2;p<=h;p++)if(!(d%p)){d=!1;break e}d=!0}d&&(8>u&&(a[u]=s(e.pow(c,.5))),o[u]=s(e.pow(c,1/3)),u++),c++}var f=[];n=n.SHA256=i.extend({_doReset:function(){this._hash=new r.init(a.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],s=n[3],l=n[4],c=n[5],u=n[6],d=n[7],h=0;64>h;h++){if(16>h)f[h]=0|e[t+h];else{var p=f[h-15],m=f[h-2];f[h]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+f[h-7]+((m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10)+f[h-16]}p=d+((l<<26|l>>>6)^(l<<21|l>>>11)^(l<<7|l>>>25))+(l&c^~l&u)+o[h]+f[h],m=((r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22))+(r&i^r&a^i&a),d=u,u=c,c=l,l=s+p|0,s=a,a=i,i=r,r=p+m|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+s|0,n[4]=n[4]+l|0,n[5]=n[5]+c|0,n[6]=n[6]+u|0,n[7]=n[7]+d|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=i._createHelper(n),t.HmacSHA256=i._createHmacHelper(n)}(Math),function(){var e=l,t=e.lib.WordArray,n=e.algo,r=n.SHA256;n=n.SHA224=r.extend({_doReset:function(){this._hash=new t.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=r._doFinalize.call(this);return e.sigBytes-=4,e}});e.SHA224=r._createHelper(n),e.HmacSHA224=r._createHmacHelper(n)}(),function(){function e(){return i.create.apply(i,arguments)}for(var t=l,n=t.lib.Hasher,r=t.x64,i=r.Word,a=r.WordArray,o=(r=t.algo,[e(1116352408,3609767458),e(1899447441,602891725),e(3049323471,3964484399),e(3921009573,2173295548),e(961987163,4081628472),e(1508970993,3053834265),e(2453635748,2937671579),e(2870763221,3664609560),e(3624381080,2734883394),e(310598401,1164996542),e(607225278,1323610764),e(1426881987,3590304994),e(1925078388,4068182383),e(2162078206,991336113),e(2614888103,633803317),e(3248222580,3479774868),e(3835390401,2666613458),e(4022224774,944711139),e(264347078,2341262773),e(604807628,2007800933),e(770255983,1495990901),e(1249150122,1856431235),e(1555081692,3175218132),e(1996064986,2198950837),e(2554220882,3999719339),e(2821834349,766784016),e(2952996808,2566594879),e(3210313671,3203337956),e(3336571891,1034457026),e(3584528711,2466948901),e(113926993,3758326383),e(338241895,168717936),e(666307205,1188179964),e(773529912,1546045734),e(1294757372,1522805485),e(1396182291,2643833823),e(1695183700,2343527390),e(1986661051,1014477480),e(2177026350,1206759142),e(2456956037,344077627),e(2730485921,1290863460),e(2820302411,3158454273),e(3259730800,3505952657),e(3345764771,106217008),e(3516065817,3606008344),e(3600352804,1432725776),e(4094571909,1467031594),e(275423344,851169720),e(430227734,3100823752),e(506948616,1363258195),e(659060556,3750685593),e(883997877,3785050280),e(958139571,3318307427),e(1322822218,3812723403),e(1537002063,2003034995),e(1747873779,3602036899),e(1955562222,1575990012),e(2024104815,1125592928),e(2227730452,2716904306),e(2361852424,442776044),e(2428436474,593698344),e(2756734187,3733110249),e(3204031479,2999351573),e(3329325298,3815920427),e(3391569614,3928383900),e(3515267271,566280711),e(3940187606,3454069534),e(4118630271,4000239992),e(116418474,1914138554),e(174292421,2731055270),e(289380356,3203993006),e(460393269,320620315),e(685471733,587496836),e(852142971,1086792851),e(1017036298,365543100),e(1126000580,2618297676),e(1288033470,3409855158),e(1501505948,4234509866),e(1607167915,987167468),e(1816402316,1246189591)]),s=[],c=0;80>c;c++)s[c]=e();r=r.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],l=n[3],c=n[4],u=n[5],d=n[6],h=(n=n[7],r.high),p=r.low,f=i.high,m=i.low,g=a.high,v=a.low,b=l.high,y=l.low,w=c.high,E=c.low,_=u.high,S=u.low,k=d.high,x=d.low,A=n.high,N=n.low,C=h,T=p,R=f,O=m,I=g,L=v,D=b,P=y,M=w,B=E,F=_,$=S,U=k,j=x,V=A,K=N,H=0;80>H;H++){var G=s[H];if(16>H)var z=G.high=0|e[t+2*H],q=G.low=0|e[t+2*H+1];else{z=s[H-15],q=z.high;var X=z.low,W=(z=(q>>>1|X<<31)^(q>>>8|X<<24)^q>>>7,X=(X>>>1|q<<31)^(X>>>8|q<<24)^(X>>>7|q<<25),s[H-2]),Y=(q=W.high,W.low),Q=(W=(q>>>19|Y<<13)^(q<<3|Y>>>29)^q>>>6,Y=(Y>>>19|q<<13)^(Y<<3|q>>>29)^(Y>>>6|q<<26),q=s[H-7],q.high),J=s[H-16],Z=J.high;J=J.low,q=X+q.low,z=z+Q+(q>>>0<X>>>0?1:0),q=q+Y,z=z+W+(q>>>0<Y>>>0?1:0),q=q+J,z=z+Z+(q>>>0<J>>>0?1:0);G.high=z,G.low=q}Q=M&F^~M&U,J=B&$^~B&j,G=C&R^C&I^R&I;var ee=T&O^T&L^O&L,te=(X=(C>>>28|T<<4)^(C<<30|T>>>2)^(C<<25|T>>>7),W=(T>>>28|C<<4)^(T<<30|C>>>2)^(T<<25|C>>>7),Y=o[H],Y.high),ne=Y.low;Y=K+((B>>>14|M<<18)^(B>>>18|M<<14)^(B<<23|M>>>9)),Z=V+((M>>>14|B<<18)^(M>>>18|B<<14)^(M<<23|B>>>9))+(Y>>>0<K>>>0?1:0),Y=Y+J,Z=Z+Q+(Y>>>0<J>>>0?1:0),Y=Y+ne,Z=Z+te+(Y>>>0<ne>>>0?1:0),Y=Y+q,Z=Z+z+(Y>>>0<q>>>0?1:0),q=W+ee,G=X+G+(q>>>0<W>>>0?1:0),V=U,K=j,U=F,j=$,F=M,$=B,B=P+Y|0,M=D+Z+(B>>>0<P>>>0?1:0)|0,D=I,P=L,I=R,L=O,R=C,O=T,T=Y+q|0,C=Z+G+(T>>>0<Y>>>0?1:0)|0}p=r.low=p+T,r.high=h+C+(p>>>0<T>>>0?1:0),m=i.low=m+O,i.high=f+R+(m>>>0<O>>>0?1:0),v=a.low=v+L,a.high=g+I+(v>>>0<L>>>0?1:0),y=l.low=y+P,l.high=b+D+(y>>>0<P>>>0?1:0),E=c.low=E+B,c.high=w+M+(E>>>0<B>>>0?1:0),S=u.low=S+$,u.high=_+F+(S>>>0<$>>>0?1:0),x=d.low=x+j,d.high=k+U+(x>>>0<j>>>0?1:0),N=n.low=N+K,n.high=A+V+(N>>>0<K>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[30+(r+128>>>10<<5)]=Math.floor(n/4294967296),t[31+(r+128>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),t.SHA512=n._createHelper(r),t.HmacSHA512=n._createHmacHelper(r)}(),function(){var e=l,t=e.x64,n=t.Word,r=t.WordArray,i=(t=e.algo,t.SHA512);t=t.SHA384=i.extend({_doReset:function(){this._hash=new r.init([new n.init(3418070365,3238371032),new n.init(1654270250,914150663),new n.init(2438529370,812702999),new n.init(355462360,4144912697),new n.init(1731405415,4290775857),new n.init(2394180231,1750603025),new n.init(3675008525,1694076839),new n.init(1203062813,3204075428)])},_doFinalize:function(){var e=i._doFinalize.call(this);return e.sigBytes-=16,e}});e.SHA384=i._createHelper(t),e.HmacSHA384=i._createHmacHelper(t)}(),function(){var e=l,t=e.lib,n=t.WordArray,r=t.Hasher,i=(t=e.algo,n.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13])),a=n.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),o=n.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),s=n.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),c=n.create([0,1518500249,1859775393,2400959708,2840853838]),u=n.create([1352829926,1548603684,1836072691,2053994217,0]);t=t.RIPEMD160=r.extend({_doReset:function(){this._hash=n.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=0;16>n;n++){var r=t+n,l=e[r];e[r]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}r=this._hash.words,l=c.words;var d,h,p,f,m,g,v,b,y,w,E=u.words,_=i.words,S=a.words,k=o.words,x=s.words;g=d=r[0],v=h=r[1],b=p=r[2],y=f=r[3],w=m=r[4];var A;for(n=0;80>n;n+=1)A=d+e[t+_[n]]|0,A=16>n?A+((h^p^f)+l[0]):32>n?A+((h&p|~h&f)+l[1]):48>n?A+(((h|~p)^f)+l[2]):64>n?A+((h&f|p&~f)+l[3]):A+((h^(p|~f))+l[4]),A|=0,A=A<<k[n]|A>>>32-k[n],A=A+m|0,d=m,m=f,f=p<<10|p>>>22,p=h,h=A,A=g+e[t+S[n]]|0,A=16>n?A+((v^(b|~y))+E[0]):32>n?A+((v&y|b&~y)+E[1]):48>n?A+(((v|~b)^y)+E[2]):64>n?A+((v&b|~v&y)+E[3]):A+((v^b^y)+E[4]),A|=0,A=A<<x[n]|A>>>32-x[n],A=A+w|0,g=w,w=y,y=b<<10|b>>>22,b=v,v=A;A=r[1]+p+y|0,r[1]=r[2]+f+w|0,r[2]=r[3]+m+g|0,r[3]=r[4]+d+v|0,r[4]=r[0]+h+b|0,r[0]=A},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;for(t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process(),e=this._hash,t=e.words,n=0;5>n;n++)r=t[n],t[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8);return e},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});e.RIPEMD160=r._createHelper(t),e.HmacRIPEMD160=r._createHmacHelper(t)}(Math),function(){var e=l,t=e.enc.Utf8;e.algo.HMAC=e.lib.Base.extend({init:function(e,n){e=this._hasher=new e.init,"string"==typeof n&&(n=t.parse(n));var r=e.blockSize,i=4*r;n.sigBytes>i&&(n=e.finalize(n)),n.clamp();for(var a=this._oKey=n.clone(),o=this._iKey=n.clone(),s=a.words,l=o.words,c=0;c<r;c++)s[c]^=1549556828,l[c]^=909522486;a.sigBytes=o.sigBytes=i,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher;return e=t.finalize(e),t.reset(),t.finalize(this._oKey.clone().concat(e))}})}(),function(){var e=l,t=e.lib,n=t.Base,r=t.WordArray,i=(t=e.algo,t.HMAC),a=t.PBKDF2=n.extend({cfg:n.extend({keySize:4,hasher:t.SHA1,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){var n=this.cfg,a=i.create(n.hasher,e),o=r.create(),s=r.create([1]),l=o.words,c=s.words,u=n.keySize;for(n=n.iterations;l.length<u;){var d=a.update(t).finalize(s);a.reset();for(var h=d.words,p=h.length,f=d,m=1;m<n;m++){f=a.finalize(f),a.reset();for(var g=f.words,v=0;v<p;v++)h[v]^=g[v]}o.concat(d),c[0]++}return o.sigBytes=4*u,o}});e.PBKDF2=function(e,t,n){return a.create(n).compute(e,t)}}(); +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */ +var c,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="=";function h(e){var t,n,r="";for(t=0;t+3<=e.length;t+=3)n=parseInt(e.substring(t,t+3),16),r+=u.charAt(n>>6)+u.charAt(63&n);if(t+1==e.length?(n=parseInt(e.substring(t,t+1),16),r+=u.charAt(n<<2)):t+2==e.length&&(n=parseInt(e.substring(t,t+2),16),r+=u.charAt(n>>2)+u.charAt((3&n)<<4)),d)while((3&r.length)>0)r+=d;return r}function p(e){var t,n,r,i="",a=0;for(t=0;t<e.length;++t){if(e.charAt(t)==d)break;r=u.indexOf(e.charAt(t)),r<0||(0==a?(i+=N(r>>2),n=3&r,a=1):1==a?(i+=N(n<<2|r>>4),n=15&r,a=2):2==a?(i+=N(n),i+=N(r>>2),n=3&r,a=3):(i+=N(n<<2|r>>4),i+=N(15&r),a=0))}return 1==a&&(i+=N(n<<2)),i}function f(e){var t,n=p(e),r=new Array;for(t=0;2*t<n.length;++t)r[t]=parseInt(n.substring(2*t,2*t+2),16);return r}var m=0xdeadbeefcafe,g=15715070==(16777215&m);function v(e,t,n){null!=e&&("number"==typeof e?this.fromNumber(e,t,n):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function b(){return new v(null)}function y(e,t,n,r,i,a){while(--a>=0){var o=t*this[e++]+n[r]+i;i=Math.floor(o/67108864),n[r++]=67108863&o}return i}function w(e,t,n,r,i,a){var o=32767&t,s=t>>15;while(--a>=0){var l=32767&this[e],c=this[e++]>>15,u=s*l+c*o;l=o*l+((32767&u)<<15)+n[r]+(1073741823&i),i=(l>>>30)+(u>>>15)+s*c+(i>>>30),n[r++]=1073741823&l}return i}function E(e,t,n,r,i,a){var o=16383&t,s=t>>14;while(--a>=0){var l=16383&this[e],c=this[e++]>>14,u=s*l+c*o;l=o*l+((16383&u)<<14)+n[r]+i,i=(l>>28)+(u>>14)+s*c,n[r++]=268435455&l}return i}g&&"Microsoft Internet Explorer"==i.appName?(v.prototype.am=w,c=30):g&&"Netscape"!=i.appName?(v.prototype.am=y,c=26):(v.prototype.am=E,c=28),v.prototype.DB=c,v.prototype.DM=(1<<c)-1,v.prototype.DV=1<<c;var _=52;v.prototype.FV=Math.pow(2,_),v.prototype.F1=_-c,v.prototype.F2=2*c-_;var S,k,x="0123456789abcdefghijklmnopqrstuvwxyz",A=new Array;for(S="0".charCodeAt(0),k=0;k<=9;++k)A[S++]=k;for(S="a".charCodeAt(0),k=10;k<36;++k)A[S++]=k;for(S="A".charCodeAt(0),k=10;k<36;++k)A[S++]=k;function N(e){return x.charAt(e)}function C(e,t){var n=A[e.charCodeAt(t)];return null==n?-1:n}function T(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s}function R(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0}function O(e){var t=b();return t.fromInt(e),t}function I(e,t){var n;if(16==t)n=4;else if(8==t)n=3;else if(256==t)n=8;else if(2==t)n=1;else if(32==t)n=5;else{if(4!=t)return void this.fromRadix(e,t);n=2}this.t=0,this.s=0;var r=e.length,i=!1,a=0;while(--r>=0){var o=8==n?255&e[r]:C(e,r);o<0?"-"==e.charAt(r)&&(i=!0):(i=!1,0==a?this[this.t++]=o:a+n>this.DB?(this[this.t-1]|=(o&(1<<this.DB-a)-1)<<a,this[this.t++]=o>>this.DB-a):this[this.t-1]|=o<<a,a+=n,a>=this.DB&&(a-=this.DB))}8==n&&0!=(128&e[0])&&(this.s=-1,a>0&&(this[this.t-1]|=(1<<this.DB-a)-1<<a)),this.clamp(),i&&v.ZERO.subTo(this,this)}function L(){var e=this.s&this.DM;while(this.t>0&&this[this.t-1]==e)--this.t}function D(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var n,r=(1<<t)-1,i=!1,a="",o=this.t,s=this.DB-o*this.DB%t;if(o-- >0){s<this.DB&&(n=this[o]>>s)>0&&(i=!0,a=N(n));while(o>=0)s<t?(n=(this[o]&(1<<s)-1)<<t-s,n|=this[--o]>>(s+=this.DB-t)):(n=this[o]>>(s-=t)&r,s<=0&&(s+=this.DB,--o)),n>0&&(i=!0),i&&(a+=N(n))}return i?a:"0"}function P(){var e=b();return v.ZERO.subTo(this,e),e}function M(){return this.s<0?this.negate():this}function B(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(t=n-e.t,0!=t)return this.s<0?-t:t;while(--n>=0)if(0!=(t=this[n]-e[n]))return t;return 0}function F(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function $(){return this.t<=0?0:this.DB*(this.t-1)+F(this[this.t-1]^this.s&this.DM)}function U(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s}function j(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s}function V(e,t){var n,r=e%this.DB,i=this.DB-r,a=(1<<i)-1,o=Math.floor(e/this.DB),s=this.s<<r&this.DM;for(n=this.t-1;n>=0;--n)t[n+o+1]=this[n]>>i|s,s=(this[n]&a)<<r;for(n=o-1;n>=0;--n)t[n]=0;t[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function K(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)t.t=0;else{var r=e%this.DB,i=this.DB-r,a=(1<<r)-1;t[0]=this[n]>>r;for(var o=n+1;o<this.t;++o)t[o-n-1]|=(this[o]&a)<<i,t[o-n]=this[o]>>r;r>0&&(t[this.t-n-1]|=(this.s&a)<<i),t.t=this.t-n,t.clamp()}}function H(e,t){var n=0,r=0,i=Math.min(e.t,this.t);while(n<i)r+=this[n]-e[n],t[n++]=r&this.DM,r>>=this.DB;if(e.t<this.t){r-=e.s;while(n<this.t)r+=this[n],t[n++]=r&this.DM,r>>=this.DB;r+=this.s}else{r+=this.s;while(n<e.t)r-=e[n],t[n++]=r&this.DM,r>>=this.DB;r-=e.s}t.s=r<0?-1:0,r<-1?t[n++]=this.DV+r:r>0&&(t[n++]=r),t.t=n,t.clamp()}function G(e,t){var n=this.abs(),r=e.abs(),i=n.t;t.t=i+r.t;while(--i>=0)t[i]=0;for(i=0;i<r.t;++i)t[i+n.t]=n.am(0,r[i],t,i,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&v.ZERO.subTo(t,t)}function z(e){var t=this.abs(),n=e.t=2*t.t;while(--n>=0)e[n]=0;for(n=0;n<t.t-1;++n){var r=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,r,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()}function q(e,t,n){var r=e.abs();if(!(r.t<=0)){var i=this.abs();if(i.t<r.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=b());var a=b(),o=this.s,s=e.s,l=this.DB-F(r[r.t-1]);l>0?(r.lShiftTo(l,a),i.lShiftTo(l,n)):(r.copyTo(a),i.copyTo(n));var c=a.t,u=a[c-1];if(0!=u){var d=u*(1<<this.F1)+(c>1?a[c-2]>>this.F2:0),h=this.FV/d,p=(1<<this.F1)/d,f=1<<this.F2,m=n.t,g=m-c,y=null==t?b():t;a.dlShiftTo(g,y),n.compareTo(y)>=0&&(n[n.t++]=1,n.subTo(y,n)),v.ONE.dlShiftTo(c,y),y.subTo(a,a);while(a.t<c)a[a.t++]=0;while(--g>=0){var w=n[--m]==u?this.DM:Math.floor(n[m]*h+(n[m-1]+f)*p);if((n[m]+=a.am(0,w,n,g,0,c))<w){a.dlShiftTo(g,y),n.subTo(y,n);while(n[m]<--w)n.subTo(y,n)}}null!=t&&(n.drShiftTo(c,t),o!=s&&v.ZERO.subTo(t,t)),n.t=c,n.clamp(),l>0&&n.rShiftTo(l,n),o<0&&v.ZERO.subTo(n,n)}}}function X(e){var t=b();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(v.ZERO)>0&&e.subTo(t,t),t}function W(e){this.m=e}function Y(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Q(e){return e}function J(e){e.divRemTo(this.m,null,e)}function Z(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function ee(e,t){e.squareTo(t),this.reduce(t)}function te(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return t=t*(2-(15&e)*t)&15,t=t*(2-(255&e)*t)&255,t=t*(2-((65535&e)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function ne(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function re(e){var t=b();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(v.ZERO)>0&&this.m.subTo(t,t),t}function ie(e){var t=b();return e.copyTo(t),this.reduce(t),t}function ae(e){while(e.t<=this.mt2)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],r=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;n=t+this.m.t,e[n]+=this.m.am(0,r,e,t,0,this.m.t);while(e[n]>=e.DV)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function oe(e,t){e.squareTo(t),this.reduce(t)}function se(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function le(){return 0==(this.t>0?1&this[0]:this.s)}function ce(e,t){if(e>4294967295||e<1)return v.ONE;var n=b(),r=b(),i=t.convert(this),a=F(e)-1;i.copyTo(n);while(--a>=0)if(t.sqrTo(n,r),(e&1<<a)>0)t.mulTo(r,i,n);else{var o=n;n=r,r=o}return t.revert(n)}function ue(e,t){var n;return n=e<256||t.isEven()?new W(t):new ne(t),this.exp(e,n)} +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */ +function de(){var e=b();return this.copyTo(e),e}function he(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function pe(){return 0==this.t?this.s:this[0]<<24>>24}function fe(){return 0==this.t?this.s:this[0]<<16>>16}function me(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function ge(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1}function ve(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),n=Math.pow(e,t),r=O(n),i=b(),a=b(),o="";this.divRemTo(r,i,a);while(i.signum()>0)o=(n+a.intValue()).toString(e).substr(1)+o,i.divRemTo(r,i,a);return a.intValue().toString(e)+o}function be(e,t){this.fromInt(0),null==t&&(t=10);for(var n=this.chunkSize(t),r=Math.pow(t,n),i=!1,a=0,o=0,s=0;s<e.length;++s){var l=C(e,s);l<0?"-"==e.charAt(s)&&0==this.signum()&&(i=!0):(o=t*o+l,++a>=n&&(this.dMultiply(r),this.dAddOffset(o,0),a=0,o=0))}a>0&&(this.dMultiply(Math.pow(t,a)),this.dAddOffset(o,0)),i&&v.ZERO.subTo(this,this)}function ye(e,t,n){if("number"==typeof t)if(e<2)this.fromInt(1);else{this.fromNumber(e,n),this.testBit(e-1)||this.bitwiseTo(v.ONE.shiftLeft(e-1),Ne,this),this.isEven()&&this.dAddOffset(1,0);while(!this.isProbablePrime(t))this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(v.ONE.shiftLeft(e-1),this)}else{var r=new Array,i=7&e;r.length=1+(e>>3),t.nextBytes(r),i>0?r[0]&=(1<<i)-1:r[0]=0,this.fromString(r,256)}}function we(){var e=this.t,t=new Array;t[0]=this.s;var n,r=this.DB-e*this.DB%8,i=0;if(e-- >0){r<this.DB&&(n=this[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);while(e>=0)r<8?(n=(this[e]&(1<<r)-1)<<8-r,n|=this[--e]>>(r+=this.DB-8)):(n=this[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),0!=(128&n)&&(n|=-256),0==i&&(128&this.s)!=(128&n)&&++i,(i>0||n!=this.s)&&(t[i++]=n)}return t}function Ee(e){return 0==this.compareTo(e)}function _e(e){return this.compareTo(e)<0?this:e}function Se(e){return this.compareTo(e)>0?this:e}function ke(e,t,n){var r,i,a=Math.min(e.t,this.t);for(r=0;r<a;++r)n[r]=t(this[r],e[r]);if(e.t<this.t){for(i=e.s&this.DM,r=a;r<this.t;++r)n[r]=t(this[r],i);n.t=this.t}else{for(i=this.s&this.DM,r=a;r<e.t;++r)n[r]=t(i,e[r]);n.t=e.t}n.s=t(this.s,e.s),n.clamp()}function xe(e,t){return e&t}function Ae(e){var t=b();return this.bitwiseTo(e,xe,t),t}function Ne(e,t){return e|t}function Ce(e){var t=b();return this.bitwiseTo(e,Ne,t),t}function Te(e,t){return e^t}function Re(e){var t=b();return this.bitwiseTo(e,Te,t),t}function Oe(e,t){return e&~t}function Ie(e){var t=b();return this.bitwiseTo(e,Oe,t),t}function Le(){for(var e=b(),t=0;t<this.t;++t)e[t]=this.DM&~this[t];return e.t=this.t,e.s=~this.s,e}function De(e){var t=b();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function Pe(e){var t=b();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function Me(e){if(0==e)return-1;var t=0;return 0==(65535&e)&&(e>>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function Be(){for(var e=0;e<this.t;++e)if(0!=this[e])return e*this.DB+Me(this[e]);return this.s<0?this.t*this.DB:-1}function Fe(e){var t=0;while(0!=e)e&=e-1,++t;return t}function $e(){for(var e=0,t=this.s&this.DM,n=0;n<this.t;++n)e+=Fe(this[n]^t);return e}function Ue(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this[t]&1<<e%this.DB)}function je(e,t){var n=v.ONE.shiftLeft(e);return this.bitwiseTo(n,t,n),n}function Ve(e){return this.changeBit(e,Ne)}function Ke(e){return this.changeBit(e,Oe)}function He(e){return this.changeBit(e,Te)}function Ge(e,t){var n=0,r=0,i=Math.min(e.t,this.t);while(n<i)r+=this[n]+e[n],t[n++]=r&this.DM,r>>=this.DB;if(e.t<this.t){r+=e.s;while(n<this.t)r+=this[n],t[n++]=r&this.DM,r>>=this.DB;r+=this.s}else{r+=this.s;while(n<e.t)r+=e[n],t[n++]=r&this.DM,r>>=this.DB;r+=e.s}t.s=r<0?-1:0,r>0?t[n++]=r:r<-1&&(t[n++]=this.DV+r),t.t=n,t.clamp()}function ze(e){var t=b();return this.addTo(e,t),t}function qe(e){var t=b();return this.subTo(e,t),t}function Xe(e){var t=b();return this.multiplyTo(e,t),t}function We(){var e=b();return this.squareTo(e),e}function Ye(e){var t=b();return this.divRemTo(e,t,null),t}function Qe(e){var t=b();return this.divRemTo(e,null,t),t}function Je(e){var t=b(),n=b();return this.divRemTo(e,t,n),new Array(t,n)}function Ze(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function et(e,t){if(0!=e){while(this.t<=t)this[this.t++]=0;this[t]+=e;while(this[t]>=this.DV)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}}function tt(){}function nt(e){return e}function rt(e,t,n){e.multiplyTo(t,n)}function it(e,t){e.squareTo(t)}function at(e){return this.exp(e,new tt)}function ot(e,t,n){var r,i=Math.min(this.t+e.t,t);n.s=0,n.t=i;while(i>0)n[--i]=0;for(r=n.t-this.t;i<r;++i)n[i+this.t]=this.am(0,e[i],n,i,0,this.t);for(r=Math.min(e.t,t);i<r;++i)this.am(0,e[i],n,i,0,t-i);n.clamp()}function st(e,t,n){--t;var r=n.t=this.t+e.t-t;n.s=0;while(--r>=0)n[r]=0;for(r=Math.max(t-this.t,0);r<e.t;++r)n[this.t+r-t]=this.am(t-r,e[r],n,0,0,this.t+r-t);n.clamp(),n.drShiftTo(1,n)}function lt(e){this.r2=b(),this.q3=b(),v.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function ct(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=b();return e.copyTo(t),this.reduce(t),t}function ut(e){return e}function dt(e){e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);while(e.compareTo(this.r2)<0)e.dAddOffset(1,this.m.t+1);e.subTo(this.r2,e);while(e.compareTo(this.m)>=0)e.subTo(this.m,e)}function ht(e,t){e.squareTo(t),this.reduce(t)}function pt(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function ft(e,t){var n,r,i=e.bitLength(),a=O(1);if(i<=0)return a;n=i<18?1:i<48?3:i<144?4:i<768?5:6,r=i<8?new W(t):t.isEven()?new lt(t):new ne(t);var o=new Array,s=3,l=n-1,c=(1<<n)-1;if(o[1]=r.convert(this),n>1){var u=b();r.sqrTo(o[1],u);while(s<=c)o[s]=b(),r.mulTo(u,o[s-2],o[s]),s+=2}var d,h,p=e.t-1,f=!0,m=b();i=F(e[p])-1;while(p>=0){i>=l?d=e[p]>>i-l&c:(d=(e[p]&(1<<i+1)-1)<<l-i,p>0&&(d|=e[p-1]>>this.DB+i-l)),s=n;while(0==(1&d))d>>=1,--s;if((i-=s)<0&&(i+=this.DB,--p),f)o[d].copyTo(a),f=!1;else{while(s>1)r.sqrTo(a,m),r.sqrTo(m,a),s-=2;s>0?r.sqrTo(a,m):(h=a,a=m,m=h),r.mulTo(m,o[d],a)}while(p>=0&&0==(e[p]&1<<i))r.sqrTo(a,m),h=a,a=m,m=h,--i<0&&(i=this.DB-1,--p)}return r.revert(a)}function mt(e){var t=this.s<0?this.negate():this.clone(),n=e.s<0?e.negate():e.clone();if(t.compareTo(n)<0){var r=t;t=n,n=r}var i=t.getLowestSetBit(),a=n.getLowestSetBit();if(a<0)return t;i<a&&(a=i),a>0&&(t.rShiftTo(a,t),n.rShiftTo(a,n));while(t.signum()>0)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=n.getLowestSetBit())>0&&n.rShiftTo(i,n),t.compareTo(n)>=0?(t.subTo(n,t),t.rShiftTo(1,t)):(n.subTo(t,n),n.rShiftTo(1,n));return a>0&&n.lShiftTo(a,n),n}function gt(e){if(e<=0)return 0;var t=this.DV%e,n=this.s<0?e-1:0;if(this.t>0)if(0==t)n=this[0]%e;else for(var r=this.t-1;r>=0;--r)n=(t*n+this[r])%e;return n}function vt(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return v.ZERO;var n=e.clone(),r=this.clone(),i=O(1),a=O(0),o=O(0),s=O(1);while(0!=n.signum()){while(n.isEven())n.rShiftTo(1,n),t?(i.isEven()&&a.isEven()||(i.addTo(this,i),a.subTo(e,a)),i.rShiftTo(1,i)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);while(r.isEven())r.rShiftTo(1,r),t?(o.isEven()&&s.isEven()||(o.addTo(this,o),s.subTo(e,s)),o.rShiftTo(1,o)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);n.compareTo(r)>=0?(n.subTo(r,n),t&&i.subTo(o,i),a.subTo(s,a)):(r.subTo(n,r),t&&o.subTo(i,o),s.subTo(a,s))}return 0!=r.compareTo(v.ONE)?v.ZERO:s.compareTo(e)>=0?s.subtract(e):s.signum()<0?(s.addTo(e,s),s.signum()<0?s.add(e):s):s}W.prototype.convert=Y,W.prototype.revert=Q,W.prototype.reduce=J,W.prototype.mulTo=Z,W.prototype.sqrTo=ee,ne.prototype.convert=re,ne.prototype.revert=ie,ne.prototype.reduce=ae,ne.prototype.mulTo=se,ne.prototype.sqrTo=oe,v.prototype.copyTo=T,v.prototype.fromInt=R,v.prototype.fromString=I,v.prototype.clamp=L,v.prototype.dlShiftTo=U,v.prototype.drShiftTo=j,v.prototype.lShiftTo=V,v.prototype.rShiftTo=K,v.prototype.subTo=H,v.prototype.multiplyTo=G,v.prototype.squareTo=z,v.prototype.divRemTo=q,v.prototype.invDigit=te,v.prototype.isEven=le,v.prototype.exp=ce,v.prototype.toString=D,v.prototype.negate=P,v.prototype.abs=M,v.prototype.compareTo=B,v.prototype.bitLength=$,v.prototype.mod=X,v.prototype.modPowInt=ue,v.ZERO=O(0),v.ONE=O(1),tt.prototype.convert=nt,tt.prototype.revert=nt,tt.prototype.mulTo=rt,tt.prototype.sqrTo=it,lt.prototype.convert=ct,lt.prototype.revert=ut,lt.prototype.reduce=dt,lt.prototype.mulTo=pt,lt.prototype.sqrTo=ht;var bt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],yt=(1<<26)/bt[bt.length-1];function wt(e){var t,n=this.abs();if(1==n.t&&n[0]<=bt[bt.length-1]){for(t=0;t<bt.length;++t)if(n[0]==bt[t])return!0;return!1}if(n.isEven())return!1;t=1;while(t<bt.length){var r=bt[t],i=t+1;while(i<bt.length&&r<yt)r*=bt[i++];r=n.modInt(r);while(t<i)if(r%bt[t++]==0)return!1}return n.millerRabin(e)}function Et(e){var t=this.subtract(v.ONE),n=t.getLowestSetBit();if(n<=0)return!1;var r=t.shiftRight(n);e=e+1>>1,e>bt.length&&(e=bt.length);for(var i=b(),a=0;a<e;++a){i.fromInt(bt[Math.floor(Math.random()*bt.length)]);var o=i.modPow(r,this);if(0!=o.compareTo(v.ONE)&&0!=o.compareTo(t)){var s=1;while(s++<n&&0!=o.compareTo(t))if(o=o.modPowInt(2,this),0==o.compareTo(v.ONE))return!1;if(0!=o.compareTo(t))return!1}}return!0} +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */ +function _t(){this.i=0,this.j=0,this.S=new Array}function St(e){var t,n,r;for(t=0;t<256;++t)this.S[t]=t;for(n=0,t=0;t<256;++t)n=n+this.S[t]+e[t%e.length]&255,r=this.S[t],this.S[t]=this.S[n],this.S[n]=r;this.i=0,this.j=0}function kt(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]}function xt(){return new _t}v.prototype.chunkSize=me,v.prototype.toRadix=ve,v.prototype.fromRadix=be,v.prototype.fromNumber=ye,v.prototype.bitwiseTo=ke,v.prototype.changeBit=je,v.prototype.addTo=Ge,v.prototype.dMultiply=Ze,v.prototype.dAddOffset=et,v.prototype.multiplyLowerTo=ot,v.prototype.multiplyUpperTo=st,v.prototype.modInt=gt,v.prototype.millerRabin=Et,v.prototype.clone=de,v.prototype.intValue=he,v.prototype.byteValue=pe,v.prototype.shortValue=fe,v.prototype.signum=ge,v.prototype.toByteArray=we,v.prototype.equals=Ee,v.prototype.min=_e,v.prototype.max=Se,v.prototype.and=Ae,v.prototype.or=Ce,v.prototype.xor=Re,v.prototype.andNot=Ie,v.prototype.not=Le,v.prototype.shiftLeft=De,v.prototype.shiftRight=Pe,v.prototype.getLowestSetBit=Be,v.prototype.bitCount=$e,v.prototype.testBit=Ue,v.prototype.setBit=Ve,v.prototype.clearBit=Ke,v.prototype.flipBit=He,v.prototype.add=ze,v.prototype.subtract=qe,v.prototype.multiply=Xe,v.prototype.divide=Ye,v.prototype.remainder=Qe,v.prototype.divideAndRemainder=Je,v.prototype.modPow=ft,v.prototype.modInverse=vt,v.prototype.pow=at,v.prototype.gcd=mt,v.prototype.isProbablePrime=wt,v.prototype.square=We,_t.prototype.init=St,_t.prototype.next=kt;var At,Nt,Ct,Tt=256; +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */function Rt(e){Nt[Ct++]^=255&e,Nt[Ct++]^=e>>8&255,Nt[Ct++]^=e>>16&255,Nt[Ct++]^=e>>24&255,Ct>=Tt&&(Ct-=Tt)}function Ot(){Rt((new Date).getTime())}if(null==Nt){var It;if(Nt=new Array,Ct=0,void 0!==a&&(void 0!==a.crypto||void 0!==a.msCrypto)){var Lt=a.crypto||a.msCrypto;if(Lt.getRandomValues){var Dt=new Uint8Array(32);for(Lt.getRandomValues(Dt),It=0;It<32;++It)Nt[Ct++]=Dt[It]}else if("Netscape"==i.appName&&i.appVersion<"5"){var Pt=a.crypto.random(32);for(It=0;It<Pt.length;++It)Nt[Ct++]=255&Pt.charCodeAt(It)}}while(Ct<Tt)It=Math.floor(65536*Math.random()),Nt[Ct++]=It>>>8,Nt[Ct++]=255&It;Ct=0,Ot()}function Mt(){if(null==At){for(Ot(),At=xt(),At.init(Nt),Ct=0;Ct<Nt.length;++Ct)Nt[Ct]=0;Ct=0}return At.next()}function Bt(e){var t;for(t=0;t<e.length;++t)e[t]=Mt()}function Ft(){} +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */ +function $t(e,t){return new v(e,t)}function Ut(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function jt(e,t){if(this.isPublic=!0,this.isPrivate=!1,"string"!==typeof e)this.n=e,this.e=t;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA public key";this.n=$t(e,16),this.e=parseInt(t,16)}}function Vt(e){return e.modPowInt(this.e,this.n)}function Kt(e,t,n){if(this.isPrivate=!0,"string"!==typeof e)this.n=e,this.e=t,this.d=n;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key";this.n=$t(e,16),this.e=parseInt(t,16),this.d=$t(n,16)}}function Ht(e,t,n,r,i,a,o,s){if(this.isPrivate=!0,this.isPublic=!1,null==e)throw"RSASetPrivateEx N == null";if(null==t)throw"RSASetPrivateEx E == null";if(0==e.length)throw"RSASetPrivateEx N.length == 0";if(0==t.length)throw"RSASetPrivateEx E.length == 0";if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key in RSASetPrivateEx";this.n=$t(e,16),this.e=parseInt(t,16),this.d=$t(n,16),this.p=$t(r,16),this.q=$t(i,16),this.dmp1=$t(a,16),this.dmq1=$t(o,16),this.coeff=$t(s,16)}function Gt(e,t){var n=new Ft,r=e>>1;this.e=parseInt(t,16);for(var i=new v(t,16),a=e/2-100,o=v.ONE.shiftLeft(a);;){for(;;)if(this.p=new v(e-r,1,n),0==this.p.subtract(v.ONE).gcd(i).compareTo(v.ONE)&&this.p.isProbablePrime(10))break;for(;;)if(this.q=new v(r,1,n),0==this.q.subtract(v.ONE).gcd(i).compareTo(v.ONE)&&this.q.isProbablePrime(10))break;if(this.p.compareTo(this.q)<=0){var s=this.p;this.p=this.q,this.q=s}var l=this.q.subtract(this.p).abs();if(!(l.bitLength()<a||l.compareTo(o)<=0)){var c=this.p.subtract(v.ONE),u=this.q.subtract(v.ONE),d=c.multiply(u);if(0==d.gcd(i).compareTo(v.ONE)&&(this.n=this.p.multiply(this.q),this.n.bitLength()==e)){this.d=i.modInverse(d),this.dmp1=this.d.mod(c),this.dmq1=this.d.mod(u),this.coeff=this.q.modInverse(this.p);break}}}this.isPrivate=!0}function zt(e){if(null==this.p||null==this.q)return e.modPow(this.d,this.n);var t=e.mod(this.p).modPow(this.dmp1,this.p),n=e.mod(this.q).modPow(this.dmq1,this.q);while(t.compareTo(n)<0)t=t.add(this.p);return t.subtract(n).multiply(this.coeff).mod(this.p).multiply(this.q).add(n)} +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */ +function qt(e,t){this.x=t,this.q=e}function Xt(e){return e==this||this.q.equals(e.q)&&this.x.equals(e.x)}function Wt(){return this.x}function Yt(){return new qt(this.q,this.x.negate().mod(this.q))}function Qt(e){return new qt(this.q,this.x.add(e.toBigInteger()).mod(this.q))}function Jt(e){return new qt(this.q,this.x.subtract(e.toBigInteger()).mod(this.q))}function Zt(e){return new qt(this.q,this.x.multiply(e.toBigInteger()).mod(this.q))}function en(){return new qt(this.q,this.x.square().mod(this.q))}function tn(e){return new qt(this.q,this.x.multiply(e.toBigInteger().modInverse(this.q)).mod(this.q))}function nn(e,t,n,r){this.curve=e,this.x=t,this.y=n,this.z=null==r?v.ONE:r,this.zinv=null}function rn(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))}function an(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))}function on(e){return e==this||(this.isInfinity()?e.isInfinity():e.isInfinity()?this.isInfinity():(t=e.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(e.z)).mod(this.curve.q),!!t.equals(v.ZERO)&&(n=e.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(e.z)).mod(this.curve.q),n.equals(v.ZERO))));var t,n}function sn(){return null==this.x&&null==this.y||this.z.equals(v.ZERO)&&!this.y.toBigInteger().equals(v.ZERO)}function ln(){return new nn(this.curve,this.x,this.y.negate(),this.z)}function cn(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(e.z)).mod(this.curve.q),n=e.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(e.z)).mod(this.curve.q);if(v.ZERO.equals(n))return v.ZERO.equals(t)?this.twice():this.curve.getInfinity();var r=new v("3"),i=this.x.toBigInteger(),a=this.y.toBigInteger(),o=(e.x.toBigInteger(),e.y.toBigInteger(),n.square()),s=o.multiply(n),l=i.multiply(o),c=t.square().multiply(this.z),u=c.subtract(l.shiftLeft(1)).multiply(e.z).subtract(s).multiply(n).mod(this.curve.q),d=l.multiply(r).multiply(t).subtract(a.multiply(s)).subtract(c.multiply(t)).multiply(e.z).add(t.multiply(s)).mod(this.curve.q),h=s.multiply(this.z).multiply(e.z).mod(this.curve.q);return new nn(this.curve,this.curve.fromBigInteger(u),this.curve.fromBigInteger(d),h)}function un(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var e=new v("3"),t=this.x.toBigInteger(),n=this.y.toBigInteger(),r=n.multiply(this.z),i=r.multiply(n).mod(this.curve.q),a=this.curve.a.toBigInteger(),o=t.square().multiply(e);v.ZERO.equals(a)||(o=o.add(this.z.square().multiply(a))),o=o.mod(this.curve.q);var s=o.square().subtract(t.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(r).mod(this.curve.q),l=o.multiply(e).multiply(t).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(o.square().multiply(o)).mod(this.curve.q),c=r.square().multiply(r).shiftLeft(3).mod(this.curve.q);return new nn(this.curve,this.curve.fromBigInteger(s),this.curve.fromBigInteger(l),c)}function dn(e){if(this.isInfinity())return this;if(0==e.signum())return this.curve.getInfinity();var t,n=e,r=n.multiply(new v("3")),i=this.negate(),a=this,o=this.curve.q.subtract(e),s=o.multiply(new v("3")),l=new nn(this.curve,this.x,this.y),c=l.negate();for(t=r.bitLength()-2;t>0;--t){a=a.twice();var u=r.testBit(t),d=n.testBit(t);u!=d&&(a=a.add(u?this:i))}for(t=s.bitLength()-2;t>0;--t){l=l.twice();var h=s.testBit(t),p=o.testBit(t);h!=p&&(l=l.add(h?l:c))}return a}function hn(e,t,n){var r;r=e.bitLength()>n.bitLength()?e.bitLength()-1:n.bitLength()-1;var i=this.curve.getInfinity(),a=this.add(t);while(r>=0)i=i.twice(),e.testBit(r)?i=n.testBit(r)?i.add(a):i.add(this):n.testBit(r)&&(i=i.add(t)),--r;return i}function pn(e,t,n){this.q=e,this.a=this.fromBigInteger(t),this.b=this.fromBigInteger(n),this.infinity=new nn(this,null,null)}function fn(){return this.q}function mn(){return this.a}function gn(){return this.b}function vn(e){return e==this||this.q.equals(e.q)&&this.a.equals(e.a)&&this.b.equals(e.b)}function bn(){return this.infinity}function yn(e){return new qt(this.q,e)}function wn(e){switch(parseInt(e.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:var t=e.substr(0,2),n=(e.substr(2),this.fromBigInteger(new v(l,16))),r=this.getA(),i=this.getB(),a=n.square().add(r).multiply(n).add(i),o=a.sqrt();return"03"==t&&(o=o.negate()),new nn(this,n,o);case 4:case 6:case 7:var s=(e.length-2)/2,l=e.substr(2,s),c=e.substr(s+2,s);return new nn(this,this.fromBigInteger(new v(l,16)),this.fromBigInteger(new v(c,16)));default:return null}}Ft.prototype.nextBytes=Bt,Ut.prototype.doPublic=Vt,Ut.prototype.setPublic=jt,Ut.prototype.type="RSA",Ut.prototype.doPrivate=zt,Ut.prototype.setPrivate=Kt,Ut.prototype.setPrivateEx=Ht,Ut.prototype.generate=Gt,qt.prototype.equals=Xt,qt.prototype.toBigInteger=Wt,qt.prototype.negate=Yt,qt.prototype.add=Qt,qt.prototype.subtract=Jt,qt.prototype.multiply=Zt,qt.prototype.square=en,qt.prototype.divide=tn,qt.prototype.sqrt=function(){return new qt(this.q,this.x.sqrt().mod(this.q))},nn.prototype.getX=rn,nn.prototype.getY=an,nn.prototype.equals=on,nn.prototype.isInfinity=sn,nn.prototype.negate=ln,nn.prototype.add=cn,nn.prototype.twice=un,nn.prototype.multiply=dn,nn.prototype.multiplyTwo=hn,pn.prototype.getQ=fn,pn.prototype.getA=mn,pn.prototype.getB=gn,pn.prototype.equals=vn,pn.prototype.getInfinity=bn,pn.prototype.fromBigInteger=yn,pn.prototype.decodePointHex=wn, +/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib + */ +qt.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},nn.prototype.getEncoded=function(e){var t=function(e,t){var n=e.toByteArrayUnsigned();if(t<n.length)n=n.slice(n.length-t);else while(t>n.length)n.unshift(0);return n},n=this.getX().toBigInteger(),r=this.getY().toBigInteger(),i=t(n,32);return e?r.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(t(r,32))),i},nn.decodeFrom=function(e,t){t[0];var n=t.length-1,r=t.slice(1,1+n/2),i=t.slice(1+n/2,1+n);r.unshift(0),i.unshift(0);var a=new v(r),o=new v(i);return new nn(e,e.fromBigInteger(a),e.fromBigInteger(o))},nn.decodeFromHex=function(e,t){t.substr(0,2);var n=t.length-2,r=t.substr(2,n/2),i=t.substr(2+n/2,n/2),a=new v(r,16),o=new v(i,16);return new nn(e,e.fromBigInteger(a),e.fromBigInteger(o))},nn.prototype.add2D=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;if(this.x.equals(e.x))return this.y.equals(e.y)?this.twice():this.curve.getInfinity();var t=e.x.subtract(this.x),n=e.y.subtract(this.y),r=n.divide(t),i=r.square().subtract(this.x).subtract(e.x),a=r.multiply(this.x.subtract(i)).subtract(this.y);return new nn(this.curve,i,a)},nn.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var e=this.curve.fromBigInteger(v.valueOf(2)),t=this.curve.fromBigInteger(v.valueOf(3)),n=this.x.square().multiply(t).add(this.curve.a).divide(this.y.multiply(e)),r=n.square().subtract(this.x.multiply(e)),i=n.multiply(this.x.subtract(r)).subtract(this.y);return new nn(this.curve,r,i)},nn.prototype.multiply2D=function(e){if(this.isInfinity())return this;if(0==e.signum())return this.curve.getInfinity();var t,n=e,r=n.multiply(new v("3")),i=this.negate(),a=this;for(t=r.bitLength()-2;t>0;--t){a=a.twice();var o=r.testBit(t),s=n.testBit(t);o!=s&&(a=a.add2D(o?this:i))}return a},nn.prototype.isOnCurve=function(){var e=this.getX().toBigInteger(),t=this.getY().toBigInteger(),n=this.curve.getA().toBigInteger(),r=this.curve.getB().toBigInteger(),i=this.curve.getQ(),a=t.multiply(t).mod(i),o=e.multiply(e).multiply(e).add(n.multiply(e)).add(r).mod(i);return a.equals(o)},nn.prototype.toString=function(){return"("+this.getX().toBigInteger().toString()+","+this.getY().toBigInteger().toString()+")"},nn.prototype.validate=function(){var e=this.curve.getQ();if(this.isInfinity())throw new Error("Point is at infinity.");var t=this.getX().toBigInteger(),n=this.getY().toBigInteger();if(t.compareTo(v.ONE)<0||t.compareTo(e.subtract(v.ONE))>0)throw new Error("x coordinate out of bounds");if(n.compareTo(v.ONE)<0||n.compareTo(e.subtract(v.ONE))>0)throw new Error("y coordinate out of bounds");if(!this.isOnCurve())throw new Error("Point is not on the curve.");if(this.multiply(e).isInfinity())throw new Error("Point is not a scalar multiple of G.");return!0}; +/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval + */ +var En=function(){var e="(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)",t='(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))',n='(?:"'+t+'*")',r=new RegExp("(?:false|true|null|[\\{\\}\\[\\]]|"+e+"|"+n+")","g"),i=new RegExp("\\\\(?:([^u])|u(.{4}))","g"),a={'"':'"',"/":"/","\\":"\\",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function o(e,t,n){return t?a[t]:String.fromCharCode(parseInt(n,16))}var s=new String(""),l="\\",c=Object.hasOwnProperty;return function(e,t){var n,a,u=e.match(r),d=u[0],h=!1;"{"===d?n={}:"["===d?n=[]:(n=[],h=!0);for(var p=[n],f=1-h,m=u.length;f<m;++f){var g;switch(d=u[f],d.charCodeAt(0)){default:g=p[0],g[a||g.length]=+d,a=void 0;break;case 34:if(d=d.substring(1,d.length-1),-1!==d.indexOf(l)&&(d=d.replace(i,o)),g=p[0],!a){if(!(g instanceof Array)){a=d||s;break}a=g.length}g[a]=d,a=void 0;break;case 91:g=p[0],p.unshift(g[a||g.length]=[]),a=void 0;break;case 93:p.shift();break;case 102:g=p[0],g[a||g.length]=!1,a=void 0;break;case 110:g=p[0],g[a||g.length]=null,a=void 0;break;case 116:g=p[0],g[a||g.length]=!0,a=void 0;break;case 123:g=p[0],p.unshift(g[a||g.length]={}),a=void 0;break;case 125:p.shift();break}}if(h){if(1!==p.length)throw new Error;n=n[0]}else if(p.length)throw new Error;if(t){var v=function(e,n){var r=e[n];if(r&&"object"===typeof r){var i=null;for(var a in r)if(c.call(r,a)&&r!==e){var o=v(r,a);void 0!==o?r[a]=o:(i||(i=[]),i.push(a))}if(i)for(var s=i.length;--s>=0;)delete r[i[s]]}return t.call(e,n,r)};n=v({"":n},"")}return n}}();"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.asn1&&_n.asn1||(_n.asn1={}),_n.asn1.ASN1Util=new function(){this.integerToByteHex=function(e){var t=e.toString(16);return t.length%2==1&&(t="0"+t),t},this.bigIntToMinTwosComplementsHex=function(e){return Nr(e)},this.getPEMStringFromHex=function(e,t){return Yn(e,t)},this.newObject=function(e){var t=_n,n=t.asn1,r=n.ASN1Object,i=n.DERBoolean,a=n.DERInteger,o=n.DERBitString,s=n.DEROctetString,l=n.DERNull,c=n.DERObjectIdentifier,u=n.DEREnumerated,d=n.DERUTF8String,h=n.DERNumericString,p=n.DERPrintableString,f=n.DERTeletexString,m=n.DERIA5String,g=n.DERUTCTime,v=n.DERGeneralizedTime,b=n.DERVisibleString,y=n.DERBMPString,w=n.DERSequence,E=n.DERSet,_=n.DERTaggedObject,S=n.ASN1Util.newObject;if(e instanceof n.ASN1Object)return e;var k=Object.keys(e);if(1!=k.length)throw new Error("key of param shall be only one.");var x=k[0];if(-1==":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:".indexOf(":"+x+":"))throw new Error("undefined key: "+x);if("bool"==x)return new i(e[x]);if("int"==x)return new a(e[x]);if("bitstr"==x)return new o(e[x]);if("octstr"==x)return new s(e[x]);if("null"==x)return new l(e[x]);if("oid"==x)return new c(e[x]);if("enum"==x)return new u(e[x]);if("utf8str"==x)return new d(e[x]);if("numstr"==x)return new h(e[x]);if("prnstr"==x)return new p(e[x]);if("telstr"==x)return new f(e[x]);if("ia5str"==x)return new m(e[x]);if("utctime"==x)return new g(e[x]);if("gentime"==x)return new v(e[x]);if("visstr"==x)return new b(e[x]);if("bmpstr"==x)return new y(e[x]);if("asn1"==x)return new r(e[x]);if("seq"==x){for(var A=e[x],N=[],C=0;C<A.length;C++){var T=S(A[C]);N.push(T)}return new w({array:N})}if("set"==x){for(A=e[x],N=[],C=0;C<A.length;C++){T=S(A[C]);N.push(T)}return new E({array:N})}if("tag"==x){var R=e[x];if("[object Array]"===Object.prototype.toString.call(R)&&3==R.length){var O=S(R[2]);return new _({tag:R[0],explicit:R[1],obj:O})}return new _(R)}},this.jsonToASN1HEX=function(e){var t=this.newObject(e);return t.tohex()}},_n.asn1.ASN1Util.oidHexToInt=function(e){for(var t="",n=parseInt(e.substr(0,2),16),r=Math.floor(n/40),i=n%40,a=(t=r+"."+i,""),o=2;o<e.length;o+=2){var s=parseInt(e.substr(o,2),16),l=("00000000"+s.toString(2)).slice(-8);if(a+=l.substr(1,7),"0"==l.substr(0,1)){var c=new v(a,2);t=t+"."+c.toString(10),a=""}}return t},_n.asn1.ASN1Util.oidIntToHex=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},n=function(e){var n="",r=new v(e,10),i=r.toString(2),a=7-i.length%7;7==a&&(a=0);for(var o="",s=0;s<a;s++)o+="0";i=o+i;for(s=0;s<i.length-1;s+=7){var l=i.substr(s,7);s!=i.length-7&&(l="1"+l),n+=t(parseInt(l,2))}return n};if(!e.match(/^[0-9.]+$/))throw"malformed oid string: "+e;var r="",i=e.split("."),a=40*parseInt(i[0])+parseInt(i[1]);r+=t(a),i.splice(0,2);for(var o=0;o<i.length;o++)r+=n(i[o]);return r},_n.asn1.ASN1Object=function(e){var t="";this.params=null,this.getLengthHexFromValue=function(){if("undefined"==typeof this.hV||null==this.hV)throw new Error("this.hV is null or undefined");if(this.hV.length%2==1)throw new Error("value hex must be even length: n="+t.length+",v="+this.hV);var e=this.hV.length/2,n=e.toString(16);if(n.length%2==1&&(n="0"+n),e<128)return n;var r=n.length/2;if(r>15)throw new Error("ASN.1 length too long to represent by 8x: n = "+e.toString(16));var i=128+r;return i.toString(16)+n},this.tohex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getEncodedHex=function(){return this.tohex()},this.getValueHex=function(){return this.tohex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(e){this.params=e},void 0!=e&&void 0!=e.tlv&&(this.hTLV=e.tlv,this.isModified=!1)},_n.asn1.DERAbstractString=function(e){_n.asn1.DERAbstractString.superclass.constructor.call(this);this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=$n(this.s).toLowerCase()},this.setStringHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.getFreshValueHex=function(){return this.hV},"undefined"!=typeof e&&("string"==typeof e?this.setString(e):"undefined"!=typeof e.str?this.setString(e.str):"undefined"!=typeof e.hex&&this.setStringHex(e.hex))},Pr(_n.asn1.DERAbstractString,_n.asn1.ASN1Object),_n.asn1.DERAbstractTime=function(e){_n.asn1.DERAbstractTime.superclass.constructor.call(this);this.localDateToUTC=function(e){var t=e.getTime()+6e4*e.getTimezoneOffset(),n=new Date(t);return n},this.formatDate=function(e,t,n){var r=this.zeroPadding,i=this.localDateToUTC(e),a=String(i.getFullYear());"utc"==t&&(a=a.substr(2,2));var o=r(String(i.getMonth()+1),2),s=r(String(i.getDate()),2),l=r(String(i.getHours()),2),c=r(String(i.getMinutes()),2),u=r(String(i.getSeconds()),2),d=a+o+s+l+c+u;if(!0===n){var h=i.getMilliseconds();if(0!=h){var p=r(String(h),3);p=p.replace(/[0]+$/,""),d=d+"."+p}}return d+"Z"},this.zeroPadding=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},this.setByParam=function(e){this.hV=null,this.hTLV=null,this.params=e},this.getString=function(){},this.setString=function(e){this.hTLV=null,this.isModified=!0,void 0==this.params&&(this.params={}),this.params.str=e},this.setByDate=function(e){this.hTLV=null,this.isModified=!0,void 0==this.params&&(this.params={}),this.params.date=e},this.setByDateValue=function(e,t,n,r,i,a){var o=new Date(Date.UTC(e,t-1,n,r,i,a,0));this.setByDate(o)},this.getFreshValueHex=function(){return this.hV}},Pr(_n.asn1.DERAbstractTime,_n.asn1.ASN1Object),_n.asn1.DERAbstractStructured=function(e){_n.asn1.DERAbstractString.superclass.constructor.call(this);this.setByASN1ObjectArray=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array=e},this.appendASN1Object=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array.push(e)},this.asn1Array=new Array,"undefined"!=typeof e&&"undefined"!=typeof e.array&&(this.asn1Array=e.array)},Pr(_n.asn1.DERAbstractStructured,_n.asn1.ASN1Object),_n.asn1.DERBoolean=function(e){_n.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==e?"010100":"0101ff"},Pr(_n.asn1.DERBoolean,_n.asn1.ASN1Object),_n.asn1.DERInteger=function(e){_n.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.params=null;var t=Nr;this.setByBigInteger=function(e){this.isModified=!0,this.params={bigint:e}},this.setByInteger=function(e){this.isModified=!0,this.params=e},this.setValueHex=function(e){this.isModified=!0,this.params={hex:e}},this.getFreshValueHex=function(){var e=this.params,n=null;if(null==e)throw new Error("value not set");if("object"==typeof e&&void 0!=e.hex)return this.hV=e.hex,this.hV;if("number"==typeof e)n=new v(String(e),10);else if(void 0!=e["int"])n=new v(String(e["int"]),10);else{if(void 0==e.bigint)throw new Error("wrong parameter");n=e.bigint}return this.hV=t(n),this.hV},void 0!=e&&(this.params=e)},Pr(_n.asn1.DERInteger,_n.asn1.ASN1Object),_n.asn1.DERBitString=function(e){if(void 0!==e&&"undefined"!==typeof e.obj){var t=_n.asn1.ASN1Util.newObject(e.obj);e.hex="00"+t.tohex()}_n.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(e){this.hTLV=null,this.isModified=!0,this.hV=e},this.setUnusedBitsAndHexValue=function(e,t){if(e<0||7<e)throw"unused bits shall be from 0 to 7: u = "+e;var n="0"+e;this.hTLV=null,this.isModified=!0,this.hV=n+t},this.setByBinaryString=function(e){e=e.replace(/0+$/,"");var t=8-e.length%8;8==t&&(t=0),e+="0000000".substr(0,t);for(var n="",r=0;r<e.length-1;r+=8){var i=e.substr(r,8),a=parseInt(i,2).toString(16);1==a.length&&(a="0"+a),n+=a}this.hTLV=null,this.isModified=!0,this.hV="0"+t+n},this.setByBooleanArray=function(e){for(var t="",n=0;n<e.length;n++)1==e[n]?t+="1":t+="0";this.setByBinaryString(t)},this.newFalseArray=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=!1;return t},this.getFreshValueHex=function(){return this.hV},"undefined"!=typeof e&&("string"==typeof e&&e.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(e):"undefined"!=typeof e.hex?this.setHexValueIncludingUnusedBits(e.hex):"undefined"!=typeof e.bin?this.setByBinaryString(e.bin):"undefined"!=typeof e.array&&this.setByBooleanArray(e.array))},Pr(_n.asn1.DERBitString,_n.asn1.ASN1Object),_n.asn1.DEROctetString=function(e){if(void 0!==e&&"undefined"!==typeof e.obj){var t=_n.asn1.ASN1Util.newObject(e.obj);e.hex=t.tohex()}_n.asn1.DEROctetString.superclass.constructor.call(this,e),this.hT="04"},Pr(_n.asn1.DEROctetString,_n.asn1.DERAbstractString),_n.asn1.DERNull=function(){_n.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"},Pr(_n.asn1.DERNull,_n.asn1.ASN1Object),_n.asn1.DERObjectIdentifier=function(e){_n.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueOidString=function(e){var t=kr(e);if(null==t)throw new Error("malformed oid string: "+e);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueName=function(e){var t=_n.asn1.x509.OID.name2oid(e);if(""===t)throw new Error("DERObjectIdentifier oidName undefined: "+e);this.setValueOidString(t)},this.setValueNameOrOid=function(e){e.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(e):this.setValueName(e)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){"string"===typeof e?this.setValueNameOrOid(e):void 0!==e.oid?this.setValueNameOrOid(e.oid):void 0!==e.name?this.setValueNameOrOid(e.name):void 0!==e.hex&&this.setValueHex(e.hex)},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.DERObjectIdentifier,_n.asn1.ASN1Object),_n.asn1.DEREnumerated=function(e){_n.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=Nr(e)},this.setByInteger=function(e){var t=new v(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},"undefined"!=typeof e&&("undefined"!=typeof e["int"]?this.setByInteger(e["int"]):"number"==typeof e?this.setByInteger(e):"undefined"!=typeof e.hex&&this.setValueHex(e.hex))},Pr(_n.asn1.DEREnumerated,_n.asn1.ASN1Object),_n.asn1.DERUTF8String=function(e){_n.asn1.DERUTF8String.superclass.constructor.call(this,e),this.hT="0c"},Pr(_n.asn1.DERUTF8String,_n.asn1.DERAbstractString),_n.asn1.DERNumericString=function(e){_n.asn1.DERNumericString.superclass.constructor.call(this,e),this.hT="12"},Pr(_n.asn1.DERNumericString,_n.asn1.DERAbstractString),_n.asn1.DERPrintableString=function(e){_n.asn1.DERPrintableString.superclass.constructor.call(this,e),this.hT="13"},Pr(_n.asn1.DERPrintableString,_n.asn1.DERAbstractString),_n.asn1.DERTeletexString=function(e){_n.asn1.DERTeletexString.superclass.constructor.call(this,e),this.hT="14"},Pr(_n.asn1.DERTeletexString,_n.asn1.DERAbstractString),_n.asn1.DERIA5String=function(e){_n.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="16"},Pr(_n.asn1.DERIA5String,_n.asn1.DERAbstractString),_n.asn1.DERVisibleString=function(e){_n.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="1a"},Pr(_n.asn1.DERVisibleString,_n.asn1.DERAbstractString),_n.asn1.DERBMPString=function(e){_n.asn1.DERBMPString.superclass.constructor.call(this,e),this.hT="1e"},Pr(_n.asn1.DERBMPString,_n.asn1.DERAbstractString),_n.asn1.DERUTCTime=function(e){_n.asn1.DERUTCTime.superclass.constructor.call(this,e),this.hT="17",this.params=void 0,this.getFreshValueHex=function(){var e=this.params;if(void 0==this.params&&(e={date:new Date}),"string"==typeof e){if(!e.match(/^[0-9]{12}Z$/)&&!e.match(/^[0-9]{12}\.[0-9]+Z$/))throw new Error("malformed string for UTCTime: "+e);this.hV=Tn(e)}else if(void 0!=e.str)this.hV=Tn(e.str);else if(void 0==e.date&&1==e.millis){var t=new Date;this.hV=Tn(this.formatDate(t,"utc",!0))}else if(void 0!=e.date&&e.date instanceof Date){var n=!0===e.millis;this.hV=Tn(this.formatDate(e.date,"utc",n))}else e instanceof Date&&(this.hV=Tn(this.formatDate(e,"utc")));if(void 0==this.hV)throw new Error("parameter not specified properly for UTCTime");return this.hV},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.DERUTCTime,_n.asn1.DERAbstractTime),_n.asn1.DERGeneralizedTime=function(e){_n.asn1.DERGeneralizedTime.superclass.constructor.call(this,e),this.hT="18",this.params=e,this.getFreshValueHex=function(){var e=this.params;if(void 0==this.params&&(e={date:new Date}),"string"==typeof e){if(!e.match(/^[0-9]{14}Z$/)&&!e.match(/^[0-9]{14}\.[0-9]+Z$/))throw new Error("malformed string for GeneralizedTime: "+e);this.hV=Tn(e)}else if(void 0!=e.str)this.hV=Tn(e.str);else if(void 0==e.date&&1==e.millis){var t=new Date;this.hV=Tn(this.formatDate(t,"gen",!0))}else if(void 0!=e.date&&e.date instanceof Date){var n=!0===e.millis;this.hV=Tn(this.formatDate(e.date,"gen",n))}else e instanceof Date&&(this.hV=Tn(this.formatDate(e,"gen")));if(void 0==this.hV)throw new Error("parameter not specified properly for GeneralizedTime");return this.hV},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.DERGeneralizedTime,_n.asn1.DERAbstractTime),_n.asn1.DERSequence=function(e){_n.asn1.DERSequence.superclass.constructor.call(this,e),this.hT="30",this.getFreshValueHex=function(){for(var e="",t=0;t<this.asn1Array.length;t++){var n=this.asn1Array[t];e+=n.tohex()}return this.hV=e,this.hV}},Pr(_n.asn1.DERSequence,_n.asn1.DERAbstractStructured),_n.asn1.DERSet=function(e){_n.asn1.DERSet.superclass.constructor.call(this,e),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var e=new Array,t=0;t<this.asn1Array.length;t++){var n=this.asn1Array[t];e.push(n.tohex())}return 1==this.sortFlag&&e.sort(),this.hV=e.join(""),this.hV},"undefined"!=typeof e&&"undefined"!=typeof e.sortflag&&0==e.sortflag&&(this.sortFlag=!1)},Pr(_n.asn1.DERSet,_n.asn1.DERAbstractStructured),_n.asn1.DERTaggedObject=function(e){_n.asn1.DERTaggedObject.superclass.constructor.call(this);var t=_n.asn1,n=xn,r=n.getV,i=(n.isASN1HEX,t.ASN1Util.newObject);this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.params={tag:"a0",explicit:!0},this.setASN1Object=function(e,t,n){this.params={tag:t,explicit:e,obj:n}},this.getFreshValueHex=function(){var e=this.params;if(void 0==e.explicit&&(e.explicit=!0),void 0!=e.tage&&(e.tag=e.tage,e.explicit=!0),void 0!=e.tagi&&(e.tag=e.tagi,e.explicit=!1),void 0!=e.str)this.hV=$n(e.str);else if(void 0!=e.hex)this.hV=e.hex;else{if(void 0==e.obj)throw new Error("str, hex nor obj not specified");var n;e.obj instanceof t.ASN1Object?n=e.obj.tohex():"object"==typeof e.obj&&(n=i(e.obj).tohex()),e.explicit?this.hV=n:this.hV=r(n,0)}return void 0==e.tag&&(e.tag="a0"),this.hT=e.tag,this.hTLV=null,this.isModified=!0,this.hV},this.setByParam=function(e){this.params=e},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.DERTaggedObject,_n.asn1.ASN1Object);var _n,Sn,kn,xn=new function(){};function An(e){for(var t=new Array,n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function Nn(e){for(var t="",n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t}function Cn(e){for(var t="",n=0;n<e.length;n++){var r=e[n].toString(16);1==r.length&&(r="0"+r),t+=r}return t}function Tn(e){return Cn(An(e))}function Rn(e){return h(Tn(e))}function On(e){return Ln(h(Tn(e)))}function In(e){return Nn(f(Dn(e)))}function Ln(e){return e=e.replace(/\=/g,""),e=e.replace(/\+/g,"-"),e=e.replace(/\//g,"_"),e}function Dn(e){return e.length%4==2?e+="==":e.length%4==3&&(e+="="),e=e.replace(/-/g,"+"),e=e.replace(/_/g,"/"),e}function Pn(e){return e.length%2==1&&(e="0"+e),Ln(h(e))}function Mn(e){return p(Dn(e))}function Bn(e){return h(sr(gr(e)))}function Fn(e){return decodeURIComponent(lr(p(e)))}function $n(e){return sr(gr(e)).toLowerCase()}function Un(e){try{return decodeURIComponent(lr(e))}catch(t){return null}}function jn(e){return Un(Vn(e))}function Vn(e){for(var t=e.match(/.{1,2}/g),n=[],r=0;r<t.length;r++){var i=parseInt(t[r],16);161<=i&&i<=191?(n.push("c2"),n.push(t[r])):192<=i&&i<=255?(n.push("c3"),n.push((i-64).toString(16))):n.push(t[r])}return n.join("")}function Kn(e){for(var t="",n=0;n<e.length-1;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return t}function Hn(e){for(var t="",n=0;n<e.length;n++)t+=("0"+e.charCodeAt(n).toString(16)).slice(-2);return t}function Gn(e){return h(e)}function zn(e){return qn(Gn(e),64)}function qn(e,t){return e=e.replace(new RegExp("(.{"+t+"})","g"),"$1\r\n"),e=e.replace(/\s+$/,""),e}function Xn(e){var t=e.replace(/[^0-9A-Za-z\/+=]*/g,""),n=p(t);return n}function Wn(e,t){return"-----BEGIN "+t+"-----\r\n"+qn(e,64)+"\r\n-----END "+t+"-----\r\n"}function Yn(e,t){return"-----BEGIN "+t+"-----\r\n"+qn(Gn(e),64)+"\r\n-----END "+t+"-----\r\n"}function Qn(e,t){if(-1==e.indexOf("-----BEGIN "))throw new Error("can't find PEM header");return void 0!==t?(e=e.replace(new RegExp("^[^]*-----BEGIN "+t+"-----"),""),e=e.replace(new RegExp("-----END "+t+"-----[^]*$"),"")):(e=e.replace(/^[^]*-----BEGIN [^-]+-----/,""),e=e.replace(/-----END [^-]+-----[^]*$/,"")),Xn(e)}function Jn(e){return-1==e.indexOf("-----BEGIN ")||-1==e.indexOf("-----END ")?null:(e=e.replace(/^[\s\S]*?-----BEGIN [^-]+-----/m,""),e=e.replace(/-----END [\s\S]+$/m,""),e=e.replace(/\s+/g,""),e.match(/^[0-9a-zA-Z+/=]+$/)?e:null)}function Zn(e){if(e.length%2!=0)throw"input is not even length";if(null==e.match(/^[0-9A-Fa-f]+$/))throw"input is not hexadecimal";for(var t=new ArrayBuffer(e.length/2),n=new DataView(t),r=0;r<e.length/2;r++)n.setUint8(r,parseInt(e.substr(2*r,2),16));return t}function er(e){for(var t="",n=new DataView(e),r=0;r<e.byteLength;r++)t+=("00"+n.getUint8(r).toString(16)).slice(-2);return t}function tr(e){var t,n,r,i,a,o,s,l,c,u;if(e=or(e),u=e.match(/^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(|\.\d+)Z$/),u)return t=parseInt(u[1]),n=parseInt(u[2])-1,r=parseInt(u[3]),i=parseInt(u[4]),a=parseInt(u[5]),o=parseInt(u[6]),s=0,l=u[7],""!==l&&(c=(l.substr(1)+"00").substr(0,3),s=parseInt(c)),Date.UTC(t,n,r,i,a,o,s);throw new Error("unsupported zulu format: "+e)}function nr(e){var t=new Date(e),n=("0000"+t.getUTCFullYear()).slice(-4),r=("00"+(t.getUTCMonth()+1)).slice(-2),i=("00"+t.getUTCDate()).slice(-2),a=("00"+t.getUTCHours()).slice(-2),o=("00"+t.getUTCMinutes()).slice(-2),s=("00"+t.getUTCSeconds()).slice(-2),l=("000"+t.getUTCMilliseconds()).slice(-3);return l=l.replace(/0+$/,""),l=""!=l?"."+l:l,n+r+i+a+o+s+l+"Z"}function rr(e){return Math.round(tr(e)/1e3)}function ir(e){return new Date(tr(e))}function ar(e,t,n){var r,i=e.getUTCFullYear();if(t){if(i<1950||2049<i)throw"not proper year for UTCTime: "+i;r=(""+i).slice(-2)}else r=("000"+i).slice(-4);if(r+=("0"+(e.getUTCMonth()+1)).slice(-2),r+=("0"+e.getUTCDate()).slice(-2),r+=("0"+e.getUTCHours()).slice(-2),r+=("0"+e.getUTCMinutes()).slice(-2),r+=("0"+e.getUTCSeconds()).slice(-2),n){var a=e.getUTCMilliseconds();0!==a&&(a=("00"+a).slice(-3),a=a.replace(/0+$/g,""),r+="."+a)}return r+="Z",r}function or(e){return e.match(/^[0-9]{12}Z$/)||e.match(/^[0-9]{12}[.][0-9]*Z$/)?e.match(/^[0-4]/)?"20"+e:"19"+e:e}function sr(e){return e.replace(/%/g,"")}function lr(e){return e.replace(/(..)/g,"%$1")}function cr(e){var t="malformed IPv6 address";if(!e.match(/^[0-9A-Fa-f:]+$/))throw t;e=e.toLowerCase();var n=e.split(":").length-1;if(n<2)throw t;var r=":".repeat(7-n+2);e=e.replace("::",r);var i=e.split(":");if(8!=i.length)throw t;for(var a=0;a<8;a++)i[a]=("0000"+i[a]).slice(-4);return i.join("")}function ur(e){if(!e.match(/^[0-9A-Fa-f]{32}$/))throw new Error("malformed IPv6 address: "+e);e=e.toLowerCase();var t=e.match(/.{1,4}/g);t=t.map((function(e){return e.replace(/^0+/,"")})),t=t.map((function(e){return""==e?"0":e})),e=":"+t.join(":")+":";var n=e.match(/:(0:){2,}/g);if(null==n)return e.slice(1,-1);var r=n.sort().slice(-1)[0];return e=e.replace(r.substr(0,r.length-1),":"),"::"!=e.substr(0,2)&&(e=e.substr(1)),"::"!=e.substr(-2,2)&&(e=e.substr(0,e.length-1)),e}function dr(e){var t=new Error("malformed hex value");if(!e.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw t;if(8==e.length){var n;try{return n=parseInt(e.substr(0,2),16)+"."+parseInt(e.substr(2,2),16)+"."+parseInt(e.substr(4,2),16)+"."+parseInt(e.substr(6,2),16),n}catch(r){throw t}}else{if(16!=e.length){if(32==e.length)return ur(e);if(64==e.length){try{return ur(e.substr(0,32))+"/"+hr(e.substr(32))}catch(r){throw t}return}return e}try{return dr(e.substr(0,8))+"/"+hr(e.substr(8))}catch(r){throw t}}}function hr(e){var t,n=new Error("malformed mask");try{t=new v(e,16).toString(2)}catch(r){throw n}if(!t.match(/^1*0*$/))throw n;return t.replace(/0+$/,"").length}function pr(e){var t=new Error("malformed IP address");if(e=e.toLowerCase(e),!e.match(/^[0-9a-f.:/]+$/))throw t;if(!e.match(/^[0-9.]+$/)){if(e.match(/^[0-9.]+\/[0-9]+$/)){var n=e.split("/");return pr(n[0])+fr(parseInt(n[1]),32)}if(e.match(/^[0-9a-f:]+$/)&&-1!==e.indexOf(":"))return cr(e);if(e.match(/^[0-9a-f:]+\/[0-9]+$/)&&-1!==e.indexOf(":")){n=e.split("/");return cr(n[0])+fr(parseInt(n[1]),128)}throw t}var r=e.split(".");if(4!==r.length)throw t;var i="";try{for(var a=0;a<4;a++){var o=parseInt(r[a]);i+=("0"+o.toString(16)).slice(-2)}return i}catch(s){throw t}}function fr(e,t){if(32==t&&0==e)return"00000000";if(128==t&&0==e)return"00000000000000000000000000000000";var n=Array(e+1).join("1")+Array(t-e+1).join("0");return new v(n,2).toString(16)}function mr(e){function t(e){var t=parseInt(e.substr(0,2),16),n=parseInt(e.substr(2),16);if(0==t&n<128)return String.fromCharCode(n);if(t<8){var r=192|(7&t)<<3|(192&n)>>6,i=128|63&n;return Un(r.toString(16)+i.toString(16))}r=224|(240&t)>>4,i=128|(15&t)<<2|(192&n)>>6;var a=128|63&n;return Un(r.toString(16)+i.toString(16)+a.toString(16))}var n=e.match(/.{4}/g),r=n.map(t);return r.join("")}function gr(e){for(var t=encodeURIComponent(e),n="",r=0;r<t.length;r++)"%"==t[r]?(n+=t.substr(r,3),r+=2):n=n+"%"+Tn(t[r]);return n}function vr(e){return e=e.replace(/\r\n/gm,"\n"),e}function br(e){return e=e.replace(/\r\n/gm,"\n"),e=e.replace(/\n/gm,"\r\n"),e}function yr(e){return!(e.length%2!=0||!e.match(/^[0-9a-f]+$/)&&!e.match(/^[0-9A-F]+$/))}function wr(e){return!!e.match(/^[0-9A-Za-z-_.]+$/)}function Er(e){return e.length%2==1?"0"+e:e.substr(0,1)>"7"?"00"+e:e}function _r(e){e=e.replace(/^\s*\[\s*/,""),e=e.replace(/\s*\]\s*$/,""),e=e.replace(/\s*/g,"");try{var t=e.split(/,/).map((function(e,t,n){var r=parseInt(e);if(r<0||255<r)throw"integer not in range 0-255";var i=("00"+r.toString(16)).slice(-2);return i})).join("");return t}catch(n){throw"malformed integer array string: "+n}}xn.getLblen=function(e,t){if("8"!=e.substr(t+2,1))return 1;var n=parseInt(e.substr(t+3,1));return 0==n?-1:0<n&&n<10?n+1:-2},xn.getL=function(e,t){var n=xn.getLblen(e,t);return n<1?"":e.substr(t+2,2*n)},xn.getVblen=function(e,t){var n,r;return n=xn.getL(e,t),""==n?-1:(r="8"===n.substr(0,1)?new v(n.substr(2),16):new v(n,16),r.intValue())},xn.getVidx=function(e,t){var n=xn.getLblen(e,t);return n<0?n:t+2*(n+1)},xn.getV=function(e,t){var n=xn.getVidx(e,t),r=xn.getVblen(e,t);return e.substr(n,2*r)},xn.getTLV=function(e,t){return e.substr(t,2)+xn.getL(e,t)+xn.getV(e,t)},xn.getTLVblen=function(e,t){return 2+2*xn.getLblen(e,t)+2*xn.getVblen(e,t)},xn.getNextSiblingIdx=function(e,t){var n=xn.getVidx(e,t),r=xn.getVblen(e,t);return n+2*r},xn.getChildIdx=function(e,t){var n,r,i,a=xn,o=[];n=a.getVidx(e,t),r=2*a.getVblen(e,t),"03"==e.substr(t,2)&&(n+=2,r-=2),i=0;var s=n;while(i<=r){var l=a.getTLVblen(e,s);if(i+=l,i<=r&&o.push(s),s+=l,i>=r)break}return o},xn.getNthChildIdx=function(e,t,n){var r=xn.getChildIdx(e,t);return r[n]},xn.getIdxbyList=function(e,t,n,r){var i,a,o=xn;return 0==n.length?void 0!==r&&e.substr(t,2)!==r?-1:t:(i=n.shift(),a=o.getChildIdx(e,t),i>=a.length?-1:o.getIdxbyList(e,a[i],n,r))},xn.getIdxbyListEx=function(e,t,n,r){var i,a,o=xn;if(0==n.length)return void 0!==r&&e.substr(t,2)!==r?-1:t;i=n.shift(),a=o.getChildIdx(e,t);for(var s=0,l=0;l<a.length;l++){var c=e.substr(a[l],2);if("number"==typeof i&&!o.isContextTag(c)&&s==i||"string"==typeof i&&o.isContextTag(c,i))return o.getIdxbyListEx(e,a[l],n,r);o.isContextTag(c)||s++}return-1},xn.getTLVbyList=function(e,t,n,r){var i=xn,a=i.getIdxbyList(e,t,n,r);return-1==a||a>=e.length?null:i.getTLV(e,a)},xn.getTLVbyListEx=function(e,t,n,r){var i=xn,a=i.getIdxbyListEx(e,t,n,r);return-1==a?null:i.getTLV(e,a)},xn.getVbyList=function(e,t,n,r,i){var a,o,s=xn;return a=s.getIdxbyList(e,t,n,r),-1==a||a>=e.length?null:(o=s.getV(e,a),!0===i&&(o=o.substr(2)),o)},xn.getVbyListEx=function(e,t,n,r,i){var a,o,s=xn;return a=s.getIdxbyListEx(e,t,n,r),-1==a?null:(o=s.getV(e,a),"03"==e.substr(a,2)&&!1!==i&&(o=o.substr(2)),o)},xn.getInt=function(e,t,n){void 0==n&&(n=-1);try{var r=e.substr(t,2);if("02"!=r&&"03"!=r)return n;var i=xn.getV(e,t);return"02"==r?parseInt(i,16):Tr(i)}catch(a){return n}},xn.getOID=function(e,t,n){void 0==n&&(n=null);try{if("06"!=e.substr(t,2))return n;var r=xn.getV(e,t);return xr(r)}catch(i){return n}},xn.getOIDName=function(e,t,n){void 0==n&&(n=null);try{var r=xn.getOID(e,t,n);if(r==n)return n;var i=_n.asn1.x509.OID.oid2name(r);return""==i?r:i}catch(a){return n}},xn.getString=function(e,t,n){void 0==n&&(n=null);try{var r=xn.getV(e,t);return Kn(r)}catch(i){return n}},xn.hextooidstr=function(e){var t=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},n=[],r=e.substr(0,2),i=parseInt(r,16);n[0]=new String(Math.floor(i/40)),n[1]=new String(i%40);for(var a=e.substr(2),o=[],s=0;s<a.length/2;s++)o.push(parseInt(a.substr(2*s,2),16));var l=[],c="";for(s=0;s<o.length;s++)128&o[s]?c+=t((127&o[s]).toString(2),7):(c+=t((127&o[s]).toString(2),7),l.push(new String(parseInt(c,2))),c="");var u=n.join(".");return l.length>0&&(u=u+"."+l.join(".")),u},xn.dump=function(e,t,n,r){var i=xn,a=i.getV,o=i.dump,s=i.getChildIdx,l=e;e instanceof _n.asn1.ASN1Object&&(l=e.tohex());var c=function(e,t){if(e.length<=2*t)return e;var n=e.substr(0,t)+"..(total "+e.length/2+"bytes).."+e.substr(e.length-t,t);return n};void 0===t&&(t={ommit_long_octet:32}),void 0===n&&(n=0),void 0===r&&(r="");var u=t.ommit_long_octet,d=l.substr(n,2);if("01"==d){var h=a(l,n);return"00"==h?r+"BOOLEAN FALSE\n":r+"BOOLEAN TRUE\n"}if("02"==d){h=a(l,n);return r+"INTEGER "+c(h,u)+"\n"}if("03"==d){h=a(l,n);if(i.isASN1HEX(h.substr(2))){var p=r+"BITSTRING, encapsulates\n";return p+=o(h.substr(2),t,0,r+" "),p}return r+"BITSTRING "+c(h,u)+"\n"}if("04"==d){h=a(l,n);if(i.isASN1HEX(h)){p=r+"OCTETSTRING, encapsulates\n";return p+=o(h,t,0,r+" "),p}return r+"OCTETSTRING "+c(h,u)+"\n"}if("05"==d)return r+"NULL\n";if("06"==d){var f=a(l,n),m=_n.asn1.ASN1Util.oidHexToInt(f),g=_n.asn1.x509.OID.oid2name(m),v=m.replace(/\./g," ");return""!=g?r+"ObjectIdentifier "+g+" ("+v+")\n":r+"ObjectIdentifier ("+v+")\n"}if("0a"==d)return r+"ENUMERATED "+parseInt(a(l,n))+"\n";if("0c"==d)return r+"UTF8String '"+Un(a(l,n))+"'\n";if("13"==d)return r+"PrintableString '"+Un(a(l,n))+"'\n";if("14"==d)return r+"TeletexString '"+Un(a(l,n))+"'\n";if("16"==d)return r+"IA5String '"+Un(a(l,n))+"'\n";if("17"==d)return r+"UTCTime "+Un(a(l,n))+"\n";if("18"==d)return r+"GeneralizedTime "+Un(a(l,n))+"\n";if("1a"==d)return r+"VisualString '"+Un(a(l,n))+"'\n";if("1e"==d)return r+"BMPString '"+mr(a(l,n))+"'\n";if("30"==d){if("3000"==l.substr(n,4))return r+"SEQUENCE {}\n";p=r+"SEQUENCE\n";var b=s(l,n),y=t;if((2==b.length||3==b.length)&&"06"==l.substr(b[0],2)&&"04"==l.substr(b[b.length-1],2)){g=i.oidname(a(l,b[0]));var w=JSON.parse(JSON.stringify(t));w.x509ExtName=g,y=w}for(var E=0;E<b.length;E++)p+=o(l,y,b[E],r+" ");return p}if("31"==d){for(p=r+"SET\n",b=s(l,n),E=0;E<b.length;E++)p+=o(l,t,b[E],r+" ");return p}d=parseInt(d,16);if(0!=(128&d)){var _=31&d;if(0!=(32&d)){for(p=r+"["+_+"]\n",b=s(l,n),E=0;E<b.length;E++)p+=o(l,t,b[E],r+" ");return p}h=a(l,n);if(xn.isASN1HEX(h)){p=r+"["+_+"]\n";return p+=o(h,t,0,r+" "),p}("68747470"==h.substr(0,8)||"subjectAltName"===t.x509ExtName&&2==_)&&(h=Un(h));p=r+"["+_+"] "+h+"\n";return p}return r+"UNKNOWN("+d+") "+a(l,n)+"\n"},xn.parse=function(e){var t=xn,n=t.parse,r=t.isASN1HEX,i=t.getV,a=t.getTLV,o=t.getChildIdx,s=_n.asn1,l=s.ASN1Util.oidHexToInt,c=s.x509.OID.oid2name,u=Un,d=mr,h=jn,p={"0c":"utf8str",12:"numstr",13:"prnstr",14:"telstr",16:"ia5str",17:"utctime",18:"gentime","1a":"visstr","1e":"bmpstr",30:"seq",31:"set"},f=function(e){for(var t=[],r=o(e,0),i=0;i<r.length;i++){var s=r[i],l=a(e,s),c=n(l);t.push(c)}return t},m=e.substr(0,2),g={},v=i(e,0);if("01"==m)return"0101ff"==e?{bool:!0}:{bool:!1};if("02"==m)return{int:{hex:v}};if("03"==m)try{if("00"!=v.substr(0,2))throw"not encap";var b=v.substr(2);if(!r(b))throw"not encap";return{bitstr:{obj:n(b)}}}catch(Pt){var y=null;return v.length<=10&&(y=Or(v)),null==y?{bitstr:{hex:v}}:{bitstr:{bin:y}}}else if("04"==m)try{if(!r(v))throw"not encap";return{octstr:{obj:n(v)}}}catch(Pt){return{octstr:{hex:v}}}else{if("05"==m)return{null:""};if("06"==m){var w=l(v),E=c(w);return""==E?{oid:w}:{oid:E}}if("0a"==m)return v.length>4?{enum:{hex:v}}:{enum:parseInt(v,16)};if("30"==m||"31"==m)return g[p[m]]=f(e),g;if("14"==m){var _=h(v);return g[p[m]]={str:_},g}if("1e"==m){_=d(v);return g[p[m]]={str:_},g}if(-1!=":0c:12:13:16:17:18:1a:".indexOf(m)){_=u(v);return g[p[m]]={str:_},g}if(m.match(/^8[0-9]$/)){_=u(v);return null==_|""==_||null!=_.match(/[\x00-\x1F\x7F-\x9F]/)||null!=_.match(/[\u0000-\u001F\u0080–\u009F]/)?{tag:{tag:m,explicit:!1,hex:v}}:{tag:{tag:m,explicit:!1,str:_}}}if(!m.match(/^a[0-9]$/)){var S=new _n.asn1.ASN1Object;S.hV=v;var k=S.getLengthHexFromValue();return{asn1:{tlv:m+k+v}}}try{if(!r(v))throw new Error("not encap");return{tag:{tag:m,explicit:!0,obj:n(v)}}}catch(Pt){return{tag:{tag:m,explicit:!0,hex:v}}}}},xn.isContextTag=function(e,t){var n,r;e=e.toLowerCase();try{n=parseInt(e,16)}catch(a){return-1}if(void 0===t)return 128==(192&n);try{var i=t.match(/^\[[0-9]+\]$/);return null!=i&&(r=parseInt(t.substr(1,t.length-1),10),!(r>31)&&(128==(192&n)&&(31&n)==r))}catch(a){return!1}},xn.isASN1HEX=function(e){var t=xn;if(e.length%2==1)return!1;var n=t.getVblen(e,0),r=e.substr(0,2),i=t.getL(e,0),a=e.length-r.length-i.length;return a==2*n},xn.checkStrictDER=function(e,t,n,r,i){var a=xn;if(void 0===n){if("string"!=typeof e)throw new Error("not hex string");if(e=e.toLowerCase(),!_n.lang.String.isHex(e))throw new Error("not hex string");n=e.length,r=e.length/2,i=r<128?1:Math.ceil(r.toString(16))+1}var o=a.getL(e,t);if(o.length>2*i)throw new Error("L of TLV too long: idx="+t);var s=a.getVblen(e,t);if(s>r)throw new Error("value of L too long than hex: idx="+t);var l=a.getTLV(e,t),c=l.length-2-a.getL(e,t).length;if(c!==2*s)throw new Error("V string length and L's value not the same:"+c+"/"+2*s);if(0===t&&e.length!=l.length)throw new Error("total length and TLV length unmatch:"+e.length+"!="+l.length);var u=e.substr(t,2);if("02"===u){var d=a.getVidx(e,t);if("00"==e.substr(d,2)&&e.charCodeAt(d+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(u,16)){for(var h=a.getVblen(e,t),p=0,f=a.getChildIdx(e,t),m=0;m<f.length;m++){var g=a.getTLV(e,f[m]);p+=g.length,a.checkStrictDER(e,f[m],n,r,i)}if(2*h!=p)throw new Error("sum of children's TLV length and L unmatch: "+2*h+"!="+p)}},xn.oidname=function(e){var t=_n.asn1;_n.lang.String.isHex(e)&&(e=t.ASN1Util.oidHexToInt(e));var n=t.x509.OID.oid2name(e);return""===n&&(n=e),n},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.asn1&&_n.asn1||(_n.asn1={}),"undefined"!=typeof _n.asn1.x509&&_n.asn1.x509||(_n.asn1.x509={}),_n.asn1.x509.Certificate=function(e){_n.asn1.x509.Certificate.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERBitString,i=n.DERSequence,a=n.x509,o=a.TBSCertificate,s=a.AlgorithmIdentifier;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=this.params,t=e.sigalg;void 0!=e.sigalg.name&&(t=e.sigalg.name);var n=e.tbsobj.tohex(),r=new _n.crypto.Signature({alg:t});r.init(e.cakey),r.updateHex(n),e.sighex=r.sign()},this.getPEM=function(){return Yn(this.tohex(),"CERTIFICATE")},this.tohex=function(){var e=this.params;if(void 0!=e.tbsobj&&null!=e.tbsobj||(e.tbsobj=new o(e)),void 0==e.sighex&&void 0!=e.cakey&&this.sign(),void 0==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];t.push(e.tbsobj),t.push(new s({name:e.sigalg})),t.push(new r({hex:"00"+e.sighex}));var n=new i({array:t});return n.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&(this.params=e)},Pr(_n.asn1.x509.Certificate,_n.asn1.ASN1Object),_n.asn1.x509.TBSCertificate=function(e){_n.asn1.x509.TBSCertificate.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.x509,i=n.DERTaggedObject,a=n.DERInteger,o=n.DERSequence,s=r.AlgorithmIdentifier,l=r.Time,c=r.X500Name,u=r.Extensions,d=r.SubjectPublicKeyInfo;this.params=null,this.setByParam=function(e){this.params=e},this.tohex=function(){var e=[],t=this.params;if(void 0!=t.version||1!=t.version){var n=2;void 0!=t.version&&(n=t.version-1);var r=new i({obj:new a({int:n})});e.push(r)}e.push(new a(t.serial)),e.push(new s({name:t.sigalg})),e.push(new c(t.issuer)),e.push(new o({array:[new l(t.notbefore),new l(t.notafter)]})),e.push(new c(t.subject)),e.push(new d(Mr.getKey(t.sbjpubkey))),void 0!==t.ext&&t.ext.length>0&&e.push(new i({tag:"a3",obj:new u(t.ext)}));var h=new _n.asn1.DERSequence({array:e});return h.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.TBSCertificate,_n.asn1.ASN1Object),_n.asn1.x509.Extensions=function(e){_n.asn1.x509.Extensions.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERSequence,i=n.x509;this.aParam=[],this.setByParam=function(e){this.aParam=e},this.tohex=function(){for(var e=[],t=0;t<this.aParam.length;t++){var n=this.aParam[t],a=n.extname,o=null;if(void 0!=n.extn)o=new i.PrivateExtension(n);else if("subjectKeyIdentifier"==a)o=new i.SubjectKeyIdentifier(n);else if("keyUsage"==a)o=new i.KeyUsage(n);else if("subjectAltName"==a)o=new i.SubjectAltName(n);else if("issuerAltName"==a)o=new i.IssuerAltName(n);else if("basicConstraints"==a)o=new i.BasicConstraints(n);else if("nameConstraints"==a)o=new i.NameConstraints(n);else if("cRLDistributionPoints"==a)o=new i.CRLDistributionPoints(n);else if("certificatePolicies"==a)o=new i.CertificatePolicies(n);else if("policyMappings"==a)o=new i.PolicyMappings(n);else if("policyConstraints"==a)o=new i.PolicyConstraints(n);else if("inhibitAnyPolicy"==a)o=new i.InhibitAnyPolicy(n);else if("authorityKeyIdentifier"==a)o=new i.AuthorityKeyIdentifier(n);else if("extKeyUsage"==a)o=new i.ExtKeyUsage(n);else if("authorityInfoAccess"==a)o=new i.AuthorityInfoAccess(n);else if("cRLNumber"==a)o=new i.CRLNumber(n);else if("cRLReason"==a)o=new i.CRLReason(n);else if("ocspNonce"==a)o=new i.OCSPNonce(n);else if("ocspNoCheck"==a)o=new i.OCSPNoCheck(n);else if("adobeTimeStamp"==a)o=new i.AdobeTimeStamp(n);else{if("subjectDirectoryAttributes"!=a)throw new Error("extension not supported:"+JSON.stringify(n));o=new i.SubjectDirectoryAttributes(n)}null!=o&&e.push(o)}var s=new r({array:e});return s.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.x509.Extensions,_n.asn1.ASN1Object),_n.asn1.x509.Extension=function(e){_n.asn1.x509.Extension.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERObjectIdentifier,i=n.DEROctetString,a=(n.DERBitString,n.DERBoolean),o=n.DERSequence;this.tohex=function(){var e=new r({oid:this.oid}),t=new i({hex:this.getExtnValueHex()}),n=new Array;n.push(e),this.critical&&n.push(new a),n.push(t);var s=new o({array:n});return s.tohex()},this.getEncodedHex=function(){return this.tohex()},this.critical=!1,void 0!==e&&void 0!==e.critical&&(this.critical=e.critical)},Pr(_n.asn1.x509.Extension,_n.asn1.ASN1Object),_n.asn1.x509.KeyUsage=function(e){_n.asn1.x509.KeyUsage.superclass.constructor.call(this,e);var t=Error,n={digitalSignature:0,nonRepudiation:1,keyEncipherment:2,dataEncipherment:3,keyAgreement:4,keyCertSign:5,cRLSign:6,encipherOnly:7,decipherOnly:8};this.getExtnValueHex=function(){var e=this.getBinValue();return this.asn1ExtnValue=new _n.asn1.DERBitString({bin:e}),this.asn1ExtnValue.tohex()},this.getBinValue=function(){var e=this.params;if("object"!=typeof e||"object"!=typeof e.names&&"string"!=typeof e.bin)throw new t("parameter not yet set");if(void 0!=e.names)return Lr(e.names,n);if(void 0!=e.bin)return e.bin;throw new t("parameter not set properly")},this.oid="2.5.29.15",void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.KeyUsage,_n.asn1.x509.Extension),_n.asn1.x509.BasicConstraints=function(e){_n.asn1.x509.BasicConstraints.superclass.constructor.call(this,e);var t=_n.asn1,n=t.DERBoolean,r=t.DERInteger,i=t.DERSequence;this.getExtnValueHex=function(){var e=new Array;this.cA&&e.push(new n),this.pathLen>-1&&e.push(new r({int:this.pathLen}));var t=new i({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.tohex()},this.oid="2.5.29.19",this.cA=!1,this.pathLen=-1,void 0!==e&&(void 0!==e.cA&&(this.cA=e.cA),void 0!==e.pathLen&&(this.pathLen=e.pathLen))},Pr(_n.asn1.x509.BasicConstraints,_n.asn1.x509.Extension),_n.asn1.x509.CRLDistributionPoints=function(e){_n.asn1.x509.CRLDistributionPoints.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=n.x509;this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()},this.setByDPArray=function(e){for(var t=[],i=0;i<e.length;i++)if(e[i]instanceof _n.asn1.ASN1Object)t.push(e[i]);else{var a=new r.DistributionPoint(e[i]);t.push(a)}this.asn1ExtnValue=new n.DERSequence({array:t})},this.setByOneURI=function(e){var t=new r.DistributionPoint({fulluri:e});this.setByDPArray([t])},this.oid="2.5.29.31",void 0!==e&&(void 0!==e.array?this.setByDPArray(e.array):void 0!==e.uri&&this.setByOneURI(e.uri))},Pr(_n.asn1.x509.CRLDistributionPoints,_n.asn1.x509.Extension),_n.asn1.x509.DistributionPoint=function(e){_n.asn1.x509.DistributionPoint.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.x509.DistributionPointName;this.tohex=function(){var e=new n.DERSequence;if(null!=this.asn1DP){var t=new n.DERTaggedObject({explicit:!0,tag:"a0",obj:this.asn1DP});e.appendASN1Object(t)}return this.hTLV=e.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&(void 0!==e.dpobj?this.asn1DP=e.dpobj:void 0!==e.dpname?this.asn1DP=new r(e.dpname):void 0!==e.fulluri&&(this.asn1DP=new r({full:[{uri:e.fulluri}]})))},Pr(_n.asn1.x509.DistributionPoint,_n.asn1.ASN1Object),_n.asn1.x509.DistributionPointName=function(e){_n.asn1.x509.DistributionPointName.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERTaggedObject;if(this.tohex=function(){if("full"!=this.type)throw new Error("currently type shall be 'full': "+this.type);return this.asn1Obj=new r({explicit:!1,tag:this.tag,obj:this.asn1V}),this.hTLV=this.asn1Obj.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e)if(n.x509.GeneralNames.prototype.isPrototypeOf(e))this.type="full",this.tag="a0",this.asn1V=e;else{if(void 0===e.full)throw new Error("This class supports GeneralNames only as argument");this.type="full",this.tag="a0",this.asn1V=new n.x509.GeneralNames(e.full)}},Pr(_n.asn1.x509.DistributionPointName,_n.asn1.ASN1Object),_n.asn1.x509.CertificatePolicies=function(e){_n.asn1.x509.CertificatePolicies.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=n.x509,i=n.DERSequence,a=r.PolicyInformation;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++)e.push(new a(this.params.array[t]));var n=new i({array:e});return this.asn1ExtnValue=n,this.asn1ExtnValue.tohex()},this.oid="2.5.29.32",void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.CertificatePolicies,_n.asn1.x509.Extension),_n.asn1.x509.PolicyInformation=function(e){_n.asn1.x509.PolicyInformation.superclass.constructor.call(this,e);var t=_n.asn1,n=t.DERSequence,r=t.DERObjectIdentifier,i=t.x509.PolicyQualifierInfo;this.params=null,this.tohex=function(){if(void 0===this.params.policyoid&&void 0===this.params.array)throw new Error("parameter oid and array missing");var e=[new r(this.params.policyoid)];if(void 0!==this.params.array){for(var t=[],a=0;a<this.params.array.length;a++)t.push(new i(this.params.array[a]));t.length>0&&e.push(new n({array:t}))}var o=new n({array:e});return o.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.PolicyInformation,_n.asn1.ASN1Object),_n.asn1.x509.PolicyQualifierInfo=function(e){_n.asn1.x509.PolicyQualifierInfo.superclass.constructor.call(this,e);var t=_n.asn1,n=t.DERSequence,r=t.DERIA5String,i=t.DERObjectIdentifier,a=t.x509.UserNotice;this.params=null,this.tohex=function(){if(void 0!==this.params.cps){var e=new n({array:[new i({oid:"1.3.6.1.5.5.7.2.1"}),new r({str:this.params.cps})]});return e.tohex()}if(void 0!=this.params.unotice){e=new n({array:[new i({oid:"1.3.6.1.5.5.7.2.2"}),new a(this.params.unotice)]});return e.tohex()}},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.PolicyQualifierInfo,_n.asn1.ASN1Object),_n.asn1.x509.UserNotice=function(e){_n.asn1.x509.UserNotice.superclass.constructor.call(this,e);var t=_n.asn1.DERSequence,n=(_n.asn1.DERInteger,_n.asn1.x509.DisplayText),r=_n.asn1.x509.NoticeReference;this.params=null,this.tohex=function(){var e=[];void 0!==this.params.noticeref&&e.push(new r(this.params.noticeref)),void 0!==this.params.exptext&&e.push(new n(this.params.exptext));var i=new t({array:e});return i.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.UserNotice,_n.asn1.ASN1Object),_n.asn1.x509.NoticeReference=function(e){_n.asn1.x509.NoticeReference.superclass.constructor.call(this,e);var t=_n.asn1.DERSequence,n=_n.asn1.DERInteger,r=_n.asn1.x509.DisplayText;this.params=null,this.tohex=function(){var e=[];if(void 0!==this.params.org&&e.push(new r(this.params.org)),void 0!==this.params.noticenum){for(var i=[],a=this.params.noticenum,o=0;o<a.length;o++)i.push(new n(a[o]));e.push(new t({array:i}))}if(0==e.length)throw new Error("parameter is empty");var s=new t({array:e});return s.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.NoticeReference,_n.asn1.ASN1Object),_n.asn1.x509.DisplayText=function(e){_n.asn1.x509.DisplayText.superclass.constructor.call(this,e),this.hT="0c",void 0!==e&&("ia5"===e.type?this.hT="16":"vis"===e.type?this.hT="1a":"bmp"===e.type&&(this.hT="1e"))},Pr(_n.asn1.x509.DisplayText,_n.asn1.DERAbstractString),_n.asn1.x509.PolicyMappings=function(e){_n.asn1.x509.PolicyMappings.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=(n.x509,n.ASN1Util.newObject);this.params=null,this.getExtnValueHex=function(){for(var e=this.params,t=[],n=0;n<e.array.length;n++){var i=e.array[n];t.push({seq:[{oid:i[0]},{oid:i[1]}]})}return this.asn1ExtnValue=r({seq:t}),this.asn1ExtnValue.tohex()},this.oid="2.5.29.33",void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.PolicyMappings,_n.asn1.x509.Extension),_n.asn1.x509.PolicyConstraints=function(e){_n.asn1.x509.PolicyConstraints.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=(n.x509,n.ASN1Util.newObject);this.params=null,this.getExtnValueHex=function(){var e=this.params,t=[];return void 0!=e.reqexp&&t.push({tag:{tagi:"80",obj:{int:e.reqexp}}}),void 0!=e.inhibit&&t.push({tag:{tagi:"81",obj:{int:e.inhibit}}}),this.asn1ExtnValue=r({seq:t}),this.asn1ExtnValue.tohex()},this.oid="2.5.29.36",void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.PolicyConstraints,_n.asn1.x509.Extension),_n.asn1.x509.InhibitAnyPolicy=function(e){_n.asn1.x509.InhibitAnyPolicy.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=(n.x509,n.ASN1Util.newObject);this.params=null,this.getExtnValueHex=function(){return this.asn1ExtnValue=r({int:this.params.skip}),this.asn1ExtnValue.tohex()},this.oid="2.5.29.54",void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.InhibitAnyPolicy,_n.asn1.x509.Extension),_n.asn1.x509.NameConstraints=function(e){_n.asn1.x509.NameConstraints.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=n.x509,i=n.ASN1Util.newObject,a=r.GeneralSubtree;this.params=null,this.getExtnValueHex=function(){var e=this.params,t=[];if(void 0!=e.permit&&void 0!=e.permit.length){for(var n=[],r=0;r<e.permit.length;r++)n.push(new a(e.permit[r]));t.push({tag:{tagi:"a0",obj:{seq:n}}})}if(void 0!=e.exclude&&void 0!=e.exclude.length){var o=[];for(r=0;r<e.exclude.length;r++)o.push(new a(e.exclude[r]));t.push({tag:{tagi:"a1",obj:{seq:o}}})}return this.asn1ExtnValue=i({seq:t}),this.asn1ExtnValue.tohex()},this.oid="2.5.29.30",void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.NameConstraints,_n.asn1.x509.Extension),_n.asn1.x509.GeneralSubtree=function(e){_n.asn1.x509.GeneralSubtree.superclass.constructor.call(this);var t=_n.asn1,n=t.x509,r=n.GeneralName,i=t.ASN1Util.newObject;this.params=null,this.setByParam=function(e){this.params=e},this.tohex=function(){var e=this.params,t=[new r(e)];void 0!=e.min&&t.push({tag:{tagi:"80",obj:{int:e.min}}}),void 0!=e.max&&t.push({tag:{tagi:"81",obj:{int:e.max}}});var n=i({seq:t});return n.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.GeneralSubtree,_n.asn1.ASN1Object),_n.asn1.x509.ExtKeyUsage=function(e){_n.asn1.x509.ExtKeyUsage.superclass.constructor.call(this,e);var t=_n,n=t.asn1;this.setPurposeArray=function(e){this.asn1ExtnValue=new n.DERSequence;for(var t=0;t<e.length;t++){var r=new n.DERObjectIdentifier(e[t]);this.asn1ExtnValue.appendASN1Object(r)}},this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()},this.oid="2.5.29.37",void 0!==e&&void 0!==e.array&&this.setPurposeArray(e.array)},Pr(_n.asn1.x509.ExtKeyUsage,_n.asn1.x509.Extension),_n.asn1.x509.AuthorityKeyIdentifier=function(e){_n.asn1.x509.AuthorityKeyIdentifier.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=n.DERTaggedObject,i=n.x509.GeneralNames;t.crypto.Util.isKey;this.asn1KID=null,this.asn1CertIssuer=null,this.asn1CertSN=null,this.getExtnValueHex=function(){var e=new Array;this.asn1KID&&e.push(new r({explicit:!1,tag:"80",obj:this.asn1KID})),this.asn1CertIssuer&&e.push(new r({explicit:!1,tag:"a1",obj:new i([{dn:this.asn1CertIssuer}])})),this.asn1CertSN&&e.push(new r({explicit:!1,tag:"82",obj:this.asn1CertSN}));var t=new n.DERSequence({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.tohex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new _n.asn1.DEROctetString(e);else if("object"===typeof e&&_n.crypto.Util.isKey(e)||"string"===typeof e&&-1!=e.indexOf("BEGIN ")){var t=e;"string"===typeof e&&(t=Mr.getKey(e));var n=Mr.getKeyID(t);this.asn1KID=new _n.asn1.DEROctetString({hex:n})}},this.setCertIssuerByParam=function(e){void 0!==e.str||void 0!==e.ldapstr||void 0!==e.hex||void 0!==e.certsubject||void 0!==e.certissuer?this.asn1CertIssuer=new _n.asn1.x509.X500Name(e):"string"===typeof e&&-1!=e.indexOf("BEGIN ")&&-1!=e.indexOf("CERTIFICATE")&&(this.asn1CertIssuer=new _n.asn1.x509.X500Name({certissuer:e}))},this.setCertSNByParam=function(e){if(void 0!==e.str||void 0!==e.bigint||void 0!==e.hex)this.asn1CertSN=new _n.asn1.DERInteger(e);else if("string"===typeof e&&-1!=e.indexOf("BEGIN ")&&e.indexOf("CERTIFICATE")){var t=new Ur;t.readCertPEM(e);var n=t.getSerialNumberHex();this.asn1CertSN=new _n.asn1.DERInteger({hex:n})}},this.oid="2.5.29.35",void 0!==e&&(void 0!==e.kid&&this.setKIDByParam(e.kid),void 0!==e.issuer&&this.setCertIssuerByParam(e.issuer),void 0!==e.sn&&this.setCertSNByParam(e.sn),void 0!==e.issuersn&&"string"===typeof e.issuersn&&-1!=e.issuersn.indexOf("BEGIN ")&&e.issuersn.indexOf("CERTIFICATE")&&(this.setCertSNByParam(e.issuersn),this.setCertIssuerByParam(e.issuersn)))},Pr(_n.asn1.x509.AuthorityKeyIdentifier,_n.asn1.x509.Extension),_n.asn1.x509.SubjectKeyIdentifier=function(e){_n.asn1.x509.SubjectKeyIdentifier.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=n.DEROctetString;this.asn1KID=null,this.getExtnValueHex=function(){return this.asn1ExtnValue=this.asn1KID,this.asn1ExtnValue.tohex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new r(e);else if("object"===typeof e&&_n.crypto.Util.isKey(e)||"string"===typeof e&&-1!=e.indexOf("BEGIN")){var t=e;"string"===typeof e&&(t=Mr.getKey(e));var n=Mr.getKeyID(t);this.asn1KID=new _n.asn1.DEROctetString({hex:n})}},this.oid="2.5.29.14",void 0!==e&&void 0!==e.kid&&this.setKIDByParam(e.kid)},Pr(_n.asn1.x509.SubjectKeyIdentifier,_n.asn1.x509.Extension),_n.asn1.x509.AuthorityInfoAccess=function(e){_n.asn1.x509.AuthorityInfoAccess.superclass.constructor.call(this,e),this.setAccessDescriptionArray=function(e){for(var t=new Array,n=_n,r=n.asn1,i=r.DERSequence,a=r.DERObjectIdentifier,o=r.x509.GeneralName,s=0;s<e.length;s++){var l,c=e[s];if(void 0!==c.ocsp)l=new i({array:[new a({oid:"1.3.6.1.5.5.7.48.1"}),new o({uri:c.ocsp})]});else{if(void 0===c.caissuer)throw new Error("unknown AccessMethod parameter: "+JSON.stringify(c));l=new i({array:[new a({oid:"1.3.6.1.5.5.7.48.2"}),new o({uri:c.caissuer})]})}t.push(l)}this.asn1ExtnValue=new i({array:t})},this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()},this.oid="1.3.6.1.5.5.7.1.1",void 0!==e&&void 0!==e.array&&this.setAccessDescriptionArray(e.array)},Pr(_n.asn1.x509.AuthorityInfoAccess,_n.asn1.x509.Extension),_n.asn1.x509.SubjectAltName=function(e){_n.asn1.x509.SubjectAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new _n.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()},this.oid="2.5.29.17",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},Pr(_n.asn1.x509.SubjectAltName,_n.asn1.x509.Extension),_n.asn1.x509.IssuerAltName=function(e){_n.asn1.x509.IssuerAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new _n.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()},this.oid="2.5.29.18",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},Pr(_n.asn1.x509.IssuerAltName,_n.asn1.x509.Extension),_n.asn1.x509.SubjectDirectoryAttributes=function(e){_n.asn1.x509.SubjectDirectoryAttributes.superclass.constructor.call(this,e);var t=_n.asn1,n=t.DERSequence,r=t.ASN1Util.newObject,i=t.x509.OID.name2oid;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++){var a=this.params.array[t];if(void 0==a.attr||void 0==a.array){var o={seq:[{oid:"1.2.3.4"},{set:[{utf8str:"DE"}]}]};if("dateOfBirth"==a.attr)o.seq[0].oid=i(a.attr),o.seq[1].set[0]={gentime:a.str};else if("placeOfBirth"==a.attr)o.seq[0].oid=i(a.attr),o.seq[1].set[0]={utf8str:a.str};else if("gender"==a.attr)o.seq[0].oid=i(a.attr),o.seq[1].set[0]={prnstr:a.str};else if("countryOfCitizenship"==a.attr)o.seq[0].oid=i(a.attr),o.seq[1].set[0]={prnstr:a.str};else{if("countryOfResidence"!=a.attr)throw new Error("unsupported attribute: "+a.attr);o.seq[0].oid=i(a.attr),o.seq[1].set[0]={prnstr:a.str}}e.push(new r(o))}else{var s={seq:[{oid:a.attr},{set:a.array}]};e.push(r(s))}}var l=new n({array:e});return this.asn1ExtnValue=l,this.asn1ExtnValue.tohex()},this.oid="2.5.29.9",void 0!==e&&(this.params=e)},Pr(_n.asn1.x509.SubjectDirectoryAttributes,_n.asn1.x509.Extension),_n.asn1.x509.PrivateExtension=function(e){_n.asn1.x509.PrivateExtension.superclass.constructor.call(this,e);var t=_n,n=t.lang.String.isHex,r=t.asn1,i=r.x509.OID.name2oid,a=r.ASN1Util.newObject;this.params=null,this.setByParam=function(e){this.oid=i(e.extname),this.params=e},this.getExtnValueHex=function(){if(void 0==this.params.extname||void 0==this.params.extn)throw new Error("extname or extnhex not specified");var e=this.params.extn;if("string"==typeof e&&n(e))return e;if("object"==typeof e)try{return a(e).tohex()}catch(t){}throw new Error("unsupported extn value")},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.x509.PrivateExtension,_n.asn1.x509.Extension),_n.asn1.x509.CRL=function(e){_n.asn1.x509.CRL.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERSequence,i=n.DERBitString,a=n.x509,o=a.AlgorithmIdentifier,s=a.TBSCertList;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=new s(this.params).tohex(),t=new _n.crypto.Signature({alg:this.params.sigalg});t.init(this.params.cakey),t.updateHex(e);var n=t.sign();this.params.sighex=n},this.getPEM=function(){return Yn(this.tohex(),"X509 CRL")},this.tohex=function(){var e=this.params;if(void 0==e.tbsobj&&(e.tbsobj=new s(e)),void 0==e.sighex&&void 0!=e.cakey&&this.sign(),void 0==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];t.push(e.tbsobj),t.push(new o({name:e.sigalg})),t.push(new i({hex:"00"+e.sighex}));var n=new r({array:t});return n.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&(this.params=e)},Pr(_n.asn1.x509.CRL,_n.asn1.ASN1Object),_n.asn1.x509.TBSCertList=function(e){_n.asn1.x509.TBSCertList.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERInteger,i=n.DERSequence,a=n.DERTaggedObject,o=(n.DERObjectIdentifier,n.x509),s=o.AlgorithmIdentifier,l=o.Time,c=o.Extensions,u=o.X500Name;this.params=null,this.setByParam=function(e){this.params=e},this.getRevCertSequence=function(){for(var e=[],t=this.params.revcert,n=0;n<t.length;n++){var a=[new r(t[n].sn),new l(t[n].date)];void 0!=t[n].ext&&a.push(new c(t[n].ext)),e.push(new i({array:a}))}return new i({array:e})},this.tohex=function(){var e=[],t=this.params;if(void 0!=t.version){var n=t.version-1,o=new r({int:n});e.push(o)}if(e.push(new s({name:t.sigalg})),e.push(new u(t.issuer)),e.push(new l(t.thisupdate)),void 0!=t.nextupdate&&e.push(new l(t.nextupdate)),void 0!=t.revcert&&e.push(this.getRevCertSequence()),void 0!=t.ext){var d=new c(t.ext);e.push(new a({tag:"a0",explicit:!0,obj:d}))}var h=new i({array:e});return h.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.TBSCertList,_n.asn1.ASN1Object),_n.asn1.x509.CRLEntry=function(e){_n.asn1.x509.CRLEntry.superclass.constructor.call(this);var t=_n,n=t.asn1;this.setCertSerial=function(e){this.sn=new n.DERInteger(e)},this.setRevocationDate=function(e){this.time=new n.x509.Time(e)},this.tohex=function(){var e=new n.DERSequence({array:[this.sn,this.time]});return this.TLV=e.tohex(),this.TLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&(void 0!==e.time&&this.setRevocationDate(e.time),void 0!==e.sn&&this.setCertSerial(e.sn))},Pr(_n.asn1.x509.CRLEntry,_n.asn1.ASN1Object),_n.asn1.x509.CRLNumber=function(e){_n.asn1.x509.CRLNumber.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new _n.asn1.DERInteger(this.params.num),this.asn1ExtnValue.tohex()},this.oid="2.5.29.20",void 0!=e&&(this.params=e)},Pr(_n.asn1.x509.CRLNumber,_n.asn1.x509.Extension),_n.asn1.x509.CRLReason=function(e){_n.asn1.x509.CRLReason.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new _n.asn1.DEREnumerated(this.params.code),this.asn1ExtnValue.tohex()},this.oid="2.5.29.21",void 0!=e&&(this.params=e)},Pr(_n.asn1.x509.CRLReason,_n.asn1.x509.Extension),_n.asn1.x509.OCSPNonce=function(e){_n.asn1.x509.OCSPNonce.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new _n.asn1.DEROctetString(this.params),this.asn1ExtnValue.tohex()},this.oid="1.3.6.1.5.5.7.48.1.2",void 0!=e&&(this.params=e)},Pr(_n.asn1.x509.OCSPNonce,_n.asn1.x509.Extension),_n.asn1.x509.OCSPNoCheck=function(e){_n.asn1.x509.OCSPNoCheck.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new _n.asn1.DERNull,this.asn1ExtnValue.tohex()},this.oid="1.3.6.1.5.5.7.48.1.5",void 0!=e&&(this.params=e)},Pr(_n.asn1.x509.OCSPNoCheck,_n.asn1.x509.Extension),_n.asn1.x509.AdobeTimeStamp=function(e){_n.asn1.x509.AdobeTimeStamp.superclass.constructor.call(this,e);var t=_n,n=t.asn1,r=n.DERInteger,i=n.DERBoolean,a=n.DERSequence,o=n.x509.GeneralName;this.params=null,this.getExtnValueHex=function(){var e=this.params,t=[new r(1)];return t.push(new o({uri:e.uri})),void 0!=e.reqauth&&t.push(new i(e.reqauth)),this.asn1ExtnValue=new a({array:t}),this.asn1ExtnValue.tohex()},this.oid="1.2.840.113583.1.1.9.1",void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.AdobeTimeStamp,_n.asn1.x509.Extension),_n.asn1.x509.X500Name=function(e){_n.asn1.x509.X500Name.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=_n,n=t.asn1,r=n.x509,i=r.RDN;this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var n=e.split("/");n.shift();for(var r=[],a=0;a<n.length;a++)if(n[a].match(/^[^=]+=.+$/))r.push(n[a]);else{var o=r.length-1;r[o]=r[o]+"/"+n[a]}for(a=0;a<r.length;a++)this.asn1Array.push(new i({str:r[a],rule:this.sRule}))},this.setByLdapString=function(e,t){void 0!==t&&(this.sRule=t);var n=r.X500Name.ldapToCompat(e);this.setByString(n,t)},this.setByObject=function(e,t){for(var n in void 0!==t&&(this.sRule=t),e)if(e.hasOwnProperty(n)){var r=new i({str:n+"="+e[n],rule:this.sRule});this.asn1Array?this.asn1Array.push(r):this.asn1Array=[r]}},this.setByParam=function(e){if(void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.array)this.paramArray=e.array;else if(void 0!==e.str)this.setByString(e.str);else if(void 0!==e.ldapstr)this.setByLdapString(e.ldapstr);else if(void 0!==e.hex)this.hTLV=e.hex;else if(void 0!==e.certissuer){var t=new Ur;t.readCertPEM(e.certissuer),this.hTLV=t.getIssuerHex()}else if(void 0!==e.certsubject){t=new Ur;t.readCertPEM(e.certsubject),this.hTLV=t.getSubjectHex()}else"object"===typeof e&&void 0===e.certsubject&&void 0===e.certissuer&&this.setByObject(e)},this.tohex=function(){if("string"==typeof this.hTLV)return this.hTLV;if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var t={array:this.paramArray[e]};"utf8"!=this.sRule&&(t.rule=this.sRule);var r=new i(t);this.asn1Array.push(r)}var a=new n.DERSequence({array:this.asn1Array});return this.hTLV=a.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.X500Name,_n.asn1.ASN1Object),_n.asn1.x509.X500Name.compatToLDAP=function(e){if("/"!==e.substr(0,1))throw"malformed input";e=e.substr(1);var t=e.split("/");return t.reverse(),t=t.map((function(e){return e.replace(/,/,"\\,")})),t.join(",")},_n.asn1.x509.X500Name.onelineToLDAP=function(e){return _n.asn1.x509.X500Name.compatToLDAP(e)},_n.asn1.x509.X500Name.ldapToCompat=function(e){for(var t=e.split(","),n=!1,r=[],i=0;t.length>0;i++){var a=t.shift();if(!0===n){var o=r.pop(),s=(o+","+a).replace(/\\,/g,",");r.push(s),n=!1}else r.push(a);"\\"===a.substr(-1,1)&&(n=!0)}return r=r.map((function(e){return e.replace("/","\\/")})),r.reverse(),"/"+r.join("/")},_n.asn1.x509.X500Name.ldapToOneline=function(e){return _n.asn1.x509.X500Name.ldapToCompat(e)},_n.asn1.x509.RDN=function(e){_n.asn1.x509.RDN.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=_n.asn1.x509.AttributeTypeAndValue;this.setByParam=function(e){void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.str&&this.addByMultiValuedString(e.str),void 0!==e.array&&(this.paramArray=e.array)},this.addByString=function(e){this.asn1Array.push(new _n.asn1.x509.AttributeTypeAndValue({str:e,rule:this.sRule}))},this.addByMultiValuedString=function(e){for(var t=_n.asn1.x509.RDN.parseString(e),n=0;n<t.length;n++)this.addByString(t[n])},this.tohex=function(){if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var n=this.paramArray[e];void 0!==n.rule&&"utf8"!=this.sRule&&(n.rule=this.sRule);var r=new t(n);this.asn1Array.push(r)}var i=new _n.asn1.DERSet({array:this.asn1Array});return this.TLV=i.tohex(),this.TLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.RDN,_n.asn1.ASN1Object),_n.asn1.x509.RDN.parseString=function(e){for(var t=e.split(/\+/),n=!1,r=[],i=0;t.length>0;i++){var a=t.shift();if(!0===n){var o=r.pop(),s=(o+"+"+a).replace(/\\\+/g,"+");r.push(s),n=!1}else r.push(a);"\\"===a.substr(-1,1)&&(n=!0)}var l=!1,c=[];for(i=0;r.length>0;i++){a=r.shift();if(!0===l){var u=c.pop();if(a.match(/"$/)){s=(u+"+"+a).replace(/^([^=]+)="(.*)"$/,"$1=$2");c.push(s),l=!1}else c.push(u+"+"+a)}else c.push(a);a.match(/^[^=]+="/)&&(l=!0)}return c},_n.asn1.x509.AttributeTypeAndValue=function(e){_n.asn1.x509.AttributeTypeAndValue.superclass.constructor.call(this),this.sRule="utf8",this.sType=null,this.sValue=null,this.dsType=null;var t=_n,n=t.asn1,r=n.DERSequence,i=n.DERUTF8String,a=n.DERPrintableString,o=n.DERTeletexString,s=n.DERIA5String,l=n.DERVisibleString,c=n.DERBMPString,u=t.lang.String.isMail,d=t.lang.String.isPrintable;this.setByParam=function(e){if(void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.ds&&(this.dsType=e.ds),void 0===e.value&&void 0!==e.str){var t=e.str,n=t.match(/^([^=]+)=(.+)$/);if(!n)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.sType=n[1],this.sValue=n[2]}else this.sType=e.type,this.sValue=e.value},this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var n=e.match(/^([^=]+)=(.+)$/);if(!n)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.setByAttrTypeAndValueStr(n[1],n[2])},this._getDsType=function(){var e=this.sType,t=this.sValue,n=this.sRule;return"prn"===n?"CN"==e&&u(t)?"ia5":d(t)?"prn":"utf8":"utf8"===n?"CN"==e&&u(t)?"ia5":"C"==e?"prn":"utf8":"utf8"},this.setByAttrTypeAndValueStr=function(e,t,n){void 0!==n&&(this.sRule=n),this.sType=e,this.sValue=t},this.getValueObj=function(e,t){if("utf8"==e)return new i({str:t});if("prn"==e)return new a({str:t});if("tel"==e)return new o({str:t});if("ia5"==e)return new s({str:t});if("vis"==e)return new l({str:t});if("bmp"==e)return new c({str:t});throw new Error("unsupported directory string type: type="+e+" value="+t)},this.tohex=function(){null==this.dsType&&(this.dsType=this._getDsType());var e=_n.asn1.x509.OID.atype2obj(this.sType),t=this.getValueObj(this.dsType,this.sValue),n=new r({array:[e,t]});return this.TLV=n.tohex(),this.TLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.AttributeTypeAndValue,_n.asn1.ASN1Object),_n.asn1.x509.SubjectPublicKeyInfo=function(e){_n.asn1.x509.SubjectPublicKeyInfo.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERInteger,i=n.DERBitString,a=n.DERObjectIdentifier,o=n.DERSequence,s=n.ASN1Util.newObject,l=n.x509,c=l.AlgorithmIdentifier,u=t.crypto;u.ECDSA,u.DSA;this.getASN1Object=function(){if(null==this.asn1AlgId||null==this.asn1SubjPKey)throw"algId and/or subjPubKey not set";var e=new o({array:[this.asn1AlgId,this.asn1SubjPKey]});return e},this.tohex=function(){var e=this.getASN1Object();return this.hTLV=e.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},this.setPubKey=function(e){try{if(e instanceof Ut){var t=s({seq:[{int:{bigint:e.n}},{int:{int:e.e}}]}),n=t.tohex();this.asn1AlgId=new c({name:"rsaEncryption"}),this.asn1SubjPKey=new i({hex:"00"+n})}}catch(u){}try{if(e instanceof _n.crypto.ECDSA){var o=new a({name:e.curveName});this.asn1AlgId=new c({name:"ecPublicKey",asn1params:o}),this.asn1SubjPKey=new i({hex:"00"+e.pubKeyHex})}}catch(u){}try{if(e instanceof _n.crypto.DSA){o=new s({seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]});this.asn1AlgId=new c({name:"dsa",asn1params:o});var l=new r({bigint:e.y});this.asn1SubjPKey=new i({hex:"00"+l.tohex()})}}catch(u){}},void 0!==e&&this.setPubKey(e)},Pr(_n.asn1.x509.SubjectPublicKeyInfo,_n.asn1.ASN1Object),_n.asn1.x509.Time=function(e){_n.asn1.x509.Time.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERUTCTime,i=n.DERGeneralizedTime;this.params=null,this.type=null,this.setTimeParams=function(e){this.timeParams=e},this.setByParam=function(e){this.params=e},this.getType=function(e){return e.match(/^[0-9]{12}Z$/)?"utc":e.match(/^[0-9]{14}Z$/)?"gen":e.match(/^[0-9]{12}\.[0-9]+Z$/)?"utc":e.match(/^[0-9]{14}\.[0-9]+Z$/)?"gen":null},this.tohex=function(){var e=this.params,t=null;if("string"==typeof e&&(e={str:e}),null==e||!e.str||null!=e.type&&void 0!=e.type||(e.type=this.getType(e.str)),null!=e&&e.str?("utc"==e.type&&(t=new r(e.str)),"gen"==e.type&&(t=new i(e.str))):t="gen"==this.type?new i:new r,null==t)throw new Error("wrong setting for Time");return this.TLV=t.tohex(),this.TLV},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},_n.asn1.x509.Time_bak=function(e){_n.asn1.x509.Time_bak.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERUTCTime,i=n.DERGeneralizedTime;this.setTimeParams=function(e){this.timeParams=e},this.tohex=function(){var e=null;return e=null!=this.timeParams?"utc"==this.type?new r(this.timeParams):new i(this.timeParams):"utc"==this.type?new r:new i,this.TLV=e.tohex(),this.TLV},this.getEncodedHex=function(){return this.tohex()},this.type="utc",void 0!==e&&(void 0!==e.type?this.type=e.type:void 0!==e.str&&(e.str.match(/^[0-9]{12}Z$/)&&(this.type="utc"),e.str.match(/^[0-9]{14}Z$/)&&(this.type="gen")),this.timeParams=e)},Pr(_n.asn1.x509.Time,_n.asn1.ASN1Object),_n.asn1.x509.AlgorithmIdentifier=function(e){_n.asn1.x509.AlgorithmIdentifier.superclass.constructor.call(this),this.nameAlg=null,this.asn1Alg=null,this.asn1Params=null,this.paramEmpty=!1;var t=_n,n=t.asn1,r=n.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;if(this.tohex=function(){if(null===this.nameAlg&&null===this.asn1Alg)throw new Error("algorithm not specified");if(null!==this.nameAlg){var e=null;for(var t in r)t===this.nameAlg&&(e=r[t]);if(null!==e)return this.hTLV=e,this.hTLV}null!==this.nameAlg&&null===this.asn1Alg&&(this.asn1Alg=n.x509.OID.name2obj(this.nameAlg));var i=[this.asn1Alg];null!==this.asn1Params&&i.push(this.asn1Params);var a=new n.DERSequence({array:i});return this.hTLV=a.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&(void 0!==e.name&&(this.nameAlg=e.name),void 0!==e.asn1params&&(this.asn1Params=e.asn1params),void 0!==e.paramempty&&(this.paramEmpty=e.paramempty)),null===this.asn1Params&&!1===this.paramEmpty&&null!==this.nameAlg){void 0!==this.nameAlg.name&&(this.nameAlg=this.nameAlg.name);var i=this.nameAlg.toLowerCase();"withdsa"!==i.substr(-7,7)&&"withecdsa"!==i.substr(-9,9)&&(this.asn1Params=new n.DERNull)}},Pr(_n.asn1.x509.AlgorithmIdentifier,_n.asn1.ASN1Object),_n.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},_n.asn1.x509.GeneralName=function(e){_n.asn1.x509.GeneralName.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.x509,i=r.X500Name,a=r.OtherName,o=n.DERIA5String,s=(n.DERPrintableString,n.DEROctetString),l=n.DERTaggedObject,c=n.ASN1Object,u=Error;this.params=null,this.setByParam=function(e){this.params=e},this.tohex=function(){var e,t,n=this.params,r=!1;if(void 0!==n.other)e="a0",t=new a(n.other);else if(void 0!==n.rfc822)e="81",t=new o({str:n.rfc822});else if(void 0!==n.dns)e="82",t=new o({str:n.dns});else if(void 0!==n.dn)e="a4",r=!0,t="string"===typeof n.dn?new i({str:n.dn}):n.dn instanceof _n.asn1.x509.X500Name?n.dn:new i(n.dn);else if(void 0!==n.ldapdn)e="a4",r=!0,t=new i({ldapstr:n.ldapdn});else if(void 0!==n.certissuer||void 0!==n.certsubj){var d,h;e="a4",r=!0;var p=null;if(void 0!==n.certsubj?(d=!1,h=n.certsubj):(d=!0,h=n.certissuer),h.match(/^[0-9A-Fa-f]+$/),-1!=h.indexOf("-----BEGIN ")&&(p=Qn(h)),null==p)throw new Error("certsubj/certissuer not cert");var f,m=new Ur;m.hex=p,f=d?m.getIssuerHex():m.getSubjectHex(),t=new c,t.hTLV=f}else if(void 0!==n.uri)e="86",t=new o({str:n.uri});else{if(void 0===n.ip)throw new u("improper params");var g;e="87";var v=n.ip;try{if(v.match(/^[0-9a-f]+$/)){var b=v.length;if(8!=b&&16!=b&&32!=b&&64!=b)throw"err";g=v}else g=pr(v)}catch(w){throw new u("malformed IP address: "+n.ip+":"+w.message)}t=new s({hex:g})}var y=new l({tag:e,explicit:r,obj:t});return y.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.GeneralName,_n.asn1.ASN1Object),_n.asn1.x509.GeneralNames=function(e){_n.asn1.x509.GeneralNames.superclass.constructor.call(this);var t=_n,n=t.asn1;this.setByParamArray=function(e){for(var t=0;t<e.length;t++){var r=new n.x509.GeneralName(e[t]);this.asn1Array.push(r)}},this.tohex=function(){var e=new n.DERSequence({array:this.asn1Array});return e.tohex()},this.getEncodedHex=function(){return this.tohex()},this.asn1Array=new Array,"undefined"!=typeof e&&this.setByParamArray(e)},Pr(_n.asn1.x509.GeneralNames,_n.asn1.ASN1Object),_n.asn1.x509.OtherName=function(e){_n.asn1.x509.OtherName.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.DERObjectIdentifier,i=n.DERSequence,a=n.ASN1Util.newObject;this.params=null,this.setByParam=function(e){this.params=e},this.tohex=function(){var e=this.params;if(void 0==e.oid||void 0==e.value)throw new Error("oid or value not specified");var t=new r({oid:e.oid}),n=a({tag:{tag:"a0",explicit:!0,obj:e.value}}),o=new i({array:[t,n]});return o.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.x509.OtherName,_n.asn1.ASN1Object),_n.asn1.x509.OID=new function(){var e=_n.asn1.DERObjectIdentifier;this.name2oidList={"aes128-CBC":"2.16.840.1.101.3.4.1.2","aes256-CBC":"2.16.840.1.101.3.4.1.42",sha1:"1.3.14.3.2.26",sha256:"2.16.840.1.101.3.4.2.1",sha384:"2.16.840.1.101.3.4.2.2",sha512:"2.16.840.1.101.3.4.2.3",sha224:"2.16.840.1.101.3.4.2.4",md5:"1.2.840.113549.2.5",md2:"1.3.14.7.2.2.1",ripemd160:"1.3.36.3.2.1",hmacWithSHA1:"1.2.840.113549.2.7",hmacWithSHA224:"1.2.840.113549.2.8",hmacWithSHA256:"1.2.840.113549.2.9",hmacWithSHA384:"1.2.840.113549.2.10",hmacWithSHA512:"1.2.840.113549.2.11",MD2withRSA:"1.2.840.113549.1.1.2",MD4withRSA:"1.2.840.113549.1.1.3",MD5withRSA:"1.2.840.113549.1.1.4",SHA1withRSA:"1.2.840.113549.1.1.5","pkcs1-MGF":"1.2.840.113549.1.1.8",rsaPSS:"1.2.840.113549.1.1.10",SHA224withRSA:"1.2.840.113549.1.1.14",SHA256withRSA:"1.2.840.113549.1.1.11",SHA384withRSA:"1.2.840.113549.1.1.12",SHA512withRSA:"1.2.840.113549.1.1.13",SHA1withECDSA:"1.2.840.10045.4.1",SHA224withECDSA:"1.2.840.10045.4.3.1",SHA256withECDSA:"1.2.840.10045.4.3.2",SHA384withECDSA:"1.2.840.10045.4.3.3",SHA512withECDSA:"1.2.840.10045.4.3.4",dsa:"1.2.840.10040.4.1",SHA1withDSA:"1.2.840.10040.4.3",SHA224withDSA:"2.16.840.1.101.3.4.3.1",SHA256withDSA:"2.16.840.1.101.3.4.3.2",rsaEncryption:"1.2.840.113549.1.1.1",commonName:"2.5.4.3",countryName:"2.5.4.6",localityName:"2.5.4.7",stateOrProvinceName:"2.5.4.8",streetAddress:"2.5.4.9",organizationName:"2.5.4.10",organizationalUnitName:"2.5.4.11",domainComponent:"0.9.2342.19200300.100.1.25",userId:"0.9.2342.19200300.100.1.1",surname:"2.5.4.4",givenName:"2.5.4.42",title:"2.5.4.12",distinguishedName:"2.5.4.49",emailAddress:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3",subjectDirectoryAttributes:"2.5.29.9",subjectKeyIdentifier:"2.5.29.14",keyUsage:"2.5.29.15",subjectAltName:"2.5.29.17",issuerAltName:"2.5.29.18",basicConstraints:"2.5.29.19",cRLNumber:"2.5.29.20",cRLReason:"2.5.29.21",nameConstraints:"2.5.29.30",cRLDistributionPoints:"2.5.29.31",certificatePolicies:"2.5.29.32",anyPolicy:"2.5.29.32.0",policyMappings:"2.5.29.33",authorityKeyIdentifier:"2.5.29.35",policyConstraints:"2.5.29.36",extKeyUsage:"2.5.29.37",inhibitAnyPolicy:"2.5.29.54",authorityInfoAccess:"1.3.6.1.5.5.7.1.1",ocsp:"1.3.6.1.5.5.7.48.1",ocspBasic:"1.3.6.1.5.5.7.48.1.1",ocspNonce:"1.3.6.1.5.5.7.48.1.2",ocspNoCheck:"1.3.6.1.5.5.7.48.1.5",caIssuers:"1.3.6.1.5.5.7.48.2",anyExtendedKeyUsage:"2.5.29.37.0",serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",emailProtection:"1.3.6.1.5.5.7.3.4",timeStamping:"1.3.6.1.5.5.7.3.8",ocspSigning:"1.3.6.1.5.5.7.3.9",smtpUTF8Mailbox:"1.3.6.1.5.5.7.8.9",dateOfBirth:"1.3.6.1.5.5.7.9.1",placeOfBirth:"1.3.6.1.5.5.7.9.2",gender:"1.3.6.1.5.5.7.9.3",countryOfCitizenship:"1.3.6.1.5.5.7.9.4",countryOfResidence:"1.3.6.1.5.5.7.9.5",ecPublicKey:"1.2.840.10045.2.1","P-256":"1.2.840.10045.3.1.7",secp256r1:"1.2.840.10045.3.1.7",secp256k1:"1.3.132.0.10",secp384r1:"1.3.132.0.34",secp521r1:"1.3.132.0.35",pkcs5PBES2:"1.2.840.113549.1.5.13",pkcs5PBKDF2:"1.2.840.113549.1.5.12","des-EDE3-CBC":"1.2.840.113549.3.7",data:"1.2.840.113549.1.7.1","signed-data":"1.2.840.113549.1.7.2","enveloped-data":"1.2.840.113549.1.7.3","digested-data":"1.2.840.113549.1.7.5","encrypted-data":"1.2.840.113549.1.7.6","authenticated-data":"1.2.840.113549.1.9.16.1.2",tstinfo:"1.2.840.113549.1.9.16.1.4",signingCertificate:"1.2.840.113549.1.9.16.2.12",timeStampToken:"1.2.840.113549.1.9.16.2.14",signaturePolicyIdentifier:"1.2.840.113549.1.9.16.2.15",etsArchiveTimeStamp:"1.2.840.113549.1.9.16.2.27",signingCertificateV2:"1.2.840.113549.1.9.16.2.47",etsArchiveTimeStampV2:"1.2.840.113549.1.9.16.2.48",extensionRequest:"1.2.840.113549.1.9.14",contentType:"1.2.840.113549.1.9.3",messageDigest:"1.2.840.113549.1.9.4",signingTime:"1.2.840.113549.1.9.5",counterSignature:"1.2.840.113549.1.9.6",archiveTimeStampV3:"0.4.0.1733.2.4",pdfRevocationInfoArchival:"1.2.840.113583.1.1.8",adobeTimeStamp:"1.2.840.113583.1.1.9.1",smimeMailboxLegacy:"2.23.140.1.5.1.1",smimeMailboxMulti:"2.23.140.1.5.1.2",smimeMailboxStrict:"2.23.140.1.5.1.3",smimeOrganizationLegacy:"2.23.140.1.5.2.1",smimeOrganizationMulti:"2.23.140.1.5.2.2",smimeOrganizationStrict:"2.23.140.1.5.2.3",smimeSponsorLegacy:"2.23.140.1.5.3.1",smimeSponsorMulti:"2.23.140.1.5.3.2",smimeSponsorStrict:"2.23.140.1.5.3.3",smimeIndividualLegacy:"2.23.140.1.5.4.1",smimeIndividualMulti:"2.23.140.1.5.4.2",smimeIndividualStrict:"2.23.140.1.5.4.3"},this.atype2oidList={CN:"2.5.4.3",L:"2.5.4.7",ST:"2.5.4.8",O:"2.5.4.10",OU:"2.5.4.11",C:"2.5.4.6",STREET:"2.5.4.9",DC:"0.9.2342.19200300.100.1.25",UID:"0.9.2342.19200300.100.1.1",SN:"2.5.4.4",T:"2.5.4.12",GN:"2.5.4.42",DN:"2.5.4.49",E:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",serialNumber:"2.5.4.5",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3"},this.objCache={},this.name2obj=function(t){if("undefined"!=typeof this.objCache[t])return this.objCache[t];if("undefined"==typeof this.name2oidList[t])throw"Name of ObjectIdentifier not defined: "+t;var n=this.name2oidList[t],r=new e({oid:n});return this.objCache[t]=r,r},this.atype2obj=function(t){if(void 0!==this.objCache[t])return this.objCache[t];var n;if(t.match(/^\d+\.\d+\.[0-9.]+$/))n=t;else if(void 0!==this.atype2oidList[t])n=this.atype2oidList[t];else{if(void 0===this.name2oidList[t])throw new Error("AttributeType name undefined: "+t);n=this.name2oidList[t]}var r=new e({oid:n});return this.objCache[t]=r,r},this.registerOIDs=function(e){if(this.checkOIDs(e))for(var t in e)this.name2oidList[t]=e[t]},this.checkOIDs=function(e){try{var t=Object.keys(e);return 0!=t.length&&(t.map((function(e,t,n){var r=this[e];if(!r.match(/^[0-2]\.[0-9.]+$/))throw new Error("value is not OID")}),e),!0)}catch(n){return!1}}},_n.asn1.x509.OID.oid2name=function(e){var t=_n.asn1.x509.OID.name2oidList;for(var n in t)if(t[n]==e)return n;return""},_n.asn1.x509.OID.oid2atype=function(e){var t=_n.asn1.x509.OID.atype2oidList;for(var n in t)if(t[n]==e)return n;return e},_n.asn1.x509.OID.name2oid=function(e){if(e.match(/^[0-9.]+$/))return e;var t=_n.asn1.x509.OID.name2oidList;return void 0===t[e]?"":t[e]},_n.asn1.x509.X509Util={},_n.asn1.x509.X509Util.newCertPEM=function(e){var t=_n.asn1.x509,n=(t.TBSCertificate,t.Certificate),r=new n(e);return r.getPEM()},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.asn1&&_n.asn1||(_n.asn1={}),"undefined"!=typeof _n.asn1.cms&&_n.asn1.cms||(_n.asn1.cms={}),_n.asn1.cms.Attribute=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSequence,a=r.DERSet,o=r.DERObjectIdentifier;this.params=null,this.typeOid=null,this.setByParam=function(e){this.params=e},this.getValueArray=function(){throw new t("not yet implemented abstract")},this.tohex=function(){var e=new o({oid:this.typeOid}),t=new a({array:this.getValueArray()}),n=new i({array:[e,t]});return n.tohex()},this.getEncodedHex=function(){return this.tohex()}},Pr(_n.asn1.cms.Attribute,_n.asn1.ASN1Object),_n.asn1.cms.ContentType=function(e){var t=_n,n=t.asn1;n.cms.ContentType.superclass.constructor.call(this),this.typeOid="1.2.840.113549.1.9.3",this.getValueArray=function(){var e=new n.DERObjectIdentifier(this.params.type);return[e]},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.ContentType,_n.asn1.cms.Attribute),_n.asn1.cms.MessageDigest=function(e){var t=_n,n=t.asn1,r=n.DEROctetString,i=n.cms;i.MessageDigest.superclass.constructor.call(this),this.typeOid="1.2.840.113549.1.9.4",this.getValueArray=function(){var e=new r(this.params);return[e]},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.MessageDigest,_n.asn1.cms.Attribute),_n.asn1.cms.SigningTime=function(e){var t=_n,n=t.asn1;n.cms.SigningTime.superclass.constructor.call(this),this.typeOid="1.2.840.113549.1.9.5",this.getValueArray=function(){var e=new n.x509.Time(this.params);return[e]},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.SigningTime,_n.asn1.cms.Attribute),_n.asn1.cms.SigningCertificate=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSequence,a=r.cms,o=a.ESSCertID;n.crypto;a.SigningCertificate.superclass.constructor.call(this),this.typeOid="1.2.840.113549.1.9.16.2.12",this.getValueArray=function(){if(null==this.params||void 0==this.params||void 0==this.params.array)throw new t("parameter 'array' not specified");for(var n=this.params.array,r=[],a=0;a<n.length;a++){var s=n[a];0!=e.hasis||"string"!=typeof s||-1==s.indexOf("-----BEGIN")&&!xn.isASN1HEX(s)||(s={cert:s}),0!=s.hasis&&0==e.hasis&&(s.hasis=!1),r.push(new o(s))}var l=new i({array:r}),c=new i({array:[l]});return[c]},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.SigningCertificate,_n.asn1.cms.Attribute),_n.asn1.cms.ESSCertID=function(e){_n.asn1.cms.ESSCertID.superclass.constructor.call(this);var t=Error,n=_n,r=n.asn1,i=r.DEROctetString,a=r.DERSequence,o=r.cms.IssuerSerial;this.params=null,this.getCertHash=function(e,r){if(void 0!=e.hash)return e.hash;if("string"==typeof e&&-1==e.indexOf("-----BEGIN")&&!xn.isASN1HEX(e))return e;var i,a,o;if("string"==typeof e)i=e;else{if(void 0==e.cert)throw new t("hash nor cert unspecified");i=e.cert}if(a=-1!=i.indexOf("-----BEGIN")?Qn(i):i,"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?a=Qn(e):xn.isASN1HEX(e)&&(a=e)),void 0!=e.alg)o=e.alg;else{if(void 0==r)throw new t("hash alg unspecified");o=r}return n.crypto.Util.hashHex(a,o)},this.tohex=function(){var e=this.params,t=this.getCertHash(e,"sha1"),n=[];n.push(new i({hex:t})),("string"==typeof e&&-1!=e.indexOf("-----BEGIN")||void 0!=e.cert&&0!=e.hasis||void 0!=e.issuer&&void 0!=e.serial)&&n.push(new o(e));var r=new a({array:n});return r.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.ESSCertID,_n.asn1.ASN1Object),_n.asn1.cms.SigningCertificateV2=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSequence,a=(r.x509,r.cms),o=a.ESSCertIDv2;n.crypto;a.SigningCertificateV2.superclass.constructor.call(this),this.typeOid="1.2.840.113549.1.9.16.2.47",this.getValueArray=function(){if(null==this.params||void 0==this.params||void 0==this.params.array)throw new t("parameter 'array' not specified");for(var n=this.params.array,r=[],a=0;a<n.length;a++){var s=n[a];void 0==e.alg&&0!=e.hasis||"string"!=typeof s||-1==s.indexOf("-----BEGIN")&&!xn.isASN1HEX(s)||(s={cert:s}),void 0==s.alg&&void 0!=e.alg&&(s.alg=e.alg),0!=s.hasis&&0==e.hasis&&(s.hasis=!1),r.push(new o(s))}var l=new i({array:r}),c=new i({array:[l]});return[c]},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.SigningCertificateV2,_n.asn1.cms.Attribute),_n.asn1.cms.ESSCertIDv2=function(e){_n.asn1.cms.ESSCertIDv2.superclass.constructor.call(this);Error;var t=_n,n=t.asn1,r=n.DEROctetString,i=n.DERSequence,a=n.cms.IssuerSerial,o=n.x509.AlgorithmIdentifier;this.params=null,this.tohex=function(){var e=this.params,t=this.getCertHash(e,"sha256"),n=[];void 0!=e.alg&&"sha256"!=e.alg&&n.push(new o({name:e.alg})),n.push(new r({hex:t})),("string"==typeof e&&-1!=e.indexOf("-----BEGIN")||void 0!=e.cert&&0!=e.hasis||void 0!=e.issuer&&void 0!=e.serial)&&n.push(new a(e));var s=new i({array:n});return s.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.ESSCertIDv2,_n.asn1.cms.ESSCertID),_n.asn1.cms.IssuerSerial=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERInteger,a=r.DERSequence,o=r.cms,s=r.x509,l=s.GeneralNames,c=Ur;o.IssuerSerial.superclass.constructor.call(this),this.setByParam=function(e){this.params=e},this.tohex=function(){var e,n,r=this.params;if("string"==typeof r&&-1!=r.indexOf("-----BEGIN")||void 0!=r.cert){var o;o=void 0!=r.cert?r.cert:r;var s=new c;s.readCertPEM(o),e=s.getIssuer(),n={hex:s.getSerialNumberHex()}}else{if(void 0==r.issuer||!r.serial)throw new t("cert or issuer and serial parameter not specified");e=r.issuer,n=r.serial}var u=new l([{dn:e}]),d=new i(n),h=new a({array:[u,d]});return h.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.IssuerSerial,_n.asn1.ASN1Object),_n.asn1.cms.SignerIdentifier=function(e){var t=_n,n=t.asn1,r=(n.DERInteger,n.DERSequence,n.cms),i=r.IssuerAndSerialNumber,a=r.SubjectKeyIdentifier,o=n.x509;o.X500Name,Error;r.SignerIdentifier.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params;if("isssn"==e.type){var t=new i(e);return t.tohex()}if("skid"==e.type){var n=new a(e);return n.tohex()}throw new Error("wrong property for isssn or skid")},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.SignerIdentifier,_n.asn1.ASN1Object),_n.asn1.cms.IssuerAndSerialNumber=function(e){var t=_n,n=t.asn1,r=n.DERInteger,i=n.DERSequence,a=n.cms,o=n.x509,s=o.X500Name,l=Ur,c=Error;a.IssuerAndSerialNumber.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e,t,n=this.params;if("string"==typeof n&&-1!=n.indexOf("-----BEGIN")||void 0!=n.cert){var a;a=void 0!=n.cert?n.cert:n;var o=new l;o.readCertPEM(a),e=o.getIssuer(),t={hex:o.getSerialNumberHex()}}else{if(void 0==n.issuer||!n.serial)throw new c("cert or issuer and serial parameter not specified");e=n.issuer,t=n.serial}var u=new s(e),d=new r(t),h=new i({array:[u,d]});return h.tohex()},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.IssuerAndSerialNumber,_n.asn1.ASN1Object),_n.asn1.cms.SubjectKeyIdentifier=function(e){var t=_n,n=t.asn1,r=(n.DERInteger,n.DERSequence,n.ASN1Util.newObject),i=n.cms,a=(i.IssuerAndSerialName,i.SubjectKeyIdentifier,n.x509),o=(a.X500Name,Ur),s=Error;i.SubjectKeyIdentifier.superclass.constructor.call(this),this.tohex=function(){var e,t=this.params;if(void 0==t.cert&&void 0==t.skid)throw new s("property cert nor skid undefined");if(void 0!=t.cert){var n=new o(t.cert),i=n.getExtSubjectKeyIdentifier();e=i.kid.hex}else void 0!=t.skid&&(e=t.skid);var a=r({tag:{tage:"a0",obj:{octstr:{hex:e}}}});return a.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.SubjectKeyIdentifier,_n.asn1.ASN1Object),_n.asn1.cms.AttributeList=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSet,a=r.cms;a.AttributeList.superclass.constructor.call(this),this.params=null,this.hTLV=null,this.setByParam=function(e){this.params=e},this.tohex=function(){var e=this.params;if(null!=this.hTLV)return this.hTLV;var n=!0;void 0!=e.sortflag&&(n=e.sortflag);for(var r=e.array,o=[],s=0;s<r.length;s++){var l=r[s],c=l.attr;if("contentType"==c)o.push(new a.ContentType(l));else if("messageDigest"==c)o.push(new a.MessageDigest(l));else if("signingTime"==c)o.push(new a.SigningTime(l));else if("signingCertificate"==c)o.push(new a.SigningCertificate(l));else if("signingCertificateV2"==c)o.push(new a.SigningCertificateV2(l));else if("signaturePolicyIdentifier"==c)o.push(new _n.asn1.cades.SignaturePolicyIdentifier(l));else{if("signatureTimeStamp"!=c&&"timeStampToken"!=c)throw new t("unknown attr: "+c);o.push(new _n.asn1.cades.SignatureTimeStamp(l))}}var u=new i({array:o,sortflag:n});return this.hTLV=u.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.AttributeList,_n.asn1.ASN1Object),_n.asn1.cms.SignerInfo=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERInteger,a=r.DEROctetString,o=r.DERSequence,s=r.DERTaggedObject,l=r.cms,c=l.SignerIdentifier,u=l.AttributeList,d=(l.ContentType,l.EncapsulatedContentInfo,l.MessageDigest,l.SignedData,r.x509),h=d.AlgorithmIdentifier,p=n.crypto,f=Mr;l.SignerInfo.superclass.constructor.call(this),this.params=null,this.sign=function(){var e=this.params,t=e.sigalg,n=new u(e.sattrs).tohex(),r=f.getKey(e.signkey),i=new p.Signature({alg:t});i.init(r),i.updateHex(n);var a=i.sign();e.sighex=a},this.tohex=function(){var e=this.params,n=[];if(n.push(new i({int:e.version})),n.push(new c(e.id)),n.push(new h({name:e.hashalg})),void 0!=e.sattrs){var r=new u(e.sattrs);try{n.push(new s({tag:"a0",explicit:!1,obj:r}))}catch(d){throw new t("si sattr error: "+d)}}if(void 0!=e.sigalgfield?n.push(new h({name:e.sigalgfield})):n.push(new h({name:e.sigalg})),void 0==e.sighex&&void 0!=e.signkey&&this.sign(),n.push(new a({hex:e.sighex})),void 0!=e.uattrs){r=new u(e.uattrs);try{n.push(new s({tag:"a1",explicit:!1,obj:r}))}catch(d){throw new t("si uattr error: "+d)}}var l=new o({array:n});return l.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.SignerInfo,_n.asn1.ASN1Object),_n.asn1.cms.EncapsulatedContentInfo=function(e){var t=_n,n=t.asn1,r=n.DERTaggedObject,i=n.DERSequence,a=n.DERObjectIdentifier,o=n.DEROctetString,s=n.cms;s.EncapsulatedContentInfo.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,t=[];if(t.push(new a(e.type)),void 0!=e.content&&(void 0!=e.content.hex||void 0!=e.content.str)&&1!=e.isDetached){var n=new o(e.content),s=new r({tag:"a0",explicit:!0,obj:n});t.push(s)}var l=new i({array:t});return l.tohex()},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.EncapsulatedContentInfo,_n.asn1.ASN1Object),_n.asn1.cms.ContentInfo=function(e){var t=_n,n=t.asn1,r=n.DERTaggedObject,i=n.DERSequence,a=n.DERObjectIdentifier,o=n.x509;o.OID.name2obj;_n.asn1.cms.ContentInfo.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,t=[];t.push(new a(e.type));var n=new r({tag:"a0",explicit:!0,obj:e.obj});t.push(n);var o=new i({array:t});return o.tohex()},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.ContentInfo,_n.asn1.ASN1Object),_n.asn1.cms.SignedData=function(e){Error;var t=_n,n=t.asn1,r=(n.ASN1Object,n.DERInteger),i=n.DERSet,a=n.DERSequence,o=(n.DERTaggedObject,n.cms),s=o.EncapsulatedContentInfo,l=o.SignerInfo,c=o.ContentInfo,u=o.CertificateSet,d=o.RevocationInfoChoices,h=n.x509,p=h.AlgorithmIdentifier;_n.asn1.cms.SignedData.superclass.constructor.call(this),this.params=null,this.checkAndFixParam=function(){var e=this.params;this._setDigestAlgs(e),this._setContentTypeByEContent(e),this._setMessageDigestByEContent(e),this._setSignerInfoVersion(e),this._setSignedDataVersion(e)},this._setDigestAlgs=function(e){for(var t={},n=e.sinfos,r=0;r<n.length;r++){var i=n[r];t[i.hashalg]=1}e.hashalgs=Object.keys(t).sort()},this._setContentTypeByEContent=function(e){for(var t=e.econtent.type,n=e.sinfos,r=0;r<n.length;r++){var i=n[r],a=this._getAttrParamByName(i,"contentType");a.type=t}},this._setMessageDigestByEContent=function(e){var t=e.econtent,n=(e.econtent.type,t.content.hex);void 0==n&&"data"==t.type&&void 0!=t.content.str&&(n=Hn(t.content.str));for(var r=e.sinfos,i=0;i<r.length;i++){var a=r[i],o=a.hashalg,s=this._getAttrParamByName(a,"messageDigest"),l=_n.crypto.Util.hashHex(n,o);s.hex=l}},this._getAttrParamByName=function(e,t){for(var n=e.sattrs.array,r=0;r<n.length;r++)if(n[r].attr==t)return n[r]},this._setSignerInfoVersion=function(e){for(var t=e.sinfos,n=0;n<t.length;n++){var r=t[n],i=1;"skid"==r.id.type&&(i=3),r.version=i}},this._setSignedDataVersion=function(e){var t=this._getSignedDataVersion(e);e.version=t},this._getSignedDataVersion=function(e){if(void 0!=e.revinfos)for(var t=e.revinfos,n=0;n<t.length;n++){var r=t[n];if(void 0!=r.ocsp)return 5}var i=e.sinfos;for(n=0;n<i.length;n++){var a=e.sinfos[n];if(3==a.version)return 3}return"data"!=e.econtent.type?3:1},this.tohex=function(){var e=this.params;void 0!=this.getEncodedHexPrepare&&this.getEncodedHexPrepare(),1!=e.fixed&&this.checkAndFixParam();var t=[];t.push(new r({int:e.version}));for(var n=[],o=0;o<e.hashalgs.length;o++){var c=e.hashalgs[o];n.push(new p({name:c}))}t.push(new i({array:n})),t.push(new s(e.econtent)),void 0!=e.certs&&t.push(new u(e.certs)),void 0!=e.revinfos&&t.push(new d(e.revinfos));var h=[];for(o=0;o<e.sinfos.length;o++){var f=e.sinfos[o];h.push(new l(f))}t.push(new i({array:h}));var m=new a({array:t});return m.tohex()},this.getEncodedHex=function(){return this.tohex()},this.getContentInfo=function(){var e=new c({type:"signed-data",obj:this});return e},this.getContentInfoEncodedHex=function(){return this.getContentInfo().tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.SignedData,_n.asn1.ASN1Object),_n.asn1.cms.CertificateSet=function(e){_n.asn1.cms.CertificateSet.superclass.constructor.call(this);var t=Error,n=_n.asn1,r=n.DERTaggedObject,i=n.DERSet,a=n.ASN1Object;this.params=null,this.tohex=function(){var e,n=this.params,o=[];if(n instanceof Array)e=n;else{if(void 0==n.array)throw new t("cert array not specified");e=n.array}for(var s=0;s<e.length;s++){var l=e[s],c=Qn(l),u=new a;u.hTLV=c,o.push(u)}var d={array:o};0==n.sortflag&&(d.sortflag=!1);var h=new i(d),p=new r({tag:"a0",explicit:!1,obj:h});return p.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.CertificateSet,_n.asn1.ASN1Object),_n.asn1.cms.RevocationInfoChoices=function(e){_n.asn1.cms.RevocationInfoChoices.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params;if(!e instanceof Array)throw new Error("params is not array");for(var t=[],n=0;n<e.length;n++)t.push(new _n.asn1.cms.RevocationInfoChoice(e[n]));var r=_n.asn1.ASN1Util.newObject({tag:{tagi:"a1",obj:{set:t}}});return r.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.RevocationInfoChoices,_n.asn1.ASN1Object),_n.asn1.cms.RevocationInfoChoice=function(e){_n.asn1.cms.RevocationInfoChoice.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params;if(void 0!=e.crl&&"string"==typeof e.crl){var t=e.crl;return-1!=e.crl.indexOf("-----BEGIN")&&(t=Qn(e.crl)),t}if(void 0!=e.ocsp){var n=_n.asn1.ASN1Util.newObject({tag:{tagi:"a1",obj:new _n.asn1.cms.OtherRevocationFormat(e)}});return n.tohex()}throw new Error("property crl or ocsp undefined")},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.RevocationInfoChoice,_n.asn1.ASN1Object),_n.asn1.cms.OtherRevocationFormat=function(e){_n.asn1.cms.OtherRevocationFormat.superclass.constructor.call(this);var t=Error,n=_n,r=n.asn1,i=r.ASN1Util.newObject,a=n.lang.String.isHex;this.params=null,this.tohex=function(){var e=this.params;if(void 0==e.ocsp)throw new t("property ocsp not specified");if(!a(e.ocsp)||!xn.isASN1HEX(e.ocsp))throw new t("ocsp value not ASN.1 hex string");var n=i({seq:[{oid:"1.3.6.1.5.5.7.16.2"},{asn1:{tlv:e.ocsp}}]});return n.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cms.OtherRevocationFormat,_n.asn1.ASN1Object),_n.asn1.cms.CMSUtil=new function(){},_n.asn1.cms.CMSUtil.newSignedData=function(e){return new _n.asn1.cms.SignedData(e)},_n.asn1.cms.CMSUtil.verifySignedData=function(e){var t=_n,n=t.asn1,r=n.cms,i=(r.SignerInfo,r.SignedData,r.SigningTime,r.SigningCertificate,r.SigningCertificateV2,n.cades),a=(i.SignaturePolicyIdentifier,t.lang.String.isHex),o=xn,s=o.getVbyList,l=o.getTLVbyList,c=o.getIdxbyList,u=o.getChildIdx,d=o.getTLV,h=o.oidname,p=t.crypto.Util.hashHex;void 0===e.cms&&a(e.cms);var f=e.cms,m=function(e,t){for(var n,r=3;r<6;r++)if(n=c(e,0,[1,0,r]),void 0!==n){var i=e.substr(n,2);"a0"===i&&(t.certsIdx=n),"a1"===i&&(t.revinfosIdx=n),"31"===i&&(t.signerinfosIdx=n)}},g=function(e,t){var n=t.signerinfosIdx;if(void 0!==n){var r=u(e,n);t.signerInfoIdxList=r;for(var i=0;i<r.length;i++){var a=r[i],o={idx:a};v(e,o),t.signerInfos.push(o)}}},v=function(e,t){var n=t.idx;t.signerid_issuer1=l(e,n,[1,0],"30"),t.signerid_serial1=s(e,n,[1,1],"02"),t.hashalg=h(s(e,n,[2,0],"06"));var r=c(e,n,[3],"a0");t.idxSignedAttrs=r,b(e,t,r);var i=u(e,n),a=i.length;if(a<6)throw"malformed SignerInfo";t.sigalg=h(s(e,n,[a-2,0],"06")),t.sigval=s(e,n,[a-1],"04")},b=function(e,t,n){var r=u(e,n);t.signedAttrIdxList=r;for(var i=0;i<r.length;i++){var a,o=r[i],l=s(e,o,[0],"06");"2a864886f70d010905"===l?(a=Un(s(e,o,[1,0])),t.saSigningTime=a):"2a864886f70d010904"===l&&(a=s(e,o,[1,0],"04"),t.saMessageDigest=a)}},y=function(e,t){if("2a864886f70d010702"!==s(e,0,[0],"06"))return t;t.cmsType="signedData",t.econtent=s(e,0,[1,0,2,1,0]),m(e,t),t.signerInfos=[],g(e,t)},w=function(e,t){for(var n=t.parse.signerInfos,r=n.length,i=!0,a=0;a<r;a++){var o=n[a];_(e,t,o,a),o.isValid||(i=!1)}t.isValid=i},E=function(e,t,n,r){var i,a=t.parse.certsIdx;if(void 0===t.certs){i=[],t.certkeys=[];for(var o=u(e,a),s=0;s<o.length;s++){var l=d(e,o[s]),c=new Ur;c.readCertHex(l),i[s]=c,t.certkeys[s]=c.getPublicKey()}t.certs=i}else i=t.certs;t.cccc=i.length,t.cccci=o.length;for(s=0;s<i.length;s++){var h=c.getIssuerHex(),p=c.getSerialNumberHex();n.signerid_issuer1===h&&n.signerid_serial1===p&&(n.certkey_idx=s)}},_=function(e,t,n,r){n.verifyDetail={};var i=n.verifyDetail,a=t.parse.econtent,o=n.hashalg,s=n.saMessageDigest;i.validMessageDigest=!1,p(a,o)===s&&(i.validMessageDigest=!0),E(e,t,n,r),i.validSignatureValue=!1;var l=n.sigalg,c="31"+d(e,n.idxSignedAttrs).substr(2);n.signedattrshex=c;var u=t.certs[n.certkey_idx].getPublicKey(),h=new _n.crypto.Signature({alg:l});h.init(u),h.updateHex(c);var f=h.verify(n.sigval);i.validSignatureValue_isValid=f,!0===f&&(i.validSignatureValue=!0),n.isValid=!1,i.validMessageDigest&&i.validSignatureValue&&(n.isValid=!0)},S={isValid:!1,parse:{}};return y(f,S.parse),w(f,S),S},_n.asn1.cms.CMSParser=function(){var e=Error,t=Ur,n=new t,r=xn,i=r.getV,a=r.getTLV,o=(r.getIdxbyList,r.getTLVbyList),s=r.getTLVbyListEx,l=r.getVbyList,c=r.getVbyListEx,u=r.getChildIdx;this.getCMSSignedData=function(e){var t=o(e,0,[1,0]),n=this.getSignedData(t);return n},this.getSignedData=function(e){var t=u(e,0),n={},r=i(e,t[0]),o=parseInt(r,16);n.version=o;var l=a(e,t[1]);n.hashalgs=this.getHashAlgArray(l);var c=a(e,t[2]);n.econtent=this.getEContent(c);var d=s(e,0,["[0]"]);null!=d&&(n.certs=this.getCertificateSet(d));s(e,0,["[1]"]);var h=s(e,0,[3]);return n.sinfos=this.getSignerInfos(h),n},this.getHashAlgArray=function(e){for(var n=u(e,0),r=new t,i=[],o=0;o<n.length;o++){var s=a(e,n[o]),l=r.getAlgorithmIdentifierName(s);i.push(l)}return i},this.getEContent=function(e){var t={},n=l(e,0,[0]),r=l(e,0,[1,0]);return t.type=_n.asn1.x509.OID.oid2name(xn.hextooidstr(n)),t.content={hex:r},t},this.getSignerInfos=function(e){for(var t=[],n=u(e,0),r=0;r<n.length;r++){var i=a(e,n[r]),o=this.getSignerInfo(i);t.push(o)}return t},this.getSignerInfo=function(e){var t={},i=u(e,0),o=r.getInt(e,i[0],-1);-1!=o&&(t.version=o);var l=a(e,i[1]),d=this.getIssuerAndSerialNumber(l);t.id=d;var h=a(e,i[2]),p=n.getAlgorithmIdentifierName(h);t.hashalg=p;var f=s(e,0,["[0]"]);if(null!=f){var m=this.getAttributeList(f);t.sattrs=m}var g=s(e,0,[3]),v=n.getAlgorithmIdentifierName(g);t.sigalg=v;var b=c(e,0,[4]);t.sighex=b;var y=s(e,0,["[1]"]);if(null!=y){var w=this.getAttributeList(y);t.uattrs=w}return t},this.getSignerIdentifier=function(e){if("30"==e.substr(0,2))return this.getIssuerAndSerialNumber(e);throw new Error("SKID of signerIdentifier not supported")},this.getIssuerAndSerialNumber=function(e){var t={type:"isssn"},r=u(e,0),o=a(e,r[0]);t.issuer=n.getX500Name(o);var s=i(e,r[1]);return t.serial={hex:s},t},this.getAttributeList=function(e){for(var t=[],n=u(e,0),r=0;r<n.length;r++){var i=a(e,n[r]),o=this.getAttribute(i);t.push(o)}return{array:t}},this.getAttribute=function(e){var t={},n=u(e,0),i=r.getOID(e,n[0]),o=_n.asn1.x509.OID.oid2name(i);t.attr=o;var s=a(e,n[1]),l=u(s,0);if(1==l.length)t.valhex=a(s,l[0]);else{for(var c=[],d=0;d<l.length;d++)c.push(a(s,l[d]));t.valhex=c}return"contentType"==o?this.setContentType(t):"messageDigest"==o?this.setMessageDigest(t):"signingTime"==o?this.setSigningTime(t):"signingCertificate"==o?this.setSigningCertificate(t):"signingCertificateV2"==o?this.setSigningCertificateV2(t):"signaturePolicyIdentifier"==o&&this.setSignaturePolicyIdentifier(t),t},this.setContentType=function(e){var t=r.getOIDName(e.valhex,0,null);null!=t&&(e.type=t,delete e.valhex)},this.setSigningTime=function(e){var t=i(e.valhex,0),n=Un(t);e.str=n,delete e.valhex},this.setMessageDigest=function(e){var t=i(e.valhex,0);e.hex=t,delete e.valhex},this.setSigningCertificate=function(e){var t=u(e.valhex,0);if(t.length>0){for(var n=a(e.valhex,t[0]),r=u(n,0),i=[],o=0;o<r.length;o++){var s=a(n,r[o]),l=this.getESSCertID(s);i.push(l)}e.array=i}if(t.length>1){var c=a(e.valhex,t[1]);e.polhex=c}delete e.valhex},this.setSignaturePolicyIdentifier=function(e){var n=u(e.valhex,0);if(n.length>0){var o=r.getOID(e.valhex,n[0]);e.oid=o}if(n.length>1){var s=new t,l=u(e.valhex,n[1]),c=a(e.valhex,l[0]),d=s.getAlgorithmIdentifierName(c);e.alg=d;var h=i(e.valhex,l[1]);e.hash=h}delete e.valhex},this.setSigningCertificateV2=function(e){var t=u(e.valhex,0);if(t.length>0){for(var n=a(e.valhex,t[0]),r=u(n,0),i=[],o=0;o<r.length;o++){var s=a(n,r[o]),l=this.getESSCertIDv2(s);i.push(l)}e.array=i}if(t.length>1){var c=a(e.valhex,t[1]);e.polhex=c}delete e.valhex},this.getESSCertID=function(e){var t={},n=u(e,0);if(n.length>0){var r=i(e,n[0]);t.hash=r}if(n.length>1){var o=a(e,n[1]),s=this.getIssuerSerial(o);void 0!=s.serial&&(t.serial=s.serial),void 0!=s.issuer&&(t.issuer=s.issuer)}return t},this.getESSCertIDv2=function(t){var r={},o=u(t,0);if(o.length<1||3<o.length)throw new e("wrong number of elements");var s=0;if("30"==t.substr(o[0],2)){var l=a(t,o[0]);r.alg=n.getAlgorithmIdentifierName(l),s++}else r.alg="sha256";var c=i(t,o[s]);if(r.hash=c,o.length>s+1){var d=a(t,o[s+1]),h=this.getIssuerSerial(d);r.issuer=h.issuer,r.serial=h.serial}return r},this.getIssuerSerial=function(e){var t={},r=u(e,0),o=a(e,r[0]),s=n.getGeneralNames(o),l=s[0].dn;t.issuer=l;var c=i(e,r[1]);return t.serial={hex:c},t},this.getCertificateSet=function(e){for(var t=u(e,0),n=[],r=0;r<t.length;r++){var i=a(e,t[r]);if("30"==i.substr(0,2)){var o=Yn(i,"CERTIFICATE");n.push(o)}}return{array:n,sortflag:!1}}},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.asn1&&_n.asn1||(_n.asn1={}),"undefined"!=typeof _n.asn1.tsp&&_n.asn1.tsp||(_n.asn1.tsp={}),_n.asn1.tsp.TimeStampToken=function(e){var t=_n,n=t.asn1,r=n.tsp;r.TimeStampToken.superclass.constructor.call(this),this.params=null,this.getEncodedHexPrepare=function(){var e=new r.TSTInfo(this.params.econtent.content);this.params.econtent.content.hex=e.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.tsp.TimeStampToken,_n.asn1.cms.SignedData),_n.asn1.tsp.TSTInfo=function(e){Error;var t=_n,n=t.asn1,r=n.DERSequence,i=n.DERInteger,a=n.DERBoolean,o=n.DERGeneralizedTime,s=n.DERObjectIdentifier,l=n.DERTaggedObject,c=n.tsp,u=c.MessageImprint,d=c.Accuracy,h=(n.x509.X500Name,n.x509.GeneralName);if(c.TSTInfo.superclass.constructor.call(this),this.dVersion=new i({int:1}),this.dPolicy=null,this.dMessageImprint=null,this.dSerial=null,this.dGenTime=null,this.dAccuracy=null,this.dOrdering=null,this.dNonce=null,this.dTsa=null,this.tohex=function(){var e=[this.dVersion];if(null==this.dPolicy)throw new Error("policy shall be specified.");if(e.push(this.dPolicy),null==this.dMessageImprint)throw new Error("messageImprint shall be specified.");if(e.push(this.dMessageImprint),null==this.dSerial)throw new Error("serialNumber shall be specified.");if(e.push(this.dSerial),null==this.dGenTime)throw new Error("genTime shall be specified.");e.push(this.dGenTime),null!=this.dAccuracy&&e.push(this.dAccuracy),null!=this.dOrdering&&e.push(this.dOrdering),null!=this.dNonce&&e.push(this.dNonce),null!=this.dTsa&&e.push(this.dTsa);var t=new r({array:e});return this.hTLV=t.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e){if("string"==typeof e.policy){if(!e.policy.match(/^[0-9.]+$/))throw"policy shall be oid like 0.1.4.134";this.dPolicy=new s({oid:e.policy})}void 0!==e.messageImprint&&(this.dMessageImprint=new u(e.messageImprint)),void 0!==e.serial&&(this.dSerial=new i(e.serial)),void 0!==e.genTime&&(this.dGenTime=new o(e.genTime)),void 0!==e.accuracy&&(this.dAccuracy=new d(e.accuracy)),void 0!==e.ordering&&1==e.ordering&&(this.dOrdering=new a),void 0!==e.nonce&&(this.dNonce=new i(e.nonce)),void 0!==e.tsa&&(this.dTsa=new l({tag:"a0",explicit:!0,obj:new h({dn:e.tsa})}))}},Pr(_n.asn1.tsp.TSTInfo,_n.asn1.ASN1Object),_n.asn1.tsp.Accuracy=function(e){var t=_n,n=t.asn1,r=n.ASN1Util.newObject;n.tsp.Accuracy.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,t=[];return void 0!=e.seconds&&"number"==typeof e.seconds&&t.push({int:e.seconds}),void 0!=e.millis&&"number"==typeof e.millis&&t.push({tag:{tagi:"80",obj:{int:e.millis}}}),void 0!=e.micros&&"number"==typeof e.micros&&t.push({tag:{tagi:"81",obj:{int:e.micros}}}),r({seq:t}).tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.tsp.Accuracy,_n.asn1.ASN1Object),_n.asn1.tsp.MessageImprint=function(e){var t=_n,n=t.asn1,r=n.DERSequence,i=n.DEROctetString,a=n.x509,o=a.AlgorithmIdentifier;n.tsp.MessageImprint.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,t=new o({name:e.alg}),n=new i({hex:e.hash}),a=new r({array:[t,n]});return a.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.tsp.MessageImprint,_n.asn1.ASN1Object),_n.asn1.tsp.TimeStampReq=function(e){var t=_n,n=t.asn1,r=n.DERSequence,i=n.DERInteger,a=n.DERBoolean,o=(n.ASN1Object,n.DERObjectIdentifier),s=n.tsp,l=s.MessageImprint;s.TimeStampReq.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,t=[];t.push(new i({int:1})),e.messageImprint instanceof _n.asn1.ASN1Object?t.push(e.messageImprint):t.push(new l(e.messageImprint)),void 0!=e.policy&&t.push(new o(e.policy)),void 0!=e.nonce&&t.push(new i(e.nonce)),1==e.certreq&&t.push(new a);var n=new r({array:t});return n.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.tsp.TimeStampReq,_n.asn1.ASN1Object),_n.asn1.tsp.TimeStampResp=function(e){var t=_n,n=t.asn1,r=n.DERSequence,i=(n.ASN1Object,n.tsp),a=i.PKIStatusInfo;i.TimeStampResp.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,t=[];if(void 0!=e.econtent||void 0!=e.tst)if(void 0!=e.statusinfo?t.push(new a(e.statusinfo)):t.push(new a("granted")),void 0!=e.econtent)t.push(new i.TimeStampToken(e).getContentInfo());else{if(!(e.tst instanceof n.ASN1Object))throw new Error("improper member tst value");t.push(e.tst)}else{if(void 0==e.statusinfo)throw new Error("parameter for token nor statusinfo not specified");t.push(new a(e.statusinfo))}var o=new r({array:t});return o.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.tsp.TimeStampResp,_n.asn1.ASN1Object),_n.asn1.tsp.PKIStatusInfo=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSequence,a=r.tsp,o=a.PKIStatus,s=a.PKIFreeText,l=a.PKIFailureInfo;a.PKIStatusInfo.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,n=[];if("string"==typeof e)n.push(new o(e));else{if(void 0==e.status)throw new t("property 'status' unspecified");n.push(new o(e.status)),void 0!=e.statusstr&&n.push(new s(e.statusstr)),void 0!=e.failinfo&&n.push(new l(e.failinfo))}var r=new i({array:n});return r.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.tsp.PKIStatusInfo,_n.asn1.ASN1Object),_n.asn1.tsp.PKIStatus=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERInteger,a=r.tsp;a.PKIStatus.superclass.constructor.call(this);var o={granted:0,grantedWithMods:1,rejection:2,waiting:3,revocationWarning:4,revocationNotification:5};this.params=null,this.tohex=function(){var e,n=this.params;if("string"==typeof n)try{e=o[n]}catch(r){throw new t("undefined name: "+n)}else{if("number"!=typeof n)throw new t("unsupported params");e=n}return new i({int:e}).tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.tsp.PKIStatus,_n.asn1.ASN1Object),_n.asn1.tsp.PKIFreeText=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSequence,a=r.DERUTF8String,o=r.tsp;o.PKIFreeText.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params;if(!e instanceof Array)throw new t("wrong params: not array");for(var n=[],r=0;r<e.length;r++)n.push(new a({str:e[r]}));var o=new i({array:n});return o.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.tsp.PKIFreeText,_n.asn1.ASN1Object),_n.asn1.tsp.PKIFailureInfo=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERBitString,a=r.tsp,o=a.PKIFailureInfo,s={badAlg:0,badRequest:2,badDataFormat:5,timeNotAvailable:14,unacceptedPolicy:15,unacceptedExtension:16,addInfoNotAvailable:17,systemFailure:25};o.superclass.constructor.call(this),this.params=null,this.getBinValue=function(){var e=this.params,n=0;if("number"==typeof e&&0<=e&&e<=25){n|=1<<e;for(var r=n.toString(2),i="",a=r.length-1;a>=0;a--)i+=r[a];return i}if("string"==typeof e&&void 0!=s[e])return Lr([e],s);if("object"==typeof e&&void 0!=e.length)return Lr(e,s);throw new t("wrong params")},this.tohex=function(){this.params;var e=this.getBinValue();return new i({bin:e}).tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.tsp.PKIFailureInfo,_n.asn1.ASN1Object),_n.asn1.tsp.AbstractTSAAdapter=function(e){this.getTSTHex=function(e,t){throw"not implemented yet"}},_n.asn1.tsp.SimpleTSAAdapter=function(e){var t=_n,n=t.asn1,r=n.tsp,i=t.crypto.Util.hashHex;r.SimpleTSAAdapter.superclass.constructor.call(this),this.params=null,this.serial=0,this.getTSTHex=function(e,t){var n=i(e,t);this.params.econtent.content.messageImprint={alg:t,hash:n},this.params.econtent.content.serial={int:this.serial++};var a=Math.floor(1e9*Math.random());this.params.econtent.content.nonce={int:a};var o=new r.TimeStampToken(this.params);return o.getContentInfoEncodedHex()},void 0!==e&&(this.params=e)},Pr(_n.asn1.tsp.SimpleTSAAdapter,_n.asn1.tsp.AbstractTSAAdapter),_n.asn1.tsp.FixedTSAAdapter=function(e){var t=_n,n=t.asn1,r=n.tsp,i=t.crypto.Util.hashHex;r.FixedTSAAdapter.superclass.constructor.call(this),this.params=null,this.getTSTHex=function(e,t){var n=i(e,t);this.params.econtent.content.messageImprint={alg:t,hash:n};var a=new r.TimeStampToken(this.params);return a.getContentInfoEncodedHex()},void 0!==e&&(this.params=e)},Pr(_n.asn1.tsp.FixedTSAAdapter,_n.asn1.tsp.AbstractTSAAdapter),_n.asn1.tsp.TSPUtil=new function(){},_n.asn1.tsp.TSPUtil.newTimeStampToken=function(e){return new _n.asn1.tsp.TimeStampToken(e)},_n.asn1.tsp.TSPUtil.parseTimeStampReq=function(e){var t=new _n.asn1.tsp.TSPParser;return t.getTimeStampReq(e)},_n.asn1.tsp.TSPUtil.parseMessageImprint=function(e){var t=new _n.asn1.tsp.TSPParser;return t.getMessageImprint(e)},_n.asn1.tsp.TSPParser=function(){Error;var e=Ur,t=new e,n=xn,r=n.getV,i=n.getTLV,a=n.getIdxbyList,o=(n.getTLVbyListEx,n.getChildIdx),s=["granted","grantedWithMods","rejection","waiting","revocationWarning","revocationNotification"],l={0:"badAlg",2:"badRequest",5:"badDataFormat",14:"timeNotAvailable",15:"unacceptedPolicy",16:"unacceptedExtension",17:"addInfoNotAvailable",25:"systemFailure"};this.getResponse=function(e){var t=o(e,0);if(1==t.length)return this.getPKIStatusInfo(i(e,t[0]));if(t.length>1){var n=this.getPKIStatusInfo(i(e,t[0])),r=i(e,t[1]),a=this.getToken(r);return a.statusinfo=n,a}},this.getToken=function(e){var t=new _n.asn1.cms.CMSParser,n=t.getCMSSignedData(e);return this.setTSTInfo(n),n},this.setTSTInfo=function(e){var t=e.econtent;if("tstinfo"==t.type){var n=t.content.hex,r=this.getTSTInfo(n);t.content=r}},this.getTSTInfo=function(e){var n={},a=o(e,0),s=r(e,a[1]);n.policy=xr(s);var l=i(e,a[2]);n.messageImprint=this.getMessageImprint(l);var c=r(e,a[3]);n.serial={hex:c};var u=r(e,a[4]);n.genTime={str:Un(u)};var d=0;if(a.length>5&&"30"==e.substr(a[5],2)){var h=i(e,a[5]);n.accuracy=this.getAccuracy(h),d++}if(a.length>5+d&&"01"==e.substr(a[5+d],2)){var p=r(e,a[5+d]);"ff"==p&&(n.ordering=!0),d++}if(a.length>5+d&&"02"==e.substr(a[5+d],2)){var f=r(e,a[5+d]);n.nonce={hex:f},d++}if(a.length>5+d&&"a0"==e.substr(a[5+d],2)){var m=i(e,a[5+d]);m="30"+m.substr(2),pGeneralNames=t.getGeneralNames(m);var g=pGeneralNames[0].dn;n.tsa=g,d++}if(a.length>5+d&&"a1"==e.substr(a[5+d],2)){var v=i(e,a[5+d]);v="30"+v.substr(2);var b=t.getExtParamArray(v);n.ext=b,d++}return n},this.getAccuracy=function(e){for(var t={},n=o(e,0),i=0;i<n.length;i++){var a=e.substr(n[i],2),s=r(e,n[i]),l=parseInt(s,16);"02"==a?t.seconds=l:"80"==a?t.millis=l:"81"==a&&(t.micros=l)}return t},this.getMessageImprint=function(e){if("30"!=e.substr(0,2))throw new Error("head of messageImprint hex shall be x30");var t={},i=(o(e,0),a(e,0,[0,0])),s=r(e,i),l=n.hextooidstr(s),c=_n.asn1.x509.OID.oid2name(l);if(""==c)throw new Error("hashAlg name undefined: "+l);var u=c,d=a(e,0,[1]);return t.alg=u,t.hash=r(e,d),t},this.getPKIStatusInfo=function(e){var t={},n=o(e,0),a=0;try{var l=r(e,n[0]),c=parseInt(l,16);t.status=s[c]}catch(h){}if(n.length>1&&"30"==e.substr(n[1],2)){var u=i(e,n[1]);t.statusstr=this.getPKIFreeText(u),a++}if(n.length>a&&"03"==e.substr(n[1+a],2)){var d=i(e,n[1+a]);t.failinfo=this.getPKIFailureInfo(d)}return t},this.getPKIFreeText=function(e){for(var t=[],r=o(e,0),i=0;i<r.length;i++)t.push(n.getString(e,r[i]));return t},this.getPKIFailureInfo=function(e){var t=n.getInt(e,0);return void 0!=l[t]?l[t]:t},this.getTimeStampReq=function(e){var t={certreq:!1},a=o(e,0);if(a.length<2)throw new Error("TimeStampReq must have at least 2 items");var s=i(e,a[1]);t.messageImprint=_n.asn1.tsp.TSPUtil.parseMessageImprint(s);for(var l=2;l<a.length;l++){var c=a[l],u=e.substr(c,2);if("06"==u){var d=r(e,c);t.policy=n.hextooidstr(d)}"02"==u&&(t.nonce=r(e,c)),"01"==u&&(t.certreq=!0)}return t}},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.asn1&&_n.asn1||(_n.asn1={}),"undefined"!=typeof _n.asn1.cades&&_n.asn1.cades||(_n.asn1.cades={}),_n.asn1.cades.SignaturePolicyIdentifier=function(e){var t=_n,n=t.asn1,r=n.cades,i=r.SignaturePolicyId;r.SignaturePolicyIdentifier.superclass.constructor.call(this),this.typeOid="1.2.840.113549.1.9.16.2.15",this.params=null,this.getValueArray=function(){return[new i(this.params)]},this.setByParam=function(e){this.params=e},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cades.SignaturePolicyIdentifier,_n.asn1.cms.Attribute),_n.asn1.cades.SignaturePolicyId=function(e){var t=_n,n=t.asn1,r=n.DERSequence,i=n.DERObjectIdentifier,a=n.x509,o=(a.AlgorithmIdentifier,n.cades),s=o.SignaturePolicyId,l=o.OtherHashAlgAndValue;s.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,t=[];t.push(new i(e.oid)),t.push(new l(e));var n=new r({array:t});return n.tohex()},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cades.SignaturePolicyId,_n.asn1.ASN1Object),_n.asn1.cades.OtherHashAlgAndValue=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSequence,a=r.DEROctetString,o=r.x509,s=o.AlgorithmIdentifier,l=r.cades,c=l.OtherHashAlgAndValue;c.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params;if(void 0==e.alg)throw new t("property 'alg' not specified");if(void 0==e.hash&&void 0==e.cert)throw new t("property 'hash' nor 'cert' not specified");var n=null;if(void 0!=e.hash)n=e.hash;else if(void 0!=e.cert){if("string"!=typeof e.cert)throw new t("cert not string");var r=e.cert;-1!=e.cert.indexOf("-----BEGIN")&&(r=Qn(e.cert)),n=_n.crypto.Util.hashHex(r,e.alg)}var o=[];o.push(new s({name:e.alg})),o.push(new a({hex:n}));var l=new i({array:o});return l.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cades.OtherHashAlgAndValue,_n.asn1.ASN1Object),_n.asn1.cades.OtherHashValue=function(e){_n.asn1.cades.OtherHashValue.superclass.constructor.call(this);var t=Error,n=_n,r=(n.lang.String.isHex,n.asn1),i=r.DEROctetString;n.crypto.Util.hashHex;this.params=null,this.tohex=function(){var e=this.params;if(void 0==e.hash&&void 0==e.cert)throw new t("hash or cert not specified");var n=null;if(void 0!=e.hash)n=e.hash;else if(void 0!=e.cert){if("string"!=typeof e.cert)throw new t("cert not string");var r=e.cert;-1!=e.cert.indexOf("-----BEGIN")&&(r=Qn(e.cert)),n=_n.crypto.Util.hashHex(r,"sha1")}return new i({hex:n}).tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cades.OtherHashValue,_n.asn1.ASN1Object),_n.asn1.cades.SignatureTimeStamp=function(e){var t=Error,n=_n,r=n.lang.String.isHex,i=n.asn1,a=i.ASN1Object,o=(i.x509,i.cades);o.SignatureTimeStamp.superclass.constructor.call(this),this.typeOid="1.2.840.113549.1.9.16.2.14",this.params=null,this.getValueArray=function(){var e=this.params;if(void 0!=e.tst){if(r(e.tst)){var n=new a;return n.hTLV=e.tst,[n]}if(e.tst instanceof a)return[e.tst];throw new t("params.tst has wrong value")}if(void 0!=e.res){var i=e.res;if(i instanceof a&&(i=i.tohex()),"string"!=typeof i||!r(i))throw new t("params.res has wrong value");xn.getTLVbyList(i,0,[1]),n=new a;return n.hTLV=e.tst,[n]}},null!=e&&this.setByParam(e)},Pr(_n.asn1.cades.SignatureTimeStamp,_n.asn1.cms.Attribute),_n.asn1.cades.CompleteCertificateRefs=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSequence,a=r.cades,o=a.OtherCertID,s=n.lang.String.isHex;a.CompleteCertificateRefs.superclass.constructor.call(this),this.typeOid="1.2.840.113549.1.9.16.2.21",this.params=null,this.getValueArray=function(){for(var e=this.params,n=[],r=0;r<e.array.length;r++){var a=e.array[r];if("string"==typeof a)if(-1!=a.indexOf("-----BEGIN"))a={cert:a};else{if(!s(a))throw new t("unsupported value: "+a);a={hash:a}}void 0!=e.alg&&void 0==a.alg&&(a.alg=e.alg),void 0!=e.hasis&&void 0==a.hasis&&(a.hasis=e.hasis);var l=new o(a);n.push(l)}var c=new i({array:n});return[c]},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cades.CompleteCertificateRefs,_n.asn1.cms.Attribute),_n.asn1.cades.OtherCertID=function(e){var t=_n,n=t.asn1,r=n.DERSequence,i=n.cms,a=i.IssuerSerial,o=n.cades,s=o.OtherHashValue,l=o.OtherHashAlgAndValue;o.OtherCertID.superclass.constructor.call(this),this.params=e,this.tohex=function(){var e=this.params;"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?e={cert:e}:_isHex(e)&&(e={hash:e}));var t=[],n=null;if(n=void 0!=e.alg?new l(e):new s(e),t.push(n),void 0!=e.cert&&1==e.hasis||void 0!=e.issuer&&void 0!=e.serial){var i=new a(e);t.push(i)}var o=new r({array:t});return o.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cades.OtherCertID,_n.asn1.ASN1Object),_n.asn1.cades.OtherHash=function(e){Error;var t=_n,n=t.asn1,r=(n.cms,n.cades),i=r.OtherHashAlgAndValue,a=r.OtherHashValue,o=(t.crypto.Util.hashHex,t.lang.String.isHex);r.OtherHash.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params;"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?e={cert:e}:o(e)&&(e={hash:e}));var t=null;return t=void 0!=e.alg?new i(e):new a(e),t.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.cades.OtherHash,_n.asn1.ASN1Object),_n.asn1.cades.CAdESUtil=new function(){},_n.asn1.cades.CAdESUtil.parseSignedDataForAddingUnsigned=function(e){var t=new _n.asn1.cms.CMSParser,n=t.getCMSSignedData(e);return n},_n.asn1.cades.CAdESUtil.parseSignerInfoForAddingUnsigned=function(e,t,n){var r=xn,i=r.getChildIdx,a=r.getTLV,o=r.getV,s=_n,l=s.asn1,c=l.ASN1Object,u=l.cms,d=u.AttributeList,h=u.SignerInfo,p={},f=i(e,t);if(6!=f.length)throw"not supported items for SignerInfo (!=6)";var m=f.shift();p.version=a(e,m);var g=f.shift();p.si=a(e,g);var v=f.shift();p.digalg=a(e,v);var b=f.shift();p.sattrs=a(e,b);var y=f.shift();p.sigalg=a(e,y);var w=f.shift();p.sig=a(e,w),p.sigval=o(e,w);var E=null;return p.obj=new h,E=new c,E.hTLV=p.version,p.obj.dCMSVersion=E,E=new c,E.hTLV=p.si,p.obj.dSignerIdentifier=E,E=new c,E.hTLV=p.digalg,p.obj.dDigestAlgorithm=E,E=new c,E.hTLV=p.sattrs,p.obj.dSignedAttrs=E,E=new c,E.hTLV=p.sigalg,p.obj.dSigAlg=E,E=new c,E.hTLV=p.sig,p.obj.dSig=E,p.obj.dUnsignedAttrs=new d,p},"undefined"!=typeof _n.asn1.csr&&_n.asn1.csr||(_n.asn1.csr={}),_n.asn1.csr.CertificationRequest=function(e){var t=_n,n=t.asn1,r=n.DERBitString,i=n.DERSequence,a=n.csr,o=(n.x509,a.CertificationRequestInfo);a.CertificationRequest.superclass.constructor.call(this),this.setByParam=function(e){this.params=e},this.sign=function(){var e=new o(this.params).tohex(),t=new _n.crypto.Signature({alg:this.params.sigalg});t.init(this.params.sbjprvkey),t.updateHex(e);var n=t.sign();this.params.sighex=n},this.getPEM=function(){return Yn(this.tohex(),"CERTIFICATE REQUEST")},this.tohex=function(){var e=this.params,t=new _n.asn1.csr.CertificationRequestInfo(this.params),n=new _n.asn1.x509.AlgorithmIdentifier({name:e.sigalg});if(void 0==e.sighex&&void 0!=e.sbjprvkey&&this.sign(),void 0==e.sighex)throw new Error("sighex or sbjprvkey parameter not defined");var a=new r({hex:"00"+e.sighex}),o=new i({array:[t,n,a]});return o.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.csr.CertificationRequest,_n.asn1.ASN1Object),_n.asn1.csr.CertificationRequestInfo=function(e){var t=_n,n=t.asn1,r=(n.DERBitString,n.DERSequence),i=n.DERInteger,a=n.DERUTF8String,o=n.DERTaggedObject,s=n.ASN1Util.newObject,l=n.csr,c=n.x509,u=c.X500Name,d=c.Extensions,h=c.SubjectPublicKeyInfo;l.AttributeList;function p(e){for(var t=Error,n=_n.asn1.x509.Extensions,r=[],i=0;i<e.length;i++){var a=e[i],o=a.attr;if("extensionRequest"==o){var s=new n(a.ext),l={seq:[{oid:"1.2.840.113549.1.9.14"},{set:[s]}]};r.push(l)}else if("unstructuredName"==o){l={seq:[{oid:"1.2.840.113549.1.9.2"},{set:a.names}]};r.push(l)}else{if("challengePassword"!=o)throw new t("unknown CSR attribute");l={seq:[{oid:"1.2.840.113549.1.9.7"},{set:[{utf8str:a.password}]}]};r.push(l)}}return{set:r}}l.CertificationRequestInfo.superclass.constructor.call(this),this.params=null,this.setByParam=function(e){void 0!=e&&(this.params=e)},this.tohex=function(){var e=this.params,t=[];if(t.push(new i({int:0})),t.push(new u(e.subject)),t.push(new h(Mr.getKey(e.sbjpubkey))),void 0!=e.attrs){var n=p(e.attrs),l=s({tag:{tage:"a0",obj:n}});t.push(l)}else if(void 0!=e.extreq){var c=new d(e.extreq);l=s({tag:{tage:"a0",obj:{seq:[{oid:"1.2.840.113549.1.9.14"},{set:[c]}]}}});t.push(l)}else t.push(new o({tag:"a0",explicit:!1,obj:new a({str:""})}));var f=new r({array:t});return f.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!=e&&this.setByParam(e)},Pr(_n.asn1.csr.CertificationRequestInfo,_n.asn1.ASN1Object),_n.asn1.csr.AttributeList=function(e){},Pr(_n.asn1.csr.AttributeList,_n.asn1.ASN1Object),_n.asn1.csr.CSRUtil=new function(){},_n.asn1.csr.CSRUtil.newCSRPEM=function(e){var t=_n.asn1.csr,n=new t.CertificationRequest(e),r=n.getPEM();return r},_n.asn1.csr.CSRUtil.getParam=function(e,t){var n=xn,r=n.getV,i=n.getIdxbyList,a=n.getTLVbyList,o=n.getTLVbyListEx,s=n.getVbyListEx,l=function(e){var t=i(e,0,[0,3,0,0],"06");return"2a864886f70d01090e"!=r(e,t)?null:a(e,0,[0,3,0,1,0],"30")},c={};if(-1==e.indexOf("-----BEGIN CERTIFICATE REQUEST"))throw new Error("argument is not PEM file");var u=Qn(e,"CERTIFICATE REQUEST");t&&(c.tbs=a(u,0,[0]));try{var d=o(u,0,[0,1]);if("3000"==d)c.subject={};else{var h=new Ur;c.subject=h.getX500Name(d)}}catch(b){}var p=o(u,0,[0,2]),f=Mr.getKey(p,null,"pkcs8pub");c.sbjpubkey=Mr.getPEM(f,"PKCS8PUB");var m=l(u);h=new Ur;null!=m&&(c.extreq=h.getExtParamArray(m));try{var g=o(u,0,[1],"30");h=new Ur;c.sigalg=h.getAlgorithmIdentifierName(g)}catch(b){}try{var v=s(u,0,[2]);c.sighex=v}catch(b){}return c},_n.asn1.csr.CSRUtil.verifySignature=function(e){try{var t=null;if("string"==typeof e&&-1!=e.indexOf("-----BEGIN CERTIFICATE REQUEST")?t=_n.asn1.csr.CSRUtil.getParam(e,!0):"object"==typeof e&&void 0!=e.sbjpubkey&&void 0!=e.sigalg&&void 0!=e.sighex&&void 0!=e.tbs&&(t=e),null==t)return!1;var n=new _n.crypto.Signature({alg:t.sigalg});return n.init(t.sbjpubkey),n.updateHex(t.tbs),n.verify(t.sighex)}catch(r){return alert(r),!1}},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.asn1&&_n.asn1||(_n.asn1={}),"undefined"!=typeof _n.asn1.ocsp&&_n.asn1.ocsp||(_n.asn1.ocsp={}),_n.asn1.ocsp.DEFAULT_HASH="sha1",_n.asn1.ocsp.OCSPResponse=function(e){_n.asn1.ocsp.OCSPResponse.superclass.constructor.call(this);_n.asn1.DEREnumerated;var t=_n.asn1.ASN1Util.newObject,n=_n.asn1.ocsp.ResponseBytes,r=["successful","malformedRequest","internalError","tryLater","_not_used_","sigRequired","unauthorized"];this.params=null,this._getStatusCode=function(){var e=this.params.resstatus;return"number"==typeof e?e:"string"!=typeof e?-1:r.indexOf(e)},this.setByParam=function(e){this.params=e},this.tohex=function(){var e=this.params,r=this._getStatusCode();if(-1==r)throw new Error("responseStatus not supported: "+e.resstatus);if(0!=r)return t({seq:[{enum:{int:r}}]}).tohex();var i=new n(e);return t({seq:[{enum:{int:0}},{tag:{tag:"a0",explicit:!0,obj:i}}]}).tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.OCSPResponse,_n.asn1.ASN1Object),_n.asn1.ocsp.ResponseBytes=function(e){_n.asn1.ocsp.ResponseBytes.superclass.constructor.call(this);var t=_n.asn1,n=t.DERSequence,r=t.DERObjectIdentifier,i=t.DEROctetString,a=t.ocsp.BasicOCSPResponse;this.params=null,this.setByParam=function(e){this.params=e},this.tohex=function(){var e=this.params;if("ocspBasic"!=e.restype)throw new Error("not supported responseType: "+e.restype);var t=new a(e),o=[];o.push(new r({name:"ocspBasic"})),o.push(new i({hex:t.tohex()}));var s=new n({array:o});return s.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.ResponseBytes,_n.asn1.ASN1Object),_n.asn1.ocsp.BasicOCSPResponse=function(e){_n.asn1.ocsp.BasicOCSPResponse.superclass.constructor.call(this);var t=Error,n=_n.asn1,r=n.ASN1Object,i=n.DERSequence,a=(n.DERGeneralizedTime,n.DERTaggedObject),o=n.DERBitString,s=(n.x509.Extensions,n.x509.AlgorithmIdentifier),l=n.ocsp;l.ResponderID;_SingleResponseList=l.SingleResponseList,_ResponseData=l.ResponseData,this.params=null,this.setByParam=function(e){this.params=e},this.sign=function(){var e=this.params,t=e.tbsresp.tohex(),n=new _n.crypto.Signature({alg:e.sigalg});n.init(e.reskey),n.updateHex(t),e.sighex=n.sign()},this.tohex=function(){var e=this.params;void 0==e.tbsresp&&(e.tbsresp=new _ResponseData(e)),void 0==e.sighex&&void 0!=e.reskey&&this.sign();var n=[];if(n.push(e.tbsresp),n.push(new s({name:e.sigalg})),n.push(new o({hex:"00"+e.sighex})),void 0!=e.certs&&void 0!=e.certs.length){for(var l=[],c=0;c<e.certs.length;c++){var u=e.certs[c],d=null;if(xn.isASN1HEX(u))d=u;else{if(!u.match(/-----BEGIN/))throw new t("certs["+c+"] not hex or PEM");d=Qn(u)}l.push(new r({tlv:d}))}var h=new i({array:l});n.push(new a({tag:"a0",explicit:!0,obj:h}))}var p=new i({array:n});return p.tohex()},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.BasicOCSPResponse,_n.asn1.ASN1Object),_n.asn1.ocsp.ResponseData=function(e){_n.asn1.ocsp.ResponseData.superclass.constructor.call(this);var t=Error,n=_n.asn1,r=n.DERSequence,i=n.DERGeneralizedTime,a=n.DERTaggedObject,o=n.x509.Extensions,s=n.ocsp,l=s.ResponderID;_SingleResponseList=s.SingleResponseList,this.params=null,this.tohex=function(){var e=this.params;void 0!=e.respid&&new t("respid not specified"),void 0!=e.prodat&&new t("prodat not specified"),void 0!=e.array&&new t("array not specified");var n=[];if(n.push(new l(e.respid)),n.push(new i(e.prodat)),n.push(new _SingleResponseList(e.array)),void 0!=e.ext){var s=new o(e.ext);n.push(new a({tag:"a1",explicit:!0,obj:s}))}var c=new r({array:n});return c.tohex()},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.ResponseData,_n.asn1.ASN1Object),_n.asn1.ocsp.ResponderID=function(e){_n.asn1.ocsp.ResponderID.superclass.constructor.call(this);var t=_n,n=t.asn1,r=n.ASN1Util.newObject,i=n.x509.X500Name,a=t.lang.String.isHex,o=Error;this.params=null,this.tohex=function(){var e=this.params;if(void 0!=e.key){var t=null;if("string"==typeof e.key){if(a(e.key)&&(t=e.key),e.key.match(/-----BEGIN CERTIFICATE/)){var n=new Ur(e.key),s=n.getExtSubjectKeyIdentifier();null!=s&&(t=s.kid.hex)}}else if(e.key instanceof Ur){s=e.key.getExtSubjectKeyIdentifier();null!=s&&(t=s.kid.hex)}if(null==t)throw new o("wrong key member value");var l=r({tag:{tag:"a2",explicit:!0,obj:{octstr:{hex:t}}}});return l.tohex()}if(void 0!=e.name){var c=null;if("string"==typeof e.name&&e.name.match(/-----BEGIN CERTIFICATE/)){n=new Ur(e.name);c=n.getSubject()}else e.name instanceof Ur?c=e.name.getSubject():"object"!=typeof e.name||void 0==e.name.array&&void 0==e.name.str||(c=e.name);if(null==c)throw new o("wrong name member value");l=r({tag:{tag:"a1",explicit:!0,obj:new i(c)}});return l.tohex()}throw new o("key or name not specified")},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.ResponderID,_n.asn1.ASN1Object),_n.asn1.ocsp.SingleResponseList=function(e){_n.asn1.ocsp.SingleResponseList.superclass.constructor.call(this);var t=_n.asn1,n=t.DERSequence,r=t.ocsp.SingleResponse;this.params=null,this.tohex=function(){var e=this.params;if("object"!=typeof e||void 0==e.length)throw new Error("params not specified properly");for(var t=[],i=0;i<e.length;i++)t.push(new r(e[i]));var a=new n({array:t});return a.tohex()},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.SingleResponseList,_n.asn1.ASN1Object),_n.asn1.ocsp.SingleResponse=function(e){var t=Error,n=_n,r=n.asn1,i=r.DERSequence,a=r.DERGeneralizedTime,o=r.DERTaggedObject,s=r.ocsp,l=s.CertID,c=s.CertStatus,u=r.x509,d=u.Extensions;s.SingleResponse.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params,n=[];if(void 0==e.certid)throw new t("certid unspecified");if(void 0==e.status)throw new t("status unspecified");if(void 0==e.thisupdate)throw new t("thisupdate unspecified");if(n.push(new l(e.certid)),n.push(new c(e.status)),n.push(new a(e.thisupdate)),void 0!=e.nextupdate){var r=new a(e.nextupdate);n.push(new o({tag:"a0",explicit:!0,obj:r}))}if(void 0!=e.ext){var s=new d(e.ext);n.push(new o({tag:"a1",explicit:!0,obj:s}))}var u=new i({array:n});return u.tohex()},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.SingleResponse,_n.asn1.ASN1Object),_n.asn1.ocsp.CertID=function(e){var t=_n,n=t.asn1,r=n.DEROctetString,i=n.DERInteger,a=n.DERSequence,o=n.x509,s=o.AlgorithmIdentifier,l=n.ocsp,c=(l.DEFAULT_HASH,t.crypto),u=c.Util.hashHex,d=Ur,h=xn,p=h.getVbyList;l.CertID.superclass.constructor.call(this),this.DEFAULT_HASH="sha1",this.params=null,this.setByValue=function(e,t,n,r){void 0==r&&(r=this.DEFAULT_HASH),this.params={alg:r,issname:e,isskey:t,sbjsn:n}},this.setByCert=function(e,t,n){void 0==n&&(n=this.DEFAULT_HASH),this.params={alg:n,issuerCert:e,subjectCert:t}},this.getParamByCerts=function(e,t,n){void 0==n&&(n=this.DEFAULT_HASH);var r=new d(e),i=new d(t),a=u(r.getSubjectHex(),n),o=r.getPublicKeyHex(),s=u(p(o,0,[1],"03",!0),n),l=i.getSerialNumberHex(),c={alg:n,issname:a,isskey:s,sbjsn:l};return c},this.tohex=function(){if("object"!=typeof this.params)throw new Error("params not set");var e,t,n,o,l=this.params;if(o=void 0==l.alg?this.DEFAULT_HASH:l.alg,void 0!=l.issuerCert&&void 0!=l.subjectCert){var c=this.getParamByCerts(l.issuerCert,l.subjectCert,o);e=c.issname,t=c.isskey,n=c.sbjsn}else{if(void 0==l.issname||void 0==l.isskey||void 0==l.sbjsn)throw new Error("required param members not defined");e=l.issname,t=l.isskey,n=l.sbjsn}var u=new s({name:o}),d=new r({hex:e}),h=new r({hex:t}),p=new i({hex:n}),f=new a({array:[u,d,h,p]});return this.hTLV=f.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.CertID,_n.asn1.ASN1Object),_n.asn1.ocsp.CertStatus=function(e){_n.asn1.ocsp.CertStatus.superclass.constructor.call(this),this.params=null,this.tohex=function(){var e=this.params;if("good"==e.status)return"8000";if("unknown"==e.status)return"8200";if("revoked"==e.status){var t=[{gentime:{str:e.time}}];void 0!=e.reason&&t.push({tag:{tag:"a0",explicit:!0,obj:{enum:{int:e.reason}}}});var n={tag:"a1",explicit:!1,obj:{seq:t}};return _n.asn1.ASN1Util.newObject({tag:n}).tohex()}throw new Error("bad status")},this.getEncodedHex=function(){return this.tohex()},this.setByParam=function(e){this.params=e},void 0!==e&&this.setByParam(e)},Pr(_n.asn1.ocsp.CertStatus,_n.asn1.ASN1Object),_n.asn1.ocsp.Request=function(e){var t=_n,n=t.asn1,r=n.DERSequence,i=n.ocsp;if(i.Request.superclass.constructor.call(this),this.dReqCert=null,this.dExt=null,this.tohex=function(){var e=[];if(null===this.dReqCert)throw"reqCert not set";e.push(this.dReqCert);var t=new r({array:e});return this.hTLV=t.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},"undefined"!==typeof e){var a=new i.CertID(e);this.dReqCert=a}},Pr(_n.asn1.ocsp.Request,_n.asn1.ASN1Object),_n.asn1.ocsp.TBSRequest=function(e){var t=_n,n=t.asn1,r=n.DERSequence,i=n.ocsp;i.TBSRequest.superclass.constructor.call(this),this.version=0,this.dRequestorName=null,this.dRequestList=[],this.dRequestExt=null,this.setRequestListByParam=function(e){for(var t=[],n=0;n<e.length;n++){var r=new i.Request(e[0]);t.push(r)}this.dRequestList=t},this.tohex=function(){var e=[];if(0!==this.version)throw"not supported version: "+this.version;if(null!==this.dRequestorName)throw"requestorName not supported";var t=new r({array:this.dRequestList});if(e.push(t),null!==this.dRequestExt)throw"requestExtensions not supported";var n=new r({array:e});return this.hTLV=n.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&void 0!==e.reqList&&this.setRequestListByParam(e.reqList)},Pr(_n.asn1.ocsp.TBSRequest,_n.asn1.ASN1Object),_n.asn1.ocsp.OCSPRequest=function(e){var t=_n,n=t.asn1,r=n.DERSequence,i=n.ocsp;if(i.OCSPRequest.superclass.constructor.call(this),this.dTbsRequest=null,this.dOptionalSignature=null,this.tohex=function(){var e=[];if(null===this.dTbsRequest)throw"tbsRequest not set";if(e.push(this.dTbsRequest),null!==this.dOptionalSignature)throw"optionalSignature not supported";var t=new r({array:e});return this.hTLV=t.tohex(),this.hTLV},this.getEncodedHex=function(){return this.tohex()},void 0!==e&&void 0!==e.reqList){var a=new i.TBSRequest(e);this.dTbsRequest=a}},Pr(_n.asn1.ocsp.OCSPRequest,_n.asn1.ASN1Object),_n.asn1.ocsp.OCSPUtil={},_n.asn1.ocsp.OCSPUtil.getRequestHex=function(e,t,n){var r=_n,i=r.asn1,a=i.ocsp;void 0===n&&(n=a.DEFAULT_HASH);var o={alg:n,issuerCert:e,subjectCert:t},s=new a.OCSPRequest({reqList:[o]});return s.tohex()},_n.asn1.ocsp.OCSPUtil.getOCSPResponseInfo=function(e){var t=xn,n=t.getVbyList,r=t.getVbyListEx,i=t.getIdxbyList,a=(t.getIdxbyListEx,t.getV),o={};try{var s=r(e,0,[0],"0a");o.responseStatus=parseInt(s,16)}catch(d){}if(0!==o.responseStatus)return o;try{var l=i(e,0,[1,0,1,0,0,2,0,1]);"80"===e.substr(l,2)?o.certStatus="good":"a1"===e.substr(l,2)?(o.certStatus="revoked",o.revocationTime=Un(n(e,l,[0]))):"82"===e.substr(l,2)&&(o.certStatus="unknown")}catch(d){}try{var c=i(e,0,[1,0,1,0,0,2,0,2]);o.thisUpdate=Un(a(e,c))}catch(d){}try{var u=i(e,0,[1,0,1,0,0,2,0,3]);"a0"===e.substr(u,2)&&(o.nextUpdate=Un(n(e,u,[0])))}catch(d){}return o},_n.asn1.ocsp.OCSPParser=function(){var e=Error,t=Ur,n=new t,r=xn,i=r.getV,a=r.getTLV,o=r.getIdxbyList,s=r.getVbyList,l=r.getTLVbyList,c=r.getVbyListEx,u=r.getTLVbyListEx,d=r.getChildIdx;this.getOCSPRequest=function(t){var n=d(t,0);if(1!=n.length&&2!=n.length)throw new e("wrong number elements: "+n.length);var r=this.getTBSRequest(a(t,n[0]));return r},this.getTBSRequest=function(e){var t={},r=u(e,0,[0],"30");t.array=this.getRequestList(r);var i=u(e,0,["[2]",0],"30");return null!=i&&(t.ext=n.getExtParamArray(i)),t},this.getRequestList=function(e){for(var t=[],n=d(e,0),r=0;r<n.length;r++){e=a(e,n[r]);t.push(this.getRequest(e))}return t},this.getRequest=function(t){var r=d(t,0);if(1!=r.length&&2!=r.length)throw new e("wrong number elements: "+r.length);var i=this.getCertID(a(t,r[0]));if(2==r.length){var s=o(t,0,[1,0]);i.ext=n.getExtParamArray(a(t,s))}return i},this.getCertID=function(n){var r=d(n,0);if(4!=r.length)throw new e("wrong number elements: "+r.length);var o=new t,s={};return s.alg=o.getAlgorithmIdentifierName(a(n,r[0])),s.issname=i(n,r[1]),s.isskey=i(n,r[2]),s.sbjsn=i(n,r[3]),s},this.getOCSPResponse=function(e){var t,n=d(e,0),r=i(e,n[0]),a=parseInt(r);if(1==n.length)return{resstatus:a};var o=l(e,0,[1,0]);return t=this.getResponseBytes(o),t.resstatus=a,t},this.getResponseBytes=function(e){var t,n=d(e,0),r=l(e,0,[1,0]);t=this.getBasicOCSPResponse(r);var a=i(e,n[0]);return t.restype=_n.asn1.x509.OID.oid2name(xr(a)),t},this.getBasicOCSPResponse=function(e){var t,n=d(e,0);t=this.getResponseData(a(e,n[0]));var r=new Ur;t.alg=r.getAlgorithmIdentifierName(a(e,n[1]));var o=i(e,n[2]);t.sighex=o.substr(2);var s=c(e,0,["[0]"]);if(null!=s){for(var l=d(s,0),u=[],h=0;h<l.length;h++){var p=a(s,l[h]);u.push(p)}t.certs=u}return t},this.getResponseData=function(e){var t=d(e,0),n=t.length,r={},o=0;"a0"==e.substr(t[0],2)&&o++,r.respid=this.getResponderID(a(e,t[o++]));var s=i(e,t[o++]);if(r.prodat=Un(s),r.array=this.getSingleResponseList(a(e,t[o++])),"a1"==e.substr(t[n-1],2)){var c=l(e,t[n-1],[0]),u=new Ur;r.ext=u.getExtParamArray(c)}return r},this.getResponderID=function(e){var t={};if("a2"==e.substr(0,2)){var n=s(e,0,[0]);t.key=n}if("a1"==e.substr(0,2)){var r=l(e,0,[0]),i=new Ur;t.name=i.getX500Name(r)}return t},this.getSingleResponseList=function(e){for(var t=d(e,0),n=[],r=0;r<t.length;r++){var i=this.getSingleResponse(a(e,t[r]));n.push(i)}return n},this.getSingleResponse=function(e){var t=d(e,0),n={},r=this.getCertID(a(e,t[0]));n.certid=r;var o=this.getCertStatus(a(e,t[1]));if(n.status=o,"18"==e.substr(t[2],2)){var c=i(e,t[2]);n.thisupdate=Un(c)}for(var u=3;u<t.length;u++){if("a0"==e.substr(t[u],2)){var h=s(e,t[u],[0],"18");n.nextupdate=Un(h)}if("a1"==e.substr(t[u],2)){var p=new Ur,f=l(e,0,[u,0]);n.ext=p.getExtParamArray(f)}}return n},this.getCertStatus=function(e){var t={};if("8000"==e)return{status:"good"};if("8200"==e)return{status:"unknown"};if("a1"==e.substr(0,2)){t.status="revoked";var n=s(e,0,[0]),r=Un(n);t.time=r}return t}},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.lang&&_n.lang||(_n.lang={}),_n.lang.String=function(){},"function"===typeof r?(Sn=function(e){return Ln(r.from(e,"utf8").toString("base64"))},kn=function(e){return r.from(Dn(e),"base64").toString("utf8")}):(Sn=function(e){return Pn(sr(gr(e)))},kn=function(e){return decodeURIComponent(lr(Mn(e)))}),_n.lang.String.isInteger=function(e){return!!e.match(/^[0-9]+$/)||!!e.match(/^-[0-9]+$/)},_n.lang.String.isHex=function(e){return yr(e)},_n.lang.String.isBase64=function(e){return e=e.replace(/\s+/g,""),!(!e.match(/^[0-9A-Za-z+\/]+={0,3}$/)||e.length%4!=0)},_n.lang.String.isBase64URL=function(e){return!e.match(/[+/=]/)&&(e=Dn(e),_n.lang.String.isBase64(e))},_n.lang.String.isIntegerArray=function(e){return e=e.replace(/\s+/g,""),!!e.match(/^\[[0-9,]+\]$/)},_n.lang.String.isPrintable=function(e){return null!==e.match(/^[0-9A-Za-z '()+,-./:=?]*$/)},_n.lang.String.isIA5=function(e){return null!==e.match(/^[\x20-\x21\x23-\x7f]*$/)},_n.lang.String.isMail=function(e){return null!==e.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var Sr=function(e,t){var n=e.length;e.length>t.length&&(n=t.length);for(var r=0;r<n;r++)if(e.charCodeAt(r)!=t.charCodeAt(r))return r;return e.length!=t.length?n:-1};function kr(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},n=function(e){var n="",r=parseInt(e,10),i=r.toString(2),a=7-i.length%7;7==a&&(a=0);for(var o="",s=0;s<a;s++)o+="0";i=o+i;for(s=0;s<i.length-1;s+=7){var l=i.substr(s,7);s!=i.length-7&&(l="1"+l),n+=t(parseInt(l,2))}return n};try{if(!e.match(/^[0-9.]+$/))return null;var r="",i=e.split("."),a=40*parseInt(i[0],10)+parseInt(i[1],10);r+=t(a),i.splice(0,2);for(var o=0;o<i.length;o++)r+=n(i[o]);return r}catch(s){return null}}function xr(e){if(!yr(e))return null;try{var t=[],n=e.substr(0,2),r=parseInt(n,16);t[0]=new String(Math.floor(r/40)),t[1]=new String(r%40);for(var i=e.substr(2),a=[],o=0;o<i.length/2;o++)a.push(parseInt(i.substr(2*o,2),16));var s=[],l="";for(o=0;o<a.length;o++)128&a[o]?l+=Cr((127&a[o]).toString(2),7):(l+=Cr((127&a[o]).toString(2),7),s.push(new String(parseInt(l,2))),l="");var c=t.join(".");return s.length>0&&(c=c+"."+s.join(".")),c}catch(u){return null}}function Ar(e){var t=new v(String(e),10);return Nr(t)}function Nr(e){var t=e.toString(16);if("-"!=t.substr(0,1))return t.length%2==1?t="0"+t:t.match(/^[0-7]/)||(t="00"+t),t;var n=t.substr(1),r=n.length;r%2==1?r+=1:t.match(/^[0-7]/)||(r+=2);for(var i="",a=0;a<r;a++)i+="f";var o=new v(i,16),s=o.xor(e).add(v.ONE);return t=s.toString(16).replace(/^-/,""),t}var Cr=function(e,t,n){return void 0==n&&(n="0"),e.length>=t?e:new Array(t-e.length+1).join(n)+e};function Tr(e){if(e.length%2!=0)return-1;if(e=e.toLowerCase(),null==e.match(/^[0-9a-f]+$/))return-1;try{var t=e.substr(0,2);if("00"==t)return parseInt(e.substr(2),16);var n=parseInt(t,16);if(n>7)return-1;var r=e.substr(2),i=parseInt(r,16).toString(2);"0"==i&&(i="00000000"),i=i.slice(0,0-n);var a=parseInt(i,2);return NaN==a?-1:a}catch(o){return-1}}function Rr(e){if("number"!=typeof e)return null;if(e<0)return null;var t=Number(e).toString(2),n=8-t.length%8;8==n&&(n=0),t+=Cr("",n,"0");var r=parseInt(t,2).toString(16);r.length%2==1&&(r="0"+r);var i="0"+n;return i+r}function Or(e){if("string"!=typeof e)return null;if(e.length%2!=0)return null;if(!e.match(/^[0-9a-f]+$/))return null;try{var t=parseInt(e.substr(0,2),16);if(t<0||7<t)return null;for(var n=e.substr(2),r="",i=0;i<n.length;i+=2){var a=n.substr(i,2),o=parseInt(a,16).toString(2);o=("0000000"+o).slice(-8),r+=o}return r.substr(0,r.length-t)}catch(s){return null}}function Ir(e){if("string"!=typeof e)return null;if(null==e.match(/^[01]+$/))return null;try{var t=parseInt(e,2);return Rr(t)}catch(n){return null}}function Lr(e,t){for(var n=0,r=0;r<e.length;r++)n|=1<<t[e[r]];var i=n.toString(2),a="";for(r=i.length-1;r>=0;r--)a+=i[r];return a}function Dr(e,t,n){if("object"==typeof e){t=String(t).split(".");for(var r=0;r<t.length&&e;r++){var i=t[r];i.match(/^[0-9]+$/)&&(i=parseInt(i)),e=e[i]}return e||!1===e?e:n}}function Pr(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.superclass=t.prototype,t.prototype.constructor==Object.prototype.constructor&&(t.prototype.constructor=t)}"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.crypto&&_n.crypto||(_n.crypto={}),_n.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:l.algo.MD5,sha1:l.algo.SHA1,sha224:l.algo.SHA224,sha256:l.algo.SHA256,sha384:l.algo.SHA384,sha512:l.algo.SHA512,ripemd160:l.algo.RIPEMD160},this.getDigestInfoHex=function(e,t){if("undefined"==typeof this.DIGESTINFOHEAD[t])throw"alg not supported in Util.DIGESTINFOHEAD: "+t;return this.DIGESTINFOHEAD[t]+e},this.getPaddedDigestInfoHex=function(e,t,n){var r=this.getDigestInfoHex(e,t),i=n/4;if(r.length+22>i)throw"key is too short for SigAlg: keylen="+n+","+t;for(var a="0001",o="00"+r,s="",l=i-a.length-o.length,c=0;c<l;c+=2)s+="ff";var u=a+s+o;return u},this.hashString=function(e,t){var n=new _n.crypto.MessageDigest({alg:t});return n.digestString(e)},this.hashHex=function(e,t){var n=new _n.crypto.MessageDigest({alg:t});return n.digestHex(e)},this.sha1=function(e){return this.hashString(e,"sha1")},this.sha256=function(e){return this.hashString(e,"sha256")},this.sha256Hex=function(e){return this.hashHex(e,"sha256")},this.sha512=function(e){return this.hashString(e,"sha512")},this.sha512Hex=function(e){return this.hashHex(e,"sha512")},this.isKey=function(e){return e instanceof Ut||e instanceof _n.crypto.DSA||e instanceof _n.crypto.ECDSA}},_n.crypto.Util.md5=function(e){var t=new _n.crypto.MessageDigest({alg:"md5",prov:"cryptojs"});return t.digestString(e)},_n.crypto.Util.ripemd160=function(e){var t=new _n.crypto.MessageDigest({alg:"ripemd160",prov:"cryptojs"});return t.digestString(e)},_n.crypto.Util.SECURERANDOMGEN=new Ft,_n.crypto.Util.getRandomHexOfNbytes=function(e){var t=new Array(e);return _n.crypto.Util.SECURERANDOMGEN.nextBytes(t),Cn(t)},_n.crypto.Util.getRandomBigIntegerOfNbytes=function(e){return new v(_n.crypto.Util.getRandomHexOfNbytes(e),16)},_n.crypto.Util.getRandomHexOfNbits=function(e){var t=e%8,n=(e-t)/8,r=new Array(n+1);return _n.crypto.Util.SECURERANDOMGEN.nextBytes(r),r[0]=(255<<t&255^255)&r[0],Cn(r)},_n.crypto.Util.getRandomBigIntegerOfNbits=function(e){return new v(_n.crypto.Util.getRandomHexOfNbits(e),16)},_n.crypto.Util.getRandomBigIntegerZeroToMax=function(e){var t=e.bitLength();while(1){var n=_n.crypto.Util.getRandomBigIntegerOfNbits(t);if(-1!=e.compareTo(n))return n}},_n.crypto.Util.getRandomBigIntegerMinToMax=function(e,t){var n=e.compareTo(t);if(1==n)throw"biMin is greater than biMax";if(0==n)return e;var r=t.subtract(e),i=_n.crypto.Util.getRandomBigIntegerZeroToMax(r);return i.add(e)},_n.crypto.MessageDigest=function(e){this.setAlgAndProvider=function(e,t){if(e=_n.crypto.MessageDigest.getCanonicalAlgName(e),null!==e&&void 0===t&&(t=_n.crypto.Util.DEFAULTPROVIDER[e]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(e)&&"cryptojs"==t){try{this.md=_n.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[e].create()}catch(n){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+n}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=l.enc.Hex.parse(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return e.toString(l.enc.Hex)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}if(-1!=":sha256:".indexOf(e)&&"sjcl"==t){try{this.md=new sjcl.hash.sha256}catch(n){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+n}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=sjcl.codec.hex.toBits(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return sjcl.codec.hex.fromBits(e)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digest=function(){throw"digest() not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==e&&void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=_n.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},_n.crypto.MessageDigest.getCanonicalAlgName=function(e){return"string"===typeof e&&(e=e.toLowerCase(),e=e.replace(/-/,"")),e},_n.crypto.MessageDigest.getHashLength=function(e){var t=_n.crypto.MessageDigest,n=t.getCanonicalAlgName(e);if(void 0===t.HASHLENGTH[n])throw"not supported algorithm: "+e;return t.HASHLENGTH[n]},_n.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},_n.crypto.Mac=function(e){this.setAlgAndProvider=function(e,t){if(e=e.toLowerCase(),null==e&&(e="hmacsha1"),e=e.toLowerCase(),"hmac"!=e.substr(0,4))throw"setAlgAndProvider unsupported HMAC alg: "+e;void 0===t&&(t=_n.crypto.Util.DEFAULTPROVIDER[e]),this.algProv=e+"/"+t;var n=e.substr(4);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(n)&&"cryptojs"==t){try{var r=_n.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[n];this.mac=l.algo.HMAC.create(r,this.pass)}catch(i){throw"setAlgAndProvider hash alg set fail hashAlg="+n+"/"+i}this.updateString=function(e){this.mac.update(e)},this.updateHex=function(e){var t=l.enc.Hex.parse(e);this.mac.update(t)},this.doFinal=function(){var e=this.mac.finalize();return e.toString(l.enc.Hex)},this.doFinalString=function(e){return this.updateString(e),this.doFinal()},this.doFinalHex=function(e){return this.updateHex(e),this.doFinal()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algProv},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algProv},this.doFinal=function(){throw"digest() not supported for this alg/prov: "+this.algProv},this.doFinalString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algProv},this.doFinalHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algProv},this.setPassword=function(e){if("string"==typeof e){var t=e;return e.length%2!=1&&e.match(/^[0-9A-Fa-f]+$/)||(t=Hn(e)),void(this.pass=l.enc.Hex.parse(t))}if("object"!=typeof e)throw"KJUR.crypto.Mac unsupported password type: "+e;t=null;if(void 0!==e.hex){if(e.hex.length%2!=0||!e.hex.match(/^[0-9A-Fa-f]+$/))throw"Mac: wrong hex password: "+e.hex;t=e.hex}if(void 0!==e.utf8&&(t=$n(e.utf8)),void 0!==e.rstr&&(t=Hn(e.rstr)),void 0!==e.b64&&(t=p(e.b64)),void 0!==e.b64u&&(t=Mn(e.b64u)),null==t)throw"KJUR.crypto.Mac unsupported password type: "+e;this.pass=l.enc.Hex.parse(t)},void 0!==e&&(void 0!==e.pass&&this.setPassword(e.pass),void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=_n.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName)))},_n.crypto.Signature=function(e){var t=null;if(this._setAlgNames=function(){var e=this.algName.match(/^(.+)with(.+)$/);e&&(this.mdAlgName=e[1].toLowerCase(),this.pubkeyAlgName=e[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(e,t){for(var n="",r=t/4-e.length,i=0;i<r;i++)n+="0";return n+e},this.setAlgAndProvider=function(e,t){if(this._setAlgNames(),"cryptojs/jsrsa"!=t)throw new Error("provider not supported: "+t);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new _n.crypto.MessageDigest({alg:this.mdAlgName})}catch(n){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+n)}this.init=function(e,t){var n=null;try{n=void 0===t?Mr.getKey(e):Mr.getKey(e,t)}catch(r){throw"init failed:"+r}if(!0===n.isPrivate)this.prvKey=n,this.state="SIGN";else{if(!0!==n.isPublic)throw"init failed.:"+n;this.pubKey=n,this.state="VERIFY"}},this.updateString=function(e){this.md.updateString(e)},this.updateHex=function(e){this.md.updateHex(e)},this.sign=function(){if(this.sHashHex=this.md.digest(),void 0===this.prvKey&&void 0!==this.ecprvhex&&void 0!==this.eccurvename&&void 0!==_n.crypto.ECDSA&&(this.prvKey=new _n.crypto.ECDSA({curve:this.eccurvename,prv:this.ecprvhex})),this.prvKey instanceof Ut&&"rsaandmgf1"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHashPSS(this.sHashHex,this.mdAlgName,this.pssSaltLen);else if(this.prvKey instanceof Ut&&"rsa"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex,this.mdAlgName);else if(this.prvKey instanceof _n.crypto.ECDSA)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex);else{if(!(this.prvKey instanceof _n.crypto.DSA))throw"Signature: unsupported private key alg: "+this.pubkeyAlgName;this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}return this.hSign},this.signString=function(e){return this.updateString(e),this.sign()},this.signHex=function(e){return this.updateHex(e),this.sign()},this.verify=function(e){if(this.sHashHex=this.md.digest(),void 0===this.pubKey&&void 0!==this.ecpubhex&&void 0!==this.eccurvename&&void 0!==_n.crypto.ECDSA&&(this.pubKey=new _n.crypto.ECDSA({curve:this.eccurvename,pub:this.ecpubhex})),this.pubKey instanceof Ut&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,e,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof Ut&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==_n.crypto.ECDSA&&this.pubKey instanceof _n.crypto.ECDSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==_n.crypto.DSA&&this.pubKey instanceof _n.crypto.DSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(e,t){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(e){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.sign=function(){throw"sign() not supported for this alg:prov="+this.algProvName},this.signString=function(e){throw"digestString(str) not supported for this alg:prov="+this.algProvName},this.signHex=function(e){throw"digestHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(e){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=e,void 0!==e&&(void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov?this.provName=_n.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=e.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==e.psssaltlen&&(this.pssSaltLen=e.psssaltlen),void 0!==e.prvkeypem)){if(void 0!==e.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{t=Mr.getKey(e.prvkeypem);this.init(t)}catch(n){throw"fatal error to load pem private key: "+n}}},_n.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040022":"secp384r1","2b81040023":"secp521r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.crypto&&_n.crypto||(_n.crypto={}),_n.crypto.ECDSA=function(e){var t="secp256r1",n=Error,r=v,i=nn,a=_n.crypto.ECDSA,o=_n.crypto.ECParameterDB,s=a.getName,l=xn,c=l.getVbyListEx,u=l.isASN1HEX,d=new Ft;this.type="EC",this.isPrivate=!1,this.isPublic=!1,this.getBigRandom=function(e){return new r(e.bitLength(),d).mod(e.subtract(r.ONE)).add(r.ONE)},this.setNamedCurve=function(e){this.ecparams=o.getByName(e),this.prvKeyHex=null,this.pubKeyHex=null,this.curveName=e},this.setPrivateKeyHex=function(e){this.isPrivate=!0,this.prvKeyHex=e},this.setPublicKeyHex=function(e){this.isPublic=!0,this.pubKeyHex=e},this.getPublicKeyXYHex=function(){var e=this.pubKeyHex;if("04"!==e.substr(0,2))throw"this method supports uncompressed format(04) only";var t=this.ecparams.keycharlen;if(e.length!==2+2*t)throw"malformed public key hex length";var n={};return n.x=e.substr(2,t),n.y=e.substr(2+t),n},this.getShortNISTPCurveName=function(){var e=this.curveName;return"secp256r1"===e||"NIST P-256"===e||"P-256"===e||"prime256v1"===e?"P-256":"secp384r1"===e||"NIST P-384"===e||"P-384"===e?"P-384":"secp521r1"===e||"NIST P-521"===e||"P-521"===e?"P-521":null},this.generateKeyPairHex=function(){var e=this.ecparams.n,t=this.getBigRandom(e),n=this.ecparams.keycharlen,r=("0000000000"+t.toString(16)).slice(-n);this.setPrivateKeyHex(r);var i=this.generatePublicKeyHex();return{ecprvhex:r,ecpubhex:i}},this.generatePublicKeyHex=function(){var e=new r(this.prvKeyHex,16),t=this.ecparams.G.multiply(e),n=t.getX().toBigInteger(),i=t.getY().toBigInteger(),a=this.ecparams.keycharlen,o=("0000000000"+n.toString(16)).slice(-a),s=("0000000000"+i.toString(16)).slice(-a),l="04"+o+s;return this.setPublicKeyHex(l),l},this.signWithMessageHash=function(e){return this.signHex(e,this.prvKeyHex)},this.signHex=function(e,t){var n=new r(t,16),i=this.ecparams.n,o=new r(e.substring(0,this.ecparams.keycharlen),16);do{var s=this.getBigRandom(i),l=this.ecparams.G,c=l.multiply(s),u=c.getX().toBigInteger().mod(i)}while(u.compareTo(r.ZERO)<=0);var d=s.modInverse(i).multiply(o.add(n.multiply(u))).mod(i);return a.biRSSigToASN1Sig(u,d)},this.sign=function(e,t){var n=t,i=this.ecparams.n,a=r.fromByteArrayUnsigned(e);do{var o=this.getBigRandom(i),s=this.ecparams.G,l=s.multiply(o),c=l.getX().toBigInteger().mod(i)}while(c.compareTo(v.ZERO)<=0);var u=o.modInverse(i).multiply(a.add(n.multiply(c))).mod(i);return this.serializeSig(c,u)},this.verifyWithMessageHash=function(e,t){return this.verifyHex(e,t,this.pubKeyHex)},this.verifyHex=function(e,t,n){try{var o,s,l=a.parseSigHex(t);o=l.r,s=l.s;var c=i.decodeFromHex(this.ecparams.curve,n),u=new r(e.substring(0,this.ecparams.keycharlen),16);return this.verifyRaw(u,o,s,c)}catch(d){return!1}},this.verify=function(e,t,n){var a,o,s;if(Bitcoin.Util.isArray(t)){var l=this.parseSig(t);a=l.r,o=l.s}else{if("object"!==typeof t||!t.r||!t.s)throw"Invalid value for signature";a=t.r,o=t.s}if(n instanceof nn)s=n;else{if(!Bitcoin.Util.isArray(n))throw"Invalid format for pubkey value, must be byte array or ECPointFp";s=i.decodeFrom(this.ecparams.curve,n)}var c=r.fromByteArrayUnsigned(e);return this.verifyRaw(c,a,o,s)},this.verifyRaw=function(e,t,n,i){var a=this.ecparams.n,o=this.ecparams.G;if(t.compareTo(r.ONE)<0||t.compareTo(a)>=0)return!1;if(n.compareTo(r.ONE)<0||n.compareTo(a)>=0)return!1;var s=n.modInverse(a),l=e.multiply(s).mod(a),c=t.multiply(s).mod(a),u=o.multiply(l).add(i.multiply(c)),d=u.getX().toBigInteger().mod(a);return d.equals(t)},this.serializeSig=function(e,t){var n=e.toByteArraySigned(),r=t.toByteArraySigned(),i=[];return i.push(2),i.push(n.length),i=i.concat(n),i.push(2),i.push(r.length),i=i.concat(r),i.unshift(i.length),i.unshift(48),i},this.parseSig=function(e){var t;if(48!=e[0])throw new Error("Signature not a valid DERSequence");if(t=2,2!=e[t])throw new Error("First element in signature must be a DERInteger");var n=e.slice(t+2,t+2+e[t+1]);if(t+=2+e[t+1],2!=e[t])throw new Error("Second element in signature must be a DERInteger");var i=e.slice(t+2,t+2+e[t+1]);t+=2+e[t+1];var a=r.fromByteArrayUnsigned(n),o=r.fromByteArrayUnsigned(i);return{r:a,s:o}},this.parseSigCompact=function(e){if(65!==e.length)throw"Signature has the wrong length";var t=e[0]-27;if(t<0||t>7)throw"Invalid signature type";var n=this.ecparams.n,i=r.fromByteArrayUnsigned(e.slice(1,33)).mod(n),a=r.fromByteArrayUnsigned(e.slice(33,65)).mod(n);return{r:i,s:a,i:t}},this.readPKCS5PrvKeyHex=function(e){if(!1===u(e))throw new Error("not ASN.1 hex string");var t,n,r;try{t=c(e,0,["[0]",0],"06"),n=c(e,0,[1],"04");try{r=c(e,0,["[1]",0],"03")}catch(i){}}catch(i){throw new Error("malformed PKCS#1/5 plain ECC private key")}if(this.curveName=s(t),void 0===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(r),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(e){if(!1===u(e))throw new n("not ASN.1 hex string");var t,r,i;try{c(e,0,[1,0],"06"),t=c(e,0,[1,1],"06"),r=c(e,0,[2,0,1],"04");try{i=c(e,0,[2,0,"[1]",0],"03")}catch(a){}}catch(a){throw new n("malformed PKCS#8 plain ECC private key")}if(this.curveName=s(t),void 0===this.curveName)throw new n("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PubKeyHex=function(e){if(!1===u(e))throw new n("not ASN.1 hex string");var t,r;try{c(e,0,[0,0],"06"),t=c(e,0,[0,1],"06"),r=c(e,0,[1],"03")}catch(i){throw new n("malformed PKCS#8 ECC public key")}if(this.curveName=s(t),null===this.curveName)throw new n("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(r)},this.readCertPubKeyHex=function(e,t){if(!1===u(e))throw new n("not ASN.1 hex string");var r,i;try{r=c(e,0,[0,5,0,1],"06"),i=c(e,0,[0,5,1],"03")}catch(a){throw new n("malformed X.509 certificate ECC public key")}if(this.curveName=s(r),null===this.curveName)throw new n("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==e&&void 0!==e.curve&&(this.curveName=e.curve),void 0===this.curveName&&(this.curveName=t),this.setNamedCurve(this.curveName),void 0!==e&&(void 0!==e.prv&&this.setPrivateKeyHex(e.prv),void 0!==e.pub&&this.setPublicKeyHex(e.pub))},_n.crypto.ECDSA.parseSigHex=function(e){var t=_n.crypto.ECDSA.parseSigHexInHexRS(e),n=new v(t.r,16),r=new v(t.s,16);return{r:n,s:r}},_n.crypto.ECDSA.parseSigHexInHexRS=function(e){var t=xn,n=t.getChildIdx,r=t.getV;if(t.checkStrictDER(e,0),"30"!=e.substr(0,2))throw new Error("signature is not a ASN.1 sequence");var i=n(e,0);if(2!=i.length)throw new Error("signature shall have two elements");var a=i[0],o=i[1];if("02"!=e.substr(a,2))throw new Error("1st item not ASN.1 integer");if("02"!=e.substr(o,2))throw new Error("2nd item not ASN.1 integer");var s=r(e,a),l=r(e,o);return{r:s,s:l}},_n.crypto.ECDSA.asn1SigToConcatSig=function(e){var t=_n.crypto.ECDSA.parseSigHexInHexRS(e),n=t.r,r=t.s;if(n.length>=130&&n.length<=134){if(n.length%2!=0)throw Error("unknown ECDSA sig r length error");if(r.length%2!=0)throw Error("unknown ECDSA sig s length error");"00"==n.substr(0,2)&&(n=n.substr(2)),"00"==r.substr(0,2)&&(r=r.substr(2));var i=Math.max(n.length,r.length);return n=("000000"+n).slice(-i),r=("000000"+r).slice(-i),n+r}if("00"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),"00"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),n.length%32==30&&(n="00"+n),r.length%32==30&&(r="00"+r),n.length%32!=0)throw Error("unknown ECDSA sig r length error");if(r.length%32!=0)throw Error("unknown ECDSA sig s length error");return n+r},_n.crypto.ECDSA.concatSigToASN1Sig=function(e){if(e.length%4!=0)throw Error("unknown ECDSA concatinated r-s sig length error");var t=e.substr(0,e.length/2),n=e.substr(e.length/2);return _n.crypto.ECDSA.hexRSSigToASN1Sig(t,n)},_n.crypto.ECDSA.hexRSSigToASN1Sig=function(e,t){var n=new v(e,16),r=new v(t,16);return _n.crypto.ECDSA.biRSSigToASN1Sig(n,r)},_n.crypto.ECDSA.biRSSigToASN1Sig=function(e,t){var n=_n.asn1,r=new n.DERInteger({bigint:e}),i=new n.DERInteger({bigint:t}),a=new n.DERSequence({array:[r,i]});return a.tohex()},_n.crypto.ECDSA.getName=function(e){return"2b8104001f"===e?"secp192k1":"2a8648ce3d030107"===e?"secp256r1":"2b8104000a"===e?"secp256k1":"2b81040021"===e?"secp224r1":"2b81040022"===e?"secp384r1":"2b81040023"===e?"secp521r1":-1!=="|secp256r1|NIST P-256|P-256|prime256v1|".indexOf(e)?"secp256r1":-1!=="|secp256k1|".indexOf(e)?"secp256k1":-1!=="|secp224r1|NIST P-224|P-224|".indexOf(e)?"secp224r1":-1!=="|secp384r1|NIST P-384|P-384|".indexOf(e)?"secp384r1":-1!=="|secp521r1|NIST P-521|P-521|".indexOf(e)?"secp521r1":null},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.crypto&&_n.crypto||(_n.crypto={}),_n.crypto.ECParameterDB=new function(){var e={},t={};function n(e){return new v(e,16)}this.getByName=function(n){var r=n;if("undefined"!=typeof t[r]&&(r=t[n]),"undefined"!=typeof e[r])return e[r];throw"unregistered EC curve name: "+r},this.regist=function(r,i,a,o,s,l,c,u,d,h,p,f){e[r]={};var m=n(a),g=n(o),v=n(s),b=n(l),y=n(c),w=new pn(m,g,v),E=w.decodePointHex("04"+u+d);e[r]["name"]=r,e[r]["keylen"]=i,e[r]["keycharlen"]=2*Math.ceil(i/8),e[r]["curve"]=w,e[r]["G"]=E,e[r]["n"]=b,e[r]["h"]=y,e[r]["oid"]=p,e[r]["info"]=f;for(var _=0;_<h.length;_++)t[h[_]]=r}},_n.crypto.ECParameterDB.regist("secp128r1",128,"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF","FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC","E87579C11079F43DD824993C2CEE5ED3","FFFFFFFE0000000075A30D1B9038A115","1","161FF7528B899B2D0C28607CA52C5B86","CF5AC8395BAFEB13C02DA292DDED7A83",[],"","secp128r1 : SECG curve over a 128 bit prime field"),_n.crypto.ECParameterDB.regist("secp160k1",160,"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73","0","7","0100000000000000000001B8FA16DFAB9ACA16B6B3","1","3B4C382CE37AA192A4019E763036F4F5DD4D7EBB","938CF935318FDCED6BC28286531733C3F03C4FEE",[],"","secp160k1 : SECG curve over a 160 bit prime field"),_n.crypto.ECParameterDB.regist("secp160r1",160,"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF","FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC","1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45","0100000000000000000001F4C8F927AED3CA752257","1","4A96B5688EF573284664698968C38BB913CBFC82","23A628553168947D59DCC912042351377AC5FB32",[],"","secp160r1 : SECG curve over a 160 bit prime field"),_n.crypto.ECParameterDB.regist("secp192k1",192,"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37","0","3","FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D","1","DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D","9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D",[]),_n.crypto.ECParameterDB.regist("secp192r1",192,"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC","64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1","FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831","1","188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012","07192B95FFC8DA78631011ED6B24CDD573F977A11E794811",[]),_n.crypto.ECParameterDB.regist("secp224r1",224,"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001","FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE","B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4","FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D","1","B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21","BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34",[]),_n.crypto.ECParameterDB.regist("secp256k1",256,"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F","0","7","FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141","1","79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798","483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8",[]),_n.crypto.ECParameterDB.regist("secp256r1",256,"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF","FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC","5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B","FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551","1","6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296","4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5",["NIST P-256","P-256","prime256v1"]),_n.crypto.ECParameterDB.regist("secp384r1",384,"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF","FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC","B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF","FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973","1","AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7","3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f",["NIST P-384","P-384"]),_n.crypto.ECParameterDB.regist("secp521r1",521,"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF","1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC","051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00","1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409","1","00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66","011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650",["NIST P-521","P-521"]),"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.crypto&&_n.crypto||(_n.crypto={}),_n.crypto.DSA=function(){var e=xn,t=(e.getVbyList,e.getVbyListEx),n=e.isASN1HEX,r=v;this.p=null,this.q=null,this.g=null,this.y=null,this.x=null,this.type="DSA",this.isPrivate=!1,this.isPublic=!1,this.setPrivate=function(e,t,n,r,i){this.isPrivate=!0,this.p=e,this.q=t,this.g=n,this.y=r,this.x=i},this.setPrivateHex=function(e,t,n,r,i){var a,o,s,l,c;a=new v(e,16),o=new v(t,16),s=new v(n,16),l="string"===typeof r&&r.length>1?new v(r,16):null,c=new v(i,16),this.setPrivate(a,o,s,l,c)},this.setPublic=function(e,t,n,r){this.isPublic=!0,this.p=e,this.q=t,this.g=n,this.y=r,this.x=null},this.setPublicHex=function(e,t,n,r){var i,a,o,s;i=new v(e,16),a=new v(t,16),o=new v(n,16),s=new v(r,16),this.setPublic(i,a,o,s)},this.signWithMessageHash=function(e){var t=this.p,n=this.q,r=this.g,i=(this.y,this.x),a=_n.crypto.Util.getRandomBigIntegerMinToMax(v.ONE.add(v.ONE),n.subtract(v.ONE)),o=e.substr(0,n.bitLength()/4),s=new v(o,16),l=r.modPow(a,t).mod(n),c=a.modInverse(n).multiply(s.add(i.multiply(l))).mod(n),u=_n.asn1.ASN1Util.jsonToASN1HEX({seq:[{int:{bigint:l}},{int:{bigint:c}}]});return u},this.verifyWithMessageHash=function(e,t){var n=this.p,r=this.q,i=this.g,a=this.y,o=this.parseASN1Signature(t),s=o[0],l=o[1],c=e.substr(0,r.bitLength()/4),u=new v(c,16);if(v.ZERO.compareTo(s)>0||s.compareTo(r)>0)throw"invalid DSA signature";if(v.ZERO.compareTo(l)>=0||l.compareTo(r)>0)throw"invalid DSA signature";var d=l.modInverse(r),h=u.multiply(d).mod(r),p=s.multiply(d).mod(r),f=i.modPow(h,n).multiply(a.modPow(p,n)).mod(n).mod(r);return 0==f.compareTo(s)},this.parseASN1Signature=function(e){try{var n=new r(t(e,0,[0],"02"),16),i=new r(t(e,0,[1],"02"),16);return[n,i]}catch(a){throw new Error("malformed ASN.1 DSA signature")}},this.readPKCS5PrvKeyHex=function(e){var r,i,a,o,s;if(!1===n(e))throw new Error("not ASN.1 hex string");try{r=t(e,0,[1],"02"),i=t(e,0,[2],"02"),a=t(e,0,[3],"02"),o=t(e,0,[4],"02"),s=t(e,0,[5],"02")}catch(l){throw new Error("malformed PKCS#1/5 plain DSA private key")}this.setPrivateHex(r,i,a,o,s)},this.readPKCS8PrvKeyHex=function(e){var r,i,a,o;if(!1===n(e))throw new Error("not ASN.1 hex string");try{r=t(e,0,[1,1,0],"02"),i=t(e,0,[1,1,1],"02"),a=t(e,0,[1,1,2],"02"),o=t(e,0,[2,0],"02")}catch(s){throw new Error("malformed PKCS#8 plain DSA private key")}this.setPrivateHex(r,i,a,null,o)},this.readPKCS8PubKeyHex=function(e){var r,i,a,o;if(!1===n(e))throw new Error("not ASN.1 hex string");try{r=t(e,0,[0,1,0],"02"),i=t(e,0,[0,1,1],"02"),a=t(e,0,[0,1,2],"02"),o=t(e,0,[1,0],"02")}catch(s){throw new Error("malformed PKCS#8 DSA public key")}this.setPublicHex(r,i,a,o)},this.readCertPubKeyHex=function(e,r){var i,a,o,s;if(!1===n(e))throw new Error("not ASN.1 hex string");try{i=t(e,0,[0,5,0,1,0],"02"),a=t(e,0,[0,5,0,1,1],"02"),o=t(e,0,[0,5,0,1,2],"02"),s=t(e,0,[0,5,1,0],"02")}catch(l){throw new Error("malformed X.509 certificate DSA public key")}this.setPublicHex(i,a,o,s)}};var Mr=function(){var e=function(e,t,n){return r(l.AES,e,t,n)},t=function(e,t,n){return r(l.TripleDES,e,t,n)},n=function(e,t,n){return r(l.DES,e,t,n)},r=function(e,t,n,r){var i=l.enc.Hex.parse(t),a=l.enc.Hex.parse(n),o=l.enc.Hex.parse(r),s={};s.key=a,s.iv=o,s.ciphertext=i;var c=e.decrypt(s,a,{iv:o});return l.enc.Hex.stringify(c)},i=function(e,t,n){return s(l.AES,e,t,n)},a=function(e,t,n){return s(l.TripleDES,e,t,n)},o=function(e,t,n){return s(l.DES,e,t,n)},s=function(e,t,n,r){var i=l.enc.Hex.parse(t),a=l.enc.Hex.parse(n),o=l.enc.Hex.parse(r),s=e.encrypt(i,a,{iv:o}),c=l.enc.Hex.parse(s.toString()),u=l.enc.Base64.stringify(c);return u},c={"AES-256-CBC":{proc:e,eproc:i,keylen:32,ivlen:16},"AES-192-CBC":{proc:e,eproc:i,keylen:24,ivlen:16},"AES-128-CBC":{proc:e,eproc:i,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:t,eproc:a,keylen:24,ivlen:8},"DES-CBC":{proc:n,eproc:o,keylen:8,ivlen:8}},u=function(e){var t=l.lib.WordArray.random(e),n=l.enc.Hex.stringify(t);return n},d=function(e){var t={},n=e.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));n&&(t.cipher=n[1],t.ivsalt=n[2]);var r=e.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));r&&(t.type=r[1]);var i=-1,a=0;-1!=e.indexOf("\r\n\r\n")&&(i=e.indexOf("\r\n\r\n"),a=2),-1!=e.indexOf("\n\n")&&(i=e.indexOf("\n\n"),a=1);var o=e.indexOf("-----END");if(-1!=i&&-1!=o){var s=e.substring(i+2*a,o-a);s=s.replace(/\s+/g,""),t.data=s}return t},h=function(e,t,n){for(var r=n.substring(0,16),i=l.enc.Hex.parse(r),a=l.enc.Utf8.parse(t),o=c[e]["keylen"]+c[e]["ivlen"],s="",u=null;;){var d=l.algo.MD5.create();if(null!=u&&d.update(u),d.update(a),d.update(i),u=d.finalize(),s+=l.enc.Hex.stringify(u),s.length>=2*o)break}var h={};return h.keyhex=s.substr(0,2*c[e]["keylen"]),h.ivhex=s.substr(2*c[e]["keylen"],2*c[e]["ivlen"]),h},p=function(e,t,n,r){var i=l.enc.Base64.parse(e),a=l.enc.Hex.stringify(i),o=c[t]["proc"],s=o(a,n,r);return s},f=function(e,t,n,r){var i=c[t]["eproc"],a=i(e,n,r);return a};return{version:"1.0.0",parsePKCS5PEM:function(e){return d(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(e,t,n){return h(e,t,n)},decryptKeyB64:function(e,t,n,r){return p(e,t,n,r)},getDecryptedKeyHex:function(e,t){var n=d(e),r=(n.type,n.cipher),i=n.ivsalt,a=n.data,o=h(r,t,i),s=o.keyhex,l=p(a,r,s,i);return l},getEncryptedPKCS5PEMFromPrvKeyHex:function(e,t,n,r,i){var a="";if("undefined"!=typeof r&&null!=r||(r="AES-256-CBC"),"undefined"==typeof c[r])throw new Error("KEYUTIL unsupported algorithm: "+r);if("undefined"==typeof i||null==i){var o=c[r]["ivlen"],s=u(o);i=s.toUpperCase()}var l=h(r,n,i),d=l.keyhex,p=f(t,r,d,i),m=p.replace(/(.{64})/g,"$1\r\n");a="-----BEGIN "+e+" PRIVATE KEY-----\r\n";return a+="Proc-Type: 4,ENCRYPTED\r\n",a+="DEK-Info: "+r+","+i+"\r\n",a+="\r\n",a+=m,a+="\r\n-----END "+e+" PRIVATE KEY-----\r\n",a},getEncryptedPKCS8PEM:function(e,t,n){var r=this.getEncryptedPKCS8Hex(e,t,n);return Yn(r,"ENCRYPTED PRIVATE KEY")},getEncryptedPKCS8Hex:function(e,t,n){var r;r=void 0==n||null==n?{}:JSON.parse(JSON.stringify(n)),r.plain=e,this.initPBES2Param(r),this.encryptPBES2Param(r,t);var i=this.generatePBES2ASN1Param(r);return _n.asn1.ASN1Util.newObject(i).tohex()},initPBES2Param:function(e){var t;(void 0==Dr(e,"encalg")&&(e.encalg="aes256-CBC"),void 0==Dr(e,"iter")&&(e.iter=2048),void 0==Dr(e,"prf")&&(e.prf="hmacWithSHA256"),void 0==Dr(e,"salt")&&(e.salt=l.enc.Hex.stringify(l.lib.WordArray.random(8))),void 0==Dr(e,"enciv"))&&("des-EDE3-CBC"==e.encalg&&(t=8),"aes128-CBC"==e.encalg&&(t=16),"aes256-CBC"==e.encalg&&(t=16),e.enciv=l.enc.Hex.stringify(l.lib.WordArray.random(t)))},encryptPBES2Param:function(e,t){var n=Mr.getDKFromPBES2Param(e,t);try{var r=_n.crypto.Cipher.encrypt(e.plain,n,e.encalg,{iv:e.enciv})}catch(i){throw new Error("encrypt error: "+e.plain+" "+n+" "+e.encalg+" "+e.enciv)}e.enc=r},generatePBES2ASN1Param:function(e){var t={seq:[{seq:[{oid:"pkcs5PBES2"},{seq:[{seq:[{oid:"pkcs5PBKDF2"},{seq:[{octstr:{hex:e.salt}},{int:{hex:Ar(e.iter)}}]}]},{seq:[{oid:e.encalg},{octstr:{hex:e.enciv}}]}]}]},{octstr:{hex:e.enc}}]};return"hmacWithSHA1"!=e.prf&&t.seq[0].seq[1].seq[0].seq[1].seq.push({seq:[{oid:e.prf},{null:""}]}),t},parseHexOfEncryptedPKCS8:function(e){var t=xn,n=t.getChildIdx,r=t.getV,i={},a=n(e,0);if(2!=a.length)throw new Error("malformed format: SEQUENCE(0).items != 2: "+a.length);i.ciphertext=r(e,a[1]);var o=n(e,a[0]);if(2!=o.length)throw new Error("malformed format: SEQUENCE(0.0).items != 2: "+o.length);if("2a864886f70d01050d"!=r(e,o[0]))throw new Error("this only supports pkcs5PBES2");var s=n(e,o[1]);if(2!=o.length)throw new Error("malformed format: SEQUENCE(0.0.1).items != 2: "+s.length);var l=n(e,s[1]);if(2!=l.length)throw new Error("malformed format: SEQUENCE(0.0.1.1).items != 2: "+l.length);if("2a864886f70d0307"!=r(e,l[0]))throw"this only supports TripleDES";i.encryptionSchemeAlg="TripleDES",i.encryptionSchemeIV=r(e,l[1]);var c=n(e,s[0]);if(2!=c.length)throw new Error("malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length);if("2a864886f70d01050c"!=r(e,c[0]))throw new Error("this only supports pkcs5PBKDF2");var u=n(e,c[1]);if(u.length<2)throw new Error("malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+u.length);i.pbkdf2Salt=r(e,u[0]);var d=r(e,u[1]);try{i.pbkdf2Iter=parseInt(d,16)}catch(h){throw new Error("malformed format pbkdf2Iter: "+d)}return i},getPBKDF2KeyHexFromParam:function(e,t){var n=l.enc.Hex.parse(e.pbkdf2Salt),r=e.pbkdf2Iter,i=l.PBKDF2(t,n,{keySize:6,iterations:r}),a=l.enc.Hex.stringify(i);return a},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(e,t){var n=Qn(e,"ENCRYPTED PRIVATE KEY"),r=this.parseHexOfEncryptedPKCS8(n),i=Mr.getPBKDF2KeyHexFromParam(r,t),a={};a.ciphertext=l.enc.Hex.parse(r.ciphertext);var o=l.enc.Hex.parse(i),s=l.enc.Hex.parse(r.encryptionSchemeIV),c=l.TripleDES.decrypt(a,o,{iv:s}),u=l.enc.Hex.stringify(c);return u},parsePBES2:function(e){var t=xn.parse(e);if("pkcs5PBES2"!=Dr(t,"seq.0.seq.0.oid")||"pkcs5PBKDF2"!=Dr(t,"seq.0.seq.1.seq.0.seq.0.oid"))throw new Error("not pkcs5PBES2 and pkcs5PBKDF2 used");var n=Dr(t,"seq.0.seq.1.seq.0.seq.1.seq");if(void 0==n)throw new Error("PBKDF2 parameter not found");var r=Dr(n,"0.octstr.hex"),i=Dr(n,"1.int.hex"),a=Dr(n,"2.seq.0.oid","hmacWithSHA1"),o=-1;try{o=parseInt(i,16)}catch(d){throw new Error("iter not proper value")}var s=Dr(t,"seq.0.seq.1.seq.1.seq.0.oid"),l=Dr(t,"seq.0.seq.1.seq.1.seq.1.octstr.hex"),c=Dr(t,"seq.1.octstr.hex");if(void 0==s||void 0==l||void 0==c)throw new Error("encalg, enciv or enc is undefined");var u={salt:r,iter:o,prf:a,encalg:s,enciv:l,enc:c};return u},getDKFromPBES2Param:function(e,t){var n={hmacWithSHA1:l.algo.SHA1,hmacWithSHA224:l.algo.SHA224,hmacWithSHA256:l.algo.SHA256,hmacWithSHA384:l.algo.SHA384,hmacWithSHA512:l.algo.SHA512},r={"des-EDE3-CBC":6,"aes128-CBC":4,"aes256-CBC":8},i=n[e.prf];if(void 0==i)throw new Error("unsupported prf");var a=r[e.encalg];if(void 0==a)throw new Error("unsupported encalg");var o=l.enc.Hex.parse(e.salt),s=e.iter;try{var c=l.PBKDF2(t,o,{keySize:a,iterations:s,hasher:i});return l.enc.Hex.stringify(c)}catch(It){throw new Error("PBKDF2 error: "+It+" "+JSON.stringify(e)+" "+t)}},getPlainHexFromEncryptedPKCS8PEM:function(e,t){if(-1==e.indexOf("BEGIN ENCRYPTED PRIVATE KEY"))throw new Error("not Encrypted PKCS#8 PEM string");var n,r=Qn(e);try{n=Mr.parsePBES2(r)}catch(a){throw new Error("malformed PBES2 format: "+a.message)}var i=Mr.getDKFromPBES2Param(n,t);return _n.crypto.Cipher.decrypt(n.enc,i,n.encalg,{iv:n.enciv})},getKeyFromEncryptedPKCS8PEM:function(e,t){var n=this.getPlainHexFromEncryptedPKCS8PEM(e,t),r=this.getKeyFromPlainPrivatePKCS8Hex(n);return r},parsePlainPrivatePKCS8Hex:function(e){var t=xn,n=t.getChildIdx,r=t.getV,i={algparam:null};if("30"!=e.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var a=n(e,0);if(a.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=e.substr(a[1],2))throw new Error("malformed PKCS8 private key(code:003)");var o=n(e,a[1]);if(2!=o.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=e.substr(o[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(i.algoid=r(e,o[0]),"06"==e.substr(o[1],2)&&(i.algparam=r(e,o[1])),"04"!=e.substr(a[2],2))throw new Error("malformed PKCS8 private key(code:006)");return i.keyidx=t.getVidx(e,a[2]),i},getKeyFromPlainPrivatePKCS8PEM:function(e){var t=Qn(e,"PRIVATE KEY"),n=this.getKeyFromPlainPrivatePKCS8Hex(t);return n},getKeyFromPlainPrivatePKCS8Hex:function(e){var t,n=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==n.algoid)t=new Ut;else if("2a8648ce380401"==n.algoid)t=new _n.crypto.DSA;else{if("2a8648ce3d0201"!=n.algoid)throw new Error("unsupported private key algorithm");t=new _n.crypto.ECDSA}return t.readPKCS8PrvKeyHex(e),t},_getKeyFromPublicPKCS8Hex:function(e){var t,n=xn.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===n)t=new Ut;else if("2a8648ce380401"===n)t=new _n.crypto.DSA;else{if("2a8648ce3d0201"!==n)throw new Error("unsupported PKCS#8 public key hex");t=new _n.crypto.ECDSA}return t.readPKCS8PubKeyHex(e),t},parsePublicRawRSAKeyHex:function(e){var t=xn,n=t.getChildIdx,r=t.getV,i={};if("30"!=e.substr(0,2))throw new Error("malformed RSA key(code:001)");var a=n(e,0);if(2!=a.length)throw new Error("malformed RSA key(code:002)");if("02"!=e.substr(a[0],2))throw new Error("malformed RSA key(code:003)");if(i.n=r(e,a[0]),"02"!=e.substr(a[1],2))throw new Error("malformed RSA key(code:004)");return i.e=r(e,a[1]),i},parsePublicPKCS8Hex:function(e){var t=xn,n=t.getChildIdx,r=t.getV,i={algparam:null},a=n(e,0);if(2!=a.length)throw new Error("outer DERSequence shall have 2 elements: "+a.length);var o=a[0];if("30"!=e.substr(o,2))throw new Error("malformed PKCS8 public key(code:001)");var s=n(e,o);if(2!=s.length)throw new Error("malformed PKCS8 public key(code:002)");if("06"!=e.substr(s[0],2))throw new Error("malformed PKCS8 public key(code:003)");if(i.algoid=r(e,s[0]),"06"==e.substr(s[1],2)?i.algparam=r(e,s[1]):"30"==e.substr(s[1],2)&&(i.algparam={},i.algparam.p=t.getVbyList(e,s[1],[0],"02"),i.algparam.q=t.getVbyList(e,s[1],[1],"02"),i.algparam.g=t.getVbyList(e,s[1],[2],"02")),"03"!=e.substr(a[1],2))throw new Error("malformed PKCS8 public key(code:004)");return i.key=r(e,a[1]).substr(2),i}}}();Mr.getKey=function(e,t,n){var r=xn,i=r.getChildIdx,a=(r.getV,r.getVbyList),o=_n.crypto,s=o.ECDSA,l=o.DSA,c=Ut,u=Qn,d=Mr;if("undefined"!=typeof c&&e instanceof c)return e;if("undefined"!=typeof s&&e instanceof s)return e;if("undefined"!=typeof l&&e instanceof l)return e;if(void 0!==e.curve&&void 0!==e.xy&&void 0===e.d)return new s({pub:e.xy,curve:e.curve});if(void 0!==e.curve&&void 0!==e.d)return new s({prv:e.d,curve:e.curve});if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d){var h=new c;return h.setPublic(e.n,e.e),h}if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.co&&void 0===e.qi){h=new c;return h.setPrivateEx(e.n,e.e,e.d,e.p,e.q,e.dp,e.dq,e.co),h}if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0===e.p){h=new c;return h.setPrivate(e.n,e.e,e.d),h}if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0===e.x){h=new l;return h.setPublic(e.p,e.q,e.g,e.y),h}if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0!==e.x){h=new l;return h.setPrivate(e.p,e.q,e.g,e.y,e.x),h}if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d){h=new c;return h.setPublic(Mn(e.n),Mn(e.e)),h}if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.qi){h=new c;return h.setPrivateEx(Mn(e.n),Mn(e.e),Mn(e.d),Mn(e.p),Mn(e.q),Mn(e.dp),Mn(e.dq),Mn(e.qi)),h}if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d){h=new c;return h.setPrivate(Mn(e.n),Mn(e.e),Mn(e.d)),h}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0===e.d){var p=new s({curve:e.crv}),f=p.ecparams.keycharlen,m=("0000000000"+Mn(e.x)).slice(-f),g=("0000000000"+Mn(e.y)).slice(-f),b="04"+m+g;return p.setPublicKeyHex(b),p}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0!==e.d){p=new s({curve:e.crv}),f=p.ecparams.keycharlen,m=("0000000000"+Mn(e.x)).slice(-f),g=("0000000000"+Mn(e.y)).slice(-f),b="04"+m+g;var y=("0000000000"+Mn(e.d)).slice(-f);return p.setPublicKeyHex(b),p.setPrivateKeyHex(y),p}if("pkcs5prv"===n){var w,E=e;r=xn;if(w=i(E,0),9===w.length)h=new c,h.readPKCS5PrvKeyHex(E);else if(6===w.length)h=new l,h.readPKCS5PrvKeyHex(E);else{if(!(w.length>2&&"04"===E.substr(w[1],2)))throw new Error("unsupported PKCS#1/5 hexadecimal key");h=new s,h.readPKCS5PrvKeyHex(E)}return h}if("pkcs8prv"===n){h=d.getKeyFromPlainPrivatePKCS8Hex(e);return h}if("pkcs8pub"===n)return d._getKeyFromPublicPKCS8Hex(e);if("x509pub"===n)return Ur.getPublicKeyFromCertHex(e);if(-1!=e.indexOf("-END CERTIFICATE-",0)||-1!=e.indexOf("-END X509 CERTIFICATE-",0)||-1!=e.indexOf("-END TRUSTED CERTIFICATE-",0))return Ur.getPublicKeyFromCertPEM(e);if(-1!=e.indexOf("-END PUBLIC KEY-")){var _=Qn(e,"PUBLIC KEY");return d._getKeyFromPublicPKCS8Hex(_)}if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var S=u(e,"RSA PRIVATE KEY");return d.getKey(S,null,"pkcs5prv")}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var k=u(e,"DSA PRIVATE KEY"),x=a(k,0,[1],"02"),A=a(k,0,[2],"02"),N=a(k,0,[3],"02"),C=a(k,0,[4],"02"),T=a(k,0,[5],"02");h=new l;return h.setPrivate(new v(x,16),new v(A,16),new v(N,16),new v(C,16),new v(T,16)),h}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){S=u(e,"EC PRIVATE KEY");return d.getKey(S,null,"pkcs5prv")}if(-1!=e.indexOf("-END PRIVATE KEY-"))return d.getKeyFromPlainPrivatePKCS8PEM(e);if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var R=d.getDecryptedKeyHex(e,t),O=new Ut;return O.readPKCS5PrvKeyHex(R),O}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){k=d.getDecryptedKeyHex(e,t),h=a(k,0,[1],"04");var I=a(k,0,[2,0],"06"),L=a(k,0,[3,0],"03").substr(2),D="";if(void 0===_n.crypto.OID.oidhex2name[I])throw new Error("undefined OID(hex) in KJUR.crypto.OID: "+I);D=_n.crypto.OID.oidhex2name[I];p=new s({curve:D});return p.setPublicKeyHex(L),p.setPrivateKeyHex(h),p.isPublic=!1,p}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){k=d.getDecryptedKeyHex(e,t),x=a(k,0,[1],"02"),A=a(k,0,[2],"02"),N=a(k,0,[3],"02"),C=a(k,0,[4],"02"),T=a(k,0,[5],"02"),h=new l;return h.setPrivate(new v(x,16),new v(A,16),new v(N,16),new v(C,16),new v(T,16)),h}if(-1!=e.indexOf("-END ENCRYPTED PRIVATE KEY-"))return d.getKeyFromEncryptedPKCS8PEM(e,t);throw new Error("not supported argument")},Mr.generateKeypair=function(e,t){if("RSA"==e){var n=t,r=new Ut;r.generate(n,"10001"),r.isPrivate=!0,r.isPublic=!0;var i=new Ut,a=r.n.toString(16),o=r.e.toString(16);i.setPublic(a,o),i.isPrivate=!1,i.isPublic=!0;var s={};return s.prvKeyObj=r,s.pubKeyObj=i,s}if("EC"==e){var l=t,c=new _n.crypto.ECDSA({curve:l}),u=c.generateKeyPairHex();r=new _n.crypto.ECDSA({curve:l});r.setPublicKeyHex(u.ecpubhex),r.setPrivateKeyHex(u.ecprvhex),r.isPrivate=!0,r.isPublic=!1;i=new _n.crypto.ECDSA({curve:l});i.setPublicKeyHex(u.ecpubhex),i.isPrivate=!1,i.isPublic=!0;s={};return s.prvKeyObj=r,s.pubKeyObj=i,s}throw new Error("unknown algorithm: "+e)},Mr.getPEM=function(e,t,n,r,i,a){var o=_n,s=o.asn1,l=s.DERObjectIdentifier,c=s.DERInteger,u=s.ASN1Util.newObject,d=s.x509,h=d.SubjectPublicKeyInfo,p=o.crypto,f=p.DSA,m=p.ECDSA,g=Ut;function v(e){var t=u({seq:[{int:0},{int:{bigint:e.n}},{int:e.e},{int:{bigint:e.d}},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.dmp1}},{int:{bigint:e.dmq1}},{int:{bigint:e.coeff}}]});return t}function b(e){var t=u({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a0",!0,{oid:{name:e.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]});return t}function y(e){var t=u({seq:[{int:0},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}},{int:{bigint:e.y}},{int:{bigint:e.x}}]});return t}if((void 0!==g&&e instanceof g||void 0!==f&&e instanceof f||void 0!==m&&e instanceof m)&&1==e.isPublic&&(void 0===t||"PKCS8PUB"==t)){var w=new h(e),E=w.tohex();return Yn(E,"PUBLIC KEY")}if("PKCS1PRV"==t&&void 0!==g&&e instanceof g&&(void 0===n||null==n)&&1==e.isPrivate){w=v(e),E=w.tohex();return Yn(E,"RSA PRIVATE KEY")}if("PKCS1PRV"==t&&void 0!==m&&e instanceof m&&(void 0===n||null==n)&&1==e.isPrivate){var _=new l({name:e.curveName}),S=_.tohex(),k=b(e),x=k.tohex(),A="";return A+=Yn(S,"EC PARAMETERS"),A+=Yn(x,"EC PRIVATE KEY"),A}if("PKCS1PRV"==t&&void 0!==f&&e instanceof f&&(void 0===n||null==n)&&1==e.isPrivate){w=y(e),E=w.tohex();return Yn(E,"DSA PRIVATE KEY")}if("PKCS5PRV"==t&&void 0!==g&&e instanceof g&&void 0!==n&&null!=n&&1==e.isPrivate){w=v(e),E=w.tohex();return void 0===r&&(r="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",E,n,r,a)}if("PKCS5PRV"==t&&void 0!==m&&e instanceof m&&void 0!==n&&null!=n&&1==e.isPrivate){w=b(e),E=w.tohex();return void 0===r&&(r="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",E,n,r,a)}if("PKCS5PRV"==t&&void 0!==f&&e instanceof f&&void 0!==n&&null!=n&&1==e.isPrivate){w=y(e),E=w.tohex();return void 0===r&&(r="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",E,n,r,a)}var N=function(e,t){if("string"==typeof t)return Mr.getEncryptedPKCS8PEM(e,t);if("object"==typeof t&&void 0!=Dr(t,"passcode")){var n=JSON.parse(JSON.stringify(t)),r=n.passcode;return delete n.passcode,Mr.getEncryptedPKCS8PEM(e,r,n)}};if("PKCS8PRV"==t&&void 0!=g&&e instanceof g&&1==e.isPrivate){var C=v(e),T=C.tohex();w=u({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:T}}]}),E=w.tohex();return void 0===n||null==n?Yn(E,"PRIVATE KEY"):N(E,n)}if("PKCS8PRV"==t&&void 0!==m&&e instanceof m&&1==e.isPrivate){var R={seq:[{int:1},{octstr:{hex:e.prvKeyHex}}]};"string"==typeof e.pubKeyHex&&R.seq.push({tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]});C=new u(R),T=C.tohex(),w=u({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:e.curveName}}]},{octstr:{hex:T}}]}),E=w.tohex();return void 0===n||null==n?Yn(E,"PRIVATE KEY"):N(E,n)}if("PKCS8PRV"==t&&void 0!==f&&e instanceof f&&1==e.isPrivate){C=new c({bigint:e.x}),T=C.tohex(),w=u({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]}]},{octstr:{hex:T}}]}),E=w.tohex();return void 0===n||null==n?Yn(E,"PRIVATE KEY"):N(E,n)}throw new Error("unsupported object nor format")},Mr.getKeyFromCSRPEM=function(e){var t=Qn(e,"CERTIFICATE REQUEST"),n=Mr.getKeyFromCSRHex(t);return n},Mr.getKeyFromCSRHex=function(e){var t=Mr.parseCSRHex(e),n=Mr.getKey(t.p8pubkeyhex,null,"pkcs8pub");return n},Mr.parseCSRHex=function(e){var t=xn,n=t.getChildIdx,r=t.getTLV,i={},a=e;if("30"!=a.substr(0,2))throw new Error("malformed CSR(code:001)");var o=n(a,0);if(o.length<1)throw new Error("malformed CSR(code:002)");if("30"!=a.substr(o[0],2))throw new Error("malformed CSR(code:003)");var s=n(a,o[0]);if(s.length<3)throw new Error("malformed CSR(code:004)");return i.p8pubkeyhex=r(a,s[2]),i},Mr.getKeyID=function(e){var t=Mr,n=xn;"string"===typeof e&&-1!=e.indexOf("BEGIN ")&&(e=t.getKey(e));var r=Qn(t.getPEM(e)),i=n.getIdxbyList(r,0,[1]),a=n.getV(r,i).substring(2);return _n.crypto.Util.hashHex(a,"sha1")},Mr.getJWK=function(e,t,n,r,i){var a,o,s={},l=_n.crypto.Util.hashHex;if("string"==typeof e)a=Mr.getKey(e),-1!=e.indexOf("CERTIFICATE")&&(o=Qn(e));else{if("object"!=typeof e)throw new Error("unsupported keyinfo type");e instanceof Ur?(a=e.getPublicKey(),o=e.hex):a=e}if(a instanceof Ut&&a.isPrivate)s.kty="RSA",s.n=Pn(a.n.toString(16)),s.e=Pn(a.e.toString(16)),s.d=Pn(a.d.toString(16)),s.p=Pn(a.p.toString(16)),s.q=Pn(a.q.toString(16)),s.dp=Pn(a.dmp1.toString(16)),s.dq=Pn(a.dmq1.toString(16)),s.qi=Pn(a.coeff.toString(16));else if(a instanceof Ut&&a.isPublic)s.kty="RSA",s.n=Pn(a.n.toString(16)),s.e=Pn(a.e.toString(16));else if(a instanceof _n.crypto.ECDSA&&a.isPrivate){var c=a.getShortNISTPCurveName();if("P-256"!==c&&"P-384"!==c&&"P-521"!==c)throw new Error("unsupported curve name for JWT: "+c);var u=a.getPublicKeyXYHex();s.kty="EC",s.crv=c,s.x=Pn(u.x),s.y=Pn(u.y),s.d=Pn(a.prvKeyHex)}else if(a instanceof _n.crypto.ECDSA&&a.isPublic){c=a.getShortNISTPCurveName();if("P-256"!==c&&"P-384"!==c&&"P-521"!==c)throw new Error("unsupported curve name for JWT: "+c);u=a.getPublicKeyXYHex();s.kty="EC",s.crv=c,s.x=Pn(u.x),s.y=Pn(u.y)}if(void 0==s.kty)throw new Error("unsupported keyinfo");return a.isPrivate||1==t||(s.kid=_n.jws.JWS.getJWKthumbprint(s)),void 0!=o&&1!=n&&(s.x5c=[h(o)]),void 0!=o&&1!=r&&(s.x5t=Ln(h(l(o,"sha1")))),void 0!=o&&1!=i&&(s["x5t#S256"]=Ln(h(l(o,"sha256")))),s},Mr.getJWKFromKey=function(e){return Mr.getJWK(e,!0,!0,!0,!0)},Ut.getPosArrayOfChildrenFromHex=function(e){return xn.getChildIdx(e,0)},Ut.getHexValueArrayOfChildrenFromHex=function(e){var t=xn,n=t.getV,r=Ut.getPosArrayOfChildrenFromHex(e),i=n(e,r[0]),a=n(e,r[1]),o=n(e,r[2]),s=n(e,r[3]),l=n(e,r[4]),c=n(e,r[5]),u=n(e,r[6]),d=n(e,r[7]),h=n(e,r[8]);r=new Array;return r.push(i,a,o,s,l,c,u,d,h),r},Ut.prototype.readPrivateKeyFromPEMString=function(e){var t=Qn(e),n=Ut.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8])},Ut.prototype.readPKCS5PrvKeyHex=function(e){var t=Ut.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},Ut.prototype.readPKCS8PrvKeyHex=function(e){var t,n,r,i,a,o,s,l,c=xn,u=c.getVbyListEx;if(!1===c.isASN1HEX(e))throw new Error("not ASN.1 hex string");try{t=u(e,0,[2,0,1],"02"),n=u(e,0,[2,0,2],"02"),r=u(e,0,[2,0,3],"02"),i=u(e,0,[2,0,4],"02"),a=u(e,0,[2,0,5],"02"),o=u(e,0,[2,0,6],"02"),s=u(e,0,[2,0,7],"02"),l=u(e,0,[2,0,8],"02")}catch(d){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(t,n,r,i,a,o,s,l)},Ut.prototype.readPKCS5PubKeyHex=function(e){var t=xn,n=t.getV;if(!1===t.isASN1HEX(e))throw new Error("keyHex is not ASN.1 hex string");var r=t.getChildIdx(e,0);if(2!==r.length||"02"!==e.substr(r[0],2)||"02"!==e.substr(r[1],2))throw new Error("wrong hex for PKCS#5 public key");var i=n(e,r[0]),a=n(e,r[1]);this.setPublic(i,a)},Ut.prototype.readPKCS8PubKeyHex=function(e){var t=xn;if(!1===t.isASN1HEX(e))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==t.getTLVbyListEx(e,0,[0,0]))throw new Error("not PKCS8 RSA public key");var n=t.getTLVbyListEx(e,0,[1,0]);this.readPKCS5PubKeyHex(n)},Ut.prototype.readCertPubKeyHex=function(e,t){var n,r;n=new Ur,n.readCertHex(e),r=n.getPublicKeyHex(),this.readPKCS8PubKeyHex(r)};function Br(e,t){for(var n="",r=t/4-e.length,i=0;i<r;i++)n+="0";return n+e}function Fr(e,t,n){var r="",i=0;while(r.length<t)r+=Kn(n(Hn(e+String.fromCharCode.apply(String,[(4278190080&i)>>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return r}function $r(e){for(var t in _n.crypto.Util.DIGESTINFOHEAD){var n=_n.crypto.Util.DIGESTINFOHEAD[t],r=n.length;if(e.substring(0,r)==n){var i=[t,e.substring(r)];return i}}return[]}function Ur(e){var t,n=xn,r=n.getChildIdx,i=n.getV,a=(n.dump,n.parse),o=n.getTLV,s=n.getVbyList,l=n.getVbyListEx,c=n.getTLVbyList,u=n.getTLVbyListEx,d=n.getIdxbyList,h=n.getIdxbyListEx,p=n.getVidx,f=n.getInt,m=n.oidname,g=n.hextooidstr,v=Qn,b=Error;try{t=_n.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(It){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var e=c(this.hex,0,[0,0]);if("a0"==e.substr(0,2)){var t=c(e,0,[0]),n=f(t,0);if(n<0||2<n)throw new Error("malformed version field");return this.version=n+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return l(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var e=u(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(e)},this.getAlgorithmIdentifierName=function(e){for(var n in t)if(e===t[n])return n;return m(l(e,0,[0],"06"))},this.getIssuer=function(e,t){return this.getX500Name(this.getIssuerHex(),e,t)},this.getIssuerHex=function(){return c(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){var e=this.getIssuer();return e.str},this.getSubject=function(e,t){return this.getX500Name(this.getSubjectHex(),e,t)},this.getSubjectHex=function(){return c(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){var e=this.getSubject();return e.str},this.getNotBefore=function(){var e=s(this.hex,0,[0,4+this.foffset,0]);return e=e.replace(/(..)/g,"%$1"),e=decodeURIComponent(e),e},this.getNotAfter=function(){var e=s(this.hex,0,[0,4+this.foffset,1]);return e=e.replace(/(..)/g,"%$1"),e=decodeURIComponent(e),e},this.getPublicKeyHex=function(){return this.getSPKI()},this.getSPKI=function(){return c(this.hex,0,[0,6+this.foffset],"30")},this.getSPKIValue=function(){var e=this.getSPKI();return null==e?null:s(e,0,[1],"03",!0)},this.getPublicKeyIdx=function(){return d(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var e=this.getPublicKeyIdx();return d(this.hex,e,[1,0],"30")},this.getPublicKey=function(){return Mr.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var e=c(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(e)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),n=this.getSignatureValueHex(),r=c(this.hex,0,[0],"30"),i=new _n.crypto.Signature({alg:t});return i.init(e),i.updateHex(r),i.verify(n)},this.parseExt=function(e){var t,a,o;if(void 0===e){if(o=this.hex,3!==this.version)return-1;t=d(o,0,[0,7,0],"30"),a=r(o,t)}else{o=Qn(e);var l=d(o,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=i(o,l))return void(this.aExtInfo=new Array);t=d(o,0,[0,3,0,1,0],"30"),a=r(o,t),this.hex=o}this.aExtInfo=new Array;for(var c=0;c<a.length;c++){var u={critical:!1},h=r(o,a[c]),f=0;3===h.length&&(u.critical=!0,f=1),u.oid=n.hextooidstr(s(o,a[c],[0],"06"));var m=d(o,a[c],[1+f]);u.vidx=p(o,m),this.aExtInfo.push(u)}},this.getExtInfo=function(e){var t=this.aExtInfo,n=e;if(e.match(/^[0-9.]+$/)||(n=_n.asn1.x509.OID.name2oid(e)),""!==n)for(var r=0;r<t.length;r++)if(t[r].oid===n)return t[r]},this.getCriticalExtV=function(e,t,n){if(void 0!=t)return[t,n];var r=this.getExtInfo(e);return void 0==r?[null,null]:[o(this.hex,r.vidx),r.critical]},this.getExtBasicConstraints=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("basicConstraints");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"basicConstraints"};if(t&&(r.critical=!0),"3000"===e)return r;if("30030101ff"===e)return r.cA=!0,r;if("30060101ff02"===e.substr(0,12)){var a=i(e,10),s=parseInt(a,16);return r.cA=!0,r.pathLen=s,r}throw new Error("hExtV parse error: "+e)},this.getExtNameConstraints=function(e,t){var n=this.getCriticalExtV("nameConstraints",e,t);if(e=n[0],t=n[1],null!=e){var i={extname:"nameConstraints"};t&&(i.critical=!0);for(var a=r(e,0),s=0;s<a.length;s++){for(var l=[],c=r(e,a[s]),u=0;u<c.length;u++){var d=o(e,c[u]),h=this.getGeneralSubtree(d);l.push(h)}var p=e.substr(a[s],2);"a0"==p?i.permit=l:"a1"==p&&(i.exclude=l)}return i}},this.getGeneralSubtree=function(e){var t=r(e,0),n=t.length;if(n<1||2<n)throw new Error("wrong num elements");for(var a=this.getGeneralName(o(e,t[0])),s=1;s<n;s++){var l=e.substr(t[s],2),c=i(e,t[s]),u=parseInt(c,16);"80"==l&&(a.min=u),"81"==l&&(a.max=u)}return a},this.getExtKeyUsage=function(e,t){var n=this.getCriticalExtV("keyUsage",e,t);if(e=n[0],t=n[1],null!=e){var r={extname:"keyUsage"};return t&&(r.critical=!0),r.names=this.getExtKeyUsageString(e).split(","),r}},this.getExtKeyUsageBin=function(e){if(void 0===e){var t=this.getExtInfo("keyUsage");if(void 0===t)return"";e=o(this.hex,t.vidx)}if(8!=e.length&&10!=e.length)throw new Error("malformed key usage value: "+e);var n="000000000000000"+parseInt(e.substr(6),16).toString(2);return 8==e.length&&(n=n.slice(-8)),10==e.length&&(n=n.slice(-16)),n=n.replace(/0+$/,""),""==n&&(n="0"),n},this.getExtKeyUsageString=function(e){for(var t=this.getExtKeyUsageBin(e),n=new Array,r=0;r<t.length;r++)"1"==t.substr(r,1)&&n.push(Ur.KEYUSAGE_NAME[r]);return n.join(",")},this.getExtSubjectKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("subjectKeyIdentifier");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"subjectKeyIdentifier"};t&&(r.critical=!0);var a=i(e,0);return r.kid={hex:a},r},this.getExtAuthorityKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("authorityKeyIdentifier");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var a={extname:"authorityKeyIdentifier"};t&&(a.critical=!0);for(var s=r(e,0),l=0;l<s.length;l++){var c=e.substr(s[l],2);if("80"===c&&(a.kid={hex:i(e,s[l])}),"a1"===c){var u=o(e,s[l]),d=this.getGeneralNames(u);a.issuer=d[0]["dn"]}"82"===c&&(a.sn={hex:i(e,s[l])})}return a},this.getExtExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("extKeyUsage");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var a={extname:"extKeyUsage",array:[]};t&&(a.critical=!0);for(var s=r(e,0),l=0;l<s.length;l++)a.array.push(m(i(e,s[l])));return a},this.getExtExtKeyUsageName=function(){var e=this.getExtInfo("extKeyUsage");if(void 0===e)return e;var t=new Array,n=o(this.hex,e.vidx);if(""===n)return t;for(var a=r(n,0),s=0;s<a.length;s++)t.push(m(i(n,a[s])));return t},this.getExtSubjectAltName=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("subjectAltName");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"subjectAltName",array:[]};return t&&(r.critical=!0),r.array=this.getGeneralNames(e),r},this.getExtIssuerAltName=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("issuerAltName");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"issuerAltName",array:[]};return t&&(r.critical=!0),r.array=this.getGeneralNames(e),r},this.getGeneralNames=function(e){for(var t=r(e,0),n=[],i=0;i<t.length;i++){var a=this.getGeneralName(o(e,t[i]));void 0!==a&&n.push(a)}return n},this.getGeneralName=function(e){var t=e.substr(0,2),n=i(e,0),r=Kn(n);return"81"==t?{rfc822:r}:"82"==t?{dns:r}:"86"==t?{uri:r}:"87"==t?{ip:dr(n)}:"a4"==t?{dn:this.getX500Name(n)}:"a0"==t?{other:this.getOtherName(e)}:void 0},this.getExtSubjectAltName2=function(){var e,t,n,a=this.getExtInfo("subjectAltName");if(void 0===a)return a;for(var s=new Array,l=o(this.hex,a.vidx),c=r(l,0),u=0;u<c.length;u++)n=l.substr(c[u],2),e=i(l,c[u]),"81"===n&&(t=Un(e),s.push(["MAIL",t])),"82"===n&&(t=Un(e),s.push(["DNS",t])),"84"===n&&(t=Ur.hex2dn(e,0),s.push(["DN",t])),"86"===n&&(t=Un(e),s.push(["URI",t])),"87"===n&&(t=dr(e),s.push(["IP",t]));return s},this.getExtCRLDistributionPoints=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("cRLDistributionPoints");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"cRLDistributionPoints",array:[]};t&&(i.critical=!0);for(var a=r(e,0),s=0;s<a.length;s++){var l=o(e,a[s]);i.array.push(this.getDistributionPoint(l))}return i},this.getDistributionPoint=function(e){for(var t={},n=r(e,0),i=0;i<n.length;i++){var a=e.substr(n[i],2),s=o(e,n[i]);"a0"==a&&(t.dpname=this.getDistributionPointName(s))}return t},this.getDistributionPointName=function(e){for(var t={},n=r(e,0),i=0;i<n.length;i++){var a=e.substr(n[i],2),s=o(e,n[i]);"a0"==a&&(t.full=this.getGeneralNames(s))}return t},this.getExtCRLDistributionPointsURI=function(){var e=this.getExtCRLDistributionPoints();if(void 0==e)return e;for(var t=e.array,n=[],r=0;r<t.length;r++)try{void 0!=t[r].dpname.full[0].uri&&n.push(t[r].dpname.full[0].uri)}catch(i){}return n},this.getExtAIAInfo=function(){var e=this.getExtInfo("authorityInfoAccess");if(void 0===e)return e;for(var t={ocsp:[],caissuer:[]},n=r(this.hex,e.vidx),i=0;i<n.length;i++){var a=s(this.hex,n[i],[0],"06"),o=s(this.hex,n[i],[1],"86");"2b06010505073001"===a&&t.ocsp.push(Un(o)),"2b06010505073002"===a&&t.caissuer.push(Un(o))}return t},this.getExtAuthorityInfoAccess=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("authorityInfoAccess");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"authorityInfoAccess",array:[]};t&&(i.critical=!0);for(var a=r(e,0),c=0;c<a.length;c++){var u=l(e,a[c],[0],"06"),d=s(e,a[c],[1],"86"),h=Un(d);if("2b06010505073001"==u)i.array.push({ocsp:h});else{if("2b06010505073002"!=u)throw new Error("unknown method: "+u);i.array.push({caissuer:h})}}return i},this.getExtCertificatePolicies=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("certificatePolicies");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"certificatePolicies",array:[]};t&&(i.critical=!0);for(var a=r(e,0),s=0;s<a.length;s++){var l=o(e,a[s]),c=this.getPolicyInformation(l);i.array.push(c)}return i},this.getPolicyInformation=function(e){var t={},n=s(e,0,[0],"06");t.policyoid=m(n);var i=h(e,0,[1],"30");if(-1!=i){t.array=[];for(var a=r(e,i),l=0;l<a.length;l++){var c=o(e,a[l]),u=this.getPolicyQualifierInfo(c);t.array.push(u)}}return t},this.getOtherName=function(e){var t={},n=r(e,0),i=s(e,n[0],[],"06"),o=s(e,n[1],[]);return t.oid=m(i),t.value=a(o),t},this.getPolicyQualifierInfo=function(e){var t={},n=s(e,0,[0],"06");if("2b06010505070201"===n){var r=l(e,0,[1],"16");t.cps=Kn(r)}else if("2b06010505070202"===n){var i=c(e,0,[1],"30");t.unotice=this.getUserNotice(i)}return t},this.getUserNotice=function(e){var t=null;try{t=n.parse(e);var r=this._asn1ToUnotice(t);return r}catch(i){return}},this._asn1ToUnotice=function(e){try{for(var t={},n=Dr(e,"seq"),r=0;r<n.length;r++){var i=this._asn1ToNoticeRef(n[r]);void 0!=i&&(t.noticeref=i);var a=this.asn1ToDisplayText(n[r]);void 0!=a&&(t.exptext=a)}return Object.keys(t).length>0?t:void 0}catch(o){return}},this._asn1ToNoticeRef=function(e){try{for(var t={},n=Dr(e,"seq"),r=0;r<n.length;r++){var i=this._asn1ToNoticeNum(n[r]);void 0!=i&&(t.noticenum=i);var a=this.asn1ToDisplayText(n[r]);void 0!=a&&(t.org=a)}return Object.keys(t).length>0?t:void 0}catch(o){return}},this._asn1ToNoticeNum=function(e){try{for(var t=Dr(e,"seq"),n=[],r=0;r<t.length;r++){var i=t[r];n.push(parseInt(Dr(i,"int.hex"),16))}return n}catch(a){return}},this.getDisplayText=function(e){var t={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"},n={};return n.type=t[e.substr(0,2)],n.str=Kn(i(e,0)),n},this.asn1ToDisplayText=function(e){return void 0!=e.utf8str?{type:"utf8",str:e.utf8str.str}:void 0!=e.ia5str?{type:"ia5",str:e.ia5str.str}:void 0!=e.visstr?{type:"vis",str:e.visstr.str}:void 0!=e.bmpstr?{type:"bmp",str:e.bmpstr.str}:void 0!=e.prnstr?{type:"prn",str:e.prnstr.str}:void 0},this.getExtPolicyMappings=function(e,t){var n=this.getCriticalExtV("policyMappings",e,t);if(e=n[0],t=n[1],null!=e){var r={extname:"policyMappings"};t&&(r.critical=!0);try{for(var i=a(e),o=i.seq,s=[],l=0;l<o.length;l++){var c=o[l].seq;s.push([c[0].oid,c[1].oid])}r.array=s}catch(u){throw new b("malformed policyMappings")}return r}},this.getExtPolicyConstraints=function(e,t){var n=this.getCriticalExtV("policyConstraints",e,t);if(e=n[0],t=n[1],null!=e){var r={extname:"policyConstraints"};t&&(r.critical=!0);var i=a(e);try{for(var o=i.seq,s=0;s<o.length;s++){var l=o[s].tag;0==l.explicit&&("80"==l.tag&&(r.reqexp=parseInt(l.hex,16)),"81"==l.tag&&(r.inhibit=parseInt(l.hex,16)))}}catch(c){return new b("malformed policyConstraints value")}return r}},this.getExtInhibitAnyPolicy=function(e,t){var n=this.getCriticalExtV("inhibitAnyPolicy",e,t);if(e=n[0],t=n[1],null!=e){var r={extname:"inhibitAnyPolicy"};t&&(r.critical=!0);var i=f(e,0);return-1==i?new b("wrong value"):(r.skip=i,r)}},this.getExtCRLNumber=function(e,t){var n={extname:"cRLNumber"};if(t&&(n.critical=!0),"02"==e.substr(0,2))return n.num={hex:i(e,0)},n;throw new b("hExtV parse error: "+e)},this.getExtCRLReason=function(e,t){var n={extname:"cRLReason"};if(t&&(n.critical=!0),"0a"==e.substr(0,2))return n.code=parseInt(i(e,0),16),n;throw new Error("hExtV parse error: "+e)},this.getExtOcspNonce=function(e,t){var n={extname:"ocspNonce"};t&&(n.critical=!0);var r=i(e,0);return n.hex=r,n},this.getExtOcspNoCheck=function(e,t){var n={extname:"ocspNoCheck"};return t&&(n.critical=!0),n},this.getExtAdobeTimeStamp=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("adobeTimeStamp");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"adobeTimeStamp"};t&&(i.critical=!0);var a=r(e,0);if(a.length>1){var s=o(e,a[1]),l=this.getGeneralName(s);void 0!=l.uri&&(i.uri=l.uri)}if(a.length>2){var c=o(e,a[2]);"0101ff"==c&&(i.reqauth=!0),"010100"==c&&(i.reqauth=!1)}return i},this.getExtSubjectDirectoryAttributes=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("subjectDirectoryAttributes");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"subjectDirectoryAttributes"};t&&(r.critical=!0);try{for(var i=a(e),s=[],l=0;l<i.seq.length;l++){var c=i.seq[l],u=Dr(c,"seq.0.oid"),d=Dr(c,"seq.1.set");if(void 0==u||void 0==d)throw"error";s.push({attr:u,array:d})}return r.array=s,r}catch(h){throw new Error("malformed subjectDirectoryAttributes extension value")}};var y=function(e){var t={};try{var n=e.seq[0].oid,r=_n.asn1.x509.OID.name2oid(n);t.type=_n.asn1.x509.OID.oid2atype(r);var i=e.seq[1];if(void 0!=i.utf8str)t.ds="utf8",t.value=i.utf8str.str;else if(void 0!=i.numstr)t.ds="num",t.value=i.numstr.str;else if(void 0!=i.telstr)t.ds="tel",t.value=i.telstr.str;else if(void 0!=i.prnstr)t.ds="prn",t.value=i.prnstr.str;else if(void 0!=i.ia5str)t.ds="ia5",t.value=i.ia5str.str;else if(void 0!=i.visstr)t.ds="vis",t.value=i.visstr.str;else{if(void 0==i.bmpstr)throw"error";t.ds="bmp",t.value=i.bmpstr.str}return t}catch(a){throw new Erorr("improper ASN.1 parsed AttrTypeAndValue")}},w=function(e){try{return e.set.map((function(e){return y(e)}))}catch(Pt){throw new Error("improper ASN.1 parsed RDN: "+Pt)}},E=function(e){try{return e.seq.map((function(e){return w(e)}))}catch(Pt){throw new Error("improper ASN.1 parsed X500Name: "+Pt)}};this.getX500NameRule=function(e){for(var t=null,n=[],r=0;r<e.length;r++)for(var i=e[r],a=0;a<i.length;a++)n.push(i[a]);for(r=0;r<n.length;r++){var o=n[r],s=o.ds,l=o.value,c=o.type;if("prn"!=s&&"utf8"!=s&&"ia5"!=s)return"mixed";if("ia5"==s){if("CN"!=c)return"mixed";if(_n.lang.String.isMail(l))continue;return"mixed"}if("C"==c){if("prn"==s)continue;return"mixed"}if(null==t)t=s;else if(t!==s)return"mixed"}return null==t?"prn":t},this.getAttrTypeAndValue=function(e){var t=a(e);return y(t)},this.getRDN=function(e){var t=a(e);return w(t)},this.getX500NameArray=function(e){var t=a(e);return E(t)},this.getX500Name=function(e,t,n){var r=this.getX500NameArray(e),i=this.dnarraytostr(r),a={str:i};return a.array=r,1==n&&(a.hex=e),1==t&&(a.canon=this.c14nRDNArray(r)),a},this.readCertPEM=function(e){this.readCertHex(v(e))},this.readCertHex=function(e){this.hex=e,this.getVersion();try{d(this.hex,0,[0,7],"a3"),this.parseExt()}catch(t){}},this.getParam=function(e){var t={};return void 0==e&&(e={}),t.version=this.getVersion(),t.serial={hex:this.getSerialNumberHex()},t.sigalg=this.getSignatureAlgorithmField(),t.issuer=this.getIssuer(e.dncanon,e.dnhex),t.notbefore=this.getNotBefore(),t.notafter=this.getNotAfter(),t.subject=this.getSubject(e.dncanon,e.dnhex),t.sbjpubkey=Yn(this.getPublicKeyHex(),"PUBLIC KEY"),void 0!=this.aExtInfo&&this.aExtInfo.length>0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),1==e.tbshex&&(t.tbshex=c(this.hex,0,[0])),1==e.nodnarray&&(delete t.issuer.array,delete t.subject.array),t},this.getExtParamArray=function(e){if(void 0==e){var t=h(this.hex,0,[0,"[3]"]);-1!=t&&(e=u(this.hex,0,[0,"[3]",0],"30"))}for(var n=[],i=r(e,0),a=0;a<i.length;a++){var s=o(e,i[a]),l=this.getExtParam(s);null!=l&&n.push(l)}return n},this.getExtParam=function(e){var t=r(e,0),n=t.length;if(2!=n&&3!=n)throw new Error("wrong number elements in Extension: "+n+" "+e);var i=g(s(e,0,[0],"06")),o=!1;3==n&&"0101ff"==c(e,0,[1])&&(o=!0);var l=c(e,0,[n-1,0]),u=void 0;if("2.5.29.14"==i?u=this.getExtSubjectKeyIdentifier(l,o):"2.5.29.15"==i?u=this.getExtKeyUsage(l,o):"2.5.29.17"==i?u=this.getExtSubjectAltName(l,o):"2.5.29.18"==i?u=this.getExtIssuerAltName(l,o):"2.5.29.19"==i?u=this.getExtBasicConstraints(l,o):"2.5.29.30"==i?u=this.getExtNameConstraints(l,o):"2.5.29.31"==i?u=this.getExtCRLDistributionPoints(l,o):"2.5.29.32"==i?u=this.getExtCertificatePolicies(l,o):"2.5.29.33"==i?u=this.getExtPolicyMappings(l,o):"2.5.29.35"==i?u=this.getExtAuthorityKeyIdentifier(l,o):"2.5.29.36"==i?u=this.getExtPolicyConstraints(l,o):"2.5.29.37"==i?u=this.getExtExtKeyUsage(l,o):"2.5.29.54"==i?u=this.getExtInhibitAnyPolicy(l,o):"1.3.6.1.5.5.7.1.1"==i?u=this.getExtAuthorityInfoAccess(l,o):"2.5.29.20"==i?u=this.getExtCRLNumber(l,o):"2.5.29.21"==i?u=this.getExtCRLReason(l,o):"2.5.29.9"==i?u=this.getExtSubjectDirectoryAttributes(l,o):"1.3.6.1.5.5.7.48.1.2"==i?u=this.getExtOcspNonce(l,o):"1.3.6.1.5.5.7.48.1.5"==i?u=this.getExtOcspNoCheck(l,o):"1.2.840.113583.1.1.9.1"==i?u=this.getExtAdobeTimeStamp(l,o):void 0!=Ur.EXT_PARSER[i]&&(u=Ur.EXT_PARSER[i](i,o,l)),void 0!=u)return u;var d={extname:i,extn:l};try{d.extn=a(l)}catch(h){}return o&&(d.critical=!0),d},this.findExt=function(e,t){for(var n=0;n<e.length;n++)if(e[n].extname==t)return e[n];return null},this.updateExtCDPFullURI=function(e,t){var n=this.findExt(e,"cRLDistributionPoints");if(null!=n&&void 0!=n.array)for(var r=n.array,i=0;i<r.length;i++)if(void 0!=r[i].dpname&&void 0!=r[i].dpname.full)for(var a=r[i].dpname.full,o=0;o<a.length;o++){var s=a[i];void 0!=s.uri&&(s.uri=t)}},this.updateExtAIAOCSP=function(e,t){var n=this.findExt(e,"authorityInfoAccess");if(null!=n&&void 0!=n.array)for(var r=n.array,i=0;i<r.length;i++)void 0!=r[i].ocsp&&(r[i].ocsp=t)},this.updateExtAIACAIssuer=function(e,t){var n=this.findExt(e,"authorityInfoAccess");if(null!=n&&void 0!=n.array)for(var r=n.array,i=0;i<r.length;i++)void 0!=r[i].caissuer&&(r[i].caissuer=t)},this.dnarraytostr=function(e){function t(e){return e.map((function(e){return n(e).replace(/\+/,"\\+")})).join("+")}function n(e){return e.type+"="+e.value}return"/"+e.map((function(e){return t(e).replace(/\//,"\\/")})).join("/")},this.setCanonicalizedDN=function(e){var t;if(void 0!=e.str&&void 0==e.array){var n=new _n.asn1.x509.X500Name({str:e.str}),r=n.tohex();t=this.getX500NameArray(r)}else t=e.array;void 0==e.canon&&(e.canon=this.c14nRDNArray(t))},this.c14nRDNArray=function(e){for(var t=[],n=0;n<e.length;n++){for(var r=e[n],i=[],a=0;a<r.length;a++){var o=r[a],s=o.value;s=s.replace(/^\s*/,""),s=s.replace(/\s*$/,""),s=s.replace(/\s+/g," "),s=s.toLowerCase(),i.push(o.type.toLowerCase()+"="+s)}t.push(i.join("+"))}return"/"+t.join("/")},this.getInfo=function(){var e,t,n,r=function(e){for(var t="",n=" ",r="\n",i=e.array,a=0;a<i.length;a++){var o=i[a];if(void 0!=o.dn&&(t+=n+"dn: "+o.dn.str+r),void 0!=o.ip&&(t+=n+"ip: "+o.ip+r),void 0!=o.rfc822&&(t+=n+"rfc822: "+o.rfc822+r),void 0!=o.dns&&(t+=n+"dns: "+o.dns+r),void 0!=o.uri&&(t+=n+"uri: "+o.uri+r),void 0!=o.other){var s=o.other.oid,l=JSON.stringify(o.other.value).replace(/\"/g,"");t+=n+"other: "+s+"="+l+r}}return t=t.replace(/\n$/,""),t},i=function(e){for(var t="",n=e.array,r=0;r<n.length;r++){var i=n[r];if(t+=" policy oid: "+i.policyoid+"\n",void 0!==i.array)for(var a=0;a<i.array.length;a++){var o=i.array[a];void 0!==o.cps&&(t+=" cps: "+o.cps+"\n")}}return t},a=function(e){for(var t="",n=e.array,r=0;r<n.length;r++){var i=n[r];try{void 0!==i.dpname.full[0].uri&&(t+=" "+i.dpname.full[0].uri+"\n")}catch(a){}try{void 0!==i.dname.full[0].dn.hex&&(t+=" "+Ur.hex2dn(i.dpname.full[0].dn.hex)+"\n")}catch(a){}}return t},o=function(e){for(var t="",n=e.array,r=0;r<n.length;r++){var i=n[r];void 0!==i.caissuer&&(t+=" caissuer: "+i.caissuer+"\n"),void 0!==i.ocsp&&(t+=" ocsp: "+i.ocsp+"\n")}return t};if(e="Basic Fields\n",e+=" serial number: "+this.getSerialNumberHex()+"\n",e+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",e+=" issuer: "+this.getIssuerString()+"\n",e+=" notBefore: "+this.getNotBefore()+"\n",e+=" notAfter: "+this.getNotAfter()+"\n",e+=" subject: "+this.getSubjectString()+"\n",e+=" subject public key info: \n",t=this.getPublicKey(),e+=" key algorithm: "+t.type+"\n","RSA"===t.type&&(e+=" n="+Er(t.n.toString(16)).substr(0,16)+"...\n",e+=" e="+Er(t.e.toString(16))+"\n"),n=this.aExtInfo,void 0!==n&&null!==n){e+="X509v3 Extensions:\n";for(var s=0;s<n.length;s++){var l=n[s],c=_n.asn1.x509.OID.oid2name(l.oid);""===c&&(c=l.oid);var u="";if(!0===l.critical&&(u="CRITICAL"),e+=" "+c+" "+u+":\n","basicConstraints"===c){var d=this.getExtBasicConstraints();void 0===d.cA?e+=" {}\n":(e+=" cA=true",void 0!==d.pathLen&&(e+=", pathLen="+d.pathLen),e+="\n")}else if("policyMappings"==c){var h=this.getExtPolicyMappings().array,p=h.map((function(e){var t=e;return t[0]+":"+t[1]})).join(", ");e+=" "+p+"\n"}else if("policyConstraints"==c){var f=this.getExtPolicyConstraints();e+=" ",void 0!=f.reqexp&&(e+=" reqexp="+f.reqexp),void 0!=f.inhibit&&(e+=" inhibit="+f.inhibit),e+="\n"}else if("inhibitAnyPolicy"==c){f=this.getExtInhibitAnyPolicy();e+=" skip="+f.skip+"\n"}else if("keyUsage"==c)e+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"==c)e+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"==c){var m=this.getExtAuthorityKeyIdentifier();void 0!==m.kid&&(e+=" kid="+m.kid.hex+"\n")}else if("extKeyUsage"==c){var g=this.getExtExtKeyUsage().array;e+=" "+g.join(", ")+"\n"}else if("subjectAltName"==c){var v=r(this.getExtSubjectAltName());e+=v+"\n"}else if("cRLDistributionPoints"==c){var b=this.getExtCRLDistributionPoints();e+=a(b)}else if("authorityInfoAccess"==c){var y=this.getExtAuthorityInfoAccess();e+=o(y)}else"certificatePolicies"==c&&(e+=i(this.getExtCertificatePolicies()))}}return e+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n",e+="signature: "+this.getSignatureValueHex().substr(0,16)+"...\n",e},"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?this.readCertPEM(e):_n.lang.String.isHex(e)&&this.readCertHex(e))}Ut.prototype.sign=function(e,t){var n=function(e){return _n.crypto.Util.hashString(e,t)},r=n(e);return this.signWithMessageHash(r,t)},Ut.prototype.signWithMessageHash=function(e,t){var n=_n.crypto.Util.getPaddedDigestInfoHex(e,t,this.n.bitLength()),r=$t(n,16),i=this.doPrivate(r),a=i.toString(16);return Br(a,this.n.bitLength())},Ut.prototype.signPSS=function(e,t,n){var r=function(e){return _n.crypto.Util.hashHex(e,t)},i=r(Hn(e));return void 0===n&&(n=-1),this.signWithMessageHashPSS(i,t,n)},Ut.prototype.signWithMessageHashPSS=function(e,t,n){var r,i=Kn(e),a=i.length,o=this.n.bitLength()-1,s=Math.ceil(o/8),l=function(e){return _n.crypto.Util.hashHex(e,t)};if(-1===n||void 0===n)n=a;else if(-2===n)n=s-a-2;else if(n<-2)throw new Error("invalid salt length");if(s<a+n+2)throw new Error("data too long");var c="";n>0&&(c=new Array(n),(new Ft).nextBytes(c),c=String.fromCharCode.apply(String,c));var u=Kn(l(Hn("\0\0\0\0\0\0\0\0"+i+c))),d=[];for(r=0;r<s-n-a-2;r+=1)d[r]=0;var h=String.fromCharCode.apply(String,d)+""+c,p=Fr(u,h.length,l),f=[];for(r=0;r<h.length;r+=1)f[r]=h.charCodeAt(r)^p.charCodeAt(r);var m=65280>>8*s-o&255;for(f[0]&=~m,r=0;r<a;r++)f.push(u.charCodeAt(r));return f.push(188),Br(this.doPrivate(new v(f)).toString(16),this.n.bitLength())},Ut.prototype.verify=function(e,t){if(t=t.toLowerCase(),null==t.match(/^[0-9a-f]+$/))return!1;var n=$t(t,16),r=this.n.bitLength();if(n.bitLength()>r)return!1;var i=this.doPublic(n),a=i.toString(16);if(a.length+3!=r/4)return!1;var o=a.replace(/^1f+00/,""),s=$r(o);if(0==s.length)return!1;var l=s[0],c=s[1],u=function(e){return _n.crypto.Util.hashString(e,l)},d=u(e);return c==d},Ut.prototype.verifyWithMessageHash=function(e,t){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var n=$t(t,16);if(n.bitLength()>this.n.bitLength())return 0;var r=this.doPublic(n),i=r.toString(16).replace(/^1f+00/,""),a=$r(i);if(0==a.length)return!1;a[0];var o=a[1];return o==e},Ut.prototype.verifyPSS=function(e,t,n,r){var i=function(e){return _n.crypto.Util.hashHex(e,n)},a=i(Hn(e));return void 0===r&&(r=-1),this.verifyWithMessageHashPSS(a,t,n,r)},Ut.prototype.verifyWithMessageHashPSS=function(e,t,n,r){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,a=new v(t,16),o=function(e){return _n.crypto.Util.hashHex(e,n)},s=Kn(e),l=s.length,c=this.n.bitLength()-1,u=Math.ceil(c/8);if(-1===r||void 0===r)r=l;else if(-2===r)r=u-l-2;else if(r<-2)throw new Error("invalid salt length");if(u<l+r+2)throw new Error("data too long");var d=this.doPublic(a).toByteArray();for(i=0;i<d.length;i+=1)d[i]&=255;while(d.length<u)d.unshift(0);if(188!==d[u-1])throw new Error("encoded message does not end in 0xbc");d=String.fromCharCode.apply(String,d);var h=d.substr(0,u-l-1),p=d.substr(h.length,l),f=65280>>8*u-c&255;if(0!==(h.charCodeAt(0)&f))throw new Error("bits beyond keysize not zero");var m=Fr(p,h.length,o),g=[];for(i=0;i<h.length;i+=1)g[i]=h.charCodeAt(i)^m.charCodeAt(i);g[0]&=~f;var b=u-l-r-2;for(i=0;i<b;i+=1)if(0!==g[i])throw new Error("leftmost octets not zero");if(1!==g[b])throw new Error("0x01 marker not found");return p===Kn(o(Hn("\0\0\0\0\0\0\0\0"+s+String.fromCharCode.apply(String,g.slice(-r)))))},Ut.SALT_LEN_HLEN=-1,Ut.SALT_LEN_MAX=-2,Ut.SALT_LEN_RECOVER=-2,Ur.EXT_PARSER={},Ur.registExtParser=function(e,t){Ur.EXT_PARSER[e]=t},Ur.hex2dn=function(e,t){void 0===t&&(t=0);var n=new Ur,r=(xn.getTLV(e,t),n.getX500Name(e));return r.str},Ur.hex2rdn=function(e,t){if(void 0===t&&(t=0),"31"!==e.substr(t,2))throw new Error("malformed RDN");for(var n=new Array,r=xn.getChildIdx(e,t),i=0;i<r.length;i++)n.push(Ur.hex2attrTypeValue(e,r[i]));return n=n.map((function(e){return e.replace("+","\\+")})),n.join("+")},Ur.hex2attrTypeValue=function(e,t){var n=xn,r=n.getV;if(void 0===t&&(t=0),"30"!==e.substr(t,2))throw new Error("malformed attribute type and value");var i=n.getChildIdx(e,t);2!==i.length||e.substr(i[0],2);var a=r(e,i[0]),o=_n.asn1.ASN1Util.oidHexToInt(a),s=_n.asn1.x509.OID.oid2atype(o),l=r(e,i[1]),c=Kn(l);return s+"="+c},Ur.getPublicKeyFromCertHex=function(e){var t=new Ur;return t.readCertHex(e),t.getPublicKey()},Ur.getPublicKeyFromCertPEM=function(e){var t=new Ur;return t.readCertPEM(e),t.getPublicKey()},Ur.getPublicKeyInfoPropOfCertPEM=function(e){var t,n,r=xn,i=r.getVbyList,a={};return a.algparam=null,t=new Ur,t.readCertPEM(e),n=t.getPublicKeyHex(),a.keyhex=i(n,0,[1],"03").substr(2),a.algoid=i(n,0,[0,0],"06"),"2a8648ce3d0201"===a.algoid&&(a.algparam=i(n,0,[0,1],"06")),a},Ur.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var jr=function(e){var t=_n,n=t.lang.String.isHex,r=xn,i=r.getV,a=r.getTLV,o=r.getVbyList,s=r.getTLVbyList,l=r.getTLVbyListEx,c=r.getIdxbyList,u=r.getIdxbyListEx,d=r.getChildIdx,h=new Ur;this.hex=null,this.posSigAlg=null,this.posRevCert=null,this.parsed=null,this._setPos=function(){var e=c(this.hex,0,[0,0]),t=this.hex.substr(e,2);if("02"==t)this.posSigAlg=1;else{if("30"!=t)throw new Error("malformed 1st item of TBSCertList: "+t);this.posSigAlg=0}var n,r,i=c(this.hex,0,[0,this.posSigAlg+3]),a=this.hex.substr(i,2);if("17"==a||"18"==a)n=c(this.hex,0,[0,this.posSigAlg+4]),this.posRevCert=null,-1!=n&&(r=this.hex.substr(n,2),"30"==r&&(this.posRevCert=this.posSigAlg+4));else if("30"==a)this.posRevCert=this.posSigAlg+3;else{if("a0"!=a)throw new Error("malformed nextUpdate or revCert tag: "+a);this.posRevCert=null}},this.getVersion=function(){return 0==this.posSigAlg?null:parseInt(o(this.hex,0,[0,0],"02"),16)+1},this.getSignatureAlgorithmField=function(){var e=s(this.hex,0,[0,this.posSigAlg],"30");return h.getAlgorithmIdentifierName(e)},this.getIssuer=function(){return h.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return s(this.hex,0,[0,this.posSigAlg+1],"30")},this.getThisUpdate=function(){var e=o(this.hex,0,[0,this.posSigAlg+2]);return result=Kn(e)},this.getNextUpdate=function(){var e=c(this.hex,0,[0,this.posSigAlg+3]),t=this.hex.substr(e,2);return"17"!=t&&"18"!=t?null:Kn(i(this.hex,e))},this.getRevCertArray=function(){if(null==this.posRevCert)return null;for(var e=[],t=c(this.hex,0,[0,this.posRevCert]),n=d(this.hex,t),r=0;r<n.length;r++){var i=a(this.hex,n[r]);e.push(this.getRevCert(i))}return e},this.getRevCert=function(e){var t={},n=d(e,0);return t.sn={hex:o(e,0,[0],"02")},t.date=Kn(o(e,0,[1])),3==n.length&&(t.ext=h.getExtParamArray(s(e,0,[2]))),t},this.findRevCert=function(e){var t=new Ur(e),n=t.getSerialNumberHex();return this.findRevCertBySN(n)},this.findRevCertBySN=function(e){if(null==this.parsed&&this.getParam(),null==this.parsed.revcert)return null;for(var t=this.parsed.revcert,n=0;n<t.length;n++)if(e==t[n].sn.hex)return t[n];return null},this.getSignatureValueHex=function(){return o(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),n=this.getSignatureValueHex(),r=s(this.hex,0,[0],"30"),i=new _n.crypto.Signature({alg:t});return i.init(e),i.updateHex(r),i.verify(n)},this.getParam=function(e){var t={},n=this.getVersion();null!=n&&(t.version=n),t.sigalg=this.getSignatureAlgorithmField(),t.issuer=this.getIssuer(),t.thisupdate=this.getThisUpdate();var r=this.getNextUpdate();null!=r&&(t.nextupdate=r);var i=this.getRevCertArray();null!=i&&(t.revcert=i);var a=u(this.hex,0,[0,"[0]"]);if(-1!=a){var o=l(this.hex,0,[0,"[0]",0]);t.ext=h.getExtParamArray(o)}return t.sighex=this.getSignatureValueHex(),this.parsed=t,"object"==typeof e&&(1==e.tbshex&&(t.tbshex=s(this.hex,0,[0])),1==e.nodnarray&&delete t.issuer.array),t},"string"==typeof e&&(n(e)?this.hex=e:e.match(/-----BEGIN X509 CRL/)&&(this.hex=Qn(e)),this._setPos())};"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.jws&&_n.jws||(_n.jws={}),_n.jws.JWS=function(){var e=_n,t=e.jws.JWS,n=t.isSafeJSONString;this.parseJWS=function(e,t){if(void 0===this.parsedJWS||!t&&void 0===this.parsedJWS.sigvalH){var r=e.match(/^([^.]+)\.([^.]+)\.([^.]+)$/);if(null==r)throw"JWS signature is not a form of 'Head.Payload.SigValue'.";var i=r[1],a=r[2],o=r[3],s=i+"."+a;if(this.parsedJWS={},this.parsedJWS.headB64U=i,this.parsedJWS.payloadB64U=a,this.parsedJWS.sigvalB64U=o,this.parsedJWS.si=s,!t){var l=Mn(o),c=$t(l,16);this.parsedJWS.sigvalH=l,this.parsedJWS.sigvalBI=c}var u=kn(i),d=kn(a);if(this.parsedJWS.headS=u,this.parsedJWS.payloadS=d,!n(u,this.parsedJWS,"headP"))throw"malformed JSON string for JWS Head: "+u}}},_n.jws.JWS.sign=function(e,t,n,r,i){var a,o,s,l=_n,c=l.jws,u=c.JWS,d=u.readSafeJSONString,h=u.isSafeJSONString,p=l.crypto,f=(p.ECDSA,p.Mac),m=p.Signature,g=JSON;if("string"!=typeof t&&"object"!=typeof t)throw"spHeader must be JSON string or object: "+t;if("object"==typeof t&&(o=t,a=g.stringify(o)),"string"==typeof t){if(a=t,!h(a))throw"JWS Head is not safe JSON string: "+a;o=d(a)}if(s=n,"object"==typeof n&&(s=g.stringify(n)),""!=e&&null!=e||void 0===o.alg||(e=o.alg),""!=e&&null!=e&&void 0===o.alg&&(o.alg=e,a=g.stringify(o)),e!==o.alg)throw"alg and sHeader.alg doesn't match: "+e+"!="+o.alg;var v=null;if(void 0===u.jwsalg2sigalg[e])throw"unsupported alg name: "+e;v=u.jwsalg2sigalg[e];var b=Sn(a),y=Sn(s),w=b+"."+y,E="";if("Hmac"==v.substr(0,4)){if(void 0===r)throw"mac key shall be specified for HS* alg";var _=new f({alg:v,prov:"cryptojs",pass:r});_.updateString(w),E=_.doFinal()}else if(-1!=v.indexOf("withECDSA")){var S=new m({alg:v});S.init(r,i),S.updateString(w);var k=S.sign();E=_n.crypto.ECDSA.asn1SigToConcatSig(k)}else if("none"!=v){S=new m({alg:v});S.init(r,i),S.updateString(w),E=S.sign()}var x=Pn(E);return w+"."+x},_n.jws.JWS.verify=function(e,t,n){var r,i=_n,a=i.jws,o=a.JWS,s=o.readSafeJSONString,l=i.crypto,c=l.ECDSA,u=l.Mac,d=l.Signature;if(void 0!==typeof Ut&&(r=Ut),!wr(e))return!1;var h=e.split(".");if(3!==h.length)return!1;var p=h[0],f=h[1],m=p+"."+f,g=Mn(h[2]),v=s(kn(h[0])),b=null,y=null;if(void 0===v.alg)throw"algorithm not specified in header";if(b=v.alg,y=b.substr(0,2),null!=n&&"[object Array]"===Object.prototype.toString.call(n)&&n.length>0){var w=":"+n.join(":")+":";if(-1==w.indexOf(":"+b+":"))throw"algorithm '"+b+"' not accepted in the list"}if("none"!=b&&null===t)throw"key shall be specified to verify.";if("string"==typeof t&&-1!=t.indexOf("-----BEGIN ")&&(t=Mr.getKey(t)),("RS"==y||"PS"==y)&&!(t instanceof r))throw"key shall be a RSAKey obj for RS* and PS* algs";if("ES"==y&&!(t instanceof c))throw"key shall be a ECDSA obj for ES* algs";var E=null;if(void 0===o.jwsalg2sigalg[v.alg])throw"unsupported alg name: "+b;if(E=o.jwsalg2sigalg[b],"none"==E)throw"not supported";if("Hmac"==E.substr(0,4)){var _=null;if(void 0===t)throw"hexadecimal key shall be specified for HMAC";var S=new u({alg:E,pass:t});return S.updateString(m),_=S.doFinal(),g==_}if(-1!=E.indexOf("withECDSA")){var k=null;try{k=c.concatSigToASN1Sig(g)}catch(A){return!1}var x=new d({alg:E});return x.init(t),x.updateString(m),x.verify(k)}x=new d({alg:E});return x.init(t),x.updateString(m),x.verify(g)},_n.jws.JWS.parse=function(e){var t,n,r,i=e.split("."),a={};if(2!=i.length&&3!=i.length)throw"malformed sJWS: wrong number of '.' splitted elements";return t=i[0],n=i[1],3==i.length&&(r=i[2]),a.headerObj=_n.jws.JWS.readSafeJSONString(kn(t)),a.payloadObj=_n.jws.JWS.readSafeJSONString(kn(n)),a.headerPP=JSON.stringify(a.headerObj,null," "),null==a.payloadObj?a.payloadPP=kn(n):a.payloadPP=JSON.stringify(a.payloadObj,null," "),void 0!==r&&(a.sigHex=Mn(r)),a},_n.jws.JWS.verifyJWT=function(e,t,n){var r=_n,i=r.jws,a=i.JWS,o=a.readSafeJSONString,s=a.inArray,l=a.includedArray;if(!wr(e))return!1;var c=e.split(".");if(3!=c.length)return!1;var u=c[0],d=c[1],h=(Mn(c[2]),o(kn(u))),p=o(kn(d));if(void 0===h.alg)return!1;if(void 0===n.alg)throw"acceptField.alg shall be specified";if(!s(h.alg,n.alg))return!1;if(void 0!==p.iss&&"object"===typeof n.iss&&!s(p.iss,n.iss))return!1;if(void 0!==p.sub&&"object"===typeof n.sub&&!s(p.sub,n.sub))return!1;if(void 0!==p.aud&&"object"===typeof n.aud)if("string"==typeof p.aud){if(!s(p.aud,n.aud))return!1}else if("object"==typeof p.aud&&!l(p.aud,n.aud))return!1;var f=i.IntDate.getNow();return void 0!==n.verifyAt&&"number"===typeof n.verifyAt&&(f=n.verifyAt),void 0!==n.gracePeriod&&"number"===typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==p.exp&&"number"==typeof p.exp&&p.exp+n.gracePeriod<f)&&(!(void 0!==p.nbf&&"number"==typeof p.nbf&&f<p.nbf-n.gracePeriod)&&(!(void 0!==p.iat&&"number"==typeof p.iat&&f<p.iat-n.gracePeriod)&&((void 0===p.jti||void 0===n.jti||p.jti===n.jti)&&!!a.verify(e,t,n.alg))))},_n.jws.JWS.includedArray=function(e,t){var n=_n.jws.JWS.inArray;if(null===e)return!1;if("object"!==typeof e)return!1;if("number"!==typeof e.length)return!1;for(var r=0;r<e.length;r++)if(!n(e[r],t))return!1;return!0},_n.jws.JWS.inArray=function(e,t){if(null===t)return!1;if("object"!==typeof t)return!1;if("number"!==typeof t.length)return!1;for(var n=0;n<t.length;n++)if(t[n]==e)return!0;return!1},_n.jws.JWS.jwsalg2sigalg={HS256:"HmacSHA256",HS384:"HmacSHA384",HS512:"HmacSHA512",RS256:"SHA256withRSA",RS384:"SHA384withRSA",RS512:"SHA512withRSA",ES256:"SHA256withECDSA",ES384:"SHA384withECDSA",ES512:"SHA512withECDSA",PS256:"SHA256withRSAandMGF1",PS384:"SHA384withRSAandMGF1",PS512:"SHA512withRSAandMGF1",none:"none"},_n.jws.JWS.isSafeJSONString=function(e,t,n){var r=null;try{return r=En(e),"object"!=typeof r?0:r.constructor===Array?0:(t&&(t[n]=r),1)}catch(i){return 0}},_n.jws.JWS.readSafeJSONString=function(e){var t=null;try{return t=En(e),"object"!=typeof t||t.constructor===Array?null:t}catch(n){return null}},_n.jws.JWS.getEncodedSignatureValueFromJWS=function(e){var t=e.match(/^[^.]+\.[^.]+\.([^.]+)$/);if(null==t)throw"JWS signature is not a form of 'Head.Payload.SigValue'.";return t[1]},_n.jws.JWS.getJWKthumbprint=function(e){if("RSA"!==e.kty&&"EC"!==e.kty&&"oct"!==e.kty)throw"unsupported algorithm for JWK Thumprint";var t="{";if("RSA"===e.kty){if("string"!=typeof e.n||"string"!=typeof e.e)throw"wrong n and e value for RSA key";t+='"e":"'+e.e+'",',t+='"kty":"'+e.kty+'",',t+='"n":"'+e.n+'"}'}else if("EC"===e.kty){if("string"!=typeof e.crv||"string"!=typeof e.x||"string"!=typeof e.y)throw"wrong crv, x and y value for EC key";t+='"crv":"'+e.crv+'",',t+='"kty":"'+e.kty+'",',t+='"x":"'+e.x+'",',t+='"y":"'+e.y+'"}'}else if("oct"===e.kty){if("string"!=typeof e.k)throw"wrong k value for oct(symmetric) key";t+='"kty":"'+e.kty+'",',t+='"k":"'+e.k+'"}'}var n=Hn(t),r=_n.crypto.Util.hashHex(n,"sha256"),i=Pn(r);return i},_n.jws.IntDate={},_n.jws.IntDate.get=function(e){var t=_n.jws.IntDate,n=t.getNow,r=t.getZulu;if("now"==e)return n();if("now + 1hour"==e)return n()+3600;if("now + 1day"==e)return n()+86400;if("now + 1month"==e)return n()+2592e3;if("now + 1year"==e)return n()+31536e3;if(e.match(/Z$/))return r(e);if(e.match(/^[0-9]+$/))return parseInt(e);throw"unsupported format: "+e},_n.jws.IntDate.getZulu=function(e){return rr(e)},_n.jws.IntDate.getNow=function(){var e=~~(new Date/1e3);return e},_n.jws.IntDate.intDate2UTCString=function(e){var t=new Date(1e3*e);return t.toUTCString()},_n.jws.IntDate.intDate2Zulu=function(e){var t=new Date(1e3*e),n=("0000"+t.getUTCFullYear()).slice(-4),r=("00"+(t.getUTCMonth()+1)).slice(-2),i=("00"+t.getUTCDate()).slice(-2),a=("00"+t.getUTCHours()).slice(-2),o=("00"+t.getUTCMinutes()).slice(-2),s=("00"+t.getUTCSeconds()).slice(-2);return n+r+i+a+o+s+"Z"},"undefined"!=typeof _n&&_n||(_n={}),"undefined"!=typeof _n.jws&&_n.jws||(_n.jws={}),_n.jws.JWSJS=function(){var e=_n,t=e.jws,n=t.JWS,r=n.readSafeJSONString;this.aHeader=[],this.sPayload="",this.aSignature=[],this.init=function(){this.aHeader=[],this.sPayload=void 0,this.aSignature=[]},this.initWithJWS=function(e){this.init();var t=e.split(".");if(3!=t.length)throw"malformed input JWS";this.aHeader.push(t[0]),this.sPayload=t[1],this.aSignature.push(t[2])},this.addSignature=function(e,t,n,r){if(void 0===this.sPayload||null===this.sPayload)throw"there's no JSON-JS signature to add.";var i=this.aHeader.length;if(this.aHeader.length!=this.aSignature.length)throw"aHeader.length != aSignature.length";try{var a=_n.jws.JWS.sign(e,t,this.sPayload,n,r),o=a.split(".");o[0],o[2];this.aHeader.push(o[0]),this.aSignature.push(o[2])}catch(s){throw this.aHeader.length>i&&this.aHeader.pop(),this.aSignature.length>i&&this.aSignature.pop(),"addSignature failed: "+s}},this.verifyAll=function(e){if(this.aHeader.length!==e.length||this.aSignature.length!==e.length)return!1;for(var t=0;t<e.length;t++){var n=e[t];if(2!==n.length)return!1;var r=this.verifyNth(t,n[0],n[1]);if(!1===r)return!1}return!0},this.verifyNth=function(e,t,r){if(this.aHeader.length<=e||this.aSignature.length<=e)return!1;var i=this.aHeader[e],a=this.aSignature[e],o=i+"."+this.sPayload+"."+a,s=!1;try{s=n.verify(o,t,r)}catch(l){return!1}return s},this.readJWSJS=function(e){if("string"===typeof e){var t=r(e);if(null==t)throw"argument is not safe JSON object string";this.aHeader=t.headers,this.sPayload=t.payload,this.aSignature=t.signatures}else try{if(!(e.headers.length>0))throw"malformed header";if(this.aHeader=e.headers,"string"!==typeof e.payload)throw"malformed signatures";if(this.sPayload=e.payload,!(e.signatures.length>0))throw"malformed signatures";this.aSignature=e.signatures}catch(n){throw"malformed JWS-JS JSON object: "+n}},this.getJSON=function(){return{headers:this.aHeader,payload:this.sPayload,signatures:this.aSignature}},this.isEmpty=function(){return 0==this.aHeader.length?1:0}},t.SecureRandom=Ft,t.rng_seed_time=Ot,t.BigInteger=v,t.RSAKey=Ut,t.ECDSA=_n.crypto.ECDSA,t.DSA=_n.crypto.DSA,t.Signature=_n.crypto.Signature,t.MessageDigest=_n.crypto.MessageDigest,t.Mac=_n.crypto.Mac,t.KEYUTIL=Mr,t.ASN1HEX=xn,t.X509=Ur,t.X509CRL=jr,t.CryptoJS=l,t.b64tohex=p,t.b64toBA=f,t.ECFieldElementFp=qt,t.ECPointFp=nn,t.ECCurveFp=pn,t.stoBA=An,t.BAtos=Nn,t.BAtohex=Cn,t.stohex=Tn,t.stob64=Rn,t.stob64u=On,t.b64utos=In,t.b64tob64u=Ln,t.b64utob64=Dn,t.hex2b64=h,t.hextob64u=Pn,t.b64utohex=Mn,t.utf8tob64u=Sn,t.b64utoutf8=kn,t.utf8tob64=Bn,t.b64toutf8=Fn,t.utf8tohex=$n,t.hextoutf8=Un,t.hextorstr=Kn,t.rstrtohex=Hn,t.hextob64=Gn,t.hextob64nl=zn,t.b64nltohex=Xn,t.hextopem=Yn,t.pemtohex=Qn,t.hextoArrayBuffer=Zn,t.ArrayBuffertohex=er,t.zulutomsec=tr,t.msectozulu=nr,t.zulutosec=rr,t.zulutodate=ir,t.datetozulu=ar,t.uricmptohex=sr,t.hextouricmp=lr,t.ipv6tohex=cr,t.hextoipv6=ur,t.hextoip=dr,t.iptohex=pr,t.ucs2hextoutf8=mr,t.encodeURIComponentAll=gr,t.newline_toUnix=vr,t.newline_toDos=br,t.hextoposhex=Er,t.intarystrtohex=_r,t.strdiffidx=Sr,t.oidtohex=kr,t.hextooid=xr,t.strpad=Cr,t.bitstrtoint=Tr,t.inttobitstr=Rr,t.bitstrtobinstr=Or,t.binstrtobitstr=Ir,t.isBase64URLDot=wr,t.namearraytobinstr=Lr,t.extendClass=Pr,t.foldnl=qn,t.b64topem=Wn,t.pemtob64=Jn,t.timeogen=or,t.aryval=Dr,t.inttohex=Ar,t.twoscompl=Nr,t.KJUR=_n,t.crypto=_n.crypto,t.asn1=_n.asn1,t.jws=_n.jws,t.lang=_n.lang,t.VERSION=o,t.VERSION_FULL=s},33103:function(e,t,n){var r=n(94715),i=n(78942),a=r(i,"DataView");e.exports=a},25098:function(e,t,n){var r=n(23305),i=n(39361),a=n(11112),o=n(25276),s=n(57452);function l(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype["delete"]=i,l.prototype.get=a,l.prototype.has=o,l.prototype.set=s,e.exports=l},1386:function(e,t,n){var r=n(12393),i=n(62049),a=n(7144),o=n(7452),s=n(13964);function l(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype["delete"]=i,l.prototype.get=a,l.prototype.has=o,l.prototype.set=s,e.exports=l},19770:function(e,t,n){var r=n(94715),i=n(78942),a=r(i,"Map");e.exports=a},68250:function(e,t,n){var r=n(49753),i=n(5681),a=n(80088),o=n(54732),s=n(59068);function l(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype["delete"]=i,l.prototype.get=a,l.prototype.has=o,l.prototype.set=s,e.exports=l},89413:function(e,t,n){var r=n(94715),i=n(78942),a=r(i,"Promise");e.exports=a},64512:function(e,t,n){var r=n(94715),i=n(78942),a=r(i,"Set");e.exports=a},23212:function(e,t,n){var r=n(68250),i=n(1877),a=n(8006);function o(e){var t=-1,n=null==e?0:e.length;this.__data__=new r;while(++t<n)this.add(e[t])}o.prototype.add=o.prototype.push=i,o.prototype.has=a,e.exports=o},51340:function(e,t,n){var r=n(1386),i=n(64103),a=n(21779),o=n(34162),s=n(7462),l=n(96638);function c(e){var t=this.__data__=new r(e);this.size=t.size}c.prototype.clear=i,c.prototype["delete"]=a,c.prototype.get=o,c.prototype.has=s,c.prototype.set=l,e.exports=c},65650:function(e,t,n){var r=n(78942),i=r.Symbol;e.exports=i},31623:function(e,t,n){var r=n(78942),i=r.Uint8Array;e.exports=i},19270:function(e,t,n){var r=n(94715),i=n(78942),a=r(i,"WeakMap");e.exports=a},86912:function(e){function t(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}e.exports=t},79968:function(e){function t(e,t){var n=-1,r=null==e?0:e.length;while(++n<r)if(!1===t(e[n],n,e))break;return e}e.exports=t},79847:function(e){function t(e,t){var n=-1,r=null==e?0:e.length,i=0,a=[];while(++n<r){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}e.exports=t},59756:function(e,t,n){var r=n(2478);function i(e,t){var n=null==e?0:e.length;return!!n&&r(e,t,0)>-1}e.exports=i},43316:function(e){function t(e,t,n){var r=-1,i=null==e?0:e.length;while(++r<i)if(n(t,e[r]))return!0;return!1}e.exports=t},10358:function(e,t,n){var r=n(26137),i=n(3283),a=n(53142),o=n(75853),s=n(69632),l=n(8666),c=Object.prototype,u=c.hasOwnProperty;function d(e,t){var n=a(e),c=!n&&i(e),d=!n&&!c&&o(e),h=!n&&!c&&!d&&l(e),p=n||c||d||h,f=p?r(e.length,String):[],m=f.length;for(var g in e)!t&&!u.call(e,g)||p&&("length"==g||d&&("offset"==g||"parent"==g)||h&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||s(g,m))||f.push(g);return f}e.exports=d},65111:function(e){function t(e,t){var n=-1,r=null==e?0:e.length,i=Array(r);while(++n<r)i[n]=t(e[n],n,e);return i}e.exports=t},11129:function(e){function t(e,t){var n=-1,r=t.length,i=e.length;while(++n<r)e[i+n]=t[n];return e}e.exports=t},44187:function(e){function t(e,t,n,r){var i=-1,a=null==e?0:e.length;r&&a&&(n=e[++i]);while(++i<a)n=t(n,e[i],i,e);return n}e.exports=t},36465:function(e){function t(e,t){var n=-1,r=null==e?0:e.length;while(++n<r)if(t(e[n],n,e))return!0;return!1}e.exports=t},52837:function(e){function t(e){return e.split("")}e.exports=t},39546:function(e){var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function n(e){return e.match(t)||[]}e.exports=n},24810:function(e,t,n){var r=n(57073),i=n(46285);function a(e,t,n){(void 0!==n&&!i(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}e.exports=a},3422:function(e,t,n){var r=n(57073),i=n(46285),a=Object.prototype,o=a.hasOwnProperty;function s(e,t,n){var a=e[t];o.call(e,t)&&i(a,n)&&(void 0!==n||t in e)||r(e,t,n)}e.exports=s},97034:function(e,t,n){var r=n(46285);function i(e,t){var n=e.length;while(n--)if(r(e[n][0],t))return n;return-1}e.exports=i},37930:function(e,t,n){var r=n(39032),i=n(81211);function a(e,t){return e&&r(t,i(t),e)}e.exports=a},30125:function(e,t,n){var r=n(39032),i=n(25288);function a(e,t){return e&&r(t,i(t),e)}e.exports=a},57073:function(e,t,n){var r=n(72532);function i(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}e.exports=i},69334:function(e,t,n){var r=n(51340),i=n(79968),a=n(3422),o=n(37930),s=n(30125),l=n(17099),c=n(84354),u=n(83546),d=n(24733),h=n(80393),p=n(93650),f=n(28486),m=n(97350),g=n(50424),v=n(75964),b=n(53142),y=n(75853),w=n(37681),E=n(41580),_=n(83943),S=n(81211),k=n(25288),x=1,A=2,N=4,C="[object Arguments]",T="[object Array]",R="[object Boolean]",O="[object Date]",I="[object Error]",L="[object Function]",D="[object GeneratorFunction]",P="[object Map]",M="[object Number]",B="[object Object]",F="[object RegExp]",$="[object Set]",U="[object String]",j="[object Symbol]",V="[object WeakMap]",K="[object ArrayBuffer]",H="[object DataView]",G="[object Float32Array]",z="[object Float64Array]",q="[object Int8Array]",X="[object Int16Array]",W="[object Int32Array]",Y="[object Uint8Array]",Q="[object Uint8ClampedArray]",J="[object Uint16Array]",Z="[object Uint32Array]",ee={};function te(e,t,n,T,R,O){var I,P=t&x,M=t&A,F=t&N;if(n&&(I=R?n(e,T,R,O):n(e)),void 0!==I)return I;if(!E(e))return e;var $=b(e);if($){if(I=m(e),!P)return c(e,I)}else{var U=f(e),j=U==L||U==D;if(y(e))return l(e,P);if(U==B||U==C||j&&!R){if(I=M||j?{}:v(e),!P)return M?d(e,s(I,e)):u(e,o(I,e))}else{if(!ee[U])return R?e:{};I=g(e,U,P)}}O||(O=new r);var V=O.get(e);if(V)return V;O.set(e,I),_(e)?e.forEach((function(r){I.add(te(r,t,n,r,e,O))})):w(e)&&e.forEach((function(r,i){I.set(i,te(r,t,n,i,e,O))}));var K=F?M?p:h:M?k:S,H=$?void 0:K(e);return i(H||e,(function(r,i){H&&(i=r,r=e[i]),a(I,i,te(r,t,n,i,e,O))})),I}ee[C]=ee[T]=ee[K]=ee[H]=ee[R]=ee[O]=ee[G]=ee[z]=ee[q]=ee[X]=ee[W]=ee[P]=ee[M]=ee[B]=ee[F]=ee[$]=ee[U]=ee[j]=ee[Y]=ee[Q]=ee[J]=ee[Z]=!0,ee[I]=ee[L]=ee[V]=!1,e.exports=te},39747:function(e,t,n){var r=n(41580),i=Object.create,a=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=a},96576:function(e,t,n){var r=n(23212),i=n(59756),a=n(43316),o=n(65111),s=n(49460),l=n(65568),c=200;function u(e,t,n,u){var d=-1,h=i,p=!0,f=e.length,m=[],g=t.length;if(!f)return m;n&&(t=o(t,s(n))),u?(h=a,p=!1):t.length>=c&&(h=l,p=!1,t=new r(t));e:while(++d<f){var v=e[d],b=null==n?v:n(v);if(v=u||0!==v?v:0,p&&b===b){var y=g;while(y--)if(t[y]===b)continue e;m.push(v)}else h(t,b,u)||m.push(v)}return m}e.exports=u},37250:function(e){function t(e,t,n,r){var i=e.length,a=n+(r?1:-1);while(r?a--:++a<i)if(t(e[a],a,e))return a;return-1}e.exports=t},90313:function(e,t,n){var r=n(11129),i=n(20714);function a(e,t,n,o,s){var l=-1,c=e.length;n||(n=i),s||(s=[]);while(++l<c){var u=e[l];t>0&&n(u)?t>1?a(u,t-1,n,o,s):r(s,u):o||(s[s.length]=u)}return s}e.exports=a},35636:function(e,t,n){var r=n(86596),i=r();e.exports=i},47170:function(e,t,n){var r=n(35636),i=n(81211);function a(e,t){return e&&r(e,t,i)}e.exports=a},57923:function(e,t,n){var r=n(93526),i=n(66040);function a(e,t){t=r(t,e);var n=0,a=t.length;while(null!=e&&n<a)e=e[i(t[n++])];return n&&n==a?e:void 0}e.exports=a},48244:function(e,t,n){var r=n(11129),i=n(53142);function a(e,t,n){var a=t(e);return i(e)?a:r(a,n(e))}e.exports=a},87379:function(e,t,n){var r=n(65650),i=n(8870),a=n(29005),o="[object Null]",s="[object Undefined]",l=r?r.toStringTag:void 0;function c(e){return null==e?void 0===e?s:o:l&&l in Object(e)?i(e):a(e)}e.exports=c},63599:function(e){var t=Object.prototype,n=t.hasOwnProperty;function r(e,t){return null!=e&&n.call(e,t)}e.exports=r},43636:function(e){function t(e,t){return null!=e&&t in Object(e)}e.exports=t},2478:function(e,t,n){var r=n(37250),i=n(69454),a=n(97706);function o(e,t,n){return t===t?a(e,t,n):r(e,i,n)}e.exports=o},56027:function(e,t,n){var r=n(87379),i=n(80547),a="[object Arguments]";function o(e){return i(e)&&r(e)==a}e.exports=o},94687:function(e,t,n){var r=n(90353),i=n(80547);function a(e,t,n,o,s){return e===t||(null==e||null==t||!i(e)&&!i(t)?e!==e&&t!==t:r(e,t,n,o,a,s))}e.exports=a},90353:function(e,t,n){var r=n(51340),i=n(33934),a=n(88861),o=n(31182),s=n(28486),l=n(53142),c=n(75853),u=n(8666),d=1,h="[object Arguments]",p="[object Array]",f="[object Object]",m=Object.prototype,g=m.hasOwnProperty;function v(e,t,n,m,v,b){var y=l(e),w=l(t),E=y?p:s(e),_=w?p:s(t);E=E==h?f:E,_=_==h?f:_;var S=E==f,k=_==f,x=E==_;if(x&&c(e)){if(!c(t))return!1;y=!0,S=!1}if(x&&!S)return b||(b=new r),y||u(e)?i(e,t,n,m,v,b):a(e,t,E,n,m,v,b);if(!(n&d)){var A=S&&g.call(e,"__wrapped__"),N=k&&g.call(t,"__wrapped__");if(A||N){var C=A?e.value():e,T=N?t.value():t;return b||(b=new r),v(C,T,n,m,b)}}return!!x&&(b||(b=new r),o(e,t,n,m,v,b))}e.exports=v},80777:function(e,t,n){var r=n(28486),i=n(80547),a="[object Map]";function o(e){return i(e)&&r(e)==a}e.exports=o},38330:function(e,t,n){var r=n(51340),i=n(94687),a=1,o=2;function s(e,t,n,s){var l=n.length,c=l,u=!s;if(null==e)return!c;e=Object(e);while(l--){var d=n[l];if(u&&d[2]?d[1]!==e[d[0]]:!(d[0]in e))return!1}while(++l<c){d=n[l];var h=d[0],p=e[h],f=d[1];if(u&&d[2]){if(void 0===p&&!(h in e))return!1}else{var m=new r;if(s)var g=s(p,f,h,e,t,m);if(!(void 0===g?i(f,p,a|o,s,m):g))return!1}}return!0}e.exports=s},69454:function(e){function t(e){return e!==e}e.exports=t},89624:function(e,t,n){var r=n(93655),i=n(64759),a=n(41580),o=n(64066),s=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,d=c.toString,h=u.hasOwnProperty,p=RegExp("^"+d.call(h).replace(s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function f(e){if(!a(e)||i(e))return!1;var t=r(e)?p:l;return t.test(o(e))}e.exports=f},81935:function(e,t,n){var r=n(28486),i=n(80547),a="[object Set]";function o(e){return i(e)&&r(e)==a}e.exports=o},70674:function(e,t,n){var r=n(87379),i=n(65387),a=n(80547),o="[object Arguments]",s="[object Array]",l="[object Boolean]",c="[object Date]",u="[object Error]",d="[object Function]",h="[object Map]",p="[object Number]",f="[object Object]",m="[object RegExp]",g="[object Set]",v="[object String]",b="[object WeakMap]",y="[object ArrayBuffer]",w="[object DataView]",E="[object Float32Array]",_="[object Float64Array]",S="[object Int8Array]",k="[object Int16Array]",x="[object Int32Array]",A="[object Uint8Array]",N="[object Uint8ClampedArray]",C="[object Uint16Array]",T="[object Uint32Array]",R={};function O(e){return a(e)&&i(e.length)&&!!R[r(e)]}R[E]=R[_]=R[S]=R[k]=R[x]=R[A]=R[N]=R[C]=R[T]=!0,R[o]=R[s]=R[y]=R[l]=R[w]=R[c]=R[u]=R[d]=R[h]=R[p]=R[f]=R[m]=R[g]=R[v]=R[b]=!1,e.exports=O},3334:function(e,t,n){var r=n(36526),i=n(12343),a=n(22053),o=n(53142),s=n(43282);function l(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?o(e)?i(e[0],e[1]):r(e):s(e)}e.exports=l},195:function(e,t,n){var r=n(84882),i=n(98121),a=Object.prototype,o=a.hasOwnProperty;function s(e){if(!r(e))return i(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}e.exports=s},57200:function(e,t,n){var r=n(41580),i=n(84882),a=n(38546),o=Object.prototype,s=o.hasOwnProperty;function l(e){if(!r(e))return a(e);var t=i(e),n=[];for(var o in e)("constructor"!=o||!t&&s.call(e,o))&&n.push(o);return n}e.exports=l},36526:function(e,t,n){var r=n(38330),i=n(24367),a=n(23904);function o(e){var t=i(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}e.exports=o},12343:function(e,t,n){var r=n(94687),i=n(46123),a=n(27276),o=n(65187),s=n(67267),l=n(23904),c=n(66040),u=1,d=2;function h(e,t){return o(e)&&s(t)?l(c(e),t):function(n){var o=i(n,e);return void 0===o&&o===t?a(n,e):r(t,o,u|d)}}e.exports=h},40091:function(e,t,n){var r=n(51340),i=n(24810),a=n(35636),o=n(26885),s=n(41580),l=n(25288),c=n(78763);function u(e,t,n,d,h){e!==t&&a(t,(function(a,l){if(h||(h=new r),s(a))o(e,t,l,n,u,d,h);else{var p=d?d(c(e,l),a,l+"",e,t,h):void 0;void 0===p&&(p=a),i(e,l,p)}}),l)}e.exports=u},26885:function(e,t,n){var r=n(24810),i=n(17099),a=n(92264),o=n(84354),s=n(75964),l=n(3283),c=n(53142),u=n(65406),d=n(75853),h=n(93655),p=n(41580),f=n(48360),m=n(8666),g=n(78763),v=n(64207);function b(e,t,n,b,y,w,E){var _=g(e,n),S=g(t,n),k=E.get(S);if(k)r(e,n,k);else{var x=w?w(_,S,n+"",e,t,E):void 0,A=void 0===x;if(A){var N=c(S),C=!N&&d(S),T=!N&&!C&&m(S);x=S,N||C||T?c(_)?x=_:u(_)?x=o(_):C?(A=!1,x=i(S,!0)):T?(A=!1,x=a(S,!0)):x=[]:f(S)||l(S)?(x=_,l(_)?x=v(_):p(_)&&!h(_)||(x=s(S))):A=!1}A&&(E.set(S,x),y(x,S,b,w,E),E["delete"](S)),r(e,n,x)}}e.exports=b},90242:function(e,t,n){var r=n(35031),i=n(27276);function a(e,t){return r(e,t,(function(t,n){return i(e,n)}))}e.exports=a},35031:function(e,t,n){var r=n(57923),i=n(87655),a=n(93526);function o(e,t,n){var o=-1,s=t.length,l={};while(++o<s){var c=t[o],u=r(e,c);n(u,c)&&i(l,a(c,e),u)}return l}e.exports=o},12762:function(e){function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},98880:function(e,t,n){var r=n(57923);function i(e){return function(t){return r(t,e)}}e.exports=i},51035:function(e){function t(e){return function(t){return null==e?void 0:e[t]}}e.exports=t},23945:function(e,t,n){var r=n(22053),i=n(75234),a=n(80796);function o(e,t){return a(i(e,t,r),e+"")}e.exports=o},87655:function(e,t,n){var r=n(3422),i=n(93526),a=n(69632),o=n(41580),s=n(66040);function l(e,t,n,l){if(!o(e))return e;t=i(t,e);var c=-1,u=t.length,d=u-1,h=e;while(null!=h&&++c<u){var p=s(t[c]),f=n;if("__proto__"===p||"constructor"===p||"prototype"===p)return e;if(c!=d){var m=h[p];f=l?l(m,p,h):void 0,void 0===f&&(f=o(m)?m:a(t[c+1])?[]:{})}r(h,p,f),h=h[p]}return e}e.exports=l},47403:function(e,t,n){var r=n(82619),i=n(72532),a=n(22053),o=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:a;e.exports=o},73501:function(e){function t(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;var a=Array(i);while(++r<i)a[r]=e[r+t];return a}e.exports=t},26137:function(e){function t(e,t){var n=-1,r=Array(e);while(++n<e)r[n]=t(n);return r}e.exports=t},52291:function(e,t,n){var r=n(65650),i=n(65111),a=n(53142),o=n(51187),s=1/0,l=r?r.prototype:void 0,c=l?l.toString:void 0;function u(e){if("string"==typeof e)return e;if(a(e))return i(e,u)+"";if(o(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-s?"-0":t}e.exports=u},86403:function(e,t,n){var r=n(62945),i=/^\s+/;function a(e){return e?e.slice(0,r(e)+1).replace(i,""):e}e.exports=a},49460:function(e){function t(e){return function(t){return e(t)}}e.exports=t},15630:function(e,t,n){var r=n(23212),i=n(59756),a=n(43316),o=n(65568),s=n(36208),l=n(49828),c=200;function u(e,t,n){var u=-1,d=i,h=e.length,p=!0,f=[],m=f;if(n)p=!1,d=a;else if(h>=c){var g=t?null:s(e);if(g)return l(g);p=!1,d=o,m=new r}else m=t?[]:f;e:while(++u<h){var v=e[u],b=t?t(v):v;if(v=n||0!==v?v:0,p&&b===b){var y=m.length;while(y--)if(m[y]===b)continue e;t&&m.push(b),f.push(v)}else d(m,b,n)||(m!==f&&m.push(b),f.push(v))}return f}e.exports=u},3905:function(e,t,n){var r=n(65111);function i(e,t){return r(t,(function(t){return e[t]}))}e.exports=i},80214:function(e,t,n){var r=n(96576),i=n(90313),a=n(15630);function o(e,t,n){var o=e.length;if(o<2)return o?a(e[0]):[];var s=-1,l=Array(o);while(++s<o){var c=e[s],u=-1;while(++u<o)u!=s&&(l[s]=r(l[s]||c,e[u],t,n))}return a(i(l,1),t,n)}e.exports=o},65568:function(e){function t(e,t){return e.has(t)}e.exports=t},23997:function(e,t,n){var r=n(22053);function i(e){return"function"==typeof e?e:r}e.exports=i},93526:function(e,t,n){var r=n(53142),i=n(65187),a=n(96493),o=n(95243);function s(e,t){return r(e)?e:i(e,t)?[e]:a(o(e))}e.exports=s},28931:function(e,t,n){var r=n(73501);function i(e,t,n){var i=e.length;return n=void 0===n?i:n,!t&&n>=i?e:r(e,t,n)}e.exports=i},58898:function(e,t,n){var r=n(31623);function i(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}e.exports=i},17099:function(e,t,n){e=n.nmd(e);var r=n(78942),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i,s=o?r.Buffer:void 0,l=s?s.allocUnsafe:void 0;function c(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}e.exports=c},92480:function(e,t,n){var r=n(58898);function i(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}e.exports=i},78340:function(e){var t=/\w*$/;function n(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}e.exports=n},18069:function(e,t,n){var r=n(65650),i=r?r.prototype:void 0,a=i?i.valueOf:void 0;function o(e){return a?Object(a.call(e)):{}}e.exports=o},92264:function(e,t,n){var r=n(58898);function i(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}e.exports=i},84354:function(e){function t(e,t){var n=-1,r=e.length;t||(t=Array(r));while(++n<r)t[n]=e[n];return t}e.exports=t},39032:function(e,t,n){var r=n(3422),i=n(57073);function a(e,t,n,a){var o=!n;n||(n={});var s=-1,l=t.length;while(++s<l){var c=t[s],u=a?a(n[c],e[c],c,n,e):void 0;void 0===u&&(u=e[c]),o?i(n,c,u):r(n,c,u)}return n}e.exports=a},83546:function(e,t,n){var r=n(39032),i=n(77979);function a(e,t){return r(e,i(e),t)}e.exports=a},24733:function(e,t,n){var r=n(39032),i=n(85832);function a(e,t){return r(e,i(e),t)}e.exports=a},41950:function(e,t,n){var r=n(78942),i=r["__core-js_shared__"];e.exports=i},77848:function(e,t,n){var r=n(23945),i=n(74535);function a(e){return r((function(t,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;o=e.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),t=Object(t);while(++r<a){var l=n[r];l&&e(t,l,r,o)}return t}))}e.exports=a},86596:function(e){function t(e){return function(t,n,r){var i=-1,a=Object(t),o=r(t),s=o.length;while(s--){var l=o[e?s:++i];if(!1===n(a[l],l,a))break}return t}}e.exports=t},4326:function(e,t,n){var r=n(28931),i=n(83417),a=n(82237),o=n(95243);function s(e){return function(t){t=o(t);var n=i(t)?a(t):void 0,s=n?n[0]:t.charAt(0),l=n?r(n,1).join(""):t.slice(1);return s[e]()+l}}e.exports=s},93640:function(e,t,n){var r=n(44187),i=n(45881),a=n(39850),o="['’]",s=RegExp(o,"g");function l(e){return function(t){return r(a(i(t).replace(s,"")),e,"")}}e.exports=l},77317:function(e,t,n){var r=n(3334),i=n(36529),a=n(81211);function o(e){return function(t,n,o){var s=Object(t);if(!i(t)){var l=r(n,3);t=a(t),n=function(e){return l(s[e],e,s)}}var c=e(t,n,o);return c>-1?s[l?t[c]:c]:void 0}}e.exports=o},36208:function(e,t,n){var r=n(64512),i=n(79071),a=n(49828),o=1/0,s=r&&1/a(new r([,-0]))[1]==o?function(e){return new r(e)}:i;e.exports=s},69968:function(e,t,n){var r=n(51035),i={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},a=r(i);e.exports=a},72532:function(e,t,n){var r=n(94715),i=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=i},33934:function(e,t,n){var r=n(23212),i=n(36465),a=n(65568),o=1,s=2;function l(e,t,n,l,c,u){var d=n&o,h=e.length,p=t.length;if(h!=p&&!(d&&p>h))return!1;var f=u.get(e),m=u.get(t);if(f&&m)return f==t&&m==e;var g=-1,v=!0,b=n&s?new r:void 0;u.set(e,t),u.set(t,e);while(++g<h){var y=e[g],w=t[g];if(l)var E=d?l(w,y,g,t,e,u):l(y,w,g,e,t,u);if(void 0!==E){if(E)continue;v=!1;break}if(b){if(!i(t,(function(e,t){if(!a(b,t)&&(y===e||c(y,e,n,l,u)))return b.push(t)}))){v=!1;break}}else if(y!==w&&!c(y,w,n,l,u)){v=!1;break}}return u["delete"](e),u["delete"](t),v}e.exports=l},88861:function(e,t,n){var r=n(65650),i=n(31623),a=n(46285),o=n(33934),s=n(95894),l=n(49828),c=1,u=2,d="[object Boolean]",h="[object Date]",p="[object Error]",f="[object Map]",m="[object Number]",g="[object RegExp]",v="[object Set]",b="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",E="[object DataView]",_=r?r.prototype:void 0,S=_?_.valueOf:void 0;function k(e,t,n,r,_,k,x){switch(n){case E:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case w:return!(e.byteLength!=t.byteLength||!k(new i(e),new i(t)));case d:case h:case m:return a(+e,+t);case p:return e.name==t.name&&e.message==t.message;case g:case b:return e==t+"";case f:var A=s;case v:var N=r&c;if(A||(A=l),e.size!=t.size&&!N)return!1;var C=x.get(e);if(C)return C==t;r|=u,x.set(e,t);var T=o(A(e),A(t),r,_,k,x);return x["delete"](e),T;case y:if(S)return S.call(e)==S.call(t)}return!1}e.exports=k},31182:function(e,t,n){var r=n(80393),i=1,a=Object.prototype,o=a.hasOwnProperty;function s(e,t,n,a,s,l){var c=n&i,u=r(e),d=u.length,h=r(t),p=h.length;if(d!=p&&!c)return!1;var f=d;while(f--){var m=u[f];if(!(c?m in t:o.call(t,m)))return!1}var g=l.get(e),v=l.get(t);if(g&&v)return g==t&&v==e;var b=!0;l.set(e,t),l.set(t,e);var y=c;while(++f<d){m=u[f];var w=e[m],E=t[m];if(a)var _=c?a(E,w,m,t,e,l):a(w,E,m,e,t,l);if(!(void 0===_?w===E||s(w,E,n,a,l):_)){b=!1;break}y||(y="constructor"==m)}if(b&&!y){var S=e.constructor,k=t.constructor;S==k||!("constructor"in e)||!("constructor"in t)||"function"==typeof S&&S instanceof S&&"function"==typeof k&&k instanceof k||(b=!1)}return l["delete"](e),l["delete"](t),b}e.exports=s},41439:function(e,t,n){var r=n(75857),i=n(75234),a=n(80796);function o(e){return a(i(e,void 0,r),e+"")}e.exports=o},74967:function(e,t,n){var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},80393:function(e,t,n){var r=n(48244),i=n(77979),a=n(81211);function o(e){return r(e,a,i)}e.exports=o},93650:function(e,t,n){var r=n(48244),i=n(85832),a=n(25288);function o(e){return r(e,a,i)}e.exports=o},44700:function(e,t,n){var r=n(79067);function i(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}e.exports=i},24367:function(e,t,n){var r=n(67267),i=n(81211);function a(e){var t=i(e),n=t.length;while(n--){var a=t[n],o=e[a];t[n]=[a,o,r(o)]}return t}e.exports=a},94715:function(e,t,n){var r=n(89624),i=n(20155);function a(e,t){var n=i(e,t);return r(n)?n:void 0}e.exports=a},74784:function(e,t,n){var r=n(3766),i=r(Object.getPrototypeOf,Object);e.exports=i},8870:function(e,t,n){var r=n(65650),i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=r?r.toStringTag:void 0;function l(e){var t=a.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(l){}var i=o.call(e);return r&&(t?e[s]=n:delete e[s]),i}e.exports=l},77979:function(e,t,n){var r=n(79847),i=n(99306),a=Object.prototype,o=a.propertyIsEnumerable,s=Object.getOwnPropertySymbols,l=s?function(e){return null==e?[]:(e=Object(e),r(s(e),(function(t){return o.call(e,t)})))}:i;e.exports=l},85832:function(e,t,n){var r=n(11129),i=n(74784),a=n(77979),o=n(99306),s=Object.getOwnPropertySymbols,l=s?function(e){var t=[];while(e)r(t,a(e)),e=i(e);return t}:o;e.exports=l},28486:function(e,t,n){var r=n(33103),i=n(19770),a=n(89413),o=n(64512),s=n(19270),l=n(87379),c=n(64066),u="[object Map]",d="[object Object]",h="[object Promise]",p="[object Set]",f="[object WeakMap]",m="[object DataView]",g=c(r),v=c(i),b=c(a),y=c(o),w=c(s),E=l;(r&&E(new r(new ArrayBuffer(1)))!=m||i&&E(new i)!=u||a&&E(a.resolve())!=h||o&&E(new o)!=p||s&&E(new s)!=f)&&(E=function(e){var t=l(e),n=t==d?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case g:return m;case v:return u;case b:return h;case y:return p;case w:return f}return t}),e.exports=E},20155:function(e){function t(e,t){return null==e?void 0:e[t]}e.exports=t},85899:function(e,t,n){var r=n(93526),i=n(3283),a=n(53142),o=n(69632),s=n(65387),l=n(66040);function c(e,t,n){t=r(t,e);var c=-1,u=t.length,d=!1;while(++c<u){var h=l(t[c]);if(!(d=null!=e&&n(e,h)))break;e=e[h]}return d||++c!=u?d:(u=null==e?0:e.length,!!u&&s(u)&&o(h,u)&&(a(e)||i(e)))}e.exports=c},83417:function(e){var t="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",a=n+r+i,o="\\ufe0e\\ufe0f",s="\\u200d",l=RegExp("["+s+t+a+o+"]");function c(e){return l.test(e)}e.exports=c},15813:function(e){var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function n(e){return t.test(e)}e.exports=n},23305:function(e,t,n){var r=n(94497);function i(){this.__data__=r?r(null):{},this.size=0}e.exports=i},39361:function(e){function t(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=t},11112:function(e,t,n){var r=n(94497),i="__lodash_hash_undefined__",a=Object.prototype,o=a.hasOwnProperty;function s(e){var t=this.__data__;if(r){var n=t[e];return n===i?void 0:n}return o.call(t,e)?t[e]:void 0}e.exports=s},25276:function(e,t,n){var r=n(94497),i=Object.prototype,a=i.hasOwnProperty;function o(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}e.exports=o},57452:function(e,t,n){var r=n(94497),i="__lodash_hash_undefined__";function a(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?i:t,this}e.exports=a},97350:function(e){var t=Object.prototype,n=t.hasOwnProperty;function r(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&n.call(e,"index")&&(r.index=e.index,r.input=e.input),r}e.exports=r},50424:function(e,t,n){var r=n(58898),i=n(92480),a=n(78340),o=n(18069),s=n(92264),l="[object Boolean]",c="[object Date]",u="[object Map]",d="[object Number]",h="[object RegExp]",p="[object Set]",f="[object String]",m="[object Symbol]",g="[object ArrayBuffer]",v="[object DataView]",b="[object Float32Array]",y="[object Float64Array]",w="[object Int8Array]",E="[object Int16Array]",_="[object Int32Array]",S="[object Uint8Array]",k="[object Uint8ClampedArray]",x="[object Uint16Array]",A="[object Uint32Array]";function N(e,t,n){var N=e.constructor;switch(t){case g:return r(e);case l:case c:return new N(+e);case v:return i(e,n);case b:case y:case w:case E:case _:case S:case k:case x:case A:return s(e,n);case u:return new N;case d:case f:return new N(e);case h:return a(e);case p:return new N;case m:return o(e)}}e.exports=N},75964:function(e,t,n){var r=n(39747),i=n(74784),a=n(84882);function o(e){return"function"!=typeof e.constructor||a(e)?{}:r(i(e))}e.exports=o},20714:function(e,t,n){var r=n(65650),i=n(3283),a=n(53142),o=r?r.isConcatSpreadable:void 0;function s(e){return a(e)||i(e)||!!(o&&e&&e[o])}e.exports=s},69632:function(e){var t=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(e,r){var i=typeof e;return r=null==r?t:r,!!r&&("number"==i||"symbol"!=i&&n.test(e))&&e>-1&&e%1==0&&e<r}e.exports=r},74535:function(e,t,n){var r=n(46285),i=n(36529),a=n(69632),o=n(41580);function s(e,t,n){if(!o(n))return!1;var s=typeof t;return!!("number"==s?i(n)&&a(t,n.length):"string"==s&&t in n)&&r(n[t],e)}e.exports=s},65187:function(e,t,n){var r=n(53142),i=n(51187),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;function s(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!i(e))||(o.test(e)||!a.test(e)||null!=t&&e in Object(t))}e.exports=s},79067:function(e){function t(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}e.exports=t},64759:function(e,t,n){var r=n(41950),i=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function a(e){return!!i&&i in e}e.exports=a},84882:function(e){var t=Object.prototype;function n(e){var n=e&&e.constructor,r="function"==typeof n&&n.prototype||t;return e===r}e.exports=n},67267:function(e,t,n){var r=n(41580);function i(e){return e===e&&!r(e)}e.exports=i},12393:function(e){function t(){this.__data__=[],this.size=0}e.exports=t},62049:function(e,t,n){var r=n(97034),i=Array.prototype,a=i.splice;function o(e){var t=this.__data__,n=r(t,e);if(n<0)return!1;var i=t.length-1;return n==i?t.pop():a.call(t,n,1),--this.size,!0}e.exports=o},7144:function(e,t,n){var r=n(97034);function i(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}e.exports=i},7452:function(e,t,n){var r=n(97034);function i(e){return r(this.__data__,e)>-1}e.exports=i},13964:function(e,t,n){var r=n(97034);function i(e,t){var n=this.__data__,i=r(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}e.exports=i},49753:function(e,t,n){var r=n(25098),i=n(1386),a=n(19770);function o(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}e.exports=o},5681:function(e,t,n){var r=n(44700);function i(e){var t=r(this,e)["delete"](e);return this.size-=t?1:0,t}e.exports=i},80088:function(e,t,n){var r=n(44700);function i(e){return r(this,e).get(e)}e.exports=i},54732:function(e,t,n){var r=n(44700);function i(e){return r(this,e).has(e)}e.exports=i},59068:function(e,t,n){var r=n(44700);function i(e,t){var n=r(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}e.exports=i},95894:function(e){function t(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}e.exports=t},23904:function(e){function t(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}e.exports=t},76853:function(e,t,n){var r=n(69011),i=500;function a(e){var t=r(e,(function(e){return n.size===i&&n.clear(),e})),n=t.cache;return t}e.exports=a},94497:function(e,t,n){var r=n(94715),i=r(Object,"create");e.exports=i},98121:function(e,t,n){var r=n(3766),i=r(Object.keys,Object);e.exports=i},38546:function(e){function t(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}e.exports=t},2306:function(e,t,n){e=n.nmd(e);var r=n(74967),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i,s=o&&r.process,l=function(){try{var e=a&&a.require&&a.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(t){}}();e.exports=l},29005:function(e){var t=Object.prototype,n=t.toString;function r(e){return n.call(e)}e.exports=r},3766:function(e){function t(e,t){return function(n){return e(t(n))}}e.exports=t},75234:function(e,t,n){var r=n(86912),i=Math.max;function a(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){var a=arguments,o=-1,s=i(a.length-t,0),l=Array(s);while(++o<s)l[o]=a[t+o];o=-1;var c=Array(t+1);while(++o<t)c[o]=a[o];return c[t]=n(l),r(e,this,c)}}e.exports=a},78942:function(e,t,n){var r=n(74967),i="object"==typeof self&&self&&self.Object===Object&&self,a=r||i||Function("return this")();e.exports=a},78763:function(e){function t(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}e.exports=t},1877:function(e){var t="__lodash_hash_undefined__";function n(e){return this.__data__.set(e,t),this}e.exports=n},8006:function(e){function t(e){return this.__data__.has(e)}e.exports=t},49828:function(e){function t(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}e.exports=t},80796:function(e,t,n){var r=n(47403),i=n(3316),a=i(r);e.exports=a},3316:function(e){var t=800,n=16,r=Date.now;function i(e){var i=0,a=0;return function(){var o=r(),s=n-(o-a);if(a=o,s>0){if(++i>=t)return arguments[0]}else i=0;return e.apply(void 0,arguments)}}e.exports=i},64103:function(e,t,n){var r=n(1386);function i(){this.__data__=new r,this.size=0}e.exports=i},21779:function(e){function t(e){var t=this.__data__,n=t["delete"](e);return this.size=t.size,n}e.exports=t},34162:function(e){function t(e){return this.__data__.get(e)}e.exports=t},7462:function(e){function t(e){return this.__data__.has(e)}e.exports=t},96638:function(e,t,n){var r=n(1386),i=n(19770),a=n(68250),o=200;function s(e,t){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length<o-1)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new a(s)}return n.set(e,t),this.size=n.size,this}e.exports=s},97706:function(e){function t(e,t,n){var r=n-1,i=e.length;while(++r<i)if(e[r]===t)return r;return-1}e.exports=t},82237:function(e,t,n){var r=n(52837),i=n(83417),a=n(92013);function o(e){return i(e)?a(e):r(e)}e.exports=o},96493:function(e,t,n){var r=n(76853),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,n,r,i){t.push(r?i.replace(a,"$1"):n||e)})),t}));e.exports=o},66040:function(e,t,n){var r=n(51187),i=1/0;function a(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}e.exports=a},64066:function(e){var t=Function.prototype,n=t.toString;function r(e){if(null!=e){try{return n.call(e)}catch(t){}try{return e+""}catch(t){}}return""}e.exports=r},62945:function(e){var t=/\s/;function n(e){var n=e.length;while(n--&&t.test(e.charAt(n)));return n}e.exports=n},92013:function(e){var t="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",a=n+r+i,o="\\ufe0e\\ufe0f",s="["+t+"]",l="["+a+"]",c="\\ud83c[\\udffb-\\udfff]",u="(?:"+l+"|"+c+")",d="[^"+t+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",p="[\\ud800-\\udbff][\\udc00-\\udfff]",f="\\u200d",m=u+"?",g="["+o+"]?",v="(?:"+f+"(?:"+[d,h,p].join("|")+")"+g+m+")*",b=g+m+v,y="(?:"+[d+l+"?",l,h,p,s].join("|")+")",w=RegExp(c+"(?="+c+")|"+y+b,"g");function E(e){return e.match(w)||[]}e.exports=E},10482:function(e){var t="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",a=n+r+i,o="\\u2700-\\u27bf",s="a-z\\xdf-\\xf6\\xf8-\\xff",l="\\xac\\xb1\\xd7\\xf7",c="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",u="\\u2000-\\u206f",d=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",h="A-Z\\xc0-\\xd6\\xd8-\\xde",p="\\ufe0e\\ufe0f",f=l+c+u+d,m="['’]",g="["+f+"]",v="["+a+"]",b="\\d+",y="["+o+"]",w="["+s+"]",E="[^"+t+f+b+o+s+h+"]",_="\\ud83c[\\udffb-\\udfff]",S="(?:"+v+"|"+_+")",k="[^"+t+"]",x="(?:\\ud83c[\\udde6-\\uddff]){2}",A="[\\ud800-\\udbff][\\udc00-\\udfff]",N="["+h+"]",C="\\u200d",T="(?:"+w+"|"+E+")",R="(?:"+N+"|"+E+")",O="(?:"+m+"(?:d|ll|m|re|s|t|ve))?",I="(?:"+m+"(?:D|LL|M|RE|S|T|VE))?",L=S+"?",D="["+p+"]?",P="(?:"+C+"(?:"+[k,x,A].join("|")+")"+D+L+")*",M="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",B="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",F=D+L+P,$="(?:"+[y,x,A].join("|")+")"+F,U=RegExp([N+"?"+w+"+"+O+"(?="+[g,N,"$"].join("|")+")",R+"+"+I+"(?="+[g,N+T,"$"].join("|")+")",N+"?"+T+"+"+O,N+"+"+I,B,M,b,$].join("|"),"g");function j(e){return e.match(U)||[]}e.exports=j},56005:function(e,t,n){var r=n(95243),i=n(5485);function a(e){return i(r(e).toLowerCase())}e.exports=a},46108:function(e,t,n){var r=n(69334),i=1,a=4;function o(e){return r(e,i|a)}e.exports=o},16238:function(e){function t(e){var t=-1,n=null==e?0:e.length,r=0,i=[];while(++t<n){var a=e[t];a&&(i[r++]=a)}return i}e.exports=t},82619:function(e){function t(e){return function(){return e}}e.exports=t},12784:function(e,t,n){var r=n(41580),i=n(94495),a=n(6131),o="Expected a function",s=Math.max,l=Math.min;function c(e,t,n){var c,u,d,h,p,f,m=0,g=!1,v=!1,b=!0;if("function"!=typeof e)throw new TypeError(o);function y(t){var n=c,r=u;return c=u=void 0,m=t,h=e.apply(r,n),h}function w(e){return m=e,p=setTimeout(S,t),g?y(e):h}function E(e){var n=e-f,r=e-m,i=t-n;return v?l(i,d-r):i}function _(e){var n=e-f,r=e-m;return void 0===f||n>=t||n<0||v&&r>=d}function S(){var e=i();if(_(e))return k(e);p=setTimeout(S,E(e))}function k(e){return p=void 0,b&&c?y(e):(c=u=void 0,h)}function x(){void 0!==p&&clearTimeout(p),m=0,c=f=u=p=void 0}function A(){return void 0===p?h:k(i())}function N(){var e=i(),n=_(e);if(c=arguments,u=this,f=e,n){if(void 0===p)return w(f);if(v)return clearTimeout(p),p=setTimeout(S,t),y(f)}return void 0===p&&(p=setTimeout(S,t)),h}return t=a(t)||0,r(n)&&(g=!!n.leading,v="maxWait"in n,d=v?s(a(n.maxWait)||0,t):d,b="trailing"in n?!!n.trailing:b),N.cancel=x,N.flush=A,N}e.exports=c},45881:function(e,t,n){var r=n(69968),i=n(95243),a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,o="\\u0300-\\u036f",s="\\ufe20-\\ufe2f",l="\\u20d0-\\u20ff",c=o+s+l,u="["+c+"]",d=RegExp(u,"g");function h(e){return e=i(e),e&&e.replace(a,r).replace(d,"")}e.exports=h},88088:function(e,t,n){var r=n(96576),i=n(90313),a=n(23945),o=n(65406),s=a((function(e,t){return o(e)?r(e,i(t,1,o,!0)):[]}));e.exports=s},46285:function(e){function t(e,t){return e===t||e!==e&&t!==t}e.exports=t},81936:function(e,t,n){var r=n(77317),i=n(92154),a=r(i);e.exports=a},92154:function(e,t,n){var r=n(37250),i=n(3334),a=n(67642),o=Math.max;function s(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var l=null==n?0:a(n);return l<0&&(l=o(s+l,0)),r(e,i(t,3),l)}e.exports=s},24576:function(e,t,n){var r=n(77317),i=n(40458),a=r(i);e.exports=a},40458:function(e,t,n){var r=n(37250),i=n(3334),a=n(67642),o=Math.max,s=Math.min;function l(e,t,n){var l=null==e?0:e.length;if(!l)return-1;var c=l-1;return void 0!==n&&(c=a(n),c=n<0?o(l+c,0):s(c,l-1)),r(e,i(t,3),c,!0)}e.exports=l},75857:function(e,t,n){var r=n(90313);function i(e){var t=null==e?0:e.length;return t?r(e,1):[]}e.exports=i},53435:function(e,t,n){var r=n(90313),i=1/0;function a(e){var t=null==e?0:e.length;return t?r(e,i):[]}e.exports=a},68371:function(e,t,n){var r=n(35636),i=n(23997),a=n(25288);function o(e,t){return null==e?e:r(e,i(t),a)}e.exports=o},46123:function(e,t,n){var r=n(57923);function i(e,t,n){var i=null==e?void 0:r(e,t);return void 0===i?n:i}e.exports=i},52103:function(e,t,n){var r=n(63599),i=n(85899);function a(e,t){return null!=e&&i(e,t,r)}e.exports=a},27276:function(e,t,n){var r=n(43636),i=n(85899);function a(e,t){return null!=e&&i(e,t,r)}e.exports=a},13981:function(e){function t(e){return e&&e.length?e[0]:void 0}e.exports=t},22053:function(e){function t(e){return e}e.exports=t},65145:function(e,t,n){var r=n(2478),i=n(36529),a=n(8138),o=n(67642),s=n(39817),l=Math.max;function c(e,t,n,c){e=i(e)?e:s(e),n=n&&!c?o(n):0;var u=e.length;return n<0&&(n=l(u+n,0)),a(e)?n<=u&&e.indexOf(t,n)>-1:!!u&&r(e,t,n)>-1}e.exports=c},3283:function(e,t,n){var r=n(56027),i=n(80547),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return i(e)&&o.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},53142:function(e){var t=Array.isArray;e.exports=t},36529:function(e,t,n){var r=n(93655),i=n(65387);function a(e){return null!=e&&i(e.length)&&!r(e)}e.exports=a},65406:function(e,t,n){var r=n(36529),i=n(80547);function a(e){return i(e)&&r(e)}e.exports=a},75853:function(e,t,n){e=n.nmd(e);var r=n(78942),i=n(34772),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,s=o&&o.exports===a,l=s?r.Buffer:void 0,c=l?l.isBuffer:void 0,u=c||i;e.exports=u},3514:function(e,t,n){var r=n(195),i=n(28486),a=n(3283),o=n(53142),s=n(36529),l=n(75853),c=n(84882),u=n(8666),d="[object Map]",h="[object Set]",p=Object.prototype,f=p.hasOwnProperty;function m(e){if(null==e)return!0;if(s(e)&&(o(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||u(e)||a(e)))return!e.length;var t=i(e);if(t==d||t==h)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}e.exports=m},46343:function(e,t,n){var r=n(94687);function i(e,t){return r(e,t)}e.exports=i},93655:function(e,t,n){var r=n(87379),i=n(41580),a="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",l="[object Proxy]";function c(e){if(!i(e))return!1;var t=r(e);return t==o||t==s||t==a||t==l}e.exports=c},65387:function(e){var t=9007199254740991;function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=t}e.exports=n},37681:function(e,t,n){var r=n(80777),i=n(49460),a=n(2306),o=a&&a.isMap,s=o?i(o):r;e.exports=s},41580:function(e){function t(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=t},80547:function(e){function t(e){return null!=e&&"object"==typeof e}e.exports=t},48360:function(e,t,n){var r=n(87379),i=n(74784),a=n(80547),o="[object Object]",s=Function.prototype,l=Object.prototype,c=s.toString,u=l.hasOwnProperty,d=c.call(Object);function h(e){if(!a(e)||r(e)!=o)return!1;var t=i(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==d}e.exports=h},83943:function(e,t,n){var r=n(81935),i=n(49460),a=n(2306),o=a&&a.isSet,s=o?i(o):r;e.exports=s},8138:function(e,t,n){var r=n(87379),i=n(53142),a=n(80547),o="[object String]";function s(e){return"string"==typeof e||!i(e)&&a(e)&&r(e)==o}e.exports=s},51187:function(e,t,n){var r=n(87379),i=n(80547),a="[object Symbol]";function o(e){return"symbol"==typeof e||i(e)&&r(e)==a}e.exports=o},8666:function(e,t,n){var r=n(70674),i=n(49460),a=n(2306),o=a&&a.isTypedArray,s=o?i(o):r;e.exports=s},81211:function(e,t,n){var r=n(10358),i=n(195),a=n(36529);function o(e){return a(e)?r(e):i(e)}e.exports=o},25288:function(e,t,n){var r=n(10358),i=n(57200),a=n(36529);function o(e){return a(e)?r(e,!0):i(e)}e.exports=o},45250:function(e,t,n){var r; +/** + * @license + * Lodash <https://lodash.com/> + * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> + * Released under MIT license <https://lodash.com/license> + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */e=n.nmd(e),function(){var i,a="4.17.21",o=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",l="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,h="__lodash_placeholder__",p=1,f=2,m=4,g=1,v=2,b=1,y=2,w=4,E=8,_=16,S=32,k=64,x=128,A=256,N=512,C=30,T="...",R=800,O=16,I=1,L=2,D=3,P=1/0,M=9007199254740991,B=17976931348623157e292,F=NaN,$=4294967295,U=$-1,j=$>>>1,V=[["ary",x],["bind",b],["bindKey",y],["curry",E],["curryRight",_],["flip",N],["partial",S],["partialRight",k],["rearg",A]],K="[object Arguments]",H="[object Array]",G="[object AsyncFunction]",z="[object Boolean]",q="[object Date]",X="[object DOMException]",W="[object Error]",Y="[object Function]",Q="[object GeneratorFunction]",J="[object Map]",Z="[object Number]",ee="[object Null]",te="[object Object]",ne="[object Promise]",re="[object Proxy]",ie="[object RegExp]",ae="[object Set]",oe="[object String]",se="[object Symbol]",le="[object Undefined]",ce="[object WeakMap]",ue="[object WeakSet]",de="[object ArrayBuffer]",he="[object DataView]",pe="[object Float32Array]",fe="[object Float64Array]",me="[object Int8Array]",ge="[object Int16Array]",ve="[object Int32Array]",be="[object Uint8Array]",ye="[object Uint8ClampedArray]",we="[object Uint16Array]",Ee="[object Uint32Array]",_e=/\b__p \+= '';/g,Se=/\b(__p \+=) '' \+/g,ke=/(__e\(.*?\)|\b__t\)) \+\n'';/g,xe=/&(?:amp|lt|gt|quot|#39);/g,Ae=/[&<>"']/g,Ne=RegExp(xe.source),Ce=RegExp(Ae.source),Te=/<%-([\s\S]+?)%>/g,Re=/<%([\s\S]+?)%>/g,Oe=/<%=([\s\S]+?)%>/g,Ie=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Le=/^\w*$/,De=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pe=/[\\^$.*+?()[\]{}|]/g,Me=RegExp(Pe.source),Be=/^\s+/,Fe=/\s/,$e=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ue=/\{\n\/\* \[wrapped with (.+)\] \*/,je=/,? & /,Ve=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ke=/[()=,{}\[\]\/\s]/,He=/\\(\\)?/g,Ge=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ze=/\w*$/,qe=/^[-+]0x[0-9a-f]+$/i,Xe=/^0b[01]+$/i,We=/^\[object .+?Constructor\]$/,Ye=/^0o[0-7]+$/i,Qe=/^(?:0|[1-9]\d*)$/,Je=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ze=/($^)/,et=/['\n\r\u2028\u2029\\]/g,tt="\\ud800-\\udfff",nt="\\u0300-\\u036f",rt="\\ufe20-\\ufe2f",it="\\u20d0-\\u20ff",at=nt+rt+it,ot="\\u2700-\\u27bf",st="a-z\\xdf-\\xf6\\xf8-\\xff",lt="\\xac\\xb1\\xd7\\xf7",ct="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ut="\\u2000-\\u206f",dt=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ht="A-Z\\xc0-\\xd6\\xd8-\\xde",pt="\\ufe0e\\ufe0f",ft=lt+ct+ut+dt,mt="['’]",gt="["+tt+"]",vt="["+ft+"]",bt="["+at+"]",yt="\\d+",wt="["+ot+"]",Et="["+st+"]",_t="[^"+tt+ft+yt+ot+st+ht+"]",St="\\ud83c[\\udffb-\\udfff]",kt="(?:"+bt+"|"+St+")",xt="[^"+tt+"]",At="(?:\\ud83c[\\udde6-\\uddff]){2}",Nt="[\\ud800-\\udbff][\\udc00-\\udfff]",Ct="["+ht+"]",Tt="\\u200d",Rt="(?:"+Et+"|"+_t+")",Ot="(?:"+Ct+"|"+_t+")",It="(?:"+mt+"(?:d|ll|m|re|s|t|ve))?",Lt="(?:"+mt+"(?:D|LL|M|RE|S|T|VE))?",Dt=kt+"?",Pt="["+pt+"]?",Mt="(?:"+Tt+"(?:"+[xt,At,Nt].join("|")+")"+Pt+Dt+")*",Bt="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ft="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",$t=Pt+Dt+Mt,Ut="(?:"+[wt,At,Nt].join("|")+")"+$t,jt="(?:"+[xt+bt+"?",bt,At,Nt,gt].join("|")+")",Vt=RegExp(mt,"g"),Kt=RegExp(bt,"g"),Ht=RegExp(St+"(?="+St+")|"+jt+$t,"g"),Gt=RegExp([Ct+"?"+Et+"+"+It+"(?="+[vt,Ct,"$"].join("|")+")",Ot+"+"+Lt+"(?="+[vt,Ct+Rt,"$"].join("|")+")",Ct+"?"+Rt+"+"+It,Ct+"+"+Lt,Ft,Bt,yt,Ut].join("|"),"g"),zt=RegExp("["+Tt+tt+at+pt+"]"),qt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Xt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Wt=-1,Yt={};Yt[pe]=Yt[fe]=Yt[me]=Yt[ge]=Yt[ve]=Yt[be]=Yt[ye]=Yt[we]=Yt[Ee]=!0,Yt[K]=Yt[H]=Yt[de]=Yt[z]=Yt[he]=Yt[q]=Yt[W]=Yt[Y]=Yt[J]=Yt[Z]=Yt[te]=Yt[ie]=Yt[ae]=Yt[oe]=Yt[ce]=!1;var Qt={};Qt[K]=Qt[H]=Qt[de]=Qt[he]=Qt[z]=Qt[q]=Qt[pe]=Qt[fe]=Qt[me]=Qt[ge]=Qt[ve]=Qt[J]=Qt[Z]=Qt[te]=Qt[ie]=Qt[ae]=Qt[oe]=Qt[se]=Qt[be]=Qt[ye]=Qt[we]=Qt[Ee]=!0,Qt[W]=Qt[Y]=Qt[ce]=!1;var Jt={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},Zt={"&":"&","<":"<",">":">",'"':""","'":"'"},en={"&":"&","<":"<",">":">",""":'"',"'":"'"},tn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},nn=parseFloat,rn=parseInt,an="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,on="object"==typeof self&&self&&self.Object===Object&&self,sn=an||on||Function("return this")(),ln=t&&!t.nodeType&&t,cn=ln&&e&&!e.nodeType&&e,un=cn&&cn.exports===ln,dn=un&&an.process,hn=function(){try{var e=cn&&cn.require&&cn.require("util").types;return e||dn&&dn.binding&&dn.binding("util")}catch(t){}}(),pn=hn&&hn.isArrayBuffer,fn=hn&&hn.isDate,mn=hn&&hn.isMap,gn=hn&&hn.isRegExp,vn=hn&&hn.isSet,bn=hn&&hn.isTypedArray;function yn(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function wn(e,t,n,r){var i=-1,a=null==e?0:e.length;while(++i<a){var o=e[i];t(r,o,n(o),e)}return r}function En(e,t){var n=-1,r=null==e?0:e.length;while(++n<r)if(!1===t(e[n],n,e))break;return e}function _n(e,t){var n=null==e?0:e.length;while(n--)if(!1===t(e[n],n,e))break;return e}function Sn(e,t){var n=-1,r=null==e?0:e.length;while(++n<r)if(!t(e[n],n,e))return!1;return!0}function kn(e,t){var n=-1,r=null==e?0:e.length,i=0,a=[];while(++n<r){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}function xn(e,t){var n=null==e?0:e.length;return!!n&&Bn(e,t,0)>-1}function An(e,t,n){var r=-1,i=null==e?0:e.length;while(++r<i)if(n(t,e[r]))return!0;return!1}function Nn(e,t){var n=-1,r=null==e?0:e.length,i=Array(r);while(++n<r)i[n]=t(e[n],n,e);return i}function Cn(e,t){var n=-1,r=t.length,i=e.length;while(++n<r)e[i+n]=t[n];return e}function Tn(e,t,n,r){var i=-1,a=null==e?0:e.length;r&&a&&(n=e[++i]);while(++i<a)n=t(n,e[i],i,e);return n}function Rn(e,t,n,r){var i=null==e?0:e.length;r&&i&&(n=e[--i]);while(i--)n=t(n,e[i],i,e);return n}function On(e,t){var n=-1,r=null==e?0:e.length;while(++n<r)if(t(e[n],n,e))return!0;return!1}var In=jn("length");function Ln(e){return e.split("")}function Dn(e){return e.match(Ve)||[]}function Pn(e,t,n){var r;return n(e,(function(e,n,i){if(t(e,n,i))return r=n,!1})),r}function Mn(e,t,n,r){var i=e.length,a=n+(r?1:-1);while(r?a--:++a<i)if(t(e[a],a,e))return a;return-1}function Bn(e,t,n){return t===t?pr(e,t,n):Mn(e,$n,n)}function Fn(e,t,n,r){var i=n-1,a=e.length;while(++i<a)if(r(e[i],t))return i;return-1}function $n(e){return e!==e}function Un(e,t){var n=null==e?0:e.length;return n?Gn(e,t)/n:F}function jn(e){return function(t){return null==t?i:t[e]}}function Vn(e){return function(t){return null==e?i:e[t]}}function Kn(e,t,n,r,i){return i(e,(function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)})),n}function Hn(e,t){var n=e.length;e.sort(t);while(n--)e[n]=e[n].value;return e}function Gn(e,t){var n,r=-1,a=e.length;while(++r<a){var o=t(e[r]);o!==i&&(n=n===i?o:n+o)}return n}function zn(e,t){var n=-1,r=Array(e);while(++n<e)r[n]=t(n);return r}function qn(e,t){return Nn(t,(function(t){return[t,e[t]]}))}function Xn(e){return e?e.slice(0,vr(e)+1).replace(Be,""):e}function Wn(e){return function(t){return e(t)}}function Yn(e,t){return Nn(t,(function(t){return e[t]}))}function Qn(e,t){return e.has(t)}function Jn(e,t){var n=-1,r=e.length;while(++n<r&&Bn(t,e[n],0)>-1);return n}function Zn(e,t){var n=e.length;while(n--&&Bn(t,e[n],0)>-1);return n}function er(e,t){var n=e.length,r=0;while(n--)e[n]===t&&++r;return r}var tr=Vn(Jt),nr=Vn(Zt);function rr(e){return"\\"+tn[e]}function ir(e,t){return null==e?i:e[t]}function ar(e){return zt.test(e)}function or(e){return qt.test(e)}function sr(e){var t,n=[];while(!(t=e.next()).done)n.push(t.value);return n}function lr(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function cr(e,t){return function(n){return e(t(n))}}function ur(e,t){var n=-1,r=e.length,i=0,a=[];while(++n<r){var o=e[n];o!==t&&o!==h||(e[n]=h,a[i++]=n)}return a}function dr(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function hr(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function pr(e,t,n){var r=n-1,i=e.length;while(++r<i)if(e[r]===t)return r;return-1}function fr(e,t,n){var r=n+1;while(r--)if(e[r]===t)return r;return r}function mr(e){return ar(e)?yr(e):In(e)}function gr(e){return ar(e)?wr(e):Ln(e)}function vr(e){var t=e.length;while(t--&&Fe.test(e.charAt(t)));return t}var br=Vn(en);function yr(e){var t=Ht.lastIndex=0;while(Ht.test(e))++t;return t}function wr(e){return e.match(Ht)||[]}function Er(e){return e.match(Gt)||[]}var _r=function e(t){t=null==t?sn:Sr.defaults(sn.Object(),t,Sr.pick(sn,Xt));var n=t.Array,r=t.Date,Fe=t.Error,Ve=t.Function,tt=t.Math,nt=t.Object,rt=t.RegExp,it=t.String,at=t.TypeError,ot=n.prototype,st=Ve.prototype,lt=nt.prototype,ct=t["__core-js_shared__"],ut=st.toString,dt=lt.hasOwnProperty,ht=0,pt=function(){var e=/[^.]+$/.exec(ct&&ct.keys&&ct.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),ft=lt.toString,mt=ut.call(nt),gt=sn._,vt=rt("^"+ut.call(dt).replace(Pe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),bt=un?t.Buffer:i,yt=t.Symbol,wt=t.Uint8Array,Et=bt?bt.allocUnsafe:i,_t=cr(nt.getPrototypeOf,nt),St=nt.create,kt=lt.propertyIsEnumerable,xt=ot.splice,At=yt?yt.isConcatSpreadable:i,Nt=yt?yt.iterator:i,Ct=yt?yt.toStringTag:i,Tt=function(){try{var e=qo(nt,"defineProperty");return e({},"",{}),e}catch(t){}}(),Rt=t.clearTimeout!==sn.clearTimeout&&t.clearTimeout,Ot=r&&r.now!==sn.Date.now&&r.now,It=t.setTimeout!==sn.setTimeout&&t.setTimeout,Lt=tt.ceil,Dt=tt.floor,Pt=nt.getOwnPropertySymbols,Mt=bt?bt.isBuffer:i,Bt=t.isFinite,Ft=ot.join,$t=cr(nt.keys,nt),Ut=tt.max,jt=tt.min,Ht=r.now,Gt=t.parseInt,zt=tt.random,qt=ot.reverse,Jt=qo(t,"DataView"),Zt=qo(t,"Map"),en=qo(t,"Promise"),tn=qo(t,"Set"),an=qo(t,"WeakMap"),on=qo(nt,"create"),ln=an&&new an,cn={},dn=Is(Jt),hn=Is(Zt),In=Is(en),Ln=Is(tn),Vn=Is(an),pr=yt?yt.prototype:i,yr=pr?pr.valueOf:i,wr=pr?pr.toString:i;function _r(e){if(xu(e)&&!lu(e)&&!(e instanceof Nr)){if(e instanceof Ar)return e;if(dt.call(e,"__wrapped__"))return Ds(e)}return new Ar(e)}var kr=function(){function e(){}return function(t){if(!ku(t))return{};if(St)return St(t);e.prototype=t;var n=new e;return e.prototype=i,n}}();function xr(){}function Ar(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=i}function Nr(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=$,this.__views__=[]}function Cr(){var e=new Nr(this.__wrapped__);return e.__actions__=ro(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=ro(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=ro(this.__views__),e}function Tr(){if(this.__filtered__){var e=new Nr(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function Rr(){var e=this.__wrapped__.value(),t=this.__dir__,n=lu(e),r=t<0,i=n?e.length:0,a=Jo(0,i,this.__views__),o=a.start,s=a.end,l=s-o,c=r?s:o-1,u=this.__iteratees__,d=u.length,h=0,p=jt(l,this.__takeCount__);if(!n||!r&&i==l&&p==l)return Fa(e,this.__actions__);var f=[];e:while(l--&&h<p){c+=t;var m=-1,g=e[c];while(++m<d){var v=u[m],b=v.iteratee,y=v.type,w=b(g);if(y==L)g=w;else if(!w){if(y==I)continue e;break e}}f[h++]=g}return f}function Or(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){var r=e[t];this.set(r[0],r[1])}}function Ir(){this.__data__=on?on(null):{},this.size=0}function Lr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Dr(e){var t=this.__data__;if(on){var n=t[e];return n===u?i:n}return dt.call(t,e)?t[e]:i}function Pr(e){var t=this.__data__;return on?t[e]!==i:dt.call(t,e)}function Mr(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=on&&t===i?u:t,this}function Br(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){var r=e[t];this.set(r[0],r[1])}}function Fr(){this.__data__=[],this.size=0}function $r(e){var t=this.__data__,n=ui(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():xt.call(t,n,1),--this.size,!0}function Ur(e){var t=this.__data__,n=ui(t,e);return n<0?i:t[n][1]}function jr(e){return ui(this.__data__,e)>-1}function Vr(e,t){var n=this.__data__,r=ui(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Kr(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){var r=e[t];this.set(r[0],r[1])}}function Hr(){this.size=0,this.__data__={hash:new Or,map:new(Zt||Br),string:new Or}}function Gr(e){var t=Go(this,e)["delete"](e);return this.size-=t?1:0,t}function zr(e){return Go(this,e).get(e)}function qr(e){return Go(this,e).has(e)}function Xr(e,t){var n=Go(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function Wr(e){var t=-1,n=null==e?0:e.length;this.__data__=new Kr;while(++t<n)this.add(e[t])}function Yr(e){return this.__data__.set(e,u),this}function Qr(e){return this.__data__.has(e)}function Jr(e){var t=this.__data__=new Br(e);this.size=t.size}function Zr(){this.__data__=new Br,this.size=0}function ei(e){var t=this.__data__,n=t["delete"](e);return this.size=t.size,n}function ti(e){return this.__data__.get(e)}function ni(e){return this.__data__.has(e)}function ri(e,t){var n=this.__data__;if(n instanceof Br){var r=n.__data__;if(!Zt||r.length<o-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Kr(r)}return n.set(e,t),this.size=n.size,this}function ii(e,t){var n=lu(e),r=!n&&su(e),i=!n&&!r&&pu(e),a=!n&&!r&&!i&&Uu(e),o=n||r||i||a,s=o?zn(e.length,it):[],l=s.length;for(var c in e)!t&&!dt.call(e,c)||o&&("length"==c||i&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||os(c,l))||s.push(c);return s}function ai(e){var t=e.length;return t?e[va(0,t-1)]:i}function oi(e,t){return Ts(ro(e),gi(t,0,e.length))}function si(e){return Ts(ro(e))}function li(e,t,n){(n!==i&&!iu(e[t],n)||n===i&&!(t in e))&&fi(e,t,n)}function ci(e,t,n){var r=e[t];dt.call(e,t)&&iu(r,n)&&(n!==i||t in e)||fi(e,t,n)}function ui(e,t){var n=e.length;while(n--)if(iu(e[n][0],t))return n;return-1}function di(e,t,n,r){return _i(e,(function(e,i,a){t(r,e,n(e),a)})),r}function hi(e,t){return e&&io(t,_d(t),e)}function pi(e,t){return e&&io(t,Sd(t),e)}function fi(e,t,n){"__proto__"==t&&Tt?Tt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function mi(e,t){var r=-1,a=t.length,o=n(a),s=null==e;while(++r<a)o[r]=s?i:gd(e,t[r]);return o}function gi(e,t,n){return e===e&&(n!==i&&(e=e<=n?e:n),t!==i&&(e=e>=t?e:t)),e}function vi(e,t,n,r,a,o){var s,l=t&p,c=t&f,u=t&m;if(n&&(s=a?n(e,r,a,o):n(e)),s!==i)return s;if(!ku(e))return e;var d=lu(e);if(d){if(s=ts(e),!l)return ro(e,s)}else{var h=Qo(e),g=h==Y||h==Q;if(pu(e))return qa(e,l);if(h==te||h==K||g&&!a){if(s=c||g?{}:ns(e),!l)return c?oo(e,pi(s,e)):ao(e,hi(s,e))}else{if(!Qt[h])return a?e:{};s=rs(e,h,l)}}o||(o=new Jr);var v=o.get(e);if(v)return v;o.set(e,s),Bu(e)?e.forEach((function(r){s.add(vi(r,t,n,r,e,o))})):Au(e)&&e.forEach((function(r,i){s.set(i,vi(r,t,n,i,e,o))}));var b=u?c?Uo:$o:c?Sd:_d,y=d?i:b(e);return En(y||e,(function(r,i){y&&(i=r,r=e[i]),ci(s,i,vi(r,t,n,i,e,o))})),s}function bi(e){var t=_d(e);return function(n){return yi(n,e,t)}}function yi(e,t,n){var r=n.length;if(null==e)return!r;e=nt(e);while(r--){var a=n[r],o=t[a],s=e[a];if(s===i&&!(a in e)||!o(s))return!1}return!0}function wi(e,t,n){if("function"!=typeof e)throw new at(l);return xs((function(){e.apply(i,n)}),t)}function Ei(e,t,n,r){var i=-1,a=xn,s=!0,l=e.length,c=[],u=t.length;if(!l)return c;n&&(t=Nn(t,Wn(n))),r?(a=An,s=!1):t.length>=o&&(a=Qn,s=!1,t=new Wr(t));e:while(++i<l){var d=e[i],h=null==n?d:n(d);if(d=r||0!==d?d:0,s&&h===h){var p=u;while(p--)if(t[p]===h)continue e;c.push(d)}else a(t,h,r)||c.push(d)}return c}_r.templateSettings={escape:Te,evaluate:Re,interpolate:Oe,variable:"",imports:{_:_r}},_r.prototype=xr.prototype,_r.prototype.constructor=_r,Ar.prototype=kr(xr.prototype),Ar.prototype.constructor=Ar,Nr.prototype=kr(xr.prototype),Nr.prototype.constructor=Nr,Or.prototype.clear=Ir,Or.prototype["delete"]=Lr,Or.prototype.get=Dr,Or.prototype.has=Pr,Or.prototype.set=Mr,Br.prototype.clear=Fr,Br.prototype["delete"]=$r,Br.prototype.get=Ur,Br.prototype.has=jr,Br.prototype.set=Vr,Kr.prototype.clear=Hr,Kr.prototype["delete"]=Gr,Kr.prototype.get=zr,Kr.prototype.has=qr,Kr.prototype.set=Xr,Wr.prototype.add=Wr.prototype.push=Yr,Wr.prototype.has=Qr,Jr.prototype.clear=Zr,Jr.prototype["delete"]=ei,Jr.prototype.get=ti,Jr.prototype.has=ni,Jr.prototype.set=ri;var _i=co(Oi),Si=co(Ii,!0);function ki(e,t){var n=!0;return _i(e,(function(e,r,i){return n=!!t(e,r,i),n})),n}function xi(e,t,n){var r=-1,a=e.length;while(++r<a){var o=e[r],s=t(o);if(null!=s&&(l===i?s===s&&!$u(s):n(s,l)))var l=s,c=o}return c}function Ai(e,t,n,r){var a=e.length;n=Xu(n),n<0&&(n=-n>a?0:a+n),r=r===i||r>a?a:Xu(r),r<0&&(r+=a),r=n>r?0:Wu(r);while(n<r)e[n++]=t;return e}function Ni(e,t){var n=[];return _i(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n}function Ci(e,t,n,r,i){var a=-1,o=e.length;n||(n=as),i||(i=[]);while(++a<o){var s=e[a];t>0&&n(s)?t>1?Ci(s,t-1,n,r,i):Cn(i,s):r||(i[i.length]=s)}return i}var Ti=uo(),Ri=uo(!0);function Oi(e,t){return e&&Ti(e,t,_d)}function Ii(e,t){return e&&Ri(e,t,_d)}function Li(e,t){return kn(t,(function(t){return Eu(e[t])}))}function Di(e,t){t=Ka(t,e);var n=0,r=t.length;while(null!=e&&n<r)e=e[Os(t[n++])];return n&&n==r?e:i}function Pi(e,t,n){var r=t(e);return lu(e)?r:Cn(r,n(e))}function Mi(e){return null==e?e===i?le:ee:Ct&&Ct in nt(e)?Xo(e):ys(e)}function Bi(e,t){return e>t}function Fi(e,t){return null!=e&&dt.call(e,t)}function $i(e,t){return null!=e&&t in nt(e)}function Ui(e,t,n){return e>=jt(t,n)&&e<Ut(t,n)}function ji(e,t,r){var a=r?An:xn,o=e[0].length,s=e.length,l=s,c=n(s),u=1/0,d=[];while(l--){var h=e[l];l&&t&&(h=Nn(h,Wn(t))),u=jt(h.length,u),c[l]=!r&&(t||o>=120&&h.length>=120)?new Wr(l&&h):i}h=e[0];var p=-1,f=c[0];e:while(++p<o&&d.length<u){var m=h[p],g=t?t(m):m;if(m=r||0!==m?m:0,!(f?Qn(f,g):a(d,g,r))){l=s;while(--l){var v=c[l];if(!(v?Qn(v,g):a(e[l],g,r)))continue e}f&&f.push(g),d.push(m)}}return d}function Vi(e,t,n,r){return Oi(e,(function(e,i,a){t(r,n(e),i,a)})),r}function Ki(e,t,n){t=Ka(t,e),e=Es(e,t);var r=null==e?e:e[Os(al(t))];return null==r?i:yn(r,e,n)}function Hi(e){return xu(e)&&Mi(e)==K}function Gi(e){return xu(e)&&Mi(e)==de}function zi(e){return xu(e)&&Mi(e)==q}function qi(e,t,n,r,i){return e===t||(null==e||null==t||!xu(e)&&!xu(t)?e!==e&&t!==t:Xi(e,t,n,r,qi,i))}function Xi(e,t,n,r,i,a){var o=lu(e),s=lu(t),l=o?H:Qo(e),c=s?H:Qo(t);l=l==K?te:l,c=c==K?te:c;var u=l==te,d=c==te,h=l==c;if(h&&pu(e)){if(!pu(t))return!1;o=!0,u=!1}if(h&&!u)return a||(a=new Jr),o||Uu(e)?Po(e,t,n,r,i,a):Mo(e,t,l,n,r,i,a);if(!(n&g)){var p=u&&dt.call(e,"__wrapped__"),f=d&&dt.call(t,"__wrapped__");if(p||f){var m=p?e.value():e,v=f?t.value():t;return a||(a=new Jr),i(m,v,n,r,a)}}return!!h&&(a||(a=new Jr),Bo(e,t,n,r,i,a))}function Wi(e){return xu(e)&&Qo(e)==J}function Yi(e,t,n,r){var a=n.length,o=a,s=!r;if(null==e)return!o;e=nt(e);while(a--){var l=n[a];if(s&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}while(++a<o){l=n[a];var c=l[0],u=e[c],d=l[1];if(s&&l[2]){if(u===i&&!(c in e))return!1}else{var h=new Jr;if(r)var p=r(u,d,c,e,t,h);if(!(p===i?qi(d,u,g|v,r,h):p))return!1}}return!0}function Qi(e){if(!ku(e)||ds(e))return!1;var t=Eu(e)?vt:We;return t.test(Is(e))}function Ji(e){return xu(e)&&Mi(e)==ie}function Zi(e){return xu(e)&&Qo(e)==ae}function ea(e){return xu(e)&&Su(e.length)&&!!Yt[Mi(e)]}function ta(e){return"function"==typeof e?e:null==e?Rh:"object"==typeof e?lu(e)?sa(e[0],e[1]):oa(e):Kh(e)}function na(e){if(!ps(e))return $t(e);var t=[];for(var n in nt(e))dt.call(e,n)&&"constructor"!=n&&t.push(n);return t}function ra(e){if(!ku(e))return bs(e);var t=ps(e),n=[];for(var r in e)("constructor"!=r||!t&&dt.call(e,r))&&n.push(r);return n}function ia(e,t){return e<t}function aa(e,t){var r=-1,i=uu(e)?n(e.length):[];return _i(e,(function(e,n,a){i[++r]=t(e,n,a)})),i}function oa(e){var t=zo(e);return 1==t.length&&t[0][2]?ms(t[0][0],t[0][1]):function(n){return n===e||Yi(n,e,t)}}function sa(e,t){return ls(e)&&fs(t)?ms(Os(e),t):function(n){var r=gd(n,e);return r===i&&r===t?bd(n,e):qi(t,r,g|v)}}function la(e,t,n,r,a){e!==t&&Ti(t,(function(o,s){if(a||(a=new Jr),ku(o))ca(e,t,s,n,la,r,a);else{var l=r?r(Ss(e,s),o,s+"",e,t,a):i;l===i&&(l=o),li(e,s,l)}}),Sd)}function ca(e,t,n,r,a,o,s){var l=Ss(e,n),c=Ss(t,n),u=s.get(c);if(u)li(e,n,u);else{var d=o?o(l,c,n+"",e,t,s):i,h=d===i;if(h){var p=lu(c),f=!p&&pu(c),m=!p&&!f&&Uu(c);d=c,p||f||m?lu(l)?d=l:du(l)?d=ro(l):f?(h=!1,d=qa(c,!0)):m?(h=!1,d=Ja(c,!0)):d=[]:Du(c)||su(c)?(d=l,su(l)?d=Qu(l):ku(l)&&!Eu(l)||(d=ns(c))):h=!1}h&&(s.set(c,d),a(d,c,r,o,s),s["delete"](c)),li(e,n,d)}}function ua(e,t){var n=e.length;if(n)return t+=t<0?n:0,os(t,n)?e[t]:i}function da(e,t,n){t=t.length?Nn(t,(function(e){return lu(e)?function(t){return Di(t,1===e.length?e[0]:e)}:e})):[Rh];var r=-1;t=Nn(t,Wn(Ho()));var i=aa(e,(function(e,n,i){var a=Nn(t,(function(t){return t(e)}));return{criteria:a,index:++r,value:e}}));return Hn(i,(function(e,t){return eo(e,t,n)}))}function ha(e,t){return pa(e,t,(function(t,n){return bd(e,n)}))}function pa(e,t,n){var r=-1,i=t.length,a={};while(++r<i){var o=t[r],s=Di(e,o);n(s,o)&&Sa(a,Ka(o,e),s)}return a}function fa(e){return function(t){return Di(t,e)}}function ma(e,t,n,r){var i=r?Fn:Bn,a=-1,o=t.length,s=e;e===t&&(t=ro(t)),n&&(s=Nn(e,Wn(n)));while(++a<o){var l=0,c=t[a],u=n?n(c):c;while((l=i(s,u,l,r))>-1)s!==e&&xt.call(s,l,1),xt.call(e,l,1)}return e}function ga(e,t){var n=e?t.length:0,r=n-1;while(n--){var i=t[n];if(n==r||i!==a){var a=i;os(i)?xt.call(e,i,1):Pa(e,i)}}return e}function va(e,t){return e+Dt(zt()*(t-e+1))}function ba(e,t,r,i){var a=-1,o=Ut(Lt((t-e)/(r||1)),0),s=n(o);while(o--)s[i?o:++a]=e,e+=r;return s}function ya(e,t){var n="";if(!e||t<1||t>M)return n;do{t%2&&(n+=e),t=Dt(t/2),t&&(e+=e)}while(t);return n}function wa(e,t){return As(ws(e,t,Rh),e+"")}function Ea(e){return ai(jd(e))}function _a(e,t){var n=jd(e);return Ts(n,gi(t,0,n.length))}function Sa(e,t,n,r){if(!ku(e))return e;t=Ka(t,e);var a=-1,o=t.length,s=o-1,l=e;while(null!=l&&++a<o){var c=Os(t[a]),u=n;if("__proto__"===c||"constructor"===c||"prototype"===c)return e;if(a!=s){var d=l[c];u=r?r(d,c,l):i,u===i&&(u=ku(d)?d:os(t[a+1])?[]:{})}ci(l,c,u),l=l[c]}return e}var ka=ln?function(e,t){return ln.set(e,t),e}:Rh,xa=Tt?function(e,t){return Tt(e,"toString",{configurable:!0,enumerable:!1,value:Ah(t),writable:!0})}:Rh;function Aa(e){return Ts(jd(e))}function Na(e,t,r){var i=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;var o=n(a);while(++i<a)o[i]=e[i+t];return o}function Ca(e,t){var n;return _i(e,(function(e,r,i){return n=t(e,r,i),!n})),!!n}function Ta(e,t,n){var r=0,i=null==e?r:e.length;if("number"==typeof t&&t===t&&i<=j){while(r<i){var a=r+i>>>1,o=e[a];null!==o&&!$u(o)&&(n?o<=t:o<t)?r=a+1:i=a}return i}return Ra(e,t,Rh,n)}function Ra(e,t,n,r){var a=0,o=null==e?0:e.length;if(0===o)return 0;t=n(t);var s=t!==t,l=null===t,c=$u(t),u=t===i;while(a<o){var d=Dt((a+o)/2),h=n(e[d]),p=h!==i,f=null===h,m=h===h,g=$u(h);if(s)var v=r||m;else v=u?m&&(r||p):l?m&&p&&(r||!f):c?m&&p&&!f&&(r||!g):!f&&!g&&(r?h<=t:h<t);v?a=d+1:o=d}return jt(o,U)}function Oa(e,t){var n=-1,r=e.length,i=0,a=[];while(++n<r){var o=e[n],s=t?t(o):o;if(!n||!iu(s,l)){var l=s;a[i++]=0===o?0:o}}return a}function Ia(e){return"number"==typeof e?e:$u(e)?F:+e}function La(e){if("string"==typeof e)return e;if(lu(e))return Nn(e,La)+"";if($u(e))return wr?wr.call(e):"";var t=e+"";return"0"==t&&1/e==-P?"-0":t}function Da(e,t,n){var r=-1,i=xn,a=e.length,s=!0,l=[],c=l;if(n)s=!1,i=An;else if(a>=o){var u=t?null:To(e);if(u)return dr(u);s=!1,i=Qn,c=new Wr}else c=t?[]:l;e:while(++r<a){var d=e[r],h=t?t(d):d;if(d=n||0!==d?d:0,s&&h===h){var p=c.length;while(p--)if(c[p]===h)continue e;t&&c.push(h),l.push(d)}else i(c,h,n)||(c!==l&&c.push(h),l.push(d))}return l}function Pa(e,t){return t=Ka(t,e),e=Es(e,t),null==e||delete e[Os(al(t))]}function Ma(e,t,n,r){return Sa(e,t,n(Di(e,t)),r)}function Ba(e,t,n,r){var i=e.length,a=r?i:-1;while((r?a--:++a<i)&&t(e[a],a,e));return n?Na(e,r?0:a,r?a+1:i):Na(e,r?a+1:0,r?i:a)}function Fa(e,t){var n=e;return n instanceof Nr&&(n=n.value()),Tn(t,(function(e,t){return t.func.apply(t.thisArg,Cn([e],t.args))}),n)}function $a(e,t,r){var i=e.length;if(i<2)return i?Da(e[0]):[];var a=-1,o=n(i);while(++a<i){var s=e[a],l=-1;while(++l<i)l!=a&&(o[a]=Ei(o[a]||s,e[l],t,r))}return Da(Ci(o,1),t,r)}function Ua(e,t,n){var r=-1,a=e.length,o=t.length,s={};while(++r<a){var l=r<o?t[r]:i;n(s,e[r],l)}return s}function ja(e){return du(e)?e:[]}function Va(e){return"function"==typeof e?e:Rh}function Ka(e,t){return lu(e)?e:ls(e,t)?[e]:Rs(Zu(e))}var Ha=wa;function Ga(e,t,n){var r=e.length;return n=n===i?r:n,!t&&n>=r?e:Na(e,t,n)}var za=Rt||function(e){return sn.clearTimeout(e)};function qa(e,t){if(t)return e.slice();var n=e.length,r=Et?Et(n):new e.constructor(n);return e.copy(r),r}function Xa(e){var t=new e.constructor(e.byteLength);return new wt(t).set(new wt(e)),t}function Wa(e,t){var n=t?Xa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function Ya(e){var t=new e.constructor(e.source,ze.exec(e));return t.lastIndex=e.lastIndex,t}function Qa(e){return yr?nt(yr.call(e)):{}}function Ja(e,t){var n=t?Xa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Za(e,t){if(e!==t){var n=e!==i,r=null===e,a=e===e,o=$u(e),s=t!==i,l=null===t,c=t===t,u=$u(t);if(!l&&!u&&!o&&e>t||o&&s&&c&&!l&&!u||r&&s&&c||!n&&c||!a)return 1;if(!r&&!o&&!u&&e<t||u&&n&&a&&!r&&!o||l&&n&&a||!s&&a||!c)return-1}return 0}function eo(e,t,n){var r=-1,i=e.criteria,a=t.criteria,o=i.length,s=n.length;while(++r<o){var l=Za(i[r],a[r]);if(l){if(r>=s)return l;var c=n[r];return l*("desc"==c?-1:1)}}return e.index-t.index}function to(e,t,r,i){var a=-1,o=e.length,s=r.length,l=-1,c=t.length,u=Ut(o-s,0),d=n(c+u),h=!i;while(++l<c)d[l]=t[l];while(++a<s)(h||a<o)&&(d[r[a]]=e[a]);while(u--)d[l++]=e[a++];return d}function no(e,t,r,i){var a=-1,o=e.length,s=-1,l=r.length,c=-1,u=t.length,d=Ut(o-l,0),h=n(d+u),p=!i;while(++a<d)h[a]=e[a];var f=a;while(++c<u)h[f+c]=t[c];while(++s<l)(p||a<o)&&(h[f+r[s]]=e[a++]);return h}function ro(e,t){var r=-1,i=e.length;t||(t=n(i));while(++r<i)t[r]=e[r];return t}function io(e,t,n,r){var a=!n;n||(n={});var o=-1,s=t.length;while(++o<s){var l=t[o],c=r?r(n[l],e[l],l,n,e):i;c===i&&(c=e[l]),a?fi(n,l,c):ci(n,l,c)}return n}function ao(e,t){return io(e,Wo(e),t)}function oo(e,t){return io(e,Yo(e),t)}function so(e,t){return function(n,r){var i=lu(n)?wn:di,a=t?t():{};return i(n,e,Ho(r,2),a)}}function lo(e){return wa((function(t,n){var r=-1,a=n.length,o=a>1?n[a-1]:i,s=a>2?n[2]:i;o=e.length>3&&"function"==typeof o?(a--,o):i,s&&ss(n[0],n[1],s)&&(o=a<3?i:o,a=1),t=nt(t);while(++r<a){var l=n[r];l&&e(t,l,r,o)}return t}))}function co(e,t){return function(n,r){if(null==n)return n;if(!uu(n))return e(n,r);var i=n.length,a=t?i:-1,o=nt(n);while(t?a--:++a<i)if(!1===r(o[a],a,o))break;return n}}function uo(e){return function(t,n,r){var i=-1,a=nt(t),o=r(t),s=o.length;while(s--){var l=o[e?s:++i];if(!1===n(a[l],l,a))break}return t}}function ho(e,t,n){var r=t&b,i=mo(e);function a(){var t=this&&this!==sn&&this instanceof a?i:e;return t.apply(r?n:this,arguments)}return a}function po(e){return function(t){t=Zu(t);var n=ar(t)?gr(t):i,r=n?n[0]:t.charAt(0),a=n?Ga(n,1).join(""):t.slice(1);return r[e]()+a}}function fo(e){return function(t){return Tn(Eh(Xd(t).replace(Vt,"")),e,"")}}function mo(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=kr(e.prototype),r=e.apply(n,t);return ku(r)?r:n}}function go(e,t,r){var a=mo(e);function o(){var s=arguments.length,l=n(s),c=s,u=Ko(o);while(c--)l[c]=arguments[c];var d=s<3&&l[0]!==u&&l[s-1]!==u?[]:ur(l,u);if(s-=d.length,s<r)return No(e,t,yo,o.placeholder,i,l,d,i,i,r-s);var h=this&&this!==sn&&this instanceof o?a:e;return yn(h,this,l)}return o}function vo(e){return function(t,n,r){var a=nt(t);if(!uu(t)){var o=Ho(n,3);t=_d(t),n=function(e){return o(a[e],e,a)}}var s=e(t,n,r);return s>-1?a[o?t[s]:s]:i}}function bo(e){return Fo((function(t){var n=t.length,r=n,a=Ar.prototype.thru;e&&t.reverse();while(r--){var o=t[r];if("function"!=typeof o)throw new at(l);if(a&&!s&&"wrapper"==Vo(o))var s=new Ar([],!0)}r=s?r:n;while(++r<n){o=t[r];var c=Vo(o),u="wrapper"==c?jo(o):i;s=u&&us(u[0])&&u[1]==(x|E|S|A)&&!u[4].length&&1==u[9]?s[Vo(u[0])].apply(s,u[3]):1==o.length&&us(o)?s[c]():s.thru(o)}return function(){var e=arguments,r=e[0];if(s&&1==e.length&&lu(r))return s.plant(r).value();var i=0,a=n?t[i].apply(this,e):r;while(++i<n)a=t[i].call(this,a);return a}}))}function yo(e,t,r,a,o,s,l,c,u,d){var h=t&x,p=t&b,f=t&y,m=t&(E|_),g=t&N,v=f?i:mo(e);function w(){var i=arguments.length,b=n(i),y=i;while(y--)b[y]=arguments[y];if(m)var E=Ko(w),_=er(b,E);if(a&&(b=to(b,a,o,m)),s&&(b=no(b,s,l,m)),i-=_,m&&i<d){var S=ur(b,E);return No(e,t,yo,w.placeholder,r,b,S,c,u,d-i)}var k=p?r:this,x=f?k[e]:e;return i=b.length,c?b=_s(b,c):g&&i>1&&b.reverse(),h&&u<i&&(b.length=u),this&&this!==sn&&this instanceof w&&(x=v||mo(x)),x.apply(k,b)}return w}function wo(e,t){return function(n,r){return Vi(n,e,t(r),{})}}function Eo(e,t){return function(n,r){var a;if(n===i&&r===i)return t;if(n!==i&&(a=n),r!==i){if(a===i)return r;"string"==typeof n||"string"==typeof r?(n=La(n),r=La(r)):(n=Ia(n),r=Ia(r)),a=e(n,r)}return a}}function _o(e){return Fo((function(t){return t=Nn(t,Wn(Ho())),wa((function(n){var r=this;return e(t,(function(e){return yn(e,r,n)}))}))}))}function So(e,t){t=t===i?" ":La(t);var n=t.length;if(n<2)return n?ya(t,e):t;var r=ya(t,Lt(e/mr(t)));return ar(t)?Ga(gr(r),0,e).join(""):r.slice(0,e)}function ko(e,t,r,i){var a=t&b,o=mo(e);function s(){var t=-1,l=arguments.length,c=-1,u=i.length,d=n(u+l),h=this&&this!==sn&&this instanceof s?o:e;while(++c<u)d[c]=i[c];while(l--)d[c++]=arguments[++t];return yn(h,a?r:this,d)}return s}function xo(e){return function(t,n,r){return r&&"number"!=typeof r&&ss(t,n,r)&&(n=r=i),t=qu(t),n===i?(n=t,t=0):n=qu(n),r=r===i?t<n?1:-1:qu(r),ba(t,n,r,e)}}function Ao(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=Yu(t),n=Yu(n)),e(t,n)}}function No(e,t,n,r,a,o,s,l,c,u){var d=t&E,h=d?s:i,p=d?i:s,f=d?o:i,m=d?i:o;t|=d?S:k,t&=~(d?k:S),t&w||(t&=~(b|y));var g=[e,t,a,f,h,m,p,l,c,u],v=n.apply(i,g);return us(e)&&ks(v,g),v.placeholder=r,Ns(v,e,t)}function Co(e){var t=tt[e];return function(e,n){if(e=Yu(e),n=null==n?0:jt(Xu(n),292),n&&Bt(e)){var r=(Zu(e)+"e").split("e"),i=t(r[0]+"e"+(+r[1]+n));return r=(Zu(i)+"e").split("e"),+(r[0]+"e"+(+r[1]-n))}return t(e)}}var To=tn&&1/dr(new tn([,-0]))[1]==P?function(e){return new tn(e)}:Fh;function Ro(e){return function(t){var n=Qo(t);return n==J?lr(t):n==ae?hr(t):qn(t,e(t))}}function Oo(e,t,n,r,a,o,s,c){var u=t&y;if(!u&&"function"!=typeof e)throw new at(l);var d=r?r.length:0;if(d||(t&=~(S|k),r=a=i),s=s===i?s:Ut(Xu(s),0),c=c===i?c:Xu(c),d-=a?a.length:0,t&k){var h=r,p=a;r=a=i}var f=u?i:jo(e),m=[e,t,n,r,a,h,p,o,s,c];if(f&&vs(m,f),e=m[0],t=m[1],n=m[2],r=m[3],a=m[4],c=m[9]=m[9]===i?u?0:e.length:Ut(m[9]-d,0),!c&&t&(E|_)&&(t&=~(E|_)),t&&t!=b)g=t==E||t==_?go(e,t,c):t!=S&&t!=(b|S)||a.length?yo.apply(i,m):ko(e,t,n,r);else var g=ho(e,t,n);var v=f?ka:ks;return Ns(v(g,m),e,t)}function Io(e,t,n,r){return e===i||iu(e,lt[n])&&!dt.call(r,n)?t:e}function Lo(e,t,n,r,a,o){return ku(e)&&ku(t)&&(o.set(t,e),la(e,t,i,Lo,o),o["delete"](t)),e}function Do(e){return Du(e)?i:e}function Po(e,t,n,r,a,o){var s=n&g,l=e.length,c=t.length;if(l!=c&&!(s&&c>l))return!1;var u=o.get(e),d=o.get(t);if(u&&d)return u==t&&d==e;var h=-1,p=!0,f=n&v?new Wr:i;o.set(e,t),o.set(t,e);while(++h<l){var m=e[h],b=t[h];if(r)var y=s?r(b,m,h,t,e,o):r(m,b,h,e,t,o);if(y!==i){if(y)continue;p=!1;break}if(f){if(!On(t,(function(e,t){if(!Qn(f,t)&&(m===e||a(m,e,n,r,o)))return f.push(t)}))){p=!1;break}}else if(m!==b&&!a(m,b,n,r,o)){p=!1;break}}return o["delete"](e),o["delete"](t),p}function Mo(e,t,n,r,i,a,o){switch(n){case he:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case de:return!(e.byteLength!=t.byteLength||!a(new wt(e),new wt(t)));case z:case q:case Z:return iu(+e,+t);case W:return e.name==t.name&&e.message==t.message;case ie:case oe:return e==t+"";case J:var s=lr;case ae:var l=r&g;if(s||(s=dr),e.size!=t.size&&!l)return!1;var c=o.get(e);if(c)return c==t;r|=v,o.set(e,t);var u=Po(s(e),s(t),r,i,a,o);return o["delete"](e),u;case se:if(yr)return yr.call(e)==yr.call(t)}return!1}function Bo(e,t,n,r,a,o){var s=n&g,l=$o(e),c=l.length,u=$o(t),d=u.length;if(c!=d&&!s)return!1;var h=c;while(h--){var p=l[h];if(!(s?p in t:dt.call(t,p)))return!1}var f=o.get(e),m=o.get(t);if(f&&m)return f==t&&m==e;var v=!0;o.set(e,t),o.set(t,e);var b=s;while(++h<c){p=l[h];var y=e[p],w=t[p];if(r)var E=s?r(w,y,p,t,e,o):r(y,w,p,e,t,o);if(!(E===i?y===w||a(y,w,n,r,o):E)){v=!1;break}b||(b="constructor"==p)}if(v&&!b){var _=e.constructor,S=t.constructor;_==S||!("constructor"in e)||!("constructor"in t)||"function"==typeof _&&_ instanceof _&&"function"==typeof S&&S instanceof S||(v=!1)}return o["delete"](e),o["delete"](t),v}function Fo(e){return As(ws(e,i,Xs),e+"")}function $o(e){return Pi(e,_d,Wo)}function Uo(e){return Pi(e,Sd,Yo)}var jo=ln?function(e){return ln.get(e)}:Fh;function Vo(e){var t=e.name+"",n=cn[t],r=dt.call(cn,t)?n.length:0;while(r--){var i=n[r],a=i.func;if(null==a||a==e)return i.name}return t}function Ko(e){var t=dt.call(_r,"placeholder")?_r:e;return t.placeholder}function Ho(){var e=_r.iteratee||Oh;return e=e===Oh?ta:e,arguments.length?e(arguments[0],arguments[1]):e}function Go(e,t){var n=e.__data__;return cs(t)?n["string"==typeof t?"string":"hash"]:n.map}function zo(e){var t=_d(e),n=t.length;while(n--){var r=t[n],i=e[r];t[n]=[r,i,fs(i)]}return t}function qo(e,t){var n=ir(e,t);return Qi(n)?n:i}function Xo(e){var t=dt.call(e,Ct),n=e[Ct];try{e[Ct]=i;var r=!0}catch(o){}var a=ft.call(e);return r&&(t?e[Ct]=n:delete e[Ct]),a}var Wo=Pt?function(e){return null==e?[]:(e=nt(e),kn(Pt(e),(function(t){return kt.call(e,t)})))}:qh,Yo=Pt?function(e){var t=[];while(e)Cn(t,Wo(e)),e=_t(e);return t}:qh,Qo=Mi;function Jo(e,t,n){var r=-1,i=n.length;while(++r<i){var a=n[r],o=a.size;switch(a.type){case"drop":e+=o;break;case"dropRight":t-=o;break;case"take":t=jt(t,e+o);break;case"takeRight":e=Ut(e,t-o);break}}return{start:e,end:t}}function Zo(e){var t=e.match(Ue);return t?t[1].split(je):[]}function es(e,t,n){t=Ka(t,e);var r=-1,i=t.length,a=!1;while(++r<i){var o=Os(t[r]);if(!(a=null!=e&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=null==e?0:e.length,!!i&&Su(i)&&os(o,i)&&(lu(e)||su(e)))}function ts(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&dt.call(e,"index")&&(n.index=e.index,n.input=e.input),n}function ns(e){return"function"!=typeof e.constructor||ps(e)?{}:kr(_t(e))}function rs(e,t,n){var r=e.constructor;switch(t){case de:return Xa(e);case z:case q:return new r(+e);case he:return Wa(e,n);case pe:case fe:case me:case ge:case ve:case be:case ye:case we:case Ee:return Ja(e,n);case J:return new r;case Z:case oe:return new r(e);case ie:return Ya(e);case ae:return new r;case se:return Qa(e)}}function is(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace($e,"{\n/* [wrapped with "+t+"] */\n")}function as(e){return lu(e)||su(e)||!!(At&&e&&e[At])}function os(e,t){var n=typeof e;return t=null==t?M:t,!!t&&("number"==n||"symbol"!=n&&Qe.test(e))&&e>-1&&e%1==0&&e<t}function ss(e,t,n){if(!ku(n))return!1;var r=typeof t;return!!("number"==r?uu(n)&&os(t,n.length):"string"==r&&t in n)&&iu(n[t],e)}function ls(e,t){if(lu(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!$u(e))||(Le.test(e)||!Ie.test(e)||null!=t&&e in nt(t))}function cs(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}function us(e){var t=Vo(e),n=_r[t];if("function"!=typeof n||!(t in Nr.prototype))return!1;if(e===n)return!0;var r=jo(n);return!!r&&e===r[0]}function ds(e){return!!pt&&pt in e}(Jt&&Qo(new Jt(new ArrayBuffer(1)))!=he||Zt&&Qo(new Zt)!=J||en&&Qo(en.resolve())!=ne||tn&&Qo(new tn)!=ae||an&&Qo(new an)!=ce)&&(Qo=function(e){var t=Mi(e),n=t==te?e.constructor:i,r=n?Is(n):"";if(r)switch(r){case dn:return he;case hn:return J;case In:return ne;case Ln:return ae;case Vn:return ce}return t});var hs=ct?Eu:Xh;function ps(e){var t=e&&e.constructor,n="function"==typeof t&&t.prototype||lt;return e===n}function fs(e){return e===e&&!ku(e)}function ms(e,t){return function(n){return null!=n&&(n[e]===t&&(t!==i||e in nt(n)))}}function gs(e){var t=Uc(e,(function(e){return n.size===d&&n.clear(),e})),n=t.cache;return t}function vs(e,t){var n=e[1],r=t[1],i=n|r,a=i<(b|y|x),o=r==x&&n==E||r==x&&n==A&&e[7].length<=t[8]||r==(x|A)&&t[7].length<=t[8]&&n==E;if(!a&&!o)return e;r&b&&(e[2]=t[2],i|=n&b?0:w);var s=t[3];if(s){var l=e[3];e[3]=l?to(l,s,t[4]):s,e[4]=l?ur(e[3],h):t[4]}return s=t[5],s&&(l=e[5],e[5]=l?no(l,s,t[6]):s,e[6]=l?ur(e[5],h):t[6]),s=t[7],s&&(e[7]=s),r&x&&(e[8]=null==e[8]?t[8]:jt(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=i,e}function bs(e){var t=[];if(null!=e)for(var n in nt(e))t.push(n);return t}function ys(e){return ft.call(e)}function ws(e,t,r){return t=Ut(t===i?e.length-1:t,0),function(){var i=arguments,a=-1,o=Ut(i.length-t,0),s=n(o);while(++a<o)s[a]=i[t+a];a=-1;var l=n(t+1);while(++a<t)l[a]=i[a];return l[t]=r(s),yn(e,this,l)}}function Es(e,t){return t.length<2?e:Di(e,Na(t,0,-1))}function _s(e,t){var n=e.length,r=jt(t.length,n),a=ro(e);while(r--){var o=t[r];e[r]=os(o,n)?a[o]:i}return e}function Ss(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}var ks=Cs(ka),xs=It||function(e,t){return sn.setTimeout(e,t)},As=Cs(xa);function Ns(e,t,n){var r=t+"";return As(e,is(r,Ls(Zo(r),n)))}function Cs(e){var t=0,n=0;return function(){var r=Ht(),a=O-(r-n);if(n=r,a>0){if(++t>=R)return arguments[0]}else t=0;return e.apply(i,arguments)}}function Ts(e,t){var n=-1,r=e.length,a=r-1;t=t===i?r:t;while(++n<t){var o=va(n,a),s=e[o];e[o]=e[n],e[n]=s}return e.length=t,e}var Rs=gs((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(De,(function(e,n,r,i){t.push(r?i.replace(He,"$1"):n||e)})),t}));function Os(e){if("string"==typeof e||$u(e))return e;var t=e+"";return"0"==t&&1/e==-P?"-0":t}function Is(e){if(null!=e){try{return ut.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function Ls(e,t){return En(V,(function(n){var r="_."+n[0];t&n[1]&&!xn(e,r)&&e.push(r)})),e.sort()}function Ds(e){if(e instanceof Nr)return e.clone();var t=new Ar(e.__wrapped__,e.__chain__);return t.__actions__=ro(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}function Ps(e,t,r){t=(r?ss(e,t,r):t===i)?1:Ut(Xu(t),0);var a=null==e?0:e.length;if(!a||t<1)return[];var o=0,s=0,l=n(Lt(a/t));while(o<a)l[s++]=Na(e,o,o+=t);return l}function Ms(e){var t=-1,n=null==e?0:e.length,r=0,i=[];while(++t<n){var a=e[t];a&&(i[r++]=a)}return i}function Bs(){var e=arguments.length;if(!e)return[];var t=n(e-1),r=arguments[0],i=e;while(i--)t[i-1]=arguments[i];return Cn(lu(r)?ro(r):[r],Ci(t,1))}var Fs=wa((function(e,t){return du(e)?Ei(e,Ci(t,1,du,!0)):[]})),$s=wa((function(e,t){var n=al(t);return du(n)&&(n=i),du(e)?Ei(e,Ci(t,1,du,!0),Ho(n,2)):[]})),Us=wa((function(e,t){var n=al(t);return du(n)&&(n=i),du(e)?Ei(e,Ci(t,1,du,!0),i,n):[]}));function js(e,t,n){var r=null==e?0:e.length;return r?(t=n||t===i?1:Xu(t),Na(e,t<0?0:t,r)):[]}function Vs(e,t,n){var r=null==e?0:e.length;return r?(t=n||t===i?1:Xu(t),t=r-t,Na(e,0,t<0?0:t)):[]}function Ks(e,t){return e&&e.length?Ba(e,Ho(t,3),!0,!0):[]}function Hs(e,t){return e&&e.length?Ba(e,Ho(t,3),!0):[]}function Gs(e,t,n,r){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&ss(e,t,n)&&(n=0,r=i),Ai(e,t,n,r)):[]}function zs(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:Xu(n);return i<0&&(i=Ut(r+i,0)),Mn(e,Ho(t,3),i)}function qs(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=r-1;return n!==i&&(a=Xu(n),a=n<0?Ut(r+a,0):jt(a,r-1)),Mn(e,Ho(t,3),a,!0)}function Xs(e){var t=null==e?0:e.length;return t?Ci(e,1):[]}function Ws(e){var t=null==e?0:e.length;return t?Ci(e,P):[]}function Ys(e,t){var n=null==e?0:e.length;return n?(t=t===i?1:Xu(t),Ci(e,t)):[]}function Qs(e){var t=-1,n=null==e?0:e.length,r={};while(++t<n){var i=e[t];r[i[0]]=i[1]}return r}function Js(e){return e&&e.length?e[0]:i}function Zs(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:Xu(n);return i<0&&(i=Ut(r+i,0)),Bn(e,t,i)}function el(e){var t=null==e?0:e.length;return t?Na(e,0,-1):[]}var tl=wa((function(e){var t=Nn(e,ja);return t.length&&t[0]===e[0]?ji(t):[]})),nl=wa((function(e){var t=al(e),n=Nn(e,ja);return t===al(n)?t=i:n.pop(),n.length&&n[0]===e[0]?ji(n,Ho(t,2)):[]})),rl=wa((function(e){var t=al(e),n=Nn(e,ja);return t="function"==typeof t?t:i,t&&n.pop(),n.length&&n[0]===e[0]?ji(n,i,t):[]}));function il(e,t){return null==e?"":Ft.call(e,t)}function al(e){var t=null==e?0:e.length;return t?e[t-1]:i}function ol(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=r;return n!==i&&(a=Xu(n),a=a<0?Ut(r+a,0):jt(a,r-1)),t===t?fr(e,t,a):Mn(e,$n,a,!0)}function sl(e,t){return e&&e.length?ua(e,Xu(t)):i}var ll=wa(cl);function cl(e,t){return e&&e.length&&t&&t.length?ma(e,t):e}function ul(e,t,n){return e&&e.length&&t&&t.length?ma(e,t,Ho(n,2)):e}function dl(e,t,n){return e&&e.length&&t&&t.length?ma(e,t,i,n):e}var hl=Fo((function(e,t){var n=null==e?0:e.length,r=mi(e,t);return ga(e,Nn(t,(function(e){return os(e,n)?+e:e})).sort(Za)),r}));function pl(e,t){var n=[];if(!e||!e.length)return n;var r=-1,i=[],a=e.length;t=Ho(t,3);while(++r<a){var o=e[r];t(o,r,e)&&(n.push(o),i.push(r))}return ga(e,i),n}function fl(e){return null==e?e:qt.call(e)}function ml(e,t,n){var r=null==e?0:e.length;return r?(n&&"number"!=typeof n&&ss(e,t,n)?(t=0,n=r):(t=null==t?0:Xu(t),n=n===i?r:Xu(n)),Na(e,t,n)):[]}function gl(e,t){return Ta(e,t)}function vl(e,t,n){return Ra(e,t,Ho(n,2))}function bl(e,t){var n=null==e?0:e.length;if(n){var r=Ta(e,t);if(r<n&&iu(e[r],t))return r}return-1}function yl(e,t){return Ta(e,t,!0)}function wl(e,t,n){return Ra(e,t,Ho(n,2),!0)}function El(e,t){var n=null==e?0:e.length;if(n){var r=Ta(e,t,!0)-1;if(iu(e[r],t))return r}return-1}function _l(e){return e&&e.length?Oa(e):[]}function Sl(e,t){return e&&e.length?Oa(e,Ho(t,2)):[]}function kl(e){var t=null==e?0:e.length;return t?Na(e,1,t):[]}function xl(e,t,n){return e&&e.length?(t=n||t===i?1:Xu(t),Na(e,0,t<0?0:t)):[]}function Al(e,t,n){var r=null==e?0:e.length;return r?(t=n||t===i?1:Xu(t),t=r-t,Na(e,t<0?0:t,r)):[]}function Nl(e,t){return e&&e.length?Ba(e,Ho(t,3),!1,!0):[]}function Cl(e,t){return e&&e.length?Ba(e,Ho(t,3)):[]}var Tl=wa((function(e){return Da(Ci(e,1,du,!0))})),Rl=wa((function(e){var t=al(e);return du(t)&&(t=i),Da(Ci(e,1,du,!0),Ho(t,2))})),Ol=wa((function(e){var t=al(e);return t="function"==typeof t?t:i,Da(Ci(e,1,du,!0),i,t)}));function Il(e){return e&&e.length?Da(e):[]}function Ll(e,t){return e&&e.length?Da(e,Ho(t,2)):[]}function Dl(e,t){return t="function"==typeof t?t:i,e&&e.length?Da(e,i,t):[]}function Pl(e){if(!e||!e.length)return[];var t=0;return e=kn(e,(function(e){if(du(e))return t=Ut(e.length,t),!0})),zn(t,(function(t){return Nn(e,jn(t))}))}function Ml(e,t){if(!e||!e.length)return[];var n=Pl(e);return null==t?n:Nn(n,(function(e){return yn(t,i,e)}))}var Bl=wa((function(e,t){return du(e)?Ei(e,t):[]})),Fl=wa((function(e){return $a(kn(e,du))})),$l=wa((function(e){var t=al(e);return du(t)&&(t=i),$a(kn(e,du),Ho(t,2))})),Ul=wa((function(e){var t=al(e);return t="function"==typeof t?t:i,$a(kn(e,du),i,t)})),jl=wa(Pl);function Vl(e,t){return Ua(e||[],t||[],ci)}function Kl(e,t){return Ua(e||[],t||[],Sa)}var Hl=wa((function(e){var t=e.length,n=t>1?e[t-1]:i;return n="function"==typeof n?(e.pop(),n):i,Ml(e,n)}));function Gl(e){var t=_r(e);return t.__chain__=!0,t}function zl(e,t){return t(e),e}function ql(e,t){return t(e)}var Xl=Fo((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,a=function(t){return mi(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Nr&&os(n)?(r=r.slice(n,+n+(t?1:0)),r.__actions__.push({func:ql,args:[a],thisArg:i}),new Ar(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(i),e}))):this.thru(a)}));function Wl(){return Gl(this)}function Yl(){return new Ar(this.value(),this.__chain__)}function Ql(){this.__values__===i&&(this.__values__=zu(this.value()));var e=this.__index__>=this.__values__.length,t=e?i:this.__values__[this.__index__++];return{done:e,value:t}}function Jl(){return this}function Zl(e){var t,n=this;while(n instanceof xr){var r=Ds(n);r.__index__=0,r.__values__=i,t?a.__wrapped__=r:t=r;var a=r;n=n.__wrapped__}return a.__wrapped__=e,t}function ec(){var e=this.__wrapped__;if(e instanceof Nr){var t=e;return this.__actions__.length&&(t=new Nr(this)),t=t.reverse(),t.__actions__.push({func:ql,args:[fl],thisArg:i}),new Ar(t,this.__chain__)}return this.thru(fl)}function tc(){return Fa(this.__wrapped__,this.__actions__)}var nc=so((function(e,t,n){dt.call(e,n)?++e[n]:fi(e,n,1)}));function rc(e,t,n){var r=lu(e)?Sn:ki;return n&&ss(e,t,n)&&(t=i),r(e,Ho(t,3))}function ic(e,t){var n=lu(e)?kn:Ni;return n(e,Ho(t,3))}var ac=vo(zs),oc=vo(qs);function sc(e,t){return Ci(gc(e,t),1)}function lc(e,t){return Ci(gc(e,t),P)}function cc(e,t,n){return n=n===i?1:Xu(n),Ci(gc(e,t),n)}function uc(e,t){var n=lu(e)?En:_i;return n(e,Ho(t,3))}function dc(e,t){var n=lu(e)?_n:Si;return n(e,Ho(t,3))}var hc=so((function(e,t,n){dt.call(e,n)?e[n].push(t):fi(e,n,[t])}));function pc(e,t,n,r){e=uu(e)?e:jd(e),n=n&&!r?Xu(n):0;var i=e.length;return n<0&&(n=Ut(i+n,0)),Fu(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&Bn(e,t,n)>-1}var fc=wa((function(e,t,r){var i=-1,a="function"==typeof t,o=uu(e)?n(e.length):[];return _i(e,(function(e){o[++i]=a?yn(t,e,r):Ki(e,t,r)})),o})),mc=so((function(e,t,n){fi(e,n,t)}));function gc(e,t){var n=lu(e)?Nn:aa;return n(e,Ho(t,3))}function vc(e,t,n,r){return null==e?[]:(lu(t)||(t=null==t?[]:[t]),n=r?i:n,lu(n)||(n=null==n?[]:[n]),da(e,t,n))}var bc=so((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));function yc(e,t,n){var r=lu(e)?Tn:Kn,i=arguments.length<3;return r(e,Ho(t,4),n,i,_i)}function wc(e,t,n){var r=lu(e)?Rn:Kn,i=arguments.length<3;return r(e,Ho(t,4),n,i,Si)}function Ec(e,t){var n=lu(e)?kn:Ni;return n(e,jc(Ho(t,3)))}function _c(e){var t=lu(e)?ai:Ea;return t(e)}function Sc(e,t,n){t=(n?ss(e,t,n):t===i)?1:Xu(t);var r=lu(e)?oi:_a;return r(e,t)}function kc(e){var t=lu(e)?si:Aa;return t(e)}function xc(e){if(null==e)return 0;if(uu(e))return Fu(e)?mr(e):e.length;var t=Qo(e);return t==J||t==ae?e.size:na(e).length}function Ac(e,t,n){var r=lu(e)?On:Ca;return n&&ss(e,t,n)&&(t=i),r(e,Ho(t,3))}var Nc=wa((function(e,t){if(null==e)return[];var n=t.length;return n>1&&ss(e,t[0],t[1])?t=[]:n>2&&ss(t[0],t[1],t[2])&&(t=[t[0]]),da(e,Ci(t,1),[])})),Cc=Ot||function(){return sn.Date.now()};function Tc(e,t){if("function"!=typeof t)throw new at(l);return e=Xu(e),function(){if(--e<1)return t.apply(this,arguments)}}function Rc(e,t,n){return t=n?i:t,t=e&&null==t?e.length:t,Oo(e,x,i,i,i,i,t)}function Oc(e,t){var n;if("function"!=typeof t)throw new at(l);return e=Xu(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=i),n}}var Ic=wa((function(e,t,n){var r=b;if(n.length){var i=ur(n,Ko(Ic));r|=S}return Oo(e,r,t,n,i)})),Lc=wa((function(e,t,n){var r=b|y;if(n.length){var i=ur(n,Ko(Lc));r|=S}return Oo(t,r,e,n,i)}));function Dc(e,t,n){t=n?i:t;var r=Oo(e,E,i,i,i,i,i,t);return r.placeholder=Dc.placeholder,r}function Pc(e,t,n){t=n?i:t;var r=Oo(e,_,i,i,i,i,i,t);return r.placeholder=Pc.placeholder,r}function Mc(e,t,n){var r,a,o,s,c,u,d=0,h=!1,p=!1,f=!0;if("function"!=typeof e)throw new at(l);function m(t){var n=r,o=a;return r=a=i,d=t,s=e.apply(o,n),s}function g(e){return d=e,c=xs(y,t),h?m(e):s}function v(e){var n=e-u,r=e-d,i=t-n;return p?jt(i,o-r):i}function b(e){var n=e-u,r=e-d;return u===i||n>=t||n<0||p&&r>=o}function y(){var e=Cc();if(b(e))return w(e);c=xs(y,v(e))}function w(e){return c=i,f&&r?m(e):(r=a=i,s)}function E(){c!==i&&za(c),d=0,r=u=a=c=i}function _(){return c===i?s:w(Cc())}function S(){var e=Cc(),n=b(e);if(r=arguments,a=this,u=e,n){if(c===i)return g(u);if(p)return za(c),c=xs(y,t),m(u)}return c===i&&(c=xs(y,t)),s}return t=Yu(t)||0,ku(n)&&(h=!!n.leading,p="maxWait"in n,o=p?Ut(Yu(n.maxWait)||0,t):o,f="trailing"in n?!!n.trailing:f),S.cancel=E,S.flush=_,S}var Bc=wa((function(e,t){return wi(e,1,t)})),Fc=wa((function(e,t,n){return wi(e,Yu(t)||0,n)}));function $c(e){return Oo(e,N)}function Uc(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new at(l);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(Uc.Cache||Kr),n}function jc(e){if("function"!=typeof e)throw new at(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Vc(e){return Oc(2,e)}Uc.Cache=Kr;var Kc=Ha((function(e,t){t=1==t.length&&lu(t[0])?Nn(t[0],Wn(Ho())):Nn(Ci(t,1),Wn(Ho()));var n=t.length;return wa((function(r){var i=-1,a=jt(r.length,n);while(++i<a)r[i]=t[i].call(this,r[i]);return yn(e,this,r)}))})),Hc=wa((function(e,t){var n=ur(t,Ko(Hc));return Oo(e,S,i,t,n)})),Gc=wa((function(e,t){var n=ur(t,Ko(Gc));return Oo(e,k,i,t,n)})),zc=Fo((function(e,t){return Oo(e,A,i,i,i,t)}));function qc(e,t){if("function"!=typeof e)throw new at(l);return t=t===i?t:Xu(t),wa(e,t)}function Xc(e,t){if("function"!=typeof e)throw new at(l);return t=null==t?0:Ut(Xu(t),0),wa((function(n){var r=n[t],i=Ga(n,0,t);return r&&Cn(i,r),yn(e,this,i)}))}function Wc(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new at(l);return ku(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Mc(e,t,{leading:r,maxWait:t,trailing:i})}function Yc(e){return Rc(e,1)}function Qc(e,t){return Hc(Va(t),e)}function Jc(){if(!arguments.length)return[];var e=arguments[0];return lu(e)?e:[e]}function Zc(e){return vi(e,m)}function eu(e,t){return t="function"==typeof t?t:i,vi(e,m,t)}function tu(e){return vi(e,p|m)}function nu(e,t){return t="function"==typeof t?t:i,vi(e,p|m,t)}function ru(e,t){return null==t||yi(e,t,_d(t))}function iu(e,t){return e===t||e!==e&&t!==t}var au=Ao(Bi),ou=Ao((function(e,t){return e>=t})),su=Hi(function(){return arguments}())?Hi:function(e){return xu(e)&&dt.call(e,"callee")&&!kt.call(e,"callee")},lu=n.isArray,cu=pn?Wn(pn):Gi;function uu(e){return null!=e&&Su(e.length)&&!Eu(e)}function du(e){return xu(e)&&uu(e)}function hu(e){return!0===e||!1===e||xu(e)&&Mi(e)==z}var pu=Mt||Xh,fu=fn?Wn(fn):zi;function mu(e){return xu(e)&&1===e.nodeType&&!Du(e)}function gu(e){if(null==e)return!0;if(uu(e)&&(lu(e)||"string"==typeof e||"function"==typeof e.splice||pu(e)||Uu(e)||su(e)))return!e.length;var t=Qo(e);if(t==J||t==ae)return!e.size;if(ps(e))return!na(e).length;for(var n in e)if(dt.call(e,n))return!1;return!0}function vu(e,t){return qi(e,t)}function bu(e,t,n){n="function"==typeof n?n:i;var r=n?n(e,t):i;return r===i?qi(e,t,i,n):!!r}function yu(e){if(!xu(e))return!1;var t=Mi(e);return t==W||t==X||"string"==typeof e.message&&"string"==typeof e.name&&!Du(e)}function wu(e){return"number"==typeof e&&Bt(e)}function Eu(e){if(!ku(e))return!1;var t=Mi(e);return t==Y||t==Q||t==G||t==re}function _u(e){return"number"==typeof e&&e==Xu(e)}function Su(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=M}function ku(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function xu(e){return null!=e&&"object"==typeof e}var Au=mn?Wn(mn):Wi;function Nu(e,t){return e===t||Yi(e,t,zo(t))}function Cu(e,t,n){return n="function"==typeof n?n:i,Yi(e,t,zo(t),n)}function Tu(e){return Lu(e)&&e!=+e}function Ru(e){if(hs(e))throw new Fe(s);return Qi(e)}function Ou(e){return null===e}function Iu(e){return null==e}function Lu(e){return"number"==typeof e||xu(e)&&Mi(e)==Z}function Du(e){if(!xu(e)||Mi(e)!=te)return!1;var t=_t(e);if(null===t)return!0;var n=dt.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&ut.call(n)==mt}var Pu=gn?Wn(gn):Ji;function Mu(e){return _u(e)&&e>=-M&&e<=M}var Bu=vn?Wn(vn):Zi;function Fu(e){return"string"==typeof e||!lu(e)&&xu(e)&&Mi(e)==oe}function $u(e){return"symbol"==typeof e||xu(e)&&Mi(e)==se}var Uu=bn?Wn(bn):ea;function ju(e){return e===i}function Vu(e){return xu(e)&&Qo(e)==ce}function Ku(e){return xu(e)&&Mi(e)==ue}var Hu=Ao(ia),Gu=Ao((function(e,t){return e<=t}));function zu(e){if(!e)return[];if(uu(e))return Fu(e)?gr(e):ro(e);if(Nt&&e[Nt])return sr(e[Nt]());var t=Qo(e),n=t==J?lr:t==ae?dr:jd;return n(e)}function qu(e){if(!e)return 0===e?e:0;if(e=Yu(e),e===P||e===-P){var t=e<0?-1:1;return t*B}return e===e?e:0}function Xu(e){var t=qu(e),n=t%1;return t===t?n?t-n:t:0}function Wu(e){return e?gi(Xu(e),0,$):0}function Yu(e){if("number"==typeof e)return e;if($u(e))return F;if(ku(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=ku(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Xn(e);var n=Xe.test(e);return n||Ye.test(e)?rn(e.slice(2),n?2:8):qe.test(e)?F:+e}function Qu(e){return io(e,Sd(e))}function Ju(e){return e?gi(Xu(e),-M,M):0===e?e:0}function Zu(e){return null==e?"":La(e)}var ed=lo((function(e,t){if(ps(t)||uu(t))io(t,_d(t),e);else for(var n in t)dt.call(t,n)&&ci(e,n,t[n])})),td=lo((function(e,t){io(t,Sd(t),e)})),nd=lo((function(e,t,n,r){io(t,Sd(t),e,r)})),rd=lo((function(e,t,n,r){io(t,_d(t),e,r)})),id=Fo(mi);function ad(e,t){var n=kr(e);return null==t?n:hi(n,t)}var od=wa((function(e,t){e=nt(e);var n=-1,r=t.length,a=r>2?t[2]:i;a&&ss(t[0],t[1],a)&&(r=1);while(++n<r){var o=t[n],s=Sd(o),l=-1,c=s.length;while(++l<c){var u=s[l],d=e[u];(d===i||iu(d,lt[u])&&!dt.call(e,u))&&(e[u]=o[u])}}return e})),sd=wa((function(e){return e.push(i,Lo),yn(Nd,i,e)}));function ld(e,t){return Pn(e,Ho(t,3),Oi)}function cd(e,t){return Pn(e,Ho(t,3),Ii)}function ud(e,t){return null==e?e:Ti(e,Ho(t,3),Sd)}function dd(e,t){return null==e?e:Ri(e,Ho(t,3),Sd)}function hd(e,t){return e&&Oi(e,Ho(t,3))}function pd(e,t){return e&&Ii(e,Ho(t,3))}function fd(e){return null==e?[]:Li(e,_d(e))}function md(e){return null==e?[]:Li(e,Sd(e))}function gd(e,t,n){var r=null==e?i:Di(e,t);return r===i?n:r}function vd(e,t){return null!=e&&es(e,t,Fi)}function bd(e,t){return null!=e&&es(e,t,$i)}var yd=wo((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=ft.call(t)),e[t]=n}),Ah(Rh)),wd=wo((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=ft.call(t)),dt.call(e,t)?e[t].push(n):e[t]=[n]}),Ho),Ed=wa(Ki);function _d(e){return uu(e)?ii(e):na(e)}function Sd(e){return uu(e)?ii(e,!0):ra(e)}function kd(e,t){var n={};return t=Ho(t,3),Oi(e,(function(e,r,i){fi(n,t(e,r,i),e)})),n}function xd(e,t){var n={};return t=Ho(t,3),Oi(e,(function(e,r,i){fi(n,r,t(e,r,i))})),n}var Ad=lo((function(e,t,n){la(e,t,n)})),Nd=lo((function(e,t,n,r){la(e,t,n,r)})),Cd=Fo((function(e,t){var n={};if(null==e)return n;var r=!1;t=Nn(t,(function(t){return t=Ka(t,e),r||(r=t.length>1),t})),io(e,Uo(e),n),r&&(n=vi(n,p|f|m,Do));var i=t.length;while(i--)Pa(n,t[i]);return n}));function Td(e,t){return Od(e,jc(Ho(t)))}var Rd=Fo((function(e,t){return null==e?{}:ha(e,t)}));function Od(e,t){if(null==e)return{};var n=Nn(Uo(e),(function(e){return[e]}));return t=Ho(t),pa(e,n,(function(e,n){return t(e,n[0])}))}function Id(e,t,n){t=Ka(t,e);var r=-1,a=t.length;a||(a=1,e=i);while(++r<a){var o=null==e?i:e[Os(t[r])];o===i&&(r=a,o=n),e=Eu(o)?o.call(e):o}return e}function Ld(e,t,n){return null==e?e:Sa(e,t,n)}function Dd(e,t,n,r){return r="function"==typeof r?r:i,null==e?e:Sa(e,t,n,r)}var Pd=Ro(_d),Md=Ro(Sd);function Bd(e,t,n){var r=lu(e),i=r||pu(e)||Uu(e);if(t=Ho(t,4),null==n){var a=e&&e.constructor;n=i?r?new a:[]:ku(e)&&Eu(a)?kr(_t(e)):{}}return(i?En:Oi)(e,(function(e,r,i){return t(n,e,r,i)})),n}function Fd(e,t){return null==e||Pa(e,t)}function $d(e,t,n){return null==e?e:Ma(e,t,Va(n))}function Ud(e,t,n,r){return r="function"==typeof r?r:i,null==e?e:Ma(e,t,Va(n),r)}function jd(e){return null==e?[]:Yn(e,_d(e))}function Vd(e){return null==e?[]:Yn(e,Sd(e))}function Kd(e,t,n){return n===i&&(n=t,t=i),n!==i&&(n=Yu(n),n=n===n?n:0),t!==i&&(t=Yu(t),t=t===t?t:0),gi(Yu(e),t,n)}function Hd(e,t,n){return t=qu(t),n===i?(n=t,t=0):n=qu(n),e=Yu(e),Ui(e,t,n)}function Gd(e,t,n){if(n&&"boolean"!=typeof n&&ss(e,t,n)&&(t=n=i),n===i&&("boolean"==typeof t?(n=t,t=i):"boolean"==typeof e&&(n=e,e=i)),e===i&&t===i?(e=0,t=1):(e=qu(e),t===i?(t=e,e=0):t=qu(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var a=zt();return jt(e+a*(t-e+nn("1e-"+((a+"").length-1))),t)}return va(e,t)}var zd=fo((function(e,t,n){return t=t.toLowerCase(),e+(n?qd(t):t)}));function qd(e){return wh(Zu(e).toLowerCase())}function Xd(e){return e=Zu(e),e&&e.replace(Je,tr).replace(Kt,"")}function Wd(e,t,n){e=Zu(e),t=La(t);var r=e.length;n=n===i?r:gi(Xu(n),0,r);var a=n;return n-=t.length,n>=0&&e.slice(n,a)==t}function Yd(e){return e=Zu(e),e&&Ce.test(e)?e.replace(Ae,nr):e}function Qd(e){return e=Zu(e),e&&Me.test(e)?e.replace(Pe,"\\$&"):e}var Jd=fo((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Zd=fo((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),eh=po("toLowerCase");function th(e,t,n){e=Zu(e),t=Xu(t);var r=t?mr(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return So(Dt(i),n)+e+So(Lt(i),n)}function nh(e,t,n){e=Zu(e),t=Xu(t);var r=t?mr(e):0;return t&&r<t?e+So(t-r,n):e}function rh(e,t,n){e=Zu(e),t=Xu(t);var r=t?mr(e):0;return t&&r<t?So(t-r,n)+e:e}function ih(e,t,n){return n||null==t?t=0:t&&(t=+t),Gt(Zu(e).replace(Be,""),t||0)}function ah(e,t,n){return t=(n?ss(e,t,n):t===i)?1:Xu(t),ya(Zu(e),t)}function oh(){var e=arguments,t=Zu(e[0]);return e.length<3?t:t.replace(e[1],e[2])}var sh=fo((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));function lh(e,t,n){return n&&"number"!=typeof n&&ss(e,t,n)&&(t=n=i),n=n===i?$:n>>>0,n?(e=Zu(e),e&&("string"==typeof t||null!=t&&!Pu(t))&&(t=La(t),!t&&ar(e))?Ga(gr(e),0,n):e.split(t,n)):[]}var ch=fo((function(e,t,n){return e+(n?" ":"")+wh(t)}));function uh(e,t,n){return e=Zu(e),n=null==n?0:gi(Xu(n),0,e.length),t=La(t),e.slice(n,n+t.length)==t}function dh(e,t,n){var r=_r.templateSettings;n&&ss(e,t,n)&&(t=i),e=Zu(e),t=nd({},t,r,Io);var a,o,s=nd({},t.imports,r.imports,Io),l=_d(s),u=Yn(s,l),d=0,h=t.interpolate||Ze,p="__p += '",f=rt((t.escape||Ze).source+"|"+h.source+"|"+(h===Oe?Ge:Ze).source+"|"+(t.evaluate||Ze).source+"|$","g"),m="//# sourceURL="+(dt.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Wt+"]")+"\n";e.replace(f,(function(t,n,r,i,s,l){return r||(r=i),p+=e.slice(d,l).replace(et,rr),n&&(a=!0,p+="' +\n__e("+n+") +\n'"),s&&(o=!0,p+="';\n"+s+";\n__p += '"),r&&(p+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),d=l+t.length,t})),p+="';\n";var g=dt.call(t,"variable")&&t.variable;if(g){if(Ke.test(g))throw new Fe(c)}else p="with (obj) {\n"+p+"\n}\n";p=(o?p.replace(_e,""):p).replace(Se,"$1").replace(ke,"$1;"),p="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(a?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var v=_h((function(){return Ve(l,m+"return "+p).apply(i,u)}));if(v.source=p,yu(v))throw v;return v}function hh(e){return Zu(e).toLowerCase()}function ph(e){return Zu(e).toUpperCase()}function fh(e,t,n){if(e=Zu(e),e&&(n||t===i))return Xn(e);if(!e||!(t=La(t)))return e;var r=gr(e),a=gr(t),o=Jn(r,a),s=Zn(r,a)+1;return Ga(r,o,s).join("")}function mh(e,t,n){if(e=Zu(e),e&&(n||t===i))return e.slice(0,vr(e)+1);if(!e||!(t=La(t)))return e;var r=gr(e),a=Zn(r,gr(t))+1;return Ga(r,0,a).join("")}function gh(e,t,n){if(e=Zu(e),e&&(n||t===i))return e.replace(Be,"");if(!e||!(t=La(t)))return e;var r=gr(e),a=Jn(r,gr(t));return Ga(r,a).join("")}function vh(e,t){var n=C,r=T;if(ku(t)){var a="separator"in t?t.separator:a;n="length"in t?Xu(t.length):n,r="omission"in t?La(t.omission):r}e=Zu(e);var o=e.length;if(ar(e)){var s=gr(e);o=s.length}if(n>=o)return e;var l=n-mr(r);if(l<1)return r;var c=s?Ga(s,0,l).join(""):e.slice(0,l);if(a===i)return c+r;if(s&&(l+=c.length-l),Pu(a)){if(e.slice(l).search(a)){var u,d=c;a.global||(a=rt(a.source,Zu(ze.exec(a))+"g")),a.lastIndex=0;while(u=a.exec(d))var h=u.index;c=c.slice(0,h===i?l:h)}}else if(e.indexOf(La(a),l)!=l){var p=c.lastIndexOf(a);p>-1&&(c=c.slice(0,p))}return c+r}function bh(e){return e=Zu(e),e&&Ne.test(e)?e.replace(xe,br):e}var yh=fo((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),wh=po("toUpperCase");function Eh(e,t,n){return e=Zu(e),t=n?i:t,t===i?or(e)?Er(e):Dn(e):e.match(t)||[]}var _h=wa((function(e,t){try{return yn(e,i,t)}catch(n){return yu(n)?n:new Fe(n)}})),Sh=Fo((function(e,t){return En(t,(function(t){t=Os(t),fi(e,t,Ic(e[t],e))})),e}));function kh(e){var t=null==e?0:e.length,n=Ho();return e=t?Nn(e,(function(e){if("function"!=typeof e[1])throw new at(l);return[n(e[0]),e[1]]})):[],wa((function(n){var r=-1;while(++r<t){var i=e[r];if(yn(i[0],this,n))return yn(i[1],this,n)}}))}function xh(e){return bi(vi(e,p))}function Ah(e){return function(){return e}}function Nh(e,t){return null==e||e!==e?t:e}var Ch=bo(),Th=bo(!0);function Rh(e){return e}function Oh(e){return ta("function"==typeof e?e:vi(e,p))}function Ih(e){return oa(vi(e,p))}function Lh(e,t){return sa(e,vi(t,p))}var Dh=wa((function(e,t){return function(n){return Ki(n,e,t)}})),Ph=wa((function(e,t){return function(n){return Ki(e,n,t)}}));function Mh(e,t,n){var r=_d(t),i=Li(t,r);null!=n||ku(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=Li(t,_d(t)));var a=!(ku(n)&&"chain"in n)||!!n.chain,o=Eu(e);return En(i,(function(n){var r=t[n];e[n]=r,o&&(e.prototype[n]=function(){var t=this.__chain__;if(a||t){var n=e(this.__wrapped__),i=n.__actions__=ro(this.__actions__);return i.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,Cn([this.value()],arguments))})})),e}function Bh(){return sn._===this&&(sn._=gt),this}function Fh(){}function $h(e){return e=Xu(e),wa((function(t){return ua(t,e)}))}var Uh=_o(Nn),jh=_o(Sn),Vh=_o(On);function Kh(e){return ls(e)?jn(Os(e)):fa(e)}function Hh(e){return function(t){return null==e?i:Di(e,t)}}var Gh=xo(),zh=xo(!0);function qh(){return[]}function Xh(){return!1}function Wh(){return{}}function Yh(){return""}function Qh(){return!0}function Jh(e,t){if(e=Xu(e),e<1||e>M)return[];var n=$,r=jt(e,$);t=Ho(t),e-=$;var i=zn(r,t);while(++n<e)t(n);return i}function Zh(e){return lu(e)?Nn(e,Os):$u(e)?[e]:ro(Rs(Zu(e)))}function ep(e){var t=++ht;return Zu(e)+t}var tp=Eo((function(e,t){return e+t}),0),np=Co("ceil"),rp=Eo((function(e,t){return e/t}),1),ip=Co("floor");function ap(e){return e&&e.length?xi(e,Rh,Bi):i}function op(e,t){return e&&e.length?xi(e,Ho(t,2),Bi):i}function sp(e){return Un(e,Rh)}function lp(e,t){return Un(e,Ho(t,2))}function cp(e){return e&&e.length?xi(e,Rh,ia):i}function up(e,t){return e&&e.length?xi(e,Ho(t,2),ia):i}var dp=Eo((function(e,t){return e*t}),1),hp=Co("round"),pp=Eo((function(e,t){return e-t}),0);function fp(e){return e&&e.length?Gn(e,Rh):0}function mp(e,t){return e&&e.length?Gn(e,Ho(t,2)):0}return _r.after=Tc,_r.ary=Rc,_r.assign=ed,_r.assignIn=td,_r.assignInWith=nd,_r.assignWith=rd,_r.at=id,_r.before=Oc,_r.bind=Ic,_r.bindAll=Sh,_r.bindKey=Lc,_r.castArray=Jc,_r.chain=Gl,_r.chunk=Ps,_r.compact=Ms,_r.concat=Bs,_r.cond=kh,_r.conforms=xh,_r.constant=Ah,_r.countBy=nc,_r.create=ad,_r.curry=Dc,_r.curryRight=Pc,_r.debounce=Mc,_r.defaults=od,_r.defaultsDeep=sd,_r.defer=Bc,_r.delay=Fc,_r.difference=Fs,_r.differenceBy=$s,_r.differenceWith=Us,_r.drop=js,_r.dropRight=Vs,_r.dropRightWhile=Ks,_r.dropWhile=Hs,_r.fill=Gs,_r.filter=ic,_r.flatMap=sc,_r.flatMapDeep=lc,_r.flatMapDepth=cc,_r.flatten=Xs,_r.flattenDeep=Ws,_r.flattenDepth=Ys,_r.flip=$c,_r.flow=Ch,_r.flowRight=Th,_r.fromPairs=Qs,_r.functions=fd,_r.functionsIn=md,_r.groupBy=hc,_r.initial=el,_r.intersection=tl,_r.intersectionBy=nl,_r.intersectionWith=rl,_r.invert=yd,_r.invertBy=wd,_r.invokeMap=fc,_r.iteratee=Oh,_r.keyBy=mc,_r.keys=_d,_r.keysIn=Sd,_r.map=gc,_r.mapKeys=kd,_r.mapValues=xd,_r.matches=Ih,_r.matchesProperty=Lh,_r.memoize=Uc,_r.merge=Ad,_r.mergeWith=Nd,_r.method=Dh,_r.methodOf=Ph,_r.mixin=Mh,_r.negate=jc,_r.nthArg=$h,_r.omit=Cd,_r.omitBy=Td,_r.once=Vc,_r.orderBy=vc,_r.over=Uh,_r.overArgs=Kc,_r.overEvery=jh,_r.overSome=Vh,_r.partial=Hc,_r.partialRight=Gc,_r.partition=bc,_r.pick=Rd,_r.pickBy=Od,_r.property=Kh,_r.propertyOf=Hh,_r.pull=ll,_r.pullAll=cl,_r.pullAllBy=ul,_r.pullAllWith=dl,_r.pullAt=hl,_r.range=Gh,_r.rangeRight=zh,_r.rearg=zc,_r.reject=Ec,_r.remove=pl,_r.rest=qc,_r.reverse=fl,_r.sampleSize=Sc,_r.set=Ld,_r.setWith=Dd,_r.shuffle=kc,_r.slice=ml,_r.sortBy=Nc,_r.sortedUniq=_l,_r.sortedUniqBy=Sl,_r.split=lh,_r.spread=Xc,_r.tail=kl,_r.take=xl,_r.takeRight=Al,_r.takeRightWhile=Nl,_r.takeWhile=Cl,_r.tap=zl,_r.throttle=Wc,_r.thru=ql,_r.toArray=zu,_r.toPairs=Pd,_r.toPairsIn=Md,_r.toPath=Zh,_r.toPlainObject=Qu,_r.transform=Bd,_r.unary=Yc,_r.union=Tl,_r.unionBy=Rl,_r.unionWith=Ol,_r.uniq=Il,_r.uniqBy=Ll,_r.uniqWith=Dl,_r.unset=Fd,_r.unzip=Pl,_r.unzipWith=Ml,_r.update=$d,_r.updateWith=Ud,_r.values=jd,_r.valuesIn=Vd,_r.without=Bl,_r.words=Eh,_r.wrap=Qc,_r.xor=Fl,_r.xorBy=$l,_r.xorWith=Ul,_r.zip=jl,_r.zipObject=Vl,_r.zipObjectDeep=Kl,_r.zipWith=Hl,_r.entries=Pd,_r.entriesIn=Md,_r.extend=td,_r.extendWith=nd,Mh(_r,_r),_r.add=tp,_r.attempt=_h,_r.camelCase=zd,_r.capitalize=qd,_r.ceil=np,_r.clamp=Kd,_r.clone=Zc,_r.cloneDeep=tu,_r.cloneDeepWith=nu,_r.cloneWith=eu,_r.conformsTo=ru,_r.deburr=Xd,_r.defaultTo=Nh,_r.divide=rp,_r.endsWith=Wd,_r.eq=iu,_r.escape=Yd,_r.escapeRegExp=Qd,_r.every=rc,_r.find=ac,_r.findIndex=zs,_r.findKey=ld,_r.findLast=oc,_r.findLastIndex=qs,_r.findLastKey=cd,_r.floor=ip,_r.forEach=uc,_r.forEachRight=dc,_r.forIn=ud,_r.forInRight=dd,_r.forOwn=hd,_r.forOwnRight=pd,_r.get=gd,_r.gt=au,_r.gte=ou,_r.has=vd,_r.hasIn=bd,_r.head=Js,_r.identity=Rh,_r.includes=pc,_r.indexOf=Zs,_r.inRange=Hd,_r.invoke=Ed,_r.isArguments=su,_r.isArray=lu,_r.isArrayBuffer=cu,_r.isArrayLike=uu,_r.isArrayLikeObject=du,_r.isBoolean=hu,_r.isBuffer=pu,_r.isDate=fu,_r.isElement=mu,_r.isEmpty=gu,_r.isEqual=vu,_r.isEqualWith=bu,_r.isError=yu,_r.isFinite=wu,_r.isFunction=Eu,_r.isInteger=_u,_r.isLength=Su,_r.isMap=Au,_r.isMatch=Nu,_r.isMatchWith=Cu,_r.isNaN=Tu,_r.isNative=Ru,_r.isNil=Iu,_r.isNull=Ou,_r.isNumber=Lu,_r.isObject=ku,_r.isObjectLike=xu,_r.isPlainObject=Du,_r.isRegExp=Pu,_r.isSafeInteger=Mu,_r.isSet=Bu,_r.isString=Fu,_r.isSymbol=$u,_r.isTypedArray=Uu,_r.isUndefined=ju,_r.isWeakMap=Vu,_r.isWeakSet=Ku,_r.join=il,_r.kebabCase=Jd,_r.last=al,_r.lastIndexOf=ol,_r.lowerCase=Zd,_r.lowerFirst=eh,_r.lt=Hu,_r.lte=Gu,_r.max=ap,_r.maxBy=op,_r.mean=sp,_r.meanBy=lp,_r.min=cp,_r.minBy=up,_r.stubArray=qh,_r.stubFalse=Xh,_r.stubObject=Wh,_r.stubString=Yh,_r.stubTrue=Qh,_r.multiply=dp,_r.nth=sl,_r.noConflict=Bh,_r.noop=Fh,_r.now=Cc,_r.pad=th,_r.padEnd=nh,_r.padStart=rh,_r.parseInt=ih,_r.random=Gd,_r.reduce=yc,_r.reduceRight=wc,_r.repeat=ah,_r.replace=oh,_r.result=Id,_r.round=hp,_r.runInContext=e,_r.sample=_c,_r.size=xc,_r.snakeCase=sh,_r.some=Ac,_r.sortedIndex=gl,_r.sortedIndexBy=vl,_r.sortedIndexOf=bl,_r.sortedLastIndex=yl,_r.sortedLastIndexBy=wl,_r.sortedLastIndexOf=El,_r.startCase=ch,_r.startsWith=uh,_r.subtract=pp,_r.sum=fp,_r.sumBy=mp,_r.template=dh,_r.times=Jh,_r.toFinite=qu,_r.toInteger=Xu,_r.toLength=Wu,_r.toLower=hh,_r.toNumber=Yu,_r.toSafeInteger=Ju,_r.toString=Zu,_r.toUpper=ph,_r.trim=fh,_r.trimEnd=mh,_r.trimStart=gh,_r.truncate=vh,_r.unescape=bh,_r.uniqueId=ep,_r.upperCase=yh,_r.upperFirst=wh,_r.each=uc,_r.eachRight=dc,_r.first=Js,Mh(_r,function(){var e={};return Oi(_r,(function(t,n){dt.call(_r.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),_r.VERSION=a,En(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){_r[e].placeholder=_r})),En(["drop","take"],(function(e,t){Nr.prototype[e]=function(n){n=n===i?1:Ut(Xu(n),0);var r=this.__filtered__&&!t?new Nr(this):this.clone();return r.__filtered__?r.__takeCount__=jt(n,r.__takeCount__):r.__views__.push({size:jt(n,$),type:e+(r.__dir__<0?"Right":"")}),r},Nr.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),En(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=n==I||n==D;Nr.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Ho(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),En(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Nr.prototype[e]=function(){return this[n](1).value()[0]}})),En(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Nr.prototype[e]=function(){return this.__filtered__?new Nr(this):this[n](1)}})),Nr.prototype.compact=function(){return this.filter(Rh)},Nr.prototype.find=function(e){return this.filter(e).head()},Nr.prototype.findLast=function(e){return this.reverse().find(e)},Nr.prototype.invokeMap=wa((function(e,t){return"function"==typeof e?new Nr(this):this.map((function(n){return Ki(n,e,t)}))})),Nr.prototype.reject=function(e){return this.filter(jc(Ho(e)))},Nr.prototype.slice=function(e,t){e=Xu(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Nr(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==i&&(t=Xu(t),n=t<0?n.dropRight(-t):n.take(t-e)),n)},Nr.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Nr.prototype.toArray=function(){return this.take($)},Oi(Nr.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),a=_r[r?"take"+("last"==t?"Right":""):t],o=r||/^find/.test(t);a&&(_r.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,l=t instanceof Nr,c=s[0],u=l||lu(t),d=function(e){var t=a.apply(_r,Cn([e],s));return r&&h?t[0]:t};u&&n&&"function"==typeof c&&1!=c.length&&(l=u=!1);var h=this.__chain__,p=!!this.__actions__.length,f=o&&!h,m=l&&!p;if(!o&&u){t=m?t:new Nr(this);var g=e.apply(t,s);return g.__actions__.push({func:ql,args:[d],thisArg:i}),new Ar(g,h)}return f&&m?e.apply(this,s):(g=this.thru(d),f?r?g.value()[0]:g.value():g)})})),En(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ot[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);_r.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(lu(i)?i:[],e)}return this[n]((function(n){return t.apply(lu(n)?n:[],e)}))}})),Oi(Nr.prototype,(function(e,t){var n=_r[t];if(n){var r=n.name+"";dt.call(cn,r)||(cn[r]=[]),cn[r].push({name:t,func:n})}})),cn[yo(i,y).name]=[{name:"wrapper",func:i}],Nr.prototype.clone=Cr,Nr.prototype.reverse=Tr,Nr.prototype.value=Rr,_r.prototype.at=Xl,_r.prototype.chain=Wl,_r.prototype.commit=Yl,_r.prototype.next=Ql,_r.prototype.plant=Zl,_r.prototype.reverse=ec,_r.prototype.toJSON=_r.prototype.valueOf=_r.prototype.value=tc,_r.prototype.first=_r.prototype.head,Nt&&(_r.prototype[Nt]=Jl),_r},Sr=_r();sn._=Sr,r=function(){return Sr}.call(t,n,t,e),r===i||(e.exports=r)}.call(this)},69011:function(e,t,n){var r=n(68250),i="Expected a function";function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(i);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},82451:function(e,t,n){var r=n(40091),i=n(77848),a=i((function(e,t,n){r(e,t,n)}));e.exports=a},48875:function(e,t,n){var r=n(40091),i=n(77848),a=i((function(e,t,n,i){r(e,t,n,i)}));e.exports=a},21517:function(e){var t="Expected a function";function n(e){if("function"!=typeof e)throw new TypeError(t);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}e.exports=n},79071:function(e){function t(){}e.exports=t},94495:function(e,t,n){var r=n(78942),i=function(){return r.Date.now()};e.exports=i},38403:function(e,t,n){var r=n(3334),i=n(21517),a=n(16735);function o(e,t){return a(e,i(r(t)))}e.exports=o},74874:function(e,t,n){var r=n(90242),i=n(41439),a=i((function(e,t){return null==e?{}:r(e,t)}));e.exports=a},16735:function(e,t,n){var r=n(65111),i=n(3334),a=n(35031),o=n(93650);function s(e,t){if(null==e)return{};var n=r(o(e),(function(e){return[e]}));return t=i(t),a(e,n,(function(e,n){return t(e,n[0])}))}e.exports=s},43282:function(e,t,n){var r=n(12762),i=n(98880),a=n(65187),o=n(66040);function s(e){return a(e)?r(o(e)):i(e)}e.exports=s},95479:function(e,t,n){var r=n(93640),i=n(5485),a=r((function(e,t,n){return e+(n?" ":"")+i(t)}));e.exports=a},99306:function(e){function t(){return[]}e.exports=t},34772:function(e){function t(){return!1}e.exports=t},97331:function(e,t,n){var r=n(12784),i=n(41580),a="Expected a function";function o(e,t,n){var o=!0,s=!0;if("function"!=typeof e)throw new TypeError(a);return i(n)&&(o="leading"in n?!!n.leading:o,s="trailing"in n?!!n.trailing:s),r(e,t,{leading:o,maxWait:t,trailing:s})}e.exports=o},43301:function(e,t,n){var r=n(6131),i=1/0,a=17976931348623157e292;function o(e){if(!e)return 0===e?e:0;if(e=r(e),e===i||e===-i){var t=e<0?-1:1;return t*a}return e===e?e:0}e.exports=o},67642:function(e,t,n){var r=n(43301);function i(e){var t=r(e),n=t%1;return t===t?n?t-n:t:0}e.exports=i},6131:function(e,t,n){var r=n(86403),i=n(41580),a=n(51187),o=NaN,s=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;function d(e){if("number"==typeof e)return e;if(a(e))return o;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=l.test(e);return n||c.test(e)?u(e.slice(2),n?2:8):s.test(e)?o:+e}e.exports=d},64207:function(e,t,n){var r=n(39032),i=n(25288);function a(e){return r(e,i(e))}e.exports=a},95243:function(e,t,n){var r=n(52291);function i(e){return null==e?"":r(e)}e.exports=i},2011:function(e,t,n){var r=n(79968),i=n(39747),a=n(47170),o=n(3334),s=n(74784),l=n(53142),c=n(75853),u=n(93655),d=n(41580),h=n(8666);function p(e,t,n){var p=l(e),f=p||c(e)||h(e);if(t=o(t,4),null==n){var m=e&&e.constructor;n=f?p?new m:[]:d(e)&&u(m)?i(s(e)):{}}return(f?r:a)(e,(function(e,r,i){return t(n,e,r,i)})),n}e.exports=p},82438:function(e,t,n){var r=n(15630);function i(e){return e&&e.length?r(e):[]}e.exports=i},5485:function(e,t,n){var r=n(4326),i=r("toUpperCase");e.exports=i},39817:function(e,t,n){var r=n(3905),i=n(81211);function a(e){return null==e?[]:r(e,i(e))}e.exports=a},39850:function(e,t,n){var r=n(39546),i=n(15813),a=n(95243),o=n(10482);function s(e,t,n){return e=a(e),t=n?void 0:t,void 0===t?i(e)?o(e):r(e):e.match(t)||[]}e.exports=s},13182:function(e,t,n){var r=n(79847),i=n(23945),a=n(80214),o=n(65406),s=i((function(e){return a(r(e,o))}));e.exports=s},23624:function(e,t,n){"use strict";const r=n(10222),i=Symbol("max"),a=Symbol("length"),o=Symbol("lengthCalculator"),s=Symbol("allowStale"),l=Symbol("maxAge"),c=Symbol("dispose"),u=Symbol("noDisposeOnSet"),d=Symbol("lruList"),h=Symbol("cache"),p=Symbol("updateAgeOnGet"),f=()=>1;class m{constructor(e){if("number"===typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!==typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[i]=e.max||1/0;const t=e.length||f;if(this[o]="function"!==typeof t?f:t,this[s]=e.stale||!1,e.maxAge&&"number"!==typeof e.maxAge)throw new TypeError("maxAge must be a number");this[l]=e.maxAge||0,this[c]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[p]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!==typeof e||e<0)throw new TypeError("max must be a non-negative number");this[i]=e||1/0,b(this)}get max(){return this[i]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!==typeof e)throw new TypeError("maxAge must be a non-negative number");this[l]=e,b(this)}get maxAge(){return this[l]}set lengthCalculator(e){"function"!==typeof e&&(e=f),e!==this[o]&&(this[o]=e,this[a]=0,this[d].forEach((e=>{e.length=this[o](e.value,e.key),this[a]+=e.length}))),b(this)}get lengthCalculator(){return this[o]}get length(){return this[a]}get itemCount(){return this[d].length}rforEach(e,t){t=t||this;for(let n=this[d].tail;null!==n;){const r=n.prev;E(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[d].head;null!==n;){const r=n.next;E(this,e,n,t),n=r}}keys(){return this[d].toArray().map((e=>e.key))}values(){return this[d].toArray().map((e=>e.value))}reset(){this[c]&&this[d]&&this[d].length&&this[d].forEach((e=>this[c](e.key,e.value))),this[h]=new Map,this[d]=new r,this[a]=0}dump(){return this[d].map((e=>!v(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[d]}set(e,t,n){if(n=n||this[l],n&&"number"!==typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[o](t,e);if(this[h].has(e)){if(s>this[i])return y(this,this[h].get(e)),!1;const o=this[h].get(e),l=o.value;return this[c]&&(this[u]||this[c](e,l.value)),l.now=r,l.maxAge=n,l.value=t,this[a]+=s-l.length,l.length=s,this.get(e),b(this),!0}const p=new w(e,t,s,r,n);return p.length>this[i]?(this[c]&&this[c](e,t),!1):(this[a]+=p.length,this[d].unshift(p),this[h].set(e,this[d].head),b(this),!0)}has(e){if(!this[h].has(e))return!1;const t=this[h].get(e).value;return!v(this,t)}get(e){return g(this,e,!0)}peek(e){return g(this,e,!1)}pop(){const e=this[d].tail;return e?(y(this,e),e.value):null}del(e){y(this,this[h].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],i=r.e||0;if(0===i)this.set(r.k,r.v);else{const e=i-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[h].forEach(((e,t)=>g(this,t,!1)))}}const g=(e,t,n)=>{const r=e[h].get(t);if(r){const t=r.value;if(v(e,t)){if(y(e,r),!e[s])return}else n&&(e[p]&&(r.value.now=Date.now()),e[d].unshiftNode(r));return t.value}},v=(e,t)=>{if(!t||!t.maxAge&&!e[l])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[l]&&n>e[l]},b=e=>{if(e[a]>e[i])for(let t=e[d].tail;e[a]>e[i]&&null!==t;){const n=t.prev;y(e,t),t=n}},y=(e,t)=>{if(t){const n=t.value;e[c]&&e[c](n.key,n.value),e[a]-=n.length,e[h].delete(n.key),e[d].removeNode(t)}};class w{constructor(e,t,n,r,i){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=i||0}}const E=(e,t,n,r)=>{let i=n.value;v(e,i)&&(y(e,n),e[s]||(i=void 0)),i&&t.call(r,i.value,i.key,e)};e.exports=m},33486:function(e,t,n){"use strict";var r=n(4364); +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <https://feross.org> + * @license MIT + */ +const i=n(7991),a=n(39318),o="function"===typeof Symbol&&"function"===typeof Symbol["for"]?Symbol["for"]("nodejs.util.inspect.custom"):null;t.hp=u,t.IS=50;const s=2147483647;function l(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}function c(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"===typeof e){if("string"===typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return d(e,t,n)}function d(e,t,n){if("string"===typeof e)return m(e,t);if(ArrayBuffer.isView(e))return v(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(se(e,ArrayBuffer)||e&&se(e.buffer,ArrayBuffer))return b(e,t,n);if("undefined"!==typeof SharedArrayBuffer&&(se(e,SharedArrayBuffer)||e&&se(e.buffer,SharedArrayBuffer)))return b(e,t,n);if("number"===typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return u.from(r,t,n);const i=y(e);if(i)return i;if("undefined"!==typeof Symbol&&null!=Symbol.toPrimitive&&"function"===typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function h(e){if("number"!==typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function p(e,t,n){return h(e),e<=0?c(e):void 0!==t?"string"===typeof n?c(e).fill(t,n):c(e).fill(t):c(e)}function f(e){return h(e),c(e<0?0:0|w(e))}function m(e,t){if("string"===typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|_(e,t);let r=c(n);const i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function g(e){const t=e.length<0?0:0|w(e.length),n=c(t);for(let r=0;r<t;r+=1)n[r]=255&e[r];return n}function v(e){if(se(e,Uint8Array)){const t=new Uint8Array(e);return b(t.buffer,t.byteOffset,t.byteLength)}return g(e)}function b(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');let r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,u.prototype),r}function y(e){if(u.isBuffer(e)){const t=0|w(e.length),n=c(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!==typeof e.length||le(e.length)?c(0):g(e):"Buffer"===e.type&&Array.isArray(e.data)?g(e.data):void 0}function w(e){if(e>=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function E(e){return+e!=e&&0,u.alloc(+e)}function _(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||se(e,ArrayBuffer))return e.byteLength;if("string"!==typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return ne(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return ae(e).length;default:if(i)return r?-1:ne(e).length;t=(""+t).toLowerCase(),i=!0}}function S(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";e||(e="utf8");while(1)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return L(this,t,n);case"ascii":return M(this,t,n);case"latin1":case"binary":return B(this,t,n);case"base64":return I(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function k(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function x(e,t,n,r,i){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,le(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"===typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:A(e,t,n,r,i);if("number"===typeof t)return t&=255,"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):A(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function A(e,t,n,r,i){let a,o=1,s=e.length,l=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){let r=-1;for(a=n;a<s;a++)if(c(e,a)===c(t,-1===r?0:a-r)){if(-1===r&&(r=a),a-r+1===l)return r*o}else-1!==r&&(a-=a-r),r=-1}else for(n+l>s&&(n=s-l),a=n;a>=0;a--){let n=!0;for(let r=0;r<l;r++)if(c(e,a+r)!==c(t,r)){n=!1;break}if(n)return a}return-1}function N(e,t,n,r){n=Number(n)||0;const i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;const a=t.length;let o;for(r>a/2&&(r=a/2),o=0;o<r;++o){const r=parseInt(t.substr(2*o,2),16);if(le(r))return o;e[n+o]=r}return o}function C(e,t,n,r){return oe(ne(t,e.length-n),e,n,r)}function T(e,t,n,r){return oe(re(t),e,n,r)}function R(e,t,n,r){return oe(ae(t),e,n,r)}function O(e,t,n,r){return oe(ie(t,e.length-n),e,n,r)}function I(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function L(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;while(i<n){const t=e[i];let a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o<=n){let n,r,s,l;switch(o){case 1:t<128&&(a=t);break;case 2:n=e[i+1],128===(192&n)&&(l=(31&t)<<6|63&n,l>127&&(a=l));break;case 3:n=e[i+1],r=e[i+2],128===(192&n)&&128===(192&r)&&(l=(15&t)<<12|(63&n)<<6|63&r,l>2047&&(l<55296||l>57343)&&(a=l));break;case 4:n=e[i+1],r=e[i+2],s=e[i+3],128===(192&n)&&128===(192&r)&&128===(192&s)&&(l=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&s,l>65535&&l<1114112&&(a=l))}}null===a?(a=65533,o=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),i+=o}return P(r)}u.TYPED_ARRAY_SUPPORT=l(),u.TYPED_ARRAY_SUPPORT||"undefined"===typeof r||"function"!==typeof r.error||r.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}}),u.poolSize=8192,u.from=function(e,t,n){return d(e,t,n)},Object.setPrototypeOf(u.prototype,Uint8Array.prototype),Object.setPrototypeOf(u,Uint8Array),u.alloc=function(e,t,n){return p(e,t,n)},u.allocUnsafe=function(e){return f(e)},u.allocUnsafeSlow=function(e){return f(e)},u.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==u.prototype},u.compare=function(e,t){if(se(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),se(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let n=e.length,r=t.length;for(let i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);let n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;const r=u.allocUnsafe(t);let i=0;for(n=0;n<e.length;++n){let t=e[n];if(se(t,Uint8Array))i+t.length>r.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},u.byteLength=_,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)k(this,t,t+1);return this},u.prototype.swap32=function(){const e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)k(this,t,t+3),k(this,t+1,t+2);return this},u.prototype.swap64=function(){const e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)k(this,t,t+7),k(this,t+1,t+6),k(this,t+2,t+5),k(this,t+3,t+4);return this},u.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?L(this,0,e):S.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){let e="";const n=t.IS;return e=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(e+=" ... "),"<Buffer "+e+">"},o&&(u.prototype[o]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(se(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;let a=i-r,o=n-t;const s=Math.min(a,o),l=this.slice(r,i),c=e.slice(t,n);for(let u=0;u<s;++u)if(l[u]!==c[u]){a=l[u],o=c[u];break}return a<o?-1:o<a?1:0},u.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},u.prototype.indexOf=function(e,t,n){return x(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return x(this,e,t,n,!1)},u.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"===typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let a=!1;for(;;)switch(r){case"hex":return N(this,e,t,n);case"utf8":case"utf-8":return C(this,e,t,n);case"ascii":case"latin1":case"binary":return T(this,e,t,n);case"base64":return R(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const D=4096;function P(e){const t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);let n="",r=0;while(r<t)n+=String.fromCharCode.apply(String,e.slice(r,r+=D));return n}function M(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function B(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function F(e,t,n){const r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);let i="";for(let a=t;a<n;++a)i+=ce[e[a]];return i}function $(e,t,n){const r=e.slice(t,n);let i="";for(let a=0;a<r.length-1;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function U(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,n,r,i,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function V(e,t,n,r,i){Q(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,n}function K(e,t,n,r,i){Q(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n+7]=a,a>>=8,e[n+6]=a,a>>=8,e[n+5]=a,a>>=8,e[n+4]=a;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=o,o>>=8,e[n+2]=o,o>>=8,e[n+1]=o,o>>=8,e[n]=o,n+8}function H(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function G(e,t,n,r,i){return t=+t,n>>>=0,i||H(e,t,n,4,34028234663852886e22,-34028234663852886e22),a.write(e,t,n,r,23,4),n+4}function z(e,t,n,r,i){return t=+t,n>>>=0,i||H(e,t,n,8,17976931348623157e292,-17976931348623157e292),a.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){const n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);const r=this.subarray(e,t);return Object.setPrototypeOf(r,u.prototype),r},u.prototype.readUintLE=u.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||U(e,t,this.length);let r=this[e],i=1,a=0;while(++a<t&&(i*=256))r+=this[e+a]*i;return r},u.prototype.readUintBE=u.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||U(e,t,this.length);let r=this[e+--t],i=1;while(t>0&&(i*=256))r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||U(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||U(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||U(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||U(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||U(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=ue((function(e){e>>>=0,J(e,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||Z(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<<BigInt(32))})),u.prototype.readBigUInt64BE=ue((function(e){e>>>=0,J(e,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||Z(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<<BigInt(32))+BigInt(i)})),u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||U(e,t,this.length);let r=this[e],i=1,a=0;while(++a<t&&(i*=256))r+=this[e+a]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||U(e,t,this.length);let r=t,i=1,a=this[e+--r];while(r>0&&(i*=256))a+=this[e+--r]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return e>>>=0,t||U(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||U(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||U(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||U(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||U(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=ue((function(e){e>>>=0,J(e,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||Z(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),u.prototype.readBigInt64BE=ue((function(e){e>>>=0,J(e,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||Z(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+n)})),u.prototype.readFloatLE=function(e,t){return e>>>=0,t||U(e,4,this.length),a.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||U(e,4,this.length),a.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||U(e,8,this.length),a.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||U(e,8,this.length),a.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){const r=Math.pow(2,8*n)-1;j(this,e,t,n,r,0)}let i=1,a=0;this[t]=255&e;while(++a<n&&(i*=256))this[t+a]=e/i&255;return t+n},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){const r=Math.pow(2,8*n)-1;j(this,e,t,n,r,0)}let i=n-1,a=1;this[t+i]=255&e;while(--i>=0&&(a*=256))this[t+i]=e/a&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigUInt64LE=ue((function(e,t=0){return V(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=ue((function(e,t=0){return K(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);j(this,e,t,n,r-1,-r)}let i=0,a=1,o=0;this[t]=255&e;while(++i<n&&(a*=256))e<0&&0===o&&0!==this[t+i-1]&&(o=1),this[t+i]=(e/a|0)-o&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);j(this,e,t,n,r-1,-r)}let i=n-1,a=1,o=0;this[t+i]=255&e;while(--i>=0&&(a*=256))e<0&&0===o&&0!==this[t+i+1]&&(o=1),this[t+i]=(e/a|0)-o&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||j(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigInt64LE=ue((function(e,t=0){return V(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=ue((function(e,t=0){return K(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(e,t,n){return G(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return G(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return z(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return z(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);const i=r-n;return this===e&&"function"===typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),i},u.prototype.fill=function(e,t,n,r){if("string"===typeof e){if("string"===typeof t?(r=t,t=0,n=this.length):"string"===typeof n&&(r=n,n=this.length),void 0!==r&&"string"!==typeof r)throw new TypeError("encoding must be a string");if("string"===typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===e.length){const t=e.charCodeAt(0);("utf8"===r&&t<128||"latin1"===r)&&(e=t)}}else"number"===typeof e?e&=255:"boolean"===typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;let i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(i=t;i<n;++i)this[i]=e;else{const a=u.isBuffer(e)?e:u.from(e,r),o=a.length;if(0===o)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(i=0;i<n-t;++i)this[i+t]=a[i%o]}return this};const q={};function X(e,t,n){q[e]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function W(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function Y(e,t,n){J(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||Z(t,e.length-(n+1))}function Q(e,t,n,r,i,a){if(e>n||e<t){const r="bigint"===typeof t?"n":"";let i;throw i=a>3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(a+1)}${r}`:`>= -(2${r} ** ${8*(a+1)-1}${r}) and < 2 ** ${8*(a+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new q.ERR_OUT_OF_RANGE("value",i,e)}Y(r,i,a)}function J(e,t){if("number"!==typeof e)throw new q.ERR_INVALID_ARG_TYPE(t,"number",e)}function Z(e,t,n){if(Math.floor(e)!==e)throw J(e,n),new q.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new q.ERR_BUFFER_OUT_OF_BOUNDS;throw new q.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}X("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),X("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),X("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=W(String(n)):"bigint"===typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=W(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r}),RangeError);const ee=/[^+/0-9A-Za-z-_]/g;function te(e){if(e=e.split("=")[0],e=e.trim().replace(ee,""),e.length<2)return"";while(e.length%4!==0)e+="=";return e}function ne(e,t){let n;t=t||1/0;const r=e.length;let i=null;const a=[];for(let o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function re(e){const t=[];for(let n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function ie(e,t){let n,r,i;const a=[];for(let o=0;o<e.length;++o){if((t-=2)<0)break;n=e.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r)}return a}function ae(e){return i.toByteArray(te(e))}function oe(e,t,n,r){let i;for(i=0;i<r;++i){if(i+n>=t.length||i>=e.length)break;t[i+n]=e[i]}return i}function se(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function le(e){return e!==e}const ce=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function ue(e){return"undefined"===typeof BigInt?de:e}function de(){throw new Error("BigInt not supported")}},82372:function(e){"use strict";var t=function(e){return e!==e};e.exports=function(e,n){return 0===e&&0===n?1/e===1/n:e===n||!(!t(e)||!t(n))}},55968:function(e,t,n){"use strict";var r=n(41857),i=n(28498),a=n(82372),o=n(61937),s=n(85087),l=i(o(),Object);r(l,{getPolyfill:o,implementation:a,shim:s}),e.exports=l},61937:function(e,t,n){"use strict";var r=n(82372);e.exports=function(){return"function"===typeof Object.is?Object.is:r}},85087:function(e,t,n){"use strict";var r=n(61937),i=n(41857);e.exports=function(){var e=r();return i(Object,{is:e},{is:function(){return Object.is!==e}}),e}},78160:function(e,t,n){"use strict";var r;if(!Object.keys){var i=Object.prototype.hasOwnProperty,a=Object.prototype.toString,o=n(50968),s=Object.prototype.propertyIsEnumerable,l=!s.call({toString:null},"toString"),c=s.call((function(){}),"prototype"),u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=function(e){var t=e.constructor;return t&&t.prototype===e},h={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},p=function(){if("undefined"===typeof window)return!1;for(var e in window)try{if(!h["$"+e]&&i.call(window,e)&&null!==window[e]&&"object"===typeof window[e])try{d(window[e])}catch(t){return!0}}catch(t){return!0}return!1}(),f=function(e){if("undefined"===typeof window||!p)return d(e);try{return d(e)}catch(t){return!1}};r=function(e){var t=null!==e&&"object"===typeof e,n="[object Function]"===a.call(e),r=o(e),s=t&&"[object String]"===a.call(e),d=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var h=c&&n;if(s&&e.length>0&&!i.call(e,0))for(var p=0;p<e.length;++p)d.push(String(p));if(r&&e.length>0)for(var m=0;m<e.length;++m)d.push(String(m));else for(var g in e)h&&"prototype"===g||!i.call(e,g)||d.push(String(g));if(l)for(var v=f(e),b=0;b<u.length;++b)v&&"constructor"===u[b]||!i.call(e,u[b])||d.push(u[b]);return d}}e.exports=r},49228:function(e,t,n){"use strict";var r=Array.prototype.slice,i=n(50968),a=Object.keys,o=a?function(e){return a(e)}:n(78160),s=Object.keys;o.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return i(e)?s(r.call(e)):s(e)})}else Object.keys=o;return Object.keys||o},e.exports=o},50968:function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},25164:function(e,t,n){"use strict";var r=n(49228),i=n(62908)(),a=n(79818),o=Object,s=a("Array.prototype.push"),l=a("Object.prototype.propertyIsEnumerable"),c=i?Object.getOwnPropertySymbols:null;e.exports=function(e,t){if(null==e)throw new TypeError("target must be an object");var n=o(e);if(1===arguments.length)return n;for(var a=1;a<arguments.length;++a){var u=o(arguments[a]),d=r(u),h=i&&(Object.getOwnPropertySymbols||c);if(h)for(var p=h(u),f=0;f<p.length;++f){var m=p[f];l(u,m)&&s(d,m)}for(var g=0;g<d.length;++g){var v=d[g];if(l(u,v)){var b=u[v];n[v]=b}}}return n}},23225:function(e,t,n){"use strict";var r=n(25164),i=function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),n={},r=0;r<t.length;++r)n[t[r]]=t[r];var i=Object.assign({},n),a="";for(var o in i)a+=o;return e!==a},a=function(){if(!Object.assign||!Object.preventExtensions)return!1;var e=Object.preventExtensions({1:2});try{Object.assign(e,"xy")}catch(t){return"y"===e[1]}return!1};e.exports=function(){return Object.assign?i()||a()?r:Object.assign:r}},69501:function(e){"use strict";e.exports=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]},39907:function(e){var t,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function o(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}function s(e){if(n===clearTimeout)return clearTimeout(e);if((n===a||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(function(){try{t="function"===typeof setTimeout?setTimeout:i}catch(e){t=i}try{n="function"===typeof clearTimeout?clearTimeout:a}catch(e){n=a}})();var l,c=[],u=!1,d=-1;function h(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&p())}function p(){if(!u){var e=o(h);u=!0;var t=c.length;while(t){l=c,c=[];while(++d<t)l&&l[d].run();d=-1,t=c.length}l=null,u=!1,s(e)}}function f(e,t){this.fun=e,this.array=t}function m(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new f(e,t)),1!==c.length||u||o(p)},f.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=m,r.addListener=m,r.once=m,r.off=m,r.removeListener=m,r.removeAllListeners=m,r.emit=m,r.prependListener=m,r.prependOnceListener=m,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},1830:function(e){"use strict";var t=String.prototype.replace,n=/%20/g,r={RFC1738:"RFC1738",RFC3986:"RFC3986"};e.exports={default:r.RFC3986,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:r.RFC1738,RFC3986:r.RFC3986}},45810:function(e,t,n){"use strict";var r=n(16623),i=n(26193),a=n(1830);e.exports={formats:a,parse:i,stringify:r}},26193:function(e,t,n){"use strict";var r=n(91539),i=Object.prototype.hasOwnProperty,a=Array.isArray,o={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},l=function(e,t){return e&&"string"===typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},c="utf8=%26%2310003%3B",u="utf8=%E2%9C%93",d=function(e,t){var n,d={},h=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,p=t.parameterLimit===1/0?void 0:t.parameterLimit,f=h.split(t.delimiter,p),m=-1,g=t.charset;if(t.charsetSentinel)for(n=0;n<f.length;++n)0===f[n].indexOf("utf8=")&&(f[n]===u?g="utf-8":f[n]===c&&(g="iso-8859-1"),m=n,n=f.length);for(n=0;n<f.length;++n)if(n!==m){var v,b,y=f[n],w=y.indexOf("]="),E=-1===w?y.indexOf("="):w+1;-1===E?(v=t.decoder(y,o.decoder,g,"key"),b=t.strictNullHandling?null:""):(v=t.decoder(y.slice(0,E),o.decoder,g,"key"),b=r.maybeMap(l(y.slice(E+1),t),(function(e){return t.decoder(e,o.decoder,g,"value")}))),b&&t.interpretNumericEntities&&"iso-8859-1"===g&&(b=s(b)),y.indexOf("[]=")>-1&&(b=a(b)?[b]:b),i.call(d,v)?d[v]=r.combine(d[v],b):d[v]=b}return d},h=function(e,t,n,r){for(var i=r?t:l(t,n),a=e.length-1;a>=0;--a){var o,s=e[a];if("[]"===s&&n.parseArrays)o=[].concat(i);else{o=n.plainObjects?Object.create(null):{};var c="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,u=parseInt(c,10);n.parseArrays||""!==c?!isNaN(u)&&s!==c&&String(u)===c&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(o=[],o[u]=i):"__proto__"!==c&&(o[c]=i):o={0:i}}i=o}return i},p=function(e,t,n,r){if(e){var a=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,l=n.depth>0&&o.exec(a),c=l?a.slice(0,l.index):a,u=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;u.push(c)}var d=0;while(n.depth>0&&null!==(l=s.exec(a))&&d<n.depth){if(d+=1,!n.plainObjects&&i.call(Object.prototype,l[1].slice(1,-1))&&!n.allowPrototypes)return;u.push(l[1])}return l&&u.push("["+a.slice(l.index)+"]"),h(u,t,n,r)}},f=function(e){if(!e)return o;if(null!==e.decoder&&void 0!==e.decoder&&"function"!==typeof e.decoder)throw new TypeError("Decoder has to be a function.");if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t="undefined"===typeof e.charset?o.charset:e.charset;return{allowDots:"undefined"===typeof e.allowDots?o.allowDots:!!e.allowDots,allowPrototypes:"boolean"===typeof e.allowPrototypes?e.allowPrototypes:o.allowPrototypes,allowSparse:"boolean"===typeof e.allowSparse?e.allowSparse:o.allowSparse,arrayLimit:"number"===typeof e.arrayLimit?e.arrayLimit:o.arrayLimit,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:o.charsetSentinel,comma:"boolean"===typeof e.comma?e.comma:o.comma,decoder:"function"===typeof e.decoder?e.decoder:o.decoder,delimiter:"string"===typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:o.delimiter,depth:"number"===typeof e.depth||!1===e.depth?+e.depth:o.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"===typeof e.interpretNumericEntities?e.interpretNumericEntities:o.interpretNumericEntities,parameterLimit:"number"===typeof e.parameterLimit?e.parameterLimit:o.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"===typeof e.plainObjects?e.plainObjects:o.plainObjects,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:o.strictNullHandling}};e.exports=function(e,t){var n=f(t);if(""===e||null===e||"undefined"===typeof e)return n.plainObjects?Object.create(null):{};for(var i="string"===typeof e?d(e,n):e,a=n.plainObjects?Object.create(null):{},o=Object.keys(i),s=0;s<o.length;++s){var l=o[s],c=p(l,i[l],n,"string"===typeof e);a=r.merge(a,c,n)}return!0===n.allowSparse?a:r.compact(a)}},16623:function(e,t,n){"use strict";var r=n(77575),i=n(91539),a=n(1830),o=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},l=Array.isArray,c=Array.prototype.push,u=function(e,t){c.apply(e,l(t)?t:[t])},d=Date.prototype.toISOString,h=a["default"],p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:i.encode,encodeValuesOnly:!1,format:h,formatter:a.formatters[h],indices:!1,serializeDate:function(e){return d.call(e)},skipNulls:!1,strictNullHandling:!1},f=function(e){return"string"===typeof e||"number"===typeof e||"boolean"===typeof e||"symbol"===typeof e||"bigint"===typeof e},m={},g=function e(t,n,a,o,s,c,d,h,g,v,b,y,w,E,_,S){var k=t,x=S,A=0,N=!1;while(void 0!==(x=x.get(m))&&!N){var C=x.get(t);if(A+=1,"undefined"!==typeof C){if(C===A)throw new RangeError("Cyclic object value");N=!0}"undefined"===typeof x.get(m)&&(A=0)}if("function"===typeof h?k=h(n,k):k instanceof Date?k=b(k):"comma"===a&&l(k)&&(k=i.maybeMap(k,(function(e){return e instanceof Date?b(e):e}))),null===k){if(s)return d&&!E?d(n,p.encoder,_,"key",y):n;k=""}if(f(k)||i.isBuffer(k)){if(d){var T=E?n:d(n,p.encoder,_,"key",y);return[w(T)+"="+w(d(k,p.encoder,_,"value",y))]}return[w(n)+"="+w(String(k))]}var R,O=[];if("undefined"===typeof k)return O;if("comma"===a&&l(k))E&&d&&(k=i.maybeMap(k,d)),R=[{value:k.length>0?k.join(",")||null:void 0}];else if(l(h))R=h;else{var I=Object.keys(k);R=g?I.sort(g):I}for(var L=o&&l(k)&&1===k.length?n+"[]":n,D=0;D<R.length;++D){var P=R[D],M="object"===typeof P&&"undefined"!==typeof P.value?P.value:k[P];if(!c||null!==M){var B=l(k)?"function"===typeof a?a(L,P):L:L+(v?"."+P:"["+P+"]");S.set(t,A);var F=r();F.set(m,S),u(O,e(M,B,a,o,s,c,"comma"===a&&E&&l(k)?null:d,h,g,v,b,y,w,E,_,F))}}return O},v=function(e){if(!e)return p;if(null!==e.encoder&&"undefined"!==typeof e.encoder&&"function"!==typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=a["default"];if("undefined"!==typeof e.format){if(!o.call(a.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var r=a.formatters[n],i=p.filter;return("function"===typeof e.filter||l(e.filter))&&(i=e.filter),{addQueryPrefix:"boolean"===typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:"undefined"===typeof e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:"undefined"===typeof e.delimiter?p.delimiter:e.delimiter,encode:"boolean"===typeof e.encode?e.encode:p.encode,encoder:"function"===typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"===typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:i,format:n,formatter:r,serializeDate:"function"===typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"===typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"===typeof e.sort?e.sort:null,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}};e.exports=function(e,t){var n,i,a=e,o=v(t);"function"===typeof o.filter?(i=o.filter,a=i("",a)):l(o.filter)&&(i=o.filter,n=i);var c,d=[];if("object"!==typeof a||null===a)return"";c=t&&t.arrayFormat in s?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var h=s[c];if(t&&"commaRoundTrip"in t&&"boolean"!==typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var p="comma"===h&&t&&t.commaRoundTrip;n||(n=Object.keys(a)),o.sort&&n.sort(o.sort);for(var f=r(),m=0;m<n.length;++m){var b=n[m];o.skipNulls&&null===a[b]||u(d,g(a[b],b,h,p,o.strictNullHandling,o.skipNulls,o.encode?o.encoder:null,o.filter,o.sort,o.allowDots,o.serializeDate,o.format,o.formatter,o.encodeValuesOnly,o.charset,f))}var y=d.join(o.delimiter),w=!0===o.addQueryPrefix?"?":"";return o.charsetSentinel&&("iso-8859-1"===o.charset?w+="utf8=%26%2310003%3B&":w+="utf8=%E2%9C%93&"),y.length>0?w+y:""}},91539:function(e,t,n){"use strict";var r=n(1830),i=Object.prototype.hasOwnProperty,a=Array.isArray,o=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e){while(e.length>1){var t=e.pop(),n=t.obj[t.prop];if(a(n)){for(var r=[],i=0;i<n.length;++i)"undefined"!==typeof n[i]&&r.push(n[i]);t.obj[t.prop]=r}}},l=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r<e.length;++r)"undefined"!==typeof e[r]&&(n[r]=e[r]);return n},c=function e(t,n,r){if(!n)return t;if("object"!==typeof n){if(a(t))t.push(n);else{if(!t||"object"!==typeof t)return[t,n];(r&&(r.plainObjects||r.allowPrototypes)||!i.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!==typeof t)return[t].concat(n);var o=t;return a(t)&&!a(n)&&(o=l(t,r)),a(t)&&a(n)?(n.forEach((function(n,a){if(i.call(t,a)){var o=t[a];o&&"object"===typeof o&&n&&"object"===typeof n?t[a]=e(o,n,r):t.push(n)}else t[a]=n})),t):Object.keys(n).reduce((function(t,a){var o=n[a];return i.call(t,a)?t[a]=e(t[a],o,r):t[a]=o,t}),o)},u=function(e,t){return Object.keys(t).reduce((function(e,n){return e[n]=t[n],e}),e)},d=function(e,t,n){var r=e.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(i){return r}},h=function(e,t,n,i,a){if(0===e.length)return e;var s=e;if("symbol"===typeof e?s=Symbol.prototype.toString.call(e):"string"!==typeof e&&(s=String(e)),"iso-8859-1"===n)return escape(s).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var l="",c=0;c<s.length;++c){var u=s.charCodeAt(c);45===u||46===u||95===u||126===u||u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122||a===r.RFC1738&&(40===u||41===u)?l+=s.charAt(c):u<128?l+=o[u]:u<2048?l+=o[192|u>>6]+o[128|63&u]:u<55296||u>=57344?l+=o[224|u>>12]+o[128|u>>6&63]+o[128|63&u]:(c+=1,u=65536+((1023&u)<<10|1023&s.charCodeAt(c)),l+=o[240|u>>18]+o[128|u>>12&63]+o[128|u>>6&63]+o[128|63&u])}return l},p=function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],r=0;r<t.length;++r)for(var i=t[r],a=i.obj[i.prop],o=Object.keys(a),l=0;l<o.length;++l){var c=o[l],u=a[c];"object"===typeof u&&null!==u&&-1===n.indexOf(u)&&(t.push({obj:a,prop:c}),n.push(u))}return s(t),e},f=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},m=function(e){return!(!e||"object"!==typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},g=function(e,t){return[].concat(e,t)},v=function(e,t){if(a(e)){for(var n=[],r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)};e.exports={arrayToObject:l,assign:u,combine:g,compact:p,decode:d,encode:h,isBuffer:m,isRegExp:f,maybeMap:v,merge:c}},1359:function(e,t){"use strict";var n,r=Object.prototype.hasOwnProperty;function i(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return null}}function a(e){try{return encodeURIComponent(e)}catch(t){return null}}function o(e){var t,n=/([^=?#&]+)=?([^&]*)/g,r={};while(t=n.exec(e)){var a=i(t[1]),o=i(t[2]);null===a||null===o||a in r||(r[a]=o)}return r}function s(e,t){t=t||"";var i,o,s=[];for(o in"string"!==typeof t&&(t="?"),e)if(r.call(e,o)){if(i=e[o],i||null!==i&&i!==n&&!isNaN(i)||(i=""),o=a(o),i=a(i),null===o||null===i)continue;s.push(o+"="+i)}return s.length?t+s.join("&"):""}t.stringify=s,t.parse=o},85699:function(e){"use strict";function t(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var n={};function r(e,r,i){function a(e,t,n){return"string"===typeof r?r:r(e,t,n)}i||(i=Error);var o=function(e){function n(t,n,r){return e.call(this,a(t,n,r))||this}return t(n,e),n}(i);o.prototype.name=i.name,o.prototype.code=e,n[e]=o}function i(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}function a(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function o(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function s(e,t,n){return"number"!==typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,n){var r,l;if("string"===typeof t&&a(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be",o(e," argument"))l="The ".concat(e," ").concat(r," ").concat(i(t,"type"));else{var c=s(e,".")?"property":"argument";l='The "'.concat(e,'" ').concat(c," ").concat(r," ").concat(i(t,"type"))}return l+=". Received type ".concat(typeof n),l}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.F=n},11265:function(e,t,n){"use strict";var r=n(39907),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=u;var a=n(28199),o=n(5291);n(35615)(u,a);for(var s=i(o.prototype),l=0;l<s.length;l++){var c=s[l];u.prototype[c]||(u.prototype[c]=o.prototype[c])}function u(e){if(!(this instanceof u))return new u(e);a.call(this,e),o.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",d)))}function d(){this._writableState.ended||r.nextTick(h,this)}function h(e){e.end()}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})},94421:function(e,t,n){"use strict";e.exports=i;var r=n(99415);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}n(35615)(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},28199:function(e,t,n){"use strict";var r,i=n(39907);e.exports=T,T.ReadableState=C;n(50046).EventEmitter;var a=function(e,t){return e.listeners(t).length},o=n(64856),s=n(1048).Buffer,l=("undefined"!==typeof n.g?n.g:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function c(e){return s.from(e)}function u(e){return s.isBuffer(e)||e instanceof l}var d,h=n(43951);d=h&&h.debuglog?h.debuglog("stream"):function(){};var p,f,m,g=n(82),v=n(16527),b=n(89952),y=b.getHighWaterMark,w=n(85699).F,E=w.ERR_INVALID_ARG_TYPE,_=w.ERR_STREAM_PUSH_AFTER_EOF,S=w.ERR_METHOD_NOT_IMPLEMENTED,k=w.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(35615)(T,o);var x=v.errorOrDestroy,A=["error","close","destroy","pause","resume"];function N(e,t,n){if("function"===typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}function C(e,t,i){r=r||n(11265),e=e||{},"boolean"!==typeof i&&(i=t instanceof r),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=y(this,e,"readableHighWaterMark",i),this.buffer=new g,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=n(18888).I),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function T(e){if(r=r||n(11265),!(this instanceof T))return new T(e);var t=this instanceof r;this._readableState=new C(e,this,t),this.readable=!0,e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function R(e,t,n,r,i){d("readableAddChunk",t);var a,o=e._readableState;if(null===t)o.reading=!1,M(e,o);else if(i||(a=I(o,t)),a)x(e,a);else if(o.objectMode||t&&t.length>0)if("string"===typeof t||o.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=c(t)),r)o.endEmitted?x(e,new k):O(e,o,t,!0);else if(o.ended)x(e,new _);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!n?(t=o.decoder.write(t),o.objectMode||0!==t.length?O(e,o,t,!1):$(e,o)):O(e,o,t,!1)}else r||(o.reading=!1,$(e,o));return!o.ended&&(o.length<o.highWaterMark||0===o.length)}function O(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&B(e)),$(e,t)}function I(e,t){var n;return u(t)||"string"===typeof t||void 0===t||e.objectMode||(n=new E("chunk",["string","Buffer","Uint8Array"],t)),n}Object.defineProperty(T.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),T.prototype.destroy=v.destroy,T.prototype._undestroy=v.undestroy,T.prototype._destroy=function(e,t){t(e)},T.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"===typeof e&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=s.from(e,t),t=""),n=!0),R(this,e,t,!1,n)},T.prototype.unshift=function(e){return R(this,e,null,!0,!1)},T.prototype.isPaused=function(){return!1===this._readableState.flowing},T.prototype.setEncoding=function(e){p||(p=n(18888).I);var t=new p(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;var r=this._readableState.buffer.head,i="";while(null!==r)i+=t.write(r.data),r=r.next;return this._readableState.buffer.clear(),""!==i&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var L=1073741824;function D(e){return e>=L?e=L:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function P(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=D(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function M(e,t){if(d("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?B(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,F(e)))}}function B(e){var t=e._readableState;d("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(d("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(F,e))}function F(e){var t=e._readableState;d("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,z(e)}function $(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(U,e,t))}function U(e,t){while(!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length)){var n=t.length;if(d("maybeReadMore read 0"),e.read(0),n===t.length)break}t.readingMore=!1}function j(e){return function(){var t=e._readableState;d("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,z(e))}}function V(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function K(e){d("readable nexttick read 0"),e.read(0)}function H(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(G,e,t))}function G(e,t){d("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),z(e),t.flowing&&!t.reading&&e.read(0)}function z(e){var t=e._readableState;d("flow",t.flowing);while(t.flowing&&null!==e.read());}function q(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function X(e){var t=e._readableState;d("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(W,t,e))}function W(e,t){if(d("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function Y(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}T.prototype.read=function(e){d("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return d("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?X(this):B(this),null;if(e=P(e,t),0===e&&t.ended)return 0===t.length&&X(this),null;var r,i=t.needReadable;return d("need readable",i),(0===t.length||t.length-e<t.highWaterMark)&&(i=!0,d("length less than watermark",i)),t.ended||t.reading?(i=!1,d("reading or ended",i)):i&&(d("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=P(n,t))),r=e>0?q(e,t):null,null===r?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&X(this)),null!==r&&this.emit("data",r),r},T.prototype._read=function(e){x(this,new S("_read()"))},T.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e);break}r.pipesCount+=1,d("pipe count=%d opts=%j",r.pipesCount,t);var o=(!t||!1!==t.end)&&e!==i.stdout&&e!==i.stderr,s=o?c:b;function l(e,t){d("onunpipe"),e===n&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,p())}function c(){d("onend"),e.end()}r.endEmitted?i.nextTick(s):n.once("end",s),e.on("unpipe",l);var u=j(n);e.on("drain",u);var h=!1;function p(){d("cleanup"),e.removeListener("close",g),e.removeListener("finish",v),e.removeListener("drain",u),e.removeListener("error",m),e.removeListener("unpipe",l),n.removeListener("end",c),n.removeListener("end",b),n.removeListener("data",f),h=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||u()}function f(t){d("ondata");var i=e.write(t);d("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==Y(r.pipes,e))&&!h&&(d("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function m(t){d("onerror",t),b(),e.removeListener("error",m),0===a(e,"error")&&x(e,t)}function g(){e.removeListener("finish",v),b()}function v(){d("onfinish"),e.removeListener("close",g),b()}function b(){d("unpipe"),n.unpipe(e)}return n.on("data",f),N(e,"error",m),e.once("close",g),e.once("finish",v),e.emit("pipe",n),r.flowing||(d("pipe resume"),n.resume()),e},T.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<i;a++)r[a].emit("unpipe",this,{hasUnpiped:!1});return this}var o=Y(t.pipes,e);return-1===o||(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},T.prototype.on=function(e,t){var n=o.prototype.on.call(this,e,t),r=this._readableState;return"data"===e?(r.readableListening=this.listenerCount("readable")>0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,d("on readable",r.length,r.reading),r.length?B(this):r.reading||i.nextTick(K,this))),n},T.prototype.addListener=T.prototype.on,T.prototype.removeListener=function(e,t){var n=o.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(V,this),n},T.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(V,this),t},T.prototype.resume=function(){var e=this._readableState;return e.flowing||(d("resume"),e.flowing=!e.readableListening,H(this,e)),e.paused=!1,this},T.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},T.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",(function(){if(d("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){if(d("wrapped data"),n.decoder&&(i=n.decoder.write(i)),(!n.objectMode||null!==i&&void 0!==i)&&(n.objectMode||i&&i.length)){var a=t.push(i);a||(r=!0,e.pause())}})),e)void 0===this[i]&&"function"===typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a<A.length;a++)e.on(A[a],this.emit.bind(this,A[a]));return this._read=function(t){d("wrapped _read",t),r&&(r=!1,e.resume())},this},"function"===typeof Symbol&&(T.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=n(60534)),f(this)}),Object.defineProperty(T.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(T.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(T.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),T._fromList=q,Object.defineProperty(T.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"===typeof Symbol&&(T.from=function(e,t){return void 0===m&&(m=n(71260)),m(T,e,t)})},99415:function(e,t,n){"use strict";e.exports=u;var r=n(85699).F,i=r.ERR_METHOD_NOT_IMPLEMENTED,a=r.ERR_MULTIPLE_CALLBACK,o=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=r.ERR_TRANSFORM_WITH_LENGTH_0,l=n(11265);function c(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new a);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function u(e){if(!(this instanceof u))return new u(e);l.call(this,e),this._transformState={afterTransform:c.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"===typeof e.transform&&(this._transform=e.transform),"function"===typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",d)}function d(){var e=this;"function"!==typeof this._flush||this._readableState.destroyed?h(this,null,null):this._flush((function(t,n){h(e,t,n)}))}function h(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new s;if(e._transformState.transforming)throw new o;return e.push(null)}n(35615)(u,l),u.prototype.push=function(e,t){return this._transformState.needTransform=!1,l.prototype.push.call(this,e,t)},u.prototype._transform=function(e,t,n){n(new i("_transform()"))},u.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},u.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},u.prototype._destroy=function(e,t){l.prototype._destroy.call(this,e,(function(e){t(e)}))}},5291:function(e,t,n){"use strict";var r,i=n(39907);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){G(t,e)}}e.exports=C,C.WritableState=N;var o={deprecate:n(66732)},s=n(64856),l=n(1048).Buffer,c=("undefined"!==typeof n.g?n.g:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function u(e){return l.from(e)}function d(e){return l.isBuffer(e)||e instanceof c}var h,p=n(16527),f=n(89952),m=f.getHighWaterMark,g=n(85699).F,v=g.ERR_INVALID_ARG_TYPE,b=g.ERR_METHOD_NOT_IMPLEMENTED,y=g.ERR_MULTIPLE_CALLBACK,w=g.ERR_STREAM_CANNOT_PIPE,E=g.ERR_STREAM_DESTROYED,_=g.ERR_STREAM_NULL_VALUES,S=g.ERR_STREAM_WRITE_AFTER_END,k=g.ERR_UNKNOWN_ENCODING,x=p.errorOrDestroy;function A(){}function N(e,t,i){r=r||n(11265),e=e||{},"boolean"!==typeof i&&(i=t instanceof r),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=m(this,e,"writableHighWaterMark",i),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){M(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function C(e){r=r||n(11265);var t=this instanceof r;if(!t&&!h.call(C,this))return new C(e);this._writableState=new N(e,this,t),this.writable=!0,e&&("function"===typeof e.write&&(this._write=e.write),"function"===typeof e.writev&&(this._writev=e.writev),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.final&&(this._final=e.final)),s.call(this)}function T(e,t){var n=new S;x(e,n),i.nextTick(t,n)}function R(e,t,n,r){var a;return null===n?a=new _:"string"===typeof n||t.objectMode||(a=new v("chunk",["string","Buffer"],n)),!a||(x(e,a),i.nextTick(r,a),!1)}function O(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!==typeof t||(t=l.from(t,n)),t}function I(e,t,n,r,i,a){if(!n){var o=O(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var s=t.objectMode?1:r.length;t.length+=s;var l=t.length<t.highWaterMark;if(l||(t.needDrain=!0),t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:a,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else L(e,t,!1,s,r,i,a);return l}function L(e,t,n,r,i,a,o){t.writelen=r,t.writecb=o,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new E("write")):n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function D(e,t,n,r,a){--t.pendingcb,n?(i.nextTick(a,r),i.nextTick(K,e,t),e._writableState.errorEmitted=!0,x(e,r)):(a(r),e._writableState.errorEmitted=!0,x(e,r),K(e,t))}function P(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function M(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if("function"!==typeof a)throw new y;if(P(n),t)D(e,n,r,t,a);else{var o=U(n)||e.destroyed;o||n.corked||n.bufferProcessing||!n.bufferedRequest||$(e,n),r?i.nextTick(B,e,n,o,a):B(e,n,o,a)}}function B(e,t,n,r){n||F(e,t),t.pendingcb--,r(),K(e,t)}function F(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function $(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),o=t.corkedRequestsFree;o.entry=n;var s=0,l=!0;while(n)i[s]=n,n.isBuf||(l=!1),n=n.next,s+=1;i.allBuffers=l,L(e,t,!0,t.length,i,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{while(n){var c=n.chunk,u=n.encoding,d=n.callback,h=t.objectMode?1:c.length;if(L(e,t,!1,h,c,u,d),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function U(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function j(e,t){e._final((function(n){t.pendingcb--,n&&x(e,n),t.prefinished=!0,e.emit("prefinish"),K(e,t)}))}function V(e,t){t.prefinished||t.finalCalled||("function"!==typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(j,e,t)))}function K(e,t){var n=U(t);if(n&&(V(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}function H(e,t,n){t.ending=!0,K(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function G(e,t,n){var r=e.entry;e.entry=null;while(r){var i=r.callback;t.pendingcb--,i(n),r=r.next}t.corkedRequestsFree.next=e}n(35615)(C,s),N.prototype.getBuffer=function(){var e=this.bufferedRequest,t=[];while(e)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(N.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"===typeof Symbol&&Symbol.hasInstance&&"function"===typeof Function.prototype[Symbol.hasInstance]?(h=Function.prototype[Symbol.hasInstance],Object.defineProperty(C,Symbol.hasInstance,{value:function(e){return!!h.call(this,e)||this===C&&(e&&e._writableState instanceof N)}})):h=function(e){return e instanceof this},C.prototype.pipe=function(){x(this,new w)},C.prototype.write=function(e,t,n){var r=this._writableState,i=!1,a=!r.objectMode&&d(e);return a&&!l.isBuffer(e)&&(e=u(e)),"function"===typeof t&&(n=t,t=null),a?t="buffer":t||(t=r.defaultEncoding),"function"!==typeof n&&(n=A),r.ending?T(this,n):(a||R(this,r,e,n))&&(r.pendingcb++,i=I(this,r,a,e,t,n)),i},C.prototype.cork=function(){this._writableState.corked++},C.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||$(this,e))},C.prototype.setDefaultEncoding=function(e){if("string"===typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new k(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(C.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(C.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),C.prototype._write=function(e,t,n){n(new b("_write()"))},C.prototype._writev=null,C.prototype.end=function(e,t,n){var r=this._writableState;return"function"===typeof e?(n=e,e=null,t=null):"function"===typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||H(this,r,n),this},Object.defineProperty(C.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(C.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),C.prototype.destroy=p.destroy,C.prototype._undestroy=p.undestroy,C.prototype._destroy=function(e,t){t(e)}},60534:function(e,t,n){"use strict";var r,i=n(39907);function a(e,t,n){return t=o(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=s(e,"string");return"symbol"===typeof t?t:String(t)}function s(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var l=n(94869),c=Symbol("lastResolve"),u=Symbol("lastReject"),d=Symbol("error"),h=Symbol("ended"),p=Symbol("lastPromise"),f=Symbol("handlePromise"),m=Symbol("stream");function g(e,t){return{value:e,done:t}}function v(e){var t=e[c];if(null!==t){var n=e[m].read();null!==n&&(e[p]=null,e[c]=null,e[u]=null,t(g(n,!1)))}}function b(e){i.nextTick(v,e)}function y(e,t){return function(n,r){e.then((function(){t[h]?n(g(void 0,!0)):t[f](n,r)}),r)}}var w=Object.getPrototypeOf((function(){})),E=Object.setPrototypeOf((r={get stream(){return this[m]},next:function(){var e=this,t=this[d];if(null!==t)return Promise.reject(t);if(this[h])return Promise.resolve(g(void 0,!0));if(this[m].destroyed)return new Promise((function(t,n){i.nextTick((function(){e[d]?n(e[d]):t(g(void 0,!0))}))}));var n,r=this[p];if(r)n=new Promise(y(r,this));else{var a=this[m].read();if(null!==a)return Promise.resolve(g(a,!1));n=new Promise(this[f])}return this[p]=n,n}},a(r,Symbol.asyncIterator,(function(){return this})),a(r,"return",(function(){var e=this;return new Promise((function(t,n){e[m].destroy(null,(function(e){e?n(e):t(g(void 0,!0))}))}))})),r),w),_=function(e){var t,n=Object.create(E,(t={},a(t,m,{value:e,writable:!0}),a(t,c,{value:null,writable:!0}),a(t,u,{value:null,writable:!0}),a(t,d,{value:null,writable:!0}),a(t,h,{value:e._readableState.endEmitted,writable:!0}),a(t,f,{value:function(e,t){var r=n[m].read();r?(n[p]=null,n[c]=null,n[u]=null,e(g(r,!1))):(n[c]=e,n[u]=t)},writable:!0}),t));return n[p]=null,l(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[u];return null!==t&&(n[p]=null,n[c]=null,n[u]=null,t(e)),void(n[d]=e)}var r=n[c];null!==r&&(n[p]=null,n[c]=null,n[u]=null,r(g(void 0,!0))),n[h]=!0})),e.on("readable",b.bind(null,n)),n};e.exports=_},82:function(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return t=c(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key),r)}}function l(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e){var t=u(e,"string");return"symbol"===typeof t?t:String(t)}function u(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var d=n(1048),h=d.Buffer,p=n(63011),f=p.inspect,m=f&&f.custom||"inspect";function g(e,t,n){h.prototype.copy.call(e,t,n)}e.exports=function(){function e(){o(this,e),this.head=null,this.tail=null,this.length=0}return l(e,[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";var t=this.head,n=""+t.data;while(t=t.next)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return h.alloc(0);var t=h.allocUnsafe(e>>>0),n=this.head,r=0;while(n)g(n.data,t,r),r+=n.data.length,n=n.next;return t}},{key:"consume",value:function(e,t){var n;return e<this.head.data.length?(n=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):n=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,n=1,r=t.data;e-=r.length;while(t=t.next){var i=t.data,a=e>i.length?i.length:e;if(a===i.length?r+=i:r+=i.slice(0,e),e-=a,0===e){a===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=h.allocUnsafe(e),n=this.head,r=1;n.data.copy(t),e-=n.data.length;while(n=n.next){var i=n.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),e-=a,0===e){a===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(a));break}++r}return this.length-=r,t}},{key:m,value:function(e,t){return f(this,i(i({},t),{},{depth:0,customInspect:!1}))}}]),e}()},16527:function(e,t,n){"use strict";var r=n(39907);function i(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return i||s?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,r.nextTick(l,this,e)):r.nextTick(l,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?n._writableState?n._writableState.errorEmitted?r.nextTick(o,n):(n._writableState.errorEmitted=!0,r.nextTick(a,n,e)):r.nextTick(a,n,e):t?(r.nextTick(o,n),t(e)):r.nextTick(o,n)})),this)}function a(e,t){l(e,t),o(e)}function o(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function s(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function l(e,t){e.emit("error",t)}function c(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}e.exports={destroy:i,undestroy:s,errorOrDestroy:c}},94869:function(e,t,n){"use strict";var r=n(85699).F.ERR_STREAM_PREMATURE_CLOSE;function i(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(this,r)}}}function a(){}function o(e){return e.setHeader&&"function"===typeof e.abort}function s(e,t,n){if("function"===typeof t)return s(e,null,t);t||(t={}),n=i(n||a);var l=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=function(){e.writable||h()},d=e._writableState&&e._writableState.finished,h=function(){c=!1,d=!0,l||n.call(e)},p=e._readableState&&e._readableState.endEmitted,f=function(){l=!1,p=!0,c||n.call(e)},m=function(t){n.call(e,t)},g=function(){var t;return l&&!p?(e._readableState&&e._readableState.ended||(t=new r),n.call(e,t)):c&&!d?(e._writableState&&e._writableState.ended||(t=new r),n.call(e,t)):void 0},v=function(){e.req.on("finish",h)};return o(e)?(e.on("complete",h),e.on("abort",g),e.req?v():e.on("request",v)):c&&!e._writableState&&(e.on("end",u),e.on("close",u)),e.on("end",f),e.on("finish",h),!1!==t.error&&e.on("error",m),e.on("close",g),function(){e.removeListener("complete",h),e.removeListener("abort",g),e.removeListener("request",v),e.req&&e.req.removeListener("finish",h),e.removeListener("end",u),e.removeListener("close",u),e.removeListener("finish",h),e.removeListener("end",f),e.removeListener("error",m),e.removeListener("close",g)}}e.exports=s},71260:function(e){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},16815:function(e,t,n){"use strict";var r;function i(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var a=n(85699).F,o=a.ERR_MISSING_ARGS,s=a.ERR_STREAM_DESTROYED;function l(e){if(e)throw e}function c(e){return e.setHeader&&"function"===typeof e.abort}function u(e,t,a,o){o=i(o);var l=!1;e.on("close",(function(){l=!0})),void 0===r&&(r=n(94869)),r(e,{readable:t,writable:a},(function(e){if(e)return o(e);l=!0,o()}));var u=!1;return function(t){if(!l&&!u)return u=!0,c(e)?e.abort():"function"===typeof e.destroy?e.destroy():void o(t||new s("pipe"))}}function d(e){e()}function h(e,t){return e.pipe(t)}function p(e){return e.length?"function"!==typeof e[e.length-1]?l:e.pop():l}function f(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,i=p(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new o("streams");var a=t.map((function(e,n){var o=n<t.length-1,s=n>0;return u(e,o,s,(function(e){r||(r=e),e&&a.forEach(d),o||(a.forEach(d),i(r))}))}));return t.reduce(h)}e.exports=f},89952:function(e,t,n){"use strict";var r=n(85699).F.ERR_INVALID_OPT_VALUE;function i(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}function a(e,t,n,a){var o=i(t,a,n);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0){var s=a?n:"highWaterMark";throw new r(s,o)}return Math.floor(o)}return e.objectMode?16:16384}e.exports={getHighWaterMark:a}},64856:function(e,t,n){e.exports=n(50046).EventEmitter},34156:function(e,t,n){t=e.exports=n(28199),t.Stream=t,t.Readable=t,t.Writable=n(5291),t.Duplex=n(11265),t.Transform=n(99415),t.PassThrough=n(94421),t.finished=n(94869),t.pipeline=n(16815)},33062:function(e){"use strict";e.exports=function(e,t){if(t=t.split(":")[0],e=+e,!e)return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}},25636:function(e,t,n){ +/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */ +var r=n(1048),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,n){if("number"===typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!==typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"===typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},51565:function(e,t,n){const r=Symbol("SemVer ANY");class i{static get ANY(){return r}constructor(e,t){if(t=a(t),e instanceof i){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),c("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,c("comp",this)}parse(e){const t=this.options.loose?o[s.COMPARATORLOOSE]:o[s.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new u(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(c("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"===typeof e)try{e=new u(e,this.options)}catch(t){return!1}return l(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof i))throw new TypeError("a Comparator is required");return""===this.operator?""===this.value||new d(e.value,t).test(this.value):""===e.operator?""===e.value||new d(this.value,t).test(e.semver):(t=a(t),(!t.includePrerelease||"<0.0.0-0"!==this.value&&"<0.0.0-0"!==e.value)&&(!(!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&(!(!this.operator.startsWith(">")||!e.operator.startsWith(">"))||(!(!this.operator.startsWith("<")||!e.operator.startsWith("<"))||(!(this.semver.version!==e.semver.version||!this.operator.includes("=")||!e.operator.includes("="))||(!!(l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<"))||!!(l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">"))))))))}}e.exports=i;const a=n(13990),{safeRe:o,t:s}=n(72841),l=n(54004),c=n(41361),u=n(24517),d=n(37476)},37476:function(e,t,n){class r{constructor(e,t){if(t=o(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof s)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!v(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const t of this.set)if(1===t.length&&b(t[0])){this.set=[t];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const t=(this.options.includePrerelease&&m)|(this.options.loose&&g),n=t+":"+e,r=a.get(n);if(r)return r;const i=this.options.loose,o=i?u[d.HYPHENRANGELOOSE]:u[d.HYPHENRANGE];e=e.replace(o,R(this.options.includePrerelease)),l("hyphen replace",e),e=e.replace(u[d.COMPARATORTRIM],h),l("comparator trim",e),e=e.replace(u[d.TILDETRIM],p),l("tilde trim",e),e=e.replace(u[d.CARETTRIM],f),l("caret trim",e);let c=e.split(" ").map((e=>w(e,this.options))).join(" ").split(/\s+/).map((e=>T(e,this.options)));i&&(c=c.filter((e=>(l("loose invalid filter",e,this.options),!!e.match(u[d.COMPARATORLOOSE]))))),l("range list",c);const b=new Map,y=c.map((e=>new s(e,this.options)));for(const a of y){if(v(a))return[a];b.set(a.value,a)}b.size>1&&b.has("")&&b.delete("");const E=[...b.values()];return a.set(n,E),E}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some((n=>y(n,t)&&e.set.some((e=>y(e,t)&&n.every((n=>e.every((e=>n.intersects(e,t)))))))))}test(e){if(!e)return!1;if("string"===typeof e)try{e=new c(e,this.options)}catch(t){return!1}for(let n=0;n<this.set.length;n++)if(O(this.set[n],e,this.options))return!0;return!1}}e.exports=r;const i=n(23624),a=new i({max:1e3}),o=n(13990),s=n(51565),l=n(41361),c=n(24517),{safeRe:u,t:d,comparatorTrimReplace:h,tildeTrimReplace:p,caretTrimReplace:f}=n(72841),{FLAG_INCLUDE_PRERELEASE:m,FLAG_LOOSE:g}=n(79543),v=e=>"<0.0.0-0"===e.value,b=e=>""===e.value,y=(e,t)=>{let n=!0;const r=e.slice();let i=r.pop();while(n&&r.length)n=r.every((e=>i.intersects(e,t))),i=r.pop();return n},w=(e,t)=>(l("comp",e,t),e=k(e,t),l("caret",e),e=_(e,t),l("tildes",e),e=A(e,t),l("xrange",e),e=C(e,t),l("stars",e),e),E=e=>!e||"x"===e.toLowerCase()||"*"===e,_=(e,t)=>e.trim().split(/\s+/).map((e=>S(e,t))).join(" "),S=(e,t)=>{const n=t.loose?u[d.TILDELOOSE]:u[d.TILDE];return e.replace(n,((t,n,r,i,a)=>{let o;return l("tilde",e,t,n,r,i,a),E(n)?o="":E(r)?o=`>=${n}.0.0 <${+n+1}.0.0-0`:E(i)?o=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:a?(l("replaceTilde pr",a),o=`>=${n}.${r}.${i}-${a} <${n}.${+r+1}.0-0`):o=`>=${n}.${r}.${i} <${n}.${+r+1}.0-0`,l("tilde return",o),o}))},k=(e,t)=>e.trim().split(/\s+/).map((e=>x(e,t))).join(" "),x=(e,t)=>{l("caret",e,t);const n=t.loose?u[d.CARETLOOSE]:u[d.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,i,a,o)=>{let s;return l("caret",e,t,n,i,a,o),E(n)?s="":E(i)?s=`>=${n}.0.0${r} <${+n+1}.0.0-0`:E(a)?s="0"===n?`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.0${r} <${+n+1}.0.0-0`:o?(l("replaceCaret pr",o),s="0"===n?"0"===i?`>=${n}.${i}.${a}-${o} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}-${o} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a}-${o} <${+n+1}.0.0-0`):(l("no pr"),s="0"===n?"0"===i?`>=${n}.${i}.${a}${r} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a} <${+n+1}.0.0-0`),l("caret return",s),s}))},A=(e,t)=>(l("replaceXRanges",e,t),e.split(/\s+/).map((e=>N(e,t))).join(" ")),N=(e,t)=>{e=e.trim();const n=t.loose?u[d.XRANGELOOSE]:u[d.XRANGE];return e.replace(n,((n,r,i,a,o,s)=>{l("xRange",e,n,r,i,a,o,s);const c=E(i),u=c||E(a),d=u||E(o),h=d;return"="===r&&h&&(r=""),s=t.includePrerelease?"-0":"",c?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&h?(u&&(a=0),o=0,">"===r?(r=">=",u?(i=+i+1,a=0,o=0):(a=+a+1,o=0)):"<="===r&&(r="<",u?i=+i+1:a=+a+1),"<"===r&&(s="-0"),n=`${r+i}.${a}.${o}${s}`):u?n=`>=${i}.0.0${s} <${+i+1}.0.0-0`:d&&(n=`>=${i}.${a}.0${s} <${i}.${+a+1}.0-0`),l("xRange return",n),n}))},C=(e,t)=>(l("replaceStars",e,t),e.trim().replace(u[d.STAR],"")),T=(e,t)=>(l("replaceGTE0",e,t),e.trim().replace(u[t.includePrerelease?d.GTE0PRE:d.GTE0],"")),R=e=>(t,n,r,i,a,o,s,l,c,u,d,h,p)=>(n=E(r)?"":E(i)?`>=${r}.0.0${e?"-0":""}`:E(a)?`>=${r}.${i}.0${e?"-0":""}`:o?`>=${n}`:`>=${n}${e?"-0":""}`,l=E(c)?"":E(u)?`<${+c+1}.0.0-0`:E(d)?`<${c}.${+u+1}.0-0`:h?`<=${c}.${u}.${d}-${h}`:e?`<${c}.${u}.${+d+1}-0`:`<=${l}`,`${n} ${l}`.trim()),O=(e,t,n)=>{for(let r=0;r<e.length;r++)if(!e[r].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(l(e[n].semver),e[n].semver!==s.ANY&&e[n].semver.prerelease.length>0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},24517:function(e,t,n){const r=n(41361),{MAX_LENGTH:i,MAX_SAFE_INTEGER:a}=n(79543),{safeRe:o,t:s}=n(72841),l=n(13990),{compareIdentifiers:c}=n(93806);class u{constructor(e,t){if(t=l(t),e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!==typeof e)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?o[s.LOOSE]:o[s.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>a||this.major<0)throw new TypeError("Invalid major version");if(this.minor>a||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>a||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<a)return t}return e})):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(r("SemVer.compare",this.version,this.options,e),!(e instanceof u)){if("string"===typeof e&&e===this.version)return 0;e=new u(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof u||(e=new u(e,this.options)),c(this.major,e.major)||c(this.minor,e.minor)||c(this.patch,e.patch)}comparePre(e){if(e instanceof u||(e=new u(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const n=this.prerelease[t],i=e.prerelease[t];if(r("prerelease compare",t,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return c(n,i)}while(++t)}compareBuild(e){e instanceof u||(e=new u(e,this.options));let t=0;do{const n=this.build[t],i=e.build[t];if(r("prerelease compare",t,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return c(n,i)}while(++t)}inc(e,t,n){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const e=Number(n)?1:0;if(!t&&!1===n)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[e];else{let r=this.prerelease.length;while(--r>=0)"number"===typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);if(-1===r){if(t===this.prerelease.join(".")&&!1===n)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let r=[t,e];!1===n&&(r=[t]),0===c(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=r):this.prerelease=r}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}e.exports=u},92281:function(e,t,n){const r=n(93955),i=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};e.exports=i},54004:function(e,t,n){const r=n(28848),i=n(28220),a=n(89761),o=n(72386),s=n(51262),l=n(89639),c=(e,t,n,c)=>{switch(t){case"===":return"object"===typeof e&&(e=e.version),"object"===typeof n&&(n=n.version),e===n;case"!==":return"object"===typeof e&&(e=e.version),"object"===typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,c);case"!=":return i(e,n,c);case">":return a(e,n,c);case">=":return o(e,n,c);case"<":return s(e,n,c);case"<=":return l(e,n,c);default:throw new TypeError(`Invalid operator: ${t}`)}};e.exports=c},56783:function(e,t,n){const r=n(24517),i=n(93955),{safeRe:a,t:o}=n(72841),s=(e,t)=>{if(e instanceof r)return e;if("number"===typeof e&&(e=String(e)),"string"!==typeof e)return null;t=t||{};let n=null;if(t.rtl){let t;while((t=a[o.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length))n&&t.index+t[0].length===n.index+n[0].length||(n=t),a[o.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;a[o.COERCERTL].lastIndex=-1}else n=e.match(a[o.COERCE]);return null===n?null:i(`${n[2]}.${n[3]||"0"}.${n[4]||"0"}`,t)};e.exports=s},6106:function(e,t,n){const r=n(24517),i=(e,t,n)=>{const i=new r(e,n),a=new r(t,n);return i.compare(a)||i.compareBuild(a)};e.exports=i},52132:function(e,t,n){const r=n(87851),i=(e,t)=>r(e,t,!0);e.exports=i},87851:function(e,t,n){const r=n(24517),i=(e,t,n)=>new r(e,n).compare(new r(t,n));e.exports=i},73269:function(e,t,n){const r=n(93955),i=(e,t)=>{const n=r(e,null,!0),i=r(t,null,!0),a=n.compare(i);if(0===a)return null;const o=a>0,s=o?n:i,l=o?i:n,c=!!s.prerelease.length,u=!!l.prerelease.length;if(u&&!c)return l.patch||l.minor?s.patch?"patch":s.minor?"minor":"major":"major";const d=c?"pre":"";return n.major!==i.major?d+"major":n.minor!==i.minor?d+"minor":n.patch!==i.patch?d+"patch":"prerelease"};e.exports=i},28848:function(e,t,n){const r=n(87851),i=(e,t,n)=>0===r(e,t,n);e.exports=i},89761:function(e,t,n){const r=n(87851),i=(e,t,n)=>r(e,t,n)>0;e.exports=i},72386:function(e,t,n){const r=n(87851),i=(e,t,n)=>r(e,t,n)>=0;e.exports=i},38868:function(e,t,n){const r=n(24517),i=(e,t,n,i,a)=>{"string"===typeof n&&(a=i,i=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,i,a).version}catch(o){return null}};e.exports=i},51262:function(e,t,n){const r=n(87851),i=(e,t,n)=>r(e,t,n)<0;e.exports=i},89639:function(e,t,n){const r=n(87851),i=(e,t,n)=>r(e,t,n)<=0;e.exports=i},26381:function(e,t,n){const r=n(24517),i=(e,t)=>new r(e,t).major;e.exports=i},31353:function(e,t,n){const r=n(24517),i=(e,t)=>new r(e,t).minor;e.exports=i},28220:function(e,t,n){const r=n(87851),i=(e,t,n)=>0!==r(e,t,n);e.exports=i},93955:function(e,t,n){const r=n(24517),i=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t)}catch(i){if(!n)return null;throw i}};e.exports=i},96082:function(e,t,n){const r=n(24517),i=(e,t)=>new r(e,t).patch;e.exports=i},69428:function(e,t,n){const r=n(93955),i=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null};e.exports=i},87555:function(e,t,n){const r=n(87851),i=(e,t,n)=>r(t,e,n);e.exports=i},93810:function(e,t,n){const r=n(6106),i=(e,t)=>e.sort(((e,n)=>r(n,e,t)));e.exports=i},27229:function(e,t,n){const r=n(37476),i=(e,t,n)=>{try{t=new r(t,n)}catch(i){return!1}return t.test(e)};e.exports=i},34042:function(e,t,n){const r=n(6106),i=(e,t)=>e.sort(((e,n)=>r(e,n,t)));e.exports=i},28474:function(e,t,n){const r=n(93955),i=(e,t)=>{const n=r(e,t);return n?n.version:null};e.exports=i},2722:function(e,t,n){const r=n(72841),i=n(79543),a=n(24517),o=n(93806),s=n(93955),l=n(28474),c=n(92281),u=n(38868),d=n(73269),h=n(26381),p=n(31353),f=n(96082),m=n(69428),g=n(87851),v=n(87555),b=n(52132),y=n(6106),w=n(34042),E=n(93810),_=n(89761),S=n(51262),k=n(28848),x=n(28220),A=n(72386),N=n(89639),C=n(54004),T=n(56783),R=n(51565),O=n(37476),I=n(27229),L=n(26364),D=n(55039),P=n(55357),M=n(71280),B=n(37403),F=n(58854),$=n(27226),U=n(37183),j=n(18623),V=n(76486),K=n(40583);e.exports={parse:s,valid:l,clean:c,inc:u,diff:d,major:h,minor:p,patch:f,prerelease:m,compare:g,rcompare:v,compareLoose:b,compareBuild:y,sort:w,rsort:E,gt:_,lt:S,eq:k,neq:x,gte:A,lte:N,cmp:C,coerce:T,Comparator:R,Range:O,satisfies:I,toComparators:L,maxSatisfying:D,minSatisfying:P,minVersion:M,validRange:B,outside:F,gtr:$,ltr:U,intersects:j,simplifyRange:V,subset:K,SemVer:a,re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:i.SEMVER_SPEC_VERSION,RELEASE_TYPES:i.RELEASE_TYPES,compareIdentifiers:o.compareIdentifiers,rcompareIdentifiers:o.rcompareIdentifiers}},79543:function(e){const t="2.0.0",n=256,r=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,a=n-6,o=["major","premajor","minor","preminor","patch","prepatch","prerelease"];e.exports={MAX_LENGTH:n,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:a,MAX_SAFE_INTEGER:r,RELEASE_TYPES:o,SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}},41361:function(e,t,n){var r=n(39907),i=n(4364);const a="object"===typeof r&&{NODE_ENV:"production",BASE_URL:"/"}.NODE_DEBUG&&/\bsemver\b/i.test({NODE_ENV:"production",BASE_URL:"/"}.NODE_DEBUG)?(...e)=>i.error("SEMVER",...e):()=>{};e.exports=a},93806:function(e){const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),i=t.test(n);return r&&i&&(e=+e,n=+n),e===n?0:r&&!i?-1:i&&!r?1:e<n?-1:1},r=(e,t)=>n(t,e);e.exports={compareIdentifiers:n,rcompareIdentifiers:r}},13990:function(e){const t=Object.freeze({loose:!0}),n=Object.freeze({}),r=e=>e?"object"!==typeof e?t:e:n;e.exports=r},72841:function(e,t,n){const{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:a}=n(79543),o=n(41361);t=e.exports={};const s=t.re=[],l=t.safeRe=[],c=t.src=[],u=t.t={};let d=0;const h="[a-zA-Z0-9-]",p=[["\\s",1],["\\d",a],[h,i]],f=e=>{for(const[t,n]of p)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},m=(e,t,n)=>{const r=f(t),i=d++;o(e,i,t),u[e]=i,c[i]=t,s[i]=new RegExp(t,n?"g":void 0),l[i]=new RegExp(r,n?"g":void 0)};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${h}*`),m("MAINVERSION",`(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${c[u.NUMERICIDENTIFIER]}|${c[u.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${c[u.NUMERICIDENTIFIERLOOSE]}|${c[u.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${c[u.PRERELEASEIDENTIFIER]}(?:\\.${c[u.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${c[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[u.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${h}+`),m("BUILD",`(?:\\+(${c[u.BUILDIDENTIFIER]}(?:\\.${c[u.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${c[u.MAINVERSION]}${c[u.PRERELEASE]}?${c[u.BUILD]}?`),m("FULL",`^${c[u.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${c[u.MAINVERSIONLOOSE]}${c[u.PRERELEASELOOSE]}?${c[u.BUILD]}?`),m("LOOSE",`^${c[u.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${c[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${c[u.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:${c[u.PRERELEASE]})?${c[u.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:${c[u.PRERELEASELOOSE]})?${c[u.BUILD]}?)?)?`),m("XRANGE",`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAINLOOSE]}$`),m("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),m("COERCERTL",c[u.COERCE],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${c[u.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${c[u.LONETILDE]}${c[u.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${c[u.LONETILDE]}${c[u.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${c[u.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${c[u.LONECARET]}${c[u.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${c[u.LONECARET]}${c[u.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${c[u.GTLT]}\\s*(${c[u.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]}|${c[u.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${c[u.XRANGEPLAIN]})\\s+-\\s+(${c[u.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${c[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[u.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},27226:function(e,t,n){const r=n(58854),i=(e,t,n)=>r(e,t,">",n);e.exports=i},18623:function(e,t,n){const r=n(37476),i=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n));e.exports=i},37183:function(e,t,n){const r=n(58854),i=(e,t,n)=>r(e,t,"<",n);e.exports=i},55039:function(e,t,n){const r=n(24517),i=n(37476),a=(e,t,n)=>{let a=null,o=null,s=null;try{s=new i(t,n)}catch(l){return null}return e.forEach((e=>{s.test(e)&&(a&&-1!==o.compare(e)||(a=e,o=new r(a,n)))})),a};e.exports=a},55357:function(e,t,n){const r=n(24517),i=n(37476),a=(e,t,n)=>{let a=null,o=null,s=null;try{s=new i(t,n)}catch(l){return null}return e.forEach((e=>{s.test(e)&&(a&&1!==o.compare(e)||(a=e,o=new r(a,n)))})),a};e.exports=a},71280:function(e,t,n){const r=n(24517),i=n(37476),a=n(89761),o=(e,t)=>{e=new i(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let i=0;i<e.set.length;++i){const t=e.set[i];let o=null;t.forEach((e=>{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":o&&!a(t,o)||(o=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!o||n&&!a(n,o)||(n=o)}return n&&e.test(n)?n:null};e.exports=o},58854:function(e,t,n){const r=n(24517),i=n(51565),{ANY:a}=i,o=n(37476),s=n(27229),l=n(89761),c=n(51262),u=n(89639),d=n(72386),h=(e,t,n,h)=>{let p,f,m,g,v;switch(e=new r(e,h),t=new o(t,h),n){case">":p=l,f=u,m=c,g=">",v=">=";break;case"<":p=c,f=d,m=l,g="<",v="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(s(e,t,h))return!1;for(let r=0;r<t.set.length;++r){const n=t.set[r];let o=null,s=null;if(n.forEach((e=>{e.semver===a&&(e=new i(">=0.0.0")),o=o||e,s=s||e,p(e.semver,o.semver,h)?o=e:m(e.semver,s.semver,h)&&(s=e)})),o.operator===g||o.operator===v)return!1;if((!s.operator||s.operator===g)&&f(e,s.semver))return!1;if(s.operator===v&&m(e,s.semver))return!1}return!0};e.exports=h},76486:function(e,t,n){const r=n(27229),i=n(87851);e.exports=(e,t,n)=>{const a=[];let o=null,s=null;const l=e.sort(((e,t)=>i(e,t,n)));for(const i of l){const e=r(i,t,n);e?(s=i,o||(o=i)):(s&&a.push([o,s]),s=null,o=null)}o&&a.push([o,null]);const c=[];for(const[r,i]of a)r===i?c.push(r):i||r!==l[0]?i?r===l[0]?c.push(`<=${i}`):c.push(`${r} - ${i}`):c.push(`>=${r}`):c.push("*");const u=c.join(" || "),d="string"===typeof t.raw?t.raw:String(t);return u.length<d.length?u:t}},40583:function(e,t,n){const r=n(37476),i=n(51565),{ANY:a}=i,o=n(27229),s=n(87851),l=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let i=!1;e:for(const r of e.set){for(const e of t.set){const t=d(r,e,n);if(i=i||null!==t,t)continue e}if(i)return!1}return!0},c=[new i(">=0.0.0-0")],u=[new i(">=0.0.0")],d=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===a){if(1===t.length&&t[0].semver===a)return!0;e=n.includePrerelease?c:u}if(1===t.length&&t[0].semver===a){if(n.includePrerelease)return!0;t=u}const r=new Set;let i,l,d,f,m,g,v;for(const a of e)">"===a.operator||">="===a.operator?i=h(i,a,n):"<"===a.operator||"<="===a.operator?l=p(l,a,n):r.add(a.semver);if(r.size>1)return null;if(i&&l){if(d=s(i.semver,l.semver,n),d>0)return null;if(0===d&&(">="!==i.operator||"<="!==l.operator))return null}for(const a of r){if(i&&!o(a,String(i),n))return null;if(l&&!o(a,String(l),n))return null;for(const e of t)if(!o(a,String(e),n))return!1;return!0}let b=!(!l||n.includePrerelease||!l.semver.prerelease.length)&&l.semver,y=!(!i||n.includePrerelease||!i.semver.prerelease.length)&&i.semver;b&&1===b.prerelease.length&&"<"===l.operator&&0===b.prerelease[0]&&(b=!1);for(const a of t){if(v=v||">"===a.operator||">="===a.operator,g=g||"<"===a.operator||"<="===a.operator,i)if(y&&a.semver.prerelease&&a.semver.prerelease.length&&a.semver.major===y.major&&a.semver.minor===y.minor&&a.semver.patch===y.patch&&(y=!1),">"===a.operator||">="===a.operator){if(f=h(i,a,n),f===a&&f!==i)return!1}else if(">="===i.operator&&!o(i.semver,String(a),n))return!1;if(l)if(b&&a.semver.prerelease&&a.semver.prerelease.length&&a.semver.major===b.major&&a.semver.minor===b.minor&&a.semver.patch===b.patch&&(b=!1),"<"===a.operator||"<="===a.operator){if(m=p(l,a,n),m===a&&m!==l)return!1}else if("<="===l.operator&&!o(l.semver,String(a),n))return!1;if(!a.operator&&(l||i)&&0!==d)return!1}return!(i&&g&&!l&&0!==d)&&(!(l&&v&&!i&&0!==d)&&(!y&&!b))},h=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},p=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=l},26364:function(e,t,n){const r=n(37476),i=(e,t)=>new r(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")));e.exports=i},37403:function(e,t,n){const r=n(37476),i=(e,t)=>{try{return new r(e,t).range||"*"}catch(n){return null}};e.exports=i},26108:function(e,t,n){"use strict";var r=n(528),i=n(70686),a=n(17239)(),o=n(69336),s=n(3468),l=r("%Math.floor%");e.exports=function(e,t){if("function"!==typeof e)throw new s("`fn` is not a function");if("number"!==typeof t||t<0||t>4294967295||l(t)!==t)throw new s("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],r=!0,c=!0;if("length"in e&&o){var u=o(e,"length");u&&!u.configurable&&(r=!1),u&&!u.writable&&(c=!1)}return(r||c||!n)&&(a?i(e,"length",t,!0,!0):i(e,"length",t)),e}},77575:function(e,t,n){"use strict";var r=n(528),i=n(79818),a=n(41277),o=n(3468),s=r("%WeakMap%",!0),l=r("%Map%",!0),c=i("WeakMap.prototype.get",!0),u=i("WeakMap.prototype.set",!0),d=i("WeakMap.prototype.has",!0),h=i("Map.prototype.get",!0),p=i("Map.prototype.set",!0),f=i("Map.prototype.has",!0),m=function(e,t){for(var n,r=e;null!==(n=r.next);r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n},g=function(e,t){var n=m(e,t);return n&&n.value},v=function(e,t,n){var r=m(e,t);r?r.value=n:e.next={key:t,next:e.next,value:n}},b=function(e,t){return!!m(e,t)};e.exports=function(){var e,t,n,r={assert:function(e){if(!r.has(e))throw new o("Side channel does not contain "+a(e))},get:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return c(e,r)}else if(l){if(t)return h(t,r)}else if(n)return g(n,r)},has:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return d(e,r)}else if(l){if(t)return f(t,r)}else if(n)return b(n,r);return!1},set:function(r,i){s&&r&&("object"===typeof r||"function"===typeof r)?(e||(e=new s),u(e,r,i)):l?(t||(t=new l),p(t,r,i)):(n||(n={key:{},next:null}),v(n,r,i))}};return r}},41277:function(e,t,n){var r="function"===typeof Map&&Map.prototype,i=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,a=r&&i&&"function"===typeof i.get?i.get:null,o=r&&Map.prototype.forEach,s="function"===typeof Set&&Set.prototype,l=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,c=s&&l&&"function"===typeof l.get?l.get:null,u=s&&Set.prototype.forEach,d="function"===typeof WeakMap&&WeakMap.prototype,h=d?WeakMap.prototype.has:null,p="function"===typeof WeakSet&&WeakSet.prototype,f=p?WeakSet.prototype.has:null,m="function"===typeof WeakRef&&WeakRef.prototype,g=m?WeakRef.prototype.deref:null,v=Boolean.prototype.valueOf,b=Object.prototype.toString,y=Function.prototype.toString,w=String.prototype.match,E=String.prototype.slice,_=String.prototype.replace,S=String.prototype.toUpperCase,k=String.prototype.toLowerCase,x=RegExp.prototype.test,A=Array.prototype.concat,N=Array.prototype.join,C=Array.prototype.slice,T=Math.floor,R="function"===typeof BigInt?BigInt.prototype.valueOf:null,O=Object.getOwnPropertySymbols,I="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?Symbol.prototype.toString:null,L="function"===typeof Symbol&&"object"===typeof Symbol.iterator,D="function"===typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===L||"symbol")?Symbol.toStringTag:null,P=Object.prototype.propertyIsEnumerable,M=("function"===typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function B(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||x.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var r=e<0?-T(-e):T(e);if(r!==e){var i=String(r),a=E.call(t,i.length+1);return _.call(i,n,"$&_")+"."+_.call(_.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return _.call(t,n,"$&_")}var F=n(57260),$=F.custom,U=Y($)?$:null;function j(e,t,n){var r="double"===(n.quoteStyle||t)?'"':"'";return r+e+r}function V(e){return _.call(String(e),/"/g,""")}function K(e){return"[object Array]"===ee(e)&&(!D||!("object"===typeof e&&D in e))}function H(e){return"[object Date]"===ee(e)&&(!D||!("object"===typeof e&&D in e))}function G(e){return"[object RegExp]"===ee(e)&&(!D||!("object"===typeof e&&D in e))}function z(e){return"[object Error]"===ee(e)&&(!D||!("object"===typeof e&&D in e))}function q(e){return"[object String]"===ee(e)&&(!D||!("object"===typeof e&&D in e))}function X(e){return"[object Number]"===ee(e)&&(!D||!("object"===typeof e&&D in e))}function W(e){return"[object Boolean]"===ee(e)&&(!D||!("object"===typeof e&&D in e))}function Y(e){if(L)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!I)return!1;try{return I.call(e),!0}catch(t){}return!1}function Q(e){if(!e||"object"!==typeof e||!R)return!1;try{return R.call(e),!0}catch(t){}return!1}e.exports=function e(t,r,i,s){var l=r||{};if(Z(l,"quoteStyle")&&"single"!==l.quoteStyle&&"double"!==l.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Z(l,"maxStringLength")&&("number"===typeof l.maxStringLength?l.maxStringLength<0&&l.maxStringLength!==1/0:null!==l.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var d=!Z(l,"customInspect")||l.customInspect;if("boolean"!==typeof d&&"symbol"!==d)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Z(l,"indent")&&null!==l.indent&&"\t"!==l.indent&&!(parseInt(l.indent,10)===l.indent&&l.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Z(l,"numericSeparator")&&"boolean"!==typeof l.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var h=l.numericSeparator;if("undefined"===typeof t)return"undefined";if(null===t)return"null";if("boolean"===typeof t)return t?"true":"false";if("string"===typeof t)return ce(t,l);if("number"===typeof t){if(0===t)return 1/0/t>0?"0":"-0";var p=String(t);return h?B(t,p):p}if("bigint"===typeof t){var f=String(t)+"n";return h?B(t,f):f}var m="undefined"===typeof l.depth?5:l.depth;if("undefined"===typeof i&&(i=0),i>=m&&m>0&&"object"===typeof t)return K(t)?"[Array]":"[Object]";var g=me(l,i);if("undefined"===typeof s)s=[];else if(ne(s,t)>=0)return"[Circular]";function b(t,n,r){if(n&&(s=C.call(s),s.push(n)),r){var a={depth:l.depth};return Z(l,"quoteStyle")&&(a.quoteStyle=l.quoteStyle),e(t,a,i+1,s)}return e(t,l,i+1,s)}if("function"===typeof t&&!G(t)){var y=te(t),w=ve(t,b);return"[Function"+(y?": "+y:" (anonymous)")+"]"+(w.length>0?" { "+N.call(w,", ")+" }":"")}if(Y(t)){var S=L?_.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):I.call(t);return"object"!==typeof t||L?S:de(S)}if(le(t)){for(var x="<"+k.call(String(t.nodeName)),T=t.attributes||[],O=0;O<T.length;O++)x+=" "+T[O].name+"="+j(V(T[O].value),"double",l);return x+=">",t.childNodes&&t.childNodes.length&&(x+="..."),x+="</"+k.call(String(t.nodeName))+">",x}if(K(t)){if(0===t.length)return"[]";var $=ve(t,b);return g&&!fe($)?"["+ge($,g)+"]":"[ "+N.call($,", ")+" ]"}if(z(t)){var J=ve(t,b);return"cause"in Error.prototype||!("cause"in t)||P.call(t,"cause")?0===J.length?"["+String(t)+"]":"{ ["+String(t)+"] "+N.call(J,", ")+" }":"{ ["+String(t)+"] "+N.call(A.call("[cause]: "+b(t.cause),J),", ")+" }"}if("object"===typeof t&&d){if(U&&"function"===typeof t[U]&&F)return F(t,{depth:m-i});if("symbol"!==d&&"function"===typeof t.inspect)return t.inspect()}if(re(t)){var ue=[];return o&&o.call(t,(function(e,n){ue.push(b(n,t,!0)+" => "+b(e,t))})),pe("Map",a.call(t),ue,g)}if(oe(t)){var be=[];return u&&u.call(t,(function(e){be.push(b(e,t))})),pe("Set",c.call(t),be,g)}if(ie(t))return he("WeakMap");if(se(t))return he("WeakSet");if(ae(t))return he("WeakRef");if(X(t))return de(b(Number(t)));if(Q(t))return de(b(R.call(t)));if(W(t))return de(v.call(t));if(q(t))return de(b(String(t)));if("undefined"!==typeof window&&t===window)return"{ [object Window] }";if("undefined"!==typeof globalThis&&t===globalThis||"undefined"!==typeof n.g&&t===n.g)return"{ [object globalThis] }";if(!H(t)&&!G(t)){var ye=ve(t,b),we=M?M(t)===Object.prototype:t instanceof Object||t.constructor===Object,Ee=t instanceof Object?"":"null prototype",_e=!we&&D&&Object(t)===t&&D in t?E.call(ee(t),8,-1):Ee?"Object":"",Se=we||"function"!==typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"",ke=Se+(_e||Ee?"["+N.call(A.call([],_e||[],Ee||[]),": ")+"] ":"");return 0===ye.length?ke+"{}":g?ke+"{"+ge(ye,g)+"}":ke+"{ "+N.call(ye,", ")+" }"}return String(t)};var J=Object.prototype.hasOwnProperty||function(e){return e in this};function Z(e,t){return J.call(e,t)}function ee(e){return b.call(e)}function te(e){if(e.name)return e.name;var t=w.call(y.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function ne(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function re(e){if(!a||!e||"object"!==typeof e)return!1;try{a.call(e);try{c.call(e)}catch(t){return!0}return e instanceof Map}catch(n){}return!1}function ie(e){if(!h||!e||"object"!==typeof e)return!1;try{h.call(e,h);try{f.call(e,f)}catch(t){return!0}return e instanceof WeakMap}catch(n){}return!1}function ae(e){if(!g||!e||"object"!==typeof e)return!1;try{return g.call(e),!0}catch(t){}return!1}function oe(e){if(!c||!e||"object"!==typeof e)return!1;try{c.call(e);try{a.call(e)}catch(t){return!0}return e instanceof Set}catch(n){}return!1}function se(e){if(!f||!e||"object"!==typeof e)return!1;try{f.call(e,f);try{h.call(e,h)}catch(t){return!0}return e instanceof WeakSet}catch(n){}return!1}function le(e){return!(!e||"object"!==typeof e)&&("undefined"!==typeof HTMLElement&&e instanceof HTMLElement||"string"===typeof e.nodeName&&"function"===typeof e.getAttribute)}function ce(e,t){if(e.length>t.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return ce(E.call(e,0,t.maxStringLength),t)+r}var i=_.call(_.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,ue);return j(i,"single",t)}function ue(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+S.call(t.toString(16))}function de(e){return"Object("+e+")"}function he(e){return e+" { ? }"}function pe(e,t,n,r){var i=r?ge(n,r):N.call(n,", ");return e+" ("+t+") {"+i+"}"}function fe(e){for(var t=0;t<e.length;t++)if(ne(e[t],"\n")>=0)return!1;return!0}function me(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;n=N.call(Array(e.indent+1)," ")}return{base:n,prev:N.call(Array(t+1),n)}}function ge(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+N.call(e,","+n)+"\n"+t.prev}function ve(e,t){var n=K(e),r=[];if(n){r.length=e.length;for(var i=0;i<e.length;i++)r[i]=Z(e,i)?t(e[i],e):""}var a,o="function"===typeof O?O(e):[];if(L){a={};for(var s=0;s<o.length;s++)a["$"+o[s]]=o[s]}for(var l in e)Z(e,l)&&(n&&String(Number(l))===l&&l<e.length||L&&a["$"+l]instanceof Symbol||(x.call(/[^\w$]/,l)?r.push(t(l,e)+": "+t(e[l],e)):r.push(l+": "+t(e[l],e))));if("function"===typeof O)for(var c=0;c<o.length;c++)P.call(e,o[c])&&r.push("["+t(o[c])+"]: "+t(e[o[c]],e));return r}},59975:function(e,t,n){"use strict";var r=n(37114),i=Array.prototype.concat,a=Array.prototype.slice,o=e.exports=function(e){for(var t=[],n=0,o=e.length;n<o;n++){var s=e[n];r(s)?t=i.call(t,a.call(s)):t.push(s)}return t};o.wrap=function(e){return function(){return e(o(arguments))}}},4865:function(e,t,n){var r=n(98636),i=n(36846),a=n(93227),o=n(30049),s=n(75442),l=t;l.request=function(e,t){e="string"===typeof e?s.parse(e):a(e);var i=-1===n.g.location.protocol.search(/^https?:$/)?"http:":"",o=e.protocol||i,l=e.hostname||e.host,c=e.port,u=e.path||"/";l&&-1!==l.indexOf(":")&&(l="["+l+"]"),e.url=(l?o+"//"+l:"")+(c?":"+c:"")+u,e.method=(e.method||"GET").toUpperCase(),e.headers=e.headers||{};var d=new r(e);return t&&d.on("response",t),d},l.get=function(e,t){var n=l.request(e,t);return n.end(),n},l.ClientRequest=r,l.IncomingMessage=i.IncomingMessage,l.Agent=function(){},l.Agent.defaultMaxSockets=4,l.globalAgent=new l.Agent,l.STATUS_CODES=o,l.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]},42271:function(e,t,n){var r;function i(){if(void 0!==r)return r;if(n.g.XMLHttpRequest){r=new n.g.XMLHttpRequest;try{r.open("GET",n.g.XDomainRequest?"/":"https://example.com")}catch(e){r=null}}else r=null;return r}function a(e){var t=i();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(n){}return!1}function o(e){return"function"===typeof e}t.fetch=o(n.g.fetch)&&o(n.g.ReadableStream),t.writableStream=o(n.g.WritableStream),t.abortController=o(n.g.AbortController),t.arraybuffer=t.fetch||a("arraybuffer"),t.msstream=!t.fetch&&a("ms-stream"),t.mozchunkedarraybuffer=!t.fetch&&a("moz-chunked-arraybuffer"),t.overrideMimeType=t.fetch||!!i()&&o(i().overrideMimeType),r=null},98636:function(e,t,n){var r=n(33486)["hp"],i=n(39907),a=n(42271),o=n(35615),s=n(36846),l=n(34156),c=s.IncomingMessage,u=s.readyStates;function d(e,t){return a.fetch&&t?"fetch":a.mozchunkedarraybuffer?"moz-chunked-arraybuffer":a.msstream?"ms-stream":a.arraybuffer&&e?"arraybuffer":"text"}var h=e.exports=function(e){var t,n=this;l.Writable.call(n),n._opts=e,n._body=[],n._headers={},e.auth&&n.setHeader("Authorization","Basic "+r.from(e.auth).toString("base64")),Object.keys(e.headers).forEach((function(t){n.setHeader(t,e.headers[t])}));var i=!0;if("disable-fetch"===e.mode||"requestTimeout"in e&&!a.abortController)i=!1,t=!0;else if("prefer-streaming"===e.mode)t=!1;else if("allow-wrong-content-type"===e.mode)t=!a.overrideMimeType;else{if(e.mode&&"default"!==e.mode&&"prefer-fast"!==e.mode)throw new Error("Invalid value for opts.mode");t=!0}n._mode=d(t,i),n._fetchTimer=null,n._socketTimeout=null,n._socketTimer=null,n.on("finish",(function(){n._onFinish()}))};function p(e){try{var t=e.status;return null!==t&&0!==t}catch(n){return!1}}o(h,l.Writable),h.prototype.setHeader=function(e,t){var n=this,r=e.toLowerCase();-1===f.indexOf(r)&&(n._headers[r]={name:e,value:t})},h.prototype.getHeader=function(e){var t=this._headers[e.toLowerCase()];return t?t.value:null},h.prototype.removeHeader=function(e){var t=this;delete t._headers[e.toLowerCase()]},h.prototype._onFinish=function(){var e=this;if(!e._destroyed){var t=e._opts;"timeout"in t&&0!==t.timeout&&e.setTimeout(t.timeout);var r=e._headers,o=null;"GET"!==t.method&&"HEAD"!==t.method&&(o=new Blob(e._body,{type:(r["content-type"]||{}).value||""}));var s=[];if(Object.keys(r).forEach((function(e){var t=r[e].name,n=r[e].value;Array.isArray(n)?n.forEach((function(e){s.push([t,e])})):s.push([t,n])})),"fetch"===e._mode){var l=null;if(a.abortController){var c=new AbortController;l=c.signal,e._fetchAbortController=c,"requestTimeout"in t&&0!==t.requestTimeout&&(e._fetchTimer=n.g.setTimeout((function(){e.emit("requestTimeout"),e._fetchAbortController&&e._fetchAbortController.abort()}),t.requestTimeout))}n.g.fetch(e._opts.url,{method:e._opts.method,headers:s,body:o||void 0,mode:"cors",credentials:t.withCredentials?"include":"same-origin",signal:l}).then((function(t){e._fetchResponse=t,e._resetTimers(!1),e._connect()}),(function(t){e._resetTimers(!0),e._destroyed||e.emit("error",t)}))}else{var d=e._xhr=new n.g.XMLHttpRequest;try{d.open(e._opts.method,e._opts.url,!0)}catch(h){return void i.nextTick((function(){e.emit("error",h)}))}"responseType"in d&&(d.responseType=e._mode),"withCredentials"in d&&(d.withCredentials=!!t.withCredentials),"text"===e._mode&&"overrideMimeType"in d&&d.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in t&&(d.timeout=t.requestTimeout,d.ontimeout=function(){e.emit("requestTimeout")}),s.forEach((function(e){d.setRequestHeader(e[0],e[1])})),e._response=null,d.onreadystatechange=function(){switch(d.readyState){case u.LOADING:case u.DONE:e._onXHRProgress();break}},"moz-chunked-arraybuffer"===e._mode&&(d.onprogress=function(){e._onXHRProgress()}),d.onerror=function(){e._destroyed||(e._resetTimers(!0),e.emit("error",new Error("XHR error")))};try{d.send(o)}catch(h){return void i.nextTick((function(){e.emit("error",h)}))}}}},h.prototype._onXHRProgress=function(){var e=this;e._resetTimers(!1),p(e._xhr)&&!e._destroyed&&(e._response||e._connect(),e._response._onXHRProgress(e._resetTimers.bind(e)))},h.prototype._connect=function(){var e=this;e._destroyed||(e._response=new c(e._xhr,e._fetchResponse,e._mode,e._resetTimers.bind(e)),e._response.on("error",(function(t){e.emit("error",t)})),e.emit("response",e._response))},h.prototype._write=function(e,t,n){var r=this;r._body.push(e),n()},h.prototype._resetTimers=function(e){var t=this;n.g.clearTimeout(t._socketTimer),t._socketTimer=null,e?(n.g.clearTimeout(t._fetchTimer),t._fetchTimer=null):t._socketTimeout&&(t._socketTimer=n.g.setTimeout((function(){t.emit("timeout")}),t._socketTimeout))},h.prototype.abort=h.prototype.destroy=function(e){var t=this;t._destroyed=!0,t._resetTimers(!0),t._response&&(t._response._destroyed=!0),t._xhr?t._xhr.abort():t._fetchAbortController&&t._fetchAbortController.abort(),e&&t.emit("error",e)},h.prototype.end=function(e,t,n){var r=this;"function"===typeof e&&(n=e,e=void 0),l.Writable.prototype.end.call(r,e,t,n)},h.prototype.setTimeout=function(e,t){var n=this;t&&n.once("timeout",t),n._socketTimeout=e,n._resetTimers(!1)},h.prototype.flushHeaders=function(){},h.prototype.setNoDelay=function(){},h.prototype.setSocketKeepAlive=function(){};var f=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]},36846:function(e,t,n){var r=n(39907),i=n(33486)["hp"],a=n(42271),o=n(35615),s=n(34156),l=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},c=t.IncomingMessage=function(e,t,n,o){var l=this;if(s.Readable.call(l),l._mode=n,l.headers={},l.rawHeaders=[],l.trailers={},l.rawTrailers=[],l.on("end",(function(){r.nextTick((function(){l.emit("close")}))})),"fetch"===n){if(l._fetchResponse=t,l.url=t.url,l.statusCode=t.status,l.statusMessage=t.statusText,t.headers.forEach((function(e,t){l.headers[t.toLowerCase()]=e,l.rawHeaders.push(t,e)})),a.writableStream){var c=new WritableStream({write:function(e){return o(!1),new Promise((function(t,n){l._destroyed?n():l.push(i.from(e))?t():l._resumeFetch=t}))},close:function(){o(!0),l._destroyed||l.push(null)},abort:function(e){o(!0),l._destroyed||l.emit("error",e)}});try{return void t.body.pipeTo(c).catch((function(e){o(!0),l._destroyed||l.emit("error",e)}))}catch(m){}}var u=t.body.getReader();function d(){u.read().then((function(e){l._destroyed||(o(e.done),e.done?l.push(null):(l.push(i.from(e.value)),d()))})).catch((function(e){o(!0),l._destroyed||l.emit("error",e)}))}d()}else{l._xhr=e,l._pos=0,l.url=e.responseURL,l.statusCode=e.status,l.statusMessage=e.statusText;var h=e.getAllResponseHeaders().split(/\r?\n/);if(h.forEach((function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var n=t[1].toLowerCase();"set-cookie"===n?(void 0===l.headers[n]&&(l.headers[n]=[]),l.headers[n].push(t[2])):void 0!==l.headers[n]?l.headers[n]+=", "+t[2]:l.headers[n]=t[2],l.rawHeaders.push(t[1],t[2])}})),l._charset="x-user-defined",!a.overrideMimeType){var p=l.rawHeaders["mime-type"];if(p){var f=p.match(/;\s*charset=([^;])(;|$)/);f&&(l._charset=f[1].toLowerCase())}l._charset||(l._charset="utf-8")}}};o(c,s.Readable),c.prototype._read=function(){var e=this,t=e._resumeFetch;t&&(e._resumeFetch=null,t())},c.prototype._onXHRProgress=function(e){var t=this,r=t._xhr,a=null;switch(t._mode){case"text":if(a=r.responseText,a.length>t._pos){var o=a.substr(t._pos);if("x-user-defined"===t._charset){for(var s=i.alloc(o.length),c=0;c<o.length;c++)s[c]=255&o.charCodeAt(c);t.push(s)}else t.push(o,t._charset);t._pos=a.length}break;case"arraybuffer":if(r.readyState!==l.DONE||!r.response)break;a=r.response,t.push(i.from(new Uint8Array(a)));break;case"moz-chunked-arraybuffer":if(a=r.response,r.readyState!==l.LOADING||!a)break;t.push(i.from(new Uint8Array(a)));break;case"ms-stream":if(a=r.response,r.readyState!==l.LOADING)break;var u=new n.g.MSStreamReader;u.onprogress=function(){u.result.byteLength>t._pos&&(t.push(i.from(new Uint8Array(u.result.slice(t._pos)))),t._pos=u.result.byteLength)},u.onload=function(){e(!0),t.push(null)},u.readAsArrayBuffer(a);break}t._xhr.readyState===l.DONE&&"ms-stream"!==t._mode&&(e(!0),t.push(null))}},18888:function(e,t,n){"use strict";var r=n(25636).Buffer,i=r.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){if(!e)return"utf8";var t;while(1)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function o(e){var t=a(e);if("string"!==typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}function s(e){var t;switch(this.encoding=o(e),this.encoding){case"utf16le":this.text=f,this.end=m,t=4;break;case"utf8":this.fillLast=d,t=4;break;case"base64":this.text=g,this.end=v,t=3;break;default:return this.write=b,void(this.end=y)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function l(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function c(e,t,n){var r=t.length-1;if(r<n)return 0;var i=l(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||-2===i?0:(i=l(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||-2===i?0:(i=l(t[r]),i>=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0))}function u(e,t,n){if(128!==(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"�"}}function d(e){var t=this.lastTotal-this.lastNeed,n=u(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function h(e,t){var n=c(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function f(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function m(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function g(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function v(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function b(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}t.I=s,s.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),void 0===t)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},s.prototype.end=p,s.prototype.text=h,s.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},90703:function(e,t,n){"use strict";n.d(t,{v:function(){return r}});const r="ResourceList"},11518:function(e,t,n){"use strict";n.d(t,{T:function(){return i},r:function(){return r}});const r=["token-hashing","multi-cluster-management"],i="harvester"},2841:function(e,t,n){"use strict";n.d(t,{$E:function(){return d},B9:function(){return T},Do:function(){return E},G5:function(){return y},Hs:function(){return A},MW:function(){return u},O3:function(){return w},Pl:function(){return v},Rw:function(){return m},S5:function(){return I},Ub:function(){return S},VT:function(){return L},W8:function(){return x},XH:function(){return P},Z_:function(){return N},_n:function(){return g},bs:function(){return h},d6:function(){return f},eG:function(){return s},ht:function(){return o},ks:function(){return r},lq:function(){return O},nN:function(){return p},ol:function(){return c},pS:function(){return b},qt:function(){return k},rW:function(){return B},rk:function(){return D},tC:function(){return i},uf:function(){return M},vi:function(){return _},xO:function(){return C},yA:function(){return a},yl:function(){return l}});const r="field.cattle.io/name",i="field.cattle.io/description",a="kubernetes.io/hostname",o="cattle.io/timestamp",s="management.cattle.io/system-namespace",l="field.cattle.io/projectId",c="authz.management.cattle.io/default-project",u="authz.management.cattle.io/system-project",d="field.cattle.io/containerDefaultResourceLimit",h="field.cattle.io/publicEndpoints",p="field.cattle.io/targetWorkloadIds",f="management.cattle.io/ui-managed",m="field.cattle.io/creatorId",g="field.cattle.io/resourceQuota",v="kubernetes.io/arch",b={SERVICE_ACCOUNT_UID:"kubernetes.io/service-account.uid",SERVICE_ACCOUNT_NAME:"kubernetes.io/service-account.name",MANAGED_BY:"app.kubernetes.io/managed-by",MANAGED_NAME:"app.kubernetes.io/name",INSTANCE:"app.kubernetes.io/instance"},y={ISSUER:"cert-manager.io/issuer-name"},w={DEFAULT_STORAGE_CLASS:"storageclass.kubernetes.io/is-default-class",BETA_DEFAULT_STORAGE_CLASS:"storageclass.beta.kubernetes.io/is-default-class"},E={NODE_NAME:"management.cattle.io/nodename"},_={CONTROL_PLANE_OLD:"node-role.kubernetes.io/controlplane",CONTROL_PLANE:"node-role.kubernetes.io/control-plane",WORKER:"node-role.kubernetes.io/worker",ETCD:"node-role.kubernetes.io/etcd"},S={CONTROL_PLANE:"rke.cattle.io/control-plane-role",WORKER:"rke.cattle.io/worker-role",ETCD:"rke.cattle.io/etcd-role"},k={DEPLOYMENT_NAME:"cluster.x-k8s.io/deployment-name",CREDENTIAL_DRIVER:"provisioning.cattle.io/driver",CLUSTER_NAMESPACE:"cluster.x-k8s.io/cluster-namespace",FORCE_MACHINE_REMOVE:"provisioning.cattle.io/force-machine-remove",MACHINE_NAME:"cluster.x-k8s.io/machine",DELETE_MACHINE:"cluster.x-k8s.io/delete-machine",PROVIDER:"provider.cattle.io",SECRET_AUTH:"v2prov-secret-authorized-for-cluster",SECRET_WILL_DELETE:"v2prov-authorized-secret-deletes-on-cluster-removal",UI_CUSTOM_PROVIDER:"ui.rancher/provider"},x={CERTIFIED:"catalog.cattle.io/certified",_RANCHER:"rancher",_PARTNER:"partner",_OTHER:"other",EXPERIMENTAL:"catalog.cattle.io/experimental",NAMESPACE:"catalog.cattle.io/namespace",RELEASE_NAME:"catalog.cattle.io/release-name",FEATURED:"catalog.cattle.io/featured",REQUIRES_GVK:"catalog.cattle.io/requires-gvr",PROVIDES:"catalog.cattle.io/provides-gvr",AUTO_INSTALL_GVK:"catalog.cattle.io/auto-install-gvr",AUTO_INSTALL:"catalog.cattle.io/auto-install",HIDDEN:"catalog.cattle.io/hidden",REQUESTS_CPU:"catalog.cattle.io/requests-cpu",REQUESTS_MEMORY:"catalog.cattle.io/requests-memory",SCOPE:"catalog.cattle.io/scope",_MANAGEMENT:"management",_DOWNSTREAM:"downstream",TYPE:"catalog.cattle.io/type",_APP:"app",_CLUSTER_TPL:"cluster-template",_CLUSTER_TOOL:"cluster-tool",COMPONENT:"catalog.cattle.io/ui-component",SOURCE_REPO_TYPE:"catalog.cattle.io/ui-source-repo-type",SOURCE_REPO_NAME:"catalog.cattle.io/ui-source-repo",COLOR:"catalog.cattle.io/ui-color",DISPLAY_NAME:"catalog.cattle.io/display-name",CLUSTER_REPO_NAME:"catalog.cattle.io/cluster-repo-name",SUPPORTED_OS:"catalog.cattle.io/os",PERMITTED_OS:"catalog.cattle.io/permits-os",DEPLOYED_OS:"catalog.cattle.io/deploys-on-os",MIGRATED:"apps.cattle.io/migrated",MANAGED:"catalog.cattle.io/managed",HIDDEN_REPO:"clusterrepo.cattle.io/hidden"},A={CLUSTER_DISPLAY_NAME:"management.cattle.io/cluster-display-name",CLUSTER_NAME:"management.cattle.io/cluster-name",BUNDLE_ID:"fleet.cattle.io/bundle-id",BUNDLE_NAME:"fleet.cattle.io/bundle-name",BUNDLE_NAMESPACE:"fleet.cattle.io/bundle-namespace",MANAGED:"fleet.cattle.io/managed",CLUSTER_NAMESPACE:"fleet.cattle.io/cluster-namespace",CLUSTER:"fleet.cattle.io/cluster"},N={EXTERNAL_IP:"rke.cattle.io/external-ip"},C={CLUSTER_NAME:"rke.cattle.io/cluster-name"},T={AUTO_INJECTION:"istio-injection"},R=/cattle\.io\//,O=[R],I=[R],L=[/^kubectl\.kubernetes\.io\/.*$/,/^objectset\.rio\.cattle\.io\/.*$/],D={CLOUD_INIT:"harvesterhci.io/cloud-init-template",CLOUD_PROVIDER_IPAM:"cloudprovider.harvesterhci.io/ipam",NETWORK_ROUTE:"network.harvesterhci.io/route",IMAGE_NAME:"harvesterhci.io/image-name",NETWORK_TYPE:"network.harvesterhci.io/type",CLUSTER_NETWORK:"network.harvesterhci.io/clusternetwork",PRIMARY_SERVICE:"cloudprovider.harvesterhci.io/primary-service"},P={TEXT:"ui.rancher/badge-text",COLOR:"ui.rancher/badge-color",ICON_TEXT:"ui.rancher/badge-icon-text"},M=["io.cattle.lifecycle.","beta.kubernetes.io","failure-domain.beta.kubernetes.io","node-role.kubernetes.io","kubernetes.io","cattle.io","authz.management.cattle.io","rke.cattle.io","field.cattle.io","workload.user.cattle.io","k3s.io","node.kubernetes.io","egress.rke2.io"],B={EXPIRATION:"rancher.io/expiration-timestamp"}},57699:function(e,t,n){"use strict";n.d(t,{Xc:function(){return o},ce:function(){return d},ke:function(){return c},l3:function(){return i},nl:function(){return a},qI:function(){return u},r1:function(){return l},tm:function(){return s}});var r=n(68774);const i={...r.o_,defaultSort:!0,value:"metadata.name",sort:["metadata.name"],search:"metadata.name"},a={name:"steve-id",labelKey:"tableHeaders.id",value:"id",sort:["id"],search:"id"},o={...r.c4,sort:["metadata.state.name"],search:"metadata.state.name"},s={...r.K,value:"metadata.creationTimestamp",sort:"metadata.creationTimestamp",search:!1},l={...r.CU,value:"metadata.namespace",sort:"metadata.namespace",search:"metadata.namespace"},c=(r.qv,{...r.g6,value:"metadata.fields.0",sort:"metadata.fields.0"}),u={...r.cP,value:"_type",sort:"_type"},d=[{tooltipKey:"resourceTable.groupBy.none",icon:"icon-list-flat",value:"none"},{icon:"icon-folder",value:"metadata.namespace",field:"metadata.namespace",hideColumn:r.CU.name,tooltipKey:"resourceTable.groupBy.namespace",groupLabelKey:"groupByLabel"}]},49845:function(e,t,n){"use strict";n.d(t,{M0:function(){return a},f7:function(){return d},xc:function(){return u}});var r=n(9262),i=n(83297);const a=`https://ranchermanager.docs.rancher.com/v${i.ji}`,o="Rancher",s={suse:"Rancher Prime",csp:"SUSE Rancher"};let l=o,c=null;function u(e){l=e,h()}function d(){return l===r.HG.PL_RANCHER_VALUE?c&&s[c]?s[c]:o:l}function h(){const e=d();if("Harvester"===e){const e=n(57074);document.title="Harvester";const t=document.createElement("link");t.hid="icon",t.rel="icon",t.type="image/x-icon",t.hrefv=e;const r=document.getElementsByTagName("head")[0];r.appendChild(t)}}},10844:function(e,t,n){"use strict";n.d(t,{o_:function(){return r}});n(86565),n(35664),n(68774);const r="cis"},27278:function(e,t,n){"use strict";n.d(t,{o:function(){return r}});n(35664),n(68774),n(86565),n(57699),n(39669),n(95265),n(46392),n(2841);const r="explorer"},47034:function(e,t,n){"use strict";n.d(t,{o:function(){return r}});n(68774),n(35664),n(95265),n(86565),n(10213);const r="manager"},14220:function(e,t,n){"use strict";n.d(t,{$y:function(){return w},AS:function(){return f},CU:function(){return N},Eo:function(){return _},G5:function(){return c},G8:function(){return r},HC:function(){return p},L_:function(){return y},NO:function(){return S},Qp:function(){return i},RX:function(){return k},Rm:function(){return C},Sd:function(){return R},UA:function(){return E},YQ:function(){return s},Yq:function(){return b},_N:function(){return I},au:function(){return g},dT:function(){return d},dV:function(){return T},fS:function(){return m},g:function(){return o},iJ:function(){return O},nW:function(){return l},o_:function(){return A},wC:function(){return u},wZ:function(){return h},xv:function(){return x},xz:function(){return a},zD:function(){return v}});const r="local",i=null,a=void 0,o="mode",s="create",l="view",c="edit",u="list",d="clone",h="stage",p="import",f="as",m="detail",g="config",v="yaml",b="graph",y="focus",w="preview",E="type",_="repo-type",S="repo",k="chart",x="version",A="name",N="namespace",C="tools",T="hide-side-nav",R="cloud",O="projectId",I="flatView"},71025:function(e,t){"use strict";t.A=["cattle-dashboards","cattle-global-data","cattle-system","gatekeeper-system","ingress-nginx","kube-node-lease","kube-public","kube-system","linkerd","security-scan","tekton-pipelines","cis-operator-system","istio-system","longhorn-system"]},68774:function(e,t,n){"use strict";n.d(t,{BD:function(){return E},CU:function(){return g},K:function(){return b},P4:function(){return l},Qg:function(){return O},Si:function(){return y},UA:function(){return S},X:function(){return d},X0:function(){return c},Yf:function(){return p},ZE:function(){return _},ZU:function(){return m},_:function(){return R},aQ:function(){return h},c4:function(){return o},cP:function(){return k},g6:function(){return A},hX:function(){return f},nv:function(){return v},o_:function(){return s},qv:function(){return C},rh:function(){return N},w5:function(){return T},wS:function(){return u},z7:function(){return L}});var r=n(2841),i=n(35664),a=n(39669);const o={name:"state",labelKey:"tableHeaders.state",sort:["stateSort","nameSort"],value:"stateDisplay",getValue:e=>e.stateDisplay,width:100,default:"unknown",formatter:"BadgeStateFormatter"},s={name:"name",labelKey:"tableHeaders.name",value:"nameDisplay",getValue:e=>e.nameDisplay,sort:["nameSort"],formatter:"LinkDetail",canBeVariable:!0},l={name:"logging-output-providers",labelKey:"tableHeaders.loggingOutputProviders",value:"providersDisplay",sort:["providersSortable"],formatter:"List"},c={name:"name",labelKey:"tableHeaders.simpleName",value:"name",sort:["name"],width:200,canBeVariable:!0},u={name:"storage_class_provisioner",labelKey:"tableHeaders.storage_class_provisioner",value:"provisionerListDisplay",sort:["provisioner"]},d={name:"storage_class_default",labelKey:"tableHeaders.default",value:"isDefault",sort:["isDefault"],formatter:"Checked"},h={name:"localOutputRefs",labelKey:"tableHeaders.output",value:"outputs",sort:["outputsSortable"],formatter:"ListLink",formatterOpts:{options:{internal:!0}}},p={name:"providers",labelKey:"tableHeaders.providers",value:"providersDisplay",sort:"providersSortable",formatter:"List"},f={...h,name:"globalOutputRefs",value:"clusterOutputs",sort:["clusterOutputsSortable"],labelKey:"tableHeaders.clusterOutput"},m={name:"name",labelKey:"tableHeaders.nameUnlinked",value:"nameDisplay",sort:["nameSort"],canBeVariable:!0},g={name:"namespace",labelKey:"tableHeaders.namespace",value:"namespace",getValue:e=>e.namespace,sort:"namespace",dashIfEmpty:!0},v=(i.NW,{name:"principal",labelKey:"tableHeaders.name",sort:"principal.loginName",value:"principalId",formatter:"Principal"}),b={name:"age",labelKey:"tableHeaders.age",value:"creationTimestamp",getValue:e=>e.creationTimestamp,sort:"creationTimestamp:desc",search:!1,formatter:"LiveDate",width:100,align:"left"},y={name:"NamespaceSnapshotQuota",labelKey:"harvester.tableHeaders.totalSnapshotQuota",value:"snapshotSizeQuota",sort:"snapshotSizeQuota",align:"center",formatter:"Si",formatterOpts:{opts:{increment:1024,addSuffix:!0,suffix:"i"},needParseSi:!1}},w={name:"pod_images",labelKey:"tableHeaders.podImages",value:"imageNames",getValue:e=>e.imageNames,sort:"imageNames",formatter:"PodImages"},E={name:"address",labelKey:"tableHeaders.address",value:"address",sort:["address"]},_={name:"type",labelKey:"tableHeaders.type",value:"typeDisplay",getValue:e=>e.typeDisplay,sort:["typeDisplay"],width:100},S={name:"subType",labelKey:"tableHeaders.subType",value:"subTypeDisplay",sort:["subTypeDisplay"],width:120},k={name:"type",labelKey:"tableHeaders.type",value:"eventType",sort:"eventType"},x={name:"lastSeen",labelKey:"tableHeaders.lastSeen",value:"lastSeen",sort:"lastTimestamp:desc",tooltip:"tableHeaders.lastSeenTooltip"},A={...x,defaultSort:!0},N={name:"reason",labelKey:"tableHeaders.reason",value:"reason",sort:["reason"]},C={name:"object",labelKey:"tableHeaders.object",value:"involvedObject",sort:["involvedObject.kind","involvedObject.name"],canBeVariable:!0,formatter:"InvolvedObjectLink"},T={name:"message",labelKey:"tableHeaders.message",value:"message",sort:["message"]},R={name:"key",labelKey:"tableHeaders.key",value:"key",sort:["key"]},O={name:"value",labelKey:"tableHeaders.value",value:"value",sort:["value"]},I=(a.c.LAPTOP,r.bs,a.c.DESKTOP,{name:"scope",value:"clusterName",labelKey:"tableHeaders.scope",dashIfEmpty:!0,align:"left",sort:["scope"],width:100}),L={name:"role",value:"roleDisplay",labelKey:"tableHeaders.role"}},35664:function(e,t,n){"use strict";n.d(t,{$v:function(){return I},B9:function(){return H},BN:function(){return Y},CU:function(){return d},FV:function(){return Q},GQ:function(){return ee},Hr:function(){return l},Hs:function(){return K},K5:function(){return a},Mc:function(){return j},NW:function(){return h},PV:function(){return f},Rp:function(){return P},SB:function(){return $},Sg:function(){return y},Sm:function(){return p},UI:function(){return q},UP:function(){return k},W8:function(){return L},XG:function(){return _},YH:function(){return m},YV:function(){return v},ZV:function(){return te},Zd:function(){return F},Zq:function(){return E},_n:function(){return z},bB:function(){return b},cG:function(){return X},cm:function(){return G},d_:function(){return Z},eo:function(){return J},fJ:function(){return w},fj:function(){return D},i2:function(){return o},k$:function(){return i},kf:function(){return u},lI:function(){return B},lk:function(){return x},ll:function(){return s},m3:function(){return S},m4:function(){return r},oU:function(){return A},oe:function(){return M},qt:function(){return V},rW:function(){return N},rk:function(){return W},wT:function(){return c},xO:function(){return U},yx:function(){return g}});const r={PREFERENCE:"userpreference",SCHEMA_DEFINITION:"schemaDefinition"},i={APP:"app",AUTH_CONFIG:"authconfig",ETCD_BACKUP:"etcdbackup",CLUSTER:"cluster",CLUSTER_TOKEN:"clusterregistrationtoken",CLUSTER_ROLE_TEMPLATE_BINDING:"clusterroletemplatebinding",CLOUD_CREDENTIAL:"cloudcredential",FLEET_WORKSPACES:"fleetworkspace",GLOBAL_ROLE:"globalRole",GLOBAL_ROLE_BINDING:"globalRoleBinding",NODE_POOL:"nodePool",NODE:"node",PRINCIPAL:"principal",PROJECT:"project",PROJECT_ROLE_TEMPLATE_BINDING:"projectroletemplatebinding",SETTING:"setting",SPOOFED:{GROUP_PRINCIPAL:"group.principal"},ROLE_TEMPLATE:"roleTemplate",TOKEN:"token",USER:"user",KONTAINER_DRIVER:"kontainerDriver",NODE_DRIVER:"nodeDriver"},a="configmap",o="count",s="event",l="endpoints",c="autoscaling.horizontalpodautoscaler",u="networking.k8s.io.ingress",d="namespace",h="node",p="pod",f="persistentvolume",m="persistentvolumeclaim",g="schema",v="service",b="secret",y="serviceaccount",w="storage.k8s.io.storageclass",E="storage.k8s.io.csidriver",_="k8s.cni.cncf.io.networkattachmentdefinition",S="user",k="group",x={ROLE:"rbac.authorization.k8s.io.role",CLUSTER_ROLE:"rbac.authorization.k8s.io.clusterrole",ROLE_BINDING:"rbac.authorization.k8s.io.rolebinding",CLUSTER_ROLE_BINDING:"rbac.authorization.k8s.io.clusterrolebinding"},A={DEPLOYMENT:"apps.deployment",CRON_JOB:"batch.cronjob",DAEMON_SET:"apps.daemonset",JOB:"batch.job",STATEFUL_SET:"apps.statefulset",REPLICA_SET:"apps.replicaset",REPLICATION_CONTROLLER:"replicationcontroller"},N={[A.DEPLOYMENT]:"ReplicaSet",[A.CRON_JOB]:"CronJob",[A.DAEMON_SET]:"DaemonSet",[A.JOB]:"Job",[A.STATEFUL_SET]:"StatefulSet",[A.REPLICA_SET]:"ReplicaSet",[A.REPLICATION_CONTROLLER]:"ReplicationController"},{DAEMON_SET:C,CRON_JOB:T,JOB:R,...O}=(A.DAEMON_SET,A.REPLICA_SET,A.STATEFUL_SET,A.DEPLOYMENT,A),I={NODE:"metrics.k8s.io.nodemetrics",POD:"metrics.k8s.io.podmetrics"},L={CLUSTER_REPO:"catalog.cattle.io.clusterrepo",OPERATION:"catalog.cattle.io.operation",APP:"catalog.cattle.io.app",REPO:"catalog.cattle.io.repo"},D={PROJECTHELMCHART:"helm.cattle.io.projecthelmchart"},P={ALERTMANAGER:"monitoring.coreos.com.alertmanager",ALERTMANAGERCONFIG:"monitoring.coreos.com.alertmanagerconfig",PODMONITOR:"monitoring.coreos.com.podmonitor",PROMETHEUS:"monitoring.coreos.com.prometheus",PROMETHEUSRULE:"monitoring.coreos.com.prometheusrule",SERVICEMONITOR:"monitoring.coreos.com.servicemonitor",THANOSRULER:"monitoring.coreos.com.thanosruler",SPOOFED:{RECEIVER:"monitoring.coreos.com.receiver",RECEIVER_SPEC:"monitoring.coreos.com.receiver.spec",RECEIVER_EMAIL:"monitoring.coreos.com.receiver.email",RECEIVER_SLACK:"monitoring.coreos.com.receiver.slack",RECEIVER_WEBHOOK:"monitoring.coreos.com.receiver.webhook",RECEIVER_PAGERDUTY:"monitoring.coreos.com.receiver.pagerduty",RECEIVER_OPSGENIE:"monitoring.coreos.com.receiver.opsgenie",RECEIVER_HTTP_CONFIG:"monitoring.coreos.com.receiver.httpconfig",RESPONDER:"monitoring.coreos.com.receiver.responder",ROUTE:"monitoring.coreos.com.route",ROUTE_SPEC:"monitoring.coreos.com.route.spec"}},M={ENGINES:"longhorn.io.engine",ENGINE_IMAGES:"longhorn.io.engineimage",NODES:"longhorn.io.node",REPLICAS:"longhorn.io.replica",SETTINGS:"longhorn.io.setting",VOLUMES:"longhorn.io.volume"},B="driver.longhorn.io",F="LonghornV1",$="LonghornV2",U="rke.cattle.io.etcdsnapshot",j={AUTH_CONFIG:"management.cattle.io.authconfig",CATALOG_TEMPLATE:"management.cattle.io.catalogtemplate",CLUSTER:"management.cattle.io.cluster",CLUSTER_ROLE_TEMPLATE_BINDING:"management.cattle.io.clusterroletemplatebinding",FEATURE:"management.cattle.io.feature",KONTAINER_DRIVER:"management.cattle.io.kontainerdriver",MULTI_CLUSTER_APP:"management.cattle.io.multiclusterapp",NODE:"management.cattle.io.node",NODE_DRIVER:"management.cattle.io.nodedriver",NODE_POOL:"management.cattle.io.nodepool",NODE_TEMPLATE:"management.cattle.io.nodetemplate",PROJECT:"management.cattle.io.project",PROJECT_ROLE_TEMPLATE_BINDING:"management.cattle.io.projectroletemplatebinding",ROLE_TEMPLATE:"management.cattle.io.roletemplate",SETTING:"management.cattle.io.setting",USER:"management.cattle.io.user",TOKEN:"management.cattle.io.token",GLOBAL_ROLE:"management.cattle.io.globalrole",GLOBAL_ROLE_BINDING:"management.cattle.io.globalrolebinding",PSA:"management.cattle.io.podsecurityadmissionconfigurationtemplate",MANAGED_CHART:"management.cattle.io.managedchart",USER_NOTIFICATION:"management.cattle.io.rancherusernotification",GLOBAL_DNS_PROVIDER:"management.cattle.io.globaldnsprovider",RKE_TEMPLATE:"management.cattle.io.clustertemplate",RKE_TEMPLATE_REVISION:"management.cattle.io.clustertemplaterevision",CLUSTER_PROXY_CONFIG:"management.cattle.io.clusterproxyconfig"},V={CAPI_CLUSTER:"cluster.x-k8s.io.cluster",MACHINE_DEPLOYMENT:"cluster.x-k8s.io.machinedeployment",MACHINE_SET:"cluster.x-k8s.io.machineset",MACHINE:"cluster.x-k8s.io.machine",RANCHER_CLUSTER:"provisioning.cattle.io.cluster",MACHINE_CONFIG_GROUP:"rke-machine-config.cattle.io"},K={BUNDLE:"fleet.cattle.io.bundle",BUNDLE_DEPLOYMENT:"fleet.cattle.io.bundledeployment",CLUSTER:"fleet.cattle.io.cluster",CLUSTER_GROUP:"fleet.cattle.io.clustergroup",DASHBOARD:"fleet.cattle.io.dashboard",GIT_REPO:"fleet.cattle.io.gitrepo",WORKSPACE:"management.cattle.io.fleetworkspace",TOKEN:"fleet.cattle.io.clusterregistrationtoken",BUNDLE_NAMESPACE_MAPPING:"fleet.cattle.io.bundlenamespacemapping",GIT_REPO_RESTRICTION:"fleet.cattle.io.gitreporestriction"},H={VIRTUAL_SERVICE:"networking.istio.io.virtualservice",DESTINATION_RULE:"networking.istio.io.destinationrule",GATEWAY:"networking.istio.io.gateway"},G={CLUSTER_FLOW:"logging.banzaicloud.io.clusterflow",CLUSTER_OUTPUT:"logging.banzaicloud.io.clusteroutput",FLOW:"logging.banzaicloud.io.flow",OUTPUT:"logging.banzaicloud.io.output",SPOOFED:{FILTERS:"logging.banzaicloud.io.output.filters",FILTER:"logging.banzaicloud.io.output.filter",CONCAT:"logging.banzaicloud.io.output.filters.concat",DEDOT:"logging.banzaicloud.io.output.filters.dedot",DETECTEXCEPTIONS:"logging.banzaicloud.io.output.filters.detectExceptions",GEOIP:"logging.banzaicloud.io.output.filters.geoip",GREP:"logging.banzaicloud.io.output.filters.grep",PARSER:"logging.banzaicloud.io.output.filters.parser",PROMETHEUS:"logging.banzaicloud.io.output.filters.prometheus",RECORD_MODIFIER:"logging.banzaicloud.io.output.filters.record_modifier",RECORD_TRANSFORMER:"logging.banzaicloud.io.output.filters.record_transformer",STDOUT:"logging.banzaicloud.io.output.filters.stdout",SUMOLOGIC:"logging.banzaicloud.io.output.filters.sumologic",TAG_NORMALISER:"logging.banzaicloud.io.output.filters.tag_normaliser",THROTTLE:"logging.banzaicloud.io.output.filters.throttle",RECORD:"logging.banzaicloud.io.output.filters.record",REGEXPSECTION:"logging.banzaicloud.io.output.filters.regexpsection",EXCLUDESECTION:"logging.banzaicloud.io.output.filters.excludesection",ORSECTION:"logging.banzaicloud.io.output.filters.orsection",ANDSECTION:"logging.banzaicloud.io.output.filters.andsection",PARSESECTION:"logging.banzaicloud.io.output.filters.parsesection",METRICSECTION:"logging.banzaicloud.io.output.filters.metricsection",REPLACE:"logging.banzaicloud.io.output.filters.replace",SINGLEPARSESECTION:"logging.banzaicloud.io.output.filters.replace.singleparsesection"}},z={CLUSTER_SCAN:"cis.cattle.io.clusterscan",CLUSTER_SCAN_PROFILE:"cis.cattle.io.clusterscanprofile",BENCHMARK:"cis.cattle.io.clusterscanbenchmark",REPORT:"cis.cattle.io.clusterscanreport"},q={NAV_LINK:"ui.cattle.io.navlink"},X={CLUSTER_MEMBERS:"cluster-members",PROJECT_NAMESPACES:"projects-namespaces",NAMESPACES:"namespaces",JWT_AUTHENTICATION:"jwt.authentication"},W={CLUSTER:"harvesterhci.io.management.cluster",DASHBOARD:"harvesterhci.io.dashboard",IMAGE:"harvesterhci.io.virtualmachineimage",VGPU_DEVICE:"devices.harvesterhci.io.vgpudevice",SETTING:"harvesterhci.io.setting",RESOURCE_QUOTA:"harvesterhci.io.resourcequota",HARVESTER_CONFIG:"rke-machine-config.cattle.io.harvesterconfig"},Y="harvester",Q={HOSTNAME:"Hostname",INTERNAL_IP:"InternalIP",EXTERNAL_IP:"ExternalIP"},J="fleet-default",Z="local",ee="Deprecated",te="Experimental"},83297:function(e,t,n){"use strict";n.d(t,{f$:function(){return i},ji:function(){return a}});let r={Version:"",RancherPrime:"false",GitCommit:""};function i(){return"true"===r.RancherPrime?.toLowerCase()}const a="2.10"},8135:function(e,t,n){"use strict";n.d(t,{Fm:function(){return s},Mz:function(){return l}});var r=n(68851),i=n(74302),a=n(4364);let o=1;const s="_beforeSaveHooks",l="_afterSaveHooks";t.Ay={methods:{registerBeforeHook(e,t,n=99,r){this._registerHook(s,e,t,n,r)},unregisterBeforeSaveHook(e){this[s]=this[s].filter((t=>t.name!==e))},registerAfterHook(e,t,n=99,r){this._registerHook(l,e,t,n,r)},async applyHooks(e,...t){if(!e)throw new Error("Must specify key");const n=(0,i.Ul)(this[e]||[],["priority","name"]),r={};for(const i of n)a.debug("Applying hook",i.name),r[i.name]=await i.fn.apply(i.fnContext||this,t);return r},_registerHook(e,t,n,i,a){if(!e)throw new Error("Must specify key");n||(n=`hook_${o}`,o++),i||(i=99);let s=this[e];s||(s=[],this[e]=s);let l=(0,r.jq)(s,"name",n);l?(l.priority=i,l.fn=t,l.fnContext=a):(l={name:n,priority:i,fn:t,fnContext:a},s.push(l))}}}},55277:function(e,t){"use strict";t.A={props:{pref:{type:String,default:null},prefKey:{type:String,default:null}},computed:{shown(){let e=!0;if(this.pref){const t=this.$store.getters["prefs/get"](this.pref);e=this.prefKey?!t[this.prefKey]:!t}return e}},methods:{async hide(){if(this.pref){let e=this.$store.getters["prefs/get"](this.pref);this.prefKey&&((!0===e||!1===e||e.length>0)&&(e={}),e[this.prefKey]=!0),await this.$store.dispatch("prefs/set",{key:this.pref,value:e})}}}}},65375:function(e,t,n){"use strict";var r=n(14220),i=n(91462),a=n(99726),o=n(8135),s=n(68851),l=n(35664),c=n(79401),u=n(4364);t.A={name:"CreateEditView",mixins:[o.Ay],emits:["done"],data(){return{errors:[]}},computed:{isCreate(){return this.mode===r.YQ},isEdit(){return this.mode===r.G5},isView(){return this.mode===r.nW},schema(){const e=this.storeOverride||this.$store.getters["currentStore"](this.value.type);return this.$store.getters[`${e}/schemaFor`](this.value.type)},isNamespaced(){return this.schema?.attributes?.namespaced||!1},labels:{get(){return this.value?.labels},set(e){this.value.setLabels(e)}},annotations:{get(){return this.value?.annotations},set(e){this.value.setAnnotations(e)}},doneRoute(){if(this.value?.doneRoute)return this.value.doneRoute;let e=this.$route.name;return e?.endsWith("-id")?e=e.replace(/(-namespace)?-id$/,""):e?.endsWith("-create")&&(e=e.replace(/-create$/,"")),e},doneParams(){if(this.value?.doneParams)return this.value.doneParams;const e={...this.$route.params};return delete e.namespace,delete e.id,e}},methods:{done(){if(!this.doneEvent)return this.doneLocationOverride?this.$router.replace(this.doneLocationOverride):void(this.doneRoute&&this.$router.replace({name:this.doneRoute,params:this.doneParams||{resource:this.value.type}}));this.$emit("done")},async conflict(){return await(0,c.Rq)(this.initialValue.toJSON(),this.value,this.liveValue,this.$store.getters,this.$store,this.storeOverride||this.$store.getters["currentStore"](this.value.type))},async save(e,t,n=0){this.errors&&(0,s.IU)(this.errors);try{if(await this.applyHooks(o.Fm,this.value),this.value?.metadata?.labels&&0===Object.keys(this.value.metadata.labels||{}).length&&delete this.value.metadata.labels,this.value?.metadata?.annotations&&0===Object.keys(this.value.metadata.annotations||{}).length&&delete this.value.metadata.annotations,this.isCreate){const e=this.value?.metadata?.namespace;e&&e!==l.eo&&this.value.$dispatch("prefs/set",{key:i.Ri,value:e},{root:!0})}await this.actuallySave(t),this.$store.getters["type-map/isSpoofed"](this.value.type)&&await this.$store.dispatch("cluster/findAll",{type:this.value.type,opt:{force:!0}},{root:!0}),await this.applyHooks(o.Mz,this.value),e&&e(!0),this.done()}catch(r){if(409===r.status&&0===n&&this.isEdit){const r=await this.conflict();if(!1===r)return this.save(e,t,n+1);this.errors=r}else this.errors=(0,a.rz)(r);u.error("CreateEditView mixin failed to save: ",r),e&&e(!1)}},async actuallySave(e){if(this.isCreate){e=e||this.schema.linkFor("collection");const t=await this.value.save({url:e});t&&Object.assign(this.value,t)}else await this.value.save()},setErrors(e){this.errors=e}}}},91825:function(e,t,n){"use strict";var r=n(14220),i=n(9274),a=n(65375);t.A=(0,i.defineComponent)({...a.A,props:{mode:{type:String,default:r.G5},realMode:{type:String,default:r.G5},as:{type:String,default:r.zD},value:{type:Object,required:!0},initialValue:{type:Object,default:null},liveValue:{type:Object,default:null},doneEvent:{type:Boolean,default:!1}}})},77651:function(e,t,n){"use strict";var r=n(76978),i=n(71274);t.A={data(){return{fvFormRuleSets:[],fvReportedValidationPaths:[]}},methods:{fvGetPathRules(e){return this.fvRulesets.find((t=>t.path===e))?.rules||[]},fvGetAndReportPathRules(e){const t=this.fvGetPathRules(e);return t.length>0&&!this.fvReportedValidationPaths.includes(e)&&(this.fvReportedValidationPaths=[...this.fvReportedValidationPaths,e]),t},fvGetPathValues(e){const t=this.fvRulesets.find((t=>t.path===e));return t?(0,r.Ib)(t?.rootObject||this.value,t?.path):[]},fvGetValues(e,t,n){return n.length>1&&"object"===typeof e&&!Array.isArray(e)&&null!==e?{...e,idx:t}:e},fvGetPathErrors(e=[]){const t=e.reduce(((e,t)=>{const n=[],r=this.fvGetPathRules(t),i=this.fvGetPathValues(t).map(this.fvGetValues);return r.forEach((e=>{i.forEach((t=>{n.push(e(t))}))})),[...e,...n].filter(Boolean)}),[]);return t}},computed:{fvExtraRules(){return{}},fvRulesets(){const e=()=>{};return[...this.fvFormRuleSets.map((t=>{const n={...(0,i.A)(this.$store.getters["i18n/t"],{displayKey:t?.translationKey?this.$store.getters["i18n/t"](t.translationKey):"Value"}),...this.fvExtraRules};return{...t,rules:t.rules.map((t=>n[t]||e)),formValidationRule:!0}})),...(this?.value?.modelValidationRules||[]).map((e=>({...e,formValidationRule:!1})))]},fvUnreportedValidationErrors(){const e=this.fvRulesets.filter((e=>!!e.formValidationRule&&!this.fvReportedValidationPaths.includes(e.path))).map((e=>e.path)),t=this.fvGetPathErrors(e),n=this.value.customValidationErrors?this.value.customValidationErrors(this.value,this.fvReportedValidationPaths):[];return[...t,...n,...this.errors||[]]},fvValidationErrors(){const e=this.fvRulesets.filter((e=>!!e.formValidationRule)).map((e=>e.path)),t=this.fvGetPathErrors(e),n=this.value.customValidationErrors?this.value.customValidationErrors(this.value):[];return[...t,...n]},fvFormIsValid(){return 0===this.fvValidationErrors.length}}}},23667:function(e,t,n){"use strict";n.d(t,{A:function(){return y}});var r=n(65359),i=n(35664),a=n(9262),o=n(18110),s=n(90703),l=n(81565),c={data(){return{forceUpdateLiveAndDelayed:0}},computed:{...(0,r.L8)(["currentProduct","currentCluster","namespaceFilters"]),namespaceFilterRequired(){return this.__namespaceRequired&&!this.__validFilter},namespaceFilter(){return this.__namespaceRequired?this.__validFilter:""},__validFilter(){const e=this.namespaceFilters.length&&this.namespaceFilters.every((e=>e.startsWith(o.EF)||e.startsWith(o.xs)));return e?this.namespaceFilters:null},__namespaceRequired(){return!!l.A.isEnabled(this.$store.getters)&&this.__areResourcesNamespaced},__areResourcesNamespaced(){return"cluster"===this.currentProduct.inStore&&(this.loadResources||[]).every((e=>{const t=this.$store.getters["cluster/schemaFor"](e);return t?.attributes?.namespaced}))}},watch:{async namespaceFilter(e){e&&(this.$options.name!==s.v&&this.$fetch&&await this.$fetch(),this.forceUpdateLiveAndDelayed=(new Date).getTime())}}},u=n(91462),d=n(15092),h=n(12784),p=n.n(h),f=n(50025),m=n(82637),g={props:{namespaced:{type:Boolean,default:null},context:{type:String,default:null}},data(){return{forceUpdateLiveAndDelayed:0,pPagination:null,debouncedSetPagination:p()(this.setPagination,50),requestFilters:{filters:[],projectsOrNamespaces:[]}}},methods:{setPagination(e){e&&(this.pPagination=e)},paginationChanged(e){const t=e.filter.searchQuery?e.filter.searchFields.map((t=>new f.Js({field:t,value:e.filter.searchQuery,exact:!1}))):[],n=new f.gR({page:e.page,pageSize:e.perPage,sort:e.sort?.map((t=>({field:t,asc:!e.descending}))),projectsOrNamespaces:this.requestFilters.projectsOrNamespaces,filters:[new f.eY({fields:t}),...this.requestFilters.filters]});this.debouncedSetPagination(n)},namespaceFilterChanged(e){if(!this.canPaginate||!this.isNamespaced)return;const{projectsOrNamespaces:t,filters:n}=m.A.createParamsFromNsFilter({allNamespaces:this.$store.getters[`${this.currentProduct?.inStore}/all`](i.CU),selection:e,isAllNamespaces:this.isAllNamespaces,isLocalCluster:this.$store.getters["currentCluster"].isLocal,showDynamicRancherNamespaces:this.showDynamicRancherNamespaces,productHidesSystemNamespaces:this.productHidesSystemNamespaces});this.requestFilters.filters=n,this.requestFilters.projectsOrNamespaces=t,this.pPagination&&this.debouncedSetPagination({...this.pPagination})},paginationEqual(e,t){return!!e.page&&!!d.A.paginationEqual(e,t)}},computed:{...(0,r.L8)(["currentProduct","isAllNamespaces"]),namespaceFilters(){return this.$store.getters["namespaceFilters"]},paginationNsFilterRequired(){return this.canPaginate&&!this.__validPaginationNsFilter},__validPaginationNsFilter(){return d.A.validateNsProjectFilters(this.namespaceFilters)},isResourceList(){return!!this.hasListComponent},pagination(){if(!this.isResourceList)return this.canPaginate?this.pPagination:""},canPaginate(){if(this.isResourceList)return;if(!this.resource)return!1;const e={id:this.resource.id||this.resource,context:this.context};return this.resource&&this.$store.getters[`${this.inStore}/paginationEnabled`]?.(e)},paginationResult(){if(!this.isResourceList&&this.canPaginate)return this.havePaginated?.result},havePaginated(){if(!this.isResourceList)return this.$store.getters[`${this.inStore}/havePage`](this.resource)},productHidesSystemNamespaces(){return this.currentProduct?.hideSystemResources},showDynamicRancherNamespaces(){return this.$store.getters["prefs/get"](u.Pz)},isNamespaced(){return null!==this.namespaced?!!this.namespaced:this.schema?.attributes?.namespaced}},watch:{rows(e){this.canPaginate&&this.pagination&&!this.isResourceList&&this.pagination.page>1&&0===e.length&&this.setPagination({...this.pagination,page:this.pagination.page-1})},namespaceFilters:{immediate:!0,async handler(e,t){if(!this.canPaginate||!this.isNamespaced)return;if(this.isResourceList)return;const n=!e||0===e.length||e[0]===o.tj,r=!t||0===t.length||t[0]===o.tj;if(n&&r){const e=this.isAllNamespaces&&(!this.showDynamicRancherNamespaces||this.productHidesSystemNamespaces);if(!e)return}1===e.length&&[o.x8,o.TD].includes(e[0])||this.namespaceFilterChanged(e)}},async pagination(e,t){this.canPaginate&&(this.isResourceList||e&&this.$options.name!==s.v&&this.$fetch&&!this.paginationEqual(e,t)&&(await this.$fetch(!1),this.forceUpdateLiveAndDelayed=(new Date).getTime()))},async paginationResult(e,t){this.fetchPageSecondaryResources&&e&&e.timestamp!==t?.timestamp&&await this.fetchPageSecondaryResources({canPaginate:this.canPaginate,force:!1,page:this.rows,pagResult:this.paginationResult})}}},v=n(4364);const b=4;var y={mixins:[c,g],inheritAttrs:!1,data(){const e=this.$store.getters["management/byId"](i.Mc.SETTING,a.HG.UI_PERFORMANCE);let t={};if(e&&e.value)try{t=JSON.parse(e.value)}catch(s){v.warn("ui-performance setting contains invalid data")}else t=a.$8;const n={...this.$route.params},r=n.resource||this.schema?.id,o=this.$store.getters["currentStore"](r);return{inStore:o,perfConfig:t,init:!1,multipleResources:[],loadResources:[r],hasManualRefresh:!1,watch:!0,isTooManyItemsToAutoUpdate:!1,force:!1,incremental:!1,fetchedResourceType:[],paginating:null,isFirstLoad:!0}},beforeUnmount(){this.init&&(this.$store.dispatch("resource-fetch/clearData"),this.fetchedResourceType.forEach((e=>{this.$store.dispatch(`${e.currStore}/incrementLoadCounter`,e.type)})))},props:{localFilter:{type:Function,default:null},apiFilter:{type:Function,default:null}},computed:{...(0,r.L8)({refreshFlag:"resource-fetch/refreshFlag"}),rows(){const e=this.fetchedResourceType.find((e=>e.type===this.resource));if(e){const t=this.$store.getters[`${e.currStore}/all`](this.resource);if(!this.canPaginate)return this.localFilter?this.localFilter(t):t;if(this.havePaginated)return t}return[]},loading(){return this.canPaginate?null===this.paginating||this.paginating:!this.rows.length&&this.$fetchState.pending}},watch:{async refreshFlag(e){this.init&&e&&(await this.$fetch(),this.canPaginate&&this.fetchPageSecondaryResources&&this.fetchPageSecondaryResources({canPaginate:this.canPaginate,force:!0,page:this.rows,pagResult:this.paginationResult}))},loading(e,t){t&&!e&&(this.isFirstLoad=!1)}},methods:{$initializeFetchData(e,t=[],n){if(!this.init){const r=n||this.$store.getters["currentStore"]();this.__gatherResourceFetchData(e,t,r),this.watch||(this.force=!0),this.isTooManyItemsToAutoUpdate&&(this.hasManualRefresh=!0)}},$fetchType(e,t=[],n){const r=n||this.$store.getters["currentStore"]();this.$initializeFetchData(e,t,r),this.fetchedResourceType.find((t=>t.type===e))||this.fetchedResourceType.push({type:e,currStore:r});const i=this.$store.getters[`${r}/schemaFor`](e);if(this.canPaginate){if(!this.pagination)return;const t={hasManualRefresh:this.hasManualRefresh,pagination:{...this.pagination},force:null!==this.paginating};this.apiFilter&&(t.paginating=this.apiFilter(t.pagination)),this["paginating"]=!0;const n=this;return this.$store.dispatch(`${r}/findPage`,{type:e,opt:t}).finally((()=>n["paginating"]=!1))}let a=0;if(this.incremental){const t=this.__getCountForResources([e],this.namespaceFilter,r);a=Math.ceil(t/b)}const o={incremental:a,watch:this.watch,force:this.force,hasManualRefresh:this.hasManualRefresh};return i?.attributes?.namespaced&&(o.namespaced=this.namespaceFilter),this.$store.dispatch(`${r}/findAll`,{type:e,opt:o})},__getCountForResources(e,t,n){const r=n||this.$store.getters["currentStore"]();return e.reduce(((e,n)=>e+this.__getCountForResource(n,t,r)),0)},__getCountForResource(e,t,n){const r=this.$store.getters[`${n}/all`](i.i2)[0]?.counts[`${e}`],a=t&&r?.namespaces?r?.namespaces[t]?.count:r?.summary?.count;return a||0},__gatherResourceFetchData(e,t,n){this.init=!0;const r=this.perfConfig?.manualRefresh?.enabled,i=parseInt(this.perfConfig?.manualRefresh?.threshold||"0",10),a=this.perfConfig?.incrementalLoading?.enabled,o=parseInt(this.perfConfig?.incrementalLoading?.threshold||"0",10);this.multipleResources=t;let s=0,l=!0,c=!1,u=!1;const d=this.multipleResources.length?this.multipleResources:[e];s=this.__getCountForResources(d,this.namespaceFilter,n),r&&s>=i?(l=!1,c=!0):this.canPaginate&&(c=!0),u=a&&o>0&&s>=o,this.$store.dispatch("resource-fetch/updateIsTooManyItems",c),this.watch=l,this.isTooManyItemsToAutoUpdate=c,this.incremental=u}}}},89626:function(e,t){"use strict";t.A={data(){return{overridesMixinPreventDoubleTriggerKeysOpen:!1}},methods:{mappedKeys(e,t){const n={...e};return n[9]=e=>{t.open&&e.preventDefault()},n[27]=e=>(t.open=!1,t.search="",this.$refs.select.focus(),!1),n[13]=(e,n)=>{if(!t.open)return void(t.open=!0);let r=t.filteredOptions[t.typeAheadPointer];t.$emit("option:selecting",r),t.isOptionSelected(r)||(t.taggable&&!t.optionExists(r)&&t.$emit("option:created",r),t.multiple&&(r=t.selectedValue.concat(r)),t.updateValue(r),t.$emit("option:selected",r),t.closeOnSelect&&(this.overridesMixinPreventDoubleTriggerKeysOpen=!0,t.open=!1,t.typeAheadPointer=-1),t.clearSearchOnSelect&&(t.search=""))},n[38]=e=>(e.preventDefault(),t.open||(t.open=!0),t.typeAheadUp()),n[40]=e=>(e.preventDefault(),t.open||(t.open=!0),t.typeAheadDown()),n}}}},426:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(14220),i=n(89865);const a={KIND_SEPARATOR:"://",GROUP_SEPARATOR:":",BASE_SEPARATOR:"*",ID_SEPARATOR:":",KIND_ALL:"containers",SYSTEM_CATEGORIES:["Rancher services"],CATALOG_DEFAULT_GROUP:"library"};function o(e){const t={kind:null,group:null,base:null,id:null,name:null,version:null};if(!e)return t;const n=e.indexOf(a.KIND_SEPARATOR);if(n>=0){t.kind=e.substr(0,n);let r=e.substr(n+a.KIND_SEPARATOR.length+1);t.id=e,r=r.split("&"),r.forEach((e=>{const[n,r]=e.split("=");t[n]=r}))}let r=t.catalog;return r=r.includes("/")?r.replace("/",":"):`cattle-global-data:${r}`,t.templateId=`${r}-${t.template}`,t.templateVersionId=`${r}-${t.template}-${t.version}`,t}class s extends i.A{get appEditUrl(){return this.detailLocation}goToEdit(e={}){const t=this.appEditUrl;t.query={...t.query,[r.g]:r.G5,...e},this.currentRouter().push(t)}get currentVersion(){return o(this.externalId).version}}},54686:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{get revisionNumber(){return this.revision}}},89395:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(70775);class i extends r["default"]{async rollBack(e,t,n){const r=[{op:"replace",path:"/spec/template",value:{metadata:n.data.spec.template.metadata,spec:n.data.spec.template.spec}},{op:"replace",path:"/metadata/generation",value:n.revision}];await this.rollBackWorkload(e,t,"daemonsets",r)}}},41212:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(35664),i=n(70775);const a=["kubectl.kubernetes.io/last-applied-configuration","deployment.kubernetes.io/revision","deployment.kubernetes.io/revision-history","deployment.kubernetes.io/desired-replicas","deployment.kubernetes.io/max-replicas","deprecated.deployment.rollback.to"],o=/Replicas: (\d+)/;class s extends i["default"]{get replicaSetId(){const e=this.metadata?.relationships||[],t=e.filter((e=>"owner"===e.rel&&e.toType===r.oU.REPLICA_SET)),n=t.find((e=>{const t=e.message?.match(o),n=t?parseInt(t[1],10):0;return n>0})),i=n||t[0];return i?.toId?.replace(`${this.namespace}/`,"")}async rollBack(e,t,n){const r=[{op:"replace",path:"/spec/template",value:{metadata:{creationTimestamp:null,labels:Object.keys(n.spec.template.metadata?.labels||{}).reduce(((e,t)=>("pod-template-hash"!==t&&(e[t]=n.spec.template.metadata.labels[t]),e)),{}),annotations:Object.keys(n.spec.template.metadata?.annotations||{}).reduce(((e,t)=>(a.includes(t)||(e[t]=n.spec.template.metadata.annotations[t]),e)),{})},spec:n.spec.template.spec}},{op:"replace",path:"/metadata/annotations",value:{"deployment.kubernetes.io/revision":n.metadata.annotations["deployment.kubernetes.io/revision"]}}];await this.rollBackWorkload(e,t,"deployments",r)}}},77763:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(70775);class i extends r["default"]{get revisionNumber(){if(this.ownedByWorkload)return this.metadata.annotations["deployment.kubernetes.io/revision"]}}},86791:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(70775),i=n(35664);class a extends r["default"]{async rollBack(e,t,n){const r=[{op:"replace",path:"/spec/template",value:{metadata:n.data.spec.template.metadata,spec:n.data.spec.template.spec}},{op:"replace",path:"/metadata/generation",value:n.revision}];await this.rollBackWorkload(e,t,"statefulsets",r)}get pods(){const e=this.metadata?.relationships||[],t=e.filter((e=>e.toType===i.Sm))[0];if(t){const e=this.$getters["podsByNamespace"](this.metadata.namespace);return e.filter((e=>{if(e.metadata?.ownerReferences?.length){const t=e.metadata?.ownerReferences?.find((e=>e.kind===i.rW[i.oU.STATEFUL_SET]));if(t)return`${e.metadata.namespace}/${t.name}`===this.id}return!1}))}return[]}}},20763:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{get customValidationRules(){return[{nullable:!1,path:"metadata.name",required:!0,translationKey:"generic.name",type:"dnsLabel"}]}get details(){const{spec:e={},status:t}=this,n=[{label:e?.scaleTargetRef?.kind??this.t("hpa.tabs.workload"),content:e?.scaleTargetRef?.name},{label:this.t("hpa.workloadTab.min"),content:e?.minReplicas},{label:this.t("hpa.workloadTab.max"),content:e?.maxReplicas},{label:this.t("hpa.workloadTab.current"),content:t?.currentReplicas??0},{label:this.t("hpa.workloadTab.last"),content:t?.lastScaleTime,formatter:"LiveDate"}];return n}}},43020:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(68851),i=n(76978),a=n(35664),o=n(70775);class s extends o["default"]{get state(){return this.spec?.suspend?"suspended":super.state}get _availableActions(){const e=super._availableActions,t=this.spec?.suspend||!1,n=this.$getters["schemaFor"](a.oU.JOB),i=!!n?.collectionMethods.find((e=>["blocked-post","post"].includes(e.toLowerCase())));return(0,r.PT)(e,0,{action:"runNow",label:this.t("action.runNow"),icon:"icon icon-spinner",enabled:i,bulkable:!0}),(0,r.PT)(e,1,{action:"suspend",label:this.t("action.suspend"),icon:"icon icon-pause",enabled:!t&&this.canUpdate,bulkable:!0}),(0,r.PT)(e,2,{action:"resume",label:this.t("action.resume"),icon:"icon icon-play",enabled:t&&this.canUpdate,bulkable:!0}),e}async runNow(){const e={apiVersion:this.apiVersion,controller:!0,kind:this.kind,name:this.metadata.name,uid:this.metadata.uid},t=await this.$dispatch("create",{type:a.oU.JOB,kind:a.rW[a.oU.JOB],...(0,i.o8)(this.spec.jobTemplate)});t.metadata=t.metadata||{},t.metadata.namespace=this.metadata.namespace,t.metadata.name=`${this.metadata.name}-${Date.now()}`,t.metadata.ownerReferences=[e],await t.save(),t.goToDetail()}suspend(){this.spec.suspend=!0,this.save()}resume(){this.spec.suspend=!1,this.save()}}},66184:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(70775),i=n(34255);class a extends r["default"]{get duration(){const e=this.$getters["schemaFor"](this.type),t=this.$rootGetters["type-map/rowValueGetter"],{completionTime:n,startTime:r}=this.status,a=e&&t?t(e,"Duration")(this):null,o=a&&r?(0,i.Fp)(r,n||new Date):0;return{value:n?{staticValue:a}:{startTime:r},seconds:o}}}},65502:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p}});var r=n(14220),i=n(2841),a=n(83288),o=n(68851),s=n(35664),l=n(91462),c=n(76978),u=n(25184),d=n(97707),h=n(4364);class p extends u.A{showMasthead(e){return e===r.nW}applyDefaults(){(0,c.hZ)(this,"disableOpenApiValidation",!1),(0,c.hZ)(this,"noHooks",!1),(0,c.hZ)(this,"skipCRDs",!1),(0,c.hZ)(this,"timeout",300),(0,c.hZ)(this,"wait",!0)}get _availableActions(){const e=super._availableActions,t={action:"goToUpgrade",enabled:!0,icon:"icon icon-fw icon-edit",label:this.t("catalog.install.action.goToUpgrade")};return e.unshift(t),e}get warnDeletionMessage(){if(!1===this.upgradeAvailable){const e=this.spec?.chart?.metadata?.annotations?.[i.W8.MANAGED]||"Rancher";return this.t("catalog.delete.warning.managed",{manager:"true"===e?"Rancher":e,name:this.name})}return null}matchingChart(e){const t=this.spec?.chart;if(!t)return;const n=t.metadata?.name,r=t.metadata?.annotations?.[i.W8.SOURCE_REPO_NAME]||this.metadata?.labels?.[i.W8.CLUSTER_REPO_NAME],a=t.metadata?.annotations?.[i.W8.SOURCE_REPO_TYPE]||"cluster",o=this.$rootGetters["catalog/chart"]({chartName:n,repoName:r,preferRepoType:a,includeHidden:e});return o}get currentVersion(){return this.spec?.chart?.metadata?.version}get upgradeAvailable(){if(this.spec?.chart?.metadata?.annotations?.[i.W8.MANAGED]||this.spec?.chart?.metadata?.annotations?.[i.Hs.BUNDLE_ID])return!1;const e=this.matchingChart(!1);if(!e)return null;const t=this.$rootGetters["currentCluster"].workerOSs,n=this.$rootGetters["prefs/get"](l.kJ),r=this.spec?.chart?.metadata?.version;let o=e.versions;n||(o=e.versions.filter((e=>!(0,a.V1)(e.version)))),o=(0,d.bh)(e,t,n);const s=o?.[0],c=s?.version;return r&&c&&(0,a.UD)(r,c)<0?f(c):null}get upgradeAvailableSort(){const e=this.upgradeAvailable;return e?(0,a.Xt)(e):"~"}get currentVersionCompatible(){const e=this.$rootGetters["currentCluster"].workerOSs,t=this.matchingChart(!1),n=this.spec?.chart?.metadata?.version;if(!t)return!0;const r=t.versions.find((e=>e.version===n));if(!r)return!0;const i=(0,d.bh)(t,e,!0)||[],a=!!i.find((e=>e.version===n));return a}get stateDescription(){return this.currentVersionCompatible?null:this.upgradeAvailable?this.t("catalog.os.versionIncompatible"):this.t("catalog.os.chartIncompatible")}goToUpgrade(e,t){const n=this.matchingChart(!0),i=this.spec?.chart?.metadata?.version,a={[r.CU]:this.metadata.namespace,[r.o_]:this.metadata.name,[r.xv]:e||i};n&&(a[r.NO]=n.repoName,a[r.Eo]=n.repoType,a[r.RX]=n.chartName),t&&(a[r.Rm]=r.Qp),this.currentRouter().push({name:"c-cluster-apps-charts-install",params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"]},query:a})}get details(){const e=this.$rootGetters["i18n/t"],t=this.spec?.info?.firstDeployed,n=this.spec?.info?.lastDeployed;return t&&n&&t!==n?[{label:e('model."catalog.cattle.io.app".lastDeployed'),formatter:"LiveDate",content:n}]:[]}get nameDisplay(){const e=this.spec?.name||this.metadata?.name||this.id||"";return e}get chartDisplay(){const e=this.spec?.chart?.metadata?.name||"?";return`${e}:${this.versionDisplay}`}get versionDisplay(){return f(this.spec?.chart?.metadata?.version)}get versionSort(){return(0,a.Xt)(this.versionDisplay)}async remove(e={}){const t=await this.doAction("uninstall",e),n=await this.$dispatch("find",{type:s.W8.OPERATION,id:`${t.operationNamespace}/${t.operationName}`});try{await n.waitForLink("logs"),n.openLogs()}catch(r){}}get relatedResourcesToRemove(){return async()=>{const e=this.spec.chart.metadata.annotations[i.W8.AUTO_INSTALL].replace("=match","");return await this.$dispatch("find",{type:s.W8.APP,id:`${this.metadata.namespace}/${e}`})}}get canDelete(){return this.hasAction("uninstall")}get deployedResources(){return(0,o.WP)(this.metadata?.relationships||[],"rel","helmresource")}get deployedAsMultiCluster(){return async()=>{try{const e=await this.$dispatch("management/findAll",{type:s.Mc.MULTI_CLUSTER_APP},{root:!0}).catch((()=>{throw new Error("You don't have permission to list multi-cluster apps")}));if(e)return e.find((e=>e.spec?.targets?.find((e=>e.appName===this.metadata?.name))))}catch(e){}return!1}}async deployedAsLegacy(){if(await this.fetchValues(),this.values?.global){const{clusterName:t,projectName:n}=this.values.global;if(t&&n)try{const e=await this.$dispatch("rancher/find",{type:s.k$.APP,id:`${n}:${this.metadata?.name}`,opt:{url:`/v3/project/${t}:${n}/apps/${n}:${this.metadata?.name}`}},{root:!0});if(e)return e}catch(e){}}return!1}async fetchValues(e=!1){if(!this.secretId)return;const t=!!this._values&&!!this._chartValues;if(!t||e)try{await this.$dispatch("find",{type:s.bB,id:this.secretId,opt:{force:e||!!this._secret&&!t,watch:!1,params:{includeHelmData:!0}}})}catch(n){h.error(`Cannot find values for ${this.id} (unable to fetch)`,n)}}get secretId(){const e=this.metadata,t=e.ownerReferences?.find((e=>e.kind.toLowerCase()===s.bB)),n=t?.name,r=e.namespace;return r&&n?`${r}/${n}`:(h.warn(`Cannot find values for ${this.id} (cannot find related secret namespace or id)`),null)}get _secret(){return this.secretId?this.$getters["byId"](s.bB,this.secretId):null}_validateSecret(e){if(void 0===this._secret)throw new Error(`Cannot find ${e} for ${this.id} (chart secret has not been fetched via app \`fetchValues\`)`);if(null===this._secret)throw new Error(`Cannot find ${e} for ${this.id} (chart secret cannot or has failed to fetch) `)}get values(){return this._validateSecret("values"),this._values}get _values(){return this._secret?.data?.release?.config}get chartValues(){return this._validateSecret("chartValues"),this._chartValues}get _chartValues(){return this._secret?.data?.release?.chart?.values}}function f(e){if(!e)return"?";e.match(/^v/i)&&(e=e.substr(1));const t=e.match(/[0-9a-f]{32,}/);return t&&(e=e.replace(t[0],t[0].substr(0,7))),e}},48723:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var r=n(50667),i=n(2841),a=n(68851),o=n(35664),s=n(73883),l=n(25184);class c extends l.A{applyDefaults(){this.spec||(this["spec"]={url:""})}get _isClusterRepoDisabled(){return!1===this.spec?.enabled}get _availableActions(){const e=super._availableActions;return(0,a.PT)(e,0,{divider:!0}),this._isClusterRepoDisabled?(0,a.PT)(e,1,{action:"enableClusterRepo",label:this.t("action.enable"),icon:"icon icon-play",enabled:!0,bulkable:!0}):((0,a.PT)(e,1,{action:"disableClusterRepo",label:this.t("action.disable"),icon:"icon icon-pause",enabled:!0,bulkable:!0}),(0,a.PT)(e,0,{action:"refresh",label:this.t("action.refresh"),icon:"icon icon-refresh",enabled:!!this.links.update,bulkable:!0})),e}async refresh(){const e=(new Date).toISOString().replace(/\.\d+Z$/,"Z");this.spec.forceUpdate=e,await this.save(),await this.waitForState("active",1e4,1e3),this.$dispatch("catalog/load",{force:!0,reset:!0},{root:!0})}async disableClusterRepo(){this.spec.enabled=!1,await this.save()}async enableClusterRepo(){this.spec.enabled=!0,await this.save()}get isGit(){return!!this.spec?.gitRepo}get isOciType(){const e="oci"===this.spec.url?.split(":")[0],t=Object.prototype.hasOwnProperty.call(this.spec,"insecurePlainHttp");return e||t}get isRancherSource(){let e;return(!this.spec?.url||!this.spec?.gitRepo)&&(!!(this.spec?.url&&(e=(0,r.qg)(this.spec.url),e&&t(e.host)))||!!(this.spec?.gitRepo&&(e=(0,r.qg)(this.spec.gitRepo),e&&t(e.host))));function t(e){return e=(e||"").toLowerCase(),"rancher.io"===e||e.endsWith(".rancher.io")}}get isRancher(){return this.isRancherSource&&"rancher-charts"===this.metadata.name}get isPartner(){return this.isRancherSource&&"rancher-partner-charts"===this.metadata.name}get color(){if(this.isRancher)return"rancher";if(this.isPartner)return"partner";{const e=parseInt(this.metadata?.annotations?.[i.W8.COLOR],10);return isNaN(e)||e<=0||e>8?null:`color${e}`}}get canLoad(){return"active"===this.metadata?.state?.name}get typeDisplay(){return this.spec.gitRepo?"git":this.spec.url?this.isOciType?"oci":"http":"?"}get nameDisplay(){const e=this.metadata?.name,t=`catalog.repo.name."${e}"`;return this.$rootGetters["i18n/withFallback"](t,null,e)}get urlDisplay(){return this.status?.url||this.spec.gitRepo||this.spec.url}get branchDisplay(){return this.spec?.gitBranch||"(default)"}get details(){return[{label:"Type",content:this.typeDisplay},{label:"Downloaded",content:this.status.downloadTime,formatter:"LiveDate",formatterOpts:{addSuffix:!0}}]}get stateObj(){return this.metadata?.state?{...this.metadata.state,transitioning:!(this.metadata.generation>this.status?.observedGeneration)&&this.metadata.state.transitioning}:void 0}get stateDisplay(){return this._isClusterRepoDisabled?this.t("generic.disabled"):(0,s.ch)(this.state)}get stateBackground(){return this._isClusterRepoDisabled?"badge-disabled":(0,s.uU)(this.state,this.stateObj?.error,this.stateObj?.transitioning).replace("text-","bg-")}waitForOperation(e,t,n=2e3){return this.waitForTestFn((()=>!!this.$getters["schemaFor"](o.W8.OPERATION)&&(!!this.$getters["byId"](o.W8.OPERATION,e)||void this.$dispatch("find",{type:o.W8.OPERATION,id:e}))),"catalog operation fetch",t,n)}}},67784:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(68851),i=n(92043),a=n(25184);class o extends a.A{get _availableActions(){const e=super._availableActions,t=(0,r.jq)(e,"altAction"," remove");let n=e.length-1;t&&(n=e.indexOf(t));const i={action:"openLogs",enabled:!0,icon:"icon icon-fw icon-chevron-right",label:this.t("action.openLogs"),total:1};return(0,r.PT)(e,n+1,i),(0,r.PT)(e,n+2,{divider:!0}),e}openLogs(){this.$dispatch("wm/open",{id:`${this.id}-logs`,label:`${(0,i.TF)(this.status.action)} ${this.status.namespace}:${this.status?.releaseName||"chart"}`,icon:"file",component:"ContainerLogs",attrs:{pod:this,url:this.links.logs}},{root:!0})}}},71029:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(48723);class i extends r["default"]{}},97960:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(25184);const i=Object.freeze({CACHED:"cached",DISABLED:"disabled",PENDING:"pending"});class a extends r.A{get name(){return this.spec?.plugin?.name}get description(){return this.spec?.plugin?.description}get version(){return this.spec?.plugin?.version}get isInitialized(){return this.status?.cacheState!==i.PENDING}get pluginMetadata(){return this.spec?.plugin?.metadata||{}}get isDeveloper(){return"true"===this.pluginMetadata?.developer}get plugin(){return this.spec?.plugin||{}}}},92737:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(97707),i=n(14220),a=n(10213),o=n(25184);class s extends o.A{queryParams(e,t){let n;const a=this.versions,o=this.$rootGetters["currentCluster"],s=o?.workerOSs,l=(0,r.bh)(this,s);n=l.length?l[0].version:a[0].version;const c={[i.Eo]:this.repoType,[i.NO]:this.repoName,[i.RX]:this.chartName,[i.xv]:n};return e&&(c[e]=i.Qp),t&&(c[i.dV]=i.Qp),c}goToInstall(e,t,n){const r=this.queryParams(e,n),i=this.$rootGetters["currentCluster"];this.currentRouter().push({name:"c-cluster-apps-charts-install",params:{cluster:t||i?.id||a.w},query:r})}}},91380:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(14220),i=n(76978),a=n(25184);class o extends a.A{showMasthead(e){return e===r.nW}applyDefaults(){this.charts||(0,i.hZ)(this,"charts",[{}])}}},4451:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(76978),i=n(25184);class a extends i.A{applyDefaults(){this.charts||(0,r.hZ)(this,"charts",[{}])}}},90960:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return f},fetchSpecsScheduledScanConfig:function(){return h},hasSpecsScheduledScanConfig:function(){return p}});var r=n(10844),i=n(35664),a=n(68851),o=n(6198),s=n(76978),l=n(74302),c=n(23464),u=n.n(c),d=n(25184);const h=async e=>(await e.fetchResourceFields(),p(e)),p=e=>{const t=(0,s.Jt)(e,"resourceFields.spec.type"),n=e.schemaDefinitions?.[t];return!!n&&!!(0,s.Jt)(n,"resourceFields.scheduledScanConfig")};class f extends d.A{get _availableActions(){let e=super._availableActions;const t=["cloneYaml","goToEditYaml","download"];e=e.filter((e=>{if(!t.includes(e.action))return e}));const n=this.$rootGetters["i18n/t"],r={action:"downloadLatestReport",enabled:this.hasReport,icon:"icon icon-fw icon-download",label:n("cis.downloadReport"),total:1},i={action:"downloadAllReports",enabled:this.hasReport,icon:"icon icon-fw icon-download",label:n("cis.downloadAllReports"),total:1};return this.hasReports&&(e.unshift({divider:!0}),this.spec?.scheduledScanConfig?.cronSchedule&&(e.unshift(i),r.label=n("cis.downloadLatestReport")),e.unshift(r)),e}canBeScheduled(){return p(this.$getters["schemaFor"](this.type))}get isScheduled(){return!!(0,s.Jt)(this,"spec.scheduledScanConfig.cronSchedule")}get canUpdate(){return this.hasLink("update")&&this.isScheduled}get hasReports(){const{relationships:e=[]}=this.metadata,t=(0,a.jq)(e,"toType",i._n.REPORT);return!!t}async getReports(){const e=await this.findOwned(),t=e.filter((e=>e.type===i._n.REPORT))||[];return(0,l.Ul)(t,"metadata.creationTimestamp",!0)}async downloadLatestReport(){const e=await this.getReports()||[],t=(0,l.Ul)(e,"metadata.creationTimestamp",!0)[0],r=await n.e(829).then(n.t.bind(n,41880,23));try{const e=(t.aggregatedTests||[]).map((e=>(delete e.actual_value_per_node,e))),n=r.unparse(e);(0,o.PE)(`${m(t)}.csv`,n,"application/csv")}catch(i){this.$dispatch("growl/fromError",{title:"Error downloading file",err:i},{root:!0})}}async downloadAllReports(){const e={},t=await this.getReports()||[],r=await n.e(829).then(n.t.bind(n,41880,23));t.forEach((t=>{try{const n=(t.aggregatedTests||[]).map((e=>(delete e.actual_value_per_node,e))),i=r.unparse(n);e[`${m(t)}.csv`]=i}catch(n){this.$dispatch("growl/fromError",{title:"Error downloading file",err:n},{root:!0})}})),(0,s.Im)(e)||(0,o.jl)(e).then((e=>{(0,o.PE)(`${this.id}-reports`,e,"application/zip")}))}get scanProfileLink(){return this.status?.lastRunScanProfileName?{name:"c-cluster-product-resource-id",params:{resource:i._n.CLUSTER_SCAN_PROFILE,product:r.o_,id:this.status?.lastRunScanProfileName}}:{}}}const m=e=>{const{creationTimestamp:t}=e.metadata,n=u()(t).format("YYYY-MM-DD-HHmmss"),r=e.id.replace(/^scan-report-/,"");return`${r}--${n}`}},20173:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(35664),i=n(25184);class a extends i.A{warnDeletionMessage(e=[]){return this.$rootGetters["i18n/t"]("cis.deleteBenchmarkWarning",{count:e.length})}get isDefault(){const{relationships:e=[]}=this.metadata;return!!e&&e.filter((e=>e.fromType===r.W8.APP)).length>0}}},29875:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(25184),i=n(10844),a=n(35664);class o extends r.A{warnDeletionMessage(e=[]){return this.$rootGetters["i18n/t"]("cis.deleteProfileWarning",{count:e.length})}get numberTestsSkipped(){const{skipTests:e=[]}=this.spec;return e.length}get benchmarkVersionLink(){return this.spec?.benchmarkVersion?{name:"c-cluster-product-resource-id",params:{resource:a._n.BENCHMARK,product:i.o_,id:this.spec?.benchmarkVersion}}:{}}}},24574:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(74302),i=n(25184);class a extends i.A{get aggregatedTests(){const e=this.parsedReport,t=e?.results,n=t?t.reduce(((e,t)=>(t.checks&&e.push(...t.checks),e)),[]):null,i=e=>(e||"").split(".").map((e=>+e+1e3)).join("."),a=e=>{const t={other:7,notApplicable:6,skip:5,pass:4,warn:3,mixed:2,fail:1};return`${t[e]||t["other"]} ${e}`},o=n.slice().sort(((e,t)=>{const n=(0,r.UD)(a(e.state),a(t.state)),o=(0,r.UD)(i(e.id),i(t.id));return n||o}));return o}get nodes(){return this.parsedReport?this.parsedReport.nodes:{}}get parsedReport(){try{const e=this.spec?.reportJSON,t=JSON.parse(e);return t}catch(e){}return null}}},45231:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return b}});var r=n(2841);n(68851),n(4364);function i(e){return e.toLowerCase().replace(/[^a-z0-9]/gi,"")}["username","password","accesskey","secretkey","accesskeyid","secretkeyid","accesskeysecret","token","apikey","secret","clientid","clientsecret","subscriptionid","tenantid"].map((e=>i(e))),["location","region"].map((e=>i(e)));const a=["username","accesskey","accesskeyid","clientid"].map((e=>i(e))),o=["token","apikey","secret"].map((e=>i(e))),s=[].map((e=>i(e)));var l=n(76978),c=n(35664),u=n(92043),d=n(89865),h=n(91462),p=n(23464),f=n.n(p),m=n(4364);const g="harvester",v={[g]:{renew:({cloudCredential:e,$ctx:t})=>v[g].renewBulk({cloudCredentials:[e],$ctx:t}),renewBulk:async({cloudCredentials:e,$ctx:t})=>{await Promise.all(e.map((async e=>{try{if(!e.harvestercredentialConfig?.clusterId)throw new Error("credential has no matching harvester cluster");const n=t.rootGetters["management/byId"](c.Mc.CLUSTER,e.harvestercredentialConfig.clusterId);if(!n)throw new Error("cannot find harvester cluster");const r=await n.generateKubeConfig();e.setData("kubeconfigContent",r),await e.save()}catch(n){m.error(`Unable to refresh harvester cloud credential '${e.id}'`,n)}})))}}};class b extends d.A{get _availableActions(){const e=super._availableActions;return e.splice(0,0,{divider:!0}),e.splice(0,0,{action:"renew",enabled:this.canRenew,bulkable:this.canBulkRenew,bulkAction:"renewBulk",icon:"icon icon-fw icon-refresh",label:this.t("manager.cloudCredentials.renew")}),e}get hasSensitiveData(){return!0}get canCustomEdit(){return!0}get _detailLocation(){return{name:"c-cluster-manager-cloudCredential-id",params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],id:this.id}}}get parentLocationOverride(){return{name:"c-cluster-manager-cloudCredential",params:{cluster:this.$rootGetters["clusterId"]}}}get secretName(){return this.id.replace(":","/")}get secret(){return this.$rootGetters["management/byId"](c.bB,this.secretName)}async getSecret(){await this.$dispatch("management/find",{type:c.bB,id:this.secretName},{root:!0})}get configKey(){return Object.keys(this).find((e=>e.endsWith("credentialConfig")))}get provider(){const e=this.annotations?.[r.qt.CREDENTIAL_DRIVER];if(e)return e;const t=this.configKey;if(t){const e=this.$rootGetters["plugins/credentialDriverFor"](t.replace(/credentialConfig$/,""));return e}return null}setProvider(e){this.setAnnotation(r.qt.CREDENTIAL_DRIVER,e),Object.keys(this).forEach((t=>{t=t.toLowerCase(),t.endsWith("config")&&t!==`${e}config`&&(0,l.hZ)(this,t,null)})),this[`${e}credentialConfig`]||(0,l.hZ)(this,`${e}credentialConfig`,{})}get decodedData(){const e=this.configKey;return e?this[e]:{}}setData(e,t){const n=e&&"object"===typeof e;let r;this[this.configKey]&&!n||(0,l.hZ)(this,this.configKey,{}),r=n?e:{[e]:t};for(const i in r)(0,l.hZ)(this,`"${this.configKey}"."${i}"`,r[i])}get providerDisplay(){const e=(this.provider||"").toLowerCase();return this.$rootGetters["i18n/withFallback"](`cluster.provider."${e}"`,null,e)}get publicData(){let{publicKey:e,publicMode:t}=this.$rootGetters["plugins/credentialOptions"](this.provider);const n={full:a,prefix:o,suffix:s};if(!e)for(const a in this.decodedData||{}){if(e)break;if(!(0,l.Im)(this.decodedData[a]))for(const r in n)if(n[r].includes(i(a))){e=a,t=r;break}}if(!e)return null;let r=this.decodedData[e];if(r||(r=this.secret?.decodedData?.[`${this.provider}credentialConfig-${e}`]),!r)return null;const c=Math.min(8,Math.floor(r.length/2));return"prefix"===t?`${(0,u.ZD)(r.substr(0,c))}…`:"suffix"===t?`…${(0,u.ZD)(r.substr(-1*c))}`:(0,u.ZD)(r)}get doneRoute(){return"c-cluster-manager-secret"}get canRenew(){return!!v[this.provider]?.renew&&void 0!==this.expires&&this.canUpdate}get canBulkRenew(){return!!v[this.provider]?.renewBulk}get expiresForSort(){return void 0!==this.expires?this.expires:Number.MAX_SAFE_INTEGER}get expires(){const e=this.annotations[r.rW.EXPIRATION];return"string"===typeof e?parseInt(e):"number"===typeof e?e:void 0}get expireData(){if("number"!==typeof this.expiresIn)return null;const e=6048e5;return 0===this.expiresIn?{expired:!0,expiring:!1}:this.expiresIn<e?{expired:!1,expiring:!0}:null}get expiresString(){if(void 0===this.expires)return"";if(this.expireData.expired)return this.t("manager.cloudCredentials.expired");const e=(0,u.ZD)(this.$rootGetters["prefs/get"](h.DX)),t=(0,u.ZD)(this.$rootGetters["prefs/get"](h.G$));return f()(this.expires).format(`${e} ${t}`)}get expiresIn(){if(void 0===this.expires)return null;const e=this.expires,t=Date.now(),n=e-t;return n<0?0:n}renew(){const e=v[this.provider]?.renew;return e||m.error("No fn renew function for ",this.provider),e({cloudCredential:this,$ctx:this.$ctx})}async renewBulk(e=[]){const t=v[this.provider]?.renewBulk;return t||m.error("No fn renew bulk function for ",this.provider),t({cloudCredentials:e,$ctx:this.$ctx})}}},16787:function(e,t,n){"use strict";n.r(t),n.d(t,{ANNOTATIONS_CONTAINS_PROTECTED:function(){return a},LABEL_CONTAINS_PROTECTED:function(){return i},default:function(){return o}});var r=n(89865);const i=["io.cattle.lifecycle","kubernetes.io","cattle.io","k3s.io"],a=["coreos.com","cattle.io","k3s.io","kubernetes.io","k3s.io"];class o extends r.A{get systemLabels(){return Object.keys(this.labels||{}).filter((e=>i.find((t=>e.includes(t)))))}get systemAnnotations(){return Object.keys(this.annotations||{}).filter((e=>a.find((t=>e.includes(t)))))}get hasSystemLabels(){return!!(this.systemLabels||[]).length}get hasSystemAnnotations(){return!!(this.systemAnnotations||[]).length}}},61843:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p},notOnlyOfRole:function(){return h}});var r=n(35664),i=n(2841),a=n(27278),o=n(44458),s=n(92043),l=n(68851),c=n(76978),u=n(6198),d=n(25184);function h(e,t){const n={};if(e.isControlPlane&&(n.isControlPlane=!1),e.isEtcd&&(n.isEtcd=!1),0===Object.keys(n).length)return!0;for(const r of t)if(Object.keys(n).forEach((e=>{r[e]&&(n[e]?delete n[e]:n[e]=!0)})),0===Object.keys(n).length)return!0;return!1}class p extends d.A{get _availableActions(){const e=super._availableActions,t={action:"openSsh",enabled:!!this.links.shell&&this.isRunning,icon:"icon icon-fw icon-chevron-right",label:"SSH Shell"},n={action:"downloadKeys",enabled:!!this.links.sshkeys,icon:"icon icon-fw icon-download",label:this.t("node.actions.downloadSSHKey")},r={action:"toggleForceRemoveModal",altAction:"forceMachineRemove",enabled:!!this.isRemoveForceable,label:this.t("node.actions.forceDelete"),icon:"icon icon-trash"},i={action:"toggleScaleDownModal",bulkAction:"toggleScaleDownModal",enabled:!!this.canScaleDown,icon:"icon icon-minus icon-fw",label:this.t("node.actions.scaleDown"),bulkable:!0};return(0,l.PT)(e,0,{divider:!0}),(0,l.PT)(e,0,n),(0,l.PT)(e,0,t),(0,l.PT)(e,0,i),(0,l.PT)(e,0,r),e}get canClone(){return!1}openSsh(e){const t=e||this.nameDisplay;this.$dispatch("wm/open",{id:`${this.id}-ssh`,label:t,icon:"terminal",component:"MachineSsh",attrs:{machine:this,pod:{}}},{root:!0})}downloadKeys(){(0,u.Is)(this.links.sshkeys)}toggleForceRemoveModal(e=this){this.$dispatch("promptModal",{componentProps:{machine:e},component:"ForceMachineRemoveDialog"})}async forceMachineRemove(){const e=await this.machineRef();e.setAnnotation(i.qt.FORCE_MACHINE_REMOVE,"true"),await e.save()}toggleScaleDownModal(e=this){this.$dispatch("promptModal",{resources:e,component:"ScaleMachineDownDialog",modalWidth:"450px"})}async machineRef(){const e=this.spec.infrastructureRef,t=`${e.namespace}/${e.name}`,n=`rke-machine.cattle.io.${e.kind.toLowerCase()}`;return await this.$dispatch("find",{type:n,id:t})}get cluster(){if(!this.spec.clusterName)return null;const e=`${this.metadata.namespace}/${this.spec.clusterName}`,t=this.$rootGetters["management/byId"](r.qt.RANCHER_CLUSTER,e);return t}get poolName(){return this.metadata?.labels?.[i.qt.DEPLOYMENT_NAME]||""}get poolId(){const e=`${this.metadata.namespace}/${this.poolName}`;return e}get pool(){return this.$rootGetters["management/byId"](r.qt.MACHINE_DEPLOYMENT,this.poolId)}get operatingSystem(){return this.metadata?.labels["cattle.io/os"]||"linux"}get kubeNodeDetailLocation(){const e=this.status?.nodeRef?.name,t=this.cluster?.status?.clusterName;return e&&t?{name:"c-cluster-product-resource-id",params:{cluster:this.cluster.status.clusterName,product:a.o,resource:r.NW,id:e}}:e}get groupByLabel(){const e=this.cluster?.nameDisplay||this.spec.clusterName;return this.$rootGetters["i18n/t"]("resourceTable.groupLabel.cluster",{name:(0,s.ZD)(e)})}get labels(){return this.metadata?.labels||{}}get isWorker(){return"true"===`${this.labels[i.Ub.WORKER]}`}get isControlPlane(){return"true"===`${this.labels[i.Ub.CONTROL_PLANE]}`}get isEtcd(){return"true"===`${this.labels[i.Ub.ETCD]}`}get isRemoveForceable(){const e=(0,c.Jt)(this,"status.conditions"),t=((0,l.jq)(e,"type","InfrastructureReady")||{}).reason;return"DeleteError"===t||null}get canScaleDown(){return!(!this.canUpdate||!this.pool?.canUpdate)&&h(this,this.cluster?.machines)}get roles(){const{isControlPlane:e,isWorker:t,isEtcd:n}=this;return(0,o.listNodeRoles)(e,t,n,this.t("generic.all"))}get isRunning(){return"Running"===this.status?.phase}get internalIp(){const e=this.status?.addresses?.find((({type:e})=>e===r.FV.INTERNAL_IP))?.address;return e||this.t("generic.none")}get externalIp(){const e=this.status?.addresses?.find((({type:e})=>e===r.FV.EXTERNAL_IP))?.address;return e||this.t("generic.none")}}},22456:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p}});var r=n(35664),i=n(92043),a=n(74302),o=n(25184),s=n(99726),l=n(79401),c=n(2841),u=n(61843);const d={MACHINE_INV_SELECTOR_TEMPLATES:"MachineInventorySelectorTemplate"},h={MACHINE_TEMPLATE:"HarvesterMachineTemplate"};class p extends o.A{get cluster(){if(!this.spec.clusterName)return null;const e=`${this.metadata.namespace}/${this.spec.clusterName}`,t=this.$rootGetters["management/byId"](r.qt.RANCHER_CLUSTER,e);return t}get groupByLabel(){const e=this.cluster?.nameDisplay||this.spec.clusterName;return this.$rootGetters["i18n/t"]("resourceTable.groupLabel.cluster",{name:(0,i.ZD)(e)})}get groupByPoolLabel(){return`${this.$rootGetters["i18n/t"]("resourceTable.groupLabel.machinePool",{name:(0,i.ZD)(this.nameDisplay)})}`}get groupByPoolShortLabel(){return`${this.$rootGetters["i18n/t"]("resourceTable.groupLabel.machinePool",{name:(0,i.ZD)(this.nameDisplay)})}`}get infrastructureRefKind(){return this.spec?.template?.spec?.infrastructureRef?.kind}get templateType(){return this.spec.template.spec.infrastructureRef.kind?`rke-machine.cattle.io.${this.spec.template.spec.infrastructureRef.kind.toLowerCase()}`:null}get template(){const e=this.spec.template.spec.infrastructureRef,t=`${e.namespace}/${e.name}`,n=this.$rootGetters["management/byId"](this.templateType,t);return n}get providerName(){return this.template?.nameDisplay}get providerDisplay(){const e=(this.template?.provider||"").toLowerCase();return this.$rootGetters["i18n/withFallback"](`cluster.provider."${e}"`,null,"generic.unknown",!0)}get providerLocation(){return this.template?.providerLocation||this.t("node.list.poolDescription.noLocation")}get providerSize(){return this.template?.providerSize||this.t("node.list.poolDescription.noSize")}get providerSummary(){if(this.template)switch(this.infrastructureRefKind){case h.MACHINE_TEMPLATE:return null;default:return`${this.providerDisplay} – ${this.providerLocation} / ${this.providerSize} (${this.providerName})`}return null}get desired(){return this.spec?.replicas||0}get pending(){return Math.max(0,this.desired-(this.status?.replicas||0))}get outdated(){return Math.max(0,(this.status?.replicas||0)-(this.status?.updatedReplicas||0))}get ready(){return Math.max(0,(this.status?.replicas||0)-(this.status?.unavailableReplicas||0))}get unavailable(){return this.status?.unavailableReplicas||0}get isControlPlane(){return"true"===`${this.spec?.template?.metadata?.labels?.[c.Ub.CONTROL_PLANE]}`}get isEtcd(){return"true"===`${this.spec?.template?.metadata?.labels?.[c.Ub.ETCD]}`}get inClusterSpec(){const e=this.template?.metadata?.annotations["rke.cattle.io/cloned-from-name"],t=this.cluster.spec.rkeConfig.machinePools;return t.find((t=>t.machineConfigRef.name===e))}scalePool(e,t=!0,n=0){if(!this.inClusterSpec)return;const i=this.cluster.toJSON();if(this.inClusterSpec.quantity+=e,!t)return;const a=this.cluster,o=this.$rootGetters["management/byId"](r.qt.RANCHER_CLUSTER,this.cluster.id);this.scaleTimer&&clearTimeout(this.scaleTimer),this.scaleTimer=setTimeout((()=>{this.cluster.save().catch((async t=>{let r=(0,s.rz)(t);if(409===t.status&&n<2){const t=await(0,l.Rq)(i,a,o,this.$rootGetters,{dispatch:this.$dispatch},"management");if(!1===t)return this.scalePool(e,!0,n+1);r=t}this.$dispatch("growl/fromError",{title:"Error scaling pool",err:r},{root:!0})}))}),1e3)}canScaleDownPool(){return!(!this.canUpdate||0===this.inClusterSpec?.quantity||this.infrastructureRefKind===d.MACHINE_INV_SELECTOR_TEMPLATES)&&(!this.isEtcd&&!this.isControlPlane||(0,u.notOnlyOfRole)(this,this.cluster.machines))}canScaleUpPool(){return this.infrastructureRefKind!==d.MACHINE_INV_SELECTOR_TEMPLATES}get showScalePool(){return this.canScaleDownPool()||this.canScaleUpPool()}get stateParts(){const e=[{label:"Pending",color:"bg-info",textColor:"text-info",value:this.pending,sort:1},{label:"Outdated",color:"bg-warning",textColor:"text-warning",value:this.outdated,sort:2},{label:"Unavailable",color:"bg-error",textColor:"text-error",value:this.unavailable,sort:3},{label:"Ready",color:"bg-success",textColor:"text-success",value:this.ready,sort:4}].filter((e=>e.value>0));return(0,a.Ul)(e,"sort:desc")}}},5555:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(35664),i=n(92043),a=n(25184);class o extends a.A{get cluster(){if(!this.spec.clusterName)return null;const e=`${this.metadata.namespace}/${this.spec.clusterName}`,t=this.$rootGetters["management/byId"](r.qt.RANCHER_CLUSTER,e);return t}get groupByLabel(){const e=this.cluster?.nameDisplay||this.spec.clusterName;return this.$rootGetters["i18n/t"]("resourceTable.groupLabel.cluster",{name:(0,i.ZD)(e)})}}},44458:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return d},listNodeRoles:function(){return p}});var r=n(92043),i=n(2841),a=n(35664),o=n(95799),s=n(24576),l=n.n(s),c=n(25184),u=n(14220);class d extends c.A{get _availableActions(){const e=this.norman?.actions||{},t={action:"cordon",enabled:!!e.cordon,icon:"icon icon-fw icon-pause",label:"Cordon",total:1,bulkable:!0},n={action:"uncordon",enabled:!!e.uncordon,icon:"icon icon-fw icon-play",label:"Uncordon",total:1,bulkable:!0},r={action:"drain",enabled:!!e.drain,icon:"icon icon-fw icon-dot-open",label:this.t("drainNode.action"),bulkable:!0,bulkAction:"drain"},i={action:"stopDrain",enabled:!!e.stopDrain,icon:"icon icon-fw icon-x",label:this.t("drainNode.actionStop"),bulkable:!0},a={action:"openSsh",enabled:!!this.provisionedMachine?.links?.shell,icon:"icon icon-fw icon-chevron-right",label:"SSH Shell"},o={action:"downloadKeys",enabled:!!this.provisionedMachine?.links?.sshkeys,icon:"icon icon-fw icon-download",label:this.t("node.actions.downloadSSHKey")};return[a,o,{divider:!0},t,n,r,i,{divider:!0},...super._availableActions]}openSsh(){this.provisionedMachine.openSsh(this.nameDisplay)}downloadKeys(){this.provisionedMachine.downloadKeys()}get showDetailStateBadge(){return!0}get name(){return this.metadata.name}get addresses(){return this.status?.addresses||[]}get internalIp(){return l()(this.addresses,(e=>"InternalIP"===e.type))?.address}get externalIp(){const e=this.metadata.annotations[i.Z_.EXTERNAL_IP],t=l()(this.addresses,(e=>"ExternalIP"===e.type))?.address;return t||e}get labels(){return this.metadata?.labels||{}}get customLabelCount(){return this.customLabels.length}get customLabels(){const e=[];if(this.labels)for(const t in this.labels){const[n]=t.split("/");i.uf.includes(n)||e.push(`${t}=${this.labels[t]}`)}return e}get isWorker(){return this.managementNode?this.managementNode.isWorker:"true"===`${this.labels[i.vi.WORKER]}`}get isControlPlane(){return this.managementNode?this.managementNode.isControlPlane:"true"===`${this.labels[i.vi.CONTROL_PLANE]}`||"true"===`${this.labels[i.vi.CONTROL_PLANE_OLD]}`}get isEtcd(){return this.managementNode?this.managementNode.isEtcd:"true"===`${this.labels[i.vi.ETCD]}`}get hasARole(){const e=Object.values(i.vi);return Object.keys(this.labels).some((t=>{const n=e.includes(t),r="true"===`${this.labels[t]}`;return n&&r}))}get roles(){const{isControlPlane:e,isWorker:t,isEtcd:n}=this;return p(e,t,n,this.t("generic.all"))}get version(){return this.status.nodeInfo.kubeletVersion}get cpuUsage(){return this.isFromNorman&&"eks"===this.provider?(0,o.ao)(this.podRequests.cpu||"0"):(0,o.ao)(this.$rootGetters["cluster/byId"](a.$v.NODE,this.id)?.usage?.cpu||"0")}get cpuCapacity(){return(0,o.ao)(this.status.allocatable?.cpu)}get cpuUsagePercentage(){return(100*this.cpuUsage/this.cpuCapacity).toString()}get ramUsage(){return this.isFromNorman&&"eks"===this.provider?(0,o.ao)(this.podRequests.memory||"0"):(0,o.ao)(this.$rootGetters["cluster/byId"](a.$v.NODE,this.id)?.usage?.memory||"0")}get ramCapacity(){return(0,o.ao)(this.status.capacity?.memory)}get ramUsagePercentage(){return(100*this.ramUsage/this.ramCapacity).toString()}get ramReserved(){return(0,o.ao)(this.status?.allocatable?.memory)}get ramReservedPercentage(){return(100*this.ramUsage/this.ramReserved).toString()}get podUsage(){return h(this.status.allocatable?.pods,this.status.capacity?.pods)}get podConsumedUsage(){return(this.podConsumed/this.podCapacity*100).toString()}get podCapacity(){return Number.parseInt(this.status.capacity?.pods)}get podConsumed(){const e=this.pods.filter((e=>"running"===e.state));return e.length||0}get podRequests(){return JSON.parse(this.metadata.annotations["management.cattle.io/pod-requests"]||"{}")}get isPidPressureOk(){return this.isCondition("PIDPressure","False")}get isDiskPressureOk(){return this.isCondition("DiskPressure","False")}get isMemoryPressureOk(){return this.isCondition("MemoryPressure","False")}get isKubeletOk(){return this.isCondition("Ready")}get isCordoned(){return!!this.spec.unschedulable}get drainedState(){const e=this.managementNode?.status.conditions.find((e=>"Drained"===e.type));if(e){if("True"===e.status)return"drained";if(e.transitioning)return"draining"}return null}get containerRuntimeVersion(){return this.status.nodeInfo.containerRuntimeVersion.replace("docker://","")}get containerRuntimeIcon(){return this.status.nodeInfo.containerRuntimeVersion.includes("docker")?"icon-docker":""}async cordon(e){const t=Array.isArray(e)?e:[this];await Promise.all(t.map((e=>e.norman?.doAction("cordon"))))}async uncordon(e){const t=Array.isArray(e)?e:[this];await Promise.all(t.map((e=>e.norman?.doAction("uncordon"))))}get clusterId(){const e=this.links.self.split("/");return e.length>6&&"k8s"===e[e.length-6]&&"clusters"===e[e.length-5]?e[e.length-4]:u.G8}get normanNodeId(){const e=(this.$rootGetters["management/all"](a.Mc.NODE)||[]).find((e=>e.id.startsWith(this.clusterId)&&e.status.nodeName===this.name));return e?e.id.replace("/",":"):null}get norman(){return this.$rootGetters["rancher/byId"](a.k$.NODE,this.normanNodeId)}get managementNode(){return this.$rootGetters["management/all"](a.Mc.NODE).find((e=>e.id.startsWith(this.clusterId)&&e.status.nodeName===this.id))}drain(e){this.$dispatch("promptModal",{component:"DrainNode",componentProps:{kubeNodes:e||[this],normanNodeId:this.normanNodeId}})}async stopDrain(e){const t=Array.isArray(e)?e:[this];await Promise.all(t.map((e=>e.norman?.doAction("stopDrain"))))}get state(){return this.drainedState?this.drainedState:this.isCordoned?"cordoned":this.metadata?.state?.name||"unknown"}get details(){const e=[{label:this.t("node.detail.detailTop.version"),content:this.version},{label:this.t("node.detail.detailTop.os"),content:this.status.nodeInfo.osImage},{label:this.t("node.detail.detailTop.containerRuntime"),formatter:"IconText",formatterOpts:{iconClass:this.containerRuntimeIcon},content:this.containerRuntimeVersion}];return this.internalIp&&e.unshift({label:this.t("node.detail.detailTop.internalIP"),formatter:"CopyToClipboard",content:this.internalIp}),this.externalIp&&e.unshift({label:this.t("node.detail.detailTop.externalIP"),formatter:"CopyToClipboard",content:this.externalIp}),e}get pods(){const e=this.$rootGetters["cluster/all"](a.Sm);return e.filter((e=>e.spec.nodeName===this.name))}get confirmRemove(){return!0}get canClone(){return!1}get canDelete(){const e=["aks","azureaks","azurekubernetesservice","eks","amazoneks","gke","googlegke"];return!e.includes(this.provider)}get provisionedMachine(){const e=this.metadata?.annotations?.[i.qt.CLUSTER_NAMESPACE],t=this.metadata?.annotations?.[i.qt.MACHINE_NAME];return e&&t?this.$rootGetters["management/byId"](a.qt.MACHINE,`${e}/${t}`):null}get isFromNorman(){return"norman"===(this.$rootGetters["currentCluster"].metadata.labels||{})["cattle.io/creator"]}get provider(){return this.$rootGetters["currentCluster"].provisioner.toLowerCase()}get displayTaintsAndLabels(){return!!this.spec.taints?.length||!!this.customLabelCount}}function h(e,t){const n=Number.parseFloat(t),i=Number.parseFloat(e),a=(n-i)/n*100;return(0,r.l9)(a)}function p(e,t,n,r){const i=[];return e&&i.push("Control Plane"),t&&i.push("Worker"),n&&i.push("Etcd"),3===i.length||0===i.length?r:i.join(", ")}},62973:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(45858);class i extends r["default"]{}},40408:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(35664),i=n(89865);class a extends i.A{get principalId(){return this.userPrincipalId||this.groupPrincipalId}get roleDisplay(){return this.roleTemplate.nameDisplay}get roleDescription(){return this.roleTemplate.description}get roleTemplate(){return this.$rootGetters["management/byId"](r.Mc.ROLE_TEMPLATE,this.roleTemplateId)}get clusterroletemplatebinding(){return this.$rootGetters["management/byId"](r.Mc.CLUSTER_ROLE_TEMPLATE_BINDING,this.id?.replace(":","/"))}get steve(){return this.$dispatch("management/find",{type:r.Mc.CLUSTER_ROLE_TEMPLATE_BINDING,id:this.id?.replace(":","/")},{root:!0})}}},79925:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{get keysDisplay(){const e=[...Object.keys(this.data||[]),...Object.keys(this.binaryData||[])];return e.length?e.join(", "):"(none)"}}},40172:function(e,t,n){"use strict";n.r(t),n.d(t,{ENFORCEMENT_ACTION_VALUES:function(){return s},default:function(){return l}});var r=n(20246),i=n.n(r),a=n(25184),o=n(6198);const s={DENY:"deny",DRYRUN:"dryrun"};class l extends a.A{get _availableActions(){const e=super._availableActions,t=this.$rootGetters["i18n/t"],n={action:"downloadViolations",icon:"icon icon-fw icon-download",label:t("gatekeeperConstraint.downloadViolations"),total:1};return e.unshift(n),e}async save(){let e,t;this.constraint?(e=await this.findLatestConstraint(),t=e?.metadata?.resourceVersion):e=await this.$dispatch("cluster/create",{type:`constraints.gatekeeper.sh.${this.kind.toLowerCase()}`},{root:!0}),e.spec=this.spec,e.metadata=this.metadata,t&&(e.metadata.resourceVersion=t),await e.save()}async downloadViolations(){const e=await n.e(829).then(n.t.bind(n,41880,23));try{const t=(this.violations||[]).map((e=>(delete e.resourceLink,delete e.constraintLink,e))),n=e.unparse(t);(0,o.PE)(`violations-${this.name}.csv`,n,"application/csv")}catch(t){this.$dispatch("growl/fromError",{title:"Error downloading file",err:t},{root:!0})}}cleanForNew(){this.$dispatch("cleanForNew",this),this.constraint&&delete this.constraint}saveYaml(e){const t=i().load(e);return Object.assign(this,t),this.save()}async remove(){const e=await this.findLatestConstraint();return e.remove()}findLatestConstraint(){return this.$dispatch("cluster/find",{type:this.constraint.type,id:this.constraint.id,opt:{force:!0}},{root:!0})}get totalViolations(){return this.status?.totalViolations||this.violations.length}get violations(){const e=this.status?.violations||[];return e.map((e=>({...e,resourceLink:{text:e.name,to:{name:"c-cluster-product-resource-id",params:{resource:e.kind.toLowerCase(),id:e.name,product:"explorer"}}},constraintLink:{text:this.nameDisplay,to:this.detailLocation}})))}}},81147:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(2841),i=n(89865),a=n(44660),o=n(56005),s=n.n(o);class l extends i.A{get canViewYaml(){return!1}get driverName(){if(!this.builtIn){const e=this.status?.displayName?.toLowerCase();if(e)return a.KONTAINER_TO_DRIVER[e]||e}return a.KONTAINER_TO_DRIVER[this.id]||this.name||this.id}get nameDisplay(){const e=`cluster.provider.${this.driverName}`,t=s()(this.driverName);return this.$rootGetters["i18n/withFallback"](e,t)}get description(){return this.builtIn||this.builtin?this.$rootGetters["i18n/withFallback"]("tableHeaders.builtIn"):this.url}set description(e){this.annotations&&(this.annotations[r.tC]=e),this._description=e}cleanForSave(e,t){const n=super.cleanForSave(e,t);return t&&(n.active=!0),delete n.metadata,n}}},10501:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(89865),i=n(73883);class a extends r.A{get _availableActions(){const e={action:"promptRestore",enabled:this.state===i.jv.ACTIVE,icon:"icon icon-fw icon-backup-restore",label:"Restore"},t=super._availableActions,n=[e];return t.length&&(n.push({divider:!0}),n.push(...t)),n}promptRestore(){this.$dispatch("promptRestore",[this])}get createdAt(){return this.created}get rke2(){return!1}get nameDisplay(){return this.name}get backupLocation(){return this.backupConfig.s3BackupConfig?this.t("cluster.snapshot.rke1.s3"):this.t("cluster.snapshot.rke1.local")}}},28473:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(3514),i=n.n(r),a=n(92043),o=n(25184);class s extends o.A{get displayInvolvedObject(){const e=this.involvedObject;return i()(e)?"N/A":`${e.kind} ${e.name}`}get displayMessage(){return(0,a.TF)(this.message)}get timestamp(){return this.lastTimestamp||this.metadata?.creationTimestamp}get eventType(){return this._type}get lastSeen(){const e=this.$getters["schemaFor"](this.type),t=this.$rootGetters["type-map/rowValueGetter"];return e&&t?t(e,"Last Seen")(this):null}}},5096:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var r=n(92043),i=n(25184),a=n(49148),o=n(68851),s=n(35664),l=n(38823);class c extends i.A{get lastUpdateTime(){return this.status?.conditions?.[0].lastUpdateTime}get bundleType(){return a.A.memberOfObject(this.spec,"helm")?"helm":""}get repoName(){const e=this.metadata?.labels||{};return e["fleet.cattle.io/repo-name"]}get targetClusters(){const e=this.$getters["byId"](s.Hs.WORKSPACE,this.metadata.namespace),t=e?.clusters||[],n=e?.clusterGroups||[],r=[];if("fleet-local"===e.id){const e=(0,o.jq)(n,"id","fleet-local/default");return e?e.targetClusters:[]}for(const i of this.spec.targets)if(i.clusterName){const e=(0,o.jq)(t,"metadata.name",i.clusterName);e&&(0,o.PG)(r,e)}else if(i.clusterGroup){const e=(0,o.jq)(n,{"metadata.namespace":this.metadata.namespace,"metadata.name":i.clusterGroup});e&&(0,o.cn)(r,e.targetClusters)}else if(i.clusterGroupSelector){const e=(0,l._R)(i.clusterGroupSelector),t=(0,l.wC)(n,e);for(const n of t)(0,o.cn)(r,n.targetClusters)}else if(i.clusterSelector){const e=(0,l._R)(i.clusterSelector),n=(0,l.wC)(t,e);(0,o.cn)(r,n)}return r}get stateDescription(){const e=this.stateObj?.error||!1,t=this.stateObj?.message;return e?(0,r.TF)(t):""}get stateObj(){const e=this.status?.conditions?.find((e=>{const{error:t,message:n}=e,r=!!t,i=n?.toLowerCase().includes("errapplied")||n?.toLowerCase().includes("error");return r&&i}));return e?(e.name=e.message?.toLowerCase().includes("errapplied")?"errapplied":"error",e):{...this.metadata.state}}get groupByLabel(){const e=this.metadata.namespace;return e?this.$rootGetters["i18n/t"]("resourceTable.groupLabel.workspace",{name:(0,r.ZD)(e)}):this.$rootGetters["i18n/t"]("resourceTable.groupLabel.notInAWorkspace")}}},5904:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return h}});var r=n(35664),i=n(2841),a=n(91462),o=n(25184),s=n(92043),l=n(68851),c=n(20246),u=n.n(c),d=n(95265);class h extends o.A{get _availableActions(){const e=super._availableActions;return(0,l.PT)(e,0,{action:"pause",label:"Pause",icon:"icon icon-pause",bulkable:!0,enabled:!!this.links.update&&!this.spec?.paused}),(0,l.PT)(e,1,{action:"unpause",label:"Unpause",icon:"icon icon-play",bulkable:!0,enabled:!!this.links.update&&!0===this.spec?.paused}),(0,l.PT)(e,2,{action:"forceUpdate",label:"Force Update",icon:"icon icon-refresh",bulkable:!0,enabled:!!this.links.update}),this.canChangeWorkspace&&(0,l.PT)(e,3,{action:"assignTo",label:"Change workspace",icon:"icon icon-copy",bulkable:!0,bulkAction:"assignToBulk",enabled:!!this.links.update&&!!this.mgmt}),(0,l.PT)(e,4,{divider:!0}),e}pause(){this.spec.paused=!0,this.save()}unpause(){this.spec.paused=!1,this.save()}forceUpdate(){const e=this.spec.redeployAgentGeneration||1;this.spec.redeployAgentGeneration=e+1,this.save()}assignTo(){this.$dispatch("assignTo",[this])}assignToBulk(e){this.$dispatch("assignTo",e)}get canDelete(){return!1}get canChangeWorkspace(){return!this.isLocal&&(!this.isRke2||this.$rootGetters["features/get"](d.N8))}get isLocal(){return this.metadata.name===r.d_||this.metadata?.labels?.[i.Hs.CLUSTER_NAME]===r.d_}get isRke2(){const e=this?.metadata?.labels?.[i.qt.PROVIDER]||this?.status?.provider;return e===a.gM}get nameDisplay(){return this.metadata?.labels?.[i.Hs.CLUSTER_DISPLAY_NAME]||this.metadata?.name||this.id}get name(){return this.metadata?.name||this.metadata?.labels?.[i.Hs.CLUSTER_NAME]}get state(){return!0===this.spec?.paused?"paused":this.metadata?.state?.name||"unknown"}get repoInfo(){const e=this.status?.readyGitRepos||0,t=this.status?.desiredReadyGitRepos||0;return{ready:e,unready:t-e,total:t}}get bundleInfo(){const e={ready:0,total:0},t=this.status?.display?.readyBundles;if(t&&t.includes("/")){const n=t.split("/");if(2===n.length&&parseInt(n[0])>=0&&parseInt(n[1])>=0)return e.ready=parseInt(n[0]),e.total=parseInt(n[1]),e}return e.noValidData=!0,e}get mgmt(){const e=this.$getters["byId"](r.Mc.CLUSTER,this.metadata?.labels?.[i.Hs.CLUSTER_NAME]);return e}get basicNorman(){const e=this.$rootGetters["rancher/byId"](r.k$.CLUSTER,this.metadata?.labels?.[i.Hs.CLUSTER_NAME]);return e}get norman(){return this.basicNorman?this.basicNorman:this.$dispatch("rancher/find",{type:r.k$.CLUSTER,id:this.metadata.labels[i.Hs.CLUSTER_NAME]},{root:!0})}async normanClone(){const e=await this.norman;return this.$dispatch("rancher/clone",{resource:e},{root:!0})}get groupByLabel(){const e=this.metadata.namespace;return e?this.$rootGetters["i18n/t"]("resourceTable.groupLabel.workspace",{name:(0,s.ZD)(e)}):this.$rootGetters["i18n/t"]("resourceTable.groupLabel.notInAWorkspace")}get customLabels(){const e=[];if(this.labels)for(const t in this.labels){const[n]=t.split("/");i.uf.includes(n)||t===i.qt.PROVIDER||e.push(`${t}=${this.labels[t]}`)}return e}async saveYaml(e){await this._saveYaml(e);const t=u().load(e),n=await this.normanClone();n.setLabels(t.metadata.labels),n.setAnnotations(t.metadata.annotations),await n.save()}}},11173:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(92043),i=n(38823),a=n(35664),o=n(76978),s=n(25184);class l extends s.A{applyDefaults(){const e=this.spec||{};e.selector=e.selector||{},e.selector.matchExpressions=e.selector.matchExpressions||[],(0,o.hZ)(this,"spec",e)}get targetClusters(){const e=this.$getters["byId"](a.Hs.WORKSPACE,this.metadata.namespace),t=(0,i.C6)(this.spec?.selector?.matchLabels||{},this.spec?.selector?.matchExpressions||[]);if(!t.length)return e.clusters;const n=(0,i.wC)(e.clusters,t);return n}get groupByLabel(){const e=this.metadata.namespace;return e?this.$rootGetters["i18n/t"]("resourceTable.groupLabel.workspace",{name:(0,r.ZD)(e)}):this.$rootGetters["i18n/t"]("resourceTable.groupLabel.notInAWorkspace")}get clusterInfo(){const e=this.status?.clusterCount||0,t=this.status?.nonReadyClusterCount||0,n=e-t;return{ready:n,unready:t,total:e}}get details(){const e=[{label:"Clusters Ready",content:`${this.clusterInfo.ready} of ${this.clusterInfo.total}`}];return e}}},67424:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(92043),i=n(25184);class a extends i.A{get groupByLabel(){const e=this.metadata.namespace;return e?this.$rootGetters["i18n/t"]("resourceTable.groupLabel.workspace",{name:(0,r.ZD)(e)}):this.$rootGetters["i18n/t"]("resourceTable.groupLabel.notInAWorkspace")}}},65751:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return k}});var r=n(38823),i=n(20246),a=n.n(i),o=n(3514),s=n.n(o),l=n(92043),c=n(35664),u=n(2841),d=n(68851),h=n(76978),p=n(25184),f=n(73883),m=n(27278);function g(e,t){e[t]||(e[t]=0),e[t]++}function v(e){return`${e.kind}/${e.namespace}/${e.name}`}function b(e,t){return!!e&&!!e.find((e=>e.type===t&&"true"===e.status.toLowerCase()))}class y{resourceId(e){return e.namespace?`${e.namespace}/${e.name}`:e.name}resourceType(e){const t=e.kind.toLowerCase();return e.apiVersion&&"v1"!==e.apiVersion?`${e.apiVersion.split("/",2)[0]}.${t}`:t}resourcesFromBundleDeploymentStatus(e){const t=(e?.resources||[]).reduce(((e,t)=>(e[v(t)]=Object.assign({state:f.jv.READY},t),e)),{}),n=[];for(const r of e?.modifiedStatus||[]){const e=r.missing?f.jv.MISSING:r.delete?f.jv.ORPHANED:f.jv.MODIFIED,i=t[v(r)];i?i.state=e:n.push(Object.assign({state:e},r))}for(const r of e?.nonReadyStatus||[]){const e=r.summary?.state||f.jv.UNKNOWN,n=t[v(r)];n&&(n.state=e)}return n.concat(Object.values(t))}resourcesFromBundleStatus(e){const t=(e.resourceKey||[]).reduce(((e,t)=>{const n=v(t);return e[n]||(e[n]={r:t,count:{}}),g(e[n].count,f.jv.READY),e}),{});for(const n of e.summary?.nonReadyResources||[]){for(const e of n.modifiedStatus||[]){const n=v(e);t[n]||(t[n]={r:e,count:{}}),e.missing?g(t[n].count,f.jv.MISSING):e.delete?(t[n].count[f.jv.READY]--,g(t[n].count,f.jv.ORPHANED)):(t[n].count[f.jv.READY]--,g(t[n].count,f.jv.MODIFIED))}for(const e of n.nonReadyStatus||[]){const n=v(e),r=e.summary?.state||f.jv.UNKNOWN;t[n].count[f.jv.READY]--,g(t[n].count,r)}}return Object.values(t).reduce(((e,t)=>{const{r:n,count:r}=t;for(const i in r)for(let t=0;t<r[i];t++)e.push(Object.assign({state:i},n));return e}),[])}clusterIdFromBundleDeploymentLabels(e){const t=e?.[u.Hs.CLUSTER_NAMESPACE],n=e?.[u.Hs.CLUSTER];return`${t}/${n}`}bundleIdFromBundleDeploymentLabels(e){const t=e?.[u.Hs.BUNDLE_NAMESPACE],n=e?.[u.Hs.BUNDLE_NAME];return`${t}/${n}`}bundleDeploymentState(e){return e.status?.appliedDeploymentId!==e.spec.deploymentId?b(e.status?.conditions,"Deployed")?f.jv.WAIT_APPLIED:f.jv.ERR_APPLIED:e.status?.ready?e.spec.deploymentId!==e.spec.stagedDeploymentId?f.jv.OUT_OF_SYNC:e.status?.nonModified?f.jv.READY:f.jv.MODIFIED:f.jv.NOT_READY}}const w=new y;var E=w;function _(e){return!!e.match(/^[a-f0-9]{40,}$/i)}function S(e){if(s()(e))return{total:0,states:{}};const{desiredReady:t,...n}=e,r=Object.entries(n).reduce(((e,[t,n])=>(e[(0,f.hb)(t)]=n,e)),{});return{total:t,states:r}}class k extends p.A{applyDefaults(){const e=this.spec||{},t=this.metadata||{};t.namespace=this.$rootGetters["workspace"],e.repo=e.repo||"",e.branch||e.revision||(e.branch="master"),e.paths=e.paths||[],e.clientSecretName=e.clientSecretName||null,e["correctDrift"]={enabled:!1},(0,h.hZ)(this,"spec",e),(0,h.hZ)(this,"metadata",t)}get _availableActions(){const e=super._availableActions;return(0,d.PT)(e,0,{action:"pause",label:"Pause",icon:"icon icon-pause",bulkable:!0,enabled:!!this.links.update&&!this.spec?.paused}),(0,d.PT)(e,1,{action:"unpause",label:"Unpause",icon:"icon icon-play",bulkable:!0,enabled:!!this.links.update&&!0===this.spec?.paused}),(0,d.PT)(e,2,{action:"forceUpdate",label:"Force Update",icon:"icon icon-refresh",bulkable:!0,enabled:!!this.links.update}),(0,d.PT)(e,3,{divider:!0}),e}pause(){this.spec.paused=!0,this.save()}unpause(){this.spec.paused=!1,this.save()}forceUpdate(){const e=this.spec.forceSyncGeneration||1;this.spec.forceSyncGeneration=e+1,this.save()}get state(){return!0===this.spec?.paused?"paused":this.metadata?.state?.name||"unknown"}get targetClusters(){const e=this.$getters["byId"](c.Hs.WORKSPACE,this.metadata.namespace),t=e?.clusters||[],n=e?.clusterGroups||[];if("fleet-local"===e?.id){const e=(0,d.jq)(n,"id","fleet-local/default");return e?e.targetClusters:[]}if(!this.spec.targets)return[];const i=[];for(const a of this.spec.targets)if(a.clusterName){const e=(0,d.jq)(t,"metadata.name",a.clusterName);e&&(0,d.PG)(i,e)}else if(a.clusterGroup){const e=(0,d.jq)(n,{"metadata.namespace":this.metadata.namespace,"metadata.name":a.clusterGroup});e&&(0,d.cn)(i,e.targetClusters)}else if(a.clusterGroupSelector){const e=(0,r._R)(a.clusterGroupSelector),t=(0,r.wC)(n,e);for(const n of t)(0,d.cn)(i,n.targetClusters)}else if(a.clusterSelector){const e=(0,r._R)(a.clusterSelector),n=(0,r.wC)(t,e);(0,d.cn)(i,n)}return i}get github(){const e=this.spec.repo.match(/^https?:\/\/github\.com\/(.*?)(\.git)?\/*$/);return!!e&&e[1]}get repoIcon(){return this.github?"icon icon-github":""}get repoDisplay(){let e=this.spec.repo;return e?(e=e.replace(/.git$/,""),e=e.replace(/^https:\/\//,""),e=e.replace(/\/+$/,""),this.github?this.github:e):null}get commitDisplay(){const e=this.spec,t=this.status?.commit?.substr(0,7);return e&&e.repo?e.revision&&_(e.revision)?e.revision.substr(0,7):e.revision?e.revision:e.branch?e.branch+(t?` @ ${t}`:""):t:null}get targetInfo(){let e=null,t=null,n=null,i=null;const o=this.spec.targets||[];if(i=a().dump(o),"[]\n"===i&&(i="# - name:\n# clusterSelector:\n# matchLabels:\n# foo: bar\n# matchExpressions:\n# - key: foo\n# op: In\n# values: [bar, baz]\n# clusterGroup: foo\n# clusterGroupSelector:\n# matchLabels:\n# foo: bar\n# matchExpressions:\n# - key: foo\n# op: In\n# values: [bar, baz]\n"),"fleet-local"===this.metadata.namespace)e="local";else if(o.length){if(1===o.length){const i=o[0];if(Object.keys(i).length>1)e="advanced";else if(i.clusterGroup)n=i.clusterGroup,e||(e="clusterGroup");else if(i.clusterName)e="cluster",t=i.clusterName;else if(i.clusterSelector)if(0===Object.keys(i.clusterSelector).length)e="all";else{const n=(0,r.C6)(i.clusterSelector.matchLabels,i.clusterSelector.matchExpressions);1===n.length&&n[0].key===u.Hs.CLUSTER_NAME&&"In"===n[0].operator&&1===n[0].values.length&&(t=n[0].values[0],e||(e="cluster"))}}}else e="none";return e||(e="advanced"),{mode:e,modeDisplay:this.t(`fleet.gitRepo.targetDisplay."${e}"`),cluster:t,clusterGroup:n,advanced:i}}get groupByLabel(){const e=this.metadata.namespace;return e?this.$rootGetters["i18n/t"]("resourceTable.groupLabel.workspace",{name:(0,l.ZD)(e)}):this.$rootGetters["i18n/t"]("resourceTable.groupLabel.notInAWorkspace")}get bundles(){return this.$getters["matching"](c.Hs.BUNDLE,{"fleet.cattle.io/repo-name":this.name},this.namespace)}get bundleDeployments(){const e=this.$getters["all"](c.Hs.BUNDLE_DEPLOYMENT);return e.filter((e=>e.metadata?.labels?.["fleet.cattle.io/repo-name"]===this.name))}get allBundlesStatuses(){const e=this.bundleDeployments.reduce(((e,t)=>{const n=E.bundleIdFromBundleDeploymentLabels(t.metadata?.labels),r=(0,f.hb)(E.bundleDeploymentState(t));return e[n]||(e[n]={total:0,states:{[f.jv.READY]:0}}),e[n].total++,e[n].states[r]||(e[n].states[r]=0),e[n].states[r]++,e}),{}),t=Object.keys(e);return t.reduce(((t,n)=>{const r=(0,f.aB)(e[n].states);return t.states[r]||(t.states[r]=0),t.states[r]++,t}),{total:t.length,states:{[f.jv.READY]:0}})}get allResourceStatuses(){return S(this.status?.resourceCounts||{})}statusResourceCountsForCluster(e){return this.targetClusters.some((t=>t.id===e))?this.bundleDeployments.filter((t=>E.clusterIdFromBundleDeploymentLabels(t.metadata?.labels)===e)).map((e=>E.resourcesFromBundleDeploymentStatus(e.status))).flat().map((e=>e.state)).reduce(((e,t)=>(e[t]||(e[t]=0),e[t]++,e.desiredReady++,e)),{desiredReady:0}):{}}get resourcesStatuses(){const e=this.bundleDeployments||[],t=(this.targetClusters||[]).reduce(((e,t)=>(e[t.id]=t,e)),{}),n=[];for(const r of e){const e=E.clusterIdFromBundleDeploymentLabels(r.metadata?.labels),i=t[e];if(!i)continue;const a=E.resourcesFromBundleDeploymentStatus(r.status);a.forEach((e=>{const t=E.resourceId(e),r=E.resourceType(e),a=e.state,o=(0,f.uU)(a).replace("text-","bg-"),s=(0,f.ch)(a),l={name:`c-cluster-product-resource${e.namespace?"-namespace":""}-id`,params:{product:m.o,cluster:i.metadata.labels[u.Hs.CLUSTER_NAME],resource:r,namespace:e.namespace,id:e.name}},c=`${i.id}-${r}-${e.namespace}-${e.name}`;n.push({key:c,tableKey:c,id:t,type:r,clusterId:i.id,state:(0,f.hb)(a),clusterName:i.nameDisplay,apiVersion:e.apiVersion,kind:e.kind,name:e.name,namespace:e.namespace,creationTimestamp:e.createdAt,stateBackground:o,stateDisplay:s,stateSort:(0,f.gs)(o,s),detailLocation:l})}))}return n}get clusterInfo(){const e=this.status?.readyClusters||0,t=this.status?.desiredReadyClusters||0;return{ready:e,unready:t-e,total:t}}clusterState(e){const t=this.statusResourceCountsForCluster(e);return(0,f.aB)(t)||f.jv.ACTIVE}get clustersList(){return this.$getters["all"](c.Hs.CLUSTER)}}},97030:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(35664),i=n(76978),a=n(97219);class o extends a["default"]{get canViewInApi(){return!1}get nameDisplay(){return this.principalNameDisplay}get principalNameDisplay(){const e=this.$rootGetters["rancher/byId"](r.k$.PRINCIPAL,this.id);return`${e.name} (${e.displayType})`}get detailLocation(){const e=(0,i.o8)(this._detailLocation);return e.params.id=this.id,e}get globalRoleBindings(){return this.$rootGetters["management/all"](r.Mc.GLOBAL_ROLE_BINDING).filter((e=>this.id===e.groupPrincipalName))}get _availableActions(){return[{action:"goToEdit",label:this.t("action.edit"),icon:"icon icon-edit",enabled:!0},{action:"promptUnassignGroupRoles",altAction:"unassignGroupRoles",label:this.t("action.unassign"),icon:"icon icon-trash",bulkable:!0,enabled:!!this.globalRoleBindings.length,bulkAction:"unassignGroupRoles"}]}promptUnassignGroupRoles(e=this){const t=Array.isArray(e)?e:[e],n=this.$rootGetters["management/all"](r.Mc.GLOBAL_ROLE_BINDING).filter((e=>t.find((t=>t.id===e.groupPrincipalName))));this.$dispatch("promptRemove",n)}async unassignGroupRoles(e=this){const t=Array.isArray(e)?e:[e],n=this.$rootGetters["management/all"](r.Mc.GLOBAL_ROLE_BINDING).filter((e=>t.find((t=>t.id===e.groupPrincipalName))));await Promise.all(n.map((e=>e.remove()))),this.$dispatch("promptRemove",null)}}},7899:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(25184),i=n(35664);class a extends r.A{applyDefaults(){this.spec||(this["spec"]={helmApiVersion:"monitoring.cattle.io/v1alpha1"},this["metadata"]={name:"project-monitoring"})}get projectId(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](i.CU),{projectId:n}=t.find((e=>e.id===this.metadata.namespace));return n}get projectDisplayName(){const e=this.$rootGetters["currentCluster"]?.id,t=this.$rootGetters["management/byId"](i.Mc.PROJECT,`${e}/${this.projectId}`);return t?.spec.displayName}get namespaces(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](i.CU),n=t.filter((e=>e.projectId===this.projectId));return[...n]}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${i.fj.PROJECTHELMCHART}"`,{count:1})?.trim()}}},72183:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(25184),i=n(2841);class a extends r.A{applyDefaults(){const e=this.spec||{config:JSON.stringify({cniVersion:"0.3.1",name:"",type:"bridge",bridge:"",promiscMode:!0,vlan:"",ipam:{}})};this["spec"]=e}get parseConfig(){try{return JSON.parse(this.spec.config)||{}}catch(e){return{}}}get isIpamStatic(){return"static"===this.parseConfig.ipam?.type}get clusterNetwork(){return this?.metadata?.labels?.[i.rk.CLUSTER_NETWORK]}get vlanType(){const e=this.metadata?.labels||{},t=e[i.rk.NETWORK_TYPE];return t}get vlanId(){return"UntaggedNetwork"===this.vlanType?"N/A":this.parseConfig.vlan}get customValidationRules(){const e=[{nullable:!1,path:"metadata.name",required:!0,minLength:1,maxLength:63,translationKey:"harvester.fields.name"}];return e}get connectivity(){const e=this.metadata?.annotations||{},t=e[i.rk.NETWORK_ROUTE];let n={};if("UntaggedNetwork"===this.vlanType)return"N/A";try{n=JSON.parse(t||"{}")}catch{return"invalid"}const r=n.connectivity;return"false"===r?"inactive":"true"===r?"active":r}}},83448:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(81147);class i extends r["default"]{get doneRoute(){return"c-cluster-manager-driver-kontainerdriver"}get _availableActions(){const e=[{action:"activate",label:this.t("action.activate"),icon:"icon icon-play",bulkable:!0,bulkAction:"activateBulk",enabled:!!this.links.update&&!this.active},{action:"deactivate",label:this.t("action.deactivate"),icon:"icon icon-pause",bulkable:!0,bulkAction:"deactivateBulk",enabled:!!this.links.update&&!!this.active,weight:-1},{divider:!0},{action:"viewInApi",enabled:!0,icon:"icon icon-external-link",label:this.t("action.viewInApi")},{divider:!0},{action:"goToEdit",label:this.t("action.edit"),icon:"icon icon-edit",bulkable:!1,enabled:!!this.links.update&&!this.builtin},{action:"promptRemove",altAction:"remove",bulkAction:"promptRemove",label:this.t("action.remove"),bulkable:!0,icon:"icon icon-delete",enabled:!!this.links.remove,weight:-10}];return e}deactivate(e=[this]){this.$dispatch("promptModal",{componentProps:{drivers:e,driverType:"kontainerDrivers"},component:"DeactivateDriverDialog"})}deactivateBulk(e){this.$dispatch("promptModal",{componentProps:{drivers:e,driverType:"kontainerDrivers"},component:"DeactivateDriverDialog"})}activate(){return this.$dispatch("rancher/request",{url:`v3/kontainerDrivers/${escape(this.id)}?action=activate`,method:"post"},{root:!0})}async activateBulk(e){await Promise.all(e.map((e=>this.$dispatch("rancher/request",{url:`v3/kontainerDrivers/${escape(e.id)}?action=activate`,method:"post"},{root:!0}))))}}},78694:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(35664),i=n(82438),a=n.n(i),o=n(21766);class s extends o["default"]{get allOutputs(){return this.$rootGetters["cluster/all"](r.cm.CLUSTER_OUTPUT)||[]}get outputs(){if(!this.allOutputs)return[];const e=this?.spec?.globalOutputRefs||this?.spec?.outputRefs||[];return this.allOutputs.filter((t=>e.includes(t.name)))}get outputProviders(){const e=this.outputs.flatMap((e=>e.providers));return a()(e)||[]}get customValidationRules(){return[{path:"spec",validators:["flowOutput"]}]}}},63331:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(44931);class i extends r["default"]{}},21766:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c},matchRuleIsPopulated:function(){return l}});var r=n(35664),i=n(76978),a=n(82438),o=n.n(a),s=n(25184);function l(e){return!!e&&(!(!e.labels||!Object.keys(e.labels).length)||(!!e.hosts?.length||(!!e.container_names?.length||!!e.namespaces?.length)))}class c extends s.A{applyDefaults(){(0,i.hZ)(this,"spec",this.spec||{}),(0,i.hZ)(this.spec,"match",this.spec.match||[]),(0,i.hZ)(this.spec,"filters",this.spec.filters||[]),(0,i.hZ)(this.spec,"localOutputRefs",this.spec.localOutputRefs||[]),(0,i.hZ)(this.spec,"globalOutputRefs",this.spec.globalOutputRefs||[])}get canCustomEdit(){if(!this.spec?.match?.length)return!0;let e=!0;for(const t of this.spec.match)if(l(t.select)&&l(t.exclude)){e=!1;break}return e}get allOutputs(){return this.$rootGetters["cluster/all"](r.cm.OUTPUT)||[]}get allClusterOutputs(){return this.$rootGetters["cluster/all"](r.cm.CLUSTER_OUTPUT)||[]}get outputs(){const e=this.spec?.localOutputRefs||[];return this.allOutputs.filter((t=>e.includes(t.name)))}get outputsSortable(){const e=this.outputs.map((e=>e.nameDisplay));return e.sort(),e.join("")}get clusterOutputs(){const e=this.spec?.globalOutputRefs||[];return this.allClusterOutputs?this.allClusterOutputs.filter((t=>e.includes(t.name))):[]}get clusterOutputsSortable(){const e=this.clusterOutputs.map((e=>e.nameDisplay));return e.sort(),e.join("")}get providersDisplay(){const e=[...this.outputs,...this.clusterOutputs],t=e.flatMap((e=>e.providersDisplay));return o()(t)||[]}get customValidationRules(){return[{path:"spec",validators:["flowOutput:verifyLocal"]}]}}},44931:function(e,t,n){"use strict";n.r(t),n.d(t,{PROVIDERS:function(){return i},default:function(){return a}});var r=n(25184);const i=[{name:"awsElasticsearch",labelKey:"logging.outputProviders.awsElasticsearch",default:{endpoint:{}}},{name:"azurestorage",labelKey:"logging.outputProviders.azurestorage",default:{}},{name:"cloudwatch",labelKey:"logging.outputProviders.cloudwatch",default:{}},{name:"datadog",labelKey:"logging.outputProviders.datadog",default:{}},{name:"elasticsearch",labelKey:"logging.outputProviders.elasticsearch",default:{}},{name:"file",labelKey:"logging.outputProviders.file",default:{}},{name:"forward",labelKey:"logging.outputProviders.forward",default:{servers:[{}]}},{name:"gelf",labelKey:"logging.outputProviders.gelf",default:{}},{name:"gcs",labelKey:"logging.outputProviders.gcs",default:{}},{name:"kafka",labelKey:"logging.outputProviders.kafka",default:{format:{type:"json"}}},{name:"kinesisStream",labelKey:"logging.outputProviders.kinesisStream",default:{}},{name:"logdna",labelKey:"logging.outputProviders.logdna",default:{}},{name:"logz",labelKey:"logging.outputProviders.logz",default:{endpoint:{}}},{name:"loki",labelKey:"logging.outputProviders.loki",default:{configure_kubernetes_labels:!0}},{name:"newrelic",labelKey:"logging.outputProviders.newrelic",default:{}},{name:"opensearch",labelKey:"logging.outputProviders.opensearch",default:{}},{name:"redis",labelKey:"logging.outputProviders.redis",default:{port:6379,db_number:0,ttl:0}},{name:"splunkHec",labelKey:"logging.outputProviders.splunkHec",default:{}},{name:"sumologic",labelKey:"logging.outputProviders.sumologic",default:{}},{name:"syslog",labelKey:"logging.outputProviders.syslog",default:{}},{name:"s3",labelKey:"logging.outputProviders.s3",default:{}}];class a extends r.A{get canCustomEdit(){return this.allProvidersSupported}get providers(){const e=this.spec||{};return Object.keys(e).filter((e=>"loggingRef"!==e))}get providersDisplay(){return this.providers.map((e=>{const t=this.t(`logging.outputProviders.${e}`);return t||this.t("logging.outputProviders.unknown")}))}isSupportedProvider(e){return!!i.find((t=>t.name===e))}get allProvidersSupported(){return this.providers.every(this.isSupportedProvider)}get providersSortable(){const e=[...this.providersDisplay];return e.sort(),e.join("")}get text(){return this.nameDisplay}get url(){return{name:"c-cluster-product-resource-namespace-id",params:{resource:this.type,id:this.name,namespace:this.namespace}}}get customValidationRules(){return[{path:"spec.logdna",validators:["logdna"]}]}}},78277:function(e,t,n){"use strict";n.r(t),n.d(t,{configType:function(){return a},default:function(){return s}});var r=n(68851),i=n(25184);const a={activedirectory:"ldap",azuread:"oauth",openldap:"ldap",freeipa:"ldap",ping:"saml",adfs:"saml",keycloak:"saml",okta:"saml",shibboleth:"saml",googleoauth:"oauth",local:"",github:"oauth",keycloakoidc:"oidc",genericoidc:"oidc"},o={keycloakoidc:"keycloak",genericoidc:"openid"};class s extends i.A{get _availableActions(){const e=super._availableActions;return(0,r.PT)(e,0,{action:"disable",label:"Disable",icon:"icon icon-spinner",enabled:!0===this.enabled}),(0,r.PT)(e,1,{divider:!0}),e}get nameDisplay(){return this.$rootGetters["i18n/withFallback"](`model.authConfig.name."${this.id}"`,null,this.provider)}get provider(){return this.$rootGetters["i18n/withFallback"](`model.authConfig.provider."${this.id}"`,null,this.id)}get configType(){return a[this.id]}get sideLabel(){return this.$rootGetters["i18n/withFallback"](`model.authConfig.description."${this.configType}"`,null,this.configType)}get icon(){try{return n(82360)(`./${o[this.id]||this.id}.svg`)}catch(e){return""}}get state(){return this.enabled?"active":"inactive"}}},16544:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return x}});var r=n(2841),i=n(35664),a=n(68851),o=n(6198),s=n(95799),l=n(78347),c=n(20246),u=n.n(c),d=n(88339),h=n(50667),p=n(76978),f=n(11518);n(2722),n(92043),n(9262),n(50025),n(83288),n(74302);function m(e){const t=e?.metadata?.labels?.[r.qt.PROVIDER]||e?.status?.provider;return t===i.BN}var g=n(25184),v=n(97707),b=n(44660),y=n(91462),w=n(48881),E=n(4364);const _="#707070",S={};function k(e,t,n=[]){const r=`${e}Type`,i=`${e}Id`;return n.find((e=>e[r]===t))?.[i]}class x extends g.A{get details(){const e=[{label:"Provisioner",content:this.provisionerDisplay},{label:"Machine Provider",content:this.machineProviderDisplay},{label:"Kubernetes Version",content:this.kubernetesVersion}];return e}get _availableActions(){const e=super._availableActions;return(0,a.PT)(e,0,{action:"openShell",label:this.t("nav.shell"),icon:"icon icon-terminal",enabled:!!this.links.shell}),(0,a.PT)(e,1,{action:"downloadKubeConfig",bulkAction:"downloadKubeConfigBulk",label:this.t("nav.kubeconfig.download"),icon:"icon icon-download",bulkable:!0,enabled:this.$rootGetters["isRancher"]&&this.hasAction("generateKubeconfig")}),(0,a.PT)(e,2,{action:"copyKubeConfig",label:this.t("cluster.copyConfig"),bulkable:!1,enabled:this.$rootGetters["isRancher"]&&this.hasAction("generateKubeconfig"),icon:"icon icon-copy"}),e}get canDelete(){return this.hasLink("remove")&&!this?.spec?.internal}get machinePools(){const e=this.$getters["all"](i.Mc.NODE_POOL);return e.filter((e=>e.spec?.clusterName===this.id))}get provisioner(){return this.status?.driver?this.status.driver:"imported"}get machineProvider(){const e=this.machinePools?.[0]?.provider;return e?e.replace(/config$/i,"").toLowerCase():this.spec?.internal?"local":null}get rkeTemplateVersion(){return this.spec?.clusterTemplateRevisionName}get providerForEmberParam(){let e;const t=b.KONTAINER_TO_DRIVER[(this.provisioner||"").toLowerCase()]||this.provisioner;return e="rancherKubernetesEngine"===t?this.machinePools?.[0]?this.machinePools[0]?.nodeTemplate?.spec?.driver||null:"custom":this.driver?this.driver:t&&t.endsWith("v2")?t:"import",e}get emberEditPath(){let e;this.rkeTemplateVersion&&(e=this.rkeTemplateVersion);const t=this.providerForEmberParam,n={};t&&(n["provider"]=t),e&&(n["clusterTemplateRevision"]=e),"import"===t&&(0,p.Im)(this.eksConfig)&&(0,p.Im)(this.gkeConfig)?n.importProvider="other":("amazoneks"===t&&!(0,p.Im)(this.eksConfig)||"gke"===t&&!(0,p.Im)(this.gkeConfig))&&(n.importProvider=b.KONTAINER_TO_DRIVER[t]),this.clusterTemplateRevisionId&&(n.clusterTemplateRevision=this.clusterTemplateRevisionId);const r=(0,h.g)(`/c/${escape(this.id)}/edit`,n);return r}get groupByLabel(){return this.$rootGetters["i18n/t"]("resourceTable.groupLabel.notInAWorkspace")}get isReady(){return this.hasCondition("Connected")?this.isCondition("Connected"):this.isCondition("Ready")}get kubernetesVersionRaw(){const e=this.status?.version?.gitVersion,t=this.spec?.[`${this.provisioner}Config`]?.kubernetesVersion;return e||t}get kubernetesVersion(){return this.kubernetesVersionRaw||this.$rootGetters["i18n/t"]("generic.provisioning")}get kubernetesVersionBase(){return this.kubernetesVersion.replace(/[+-].*$/,"")}get kubernetesVersionExtension(){return this.kubernetesVersion.match(/[+-]/)?this.kubernetesVersion.replace(/^.*([+-])/,"$1"):""}get providerOs(){return this.status?.provider.endsWith(".windows")?"windows":"linux"}get providerOsLogo(){return n(82360)(`./${this.providerOs}.svg`)}get workerOSs(){const e=this.status?.windowsWorkerCount,t=this.status?.linuxWorkerCount;if(e||t){const n=[];return e&&n.push(v.CB),t&&n.push(v["do"]),n}return this.providerOs===v.CB?[v.CB]:[v["do"]]}get isLocal(){return!0===this.spec?.internal}get isHarvester(){return m(this)}get isHostedKubernetesProvider(){const e=["AKS","EKS","GKE"];return e.includes(this.provisioner)}get providerLogo(){let e=this.status?.provider||"kubernetes";this.isHarvester&&(e=f.T);const t=e.split(".")[0],r=S[t]||t;let i;try{i=n(53588)(`./${t}.svg`)}catch(a){E.warn(`Can not find provider logo for provider ${r}`),i=n(9144)}return i}get providerMenuLogo(){return this.providerLogo}get providerNavLogo(){return this.providerLogo}get iconColor(){return this.metadata?.annotations[r.XH.COLOR]}get badge(){const e=this.metadata?.annotations?.[r.XH.ICON_TEXT],t=this.metadata?.annotations?.[r.XH.TEXT];if(!e&&!t)return;let n=this.iconColor||_;const i=this.metadata?.annotations[r.XH.ICON_TEXT]||"";let a;try{a=(0,l.hk)((0,l.H0)(n.trim()))}catch(o){n=_,a=(0,l.hk)((0,l.H0)(n))}return{text:t||void 0,color:n,textColor:a,iconText:i.substr(0,3)}}get scope(){return this.isLocal?r.W8._MANAGEMENT:r.W8._DOWNSTREAM}setClusterNameLabel(e){if(!this.ownerReferences?.length&&this.metadata?.labels?.[i.Hs.CLUSTER_NAME]!==this.id)return this.metadata=this.metadata||{},this.metadata.labels=this.metadata.labels||{},this.metadata.labels[i.Hs.CLUSTER_NAME]=this.id,e?this.save():void 0}get availableCpu(){const e=(0,s.ao)(this.status.requested?.cpu),t=(0,s.ao)(this.status.allocatable?.cpu);return t>0&&e>=0?Math.max(0,t-e):null}get availableMemory(){const e=(0,s.ao)(this.status.requested?.memory),t=(0,s.ao)(this.status.allocatable?.memory);return t>0&&e>=0?Math.max(0,t-e):null}openShell(){this.$dispatch("wm/open",{id:`kubectl-${this.id}`,label:this.$rootGetters["i18n/t"]("wm.kubectlShell.title",{name:this.nameDisplay}),icon:"terminal",component:"KubectlShell",attrs:{cluster:this,pod:{}}},{root:!0})}async generateKubeConfig(){const e=await this.doAction("generateKubeconfig");return e.config}async downloadKubeConfig(){const e=await this.generateKubeConfig();(0,o.PE)(`${this.nameDisplay}.yaml`,e,"application/yaml")}async downloadKubeConfigBulk(e){let t={},n=!0;await(0,d.hF)(e,10,((e,r)=>e.generateKubeConfig().then((e=>{const r=u().load(e);n?(t=r,n=!1):(t.clusters.push(...r.clusters),t.users.push(...r.users),t.contexts.push(...r.contexts))})))),delete t["current-context"];const r=u().dump(t);(0,o.PE)("kubeconfig.yaml",r,"application/yaml")}async copyKubeConfig(){try{const e=await this.generateKubeConfig();e&&await(0,w.e)(e)}catch{}}async fetchNodeMetrics(){const e=await this.$dispatch("cluster/findAll",{type:i.NW},{root:!0}),t=await this.$dispatch("cluster/findAll",{type:i.NW},{root:!0}),n=e.some((e=>e.hasARole&&!e.isWorker)),r=t.filter((t=>{const r=e.find((e=>e.id===t.id));return r&&(!n||r.isWorker)})),a={cpu:0,memory:0};return(0,p.Im)(r)?null:r.reduce(((e,t)=>(e.cpu+=(0,s.ao)(t?.usage?.cpu),e.memory+=(0,s.ao)(t?.usage?.memory),e)),a)}get nodes(){return this.$getters["all"](i.Mc.NODE).filter((e=>e.id.startsWith(this.id)))}get provClusterId(){const e=!!this.spec?.rancherKubernetesEngineConfig,t=this.isLocal||e||this.isHostedKubernetesProvider?"to":"from",n=k(t,i.qt.RANCHER_CLUSTER,this.metadata?.relationships);return n||k("to"===t?"from":"to",i.qt.RANCHER_CLUSTER,this.metadata?.relationships)}get pinned(){return this.$rootGetters["prefs/get"](y.Hu).includes(this.id)}pin(){const e=this.$rootGetters["prefs/get"](y.Hu)||[];(0,a.PG)(e,this.id),this.$dispatch("prefs/set",{key:y.Hu,value:e},{root:!0})}unpin(){const e=this.$rootGetters["prefs/get"](y.Hu)||[];(0,a.Gj)(e,this.id),this.$dispatch("prefs/set",{key:y.Hu,value:e},{root:!0})}}},54820:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(2841),i=n(14220),a=n(35664),o=n(82614),s=n(11518);class l extends o.A{detailPageHeaderActionOverride(e){if(e===i.YQ)return this.t("members.createActionLabel")}get canCustomEdit(){return!1}get canYaml(){return!1}get canClone(){return!1}get user(){return this.$rootGetters["management/byId"](a.Mc.USER,this.userName)}get principal(){const e=this.principalId.replace(/\//g,"%2F");return this.$dispatch("rancher/find",{type:a.k$.PRINCIPAL,id:this.principalId,opt:{url:`/v3/principals/${e}`}},{root:!0})}get syncPrincipal(){return this.$rootGetters["rancher/byId"](a.k$.PRINCIPAL,this.principalId)}get principalId(){return this.principalName||this.userPrincipalName||this.groupPrincipalName||""}get nameDisplay(){return this.user?.nameDisplay||this.userName||this.syncPrincipal?.nameDisplay||this.principalId}get roleDisplay(){return this.roleTemplate?.nameDisplay}get roleDescription(){return this.roleTemplate?.description}get roleTemplate(){return this.$rootGetters["management/byId"](a.Mc.ROLE_TEMPLATE,this.roleTemplateName)}get cluster(){return this.$rootGetters["management/byId"](a.Mc.CLUSTER,this.clusterName)}get clusterDisplayName(){return this.cluster?this.cluster.nameDisplay:this.clusterName}get clusterDetailLocation(){if(this.cluster)return this.cluster.detailLocation;const e="c-cluster-product-resource-id",t={resource:a.Mc.CLUSTER_ROLE_TEMPLATE_BINDING,id:this.clusterName,product:"explorer"};return{name:e,params:t}}get listLocation(){return this.$rootGetters["currentProduct"].inStore===s.T?{name:`${s.T}-c-cluster-members`}:{name:"c-cluster-product-members"}}get doneOverride(){return this.listLocation}get parentLocationOverride(){return this.listLocation}get subSearch(){return[{nameDisplay:this.nameDisplay}]}get isSystem(){return!this.metadata.annotations[r.Rw]}get norman(){return(async()=>{const e=await this.principal,t="group"===e?.principalType?"groupPrincipalId":"userPrincipalId";return this.$dispatch("rancher/create",{type:a.k$.CLUSTER_ROLE_TEMPLATE_BINDING,roleTemplateId:this.roleTemplateName,[t]:e?.id,clusterId:this.clusterName,id:this.id?.replace("/",":")},{root:!0})})()}async save(){const e=await this.norman;return e.save()}async remove(){const e=await this.norman;await e.remove({url:`/v3/clusterRoleTemplateBindings/${e.id}`})}}},58975:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(11518),i=n(82614);class a extends i.A{get state(){return this.enabled?"active":"off"}get enabled(){return null!==this.status.lockedValue?this.status.lockedValue:null!==this.spec.value?this.spec.value:this.status.default}get restartRequired(){return!this.status.dynamic}get canYaml(){return!1}get canDisable(){return this.canUpdate&&!r.r.includes(this.id)}get _availableActions(){const e=super._availableActions,t=this.enabled,n={action:"toggleFeatureFlag",label:t?this.t("action.deactivate"):this.t("action.activate"),icon:"icon icon-edit",enabled:t?this.canDisable:this.canUpdate};return n.enabled=n.enabled&&null===this.status.lockedValue,e.unshift(n),e}toggleFeatureFlag(e=this){this.$dispatch("promptUpdate",e)}}},61504:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(35664),i=n(68851),a=n(82614);class o extends a.A{get isLocal(){return"fleet-local"===this.metadata.name}get counts(){const e=this.$rootGetters["management/all"](r.i2)[0].counts||{},t=this.metadata.name,n={clusterGroups:e[r.Hs.CLUSTER_GROUP]?.namespaces?.[t]?.count||0,clusters:e[r.Hs.CLUSTER]?.namespaces?.[t]?.count||0,gitRepos:e[r.Hs.GIT_REPO]?.namespaces?.[t]?.count||0};return n}get clusters(){const e=this.$getters["all"](r.Hs.CLUSTER),t=(0,i.WP)(e,"metadata.namespace",this.metadata.name);return t}get clusterGroups(){const e=this.$getters["all"](r.Hs.CLUSTER_GROUP),t=(0,i.WP)(e,"metadata.namespace",this.metadata.name);return t}get repos(){const e=this.$getters["all"](r.Hs.GIT_REPO),t=(0,i.WP)(e,"namespace",this.id);return t}get basicNorman(){return this.id?this.$dispatch("rancher/find",{id:this.id,type:r.k$.FLEET_WORKSPACES},{root:!0}):this.$dispatch("rancher/create",{type:r.k$.FLEET_WORKSPACES,name:this.metadata.name},{root:!0})}get norman(){return(async()=>{const e=await this.basicNorman;return e.annotations=this.metadata.annotations,e.labels=this.metadata.labels,e})()}async save(){const e=await this.norman;await e.save()}waitForWorkspaceSchema(e=2e4,t){return this.waitForTestFn((()=>{const e=this.$rootGetters["management/schemaFor"](r.Hs.WORKSPACE);return t?t(e):e}),this.$rootGetters["i18n/t"]("fleet.workspaces.timeout"),e)}async remove(){const e=await this.norman;await e.remove()}}},33707:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{}},14606:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return m}});var r=n(2841),i=n(35664),a=n(4799),o=n(68851),s=n(76978),l=n(63928),c=n(14220);const u="user-base",d="user",h="admin",p=[u,h,d],f=a.SUBTYPE_MAPPING.GLOBAL.key;class m extends l.A{get customValidationRules(){return[{path:"rules",validators:[`roleTemplateRules:${this.type}`],nullable:!1,type:"array"}]}get details(){const e=this._details;return e.unshift({label:this.t("resourceDetail.detailTop.name"),content:(0,s.Jt)(this,"name")}),e}get nameDisplay(){const e=`rbac.globalRoles.role.${this.id}.label`,t=this.displayName||this.metadata?.name||this.id;return this.$rootGetters["i18n/withFallback"](e,t)}get descriptionDisplay(){return this.description||this.metadata?.annotations?.[r.tC]||this.$rootGetters["i18n/withFallback"](`rbac.globalRoles.role.${this.id}.description`,this.t("rbac.globalRoles.unknownRole.description"))}get isSpecial(){return p.includes(this.id)}get subtype(){return f}get default(){return!!this.newUserDefault}get allResources(){return this.$getters["all"](i.yx).filter((e=>e.attributes?.kind))}get globalResources(){return this.allResources.filter((e=>e.attributes.group.includes(a.CATTLE_API_GROUP)))}get resources(){return(0,o.sb)(this.globalResources.map((e=>e.attributes?.resource))).sort()}get listLocation(){return{name:"c-cluster-auth-roles",hash:`#${f}`}}get detailLocation(){return{...this._detailLocation,name:"c-cluster-auth-roles-resource-id"}}get doneOverride(){return this.listLocation}get parentLocationOverride(){return this.listLocation}get basicNorman(){return this.id?this.$dispatch("rancher/find",{id:this.id,type:i.k$.GLOBAL_ROLE},{root:!0}):this.$dispatch("rancher/create",{type:i.k$.GLOBAL_ROLE,name:this.displayName},{root:!0})}get norman(){return(async()=>{const e=await this.basicNorman;return e.rules=this.rules,e.newUserDefault=this.newUserDefault,e.id=this.id,e.name=this.displayName,e.description=this.description,e.inheritedClusterRoles=this.inheritedClusterRoles,e})()}get canCreate(){const e=this.$getters["schemaFor"](this.type);return e?.resourceMethods.find((e=>a.CREATE_VERBS.has(e)))}goToClone(e={}){const t=this.detailLocation;t.query={...t.query,[c.g]:c.dT,[c.AS]:c.xz,roleContext:f,...e},this.currentRouter().push(t)}async save(){const e=await this.norman;for(const t of e.rules)t.nonResourceURLs&&t.nonResourceURLs.length?(delete t.resources,delete t.apiGroups):delete t.nonResourceURLs;return e.save()}async remove(){const e=await this.norman;await e.remove()}}},97621:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(35664),i=n(82614);class a extends i.A{get nameDisplay(){const e=this.$getters["byId"](r.Mc.GLOBAL_ROLE,this.globalRoleName);if(!e)return this.globalRoleName;const t=this.groupPrincipalName?this._displayPrincipal:this._displayUser;return t?`${e.displayName} (${t})`:e.displayName}get _displayPrincipal(){const e=this.$rootGetters["rancher/byId"](r.k$.PRINCIPAL,this.groupPrincipalName);return e?`${e.name} - ${e.displayType}`:null}get _displayUser(){return this.user}get basicNorman(){return this.id?this.$dispatch("rancher/find",{id:this.id,type:r.k$.GLOBAL_ROLE_BINDING},{root:!0}):this.$dispatch("rancher/create",{type:r.k$.GLOBAL_ROLE_BINDING,name:this.displayName},{root:!0})}get norman(){return(async()=>{const e=await this.basicNorman;return e.globalRoleId=this.globalRoleName,e.userId=this.userName,e.newUserDefault=this.newUserDefault,e.groupPrincipalId=this.groupPrincipalName,e})()}async save(){const e=await this.norman;return e.save()}async remove(){const e=await this.norman;await e.remove()}}},44660:function(e,t,n){"use strict";n.r(t),n.d(t,{DRIVER_TO_IMPORT:function(){return l},KONTAINER_TO_DRIVER:function(){return s},default:function(){return c}});var r=n(82614);const i=["rke","rancherkubernetesengine"],a=["amazoneks","googlegke","azureaks"],o=["amazoneks","googlegke","azureaks"],s={amazonelasticcontainerservice:"amazoneks",azurekubernetesservice:"azureaks",aks:"azureaksv2",eks:"amazoneksv2",gke:"googlegkev2",googlekubernetesengine:"googlegke",huaweicontainercloudengine:"huaweicce",huaweiengine:"huaweicce",linodekubernetesengine:"linodelke",lke:"linodelke",lkeengine:"linodelke",okeengine:"oracleoke",oke:"oracleoke",oraclecontainerengine:"oracleoke",rke2:"rke2",tencentengine:"tencenttke",tencentkubernetesengine:"tencenttke",aliyunkubernetescontainerservice:"aliyun",baiducloudcontainerengine:"baidu",opentelekomcloudcontainerengine:"otccce"},l={googlegke:"gke",amazoneks:"eks",azureaks:"aks"};class c extends r.A{get showCreate(){return!i.includes(this.driverName)&&!!this.spec.active}get showImport(){return this.showCreate&&o.includes(this.driverName)}get emberCreatePath(){let e=this.driverName;return a.includes(e)&&!e.endsWith("v2")&&(e+="v2"),`/g/clusters/add/launch/${e}`}get emberImportPath(){const e=l[this.driverName]||this.driverName;return`/g/clusters/add/launch/import?importProvider=${e}`}get driverName(){if(!this.spec.builtIn){const e=this.status?.displayName?.toLowerCase();if(e)return s[e]||e}return s[this.id]||this.id}}},77917:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p}});var r=n(2841),i=n(35664),a=n(27278),o=n(44458),s=n(68851),l=n(6198),c=n(24576),u=n.n(c),d=n(82614),h=n(61843);class p extends d.A{get _availableActions(){const e=super._availableActions,t={action:"downloadKeys",enabled:!!this.norman?.links?.nodeConfig,icon:"icon icon-fw icon-download",label:this.t("node.actions.downloadNodeConfig")},n={action:"scaleDown",bulkAction:"scaleDown",enabled:!!this.canScaleDown,icon:"icon icon-minus icon-fw",label:this.t("node.actions.scaleDown"),bulkable:!0};return(0,s.PT)(e,0,{divider:!0}),(0,s.PT)(e,0,t),(0,s.PT)(e,0,n),e}get kubeNodeName(){return this.metadata.labels[r.Do.NODE_NAME]}get mgmtClusterId(){return this.id.substring(0,this.id.indexOf("/"))}get kubeNodeDetailLocation(){return this.kubeNodeName?{name:"c-cluster-product-resource-id",params:{cluster:this.mgmtClusterId,product:a.o,resource:i.NW,id:this.kubeNodeName}}:null}get isWorker(){return this.spec.worker}get isControlPlane(){return this.spec.controlPlane}get isEtcd(){return this.spec.etcd}get roles(){const{isControlPlane:e,isWorker:t,isEtcd:n}=this;return(0,o.listNodeRoles)(e,t,n,this.t("generic.all"))}get pool(){const e=this.spec.nodePoolName.replace(":","/");return this.$rootGetters["management/byId"](i.Mc.NODE_POOL,e)}get norman(){const e=this.id.replace("/",":");return this.$rootGetters["rancher/byId"](i.k$.NODE,e)}get canDelete(){return this.norman?.hasLink("remove")}get canUpdate(){return this.hasLink("update")&&this.norman?.hasLink("update")}remove(){return this.norman?.remove()}downloadKeys(){const e=this.norman?.links?.nodeConfig;e&&(0,l.Is)(e)}async scaleDown(e=this){this.$dispatch("promptModal",{resources:e,component:"ScaleMachineDownDialog",modalWidth:"450px"})}get provisioningCluster(){return this.$getters["all"](i.qt.RANCHER_CLUSTER).find((e=>e.mgmtClusterId===this.mgmtClusterId))}get doneOverride(){return this.provisioningCluster?.detailLocation}get canClone(){return!1}get addresses(){return this.status?.addresses||this.status?.internalNodeStatus?.addresses||[]}get internalIp(){const e=this.addresses.find((({type:e})=>e===i.FV.INTERNAL_IP));return e?e.address:!e&&this.status.rkeNode?this.status.rkeNode.internalAddress:this.t("generic.none")}get externalIp(){const e=u()(this.addresses,(e=>"ExternalIP"===e.type))?.address;return e||(!e&&this.status.rkeNode?this.status.rkeNode.address:this.t("generic.none"))}get canScaleDown(){if(!this.isEtcd&&!this.isControlPlane)return!0;const e=this.norman?.actions?.scaledown;return e&&(0,h.notOnlyOfRole)(this,this.provisioningCluster?.nodes)}}},68959:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(35664),i=n(74302),a=n(82614),o=n(61843);class s extends a.A{get nodeTemplateId(){return(this.spec?.nodeTemplateName||"").replace(/:/,"/")}get nodeTemplate(){return this.$getters["byId"](r.Mc.NODE_TEMPLATE,this.nodeTemplateId)}get provider(){return this.nodeTemplate?.provider}get providerName(){return this.nodeTemplate?.nameDisplay}get providerDisplay(){return this.nodeTemplate?.providerDisplay}get providerLocation(){return this.nodeTemplate?.providerLocation}get providerSize(){return this.nodeTemplate?.providerSize}get provisioningCluster(){return this.$getters["all"](r.qt.RANCHER_CLUSTER).find((e=>e.name===this.spec.clusterName))}get doneOverride(){return{name:"c-cluster-product-resource-namespace-id",params:{resource:r.qt.RANCHER_CLUSTER,namespace:this.provisioningCluster?.namespace,id:this.spec.clusterName}}}get scale(){return this.norman.quantity}scalePool(e){this.norman.quantity+=e,this.scaleTimer&&clearTimeout(this.scaleTimer),this.scaleTimer=setTimeout((()=>{try{this.norman.save()}catch(e){this.$dispatch("growl/fromError",{title:"Error scaling pool",error:e},{root:!0})}}),1e3)}get nodes(){const e=this.id.replace("/",":");return this.$getters["all"](r.Mc.NODE).filter((t=>t.spec.nodePoolName===e))}get nodeSummary(){const e={pending:0,unavailable:0,ready:0};return this.nodes?this.nodes.reduce(((e,t)=>(t.metadata.state.error?e.unavailable++:t.metadata.state.transitioning?e.pending++:"active"!==t.state?e.unavailable++:e.ready++,e)),{...e}):e}get desired(){return this.spec?.quantity||0}get pending(){return this.nodeSummary.pending}get ready(){return this.nodeSummary.ready}get unavailable(){return this.nodeSummary.unavailable}get stateParts(){const e=[{label:"Pending",color:"bg-info",textColor:"text-info",value:this.pending,sort:1},{label:"Unavailable",color:"bg-error",textColor:"text-error",value:this.unavailable,sort:3},{label:"Ready",color:"bg-success",textColor:"text-success",value:this.ready,sort:4}].filter((e=>e.value>0));return(0,i.Ul)(e,"sort:desc")}get norman(){const e=this.id.replace("/",":");return this.$rootGetters["rancher/byId"](r.k$.NODE_POOL,e)}get canDelete(){return this.norman?.hasLink("remove")}get canUpdate(){return this.norman?.hasLink("update")}get isControlPlane(){return!0===this.spec?.controlPlane}get isEtcd(){return!0===this.spec?.etcd}canScaleDownPool(){return!this.isEtcd&&!this.isControlPlane||(0,o.notOnlyOfRole)(this,this?.provisioningCluster?.nodes)}remove(){return this.norman?.remove()}}},57075:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(95799),i=n(82614);const a=[{driver:"aliyunecs",size:{key:"instanceType"},location:{getDisplayProperty(e){return`${e.providerConfig?.region}${e.providerConfig?.zone}`}}},{driver:"amazonec2",size:{key:"instanceType"},location:{getDisplayProperty(e){return`${e.providerConfig?.region}${e.providerConfig?.zone}`}}},{driver:"azure",size:{key:"size"},location:{key:"location"}},{driver:"digitalocean",size:{key:"size"},location:{key:"region"}},{driver:"exoscale",size:{key:"instanceProfile"},location:{key:"availabilityZone"}},{driver:"linode",size:{key:"instanceType"},location:{key:"region"}},{driver:"oci",size:{key:"nodeShape"},location:{}},{driver:"packet",size:{key:"plan"},location:{key:"facilityCode"}},{driver:"pnap",size:{key:"serverType"},location:{key:"serverLocation"}},{driver:"rackspace",size:{key:"flavorId"},location:{key:"region"}},{driver:"vmwarevsphere",size:{getDisplayProperty(e){const t=(0,r.Mo)(1048576*e.providerConfig?.memorySize,1024,"iB");return`${t}, ${e.providerConfig?.cpuCount} Core`}},location:{key:null}}];class o extends i.A{get provider(){const e=Object.keys(this),t=e.filter((e=>null!==this[e])).find((e=>e.endsWith("Config")));return t?t.replace(/config$/i,""):null}get providerConfig(){return this[`${this.provider}Config`]}get providerDisplay(){const e=(this.provider||"").toLowerCase();return this.$rootGetters["i18n/withFallback"](`cluster.provider."${e}"`,null,"generic.unknown",!0)}get providerLocation(){if(this.provider){const e=a.find((e=>e.driver===this.provider));if(e?.location){if(e.location.getDisplayProperty)return e.location.getDisplayProperty(this);const t=this.providerConfig?.[e.location.key];if(t)return t}}return this.providerConfig?.region||this.t("node.list.poolDescription.noLocation")}get providerSize(){if(this.provider){const e=a.find((e=>e.driver===this.provider));if(e?.size){if(e.size.getDisplayProperty)return e.size.getDisplayProperty(this);const t=this.providerConfig?.[e.size.key];if(t)return t}}return this.providerConfig?.size||this.t("node.list.poolDescription.noSize")}}},10311:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(63928);class i extends r.A{}},24220:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});var r=n(2841),i=n(35664),a=n(82614),o=n(3514),s=n.n(o),l=n(11518);function c(e,t){return t.forEach((t=>{e[t]?.limit&&!s()(e[t].limit)&&Object.keys(e[t].limit).forEach((n=>{e[t].limit[n]||delete e[t].limit[n]})),e[t]?.usedLimit&&!s()(e[t].usedLimit)&&Object.keys(e[t].usedLimit).forEach((n=>{e[t].usedLimit[n]||delete e[t].usedLimit[n]})),e[t]?.limit&&s()(e[t].limit)&&(e[t].limit=null),e[t]?.usedLimit&&s()(e[t].usedLimit)&&(e[t].usedLimit=null),e[t]&&!s()(e[t])&&Object.keys(e[t]).every((n=>null===e[t][n]))&&(e[t]=null)})),e}class u extends a.A{get isSystem(){return"true"===this.metadata?.labels?.[r.MW]}get isDefault(){return"true"===this.metadata?.labels?.[r.ol]}get namespaces(){if(!this.$rootGetters["isRancher"])return[];const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](i.CU);return t.filter((e=>e.projectId===this.metadata.name))}get description(){return this.spec?.description}get doneOverride(){return this.listLocation}get listLocation(){return this.$rootGetters["currentProduct"].inStore===l.T?{name:`${l.T}-c-cluster-projectsnamespaces`}:{name:"c-cluster-product-projectsnamespaces"}}get _detailLocation(){const e=super._detailLocation;return this.$rootGetters["currentProduct"].inStore===l.T&&(e.name=`${l.T}-${e.name}`.replace("-product","")),e}get parentLocationOverride(){return this.listLocation}async save(e){const t=await this.norman,n=await t.save({replace:e});return n}async remove(){const e=await this.norman;await e.remove(...arguments),await this.$dispatch("management/findAll",{type:i.Mc.PROJECT,opt:{force:!0}},{root:!0})}get norman(){return this.id?this.normanEditProject:this.normanNewProject}get normanNewProject(){return(async()=>{const e=c(this.spec,["resourceQuota","namespaceDefaultResourceQuota"]),t=await this.$dispatch("rancher/create",{type:i.k$.PROJECT,name:this.spec.displayName,description:this.spec.description,annotations:this.metadata.annotations,labels:this.metadata.labels,clusterId:this.$rootGetters["currentCluster"].id,creatorId:this.$rootGetters["auth/principalId"],containerDefaultResourceLimit:this.spec.containerDefaultResourceLimit},{root:!0});return t.setAnnotations(this.metadata.annotations),t.setLabels(this.metadata.labels),t.setResourceQuotas(e),t})()}get normanEditProject(){return(async()=>{const e=await this.$dispatch("rancher/find",{type:i.k$.PROJECT,id:this.id.replace("/",":")},{root:!0}),t=c(this.spec,["resourceQuota","namespaceDefaultResourceQuota"]);return e.setAnnotations(this.metadata.annotations),e.setLabels(this.metadata.labels),e.setResourceQuotas(t),e.description=this.spec.description,e.name=this.spec.displayName,e.containerDefaultResourceLimit=this.spec.containerDefaultResourceLimit,e})()}get canUpdate(){return super.canUpdate||this.canUpdateProjectBindings}get canUpdateProjectBindings(){const e=this.$rootGetters["rancher/schemaFor"](i.k$.PROJECT_ROLE_TEMPLATE_BINDING);return e?.collectionMethods.includes("POST")}get canEditYaml(){return!this.schema?.resourceMethods?.find((e=>"blocked-PUT"===e))&&super.canUpdate}get confirmRemove(){return!0}}},91673:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(2841),i=n(35664),a=n(82614);class o extends a.A{get canCustomEdit(){return!1}get canYaml(){return!1}get canClone(){return!1}get user(){return this.$rootGetters["management/byId"](i.Mc.USER,this.userName)}get principal(){const e=this.principalId.replace(/\//g,"%2F");return this.$dispatch("rancher/find",{type:i.k$.PRINCIPAL,id:this.principalId,opt:{url:`/v3/principals/${e}`}},{root:!0})}get principalId(){return this.principalName||this.userPrincipalName||this.groupPrincipalName||""}get nameDisplay(){return this.user?.nameDisplay}get projectId(){return this.projectName?.replace(":","/")}get clusterId(){return this.projectName.substring(0,this.projectName.lastIndexOf(":"))}get project(){return this.$rootGetters["management/byId"](i.Mc.PROJECT,this.projectId)}get cluster(){return this.$rootGetters["management/byId"](i.Mc.CLUSTER,this.clusterId)}get projectDisplayName(){return this.project?this.project.nameDisplay:this.projectName}get clusterDisplayName(){return this.cluster?this.cluster.nameDisplay:this.clusterId}get userAvatar(){return{nameDisplay:this.nameDisplay,userName:this.user.username,avatarSrc:this.user.avatarSrc}}get projectDetailLocation(){if(this.project)return this.project.detailLocation;const e="c-cluster-product-resource-id",t={resource:i.Mc.PROJECT,id:this.projectId,product:"explorer"};return{name:e,params:t}}get clusterDetailLocation(){if(this.cluster)return this.cluster.detailLocation;const e="c-cluster-product-resource-id",t={resource:i.Mc.CLUSTER_ROLE_TEMPLATE_BINDING,id:this.clusterName,product:"explorer"};return{name:e,params:t}}get roleTemplate(){return this.$rootGetters["management/byId"](i.Mc.ROLE_TEMPLATE,this.roleTemplateName)}get roleDisplay(){return this.roleTemplate.nameDisplay}get listLocation(){return{name:"c-cluster-explorer-project-members"}}get isSystem(){return!this.metadata.annotations[r.Rw]}get norman(){return(async()=>{const e=await this.principal,t="group"===e?.principalType?"groupPrincipalId":"userPrincipalId";return this.$dispatch("rancher/create",{type:i.k$.PROJECT_ROLE_TEMPLATE_BINDING,roleTemplateId:this.roleTemplateName,[t]:e?.id,projectId:this.projectName,projectRoleTemplateId:"",id:this.id?.replace("/",":")},{root:!0})})()}async save(){const e=await this.norman;return e.save()}async remove(){const e=await this.norman;await e.remove({url:`/v3/projectRoleTemplateBindings/${e.id}`})}}},4799:function(e,t,n){"use strict";n.r(t),n.d(t,{CATTLE_API_GROUP:function(){return l},CREATE_VERBS:function(){return d},SUBTYPE_MAPPING:function(){return c},VERBS:function(){return u},default:function(){return h}});var r=n(76978),i=n(2841),a=n(35664),o=n(63928),s=n(14220);const l=".cattle.io",c={GLOBAL:{key:"GLOBAL",type:"management.cattle.io.globalrole",defaultKey:"newUserDefault",id:"GLOBAL",labelKey:"rbac.roletemplate.subtypes.GLOBAL.label"},CLUSTER:{key:"CLUSTER",type:"management.cattle.io.roletemplate",context:"cluster",defaultKey:"clusterCreatorDefault",id:"CLUSTER",labelKey:"rbac.roletemplate.subtypes.CLUSTER.label"},NAMESPACE:{key:"NAMESPACE",type:"management.cattle.io.roletemplate",context:"project",defaultKey:"projectCreatorDefault",id:"NAMESPACE",labelKey:"rbac.roletemplate.subtypes.NAMESPACE.label"},RBAC_ROLE:{key:"RBAC_ROLE",type:"rbac.authorization.k8s.io.role",id:"RBAC_ROLE",labelKey:"rbac.roletemplate.subtypes.RBAC_ROLE.label"},RBAC_CLUSTER_ROLE:{key:"RBAC_CLUSTER_ROLE",type:"rbac.authorization.k8s.io.clusterrole",id:"RBAC_CLUSTER_ROLE",labelKey:"rbac.roletemplate.subtypes.RBAC_CLUSTER_ROLE.label"}},u=["create","delete","get","list","patch","update","watch"],d=new Set(["PUT","blocked-PUT"]);class h extends o.A{get customValidationRules(){return[{path:"rules",validators:[`roleTemplateRules:${this.type}`],nullable:!1,type:"array"}]}get details(){const e=this._details;return e.unshift({label:this.t("resourceDetail.detailTop.name"),content:(0,r.Jt)(this,"name")},{label:this.t("resourceDetail.detailTop.description"),content:this.metadata?.annotations?.[i.tC]}),e}get state(){return this.locked?"locked":this.metadata?.state?.name||"unknown"}get subtype(){return this._subtype?this._subtype:this.type===c.CLUSTER.type&&this.context===c.CLUSTER.context?c.CLUSTER.key:this.type===c.NAMESPACE.type&&this.context===c.NAMESPACE.context?c.NAMESPACE.key:null}updateSubtype(e){this["_subtype"]=e,this.context=c[e].context}get default(){const e=c[this.subtype]?.defaultKey;return!!this[e]}updateDefault(e){const t=c[this.subtype].defaultKey;this[t]=e}get listLocation(){return{name:"c-cluster-auth-roles",hash:`#${this.subtype}`}}get detailLocation(){return{...this._detailLocation,name:"c-cluster-auth-roles-resource-id"}}get doneOverride(){return this.listLocation}get parentLocationOverride(){return this.listLocation}get basicNorman(){return this.id?this.$dispatch("rancher/find",{id:this.id,type:a.k$.ROLE_TEMPLATE},{root:!0}):this.$dispatch("rancher/create",{type:a.k$.ROLE_TEMPLATE,name:this.displayName},{root:!0})}get norman(){return(async()=>{const e=await this.basicNorman;return e.rules=this.rules,e.locked=this.locked,e.clusterCreatorDefault=this.clusterCreatorDefault||!1,e.projectCreatorDefault=this.projectCreatorDefault||!1,e.context=this.context,e.description=this.description,e.roleTemplateIds=this.roleTemplateNames,e})()}get canCreate(){const e=this.$getters["schemaFor"](this.type);return e?.resourceMethods.find((e=>d.has(e)))}goToClone(e={}){const t=this.detailLocation;t.query={...t.query,[s.g]:s.dT,[s.AS]:s.xz,roleContext:this.subtype,...e},this.currentRouter().push(t)}async save(){const e=await this.norman;for(const t of e.rules)t.nonResourceURLs&&t.nonResourceURLs.length?(delete t.resources,delete t.apiGroups):delete t.nonResourceURLs;return e.save()}async remove(){const e=await this.norman;await e.remove()}}},76061:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(9262),i=n(82614),a=n(68094),o=n(11518),s=n(14220);class l extends i.A{get fromEnv(){return"env"===(this.source||"").toLowerCase()}get _availableActions(){const e=["cloneYaml","download","goToEditYaml","goToViewYaml","goToViewConfig"],t=r.Df[this.id];let n=super._availableActions;t?.readOnly&&e.push("goToEdit"),n=n.filter((t=>!e.includes(t.action)));const i=n.find((e=>"goToEdit"===e.action));return i&&(i.label=this.t("advancedSettings.edit.label")),n}get customValidationRules(){const e=[];return(0,a.L6)(this.metadata.name)&&e.push({path:"value",validators:["required","https","url","trailingForwardSlash"]}),e}goToEdit(e={}){this.$rootGetters["currentProduct"].inStore===o.T?(location.name=`${o.T}-c-cluster-brand`,location.params={cluster:this.$rootGetters["currentCluster"].id,product:o.T},location.query={...location.query,[s.g]:s.G5,[s.AS]:s.xz,...e},this.currentRouter().push(location)):super.goToEdit()}}},69754:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(35664),i=n(82614),a=n(23464),o=n.n(a);class s extends i.A{constructor(e,t,n=null,r=!1){const i=e.description;super(e,t,n,r),this.description=i}cleanResource(e){const t=e.description,n=(0,i.T)(e);return n._description=t,n}get isSystem(){for(const e of this.principalIds||[])if(e.startsWith("system://"))return!0;return!1}get isCurrentUser(){const e=this.$rootGetters["auth/principalId"];return!!(this.principalIds||[]).find((t=>t===e))}get principals(){return this.principalIds.map((e=>this.$rootGetters["rancher/byId"](r.k$.PRINCIPAL,e))).filter((e=>e))}get nameDisplay(){return this.displayName||this.username||this.id}get labelForSelect(){const e=this.nameDisplay,t=this.id;return e===t?t:`${e} (${t})`}get provider(){const e=this.principalIds||[];let t,n=!1,r=!0,i="";for(const a of e){const e=a.indexOf(":"),t=a.substr(0,e).toLowerCase().split("_")[0];"system"===t?n=!0:"local"===t||(r=!1,i=i?"multiple":t)}return t=n?"system":r?"local":i,t}get providerDisplay(){return this.$rootGetters["i18n/withFallback"](`model.authConfig.provider."${this.provider}"`,null,this.provider)}get userLastLogin(){return 1e3*this.metadata?.labels?.["cattle.io/last-login"]||0}get userDisabledIn(){return 1e3*this.metadata?.labels?.["cattle.io/disable-after"]||0}get userDisabledInDisplay(){return"inactive"===this.state?null:this.userDisabledIn}get userDeletedIn(){return 1e3*this.metadata?.labels?.["cattle.io/delete-after"]||0}get state(){return!1===this.enabled?"inactive":this.metadata?.state?.name||"unknown"}get stateDisplay(){switch(this.state){case"inactive":return this.t("user.state.inactive");case"active":return this.t("user.state.active");case"unknown":return this.t("user.state.unknown");default:return this.state}}get description(){return this._description}set description(e){this._description=e}toJSON(){const e=super.toJSON();return e.description=this._description,delete e._description,e}async save(e){const t=await this.$dispatch("clone",{resource:this});return delete t.canRefreshAccess,t._save(e)}async setEnabled(e){const t=await this.$dispatch("rancher/clone",{resource:this.norman},{root:!0});t.enabled=e,await t.save()}async activate(){await this.setEnabled(!0)}async activateBulk(e){await Promise.all(e.map((e=>e.setEnabled(!0))))}async deactivate(){await this.setEnabled(!1)}async deactivateBulk(e){await Promise.all(e.map((e=>e.setEnabled(!1))))}async refreshGroupMembership(){const e=await this.$dispatch("rancher/find",{type:r.k$.USER,id:this.id},{root:!0});await e.doAction("refreshauthprovideraccess")}canActivate(e){const t=e?"inactive"===this.state:"active"===this.state,n=this.hasLink("update");return t&&n&&!this.isCurrentUser}get _availableActions(){return[{action:"activate",label:this.t("action.enable"),icon:"icon icon-play",bulkable:!0,bulkAction:"activateBulk",enabled:this.canActivate(!0),weight:2},{action:"deactivate",label:this.t("action.disable"),icon:"icon icon-pause",bulkable:!0,bulkAction:"deactivateBulk",enabled:this.canActivate(!1),weight:1},{action:"refreshGroupMembership",label:this.t("authGroups.actions.refresh"),icon:"icon icon-refresh",enabled:this.canRefreshAccess},{divider:!0},...super._availableActions]}get details(){return[{label:this.t("user.detail.username"),formatter:"CopyToClipboard",content:this.username},{separator:!0},{label:this.t("tableHeaders.userLastLogin"),formatter:"LiveDate",formatterOpts:{addSuffix:!0,suffix:`${this.t("suffix.ago")} (${o()(this.userLastLogin)})`},content:this.userLastLogin},{label:this.t("tableHeaders.userDisabledIn"),formatter:"LiveDate",formatterOpts:{isCountdown:!0},content:this.userDisabledInDisplay},{label:this.t("tableHeaders.userDeletedIn"),formatter:"LiveDate",formatterOpts:{isCountdown:!0},content:this.userDeletedIn},...this._details]}get confirmRemove(){return!0}get norman(){return this.$rootGetters["rancher/byId"](r.k$.USER,this.id)}get canDelete(){return this.norman?.hasLink("remove")&&!this.isCurrentUser}get canUpdate(){return this.norman?.hasLink("update")}remove(){return this.norman?.remove()}}},95694:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(45858);class i extends r["default"]{}},86465:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(35664),i=n(95799),a=n(25184);class o extends a.A{get cpuUsage(){return(0,i.ao)(this?.usage?.cpu||"0")}get cpuCapacity(){return(0,i.ao)(this.$rootGetters[`${this.inStore}/byId`](r.NW,this.id)?.status?.allocatable?.cpu||"0")}get cpuUsagePercentage(){return(1e4*this.cpuUsage/this.cpuCapacity).toString()}get memoryUsage(){return(0,i.ao)(this?.usage?.memory||"0")}get memoryCapacity(){return(0,i.ao)(this.$rootGetters[`${this.inStore}/byId`](r.NW,this.id)?.status?.capacity?.memory||"0")}get memoryUsagePercentage(){return(1e4*this.ramUsage/this.ramCapacity).toString()}get storageUsage(){return(0,i.ao)(this.$rootGetters[`${this.inStore}/byId`](r.NW,this.id)?.status?.capacity?.["ephemeral-storage"])-(0,i.ao)(this.$rootGetters[`${this.inStore}/byId`](r.NW,this.id)?.status?.allocatable?.["ephemeral-storage"])}get storageTotal(){return(0,i.ao)(this.$rootGetters[`${this.inStore}/byId`](r.NW,this.id)?.status?.capacity?.["ephemeral-storage"])}get inStore(){return this.$rootGetters["currentProduct"].inStore}}},34858:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(25184),i=n(35664),a=n(14220),o=n(76978);class s extends r.A{applyDefaults(){if(this.spec)return this.spec;const e=this.spec?.route?.receivers||[],t={receivers:[...e],route:{receivers:this.spec?.route?.receivers||[],groupBy:this.spec?.route?.groupBy||[],groupWait:this.spec?.route?.groupWait||"30s",groupInterval:this.spec?.route?.groupInterval||"5m",repeatInterval:this.spec?.route?.repeatInterval||"4h",match:this.spec?.route?.match||{},matchRe:this.spec?.route?.matchRe||{}}};(0,o.hZ)(this,"spec",t)}get _availableActions(){const e=super._availableActions;return e}getReceiverActions(e){return e.filter((e=>{if(e.divider)return!0;switch(e.action){case"goToEdit":return!0;case"goToEditYaml":return!0;case"promptRemove":return!0;default:return!1}}))}get alertmanagerConfigDoneRouteName(){return"c-cluster-product-resource-namespace-id"}get _detailLocation(){return{name:this.alertmanagerConfigDoneRouteName,params:{cluster:this.$rootGetters["clusterId"],product:"monitoring",resource:i.Rp.ALERTMANAGERCONFIG,namespace:this.metadata?.namespace,id:this.name},hash:"#receivers",query:{as:"config"}}}getCreateReceiverRoute(){return{name:"c-cluster-monitoring-alertmanagerconfig-alertmanagerconfigid-receiver",params:{cluster:this.$rootGetters["clusterId"],alertmanagerconfigid:this.id},query:{mode:a.YQ,currentView:a.au}}}getReceiverDetailLink(e){return{name:"c-cluster-monitoring-alertmanagerconfig-alertmanagerconfigid-receiver",params:{cluster:this.$rootGetters["clusterId"],alertmanagerconfigid:this.id,receiverName:e},query:{mode:a.nW,receiverName:e,currentView:a.au}}}getEditReceiverYamlRoute(e,t){return{name:"c-cluster-monitoring-alertmanagerconfig-alertmanagerconfigid-receiver",params:{cluster:this.$rootGetters["clusterId"],alertmanagerconfigid:this.id},query:{mode:t||a.nW,receiverName:e,currentView:a.zD}}}getEditReceiverConfigRoute(e,t){return{name:"c-cluster-monitoring-alertmanagerconfig-alertmanagerconfigid-receiver",params:{cluster:this.$rootGetters["clusterId"],alertmanagerconfigid:this.id},query:{mode:t||a.nW,receiverName:e,currentView:a.au}}}}},67750:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{get _detailLocation(){const e=this.id?.replace(/.*\//,"");return{name:"c-cluster-monitoring-monitor-namespace-id",params:{cluster:this.$rootGetters["clusterId"],id:e,namespace:this.metadata.namespace},query:{resource:this.type}}}get doneOverride(){return{name:"c-cluster-monitoring-monitor",params:{cluster:this.$rootGetters["clusterId"]},query:{resource:this.type}}}}},61403:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{get _availableActions(){const e=super._availableActions.filter((e=>!this.metadata.name.includes(".")||!["goToEdit","goToEditYaml","goToClone"].includes(e.action)));return e}get customValidationRules(){return[{nullable:!1,path:"metadata.name",required:!0,translationKey:"generic.name",type:"dnsLabel"},{nullable:!1,path:"spec",required:!0,type:"array",validators:["ruleGroups"]},{nullable:!1,path:"spec.groups",required:!0,type:"array",validators:["groupsAreValid"]}]}}},57e3:function(e,t,n){"use strict";n.r(t),n.d(t,{RECEIVERS_TYPES:function(){return c},default:function(){return u}});var r=n(39589),i=n(76978),a=n(35664),o=n(20246),s=n.n(o),l=n(25184);const c=[{name:"slack",label:"monitoringReceiver.slack.label",title:"monitoringReceiver.slack.title",info:"monitoringReceiver.slack.info",key:"slack_configs",logo:n(69742)},{name:"email",label:"monitoringReceiver.email.label",title:"monitoringReceiver.email.title",key:"email_configs",logo:n(41778)},{name:"pagerduty",label:"monitoringReceiver.pagerduty.label",title:"monitoringReceiver.pagerduty.title",info:"monitoringReceiver.pagerduty.info",key:"pagerduty_configs",logo:n(75495)},{name:"opsgenie",label:"monitoringReceiver.opsgenie.label",title:"monitoringReceiver.opsgenie.title",key:"opsgenie_configs",logo:n(41778)},{name:"webhook",label:"monitoringReceiver.webhook.label",title:"monitoringReceiver.webhook.title",key:"webhook_configs",logo:n(94569),banner:"webhook.banner",addButton:"webhook.add"},{name:"custom",label:"monitoringReceiver.custom.label",title:"monitoringReceiver.custom.title",info:"monitoringReceiver.custom.info",key:"webhook_configs",logo:n(98283)}];class u extends l.A{get removeSerially(){return!0}remove(){return this.updateReceivers((e=>e.filter((e=>e.name!==this.spec?.name))))}async save(){const e=this.validationErrors(this);return(0,i.Im)(e)?(await this.updateReceivers((e=>{const t=e.find((e=>e.name===this.spec?.name));return t?Object.assign(t,this.spec):e.push(this.spec),e})),{}):Promise.reject(e)}get canUpdate(){return this.secret.canUpdate}get canCustomEdit(){return!0}get canCreate(){return(0,r.BA)(this.$rootGetters)}get canDelete(){return"null"!==this.id&&"null"!==!this.spec.name&&this.secret.canDelete}get canViewInApi(){return!1}get canYaml(){return!0}get _detailLocation(){return{name:"c-cluster-monitoring-route-receiver-id",params:{cluster:this.$rootGetters["clusterId"],id:this.id},query:{resource:this.type}}}get doneOverride(){return{name:"c-cluster-monitoring-route-receiver",params:{cluster:this.$rootGetters["clusterId"]},query:{resource:this.type}}}get receiverTypes(){const e=c.filter((e=>"custom"!==e.name&&this.spec[e.key]?.length>0)).map((e=>this.t(e.label))),t=c.map((e=>e.key)).filter((e=>"custom"!==e));t.push("name");const n=Object.keys(this.spec).filter((e=>!t.includes(e)));if(n.length>0){const t=this.t(c.find((e=>"custom"===e.name)).label);e.push(t)}return e}get updateReceivers(){return e=>(0,r._R)(this.$dispatch,"receivers",this.type,e)}saveYaml(e){const t=s().load(e);return Object.assign(this,t),this.save()}get customValidationRules(){const e=[{nullable:!1,path:"spec.name",required:!0,translationKey:"monitoring.receiver.fields.name"}];return e}get routes(){if(!this.$rootGetters["cluster/haveAll"](a.Rp.SPOOFED.ROUTE))throw new Error("The routes have not been loaded");return this.$rootGetters["cluster/all"](a.Rp.SPOOFED.ROUTE)}get hasDependentRoutes(){return!!this.routes.find((e=>e.spec.receiver===this.id))}get preventDeletionMessage(){return this.hasDependentRoutes?"There are still routes using this receiver. You cannot delete this receiver while it's in use.":null}}},55162:function(e,t,n){"use strict";n.r(t),n.d(t,{ROOT_NAME:function(){return u},default:function(){return d}});var r=n(76978),i=n(39589),a=n(35664);n(86565),n(68774);const o="monitoring";var s=n(20246),l=n.n(s),c=n(25184);const u="root";class d extends c.A{applyDefaults(){const e=this.spec||{};e.group_by=e.group_by||[],e.group_wait=e.group_wait||"30s",e.group_interval=e.group_interval||"5m",e.repeat_interval=e.repeat_interval||"4h",e.match=e.match||{},e.match_re=e.match||{},(0,r.hZ)(this,"spec",e)}get removeSerially(){return!0}remove(){return this.updateRoutes((e=>e.filter(((e,t)=>(0,i.Eb)(t)!==this.id))))}async save(){const e=this.validationErrors(this);return(0,r.Im)(e)?(await this.updateRoutes((e=>{const t=e.find(((e,t)=>(0,i.Eb)(t)===this.id));return t?Object.assign(t,this.spec):e.push(this.spec),e})),{}):Promise.reject(e)}get canUpdate(){return this.secret.canUpdate}get canCustomEdit(){return!0}get canCreate(){return(0,i.BA)(this.$rootGetters)&&(0,i.gb)(this.secret)}get canDelete(){return!this.isRoot&&this.secret.canDelete}get canViewInApi(){return!1}get canYaml(){return(0,i.gb)(this.secret)}get _detailLocation(){return{name:"c-cluster-monitoring-route-receiver-id",params:{cluster:this.$rootGetters["clusterId"],id:this.id},query:{resource:this.type}}}get doneOverride(){return{name:"c-cluster-monitoring-route-receiver",params:{cluster:this.$rootGetters["clusterId"]},query:{resource:this.type}}}get customValidationRules(){const e=[{nullable:!1,path:"spec.receiver",required:!0,translationKey:"monitoring.route.fields.receiver"},{path:"spec.group_wait",validators:["interval"],translationKey:"monitoring.route.fields.groupWait"},{path:"spec.group_interval",validators:["interval"],translationKey:"monitoring.route.fields.groupInterval"},{path:"spec.repeat_interval",validators:["interval"],translationKey:"monitoring.route.fields.repeatInterval"}];return this.isRoot||e.push({path:"spec",validators:["matching"]}),e}updateRoutes(e){return(0,i._R)(this.$dispatch,"route.routes",this.type,e)}get isRoot(){return this.id===u}saveYaml(e){const t=l().load(e);return Object.assign(this,t),this.save()}get receiverLink(){return{text:this.spec.receiver,to:{name:"c-cluster-product-resource-id",params:{resource:a.Rp.SPOOFED.RECEIVER,product:o,id:this.spec.receiver}}}}}},906:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{get _detailLocation(){const e=this.id?.replace(/.*\//,"");return{name:"c-cluster-monitoring-monitor-namespace-id",params:{cluster:this.$rootGetters["clusterId"],id:e,namespace:this.metadata.namespace},query:{resource:this.type}}}get doneOverride(){return{name:"c-cluster-monitoring-monitor",params:{cluster:this.$rootGetters["clusterId"]},query:{resource:this.type}}}}},67867:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r=n(71025),i=n(2841),a=n(35664),o=n(76978),s=n(92043),l=n(68851),c=n(25184),u=n(11518),d=n(45250);const h="pod-security.kubernetes.io/",p=["enforce","audit","warn"],f=["privileged","baseline","restricted"],m=(f[0],p.reduce(((e,t)=>[...e,`${h}${t}`]),[])),g=p.reduce(((e,t)=>[...e,`${h}${t}-version`]),[]),v=[...m,...g],b=Object.assign({},...v.map((e=>({[e]:"icon-pod_security"})))),y=e=>(0,d.filter)((0,d.keys)(e?.metadata?.labels),(e=>v.includes(e))),w=e=>y(e).length>0,E=e=>(0,d.reduce)(e?.metadata?.labels,((t,n,r)=>{const i=v.includes(r),a="-version",o=r.includes(a),l=e?.metadata?.labels[`${r}${a}`],c=l||"latest";return i&&!o?{...t,[r]:`${(0,s._R)(r.replace(h,""))} ${(0,s._R)(n)} (${c})`}:t}),{}),_=["c-","p-","user-","local"];class S extends c.A{applyDefaults(){(0,o.hZ)(this,"disableOpenApiValidation",!1)}get _availableActions(){const e=super._availableActions;return(0,l.PT)(e,0,{divider:!0}),this.istioInstalled&&((0,l.PT)(e,0,{action:"enableAutoInjection",label:this.t("namespace.enableAutoInjection"),bulkable:!0,bulkAction:"enableAutoInjection",enabled:!this.injectionEnabled,icon:"icon icon-plus",weight:2}),(0,l.PT)(e,0,{action:"disableAutoInjection",label:this.t("namespace.disableAutoInjection"),bulkable:!0,bulkAction:"disableAutoInjection",enabled:this.injectionEnabled,icon:"icon icon-minus",weight:1})),this.$rootGetters["isRancher"]&&!this.$rootGetters["isSingleProduct"]&&(0,l.PT)(e,0,{action:"move",label:this.t("namespace.move"),bulkable:!0,bulkAction:"move",enabled:!0,icon:"icon icon-fork",weight:3}),e}move(e=this){this.$dispatch("promptMove",e)}get isSystem(){return"true"===this.metadata?.annotations?.[i.eG]||(!!r.A.includes(this.metadata.name)||(!(!this.metadata.name.startsWith("cattle-")||!this.metadata.name.endsWith("-system"))||!!this.project&&this.project.isSystem))}get isFleetManaged(){return"true"===(0,o.Jt)(this,`metadata.labels."${i.Hs.MANAGED}"`)}get isObscure(){return _.some((e=>this.metadata.name.startsWith(e)))&&this.isSystem}get projectId(){const e=this.metadata?.annotations?.[i.yl]||"";return e.split(":")[1]||null}get project(){if(!this.projectId||!this.$rootGetters["isRancher"])return null;const e=this.$rootGetters["currentCluster"]?.id,t=this.$rootGetters["management/byId"](a.Mc.PROJECT,`${e}/${this.projectId}`);return t}get groupByLabel(){const e=this.project?.nameDisplay;return e?this.$rootGetters["i18n/t"]("resourceTable.groupLabel.project",{name:(0,s.ZD)(e)}):this.$rootGetters["i18n/t"]("resourceTable.groupLabel.notInAProject")}get projectNameSort(){return this.project?.nameSort||""}get istioInstalled(){const e=this.$rootGetters["cluster/schemaFor"](a.B9.GATEWAY);return!!e}get injectionEnabled(){return"enabled"===this.labels[i.B9.AUTO_INJECTION]}enableAutoInjection(e=this,t=!0){(0,l.cy)(e)||(e=[e]),e.forEach((e=>{!t&&e?.metadata?.labels?delete e.metadata.labels[i.B9.AUTO_INJECTION]:(e.metadata.labels||(e.metadata.labels={}),e.metadata.labels[i.B9.AUTO_INJECTION]="enabled"),e.save()}))}disableAutoInjection(e=this){this.enableAutoInjection(e,!1)}get confirmRemove(){return!0}get listLocation(){const e={name:this.$rootGetters["isRancher"]?"c-cluster-product-projectsnamespaces":"c-cluster-product-resource"};return this.$rootGetters["currentProduct"].inStore===u.T&&(e.name=`${u.T}-${e.name}`.replace("-product",""),e.params={resource:"namespace"}),e}get _detailLocation(){const e=super._detailLocation;return e}get parentLocationOverride(){return this.listLocation}get doneOverride(){return this.listLocation}get resourceQuota(){return JSON.parse(this.metadata.annotations[i._n]||'{"limit":{}}')}set resourceQuota(e){this.metadata.annotations[i._n]=JSON.stringify(e)}get detailTopTooltips(){return this.psaTooltipsDescription}get detailTopIcons(){return b}get hasSystemLabels(){return w(this)}get filteredSystemLabels(){return Object.entries(this.labels).reduce(((e,[t,n])=>(g.includes(t)||(e[t]=n),e)),{})}get systemLabels(){return y(this)}get psaTooltipsDescription(){return E(this)}cleanForNew(){const e=this.metadata?.labels?.[i.yl];super.cleanForNew(),e&&(this.metadata=this.metadata||{},this.metadata.labels=this.metadata.labels||{},this.metadata.labels[i.yl]=e)}get hideDetailLocation(){return!!this.$rootGetters["currentProduct"].hideNamespaceLocation}}},1835:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{applyDefaults(){this["spec"]={host:"",subsets:[],trafficPolicy:{loadBalancer:{simple:"ROUND_ROBIN"},connectionPool:{tcp:{},http:{}},outlierDetection:{},tls:{}}}}}},67462:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p},ingressFullPath:function(){return h}});var r=n(35664),i=n(24138),a=n.n(i),o=n(76978),s=n(3514),l=n.n(s),c=n(25184);function u(e){const t=e.tls||[];return t.flatMap((e=>e.hosts||[]))}function d(e,t){return u(e).includes(t)}function h(e,t,n={}){const r=e.spec,i=t.host||"",a=n.path||"";let o="";return i&&(o=d(r,i)?"https://":"http://"),`${o}${i}${a}`}class p extends c.A{get tlsHosts(){return u(this.spec)}get isTlsHost(){return e=>d(this.spec,e)}targetTo(e,t){if(!t)return null;const n=t.startsWith("ingress-"),i=`${this.namespace}/${t}`;if(n){const t=e.find((e=>e.id===i));return t?.detailLocation||""}return{name:"c-cluster-product-resource-namespace-id",params:{resource:r.YV,id:t,namespace:this.namespace}}}createRulesForListPage(e,t){const n=this.spec.rules||[];return n.flatMap((n=>{const r=n?.http?.paths||[];return r.map((r=>this.createPathForListPage(e,n,r,t)))}))}createPathForListPage(e,t,n,r){const i=(0,o.Jt)(n?.backend,this.serviceNamePath),s=this.fullPath(t,n);return{isUrl:a()(s)&&!s.includes("*"),pathType:n.pathType,fullPath:s,serviceName:i,serviceTargetTo:this.targetTo(e,i),certs:this.certLinks(t,r),targetLink:this.targetLink(e,i),port:(0,o.Jt)(n?.backend,this.servicePortPath)}}fullPath(e,t){return h(this,e,t)}certLink(e,t=[]){const n=e.secretName||this.t("ingress.rulesAndCertificates.defaultCertificate");let i;return e.secretName&&t.includes(n)&&(i={name:"c-cluster-product-resource-namespace-id",params:{resource:r.bB,id:n}}),{to:i,text:n,options:{internal:!0}}}certLinks(e,t){const n=this.spec.tls||[],r=n.filter((t=>{const n=t.hosts||[];return n.includes(e.host)}));return r.map((e=>this.certLink(e,t)))}targetLink(e,t){return{to:this.targetTo(e,t),text:t,options:{internal:!0}}}createDefaultService(e){const t=(0,o.Jt)(this.spec,this.defaultBackendPath),n=(0,o.Jt)(t,this.serviceNamePath);return n?{name:n,targetTo:this.targetTo(e,n)}:null}get cache(){return this.cacheObject||(this.cacheObject={}),this.cacheObject}get showPathType(){return this.cache.showPathType||(this.cache.showPathType=this.$rootGetters["cluster/pathExistsInSchema"](this.type,"spec.rules.http.paths.pathType")),this.cache.showPathType}get useNestedBackendField(){return this.cache.useNestedBackendField||(this.cache.useNestedBackendField=this.$rootGetters["cluster/pathExistsInSchema"](this.type,"spec.rules.http.paths.backend.service.name")),this.cache.useNestedBackendField}get serviceNamePath(){const e="service.name",t="serviceName";return this.useNestedBackendField?e:t}get servicePortPath(){const e="service.port.number",t="servicePort";return this.useNestedBackendField?e:t}get defaultBackendPath(){const e=this.$rootGetters["cluster/pathExistsInSchema"](this.type,"spec.defaultBackend");return e?"defaultBackend":"backend"}get hasDefaultBackend(){return!l()(this.spec[this.defaultBackendPath])}get details(){const e=this._details;return this.spec?.ingressClassName&&e.push({label:this.t("ingress.ingressClass.label"),content:this.spec.ingressClassName}),e}}},80903:function(e,t,n){"use strict";n.r(t),n.d(t,{CLOUD_CREDENTIAL_OVERRIDE:function(){return i},default:function(){return a}});var r=n(81147);const i={nutanix:!0};class a extends r["default"]{get doneRoute(){return"c-cluster-manager-driver-nodedriver"}get _availableActions(){const e=[{action:"activate",label:this.t("action.activate"),icon:"icon icon-play",bulkable:!0,bulkAction:"activateBulk",enabled:!!this.actions?.activate&&"inactive"===this.state},{action:"deactivate",label:this.t("action.deactivate"),icon:"icon icon-pause",bulkable:!0,bulkAction:"deactivateBulk",enabled:!!this.actions?.deactivate&&"active"===this.state,weight:-1},{divider:!0},{action:"viewInApi",enabled:!0,icon:"icon icon-external-link",label:this.t("action.viewInApi")},{divider:!0},{action:"goToEdit",label:this.t("action.edit"),icon:"icon icon-edit",bulkable:!1,enabled:!!this.links.update&&!this.builtin},{action:"promptRemove",altAction:"remove",bulkAction:"promptRemove",label:this.t("action.remove"),bulkable:!0,icon:"icon icon-delete",enabled:!!this.links.update&&!this.active,weight:-10}];return e}deactivate(e=[this]){this.$dispatch("promptModal",{componentProps:{drivers:e,driverType:"nodeDrivers"},component:"DeactivateDriverDialog"})}deactivateBulk(e){this.$dispatch("promptModal",{componentProps:{drivers:e,driverType:"nodeDrivers"},component:"DeactivateDriverDialog"})}activate(){return this.$dispatch("rancher/request",{url:`v3/nodeDrivers/${escape(this.id)}?action=activate`,method:"post"},{root:!0})}async activateBulk(e){await Promise.all(e.map((e=>this.$dispatch("rancher/request",{url:`v3/nodeDrivers/${escape(e.id)}?action=activate`,method:"post"},{root:!0}))))}}},13070:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(35664);const i=[{labelKey:"persistentVolume.awsElasticBlockStore.label",value:"awsElasticBlockStore",supported:!0},{labelKey:"persistentVolume.azureDisk.label",value:"azureDisk",supported:!0},{labelKey:"persistentVolume.azureFile.label",value:"azureFile",supported:!0},{labelKey:"persistentVolume.cephfs.label",value:"cephfs"},{labelKey:"persistentVolume.rbd.label",value:"rbd"},{labelKey:"persistentVolume.csi.label",value:"csi",supported:!0},{labelKey:"persistentVolume.fc.label",value:"fc"},{labelKey:"persistentVolume.flexVolume.label",value:"flexVolume"},{labelKey:"persistentVolume.flocker.label",value:"flocker"},{labelKey:"persistentVolume.glusterfs.label",value:"glusterfs"},{labelKey:"persistentVolume.gcePersistentDisk.label",value:"gcePersistentDisk",supported:!0},{labelKey:"persistentVolume.hostPath.label",value:"hostPath",supported:!0},{labelKey:"persistentVolume.iscsi.label",value:"iscsi"},{labelKey:"persistentVolume.local.label",value:"local",supported:!0},{labelKey:"persistentVolume.longhorn.label",value:"longhorn",supported:!0},{labelKey:"persistentVolume.nfs.label",value:"nfs",supported:!0},{labelKey:"persistentVolume.cinder.label",value:"cinder"},{labelKey:"persistentVolume.photonPersistentDisk.label",value:"photonPersistentDisk"},{labelKey:"persistentVolume.portworxVolume.label",value:"portworxVolume"},{labelKey:"persistentVolume.quobyte.label",value:"quobyte"},{labelKey:"persistentVolume.scaleIO.label",value:"scaleIO"},{labelKey:"persistentVolume.storageos.label",value:"storageos"},{labelKey:"persistentVolume.vsphereVolume.label",value:"vsphereVolume",supported:!0}];i.find((e=>"longhorn"===e.value));var a=n(25184);class o extends a.A{get source(){const e=this.spec?.csi?.driver,t=`${e} ${this.t("persistentVolume.csi.suffix")}`;if(e)return this.$rootGetters["i18n/withFallback"](`persistentVolume.csi.drivers.${e.replaceAll(".","-")}`,null,t);const n=i.find((e=>this.spec[e.value]));return n?this.t(n.labelKey):this.t("generic.unknown")}get isLonghorn(){return this.spec.csi&&this.spec.csi.driver===r.lI}get claim(){return this.name?this.$getters["all"](r.YH).find((e=>e.spec.volumeName===this.name)):null}get claimName(){return this.claim?.nameDisplay||this.t("generic.na")}get canDelete(){return"bound"!==this.state}}},17544:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(68851),i=n(14220),a=n(25184),o=n(73883),s=n(35664);class l extends a.A{applyDefaults(e,t){const n=t===i.dT?this.spec.accessModes:[],r=t===i.dT?this.spec.resources.requests.storage:null;this["spec"]={accessModes:n,storageClassName:"",volumeName:"",resources:{requests:{storage:r}}}}get bound(){return this.state===o.jv.BOUND}get expandable(){return!!this.$getters["byId"](s.fJ,this.spec?.storageClassName)?.allowVolumeExpansion}get _availableActions(){const e=super._availableActions;return(0,r.PT)(e,0,{divider:!0}),(0,r.PT)(e,0,{action:"goToEditVolumeSize",enabled:this.expandable&&this.bound,icon:"icon icon-fw icon-plus",label:this.t("persistentVolumeClaim.expand.label")}),e}goToEditVolumeSize(){const e=this.detailLocation;e.query={...e.query,[i.g]:i.G5,[i.AS]:i.xz,[i.L_]:"volumeclaim"},this.currentRouter().push(e)}}},76006:function(e,t,n){"use strict";n.r(t),n.d(t,{WORKLOAD_PRIORITY:function(){return h},default:function(){return p}});var r=n(68851),i=n(73883),a=n(35664),o=n(92043),s=n(2505),l=n(76978);function c(e,t,n){return(t=u(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e){var t=d(e,"string");return"symbol"==typeof t?t:t+""}function d(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}const h={[a.oU.DEPLOYMENT]:1,[a.oU.CRON_JOB]:2,[a.oU.DAEMON_SET]:3,[a.oU.STATEFUL_SET]:4,[a.oU.JOB]:5,[a.oU.REPLICA_SET]:6,[a.oU.REPLICATION_CONTROLLER]:7};class p extends s["default"]{constructor(...e){super(...e),c(this,"_os",void 0)}get inStore(){return this.$rootGetters["currentProduct"].inStore}set os(e){this._os=e}get os(){return this._os?this._os:this?.node?.status?.nodeInfo?.operatingSystem}get node(){try{const e=this.$store.getters["cluster/schemaFor"](a.NW);e&&this.$dispatch("find",{type:a.NW,id:this.spec.nodeName})}catch{}return this.$getters["byId"](a.NW,this.spec.nodeName)}get _availableActions(){const e=super._availableActions;return(0,r.PT)(e,0,{divider:!0}),(0,r.PT)(e,0,this.openLogsMenuItem),(0,r.PT)(e,0,this.openShellMenuItem),e}get openShellMenuItem(){return{action:"openShell",enabled:!!this.links.view&&this.isRunning,icon:"icon icon-fw icon-chevron-right",label:"Execute Shell",total:1}}get openLogsMenuItem(){return{action:"openLogs",enabled:!!this.links.view,icon:"icon icon-fw icon-chevron-right",label:"View Logs",total:1}}get containerActions(){const e=[];return(0,r.PT)(e,0,this.openLogsMenuItem),(0,r.PT)(e,0,this.openShellMenuItem),e}get defaultContainerName(){const e=this.spec.containers,t=e.filter((e=>"istio-proxy"!==e.name));return t.length?t[0].name:e[0]?.name}openShell(e=this.defaultContainerName){this.$dispatch("wm/open",{id:`${this.id}-shell`,label:this.nameDisplay,icon:"terminal",component:"ContainerShell",attrs:{pod:this,initialContainer:e}},{root:!0})}openLogs(e=this.defaultContainerName){this.$dispatch("wm/open",{id:`${this.id}-logs`,label:this.nameDisplay,icon:"file",component:"ContainerLogs",attrs:{pod:this,initialContainer:e}},{root:!0})}containerStateDisplay(e){const t=Object.keys(e.state||{})[0];return(0,i.ch)(t)}containerStateColor(e){const t=Object.keys(e.state||{})[0];return(0,i.uU)(t)}containerIsInit(e){const{initContainers:t=[]}=this.spec;return t.includes(e)}get imageNames(){return this.spec.containers.map((e=>(0,o.qO)(e.image)))}get workloadRef(){const e=this.getOwners()||[],t=e.filter((e=>Object.values(a.oU).includes(e.type))).sort(((e,t)=>{const n=h[e.type],r=h[t.type];return n-r}));return t[0]}get ownedByWorkload(){return!!this.workloadRef}get details(){const e=[{label:this.t("workload.detailTop.podIP"),content:this.status.podIP}];return this.workloadRef&&e.push({label:"Workload",formatter:"LinkName",formatterOpts:{value:this.workloadRef.name,type:this.workloadRef.type,namespace:this.workloadRef.namespace},content:this.workloadRef.name}),this.spec.nodeName&&e.push({label:"Node",formatter:"LinkName",formatterOpts:{type:a.NW,value:this.spec.nodeName},content:this.spec.nodeName}),e}get isRunning(){return"Running"===this.status.phase}get groupByNode(){const e=this.spec?.nodeName||this.$rootGetters["i18n/t"]("generic.none");return this.$rootGetters["i18n/t"]("resourceTable.groupLabel.node",{name:(0,o.ZD)(e)})}get restartCount(){return this.status.containerStatuses&&this.status?.containerStatuses[0].restartCount||0}processSaveResponse(e){if(e._headers&&e._headers.warning){const t=e._headers.warning.split("299")||[],n=t.filter((e=>e.includes("violate PodSecurity"))).length;n&&this.$dispatch("growl/warning",{title:this.$rootGetters["i18n/t"]("growl.podSecurity.title"),message:this.$rootGetters["i18n/t"]("growl.podSecurity.message"),timeout:5e3},{root:!0})}}save(){const e={...this},{metadata:t,spec:n}=this.spec.template;return this.spec={...this.spec,...n},this.metadata={...this.metadata,...t},delete this.spec.template,this._save(...arguments).catch((t=>(this.spec=e.spec,this.metadata=e.metadata,Promise.reject(t))))}cleanForSave(e){const t=super.cleanForSave(e);return t.spec?.containers?.forEach((e=>{this.cleanContainerForSave(e)})),t.spec?.initContainers?.forEach((e=>{this.cleanContainerForSave(e)})),(0,l.BJ)(t,"spec.selector"),t}}},97219:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var r=n(36313),i=n.n(r),a=n(4514),o=n(50667),s=n(92043),l=n(89865);class c extends l.A{get avatarSrc(){if("github"===this.provider)return(0,o.R_)(this.profilePicture,"s",80);{let e=this.id||"Unknown";e=e.replace(/[^:]+:\/\//,"");const t=(0,a.Fx)(e,"hex"),n=`data:image/png;base64,${new(i())(t,80,.01).toString()}`;return n}}get roundAvatar(){return"github"===this.provider}get providerSpecificType(){const e=this.id.replace(/:.*$/,"").split("_",2);return 2===e.length?e[1]:null}get displayType(){const e=this.$rootGetters["i18n/withFallback"](`model.authConfig.provider."${this.provider}"`,null,this.provider);return`${e} ${(0,s.TF)(this.providerSpecificType)}`}}},99493:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(35664),i=n(89865);class a extends i.A{get principalId(){return this.userPrincipalId||this.groupPrincipalId}get roleDisplay(){return this.roleTemplate?.nameDisplay}get roleDescription(){return this.roleTemplate?.description}get roleTemplate(){return this.$rootGetters["management/byId"](r.Mc.ROLE_TEMPLATE,this.roleTemplateId)}get steve(){return this.$dispatch("management/find",{type:r.Mc.PROJECT_ROLE_TEMPLATE_BINDING,id:this.id?.replace(":","/")},{root:!0})}get syncPrincipal(){return this.$rootGetters["rancher/byId"](r.k$.PRINCIPAL,this.principalId)}get nameDisplay(){return this.syncPrincipal?.nameDisplay||super.nameDisplay}}},47685:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return f}});var r=n(35664),i=n(25184),a=n(68851),o=n(76978),s=n(74302),l=n(92043),c=n(83288),u=n(14220),d=n(11518),h=n(2841),p=n(4364);class f extends i.A{get details(){const e=[{label:this.t("cluster.detail.provisioner"),content:this.provisionerDisplay||this.t("generic.none")},{label:this.t("cluster.detail.machineProvider"),content:this.machineProvider?this.machineProviderDisplay:null},{label:this.t("cluster.detail.kubernetesVersion"),content:this.kubernetesVersion},{label:this.t("cluster.detail.machinePools"),content:this.pools.length},{label:this.t("cluster.detail.machines"),content:this.desired}].filter((e=>!!e.content)),t=this.rkeTemplate;return t&&e.push({label:this.t("cluster.detail.rkeTemplate"),formatter:"RKETemplateName",content:t}),this.machineProvider||e.splice(1,1),e}get creationTimestamp(){const e=Date.parse(this.metadata?.creationTimestamp),t=Date.parse(this.mgmt?.metadata?.creationTimestamp);return t&&t<e?this.mgmt?.metadata?.creationTimestamp:super.creationTimestamp}get detailsAction(){const e=this.mgmt?.isReady&&!this.hasError;return{action:"explore",label:this.$rootGetters["i18n/t"]("cluster.explore"),enabled:e}}get _availableActions(){const e=super._availableActions,t=this.mgmt?.isLocal;if(t){const t=e.findIndex((e=>"promptRemove"===e.action));t>-1&&e.splice(t,1)}const n=this.mgmt?.isReady,r=this.isRke2&&n&&this.canUpdate,i=n&&(this.isRke2&&this.canUpdate||this.isRke1&&this.mgmt?.hasAction("backupEtcd")),a=this.$getters["schemaFor"]("management.cattle.io.clustertemplate");let o=!1;a&&(a.resourceMethods?.includes("blocked-PUT")||a.resourceMethods?.includes("PUT"))&&(o=!0);const s=!!this.normanCluster?.actions?.saveAsTemplate,l=this.isRke1&&"rancherKubernetesEngine"===this.mgmt?.status?.driver&&!this.mgmt?.spec?.clusterTemplateName&&this.hasLink("update")&&o&&s,c=[{action:"openShell",label:this.$rootGetters["i18n/t"]("nav.shell"),icon:"icon icon-terminal",enabled:!!this.mgmt?.links.shell&&n},{action:"downloadKubeConfig",bulkAction:"downloadKubeConfigBulk",label:this.$rootGetters["i18n/t"]("nav.kubeconfig.download"),icon:"icon icon-download",bulkable:!0,enabled:this.mgmt?.hasAction("generateKubeconfig")},{action:"copyKubeConfig",label:this.t("cluster.copyConfig"),bulkable:!1,enabled:this.mgmt?.hasAction("generateKubeconfig"),icon:"icon icon-copy"},{action:"snapshotAction",label:this.$rootGetters["i18n/t"]("nav.takeSnapshot"),icon:"icon icon-snapshot",bulkAction:"snapshotBulk",bulkable:!0,enabled:i},{action:"restoreSnapshotAction",label:this.$rootGetters["i18n/t"]("nav.restoreSnapshot"),icon:"icon icon-fw icon-backup-restore",enabled:i},{action:"rotateCertificates",label:this.$rootGetters["i18n/t"]("nav.rotateCertificates"),icon:"icon icon-backup",enabled:r||this.mgmt?.hasAction("rotateCertificates")&&n},{action:"rotateEncryptionKey",label:this.$rootGetters["i18n/t"]("nav.rotateEncryptionKeys"),icon:"icon icon-refresh",enabled:r||this.isRke1&&this.mgmt?.hasAction("rotateEncryptionKey")&&n},{action:"saveAsRKETemplate",label:this.$rootGetters["i18n/t"]("nav.saveAsRKETemplate"),icon:"icon icon-folder",enabled:l},{divider:!0}];(this.cloudCredential?.canRenew||this.cloudCredential?.canBulkRenew)&&(e.splice(0,0,{divider:!0}),e.splice(0,0,{action:"renew",enabled:this.cloudCredential?.canRenew,bulkable:this.cloudCredential?.canBulkRenew,bulkAction:"renewBulk",icon:"icon icon-fw icon-refresh",label:this.$rootGetters["i18n/t"]("cluster.cloudCredentials.renew")}));const u=c.concat(e);return this.customProvisionerHelper?.availableActions&&this.customProvisionerHelper?.availableActions(this,u)||u}get normanCluster(){const e=this.status?.clusterName;if(!e)return null;const t=this.$rootGetters["rancher/byId"](r.k$.CLUSTER,e);return t}async findNormanCluster(){const e=this.status?.clusterName;return e?await this.$dispatch("rancher/find",{type:r.k$.CLUSTER,id:e},{root:!0}):null}explore(){const e={name:"c-cluster",params:{cluster:this.mgmt.id}};this.currentRouter().push(e)}async goToHarvesterCluster(){const e=await this.$dispatch("create",{...this,type:r.rk.CLUSTER});try{await e.goToCluster()}catch{}}goToViewYaml(){let e;this.isRke2||(e=this.mgmt?.detailLocation),e||(e=this.detailLocation),e.query={...e.query,[u.g]:u.nW,[u.AS]:u.zD},this.currentRouter().push(e)}get canDelete(){return super.canDelete&&"removing"!==this.stateObj?.name}get canEditYaml(){return!!this.isRke2&&super.canEditYaml}get isHostedKubernetesProvider(){const e=["AKS","EKS","GKE"];return e.includes(this.provisioner)}get isPrivateHostedProvider(){if(this.isHostedKubernetesProvider&&this.mgmt&&this.provisioner)switch(this.provisioner.toLowerCase()){case"gke":return this.mgmt.spec?.gkeConfig?.privateClusterConfig?.enablePrivateEndpoint;case"eks":return this.mgmt.spec?.eksConfig?.privateAccess;case"aks":return this.mgmt.spec?.aksConfig?.privateCluster}return!1}get isLocal(){return this.mgmt?.isLocal}get isImported(){if(this.isLocal)return!1;if("k3s"===this.mgmt?.status?.provider||"rke2"===this.mgmt?.status?.provider)return this.mgmt?.status?.driver===this.mgmt?.status?.provider;const e=["aksConfig","eksConfig","gkeConfig"],t=e.filter((e=>!0===this.mgmt?.spec?.[e]?.imported)).length;return!!t||"imported"===this.provisioner}get isCustom(){return this.isRke2?!this.spec?.rkeConfig?.machinePools?.length:!!this.isRke1&&!this.pools?.length}get confirmRemove(){return!0}get isImportedK3s(){return this.isImported&&this.isK3s}get isImportedRke2(){return this.isImported&&this.mgmt?.status?.provider?.startsWith("rke2")}get isK3s(){return this.mgmt?.status?"k3s"===this.mgmt?.status.provider:(this.spec?.kubernetesVersion||"").includes("k3s")}get isRke2(){return!!this.spec?.rkeConfig}get isRke1(){return!!this.mgmt?.spec?.rancherKubernetesEngineConfig||"rke"===this.mgmt?.labels["provider.cattle.io"]}get isHarvester(){return!!this.mgmt?.isHarvester}get mgmtClusterId(){return this.status?.clusterName}get mgmt(){return this.$rootGetters["management/byId"](r.Mc.CLUSTER,this.mgmtClusterId)}get isReady(){return!!this.mgmt?.isReady}get eksNodeGroups(){return this.mgmt?.spec?.eksConfig?.nodeGroups||[]}waitForProvisioner(e,t){return this.waitForTestFn((()=>!!this.provisioner),"set provisioner",e,t)}waitForMgmt(e=6e4,t){return this.waitForTestFn((()=>{const e=this.$rootGetters["management/byId"](r.qt.RANCHER_CLUSTER,this.id),t=this.status?.clusterName||e?.status?.clusterName;return t&&!!this.$rootGetters["management/byId"](r.Mc.CLUSTER,t)}),this.$rootGetters["i18n/t"]("cluster.managementTimeout"),e,t)}get provisioner(){if(this.isRke2){const e=Object.keys(this.spec),t=e.find((e=>e.endsWith("Config")));if("rkeConfig"===t)return"rke2";if(t)return t.replace(/config$/i,"")}else if(this.mgmt)return this.mgmt.provisioner;return null}get provisionerDisplay(){if(this.customProvisionerHelper?.provisionerDisplay)return this.customProvisionerHelper?.provisionerDisplay(this);let e=(this.provisioner||"").toLowerCase();return"rke2"===e&&this.spec?.kubernetesVersion?.includes("k3s")||this.isImportedK3s?e="k3s":this.isImportedRke2?e="rke2":(this.isImported||this.isLocal)&&this.isRke1&&(e="rke"),this.$rootGetters["i18n/withFallback"](`cluster.provider."${e}"`,null,(0,l.TF)(e))}get providerLogo(){return this.mgmt?.providerLogo}get nodesArchitecture(){const e={};return this.nodes?.forEach((t=>{if(!t.metadata?.state?.transitioning){const n=t.status?.nodeLabels?.[h.Pl],r=n||this.t("cluster.architecture.label.unknown");e[r]=(e[r]||0)+1}})),e}get architecture(){const e=Object.keys(this.nodesArchitecture);switch(e.length){case 0:return{label:this.t("generic.provisioning")};case 1:return{label:e[0]};default:return{label:this.t("cluster.architecture.label.mixed"),tooltip:e.reduce(((e,t)=>`${e}${t}: ${this.nodesArchitecture[t]}<br>`),"")}}}get kubernetesVersion(){const e=this.$rootGetters["i18n/t"]("generic.unknown");if(this.isRke2){const t=this.status?.version?.gitVersion,n=this.spec?.kubernetesVersion;return t||n||e}return this.mgmt&&this.mgmt.kubernetesVersion||e}get machineProvider(){const e=this.annotations?.[h.qt.UI_CUSTOM_PROVIDER];if(e)return e;if(this.isHarvester)return d.T;if(this.isImported)return null;if(this.isRke2){const e=this.spec?.rkeConfig?.machinePools?.[0]?.machineConfigRef?.kind?.toLowerCase();return e?e.replace(/config$/i,"").toLowerCase():null}return this.mgmt?.machineProvider?this.mgmt.machineProvider.toLowerCase():null}get machineProviderDisplay(){if(this.customProvisionerHelper?.machineProviderDisplay)return this.customProvisionerHelper?.machineProviderDisplay(this);if(this.isImported)return null;const e=(this.machineProvider||"").toLowerCase();return e?this.$rootGetters["i18n/withFallback"](`cluster.provider."${e}"`,null,e):this.$rootGetters["i18n/t"]("generic.unknown")}get machinePoolDefaults(){return this.spec.rkeConfig?.machinePoolDefaults}set defaultHostnameLengthLimit(e){this.spec.rkeConfig=this.spec.rkeConfig||{},this.spec.rkeConfig.machinePoolDefaults=this.spec.rkeConfig.machinePoolDefaults||{},this.spec.rkeConfig.machinePoolDefaults.hostnameLengthLimit=e}get defaultHostnameLengthLimit(){return this.spec.rkeConfig?.machinePoolDefaults?.hostnameLengthLimit}removeDefaultHostnameLengthLimit(){this.machinePoolDefaults?.hostnameLengthLimit&&(delete this.spec.rkeConfig.machinePoolDefaults.hostnameLengthLimit,0===Object.keys(this.spec?.rkeConfig?.machinePoolDefaults).length&&delete this.spec.rkeConfig.machinePoolDefaults)}get nodes(){return this.$rootGetters["management/all"](r.Mc.NODE).filter((e=>e.id.startsWith(this.mgmtClusterId)))}get machines(){return this.$rootGetters["management/all"](r.qt.MACHINE).filter((e=>e.metadata?.namespace===this.metadata.namespace&&e.spec?.clusterName===this.metadata.name))}get displayName(){return this.mgmt&&!this.isRke2?this.mgmt.spec.displayName:null}get pools(){const e=this.$rootGetters["management/all"](r.qt.MACHINE_DEPLOYMENT).filter((e=>e.spec?.clusterName===this.metadata.name));return e.length?e:this.$rootGetters["management/all"](r.Mc.NODE_POOL).filter((e=>e.spec.clusterName===this.status?.clusterName))}get desired(){return this.pools.reduce(((e,t)=>e+(t.desired||0)),0)}get pending(){return this.pools.reduce(((e,t)=>e+(t.pending||0)),0)}get outdated(){return this.pools.reduce(((e,t)=>e+(t.outdated||0)),0)}get ready(){return this.pools.reduce(((e,t)=>e+(t.ready||0)),0)}get unavailable(){return this.pools.reduce(((e,t)=>e+(t.unavailable||0)),0)}get unavailableMachines(){if(this.isReady){if(this.isRke1){const e=this.nodes.filter((e=>e.status.conditions.find((e=>e.error&&"Ready"===e.type)))).map((e=>{const t=e.status.nodeName||e.metadata.name;return this.t("cluster.availabilityWarnings.node",{name:t})}));return e.join("<br>")}{const e=this.machines.filter((e=>e.status?.conditions?.find((e=>e.error&&"NodeHealthy"===e.type)))).map((e=>e.status?.nodeRef?.name?this.t("cluster.availabilityWarnings.node",{name:e.status.nodeRef.name}):this.t("cluster.availabilityWarnings.machine",{name:e.metadata.name})));return e.join("<br>")}}return""}get stateParts(){const e=[{label:"Pending",color:"bg-info",textColor:"text-info",value:this.pending,sort:1},{label:"Outdated",color:"bg-warning",textColor:"text-warning",value:this.outdated,sort:2},{label:"Unavailable",color:"bg-error",textColor:"text-error",value:this.unavailable,sort:3},{label:"Ready",color:"bg-success",textColor:"text-success",value:this.ready,sort:4}].filter((e=>e.value>0));return(0,s.Ul)(e,"sort:desc")}async getOrCreateToken(){if(await this.waitForMgmt(),!this.mgmt)return;const e=await this.$dispatch("rancher/findAll",{type:r.k$.CLUSTER_TOKEN,force:!0},{root:!0});let t=(0,a.jq)(e,"clusterId",this.mgmt.id);return t||(this.links.update?(t=await this.$dispatch("rancher/create",{type:r.k$.CLUSTER_TOKEN,clusterId:this.mgmt.id},{root:!0}),t.save()):void 0)}openShell(){return this.mgmt?.openShell()}generateKubeConfig(){return this.mgmt?.generateKubeConfig()}async copyKubeConfig(){await(this.mgmt?.copyKubeConfig()),this.$dispatch("growl/success",{title:this.t("cluster.copiedConfig"),timeout:3e3},{root:!0})}downloadKubeConfig(){return this.mgmt?.downloadKubeConfig()}downloadKubeConfigBulk(e){return this.mgmt?.downloadKubeConfigBulk(e)}async snapshotAction(){try{await this.takeSnapshot(),this.$dispatch("growl/success",{title:this.$rootGetters["i18n/t"]("cluster.snapshot.successTitle",{name:this.nameDisplay}),message:this.$rootGetters["i18n/t"]("cluster.snapshot.successMessage",{name:this.nameDisplay})},{root:!0})}catch(e){this.$dispatch("growl/fromError",{title:this.$rootGetters["i18n/t"]("cluster.snapshot.errorTitle",{name:this.nameDisplay}),err:e},{root:!0})}}async snapshotBulk(e){const t=await Promise.allSettled(e.map((e=>e.takeSnapshot()))),n=t.filter((e=>"fulfilled"===e.status)).length;n&&this.$dispatch("growl/success",{title:this.$rootGetters["i18n/t"]("cluster.snapshot.bulkSuccessTitle"),message:this.$rootGetters["i18n/t"]("cluster.snapshot.bulkSuccessMessage",{count:n})},{root:!0});for(let r=0;r<t.length;r++)"fulfilled"!==t[r].status&&this.$dispatch("growl/fromError",{title:this.$rootGetters["i18n/t"]("cluster.snapshot.errorTitle",{name:e[r].nameDisplay}),err:t[r].value},{root:!0})}takeSnapshot(){if(this.isRke1)return this.$dispatch("rancher/request",{url:`/v3/clusters/${escape(this.mgmt.id)}?action=backupEtcd`,method:"post"},{root:!0});{const e=this.spec?.rkeConfig?.etcdSnapshotCreate?.generation||0,t={generation:e+1};return this.spec?.rkeConfig?.etcd?.s3&&(t.s3=this.spec.rkeConfig.etcd.s3),(0,o.hZ)(this.spec.rkeConfig,"etcdSnapshotCreate",t),this.save()}}get etcdSnapshots(){const e=this.$rootGetters["management/all"]({type:r.xO});return e.filter((e=>e.metadata.namespace===this.namespace&&e.clusterName===this.name))}restoreSnapshotAction(e=this){this.$dispatch("promptRestore",[e])}saveAsRKETemplate(e=this){this.$dispatch("promptModal",{componentProps:{cluster:e},component:"SaveAsRKETemplateDialog"})}rotateCertificates(e=this){this.$dispatch("promptModal",{componentProps:{cluster:e},component:"RotateCertificatesDialog"})}rotateEncryptionKey(e=this){this.$dispatch("promptModal",{componentProps:{cluster:e},component:"RotateEncryptionKeyDialog"})}get stateObj(){return this._stateObj}get rkeTemplate(){if(!this.isRke1||!this.mgmt)return!1;if(!this.mgmt.spec?.clusterTemplateRevisionName)return!1;const e=this.mgmt.spec.clusterTemplateName.replace(":","/"),t=this.mgmt.spec.clusterTemplateRevisionName.replace(":","/"),n=this.$rootGetters["management/all"](r.Mc.RKE_TEMPLATE).find((t=>t.id===e)),i=this.$rootGetters["management/all"](r.Mc.RKE_TEMPLATE_REVISION).find((e=>e.spec.enabled&&e.id===t));return!(!n||!i)&&{displayName:`${n.spec?.displayName}/${i.spec?.displayName}`,upgrade:this.rkeTemplateUpgrade,template:n,revision:i}}get rkeTemplateUpgrade(){if(!this.isRke1||!this.mgmt)return!1;if(!this.mgmt.spec?.clusterTemplateRevisionName)return!1;const e=this.mgmt.spec.clusterTemplateRevisionName.replace(":","/"),t=this.$rootGetters["management/all"](r.Mc.RKE_TEMPLATE_REVISION).filter((e=>e.spec.enabled&&e.spec.clusterTemplateName===this.mgmt.spec.clusterTemplateName));return!(t.length<=1)&&(t.sort(((e,t)=>parseInt(e.metadata.resourceVersion,10)-parseInt(t.metadata.resourceVersion,10))).reverse(),t[0].id!==e&&t[0].spec?.displayName)}get _stateObj(){return this.isRke2?this.metadata?.state:this.mgmt?.stateObj||this.metadata?.state}get supportsWindows(){if(this.isK3s||this.isImportedK3s)return!1;if(this.isRke1)return this.mgmt?.spec?.windowsPreferedCluster||!1;if(!this.isRke2)return!1;if(!this.kubernetesVersion||(0,c.UD)(this.kubernetesVersion,"v1.21.0")<0)return!1;const e=this.spec?.rkeConfig?.machineGlobalConfig?.cni;return!e||"calico"===e}get customValidationRules(){return[{path:"metadata.name",translationKey:"cluster.name.label",validators:[`clusterName:${this.isRke2}`],maxLength:63}]}get agentConfig(){return this.spec.rkeConfig?.machineSelectorConfig?.find((e=>!e.machineLabelSelector))?.config||{}}get cloudProvider(){return this.agentConfig?.["cloud-provider-name"]}get canClone(){return!1}async remove(e={}){e.url||(e.url=(this.links||{})["self"]),e.method="delete";const t=await this.$dispatch("request",e),n=(this.spec?.rkeConfig?.machinePools||[])[0];if("HarvesterConfig"===n?.machineConfigRef?.kind){const e=this.spec.cloudCredentialSecretName;await this.$dispatch("rancher/findAll",{type:r.k$.CLOUD_CREDENTIAL},{root:!0});const t=this.$rootGetters["rancher/byId"](r.k$.CLOUD_CREDENTIAL,e);if(t){const e=(0,o.Jt)(t,"decodedData.clusterId");try{const t=await this.$dispatch("management/find",{type:`${r.qt.MACHINE_CONFIG_GROUP}.${(n?.machineConfigRef?.kind||"").toLowerCase()}`,id:`${this.metadata.namespace}/${n?.machineConfigRef?.name}`},{root:!0});await this.$dispatch("management/request",{url:`/k8s/clusters/${e}/v1/harvester/serviceaccounts/${t.vmNamespace}/${this.metadata.name}`,method:"DELETE"},{root:!0})}catch(i){p.error(i)}}}if(204===t?._status&&await this.$dispatch("ws.resource.remove",{data:this}),this.customProvisionerHelper?.postDelete)return this.customProvisionerHelper?.postDelete(this)}get customProvisionerHelper(){return this.modelExtensions.find((e=>!!e.useFor&&e.useFor(this)))}get groupByParent(){return this.customProvisionerHelper?.parentCluster?.(this)}get groupByLabel(){const e=this.groupByParent;return e?this.$rootGetters["i18n/t"]("resourceTable.groupLabel.cluster",{name:(0,l.ZD)(e)}):this.$rootGetters["i18n/t"]("resourceTable.groupLabel.notInACluster")}get hasError(){if(this.status?.conditions&&this.status?.conditions.length&&this.status?.conditions.some((e=>!0===e.error))){if(!this.status?.conditions.some((e=>"Ready"===e.type)))return!0;const e=this.status?.conditions.filter((e=>!0===e.error||"Ready"===e.type)),t=e.reduce(((e,t)=>e.lastUpdateTime>t.lastUpdateTime?e:t));return t.error}return!1}get namespaceLocation(){const e=this.$rootGetters["management/byId"](r.Mc.CLUSTER,r.d_);return e?{name:"c-cluster-product-resource-id",params:{cluster:e.id,product:this.$rootGetters["productId"],resource:r.CU,id:this.namespace}}:null}get yamlFolding(){return["spec.rkeConfig.machinePools.dynamicSchemaSpec"]}get description(){return super.description||this.mgmt?.description}renew(){return this.cloudCredential?.renew()}renewBulk(e=[]){const t=e.filter((e=>e.cloudCredential)).map((e=>e.cloudCredential));return this.cloudCredential?.renewBulk(t)}get cloudCredential(){return this.$rootGetters["rancher/all"](r.k$.CLOUD_CREDENTIAL).find((e=>e.id===this.spec.cloudCredentialSecretName))}get cloudCredentialWarning(){const e=this.cloudCredential?.expireData;return e?.expired||e?.expiring}}},8324:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(4799),i=n(68851),a=n(51700);class o extends a["default"]{get subtype(){return r.SUBTYPE_MAPPING.RBAC_CLUSTER_ROLE.key}get namespaceResources(){return this.allResources.filter((e=>e.attributes.namespaced&&!e.attributes.group.includes(r.CATTLE_API_GROUP)))}get resources(){return(0,i.sb)(this.namespaceResources.map((e=>e.attributes?.kind))).sort()}}},69791:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(82614),i=n(35664);class a extends r.A{get users(){return this.subjects?.filter((({kind:e})=>e?.toLowerCase()===i.m3))}get serviceAccounts(){return this.subjects?.filter((({kind:e})=>e?.toLowerCase()===i.Sg))}get groups(){return this.subjects?.filter((({kind:e})=>e?.toLowerCase()===i.UP))}}},51700:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(35664),i=n(4799),a=n(68851),o=n(25184);class s extends o.A{get customValidationRules(){return[{path:"name",translationKey:"nameNsDescription.name.label",required:!0,nullable:!1,type:"string"},{path:"rules",validators:[`roleTemplateRules:${this.type}`],nullable:!1,type:"array"}]}get nameWithinProduct(){return this.$rootGetters["i18n/withFallback"](`rbac.displayRole.${this.name}`,this.name)}get subtype(){return i.SUBTYPE_MAPPING.RBAC_ROLE.key}get allResources(){return this.$getters["all"](r.yx).filter((e=>e.attributes?.kind))}get clusterResources(){return this.allResources.filter((e=>!e.attributes.namespaced&&!e.attributes.group.includes(i.CATTLE_API_GROUP)))}get resources(){return(0,a.sb)(this.clusterResources.map((e=>e.attributes?.kind))).sort()}set displayName(e){this.metadata.name=e}get displayName(){return this.metadata?.name}}},559:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(82614),i=n(35664);class a extends r.A{get users(){return this.subjects.filter((({kind:e})=>e?.toLowerCase()===i.m3))}get serviceAccounts(){return this.subjects.filter((({kind:e})=>e?.toLowerCase()===i.Sg))}get groups(){return this.subjects.filter((({kind:e})=>e?.toLowerCase()===i.UP))}}},12299:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(70775);class i extends r["default"]{}},89713:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(73883),i=n(68851),a=n(76978),o=n(25184);class s extends o.A{get readyMessage(){const e=(0,a.Jt)(this,"status.conditions"),t=((0,i.jq)(e,"type","Ready")||{}).message;return t}get colorForState(){return this.readyMessage?(0,r.uU)(this.readyMessage):(0,r.uU)()}get stateDisplay(){return this.readyMessage?(0,r.ch)(this.readyMessage):(0,r.ch)()}}},23741:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(73883),i=n(68851),a=n(76978),o=n(25184);class s extends o.A{get canUpdate(){return this?.metadata?.state?.error}get readyMessage(){const e=(0,a.Jt)(this,"status.conditions"),t=((0,i.jq)(e,"type","Ready")||{}).message;return t}get colorForState(){return this.readyMessage?(0,r.uU)(this.readyMessage):(0,r.uU)()}get stateDisplay(){return this.readyMessage?(0,r.ch)(this.readyMessage):(0,r.ch)()}}},81689:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(46108),i=n.n(r),a=n(82451),o=n.n(a),s=n(25184);class l extends s.A{applyDefaults(e,t){const n=i()(t);if(n[e]){const t=n[e]?.config;delete t.id,delete t.links,delete t.metadata,delete t.apiVersion,o()(this,t)}}}},39651:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(38799);class i extends r["default"]{get provider(){return"amazonec2"}get providerLocation(){return`${this.spec.template.spec.region}${this.spec.template.spec.zone}`}get providerSize(){return this.spec.template.spec.instanceType}}},79144:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(38799);class i extends r["default"]{get provider(){return"azure"}get providerLocation(){return this.spec.template.spec.location}get providerSize(){return this.spec.template.spec.size}}},81593:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(38799);class i extends r["default"]{get provider(){return"digitalocean"}get providerLocation(){return this.spec.template.spec.region}get providerSize(){return this.spec.template.spec.size}}},69770:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(38799);class i extends r["default"]{get provider(){return"linode"}get providerLocation(){return this.spec.template.spec.region}get providerSize(){return this.spec.template.spec.instanceType}}},38799:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(25184);class i extends r.A{get nameDisplay(){return this.name.replace(`${this.metadata.annotations["objectset.rio.cattle.io/owner-name"]}-`,"")}get provider(){return null}get providerLocation(){return null}get providerSize(){return null}}},82186:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(38799);class i extends r["default"]{get provider(){return"pnap"}get providerLocation(){return this.spec.template.spec.serverLocation}get providerSize(){return this.spec.template.spec.serverType}}},38816:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(95799),i=n(38799);class a extends i["default"]{get provider(){return"vmwarevsphere"}get providerSize(){const e=(0,r.Mo)(1048576*this.spec.template.spec.memorySize,1024,"iB");return`${e}, ${this.spec.template.spec.cpuCount} Core`}}},7100:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return d}});var r=n(89865),i=n(2841),a=n(35664),o=n(68851),s=n(76978),l=n(4514),c=n(92043),u=n(73883);class d extends r.A{get _availableActions(){const e=this.snapshotFile?.status===u.jv.SUCCESSFUL;return[{action:"promptRestore",enabled:e,icon:"icon icon-fw icon-backup-restore",label:"Restore"}]}promptRestore(){this.$dispatch("promptRestore",[this])}get clusterName(){return this.metadata.labels[i.xO.CLUSTER_NAME]}get clusterId(){return this.cluster.id}get name(){return this.metadata.name}get cluster(){return(0,o.jq)(this.$rootGetters["management/all"](a.qt.RANCHER_CLUSTER),"metadata.name",this.clusterName)}get rke2(){return this.cluster?.isRke2}get nameDisplay(){return this.snapshotFile?.name||this.name}get errorMessage(){const e=(0,s.Jt)(this,"snapshotFile.status")===u.jv.FAILED;return e?(0,l.u)(this.snapshotFile?.message):null}get stateDescription(){const e=this.stateObj?.transitioning||!1,t=this.stateObj?.error||this.snapshotFile?.status===u.jv.FAILED||!1,n=this.stateObj?.message,r=this.snapshotFile?.status===u.jv.FAILED?(0,l.u)(this.snapshotFile?.message):null;return e||t?r||(0,c.TF)(n):""}get backupLocation(){return this.metadata?.annotations?.["etcdsnapshot.rke.io/storage"]}}},2334:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i},parseType:function(){return o}});var r=n(73883);class i extends r.Ay{get groupName(){return this.attributes.namespaced?"ns":"cluster"}}const a=/([^[\s]*)(\[(.*)\])?/;function o(e,t){const n=a.exec(e),r=n[3]||t?.subtype,i=[n[1]];return r&&i.push(r),i}},1133:function(e,t,n){"use strict";n.r(t),n.d(t,{TYPES:function(){return y},default:function(){return E}});var r=n(39198),i=n(2841),a=n(4514),o=n(68851),s=n(35664),l=n(76978),c=n(47034),u=n(25184),d=n(73883),h=n(34255),p=n(23464),f=n.n(p),m=n(22915);function g(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e){var t=b(e,"string");return"symbol"==typeof t?t:t+""}function b(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}const y={OPAQUE:"Opaque",SERVICE_ACCT:"kubernetes.io/service-account-token",DOCKER:"kubernetes.io/dockercfg",DOCKER_JSON:"kubernetes.io/dockerconfigjson",BASIC:"kubernetes.io/basic-auth",SSH:"kubernetes.io/ssh-auth",TLS:"kubernetes.io/tls",BOOTSTRAP:"bootstrap.kubernetes.io/token",ISTIO_TLS:"istio.io/key-and-cert",HELM_RELEASE:"helm.sh/release.v1",FLEET_CLUSTER:"fleet.cattle.io/cluster-registration-values",CLOUD_CREDENTIAL:"provisioning.cattle.io/cloud-credential",RKE_AUTH_CONFIG:"rke.cattle.io/auth-config"},w=6912e5;class E extends u.A{constructor(...e){super(...e),g(this,"_cachedCertInfo",void 0)}get hasSensitiveData(){return!0}get isCertificate(){return this._type===y.TLS}get isRegistry(){return this._type===y.DOCKER_JSON}get isCloudCredential(){return this._type===y.CLOUD_CREDENTIAL||"cattle-global-data"===this.metadata.namespace&&"cc-"===this.metadata.generateName}get issuer(){const{metadata:{annotations:e={}}}=this;return e[i.G5.ISSUER]?e[i.G5.ISSUER]:this.isCertificate?this.cachedCertInfo?.issuer:null}get notAfter(){return this.isCertificate?this.cachedCertInfo?.notAfter:null}get cn(){return this.isCertificate?this.cachedCertInfo?.cn:null}get plusMoreNames(){return this.isCertificate?this.unrepeatedSans.length:null}get dateClass(){if(this.isCertificate)switch(this.certState){case d.jv.EXPIRING:return"text-warning";case d.jv.EXPIRED:return"text-error";default:return""}return null}get details(){const e=[{label:this.t("secret.type"),content:this.typeDisplay}];if(this._type===y.SERVICE_ACCT){const t=this.metadata?.annotations?.[i.pS.SERVICE_ACCOUNT_NAME];t&&e.push({label:"Service Account",formatter:"LinkName",formatterOpts:{value:t,type:s.Sg,namespace:this.namespace},content:t})}return this.cn&&e.push({label:this.t("secret.certificate.cn"),content:this.plusMoreNames?`${this.cn} ${this.t("secret.certificate.plusMore",{n:this.plusMoreNames})}`:this.cn}),this.issuer&&e.push({label:this.t("secret.certificate.issuer"),content:this.issuer}),this.notAfter&&e.push({label:"Expires",formatter:"Date",formatterOpts:{class:this.dateClass},content:this.notAfter}),e}get canUpdate(){return!!this.hasLink("update")&&(this._type!==y.SERVICE_ACCT&&this.$rootGetters["type-map/optionsFor"](this.type).isEditable)}get keysDisplay(){const e=[...Object.keys(this.data||[]),...Object.keys(this.binaryData||[])];return e.length?e.join(", "):"(none)"}get dataPreview(){if(this._type===y.DOCKER_JSON){const t=this.data[".dockerconfigjson"];if(t){const n=(0,a.u)(t);try{const e=JSON.parse(n).auths,t=[];for(const n in e)t.push(n);return t.join(", ")}catch(e){return n}}}else{if(this._type===y.TLS)return this.certInfo||this.keysDisplay;if(this._type===y.BASIC)return(0,a.u)(this.data.username);if(this._type===y.SSH)return this.sshUser;if(this._type===y.SERVICE_ACCT)return this.metadata?.annotations?.["kubernetes.io/service-account.name"]}return this.keysDisplay}get sshUser(){if(this._type!==y.SSH)return null;const e=(0,a.u)(this.data["ssh-publickey"]);if(!e)return null;if(e.startsWith("----")){const t=e.match(/from OpenSSH by ([^"]+)"/);if(t)return t[1]}else if(e.startsWith("ssh-")){const t=e.replace(/\n/g,"").split(/\s+/);if(t&&3===t.length)return t[2]}return null}get subTypeDisplay(){const e=this._type||"",t=e.replace(/^kubernetes.io\//,"");return this.$rootGetters["i18n/withFallback"](`secret.types."${e}"`,null,t)}get certInfo(){const e=(0,a.u)(this.data["tls.crt"]);let t,n,i,o,s,l;const c="-----END CERTIFICATE-----";if(e){const a=e.split(c);let d=e;a.length>1&&(d=`${a[0]}${c}`);try{l=new r.X509,l.readCertPEM(d);const e=l.getIssuerString();t=e.slice(e.indexOf("CN=")+3),n=r.zulutodate(l.getNotBefore()),i=r.zulutodate(l.getNotAfter());const a=l.getSubjectString();o=a.slice(a.indexOf("CN=")+3)}catch{return null}try{s=l.getExtSubjectAltName()}catch(u){s=[]}const h={issuer:t,notBefore:n,notAfter:i,cn:o,sans:s};return h}return null}get cachedCertInfo(){return this._cachedCertInfo||(this._cachedCertInfo=this.certInfo),this._cachedCertInfo}get unrepeatedSans(){if(this._type===y.TLS){const e=this.cachedCertInfo;if(e?.sans?.filter){const t=e?.sans.filter((e=>0===e.indexOf("*.")||0===e.indexOf("www."))).map((e=>e.substr(e.indexOf(".")))),n=(0,o.$M)(e?.sans,t);return n}return e?.sans?.array||e?.sans||[]}return null}get timeTilExpiration(){if(this._type===y.TLS){const e=this.cachedCertInfo;if(!e?.notAfter)return null;const t=e.notAfter,n=t.valueOf(),r=Date.now(),i=n-r;return i<0?0:i}return null}get timeTilExpirationDate(){return this.timeTilExpiration>0?this.cachedCertInfo?.notAfter?.valueOf():null}get decodedData(){const e={};for(const t in this.data||{})e[t]=(0,a.u)(this.data[t]);return e}get setData(){return(e,t)=>{const n=e&&"object"===typeof e;let r;this.data&&!n||(0,l.hZ)(this,"data",{}),r=n?e:{[e]:t};for(const i in r)(0,l.hZ)(this.data,`"${i}"`,(0,a.KA)(r[i]))}}get doneRoute(){return this.$rootGetters["currentProduct"].name===c.o?"c-cluster-manager-secret":"c-cluster-product-resource"}get certLifetime(){if(this._type===y.TLS){const e=this.cachedCertInfo;if(e)return(0,h.qx)(f()(e.notBefore),f()(e.notAfter),((e,t)=>this.t(e,t))).string}return null}get certState(){if(this._type===y.TLS)return"number"!==typeof this.timeTilExpiration||this.timeTilExpiration>w?"":this.timeTilExpiration>0?d.jv.EXPIRING:d.jv.EXPIRED}get certStateDisplay(){if(this._type===y.TLS)return(0,d.ch)(this.certState)}get certStateBackground(){if(this._type!==y.TLS)return;const e=(0,d.uU)(this.certState);return e.replace("text-","bg-")}cleanForSave(e,t){const n=super.cleanForSave(e,t);return t&&delete n._type,n}async cleanForDownload(e){return(0,m.C)(e,{rootKeys:["id","links","actions"]})}}},96258:function(e,t,n){"use strict";n.r(t),n.d(t,{CLUSTERIP:function(){return c},DEFAULT_SERVICE_TYPES:function(){return s},HEADLESS:function(){return l},proxyUrlFromBase:function(){return d},proxyUrlFromParts:function(){return u}});var r=n(81936),i=n.n(r),a=n(35664),o=n(25184);const s=[{id:"ClusterIP",label:"servicesPage.serviceTypes.clusterIp.label",description:"servicesPage.serviceTypes.clusterIp.description",bannerAbbrv:"servicesPage.serviceTypes.clusterIp.abbrv"},{id:"ExternalName",label:"servicesPage.serviceTypes.externalName.label",description:"servicesPage.serviceTypes.externalName.description",bannerAbbrv:"servicesPage.serviceTypes.externalName.abbrv"},{id:"Headless",label:"servicesPage.serviceTypes.headless.label",description:"servicesPage.serviceTypes.headless.description",bannerAbbrv:"servicesPage.serviceTypes.headless.abbrv"},{id:"LoadBalancer",label:"servicesPage.serviceTypes.loadBalancer.label",description:"servicesPage.serviceTypes.loadBalancer.description",bannerAbbrv:"servicesPage.serviceTypes.loadBalancer.abbrv"},{id:"NodePort",label:"servicesPage.serviceTypes.nodePort.label",description:"servicesPage.serviceTypes.nodePort.description",bannerAbbrv:"servicesPage.serviceTypes.nodePort.abbrv"}],l=(()=>{const e=i()(s,["id","Headless"]);return e.id})(),c=(()=>{const e=i()(s,["id","ClusterIP"]);return e.id})();function u(e,t,n,r,i,a){const o=`/k8s/clusters/${escape(e)}/api/v1/namespaces/${escape(t)}/services`;return d(o,r,n,i,a)}function d(e,t,n,r,i){const a=(t?`${escape(t)}:`:"")+escape(n)+(r?`:${escape(r)}`:""),o=`/${(i||"").replace(/^\/+/g,"")}`,s=e.replace(/\/+$/g,""),l=`${s}/${a}/proxy${o}`;return l}t["default"]=class extends o.A{get customValidationRules(){return[{nullable:!1,path:"metadata.name",required:!0,translationKey:"generic.name",type:"dnsLabel"},{nullable:!1,path:"spec",required:!0,type:"array",validators:["servicePort"]},{nullable:!0,path:"spec",required:!0,type:"string",validators:["clusterIp"]},{nullable:!0,path:"spec",required:!0,type:"array",validators:["externalName"]}]}get details(){const e=[{label:this.t("generic.type"),content:this.serviceType?.id||this.serviceType}],{clusterIP:t,externalName:n,sessionAffinity:r,loadBalancerIP:i}=this.spec;if(t&&e.push({label:this.t("servicesPage.serviceTypes.clusterIp.label"),content:t}),"LoadBalancer"===this.serviceType){const t=this.status.loadBalancer?.ingress?.map((e=>e.hostname||e.ip)).join(", "),n=i||t||"";n&&e.push({label:this.t("servicesPage.ips.loadBalancer.label"),content:n})}return n&&e.push({label:this.t("servicesPage.serviceTypes.externalName.label"),content:n}),r&&e.push({label:this.t("servicesPage.affinity.label"),content:r}),e}get podRelationship(){const{metadata:{relationships:e=[]}}=this;return(e||[]).filter((e=>e.toType===a.Sm))[0]}async fetchPods(){this.podRelationship&&await this.$dispatch("cluster/findMatching",{type:a.Sm,selector:this.podRelationship.selector,namespace:this.namespace},{root:!0})}get pods(){return this.podRelationship?this.$getters.matching(a.Sm,this.podRelationship.selector,this.namespace):[]}get serviceType(){const e=this.spec?.type,t=this.spec?.clusterIP,n=i()(s,["id",c]);return e?e===c&&"None"===t?l:e:n}proxyUrl(e,t){const n=this.linkFor("view"),r=n.lastIndexOf("/");return d(n.slice(0,r),e,this.metadata.name,t)}}},63809:function(e,t,n){"use strict";n.r(t),n.d(t,{PROVISIONER_OPTIONS:function(){return o}});var r=n(2841),i=n(35664),a=n(25184);const o=[{labelKey:"storageClass.aws-ebs.title",value:"kubernetes.io/aws-ebs",supported:!0,deprecated:!0},{labelKey:"storageClass.azure-disk.title",value:"kubernetes.io/azure-disk",supported:!0,deprecated:!0},{labelKey:"storageClass.azure-file.title",value:"kubernetes.io/azure-file",supported:!0,deprecated:!0},{labelKey:"storageClass.rbd.title",value:"kubernetes.io/rbd"},{labelKey:"storageClass.glusterfs.title",value:"kubernetes.io/glusterfs"},{labelKey:"storageClass.gce-pd.title",value:"kubernetes.io/gce-pd",supported:!0,deprecated:!0},{labelKey:"storageClass.no-provisioner.title",value:"kubernetes.io/no-provisioner"},{labelKey:"storageClass.longhorn.title",value:"driver.longhorn.io",supported:!0},{labelKey:"storageClass.cinder.title",value:"kubernetes.io/cinder",deprecated:!0},{labelKey:"storageClass.portworx-volume.title",value:"kubernetes.io/portworx-volume"},{labelKey:"storageClass.quobyte.title",value:"kubernetes.io/quobyte"},{labelKey:"storageClass.scaleio.title",value:"kubernetes.io/scaleio"},{labelKey:"storageClass.storageos.title",value:"kubernetes.io/storageos"},{labelKey:"storageClass.vsphere-volume.title",value:"kubernetes.io/vsphere-volume",supported:!0,deprecated:!0},{labelKey:"storageClass.harvesterhci.title",value:"driver.harvesterhci.io",supported:!0,hideCustomize:!0}];t["default"]=class extends a.A{get provisionerListDisplay(){return`${this.provisioner} (${this.provisionerDisplay})`}get provisionerDisplay(){const e=o.find((e=>e.value===this.provisioner)),t=`${this.provisioner} ${this.t("persistentVolume.csi.suffix")}`;return e?this.t(e.labelKey):this.$rootGetters["i18n/withFallback"](`persistentVolume.csi.drivers.${this.provisioner.replaceAll(".","-")}`,null,t)}get isDefault(){return"true"===this.annotations[r.O3.DEFAULT_STORAGE_CLASS]}updateDefault(e){this.setAnnotation(r.O3.DEFAULT_STORAGE_CLASS,e.toString()),this.setAnnotation(r.O3.BETA_DEFAULT_STORAGE_CLASS,e.toString());const t={metadata:{annotations:{[r.O3.DEFAULT_STORAGE_CLASS]:e.toString(),[r.O3.BETA_DEFAULT_STORAGE_CLASS]:e.toString()}}};return this.patch(t,{},!0,!0)}async setDefault(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](i.fJ)||[];for(const n of t)await n.resetDefault();t.forEach((e=>e.resetDefault())),this.updateDefault(!0)}async resetDefault(){this.isDefault&&await this.updateDefault(!1)}get _availableActions(){const e=super._availableActions;return this.isDefault?e.unshift({action:"resetDefault",enabled:!0,icon:"icon icon-fw icon-checkmark",label:this.t("storageClass.actions.resetDefault")}):e.unshift({action:"setDefault",enabled:!0,icon:"icon icon-fw icon-checkmark",label:this.t("storageClass.actions.setAsDefault")}),e}cleanForNew(){this.$dispatch("cleanForNew",this),delete this?.metadata?.annotations?.[r.O3.DEFAULT_STORAGE_CLASS]}}},66491:function(e,t,n){"use strict";n.r(t);var r=n(25184);t["default"]=class extends r.A{get constraints(){const e=`constraints.gatekeeper.sh.${this.id}`;if(!this.$rootGetters["cluster/haveAll"](e))throw new Error("The constraints have not been loaded");return this.$rootGetters["cluster/all"](e)}get preventDeletionMessage(){const e=this.constraints;return e.length>0?"There are still constraints using this template. You cannot delete this template while it's in use.":null}}},24364:function(e,t,n){"use strict";n.r(t);var r=n(23464),i=n.n(r),a=n(89865);t["default"]=class extends a.A{get _availableActions(){return super._availableActions.filter((e=>["viewInApi","promptRemove"].includes(e.action)))}get state(){return this.isExpired?"expired":"active"}get isExpired(){const e=i()(this.expiresAt);return e.isBefore(i()())}}},51225:function(e,t,n){"use strict";n.r(t);var r=n(96258),i=n(25184);t["default"]=class extends i.A{get labelDisplay(){return this.spec?.label||this.metadata.name||"?"}get link(){if(this.spec?.toURL)return this.spec.toURL;if(this.spec?.toService){const e=this.spec.toService;return(0,r.proxyUrlFromParts)(this.$rootGetters["clusterId"],e.namespace,e.name,e.scheme,e.port,e.path)}return null}get normalizedGroup(){return this.spec.group?this.spec.group.toLowerCase().trim().replace(/[^a-z0-9]/g,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""):null}get actualTarget(){return(this.spec.target||"").trim()||"_blank"}}},70775:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p},defaultContainer:function(){return h}});var r=n(68851),i=n(2841),a=n(35664),o=n(76978),s=n(23464),l=n.n(s),c=n(38823);const u={separator:!0};var d=n(2505);const h={imagePullPolicy:"Always",name:"container-0",securityContext:{runAsNonRoot:!1,readOnlyRootFilesystem:!1,privileged:!1,allowPrivilegeEscalation:!1},volumeMounts:[]};class p extends d["default"]{get _availableActions(){let e=super._availableActions;const t=this._type?this._type:this.type,n=(0,r.jq)(e,"action","goToEditYaml"),i=n?e.indexOf(n):0;(0,r.PT)(e,i,{action:"addSidecar",label:this.t("action.addSidecar"),icon:"icon icon-plus",enabled:!!this.links.update}),t!==a.oU.JOB&&t!==a.oU.CRON_JOB&&((0,r.PT)(e,0,{action:"toggleRollbackModal",label:this.t("action.rollback"),icon:"icon icon-history",enabled:!!this.links.update}),(0,r.PT)(e,0,{action:"redeploy",label:this.t("action.redeploy"),icon:"icon icon-refresh",enabled:!!this.links.update,bulkable:!0}),(0,r.PT)(e,0,{action:"pause",label:this.t("asyncButton.pause.action"),icon:"icon icon-pause",enabled:!!this.links.update&&!this.spec?.paused}),(0,r.PT)(e,0,{action:"resume",label:this.t("asyncButton.resume.action"),icon:"icon icon-play",enabled:!!this.links.update&&!0===this.spec?.paused})),(0,r.PT)(e,0,{divider:!0}),(0,r.PT)(e,0,{action:"openShell",enabled:!!this.links.view,icon:"icon icon-fw icon-chevron-right",label:this.t("action.openShell"),total:1});const o=["cloneYaml"];return e=e.filter((e=>{if(!o.includes(e.action))return e})),e}applyDefaults(){const{spec:e={}}=this;this.type===a.oU.CRON_JOB?e.jobTemplate||(e.jobTemplate={spec:{template:{spec:{restartPolicy:"Never",containers:[{imagePullPolicy:"Always",name:"container-0"}],initContainers:[]}}}}):(e.replicas||0===e.replicas||(e.replicas=1),e.template||(e.template={spec:{restartPolicy:this.type===a.oU.JOB?"Never":"Always",containers:[{...structuredClone(h)}],initContainers:[]}}),e.selector||(e.selector={})),this.spec=e}toggleRollbackModal(e=this){this.$dispatch("promptModal",{componentProps:{workload:e},component:"RollbackWorkloadDialog"})}async rollBackWorkload(e,t,n,r){const i=JSON.stringify(r);if(Array.isArray(t))throw new TypeError(this.t("promptRollback.multipleWorkloadError"));const a=t.metadata.namespace,o=t.metadata.name;await this.patch(i,{url:`/k8s/clusters/${e.id}/apis/apps/v1/namespaces/${a}/${n}/${o}`})}pause(){(0,o.hZ)(this.spec,"paused",!0),this.save()}resume(){(0,o.hZ)(this.spec,"paused",!1),this.save()}async scaleDown(){const e=this.spec.replicas-1;e>=0&&((0,o.hZ)(this.spec,"replicas",e),await this.save())}async scaleUp(){(0,o.hZ)(this.spec,"replicas",this.spec.replicas+1),await this.save()}get state(){return!0===this.spec?.paused?"paused":super.state}async openShell(){const e=await this.matchingPods();for(const t of e)if(t.isRunning)return void t.openShell();this.$dispatch("growl/error",{title:"Unavailable",message:"There are no running pods to execute a shell in."},{root:!0})}addSidecar(){return this.goToEdit({sidecar:!0})}get showPodRestarts(){return!0}get restartCount(){const e=this.pods;let t=0;return e.forEach((e=>{e.status.containerStatuses&&(t+=e.status?.containerStatuses[0].restartCount||0)})),t}get hasSidecars(){const e=this.type===a.oU.CRON_JOB?this?.spec?.jobTemplate?.spec?.template?.spec:this.spec?.template?.spec,{containers:t=[],initContainers:n=[]}=e;return t.length>1||n.length}get customValidationRules(){const e=this._type?this._type:this.type,t=e===a.oU.CRON_JOB?"spec.jobTemplate.spec.template.spec":"spec.template.spec",n=[{nullable:!1,path:"metadata.name",required:!0,translationKey:"generic.name",type:"subDomain"},{nullable:!1,path:"spec",required:!0,type:"object",validators:["containerImages"]},{nullable:!0,path:`${t}.affinity`,type:"object",validators:["podAffinity"]}];switch(e){case a.oU.DEPLOYMENT:case a.oU.REPLICA_SET:n.push({nullable:!1,path:"spec.replicas",required:!0,type:"number",translationKey:"workload.replicas"});break;case a.oU.STATEFUL_SET:n.push({nullable:!1,path:"spec.replicas",required:!0,type:"number",translationKey:"workload.replicas"}),n.push({nullable:!1,path:"spec.serviceName",required:!0,type:"string",translationKey:"workload.serviceName"});break;case a.oU.CRON_JOB:n.push({nullable:!1,path:"spec.schedule",required:!0,type:"string",validators:["cronSchedule"],translationKey:"workload.cronSchedule"})}return n}get endpoint(){return this?.metadata?.annotations?.[i.bs]}get desired(){return this.spec?.replicas||0}get available(){return this.status?.readyReplicas||0}get ready(){const e=Math.max(0,(this.status?.replicas||0)-(this.status?.unavailableReplicas||0));return this.type===a.oU.DAEMON_SET?e:`${e}/${this.desired}`}get unavailable(){return this.status?.unavailableReplicas||0}get upToDate(){return this.status?.updatedReplicas}get details(){const e=[],t=this._type?this._type:this.type,n={endpoint:{label:"Endpoints",content:this.endpoint,formatter:"WorkloadDetailEndpoints"},ready:{label:"Ready",content:this.ready},upToDate:{label:"Up-to-date",content:this.upToDate},available:{label:"Available",content:this.available}};if(t===a.oU.JOB){const{completionTime:t,startTime:n}=this.status,r=[60,60,24],i=["sec","min","hour","day"];if(n&&e.push({label:"Started",content:n,formatter:"LiveDate",formatterOpts:{addSuffix:!0}}),t&&n){const a=l()(t),o=l()(n);let s,c=a.diff(o)/1e3,u=0;while(c>=r[u]&&u<r.length)c/=r[u],u++;s=c<5?Math.floor(10*c)/10:Math.floor(c),s+=` ${this.t(`unit.${i[u]}`,{count:s})} `,s=s.trim(),e.push({label:"Duration",content:s})}}else t===a.oU.CRON_JOB&&e.push({label:"Last Scheduled Time",content:this?.status?.lastScheduleTime,formatter:"LiveDate"});switch(e.push({label:"Image",content:this.imageNames,formatter:"PodImages"}),t){case a.oU.DEPLOYMENT:e.push(n.ready,n.upToDate,n.available,u,n.endpoint);break;case a.oU.DAEMON_SET:e.push(n.ready,u,n.endpoint);break;case a.oU.REPLICA_SET:e.push(n.ready,u,n.endpoint);break;case a.oU.STATEFUL_SET:e.push(n.ready,u,n.endpoint);break;case a.oU.REPLICATION_CONTROLLER:e.push(n.ready,u,n.endpoint);break;case a.oU.JOB:e.push(n.endpoint);break;case a.oU.CRON_JOB:e.push(n.endpoint);break;case a.Sm:e.push(n.ready);break;default:break}return e}redeploy(){const e=(new Date).toISOString().replace(/\.\d+Z$/,"Z");this.spec.template.metadata||(0,o.hZ)(this.spec.template,"metadata",{});const t=this.spec.template.metadata.annotations||{};t[i.ht]=e,(0,o.hZ)(this.spec.template.metadata,"annotations",t),this.save()}async getPortsWithServiceType(){const e=[];this.containers.forEach((t=>e.push(...t.ports||[]))),(this.initContainers||[]).forEach((t=>e.push(...t.ports||[])));const t=this.$getters["schemaFor"](a.YV),n=t?await this.getServicesOwned():[],i=[],o=[],s=[];return n.length&&n.forEach((e=>{switch(e.spec.type){case"ClusterIP":i.push(...e?.spec?.ports||[]);break;case"LoadBalancer":o.push(...e?.spec?.ports||[]);break;case"NodePort":s.push(...e?.spec?.ports||[]);break;default:break}})),e.forEach((e=>{const t=e.name?e.name:`${e.containerPort}${e.protocol.toLowerCase()}${e.hostPort||e._listeningPort||""}`;if(e.name=t,!e._serviceType||""===e._serviceType){if(o.length){const n=(0,r.jq)(o,"name",t);if(n)return e._listeningPort=n.port,void(e._serviceType="LoadBalancer")}if(s.length){const n=(0,r.jq)(s,"name",t);if(n)return e._listeningPort=n.nodePort,void(e._serviceType="NodePort")}i.length&&(0,r.jq)(i,"name",t)&&(e._serviceType="ClusterIP")}})),e}get ownedByWorkload(){const e=Object.values(a.oU);if(this.metadata?.ownerReferences)for(const t of this.metadata.ownerReferences){const n=`${t.apiVersion.replace(/\/.*/,"")}.${t.kind}`.toLowerCase();if(e.includes(n))return!0}return!1}get isFromNorman(){return"norman"===(this.metadata.labels||{})["cattle.io/creator"]}get warnDeletionMessage(){return this.isFromNorman?this.t("workload.normanWarning"):null}get pods(){const e=this.metadata?.relationships||[],t=e.filter((e=>e.toType===a.Sm))[0];if(t){const e=this.$getters["podsByNamespace"](this.metadata.namespace);return e.filter((e=>(0,c.cK)(e,t.selector)))}return[]}get podGauges(){const e={};return this.pods?(this.pods.map((t=>{const{stateColor:n,stateDisplay:r}=t;e[r]?e[r].count++:e[r]={color:n.replace("text-",""),count:1}})),e):e}get jobRelationships(){if(this.type===a.oU.CRON_JOB)return((0,o.Jt)(this,"metadata.relationships")||[]).filter((e=>e.toType===a.oU.JOB))}async matchingJobs(){if(this.type===a.oU.CRON_JOB)return Promise.all(this.jobRelationships.map((e=>this.$dispatch("find",{type:a.oU.JOB,id:e.toId}))))}get jobs(){if(this.type===a.oU.CRON_JOB)return this.jobRelationships.map((e=>this.$getters["byId"](a.oU.JOB,e.toId))).filter((e=>!!e))}get jobGauges(){const e={succeeded:{color:"success",count:0},running:{color:"info",count:0},failed:{color:"error",count:0}};if(this.type===a.oU.CRON_JOB)this.jobs.forEach((t=>{const{status:n={}}=t;e.running.count+=n.active||0,e.succeeded.count+=n.succeeded||0,e.failed.count+=n.failed||0}));else{if(this.type!==a.oU.JOB)return null;{const{status:t={}}=this;e.running.count=t.active||0,e.succeeded.count=t.succeeded||0,e.failed.count=t.failed||0}}return e}get currentRevisionNumber(){if(!this.ownedByWorkload&&"Job"!==this.kind&&"CronJob"!==this.kind)return"Deployment"===this.kind?this.metadata.annotations["deployment.kubernetes.io/revision"]:this.metadata.generation}async matchingPods(){const e=await this.$dispatch("findAll",{type:a.Sm}),t=e.filter((e=>e.metadata.namespace===this.metadata.namespace)),n=(0,c._R)(this.spec.selector);return(0,c.wC)(t,n)}cleanForSave(e){const t=super.cleanForSave(e);return t.spec?.template?.spec?.containers?.forEach((e=>{this.cleanContainerForSave(e)})),t.spec?.template?.spec?.initContainers?.forEach((e=>{this.cleanContainerForSave(e)})),t}}},2505:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var r=n(68851),i=n(2841),a=n(35664),o=n(76978),s=n(25184),l=n(92043);class c extends s.A{async getPortsWithServiceType(){const e=[];this.containers.forEach((t=>e.push(...t.ports||[]))),(this.initContainers||[]).forEach((t=>e.push(...t.ports||[])));const t=this.$getters["schemaFor"](a.YV),n=t?await this.getServicesOwned():[],i=[],o=[],s=[];return n.length&&n.forEach((e=>{switch(e.spec.type){case"ClusterIP":i.push(...e?.spec?.ports||[]);break;case"LoadBalancer":o.push(...e?.spec?.ports||[]);break;case"NodePort":s.push(...e?.spec?.ports||[]);break;default:break}})),e.forEach((e=>{const t=e.name?e.name:`${e.containerPort}${e.protocol.toLowerCase()}${e.hostPort||e._listeningPort||""}`;if(e.name=t,!e._serviceType||""===e._serviceType){if(o.length){const n=(0,r.jq)(o,"name",t);if(n)return e._listeningPort=n.port,void(e._serviceType="LoadBalancer")}if(s.length){const n=(0,r.jq)(s,"name",t);if(n)return e._listeningPort=n.nodePort,void(e._serviceType="NodePort")}i.length&&(0,r.jq)(i,"name",t)&&(e._serviceType="ClusterIP")}})),e}async getServicesOwned(e=!1){const t={[a.oU.REPLICA_SET]:"replicaSet",[a.oU.DEPLOYMENT]:"deployment",[a.oU.STATEFUL_SET]:"statefulSet",[a.oU.DAEMON_SET]:"daemonSet"},n=Object.keys(this.workloadSelector)[0],r=`${t[this._type?this._type:this.type]}-${this.metadata.namespace}-${this.metadata.name}`,i=this.workloadSelector[n],o=await this.$dispatch("cluster/findAll",{type:a.YV,opt:{force:e}},{root:!0});return(o||[]).filter((e=>(e.spec?.selector||{})[n]===i||(e.spec?.selector||{})[n]===r))}get imageNames(){let e;const t=[];return e=this.type===a.oU.CRON_JOB?(0,o.Jt)(this,"spec.jobTemplate.spec.template.spec.containers"):(0,o.Jt)(this,"spec.template.spec.containers"),e&&e.forEach((e=>{t.includes(e.image)||t.push(e.image)})),t.map(l.qO)}get containers(){if(this.type===a.oU.CRON_JOB){const{spec:{jobTemplate:{spec:{template:{spec:{containers:e}}}}}}=this;return e}if(this.spec.containers)return this.spec.containers;const{spec:{template:{spec:{containers:e}}}}=this;return e}get initContainers(){if(this.type===a.oU.CRON_JOB){const{spec:{jobTemplate:{spec:{template:{spec:{initContainers:e}}}}}}=this;return e}if(this.spec.initContainers)return this.spec.initContainers;const{spec:{template:{spec:{initContainers:e}}}}=this;return e}get workloadSelector(){return{"workload.user.cattle.io/workloadselector":`${this._type?this._type:this.type}-${this.metadata.namespace}-${this.metadata.name}`}}async servicesFromContainerPorts(e,t){const n={apiVersion:this.apiVersion,controller:!0,kind:this.kind,name:this.metadata.name,uid:this.metadata.uid},r={[i.nN]:JSON.stringify([`${this.metadata.namespace}/${this.metadata.name}`]),[i.d6]:"true"};let s={type:a.YV,spec:{ports:[],selector:this.workloadSelector,type:"ClusterIP"},metadata:{name:this.metadata.name,namespace:this.metadata.namespace,annotations:r,ownerReferences:[n]}},l={type:a.YV,spec:{ports:[],selector:this.workloadSelector,type:"NodePort"},metadata:{name:`${this.metadata.name}-nodeport`,namespace:this.metadata.namespace,annotations:r,ownerReferences:[n]}},c={type:a.YV,spec:{ports:[],selector:this.workloadSelector,type:"LoadBalancer",externalTrafficPolicy:"Cluster"},metadata:{name:`${this.metadata.name}-loadbalancer`,namespace:this.metadata.namespace,annotations:r,ownerReferences:[n]}};const u=await this.getServicesOwned(this.isFromNorman);u&&u.length&&u.forEach((e=>{switch(e.spec.type){case"ClusterIP":s=e,s.spec.ports=[];break;case"NodePort":l=e,l.spec.ports=[];break;case"LoadBalancer":c=e,c.spec.ports=[];break;default:break}})),t.forEach((e=>{const t={name:e.name,protocol:e.protocol,port:e.containerPort,targetPort:e.containerPort};if(""!==e._serviceType)switch(s.spec.ports.push(t),e._serviceType){case"NodePort":{const n=(0,o.o8)(t);e._listeningPort&&(n.nodePort=e._listeningPort),l.spec.ports.push(n);break}case"LoadBalancer":{const n=(0,o.o8)(t);e._listeningPort&&(n.port=e._listeningPort),c.spec.ports.push(n);break}default:break}}));const d=[],h=[];let p;if(s.spec.ports.length>0?(p=s.id?s:await this.$dispatch("cluster/create",s,{root:!0}),d.push(p)):s.id&&h.push(s),l.spec.ports.length>0){let e;e=l.id?l:await this.$dispatch("cluster/create",l,{root:!0}),d.push(e)}else l.id&&h.push(l);if(c.spec.ports.length>0){let e;e=c.id?c:await this.$dispatch("cluster/create",c,{root:!0});const n=t.filter((e=>e._ipam))||[];n.length>0&&(e.metadata.annotations[i.rk.CLOUD_PROVIDER_IPAM]=n[0]._ipam),d.push(e)}else c.id&&h.push(c);return{toSave:d,toRemove:h}}cleanForSave(e){const t=super.cleanForSave(e);return delete t.__active,delete t.type,t}cleanContainerForSave(e){return delete e.__active,delete e.active,delete e._init,delete e.error,e}}},27436:function(e,t,n){"use strict";function r(e){return()=>{}}function i(e){return()=>{}}function a(e){return()=>{}}function o(e){return()=>{}}function s(e){return()=>{}}function l(e){return()=>{}}function c(e){return()=>{}}function u(e){return()=>{}}function d(e){return()=>{}}function h(e){}function p(e){}function f(e){}function m(e){}function g(e){return()=>{}}function v(e){}function b(e){}function y(e){}n.d(t,{Gw:function(){return s},L7:function(){return d},Lk:function(){return i},Nh:function(){return h},PP:function(){return l},dM:function(){return p},eG:function(){return o},gc:function(){return v},hi:function(){return b},ho:function(){return a},iE:function(){return u},lB:function(){return f},oe:function(){return m},qq:function(){return r},ro:function(){return g},uc:function(){return c},yo:function(){return y}})},63905:function(e,t,n){"use strict";n.d(t,{BH:function(){return S},wA:function(){return _}});var r=n(82451),i=n.n(r),a=n(35664),o=n(86565),s=n(37648),l=n(50382),c=n(79401),u=n(90599),d=n(37417),h=n(50667),p=n(46392),f=n(4364);const m="all",g="merge",v="multi",b="none",y=15,w=15,E=10;async function _(e,t,n,r){if(n.url.includes(o.QF)||n.url.includes(o.lm)){const[i,l,c,...u]=n.url.split("/"),d=u.join("/"),h=l===o.lm,p=d?"getSpoofedInstance":"getSpoofedInstances",f=e[`${t}/all`](a.yx),m=await e[`type-map/${p}`](c,r,d),g=h?(0,s.mH)(f,c,m):m;return d&&!h?g:{data:g}}}async function S(e,t=!0){const{getters:n,dispatch:r,commit:i,rootGetters:o}=e,s=await r("findAll",{type:a.yx,opt:{url:"schemas",load:!1}}),l=o["type-map/allSpoofedSchemas"];Array.isArray(s.data)?s.data=s.data.concat(l):Array.isArray(s)&&(s.data=s.concat(l)),s.data.forEach(d.w),i("loadAll",{ctx:e,type:a.yx,data:s.data,revision:s.revision}),!1!==t&&r("watch",{type:a.yx,revision:s.revision});const c=n.all(a.yx);return c}const k=(e,t,n)=>n.namespaced?e.matching(t,null,n.namespaced,{skipSelector:!0}):e.all(t);t.Ay={request(){throw new Error("Not Implemented")},loadSchemas:S,async loadDataPage(e,{type:t,opt:n}){const{getters:r,commit:i,dispatch:a}=e;t=r.normalizeType(t),r.typeRegistered(t)||i("registerType",t);const o=r["loadCounter"](t);try{const s=await a("request",{opt:n,type:t}),l=r["loadCounter"](t);if(o!==l)return;i("loadAdd",{ctx:e,type:t,data:s.data}),s.pagination?.next?a("loadDataPage",{type:t,opt:{...n,url:s.pagination?.next}}):(n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!1,{root:!0}),n.namespaced?i("setHaveNamespace",{type:t,namespace:n.namespaced}):i("setHaveAll",{type:t}))}catch(s){return n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!1,{root:!0}),Promise.reject(s)}},async findAll(e,{type:t,opt:n}){const{getters:r,commit:i,dispatch:a,rootGetters:o}=e;if(n=n||{},t=r.normalizeType(t),r.typeRegistered(t)||i("registerType",t),!n.force&&(r["haveAll"](t)||r["haveAllNamespace"](t,n.namespaced))){if(!1!==n.watch){const e={type:t,revision:"",namespace:n.watchNamespace||n.namespaced};a("watch",e)}return k(r,t,n)}let s=void 0===n.load?m:n.load;!1!==n.load&&n.load!==b||(s=b);const l=o["type-map/optionsFor"](t);f.log(`Find All: [${e.state.config.namespace}] ${t}`),n=n||{},n.url=r.urlFor(t,null,n),n.stream=!1!==n.stream&&s!==b,n.depaginate=(0,p.Ng)(l?.depaginate,{ctx:e,args:{type:t,opt:n}});let c,d=!1;n.incremental&&(i("incrementLoadCounter",t),n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!0,{root:!0}),c={...n,url:(0,h.R_)(n.url,"limit",`${n.incremental}`)},n.url=(0,h.R_)(n.url,"limit","100"),d=!0,n.force&&i("forgetType",t));let y,w,E=!1,_=[];n.onData=function(n){if(E){if(_.push(n),_.length>10){const t=_;_=[],i("loadMulti",{ctx:e,data:t})}}else i("forgetAll",{type:t}),E=!0,w=n};try{!n.incremental&&n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!0,{root:!0});const o=await a("request",{opt:n,type:t});if(E){_.length&&(i("loadMulti",{ctx:e,data:_}),_=[]),i("loadedAll",{type:t});const n=r.all(t);o.finishDeferred(n),y=w}else y=o}catch(x){return!n.incremental&&n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!1,{root:!0}),Promise.reject(x)}if(s===b)return!n.incremental&&n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!1,{root:!0}),y;if(y.data&&(s===v?i("loadMulti",{ctx:e,data:y.data}):s===g?i("loadMerge",{ctx:e,type:t,data:y.data,existing:!0}):i("loadAll",{ctx:e,type:t,data:y.data,revision:y.revision,skipHaveAll:d,namespace:n.namespaced,pagination:n.pagination?{request:n.pagination,result:{count:y.count,pages:y.pages,timestamp:(new Date).getTime()}}:void 0}),n.incremental&&a("loadDataPage",{type:t,opt:c})),!1!==n.watch){const e={type:t,revision:y.revision,namespace:n.watchNamespace||n.namespaced,force:!0===n.forceWatch};a("watch",e)}const S=k(r,t,n);return!n.incremental&&n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!1,{root:!0}),u.A.gcUpdateLastAccessed(e,t),S},async findPage(e,{type:t,opt:n}){const{getters:r,commit:i,dispatch:a}=e;if(n=n||{},!n.pagination)return void f.error("Attempting to find a page for a resource but no pagination settings supplied",t);if(t=r.normalizeType(t),r.typeRegistered(t)||i("registerType",t),!n.transient&&!n.force&&r["havePaginatedPage"](t,n))return k(r,t,n);let o;f.log(`Find Page: [${e.state.config.namespace}] ${t}. Page: ${n.pagination.page}. Size: ${n.pagination.pageSize}`),n=n||{},n.url=r.urlFor(t,null,n);try{n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!0,{root:!0}),o=await a("request",{opt:n,type:t})}catch(l){return n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!1,{root:!0}),Promise.reject(l)}await a("unwatch",{type:t,all:!0});const s=n.pagination?{request:{namespace:n.namespaced,pagination:n.pagination},result:{count:o.count,pages:o.pages||Math.ceil(o.count/(n.pagination.pageSize||Number.MAX_SAFE_INTEGER)),timestamp:(new Date).getTime()}}:void 0;return n.transient||i("loadPage",{ctx:e,type:t,data:o.data,pagination:s}),n.hasManualRefresh&&a("resource-fetch/updateManualRefreshIsLoading",!1,{root:!0}),u.A.gcUpdateLastAccessed(e,t),n.transient?{data:o.data,pagination:s}:k(r,t,n)},async findMatching(e,{type:t,selector:n,opt:r,namespace:i}){const{getters:a,commit:o,dispatch:s,rootGetters:l}=e;if(r=r||{},f.log(`Find Matching: [${e.state.config.namespace}] ${t}`,n),t=a.normalizeType(t),a.typeRegistered(t)||o("registerType",t),!0!==r.force&&a["haveSelector"](t,n))return a.matching(t,n,i);const c=l["type-map/optionsFor"](t);r=r||{},r.labelSelector=n,r.url=a.urlFor(t,null,r),r.depaginate=(0,p.Ng)(c?.depaginate,{ctx:e,args:{type:t,opt:r}});const d=await s("request",{opt:r,type:t});return!1===r.load?d.data:(o("loadSelector",{ctx:e,type:t,entries:d.data,selector:n,revision:d.revision}),!1!==r.watch&&s("watch",{type:t,selector:n,revision:d.revision,force:!0===r.forceWatch}),u.A.gcUpdateLastAccessed(e,t),a.matching(t,n,i))},async find(e,{type:t,id:n,opt:r}){if(!n)return void f.error("Attempting to find a resource with no id",t,n);const{getters:i,dispatch:a}=e;let o;if(r=r||{},t=(0,c.AZ)(t),f.log(`Find: [${e.state.config.namespace}] ${t} ${n}`),!0!==r.force&&(o=i.byId(t,n),o))return o;r=r||{},r.url=i.urlFor(t,n,r);const s=await a("request",{opt:r,type:t});if(await a("load",{data:s}),!1!==r.watch){const e={type:t,id:n,namespace:r.namespaced,revision:"undefined"!==typeof r.revision?r.revision:s?.metadata?.resourceVersion,force:!0===r.forceWatch},i=n.indexOf("/");i>0&&(e.namespace=n.substr(0,i),e.id=n.substr(i+1)),a("watch",e)}return o=i.byId(t,n),u.A.gcUpdateLastAccessed(e,t),o},load(e,{data:t,existing:n}){const{getters:r,commit:i}=e;let o=(0,c.AZ)(t.type);r.typeRegistered(o)||i("registerType",o),t.baseType&&t.baseType!==t.type&&(o=(0,c.AZ)(t.baseType),r.typeRegistered(o)||i("registerType",o)),o===a.yx&&(0,d.w)(t);const s=r.keyFieldForType(o),l=t?.[s]||n?.[s];if(l)return i("load",{ctx:e,data:t,existing:n}),o===a.yx&&i("type-map/schemaChanged",null,{root:!0}),r["byId"](o,l);f.warn("Attempting to load a resource with no id",t,n)},loadMulti(e,t){const{commit:n}=e;n("loadMulti",{data:t,ctx:e})},batchChanges(e,t){const{commit:n}=e;n("batchChanges",{ctx:e,batch:t})},loadAll(e,{type:t,data:n}){const{commit:r}=e;r("loadAll",{ctx:e,type:t,data:n})},create(e,t){return(0,l.L8)(e,t)},createMany(e,t){return t.map((t=>(0,l.L8)(e,t)))},async createPopulated(e,t){let n=null;const r=e.getters["schemaFor"](t.type);return r&&(r.fetchResourceFields&&await r.fetchResourceFields(),n=e.getters["defaultFor"](t.type,r)),i()(n,t),(0,l.L8)(e,n)},clone(e,{resource:t}={}){return(0,l.L8)(e,t.toJSON(),!0)},forgetType({commit:e,dispatch:t,state:n},r){n.started.filter((e=>e.type===r)).forEach((e=>t("unwatch",e))),e("forgetType",r)},promptRemove({commit:e,state:t},n){e("action-menu/togglePromptRemove",n,{root:!0})},promptModal({commit:e,state:t},n){e("action-menu/togglePromptModal",n,{root:!0})},resourceAction({getters:e,dispatch:t},{resource:n,actionName:r,body:i,opt:a}){throw new Error("Not Implemented")},collectionAction({getters:e,dispatch:t},{type:n,actionName:r,body:i,opt:a}){throw new Error("Not Implemented")},cleanForNew(e,t){throw new Error("Not Implemented")},createNamespace(e,t){throw new Error("Not Implemented")},cleanForDiff(e,t){throw new Error("Not Implemented")},cleanForDetail(e,t){return t},cleanForDownload(e,t){return t},async waitForSchema({getters:e,dispatch:t},{type:n}){let r=y,i=null;while(!i&&r>0)i=e["schemaFor"](n,!1,!1),i||(r===E&&f.warn(`Schema for ${n} not available... retrying...`),await new Promise((e=>setTimeout(e,1e3))),r--);0===r&&(f.warn(`Schema for ${n} still unavailable... loading schemas again...`),await t("loadSchemas",!0))},async waitForHaveAll({getters:e},{type:t,throwError:n=!1,attempts:r=w}){let i=r,a=null;while(!a&&i>0)a=e["haveAll"](t),a||(i===E&&f.warn(`wait for all of ${t} continuing...`),await new Promise((e=>setTimeout(e,1e3))),i--);if(0===i&&n)throw new Error(`Failed to wait for all of ${t}`)},incrementLoadCounter({commit:e},t){e("incrementLoadCounter",t)},garbageCollect(e,t){return u.A.garbageCollect(e,t)},gcResetStore({state:e}){u.A.gcResetStore(e)}}},50382:function(e,t,n){"use strict";n.d(t,{L8:function(){return a},vX:function(){return i}});var r=n(73883);const i="byType";function a(e,t,n=!1){if(t instanceof r.Ay)return t;const i=e.getters["classify"](t),a=new i(t,e,null,n);return a}},86794:function(e,t,n){"use strict";n.d(t,{d:function(){return p}});var r=n(35664),i=n(38823),a=n(37648),o=n(73883),s=n(96730),l=n(79401),c=n(48074),u=n(90599),d=n(15092),h=n(4364);const p=(e,t)=>(n,r,i)=>{i=i||{},n=t.normalizeType(n);let a,o=i.url;if(!o){if(a=t.schemaFor(n),!a)throw new Error(`Unknown schema for type: ${n}`);if(o=a.links.collection,!o)throw new Error(`You don't have permission to list this type: ${n}`);r&&(o+=`/${r}`)}if(!o.startsWith("/")&&!o.startsWith("http")){const t=e.config.baseUrl.replace(/\/$/,"");o=`${t}/${o}`}return o=t.urlOptions(o,i,a),o};function f(e,t){if(!e.namespaced||!e.byNamespace||null===t||null===e.count)return e.count;let n=0;for(const r of t)n+=e.byNamespace[r]?.count||0;return n}t.A={all:(e,t,n)=>r=>(r=t.normalizeType(r),t.typeRegistered(r)||(h.warn(`All of ${r} is not loaded yet`),s.Ay.registerType(e,r)),u.A.gcUpdateLastAccessed({state:e,getters:t,rootState:n},r),e.types[r].list),matching:(e,t,n)=>(r,a,o,s={skipSelector:!1})=>{let l=t["all"](r);return o&&"string"===typeof o&&(l=l.filter((e=>e.namespace===o))),u.A.gcUpdateLastAccessed({state:e,getters:t,rootState:n},r),s.skipSelector?l:l.filter((e=>(0,i.cK)(e,a)))},byId:(e,t,n)=>(r,i)=>{r=t.normalizeType(r);const a=e.types[r];if(a)return u.A.gcUpdateLastAccessed({state:e,getters:t,rootState:n},r),a.map.get(i)},pathExistsInSchema:(e,t)=>(e,t)=>!1,schema:(e,t)=>n=>{n=t.normalizeType(n);const i=e.types[r.yx],a=t.keyFieldForType(r.yx);return i.list.find((e=>{const r=t.normalizeType(e[a]);return r===n||r.endsWith(`.${n}`)}))},schemaName:(e,t)=>n=>{n=t.normalizeType(n);const i=e.types[r.yx],a=t.keyFieldForType(r.yx),o=i.list.find((e=>{const r=t.normalizeType(e[a]);return r===n||r.endsWith(`.${n}`)}));if(!o)return;const s=Array.isArray(o)?o:[o],l=s.map((e=>e[a])).sort(((e,t)=>e.length-t.length));return l[0]?l[0]:n},schemaFor:(e,t)=>(n,i=!1,a=!0)=>{const o=e.types[r.yx];if(n=t.normalizeType(n),!o){if(a)throw new Error("Schemas aren't loaded yet");return null}const s=o.map.get(n);if(!s&&i){const e=t.schemaName(n);if(e)return t.schemaFor(e)}return s},defaultFor:(e,t)=>(e,n,r=null)=>{let i;if(r)if(n.requiresResourceFields)i=r[e]?.resourceFields||{};else{const n=t["schemaFor"](e);i=n?.resourceFields||{}}else r=n.schemaDefinitions||{},i=n.resourceFields||{};const o={};for(const s in i){const e=i[s];if(!e)continue;const l=(0,a.fs)(e.type),c=(0,a.Cd)("map",l,e),u=(0,a.Cd)("array",l,e),d=(0,a.Cd)("reference",l);c||"map"===l||"json"===l?o[s]=t.defaultFor(l,n,r):u||"array"===l?o[s]=[]:d?o[s]=void 0:a.xs.includes(l)?"undefined"===typeof e["default"]?o[s]=void 0:o[s]=e["default"]:o[s]=t.defaultFor(l,n,r)}return o},canList:(e,t)=>e=>{const n=t.schemaFor(e);return n&&n.hasLink("collection")},typeRegistered:(e,t)=>n=>(n=t.normalizeType(n),!!e.types[n]),typeEntry:(e,t)=>n=>(n=t.normalizeType(n),e.types[n]),haveAll:(e,t)=>n=>{n=t.normalizeType(n);const r=e.types[n];return r&&r.haveAll||!1},haveAllNamespace:(e,t)=>(n,r)=>{if(!r)return!1;n=t.normalizeType(n);const i=e.types[n];return!!i&&i.haveNamespace===r},havePaginatedPage:(e,t)=>(n,r)=>{if(!r.pagination)return!1;n=t.normalizeType(n);const i=e.types[n];if(i?.havePage){const{namespace:e,pagination:t}=i.havePage.request,{namespace:n,pagination:a}={namespace:r.namespaced,pagination:r.pagination};return i.havePage&&e===n&&d.A.paginationEqual(t,a)}return!1},haveNamespace:(e,t)=>n=>(n=t.normalizeType(n),e.types[n]?.haveNamespace||null),havePage:(e,t)=>n=>(n=t.normalizeType(n),e.types[n]?.havePage||null),haveSelector:(e,t)=>(n,r)=>{n=t.normalizeType(n);const i=e.types[n];return i&&i.haveSelector[r]||!1},normalizeType:()=>e=>(0,l.AZ)(e),keyFieldForType:()=>e=>(0,l.BZ)(e),urlFor:p,urlOptions:()=>(e,t,n)=>e,storeName:e=>e.config.namespace,defaultModel:()=>()=>{},classify:(e,t,n)=>t=>(0,c.$)(e.config.namespace,t?.type,t?.metadata?.name,n)||o.Ay,cleanResource:()=>(e,t)=>t,isClusterStore:e=>e.config.isClusterStore,loadCounter:(e,t)=>n=>(n=t.normalizeType(n),e.types[n]?e.types[n].loadCounter:0),gcIgnoreTypes:()=>({}),count:(e,t,n,i)=>e=>{let n=e;const{name:a,count:o}=n;if(!a)throw new Error(`Resource type required to calc count: ${JSON.stringify(e)}`);if(!o){const e=t.schemaFor(a),i=t.all(r.i2)?.[0]?.counts||{},o=i[a];n={count:o?o.summary.count||0:null,byNamespace:o?o.namespaces:{},revision:o?o.revision:null,namespaced:e?.attributes?.namespaced}}const s=n?.namespaced&&!i.isAllNamespaces?Object.keys(i.activeNamespaceCache||{}):[];return f(n,s.length?s:null)},generation:(e,t)=>n=>{n=t.normalizeType(n);const r=e.types[n];if(r)return r.generation},paginationEnabled:(e,t,n,r)=>t=>{const n="object"===typeof t?t.id:t,i="object"===typeof t?t.context:void 0,a=e.config.namespace,o=n||i?{id:n,context:i}:null;return d.A.isEnabled({rootGetters:r},{store:a,resource:o})}}},25314:function(e,t,n){"use strict";n.d(t,{Ut:function(){return l},fs:function(){return s}});var r=n(63905),i=n(86794),a=n(96730),o=n(9274);const s={strict:!1,namespaced:!0,state(){return{...l()}},getters:{...i.A},mutations:{...a.Ay},actions:{...r.Ay}},l=(e,t,n)=>({config:{baseUrl:t,namespace:e,isClusterStore:n},types:{},$ctx:(0,o.markRaw)({})})},48074:function(e,t,n){"use strict";n.d(t,{$:function(){return l}});var r=n(79401);function i(e){return n(93197)(`./${e}`)}var a=n(4364);const o={};function s(e,t,n){const r=e[t];if(r)return r;if("undefined"!==typeof r)return null;try{const r=n.$plugin.getDynamic("models",t);let a;if(a=r?"function"===typeof r?r():r:i(t),a?.default?.prototype)return e[t]=a.default,a.default}catch(o){"MODULE_NOT_FOUND"!==o?.code&&a.error("Find error",t,o)}return e[t]=null,null}function l(e,t,n,i){let a;t=(0,r.AZ)(t).replace(/\//g,"");const l=[`${e}/${t}`,t];for(const r of l)if(a=s(o,r,i),a)return a;return null}},96730:function(e,t,n){"use strict";n.d(t,{AJ:function(){return y},HC:function(){return h},Hh:function(){return m},TF:function(){return b},WI:function(){return g},aW:function(){return E},gh:function(){return w},zp:function(){return v}});var r=n(9274),i=n(68851),a=n(35664),o=n(79401),s=n(37417),l=n(50382),c=n(90599),u=n(4364);function d(e,t){let n=e.types[t];return n||(n={list:[],haveAll:!1,haveSelector:{},haveNamespace:void 0,havePage:void 0,revision:0,generation:0,loadCounter:0,map:new Map},e.types[t]=n),n}function h(e,t){const n={};for(const r of Object.keys(e))delete e[r],n[r]=!0;let i=!1;for(const r of Object.keys(t))i||n[r]||(i=!0),e[r]=t[r];return i?(0,r.reactive)(e):e}function p(e,t,n){return t=n.cleanResource(e,t),h(e,t)}function f(e,t){const{getters:n}=e,r=(0,o.AZ)(t),i=n.keyFieldForType(r),a=e.rootGetters["type-map/optionsFor"](r);return{type:r,keyField:i,opts:a}}function m(e,{data:t,ctx:n,existing:c,cachedArgs:u}){const{getters:h}=n,{type:m,keyField:g,opts:v}=u||f(n,t.type);let b=m;const y=v?.limit;b===a.yx&&(0,s.w)(t);const w=t[g];let E=d(e,b);E.generation++;let _=E.map.get(w);const S=!!_;if(c&&!c.id){const e=p(c,t,h);_=S?p(_,e,h):e}else _=S?p(_,t,h):(0,r.reactive)((0,l.L8)(n,t));if(S||(E.list.push(_),E.map.set(w,_)),y&&E.list.length>y){const e=E.list.shift();E.map.delete(e.id)}return t.baseType&&(b=(0,o.AZ)(t.baseType),E=e.types[b],E&&((0,i.PG)(E.list,_),E.map.set(w,_))),E.havePage=!1,_}function g(e,t){const n=e.types[t];if(n)return n.haveAll=!1,n.haveSelector={},n.haveNamespace=void 0,n.havePage=void 0,n.revision=0,n.generation=0,(0,i.IU)(n.list),n.map.clear(),delete e.types[t],c.A.gcResetType(e,t),!0}function v(e,t){u.log("Reset store: ",e.config.namespace);for(const n of Object.keys(e.types))t(`${e.config.namespace}/forgetType`,n);c.A.gcResetStore(e)}function b(e,t,n){if(t){let r=(0,o.AZ)(t.type);const a=n[`${e.config.namespace}/keyFieldForType`](r),s=t[a];let l=e.types[r];l&&((0,i.Gj)(l.list,t),l.map.delete(s)),t.baseType&&(r=(0,o.AZ)(t.baseType),l=e.types[r],l&&((0,i.Gj)(l.list,t),l.map.delete(s)))}}function y(e,{ctx:t,batch:n}){const i=Object.keys(n),c={};i.forEach((e=>{c[e]=n[e];const r=t.rootGetters["type-map/optionsFor"](e);if(r?.alias?.length>0){const t=r?.alias||[];t.forEach((t=>{c[t]={};for(const[r,i]of Object.entries(n[e]))c[t][r]={...i,type:t}}))}}));const u=Object.keys(c);u.forEach((n=>{const i=(0,o.AZ)("counts"===n?a.i2:n),u=(0,o.BZ)(i),h=d(e,i),f={};h.list.forEach(((e,t)=>{f[e[u]]=t}));const m=[];Object.keys(c[i]).forEach((e=>{const n=f[e],o=c[i][e];if(0===Object.keys(o).length&&void 0!==n)h.map.delete(e),m.push(n);else if(0===Object.keys(o).length);else{i===a.yx&&(0,s.w)(o);const c=(0,r.reactive)((0,l.L8)(t,o));void 0===n?(h.list.push(c),h.map.set(e,c),f[c[u]]=h.list.length-1):p(h.list[n],o,t.getters)}})),m.sort().forEach(((e,t)=>{h.list.splice(e-t,1)}));const g=t.rootGetters["type-map/optionsFor"](n),v=g?.limit;if(v&&h.list.length>v){const e=h.list.shift();h.map.delete(e.id)}h.generation++}))}function w(e,{type:t,data:n,ctx:a,skipHaveAll:o,namespace:s,revision:c}){const{getters:u}=a;if(!n)return;const h=a.rootGetters["type-map/optionsFor"](t),p=h?.limit;p&&(n=n.slice(-p));const f=u.keyFieldForType(t),m=(0,r.reactive)(n.map((e=>(0,l.L8)(a,e)))),g=d(e,t);(0,i.IU)(g.list),g.map.clear(),g.revision=c||0,g.generation++,(0,i.cn)(g.list,m);for(let r=0;r<m.length;r++)g.map.set(m[r][f],m[r]);return o||(s?(g.havePage=!1,g.haveNamespace=s,g.haveAll=!1):(g.havePage=!1,g.haveNamespace=!1,g.haveAll=!0)),m}function E(e,{type:t,data:n,ctx:r}){const{getters:i}=r,a=i.keyFieldForType(t),o=f(r,n?.[0]?.type);n.forEach((n=>{const i=e.types[t].map.get(n[a]);m(e,{data:n,ctx:r,existing:i,cachedArgs:o})}))}t.Ay={registerType:d,load:m,applyConfig(e,t){e.config||(e.config={}),Object.assign(e.config,t)},loadMulti(e,{data:t,ctx:n}){for(const r of t)m(e,{data:r,ctx:n})},loadSelector(e,{type:t,entries:n,ctx:r,selector:i,revision:a}){const o=d(e,t),s=f(r,n?.[0]?.type);for(const l of n)m(e,{data:l,ctx:r,cachedArgs:s});o.haveSelector[i]=!0,o.revision=a||0},loadAll:w,batchChanges:y,loadMerge(e,{type:t,data:n,ctx:r}){const{commit:i,getters:a}=r,o=a.keyFieldForType(t),s=e.types[t],l=f(r,n?.[0].type);n.forEach((n=>{const i=e.types[t].map.get(n[o]);m(e,{data:n,ctx:r,existing:i,cachedArgs:l})})),s.list.forEach((e=>{n.find((t=>t.id===e.id))||i("remove",e)}))},loadAdd:E,loadPage(e,{type:t,data:n,ctx:a,pagination:o}){if(!n)return;const s=a.getters.keyFieldForType(t),c=(0,r.reactive)(n.map((e=>(0,l.L8)(a,e)))),u=d(e,t);(0,i.IU)(u.list),u.map.clear(),u.generation++,(0,i.cn)(u.list,c);for(let r=0;r<c.length;r++)u.map.set(c[r][s],c[r]);return u.havePage=o,u.haveNamespace=void 0,u.haveAll=void 0,c},forgetAll(e,{type:t}){const n=d(e,t);(0,i.IU)(n.list),n.map.clear(),n.generation++},setHaveAll(e,{type:t}){const n=d(e,t);n.haveAll=!0},setHaveNamespace(e,{type:t,namespace:n}){const r=d(e,t);r.haveNamespace=n},loadedAll(e,{type:t}){const n=d(e,t);n.generation++,n.haveAll=!0},remove(e,t){t&&b(e,t,this.getters)},reset(e){v(e,this.commit)},forgetType:g,incrementLoadCounter(e,t){const n=e.types[t];n&&n.loadCounter++}}},79401:function(e,t,n){"use strict";n.d(t,{AZ:function(){return l},BZ:function(){return s},Rq:function(){return c}});var r=n(35664),i=n(76978),a=n(4364);const o={[r.yx]:"_id",default:"id"};function s(e){return o[e]||o["default"]}function l(e){return e=(e?.type||e||"").toLowerCase(),e}async function c(e,t,n,r,o,s){const l=await o.dispatch(`${s}/cleanForDiff`,e,{root:!0}),c=await o.dispatch(`${s}/cleanForDiff`,t.toJSON(),{root:!0}),u=await o.dispatch(`${s}/cleanForDiff`,n.toJSON(),{root:!0}),d=(0,i.no)(l,u),h=(0,i.no)(l,c),p=(0,i.MA)(d,h);if(a.log("Background Change",d),a.log("User Change",h),a.log("Conflicts",p),t.metadata.resourceVersion=n.metadata.resourceVersion,(0,i.TJ)(t,d),p.length){const e=[r["i18n/t"]("validation.conflict",{fields:p.join(", "),fieldCount:p.length})];return e}return!1}},73883:function(e,t,n){"use strict";n.d(t,{qE:function(){return Y},xj:function(){return ie},jv:function(){return ne},uU:function(){return oe},Ay:function(){return he},rv:function(){return ue},hb:function(){return re},aB:function(){return le},ch:function(){return se},gs:function(){return ce}});var r=n(2841),i=n(14220),a=n(91462),o=n(68851),s=n(3514),l=n.n(s);function c(e,t,n,r){const i=r.includes("verifyLocal"),a=e.localOutputRefs||[],o=e.globalOutputRefs||[];i?l()(a)&&l()(o)&&n.push(t["i18n/t"]("validation.flowOutput.both")):l()(o)&&n.push(t["i18n/t"]("validation.flowOutput.global"))}function u(e,t,n,r){l()(e)||l()(e.api_key)&&n.push(t["i18n/t"]("validation.output.logdna.apiKey"))}var d=n(96047);function h(e,t,n,r){const{ports:i,type:a}=e;return"ExternalName"===a?n:l()(i)?(n.push(t["i18n/t"]("validation.required",{key:"Port Rules"})),n):(i.forEach(((e,r,i)=>{const{name:a,nodePort:o,port:s,targetPort:c}=e,u=r+1;if(i.length>1&&l()(a)&&n.push(t["i18n/t"]("validation.service.ports.name.required",{position:u})),!l()(a)){const e=(0,d.um)(a,"name",t,void 0,n);l()(e)||(n=n.length&&n.length>0?[...n,...e]:e)}if(o){const e=parseInt(o,10);isNaN(e)&&n.push(t["i18n/t"]("validation.service.ports.nodePort.requiredInt",{position:u}))}if(s){const e=parseInt(s,10);isNaN(e)&&n.push(t["i18n/t"]("validation.service.ports.port.requiredInt",{position:u}))}else n.push(t["i18n/t"]("validation.service.ports.port.required",{position:u}));if(c){const e=t["i18n/t"]("validation.service.ports.targetPort.ianaAt",{position:u}),r=parseInt(c,10),i=new RegExp("^\\d+$"),a=i.test(c);if(a)(r<1||r>65535)&&n.push(t["i18n/t"]("validation.service.ports.targetPort.between",{position:u}));else{const r={ianaServiceName:!0,maxLength:15,validChars:"A-Za-z0-9-"},i=(0,d.um)(c,e,t,r,n);l()(i)||n.push(...i)}}else n.push(t["i18n/t"]("validation.service.ports.targetPort.required",{position:u}))})),n)}function p(e,t,n,r){const i=["ClusterIP","NodePort","LoadBalancer"],a=e?.type;return i.includes(a),n}function f(e,t,n,r){if("ExternalName"===e?.type)if(l()(e?.externalName))n.push(t["i18n/t"]("validation.service.externalName.none"));else{const r=(0,d.cO)(e.externalName,"ExternalName",t,void 0,n);l()(r)||(n=n.length&&n.length>0?[...n,...r]:r)}return n}var m=n(52103),g=n.n(m);function v(e,t,n,r){return l()(e?.groups)&&n.push(t["i18n/t"]("validation.prometheusRule.groups.required")),n}function b(e=[],t,n,r){return e.forEach(((e,r)=>{const i=r+1;l()(e?.name)&&n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.name",{index:i})),l()(e?.rules)?n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.singleEntry",{index:i})):e.rules.forEach(((e,r)=>{const a=r+1;g()(e,"alert")&&l()(e?.alert)?n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.rule.alertName",{groupIndex:i,ruleIndex:a})):g()(e,"record")&&l()(e?.record)&&n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.rule.recordName",{groupIndex:i,ruleIndex:a})),(g()(e,"expr")&&l()(e.expr)||!g()(e,"expr"))&&n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.rule.expr",{groupIndex:i,ruleIndex:a})),g()(e,"alert")&&(g()(e,"labels")&&l()(e.labels)||!g()(e,"labels"))&&n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.rule.labels",{groupIndex:i,ruleIndex:a}))}))})),n}function y(e,t,n,r){l()(e?.match)&&l()(e?.["match_re"])&&n.push(t["i18n/t"]("validation.monitoring.route.match"))}function w(e,t,n,r,i){/^\d+[hms]$/.test(e)||n.push(t["i18n/t"]("validation.monitoring.route.interval",{key:i}))}var E=n(76978);function _(e,t,n){let r;r=e.jobTemplate?(0,E.Jt)(e,"jobTemplate.spec.template.spec"):(0,E.Jt)(e,"template.spec"),r.containers&&r.containers.length?r.containers.forEach((e=>{e&&!e.image&&n.push(t["i18n/t"]("workload.validation.containerImage",{name:e.name}))})):n.push(t["i18n/t"]("validation.required",{key:t["i18n/t"]("workload.container.titles.containers")}))}var S=n(70500);function k(e,t,n){if(!e)return;const{podAffinity:r,podAntiAffinity:i}=e;if(r&&!(0,E.Im)(r)){const{preferredDuringSchedulingIgnoredDuringExecution:e=[],requiredDuringSchedulingIgnoredDuringExecution:i=[]}=r;e.forEach(((e,r)=>{const i={index:r,group:t["i18n/t"]("validation.podAffinity.affinityTitle"),rules:t["i18n/t"]("validation.podAffinity.preferredDuringSchedulingIgnoredDuringExecution")};x(e,i,t,n);const{podAffinityTerm:a={}}=e;A(a,i,t,n),N(a,i,t,n)})),i.forEach(((e,r)=>{const i={index:r,group:t["i18n/t"]("validation.podAffinity.affinityTitle"),rules:t["i18n/t"]("validation.podAffinity.requiredDuringSchedulingIgnoredDuringExecution")};A(e,i,t,n),N(e,i,t,n)}))}if(i&&!(0,E.Im)(i)){const{preferredDuringSchedulingIgnoredDuringExecution:e=[],requiredDuringSchedulingIgnoredDuringExecution:r=[]}=i;e.forEach(((e,r)=>{const i={index:r,group:t["i18n/t"]("validation.podAffinity.antiAffinityTitle"),rules:t["i18n/t"]("validation.podAffinity.preferredDuringSchedulingIgnoredDuringExecution")};x(e,i,t,n);const{podAffinityTerm:a={}}=e;A(a,i,t,n),N(a,i,t,n)})),r.forEach(((e,r)=>{const i={index:r,group:t["i18n/t"]("validation.podAffinity.antiAffinityTitle"),rules:t["i18n/t"]("validation.podAffinity.requiredDuringSchedulingIgnoredDuringExecution")};A(e,i,t,n),N(e,i,t,n)}))}}function x(e,t,n,r){const{weight:i=1}=e;("number"!==typeof i||i>100||i<1)&&r.push(n["i18n/t"]("validation.number.between",{key:n["i18n/t"]("workload.scheduling.matchExpressions.weight"),min:1,max:100,...t}))}function A(e,t,n,r){const{topologyKey:i}=e,a=RegExp("([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]");i&&a.test(i)||r.push(n["i18n/t"]("validation.podAffinity.topologyKey",t))}function N(e,t,n,r){const i=["In","NotIn","Exists","DoesNotExist"],{labelSelector:a}=e;if(a&&!(0,E.Im)(a)){const{matchExpressions:e=[]}=a;e.forEach(((e,a)=>{const{operator:o,values:s}=e;i.includes(o)||r.push(n["i18n/t"]("validation.podAffinity.matchExpressions.operator",t)),"In"===o||"NotIn"===o?s&&s.length||r.push(n["i18n/t"]("validation.podAffinity.matchExpressions.valuesMustBeDefined",t)):s&&s.length&&r.push(n["i18n/t"]("validation.podAffinity.matchExpressions.valueMustBeEmpty",t))}))}}var C=n(35664);function T(e=[],t,n,r=[]){e.some((e=>l()(e.verbs)))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.missingVerb")),e.some((e=>e.resources?.length&&e.nonResourceURLs?.length))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.noResourceAndNonResource")),r[0]===C.lk.ROLE?(e.some((e=>l()(e.resources)))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.missingResource")),e.some((e=>l()(e.apiGroups)))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.missingApiGroup"))):e.some((e=>e.resources?.length&&e.nonResourceUrls?.length))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.noResourceAndNonResource")),e.some((e=>l()(e.resources)&&l()(e.nonResourceURLs)))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.missingOneResource"))}function R(e,t,n,r,i){const a="true"===r[0];return a&&(e||"").match(/^(c-.{5}|local)$/i)&&n.push(t["i18n/t"]("validation.cluster.name")),n}var O={clusterName:R,clusterIp:p,externalName:f,flowOutput:c,groupsAreValid:b,logdna:u,ruleGroups:v,interval:w,servicePort:h,matching:y,containerImages:_,cronSchedule:S.u,podAffinity:k,roleTemplateRules:T},I=n(6198),L=n(88339),D=n(74302),P=n(92043),M=n(71274),B=n(23330),F=n(20246),$=n.n(F),U=n(16238),j=n.n(U),V=(n(68371),n(93655)),K=n.n(V),H=n(8138),G=n.n(H),z=n(9274),q=n(31915),X=n(25659),W=n(4364);const Y=["dnsLabel","dnsLabelRestricted","hostname"],Q={disabled:"inactive",notapplied:"Not Applied",notready:"Not Ready",waitapplied:"Wait Applied",outofsync:"Out of Sync","in-progress":"In Progress",gitupdating:"Git Updating",errapplied:"Err Applied",waitcheckin:"Wait Check-In",off:"Disabled",waitingforinfrastructure:"Waiting for Infra",waitingfornoderef:"Waiting for Node Ref"},J="warning",Z="x",ee=1e3,te=3e4,ne={IN_USE:"in-use",IN_PROGRESS:"in-progress",PENDING_ROLLBACK:"pending-rollback",PENDING_UPGRADE:"pending-upgrade",ABORTED:"aborted",ACTIVATING:"activating",ACTIVE:"active",AVAILABLE:"available",BACKED_UP:"backedup",BOUND:"bound",BUILDING:"building",COMPLETED:"completed",CORDONED:"cordoned",COUNT:"count",CREATED:"created",CREATING:"creating",DEACTIVATING:"deactivating",DEGRADED:"degraded",DENIED:"denied",DEPLOYED:"deployed",DEPLOYING:"deploying",DISABLED:"disabled",DISCONNECTED:"disconnected",DRAINED:"drained",DRAINING:"draining",ENABLED:"enabled",ERR_APPLIED:"errapplied",ERROR:"error",ERRORING:"erroring",ERRORS:"errors",EXPIRED:"expired",EXPIRING:"expiring",FAIL:"fail",FAILED:"failed",HEALTHY:"healthy",INACTIVE:"inactive",INFO:"info",INITIALIZING:"initializing",INPROGRESS:"inprogress",LOCKED:"locked",MIGRATING:"migrating",MISSING:"missing",MODIFIED:"modified",NOT_APPLICABLE:"notApplicable",NOT_APLLIED:"notapplied",NOT_READY:"notready",OFF:"off",ORPHANED:"orphaned",OTHER:"other",OUT_OF_SYNC:"outofsync",ON_GOING:"on-going",PASS:"pass",PASSED:"passed",PAUSED:"paused",PENDING:"pending",PROVISIONING:"provisioning",PROVISIONED:"provisioned",PURGED:"purged",PURGING:"purging",READY:"ready",RECONNECTING:"reconnecting",REGISTERING:"registering",REINITIALIZING:"reinitializing",RELEASED:"released",REMOVED:"removed",REMOVING:"removing",REQUESTED:"requested",RESTARTING:"restarting",RESTORING:"restoring",RESIZING:"resizing",RUNNING:"running",SKIP:"skip",SKIPPED:"skipped",STARTING:"starting",STOPPED:"stopped",STOPPING:"stopping",SUCCEEDED:"succeeded",SUCCESS:"success",SUCCESSFUL:"successful",SUPERSEDED:"superseded",SUSPENDED:"suspended",UNAVAILABLE:"unavailable",UNHEALTHY:"unhealthy",UNINSTALLED:"uninstalled",UNINSTALLING:"uninstalling",UNKNOWN:"unknown",UNTRIGGERED:"untriggered",UPDATING:"updating",WAIT_APPLIED:"waitapplied",WAIT_CHECKIN:"waitcheckin",WAITING:"waiting",WARNING:"warning"};function re(e){return Object.values(ne).find((t=>t.toLowerCase()===e.toLocaleLowerCase()))}const ie={[ne.IN_USE]:{color:"success",icon:"dot-open",label:"In Use",compoundIcon:"checkmark"},[ne.IN_PROGRESS]:{color:"info",icon:"tag",label:"In Progress",compoundIcon:"info"},[ne.PENDING_ROLLBACK]:{color:"info",icon:"dot-half",label:"Pending Rollback",compoundIcon:"info"},[ne.PENDING_UPGRADE]:{color:"info",icon:"dot-half",label:"Pending Update",compoundIcon:"info"},[ne.ABORTED]:{color:"warning",icon:"error",label:"Aborted",compoundIcon:"warning"},[ne.ACTIVATING]:{color:"info",icon:"tag",label:"Activating",compoundIcon:"info"},[ne.ACTIVE]:{color:"success",icon:"dot-open",label:"Active",compoundIcon:"checkmark"},[ne.AVAILABLE]:{color:"success",icon:"dot-open",label:"Available",compoundIcon:"checkmark"},[ne.BACKED_UP]:{color:"success",icon:"backup",label:"Backed Up",compoundIcon:"checkmark"},[ne.BOUND]:{color:"success",icon:"dot",label:"Bound",compoundIcon:"checkmark"},[ne.BUILDING]:{color:"success",icon:"dot-open",label:"Building",compoundIcon:"checkmark"},[ne.COMPLETED]:{color:"success",icon:"dot",label:"Completed",compoundIcon:"checkmark"},[ne.CORDONED]:{color:"info",icon:"tag",label:"Cordoned",compoundIcon:"info"},[ne.COUNT]:{color:"success",icon:"dot-open",label:"Count",compoundIcon:"checkmark"},[ne.CREATED]:{color:"info",icon:"tag",label:"Created",compoundIcon:"info"},[ne.CREATING]:{color:"info",icon:"tag",label:"Creating",compoundIcon:"info"},[ne.DEACTIVATING]:{color:"info",icon:"adjust",label:"Deactivating",compoundIcon:"info"},[ne.DEGRADED]:{color:"warning",icon:"error",label:"Degraded",compoundIcon:"warning"},[ne.DENIED]:{color:"error",icon:"adjust",label:"Denied",compoundIcon:"error"},[ne.DEPLOYED]:{color:"success",icon:"dot-open",label:"Deployed",compoundIcon:"checkmark"},[ne.DISABLED]:{color:"warning",icon:"error",label:"Disabled",compoundIcon:"warning"},[ne.DISCONNECTED]:{color:"warning",icon:"error",label:"Disconnected",compoundIcon:"warning"},[ne.DRAINED]:{color:"info",icon:"tag",label:"Drained",compoundIcon:"info"},[ne.DRAINING]:{color:"warning",icon:"tag",label:"Draining",compoundIcon:"warning"},[ne.ENABLED]:{color:"success",icon:"dot-open",label:"Enabled",compoundIcon:"checkmark"},[ne.ERR_APPLIED]:{color:"error",icon:"error",label:"Error Applied",compoundIcon:"error"},[ne.ERROR]:{color:"error",icon:"error",label:"Error",compoundIcon:"error"},[ne.ERRORING]:{color:"error",icon:"error",label:"Erroring",compoundIcon:"error"},[ne.ERRORS]:{color:"error",icon:"error",label:"Errors",compoundIcon:"error"},[ne.EXPIRED]:{color:"error",icon:"error",label:"Expired",compoundIcon:"warning"},[ne.EXPIRING]:{color:"warning",icon:"error",label:"Expiring",compoundIcon:"error"},[ne.FAIL]:{color:"error",icon:"error",label:"Fail",compoundIcon:"error"},[ne.FAILED]:{color:"error",icon:"error",label:"Failed",compoundIcon:"error"},[ne.HEALTHY]:{color:"success",icon:"dot-open",label:"Healthy",compoundIcon:"checkmark"},[ne.INACTIVE]:{color:"error",icon:"dot",label:"Inactive",compoundIcon:"error"},[ne.INITIALIZING]:{color:"warning",icon:"error",label:"Initializing",compoundIcon:"warning"},[ne.INPROGRESS]:{color:"info",icon:"spinner",label:"In Progress",compoundIcon:"info"},[ne.INFO]:{color:"info",icon:"info",label:"Info",compoundIcon:"info"},[ne.LOCKED]:{color:"warning",icon:"adjust",label:"Locked",compoundIcon:"warning"},[ne.MIGRATING]:{color:"info",icon:"info",label:"Migrated",compoundIcon:"info"},[ne.MISSING]:{color:"warning",icon:"adjust",label:"Missing",compoundIcon:"warning"},[ne.MODIFIED]:{color:"warning",icon:"edit",label:"Modified",compoundIcon:"warning"},[ne.NOT_APPLICABLE]:{color:"warning",icon:"tag",label:"Not Applicable",compoundIcon:"warning"},[ne.NOT_APLLIED]:{color:"warning",icon:"tag",label:"Not Applied",compoundIcon:"warning"},[ne.NOT_READY]:{color:"warning",icon:"tag",label:"Not Ready",compoundIcon:"warning"},[ne.OFF]:{color:"darker",icon:"error",label:"Off"},[ne.ON_GOING]:{color:"info",icon:"info",label:"Info",compoundIcon:"info"},[ne.ORPHANED]:{color:"warning",icon:"tag",label:"Orphaned",compoundIcon:"warning"},[ne.OTHER]:{color:"info",icon:"info",label:"Other",compoundIcon:"info"},[ne.OUT_OF_SYNC]:{color:"warning",icon:"tag",label:"Out Of Sync",compoundIcon:"warning"},[ne.PASS]:{color:"success",icon:"dot-dotfill",label:"Pass",compoundIcon:"checkmark"},[ne.PASSED]:{color:"success",icon:"dot-dotfill",label:"Passed",compoundIcon:"checkmark"},[ne.PAUSED]:{color:"info",icon:"info",label:"Paused",compoundIcon:"info"},[ne.PENDING]:{color:"info",icon:"tag",label:"Pending",compoundIcon:"info"},[ne.PROVISIONING]:{color:"info",icon:"dot",label:"Provisioning",compoundIcon:"info"},[ne.PROVISIONED]:{color:"success",icon:"dot",label:"Provisioned",compoundIcon:"checkmark"},[ne.PURGED]:{color:"error",icon:"purged",label:"Purged",compoundIcon:"error"},[ne.PURGING]:{color:"info",icon:"purged",label:"Purging",compoundIcon:"info"},[ne.READY]:{color:"success",icon:"dot-open",label:"Ready",compoundIcon:"checkmark"},[ne.RECONNECTING]:{color:"error",icon:"error",label:"Reconnecting",compoundIcon:"error"},[ne.REGISTERING]:{color:"info",icon:"tag",label:"Registering",compoundIcon:"info"},[ne.REINITIALIZING]:{color:"warning",icon:"error",label:"Reinitializing",compoundIcon:"warning"},[ne.RELEASED]:{color:"warning",icon:"error",label:"Released",compoundIcon:"warning"},[ne.REMOVED]:{color:"error",icon:"trash",label:"Removed",compoundIcon:"error"},[ne.REMOVING]:{color:"info",icon:"trash",label:"Removing",compoundIcon:"info"},[ne.REQUESTED]:{color:"info",icon:"tag",label:"Requested",compoundIcon:"info"},[ne.RESTARTING]:{color:"info",icon:"adjust",label:"Restarting",compoundIcon:"info"},[ne.RESTORING]:{color:"info",icon:"medicalcross",label:"Restoring",compoundIcon:"info"},[ne.RESIZING]:{color:"warning",icon:"dot",label:"Resizing",compoundIcon:"warning"},[ne.RUNNING]:{color:"success",icon:"dot-open",label:"Running",compoundIcon:"checkmark"},[ne.SKIP]:{color:"info",icon:"dot-open",label:"Skip",compoundIcon:"info"},[ne.SKIPPED]:{color:"info",icon:"dot-open",label:"Skipped",compoundIcon:"info"},[ne.STARTING]:{color:"info",icon:"adjust",label:"Starting",compoundIcon:"info"},[ne.STOPPED]:{color:"error",icon:"dot",label:"Stopped",compoundIcon:"error"},[ne.STOPPING]:{color:"info",icon:"adjust",label:"Stopping",compoundIcon:"info"},[ne.SUCCEEDED]:{color:"success",icon:"dot-dotfill",label:"Succeeded",compoundIcon:"checkmark"},[ne.SUCCESS]:{color:"success",icon:"dot-open",label:"Success",compoundIcon:"checkmark"},[ne.SUCCESSFUL]:{color:"success",icon:"dot-open",label:"Successful"},[ne.SUPERSEDED]:{color:"info",icon:"dot-open",label:"Superseded",compoundIcon:"info"},[ne.SUSPENDED]:{color:"info",icon:"pause",label:"Suspended",compoundIcon:"info"},[ne.UNAVAILABLE]:{color:"error",icon:"error",label:"Unavailable",compoundIcon:"error"},[ne.UNHEALTHY]:{color:"error",icon:"error",label:"Unhealthy",compoundIcon:"error"},[ne.UNINSTALLED]:{color:"info",icon:"trash",label:"Uninstalled",compoundIcon:"info"},[ne.UNINSTALLING]:{color:"info",icon:"trash",label:"Uninstalling",compoundIcon:"info"},[ne.UNKNOWN]:{color:"warning",icon:"x",label:"Unknown",compoundIcon:"warning"},[ne.UNTRIGGERED]:{color:"success",icon:"tag",label:"Untriggered",compoundIcon:"checkmark"},[ne.UPDATING]:{color:"warning",icon:"tag",label:"Updating",compoundIcon:"warning"},[ne.WAIT_APPLIED]:{color:"info",icon:"tag",label:"Wait Applied",compoundIcon:"info"},[ne.WAIT_CHECKIN]:{color:"warning",icon:"tag",label:"Wait Checkin",compoundIcon:"warning"},[ne.WAITING]:{color:"info",icon:"tag",label:"Waiting",compoundIcon:"info"},[ne.WARNING]:{color:"warning",icon:"error",label:"Warning",compoundIcon:"warning"},[ne.DEPLOYING]:{color:"info",icon:"info",label:"Deploying",compoundIcon:"info"}};const ae={error:1,warning:2,info:3,success:4,ready:5,notready:6,other:7};function oe(e,t,n){if(t)return"text-error";if(n)return"text-info";const r=(e||"active").toLowerCase();let i;return ie[r]&&ie[r].color&&(i=de.call(this,ie[r].color)),i||(i=J),`text-${i}`}function se(e){const t=(e||"active").toLowerCase();return Q[t]?Q[t]:t.split(/-/).map(P.TF).join("-")}function le(e){const t=[ne.ERROR,ne.FAILED,ne.WARNING,ne.MODIFIED,ne.WAIT_APPLIED,ne.ORPHANED,ne.MISSING,ne.UNKNOWN,ne.NOT_READY,ne.READY],n=Object.keys(e).filter((n=>e[n]>0&&t.includes(n.toLowerCase()))).sort(((e,n)=>t.indexOf(e.toLowerCase())-t.indexOf(n.toLowerCase())));return n[0]?n[0]:ne.UNKNOWN}function ce(e,t){return e=e.replace(/^(text|bg)-/,""),`${ae[e]||ae["other"]} ${t}`}function ue(e){return!!e&&("ready"===e?.type?.toLowerCase()&&"waiting"===e?.reason?.toLowerCase())}function de(e){return K()(e)?e(this):e}class he{constructor(e,t={},n=null,r=!1){for(const i in e)this[i]=e[i];Object.defineProperty(this,"$ctx",{value:(0,z.markRaw)(t),enumerable:!1}),n&&Object.defineProperty(this,"__rehydrate",{value:n,enumerable:!0,configurable:!0}),r&&Object.defineProperty(this,"__clone",{value:!0,enumerable:!0,configurable:!0,writable:!0})}get $getters(){return this.$ctx.getters}get $rootGetters(){return this.$ctx.rootGetters}get $dispatch(){return this.$ctx.dispatch}get $state(){return this.$ctx.state}get $rootState(){return this.$ctx.rootState}get $plugin(){return this.$ctx.rootState?.$plugin}get customValidationRules(){return[]}get _key(){const e=this.metadata;if(e){if(e.uid)return e.uid;if(e.namespace)return`${this.type}/${e.namespace}/${e.name}`}return this.id?`${this.type}/${this.id}`:`${this.type}/${Math.random()}`}get schema(){return this.$getters["schemaFor"](this.type)}toString(){return`[${this.type}: ${this.id}]`}get typeDisplay(){const e=this.schema;return e?this.$rootGetters["type-map/labelFor"](e):"?"}get nameDisplay(){return this.displayName||this.spec?.displayName||this.metadata?.annotations?.[r.ks]||this.name||this.metadata?.name||this.id}get nameSort(){return(0,D.RY)(this.nameDisplay).toLowerCase()}get namespacedName(){const e=this.metadata?.namespace,t=this.nameDisplay;return e?`${e}:${t}`:t}get namespacedNameSort(){return(0,D.RY)(this.namespacedName).toLowerCase()}get groupByLabel(){const e=this.metadata?.namespace;let t;return t=e?this.t("resourceTable.groupLabel.namespace",{name:(0,P.ZD)(e)}):this.t("resourceTable.groupLabel.notInANamespace"),t}setLabels(){throw new Error("Implement setLabels in subclass")}setLabel(){throw new Error("Implement setLabel in subclass")}setAnnotations(e){throw new Error("Implement setAnnotations in subclass")}setAnnotation(e,t){throw new Error("Implement setAnnotation in subclass")}get stateDisplay(){return se(this.state)}get stateColor(){return oe.call(this,this.state,this.stateObj?.error,this.stateObj?.transitioning)}get stateBackground(){return this.stateColor.replace("text-","bg-")}get stateIcon(){let e=!1,t=!1;if(this.metadata&&this.metadata.state&&(e=this.metadata.state.transitioning,t=this.metadata.state.error),e)return"icon icon-spinner icon-spin";if(t)return"icon icon-error";const n=(this.state||"").toLowerCase();let r;return ie[n]&&ie[n].icon&&(r=de.call(this,ie[n].icon)),r||(r=Z),`icon icon-${r}`}get stateSort(){return ce(this.stateColor,this.stateDisplay)}get stateDescription(){const e=this.stateObj?.transitioning||!1,t=this.stateObj?.error||!1,n=this.stateObj?.message;return e||t?(0,P.TF)(n):""}get stateObj(){return this.metadata?.state}waitForTestFn(e,t,n,r){return(0,B.f)((()=>e.apply(this)),t,n||te,r||ee,!0)}waitForState(e,t,n){return this.waitForTestFn((()=>(this.state||"").toLowerCase()===e.toLowerCase()),`state=${e}`,t,n)}waitForTransition(){return this.waitForTestFn((()=>!this.transitioning),"transition completion",void 0,void 0)}waitForAction(e){return this.waitForTestFn((()=>this.hasAction(e)),`action=${e}`,void 0,void 0)}waitForLink(e){return this.waitForTestFn((()=>this.hasLink(e)),`link=${e}`,void 0,void 0)}hasCondition(e){return this.isCondition(e,null)}isCondition(e,t="True"){if(!this.status||!this.status.conditions)return!1;const n=(0,o.jq)(this.status.conditions||[],"type",e);return!!n&&(!t||(n.status||"").toLowerCase()===`${t}`.toLowerCase())}waitForCondition(e,t="True",n=te,r=ee){return this.waitForTestFn((()=>this.isCondition(e,t)),`condition ${e}=${t}`,n,r)}get availableActions(){const e=this._availableActions;let t=null;const n=e.filter((e=>{if(!1===e.enabled)return!1;const n=e.divider,r=!n||n&&!t;return t=n,r}));while(n.length&&n[0].divider)n.shift();while(n.length&&n[n.length-1].divider)n.pop();for(let r=1;r<n.length;r++)n[r].divider&&n[r-1].divider&&((0,o.Wq)(n,r,1),r--);return n}get _availableActions(){const e=this.currentRouter().currentRoute.value,t=(0,X.A)(this.$rootState,q.c7.ACTION,q.ug.TABLE,e,this),n=[{divider:!0},{action:this.canUpdate?"goToEdit":"goToViewConfig",label:this.t(this.canUpdate?"action.edit":"action.view"),icon:"icon icon-edit",enabled:this.canCustomEdit},{action:this.canEditYaml?"goToEditYaml":"goToViewYaml",label:this.t(this.canEditYaml?"action.editYaml":"action.viewYaml"),icon:"icon icon-file",enabled:this.canYaml},{action:this.canCustomEdit?"goToClone":"cloneYaml",label:this.t("action.clone"),icon:"icon icon-copy",enabled:this.canClone&&this.canCreate&&(this.canCustomEdit||this.canYaml)},{divider:!0},{action:"download",label:this.t("action.download"),icon:"icon icon-download",bulkable:!0,bulkAction:"downloadBulk",enabled:this.canYaml,weight:-9},{action:"viewInApi",label:this.t("action.viewInApi"),icon:"icon icon-external-link",enabled:this.canViewInApi},{action:"promptRemove",altAction:"remove",label:this.t("action.remove"),icon:"icon icon-trash",bulkable:!0,enabled:this.canDelete,bulkAction:"promptRemove",weight:-10}];return t.length&&(n.push({divider:!0}),t.forEach((e=>{const t={...e},r=t.enabled,i=typeof r;switch(i){case"undefined":t.enabled=!0;break;case"function":Object.defineProperty(t,"enabled",{get:()=>r(this)});break;case"boolean":break;default:W.warn(`Unsupported 'enabled' property type for action: ${e.label||e.labelKey}`),delete t.enabled;break}n.push(t)}))),n}get canDelete(){return this._canDelete}get _canDelete(){return this.hasLink("remove")&&this.$rootGetters["type-map/optionsFor"](this.type).isRemovable}get canClone(){return!0}get canUpdate(){return this.hasLink("update")&&this.$rootGetters["type-map/optionsFor"](this.type).isEditable}get canCustomEdit(){return this.$rootGetters["type-map/hasCustomEdit"](this.type,this.id)}get canCreate(){return!(this.schema&&!this.schema?.collectionMethods.find((e=>"post"===e.toLowerCase())))&&this.$rootGetters["type-map/optionsFor"](this.type).isCreatable}get canViewInApi(){try{return this.hasLink("self")&&this.$rootGetters["prefs/get"](a.HZ)}catch{return this.hasLink("self")&&this.$rootGetters["prefs/get"](a.IJ)}}get canYaml(){return this.hasLink("view")}get canEditYaml(){return!this.schema?.resourceMethods?.find((e=>"blocked-PUT"===e))&&this.canUpdate}hasLink(e){return!!this.linkFor(e)}linkFor(e){return(this.links||{})[e]}followLink(e,t={}){if(t.url||(t.url=(this.links||{})[e]),t.urlSuffix&&(t.url+=t.urlSuffix),!t.url)throw new Error(`Unknown link ${e} on ${this.type} ${this.id}`);return this.$dispatch("request",{opt:t,type:this.type})}hasAction(e){return!!this.actionLinkFor(e)}actionLinkFor(e){return(this.actions||this.actionLinks||{})[e]}doAction(e,t,n={}){return this.$dispatch("resourceAction",{resource:this,actionName:e,body:t,opt:n})}async doActionGrowl(e,t,n={}){try{return await this.$dispatch("resourceAction",{resource:this,actionName:e,body:t,opt:n})}catch(r){this.$dispatch("growl/fromError",{title:this.$rootGetters["i18n/t"]("generic.notification.title.error"),err:r.data||r},{root:!0})}}patch(e,t={},n=!1,r=!1){if(t.url||(t.url=this.linkFor("view")||this.linkFor("self")),t.method="patch",t.headers=t.headers||{},!t.headers["content-type"]){const e=n?"application/strategic-merge-patch+json":"application/json-patch+json";t.headers["content-type"]=e}t.data=e;const i=this.$dispatch("request",{opt:t,type:this.type});return r?i.catch((e=>{const t=this.t("resource.errors.update",{name:this.name});W.error(t,e),this.$dispatch("growl/error",{title:t,message:e?.message,timeout:5e3},{root:!0})})):i}save(){return this._save(...arguments)}cleanForSave(e,t){return delete e.__rehydrate,delete e.__clone,e}processSaveResponse(e){}async _save(e={}){const t=!this.id,n=this.validationErrors(this,e);if(!l()(n))return Promise.reject(n);if(this.metadata?.resourceVersion&&(this.metadata.resourceVersion=`${this.metadata.resourceVersion}`),!e.url)if(t){const t=this.$getters["schemaFor"](this.type);let n=t.linkFor("collection");t.attributes&&t.attributes.namespaced&&this.metadata&&this.metadata.namespace&&(n+=`/${this.metadata.namespace}`),e.url=n}else e.url=this.linkFor("update")||this.linkFor("self");if(e.method||(e.method=t?"post":"put"),e.headers||(e.headers={}),e.headers["content-type"]||(e.headers["content-type"]="application/json"),e.headers["accept"]||(e.headers["accept"]="application/json"),e.data=this.toSave()||{...this},e.data._type&&(e.data.type=e.data._type),e.data._name&&(e.data.name=e.data._name),e.data._labels&&(e.data.labels=e.data._labels),e.data._annotations&&(e.data.annotations=e.data._annotations),e.data=this.cleanForSave(e.data,t),e?.replace&&"put"===e.method){const t=e.url.includes("?")?"&":"?";e.url=`${e.url}${t}_replace=true`,delete e.replace}try{const n=await this.$dispatch("request",{opt:e,type:this.type});this.processSaveResponse(n),n&&"Table"!==n.kind&&await this.$dispatch("load",{data:n,existing:t?this:void 0})}catch(r){return this.type&&this.id&&409===r?._status&&await this.$dispatch("find",{type:this.type,id:this.id,opt:{force:!0}}),Promise.reject(r)}return this}remove(){return this._remove(...arguments)}async _remove(e={}){e.url||(e.url=this.linkFor("self")),e.method="delete";const t=await this.$dispatch("request",{opt:e,type:this.type});204===t?._status&&await this.$dispatch("ws.resource.remove",{data:this})}currentRoute(){return window.$globalApp.$route}currentRouter(){return window.$globalApp.$router}get listLocation(){return{name:"c-cluster-product-resource",params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],resource:this.type}}}get _detailLocation(){const e=this.$getters["schemaFor"](this.type),t=this.id?.replace(/.*\//,"");return{name:`c-cluster-product-resource${e?.attributes?.namespaced?"-namespace":""}-id`,params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],resource:this.type,namespace:this.metadata?.namespace,id:t}}}get detailLocation(){return this._detailLocation}goToDetail(){this.currentRouter().push(this.detailLocation)}goToClone(e={}){const t=this.detailLocation;t.query={...t.query,[i.g]:i.dT,[i.AS]:i.xz,...e},this.currentRouter().push(t)}goToEdit(e={}){const t=this.detailLocation;t.query={...t.query,[i.g]:i.G5,[i.AS]:i.xz,...e},this.currentRouter().push(t)}goToViewConfig(e={}){const t=this.detailLocation;t.query={...t.query,[i.g]:i.nW,[i.AS]:i.au,...e},this.currentRouter().push(t)}goToEditYaml(){const e=this.detailLocation;e.query={...e.query,[i.g]:i.G5,[i.AS]:i.zD},this.currentRouter().push(e)}goToViewYaml(){const e=this.detailLocation;e.query={...e.query,[i.g]:i.nW,[i.AS]:i.zD},this.currentRouter().push(e)}cloneYaml(e={}){const t=this.detailLocation;t.query={...t.query,[i.g]:i.dT,[i.AS]:i.zD,...e},this.currentRouter().push(t)}async download(){const e=await this.followLink("view",{headers:{accept:"application/yaml"}}),t=await this.cleanForDownload(e.data);(0,I.PE)(`${this.nameDisplay}.yaml`,t,"application/yaml")}async downloadBulk(e){const t={},n=[];for(const i of e){let e=`${i.nameDisplay}.yaml`,t=2;while(n.includes(e))e=`${i.nameDisplay}_${t++}.yaml`;n.push(e)}await(0,L.hF)(e,10,((e,r)=>e.followLink("view",{headers:{accept:"application/yaml"}}).then((async e=>{const i=e.data||e,a=await this.cleanForDownload(i);t[`resources/${n[r]}`]=a}))));const r=await(0,I.jl)(t);(0,I.PE)("resources.zip",r,"application/zip")}viewInApi(){window.open(this.links.self,"_blank")}promptRemove(e){e||(e=this),this.$dispatch("promptRemove",e)}get confirmRemove(){return!1}applyDefaults(){}get urlFromAttrs(){const e=this.$getters["schemaFor"](this.type),{metadata:{namespace:t="default"}}=this;let n=e.links.collection;const r=e?.attributes;if(!r)throw new Error("Attributes must be present on the schema");const{group:i,resource:a}=r;return n=`${n.slice(0,n.indexOf("/v1"))}/apis/${i}/namespaces/${t}/${a}`,n}cleanYaml(e,t="edit"){try{const n=$().load(e);"edit"!==t&&this.$dispatch("cleanForNew",n),n._type&&(n.type=n._type,delete n._type);const r=$().dump(n,{skipInvalid:!0});return r}catch(n){return null}}cleanForNew(){this.$dispatch("cleanForNew",this)}cleanForDiff(){this.$dispatch("cleanForDiff",this.toJSON())}async cleanForDownload(e){return this.$dispatch("cleanForDownload",e)}yamlForSave(e){try{const t=$().load(e);if(t)return this._type&&(t._type=t.type),$().dump(t)}catch(t){return null}}async saveYaml(e){await this._saveYaml(e)}async _saveYaml(e){const t=$().load(e);if(this.schema?.attributes?.namespaced&&!t.metadata.namespace){const e=this.$rootGetters["i18n/t"]("resourceYaml.errors.namespaceRequired");throw e}let n;const r=!this.id,i={"content-type":"application/yaml",accept:"application/json"};n=r?await this.schema.followLink("collection",{method:"POST",headers:i,data:e}):await this.followLink("update",{method:"PUT",headers:i,data:e}),await this.$dispatch("load",{data:n,existing:r?this:void 0}),this.isSpoofed&&await this.$dispatch("cluster/findAll",{type:this.type,opt:{force:!0}},{root:!0})}get modelValidationRules(){const e=[],t=this?.customValidationRules.filter((e=>!!e.validators||!!e.required)).map((e=>{const t=(0,M.A)(this.t,{displayKey:e?.translationKey?this.t(e.translationKey):"Value"});return{path:e.path,rules:[...e.validators||[],...e.required?["required"]:[],...["dnsLabel","dnsLabelRestricted","hostname"].includes(e.type)?[e.type]:[]].map((e=>{if(e.includes(":")){const[n,r]=e.split(":");return t[n](r)}return t[e]})).filter((e=>!!e))}})).filter((e=>e.rules.length>0));return e.push(...t),e}customValidationErrors(e,t=[]){const n=[];let{customValidationRules:r}=this;return l()(r)||(K()(r)&&(r=r()),r.filter((e=>!t.includes(e.path))).forEach((t=>{const{path:r,requiredIf:i,validators:a=[],type:o}=t;let s=(0,E.Jt)(e,r);const c=j()(a||[]);let u=r;if(t.translationKey&&this.$rootGetters["i18n/exists"](t.translationKey)&&(u=this.t(t.translationKey)),G()(s)&&(s=s.trim()),i){const t=(0,E.Jt)(e,i);!l()(t)&&l()(s)&&0!==s&&n.push(this.t("validation.required",{key:u}))}if((0,d.xR)(s,t,u,this.$rootGetters,n),(0,d.iK)(s,t,u,this.$rootGetters,n),!l()(s)&&Y.includes(o)){const t=(s||"").toLowerCase();t!==s&&(s=t,e[r]=s),n.push(...(0,d.OH)(s,o,u,this.$rootGetters,n))}c.forEach((t=>{const r=t.split(":"),i=r.slice(0,1),a=r.slice(1)||null,o=Object.prototype.hasOwnProperty.call(O,i);if(!l()(i)&&o)O[i](s,this.$rootGetters,n,a,u,e);else if(!l()(i)&&!o){const t=this.$rootState.$plugin?.getValidator(i);t?t(s,this.$rootGetters,n,a,u,e):W.warn(this.t("validation.custom.missing",{validatorName:i}))}}))}))),n}validationErrors(e=this,t={}){return this.customValidationErrors(e)}get ownersByType(){const e=this.metadata?.ownerReferences||[],t={};return e.forEach((e=>{t[e.kind]?t[e.kind].push(e):t[e.kind]=[e]})),t}get owners(){const e=[];for(const t in this.ownersByType){const n=this.$rootGetters["cluster/schema"](t);if(n){const r=n.id,i=this.$rootGetters["cluster/all"](r);this.ownersByType[t].forEach(((t,n)=>{const r=i.find((e=>e?.metadata?.uid===t.uid));r&&e.push(r)}))}}return e}get details(){return this._details}get _details(){const e=[];return this.owners?.length>0&&e.push({label:this.t("resourceDetail.detailTop.ownerReferences",{count:this.owners.length}),formatter:"ListLinkDetail",content:this.owners.map((e=>({key:e.id,row:e,col:{},value:e.metadata.name})))}),(0,E.Jt)(this,"metadata.deletionTimestamp")&&e.push({label:this.t("resourceDetail.detailTop.deleted"),formatter:"LiveDate",formatterOpts:{addSuffix:!0},content:(0,E.Jt)(this,"metadata.deletionTimestamp")}),e}get t(){return this.$rootGetters["i18n/t"]}findOwners(){return this._getRelationship("owner","from")}getOwners(){return this._getRelationship("owner","from")}findOwned(){return this._findRelationship("owner","to")}_relationshipsFor(e,t){const n={selectors:[],ids:[]};if(!this.metadata?.relationships?.length)return n;for(const r of this.metadata.relationships)if(("any"===e||r.rel===e)&&r[`${t}Type`])if(r.selector)(0,o.cn)(n.selectors,{type:r.toType,namespace:r.toNamespace,selector:r.selector});else{const e=r[`${t}Type`];let i=r[`${t}Namespace`],a=r[`${t}Id`];if(!i&&a.includes("/")){const e=a.indexOf("/");i=a.substr(0,e),a=a.substr(e+1)}const s=(i?`${i}/`:"")+a;(0,o.PG)(n.ids,{type:e,namespace:i,name:a,id:s})}return n}_getRelationship(e,t){const n=this._relationshipsFor(e,t);return n.selectors?.length&&W.warn("Sync request for a relationship that is a selector"),n.ids||[]}async _findRelationship(e,t){const{selectors:n,ids:r}=this._relationshipsFor(e,t),i=[];for(const a of n){const e=await this.$dispatch("findMatching",a);(0,o.cn)(i,e.data)}for(const a of r){const{type:e,id:t}=a;let n=this.$getters["byId"](e,t);if(!n)try{n=await this.$dispatch("find",{type:e,id:t})}catch{}n&&(0,o.PG)(i,n)}return i}get shortId(){const e=this.id.split("/");return e.length>1?e[1]:e[0]}toJSON(){const e={},t=Object.keys(this);for(const n of t)this[n]?.toJSON?e[n]=this[n].toJSON():e[n]=(0,E.o8)(this[n]);return e}toSave(){}get creationTimestamp(){return this.metadata?.creationTimestamp}get yamlFolding(){return[]}}},82614:function(e,t,n){"use strict";n.d(t,{A:function(){return d},T:function(){return u}});var r=n(2841),i=n(38403),a=n.n(i),o=n(16735),s=n.n(o),l=n(92043),c=n(73883);function u(e){const t=["state","name","description","labels","annotations"];return t.forEach((t=>delete e[t])),e}class d extends c.Ay{constructor(e,t,n=null,r=!1){const i=u(e);super(i,t,n,r)}get labels(){const e=this.metadata?.labels||{};return a()(e,((e,t)=>(0,l.HV)(t,r.lq)))}setLabels(e){this.metadata||(this.metadata={});const t=this.metadata.labels||{},n=s()(t,((e,t)=>(0,l.HV)(t,r.lq)));this.metadata["labels"]={...n,...e}}setLabel(e,t){t?(this.metadata||(this.metadata={}),this.metadata.labels||(this.metadata.labels={}),this.metadata.labels[e]=t):this.metadata?.labels&&(this.metadata.labels[e]=void 0,delete this.metadata.labels[e])}get annotations(){const e=this.metadata?.annotations||{};return a()(e,((e,t)=>(0,l.HV)(t,r.S5)))}setAnnotations(e){this.metadata||(this.metadata={});const t=this.metadata.annotations||{},n=s()(t,((e,t)=>(0,l.HV)(t,r.S5)));this.metadata["annotations"]={...n,...e}}setAnnotation(e,t){t?(this.metadata||(this.metadata={}),this.metadata.annotations||(this.metadata.annotations={}),this.metadata.annotations[e]=t):this.metadata?.annotations&&(this.metadata.annotations[e]=void 0,delete this.metadata.annotations[e])}get state(){return this.stateObj?.name||"unknown"}}},89865:function(e,t,n){"use strict";n.d(t,{A:function(){return w}});var r=n(2841),i=n(16735),a=n.n(i),o=n(68851),s=n(92043),l=n(73883),c=n(76978),u=n(96047),d=n(79401),h=n(8138),p=n.n(h),f=n(82438),m=n.n(f),g=n(3514),v=n.n(g),b=n(4364);const y=["string","date","blob","enum","multiline","masked","password","dnsLabel","hostname"];class w extends l.Ay{setLabels(e){const t=this.labels||{},n=a()(t,((e,t)=>(0,s.HV)(t,r.lq)));this["labels"]={...n,...e}}setLabel(e,t){t?(this.labels||(this.labels={}),this.labels[e]=t):this.labels&&(this.labels[e]=void 0,delete this.labels[e])}setAnnotations(e){const t=this.annotations||{},n=a()(t,((e,t)=>(0,s.HV)(t,r.S5)));this["annotations"]={...n,...e}}setAnnotation(e,t){t?(this.annotations||(this.annotations={}),this.annotations[e]=t):this.annotations&&(this.annotations[e]=void 0,delete this.annotations[e])}setResourceQuotas(e){const t=["resourceQuota","namespaceDefaultResourceQuota"];t.forEach((t=>{this[t]={...e[t]}}))}isCondition(e,t="True"){if(!this.conditions)return!1;const n=(0,o.jq)(this.conditions||[],"type",e);return!!n&&(!t||(n.status||"").toLowerCase()===`${t}`.toLowerCase())}validationErrors(e=this,t={ignoreFields:void 0}){const n=[],{type:r,schema:i}=e,a=(0,d.AZ)(r);if(!r)return b.warn(this.t("validation.noType"),e),n;if(!i)return n;const o=i.resourceFields||{},h=Object.keys(o);let f,g,w,E;for(let m=0;m<h.length;m++){const r=[];g=h[m],f=o[g],w=(0,c.Jt)(e,g),E=(0,u.HK)(a,g,this.$rootGetters);const i=f?.type?(0,d.AZ)(f.type):null,b=p()(w);if(!t.ignoreFields||!t.ignoreFields.includes(g))if(void 0===w&&(w=null),b&&(i&&(e[g]=(0,s.i6)(w,i)),f.nullable&&0===w.length&&y.includes(i)&&(w=null,e[g]=w)),"boolean"===i?(0,u.p6)(w,f,E,this.$rootGetters,r):((0,u.xR)(w,f,E,this.$rootGetters,r),(0,u.iK)(w,f,E,this.$rootGetters,r)),r.length>0)r.push(this.t("validation.required",{key:E})),n.push(...r);else{if("id"!==g&&!v()(w)&&l.qE.includes(i)){const t=(w||"").toLowerCase();t!==w&&(w=t,e[g]=w),r.push(...(0,u.OH)(w,i,E,this.$rootGetters,r))}n.push(...r)}}const _=super.validationErrors(this,t);return m()([...n,..._])}}},37417:function(e,t,n){"use strict";n.d(t,{P:function(){return a},w:function(){return i}});var r=n(79401);function i(e){e._id=(0,r.AZ)(e.id),e._group=(0,r.AZ)(e.attributes?.group)}function a(e){delete e._id,delete e._group}},25184:function(e,t,n){"use strict";n.d(t,{A:function(){return u}});var r=n(2841),i=n(82614),a=n(37648),o=n(76978);n(86565),n(31915),n(25314),n(9274),n(83297),n(4364);const s={MODELS:"models",MODEL_EXTENSION:"model-extension"};const l=["metadata.resourceVersion","metadata.fields","metadata.clusterName","metadata.deletionGracePeriodSeconds","metadata.generateName"],c=a.Ng.filter((e=>!l.includes(e)));class u extends i.A{get name(){return this.metadata?.name||this._name}get namespace(){return this.metadata?.namespace}get description(){return this.metadata?.annotations?.[r.tC]||this.spec?.description||this._description}set description(e){this.metadata?.annotations&&(this.metadata.annotations[r.tC]=e),this.spec&&(this.spec.description=e),this._description=e}get modelExtensions(){return this.$plugin.getDynamic(s.MODEL_EXTENSION,this.type)||[]}cleanForSave(e,t){const n=super.cleanForSave(e);for(const r of c)(0,o.BJ)(n,r);return n}}},63928:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(25184);class i extends r.A{constructor(e,t,n=null,r=!1){const i=e.description;super(e,t,n,r),this.description=i}get description(){return this._description}set description(e){this._description=e}toJSON(){const e=super.toJSON();return e.description=this.description,delete e._description,e}toSave(){return this.toJSON()}}},55105:function(e,t,n){"use strict";n.r(t);var r=n(65359),i=n(92043),a=n(35664),o=n(4799);const s=o.SUBTYPE_MAPPING.CLUSTER.key;t["default"]={data(){return{warning:"",info:""}},computed:{...(0,r.aH)("action-menu",["toRemove"]),...(0,r.L8)({t:"i18n/t"}),names(){return this.toRemove.map((e=>e.nameDisplay)).slice(0,5)},plusMore(){const e=this.toRemove.length-this.names.length;return this.t("promptRemove.andOthers",{count:e})}},watch:{value:{handler(e){this.handleRoleDeletionCheck(e,e[0].type,this.$route.hash)},immediate:!0}},methods:{resourceNames:i.Nr,async handleRoleDeletionCheck(e,t,n){let r,i;this.warning="";let o=0;const l=new Set;switch(this.info=this.t("rbac.globalRoles.waiting",{count:e.length}),t){case a.Mc.GLOBAL_ROLE:r=a.Mc.GLOBAL_ROLE_BINDING,i="globalRoleName";break;default:r=n.includes(s)?a.Mc.CLUSTER_ROLE_TEMPLATE_BINDING:a.Mc.PROJECT_ROLE_TEMPLATE_BINDING,i="roleTemplateName";break}try{const t=await this.$store.dispatch("management/request",{url:`/v1/${r}`,method:"get"},{root:!0}),n=await this.$store.dispatch("management/request",{url:`/v1/${a.Mc.USER}`,method:"get"},{root:!0}),s=n.data?.reduce(((e,t)=>(t.username&&(e[t.id]=t),e)),{});t.data&&t.data.length?(e.forEach((e=>{const n=t.data.filter((t=>t[i]===e.id));if(n.length){const e=[...new Set(n.map((e=>e.userName)).filter((e=>s[e])))];e.length&&(o++,e.forEach((e=>l.add(e))))}})),o&&l.size?(this.info="",this.warning=this.t("rbac.globalRoles.usersBound",{count:l.size})):this.info=this.t("rbac.globalRoles.notBound",null,!0)):this.info=this.t("rbac.globalRoles.notBound",null,!0)}catch(c){this.info=this.t("rbac.globalRoles.unableToCheck")}}}}},97707:function(e,t,n){"use strict";n.d(t,{CB:function(){return l},bh:function(){return u},do:function(){return c}});n(35664);var r=n(2841),i=(n(50667),n(88339),n(76978),n(68851)),a=(n(99726),n(50382),n(74302),n(92043),n(83288)),o=n(88088),s=n.n(o);n(48074),n(4364);r.W8._RANCHER,r.W8._EXPERIMENTAL,r.W8._PARTNER;const l="windows",c="linux";function u(e,t,n=!0){const o=e.versions;return t&&!(0,i.cy)(t)&&(t=[t]),o.filter((e=>{const i=(e?.annotations?.[r.W8.PERMITTED_OS]||c).split(",");return!(!n&&(0,a.V1)(e.version))&&(!t||0===s()(t,i).length)}))}},95265:function(e,t,n){"use strict";n.d(t,{N8:function(){return s},Vw:function(){return l},Wt:function(){return o},r$:function(){return a}});n(35664);const r={},i=function(e,t){return r[e]={def:t},e},a=function(e){return{get(){return this.$store.getters["features/get"](e)},set(e){throw new Error("The feature store only supports getting")}}},o=(i("multi-cluster-management",!0),i("legacy",!1),i("rke2",!0),i("rke1-ui",!0),i("unsupported-storage-drivers",!1)),s=(i("continuous-delivery",!0),i("harvester",!0),i("harvester-baremetal-container-workload",!1),i("provisioningv2-fleet-workspace-back-population",!1)),l=i("ui-sql-cache",!1);i("uiextension",!0),i("provisioningprebootstrap",!1)},91462:function(e,t,n){"use strict";n.d(t,{AN:function(){return a},DX:function(){return y},EI:function(){return h},G$:function(){return w},HZ:function(){return _},Hu:function(){return d},IJ:function(){return E},JV:function(){return u},Mu:function(){return p},Pz:function(){return S},Ri:function(){return l},aP:function(){return f},bc:function(){return k},gM:function(){return A},jn:function(){return c},kJ:function(){return b},kc:function(){return m},qv:function(){return v},xL:function(){return g}});n(9262),n(35664),n(76978),n(4364);const r={};const i=function(e,t,n={}){const i=!0===n.parseJSON,a=!0===n.asCookie,o=!1!==n.asUserPreference,s=n.options,l=n.inheritFrom;return r[e]={def:t,options:s,parseJSON:i,asCookie:a,asUserPreference:o,inheritFrom:l,mangleRead:n.mangleRead,mangleWrite:n.mangleWrite},e},a=function(e){return{get(){return this.$store.getters["prefs/get"](e)},set(t){this.$store.dispatch("prefs/set",{key:e,value:t})}}},o=!0,s=!0,l=(i("cluster",""),i("last-namespace","")),c=(i("ns-by-cluster",{},{parseJSON:o}),i("workspace",""),i("open-groups",["cluster","policy","rbac","serviceDiscovery","storage","workload"],{parseJSON:o})),u=i("fav-type",[],{parseJSON:o}),d=i("pinned-clusters",[],{parseJSON:o}),h=i("group-by","namespace"),p=i("diff","unified",{options:["unified","split"]}),f=(i("theme","auto",{options:["light","auto","dark"],asCookie:s,parseJSON:o,mangleRead:e=>e.replace(/^ui-/,""),mangleWrite:e=>`ui-${e}`}),i("pcs","",{asCookie:s,asUserPreference:!1}),i("locale","en-us",{asCookie:s}),i("keymap","sublime",{options:["sublime","emacs","vim"]})),m=i("per-page",100,{options:[10,25,50,100],parseJSON:o}),g=(i("logs-wrap",!0,{parseJSON:o}),i("logs-time",!0,{parseJSON:o}),i("logs-range","30 minutes",{parseJSON:o}),i("hide-repos",[],{parseJSON:o}),i("hide-desc",[],{parseJSON:o})),v=i("hide-sensitive",!0,{options:[!0,!1],parseJSON:o}),b=i("show-pre-release",!1,{options:[!1,!0],parseJSON:o}),y=(i("chart-mode","featured",{parseJSON:o}),i("date-format","ddd, MMM D YYYY",{options:["ddd, MMM D YYYY","ddd, D MMM YYYY","D/M/YYYY","M/D/YYYY","YYYY-MM-DD"]})),w=i("time-format","h:mm:ss a",{options:["h:mm:ss a","HH:mm:ss"]}),E=(i("time-zone","local"),i("dev",!1,{parseJSON:o})),_=i("view-in-api",!1,{parseJSON:o,inheritFrom:E}),S=i("all-namespaces",!1,{parseJSON:o,inheritFrom:E}),k=(i("theme-shortcut",!1,{parseJSON:o,inheritFrom:E}),i("last-visited","home",{parseJSON:o}),i("seen-whatsnew","",{parseJSON:o}),i("read-whatsnew","",{parseJSON:o}),i("after-login-route","home",{parseJSON:o}),i("home-page-cards",{},{parseJSON:o}),i("plugin-developer",!1,{parseJSON:o,inheritFrom:E})),x="rke1",A="rke2";i("provisioner",A,{options:[x,A]}),i("scale-pool-prompt",null,{parseJSON:o})},10213:function(e,t,n){"use strict";n.d(t,{e:function(){return r},w:function(){return i}});const r={CLUSTER:"cluster",RANCHER:"rancher",MANAGEMENT:"management"},i="_"},86565:function(e,t,n){"use strict";n.d(t,{f7:function(){return a},lm:function(){return i},QF:function(){return r}});n(68774),n(35664),n(91462),n(68851),n(76978),n(92043),n(27436),n(27278),n(41580),n(79401),n(74302),n(83416);n(46392),n(9274);const r="__[[spoofed]]__",i="__[[spoofedapi]]__",a={V2_MONITORING:"v2-monitoring",PROJECT:"project",NO_PROJECT:"no-project",NOT_V1_ISTIO:"not-v1-istio",MULTI_CLUSTER:"multi-cluster",NEUVECTOR_NAMESPACE:"neuvector-namespace",ADMIN:"admin-user",MCM_DISABLED:"mcm-disabled",NOT_STANDALONE_HARVESTER:"not-standalone-harvester"}},39589:function(e,t,n){"use strict";n.d(t,{BA:function(){return S},ER:function(){return d},Eb:function(){return E},_R:function(){return y},gb:function(){return _}});var r=n(20246),i=n.n(r),a=n(4514),o=n(35664),s=n(76978),l=n(3514),c=n.n(l),u=n(55162);const d=async e=>{const t=e.getters["cluster/schemaFor"](o.Rp.ALERTMANAGERCONFIG);if(t)return await t.fetchResourceFields(),{receiverSchema:t.schemaDefinitions?.[`${t.schemaDefinition.id}.spec.receivers`],routeSchema:t.schemaDefinitions?.[`${t.schemaDefinition.id}.spec.route`]}},h="cattle-monitoring-system/alertmanager-rancher-monitoring-alertmanager",p="cattle-monitoring-system/rancher-monitoring-alertmanager",f="alertmanager.yaml";async function m(e){const t=await e("cluster/find",{type:o.Rp.ALERTMANAGER,id:p},{root:!0});return t?.spec?.configSecret?`${t.namespace}/${t?.spec?.configSecret}`:h}async function g(e){const t=await m(e,!1);try{return await e("cluster/find",{type:o.bB,id:t},{root:!0})}catch(n){const[r,i]=t.split("/"),a=await e("cluster/create",{type:o.bB},{root:!0});return a.metadata={namespace:r,name:i},a}}function v(e){e.data=e.data||{};const t=e.data[f],n=t?(0,a.u)(t):"{}",r=i().load(n);return r.receivers=r.receivers||[],r.route=r.route||{},r.route.routes=r.route.routes||[],r}async function b(e){const t=await g(e);return{config:v(t),secret:t}}async function y(e,t,n,r){const{config:o,secret:l}=await b(e);(0,s.hZ)(o,t,(0,s.Jt)(o,t)||[]),w(o.route.routes);const c=r((0,s.Jt)(o,t));(0,s.hZ)(o,t,c);const d=o.route.routes,h=d.findIndex((e=>e.name===u.ROOT_NAME));if(d.forEach((e=>{e.name&&delete e.name})),h>=0){const e=d.splice(h,1)[0];e.routes=d,o.route=e}const p=i().dump(o),m=(0,a.KA)(p);l.data[f]=m,await l.save()}function w(e){e.forEach(((e,t)=>{e.name=e.name||E(t)}))}function E(e){return`route-${e}`}function _(e){try{const t=v(e),n=t.route?.routes||[];return!n.some(c())}catch(t){return!1}}function S(e){return e["type-map/optionsFor"](o.bB).isCreatable}},48881:function(e,t,n){"use strict";n.d(t,{e:function(){return $}});var r=n(4364),i="text/plain",a=e=>{};function o(e){a(e)}function s(){(r.warn||r.log).apply(r,arguments)}s.bind("[clipboard-polyfill]");var l,c,u,d="undefined"===typeof window?void 0:window,h="undefined"===typeof globalThis?void 0:globalThis,p=null!=(u=null==(l=d)?void 0:l.Promise)?u:null==(c=h)?void 0:c.Promise;function f(){if(!p)throw new Error("No `Promise` implementation available for `clipboard-polyfill`. Consider using: https://github.com/lgarron/clipboard-polyfill#flat-file-version-with-promise-included");return p}var m,g,v,b,y,w="undefined"===typeof navigator?void 0:navigator,E=null==w?void 0:w.clipboard,_=(null==(m=null==E?void 0:E.read)||m.bind(E),null==(g=null==E?void 0:E.readText)||g.bind(E),null==(v=null==E?void 0:E.write)||v.bind(E),null==(b=null==E?void 0:E.writeText)?void 0:b.bind(E)),S=(null==(y=d)||y.ClipboardItem,f()),k=d;function x(){return"undefined"===typeof ClipboardEvent&&"undefined"!==typeof(null==k?void 0:k.clipboardData)&&"undefined"!==typeof(null==k?void 0:k.clipboardData.setData)}function A(e){if(!k.clipboardData)return!1;var t=k.clipboardData.setData("Text",e);return t&&o("writeTextIE worked"),t}function N(e,t,n){for(var r in o("listener called"),e.success=!0,t){var a=t[r],s=n.clipboardData;s.setData(r,a),r===i&&s.getData(r)!==a&&(o("setting text/plain failed"),e.success=!1)}n.preventDefault()}function C(e){var t={success:!1},n=N.bind(this,t,e);document.addEventListener("copy",n);try{document.execCommand("copy")}finally{document.removeEventListener("copy",n)}return t.success}function T(e,t){I(e);var n=C(t);return L(),n}function R(e){var t=document.createElement("div");t.setAttribute("style","-webkit-user-select: text !important"),t.textContent="temporary element",document.body.appendChild(t);var n=T(t,e);return document.body.removeChild(t),n}function O(e){o("copyTextUsingDOM");var t=document.createElement("div");t.setAttribute("style","-webkit-user-select: text !important");var n=t;t.attachShadow&&(o("Using shadow DOM."),n=t.attachShadow({mode:"open"}));var r=document.createElement("span");r.innerText=e,n.appendChild(r),document.body.appendChild(t),I(r);var i=document.execCommand("copy");return L(),document.body.removeChild(t),i}function I(e){var t=document.getSelection();if(t){var n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}}function L(){var e=document.getSelection();e&&e.removeAllRanges()}function D(e){var t=i in e;if(x()){if(!t)throw new Error("No `text/plain` value was specified.");if(A(e[i]))return!0;throw new Error("Copying failed, possibly because the user rejected it.")}return C(e)?(o("regular execCopy worked"),!0):navigator.userAgent.indexOf("Edge")>-1?(o('UA "Edge" => assuming success'),!0):T(document.body,e)?(o("copyUsingTempSelection worked"),!0):R(e)?(o("copyUsingTempElem worked"),!0):!!O(e[i])&&(o("copyTextUsingDOM worked"),!0)}S.resolve(),S.resolve(!1);function P(e){return new S(((t,n)=>{try{t(e())}catch(r){n(r)}}))}function M(e){var t={};return t[i]=e,t}function B(e){return P((()=>_?(o("Using `navigator.clipboard.writeText()`."),_(e).catch(F)):S.resolve(F(e))))}function F(e){if(!D(M(e)))throw new Error("writeText() failed")}async function $(e){await B(e)}},78347:function(e,t,n){"use strict";n.d(t,{H0:function(){return o},Tv:function(){return h},hk:function(){return s},qe:function(){return d},yq:function(){return c}});var r=n(4364);const i=n(70465);const a={black:"#000000",white:"#ffffff"};function o(e){return i(e)}function s(e){const t=e.rgb().array(),n=Math.round((299*parseInt(t[0])+587*parseInt(t[1])+114*parseInt(t[2]))/1e3);return n>125?"black":"white"}function l(e){const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function c(e){return a[e]||e}function u(e){const t=/^rgb\(([0-9]{1,3}),\s*([0-9]{1,3}),\s*([0-9]{1,3})\)$/i.exec(e);return t?{r:parseInt(t[1],10),g:parseInt(t[2],10),b:parseInt(t[3],10)}:null}function d(e){let t;return e.startsWith("rgb(")?t=u(e):e.startsWith("#")?t=l(e):r.warn(`Unable to parse color: ${e}`),t||{r:0,g:0,b:0}}function h(e){return e.includes("#")&&4===e.length?`#${e[1]}${e[1]}${e[2]}${e[2]}${e[3]}${e[3]}`:e.includes("#")||3!==e.length?e:`${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}`}},37648:function(e,t,n){"use strict";n.d(t,{Cd:function(){return S},Kq:function(){return x},Ng:function(){return h},Yd:function(){return m},fs:function(){return k},mH:function(){return g},xs:function(){return u}});var r=n(92043),i=n(68851),a=n(20246),o=n.n(a),s=n(76978),l=n(2334),c=n(4364);const u=["string","multiline","masked","password","float","int","date","blob","boolean","version"],d=["apiVersion","kind","metadata","metadata.name","spec","spec.selector","spec.selector.matchLabels","spec.template","spec.template.metadata","spec.template.metadata.labels","spec.template.spec.containers.name","spec.template.spec.containers.image"],h=["metadata.clusterName","metadata.creationTimestamp","metadata.deletionGracePeriodSeconds","metadata.deletionTimestamp","metadata.finalizers","metadata.generateName","metadata.generation","metadata.initializers","metadata.managedFields","metadata.ownerReferences","metadata.resourceVersion","metadata.relationships","metadata.selfLink","metadata.state","metadata.uid","spec.versions.schema","status","stringData","links","_name","_labels","_annotations"],p=["metadata.managedFields","metadata.relationships","metadata.state","status","links","type","id"],f=2;function m(e,t,n,r){return g(e,t,n,!0,0,"",null,r)}function g(e,t,n,r=!0,a=0,l="",f=null,m={}){let w,E,_,x;if(n=n||{},0===a){if(w=(0,i.jq)(e,"id",t),!w)return`Error loading schema for ${t}`;E=w,_=E.schemaDefinitions,x=E.resourceFields;const r=w.attributes||{};n.apiVersion=(r.group?`${r.group}/${r.version}`:r.version)||n.apiVersion,n.kind=r.kind||n.kind}else if(E=(0,i.jq)(e,"id",f),E.requiresResourceFields)_=E.schemaDefinitions,x=_[t]?.resourceFields;else{if(w=(0,i.jq)(e,"id",t),!w)return`Error loading schema for ${t}`;x=w.resourceFields}f||(f=t);const N=[];if(r){const e=d.slice();for(let t=e.length-1;t>=0;t--){let n=e[t].split(/\./);while(n.length)(0,i.PG)(e,n.join(".")),n=n.slice(0,-1)}for(const t of e){const e=t.split(/\./),n=e[e.length-1],r=e.slice(0,-1).join(".");r===l&&x&&x[n]&&(0,i.PG)(N,n)}}const C=Object.keys(x||{});C.forEach((e=>{("undefined"!==typeof n[e]||0===a&&"_type"===e)&&(0,i.PG)(N,e)}));for(const o in n)"undefined"!==typeof n[o]&&(0,i.PG)(N,o);for(const o of m.activelyRemove||p){const e=o.split(/\./),t=e[e.length-1],n=e.slice(0,-1).join(".");n===l&&(0,i.Gj)(N,t)}for(const o of h){const e=o.split(/\./),t=e[e.length-1],n=e.slice(0,-1).join(".");n===l&&x&&x[t]&&(0,i.Gj)(C,t)}(0,i.$M)(C,N);const T=N.map((e=>I(e))),R=C.map((e=>"metadata"===l&&"namespace"===e&&E&&!E.attributes?.namespaced?null:v(I(e)))),O=[...T,...R].filter((e=>null!==e)).join("\n").trim();return O;function I(t){const d=x?.[t];let h=`${t}:`;if("_type"===t&&(h="type:"),!d){if(n[t])try{const e=(0,s.nY)(n),r=o().dump(e[t]);return"object"===typeof n[t]||Array.isArray(n[t])?h+=`\n${b(r.trim())}`:h+=` ${r.trim()}`,h}catch(C){c.error(`Error: Unable to parse map data for yaml key: ${t}`,C)}return null}const p=k(d.type),v=S("map",p,d),w=S("array",p,d),E=S("reference",p);if(v){if(n[t])try{const e=(0,s.nY)(n),r=A(e[t],m[t]);h+=`\n${b(r)}`}catch(C){c.error(`Error: Unable to parse map data for yaml of type: ${p}`,C)}if(u.includes(v))h+=`# key: ${v}`;else{const n=g(e,v,null,r,a+1,l?`${l}.${t}`:t,f,m);let i=b(n);i=i.replace(/^(#)?\s\s\s\s/,"$1"),h+=`${i}`}return h}if(w){if(n[t])try{const e=(0,s.nY)(n);if(e?.[t]){const n=o().dump(e[t]);h+=`\n${b(n.trim())}`}}catch(C){c.error(`Error: Unable to parse array data for yaml of type: ${p}`,C)}if(u.includes(w))h+=`\n# - ${w}`;else{const n=g(e,w,null,!1,a+1,l?`${l}.${t}`:t,f,m);let r=b(n,2);r=r.replace(/^(#)?\s*\s\s([^\s])/,"$1 - $2"),h+=`\n${r}`}return h}if(E)return h+=` #${E}`,h;if(u.includes(p))return"_type"===t&&"undefined"===typeof n[t]&&"undefined"!==typeof n["type"]?h+=` ${y(n["type"])}`:"undefined"===typeof n[t]?h+=` #${y(p)}`:h+=` ${y(n[t])}`,h;if("json"===p||".spec"===p)try{const e=o().dump(n[t]);return h+=e?`\n${b(e.trim())}`:` #${p}`,h}catch(C){}const N=_?.[p]||(0,i.jq)(e,"id",p);if(N){let i;if(N?.resourceFields&&!(0,s.Im)(N?.resourceFields))i=g(e,p,n[t],r,a+1,l?`${l}.${t}`:t,f,m);else if(n[t])try{const e=o().dump(n[t]);i=e.trim()}catch(C){c.error(`Error: Unale to parse data for yaml of type: ${p}`,C)}h+=`\n${b(i)}`}else h+=` #${p}`;return h}}function v(e){return(e||"").split("\n").map((e=>`#${e.replace(/#/g,"")}`)).join("\n")}function b(e,t=1){return(0,r.pZ)(e,t*f," ",/^#/)}function y(e){return o().dump(e).trim()}function w(e,t){const n=E(e,t);return{header:n,indentation:_(n)}}function E(e,t){const n=`(${t})[\\:][\\s|\\t]+[\\|\\>][\\d]*[\\-\\+]?`,r=new RegExp(n,"gi"),i=e.match(r);return i?.[0]||""}function _(e){const t=e.substr(e.indexOf(":")+1),n=t.match(/\d+/);return n?.[0]||""}function S(e,t,n=null){const[r,i]=(0,l.parseType)(t,n);if(e===r)return k(i||r)}function k(e){return"integer"===e?"int":"io.k8s.apimachinery.pkg.api.resource.Quantity"===e?"string":e}function x(e){const t=o().dump(e||{});return"{}\n"===t?"":t}function A(e,t={lineWidth:-1}){const n=o().dump(e,t);let r=n;const i=Object.keys(e).filter((t=>{if("string"===typeof e[t])return e[t].includes("\n")}));if(i.length)for(const a of i){const{header:e,indentation:n}=w(r,a),i=t[a]?.scalarStyle??"|",o=t[a]?.chomping??"";e&&(r=r.replace(e,`${a}: ${i}${o}${n}`))}return r}},8755:function(e,t,n){"use strict";n.d(t,{Kz:function(){return o},en:function(){return a},pP:function(){return s}});var r=n(1048);function i(e){let t=0;for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return new Uint32Array([t])[0].toString(36)}function a(e){return i(JSON.stringify(e,null,2))}function o(e){return"string"===typeof e?0===e.length:0===e.byteLength}function s(e){return"string"===typeof e&&(e=new r.Buffer(e,"utf8")),ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}},4514:function(e,t,n){"use strict";n.d(t,{u:function(){return C},KA:function(){return A},dQ:function(){return R},Fx:function(){return T}});var r=n(1048),i=n(8755);const a=64,o=16;function s(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(a)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}var l=s;function c(e,t,n,r,i,a){return t=(t+e&4294967295)+(r+a&4294967295)&4294967295,(t<<i|t>>>32-i)+n&4294967295}function u(e,t,n,r,i,a,o){return c(t&n|~t&r,e,t,i,a,o)}function d(e,t,n,r,i,a,o){return c(t&r|n&~r,e,t,i,a,o)}function h(e,t,n,r,i,a,o){return c(t^n^r,e,t,i,a,o)}function p(e,t,n,r,i,a,o){return c(n^(t|~r),e,t,i,a,o)}s.BLOCK_SIZE=a,s.prototype.update=function(e){if((0,i.Kz)(e))return this;if(this.finished)throw new Error("Attempted to update an already finished hash.");const t=(0,i.pP)(e);let n=0,r=t.byteLength;this.bytesHashed+=r;while(r>0)this.buffer.setUint8(this.bufferLength++,t[n++]),r--,this.bufferLength===a&&(this.hashBuffer(),this.bufferLength=0);return this},s.prototype.digest=function(e){if(!this.finished){const e=this,t=e.buffer,n=e.bufferLength,r=e.bytesHashed,i=8*r;if(t.setUint8(this.bufferLength++,128),n%a>=a-8){for(let e=this.bufferLength;e<a;e++)t.setUint8(e,0);this.hashBuffer(),this.bufferLength=0}for(let o=this.bufferLength;o<a-8;o++)t.setUint8(o,0);t.setUint32(a-8,i>>>0,!0),t.setUint32(a-4,Math.floor(i/4294967296),!0),this.hashBuffer(),this.finished=!0}const t=new DataView(new ArrayBuffer(o));for(let r=0;r<4;r++)t.setUint32(4*r,this.state[r],!0);const n=new r.Buffer(t.buffer,t.byteOffset,t.byteLength);return e?n.toString(e):n},s.prototype.hashBuffer=function(){const e=this,t=e.buffer,n=e.state;let r=n[0],i=n[1],a=n[2],o=n[3];r=u(r,i,a,o,t.getUint32(0,!0),7,3614090360),o=u(o,r,i,a,t.getUint32(4,!0),12,3905402710),a=u(a,o,r,i,t.getUint32(8,!0),17,606105819),i=u(i,a,o,r,t.getUint32(12,!0),22,3250441966),r=u(r,i,a,o,t.getUint32(16,!0),7,4118548399),o=u(o,r,i,a,t.getUint32(20,!0),12,1200080426),a=u(a,o,r,i,t.getUint32(24,!0),17,2821735955),i=u(i,a,o,r,t.getUint32(28,!0),22,4249261313),r=u(r,i,a,o,t.getUint32(32,!0),7,1770035416),o=u(o,r,i,a,t.getUint32(36,!0),12,2336552879),a=u(a,o,r,i,t.getUint32(40,!0),17,4294925233),i=u(i,a,o,r,t.getUint32(44,!0),22,2304563134),r=u(r,i,a,o,t.getUint32(48,!0),7,1804603682),o=u(o,r,i,a,t.getUint32(52,!0),12,4254626195),a=u(a,o,r,i,t.getUint32(56,!0),17,2792965006),i=u(i,a,o,r,t.getUint32(60,!0),22,1236535329),r=d(r,i,a,o,t.getUint32(4,!0),5,4129170786),o=d(o,r,i,a,t.getUint32(24,!0),9,3225465664),a=d(a,o,r,i,t.getUint32(44,!0),14,643717713),i=d(i,a,o,r,t.getUint32(0,!0),20,3921069994),r=d(r,i,a,o,t.getUint32(20,!0),5,3593408605),o=d(o,r,i,a,t.getUint32(40,!0),9,38016083),a=d(a,o,r,i,t.getUint32(60,!0),14,3634488961),i=d(i,a,o,r,t.getUint32(16,!0),20,3889429448),r=d(r,i,a,o,t.getUint32(36,!0),5,568446438),o=d(o,r,i,a,t.getUint32(56,!0),9,3275163606),a=d(a,o,r,i,t.getUint32(12,!0),14,4107603335),i=d(i,a,o,r,t.getUint32(32,!0),20,1163531501),r=d(r,i,a,o,t.getUint32(52,!0),5,2850285829),o=d(o,r,i,a,t.getUint32(8,!0),9,4243563512),a=d(a,o,r,i,t.getUint32(28,!0),14,1735328473),i=d(i,a,o,r,t.getUint32(48,!0),20,2368359562),r=h(r,i,a,o,t.getUint32(20,!0),4,4294588738),o=h(o,r,i,a,t.getUint32(32,!0),11,2272392833),a=h(a,o,r,i,t.getUint32(44,!0),16,1839030562),i=h(i,a,o,r,t.getUint32(56,!0),23,4259657740),r=h(r,i,a,o,t.getUint32(4,!0),4,2763975236),o=h(o,r,i,a,t.getUint32(16,!0),11,1272893353),a=h(a,o,r,i,t.getUint32(28,!0),16,4139469664),i=h(i,a,o,r,t.getUint32(40,!0),23,3200236656),r=h(r,i,a,o,t.getUint32(52,!0),4,681279174),o=h(o,r,i,a,t.getUint32(0,!0),11,3936430074),a=h(a,o,r,i,t.getUint32(12,!0),16,3572445317),i=h(i,a,o,r,t.getUint32(24,!0),23,76029189),r=h(r,i,a,o,t.getUint32(36,!0),4,3654602809),o=h(o,r,i,a,t.getUint32(48,!0),11,3873151461),a=h(a,o,r,i,t.getUint32(60,!0),16,530742520),i=h(i,a,o,r,t.getUint32(8,!0),23,3299628645),r=p(r,i,a,o,t.getUint32(0,!0),6,4096336452),o=p(o,r,i,a,t.getUint32(28,!0),10,1126891415),a=p(a,o,r,i,t.getUint32(56,!0),15,2878612391),i=p(i,a,o,r,t.getUint32(20,!0),21,4237533241),r=p(r,i,a,o,t.getUint32(48,!0),6,1700485571),o=p(o,r,i,a,t.getUint32(12,!0),10,2399980690),a=p(a,o,r,i,t.getUint32(40,!0),15,4293915773),i=p(i,a,o,r,t.getUint32(4,!0),21,2240044497),r=p(r,i,a,o,t.getUint32(32,!0),6,1873313359),o=p(o,r,i,a,t.getUint32(60,!0),10,4264355552),a=p(a,o,r,i,t.getUint32(24,!0),15,2734768916),i=p(i,a,o,r,t.getUint32(52,!0),21,1309151649),r=p(r,i,a,o,t.getUint32(16,!0),6,4149444226),o=p(o,r,i,a,t.getUint32(44,!0),10,3174756917),a=p(a,o,r,i,t.getUint32(8,!0),15,718787259),i=p(i,a,o,r,t.getUint32(36,!0),21,3951481745),n[0]=r+n[0]&4294967295,n[1]=i+n[1]&4294967295,n[2]=a+n[2]&4294967295,n[3]=o+n[3]&4294967295};const f=64,m=32,g=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),v=2**53-1;function b(){this.state=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}var y=b;b.BLOCK_SIZE=f,b.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if((0,i.Kz)(e))return this;e=(0,i.pP)(e);let t=0,n=e.byteLength;if(this.bytesHashed+=n,8*this.bytesHashed>v)throw new Error("Cannot hash more than 2^53 - 1 bits");while(n>0)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===f&&(this.hashBuffer(),this.bufferLength=0);return this},b.prototype.digest=function(e){if(!this.finished){const e=8*this.bytesHashed,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%f>=f-8){for(let e=this.bufferLength;e<f;e++)t.setUint8(e,0);this.hashBuffer(),this.bufferLength=0}for(let r=this.bufferLength;r<f-8;r++)t.setUint8(r,0);t.setUint32(f-8,Math.floor(e/4294967296),!0),t.setUint32(f-4,e),this.hashBuffer(),this.finished=!0}const t=new r.Buffer(m);for(let n=0;n<8;n++)t[4*n]=this.state[n]>>>24&255,t[4*n+1]=this.state[n]>>>16&255,t[4*n+2]=this.state[n]>>>8&255,t[4*n+3]=this.state[n]>>>0&255;return e?t.toString(e):t},b.prototype.hashBuffer=function(){const e=this,t=e.buffer,n=e.state;let r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],l=n[5],c=n[6],u=n[7];for(let d=0;d<f;d++){if(d<16)this.temp[d]=(255&t[4*d])<<24|(255&t[4*d+1])<<16|(255&t[4*d+2])<<8|255&t[4*d+3];else{let e=this.temp[d-2];const t=(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10;e=this.temp[d-15];const n=(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3;this.temp[d]=(t+this.temp[d-7]|0)+(n+this.temp[d-16]|0)}const e=(((s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7))+(s&l^~s&c)|0)+(u+(g[d]+this.temp[d]|0)|0)|0,n=((r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10))+(r&i^r&a^i&a)|0;u=c,c=l,l=s,s=o+e|0,o=a,a=i,i=r,r=e+n|0}n[0]+=r,n[1]+=i,n[2]+=a,n[3]+=o,n[4]+=s,n[5]+=l,n[6]+=c,n[7]+=u};const w=64,E=20;function _(){this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=new Uint32Array(80),this.offset=0,this.shift=24,this.totalLength=0}var S=_;_.BLOCK_SIZE=w,_.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if((0,i.Kz)(e))return this;e=(0,i.pP)(e);const t=e.length;this.totalLength+=8*t;for(let n=0;n<t;n++)this.write(e[n]);return this},_.prototype.write=function(e){this.block[this.offset]|=(255&e)<<this.shift,this.shift?this.shift-=8:(this.offset++,this.shift=24),16===this.offset&&this.processBlock()},_.prototype.digest=function(e){this.write(128),(this.offset>14||14===this.offset&&this.shift<24)&&this.processBlock(),this.offset=14,this.shift=24,this.write(0),this.write(0),this.write(this.totalLength>0xffffffffff?this.totalLength/1099511627776:0),this.write(this.totalLength>4294967295?this.totalLength/4294967296:0);for(let r=24;r>=0;r-=8)this.write(this.totalLength>>r);const t=new r.Buffer(E),n=new DataView(t.buffer);return n.setUint32(0,this.h0,!1),n.setUint32(4,this.h1,!1),n.setUint32(8,this.h2,!1),n.setUint32(12,this.h3,!1),n.setUint32(16,this.h4,!1),e?t.toString(e):t},_.prototype.processBlock=function(){for(let s=16;s<80;s++){const e=this.block[s-3]^this.block[s-8]^this.block[s-14]^this.block[s-16];this.block[s]=e<<1|e>>>31}let e,t,n=this.h0,r=this.h1,i=this.h2,a=this.h3,o=this.h4;for(let s=0;s<80;s++){s<20?(e=a^r&(i^a),t=1518500249):s<40?(e=r^i^a,t=1859775393):s<60?(e=r&i|a&(r|i),t=2400959708):(e=r^i^a,t=3395469782);const l=(n<<5|n>>>27)+e+o+t+(0|this.block[s]);o=a,a=i,i=r<<30|r>>>2,r=n,n=l}this.h0=this.h0+n|0,this.h1=this.h1+r|0,this.h2=this.h2+i|0,this.h3=this.h3+a|0,this.h4=this.h4+o|0,this.offset=0;for(let s=0;s<16;s++)this.block[s]=0};const k="normal",x="url";function A(e,t=k){let n;if(null===e||"undefined"===typeof e)return e;if(n="function"===typeof r.Buffer.from&&r.Buffer.from!==Uint8Array.from?r.Buffer.from(e):new r.Buffer(e),t===x){const e={"+":"-","/":"_"};return n.toString("base64").replace(/[+/]|=+$/g,(t=>e[t]||""))}return n.toString("base64")}function N(e){return null===e||"undefined"===typeof e?e:"function"===typeof r.Buffer.from&&r.Buffer.from!==Uint8Array.from?r.Buffer.from(e,"base64"):new r.Buffer(e,"base64")}function C(e){return e?N(e.replace(/[-_]/g,(e=>"-"===e?"+":"/"))).toString():e}function T(e,t,n){return O("md5",e,t,n)}function R(e){const t=`${e}`.length;let n=3*t/4;return e.length>0&&"="===e[e.length-1]&&(n--,e.length>1&&"="===e[e.length-2]&&n--),n}function O(e,t,n,i){const a=I(e);n||(n="binary"),"buffer"===n&&(n=void 0),"string"===typeof t&&(t=new r.Buffer(t));const o=L(t);let s=r.Buffer.isBuffer(t);if("undefined"!==typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(s=!0),i&&"object"===typeof t&&"function"===typeof t.on&&!s)t.on("data",(e=>{a.update(e)})),t.on("error",(e=>{i(e)})),t.on("end",(()=>{i(null,a.digest(n))}));else{if(!i||!o||s||"undefined"===typeof FileReader){"object"!==typeof t||s||(t=new r.Buffer(new Uint8Array(t)));const e=a.update(t).digest(n);return i&&i(null,e),e}{let e=0;const s=524288,l=new FileReader;l.onerror=function(){i(new Error("Failed to read data."))},l.onload=function(){const t=new r.Buffer(new Uint8Array(l.result));a.update(t),e+=t.length,l._continueReading()},l._continueReading=function(){if(e>=t.size)return void i(null,a.digest(n));let r=e+s;r>t.size&&(r=t.size),l.readAsArrayBuffer(o.call(t,e,r))},l._continueReading()}}}function I(e){if(e=e.toLowerCase(),"md5"===e)return new l;if("sha256"===e)return new y;if("sha1"===e)return new S;throw new Error(`Hash algorithm ${e} is not supported`)}function L(e){const t=e.slice||e.webkitSlice||e.mozSlice;return"function"===typeof t?t:null}},6198:function(e,t,n){"use strict";n.d(t,{Is:function(){return s},PE:function(){return a},jl:function(){return o}});var r=n(47008),i=n.n(r);async function a(e,t,r="text/plain;charset=utf-8"){const i=new Blob([t],{type:r}),a=(await n.e(60).then(n.t.bind(n,45060,23))).default;return a(i,e)}function o(e){const t=new(i());for(const n in e)t.file(n,e[n]);return t.generateAsync({type:"blob"}).then((e=>e))}function s(e,t="__downloadIframe"){let n=document.getElementById(t);n||(n=document.createElement("iframe"),n.style.display="none",n.id=t,document.body.appendChild(n)),n.src=e}},99726:function(e,t,n){"use strict";n.d(t,{As:function(){return c},oV:function(){return s},rz:function(){return u}});var r=n(68851);function i(e,t,n){return(t=a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){var t=o(e,"string");return"symbol"==typeof t?t:t+""}function o(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}class s extends Error{constructor(e){super(e),this.name=s.NAME}}i(s,"NAME","ClusterNotFoundError");class l extends Error{constructor(e,t){super(e),this.url=t,this.name=l.NAME}}i(l,"NAME","RedirectToError");Error;function c(e){let t;if("string"===typeof e)t=e;else if(e&&"object"===typeof e)if(e.message){if(t=e.message,"string"===typeof t)try{const e=JSON.parse(t).data;if(e)return e}catch{}e.detail&&(t?t+=` (${e.detail})`:t=e.detail)}else e.detail?t=e.detail:e.url&&(t=`from ${e.url}`);return t||(t=JSON.stringify(e)),t}function u(e){if(e?.response?.data){const t=e.response.data;return t&&t.message?[t.message]:[e]}return e.status&&e.message?[e.message]:(0,r.cy)(e)?e:[e]}},83416:function(e,t,n){"use strict";n.d(t,{de:function(){return o}});var r=n(35664),i=n(79401),a=n(68851);n(76978);function o(e){const t=e["getStoreNameByProductId"],n=e[`${t}/all`](r.yx),o=(0,a.jq)(n,"id",(0,i.AZ)(r.Rp.PODMONITOR));return!!o}},18110:function(e,t,n){"use strict";n.d(t,{EF:function(){return i},Rc:function(){return c},T6:function(){return f},TD:function(){return p},bE:function(){return u},os:function(){return o},pF:function(){return d},tA:function(){return s},tj:function(){return l},x8:function(){return h},xs:function(){return a}});const r="all",i="ns",a="project",o=`${i}://`,s=`${a}://`,l=r,c=`${r}://system`,u=`${r}://user`,d=`${r}://orphans`,h="namespaced://true",p="namespaced://false",f={DIVIDER:"divider",PROJECT:"project",NAMESPACE:"namespace",SPECIAL:"special"}},76978:function(e,t,n){"use strict";n.d(t,{TJ:function(){return ie},no:function(){return ne},MA:function(){return re},nY:function(){return J},o8:function(){return Y},yo:function(){return oe},BJ:function(){return W},Ui:function(){return ee},cX:function(){return ae},Jt:function(){return q},Ib:function(){return z},Im:function(){return Q},n4:function(){return te},hZ:function(){return G}});var r=n(9274),i=n(46108),a=n.n(i),o=n(53435),s=n.n(o),l=n(16238),c=n.n(l);class u{add(e,t,n){if("string"!=typeof arguments[0])for(let r in arguments[0])this.add(r,arguments[0][r],arguments[1]);else(Array.isArray(e)?e:[e]).forEach((function(e){this[e]=this[e]||[],t&&this[e][n?"unshift":"push"](t)}),this)}run(e,t){this[e]=this[e]||[],this[e].forEach((function(e){e.call(t&&t.context?t.context:t,t)}))}}class d{constructor(e){this.jsep=e,this.registered={}}register(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.forEach((e=>{if("object"!==typeof e||!e.name||!e.init)throw new Error("Invalid JSEP plugin format");this.registered[e.name]||(e.init(this.jsep),this.registered[e.name]=e)}))}}class h{static get version(){return"1.3.9"}static toString(){return"JavaScript Expression Parser (JSEP) v"+h.version}static addUnaryOp(e){return h.max_unop_len=Math.max(e.length,h.max_unop_len),h.unary_ops[e]=1,h}static addBinaryOp(e,t,n){return h.max_binop_len=Math.max(e.length,h.max_binop_len),h.binary_ops[e]=t,n?h.right_associative.add(e):h.right_associative.delete(e),h}static addIdentifierChar(e){return h.additional_identifier_chars.add(e),h}static addLiteral(e,t){return h.literals[e]=t,h}static removeUnaryOp(e){return delete h.unary_ops[e],e.length===h.max_unop_len&&(h.max_unop_len=h.getMaxKeyLen(h.unary_ops)),h}static removeAllUnaryOps(){return h.unary_ops={},h.max_unop_len=0,h}static removeIdentifierChar(e){return h.additional_identifier_chars.delete(e),h}static removeBinaryOp(e){return delete h.binary_ops[e],e.length===h.max_binop_len&&(h.max_binop_len=h.getMaxKeyLen(h.binary_ops)),h.right_associative.delete(e),h}static removeAllBinaryOps(){return h.binary_ops={},h.max_binop_len=0,h}static removeLiteral(e){return delete h.literals[e],h}static removeAllLiterals(){return h.literals={},h}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(e){this.expr=e,this.index=0}static parse(e){return new h(e).parse()}static getMaxKeyLen(e){return Math.max(0,...Object.keys(e).map((e=>e.length)))}static isDecimalDigit(e){return e>=48&&e<=57}static binaryPrecedence(e){return h.binary_ops[e]||0}static isIdentifierStart(e){return e>=65&&e<=90||e>=97&&e<=122||e>=128&&!h.binary_ops[String.fromCharCode(e)]||h.additional_identifier_chars.has(String.fromCharCode(e))}static isIdentifierPart(e){return h.isIdentifierStart(e)||h.isDecimalDigit(e)}throwError(e){const t=new Error(e+" at character "+this.index);throw t.index=this.index,t.description=e,t}runHook(e,t){if(h.hooks[e]){const n={context:this,node:t};return h.hooks.run(e,n),n.node}return t}searchHook(e){if(h.hooks[e]){const t={context:this};return h.hooks[e].find((function(e){return e.call(t.context,t),t.node})),t.node}}gobbleSpaces(){let e=this.code;while(e===h.SPACE_CODE||e===h.TAB_CODE||e===h.LF_CODE||e===h.CR_CODE)e=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");const e=this.gobbleExpressions(),t=1===e.length?e[0]:{type:h.COMPOUND,body:e};return this.runHook("after-all",t)}gobbleExpressions(e){let t,n,r=[];while(this.index<this.expr.length)if(t=this.code,t===h.SEMCOL_CODE||t===h.COMMA_CODE)this.index++;else if(n=this.gobbleExpression())r.push(n);else if(this.index<this.expr.length){if(t===e)break;this.throwError('Unexpected "'+this.char+'"')}return r}gobbleExpression(){const e=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",e)}gobbleBinaryOp(){this.gobbleSpaces();let e=this.expr.substr(this.index,h.max_binop_len),t=e.length;while(t>0){if(h.binary_ops.hasOwnProperty(e)&&(!h.isIdentifierStart(this.code)||this.index+e.length<this.expr.length&&!h.isIdentifierPart(this.expr.charCodeAt(this.index+e.length))))return this.index+=t,e;e=e.substr(0,--t)}return!1}gobbleBinaryExpression(){let e,t,n,r,i,a,o,s,l;if(a=this.gobbleToken(),!a)return a;if(t=this.gobbleBinaryOp(),!t)return a;i={value:t,prec:h.binaryPrecedence(t),right_a:h.right_associative.has(t)},o=this.gobbleToken(),o||this.throwError("Expected expression after "+t),r=[a,i,o];while(t=this.gobbleBinaryOp()){if(n=h.binaryPrecedence(t),0===n){this.index-=t.length;break}i={value:t,prec:n,right_a:h.right_associative.has(t)},l=t;const s=e=>i.right_a&&e.right_a?n>e.prec:n<=e.prec;while(r.length>2&&s(r[r.length-2]))o=r.pop(),t=r.pop().value,a=r.pop(),e={type:h.BINARY_EXP,operator:t,left:a,right:o},r.push(e);e=this.gobbleToken(),e||this.throwError("Expected expression after "+l),r.push(i,e)}s=r.length-1,e=r[s];while(s>1)e={type:h.BINARY_EXP,operator:r[s-1].value,left:r[s-2],right:e},s-=2;return e}gobbleToken(){let e,t,n,r;if(this.gobbleSpaces(),r=this.searchHook("gobble-token"),r)return this.runHook("after-token",r);if(e=this.code,h.isDecimalDigit(e)||e===h.PERIOD_CODE)return this.gobbleNumericLiteral();if(e===h.SQUOTE_CODE||e===h.DQUOTE_CODE)r=this.gobbleStringLiteral();else if(e===h.OBRACK_CODE)r=this.gobbleArray();else{t=this.expr.substr(this.index,h.max_unop_len),n=t.length;while(n>0){if(h.unary_ops.hasOwnProperty(t)&&(!h.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!h.isIdentifierPart(this.expr.charCodeAt(this.index+t.length)))){this.index+=n;const e=this.gobbleToken();return e||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:h.UNARY_EXP,operator:t,argument:e,prefix:!0})}t=t.substr(0,--n)}h.isIdentifierStart(e)?(r=this.gobbleIdentifier(),h.literals.hasOwnProperty(r.name)?r={type:h.LITERAL,value:h.literals[r.name],raw:r.name}:r.name===h.this_str&&(r={type:h.THIS_EXP})):e===h.OPAREN_CODE&&(r=this.gobbleGroup())}return r?(r=this.gobbleTokenProperty(r),this.runHook("after-token",r)):this.runHook("after-token",!1)}gobbleTokenProperty(e){this.gobbleSpaces();let t=this.code;while(t===h.PERIOD_CODE||t===h.OBRACK_CODE||t===h.OPAREN_CODE||t===h.QUMARK_CODE){let n;if(t===h.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==h.PERIOD_CODE)break;n=!0,this.index+=2,this.gobbleSpaces(),t=this.code}this.index++,t===h.OBRACK_CODE?(e={type:h.MEMBER_EXP,computed:!0,object:e,property:this.gobbleExpression()},e.property||this.throwError('Unexpected "'+this.char+'"'),this.gobbleSpaces(),t=this.code,t!==h.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):t===h.OPAREN_CODE?e={type:h.CALL_EXP,arguments:this.gobbleArguments(h.CPAREN_CODE),callee:e}:(t===h.PERIOD_CODE||n)&&(n&&this.index--,this.gobbleSpaces(),e={type:h.MEMBER_EXP,computed:!1,object:e,property:this.gobbleIdentifier()}),n&&(e.optional=!0),this.gobbleSpaces(),t=this.code}return e}gobbleNumericLiteral(){let e,t,n="";while(h.isDecimalDigit(this.code))n+=this.expr.charAt(this.index++);if(this.code===h.PERIOD_CODE){n+=this.expr.charAt(this.index++);while(h.isDecimalDigit(this.code))n+=this.expr.charAt(this.index++)}if(e=this.char,"e"===e||"E"===e){n+=this.expr.charAt(this.index++),e=this.char,"+"!==e&&"-"!==e||(n+=this.expr.charAt(this.index++));while(h.isDecimalDigit(this.code))n+=this.expr.charAt(this.index++);h.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+n+this.char+")")}return t=this.code,h.isIdentifierStart(t)?this.throwError("Variable names cannot start with a number ("+n+this.char+")"):(t===h.PERIOD_CODE||1===n.length&&n.charCodeAt(0)===h.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:h.LITERAL,value:parseFloat(n),raw:n}}gobbleStringLiteral(){let e="";const t=this.index,n=this.expr.charAt(this.index++);let r=!1;while(this.index<this.expr.length){let t=this.expr.charAt(this.index++);if(t===n){r=!0;break}if("\\"===t)switch(t=this.expr.charAt(this.index++),t){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:e+=t}else e+=t}return r||this.throwError('Unclosed quote after "'+e+'"'),{type:h.LITERAL,value:e,raw:this.expr.substring(t,this.index)}}gobbleIdentifier(){let e=this.code,t=this.index;h.isIdentifierStart(e)?this.index++:this.throwError("Unexpected "+this.char);while(this.index<this.expr.length){if(e=this.code,!h.isIdentifierPart(e))break;this.index++}return{type:h.IDENTIFIER,name:this.expr.slice(t,this.index)}}gobbleArguments(e){const t=[];let n=!1,r=0;while(this.index<this.expr.length){this.gobbleSpaces();let i=this.code;if(i===e){n=!0,this.index++,e===h.CPAREN_CODE&&r&&r>=t.length&&this.throwError("Unexpected token "+String.fromCharCode(e));break}if(i===h.COMMA_CODE){if(this.index++,r++,r!==t.length)if(e===h.CPAREN_CODE)this.throwError("Unexpected token ,");else if(e===h.CBRACK_CODE)for(let e=t.length;e<r;e++)t.push(null)}else if(t.length!==r&&0!==r)this.throwError("Expected comma");else{const e=this.gobbleExpression();e&&e.type!==h.COMPOUND||this.throwError("Expected comma"),t.push(e)}}return n||this.throwError("Expected "+String.fromCharCode(e)),t}gobbleGroup(){this.index++;let e=this.gobbleExpressions(h.CPAREN_CODE);if(this.code===h.CPAREN_CODE)return this.index++,1===e.length?e[0]:!!e.length&&{type:h.SEQUENCE_EXP,expressions:e};this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:h.ARRAY_EXP,elements:this.gobbleArguments(h.CBRACK_CODE)}}}const p=new u;Object.assign(h,{hooks:p,plugins:new d(h),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"}),h.max_unop_len=h.getMaxKeyLen(h.unary_ops),h.max_binop_len=h.getMaxKeyLen(h.binary_ops);const f=e=>new h(e).parse(),m=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(h).filter((e=>!m.includes(e)&&void 0===f[e])).forEach((e=>{f[e]=h[e]})),f.Jsep=h;const g="ConditionalExpression";var v={name:"ternary",init(e){e.hooks.add("after-expression",(function(t){if(t.node&&this.code===e.QUMARK_CODE){this.index++;const n=t.node,r=this.gobbleExpression();if(r||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;const i=this.gobbleExpression();if(i||this.throwError("Expected expression"),t.node={type:g,test:n,consequent:r,alternate:i},n.operator&&e.binary_ops[n.operator]<=.9){let r=n;while(r.right.operator&&e.binary_ops[r.right.operator]<=.9)r=r.right;t.node.test=r.right,r.right=t.node,t.node=n}}else this.throwError("Expected :")}}))}};f.plugins.register(v);const b=47,y=92;var w={name:"regex",init(e){e.hooks.add("gobble-token",(function(t){if(this.code===b){const r=++this.index;let i=!1;while(this.index<this.expr.length){if(this.code===b&&!i){const i=this.expr.slice(r,this.index);let a,o="";while(++this.index<this.expr.length){const e=this.code;if(!(e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57))break;o+=this.char}try{a=new RegExp(i,o)}catch(n){this.throwError(n.message)}return t.node={type:e.LITERAL,value:a,raw:this.expr.slice(r-1,this.index)},t.node=this.gobbleTokenProperty(t.node),t.node}this.code===e.OBRACK_CODE?i=!0:i&&this.code===e.CBRACK_CODE&&(i=!1),this.index+=this.code===y?2:1}this.throwError("Unclosed Regex")}}))}};const E=43,_=45,S={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|="]),updateOperators:[E,_],assignmentPrecedence:.9,init(e){const t=[e.IDENTIFIER,e.MEMBER_EXP];function n(e){S.assignmentOperators.has(e.operator)?(e.type="AssignmentExpression",n(e.left),n(e.right)):e.operator||Object.values(e).forEach((e=>{e&&"object"===typeof e&&n(e)}))}S.assignmentOperators.forEach((t=>e.addBinaryOp(t,S.assignmentPrecedence,!0))),e.hooks.add("gobble-token",(function(e){const n=this.code;S.updateOperators.some((e=>e===n&&e===this.expr.charCodeAt(this.index+1)))&&(this.index+=2,e.node={type:"UpdateExpression",operator:n===E?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},e.node.argument&&t.includes(e.node.argument.type)||this.throwError(`Unexpected ${e.node.operator}`))})),e.hooks.add("after-token",(function(e){if(e.node){const n=this.code;S.updateOperators.some((e=>e===n&&e===this.expr.charCodeAt(this.index+1)))&&(t.includes(e.node.type)||this.throwError(`Unexpected ${e.node.operator}`),this.index+=2,e.node={type:"UpdateExpression",operator:n===E?"++":"--",argument:e.node,prefix:!1})}})),e.hooks.add("after-expression",(function(e){e.node&&n(e.node)}))}};f.plugins.register(w,S);const k={evalAst(e,t){switch(e.type){case"BinaryExpression":case"LogicalExpression":return k.evalBinaryExpression(e,t);case"Compound":return k.evalCompound(e,t);case"ConditionalExpression":return k.evalConditionalExpression(e,t);case"Identifier":return k.evalIdentifier(e,t);case"Literal":return k.evalLiteral(e,t);case"MemberExpression":return k.evalMemberExpression(e,t);case"UnaryExpression":return k.evalUnaryExpression(e,t);case"ArrayExpression":return k.evalArrayExpression(e,t);case"CallExpression":return k.evalCallExpression(e,t);case"AssignmentExpression":return k.evalAssignmentExpression(e,t);default:throw SyntaxError("Unexpected expression",e)}},evalBinaryExpression(e,t){const n={"||":(e,t)=>e||t(),"&&":(e,t)=>e&&t(),"|":(e,t)=>e|t(),"^":(e,t)=>e^t(),"&":(e,t)=>e&t(),"==":(e,t)=>e==t(),"!=":(e,t)=>e!=t(),"===":(e,t)=>e===t(),"!==":(e,t)=>e!==t(),"<":(e,t)=>e<t(),">":(e,t)=>e>t(),"<=":(e,t)=>e<=t(),">=":(e,t)=>e>=t(),"<<":(e,t)=>e<<t(),">>":(e,t)=>e>>t(),">>>":(e,t)=>e>>>t(),"+":(e,t)=>e+t(),"-":(e,t)=>e-t(),"*":(e,t)=>e*t(),"/":(e,t)=>e/t(),"%":(e,t)=>e%t()}[e.operator](k.evalAst(e.left,t),(()=>k.evalAst(e.right,t)));return n},evalCompound(e,t){let n;for(let r=0;r<e.body.length;r++){"Identifier"===e.body[r].type&&["var","let","const"].includes(e.body[r].name)&&e.body[r+1]&&"AssignmentExpression"===e.body[r+1].type&&(r+=1);const i=e.body[r];n=k.evalAst(i,t)}return n},evalConditionalExpression(e,t){return k.evalAst(e.test,t)?k.evalAst(e.consequent,t):k.evalAst(e.alternate,t)},evalIdentifier(e,t){if(e.name in t)return t[e.name];throw ReferenceError(`${e.name} is not defined`)},evalLiteral(e){return e.value},evalMemberExpression(e,t){if("Identifier"===e.property.type&&"constructor"===e.property.name||"Identifier"===e.object.type&&"constructor"===e.object.name)throw new Error("'constructor' property is disabled");const n=e.computed?k.evalAst(e.property):e.property.name,r=k.evalAst(e.object,t),i=r[n];if("function"===typeof i){if(r===Function&&"bind"===n)throw new Error("Function.prototype.bind is disabled");if(r===Function&&("call"===n||"apply"===n))throw new Error("Function.prototype.call and Function.prototype.apply are disabled");return i===Function?i:i.bind(r)}return i},evalUnaryExpression(e,t){const n={"-":e=>-k.evalAst(e,t),"!":e=>!k.evalAst(e,t),"~":e=>~k.evalAst(e,t),"+":e=>+k.evalAst(e,t)}[e.operator](e.argument);return n},evalArrayExpression(e,t){return e.elements.map((e=>k.evalAst(e,t)))},evalCallExpression(e,t){const n=e.arguments.map((e=>k.evalAst(e,t))),r=k.evalAst(e.callee,t);if(r===Function)throw new Error("Function constructor is disabled");return r(...n)},evalAssignmentExpression(e,t){if("Identifier"!==e.left.type)throw SyntaxError("Invalid left-hand side in assignment");const n=e.left.name;if("__proto__"===n)throw new Error("Assignment to __proto__ is disabled");const r=k.evalAst(e.right,t);return t[n]=r,t[n]}};class x{constructor(e){this.code=e,this.ast=f(this.code)}runInNewContext(e){const t={...e};return k.evalAst(this.ast,t)}}function A(e,t){return e=e.slice(),e.push(t),e}function N(e,t){return t=t.slice(),t.unshift(e),t}class C extends Error{constructor(e){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=e,this.name="NewError"}}function T(e,t,n,r,i){if(!(this instanceof T))try{return new T(e,t,n,r,i)}catch(o){if(!o.avoidNew)throw o;return o.value}"string"===typeof e&&(i=r,r=n,n=t,t=e,e=null);const a=e&&"object"===typeof e;if(e=e||{},this.json=e.json||n,this.path=e.path||t,this.resultType=e.resultType||"value",this.flatten=e.flatten||!1,this.wrap=!Object.hasOwn(e,"wrap")||e.wrap,this.sandbox=e.sandbox||{},this.eval=void 0===e.eval?"safe":e.eval,this.ignoreEvalErrors="undefined"!==typeof e.ignoreEvalErrors&&e.ignoreEvalErrors,this.parent=e.parent||null,this.parentProperty=e.parentProperty||null,this.callback=e.callback||r||null,this.otherTypeCallback=e.otherTypeCallback||i||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},!1!==e.autostart){const r={path:a?e.path:t};a?"json"in e&&(r.json=e.json):r.json=n;const i=this.evaluate(r);if(!i||"object"!==typeof i)throw new C(i);return i}}T.prototype.evaluate=function(e,t,n,r){let i=this.parent,a=this.parentProperty,{flatten:o,wrap:s}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,n=n||this.callback,this.currOtherTypeCallback=r||this.otherTypeCallback,t=t||this.json,e=e||this.path,e&&"object"===typeof e&&!Array.isArray(e)){if(!e.path&&""!==e.path)throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(e,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:t}=e),o=Object.hasOwn(e,"flatten")?e.flatten:o,this.currResultType=Object.hasOwn(e,"resultType")?e.resultType:this.currResultType,this.currSandbox=Object.hasOwn(e,"sandbox")?e.sandbox:this.currSandbox,s=Object.hasOwn(e,"wrap")?e.wrap:s,this.currEval=Object.hasOwn(e,"eval")?e.eval:this.currEval,n=Object.hasOwn(e,"callback")?e.callback:n,this.currOtherTypeCallback=Object.hasOwn(e,"otherTypeCallback")?e.otherTypeCallback:this.currOtherTypeCallback,i=Object.hasOwn(e,"parent")?e.parent:i,a=Object.hasOwn(e,"parentProperty")?e.parentProperty:a,e=e.path}if(i=i||null,a=a||null,Array.isArray(e)&&(e=T.toPathString(e)),!e&&""!==e||!t)return;const l=T.toPathArray(e);"$"===l[0]&&l.length>1&&l.shift(),this._hasParentSelector=null;const c=this._trace(l,t,["$"],i,a,n).filter((function(e){return e&&!e.isParentSelector}));return c.length?s||1!==c.length||c[0].hasArrExpr?c.reduce(((e,t)=>{const n=this._getPreferredOutput(t);return o&&Array.isArray(n)?e=e.concat(n):e.push(n),e}),[]):this._getPreferredOutput(c[0]):s?[]:void 0},T.prototype._getPreferredOutput=function(e){const t=this.currResultType;switch(t){case"all":{const t=Array.isArray(e.path)?e.path:T.toPathArray(e.path);return e.pointer=T.toPointer(t),e.path="string"===typeof e.path?e.path:T.toPathString(e.path),e}case"value":case"parent":case"parentProperty":return e[t];case"path":return T.toPathString(e[t]);case"pointer":return T.toPointer(e.path);default:throw new TypeError("Unknown result type")}},T.prototype._handleCallback=function(e,t,n){if(t){const r=this._getPreferredOutput(e);e.path="string"===typeof e.path?e.path:T.toPathString(e.path),t(r,n,e)}},T.prototype._trace=function(e,t,n,r,i,a,o,s){let l;if(!e.length)return l={path:n,value:t,parent:r,parentProperty:i,hasArrExpr:o},this._handleCallback(l,a,"value"),l;const c=e[0],u=e.slice(1),d=[];function h(e){Array.isArray(e)?e.forEach((e=>{d.push(e)})):d.push(e)}if(("string"!==typeof c||s)&&t&&Object.hasOwn(t,c))h(this._trace(u,t[c],A(n,c),t,c,a,o));else if("*"===c)this._walk(t,(e=>{h(this._trace(u,t[e],A(n,e),t,e,a,!0,!0))}));else if(".."===c)h(this._trace(u,t,n,r,i,a,o)),this._walk(t,(r=>{"object"===typeof t[r]&&h(this._trace(e.slice(),t[r],A(n,r),t,r,a,!0))}));else{if("^"===c)return this._hasParentSelector=!0,{path:n.slice(0,-1),expr:u,isParentSelector:!0};if("~"===c)return l={path:A(n,c),value:i,parent:r,parentProperty:null},this._handleCallback(l,a,"property"),l;if("$"===c)h(this._trace(u,t,n,null,null,a,o));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(c))h(this._slice(c,u,t,n,r,i,a));else if(0===c.indexOf("?(")){if(!1===this.currEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");const e=c.replace(/^\?\((.*?)\)$/u,"$1"),o=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(e);o?this._walk(t,(e=>{const s=[o[2]],l=o[1]?t[e][o[1]]:t[e],c=this._trace(s,l,n,r,i,a,!0);c.length>0&&h(this._trace(u,t[e],A(n,e),t,e,a,!0))})):this._walk(t,(o=>{this._eval(e,t[o],o,n,r,i)&&h(this._trace(u,t[o],A(n,o),t,o,a,!0))}))}else if("("===c[0]){if(!1===this.currEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");h(this._trace(N(this._eval(c,t,n.at(-1),n.slice(0,-1),r,i),u),t,n,r,i,a,o))}else if("@"===c[0]){let e=!1;const o=c.slice(1,-2);switch(o){case"scalar":t&&["object","function"].includes(typeof t)||(e=!0);break;case"boolean":case"string":case"undefined":case"function":typeof t===o&&(e=!0);break;case"integer":!Number.isFinite(t)||t%1||(e=!0);break;case"number":Number.isFinite(t)&&(e=!0);break;case"nonFinite":"number"!==typeof t||Number.isFinite(t)||(e=!0);break;case"object":t&&typeof t===o&&(e=!0);break;case"array":Array.isArray(t)&&(e=!0);break;case"other":e=this.currOtherTypeCallback(t,n,r,i);break;case"null":null===t&&(e=!0);break;default:throw new TypeError("Unknown value type "+o)}if(e)return l={path:n,value:t,parent:r,parentProperty:i},this._handleCallback(l,a,"value"),l}else if("`"===c[0]&&t&&Object.hasOwn(t,c.slice(1))){const e=c.slice(1);h(this._trace(u,t[e],A(n,e),t,e,a,o,!0))}else if(c.includes(",")){const e=c.split(",");for(const o of e)h(this._trace(N(o,u),t,n,r,i,a,!0))}else!s&&t&&Object.hasOwn(t,c)&&h(this._trace(u,t[c],A(n,c),t,c,a,o,!0))}if(this._hasParentSelector)for(let p=0;p<d.length;p++){const e=d[p];if(e&&e.isParentSelector){const n=this._trace(e.expr,t,e.path,r,i,a,o);if(Array.isArray(n)){d[p]=n[0];const e=n.length;for(let t=1;t<e;t++)p++,d.splice(p,0,n[t])}else d[p]=n}}return d},T.prototype._walk=function(e,t){if(Array.isArray(e)){const n=e.length;for(let e=0;e<n;e++)t(e)}else e&&"object"===typeof e&&Object.keys(e).forEach((e=>{t(e)}))},T.prototype._slice=function(e,t,n,r,i,a,o){if(!Array.isArray(n))return;const s=n.length,l=e.split(":"),c=l[2]&&Number.parseInt(l[2])||1;let u=l[0]&&Number.parseInt(l[0])||0,d=l[1]&&Number.parseInt(l[1])||s;u=u<0?Math.max(0,u+s):Math.min(s,u),d=d<0?Math.max(0,d+s):Math.min(s,d);const h=[];for(let p=u;p<d;p+=c){const e=this._trace(N(p,t),n,r,i,a,o,!0);e.forEach((e=>{h.push(e)}))}return h},T.prototype._eval=function(e,t,n,r,i,a){this.currSandbox._$_parentProperty=a,this.currSandbox._$_parent=i,this.currSandbox._$_property=n,this.currSandbox._$_root=this.json,this.currSandbox._$_v=t;const o=e.includes("@path");o&&(this.currSandbox._$_path=T.toPathString(r.concat([n])));const s=this.currEval+"Script:"+e;if(!T.cache[s]){let t=e.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(o&&(t=t.replaceAll("@path","_$_path")),"safe"===this.currEval||!0===this.currEval||void 0===this.currEval)T.cache[s]=new this.safeVm.Script(t);else if("native"===this.currEval)T.cache[s]=new this.vm.Script(t);else if("function"===typeof this.currEval&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){const e=this.currEval;T.cache[s]=new e(t)}else{if("function"!==typeof this.currEval)throw new TypeError(`Unknown "eval" property "${this.currEval}"`);T.cache[s]={runInNewContext:e=>this.currEval(t,e)}}}try{return T.cache[s].runInNewContext(this.currSandbox)}catch(l){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+l.message+": "+e)}},T.cache={},T.toPathString=function(e){const t=e,n=t.length;let r="$";for(let i=1;i<n;i++)/^(~|\^|@.*?\(\))$/u.test(t[i])||(r+=/^[0-9*]+$/u.test(t[i])?"["+t[i]+"]":"['"+t[i]+"']");return r},T.toPointer=function(e){const t=e,n=t.length;let r="";for(let i=1;i<n;i++)/^(~|\^|@.*?\(\))$/u.test(t[i])||(r+="/"+t[i].toString().replaceAll("~","~0").replaceAll("/","~1"));return r},T.toPathArray=function(e){const{cache:t}=T;if(t[e])return t[e].concat();const n=[],r=e.replaceAll(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/gu,";$&;").replaceAll(/[['](\??\(.*?\))[\]'](?!.\])/gu,(function(e,t){return"[#"+(n.push(t)-1)+"]"})).replaceAll(/\[['"]([^'\]]*)['"]\]/gu,(function(e,t){return"['"+t.replaceAll(".","%@%").replaceAll("~","%%@@%%")+"']"})).replaceAll("~",";~;").replaceAll(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu,";").replaceAll("%@%",".").replaceAll("%%@@%%","~").replaceAll(/(?:;)?(\^+)(?:;)?/gu,(function(e,t){return";"+t.split("").join(";")+";"})).replaceAll(/;;;|;;/gu,";..;").replaceAll(/;$|'?\]|'$/gu,""),i=r.split(";").map((function(e){const t=e.match(/#(\d+)/u);return t&&t[1]?n[t[1]]:e}));return t[e]=i,t[e].concat()},T.prototype.safeVm={Script:x};const R=function(e,t,n){const r=e.length;for(let i=0;i<r;i++){const r=e[i];n(r)&&t.push(e.splice(i--,1)[0])}};class O{constructor(e){this.code=e}runInNewContext(e){let t=this.code;const n=Object.keys(e),r=[];R(n,r,(t=>"function"===typeof e[t]));const i=n.map((t=>e[t])),a=r.reduce(((t,n)=>{let r=e[n].toString();return/function/u.test(r)||(r="function "+r),"var "+n+"="+r+";"+t}),"");t=a+t,/(['"])use strict\1/u.test(t)||n.includes("arguments")||(t="var arguments = undefined;"+t),t=t.replace(/;\s*$/u,"");const o=t.lastIndexOf(";"),s=o>-1?t.slice(0,o+1)+" return "+t.slice(o+1):" return "+t;return new Function(...n,s)(...i)}}T.prototype.vm={Script:O};var I=n(2011),L=n.n(I),D=n(41580),P=n.n(D),M=n(53142),B=n.n(M),F=n(46343),$=n.n(F),U=n(88088),j=n.n(U),V=(n(48875),n(92043)),K=n(68851),H=n(4364);function G(e,t,n){let r=e;if(!r)return;const i=(0,V.jg)(t);for(let a=0;a<i.length;a++){const e=i[a];a===i.length-1?r[e]=n:r[e]||(r[e]={}),r=r[e]}return e}function z(e,t){const n=t.split(".");let r=[e];return n.forEach((e=>{r=r.map((t=>Array.isArray(t)?t.map((t=>t[e])).flat():t?t[e]:null)).flat()})),r.filter((e=>null!==e))}function q(e,t){if(!t)throw new Error("Cannot translate an empty input. The t function requires a string.");if(t.startsWith("$"))try{return T({path:t,json:e,wrap:!1})}catch(r){return H.log("JSON Path error",r,t,e),"(JSON Path err)"}if(!t.includes("."))return e?.[t];const n=(0,V.jg)(t);for(let i=0;i<n.length;i++){if(!e)return;e=e[n[i]]}return e}function X(e,t){const n=(0,V.jg)(t);if(1===n.length)e[t]=void 0,delete e[t];else{const t=n.pop(),r=q(e,(0,V.ZM)(n));r&&(r[t]=void 0,delete r[t])}return e}function W(e,t){const n=t.split("."),r=n.pop();delete n.reduce(((e,t)=>e[t]||{}),e)[r]}function Y(e){return a()(e)}function Q(e){return!e||!Object.keys(e).length}function J(e){return Object.keys(e).map((t=>{const n=e[t];Array.isArray(n)?(e[t]=n.map((e=>{if(null!==e&&void 0!==e)return J(e)})),0===e[t].length&&delete e[t]):"undefined"===typeof n||null===n?delete e[t]:P()(n)&&(Q(n)&&delete e[t],e[t]=J(n))})),e}function Z(e){const t=Object.keys(e).map((t=>{const n=e[t];return Array.isArray(n)?`"${t}"`:P()(n)?(Z(n)||[]).map((e=>`"${t}".${e}`)):`"${t}"`}));return c()(s()(t))}function ee(e,t){e=e||{},t=t||{};const n=L()(t,((t,n,r)=>{const i=e[r];$()(n,i)||(Array.isArray(n)||Array.isArray(i)?t[r]=n:P()(n)&&P()(e[r])?t[r]=ee(i,n):t[r]=n)})),r=Z(e),i=Z(t),a=j()(r,i);for(const o of a)G(n,o,null);return n}function te(e,t){const n=Object.keys(e||{}),r=Object.keys(t||{});if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++){const r=e[n[i]],a=t[n[i]];if(r!==a)return!1}return!0}function ne(e,t,n=[]){let r={};if($()(e,t))return r;for(const i in e){const a=(0,V.ZM)([...n,i]);i in t?P()(e[i])&&P()(t[i])||B()(e[i])&&B()(t[i])?r={...r,...ne(e[i],t[i],[...n,i])}:$()(e[i],t[i])||(r[a]={op:"change",from:e[i],value:t[i]}):r[a]={op:"remove",path:a}}for(const i in t)if(!(i in e)){const e=(0,V.ZM)([...n,i]);r[e]={op:"add",value:t[i]}}return r}function re(e,t){let n=Object.keys(e).sort();const r=[],i={};for(const o of n){let n=!0;const s=e[o],l=t[o];for(const e of a(o))if(i[e]){n=!1;break}if(i[o]=!0,n&&l)switch(`${s.op}-${l.op}`){case"add-add":case"add-change":case"change-add":case"change-change":n=$()(s.value,l.value);break;case"add-remove":case"change-remove":case"remove-add":case"remove-change":n=!1;break;case"remove-remove":default:n=!0;break}n||(0,K.PG)(r,o)}n=Object.keys(t).sort();for(const o of n){let e=!0;for(const t of a(o))if(i[t]){e=!1;break}i[o]=!0,e||(0,K.PG)(r,o)}return r.sort();function a(e){const t=[],n=(0,V.jg)(e);n.pop();while(n.length){const e=(0,V.ZM)(n);t.push(e),n.pop()}return t}}function ie(e,t){let n;for(const r in t)if(n=t[r],"add"===n.op||"change"===n.op)G(e,r,n.value);else{if("remove"!==n.op)throw new Error(`Unknown operation:${n.op}`);X(e,r)}return e}function ae(e,t){if(e)for(const n of t)delete e[n]}function oe(e,t=new WeakSet){if(null===e||"object"!==typeof e)return e;if(t.has(e))return e;if(t.add(e),Array.isArray(e))return e.map((e=>oe(e,t)));{const n=(0,r.toRaw)(e),i={};for(const e in n)"function"===typeof n[e]||"symbol"===typeof n[e]?i[e]=null:i[e]=oe(n[e],t);return i}}},35881:function(e,t,n){"use strict";n.d(t,{A0:function(){return p},ZA:function(){return s},_Z:function(){return h},cX:function(){return a},nN:function(){return u},nr:function(){return m},yC:function(){return d}});const r="undefined"===typeof window?"server":window.navigator.platform.toLowerCase(),i="undefined"===typeof window?"server":window.navigator.userAgent,a=(r.includes("linux")||r.includes("unix"),r.includes("mac")),o=(r.includes("win"),a?"metaKey":"ctrlKey"),s=a?"Command":"Control",l=o,c="shiftKey";function u(e){return!!e[o]}function d(e){return!!e[l]}function h(e){return!!e[c]}function p(e){return e.ctrlKey&&2===e.button}i.includes("Gecko/");const f=i.includes("Chrome/"),m=(!f&&i.includes("AppleWebKit/"),!f&&i.includes("Safari/"));/Android|webOS|iPhone|iPad|iPod|IEMobile/i.test(i)},14817:function(e,t,n){"use strict";n.d(t,{Q7:function(){return o},Q8:function(){return c},Tb:function(){return p}});const r="left",i="right",a="top",o="center",s="center",l="bottom",c="auto";function u(e){const t=e.getBoundingClientRect(),n=e.offsetWidth,r=e.offsetHeight;return{top:t.top,right:t.left+n,bottom:t.top+r,left:t.left,width:n,height:r}}function d(e){return{top:e.clientY,left:e.clientX,bottom:e.clientY,right:e.clientX,width:0,height:0}}function h(){const e=window.innerWidth,t=window.innerHeight,n=window.pageYOffset,r=window.pageXOffset;return{top:n,right:r+e,bottom:n+t,left:r,width:e,height:t}}function p(e,t,n,p){let{positionX:f=c,positionY:m=c}=n||{};const{fudgeX:g=0,fudgeY:v=0,overlapX:b=!0,overlapY:y=!1}=n||{},w=h();let E;E=t instanceof Event?d(t):u(t);let _={};e&&(_=u(e)),p&&(_={top:0,right:147,bottom:163,left:0,width:147,height:80});const S={position:"absolute"},k={left:b?E.left:E.right,center:(E.left+E.right)/2,right:b?E.right:E.left,top:y?E.bottom:E.top,middle:(E.top+E.bottom)/2,bottom:y?E.top:E.bottom},x={left:w.right-_.width-k.left,center:Math.min(w.right-_.width/2-k.center,k.center-_.width/2-w.left),right:k.right-_.width-w.left,top:k.bottom-_.height-w.top,middle:Math.min(k.middle-_.height/2-w.top,w.bottom-_.height/2-k.middle),bottom:w.bottom-_.height-k.top};switch(f===o&&x.center<0&&(f=c),f===c?f=x.left<0||1.5*x.right>x.left?i:r:m===r&&x.left<0?f=i:m===i&&x.right<0&&(f=r),f){case r:S.left=k.left-g+"px";break;case o:S.left=(k.left+k.right)/2-_.width/2-g+"px";break;case i:S.left=k.right+g-_.width+"px";break}switch(m===s&&x.middle<0&&(m=c),m===c?m=x.top<0||1.5*x.bottom>x.top?l:a:m===a&&x.top<0?m=l:m===l&&x.bottom<0&&(m=a),m){case a:S.top=k.top+v-_.height+"px";break;case o:S.top=(k.top+k.bottom)/2+v-_.height+"px";break;case l:S.top=k.bottom-v+"px";break}return S}},88339:function(e,t,n){"use strict";function r(){this.queue=[],this.offset=0,this.getLength=function(){return this.queue.length-this.offset},this.isEmpty=function(){return 0===this.queue.length},this.enqueue=function(e){this.queue.push(e)},this.dequeue=function(){if(0===this.queue.length)return;const e=this.queue[this.offset];return 2*++this.offset>=this.queue.length&&(this.queue=this.queue.slice(this.offset),this.offset=0),e},this.peek=function(){return this.queue.length>0?this.queue[this.offset]:void 0},this.clear=function(){this.offset=0,this.queue.length=0}}n.d(t,{kR:function(){return o},$t:function(){return s},yX:function(){return c},hF:function(){return l},DD:function(){return u}});var i=n(4364);async function a(e,t){const n=Object.keys(e),r=Object.values(e),i=await Promise[t](r),a={};for(let o=0;o<n.length;o++)a[n[o]]=i[o];return a}function o(e){return a(e,"all")}function s(e){return a(e,"allSettled")}function l(e,t,n,a=!1){return a&&i.log("eachLimit of",e.length," items",t,"at a time"),new Promise(((o,s)=>{const l=new r;let c=0,u=!1;const d=[];for(let t=0;t<e.length;t++)l.enqueue({item:e[t],idx:t});function h(){if(a&&i.log(`process, queue=${l.getLength()}, pending=${c}, failed=${u}`),!u){if(l.isEmpty()&&0===c)return o(d);while(!l.isEmpty()&&c<t&&!u){const{item:e,idx:t}=l.dequeue();a&&i.log("Running",e),c++,n(e,t).then((n=>{a&&i.log("Done",e),d[t]=n,c--,h()})).catch((t=>{a&&i.log("Failed",t,e),u=!0,s(t)}))}}}h()}))}function c(e){const t={};return t.promise=new Promise(((e,n)=>{t.resolve=e,t.reject=n}),e),t}function u(e,t,n,r){e.then((e=>{t[n]=e})).catch((e=>{i.warn("Failed to: ",r,e)}))}},37327:function(e,t,n){"use strict";n.d(t,{P:function(){return r}});n(4364);function r(e){let t=e.params?.product;if(!t){const n=e.name?.match(/^c-cluster-([^-]+)/);n&&(t=n[1])}return t||(t=i(e,"product")),t}function i(e,t){if(e?.meta){const n=Array.isArray(e.meta)?e.meta:[e.meta];for(let e=0;e<n.length;e++)if(n[e][t])return n[e][t]}}},20162:function(e,t,n){"use strict";function r(e,t){if(!this.$attrs.multiple)return;const n=e=>this.optionKey?this.get(e,this.optionKey):this.getOptionLabel(e),r=n(e),i=this.value||[],a=i.findIndex((e=>n(e)===r));a<0||(this.value.splice(a,1),this.$emit("update:value",this.value),t.preventDefault(),t.stopPropagation(),this.closeOnSelect&&this.$refs["select-input"].closeSearchOptions())}function i(e,t,n,r){const i=t.$parent.$el,a=i.getBoundingClientRect(),o=r||"bottom-start",s=document.body.offsetHeight,l=s-window.scrollY-a.y-1;let c;if(!o.includes("top")){c=a.y+a.height-1;const t=c+e.offsetHeight;t>window.innerHeight?c=void 0:c+=window.scrollY}c?(e.style.top=`${c}px`,e.classList.remove("vs__dropdown-up"),i.classList.remove("vs__dropdown-up")):(e.style.bottom=`${l}px`,e.classList.add("vs__dropdown-up"),i.classList.add("vs__dropdown-up")),e.style.left=`${a.x}px`,e.style.width="min-content",e.style.minWidth=`${a.width}px`}n.d(t,{s:function(){return i},t:function(){return r}})},38823:function(e,t,n){"use strict";n.d(t,{C6:function(){return c},CR:function(){return u},_R:function(){return l},cK:function(){return d},wC:function(){return h}});var r=n(68851),i=n(76978);const a={},o={"=":"In","==":"In","!=":"NotIn","<":"Lt",">":"Gt"};function s(e){if(e=e.replace(/\+/g," "),a[e])return a[e];let t;const n=[],r=[];if(t=e.match(/\([^)]+\)/g),t&&t.length)for(const a of t){const t=a.replace(/^\s*\(\s*/,"").replace(/\s*\)\s*$/,"").split(/\s*,\s*/);r.push(t),e=e.replace(a,` @${r.length-1} `)}const i=e.split(/\s*,\s*/).filter((e=>!!e));for(let a of i)a=a.trim(),t=a.match(/^(.*?)\s+((not\s*)?in)\s+@(\d+)*$/i),t?n.push({key:t[1].trim(),operator:"notin"===t[2].toLowerCase().replace(/\s/g,"")?"NotIn":"In",values:r[t[4].trim()]}):(t=a.match(/^([^!=]*)\s*(\!=|=|==|>|<)\s*([^!=]*)$/),t?n.push({key:t[1].trim(),operator:o[t[2]],values:[t[3].trim()]}):a.startsWith("!")?n.push({key:a.substr(1).trim(),operator:"DoesNotExist"}):n.push({key:a.trim(),operator:"Exists"}));return a[e]=n,n}function l(e){return c(e.matchLabels||{},e.matchExpressions||[])}function c(e,t){const n=Object.keys(e||{}),i=t||[];for(const a of n){const t=e[a],n=(0,r.jq)(i,{key:a,operator:"In"});n?(0,r.PG)(n.values,t):i.push({key:a,operator:"In",values:(0,r.cy)(t)?t:[t]})}return i}function u(e){const t={},n=[],i=[],a={};for(const o of e)"In"===o.operator&&(a[o.key]?(0,r.PG)(i,o.key):a[o.key]=!0);for(const r of e)"In"!==r.operator||1!==r.values.length||i.includes(r.key)?n.push(Object.assign({},r)):t[r.key]=r.values[0];return{matchLabels:t,matchExpressions:n}}function d(e,t,n="metadata.labels"){let a=[];if("string"===typeof t)a=s(t);else if((0,r.cy)(t))a=t;else{if("object"!==typeof t||!t)return!1;a=c(t)}const o=(0,i.Jt)(e,n)||{};for(const r of a){const e=o[r.key],t=parseInt(e,10),n="undefined"!==typeof o[r.key];switch(r.operator){case"Exists":if(!n)return!1;break;case"DoesNotExist":if(n)return!1;break;case"In":if(!r.values.length||!r.values.includes(e))return!1;break;case"NotIn":if(r.values.includes(e))return!1;break;case"Lt":if(isNaN(t)||t>=Math.min.apply(null,r.values))return!1;break;case"Gt":if(isNaN(t)||t<=Math.max.apply(null,r.values))return!1;break}}return!0}function h(e,t,n){return e.filter((e=>d(e,t,n)))}},74302:function(e,t,n){"use strict";n.d(t,{QP:function(){return s},RY:function(){return m},UD:function(){return u},Ul:function(){return h}});var r=n(76978),i=n(92043);const a={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},{toString:o}=Object.prototype;function s(e){if(null===e)return"null";if(void 0===e)return"undefined";let t=a[o.call(e)]||"object";return"object"===t&&(e instanceof Error?t="error":e instanceof Date&&(t="date")),t}function l(e,t){const n=e-t;return(n>0)-(n<0)}const c={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10};function u(e,t){const n=s(e),r=s(t),i=l(c[n],c[r]);if(i)return i;switch(n){case"boolean":case"number":return l(e,t);case"string":return l(e.localeCompare(t),0);case"array":{const n=e.length,r=t.length,i=Math.min(n,r);for(let a=0;a<i;a++){const n=u(e[a],t[a]);if(0!==n)return n}return l(n,r)}case"date":return l(e.getTime(),t.getTime())}return 0}function d(e){const t=e.split(/:/);return 2===t.length&&"desc"===t[1]?{field:t[0],reverse:!0}:{field:e,reverse:!1}}function h(e,t,n){return Array.isArray(t)||(t=[t]),(e||[]).slice().sort(((e,i)=>{for(let a=0;a<t.length;a++){const o=d(t[a]),s=(0,r.Jt)(e,o.field),l=(0,r.Jt)(i,o.field);let c=u(s,l);if(c)return n&&(c*=-1),o.reverse&&(c*=-1),c}return 0}))}const p=/([^\d]+)/,f=/^[0-9]+$/;function m(e){return"string"!==typeof e?e:e.split(p).map((e=>e.match(f)?(0,i.DZ)(e,10,"0"):e)).join("").trim()}},92043:function(e,t,n){"use strict";function r(e){return _(e||"").split("-").map((e=>i(e))).join(" ")}function i(e){return e=e||"",e.substr(0,1).toUpperCase()+e.substr(1)}function a(e,t,n=" ",r=!1){if(e=`${e}`,e.length>=t)return e;const i=t-e.length+1,a=new Array(i).join(n).substr(0,i);return r?e+a:a+e}n.d(t,{$f:function(){return l},DZ:function(){return a},HV:function(){return x},Kn:function(){return N},LQ:function(){return p},Nr:function(){return v},OF:function(){return A},TF:function(){return i},XC:function(){return S},ZD:function(){return s},ZM:function(){return R},_R:function(){return r},_k:function(){return _},eH:function(){return I},i6:function(){return k},jg:function(){return T},l9:function(){return m},pZ:function(){return b},qO:function(){return O},td:function(){return g},vx:function(){return f}});const o={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function s(e){return String(e).replace(/[&<>"']/g,(e=>o[e]))}function l(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function c(e){e=Math.max(0,e||1);const t=[];let n;if(window.crypto&&window.crypto.getRandomValues){const r=new Uint32Array(e);for(window.crypto.getRandomValues(r),n=0;n<r.length;n++)t[n]=r[n]}else for(n=0;n<e;n++)t[n]=4294967296*Math.random();return 1===e?t[0]:t}const u="abcdefghijklmnopqrstuvwxyz",d="0123456789",h="!@#$%^&*()_+-=[]{};:,./<>?|",p={NUMERIC:d,NO_VOWELS:"bcdfghjklmnpqrstvwxz2456789",ALPHA:u+u.toUpperCase(),ALPHA_NUM:u+u.toUpperCase()+d,ALPHA_LOWER:u,ALPHA_UPPER:u.toUpperCase(),HEX:`${d}ABCDEF`,PASSWORD:u+u.toUpperCase()+d+u+u.toUpperCase()+d+h};function f(e=16,t=p.ALPHA_NUM){return t&&t.length?c(e).map((e=>t[e%t.length])).join(""):null}function m(e,t=2){return e<1&&t>=2?Math.round(100*e)/100+"%":e<10&&t>=1?Math.round(10*e)/10+"%":`${Math.round(e)}%`}function g(e){return e.match(/.*[^aeiou]y$/i)?`${e.substr(0,e.length-1)}ies`:e.endsWith("ics")?e:e.endsWith("s")?`${e}es`:`${e}s`}function v(e,t,n){return e.reduce(((r,i,a)=>(a>=5||(r+=`<b>${s(i)}</b>`,a===e.length-1?r+=t:r+=a===e.length-2?n("generic.and"):n("generic.comma")),r)),"")}function b(e,t=2,n=" ",r=null){e="string"===typeof e?e.split(/\n/):e||[];const i=new Array(t+1).join(n),a=e.map((e=>{let t="",n=e;if(r){const i=e.match(r);i&&(t=i[i.length-1],n=e.substr(i[0].length))}return`${t}${i}${n}`})),o=a.join("\n");return o}const y=/([a-z\d])([A-Z])/g;function w(e){return e.replace(y,"$1_$2").toLowerCase()}const E=/[ _]/g;function _(e){return w(e).replace(E,"-")}function S(e){return e=e||"",!e.match(/[^\r\n\t\x20-\x7F]/)}function k(e,t){return"float"===t?e=parseFloat(e)||null:"int"===t?(e=parseInt(e,10),isNaN(e)&&(e=null)):"boolean"===t&&("true"===e.toLowerCase()?e=!0:"false"===e.toLowerCase()&&(e=!1)),e}function x(e,t=[]){return t.some((t=>{const n=e||"",r=A(t);return n.match(r)}))}function A(e,t=!0){return"string"===typeof e?t?new RegExp(`^${l(e)}$`,"i"):new RegExp(`${l(e)}`,"i"):e}function N(e){return s(e||"").replace(/(\r\n|\r|\n)/g,"<br/>\n")}const C=/[^."']+|"([^"]*)"|'([^']*)'/g;function T(e){return e.includes('"')||e.includes("'")?e.match(C).map((e=>e.replace(/['"]/g,""))):e.split(".")}function R(e){let t="";for(const n of e)n.includes(".")?t+=`."${n}"`:t+=`.${n}`;return t.startsWith(".")&&(t=t.substr(1)),t}function O(e){return(e||"").replace(/^(index\.)?docker.io\/(library\/)?/,"").replace(/:latest$/,"").replace(/^(.*@sha256:)([0-9a-f]{8})[0-9a-f]+$/i,"$1$2…")}function I(e){const t=/^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;return t.test(e)}},34255:function(e,t,n){"use strict";n.d(t,{Fp:function(){return l},qx:function(){return s}});var r=n(23464),i=n.n(r);const a=[60,60,24],o=["sec","min","hour","day"];function s(e,t,n){const r=i()();t=t||r;const s=e.diff(t,"seconds");let l=Math.abs(s),c=1,u="?",d=0;while(l>=a[d]&&d<a.length)l/=a[d],c*=Math.floor(a[d]/10),d++;u=l<5?Math.floor(10*l)/10:Math.floor(l);const h={diff:s,absDiff:l,label:u,unitsKey:`unit.${o[d]}`,units:o[d],next:c};return n&&(h.string=`${h.label} ${n(h.unitsKey,{count:h.label})}`),h}function l(e,t){return Math.round(Math.abs(Date.parse(t)-Date.parse(e))/1e3)}},95799:function(e,t,n){"use strict";n.d(t,{$W:function(){return o},Mo:function(){return a},QN:function(){return r},S0:function(){return d},ao:function(){return s},kq:function(){return i}});const r=["","K","M","G","T","P","E","Z","Y"],i=["","m","u","n","p","f","a","z","y"];function a(e,{increment:t=1e3,addSuffix:n=!0,addSuffixSpace:s=!0,suffix:l="",firstSuffix:c=null,startingExponent:u=0,minExponent:d=0,maxExponent:h=99,maxPrecision:p=2,canRoundToZero:f=!0}={}){let m=e,g=u;const v=h>=0;if(v)while(m>=t&&g+1<r.length&&g<h||g<d)m/=t,g++;else while(m<t&&g+1<i.length&&g<-1*h||g<-1*d)m*=t,g++;let b="";if(b=m<10&&p>=1?""+Math.round(m*10**p)/10**p:`${Math.round(m)}`,"0"===b&&!f&&0!==e){const r=o(e,t);return a(e,{increment:t,addSuffix:n,suffix:l,firstSuffix:c,startingExponent:u,minExponent:r,maxExponent:r,maxPrecision:p,canRoundToZero:!0})}return n&&(s&&(b+=" "),b+=0===g&&null!==c?`${c}`:`${v?r[g]:i[g]}${l}`||""),b}function o(e,t=1e3){let n=0;while(e>=t)e/=t,n++;return n}function s(e,t){t=t||{};let n=t.increment;const a=!1!==t.allowFractional;if(!e||"string"!==typeof e||!e.length)return NaN;e=e.replace(/,/g,"");let[,o,s,l]=e.match(/^([0-9.-]+)\s*([^0-9.-]?)([^0-9.-]?)/);const c=parseFloat(o);if(!s)return c;181===s.charCodeAt(0)&&(s="u");const u=i.includes(s),d=r.includes(s.toUpperCase());if(n||(n=(d||u)&&"i"===l?1024:1e3),u&&a){const e=i.indexOf(s);return c/n**e}if(d){const e=r.indexOf(s.toUpperCase());return c*n**e}return c}const l={memory:{format:{addSuffix:!0,firstSuffix:"B",increment:1024,maxExponent:99,maxPrecision:2,minExponent:0,startingExponent:0,suffix:"iB"}}};function c(e){const t=o(e,l.memory.format.increment);return{...l.memory.format,maxExponent:t,minExponent:t}}function u(e){const t=o(e,l.memory.format.increment);return`${r[t]}${l.memory.format.suffix}`}function d(e,t){const n=s((e||"0").toString()),r=s((t||"0").toString()),i=c(n),o=a(n,i),l=a(r,i);return{total:Number.parseFloat(o),useful:Number.parseFloat(l),units:u(n)}}},70500:function(e,t,n){"use strict";n.d(t,{M:function(){return o},u:function(){return a}});var r=n(37021),i=n.n(r);function a(e="",t,n){try{o.validation(e)}catch(r){n.push(t["i18n/t"](o.message))}}const o={validation:e=>i().toString(e,{verbose:!0}),message:"validation.invalidCron"}},96047:function(e,t,n){"use strict";n.d(t,{HK:function(){return u},p6:function(){return g},iK:function(){return h},um:function(){return f},OH:function(){return m},cO:function(){return p},xR:function(){return d}});var r=n(3514),i=n.n(r),a=n(82438),o=n.n(a),s=n(76978),l=n(92043);function c(e,t,n,r,i=[]){r=r||{};const{invalidChars:a,forHostname:o=!1,errorKey:s=(o?"hostname":"label"),maxLength:l=63,minLength:c=1,validChars:u="A-Za-z0-9-"}=r;h(e,{validChars:u,invalidChars:a},t,n,i),"-"===e.slice(0,1)&&i.push(n["i18n/t"](`validation.dns.${s}.startHyphen`,{key:t})),"-"===e.slice(-1)&&i.push(n["i18n/t"](`validation.dns.${s}.endHyphen`,{key:t}));const d=c,p=l;return e.length<d?i.push(n["i18n/t"](`validation.dns.${s}.emptyLabel`,{key:t,min:d})):e.length>p&&i.push(n["i18n/t"](`validation.dns.${s}.tooLongLabel`,{key:t,max:p})),i}function u(e,t,n){const r=`model.${e}.${t}`,i=`${r}.label`;return n["i18n/exists"](`${r}.label`)?n["i18n/t"](i):n["i18n/exists"](r)?n["i18n/t"](r):t.match(/.Id$/)?(0,l._R)(t.replace(/Id$/,"")):(0,l._R)(t)}function d(e,t,n,r,a=[]){const{nullable:o,required:l,type:c="",minLength:u,maxLength:d,min:h,max:p}=t,f=e?(0,s.Jt)(e,"length"):0;if(!o&&l&&("object"===typeof e&&i()(e)||!e&&0!==e))return a.push(r["i18n/t"]("validation.required",{key:n})),a;if(null===e)return a;const m=0===c.indexOf("array[")?"arrayLength":"stringLength";let g=u,v=d;return g&&v?(f<g||f>v)&&(g===v?a.push(r["i18n/t"](`validation.${m}.exactly`,{key:n,count:g})):a.push(r["i18n/t"](`validation.${m}.between`,{key:n,min:g,max:v}))):g&&f<g?a.push(r["i18n/t"](`validation.${m}.min`,{key:n,count:g})):v&&f>v&&a.push(r["i18n/t"](`validation.${m}.max`,{key:n,count:v})),g=h,v=p,null!==e&&g&&v?(e<g||e>v)&&(g===v?a.push(r["i18n/t"]("validation.number.exactly",{key:n,val:v})):a.push(r["i18n/t"]("validation.number.between",{key:n,min:g,max:v}))):g&&e<g?a.push(r["i18n/t"]("validation.number.min",{key:n,val:g})):v&&e>v&&a.push(r["i18n/t"]("validation.number.max",{key:n,val:v})),a}function h(e,t,n,r,i=[]){const{validChars:a,invalidChars:s}=t,l=[];if(a&&l.push(`[^${t.validChars}]`),s&&l.push(`[${t.invalidChars}]`),l.length){const t=new RegExp(`(${l.join("|")})`,"g");let a=e.match(t);a&&(a=o()(a).map((e=>" "===e?"[space]":e)),i.push(r["i18n/t"]("validation.chars",{key:n,count:a.length,chars:a.join(" ")})))}return i}function p(e,t,n,r,i=[]){r=r||{};const{max:a=253,restricted:o=!1}=r;"."===e.slice(0,1)&&i.push(n["i18n/t"]("validation.dns.hostname.startDot",{key:t})),o&&e.length>1&&"."===e.slice(-1)&&i.push(n["i18n/t"]("validation.dns.hostname.endDot",{key:t})),0===e.length&&i.push(n["i18n/t"]("validation.dns.hostname.empty",{key:t})),e.length>a&&i.push(n["i18n/t"]("validation.dns.hostname.tooLong",{key:t,max:a}));const s=e.split(/\./);let l;for(let c=0;c<s.length;c++)l=s[c],0===c&&""===l||c===s.length-1&&""===l||f(l,t,n,{forHostname:!0},i);return i}function f(e,t,n,r,i=[]){r=r||{};const{forHostname:a=!1,errorKey:o=(a?"hostname":"label"),ianaServiceName:s=!1,restricted:l=!1}=r;return c(e,t,n,r,i),l&&e.slice(0,1).match(/[0-9]/)&&i.push(n["i18n/t"](`validation.dns.${o}.startNumber`,{key:t})),("--"===e.substr(2,2)&&"xn"!==e.substr(0,2)||s&&e.includes("--"))&&i.push(n["i18n/t"]("validation.dns.doubleHyphen",{key:t})),i}function m(e,t,n,r,i,a=[]){switch(t){case"dnsLabel":f(e,n,r,{restricted:!1},a);break;case"dnsLabelRestricted":f(e,n,r,{restricted:!0},a);break;case"hostname":p(e,n,r,{restricted:!1},a);break;default:break}return a}function g(e,t,n,r,i=[]){const{required:a}=t;!a||e||!1===e?"boolean"!==typeof e&&e&&i.push(r["i18n/t"]("validation.boolean",{key:n})):i.push(r["i18n/t"]("validation.required",{key:n}))}},68094:function(e,t,n){"use strict";n.d(t,{L6:function(){return a},M8:function(){return s},Q6:function(){return o},fB:function(){return l}});var r=n(24138),i=n.n(r);const a=e=>"server-url"===e,o=e=>e.toLowerCase().startsWith("https://"),s=e=>/^(?:https?:\/\/)?(?:localhost|127\.0\.0\.1)/i.test(e),l=e=>i()(e)&&e?.toLowerCase().endsWith("/")},83288:function(e,t,n){"use strict";n.d(t,{UD:function(){return l},V1:function(){return d},Xt:function(){return s}});var r=n(74302),i=n(2722),a=n.n(i);n(35664),n(91462),n(9262);function o(e){e=`${e}`,"v"===e.substr(0,1).toLowerCase()&&(e=e.substr(1));const t=e.split(/[.+-]/);return t}function s(e){return o(e).map((e=>(0,r.RY)(e))).join(".")}function l(e,t){if(!e)return 1;if(!t)return-1;const n=o(e),r=o(t),i=Math.min(n.length,r.length);for(let a=0;a<i;a++){const e=u(n[a],r[a]);if(0!==e)return e}return n.length-r.length}function c(e){return`${e}`.match(/^([0-9]+\.)?[0-9]*$/)}function u(e,t){if(e=`${e}`.toLowerCase(),t=`${t}`.toLowerCase(),c(e)&&c(t)){const n=parseInt(e,10),r=parseInt(t,10);if(!isNaN(n)&&!isNaN(r))return n-r}return e.localeCompare(t)}function d(e=""){return a().valid(e)||(e=a().clean(e,{loose:!0})),!!a().prerelease(e)}},66242:function(e,t,n){"use strict";n.d(t,{d:function(){return r}});const r={CONSOLE_URL:"/host/#remote-console",RANCHER_INTEGRATION_URL:"/rancher/rancher-integration",STORAGE_NETWORK_EXAMPLE:"/advanced/storagenetwork#configuration-example",KSMTUNED_MODE:"/host/#ksmtuned-mode",UPGRADE_URL:"/upgrade/index"}},62261:function(e,t,n){"use strict";n.r(t),n.d(t,{IP_POOL_HEADERS:function(){return h},PRODUCT_NAME:function(){return d},init:function(){return p}});var r=n(35664),i=n(32766),a=n(68774),o=n(86565),s=n(1371);const l=i.rk.VM_VERSION,c="Monitoring & Logging::Monitoring",u="Monitoring & Logging::Logging",d="harvester",h=[a.c4,a.o_,{name:"subnet",labelKey:"harvester.ipPool.subnet.label",value:"subnetDisplay"},{name:"availableIP",labelKey:"harvester.ipPool.availableIP.label",value:"status.available"},a.K];function p(e,t){const{product:p,basicType:f,headers:m,configureType:g,virtualType:v,weightGroup:b,weightType:y}=e.DSL(t,d),w={NODE_ENV:"production",BASE_URL:"/"}.rancherEnv===d;if(w){const e={name:`${d}-c-cluster-resource`,params:{product:d,resource:i.rk.DASHBOARD}};t.dispatch("setIsSingleProduct",{productName:d,logo:n(53938),productNameKey:"harvester.productLabel",getVersionInfo:e=>e.getters[`${d}/byId`]?.(i.rk.SETTING,"server-version")?.value||"unknown",afterLoginRoute:e,logoRoute:e,supportCustomLogo:!0})}p({inStore:"harvester",removable:!1,showNamespaceFilter:!0,hideKubeShell:!0,hideKubeConfig:!0,showClusterSwitcher:!0,hideCopyConfig:!0,hideSystemResources:!0,customNamespaceFilter:!0,typeStoreMap:{[r.Mc.PROJECT]:"management",[r.Mc.CLUSTER_ROLE_TEMPLATE_BINDING]:"management",[r.Mc.PROJECT_ROLE_TEMPLATE_BINDING]:"management"},supportRoute:{name:`${d}-c-cluster-support`},to:{name:`${d}-c-cluster-resource`,params:{product:d,resource:i.rk.DASHBOARD}},hideNamespaceLocation:!0}),f([i.rk.DASHBOARD]),v({labelKey:"harvester.dashboard.label",group:"Root",name:i.rk.DASHBOARD,weight:500,route:{name:`${d}-c-cluster-resource`,params:{product:d,resource:i.rk.DASHBOARD}}}),g(i.rk.DASHBOARD,{showListMasthead:!1}),g(i.rk.HOST,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.HOST}},resource:r.NW,resourceDetail:i.rk.HOST,resourceEdit:i.rk.HOST,canYaml:!1}),g(i.rk.HOST,{isCreatable:!1,isEditable:!0}),f([i.rk.HOST]),v({ifHaveType:r.NW,labelKey:"harvester.host.label",group:"Root",name:i.rk.HOST,namespaced:!0,weight:399,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.HOST}},exact:!1}),f(["cluster-members"],"rbac"),v({ifHave:o.f7.MULTI_CLUSTER,labelKey:"members.clusterMembers",group:"root",namespaced:!1,name:r.cG.CLUSTER_MEMBERS,weight:100,route:{name:`${d}-c-cluster-members`},exact:!0,ifHaveType:{type:r.Mc.CLUSTER_ROLE_TEMPLATE_BINDING,store:"management"}}),f([i.rk.VM]),g(i.rk.VM,{canYaml:!1}),v({labelKey:"harvester.virtualMachine.label",group:"root",name:i.rk.VM,namespaced:!0,weight:299,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.VM}},exact:!1}),f([i.rk.VOLUME]),g(i.rk.VOLUME,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.VOLUME}},resource:r.YH,resourceDetail:i.rk.VOLUME,resourceEdit:i.rk.VOLUME,canYaml:!1}),v({labelKey:"harvester.volume.label",group:"root",ifHaveType:r.YH,name:i.rk.VOLUME,namespaced:!0,weight:199,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.VOLUME}},exact:!1}),f([i.rk.IMAGE]),m(i.rk.IMAGE,[a.c4,a.o_,a.CU,s.r,s.IL,s.tI,s.WR,a.K]),g(i.rk.IMAGE,{canYaml:!1}),v({labelKey:"harvester.image.label",group:"root",name:i.rk.IMAGE,namespaced:!0,weight:198,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.IMAGE}},exact:!1}),f(["projects-namespaces"]),v({ifHave:o.f7.MULTI_CLUSTER,labelKey:"harvester.projectNamespace.label",group:"root",namespaced:!0,name:"projects-namespaces",weight:98,route:{name:`${d}-c-cluster-projectsnamespaces`},exact:!0}),w&&(m(r.CU,[a.c4,a.ZU,a.K]),f([r.CU]),v({labelKey:"harvester.namespace.label",name:r.CU,namespaced:!0,weight:89,route:{name:`${d}-c-cluster-resource`,params:{resource:r.CU}},exact:!1})),f([i.rk.ALERTMANAGERCONFIG],c),f([i.rk.CLUSTER_FLOW,i.rk.CLUSTER_OUTPUT,i.rk.FLOW,i.rk.OUTPUT],u),b("Monitoring",2,!0),b("Logging",1,!0),m(i.rk.ALERTMANAGERCONFIG,[a.c4,a.o_,a.CU,{name:"receivers",labelKey:"tableHeaders.receivers",formatter:"ReceiverIcons",value:"name"}]),g(i.rk.ALERTMANAGERCONFIG,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.ALERTMANAGERCONFIG}},resource:r.Rp.ALERTMANAGERCONFIG,resourceDetail:i.rk.ALERTMANAGERCONFIG,resourceEdit:i.rk.ALERTMANAGERCONFIG,canYaml:!1}),v({ifHaveType:r.Rp.ALERTMANAGERCONFIG,labelKey:"harvester.monitoring.alertmanagerConfig.label",name:i.rk.ALERTMANAGERCONFIG,namespaced:!0,weight:87,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.ALERTMANAGERCONFIG}},exact:!1}),g(i.rk.CLUSTER_FLOW,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.CLUSTER_FLOW}},resource:r.cm.CLUSTER_FLOW,resourceDetail:i.rk.CLUSTER_FLOW,resourceEdit:i.rk.CLUSTER_FLOW,canYaml:!1}),v({labelKey:"harvester.logging.clusterFlow.label",name:i.rk.CLUSTER_FLOW,namespaced:!0,weight:79,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.CLUSTER_FLOW}},exact:!1}),g(i.rk.CLUSTER_OUTPUT,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.CLUSTER_OUTPUT}},resource:r.cm.CLUSTER_OUTPUT,resourceDetail:i.rk.CLUSTER_OUTPUT,resourceEdit:i.rk.CLUSTER_OUTPUT,canYaml:!1}),v({labelKey:"harvester.logging.clusterOutput.label",name:i.rk.CLUSTER_OUTPUT,namespaced:!0,weight:78,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.CLUSTER_OUTPUT}},exact:!1}),g(i.rk.FLOW,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.FLOW}},resource:r.cm.FLOW,resourceDetail:i.rk.FLOW,resourceEdit:i.rk.FLOW,canYaml:!1}),v({labelKey:"harvester.logging.flow.label",name:i.rk.FLOW,namespaced:!0,weight:77,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.FLOW}},exact:!1}),g(i.rk.OUTPUT,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.OUTPUT}},resource:r.cm.OUTPUT,resourceDetail:i.rk.OUTPUT,resourceEdit:i.rk.OUTPUT,canYaml:!1}),v({labelKey:"harvester.logging.output.label",name:i.rk.OUTPUT,namespaced:!0,weight:76,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.OUTPUT}},exact:!1}),m(i.rk.FLOW,[a.c4,a.o_,a.CU,a.aQ,a.hX,a.Yf,a.K]),m(i.rk.OUTPUT,[a.c4,a.o_,a.CU,a.P4,a.K]),m(i.rk.CLUSTER_FLOW,[a.c4,a.o_,a.CU,a.hX,a.Yf,a.K]),m(i.rk.CLUSTER_OUTPUT,[a.c4,a.o_,a.CU,a.P4,a.K]),f([i.rk.CLUSTER_NETWORK,i.rk.NETWORK_ATTACHMENT,i.rk.LB,i.rk.IP_POOL],"networks"),f([i.rk.SCHEDULE_VM_BACKUP,i.rk.BACKUP,i.rk.SNAPSHOT,i.rk.VM_SNAPSHOT],"backupAndSnapshot"),b("networks",300,!0),y(r.CU,299,!0),b("backupAndSnapshot",289,!0),f([l,i.rk.SSH,i.rk.CLOUD_TEMPLATE,i.rk.STORAGE,i.rk.SR_IOV,i.rk.PCI_DEVICE,i.rk.SR_IOVGPU_DEVICE,i.rk.VGPU_DEVICE,i.rk.USB_DEVICE,i.rk.ADD_ONS,i.rk.SECRET,i.rk.SETTING],"advanced"),g(i.rk.CLUSTER_NETWORK,{realResource:i.rk.SETTING,showState:!1}),v({labelKey:"harvester.vmTemplate.label",group:"root",name:l,namespaced:!0,weight:289,route:{name:`${d}-c-cluster-resource`,params:{resource:l}},exact:!1}),g(l,{canYaml:!1}),g(i.rk.SCHEDULE_VM_BACKUP,{showListMasthead:!1,showConfigView:!1,canYaml:!1}),v({labelKey:"harvester.schedule.label",name:i.rk.SCHEDULE_VM_BACKUP,namespaced:!0,weight:201,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SCHEDULE_VM_BACKUP}},exact:!1,ifHaveType:i.rk.SCHEDULE_VM_BACKUP}),g(i.rk.BACKUP,{showListMasthead:!1,showConfigView:!1,canYaml:!1}),v({labelKey:"harvester.backup.label",name:i.rk.BACKUP,namespaced:!0,weight:200,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.BACKUP}},exact:!1}),g(i.rk.VLAN_CONFIG,{hiddenNamespaceGroupButton:!0,canYaml:!1}),g(i.rk.CLUSTER_NETWORK,{showListMasthead:!1,canYaml:!1}),v({labelKey:"harvester.clusterNetwork.title",name:i.rk.CLUSTER_NETWORK,ifHaveType:i.rk.CLUSTER_NETWORK,namespaced:!1,weight:189,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.CLUSTER_NETWORK}},exact:!1}),g(i.rk.NETWORK_ATTACHMENT,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.NETWORK_ATTACHMENT}},resource:r.XG,resourceDetail:i.rk.NETWORK_ATTACHMENT,resourceEdit:i.rk.NETWORK_ATTACHMENT}),v({labelKey:"harvester.network.label",name:i.rk.NETWORK_ATTACHMENT,namespaced:!0,weight:188,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.NETWORK_ATTACHMENT}},exact:!1}),g(i.rk.SNAPSHOT,{isCreatable:!1,location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SNAPSHOT}},resource:i.qY,resourceDetail:i.rk.SNAPSHOT,resourceEdit:i.rk.SNAPSHOT,canYaml:!1}),m(i.rk.SNAPSHOT,[a.c4,a.o_,a.CU,s.mt,a.K]),v({labelKey:"harvester.snapshot.label",name:i.rk.SNAPSHOT,namespaced:!0,weight:190,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SNAPSHOT}},exact:!1}),g(i.rk.VM_SNAPSHOT,{showListMasthead:!1,location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.VM_SNAPSHOT}},resource:i.rk.BACKUP,resourceDetail:i.rk.VM_SNAPSHOT,resourceEdit:i.rk.VM_SNAPSHOT,canYaml:!1}),v({labelKey:"harvester.vmSnapshot.label",name:i.rk.VM_SNAPSHOT,namespaced:!0,weight:191,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.VM_SNAPSHOT}},exact:!1}),m(i.rk.SSH,[a.c4,a.o_,a.CU,s.lj,a.K]),v({labelKey:"harvester.sshKey.label",name:i.rk.SSH,namespaced:!0,weight:170,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SSH}},exact:!1}),g(i.rk.CLOUD_TEMPLATE,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.CLOUD_TEMPLATE}},resource:r.K5,resourceDetail:i.rk.CLOUD_TEMPLATE,resourceEdit:i.rk.CLOUD_TEMPLATE,canYaml:!1}),v({labelKey:"harvester.cloudTemplate.label",name:i.rk.CLOUD_TEMPLATE,namespaced:!0,weight:87,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.CLOUD_TEMPLATE}},exact:!1}),m(i.rk.SECRET,[a.c4,a.o_,a.CU,a.UA,{name:"data",labelKey:"tableHeaders.data",value:"dataPreview",formatter:"SecretData"},a.K]),g(i.rk.SECRET,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SECRET}},resource:r.bB,resourceDetail:i.rk.SECRET,resourceEdit:i.rk.SECRET,canYaml:!1,notFilterNamespace:["cattle-monitoring-system","cattle-logging-system"]}),v({labelKey:"harvester.secret.label",name:i.rk.SECRET,namespaced:!0,weight:-999,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SECRET}},exact:!1}),g(i.rk.SETTING,{isCreatable:!1}),v({ifHaveType:i.rk.SETTING,ifHaveVerb:"POST",labelKey:"harvester.setting.label",name:i.rk.SETTING,namespaced:!0,weight:-1e3,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SETTING}},exact:!1}),g(i.rk.STORAGE,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.STORAGE}},resource:r.fJ,resourceDetail:i.rk.STORAGE,resourceEdit:i.rk.STORAGE,isCreatable:!0,canYaml:!1}),v({labelKey:"harvester.storage.title",group:"root",ifHaveType:r.fJ,name:i.rk.STORAGE,namespaced:!1,weight:79,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.STORAGE}},exact:!1}),v({label:"PCI Devices",group:"advanced",weight:14,name:i.rk.PCI_DEVICE,namespaced:!1,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.PCI_DEVICE}},exact:!1}),g(i.rk.PCI_DEVICE,{isCreatable:!1,hiddenNamespaceGroupButton:!0,canYaml:!0,listGroups:[{icon:"icon-list-grouped",value:"description",field:"groupByDevice",hideColumn:"description",tooltipKey:"resourceTable.groupBy.device"},{icon:"icon-cluster",value:"node",field:"groupByNode",hideColumn:"node",tooltipKey:"resourceTable.groupBy.node"}]}),v({ifHaveType:i.rk.SR_IOV,labelKey:"harvester.sriov.label",group:"advanced",weight:15,name:i.rk.SR_IOV,namespaced:!1,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SR_IOV}},exact:!1}),g(i.rk.SR_IOV,{isCreatable:!1,hiddenNamespaceGroupButton:!0,canYaml:!1}),v({ifHaveType:i.rk.SR_IOVGPU_DEVICE,labelKey:"harvester.sriovgpu.label",group:"advanced",weight:13,name:i.rk.SR_IOVGPU_DEVICE,namespaced:!1,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.SR_IOVGPU_DEVICE}},exact:!1}),g(i.rk.SR_IOVGPU_DEVICE,{isCreatable:!1,hiddenNamespaceGroupButton:!0,canYaml:!1}),v({labelKey:"harvester.vgpu.label",group:"advanced",weight:12,name:i.rk.VGPU_DEVICE,namespaced:!1,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.VGPU_DEVICE}},exact:!1}),g(i.rk.VGPU_DEVICE,{isCreatable:!1,hiddenNamespaceGroupButton:!0,canYaml:!1,listGroups:[{icon:"icon-cluster",value:"node",field:"groupByNode",hideColumn:"node",tooltipKey:"resourceTable.groupBy.node"}]}),v({labelKey:"harvester.usb.label",group:"advanced",weight:11,name:i.rk.USB_DEVICE,namespaced:!1,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.USB_DEVICE}},exact:!1,ifHaveType:i.rk.USB_DEVICE}),g(i.rk.USB_DEVICE,{isCreatable:!1,hiddenNamespaceGroupButton:!0,canYaml:!1,listGroups:[{icon:"icon-list-grouped",value:"description",field:"groupByDevice",hideColumn:"description",tooltipKey:"resourceTable.groupBy.device"},{icon:"icon-cluster",value:"node",field:"groupByNode",hideColumn:"node",tooltipKey:"resourceTable.groupBy.node"}]}),g(i.rk.ADD_ONS,{isCreatable:!1,isRemovable:!1,showState:!1,canYaml:!1}),v({label:"Add-ons",group:"advanced",name:i.rk.ADD_ONS,ifHaveType:i.rk.ADD_ONS,weight:-900,namespaced:!1,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.ADD_ONS}},exact:!1}),g(i.rk.LB,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.LB}},canYaml:!1}),v({labelKey:"harvester.loadBalancer.label",name:i.rk.LB,namespaced:!0,weight:185,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.LB}},exact:!1,ifHaveType:i.rk.LB}),m(i.rk.LB,[a.c4,a.o_,{...a.BD,formatter:"HarvesterListener"},{name:"workloadType",labelKey:"harvester.loadBalancer.workloadType.label",value:"workloadTypeDisplay"},{name:"ipam",labelKey:"harvester.loadBalancer.ipam.label",value:"ipamDisplay"},a.K]),g(i.rk.IP_POOL,{location:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.IP_POOL}},canYaml:!1}),v({labelKey:"harvester.ipPool.label",name:i.rk.IP_POOL,namespaced:!1,weight:184,route:{name:`${d}-c-cluster-resource`,params:{resource:i.rk.IP_POOL}},exact:!1,ifHaveType:i.rk.IP_POOL}),m(i.rk.IP_POOL,h)}},66905:function(e,t,n){"use strict";n.d(t,{$E:function(){return c},$z:function(){return r},Et:function(){return h},Jo:function(){return d},UQ:function(){return u},_w:function(){return a},cI:function(){return o},hg:function(){return l},vo:function(){return s},xO:function(){return i}});const r=[{label:"VirtIO",value:"virtio"},{label:"SATA",value:"sata"},{label:"SCSI",value:"scsi"}],i={NEW:"New",IMAGE:"Virtual Machine Image",ATTACH_VOLUME:"Existing Volume",CONTAINER:"Container"},a=[{label:"disk",value:"disk"},{label:"cd-rom",value:"cd-rom"}],o={RESET_PWD:"userPassword",INJECT_SSH:"sshPublicKey"},s=["Always","RerunOnFailure","Manual","Halted"],l=["Migrate","ShutdownAndRestartAfterEnable","ShutdownAndRestartAfterDisable","Shutdown"],c={VolumeSnapshot:"VolumeSnapshot",PersistentVolumeClaim:"Volume"},u={LOGGING:"Logging",AUDIT:"Audit",EVENT:"Event"},d={HARVESTER_SEEDER:"harvester-seeder",PCI_DEVICE_CONTROLLER:"pcidevices-controller",NVIDIA_DRIVER_TOOLKIT_CONTROLLER:"nvidia-driver-toolkit",RANCHER_LOGGING:"rancher-logging",RANCHER_MONITORING:"rancher-monitoring",VM_IMPORT_CONTROLLER:"vm-import-controller",LVM_DRIVER:"lvm.driver.harvesterhci.io"},h={CSI_PROVISIONER_SECRET_NAME:"csi.storage.k8s.io/provisioner-secret-name",CSI_PROVISIONER_SECRET_NAMESPACE:"csi.storage.k8s.io/provisioner-secret-namespace",CSI_NODE_PUBLISH_SECRET_NAME:"csi.storage.k8s.io/node-publish-secret-name",CSI_NODE_PUBLISH_SECRET_NAMESPACE:"csi.storage.k8s.io/node-publish-secret-namespace",CSI_NODE_STAGE_SECRET_NAME:"csi.storage.k8s.io/node-stage-secret-name",CSI_NODE_STAGE_SECRET_NAMESPACE:"csi.storage.k8s.io/node-stage-secret-namespace"}},2602:function(e,t,n){"use strict";n.d(t,{l:function(){return a},r:function(){return o}});const r=/cattle\.io\//,i=/harvesterhci\.io\/maintain-mode-strategy/,a=[r,i],o={CLOUD_INIT:"harvesterhci.io/cloud-init-template",CURRENT_IP:"rke2.io/internal-ip",IMAGE_ID:"harvesterhci.io/imageId",SSH_NAMES:"harvesterhci.io/sshNames",NETWORK_IPS:"network.harvesterhci.io/ips",TEMPLATE_VERSION_CUSTOM_NAME:"template-version.harvesterhci.io/customName",CREATOR:"harvesterhci.io/creator",OS:"harvesterhci.io/os",GOLDEN_IMAGE:"harvesterhci.io/goldenImage",NETWORK_TYPE:"network.harvesterhci.io/type",VM_NAME:"harvesterhci.io/vmName",VM_NAME_PREFIX:"harvesterhci.io/vmNamePrefix",VM_RESERVED_MEMORY:"harvesterhci.io/reservedMemory",MAINTENANCE_STATUS:"harvesterhci.io/maintain-status",HOST_CUSTOM_NAME:"harvesterhci.io/host-custom-name",HOST_CONSOLE_URL:"harvesterhci.io/host-console-url",RESTORE_NAME:"restore.harvesterhci.io/name",NODE_ROLE_MASTER:"node-role.kubernetes.io/master",NODE_ROLE_CONTROL_PLANE:"node-role.kubernetes.io/control-plane",NODE_ROLE_ETCD:"node-role.harvesterhci.io/witness",PROMOTE_STATUS:"harvesterhci.io/promote-status",MIGRATION_STATE:"harvesterhci.io/migrationState",VOLUME_CLAIM_TEMPLATE:"harvesterhci.io/volumeClaimTemplates",IMAGE_NAME:"harvesterhci.io/image-name",INIT_IP:"etcd.rke2.cattle.io/node-address",NODE_SCHEDULABLE:"kubevirt.io/schedulable",NETWORK_ROUTE:"network.harvesterhci.io/route",MATCHED_NODES:"network.harvesterhci.io/matched-nodes",OS_UPGRADE_IMAGE:"harvesterhci.io/os-upgrade-image",LATEST_UPGRADE:"harvesterhci.io/latestUpgrade",UPGRADE_STATE:"harvesterhci.io/upgradeState",REAY_MESSAGE:"harvesterhci.io/read-message",DYNAMIC_SSHKEYS_NAMES:"harvesterhci.io/dynamic-ssh-key-names",DYNAMIC_SSHKEYS_USERS:"harvesterhci.io/dynamic-ssh-key-users",IMAGE_SUFFIX:"harvesterhci.io/image-type",OS_TYPE:"harvesterhci.io/os-type",STORAGE_PROVISIONER:"harvesterhci.io/storageProvisioner",SKIP_SINGLE_REPLICA_DETACHED_VOL:"harvesterhci.io/skipSingleReplicaDetachedVol",HOST_REQUEST:"management.cattle.io/pod-requests",STORAGE_CLASS:"harvesterhci.io/storageClassName",STORAGE_NETWORK:"storage-network.settings.harvesterhci.io",ADDON_EXPERIMENTAL:"addon.harvesterhci.io/experimental",VOLUME_ERROR:"longhorn.io/volume-scheduling-error",KVM_AMD_CPU:"cpu-feature.node.kubevirt.io/svm",KVM_INTEL_CPU:"cpu-feature.node.kubevirt.io/vmx",NODE_MANUFACTURER:"manufacturer",NODE_MODEL:"model",NODE_SERIAL_NUMBER:"serialNumber",VM_INSUFFICIENT:"harvesterhci.io/insufficient-resource-quota",NODE_NTP_SYNC_STATUS:"node.harvesterhci.io/ntp-service",PARENT_SRIOV:"harvesterhci.io/parent-sriov-network-device",PARENT_SRIOV_GPU:"harvesterhci.io/parentSRIOVGPUDevice",VM_MAINTENANCE_MODE_STRATEGY:"harvesterhci.io/maintain-mode-strategy",NODE_CPU_MANAGER_UPDATE_STATUS:"harvesterhci.io/cpu-manager-update-status",CPU_MANAGER:"cpumanager",VM_DEVICE_ALLOCATION_DETAILS:"harvesterhci.io/deviceAllocationDetails",SVM_BACKUP_ID:"harvesterhci.io/svmbackupId",DISABLE_LONGHORN_V2_ENGINE:"node.longhorn.io/disable-v2-data-engine"}},1371:function(e,t,n){"use strict";n.d(t,{IL:function(){return a},KG:function(){return c},WR:function(){return i},iu:function(){return u},lA:function(){return d},lj:function(){return o},mt:function(){return s},r:function(){return h},tC:function(){return l},tI:function(){return r}});const r={name:"downloadedBytes",labelKey:"tableHeaders.size",value:"downSize",sort:"status.size"},i={name:"virtualSize",labelKey:"harvester.tableHeaders.virtualSize",value:"virtualSize",sort:"status.virtualSize"},a={name:"Uploaded",labelKey:"tableHeaders.progress",value:"status.progress",sort:"status.progress",formatter:"ImagePercentageBar"},o={name:"Fingerprint",labelKey:"tableHeaders.fingerprint",value:"status.fingerPrint"},s={name:"TargetVolume",labelKey:"harvester.tableHeaders.snapshotTargetVolume",value:"spec.source.persistentVolumeClaimName",sort:"spec.source.persistentVolumeClaimName",formatter:"SnapshotTargetVolume"},l={name:"CronExpression",labelKey:"harvester.tableHeaders.cronExpression",value:"spec.cron",align:"center",sort:"spec.cron",formatter:"HarvesterCronExpression"},c={name:"Retain",labelKey:"harvester.tableHeaders.retain",value:"spec.retain",sort:"spec.retain",align:"center"},u={name:"MaxFailure",labelKey:"harvester.tableHeaders.maxFailure",value:"spec.maxFailure",sort:"spec.maxFailure",align:"center"},d={name:"Type",labelKey:"harvester.tableHeaders.scheduleType",value:"spec.vmbackup.type",sort:"spec.vmbackup.type",align:"center"},h={name:"imageStorageClass",labelKey:"harvester.tableHeaders.storageClass",sort:"imageStorageClass",value:"imageStorageClass",align:"left",width:200}},41837:function(e,t,n){"use strict";n.d(t,{A:function(){return i},a:function(){return r}});const r={BACKUP:"backup",SNAPSHOT:"snapshot"},i={L2VLAN:"L2VlanNetwork",UNTAGGED:"UntaggedNetwork"}},83727:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(35664),i=n(89865);class a extends i.A{get clusterroletemplatebinding(){return this.$rootGetters["management/byId"](r.Mc.CLUSTER_ROLE_TEMPLATE_BINDING,this.id?.replace(":","/"))}get principalId(){return this.userPrincipalId||this.groupPrincipalId}get roleDisplay(){return this.roleTemplate.nameDisplay}get roleDescription(){return this.roleTemplate.description}get roleTemplate(){return this.$rootGetters["management/byId"](r.Mc.ROLE_TEMPLATE,this.roleTemplateId)}}},66529:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(25184),i=n(92043),a=n(32766);const o={enabled:{displayKey:"generic.enabled",color:"bg-success"},pending:{displayKey:"generic.inProgress",color:"bg-info"},disabled:{displayKey:"generic.disabled",color:"bg-warning"},error:{displayKey:"generic.disabled",color:"bg-warning"}};class s extends r.A{get _availableActions(){const e=super._availableActions;return e.push({action:"enablePassthroughBulk",enabled:!this.isEnabling,icon:"icon icon-fw icon-dot",label:"Enable Passthrough",bulkable:!0,bulkAction:"enablePassthroughBulk",weight:1},{action:"disablePassthrough",enabled:this.isEnabling&&this.claimedByMe,icon:"icon icon-fw icon-dot-open",label:"Disable Passthrough",bulkable:!0,weight:0}),e}get canYaml(){return!1}get canDelete(){return!1}goToDetail(){return!1}goToEdit(){return!1}get passthroughClaim(){const e=this.$getters["all"](a.rk.PCI_CLAIM)||[];return!!this.status&&e.find((e=>e?.spec?.nodeName===this.status?.nodeName&&e?.spec?.address===this.status?.address))}get uniqueId(){return`${this.status?.vendorId}:${this.status?.deviceId}`}get claimedBy(){return this.passthroughClaim?.spec?.userName}get claimedByMe(){if(!this.passthroughClaim)return!1;const e=this.$rootGetters["isSingleProduct"];let t="admin";if(!e){const e=this.$rootGetters["auth/v3User"];t=e?.username||e?.id}return this.claimedBy===t}get isEnabled(){return!!this.passthroughClaim?.status?.passthroughEnabled}get isEnabling(){return!!this.passthroughClaim}get claimStatusDisplay(){return this.passthroughClaim?this.isEnabled?o.enabled:o.pending:o.disabled}get stateDisplay(){const e=this.$rootGetters["i18n/t"];return e(this.claimStatusDisplay.displayKey)}get stateBackground(){return this.claimStatusDisplay.color}enablePassthroughBulk(e=this){this.$dispatch("promptModal",{resources:e,component:"EnablePciPassthrough"})}async disablePassthrough(){try{if(!this.claimedByMe)throw new Error(this.$rootGetters["i18n/t"]("harvester.pci.cantUnclaim",{name:(0,i.ZD)(this.metadata.name)}));await this.passthroughClaim.remove()}catch(e){this.$dispatch("growl/fromError",{title:this.$rootGetters["i18n/t"]("harvester.pci.unclaimError",{name:(0,i.ZD)(this.metadata.name)}),err:e},{root:!0})}}get groupByNode(){const e=this.status?.nodeName||this.$rootGetters["i18n/t"]("generic.none");return this.$rootGetters["i18n/t"]("resourceTable.groupLabel.node",{name:(0,i.ZD)(e)})}get groupByDevice(){return this.status?.description}}},13520:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var r=n(25184),i=n(92043),a=n(73883),o=n(35664),s=n(2602),l=n(32766);class c extends r.A{get _availableActions(){const e=super._availableActions;return e.push({action:"enableDevice",enabled:!this.isEnabled,icon:"icon icon-fw icon-dot",label:"Enable"},{action:"disableDevice",enabled:this.isEnabled,icon:"icon icon-fw icon-dot-open",label:"Disable"}),e}get canYaml(){return!1}get canDelete(){return!1}goToDetail(){return!1}goToEdit(){return!1}get actualState(){return this.isEnabled?"Enabled":"Disabled"}get stateDisplay(){return this.actualState}get stateColor(){const e=this.actualState;return(0,a.uU)(e)}get isEnabled(){return this.spec.enabled&&this.status?.vfAddresses?.length>0&&this.status?.vGPUDevices?.length>0}async enableDevice(){try{this.spec.enabled=!0,await this.save()}catch(e){this.$dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,i.ZD)(this.metadata.name)}),err:e},{root:!0})}}async disableDevice(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/schemaFor`](l.rk.VGPU_DEVICE);if(t){const t=this.$rootGetters[`${e}/all`](l.rk.VGPU_DEVICE)||[],n=t.filter((e=>e.labels[s.r.PARENT_SRIOV_GPU]===this.id&&e.spec?.enabled)).map((e=>e.id));if(n.length>0)return void this.$dispatch("growl/error",{title:this.t("generic.notification.title.error",{name:(0,i.ZD)(this.metadata.name)}),message:`\n Cannot disable ${this.metadata.name}, following vGPU devices are enabled:\n [${n.join(", ")}]\n `},{root:!0})}try{this.spec.enabled=!1,await this.save()}catch(n){this.$dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,i.ZD)(this.metadata.name)}),err:n},{root:!0})}}get realNodeName(){const e=this.$rootGetters["currentProduct"].inStore,t=this.spec?.nodeName,n=this.$rootGetters[`${e}/all`](o.NW),r=n.find((e=>e.id===t));return r?.nameDisplay||""}get numVFs(){return this.status?.vfAddresses?.length||0}get childDevice(){return l.rk.VGPU_DEVICE}}},75128:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(25184),i=n(92043),a=n(73883),o=n(35664),s=n(32766);class l extends r.A{get _availableActions(){const e=super._availableActions;return e.push({action:"enableDevice",enabled:!this.isEnabled,icon:"icon icon-fw icon-dot",label:"Enable"},{action:"disableDevice",enabled:this.isEnabled,icon:"icon icon-fw icon-dot-open",label:"Disable"}),e}get canYaml(){return!1}get canDelete(){return!1}goToDetail(){return!1}goToEdit(){return!1}get actualState(){return this.isEnabled?"Enabled":"Disabled"}get stateDisplay(){return this.actualState}get stateColor(){const e=this.actualState;return(0,a.uU)(e)}get isEnabled(){return"sriovNetworkDeviceEnabled"===this.status?.status&&this.spec?.numVFs>0}enableDevice(e=this){this.$dispatch("promptModal",{resources:e,component:"EnableSriovDevice"})}async disableDevice(){const e=this.spec.numVFs;try{this.spec.numVFs=0,await this.save()}catch(t){this.spec.numVFs=e,this.$dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,i.ZD)(this.metadata.name)}),err:t},{root:!0})}}get realNodeName(){const e=this.$rootGetters["currentProduct"].inStore,t=this.spec?.nodeName,n=this.$rootGetters[`${e}/all`](o.NW),r=n.find((e=>e.id===t));return r?.nameDisplay||""}get numVFs(){return this.spec?.numVFs}get childDevice(){return s.rk.PCI_DEVICE}}},95311:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(25184),i=n(92043),a=n(32766);const o={enabled:{displayKey:"generic.enabled",color:"bg-success"},pending:{displayKey:"generic.inProgress",color:"bg-info"},disabled:{displayKey:"generic.disabled",color:"bg-warning"},error:{displayKey:"generic.disabled",color:"bg-warning"}};class s extends r.A{get _availableActions(){const e=super._availableActions;return e.push({action:"enablePassthroughBulk",enabled:!this.passthroughClaim&&!this.status.enabled,icon:"icon icon-fw icon-dot",label:"Enable Passthrough",bulkable:!0,bulkAction:"enablePassthroughBulk",weight:1},{action:"disablePassthrough",enabled:this.status.enabled,icon:"icon icon-fw icon-dot-open",label:"Disable Passthrough",bulkable:!0,weight:0}),e}get canYaml(){return!1}get canDelete(){return!1}goToDetail(){return!1}goToEdit(){return!1}get passthroughClaim(){const e=this.$getters["all"](a.rk.USB_CLAIM)||[];return!!this.status&&e.find((e=>e?.status?.nodeName===this.status?.nodeName&&e?.metadata?.name===this.metadata?.name))}get uniqueId(){return`${this.status?.vendorId}:${this.status?.deviceId}`}get claimedBy(){return this.passthroughClaim?.spec?.userName}get claimedByMe(){if(!this.passthroughClaim)return!1;const e=this.$rootGetters["isSingleProduct"];let t="admin";if(!e){const e=this.$rootGetters["auth/v3User"];t=e?.username||e?.id}return this.claimedBy===t}get claimStatusDisplay(){return this.passthroughClaim?this.status.enabled?o.enabled:o.pending:o.disabled}get stateDisplay(){const e=this.$rootGetters["i18n/t"];return e(this.claimStatusDisplay.displayKey)}get stateBackground(){return this.claimStatusDisplay.color}enablePassthroughBulk(e=this){this.$dispatch("promptModal",{resources:e,component:"EnableUSBPassthrough"})}async disablePassthrough(){try{if(!this.claimedByMe)throw new Error(this.$rootGetters["i18n/t"]("harvester.usb.cantUnclaim",{name:(0,i.ZD)(this.metadata.name)}));await this.passthroughClaim.remove()}catch(e){this.$dispatch("growl/fromError",{title:this.$rootGetters["i18n/t"]("harvester.usb.unclaimError",{name:(0,i.ZD)(this.metadata.name)}),err:e},{root:!0})}}get groupByNode(){const e=this.status?.nodeName||this.$rootGetters["i18n/t"]("generic.none");return this.$rootGetters["i18n/t"]("resourceTable.groupLabel.node",{name:(0,i.ZD)(e)})}get groupByDevice(){return this.status?.description}}},46505:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(25184),i=n(92043);const a={enabled:{displayKey:"generic.enabled",color:"bg-success"},pending:{displayKey:"generic.inProgress",color:"bg-info"},disabled:{displayKey:"generic.disabled",color:"bg-warning"},error:{displayKey:"generic.disabled",color:"bg-warning"}};class o extends r.A{get _availableActions(){const e=super._availableActions;return e.push({action:"enableVGpu",enabled:!this.isEnabled,icon:"icon icon-fw icon-dot",label:"Enable"},{action:"disableVGpu",enabled:this.isEnabled,icon:"icon icon-fw icon-dot-open",label:"Disable",bulkable:!0}),e}get canYaml(){return!1}get canDelete(){return!1}goToDetail(){return!1}goToEdit(){return!1}get isEnabled(){return!0===this?.spec?.enabled}get isEnabling(){return this.status?.vGPUStatus&&"vGPUConfigured"!==this.status?.vGPUStatus}get statusDisplay(){return this.isEnabling?a.pending:this.isEnabled?a.enabled:a.disabled}get stateDisplay(){const e=this.$rootGetters["i18n/t"];return e(this.statusDisplay.displayKey)}get stateBackground(){return this.statusDisplay.color}enableVGpu(e=this){this.$dispatch("promptModal",{resources:e,component:"EnableVGpuDevice"})}async disableVGpu(){const{vGPUTypeName:e,enabled:t}=this.spec;try{this.spec.vGPUTypeName=void 0,this.spec.enabled=!1,await this.save()}catch(n){this.spec.vGPUTypeName=e,this.spec.enabled=t,this.$dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,i.ZD)(this.metadata.name)}),err:n},{root:!0})}}get groupByNode(){const e=this.spec?.nodeName||this.$rootGetters["i18n/t"]("generic.none");return this.$rootGetters["i18n/t"]("resourceTable.groupLabel.node",{name:(0,i.ZD)(e)})}get vGpuAvailableTypes(){return this.status?.availableTypes?Object.keys(this.status.availableTypes):[]}}},24222:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(25184),i=n(91462),a=n(20652);class o extends r.A{get listLocation(){const e=this.harvesterResourcesInExplorer?"c-cluster-product-resource":`${a.KR}-c-cluster-resource`;return this.$rootGetters["type-map/optionsFor"](this.type).customRoute||{name:e,params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],resource:this.type}}}get parentLocationOverride(){return this.listLocation}get doneRoute(){return this.listLocation.name}get doneOverride(){return this.listLocation}get harvesterResourcesInExplorer(){return this.$rootGetters["productId"]!==a.KR}get _detailLocation(){const e=this.$getters["schemaFor"](this.type),t=this.id?.replace(/.*\//,""),n=this.harvesterResourcesInExplorer?`c-cluster-product-resource${e?.attributes?.namespaced?"-namespace":""}-id`:`${a.KR}-c-cluster-resource${e?.attributes?.namespaced?"-namespace":""}-id`,r={name:n,params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],resource:this.type,namespace:this.metadata?.namespace,id:t}};return this.harvesterResourcesInExplorer&&(r.query={as:"yaml"}),r}get forceYaml(){return this.harvesterResourcesInExplorer}get canViewInApi(){try{return this.hasLink("self")&&this.$rootGetters["prefs/get"](i.HZ)}catch{return this.hasLink("self")&&this.$rootGetters["prefs/get"](i.IJ)}}}},24481:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(76978),i=n(32766),a=n(24222),o=n(20652);class s extends a["default"]{get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=i.rk.CLOUD_TEMPLATE,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=i.rk.CLOUD_TEMPLATE,e.name=`${o.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${i.rk.CLOUD_TEMPLATE}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}}},4987:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(76978),i=n(43842),a=n(32766),o=n(20652);const s="Not Ready";class l extends i["default"]{get listLocation(){return this.$rootGetters["type-map/optionsFor"](this.type).customRoute||{name:`${o.KR}-c-cluster-resource`,params:{product:o.KR,cluster:this.$rootGetters["clusterId"],resource:this.type}}}get doneRoute(){return this.listLocation.name}get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=a.rk.NETWORK_ATTACHMENT,e.name=`${o.KR}-c-cluster-resource-namespace-id`,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=a.rk.NETWORK_ATTACHMENT,e.name=`${o.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${a.rk.NETWORK_ATTACHMENT}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}get inStore(){return this.$rootGetters["currentProduct"].inStore}get clusterNetworkResource(){const e=this.$rootGetters[`${this.inStore}/all`](a.rk.CLUSTER_NETWORK);return e.find((e=>e.id===this.clusterNetwork))}get clusterNetworkErrorMessage(){return this.clusterNetworkResource?this.clusterNetworkResource.isReady?"":this.t("harvester.clusterNetwork.notReady",{clusterNetwork:this.clusterNetwork}):this.t("harvester.clusterNetwork.notExist",{clusterNetwork:this.clusterNetwork})}get stateDisplay(){return this.clusterNetworkErrorMessage?s:super.stateDisplay}get stateBackground(){return this.stateDisplay===s?"bg-warning":super.stateBackground}get isNotReady(){return this.clusterNetworkErrorMessage}}},50826:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(76978),i=n(35664),a=n(32766),o=n(20652),s=n(40322);class l extends s["default"]{get allOutputs(){return this.$rootGetters["harvester/all"](i.cm.CLUSTER_OUTPUT)||[]}get _detailLocation(){const e=this.$getters["schemaFor"](this.type),t=this.id?.replace(/.*\//,"");return{name:`${o.KR}-c-cluster-resource${e?.attributes?.namespaced?"-namespace":""}-id`,params:{product:o.KR,cluster:this.$rootGetters["clusterId"],resource:this.type,id:t,namespace:this.metadata.namespace}}}get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=a.rk.CLUSTER_FLOW,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=a.rk.CLUSTER_FLOW,e.name=`${o.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${a.rk.CLUSTER_FLOW}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}}},49039:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(76978),i=n(32766),a=n(20652),o=n(15895);class s extends o["default"]{get _detailLocation(){const e=this.$getters["schemaFor"](this.type),t=this.id?.replace(/.*\//,"");return{name:`${a.KR}-c-cluster-resource${e?.attributes?.namespaced?"-namespace":""}-id`,params:{product:a.KR,cluster:this.$rootGetters["clusterId"],resource:this.type,id:t,namespace:this.metadata.namespace}}}get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=i.rk.CLUSTER_OUTPUT,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=i.rk.CLUSTER_OUTPUT,e.name=`${a.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${i.rk.CLUSTER_OUTPUT}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}}},40322:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var r=n(35664),i=n(76978),a=n(21766),o=n(32766),s=n(20652),l=n(66905);class c extends a["default"]{get allOutputs(){return this.$rootGetters["harvester/all"](r.cm.OUTPUT)||[]}get allClusterOutputs(){return this.$rootGetters["harvester/all"](r.cm.CLUSTER_OUTPUT)||[]}get _detailLocation(){const e=this.$getters["schemaFor"](this.type),t=this.id?.replace(/.*\//,"");return{name:`${s.KR}-c-cluster-resource${e?.attributes?.namespaced?"-namespace":""}-id`,params:{product:s.KR,cluster:this.$rootGetters["clusterId"],resource:this.type,id:t,namespace:this.metadata.namespace}}}get detailLocation(){const e=(0,i.o8)(this._detailLocation);return e.params.resource=o.rk.FLOW,e}get doneOverride(){const e=(0,i.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=o.rk.FLOW,e.name=`${s.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${o.rk.FLOW}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}get loggingType(){return"harvester-kube-audit-log-ref"===this.spec.loggingRef?l.UQ.AUDIT:(this.spec.match||[]).find((e=>!!e?.select?.labels?.["app.kubernetes.io/name"]))?l.UQ.EVENT:l.UQ.LOGGING}}},15895:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(76978),i=n(44931),a=n(32766),o=n(20652),s=n(66905);class l extends i["default"]{get _detailLocation(){const e=this.$getters["schemaFor"](this.type),t=this.id?.replace(/.*\//,"");return{name:`${o.KR}-c-cluster-resource${e?.attributes?.namespaced?"-namespace":""}-id`,params:{product:o.KR,cluster:this.$rootGetters["clusterId"],resource:this.type,id:t,namespace:this.metadata.namespace}}}get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=a.rk.OUTPUT,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=a.rk.OUTPUT,e.name=`${o.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${a.rk.OUTPUT}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}get url(){return this.detailLocation}get loggingType(){return"harvester-kube-audit-log-ref"===this.spec.loggingRef?s.UQ.AUDIT:s.UQ.LOGGING}}},65073:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(76978),i=n(76061),a=n(32766),o=n(20652);class s extends i["default"]{get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=a.rk.SETTING,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=a.rk.SETTING,e.name=`${o.KR}-c-cluster-resource`,e}get doneRoute(){return null}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${a.rk.SETTING}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}get doneParams(){return{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],resource:a.rk.SETTING}}}},53942:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(76978),i=n(14220),a=n(25184),o=n(32766),s=n(20652);class l extends a.A{get _detailLocation(){return{name:this.alertmanagerConfigDoneRouteName,params:{cluster:this.$rootGetters["clusterId"],resource:o.rk.ALERTMANAGERCONFIG,namespace:this.metadata?.namespace,id:this.name},hash:"#receivers",query:{as:"config"}}}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=o.rk.ALERTMANAGERCONFIG,e.name=`${s.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${o.rk.ALERTMANAGERCONFIG}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}applyDefaults(){if(this.spec)return this.spec;const e=this.spec?.route?.receivers||[],t={receivers:[...e],route:{receivers:this.spec?.route?.receivers||[],groupBy:this.spec?.route?.groupBy||[],groupWait:this.spec?.route?.groupWait||"30s",groupInterval:this.spec?.route?.groupInterval||"5m",repeatInterval:this.spec?.route?.repeatInterval||"4h",match:this.spec?.route?.match||{},matchRe:this.spec?.route?.matchRe||{}}};(0,r.hZ)(this,"spec",t)}get _availableActions(){const e=super._availableActions;return e}getReceiverActions(e){return e.filter((e=>{if(e.divider)return!0;switch(e.action){case"goToEdit":return!0;case"goToEditYaml":return!0;case"promptRemove":return!0;default:return!1}}))}get alertmanagerConfigDoneRouteName(){return`${s.KR}-c-cluster-resource-namespace-id`}getCreateReceiverRoute(){return{name:`${s.KR}-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,params:{cluster:this.$rootGetters["clusterId"],alertmanagerconfigid:this.id},query:{mode:i.YQ,currentView:i.au}}}getReceiverDetailLink(e){return{name:`${s.KR}-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,params:{cluster:this.$rootGetters["clusterId"],alertmanagerconfigid:this.id,receiverName:e},query:{mode:i.nW,receiverName:e,currentView:i.au}}}getEditReceiverYamlRoute(e,t){return{name:`${s.KR}-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,params:{cluster:this.$rootGetters["clusterId"],alertmanagerconfigid:this.id},query:{mode:t||i.nW,receiverName:e,currentView:i.zD}}}getEditReceiverConfigRoute(e,t){return{name:`${s.KR}-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,params:{cluster:this.$rootGetters["clusterId"],alertmanagerconfigid:this.id},query:{mode:t||i.nW,receiverName:e,currentView:i.au}}}}},62878:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return h}});var r=n(68851),i=n(67867),a=n(2841),o=n(71025),s=n(76978),l=n(35664),c=n(20652),u=n(32766);const d=["c-","p-","user-","local"];class h extends i["default"]{get _availableActions(){const e=super._availableActions,t=e.findIndex((e=>"promptRemove"===e.action)),n={action:"promptRemove",altAction:"remove",label:this.t("action.remove"),icon:"icon icon-trash",bulkable:!0,enabled:this.canDelete,bulkAction:"promptRemove",weight:-10},i={action:"editNSQuota",label:this.t("harvester.modal.quota.editQuota"),icon:"icon icon-storage",enabled:!!this?.actions?.updateResourceQuota&&!!this?.actions?.deleteResourceQuota,weight:-11};return t>-1&&e.splice(t,1),(0,r.PT)(e,e.length-1,n),(0,r.PT)(e,e.length-5,i),e}editNSQuota(e=this){this.$dispatch("promptModal",{resources:e,snapshotSizeQuota:this.snapshotSizeQuota,component:"HarvesterQuotaDialog"})}promptRemove(e=this){this.$dispatch("promptModal",{resources:e,warningMessageKey:"promptRemove.confirmRelatedResource",component:"ConfirmRelatedToRemoveDialog"})}get nsResourceQuota(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](u.rk.RESOURCE_QUOTA);return t.find((e=>e.metadata.namespace===this.id))}get snapshotSizeQuota(){return this.nsResourceQuota?.spec?.snapshotLimit?.namespaceTotalSnapshotSizeQuota}get isSystem(){const e=["fleet-default"];if(e.includes(this.metadata.name))return!0;if("true"===this.metadata?.annotations?.[a.eG])return!0;if(o.A.includes(this.metadata.name))return!0;if(this.metadata.name.endsWith("-system"))return!0;if(this.project)return this.project.isSystem;if("true"===(0,s.Jt)(this,`metadata.labels."${a.Hs.MANAGED}"`))return!0;const t=this.$rootGetters["systemNamespaces"].includes(this.metadata.name),n=!!d.some((e=>this.metadata.name.startsWith(e)));return t||n}get detailLocation(){const e=this.id?.replace(/.*\//,""),t={name:`${c.KR}-c-cluster-resource-id`,params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],resource:l.CU,namespace:this.metadata?.namespace,id:e}};return t}get hideDetailLocation(){return!!this.$rootGetters["currentProduct"].hideNamespaceLocation}}},55285:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r=n(16735),i=n.n(r),a=n(35664),o=n(2841),s=n(2602),l=n(76978),c=n(24576),u=n.n(c),d=n(73883),h=n(95799),p=n(68851),f=n(92043),m=n(24222),g=n(20652),v=n(32766);const b=["topology.kubernetes.io/zone","topology.kubernetes.io/region"],y="healthy",w="warning";class E extends m["default"]{get _availableActions(){const e={action:"cordon",enabled:this.hasAction("cordon")&&!this.isCordoned,icon:"icon icon-fw icon-pause",label:this.t("harvester.action.cordon"),total:1},t={action:"uncordon",enabled:this.hasAction("uncordon"),icon:"icon icon-fw icon-play",label:this.t("harvester.action.uncordon"),total:1},n={action:"enableMaintenanceMode",enabled:this.hasAction("enableMaintenanceMode"),icon:"icon icon-fw icon-unlock",label:this.t("harvester.action.enableMaintenance"),total:1},r={action:"disableMaintenanceMode",enabled:this.hasAction("disableMaintenanceMode"),icon:"icon icon-fw icon-lock",label:this.t("harvester.action.disableMaintenance"),total:1},i={action:"enableCPUManager",enabled:this.cpuPinningFeatureEnabled&&this.hasAction("enableCPUManager")&&!this.isCPUManagerEnableInProgress&&!this.isCPUManagerEnabled&&!this.isEtcd,icon:"icon icon-fw icon-os-management",label:this.t("harvester.action.enableCPUManager"),total:1},a={action:"disableCPUManager",enabled:this.cpuPinningFeatureEnabled&&this.hasAction("disableCPUManager")&&!this.isCPUManagerEnableInProgress&&this.isCPUManagerEnabled&&!this.isEtcd,icon:"icon icon-fw icon-os-management",label:this.t("harvester.action.disableCPUManager"),total:1},o={action:"shutDown",enabled:this.hasAction("powerActionPossible")&&this.hasAction("powerAction")&&!this.isStopped&&!!this.inventory,icon:"icon icon-fw icon-dot",label:this.t("harvester.action.shutdown"),total:1},s={action:"powerOn",enabled:this.hasAction("powerActionPossible")&&this.hasAction("powerAction")&&this.isStopped&&!!this.inventory,icon:"icon icon-fw icon-play",label:this.t("harvester.action.powerOn"),total:1},l={action:"reboot",enabled:this.hasAction("powerActionPossible")&&this.hasAction("powerAction")&&!this.isStopped&&!!this.inventory,icon:"icon icon-fw icon-refresh",label:this.t("harvester.action.reboot"),total:1};return[e,t,n,r,i,a,o,s,l,...super._availableActions]}promptRemove(e=this){this.$dispatch("promptModal",{resources:e,warningMessageKey:"promptRemove.confirmRelatedResource",component:"ConfirmRelatedToRemoveDialog"})}remove(e=this){const t=Array.isArray(e)?e:[e];t.forEach((e=>{e.capiMachine?e.capiMachine.remove():e.remove()}))}get capiMachine(){const e=this.annotations?.[o.qt.CLUSTER_NAMESPACE],t=this.annotations?.[o.qt.MACHINE_NAME];if(e&&t){const n=this.$rootGetters["currentProduct"].inStore;return this.$rootGetters[`${n}/byId`](a.qt.MACHINE,`${e}/${t}`)}return null}get confirmRemove(){return!0}get consoleUrl(){const e=this.metadata?.annotations?.[s.r.HOST_CONSOLE_URL],t=/^[a-z]+:\/\//;return!!e?.match(t)&&e}get filteredSystemLabels(){const e=/(k3s|kubernetes|kubevirt|harvesterhci|k3os)+\.io/,t=i()(this.labels,((t,n)=>!e.test(n)));return b.map((e=>{const n=this?.metadata?.labels?.[e];n&&(t[e]=n)})),t}get nameDisplay(){return this.metadata?.annotations?.[s.r.HOST_CUSTOM_NAME]||this.name}get isKVMDisable(){const e=!this.metadata?.labels?.[s.r.KVM_AMD_CPU]&&!this.metadata?.labels?.[s.r.KVM_INTEL_CPU];return"false"===this.metadata?.labels?.[s.r.KVM_AMD_CPU]||"false"===this.metadata?.labels?.[s.r.KVM_INTEL_CPU]||e}get stateDisplay(){return this.isEnteringMaintenance?"Entering maintenance mode":this.isStopping?(0,f.TF)(d.jv.STOPPING):this.isStarting?(0,f.TF)(d.jv.STARTING):this.isStopped?(0,f.TF)(d.jv.OFF):this.isRebooting?"Rebooting":this.isMaintenance?"Maintenance":this.isCordoned?"Cordoned":(0,d.ch)(this.state)}get stateBackground(){return this.isStopped||this.isStopping||this.isStarting||this.isRebooting?(0,d.uU)(this.stateDisplay,!1,this.stateObj?.transitioning).replace("text-","bg-"):(0,d.uU)(this.stateDisplay,this.stateObj?.error,this.stateObj?.transitioning).replace("text-","bg-")}get stateDescription(){const e=this.metadata?.annotations?.[s.r.CURRENT_IP],t=this.metadata?.annotations?.[s.r.INIT_IP];return t&&e&&e!==t?this.t("harvester.host.inconsistentIP",{currentIP:e,initIP:t}):super.stateDescription}get stateObj(){const e=this.metadata?.annotations?.[s.r.CURRENT_IP],t=this.metadata?.annotations?.[s.r.INIT_IP];return t&&e&&e!==t&&(this.metadata.state.error=!0),this.metadata?.state}get detailLocation(){const e=(0,l.o8)(this._detailLocation);return e.params.resource=v.rk.HOST,e}get doneOverride(){const e=(0,l.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=v.rk.HOST,e.name=`${g.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${v.rk.HOST}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}get internalIp(){const e=this.status?.addresses||[];return u()(e,(e=>"InternalIP"===e.type))?.address}get isMaster(){return void 0!==this.metadata?.labels?.[s.r.NODE_ROLE_MASTER]||void 0!==this.metadata?.labels?.[s.r.NODE_ROLE_CONTROL_PLANE]}cordon(){this.doActionGrowl("cordon",{})}uncordon(){this.doAction("uncordon",{})}enableMaintenanceMode(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterMaintenanceDialog"})}disableMaintenanceMode(){this.doAction("disableMaintenanceMode",{})}enableCPUManager(){this.doActionGrowl("enableCPUManager",{})}disableCPUManager(){this.doActionGrowl("disableCPUManager",{})}get isUnSchedulable(){return"false"===this.metadata?.labels?.[s.r.NODE_SCHEDULABLE]||this.spec.unschedulable}get isMigratable(){const e=["in-progress","unavailable"];return!this.metadata?.annotations?.[s.r.MAINTENANCE_STATUS]&&!this.isUnSchedulable&&!e.includes(this.state)}get isCordoned(){return this.isUnSchedulable&&!this.isEtcd||this.hasAction("uncordon")}get isEtcd(){return this.metadata?.labels?.[s.r.NODE_ROLE_ETCD]}get isEnteringMaintenance(){return"running"===this.metadata?.annotations?.[s.r.MAINTENANCE_STATUS]}get isMaintenance(){return"completed"===this.metadata?.annotations?.[s.r.MAINTENANCE_STATUS]}get cpuPinningFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("cpuPinning")}get isCPUManagerEnabled(){return"true"===this.metadata?.labels?.[s.r.CPU_MANAGER]}get isCPUManagerEnableInProgress(){return"requested"===this.cpuManagerUpdateStatus||"running"===this.cpuManagerUpdateStatus}get isCPUManagerEnableFailed(){return"failed"===this.cpuManagerUpdateStatus}get cpuManagerUpdateStatus(){try{const e=JSON.parse(this.metadata.annotations[s.r.NODE_CPU_MANAGER_UPDATE_STATUS]||"{}");return e.status||""}catch{return""}}get longhornDisks(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/byId`](a.oe.NODES,`longhorn-system/${this.id}`),n=t?.status?.diskStatus||{},r=t?.spec?.disks||{},i=Object.keys(n).map((e=>{const t=n[e]?.conditions||[];let i,a={},o={};return(0,p.cy)(t)?(a=(0,p.jq)(t,"type","Ready")||{},o=(0,p.jq)(t,"type","Schedulable")||{}):(a=t.Ready,o=t.Schedulable),i="True"!==a?.status||"True"!==o?.status?w:y,{...r[e],...n[e],name:e,storageReserved:r[e]?.storageReserved,storageAvailable:n[e]?.storageAvailable,storageMaximum:n[e]?.storageMaximum,storageScheduled:n[e]?.storageScheduled,readyCondition:a,schedulableCondition:o,state:i}}));return i}get pods(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](a.Sm)||[];return t.filter((e=>e?.spec?.nodeName===this.id&&"removing"!==e?.metadata?.name))}get reserved(){try{return JSON.parse(this.metadata.annotations[s.r.HOST_REQUEST]||"{}")}catch{return{}}}get cpuReserved(){return(0,h.ao)(this.reserved.cpu||"0")}get memoryReserved(){return(0,h.ao)(this.reserved.memory||"0")}get canDelete(){const e=this.$rootGetters["harvester/all"](a.NW)||[];return e.length>1&&super.canDelete}get vlanStatuses(){const e=this.$rootGetters["currentProduct"].inStore,t=this.id,n=this.$rootGetters[`${e}/all`](v.rk.VLAN_STATUS);return n.filter((e=>e?.status?.node===t))||[]}get blockDevices(){const e=this.$rootGetters["currentProduct"].inStore,t=this.id,n=this.$rootGetters[`${e}/all`](v.rk.BLOCK_DEVICE);return n.filter((e=>e?.spec?.nodeName===t))||[]}get unProvisionedDisks(){const e=this.blockDevices||[];return e.filter((e=>e?.isProvisioned&&"Provisioned"!==e?.status?.provisionPhase))}get diskStatusCount(){const e=this.unProvisionedDisks.filter((e=>e.metadata.state.error))||[];let t=0;this.longhornDisks.map((e=>{"warning"===e.state&&t++}));const n=this.longhornDisks.length+e.length;return{total:n,errorCount:t+e.length,useful:n-t}}get manufacturer(){return this.metadata?.labels?.[s.r.NODE_MANUFACTURER]}get serialNumber(){return this.metadata?.labels?.[s.r.NODE_SERIAL_NUMBER]}get model(){return this.metadata?.labels?.[s.r.NODE_MODEL]}get isStopped(){const e=this.inventory||{};return"shutdown"===e.spec?.powerActionRequested&&"complete"===e.status?.powerAction?.actionStatus}get isStopping(){const e=this.inventory||{};return!Object.prototype.hasOwnProperty.call(e?.status?.powerAction||{},"actionStatus")&&"shutdown"===e.spec?.powerActionRequested}get isStarted(){const e=this.inventory||{};return"poweron"===e.spec?.powerActionRequested&&"complete"===e.status?.powerAction?.actionStatus}get isStarting(){const e=this.inventory||{};return!Object.prototype.hasOwnProperty.call(e?.status?.powerAction||{},"actionStatus")&&"poweron"===e.spec?.powerActionRequested}get isRebooting(){const e=this.inventory||{};return!Object.prototype.hasOwnProperty.call(e?.status?.powerAction||{},"actionStatus")&&"reboot"===e.spec?.powerActionRequested}async shutDown(e=this){try{await this.doAction("powerActionPossible",{}),await this.doAction("powerAction",{operation:"shutdown"}),await this.$dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.host.powerAction.message.success",{name:this.name,operation:"shut down"})},{root:!0})}catch(t){await this.$dispatch("growl/error",{title:this.t("generic.notification.title.error"),message:t},{root:!0})}}async powerOn(e=this){const t="poweron";try{await this.doAction("powerActionPossible",{}),await this.doAction("powerAction",{operation:t}),await this.$dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.host.powerAction.message.success",{name:this.name,operation:t})},{root:!0})}catch(n){await this.$dispatch("growl/error",{title:this.t("generic.notification.title.error"),message:n},{root:!0})}}async reboot(e=this){const t="reboot";try{await this.doAction("powerActionPossible",{}),await this.doAction("powerAction",{operation:t}),await this.$dispatch("growl/success",{title:this.t("generic.notification.title.succeed"),message:this.t("harvester.host.powerAction.message.success",{name:this.name,operation:t})},{root:!0})}catch(n){await this.$dispatch("growl/error",{title:this.t("generic.notification.title.error"),message:n},{root:!0})}}get inventory(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](v.rk.INVENTORY)||[];return t.find((e=>e.id===`harvester-system/${this.id}`))}get warningMessages(){let e=[];return e=e.concat(this.inventory?.warningMessages||[]),e}}},15908:function(e,t,n){"use strict";n.r(t),n.d(t,{DATA_ENGINE_V1:function(){return v},DATA_ENGINE_V2:function(){return b},default:function(){return y}});var r=n(14220),i=n(74874),a=n.n(i),o=n(35664),s=n(2841),l=n(2602),c=n(68851),u=n(76978),d=n(73883),h=n(32766),p=n(24222),f=n(20652),m=n(82877);const g=["replica scheduling failed","precheck new replica failed"],v="v1",b="v2";class y extends p["default"]{applyDefaults(e,t){const n=t===r.dT?this.spec.accessModes:[],i=t===r.dT?this.spec.resources.requests.storage:null,a=t===r.dT?this.spec.storageClassName:"";this["spec"]={accessModes:n,storageClassName:a,volumeName:"",resources:{requests:{storage:i}}}}get availableActions(){let e=super._availableActions;if(this.isLonghornV2)e=e.filter((e=>"goToClone"!==e.action));else{const t=e.find((e=>"goToClone"===e.action));t&&(t.action="goToCloneVolume")}const t={action:"exportImage",enabled:this.hasAction("export")&&!this.isEncrypted,icon:"icon icon-copy",label:this.t("harvester.action.exportImage")},n={action:"snapshot",enabled:this.hasAction("snapshot"),icon:"icon icon-backup",label:this.t("harvester.action.snapshot")};return this.thirdPartyStorageFeatureEnabled?(e=[t,n,...e],this.isLonghornV2&&(e=e.filter((e=>e.action!==n.action)))):this.isLonghorn&&this.isLonghornV2||(e=[t,n,...e]),[{action:"cancelExpand",enabled:this.hasAction("cancelExpand"),icon:"icon icon-backup",label:this.t("harvester.action.cancelExpand")},...e]}exportImage(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterExportImageDialog"})}cancelExpand(e=this){this.doActionGrowl("cancelExpand",{})}snapshot(e=this){this.$dispatch("promptModal",{resources:e,component:"SnapshotDialog"})}goToCloneVolume(e=this){this.$dispatch("promptModal",{resources:e,component:"VolumeCloneDialog"})}cleanForNew(){this.$dispatch("cleanForNew",this),delete this.metadata.finalizers;const e=[l.r.IMAGE_ID,s.tC];this.metadata.annotations=a()(this.metadata.annotations,e)}get storageClass(){const e=this.$rootGetters["currentProduct"].inStore;return this.$rootGetters[`${e}/all`](o.fJ).find((e=>e.name===this.spec.storageClassName))}get canUpdate(){return this.hasLink("update")}get stateDisplay(){const e=this.relatedPV?.metadata?.annotations?.[l.r.VOLUME_ERROR],t=g.includes(e),n="Bound"===this?.status?.phase&&!e&&this.isLonghornVolumeReady?"Ready":"Not Ready",r=this?.status?.conditions||[];return"True"===(0,c.jq)(r,"type","Resizing")?.status?"Resizing":this.attachVM&&!e?"In-use":t?"Degraded":n}get state(){const e=this.relatedPV?.metadata?.annotations?.[l.r.VOLUME_ERROR],t=g.includes(e);let n="Bound"!==this?.status?.phase||e?"Not Ready":"Ready";const r=this?.status?.conditions||[];return t&&(n="Degraded"),"True"===(0,c.jq)(r,"type","Resizing")?.status&&(n="Resizing"),n}get stateColor(){const e=this.stateDisplay;return(0,d.uU)(e)}get stateDescription(){return super.stateDescription}get detailLocation(){const e=(0,u.o8)(this._detailLocation);return e.params.resource=h.rk.VOLUME,e}get doneOverride(){const e=(0,u.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=h.rk.VOLUME,e.name=`${f.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${h.rk.VOLUME}"`,{count:1}).trim()}get parentLocationOverride(){return this.doneOverride}get phaseState(){return this.status?.phase||"N/A"}get attachVM(){const e=this.$rootGetters["harvester/all"](h.rk.VM)||[],t=e=>{const t=e.spec.template?.spec?.volumes||[];return e.namespace===this.namespace&&t.length>0?t.find((e=>e.persistentVolumeClaim?.claimName===this.name)):null};return e.find(t)}get isAvailable(){const e=["Resizing","Not Ready"];return!e.includes(this.stateDisplay)}get volumeSort(){const e=this.spec?.resources?.requests?.storage||0;return parseInt(e)}get isSystemResource(){const e=this.$rootGetters["systemNamespaces"];return!!e.includes(this.metadata?.namespace)}get isEncrypted(){return"true"===this.relatedPV?.spec?.csi?.volumeAttributes?.encrypted}get longhornVolume(){const e=this.$rootGetters["currentProduct"].inStore;return this.$rootGetters[`${e}/all`](o.oe.VOLUMES).find((e=>e.metadata?.name===this.spec?.volumeName))}get longhornEngine(){const e=this.$rootGetters["currentProduct"].inStore;return this.$rootGetters[`${e}/all`](o.oe.ENGINES).find((e=>e.spec?.volumeName===this.spec?.volumeName))}get isLonghornVolumeReady(){let e=!0;const t=this.longhornVolume||{},n=(t?.status?.conditions||[]).find((e=>"Scheduled"===e.type||"scheduled"===e.type))||{};return(""===t?.spec?.nodeID&&"detached"!==t?.status?.state||"detached"===t?.status?.state&&"True"!==n.status||"faulted"===t?.status?.robustness||t?.status?.restoreRequired||"failed"===t?.status?.cloneStatus?.state)&&(e=!1),e}get relatedVolumeSnapshotCounts(){const e=this.$rootGetters["harvester/all"](h.qY);return e.filter((e=>{const t=`${e.metadata?.namespace}/${e.spec?.source?.persistentVolumeClaimName}`,n=e.metadata?.ownerReferences?.[0]?.kind;return t===this.id&&"PersistentVolumeClaim"===n}))}get originalSnapshot(){return this.spec?.dataSource?this.$rootGetters["harvester/all"](h.qY).find((e=>e.metadata?.name===this.spec.dataSource.name)):null}get source(){const e=(0,u.Jt)(this,`metadata.annotations."${l.r.IMAGE_ID}"`);return e?"image":"data"}get warnDeletionMessage(){return this.t("harvester.volume.promptRemove.tips")}get relatedPV(){return this.$rootGetters["harvester/all"](o.PV).find((e=>e.metadata?.name===this.spec?.volumeName))}get volumeProvider(){return this.relatedPV?.spec.csi?.driver}get dataEngine(){return this.relatedPV?.spec.csi?.volumeAttributes?.dataEngine}get isLvm(){return this.volumeProvider===m.LVM_DRIVER}get isLonghorn(){return this.volumeProvider===o.lI}get isLonghornV2(){return this.dataEngine===b}get thirdPartyStorageFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("thirdPartyStorage")}get resourceExternalLink(){const e=window.location.host,{params:t}=this.currentRoute(),n=this.spec?.volumeName;return n?{tipsKey:"harvester.volume.externalLink.tips",url:`https://${e}/k8s/clusters/${t.cluster}/api/v1/namespaces/longhorn-system/services/http:longhorn-frontend:80/proxy/#/volume/${n}`}:null}get customValidationRules(){return[{nullable:!1,path:"spec.resources.requests.storage",required:!0,validators:["volumeSize"]}]}}},14426:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return k}});var r=n(65145),i=n.n(r),a=n(68851),o=n(76978),s=n(35664),l=n(24222);const c="POD_NOT_SCHEDULABLE",u="POD_FAILED",d="POD_CRASHLOOP_BACKOFF",h="POD_STATUS_UNKNOWN",p="POD_CONTAINER_FAILING",f="POD_NOT_READY",m="POD_STATUS_PENDING",g="POD_STATUS_COMPLETED",v="POD_STATUS_SUCCEEDED",b="POD_STATUS_RUNNING",y=["ImagePullBackOff","ErrImagePull","CrashLoopBackOff"],w=["Error"],E={Failed:u,CrashLoopBackOff:d,Unknown:h},_={Pending:m,Running:b,Completed:g,Succeeded:v},S={terminated:({reason:e,exitCode:t})=>`Terminated with ${e}${t?` (exit code ${t}).`:"."}`,waiting:({reason:e})=>`Waiting (${e}).`};class k extends l["default"]{get inStore(){return this.$rootGetters["currentProduct"].inStore}get nodes(){return this.$rootGetters[`${this.inStore}/all`](s.NW)}get node(){const{nodeName:e}=this.spec;return this.nodes.filter((t=>t?.metadata?.name===e))[0]}get getPodStatus(){return this.isNotSchedulable||this.hasErrorStatus||this.isContainerFailing||this.isNotReady||this.hasOkStatus||{status:h}}get isNotSchedulable(){if(!this.isPodSchedulable){const e=(0,o.Jt)(this,"status.conditions"),t=(0,a.jq)(e,"type","PodScheduled");return{status:c,message:t.message||"Pod scheduling failed."}}return null}get hasErrorStatus(){const e=E[this?.status?.phase];return e?{status:e,message:this.getContainerStatusReason(this.findFailingContainerStatus)}:null}get isPodSchedulable(){const e=(0,o.Jt)(this,"status.conditions"),t=(0,a.jq)(e,"type","PodScheduled");return!(t&&"True"!==t.status&&"Unschedulable"===t.reason)}get findFailingContainerStatus(){return((0,o.Jt)(this,"status.containerStatuses"),[]).find((e=>!e.ready&&(i()(y,(0,o.Jt)(e,"state.waiting.reason"))||i()(w,(0,o.Jt)(e,"state.terminated.reason")))))}get getContainerStatusReason(){return e=>{if(e){const t=Object.getOwnPropertyNames(e.state).find((t=>!!e.state[t].reason));if(t){const n=e.state[t];return n.message||S[t]&&S[t](n)||t}}}}get isContainerFailing(){const e=this.findFailingContainerStatus;return e?{status:p,message:this.getContainerStatusReason(e)}:null}get isNotReady(){const e=this.findPodFalseStatusConditionMessage;return e?{status:f,message:e}:null}get hasOkStatus(){const e=_[this?.status?.phase];return e?{status:e}:null}get findPodFalseStatusConditionMessage(){const e=this.getPodFalseStatusConditions;if(e.length>0)return e[0].message||`Step: ${e[0].type}`}get getPodFalseStatusConditions(){const e=(0,o.Jt)(this,"status.conditions")||[];return e.filter((e=>"True"!==e.status))}}},60698:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(45858);class i extends r["default"]{}},36577:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(76978),i=n(32766),a=n(20652),o=n(1133),s=n(35664);class l extends o["default"]{get _detailLocation(){const e=this.$getters["schemaFor"](this.type),t=this.id?.replace(/.*\//,"");return{name:`${a.KR}-c-cluster-resource${e?.attributes?.namespaced?"-namespace":""}-id`,params:{product:a.KR,cluster:this.$rootGetters["clusterId"],resource:this.type,id:t,namespace:this.metadata.namespace}}}get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=i.rk.SECRET,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=i.rk.SECRET,e.name=`${a.KR}-c-cluster-resource`,e}get doneRoute(){return this.doneOverride.name}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${i.rk.SECRET}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}get isSystem(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](s.CU).filter((e=>!0===e.isSystem)).map((e=>e.metadata.name));return t.includes(this.metadata.namespace)}get details(){const e=[{label:this.t("secret.type"),content:this.typeDisplay}];return this.cn&&e.push({label:this.t("secret.certificate.cn"),content:this.plusMoreNames?`${this.cn} ${this.t("secret.certificate.plusMore",{n:this.plusMoreNames})}`:this.cn}),this.issuer&&e.push({label:this.t("secret.certificate.issuer"),content:this.issuer}),this.notAfter&&e.push({label:"Expires",formatter:"Date",formatterOpts:{class:this.dateClass},content:this.notAfter}),e}}},87214:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(76978),i=n(35664),a=n(32766),o=n(24222),s=n(20652);class l extends o["default"]{get availableActions(){return[{action:"restoreSnapshot",enabled:this.hasAction("restore"),icon:"icon icon-refresh",label:this.t("harvester.action.restore")},...super._availableActions]}get canClone(){return!1}restoreSnapshot(e=this){this.$dispatch("promptModal",{resources:e,component:"RestoreSnapshotDialog"})}get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=a.rk.SNAPSHOT,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=a.rk.SNAPSHOT,e.name=`${s.KR}-c-cluster-resource`,e}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${a.rk.SNAPSHOT}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}get volume(){const e=this.$rootGetters["currentProduct"].inStore,t=this?.metadata?.namespace,n=this?.spec?.source?.persistentVolumeClaimName,r=this.$rootGetters[`${e}/byId`](i.YH,`${t}/${n}`);return r}}},82877:function(e,t,n){"use strict";n.r(t),n.d(t,{LVM_DRIVER:function(){return c},default:function(){return u}});var r=n(76978),i=n(63809),a=n(32766),o=n(20652),s=n(35664),l=n(15908);const c="lvm.driver.harvesterhci.io";class u extends i["default"]{get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=a.rk.STORAGE,e.name=`${o.KR}-c-cluster-resource-id`,e}get doneOverride(){const e=(0,r.o8)(this._detailLocation);return delete e.params.namespace,delete e.params.id,e.params.resource=a.rk.STORAGE,e.name=`${o.KR}-c-cluster-resource`,e}get parentLocationOverride(){return this.doneOverride}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${a.rk.STORAGE}"`,{count:1})?.trim()}get longhornVersion(){return this.provisioner===s.lI?(this.parameters||{}).dataEngine||l.DATA_ENGINE_V1:null}get provisionerDisplay(){let e="";return this.provisioner===s.lI&&(e=`harvester.storage.storageClass.longhorn.${this.longhornVersion}.label`),this.provisioner===c&&(e="harvester.storage.storageClass.lvm.label"),e?this.$rootGetters["i18n/t"](e):this.provisioner}get isEncrypted(){return"true"===this.parameters?.encrypted}get isLonghornV1(){return this.provisioner===s.lI&&this.longhornVersion===l.DATA_ENGINE_V1}get isLonghornV2(){return this.provisioner===s.lI&&this.longhornVersion===l.DATA_ENGINE_V2}get longhornV2LVMSupport(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("longhornV2LVMSupport")}get volumeEncryptionFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("volumeEncryption")}get thirdPartyStorageFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("thirdPartyStorage")}}},52528:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});var r=n(20246),i=n.n(r),a=n(95479),o=n.n(a),s=n(2602),l=n(24222),c=n(32766);class u extends l["default"]{get availableActions(){const e=super._availableActions;if("harvester-system/rancher-vcluster"===this.id){const t={action:"goToRancher",enabled:this.spec.enabled,icon:"icon icon-external-link",label:this.t("harvester.addons.rancherVcluster.accessRancher")};e.push(t)}const t={action:"toggleAddon",enabled:!0,icon:this.spec.enabled?"icon icon-pause":"icon icon-play",label:this.spec.enabled?this.t("generic.disable"):this.t("generic.enable")};return e.unshift(t),e}async toggleAddon(){const e=this.spec.enabled;try{if(!this.spec.enabled&&"rancher-vcluster/rancher-vcluster"===this.id){const e=i().load(this.spec.valuesContent);if(!e.hostname||!e.bootstrapPassword)return void this.goToEdit()}this.spec.enabled=!this.spec.enabled,await this.save()}catch(t){this.spec.enabled=e,this.$dispatch("growl/fromError",{title:this.t("harvester.addons.switchFailed",{action:e?this.t("generic.disable"):this.t("generic.enable"),name:this.metadata.name}),err:t},{root:!0})}}goToRancher(){const e=i().load(this.spec.valuesContent);window.open(`https://${e.hostname}`,"_blank")}get rancherHostname(){const e=i().load(this.spec.valuesContent);return`https://${e.hostname}`}get stateColor(){const e=this.stateDisplay;return e?.toLowerCase().includes("enabled")||e?.toLowerCase().includes("success")?"text-success":"Disabled"===e?"text-darker":e?.toLowerCase().includes("ing")?"text-info":e?.toLowerCase().includes("failed")||e?.toLowerCase().includes("error")?"text-error":"text-info"}get stateDisplay(){const e=this?.status?.status;return e?e.startsWith("Addon")?o()(e.replace("Addon","")):e:"Disabled"}get stateDescription(){const e=(this.status?.conditions||[]).find((e=>"OperationFailed"===e.type));return e?.message||super.stateDescription}get parentNameOverride(){return this.$rootGetters["i18n/t"](`typeLabel."${c.rk.ADD_ONS}"`,{count:1})?.trim()}get displayName(){const e="true"===this.metadata?.labels?.[s.r.ADDON_EXPERIMENTAL];return e?`${this.metadata.name} (${this.t("generic.experimental")})`:this.metadata.name}get customValidationRules(){let e=[];return"rancher-monitoring"===this.metadata.name&&(e=[{nullable:!1,path:"spec.valuesContent",validators:["rancherMonitoring"]}]),"rancher-logging"===this.metadata.name&&(e=[{nullable:!1,path:"spec.valuesContent",validators:["rancherLogging"]}]),e}}},46933:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(32766),i=n(24222);class a extends i["default"]{get childParts(){const e=this.$rootGetters["currentProduct"].inStore,t=this.$rootGetters[`${e}/all`](r.rk.BLOCK_DEVICE),n=t.filter((e=>e.status?.deviceStatus?.parentDevice===this.spec?.devPath&&e.spec.nodeName===this.spec.nodeName));return n}get isChildPartProvisioned(){const e=this.childParts.filter((e=>e.isProvisioned))||[];return e.length>0}get provisionPhase(){const e=this?.status?.provisionPhase;let t="",n="";switch(e){case"Provisioned":t="bg-success",n="icon-checkmark";break;case"Unprovisioning":t="bg-warning",n="icon-warning";break;case"NotProvisioned":t="bg-error",n="icon-warning";break;default:break}return{label:e,color:t,icon:n}}get displayName(){return this.status?.deviceStatus?.devPath||this?.metadata?.name}get isFormatting(){const e=this?.status?.conditions||[],t=e.find((e=>"Formatting"===e.type))||{};return"True"===t.status}get isProvisioned(){return this.spec?.fileSystem?.provisioned||this.spec?.provision}cleanForSave(e){return e}}},72193:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(76978),i=n(68851),a=n(24222);class o extends a["default"]{get stateDisplay(){const e=(0,r.Jt)(this,"status.conditions"),t=((0,i.jq)(e,"type","validated")||{}).status;return"True"===t?"Validated":"Not Validated"}}},26422:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(24222),i=n(73883),a=n(14220),o=n(92043);class s extends r["default"]{detailPageHeaderActionOverride(e){if(e===a.YQ)return this.t("harvester.schedule.createTitle")}get _availableActions(){const e=["goToClone"],t=super._availableActions.filter((t=>{if(!e.includes(t.action))return t}));return[{action:"resumeSchedule",enabled:(0,o.TF)(this.state)===i.xj.suspended.label,icon:"icons icon-play",label:this.t("harvester.action.resumeSchedule")},{action:"suspendSchedule",enabled:(0,o.TF)(this.state)===i.xj.active.label,icon:"icons icon-pause",label:this.t("harvester.action.suspendSchedule")},...t]}async suspendSchedule(){try{this.spec.suspend=!0,await this.save()}catch(e){this.spec.suspend=!1,this.$dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,o.ZD)(this.metadata.name)}),err:e},{root:!0})}}async resumeSchedule(){try{this.spec.suspend=!1,await this.save()}catch(e){this.spec.suspend=!0,this.$dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,o.ZD)(this.metadata.name)}),err:e},{root:!0})}}get stateObj(){return this?.metadata?.state||{}}get state(){return!0===this.status?.suspended?i.xj.suspended.label:i.xj.active.label}get stateDescription(){const e=(this.status?.conditions||[]).find((e=>"BackupSuspend"===e.type));return(0,o.TF)(e?.message)||super.stateDescription}get stateBackground(){return(0,i.uU)(this.stateDisplay).replace("text-","bg-")}get stateColor(){return(0,i.uU)(this.state)}get stateDisplay(){return(0,i.ch)(this.state)}}},96214:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(68851),i=n(32766),a=n(50889),o=n(20652),s=n(24222);class l extends s["default"]{get _availableActions(){const e=["cloneYaml","download","goToEditYaml","goToViewYaml","goToViewConfig","promptRemove"],t=a.gh[this.id];let n=super._availableActions;(t?.readOnly||this.fromEnv)&&e.push("goToEdit"),n=n.filter((t=>!e.includes(t.action)));const r=n.find((e=>"goToEdit"===e.action));r&&(r.label=this.t("advancedSettings.edit.label"));const o=this.$getters["schemaFor"](i.rk.UPGRADE),s=!!o?.collectionMethods.find((e=>["post"].includes(e.toLowerCase())));if(this.id===a.EP.SERVER_VERSION&&s){const e=this.$getters["all"](i.rk.UPGRADE).find((e=>e.isLatestUpgrade));n.unshift({action:"goToAirgapUpgrade",enabled:!0,icon:"icon icon-refresh",label:this.t("harvester.upgradePage.upgrade"),disabled:!!e&&!e?.isUpgradeSucceeded})}return n}goToAirgapUpgrade(){const e=this.currentRouter();e.push({name:`${o.KR}-c-cluster-airgapupgrade`,params:{cluster:this.$rootGetters["currentCluster"].id,product:"harvester"}})}get customValue(){if(this.metadata.name===a.EP.STORAGE_NETWORK)try{return JSON.stringify(JSON.parse(this.value),null,2)}catch(e){}return!1}get customFormatter(){if(this.metadata.name===a.EP.STORAGE_NETWORK)try{return JSON.stringify(JSON.parse(this.value),null,2),"json"}catch(e){}return!1}get backupTargetIsEmpty(){return!this.value}get errMessage(){const e=(0,r.jq)(this?.status?.conditions||[],"type","configured")||{};return!0===this.metadata?.state?.error?this.metadata.state.message:"False"===e?.status&&e.message}get valueOrDefaultValue(){return this.value||this.default}get currentVersion(){return this.value||""}get displayValue(){return"backup-target"===this.id?this.parseValue?.endpoint||" ":null}get parseValue(){let e={};try{e=JSON.parse(this.value)}catch(t){e=JSON.parse(this.default)}return e}get isS3(){return"s3"===this.parseValue.type}get isNFS(){return"nfs"===this.parseValue.type}get customValidationRules(){const e=this.id,t=[];switch(e){case"backup-target":t.push({nullable:!1,path:"value",type:"string",validators:["backupTarget"]});break;case"ntp-servers":t.push({nullable:!0,path:"value",validators:["ntpServers"]});break}return t}}},25661:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(24222);class i extends r["default"]{get bundleState(){const e=this?.status?.state;return e}get bundleMessage(){const e=this?.metadata?.state;return!!e.error&&e?.message}get precent(){return this?.status?.progress/100||0}get customValidationRules(){return[{nullable:!1,path:"spec.description",required:!0,translationKey:"harvester.modal.bundle.description"}]}}},39334:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var r=n(20246),i=n.n(r),a=n(35664),o=n(73883),s=n(2602),l=n(24222);class c extends l["default"]{get isLatestUpgrade(){return"true"===this?.metadata?.labels?.[s.r.LATEST_UPGRADE]}get isUpgradeFailed(){return"Failed"===this?.metadata?.labels?.[s.r.UPGRADE_STATE]}get isUpgradeSucceeded(){return"Succeeded"===this?.metadata?.labels?.[s.r.UPGRADE_STATE]}get hasReadMessage(){return"true"===this?.metadata?.labels?.[s.r.REAY_MESSAGE]}get repoInfo(){const e=this?.status?.repoInfo;if(e)try{return i().load(e)}catch(t){return!1}return!1}get stateDisplay(){const e=this?.status?.conditions||[],t=e.find((e=>"Completed"===e.type)),n=t?.status;return"True"===n?"Success":"False"===n?"Fail":"on-going"}get stateColor(){return(0,o.uU)(this.stateDisplay)}get nodes(){return this.$rootGetters["harvester/all"](a.NW)}get upgradeImage(){return this?.status?.imageID}get upgradeMessage(){const e=[],t=this?.status?.nodeStatuses||{},n=this?.status?.conditions||[];for(const r in t){const n=t[r]?.state;t[r]&&"Succeeded"!==n&&"succeeded"!==n&&e.push({id:r,message:`The node ${r} is ${t[r]?.state}`})}for(let r=0;r<n.length;r++){const t=n[r].type;"systemServiceUpgraded"===t&&"True"!==n[r]?.status&&e.push({id:"systemService",message:"The systemService is upgrading"})}return this.metadata?.state?.message&&this.metadata?.state?.error&&e.push({id:"message",message:`${this.metadata.state.message}`}),e}get createRepo(){const e=this?.status?.conditions||[],t=e.find((e=>"RepoReady"===e.type)),n="True"===t?.status;return{isReady:n,message:t?.message||t?.reason}}get overallMessage(){const e=this?.status?.conditions||[],t=e.find((e=>"Completed"===e.type)),n="False"===t?.status,r=t?.message||t?.reason;return n?r:""}get upgradeImageMessage(){const e=this?.status?.conditions||[],t=e.find((e=>"ImageReady"===e.type)),n="True"===t?.status,r=t?.message||t?.reason;return n?"":r}get nodeUpgradeMessage(){const e=[],t=this?.status?.nodeStatuses||{};for(const n in t){const r=t[n]?.state,i=t[n]?.message;let a=0;"Upgrading"===r?a=50:"Succeeded"!==r&&"succeeded"!==r||(a=100),e.push({name:n,state:r,percent:a,message:i})}for(const n of this.nodes){const t=e.find((e=>e.name===n.id));t||e.push({name:n.id,state:"Pending",percent:0})}return e}get nodeTotalPercent(){let e=0;for(let r=0;r<this.nodeUpgradeMessage.length;r++)e+=this.nodeUpgradeMessage[r].percent;e=Math.floor(e/this.nodeUpgradeMessage.length);const t=this?.status?.conditions||[],n=t.find((e=>"NodesUpgraded"===e.type));return 100!==e||n||(e=99),e}get sysServiceUpgradeMessage(){let e=0,t="Pending";const n=[],r=this?.status?.conditions||[];for(let i=0;i<r.length;i++){const a=r[i].type;"SystemServicesUpgraded"===a&&("True"===r[i].status?(e=100,t="Succeeded"):e=50,n.push({name:"system services",state:t,percent:e,message:r[i]?.message}))}return 0===n.length&&n.push({name:"system services",state:t,percent:e}),n}get totalPercent(){const e=this.nodeTotalPercent*this.nodeUpgradeMessage.length,t=this.sysServiceUpgradeMessage?.[0].percent;return Math.floor((e+t)/(this.nodeUpgradeMessage.length+1))}}},25418:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var r=n(76978),i=n(52225),a=n.n(i),o=n(68851),s=n(32766),l=n(24222);class c extends l["default"]{get canStartedDownload(){const e=(0,r.Jt)(this,"status.conditions"),t=((0,o.jq)(e,"type","DownloadReady")||{}).status;return"True"===t}downloadLog(e){const t=a()(window.history.href),n=this.$rootGetters["clusterId"],r=`/k8s/clusters/${n}`;this.$rootGetters["isMultiCluster"]?window.location.href=`${t.origin}${r}/v1/harvester/${s.rk.UPGRADE_LOG}s/${this.id}/download?archiveName=${e}`:window.location.href=`${t.origin}/v1/harvester/${s.rk.UPGRADE_LOG}s/${this.id}/download?archiveName=${e}`}fileIsReady(e){const t=(this.status?.archives||{})[e];return!0===t?.ready||t?.reason}downloadArchivesStatus(e){return(this.status?.archives||{})[e]?.reason}get latestArchivesFileName(){const e=this.status?.archives||{},t=`${this.metadata.name}-archive-`,n=Object.keys(e).map((e=>e.replace(t,""))),r=n.sort(((e,t)=>{const n=e.replace(/(\d{2})-(\d{2})-(\d{2})T(\d{2})-(\d{2})-(\d{2})Z/,"$1-$2-$3T$4:$5:$6Z"),r=t.replace(/(\d{2})-(\d{2})-(\d{2})T(\d{2})-(\d{2})-(\d{2})Z/,"$1-$2-$3T$4:$5:$6Z");return Date.parse(r)-Date.parse(n)})).map((e=>`${t}${e}`));return r[0]}}},64778:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return h}});var r=n(76978),i=n(68851),a=n(73883),o=n(2602),s=n(14220),l=n(32766),c=n(20652),u=n(41837),d=n(24222);class h extends d["default"]{detailPageHeaderActionOverride(e){const t=this.currentRoute();if(e===s.YQ)return t.params.resource===l.rk.BACKUP?this.t("harvester.backup.title"):this.t("harvester.vmSnapshot.title")}get detailLocation(){const e=(0,r.o8)(this._detailLocation);return e.params.resource=l.rk.BACKUP,e}get doneOverride(){const e=this.currentRoute(),t=(0,r.o8)(this._detailLocation);return delete t.params.namespace,delete t.params.id,t.params.resource=e.params.resource,t.name=`${c.KR}-c-cluster-resource`,t}get parentNameOverride(){const e=this.currentRoute();return this.$rootGetters["i18n/t"](`typeLabel."${e.params.resource}"`,{count:1})?.trim()}get parentLocationOverride(){return this.doneOverride}get _availableActions(){const e=["goToEdit","cloneYaml","goToClone","download"],t=super._availableActions.filter((t=>{if(!e.includes(t.action))return t})),n=this.$getters["schemaFor"](l.rk.VM);let r=!0;return n&&!n?.collectionMethods.find((e=>["post"].includes(e.toLowerCase())))&&(r=!1),[{action:"restoreExistingVM",enabled:r&&this.attachVmExisting&&this?.status?.readyToUse,icon:"icons icon-refresh",label:this.t("harvester.action.restoreExistingVM")},{action:"restoreNewVM",enabled:r&&this?.status?.readyToUse,icon:"icons icon-backup",label:this.t("harvester.action.restoreNewVM")},...t]}restoreExistingVM(e=this){const t=this.currentRouter(),n=e.spec.type===u.a.BACKUP?l.rk.BACKUP:l.rk.VM_SNAPSHOT;t.push({name:`${c.KR}-c-cluster-resource-create`,params:{resource:n},query:{restoreMode:"existing",resourceName:e.name}})}restoreNewVM(e=this){const t=this.currentRouter(),n=e.spec.type===u.a.BACKUP?l.rk.BACKUP:l.rk.VM_SNAPSHOT;t.push({name:`${c.KR}-c-cluster-resource-create`,params:{resource:n},query:{restoreMode:"new",resourceName:e.name}})}get state(){let e="Pending";const t=(0,r.Jt)(this,"status.conditions"),n="True"===(0,i.jq)(t,"type","InProgress")?.status,a="True"===(0,i.jq)(t,"type","Ready")?.status;return this?.status?.readyToUse?e="Ready":n?e="Progressing":a||(e="error"),e}get stateColor(){const e=this.state;return(0,a.uU)(e)}get sourceSchedule(){return this.metadata?.annotations?.[o.r.SVM_BACKUP_ID]}get attachVM(){return this.spec.source.name}get backupContentName(){return this?.status?.virtualMachineBackupContentName||""}get backupProgress(){return{type:u.a.BACKUP,percentage:void 0!==this.status?.progress||this.status?.readyToUse?this.status?.progress:0,details:{volumes:this.status?.volumeBackups}}}get backupTarget(){return this?.status?.backupTarget?.endpoint||""}get attachVmExisting(){const e=this.$rootGetters["harvester/all"](l.rk.VM);return!!e.find((e=>e.metadata.name===this.attachVM))}remove(){const e={...arguments};return e.params={propagationPolicy:"Foreground"},this._remove(e)}}},38287:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return v}});var r=n(2841),i=n(2602),a=n(76978),o=n(95799),s=n(92043),l=n(73883),c=n(14220),u=n(32766),d=n(20652),h=n(24222),p=n(66905);const{CSI_PROVISIONER_SECRET_NAME:f,CSI_PROVISIONER_SECRET_NAMESPACE:m}=p.Et;function g(){function e(e,t=[]){const n=Array.isArray((0,a.Jt)(this,"status.conditions"))?this.status.conditions:t;return n.find((t=>t.type===e))}const t=e.call(this,"Initialized"),n=e.call(this,"Imported"),r=100===this.status?.progress;return![t?.status,n?.status].includes("False")&&(r&&!0)}class v extends h["default"]{get availableActions(){let e=super._availableActions;const t=["goToEditYaml"];e=e.filter((e=>!t.includes(e.action)));const n=this.$getters["schemaFor"](u.rk.VM);let r=!0;return n&&!n?.collectionMethods.find((e=>["post"].includes(e.toLowerCase())))&&(r=!1),[{action:"createFromImage",enabled:r,icon:"icon icon-circle-plus",label:this.t("harvester.action.createVM"),disabled:!this.isReady},{action:"encryptImage",enabled:this.volumeEncryptionFeatureEnabled&&!this.isEncrypted,icon:"icon icon-lock",label:this.t("harvester.action.encryptImage"),disabled:!this.isReady},{action:"decryptImage",enabled:this.volumeEncryptionFeatureEnabled&&this.isEncrypted,icon:"icon icon-unlock",label:this.t("harvester.action.decryptImage"),disabled:!this.isReady},{action:"download",enabled:this.links?.download,icon:"icon icon-download",label:this.t("asyncButton.download.action")},...e]}encryptImage(){const e=this.currentRouter();e.push({name:`${d.KR}-c-cluster-resource-create`,params:{resource:u.rk.IMAGE},query:{image:JSON.stringify({metadata:{name:this.metadata.name,namespace:this.metadata.namespace}}),fromPage:u.rk.IMAGE,sourceType:"clone",cryptoOperation:"encrypt"}})}decryptImage(){const e=this.currentRouter();e.push({name:`${d.KR}-c-cluster-resource-create`,params:{resource:u.rk.IMAGE},query:{image:JSON.stringify({metadata:{name:this.metadata.name,namespace:this.metadata.namespace}}),fromPage:u.rk.IMAGE,sourceType:"clone",cryptoOperation:"decrypt"}})}applyDefaults(e=this,t){t!==c.dT&&(this.metadata["labels"]={[i.r.OS_TYPE]:"",[i.r.IMAGE_SUFFIX]:""},this.metadata["annotations"]={[i.r.STORAGE_CLASS]:""})}createFromImage(){const e=this.currentRouter();e.push({name:`${d.KR}-c-cluster-resource-create`,params:{resource:u.rk.VM},query:{image:this.id,fromPage:u.rk.IMAGE}})}cleanForNew(){this.$dispatch("cleanForNew",this),delete this.spec.displayName}get nameDisplay(){return this.spec?.displayName}get isOSImage(){return"True"===this?.metadata?.annotations?.[i.r.OS_UPGRADE_IMAGE]}get isReady(){return g.call(this)}get stateDisplay(){const e=this.getStatusConditionOfType("Initialized"),t=this.getStatusConditionOfType("Imported");return"Unknown"===t?.status?"restore"===this.spec.sourceType?"Restoring":"download"===this.spec.sourceType?"Downloading":"upload"===this.spec.sourceType?this.uploadError?"Failed":"Uploading":"Exporting":e?.message||t?.message?"Failed":(0,l.ch)(this.metadata.state.name)}get encryptionSecret(){const e=this.spec.storageClassParameters[m],t=this.spec.storageClassParameters[f];return e&&t?`${e}/${t}`:""}get isEncrypted(){return"clone"===this.spec.sourceType&&"encrypt"===this.spec.securityParameters?.cryptoOperation&&!!this.spec.securityParameters?.sourceImageName&&!!this.spec.securityParameters?.sourceImageNamespace}get displayNameWithNamespace(){return`${this.metadata.namespace}/${this.spec.displayName}`}get imageStorageClass(){return this?.metadata?.annotations[i.r.STORAGE_CLASS]||""}get imageMessage(){if(this.uploadError)return(0,s.TF)(this.uploadError);const e=this?.status?.conditions||[],t=e.find((e=>"Initialized"===e.type)),n=e.find((e=>"Imported"===e.type)),r=e.find((e=>"RetryLimitExceeded"===e.type)),i=t?.message||n?.message||r?.message;return(0,s.TF)(i)}get stateBackground(){return(0,l.uU)(this.stateDisplay).replace("text-","bg-")}get imageSource(){return(0,a.Jt)(this,"spec.sourceType")||"download"}get progress(){return this?.status?.progress||0}get annotationsToIgnoreRegexes(){return[r.tC].concat(r.S5)}get downSize(){const e=this.status?.size;return e?(0,o.Mo)(e,{increment:1024,maxPrecision:2,suffix:"B",firstSuffix:"B"}):"-"}get virtualSize(){const e=this.status?.virtualSize;return e?(0,o.Mo)(e,{increment:1024,maxPrecision:2,suffix:"B",firstSuffix:"B"}):"-"}getStatusConditionOfType(e,t=[]){const n=Array.isArray((0,a.Jt)(this,"status.conditions"))?this.status.conditions:t;return n.find((t=>t.type===e))}get stateObj(){const e=(0,a.o8)(this.metadata?.state),t=this.getStatusConditionOfType("Initialized"),n=this.getStatusConditionOfType("Imported");return([t?.status,n?.status].includes("False")||this.uploadError)&&(e.error=!0),e}get stateDescription(){return this.imageMessage}get displayName(){return this.spec?.displayName}get storageClassName(){return this.status?.storageClassName||""}get uploadImage(){return async e=>{const t=new FormData;t.append("chunk",e);try{this.$ctx.commit("harvester-common/uploadStart",this.metadata.name,{root:!0}),await this.doAction("upload",t,{headers:{"Content-Type":"multipart/form-data","File-Size":e.size},params:{size:e.size}})}catch(n){return this.$ctx.commit("harvester-common/uploadError",{name:this.name,message:n.message},{root:!0}),this.$ctx.commit("harvester-common/uploadEnd",this.metadata.name,{root:!0}),Promise.reject(n)}this.$ctx.commit("harvester-common/uploadEnd",this.metadata.name,{root:!0})}}get uploadError(){return this.$rootGetters["harvester-common/uploadingImageError"](this.name)}get imageSuffix(){return this.metadata?.labels?.[i.r.IMAGE_SUFFIX]}get imageOSType(){return this.metadata?.labels?.[i.r.OS_TYPE]}get customValidationRules(){const e=[];if("download"===this.imageSource){const t={nullable:!1,path:"spec.url",validators:["imageUrl"]},n={nullable:!1,path:"spec.url",required:!0,translationKey:"harvester.image.url"};e.push(t,n)}if("upload"===this.imageSource){const t={nullable:!1,path:"metadata.annotations",validators:["fileRequired"]};e.push(t)}if(this.spec?.checksum?.length){const t={path:"spec.checksum",validators:["hashSHA512"]};e.push(t)}return[{nullable:!1,path:"spec.displayName",required:!0,minLength:1,maxLength:63,translationKey:"generic.name"},...e]}get volumeEncryptionFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("volumeEncryption")}get thirdPartyStorageFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("thirdPartyStorage")}download(){window.location.href=this.links.download}}},82680:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(24222);class i extends r["default"]{get isComplete(){return this?.status?.complete||!1}get pvcNames(){const e=this?.status?.restores||[],t=e.map((e=>e?.persistentVolumeClaimSpec?.name));return t}get customValidationRules(){const e=this.spec?.newVM,t=[{nullable:!1,path:"spec.target.name",required:!0,minLength:1,maxLength:63,translationKey:"harvester.fields.virtualName"},{nullable:!1,path:"spec.virtualMachineBackupName",required:!0,translationKey:"harvester.backup.restore.backup"}];return e||t.push({path:"spec.deletionPolicy",required:!0,type:"string",translationKey:"harvester.backup.restore.deletePreviousVolumes"}),t}}},61746:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(14220),i=n(32766),a=n(20652),o=n(24222);class s extends o["default"]{get availableActions(){const e=["goToEdit","cloneYaml","goToClone","goToEditYaml","download"],t=super._availableActions.filter((t=>{if("remove"===t.altAction&&(t.bulkable=!1),!e.includes(t.action))return t})),n=this.$getters["schemaFor"](i.rk.VM);let r=!0;return n&&!n?.collectionMethods.find((e=>["post"].includes(e.toLowerCase())))&&(r=!1),[{action:"createFromTemplate",enabled:r,icon:"icon icon-spinner",label:this.t("harvester.action.createVM")},{action:"addVersion",enabled:this.canCreate,icon:"icon icon-fw icon-circle-plus",label:this.t("harvester.action.addTemplateVersion")},...t]}createFromTemplate(){const e=this.currentRouter();e.push({name:`${a.KR}-c-cluster-resource-create`,params:{resource:i.rk.VM},query:{templateId:this.id,versionId:this.spec.defaultVersionId}})}get cpuPinningFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("cpuPinning")}addVersion(e={}){const t=this.currentRouter();t.push({name:`${a.KR}-c-cluster-resource-create`,params:{resource:i.rk.VM_VERSION},query:{[r.g]:r.YQ,templateId:this.id}})}get defaultVersion(){return this.status?.defaultVersion}}},96608:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p}});var r=n(45250),i=n(14220),a=n(2602),o=n(68851),s=n(76978),l=n(73883),c=n(92043),u=n(20652),d=n(32766),h=n(24222);class p extends h["default"]{get availableActions(){let e=super._availableActions;const t=["goToClone","cloneYaml","goToViewConfig","goToEditYaml","goToViewYaml"];e=e.filter((e=>{if(!t.includes(e.action))return e}));const n=this.$getters["schemaFor"](d.rk.VM);let r=!0;return n&&!n?.collectionMethods.find((e=>["post"].includes(e.toLowerCase())))&&(r=!1),[{action:"launchFromTemplate",icon:"icon icon-spinner",disabled:!r||!this.isReady,label:this.t("harvester.action.launchFormTemplate")},{action:"cloneTemplate",enabled:this.currentTemplate?.canCreate,icon:"icon icon-fw icon-edit",label:this.t("harvester.action.modifyTemplate")},{action:"setDefaultVersion",enabled:this.currentTemplate?.canCreate,icon:"icon icon-fw icon-checkmark",label:this.t("harvester.action.setDefaultVersion")},{action:"goToViewConfig",label:this.t("action.view"),icon:"icon icon-edit"},...e]}applyDefaults(){const e={vm:{metadata:{annotations:{[a.r.VOLUME_CLAIM_TEMPLATE]:"[]"}},spec:{runStrategy:"RerunOnFailure",template:{metadata:{annotations:{}},spec:{domain:{machine:{type:""},cpu:{cores:null,sockets:1,threads:1},devices:{inputs:[{bus:"usb",name:"tablet",type:"tablet"}],interfaces:[{masquerade:{},model:"virtio",name:"default"}],disks:[]},resources:{limits:{memory:null,cpu:""}},features:{acpi:{enabled:!0}}},evictionStrategy:"LiveMigrateIfPossible",hostname:"",networks:[{name:"default",pod:{}}],volumes:[],affinity:{}}}}}};this["spec"]=e}get canDelete(){return this.hasLink("remove")&&this.$rootGetters["type-map/optionsFor"](this.type).isRemovable&&!this.isDefaultVersion}get template(){return this.$rootGetters["harvester/all"](d.rk.VM_TEMPLATE).find((e=>e.id===this.spec.templateId))}get isReady(){const e=(0,s.Jt)(this,"status.conditions"),t=(0,o.jq)(e,"type","ready");return!t||"True"===t?.status}get stateDisplay(){return this.isReady?"Active":"Not Ready"}get stateColor(){const e=this.stateDisplay;return(0,l.uU)(e)}get version(){return this?.status?.version}get templates(){return this.$rootGetters["harvester/all"](d.rk.VM_TEMPLATE)}get machineType(){return this.vm?.spec?.template?.spec?.domain?.machine?.type||""}get templateId(){return this.spec.templateId}launchFromTemplate(){const e=this.currentTemplate,t=e.id,n=this.id,r=this.currentRouter();r.push({name:`${u.KR}-c-cluster-resource-create`,params:{resource:d.rk.VM},query:{templateId:t,versionId:n}})}cloneTemplate(e={}){const t=this.detailLocation;t.query={...t.query,[i.g]:i.G5,[i.AS]:i.xz,...e},this.currentRouter().push(t)}goToViewConfig(e={}){const t=this.detailLocation;t.query={...t.query,[i.g]:i.nW,[i.AS]:i.au,templateId:this.templateId,...e},this.currentRouter().push(t)}get currentTemplate(){return(0,r.find)(this.templates,(e=>e.id===this.templateId))}async setDefaultVersion(e={}){const t=this.currentTemplate;t.spec.defaultVersionId=this.id,await t.save()}get cpuPinningFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("cpuPinning")}get defaultVersion(){const e=this.$rootGetters["harvester/all"](d.rk.VM_TEMPLATE),t=e.find((e=>this.templateId===e.id));return t?.status?.defaultVersion}get isDefaultVersion(){return this.defaultVersion===this?.status?.version}get customValidationRules(){const e=[];return e}get instanceLabels(){const e=this.spec?.vm?.spec?.template?.metadata?.labels||{};return(0,r.omitBy)(e,((e,t)=>(0,c.HV)(t,a.l)))}setInstanceLabels(e){this.spec?.vm?.spec?.template?.metadata?.labels||(0,s.hZ)(this,"spec.vm.spec.template.metadata.labels",{});const t=this.spec.vm.spec.template.metadata.labels||{},n=(0,r.pickBy)(t,((e,t)=>(0,c.HV)(t,a.l)));this.spec.vm.spec.template.metadata["labels"]={...n,...e}}get tpmPersistentStateFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("tpmPersistentState")}get efiPersistentStateFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("efiPersistentState")}}},43842:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(25184),i=n(2841),a=n(41837);const{UNTAGGED:o}=a.A;class s extends r.A{applyDefaults(){const e=this.spec||{config:JSON.stringify({cniVersion:"0.3.1",name:"",type:"bridge",bridge:"",promiscMode:!0,vlan:"",ipam:{}})};this.spec=e}get parseConfig(){try{return JSON.parse(this.spec.config)||{}}catch(e){return{}}}get isIpamStatic(){return"static"===this.parseConfig.ipam?.type}get clusterNetwork(){return this?.metadata?.labels?.[i.rk.CLUSTER_NETWORK]}get vlanType(){const e=this.metadata?.labels||{},t=e[i.rk.NETWORK_TYPE];return t}get vlanId(){return this.vlanType===o?"N/A":this.parseConfig.vlan}get customValidationRules(){const e=[{nullable:!1,path:"metadata.name",required:!0,minLength:1,maxLength:63,translationKey:"harvester.fields.name"}];return e}get connectivity(){const e=this.metadata?.annotations||{},t=e[i.rk.NETWORK_ROUTE];let n={};if(this.vlanType===o)return"N/A";try{n=JSON.parse(t||"{}")}catch{return"invalid"}const r=n.connectivity;return"false"===r?"inactive":"true"===r?"active":r}}},50784:function(e,t,n){"use strict";n.r(t),n.d(t,{OFF:function(){return b},default:function(){return H}});var r=n(20246),i=n(45250),a=n(20652),o=n(73883),s=n(35664),l=n(68851),c=n(95799),u=n(76978),d=n(2602),h=n(14220),p=n(92043),f=n(66490),m=n(41837),g=n(32766),v=n(24222);const b="Off",y="The virtual machine is waiting for resources to become available.",w="VM error",E="Stopping",_="Unschedulable",S="Waiting",k="Not Ready",x="AgentConnected",A="Paused",N="This VM has been paused. If you wish to unpause it, please click the Unpause button below. For further details, please check with your system administrator.",C="POD_NOT_SCHEDULABLE",T="POD_CONTAINER_FAILING",R="POD_FAILED",O="POD_CRASHLOOP_BACKOFF",I="POD_STATUS_UNKNOWN",L=[C,T,R,O,I],D="POD_STATUS_COMPLETED",P="POD_STATUS_SUCCEEDED",M="POD_STATUS_RUNNING",B=[M,D,P],F={Always:"Always",RerunOnFailure:"RerunOnFailure",Halted:"Halted",Manual:"Manual"},$={Start:"Start",Stop:"Stop"},U="This virtual machine will start shortly. Preparing storage, networking, and compute resources.",j={Pending:"Pending",Scheduling:"Scheduling",Scheduled:"Scheduled",Running:"Running",Succeeded:"Succeeded",Failed:"Failed",Unknown:"Unknown"};let V;const K=["pod has unbound immediate PersistentVolumeClaims"];class H extends v["default"]{get availableActions(){let e=super._availableActions;if(this.longhornV2Volumes.length>0)e=e.filter((e=>"goToClone"!==e.action));else{const t=e.find((e=>"goToClone"===e.action));t&&(t.action="goToCloneVM")}return[{action:"stopVM",altAction:"altStopVM",enabled:!!this.actions?.stop,icon:"icon icon-close",label:this.t("harvester.action.stop"),bulkable:!0,bulkAction:"stopVM"},{action:"forceStop",enabled:!!this.actions?.forceStop,icon:"icon icon-close",label:this.t("harvester.action.forceStop"),bulkable:!0},{action:"pauseVM",altAction:"altPauseVM",enabled:!!this.actions?.pause,icon:"icon icon-pause",label:this.t("harvester.action.pause")},{action:"unpauseVM",enabled:!!this.actions?.unpause,icon:"icon icon-spinner",label:this.t("harvester.action.unpause")},{action:"restartVM",enabled:!!this.actions?.restart,icon:"icon icon-refresh",label:this.t("harvester.action.restart"),bulkable:!0},{action:"softrebootVM",enabled:!!this.actions?.softreboot,icon:"icon icon-pipeline",label:this.t("harvester.action.softreboot")},{action:"startVM",enabled:!!this.actions?.start,icon:"icon icon-play",label:this.t("harvester.action.start"),bulkable:!0},{action:"backupVM",enabled:!!this.actions?.backup,icon:"icon icon-backup",label:this.t("harvester.action.backup")},{action:"takeVMSnapshot",enabled:!!this.actions?.backup&&!this.longhornV2Volumes.length,icon:"icon icon-snapshot",label:this.t("harvester.action.vmSnapshot")},{action:"editVMQuota",enabled:!!this.actions?.updateResourceQuota&&!!this.actions.deleteResourceQuota,icon:"icon icon-storage",label:this.t("harvester.action.editVMQuota")},{action:"createSchedule",enabled:this.schedulingVMBackupFeatureEnabled,icon:"icon icon-history",label:this.t("harvester.action.createSchedule")},{action:"restoreVM",enabled:!!this.actions?.restore,icon:"icon icon-backup-restore",label:this.t("harvester.action.restore")},{action:"ejectCDROM",enabled:!!this.actions?.ejectCdRom,icon:"icon icon-delete",label:this.t("harvester.action.ejectCDROM")},{action:"migrateVM",enabled:!!this.actions?.migrate,icon:"icon icon-copy",label:this.t("harvester.action.migrate")},{action:"abortMigrationVM",enabled:!!this.actions?.abortMigration,icon:"icon icon-close",label:this.t("harvester.action.abortMigration")},{action:"addHotplug",enabled:!!this.actions?.addVolume,icon:"icon icon-plus",label:this.t("harvester.action.addHotplug")},{action:"createTemplate",enabled:!!this.actions?.createTemplate,icon:"icon icon-copy",label:this.t("harvester.action.createTemplate")},{action:"openLogs",enabled:!!this.podResource,icon:"icon icon-fw icon-chevron-right",label:this.t("harvester.action.viewlogs"),total:1},...e]}get productInStore(){return V||(V=this.$rootGetters["currentProduct"].inStore),V}applyDefaults(e=this,t){const n={runStrategy:"RerunOnFailure",template:{metadata:{annotations:{}},spec:{domain:{machine:{type:""},cpu:{cores:null,sockets:1,threads:1},devices:{inputs:[{bus:"usb",name:"tablet",type:"tablet"}],interfaces:[{masquerade:{},model:"virtio",name:"default"}],disks:[]},resources:{limits:{memory:null,cpu:""}},features:{acpi:{enabled:!0}}},evictionStrategy:"LiveMigrateIfPossible",hostname:"",networks:[{name:"default",pod:{}}],volumes:[],affinity:{}}}};t!==h.dT&&(this.metadata["annotations"]={[d.r.VOLUME_CLAIM_TEMPLATE]:"[]"},this["spec"]=n)}cleanForNew(){this.$dispatch("cleanForNew",this),this.spec.template.spec.hostname="";const e=this.spec.template.spec.domain.devices?.interfaces||[];for(let n=0;n<e.length;n++)e[n].macAddress&&(e[n].macAddress="");const t=this.volumeClaimTemplates.map((e=>(e?.spec?.dataSource&&delete e.spec.dataSource,e)));this.metadata.annotations[d.r.VOLUME_CLAIM_TEMPLATE]=JSON.stringify(t)}restartVM(){this.doActionGrowl("restart",{})}softrebootVM(){this.doActionGrowl("softreboot",{})}openLogs(){this.$dispatch("wm/open",{id:`${this.id}-logs`,label:this.nameDisplay,icon:"file",component:"ContainerLogs",attrs:{pod:this.podResource,initialContainer:this.podResource.metadata.annotations["kubectl.kubernetes.io/default-container"]}},{root:!0})}createSchedule(e=this){const t=this.currentRouter();t.push({name:`${a.KR}-c-cluster-resource-create`,params:{resource:g.rk.SCHEDULE_VM_BACKUP},query:{vmNamespace:this.metadata.namespace,vmName:this.metadata.name}})}backupVM(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterBackupModal"})}takeVMSnapshot(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterVMSnapshotDialog"})}editVMQuota(e=this){this.$dispatch("promptModal",{resources:e,snapshotSizeQuota:this.snapshotSizeQuota,component:"HarvesterQuotaDialog"})}unplugVolume(e){const t=this;this.$dispatch("promptModal",{resources:t,diskName:e,component:"HarvesterUnplugVolume"})}restoreVM(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterRestoreDialog"})}get machineType(){return this.spec?.template?.spec?.domain?.machine?.type||""}get realAttachNodeName(){const e=this.$getters["byId"](g.rk.VMI,this.id),t=e?.status?.nodeName,n=this.$getters["byId"](s.NW,t);return n?.nameDisplay||""}get nodeName(){const e=this.$getters["byId"](g.rk.VMI,this.id),t=e?.status?.nodeName,n=this.$getters["byId"](s.NW,t);return n?.id}pauseVM(e=this){this.$dispatch("promptModal",{resources:e,action:"pause",warningMessageKey:"dialog.confirmExecution.pause.message",component:"ConfirmExecutionDialog"})}altPauseVM(){this.doActionGrowl("pause",{})}goToCloneVM(e=this){this.$dispatch("promptModal",{resources:e,component:"CloneVmDialog"})}unpauseVM(){this.doActionGrowl("unpause",{})}stopVM(e=this){this.$dispatch("promptModal",{resources:e,action:"stop",warningMessageKey:"dialog.confirmExecution.stop.message",component:"ConfirmExecutionDialog"})}altStopVM(){this.doActionGrowl("stop",{})}forceStop(){this.doActionGrowl("forceStop",{})}startVM(){this.doActionGrowl("start",{})}migrateVM(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterMigrationDialog"})}ejectCDROM(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterEjectCDROMDialog"})}abortMigrationVM(){this.doActionGrowl("abortMigration",{})}createTemplate(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterCloneTemplate"})}addHotplug(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterAddHotplugModal"})}get networksName(){const e=this.spec.template.spec.domain.devices?.interfaces||[];return e.map((e=>e.name))}get isOff(){return this.isVMExpectedRunning?null:{status:b}}get isWaitingForVMI(){return this&&this.isVMExpectedRunning&&!this.isVMCreated?{status:S,message:y}:null}get cpuPinningFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("cpuPinning")}get isCpuPinning(){return!0===this.spec?.template?.spec?.domain?.cpu?.dedicatedCpuPlacement}get isVMExpectedRunning(){if(!this?.spec)return!1;const{running:e=null,runStrategy:t=null}=this.spec,n=this?.status?.conditions||[];if(e)return!0;if(null!==t){let e;switch(t){case F.Halted:return!1;case F.Always:return!0;case F.RerunOnFailure:return!("ErrorUnschedulable"!==this.status?.printableStatus||!n.find((e=>e.message&&e.message.includes(K))))||["Starting","Running"].includes(this.status?.printableStatus);case F.Manual:default:return e=new Set((this.status?.stateChangeRequests||[]).map((e=>e?.action))),!e.has($.Stop)&&(!!e.has($.Start)||(0===e.size?["Starting","Running"].includes(this.status?.printableStatus):this.isVMCreated))}}return!1}get podResource(){const e=this.productInStore,t=this.$rootGetters[`${e}/byId`](g.rk.VMI,this.id),n=this.$rootGetters[`${e}/all`](s.Sm);return n.find((e=>t?.metadata?.name&&t?.metadata?.name===e.metadata?.ownerReferences?.[0].name))}get isPaused(){const e=this.vmi?.status?.conditions||[],t=e.filter((e=>e.type===A)).length>0;return t?{status:A,message:N}:null}get isVMError(){const e=(0,u.Jt)(this,"status.conditions"),t=(0,l.jq)(e,"type","Failure");return t?{status:w,detailedMessage:t.message}:null}get nsResourceQuota(){const e=this.productInStore,t=this.$rootGetters[`${e}/all`](g.rk.RESOURCE_QUOTA);return t.find((e=>e.namespace===this.metadata.namespace))}get snapshotSizeQuota(){return this.nsResourceQuota?.spec?.snapshotLimit?.vmTotalSnapshotSizeQuota?.[this.metadata.name]}get vmi(){const e=this.productInStore,t=this.$rootGetters[`${e}/all`](g.rk.VMI);return t.find((e=>e.id===this.id))}get volumes(){const e=this.$rootGetters[`${this.productInStore}/all`](s.YH),t=this.spec.template.spec.volumes?.map((e=>e.persistentVolumeClaim?.claimName)).filter((e=>!!e))||[];return e.filter((e=>t.includes(e.metadata.name)))}get lvmVolumes(){return this.volumes.filter((e=>e?.isLvm))}get longhornV2Volumes(){return this.volumes.filter((e=>e?.isLonghornV2))}get encryptedVolumeType(){return this.volumes&&0!==this.volumes.length?this.volumes.every((e=>e.isEncrypted))?"all":this.volumes.some((e=>e.isEncrypted))?"partial":"none":"none"}get isError(){const e=(0,u.Jt)(this.vmi,"status.conditions"),t=(0,l.jq)(e,"type","Failure");return t?{status:"VMI error",detailedMessage:t.message}:((this.vmi||this.isVMCreated)&&this.podResource,this?.vmi?.status?.phase)}get isRunning(){const e=(0,u.Jt)(this.vmi,"status.conditions"),t="True"===(0,l.jq)(e,"type","Ready")?.status;return this.vmi?.status?.phase===j.Running&&t?{status:j.Running}:null}get isNotReady(){const e=(0,u.Jt)(this.vmi,"status.conditions"),t=(0,l.jq)(e,"type","Ready");return"False"===t?.status&&this.vmi?.status?.phase===j.Running?{status:k}:null}get isBeingStopped(){return this&&!this.isVMExpectedRunning&&this.isVMCreated&&this.vmi?.status?.phase!==j.Succeeded?{status:E}:null}get isStarting(){if(this.isVMExpectedRunning&&this.isVMCreated){if(this.podResource){const e=this.podResource.getPodStatus;if(!B.includes(e?.status))return{...e,status:"Starting",message:U,detailedMessage:e?.message,pod:this.podResource}}return{status:"Starting",message:U,pod:this.podResource}}return null}get isUnschedulable(){if(this.isBeingStopped||this.isStarting){const e=this.status?.conditions?.find((e=>e.reason===_));if(e)return{status:_,message:e.message||"VM is unschedulable"}}return null}get isTerminating(){return!!this?.metadata?.deletionTimestamp}get otherState(){const e=this.vmi&&[j.Scheduling,j.Scheduled].includes(this.vmi?.status?.phase)&&{status:"Starting",message:U}||this.vmi&&this.vmi.status?.phase===j.Pending&&{status:"VMI_WAITING",message:y}||this.vmi&&this.vmi?.status?.phase===j.Failed&&{status:"VMI_ERROR"}||this.isVMExpectedRunning&&!this.isVMCreated&&{status:"Pending"}||{status:"UNKNOWN"};return e}get isVMCreated(){return!!this?.status?.created}get getDataVolumeTemplates(){return null===(0,u.Jt)(this,"spec.volumeClaimTemplates")?[]:this.spec.volumeClaimTemplates}get restoreResource(){const e=`${this.metadata.namespace}/${(0,u.Jt)(this,`metadata.annotations."${d.r.RESTORE_NAME}"`)}`,t=this.productInStore,n=this.$rootGetters[`${t}/all`](g.rk.RESTORE),r=n.find((t=>t.id===e));if(r){const e=this.$rootGetters[`${t}/all`](g.rk.BACKUP);r.fromSnapshot=!!e.filter((e=>e.spec?.type!==m.a.BACKUP)).find((e=>e.id===`${r.spec?.virtualMachineBackupNamespace}/${r.spec?.virtualMachineBackupName}`))}return r}get restoreProgress(){if(this.isVMError||this.isTerminating)return{};const e=this.restoreResource?.status;return void 0!==e?{type:"restore",percentage:e?.progress||0,details:{volumes:e?.restores||[]}}:{}}get restoreState(){return!this.restoreResource||this.restoreResource?.isComplete}get actualState(){if(!this.restoreState)return"Restoring";if(this.isTerminating)return"Terminating";if(this?.vmi?.migrationState&&"Failed"!==this.vmi.migrationState.status)return this.vmi.migrationState.status;const e=this.isUnschedulable?.status||this.isPaused?.status||this.isVMError?.status||this.isBeingStopped?.status||this.isOff?.status||this.isError?.status||this.isRunning?.status||this.isNotReady?.status||this.isStarting?.status||this.isWaitingForVMI?.state||this.otherState?.status;return e}get warningMessage(){if(this.metadata?.annotations[d.r.VM_INSUFFICIENT])return{message:this.metadata?.annotations[d.r.VM_INSUFFICIENT],canDismiss:!0};const e=(0,u.Jt)(this,"status.conditions"),t=(0,l.jq)(e,"type","Failure");if(t)return{status:w,message:t.message};const n=(0,u.Jt)(this.vmi,"status.conditions"),r=(0,l.jq)(n,"type","Failure");if(r)return{status:"VMI error",detailedMessage:r.message};if((this.vmi||this.isVMCreated)&&this.podResource){const e=this.podResource.getPodStatus;if(L.includes(e?.status))return{...e,status:"LAUNCHER_POD_ERROR",pod:this.podResource}}return null}get migrationMessage(){return this?.vmi?.migrationState&&"Failed"===this.vmi.migrationState.status?{...this.actualState,message:this.t("harvester.modal.migration.failedMessage")}:null}get stateDisplay(){return this.actualState}get stateColor(){const e=this.actualState;return(0,o.uU)(e)}get networkIps(){let e="";const t=[],n=this.spec.template?.spec?.volumes||[];n.forEach((t=>{t.cloudInitNoCloud&&(e=t.cloudInitNoCloud.networkData)}));try{const n=(0,r.load)(e);if(n?.config&&Array.isArray(n.config)){const e=n.config;e.forEach((e=>{if(e?.subnets&&Array.isArray(e.subnets)){const n=e.subnets;n.forEach((e=>{e.address&&t.push(e.address)}))}}))}}catch(i){}return t}get warningCount(){return this.resourcesStatus.warningCount}get errorCount(){return this.resourcesStatus.errorCount}get resourcesStatus(){const e=this.productInStore,t=this.$rootGetters[`${e}/all`](g.rk.VM);let n=0,r=0;return t.forEach((e=>{const t=e.actualState;t===w?r+=1:"Stopping"!==t&&"Waiting"!==t&&"Pending"!==t&&"Starting"!==t&&"Terminating"!==t||(n+=1)})),{warningCount:n,errorCount:r}}get volumeClaimTemplates(){return(0,f.v)(this)}get persistentVolumeClaimName(){const e=this.spec.template.spec.volumes||[];return e.map((e=>e?.persistentVolumeClaim?.claimName)).filter((e=>!!e))}get rootImageId(){let e="";const t=this.productInStore,n=this.$rootGetters[`${t}/all`](s.YH)||[],r=this.spec.template.spec.volumes||[],i=r[0]?.persistentVolumeClaim?.claimName,a=this.volumeClaimTemplates.find((e=>i===e?.metadata?.name));if(!a){const e=n.find((e=>e.id===`${this.metadata.namespace}/${i}`));if(e)return e?.metadata?.annotations?.["harvesterhci.io/imageId"]}return this.volumeClaimTemplates.find((t=>(e=t?.metadata?.annotations?.["harvesterhci.io/imageId"],!!e))),e}get restoreName(){return(0,u.Jt)(this,`metadata.annotations."${d.r.RESTORE_NAME}"`)||""}get customValidationRules(){const e=[{nullable:!1,path:"metadata.name",required:!0,minLength:1,maxLength:63,translationKey:"harvester.fields.name"},{nullable:!1,path:"spec.template.spec.domain.cpu.cores",min:1,required:!0,translationKey:"harvester.fields.cpu"},{nullable:!1,path:"spec.template.spec.domain.resources.limits.memory",required:!0,translationKey:"harvester.fields.memory"},{nullable:!1,path:"spec.template.spec",validators:["vmNetworks"]},{nullable:!1,path:"spec",validators:["vmDisks"]}];return e}get attachNetwork(){const e=this.spec?.template?.spec?.networks||[],t=e.find((e=>e.multus));return!!t}get memorySort(){const e=this?.spec?.template?.spec?.domain?.resources?.requests?.memory||0,t=(0,c.ao)(e);return parseInt(t)}get ingoreVMMessage(){const e=[{name:"unavailable",error:!1,vmState:this.actualState===A}],t=this.metadata?.state;return e.find((e=>e.name===t?.name&&e.error===t?.error&&e.vmState))||K.find((e=>super.stateDescription?.includes(e)))||this.isOff}get stateDescription(){return this.ingoreVMMessage?"":super.stateDescription}get displayMemory(){return this.spec.template.spec.domain.resources?.limits?.memory||this.spec.template.spec.domain.resources?.requests?.memory}get isQemuInstalled(){const e=this.vmi?.status?.conditions||[],t=e.find((e=>e.type===x));return"True"===t?.status}get instanceLabels(){const e=this.spec?.template?.metadata?.labels||{};return(0,i.omitBy)(e,((e,t)=>(0,p.HV)(t,d.l)))}get hostDevices(){return this.spec?.template?.spec?.domain?.devices?.hostDevices||[]}get provisionedVGpus(){try{const e=JSON.parse(this.metadata?.annotations[d.r.VM_DEVICE_ALLOCATION_DETAILS]||"{}");return e?.gpus||{}}catch(e){return{}}}get schedulingVMBackupFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("schedulingVMBackup")}get volumeEncryptionFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("volumeEncryption")}get tpmPersistentStateFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("tpmPersistentState")}get efiPersistentStateFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("efiPersistentState")}get thirdPartyStorageFeatureEnabled(){return this.$rootGetters["harvester-common/getFeatureEnabled"]("thirdPartyStorage")}setInstanceLabels(e){this.spec?.template?.metadata?.labels||(0,u.hZ)(this,"spec.template.metadata.labels",{});const t=this.spec.template.metadata.labels||{},n=(0,i.pickBy)(t,((e,t)=>(0,p.HV)(t,d.l)));this.spec.template.metadata["labels"]={...n,...e}}}},79095:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return d}});var r=n(73883),i=n(35664),a=n(2602),o=n(32766),s=n(24222);const l="Paused",c="This VM has been paused. If you wish to unpause it, please click the Unpause button below. For further details, please check with your system administrator.",u={Pending:"Pending",Scheduling:"Scheduling",Scheduled:"Scheduled",Running:"Running",Succeeded:"Succeeded",Failed:"Failed",Unknown:"Unknown"};class d extends s["default"]{get _availableActions(){const e=super._availableActions,t=e.find((e=>"promptRemove"===e.action));return[t]}get stateDisplay(){return this?.metadata?.deletionTimestamp?"Terminating":this?.status?.phase}get stateBackground(){return(0,r.uU)(this.stateDisplay).replace("text-","bg-")}get stateColor(){const e=this.stateDisplay;return(0,r.uU)(e)}get vmimResource(){const e=this.$rootGetters["harvester/all"](o.rk.VMIM)||[],t=e.filter((e=>e.spec?.vmiName===this.metadata?.name));return 0===t.length?[]:(t.sort(((e,t)=>e?.metadata?.creationTimestamp>t?.metadata?.creationTimestamp?-1:1)),t[0])}get migrationState(){const e=this.metadata?.annotations?.[a.r.MIGRATION_STATE];return this.vmimResource?.status?.phase===u.Failed?{type:"migration",status:u.Failed}:this.vmimResource?.status?.phase&&e?{type:"migration",status:e}:null}get migrationStateBackground(){const e=this.migrationState.status;return(0,r.uU)(e).replace("text-","bg-")}get isPaused(){const e=this?.status?.conditions||[],t=e.filter((e=>e.type===l)).length>0;return t?{status:l,message:c}:null}get isRunning(){return this?.status?.phase===u.Running?{status:u.Running}:null}get isTerminated(){const e=this?.status?.conditions||[];return"False"===e.find((e=>"Ready"===e.type))?.status}get getVMIApiPath(){const e=this.$rootGetters["clusterId"];if(this.$rootGetters["isMultiCluster"]){const t=`/k8s/clusters/${e}`;return`${t}/apis/subresources.kubevirt.io/v1/namespaces/${this.metadata.namespace}/virtualmachineinstances/${this.name}/vnc`}return`/apis/subresources.kubevirt.io/v1/namespaces/${this.metadata.namespace}/virtualmachineinstances/${this.name}/vnc`}get realAttachNodeName(){const e=this?.status?.nodeName,t=this.$getters["byId"](i.NW,e);return t?.nameDisplay||""}get getSerialConsolePath(){const e=this.$rootGetters["clusterId"];if(this.$rootGetters["isMultiCluster"]){const t=`/k8s/clusters/${e}`;return`${t}/apis/subresources.kubevirt.io/v1/namespaces/${this.metadata.namespace}/virtualmachineinstances/${this.name}/console`}return`/apis/subresources.kubevirt.io/v1/namespaces/${this.metadata.namespace}/virtualmachineinstances/${this.name}/console`}}},68917:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(76978),i=n(24222),a=n(32766);const o="Not Ready";class s extends i["default"]{applyDefaults(){const e=this.spec||{},t=this.metadata||{};e.ranges=e.ranges||[],e.selector=e.selector||{},e.selector.network=e.selector.network||"",this["spec"]=e,this["metadata"]=t}get customValidationRules(){return[{nullable:!1,path:"metadata.name",required:!0,translationKey:"generic.name",type:"dnsLabel"},{nullable:!1,path:"spec.ranges",type:"array",validators:["ranges"]}]}get subnetDisplay(){const e=this.spec?.ranges||[];return e.map((e=>e.subnet)).join(", ")}get startIPDisplay(){const e=this.spec?.ranges||[];return e.filter((e=>e.startIP)).map((e=>e.startIP)).join(", ")}get endIPDisplay(){const e=this.spec?.ranges||[];return e.filter((e=>e.endIP)).map((e=>e.endIP)).join(", ")}get details(){const e=[{label:this.t("harvester.ipPool.availableIP.label"),content:this.status?.available}];return e}get doneOverride(){const e=(0,r.o8)(this.listLocation);return e.params.resource=a.rk.IP_POOL,e}get parentLocationOverride(){return{...this.listLocation,params:{...this.listLocation.params,resource:a.rk.IP_POOL}}}get isReady(){const e=(this?.status?.conditions||[]).find((e=>"Ready"===e.type))||{};return"True"===e?.status}get stateDisplay(){return this.isReady?super.stateDisplay:o}get stateBackground(){return this.isReady?super.stateBackground:"bg-warning"}}},61772:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(76978),i=n(24222),a=n(32766);const o="vm",s="Not Ready";class l extends i["default"]{applyDefaults(){const e=this.spec||{},t=this.metadata||{};e.workloadType=e.workloadType||o,e.ipam=e.ipam||"dhcp",e.healthCheck=e.healthCheck||{},e.backendServerSelector=e.backendServerSelector||{},(0,r.hZ)(this,"spec",e),(0,r.hZ)(this,"metadata",t)}get workloadTypeDisplay(){const e=this.spec?.workloadType||"cluster";return this.$rootGetters["i18n/t"](`harvester.loadBalancer.workloadType.options.${e}`)}get ipamDisplay(){const e=this.spec?.ipam;return this.$rootGetters["i18n/t"](`harvester.loadBalancer.ipam.options.${e}`)}get customValidationRules(){return[{nullable:!1,path:"metadata.name",required:!0,translationKey:"generic.name",type:"dnsLabel"}]}get canCustomEdit(){return this.$rootGetters["type-map/hasCustomEdit"](this.type,this.id)&&this.spec.workloadType===o}get canUpdate(){return this.hasLink("update")&&this.$rootGetters["type-map/optionsFor"](this.type).isEditable&&this.spec.workloadType===o}get canClone(){return this.spec.workloadType===o}get details(){const e=[{label:this.t("harvester.loadBalancer.ipam.label"),content:this.ipamDisplay},{label:this.t("harvester.loadBalancer.workloadType.label"),content:this.workloadTypeDisplay},{label:this.t("tableHeaders.address"),content:this.status.address}];return e}get doneOverride(){const e=(0,r.o8)(this.listLocation);return e.params.resource=a.rk.LB,e}get parentLocationOverride(){return{...this.listLocation,params:{...this.listLocation.params,resource:a.rk.LB}}}get isReady(){const e=(this?.status?.conditions||[]).find((e=>"Ready"===e.type))||{};return"True"===e?.status}get stateDisplay(){return this.isReady?super.stateDisplay:s}get stateBackground(){return this.isReady?super.stateBackground:"bg-warning"}}},28433:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(25184);const i="healthy",a="warning";class o extends r.A{get used(){let e=0;return this.disks.filter((e=>e.allowScheduling)).map((t=>{t?.storageAvailable&&t?.storageMaximum&&(e+=t.storageMaximum-t.storageAvailable)})),e}get disks(){const e=this?.status?.diskStatus||{},t=this?.spec?.disks||{};return Object.keys(t).map((n=>{const r=e[n]?.conditions||[],o=r.find((e=>"Ready"===e.type))||{},s=r.find((e=>"Schedulable"===e.type))||{};let l;return l="True"!==o?.status||"True"!==s?.status?a:i,{...e[n],...t[n],id:n,state:l}}))||[]}}},11971:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(76978),i=n(24222);class a extends i["default"]{applyDefaults(){const e={baseboardSpec:{connection:{authSecretRef:{},insecureTLS:!1}},events:{enabled:!0,pollingInterval:"1h"},primaryDisk:"",managementInterfaceMacAddress:""};(0,r.hZ)(this,"metadata.annotations",{}),(0,r.hZ)(this,"spec",this.spec||e),(0,r.hZ)(this,"spec.baseboardSpec",this.spec?.baseboardSpec||e.baseboardSpec),(0,r.hZ)(this,"spec.baseboardSpec.connection",this.spec?.baseboardSpec?.connection||e.baseboardSpec.connection),(0,r.hZ)(this,"spec.baseboardSpec.connection.authSecretRef",this.spec?.baseboardSpec?.connection?.authSecretRef||{})}get warningMessages(){const e=[];return this.metadata?.state?.error&&e.push({text:this.metadata?.state.message}),e}get customValidationRules(){return[{path:"spec.events.pollingInterval",translationKey:"harvester.seeder.inventory.pollingInterval.label",validators:["interval"]}]}}},85696:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(76978),i=n(35664),a=n(32766),o=n(24222);class s extends o["default"]{get doneOverride(){const e=(0,r.o8)(this.listLocation);return e.params.resource=a.rk.CLUSTER_NETWORK,e}get parentLocationOverride(){return{...this.listLocation,params:{...this.listLocation.params,resource:a.rk.CLUSTER_NETWORK}}}get canDelete(){return this._canDelete&&"mgmt"!==this.id}get canUpdate(){return this.hasLink("update")&&this.$rootGetters["type-map/optionsFor"](this.type).isEditable&&"mgmt"!==this.id}get isReady(){const e=(this?.status?.conditions||[]).find((e=>"ready"===e.type))||{};return"True"===e?.status}get inStore(){return this.$rootGetters["currentProduct"].inStore}get nodes(){const e=this.$rootGetters[`${this.inStore}/all`](i.NW);return e.filter((e=>!e.isUnSchedulable&&"true"!==e.isEtcd))}get vlanStatuses(){const e=this.$rootGetters[`${this.inStore}/all`](a.rk.VLAN_STATUS),t=this.nodes.map((e=>e.id));return e.filter((e=>t.includes(e?.status?.node)&&this.id===e?.status?.clusterNetwork))||[]}get isReadyForStorageNetwork(){if("mgmt"===this.id)return!0;{const e=this.vlanStatuses.filter((e=>e.isReady))||[];return e.length===this.nodes.length&&this.isReady}}}},88272:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});var r=n(68851),i=n(76978),a=n(32766),o=n(24222);class s extends o["default"]{get message(){const e=(0,i.Jt)(this,"status.conditions");return((0,r.jq)(e,"type","Ready")||{}).message}get isReady(){const e=(0,i.Jt)(this,"status.conditions");return"True"===((0,r.jq)(e,"type","Ready")||{})?.status}get nics(){return this?.status?.nics||[]}get attachNodeName(){return(0,i.Jt)(this,'metadata.labels."network.harvesterhci.io/nodename"')||""}get linkMessage(){return{name:this.attachNodeName,message:this.message,to:`${a.rk.HOST}/${this.attachNodeName}?mode=edit`}}}},70443:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return h}});var r=n(45250),i=n(76978),a=n(68851),o=n(2841),s=n(38823),l=n(35664),c=n(32766),u=n(24222);const d="Not Ready";class h extends u["default"]{applyDefaults(){const e={uplink:{nics:[],linkAttributes:{},bondOptions:{mode:"active-backup"}}};(0,i.hZ)(this,"spec",this.spec||e),(0,i.hZ)(this,"spec.uplink.linkAttributes",this.spec?.uplink?.linkAttributes||{}),(0,i.hZ)(this,"spec.uplink.bondOptions",this.spec?.uplink?.bondOptions||{})}get groupByClusterNetwork(){return this.spec?.clusterNetwork}get doneOverride(){const e=(0,i.o8)(this.listLocation);return e.params.resource=c.rk.CLUSTER_NETWORK,e}get parentLocationOverride(){return{...this.listLocation,params:{...this.listLocation.params,resource:c.rk.CLUSTER_NETWORK}}}get typeDisplay(){return"VLAN"}get _availableActions(){const e=super._availableActions;return(0,a.PT)(e,0,this.migrateAction),e}get migrateAction(){return{action:"migrate",icon:"icon icon-copy",label:this.t("harvester.vlanConfig.action.migrate")}}migrate(e=this){this.$dispatch("promptModal",{resources:e,component:"HarvesterVlanConfigMigrateDialog"})}get inStore(){return this.$rootGetters["currentProduct"].inStore}get vlanStatuses(){const e=this.nodes.map((e=>e.id))||[],t=this.$rootGetters[`${this.inStore}/all`](c.rk.VLAN_STATUS);return t.filter((t=>e.includes(t?.status?.node)&&this.id===t?.status?.vlanConfig))||[]}get isReady(){if(0===this.nodes.length||this.vlanStatuses.length!==this.nodes.length)return!1;{const e=this.vlanStatuses.filter((e=>e.isReady));return e.length===this.vlanStatuses.length}}get selectedNodes(){const e=this.spec?.nodeSelector||{},t=this.$rootGetters[`${this.inStore}/all`](l.NW);if((0,r.isEmpty)(e))return t;if(e[o.yA]&&1===Object.keys(e).length)return t.filter((t=>t.id===e[o.yA]))||[];{const n=(0,s.wC)(t||[],e).map((e=>e.id));return t.filter((e=>n.includes(e.id)))}}get nodes(){return this.selectedNodes.filter((e=>!e.isUnSchedulable&&"true"!==e.isEtcd))}get stateDisplay(){return this.isReady?super.stateDisplay:d}get stateBackground(){return this.isReady?super.stateBackground:"bg-warning"}}},61715:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(68851),i=n(24222);class a extends i["default"]{get isReady(){const e=this.status?.conditions||[],t=(0,r.jq)(e,"type","ready")||{};return"True"===t.status}}},3791:function(e,t,n){"use strict";n.d(t,{nn:function(){return f},at:function(){return b},HF:function(){return m}});var r=n(2722),i=n.n(r);const a=["supportHarvesterClusterVersion"],o=[...a,"autoRotateRke2CertsSetting","supportBundleNodeCollectionTimeoutSetting"],s=[...o,"kubeconfigDefaultTokenTTLMinutesSetting","improveMaintenanceMode"],l=[...s],c=[...l,"cpuPinning","usbPassthrough","volumeEncryption","schedulingVMBackup","vmSnapshotQuota","longhornV2LVMSupport","improveMaintenanceMode"],u=[...c],d=[...u],h=[...d,"tpmPersistentState","efiPersistentState","untaggedNetworkSetting","skipSingleReplicaDetachedVol","thirdPartyStorage"],p={"v1.3.0":a,"v1.3.1":o,"v1.3.2":s,"v1.3.3":l,"v1.4.0":c,"v1.4.1":u,"v1.4.2":d,"v1.5.0":h},f=(e,t)=>{const n=`v${i().major(t)}.${i().minor(t)}`;return`https://docs.harvesterhci.io/${n}${e}`};function m(e){if({NODE_ENV:"production",BASE_URL:"/"}.VUE_APP_SERVER_VERSION)return{NODE_ENV:"production",BASE_URL:"/"}.VUE_APP_SERVER_VERSION;try{return`v${i().major(e)}.${i().minor(e)}.${i().patch(e)}`}catch(t){return g(Object.keys(p))}}function g(e){return e.sort(((e,t)=>i().compare(e,t))).pop()}function v(e){const t=`v${i().major(e)}.${i().minor(e)}`,n=Object.keys(p).filter((e=>e.startsWith(t)));return g(n)}const b=(e,t)=>{const n=m(t);let r=p[n];if(!r){const e=v(n);r=p[e]}return r.includes(e)}},66490:function(e,t,n){"use strict";n.d(t,{v:function(){return i}});var r=n(2602);function i(e){let t=[];try{t=JSON.parse(e?.metadata?.annotations?.[r.r.VOLUME_CLAIM_TEMPLATE])||[]}catch(n){}return t}},52880:function(e,t,n){"use strict";n.d(t,{Vi:function(){return i},_X:function(){return o},b8:function(){return a}});var r=n(2602);const i=["qcow","qcow2","raw","img","iso"];function a(e,t,n,r,a){const o=t["i18n/t"];if(!e||""===e)return n;const s=e.split("/").pop(),l=s.split(".").pop().toLowerCase();if(!i.includes(l)){const e="file"===a?"harvester.validation.image.ruleFileTip":"harvester.validation.image.ruleTip";n.push(o(e))}return n}function o(e={},t,n,i,a){const o=t["i18n/t"];return e[r.r.IMAGE_NAME]||n.push(o("validation.required",{key:o("harvester.image.fileName")})),n}},52225:function(e,t,n){"use strict";var r=n(33062),i=n(1359),a=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,o=/[\n\r\t]/g,s=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,l=/:\d+$/,c=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,u=/^[a-zA-Z]:/;function d(e){return(e||"").toString().replace(a,"")}var h=[["#","hash"],["?","query"],function(e,t){return m(t.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],p={hash:1,query:1};function f(e){var t;t="undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self?self:{};var r=t.location||{};e=e||r;var i,a={},o=typeof e;if("blob:"===e.protocol)a=new b(unescape(e.pathname),{});else if("string"===o)for(i in a=new b(e,{}),p)delete a[i];else if("object"===o){for(i in e)i in p||(a[i]=e[i]);void 0===a.slashes&&(a.slashes=s.test(e.href))}return a}function m(e){return"file:"===e||"ftp:"===e||"http:"===e||"https:"===e||"ws:"===e||"wss:"===e}function g(e,t){e=d(e),e=e.replace(o,""),t=t||{};var n,r=c.exec(e),i=r[1]?r[1].toLowerCase():"",a=!!r[2],s=!!r[3],l=0;return a?s?(n=r[2]+r[3]+r[4],l=r[2].length+r[3].length):(n=r[2]+r[4],l=r[2].length):s?(n=r[3]+r[4],l=r[3].length):n=r[4],"file:"===i?l>=2&&(n=n.slice(2)):m(i)?n=r[4]:i?a&&(n=n.slice(2)):l>=2&&m(t.protocol)&&(n=r[4]),{protocol:i,slashes:a||m(i),slashesCount:l,rest:n}}function v(e,t){if(""===e)return t;var n=(t||"/").split("/").slice(0,-1).concat(e.split("/")),r=n.length,i=n[r-1],a=!1,o=0;while(r--)"."===n[r]?n.splice(r,1):".."===n[r]?(n.splice(r,1),o++):o&&(0===r&&(a=!0),n.splice(r,1),o--);return a&&n.unshift(""),"."!==i&&".."!==i||n.push(""),n.join("/")}function b(e,t,n){if(e=d(e),e=e.replace(o,""),!(this instanceof b))return new b(e,t,n);var a,s,l,c,p,y,w=h.slice(),E=typeof t,_=this,S=0;for("object"!==E&&"string"!==E&&(n=t,t=null),n&&"function"!==typeof n&&(n=i.parse),t=f(t),s=g(e||"",t),a=!s.protocol&&!s.slashes,_.slashes=s.slashes||a&&t.slashes,_.protocol=s.protocol||t.protocol||"",e=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||u.test(e))||!s.slashes&&(s.protocol||s.slashesCount<2||!m(_.protocol)))&&(w[3]=[/(.*)/,"pathname"]);S<w.length;S++)c=w[S],"function"!==typeof c?(l=c[0],y=c[1],l!==l?_[y]=e:"string"===typeof l?(p="@"===l?e.lastIndexOf(l):e.indexOf(l),~p&&("number"===typeof c[2]?(_[y]=e.slice(0,p),e=e.slice(p+c[2])):(_[y]=e.slice(p),e=e.slice(0,p)))):(p=l.exec(e))&&(_[y]=p[1],e=e.slice(0,p.index)),_[y]=_[y]||a&&c[3]&&t[y]||"",c[4]&&(_[y]=_[y].toLowerCase())):e=c(e,_);n&&(_.query=n(_.query)),a&&t.slashes&&"/"!==_.pathname.charAt(0)&&(""!==_.pathname||""!==t.pathname)&&(_.pathname=v(_.pathname,t.pathname)),"/"!==_.pathname.charAt(0)&&m(_.protocol)&&(_.pathname="/"+_.pathname),r(_.port,_.protocol)||(_.host=_.hostname,_.port=""),_.username=_.password="",_.auth&&(p=_.auth.indexOf(":"),~p?(_.username=_.auth.slice(0,p),_.username=encodeURIComponent(decodeURIComponent(_.username)),_.password=_.auth.slice(p+1),_.password=encodeURIComponent(decodeURIComponent(_.password))):_.username=encodeURIComponent(decodeURIComponent(_.auth)),_.auth=_.password?_.username+":"+_.password:_.username),_.origin="file:"!==_.protocol&&m(_.protocol)&&_.host?_.protocol+"//"+_.host:"null",_.href=_.toString()}function y(e,t,n){var a=this;switch(e){case"query":"string"===typeof t&&t.length&&(t=(n||i.parse)(t)),a[e]=t;break;case"port":a[e]=t,r(t,a.protocol)?t&&(a.host=a.hostname+":"+t):(a.host=a.hostname,a[e]="");break;case"hostname":a[e]=t,a.port&&(t+=":"+a.port),a.host=t;break;case"host":a[e]=t,l.test(t)?(t=t.split(":"),a.port=t.pop(),a.hostname=t.join(":")):(a.hostname=t,a.port="");break;case"protocol":a.protocol=t.toLowerCase(),a.slashes=!n;break;case"pathname":case"hash":if(t){var o="pathname"===e?"/":"#";a[e]=t.charAt(0)!==o?o+t:t}else a[e]=t;break;case"username":case"password":a[e]=encodeURIComponent(t);break;case"auth":var s=t.indexOf(":");~s?(a.username=t.slice(0,s),a.username=encodeURIComponent(decodeURIComponent(a.username)),a.password=t.slice(s+1),a.password=encodeURIComponent(decodeURIComponent(a.password))):a.username=encodeURIComponent(decodeURIComponent(t))}for(var c=0;c<h.length;c++){var u=h[c];u[4]&&(a[u[1]]=a[u[1]].toLowerCase())}return a.auth=a.password?a.username+":"+a.password:a.username,a.origin="file:"!==a.protocol&&m(a.protocol)&&a.host?a.protocol+"//"+a.host:"null",a.href=a.toString(),a}function w(e){e&&"function"===typeof e||(e=i.stringify);var t,n=this,r=n.host,a=n.protocol;a&&":"!==a.charAt(a.length-1)&&(a+=":");var o=a+(n.protocol&&n.slashes||m(n.protocol)?"//":"");return n.username?(o+=n.username,n.password&&(o+=":"+n.password),o+="@"):n.password?(o+=":"+n.password,o+="@"):"file:"!==n.protocol&&m(n.protocol)&&!r&&"/"!==n.pathname&&(o+="@"),(":"===r[r.length-1]||l.test(n.hostname)&&!n.port)&&(r+=":"),o+=r+n.pathname,t="object"===typeof n.query?e(n.query):n.query,t&&(o+="?"!==t.charAt(0)?"?"+t:t),n.hash&&(o+=n.hash),o}b.prototype={set:y,toString:w},b.extractProtocol=g,b.location=f,b.trimLeft=d,b.qs=i,e.exports=b},62113:function(e,t,n){var r;/*! https://mths.be/punycode v1.4.1 by @mathias */e=n.nmd(e),function(){t&&t.nodeType,e&&e.nodeType;var i="object"==typeof n.g&&n.g;i.global!==i&&i.window!==i&&i.self;var a,o=2147483647,s=36,l=1,c=26,u=38,d=700,h=72,p=128,f="-",m=/^xn--/,g=/[^\x20-\x7E]/,v=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},y=s-l,w=Math.floor,E=String.fromCharCode;function _(e){throw new RangeError(b[e])}function S(e,t){var n=e.length,r=[];while(n--)r[n]=t(e[n]);return r}function k(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(v,".");var i=e.split("."),a=S(i,t).join(".");return r+a}function x(e){var t,n,r=[],i=0,a=e.length;while(i<a)t=e.charCodeAt(i++),t>=55296&&t<=56319&&i<a?(n=e.charCodeAt(i++),56320==(64512&n)?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),i--)):r.push(t);return r}function A(e){return S(e,(function(e){var t="";return e>65535&&(e-=65536,t+=E(e>>>10&1023|55296),e=56320|1023&e),t+=E(e),t})).join("")}function N(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:s}function C(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function T(e,t,n){var r=0;for(e=n?w(e/d):e>>1,e+=w(e/t);e>y*c>>1;r+=s)e=w(e/y);return w(r+(y+1)*e/(e+u))}function R(e){var t,n,r,i,a,u,d,m,g,v,b=[],y=e.length,E=0,S=p,k=h;for(n=e.lastIndexOf(f),n<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&_("not-basic"),b.push(e.charCodeAt(r));for(i=n>0?n+1:0;i<y;){for(a=E,u=1,d=s;;d+=s){if(i>=y&&_("invalid-input"),m=N(e.charCodeAt(i++)),(m>=s||m>w((o-E)/u))&&_("overflow"),E+=m*u,g=d<=k?l:d>=k+c?c:d-k,m<g)break;v=s-g,u>w(o/v)&&_("overflow"),u*=v}t=b.length+1,k=T(E-a,t,0==a),w(E/t)>o-S&&_("overflow"),S+=w(E/t),E%=t,b.splice(E++,0,S)}return A(b)}function O(e){var t,n,r,i,a,u,d,m,g,v,b,y,S,k,A,N=[];for(e=x(e),y=e.length,t=p,n=0,a=h,u=0;u<y;++u)b=e[u],b<128&&N.push(E(b));r=i=N.length,i&&N.push(f);while(r<y){for(d=o,u=0;u<y;++u)b=e[u],b>=t&&b<d&&(d=b);for(S=r+1,d-t>w((o-n)/S)&&_("overflow"),n+=(d-t)*S,t=d,u=0;u<y;++u)if(b=e[u],b<t&&++n>o&&_("overflow"),b==t){for(m=n,g=s;;g+=s){if(v=g<=a?l:g>=a+c?c:g-a,m<v)break;A=m-v,k=s-v,N.push(E(C(v+A%k,0))),m=w(A/k)}N.push(E(C(m,0))),a=T(n,S,r==i),n=0,++r}++n,++t}return N.join("")}function I(e){return k(e,(function(e){return m.test(e)?R(e.slice(4).toLowerCase()):e}))}function L(e){return k(e,(function(e){return g.test(e)?"xn--"+O(e):e}))}a={version:"1.4.1",ucs2:{decode:x,encode:A},decode:R,encode:O,toASCII:L,toUnicode:I},r=function(){return a}.call(t,n,t,e),void 0===r||(e.exports=r)}()},75442:function(e,t,n){"use strict";var r=n(62113);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var a=/^([a-z0-9.+-]+:)/i,o=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,l=["<",">",'"',"`"," ","\r","\n","\t"],c=["{","}","|","\\","^","`"].concat(l),u=["'"].concat(c),d=["%","/","?",";","#"].concat(u),h=["/","?","#"],p=255,f=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=n(45810);function w(e,t,n){if(e&&"object"===typeof e&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}function E(e){return"string"===typeof e&&(e=w(e)),e instanceof i?e.format():i.prototype.format.call(e)}function _(e,t){return w(e,!1,!0).resolve(t)}function S(e,t){return e?w(e,!1,!0).resolveObject(t):t}i.prototype.parse=function(e,t,n){if("string"!==typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),o=-1!==i&&i<e.indexOf("#")?"?":"#",l=e.split(o),c=/\\/g;l[0]=l[0].replace(c,"/"),e=l.join(o);var w=e;if(w=w.trim(),!n&&1===e.split("#").length){var E=s.exec(w);if(E)return this.path=w,this.href=w,this.pathname=E[1],E[2]?(this.search=E[2],this.query=t?y.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var _=a.exec(w);if(_){_=_[0];var S=_.toLowerCase();this.protocol=S,w=w.substr(_.length)}if(n||_||w.match(/^\/\/[^@/]+@[^@/]+/)){var k="//"===w.substr(0,2);!k||_&&v[_]||(w=w.substr(2),this.slashes=!0)}if(!v[_]&&(k||_&&!b[_])){for(var x,A,N=-1,C=0;C<h.length;C++){var T=w.indexOf(h[C]);-1!==T&&(-1===N||T<N)&&(N=T)}A=-1===N?w.lastIndexOf("@"):w.lastIndexOf("@",N),-1!==A&&(x=w.slice(0,A),w=w.slice(A+1),this.auth=decodeURIComponent(x)),N=-1;for(C=0;C<d.length;C++){T=w.indexOf(d[C]);-1!==T&&(-1===N||T<N)&&(N=T)}-1===N&&(N=w.length),this.host=w.slice(0,N),w=w.slice(N),this.parseHost(),this.hostname=this.hostname||"";var R="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!R)for(var O=this.hostname.split(/\./),I=(C=0,O.length);C<I;C++){var L=O[C];if(L&&!L.match(f)){for(var D="",P=0,M=L.length;P<M;P++)L.charCodeAt(P)>127?D+="x":D+=L[P];if(!D.match(f)){var B=O.slice(0,C),F=O.slice(C+1),$=L.match(m);$&&(B.push($[1]),F.unshift($[2])),F.length&&(w="/"+F.join(".")+w),this.hostname=B.join(".");break}}}this.hostname.length>p?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=r.toASCII(this.hostname));var U=this.port?":"+this.port:"",j=this.hostname||"";this.host=j+U,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==w[0]&&(w="/"+w))}if(!g[S])for(C=0,I=u.length;C<I;C++){var V=u[C];if(-1!==w.indexOf(V)){var K=encodeURIComponent(V);K===V&&(K=escape(V)),w=w.split(V).join(K)}}var H=w.indexOf("#");-1!==H&&(this.hash=w.substr(H),w=w.slice(0,H));var G=w.indexOf("?");if(-1!==G?(this.search=w.substr(G),this.query=w.substr(G+1),t&&(this.query=y.parse(this.query)),w=w.slice(0,G)):t&&(this.search="",this.query={}),w&&(this.pathname=w),b[S]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){U=this.pathname||"";var z=this.search||"";this.path=U+z}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,a="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&"object"===typeof this.query&&Object.keys(this.query).length&&(a=y.stringify(this.query,{arrayFormat:"repeat",addQueryPrefix:!1}));var o=this.search||a&&"?"+a||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||b[t])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),o&&"?"!==o.charAt(0)&&(o="?"+o),n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})),o=o.replace("#","%23"),t+i+n+o+r},i.prototype.resolve=function(e){return this.resolveObject(w(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if("string"===typeof e){var t=new i;t.parse(e,!1,!0),e=t}for(var n=new i,r=Object.keys(this),a=0;a<r.length;a++){var o=r[a];n[o]=this[o]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),l=0;l<s.length;l++){var c=s[l];"protocol"!==c&&(n[c]=e[c])}return b[n.protocol]&&n.hostname&&!n.pathname&&(n.pathname="/",n.path=n.pathname),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!b[e.protocol]){for(var u=Object.keys(e),d=0;d<u.length;d++){var h=u[d];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||v[e.protocol])n.pathname=e.pathname;else{var p=(e.pathname||"").split("/");while(p.length&&!(e.host=p.shift()));e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),n.pathname=p.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var f=n.pathname||"",m=n.search||"";n.path=f+m}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var g=n.pathname&&"/"===n.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=y||g||n.host&&e.pathname,E=w,_=n.pathname&&n.pathname.split("/")||[],S=(p=e.pathname&&e.pathname.split("/")||[],n.protocol&&!b[n.protocol]);if(S&&(n.hostname="",n.port=null,n.host&&(""===_[0]?_[0]=n.host:_.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),w=w&&(""===p[0]||""===_[0])),y)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,_=p;else if(p.length)_||(_=[]),_.pop(),_=_.concat(p),n.search=e.search,n.query=e.query;else if(null!=e.search){if(S){n.host=_.shift(),n.hostname=n.host;var k=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@");k&&(n.auth=k.shift(),n.hostname=k.shift(),n.host=n.hostname)}return n.search=e.search,n.query=e.query,null===n.pathname&&null===n.search||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!_.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var x=_.slice(-1)[0],A=(n.host||e.host||_.length>1)&&("."===x||".."===x)||""===x,N=0,C=_.length;C>=0;C--)x=_[C],"."===x?_.splice(C,1):".."===x?(_.splice(C,1),N++):N&&(_.splice(C,1),N--);if(!w&&!E)for(;N--;N)_.unshift("..");!w||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),A&&"/"!==_.join("/").substr(-1)&&_.push("");var T=""===_[0]||_[0]&&"/"===_[0].charAt(0);if(S){n.hostname=T?"":_.length?_.shift():"",n.host=n.hostname;k=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@");k&&(n.auth=k.shift(),n.hostname=k.shift(),n.host=n.hostname)}return w=w||n.host&&_.length,w&&!T&&_.unshift(""),_.length>0?n.pathname=_.join("/"):(n.pathname=null,n.path=null),null===n.pathname&&null===n.search||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=o.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.parse=w,t.resolve=_,t.resolveObject=S,t.format=E,t.Url=i},66732:function(e,t,n){var r=n(4364);function i(e,t){if(a("noDeprecation"))return e;var n=!1;function i(){if(!n){if(a("throwDeprecation"))throw new Error(t);a("traceDeprecation")?r.trace(t):r.warn(t),n=!0}return e.apply(this,arguments)}return i}function a(e){try{if(!n.g.localStorage)return!1}catch(r){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=i},95272:function(e){e.exports=function(e){return e&&"object"===typeof e&&"function"===typeof e.copy&&"function"===typeof e.fill&&"function"===typeof e.readUInt8}},51531:function(e,t,n){"use strict";var r=n(55387),i=n(2625),a=n(52730),o=n(95943);function s(e){return e.call.bind(e)}var l="undefined"!==typeof BigInt,c="undefined"!==typeof Symbol,u=s(Object.prototype.toString),d=s(Number.prototype.valueOf),h=s(String.prototype.valueOf),p=s(Boolean.prototype.valueOf);if(l)var f=s(BigInt.prototype.valueOf);if(c)var m=s(Symbol.prototype.valueOf);function g(e,t){if("object"!==typeof e)return!1;try{return t(e),!0}catch(n){return!1}}function v(e){return"undefined"!==typeof Promise&&e instanceof Promise||null!==e&&"object"===typeof e&&"function"===typeof e.then&&"function"===typeof e.catch}function b(e){return"undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):o(e)||j(e)}function y(e){return"Uint8Array"===a(e)}function w(e){return"Uint8ClampedArray"===a(e)}function E(e){return"Uint16Array"===a(e)}function _(e){return"Uint32Array"===a(e)}function S(e){return"Int8Array"===a(e)}function k(e){return"Int16Array"===a(e)}function x(e){return"Int32Array"===a(e)}function A(e){return"Float32Array"===a(e)}function N(e){return"Float64Array"===a(e)}function C(e){return"BigInt64Array"===a(e)}function T(e){return"BigUint64Array"===a(e)}function R(e){return"[object Map]"===u(e)}function O(e){return"undefined"!==typeof Map&&(R.working?R(e):e instanceof Map)}function I(e){return"[object Set]"===u(e)}function L(e){return"undefined"!==typeof Set&&(I.working?I(e):e instanceof Set)}function D(e){return"[object WeakMap]"===u(e)}function P(e){return"undefined"!==typeof WeakMap&&(D.working?D(e):e instanceof WeakMap)}function M(e){return"[object WeakSet]"===u(e)}function B(e){return M(e)}function F(e){return"[object ArrayBuffer]"===u(e)}function $(e){return"undefined"!==typeof ArrayBuffer&&(F.working?F(e):e instanceof ArrayBuffer)}function U(e){return"[object DataView]"===u(e)}function j(e){return"undefined"!==typeof DataView&&(U.working?U(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=i,t.isTypedArray=o,t.isPromise=v,t.isArrayBufferView=b,t.isUint8Array=y,t.isUint8ClampedArray=w,t.isUint16Array=E,t.isUint32Array=_,t.isInt8Array=S,t.isInt16Array=k,t.isInt32Array=x,t.isFloat32Array=A,t.isFloat64Array=N,t.isBigInt64Array=C,t.isBigUint64Array=T,R.working="undefined"!==typeof Map&&R(new Map),t.isMap=O,I.working="undefined"!==typeof Set&&I(new Set),t.isSet=L,D.working="undefined"!==typeof WeakMap&&D(new WeakMap),t.isWeakMap=P,M.working="undefined"!==typeof WeakSet&&M(new WeakSet),t.isWeakSet=B,F.working="undefined"!==typeof ArrayBuffer&&F(new ArrayBuffer),t.isArrayBuffer=$,U.working="undefined"!==typeof ArrayBuffer&&"undefined"!==typeof DataView&&U(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=j;var V="undefined"!==typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function K(e){return"[object SharedArrayBuffer]"===u(e)}function H(e){return"undefined"!==typeof V&&("undefined"===typeof K.working&&(K.working=K(new V)),K.working?K(e):e instanceof V)}function G(e){return"[object AsyncFunction]"===u(e)}function z(e){return"[object Map Iterator]"===u(e)}function q(e){return"[object Set Iterator]"===u(e)}function X(e){return"[object Generator]"===u(e)}function W(e){return"[object WebAssembly.Module]"===u(e)}function Y(e){return g(e,d)}function Q(e){return g(e,h)}function J(e){return g(e,p)}function Z(e){return l&&g(e,f)}function ee(e){return c&&g(e,m)}function te(e){return Y(e)||Q(e)||J(e)||Z(e)||ee(e)}function ne(e){return"undefined"!==typeof Uint8Array&&($(e)||H(e))}t.isSharedArrayBuffer=H,t.isAsyncFunction=G,t.isMapIterator=z,t.isSetIterator=q,t.isGeneratorObject=X,t.isWebAssemblyCompiledModule=W,t.isNumberObject=Y,t.isStringObject=Q,t.isBooleanObject=J,t.isBigIntObject=Z,t.isSymbolObject=ee,t.isBoxedPrimitive=te,t.isAnyArrayBuffer=ne,["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},49208:function(e,t,n){var r=n(39907),i=n(4364),a=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},o=/%[sdj%]/g;t.format=function(e){if(!x(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(u(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,a=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"}default:return e}})),s=r[n];n<i;s=r[++n])_(s)||!T(s)?a+=" "+s:a+=" "+u(s);return a},t.deprecate=function(e,n){if("undefined"!==typeof r&&!0===r.noDeprecation)return e;if("undefined"===typeof r)return function(){return t.deprecate(e,n).apply(this,arguments)};var a=!1;function o(){if(!a){if(r.throwDeprecation)throw new Error(n);r.traceDeprecation?i.trace(n):i.error(n),a=!0}return e.apply(this,arguments)}return o};var s={},l=/^$/;if({NODE_ENV:"production",BASE_URL:"/"}.NODE_DEBUG){var c={NODE_ENV:"production",BASE_URL:"/"}.NODE_DEBUG;c=c.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),l=new RegExp("^"+c+"$","i")}function u(e,n){var r={seen:[],stylize:h};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),E(n)?r.showHidden=n:n&&t._extend(r,n),N(r.showHidden)&&(r.showHidden=!1),N(r.depth)&&(r.depth=2),N(r.colors)&&(r.colors=!1),N(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=d),f(r,e,r.depth)}function d(e,t){var n=u.styles[t];return n?"["+u.colors[n][0]+"m"+e+"["+u.colors[n][1]+"m":e}function h(e,t){return e}function p(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}function f(e,n,r){if(e.customInspect&&n&&I(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return x(i)||(i=f(e,i,r)),i}var a=m(e,n);if(a)return a;var o=Object.keys(n),s=p(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(n)),O(n)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return g(n);if(0===o.length){if(I(n)){var l=n.name?": "+n.name:"";return e.stylize("[Function"+l+"]","special")}if(C(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(R(n))return e.stylize(Date.prototype.toString.call(n),"date");if(O(n))return g(n)}var c,u="",d=!1,h=["{","}"];if(w(n)&&(d=!0,h=["[","]"]),I(n)){var E=n.name?": "+n.name:"";u=" [Function"+E+"]"}return C(n)&&(u=" "+RegExp.prototype.toString.call(n)),R(n)&&(u=" "+Date.prototype.toUTCString.call(n)),O(n)&&(u=" "+g(n)),0!==o.length||d&&0!=n.length?r<0?C(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),c=d?v(e,n,r,s,o):o.map((function(t){return b(e,n,r,s,t,d)})),e.seen.pop(),y(c,u,h)):h[0]+u+h[1]}function m(e,t){if(N(t))return e.stylize("undefined","undefined");if(x(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return k(t)?e.stylize(""+t,"number"):E(t)?e.stylize(""+t,"boolean"):_(t)?e.stylize("null","null"):void 0}function g(e){return"["+Error.prototype.toString.call(e)+"]"}function v(e,t,n,r,i){for(var a=[],o=0,s=t.length;o<s;++o)F(t,String(o))?a.push(b(e,t,n,r,String(o),!0)):a.push("");return i.forEach((function(i){i.match(/^\d+$/)||a.push(b(e,t,n,r,i,!0))})),a}function b(e,t,n,r,i,a){var o,s,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?s=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),F(r,i)||(o="["+i+"]"),s||(e.seen.indexOf(l.value)<0?(s=_(n)?f(e,l.value,null):f(e,l.value,n-1),s.indexOf("\n")>-1&&(s=a?s.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n"))):s=e.stylize("[Circular]","special")),N(o)){if(a&&i.match(/^\d+$/))return s;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.slice(1,-1),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function y(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return r>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function w(e){return Array.isArray(e)}function E(e){return"boolean"===typeof e}function _(e){return null===e}function S(e){return null==e}function k(e){return"number"===typeof e}function x(e){return"string"===typeof e}function A(e){return"symbol"===typeof e}function N(e){return void 0===e}function C(e){return T(e)&&"[object RegExp]"===D(e)}function T(e){return"object"===typeof e&&null!==e}function R(e){return T(e)&&"[object Date]"===D(e)}function O(e){return T(e)&&("[object Error]"===D(e)||e instanceof Error)}function I(e){return"function"===typeof e}function L(e){return null===e||"boolean"===typeof e||"number"===typeof e||"string"===typeof e||"symbol"===typeof e||"undefined"===typeof e}function D(e){return Object.prototype.toString.call(e)}function P(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!s[e])if(l.test(e)){var n=r.pid;s[e]=function(){var r=t.format.apply(t,arguments);i.error("%s %d: %s",e,n,r)}}else s[e]=function(){};return s[e]},t.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=n(51531),t.isArray=w,t.isBoolean=E,t.isNull=_,t.isNullOrUndefined=S,t.isNumber=k,t.isString=x,t.isSymbol=A,t.isUndefined=N,t.isRegExp=C,t.types.isRegExp=C,t.isObject=T,t.isDate=R,t.types.isDate=R,t.isError=O,t.types.isNativeError=O,t.isFunction=I,t.isPrimitive=L,t.isBuffer=n(95272);var M=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function B(){var e=new Date,t=[P(e.getHours()),P(e.getMinutes()),P(e.getSeconds())].join(":");return[e.getDate(),M[e.getMonth()],t].join(" ")}function F(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){i.log("%s - %s",B(),t.format.apply(t,arguments))},t.inherits=n(35615),t._extend=function(e,t){if(!t||!T(t))return e;var n=Object.keys(t),r=n.length;while(r--)e[n[r]]=t[n[r]];return e};var $="undefined"!==typeof Symbol?Symbol("util.promisify.custom"):void 0;function U(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}function j(e){if("function"!==typeof e)throw new TypeError('The "original" argument must be of type Function');function t(){for(var t=[],n=0;n<arguments.length;n++)t.push(arguments[n]);var i=t.pop();if("function"!==typeof i)throw new TypeError("The last argument must be of type Function");var a=this,o=function(){return i.apply(a,arguments)};e.apply(this,t).then((function(e){r.nextTick(o.bind(null,null,e))}),(function(e){r.nextTick(U.bind(null,e,o))}))}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,a(e)),t}t.promisify=function(e){if("function"!==typeof e)throw new TypeError('The "original" argument must be of type Function');if($&&e[$]){var t=e[$];if("function"!==typeof t)throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,$,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),i=[],a=0;a<arguments.length;a++)i.push(arguments[a]);i.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,i)}catch(o){n(o)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),$&&Object.defineProperty(t,$,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,a(e))},t.promisify.custom=$,t.callbackify=j},47433:function(e,t){"use strict";t.A=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n}},71037:function(e,t,n){var r=n(67592);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("965972b6",r,!0,{sourceMap:!1,shadowMode:!1})},9252:function(e,t,n){var r=n(28913);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("407ab32e",r,!0,{sourceMap:!1,shadowMode:!1})},63864:function(e,t,n){var r=n(96696);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("695df0fd",r,!0,{sourceMap:!1,shadowMode:!1})},4071:function(e,t,n){var r=n(26855);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("07ce45a4",r,!0,{sourceMap:!1,shadowMode:!1})},53935:function(e,t,n){var r=n(5711);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("f609cf72",r,!0,{sourceMap:!1,shadowMode:!1})},53543:function(e,t,n){var r=n(4711);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("29d48619",r,!0,{sourceMap:!1,shadowMode:!1})},82431:function(e,t,n){var r=n(70655);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("279cc0f9",r,!0,{sourceMap:!1,shadowMode:!1})},9722:function(e,t,n){var r=n(31354);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("e65ca0d2",r,!0,{sourceMap:!1,shadowMode:!1})},47045:function(e,t,n){var r=n(44325);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("27f3b74a",r,!0,{sourceMap:!1,shadowMode:!1})},38993:function(e,t,n){var r=n(16817);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("8981980e",r,!0,{sourceMap:!1,shadowMode:!1})},85918:function(e,t,n){var r=n(1694);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("74f20dca",r,!0,{sourceMap:!1,shadowMode:!1})},45529:function(e,t,n){var r=n(76985);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("12e49813",r,!0,{sourceMap:!1,shadowMode:!1})},36851:function(e,t,n){var r=n(23283);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("096eb12e",r,!0,{sourceMap:!1,shadowMode:!1})},27539:function(e,t,n){var r=n(2387);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("cfd3f7e6",r,!0,{sourceMap:!1,shadowMode:!1})},39066:function(e,t,n){var r=n(6618);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("58c7ad54",r,!0,{sourceMap:!1,shadowMode:!1})},76769:function(e,t,n){var r=n(95009);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("81c71f58",r,!0,{sourceMap:!1,shadowMode:!1})},3427:function(e,t,n){var r=n(59395);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("33bcd240",r,!0,{sourceMap:!1,shadowMode:!1})},32435:function(e,t,n){var r=n(9299);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("3df338b8",r,!0,{sourceMap:!1,shadowMode:!1})},45978:function(e,t,n){var r=n(20602);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("0f55430e",r,!0,{sourceMap:!1,shadowMode:!1})},47668:function(e,t,n){var r=n(71124);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("017ed6a8",r,!0,{sourceMap:!1,shadowMode:!1})},86961:function(e,t,n){var r=n(92049);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("706580d6",r,!0,{sourceMap:!1,shadowMode:!1})},72674:function(e,t,n){var r=n(83234);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("ec2b28d2",r,!0,{sourceMap:!1,shadowMode:!1})},40876:function(e,t,n){var r=n(73132);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("0685007a",r,!0,{sourceMap:!1,shadowMode:!1})},54851:function(e,t,n){var r=n(89827);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("ae6b26d2",r,!0,{sourceMap:!1,shadowMode:!1})},76238:function(e,t,n){var r=n(49358);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("0ea71f4d",r,!0,{sourceMap:!1,shadowMode:!1})},53456:function(e,t,n){var r=n(59024);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("5ad21d3e",r,!0,{sourceMap:!1,shadowMode:!1})},45261:function(e,t,n){var r=n(46618);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("5c03d4dc",r,!0,{sourceMap:!1,shadowMode:!1})},93127:function(e,t,n){var r=n(3284);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("663a25c0",r,!0,{sourceMap:!1,shadowMode:!1})},67365:function(e,t,n){var r=n(94469);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("5630a546",r,!0,{sourceMap:!1,shadowMode:!1})},16625:function(e,t,n){var r=n(90961);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("6e4ad154",r,!0,{sourceMap:!1,shadowMode:!1})},93463:function(e,t,n){var r=n(36631);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("4b842c29",r,!0,{sourceMap:!1,shadowMode:!1})},97876:function(e,t,n){var r=n(50612);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("4cdee72e",r,!0,{sourceMap:!1,shadowMode:!1})},44220:function(e,t,n){var r=n(23132);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("e52873ae",r,!0,{sourceMap:!1,shadowMode:!1})},35200:function(e,t,n){var r=n(82496);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("5bb18125",r,!0,{sourceMap:!1,shadowMode:!1})},46130:function(e,t,n){var r=n(56690);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("517aab91",r,!0,{sourceMap:!1,shadowMode:!1})},2578:function(e,t,n){var r=n(86226);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("27072055",r,!0,{sourceMap:!1,shadowMode:!1})},87968:function(e,t,n){var r=n(83904);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("14dcb12e",r,!0,{sourceMap:!1,shadowMode:!1})},24183:function(e,t,n){var r=n(50391);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("f1b413fc",r,!0,{sourceMap:!1,shadowMode:!1})},717:function(e,t,n){var r=n(62445);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("0c981c96",r,!0,{sourceMap:!1,shadowMode:!1})},90828:function(e,t,n){var r=n(54924);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("4880fe8a",r,!0,{sourceMap:!1,shadowMode:!1})},21198:function(e,t,n){var r=n(87886);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("65fd3062",r,!0,{sourceMap:!1,shadowMode:!1})},24e3:function(e,t,n){var r=n(94944);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("a89edbbc",r,!0,{sourceMap:!1,shadowMode:!1})},16892:function(e,t,n){var r=n(61276);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("1983cda9",r,!0,{sourceMap:!1,shadowMode:!1})},4901:function(e,t,n){var r=n(32101);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("6a1f327e",r,!0,{sourceMap:!1,shadowMode:!1})},14813:function(e,t,n){var r=n(9309);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("622bfed8",r,!0,{sourceMap:!1,shadowMode:!1})},31135:function(e,t,n){var r=n(67007);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("0f89e9cf",r,!0,{sourceMap:!1,shadowMode:!1})},3704:function(e,t,n){var r=n(78712);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("78610f54",r,!0,{sourceMap:!1,shadowMode:!1})},58222:function(e,t,n){var r=n(19662);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("3d6360d4",r,!0,{sourceMap:!1,shadowMode:!1})},53575:function(e,t,n){var r=n(67271);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("18b320ff",r,!0,{sourceMap:!1,shadowMode:!1})},41772:function(e,t,n){var r=n(83852);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("079542f0",r,!0,{sourceMap:!1,shadowMode:!1})},13343:function(e,t,n){var r=n(58335);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("2053e0a7",r,!0,{sourceMap:!1,shadowMode:!1})},32254:function(e,t,n){var r=n(38238);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("0c4f3662",r,!0,{sourceMap:!1,shadowMode:!1})},38106:function(e,t,n){var r=n(74298);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("8a439548",r,!0,{sourceMap:!1,shadowMode:!1})},83957:function(e,t,n){var r=n(18133);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("90496020",r,!0,{sourceMap:!1,shadowMode:!1})},91230:function(e,t,n){var r=n(61502);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("c32f2c50",r,!0,{sourceMap:!1,shadowMode:!1})},34941:function(e,t,n){var r=n(38589);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("8fa42958",r,!0,{sourceMap:!1,shadowMode:!1})},94246:function(e,t,n){var r=n(29094);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("0211f789",r,!0,{sourceMap:!1,shadowMode:!1})},92429:function(e,t,n){var r=n(35693);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("a9778ac2",r,!0,{sourceMap:!1,shadowMode:!1})},7156:function(e,t,n){var r=n(42836);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("4eac63c4",r,!0,{sourceMap:!1,shadowMode:!1})},72316:function(e,t,n){var r=n(90428);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("65654eea",r,!0,{sourceMap:!1,shadowMode:!1})},71718:function(e,t,n){var r=n(56454);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("1e2446b7",r,!0,{sourceMap:!1,shadowMode:!1})},45566:function(e,t,n){var r=n(51582);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("3cdbc21c",r,!0,{sourceMap:!1,shadowMode:!1})},7359:function(e,t,n){var r=n(58655);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("29a1f1ec",r,!0,{sourceMap:!1,shadowMode:!1})},18111:function(e,t,n){var r=n(48415);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("c26d9ae8",r,!0,{sourceMap:!1,shadowMode:!1})},32701:function(e,t,n){var r=n(30909);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("9a8631c0",r,!0,{sourceMap:!1,shadowMode:!1})},67394:function(e,t,n){var r=n(58498);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("d4f9953a",r,!0,{sourceMap:!1,shadowMode:!1})},32775:function(e,t,n){var r=n(71047);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("643dfc2a",r,!0,{sourceMap:!1,shadowMode:!1})},43767:function(e,t,n){var r=n(12215);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("73cb2994",r,!0,{sourceMap:!1,shadowMode:!1})},29039:function(e,t,n){var r=n(21199);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("a745f270",r,!0,{sourceMap:!1,shadowMode:!1})},12914:function(e,t,n){var r=n(37746);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("14d6db5f",r,!0,{sourceMap:!1,shadowMode:!1})},5091:function(e,t,n){var r=n(21027);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("721a2607",r,!0,{sourceMap:!1,shadowMode:!1})},39265:function(e,t,n){var r=n(31649);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("3138caa8",r,!0,{sourceMap:!1,shadowMode:!1})},32464:function(e,t,n){var r=n(52304);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("799fe399",r,!0,{sourceMap:!1,shadowMode:!1})},44166:function(e,t,n){var r=n(72326);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("f12b7872",r,!0,{sourceMap:!1,shadowMode:!1})},49608:function(e,t,n){var r=n(65320);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("73d296b4",r,!0,{sourceMap:!1,shadowMode:!1})},72001:function(e,t,n){var r=n(64065);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("9763166c",r,!0,{sourceMap:!1,shadowMode:!1})},83301:function(e,t,n){var r=n(38245);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("5e3edba4",r,!0,{sourceMap:!1,shadowMode:!1})},42596:function(e,t,n){var r=n(30116);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("70bf6176",r,!0,{sourceMap:!1,shadowMode:!1})},13358:function(e,t,n){var r=n(13998);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("1f56704d",r,!0,{sourceMap:!1,shadowMode:!1})},74811:function(e,t,n){var r=n(33403);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("5536bad8",r,!0,{sourceMap:!1,shadowMode:!1})},56554:function(e,t,n){var r=n(64970);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("6ce52309",r,!0,{sourceMap:!1,shadowMode:!1})},75280:function(e,t,n){var r=n(76592);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("c416a7e2",r,!0,{sourceMap:!1,shadowMode:!1})},60226:function(e,t,n){var r=n(75106);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("51f6978c",r,!0,{sourceMap:!1,shadowMode:!1})},41158:function(e,t,n){var r=n(81945);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("2715a0f6",r,!0,{sourceMap:!1,shadowMode:!1})},29056:function(e,t,n){var r=n(66208);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals);var i=n(74825).A;i("7f55fbee",r,!0,{sourceMap:!1,shadowMode:!1})},74825:function(e,t,n){"use strict";function r(e,t){for(var n=[],r={},i=0;i<t.length;i++){var a=t[i],o=a[0],s=a[1],l=a[2],c=a[3],u={id:e+":"+i,css:s,media:l,sourceMap:c};r[o]?r[o].parts.push(u):n.push(r[o]={id:o,parts:[u]})}return n}n.d(t,{A:function(){return f}});var i="undefined"!==typeof document;if("undefined"!==typeof DEBUG&&DEBUG&&!i)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var a={},o=i&&(document.head||document.getElementsByTagName("head")[0]),s=null,l=0,c=!1,u=function(){},d=null,h="data-vue-ssr-id",p="undefined"!==typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function f(e,t,n,i){c=n,d=i||{};var o=r(e,t);return m(o),function(t){for(var n=[],i=0;i<o.length;i++){var s=o[i],l=a[s.id];l.refs--,n.push(l)}t?(o=r(e,t),m(o)):o=[];for(i=0;i<n.length;i++){l=n[i];if(0===l.refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete a[l.id]}}}}function m(e){for(var t=0;t<e.length;t++){var n=e[t],r=a[n.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](n.parts[i]);for(;i<n.parts.length;i++)r.parts.push(v(n.parts[i]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{var o=[];for(i=0;i<n.parts.length;i++)o.push(v(n.parts[i]));a[n.id]={id:n.id,refs:1,parts:o}}}}function g(){var e=document.createElement("style");return e.type="text/css",o.appendChild(e),e}function v(e){var t,n,r=document.querySelector("style["+h+'~="'+e.id+'"]');if(r){if(c)return u;r.parentNode.removeChild(r)}if(p){var i=l++;r=s||(s=g()),t=y.bind(null,r,i,!1),n=y.bind(null,r,i,!0)}else r=g(),t=w.bind(null,r),n=function(){r.parentNode.removeChild(r)};return t(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap)return;t(e=r)}else n()}}var b=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}();function y(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=b(t,i);else{var a=document.createTextNode(i),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}function w(e,t){var n=t.css,r=t.media,i=t.sourceMap;if(r&&e.setAttribute("media",r),d.ssrId&&e.setAttribute(h,t.id),i&&(n+="\n/*# sourceURL="+i.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),e.styleSheet)e.styleSheet.cssText=n;else{while(e.firstChild)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},65359:function(e,t,n){"use strict";n.d(t,{i0:function(){return re},L8:function(){return ne},aH:function(){return te}});var r=n(9274);function i(){return a().__VUE_DEVTOOLS_GLOBAL_HOOK__}function a(){return"undefined"!==typeof navigator&&"undefined"!==typeof window?window:"undefined"!==typeof globalThis?globalThis:{}}const o="function"===typeof Proxy,s="devtools-plugin:setup",l="plugin:settings:set";let c,u;function d(){var e;return void 0!==c||("undefined"!==typeof window&&window.performance?(c=!0,u=window.performance):"undefined"!==typeof globalThis&&(null===(e=globalThis.perf_hooks)||void 0===e?void 0:e.performance)?(c=!0,u=globalThis.perf_hooks.performance):c=!1),c}function h(){return d()?u.now():Date.now()}class p{constructor(e,t){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=e,this.hook=t;const n={};if(e.settings)for(const o in e.settings){const t=e.settings[o];n[o]=t.defaultValue}const r=`__vue-devtools-plugin-settings__${e.id}`;let i=Object.assign({},n);try{const e=localStorage.getItem(r),t=JSON.parse(e);Object.assign(i,t)}catch(a){}this.fallbacks={getSettings(){return i},setSettings(e){try{localStorage.setItem(r,JSON.stringify(e))}catch(a){}i=e},now(){return h()}},t&&t.on(l,((e,t)=>{e===this.plugin.id&&this.fallbacks.setSettings(t)})),this.proxiedOn=new Proxy({},{get:(e,t)=>this.target?this.target.on[t]:(...e)=>{this.onQueue.push({method:t,args:e})}}),this.proxiedTarget=new Proxy({},{get:(e,t)=>this.target?this.target[t]:"on"===t?this.proxiedOn:Object.keys(this.fallbacks).includes(t)?(...e)=>(this.targetQueue.push({method:t,args:e,resolve:()=>{}}),this.fallbacks[t](...e)):(...e)=>new Promise((n=>{this.targetQueue.push({method:t,args:e,resolve:n})}))})}async setRealTarget(e){this.target=e;for(const t of this.onQueue)this.target.on[t.method](...t.args);for(const t of this.targetQueue)t.resolve(await this.target[t.method](...t.args))}}function f(e,t){const n=e,r=a(),l=i(),c=o&&n.enableEarlyProxy;if(!l||!r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__&&c){const e=c?new p(n,l):null,i=r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[];i.push({pluginDescriptor:n,setupFn:t,proxy:e}),e&&t(e.proxiedTarget)}else l.emit(s,e,t)}n(4364); +/*! + * vuex v4.1.0 + * (c) 2022 Evan You + * @license MIT + */var m="store";function g(e,t){Object.keys(e).forEach((function(n){return t(e[n],n)}))}function v(e){return null!==e&&"object"===typeof e}function b(e){return e&&"function"===typeof e.then}function y(e,t){return function(){return e(t)}}function w(e,t,n){return t.indexOf(e)<0&&(n&&n.prepend?t.unshift(e):t.push(e)),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function E(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;S(e,n,[],e._modules.root,!0),_(e,n,t)}function _(e,t,n){var i=e._state,a=e._scope;e.getters={},e._makeLocalGettersCache=Object.create(null);var o=e._wrappedGetters,s={},l={},c=(0,r.effectScope)(!0);c.run((function(){g(o,(function(t,n){s[n]=y(t,e),l[n]=(0,r.computed)((function(){return s[n]()})),Object.defineProperty(e.getters,n,{get:function(){return l[n].value},enumerable:!0})}))})),e._state=(0,r.reactive)({data:t}),e._scope=c,e.strict&&T(e),i&&n&&e._withCommit((function(){i.data=null})),a&&a.stop()}function S(e,t,n,r,i){var a=!n.length,o=e._modules.getNamespace(n);if(r.namespaced&&(e._modulesNamespaceMap[o],e._modulesNamespaceMap[o]=r),!a&&!i){var s=R(t,n.slice(0,-1)),l=n[n.length-1];e._withCommit((function(){s[l]=r.state}))}var c=r.context=k(e,o,n);r.forEachMutation((function(t,n){var r=o+n;A(e,r,t,c)})),r.forEachAction((function(t,n){var r=t.root?n:o+n,i=t.handler||t;N(e,r,i,c)})),r.forEachGetter((function(t,n){var r=o+n;C(e,r,t,c)})),r.forEachChild((function(r,a){S(e,t,n.concat(a),r,i)}))}function k(e,t,n){var r=""===t,i={dispatch:r?e.dispatch:function(n,r,i){var a=O(n,r,i),o=a.payload,s=a.options,l=a.type;return s&&s.root||(l=t+l),e.dispatch(l,o)},commit:r?e.commit:function(n,r,i){var a=O(n,r,i),o=a.payload,s=a.options,l=a.type;s&&s.root||(l=t+l),e.commit(l,o,s)}};return Object.defineProperties(i,{getters:{get:r?function(){return e.getters}:function(){return x(e,t)}},state:{get:function(){return R(e.state,n)}}}),i}function x(e,t){if(!e._makeLocalGettersCache[t]){var n={},r=t.length;Object.keys(e.getters).forEach((function(i){if(i.slice(0,r)===t){var a=i.slice(r);Object.defineProperty(n,a,{get:function(){return e.getters[i]},enumerable:!0})}})),e._makeLocalGettersCache[t]=n}return e._makeLocalGettersCache[t]}function A(e,t,n,r){var i=e._mutations[t]||(e._mutations[t]=[]);i.push((function(t){n.call(e,r.state,t)}))}function N(e,t,n,r){var i=e._actions[t]||(e._actions[t]=[]);i.push((function(t){var i=n.call(e,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:e.getters,rootState:e.state},t);return b(i)||(i=Promise.resolve(i)),e._devtoolHook?i.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):i}))}function C(e,t,n,r){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return n(r.state,r.getters,e.state,e.getters)})}function T(e){(0,r.watch)((function(){return e._state.data}),(function(){0}),{deep:!0,flush:"sync"})}function R(e,t){return t.reduce((function(e,t){return e[t]}),e)}function O(e,t,n){return v(e)&&e.type&&(n=t,t=e,e=e.type),{type:e,payload:t,options:n}}var I="vuex bindings",L="vuex:mutations",D="vuex:actions",P="vuex",M=0;function B(e,t){f({id:"org.vuejs.vuex",app:e,label:"Vuex",homepage:"https://next.vuex.vuejs.org/",logo:"https://vuejs.org/images/icons/favicon-96x96.png",packageName:"vuex",componentStateTypes:[I]},(function(n){n.addTimelineLayer({id:L,label:"Vuex Mutations",color:F}),n.addTimelineLayer({id:D,label:"Vuex Actions",color:F}),n.addInspector({id:P,label:"Vuex",icon:"storage",treeFilterPlaceholder:"Filter stores..."}),n.on.getInspectorTree((function(n){if(n.app===e&&n.inspectorId===P)if(n.filter){var r=[];H(r,t._modules.root,n.filter,""),n.rootNodes=r}else n.rootNodes=[K(t._modules.root,"")]})),n.on.getInspectorState((function(n){if(n.app===e&&n.inspectorId===P){var r=n.nodeId;x(t,r),n.state=G(q(t._modules,r),"root"===r?t.getters:t._makeLocalGettersCache,r)}})),n.on.editInspectorState((function(n){if(n.app===e&&n.inspectorId===P){var r=n.nodeId,i=n.path;"root"!==r&&(i=r.split("/").filter(Boolean).concat(i)),t._withCommit((function(){n.set(t._state.data,i,n.state.value)}))}})),t.subscribe((function(e,t){var r={};e.payload&&(r.payload=e.payload),r.state=t,n.notifyComponentUpdate(),n.sendInspectorTree(P),n.sendInspectorState(P),n.addTimelineEvent({layerId:L,event:{time:Date.now(),title:e.type,data:r}})})),t.subscribeAction({before:function(e,t){var r={};e.payload&&(r.payload=e.payload),e._id=M++,e._time=Date.now(),r.state=t,n.addTimelineEvent({layerId:D,event:{time:e._time,title:e.type,groupId:e._id,subtitle:"start",data:r}})},after:function(e,t){var r={},i=Date.now()-e._time;r.duration={_custom:{type:"duration",display:i+"ms",tooltip:"Action duration",value:i}},e.payload&&(r.payload=e.payload),r.state=t,n.addTimelineEvent({layerId:D,event:{time:Date.now(),title:e.type,groupId:e._id,subtitle:"end",data:r}})}})}))}var F=8702998,$=6710886,U=16777215,j={label:"namespaced",textColor:U,backgroundColor:$};function V(e){return e&&"root"!==e?e.split("/").slice(-2,-1)[0]:"Root"}function K(e,t){return{id:t||"root",label:V(t),tags:e.namespaced?[j]:[],children:Object.keys(e._children).map((function(n){return K(e._children[n],t+n+"/")}))}}function H(e,t,n,r){r.includes(n)&&e.push({id:r||"root",label:r.endsWith("/")?r.slice(0,r.length-1):r||"Root",tags:t.namespaced?[j]:[]}),Object.keys(t._children).forEach((function(i){H(e,t._children[i],n,r+i+"/")}))}function G(e,t,n){t="root"===n?t:t[n];var r=Object.keys(t),i={state:Object.keys(e.state).map((function(t){return{key:t,editable:!0,value:e.state[t]}}))};if(r.length){var a=z(t);i.getters=Object.keys(a).map((function(e){return{key:e.endsWith("/")?V(e):e,editable:!1,value:X((function(){return a[e]}))}}))}return i}function z(e){var t={};return Object.keys(e).forEach((function(n){var r=n.split("/");if(r.length>1){var i=t,a=r.pop();r.forEach((function(e){i[e]||(i[e]={_custom:{value:{},display:e,tooltip:"Module",abstract:!0}}),i=i[e]._custom.value})),i[a]=X((function(){return e[n]}))}else t[n]=X((function(){return e[n]}))})),t}function q(e,t){var n=t.split("/").filter((function(e){return e}));return n.reduce((function(e,r,i){var a=e[r];if(!a)throw new Error('Missing module "'+r+'" for path "'+t+'".');return i===n.length-1?a:a._children}),"root"===t?e:e.root._children)}function X(e){try{return e()}catch(t){return t}}var W=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var n=e.state;this.state=("function"===typeof n?n():n)||{}},Y={namespaced:{configurable:!0}};Y.namespaced.get=function(){return!!this._rawModule.namespaced},W.prototype.addChild=function(e,t){this._children[e]=t},W.prototype.removeChild=function(e){delete this._children[e]},W.prototype.getChild=function(e){return this._children[e]},W.prototype.hasChild=function(e){return e in this._children},W.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},W.prototype.forEachChild=function(e){g(this._children,e)},W.prototype.forEachGetter=function(e){this._rawModule.getters&&g(this._rawModule.getters,e)},W.prototype.forEachAction=function(e){this._rawModule.actions&&g(this._rawModule.actions,e)},W.prototype.forEachMutation=function(e){this._rawModule.mutations&&g(this._rawModule.mutations,e)},Object.defineProperties(W.prototype,Y);var Q=function(e){this.register([],e,!1)};function J(e,t,n){if(t.update(n),n.modules)for(var r in n.modules){if(!t.getChild(r))return void 0;J(e.concat(r),t.getChild(r),n.modules[r])}}Q.prototype.get=function(e){return e.reduce((function(e,t){return e.getChild(t)}),this.root)},Q.prototype.getNamespace=function(e){var t=this.root;return e.reduce((function(e,n){return t=t.getChild(n),e+(t.namespaced?n+"/":"")}),"")},Q.prototype.update=function(e){J([],this.root,e)},Q.prototype.register=function(e,t,n){var r=this;void 0===n&&(n=!0);var i=new W(t,n);if(0===e.length)this.root=i;else{var a=this.get(e.slice(0,-1));a.addChild(e[e.length-1],i)}t.modules&&g(t.modules,(function(t,i){r.register(e.concat(i),t,n)}))},Q.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1],r=t.getChild(n);r&&r.runtime&&t.removeChild(n)},Q.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1];return!!t&&t.hasChild(n)};var Z=function(e){var t=this;void 0===e&&(e={});var n=e.plugins;void 0===n&&(n=[]);var r=e.strict;void 0===r&&(r=!1);var i=e.devtools;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new Q(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._makeLocalGettersCache=Object.create(null),this._scope=null,this._devtools=i;var a=this,o=this,s=o.dispatch,l=o.commit;this.dispatch=function(e,t){return s.call(a,e,t)},this.commit=function(e,t,n){return l.call(a,e,t,n)},this.strict=r;var c=this._modules.root.state;S(this,c,[],this._modules.root),_(this,c),n.forEach((function(e){return e(t)}))},ee={state:{configurable:!0}};Z.prototype.install=function(e,t){e.provide(t||m,this),e.config.globalProperties.$store=this;var n=void 0!==this._devtools&&this._devtools;n&&B(e,this)},ee.state.get=function(){return this._state.data},ee.state.set=function(e){0},Z.prototype.commit=function(e,t,n){var r=this,i=O(e,t,n),a=i.type,o=i.payload,s=(i.options,{type:a,payload:o}),l=this._mutations[a];l&&(this._withCommit((function(){l.forEach((function(e){e(o)}))})),this._subscribers.slice().forEach((function(e){return e(s,r.state)})))},Z.prototype.dispatch=function(e,t){var n=this,r=O(e,t),i=r.type,a=r.payload,o={type:i,payload:a},s=this._actions[i];if(s){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(o,n.state)}))}catch(c){0}var l=s.length>1?Promise.all(s.map((function(e){return e(a)}))):s[0](a);return new Promise((function(e,t){l.then((function(t){try{n._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(o,n.state)}))}catch(c){0}e(t)}),(function(e){try{n._actionSubscribers.filter((function(e){return e.error})).forEach((function(t){return t.error(o,n.state,e)}))}catch(c){0}t(e)}))}))}},Z.prototype.subscribe=function(e,t){return w(e,this._subscribers,t)},Z.prototype.subscribeAction=function(e,t){var n="function"===typeof e?{before:e}:e;return w(n,this._actionSubscribers,t)},Z.prototype.watch=function(e,t,n){var i=this;return(0,r.watch)((function(){return e(i.state,i.getters)}),t,Object.assign({},n))},Z.prototype.replaceState=function(e){var t=this;this._withCommit((function(){t._state.data=e}))},Z.prototype.registerModule=function(e,t,n){void 0===n&&(n={}),"string"===typeof e&&(e=[e]),this._modules.register(e,t),S(this,this.state,e,this._modules.get(e),n.preserveState),_(this,this.state)},Z.prototype.unregisterModule=function(e){var t=this;"string"===typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){var n=R(t.state,e.slice(0,-1));delete n[e[e.length-1]]})),E(this)},Z.prototype.hasModule=function(e){return"string"===typeof e&&(e=[e]),this._modules.isRegistered(e)},Z.prototype.hotUpdate=function(e){this._modules.update(e),E(this,!0)},Z.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(Z.prototype,ee);var te=oe((function(e,t){var n={};return ie(t).forEach((function(t){var r=t.key,i=t.val;n[r]=function(){var t=this.$store.state,n=this.$store.getters;if(e){var r=se(this.$store,"mapState",e);if(!r)return;t=r.context.state,n=r.context.getters}return"function"===typeof i?i.call(this,t,n):t[i]},n[r].vuex=!0})),n})),ne=(oe((function(e,t){var n={};return ie(t).forEach((function(t){var r=t.key,i=t.val;n[r]=function(){var t=[],n=arguments.length;while(n--)t[n]=arguments[n];var r=this.$store.commit;if(e){var a=se(this.$store,"mapMutations",e);if(!a)return;r=a.context.commit}return"function"===typeof i?i.apply(this,[r].concat(t)):r.apply(this.$store,[i].concat(t))}})),n})),oe((function(e,t){var n={};return ie(t).forEach((function(t){var r=t.key,i=t.val;i=e+i,n[r]=function(){if(!e||se(this.$store,"mapGetters",e))return this.$store.getters[i]},n[r].vuex=!0})),n}))),re=oe((function(e,t){var n={};return ie(t).forEach((function(t){var r=t.key,i=t.val;n[r]=function(){var t=[],n=arguments.length;while(n--)t[n]=arguments[n];var r=this.$store.dispatch;if(e){var a=se(this.$store,"mapActions",e);if(!a)return;r=a.context.dispatch}return"function"===typeof i?i.apply(this,[r].concat(t)):r.apply(this.$store,[i].concat(t))}})),n}));function ie(e){return ae(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(t){return{key:t,val:e[t]}})):[]}function ae(e){return Array.isArray(e)||v(e)}function oe(e){return function(t,n){return"string"!==typeof t?(n=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,n)}}function se(e,t,n){var r=e._modulesNamespaceMap[n];return r}},52730:function(e,t,n){"use strict";var r=n(80705),i=n(14834),a=n(28498),o=n(79818),s=n(69336),l=o("Object.prototype.toString"),c=n(51913)(),u="undefined"===typeof globalThis?n.g:globalThis,d=i(),h=o("String.prototype.slice"),p=Object.getPrototypeOf,f=o("Array.prototype.indexOf",!0)||function(e,t){for(var n=0;n<e.length;n+=1)if(e[n]===t)return n;return-1},m={__proto__:null};r(d,c&&s&&p?function(e){var t=new u[e];if(Symbol.toStringTag in t){var n=p(t),r=s(n,Symbol.toStringTag);if(!r){var i=p(n);r=s(i,Symbol.toStringTag)}m["$"+e]=a(r.get)}}:function(e){var t=new u[e],n=t.slice||t.set;n&&(m["$"+e]=a(n))});var g=function(e){var t=!1;return r(m,(function(n,r){if(!t)try{"$"+n(e)===r&&(t=h(r,1))}catch(i){}})),t},v=function(e){var t=!1;return r(m,(function(n,r){if(!t)try{n(e),t=h(r,1)}catch(i){}})),t};e.exports=function(e){if(!e||"object"!==typeof e)return!1;if(!c){var t=h(l(e),8,-1);return f(d,t)>-1?t:"Object"===t&&v(e)}return s?g(e):null}},93227:function(e){e.exports=n;var t=Object.prototype.hasOwnProperty;function n(){for(var e={},n=0;n<arguments.length;n++){var r=arguments[n];for(var i in r)t.call(r,i)&&(e[i]=r[i])}return e}},47047:function(e){"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},10222:function(e,t,n){"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"===typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,i=arguments.length;n<i;n++)t.push(arguments[n]);return t}function i(e,t,n){var r=t===e.head?new s(n,null,t,e):new s(n,t,t.next,e);return null===r.next&&(e.tail=r),null===r.prev&&(e.head=r),e.length++,r}function a(e,t){e.tail=new s(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function o(e,t){e.head=new s(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function s(e,t,n,r){if(!(this instanceof s))return new s(e,t,n,r);this.list=r,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,n?(n.prev=this,this.next=n):this.next=null}e.exports=r,r.Node=s,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,n=e.prev;return t&&(t.prev=n),n&&(n.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=n),e.list.length--,e.next=null,e.prev=null,e.list=null,t},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},r.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)a(this,arguments[e]);return this.length},r.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},r.prototype.forEach=function(e,t){t=t||this;for(var n=this.head,r=0;null!==n;r++)e.call(t,n.value,r,this),n=n.next},r.prototype.forEachReverse=function(e,t){t=t||this;for(var n=this.tail,r=this.length-1;null!==n;r--)e.call(t,n.value,r,this),n=n.prev},r.prototype.get=function(e){for(var t=0,n=this.head;null!==n&&t<e;t++)n=n.next;if(t===e&&null!==n)return n.value},r.prototype.getReverse=function(e){for(var t=0,n=this.tail;null!==n&&t<e;t++)n=n.prev;if(t===e&&null!==n)return n.value},r.prototype.map=function(e,t){t=t||this;for(var n=new r,i=this.head;null!==i;)n.push(e.call(t,i.value,this)),i=i.next;return n},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r,i=this.tail;null!==i;)n.push(e.call(t,i.value,this)),i=i.prev;return n},r.prototype.reduce=function(e,t){var n,r=this.head;if(arguments.length>1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var i=0;null!==r;i++)n=e(n,r.value,i),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var i=this.length-1;null!==r;i--)n=e(n,r.value,i),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=0,a=this.head;null!==a&&i<e;i++)a=a.next;for(;null!==a&&i<t;i++,a=a.next)n.push(a.value);return n},r.prototype.sliceReverse=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=this.length,a=this.tail;null!==a&&i>t;i--)a=a.prev;for(;null!==a&&i>e;i--,a=a.prev)n.push(a.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,a=this.head;null!==a&&r<e;r++)a=a.next;var o=[];for(r=0;a&&r<t;r++)o.push(a.value),a=this.removeNode(a);null===a&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(r=0;r<n.length;r++)a=i(this,a,n[r]);return o},r.prototype.reverse=function(){for(var e=this.head,t=this.tail,n=e;null!==n;n=n.prev){var r=n.prev;n.prev=n.next,n.next=r}return this.head=t,this.tail=e,this};try{n(47047)(r)}catch(l){}},96817:function(e,t,n){var r={"./csp/dark/rancher-logo.svg":32195,"./csp/favicon.png":31365,"./csp/metadata":6471,"./csp/metadata.json":6471,"./csp/rancher-logo.svg":42850,"./federal/dark/rancher-logo.svg":70266,"./federal/metadata":91862,"./federal/metadata.json":91862,"./federal/rancher-logo.svg":18729,"./harvester/favicon.png":23561,"./harvester/metadata":51507,"./harvester/metadata.json":51507,"./rgs/dark/rancher-logo.svg":85501,"./rgs/metadata":48401,"./rgs/metadata.json":48401,"./rgs/rancher-logo.svg":24548,"./suse/dark/rancher-logo.svg":47629,"./suse/favicon.png":17089,"./suse/metadata":37259,"./suse/metadata.json":37259,"./suse/rancher-logo.svg":8084};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=96817},4378:function(e,t,n){var r={"./csp/dark/rancher-logo.svg":32195,"./federal/dark/rancher-logo.svg":70266,"./rgs/dark/rancher-logo.svg":85501,"./suse/dark/rancher-logo.svg":47629};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=4378},93558:function(e,t,n){var r={"./csp/metadata.json":6471,"./federal/metadata.json":91862,"./harvester/metadata.json":51507,"./rgs/metadata.json":48401,"./suse/metadata.json":37259};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=93558},74752:function(e,t,n){var r={"./banner.svg":95754,"./dark/banner.svg":9273,"./dark/login-landscape.svg":26458,"./dark/rancher-logo.svg":55966,"./decoration-cloud-big-white.svg":12531,"./decoration-ground.svg":77430,"./error-desert-landscape.svg":21492,"./half-logo.svg":28225,"./harvester.png":57074,"./harvester.svg":27782,"./login-landscape.svg":46751,"./rancher-logo.svg":5669,"./setup-step-one.svg":549,"./sunglasses.svg":38566};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=74752},87900:function(e,t,n){var r={"./banner.svg":95754,"./dark/banner.svg":9273,"./dark/login-landscape.svg":26458,"./dark/rancher-logo.svg":55966,"./decoration-cloud-big-white.svg":12531,"./decoration-ground.svg":77430,"./error-desert-landscape.svg":21492,"./half-logo.svg":28225,"./harvester.png":57074,"./harvester.svg":27782,"./login-landscape.svg":46751,"./rancher-logo.svg":5669,"./setup-step-one.svg":549,"./sunglasses.svg":38566};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=87900},53588:function(e,t,n){var r={"./aliyun-black.svg":87526,"./aliyun.svg":17180,"./aliyunecs-black.svg":75685,"./aliyunecs.svg":38683,"./amazonec2-black.svg":52212,"./amazonec2.svg":16598,"./amazoneks-black.svg":43881,"./amazoneks.svg":90287,"./aws.svg":59835,"./azure-black.svg":80895,"./azure.svg":60961,"./azuread-black.svg":81392,"./azuread.svg":45634,"./azureaks-black.svg":35894,"./azureaks.svg":40268,"./baidu-black.svg":71351,"./baidu.svg":47113,"./cloudca-black.svg":50309,"./cloudca.svg":23131,"./cloudscale-black.svg":51773,"./cloudscale.svg":86531,"./custom.svg":29181,"./digitalocean-black.svg":65988,"./digitalocean.svg":19110,"./equinix-black.svg":66335,"./equinix.svg":60705,"./exoscale.svg":12896,"./gcp.svg":2054,"./gke-black.svg":3405,"./gke.svg":61939,"./google.svg":32561,"./googlegke-black.svg":73562,"./googlegke.svg":97712,"./harvester.svg":53938,"./huaweicce-black.svg":91128,"./huaweicce.svg":40634,"./import.svg":28499,"./k3s-black.svg":35671,"./k3s.svg":85545,"./kubernetes-black.svg":27442,"./kubernetes.svg":9144,"./linode.svg":75553,"./linodelke-black.svg":96441,"./linodelke.svg":3199,"./local-cluster.svg":47600,"./minikube-black.svg":18152,"./minikube.svg":92746,"./nutanix.svg":70079,"./oci-black.svg":40097,"./oci.svg":46487,"./openstack-black.svg":57990,"./openstack.svg":53116,"./oracle.svg":88594,"./oracleoke-black.svg":56347,"./oracleoke.svg":9053,"./otc-black.svg":67294,"./otc.svg":69348,"./otccce.svg":24079,"./outscale.svg":72886,"./ovhcloudmks.svg":49619,"./ovhcloudpubliccloud.svg":54474,"./packet-black.svg":90742,"./packet.svg":48428,"./pinganyunecs-black.svg":49880,"./pinganyunecs.svg":58490,"./pnap-black.svg":59931,"./pnap.svg":31549,"./rackspace-black.svg":41511,"./rackspace.svg":65785,"./rke.svg":38102,"./rke2.svg":49560,"./softlayer.svg":61883,"./tencenttke-black.svg":70963,"./tencenttke.svg":77701,"./vmwarevsphere-black.svg":26791,"./vmwarevsphere.svg":5337};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=53588},82360:function(e,t,n){var r={"./activedirectory.svg":6101,"./adfs.svg":24872,"./azuread.svg":14336,"./custom.svg":98283,"./email.svg":41778,"./freeipa.svg":42496,"./github.svg":52075,"./googleoauth.svg":63104,"./grafana.svg":59826,"./jaeger.svg":36308,"./keycloak.svg":5477,"./kiali.svg":66234,"./linux.svg":31456,"./longhorn.svg":81199,"./neuvector.svg":66763,"./okta.svg":31545,"./openid.svg":92877,"./openldap.svg":7841,"./pagerduty.svg":75495,"./ping.svg":35646,"./prometheus.svg":91258,"./shibboleth.svg":23294,"./slack.svg":69742,"./webhook.svg":94569,"./windows.svg":88381};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=82360},93197:function(e,t,n){var r={"./__tests__/apps.deployment.test":25192,"./__tests__/apps.deployment.test.ts":25192,"./__tests__/batch.cronjob.test":8432,"./__tests__/batch.cronjob.test.ts":8432,"./__tests__/cluster.test":13573,"./__tests__/cluster.test.ts":13573,"./__tests__/fleet.cattle.io.cluster.test":84264,"./__tests__/fleet.cattle.io.cluster.test.ts":84264,"./__tests__/management.cattle.io.cluster.test":58221,"./__tests__/management.cattle.io.cluster.test.ts":58221,"./__tests__/management.cattle.io.node":25529,"./__tests__/management.cattle.io.node.ts":25529,"./__tests__/management.cattle.io.nodepool":94479,"./__tests__/management.cattle.io.nodepool.ts":94479,"./__tests__/namespace.test":68882,"./__tests__/namespace.test.ts":68882,"./__tests__/node.test":4915,"./__tests__/node.test.ts":4915,"./__tests__/provisioning.cattle.io.cluster.test":29759,"./__tests__/provisioning.cattle.io.cluster.test.ts":29759,"./__tests__/schema.tests":81453,"./__tests__/schema.tests.ts":81453,"./__tests__/secret.test":19147,"./__tests__/secret.test.ts":19147,"./__tests__/steve-schema.test":66888,"./__tests__/steve-schema.test.ts":66888,"./__tests__/storage.k8s.io.storageclass.test":77107,"./__tests__/storage.k8s.io.storageclass.test.ts":77107,"./__tests__/workload.test":91624,"./__tests__/workload.test.ts":91624,"./app":426,"./app.js":426,"./apps.controllerrevision":54686,"./apps.controllerrevision.js":54686,"./apps.daemonset":89395,"./apps.daemonset.js":89395,"./apps.deployment":41212,"./apps.deployment.js":41212,"./apps.replicaset":77763,"./apps.replicaset.js":77763,"./apps.statefulset":86791,"./apps.statefulset.js":86791,"./autoscaling.horizontalpodautoscaler":20763,"./autoscaling.horizontalpodautoscaler.js":20763,"./batch.cronjob":43020,"./batch.cronjob.js":43020,"./batch.job":66184,"./batch.job.js":66184,"./catalog.cattle.io.app":65502,"./catalog.cattle.io.app.js":65502,"./catalog.cattle.io.clusterrepo":48723,"./catalog.cattle.io.clusterrepo.js":48723,"./catalog.cattle.io.operation":67784,"./catalog.cattle.io.operation.js":67784,"./catalog.cattle.io.repo":71029,"./catalog.cattle.io.repo.js":71029,"./catalog.cattle.io.uiplugin":97960,"./catalog.cattle.io.uiplugin.js":97960,"./chart":92737,"./chart.js":92737,"./chartinstallaction":91380,"./chartinstallaction.js":91380,"./chartupgradeaction":4451,"./chartupgradeaction.js":4451,"./cis.cattle.io.clusterscan":90960,"./cis.cattle.io.clusterscan.js":90960,"./cis.cattle.io.clusterscanbenchmark":20173,"./cis.cattle.io.clusterscanbenchmark.js":20173,"./cis.cattle.io.clusterscanprofile":29875,"./cis.cattle.io.clusterscanprofile.js":29875,"./cis.cattle.io.clusterscanreport":24574,"./cis.cattle.io.clusterscanreport.js":24574,"./cloudcredential":45231,"./cloudcredential.js":45231,"./cluster":16787,"./cluster.js":16787,"./cluster.x-k8s.io.machine":61843,"./cluster.x-k8s.io.machine.js":61843,"./cluster.x-k8s.io.machinedeployment":22456,"./cluster.x-k8s.io.machinedeployment.js":22456,"./cluster.x-k8s.io.machineset":5555,"./cluster.x-k8s.io.machineset.js":5555,"./cluster/node":44458,"./cluster/node.js":44458,"./cluster/schema":62973,"./cluster/schema.js":62973,"./clusterroletemplatebinding":40408,"./clusterroletemplatebinding.js":40408,"./configmap":79925,"./configmap.js":79925,"./constraints.gatekeeper.sh.constraint":40172,"./constraints.gatekeeper.sh.constraint.js":40172,"./driver":81147,"./driver.js":81147,"./etcdbackup":10501,"./etcdbackup.js":10501,"./event":28473,"./event.js":28473,"./fleet.cattle.io.bundle":5096,"./fleet.cattle.io.bundle.js":5096,"./fleet.cattle.io.cluster":5904,"./fleet.cattle.io.cluster.js":5904,"./fleet.cattle.io.clustergroup":11173,"./fleet.cattle.io.clustergroup.js":11173,"./fleet.cattle.io.clusterregistrationtoken":67424,"./fleet.cattle.io.clusterregistrationtoken.js":67424,"./fleet.cattle.io.gitrepo":65751,"./fleet.cattle.io.gitrepo.js":65751,"./group.principal":97030,"./group.principal.js":97030,"./helm.cattle.io.projecthelmchart":7899,"./helm.cattle.io.projecthelmchart.js":7899,"./k8s.cni.cncf.io.networkattachmentdefinition":72183,"./k8s.cni.cncf.io.networkattachmentdefinition.js":72183,"./kontainerdriver":83448,"./kontainerdriver.js":83448,"./logging.banzaicloud.io.clusterflow":78694,"./logging.banzaicloud.io.clusterflow.js":78694,"./logging.banzaicloud.io.clusteroutput":63331,"./logging.banzaicloud.io.clusteroutput.js":63331,"./logging.banzaicloud.io.flow":21766,"./logging.banzaicloud.io.flow.js":21766,"./logging.banzaicloud.io.output":44931,"./logging.banzaicloud.io.output.js":44931,"./management.cattle.io.authconfig":78277,"./management.cattle.io.authconfig.js":78277,"./management.cattle.io.cluster":16544,"./management.cattle.io.cluster.js":16544,"./management.cattle.io.clusterroletemplatebinding":54820,"./management.cattle.io.clusterroletemplatebinding.js":54820,"./management.cattle.io.feature":58975,"./management.cattle.io.feature.js":58975,"./management.cattle.io.fleetworkspace":61504,"./management.cattle.io.fleetworkspace.js":61504,"./management.cattle.io.gitreporestriction":33707,"./management.cattle.io.gitreporestriction.js":33707,"./management.cattle.io.globalrole":14606,"./management.cattle.io.globalrole.js":14606,"./management.cattle.io.globalrolebinding":97621,"./management.cattle.io.globalrolebinding.js":97621,"./management.cattle.io.kontainerdriver":44660,"./management.cattle.io.kontainerdriver.js":44660,"./management.cattle.io.node":77917,"./management.cattle.io.node.js":77917,"./management.cattle.io.nodepool":68959,"./management.cattle.io.nodepool.js":68959,"./management.cattle.io.nodetemplate":57075,"./management.cattle.io.nodetemplate.js":57075,"./management.cattle.io.podsecurityadmissionconfigurationtemplate":10311,"./management.cattle.io.podsecurityadmissionconfigurationtemplate.js":10311,"./management.cattle.io.project":24220,"./management.cattle.io.project.js":24220,"./management.cattle.io.projectroletemplatebinding":91673,"./management.cattle.io.projectroletemplatebinding.js":91673,"./management.cattle.io.roletemplate":4799,"./management.cattle.io.roletemplate.js":4799,"./management.cattle.io.setting":76061,"./management.cattle.io.setting.js":76061,"./management.cattle.io.user":69754,"./management.cattle.io.user.js":69754,"./management/schema":95694,"./management/schema.js":95694,"./metrics.k8s.io.nodemetrics":86465,"./metrics.k8s.io.nodemetrics.js":86465,"./monitoring.coreos.com.alertmanagerconfig":34858,"./monitoring.coreos.com.alertmanagerconfig.js":34858,"./monitoring.coreos.com.podmonitor":67750,"./monitoring.coreos.com.podmonitor.js":67750,"./monitoring.coreos.com.prometheusrule":61403,"./monitoring.coreos.com.prometheusrule.js":61403,"./monitoring.coreos.com.receiver":57e3,"./monitoring.coreos.com.receiver.js":57e3,"./monitoring.coreos.com.route":55162,"./monitoring.coreos.com.route.js":55162,"./monitoring.coreos.com.servicemonitor":906,"./monitoring.coreos.com.servicemonitor.js":906,"./namespace":67867,"./namespace.js":67867,"./networking.istio.io.destinationrule":1835,"./networking.istio.io.destinationrule.js":1835,"./networking.k8s.io.ingress":67462,"./networking.k8s.io.ingress.js":67462,"./nodedriver":80903,"./nodedriver.js":80903,"./persistentvolume":13070,"./persistentvolume.js":13070,"./persistentvolumeclaim":17544,"./persistentvolumeclaim.js":17544,"./pod":76006,"./pod.js":76006,"./principal":97219,"./principal.js":97219,"./projectroletemplatebinding":99493,"./projectroletemplatebinding.js":99493,"./provisioning.cattle.io.cluster":47685,"./provisioning.cattle.io.cluster.js":47685,"./rbac.authorization.k8s.io.clusterrole":8324,"./rbac.authorization.k8s.io.clusterrole.js":8324,"./rbac.authorization.k8s.io.clusterrolebinding":69791,"./rbac.authorization.k8s.io.clusterrolebinding.js":69791,"./rbac.authorization.k8s.io.role":51700,"./rbac.authorization.k8s.io.role.js":51700,"./rbac.authorization.k8s.io.rolebinding":559,"./rbac.authorization.k8s.io.rolebinding.js":559,"./replicationcontroller":12299,"./replicationcontroller.js":12299,"./resources.cattle.io.backup":89713,"./resources.cattle.io.backup.js":89713,"./resources.cattle.io.restore":23741,"./resources.cattle.io.restore.js":23741,"./rke-machine-config.cattle.io.harvesterconfig":81689,"./rke-machine-config.cattle.io.harvesterconfig.js":81689,"./rke-machine.cattle.io.amazonec2machinetemplate":39651,"./rke-machine.cattle.io.amazonec2machinetemplate.js":39651,"./rke-machine.cattle.io.azuremachinetemplate":79144,"./rke-machine.cattle.io.azuremachinetemplate.js":79144,"./rke-machine.cattle.io.digitaloceanmachinetemplate":81593,"./rke-machine.cattle.io.digitaloceanmachinetemplate.js":81593,"./rke-machine.cattle.io.linodemachinetemplate":69770,"./rke-machine.cattle.io.linodemachinetemplate.js":69770,"./rke-machine.cattle.io.machinetemplate":38799,"./rke-machine.cattle.io.machinetemplate.js":38799,"./rke-machine.cattle.io.pnapmachinetemplate":82186,"./rke-machine.cattle.io.pnapmachinetemplate.js":82186,"./rke-machine.cattle.io.vmwarevspheremachinetemplate":38816,"./rke-machine.cattle.io.vmwarevspheremachinetemplate.js":38816,"./rke.cattle.io.etcdsnapshot":7100,"./rke.cattle.io.etcdsnapshot.js":7100,"./schema":2334,"./schema.js":2334,"./secret":1133,"./secret.js":1133,"./service":96258,"./service.js":96258,"./steve-schema":45858,"./steve-schema.ts":45858,"./storage.k8s.io.storageclass":63809,"./storage.k8s.io.storageclass.js":63809,"./templates.gatekeeper.sh.constrainttemplate":66491,"./templates.gatekeeper.sh.constrainttemplate.js":66491,"./token":24364,"./token.js":24364,"./ui.cattle.io.navlink":51225,"./ui.cattle.io.navlink.js":51225,"./workload":70775,"./workload.js":70775,"./workload.service":2505,"./workload.service.js":2505};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=93197},39989:function(e,t,n){var r={"./management.cattle.io.globalrole":88897,"./management.cattle.io.globalrole.vue":88897,"./management.cattle.io.project":90523,"./management.cattle.io.project.vue":90523,"./management.cattle.io.roletemplate":47627,"./management.cattle.io.roletemplate.vue":47627,"./mixin/roleDeletionCheck":55105,"./mixin/roleDeletionCheck.js":55105,"./pod":72164,"./pod.vue":72164};function i(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=39989},32195:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.920195b3.svg"},42850:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.487fcd1d.svg"},70266:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.788ed883.svg"},18729:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.ef1ab5b0.svg"},85501:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.f190bd21.svg"},24548:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.fd684d42.svg"},47629:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.8d98c901.svg"},8084:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.b8492368.svg"},39802:function(e,t,n){"use strict";e.exports=n.p+"img/generic-catalog.1842a50e.svg"},95754:function(e,t,n){"use strict";e.exports=n.p+"img/banner.00f803a6.svg"},9273:function(e,t,n){"use strict";e.exports=n.p+"img/banner.e66743c3.svg"},26458:function(e,t,n){"use strict";e.exports=n.p+"img/login-landscape.6e1253bb.svg"},55966:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.3680d0eb.svg"},12531:function(e,t,n){"use strict";e.exports=n.p+"img/decoration-cloud-big-white.4229596e.svg"},77430:function(e,t,n){"use strict";e.exports=n.p+"img/decoration-ground.3f64fcbb.svg"},21492:function(e,t,n){"use strict";e.exports=n.p+"img/error-desert-landscape.2a9d44f4.svg"},28225:function(e,t,n){"use strict";e.exports=n.p+"img/half-logo.1bc560ee.svg"},27782:function(e,t,n){"use strict";e.exports=n.p+"img/harvester.0168283e.svg"},46751:function(e,t,n){"use strict";e.exports=n.p+"img/login-landscape.60cd520b.svg"},5669:function(e,t,n){"use strict";e.exports=n.p+"img/rancher-logo.d773077a.svg"},549:function(e,t,n){"use strict";e.exports=n.p+"img/setup-step-one.7b236b40.svg"},38566:function(e,t,n){"use strict";e.exports=n.p+"img/sunglasses.157dca2a.svg"},87526:function(e,t,n){"use strict";e.exports=n.p+"img/aliyun-black.a9967561.svg"},17180:function(e,t,n){"use strict";e.exports=n.p+"img/aliyun.d05bff3f.svg"},75685:function(e,t,n){"use strict";e.exports=n.p+"img/aliyunecs-black.93dd5b27.svg"},38683:function(e,t,n){"use strict";e.exports=n.p+"img/aliyunecs.b57b715b.svg"},52212:function(e,t,n){"use strict";e.exports=n.p+"img/amazonec2-black.5d49a518.svg"},16598:function(e,t,n){"use strict";e.exports=n.p+"img/amazonec2.259f7435.svg"},43881:function(e,t,n){"use strict";e.exports=n.p+"img/amazoneks-black.e3999509.svg"},90287:function(e,t,n){"use strict";e.exports=n.p+"img/amazoneks.44a8a254.svg"},59835:function(e,t,n){"use strict";e.exports=n.p+"img/aws.988ade4f.svg"},80895:function(e,t,n){"use strict";e.exports=n.p+"img/azure-black.4bcdbe6b.svg"},60961:function(e,t,n){"use strict";e.exports=n.p+"img/azure.7d30d447.svg"},81392:function(e,t,n){"use strict";e.exports=n.p+"img/azuread-black.d272db7e.svg"},45634:function(e,t,n){"use strict";e.exports=n.p+"img/azuread.7914bb78.svg"},35894:function(e,t,n){"use strict";e.exports=n.p+"img/azureaks-black.09cdc074.svg"},40268:function(e,t,n){"use strict";e.exports=n.p+"img/azureaks.239d69fb.svg"},71351:function(e,t,n){"use strict";e.exports=n.p+"img/baidu-black.32fb0569.svg"},47113:function(e,t,n){"use strict";e.exports=n.p+"img/baidu.063c3510.svg"},50309:function(e,t,n){"use strict";e.exports=n.p+"img/cloudca-black.2c8fc541.svg"},23131:function(e,t,n){"use strict";e.exports=n.p+"img/cloudca.fb088dd5.svg"},51773:function(e,t,n){"use strict";e.exports=n.p+"img/cloudscale-black.87d94917.svg"},86531:function(e,t,n){"use strict";e.exports=n.p+"img/cloudscale.dd348191.svg"},29181:function(e,t,n){"use strict";e.exports=n.p+"img/custom.2ff19310.svg"},65988:function(e,t,n){"use strict";e.exports=n.p+"img/digitalocean-black.3d5310a1.svg"},19110:function(e,t,n){"use strict";e.exports=n.p+"img/digitalocean.b0aa5786.svg"},66335:function(e,t,n){"use strict";e.exports=n.p+"img/equinix-black.0870820e.svg"},60705:function(e,t,n){"use strict";e.exports=n.p+"img/equinix.c112c186.svg"},12896:function(e,t,n){"use strict";e.exports=n.p+"img/exoscale.af115826.svg"},2054:function(e,t,n){"use strict";e.exports=n.p+"img/gcp.f7a1243c.svg"},3405:function(e,t,n){"use strict";e.exports=n.p+"img/gke-black.64bdd882.svg"},61939:function(e,t,n){"use strict";e.exports=n.p+"img/gke.4c1ecbcd.svg"},32561:function(e,t,n){"use strict";e.exports=n.p+"img/google.789cf860.svg"},73562:function(e,t,n){"use strict";e.exports=n.p+"img/googlegke-black.64bdd882.svg"},97712:function(e,t,n){"use strict";e.exports=n.p+"img/googlegke.4c1ecbcd.svg"},53938:function(e,t,n){"use strict";e.exports=n.p+"img/harvester.0168283e.svg"},91128:function(e,t,n){"use strict";e.exports=n.p+"img/huaweicce-black.d378b855.svg"},40634:function(e,t,n){"use strict";e.exports=n.p+"img/huaweicce.22b4ecea.svg"},28499:function(e,t,n){"use strict";e.exports=n.p+"img/import.ac396542.svg"},35671:function(e,t,n){"use strict";e.exports=n.p+"img/k3s-black.b4765216.svg"},85545:function(e,t,n){"use strict";e.exports=n.p+"img/k3s.f0881505.svg"},27442:function(e,t,n){"use strict";e.exports=n.p+"img/kubernetes-black.2ade6358.svg"},9144:function(e,t,n){"use strict";e.exports=n.p+"img/kubernetes.ac396542.svg"},75553:function(e,t,n){"use strict";e.exports=n.p+"img/linode.642005fe.svg"},96441:function(e,t,n){"use strict";e.exports=n.p+"img/linodelke-black.81aa799d.svg"},3199:function(e,t,n){"use strict";e.exports=n.p+"img/linodelke.642005fe.svg"},47600:function(e,t,n){"use strict";e.exports=n.p+"img/local-cluster.272d4fc9.svg"},18152:function(e,t,n){"use strict";e.exports=n.p+"img/minikube-black.94055a38.svg"},92746:function(e,t,n){"use strict";e.exports=n.p+"img/minikube.117e4a38.svg"},70079:function(e,t,n){"use strict";e.exports=n.p+"img/nutanix.b10c401f.svg"},40097:function(e,t,n){"use strict";e.exports=n.p+"img/oci-black.cd3524de.svg"},46487:function(e,t,n){"use strict";e.exports=n.p+"img/oci.3a81eed0.svg"},57990:function(e,t,n){"use strict";e.exports=n.p+"img/openstack-black.af3ac5a0.svg"},53116:function(e,t,n){"use strict";e.exports=n.p+"img/openstack.475580f8.svg"},88594:function(e,t,n){"use strict";e.exports=n.p+"img/oracle.74aae75e.svg"},56347:function(e,t,n){"use strict";e.exports=n.p+"img/oracleoke-black.ec0a34a2.svg"},9053:function(e,t,n){"use strict";e.exports=n.p+"img/oracleoke.64fac528.svg"},67294:function(e,t,n){"use strict";e.exports=n.p+"img/otc-black.5629758c.svg"},69348:function(e,t,n){"use strict";e.exports=n.p+"img/otc.1b7d926f.svg"},24079:function(e,t,n){"use strict";e.exports=n.p+"img/otccce.1b7d926f.svg"},72886:function(e,t,n){"use strict";e.exports=n.p+"img/outscale.d0d823da.svg"},49619:function(e,t,n){"use strict";e.exports=n.p+"img/ovhcloudmks.612c966f.svg"},54474:function(e,t,n){"use strict";e.exports=n.p+"img/ovhcloudpubliccloud.612c966f.svg"},90742:function(e,t,n){"use strict";e.exports=n.p+"img/packet-black.5fc90c03.svg"},48428:function(e,t,n){"use strict";e.exports=n.p+"img/packet.ef1f45fa.svg"},49880:function(e,t,n){"use strict";e.exports=n.p+"img/pinganyunecs-black.bf0b3440.svg"},58490:function(e,t,n){"use strict";e.exports=n.p+"img/pinganyunecs.b74db865.svg"},59931:function(e,t,n){"use strict";e.exports=n.p+"img/pnap-black.a7948015.svg"},31549:function(e,t,n){"use strict";e.exports=n.p+"img/pnap.81704b7a.svg"},41511:function(e,t,n){"use strict";e.exports=n.p+"img/rackspace-black.0e8f8bc4.svg"},65785:function(e,t,n){"use strict";e.exports=n.p+"img/rackspace.5e8dcb5a.svg"},38102:function(e,t,n){"use strict";e.exports=n.p+"img/rke.a01f31e7.svg"},49560:function(e,t,n){"use strict";e.exports=n.p+"img/rke2.a01f31e7.svg"},61883:function(e,t,n){"use strict";e.exports=n.p+"img/softlayer.5d9a5c2a.svg"},70963:function(e,t,n){"use strict";e.exports=n.p+"img/tencenttke-black.140c30e5.svg"},77701:function(e,t,n){"use strict";e.exports=n.p+"img/tencenttke.42042615.svg"},26791:function(e,t,n){"use strict";e.exports=n.p+"img/vmwarevsphere-black.454d68ed.svg"},5337:function(e,t,n){"use strict";e.exports=n.p+"img/vmwarevsphere.94d59db3.svg"},6101:function(e,t,n){"use strict";e.exports=n.p+"img/activedirectory.0baa2998.svg"},24872:function(e,t,n){"use strict";e.exports=n.p+"img/adfs.6e70726e.svg"},14336:function(e,t,n){"use strict";e.exports=n.p+"img/azuread.774efe5f.svg"},98283:function(e,t,n){"use strict";e.exports=n.p+"img/custom.6f45244d.svg"},41778:function(e,t,n){"use strict";e.exports=n.p+"img/email.b67ceff2.svg"},42496:function(e,t,n){"use strict";e.exports=n.p+"img/freeipa.ef110cc0.svg"},52075:function(e,t,n){"use strict";e.exports=n.p+"img/github.9c864145.svg"},63104:function(e,t,n){"use strict";e.exports=n.p+"img/googleoauth.4619a2a5.svg"},59826:function(e,t,n){"use strict";e.exports=n.p+"img/grafana.2db31bb8.svg"},36308:function(e,t,n){"use strict";e.exports=n.p+"img/jaeger.1c7d1266.svg"},5477:function(e,t,n){"use strict";e.exports=n.p+"img/keycloak.ca7b4848.svg"},66234:function(e,t,n){"use strict";e.exports=n.p+"img/kiali.d0e257dd.svg"},31456:function(e,t,n){"use strict";e.exports=n.p+"img/linux.a96776e5.svg"},81199:function(e,t,n){"use strict";e.exports=n.p+"img/longhorn.4809470b.svg"},66763:function(e,t,n){"use strict";e.exports=n.p+"img/neuvector.513801d3.svg"},31545:function(e,t,n){"use strict";e.exports=n.p+"img/okta.58a2aa35.svg"},92877:function(e,t,n){"use strict";e.exports=n.p+"img/openid.451743dd.svg"},7841:function(e,t,n){"use strict";e.exports=n.p+"img/openldap.59040f23.svg"},75495:function(e,t,n){"use strict";e.exports=n.p+"img/pagerduty.9871fbd3.svg"},35646:function(e,t,n){"use strict";e.exports=n.p+"img/ping.5b5afc6e.svg"},91258:function(e,t,n){"use strict";e.exports=n.p+"img/prometheus.be8ac54d.svg"},23294:function(e,t,n){"use strict";e.exports=n.p+"img/shibboleth.35ea1d68.svg"},69742:function(e,t,n){"use strict";e.exports=n.p+"img/slack.34dfd73f.svg"},94569:function(e,t,n){"use strict";e.exports=n.p+"img/webhook.f86c012b.svg"},88381:function(e,t,n){"use strict";e.exports=n.p+"img/windows.f862ed7d.svg"},99086:function(e,t,n){"use strict";e.exports=n.p+"img/icon.42954c0f.svg"},31365:function(e){"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAABjFBMVEVHcEwMMiwJLi4MMiwMMiwNMy0MMysMMiwNNC4MMiwMMiwMMiwMMiwMMiz///8MMix9ko7O1tUQNS+pt7UTODLn6+oNMy2/ycihr63c4eAONC5xh4RHZF/d4uFhenbi5+YrTUdyiIXM1NJsg4AqTEbJ0dAaPjjX3dyRo6C5xMPl6en2+Pjr7u4qS0YgQz0yUk1cdnLAysgPNC6GmZYfQj2TpKF7j4xrgn9vhoJPamZQa2cvUEuQoZ6Nn5xWcW3o7OuKnJk3VlH9/f2ls7Gvu7lMaGO9yMYUODMeQTzN1dTv8fEhRD5Tbmr19/eotrQzU06VpqPI0M/CzMpqgn68x8XS2djs7+5AXlqsubcVOTOerasdQDuYqKYwUUuClpN4jYlje3dUb2tSbWh6jotTbWmXp6X6+/vq7e3P19aSo6H4+fnK0tFBX1oZPTj09fXu8fB8kY41VVBCYFuuu7n+/v40VE9Xcm17kI3W3Nu2wb9IZWC+yMfg5OQ+XFc2VVBZc2+ntbO7xsSZqaY/XVnvk2EjAAAADnRSTlMArxyp8Siw8ifvrq3s8H1RQAIAAAFMSURBVDjLzZNVcwIxEICDH5Vd3B2KFYe6UHd3d3d37x9vrsNAe8Mdb51+D5lJ9stsks0SIpMrkAeFiCFEpkQBlAyRoyDlRCEsSAmW4G8FX2O9qrauwfU9ae/mCE01dsih17Zq0Ar9CUtBiHZ1wE+yVjcdzZOpnOAdBi4DAM4F85SFFQxjUIzIIursDlZYKRoHI8aWTHNUiO/ASfoiepSO/Baqlw2z4WkqbMPpOaauMxir4hjGGb2WCntwhi9PcHV5nAlz0yR7qWCGB3xP+p4DIdwohEKdPcYRdx97TQ8k8DGI+ApxpElaVKqgE0BXeOp9uMfPN8Qb2MIhAAdd9AegWZMXXAdwSx/VfwijiG1qtYlutnnUWk2+Fl6Auw+THiZ4q7m2yx5rfJC/3PPrm6s2w3/4cjxCicapJCJhQUIYweatEBPClEl5G1MiJl+FK1ex1JQuFwAAAABJRU5ErkJggg=="},23561:function(e,t,n){"use strict";e.exports=n.p+"img/favicon.20240f8a.png"},17089:function(e){"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAgVBMVEUAAAAkU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU//ULCqVAAAAKnRSTlMAjopHOdr8snNsY1Ae+aq3gEAqCfTyo1kvBOvm4sqglyYgGhbUmXVvNBL6rShDAAAAw0lEQVQ4y83Q2Q6CMBCF4aNYQG3LJpu74jrv/4ACTSEUEi4kxu/6n2RyMKUr+jhaGcthCvcRGr5dwLSmADPFgkOnWcsPUUrJBSnxm1FHfC4Dl4462HBBXX4eBTs66IBlZJjftzZRrAN5FmaQ1Ic6SJA6nufJbRs8pZTHrPnhsa74dhtAIcO3gdiNBIkzErg/COakrQaDU3FQU9leBGWhWbdq0CDilwvn/JqjZ1lf7hljKQatSFv+b/ASpIgAw0JLCTGpD5arSeJmn1I0AAAAAElFTkSuQmCC"},57074:function(e,t,n){"use strict";e.exports=n.p+"img/harvester.20240f8a.png"},45605:function(e,t,n){"use strict";e.exports=n.p+"img/wechat-qr-code.c0468b45.jpg"},20246:function(e){"use strict";e.exports=n},47008:function(e){"use strict";e.exports=t},9274:function(t){"use strict";t.exports=e},63011:function(){},43951:function(){},57260:function(){},14834:function(e,t,n){"use strict";var r=n(69501),i="undefined"===typeof globalThis?n.g:globalThis;e.exports=function(){for(var e=[],t=0;t<r.length;t++)"function"===typeof i[r[t]]&&(e[e.length]=r[t]);return e}},3973:function(e,t,n){var r=n(4364),i={exports:{}};function a(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((function(t){var n=e[t];"object"!=typeof n||Object.isFrozen(n)||a(n)})),e}i.exports=a,i.exports.default=a;class o{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function s(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function l(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach((function(e){for(const t in e)n[t]=e[t]})),n}const c="</span>",u=e=>!!e.scope||e.sublanguage&&e.language,d=(e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`};class h{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=s(e)}openNode(e){if(!u(e))return;let t="";t=e.sublanguage?`language-${e.language}`:d(e.scope,{prefix:this.classPrefix}),this.span(t)}closeNode(e){u(e)&&(this.buffer+=c)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const p=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class f{constructor(){this.rootNode=p(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=p({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"===typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){"string"!==typeof e&&e.children&&(e.children.every((e=>"string"===typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{f._collapse(e)})))}}class m extends f{constructor(e){super(),this.options=e}addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root;n.sublanguage=!0,n.language=t,this.add(n)}toHTML(){const e=new h(this,this.options);return e.value()}finalize(){return!0}}function g(e){return e?"string"===typeof e?e:e.source:null}function v(e){return w("(?=",e,")")}function b(e){return w("(?:",e,")*")}function y(e){return w("(?:",e,")?")}function w(...e){const t=e.map((e=>g(e))).join("");return t}function E(e){const t=e[e.length-1];return"object"===typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function _(...e){const t=E(e),n="("+(t.capture?"":"?:")+e.map((e=>g(e))).join("|")+")";return n}function S(e){return new RegExp(e.toString()+"|").exec("").length-1}function k(e,t){const n=e&&e.exec(t);return n&&0===n.index}const x=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function A(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n;let r=g(e),i="";while(r.length>0){const e=x.exec(r);if(!e){i+=r;break}i+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+t):(i+=e[0],"("===e[0]&&n++)}return i})).map((e=>`(${e})`)).join(t)}const N=/\b\B/,C="[a-zA-Z]\\w*",T="[a-zA-Z_]\\w*",R="\\b\\d+(\\.\\d+)?",O="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",I="\\b(0b[01]+)",L="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",D=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=w(t,/.*\b/,e.binary,/\b.*/)),l({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},P={begin:"\\\\[\\s\\S]",relevance:0},M={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[P]},B={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[P]},F={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},$=function(e,t,n={}){const r=l({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=_("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:w(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},U=$("//","$"),j=$("/\\*","\\*/"),V=$("#","$"),K={scope:"number",begin:R,relevance:0},H={scope:"number",begin:O,relevance:0},G={scope:"number",begin:I,relevance:0},z={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[P,{begin:/\[/,end:/\]/,relevance:0,contains:[P]}]}]},q={scope:"title",begin:C,relevance:0},X={scope:"title",begin:T,relevance:0},W={begin:"\\.\\s*"+T,relevance:0},Y=function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var Q=Object.freeze({__proto__:null,MATCH_NOTHING_RE:N,IDENT_RE:C,UNDERSCORE_IDENT_RE:T,NUMBER_RE:R,C_NUMBER_RE:O,BINARY_NUMBER_RE:I,RE_STARTERS_RE:L,SHEBANG:D,BACKSLASH_ESCAPE:P,APOS_STRING_MODE:M,QUOTE_STRING_MODE:B,PHRASAL_WORDS_MODE:F,COMMENT:$,C_LINE_COMMENT_MODE:U,C_BLOCK_COMMENT_MODE:j,HASH_COMMENT_MODE:V,NUMBER_MODE:K,C_NUMBER_MODE:H,BINARY_NUMBER_MODE:G,REGEXP_MODE:z,TITLE_MODE:q,UNDERSCORE_TITLE_MODE:X,METHOD_GUARD:W,END_SAME_AS_BEGIN:Y});function J(e,t){const n=e.input[e.index-1];"."===n&&t.ignoreMatch()}function Z(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function ee(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=J,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function te(e,t){Array.isArray(e.illegal)&&(e.illegal=_(...e.illegal))}function ne(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function re(e,t){void 0===e.relevance&&(e.relevance=1)}const ie=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=n.keywords,e.begin=w(n.beforeMatch,v(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},ae=["of","and","for","in","not","or","if","then","parent","list","value"],oe="keyword";function se(e,t,n=oe){const r=Object.create(null);return"string"===typeof e?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach((function(n){Object.assign(r,se(e[n],t,n))})),r;function i(e,n){t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((function(t){const n=t.split("|");r[n[0]]=[e,le(n[0],n[1])]}))}}function le(e,t){return t?Number(t):ce(e)?0:1}function ce(e){return ae.includes(e.toLowerCase())}const ue={},de=e=>{r.error(e)},he=(e,...t)=>{r.log(`WARN: ${e}`,...t)},pe=(e,t)=>{ue[`${e}/${t}`]||(r.log(`Deprecated as of ${e}. ${t}`),ue[`${e}/${t}`]=!0)},fe=new Error;function me(e,t,{key:n}){let r=0;const i=e[n],a={},o={};for(let s=1;s<=t.length;s++)o[s+r]=i[s],a[s+r]=!0,r+=S(t[s-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function ge(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw de("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),fe;if("object"!==typeof e.beginScope||null===e.beginScope)throw de("beginScope must be object"),fe;me(e,e.begin,{key:"beginScope"}),e.begin=A(e.begin,{joinWith:""})}}function ve(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw de("skip, excludeEnd, returnEnd not compatible with endScope: {}"),fe;if("object"!==typeof e.endScope||null===e.endScope)throw de("endScope must be object"),fe;me(e,e.end,{key:"endScope"}),e.end=A(e.end,{joinWith:""})}}function be(e){e.scope&&"object"===typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}function ye(e){be(e),"string"===typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"===typeof e.endScope&&(e.endScope={_wrap:e.endScope}),ge(e),ve(e)}function we(e){function t(t,n){return new RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=S(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(A(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function i(e){const t=new r;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}function a(n,r){const o=n;if(n.isCompiled)return o;[Z,ne,ye,ie].forEach((e=>e(n,r))),e.compilerExtensions.forEach((e=>e(n,r))),n.__beforeBegin=null,[ee,te,re].forEach((e=>e(n,r))),n.isCompiled=!0;let s=null;return"object"===typeof n.keywords&&n.keywords.$pattern&&(n.keywords=Object.assign({},n.keywords),s=n.keywords.$pattern,delete n.keywords.$pattern),s=s||/\w+/,n.keywords&&(n.keywords=se(n.keywords,e.case_insensitive)),o.keywordPatternRe=t(s,!0),r&&(n.begin||(n.begin=/\B|\b/),o.beginRe=t(o.begin),n.end||n.endsWithParent||(n.end=/\B|\b/),n.end&&(o.endRe=t(o.end)),o.terminatorEnd=g(o.end)||"",n.endsWithParent&&r.terminatorEnd&&(o.terminatorEnd+=(n.end?"|":"")+r.terminatorEnd)),n.illegal&&(o.illegalRe=t(n.illegal)),n.contains||(n.contains=[]),n.contains=[].concat(...n.contains.map((function(e){return _e("self"===e?n:e)}))),n.contains.forEach((function(e){a(e,o)})),n.starts&&a(n.starts,r),o.matcher=i(o),o}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=l(e.classNameAliases||{}),a(e)}function Ee(e){return!!e&&(e.endsWithParent||Ee(e.starts))}function _e(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return l(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:Ee(e)?l(e,{starts:e.starts?l(e.starts):null}):Object.isFrozen(e)?l(e):e}var Se="11.6.0";class ke extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const xe=s,Ae=l,Ne=Symbol("nomatch"),Ce=7,Te=function(e){const t=Object.create(null),n=Object.create(null),a=[];let s=!0;const l="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let u={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:m};function d(e){return u.noHighlightRe.test(e)}function h(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t);if(n){const t=P(n[1]);return t||(he(l.replace("{}",n[1])),he("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>d(e)||P(e)))}function p(e,t,n){let r="",i="";"object"===typeof t?(r=e,n=t.ignoreIllegals,i=t.language):(pe("10.7.0","highlight(lang, code, ...args) has been deprecated."),pe("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,r=t),void 0===n&&(n=!0);const a={code:r,language:i};U("before:highlight",a);const o=a.result?a.result:f(a.language,a.code,n);return o.code=a.code,U("after:highlight",o),o}function f(e,n,r,i){const a=Object.create(null);function c(e,t){return e.keywords[t]}function d(){if(!T.keywords)return void O.addText(I);let e=0;T.keywordPatternRe.lastIndex=0;let t=T.keywordPatternRe.exec(I),n="";while(t){n+=I.substring(e,t.index);const r=A.case_insensitive?t[0].toLowerCase():t[0],i=c(T,r);if(i){const[e,o]=i;if(O.addText(n),n="",a[r]=(a[r]||0)+1,a[r]<=Ce&&(L+=o),e.startsWith("_"))n+=t[0];else{const n=A.classNameAliases[e]||e;O.addKeyword(t[0],n)}}else n+=t[0];e=T.keywordPatternRe.lastIndex,t=T.keywordPatternRe.exec(I)}n+=I.substring(e),O.addText(n)}function h(){if(""===I)return;let e=null;if("string"===typeof T.subLanguage){if(!t[T.subLanguage])return void O.addText(I);e=f(T.subLanguage,I,!0,R[T.subLanguage]),R[T.subLanguage]=e._top}else e=E(I,T.subLanguage.length?T.subLanguage:null);T.relevance>0&&(L+=e.relevance),O.addSublanguage(e._emitter,e.language)}function p(){null!=T.subLanguage?h():d(),I=""}function m(e,t){let n=1;const r=t.length-1;while(n<=r){if(!e._emit[n]){n++;continue}const r=A.classNameAliases[e[n]]||e[n],i=t[n];r?O.addKeyword(i,r):(I=i,d(),I=""),n++}}function g(e,t){return e.scope&&"string"===typeof e.scope&&O.openNode(A.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(O.addKeyword(I,A.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),I=""):e.beginScope._multi&&(m(e.beginScope,t),I="")),T=Object.create(e,{parent:{value:T}}),T}function v(e,t,n){let r=k(e.endRe,n);if(r){if(e["on:end"]){const n=new o(e);e["on:end"](t,n),n.isMatchIgnored&&(r=!1)}if(r){while(e.endsParent&&e.parent)e=e.parent;return e}}if(e.endsWithParent)return v(e.parent,t,n)}function b(e){return 0===T.matcher.regexIndex?(I+=e[0],1):(B=!0,0)}function y(e){const t=e[0],n=e.rule,r=new o(n),i=[n.__beforeBegin,n["on:begin"]];for(const a of i)if(a&&(a(e,r),r.isMatchIgnored))return b(t);return n.skip?I+=t:(n.excludeBegin&&(I+=t),p(),n.returnBegin||n.excludeBegin||(I=t)),g(n,e),n.returnBegin?0:t.length}function w(e){const t=e[0],r=n.substring(e.index),i=v(T,e,r);if(!i)return Ne;const a=T;T.endScope&&T.endScope._wrap?(p(),O.addKeyword(t,T.endScope._wrap)):T.endScope&&T.endScope._multi?(p(),m(T.endScope,e)):a.skip?I+=t:(a.returnEnd||a.excludeEnd||(I+=t),p(),a.excludeEnd&&(I=t));do{T.scope&&O.closeNode(),T.skip||T.subLanguage||(L+=T.relevance),T=T.parent}while(T!==i.parent);return i.starts&&g(i.starts,e),a.returnEnd?0:t.length}function _(){const e=[];for(let t=T;t!==A;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>O.openNode(e)))}let S={};function x(t,i){const a=i&&i[0];if(I+=t,null==a)return p(),0;if("begin"===S.type&&"end"===i.type&&S.index===i.index&&""===a){if(I+=n.slice(i.index,i.index+1),!s){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=S.rule,t}return 1}if(S=i,"begin"===i.type)return y(i);if("illegal"===i.type&&!r){const e=new Error('Illegal lexeme "'+a+'" for mode "'+(T.scope||"<unnamed>")+'"');throw e.mode=T,e}if("end"===i.type){const e=w(i);if(e!==Ne)return e}if("illegal"===i.type&&""===a)return 1;if(M>1e5&&M>3*i.index){const e=new Error("potential infinite loop, way more iterations than matches");throw e}return I+=a,a.length}const A=P(e);if(!A)throw de(l.replace("{}",e)),new Error('Unknown language: "'+e+'"');const N=we(A);let C="",T=i||N;const R={},O=new u.__emitter(u);_();let I="",L=0,D=0,M=0,B=!1;try{for(T.matcher.considerAll();;){M++,B?B=!1:T.matcher.considerAll(),T.matcher.lastIndex=D;const e=T.matcher.exec(n);if(!e)break;const t=n.substring(D,e.index),r=x(t,e);D=e.index+r}return x(n.substring(D)),O.closeAllNodes(),O.finalize(),C=O.toHTML(),{language:e,value:C,relevance:L,illegal:!1,_emitter:O,_top:T}}catch(F){if(F.message&&F.message.includes("Illegal"))return{language:e,value:xe(n),illegal:!0,relevance:0,_illegalBy:{message:F.message,index:D,context:n.slice(D-100,D+100),mode:F.mode,resultSoFar:C},_emitter:O};if(s)return{language:e,value:xe(n),illegal:!1,relevance:0,errorRaised:F,_emitter:O,_top:T};throw F}}function g(e){const t={value:xe(e),illegal:!1,relevance:0,_top:c,_emitter:new u.__emitter(u)};return t._emitter.addText(e),t}function E(e,n){n=n||u.languages||Object.keys(t);const r=g(e),i=n.filter(P).filter(B).map((t=>f(t,e,!1)));i.unshift(r);const a=i.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(P(e.language).supersetOf===t.language)return 1;if(P(t.language).supersetOf===e.language)return-1}return 0})),[o,s]=a,l=o;return l.secondBest=s,l}function S(e,t,r){const i=t&&n[t]||r;e.classList.add("hljs"),e.classList.add(`language-${i}`)}function x(e){let t=null;const n=h(e);if(d(n))return;if(U("before:highlightElement",{el:e,language:n}),e.children.length>0&&(u.ignoreUnescapedHTML||(r.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),r.warn("https://github.com/highlightjs/highlight.js/wiki/security"),r.warn("The element with unescaped HTML:"),r.warn(e)),u.throwUnescapedHTML)){const t=new ke("One of your code blocks includes unescaped HTML.",e.innerHTML);throw t}t=e;const i=t.textContent,a=n?p(i,{language:n,ignoreIllegals:!0}):E(i);e.innerHTML=a.value,S(e,n,a.language),e.result={language:a.language,re:a.relevance,relevance:a.relevance},a.secondBest&&(e.secondBest={language:a.secondBest.language,relevance:a.secondBest.relevance}),U("after:highlightElement",{el:e,result:a,text:i})}function A(e){u=Ae(u,e)}const N=()=>{R(),pe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function C(){R(),pe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let T=!1;function R(){if("loading"===document.readyState)return void(T=!0);const e=document.querySelectorAll(u.cssSelector);e.forEach(x)}function O(){T&&R()}function I(n,r){let i=null;try{i=r(e)}catch(a){if(de("Language definition for '{}' could not be registered.".replace("{}",n)),!s)throw a;de(a),i=c}i.name||(i.name=n),t[n]=i,i.rawDefinition=r.bind(null,e),i.aliases&&M(i.aliases,{languageName:n})}function L(e){delete t[e];for(const t of Object.keys(n))n[t]===e&&delete n[t]}function D(){return Object.keys(t)}function P(e){return e=(e||"").toLowerCase(),t[e]||t[n[e]]}function M(e,{languageName:t}){"string"===typeof e&&(e=[e]),e.forEach((e=>{n[e.toLowerCase()]=t}))}function B(e){const t=P(e);return t&&!t.disableAutodetect}function F(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}function $(e){F(e),a.push(e)}function U(e,t){const n=e;a.forEach((function(e){e[n]&&e[n](t)}))}function j(e){return pe("10.7.0","highlightBlock will be removed entirely in v12.0"),pe("10.7.0","Please use highlightElement now."),x(e)}"undefined"!==typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",O,!1),Object.assign(e,{highlight:p,highlightAuto:E,highlightAll:R,highlightElement:x,highlightBlock:j,configure:A,initHighlighting:N,initHighlightingOnLoad:C,registerLanguage:I,unregisterLanguage:L,listLanguages:D,getLanguage:P,registerAliases:M,autoDetection:B,inherit:Ae,addPlugin:$}),e.debugMode=function(){s=!1},e.safeMode=function(){s=!0},e.versionString=Se,e.regex={concat:w,lookahead:v,either:_,optional:y,anyNumberOfTimes:b};for(const r in Q)"object"===typeof Q[r]&&i.exports(Q[r]);return Object.assign(e,Q),e};var Re=Te({});e.exports=Re,Re.HighlightJS=Re,Re.default=Re},69205:function(e){function t(e){const t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},n="BEGIN END if else while do for in break continue delete next nextfile function func exit|10",r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]};return{name:"Awk",keywords:{keyword:n},contains:[t,r,e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}e.exports=t},46760:function(e){function t(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(o);const s={className:"",begin:/\\"/},l={className:"string",begin:/'/,end:/'/},c={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},u=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],d=e.SHEBANG({binary:`(${u.join("|")})`,relevance:10}),h={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},p=["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],f=["true","false"],m={match:/(\/[a-z._-]+)+/},g=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],v=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias"],b=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],y=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:p,literal:f,built_in:[...g,...v,"set","shopt",...b,...y]},contains:[d,e.SHEBANG(),h,c,e.HASH_COMMENT_MODE,a,m,o,s,l,n]}}e.exports=t},33089:function(e){function t(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="<[^<>]+>",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional(a)+")",s={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},l="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+l+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",f=["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],m=["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],g={keyword:f,type:m,literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},v=[d,s,n,e.C_BLOCK_COMMENT_MODE,u,c],b={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:g,contains:v.concat([{begin:/\(/,end:/\)/,keywords:g,contains:v.concat(["self"]),relevance:0}]),relevance:0},y={begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:g,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:g,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(h,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,u,s,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,u,s]}]},s,n,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C",aliases:["h"],keywords:g,disableAutodetect:!0,illegal:"</",contains:[].concat(b,y,v,[d,{begin:e.IDENT_RE+"::",keywords:g},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:d,strings:c,keywords:g}}}e.exports=t},37620:function(e){function t(e){const t="a-zA-Z_\\-!.?+*=<>&'",n="[#]?["+t+"]["+t+"0-9/;:$#]*",r="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",i={$pattern:n,built_in:r+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},a={begin:n,relevance:0},o={scope:"number",relevance:0,variants:[{match:/[-+]?0[xX][0-9a-fA-F]+N?/},{match:/[-+]?0[0-7]+N?/},{match:/[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/},{match:/[-+]?[0-9]+\/[0-9]+N?/},{match:/[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/},{match:/[-+]?([1-9][0-9]*|0)N?/}]},s={scope:"character",variants:[{match:/\\o[0-3]?[0-7]{1,2}/},{match:/\\u[0-9a-fA-F]{4}/},{match:/\\(newline|space|tab|formfeed|backspace|return)/},{match:/\\\S/,relevance:0}]},l={scope:"regex",begin:/#"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},c=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),u={scope:"punctuation",match:/,/,relevance:0},d=e.COMMENT(";","$",{relevance:0}),h={className:"literal",begin:/\b(true|false|nil)\b/},p={begin:"\\[|(#::?"+n+")?\\{",end:"[\\]\\}]",relevance:0},f={className:"symbol",begin:"[:]{1,2}"+n},m={begin:"\\(",end:"\\)"},g={endsWithParent:!0,relevance:0},v={keywords:i,className:"name",begin:n,relevance:0,starts:g},b=[u,m,s,l,c,d,f,p,o,h,a],y={beginKeywords:r,keywords:{$pattern:n,keyword:r},end:'(\\[|#|\\d|"|:|\\{|\\)|\\(|$)',contains:[{className:"title",begin:n,relevance:0,excludeEnd:!0,endsParent:!0}].concat(b)};return m.contains=[y,v,g],g.contains=b,p.contains=b,{name:"Clojure",aliases:["clj","edn"],illegal:/\S/,contains:[u,m,s,l,c,d,f,p,o,h]}}e.exports=t},68049:function(e){function t(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="<[^<>]+>",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional(a)+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+l+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",f=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],m=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],g=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],v=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],b=["NULL","false","nullopt","nullptr","true"],y=["_Pragma"],w={type:m,keyword:f,literal:b,built_in:y,_type_hints:g},E={className:"function.dispatch",relevance:0,keywords:{_hint:v},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[E,d,s,n,e.C_BLOCK_COMMENT_MODE,u,c],S={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:w,contains:_.concat([{begin:/\(/,end:/\)/,keywords:w,contains:_.concat(["self"]),relevance:0}]),relevance:0},k={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:w,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:w,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,u]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,u,s,{begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,u,s]}]},s,n,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:w,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(S,k,E,_,[d,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:w,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:w},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}e.exports=t},25326:function(e){function t(e){const t="(_?[ui](8|16|32|64|128))?",n="(_?f(32|64))?",r="[a-zA-Z_]\\w*[!?=]?",i="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",a="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",o={$pattern:r,keyword:"abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",literal:"false nil true"},s={className:"subst",begin:/#\{/,end:/\}/,keywords:o},l={className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},c={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:o};function u(e,t){const n=[{begin:e,end:t}];return n[0].contains=n,n}const d={className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[Qwi]?\\(",end:"\\)",contains:u("\\(","\\)")},{begin:"%[Qwi]?\\[",end:"\\]",contains:u("\\[","\\]")},{begin:"%[Qwi]?\\{",end:/\}/,contains:u(/\{/,/\}/)},{begin:"%[Qwi]?<",end:">",contains:u("<",">")},{begin:"%[Qwi]?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},h={className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:u("\\(","\\)")},{begin:"%q\\[",end:"\\]",contains:u("\\[","\\]")},{begin:"%q\\{",end:/\}/,contains:u(/\{/,/\}/)},{begin:"%q<",end:">",contains:u("<",">")},{begin:"%q\\|",end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},p={begin:"(?!%\\})("+e.RE_STARTERS_RE+"|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",keywords:"case if select unless until when while",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/(?!\\/)",end:"/[a-z]*"}]}],relevance:0},f={className:"regexp",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:"%r\\(",end:"\\)",contains:u("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:u("\\[","\\]")},{begin:"%r\\{",end:/\}/,contains:u(/\{/,/\}/)},{begin:"%r<",end:">",contains:u("<",">")},{begin:"%r\\|",end:"\\|"}],relevance:0},m={className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string"})]},g=[c,d,h,f,p,m,l,e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:a}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:a})]},{beginKeywords:"annotation",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:a})],relevance:2},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:i,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:i,endsParent:!0})],relevance:2},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[d,{begin:i}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]+)"+t},{begin:"\\b0o([0-7_]+)"+t},{begin:"\\b0x([A-Fa-f0-9_]+)"+t},{begin:"\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?"+n+"(?!_)"},{begin:"\\b([1-9][0-9_]*|0)"+t}],relevance:0}];return s.contains=g,c.contains=g.slice(1),{name:"Crystal",aliases:["cr"],keywords:o,contains:g}}e.exports=t},17025:function(e){function t(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],a=["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(a),built_in:t,literal:r},s=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},u=e.inherit(c,{illegal:/\n/}),d={className:"subst",begin:/\{/,end:/\}/,keywords:o},h=e.inherit(d,{illegal:/\n/}),p={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,h]},f={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},d]},m=e.inherit(f,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},h]});d.contains=[f,p,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],h.contains=[m,p,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const g={variants:[f,p,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},v={begin:"<",end:">",contains:[{beginKeywords:"in out"},s]},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",y={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},g,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},s,v,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[s,v,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,v],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[g,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},y]}}e.exports=t},35678:function(e){function t(e){const t=["base-uri","child-src","connect-src","default-src","font-src","form-action","frame-ancestors","frame-src","img-src","manifest-src","media-src","object-src","plugin-types","report-uri","sandbox","script-src","style-src","trusted-types","unsafe-hashes","worker-src"];return{name:"CSP",case_insensitive:!1,keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*",keyword:t},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}}e.exports=t},63355:function(e){const t=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),n=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function s(e){const s=e.regex,l=t(e),c={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},u="and or not only",d=/@-?\w[\w]*(-\w+)*/,h="[a-zA-Z-][a-zA-Z0-9_-]*",p=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,c,l.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+h,relevance:0},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+i.join("|")+")"},{begin:":(:)?("+a.join("|")+")"}]},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+o.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...p,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...p,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:s.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:d},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:u,attribute:r.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...p,l.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+n.join("|")+")\\b"}]}}e.exports=s},92835:function(e){function t(e){const t={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},n={className:"subst",variants:[{begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super"},r={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t,n]}]};n.contains=[e.C_NUMBER_MODE,r];const i=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],a=i.map((e=>`${e}?`)),o=["abstract","as","assert","async","await","break","case","catch","class","const","continue","covariant","default","deferred","do","dynamic","else","enum","export","extends","extension","external","factory","false","final","finally","for","Function","get","hide","if","implements","import","in","inferface","is","late","library","mixin","new","null","on","operator","part","required","rethrow","return","set","show","static","super","switch","sync","this","throw","true","try","typedef","var","void","while","with","yield"],s={keyword:o,built_in:i.concat(a).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]),$pattern:/[A-Za-z][A-Za-z0-9_]*\??/};return{name:"Dart",keywords:s,contains:[r,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".",end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}e.exports=t},16361:function(e){function t(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}e.exports=t},82476:function(e){function t(e){const t=["from","maintainer","expose","env","arg","user","onbuild","stopsignal"];return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:t,contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}e.exports=t},74809:function(e){function t(e){const t=e.regex,n="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",r="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",i=["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"],a=["false","nil","true"],o={$pattern:n,keyword:i,literal:a},s={className:"subst",begin:/#\{/,end:/\}/,keywords:o},l={className:"number",begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)",relevance:0},c=/\\[\s\S]/,u={match:c,scope:"char.escape",relevance:0},d="[/|([{<\"']",h=[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin:/</,end:/>/}],p=e=>({scope:"char.escape",begin:t.concat(/\\/,e),relevance:0}),f={className:"string",begin:"~[a-z](?="+d+")",contains:h.map((t=>e.inherit(t,{contains:[p(t.end),u,s]})))},m={className:"string",begin:"~[A-Z](?="+d+")",contains:h.map((t=>e.inherit(t,{contains:[p(t.end)]})))},g={className:"regex",variants:[{begin:"~r(?="+d+")",contains:h.map((n=>e.inherit(n,{end:t.concat(n.end,/[uismxfU]{0,7}/),contains:[p(n.end),u,s]})))},{begin:"~R(?="+d+")",contains:h.map((n=>e.inherit(n,{end:t.concat(n.end,/[uismxfU]{0,7}/),contains:[p(n.end)]})))}]},v={className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},b={className:"function",beginKeywords:"def defp defmacro defmacrop",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},y=e.inherit(b,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),w=[v,g,m,f,e.HASH_COMMENT_MODE,y,b,{begin:"::"},{className:"symbol",begin:":(?![\\s:])",contains:[v,{begin:r}],relevance:0},{className:"symbol",begin:n+":(?!:)",relevance:0},{className:"title.class",begin:/(\b[A-Z][a-zA-Z0-9_]+)/,relevance:0},l,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"}];return s.contains=w,{name:"Elixir",aliases:["ex","exs"],keywords:o,contains:w}}e.exports=t},42892:function(e){function t(e){const t={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},n={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},t]},i={begin:/\{/,end:/\}/,contains:r.contains},a={className:"string",begin:"'\\\\?.",end:"'",illegal:"."},o=["let","in","if","then","else","case","of","where","module","import","exposing","type","alias","as","infix","infixl","infixr","port","effect","command","subscription"];return{name:"Elm",keywords:o,contains:[{beginKeywords:"port effect module",end:"exposing",keywords:"port effect module where command subscription exposing",contains:[r,t],illegal:"\\W\\.|;"},{begin:"import",end:"$",keywords:"import as exposing",contains:[r,t],illegal:"\\W\\.|;"},{begin:"type",end:"$",keywords:"type alias",contains:[n,r,i,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"port",end:"$",keywords:"port",contains:[t]},a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,n,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}],illegal:/;/}}e.exports=t},84441:function(e){function t(e){const t="[a-z'][a-zA-Z0-9_']*",n="("+t+":"+t+"|"+t+")",r={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.COMMENT("%","$"),a={className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},o={begin:"fun\\s+"+t+"/\\d+"},s={begin:n+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:n,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:/\{/,end:/\}/,relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},u={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},d={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:/\{/,end:/\}/,relevance:0}]},h={beginKeywords:"fun receive if try case",end:"end",keywords:r};h.contains=[i,o,e.inherit(e.APOS_STRING_MODE,{className:""}),h,s,e.QUOTE_STRING_MODE,a,l,c,u,d];const p=[i,o,h,s,e.QUOTE_STRING_MODE,a,l,c,u,d];s.contains[1].contains=p,l.contains=p,d.contains[1].contains=p;const f=["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec"],m={className:"params",begin:"\\(",end:"\\)",contains:p};return{name:"Erlang",aliases:["erl"],keywords:r,illegal:"(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",contains:[{className:"function",begin:"^"+t+"\\s*\\(",end:"->",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[m,e.inherit(e.TITLE_MODE,{begin:t})],starts:{end:";|\\.",keywords:r,contains:p}},i,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE,keyword:f.map((e=>`${e}|1.5`)).join(" ")},contains:[m]},a,e.QUOTE_STRING_MODE,d,c,u,l,{begin:/\.$/}]}}e.exports=t},25236:function(e){function t(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function n(e){return e?"string"===typeof e?e:e.source:null}function r(e){return i("(?=",e,")")}function i(...e){const t=e.map((e=>n(e))).join("");return t}function a(e){const t=e[e.length-1];return"object"===typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function o(...e){const t=a(e),r="("+(t.capture?"":"?:")+e.map((e=>n(e))).join("|")+")";return r}function s(e){const n=["abstract","and","as","assert","base","begin","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","extern","finally","fixed","for","fun","function","global","if","in","inherit","inline","interface","internal","lazy","let","match","member","module","mutable","namespace","new","of","open","or","override","private","public","rec","return","static","struct","then","to","try","type","upcast","use","val","void","when","while","with","yield"],a={scope:"keyword",match:/\b(yield|return|let|do|match|use)!/},s=["if","else","endif","line","nowarn","light","r","i","I","load","time","help","quit"],l=["true","false","null","Some","None","Ok","Error","infinity","infinityf","nan","nanf"],c=["__LINE__","__SOURCE_DIRECTORY__","__SOURCE_FILE__"],u=["bool","byte","sbyte","int8","int16","int32","uint8","uint16","uint32","int","uint","int64","uint64","nativeint","unativeint","decimal","float","double","float32","single","char","string","unit","bigint","option","voption","list","array","seq","byref","exn","inref","nativeptr","obj","outref","voidptr","Result"],d=["not","ref","raise","reraise","dict","readOnlyDict","set","get","enum","sizeof","typeof","typedefof","nameof","nullArg","invalidArg","invalidOp","id","fst","snd","ignore","lock","using","box","unbox","tryUnbox","printf","printfn","sprintf","eprintf","eprintfn","fprintf","fprintfn","failwith","failwithf"],h={keyword:n,literal:l,built_in:d,"variable.constant":c},p=e.COMMENT(/\(\*(?!\))/,/\*\)/,{contains:["self"]}),f={variants:[p,e.C_LINE_COMMENT_MODE]},m=/[a-zA-Z_](\w|')*/,g={scope:"variable",begin:/``/,end:/``/},v=/\B('|\^)/,b={scope:"symbol",variants:[{match:i(v,/``.*?``/)},{match:i(v,e.UNDERSCORE_IDENT_RE)}],relevance:0},y=function({includeEqual:e}){let n;n=e?"!%&*+-/<=>@^|~?":"!%&*+-/<>@^|~?";const a=Array.from(n),s=i("[",...a.map(t),"]"),l=o(s,/\./),c=i(l,r(l)),u=o(i(c,l,"*"),i(s,"+"));return{scope:"operator",match:o(u,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/),relevance:0}},w=y({includeEqual:!0}),E=y({includeEqual:!1}),_=function(t,n){return{begin:i(t,r(i(/\s*/,o(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),beginScope:n,end:r(o(/\n/,/=/)),relevance:0,keywords:e.inherit(h,{type:u}),contains:[f,b,e.inherit(g,{scope:null}),E]}},S=_(/:/,"operator"),k=_(/\bof\b/,"keyword"),x={begin:[/(^|\s+)/,/type/,/\s+/,m],beginScope:{2:"keyword",4:"title.class"},end:r(/\(|=|$/),keywords:h,contains:[f,e.inherit(g,{scope:null}),b,{scope:"operator",match:/<|>/},S]},A={scope:"computation-expression",match:/\b[_a-z]\w*(?=\s*\{)/},N={begin:[/^\s*/,i(/#/,o(...s)),/\b/],beginScope:{2:"meta"},end:r(/\s|$/)},C={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},T={scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},R={scope:"string",begin:/@"/,end:/"/,contains:[{match:/""/},e.BACKSLASH_ESCAPE]},O={scope:"string",begin:/"""/,end:/"""/,relevance:2},I={scope:"subst",begin:/\{/,end:/\}/,keywords:h},L={scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},e.BACKSLASH_ESCAPE,I]},D={scope:"string",begin:/(\$@|@\$)"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},e.BACKSLASH_ESCAPE,I]},P={scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/},I],relevance:2},M={scope:"string",match:i(/'/,o(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/)};I.contains=[D,L,R,T,M,a,f,g,S,A,N,C,b,w];const B={variants:[P,D,L,O,R,T,M]};return{name:"F#",aliases:["fs","f#"],keywords:h,illegal:/\/\*/,classNameAliases:{"computation-expression":"keyword"},contains:[a,B,f,g,x,{scope:"meta",begin:/\[</,end:/>\]/,relevance:2,contains:[g,O,R,T,M,C]},k,S,A,N,C,b,w]}}e.exports=s},51468:function(e){function t(e){const t=["true","false","iota","nil"],n=["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"],r=["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],i=["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],a={keyword:i,type:r,literal:t,built_in:n};return{name:"Go",aliases:["golang"],keywords:a,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:a,illegal:/["']/}]}]}}e.exports=t},95541:function(e){function t(e){const t=["task","project","allprojects","subprojects","artifacts","buildscript","configurations","dependencies","repositories","sourceSets","description","delete","from","into","include","exclude","source","classpath","destinationDir","includes","options","sourceCompatibility","targetCompatibility","group","flatDir","doLast","doFirst","flatten","todir","fromdir","ant","def","abstract","break","case","catch","continue","default","do","else","extends","final","finally","for","if","implements","instanceof","native","new","private","protected","public","return","static","switch","synchronized","throw","throws","transient","try","volatile","while","strictfp","package","import","false","null","super","this","true","antlrtask","checkstyle","codenarc","copy","boolean","byte","char","class","double","float","int","interface","long","short","void","compile","runTime","file","fileTree","abs","any","append","asList","asWritable","call","collect","compareTo","count","div","dump","each","eachByte","eachFile","eachLine","every","find","findAll","flatten","getAt","getErr","getIn","getOut","getText","grep","immutable","inject","inspect","intersect","invokeMethods","isCase","join","leftShift","minus","multiply","newInputStream","newOutputStream","newPrintWriter","newReader","newWriter","next","plus","pop","power","previous","print","println","push","putAt","read","readBytes","readLines","reverse","reverseEach","round","size","sort","splitEachLine","step","subMap","times","toInteger","toList","tokenize","upto","waitForOrKill","withPrintWriter","withReader","withStream","withWriter","withWriterAppend","write","writeLine"];return{name:"Gradle",case_insensitive:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE]}}e.exports=t},53528:function(e){function t(e,t={}){return t.variants=e,t}function n(e){const n=e.regex,r="[A-Za-z0-9_$]+",i=t([e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]})]),a={className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},o=t([e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]),s=t([{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE],{className:"string"}),l={match:[/(class|interface|trait|enum|extends|implements)/,/\s+/,e.UNDERSCORE_IDENT_RE],scope:{1:"keyword",3:"title.class"}},c=["byte","short","char","int","long","boolean","float","double","void"],u=["def","as","in","assert","trait","abstract","static","volatile","transient","public","private","protected","synchronized","final","class","interface","enum","if","else","for","while","switch","case","break","default","continue","throw","throws","try","catch","finally","implements","extends","new","import","package","return","instanceof"];return{name:"Groovy",keywords:{"variable.language":"this super",literal:"true false null",type:c,keyword:u},contains:[e.SHEBANG({binary:"groovy",relevance:10}),i,s,a,o,l,{className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr",begin:r+"[ \t]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0,contains:[i,s,a,o,"self"]},{className:"symbol",begin:"^[ \t]*"+n.lookahead(r+":"),excludeBegin:!0,end:r+":",relevance:0}],illegal:/#|<\//}}e.exports=n},88842:function(e){function t(e){const t=e.regex,n={$pattern:/[\w.\/]+/,built_in:["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"]},r={$pattern:/[\w.\/]+/,literal:["true","false","undefined","null"]},i=/""|"[^"]+"/,a=/''|'[^']+'/,o=/\[\]|\[[^\]]+\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,l=/(\.|\/)/,c=t.either(i,a,o,s),u=t.concat(t.optional(/\.|\.\/|\//),c,t.anyNumberOfTimes(t.concat(l,c))),d=t.concat("(",o,"|",s,")(?==)"),h={begin:u},p=e.inherit(h,{keywords:r}),f={begin:/\(/,end:/\)/},m={className:"attr",begin:d,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,p,f]}}},g={begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},v={contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,g,m,p,f],returnEnd:!0},b=e.inherit(h,{className:"name",keywords:n,starts:e.inherit(v,{end:/\)/})});f.contains=[b];const y=e.inherit(h,{keywords:n,className:"name",starts:e.inherit(v,{end:/\}\}/})}),w=e.inherit(h,{keywords:n,className:"name"}),E=e.inherit(h,{className:"name",keywords:n,starts:e.inherit(v,{end:/\}\}/})}),_={begin:/\\\{\{/,skip:!0},S={begin:/\\\\(?=\{\{)/,skip:!0};return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[_,S,e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[y],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[w]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[y]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[w]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[E]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[E]}]}}e.exports=t},74192:function(e){function t(e){const t={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},n={className:"meta",begin:/\{-#/,end:/#-\}/},r={className:"meta",begin:"^#",end:"$"},i={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},a={begin:"\\(",end:"\\)",illegal:'"',contains:[n,r,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),t]},o={begin:/\{/,end:/\}/,contains:a.contains},s="([0-9]_*)+",l="([0-9a-fA-F]_*)+",c="([01]_*)+",u="([0-7]_*)+",d={className:"number",relevance:0,variants:[{match:`\\b(${s})(\\.(${s}))?([eE][+-]?(${s}))?\\b`},{match:`\\b0[xX]_*(${l})(\\.(${l}))?([pP][+-]?(${s}))?\\b`},{match:`\\b0[oO](${u})\\b`},{match:`\\b0[bB](${c})\\b`}]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[a,t],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[a,t],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[i,a,t]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[n,i,a,o,t]},{beginKeywords:"default",end:"$",contains:[i,a,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[i,e.QUOTE_STRING_MODE,t]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},n,r,e.QUOTE_STRING_MODE,d,i,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}]}}e.exports=t},99682:function(e){function t(e){const t=e.regex,n={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},a={className:"literal",begin:/\bon|off|true|false|yes|no\b/},o={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},s={begin:/\[/,end:/\]/,contains:[r,a,i,o,n,"self"],relevance:0},l=/[A-Za-z0-9_-]+/,c=/"(\\"|[^"])*"/,u=/'[^']*'/,d=t.either(l,c,u),h=t.concat(d,"(\\s*\\.\\s*",d,")*",t.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[r,{className:"section",begin:/\[+/,end:/\]+/},{begin:h,className:"attr",starts:{end:/$/,contains:[r,s,a,i,o,n]}}]}}e.exports=t},26418:function(e){var t="[0-9](_*[0-9])*",n=`\\.(${t})`,r="[0-9a-fA-F](_*[0-9a-fA-F])*",i={className:"number",variants:[{begin:`(\\b(${t})((${n})|\\.)?|(${n}))[eE][+-]?(${t})[fFdD]?\\b`},{begin:`\\b(${t})((${n})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${n})[fFdD]?\\b`},{begin:`\\b(${t})[fFdD]\\b`},{begin:`\\b0[xX]((${r})\\.?|(${r})?\\.(${r}))[pP][+-]?(${t})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${r})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function a(e,t,n){return-1===n?"":e.replace(t,(r=>a(e,t,n-1)))}function o(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+a("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),o=["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed"],s=["super","this"],l=["false","true","null"],c=["char","boolean","long","float","int","byte","short","double"],u={keyword:o,literal:l,type:c,built_in:s},d={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},h={className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:u,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:u,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i,d]}}e.exports=o},73113:function(e){const t="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],r=["true","false","null","undefined","NaN","Infinity"],i=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],a=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],o=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],s=["arguments","this","super","console","window","document","localStorage","module","global"],l=[].concat(o,i,a);function c(e){const c=e.regex,u=(e,{after:t})=>{const n="</"+e[0].slice(1),r=e.input.indexOf(n,t);return-1!==r},d=t,h={begin:"<>",end:"</>"},p=/<[A-Za-z0-9\\._:-]+\s*\/>/,f={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,r=e.input[n];if("<"===r||","===r)return void t.ignoreMatch();let i;">"===r&&(u(e,{after:n})||t.ignoreMatch());const a=e.input.substring(n);(i=a.match(/^\s+extends\s+/))&&0===i.index&&t.ignoreMatch()}},m={$pattern:t,keyword:n,literal:r,built_in:l,"variable.language":s},g="[0-9](_?[0-9])*",v=`\\.(${g})`,b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",y={className:"number",variants:[{begin:`(\\b(${b})((${v})|\\.)?|(${v}))[eE][+-]?(${g})\\b`},{begin:`\\b(${b})\\b((${v})\\b|\\.)?|(${v})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},w={className:"subst",begin:"\\$\\{",end:"\\}",keywords:m,contains:[]},E={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,w],subLanguage:"xml"}},_={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,w],subLanguage:"css"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,w]},k=e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:d+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),x={className:"comment",variants:[k,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},A=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,_,S,y];w.contains=A.concat({begin:/\{/,end:/\}/,keywords:m,contains:["self"].concat(A)});const N=[].concat(x,w.contains),C=N.concat([{begin:/\(/,end:/\)/,keywords:m,contains:["self"].concat(N)}]),T={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:m,contains:C},R={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,c.concat(d,"(",c.concat(/\./,d),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,d],scope:{1:"keyword",3:"title.class"}}]},O={relevance:0,match:c.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...i,...a]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},L={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[T],illegal:/%/},D={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function P(e){return c.concat("(?!",e.join("|"),")")}const M={match:c.concat(/\b/,P([...o,"super"]),d,c.lookahead(/\(/)),className:"title.function",relevance:0},B={begin:c.concat(/\./,c.lookahead(c.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},F={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},T]},$="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",U={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,c.lookahead($)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[T]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:m,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:O},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,_,S,x,y,O,{className:"attr",begin:d+c.lookahead(":"),relevance:0},U,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:$,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:m,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:h.begin,end:h.end},{match:p},{begin:f.begin,"on:begin":f.isTrulyOpeningTag,end:f.end}],subLanguage:"xml",contains:[{begin:f.begin,end:f.end,skip:!0,contains:["self"]}]}]},L,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[T,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},B,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[T]},M,D,R,F,{match:/\$[(.]/}]}}e.exports=c},90020:function(e){function t(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}e.exports=t},44063:function(e){var t="[0-9](_*[0-9])*",n=`\\.(${t})`,r="[0-9a-fA-F](_*[0-9a-fA-F])*",i={className:"number",variants:[{begin:`(\\b(${t})((${n})|\\.)?|(${n}))[eE][+-]?(${t})[fFdD]?\\b`},{begin:`\\b(${t})((${n})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${n})[fFdD]?\\b`},{begin:`\\b(${t})[fFdD]\\b`},{begin:`\\b0[xX]((${r})\\.?|(${r})?\\.(${r}))[pP][+-]?(${t})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${r})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function a(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},o={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[o,a]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,o,a]}]};a.contains.push(s);const l={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"string"}),"self"]}]},u=i,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},p=h;return p.variants[1].contains=[h],h.variants[1].contains=[p],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,n,r,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,l,c,s,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},l,c]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},u]}}e.exports=a},1075:function(e){const t=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),n=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),s=i.concat(a);function l(e){const l=t(e),c=s,u="and or not only",d="[\\w-]+",h="("+d+"|@\\{"+d+"\\})",p=[],f=[],m=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},g=function(e,t,n){return{className:e,begin:t,relevance:n}},v={$pattern:/[a-z-]+/,keyword:u,attribute:r.join(" ")},b={begin:"\\(",end:"\\)",contains:f,keywords:v,relevance:0};f.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m("'"),m('"'),l.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},l.HEXCOLOR,b,g("variable","@@?"+d,10),g("variable","@\\{"+d+"\\}"),g("built_in","~?`[^`]*?`"),{className:"attribute",begin:d+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},l.IMPORTANT,{beginKeywords:"and not"},l.FUNCTION_DISPATCH);const y=f.concat({begin:/\{/,end:/\}/,contains:p}),w={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(f)},E={begin:h+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+o.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:f}}]},_={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:v,returnEnd:!0,contains:f,relevance:0}},S={className:"variable",variants:[{begin:"@"+d+"\\s*:",relevance:15},{begin:"@"+d}],starts:{end:"[;}]",returnEnd:!0,contains:y}},k={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:h,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,w,g("keyword","all\\b"),g("variable","@\\{"+d+"\\}"),{begin:"\\b("+n.join("|")+")\\b",className:"selector-tag"},l.CSS_NUMBER_MODE,g("selector-tag",h,0),g("selector-id","#"+h),g("selector-class","\\."+h,0),g("selector-tag","&",0),l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+i.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+a.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:y},{begin:"!important"},l.FUNCTION_DISPATCH]},x={begin:d+":(:)?"+`(${c.join("|")})`,returnBegin:!0,contains:[k]};return p.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,_,S,x,E,k,w,l.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:p}}e.exports=l},8090:function(e){function t(e){const t="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",n="\\|[^]*?\\|",r="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",i={className:"literal",begin:"\\b(t{1}|nil)\\b"},a={className:"number",variants:[{begin:r,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+r+" +"+r,end:"\\)"}]},o=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),s=e.COMMENT(";","$",{relevance:0}),l={begin:"\\*",end:"\\*"},c={className:"symbol",begin:"[:&]"+t},u={begin:t,relevance:0},d={begin:n},h={begin:"\\(",end:"\\)",contains:["self",i,o,a,u]},p={contains:[a,o,l,c,h,u],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+n}]},f={variants:[{begin:"'"+t},{begin:"#'"+t+"(::"+t+")*"}]},m={begin:"\\(\\s*",end:"\\)"},g={endsWithParent:!0,relevance:0};return m.contains=[{className:"name",variants:[{begin:t,relevance:0},{begin:n}]},g],g.contains=[p,f,m,i,a,o,s,l,c,d,u],{name:"Lisp",illegal:/\S/,contains:[a,e.SHEBANG(),i,o,s,p,f,m,u]}}e.exports=t},77190:function(e){function t(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}e.exports=t},30374:function(e){function t(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[t]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},a={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},o={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[t]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[e.HASH_COMMENT_MODE,t,n,r,i,a,o]}}e.exports=t},50687:function(e){function t(e){const t=e.regex,n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},a={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},s=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,s,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},u={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]},d=e.inherit(c,{contains:[]}),h=e.inherit(u,{contains:[]});c.contains.push(h),u.contains.push(d);let p=[n,l];[c,u,d,h].forEach((e=>{e.contains=e.contains.concat(p)})),p=p.concat(c,u);const f={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:p},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:p}]}]},m={className:"quote",begin:"^>\\s+",contains:p,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[f,n,a,c,u,m,i,r,l,o]}}e.exports=t},86072:function(e){function t(e){const t=e.regex,n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{begin:t.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},r=["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"],i={endsWithParent:!0,keywords:{$pattern:/[a-z_]{2,}|\/dev\/poll/,literal:r},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{beginKeywords:"upstream location",end:/;|\{/,contains:i.contains,keywords:{section:"upstream location"}},{className:"section",begin:t.concat(e.UNDERSCORE_IDENT_RE+t.lookahead(/\s+\{/)),relevance:0},{begin:t.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:i}],relevance:0}],illegal:"[^\\s\\}\\{]"}}e.exports=t},69318:function(e){function t(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,r=["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"],i=["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],a=["false","true","FALSE","TRUE","nil","YES","NO","NULL"],o=["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],s={"variable.language":["this","super"],$pattern:n,keyword:i,literal:a,built_in:o,type:r},l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:s,illegal:"</",contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}e.exports=t},3315:function(e){function t(e){const t=e.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},o={begin:/->\{/,end:/\}/},s={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},l=[e.BACKSLASH_ESCAPE,a,s],c=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],u=(e,n,i="\\1")=>{const a="\\1"===i?i:t.concat(i,n);return t.concat(t.concat("(?:",e,")"),n,/(?:\\.|[^\\\/])*?/,a,/(?:\\.|[^\\\/])*?/,i,r)},d=(e,n,i)=>t.concat(t.concat("(?:",e,")"),n,/(?:\\.|[^\\\/])*?/,i,r),h=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:l,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:u("s|tr|y",t.either(...c,{capture:!0}))},{begin:u("s|tr|y","\\(","\\)")},{begin:u("s|tr|y","\\[","\\]")},{begin:u("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t.either(...c,{capture:!0}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return a.contains=h,o.contains=h,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:h}}e.exports=t},74071:function(e){function t(e){const t=e.COMMENT("--","$"),n="[a-zA-Z_][a-zA-Z_0-9$]*",r="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",i="<<\\s*"+n+"\\s*>>",a="ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ",o="SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ",s="ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN ",l="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",c=l.trim().split(" ").map((function(e){return e.split("|")[0]})).join("|"),u="CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC ",d="FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 ",h="SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED ",p="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST ",f=p.trim().split(" ").map((function(e){return e.split("|")[0]})).join("|");return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql",case_insensitive:!0,keywords:{keyword:a+s+o,built_in:u+d+h},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{begin:/\bGROUPING\s+SETS\b/},{begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/,keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/},{begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR"}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE",end:e.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE"},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type",begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/},{begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"}},{begin:"\\b("+f+")\\s*\\("},{begin:"\\.("+c+")\\b"},{begin:"\\b("+c+")\\s+PATH\\b",keywords:{keyword:"PATH",type:l.replace("PATH ","")}},{className:"type",begin:"\\b("+c+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}],relevance:10},e.END_SAME_AS_BEGIN({begin:r,end:r,contains:[{subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"],endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"meta",variants:[{begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{className:"symbol",begin:i,relevance:10}]}}e.exports=t},37592:function(e){function t(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a={scope:"variable",match:"\\$+"+r},o={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},s={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null}),c=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),u=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),d="[ \t\n]",h={scope:"string",variants:[c,l,u]},p={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},f=["false","null","true"],m=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],g=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],v=e=>{const t=[];return e.forEach((e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())})),t},b={keyword:m,literal:v(f),built_in:g},y=e=>e.map((e=>e.replace(/\|\d+$/,""))),w={variants:[{match:[/new/,t.concat(d,"+"),t.concat("(?!",y(g).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},E=t.concat(r,"\\b(?!\\()"),_={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),E],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),E],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},S={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},k={relevance:0,begin:/\(/,end:/\)/,keywords:b,contains:[S,a,_,e.C_BLOCK_COMMENT_MODE,h,p,w]},x={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",y(m).join("\\b|"),"|",y(g).join("\\b|"),"\\b)"),r,t.concat(d,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[k]};k.contains.push(x);const A=[S,_,e.C_BLOCK_COMMENT_MODE,h,p,w],N={begin:t.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:f,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:f,keyword:["new","array"]},contains:["self",...A]},...A,{scope:"meta",match:i}]};return{case_insensitive:!1,keywords:b,contains:[N,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},o,{scope:"variable.language",match:/\$this\b/},a,x,_,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},w,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:b,contains:["self",a,_,e.C_BLOCK_COMMENT_MODE,h,p]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},h,p]}}e.exports=t},50619:function(e){function t(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}e.exports=t},45107:function(e){function t(e){const t=["string","char","byte","int","long","bool","decimal","single","double","DateTime","xml","array","hashtable","void"],n="Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where",r="-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor",i={$pattern:/-?[A-z\.\-]+\b/,keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter",built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write"},a=/\w[\w\d]*((-)[\w\d]+)*/,o={begin:"`[\\s\\S]",relevance:0},s={className:"variable",variants:[{begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}]},l={className:"literal",begin:/\$(null|true|false)\b/},c={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[o,s,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},u={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},d={className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]},h=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[d]}),p={className:"built_in",variants:[{begin:"(".concat(n,")+(-)[\\w\\d]+")}]},f={className:"class",beginKeywords:"class enum",end:/\s*[{]/,excludeEnd:!0,relevance:0,contains:[e.TITLE_MODE]},m={className:"function",begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0,contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title",begin:a,relevance:0},{begin:/\(/,end:/\)/,className:"params",relevance:0,contains:[s]}]},g={begin:/using\s/,end:/$/,returnBegin:!0,contains:[c,u,{className:"keyword",begin:/(using|assembly|command|module|namespace|type)/}]},v={variants:[{className:"operator",begin:"(".concat(r,")\\b")},{className:"literal",begin:/(-){1,2}[\w\d-]+/,relevance:0}]},b={className:"selector-tag",begin:/@\B/,relevance:0},y={className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0,relevance:0,contains:[{className:"keyword",begin:"(".concat(i.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0,relevance:0},e.inherit(e.TITLE_MODE,{endsParent:!0})]},w=[y,h,o,e.NUMBER_MODE,c,u,p,s,l,b],E={begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",w,{begin:"("+t.join("|")+")",className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/,relevance:0})};return y.contains.unshift(E),{name:"PowerShell",aliases:["pwsh","ps","ps1"],case_insensitive:!0,keywords:i,contains:w.concat(f,m,g,v,E)}}e.exports=t},76015:function(e){function t(e){const t="[ \\t\\f]*",n="[ \\t\\f]+",r=t+"[:=]"+t,i=n,a="("+r+"|"+i+")",o="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:a,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",disableAutodetect:!0,case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{begin:o+r},{begin:o+i}],contains:[{className:"attr",begin:o,endsParent:!0}],starts:s},{className:"attr",begin:o+t+"$"}]}}e.exports=t},2061:function(e){function t(e){const t=["package","import","option","optional","required","repeated","group","oneof"],n=["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"],r={match:[/(message|enum|service)\s+/,e.IDENT_RE],scope:{1:"keyword",2:"title.class"}};return{name:"Protocol Buffers",keywords:{keyword:t,type:n,literal:["true","false"]},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}e.exports=t},90944:function(e){function t(e){const t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i=["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],a=["__debug__","Ellipsis","False","None","NotImplemented","True"],o=["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"],s={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:i,literal:a,type:o},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:s,illegal:/#/},u={begin:/\{\{/,relevance:0},d={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,u,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,u,c]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",p=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,f=`\\b|${r.join("|")}`,m={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${p}))[eE][+-]?(${h})[jJ]?(?=${f})`},{begin:`(${p})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${f})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${f})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${f})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${f})`},{begin:`\\b(${h})[jJ](?=${f})`}]},g={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:s,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},v={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:["self",l,m,d,e.HASH_COMMENT_MODE]}]};return c.contains=[d,m,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:s,illegal:/(<\/|->|\?)|=>/,contains:[l,m,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},d,g,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[v]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[m,v,d]}]}}e.exports=t},79386:function(e){function t(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),a={"variable.constant":["__FILE__","__LINE__"],"variable.language":["self","super"],keyword:["alias","and","attr_accessor","attr_reader","attr_writer","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","include","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield"],built_in:["proc","lambda"],literal:["true","false","nil"]},o={className:"doctag",begin:"@[A-Za-z]+"},s={begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[o]}),e.COMMENT("^=begin","^=end",{contains:[o],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,end:/\}/,keywords:a},u={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},d="[1-9](_?[0-9])*|0",h="[0-9](_?[0-9])*",p={className:"number",relevance:0,variants:[{begin:`\\b(${d})(\\.(${h}))?([eE][+-]?(${h})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},f={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},m={variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/class\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:a},g={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},v={match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[f]},b={relevance:0,match:[i,/\.new[ (]/],scope:{1:"title.class"}},y=[u,m,b,g,v,{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[u,{begin:n}],relevance:0},p,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(s,l),relevance:0}].concat(s,l);c.contains=y,f.contains=y;const w="[>?]>",E="[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]",_="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",S=[{begin:/^\s*=>/,starts:{end:"$",contains:y}},{className:"meta.prompt",begin:"^("+w+"|"+E+"|"+_+")(?=[ ])",starts:{end:"$",keywords:a,contains:y}}];return l.unshift(s),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(S).concat(l).concat(y)}}e.exports=t},8368:function(e){function t(e){const t=e.regex,n={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},r="([ui](8|16|32|64|128|size)|f(32|64))?",i=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],a=["true","false","Some","None","Ok","Err"],o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],s=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:s,keyword:i,literal:a,built_in:o},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{begin:"\\b0b([01_]+)"+r},{begin:"\\b0o([0-7_]+)"+r},{begin:"\\b0x([A-Fa-f0-9_]+)"+r},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+r}],relevance:0},{begin:[/fn/,/\s+/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,e.UNDERSCORE_IDENT_RE,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:o,type:s}},{className:"punctuation",begin:"->"},n]}}e.exports=t},31914:function(e){function t(e){const t=e.regex,n={className:"meta",begin:"@[A-Za-z]+"},r={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}]},i={className:"string",variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,r]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[r],relevance:10}]},a={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},o={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},s={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[a]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[a]},o]},l={className:"function",beginKeywords:"def",end:t.lookahead(/[:={\[(\n;]/),contains:[o]},c={begin:[/^\s*/,"extension",/\s+(?=[[(])/],beginScope:{2:"keyword"}},u={begin:[/^\s*/,/end/,/\s+/,/(extension\b)?/],beginScope:{2:"keyword",4:"keyword"}},d=[{match:/\.inline\b/},{begin:/\binline(?=\s)/,keywords:"inline"}],h={begin:[/\(\s*/,/using/,/\s+(?!\))/],beginScope:{2:"keyword"}};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if then forSome for while do throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit export enum given transparent"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a,l,s,e.C_NUMBER_MODE,c,u,...d,h,n]}}e.exports=t},74222:function(e){const t=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),n=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function s(e){const s=t(e),l=a,c=i,u="@[a-z-]+",d="and or not only",h="[a-zA-Z-][a-zA-Z0-9_-]*",p={className:"variable",begin:"(\\$"+h+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},s.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+n.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+c.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+l.join("|")+")"},p,{begin:/\(/,end:/\)/,contains:[s.CSS_NUMBER_MODE]},s.CSS_VARIABLE,{className:"attribute",begin:"\\b("+o.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[s.BLOCK_COMMENT,p,s.HEXCOLOR,s.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,s.IMPORTANT,s.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:u,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:r.join(" ")},contains:[{begin:u,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},p,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,s.HEXCOLOR,s.CSS_NUMBER_MODE]},s.FUNCTION_DISPATCH]}}e.exports=s},7846:function(e){function t(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}e.exports=t},90984:function(e){function t(e){const t=e.regex,n=e.COMMENT("--","$"),r={className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},i={begin:/"/,end:/"/,contains:[{begin:/""/}]},a=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],s=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],u=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],d=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],p=u,f=[...c,...l].filter((e=>!u.includes(e))),m={className:"variable",begin:/@[a-z0-9]+/},g={className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},v={begin:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function b(e,{exceptions:t,when:n}={}){const r=n;return t=t||[],e.map((e=>e.match(/\|\d+$/)||t.includes(e)?e:r(e)?`${e}|0`:e))}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:b(f,{when:e=>e.length<3}),literal:a,type:s,built_in:d},contains:[{begin:t.either(...h),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:f.concat(h),literal:a,type:s}},{className:"type",begin:t.either(...o)},v,m,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,g]}}e.exports=t},72723:function(e){function t(e){return e?"string"===typeof e?e:e.source:null}function n(e){return r("(?=",e,")")}function r(...e){const n=e.map((e=>t(e))).join("");return n}function i(e){const t=e[e.length-1];return"object"===typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function a(...e){const n=i(e),r="("+(n.capture?"":"?:")+e.map((e=>t(e))).join("|")+")";return r}const o=e=>r(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(o),l=["init","self"].map(o),c=["Any","Self"],u=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],d=["false","nil","true"],h=["assignment","associativity","higherThan","left","lowerThan","none","right"],p=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],f=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],m=a(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),g=a(m,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),v=r(m,g,"*"),b=a(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),y=a(b,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=r(b,y,"*"),E=r(/[A-Z]/,y,"*"),_=["autoclosure",r(/convention\(/,a("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",r(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],S=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function k(e){const t={match:/\s+/,relevance:0},i=e.COMMENT("/\\*","\\*/",{contains:["self"]}),m=[e.C_LINE_COMMENT_MODE,i],b={match:[/\./,a(...s,...l)],className:{2:"keyword"}},k={match:r(/\./,a(...u)),relevance:0},x=u.filter((e=>"string"===typeof e)).concat(["_|0"]),A=u.filter((e=>"string"!==typeof e)).concat(c).map(o),N={variants:[{className:"keyword",match:a(...A,...l)}]},C={$pattern:a(/\b\w+/,/#\w+/),keyword:x.concat(p),literal:d},T=[b,k,N],R={match:r(/\./,a(...f)),relevance:0},O={className:"built_in",match:r(/\b/,a(...f),/(?=\()/)},I=[R,O],L={match:/->/,relevance:0},D={className:"operator",relevance:0,variants:[{match:v},{match:`\\.(\\.|${g})+`}]},P=[L,D],M="([0-9]_*)+",B="([0-9a-fA-F]_*)+",F={className:"number",relevance:0,variants:[{match:`\\b(${M})(\\.(${M}))?([eE][+-]?(${M}))?\\b`},{match:`\\b0x(${B})(\\.(${B}))?([pP][+-]?(${M}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},$=(e="")=>({className:"subst",variants:[{match:r(/\\/,e,/[0\\tnr"']/)},{match:r(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),U=(e="")=>({className:"subst",match:r(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),j=(e="")=>({className:"subst",label:"interpol",begin:r(/\\/,e,/\(/),end:/\)/}),V=(e="")=>({begin:r(e,/"""/),end:r(/"""/,e),contains:[$(e),U(e),j(e)]}),K=(e="")=>({begin:r(e,/"/),end:r(/"/,e),contains:[$(e),j(e)]}),H={className:"string",variants:[V(),V("#"),V("##"),V("###"),K(),K("#"),K("##"),K("###")]},G={match:r(/`/,w,/`/)},z={className:"variable",match:/\$\d+/},q={className:"variable",match:`\\$${y}+`},X=[G,z,q],W={match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:S,contains:[...P,F,H]}]}},Y={className:"keyword",match:r(/@/,a(..._))},Q={className:"meta",match:r(/@/,w)},J=[W,Y,Q],Z={match:n(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:r(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,y,"+")},{className:"type",match:E,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:r(/\s+&\s+/,n(E)),relevance:0}]},ee={begin:/</,end:/>/,keywords:C,contains:[...m,...T,...J,L,Z]};Z.contains.push(ee);const te={match:r(w,/\s*:/),keywords:"_|0",relevance:0},ne={begin:/\(/,end:/\)/,relevance:0,keywords:C,contains:["self",te,...m,...T,...I,...P,F,H,...X,...J,Z]},re={begin:/</,end:/>/,contains:[...m,Z]},ie={begin:a(n(r(w,/\s*:/)),n(r(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}]},ae={begin:/\(/,end:/\)/,keywords:C,contains:[ie,...m,...T,...P,F,H,...J,Z,ne],endsParent:!0,illegal:/["']/},oe={match:[/func/,/\s+/,a(G.match,w,v)],className:{1:"keyword",3:"title.function"},contains:[re,ae,t],illegal:[/\[/,/%/]},se={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[re,ae,t],illegal:/\[|%/},le={match:[/operator/,/\s+/,v],className:{1:"keyword",3:"title"}},ce={begin:[/precedencegroup/,/\s+/,E],className:{1:"keyword",3:"title"},contains:[Z],keywords:[...h,...d],end:/}/};for(const n of H.variants){const e=n.contains.find((e=>"interpol"===e.label));e.keywords=C;const t=[...T,...I,...P,F,H,...X];e.contains=[...t,{begin:/\(/,end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:C,contains:[...m,oe,se,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:C,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...T]},le,ce,{beginKeywords:"import",end:/$/,contains:[...m],relevance:0},...T,...I,...P,F,H,...X,...J,Z,ne]}}e.exports=k},45745:function(e){const t="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],r=["true","false","null","undefined","NaN","Infinity"],i=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],a=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],o=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],s=["arguments","this","super","console","window","document","localStorage","module","global"],l=[].concat(o,i,a);function c(e){const c=e.regex,u=(e,{after:t})=>{const n="</"+e[0].slice(1),r=e.input.indexOf(n,t);return-1!==r},d=t,h={begin:"<>",end:"</>"},p=/<[A-Za-z0-9\\._:-]+\s*\/>/,f={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,r=e.input[n];if("<"===r||","===r)return void t.ignoreMatch();let i;">"===r&&(u(e,{after:n})||t.ignoreMatch());const a=e.input.substring(n);(i=a.match(/^\s+extends\s+/))&&0===i.index&&t.ignoreMatch()}},m={$pattern:t,keyword:n,literal:r,built_in:l,"variable.language":s},g="[0-9](_?[0-9])*",v=`\\.(${g})`,b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",y={className:"number",variants:[{begin:`(\\b(${b})((${v})|\\.)?|(${v}))[eE][+-]?(${g})\\b`},{begin:`\\b(${b})\\b((${v})\\b|\\.)?|(${v})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},w={className:"subst",begin:"\\$\\{",end:"\\}",keywords:m,contains:[]},E={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,w],subLanguage:"xml"}},_={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,w],subLanguage:"css"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,w]},k=e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:d+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),x={className:"comment",variants:[k,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},A=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,_,S,y];w.contains=A.concat({begin:/\{/,end:/\}/,keywords:m,contains:["self"].concat(A)});const N=[].concat(x,w.contains),C=N.concat([{begin:/\(/,end:/\)/,keywords:m,contains:["self"].concat(N)}]),T={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:m,contains:C},R={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,c.concat(d,"(",c.concat(/\./,d),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,d],scope:{1:"keyword",3:"title.class"}}]},O={relevance:0,match:c.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...i,...a]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},L={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[T],illegal:/%/},D={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function P(e){return c.concat("(?!",e.join("|"),")")}const M={match:c.concat(/\b/,P([...o,"super"]),d,c.lookahead(/\(/)),className:"title.function",relevance:0},B={begin:c.concat(/\./,c.lookahead(c.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},F={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},T]},$="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",U={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,c.lookahead($)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[T]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:m,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:O},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,_,S,x,y,O,{className:"attr",begin:d+c.lookahead(":"),relevance:0},U,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:$,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:m,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:h.begin,end:h.end},{match:p},{begin:f.begin,"on:begin":f.isTrulyOpeningTag,end:f.end}],subLanguage:"xml",contains:[{begin:f.begin,end:f.end,skip:!0,contains:["self"]}]}]},L,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[T,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},B,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[T]},M,D,R,F,{match:/\$[(.]/}]}}function u(e){const i=c(e),a=t,o=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],u={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[i.exports.CLASS_REFERENCE]},d={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:o},contains:[i.exports.CLASS_REFERENCE]},h={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},p=["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"],f={$pattern:t,keyword:n.concat(p),literal:r,built_in:l.concat(o),"variable.language":s},m={className:"meta",begin:"@"+a},g=(e,t,n)=>{const r=e.contains.findIndex((e=>e.label===t));if(-1===r)throw new Error("can not find mode to replace");e.contains.splice(r,1,n)};Object.assign(i.keywords,f),i.exports.PARAMS_CONTAINS.push(m),i.contains=i.contains.concat([m,u,d]),g(i,"shebang",e.SHEBANG()),g(i,"use_strict",h);const v=i.contains.find((e=>"func.def"===e.label));return v.relevance=0,Object.assign(i,{name:"TypeScript",aliases:["ts","tsx"]}),i}e.exports=u},21869:function(e){function t(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(a,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,l,s,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[a,o,l,s]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:c}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}e.exports=t},98005:function(e){function t(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},a={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},o=e.inherit(a,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),s="[0-9]{4}(-[0-9][0-9]){0,2}",l="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",c="(\\.[0-9]*)?",u="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",d={className:"number",begin:"\\b"+s+l+c+u+"\\b"},h={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},p={begin:/\{/,end:/\}/,contains:[h],illegal:"\\n",relevance:0},f={begin:"\\[",end:"\\]",contains:[h],illegal:"\\n",relevance:0},m=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},d,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},p,f,a],g=[...m];return g.pop(),g.push(o),h.contains=g,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:m}}e.exports=t},6471:function(e){"use strict";e.exports=JSON.parse('{"hasStylesheet":"true"}')},91862:function(e){"use strict";e.exports=JSON.parse('{"hasStylesheet":"false"}')},51507:function(e){"use strict";e.exports=JSON.parse('{"hasStylesheet":"false"}')},48401:function(e){"use strict";e.exports=JSON.parse('{"hasStylesheet":"false"}')},37259:function(e){"use strict";e.exports=JSON.parse('{"hasStylesheet":"true"}')},8330:function(e){"use strict";e.exports=JSON.parse('{"name":"harvester","description":"Rancher UI Extension for Harvester","version":"1.5.0-dev","private":false,"rancher":{"annotations":{"catalog.cattle.io/display-name":"Harvester","catalog.cattle.io/kube-version":">= 1.16.0-0","catalog.cattle.io/rancher-version":">= 2.10.1-0","catalog.cattle.io/ui-extensions-version":">= 3.0.0 < 4.0.0"}},"icon":"https://raw.githubusercontent.com/harvester/harvester-ui-extension/main/pkg/harvester/icon.svg","scripts":{"dev":"./node_modules/.bin/nuxt dev","nuxt":"./node_modules/.bin/nuxt"},"engines":{"node":">=20.0.0"},"devDependencies":{"@vue/cli-plugin-babel":"~5.0.0","@vue/cli-service":"~5.0.0","@vue/cli-plugin-typescript":"~5.0.0"},"browserslist":["> 1%","last 2 versions","not dead"]}')}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={id:e,loaded:!1,exports:{}};return r[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=r,function(){a.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};a.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"===typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"===typeof n.then)return n}var i=Object.create(null);a.r(i);var o={};e=e||[null,t({}),t([]),t(t)];for(var s=2&r&&n;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((function(e){o[e]=function(){return n[e]}}));return o["default"]=function(){return n},a.d(i,o),i}}(),function(){a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce((function(t,n){return a.f[n](e,t),t}),[]))}}(),function(){a.u=function(e){return"harvester-1.5.0-dev.umd.min."+({332:"detail",715:"list",739:"edit",829:"csv",902:"formatters",907:"dialog",935:"xterm",973:"promptRemove"}[e]||e)+".js"}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="harvester-1.5.0-dev:";a.l=function(n,r,i,o){if(e[n])e[n].push(r);else{var s,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var d=c[u];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==t+i){s=d;break}}s||(l=!0,s=document.createElement("script"),s.charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.setAttribute("data-webpack",t+i),s.src=n),e[n]=[r];var h=function(t,r){s.onerror=s.onload=null,clearTimeout(p);var i=e[n];if(delete e[n],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((function(e){return e(r)})),t)return t(r)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),l&&document.head.appendChild(s)}}}(),function(){a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){a.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e}}(),function(){a.p=""}(),function(){a.b=document.baseURI||self.location.href;var e={988:0};a.f.j=function(t,n){var r=a.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var i=new Promise((function(n,i){r=e[t]=[n,i]}));n.push(r[2]=i);var o=a.p+a.u(t),s=new Error,l=function(n){if(a.o(e,t)&&(r=e[t],0!==r&&(e[t]=void 0),r)){var i=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+i+": "+o+")",s.name="ChunkLoadError",s.type=i,s.request=o,r[1](s)}};a.l(o,l,"chunk-"+t,t)}};var t=function(t,n){var r,i,o=n[0],s=n[1],l=n[2],c=0;if(o.some((function(t){return 0!==e[t]}))){for(r in s)a.o(s,r)&&(a.m[r]=s[r]);if(l)l(a)}for(t&&t(n);c<o.length;c++)i=o[c],a.o(e,i)&&e[i]&&e[i][0](),e[i]=0},n=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var o={};return function(){"use strict";if(a.r(o),a.d(o,{default:function(){return Mk}}),"undefined"!==typeof window){var e=window.document.currentScript,t=e&&e.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);t&&(a.p=t[1])}function n(e){e.register("detail","harvesterhci.io.host",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,48604)))),e.register("detail","harvesterhci.io.management.cluster",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,39562)))),e.register("detail","harvesterhci.io.schedulevmbackup",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,1948)))),e.register("detail","harvesterhci.io.secret",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,84735)))),e.register("detail","harvesterhci.io.virtualmachinebackup",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,19509)))),e.register("detail","harvesterhci.io.virtualmachineimage",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,99144)))),e.register("detail","harvesterhci.io.vmsnapshot",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,97072)))),e.register("detail","kubevirt.io.virtualmachine",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,59544)))),e.register("detail","loadbalancer.harvesterhci.io.ippool",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,67973)))),e.register("detail","loadbalancer.harvesterhci.io.loadbalancer",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,55224)))),e.register("detail","network.harvesterhci.io.vlanconfig",(()=>Promise.all([a.e(160),a.e(514),a.e(207),a.e(431),a.e(850),a.e(545),a.e(934),a.e(332)]).then(a.bind(a,27626)))),e.register("edit","harvesterhci.io.addon",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,81135)))),e.register("edit","harvesterhci.io.cloudtemplate",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,85019)))),e.register("edit","harvesterhci.io.host",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,83385)))),e.register("edit","harvesterhci.io.keypair",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,28355)))),e.register("edit","harvesterhci.io.logging.clusterflow",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,70675)))),e.register("edit","harvesterhci.io.logging.clusteroutput",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,17733)))),e.register("edit","harvesterhci.io.logging.flow",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,65647)))),e.register("edit","harvesterhci.io.logging.output",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,955)))),e.register("edit","harvesterhci.io.monitoring.alertmanagerconfig",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,20906)))),e.register("edit","harvesterhci.io.networkattachmentdefinition",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,95516)))),e.register("edit","harvesterhci.io.schedulevmbackup",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,18796)))),e.register("edit","harvesterhci.io.secret",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,41398)))),e.register("edit","harvesterhci.io.setting",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,56726)))),e.register("edit","harvesterhci.io.storage",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,39808)))),e.register("edit","harvesterhci.io.virtualmachinebackup",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,57717)))),e.register("edit","harvesterhci.io.virtualmachineimage",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,17361)))),e.register("edit","harvesterhci.io.virtualmachinetemplateversion",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,18172)))),e.register("edit","harvesterhci.io.vmsnapshot",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,68747)))),e.register("edit","harvesterhci.io.volume",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,49293)))),e.register("edit","harvesterhci.io.volumesnapshot",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,69305)))),e.register("edit","kubevirt.io.virtualmachine",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,89740)))),e.register("edit","loadbalancer.harvesterhci.io.ippool",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,59405)))),e.register("edit","loadbalancer.harvesterhci.io.loadbalancer",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,49464)))),e.register("edit","management.cattle.io.project",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,38482)))),e.register("edit","network.harvesterhci.io.clusternetwork",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,87544)))),e.register("edit","network.harvesterhci.io.vlanconfig",(()=>Promise.all([a.e(160),a.e(514),a.e(198),a.e(431),a.e(850),a.e(395),a.e(739)]).then(a.bind(a,1307)))),e.register("list","devices.harvesterhci.io.pcidevice",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,11590)))),e.register("list","devices.harvesterhci.io.sriovgpudevice",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,40190)))),e.register("list","devices.harvesterhci.io.sriovnetworkdevice",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,88426)))),e.register("list","devices.harvesterhci.io.usbdevice",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,92217)))),e.register("list","devices.harvesterhci.io.vgpudevice",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,53774)))),e.register("list","harvesterhci.io.addon",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,33699)))),e.register("list","harvesterhci.io.cloudtemplate",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,34317)))),e.register("list","harvesterhci.io.dashboard",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,36270)))),e.register("list","harvesterhci.io.host",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,97341)))),e.register("list","harvesterhci.io.logging.clusterflow",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,78646)))),e.register("list","harvesterhci.io.logging.clusteroutput",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,56497)))),e.register("list","harvesterhci.io.logging.flow",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,81342)))),e.register("list","harvesterhci.io.logging.output",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,65391)))),e.register("list","harvesterhci.io.monitoring.alertmanagerconfig",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,49610)))),e.register("list","harvesterhci.io.networkattachmentdefinition",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,9470)))),e.register("list","harvesterhci.io.schedulevmbackup",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,42148)))),e.register("list","harvesterhci.io.secret",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,60633)))),e.register("list","harvesterhci.io.setting",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,36441)))),e.register("list","harvesterhci.io.storage",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,51086)))),e.register("list","harvesterhci.io.virtualmachinebackup",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,69164)))),e.register("list","harvesterhci.io.virtualmachineimage",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,95115)))),e.register("list","harvesterhci.io.virtualmachinetemplateversion",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,81959)))),e.register("list","harvesterhci.io.vmsnapshot",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,61117)))),e.register("list","harvesterhci.io.volume",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,95895)))),e.register("list","harvesterhci.io.volumesnapshot",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,32776)))),e.register("list","kubevirt.io.virtualmachine",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,29809)))),e.register("list","network.harvesterhci.io.clusternetwork",(()=>Promise.all([a.e(207),a.e(643),a.e(545),a.e(395),a.e(715)]).then(a.bind(a,18144)))),e.register("models","clusterroletemplatebinding",(()=>a(83727))),e.register("models","devices.harvesterhci.io.pcidevice",(()=>a(66529))),e.register("models","devices.harvesterhci.io.sriovgpudevice",(()=>a(13520))),e.register("models","devices.harvesterhci.io.sriovnetworkdevice",(()=>a(75128))),e.register("models","devices.harvesterhci.io.usbdevice",(()=>a(95311))),e.register("models","devices.harvesterhci.io.vgpudevice",(()=>a(46505))),e.register("models","harvester/configmap",(()=>a(24481))),e.register("models","harvester/k8s.cni.cncf.io.networkattachmentdefinition",(()=>a(4987))),e.register("models","harvester/logging.banzaicloud.io.clusterflow",(()=>a(50826))),e.register("models","harvester/logging.banzaicloud.io.clusteroutput",(()=>a(49039))),e.register("models","harvester/logging.banzaicloud.io.flow",(()=>a(40322))),e.register("models","harvester/logging.banzaicloud.io.output",(()=>a(15895))),e.register("models","harvester/management.cattle.io.setting",(()=>a(65073))),e.register("models","harvester/monitoring.coreos.com.alertmanagerconfig",(()=>a(53942))),e.register("models","harvester/namespace",(()=>a(62878))),e.register("models","harvester/node",(()=>a(55285))),e.register("models","harvester/persistentvolumeclaim",(()=>a(15908))),e.register("models","harvester/pod",(()=>a(14426))),e.register("models","harvester/schema",(()=>a(60698))),e.register("models","harvester/secret",(()=>a(36577))),e.register("models","harvester/snapshot.storage.k8s.io.volumesnapshot",(()=>a(87214))),e.register("models","harvester/storage.k8s.io.storageclass",(()=>a(82877))),e.register("models","harvester",(()=>a(24222))),e.register("models","harvesterhci.io.addon",(()=>a(52528))),e.register("models","harvesterhci.io.blockdevice",(()=>a(46933))),e.register("models","harvesterhci.io.keypair",(()=>a(72193))),e.register("models","harvesterhci.io.schedulevmbackup",(()=>a(26422))),e.register("models","harvesterhci.io.setting",(()=>a(96214))),e.register("models","harvesterhci.io.supportbundle",(()=>a(25661))),e.register("models","harvesterhci.io.upgrade",(()=>a(39334))),e.register("models","harvesterhci.io.upgradelog",(()=>a(25418))),e.register("models","harvesterhci.io.virtualmachinebackup",(()=>a(64778))),e.register("models","harvesterhci.io.virtualmachineimage",(()=>a(38287))),e.register("models","harvesterhci.io.virtualmachinerestore",(()=>a(82680))),e.register("models","harvesterhci.io.virtualmachinetemplate",(()=>a(61746))),e.register("models","harvesterhci.io.virtualmachinetemplateversion",(()=>a(96608))),e.register("models","k8s.cni.cncf.io.networkattachmentdefinition",(()=>a(43842))),e.register("models","kubevirt.io.virtualmachine",(()=>a(50784))),e.register("models","kubevirt.io.virtualmachineinstance",(()=>a(79095))),e.register("models","loadbalancer.harvesterhci.io.ippool",(()=>a(68917))),e.register("models","loadbalancer.harvesterhci.io.loadbalancer",(()=>a(61772))),e.register("models","longhorn.io.node",(()=>a(28433))),e.register("models","metal.harvesterhci.io.inventory",(()=>a(11971))),e.register("models","network.harvesterhci.io.clusternetwork",(()=>a(85696))),e.register("models","network.harvesterhci.io.nodenetwork",(()=>a(88272))),e.register("models","network.harvesterhci.io.vlanconfig",(()=>a(70443))),e.register("models","network.harvesterhci.io.vlanstatus",(()=>a(61715))),e.register("promptRemove","kubevirt.io.virtualmachine",(()=>a.e(973).then(a.bind(a,29799)))),e.register("l10n","en-us",(()=>a.e(37).then(a.t.bind(a,49037,23)))),e.register("dialog","CloneVmDialog",(()=>a.e(907).then(a.bind(a,4642)))),e.register("dialog","ConfirmExecutionDialog",(()=>a.e(907).then(a.bind(a,82819)))),e.register("dialog","ConfirmRelatedToRemoveDialog",(()=>a.e(907).then(a.bind(a,16996)))),e.register("dialog","DeepCloneVmDialog",(()=>a.e(907).then(a.bind(a,97183)))),e.register("dialog","EnablePciPassthrough",(()=>a.e(907).then(a.bind(a,90059)))),e.register("dialog","EnableSriovDevice",(()=>a.e(907).then(a.bind(a,67038)))),e.register("dialog","EnableUSBPassthrough",(()=>a.e(907).then(a.bind(a,29905)))),e.register("dialog","EnableVGpuDevice",(()=>a.e(907).then(a.bind(a,71524)))),e.register("dialog","HarvesterAddHotplugModal",(()=>a.e(907).then(a.bind(a,2790)))),e.register("dialog","HarvesterBackupModal",(()=>a.e(907).then(a.bind(a,51094)))),e.register("dialog","HarvesterCloneTemplate",(()=>a.e(907).then(a.bind(a,55441)))),e.register("dialog","HarvesterEjectCDROMDialog",(()=>a.e(907).then(a.bind(a,26717)))),e.register("dialog","HarvesterExportImageDialog",(()=>a.e(907).then(a.bind(a,6285)))),e.register("dialog","HarvesterMaintenanceDialog",(()=>a.e(907).then(a.bind(a,24384)))),e.register("dialog","HarvesterMigrationDialog",(()=>a.e(907).then(a.bind(a,21569)))),e.register("dialog","HarvesterQuotaDialog",(()=>a.e(907).then(a.bind(a,59248)))),e.register("dialog","HarvesterRestoreDialog",(()=>a.e(907).then(a.bind(a,58402)))),e.register("dialog","HarvesterSupportBundle",(()=>a.e(907).then(a.bind(a,86328)))),e.register("dialog","HarvesterUnplugVolume",(()=>a.e(907).then(a.bind(a,94968)))),e.register("dialog","HarvesterVMSnapshotDialog",(()=>a.e(907).then(a.bind(a,66690)))),e.register("dialog","HarvesterVlanConfigMigrateDialog",(()=>a.e(907).then(a.bind(a,32082)))),e.register("dialog","MessageBox",(()=>a.e(907).then(a.bind(a,89257)))),e.register("dialog","RestartVMDialog",(()=>a.e(907).then(a.bind(a,80296)))),e.register("dialog","RestoreSnapshotDialog",(()=>a.e(907).then(a.bind(a,63457)))),e.register("dialog","SnapshotDialog",(()=>a.e(907).then(a.bind(a,81825)))),e.register("dialog","VolumeCloneDialog",(()=>a.e(907).then(a.bind(a,4767)))),e.register("formatters","AttachVMWithName",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,59989)))),e.register("formatters","BackupCreatedFrom",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,22234)))),e.register("formatters","CloudInitType",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,32012)))),e.register("formatters","HarvesterBackupProgressBar",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,13396)))),e.register("formatters","HarvesterBackupTargetValidation",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,26398)))),e.register("formatters","HarvesterCPUPinning",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,46e3)))),e.register("formatters","HarvesterCPUUsed",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,14290)))),e.register("formatters","HarvesterCronExpression",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,79211)))),e.register("formatters","HarvesterDiskState",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,8579)))),e.register("formatters","HarvesterHost",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,18290)))),e.register("formatters","HarvesterIpAddress",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,24423)))),e.register("formatters","HarvesterListener",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,52279)))),e.register("formatters","HarvesterMemoryUsed",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,44599)))),e.register("formatters","HarvesterMigrationState",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,69760)))),e.register("formatters","HarvesterStorageUsed",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,91341)))),e.register("formatters","HarvesterVFAddress",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,93922)))),e.register("formatters","HarvesterVFsNum",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,22011)))),e.register("formatters","HarvesterVGpuDevices",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,66810)))),e.register("formatters","HarvesterVmState",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,98993)))),e.register("formatters","HarvesterVolumeState",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,5538)))),e.register("formatters","NetworkRouteConnectivity",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,47385)))),e.register("formatters","RelatedVolumeSnapshotCounts",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,40179)))),e.register("formatters","SnapshotTargetVolume",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,67359)))),e.register("formatters","StateWithPopover",(()=>Promise.all([a.e(160),a.e(623),a.e(431),a.e(934),a.e(902)]).then(a.bind(a,12521))))}var r=a(20652),i=a(9274);function s(e,t,n,r,a,o){return(0,i.openBlock)(),(0,i.createElementBlock)("div",null," This is harvester Dashboard. ")}var l=a(32766),c={beforeCreate(){this.$router.replace({name:`${r.KR}-c-cluster-resource`,params:{...this.$router.currentRoute.params,product:r.KR,resource:l.rk.DASHBOARD}})}},u=a(47433);const d=(0,u.A)(c,[["render",s]]);var h=d;const p={class:"content mt-20"},f={class:"promo"},m={key:0,class:"box mb-20 box-primary"},g={class:"pb-10"},v={class:"pb-10"},b={key:1,class:"row"},y={class:"col span-6 box box-primary"},w=["href"],E={class:"warning"},_={class:"col span-6 box box-primary"},S=["href"],k={class:"warning"},x={class:"community"},A={class:"external"},N={href:"https://www.suse.com/suse-harvester/support-matrix/all-supported-versions",target:"_blank",rel:"noopener noreferrer nofollow"},C={href:"https://www.suse.com/products/harvester/",target:"_blank",rel:"noopener noreferrer nofollow"};function T(e,t,n,r,a,o){const s=(0,i.resolveComponent)("BannerGraphic"),l=(0,i.resolveComponent)("t"),c=(0,i.resolveComponent)("CommunityLinks"),u=(0,i.resolveComponent)("IndentedPanel"),d=(0,i.resolveComponent)("HarvesterSupportBundle");return(0,i.openBlock)(),(0,i.createElementBlock)("div",null,[(0,i.createVNode)(s,{title:e.t(o.title,{},!0)},null,8,["title"]),(0,i.createVNode)(u,null,{default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("div",p,[(0,i.createElementVNode)("div",f,[o.showSupportBundle?((0,i.openBlock)(),(0,i.createElementBlock)("div",m,[(0,i.createElementVNode)("h2",null,(0,i.toDisplayString)(e.t("harvester.modal.bundle.title")),1),(0,i.createElementVNode)("div",null,[(0,i.createElementVNode)("p",g,(0,i.toDisplayString)(e.t("harvester.modal.bundle.titleDescription")),1),(0,i.createElementVNode)("button",{class:"btn role-secondary btn-sm",type:"button",onClick:t[0]||(t[0]=(...e)=>o.open&&o.open(...e))},(0,i.toDisplayString)(e.t("harvester.modal.bundle.title")),1)])])):(0,i.createCommentVNode)("",!0),(0,i.createElementVNode)("div",{class:(0,i.normalizeClass)(["box box-primary",{"mb-20":o.dev}])},[(0,i.createElementVNode)("h2",null,(0,i.toDisplayString)(e.t("harvester.support.kubeconfig.title")),1),(0,i.createElementVNode)("div",null,[(0,i.createElementVNode)("p",v,(0,i.toDisplayString)(e.t("harvester.support.kubeconfig.titleDescription")),1),(0,i.createElementVNode)("button",{class:"btn role-secondary btn-sm",type:"button",onClick:t[1]||(t[1]=t=>e.currentCluster.downloadKubeConfig())},(0,i.toDisplayString)(e.t("harvester.support.kubeconfig.title")),1)])],2),o.dev?((0,i.openBlock)(),(0,i.createElementBlock)("div",b,[(0,i.createElementVNode)("div",y,[(0,i.createElementVNode)("h2",null,[(0,i.createElementVNode)("a",{rel:"nofollow noopener noreferrer",target:"_blank",href:o.rancherLink},[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("harvester.support.internal.rancher.title"))+" ",1),t[2]||(t[2]=(0,i.createElementVNode)("i",{class:"icon icon-external-link"},null,-1))],8,w)]),(0,i.createElementVNode)("div",null,[(0,i.createElementVNode)("p",E,[(0,i.createVNode)(l,{k:"harvester.support.internal.rancher.titleDescription",raw:!0,url:o.rancherIntegrationLink},null,8,["url"])])])]),(0,i.createElementVNode)("div",_,[(0,i.createElementVNode)("h2",null,[(0,i.createElementVNode)("a",{rel:"nofollow noopener noreferrer",target:"_blank",href:o.longhornLink},[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("harvester.support.internal.longhorn.title"))+" ",1),t[3]||(t[3]=(0,i.createElementVNode)("i",{class:"icon icon-external-link"},null,-1))],8,S)]),(0,i.createElementVNode)("div",null,[(0,i.createElementVNode)("p",k,[(0,i.createVNode)(l,{k:"harvester.support.internal.longhorn.titleDescription",raw:!0})])])])])):(0,i.createCommentVNode)("",!0)]),(0,i.createElementVNode)("div",x,[(0,i.createVNode)(c,{"link-options":a.options},null,8,["link-options"])]),(0,i.createElementVNode)("div",A,[(0,i.createElementVNode)("a",N,[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("harvester.support.community.learnMore"))+" ",1),t[4]||(t[4]=(0,i.createElementVNode)("i",{class:"icon icon-external-link"},null,-1))]),t[6]||(t[6]=(0,i.createTextVNode)(" or ")),(0,i.createElementVNode)("a",C,[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("harvester.support.community.pricing"))+" ",1),t[5]||(t[5]=(0,i.createElementVNode)("i",{class:"icon icon-external-link"},null,-1))])])])])),_:1}),o.showSupportBundle?((0,i.openBlock)(),(0,i.createBlock)(d,{key:0})):(0,i.createCommentVNode)("",!0)])}var R=a(65359),O=a(91462);const I={class:"graphic"},L={key:0,"data-testid":"banner-title-key",class:"title"},D={key:1,"data-testid":"banner-title",class:"title"};function P(e,t,n,r,a,o){const s=(0,i.resolveComponent)("BrandImage"),l=(0,i.resolveComponent)("t"),c=(0,i.resolveDirective)("clean-html");return e.shown?((0,i.openBlock)(),(0,i.createElementBlock)("div",{key:0,class:(0,i.normalizeClass)(["banner-graphic",{small:n.small}])},[(0,i.createElementVNode)("div",I,[(0,i.createVNode)(s,{class:"banner","data-testid":"banner-brand__img","file-name":"banner.svg",draggable:!1})]),n.titleKey?((0,i.openBlock)(),(0,i.createElementBlock)("div",L,[(0,i.createVNode)(l,{k:n.titleKey},null,8,["k"])])):n.title?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("h1",D,null,512)),[[c,n.title]]):(0,i.createCommentVNode)("",!0)],2)):(0,i.createCommentVNode)("",!0)}var M=a(55277);const B=["src"];function F(e,t,n,r,a,o){return(0,i.openBlock)(),(0,i.createElementBlock)("img",(0,i.mergeProps)(e.$attrs,{src:o.pathToBrandedImage}),null,16,B)}var $=a(35664),U=a(9262),j={props:{fileName:{type:String,required:!0},dark:{type:Boolean,default:!1},supportCustomLogo:{type:Boolean,default:!1}},data(){const e=this.$store.getters["management/all"]($.Mc.SETTING),t=e?.filter((e=>e.id===U.HG.LOGIN_BACKGROUND_LIGHT))?.[0]?.value,n=e?.filter((e=>e.id===U.HG.LOGIN_BACKGROUND_DARK))?.[0]?.value;return{managementSettings:e,uiLoginBackgroundLight:t,uiLoginBackgroundDark:n}},computed:{...(0,R.L8)({theme:"prefs/theme"}),brand(){const e=this.managementSettings.filter((e=>e.id===U.HG.BRAND))[0]||{};return e.value},uiLogoLight(){const e=this.managementSettings.filter((e=>e.id===U.HG.LOGO_LIGHT))[0]||{};return e.value},uiLogoDark(){const e=this.managementSettings.filter((e=>e.id===U.HG.LOGO_DARK))[0]||{};return e.value},uiBannerLight(){const e=this.managementSettings.filter((e=>e.id===U.HG.BANNER_LIGHT))[0]||{};return e.value},uiBannerDark(){const e=this.managementSettings.filter((e=>e.id===U.HG.BANNER_DARK))[0]||{};return e.value},defaultPathToBrandedImage(){const e="dark"===this.theme?"dark/":"";try{return a(87900)(`./${e}${this.fileName}`)}catch{return a(74752)(`./${this.fileName}`)}},pathToBrandedImage(){if("rancher-logo.svg"===this.fileName||this.supportCustomLogo){if("dark"===this.theme&&this.uiLogoDark)return this.uiLogoDark;if(this.uiLogoLight)return this.uiLogoLight}if("banner.svg"===this.fileName){if("dark"===this.theme&&this.uiBannerDark)return this.uiBannerDark;if(this.uiBannerLight)return this.uiBannerLight}if("login-landscape.svg"===this.fileName){if("dark"===this.theme&&this.uiLoginBackgroundDark)return this.uiLoginBackgroundDark;if(this.uiLoginBackgroundLight)return this.uiLoginBackgroundLight}if(this.brand){if("dark"===this.theme||this.dark)try{return a(4378)(`./${this.brand}/dark/${this.fileName}`)}catch{}try{return a(96817)(`./${this.brand}/${this.fileName}`)}catch{}return this.defaultPathToBrandedImage}return this.defaultPathToBrandedImage}}};const V=(0,u.A)(j,[["render",F]]);var K=V,H={components:{BrandImage:K},mixins:[M.A],props:{title:{type:String,default:null},titleKey:{type:String,default:null},small:{type:Boolean,default:!1}}};a(82431);const G=(0,u.A)(H,[["render",P]]);var z=G;const q={class:"indented-panel"};function X(e,t,n,r,a,o){return(0,i.openBlock)(),(0,i.createElementBlock)("div",q,[(0,i.renderSlot)(e.$slots,"default")])}var W={};a(72674);const Y=(0,u.A)(W,[["render",X]]);var Q=Y;const J={key:0},Z=["href","aria-label"],ee={key:0,class:"support-link"},te=["aria-label"],ne={class:"wechat-modal"},re=["aria-label"];function ie(e,t,n,r,a,o){const s=(0,i.resolveComponent)("router-link"),l=(0,i.resolveComponent)("SimpleBox"),c=(0,i.resolveComponent)("app-modal");return o.hasOptions?((0,i.openBlock)(),(0,i.createElementBlock)("div",J,[(0,i.createVNode)(l,{pref:e.pref,"pref-key":e.prefKey},{title:(0,i.withCtx)((()=>[(0,i.createElementVNode)("h2",null,(0,i.toDisplayString)(e.t("customLinks.displayTitle")),1)])),default:(0,i.withCtx)((()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(o.options,((e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)("div",{key:t,class:"support-link"},[e.value.startsWith("/")?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0,to:e.value,role:"link","aria-label":e.label},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.label),1)])),_:2},1032,["to","aria-label"])):((0,i.openBlock)(),(0,i.createElementBlock)("a",{key:1,href:e.value,rel:"noopener noreferrer nofollow",target:"_blank",role:"link","aria-label":e.label},(0,i.toDisplayString)(e.label),9,Z))])))),128)),(0,i.renderSlot)(e.$slots,"default",{},void 0,!0),e.selectedLocaleLabel===e.t("locale.zh-hans")?((0,i.openBlock)(),(0,i.createElementBlock)("div",ee,[(0,i.createElementVNode)("a",{class:"link",tabindex:"0","aria-label":e.t("footer.wechat.title"),role:"link",onClick:t[0]||(t[0]=(...e)=>o.show&&o.show(...e)),onKeyup:t[1]||(t[1]=(0,i.withKeys)(((...e)=>o.show&&o.show(...e)),["enter"]))},(0,i.toDisplayString)(e.t("footer.wechat.title")),41,te)])):(0,i.createCommentVNode)("",!0)])),_:3},8,["pref","pref-key"]),a.showWeChatModal?((0,i.openBlock)(),(0,i.createBlock)(c,{key:0,name:"wechat-modal",height:"auto",width:640,onClose:o.close},{default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("div",ne,[(0,i.createElementVNode)("h1",null,(0,i.toDisplayString)(e.t("footer.wechat.modalText")),1),(0,i.createElementVNode)("h1",null,(0,i.toDisplayString)(e.t("footer.wechat.modalText2")),1),t[5]||(t[5]=(0,i.createElementVNode)("div",{class:"qr-img"},null,-1)),(0,i.createElementVNode)("div",null,[(0,i.createElementVNode)("button",{class:"btn role-primary",tabindex:"0","aria-label":e.t("generic.close"),role:"button",onClick:t[2]||(t[2]=(...e)=>o.close&&o.close(...e)),onKeyup:[t[3]||(t[3]=(0,i.withKeys)(((...e)=>o.close&&o.close(...e)),["enter"])),t[4]||(t[4]=(0,i.withKeys)(((...e)=>o.close&&o.close(...e)),["space"]))]},(0,i.toDisplayString)(e.t("generic.close")),41,re)])])])),_:1},8,["onClose"])):(0,i.createCommentVNode)("",!0)])):(0,i.createCommentVNode)("",!0)}var ae=a(87211),oe=a(162),se=a(83297),le=a(49845),ce=a(88339),ue=a(4364);const de=[{key:"docs",value:le.M0,enabled:!0},{key:"forums",value:"https://forums.rancher.com/",enabled:!0},{key:"slack",value:"https://slack.rancher.io/",enabled:!0},{key:"issues",value:"https://github.com/rancher/dashboard/issues/new/choose",enabled:!0},{key:"getStarted",value:`${le.M0}/getting-started/overview`,enabled:!0}],he="suseCollective",pe={key:"appCo",value:"https://apps.rancher.io/",enabled:!0},fe={key:"commercialSupport",value:"/support",enabled:!0,readonly:!0},me={key:"cnforums",value:"https://forums.rancher.cn/",enabled:!0},ge="v1",ve="v1.1",be="v1.2";async function ye(e,t,n,r){let i={};try{const t=await e.dispatch("management/find",{type:$.Mc.SETTING,id:U.HG.UI_CUSTOM_LINKS});t.value&&(i=JSON.parse(t.value))}catch(Hs){ue.warn("Could not parse custom link settings",Hs)}if(i?.version?.startsWith(ge)){if(i?.version!==ge&&i?.version!==ve||(i.version=be,i.defaults.includes(pe.key)||i.defaults.push(pe.key),i.defaults=i.defaults.filter((e=>e!==he))),i.defaults){const e=[...de];(0,se.f$)()&&e.push(pe),e.forEach((e=>{const t=i.defaults.find((t=>t===e.key));e.enabled=!!t})),i.defaults=e}return we(i,t,n,r,e)}const a={version:ge,defaults:[...de],custom:[]};(0,se.f$)()&&a.defaults.push(pe);try{const{uiIssuesSetting:t,uiCommunitySetting:n}=await(0,ce.kR)({uiIssuesSetting:e.dispatch("management/find",{type:$.Mc.SETTING,id:U.HG.ISSUES}),uiCommunitySetting:e.dispatch("management/find",{type:$.Mc.SETTING,id:U.HG.COMMUNITY_LINKS})});if("false"===n?.value&&a.defaults.forEach((e=>e.enabled=!1)),t?.value){a.custom.push({label:r?r("customLinks.defaults.issues"):"Issues",value:t.value});const e=a.defaults?.find((e=>"issues"===e.key));e&&(e.enabled=!1,e.readOnly=!0)}}catch(Hs){ue.warn("Could not parse legacy link settings",Hs)}return we(a,t,n,r,e)}function we(e,t,n,r,i){if(!t&&!n){const t=e.defaults?.find((e=>"commercialSupport"===e.key));t||e.defaults.push(fe)}const a=i.getters["i18n/selectedLocaleLabel"];a===r("locale.zh-hans")&&e.defaults.push(me),e.defaults=e.defaults.map((e=>({...e,label:r(`'customLinks.defaults.${e.key}`)})));const o=e.custom.reduce(((e,t)=>(e[t.label]=t,e)),{});return e.defaults.forEach((e=>{o[e.label]&&(e.enabled=!1,e.readonly=!0)})),e}var Ee=a(71651),_e=a.n(Ee),Se=a(68851);a(4364);let ke=[];_e().addHook("uponSanitizeAttribute",((e,t)=>{"A"===e.tagName&&"target"===t.attrName&&"_blank"===t.attrValue&&(t.forceKeepAttr=!0)})),_e().addHook("afterSanitizeAttributes",(e=>{if("A"===e.tagName&&"_blank"===e?.target){const t=["noopener","noreferrer","nofollow"],n=e.rel?.length?e.rel.split(" "):[],r=(0,Se.sb)([...t,...n]);e.setAttribute("rel",r.join(" "))}if("A"===e.tagName&&ke.length){let t=e.href;t=xe(t),t!==e.href&&(e.href=t)}}));function xe(e){for(let t=0;t<ke.length;t++){const n=ke[t](e);n&&(e=n)}return e}var Ae={name:"CommunityLinks",components:{SimpleBox:ae.A,AppModal:oe.A},props:{linkOptions:{type:Object,default:()=>({})},isSupportPage:{type:Boolean,default:!1}},mixins:[M.A],async fetch(){this.links=await ye(this.$store,this.hasSupport,this.isSupportPage,(e=>this.t(e)))},data(){return{links:{},showWeChatModal:!1}},computed:{...(0,R.L8)("i18n",["selectedLocaleLabel"]),hasOptions(){return!!Object.keys(this.options).length||!!Object.keys(this.$slots).length},hasSupport(){return(0,se.f$)()||"true"===this.$store.getters["management/byId"]($.Mc.SETTING,U.HG.SUPPORTED)?.value},options(){if(this.linkOptions&&Object.keys(this.linkOptions).length){const e=[];return Object.keys(this.linkOptions).forEach((t=>{e.push({key:t,label:this.t(t),value:this.linkOptions[t]})})),e}const e=[];return this.links.custom&&e.push(...this.links.custom),this.links.defaults&&e.push(...this.links.defaults.filter((e=>e.enabled))),e.map((e=>({...e,value:xe(e.value)})))}},methods:{show(){this.showWeChatModal=!0},close(){this.showWeChatModal=!1}}};a(85918);const Ne=(0,u.A)(Ae,[["render",ie],["__scopeId","data-v-05573032"]]);var Ce=Ne,Te=a(86328),Re=a(66242),Oe=a(3791),Ie={components:{BannerGraphic:z,IndentedPanel:Q,CommunityLinks:Ce,HarvesterSupportBundle:Te["default"]},data(){return{options:{"footer.docs":"https://docs.harvesterhci.io","footer.forums":"https://forums.rancher.com/c/harvester/","footer.slack":"https://slack.rancher.io","footer.issue":"https://github.com/harvester/harvester/issues/new/choose"}}},computed:{...(0,R.L8)(["currentCluster"]),dev(){try{return this.$store.getters["prefs/get"](O.bc)}catch{return this.$store.getters["prefs/get"](O.IJ)}},title(){return"harvester.support.title"},showSupportBundle(){const e=this.$store.getters["currentProduct"].inStore;return!!this.$store.getters[`${e}/byId`]($.yx,l.rk.SUPPORT_BUNDLE)},internalPrefix(){const e=window.location.host,t=window.location.pathname.replace(this.$route.path,""),n=this.$route?.params;return{host:e,prefix:t,params:n}},rancherLink(){const{host:e,prefix:t,params:n}=this.internalPrefix;return`https://${e}${t}/c/${n.cluster}/explorer`},longhornLink(){const{host:e,params:t}=this.internalPrefix;return`https://${e}/k8s/clusters/${t.cluster}/api/v1/namespaces/longhorn-system/services/http:longhorn-frontend:80/proxy/#/dashboard`},rancherIntegrationLink(){const e=this.$store.getters["harvester-common/getServerVersion"]();return(0,Oe.nn)(Re.d.RANCHER_INTEGRATION_URL,e)}},methods:{open(){this.$store.commit("harvester-common/toggleBundleModal",!0)}}};a(41158);const Le=(0,u.A)(Ie,[["render",T],["__scopeId","data-v-74e3f663"]]);var De=Le;function Pe(e,t,n,r,a,o){const s=(0,i.resolveComponent)("Loading"),l=(0,i.resolveComponent)("SerialConsole");return e.$fetchState.pending?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0})):((0,i.openBlock)(),(0,i.createBlock)(l,{key:1,ref:"serialConsole",value:o.vmi,"onUpdate:value":t[0]||(t[0]=e=>o.vmi=e)},null,8,["value"]))}var Me=a(84409);const Be={class:"harvester-shell-container"},Fe={ref:"xterm",class:"shell-body"};function $e(e,t,n,r,a,o){const s=(0,i.resolveComponent)("resize-observer");return(0,i.openBlock)(),(0,i.createElementBlock)("div",Be,[(0,i.createElementVNode)("div",Fe,null,512),(0,i.createVNode)(s,{onNotify:o.fit},null,8,["onNotify"])])}var Ue=a(12784),je=a.n(Ue),Ve=a(4364);const Ke=new WeakMap,He=new WeakMap;function Ge(e){const t=Ke.get(e);return Ve.assert(null!=t,"'this' is expected an Event object, but got",e),t}function ze(e){null==e.passiveListener?e.event.cancelable&&(e.canceled=!0,"function"===typeof e.event.preventDefault&&e.event.preventDefault()):"undefined"!==typeof Ve&&"function"===typeof Ve.error&&Ve.error("Unable to preventDefault inside passive event listener invocation.",e.passiveListener)}function qe(e,t){Ke.set(this,{eventTarget:e,event:t,eventPhase:2,currentTarget:e,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:t.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});const n=Object.keys(t);for(let r=0;r<n.length;++r){const e=n[r];e in this||Object.defineProperty(this,e,Xe(e))}}function Xe(e){return{get(){return Ge(this).event[e]},set(t){Ge(this).event[e]=t},configurable:!0,enumerable:!0}}function We(e){return{value(){const t=Ge(this).event;return t[e].apply(t,arguments)},configurable:!0,enumerable:!0}}function Ye(e,t){const n=Object.keys(t);if(0===n.length)return e;function r(t,n){e.call(this,t,n)}r.prototype=Object.create(e.prototype,{constructor:{value:r,configurable:!0,writable:!0}});for(let i=0;i<n.length;++i){const a=n[i];if(!(a in e.prototype)){const e=Object.getOwnPropertyDescriptor(t,a),n="function"===typeof e.value;Object.defineProperty(r.prototype,a,n?We(a):Xe(a))}}return r}function Qe(e){if(null==e||e===Object.prototype)return qe;let t=He.get(e);return null==t&&(t=Ye(Qe(Object.getPrototypeOf(e)),e),He.set(e,t)),t}function Je(e,t){const n=Qe(Object.getPrototypeOf(t));return new n(e,t)}function Ze(e){return Ge(e).immediateStopped}function et(e,t){Ge(e).eventPhase=t}function tt(e,t){Ge(e).currentTarget=t}function nt(e,t){Ge(e).passiveListener=t}qe.prototype={get type(){return Ge(this).event.type},get target(){return Ge(this).eventTarget},get currentTarget(){return Ge(this).currentTarget},composedPath(){const e=Ge(this).currentTarget;return null==e?[]:[e]},get NONE(){return 0},get CAPTURING_PHASE(){return 1},get AT_TARGET(){return 2},get BUBBLING_PHASE(){return 3},get eventPhase(){return Ge(this).eventPhase},stopPropagation(){const e=Ge(this);e.stopped=!0,"function"===typeof e.event.stopPropagation&&e.event.stopPropagation()},stopImmediatePropagation(){const e=Ge(this);e.stopped=!0,e.immediateStopped=!0,"function"===typeof e.event.stopImmediatePropagation&&e.event.stopImmediatePropagation()},get bubbles(){return Boolean(Ge(this).event.bubbles)},get cancelable(){return Boolean(Ge(this).event.cancelable)},preventDefault(){ze(Ge(this))},get defaultPrevented(){return Ge(this).canceled},get composed(){return Boolean(Ge(this).event.composed)},get timeStamp(){return Ge(this).timeStamp},get srcElement(){return Ge(this).eventTarget},get cancelBubble(){return Ge(this).stopped},set cancelBubble(e){if(!e)return;const t=Ge(this);t.stopped=!0,"boolean"===typeof t.event.cancelBubble&&(t.event.cancelBubble=!0)},get returnValue(){return!Ge(this).canceled},set returnValue(e){e||ze(Ge(this))},initEvent(){}},Object.defineProperty(qe.prototype,"constructor",{value:qe,configurable:!0,writable:!0}),"undefined"!==typeof window&&"undefined"!==typeof window.Event&&(Object.setPrototypeOf(qe.prototype,window.Event.prototype),He.set(window.Event.prototype,qe));const rt=new WeakMap,it=1,at=2,ot=3;function st(e){return null!==e&&"object"===typeof e}function lt(e){const t=rt.get(e);if(null==t)throw new TypeError("'this' is expected an EventTarget object, but got another value.");return t}function ct(e){return{get(){const t=lt(this);let n=t.get(e);while(null!=n){if(n.listenerType===ot)return n.listener;n=n.next}return null},set(t){"function"===typeof t||st(t)||(t=null);const n=lt(this);let r=null,i=n.get(e);while(null!=i)i.listenerType===ot?null!==r?r.next=i.next:null!==i.next?n.set(e,i.next):n.delete(e):r=i,i=i.next;if(null!==t){const i={listener:t,listenerType:ot,passive:!1,once:!1,next:null};null===r?n.set(e,i):r.next=i}},configurable:!0,enumerable:!0}}function ut(e,t){Object.defineProperty(e,`on${t}`,ct(t))}function dt(e){function t(){ht.call(this)}t.prototype=Object.create(ht.prototype,{constructor:{value:t,configurable:!0,writable:!0}});for(let n=0;n<e.length;++n)ut(t.prototype,e[n]);return t}function ht(){if(!(this instanceof ht)){if(1===arguments.length&&Array.isArray(arguments[0]))return dt(arguments[0]);if(arguments.length>0){const e=new Array(arguments.length);for(let t=0;t<arguments.length;++t)e[t]=arguments[t];return dt(e)}throw new TypeError("Cannot call a class as a function")}rt.set(this,new Map)}ht.prototype={addEventListener(e,t,n){if(null==t)return;if("function"!==typeof t&&!st(t))throw new TypeError("'listener' should be a function or an object.");const r=lt(this),i=st(n),a=i?Boolean(n.capture):Boolean(n),o=a?it:at,s={listener:t,listenerType:o,passive:i&&Boolean(n.passive),once:i&&Boolean(n.once),next:null};let l=r.get(e);if(void 0===l)return void r.set(e,s);let c=null;while(null!=l){if(l.listener===t&&l.listenerType===o)return;c=l,l=l.next}c.next=s},removeEventListener(e,t,n){if(null==t)return;const r=lt(this),i=st(n)?Boolean(n.capture):Boolean(n),a=i?it:at;let o=null,s=r.get(e);while(null!=s){if(s.listener===t&&s.listenerType===a)return void(null!==o?o.next=s.next:null!==s.next?r.set(e,s.next):r.delete(e));o=s,s=s.next}},dispatchEvent(e){if(null==e||"string"!==typeof e.type)throw new TypeError('"event.type" should be a string.');const t=lt(this),n=e.type;let r=t.get(n);if(null==r)return!0;const i=Je(this,e);let a=null;while(null!=r){if(r.once?null!==a?a.next=r.next:null!==r.next?t.set(n,r.next):t.delete(n):a=r,nt(i,r.passive?r.listener:null),"function"===typeof r.listener)try{r.listener.call(this,i)}catch(Go){"undefined"!==typeof Ve&&"function"===typeof Ve.error&&Ve.error(Go)}else r.listenerType!==ot&&"function"===typeof r.listener.handleEvent&&r.listener.handleEvent(i);if(Ze(i))break;r=r.next}return nt(i,null),et(i,0),tt(i,null),!i.defaultPrevented}},Object.defineProperty(ht.prototype,"constructor",{value:ht,configurable:!0,writable:!0}),"undefined"!==typeof window&&"undefined"!==typeof window.EventTarget&&Object.setPrototypeOf(ht.prototype,window.EventTarget.prototype);var pt=a(35881),ft=a(50667),mt=a(4364);function gt(e,t,n){return(t=vt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vt(e){var t=bt(e,"string");return"symbol"==typeof t?t:t+""}function bt(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}let yt=1,wt=!1,Et=!1;const _t="ws://",St="wss://",kt="disconnected",xt=(ht.addEventListener,"connecting"),At="connected",Nt="closing",Ct="reconnecting",Tt=xt,Rt=At,Ot=kt,It="message",Lt="frame_timeout",Dt="connect_error",Pt="disconnect_error",Mt="NO_WATCH",Bt="NO_SCHEMA",Ft="NO_PERMS",$t="TOO_OLD";class Ut extends ht{constructor(e,t=!0,n=null,r=null,i=null,a=!1){super(),gt(this,"url",void 0),gt(this,"autoReconnect",!0),gt(this,"frameTimeout",35e3),gt(this,"metadata",{}),gt(this,"hasBeenOpen",!1),gt(this,"hasReconnected",!1),gt(this,"protocol",null),gt(this,"maxTries",null),gt(this,"tries",0),gt(this,"idAsTimestamp",!1),gt(this,"socket",null),gt(this,"state",kt),gt(this,"framesReceived",0),gt(this,"frameTimer",void 0),gt(this,"reconnectTimer",void 0),gt(this,"disconnectCallBacks",[]),gt(this,"disconnectedAt",0),gt(this,"closingId",0),gt(this,"autoReconnectUrl",null),this.setUrl(e),this.autoReconnect=t,this.protocol=r,this.maxTries=i,this.idAsTimestamp=a,null!==n&&(this.frameTimeout=n)}setUrl(e){e.match(/wss?:\/\//)||(e=self.location.origin.replace(/^http/,"ws")+e),"https:"===self.location.protocol&&e.startsWith(_t)&&(e=St+e.substr(_t.length)),this.url=e}connect(e={}){if(this.socket)return void mt.error("Socket refusing to connect while another socket exists");this.state!==Ct&&(this.state=xt),Object.assign(this.metadata,e);const t=this.idAsTimestamp?(new Date).getTime():yt++,n=(0,ft.R_)(this.url,"sockId",t);let r;this._baseLog("connecting",{id:t,url:n.replace(/\?.*/,"")}),this.tries++,r=this.protocol?new WebSocket(n,this.protocol):new WebSocket(n),r.sockId=t,r.metadata=this.metadata,r.onmessage=this._onmessage.bind(this),r.onopen=this._opened.bind(this),r.onerror=this._error.bind(this),r.onclose=this._closed.bind(this),this.socket=r,this.state=xt,this.dispatchEvent(new CustomEvent(Tt))}send(e){return!(!this.socket||this.state!==At)&&(this.socket.send(e),!0)}disconnect(e){e&&this.disconnectCallBacks.push(e);const t=this,n=new Promise(((e,n)=>{function r(e){n(e),t.removeEventListener(Dt,r)}this.state===kt&&e(),this.addEventListener(Dt,r),this.disconnectCallBacks.push((()=>{this.removeEventListener(Dt,r),e()}))}));return this.autoReconnect=!1,this._close(),n}reconnect(e={}){Object.assign(this.metadata,e),this.state!==xt?this.socket?this._close():this.connect(e):this._log("Ignoring reconnect for socket in connecting")}getMetadata(){return this.socket?this.socket.metadata:{}}getId(){return this.socket?this.socket.sockId:0}isConnected(){return this.state===At}setAutoReconnect(e){this.autoReconnect=e}setAutoReconnectUrl(e){this.autoReconnectUrl=e}_close(){const e=this.socket;if(e){try{this._log("closing"),this.closingId=e.sockId,e.onopen=null,e.onerror=null,e.onmessage=null,e.close()}catch(Hs){this._log("exception",{e:Hs.toString()})}this.state=Nt}}_opened(){this._log("opened");const e=(new Date).getTime(),t=this.disconnectedAt;let n=0;t&&(n=e-t),this.hasBeenOpen&&(this.hasReconnected=!0),this.hasBeenOpen=!0,this.state=At,this.framesReceived=0,this.disconnectedAt=0,this.dispatchEvent(new CustomEvent(Rt,{detail:{tries:this.tries,afterMilliseconds:n}})),this.tries=0,this._resetWatchdog(),clearTimeout(this.reconnectTimer)}_onmessage(e){this._resetWatchdog(),this.tries=0,this.framesReceived++,this.dispatchEvent(new CustomEvent(It,{detail:e}))}_resetWatchdog(){clearTimeout(this.frameTimer);const e=this.frameTimeout;e&&this.state===At&&(this.frameTimer=setTimeout((()=>{this._log(`watchdog expired after${e}. Closing`),this._close(),this.dispatchEvent(new CustomEvent(Lt))}),e))}_error(){this.closingId=this.socket?this.socket.sockId:0,this._log("error")}_closed(e){const{code:t,reason:n,wasClean:r}=e;this._baseLog("closed",{id:this.closingId||this.socket?.sockId||"unknown",code:t,reason:n,clean:r}),this.closingId=0,this.socket=null,clearTimeout(this.reconnectTimer),clearTimeout(this.frameTimer);const i=this.disconnectCallBacks;while(i.length){const e=i.pop();e&&e.apply(this)}if([At,Nt].includes(this.state)&&(Et=!0),this.disconnectedAt||(this.disconnectedAt=(new Date).getTime()),wt||Et)if(this.autoReconnect){if(this.state=Ct,this.maxTries&&this.tries>1&&this.tries<=this.maxTries){const e=new CustomEvent(Dt);this.dispatchEvent(e)}if(this.maxTries&&this.tries>this.maxTries)this._log("closed. Will not reconnect (hit max attempts)"),this.state=kt,this.dispatchEvent(new CustomEvent(Pt));else{const e=()=>{this._log("closed. Attempting to reconnect");const e=Math.max(1e3,Math.min(1e3*this.tries,3e4));this.reconnectTimer=setTimeout((()=>{this.connect()}),e)};this.autoReconnectUrl?this.autoReconnectUrl().then((t=>{this.setUrl(t),e()})).catch((e=>{mt.error("Failed to fetch socket auto reconnect url",e)})):e()}}else this.state=kt;else{this.autoReconnect=!1,this.state=kt;const e=new CustomEvent(Dt,{detail:{isSafari:pt.nr}});this.dispatchEvent(e),wt=!0}this.state===kt?this.dispatchEvent(new CustomEvent(Ot)):this.state===Ct&&this.dispatchEvent(new CustomEvent(Tt))}_log(e,t){this._baseLog(e,{state:this.state,id:this.socket?.sockId||0,...t})}_baseLog(e,t){const n=[e],r=Object.entries(t||{});n.unshift("Socket "),r.length&&(n.push(" ("),r.forEach((([e,t],r)=>{0!==r&&n.push(", "),n.push(`${e}=${t}`)})),n.push(")")),mt.log(n.join(""))}}var jt=a(4364),Vt={emits:["close"],props:{value:{type:Object,required:!0}},data(){return{socket:null,terminal:null,fitAddon:null,searchAddon:null,webglAddon:null,isOpen:!1,isOpening:!1,backlog:[],firstTime:!0,queue:[]}},computed:{xtermConfig(){return{allowProposedApi:!0,cursorBlink:!0,useStyle:!0,fontSize:12}}},watch:{queue:{handler:je()((async function(e){if(0===e.length)return;const t=await Promise.all(e);(t||[]).forEach((e=>{this.terminal.write(e)})),this.queue=[]}),10),deep:!0}},beforeUnmount(){this.close()},async mounted(){await this.setupTerminal(),await this.connect()},methods:{async setupTerminal(){const e=getComputedStyle(document.querySelector("body")),t=await a.e(935).then(a.t.bind(a,62213,23)),n=await(0,ce.kR)({fit:a.e(935).then(a.t.bind(a,34462,23)),webgl:a.e(935).then(a.t.bind(a,90382,23)),weblinks:a.e(935).then(a.t.bind(a,72338,23)),search:a.e(935).then(a.t.bind(a,720,23))}),r=new t.Terminal({theme:{background:e.getPropertyValue("--terminal-bg").trim(),cursor:e.getPropertyValue("--terminal-cursor").trim(),foreground:e.getPropertyValue("--terminal-text").trim()},...this.xtermConfig});this.fitAddon=new n.fit.FitAddon,this.searchAddon=new n.search.SearchAddon;try{this.webglAddon=new n.webgl.WebGlAddon}catch(Hs){this.webglAddon=null}r.loadAddon(this.fitAddon),r.loadAddon(this.searchAddon),r.loadAddon(new n.weblinks.WebLinksAddon),r.open(this.$refs.xterm),this.webglAddon&&r.loadAddon(this.webglAddon),this.fit(),this.flush(),r.onData((e=>{const t=this.str2ab(e);this.write(t)})),this.terminal=r},str2ab(e){const t=new TextEncoder;return t.encode(e)},write(e){this.isOpen?this.socket.send(e):this.backlog.push(e)},clear(){this.terminal.clear()},getSocketUrl(){return`${this.value?.getSerialConsolePath}`},async connect(){this.socket&&(await this.socket.disconnect(),this.socket=null,this.terminal.reset());const e=this.getSocketUrl();e&&(this.socket=new Ut(e),this.socket.addEventListener(Tt,(e=>{this.isOpen=!1,this.isOpening=!0})),this.socket.addEventListener(Dt,(e=>{this.isOpen=!1,this.isOpening=!1,jt.error("Connect Error",e)})),this.socket.addEventListener(Rt,(e=>{this.isOpen=!0,this.isOpening=!1,this.show&&(this.fit(),this.flush()),this.firstTime&&(this.socket.send(this.str2ab("\n")),this.firstTime=!1)})),this.socket.addEventListener(Ot,(e=>{this.isOpen=!1,this.isOpening=!1,this.$emit("close")})),this.socket.addEventListener(It,(e=>{this.queue.push(e.detail.data.text())})),this.socket.connect(),this.terminal.focus())},flush(){const e=this.backlog.slice();this.backlog=[];for(const t of e)this.socket.send(t)},fit(e){if(!this.fitAddon)return;this.fitAddon.fit();const{rows:t,cols:n}=this.fitAddon.proposeDimensions();if(!this.isOpen)return;const r=JSON.stringify({Width:n,Height:t});this.socket.send(this.str2ab(r))},close(){this.socket&&this.socket.disconnect(),this.terminal&&this.terminal.dispose()}}};a(44166);const Kt=(0,u.A)(Vt,[["render",$e]]);var Ht=Kt,Gt={components:{SerialConsole:Ht,Loading:Me.A},async fetch(){this.rows=await this.$store.dispatch("harvester/findAll",{type:l.rk.VMI})},data(){return{uid:this.$route.params.uid}},computed:{vmi(){const e=this.$store.getters["harvester/all"](l.rk.VMI)||[],t=e.find((e=>e?.metadata?.ownerReferences?.[0]?.uid===this.uid));return t}},mounted(){window.addEventListener("beforeunload",(()=>{this.$refs.serialConsole.close()}))},head(){return{title:this.vmi?.metadata?.name}}};a(60226);const zt=(0,u.A)(Gt,[["render",Pe],["__scopeId","data-v-2efbfdaf"]]);var qt=zt;function Xt(e,t,n,r,a,o){const s=(0,i.resolveComponent)("Loading"),l=(0,i.resolveComponent)("NovncConsoleWrapper");return e.$fetchState.pending?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0})):((0,i.openBlock)(),(0,i.createBlock)(l,{key:1,ref:"console",value:o.vmi,"onUpdate:value":t[0]||(t[0]=e=>o.vmi=e),class:"novnc-wrapper"},null,8,["value"]))}const Wt={id:"app"},Yt={class:"vm-console"},Qt={class:"combination-keys"},Jt={class:"btn btn-sm bg-primary"},Zt={class:"btn btn-sm bg-primary"},en=["onClick"],tn={key:1};function nn(e,t,n,r,a,o){const s=(0,i.resolveComponent)("novnc-console-item"),l=(0,i.resolveComponent)("v-dropdown"),c=(0,i.resolveComponent)("NovncConsoleCustomKeys"),u=(0,i.resolveComponent)("NovncConsole");return(0,i.openBlock)(),(0,i.createElementBlock)("div",Wt,[(0,i.createElementVNode)("div",Yt,[(0,i.createElementVNode)("div",Qt,[(0,i.createVNode)(l,{ref:"popover",placement:"top",trigger:"click",container:!1,onAutoHide:t[0]||(t[0]=e=>a.keysRecord=[])},{popper:(0,i.withCtx)((()=>[(0,i.createVNode)(s,{items:o.keymap,path:a.keysRecord,pos:0,onUpdate:o.update,onSendKeys:o.sendKeys},null,8,["items","path","onUpdate","onSendKeys"])])),default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("button",Jt,(0,i.toDisplayString)(e.t("harvester.virtualMachine.detail.console.shortcutKeys")),1)])),_:1},512),o.hasSoftRebootAction?((0,i.openBlock)(),(0,i.createElementBlock)("button",{key:0,class:"btn btn-sm bg-primary",onClick:t[1]||(t[1]=(...e)=>o.softReboot&&o.softReboot(...e))},(0,i.toDisplayString)(e.t("harvester.action.softreboot")),1)):(0,i.createCommentVNode)("",!0),a.hideCustomKeysBar?(0,i.createCommentVNode)("",!0):((0,i.openBlock)(),(0,i.createBlock)(l,{key:1,ref:"customKeyPopover",placement:"top",trigger:"click",container:!1},{popper:(0,i.withCtx)((()=>[(0,i.createElementVNode)("div",null,[(0,i.createElementVNode)("button",{class:"btn btn-sm bg-primary",onClick:t[2]||(t[2]=(...e)=>o.showKeysModal&&o.showKeysModal(...e))},(0,i.toDisplayString)(e.t("harvester.virtualMachine.detail.console.management")),1)]),t[3]||(t[3]=(0,i.createElementVNode)("hr",null,null,-1)),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(o.preferredShortcutKeys,((e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)("div",{key:t},[(0,i.createElementVNode)("button",{class:"btn btn-sm bg-primary",onClick:t=>o.sendCustomKeys(e.value)},(0,i.toDisplayString)(e.label),9,en)])))),128))])),default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("button",Zt,(0,i.toDisplayString)(e.t("harvester.virtualMachine.detail.console.customShortcutKeys")),1)])),_:1},512)),a.renderKeysModal?((0,i.openBlock)(),(0,i.createBlock)(c,{key:2,"current-user":a.currentUser,onClose:o.hideKeysModal},null,8,["current-user","onClose"])):(0,i.createCommentVNode)("",!0)]),o.url&&!o.isDown?((0,i.openBlock)(),(0,i.createBlock)(u,{key:0,ref:"novncConsole",url:o.url},null,8,["url"])):(0,i.createCommentVNode)("",!0),o.isDown?((0,i.openBlock)(),(0,i.createElementBlock)("p",tn,(0,i.toDisplayString)(e.t("harvester.virtualMachine.detail.console.down")),1)):(0,i.createCommentVNode)("",!0)])])}var rn=a(92043),an={XK_VoidSymbol:16777215,XK_BackSpace:65288,XK_Tab:65289,XK_Linefeed:65290,XK_Clear:65291,XK_Return:65293,XK_Pause:65299,XK_Scroll_Lock:65300,XK_Sys_Req:65301,XK_Escape:65307,XK_Delete:65535,XK_Multi_key:65312,XK_Codeinput:65335,XK_SingleCandidate:65340,XK_MultipleCandidate:65341,XK_PreviousCandidate:65342,XK_Kanji:65313,XK_Muhenkan:65314,XK_Henkan_Mode:65315,XK_Henkan:65315,XK_Romaji:65316,XK_Hiragana:65317,XK_Katakana:65318,XK_Hiragana_Katakana:65319,XK_Zenkaku:65320,XK_Hankaku:65321,XK_Zenkaku_Hankaku:65322,XK_Touroku:65323,XK_Massyo:65324,XK_Kana_Lock:65325,XK_Kana_Shift:65326,XK_Eisu_Shift:65327,XK_Eisu_toggle:65328,XK_Kanji_Bangou:65335,XK_Zen_Koho:65341,XK_Mae_Koho:65342,XK_Home:65360,XK_Left:65361,XK_Up:65362,XK_Right:65363,XK_Down:65364,XK_Prior:65365,XK_Page_Up:65365,XK_Next:65366,XK_Page_Down:65366,XK_End:65367,XK_Begin:65368,XK_Select:65376,XK_Print:65377,XK_Execute:65378,XK_Insert:65379,XK_Undo:65381,XK_Redo:65382,XK_Menu:65383,XK_Find:65384,XK_Cancel:65385,XK_Help:65386,XK_Break:65387,XK_Mode_switch:65406,XK_script_switch:65406,XK_Num_Lock:65407,XK_KP_Space:65408,XK_KP_Tab:65417,XK_KP_Enter:65421,XK_KP_F1:65425,XK_KP_F2:65426,XK_KP_F3:65427,XK_KP_F4:65428,XK_KP_Home:65429,XK_KP_Left:65430,XK_KP_Up:65431,XK_KP_Right:65432,XK_KP_Down:65433,XK_KP_Prior:65434,XK_KP_Page_Up:65434,XK_KP_Next:65435,XK_KP_Page_Down:65435,XK_KP_End:65436,XK_KP_Begin:65437,XK_KP_Insert:65438,XK_KP_Delete:65439,XK_KP_Equal:65469,XK_KP_Multiply:65450,XK_KP_Add:65451,XK_KP_Separator:65452,XK_KP_Subtract:65453,XK_KP_Decimal:65454,XK_KP_Divide:65455,XK_KP_0:65456,XK_KP_1:65457,XK_KP_2:65458,XK_KP_3:65459,XK_KP_4:65460,XK_KP_5:65461,XK_KP_6:65462,XK_KP_7:65463,XK_KP_8:65464,XK_KP_9:65465,XK_F1:65470,XK_F2:65471,XK_F3:65472,XK_F4:65473,XK_F5:65474,XK_F6:65475,XK_F7:65476,XK_F8:65477,XK_F9:65478,XK_F10:65479,XK_F11:65480,XK_L1:65480,XK_F12:65481,XK_L2:65481,XK_F13:65482,XK_L3:65482,XK_F14:65483,XK_L4:65483,XK_F15:65484,XK_L5:65484,XK_F16:65485,XK_L6:65485,XK_F17:65486,XK_L7:65486,XK_F18:65487,XK_L8:65487,XK_F19:65488,XK_L9:65488,XK_F20:65489,XK_L10:65489,XK_F21:65490,XK_R1:65490,XK_F22:65491,XK_R2:65491,XK_F23:65492,XK_R3:65492,XK_F24:65493,XK_R4:65493,XK_F25:65494,XK_R5:65494,XK_F26:65495,XK_R6:65495,XK_F27:65496,XK_R7:65496,XK_F28:65497,XK_R8:65497,XK_F29:65498,XK_R9:65498,XK_F30:65499,XK_R10:65499,XK_F31:65500,XK_R11:65500,XK_F32:65501,XK_R12:65501,XK_F33:65502,XK_R13:65502,XK_F34:65503,XK_R14:65503,XK_F35:65504,XK_R15:65504,XK_Shift_L:65505,XK_Shift_R:65506,XK_Control_L:65507,XK_Control_R:65508,XK_Caps_Lock:65509,XK_Shift_Lock:65510,XK_Meta_L:65511,XK_Meta_R:65512,XK_Alt_L:65513,XK_Alt_R:65514,XK_Super_L:65515,XK_Super_R:65516,XK_Hyper_L:65517,XK_Hyper_R:65518,XK_ISO_Level3_Shift:65027,XK_ISO_Next_Group:65032,XK_ISO_Prev_Group:65034,XK_ISO_First_Group:65036,XK_ISO_Last_Group:65038,XK_space:32,XK_exclam:33,XK_quotedbl:34,XK_numbersign:35,XK_dollar:36,XK_percent:37,XK_ampersand:38,XK_apostrophe:39,XK_quoteright:39,XK_parenleft:40,XK_parenright:41,XK_asterisk:42,XK_plus:43,XK_comma:44,XK_minus:45,XK_period:46,XK_slash:47,XK_0:48,XK_1:49,XK_2:50,XK_3:51,XK_4:52,XK_5:53,XK_6:54,XK_7:55,XK_8:56,XK_9:57,XK_colon:58,XK_semicolon:59,XK_less:60,XK_equal:61,XK_greater:62,XK_question:63,XK_at:64,XK_A:65,XK_B:66,XK_C:67,XK_D:68,XK_E:69,XK_F:70,XK_G:71,XK_H:72,XK_I:73,XK_J:74,XK_K:75,XK_L:76,XK_M:77,XK_N:78,XK_O:79,XK_P:80,XK_Q:81,XK_R:82,XK_S:83,XK_T:84,XK_U:85,XK_V:86,XK_W:87,XK_X:88,XK_Y:89,XK_Z:90,XK_bracketleft:91,XK_backslash:92,XK_bracketright:93,XK_asciicircum:94,XK_underscore:95,XK_grave:96,XK_quoteleft:96,XK_a:97,XK_b:98,XK_c:99,XK_d:100,XK_e:101,XK_f:102,XK_g:103,XK_h:104,XK_i:105,XK_j:106,XK_k:107,XK_l:108,XK_m:109,XK_n:110,XK_o:111,XK_p:112,XK_q:113,XK_r:114,XK_s:115,XK_t:116,XK_u:117,XK_v:118,XK_w:119,XK_x:120,XK_y:121,XK_z:122,XK_braceleft:123,XK_bar:124,XK_braceright:125,XK_asciitilde:126,XK_nobreakspace:160,XK_exclamdown:161,XK_cent:162,XK_sterling:163,XK_currency:164,XK_yen:165,XK_brokenbar:166,XK_section:167,XK_diaeresis:168,XK_copyright:169,XK_ordfeminine:170,XK_guillemotleft:171,XK_notsign:172,XK_hyphen:173,XK_registered:174,XK_macron:175,XK_degree:176,XK_plusminus:177,XK_twosuperior:178,XK_threesuperior:179,XK_acute:180,XK_mu:181,XK_paragraph:182,XK_periodcentered:183,XK_cedilla:184,XK_onesuperior:185,XK_masculine:186,XK_guillemotright:187,XK_onequarter:188,XK_onehalf:189,XK_threequarters:190,XK_questiondown:191,XK_Agrave:192,XK_Aacute:193,XK_Acircumflex:194,XK_Atilde:195,XK_Adiaeresis:196,XK_Aring:197,XK_AE:198,XK_Ccedilla:199,XK_Egrave:200,XK_Eacute:201,XK_Ecircumflex:202,XK_Ediaeresis:203,XK_Igrave:204,XK_Iacute:205,XK_Icircumflex:206,XK_Idiaeresis:207,XK_ETH:208,XK_Eth:208,XK_Ntilde:209,XK_Ograve:210,XK_Oacute:211,XK_Ocircumflex:212,XK_Otilde:213,XK_Odiaeresis:214,XK_multiply:215,XK_Oslash:216,XK_Ooblique:216,XK_Ugrave:217,XK_Uacute:218,XK_Ucircumflex:219,XK_Udiaeresis:220,XK_Yacute:221,XK_THORN:222,XK_Thorn:222,XK_ssharp:223,XK_agrave:224,XK_aacute:225,XK_acircumflex:226,XK_atilde:227,XK_adiaeresis:228,XK_aring:229,XK_ae:230,XK_ccedilla:231,XK_egrave:232,XK_eacute:233,XK_ecircumflex:234,XK_ediaeresis:235,XK_igrave:236,XK_iacute:237,XK_icircumflex:238,XK_idiaeresis:239,XK_eth:240,XK_ntilde:241,XK_ograve:242,XK_oacute:243,XK_ocircumflex:244,XK_otilde:245,XK_odiaeresis:246,XK_division:247,XK_oslash:248,XK_ooblique:248,XK_ugrave:249,XK_uacute:250,XK_ucircumflex:251,XK_udiaeresis:252,XK_yacute:253,XK_thorn:254,XK_ydiaeresis:255,XK_Hangul:65329,XK_Hangul_Hanja:65332,XK_Hangul_Jeonja:65336,XF86XK_ModeLock:269025025,XF86XK_MonBrightnessUp:269025026,XF86XK_MonBrightnessDown:269025027,XF86XK_KbdLightOnOff:269025028,XF86XK_KbdBrightnessUp:269025029,XF86XK_KbdBrightnessDown:269025030,XF86XK_Standby:269025040,XF86XK_AudioLowerVolume:269025041,XF86XK_AudioMute:269025042,XF86XK_AudioRaiseVolume:269025043,XF86XK_AudioPlay:269025044,XF86XK_AudioStop:269025045,XF86XK_AudioPrev:269025046,XF86XK_AudioNext:269025047,XF86XK_HomePage:269025048,XF86XK_Mail:269025049,XF86XK_Start:269025050,XF86XK_Search:269025051,XF86XK_AudioRecord:269025052,XF86XK_Calculator:269025053,XF86XK_Memo:269025054,XF86XK_ToDoList:269025055,XF86XK_Calendar:269025056,XF86XK_PowerDown:269025057,XF86XK_ContrastAdjust:269025058,XF86XK_RockerUp:269025059,XF86XK_RockerDown:269025060,XF86XK_RockerEnter:269025061,XF86XK_Back:269025062,XF86XK_Forward:269025063,XF86XK_Stop:269025064,XF86XK_Refresh:269025065,XF86XK_PowerOff:269025066,XF86XK_WakeUp:269025067,XF86XK_Eject:269025068,XF86XK_ScreenSaver:269025069,XF86XK_WWW:269025070,XF86XK_Sleep:269025071,XF86XK_Favorites:269025072,XF86XK_AudioPause:269025073,XF86XK_AudioMedia:269025074,XF86XK_MyComputer:269025075,XF86XK_VendorHome:269025076,XF86XK_LightBulb:269025077,XF86XK_Shop:269025078,XF86XK_History:269025079,XF86XK_OpenURL:269025080,XF86XK_AddFavorite:269025081,XF86XK_HotLinks:269025082,XF86XK_BrightnessAdjust:269025083,XF86XK_Finance:269025084,XF86XK_Community:269025085,XF86XK_AudioRewind:269025086,XF86XK_BackForward:269025087,XF86XK_Launch0:269025088,XF86XK_Launch1:269025089,XF86XK_Launch2:269025090,XF86XK_Launch3:269025091,XF86XK_Launch4:269025092,XF86XK_Launch5:269025093,XF86XK_Launch6:269025094,XF86XK_Launch7:269025095,XF86XK_Launch8:269025096,XF86XK_Launch9:269025097,XF86XK_LaunchA:269025098,XF86XK_LaunchB:269025099,XF86XK_LaunchC:269025100,XF86XK_LaunchD:269025101,XF86XK_LaunchE:269025102,XF86XK_LaunchF:269025103,XF86XK_ApplicationLeft:269025104,XF86XK_ApplicationRight:269025105,XF86XK_Book:269025106,XF86XK_CD:269025107,XF86XK_Calculater:269025108,XF86XK_Clear:269025109,XF86XK_Close:269025110,XF86XK_Copy:269025111,XF86XK_Cut:269025112,XF86XK_Display:269025113,XF86XK_DOS:269025114,XF86XK_Documents:269025115,XF86XK_Excel:269025116,XF86XK_Explorer:269025117,XF86XK_Game:269025118,XF86XK_Go:269025119,XF86XK_iTouch:269025120,XF86XK_LogOff:269025121,XF86XK_Market:269025122,XF86XK_Meeting:269025123,XF86XK_MenuKB:269025125,XF86XK_MenuPB:269025126,XF86XK_MySites:269025127,XF86XK_New:269025128,XF86XK_News:269025129,XF86XK_OfficeHome:269025130,XF86XK_Open:269025131,XF86XK_Option:269025132,XF86XK_Paste:269025133,XF86XK_Phone:269025134,XF86XK_Q:269025136,XF86XK_Reply:269025138,XF86XK_Reload:269025139,XF86XK_RotateWindows:269025140,XF86XK_RotationPB:269025141,XF86XK_RotationKB:269025142,XF86XK_Save:269025143,XF86XK_ScrollUp:269025144,XF86XK_ScrollDown:269025145,XF86XK_ScrollClick:269025146,XF86XK_Send:269025147,XF86XK_Spell:269025148,XF86XK_SplitScreen:269025149,XF86XK_Support:269025150,XF86XK_TaskPane:269025151,XF86XK_Terminal:269025152,XF86XK_Tools:269025153,XF86XK_Travel:269025154,XF86XK_UserPB:269025156,XF86XK_User1KB:269025157,XF86XK_User2KB:269025158,XF86XK_Video:269025159,XF86XK_WheelButton:269025160,XF86XK_Word:269025161,XF86XK_Xfer:269025162,XF86XK_ZoomIn:269025163,XF86XK_ZoomOut:269025164,XF86XK_Away:269025165,XF86XK_Messenger:269025166,XF86XK_WebCam:269025167,XF86XK_MailForward:269025168,XF86XK_Pictures:269025169,XF86XK_Music:269025170,XF86XK_Battery:269025171,XF86XK_Bluetooth:269025172,XF86XK_WLAN:269025173,XF86XK_UWB:269025174,XF86XK_AudioForward:269025175,XF86XK_AudioRepeat:269025176,XF86XK_AudioRandomPlay:269025177,XF86XK_Subtitle:269025178,XF86XK_AudioCycleTrack:269025179,XF86XK_CycleAngle:269025180,XF86XK_FrameBack:269025181,XF86XK_FrameForward:269025182,XF86XK_Time:269025183,XF86XK_Select:269025184,XF86XK_View:269025185,XF86XK_TopMenu:269025186,XF86XK_Red:269025187,XF86XK_Green:269025188,XF86XK_Yellow:269025189,XF86XK_Blue:269025190,XF86XK_Suspend:269025191,XF86XK_Hibernate:269025192,XF86XK_TouchpadToggle:269025193,XF86XK_TouchpadOn:269025200,XF86XK_TouchpadOff:269025201,XF86XK_AudioMicMute:269025202,XF86XK_Switch_VT_1:269024769,XF86XK_Switch_VT_2:269024770,XF86XK_Switch_VT_3:269024771,XF86XK_Switch_VT_4:269024772,XF86XK_Switch_VT_5:269024773,XF86XK_Switch_VT_6:269024774,XF86XK_Switch_VT_7:269024775,XF86XK_Switch_VT_8:269024776,XF86XK_Switch_VT_9:269024777,XF86XK_Switch_VT_10:269024778,XF86XK_Switch_VT_11:269024779,XF86XK_Switch_VT_12:269024780,XF86XK_Ungrab:269024800,XF86XK_ClearGrab:269024801,XF86XK_Next_VMode:269024802,XF86XK_Prev_VMode:269024803,XF86XK_LogWindowTree:269024804,XF86XK_LogGrabInfo:269024805};const on={256:960,257:992,258:451,259:483,260:417,261:433,262:454,263:486,264:710,265:742,266:709,267:741,268:456,269:488,270:463,271:495,272:464,273:496,274:938,275:954,278:972,279:1004,280:458,281:490,282:460,283:492,284:728,285:760,286:683,287:699,288:725,289:757,290:939,291:955,292:678,293:694,294:673,295:689,296:933,297:949,298:975,299:1007,302:967,303:999,304:681,305:697,308:684,309:700,310:979,311:1011,312:930,313:453,314:485,315:934,316:950,317:421,318:437,321:419,322:435,323:465,324:497,325:977,326:1009,327:466,328:498,330:957,331:959,332:978,333:1010,336:469,337:501,338:5052,339:5053,340:448,341:480,342:931,343:947,344:472,345:504,346:422,347:438,348:734,349:766,350:426,351:442,352:425,353:441,354:478,355:510,356:427,357:443,358:940,359:956,360:989,361:1021,362:990,363:1022,364:733,365:765,366:473,367:505,368:475,369:507,370:985,371:1017,376:5054,377:428,378:444,379:431,380:447,381:430,382:446,402:2294,466:16777681,711:439,728:418,729:511,731:434,733:445,901:1966,902:1953,904:1954,905:1955,906:1956,908:1959,910:1960,911:1963,912:1974,913:1985,914:1986,915:1987,916:1988,917:1989,918:1990,919:1991,920:1992,921:1993,922:1994,923:1995,924:1996,925:1997,926:1998,927:1999,928:2e3,929:2001,931:2002,932:2004,933:2005,934:2006,935:2007,936:2008,937:2009,938:1957,939:1961,940:1969,941:1970,942:1971,943:1972,944:1978,945:2017,946:2018,947:2019,948:2020,949:2021,950:2022,951:2023,952:2024,953:2025,954:2026,955:2027,956:2028,957:2029,958:2030,959:2031,960:2032,961:2033,962:2035,963:2034,964:2036,965:2037,966:2038,967:2039,968:2040,969:2041,970:1973,971:1977,972:1975,973:1976,974:1979,1025:1715,1026:1713,1027:1714,1028:1716,1029:1717,1030:1718,1031:1719,1032:1720,1033:1721,1034:1722,1035:1723,1036:1724,1038:1726,1039:1727,1040:1761,1041:1762,1042:1783,1043:1767,1044:1764,1045:1765,1046:1782,1047:1786,1048:1769,1049:1770,1050:1771,1051:1772,1052:1773,1053:1774,1054:1775,1055:1776,1056:1778,1057:1779,1058:1780,1059:1781,1060:1766,1061:1768,1062:1763,1063:1790,1064:1787,1065:1789,1066:1791,1067:1785,1068:1784,1069:1788,1070:1760,1071:1777,1072:1729,1073:1730,1074:1751,1075:1735,1076:1732,1077:1733,1078:1750,1079:1754,1080:1737,1081:1738,1082:1739,1083:1740,1084:1741,1085:1742,1086:1743,1087:1744,1088:1746,1089:1747,1090:1748,1091:1749,1092:1734,1093:1736,1094:1731,1095:1758,1096:1755,1097:1757,1098:1759,1099:1753,1100:1752,1101:1756,1102:1728,1103:1745,1105:1699,1106:1697,1107:1698,1108:1700,1109:1701,1110:1702,1111:1703,1112:1704,1113:1705,1114:1706,1115:1707,1116:1708,1118:1710,1119:1711,1168:1725,1169:1709,1488:3296,1489:3297,1490:3298,1491:3299,1492:3300,1493:3301,1494:3302,1495:3303,1496:3304,1497:3305,1498:3306,1499:3307,1500:3308,1501:3309,1502:3310,1503:3311,1504:3312,1505:3313,1506:3314,1507:3315,1508:3316,1509:3317,1510:3318,1511:3319,1512:3320,1513:3321,1514:3322,1548:1452,1563:1467,1567:1471,1569:1473,1570:1474,1571:1475,1572:1476,1573:1477,1574:1478,1575:1479,1576:1480,1577:1481,1578:1482,1579:1483,1580:1484,1581:1485,1582:1486,1583:1487,1584:1488,1585:1489,1586:1490,1587:1491,1588:1492,1589:1493,1590:1494,1591:1495,1592:1496,1593:1497,1594:1498,1600:1504,1601:1505,1602:1506,1603:1507,1604:1508,1605:1509,1606:1510,1607:1511,1608:1512,1609:1513,1610:1514,1611:1515,1612:1516,1613:1517,1614:1518,1615:1519,1616:1520,1617:1521,1618:1522,3585:3489,3586:3490,3587:3491,3588:3492,3589:3493,3590:3494,3591:3495,3592:3496,3593:3497,3594:3498,3595:3499,3596:3500,3597:3501,3598:3502,3599:3503,3600:3504,3601:3505,3602:3506,3603:3507,3604:3508,3605:3509,3606:3510,3607:3511,3608:3512,3609:3513,3610:3514,3611:3515,3612:3516,3613:3517,3614:3518,3615:3519,3616:3520,3617:3521,3618:3522,3619:3523,3620:3524,3621:3525,3622:3526,3623:3527,3624:3528,3625:3529,3626:3530,3627:3531,3628:3532,3629:3533,3630:3534,3631:3535,3632:3536,3633:3537,3634:3538,3635:3539,3636:3540,3637:3541,3638:3542,3639:3543,3640:3544,3641:3545,3642:3546,3647:3551,3648:3552,3649:3553,3650:3554,3651:3555,3652:3556,3653:3557,3654:3558,3655:3559,3656:3560,3657:3561,3658:3562,3659:3563,3660:3564,3661:3565,3664:3568,3665:3569,3666:3570,3667:3571,3668:3572,3669:3573,3670:3574,3671:3575,3672:3576,3673:3577,8194:2722,8195:2721,8196:2723,8197:2724,8199:2725,8200:2726,8201:2727,8202:2728,8210:2747,8211:2730,8212:2729,8213:1967,8215:3295,8216:2768,8217:2769,8218:2813,8220:2770,8221:2771,8222:2814,8224:2801,8225:2802,8226:2790,8229:2735,8230:2734,8240:2773,8242:2774,8243:2775,8248:2812,8254:1150,8361:3839,8364:8364,8453:2744,8470:1712,8471:2811,8478:2772,8482:2761,8531:2736,8532:2737,8533:2738,8534:2739,8535:2740,8536:2741,8537:2742,8538:2743,8539:2755,8540:2756,8541:2757,8542:2758,8592:2299,8593:2300,8594:2301,8595:2302,8658:2254,8660:2253,8706:2287,8711:2245,8728:3018,8730:2262,8733:2241,8734:2242,8743:2270,8744:2271,8745:2268,8746:2269,8747:2239,8756:2240,8764:2248,8771:2249,8773:16785992,8800:2237,8801:2255,8804:2236,8805:2238,8834:2266,8835:2267,8866:3068,8867:3036,8868:3010,8869:3022,8968:3027,8970:3012,8981:2810,8992:2212,8993:2213,9109:3020,9115:2219,9117:2220,9118:2221,9120:2222,9121:2215,9123:2216,9124:2217,9126:2218,9128:2223,9132:2224,9143:2209,9146:2543,9147:2544,9148:2546,9149:2547,9225:2530,9226:2533,9227:2537,9228:2531,9229:2532,9251:2732,9252:2536,9472:2211,9474:2214,9484:2210,9488:2539,9492:2541,9496:2538,9500:2548,9508:2549,9516:2551,9524:2550,9532:2542,9618:2529,9642:2791,9643:2785,9644:2779,9645:2786,9646:2783,9647:2767,9650:2792,9651:2787,9654:2781,9655:2765,9660:2793,9661:2788,9664:2780,9665:2764,9670:2528,9675:2766,9679:2782,9702:2784,9734:2789,9742:2809,9747:2762,9756:2794,9758:2795,9792:2808,9794:2807,9827:2796,9829:2798,9830:2797,9837:2806,9839:2805,10003:2803,10007:2804,10013:2777,10016:2800,10216:2748,10217:2750,12289:1188,12290:1185,12300:1186,12301:1187,12443:1246,12444:1247,12449:1191,12450:1201,12451:1192,12452:1202,12453:1193,12454:1203,12455:1194,12456:1204,12457:1195,12458:1205,12459:1206,12461:1207,12463:1208,12465:1209,12467:1210,12469:1211,12471:1212,12473:1213,12475:1214,12477:1215,12479:1216,12481:1217,12483:1199,12484:1218,12486:1219,12488:1220,12490:1221,12491:1222,12492:1223,12493:1224,12494:1225,12495:1226,12498:1227,12501:1228,12504:1229,12507:1230,12510:1231,12511:1232,12512:1233,12513:1234,12514:1235,12515:1196,12516:1236,12517:1197,12518:1237,12519:1198,12520:1238,12521:1239,12522:1240,12523:1241,12524:1242,12525:1243,12527:1244,12530:1190,12531:1245,12539:1189,12540:1200};var sn={lookup(e){if(e>=32&&e<=255)return e;const t=on[e];return void 0!==t?t:16777216|e}},ln={8:"Backspace",9:"Tab",10:"NumpadClear",12:"Numpad5",13:"Enter",16:"ShiftLeft",17:"ControlLeft",18:"AltLeft",19:"Pause",20:"CapsLock",21:"Lang1",25:"Lang2",27:"Escape",28:"Convert",29:"NonConvert",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",41:"Select",44:"PrintScreen",45:"Insert",46:"Delete",47:"Help",48:"Digit0",49:"Digit1",50:"Digit2",51:"Digit3",52:"Digit4",53:"Digit5",54:"Digit6",55:"Digit7",56:"Digit8",57:"Digit9",91:"MetaLeft",92:"MetaRight",93:"ContextMenu",95:"Sleep",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",106:"NumpadMultiply",107:"NumpadAdd",108:"NumpadDecimal",109:"NumpadSubtract",110:"NumpadDecimal",111:"NumpadDivide",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",124:"F13",125:"F14",126:"F15",127:"F16",128:"F17",129:"F18",130:"F19",131:"F20",132:"F21",133:"F22",134:"F23",135:"F24",144:"NumLock",145:"ScrollLock",166:"BrowserBack",167:"BrowserForward",168:"BrowserRefresh",169:"BrowserStop",170:"BrowserSearch",171:"BrowserFavorites",172:"BrowserHome",173:"AudioVolumeMute",174:"AudioVolumeDown",175:"AudioVolumeUp",176:"MediaTrackNext",177:"MediaTrackPrevious",178:"MediaStop",179:"MediaPlayPause",180:"LaunchMail",181:"MediaSelect",182:"LaunchApp1",183:"LaunchApp2",225:"AltRight"},cn={Backspace:"Backspace",AltLeft:"Alt",AltRight:"Alt",CapsLock:"CapsLock",ContextMenu:"ContextMenu",ControlLeft:"Control",ControlRight:"Control",Enter:"Enter",MetaLeft:"Meta",MetaRight:"Meta",ShiftLeft:"Shift",ShiftRight:"Shift",Tab:"Tab",Delete:"Delete",End:"End",Help:"Help",Home:"Home",Insert:"Insert",PageDown:"PageDown",PageUp:"PageUp",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",NumLock:"NumLock",NumpadBackspace:"Backspace",NumpadClear:"Clear",Escape:"Escape",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F30:"F30",F31:"F31",F32:"F32",F33:"F33",F34:"F34",F35:"F35",PrintScreen:"PrintScreen",ScrollLock:"ScrollLock",Pause:"Pause",BrowserBack:"BrowserBack",BrowserFavorites:"BrowserFavorites",BrowserForward:"BrowserForward",BrowserHome:"BrowserHome",BrowserRefresh:"BrowserRefresh",BrowserSearch:"BrowserSearch",BrowserStop:"BrowserStop",Eject:"Eject",LaunchApp1:"LaunchMyComputer",LaunchApp2:"LaunchCalendar",LaunchMail:"LaunchMail",MediaPlayPause:"MediaPlay",MediaStop:"MediaStop",MediaTrackNext:"MediaTrackNext",MediaTrackPrevious:"MediaTrackPrevious",Power:"Power",Sleep:"Sleep",AudioVolumeDown:"AudioVolumeDown",AudioVolumeMute:"AudioVolumeMute",AudioVolumeUp:"AudioVolumeUp",WakeUp:"WakeUp"};const un={};function dn(e,t){if(void 0===t)throw new Error('Undefined keysym for key "'+e+'"');if(e in un)throw new Error('Duplicate entry for key "'+e+'"');un[e]=[t,t,t,t]}function hn(e,t,n){if(void 0===t)throw new Error('Undefined keysym for key "'+e+'"');if(void 0===n)throw new Error('Undefined keysym for key "'+e+'"');if(e in un)throw new Error('Duplicate entry for key "'+e+'"');un[e]=[t,t,n,t]}function pn(e,t,n){if(void 0===t)throw new Error('Undefined keysym for key "'+e+'"');if(void 0===n)throw new Error('Undefined keysym for key "'+e+'"');if(e in un)throw new Error('Duplicate entry for key "'+e+'"');un[e]=[t,t,t,n]}hn("Alt",an.XK_Alt_L,an.XK_Alt_R),dn("AltGraph",an.XK_ISO_Level3_Shift),dn("CapsLock",an.XK_Caps_Lock),hn("Control",an.XK_Control_L,an.XK_Control_R),hn("Meta",an.XK_Super_L,an.XK_Super_R),dn("NumLock",an.XK_Num_Lock),dn("ScrollLock",an.XK_Scroll_Lock),hn("Shift",an.XK_Shift_L,an.XK_Shift_R),pn("Enter",an.XK_Return,an.XK_KP_Enter),dn("Tab",an.XK_Tab),pn(" ",an.XK_space,an.XK_KP_Space),pn("ArrowDown",an.XK_Down,an.XK_KP_Down),pn("ArrowUp",an.XK_Up,an.XK_KP_Up),pn("ArrowLeft",an.XK_Left,an.XK_KP_Left),pn("ArrowRight",an.XK_Right,an.XK_KP_Right),pn("End",an.XK_End,an.XK_KP_End),pn("Home",an.XK_Home,an.XK_KP_Home),pn("PageDown",an.XK_Next,an.XK_KP_Next),pn("PageUp",an.XK_Prior,an.XK_KP_Prior),dn("Backspace",an.XK_BackSpace),pn("Clear",an.XK_Clear,an.XK_KP_Begin),dn("Copy",an.XF86XK_Copy),dn("Cut",an.XF86XK_Cut),pn("Delete",an.XK_Delete,an.XK_KP_Delete),pn("Insert",an.XK_Insert,an.XK_KP_Insert),dn("Paste",an.XF86XK_Paste),dn("Redo",an.XK_Redo),dn("Undo",an.XK_Undo),dn("Cancel",an.XK_Cancel),dn("ContextMenu",an.XK_Menu),dn("Escape",an.XK_Escape),dn("Execute",an.XK_Execute),dn("Find",an.XK_Find),dn("Help",an.XK_Help),dn("Pause",an.XK_Pause),dn("Select",an.XK_Select),dn("ZoomIn",an.XF86XK_ZoomIn),dn("ZoomOut",an.XF86XK_ZoomOut),dn("BrightnessDown",an.XF86XK_MonBrightnessDown),dn("BrightnessUp",an.XF86XK_MonBrightnessUp),dn("Eject",an.XF86XK_Eject),dn("LogOff",an.XF86XK_LogOff),dn("Power",an.XF86XK_PowerOff),dn("PowerOff",an.XF86XK_PowerDown),dn("PrintScreen",an.XK_Print),dn("Hibernate",an.XF86XK_Hibernate),dn("Standby",an.XF86XK_Standby),dn("WakeUp",an.XF86XK_WakeUp),dn("AllCandidates",an.XK_MultipleCandidate),dn("Alphanumeric",an.XK_Eisu_Shift),dn("CodeInput",an.XK_Codeinput),dn("Compose",an.XK_Multi_key),dn("Convert",an.XK_Henkan),dn("GroupFirst",an.XK_ISO_First_Group),dn("GroupLast",an.XK_ISO_Last_Group),dn("GroupNext",an.XK_ISO_Next_Group),dn("GroupPrevious",an.XK_ISO_Prev_Group),dn("NonConvert",an.XK_Muhenkan),dn("PreviousCandidate",an.XK_PreviousCandidate),dn("SingleCandidate",an.XK_SingleCandidate),dn("HangulMode",an.XK_Hangul),dn("HanjaMode",an.XK_Hangul_Hanja),dn("JunjuaMode",an.XK_Hangul_Jeonja),dn("Eisu",an.XK_Eisu_toggle),dn("Hankaku",an.XK_Hankaku),dn("Hiragana",an.XK_Hiragana),dn("HiraganaKatakana",an.XK_Hiragana_Katakana),dn("KanaMode",an.XK_Kana_Shift),dn("KanjiMode",an.XK_Kanji),dn("Katakana",an.XK_Katakana),dn("Romaji",an.XK_Romaji),dn("Zenkaku",an.XK_Zenkaku),dn("ZenkakuHanaku",an.XK_Zenkaku_Hankaku),dn("F1",an.XK_F1),dn("F2",an.XK_F2),dn("F3",an.XK_F3),dn("F4",an.XK_F4),dn("F5",an.XK_F5),dn("F6",an.XK_F6),dn("F7",an.XK_F7),dn("F8",an.XK_F8),dn("F9",an.XK_F9),dn("F10",an.XK_F10),dn("F11",an.XK_F11),dn("F12",an.XK_F12),dn("F13",an.XK_F13),dn("F14",an.XK_F14),dn("F15",an.XK_F15),dn("F16",an.XK_F16),dn("F17",an.XK_F17),dn("F18",an.XK_F18),dn("F19",an.XK_F19),dn("F20",an.XK_F20),dn("F21",an.XK_F21),dn("F22",an.XK_F22),dn("F23",an.XK_F23),dn("F24",an.XK_F24),dn("F25",an.XK_F25),dn("F26",an.XK_F26),dn("F27",an.XK_F27),dn("F28",an.XK_F28),dn("F29",an.XK_F29),dn("F30",an.XK_F30),dn("F31",an.XK_F31),dn("F32",an.XK_F32),dn("F33",an.XK_F33),dn("F34",an.XK_F34),dn("F35",an.XK_F35),dn("Close",an.XF86XK_Close),dn("MailForward",an.XF86XK_MailForward),dn("MailReply",an.XF86XK_Reply),dn("MailSend",an.XF86XK_Send),dn("MediaFastForward",an.XF86XK_AudioForward),dn("MediaPause",an.XF86XK_AudioPause),dn("MediaPlay",an.XF86XK_AudioPlay),dn("MediaRecord",an.XF86XK_AudioRecord),dn("MediaRewind",an.XF86XK_AudioRewind),dn("MediaStop",an.XF86XK_AudioStop),dn("MediaTrackNext",an.XF86XK_AudioNext),dn("MediaTrackPrevious",an.XF86XK_AudioPrev),dn("New",an.XF86XK_New),dn("Open",an.XF86XK_Open),dn("Print",an.XK_Print),dn("Save",an.XF86XK_Save),dn("SpellCheck",an.XF86XK_Spell),dn("AudioVolumeDown",an.XF86XK_AudioLowerVolume),dn("AudioVolumeUp",an.XF86XK_AudioRaiseVolume),dn("AudioVolumeMute",an.XF86XK_AudioMute),dn("MicrophoneVolumeMute",an.XF86XK_AudioMicMute),dn("LaunchApplication1",an.XF86XK_MyComputer),dn("LaunchApplication2",an.XF86XK_Calculator),dn("LaunchCalendar",an.XF86XK_Calendar),dn("LaunchMail",an.XF86XK_Mail),dn("LaunchMediaPlayer",an.XF86XK_AudioMedia),dn("LaunchMusicPlayer",an.XF86XK_Music),dn("LaunchPhone",an.XF86XK_Phone),dn("LaunchScreenSaver",an.XF86XK_ScreenSaver),dn("LaunchSpreadsheet",an.XF86XK_Excel),dn("LaunchWebBrowser",an.XF86XK_WWW),dn("LaunchWebCam",an.XF86XK_WebCam),dn("LaunchWordProcessor",an.XF86XK_Word),dn("BrowserBack",an.XF86XK_Back),dn("BrowserFavorites",an.XF86XK_Favorites),dn("BrowserForward",an.XF86XK_Forward),dn("BrowserHome",an.XF86XK_HomePage),dn("BrowserRefresh",an.XF86XK_Refresh),dn("BrowserSearch",an.XF86XK_Search),dn("BrowserStop",an.XF86XK_Stop),dn("Dimmer",an.XF86XK_BrightnessAdjust),dn("MediaAudioTrack",an.XF86XK_AudioCycleTrack),dn("RandomToggle",an.XF86XK_AudioRandomPlay),dn("SplitScreenToggle",an.XF86XK_SplitScreen),dn("Subtitle",an.XF86XK_Subtitle),dn("VideoModeNext",an.XF86XK_Next_VMode),pn("=",an.XK_equal,an.XK_KP_Equal),pn("+",an.XK_plus,an.XK_KP_Add),pn("-",an.XK_minus,an.XK_KP_Subtract),pn("*",an.XK_asterisk,an.XK_KP_Multiply),pn("/",an.XK_slash,an.XK_KP_Divide),pn(".",an.XK_period,an.XK_KP_Decimal),pn(",",an.XK_comma,an.XK_KP_Separator),pn("0",an.XK_0,an.XK_KP_0),pn("1",an.XK_1,an.XK_KP_1),pn("2",an.XK_2,an.XK_KP_2),pn("3",an.XK_3,an.XK_KP_3),pn("4",an.XK_4,an.XK_KP_4),pn("5",an.XK_5,an.XK_KP_5),pn("6",an.XK_6,an.XK_KP_6),pn("7",an.XK_7,an.XK_KP_7),pn("8",an.XK_8,an.XK_KP_8),pn("9",an.XK_9,an.XK_KP_9);var fn=un,mn=a(4364);let gn="warn",vn=()=>{},bn=()=>{},yn=()=>{},wn=()=>{};function En(e){if("undefined"===typeof e?e=gn:gn=e,vn=bn=yn=wn=()=>{},"undefined"!==typeof window.console)switch(e){case"debug":vn=mn.debug.bind(window.console);case"info":bn=mn.info.bind(window.console);case"warn":yn=mn.warn.bind(window.console);case"error":wn=mn.error.bind(window.console);case"none":break;default:throw new window.Error("invalid logging type '"+e+"'")}}En();let _n="ontouchstart"in document.documentElement||void 0!==document.ontouchstart||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;window.addEventListener("touchstart",(function e(){_n=!0,window.removeEventListener("touchstart",e,!1)}),!1);let Sn=10*(window.devicePixelRatio||1),kn=!1;try{const e=document.createElement("canvas");e.style.cursor='url("data:image/x-icon;base64,AAACAAEACAgAAAIAAgA4AQAAFgAAACgAAAAIAAAAEAAAAAEAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAA==") 2 2, default',0===e.style.cursor.indexOf("url")?(bn("Data URI scheme cursor supported"),kn=!0):yn("Data URI scheme cursor not supported")}catch(Bk){wn("Data URI scheme cursor test exception: "+Bk)}const xn=kn;let An=!1;try{new ImageData(new Uint8ClampedArray(4),1,1),An=!0}catch(Fk){}const Nn=An;let Cn=!0;try{const e=document.createElement("div");e.style.visibility="hidden",e.style.overflow="scroll",document.body.appendChild(e);const t=document.createElement("div");e.appendChild(t);const n=e.offsetWidth-t.offsetWidth;e.parentNode.removeChild(e),Cn=0!=n}catch(Bk){wn("Scrollbar test exception: "+Bk)}function Tn(){return navigator&&!!/mac/i.exec(navigator.platform)}function Rn(){return navigator&&!!/win/i.exec(navigator.platform)}function On(){return navigator&&(!!/ipad/i.exec(navigator.platform)||!!/iphone/i.exec(navigator.platform)||!!/ipod/i.exec(navigator.platform))}function In(){return navigator&&!!/trident/i.exec(navigator.userAgent)}function Ln(){return navigator&&!!/edge/i.exec(navigator.userAgent)}function Dn(){return navigator&&!!/firefox/i.exec(navigator.userAgent)}function Pn(e){if(e.code){switch(e.code){case"OSLeft":return"MetaLeft";case"OSRight":return"MetaRight"}return e.code}if("keypress"!==e.type&&e.keyCode in ln){let t=ln[e.keyCode];if(Tn()&&"ContextMenu"===t&&(t="MetaRight"),2===e.location)switch(t){case"ShiftLeft":return"ShiftRight";case"ControlLeft":return"ControlRight";case"AltLeft":return"AltRight"}if(3===e.location)switch(t){case"Delete":return"NumpadDecimal";case"Insert":return"Numpad0";case"End":return"Numpad1";case"ArrowDown":return"Numpad2";case"PageDown":return"Numpad3";case"ArrowLeft":return"Numpad4";case"ArrowRight":return"Numpad6";case"Home":return"Numpad7";case"ArrowUp":return"Numpad8";case"PageUp":return"Numpad9";case"Enter":return"NumpadEnter"}return t}return"Unidentified"}function Mn(e){if(void 0!==e.key){switch(e.key){case"Spacebar":return" ";case"Esc":return"Escape";case"Scroll":return"ScrollLock";case"Win":return"Meta";case"Apps":return"ContextMenu";case"Up":return"ArrowUp";case"Left":return"ArrowLeft";case"Right":return"ArrowRight";case"Down":return"ArrowDown";case"Del":return"Delete";case"Divide":return"/";case"Multiply":return"*";case"Subtract":return"-";case"Add":return"+";case"Decimal":return e.char}switch(e.key){case"OS":return"Meta";case"LaunchMyComputer":return"LaunchApplication1";case"LaunchCalculator":return"LaunchApplication2"}switch(e.key){case"UIKeyInputUpArrow":return"ArrowUp";case"UIKeyInputDownArrow":return"ArrowDown";case"UIKeyInputLeftArrow":return"ArrowLeft";case"UIKeyInputRightArrow":return"ArrowRight";case"UIKeyInputEscape":return"Escape"}if("\0"===e.key&&"NumpadDecimal"===e.code)return"Delete";if(!In()&&!Ln())return e.key;if(1!==e.key.length&&"Unidentified"!==e.key)return e.key}const t=Pn(e);return t in cn?cn[t]:e.charCode?String.fromCharCode(e.charCode):"Unidentified"}function Bn(e){const t=Mn(e);if("Unidentified"===t)return null;if(t in fn){let n=e.location;if("Meta"===t&&0===n&&(n=2),"Clear"===t&&3===n){let t=Pn(e);"NumLock"===t&&(n=0)}if((void 0===n||n>3)&&(n=0),"Meta"===t){let t=Pn(e);if("AltLeft"===t)return an.XK_Meta_L;if("AltRight"===t)return an.XK_Meta_R}if("Clear"===t){let t=Pn(e);if("NumLock"===t)return an.XK_Num_Lock}return fn[t][n]}if(1!==t.length)return null;const n=t.charCodeAt();return n?sn.lookup(n):null}const Fn={key:0},$n={class:"main-layout error"},Un={class:"text-center"},jn={class:"text-secondary mt-20"},Vn={key:1},Kn={class:"main-layout"},Hn={class:"text-center"},Gn={class:"text-secondary mt-20"},zn={ref:"view"};function qn(e,t,n,r,a,o){const s=(0,i.resolveComponent)("BrandImage");return(0,i.openBlock)(),(0,i.createElementBlock)("div",null,[a.connected&&a.disconnected?((0,i.openBlock)(),(0,i.createElementBlock)("div",Fn,[(0,i.createElementVNode)("main",$n,[(0,i.createElementVNode)("div",Un,[(0,i.createVNode)(s,{"file-name":"error-desert-landscape.svg",width:"900",height:"300"}),(0,i.createElementVNode)("h1",null,(0,i.toDisplayString)(e.t("generic.notification.title.warning")),1),(0,i.createElementVNode)("h2",jn,(0,i.toDisplayString)(e.t("vncConsole.error.message")),1)])])])):(0,i.createCommentVNode)("",!0),a.reconnecting?((0,i.openBlock)(),(0,i.createElementBlock)("div",Vn,[(0,i.createElementVNode)("main",Kn,[(0,i.createElementVNode)("div",Hn,[(0,i.createElementVNode)("h2",Gn,(0,i.toDisplayString)(e.t("vncConsole.reconnecting.message"))+":"+(0,i.toDisplayString)(a.retryTimes)+" of "+(0,i.toDisplayString)(a.maximumRetryTimes),1)])])])):(0,i.createCommentVNode)("",!0),(0,i.createElementVNode)("div",zn,null,512)])}function Xn(e){return e>>>0}function Wn(e){return 0|e}function Yn(e,t=!1){try{return decodeURIComponent(escape(e))}catch(Hs){if(Hs instanceof URIError&&t)return e;throw Hs}}function Qn(e){return unescape(encodeURIComponent(e))}function Jn(e,t,n){const r=n.getBoundingClientRect();let i={x:0,y:0};return e<r.left?i.x=0:e>=r.right?i.x=r.width-1:i.x=e-r.left,t<r.top?i.y=0:t>=r.bottom?i.y=r.height-1:i.y=t-r.top,i}function Zn(e){e.stopPropagation(),e.preventDefault()}let er=!1,tr=null;function nr(e){if(er)return;const t=new e.constructor(e.type,e);er=!0,document.captureElement?document.captureElement.dispatchEvent(t):tr.dispatchEvent(t),er=!1,e.stopPropagation(),t.defaultPrevented&&e.preventDefault(),"mouseup"===e.type&&or()}function rr(){const e=document.getElementById("noVNC_mouse_capture_elem");e.style.cursor=window.getComputedStyle(document.captureElement).cursor}document.captureElement=null;const ir=new MutationObserver(rr);function ar(e){if(e.setCapture)e.setCapture(),document.captureElement=e,e.addEventListener("mouseup",or);else{or();let t=document.getElementById("noVNC_mouse_capture_elem");null===t&&(t=document.createElement("div"),t.id="noVNC_mouse_capture_elem",t.style.position="fixed",t.style.top="0px",t.style.left="0px",t.style.width="100%",t.style.height="100%",t.style.zIndex=1e4,t.style.display="none",document.body.appendChild(t),t.addEventListener("contextmenu",nr),t.addEventListener("mousemove",nr),t.addEventListener("mouseup",nr)),document.captureElement=e,ir.observe(e,{attributes:!0}),rr(),t.style.display="",window.addEventListener("mousemove",nr),window.addEventListener("mouseup",nr)}}function or(){if(document.releaseCapture)document.releaseCapture(),document.captureElement=null;else{if(!document.captureElement)return;tr=document.captureElement,document.captureElement=null,ir.disconnect();const e=document.getElementById("noVNC_mouse_capture_elem");e.style.display="none",window.removeEventListener("mousemove",nr),window.removeEventListener("mouseup",nr)}}class sr{constructor(){this._listeners=new Map}addEventListener(e,t){this._listeners.has(e)||this._listeners.set(e,new Set),this._listeners.get(e).add(t)}removeEventListener(e,t){this._listeners.has(e)&&this._listeners.get(e).delete(t)}dispatchEvent(e){return!this._listeners.has(e.type)||(this._listeners.get(e.type).forEach((t=>t.call(this,e))),!e.defaultPrevented)}}var lr={toBase64Table:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split(""),base64Pad:"=",encode(e){let t="";const n=e.length,r=n%3;for(let a=0;a<n-2;a+=3)t+=this.toBase64Table[e[a]>>2],t+=this.toBase64Table[((3&e[a])<<4)+(e[a+1]>>4)],t+=this.toBase64Table[((15&e[a+1])<<2)+(e[a+2]>>6)],t+=this.toBase64Table[63&e[a+2]];const i=n-r;return 2===r?(t+=this.toBase64Table[e[i]>>2],t+=this.toBase64Table[((3&e[i])<<4)+(e[i+1]>>4)],t+=this.toBase64Table[(15&e[i+1])<<2],t+=this.toBase64Table[64]):1===r&&(t+=this.toBase64Table[e[i]>>2],t+=this.toBase64Table[(3&e[i])<<4],t+=this.toBase64Table[64],t+=this.toBase64Table[64]),t},toBinaryTable:[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,0,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1],decode(e,t=0){let n=e.indexOf("=")-t;n<0&&(n=e.length-t);const r=3*(n>>2)+Math.floor(n%4/1.5),i=new Array(r);let a=0,o=0;for(let s=0,l=t;l<e.length;l++){const t=this.toBinaryTable[127&e.charCodeAt(l)],n=e.charAt(l)===this.base64Pad;-1!==t?(o=o<<6|t,a+=6,a>=8&&(a-=8,n||(i[s++]=o>>a&255),o&=(1<<a)-1)):wn("Illegal character code "+e.charCodeAt(l)+" at position "+l)}if(a){const e=new Error("Corrupted base64 string");throw e.name="Base64-Error",e}return i}};class cr{constructor(e){if(this._drawCtx=null,this._renderQ=[],this._flushing=!1,this._fbWidth=0,this._fbHeight=0,this._prevDrawStyle="",this._tile=null,this._tile16x16=null,this._tileX=0,this._tileY=0,vn(">> Display.constructor"),this._target=e,!this._target)throw new Error("Target must be set");if("string"===typeof this._target)throw new Error("target must be a DOM element");if(!this._target.getContext)throw new Error("no getContext method");if(this._targetCtx=this._target.getContext("2d"),this._viewportLoc={x:0,y:0,w:this._target.width,h:this._target.height},this._backbuffer=document.createElement("canvas"),this._drawCtx=this._backbuffer.getContext("2d"),this._damageBounds={left:0,top:0,right:this._backbuffer.width,bottom:this._backbuffer.height},vn("User Agent: "+navigator.userAgent),!("createImageData"in this._drawCtx))throw new Error("Canvas does not support createImageData");this._tile16x16=this._drawCtx.createImageData(16,16),vn("<< Display.constructor"),this._scale=1,this._clipViewport=!1,this.onflush=()=>{}}get scale(){return this._scale}set scale(e){this._rescale(e)}get clipViewport(){return this._clipViewport}set clipViewport(e){this._clipViewport=e;const t=this._viewportLoc;this.viewportChangeSize(t.w,t.h),this.viewportChangePos(0,0)}get width(){return this._fbWidth}get height(){return this._fbHeight}viewportChangePos(e,t){const n=this._viewportLoc;e=Math.floor(e),t=Math.floor(t),this._clipViewport||(e=-n.w,t=-n.h);const r=n.x+n.w-1,i=n.y+n.h-1;e<0&&n.x+e<0&&(e=-n.x),r+e>=this._fbWidth&&(e-=r+e-this._fbWidth+1),n.y+t<0&&(t=-n.y),i+t>=this._fbHeight&&(t-=i+t-this._fbHeight+1),0===e&&0===t||(vn("viewportChange deltaX: "+e+", deltaY: "+t),n.x+=e,n.y+=t,this._damage(n.x,n.y,n.w,n.h),this.flip())}viewportChangeSize(e,t){this._clipViewport&&"undefined"!==typeof e&&"undefined"!==typeof t||(vn("Setting viewport to full display region"),e=this._fbWidth,t=this._fbHeight),e=Math.floor(e),t=Math.floor(t),e>this._fbWidth&&(e=this._fbWidth),t>this._fbHeight&&(t=this._fbHeight);const n=this._viewportLoc;if(n.w!==e||n.h!==t){n.w=e,n.h=t;const r=this._target;r.width=e,r.height=t,this.viewportChangePos(0,0),this._damage(n.x,n.y,n.w,n.h),this.flip(),this._rescale(this._scale)}}absX(e){return 0===this._scale?0:Wn(e/this._scale+this._viewportLoc.x)}absY(e){return 0===this._scale?0:Wn(e/this._scale+this._viewportLoc.y)}resize(e,t){this._prevDrawStyle="",this._fbWidth=e,this._fbHeight=t;const n=this._backbuffer;if(n.width!==e||n.height!==t){let r=null;n.width>0&&n.height>0&&(r=this._drawCtx.getImageData(0,0,n.width,n.height)),n.width!==e&&(n.width=e),n.height!==t&&(n.height=t),r&&this._drawCtx.putImageData(r,0,0)}const r=this._viewportLoc;this.viewportChangeSize(r.w,r.h),this.viewportChangePos(0,0)}_damage(e,t,n,r){e<this._damageBounds.left&&(this._damageBounds.left=e),t<this._damageBounds.top&&(this._damageBounds.top=t),e+n>this._damageBounds.right&&(this._damageBounds.right=e+n),t+r>this._damageBounds.bottom&&(this._damageBounds.bottom=t+r)}flip(e){if(0===this._renderQ.length||e){let e=this._damageBounds.left,t=this._damageBounds.top,n=this._damageBounds.right-e,r=this._damageBounds.bottom-t,i=e-this._viewportLoc.x,a=t-this._viewportLoc.y;i<0&&(n+=i,e-=i,i=0),a<0&&(r+=a,t-=a,a=0),i+n>this._viewportLoc.w&&(n=this._viewportLoc.w-i),a+r>this._viewportLoc.h&&(r=this._viewportLoc.h-a),n>0&&r>0&&this._targetCtx.drawImage(this._backbuffer,e,t,n,r,i,a,n,r),this._damageBounds.left=this._damageBounds.top=65535,this._damageBounds.right=this._damageBounds.bottom=0}else this._renderQPush({type:"flip"})}pending(){return this._renderQ.length>0}flush(){0===this._renderQ.length?this.onflush():this._flushing=!0}fillRect(e,t,n,r,i,a){0===this._renderQ.length||a?(this._setFillColor(i),this._drawCtx.fillRect(e,t,n,r),this._damage(e,t,n,r)):this._renderQPush({type:"fill",x:e,y:t,width:n,height:r,color:i})}copyImage(e,t,n,r,i,a,o){0===this._renderQ.length||o?(this._drawCtx.mozImageSmoothingEnabled=!1,this._drawCtx.webkitImageSmoothingEnabled=!1,this._drawCtx.msImageSmoothingEnabled=!1,this._drawCtx.imageSmoothingEnabled=!1,this._drawCtx.drawImage(this._backbuffer,e,t,i,a,n,r,i,a),this._damage(n,r,i,a)):this._renderQPush({type:"copy",oldX:e,oldY:t,x:n,y:r,width:i,height:a})}imageRect(e,t,n,r,i,a){if(0===n||0===r)return;const o=new Image;o.src="data: "+i+";base64,"+lr.encode(a),this._renderQPush({type:"img",img:o,x:e,y:t,width:n,height:r})}startTile(e,t,n,r,i){this._tileX=e,this._tileY=t,this._tile=16===n&&16===r?this._tile16x16:this._drawCtx.createImageData(n,r);const a=i[2],o=i[1],s=i[0],l=this._tile.data;for(let c=0;c<n*r*4;c+=4)l[c]=a,l[c+1]=o,l[c+2]=s,l[c+3]=255}subTile(e,t,n,r,i){const a=i[2],o=i[1],s=i[0],l=e+n,c=t+r,u=this._tile.data,d=this._tile.width;for(let h=t;h<c;h++)for(let t=e;t<l;t++){const e=4*(t+h*d);u[e]=a,u[e+1]=o,u[e+2]=s,u[e+3]=255}}finishTile(){this._drawCtx.putImageData(this._tile,this._tileX,this._tileY),this._damage(this._tileX,this._tileY,this._tile.width,this._tile.height)}blitImage(e,t,n,r,i,a,o){if(0===this._renderQ.length||o)this._bgrxImageData(e,t,n,r,i,a);else{const a=new Uint8Array(n*r*4);a.set(new Uint8Array(i.buffer,0,a.length)),this._renderQPush({type:"blit",data:a,x:e,y:t,width:n,height:r})}}blitRgbImage(e,t,n,r,i,a,o){if(0===this._renderQ.length||o)this._rgbImageData(e,t,n,r,i,a);else{const a=new Uint8Array(n*r*3);a.set(new Uint8Array(i.buffer,0,a.length)),this._renderQPush({type:"blitRgb",data:a,x:e,y:t,width:n,height:r})}}blitRgbxImage(e,t,n,r,i,a,o){if(0===this._renderQ.length||o)this._rgbxImageData(e,t,n,r,i,a);else{const a=new Uint8Array(n*r*4);a.set(new Uint8Array(i.buffer,0,a.length)),this._renderQPush({type:"blitRgbx",data:a,x:e,y:t,width:n,height:r})}}drawImage(e,t,n){this._drawCtx.drawImage(e,t,n),this._damage(t,n,e.width,e.height)}autoscale(e,t){let n;if(0===e||0===t)n=0;else{const r=this._viewportLoc,i=e/t,a=r.w/r.h;n=a>=i?e/r.w:t/r.h}this._rescale(n)}_rescale(e){this._scale=e;const t=this._viewportLoc,n=e*t.w+"px",r=e*t.h+"px";this._target.style.width===n&&this._target.style.height===r||(this._target.style.width=n,this._target.style.height=r)}_setFillColor(e){const t="rgb("+e[2]+","+e[1]+","+e[0]+")";t!==this._prevDrawStyle&&(this._drawCtx.fillStyle=t,this._prevDrawStyle=t)}_rgbImageData(e,t,n,r,i,a){const o=this._drawCtx.createImageData(n,r),s=o.data;for(let l=0,c=a;l<n*r*4;l+=4,c+=3)s[l]=i[c],s[l+1]=i[c+1],s[l+2]=i[c+2],s[l+3]=255;this._drawCtx.putImageData(o,e,t),this._damage(e,t,o.width,o.height)}_bgrxImageData(e,t,n,r,i,a){const o=this._drawCtx.createImageData(n,r),s=o.data;for(let l=0,c=a;l<n*r*4;l+=4,c+=4)s[l]=i[c+2],s[l+1]=i[c+1],s[l+2]=i[c],s[l+3]=255;this._drawCtx.putImageData(o,e,t),this._damage(e,t,o.width,o.height)}_rgbxImageData(e,t,n,r,i,a){let o;Nn?o=new ImageData(new Uint8ClampedArray(i.buffer,i.byteOffset,n*r*4),n,r):(o=this._drawCtx.createImageData(n,r),o.data.set(new Uint8ClampedArray(i.buffer,i.byteOffset,n*r*4))),this._drawCtx.putImageData(o,e,t),this._damage(e,t,o.width,o.height)}_renderQPush(e){this._renderQ.push(e),1===this._renderQ.length&&this._scanRenderQ()}_resumeRenderQ(){this.removeEventListener("load",this._noVNCDisplay._resumeRenderQ),this._noVNCDisplay._scanRenderQ()}_scanRenderQ(){let e=!0;while(e&&this._renderQ.length>0){const t=this._renderQ[0];switch(t.type){case"flip":this.flip(!0);break;case"copy":this.copyImage(t.oldX,t.oldY,t.x,t.y,t.width,t.height,!0);break;case"fill":this.fillRect(t.x,t.y,t.width,t.height,t.color,!0);break;case"blit":this.blitImage(t.x,t.y,t.width,t.height,t.data,0,!0);break;case"blitRgb":this.blitRgbImage(t.x,t.y,t.width,t.height,t.data,0,!0);break;case"blitRgbx":this.blitRgbxImage(t.x,t.y,t.width,t.height,t.data,0,!0);break;case"img":if(t.img.complete&&0!==t.img.width&&0!==t.img.height){if(t.img.width!==t.width||t.img.height!==t.height)return void wn("Decoded image has incorrect dimensions. Got "+t.img.width+"x"+t.img.height+". Expected "+t.width+"x"+t.height+".");this.drawImage(t.img,t.x,t.y)}else t.img._noVNCDisplay=this,t.img.addEventListener("load",this._resumeRenderQ),e=!1;break}e&&this._renderQ.shift()}0===this._renderQ.length&&this._flushing&&(this._flushing=!1,this.onflush())}}function ur(e,t,n,r,i){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),i);else for(var a=0;a<r;a++)e[i+a]=t[n+a]}var dr=Uint8Array,hr=Uint16Array,pr=Int32Array;function fr(e,t,n,r){var i=65535&e,a=e>>>16&65535,o=0;while(0!==n){o=n>2e3?2e3:n,n-=o;do{i=i+t[r++]|0,a=a+i|0}while(--o);i%=65521,a%=65521}return i|a<<16}function mr(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}mr();var gr=30,vr=12;function br(e,t){var n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,v,b,y,w,E,_,S,k,x,A;n=e.state,r=e.next_in,x=e.input,i=r+(e.avail_in-5),a=e.next_out,A=e.output,o=a-(t-e.avail_out),s=a+(e.avail_out-257),l=n.dmax,c=n.wsize,u=n.whave,d=n.wnext,h=n.window,p=n.hold,f=n.bits,m=n.lencode,g=n.distcode,v=(1<<n.lenbits)-1,b=(1<<n.distbits)-1;e:do{f<15&&(p+=x[r++]<<f,f+=8,p+=x[r++]<<f,f+=8),y=m[p&v];t:for(;;){if(w=y>>>24,p>>>=w,f-=w,w=y>>>16&255,0===w)A[a++]=65535&y;else{if(!(16&w)){if(0===(64&w)){y=m[(65535&y)+(p&(1<<w)-1)];continue t}if(32&w){n.mode=vr;break e}e.msg="invalid literal/length code",n.mode=gr;break e}E=65535&y,w&=15,w&&(f<w&&(p+=x[r++]<<f,f+=8),E+=p&(1<<w)-1,p>>>=w,f-=w),f<15&&(p+=x[r++]<<f,f+=8,p+=x[r++]<<f,f+=8),y=g[p&b];n:for(;;){if(w=y>>>24,p>>>=w,f-=w,w=y>>>16&255,!(16&w)){if(0===(64&w)){y=g[(65535&y)+(p&(1<<w)-1)];continue n}e.msg="invalid distance code",n.mode=gr;break e}if(_=65535&y,w&=15,f<w&&(p+=x[r++]<<f,f+=8,f<w&&(p+=x[r++]<<f,f+=8)),_+=p&(1<<w)-1,_>l){e.msg="invalid distance too far back",n.mode=gr;break e}if(p>>>=w,f-=w,w=a-o,_>w){if(w=_-w,w>u&&n.sane){e.msg="invalid distance too far back",n.mode=gr;break e}if(S=0,k=h,0===d){if(S+=c-w,w<E){E-=w;do{A[a++]=h[S++]}while(--w);S=a-_,k=A}}else if(d<w){if(S+=c+d-w,w-=d,w<E){E-=w;do{A[a++]=h[S++]}while(--w);if(S=0,d<E){w=d,E-=w;do{A[a++]=h[S++]}while(--w);S=a-_,k=A}}}else if(S+=d-w,w<E){E-=w;do{A[a++]=h[S++]}while(--w);S=a-_,k=A}while(E>2)A[a++]=k[S++],A[a++]=k[S++],A[a++]=k[S++],E-=3;E&&(A[a++]=k[S++],E>1&&(A[a++]=k[S++]))}else{S=a-_;do{A[a++]=A[S++],A[a++]=A[S++],A[a++]=A[S++],E-=3}while(E>2);E&&(A[a++]=A[S++],E>1&&(A[a++]=A[S++]))}break}}break}}while(r<i&&a<s);E=f>>3,r-=E,f-=E<<3,p&=(1<<f)-1,e.next_in=r,e.next_out=a,e.avail_in=r<i?i-r+5:5-(r-i),e.avail_out=a<s?s-a+257:257-(a-s),n.hold=p,n.bits=f}var yr=15,wr=852,Er=592,_r=0,Sr=1,kr=2,xr=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Ar=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Nr=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],Cr=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function Tr(e,t,n,r,i,a,o,s){var l,c,u,d,h,p,f,m,g,v=s.bits,b=0,y=0,w=0,E=0,_=0,S=0,k=0,x=0,A=0,N=0,C=null,T=0,R=new hr(yr+1),O=new hr(yr+1),I=null,L=0;for(b=0;b<=yr;b++)R[b]=0;for(y=0;y<r;y++)R[t[n+y]]++;for(_=v,E=yr;E>=1;E--)if(0!==R[E])break;if(_>E&&(_=E),0===E)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(w=1;w<E;w++)if(0!==R[w])break;for(_<w&&(_=w),x=1,b=1;b<=yr;b++)if(x<<=1,x-=R[b],x<0)return-1;if(x>0&&(e===_r||1!==E))return-1;for(O[1]=0,b=1;b<yr;b++)O[b+1]=O[b]+R[b];for(y=0;y<r;y++)0!==t[n+y]&&(o[O[t[n+y]]++]=y);if(e===_r?(C=I=o,p=19):e===Sr?(C=xr,T-=257,I=Ar,L-=257,p=256):(C=Nr,I=Cr,p=-1),N=0,y=0,b=w,h=a,S=_,k=0,u=-1,A=1<<_,d=A-1,e===Sr&&A>wr||e===kr&&A>Er)return 1;for(;;){f=b-k,o[y]<p?(m=0,g=o[y]):o[y]>p?(m=I[L+o[y]],g=C[T+o[y]]):(m=96,g=0),l=1<<b-k,c=1<<S,w=c;do{c-=l,i[h+(N>>k)+c]=f<<24|m<<16|g}while(0!==c);l=1<<b-1;while(N&l)l>>=1;if(0!==l?(N&=l-1,N+=l):N=0,y++,0===--R[b]){if(b===E)break;b=t[n+o[y]]}if(b>_&&(N&d)!==u){0===k&&(k=_),h+=w,S=b-k,x=1<<S;while(S+k<E){if(x-=R[S+k],x<=0)break;S++,x<<=1}if(A+=1<<S,e===Sr&&A>wr||e===kr&&A>Er)return 1;u=N&d,i[u]=_<<24|S<<16|h-a}}return 0!==N&&(i[h+N]=b-k<<24|64<<16),s.bits=_,0}var Rr=0,Or=1,Ir=2;const Lr=4,Dr=5,Pr=6,Mr=0,Br=1,Fr=2,$r=-2,Ur=-3,jr=-4,Vr=-5,Kr=8;var Hr=1,Gr=2,zr=3,qr=4,Xr=5,Wr=6,Yr=7,Qr=8,Jr=9,Zr=10,ei=11,ti=12,ni=13,ri=14,ii=15,ai=16,oi=17,si=18,li=19,ci=20,ui=21,di=22,hi=23,pi=24,fi=25,mi=26,gi=27,vi=28,bi=29,yi=30,wi=31,Ei=32,_i=852,Si=592,ki=15,xi=ki;function Ai(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function Ni(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new hr(320),this.work=new hr(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ci(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Hr,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new pr(_i),t.distcode=t.distdyn=new pr(Si),t.sane=1,t.back=-1,Mr):$r}function Ti(e){var t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Ci(e)):$r}function Ri(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?$r:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Ti(e))):$r}function Oi(e,t){var n,r;return e?(r=new Ni,e.state=r,r.window=null,n=Ri(e,t),n!==Mr&&(e.state=null),n):$r}function Ii(e){return Oi(e,xi)}var Li,Di,Pi=!0;function Mi(e){if(Pi){var t;Li=new pr(512),Di=new pr(32),t=0;while(t<144)e.lens[t++]=8;while(t<256)e.lens[t++]=9;while(t<280)e.lens[t++]=7;while(t<288)e.lens[t++]=8;Tr(Or,e.lens,0,288,Li,0,e.work,{bits:9}),t=0;while(t<32)e.lens[t++]=5;Tr(Ir,e.lens,0,32,Di,0,e.work,{bits:5}),Pi=!1}e.lencode=Li,e.lenbits=9,e.distcode=Di,e.distbits=5}function Bi(e,t,n,r){var i,a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new dr(a.wsize)),r>=a.wsize?(ur(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),ur(a.window,t,n-r,i,a.wnext),r-=i,r?(ur(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function Fi(e,t){var n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,v,b,y,w,E,_,S,k,x,A=0,N=new dr(4),C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return $r;n=e.state,n.mode===ti&&(n.mode=ni),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,d=s,h=l,S=Mr;e:for(;;)switch(n.mode){case Hr:if(0===n.wrap){n.mode=ni;break}while(u<16){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(2&n.wrap&&35615===c){n.check=0,N[0]=255&c,N[1]=c>>>8&255,n.check=mr(n.check,N,2,0),c=0,u=0,n.mode=Gr;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=yi;break}if((15&c)!==Kr){e.msg="unknown compression method",n.mode=yi;break}if(c>>>=4,u-=4,_=8+(15&c),0===n.wbits)n.wbits=_;else if(_>n.wbits){e.msg="invalid window size",n.mode=yi;break}n.dmax=1<<_,e.adler=n.check=1,n.mode=512&c?Zr:ti,c=0,u=0;break;case Gr:while(u<16){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(n.flags=c,(255&n.flags)!==Kr){e.msg="unknown compression method",n.mode=yi;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=yi;break}n.head&&(n.head.text=c>>8&1),512&n.flags&&(N[0]=255&c,N[1]=c>>>8&255,n.check=mr(n.check,N,2,0)),c=0,u=0,n.mode=zr;case zr:while(u<32){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.time=c),512&n.flags&&(N[0]=255&c,N[1]=c>>>8&255,N[2]=c>>>16&255,N[3]=c>>>24&255,n.check=mr(n.check,N,4,0)),c=0,u=0,n.mode=qr;case qr:while(u<16){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=255&c,n.head.os=c>>8),512&n.flags&&(N[0]=255&c,N[1]=c>>>8&255,n.check=mr(n.check,N,2,0)),c=0,u=0,n.mode=Xr;case Xr:if(1024&n.flags){while(u<16){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),512&n.flags&&(N[0]=255&c,N[1]=c>>>8&255,n.check=mr(n.check,N,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=Wr;case Wr:if(1024&n.flags&&(p=n.length,p>s&&(p=s),p&&(n.head&&(_=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),ur(n.head.extra,r,a,p,_)),512&n.flags&&(n.check=mr(n.check,r,p,a)),s-=p,a+=p,n.length-=p),n.length))break e;n.length=0,n.mode=Yr;case Yr:if(2048&n.flags){if(0===s)break e;p=0;do{_=r[a+p++],n.head&&_&&n.length<65536&&(n.head.name+=String.fromCharCode(_))}while(_&&p<s);if(512&n.flags&&(n.check=mr(n.check,r,p,a)),s-=p,a+=p,_)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Qr;case Qr:if(4096&n.flags){if(0===s)break e;p=0;do{_=r[a+p++],n.head&&_&&n.length<65536&&(n.head.comment+=String.fromCharCode(_))}while(_&&p<s);if(512&n.flags&&(n.check=mr(n.check,r,p,a)),s-=p,a+=p,_)break e}else n.head&&(n.head.comment=null);n.mode=Jr;case Jr:if(512&n.flags){while(u<16){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(c!==(65535&n.check)){e.msg="header crc mismatch",n.mode=yi;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=ti;break;case Zr:while(u<32){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}e.adler=n.check=Ai(c),c=0,u=0,n.mode=ei;case ei:if(0===n.havedict)return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,Fr;e.adler=n.check=1,n.mode=ti;case ti:if(t===Dr||t===Pr)break e;case ni:if(n.last){c>>>=7&u,u-=7&u,n.mode=gi;break}while(u<3){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}switch(n.last=1&c,c>>>=1,u-=1,3&c){case 0:n.mode=ri;break;case 1:if(Mi(n),n.mode=ci,t===Pr){c>>>=2,u-=2;break e}break;case 2:n.mode=oi;break;case 3:e.msg="invalid block type",n.mode=yi}c>>>=2,u-=2;break;case ri:c>>>=7&u,u-=7&u;while(u<32){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if((65535&c)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=yi;break}if(n.length=65535&c,c=0,u=0,n.mode=ii,t===Pr)break e;case ii:n.mode=ai;case ai:if(p=n.length,p){if(p>s&&(p=s),p>l&&(p=l),0===p)break e;ur(i,r,a,p,o),s-=p,a+=p,l-=p,o+=p,n.length-=p;break}n.mode=ti;break;case oi:while(u<14){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(n.nlen=257+(31&c),c>>>=5,u-=5,n.ndist=1+(31&c),c>>>=5,u-=5,n.ncode=4+(15&c),c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=yi;break}n.have=0,n.mode=si;case si:while(n.have<n.ncode){while(u<3){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}n.lens[C[n.have++]]=7&c,c>>>=3,u-=3}while(n.have<19)n.lens[C[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,k={bits:n.lenbits},S=Tr(Rr,n.lens,0,19,n.lencode,0,n.work,k),n.lenbits=k.bits,S){e.msg="invalid code lengths set",n.mode=yi;break}n.have=0,n.mode=li;case li:while(n.have<n.nlen+n.ndist){for(;;){if(A=n.lencode[c&(1<<n.lenbits)-1],g=A>>>24,v=A>>>16&255,b=65535&A,g<=u)break;if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(b<16)c>>>=g,u-=g,n.lens[n.have++]=b;else{if(16===b){x=g+2;while(u<x){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(c>>>=g,u-=g,0===n.have){e.msg="invalid bit length repeat",n.mode=yi;break}_=n.lens[n.have-1],p=3+(3&c),c>>>=2,u-=2}else if(17===b){x=g+3;while(u<x){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}c>>>=g,u-=g,_=0,p=3+(7&c),c>>>=3,u-=3}else{x=g+7;while(u<x){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}c>>>=g,u-=g,_=0,p=11+(127&c),c>>>=7,u-=7}if(n.have+p>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=yi;break}while(p--)n.lens[n.have++]=_}}if(n.mode===yi)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=yi;break}if(n.lenbits=9,k={bits:n.lenbits},S=Tr(Or,n.lens,0,n.nlen,n.lencode,0,n.work,k),n.lenbits=k.bits,S){e.msg="invalid literal/lengths set",n.mode=yi;break}if(n.distbits=6,n.distcode=n.distdyn,k={bits:n.distbits},S=Tr(Ir,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,k),n.distbits=k.bits,S){e.msg="invalid distances set",n.mode=yi;break}if(n.mode=ci,t===Pr)break e;case ci:n.mode=ui;case ui:if(s>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,br(e,h),o=e.next_out,i=e.output,l=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===ti&&(n.back=-1);break}for(n.back=0;;){if(A=n.lencode[c&(1<<n.lenbits)-1],g=A>>>24,v=A>>>16&255,b=65535&A,g<=u)break;if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(v&&0===(240&v)){for(y=g,w=v,E=b;;){if(A=n.lencode[E+((c&(1<<y+w)-1)>>y)],g=A>>>24,v=A>>>16&255,b=65535&A,y+g<=u)break;if(0===s)break e;s--,c+=r[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=g,u-=g,n.back+=g,n.length=b,0===v){n.mode=mi;break}if(32&v){n.back=-1,n.mode=ti;break}if(64&v){e.msg="invalid literal/length code",n.mode=yi;break}n.extra=15&v,n.mode=di;case di:if(n.extra){x=n.extra;while(u<x){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=hi;case hi:for(;;){if(A=n.distcode[c&(1<<n.distbits)-1],g=A>>>24,v=A>>>16&255,b=65535&A,g<=u)break;if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(0===(240&v)){for(y=g,w=v,E=b;;){if(A=n.distcode[E+((c&(1<<y+w)-1)>>y)],g=A>>>24,v=A>>>16&255,b=65535&A,y+g<=u)break;if(0===s)break e;s--,c+=r[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=g,u-=g,n.back+=g,64&v){e.msg="invalid distance code",n.mode=yi;break}n.offset=b,n.extra=15&v,n.mode=pi;case pi:if(n.extra){x=n.extra;while(u<x){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=yi;break}n.mode=fi;case fi:if(0===l)break e;if(p=h-l,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=yi;break}p>n.wnext?(p-=n.wnext,f=n.wsize-p):f=n.wnext-p,p>n.length&&(p=n.length),m=n.window}else m=i,f=o-n.offset,p=n.length;p>l&&(p=l),l-=p,n.length-=p;do{i[o++]=m[f++]}while(--p);0===n.length&&(n.mode=ui);break;case mi:if(0===l)break e;i[o++]=n.length,l--,n.mode=ui;break;case gi:if(n.wrap){while(u<32){if(0===s)break e;s--,c|=r[a++]<<u,u+=8}if(h-=l,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?mr(n.check,i,h,o-h):fr(n.check,i,h,o-h)),h=l,(n.flags?c:Ai(c))!==n.check){e.msg="incorrect data check",n.mode=yi;break}c=0,u=0}n.mode=vi;case vi:if(n.wrap&&n.flags){while(u<32){if(0===s)break e;s--,c+=r[a++]<<u,u+=8}if(c!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=yi;break}c=0,u=0}n.mode=bi;case bi:S=Br;break e;case yi:S=Ur;break e;case wi:return jr;case Ei:default:return $r}return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<yi&&(n.mode<gi||t!==Lr))&&Bi(e,e.output,e.next_out,h-e.avail_out)?(n.mode=wi,jr):(d-=e.avail_in,h-=e.avail_out,e.total_in+=d,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?mr(n.check,i,h,e.next_out-h):fr(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===ti?128:0)+(n.mode===ci||n.mode===ii?256:0),(0===d&&0===h||t===Lr)&&S===Mr&&(S=Vr),S)}function $i(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}class Ui{constructor(){this.strm=new $i,this.chunkSize=102400,this.strm.output=new Uint8Array(this.chunkSize),this.windowBits=5,Ii(this.strm,this.windowBits)}setInput(e){e?(this.strm.input=e,this.strm.avail_in=this.strm.input.length,this.strm.next_in=0):(this.strm.input=null,this.strm.avail_in=0,this.strm.next_in=0)}inflate(e){e>this.chunkSize&&(this.chunkSize=e,this.strm.output=new Uint8Array(this.chunkSize)),this.strm.next_out=0,this.strm.avail_out=e;let t=Fi(this.strm,0);if(t<0)throw new Error("zlib inflate failed");if(this.strm.next_out!=e)throw new Error("Incomplete zlib block");return new Uint8Array(this.strm.output.buffer,0,this.strm.next_out)}reset(){Ti(this.strm)}}var ji=4,Vi=0,Ki=1,Hi=2;function Gi(e){var t=e.length;while(--t>=0)e[t]=0}var zi=0,qi=1,Xi=2,Wi=3,Yi=258,Qi=29,Ji=256,Zi=Ji+1+Qi,ea=30,ta=19,na=2*Zi+1,ra=15,ia=16,aa=7,oa=256,sa=16,la=17,ca=18,ua=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],da=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],pa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ma=new Array(2*(Zi+2));Gi(ma);var ga=new Array(2*ea);Gi(ga);var va=new Array(fa);Gi(va);var ba=new Array(Yi-Wi+1);Gi(ba);var ya=new Array(Qi);Gi(ya);var wa,Ea,_a,Sa=new Array(ea);function ka(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}function xa(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Aa(e){return e<256?va[e]:va[256+(e>>>7)]}function Na(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function Ca(e,t,n){e.bi_valid>ia-n?(e.bi_buf|=t<<e.bi_valid&65535,Na(e,e.bi_buf),e.bi_buf=t>>ia-e.bi_valid,e.bi_valid+=n-ia):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Ta(e,t,n){Ca(e,n[2*t],n[2*t+1])}function Ra(e,t){var n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}function Oa(e){16===e.bi_valid?(Na(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}function Ia(e,t){var n,r,i,a,o,s,l=t.dyn_tree,c=t.max_code,u=t.stat_desc.static_tree,d=t.stat_desc.has_stree,h=t.stat_desc.extra_bits,p=t.stat_desc.extra_base,f=t.stat_desc.max_length,m=0;for(a=0;a<=ra;a++)e.bl_count[a]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<na;n++)r=e.heap[n],a=l[2*l[2*r+1]+1]+1,a>f&&(a=f,m++),l[2*r+1]=a,r>c||(e.bl_count[a]++,o=0,r>=p&&(o=h[r-p]),s=l[2*r],e.opt_len+=s*(a+o),d&&(e.static_len+=s*(u[2*r+1]+o)));if(0!==m){do{a=f-1;while(0===e.bl_count[a])a--;e.bl_count[a]--,e.bl_count[a+1]+=2,e.bl_count[f]--,m-=2}while(m>0);for(a=f;0!==a;a--){r=e.bl_count[a];while(0!==r)i=e.heap[--n],i>c||(l[2*i+1]!==a&&(e.opt_len+=(a-l[2*i+1])*l[2*i],l[2*i+1]=a),r--)}}}function La(e,t,n){var r,i,a=new Array(ra+1),o=0;for(r=1;r<=ra;r++)a[r]=o=o+n[r-1]<<1;for(i=0;i<=t;i++){var s=e[2*i+1];0!==s&&(e[2*i]=Ra(a[s]++,s))}}function Da(){var e,t,n,r,i,a=new Array(ra+1);for(n=0,r=0;r<Qi-1;r++)for(ya[r]=n,e=0;e<1<<ua[r];e++)ba[n++]=r;for(ba[n-1]=r,i=0,r=0;r<16;r++)for(Sa[r]=i,e=0;e<1<<da[r];e++)va[i++]=r;for(i>>=7;r<ea;r++)for(Sa[r]=i<<7,e=0;e<1<<da[r]-7;e++)va[256+i++]=r;for(t=0;t<=ra;t++)a[t]=0;e=0;while(e<=143)ma[2*e+1]=8,e++,a[8]++;while(e<=255)ma[2*e+1]=9,e++,a[9]++;while(e<=279)ma[2*e+1]=7,e++,a[7]++;while(e<=287)ma[2*e+1]=8,e++,a[8]++;for(La(ma,Zi+1,a),e=0;e<ea;e++)ga[2*e+1]=5,ga[2*e]=Ra(e,5);wa=new ka(ma,ua,Ji+1,Zi,ra),Ea=new ka(ga,da,0,ea,ra),_a=new ka(new Array(0),ha,0,ta,aa)}function Pa(e){var t;for(t=0;t<Zi;t++)e.dyn_ltree[2*t]=0;for(t=0;t<ea;t++)e.dyn_dtree[2*t]=0;for(t=0;t<ta;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*oa]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Ma(e){e.bi_valid>8?Na(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Ba(e,t,n,r){Ma(e),r&&(Na(e,n),Na(e,~n)),ur(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function Fa(e,t,n,r){var i=2*t,a=2*n;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function $a(e,t,n){var r=e.heap[n],i=n<<1;while(i<=e.heap_len){if(i<e.heap_len&&Fa(t,e.heap[i+1],e.heap[i],e.depth)&&i++,Fa(t,r,e.heap[i],e.depth))break;e.heap[n]=e.heap[i],n=i,i<<=1}e.heap[n]=r}function Ua(e,t,n){var r,i,a,o,s=0;if(0!==e.last_lit)do{r=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],i=e.pending_buf[e.l_buf+s],s++,0===r?Ta(e,i,t):(a=ba[i],Ta(e,a+Ji+1,t),o=ua[a],0!==o&&(i-=ya[a],Ca(e,i,o)),r--,a=Aa(r),Ta(e,a,n),o=da[a],0!==o&&(r-=Sa[a],Ca(e,r,o)))}while(s<e.last_lit);Ta(e,oa,t)}function ja(e,t){var n,r,i,a=t.dyn_tree,o=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=na,n=0;n<l;n++)0!==a[2*n]?(e.heap[++e.heap_len]=c=n,e.depth[n]=0):a[2*n+1]=0;while(e.heap_len<2)i=e.heap[++e.heap_len]=c<2?++c:0,a[2*i]=1,e.depth[i]=0,e.opt_len--,s&&(e.static_len-=o[2*i+1]);for(t.max_code=c,n=e.heap_len>>1;n>=1;n--)$a(e,a,n);i=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],$a(e,a,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,a[2*i]=a[2*n]+a[2*r],e.depth[i]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,a[2*n+1]=a[2*r+1]=i,e.heap[1]=i++,$a(e,a,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Ia(e,t),La(a,c,e.bl_count)}function Va(e,t,n){var r,i,a=-1,o=t[1],s=0,l=7,c=4;for(0===o&&(l=138,c=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)i=o,o=t[2*(r+1)+1],++s<l&&i===o||(s<c?e.bl_tree[2*i]+=s:0!==i?(i!==a&&e.bl_tree[2*i]++,e.bl_tree[2*sa]++):s<=10?e.bl_tree[2*la]++:e.bl_tree[2*ca]++,s=0,a=i,0===o?(l=138,c=3):i===o?(l=6,c=3):(l=7,c=4))}function Ka(e,t,n){var r,i,a=-1,o=t[1],s=0,l=7,c=4;for(0===o&&(l=138,c=3),r=0;r<=n;r++)if(i=o,o=t[2*(r+1)+1],!(++s<l&&i===o)){if(s<c)do{Ta(e,i,e.bl_tree)}while(0!==--s);else 0!==i?(i!==a&&(Ta(e,i,e.bl_tree),s--),Ta(e,sa,e.bl_tree),Ca(e,s-3,2)):s<=10?(Ta(e,la,e.bl_tree),Ca(e,s-3,3)):(Ta(e,ca,e.bl_tree),Ca(e,s-11,7));s=0,a=i,0===o?(l=138,c=3):i===o?(l=6,c=3):(l=7,c=4)}}function Ha(e){var t;for(Va(e,e.dyn_ltree,e.l_desc.max_code),Va(e,e.dyn_dtree,e.d_desc.max_code),ja(e,e.bl_desc),t=ta-1;t>=3;t--)if(0!==e.bl_tree[2*pa[t]+1])break;return e.opt_len+=3*(t+1)+5+5+4,t}function Ga(e,t,n,r){var i;for(Ca(e,t-257,5),Ca(e,n-1,5),Ca(e,r-4,4),i=0;i<r;i++)Ca(e,e.bl_tree[2*pa[i]+1],3);Ka(e,e.dyn_ltree,t-1),Ka(e,e.dyn_dtree,n-1)}function za(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return Vi;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return Ki;for(t=32;t<Ji;t++)if(0!==e.dyn_ltree[2*t])return Ki;return Vi}Gi(Sa);var qa=!1;function Xa(e){qa||(Da(),qa=!0),e.l_desc=new xa(e.dyn_ltree,wa),e.d_desc=new xa(e.dyn_dtree,Ea),e.bl_desc=new xa(e.bl_tree,_a),e.bi_buf=0,e.bi_valid=0,Pa(e)}function Wa(e,t,n,r){Ca(e,(zi<<1)+(r?1:0),3),Ba(e,t,n,!0)}function Ya(e){Ca(e,qi<<1,3),Ta(e,oa,ma),Oa(e)}function Qa(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===Hi&&(e.strm.data_type=za(e)),ja(e,e.l_desc),ja(e,e.d_desc),o=Ha(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&-1!==t?Wa(e,t,n,r):e.strategy===ji||a===i?(Ca(e,(qi<<1)+(r?1:0),3),Ua(e,ma,ga)):(Ca(e,(Xi<<1)+(r?1:0),3),Ga(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Ua(e,e.dyn_ltree,e.dyn_dtree)),Pa(e),r&&Ma(e)}function Ja(e,t,n){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(ba[n]+Ji+1)]++,e.dyn_dtree[2*Aa(t)]++),e.last_lit===e.lit_bufsize-1}var Za={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};const eo=0,to=1,no=3,ro=4,io=5,ao=0,oo=1,so=-2,lo=-5,co=-1,uo=1,ho=2,po=3,fo=4,mo=0,go=2,vo=8;var bo,yo=9,wo=15,Eo=8,_o=29,So=256,ko=So+1+_o,xo=30,Ao=19,No=2*ko+1,Co=15,To=3,Ro=258,Oo=Ro+To+1,Io=32,Lo=42,Do=69,Po=73,Mo=91,Bo=103,Fo=113,$o=666,Uo=1,jo=2,Vo=3,Ko=4,Ho=3;function Go(e,t){return e.msg=Za[t],t}function zo(e){return(e<<1)-(e>4?9:0)}function qo(e){var t=e.length;while(--t>=0)e[t]=0}function Xo(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(ur(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function Wo(e,t){Qa(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xo(e.strm)}function Yo(e,t){e.pending_buf[e.pending++]=t}function Qo(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function Jo(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),0===i?0:(e.avail_in-=i,ur(t,e.input,e.next_in,i,n),1===e.state.wrap?e.adler=fr(e.adler,t,i,n):2===e.state.wrap&&(e.adler=mr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function Zo(e,t){var n,r,i=e.max_chain_length,a=e.strstart,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-Oo?e.strstart-(e.w_size-Oo):0,c=e.window,u=e.w_mask,d=e.prev,h=e.strstart+Ro,p=c[a+o-1],f=c[a+o];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(n=t,c[n+o]===f&&c[n+o-1]===p&&c[n]===c[a]&&c[++n]===c[a+1]){a+=2,n++;do{}while(c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&a<h);if(r=Ro-(h-a),a=h-Ro,r>o){if(e.match_start=t,o=r,r>=s)break;p=c[a+o-1],f=c[a+o]}}}while((t=d[t&u])>l&&0!==--i);return o<=e.lookahead?o:e.lookahead}function es(e){var t,n,r,i,a,o=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=o+(o-Oo)){ur(e.window,e.window,o,o,0),e.match_start-=o,e.strstart-=o,e.block_start-=o,n=e.hash_size,t=n;do{r=e.head[--t],e.head[t]=r>=o?r-o:0}while(--n);n=o,t=n;do{r=e.prev[--t],e.prev[t]=r>=o?r-o:0}while(--n);i+=o}if(0===e.strm.avail_in)break;if(n=Jo(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=n,e.lookahead+e.insert>=To){a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+1])&e.hash_mask;while(e.insert)if(e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+To-1])&e.hash_mask,e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,e.lookahead+e.insert<To)break}}while(e.lookahead<Oo&&0!==e.strm.avail_in)}function ts(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(es(e),0===e.lookahead&&t===eo)return Uo;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,Wo(e,!1),0===e.strm.avail_out))return Uo;if(e.strstart-e.block_start>=e.w_size-Oo&&(Wo(e,!1),0===e.strm.avail_out))return Uo}return e.insert=0,t===ro?(Wo(e,!0),0===e.strm.avail_out?Vo:Ko):(e.strstart>e.block_start&&(Wo(e,!1),e.strm.avail_out),Uo)}function ns(e,t){for(var n,r;;){if(e.lookahead<Oo){if(es(e),e.lookahead<Oo&&t===eo)return Uo;if(0===e.lookahead)break}if(n=0,e.lookahead>=To&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+To-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-Oo&&(e.match_length=Zo(e,n)),e.match_length>=To)if(r=Ja(e,e.strstart-e.match_start,e.match_length-To),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=To){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+To-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!==--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=Ja(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Wo(e,!1),0===e.strm.avail_out))return Uo}return e.insert=e.strstart<To-1?e.strstart:To-1,t===ro?(Wo(e,!0),0===e.strm.avail_out?Vo:Ko):e.last_lit&&(Wo(e,!1),0===e.strm.avail_out)?Uo:jo}function rs(e,t){for(var n,r,i;;){if(e.lookahead<Oo){if(es(e),e.lookahead<Oo&&t===eo)return Uo;if(0===e.lookahead)break}if(n=0,e.lookahead>=To&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+To-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=To-1,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Oo&&(e.match_length=Zo(e,n),e.match_length<=5&&(e.strategy===uo||e.match_length===To&&e.strstart-e.match_start>4096)&&(e.match_length=To-1)),e.prev_length>=To&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-To,r=Ja(e,e.strstart-1-e.prev_match,e.prev_length-To),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+To-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=To-1,e.strstart++,r&&(Wo(e,!1),0===e.strm.avail_out))return Uo}else if(e.match_available){if(r=Ja(e,0,e.window[e.strstart-1]),r&&Wo(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return Uo}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Ja(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<To-1?e.strstart:To-1,t===ro?(Wo(e,!0),0===e.strm.avail_out?Vo:Ko):e.last_lit&&(Wo(e,!1),0===e.strm.avail_out)?Uo:jo}function is(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=Ro){if(es(e),e.lookahead<=Ro&&t===eo)return Uo;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=To&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+Ro;do{}while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=Ro-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=To?(n=Ja(e,1,e.match_length-To),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Ja(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Wo(e,!1),0===e.strm.avail_out))return Uo}return e.insert=0,t===ro?(Wo(e,!0),0===e.strm.avail_out?Vo:Ko):e.last_lit&&(Wo(e,!1),0===e.strm.avail_out)?Uo:jo}function as(e,t){for(var n;;){if(0===e.lookahead&&(es(e),0===e.lookahead)){if(t===eo)return Uo;break}if(e.match_length=0,n=Ja(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Wo(e,!1),0===e.strm.avail_out))return Uo}return e.insert=0,t===ro?(Wo(e,!0),0===e.strm.avail_out?Vo:Ko):e.last_lit&&(Wo(e,!1),0===e.strm.avail_out)?Uo:jo}function os(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}function ss(e){e.window_size=2*e.w_size,qo(e.head),e.max_lazy_match=bo[e.level].max_lazy,e.good_match=bo[e.level].good_length,e.nice_match=bo[e.level].nice_length,e.max_chain_length=bo[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=To-1,e.match_available=0,e.ins_h=0}function ls(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=vo,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new hr(2*No),this.dyn_dtree=new hr(2*(2*xo+1)),this.bl_tree=new hr(2*(2*Ao+1)),qo(this.dyn_ltree),qo(this.dyn_dtree),qo(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new hr(Co+1),this.heap=new hr(2*ko+1),qo(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new hr(2*ko+1),qo(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function cs(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=go,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Lo:Fo,e.adler=2===t.wrap?0:1,t.last_flush=eo,Xa(t),ao):Go(e,so)}function us(e){var t=cs(e);return t===ao&&ss(e.state),t}function ds(e,t,n,r,i,a){if(!e)return so;var o=1;if(t===co&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>yo||n!==vo||r<8||r>15||t<0||t>9||a<0||a>fo)return Go(e,so);8===r&&(r=9);var s=new ls;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+To-1)/To),s.window=new dr(2*s.w_size),s.head=new hr(s.hash_size),s.prev=new hr(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new dr(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=a,s.method=n,us(e)}function hs(e,t){return ds(e,t,vo,wo,Eo,mo)}function ps(e,t){var n,r,i,a;if(!e||!e.state||t>io||t<0)return e?Go(e,so):so;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===$o&&t!==ro)return Go(e,0===e.avail_out?lo:so);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Lo)if(2===r.wrap)e.adler=0,Yo(r,31),Yo(r,139),Yo(r,8),r.gzhead?(Yo(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Yo(r,255&r.gzhead.time),Yo(r,r.gzhead.time>>8&255),Yo(r,r.gzhead.time>>16&255),Yo(r,r.gzhead.time>>24&255),Yo(r,9===r.level?2:r.strategy>=ho||r.level<2?4:0),Yo(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(Yo(r,255&r.gzhead.extra.length),Yo(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=mr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=Do):(Yo(r,0),Yo(r,0),Yo(r,0),Yo(r,0),Yo(r,0),Yo(r,9===r.level?2:r.strategy>=ho||r.level<2?4:0),Yo(r,Ho),r.status=Fo);else{var o=vo+(r.w_bits-8<<4)<<8,s=-1;s=r.strategy>=ho||r.level<2?0:r.level<6?1:6===r.level?2:3,o|=s<<6,0!==r.strstart&&(o|=Io),o+=31-o%31,r.status=Fo,Qo(r,o),0!==r.strstart&&(Qo(r,e.adler>>>16),Qo(r,65535&e.adler)),e.adler=1}if(r.status===Do)if(r.gzhead.extra){i=r.pending;while(r.gzindex<(65535&r.gzhead.extra.length)){if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mr(e.adler,r.pending_buf,r.pending-i,i)),Xo(e),i=r.pending,r.pending===r.pending_buf_size))break;Yo(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++}r.gzhead.hcrc&&r.pending>i&&(e.adler=mr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Po)}else r.status=Po;if(r.status===Po)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mr(e.adler,r.pending_buf,r.pending-i,i)),Xo(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}a=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,Yo(r,a)}while(0!==a);r.gzhead.hcrc&&r.pending>i&&(e.adler=mr(e.adler,r.pending_buf,r.pending-i,i)),0===a&&(r.gzindex=0,r.status=Mo)}else r.status=Mo;if(r.status===Mo)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=mr(e.adler,r.pending_buf,r.pending-i,i)),Xo(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}a=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,Yo(r,a)}while(0!==a);r.gzhead.hcrc&&r.pending>i&&(e.adler=mr(e.adler,r.pending_buf,r.pending-i,i)),0===a&&(r.status=Bo)}else r.status=Bo;if(r.status===Bo&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Xo(e),r.pending+2<=r.pending_buf_size&&(Yo(r,255&e.adler),Yo(r,e.adler>>8&255),e.adler=0,r.status=Fo)):r.status=Fo),0!==r.pending){if(Xo(e),0===e.avail_out)return r.last_flush=-1,ao}else if(0===e.avail_in&&zo(t)<=zo(n)&&t!==ro)return Go(e,lo);if(r.status===$o&&0!==e.avail_in)return Go(e,lo);if(0!==e.avail_in||0!==r.lookahead||t!==eo&&r.status!==$o){var l=r.strategy===ho?as(r,t):r.strategy===po?is(r,t):bo[r.level].func(r,t);if(l!==Vo&&l!==Ko||(r.status=$o),l===Uo||l===Vo)return 0===e.avail_out&&(r.last_flush=-1),ao;if(l===jo&&(t===to?Ya(r):t!==io&&(Wa(r,0,0,!1),t===no&&(qo(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),Xo(e),0===e.avail_out))return r.last_flush=-1,ao}return t!==ro?ao:r.wrap<=0?oo:(2===r.wrap?(Yo(r,255&e.adler),Yo(r,e.adler>>8&255),Yo(r,e.adler>>16&255),Yo(r,e.adler>>24&255),Yo(r,255&e.total_in),Yo(r,e.total_in>>8&255),Yo(r,e.total_in>>16&255),Yo(r,e.total_in>>24&255)):(Qo(r,e.adler>>>16),Qo(r,65535&e.adler)),Xo(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?ao:oo)}bo=[new os(0,0,0,0,ts),new os(4,4,8,4,ns),new os(4,5,16,8,ns),new os(4,6,32,32,ns),new os(4,4,16,16,rs),new os(8,16,32,32,rs),new os(8,16,128,128,rs),new os(8,32,128,256,rs),new os(32,128,258,1024,rs),new os(32,258,258,4096,rs)];class fs{constructor(){this.strm=new $i,this.chunkSize=102400,this.outputBuffer=new Uint8Array(this.chunkSize),this.windowBits=5,hs(this.strm,this.windowBits)}deflate(e){this.strm.input=e,this.strm.avail_in=this.strm.input.length,this.strm.next_in=0,this.strm.output=this.outputBuffer,this.strm.avail_out=this.chunkSize,this.strm.next_out=0;let t=ps(this.strm,no),n=new Uint8Array(this.strm.output.buffer,0,this.strm.next_out);if(t<0)throw new Error("zlib deflate failed");if(this.strm.avail_in>0){let e=[n],r=n.length;do{if(this.strm.output=new Uint8Array(this.chunkSize),this.strm.next_out=0,this.strm.avail_out=this.chunkSize,t=ps(this.strm,no),t<0)throw new Error("zlib deflate failed");let n=new Uint8Array(this.strm.output.buffer,0,this.strm.next_out);r+=n.length,e.push(n)}while(this.strm.avail_in>0);let i=new Uint8Array(r),a=0;for(let t=0;t<e.length;t++)i.set(e[t],a),a+=e[t].length;n=i}return this.strm.input=null,this.strm.avail_in=0,this.strm.next_in=0,n}}class ms{constructor(e){this._target=e||null,this._keyDownList={},this._pendingKey=null,this._altGrArmed=!1,this._eventHandlers={keyup:this._handleKeyUp.bind(this),keydown:this._handleKeyDown.bind(this),keypress:this._handleKeyPress.bind(this),blur:this._allKeysUp.bind(this),checkalt:this._checkAlt.bind(this)},this.onkeyevent=()=>{}}_sendKeyEvent(e,t,n){if(n)this._keyDownList[t]=e;else{if(!(t in this._keyDownList))return;delete this._keyDownList[t]}vn("onkeyevent "+(n?"down":"up")+", keysym: "+e,", code: "+t),this.onkeyevent(e,t,n)}_getKeyCode(e){const t=Pn(e);if("Unidentified"!==t)return t;if(e.keyCode&&"keypress"!==e.type&&229!==e.keyCode)return"Platform"+e.keyCode;if(e.keyIdentifier){if("U+"!==e.keyIdentifier.substr(0,2))return e.keyIdentifier;const t=parseInt(e.keyIdentifier.substr(2),16),n=String.fromCharCode(t).toUpperCase();return"Platform"+n.charCodeAt()}return"Unidentified"}_handleKeyDown(e){const t=this._getKeyCode(e);let n=Bn(e);if(this._altGrArmed&&(this._altGrArmed=!1,clearTimeout(this._altGrTimeout),"AltRight"===t&&e.timeStamp-this._altGrCtrlTime<50?n=an.XK_ISO_Level3_Shift:this._sendKeyEvent(an.XK_Control_L,"ControlLeft",!0)),"Unidentified"===t)return n&&(this._sendKeyEvent(n,t,!0),this._sendKeyEvent(n,t,!1)),void Zn(e);if(Tn()||On())switch(n){case an.XK_Super_L:n=an.XK_Alt_L;break;case an.XK_Super_R:n=an.XK_Super_L;break;case an.XK_Alt_L:n=an.XK_Mode_switch;break;case an.XK_Alt_R:n=an.XK_ISO_Level3_Shift;break}return t in this._keyDownList&&(n=this._keyDownList[t]),(Tn()||On())&&"CapsLock"===t?(this._sendKeyEvent(an.XK_Caps_Lock,"CapsLock",!0),this._sendKeyEvent(an.XK_Caps_Lock,"CapsLock",!1),void Zn(e)):n||e.key&&!In()&&!Ln()?(this._pendingKey=null,Zn(e),"ControlLeft"===t&&Rn()&&!("ControlLeft"in this._keyDownList)?(this._altGrArmed=!0,this._altGrTimeout=setTimeout(this._handleAltGrTimeout.bind(this),100),void(this._altGrCtrlTime=e.timeStamp)):void this._sendKeyEvent(n,t,!0)):(this._pendingKey=t,void setTimeout(this._handleKeyPressTimeout.bind(this),10,e))}_handleKeyPress(e){if(Zn(e),null===this._pendingKey)return;let t=this._getKeyCode(e);const n=Bn(e);"Unidentified"!==t&&t!=this._pendingKey||(t=this._pendingKey,this._pendingKey=null,n?this._sendKeyEvent(n,t,!0):bn("keypress with no keysym:",e))}_handleKeyPressTimeout(e){if(null===this._pendingKey)return;let t;const n=this._pendingKey;if(this._pendingKey=null,e.keyCode>=48&&e.keyCode<=57)t=e.keyCode;else if(e.keyCode>=65&&e.keyCode<=90){let n=String.fromCharCode(e.keyCode);n=e.shiftKey?n.toUpperCase():n.toLowerCase(),t=n.charCodeAt()}else t=0;this._sendKeyEvent(t,n,!0)}_handleKeyUp(e){Zn(e);const t=this._getKeyCode(e);if(this._altGrArmed&&(this._altGrArmed=!1,clearTimeout(this._altGrTimeout),this._sendKeyEvent(an.XK_Control_L,"ControlLeft",!0)),(Tn()||On())&&"CapsLock"===t)return this._sendKeyEvent(an.XK_Caps_Lock,"CapsLock",!0),void this._sendKeyEvent(an.XK_Caps_Lock,"CapsLock",!1);this._sendKeyEvent(this._keyDownList[t],t,!1),!Rn()||"ShiftLeft"!==t&&"ShiftRight"!==t||("ShiftRight"in this._keyDownList&&this._sendKeyEvent(this._keyDownList["ShiftRight"],"ShiftRight",!1),"ShiftLeft"in this._keyDownList&&this._sendKeyEvent(this._keyDownList["ShiftLeft"],"ShiftLeft",!1))}_handleAltGrTimeout(){this._altGrArmed=!1,clearTimeout(this._altGrTimeout),this._sendKeyEvent(an.XK_Control_L,"ControlLeft",!0)}_allKeysUp(){vn(">> Keyboard.allKeysUp");for(let e in this._keyDownList)this._sendKeyEvent(this._keyDownList[e],e,!1);vn("<< Keyboard.allKeysUp")}_checkAlt(e){if(e.skipCheckAlt)return;if(e.altKey)return;const t=this._target,n=this._keyDownList;["AltLeft","AltRight"].forEach((e=>{if(!(e in n))return;const r=new KeyboardEvent("keyup",{key:n[e],code:e});r.skipCheckAlt=!0,t.dispatchEvent(r)}))}grab(){if(this._target.addEventListener("keydown",this._eventHandlers.keydown),this._target.addEventListener("keyup",this._eventHandlers.keyup),this._target.addEventListener("keypress",this._eventHandlers.keypress),window.addEventListener("blur",this._eventHandlers.blur),Rn()&&Dn()){const e=this._eventHandlers.checkalt;["mousedown","mouseup","mousemove","wheel","touchstart","touchend","touchmove","keydown","keyup"].forEach((t=>document.addEventListener(t,e,{capture:!0,passive:!0})))}}ungrab(){if(Rn()&&Dn()){const e=this._eventHandlers.checkalt;["mousedown","mouseup","mousemove","wheel","touchstart","touchend","touchmove","keydown","keyup"].forEach((t=>document.removeEventListener(t,e)))}this._target.removeEventListener("keydown",this._eventHandlers.keydown),this._target.removeEventListener("keyup",this._eventHandlers.keyup),this._target.removeEventListener("keypress",this._eventHandlers.keypress),window.removeEventListener("blur",this._eventHandlers.blur),this._allKeysUp()}}const gs=0,vs=1,bs=2,ys=4,ws=8,Es=16,_s=32,Ss=64,ks=127,xs=50,As=90,Ns=250,Cs=1e3,Ts=1e3,Rs=50;class Os{constructor(){this._target=null,this._state=ks,this._tracked=[],this._ignored=[],this._waitingRelease=!1,this._releaseStart=0,this._longpressTimeoutId=null,this._twoTouchTimeoutId=null,this._boundEventHandler=this._eventHandler.bind(this)}attach(e){this.detach(),this._target=e,this._target.addEventListener("touchstart",this._boundEventHandler),this._target.addEventListener("touchmove",this._boundEventHandler),this._target.addEventListener("touchend",this._boundEventHandler),this._target.addEventListener("touchcancel",this._boundEventHandler)}detach(){this._target&&(this._stopLongpressTimeout(),this._stopTwoTouchTimeout(),this._target.removeEventListener("touchstart",this._boundEventHandler),this._target.removeEventListener("touchmove",this._boundEventHandler),this._target.removeEventListener("touchend",this._boundEventHandler),this._target.removeEventListener("touchcancel",this._boundEventHandler),this._target=null)}_eventHandler(e){let t;switch(e.stopPropagation(),e.preventDefault(),e.type){case"touchstart":t=this._touchStart;break;case"touchmove":t=this._touchMove;break;case"touchend":case"touchcancel":t=this._touchEnd;break}for(let n=0;n<e.changedTouches.length;n++){let r=e.changedTouches[n];t.call(this,r.identifier,r.clientX,r.clientY)}}_touchStart(e,t,n){if(this._hasDetectedGesture()||this._state===gs)this._ignored.push(e);else{if(this._tracked.length>0&&Date.now()-this._tracked[0].started>Ns)return this._state=gs,void this._ignored.push(e);if(this._waitingRelease)return this._state=gs,void this._ignored.push(e);switch(this._tracked.push({id:e,started:Date.now(),active:!0,firstX:t,firstY:n,lastX:t,lastY:n,angle:0}),this._tracked.length){case 1:this._startLongpressTimeout();break;case 2:this._state&=~(vs|ws|Es),this._stopLongpressTimeout();break;case 3:this._state&=~(bs|_s|Ss);break;default:this._state=gs}}}_touchMove(e,t,n){let r=this._tracked.find((t=>t.id===e));if(void 0===r)return;r.lastX=t,r.lastY=n;let i=t-r.firstX,a=n-r.firstY;if(r.firstX===r.lastX&&r.firstY===r.lastY||(r.angle=180*Math.atan2(a,i)/Math.PI),!this._hasDetectedGesture()){if(Math.hypot(i,a)<xs)return;if(this._state&=~(vs|bs|ys|Es),this._stopLongpressTimeout(),1!==this._tracked.length&&(this._state&=~ws),2!==this._tracked.length&&(this._state&=~(_s|Ss)),2===this._tracked.length){let t=this._tracked.find((t=>t.id!==e)),n=Math.hypot(t.firstX-t.lastX,t.firstY-t.lastY);if(n>xs){let e=Math.abs(r.angle-t.angle);e=Math.abs((e+180)%360-180),this._state&=e>As?~_s:~Ss,this._isTwoTouchTimeoutRunning()&&this._stopTwoTouchTimeout()}else this._isTwoTouchTimeoutRunning()||this._startTwoTouchTimeout()}if(!this._hasDetectedGesture())return;this._pushEvent("gesturestart")}this._pushEvent("gesturemove")}_touchEnd(e,t,n){if(-1!==this._ignored.indexOf(e))return this._ignored.splice(this._ignored.indexOf(e),1),void(0===this._ignored.length&&0===this._tracked.length&&(this._state=ks,this._waitingRelease=!1));if(!this._hasDetectedGesture()&&this._isTwoTouchTimeoutRunning()&&(this._stopTwoTouchTimeout(),this._state=gs),!this._hasDetectedGesture()&&(this._state&=~(ws|_s|Ss),this._state&=~Es,this._stopLongpressTimeout(),!this._waitingRelease))switch(this._releaseStart=Date.now(),this._waitingRelease=!0,this._tracked.length){case 1:this._state&=~(bs|ys);break;case 2:this._state&=~(vs|ys);break}if(this._waitingRelease){Date.now()-this._releaseStart>Ns&&(this._state=gs),this._tracked.some((e=>Date.now()-e.started>Cs))&&(this._state=gs);let t=this._tracked.find((t=>t.id===e));if(t.active=!1,this._hasDetectedGesture())this._pushEvent("gesturestart");else if(this._state!==gs)return}this._hasDetectedGesture()&&this._pushEvent("gestureend");for(let r=0;r<this._tracked.length;r++)this._tracked[r].active&&this._ignored.push(this._tracked[r].id);this._tracked=[],this._state=gs,-1!==this._ignored.indexOf(e)&&this._ignored.splice(this._ignored.indexOf(e),1),0===this._ignored.length&&(this._state=ks,this._waitingRelease=!1)}_hasDetectedGesture(){return this._state!==gs&&(!(this._state&this._state-1)&&!(this._state&(vs|bs|ys)&&this._tracked.some((e=>e.active))))}_startLongpressTimeout(){this._stopLongpressTimeout(),this._longpressTimeoutId=setTimeout((()=>this._longpressTimeout()),Ts)}_stopLongpressTimeout(){clearTimeout(this._longpressTimeoutId),this._longpressTimeoutId=null}_longpressTimeout(){if(this._hasDetectedGesture())throw new Error("A longpress gesture failed, conflict with a different gesture");this._state=Es,this._pushEvent("gesturestart")}_startTwoTouchTimeout(){this._stopTwoTouchTimeout(),this._twoTouchTimeoutId=setTimeout((()=>this._twoTouchTimeout()),Rs)}_stopTwoTouchTimeout(){clearTimeout(this._twoTouchTimeoutId),this._twoTouchTimeoutId=null}_isTwoTouchTimeoutRunning(){return null!==this._twoTouchTimeoutId}_twoTouchTimeout(){if(0===this._tracked.length)throw new Error("A pinch or two drag gesture failed, no tracked touches");let e=this._getAverageMovement(),t=Math.abs(e.x),n=Math.abs(e.y),r=this._getAverageDistance(),i=Math.abs(Math.hypot(r.first.x,r.first.y)-Math.hypot(r.last.x,r.last.y));this._state=n<i&&t<i?Ss:_s,this._pushEvent("gesturestart"),this._pushEvent("gesturemove")}_pushEvent(e){let t={type:this._stateToGesture(this._state)},n=this._getPosition(),r=n.last;switch("gesturestart"===e&&(r=n.first),this._state){case _s:case Ss:r=n.first;break}if(t["clientX"]=r.x,t["clientY"]=r.y,this._state===Ss){let n=this._getAverageDistance();"gesturestart"===e?(t["magnitudeX"]=n.first.x,t["magnitudeY"]=n.first.y):(t["magnitudeX"]=n.last.x,t["magnitudeY"]=n.last.y)}else if(this._state===_s)if("gesturestart"===e)t["magnitudeX"]=0,t["magnitudeY"]=0;else{let e=this._getAverageMovement();t["magnitudeX"]=e.x,t["magnitudeY"]=e.y}let i=new CustomEvent(e,{detail:t});this._target.dispatchEvent(i)}_stateToGesture(e){switch(e){case vs:return"onetap";case bs:return"twotap";case ys:return"threetap";case ws:return"drag";case Es:return"longpress";case _s:return"twodrag";case Ss:return"pinch"}throw new Error("Unknown gesture state: "+e)}_getPosition(){if(0===this._tracked.length)throw new Error("Failed to get gesture position, no tracked touches");let e=this._tracked.length,t=0,n=0,r=0,i=0;for(let a=0;a<this._tracked.length;a++)t+=this._tracked[a].firstX,n+=this._tracked[a].firstY,r+=this._tracked[a].lastX,i+=this._tracked[a].lastY;return{first:{x:t/e,y:n/e},last:{x:r/e,y:i/e}}}_getAverageMovement(){if(0===this._tracked.length)throw new Error("Failed to get gesture movement, no tracked touches");let e,t;e=t=0;let n=this._tracked.length;for(let r=0;r<this._tracked.length;r++)e+=this._tracked[r].lastX-this._tracked[r].firstX,t+=this._tracked[r].lastY-this._tracked[r].firstY;return{x:e/n,y:t/n}}_getAverageDistance(){if(0===this._tracked.length)throw new Error("Failed to get gesture distance, no tracked touches");let e=this._tracked[0],t=this._tracked[this._tracked.length-1],n=Math.abs(t.firstX-e.firstX),r=Math.abs(t.firstY-e.firstY),i=Math.abs(t.lastX-e.lastX),a=Math.abs(t.lastY-e.lastY);return{first:{x:n,y:r},last:{x:i,y:a}}}}const Is=!xn||_n;class Ls{constructor(){this._target=null,this._canvas=document.createElement("canvas"),Is&&(this._canvas.style.position="fixed",this._canvas.style.zIndex="65535",this._canvas.style.pointerEvents="none",this._canvas.style.visibility="hidden"),this._position={x:0,y:0},this._hotSpot={x:0,y:0},this._eventHandlers={mouseover:this._handleMouseOver.bind(this),mouseleave:this._handleMouseLeave.bind(this),mousemove:this._handleMouseMove.bind(this),mouseup:this._handleMouseUp.bind(this)}}attach(e){if(this._target&&this.detach(),this._target=e,Is){document.body.appendChild(this._canvas);const e={capture:!0,passive:!0};this._target.addEventListener("mouseover",this._eventHandlers.mouseover,e),this._target.addEventListener("mouseleave",this._eventHandlers.mouseleave,e),this._target.addEventListener("mousemove",this._eventHandlers.mousemove,e),this._target.addEventListener("mouseup",this._eventHandlers.mouseup,e)}this.clear()}detach(){if(this._target){if(Is){const e={capture:!0,passive:!0};this._target.removeEventListener("mouseover",this._eventHandlers.mouseover,e),this._target.removeEventListener("mouseleave",this._eventHandlers.mouseleave,e),this._target.removeEventListener("mousemove",this._eventHandlers.mousemove,e),this._target.removeEventListener("mouseup",this._eventHandlers.mouseup,e),document.body.removeChild(this._canvas)}this._target=null}}change(e,t,n,r,i){if(0===r||0===i)return void this.clear();this._position.x=this._position.x+this._hotSpot.x-t,this._position.y=this._position.y+this._hotSpot.y-n,this._hotSpot.x=t,this._hotSpot.y=n;let a,o=this._canvas.getContext("2d");this._canvas.width=r,this._canvas.height=i;try{a=new ImageData(new Uint8ClampedArray(e),r,i)}catch(Fk){a=o.createImageData(r,i),a.data.set(new Uint8ClampedArray(e))}if(o.clearRect(0,0,r,i),o.putImageData(a,0,0),Is)this._updatePosition();else{let e=this._canvas.toDataURL();this._target.style.cursor="url("+e+")"+t+" "+n+", default"}}clear(){this._target.style.cursor="none",this._canvas.width=0,this._canvas.height=0,this._position.x=this._position.x+this._hotSpot.x,this._position.y=this._position.y+this._hotSpot.y,this._hotSpot.x=0,this._hotSpot.y=0}move(e,t){if(!Is)return;window.visualViewport?(this._position.x=e+window.visualViewport.offsetLeft,this._position.y=t+window.visualViewport.offsetTop):(this._position.x=e,this._position.y=t),this._updatePosition();let n=document.elementFromPoint(e,t);this._updateVisibility(n)}_handleMouseOver(e){this._handleMouseMove(e)}_handleMouseLeave(e){this._updateVisibility(e.relatedTarget)}_handleMouseMove(e){this._updateVisibility(e.target),this._position.x=e.clientX-this._hotSpot.x,this._position.y=e.clientY-this._hotSpot.y,this._updatePosition()}_handleMouseUp(e){let t=document.elementFromPoint(e.clientX,e.clientY);this._updateVisibility(t),this._captureIsActive()&&window.setTimeout((()=>{this._target&&(t=document.elementFromPoint(e.clientX,e.clientY),this._updateVisibility(t))}),0)}_showCursor(){"hidden"===this._canvas.style.visibility&&(this._canvas.style.visibility="")}_hideCursor(){"hidden"!==this._canvas.style.visibility&&(this._canvas.style.visibility="hidden")}_shouldShowCursor(e){return!!e&&(e===this._target||!!this._target.contains(e)&&"none"===window.getComputedStyle(e).cursor)}_updateVisibility(e){this._captureIsActive()&&(e=document.captureElement),this._shouldShowCursor(e)?this._showCursor():this._hideCursor()}_updatePosition(){this._canvas.style.left=this._position.x+"px",this._canvas.style.top=this._position.y+"px"}_captureIsActive(){return document.captureElement&&document.documentElement.contains(document.captureElement)}}const Ds=!1,Ps=41943040;class Ms{constructor(){this._websocket=null,this._rQi=0,this._rQlen=0,this._rQbufferSize=4194304,this._rQ=null,this._sQbufferSize=10240,this._sQlen=0,this._sQ=null,this._eventHandlers={message:()=>{},open:()=>{},close:()=>{},error:()=>{}}}get sQ(){return this._sQ}get rQ(){return this._rQ}get rQi(){return this._rQi}set rQi(e){this._rQi=e}get rQlen(){return this._rQlen-this._rQi}rQpeek8(){return this._rQ[this._rQi]}rQskipBytes(e){this._rQi+=e}rQshift8(){return this._rQshift(1)}rQshift16(){return this._rQshift(2)}rQshift32(){return this._rQshift(4)}_rQshift(e){let t=0;for(let n=e-1;n>=0;n--)t+=this._rQ[this._rQi++]<<8*n;return t}rQshiftStr(e){"undefined"===typeof e&&(e=this.rQlen);let t="";for(let n=0;n<e;n+=4096){let r=this.rQshiftBytes(Math.min(4096,e-n));t+=String.fromCharCode.apply(null,r)}return t}rQshiftBytes(e){return"undefined"===typeof e&&(e=this.rQlen),this._rQi+=e,new Uint8Array(this._rQ.buffer,this._rQi-e,e)}rQshiftTo(e,t){void 0===t&&(t=this.rQlen),e.set(new Uint8Array(this._rQ.buffer,this._rQi,t)),this._rQi+=t}rQslice(e,t=this.rQlen){return new Uint8Array(this._rQ.buffer,this._rQi+e,t-e)}rQwait(e,t,n){if(this.rQlen<t){if(n){if(this._rQi<n)throw new Error("rQwait cannot backup "+n+" bytes");this._rQi-=n}return!0}return!1}flush(){this._sQlen>0&&this._websocket.readyState===WebSocket.OPEN&&(this._websocket.send(this._encodeMessage()),this._sQlen=0)}send(e){this._sQ.set(e,this._sQlen),this._sQlen+=e.length,this.flush()}sendString(e){this.send(e.split("").map((e=>e.charCodeAt(0))))}off(e){this._eventHandlers[e]=()=>{}}on(e,t){this._eventHandlers[e]=t}_allocateBuffers(){this._rQ=new Uint8Array(this._rQbufferSize),this._sQ=new Uint8Array(this._sQbufferSize)}init(){this._allocateBuffers(),this._rQi=0,this._websocket=null}open(e,t){this.init(),this._websocket=new WebSocket(e,t),this._websocket.binaryType="arraybuffer",this._websocket.onmessage=this._recvMessage.bind(this),this._websocket.onopen=()=>{vn(">> WebSock.onopen"),this._websocket.protocol&&bn("Server choose sub-protocol: "+this._websocket.protocol),this._eventHandlers.open(),vn("<< WebSock.onopen")},this._websocket.onclose=e=>{vn(">> WebSock.onclose"),this._eventHandlers.close(e),vn("<< WebSock.onclose")},this._websocket.onerror=e=>{vn(">> WebSock.onerror: "+e),this._eventHandlers.error(e),vn("<< WebSock.onerror: "+e)}}close(){this._websocket&&(this._websocket.readyState!==WebSocket.OPEN&&this._websocket.readyState!==WebSocket.CONNECTING||(bn("Closing WebSocket connection"),this._websocket.close()),this._websocket.onmessage=()=>{})}_encodeMessage(){return new Uint8Array(this._sQ.buffer,0,this._sQlen)}_expandCompactRQ(e){const t=8*(this._rQlen-this._rQi+e),n=this._rQbufferSize<t;if(n&&(this._rQbufferSize=Math.max(2*this._rQbufferSize,t)),this._rQbufferSize>Ps&&(this._rQbufferSize=Ps,this._rQbufferSize-this.rQlen<e))throw new Error("Receive Queue buffer exceeded "+Ps+" bytes, and the new message could not fit");if(n){const e=this._rQ.buffer;this._rQ=new Uint8Array(this._rQbufferSize),this._rQ.set(new Uint8Array(e,this._rQi,this._rQlen-this._rQi))}else Ds?this._rQ.copyWithin(0,this._rQi,this._rQlen):this._rQ.set(new Uint8Array(this._rQ.buffer,this._rQi,this._rQlen-this._rQi));this._rQlen=this._rQlen-this._rQi,this._rQi=0}_DecodeMessage(e){const t=new Uint8Array(e);t.length>this._rQbufferSize-this._rQlen&&this._expandCompactRQ(t.length),this._rQ.set(t,this._rQlen),this._rQlen+=t.length}_recvMessage(e){this._DecodeMessage(e.data),this.rQlen>0?(this._eventHandlers.message(),this._rQlen==this._rQi&&(this._rQlen=0,this._rQi=0)):vn("Ignoring empty message")}}const Bs=[13,16,10,23,0,4,2,27,14,5,20,9,22,18,11,3,25,7,15,6,26,19,12,1,40,51,30,36,46,54,29,39,50,44,32,47,43,48,38,55,33,52,45,41,49,35,28,31],Fs=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],$s=0;let Us,js,Vs,Ks,Hs,Gs;Us=65536,js=1<<24,Vs=Us|js,Ks=4,Hs=1024,Gs=Ks|Hs;const zs=[Vs|Hs,0|$s,Us|$s,Vs|Gs,Vs|Ks,Us|Gs,$s|Ks,Us|$s,$s|Hs,Vs|Hs,Vs|Gs,$s|Hs,js|Gs,Vs|Ks,js|$s,$s|Ks,$s|Gs,js|Hs,js|Hs,Us|Hs,Us|Hs,Vs|$s,Vs|$s,js|Gs,Us|Ks,js|Ks,js|Ks,Us|Ks,0|$s,$s|Gs,Us|Gs,js|$s,Us|$s,Vs|Gs,$s|Ks,Vs|$s,Vs|Hs,js|$s,js|$s,$s|Hs,Vs|Ks,Us|$s,Us|Hs,js|Ks,$s|Hs,$s|Ks,js|Gs,Us|Gs,Vs|Gs,Us|Ks,Vs|$s,js|Gs,js|Ks,$s|Gs,Us|Gs,Vs|Hs,$s|Gs,js|Hs,js|Hs,0|$s,Us|Ks,Us|Hs,0|$s,Vs|Ks];Us=1<<20,js=1<<31,Vs=Us|js,Ks=32,Hs=32768,Gs=Ks|Hs;const qs=[Vs|Gs,js|Hs,$s|Hs,Us|Gs,Us|$s,$s|Ks,Vs|Ks,js|Gs,js|Ks,Vs|Gs,Vs|Hs,js|$s,js|Hs,Us|$s,$s|Ks,Vs|Ks,Us|Hs,Us|Ks,js|Gs,0|$s,js|$s,$s|Hs,Us|Gs,Vs|$s,Us|Ks,js|Ks,0|$s,Us|Hs,$s|Gs,Vs|Hs,Vs|$s,$s|Gs,0|$s,Us|Gs,Vs|Ks,Us|$s,js|Gs,Vs|$s,Vs|Hs,$s|Hs,Vs|$s,js|Hs,$s|Ks,Vs|Gs,Us|Gs,$s|Ks,$s|Hs,js|$s,$s|Gs,Vs|Hs,Us|$s,js|Ks,Us|Ks,js|Gs,js|Ks,Us|Ks,Us|Hs,0|$s,js|Hs,$s|Gs,js|$s,Vs|Ks,Vs|Gs,Us|Hs];Us=1<<17,js=1<<27,Vs=Us|js,Ks=8,Hs=512,Gs=Ks|Hs;const Xs=[$s|Gs,Vs|Hs,0|$s,Vs|Ks,js|Hs,0|$s,Us|Gs,js|Hs,Us|Ks,js|Ks,js|Ks,Us|$s,Vs|Gs,Us|Ks,Vs|$s,$s|Gs,js|$s,$s|Ks,Vs|Hs,$s|Hs,Us|Hs,Vs|$s,Vs|Ks,Us|Gs,js|Gs,Us|Hs,Us|$s,js|Gs,$s|Ks,Vs|Gs,$s|Hs,js|$s,Vs|Hs,js|$s,Us|Ks,$s|Gs,Us|$s,Vs|Hs,js|Hs,0|$s,$s|Hs,Us|Ks,Vs|Gs,js|Hs,js|Ks,$s|Hs,0|$s,Vs|Ks,js|Gs,Us|$s,js|$s,Vs|Gs,$s|Ks,Us|Gs,Us|Hs,js|Ks,Vs|$s,js|Gs,$s|Gs,Vs|$s,Us|Gs,$s|Ks,Vs|Ks,Us|Hs];Us=8192,js=1<<23,Vs=Us|js,Ks=1,Hs=128,Gs=Ks|Hs;const Ws=[Vs|Ks,Us|Gs,Us|Gs,$s|Hs,Vs|Hs,js|Gs,js|Ks,Us|Ks,0|$s,Vs|$s,Vs|$s,Vs|Gs,$s|Gs,0|$s,js|Hs,js|Ks,$s|Ks,Us|$s,js|$s,Vs|Ks,$s|Hs,js|$s,Us|Ks,Us|Hs,js|Gs,$s|Ks,Us|Hs,js|Hs,Us|$s,Vs|Hs,Vs|Gs,$s|Gs,js|Hs,js|Ks,Vs|$s,Vs|Gs,$s|Gs,0|$s,0|$s,Vs|$s,Us|Hs,js|Hs,js|Gs,$s|Ks,Vs|Ks,Us|Gs,Us|Gs,$s|Hs,Vs|Gs,$s|Gs,$s|Ks,Us|$s,js|Ks,Us|Ks,Vs|Hs,js|Gs,Us|Ks,Us|Hs,js|$s,Vs|Ks,$s|Hs,js|$s,Us|$s,Vs|Hs];Us=1<<25,js=1<<30,Vs=Us|js,Ks=256,Hs=1<<19,Gs=Ks|Hs;const Ys=[$s|Ks,Us|Gs,Us|Hs,Vs|Ks,$s|Hs,$s|Ks,js|$s,Us|Hs,js|Gs,$s|Hs,Us|Ks,js|Gs,Vs|Ks,Vs|Hs,$s|Gs,js|$s,Us|$s,js|Hs,js|Hs,0|$s,js|Ks,Vs|Gs,Vs|Gs,Us|Ks,Vs|Hs,js|Ks,0|$s,Vs|$s,Us|Gs,Us|$s,Vs|$s,$s|Gs,$s|Hs,Vs|Ks,$s|Ks,Us|$s,js|$s,Us|Hs,Vs|Ks,js|Gs,Us|Ks,js|$s,Vs|Hs,Us|Gs,js|Gs,$s|Ks,Us|$s,Vs|Hs,Vs|Gs,$s|Gs,Vs|$s,Vs|Gs,Us|Hs,0|$s,js|Hs,Vs|$s,$s|Gs,Us|Ks,js|Ks,$s|Hs,0|$s,js|Hs,Us|Gs,js|Ks];Us=1<<22,js=1<<29,Vs=Us|js,Ks=16,Hs=16384,Gs=Ks|Hs;const Qs=[js|Ks,Vs|$s,$s|Hs,Vs|Gs,Vs|$s,$s|Ks,Vs|Gs,Us|$s,js|Hs,Us|Gs,Us|$s,js|Ks,Us|Ks,js|Hs,js|$s,$s|Gs,0|$s,Us|Ks,js|Gs,$s|Hs,Us|Hs,js|Gs,$s|Ks,Vs|Ks,Vs|Ks,0|$s,Us|Gs,Vs|Hs,$s|Gs,Us|Hs,Vs|Hs,js|$s,js|Hs,$s|Ks,Vs|Ks,Us|Hs,Vs|Gs,Us|$s,$s|Gs,js|Ks,Us|$s,js|Hs,js|$s,$s|Gs,js|Ks,Vs|Gs,Us|Hs,Vs|$s,Us|Gs,Vs|Hs,0|$s,Vs|Ks,$s|Ks,$s|Hs,Vs|$s,Us|Gs,$s|Hs,Us|Ks,js|Gs,0|$s,Vs|Hs,js|$s,Us|Ks,js|Gs];Us=1<<21,js=1<<26,Vs=Us|js,Ks=2,Hs=2048,Gs=Ks|Hs;const Js=[Us|$s,Vs|Ks,js|Gs,0|$s,$s|Hs,js|Gs,Us|Gs,Vs|Hs,Vs|Gs,Us|$s,0|$s,js|Ks,$s|Ks,js|$s,Vs|Ks,$s|Gs,js|Hs,Us|Gs,Us|Ks,js|Hs,js|Ks,Vs|$s,Vs|Hs,Us|Ks,Vs|$s,$s|Hs,$s|Gs,Vs|Gs,Us|Hs,$s|Ks,js|$s,Us|Hs,js|$s,Us|Hs,Us|$s,js|Gs,js|Gs,Vs|Ks,Vs|Ks,$s|Ks,Us|Ks,js|$s,js|Hs,Us|$s,Vs|Hs,$s|Gs,Us|Gs,Vs|Hs,$s|Gs,js|Ks,Vs|Gs,Vs|$s,Us|Hs,0|$s,$s|Ks,Vs|Gs,0|$s,Us|Gs,Vs|$s,$s|Hs,js|Ks,js|Hs,$s|Hs,Us|Ks];Us=1<<18,js=1<<28,Vs=Us|js,Ks=64,Hs=4096,Gs=Ks|Hs;const Zs=[js|Gs,$s|Hs,Us|$s,Vs|Gs,js|$s,js|Gs,$s|Ks,js|$s,Us|Ks,Vs|$s,Vs|Gs,Us|Hs,Vs|Hs,Us|Gs,$s|Hs,$s|Ks,Vs|$s,js|Ks,js|Hs,$s|Gs,Us|Hs,Us|Ks,Vs|Ks,Vs|Hs,$s|Gs,0|$s,0|$s,Vs|Ks,js|Ks,js|Hs,Us|Gs,Us|$s,Us|Gs,Us|$s,Vs|Hs,$s|Hs,$s|Ks,Vs|Ks,$s|Hs,Us|Gs,js|Hs,$s|Ks,js|Ks,Vs|$s,Vs|Ks,js|$s,Us|$s,js|Gs,0|$s,Vs|Gs,Us|Ks,js|Ks,Vs|$s,js|Hs,js|Gs,0|$s,Vs|Gs,Us|Hs,Us|Hs,$s|Gs,$s|Gs,Us|Ks,js|$s,Vs|Hs];class el{constructor(e){this.keys=[];const t=[],n=[],r=[];for(let i=0,a=56;i<56;++i,a-=8){a+=a<-5?65:a<-3?31:a<-1?63:27===a?35:0;const n=7&a;t[i]=0!==(e[a>>>3]&1<<n)?1:0}for(let i=0;i<16;++i){const e=i<<1,a=e+1;r[e]=r[a]=0;for(let r=28;r<59;r+=28)for(let e=r-28;e<r;++e){const a=e+Fs[i];n[e]=a<r?t[a]:t[a-28]}for(let t=0;t<24;++t)0!==n[Bs[t]]&&(r[e]|=1<<23-t),0!==n[Bs[t+24]]&&(r[a]|=1<<23-t)}for(let i=0,a=0,o=0;i<16;++i){const e=r[a++],t=r[a++];this.keys[o]=(16515072&e)<<6,this.keys[o]|=(4032&e)<<10,this.keys[o]|=(16515072&t)>>>10,this.keys[o]|=(4032&t)>>>6,++o,this.keys[o]=(258048&e)<<12,this.keys[o]|=(63&e)<<16,this.keys[o]|=(258048&t)>>>4,this.keys[o]|=63&t,++o}}enc8(e){const t=e.slice();let n,r,i,a=0;n=t[a++]<<24|t[a++]<<16|t[a++]<<8|t[a++],r=t[a++]<<24|t[a++]<<16|t[a++]<<8|t[a++],i=252645135&(n>>>4^r),r^=i,n^=i<<4,i=65535&(n>>>16^r),r^=i,n^=i<<16,i=858993459&(r>>>2^n),n^=i,r^=i<<2,i=16711935&(r>>>8^n),n^=i,r^=i<<8,r=r<<1|r>>>31&1,i=2863311530&(n^r),n^=i,r^=i,n=n<<1|n>>>31&1;for(let o=0,s=0;o<8;++o){i=r<<28|r>>>4,i^=this.keys[s++];let e=Js[63&i];e|=Ys[i>>>8&63],e|=Xs[i>>>16&63],e|=zs[i>>>24&63],i=r^this.keys[s++],e|=Zs[63&i],e|=Qs[i>>>8&63],e|=Ws[i>>>16&63],e|=qs[i>>>24&63],n^=e,i=n<<28|n>>>4,i^=this.keys[s++],e=Js[63&i],e|=Ys[i>>>8&63],e|=Xs[i>>>16&63],e|=zs[i>>>24&63],i=n^this.keys[s++],e|=Zs[63&i],e|=Qs[i>>>8&63],e|=Ws[i>>>16&63],e|=qs[i>>>24&63],r^=e}for(r=r<<31|r>>>1,i=2863311530&(n^r),n^=i,r^=i,n=n<<31|n>>>1,i=16711935&(n>>>8^r),r^=i,n^=i<<8,i=858993459&(n>>>2^r),r^=i,n^=i<<2,i=65535&(r>>>16^n),n^=i,r^=i<<16,i=252645135&(r>>>4^n),n^=i,r^=i<<4,i=[r,n],a=0;a<8;a++)t[a]=(i[a>>>2]>>>8*(3-a%4))%256,t[a]<0&&(t[a]+=256);return t}encrypt(e){return this.enc8(e.slice(0,8)).concat(this.enc8(e.slice(8,16)))}}var tl={Again:57349,AltLeft:56,AltRight:57400,ArrowDown:57424,ArrowLeft:57419,ArrowRight:57421,ArrowUp:57416,AudioVolumeDown:57390,AudioVolumeMute:57376,AudioVolumeUp:57392,Backquote:41,Backslash:43,Backspace:14,BracketLeft:26,BracketRight:27,BrowserBack:57450,BrowserFavorites:57446,BrowserForward:57449,BrowserHome:57394,BrowserRefresh:57447,BrowserSearch:57445,BrowserStop:57448,CapsLock:58,Comma:51,ContextMenu:57437,ControlLeft:29,ControlRight:57373,Convert:121,Copy:57464,Cut:57404,Delete:57427,Digit0:11,Digit1:2,Digit2:3,Digit3:4,Digit4:5,Digit5:6,Digit6:7,Digit7:8,Digit8:9,Digit9:10,Eject:57469,End:57423,Enter:28,Equal:13,Escape:1,F1:59,F10:68,F11:87,F12:88,F13:93,F14:94,F15:95,F16:85,F17:57347,F18:57463,F19:57348,F2:60,F20:90,F21:116,F22:57465,F23:109,F24:111,F3:61,F4:62,F5:63,F6:64,F7:65,F8:66,F9:67,Find:57409,Help:57461,Hiragana:119,Home:57415,Insert:57426,IntlBackslash:86,IntlRo:115,IntlYen:125,KanaMode:112,Katakana:120,KeyA:30,KeyB:48,KeyC:46,KeyD:32,KeyE:18,KeyF:33,KeyG:34,KeyH:35,KeyI:23,KeyJ:36,KeyK:37,KeyL:38,KeyM:50,KeyN:49,KeyO:24,KeyP:25,KeyQ:16,KeyR:19,KeyS:31,KeyT:20,KeyU:22,KeyV:47,KeyW:17,KeyX:45,KeyY:21,KeyZ:44,Lang3:120,Lang4:119,Lang5:118,LaunchApp1:57451,LaunchApp2:57377,LaunchMail:57452,MediaPlayPause:57378,MediaSelect:57453,MediaStop:57380,MediaTrackNext:57369,MediaTrackPrevious:57360,MetaLeft:57435,MetaRight:57436,Minus:12,NonConvert:123,NumLock:69,Numpad0:82,Numpad1:79,Numpad2:80,Numpad3:81,Numpad4:75,Numpad5:76,Numpad6:77,Numpad7:71,Numpad8:72,Numpad9:73,NumpadAdd:78,NumpadComma:126,NumpadDecimal:83,NumpadDivide:57397,NumpadEnter:57372,NumpadEqual:89,NumpadMultiply:55,NumpadParenLeft:57462,NumpadParenRight:57467,NumpadSubtract:74,Open:100,PageDown:57425,PageUp:57417,Paste:101,Pause:57414,Period:52,Power:57438,PrintScreen:84,Props:57350,Quote:40,ScrollLock:70,Semicolon:39,ShiftLeft:42,ShiftRight:54,Slash:53,Sleep:57439,Space:57,Suspend:57381,Tab:15,Undo:57351,WakeUp:57443};const nl={encodingRaw:0,encodingCopyRect:1,encodingRRE:2,encodingHextile:5,encodingTight:7,encodingTightPNG:-260,pseudoEncodingQualityLevel9:-23,pseudoEncodingQualityLevel0:-32,pseudoEncodingDesktopSize:-223,pseudoEncodingLastRect:-224,pseudoEncodingCursor:-239,pseudoEncodingQEMUExtendedKeyEvent:-258,pseudoEncodingDesktopName:-307,pseudoEncodingExtendedDesktopSize:-308,pseudoEncodingXvp:-309,pseudoEncodingFence:-312,pseudoEncodingContinuousUpdates:-313,pseudoEncodingCompressLevel9:-247,pseudoEncodingCompressLevel0:-256,pseudoEncodingVMwareCursor:1464686180,pseudoEncodingExtendedClipboard:3231835598};a(4979);class rl{constructor(){this._lines=0}decodeRect(e,t,n,r,i,a,o){0===this._lines&&(this._lines=r);const s=8==o?1:4,l=n*s;if(i.rQwait("RAW",l))return!1;const c=t+(r-this._lines),u=Math.min(this._lines,Math.floor(i.rQlen/l));let d=i.rQ,h=i.rQi;if(8==o){const e=n*u,t=new Uint8Array(4*e);for(let n=0;n<e;n++)t[4*n+0]=255*(3&d[h+n])/3,t[4*n+1]=255*(d[h+n]>>2&3)/3,t[4*n+2]=255*(d[h+n]>>4&3)/3,t[4*n+4]=0;d=t,h=0}return a.blitImage(e,c,n,u,d,h),i.rQskipBytes(u*l),this._lines-=u,!(this._lines>0)}}class il{decodeRect(e,t,n,r,i,a,o){if(i.rQwait("COPYRECT",4))return!1;let s=i.rQshift16(),l=i.rQshift16();return a.copyImage(s,l,e,t,n,r),!0}}class al{constructor(){this._subrects=0}decodeRect(e,t,n,r,i,a,o){if(0===this._subrects){if(i.rQwait("RRE",8))return!1;this._subrects=i.rQshift32();let o=i.rQshiftBytes(4);a.fillRect(e,t,n,r,o)}while(this._subrects>0){if(i.rQwait("RRE",12))return!1;let n=i.rQshiftBytes(4),r=i.rQshift16(),o=i.rQshift16(),s=i.rQshift16(),l=i.rQshift16();a.fillRect(e+r,t+o,s,l,n),this._subrects--}return!0}}class ol{constructor(){this._tiles=0,this._lastsubencoding=0}decodeRect(e,t,n,r,i,a,o){0===this._tiles&&(this._tilesX=Math.ceil(n/16),this._tilesY=Math.ceil(r/16),this._totalTiles=this._tilesX*this._tilesY,this._tiles=this._totalTiles);while(this._tiles>0){let o=1;if(i.rQwait("HEXTILE",o))return!1;let s=i.rQ,l=i.rQi,c=s[l];if(c>30)throw new Error("Illegal hextile subencoding (subencoding: "+c+")");const u=this._totalTiles-this._tiles,d=u%this._tilesX,h=Math.floor(u/this._tilesX),p=e+16*d,f=t+16*h,m=Math.min(16,e+n-p),g=Math.min(16,t+r-f);if(1&c)o+=m*g*4;else if(2&c&&(o+=4),4&c&&(o+=4),8&c){if(o++,i.rQwait("HEXTILE",o))return!1;let e=s[l+o-1];o+=16&c?6*e:2*e}if(i.rQwait("HEXTILE",o))return!1;if(l++,0===c)1&this._lastsubencoding?vn(" Ignoring blank after RAW"):a.fillRect(p,f,m,g,this._background);else if(1&c)a.blitImage(p,f,m,g,s,l),l+=o-1;else{if(2&c&&(this._background=[s[l],s[l+1],s[l+2],s[l+3]],l+=4),4&c&&(this._foreground=[s[l],s[l+1],s[l+2],s[l+3]],l+=4),a.startTile(p,f,m,g,this._background),8&c){let e=s[l];l++;for(let t=0;t<e;t++){let e;16&c?(e=[s[l],s[l+1],s[l+2],s[l+3]],l+=4):e=this._foreground;const t=s[l];l++;const n=t>>4,r=15&t,i=s[l];l++;const o=1+(i>>4),u=1+(15&i);a.subTile(n,r,o,u,e)}}a.finishTile()}i.rQi=l,this._lastsubencoding=c,this._tiles--}return!0}}class sl{constructor(){this._ctl=null,this._filter=null,this._numColors=0,this._palette=new Uint8Array(1024),this._len=0,this._zlibs=[];for(let e=0;e<4;e++)this._zlibs[e]=new Ui}decodeRect(e,t,n,r,i,a,o){if(null===this._ctl){if(i.rQwait("TIGHT compression-control",1))return!1;this._ctl=i.rQshift8();for(let e=0;e<4;e++)this._ctl>>e&1&&(this._zlibs[e].reset(),bn("Reset zlib stream "+e));this._ctl=this._ctl>>4}let s;if(8===this._ctl)s=this._fillRect(e,t,n,r,i,a,o);else if(9===this._ctl)s=this._jpegRect(e,t,n,r,i,a,o);else if(10===this._ctl)s=this._pngRect(e,t,n,r,i,a,o);else{if(0!=(128&this._ctl))throw new Error("Illegal tight compression received (ctl: "+this._ctl+")");s=this._basicRect(this._ctl,e,t,n,r,i,a,o)}return s&&(this._ctl=null),s}_fillRect(e,t,n,r,i,a,o){if(i.rQwait("TIGHT",3))return!1;const s=i.rQi,l=i.rQ;return a.fillRect(e,t,n,r,[l[s+2],l[s+1],l[s]],!1),i.rQskipBytes(3),!0}_jpegRect(e,t,n,r,i,a,o){let s=this._readData(i);return null!==s&&(a.imageRect(e,t,n,r,"image/jpeg",s),!0)}_pngRect(e,t,n,r,i,a,o){throw new Error("PNG received in standard Tight rect")}_basicRect(e,t,n,r,i,a,o,s){if(null===this._filter)if(4&e){if(a.rQwait("TIGHT",1))return!1;this._filter=a.rQshift8()}else this._filter=0;let l,c=3&e;switch(this._filter){case 0:l=this._copyFilter(c,t,n,r,i,a,o,s);break;case 1:l=this._paletteFilter(c,t,n,r,i,a,o,s);break;case 2:l=this._gradientFilter(c,t,n,r,i,a,o,s);break;default:throw new Error("Illegal tight filter received (ctl: "+this._filter+")")}return l&&(this._filter=null),l}_copyFilter(e,t,n,r,i,a,o,s){const l=r*i*3;let c;if(l<12){if(a.rQwait("TIGHT",l))return!1;c=a.rQshiftBytes(l)}else{if(c=this._readData(a),null===c)return!1;this._zlibs[e].setInput(c),c=this._zlibs[e].inflate(l),this._zlibs[e].setInput(null)}return o.blitRgbImage(t,n,r,i,c,0,!1),!0}_paletteFilter(e,t,n,r,i,a,o,s){if(0===this._numColors){if(a.rQwait("TIGHT palette",1))return!1;const e=a.rQpeek8()+1,t=3*e;if(a.rQwait("TIGHT palette",1+t))return!1;this._numColors=e,a.rQskipBytes(1),a.rQshiftTo(this._palette,t)}const l=this._numColors<=2?1:8,c=Math.floor((r*l+7)/8),u=c*i;let d;if(u<12){if(a.rQwait("TIGHT",u))return!1;d=a.rQshiftBytes(u)}else{if(d=this._readData(a),null===d)return!1;this._zlibs[e].setInput(d),d=this._zlibs[e].inflate(u),this._zlibs[e].setInput(null)}return 2==this._numColors?this._monoRect(t,n,r,i,d,this._palette,o):this._paletteRect(t,n,r,i,d,this._palette,o),this._numColors=0,!0}_monoRect(e,t,n,r,i,a,o){const s=this._getScratchBuffer(n*r*4),l=Math.floor((n+7)/8),c=Math.floor(n/8);for(let u=0;u<r;u++){let e,t,r;for(r=0;r<c;r++)for(let o=7;o>=0;o--)e=4*(u*n+8*r+7-o),t=3*(i[u*l+r]>>o&1),s[e]=a[t],s[e+1]=a[t+1],s[e+2]=a[t+2],s[e+3]=255;for(let o=7;o>=8-n%8;o--)e=4*(u*n+8*r+7-o),t=3*(i[u*l+r]>>o&1),s[e]=a[t],s[e+1]=a[t+1],s[e+2]=a[t+2],s[e+3]=255}o.blitRgbxImage(e,t,n,r,s,0,!1)}_paletteRect(e,t,n,r,i,a,o){const s=this._getScratchBuffer(n*r*4),l=n*r*4;for(let c=0,u=0;c<l;c+=4,u++){const e=3*i[u];s[c]=a[e],s[c+1]=a[e+1],s[c+2]=a[e+2],s[c+3]=255}o.blitRgbxImage(e,t,n,r,s,0,!1)}_gradientFilter(e,t,n,r,i,a,o,s){throw new Error("Gradient filter not implemented")}_readData(e){if(0===this._len){if(e.rQwait("TIGHT",3))return null;let t;t=e.rQshift8(),this._len=127&t,128&t&&(t=e.rQshift8(),this._len|=(127&t)<<7,128&t&&(t=e.rQshift8(),this._len|=t<<14))}if(e.rQwait("TIGHT",this._len))return null;let t=e.rQshiftBytes(this._len);return this._len=0,t}_getScratchBuffer(e){return(!this._scratchBuffer||this._scratchBuffer.length<e)&&(this._scratchBuffer=new Uint8Array(e)),this._scratchBuffer}}class ll extends sl{_pngRect(e,t,n,r,i,a,o){let s=this._readData(i);return null!==s&&(a.imageRect(e,t,n,r,"image/png",s),!0)}_basicRect(e,t,n,r,i,a,o,s){throw new Error("BasicCompression received in TightPNG rect")}}const cl=3,ul="rgb(40, 40, 40)",dl=17,hl=50,pl=19,fl=75,ml=50,gl=1e3,vl=50,bl=1,yl=1<<24,wl=1<<25,El=1<<26,_l=1<<27,Sl=1<<28;class kl extends sr{constructor(e,t,n){if(!e)throw new Error("Must specify target");if(!t)throw new Error("Must specify URL");super(),this._target=e,this._url=t,n=n||{},this._rfbCredentials=n.credentials||{},this._shared=!("shared"in n)||!!n.shared,this._repeaterID=n.repeaterID||"",this._wsProtocols=n.wsProtocols||[],this._rfbConnectionState="",this._rfbInitState="",this._rfbAuthScheme=-1,this._rfbCleanDisconnect=!0,this._rfbVersion=0,this._rfbMaxVersion=3.8,this._rfbTightVNC=!1,this._rfbVeNCryptState=0,this._rfbXvpVer=0,this._fbWidth=0,this._fbHeight=0,this._fbName="",this._capabilities={power:!1},this._supportsFence=!1,this._supportsContinuousUpdates=!1,this._enabledContinuousUpdates=!1,this._supportsSetDesktopSize=!1,this._screenID=0,this._screenFlags=0,this._qemuExtKeyEventSupported=!1,this._clipboardText=null,this._clipboardServerCapabilitiesActions={},this._clipboardServerCapabilitiesFormats={},this._sock=null,this._display=null,this._flushing=!1,this._keyboard=null,this._gestures=null,this._disconnTimer=null,this._resizeTimeout=null,this._mouseMoveTimer=null,this._decoders={},this._FBU={rects:0,x:0,y:0,width:0,height:0,encoding:null},this._mousePos={},this._mouseButtonMask=0,this._mouseLastMoveTime=0,this._viewportDragging=!1,this._viewportDragPos={},this._viewportHasMoved=!1,this._accumulatedWheelDeltaX=0,this._accumulatedWheelDeltaY=0,this._gestureLastTapTime=null,this._gestureFirstDoubleTapEv=null,this._gestureLastMagnitudeX=0,this._gestureLastMagnitudeY=0,this._eventHandlers={focusCanvas:this._focusCanvas.bind(this),windowResize:this._windowResize.bind(this),handleMouse:this._handleMouse.bind(this),handleWheel:this._handleWheel.bind(this),handleGesture:this._handleGesture.bind(this)},vn(">> RFB.constructor"),this._screen=document.createElement("div"),this._screen.style.display="flex",this._screen.style.width="100%",this._screen.style.height="100%",this._screen.style.overflow="auto",this._screen.style.background=ul,this._canvas=document.createElement("canvas"),this._canvas.style.margin="auto",this._canvas.style.outline="none",this._canvas.style.flexShrink="0",this._canvas.width=0,this._canvas.height=0,this._canvas.tabIndex=-1,this._screen.appendChild(this._canvas),this._cursor=new Ls,this._cursorImage=kl.cursors.none,this._decoders[nl.encodingRaw]=new rl,this._decoders[nl.encodingCopyRect]=new il,this._decoders[nl.encodingRRE]=new al,this._decoders[nl.encodingHextile]=new ol,this._decoders[nl.encodingTight]=new sl,this._decoders[nl.encodingTightPNG]=new ll;try{this._display=new cr(this._canvas)}catch(Bk){throw wn("Display exception: "+Bk),Bk}this._display.onflush=this._onFlush.bind(this),this._keyboard=new ms(this._canvas),this._keyboard.onkeyevent=this._handleKeyEvent.bind(this),this._gestures=new Os,this._sock=new Ms,this._sock.on("message",(()=>{this._handleMessage()})),this._sock.on("open",(()=>{"connecting"===this._rfbConnectionState&&""===this._rfbInitState?(this._rfbInitState="ProtocolVersion",vn("Starting VNC handshake")):this._fail("Unexpected server connection while "+this._rfbConnectionState)})),this._sock.on("close",(e=>{vn("WebSocket on-close event");let t="";switch(e.code&&(t="(code: "+e.code,e.reason&&(t+=", reason: "+e.reason),t+=")"),this._rfbConnectionState){case"connecting":this._fail("Connection closed "+t);break;case"connected":this._updateConnectionState("disconnecting"),this._updateConnectionState("disconnected");break;case"disconnecting":this._updateConnectionState("disconnected");break;case"disconnected":this._fail("Unexpected server disconnect when already disconnected "+t);break;default:this._fail("Unexpected server disconnect before connecting "+t);break}this._sock.off("close")})),this._sock.on("error",(e=>yn("WebSocket on-error event"))),setTimeout(this._updateConnectionState.bind(this,"connecting")),vn("<< RFB.constructor"),this.dragViewport=!1,this.focusOnClick=!0,this._viewOnly=!1,this._clipViewport=!1,this._scaleViewport=!1,this._resizeSession=!1,this._showDotCursor=!1,void 0!==n.showDotCursor&&(yn("Specifying showDotCursor as a RFB constructor argument is deprecated"),this._showDotCursor=n.showDotCursor),this._qualityLevel=6,this._compressionLevel=2}get viewOnly(){return this._viewOnly}set viewOnly(e){this._viewOnly=e,"connecting"!==this._rfbConnectionState&&"connected"!==this._rfbConnectionState||(e?this._keyboard.ungrab():this._keyboard.grab())}get capabilities(){return this._capabilities}get touchButton(){return 0}set touchButton(e){yn("Using old API!")}get clipViewport(){return this._clipViewport}set clipViewport(e){this._clipViewport=e,this._updateClip()}get scaleViewport(){return this._scaleViewport}set scaleViewport(e){this._scaleViewport=e,e&&this._clipViewport&&this._updateClip(),this._updateScale(),!e&&this._clipViewport&&this._updateClip()}get resizeSession(){return this._resizeSession}set resizeSession(e){this._resizeSession=e,e&&this._requestRemoteResize()}get showDotCursor(){return this._showDotCursor}set showDotCursor(e){this._showDotCursor=e,this._refreshCursor()}get background(){return this._screen.style.background}set background(e){this._screen.style.background=e}get qualityLevel(){return this._qualityLevel}set qualityLevel(e){!Number.isInteger(e)||e<0||e>9?wn("qualityLevel must be an integer between 0 and 9"):this._qualityLevel!==e&&(this._qualityLevel=e,"connected"===this._rfbConnectionState&&this._sendEncodings())}get compressionLevel(){return this._compressionLevel}set compressionLevel(e){!Number.isInteger(e)||e<0||e>9?wn("compressionLevel must be an integer between 0 and 9"):this._compressionLevel!==e&&(this._compressionLevel=e,"connected"===this._rfbConnectionState&&this._sendEncodings())}disconnect(){this._updateConnectionState("disconnecting"),this._sock.off("error"),this._sock.off("message"),this._sock.off("open")}sendCredentials(e){this._rfbCredentials=e,setTimeout(this._initMsg.bind(this),0)}sendCtrlAltDel(){"connected"!==this._rfbConnectionState||this._viewOnly||(bn("Sending Ctrl-Alt-Del"),this.sendKey(an.XK_Control_L,"ControlLeft",!0),this.sendKey(an.XK_Alt_L,"AltLeft",!0),this.sendKey(an.XK_Delete,"Delete",!0),this.sendKey(an.XK_Delete,"Delete",!1),this.sendKey(an.XK_Alt_L,"AltLeft",!1),this.sendKey(an.XK_Control_L,"ControlLeft",!1))}machineShutdown(){this._xvpOp(1,2)}machineReboot(){this._xvpOp(1,3)}machineReset(){this._xvpOp(1,4)}sendKey(e,t,n){if("connected"!==this._rfbConnectionState||this._viewOnly)return;if(void 0===n)return this.sendKey(e,t,!0),void this.sendKey(e,t,!1);const r=tl[t];if(this._qemuExtKeyEventSupported&&r)e=e||0,bn("Sending key ("+(n?"down":"up")+"): keysym "+e+", scancode "+r),kl.messages.QEMUExtendedKeyEvent(this._sock,e,n,r);else{if(!e)return;bn("Sending keysym ("+(n?"down":"up")+"): "+e),kl.messages.keyEvent(this._sock,e,n?1:0)}}focus(){this._canvas.focus()}blur(){this._canvas.blur()}clipboardPasteFrom(e){if("connected"===this._rfbConnectionState&&!this._viewOnly)if(this._clipboardServerCapabilitiesFormats[bl]&&this._clipboardServerCapabilitiesActions[_l])this._clipboardText=e,kl.messages.extendedClipboardNotify(this._sock,[bl]);else{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);kl.messages.clientCutText(this._sock,t)}}_connect(){vn(">> RFB.connect"),bn("connecting to "+this._url);try{this._sock.open(this._url,this._wsProtocols)}catch(Hs){"SyntaxError"===Hs.name?this._fail("Invalid host or port ("+Hs+")"):this._fail("Error when opening socket ("+Hs+")")}this._target.appendChild(this._screen),this._gestures.attach(this._canvas),this._cursor.attach(this._canvas),this._refreshCursor(),window.addEventListener("resize",this._eventHandlers.windowResize),this._canvas.addEventListener("mousedown",this._eventHandlers.focusCanvas),this._canvas.addEventListener("touchstart",this._eventHandlers.focusCanvas),this._canvas.addEventListener("mousedown",this._eventHandlers.handleMouse),this._canvas.addEventListener("mouseup",this._eventHandlers.handleMouse),this._canvas.addEventListener("mousemove",this._eventHandlers.handleMouse),this._canvas.addEventListener("click",this._eventHandlers.handleMouse),this._canvas.addEventListener("contextmenu",this._eventHandlers.handleMouse),this._canvas.addEventListener("wheel",this._eventHandlers.handleWheel),this._canvas.addEventListener("gesturestart",this._eventHandlers.handleGesture),this._canvas.addEventListener("gesturemove",this._eventHandlers.handleGesture),this._canvas.addEventListener("gestureend",this._eventHandlers.handleGesture),vn("<< RFB.connect")}_disconnect(){vn(">> RFB.disconnect"),this._cursor.detach(),this._canvas.removeEventListener("gesturestart",this._eventHandlers.handleGesture),this._canvas.removeEventListener("gesturemove",this._eventHandlers.handleGesture),this._canvas.removeEventListener("gestureend",this._eventHandlers.handleGesture),this._canvas.removeEventListener("wheel",this._eventHandlers.handleWheel),this._canvas.removeEventListener("mousedown",this._eventHandlers.handleMouse),this._canvas.removeEventListener("mouseup",this._eventHandlers.handleMouse),this._canvas.removeEventListener("mousemove",this._eventHandlers.handleMouse),this._canvas.removeEventListener("click",this._eventHandlers.handleMouse),this._canvas.removeEventListener("contextmenu",this._eventHandlers.handleMouse),this._canvas.removeEventListener("mousedown",this._eventHandlers.focusCanvas),this._canvas.removeEventListener("touchstart",this._eventHandlers.focusCanvas),window.removeEventListener("resize",this._eventHandlers.windowResize),this._keyboard.ungrab(),this._gestures.detach(),this._sock.close();try{this._target.removeChild(this._screen)}catch(Hs){if("NotFoundError"!==Hs.name)throw Hs}clearTimeout(this._resizeTimeout),clearTimeout(this._mouseMoveTimer),vn("<< RFB.disconnect")}_focusCanvas(e){this.focusOnClick&&this.focus()}_setDesktopName(e){this._fbName=e,this.dispatchEvent(new CustomEvent("desktopname",{detail:{name:this._fbName}}))}_windowResize(e){window.requestAnimationFrame((()=>{this._updateClip(),this._updateScale()})),this._resizeSession&&(clearTimeout(this._resizeTimeout),this._resizeTimeout=setTimeout(this._requestRemoteResize.bind(this),500))}_updateClip(){const e=this._display.clipViewport;let t=this._clipViewport;if(this._scaleViewport&&(t=!1),e!==t&&(this._display.clipViewport=t),t){const e=this._screenSize();this._display.viewportChangeSize(e.w,e.h),this._fixScrollbars()}}_updateScale(){if(this._scaleViewport){const e=this._screenSize();this._display.autoscale(e.w,e.h)}else this._display.scale=1;this._fixScrollbars()}_requestRemoteResize(){if(clearTimeout(this._resizeTimeout),this._resizeTimeout=null,!this._resizeSession||this._viewOnly||!this._supportsSetDesktopSize)return;const e=this._screenSize();kl.messages.setDesktopSize(this._sock,Math.floor(e.w),Math.floor(e.h),this._screenID,this._screenFlags),vn("Requested new desktop size: "+e.w+"x"+e.h)}_screenSize(){let e=this._screen.getBoundingClientRect();return{w:e.width,h:e.height}}_fixScrollbars(){const e=this._screen.style.overflow;this._screen.style.overflow="hidden",this._screen.getBoundingClientRect(),this._screen.style.overflow=e}_updateConnectionState(e){const t=this._rfbConnectionState;if(e!==t)if("disconnected"!==t){switch(e){case"connected":if("connecting"!==t)return void wn("Bad transition to connected state, previous connection state: "+t);break;case"disconnected":if("disconnecting"!==t)return void wn("Bad transition to disconnected state, previous connection state: "+t);break;case"connecting":if(""!==t)return void wn("Bad transition to connecting state, previous connection state: "+t);break;case"disconnecting":if("connected"!==t&&"connecting"!==t)return void wn("Bad transition to disconnecting state, previous connection state: "+t);break;default:return void wn("Unknown connection state: "+e)}switch(this._rfbConnectionState=e,vn("New state '"+e+"', was '"+t+"'."),this._disconnTimer&&"disconnecting"!==e&&(vn("Clearing disconnect timer"),clearTimeout(this._disconnTimer),this._disconnTimer=null,this._sock.off("close")),e){case"connecting":this._connect();break;case"connected":this.dispatchEvent(new CustomEvent("connect",{detail:{}}));break;case"disconnecting":this._disconnect(),this._disconnTimer=setTimeout((()=>{wn("Disconnection timed out."),this._updateConnectionState("disconnected")}),1e3*cl);break;case"disconnected":this.dispatchEvent(new CustomEvent("disconnect",{detail:{clean:this._rfbCleanDisconnect}}));break}}else wn("Tried changing state of a disconnected RFB object");else vn("Already in state '"+e+"', ignoring")}_fail(e){switch(this._rfbConnectionState){case"disconnecting":wn("Failed when disconnecting: "+e);break;case"connected":wn("Failed while connected: "+e);break;case"connecting":wn("Failed when connecting: "+e);break;default:wn("RFB failure: "+e);break}return this._rfbCleanDisconnect=!1,this._updateConnectionState("disconnecting"),this._updateConnectionState("disconnected"),!1}_setCapability(e,t){this._capabilities[e]=t,this.dispatchEvent(new CustomEvent("capabilities",{detail:{capabilities:this._capabilities}}))}_handleMessage(){if(0!==this._sock.rQlen)switch(this._rfbConnectionState){case"disconnected":wn("Got data while disconnected");break;case"connected":while(1){if(this._flushing)break;if(!this._normalMsg())break;if(0===this._sock.rQlen)break}break;default:this._initMsg();break}else yn("handleMessage called on an empty receive queue")}_handleKeyEvent(e,t,n){this.sendKey(e,t,n)}_handleMouse(e){if("click"===e.type&&e.target!==this._canvas)return;if(e.stopPropagation(),e.preventDefault(),"click"===e.type||"contextmenu"===e.type)return;let t=Jn(e.clientX,e.clientY,this._canvas);switch(e.type){case"mousedown":ar(this._canvas),this._handleMouseButton(t.x,t.y,!0,1<<e.button);break;case"mouseup":this._handleMouseButton(t.x,t.y,!1,1<<e.button);break;case"mousemove":this._handleMouseMove(t.x,t.y);break}}_handleMouseButton(e,t,n,r){if(this.dragViewport){if(n&&!this._viewportDragging)return this._viewportDragging=!0,this._viewportDragPos={x:e,y:t},void(this._viewportHasMoved=!1);if(this._viewportDragging=!1,this._viewportHasMoved)return;this._sendMouse(e,t,r)}null!==this._mouseMoveTimer&&(clearTimeout(this._mouseMoveTimer),this._mouseMoveTimer=null,this._sendMouse(e,t,this._mouseButtonMask)),n?this._mouseButtonMask|=r:this._mouseButtonMask&=~r,this._sendMouse(e,t,this._mouseButtonMask)}_handleMouseMove(e,t){if(this._viewportDragging){const n=this._viewportDragPos.x-e,r=this._viewportDragPos.y-t;(this._viewportHasMoved||Math.abs(n)>Sn||Math.abs(r)>Sn)&&(this._viewportHasMoved=!0,this._viewportDragPos={x:e,y:t},this._display.viewportChangePos(n,r))}else if(this._mousePos={x:e,y:t},null==this._mouseMoveTimer){const n=Date.now()-this._mouseLastMoveTime;n>dl?(this._sendMouse(e,t,this._mouseButtonMask),this._mouseLastMoveTime=Date.now()):this._mouseMoveTimer=setTimeout((()=>{this._handleDelayedMouseMove()}),dl-n)}}_handleDelayedMouseMove(){this._mouseMoveTimer=null,this._sendMouse(this._mousePos.x,this._mousePos.y,this._mouseButtonMask),this._mouseLastMoveTime=Date.now()}_sendMouse(e,t,n){"connected"===this._rfbConnectionState&&(this._viewOnly||kl.messages.pointerEvent(this._sock,this._display.absX(e),this._display.absY(t),n))}_handleWheel(e){if("connected"!==this._rfbConnectionState)return;if(this._viewOnly)return;e.stopPropagation(),e.preventDefault();let t=Jn(e.clientX,e.clientY,this._canvas),n=e.deltaX,r=e.deltaY;0!==e.deltaMode&&(n*=pl,r*=pl),this._accumulatedWheelDeltaX+=n,this._accumulatedWheelDeltaY+=r,Math.abs(this._accumulatedWheelDeltaX)>=hl&&(this._accumulatedWheelDeltaX<0?(this._handleMouseButton(t.x,t.y,!0,32),this._handleMouseButton(t.x,t.y,!1,32)):this._accumulatedWheelDeltaX>0&&(this._handleMouseButton(t.x,t.y,!0,64),this._handleMouseButton(t.x,t.y,!1,64)),this._accumulatedWheelDeltaX=0),Math.abs(this._accumulatedWheelDeltaY)>=hl&&(this._accumulatedWheelDeltaY<0?(this._handleMouseButton(t.x,t.y,!0,8),this._handleMouseButton(t.x,t.y,!1,8)):this._accumulatedWheelDeltaY>0&&(this._handleMouseButton(t.x,t.y,!0,16),this._handleMouseButton(t.x,t.y,!1,16)),this._accumulatedWheelDeltaY=0)}_fakeMouseMove(e,t,n){this._handleMouseMove(t,n),this._cursor.move(e.detail.clientX,e.detail.clientY)}_handleTapEvent(e,t){let n=Jn(e.detail.clientX,e.detail.clientY,this._canvas);if(null!==this._gestureLastTapTime&&Date.now()-this._gestureLastTapTime<gl&&this._gestureFirstDoubleTapEv.detail.type===e.detail.type){let t=this._gestureFirstDoubleTapEv.detail.clientX-e.detail.clientX,r=this._gestureFirstDoubleTapEv.detail.clientY-e.detail.clientY,i=Math.hypot(t,r);i<vl?n=Jn(this._gestureFirstDoubleTapEv.detail.clientX,this._gestureFirstDoubleTapEv.detail.clientY,this._canvas):this._gestureFirstDoubleTapEv=e}else this._gestureFirstDoubleTapEv=e;this._gestureLastTapTime=Date.now(),this._fakeMouseMove(this._gestureFirstDoubleTapEv,n.x,n.y),this._handleMouseButton(n.x,n.y,!0,t),this._handleMouseButton(n.x,n.y,!1,t)}_handleGesture(e){let t,n=Jn(e.detail.clientX,e.detail.clientY,this._canvas);switch(e.type){case"gesturestart":switch(e.detail.type){case"onetap":this._handleTapEvent(e,1);break;case"twotap":this._handleTapEvent(e,4);break;case"threetap":this._handleTapEvent(e,2);break;case"drag":this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,!0,1);break;case"longpress":this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,!0,4);break;case"twodrag":this._gestureLastMagnitudeX=e.detail.magnitudeX,this._gestureLastMagnitudeY=e.detail.magnitudeY,this._fakeMouseMove(e,n.x,n.y);break;case"pinch":this._gestureLastMagnitudeX=Math.hypot(e.detail.magnitudeX,e.detail.magnitudeY),this._fakeMouseMove(e,n.x,n.y);break}break;case"gesturemove":switch(e.detail.type){case"onetap":case"twotap":case"threetap":break;case"drag":case"longpress":this._fakeMouseMove(e,n.x,n.y);break;case"twodrag":this._fakeMouseMove(e,n.x,n.y);while(e.detail.magnitudeY-this._gestureLastMagnitudeY>ml)this._handleMouseButton(n.x,n.y,!0,8),this._handleMouseButton(n.x,n.y,!1,8),this._gestureLastMagnitudeY+=ml;while(e.detail.magnitudeY-this._gestureLastMagnitudeY<-ml)this._handleMouseButton(n.x,n.y,!0,16),this._handleMouseButton(n.x,n.y,!1,16),this._gestureLastMagnitudeY-=ml;while(e.detail.magnitudeX-this._gestureLastMagnitudeX>ml)this._handleMouseButton(n.x,n.y,!0,32),this._handleMouseButton(n.x,n.y,!1,32),this._gestureLastMagnitudeX+=ml;while(e.detail.magnitudeX-this._gestureLastMagnitudeX<-ml)this._handleMouseButton(n.x,n.y,!0,64),this._handleMouseButton(n.x,n.y,!1,64),this._gestureLastMagnitudeX-=ml;break;case"pinch":if(this._fakeMouseMove(e,n.x,n.y),t=Math.hypot(e.detail.magnitudeX,e.detail.magnitudeY),Math.abs(t-this._gestureLastMagnitudeX)>fl){this._handleKeyEvent(an.XK_Control_L,"ControlLeft",!0);while(t-this._gestureLastMagnitudeX>fl)this._handleMouseButton(n.x,n.y,!0,8),this._handleMouseButton(n.x,n.y,!1,8),this._gestureLastMagnitudeX+=fl;while(t-this._gestureLastMagnitudeX<-fl)this._handleMouseButton(n.x,n.y,!0,16),this._handleMouseButton(n.x,n.y,!1,16),this._gestureLastMagnitudeX-=fl}this._handleKeyEvent(an.XK_Control_L,"ControlLeft",!1);break}break;case"gestureend":switch(e.detail.type){case"onetap":case"twotap":case"threetap":case"pinch":case"twodrag":break;case"drag":this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,!1,1);break;case"longpress":this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,!1,4);break}break}}_negotiateProtocolVersion(){if(this._sock.rQwait("version",12))return!1;const e=this._sock.rQshiftStr(12).substr(4,7);bn("Server ProtocolVersion: "+e);let t=0;switch(e){case"000.000":t=1;break;case"003.003":case"003.006":case"003.889":this._rfbVersion=3.3;break;case"003.007":this._rfbVersion=3.7;break;case"003.008":case"004.000":case"004.001":case"005.000":this._rfbVersion=3.8;break;default:return this._fail("Invalid server version "+e)}if(t){let e="ID:"+this._repeaterID;while(e.length<250)e+="\0";return this._sock.sendString(e),!0}this._rfbVersion>this._rfbMaxVersion&&(this._rfbVersion=this._rfbMaxVersion);const n="00"+parseInt(this._rfbVersion,10)+".00"+10*this._rfbVersion%10;this._sock.sendString("RFB "+n+"\n"),vn("Sent ProtocolVersion: "+n),this._rfbInitState="Security"}_negotiateSecurity(){function e(e,t){for(let n=0;n<t.length;n++)if(t[n]===e)return!0;return!1}if(this._rfbVersion>=3.7){const t=this._sock.rQshift8();if(this._sock.rQwait("security type",t,1))return!1;if(0===t)return this._rfbInitState="SecurityReason",this._securityContext="no security types",this._securityStatus=1,this._initMsg();const n=this._sock.rQshiftBytes(t);if(vn("Server security types: "+n),e(1,n))this._rfbAuthScheme=1;else if(e(22,n))this._rfbAuthScheme=22;else if(e(16,n))this._rfbAuthScheme=16;else if(e(2,n))this._rfbAuthScheme=2;else{if(!e(19,n))return this._fail("Unsupported security types (types: "+n+")");this._rfbAuthScheme=19}this._sock.send([this._rfbAuthScheme])}else{if(this._sock.rQwait("security scheme",4))return!1;if(this._rfbAuthScheme=this._sock.rQshift32(),0==this._rfbAuthScheme)return this._rfbInitState="SecurityReason",this._securityContext="authentication scheme",this._securityStatus=1,this._initMsg()}return this._rfbInitState="Authentication",vn("Authenticating using scheme: "+this._rfbAuthScheme),this._initMsg()}_handleSecurityReason(){if(this._sock.rQwait("reason length",4))return!1;const e=this._sock.rQshift32();let t="";if(e>0){if(this._sock.rQwait("reason",e,4))return!1;t=this._sock.rQshiftStr(e)}return""!==t?(this.dispatchEvent(new CustomEvent("securityfailure",{detail:{status:this._securityStatus,reason:t}})),this._fail("Security negotiation failed on "+this._securityContext+" (reason: "+t+")")):(this.dispatchEvent(new CustomEvent("securityfailure",{detail:{status:this._securityStatus}})),this._fail("Security negotiation failed on "+this._securityContext))}_negotiateXvpAuth(){if(void 0===this._rfbCredentials.username||void 0===this._rfbCredentials.password||void 0===this._rfbCredentials.target)return this.dispatchEvent(new CustomEvent("credentialsrequired",{detail:{types:["username","password","target"]}})),!1;const e=String.fromCharCode(this._rfbCredentials.username.length)+String.fromCharCode(this._rfbCredentials.target.length)+this._rfbCredentials.username+this._rfbCredentials.target;return this._sock.sendString(e),this._rfbAuthScheme=2,this._negotiateAuthentication()}_negotiateVeNCryptAuth(){if(0==this._rfbVeNCryptState){if(this._sock.rQwait("vencrypt version",2))return!1;const e=this._sock.rQshift8(),t=this._sock.rQshift8();if(0!=e||2!=t)return this._fail("Unsupported VeNCrypt version "+e+"."+t);this._sock.send([0,2]),this._rfbVeNCryptState=1}if(1==this._rfbVeNCryptState){if(this._sock.rQwait("vencrypt ack",1))return!1;const e=this._sock.rQshift8();if(0!=e)return this._fail("VeNCrypt failure "+e);this._rfbVeNCryptState=2}if(2==this._rfbVeNCryptState){if(this._sock.rQwait("vencrypt subtypes length",1))return!1;const e=this._sock.rQshift8();if(e<1)return this._fail("VeNCrypt subtypes empty");this._rfbVeNCryptSubtypesLength=e,this._rfbVeNCryptState=3}if(3==this._rfbVeNCryptState){if(this._sock.rQwait("vencrypt subtypes",4*this._rfbVeNCryptSubtypesLength))return!1;const e=[];for(let t=0;t<this._rfbVeNCryptSubtypesLength;t++)e.push(this._sock.rQshift32());if(-1==e.indexOf(256))return this._fail("VeNCrypt Plain subtype not offered by server");this._sock.send([0,0,1,0]),this._rfbVeNCryptState=4}if(4==this._rfbVeNCryptState){if(!this._rfbCredentials.username||!this._rfbCredentials.password)return this.dispatchEvent(new CustomEvent("credentialsrequired",{detail:{types:["username","password"]}})),!1;const e=Qn(this._rfbCredentials.username),t=Qn(this._rfbCredentials.password);return this._sock.send([0,0,0,e.length]),this._sock.send([0,0,0,t.length]),this._sock.sendString(e),this._sock.sendString(t),this._rfbInitState="SecurityResult",!0}}_negotiateStdVNCAuth(){if(this._sock.rQwait("auth challenge",16))return!1;if(void 0===this._rfbCredentials.password)return this.dispatchEvent(new CustomEvent("credentialsrequired",{detail:{types:["password"]}})),!1;const e=Array.prototype.slice.call(this._sock.rQshiftBytes(16)),t=kl.genDES(this._rfbCredentials.password,e);return this._sock.send(t),this._rfbInitState="SecurityResult",!0}_negotiateTightUnixAuth(){return void 0===this._rfbCredentials.username||void 0===this._rfbCredentials.password?(this.dispatchEvent(new CustomEvent("credentialsrequired",{detail:{types:["username","password"]}})),!1):(this._sock.send([0,0,0,this._rfbCredentials.username.length]),this._sock.send([0,0,0,this._rfbCredentials.password.length]),this._sock.sendString(this._rfbCredentials.username),this._sock.sendString(this._rfbCredentials.password),this._rfbInitState="SecurityResult",!0)}_negotiateTightTunnels(e){const t={0:{vendor:"TGHT",signature:"NOTUNNEL"}},n={};for(let r=0;r<e;r++){const e=this._sock.rQshift32(),t=this._sock.rQshiftStr(4),r=this._sock.rQshiftStr(8);n[e]={vendor:t,signature:r}}return vn("Server Tight tunnel types: "+n),n[1]&&"SICR"===n[1].vendor&&"SCHANNEL"===n[1].signature&&(vn("Detected Siemens server. Assuming NOTUNNEL support."),n[0]={vendor:"TGHT",signature:"NOTUNNEL"}),n[0]?n[0].vendor!=t[0].vendor||n[0].signature!=t[0].signature?this._fail("Client's tunnel type had the incorrect vendor or signature"):(vn("Selected tunnel type: "+t[0]),this._sock.send([0,0,0,0]),!1):this._fail("Server wanted tunnels, but doesn't support the notunnel type")}_negotiateTightAuth(){if(!this._rfbTightVNC){if(this._sock.rQwait("num tunnels",4))return!1;const e=this._sock.rQshift32();if(e>0&&this._sock.rQwait("tunnel capabilities",16*e,4))return!1;if(this._rfbTightVNC=!0,e>0)return this._negotiateTightTunnels(e),!1}if(this._sock.rQwait("sub auth count",4))return!1;const e=this._sock.rQshift32();if(0===e)return this._rfbInitState="SecurityResult",!0;if(this._sock.rQwait("sub auth capabilities",16*e,4))return!1;const t={STDVNOAUTH__:1,STDVVNCAUTH_:2,TGHTULGNAUTH:129},n=[];for(let r=0;r<e;r++){this._sock.rQshift32();const e=this._sock.rQshiftStr(12);n.push(e)}vn("Server Tight authentication types: "+n);for(let r in t)if(-1!=n.indexOf(r))switch(this._sock.send([0,0,0,t[r]]),vn("Selected authentication type: "+r),r){case"STDVNOAUTH__":return this._rfbInitState="SecurityResult",!0;case"STDVVNCAUTH_":return this._rfbAuthScheme=2,this._initMsg();case"TGHTULGNAUTH":return this._rfbAuthScheme=129,this._initMsg();default:return this._fail("Unsupported tiny auth scheme (scheme: "+r+")")}return this._fail("No supported sub-auth types!")}_negotiateAuthentication(){switch(this._rfbAuthScheme){case 1:return this._rfbVersion>=3.8?(this._rfbInitState="SecurityResult",!0):(this._rfbInitState="ClientInitialisation",this._initMsg());case 22:return this._negotiateXvpAuth();case 2:return this._negotiateStdVNCAuth();case 16:return this._negotiateTightAuth();case 19:return this._negotiateVeNCryptAuth();case 129:return this._negotiateTightUnixAuth();default:return this._fail("Unsupported auth scheme (scheme: "+this._rfbAuthScheme+")")}}_handleSecurityResult(){if(this._sock.rQwait("VNC auth response ",4))return!1;const e=this._sock.rQshift32();return 0===e?(this._rfbInitState="ClientInitialisation",vn("Authentication OK"),this._initMsg()):this._rfbVersion>=3.8?(this._rfbInitState="SecurityReason",this._securityContext="security result",this._securityStatus=e,this._initMsg()):(this.dispatchEvent(new CustomEvent("securityfailure",{detail:{status:e}})),this._fail("Security handshake failed"))}_negotiateServerInit(){if(this._sock.rQwait("server initialization",24))return!1;const e=this._sock.rQshift16(),t=this._sock.rQshift16(),n=this._sock.rQshift8(),r=this._sock.rQshift8(),i=this._sock.rQshift8(),a=this._sock.rQshift8(),o=this._sock.rQshift16(),s=this._sock.rQshift16(),l=this._sock.rQshift16(),c=this._sock.rQshift8(),u=this._sock.rQshift8(),d=this._sock.rQshift8();this._sock.rQskipBytes(3);const h=this._sock.rQshift32();if(this._sock.rQwait("server init name",h,24))return!1;let p=this._sock.rQshiftStr(h);if(p=Yn(p,!0),this._rfbTightVNC){if(this._sock.rQwait("TightVNC extended server init header",8,24+h))return!1;const e=this._sock.rQshift16(),t=this._sock.rQshift16(),n=this._sock.rQshift16();this._sock.rQskipBytes(2);const r=16*(e+t+n);if(this._sock.rQwait("TightVNC extended server init header",r,32+h))return!1;this._sock.rQskipBytes(16*e),this._sock.rQskipBytes(16*t),this._sock.rQskipBytes(16*n)}return bn("Screen: "+e+"x"+t+", bpp: "+n+", depth: "+r+", bigEndian: "+i+", trueColor: "+a+", redMax: "+o+", greenMax: "+s+", blueMax: "+l+", redShift: "+c+", greenShift: "+u+", blueShift: "+d),this._setDesktopName(p),this._resize(e,t),this._viewOnly||this._keyboard.grab(),this._fbDepth=24,"Intel(r) AMT KVM"===this._fbName&&(yn("Intel AMT KVM only supports 8/16 bit depths. Using low color mode."),this._fbDepth=8),kl.messages.pixelFormat(this._sock,this._fbDepth,!0),this._sendEncodings(),kl.messages.fbUpdateRequest(this._sock,!1,0,0,this._fbWidth,this._fbHeight),this._updateConnectionState("connected"),!0}_sendEncodings(){const e=[];e.push(nl.encodingCopyRect),24==this._fbDepth&&(e.push(nl.encodingTight),e.push(nl.encodingTightPNG),e.push(nl.encodingHextile),e.push(nl.encodingRRE)),e.push(nl.encodingRaw),e.push(nl.pseudoEncodingQualityLevel0+this._qualityLevel),e.push(nl.pseudoEncodingCompressLevel0+this._compressionLevel),e.push(nl.pseudoEncodingDesktopSize),e.push(nl.pseudoEncodingLastRect),e.push(nl.pseudoEncodingQEMUExtendedKeyEvent),e.push(nl.pseudoEncodingExtendedDesktopSize),e.push(nl.pseudoEncodingXvp),e.push(nl.pseudoEncodingFence),e.push(nl.pseudoEncodingContinuousUpdates),e.push(nl.pseudoEncodingDesktopName),e.push(nl.pseudoEncodingExtendedClipboard),24==this._fbDepth&&(e.push(nl.pseudoEncodingVMwareCursor),e.push(nl.pseudoEncodingCursor)),kl.messages.clientEncodings(this._sock,e)}_initMsg(){switch(this._rfbInitState){case"ProtocolVersion":return this._negotiateProtocolVersion();case"Security":return this._negotiateSecurity();case"Authentication":return this._negotiateAuthentication();case"SecurityResult":return this._handleSecurityResult();case"SecurityReason":return this._handleSecurityReason();case"ClientInitialisation":return this._sock.send([this._shared?1:0]),this._rfbInitState="ServerInitialisation",!0;case"ServerInitialisation":return this._negotiateServerInit();default:return this._fail("Unknown init state (state: "+this._rfbInitState+")")}}_handleSetColourMapMsg(){return vn("SetColorMapEntries"),this._fail("Unexpected SetColorMapEntries message")}_handleServerCutText(){if(vn("ServerCutText"),this._sock.rQwait("ServerCutText header",7,1))return!1;this._sock.rQskipBytes(3);let e=this._sock.rQshift32();if(e=Wn(e),this._sock.rQwait("ServerCutText content",Math.abs(e),8))return!1;if(e>=0){const t=this._sock.rQshiftStr(e);if(this._viewOnly)return!0;this.dispatchEvent(new CustomEvent("clipboard",{detail:{text:t}}))}else{e=Math.abs(e);const t=this._sock.rQshift32();let n=65535&t,r=4278190080&t,i=!!(r&yl);if(i){this._clipboardServerCapabilitiesFormats={},this._clipboardServerCapabilitiesActions={};for(let t=0;t<=15;t++){let e=1<<t;n&e&&(this._clipboardServerCapabilitiesFormats[e]=!0,this._sock.rQshift32())}for(let t=24;t<=31;t++){let e=1<<t;this._clipboardServerCapabilitiesActions[e]=!!(r&e)}let e=[yl,wl,El,_l,Sl];kl.messages.extendedClipboardCaps(this._sock,e,{extendedClipboardFormatText:0})}else if(r===wl){if(this._viewOnly)return!0;null!=this._clipboardText&&this._clipboardServerCapabilitiesActions[Sl]&&n&bl&&kl.messages.extendedClipboardProvide(this._sock,[bl],[this._clipboardText])}else if(r===El){if(this._viewOnly)return!0;this._clipboardServerCapabilitiesActions[_l]&&(null!=this._clipboardText?kl.messages.extendedClipboardNotify(this._sock,[bl]):kl.messages.extendedClipboardNotify(this._sock,[]))}else if(r===_l){if(this._viewOnly)return!0;this._clipboardServerCapabilitiesActions[wl]&&n&bl&&kl.messages.extendedClipboardRequest(this._sock,[bl])}else{if(r!==Sl)return this._fail("Unexpected action in extended clipboard message: "+r);{if(this._viewOnly)return!0;if(!(n&bl))return!0;this._clipboardText=null;let t=this._sock.rQshiftBytes(e-4),r=new Ui,i=null;r.setInput(t);for(let e=0;e<=15;e++){let t=1<<e;if(n&t){let e=0,n=r.inflate(4);e|=n[0]<<24,e|=n[1]<<16,e|=n[2]<<8,e|=n[3];let a=r.inflate(e);t===bl&&(i=a)}}if(r.setInput(null),null!==i){let e="";for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]);i=e,i=Yn(i),i.length>0&&"\0"===i.charAt(i.length-1)&&(i=i.slice(0,-1)),i=i.replace("\r\n","\n"),this.dispatchEvent(new CustomEvent("clipboard",{detail:{text:i}}))}}}}return!0}_handleServerFenceMsg(){if(this._sock.rQwait("ServerFence header",8,1))return!1;this._sock.rQskipBytes(3);let e=this._sock.rQshift32(),t=this._sock.rQshift8();if(this._sock.rQwait("ServerFence payload",t,9))return!1;t>64&&(yn("Bad payload length ("+t+") in fence response"),t=64);const n=this._sock.rQshiftStr(t);return this._supportsFence=!0,e&1<<31?(e&=3,kl.messages.clientFence(this._sock,e,n),!0):this._fail("Unexpected fence response")}_handleXvpMsg(){if(this._sock.rQwait("XVP version and message",3,1))return!1;this._sock.rQskipBytes(1);const e=this._sock.rQshift8(),t=this._sock.rQshift8();switch(t){case 0:wn("XVP Operation Failed");break;case 1:this._rfbXvpVer=e,bn("XVP extensions enabled (version "+this._rfbXvpVer+")"),this._setCapability("power",!0);break;default:this._fail("Illegal server XVP message (msg: "+t+")");break}return!0}_normalMsg(){let e,t,n;switch(e=this._FBU.rects>0?0:this._sock.rQshift8(),e){case 0:return n=this._framebufferUpdate(),n&&!this._enabledContinuousUpdates&&kl.messages.fbUpdateRequest(this._sock,!0,0,0,this._fbWidth,this._fbHeight),n;case 1:return this._handleSetColourMapMsg();case 2:return vn("Bell"),this.dispatchEvent(new CustomEvent("bell",{detail:{}})),!0;case 3:return this._handleServerCutText();case 150:return t=!this._supportsContinuousUpdates,this._supportsContinuousUpdates=!0,this._enabledContinuousUpdates=!1,t&&(this._enabledContinuousUpdates=!0,this._updateContinuousUpdates(),bn("Enabling continuous updates.")),!0;case 248:return this._handleServerFenceMsg();case 250:return this._handleXvpMsg();default:return this._fail("Unexpected server message (type "+e+")"),vn("sock.rQslice(0, 30): "+this._sock.rQslice(0,30)),!0}}_onFlush(){this._flushing=!1,this._sock.rQlen>0&&this._handleMessage()}_framebufferUpdate(){if(0===this._FBU.rects){if(this._sock.rQwait("FBU header",3,1))return!1;if(this._sock.rQskipBytes(1),this._FBU.rects=this._sock.rQshift16(),this._display.pending())return this._flushing=!0,this._display.flush(),!1}while(this._FBU.rects>0){if(null===this._FBU.encoding){if(this._sock.rQwait("rect header",12))return!1;const e=this._sock.rQshiftBytes(12);this._FBU.x=(e[0]<<8)+e[1],this._FBU.y=(e[2]<<8)+e[3],this._FBU.width=(e[4]<<8)+e[5],this._FBU.height=(e[6]<<8)+e[7],this._FBU.encoding=parseInt((e[8]<<24)+(e[9]<<16)+(e[10]<<8)+e[11],10)}if(!this._handleRect())return!1;this._FBU.rects--,this._FBU.encoding=null}return this._display.flip(),!0}_handleRect(){switch(this._FBU.encoding){case nl.pseudoEncodingLastRect:return this._FBU.rects=1,!0;case nl.pseudoEncodingVMwareCursor:return this._handleVMwareCursor();case nl.pseudoEncodingCursor:return this._handleCursor();case nl.pseudoEncodingQEMUExtendedKeyEvent:try{const e=document.createEvent("keyboardEvent");void 0!==e.code&&(this._qemuExtKeyEventSupported=!0)}catch(Go){}return!0;case nl.pseudoEncodingDesktopName:return this._handleDesktopName();case nl.pseudoEncodingDesktopSize:return this._resize(this._FBU.width,this._FBU.height),!0;case nl.pseudoEncodingExtendedDesktopSize:return this._handleExtendedDesktopSize();default:return this._handleDataRect()}}_handleVMwareCursor(){const e=this._FBU.x,t=this._FBU.y,n=this._FBU.width,r=this._FBU.height;if(this._sock.rQwait("VMware cursor encoding",1))return!1;const i=this._sock.rQshift8();let a;this._sock.rQshift8();const o=4;if(0==i){const e=-256;if(a=new Array(n*r*o),this._sock.rQwait("VMware cursor classic encoding",n*r*o*2,2))return!1;let t=new Array(n*r);for(let a=0;a<n*r;a++)t[a]=this._sock.rQshift32();let i=new Array(n*r);for(let a=0;a<n*r;a++)i[a]=this._sock.rQshift32();for(let s=0;s<n*r;s++)if(0==t[s]){let e=i[s],t=e>>8&255,n=e>>16&255,r=e>>24&255;a[s*o]=t,a[s*o+1]=n,a[s*o+2]=r,a[s*o+3]=255}else(t[s]&e)==e?0==i[s]?(a[s*o]=0,a[s*o+1]=0,a[s*o+2]=0,a[s*o+3]=0):(i[s],a[s*o]=0,a[s*o+1]=0,a[s*o+2]=0,a[s*o+3]=255):(a[s*o]=0,a[s*o+1]=0,a[s*o+2]=0,a[s*o+3]=255)}else{if(1!=i)return yn("The given cursor type is not supported: "+i+" given."),!1;if(this._sock.rQwait("VMware cursor alpha encoding",n*r*4,2))return!1;a=new Array(n*r*o);for(let e=0;e<n*r;e++){let t=this._sock.rQshift32();a[4*e]=t>>24&255,a[4*e+1]=t>>16&255,a[4*e+2]=t>>8&255,a[4*e+3]=255&t}}return this._updateCursor(a,e,t,n,r),!0}_handleCursor(){const e=this._FBU.x,t=this._FBU.y,n=this._FBU.width,r=this._FBU.height,i=n*r*4,a=Math.ceil(n/8)*r;let o=i+a;if(this._sock.rQwait("cursor encoding",o))return!1;const s=this._sock.rQshiftBytes(i),l=this._sock.rQshiftBytes(a);let c=new Uint8Array(n*r*4),u=0;for(let d=0;d<r;d++)for(let e=0;e<n;e++){let t=d*Math.ceil(n/8)+Math.floor(e/8),r=l[t]<<e%8&128?255:0;c[u]=s[u+2],c[u+1]=s[u+1],c[u+2]=s[u],c[u+3]=r,u+=4}return this._updateCursor(c,e,t,n,r),!0}_handleDesktopName(){if(this._sock.rQwait("DesktopName",4))return!1;let e=this._sock.rQshift32();if(this._sock.rQwait("DesktopName",e,4))return!1;let t=this._sock.rQshiftStr(e);return t=Yn(t,!0),this._setDesktopName(t),!0}_handleExtendedDesktopSize(){if(this._sock.rQwait("ExtendedDesktopSize",4))return!1;const e=this._sock.rQpeek8();let t=4+16*e;if(this._sock.rQwait("ExtendedDesktopSize",t))return!1;const n=!this._supportsSetDesktopSize;this._supportsSetDesktopSize=!0,n&&this._requestRemoteResize(),this._sock.rQskipBytes(1),this._sock.rQskipBytes(3);for(let r=0;r<e;r+=1)0===r?(this._screenID=this._sock.rQshiftBytes(4),this._sock.rQskipBytes(2),this._sock.rQskipBytes(2),this._sock.rQskipBytes(2),this._sock.rQskipBytes(2),this._screenFlags=this._sock.rQshiftBytes(4)):this._sock.rQskipBytes(16);if(1===this._FBU.x&&0!==this._FBU.y){let e="";switch(this._FBU.y){case 1:e="Resize is administratively prohibited";break;case 2:e="Out of resources";break;case 3:e="Invalid screen layout";break;default:e="Unknown reason";break}yn("Server did not accept the resize request: "+e)}else this._resize(this._FBU.width,this._FBU.height);return!0}_handleDataRect(){let e=this._decoders[this._FBU.encoding];if(!e)return this._fail("Unsupported encoding (encoding: "+this._FBU.encoding+")"),!1;try{return e.decodeRect(this._FBU.x,this._FBU.y,this._FBU.width,this._FBU.height,this._sock,this._display,this._fbDepth)}catch(Go){return this._fail("Error decoding rect: "+Go),!1}}_updateContinuousUpdates(){this._enabledContinuousUpdates&&kl.messages.enableContinuousUpdates(this._sock,!0,0,0,this._fbWidth,this._fbHeight)}_resize(e,t){this._fbWidth=e,this._fbHeight=t,this._display.resize(this._fbWidth,this._fbHeight),this._updateClip(),this._updateScale(),this._updateContinuousUpdates()}_xvpOp(e,t){this._rfbXvpVer<e||(bn("Sending XVP operation "+t+" (version "+e+")"),kl.messages.xvpOp(this._sock,e,t))}_updateCursor(e,t,n,r,i){this._cursorImage={rgbaPixels:e,hotx:t,hoty:n,w:r,h:i},this._refreshCursor()}_shouldShowDotCursor(){if(!this._showDotCursor)return!1;for(let e=3;e<this._cursorImage.rgbaPixels.length;e+=4)if(this._cursorImage.rgbaPixels[e])return!1;return!0}_refreshCursor(){if("connecting"!==this._rfbConnectionState&&"connected"!==this._rfbConnectionState)return;const e=this._shouldShowDotCursor()?kl.cursors.dot:this._cursorImage;this._cursor.change(e.rgbaPixels,e.hotx,e.hoty,e.w,e.h)}static genDES(e,t){const n=e.split("").map((e=>e.charCodeAt(0)));return new el(n).encrypt(t)}}kl.messages={keyEvent(e,t,n){const r=e._sQ,i=e._sQlen;r[i]=4,r[i+1]=n,r[i+2]=0,r[i+3]=0,r[i+4]=t>>24,r[i+5]=t>>16,r[i+6]=t>>8,r[i+7]=t,e._sQlen+=8,e.flush()},QEMUExtendedKeyEvent(e,t,n,r){function i(e){const t=r>>8,n=255&r;return 224===t&&n<127?128|n:e}const a=e._sQ,o=e._sQlen;a[o]=255,a[o+1]=0,a[o+2]=n>>8,a[o+3]=n,a[o+4]=t>>24,a[o+5]=t>>16,a[o+6]=t>>8,a[o+7]=t;const s=i(r);a[o+8]=s>>24,a[o+9]=s>>16,a[o+10]=s>>8,a[o+11]=s,e._sQlen+=12,e.flush()},pointerEvent(e,t,n,r){const i=e._sQ,a=e._sQlen;i[a]=5,i[a+1]=r,i[a+2]=t>>8,i[a+3]=t,i[a+4]=n>>8,i[a+5]=n,e._sQlen+=6,e.flush()},_buildExtendedClipboardFlags(e,t){let n=new Uint8Array(4),r=0,i=0;for(let a=0;a<e.length;a++)i|=e[a];for(let a=0;a<t.length;a++)r|=t[a];return n[0]=i>>24,n[1]=0,n[2]=0,n[3]=r,n},extendedClipboardProvide(e,t,n){let r=new fs,i=[];for(let s=0;s<t.length;s++){if(t[s]!=bl)throw new Error("Unsupported extended clipboard format for Provide message.");n[s]=n[s].replace(/\r\n|\r|\n/gm,"\r\n");let e=Qn(n[s]+"\0");i.push(e.length>>24&255,e.length>>16&255,e.length>>8&255,255&e.length);for(let t=0;t<e.length;t++)i.push(e.charCodeAt(t))}let a=r.deflate(new Uint8Array(i)),o=new Uint8Array(4+a.length);o.set(kl.messages._buildExtendedClipboardFlags([Sl],t)),o.set(a,4),kl.messages.clientCutText(e,o,!0)},extendedClipboardNotify(e,t){let n=kl.messages._buildExtendedClipboardFlags([_l],t);kl.messages.clientCutText(e,n,!0)},extendedClipboardRequest(e,t){let n=kl.messages._buildExtendedClipboardFlags([wl],t);kl.messages.clientCutText(e,n,!0)},extendedClipboardCaps(e,t,n){let r=Object.keys(n),i=new Uint8Array(4+4*r.length);r.map((e=>parseInt(e))),r.sort(((e,t)=>e-t)),i.set(kl.messages._buildExtendedClipboardFlags(t,[]));let a=4;for(let o=0;o<r.length;o++)i[a]=n[r[o]]>>24,i[a+1]=n[r[o]]>>16,i[a+2]=n[r[o]]>>8,i[a+3]=n[r[o]]|0,a+=4,i[3]|=1<<r[o];kl.messages.clientCutText(e,i,!0)},clientCutText(e,t,n=!1){const r=e._sQ,i=e._sQlen;let a;r[i]=6,r[i+1]=0,r[i+2]=0,r[i+3]=0,a=n?Xn(-t.length):t.length,r[i+4]=a>>24,r[i+5]=a>>16,r[i+6]=a>>8,r[i+7]=a,e._sQlen+=8;let o=0,s=t.length;while(s>0){let n=Math.min(s,e._sQbufferSize-e._sQlen);for(let i=0;i<n;i++)r[e._sQlen+i]=t[o+i];e._sQlen+=n,e.flush(),s-=n,o+=n}},setDesktopSize(e,t,n,r,i){const a=e._sQ,o=e._sQlen;a[o]=251,a[o+1]=0,a[o+2]=t>>8,a[o+3]=t,a[o+4]=n>>8,a[o+5]=n,a[o+6]=1,a[o+7]=0,a[o+8]=r>>24,a[o+9]=r>>16,a[o+10]=r>>8,a[o+11]=r,a[o+12]=0,a[o+13]=0,a[o+14]=0,a[o+15]=0,a[o+16]=t>>8,a[o+17]=t,a[o+18]=n>>8,a[o+19]=n,a[o+20]=i>>24,a[o+21]=i>>16,a[o+22]=i>>8,a[o+23]=i,e._sQlen+=24,e.flush()},clientFence(e,t,n){const r=e._sQ,i=e._sQlen;r[i]=248,r[i+1]=0,r[i+2]=0,r[i+3]=0,r[i+4]=t>>24,r[i+5]=t>>16,r[i+6]=t>>8,r[i+7]=t;const a=n.length;r[i+8]=a;for(let o=0;o<a;o++)r[i+9+o]=n.charCodeAt(o);e._sQlen+=9+a,e.flush()},enableContinuousUpdates(e,t,n,r,i,a){const o=e._sQ,s=e._sQlen;o[s]=150,o[s+1]=t,o[s+2]=n>>8,o[s+3]=n,o[s+4]=r>>8,o[s+5]=r,o[s+6]=i>>8,o[s+7]=i,o[s+8]=a>>8,o[s+9]=a,e._sQlen+=10,e.flush()},pixelFormat(e,t,n){const r=e._sQ,i=e._sQlen;let a;a=t>16?32:t>8?16:8;const o=Math.floor(t/3);r[i]=0,r[i+1]=0,r[i+2]=0,r[i+3]=0,r[i+4]=a,r[i+5]=t,r[i+6]=0,r[i+7]=n?1:0,r[i+8]=0,r[i+9]=(1<<o)-1,r[i+10]=0,r[i+11]=(1<<o)-1,r[i+12]=0,r[i+13]=(1<<o)-1,r[i+14]=2*o,r[i+15]=1*o,r[i+16]=0*o,r[i+17]=0,r[i+18]=0,r[i+19]=0,e._sQlen+=20,e.flush()},clientEncodings(e,t){const n=e._sQ,r=e._sQlen;n[r]=2,n[r+1]=0,n[r+2]=t.length>>8,n[r+3]=t.length;let i=r+4;for(let a=0;a<t.length;a++){const e=t[a];n[i]=e>>24,n[i+1]=e>>16,n[i+2]=e>>8,n[i+3]=e,i+=4}e._sQlen+=i-r,e.flush()},fbUpdateRequest(e,t,n,r,i,a){const o=e._sQ,s=e._sQlen;"undefined"===typeof n&&(n=0),"undefined"===typeof r&&(r=0),o[s]=3,o[s+1]=t?1:0,o[s+2]=n>>8&255,o[s+3]=255&n,o[s+4]=r>>8&255,o[s+5]=255&r,o[s+6]=i>>8&255,o[s+7]=255&i,o[s+8]=a>>8&255,o[s+9]=255&a,e._sQlen+=10,e.flush()},xvpOp(e,t,n){const r=e._sQ,i=e._sQlen;r[i]=250,r[i+1]=0,r[i+2]=t,r[i+3]=n,e._sQlen+=4,e.flush()}},kl.cursors={none:{rgbaPixels:new Uint8Array,w:0,h:0,hotx:0,hoty:0},dot:{rgbaPixels:new Uint8Array([255,255,255,255,0,0,0,255,255,255,255,255,0,0,0,255,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,255,255,255,255,255]),w:3,h:3,hotx:1,hoty:1}};var xl={props:{url:{type:String,default:""}},components:{BrandImage:K},data(){return{rfb:null,connected:!1,disconnected:!1,reconnectDelay:3e3,reconnecting:!1,maximumRetryTimes:10,retryTimes:0,setTimeout:null}},mounted(){this.$nextTick((()=>{this.connect()}))},beforeUnmount(){this.clearTimeout()},methods:{connect(){const e=new kl(this.$refs.view,this.url);e.addEventListener("connect",(()=>{this.clearTimeout(),this.connected=!0,this.retryTimes=0,this.reconnecting=!1})),e.addEventListener("disconnect",(e=>{this.clearTimeout(),this.disconnected=!0,this.rfb=null,this.reconnect()})),this.rfb=e},reconnect(){if(this.retryTimes>=this.maximumRetryTimes)return this.reconnecting=!1,this.connected=!0,void(this.disconnected=!0);this.retryTimes+=1,this.reconnecting=!0,this.connected=!1,this.disconnected=!1,this.setTimeout=setTimeout((()=>{this.connect()}),this.reconnectDelay)},clearTimeout(){this.setTimeout&&clearTimeout(this.setTimeout)},disconnect(){this.rfb.disconnect()},ctrlAltDelete(){this.rfb.sendCtrlAltDel()},sendKey(e,t,n){this.rfb.sendKey(e,t,n)}}};a(49608);const Al=(0,u.A)(xl,[["render",qn],["__scopeId","data-v-56da10be"]]);var Nl=Al;const Cl={class:"list-unstyled dropdown combination-keys__container"},Tl=["onClick"],Rl=["onClick"];function Ol(e,t,n,r,a,o){const s=(0,i.resolveComponent)("novnc-console-item",!0),l=(0,i.resolveComponent)("v-dropdown");return(0,i.openBlock)(),(0,i.createElementBlock)("ul",Cl,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(n.items,((e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)("li",{key:t},[e.keys?((0,i.openBlock)(),(0,i.createBlock)(l,{key:0,placement:"right-start",trigger:"click",container:!1},{popper:(0,i.withCtx)((()=>[(0,i.createVNode)(s,{items:e.keys,path:n.path,pos:n.pos+1,onUpdate:o.addKeys,onSendKeys:o.sendKeys},null,8,["items","path","pos","onUpdate","onSendKeys"])])),default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("span",{class:(0,i.normalizeClass)([{open:o.getOpenStatus(t,n.pos)},"p-10 hand"]),onClick:e=>o.addKeys({key:t,pos:n.pos})},(0,i.toDisplayString)(e.label),11,Tl)])),_:2},1024)):((0,i.openBlock)(),(0,i.createElementBlock)("span",{key:1,class:"p-10 hand",onClick:e=>o.keysDown(t,n.pos)},(0,i.toDisplayString)(e.label),9,Rl))])))),128))])}var Il={name:"NovncConsoleItem",emits:["send-keys","update"],props:{items:{type:Object,required:!0,default:()=>({})},path:{type:Array,required:!0,default:()=>[]},pos:{type:Number,required:!0,default:0}},methods:{keysDown(e,t){this.addKeys({key:e,pos:t}),this.$emit("send-keys")},addKeys({key:e,pos:t}){this.$emit("update",{key:e,pos:t})},sendKeys(){this.$emit("send-keys")},getOpenStatus(e,t){return this.path[t]===e}}};a(83301);const Ll=(0,u.A)(Il,[["render",Ol],["__scopeId","data-v-11c334cb"]]);var Dl=Ll;const Pl={class:"row"},Ml={class:"col span-12"},Bl={class:"row"},Fl={class:"col span-12"},$l=["disabled"],Ul={class:"displayed-keys mt-20"},jl={class:"text-default-text"},Vl={class:"displayed-banners"},Kl={class:"actions"};function Hl(e,t,n,r,a,o){const s=(0,i.resolveComponent)("t"),l=(0,i.resolveComponent)("Banner"),c=(0,i.resolveComponent)("AsyncButton"),u=(0,i.resolveComponent)("ModalWithCard"),d=(0,i.resolveDirective)("clean-html");return(0,i.openBlock)(),(0,i.createBlock)(u,{name:"recordShortcutKeys",width:550},{title:(0,i.withCtx)((()=>[(0,i.createVNode)(s,{k:"harvester.virtualMachine.detail.console.customShortcutKeys"})])),content:(0,i.withCtx)((()=>[(0,i.createElementVNode)("div",Pl,[(0,i.createElementVNode)("div",Ml,[(0,i.createVNode)(l,{color:"info"},{default:(0,i.withCtx)((()=>[(0,i.withDirectives)((0,i.createElementVNode)("span",null,null,512),[[d,o.keysRecordFormat]])])),_:1})])]),(0,i.createElementVNode)("div",Bl,[(0,i.createElementVNode)("div",Fl,[(0,i.createElementVNode)("button",{class:"btn bg-primary",onClick:t[0]||(t[0]=(...e)=>o.toggleRecording&&o.toggleRecording(...e))},[(0,i.createVNode)(s,{k:o.recordButton},null,8,["k"]),(0,i.createElementVNode)("i",{class:(0,i.normalizeClass)(["icon icon-fw",a.isRecording?"icon-dot-open":"icon-dot"])},null,2)]),(0,i.createElementVNode)("button",{disabled:!o.canAdd,class:"btn bg-primary",onClick:t[1]||(t[1]=(...e)=>o.addShortcutKey&&o.addShortcutKey(...e))},[(0,i.createVNode)(s,{k:"generic.add"})],8,$l)])]),t[3]||(t[3]=(0,i.createElementVNode)("hr",null,null,-1)),(0,i.createElementVNode)("div",Ul,[(0,i.withDirectives)((0,i.createElementVNode)("h4",jl,null,512),[[d,e.t("harvester.virtualMachine.detail.console.record.preferredKeys")]]),(0,i.createElementVNode)("div",Vl,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(o.displayedKeys,((e,t)=>((0,i.openBlock)(),(0,i.createBlock)(l,{key:t},{default:(0,i.withCtx)((()=>[(0,i.withDirectives)((0,i.createElementVNode)("span",null,null,512),[[d,e]])])),_:2},1024)))),128))])])])),footer:(0,i.withCtx)((()=>[(0,i.createElementVNode)("div",Kl,[(0,i.createElementVNode)("button",{class:"btn role-secondary mr-20",onClick:t[2]||(t[2]=(0,i.withModifiers)(((...e)=>o.closeRecordingModal&&o.closeRecordingModal(...e)),["prevent"]))},[(0,i.createVNode)(s,{k:"generic.close"})]),(0,i.createVNode)(c,{mode:"done",onClick:o.saveKeys},null,8,["onClick"])])])),_:1})}var Gl=a(56943),zl=a(88857),ql=a(40973);const Xl="prefered-shortcut-keys";var Wl={name:"NovncConsoleCustomKeys",emits:["close"],components:{ModalWithCard:ql.A,Banner:Gl.A,AsyncButton:zl.A},data(){return{keysRecord:[],addedShortcutKeys:[],preferredShortcutKeys:[],isRecording:!1}},computed:{savedShortcutKeys(){const e=this.$store.getters["management/all"]($.m4.PREFERENCE),t=e?.[0]?.data?.[Xl];let n=[];if(!t)return n;try{n=JSON.parse(t)}catch(Go){this.$store.dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:this.t("harvester.virtualMachine.detail.console.customShortcutKeys")}),err:Go},{root:!0})}return n},displayedKeys(){const e=this.addedShortcutKeys.concat(this.preferredShortcutKeys).map((e=>{const t=e.map((e=>` <code>${e.key.charAt(0).toUpperCase()+e.key.slice(1)}</code>`));return t.join(",")}));return e},recordButton(){return this.isRecording?"harvester.virtualMachine.detail.console.record.stop":"harvester.virtualMachine.detail.console.record.start"},keysRecordFormat(){if(!this.isRecording&&0===this.keysRecord.length)return this.t("harvester.virtualMachine.detail.console.record.tips");const e=this.keysRecord.map((e=>` <code>${e.key.charAt(0).toUpperCase()+e.key.slice(1)}</code>`));return`Keys: ${e.join(",")}`},canAdd(){const e=this.keysRecord.length>0;let t=[].concat(this.preferredShortcutKeys,this.addedShortcutKeys);return!!e&&(t.push(this.keysRecord),t=t.map((e=>{const t=e.map((e=>e.key));return t.join(",")})),t.length===new Set(t).size)}},watch:{savedShortcutKeys:{handler(){this.preferredShortcutKeys=[].concat(this.savedShortcutKeys)||[]},immediate:!0}},methods:{closeRecordingModal(){window.removeEventListener("keydown",this.handleShortcut),this.$emit("close")},toggleRecording(){this.isRecording=!this.isRecording,this.isRecording?(this.keysRecord=[],window.addEventListener("keydown",this.handleShortcut)):window.removeEventListener("keydown",this.handleShortcut)},handleShortcut(e){e.preventDefault();const{key:t,keyCode:n,code:r,location:i,charCode:a}=e;this.keysRecord.push({key:t,keyCode:n,code:r,location:i,charCode:a})},addShortcutKey(){this.addedShortcutKeys.push([].concat(this.keysRecord))},removeKey(e){const t=e.replace(/(\s*)<code>|<\/code>/g,"").replace(/\s*,\s*/g,",");this.addedShortcutKeys=this.addedShortcutKeys.filter((e=>{const n=e.map((e=>e.key.charAt(0).toUpperCase()+e.key.slice(1))).join(",");return n!==t})),this.preferredShortcutKeys=this.preferredShortcutKeys.filter((e=>{const n=e.map((e=>e.key.charAt(0).toUpperCase()+e.key.slice(1))).join(",");return n!==t}))},async saveKeys(e){const t=[].concat(this.preferredShortcutKeys,this.addedShortcutKeys),n=this.$store.getters["management/all"]($.m4.PREFERENCE)?.[0];try{n.data[Xl]=JSON.stringify(t),await n.save(),this.closeRecordingModal(),e(!0)}catch(Go){e(!1)}}}};a(72001);const Yl=(0,u.A)(Wl,[["render",Hl],["__scopeId","data-v-7821dcb9"]]);var Ql=Yl;const Jl="prefered-shortcut-keys",Zl={ControlLeft:{label:"Ctrl",value:an.XK_Control_L},AltLeft:{label:"Alt",value:an.XK_Alt_L}},ec={Delete:{label:"Del",value:an.XK_Delete},PrintScreen:{label:"Print Screen",value:an.XK_Print}},tc={KeyN:{label:"N",value:an.XK_n},KeyT:{label:"T",value:an.XK_t},KeyW:{label:"W",value:an.XK_w},KeyY:{label:"Y",value:an.XK_y}},nc={F1:{label:"F1",value:an.XK_F1},F2:{label:"F2",value:an.XK_F2},F3:{label:"F3",value:an.XK_F3},F4:{label:"F4",value:an.XK_F4},F5:{label:"F5",value:an.XK_F5},F6:{label:"F6",value:an.XK_F6},F7:{label:"F7",value:an.XK_F7},F8:{label:"F8",value:an.XK_F8},F9:{label:"F9",value:an.XK_F9},F10:{label:"F10",value:an.XK_F10},F11:{label:"F11",value:an.XK_F11},F12:{label:"F12",value:an.XK_F12}};var rc={name:"NovncConsoleWrapper",components:{NovncConsole:Nl,NovncConsoleItem:Dl,NovncConsoleCustomKeys:Ql},async fetch(){const e={vmResource:this.$store.dispatch("harvester/find",{type:l.rk.VM,id:this.value.id})},t=await(0,ce.kR)(e);this.vmResource=t.vmResource},props:{value:{type:Object,required:!0,default:()=>({})}},data(){return{keysRecord:[],vmResource:{},renderKeysModal:!1,currentUser:null,hideCustomKeysBar:!1}},computed:{savedShortcutKeys(){const e=this.$store.getters["management/all"]($.m4.PREFERENCE),t=e?.[0]?.data?.[Jl];let n=[];if(!e?.[0]?.data)return this.hideCustomKeysBar=!0,n;if(!t)return n;try{n=JSON.parse(t)}catch(Go){this.$store.dispatch("growl/fromError",{title:this.t("generic.notification.title.error",{name:(0,rn.ZD)(this.value.metadata.name)}),err:Go},{root:!0})}return n},isDown(){return this.isEmpty(this.value)},url(){const e=`${window.location.hostname}:${window.location.port}`;return`wss://${e}${this.value?.getVMIApiPath}`},allKeys(){return{...Zl,...ec,...tc,...nc}},keymap(){const e={...Zl,PrintScreen:ec.PrintScreen,...nc};return e.AltLeft.keys={PrintScreen:ec.PrintScreen,...nc},e.ControlLeft.keys={AltLeft:{...Object.assign(Zl.AltLeft,{}),keys:{Delete:ec.Delete}},...tc},e},hasSoftRebootAction(){return!!this.vmResource?.actions?.softreboot},preferredShortcutKeys(){return(this.savedShortcutKeys||[]).map((e=>({label:e.map((e=>e.key.charAt(0).toUpperCase()+e.key.slice(1))).join("+"),value:e})))}},methods:{isEmpty(e){return void 0!==e&&0===Object.keys(e).length},close(){this.$refs.novncConsole.disconnect()},update({key:e,pos:t}){this.keysRecord.splice(t,this.keysRecord.length-t,e)},sendKeys(){this.keysRecord.forEach((e=>{this.$refs.novncConsole.sendKey(this.allKeys[e].value,e,!0)})),this.keysRecord.reverse().forEach((e=>{this.$refs.novncConsole.sendKey(this.allKeys[e].value,e,!1)})),this.$refs.popover.isOpen=!1,this.keysRecord=[]},sendCustomKeys(e){const t=[].concat(e);t.forEach((e=>{this.$refs.novncConsole.sendKey(Bn(e),Pn(e),!0)})),t.reverse().forEach((e=>{this.$refs.novncConsole.sendKey(Bn(e),Pn(e),!1)}))},softReboot(){this.vmResource.softrebootVM()},showKeysModal(){this.renderKeysModal=!0},hideKeysModal(){this.renderKeysModal=!1}}};a(42596);const ic=(0,u.A)(rc,[["render",nn],["__scopeId","data-v-55ed4d1a"]]);var ac=ic,oc={components:{NovncConsoleWrapper:ac,Loading:Me.A},async fetch(){this.rows=await this.$store.dispatch("harvester/findAll",{type:l.rk.VMI})},data(){return{uid:this.$route.params.uid}},computed:{vmi(){const e=this.$store.getters["harvester/all"](l.rk.VMI)||[],t=e.find((e=>e?.metadata?.ownerReferences?.[0]?.uid===this.uid));return t}},mounted(){window.addEventListener("beforeunload",(()=>{this.$refs.console.close()}))},head(){return{title:this.vmi?.metadata?.name}}};a(9252);const sc=(0,u.A)(oc,[["render",Xt]]);var lc=sc;function cc(e,t,n,r,a,o){const s=(0,i.resolveComponent)("ResourceList");return(0,i.openBlock)(),(0,i.createBlock)(s)}const uc={key:2,class:"outlet"},dc={key:1};function hc(e,t,n,r,a,o){const s=(0,i.resolveComponent)("IconMessage"),l=(0,i.resolveComponent)("Masthead"),c=(0,i.resolveComponent)("ExtensionPanel"),u=(0,i.resolveComponent)("ResourceTable");return e.namespaceFilterRequired?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0,vertical:!0,subtle:!1,icon:"icon-filter_alt"},{message:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("resourceList.nsFiltering")),1)])),_:1})):e.paginationNsFilterRequired?((0,i.openBlock)(),(0,i.createBlock)(s,{key:1,vertical:!0,subtle:!1,icon:"icon-filter_alt"},{message:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("resourceList.nsFilteringGeneric")),1)])),_:1})):((0,i.openBlock)(),(0,i.createElementBlock)("div",uc,[a.showMasthead?((0,i.openBlock)(),(0,i.createBlock)(l,{key:0,"type-display":a.customTypeDisplay,schema:a.schema,resource:a.resource,"show-incremental-loading-indicator":o.showIncrementalLoadingIndicator,"load-resources":a.loadResources,"load-indeterminate":a.loadIndeterminate},{extraActions:(0,i.withCtx)((()=>[(0,i.renderSlot)(e.$slots,"extraActions",{},void 0,!0)])),_:3},8,["type-display","schema","resource","show-incremental-loading-indicator","load-resources","load-indeterminate"])):(0,i.createCommentVNode)("",!0),(0,i.createVNode)(c,{resource:{},type:a.extensionType,location:a.extensionLocation},null,8,["type","location"]),a.hasListComponent?((0,i.openBlock)(),(0,i.createElementBlock)("div",dc,[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e.listComponent),(0,i.mergeProps)({"incremental-loading-indicator":o.showIncrementalLoadingIndicator,rows:e.rows},e.$data),null,16,["incremental-loading-indicator","rows"]))])):((0,i.openBlock)(),(0,i.createBlock)(u,{key:2,schema:a.schema,rows:e.rows,"alt-loading":e.canPaginate&&!e.isFirstLoad,loading:e.loading,headers:o.headers,"group-by":o.groupBy,"has-advanced-filtering":n.hasAdvancedFiltering,"adv-filter-hide-labels-as-cols":n.advFilterHideLabelsAsCols,"adv-filter-prevent-filtering-labels":n.advFilterPreventFilteringLabels,"use-query-params-for-simple-filtering":a.useQueryParamsForSimpleFiltering,"force-update-live-and-delayed":e.forceUpdateLiveAndDelayed,"external-pagination-enabled":e.canPaginate,"external-pagination-result":e.paginationResult,onPaginationChanged:e.paginationChanged},null,8,["schema","rows","alt-loading","loading","headers","group-by","has-advanced-filtering","adv-filter-hide-labels-as-cols","adv-filter-prevent-filtering-labels","use-query-params-for-simple-filtering","force-update-live-and-delayed","external-pagination-enabled","external-pagination-result","onPaginationChanged"]))]))}var pc=a(53500),fc=a(66656),mc=a(44453),gc=a(23667);const vc={class:"message"};function bc(e,t,n,r,a,o){return(0,i.openBlock)(),(0,i.createElementBlock)("div",{class:(0,i.normalizeClass)(["message-icon",{vertical:n.vertical,subtle:n.subtle}])},[(0,i.createElementVNode)("i",{class:(0,i.normalizeClass)(["icon",{[n.icon]:!0,[n.iconState]:!!n.iconState}])},null,2),(0,i.createElementVNode)("div",vc,[(0,i.renderSlot)(e.$slots,"message",{},(()=>[n.messageKey?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[(0,i.createTextVNode)((0,i.toDisplayString)(e.t(n.messageKey)),1)],64)):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createTextVNode)((0,i.toDisplayString)(n.message),1)],64))]),!0)])],2)}var yc={props:{vertical:{type:Boolean,default:!1},icon:{type:String,required:!0},iconState:{type:String,default:null},message:{type:String,default:null},messageKey:{type:String,default:null},subtle:{type:Boolean,default:!1}}};a(47668);const wc=(0,u.A)(yc,[["render",bc],["__scopeId","data-v-01996ade"]]);var Ec=wc,_c=a(90703),Sc=a(31915);const kc={key:0};function xc(e,t,n,r,a,o){return a.extensionData.length?((0,i.openBlock)(),(0,i.createElementBlock)("div",kc,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(a.extensionData,((e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)("div",{key:`extensionData${n.location}${t}`},[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e.component),{resource:n.resource},null,8,["resource"]))])))),128))])):(0,i.createCommentVNode)("",!0)}var Ac=a(25659),Nc={name:"ExtensionPanel",props:{resource:{type:Object,default:()=>({})},type:{type:String,default:""},location:{type:String,default:""}},data(){return{extensionData:(0,Ac.A)(this,this.type,this.location,this.$route)}}};const Cc=(0,u.A)(Nc,[["render",xc]]);var Tc=Cc,Rc={name:_c.v,components:{Loading:Me.A,ResourceTable:pc.A,Masthead:fc.A,ResourceLoadingIndicator:mc.A,IconMessage:Ec,ExtensionPanel:Tc},mixins:[gc.A],props:{hasAdvancedFiltering:{type:Boolean,default:!1},advFilterHideLabelsAsCols:{type:Boolean,default:!1},advFilterPreventFilteringLabels:{type:Boolean,default:!1}},async fetch(){const e=this.$store,t=this.resource,n=this.schema;if(this.hasListComponent){const e=this.listComponent,n=await e.__asyncLoader();if(n?.typeDisplay&&(this.customTypeDisplay=n.typeDisplay.apply(this)),(n?.fetch||n?.components?.["PaginatedResourceTable"])&&(this.componentWillFetch=!0),n?.$loadingResources){const{loadResources:e,loadIndeterminate:r}=n?.$loadingResources(this.$route,this.$store);this.loadResources=e||[t],this.loadIndeterminate=r||!1}}if(!this.componentWillFetch){if(!n)return void e.dispatch("loadingError",new Error(this.t("nav.failWhale.resourceListNotFound",{resource:t},!0)));this.namespaceFilterRequired||this.canPaginate&&!this.refreshFlag||await this.$fetchType(t)}},data(){const e=this.$store.getters,t={...this.$route.params},n=t.resource,r=e["type-map/hasCustomList"](n),i=e["currentStore"](n),a=e[`${i}/schemaFor`](n),o=e["type-map/optionsFor"](n).showListMasthead;return{schema:a,hasListComponent:r,showMasthead:void 0===o||o,resource:n,extensionType:Sc.c7.PANEL,extensionLocation:Sc.W7.RESOURCE_LIST,loadResources:[n],componentWillFetch:!1,manualRefreshInit:!1,watch:!1,force:!1,customTypeDisplay:null,loadIndeterminate:!1,useQueryParamsForSimpleFiltering:!0}},computed:{headers(){return this.hasListComponent||!this.schema?[]:this.$store.getters["type-map/headersFor"](this.schema,this.canPaginate)},groupBy(){return this.$store.getters["type-map/groupByFor"](this.schema)},showIncrementalLoadingIndicator(){return this.perfConfig?.incrementalLoading?.enabled}},watch:{namespaceFilter(e,t){if(e&&!this.componentWillFetch){if((0,Se.P1)(e,t))return;this.$fetchType(this.resource)}},pagination(e,t){!e||this.componentWillFetch||this.paginationEqual(e,t)||this.$fetchType(this.resource)},rows(e){this.pagination&&this.pagination.page>1&&0===e.length&&this.setPagination({...this.pagination,page:this.pagination.page-1})}},created(){let e=!1;const t=this.$route.params.resource,n=this.$store.getters["type-map/hasCustomList"](t);n&&(e=this.$store.getters["type-map/importList"](t)),this.listComponent=e}};a(44220);const Oc=(0,u.A)(Rc,[["render",hc],["__scopeId","data-v-515e48d4"]]);var Ic=Oc,Lc={name:"HarvesterResourcedList",components:{ResourceList:Ic}};const Dc=(0,u.A)(Lc,[["render",cc]]);var Pc=Dc;const Mc={key:1},Bc={class:"mb-20"},Fc={class:"row mb-20"},$c={class:"col span-6"},Uc={class:"mt-20 mb-5 pb-5"},jc={class:"text-label"},Vc={class:"row mt-10 mb-20"},Kc={key:0,class:"row mb-20"},Hc={class:"col logo-container span-6"},Gc={class:"mb-10"},zc={class:"text-muted"},qc=["src"],Xc={class:"col logo-container span-6"},Wc={class:"mb-10"},Yc={class:"text-muted"},Qc=["src"],Jc={class:"mt-20 mb-5 pb-5"},Zc={class:"text-label"},eu={class:"row mt-10 mb-20"},tu={key:1,class:"row mb-20"},nu={class:"col logo-container span-12"},ru={class:"mb-10"},iu={class:"text-muted"},au=["src"],ou={class:"mt-40 mb-5 pb-0"},su={class:"text-label"},lu={class:"row mt-20"},cu={key:2,class:"row mt-20 mb-20"},uu={class:"mt-40 mb-5 pb-0"},du={class:"text-label"},hu={class:"row mt-20"},pu={key:3,class:"row mt-20 mb-20"},fu={class:"col link-example"},mu={key:0};function gu(e,t,n,r,a,o){const s=(0,i.resolveComponent)("Loading"),l=(0,i.resolveComponent)("TypeDescription"),c=(0,i.resolveComponent)("LabeledInput"),u=(0,i.resolveComponent)("Checkbox"),d=(0,i.resolveComponent)("FileSelector"),h=(0,i.resolveComponent)("SimpleBox"),p=(0,i.resolveComponent)("ColorInput"),f=(0,i.resolveComponent)("Banner"),m=(0,i.resolveComponent)("AsyncButton");return e.$fetchState.pending?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0})):((0,i.openBlock)(),(0,i.createElementBlock)("div",Mc,[(0,i.createElementVNode)("h1",Bc,(0,i.toDisplayString)(e.t("branding.label")),1),(0,i.createVNode)(l,{resource:"harvester"}),(0,i.createElementVNode)("div",null,[(0,i.createElementVNode)("div",Fc,[(0,i.createElementVNode)("div",$c,[(0,i.createVNode)(c,{value:a.uiPLSetting.value,"onUpdate:value":t[0]||(t[0]=e=>a.uiPLSetting.value=e),label:e.t("branding.uiPL.label"),mode:o.mode,maxlength:100},null,8,["value","label","mode"])])]),(0,i.createElementVNode)("h3",Uc,(0,i.toDisplayString)(e.t("branding.logos.label")),1),(0,i.createElementVNode)("label",jc,(0,i.toDisplayString)(e.t("harvester.branding.logos.tip",{},!0)),1),(0,i.createElementVNode)("div",Vc,[(0,i.createVNode)(u,{value:a.customizeLogo,"onUpdate:value":t[1]||(t[1]=e=>a.customizeLogo=e),label:e.t("branding.logos.useCustom"),mode:o.mode},null,8,["value","label","mode"])]),a.customizeLogo?((0,i.openBlock)(),(0,i.createElementBlock)("div",Kc,[(0,i.createElementVNode)("div",Hc,[(0,i.createElementVNode)("div",Gc,[(0,i.createVNode)(d,{"byte-limit":2e4,"read-as-data-url":!0,class:"role-secondary",label:e.t("branding.logos.uploadLight"),mode:o.mode,onError:o.setError,onSelected:t[2]||(t[2]=e=>o.updateLogo(e,"uiLogoLight"))},null,8,["label","mode","onError"])]),a.uiLogoLight||a.uiLogoDark?((0,i.openBlock)(),(0,i.createBlock)(h,{key:0,class:"theme-light mb-10"},{default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("label",zc,(0,i.toDisplayString)(e.t("branding.logos.lightPreview")),1),(0,i.createElementVNode)("img",{class:"logo-preview",src:a.uiLogoLight?a.uiLogoLight:a.uiLogoDark},null,8,qc)])),_:1})):(0,i.createCommentVNode)("",!0)]),(0,i.createElementVNode)("div",Xc,[(0,i.createElementVNode)("div",Wc,[(0,i.createVNode)(d,{"byte-limit":2e4,"read-as-data-url":!0,class:"role-secondary",label:e.t("branding.logos.uploadDark"),mode:o.mode,onError:o.setError,onSelected:t[3]||(t[3]=e=>o.updateLogo(e,"uiLogoDark"))},null,8,["label","mode","onError"])]),a.uiLogoDark||a.uiLogoLight?((0,i.openBlock)(),(0,i.createBlock)(h,{key:0,class:"theme-dark mb-10"},{default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("label",Yc,(0,i.toDisplayString)(e.t("branding.logos.darkPreview")),1),(0,i.createElementVNode)("img",{class:"logo-preview",src:a.uiLogoDark?a.uiLogoDark:a.uiLogoLight},null,8,Qc)])),_:1})):(0,i.createCommentVNode)("",!0)])])):(0,i.createCommentVNode)("",!0),(0,i.createElementVNode)("h3",Jc,(0,i.toDisplayString)(e.t("branding.favicon.label")),1),(0,i.createElementVNode)("label",Zc,(0,i.toDisplayString)(e.t("harvester.branding.favicon.tip",{},!0)),1),(0,i.createElementVNode)("div",eu,[(0,i.createVNode)(u,{value:a.customizeFavicon,"onUpdate:value":t[4]||(t[4]=e=>a.customizeFavicon=e),label:e.t("branding.favicon.useCustom"),mode:o.mode},null,8,["value","label","mode"])]),a.customizeFavicon?((0,i.openBlock)(),(0,i.createElementBlock)("div",tu,[(0,i.createElementVNode)("div",nu,[(0,i.createElementVNode)("div",ru,[(0,i.createVNode)(d,{"byte-limit":2e4,"read-as-data-url":!0,class:"role-secondary",label:e.t("branding.favicon.upload"),mode:o.mode,onError:o.setError,onSelected:t[5]||(t[5]=e=>o.updateLogo(e,"uiFavicon"))},null,8,["label","mode","onError"])]),a.uiFavicon?((0,i.openBlock)(),(0,i.createBlock)(h,{key:0},{default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("label",iu,(0,i.toDisplayString)(e.t("branding.favicon.preview")),1),(0,i.createElementVNode)("img",{class:"logo-preview",src:a.uiFavicon},null,8,au)])),_:1})):(0,i.createCommentVNode)("",!0)])])):(0,i.createCommentVNode)("",!0),(0,i.createElementVNode)("h3",ou,(0,i.toDisplayString)(e.t("branding.color.label")),1),(0,i.createElementVNode)("label",su,(0,i.toDisplayString)(e.t("branding.color.tip",{},!0)),1),(0,i.createElementVNode)("div",lu,[(0,i.createVNode)(u,{value:a.customizeColor,"onUpdate:value":t[6]||(t[6]=e=>a.customizeColor=e),label:e.t("branding.color.useCustom"),mode:o.mode},null,8,["value","label","mode"])]),a.customizeColor?((0,i.openBlock)(),(0,i.createElementBlock)("div",cu,[(0,i.createVNode)(p,{value:a.uiColor,"onUpdate:value":t[7]||(t[7]=e=>a.uiColor=e),"component-testid":"primary"},null,8,["value"])])):(0,i.createCommentVNode)("",!0),(0,i.createElementVNode)("h3",uu,(0,i.toDisplayString)(e.t("branding.linkColor.label")),1),(0,i.createElementVNode)("label",du,(0,i.toDisplayString)(e.t("branding.linkColor.tip",{},!0)),1),(0,i.createElementVNode)("div",hu,[(0,i.createVNode)(u,{value:a.customizeLinkColor,"onUpdate:value":t[8]||(t[8]=e=>a.customizeLinkColor=e),label:e.t("branding.linkColor.useCustom"),mode:o.mode},null,8,["value","label","mode"])]),a.customizeLinkColor?((0,i.openBlock)(),(0,i.createElementBlock)("div",pu,[(0,i.createVNode)(p,{value:a.uiLinkColor,"onUpdate:value":t[9]||(t[9]=e=>a.uiLinkColor=e),class:"col","component-testid":"link"},null,8,["value"]),(0,i.createElementVNode)("span",fu,[(0,i.createElementVNode)("a",{style:(0,i.normalizeStyle)(o.customLinkColor)},(0,i.toDisplayString)(e.t("branding.linkColor.example")),5)])])):(0,i.createCommentVNode)("",!0)]),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(a.errors,((e,t)=>((0,i.openBlock)(),(0,i.createBlock)(f,{key:t,color:"error",label:e},null,8,["label"])))),128)),"edit"===o.mode?((0,i.openBlock)(),(0,i.createElementBlock)("div",mu,[(0,i.createVNode)(m,{"component-testid":"branding-apply",class:"pull-right mt-20",mode:"apply",onClick:o.save},null,8,["onClick"])])):(0,i.createCommentVNode)("",!0)]))}var vu=a(79380);const bu=["data-testid","tabindex"],yu={class:"text-label"},wu=["data-testid"],Eu=["aria-disabled","aria-label","disabled","value"],_u={class:"text-muted color-value"};function Su(e,t,n,r,a,o){const s=(0,i.resolveComponent)("t");return(0,i.openBlock)(),(0,i.createElementBlock)("div",{class:(0,i.normalizeClass)(["color-input",{[n.mode]:n.mode,disabled:o.isDisabled}]),"data-testid":n.componentTestid+"-color-input",tabindex:o.isDisabled?-1:0,onKeyup:t[2]||(t[2]=(0,i.withKeys)((0,i.withModifiers)((e=>o.handleKeyup(e)),["stop"]),["enter","space"]))},[(0,i.createElementVNode)("label",yu,[n.labelKey?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0,k:n.labelKey,raw:!0},null,8,["k"])):(0,i.createCommentVNode)("",!0),(0,i.createTextVNode)((0,i.toDisplayString)(n.label),1)]),(0,i.createElementVNode)("div",{"data-testid":n.componentTestid+"-color-input_preview-container",class:"preview-container",onClick:t[1]||(t[1]=(0,i.withModifiers)((t=>e.$refs.input.click(t)),["stop"]))},[(0,i.createElementVNode)("span",{style:(0,i.normalizeStyle)({"background-color":o.inputValue}),class:"color-display"},[(0,i.createElementVNode)("input",{ref:"input","aria-disabled":o.isDisabled?"true":"false","aria-label":e.t("generic.colorPicker"),type:"color",disabled:o.isDisabled,tabindex:"-1",value:o.inputValue,onInput:t[0]||(t[0]=t=>e.$emit("update:value",t.target.value))},null,40,Eu)],4),(0,i.createElementVNode)("span",_u,(0,i.toDisplayString)(o.inputValue),1)],8,wu)],42,bu)}var ku=a(14220),xu={emits:["update:value"],props:{value:{type:String,default:""},defaultValue:{type:String,default:""},label:{type:String,default:null},labelKey:{type:String,default:null},mode:{type:String,validator(e){return[ku.G5,ku.nW].includes(e)},default:ku.G5},componentTestid:{type:String,default:"color-input"},disabled:{type:Boolean,default:!1}},data(){return{viewMode:ku.nW,editMode:ku.G5}},computed:{inputValue(){return this.value?this.value:this.defaultValue},isDisabled(){const e=this.disabled;return this.mode!==this.editMode||e}},mounted(){this.$emit("update:value",this.inputValue)},methods:{handleKeyup(e){return this.isDisabled?"":this.$refs.input.click(e)}}};a(41772);const Au=(0,u.A)(xu,[["render",Su],["__scopeId","data-v-4b3e7faa"]]);var Nu=Au,Cu=a(89559),Tu=a(42200),Ru=a(29649),Ou=a(9980),Iu=a(34765);let Lu=!1;function Du(e){const t=e.getters["management/byId"]($.Mc.SETTING,U.HG.FAVICON),n=e.getters["management/byId"]($.Mc.SETTING,U.HG.BRAND),r=Mu(document.head.getElementsByTagName("link"));if(r){let e;"suse"===n?.value?e=a(17089):"csp"===n?.value?e=a(31365):"harvester"===n?.value&&(e=a(23561)),r.href=t?.value||e||Bu,Lu=!0}}function Pu(){const e=Mu(document.head.getElementsByTagName("link"));return e?e.href:""}function Mu(e){for(let t=0;t<e.length;t++){const n=e[t];if(n.rel?.includes("icon"))return n}}const Bu=Pu(),Fu=a(70465);var $u={components:{LabeledInput:vu.o,Checkbox:Tu.S,FileSelector:Ru.A,Loading:Me.A,SimpleBox:ae.A,AsyncButton:zl.A,Banner:Ou.l,ColorInput:Nu,TypeDescription:Cu.A},async fetch(){const e=await(0,ce.kR)({uiPLSetting:this.$store.dispatch("management/find",{type:$.Mc.SETTING,id:U.HG.PL}),uiLogoDarkSetting:(0,Iu.eB)(this.$store,U.HG.LOGO_DARK,""),uiLogoLightSetting:(0,Iu.eB)(this.$store,U.HG.LOGO_LIGHT,""),uiColorSetting:(0,Iu.eB)(this.$store,U.HG.PRIMARY_COLOR,""),uiLinkColorSetting:(0,Iu.eB)(this.$store,U.HG.LINK_COLOR,""),uiFaviconSetting:(0,Iu.eB)(this.$store,U.HG.FAVICON,"")});if(Object.assign(this,e),e.uiLogoDarkSetting.value)try{this.uiLogoDark=e.uiLogoDarkSetting.value,this.customizeLogo=!0}catch{}if(e.uiLogoLightSetting.value)try{this.uiLogoLight=e.uiLogoLightSetting.value,this.customizeLogo=!0}catch{}if(e.uiFaviconSetting.value)try{this.uiFavicon=e.uiFaviconSetting.value,this.customizeFavicon=!0}catch{}e.uiColorSetting.value&&(this.uiColor=Fu(e.uiColorSetting.value).hex(),this.customizeColor=!0),e.uiLinkColorSetting.value&&(this.uiLinkColor=Fu(e.uiLinkColorSetting.value).hex(),this.customizeLinkColor=!0)},data(){return{vendor:(0,le.f7)(),uiPLSetting:{},uiLogoDarkSetting:{},uiLogoDark:"",uiLogoLightSetting:{},uiLogoLight:"",customizeLogo:!1,uiFaviconSetting:{},uiFavicon:"",customizeFavicon:!1,uiColorSetting:{},uiColor:null,customizeColor:!1,uiLinkColorSetting:{},uiLinkColor:null,customizeLinkColor:!1,errors:[]}},computed:{mode(){const e=this.$store.getters["management/schemaFor"]($.Mc.SETTING);return e?.resourceMethods?.includes("PUT")?ku.G5:ku.nW},customLinkColor(){return{color:this.uiLinkColor}}},mounted(){let e=getComputedStyle(document.body).getPropertyValue("--primary"),t=getComputedStyle(document.body).getPropertyValue("--link");const n=document.querySelector(".suse");n&&(e=getComputedStyle(n).getPropertyValue("--primary"),t=getComputedStyle(n).getPropertyValue("--link")),this.uiColor=this.uiColor||e.trim(),this.uiLinkColor=this.uiLinkColor||t.trim()},methods:{updateLogo(e,t){this[t]=e},setError(e){this.errors=[],this.errors.push(e)},async save(e){this.uiPLSetting.value=this.uiPLSetting.value.replaceAll(/[\<>&=#()"]/gm,""),this.customizeLogo?(this.uiLogoLightSetting.value=this.uiLogoLight,this.uiLogoDarkSetting.value=this.uiLogoDark):(this.uiLogoLightSetting.value="",this.uiLogoDarkSetting.value=""),this.customizeFavicon?this.uiFaviconSetting.value=this.uiFavicon:this.uiFaviconSetting.value="",this.customizeColor?this.uiColorSetting.value=Fu(this.uiColor).rgb().string():this.uiColorSetting.value=null,this.customizeLinkColor?this.uiLinkColorSetting.value=Fu(this.uiLinkColor).rgb().string():this.uiLinkColorSetting.value=null,this.errors=[];try{await Promise.all([this.uiPLSetting.save(),this.uiLogoDarkSetting.save(),this.uiLogoLightSetting.save(),this.uiColorSetting.save(),this.uiLinkColorSetting.save(),this.uiFaviconSetting.save()]),this.uiPLSetting.value!==this.vendor&&(0,le.xc)(this.uiPLSetting.value),Du(this.$store),e(!0)}catch(Go){this.errors.push(Go),e(!1)}}}};a(75280);const Uu=(0,u.A)($u,[["render",gu],["__scopeId","data-v-45ae37da"]]);var ju=Uu;function Vu(e,t,n,r,a,o){const s=(0,i.resolveComponent)("ResourceDetail");return(0,i.openBlock)(),(0,i.createBlock)(s)}const Ku={key:1},Hu={key:1,id:"cru-errors",class:"cru__errors"},Gu=["data-testid"],zu=["data-testid"],qu=["data-testid"],Xu=["data-testid"];function Wu(e,t,n,r,a,o){const s=(0,i.resolveComponent)("Loading"),l=(0,i.resolveComponent)("DetailTop"),c=(0,i.resolveComponent)("Masthead"),u=(0,i.resolveComponent)("Banner"),d=(0,i.resolveComponent)("ForceDirectedTreeChart"),h=(0,i.resolveComponent)("ResourceYaml"),p=(0,i.resolveDirective)("shortkey");return e.$fetchState.pending||a.notFound?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0})):((0,i.openBlock)(),(0,i.createElementBlock)("div",Ku,[e.showMasthead?((0,i.openBlock)(),(0,i.createBlock)(c,{key:0,resource:a.resourceType,value:a.liveModel,mode:a.mode,"real-mode":o.realMode,as:a.as,"has-graph":a.hasGraph,"has-detail":a.hasCustomDetail,"has-edit":a.hasCustomEdit,"can-view-yaml":a.canViewYaml,"resource-subtype":a.resourceSubtype,"parent-route-override":n.parentRouteOverride,"store-override":n.storeOverride},{default:(0,i.withCtx)((()=>[o.isView&&o.isDetail?((0,i.openBlock)(),(0,i.createBlock)(l,{key:0,value:a.liveModel},null,8,["value"])):(0,i.createCommentVNode)("",!0)])),_:1},8,["resource","value","mode","real-mode","as","has-graph","has-detail","has-edit","can-view-yaml","resource-subtype","parent-route-override","store-override"])):(0,i.createCommentVNode)("",!0),o.hasErrors?((0,i.openBlock)(),(0,i.createElementBlock)("div",Hu,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(a.errors,((e,t)=>((0,i.openBlock)(),(0,i.createBlock)(u,{key:t,color:"error","data-testid":`error-banner${t}`,label:o.stringify(o.mappedErrors[e].message),icon:o.mappedErrors[e].icon,closable:!0,onClose:e=>o.closeError(t)},null,8,["data-testid","label","icon","onClose"])))),128))])):(0,i.createCommentVNode)("",!0),o.isGraph&&a.canViewChart?((0,i.openBlock)(),(0,i.createBlock)(d,{key:2,data:a.chartData,"fdc-config":e.getGraphConfig},null,8,["data","fdc-config"])):o.isYaml?((0,i.openBlock)(),(0,i.createBlock)(h,{key:3,ref:"resourceyaml",value:a.value,mode:a.mode,yaml:a.yaml,"offer-preview":o.offerPreview,"done-route":e.doneRoute,"done-override":a.value?a.value.doneOverride:null,"onUpdate:value":t[0]||(t[0]=t=>e.$emit("input",t)),onError:t[1]||(t[1]=e=>a.errors.push(e))},null,8,["value","mode","yaml","offer-preview","done-route","done-override"])):((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(o.showComponent),(0,i.mergeProps)({key:4,ref:"comp",value:a.value,"onUpdate:value":t[2]||(t[2]=e=>a.value=e)},e.$data,{"done-params":e.doneParams,"done-route":e.doneRoute,mode:a.mode,"initial-value":a.initialModel,"live-value":a.liveModel,"real-mode":o.realMode,"onUpdate:value":t[3]||(t[3]=t=>e.$emit("input",t)),onSetSubtype:o.setSubtype}),null,16,["value","done-params","done-route","mode","initial-value","live-value","real-mode","onSetSubtype"])),o.isView?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("button",{key:5,"data-testid":n.componentTestid+"-detail",class:"hide",onShortkey:t[4]||(t[4]=e=>o.keyAction("goToDetail"))},null,40,Gu)),[[p,["shift","d"],void 0,{once:!0}]]):(0,i.createCommentVNode)("",!0),o.isView?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("button",{key:6,"data-testid":n.componentTestid+"-config",class:"hide",onShortkey:t[5]||(t[5]=e=>o.keyAction("goToViewConfig"))},null,40,zu)),[[p,["shift","c"],void 0,{once:!0}]]):(0,i.createCommentVNode)("",!0),o.isView?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("button",{key:7,"data-testid":n.componentTestid+"-yaml",class:"hide",onShortkey:t[6]||(t[6]=e=>o.keyAction("goToViewYaml"))},null,40,qu)),[[p,["shift","y"],void 0,{once:!0}]]):(0,i.createCommentVNode)("",!0),o.isView?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("button",{key:8,"data-testid":n.componentTestid+"-edit",class:"hide",onShortkey:t[7]||(t[7]=e=>o.keyAction("goToEdit"))},null,40,Xu)),[[p,["shift","e"],void 0,{once:!0}]]):(0,i.createCommentVNode)("",!0)]))}var Yu=a(65375),Qu=a(63354),Ju=a(37648);const Zu={class:"masthead"},ed={class:"title"},td={class:"primaryheader"},nd={key:3},rd={key:4},id={key:7,class:"masthead-istio"},ad={class:"icon icon-sm icon-istio"},od=["href"],sd={key:0,class:"subheader"},ld={key:0},cd={key:1},ud={key:2},dd={key:1},hd={key:3},pd={key:4},fd={class:"live-data"},md={class:"actions-container align-start"},gd={class:"actions"},vd=["disabled"];function bd(e,t,n,r,a,o){const s=(0,i.resolveComponent)("TabTitle"),l=(0,i.resolveComponent)("router-link"),c=(0,i.resolveComponent)("t"),u=(0,i.resolveComponent)("BadgeState"),d=(0,i.resolveComponent)("LiveDate"),h=(0,i.resolveComponent)("ButtonGroup"),p=(0,i.resolveComponent)("ExtensionPanel"),f=(0,i.resolveComponent)("Banner"),m=(0,i.resolveDirective)("clean-tooltip");return(0,i.openBlock)(),(0,i.createElementBlock)("div",Zu,[(0,i.createElementVNode)("header",null,[(0,i.createElementVNode)("div",ed,[(0,i.createElementVNode)("div",td,[(0,i.createElementVNode)("h1",null,[o.isCreate?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0,showChild:!1},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(o.parent.displayName),1)])),_:1})):((0,i.openBlock)(),(0,i.createBlock)(s,{key:1,showChild:!1},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(o.displayName),1)])),_:1})),o.location?((0,i.openBlock)(),(0,i.createBlock)(l,{key:2,to:o.location,role:"link",class:"masthead-resource-list-link","aria-label":o.parent.displayName},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(o.parent.displayName)+": ",1)])),_:1},8,["to","aria-label"])):((0,i.openBlock)(),(0,i.createElementBlock)("span",nd,(0,i.toDisplayString)(o.parent.displayName)+":",1)),n.value?.detailPageHeaderActionOverride&&n.value?.detailPageHeaderActionOverride(n.realMode)?((0,i.openBlock)(),(0,i.createElementBlock)("span",rd,(0,i.toDisplayString)(n.value?.detailPageHeaderActionOverride(n.realMode)),1)):((0,i.openBlock)(),(0,i.createBlock)(c,{key:5,class:"masthead-resource-title",k:"resourceDetail.header."+n.realMode,subtype:n.resourceSubtype,name:o.displayName,escapehtml:!1},null,8,["k","subtype","name"])),!o.isCreate&&o.parent.showState?((0,i.openBlock)(),(0,i.createBlock)(u,{key:6,class:"masthead-state",value:n.value},null,8,["value"])):(0,i.createCommentVNode)("",!0),!o.isCreate&&n.value.injectionEnabled?((0,i.openBlock)(),(0,i.createElementBlock)("span",id,[(0,i.withDirectives)((0,i.createElementVNode)("i",ad,null,512),[[m,e.t("projectNamespaces.isIstioInjectionEnabled")]])])):(0,i.createCommentVNode)("",!0),o.dev&&o.resourceExternalLink?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("a",{key:8,class:"resource-external",rel:"nofollow noopener noreferrer",target:"_blank",href:o.resourceExternalLink.url},t[3]||(t[3]=[(0,i.createElementVNode)("i",{class:"icon icon-external-link"},null,-1)]),8,od)),[[m,e.t(o.resourceExternalLink.tipsKey||"generic.resourceExternalLinkTips")]]):(0,i.createCommentVNode)("",!0)])]),o.isCreate?(0,i.createCommentVNode)("",!0):((0,i.openBlock)(),(0,i.createElementBlock)("div",sd,[o.isNamespace&&o.project?((0,i.openBlock)(),(0,i.createElementBlock)("span",ld,[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("resourceDetail.masthead.project"))+": ",1),(0,i.createVNode)(l,{to:o.project.detailLocation},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(o.project.nameDisplay),1)])),_:1},8,["to"])])):o.isWorkspace?((0,i.openBlock)(),(0,i.createElementBlock)("span",cd,[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("resourceDetail.masthead.workspace"))+": ",1),(0,i.createVNode)(l,{to:o.workspaceLocation},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(o.namespace),1)])),_:1},8,["to"])])):o.namespace&&!o.hasMultipleNamespaces?((0,i.openBlock)(),(0,i.createElementBlock)("span",ud,[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("resourceDetail.masthead.namespace"))+": ",1),o.hideNamespaceLocation?((0,i.openBlock)(),(0,i.createElementBlock)("span",dd,(0,i.toDisplayString)(o.namespace),1)):((0,i.openBlock)(),(0,i.createBlock)(l,{key:0,to:o.namespaceLocation,"data-testid":"masthead-subheader-namespace"},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(o.namespace),1)])),_:1},8,["to"]))])):(0,i.createCommentVNode)("",!0),o.parent.showAge?((0,i.openBlock)(),(0,i.createElementBlock)("span",hd,[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("resourceDetail.masthead.age"))+": ",1),(0,i.createVNode)(d,{class:"live-date",value:n.value.creationTimestamp},null,8,["value"])])):(0,i.createCommentVNode)("",!0),n.value.showPodRestarts?((0,i.openBlock)(),(0,i.createElementBlock)("span",pd,[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("resourceDetail.masthead.restartCount"))+":",1),(0,i.createElementVNode)("span",fd,(0,i.toDisplayString)(n.value.restartCount),1)])):(0,i.createCommentVNode)("",!0)]))]),(0,i.renderSlot)(e.$slots,"right",{},(()=>[(0,i.createElementVNode)("div",md,[(0,i.createElementVNode)("div",gd,[o.detailsAction&&o.currentView===a.DETAIL_VIEW&&o.isView?((0,i.openBlock)(),(0,i.createElementBlock)("button",{key:0,type:"button",class:"btn role-primary actions mr-10",disabled:!o.detailsAction.enabled,onClick:t[0]||(t[0]=(...e)=>o.invokeDetailsAction&&o.invokeDetailsAction(...e))},(0,i.toDisplayString)(o.detailsAction.label),9,vd)):(0,i.createCommentVNode)("",!0),o.showSensitiveToggle?((0,i.openBlock)(),(0,i.createBlock)(h,{key:1,value:!!o.hideSensitiveData,"icon-size":"lg",options:o.sensitiveOptions,class:"mr-10","onUpdate:value":o.toggleSensitiveData},null,8,["value","options","onUpdate:value"])):(0,i.createCommentVNode)("",!0),o.viewOptions&&o.isView?((0,i.openBlock)(),(0,i.createBlock)(h,{key:2,value:o.currentView,"onUpdate:value":t[1]||(t[1]=e=>o.currentView=e),options:o.viewOptions,class:"mr-10"},null,8,["value","options"])):(0,i.createCommentVNode)("",!0),o.isView?((0,i.openBlock)(),(0,i.createElementBlock)("button",{key:3,ref:"actions","data-testid":"masthead-action-menu","aria-haspopup":"true",type:"button",class:"btn role-multi-action actions",onClick:t[2]||(t[2]=(...e)=>o.showActions&&o.showActions(...e))},t[4]||(t[4]=[(0,i.createElementVNode)("i",{class:"icon icon-actions"},null,-1)]),512)):(0,i.createCommentVNode)("",!0)])])]),!0)]),(0,i.createVNode)(p,{resource:n.value,type:a.extensionType,location:a.extensionLocation},null,8,["resource","type","location"]),o.banner&&o.isView&&!o.parent.hideBanner?((0,i.openBlock)(),(0,i.createBlock)(f,{key:0,class:"state-banner mb-10",color:o.banner.color,label:o.banner.message},null,8,["color","label"])):(0,i.createCommentVNode)("",!0),o.managedWarning.show?((0,i.openBlock)(),(0,i.createBlock)(f,{key:1,color:"warning",class:"mb-20",label:e.t("resourceDetail.masthead.managedWarning",o.managedWarning)},null,8,["label"])):(0,i.createCommentVNode)("",!0),(0,i.renderSlot)(e.$slots,"default",{},void 0,!0)])}var yd=a(2841),wd=a(21762),Ed=a(87102),_d=a(76978),Sd=(a(86565),a(68774)),kd=(a(95265),a(73883));var xd=a(10213);const Ad="fleet";var Nd=a(22896),Cd={name:"MastheadResourceDetail",components:{BadgeState:Ed.j,Banner:Ou.l,ButtonGroup:wd.A,ExtensionPanel:Tc,TabTitle:Nd.A},props:{value:{type:Object,default:()=>({})},mode:{type:String,default:"create"},realMode:{type:String,default:"create"},as:{type:String,default:ku.zD},hasGraph:{type:Boolean,default:!1},hasDetail:{type:Boolean,default:!1},hasEdit:{type:Boolean,default:!1},storeOverride:{type:String,default:null},resource:{type:String,default:null},resourceSubtype:{type:String,default:null},parentRouteOverride:{type:String,default:null},canViewYaml:{type:Boolean,default:!1}},data(){return{DETAIL_VIEW:ku.fS,extensionType:Sc.c7.PANEL,extensionLocation:Sc.W7.DETAILS_MASTHEAD}},computed:{dev(){return this.$store.getters["prefs/dev"]},schema(){const e=this.storeOverride||this.$store.getters["currentStore"](this.resource);return this.$store.getters[`${e}/schemaFor`](this.resource)},isView(){return this.mode===ku.nW},isEdit(){return this.mode===ku.G5},isCreate(){return this.mode===ku.YQ},isNamespace(){return this.schema?.id===$.CU},isProject(){return this.schema?.id===$.Mc.PROJECT},isProjectHelmChart(){return this.schema?.id===$.fj.PROJECTHELMCHART},hasMultipleNamespaces(){return!!this.value.namespaces},namespace(){return this.value?.metadata?.namespace?this.value?.metadata?.namespace:null},detailsAction(){return this.value?.detailsAction},shouldHifenize(){return("view"===this.mode||"edit"===this.mode)&&this.resourceSubtype?.length&&this.value?.nameDisplay?.length},namespaceLocation(){return this.isNamespace?null:this.value.namespaceLocation||{name:"c-cluster-product-resource-id",params:{cluster:this.$route.params.cluster,product:this.$store.getters["productId"],resource:$.CU,id:this.$route.params.namespace}}},isWorkspace(){return this.$store.getters["productId"]===Ad&&!!this.value?.metadata?.namespace},workspaceLocation(){return{name:"c-cluster-product-resource-id",params:{cluster:this.$route.params.cluster,product:this.$store.getters["productId"],resource:$.Hs.WORKSPACE,id:this.$route.params.namespace}}},project(){if(this.isNamespace){const e=this.$store.getters["currentCluster"];if(e){const t=(this.value?.metadata?.labels||{})[yd.yl];return this.$store.getters["management/byId"]($.Mc.PROJECT,`${e.id}/${t}`)}}return null},banner(){if(this.value?.stateObj?.error){const e=this.t("resourceDetail.masthead.defaultBannerMessage.error",void 0,!0);return{color:"error",message:this.value.stateObj.message||e}}if(this.value?.spec?.paused)return{color:"info",message:this.t("asyncButton.pause.description")};if(this.value?.stateObj?.transitioning){const e=this.t("resourceDetail.masthead.defaultBannerMessage.transitioning",void 0,!0);return{color:"info",message:this.value.stateObj.message||e}}return null},parent(){const e=this.value?.parentNameOverride||this.$store.getters["type-map/labelFor"](this.schema),t=this.$store.getters["currentProduct"].name,n={name:"c-cluster-product-resource",params:{resource:this.resource,product:t}},r=this.value?.parentLocationOverride||n;this.parentRouteOverride&&(r.name=this.parentRouteOverride);const i=this.$store.getters["type-map/optionsFor"](this.resource),a={displayName:e,location:r,...i};return a},hideSensitiveData(){return this.$store.getters["prefs/get"](O.qv)},sensitiveOptions(){return[{tooltipKey:"resourceDetail.masthead.sensitive.hide",icon:"icon-hide",value:!0},{tooltipKey:"resourceDetail.masthead.sensitive.show",icon:"icon-show",value:!1}]},viewOptions(){const e=[];return this.hasDetail&&e.push({labelKey:"resourceDetail.masthead.detail",value:ku.fS}),this.hasEdit&&!1!==this.parent?.showConfigView&&e.push({labelKey:"resourceDetail.masthead.config",value:ku.au}),this.hasGraph&&e.push({labelKey:"resourceDetail.masthead.graph",value:ku.Yq}),this.canViewYaml&&e.push({labelKey:"resourceDetail.masthead.yaml",value:ku.zD}),e.length<2?null:e},currentView:{get(){return this.as},set(e){switch(e){case ku.fS:this.$router.applyQuery({[ku.g]:ku.xz,[ku.AS]:ku.xz});break;case ku.au:this.$router.applyQuery({[ku.g]:ku.xz,[ku.AS]:ku.au});break;case ku.Yq:this.$router.applyQuery({[ku.g]:ku.xz,[ku.AS]:ku.Yq});break;case ku.zD:this.$router.applyQuery({[ku.g]:ku.xz,[ku.AS]:ku.zD});break}}},showSensitiveToggle(){return!!this.value.hasSensitiveData&&this.mode===ku.nW&&this.as!==ku.zD},managedWarning(){const{value:e}=this,t=e?.metadata?.labels||{},n=t[yd.pS.MANAGED_BY]||"",r=t[yd.pS.MANAGED_NAME]||t[yd.pS.INSTANCE]||"";return{show:this.mode===ku.G5&&!!n,type:e?.kind||"",hasName:r?"yes":"no",appName:r,managedBy:n}},displayName(){let e=this.value.nameDisplay;return this.isProjectHelmChart&&(e=this.value.projectDisplayName),this.shouldHifenize?` - ${e}`:e},location(){const{parent:e}=this;return e?.location},hideNamespaceLocation(){return this.$store.getters["currentProduct"].hideNamespaceLocation||null===this.value.namespaceLocation},resourceExternalLink(){return this.value.resourceExternalLink}},methods:{get:_d.Jt,showActions(){this.$store.commit("action-menu/show",{resources:this.value,elem:this.$refs.actions})},toggleSensitiveData(e){this.$store.dispatch("prefs/set",{key:O.qv,value:!!e})},invokeDetailsAction(){const e=this.detailsAction;if(e){const t=this.value[e.action];t&&t.apply(this.value,[])}}}};a(67365);const Td=(0,u.A)(Cd,[["render",bd],["__scopeId","data-v-81c48f58"]]);var Rd=Td;const Od={key:0,class:"labels"},Id={class:"label"},Ld={key:1,class:"description"},Dd={class:"label"},Pd={class:"content"},Md={key:2},Bd={class:"label"},Fd={key:1},$d={key:3,class:"labels"},Ud={class:"tags"},jd={class:"label"},Vd={key:1},Kd={key:0},Hd={key:2},Gd={key:4,class:"annotations"},zd={class:"label"},qd={key:0};function Xd(e,t,n,r,a,o){const s=(0,i.resolveComponent)("router-link"),l=(0,i.resolveComponent)("Tag"),c=(0,i.resolveComponent)("DetailText"),u=(0,i.resolveComponent)("ExtensionPanel"),d=(0,i.resolveDirective)("clean-tooltip");return(0,i.openBlock)(),(0,i.createElementBlock)("div",{class:(0,i.normalizeClass)(["detail-top",{empty:o.isEmpty}])},[o.hasNamespaces?((0,i.openBlock)(),(0,i.createElementBlock)("div",Od,[(0,i.createElementVNode)("span",Id,(0,i.toDisplayString)(e.t("resourceDetail.detailTop.namespaces"))+": ",1),(0,i.createElementVNode)("span",null,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(o.namespaces,(e=>((0,i.openBlock)(),(0,i.createBlock)(s,{key:e.name,to:e.detailLocation,class:"namespaceLinkList"},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.name),1)])),_:2},1032,["to"])))),128))])])):(0,i.createCommentVNode)("",!0),o.description?((0,i.openBlock)(),(0,i.createElementBlock)("div",Ld,[(0,i.createElementVNode)("span",Dd,(0,i.toDisplayString)(e.t("resourceDetail.detailTop.description"))+": ",1),(0,i.createElementVNode)("span",Pd,(0,i.toDisplayString)(o.description),1)])):(0,i.createCommentVNode)("",!0),o.hasDetails?((0,i.openBlock)(),(0,i.createElementBlock)("div",Md,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(o.details,((e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)("div",{key:t,class:"details"},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e,((e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)("div",{key:t,class:"detail"},[(0,i.createElementVNode)("span",Bd,(0,i.toDisplayString)(e.label)+": ",1),e.formatter?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e.formatter),(0,i.mergeProps)({key:0,value:e.content,ref_for:!0},e.formatterOpts),null,16,["value"])):((0,i.openBlock)(),(0,i.createElementBlock)("span",Fd,(0,i.toDisplayString)(e.content),1))])))),128))])))),128))])):(0,i.createCommentVNode)("",!0),o.hasLabels?((0,i.openBlock)(),(0,i.createElementBlock)("div",$d,[(0,i.createElementVNode)("div",Ud,[(0,i.createElementVNode)("span",jd,(0,i.toDisplayString)(e.t("resourceDetail.detailTop.labels"))+": ",1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(o.labels,((e,t)=>((0,i.openBlock)(),(0,i.createBlock)(l,{key:t},{default:(0,i.withCtx)((()=>[o.internalIcons[t]?((0,i.openBlock)(),(0,i.createElementBlock)("i",{key:0,class:(0,i.normalizeClass)(["icon",o.internalIcons[t]])},null,2)):(0,i.createCommentVNode)("",!0),o.internalTooltips[t]?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("span",Vd,[(0,i.createElementVNode)("span",null,(0,i.toDisplayString)(o.internalTooltips[t]?o.internalTooltips[t]:t),1),a.showAllLabels?((0,i.openBlock)(),(0,i.createElementBlock)("span",Kd,": "+(0,i.toDisplayString)(t),1)):(0,i.createCommentVNode)("",!0)])),[[d,e?`${t} : ${e}`:t]]):((0,i.openBlock)(),(0,i.createElementBlock)("span",Hd,(0,i.toDisplayString)(e?`${t} : ${e}`:t),1))])),_:2},1024)))),128)),o.showFilteredSystemLabels?((0,i.openBlock)(),(0,i.createElementBlock)("a",{key:0,href:"#",class:"detail-top__label-button",onClick:t[0]||(t[0]=(0,i.withModifiers)(((...e)=>o.toggleLabels&&o.toggleLabels(...e)),["prevent"]))},(0,i.toDisplayString)(e.t("resourceDetail.detailTop."+(a.showAllLabels?"hideLabels":"showLabels"))),1)):(0,i.createCommentVNode)("",!0)])])):(0,i.createCommentVNode)("",!0),o.hasAnnotations?((0,i.openBlock)(),(0,i.createElementBlock)("div",Gd,[(0,i.createElementVNode)("span",zd,(0,i.toDisplayString)(e.t("resourceDetail.detailTop.annotations"))+": ",1),(0,i.createElementVNode)("a",{href:"#",onClick:t[1]||(t[1]=(0,i.withModifiers)(((...e)=>o.toggleAnnotations&&o.toggleAnnotations(...e)),["prevent"]))},(0,i.toDisplayString)(e.t("resourceDetail.detailTop."+(a.annotationsVisible?"hideAnnotations":"showAnnotations"),{annotations:o.annotationCount})),1),a.annotationsVisible?((0,i.openBlock)(),(0,i.createElementBlock)("div",qd,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(o.annotations,((e,t)=>((0,i.openBlock)(),(0,i.createBlock)(c,{key:t,class:"annotation",value:e,label:t},null,8,["value","label"])))),128))])):(0,i.createCommentVNode)("",!0)])):(0,i.createCommentVNode)("",!0),(0,i.createVNode)(u,{resource:n.value,type:a.extensionType,location:a.extensionLocation},null,8,["resource","type","location"])],2)}var Wd=a(8529),Yd=a(3514),Qd=a.n(Yd),Jd=a(87383),Zd={components:{DetailText:Jd.A,Tag:Wd.A,ExtensionPanel:Tc},props:{value:{type:Object,default:()=>({})},moreDetails:{type:Array,default:()=>[]},tooltips:{type:Object,default:()=>({})},icons:{type:Object,default:()=>({})}},data(){return{extensionType:Sc.c7.PANEL,extensionLocation:Sc.W7.DETAIL_TOP,annotationsVisible:!1,showAllLabels:!1,view:ku.nW}},computed:{namespaces(){return(this.value?.namespaces||[]).map((e=>({name:e?.metadata?.name,detailLocation:e.detailLocation})))},details(){const e=[...this.moreDetails||[],...this.value?.details||[]].filter((e=>e.separator||!!`${e.content}`&&void 0!==e.content&&null!==e.content)),t=[];let n=[];return e.forEach((e=>{e.separator?(t.push(n),n=[]):n.push(e)})),n.length&&t.push(n),t},labels(){return this.showAllLabels||!this.showFilteredSystemLabels?this.value?.labels||{}:this.value?.filteredSystemLabels},internalTooltips(){return this.value?.detailTopTooltips||this.tooltips},internalIcons(){return this.value?.detailTopIcons||this.icons},annotations(){return this.value?.annotations||{}},description(){return this.value?.description},hasDetails(){return!Qd()(this.details)},hasLabels(){return!Qd()(this.labels)},hasAnnotations(){return!Qd()(this.annotations)},hasDescription(){return!Qd()(this.description)},hasNamespaces(){return!Qd()(this.namespaces)},annotationCount(){return Object.keys(this.annotations||{}).length},isEmpty(){const e=this.hasDetails||this.hasLabels||this.hasAnnotations||this.hasDescription||this.hasNamespaces;return!e},showFilteredSystemLabels(){if(this.value?.labels&&this.value?.filteredSystemLabels){const e=Object.keys(this.value.labels).length,t=Object.keys(this.value.filteredSystemLabels).length;return e!==t}return!1}},methods:{toggleLabels(){this.showAllLabels=!this.showAllLabels},toggleAnnotations(e){this.annotationsVisible=!this.annotationsVisible}}};a(39066);const eh=(0,u.A)(Zd,[["render",Xd]]);var th=eh;const nh={class:"chart-container","data-testid":"gitrepo_graph"},rh={key:0,class:"loading-container"},ih={class:"more-info-container"},ah={class:"more-info"},oh={class:"more-info-item-label"},sh={key:1},lh={key:0},ch={key:1},uh={key:2,class:"align-middle"},dh={key:3,class:"single-error",colspan:"2"},hh={key:4};function ph(e,t,n,r,a,o){const s=(0,i.resolveComponent)("router-link"),l=(0,i.resolveComponent)("BadgeState");return(0,i.openBlock)(),(0,i.createElementBlock)("div",null,[(0,i.createElementVNode)("div",nh,[a.isChartFirstRenderAnimationFinished?(0,i.createCommentVNode)("",!0):((0,i.openBlock)(),(0,i.createElementBlock)("div",rh,[(0,i.withDirectives)((0,i.createElementVNode)("p",null,(0,i.toDisplayString)(e.t("fleet.fdc.loadingChart")),513),[[i.vShow,!a.isChartFirstRendered]]),(0,i.withDirectives)((0,i.createElementVNode)("p",null,(0,i.toDisplayString)(e.t("fleet.fdc.renderingChart")),513),[[i.vShow,a.isChartFirstRendered&&!a.isChartFirstRenderAnimationFinished]]),t[0]||(t[0]=(0,i.createElementVNode)("i",{class:"mt-10 icon-spinner icon-spin"},null,-1))])),t[1]||(t[1]=(0,i.createElementVNode)("div",{id:"tree"},null,-1)),(0,i.createElementVNode)("div",ih,[(0,i.createElementVNode)("div",ah,[(0,i.createElementVNode)("table",null,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(a.moreInfo,((t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)("tr",{key:n},["single-error"!==t.type?((0,i.openBlock)(),(0,i.createElementBlock)("td",{key:0,class:(0,i.normalizeClass)({"align-middle":"state-badge"===t.type})},[(0,i.createElementVNode)("span",oh,(0,i.toDisplayString)(e.t(t.labelKey))+":",1)],2)):(0,i.createCommentVNode)("",!0),"title-link"===t.type?((0,i.openBlock)(),(0,i.createElementBlock)("td",sh,[t.valueObj.detailLocation?((0,i.openBlock)(),(0,i.createElementBlock)("span",lh,[(0,i.createVNode)(s,{to:t.valueObj.detailLocation},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(t.valueObj.label),1)])),_:2},1032,["to"])])):((0,i.openBlock)(),(0,i.createElementBlock)("span",ch,(0,i.toDisplayString)(t.valueObj.label),1))])):"state-badge"===t.type?((0,i.openBlock)(),(0,i.createElementBlock)("td",uh,[(0,i.createElementVNode)("span",null,[(0,i.createVNode)(l,{color:`bg-${t.valueObj.stateColor}`,label:t.valueObj.stateLabel,class:"state-bagde"},null,8,["color","label"])])])):(0,i.createCommentVNode)("",!0),"single-error"===t.type?((0,i.openBlock)(),(0,i.createElementBlock)("td",dh,[(0,i.createElementVNode)("p",null,(0,i.toDisplayString)(t.value),1)])):((0,i.openBlock)(),(0,i.createElementBlock)("td",hh,(0,i.toDisplayString)(t.value),1))])))),128))])])])])])}function fh(){}function mh(e){return null==e?fh:function(){return this.querySelector(e)}}function gh(e){"function"!==typeof e&&(e=mh(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var a,o,s=t[i],l=s.length,c=r[i]=new Array(l),u=0;u<l;++u)(a=s[u])&&(o=e.call(a,a.__data__,u,s))&&("__data__"in a&&(o.__data__=a.__data__),c[u]=o);return new df(r,this._parents)}function vh(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}function bh(){return[]}function yh(e){return null==e?bh:function(){return this.querySelectorAll(e)}}function wh(e){return function(){return vh(e.apply(this,arguments))}}function Eh(e){e="function"===typeof e?wh(e):yh(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o,s=t[a],l=s.length,c=0;c<l;++c)(o=s[c])&&(r.push(e.call(o,o.__data__,c,s)),i.push(o));return new df(r,i)}function _h(e){return function(){return this.matches(e)}}function Sh(e){return function(t){return t.matches(e)}}var kh=Array.prototype.find;function xh(e){return function(){return kh.call(this.children,e)}}function Ah(){return this.firstElementChild}function Nh(e){return this.select(null==e?Ah:xh("function"===typeof e?e:Sh(e)))}var Ch=Array.prototype.filter;function Th(){return Array.from(this.children)}function Rh(e){return function(){return Ch.call(this.children,e)}}function Oh(e){return this.selectAll(null==e?Th:Rh("function"===typeof e?e:Sh(e)))}function Ih(e){"function"!==typeof e&&(e=_h(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var a,o=t[i],s=o.length,l=r[i]=[],c=0;c<s;++c)(a=o[c])&&e.call(a,a.__data__,c,o)&&l.push(a);return new df(r,this._parents)}function Lh(e){return new Array(e.length)}function Dh(){return new df(this._enter||this._groups.map(Lh),this._parents)}function Ph(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Mh(e){return function(){return e}}function Bh(e,t,n,r,i,a){for(var o,s=0,l=t.length,c=a.length;s<c;++s)(o=t[s])?(o.__data__=a[s],r[s]=o):n[s]=new Ph(e,a[s]);for(;s<l;++s)(o=t[s])&&(i[s]=o)}function Fh(e,t,n,r,i,a,o){var s,l,c,u=new Map,d=t.length,h=a.length,p=new Array(d);for(s=0;s<d;++s)(l=t[s])&&(p[s]=c=o.call(l,l.__data__,s,t)+"",u.has(c)?i[s]=l:u.set(c,l));for(s=0;s<h;++s)c=o.call(e,a[s],s,a)+"",(l=u.get(c))?(r[s]=l,l.__data__=a[s],u.delete(c)):n[s]=new Ph(e,a[s]);for(s=0;s<d;++s)(l=t[s])&&u.get(p[s])===l&&(i[s]=l)}function $h(e){return e.__data__}function Uh(e,t){if(!arguments.length)return Array.from(this,$h);var n=t?Fh:Bh,r=this._parents,i=this._groups;"function"!==typeof e&&(e=Mh(e));for(var a=i.length,o=new Array(a),s=new Array(a),l=new Array(a),c=0;c<a;++c){var u=r[c],d=i[c],h=d.length,p=jh(e.call(u,u&&u.__data__,c,r)),f=p.length,m=s[c]=new Array(f),g=o[c]=new Array(f),v=l[c]=new Array(h);n(u,d,m,g,v,p,t);for(var b,y,w=0,E=0;w<f;++w)if(b=m[w]){w>=E&&(E=w+1);while(!(y=g[E])&&++E<f);b._next=y||null}}return o=new df(o,r),o._enter=s,o._exit=l,o}function jh(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}function Vh(){return new df(this._exit||this._groups.map(Lh),this._parents)}function Kh(e,t,n){var r=this.enter(),i=this,a=this.exit();return"function"===typeof e?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),null!=t&&(i=t(i),i&&(i=i.selection())),null==n?a.remove():n(a),r&&i?r.merge(i).order():i}function Hh(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=new Array(i),l=0;l<o;++l)for(var c,u=n[l],d=r[l],h=u.length,p=s[l]=new Array(h),f=0;f<h;++f)(c=u[f]||d[f])&&(p[f]=c);for(;l<i;++l)s[l]=n[l];return new df(s,this._parents)}function Gh(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,i=e[t],a=i.length-1,o=i[a];--a>=0;)(r=i[a])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this}function zh(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=qh);for(var n=this._groups,r=n.length,i=new Array(r),a=0;a<r;++a){for(var o,s=n[a],l=s.length,c=i[a]=new Array(l),u=0;u<l;++u)(o=s[u])&&(c[u]=o);c.sort(t)}return new df(i,this._parents).order()}function qh(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Xh(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Wh(){return Array.from(this)}function Yh(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Qh(){let e=0;for(const t of this)++e;return e}function Jh(){return!this.node()}function Zh(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i,a=t[n],o=0,s=a.length;o<s;++o)(i=a[o])&&e.call(i,i.__data__,o,a);return this}Ph.prototype={constructor:Ph,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var ep="http://www.w3.org/1999/xhtml",tp={svg:"http://www.w3.org/2000/svg",xhtml:ep,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function np(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),tp.hasOwnProperty(t)?{space:tp[t],local:e}:e}function rp(e){return function(){this.removeAttribute(e)}}function ip(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ap(e,t){return function(){this.setAttribute(e,t)}}function op(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function sp(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function lp(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function cp(e,t){var n=np(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?ip:rp:"function"===typeof t?n.local?lp:sp:n.local?op:ap)(n,t))}function up(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function dp(e){return function(){this.style.removeProperty(e)}}function hp(e,t,n){return function(){this.style.setProperty(e,t,n)}}function pp(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function fp(e,t,n){return arguments.length>1?this.each((null==t?dp:"function"===typeof t?pp:hp)(e,t,null==n?"":n)):mp(this.node(),e)}function mp(e,t){return e.style.getPropertyValue(t)||up(e).getComputedStyle(e,null).getPropertyValue(t)}function gp(e){return function(){delete this[e]}}function vp(e,t){return function(){this[e]=t}}function bp(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function yp(e,t){return arguments.length>1?this.each((null==t?gp:"function"===typeof t?bp:vp)(e,t)):this.node()[e]}function wp(e){return e.trim().split(/^|\s+/)}function Ep(e){return e.classList||new _p(e)}function _p(e){this._node=e,this._names=wp(e.getAttribute("class")||"")}function Sp(e,t){var n=Ep(e),r=-1,i=t.length;while(++r<i)n.add(t[r])}function kp(e,t){var n=Ep(e),r=-1,i=t.length;while(++r<i)n.remove(t[r])}function xp(e){return function(){Sp(this,e)}}function Ap(e){return function(){kp(this,e)}}function Np(e,t){return function(){(t.apply(this,arguments)?Sp:kp)(this,e)}}function Cp(e,t){var n=wp(e+"");if(arguments.length<2){var r=Ep(this.node()),i=-1,a=n.length;while(++i<a)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"===typeof t?Np:t?xp:Ap)(n,t))}function Tp(){this.textContent=""}function Rp(e){return function(){this.textContent=e}}function Op(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function Ip(e){return arguments.length?this.each(null==e?Tp:("function"===typeof e?Op:Rp)(e)):this.node().textContent}function Lp(){this.innerHTML=""}function Dp(e){return function(){this.innerHTML=e}}function Pp(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function Mp(e){return arguments.length?this.each(null==e?Lp:("function"===typeof e?Pp:Dp)(e)):this.node().innerHTML}function Bp(){this.nextSibling&&this.parentNode.appendChild(this)}function Fp(){return this.each(Bp)}function $p(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Up(){return this.each($p)}function jp(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===ep&&t.documentElement.namespaceURI===ep?t.createElement(e):t.createElementNS(n,e)}}function Vp(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Kp(e){var t=np(e);return(t.local?Vp:jp)(t)}function Hp(e){var t="function"===typeof e?e:Kp(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))}function Gp(){return null}function zp(e,t){var n="function"===typeof e?e:Kp(e),r=null==t?Gp:"function"===typeof t?t:mh(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))}function qp(){var e=this.parentNode;e&&e.removeChild(this)}function Xp(){return this.each(qp)}function Wp(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Yp(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Qp(e){return this.select(e?Yp:Wp)}function Jp(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Zp(e){return function(t){e.call(this,t,this.__data__)}}function ef(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}function tf(e){return function(){var t=this.__on;if(t){for(var n,r=0,i=-1,a=t.length;r<a;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?t.length=i:delete this.__on}}}function nf(e,t,n){return function(){var r,i=this.__on,a=Zp(t);if(i)for(var o=0,s=i.length;o<s;++o)if((r=i[o]).type===e.type&&r.name===e.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=a,r.options=n),void(r.value=t);this.addEventListener(e.type,a,n),r={type:e.type,name:e.name,value:t,listener:a,options:n},i?i.push(r):this.__on=[r]}}function rf(e,t,n){var r,i,a=ef(e+""),o=a.length;if(!(arguments.length<2)){for(s=t?nf:tf,r=0;r<o;++r)this.each(s(a[r],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(r=0,l=s[c];r<o;++r)if((i=a[r]).type===l.type&&i.name===l.name)return l.value}function af(e,t,n){var r=up(e),i=r.CustomEvent;"function"===typeof i?i=new i(t,n):(i=r.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function of(e,t){return function(){return af(this,e,t)}}function sf(e,t){return function(){return af(this,e,t.apply(this,arguments))}}function lf(e,t){return this.each(("function"===typeof t?sf:of)(e,t))}function*cf(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,i=e[t],a=0,o=i.length;a<o;++a)(r=i[a])&&(yield r)}_p.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var uf=[null];function df(e,t){this._groups=e,this._parents=t}function hf(){return new df([[document.documentElement]],uf)}function pf(){return this}df.prototype=hf.prototype={constructor:df,select:gh,selectAll:Eh,selectChild:Nh,selectChildren:Oh,filter:Ih,data:Uh,enter:Dh,exit:Vh,join:Kh,merge:Hh,selection:pf,order:Gh,sort:zh,call:Xh,nodes:Wh,node:Yh,size:Qh,empty:Jh,each:Zh,attr:cp,style:fp,property:yp,classed:Cp,text:Ip,html:Mp,raise:Fp,lower:Up,append:Hp,insert:zp,remove:Xp,clone:Qp,datum:Jp,on:rf,dispatch:lf,[Symbol.iterator]:cf};var ff=hf,mf={value:()=>{}};function gf(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new vf(r)}function vf(e){this._=e}function bf(e,t){return e.trim().split(/^|\s+/).map((function(e){var n="",r=e.indexOf(".");if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}}))}function yf(e,t){for(var n,r=0,i=e.length;r<i;++r)if((n=e[r]).name===t)return n.value}function wf(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=mf,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}vf.prototype=gf.prototype={constructor:vf,on:function(e,t){var n,r=this._,i=bf(e+"",r),a=-1,o=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!==typeof t)throw new Error("invalid callback: "+t);while(++a<o)if(n=(e=i[a]).type)r[n]=wf(r[n],e.name,t);else if(null==t)for(n in r)r[n]=wf(r[n],e.name,null);return this}while(++a<o)if((n=(e=i[a]).type)&&(n=yf(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new vf(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),a=0;a<n;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(r=this._[e],a=0,n=r.length;a<n;++a)r[a].value.apply(t,i)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};var Ef,_f,Sf=gf,kf=0,xf=0,Af=0,Nf=1e3,Cf=0,Tf=0,Rf=0,Of="object"===typeof performance&&performance.now?performance:Date,If="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Lf(){return Tf||(If(Df),Tf=Of.now()+Rf)}function Df(){Tf=0}function Pf(){this._call=this._time=this._next=null}function Mf(e,t,n){var r=new Pf;return r.restart(e,t,n),r}function Bf(){Lf(),++kf;var e,t=Ef;while(t)(e=Tf-t._time)>=0&&t._call.call(void 0,e),t=t._next;--kf}function Ff(){Tf=(Cf=Of.now())+Rf,kf=xf=0;try{Bf()}finally{kf=0,Uf(),Tf=0}}function $f(){var e=Of.now(),t=e-Cf;t>Nf&&(Rf-=t,Cf=e)}function Uf(){var e,t,n=Ef,r=1/0;while(n)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:Ef=t);_f=e,jf(r)}function jf(e){if(!kf){xf&&(xf=clearTimeout(xf));var t=e-Tf;t>24?(e<1/0&&(xf=setTimeout(Ff,e-Of.now()-Rf)),Af&&(Af=clearInterval(Af))):(Af||(Cf=Of.now(),Af=setInterval($f,Nf)),kf=1,If(Ff))}}function Vf(e,t,n){var r=new Pf;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}Pf.prototype=Mf.prototype={constructor:Pf,restart:function(e,t,n){if("function"!==typeof e)throw new TypeError("callback is not a function");n=(null==n?Lf():+n)+(null==t?0:+t),this._next||_f===this||(_f?_f._next=this:Ef=this,_f=this),this._call=e,this._time=n,jf()},stop:function(){this._call&&(this._call=null,this._time=1/0,jf())}};var Kf=Sf("start","end","cancel","interrupt"),Hf=[],Gf=0,zf=1,qf=2,Xf=3,Wf=4,Yf=5,Qf=6;function Jf(e,t,n,r,i,a){var o=e.__transition;if(o){if(n in o)return}else e.__transition={};nm(e,n,{name:t,index:r,group:i,on:Kf,tween:Hf,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Gf})}function Zf(e,t){var n=tm(e,t);if(n.state>Gf)throw new Error("too late; already scheduled");return n}function em(e,t){var n=tm(e,t);if(n.state>Xf)throw new Error("too late; already running");return n}function tm(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function nm(e,t,n){var r,i=e.__transition;function a(e){n.state=zf,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var c,u,d,h;if(n.state!==zf)return l();for(c in i)if(h=i[c],h.name===n.name){if(h.state===Xf)return Vf(o);h.state===Wf?(h.state=Qf,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete i[c]):+c<t&&(h.state=Qf,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete i[c])}if(Vf((function(){n.state===Xf&&(n.state=Wf,n.timer.restart(s,n.delay,n.time),s(a))})),n.state=qf,n.on.call("start",e,e.__data__,n.index,n.group),n.state===qf){for(n.state=Xf,r=new Array(d=n.tween.length),c=0,u=-1;c<d;++c)(h=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(r[++u]=h);r.length=u+1}}function s(t){var i=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(l),n.state=Yf,1),a=-1,o=r.length;while(++a<o)r[a].call(e,i);n.state===Yf&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){for(var r in n.state=Qf,n.timer.stop(),delete i[t],i)return;delete e.__transition}i[t]=n,n.timer=Mf(a,0,n.time)}function rm(e,t){var n,r,i,a=e.__transition,o=!0;if(a){for(i in t=null==t?null:t+"",a)(n=a[i]).name===t?(r=n.state>qf&&n.state<Yf,n.state=Qf,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete a[i]):o=!1;o&&delete e.__transition}}function im(e){return this.each((function(){rm(this,e)}))}function am(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var om,sm=180/Math.PI,lm={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cm(e,t,n,r,i,a){var o,s,l;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*sm,skewX:Math.atan(l)*sm,scaleX:o,scaleY:s}}function um(e){const t=new("function"===typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?lm:cm(t.a,t.b,t.c,t.d,t.e,t.f)}function dm(e){return null==e?lm:(om||(om=document.createElementNS("http://www.w3.org/2000/svg","g")),om.setAttribute("transform",e),(e=om.transform.baseVal.consolidate())?(e=e.matrix,cm(e.a,e.b,e.c,e.d,e.e,e.f)):lm)}function hm(e,t,n,r){function i(e){return e.length?e.pop()+" ":""}function a(e,r,i,a,o,s){if(e!==i||r!==a){var l=o.push("translate(",null,t,null,n);s.push({i:l-4,x:am(e,i)},{i:l-2,x:am(r,a)})}else(i||a)&&o.push("translate("+i+t+a+n)}function o(e,t,n,a){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:am(e,t)})):t&&n.push(i(n)+"rotate("+t+r)}function s(e,t,n,a){e!==t?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:am(e,t)}):t&&n.push(i(n)+"skewX("+t+r)}function l(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:am(e,n)},{i:s-2,x:am(t,r)})}else 1===n&&1===r||a.push(i(a)+"scale("+n+","+r+")")}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),l(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){var t,n=-1,a=i.length;while(++n<a)r[(t=i[n]).i]=t.x(e);return r.join("")}}}var pm=hm(um,"px, ","px)","deg)"),fm=hm(dm,", ",")",")");function mm(e,t){var n,r;return function(){var i=em(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function gm(e,t,n){var r,i;if("function"!==typeof n)throw new Error;return function(){var a=em(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},l=0,c=i.length;l<c;++l)if(i[l].name===t){i[l]=s;break}l===c&&i.push(s)}a.tween=i}}function vm(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,i=tm(this.node(),n).tween,a=0,o=i.length;a<o;++a)if((r=i[a]).name===e)return r.value;return null}return this.each((null==t?mm:gm)(n,e,t))}function bm(e,t,n){var r=e._id;return e.each((function(){var e=em(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return tm(e,r).value[t]}}function ym(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function wm(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Em(){}var _m=.7,Sm=1/_m,km="\\s*([+-]?\\d+)\\s*",xm="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Am="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Nm=/^#([0-9a-f]{3,8})$/,Cm=new RegExp(`^rgb\\(${km},${km},${km}\\)$`),Tm=new RegExp(`^rgb\\(${Am},${Am},${Am}\\)$`),Rm=new RegExp(`^rgba\\(${km},${km},${km},${xm}\\)$`),Om=new RegExp(`^rgba\\(${Am},${Am},${Am},${xm}\\)$`),Im=new RegExp(`^hsl\\(${xm},${Am},${Am}\\)$`),Lm=new RegExp(`^hsla\\(${xm},${Am},${Am},${xm}\\)$`),Dm={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Pm(){return this.rgb().formatHex()}function Mm(){return this.rgb().formatHex8()}function Bm(){return Jm(this).formatHsl()}function Fm(){return this.rgb().formatRgb()}function $m(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Nm.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Um(t):3===n?new Hm(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?jm(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?jm(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Cm.exec(e))?new Hm(t[1],t[2],t[3],1):(t=Tm.exec(e))?new Hm(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Rm.exec(e))?jm(t[1],t[2],t[3],t[4]):(t=Om.exec(e))?jm(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Im.exec(e))?Qm(t[1],t[2]/100,t[3]/100,1):(t=Lm.exec(e))?Qm(t[1],t[2]/100,t[3]/100,t[4]):Dm.hasOwnProperty(e)?Um(Dm[e]):"transparent"===e?new Hm(NaN,NaN,NaN,0):null}function Um(e){return new Hm(e>>16&255,e>>8&255,255&e,1)}function jm(e,t,n,r){return r<=0&&(e=t=n=NaN),new Hm(e,t,n,r)}function Vm(e){return e instanceof Em||(e=$m(e)),e?(e=e.rgb(),new Hm(e.r,e.g,e.b,e.opacity)):new Hm}function Km(e,t,n,r){return 1===arguments.length?Vm(e):new Hm(e,t,n,null==r?1:r)}function Hm(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Gm(){return`#${Ym(this.r)}${Ym(this.g)}${Ym(this.b)}`}function zm(){return`#${Ym(this.r)}${Ym(this.g)}${Ym(this.b)}${Ym(255*(isNaN(this.opacity)?1:this.opacity))}`}function qm(){const e=Xm(this.opacity);return`${1===e?"rgb(":"rgba("}${Wm(this.r)}, ${Wm(this.g)}, ${Wm(this.b)}${1===e?")":`, ${e})`}`}function Xm(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Wm(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ym(e){return e=Wm(e),(e<16?"0":"")+e.toString(16)}function Qm(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new eg(e,t,n,r)}function Jm(e){if(e instanceof eg)return new eg(e.h,e.s,e.l,e.opacity);if(e instanceof Em||(e=$m(e)),!e)return new eg;if(e instanceof eg)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,l=(a+i)/2;return s?(o=t===a?(n-r)/s+6*(n<r):n===a?(r-t)/s+2:(t-n)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new eg(o,s,l,e.opacity)}function Zm(e,t,n,r){return 1===arguments.length?Jm(e):new eg(e,t,n,null==r?1:r)}function eg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function tg(e){return e=(e||0)%360,e<0?e+360:e}function ng(e){return Math.max(0,Math.min(1,e||0))}function rg(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function ig(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function ag(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return ig((n-r/t)*t,o,i,a,s)}}function og(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return ig((n-r/t)*t,i,a,o,s)}}ym(Em,$m,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Pm,formatHex:Pm,formatHex8:Mm,formatHsl:Bm,formatRgb:Fm,toString:Fm}),ym(Hm,Km,wm(Em,{brighter(e){return e=null==e?Sm:Math.pow(Sm,e),new Hm(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?_m:Math.pow(_m,e),new Hm(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Hm(Wm(this.r),Wm(this.g),Wm(this.b),Xm(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Gm,formatHex:Gm,formatHex8:zm,formatRgb:qm,toString:qm})),ym(eg,Zm,wm(Em,{brighter(e){return e=null==e?Sm:Math.pow(Sm,e),new eg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?_m:Math.pow(_m,e),new eg(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Hm(rg(e>=240?e-240:e+120,i,r),rg(e,i,r),rg(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new eg(tg(this.h),ng(this.s),ng(this.l),Xm(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Xm(this.opacity);return`${1===e?"hsl(":"hsla("}${tg(this.h)}, ${100*ng(this.s)}%, ${100*ng(this.l)}%${1===e?")":`, ${e})`}`}}));var sg=e=>()=>e;function lg(e,t){return function(n){return e+n*t}}function cg(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function ug(e){return 1===(e=+e)?dg:function(t,n){return n-t?cg(t,n,e):sg(isNaN(t)?n:t)}}function dg(e,t){var n=t-e;return n?lg(e,n):sg(isNaN(e)?t:e)}var hg=function e(t){var n=ug(t);function r(e,t){var r=n((e=Km(e)).r,(t=Km(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=dg(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+""}}return r.gamma=e,r}(1);function pg(e){return function(t){var n,r,i=t.length,a=new Array(i),o=new Array(i),s=new Array(i);for(n=0;n<i;++n)r=Km(t[n]),a[n]=r.r||0,o[n]=r.g||0,s[n]=r.b||0;return a=e(a),o=e(o),s=e(s),r.opacity=1,function(e){return r.r=a(e),r.g=o(e),r.b=s(e),r+""}}}pg(ag),pg(og);var fg=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,mg=new RegExp(fg.source,"g");function gg(e){return function(){return e}}function vg(e){return function(t){return e(t)+""}}function bg(e,t){var n,r,i,a=fg.lastIndex=mg.lastIndex=0,o=-1,s=[],l=[];e+="",t+="";while((n=fg.exec(e))&&(r=mg.exec(t)))(i=r.index)>a&&(i=t.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,l.push({i:o,x:am(n,r)})),a=mg.lastIndex;return a<t.length&&(i=t.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?vg(l[0].x):gg(t):(t=l.length,function(e){for(var n,r=0;r<t;++r)s[(n=l[r]).i]=n.x(e);return s.join("")})}function yg(e,t){var n;return("number"===typeof t?am:t instanceof $m?hg:(n=$m(t))?(t=n,hg):bg)(e,t)}function wg(e){return function(){this.removeAttribute(e)}}function Eg(e){return function(){this.removeAttributeNS(e.space,e.local)}}function _g(e,t,n){var r,i,a=n+"";return function(){var o=this.getAttribute(e);return o===a?null:o===r?i:i=t(r=o,n)}}function Sg(e,t,n){var r,i,a=n+"";return function(){var o=this.getAttributeNS(e.space,e.local);return o===a?null:o===r?i:i=t(r=o,n)}}function kg(e,t,n){var r,i,a;return function(){var o,s,l=n(this);if(null!=l)return o=this.getAttribute(e),s=l+"",o===s?null:o===r&&s===i?a:(i=s,a=t(r=o,l));this.removeAttribute(e)}}function xg(e,t,n){var r,i,a;return function(){var o,s,l=n(this);if(null!=l)return o=this.getAttributeNS(e.space,e.local),s=l+"",o===s?null:o===r&&s===i?a:(i=s,a=t(r=o,l));this.removeAttributeNS(e.space,e.local)}}function Ag(e,t){var n=np(e),r="transform"===n?fm:yg;return this.attrTween(e,"function"===typeof t?(n.local?xg:kg)(n,r,bm(this,"attr."+e,t)):null==t?(n.local?Eg:wg)(n):(n.local?Sg:_g)(n,r,t))}function Ng(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Cg(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Tg(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Cg(e,i)),n}return i._value=t,i}function Rg(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Ng(e,i)),n}return i._value=t,i}function Og(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!==typeof t)throw new Error;var r=np(e);return this.tween(n,(r.local?Tg:Rg)(r,t))}function Ig(e,t){return function(){Zf(this,e).delay=+t.apply(this,arguments)}}function Lg(e,t){return t=+t,function(){Zf(this,e).delay=t}}function Dg(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Ig:Lg)(t,e)):tm(this.node(),t).delay}function Pg(e,t){return function(){em(this,e).duration=+t.apply(this,arguments)}}function Mg(e,t){return t=+t,function(){em(this,e).duration=t}}function Bg(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Pg:Mg)(t,e)):tm(this.node(),t).duration}function Fg(e,t){if("function"!==typeof t)throw new Error;return function(){em(this,e).ease=t}}function $g(e){var t=this._id;return arguments.length?this.each(Fg(t,e)):tm(this.node(),t).ease}function Ug(e,t){return function(){var n=t.apply(this,arguments);if("function"!==typeof n)throw new Error;em(this,e).ease=n}}function jg(e){if("function"!==typeof e)throw new Error;return this.each(Ug(this._id,e))}function Vg(e){"function"!==typeof e&&(e=_h(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var a,o=t[i],s=o.length,l=r[i]=[],c=0;c<s;++c)(a=o[c])&&e.call(a,a.__data__,c,o)&&l.push(a);return new vv(r,this._parents,this._name,this._id)}function Kg(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=new Array(r),s=0;s<a;++s)for(var l,c=t[s],u=n[s],d=c.length,h=o[s]=new Array(d),p=0;p<d;++p)(l=c[p]||u[p])&&(h[p]=l);for(;s<r;++s)o[s]=t[s];return new vv(o,this._parents,this._name,this._id)}function Hg(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}function Gg(e,t,n){var r,i,a=Hg(t)?Zf:em;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function zg(e,t){var n=this._id;return arguments.length<2?tm(this.node(),n).on.on(e):this.each(Gg(n,e,t))}function qg(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Xg(){return this.on("end.remove",qg(this._id))}function Wg(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=mh(e));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var s,l,c=r[o],u=c.length,d=a[o]=new Array(u),h=0;h<u;++h)(s=c[h])&&(l=e.call(s,s.__data__,h,c))&&("__data__"in s&&(l.__data__=s.__data__),d[h]=l,Jf(d[h],t,n,h,d,tm(s,n)));return new vv(a,this._parents,t,n)}function Yg(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=yh(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var l,c=r[s],u=c.length,d=0;d<u;++d)if(l=c[d]){for(var h,p=e.call(l,l.__data__,d,c),f=tm(l,n),m=0,g=p.length;m<g;++m)(h=p[m])&&Jf(h,t,n,m,p,f);a.push(p),o.push(l)}return new vv(a,o,t,n)}var Qg=ff.prototype.constructor;function Jg(){return new Qg(this._groups,this._parents)}function Zg(e,t){var n,r,i;return function(){var a=mp(this,e),o=(this.style.removeProperty(e),mp(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function ev(e){return function(){this.style.removeProperty(e)}}function tv(e,t,n){var r,i,a=n+"";return function(){var o=mp(this,e);return o===a?null:o===r?i:i=t(r=o,n)}}function nv(e,t,n){var r,i,a;return function(){var o=mp(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=mp(this,e)),o===l?null:o===r&&l===i?a:(i=l,a=t(r=o,s))}}function rv(e,t){var n,r,i,a,o="style."+t,s="end."+o;return function(){var l=em(this,e),c=l.on,u=null==l.value[o]?a||(a=ev(t)):void 0;c===n&&i===u||(r=(n=c).copy()).on(s,i=u),l.on=r}}function iv(e,t,n){var r="transform"===(e+="")?pm:yg;return null==t?this.styleTween(e,Zg(e,r)).on("end.style."+e,ev(e)):"function"===typeof t?this.styleTween(e,nv(e,r,bm(this,"style."+e,t))).each(rv(this._id,e)):this.styleTween(e,tv(e,r,t),n).on("end.style."+e,null)}function av(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function ov(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&av(e,a,n)),r}return a._value=t,a}function sv(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!==typeof t)throw new Error;return this.tween(r,ov(e,t,null==n?"":n))}function lv(e){return function(){this.textContent=e}}function cv(e){return function(){var t=e(this);this.textContent=null==t?"":t}}function uv(e){return this.tween("text","function"===typeof e?cv(bm(this,"text",e)):lv(null==e?"":e+""))}function dv(e){return function(t){this.textContent=e.call(this,t)}}function hv(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&dv(r)),t}return r._value=e,r}function pv(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!==typeof e)throw new Error;return this.tween(t,hv(e))}function fv(){for(var e=this._name,t=this._id,n=yv(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o,s=r[a],l=s.length,c=0;c<l;++c)if(o=s[c]){var u=tm(o,t);Jf(o,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new vv(r,this._parents,e,n)}function mv(){var e,t,n=this,r=n._id,i=n.size();return new Promise((function(a,o){var s={value:o},l={value:function(){0===--i&&a()}};n.each((function(){var n=em(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t})),0===i&&a()}))}var gv=0;function vv(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function bv(e){return ff().transition(e)}function yv(){return++gv}var wv=ff.prototype;function Ev(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}vv.prototype=bv.prototype={constructor:vv,select:Wg,selectAll:Yg,selectChild:wv.selectChild,selectChildren:wv.selectChildren,filter:Vg,merge:Kg,selection:Jg,transition:fv,call:wv.call,nodes:wv.nodes,node:wv.node,size:wv.size,empty:wv.empty,each:wv.each,on:zg,attr:Ag,attrTween:Og,style:iv,styleTween:sv,text:uv,textTween:pv,remove:Xg,tween:vm,delay:Dg,duration:Bg,ease:$g,easeVarying:jg,end:mv,[Symbol.iterator]:wv[Symbol.iterator]};var _v={time:null,delay:0,duration:250,ease:Ev};function Sv(e,t){var n;while(!(n=e.__transition)||!(n=n[t]))if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function kv(e){var t,n;e instanceof vv?(t=e._id,e=e._name):(t=yv(),(n=_v).time=Lf(),e=null==e?null:e+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o,s=r[a],l=s.length,c=0;c<l;++c)(o=s[c])&&Jf(o,e,t,c,s,n||Sv(o,t));return new vv(r,this._parents,e,t)}ff.prototype.interrupt=im,ff.prototype.transition=kv;const{abs:xv,max:Av,min:Nv}=Math;function Cv(e){return[+e[0],+e[1]]}function Tv(e){return[Cv(e[0]),Cv(e[1])]}["w","e"].map(Rv),["n","s"].map(Rv),["n","w","e","s","nw","ne","sw","se"].map(Rv);function Rv(e){return{type:e}}function Ov(e){return"string"===typeof e?new df([[document.querySelector(e)]],[document.documentElement]):new df([[e]],uf)}function Iv(e){let t;while(t=e.sourceEvent)e=t;return e}function Lv(e,t){if(e=Iv(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}const Dv={passive:!1},Pv={capture:!0,passive:!1};function Mv(e){e.stopImmediatePropagation()}function Bv(e){e.preventDefault(),e.stopImmediatePropagation()}function Fv(e){var t=e.document.documentElement,n=Ov(e).on("dragstart.drag",Bv,Pv);"onselectstart"in t?n.on("selectstart.drag",Bv,Pv):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function $v(e,t){var n=e.document.documentElement,r=Ov(e).on("dragstart.drag",null);t&&(r.on("click.drag",Bv,Pv),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Uv=e=>()=>e;function jv(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:l,dy:c,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}function Vv(e){return!e.ctrlKey&&!e.button}function Kv(){return this.parentNode}function Hv(e,t){return null==t?{x:e.x,y:e.y}:t}function Gv(){return navigator.maxTouchPoints||"ontouchstart"in this}function zv(){var e,t,n,r,i=Vv,a=Kv,o=Hv,s=Gv,l={},c=Sf("start","drag","end"),u=0,d=0;function h(e){e.on("mousedown.drag",p).filter(s).on("touchstart.drag",g).on("touchmove.drag",v,Dv).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(o,s){if(!r&&i.call(this,o,s)){var l=y(this,a.call(this,o,s),o,s,"mouse");l&&(Ov(o.view).on("mousemove.drag",f,Pv).on("mouseup.drag",m,Pv),Fv(o.view),Mv(o),n=!1,e=o.clientX,t=o.clientY,l("start",o))}}function f(r){if(Bv(r),!n){var i=r.clientX-e,a=r.clientY-t;n=i*i+a*a>d}l.mouse("drag",r)}function m(e){Ov(e.view).on("mousemove.drag mouseup.drag",null),$v(e.view,n),Bv(e),l.mouse("end",e)}function g(e,t){if(i.call(this,e,t)){var n,r,o=e.changedTouches,s=a.call(this,e,t),l=o.length;for(n=0;n<l;++n)(r=y(this,s,e,t,o[n].identifier,o[n]))&&(Mv(e),r("start",e,o[n]))}}function v(e){var t,n,r=e.changedTouches,i=r.length;for(t=0;t<i;++t)(n=l[r[t].identifier])&&(Bv(e),n("drag",e,r[t]))}function b(e){var t,n,i=e.changedTouches,a=i.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),t=0;t<a;++t)(n=l[i[t].identifier])&&(Mv(e),n("end",e,i[t]))}function y(e,t,n,r,i,a){var s,d,p,f=c.copy(),m=Lv(a||n,t);if(null!=(p=o.call(e,new jv("beforestart",{sourceEvent:n,target:h,identifier:i,active:u,x:m[0],y:m[1],dx:0,dy:0,dispatch:f}),r)))return s=p.x-m[0]||0,d=p.y-m[1]||0,function n(a,o,c){var g,v=m;switch(a){case"start":l[i]=n,g=u++;break;case"end":delete l[i],--u;case"drag":m=Lv(c||o,t),g=u;break}f.call(a,e,new jv(a,{sourceEvent:o,subject:p,target:h,identifier:i,active:g,x:m[0]+s,y:m[1]+d,dx:m[0]-v[0],dy:m[1]-v[1],dispatch:f}),r)}}return h.filter=function(e){return arguments.length?(i="function"===typeof e?e:Uv(!!e),h):i},h.container=function(e){return arguments.length?(a="function"===typeof e?e:Uv(e),h):a},h.subject=function(e){return arguments.length?(o="function"===typeof e?e:Uv(e),h):o},h.touchable=function(e){return arguments.length?(s="function"===typeof e?e:Uv(!!e),h):s},h.on=function(){var e=c.on.apply(c,arguments);return e===c?h:e},h.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,h):Math.sqrt(d)},h}function qv(e,t){var n,r=1;function i(){var i,a,o=n.length,s=0,l=0;for(i=0;i<o;++i)a=n[i],s+=a.x,l+=a.y;for(s=(s/o-e)*r,l=(l/o-t)*r,i=0;i<o;++i)a=n[i],a.x-=s,a.y-=l}return null==e&&(e=0),null==t&&(t=0),i.initialize=function(e){n=e},i.x=function(t){return arguments.length?(e=+t,i):e},i.y=function(e){return arguments.length?(t=+e,i):t},i.strength=function(e){return arguments.length?(r=+e,i):r},i}function Xv(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return Wv(this.cover(t,n),t,n,e)}function Wv(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var i,a,o,s,l,c,u,d,h,p=e._root,f={data:r},m=e._x0,g=e._y0,v=e._x1,b=e._y1;if(!p)return e._root=f,e;while(p.length)if((c=t>=(a=(m+v)/2))?m=a:v=a,(u=n>=(o=(g+b)/2))?g=o:b=o,i=p,!(p=p[d=u<<1|c]))return i[d]=f,e;if(s=+e._x.call(null,p.data),l=+e._y.call(null,p.data),t===s&&n===l)return f.next=p,i?i[d]=f:e._root=f,e;do{i=i?i[d]=new Array(4):e._root=new Array(4),(c=t>=(a=(m+v)/2))?m=a:v=a,(u=n>=(o=(g+b)/2))?g=o:b=o}while((d=u<<1|c)===(h=(l>=o)<<1|s>=a));return i[h]=p,i[d]=f,e}function Yv(e){var t,n,r,i,a=e.length,o=new Array(a),s=new Array(a),l=1/0,c=1/0,u=-1/0,d=-1/0;for(n=0;n<a;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(i=+this._y.call(null,t))||(o[n]=r,s[n]=i,r<l&&(l=r),r>u&&(u=r),i<c&&(c=i),i>d&&(d=i));if(l>u||c>d)return this;for(this.cover(l,c).cover(u,d),n=0;n<a;++n)Wv(this,o[n],s[n],e[n]);return this}function Qv(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(n))i=(n=Math.floor(e))+1,a=(r=Math.floor(t))+1;else{var o,s,l=i-n||1,c=this._root;while(n>e||e>=i||r>t||t>=a)switch(s=(t<r)<<1|e<n,o=new Array(4),o[s]=c,c=o,l*=2,s){case 0:i=n+l,a=r+l;break;case 1:n=i-l,a=r+l;break;case 2:i=n+l,r=a-l;break;case 3:n=i-l,r=a-l;break}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=r,this._x1=i,this._y1=a,this}function Jv(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e}function Zv(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function eb(e,t,n,r,i){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=i}function tb(e,t,n){var r,i,a,o,s,l,c,u=this._x0,d=this._y0,h=this._x1,p=this._y1,f=[],m=this._root;m&&f.push(new eb(m,u,d,h,p)),null==n?n=1/0:(u=e-n,d=t-n,h=e+n,p=t+n,n*=n);while(l=f.pop())if(!(!(m=l.node)||(i=l.x0)>h||(a=l.y0)>p||(o=l.x1)<u||(s=l.y1)<d))if(m.length){var g=(i+o)/2,v=(a+s)/2;f.push(new eb(m[3],g,v,o,s),new eb(m[2],i,v,g,s),new eb(m[1],g,a,o,v),new eb(m[0],i,a,g,v)),(c=(t>=v)<<1|e>=g)&&(l=f[f.length-1],f[f.length-1]=f[f.length-1-c],f[f.length-1-c]=l)}else{var b=e-+this._x.call(null,m.data),y=t-+this._y.call(null,m.data),w=b*b+y*y;if(w<n){var E=Math.sqrt(n=w);u=e-E,d=t-E,h=e+E,p=t+E,r=m.data}}return r}function nb(e){if(isNaN(a=+this._x.call(null,e))||isNaN(o=+this._y.call(null,e)))return this;var t,n,r,i,a,o,s,l,c,u,d,h,p=this._root,f=this._x0,m=this._y0,g=this._x1,v=this._y1;if(!p)return this;if(p.length)while(1){if((c=a>=(s=(f+g)/2))?f=s:g=s,(u=o>=(l=(m+v)/2))?m=l:v=l,t=p,!(p=p[d=u<<1|c]))return this;if(!p.length)break;(t[d+1&3]||t[d+2&3]||t[d+3&3])&&(n=t,h=d)}while(p.data!==e)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):t?(i?t[d]=i:delete t[d],(p=t[0]||t[1]||t[2]||t[3])&&p===(t[3]||t[2]||t[1]||t[0])&&!p.length&&(n?n[h]=p:this._root=p),this):(this._root=i,this)}function rb(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this}function ib(){return this._root}function ab(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e}function ob(e){var t,n,r,i,a,o,s=[],l=this._root;l&&s.push(new eb(l,this._x0,this._y0,this._x1,this._y1));while(t=s.pop())if(!e(l=t.node,r=t.x0,i=t.y0,a=t.x1,o=t.y1)&&l.length){var c=(r+a)/2,u=(i+o)/2;(n=l[3])&&s.push(new eb(n,c,u,a,o)),(n=l[2])&&s.push(new eb(n,r,u,c,o)),(n=l[1])&&s.push(new eb(n,c,i,a,u)),(n=l[0])&&s.push(new eb(n,r,i,c,u))}return this}function sb(e){var t,n=[],r=[];this._root&&n.push(new eb(this._root,this._x0,this._y0,this._x1,this._y1));while(t=n.pop()){var i=t.node;if(i.length){var a,o=t.x0,s=t.y0,l=t.x1,c=t.y1,u=(o+l)/2,d=(s+c)/2;(a=i[0])&&n.push(new eb(a,o,s,u,d)),(a=i[1])&&n.push(new eb(a,u,s,l,d)),(a=i[2])&&n.push(new eb(a,o,d,u,c)),(a=i[3])&&n.push(new eb(a,u,d,l,c))}r.push(t)}while(t=r.pop())e(t.node,t.x0,t.y0,t.x1,t.y1);return this}function lb(e){return e[0]}function cb(e){return arguments.length?(this._x=e,this):this._x}function ub(e){return e[1]}function db(e){return arguments.length?(this._y=e,this):this._y}function hb(e,t,n){var r=new pb(null==t?lb:t,null==n?ub:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function pb(e,t,n,r,i,a){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function fb(e){var t={data:e.data},n=t;while(e=e.next)n=n.next={data:e.data};return t}jv.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var mb=hb.prototype=pb.prototype;function gb(e){return function(){return e}}function vb(e){return 1e-6*(e()-.5)}function bb(e){return e.x+e.vx}function yb(e){return e.y+e.vy}function wb(e){var t,n,r,i=1,a=1;function o(){for(var e,o,l,c,u,d,h,p=t.length,f=0;f<a;++f)for(o=hb(t,bb,yb).visitAfter(s),e=0;e<p;++e)l=t[e],d=n[l.index],h=d*d,c=l.x+l.vx,u=l.y+l.vy,o.visit(m);function m(e,t,n,a,o){var s=e.data,p=e.r,f=d+p;if(!s)return t>c+f||a<c-f||n>u+f||o<u-f;if(s.index>l.index){var m=c-s.x-s.vx,g=u-s.y-s.vy,v=m*m+g*g;v<f*f&&(0===m&&(m=vb(r),v+=m*m),0===g&&(g=vb(r),v+=g*g),v=(f-(v=Math.sqrt(v)))/v*i,l.vx+=(m*=v)*(f=(p*=p)/(h+p)),l.vy+=(g*=v)*f,s.vx-=m*(f=1-f),s.vy-=g*f)}}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function l(){if(t){var r,i,a=t.length;for(n=new Array(a),r=0;r<a;++r)i=t[r],n[i.index]=+e(i,r,t)}}return"function"!==typeof e&&(e=gb(null==e?1:+e)),o.initialize=function(e,n){t=e,r=n,l()},o.iterations=function(e){return arguments.length?(a=+e,o):a},o.strength=function(e){return arguments.length?(i=+e,o):i},o.radius=function(t){return arguments.length?(e="function"===typeof t?t:gb(+t),l(),o):e},o}function Eb(e){return e.index}function _b(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function Sb(e){var t,n,r,i,a,o,s=Eb,l=d,c=gb(30),u=1;function d(e){return 1/Math.min(i[e.source.index],i[e.target.index])}function h(r){for(var i=0,s=e.length;i<u;++i)for(var l,c,d,h,p,f,m,g=0;g<s;++g)l=e[g],c=l.source,d=l.target,h=d.x+d.vx-c.x-c.vx||vb(o),p=d.y+d.vy-c.y-c.vy||vb(o),f=Math.sqrt(h*h+p*p),f=(f-n[g])/f*r*t[g],h*=f,p*=f,d.vx-=h*(m=a[g]),d.vy-=p*m,c.vx+=h*(m=1-m),c.vy+=p*m}function p(){if(r){var o,l,c=r.length,u=e.length,d=new Map(r.map(((e,t)=>[s(e,t,r),e])));for(o=0,i=new Array(c);o<u;++o)l=e[o],l.index=o,"object"!==typeof l.source&&(l.source=_b(d,l.source)),"object"!==typeof l.target&&(l.target=_b(d,l.target)),i[l.source.index]=(i[l.source.index]||0)+1,i[l.target.index]=(i[l.target.index]||0)+1;for(o=0,a=new Array(u);o<u;++o)l=e[o],a[o]=i[l.source.index]/(i[l.source.index]+i[l.target.index]);t=new Array(u),f(),n=new Array(u),m()}}function f(){if(r)for(var n=0,i=e.length;n<i;++n)t[n]=+l(e[n],n,e)}function m(){if(r)for(var t=0,i=e.length;t<i;++t)n[t]=+c(e[t],t,e)}return null==e&&(e=[]),h.initialize=function(e,t){r=e,o=t,p()},h.links=function(t){return arguments.length?(e=t,p(),h):e},h.id=function(e){return arguments.length?(s=e,h):s},h.iterations=function(e){return arguments.length?(u=+e,h):u},h.strength=function(e){return arguments.length?(l="function"===typeof e?e:gb(+e),f(),h):l},h.distance=function(e){return arguments.length?(c="function"===typeof e?e:gb(+e),m(),h):c},h}mb.copy=function(){var e,t,n=new pb(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=fb(r),n;e=[{source:r,target:n._root=new Array(4)}];while(r=e.pop())for(var i=0;i<4;++i)(t=r.source[i])&&(t.length?e.push({source:t,target:r.target[i]=new Array(4)}):r.target[i]=fb(t));return n},mb.add=Xv,mb.addAll=Yv,mb.cover=Qv,mb.data=Jv,mb.extent=Zv,mb.find=tb,mb.remove=nb,mb.removeAll=rb,mb.root=ib,mb.size=ab,mb.visit=ob,mb.visitAfter=sb,mb.x=cb,mb.y=db;const kb=1664525,xb=1013904223,Ab=4294967296;function Nb(){let e=1;return()=>(e=(kb*e+xb)%Ab)/Ab}function Cb(e){return e.x}function Tb(e){return e.y}var Rb=10,Ob=Math.PI*(3-Math.sqrt(5));function Ib(e){var t,n=1,r=.001,i=1-Math.pow(r,1/300),a=0,o=.6,s=new Map,l=Mf(d),c=Sf("tick","end"),u=Nb();function d(){h(),c.call("tick",t),n<r&&(l.stop(),c.call("end",t))}function h(r){var l,c,u=e.length;void 0===r&&(r=1);for(var d=0;d<r;++d)for(n+=(a-n)*i,s.forEach((function(e){e(n)})),l=0;l<u;++l)c=e[l],null==c.fx?c.x+=c.vx*=o:(c.x=c.fx,c.vx=0),null==c.fy?c.y+=c.vy*=o:(c.y=c.fy,c.vy=0);return t}function p(){for(var t,n=0,r=e.length;n<r;++n){if(t=e[n],t.index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var i=Rb*Math.sqrt(.5+n),a=n*Ob;t.x=i*Math.cos(a),t.y=i*Math.sin(a)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function f(t){return t.initialize&&t.initialize(e,u),t}return null==e&&(e=[]),p(),t={tick:h,restart:function(){return l.restart(d),t},stop:function(){return l.stop(),t},nodes:function(n){return arguments.length?(e=n,p(),s.forEach(f),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(i=+e,t):+i},alphaTarget:function(e){return arguments.length?(a=+e,t):a},velocityDecay:function(e){return arguments.length?(o=1-e,t):1-o},randomSource:function(e){return arguments.length?(u=e,s.forEach(f),t):u},force:function(e,n){return arguments.length>1?(null==n?s.delete(e):s.set(e,f(n)),t):s.get(e)},find:function(t,n,r){var i,a,o,s,l,c=0,u=e.length;for(null==r?r=1/0:r*=r,c=0;c<u;++c)s=e[c],i=t-s.x,a=n-s.y,o=i*i+a*a,o<r&&(l=s,r=o);return l},on:function(e,n){return arguments.length>1?(c.on(e,n),t):c.on(e)}}}function Lb(){var e,t,n,r,i,a=gb(-30),o=1,s=1/0,l=.81;function c(n){var i,a=e.length,o=hb(e,Cb,Tb).visitAfter(d);for(r=n,i=0;i<a;++i)t=e[i],o.visit(h)}function u(){if(e){var t,n,r=e.length;for(i=new Array(r),t=0;t<r;++t)n=e[t],i[n.index]=+a(n,t,e)}}function d(e){var t,n,r,a,o,s=0,l=0;if(e.length){for(r=a=o=0;o<4;++o)(t=e[o])&&(n=Math.abs(t.value))&&(s+=t.value,l+=n,r+=n*t.x,a+=n*t.y);e.x=r/l,e.y=a/l}else{t=e,t.x=t.data.x,t.y=t.data.y;do{s+=i[t.data.index]}while(t=t.next)}e.value=s}function h(e,a,c,u){if(!e.value)return!0;var d=e.x-t.x,h=e.y-t.y,p=u-a,f=d*d+h*h;if(p*p/l<f)return f<s&&(0===d&&(d=vb(n),f+=d*d),0===h&&(h=vb(n),f+=h*h),f<o&&(f=Math.sqrt(o*f)),t.vx+=d*e.value*r/f,t.vy+=h*e.value*r/f),!0;if(!(e.length||f>=s)){(e.data!==t||e.next)&&(0===d&&(d=vb(n),f+=d*d),0===h&&(h=vb(n),f+=h*h),f<o&&(f=Math.sqrt(o*f)));do{e.data!==t&&(p=i[e.data.index]*r/f,t.vx+=d*p,t.vy+=h*p)}while(e=e.next)}}return c.initialize=function(t,r){e=t,n=r,u()},c.strength=function(e){return arguments.length?(a="function"===typeof e?e:gb(+e),u(),c):a},c.distanceMin=function(e){return arguments.length?(o=e*e,c):Math.sqrt(o)},c.distanceMax=function(e){return arguments.length?(s=e*e,c):Math.sqrt(s)},c.theta=function(e){return arguments.length?(l=e*e,c):Math.sqrt(l)},c}function Db(e){var t=0,n=e.children,r=n&&n.length;if(r)while(--r>=0)t+=n[r].value;else t=1;e.value=t}function Pb(){return this.eachAfter(Db)}function Mb(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this}function Bb(e,t){var n,r,i=this,a=[i],o=-1;while(i=a.pop())if(e.call(t,i,++o,this),n=i.children)for(r=n.length-1;r>=0;--r)a.push(n[r]);return this}function Fb(e,t){var n,r,i,a=this,o=[a],s=[],l=-1;while(a=o.pop())if(s.push(a),n=a.children)for(r=0,i=n.length;r<i;++r)o.push(n[r]);while(a=s.pop())e.call(t,a,++l,this);return this}function $b(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r}function Ub(e){return this.eachAfter((function(t){var n=+e(t.data)||0,r=t.children,i=r&&r.length;while(--i>=0)n+=r[i].value;t.value=n}))}function jb(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))}function Vb(e){var t=this,n=Kb(t,e),r=[t];while(t!==n)t=t.parent,r.push(t);var i=r.length;while(e!==n)r.splice(i,0,e),e=e.parent;return r}function Kb(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;e=n.pop(),t=r.pop();while(e===t)i=e,e=n.pop(),t=r.pop();return i}function Hb(){var e=this,t=[e];while(e=e.parent)t.push(e);return t}function Gb(){return Array.from(this)}function zb(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e}function qb(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t}function*Xb(){var e,t,n,r,i=this,a=[i];do{e=a.reverse(),a=[];while(i=e.pop())if(yield i,t=i.children)for(n=0,r=t.length;n<r;++n)a.push(t[n])}while(a.length)}function Wb(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Jb)):void 0===t&&(t=Qb);var n,r,i,a,o,s=new ty(e),l=[s];while(n=l.pop())if((i=t(n.data))&&(o=(i=Array.from(i)).length))for(n.children=i,a=o-1;a>=0;--a)l.push(r=i[a]=new ty(i[a])),r.parent=n,r.depth=n.depth+1;return s.eachBefore(ey)}function Yb(){return Wb(this).eachBefore(Zb)}function Qb(e){return e.children}function Jb(e){return Array.isArray(e)?e[1]:null}function Zb(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function ey(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function ty(e){this.data=e,this.depth=this.height=0,this.parent=null}ty.prototype=Wb.prototype={constructor:ty,count:Pb,each:Mb,eachAfter:Fb,eachBefore:Bb,find:$b,sum:Ub,sort:jb,path:Vb,ancestors:Hb,descendants:Gb,leaves:zb,links:qb,copy:Yb,[Symbol.iterator]:Xb};var ny=1e-12;function ry(e){return((e=Math.exp(e))+1/e)/2}function iy(e){return((e=Math.exp(e))-1/e)/2}function ay(e){return((e=Math.exp(2*e))-1)/(e+1)}var oy=function e(t,n,r){function i(e,i){var a,o,s=e[0],l=e[1],c=e[2],u=i[0],d=i[1],h=i[2],p=u-s,f=d-l,m=p*p+f*f;if(m<ny)o=Math.log(h/c)/t,a=function(e){return[s+e*p,l+e*f,c*Math.exp(t*e*o)]};else{var g=Math.sqrt(m),v=(h*h-c*c+r*m)/(2*c*n*g),b=(h*h-c*c-r*m)/(2*h*n*g),y=Math.log(Math.sqrt(v*v+1)-v),w=Math.log(Math.sqrt(b*b+1)-b);o=(w-y)/t,a=function(e){var r=e*o,i=ry(y),a=c/(n*g)*(i*ay(t*r+y)-iy(y));return[s+a*p,l+a*f,c*i/ry(t*r+y)]}}return a.duration=1e3*o*t/Math.SQRT2,a}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n,i=r*r;return e(n,r,i)},i}(Math.SQRT2,2,4),sy=e=>()=>e;function ly(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function cy(e,t,n){this.k=e,this.x=t,this.y=n}cy.prototype={constructor:cy,scale:function(e){return 1===e?this:new cy(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new cy(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var uy=new cy(1,0,0);function dy(e){while(!e.__zoom)if(!(e=e.parentNode))return uy;return e.__zoom}function hy(e){e.stopImmediatePropagation()}function py(e){e.preventDefault(),e.stopImmediatePropagation()}function fy(e){return(!e.ctrlKey||"wheel"===e.type)&&!e.button}function my(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function gy(){return this.__zoom||uy}function vy(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function by(){return navigator.maxTouchPoints||"ontouchstart"in this}function yy(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function wy(){var e,t,n,r=fy,i=my,a=yy,o=vy,s=by,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],u=250,d=oy,h=Sf("start","zoom","end"),p=500,f=150,m=0,g=10;function v(e){e.property("__zoom",gy).on("wheel.zoom",k,{passive:!1}).on("mousedown.zoom",x).on("dblclick.zoom",A).filter(s).on("touchstart.zoom",N).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",T).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(e,t){return t=Math.max(l[0],Math.min(l[1],t)),t===e.k?e:new cy(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new cy(e.k,r,i)}function w(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function E(e,t,n,r){e.on("start.zoom",(function(){_(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){_(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,a=arguments,o=_(e,a).event(r),s=i.apply(e,a),l=null==n?w(s):"function"===typeof n?n.apply(e,a):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),u=e.__zoom,h="function"===typeof t?t.apply(e,a):t,p=d(u.invert(l).concat(c/u.k),h.invert(l).concat(c/h.k));return function(e){if(1===e)e=h;else{var t=p(e),n=c/t[2];e=new cy(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}}))}function _(e,t,n){return!n&&e.__zooming||new S(e,t)}function S(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=i.apply(e,t),this.taps=0}function k(e,...t){if(r.apply(this,arguments)){var n=_(this,t).event(e),i=this.__zoom,s=Math.max(l[0],Math.min(l[1],i.k*Math.pow(2,o.apply(this,arguments)))),u=Lv(e);if(n.wheel)n.mouse[0][0]===u[0]&&n.mouse[0][1]===u[1]||(n.mouse[1]=i.invert(n.mouse[0]=u)),clearTimeout(n.wheel);else{if(i.k===s)return;n.mouse=[u,i.invert(u)],rm(this),n.start()}py(e),n.wheel=setTimeout(d,f),n.zoom("mouse",a(y(b(i,s),n.mouse[0],n.mouse[1]),n.extent,c))}function d(){n.wheel=null,n.end()}}function x(e,...t){if(!n&&r.apply(this,arguments)){var i=e.currentTarget,o=_(this,t,!0).event(e),s=Ov(e.view).on("mousemove.zoom",h,!0).on("mouseup.zoom",p,!0),l=Lv(e,i),u=e.clientX,d=e.clientY;Fv(e.view),hy(e),o.mouse=[l,this.__zoom.invert(l)],rm(this),o.start()}function h(e){if(py(e),!o.moved){var t=e.clientX-u,n=e.clientY-d;o.moved=t*t+n*n>m}o.event(e).zoom("mouse",a(y(o.that.__zoom,o.mouse[0]=Lv(e,i),o.mouse[1]),o.extent,c))}function p(e){s.on("mousemove.zoom mouseup.zoom",null),$v(e.view,o.moved),py(e),o.event(e).end()}}function A(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,o=Lv(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(o),l=n.k*(e.shiftKey?.5:2),d=a(y(b(n,l),o,s),i.apply(this,t),c);py(e),u>0?Ov(this).transition().duration(u).call(E,d,o,e):Ov(this).call(v.transform,d,o,e)}}function N(n,...i){if(r.apply(this,arguments)){var a,o,s,l,c=n.touches,u=c.length,d=_(this,i,n.changedTouches.length===u).event(n);for(hy(n),o=0;o<u;++o)s=c[o],l=Lv(s,this),l=[l,this.__zoom.invert(l),s.identifier],d.touch0?d.touch1||d.touch0[2]===l[2]||(d.touch1=l,d.taps=0):(d.touch0=l,a=!0,d.taps=1+!!e);e&&(e=clearTimeout(e)),a&&(d.taps<2&&(t=l[0],e=setTimeout((function(){e=null}),p)),rm(this),d.start())}}function C(e,...t){if(this.__zooming){var n,r,i,o,s=_(this,t).event(e),l=e.changedTouches,u=l.length;for(py(e),n=0;n<u;++n)r=l[n],i=Lv(r,this),s.touch0&&s.touch0[2]===r.identifier?s.touch0[0]=i:s.touch1&&s.touch1[2]===r.identifier&&(s.touch1[0]=i);if(r=s.that.__zoom,s.touch1){var d=s.touch0[0],h=s.touch0[1],p=s.touch1[0],f=s.touch1[1],m=(m=p[0]-d[0])*m+(m=p[1]-d[1])*m,g=(g=f[0]-h[0])*g+(g=f[1]-h[1])*g;r=b(r,Math.sqrt(m/g)),i=[(d[0]+p[0])/2,(d[1]+p[1])/2],o=[(h[0]+f[0])/2,(h[1]+f[1])/2]}else{if(!s.touch0)return;i=s.touch0[0],o=s.touch0[1]}s.zoom("touch",a(y(r,i,o),s.extent,c))}}function T(e,...r){if(this.__zooming){var i,a,o=_(this,r).event(e),s=e.changedTouches,l=s.length;for(hy(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),p),i=0;i<l;++i)a=s[i],o.touch0&&o.touch0[2]===a.identifier?delete o.touch0:o.touch1&&o.touch1[2]===a.identifier&&delete o.touch1;if(o.touch1&&!o.touch0&&(o.touch0=o.touch1,delete o.touch1),o.touch0)o.touch0[1]=this.__zoom.invert(o.touch0[0]);else if(o.end(),2===o.taps&&(a=Lv(a,this),Math.hypot(t[0]-a[0],t[1]-a[1])<g)){var c=Ov(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return v.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property("__zoom",gy),e!==i?E(e,t,n,r):i.interrupt().each((function(){_(this,arguments).event(r).start().zoom(null,"function"===typeof t?t.apply(this,arguments):t).end()}))},v.scaleBy=function(e,t,n,r){v.scaleTo(e,(function(){var e=this.__zoom.k,n="function"===typeof t?t.apply(this,arguments):t;return e*n}),n,r)},v.scaleTo=function(e,t,n,r){v.transform(e,(function(){var e=i.apply(this,arguments),r=this.__zoom,o=null==n?w(e):"function"===typeof n?n.apply(this,arguments):n,s=r.invert(o),l="function"===typeof t?t.apply(this,arguments):t;return a(y(b(r,l),o,s),e,c)}),n,r)},v.translateBy=function(e,t,n,r){v.transform(e,(function(){return a(this.__zoom.translate("function"===typeof t?t.apply(this,arguments):t,"function"===typeof n?n.apply(this,arguments):n),i.apply(this,arguments),c)}),null,r)},v.translateTo=function(e,t,n,r,o){v.transform(e,(function(){var e=i.apply(this,arguments),o=this.__zoom,s=null==r?w(e):"function"===typeof r?r.apply(this,arguments):r;return a(uy.translate(s[0],s[1]).scale(o.k).translate("function"===typeof t?-t.apply(this,arguments):-t,"function"===typeof n?-n.apply(this,arguments):-n),e,c)}),r,o)},S.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1===++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0===--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=Ov(this.that).datum();h.call(e,this.that,new ly(e,{sourceEvent:this.sourceEvent,target:v,type:e,transform:this.that.__zoom,dispatch:h}),t)}},v.wheelDelta=function(e){return arguments.length?(o="function"===typeof e?e:sy(+e),v):o},v.filter=function(e){return arguments.length?(r="function"===typeof e?e:sy(!!e),v):r},v.touchable=function(e){return arguments.length?(s="function"===typeof e?e:sy(!!e),v):s},v.extent=function(e){return arguments.length?(i="function"===typeof e?e:sy([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),v):i},v.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],v):[l[0],l[1]]},v.translateExtent=function(e){return arguments.length?(c[0][0]=+e[0][0],c[1][0]=+e[1][0],c[0][1]=+e[0][1],c[1][1]=+e[1][1],v):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},v.constrain=function(e){return arguments.length?(a=e,v):a},v.duration=function(e){return arguments.length?(u=+e,v):u},v.interpolate=function(e){return arguments.length?(d=e,v):d},v.on=function(){var e=h.on.apply(h,arguments);return e===h?v:e},v.clickDistance=function(e){return arguments.length?(m=(e=+e)*e,v):Math.sqrt(m)},v.tapDistance=function(e){return arguments.length?(g=+e,v):g},v}dy.prototype=cy.prototype;const Ey=e=>`<defs>\n\x3c!-- GIT REPO ICON --\x3e\n<svg id="git" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" style="enable-background:new 0 0 96 96" xml:space="preserve"><path class="st0" d="M92.138 43.888 52.018 3.77a5.918 5.918 0 0 0-8.369 0l-8.33 8.332L45.887 22.67a7.025 7.025 0 0 1 7.23 1.684 7.031 7.031 0 0 1 1.67 7.275l10.185 10.185a7.03 7.03 0 0 1 7.275 1.67 7.04 7.04 0 0 1 0 9.958 7.042 7.042 0 0 1-11.492-7.658l-9.5-9.499v24.997a7.09 7.09 0 0 1 1.861 1.331 7.042 7.042 0 1 1-7.65-1.537V35.849a7.04 7.04 0 0 1-3.822-9.234l-10.418-10.42-27.51 27.508a5.921 5.921 0 0 0 0 8.371l40.121 40.118a5.919 5.919 0 0 0 8.37 0l39.93-39.932a5.92 5.92 0 0 0 0-8.37z"/></svg>\n\x3c!-- GENERIC BUNDLE ICON --\x3e\n<svg id="bundle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="#FFF"><path d="M16 3.2C8.931 3.2 3.2 8.931 3.2 16S8.931 28.8 16 28.8 28.8 23.069 28.8 16 23.069 3.2 16 3.2zm0 22.4c-5.302 0-9.6-4.298-9.6-9.6s4.298-9.6 9.6-9.6 9.6 4.298 9.6 9.6a9.6 9.6 0 0 1-9.6 9.6z"/><path d="m24.086 16-6.232-1.348.917-1.424-1.424.917-1.348-6.232-1.348 6.232-1.424-.917.917 1.424L7.912 16l6.232 1.348-.917 1.424 1.424-.917 1.348 6.232 1.348-6.232 1.424.917-.917-1.424L24.086 16zM16 16.814a.814.814 0 1 1 0-1.628.814.814 0 0 1 0 1.628z"/></svg>\n\x3c!-- HELM BUNDLE ICON --\x3e\n<svg id="helm" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500"><defs><style>.cls-1{fill:#fff}</style></defs><path class="cls-1" d="M136.53 121.135c-.573-.543-1.195-1.127-1.81-1.718-12.617-12.121-22.382-26.136-28.28-42.702-1.65-4.636-2.897-9.365-2.675-14.359.02-.473.02-.949.052-1.422.445-6.446 4.759-9.703 11.058-8.176a27.325 27.325 0 0 1 5.732 2.196c6.89 3.456 12.506 8.564 17.67 14.166A112.527 112.527 0 0 1 160 102.55a8.296 8.296 0 0 0 .39.86c.07.13.222.213.559.52a176.357 176.357 0 0 1 81.02-24.861c-.177-.876-.282-1.546-.448-2.2a112.494 112.494 0 0 1-2.653-36.957 84.075 84.075 0 0 1 4.445-21.764 31.326 31.326 0 0 1 5.476-10.17 15.687 15.687 0 0 1 3.164-2.822 7.026 7.026 0 0 1 8.032-.056 17.279 17.279 0 0 1 5.84 6.731 53.054 53.054 0 0 1 5.263 14.677 112.505 112.505 0 0 1 2.122 33.004 95.598 95.598 0 0 1-3.49 19.91c7.121 1.312 14.21 2.33 21.147 3.978a186.38 186.38 0 0 1 20.44 6.003 188.317 188.317 0 0 1 19.77 8.57c6.346 3.163 12.386 6.94 18.718 10.537.206-.433.505-.95.706-1.502a108.66 108.66 0 0 1 32.901-46.762 37.758 37.758 0 0 1 11.822-6.883 17.246 17.246 0 0 1 3.679-.845c6.264-.717 8.893 3.224 9.356 7.932a29.944 29.944 0 0 1-.774 10.354 87.906 87.906 0 0 1-10.73 24.688c-6.79 10.972-14.85 20.855-25.093 28.83-.302.236-.568.519-1.08.99a177.78 177.78 0 0 1 26.593 30.883 10.962 10.962 0 0 1-1.689.298c-10.595.015-21.19-.019-31.786.046a4.004 4.004 0 0 1-3.172-1.69 147.875 147.875 0 0 0-88.178-46.549 143.359 143.359 0 0 0-30.28-1.169 146.407 146.407 0 0 0-82.537 31.81 140.067 140.067 0 0 0-16.976 15.843 4.728 4.728 0 0 1-3.863 1.757c-10.121-.07-20.242-.035-30.363-.035h-2.152c.618-2.408 6.84-10.938 13.883-18.553 5.252-5.679 10.817-11.07 16.468-16.818ZM394.53 347.912a176.639 176.639 0 0 1-23.974 27.164l1.862 1.55a108.315 108.315 0 0 1 33.683 48.146 34.618 34.618 0 0 1 2.202 14.42 14.885 14.885 0 0 1-.748 3.692 7.208 7.208 0 0 1-8.157 5.023 22.233 22.233 0 0 1-6.763-2.006 51.232 51.232 0 0 1-9.182-5.815 107.592 107.592 0 0 1-32.936-46.707c-.187-.514-.392-1.02-.722-1.877a194.65 194.65 0 0 1-25.012 14.008 181.67 181.67 0 0 1-26.687 9.724 187.556 187.556 0 0 1-28.305 5.388c.168.84.265 1.51.438 2.16a109.172 109.172 0 0 1 2.97 36.442 80.804 80.804 0 0 1-4.422 22.478 78.25 78.25 0 0 1-4.165 8.744 13.39 13.39 0 0 1-2.339 2.971c-3.98 4.11-8.732 4.144-12.611-.074a27.28 27.28 0 0 1-3.907-5.617c-3.077-5.776-4.66-12.056-5.791-18.46a116.863 116.863 0 0 1-1.36-26.465 94.48 94.48 0 0 1 2.885-19.186c.14-.532.268-1.07.372-1.61.026-.137-.064-.297-.171-.738a176.121 176.121 0 0 1-80.969-24.994c-.41.91-.762 1.675-1.101 2.446a110.477 110.477 0 0 1-30.901 41.42 38.16 38.16 0 0 1-12.047 6.96 12.09 12.09 0 0 1-6.516.7 7.119 7.119 0 0 1-5.403-4.49c-1.416-3.424-1.165-6.985-.684-10.517a55.453 55.453 0 0 1 4.307-14.25 112.5 112.5 0 0 1 26.512-37.763c.459-.435.93-.857 1.38-1.3a3.76 3.76 0 0 0 .366-.655 178.905 178.905 0 0 1-28.47-31.317c.985-.08 1.644-.18 2.303-.18 10.514-.01 21.029.027 31.543-.044a4.706 4.706 0 0 1 3.703 1.626 146.946 146.946 0 0 0 39.403 28.885 139.947 139.947 0 0 0 49.704 14.774q70.68 6.87 121.6-42.854a7.646 7.646 0 0 1 5.992-2.444c9.802.121 19.605.05 29.408.05h2.534ZM350.736 197.762c2.787 0 5.47.189 8.115-.05 2.995-.271 5.139.8 7.323 2.813 12.613 11.622 25.357 23.1 38.059 34.627.638.58 1.29 1.144 2.11 1.87.764-.657 1.481-1.243 2.165-1.865q19.638-17.878 39.248-35.787a5.448 5.448 0 0 1 4.204-1.646c3.218.13 6.446.038 9.84.038V303.13c-1.722.504-24.875.604-27.638.061V249.83l-.537-.254-27.238 24.841-27.458-24.736-.524.192c-.023 4.454-.008 8.908-.01 13.362q-.005 6.64-.001 13.28v26.871h-27.428c-.514-1.773-.753-99.662-.23-105.623ZM97.634 197.882h27.264c.55 1.753.658 102.972.094 105.525H97.705c-.15-6.703-.048-13.384-.067-20.061-.018-6.623-.004-13.245-.004-20.04H63.847v39.741c-2.06.615-25.334.674-27.648.123V197.894h27.538v37.19c1.968.568 30.924.673 33.872.129.009-2.978.02-6.027.024-9.076q.007-4.744.001-9.487v-18.768ZM157.576 303.368V198.195c1.617-.53 61.545-.736 65.462-.205v22.414c-.879.063-1.786.184-2.693.185q-16.008.02-32.017.009h-2.968v17.433h33.347v23.192h-33.049c-.553 1.985-.705 15.817-.256 19.646.845.057 1.75.17 2.655.17q16.01.019 32.018.009h2.97v22.32ZM254.283 303.409c-.5-2.823-.4-103.602.097-105.518h27.162v77.765c1.172.06 2.092.149 3.011.15q16.128.014 32.256.006h2.908v27.597Z"/></svg>\n\x3c!-- RESOURCE DEPLOYMENT ICON --\x3e\n<svg id="deployment" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M24.01 20.027v2h-24v-2h4v-1a2.006 2.006 0 0 1-2-2v-10a2.006 2.006 0 0 1 2-2h1.996v2H4.01v10h16v-10h-2.004v-2h2.004a2.006 2.006 0 0 1 2 2l-.01 10a1.997 1.997 0 0 1-1.99 2v1Zm-9-6.012-3-3-3 3h2v2.01h2v-2.01Zm.995-7.991a4 4 0 1 1-4-4 4.001 4.001 0 0 1 4 4Zm-4.4 2.96v-.56a.802.802 0 0 1-.8-.8v-.4L9.06 5.479a2.958 2.958 0 0 0 2.545 3.505Zm2.658-1.007a2.977 2.977 0 0 0-1.068-4.704.797.797 0 0 1-.79.75h-.8v.8a.401.401 0 0 1-.4.4h-.8v.8h2.4a.401.401 0 0 1 .4.4v1.2h.4a.787.787 0 0 1 .658.354Z" fill="#fff"/></svg>\n\x3c!-- NODE ICON --\x3e\n<svg id="node" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="#fff"><circle cx="12" cy="3" r="1"/><circle cx="20" cy="8" r="1"/><circle cx="20" cy="16" r="1"/><circle cx="4" cy="8" r="1"/><circle cx="4" cy="16" r="1"/><path d="M20 14v-4a1.992 1.992 0 0 1-1.481-3.333l-4.783-2.69a1.983 1.983 0 0 1-3.472 0l-4.783 2.69A1.992 1.992 0 0 1 4 10v4a1.992 1.992 0 0 1 1.481 3.333l4.783 2.69a1.991 1.991 0 0 1 1.236-.952v-5.142a2 2 0 1 1 1 0v5.142a1.991 1.991 0 0 1 1.236.953l4.783-2.69A1.992 1.992 0 0 1 20 14Z"/><circle cx="12" cy="21" r="1"/><circle cx="12" cy="12" r="1"/></g></svg>\n\x3c!-- RESOURCE OTHER ICON --\x3e\n<svg id="other" xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="#FFF"><path d="M27.476 10.22H14.83l-1.558-3.115a1.327 1.327 0 0 0-1.184-.732H4.522c-.731 0-1.324.593-1.324 1.324v16.606c0 .731.593 1.324 1.324 1.324h22.953c.731 0 1.324-.593 1.324-1.324v-12.76c0-.731-.593-1.324-1.324-1.324z"/></svg>\n</defs>\n<use id="customIcon" href="#${e}" fill="#fff" />`;var _y={name:"ForceDirectedTreeChart",components:{BadgeState:Ed.j},props:{data:{type:[Array,Object],required:!0},fdcConfig:{type:Object,required:!0}},data(){return{dataWatcher:void 0,parsedInfo:void 0,root:void 0,allNodesData:void 0,allLinks:void 0,rootNode:void 0,node:void 0,link:void 0,svg:void 0,zoom:void 0,simulation:void 0,isChartFirstRendered:!1,isChartFirstRenderAnimationFinished:!1,moreInfo:{}}},methods:{watcherFunction(e){if(e.length)if(this.isChartFirstRendered){const e=this.fdcConfig.parseData(this.data),t=this.flatten(e);let n=!1;t.forEach((e=>{const t=this.allNodesData.findIndex((t=>e.matchingId===t.data.matchingId));t>-1&&this.allNodesData[t].data.state!==e.state&&(this.allNodesData[t].data.state=e.state,this.allNodesData[t].data.stateLabel=e.stateLabel,this.allNodesData[t].data.stateColor=e.stateColor,n=!0,this.allNodesData[t].data.active&&this.setDetailsInfo(this.allNodesData[t].data,!1))})),n&&this.updateChart(!1,!1)}else this.parsedInfo=this.fdcConfig.parseData(this.data),this.setDetailsInfo(this.parsedInfo,!1),this.parsedInfo.active=!0,this.renderChart(),this.updateChart(!0,!0),this.isChartFirstRendered=!0},renderChart(){this.zoom=wy().scaleExtent([1/8,16]).on("zoom",this.zoomed);const e=uy.scale(1).translate(0,0);this.rootNode=this.svg.append("g").attr("class","root-node"),this.svg.call(this.zoom),this.svg.call(this.zoom.transform,e),this.simulation=Ib().force("charge",Lb().strength(this.fdcConfig.simulationParams.fdcStrength).distanceMax(this.fdcConfig.simulationParams.fdcDistanceMax)).force("collision",wb(this.fdcConfig.simulationParams.fdcForceCollide)).force("center",qv(this.fdcConfig.chartWidth/2,this.fdcConfig.chartHeight/2)).alphaDecay(this.fdcConfig.simulationParams.fdcAlphaDecay).on("tick",this.ticked).on("end",(()=>{this.isChartFirstRenderAnimationFinished||(this.zoomFit(),this.isChartFirstRenderAnimationFinished=!0)}))},updateChart(e,t){e&&(this.root=Wb(this.parsedInfo)),t&&(this.allNodesData=this.flatten(this.root),this.allLinks=this.root.links()),this.link=this.rootNode.selectAll(".link").data(this.allLinks,(e=>e.target.id)),this.link.exit().remove();const n=this.link.enter().append("line").attr("class","link").style("opacity","0.2").style("stroke-width",4);this.link=n.merge(this.link),this.node=this.rootNode.selectAll(".node").data(this.allNodesData,(e=>e.id)).attr("class",this.mainNodeClass),this.node.exit().remove();const r=this.node.enter().append("g").attr("class",this.mainNodeClass).style("opacity",1).on("click",((e,t)=>{this.setDetailsInfo(t.data,!0)})).call(zv().on("start",this.dragStarted).on("drag",this.dragging).on("end",this.dragEnded));r.append("circle").attr("r",this.setNodeRadius),r.append("circle").attr("r",(e=>this.setNodeRadius(e)-5)).attr("class","node-hover-layer"),r.append("svg").html((e=>{const t=this.fdcConfig.fetchNodeIcon(e);return Ey(t)})).attr("x",this.nodeImagePosition).attr("y",this.nodeImagePosition).attr("height",this.nodeImageSize).attr("width",this.nodeImageSize),this.node=r.merge(this.node),this.simulation.nodes(this.allNodesData),this.simulation.force("link",Sb().id((e=>e.id)).distance(100).links(this.allLinks))},mainNodeClass(e){const t=e.data?.state?e.data.state.toLowerCase():"unkown_status",n=["node"];kd.xj[t]&&kd.xj[t].color?n.push(`node-${kd.xj[t].color}`):n.push("node-default-fill"),e.data?.active&&n.push("active");const r=this.fdcConfig.extendNodeClass(e).concat(n);return r.join(" ")},setNodeRadius(e){const{radius:t}=this.fdcConfig.nodeDimensions(e);return t},nodeImageSize(e){const{size:t}=this.fdcConfig.nodeDimensions(e);return t},nodeImagePosition(e){const{position:t}=this.fdcConfig.nodeDimensions(e);return t},setDetailsInfo(e,t){this.moreInfo=Object.assign([],this.fdcConfig.infoDetails(e)),t&&(this.allNodesData.forEach(((t,n)=>{t.data.matchingId===e.matchingId?this.allNodesData[n].data.active=!0:this.allNodesData[n].data.active=!1})),this.updateChart(!1,!1))},zoomFit(){const e=Ov(".root-node"),t=30,n=e.node().getBoundingClientRect(),r=e.node().getBBox(),i=e.node().parentElement,a=i.clientWidth,o=i.clientHeight,s=n.width,l=n.height,c=r.x+s/2,u=r.y+l/2;if(0===s||0===l)return;const d=1/Math.max(s/(a-t),l/(o-t)),h=[a/2-d*c,o/2-d*u],p=uy.translate(h[0],h[1]).scale(d);this.svg.call(this.zoom.transform,p)},ticked(){this.link.attr("x1",(e=>e.source.x)).attr("y1",(e=>e.source.y)).attr("x2",(e=>e.target.x)).attr("y2",(e=>e.target.y)),this.node.attr("transform",(e=>`translate(${e.x}, ${e.y})`))},dragStarted(e,t){e.active||this.simulation.alphaTarget(.3).restart(),t.fx=t.x,t.fy=t.y},dragging(e,t){t.fx=e.x,t.fy=e.y},dragEnded(e,t){e.active||this.simulation.alphaTarget(0),t.fx=void 0,t.fy=void 0},zoomed(e){this.rootNode.attr("transform",e.transform)},flatten(e){const t=[];let n=0;function r(e){e.children&&e.children.forEach(r),e.id?++n:e.id=++n,t.push(e)}return r(e),t}},mounted(){this.svg=Ov("#tree").append("svg").attr("viewBox",`0 0 ${this.fdcConfig.chartWidth} ${this.fdcConfig.chartHeight}`).attr("preserveAspectRatio","none"),this.dataWatcher=this.$watch(this.fdcConfig.watcherProp,(function(e){this.watcherFunction(e)}),{deep:!0,immediate:!0})},unmounted(){this.dataWatcher()}};a(3704);const Sy=(0,u.A)(_y,[["render",ph]]);var ky=Sy;a(37327),a(27278),a(4364);const xy=(e,t)=>{const n={};for(const[r,i]of Object.entries(e)){const e=t.getters[`${i.inStoreType}/schemaFor`](i.type),a=i.schemaValidator?i.schemaValidator(e):!!e;if(a){const e=t.dispatch(`${i.inStoreType}/findAll`,{type:i.type,opt:i.opt});i.skipWait||(n[r]=e)}}return(0,ce.kR)(n)};var Ay=a(99726);function Ny(e){return e.query?.mode===ku.HC?ku.HC:e.params?.id?e.query.mode||ku.nW:ku.YQ}async function Cy(e,t){let n;const r={headers:{accept:"application/yaml"}};return t.hasLink("view")&&(n=(await t.followLink("view",r)).data),t.cleanForDownload(n)}var Ty={emits:["input"],components:{Loading:Me.A,DetailTop:th,ForceDirectedTreeChart:ky,ResourceYaml:Qu.A,Masthead:Rd,IconMessage:Ec,Banner:Ou.l},mixins:[Yu.A],props:{storeOverride:{type:String,default:null},resourceOverride:{type:String,default:null},parentRouteOverride:{type:String,default:null},componentTestid:{type:String,default:"resource-details"},errorsMap:{type:Object,default:null}},async fetch(){const e=this.$store,t=this.$route,n=t.params;let r=this.resourceOverride||n.resource;const i=this.storeOverride||e.getters["currentStore"](r),a=this.realMode;let{namespace:o,id:s}=n;const l=[ku.dT,ku.HC,ku.wZ].includes(a)?ku.YQ:a,c=e.getters["type-map/hasGraph"](r),u=!!c,d=e.getters["type-map/hasCustomDetail"](r,s),h=e.getters["type-map/hasCustomEdit"](r,s),p=e.getters[`${i}/all`]($.yx),f=t.query[ku.AS];let m,g=!1;m=l!==ku.nW||!d||f&&f!==ku.fS?l===ku.nW&&u&&f===ku.Yq?ku.Yq:!h||f&&f!==ku.au?ku.zD:ku.au:ku.fS,this.as=m;const v=e.getters["type-map/optionsFor"](r);this.showMasthead=![ku.YQ,ku.G5].includes(l)||v.resourceEditMasthead;const b=v.canYaml;v.resource&&(r=v.resource);const y=e.getters[`${i}/schemaFor`](r);let w,E,_,S;if(a===ku.YQ||a===ku.HC){o||(o=e.getters["defaultNamespace"]);const t={type:r};y?.attributes?.namespaced&&(t.metadata={namespace:o}),_=await e.dispatch(`${i}/create`,t),E=await e.dispatch(`${i}/clone`,{resource:_}),w=await e.dispatch(`${i}/clone`,{resource:_}),!0===w.forceYaml&&(m=ku.zD,this.as=m),m===ku.zD&&(y?.fetchResourceFields&&await y.fetchResourceFields(),S=(0,Ju.mH)(p,r,t))}else{if(m===ku.Yq){const e=await xy({cluster:{inStoreType:"management",type:$.Hs.CLUSTER},bundle:{inStoreType:"management",type:$.Hs.BUNDLE,opt:{excludeFields:["metadata.managedFields","spec.resources"]}},bundleDeployment:{inStoreType:"management",type:$.Hs.BUNDLE_DEPLOYMENT}},this.$store);this.canViewChart=e.cluster&&e.bundle&&e.bundleDeployment}let t=s;y.attributes?.namespaced&&o&&(t=`${o}/${t}`);try{_=await e.dispatch(`${i}/find`,{type:r,id:t,opt:{watch:!0}})}catch(Hs){404!==Hs.status&&403!==Hs.status||e.dispatch("loadingError",new Error(this.t("nav.failWhale.resourceIdNotFound",{resource:r,fqid:t},!0))),_={},g=t}try{w=a===ku.nW?_:await e.dispatch(`${i}/clone`,{resource:_}),E=await e.dispatch(`${i}/clone`,{resource:_}),m===ku.zD&&(S=await Cy(this.$store,_))}catch(Hs){this.errors.push(Hs)}if(m===ku.zD)try{S=await Cy(this.$store,_)}catch(Hs){this.errors.push(Hs)}m===ku.Yq&&(this.chartData=_),[ku.dT,ku.HC,ku.wZ].includes(a)&&(w.cleanForNew(),S=w.cleanYaml(S,a))}try{w=await e.dispatch(`${i}/cleanForDetail`,w)}catch(Hs){this.errors.push(Hs)}const k={hasGraph:u,getGraphConfig:c,hasCustomDetail:d,hasCustomEdit:h,canViewYaml:b,resourceType:r,as:m,yaml:S,initialModel:E,liveModel:_,mode:l,value:w,notFound:g};for(const x in k)this[x]=k[x];this.mode===ku.YQ&&this.value.applyDefaults(this,a)},data(){return{chartData:null,resourceSubtype:null,hasGraph:null,hasCustomDetail:null,hasCustomEdit:null,resourceType:null,asYaml:null,yaml:null,liveModel:null,initialModel:null,mode:null,as:null,value:null,model:null,notFound:null,canViewChart:!0,canViewYaml:null,errors:[]}},computed:{realMode(){const e=Ny(this.$route);return e},isView(){return this.mode===ku.nW},isYaml(){return this.as===ku.zD},isDetail(){return this.as===ku.fS},isGraph(){return this.as===ku.Yq},offerPreview(){return this.as===ku.zD&&[ku.G5,ku.dT,ku.HC,ku.wZ].includes(this.mode)},showComponent(){switch(this.as){case ku.fS:return this.detailComponent;case ku.au:return this.editComponent}return null},hasErrors(){return this.errors?.length&&Array.isArray(this.errors)},mappedErrors(){return this.errors?this.errorsMap||this.errors.reduce(((e,t)=>({...e,[t]:{message:t?.data?.message||t,icon:null}})),{}):{}}},watch:{$route(e,t){if(e.name!==t.name)return;const n=(0,_d.o8)(e.query),r=(0,_d.o8)(t.query);delete n[ku.$y],delete r[ku.$y],this.isView||(delete n[ku.AS],delete r[ku.AS]);const i=Object.keys((0,_d.Ui)(n,r));(i.includes(ku.g)||i.includes(ku.AS))&&this.$fetch()},async"value.metadata.resourceVersion"(e,t){this.mode===ku.nW&&this.as===ku.zD&&e&&t&&e!==t&&(this.yaml=await Cy(this.$store,this.liveModel))}},created(){const e=this.$route.params.id,t=this.resourceOverride||this.$route.params.resource,n=this.$store.getters["type-map/optionsFor"](t),r=n.resourceDetail||n.resource||t,i=n.resourceEdit||n.resource||t;this.detailComponent=this.$store.getters["type-map/importDetail"](r,e),this.editComponent=this.$store.getters["type-map/importEdit"](i,e)},methods:{stringify:Ay.As,setSubtype(e){this.resourceSubtype=e},keyAction(e){const t=this.liveModel;t?.[e]&&t[e]()},closeError(e){this.errors=this.errors.filter(((t,n)=>n!==e))}}};a(16625);const Ry=(0,u.A)(Ty,[["render",Wu],["__scopeId","data-v-3c03c7c6"]]);var Oy=Ry,Iy={name:"HarvesterResourceCreate",components:{ResourceDetail:Oy}};const Ly=(0,u.A)(Iy,[["render",Vu]]);var Dy=Ly;function Py(e,t,n,r,a,o){const s=(0,i.resolveComponent)("ResourceDetail");return(0,i.openBlock)(),(0,i.createBlock)(s)}var My={name:"HarvesterResourcedId",components:{ResourceDetail:Oy}};const By=(0,u.A)(My,[["render",Py]]);var Fy=By;function $y(e,t,n,r,a,o){const s=(0,i.resolveComponent)("ResourceDetail");return(0,i.openBlock)(),(0,i.createBlock)(s)}var Uy={name:"HarvesterResourcedNamespaceId",components:{ResourceDetail:Oy}};const jy=(0,u.A)(Uy,[["render",$y]]);var Vy=jy;const Ky={key:0,id:"air-gap"},Hy={class:"mb-20"},Gy={key:0},zy={key:2,class:"chooseFile"};function qy(e,t,n,r,a,o){const s=(0,i.resolveComponent)("RadioGroup"),l=(0,i.resolveComponent)("UpgradeInfo"),c=(0,i.resolveComponent)("LabeledInput"),u=(0,i.resolveComponent)("Checkbox"),d=(0,i.resolveComponent)("LabeledSelect"),h=(0,i.resolveComponent)("CruResource");return a.value?((0,i.openBlock)(),(0,i.createElementBlock)("div",Ky,[(0,i.createElementVNode)("h3",Hy,(0,i.toDisplayString)(e.t("harvester.upgradePage.osUpgrade")),1),(0,i.createVNode)(h,{"done-route":o.doneRoute,resource:a.value,mode:"create",errors:a.errors,"can-yaml":!1,"finish-button-mode":"upgrade","cancel-event":!0,onFinish:o.save,onCancel:o.done},{default:(0,i.withCtx)((()=>[(0,i.createVNode)(s,{value:a.imageSource,"onUpdate:value":t[0]||(t[0]=e=>a.imageSource=e),class:"image-group",name:"image",options:[a.IMAGE_METHOD.NEW,a.IMAGE_METHOD.EXIST],labels:[e.t("harvester.upgradePage.uploadNew"),e.t("harvester.upgradePage.selectExisting")]},null,8,["value","options","labels"]),(0,i.createVNode)(l),o.uploadImage?((0,i.openBlock)(),(0,i.createElementBlock)("div",Gy,[(0,i.createVNode)(c,{modelValue:a.imageValue.spec.displayName,"onUpdate:modelValue":t[1]||(t[1]=e=>a.imageValue.spec.displayName=e),modelModifiers:{trim:!0},class:"mb-20","label-key":"harvester.fields.name",required:""},null,8,["modelValue"]),(0,i.createVNode)(c,{value:a.imageValue.spec.checksum,"onUpdate:value":t[2]||(t[2]=e=>a.imageValue.spec.checksum=e),class:"mb-10","label-key":"harvester.setting.upgrade.checksum"},null,8,["value"]),o.canEnableLogging?((0,i.openBlock)(),(0,i.createBlock)(u,{key:0,value:a.enableLogging,"onUpdate:value":t[3]||(t[3]=e=>a.enableLogging=e),class:"check mb-20",type:"checkbox",label:e.t("harvester.upgradePage.enableLogging")},null,8,["value","label"])):(0,i.createCommentVNode)("",!0),(0,i.createVNode)(s,{value:a.sourceType,"onUpdate:value":t[4]||(t[4]=e=>a.sourceType=e),class:"mb-20 image-group",name:"sourceType",options:["upload","download"],labels:[e.t("harvester.image.sourceType.upload"),e.t("harvester.image.sourceType.download")]},null,8,["value","labels"]),"download"===a.sourceType?((0,i.openBlock)(),(0,i.createBlock)(c,{key:1,modelValue:a.imageValue.spec.url,"onUpdate:modelValue":t[5]||(t[5]=e=>a.imageValue.spec.url=e),modelModifiers:{trim:!0},class:"labeled-input--tooltip",required:"","label-key":"harvester.image.url"},null,8,["modelValue"])):((0,i.openBlock)(),(0,i.createElementBlock)("div",zy,[(0,i.createElementVNode)("button",{type:"button",class:"btn role-primary",onClick:t[7]||(t[7]=(...e)=>o.selectFile&&o.selectFile(...e))},[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("harvester.image.uploadFile"))+" ",1),(0,i.withDirectives)((0,i.createElementVNode)("input",{id:"file",ref:"file",type:"file",accept:".iso",onChange:t[6]||(t[6]=e=>o.handleFileUpload())},null,544),[[i.vShow,!1]])]),(0,i.createElementVNode)("span",{class:(0,i.normalizeClass)([{"text-muted":!o.fileName},"ml-20"])},(0,i.toDisplayString)(o.fileName?o.fileName:e.t("harvester.generic.noFileChosen")),3)]))])):((0,i.openBlock)(),(0,i.createBlock)(d,{key:1,value:a.imageId,"onUpdate:value":t[8]||(t[8]=e=>a.imageId=e),options:o.osImageOptions,required:"",class:"mb-20","label-key":"harvester.fields.image"},null,8,["value","options"]))])),_:1},8,["done-route","resource","errors","onFinish","onCancel"])])):(0,i.createCommentVNode)("",!0)}var Xy=a(99960),Wy=a(10196),Yy=a(77988),Qy=a(2602),Jy=a(91806);const Zy={NEW:"new",EXIST:"exist"},ew="download",tw="upload";var nw={name:"HarvesterAirgapUpgrade",components:{Checkbox:Tu.S,CruResource:Xy.A,LabeledSelect:Yy.A,LabeledInput:vu.o,RadioGroup:Wy.z,UpgradeInfo:Jy.A},inheritAttrs:!1,async fetch(){await this.$store.dispatch("harvester/findAll",{type:l.rk.IMAGE});const e=await this.$store.dispatch("harvester/create",{type:l.rk.UPGRADE,metadata:{generateName:"hvst-upgrade-",namespace:"harvester-system"},spec:{image:""}}),t=await this.$store.dispatch("harvester/create",{type:l.rk.IMAGE,metadata:{name:"",namespace:"harvester-system",generateName:"image-",annotations:{}},spec:{sourceType:tw,displayName:"",checksum:""}});this.value=e,this.imageValue=t},data(){return{value:null,file:{},imageId:"",imageSource:Zy.NEW,sourceType:tw,imageValue:null,errors:[],enableLogging:!0,IMAGE_METHOD:Zy}},computed:{doneRoute(){return`${r.KR}-c-cluster-resource`},osImageOptions(){return this.$store.getters["harvester/all"](l.rk.IMAGE).filter((e=>e.isOSImage)).map((e=>({label:e.spec.displayName,value:e.id,disabled:!e.isReady})))},uploadImage(){return this.imageSource===Zy.NEW},fileName(){return this.file?.name||""},canEnableLogging(){return this.$store.getters["harvester/schemaFor"](l.rk.UPGRADE_LOG)}},methods:{done(){this.$router.push({name:this.doneRoute,params:{resource:l.rk.SETTING,product:"harvester"}})},async save(e){let t=null;if(this.errors=[],!this.imageValue.spec.displayName&&this.uploadImage)return this.errors.push(this.$store.getters["i18n/t"]("validation.required",{key:this.t("generic.name")})),void e(!1);try{if(this.imageSource===Zy.NEW){if(this.imageValue.metadata.annotations[Qy.r.OS_UPGRADE_IMAGE]="True",this.sourceType===tw){this.imageValue.spec.sourceType=tw;const n=this.file;if(!n.name)return this.errors.push(this.$store.getters["i18n/t"]("harvester.setting.upgrade.selectExitImage")),void e(!1);this.imageValue.spec.url="",this.imageValue.metadata.annotations[Qy.r.IMAGE_NAME]=n.name,t=await this.imageValue.save(),t.uploadImage(n)}else if(this.sourceType===ew){if(this.imageValue.spec.sourceType=ew,!this.imageValue.spec.url)return this.errors.push(this.$store.getters["i18n/t"]("harvester.setting.upgrade.imageUrl")),void e(!1);t=await this.imageValue.save()}this.value.spec.image=t.id}else if(this.imageSource===Zy.EXIST){if(!this.imageId)return void this.errors.push(this.$store.getters["i18n/t"]("harvester.setting.upgrade.chooseFile"));this.value.spec.image=this.imageId}this.canEnableLogging&&(this.value.spec.logEnabled=this.enableLogging),await this.value.save(),this.done(),e(!0)}catch(Hs){this.errors=(0,Ay.rz)(Hs),e(!1)}},handleFileUpload(){this.file=this.$refs.file.files[0]},selectFile(){this.$refs.file.value=null,this.$refs.file.click()}},watch:{"imageValue.spec.url":{handler(e){const t=e?.split("/")?.pop(),n=t?.split(".")||[],r=n?.pop()?.toLowerCase();n.length>1&&"iso"===r&&!this.imageValue.spec.displayName&&(this.imageValue.spec.displayName=t)},deep:!0},file(e){!this.imageValue.spec.displayName&&e.name&&(this.imageValue.spec.displayName=e.name)}}};a(74811);const rw=(0,u.A)(nw,[["render",qy],["__scopeId","data-v-f88eec4a"]]);var iw=rw;function aw(e,t,n,r,a,o){const s=(0,i.resolveComponent)("Members");return(0,i.openBlock)(),(0,i.createBlock)(s,(0,i.mergeProps)({"create-location-override":o.createLocationOverride},e.$attrs),null,16,["create-location-override"])}const ow={class:"project-members"},sw={key:0,class:"row mb-10 cluster-add"};function lw(e,t,n,r,a,o){const s=(0,i.resolveComponent)("Masthead"),l=(0,i.resolveComponent)("Banner"),c=(0,i.resolveComponent)("router-link"),u=(0,i.resolveComponent)("ResourceTable"),d=(0,i.resolveComponent)("Tab"),h=(0,i.resolveComponent)("Tabbed");return(0,i.openBlock)(),(0,i.createElementBlock)("div",ow,[(0,i.createVNode)(s,{schema:a.schema,resource:a.resource,"favorite-resource":a.VIRTUAL_TYPES.CLUSTER_MEMBERS,"create-location":a.createLocation,"create-button-label":e.t("members.createActionLabel"),"is-creatable":!1,"type-display":e.t("members.clusterAndProject")},null,8,["schema","resource","favorite-resource","create-location","create-button-label","type-display"]),o.isLocal?((0,i.openBlock)(),(0,i.createBlock)(l,{key:0,color:"error",label:e.t("members.localClusterWarning")},null,8,["label"])):(0,i.createCommentVNode)("",!0),(0,i.createVNode)(h,null,{default:(0,i.withCtx)((()=>[(0,i.createVNode)(d,{name:"cluster-membership",label:e.t("members.clusterMembership")},{default:(0,i.withCtx)((()=>[o.canEditClusterMembers?((0,i.openBlock)(),(0,i.createElementBlock)("div",sw,[(0,i.createVNode)(c,{to:a.createLocation,class:"btn role-primary pull-right"},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("members.createActionLabel")),1)])),_:1},8,["to"])])):(0,i.createCommentVNode)("",!0),(0,i.createVNode)(u,{schema:a.schema,headers:a.headers,rows:o.filteredClusterRoleTemplateBindings,groupable:!0,"show-grouping":!0,namespaced:!1,loading:e.$fetchState.pending||!e.currentCluster||a.loadingClusterBindings,"sub-search":"subSearch","sub-fields":["nameDisplay"]},null,8,["schema","headers","rows","loading"])])),_:1},8,["label"])])),_:1})])}var cw=a(59808),uw=a(49584),dw={name:"Members",components:{Banner:Gl.A,Masthead:fc.A,ResourceTable:pc.A,Tabbed:cw.A,Tab:uw.A},props:{createLocationOverride:{type:Object,default:()=>({name:"c-cluster-product-resource-create",params:{resource:$.Mc.CLUSTER_ROLE_TEMPLATE_BINDING}})}},async fetch(){const e=this.$store.getters["rancher/schemaFor"]($.k$.CLUSTER_ROLE_TEMPLATE_BINDING),t=this.$store.getters["rancher/schemaFor"]($.k$.PROJECT_ROLE_TEMPLATE_BINDING);this["normanClusterRTBSchema"]=e,this["normanProjectRTBSchema"]=t,e&&Promise.all([this.$store.dispatch("rancher/findAll",{type:$.k$.CLUSTER_ROLE_TEMPLATE_BINDING},{root:!0}),this.$store.dispatch("management/findAll",{type:$.Mc.CLUSTER_ROLE_TEMPLATE_BINDING})]).then((([e])=>{this["normanClusterRoleTemplateBindings"]=e,this.loadingClusterBindings=!1})),t&&this.$store.dispatch("rancher/findAll",{type:$.k$.PROJECT_ROLE_TEMPLATE_BINDING},{root:!0}).then((e=>{this["projectRoleTemplateBindings"]=e,this.loadingProjectBindings=!1}));const n={normanPrincipals:this.$store.dispatch("rancher/findAll",{type:$.k$.PRINCIPAL}),mgmt:this.$store.dispatch("management/findAll",{type:$.Mc.USER}),mgmtRoleTemplates:this.$store.dispatch("management/findAll",{type:$.Mc.ROLE_TEMPLATE})};await(0,ce.kR)(n)},data(){return{schema:this.$store.getters["management/schemaFor"]($.Mc.CLUSTER_ROLE_TEMPLATE_BINDING),headers:[Sd.c4,Sd.nv,Sd.z7,Sd.K],createLocation:{...this.createLocationOverride,params:{...this.createLocationOverride.params,cluster:this.$store.getters["currentCluster"].id}},resource:$.Mc.CLUSTER_ROLE_TEMPLATE_BINDING,normanClusterRTBSchema:null,normanProjectRTBSchema:null,normanClusterRoleTemplateBindings:[],projectRoleTemplateBindings:[],VIRTUAL_TYPES:$.cG,projectRoleTemplateColumns:[Sd.c4,{name:"member",labeKey:"generic.name",value:"principalId",formatter:"Principal"},{name:"role",labelKey:"tableHeaders.role",value:"roleTemplate.nameDisplay"}],loadingProjectBindings:!0,loadingClusterBindings:!0}},computed:{...(0,R.L8)(["currentCluster"]),clusterRoleTemplateBindings(){return this.normanClusterRoleTemplateBindings.map((e=>e.clusterroletemplatebinding))},filteredClusterRoleTemplateBindings(){return this.clusterRoleTemplateBindings.filter((e=>e?.clusterName===this.$store.getters["currentCluster"].id))},isLocal(){return this.$store.getters["currentCluster"].isLocal},canEditClusterMembers(){return this.normanClusterRTBSchema?.collectionMethods.find((e=>"post"===e.toLowerCase()))}}};a(32464);const hw=(0,u.A)(dw,[["render",lw],["__scopeId","data-v-fa2c9f40"]]);var pw=hw,fw={components:{Members:pw},inheritAttrs:!1,computed:{createLocationOverride(){return{name:`${r.KR}-c-cluster-resource-create`,params:{product:r.KR,cluster:this.$store.getters["currentCluster"]?.id,resource:$.Mc.CLUSTER_ROLE_TEMPLATE_BINDING}}}}};const mw=(0,u.A)(fw,[["render",aw]]);var gw=mw;function vw(e,t,n,r,a,o){const s=(0,i.resolveComponent)("ExplorerProjectsNamespaces");return(0,i.openBlock)(),(0,i.createBlock)(s,(0,i.mergeProps)(e.$attrs,{"create-project-location-override":a.createProjectLocation,"create-namespace-location-override":a.createNamespaceLocation}),null,16,["create-project-location-override","create-namespace-location-override"])}const bw={class:"project-namespaces outlet"},yw={class:"group-tab"},ww={class:"project-name"},Ew={key:0,class:"description text-muted text-small"},_w={class:"right"},Sw={key:0},kw={key:1,class:"text-muted"},xw={class:"namespace-name"},Aw={key:1},Nw={key:2,class:"icon icon-istio ml-5"},Cw={key:3,class:"icon icon-lock ml-5"},Tw={class:"main-row"},Rw=["colspan"],Ow={class:"main-row"},Iw=["colspan"];function Lw(e,t,n,r,a,o){const s=(0,i.resolveComponent)("router-link"),l=(0,i.resolveComponent)("Masthead"),c=(0,i.resolveComponent)("ExtensionPanel"),u=(0,i.resolveComponent)("ButtonMultiAction"),d=(0,i.resolveComponent)("ResourceTable"),h=(0,i.resolveComponent)("MoveModal"),p=(0,i.resolveDirective)("clean-html"),f=(0,i.resolveDirective)("trim-whitespace"),m=(0,i.resolveDirective)("clean-tooltip");return(0,i.openBlock)(),(0,i.createElementBlock)("div",bw,[(0,i.createVNode)(l,{schema:a.projectSchema,"type-display":e.t("projectNamespaces.label"),resource:a.MANAGEMENT.PROJECT,"favorite-resource":a.VIRTUAL_TYPES.PROJECT_NAMESPACES,"create-location":o.createProjectLocation,"create-button-label":e.t("projectNamespaces.createProject"),"show-incremental-loading-indicator":o.showIncrementalLoadingIndicator,"load-resources":a.loadResources,"load-indeterminate":a.loadIndeterminate},(0,i.createSlots)({_:2},[o.showCreateNsButton?{name:"extraActions",fn:(0,i.withCtx)((()=>[(0,i.createVNode)(s,{to:o.createNamespaceLocationFlatList(),class:"btn role-primary mr-10","data-testid":"create_project_namespaces"},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("projectNamespaces.createNamespace")),1)])),_:1},8,["to"])])),key:"0"}:void 0]),1032,["schema","type-display","resource","favorite-resource","create-location","create-button-label","show-incremental-loading-indicator","load-resources","load-indeterminate"]),(0,i.createVNode)(c,{resource:{},type:a.extensionType,location:a.extensionLocation},null,8,["type","location"]),(0,i.createVNode)(d,(0,i.mergeProps)({ref:"table"},{...e.$attrs,class:null},{class:"table project-namespaces-table",schema:a.schema,headers:o.headers,rows:o.filteredRows,groupable:!0,"sort-generation-fn":o.sortGenerationFn,loading:o.loading,"group-tooltip":"resourceTable.groupBy.project","key-field":"_key"}),(0,i.createSlots)({"group-by":(0,i.withCtx)((t=>[(0,i.createElementVNode)("div",{class:(0,i.normalizeClass)(["project-bar",{"has-description":o.projectDescription(t.group)}])},[(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("div",yw,[(0,i.withDirectives)((0,i.createElementVNode)("div",ww,null,512),[[p,o.projectLabel(t.group)]]),o.projectDescription(t.group)?((0,i.openBlock)(),(0,i.createElementBlock)("div",Ew,(0,i.toDisplayString)(o.projectDescription(t.group)),1)):(0,i.createCommentVNode)("",!0)])),[[f]]),(0,i.createElementVNode)("div",_w,[o.isNamespaceCreatable&&(o.canSeeProjectlessNamespaces||t.group.key!==o.notInProjectKey)?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0,class:"create-namespace btn btn-sm role-secondary mr-5",to:o.createNamespaceLocation(t.group)},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("projectNamespaces.createNamespace")),1)])),_:2},1032,["to"])):(0,i.createCommentVNode)("",!0),(0,i.createVNode)(u,{class:"project-action mr-10",borderless:!0,invisible:!o.showProjectActionButton(t.group),onClick:e=>o.showProjectAction(e,t.group)},null,8,["invisible","onClick"])])],2)])),"cell:project":(0,i.withCtx)((({row:e})=>[e.project?((0,i.openBlock)(),(0,i.createElementBlock)("span",Sw,(0,i.toDisplayString)(e.project.nameDisplay),1)):((0,i.openBlock)(),(0,i.createElementBlock)("span",kw,"–"))])),"cell:name":(0,i.withCtx)((({row:t})=>[(0,i.createElementVNode)("div",xw,[t.detailLocation&&!t.hideDetailLocation?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0,to:t.detailLocation},{default:(0,i.withCtx)((()=>[(0,i.createTextVNode)((0,i.toDisplayString)(t.name),1)])),_:2},1032,["to"])):((0,i.openBlock)(),(0,i.createElementBlock)("span",Aw,(0,i.toDisplayString)(t.name),1)),t.injectionEnabled?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("i",Nw,null,512)),[[m,e.t("projectNamespaces.isIstioInjectionEnabled")]]):(0,i.createCommentVNode)("",!0),t.hasSystemLabels?(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)("i",Cw,null,512)),[[m,o.getPsaTooltip(t)]]):(0,i.createCommentVNode)("",!0)])])),"main-row:fake-empty":(0,i.withCtx)((({fullColspan:t})=>[(0,i.createElementVNode)("tr",Ow,[(0,i.createElementVNode)("td",{class:"empty text-center",colspan:t},(0,i.toDisplayString)(e.t("projectNamespaces.noProjectNoNamespaces")),9,Iw)])])),_:2},[(0,i.renderList)(o.projectsWithoutNamespaces,((t,n)=>({name:o.slotName(t),fn:(0,i.withCtx)((({fullColspan:t})=>[(0,i.createElementVNode)("tr",Tw,[(0,i.createElementVNode)("td",{class:"empty text-center",colspan:t},(0,i.toDisplayString)(e.t("projectNamespaces.noNamespaces")),9,Rw)])]))})))]),1040,["schema","headers","rows","sort-generation-fn","loading"]),(0,i.createVNode)(h,{onMoving:o.clearSelection},null,8,["onMoving"])])}const Dw={class:"text-default-text"},Pw={class:"namespaces"};function Mw(e,t,n,r,a,o){const s=(0,i.resolveComponent)("Loading"),l=(0,i.resolveComponent)("LabeledSelect"),c=(0,i.resolveComponent)("AsyncButton"),u=(0,i.resolveComponent)("Card"),d=(0,i.resolveComponent)("app-modal");return a.showModal?((0,i.openBlock)(),(0,i.createBlock)(d,{key:0,class:"move-modal",name:a.modalName,width:440,height:"auto",onClose:o.close},{default:(0,i.withCtx)((()=>[e.$fetchState.pending?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0})):((0,i.openBlock)(),(0,i.createBlock)(u,{key:1,class:"move-modal-card","show-highlight-border":!1},{title:(0,i.withCtx)((()=>[(0,i.createElementVNode)("h4",Dw,(0,i.toDisplayString)(e.t("moveModal.title")),1)])),body:(0,i.withCtx)((()=>[(0,i.createElementVNode)("div",null,[(0,i.createTextVNode)((0,i.toDisplayString)(e.t("moveModal.description"))+" ",1),(0,i.createElementVNode)("ul",Pw,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.toMove,((e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)("li",{key:t},(0,i.toDisplayString)(e.nameDisplay),1)))),128))])]),(0,i.createVNode)(l,{value:a.targetProject,"onUpdate:value":t[0]||(t[0]=e=>a.targetProject=e),options:o.projectOptions,label:e.t("moveModal.targetProject")},null,8,["value","options","label"])])),actions:(0,i.withCtx)((()=>[(0,i.createElementVNode)("button",{class:"btn role-secondary",onClick:t[1]||(t[1]=(...e)=>o.close&&o.close(...e))},(0,i.toDisplayString)(e.t("generic.cancel")),1),(0,i.createVNode)(c,{"action-label":e.t("moveModal.moveButtonLabel"),class:"btn bg-primary ml-10",disabled:!a.targetProject,onClick:o.move},null,8,["action-label","disabled","onClick"])])),_:1}))])),_:1},8,["name","onClose"])):(0,i.createCommentVNode)("",!0)}var Bw=a(37785),Fw={emits:["moving"],components:{AsyncButton:zl.A,Card:Bw.Z,LabeledSelect:Yy.A,Loading:Me.A,AppModal:oe.A},async fetch(){this.projects=await this.$store.dispatch("management/findAll",{type:$.Mc.PROJECT})},data(){return{modalName:"move-modal",projects:[],targetProject:null,showModal:!1}},computed:{...(0,R.aH)("action-menu",["showPromptMove","toMove"]),...(0,R.L8)(["currentCluster"]),excludedProjects(){return this.toMove.filter((e=>!!e.project)).map((e=>e.project.shortId))},projectOptions(){return this.projects.reduce(((e,t)=>(this.excludedProjects.includes(t.shortId)||t.spec?.clusterName!==this.currentCluster.id||e.push({value:t.shortId,label:t.nameDisplay}),e)),[])}},watch:{showPromptMove(e){this.showModal=!!e}},methods:{close(){this.$store.commit("action-menu/togglePromptMove")},async move(e){const t=this.$store.getters["currentCluster"],n=`${t.id}:${this.targetProject}`,r=this.toMove.map((e=>(e.setLabel(yd.yl,this.targetProject),e.setAnnotation(yd.yl,n),e.save())));try{this.$emit("moving"),await Promise.all(r),e(!0),this.targetProject=null,this.close()}catch(Fk){e(!1)}}}};a(45261);const $w=(0,u.A)(Fw,[["render",Mw]]);var Uw=$w,jw=a(76332),Vw=a(18110),Kw=a(11518),Hw={name:"ListProjectNamespace",components:{ExtensionPanel:Tc,Masthead:fc.A,MoveModal:Uw,ResourceTable:pc.A,ButtonMultiAction:jw.A},mixins:[gc.A],props:{createProjectLocationOverride:{type:Object,default:()=>null},createNamespaceLocationOverride:{type:Object,default:()=>null}},async fetch(){const e=this.$store.getters["currentStore"]($.CU);this.harvesterResourceQuotaSchema=this.$store.getters[`${e}/schemaFor`]($.rk.RESOURCE_QUOTA),this.schema=this.$store.getters[`${e}/schemaFor`]($.CU),this.projectSchema=this.$store.getters["management/schemaFor"]($.Mc.PROJECT),this.schema&&(await this.$fetchType($.CU),this.projects=await this.$store.dispatch("management/findAll",{type:$.Mc.PROJECT,opt:{force:!0}}))},data(){return{loadResources:[$.CU],loadIndeterminate:!0,harvesterResourceQuotaSchema:null,schema:null,projects:[],projectSchema:null,extensionType:Sc.c7.PANEL,extensionLocation:Sc.W7.RESOURCE_LIST,MANAGEMENT:$.Mc,VIRTUAL_TYPES:$.cG,defaultCreateProjectLocation:{name:"c-cluster-product-resource-create",params:{product:this.$store.getters["currentProduct"].name,resource:$.Mc.PROJECT}}}},computed:{...(0,R.L8)(["currentCluster","currentProduct"]),namespaces(){const e=this.$store.getters["currentStore"]($.CU);return this.$store.getters[`${e}/all`]($.CU)},loading(){return!(!this.currentCluster||this.namespaces.length)&&this.$fetchState.pending},showIncrementalLoadingIndicator(){return this.perfConfig?.incrementalLoading?.enabled},isNamespaceCreatable(){return(this.schema?.collectionMethods||[]).includes("POST")},isHarvester(){return this.$store.getters["currentProduct"].inStore===Kw.T},headers(){const e=[Sd.c4,Sd.o_];if("none"===this.groupPreference){const t={name:"project",label:this.t("tableHeaders.project"),value:"project.nameDisplay",sort:["projectNameSort","nameSort"]};e.push(t)}return this.isHarvester&&this.harvesterResourceQuotaSchema&&e.push(Sd.Si),e.push(Sd.K),e},projectIdsWithNamespaces(){const e=this.rows.map((e=>e.projectId)).filter((e=>e));return(0,Se.sb)(e)},clusterProjects(){const e=this.currentCluster.id,t=this.$store.getters["management/all"]($.Mc.PROJECT);if(this.currentProduct?.customNamespaceFilter&&this.currentProduct?.inStore&&this.$store.getters[`${this.currentProduct.inStore}/filterProject`])return this.$store.getters[`${this.currentProduct.inStore}/filterProject`];const n=t.filter((t=>t.spec.clusterName===e));return n},projectsWithoutNamespaces(){return this.activeProjects.filter((e=>!this.projectIdsWithNamespaces.find((t=>e?.id?.endsWith(`/${t}`)))))},rowsWithFakeNamespaces(){const e=this.projectsWithoutNamespaces.map((e=>({groupByLabel:`resourceTable.groupLabel.notInAProject-${e.id}`,isFake:!0,mainRowKey:e.id,nameDisplay:e.spec?.displayName,project:e,availableActions:[]})));return this.showMockNotInProjectGroup&&e.push({groupByLabel:this.t("resourceTable.groupLabel.notInAProject"),mainRowKey:"fake-empty"}),[...this.rows,...e]},createProjectLocation(){return this.createProjectLocationOverride||this.defaultCreateProjectLocation},groupPreference:(0,O.AN)(O.EI),activeNamespaceFilters(){return this.$store.getters["activeNamespaceFilters"]},activeProjectFilters(){const e={};for(const t of this.activeNamespaceFilters){const[n,r]=t.split("://",2);"project"===n&&(e[r]=!0)}return e},activeProjects(){const e=this.$store.getters["activeNamespaceFilters"];return e.includes(Vw.pF)&&0===Object.keys(this.activeProjectFilters).length?[]:this.userIsFilteringForSpecificNamespaceOrProject()?this.clusterProjects.filter((e=>{const t=e.id.split("/")[1];return!!this.activeProjectFilters[t]})):this.clusterProjects},activeNamespaces(){const e=this.$store.getters["namespaces"]();return this.namespaces.filter((t=>!!e[t.metadata.name]))},filteredRows(){return"none"===this.groupPreference?this.rows:this.rowsWithFakeNamespaces},rows(){let e;try{e=this.$store.getters["prefs/get"](O.Pz)}catch{e=this.$store.getters["prefs/get"](O.IJ)}return e?this.activeNamespaces:this.activeNamespaces.filter((e=>{const t=this.$store.getters["systemNamespaces"].includes(e.metadata.name),n=e.isSystem||e.isFleetManaged||t;return!this.currentProduct?.hideSystemResources||!n}))},canSeeProjectlessNamespaces(){return this.currentCluster.canUpdate},showMockNotInProjectGroup(){if(!this.canSeeProjectlessNamespaces)return!1;const e=!this.rows.some((e=>!e.project)),t=this.userIsFilteringForSpecificNamespaceOrProject();return!t&&e},notInProjectKey(){return this.$store.getters["i18n/t"]("resourceTable.groupLabel.notInAProject")},showCreateNsButton(){return"namespace"!==this.groupPreference}},methods:{getPsaTooltip(e){const t=e.psaTooltipsDescription,n=Object.values(t).sort().map((e=>`<li>${e}</li>`)).join(""),r=`<p>${this.t("podSecurityAdmission.name")}: </p>`;return`${r}<ul class="psa-tooltip">${n}</ul>`},userIsFilteringForSpecificNamespaceOrProject(){const e=this.$store.getters["namespaceFilters"];for(let t=0;t<e.length;t++){const n=e[t],r=n.split("://")[0];if("ns"===r||"project"===r)return!0}return!1},slotName(e){return`main-row:${e.id}`},createNamespaceLocation(e){const t=e.rows[0].project,n=this.createNamespaceLocationOverride?{...this.createNamespaceLocationOverride}:{name:"c-cluster-product-resource-create",params:{product:this.$store.getters["currentProduct"].name,resource:$.CU}};return n.query={[ku.iJ]:t?.metadata.name},n},createNamespaceLocationFlatList(){const e=this.createNamespaceLocationOverride?{...this.createNamespaceLocationOverride}:{name:"c-cluster-product-resource-create",params:{product:this.$store.getters["currentProduct"]?.name,resource:$.CU}};return e.query={[ku._N]:!0},e},showProjectAction(e,t){const n=t.rows[0].project;this.$store.commit("action-menu/show",{resources:[n],elem:e.target})},showProjectActionButton(e){const t=e.rows[0].project;return!!t},projectLabel(e){const t=e.rows[0];return t.isFake?_e().sanitize(this.t("resourceTable.groupLabel.project",{name:t.project?.nameDisplay},!0),{ALLOWED_TAGS:["span"]}):t.groupByLabel},projectDescription(e){const t=e.rows[0].project;return t?.description},clearSelection(){this.$refs.table.clearSelection()},sortGenerationFn(){const e=(0,pc.S)(this.schema,this.$store);return e+(this.showMockNotInProjectGroup?"-mock":"")}}};a(76769),a(3427);const Gw=(0,u.A)(Hw,[["render",Lw],["__scopeId","data-v-4b76ed34"]]);var zw=Gw,qw={components:{ExplorerProjectsNamespaces:zw},data(){return{createProjectLocation:{name:`${r.KR}-c-cluster-resource-create`,params:{product:r.KR,cluster:this.$store.getters["currentCluster"]?.id,resource:$.Mc.PROJECT}},createNamespaceLocation:{name:`${r.KR}-c-cluster-resource-create`,params:{product:r.KR,resource:$.CU}}}}};const Xw=(0,u.A)(qw,[["render",vw]]);var Ww=Xw;const Yw={class:"header"},Qw={class:"title"},Jw={class:"primaryheader"},Zw={class:"actions-container"},eE={class:"actions"};function tE(e,t,n,r,a,o){const s=(0,i.resolveComponent)("ButtonGroup"),l=(0,i.resolveComponent)("ResourceYaml"),c=(0,i.resolveComponent)("ReceiverConfig"),u=(0,i.resolveComponent)("ActionMenu");return(0,i.openBlock)(),(0,i.createElementBlock)("div",null,[(0,i.createElementVNode)("header",Yw,[(0,i.createElementVNode)("div",Qw,[(0,i.createElementVNode)("div",Jw,[(0,i.createElementVNode)("h1",null,(0,i.toDisplayString)(o.heading),1)])]),(0,i.createElementVNode)("div",Zw,[(0,i.createElementVNode)("div",eE,[a.viewOptions&&o.mode===a.view?((0,i.openBlock)(),(0,i.createBlock)(s,{key:0,value:o.currentView,options:a.viewOptions,"onUpdate:value":o.handleButtonGroupClick},null,8,["value","options","onUpdate:value"])):(0,i.createCommentVNode)("",!0),o.mode===a.view?((0,i.openBlock)(),(0,i.createElementBlock)("button",{key:1,ref:"actions","aria-haspopup":"true",type:"button",class:"btn role-multi-action actions",onClick:t[0]||(t[0]=(...e)=>o.handleReceiverActionMenuClick&&o.handleReceiverActionMenuClick(...e))},t[3]||(t[3]=[(0,i.createElementVNode)("i",{class:"icon icon-actions"},null,-1)]),512)):(0,i.createCommentVNode)("",!0)])])]),o.currentView===a.yaml&&a.alertmanagerConfigResource?((0,i.openBlock)(),(0,i.createBlock)(l,{key:0,ref:"resourceyaml",value:a.alertmanagerConfigResource,mode:o.mode,"initial-yaml-for-diff":null,yaml:o.resourceYaml,"offer-preview":o.mode===a.edit,"done-route":JSON.stringify(o.redirectToReceiverDetail(a.receiverName)),"done-override":a.alertmanagerConfigDetailRoute,"apply-hooks":a.alertmanagerConfigResource.applyHooks,onError:t[1]||(t[1]=t=>e.$emit("error",t))},null,8,["value","mode","yaml","offer-preview","done-route","done-override","apply-hooks"])):(0,i.createCommentVNode)("",!0),o.currentView!==a.config&&o.currentView!==a.detail||!a.alertmanagerConfigResource?(0,i.createCommentVNode)("",!0):((0,i.openBlock)(),(0,i.createBlock)(c,{key:1,value:a.receiverValue,mode:o.mode,"alertmanager-config-id":a.alertmanagerConfigId,"alertmanager-config-resource":a.alertmanagerConfigResource,"save-override":o.saveOverride},null,8,["value","mode","alertmanager-config-id","alertmanager-config-resource","save-override"])),(0,i.createVNode)(u,{"custom-actions":o.receiverActions,open:a.receiverActionMenuIsOpen,"use-custom-target-element":!0,"custom-target-element":a.actionMenuTargetElement,"custom-target-event":a.actionMenuTargetEvent,onClose:t[2]||(t[2]=e=>a.receiverActionMenuIsOpen=!1),onGoToEdit:o.goToEdit,onGoToEditYaml:o.goToEditYaml,onPromptRemove:o.promptRemove},null,8,["custom-actions","open","custom-target-element","custom-target-event","onGoToEdit","onGoToEditYaml","onPromptRemove"])])}var nE=a(40519);const rE={class:"row mb-10"},iE={class:"col span-6"},aE={class:"box-container create-resource-container"},oE=["onClick"],sE={class:"left"},lE={class:"logo"},cE=["src"],uE={class:"name ml-10"},dE={key:0,class:"right"},hE={key:1};function pE(e,t,n,r,a,o){const s=(0,i.resolveComponent)("LabeledInput"),l=(0,i.resolveComponent)("t"),c=(0,i.resolveComponent)("Tab"),u=(0,i.resolveComponent)("YamlEditor"),d=(0,i.resolveComponent)("ArrayListGrouped"),h=(0,i.resolveComponent)("Tabbed"),p=(0,i.resolveComponent)("CruResource");return(0,i.openBlock)(),(0,i.createBlock)(p,{class:"receiver","done-route":n.alertmanagerConfigResource._detailLocation,mode:n.mode,resource:n.alertmanagerConfigResource,subtypes:[],"can-yaml":!0,errors:e.errors,"cancel-event":!0,"validation-passed":e.fvFormIsValid,onError:t[2]||(t[2]=t=>e.errors=t),onFinish:n.saveOverride,onCancel:o.redirectAfterCancel},{default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("div",rE,[(0,i.createElementVNode)("div",iE,[(0,i.createVNode)(s,{value:n.value.name,"onUpdate:value":t[0]||(t[0]=e=>n.value.name=e),"is-disabled":o.receiverNameDisabled,label:e.t("generic.name"),required:!0,mode:n.mode,rules:e.fvGetAndReportPathRules("name"),"data-testid":"v2-monitoring-receiver-name"},null,8,["value","is-disabled","label","mode","rules"])])]),(0,i.createVNode)(h,{ref:"tabbed","side-tabs":!0,"default-tab":"overview",onChanged:o.tabChanged},{default:(0,i.withCtx)((()=>[(0,i.createVNode)(c,{label:e.t("generic.overview"),weight:a.receiverTypes.length,name:"overview"},{default:(0,i.withCtx)((()=>[(0,i.createElementVNode)("div",aE,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(a.receiverTypes,((e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)("div",{key:t,class:"mb-10 subtype-banner","primary-color-var":"--primary-color",onClick:t=>o.navigateTo(e)},[(0,i.createElementVNode)("div",sE,[(0,i.createElementVNode)("div",lE,[(0,i.createElementVNode)("img",{src:e.logo},null,8,cE)]),(0,i.createElementVNode)("h4",uE,[(0,i.createVNode)(l,{k:e.label},null,8,["k"])])]),"custom"!==e.name?((0,i.openBlock)(),(0,i.createElementBlock)("div",dE,(0,i.toDisplayString)(o.getCount(e)),1)):(0,i.createCommentVNode)("",!0)],8,oE)))),128))])])),_:1},8,["label","weight"]),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(a.receiverTypes,((r,s)=>((0,i.openBlock)(),(0,i.createBlock)(c,{key:s,label:e.t(r.label),name:r.name,weight:a.receiverTypes.length-s},{default:(0,i.withCtx)((()=>["custom"===r.name?((0,i.openBlock)(),(0,i.createBlock)(u,{key:0,ref_for:!0,ref:"customEditor",value:e.suffixYaml,"onUpdate:value":t[1]||(t[1]=t=>e.suffixYaml=t),scrolling:!1,"editor-mode":o.editorMode},null,8,["value","editor-mode"])):((0,i.openBlock)(),(0,i.createElementBlock)("div",hE,[(0,i.createVNode)(d,{value:n.value[r.key],"onUpdate:value":e=>n.value[r.key]=e,class:"namespace-list",mode:n.mode,"default-add-value":{},"add-label":e.t("monitoringReceiver.addButton",{type:e.t(r.label)})},{default:(0,i.withCtx)((e=>[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(o.getComponent(r.name)),{value:e.row.value,mode:n.mode,namespace:o.alertmanagerConfigNamespace},null,8,["value","mode","namespace"]))])),_:2},1032,["value","onUpdate:value","mode","add-label"])]))])),_:2},1032,["label","name","weight"])))),128))])),_:1},8,["onChanged"])])),_:1},8,["done-route","mode","resource","errors","validation-passed","onFinish","onCancel"])}var fE=a(31097),mE=a(36143),gE=a(91825),vE=a(20246),bE=a.n(vE),yE=a(8552),wE=a(77651),EE=a(39589);const _E=[{name:"slack",label:"monitoringReceiver.slack.label",title:"monitoringReceiver.slack.title",info:"monitoringReceiver.slack.info",key:"slackConfigs",logo:a(69742)},{name:"email",label:"monitoringReceiver.email.label",title:"monitoringReceiver.email.title",key:"emailConfigs",logo:a(41778)},{name:"pagerduty",label:"monitoringReceiver.pagerduty.label",title:"monitoringReceiver.pagerduty.title",info:"monitoringReceiver.pagerduty.info",key:"pagerdutyConfigs",logo:a(75495)},{name:"opsgenie",label:"monitoringReceiver.opsgenie.label",title:"monitoringReceiver.opsgenie.title",key:"opsgenieConfigs",logo:a(41778)},{name:"webhook",label:"monitoringReceiver.webhook.label",title:"monitoringReceiver.webhook.title",key:"webhookConfigs",logo:a(94569)},{name:"custom",label:"monitoringReceiver.custom.label",title:"monitoringReceiver.custom.title",info:"monitoringReceiver.custom.info",key:"webhookConfigs",logo:a(98283)}];var SE={components:{ArrayListGrouped:fE.A,Banner:Ou.l,ButtonDropdown:yE.A,CruResource:Xy.A,LabeledInput:vu.o,Loading:Me.A,Tabbed:cw.A,Tab:uw.A,YamlEditor:mE.A},props:{value:{type:Object,default:()=>({})},mode:{type:String,default:""},alertmanagerConfigResource:{type:Object,required:!0},alertmanagerConfigId:{type:String,required:!0},saveOverride:{type:Function,required:!0}},mixins:[gE.A,wE.A],inheritAttrs:!1,async fetch(){const{receiverSchema:e}=await(0,EE.ER)(this.$store);if(!e)throw new Error("Can't render the form because the AlertmanagerConfig schema, or it's definitions, is not loaded yet.");const t=Object.keys(e.resourceFields),n={};Object.keys(this.value).forEach((e=>{t.includes(e)||(n[e]=this.value[e])}));let r=bE().dump(n);"{}"===r.trim()&&(r=""),this.expectedFields=t,this.suffixYaml=r},data(e){const t={},n=this.$route.query.mode;return n===ku.YQ&&_E.forEach((e=>{t[e.key]=t[e.key]||[]})),{create:ku.YQ,EDITOR_MODES:mE.j,fileFound:!1,receiverTypes:_E,view:ku.nW,yamlError:"",fvFormRuleSets:[{path:"name",rules:["required","duplicateName"]}],fvReportedValidationPaths:["value"]}},mounted(){this.mode===this.create&&(this.alertmanagerConfigResource.spec.receivers||(this.alertmanagerConfigResource.spec.receivers=[]),this.alertmanagerConfigResource.spec.receivers.push(this.value))},computed:{editorMode(){return this.$route.query.mode===ku.nW?mE.j.VIEW_CODE:mE.j.EDIT_CODE},alertmanagerConfigNamespace(){return this.alertmanagerConfigResource?.metadata?.namespace||""},receiverNameDisabled(){return this.$route.query.mode===ku.nW},fvExtraRules(){return{duplicateName:()=>{const e=this.alertmanagerConfigResource.spec.receivers,t=e.map((e=>e.name)),n=new Set(t);if(e.length!==n.size)return this.$store.getters["i18n/t"]("monitoring.alerting.validation.duplicatedReceiverName",{name:this.value.name})}}}},watch:{suffixYaml(e){try{Object.keys(this.value).forEach((e=>{this.expectedFields.includes(e)||delete this.value[e]}));const t=bE().load(e);Object.assign(this.value,t),this.yamlError=""}catch(Fk){this.yamlError=`There was a problem parsing the Custom Config: ${Fk}`}}},methods:{getComponent(e){return a(19469)(`./${e}`).default},navigateTo(e){this.$refs.tabbed.select(e.name)},getCount(e){const t=this.value?.[e.key]||[];return t.length},tabChanged({tab:e}){window.scrollTop=0,"custom"===e.name&&this.$nextTick((()=>{this.$refs.customEditor&&(this.$refs.customEditor[0].refresh(),this.$refs.customEditor[0].focus())}))},redirectAfterCancel(){this.$router.push(this.alertmanagerConfigResource._detailLocation)},createAddOptions(e){return e.addOptions.map()},setError(e){this.errors=e?[e]:[]}}};a(92429);const kE=(0,u.A)(SE,[["render",pE]]);var xE=kE,AE={name:"AlertmanagerConfigReceiverCreateEdit",components:{ActionMenu:nE.A,ButtonGroup:wd.A,ReceiverConfig:xE,ResourceYaml:Qu.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore;this.receiverName=this.$route.query.receiverName;const t=this.$route.params.alertmanagerconfigid,n=await this.$store.dispatch(`${e}/find`,{type:$.Rp.ALERTMANAGERCONFIG,id:t}),r=await this.$store.dispatch(`${e}/clone`,{resource:n}),i=this.$route.query.mode;if(i!==ku.YQ){const e=(r.spec.receivers||[]).find((e=>e.name===this.receiverName));e&&(this.receiverValue=e)}this.alertmanagerConfigId=r.id,this.alertmanagerConfigResource=r,this.alertmanagerConfigDetailRoute=r._detailLocation},data(){return{actionMenuTargetElement:null,actionMenuTargetEvent:null,alertmanagerConfigId:"",alertmanagerConfigResource:null,alertmanagerConfigDetailRoute:null,config:ku.au,create:ku.YQ,detail:ku.fS,edit:ku.G5,receiverActionMenuIsOpen:!1,receiverName:"",receiverValue:{},showPreview:!1,view:ku.nW,viewOptions:[{labelKey:"resourceDetail.masthead.config",value:"config"},{labelKey:"resourceDetail.masthead.yaml",value:ku.zD}],yaml:ku.zD}},computed:{currentView(){return this.$route.query.currentView},receiverActions(){const e=this.alertmanagerConfigResource?.availableActions;return e?this.alertmanagerConfigResource.getReceiverActions(e):[]},resourceYaml(){const e=this.alertmanagerConfigResource,t=this.$store.getters["currentStore"](e),n=this.$store.getters[`${t}/all`]($.yx),r=(0,_d.o8)(e),i=(0,Ju.mH)(n,$.Rp.ALERTMANAGERCONFIG,r);return i},mode(){return this.$route.query.mode},editorMode(){return this.mode===this.view?mE.j.VIEW_CODE:this.showPreview?mE.j.DIFF_CODE:mE.j.EDIT_CODE},heading(){switch(this.$route.query.mode){case this.create:return this.t("monitoring.alertmanagerConfig.receiverFormNames.create");case this.edit:return this.currentView===this.yaml||this.$route.query.as===this.yaml?this.t("monitoring.alertmanagerConfig.receiverFormNames.editYaml"):this.t("monitoring.alertmanagerConfig.receiverFormNames.edit");default:return this.t("monitoring.alertmanagerConfig.receiverFormNames.detail")}}},methods:{saveOverride(e){if(this.alertmanagerConfigResource.yamlError)return this.alertmanagerConfigResource.errors=this.alertmanagerConfigResource.errors||[],this.alertmanagerConfigResource.errors.push(this.alertmanagerConfigResource.yamlError),void e(!1);this.alertmanagerConfigResource.save(...arguments),this.redirectToAlertmanagerConfigDetail()},handleButtonGroupClick(e){e===this.yaml&&this.goToEditYaml(this.view),e===this.config&&this.goToEdit(this.view)},toggleReceiverActionMenu(){this.receiverActionMenuIsOpen=!this.receiverActionMenuIsOpen},handleReceiverActionMenuClick(e){this.actionMenuTargetElement=this.$refs.actions,this.actionMenuTargetEvent=e,this.toggleReceiverActionMenu()},goToEdit(){this.$router.push(this.alertmanagerConfigResource.getEditReceiverConfigRoute(this.receiverValue.name,ku.G5))},goToEditYaml(){this.$router.push(this.alertmanagerConfigResource.getEditReceiverYamlRoute(this.receiverValue.name,ku.G5))},promptRemove(e){const t=e.route.query.receiverName,n=this.alertmanagerConfigResource.spec.receivers||[],r=n.filter((e=>e.name!==t));this.alertmanagerConfigResource.spec.receivers=r,this.alertmanagerConfigResource.save(...arguments),this.$router.push(this.alertmanagerConfigResource._detailLocation)},redirectToReceiverDetail(e){return this.alertmanagerConfigResource.getReceiverDetailLink(e)},redirectToAlertmanagerConfigDetail(){const e=this.alertmanagerConfigResource._detailLocation;this.$router.push(e)}}};a(56554);const NE=(0,u.A)(AE,[["render",tE],["__scopeId","data-v-a0fecebc"]]);var CE=NE;const TE={class:"dashboard-root"},RE={class:"dashboard-content"},OE={class:"main-layout"},IE={class:"logo"},LE={class:"tagline"},DE={class:"description"},PE={class:"tagline"},ME={class:"tagline"};function BE(e,t,n,r,a,o){const s=(0,i.resolveComponent)("BrandImage"),l=(0,i.resolveDirective)("clean-html");return(0,i.openBlock)(),(0,i.createElementBlock)("div",TE,[(0,i.createElementVNode)("div",RE,[(0,i.createElementVNode)("main",OE,[(0,i.createElementVNode)("div",IE,[(0,i.createVNode)(s,{"file-name":"harvester.png",height:"64"})]),(0,i.createElementVNode)("div",LE,[(0,i.createElementVNode)("div",DE,(0,i.toDisplayString)(e.t("unsupported.description")),1)]),(0,i.createElementVNode)("div",PE,[(0,i.withDirectives)((0,i.createElementVNode)("div",null,null,512),[[l,e.t("unsupported.serverVersion",{serverVersion:o.serverVersion},!0)]])]),(0,i.createElementVNode)("div",ME,[(0,i.withDirectives)((0,i.createElementVNode)("div",null,null,512),[[l,e.t("unsupported.learnMore",{},!0)]])])])])])}var FE={components:{BrandImage:K},computed:{serverVersion(){const e=this.$store.getters["harvester-common/getServerVersion"]()||"";return e.replace("v","")}}};a(29056);const $E=(0,u.A)(FE,[["render",BE],["__scopeId","data-v-140c2578"]]);var UE=$E;const jE=[{route:{name:`${r.KR}-c-cluster-unsupported-standalone`,path:"/:product",component:UE},parent:"blank"},{route:{name:`${r.KR}-c-cluster-unsupported`,path:"/:product",component:UE},parent:"plain"},{name:`${r.KR}-c-cluster-support`,path:"/:product/c/:cluster/support",component:De},{route:{name:`${r.KR}-c-cluster-console-uid-serial`,path:"/:product/c/:cluster/console/:uid/serial",component:qt},parent:"blank"},{route:{name:`${r.KR}-c-cluster-console-uid-vnc`,path:"/:product/c/:cluster/console/:uid/vnc",component:lc},parent:"blank"},{name:`${r.KR}-c-cluster-airgapupgrade`,path:"/:product/c/:cluster/airgapupgrade",component:iw},{name:`${r.KR}-c-cluster-brand`,path:"/:product/c/:cluster/brand",component:ju},{name:`${r.KR}-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,path:"/:product/c/:cluster/alertmanagerconfig/:alertmanagerconfigid/receiver",component:CE},{name:`${r.KR}-c-cluster-members`,path:"/:product/c/:cluster/members",component:gw},{name:`${r.KR}-c-cluster`,path:"/:product/c/:cluster",component:h},{name:`${r.KR}-c-cluster-projectsnamespaces`,path:"/:product/c/:cluster/projectsnamespaces",component:Ww},{name:`${r.KR}-c-cluster-resource`,path:"/:product/c/:cluster/:resource",component:Pc},{name:`${r.KR}-c-cluster-resource-create`,path:"/:product/c/:cluster/:resource/create",component:Dy},{name:`${r.KR}-c-cluster-resource-id`,path:"/:product/c/:cluster/:resource/:id",component:Fy},{name:`${r.KR}-c-cluster-resource-namespace-id`,path:"/:product/c/:cluster/:resource/:namespace/:id",component:Vy}];var VE=jE,KE=a(52225),HE=a.n(KE);const GE=function(){return{latestBundleId:"",bundlePending:!1,showBundleModal:!1,bundlePercentage:0,uploadingImages:[],uploadingImageError:{}}},zE={setLatestBundleId(e,t){e.latestBundleId=t},setBundlePending(e,t){e.bundlePending=t},toggleBundleModal(e,t){e.showBundleModal=t},setBundlePercentage(e,t){e.bundlePercentage=t},uploadStart(e,t){e.uploadingImages.push(t)},uploadError(e,{name:t,message:n}){e.uploadingImageError[t]=n},uploadEnd(e,t){const n=e.uploadingImages.filter((e=>e!==t));e["uploadingImages"]=n}},qE={getBundleId(e){return e.latestBundleId},isBundlePending(e){return e.bundlePending},isShowBundleModal(e){return e.showBundleModal},getBundlePercentage(e){return e.bundlePercentage},uploadingImages(e){return e.uploadingImages},uploadingImageError(e){return t=>e.uploadingImageError[t]},getServerVersion:(e,t,n,r)=>()=>{const e=r["harvester/byId"](l.rk.SETTING,"server-version")?.value;return(0,Oe.HF)(e)},getFeatureEnabled:(e,t,n,r)=>(e,t)=>{const n=t||r["harvester/byId"](l.rk.SETTING,"server-version")?.value;return(0,Oe.at)(e,n)},getHarvesterClusterUrl:(e,t,n,r)=>e=>{if(r["isMultiCluster"]){const t=r["clusterId"],n=`/k8s/clusters/${t}/${e}`;return`${n}`}return e}},XE={async bundleProgress({state:e,dispatch:t,commit:n,rootGetters:r}){const i=HE()(window.history.href),a=e.latestBundleId;let o=await t("harvester/find",{type:l.rk.SUPPORT_BUNDLE,id:a},{root:!0});const s=r["i18n/t"];let c=0;await n("setBundlePending",!0);const u=setInterval((async()=>{if(c+=1,c%3===0&&(o=await t("harvester/find",{type:l.rk.SUPPORT_BUNDLE,id:a,opt:{force:!0}},{root:!0})),"ready"!==o.bundleState){o=r["harvester/byId"](l.rk.SUPPORT_BUNDLE,a);const e=o.precent;if(n("setBundlePercentage",e),o?.bundleMessage){const e=o?.bundleMessage;t("growl/fromError",{title:s("generic.notification.title.error"),err:e},{root:!0}),clearInterval(u),n("setBundlePending",!1),n("toggleBundleModal",!1)}}else{const e=a.split("/")[1];if(n("setBundlePercentage",1),setTimeout((()=>{n("toggleBundleModal",!1),n("setBundlePending",!1),n("setBundlePercentage",0)}),600),r["isMultiCluster"]){const t=r["clusterId"],n=`/k8s/clusters/${t}`;window.location.href=`${i.origin}${n}/v1/harvester/supportbundles/${e}/download`}else window.location.href=`${i.origin}/v1/harvester/supportbundles/${e}/download`;clearInterval(u)}}),1e3)}},WE=()=>({state:GE,getters:{...qE},mutations:{...zE},actions:{...XE}}),YE={namespace:`${r.KR}-common`,isClusterStore:!1};var QE={specifics:WE(),config:YE},JE=a(25314);const ZE="CSRF";var e_=a(79401),t_=a(23464),n_=a.n(t_),r_=a(4364);function i_(e,t,n){return(t=a_(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a_(e){var t=o_(e,"string");return"symbol"==typeof t?t:t+""}function o_(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}const s_={WATCH_PENDING:"pending",WATCH_REQUESTED:"requested",WATCHING:"watching",STOPPED:"stopped",REMOVE_PENDING:"removed_pending",REMOVE_REQUESTED:"removed_requested"},l_=({resourceType:e,type:t,namespace:n,id:r,selector:i}={})=>[e||t,n,r,i].filter((e=>!!e)).join("/"),c_=e=>{const{resourceType:t,namespace:n,id:r,selector:i}=e,a={resourceType:t,id:r,namespace:n,selector:i};return l_(a)},{WATCH_PENDING:u_,WATCH_REQUESTED:d_,WATCHING:h_,REMOVE_PENDING:p_,REQUESTED_REMOVE:f_}=s_;class m_ extends Ut{constructor(e,t=!0,n=null,r=null,i=null,a){super(e,t,n,r,i,!0),i_(this,"watches",{}),i_(this,"status",""),i_(this,"debugWatcher",!1),i_(this,"csrf",void 0),this.baseUrl=self.location.origin+e.replace("subscribe",""),this.csrf=a,this.addEventListener(Rt,(e=>{this.trace(Rt,": processing previously requested or watched resources"),Object.values(this.watches).forEach((e=>{const{status:t,error:n}=e,r=l_(e);[u_,d_,h_].includes(t)&&!n?(this.trace(Rt,": re-watching previously required resource",r,t),this.watches[r].status=u_,this.watch(r)):[p_].includes(t)&&(this.trace(Rt,": un-watching previously watched resource",r,t),this.watches[r].status=p_,this.unwatch(r))}))}))}trace(...e){this.debugWatcher&&r_.info("Resource Watcher:",...e)}setDebug(e){this.debugWatcher=!!e}watchExists(e){return!!this.watches?.[e]}watch(e,t,n,r={},i){const{resourceType:a,id:o,namespace:s,selector:l,force:c}=r;if(this.trace("watch:","requested",e),[d_,h_].includes(this.watches?.[e]?.status))return void this.trace("watch:","already requested or watching, aborting",e);if(!c&&this.watches?.[e]?.error)return void(this.watches?.[e]?.error.reason!==$t&&this.trace("watch:","in error, aborting",e));const u=a||this.watches?.[e]?.resourceType,d=o||this.watches?.[e]?.id,h=s||this.watches?.[e]?.namespace,p=l||this.watches?.[e]?.selector,f=this.watches?.[e]?.skipResourceVersion||i,m={resourceType:u,id:d,namespace:h,selector:p},g=n||this.watches?.[e]?.resourceVersionTime,v=t||this.watches?.[e]?.resourceVersion,b=this.send(JSON.stringify({...m,resourceVersion:f?void 0:v}));this.watches[e]={...m,status:b?s_.WATCH_REQUESTED:s_.WATCH_PENDING,resourceVersion:v,resourceVersionTime:g,skipResourceVersion:f}}unwatch(e){const t=this.watches?.[e]||{},{resourceType:n,id:r,namespace:i,selector:a}=t,o={resourceType:n,id:r,namespace:i,selector:a};if(n&&this.watches[e].status!==f_){const t=this.send(JSON.stringify({...o,stop:!0}));this.watches[e].status=t?f_:p_}}_onmessage(e){const{name:t,resourceType:n,data:{type:r},id:i,namespace:a,selector:o,data:s}=JSON.parse(e.data),l=l_({resourceType:n,type:r,id:i,namespace:a,selector:o});if("resource.start"===t&&this.watches?.[l]?.status===d_)this.watches[l].status=h_,delete this.watches[l].error;else if("resource.stop"===t&&this.watches?.[l])this.watches[l]={error:this.watches[l]?.error};else if("resource.error"===t){const e=s?.error?.toLowerCase();this.watches[l]&&e.includes("watch not allowed")?this.watches[l].error={type:n,reason:Mt}:this.watches[l]&&e.includes("failed to find schema")?this.watches[l].error={type:n,reason:Bt}:e.includes("too old")&&(delete this.watches[l].resourceVersion,delete this.watches[l].resourceVersionTime,delete this.watches[l].skipResourceVersion,this.watches[l].error={type:n,reason:$t},this.dispatchEvent(new CustomEvent("resync",{detail:{data:{resourceType:n,id:i,namespace:a,selector:o}}}))),this.trace("_onmessage:","new error",this.watches[l].error)}super._onmessage(e)}}var g_=a(23330),v_=a(8755),b_=a(37417),y_=a(4364);const w_=2500,E_={store:"",flushTimer:void 0,queue:[],schemas:{}};function __(){E_.queue.forEach((e=>{const t=(0,v_.en)(e),n=E_.schemas[e.id];if(!n||n&&n!==t){E_.schemas[e.id]=t;const n={data:e,resourceType:$.yx,type:"resource.change"};S_(n)}})),E_.queue=[],E_.flushTimer=setTimeout(__,w_)}function S_(e){self.postMessage({load:e})}function k_(e){self.postMessage({redispatch:e})}E_.flushTimer=setTimeout(__,w_);const x_={watch:e=>{k_({send:e})},createWatcher:e=>{k_({subscribe:e})}},A_={onmessage:e=>{const t=Object.keys(e?.data);t.forEach((t=>{A_[t]?A_[t](e?.data[t]):y_.warn("no associated action for:",t)}))},initWorker:({storeName:e})=>{E_.store=e},destroyWorker:()=>{clearTimeout(E_.flushTimer),self.postMessage({destroyWorker:!0})},loadSchemas:e=>{e.forEach((e=>{(0,b_.P)(e),E_.schemas[e.id]=(0,v_.en)(e)}))},updateSchema:e=>{E_.queue.push(e)},removeSchema:e=>{E_.queue=E_.queue.filter((t=>t.id!==e)),delete E_.schemas[e]},...x_};function N_(e,t,n){return(t=C_(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C_(e){var t=T_(e,"string");return"symbol"==typeof t?t:t+""}function T_(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}self.onmessage=A_.onmessage;class R_{constructor(e){N_(this,"resources",{}),N_(this,"type",void 0),N_(this,"keyField",void 0),this.type=(0,e_.AZ)("counts"===e?$.i2:e),this.keyField=(0,e_.BZ)(this.type)}load(e=[]){for(let t=0;t<e.length;t++){const n=e[t];this.type===$.yx&&(0,b_.w)(n);const r=n[this.keyField];this.resources[r]=(0,v_.en)(n)}return this}change(e,t){this.type===$.yx&&(0,b_.w)(e);const n=this.resources[e[this.keyField]]||{},r=(0,v_.en)(e);n!==r&&(this.resources[e[this.keyField]]=e,t())}create(e,t){this.change(e,t)}remove(e,t){this.resources[e]&&(delete this.resources[e],t())}}var O_=a(4364);const I_={},L_={watcher:void 0,store:"",workerQueue:[],batchChanges:{},debugWorker:!1},D_=(...e)=>{L_.debugWorker&&O_.info("Advanced Worker:",...e)};D_("created");const P_=setInterval((()=>{Object.keys(L_.batchChanges).length&&(self.postMessage({batchChanges:L_.batchChanges}),L_.batchChanges={})}),5e3),M_=e=>{const{resourceType:t,data:{type:n},data:r}=e,i=t||n,a=(0,e_.AZ)("counts"===i?$.i2:i),o=(0,e_.BZ)(a);return a===$.yx&&(0,b_.w)(r),{type:a,id:r[o],data:r}},B_=(e,t,n)=>{D_("createWatcher",e,t),self.postMessage({[e]:{type:t.type,detail:t.detail,srcElement:{disconnectedAt:n.disconnectedAt,url:n.url}}})},F_=e=>{L_.workerQueue=L_.workerQueue.filter((t=>{const[,n]=Object.entries(t)[0],r=c_(n);return e!==r}))},$_={loadSchemas:e=>{I_[$.yx]||(I_[$.yx]=new R_($.yx)),I_[$.yx].load(e)},createWatcher:e=>{D_("createWatcher",e);const{metadata:t,maxTries:n,url:r,csrf:i}=e;if(!L_.watcher){L_.watcher=new m_(r,!0,null,null,n,i),L_.watcher.addEventListener(It,(e=>{const t=e.detail;if(t.data){const e=JSON.parse(t.data);e.name&&(U_[e.name]?U_[e.name](e):U_.dispatch(e))}})),L_.watcher.addEventListener("resync",(e=>{self.postMessage({redispatch:{resyncWatch:e.detail.data}})})),L_.watcher.addEventListener(Dt,(e=>{B_(Dt,e,L_.watcher)})),L_.watcher.addEventListener(Pt,(e=>{B_(Pt,e,L_.watcher)})),L_.watcher.setDebug(L_.debugWorker),L_.watcher.connect(t);while(L_.workerQueue.length>0){D_("createWatcher","flushing workerQueue",L_.workerQueue);const e=L_.workerQueue.shift(),[t,n]=Object.entries(e)[0];$_[t]?$_[t](n):O_.warn("no associated action for:",t)}}},watch:e=>{D_("watch",e);const t=c_(e);if(e.stop)return void $_.unwatch(t);if(!e.force&&L_.watcher?.watches[t]?.error)return;if(!L_.watcher)return void L_.workerQueue.push({watch:e});const{resourceType:n,namespace:r,id:i,selector:a,resourceVersion:o}=e,s=o?Date.now():void 0,l=[$.yx,$.i2].includes(n),c={resourceType:n,id:i,namespace:r,selector:a,force:e.force};L_.watcher.watch(t,o,s,c,l)},unwatch:e=>{D_("unwatch",e),F_(e),L_.watcher&&L_.watcher.unwatch(e)},initWorker:({storeName:e})=>{D_("initWorker",e),L_.store=e},destroyWorker:()=>{function e(){delete self.onmessage,self.postMessage({destroyWorker:!0})}D_("destroyWorker"),clearInterval(P_),L_.watcher?L_.watcher?.disconnect().then(e):e()},toggleDebug:({on:e})=>{L_.debugWorker=!!e,L_.watcher.setDebug(!!e)},updateBatch(e,t,n){L_.batchChanges[e]||(L_.batchChanges[e]={}),L_.batchChanges[e][t]=n}},U_={"resource.change":e=>{const{type:t,id:n,data:r}=M_(e);I_[t]?I_[t].change(r,(()=>$_.updateBatch(t,n,r))):$_.updateBatch(t,n,r)},"resource.create":e=>{const{type:t,id:n,data:r}=M_(e);I_[t]?I_[t].create(r,(()=>$_.updateBatch(t,n,r))):$_.updateBatch(t,n,r)},"resource.start":e=>{},"resource.remove":e=>{const{type:t,id:n}=M_(e);I_[t]?I_[t].remove(n,(()=>$_.updateBatch(t,n,{}))):$_.updateBatch(t,n,{})},"resource.stop":e=>{D_("resource.stop",e);const t=c_(e);F_(t),L_.watcher?.watches[t]?.error||U_.dispatch({...e,advancedWorker:!0})},"resource.error":e=>{O_.warn(`Resource error [${L_.store}]`,e.resourceType,":",e.data.error)},dispatch:e=>{self.postMessage({dispatch:e})}};self.onmessage=e=>{const t=Object.keys(e?.data);t.forEach((t=>{$_[t]?$_[t](e?.data[t]):O_.warn("no associated action for:",t)}))};const j_={WAITING:"waiting",DESTROY_MOCK:"destroy",BASIC:"basic",ADVANCED:"advanced"};var V_=a(81565);class K_{typeIsNamespaced({getters:e},t){return e.haveNamespace(t)?.length>0}typeIsPaginated({getters:e},t){return!!e.havePage(t)}filteredNamespaces({rootGetters:e}){return e.activeNamespaceCache}subscribeNamespace(e){if(!V_.A.isApplicable({namespaced:e,type:"n/a"})||!e.length)return e}validChange({getters:e,rootGetters:t},n,r){if(this.typeIsNamespaced({getters:e},n)){const e=this.filteredNamespaces({rootGetters:t});if(!e[r.metadata.namespace])return!1}if(this.typeIsPaginated({getters:e},n)){const t=e["all"](n);return!!t.find((e=>e.id===r.id))}return!0}validateBatchChange({getters:e,rootGetters:t},n){const r=this.filteredNamespaces({rootGetters:t}),i={namespaced:{},paginated:{}};return Object.entries(n).forEach((([t,n])=>{if(void 0===i.namespaced[t]&&(i.namespaced[t]=this.typeIsNamespaced({getters:e},t)),i.namespaced[t]){const i=e.schemaFor(t);if(!i?.attributes?.namespaced)return;Object.keys(n).forEach((e=>{const t=e.split("/")[0];t&&r[t]||delete n[e]}))}if(void 0===i.paginated[t]&&(i.paginated[t]=this.typeIsPaginated({getters:e},t)),i.paginated[t]){const r=e["all"](t);Object.keys(n).forEach((e=>{r.find((t=>t.id===e))||delete n[e]}))}})),n}}var H_=new K_,G_=a(15092),z_=a(4364);const q_=3e3,X_={},W_=[xd.e.CLUSTER,xd.e.RANCHER,xd.e.MANAGEMENT],Y_=(e,t)=>t.$workers[e]?.waitingForDestroy&&t.$workers[e].waitingForDestroy(),Q_=(e,t)=>(0,g_.f)((()=>Y_(e,t)||!!t.getters["management/byId"]($.yx,$.Mc.SETTING))),J_=(e,t)=>(0,g_.f)((()=>Y_(e,t)||!!t.getters["management/byId"]($.Mc.SETTING,U.HG.UI_PERFORMANCE))),Z_=e=>{const{rootGetters:t,getters:n}=e,r=n.storeName,i=t.clusterId;if(!W_.includes(r)||i===xd.w&&r===xd.e.CLUSTER)return!1;const a=(0,Iu.fD)(t);return a?.advancedWorker.enabled};async function eS(e,t){const{getters:n,dispatch:r}=t,i=n.storeName;if(e.$workers=e.$workers||{},!W_.includes(i))return;if(e.$workers[i]||(e.$workers[i]={postMessage:t=>{"destroyWorker"!==Object.keys(t)?.[0]?X_[i]?X_[i].push(t):X_[i]=[t]:e.$workers[i].mode=j_.DESTROY_MOCK},mode:j_.WAITING,waitingForDestroy:()=>e.$workers[i]?.mode===j_.DESTROY_MOCK,destroy:()=>{delete e.$workers[i]}}),await Q_(i,e),await J_(i,e),e.$workers[i].waitingForDestroy())return void e.$workers[i].destroy();const a=Z_(t),o={load:e=>{nS(t,e,!0,"Change")},destroyWorker:()=>{e.$workers&&(e.$workers[i].terminate(),delete e.$workers[i])},batchChanges:e=>{r("batchChanges",H_.validateBatchChange(t,e))},dispatch:e=>{r(`ws.${e.name}`,e)},redispatch:e=>{Object.entries(e).forEach((([e,t])=>{r(e,t)}))},[Dt]:e=>{r("error",e)},[Pt]:e=>{r("error",e)}};if(!e.$workers[i]||e.$workers[i].mode===j_.WAITING){const t=a?j_.ADVANCED:j_.BASIC,n=e.steveCreateWorker(t);e.$workers[i]=n,n.postMessage({initWorker:{storeName:i}}),e.$workers[i].onmessage=e=>{const t=Object.keys(e?.data);t.forEach((t=>{o[t](e?.data[t])}))}}while(X_[i]?.length){const t=X_[i].shift(),n=(0,_d.yo)(t);e.$workers[i].postMessage(n)}}function tS(e,t){const n=e.resourceType||e.type,r=t.resourceType||t.type;return n===r&&((e.id===t.id||!e.id&&!t.id)&&((e.namespace===t.namespace||!e.namespace&&!t.namespace)&&(e.selector===t.selector||!e.selector&&!t.selector)))}function nS({getters:e,state:t,rootGetters:n},{data:r,revision:i},a,o){const s=e.normalizeType(r.type),l=e.typeEntry(s);if(l&&(l.revision=Math.max(l.revision,parseInt(i,10)),H_.validChange({getters:e,rootGetters:n},s,r)))if(a)t.queue.push({action:"dispatch",event:"load",body:r});else{const n=e.byId(r.type,r.id);n&&t.queue.push({action:"commit",event:"remove",body:n}),s===$.yx&&t.queue.push({action:"commit",event:"forgetType",body:r.id})}}function rS(e){return(0,Iu.fD)(e)?.disableWebsocketNotification}const iS={async subscribe(e,t){const{state:n,commit:r,dispatch:i,getters:a,rootGetters:o}=e;if(o["isSingleProduct"]?.disableSteveSockets)return;let s=n.socket;r("setWantSocket",!0),n.debugSocket&&z_.info(`Subscribe [${a.storeName}]`);const l=`${n.config.baseUrl}/subscribe`,c=rS(o)?null:3,u=(0,_d.Jt)(t,"metadata");Z_(e)?(this.$workers[a.storeName]||await eS(this,e),this.$workers[a.storeName].postMessage({createWatcher:{metadata:u,url:`${n.config.baseUrl}/subscribe`,csrf:this.$cookies.get(ZE,{parseJSON:!1}),maxTries:c}})):s?(s.setAutoReconnect(!0),s.setUrl(l),s.connect(u)):(s=new Ut(`${n.config.baseUrl}/subscribe`,!0,null,null,c),r("setSocket",s),s.addEventListener(Rt,(e=>{i("opened",e)})),s.addEventListener(Ot,(e=>{i("closed",e)})),s.addEventListener(Dt,(e=>{i("error",e)})),s.addEventListener(Pt,(e=>{i("error",e)})),s.addEventListener(It,(e=>{const t=e.detail;if(t.data){const e=JSON.parse(t.data);e.name&&i(`ws.${e.name}`,e)}})),s.connect(u))},unsubscribe({commit:e,getters:t,state:n}){const r=n.socket;e("setWantSocket",!1);const i=[],a=(this.$workers||{})[t.storeName];return a&&(a.postMessage({destroyWorker:!0}),i.push((0,g_.f)((()=>!this.$workers[t.storeName]),"Worker is destroyed"))),r&&i.push(r.disconnect()),Promise.all(i)},watch({state:e,dispatch:t,getters:n,rootGetters:r},i){e.debugSocket&&z_.info(`Watch Request [${n.storeName}]`,JSON.stringify(i));let{type:a,selector:o,id:s,revision:l,namespace:c,stop:u,force:d}=i;if(c=H_.subscribeNamespace(c),a=n.normalizeType(a),r["type-map/isSpoofed"](a))return void(e.debugSocket&&z_.info("Will not Watch (type is spoofed)",JSON.stringify(i)));const h=n.schemaFor(a,!1,!1);if(h?.attributes?.verbs?.includes&&!h.attributes.verbs.includes("watch"))return void(e.debugSocket&&z_.info("Will not Watch (type does not have watch verb)",JSON.stringify(i)));const p=n.inError(i);if(!u&&!d&&p)return void(p!==$t&&z_.error(`Aborting Watch Request [${n.storeName}]. Watcher in error (${p})`,JSON.stringify(i)));if(!u&&n.watchStarted({type:a,id:s,selector:o,namespace:c}))return void(e.debugSocket&&z_.debug(`Already Watching [${n.storeName}]`,{type:a,id:s,selector:o,namespace:c}));"undefined"!==typeof l||G_.A.isSteveCacheEnabled({rootGetters:r})||(l=n.nextResourceVersion(a,s));const f={resourceType:a};l&&(f.resourceVersion=`${l}`),c&&(f.namespace=c),u&&(f.stop=!0),s&&(f.id=s),o&&(f.selector=o);const m=this.$workers?.[n.storeName]||{};return m.mode===j_.ADVANCED||m.mode===j_.WAITING?(d&&(f.force=!0),void m.postMessage({watch:f})):t("send",f)},unwatch(e,{type:t,id:n,namespace:r,selector:i,all:a}){const{commit:o,getters:s,dispatch:l}=e;if(s["schemaFor"](t)){r=H_.subscribeNamespace(r);const c={type:t,id:n,namespace:r,selector:i,stop:!0},u=e=>{s["watchStarted"](e)&&(o("setWatchStopped",e),l("watch",e),o("clearFromQueue",t))};Z_(e)?l("watch",c):a?s["watchesOfType"](t).forEach((e=>{u(e)})):s["watchStarted"](c)&&u(c)}},"ws.ping"({getters:e,dispatch:t},n){if("management"===e.storeName){const r=n?.data?.version||null;t("updateServerVersion",r,{root:!0}),z_.info(`Ping [${e.storeName}] from ${r||"unknown version"}`)}}},aS={debug(e,t,n){e.debugSocket=!1!==t,n&&this.$workers[n]&&this.$workers[n].postMessage({toggleDebug:!1!==t})}},oS={async flush({state:e,commit:t,dispatch:n,getters:r}){const i=e.queue;let a=[];if(!i.length)return;const o=(new Date).getTime();e.queue=[],e.debugSocket&&z_.debug(`Subscribe Flush [${r.storeName}]`,i.length,"items");for(const{action:s,event:l,body:c}of i)if("dispatch"===s&&"load"===l)a.push(c);else if(a.length&&(await n("loadMulti",a),a=[]),"dispatch"===s)await n(l,c);else{if("commit"!==s)throw new Error("Invalid queued action");t(l,c)}a.length&&await n("loadMulti",a),e.debugSocket&&z_.debug(`Subscribe Flush [${r.storeName}] finished`,(new Date).getTime()-o,"ms")},rehydrateSubscribe({state:e,dispatch:t}){e.wantSocket&&!e.socket&&t("subscribe")},reconnectWatches({state:e,getters:t,commit:n,dispatch:r}){const i=[];for(const a of e.started.slice())z_.info(`Reconnect [${t.storeName}]`,JSON.stringify(a)),t.schemaFor(a.type)&&(n("setWatchStopped",a),delete a.revision,i.push(r("watch",a)));return Promise.all(i)},async resyncWatch({state:e,getters:t,dispatch:n,commit:r},i){const{resourceType:a,namespace:o,id:s,selector:l}=i;z_.info(`Resync [${t.storeName}]`,i);const c={force:!0,forceWatch:!0};if(s)return void await n("find",{type:a,id:s,opt:{...c,namespaced:o,revision:null}});let u,d;l?(u=t["matching"](a,l).slice(),d=await n("findMatching",{type:a,selector:l,opt:c})):(u=t["all"](a).slice(),o&&(u=u.filter((e=>e.metadata?.namespace===o))),d=await n("findAll",{type:a,watchNamespace:o,opt:c}));const h={};for(const p of d)h[p.id]=!0;for(const p of u)h[p.id]||(e.debugSocket&&z_.info(`Remove stale [${t.storeName}]`,a,p.id),r("remove",p))},async opened({commit:e,dispatch:t,state:n,getters:r,rootGetters:i},a){n.debugSocket&&z_.info(`WebSocket Opened [${r.storeName}]`);const o=a.currentTarget,s=a?.detail?.tries,l=i["i18n/t"],c=rS(i);if(this.$socket=o,n.queue||(n.queue=[]),n.queueTimer||(n.flushQueue=async()=>{n.queue.length&&await t("flush"),n.queueTimer=setTimeout(n.flushQueue,1e3)},n.flushQueue()),o.hasReconnected){await t("reconnectWatches");const e=i["growl/find"]({key:"url",val:o.url});e&&t("growl/remove",e.id,{root:!0}),s>1&&!c&&t("growl/success",{title:l("growl.reconnected.title"),message:l("growl.reconnected.message",{url:this.$socket.url,tries:s})},{root:!0})}for(const u of n.pendingFrames.slice())e("dequeuePendingFrame",u),t("sendImmediate",u)},closed({state:e,getters:t}){e.debugSocket&&z_.info(`WebSocket Closed [${t.storeName}]`),clearTimeout(e.queueTimer),e.queueTimer=null},error({getters:e,state:t,dispatch:n,rootGetters:r},i){clearTimeout(t.queueTimer),t.queueTimer=null;const a=rS(r);if(!a){const a=(0,rn.ZD)(r["prefs/get"](O.DX)),o=(0,rn.ZD)(r["prefs/get"](O.G$)),s=i?.srcElement?.disconnectedAt||Date.now(),l=`${n_()(s).format(`${a} ${o}`)}`,c=i?.srcElement?.url,u=t?.socket?.tries,d=r["i18n/t"],h=r["growl/find"]({key:"url",val:c});i.type===Dt?(h&&n("growl/remove",h.id,{root:!0}),n("growl/error",{title:d("growl.connectError.title"),message:d("growl.connectError.message",{url:c,time:l,tries:u},{raw:!0}),icon:"error",earliestClose:s+q_,url:c},{root:!0})):i.type===Pt?(h&&n("growl/remove",h.id,{root:!0}),n("growl/error",{title:d("growl.disconnectError.title"),message:d("growl.disconnectError.message",{url:c,time:l,tries:u},{raw:!0}),icon:"error",earliestClose:s+q_,url:c},{root:!0})):z_.error(`WebSocket Connection Error [${e.storeName}]`,i.detail)}},send({state:e,commit:t},n){if(e.socket){const t=e.socket.send(JSON.stringify(n));if(t)return}t("enqueuePendingFrame",n)},sendImmediate({state:e},t){if(e.socket)return e.socket.send(JSON.stringify(t))},"ws.resource.start"({state:e,getters:t,commit:n,dispatch:r},i){e.debugSocket&&z_.info(`Resource start: [${t.storeName}]`,i);const a={type:i.resourceType,namespace:i.namespace,id:i.id,selector:i.selector};e.started.filter((e=>{if(e.type===a.type&&e.namespace!==a.namespace)return!0})).forEach((e=>{r("unwatch",e)})),n("setWatchStarted",a)},"ws.resource.error"({getters:e,commit:t,dispatch:n},r){z_.warn(`Resource error [${e.storeName}]`,r.resourceType,":",r.data.error);const i=r.data?.error?.toLowerCase();i.includes("watch not allowed")?t("setInError",{msg:r,reason:Mt}):i.includes("failed to find schema")?t("setInError",{msg:r,reason:Bt}):i.includes("too old")?(t("setInError",{msg:r,reason:$t}),n("resyncWatch",r)):i.includes("the server does not allow this method on the requested resource")&&t("setInError",{msg:r,reason:Ft})},"ws.resource.stop"({state:e,getters:t,commit:n,dispatch:r},i){const a=i.resourceType,o={type:a,id:i.id,namespace:i.namespace,selector:i.selector};if(e.debugSocket&&z_.info(`Resource Stop [${t.storeName}]`,a,i),!a)return void z_.error(`Resource Stop [${t.storeName}]. Received resource.stop with an empty resourceType, aborting`,i);const s=i.advancedWorker,l=!s,c=l?t["watchStarted"](o):s;t["schemaFor"](a)&&c&&(l&&n("setWatchStopped",o),r("watch",o))},"ws.resource.create"(e,t){e.state.debugSocket&&z_.info(`Resource Create [${e.getters.storeName}]`,t.resourceType,t),nS(e,t,!0,"Create")},"ws.resource.change"(e,t){const n=t.data,r=n.type;if(n.message&&!n.id)return;if(r===$.yx){const t=(this.$workers||{})[e.getters.storeName];if(t)return void t.postMessage({updateSchema:n})}nS(e,t,!0,"Change");const i=e.rootGetters["type-map/optionsFor"](r);if(i?.alias?.length>0){const t=i?.alias||[];t.map((t=>{e.state.queue.push({action:"dispatch",event:"load",body:{...n,type:t}})}))}},"ws.resource.remove"(e,t){const n=t.data,r=n.type;if(e.state.debugSocket&&z_.info(`Resource Remove [${e.getters.storeName}]`,r,t),r===$.yx){const t=(this.$workers||{})[e.getters.storeName];t&&t.postMessage({removeSchema:n.id})}nS(e,t,!1,"Remove");const i=e.rootGetters["type-map/optionsFor"](r);if(i?.alias?.length>0){const t=i?.alias||[];t.map((t=>{const r=e.getters.byId(t,n.id);e.state.queue.push({action:"commit",event:"remove",body:r})}))}}},sS={setSocket(e,t){e.socket=t},setWantSocket(e,t){e.wantSocket=t},enqueuePendingFrame(e,t){e.pendingFrames.push(t)},dequeuePendingFrame(e,t){(0,Se.Gj)(e.pendingFrames,t)},setWatchStarted(e,t){const n=e.started.find((e=>tS(t,e)));n||(0,Se.PG)(e.started,t),delete e.inError[l_(t)]},setWatchStopped(e,t){const n=e.started.find((e=>tS(t,e)));n?(0,Se.Gj)(e.started,n):z_.warn("Tried to remove a watch that doesn't exist",t)},setInError(e,{msg:t,reason:n}){const r=l_(t);e.inError[r]=n},clearInError(e,t){const n=l_(t);delete e.inError[n]},resetSubscriptions(e){(0,Se.IU)(e.started),(0,Se.IU)(e.pendingFrames),(0,Se.IU)(e.queue),clearTimeout(e.queueTimer),e.deferredRequests={},e.queueTimer=null},clearFromQueue(e,t){e.queue=e.queue.filter((e=>e.body?.type!==t))}},lS={inError:e=>t=>e.inError[l_(t)],watchesOfType:e=>t=>e.started.filter((e=>t===(e.resourceType||e.type))),watchStarted:e=>t=>!!e.started.find((e=>tS(t,e))),nextResourceVersion:(e,t)=>(n,r)=>{n=(0,e_.AZ)(n);let i=0;if(r){const e=t["byId"](n,r);i=parseInt(e?.metadata?.resourceVersion,10)}if(!i){const t=e.types[n];if(!t)return null;i=t.revision;for(const e of t.list)if(e&&e.metadata){const t=parseInt(e.metadata.resourceVersion,10);i=Math.max(i,t)}}return i||null}},cS={...iS,...oS},uS={...aS,...sS},dS={...lS};var hS=a(50382),pS=a(48074),fS=a(25184),mS=a(82614),gS=a(89865),vS=a(86794),bS=a(82637),yS=a(2334),wS=a(57699),ES=a(46392),_S=a(4364);const SS={NORMAN:"norman",STEVE:"steve",BY_TYPE:"byType"},kS={[$.i2]:!0,[$.CU]:!0,[$.yx]:!0,[$.UI.NAV_LINK]:!0},xS=new RegExp("(/v1)|(/k8s/clusters/[a-z0-9-]+/v1)");var AS={urlOptions:()=>(e,t,n)=>{t=t||{};const r=(0,ft.qg)(e),i=xS.test(r.path),a=bS.A.createParamsForPagination(n,t);if(a)e+=""+((e.includes("?")?"&":"?")+a);else{if(t.labelSelector&&(e+=`${e.includes("?")?"&":"?"}labelSelector=${t.labelSelector}`),t.filter){e+=""+(e.includes("?")?"&":"?");const n=Object.keys(t.filter);n.forEach((n=>{let r=t.filter[n];(0,Se.cy)(r)||(r=[r]),i&&(e+=""+(e.includes("filter=")?"&":"filter="));const a=r.map((e=>`${encodeURI(n)}=${encodeURI(e)}`)),o=e.charAt(e.length-1),s=["&","?","="].includes(o)?"":"&";e+=`${s}${a.join("&")}`}))}const n=V_.A.checkAndCreateParam(t);n&&(e+=""+((e.includes("?")?"&":"?")+n));const r=t.limit;r&&(e+=`${e.includes("?")?"&":"?"}limit=${r}`);const a=t.sortBy,o=t.sortOrder;a&&(i?e+=`${e.includes("?")?"&":"?"}sort=${("desc"===o?"-":"")+encodeURI(a)}`:(e+=`${e.includes("?")?"&":"?"}sort=${encodeURI(a)}`,o&&(e+=`${e.includes("?")?"&":"?"}order=${encodeURI(o)}`)))}if(i){if(!Array.isArray(t?.excludeFields)){const e=["metadata.managedFields"];t.excludeFields=Array.isArray(t?.omitExcludeFields)?e.filter((e=>!e.includes(t.omitExcludeFields))):e}const n=t.excludeFields.map((e=>`exclude=${e}`)).join("&");e+=`${e.includes("?")?"&":"?"}${n}`}return e},urlFor:(e,t)=>(n,r,i)=>{let a=(0,vS.d)(e,t)(n,r,i);if(!i?.url&&i?.namespaced&&!V_.A.isApplicable(i)){const e=new URL(a),t=e.pathname;t?.length&&"/"===t[t.length-1]&&(e.pathname=t.substring(0,t.length-1));const n=e.pathname.split("/");r?(n.splice(n.length-1,0,i.namespaced),e.pathname=n.join("/")):e.pathname=`${e.pathname.split("/").join("/")}/${i.namespaced}`,a=e.toString()}return a},defaultModel:e=>t=>{const n=e.config.modelBaseClass||SS.BY_TYPE.STEVE;return n===SS.BY_TYPE?t?.type?.startsWith("management.cattle.io.")||t?.type?.startsWith("project.cattle.io.")?mS.A:fS.A:n===SS.NORMAN?gS.A:fS.A},classify:(e,t,n)=>t=>{const r=(0,pS.$)(e.config.namespace,t?.type,t?.metadata?.name,n);if(r)return r;const i=e.config.modelBaseClass||hS.vX;return i===hS.vX?t?.type?.startsWith("management.cattle.io.")||t?.type?.startsWith("project.cattle.io.")?mS.A:fS.A:i===SS.NORMAN?gS.A:fS.A},cleanResource:()=>(e,t)=>{if(t?.type===$.i2&&e)return t.counts={...e.counts,...t.counts},t;if(e?.cleanResource&&"function"===typeof e.cleanResource)return e.cleanResource(t);const n=Object.getPrototypeOf(Object.getPrototypeOf(e))?.constructor;return n===mS.A?(0,mS.T)(t):t},podsByNamespace:e=>t=>{const n=e.podsByNamespace[t];return n?.list||[]},gcIgnoreTypes:()=>kS,currentGeneration:e=>t=>{t=(0,e_.AZ)(t);const n=e.types[t];return n?n.generation:null},pathExistsInSchema:(e,t)=>(e,n)=>{const r=t.schemaFor(e);if(r.requiresResourceFields&&!r.hasResourceFields)return _S.warn(`pathExistsInSchema requires schema ${r.id} to have resources fields via schema definition but none were found. has the schema 'fetchResourceFields' been called?`),!1;const i=r.requiresResourceFields?r.schemaDefinitions:null,a=(0,rn.jg)(n);let o=r;while(a.length){const n=a.shift(),s=o.resourceFields?.[n];if(e=s?.type,!e)return!1;if(a.length&&(e=(0,yS.parseType)(e,s).pop(),o=i?i?.[e]:t.schemaFor(e),!r))return!1}return!0},headersFor:(e,t,n,r)=>({getters:e,state:t},{schema:n,pagination:i})=>{if(i)return(0,ES.Bm)({state:t,getters:e,rootGetters:r},{headers:t.paginationHeaders,typeOptions:e["optionsFor"](n,!0),schema:n,columns:{state:wS.Xc,namespace:wS.r1,age:wS.tm,id:wS.nl}})},optionsFor:()=>(e,{schema:t,pagination:n,opts:r})=>{if(n){const e={listMandatorySort:[]};return!r.listGroupsWillOverride&&t.attributes.namespaced&&(e.listGroups=wS.ce,e.listGroupsWillOverride=!0),e}}},NS=a(96730),CS=a(4364);const TS={node:{count:800,statusRow:2},"apps.deployment":{count:4e3,statusRow:5},pod:{count:4e3,statusRow:10}};({NODE_ENV:"production",BASE_URL:"/"}).perfTest&&{NODE_ENV:"production",BASE_URL:"/"}.dev&&CS.warn("Performance Testing data enabled",TS);const RS={count:1,statusRow:0,custom:null};function OS(e,t){if(0===t.length)return t;const n=t[0];if(!n.apiVersion)return t;let r=TS[e];return r?("number"===typeof r&&(r={count:r}),r={...RS,...r},LS(t,r)):t}function IS(e){return Math.floor(Math.random()*e)}function LS(e,t){if(0===e.length)return e;if(0===t.count)return[];if(t.count<=e.length)return e.slice(0,t.count);const n=[];let r=0;e.forEach((e=>n.push(JSON.stringify(e))));const i=[...e],a=t.count-e.length;for(let o=0;o<a;o++){const e=JSON.parse(n[r]);if(e.id=`${e.id}_${o}`,e.metadata.uid=`uid_${o}_${1e3*Math.random()}`,e.metadata.name=`${e.metadata?.name}_${o}`,e.metadata.creationTimestamp=n_()().format(),i.push(e),t.statusRow>0){const n=1===t.statusRow||0===IS(t.statusRow);if(n){e.metadata.state=e.metadata.state||{};const t=0===IS(2);t?e.metadata.state.error=!0:e.metadata.state.transitioning=!0,e.metadata.state.message=`Test state description for ${e.metadata.name}`}}t.custom&&t.custom(e,o),r++,r===n.length&&(r=0)}return i}var DS=a(45858);function PS(e,t){let n=e.podsByNamespace[t];return n||(n={list:[],map:new Map},e.podsByNamespace[t]=n),n}function MS(e,t,n,r){r&&Object.keys(e.podsByNamespace).forEach((t=>{delete e.podsByNamespace[t]})),n.forEach((n=>{const r=e.types[$.Sm].map.get(n.id)||(0,hS.L8)(t,n),i=PS(e,r.namespace),a=i.map.get(n.id);a?(0,NS.HC)(a,n):((0,Se.PG)(i.list,r),i.map.set(n.id,r))}))}function BS(e,t){if(t&&t.type===$.Sm){const n=e.podsByNamespace[t.namespace];if(n){const e=n.list.findIndex((e=>e.id===t.id));e>=0&&n.list.splice(e,1),n.map.delete(t.id)}}else t&&t.type===$.CU&&delete e.podsByNamespace[t.id]}var FS={batchChanges(e,{ctx:t,batch:n}){if((0,NS.AJ)(e,{ctx:t,batch:n}),n[$.Sm]){const r=Object.entries(n[$.Sm]).reduce(((t,[n,r])=>(r.id?t.push(r):BS(e,{id:n,type:$.Sm,namespace:n.substring(0,n.indexOf("/"))}),t)),[]);MS(e,t,r,!1)}n[$.CU]&&Object.entries(n[$.CU]).forEach((([t,n])=>{n.id||BS(e,{id:t,type:$.CU})}))},loadAll(e,{type:t,data:n,ctx:r,skipHaveAll:i,namespace:a,revision:o,pagination:s}){({NODE_ENV:"production",BASE_URL:"/"}).dev&&{NODE_ENV:"production",BASE_URL:"/"}.perfTest&&(n=OS(t,n));const l=(0,NS.gh)(e,{type:t,data:n,ctx:r,skipHaveAll:i,namespace:a,revision:o,pagination:s});if(t===$.Sm&&MS(e,r,l,!0),t===$.yx){const e=(this.$workers||{})[r.getters.storeName];if(e){const t=(0,_d.yo)(n);e.postMessage({loadSchemas:t})}}},forgetType(e,t){(0,NS.WI)(e,t)&&Object.keys(e.inError).forEach((n=>{n.startsWith(t)&&delete e.inError[n]}))},reset(e){(0,NS.zp)(e,this.commit),this.commit(`${e.config.namespace}/resetSubscriptions`),e.podsByNamespace={},DS["default"].reset(e.config.namespace)},loadMulti(e,{data:t,ctx:n}){for(const r of t){const t=(0,NS.Hh)(e,{data:r,ctx:n});if(t.type===$.Sm&&t.metadata){const n=PS(e,t.namespace);(0,Se.PG)(n.list,t),n.map.set(t.id,t)}}},loadAdd(e,{type:t,data:n,ctx:r}){(0,NS.aW)(e,{type:t,data:n,ctx:r}),n.length&&n[0].type===$.Sm&&MS(e,r,n,!1)},remove(e,t){(0,NS.TF)(e,t,this.getters),BS(e,t)}},$S=a(27500),US=a.n($S),jS=a(63905),VS=a(4364);function KS(e,t,n){t=t||{},t.method=t.method||"get",t.headers=t.headers||{},t.headers.accept="application/jsonl";const r=new TextDecoder;let i="";return fetch(e,t).then((e=>{if(e.status>=400){VS.error("Error Streaming",e);const t={message:"Error Streaming"};return t.response=e,Promise.reject(t)}return e.body.getReader()})).then((e=>e.read().then((function t({value:a,done:o}){if(o)return void n(JSON.parse(i));i+=r.decode(a,{stream:!0});const s=i.split(/[\r\n](?=.)/);return i=s.pop(),s.map(JSON.parse).forEach(n),e.read().then(t)}))))}function HS(){const e="undefined"!==typeof TextDecoder;return e}var GS=a(41580),zS=a.n(GS),qS=a(4364);let XS;function WS(e){const t=e.split(XS.separator)||[];return t.reduce(((e,t)=>{const n=t.trim();if(!n)return e;const r=n.endsWith(",")?n.slice(0,-1):n;return e.push(XS.separator+r),e}),[])}function YS(e,t,n,r,i=!1){const a=r?.toLowerCase();if("post"!==a&&"put"!==a||!e.headers?.warning)return;if(!XS||i){const e=(0,Iu.fD)(n);XS=e?.kubeAPI.warningHeader}const o=WS(e.headers?.warning);if(!o.length)return;const s=o.filter((e=>!XS.notificationBlockList.find((t=>e.startsWith(t)))));if(s.length){const i=e.data?.type||e.data?.kind||n["i18n/t"]("generic.resource",{count:1});t("growl/warning",{title:"put"===r?n["i18n/t"]("growl.kubeApiHeaderWarning.titleUpdate",{resourceType:i}):n["i18n/t"]("growl.kubeApiHeaderWarning.titleCreate",{resourceType:i}),message:s.join(", "),timeout:0},{root:!0})}const l=`Validation Warnings for ${e.config.url}\n\n${o.join("\n")}`;!{NODE_ENV:"production",BASE_URL:"/"}.dev?qS.debug(l):qS.warn(`${l}\n\n`,e.data)}var QS=a(22915),JS={async loadSchemas(e,t=!0){return await(0,jS.BH)(e,t)},async request({state:e,dispatch:t,rootGetters:n},r){const i=r.opt||r,a=await(0,jS.wA)(n,"cluster",i);if(a)return a;i.url=i.url.replace(/\/*$/g,"");const o="epinio"===this.$config.rancherEnv?"/pp/v1/epinio/rancher":"";if(o)if(i.url.startsWith("/"))i.url=o+i.url;else{const e=(0,ft.qg)(i.url);e.path.startsWith(o)||(e.path=o+e.path,i.url=(0,ft.As)(e))}i.httpsAgent=new(US().Agent)({rejectUnauthorized:!1});const s=(i.method||"get").toLowerCase(),l=i.headers||{},c=JSON.stringify(l)+s+i.url;let u,d;if("get"===s){if(u=e.deferredRequests[c],u){const e=(0,ce.yX)();return u.push(e),e.promise}u=[],e.deferredRequests[c]=u}if(i.stream&&e.allowStreaming&&e.config.supportsStream&&HS())return KS(i.url,i,i.onData).then((()=>({finishDeferred:p.bind(null,c,"resolve")}))).catch((e=>m(e)));while(1)try{const e=await h(this,i,n);if(!i.depaginate)return e;if(d?d.data=d.data.concat(e.data):d=e,!e?.pagination?.next)return delete d.pagination?.first,delete d.pagination?.last,delete d.pagination?.next,delete d.pagination?.partial,d;i.url=e.pagination.next}catch(Go){return m(Go)}function h(e,n,r){return e.$axios(n).then((e=>{let i;return i=n.responseType?e:f(e),p(c,"resolve",i),YS(e,t,r,n.method),i}))}function p(t,n="resolve",r){const i=e.deferredRequests[t]||[];while(i.length)i.pop()[n](r);delete e.deferredRequests[t]}function f(e){let r=e.data;const a=e.headers["x-api-cattle-auth"];return a&&a!==n["auth/fromHeader"]&&t("auth/gotHeader",a,{root:!0}),204!==e.status&&null!==r||(r={}),"object"!==typeof r&&(r={data:r}),Object.defineProperties(r,{_status:{value:e.status},_statusText:{value:e.statusText},_headers:{value:e.headers},_req:{value:e.request},_url:{value:i.url}}),r}function m(e){let n=e;if(e?.response){const r=e.response;!1!==i.redirectUnauthorized&&401===r.status&&t("auth/logout",i.logoutOnError,{root:!0}),"undefined"!==typeof r.data&&(n=f(r))}return p(c,"reject",n),Promise.reject(n)}},promptMove({commit:e,state:t},n){e("action-menu/togglePromptMove",n,{root:!0})},promptRestore({commit:e,state:t},n){e("action-menu/togglePromptRestore",n,{root:!0})},assignTo({commit:e,state:t},n=[]){e("action-menu/toggleAssignTo",n,{root:!0})},async resourceAction({getters:e,dispatch:t},{resource:n,actionName:r,body:i,opt:a}){a=a||{},a.url||(a.url=n.actionLinkFor(r)),a.method="post",a.data=i;const o=await t("request",{opt:a});return!1!==a.load&&"collection"===o.type?(await t("loadMulti",o.data),o.data.map((t=>e.byId(t.type,t.id)||t))):!1!==a.load&&o.type&&o.id?t("load",{data:o}):o},promptUpdate({commit:e,state:t},n=[]){e("action-menu/togglePromptUpdate",n,{root:!0})},async collectionAction({getters:e,dispatch:t},{type:n,actionName:r,body:i,opt:a}){if(a=a||{},!a.url){const t=e["schemaFor"](n);a.url=(0,ft.R_)(t.links.collection,"action",r)}a.method="post",a.data=i;const o=await t("request",{opt:a});return!1!==a.load&&"collection"===o.type?(await t("loadMulti",o.data),o.data.map((t=>e.byId(t.type,t.id)||t))):!1!==a.load&&o.type&&o.id?t("load",{data:o}):o},createNamespace(e,t){return(0,hS.L8)(e,{type:$.CU,metadata:{name:t.name}})},cleanForNew(e,t){const n=t.metadata||{};return(0,_d.cX)(t,tk),(0,_d.cX)(n,nk),ik(n.annotations),ik(n.labels),n.name="",t?.spec?.crd?.spec?.names?.kind&&(t.spec.crd.spec.names.kind=""),t},cleanForDiff(e,t){const n=t.metadata||{};return n.labels||(n.labels={}),n.annotations||(n.annotations={}),rk(t),(0,_d.cX)(t,ZS),(0,_d.cX)(n,ek),ik(n.annotations),ik(n.labels),t},cleanForDetail(e,t){return t.metadata||(0,_d.hZ)(t,"metadata",{}),t.metadata.annotations||(0,_d.hZ)(t,"metadata.annotations",{}),t.metadata.labels||(0,_d.hZ)(t,"metadata.labels",{}),t},cleanForDownload(e,t){return(0,QS.C)(t)}};const ZS=["actions","links","status","__rehydrate","__clone"],ek=["ownerReferences","selfLink","creationTimestamp","deletionTimestamp","state","fields","relationships","generation","managedFields","resourceVersion"],tk=["actions","links","status","id"],nk=[...ek,"uid"];function rk(e){for(const t in e)if(t.startsWith("__"))delete e[t];else{const n=e[t];zS()(n)&&rk(n)}}function ik(e){e&&Object.keys(e).forEach((t=>{t.match(/(^|field\.)cattle\.io(\/.*|$)/)&&delete e[t]}))}function ak(e,t){return{...JE.fs,state(){return{...(0,JE.Ut)(e,t),socket:null,queue:[],wantSocket:!1,debugSocket:!1,allowStreaming:!0,pendingFrames:[],deferredRequests:{},started:[],inError:{},podsByNamespace:{}}},getters:{...JE.fs.getters,...AS,...dS},mutations:{...JE.fs.mutations,...FS,...uS},actions:{...JE.fs.actions,...JS,...cS}}}const ok=(e,t)=>{eS(e,t)};var sk=a(74302),lk={namespaceFilterOptions:(e,t,n,r)=>({addNamespace:e,divider:n,notFilterNamespaces:i})=>{const a=[{id:Vw.tj,kind:Vw.T6.SPECIAL,label:r["i18n/t"]("nav.ns.all")}];n(a);const o=t.filterNamespace(i);if(!r["isStandaloneHarvester"]&&r["currentCluster"]&&"_"!==r["currentCluster"]?.id){const t=r["currentCluster"];let i=r["management/all"]($.Mc.PROJECT);i=(0,sk.Ul)((0,Se.WP)(i,"spec.clusterName",t.id),["nameDisplay"]).filter((e=>"System"!==e.nameDisplay));const s={},l={};let c=!0;l["null"]=[];for(const e of i)s[e.metadata.name]=e;for(const e of o){let t=e.projectId;t&&s[t]||(t="null");let n=l[t];n||(n=[],l[e.projectId]=n),n.push(e)}for(const r of i){const t=r.metadata.name;c?c=!1:n(a),a.push({id:`project://${t}`,kind:"project",label:r.nameDisplay});const i=l[t]||[];e(a,i)}const u=l["null"];u.length&&(c||n(a),a.push({id:Vw.pF,kind:"project",label:r["i18n/t"]("nav.ns.orphan")}),e(a,u))}else e(a,o);return a},filterNamespace(e,t,n,r,i){const a=t.all("namespace");return(e=[])=>a.filter((t=>!t.isSystem||e.includes(t.id)))},filterProject(e,t,n,r){const i=r["management/all"]($.Mc.PROJECT),a=r["currentCluster"],o=a.id;return i.filter((e=>e.spec.clusterName===o&&"System"!==e.nameDisplay))}},ck={},uk={async loadCluster({state:e,commit:t,dispatch:n,getters:r,rootGetters:i,rootState:a},{id:o}){await n("management/waitForSchema",{type:$.Mc.CLUSTER},{root:!0});const s=await n("management/find",{type:$.Mc.CLUSTER,id:o,opt:{url:`${$.Mc.CLUSTER}s/${escape(o)}`}},{root:!0});let c=`/k8s/clusters/${escape(o)}/v1/harvester`;if("local"===o&&(c="/v1/harvester"),!s)throw t("clusterId",null,{root:!0}),t("applyConfig",{baseUrl:null}),new Ay.oV(o);t("applyConfig",{baseUrl:c}),await Promise.all([n("loadSchemas",!0)]),n("subscribe");const u={type:$.Mc.PROJECT,opt:{url:`${$.Mc.PROJECT}/${escape(o)}`,watchNamespace:o}},d=async()=>{let e=3e4;const t=100;while(e>0&&!a.managementReady)await setTimeout((()=>{}),t),e-=t;if(i["management/schemaFor"]($.Mc.PROJECT))return n("management/findAll",u,{root:!0})};if("local"!==o&&r["schemaFor"]($.Mc.SETTING)){const e=await n("findAll",{type:$.Mc.SETTING,id:U.HG.SYSTEM_NAMESPACES,opt:{url:`${c}/${$.Mc.SETTING}s/`,force:!0}}),r=e?.find((e=>e.id===U.HG.SYSTEM_NAMESPACES));if(r){const e=(r.value||r.default)?.split(",");t("setSystemNamespaces",e,{root:!0})}}const h={projects:d(),virtualCount:n("findAll",{type:$.i2}),virtualNamespaces:n("findAll",{type:$.CU}),settings:n("findAll",{type:l.rk.SETTING}),clusters:n("management/findAll",{type:$.Mc.CLUSTER,opt:{force:!0}},{root:!0})};r["schemaFor"](l.rk.RESOURCE_QUOTA)&&(h.resourceQuota=n("findAll",{type:l.rk.RESOURCE_QUOTA})),r["schemaFor"](l.rk.UPGRADE)&&(h.upgrades=n("findAll",{type:l.rk.UPGRADE}));const p=await(0,ce.kR)(h),f=i["harvester-common/getFeatureEnabled"]("supportHarvesterClusterVersion");if(!f){const e=i["productId"];return void this.$router?.push({name:`${e}-c-cluster-unsupported${"local"===o?"-standalone":""}`,params:{product:e}})}await n("cleanNamespaces",null,{root:!0}),t("updateNamespaces",{filters:[],all:r.filterNamespace(),getters:r},{root:!0});const m={def:!1,parseJSON:!0,inheritFrom:O.IJ,asUserPreference:!0};t("prefs/setDefinition",{name:"view-in-api",definition:m},{root:!0}),t("prefs/setDefinition",{name:"all-namespaces",definition:m},{root:!0}),t("prefs/setDefinition",{name:"theme-shortcut",definition:m},{root:!0}),t("prefs/setDefinition",{name:"plugin-developer",definition:m},{root:!0});const g=!(1===p.clusters.length&&"local"===p.clusters[0].metadata?.name);g&&t("managementChanged",{ready:!0,isMultiCluster:!0,isRancher:!0},{root:!0})}};const dk=()=>{const e=ak(null,null);return e.getters={...e.getters,...lk},e.mutations={...e.mutations,...ck},e.actions={...e.actions,...uk},e},hk={namespace:r.KR,isClusterStore:!0};var pk={specifics:dk(),config:hk,init:ok},fk=a(52880);function mk(e){return/^[A-Fa-f0-9]{2}(-[A-Fa-f0-9]{2}){5}$|^[A-Fa-f0-9]{2}(:[A-Fa-f0-9]{2}){5}$/.test(e)}function gk(e){const t=/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;return t.test(e)}var vk=a(66905),bk=a(66490);const yk=63;function wk(e,t,n,r){const{domain:{devices:{interfaces:i}},networks:a}=e,o=[];return i.map(((e,r)=>{const i=a.find((t=>e.name===t.name)),s=e.name||i.name||`Network ${r+1}`,l=t["i18n/t"]("harvester.fields.network"),c=t["i18n/t"]("harvester.validation.vm.network.lowerType"),u=t["i18n/t"]("harvester.validation.vm.network.upperType");if(Sk(t,n,e.name,o,s,l,c,u),i.multus&&!i.multus.networkName){const e=t["i18n/t"]("harvester.fields.network"),r=t["i18n/t"]("validation.required",{key:e});n.push(t["i18n/t"]("harvester.validation.generic.tabError",{prefix:s,message:r}))}if(e.macAddress&&!mk(e.macAddress)&&!i.pod){const e=t["i18n/t"]("harvester.validation.vm.network.macFormat");n.push(t["i18n/t"]("harvester.validation.generic.tabError",{prefix:s,message:e}))}})),n}function Ek(e,t,n,r,i,a){const o=r.includes("isVMTemplate"),s=o?this.value.spec.vm:a,l=(0,bk.v)(s),c=e.template.spec.volumes||[],u=e.template.spec.domain.devices.disks||[],d=[];u.forEach(((e,r)=>{const i=e.name||c[r]?.name||`Volume ${r+1}`;if(!e.disk&&!e.cdrom){const e=t["i18n/t"]("harvester.fields.type"),r=t["i18n/t"]("validation.required",{key:e});n.push(t["i18n/t"]("harvester.validation.generic.tabError",{prefix:i,message:r}))}const a=t["i18n/t"]("harvester.fields.volume"),o=t["i18n/t"]("harvester.validation.vm.volume.lowerType"),s=t["i18n/t"]("harvester.validation.vm.volume.upperType");Sk(t,n,e.name,d,i,a,o,s)}));let h=!1;return c.forEach(((e,r)=>{const{type:i,typeValue:s}=_k(t,e,l,a),c=e.name||r+1;if([vk.xO.IMAGE,vk.xO.ATTACH_VOLUME,vk.xO.CONTAINER].includes(i)&&(h=!0),i===vk.xO.NEW||i===vk.xO.IMAGE){if(!/([1-9]|[1-9][0-9]+)[a-zA-Z]+/.test(s?.spec?.resources?.requests?.storage)){const e=t["i18n/t"]("harvester.fields.size"),r=t["i18n/t"]("validation.required",{key:e});n.push(t["i18n/t"]("harvester.validation.generic.tabError",{prefix:c,message:r}))}if(s?.spec?.resources?.requests?.storage&&!/^([0-9][0-9]{0,8})[a-zA-Z]+$/.test(s?.spec?.resources?.requests?.storage)){const e=t["i18n/t"]("harvester.validation.generic.maximumSize",{max:"999999999 GiB"});n.push(t["i18n/t"]("harvester.validation.generic.tabError",{prefix:c,message:e}))}if(i===vk.xO.IMAGE&&!s?.spec?.storageClassName&&!o){const e=t["i18n/t"]("harvester.fields.image"),r=t["i18n/t"]("validation.required",{key:e});n.push(t["i18n/t"]("harvester.validation.generic.tabError",{prefix:c,message:r}))}if(!s?.spec?.storageClassName&&e?.persistentVolumeClaim?.claimName&&i!==vk.xO.IMAGE){const e=t["i18n/t"]("harvester.fields.storageClass"),r=t["i18n/t"]("validation.required",{key:e});n.push(t["i18n/t"]("harvester.validation.generic.tabError",{prefix:c,message:r}))}}if(i===vk.xO.ATTACH_VOLUME){const r=t["harvester/all"]($.YH),i=e?.persistentVolumeClaim?.claimName,o=r.find((e=>e.id===`${a.metadata.namespace}/${i}`));if(!o&&i){const e=t["i18n/t"]("harvester.fields.volume");n.push(t["i18n/t"]("harvester.validation.generic.hasDelete",{type:e,name:i}))}if(!i){const e=t["i18n/t"]("harvester.virtualMachine.volume.volume");n.push(t["i18n/t"]("validation.required",{key:e}))}}if(i===vk.xO.CONTAINER&&!e.containerDisk.image){const e=t["i18n/t"]("harvester.fields.dockerImage"),r=t["i18n/t"]("validation.required",{key:e});n.push(t["i18n/t"]("harvester.validation.generic.tabError",{prefix:c,message:r}))}})),h&&0!==c.length||a.links||n.push(t["i18n/t"]("harvester.validation.vm.volume.needImageOrExisting")),n}function _k(e,t,n,r){let i=null;const a=e["harvester/all"]($.YH);if(t.persistentVolumeClaim){const e=t?.persistentVolumeClaim?.claimName,o=a.find((t=>t.id===`${r.metadata.namespace}/${e}`));if(o)return{type:vk.xO.ATTACH_VOLUME,typeValue:null};if(i=n.find((e=>t.persistentVolumeClaim.claimName===e.metadata.name&&e.metadata?.annotations&&Object.prototype.hasOwnProperty.call(e.metadata.annotations,"harvesterhci.io/imageId"))),i)return{type:vk.xO.IMAGE,typeValue:i};if(i=n.find((e=>t.persistentVolumeClaim.claimName===e.metadata.name)),i)return{type:vk.xO.NEW,typeValue:i}}return t.containerDisk?{type:vk.xO.CONTAINER,typeValue:null}:{}}function Sk(e,t,n,r=[],i,a,o,s){if(-1!==r.findIndex((e=>n===e))&&t.push(e["i18n/t"]("harvester.validation.vm.duplicatedName",{type:a,name:n})),r.push(n),n&&n?.length>yk){const n=e["i18n/t"]("harvester.fields.name"),r=e["i18n/t"]("harvester.validation.generic.maxLength",{key:n,max:yk});t.push(e["i18n/t"]("harvester.validation.generic.tabError",{prefix:i,message:r}))}if(!n){const n=e["i18n/t"]("harvester.fields.name"),r=e["i18n/t"]("validation.required",{key:n});t.push(e["i18n/t"]("harvester.validation.generic.tabError",{prefix:i,message:r}))}if(!gk(n)){const r="^[a-z0-9]([-a-z0-9]*[a-z0-9])?$";t.push(e["i18n/t"]("harvester.validation.generic.regex",{lowerType:o,name:n,regex:r,upperType:s}))}}var kk=a(95799);function xk(e,t,n,r){const i=t["i18n/t"];if(!e||""===e){const e=i("harvester.volume.size");return n.push(i("validation.required",{key:e})),n}const a=Ak(e),o=999999,s=/^[1-9]\d*$/;return(!s.test(a)||a>o)&&n.push(i("harvester.validation.volume.sizeRange")),n}function Ak(e){if(!e)return null;const t=(0,kk.ao)(e);return(0,kk.Mo)(t,{addSuffix:!1,increment:1024,minExponent:3,maxExponent:3})}function Nk(e,t,n,r){const i=t["i18n/t"];if(!e)return n;const a=JSON.parse(e),o=a.type;return o?("s3"===o&&(a.accessKeyId||n.push(i("validation.required",{key:"accessKeyId"})),a.secretAccessKey||n.push(i("validation.required",{key:"secretAccessKey"})),a.bucketRegion||n.push(i("validation.required",{key:"bucketRegion"})),a.bucketName||n.push(i("validation.required",{key:"bucketName"}))),a.endpoint||"s3"===o||n.push(i("validation.required",{key:"endpoint"})),n):n}function Ck(e,t,n,r){const{ntpServers:i}=JSON.parse(e),a=t["i18n/t"],o=/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/,s=/^(?!:\/\/)(?:[a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63}$/;if(!i)return n;const l=new Set(i);return i.length!==l.size&&n.push(a("harvester.setting.ntpServers.isDuplicate")),i.find((e=>!o.test(e)&&!s.test(e)))&&n.push(a("harvester.setting.ntpServers.isNotIPV4")),n}function Tk(e,t,n,r,i,a){if(!e){const e=t["i18n/t"]("harvester.volume.size");n.push(t["i18n/t"]("validation.required",{key:e}))}if(e&&!/^([0-9][0-9]{0,8})[a-zA-Z]+$/.test(e)){const e=t["i18n/t"]("harvester.validation.generic.maximumSize",{max:"999999999 GiB"});n.push(e)}return n}function Rk(e,t,n,r){const i=bE().load(e),a=[{path:"prometheus.prometheusSpec.scrapeInterval",translationKey:"monitoring.prometheus.config.scrape"},{path:"prometheus.prometheusSpec.evaluationInterval",translationKey:"monitoring.prometheus.config.evaluation"},{path:"prometheus.prometheusSpec.retention",translationKey:"monitoring.prometheus.config.retention"},{path:"prometheus.prometheusSpec.retentionSize",translationKey:"monitoring.prometheus.config.retentionSize"},{path:"prometheus.prometheusSpec.resources.requests.cpu",translationKey:"monitoring.prometheus.config.requests.cpu"},{path:"prometheus.prometheusSpec.resources.requests.memory",translationKey:"monitoring.prometheus.config.requests.memory"},{path:"prometheus.prometheusSpec.resources.limits.cpu",translationKey:"monitoring.prometheus.config.limits.cpu"},{path:"prometheus.prometheusSpec.resources.limits.memory",translationKey:"monitoring.prometheus.config.limits.memory"},{path:"prometheus-node-exporter.resources.requests.cpu",translationKey:"monitoring.prometheus.config.requests.cpu"},{path:"prometheus-node-exporter.resources.requests.memory",translationKey:"monitoring.prometheus.config.requests.memory"},{path:"prometheus-node-exporter.resources.limits.cpu",translationKey:"monitoring.prometheus.config.limits.cpu"},{path:"prometheus-node-exporter.resources.limits.memory",translationKey:"monitoring.prometheus.config.limits.memory"},{path:"grafana.resources.requests.cpu",translationKey:"monitoring.prometheus.config.requests.cpu"},{path:"grafana.resources.requests.memory",translationKey:"monitoring.prometheus.config.requests.memory"},{path:"grafana.resources.limits.cpu",translationKey:"monitoring.prometheus.config.limits.cpu"},{path:"grafana.resources.limits.memory",translationKey:"monitoring.prometheus.config.limits.memory"},{path:"alertmanager.alertmanagerSpec.retention",translationKey:"monitoring.prometheus.config.retention"},{path:"alertmanager.alertmanagerSpec.resources.requests.cpu",translationKey:"monitoring.prometheus.config.requests.cpu"},{path:"alertmanager.alertmanagerSpec.resources.requests.memory",translationKey:"monitoring.prometheus.config.requests.memory"},{path:"alertmanager.alertmanagerSpec.resources.limits.cpu",translationKey:"monitoring.prometheus.config.limits.cpu"},{path:"alertmanager.alertmanagerSpec.resources.limits.memory",translationKey:"monitoring.prometheus.config.limits.memory"}];return a.forEach((e=>{(0,_d.Jt)(i,e.path)||n.push(t["i18n/t"]("validation.required",{key:t["i18n/t"](e.translationKey)}))})),n}function Ok(e,t,n,r){const i=bE().load(e),a=[{path:"fluentbit.resources.requests.cpu",translationKey:"monitoring.prometheus.config.requests.cpu"},{path:"fluentbit.resources.requests.memory",translationKey:"monitoring.prometheus.config.requests.memory"},{path:"fluentbit.resources.limits.cpu",translationKey:"monitoring.prometheus.config.limits.cpu"},{path:"fluentbit.resources.limits.memory",translationKey:"monitoring.prometheus.config.limits.memory"},{path:"fluentd.resources.requests.cpu",translationKey:"monitoring.prometheus.config.requests.cpu"},{path:"fluentd.resources.requests.memory",translationKey:"monitoring.prometheus.config.requests.memory"},{path:"fluentd.resources.limits.cpu",translationKey:"monitoring.prometheus.config.limits.cpu"},{path:"fluentd.resources.limits.memory",translationKey:"monitoring.prometheus.config.limits.memory"}];return a.forEach((e=>{(0,_d.Jt)(i,e.path)||n.push(t["i18n/t"]("validation.required",{key:t["i18n/t"](e.translationKey)}))})),n}function Ik(e=[],t,n,r){const i=t["i18n/t"];return 0===e.length&&n.push(i("validation.required",{key:i("harvester.ipPool.tabs.range")},!0)),e.map((e=>{e.subnet||n.push(i("validation.required",{key:i("harvester.ipPool.subnet.label")},!0))})),n}function Lk(e,t,n,r,i){return/^[a-f0-9]{128}$/i.test(e)||n.push(t["i18n/t"]("harvester.validation.hash.sha512")),n}var Dk={imageUrl:fk.b8,dataVolumeSize:xk,vmNetworks:wk,vmDisks:Ek,fileRequired:fk._X,backupTarget:Nk,ntpServers:Ck,volumeSize:Tk,rancherMonitoring:Rk,rancherLogging:Ok,ranges:Ik,hashSHA512:Lk};function Pk(e){r.KR;n(e),e.metadata=a(8330),e.metadata.icon=a(99086),e.addProduct(a(62261)),e.addDashboardStore(QE.config.namespace,QE.specifics,QE.config),e.addDashboardStore(pk.config.namespace,pk.specifics,pk.config,pk.init),e.validators=Dk,e.addRoutes(VE),e.register("component","NavHeaderRight",(0,i.defineAsyncComponent)((()=>a.e(530).then(a.bind(a,61530)))))}var Mk=Pk}(),o}()})); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.js.map new file mode 100644 index 00000000..f05b33e4 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.js","mappings":"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AAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAC1B,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACtF,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACtF,IAAU,IAAM,IAAU,IAC1B,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,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UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,UACA,SACA,WAGIC,EAAgB,CACpB,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,QAGIC,EAAiB,CACrB,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,OAGF,MAAO,CACL/+Z,KAAM,OACNy4Z,QAAS,CAAE,MACXhF,SAAU,CACR8D,SAAU,wBACVrtS,QAAS2zS,EACTmB,QAASN,EACTO,SAAU,IACLL,KACAC,EAEH,MACA,WACGC,KACAC,IAGP3zX,SAAU,CACRozX,EACA52Q,EAAK6pQ,UACLgN,EACAH,EACA12Q,EAAK6qQ,kBACLyL,EACAS,EACAR,EACAC,EACAC,EACAN,GAGN,CAEA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,CAAErG,MAAO,iBACT,CAAEA,MAAO,yFACT,CAAEA,MAAO,wFAEXC,UAAW,GAGP6N,EAAe,CACnBzuW,UAAW,OACX2gW,MAAO,eACPrpZ,IAAK,IACLmrZ,SAAU,CAAEvpS,QACR,0FAEJ9+E,SAAU,CACR,CACEumX,MAAO,OACPC,UAAW,GAEbhqQ,EAAKwwQ,QAAQmH,EAAS,CAAEvuW,UAAW,WACnC,CACEA,UAAW,SACX2gW,MAAO,SAETY,EACA3qQ,EAAK4qQ,uBAIHM,EAAa,CACjB9hW,UAAW,QACX2gW,MAAO5hU,EAAMukR,SAAS6qD,GAAgBv3Q,EAAKupQ,SAC3CS,UAAW,GAGP8N,EAAiB3vU,EAAMukR,SAAS6qD,GAAgBv3Q,EAAKupQ,SAAW,UAGhE6P,EAAoB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,UAIIC,EAAiB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,UAGIC,EAAa,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,gBAGIC,EAAiB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,YAGIzC,EAAW,CACf,OACA,QACA,UACA,UACA,QAII0C,EAAW,CAAE,WAEbC,EAAe,CACnBz1Z,KAAMq1Z,EACN/2S,QAAS82S,EACThC,QAASN,EACTO,SAAUmC,EACVE,YAAaJ,GAGTK,EAAoB,CACxBvwW,UAAW,oBACX4gW,UAAW,EACX6B,SAAU,CAER+N,MAAOL,GACTxP,MAAO5hU,EAAM9wF,OACX,KACA,eACA,SACA,UACA,aACA,YACA2oJ,EAAKupQ,SACLphU,EAAMwgU,UAAU,sBAGdsP,EAAsB,CAC1B0B,EACA9B,EACAsB,EACAxO,EACA3qQ,EAAK4qQ,qBACLgN,EACAD,GAGIO,EAAqB,CAIzB9H,SAAU,CACR,CACErG,MAAO,IACPrpZ,IAAK,KAEP,CACEqpZ,MAAO,KACPrpZ,IAAK,MAEP,CACEirZ,cAAe,wBACfjrZ,IAAK,MAGTmrZ,SAAU4N,EACVj2X,SAAUy0X,EAAoB5ga,OAAO,CACnC,CACE0yZ,MAAO,KACPrpZ,IAAK,KACLmrZ,SAAU4N,EACVj2X,SAAUy0X,EAAoB5ga,OAAO,CAAE,SACv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,KACPrpZ,IAAK,KACL0pZ,QAAS,IACT5mX,SAAU,CACRw8G,EAAKmqQ,iBACLnqQ,EAAKqqQ,oBAGTyR,gBAAiB,CACf9lW,MAAO,SACP+zV,MAAO/pQ,EAAKypQ,UAALzpQ,kGASPgqQ,UAAW,GAEb+R,aAAc,CACZ3yW,UAAW,OACX2gW,MAAO,8BAKPiS,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGAxyX,UASF,SAAS0hB,EAAI00F,GACX,MAAM73D,EAAQ63D,EAAK73D,MACbk0U,EAAQ9Q,EAAMvrQ,GACds8Q,EAAgB,CAAEvS,MAAO,gCACzBwS,EAAe,kBACfC,EAAiB,oBACjBjT,EAAW,0BACXoO,EAAU,CACd33Q,EAAKmqQ,iBACLnqQ,EAAKqqQ,mBAGP,MAAO,CACLjyZ,KAAM,MACNi2Z,kBAAkB,EAClBjE,QAAS,UACTyB,SAAU,CAAE4Q,iBAAkB,WAC9BvM,iBAAkB,CAGhBuM,iBAAkB,gBACpBj5X,SAAU,CACR64X,EAAMV,cACNW,EAGAD,EAAMP,gBACN,CACE1yW,UAAW,cACX2gW,MAAO,kBACPC,UAAW,GAEb,CACE5gW,UAAW,iBACX2gW,MAAO,MAAQR,EACfS,UAAW,GAEbqS,EAAMR,wBACN,CACEzyW,UAAW,kBACXgnW,SAAU,CACR,CAAErG,MAAO,KAAOmS,EAAe5ga,KAAK,KAAO,KAC3C,CAAEyuZ,MAAO,SAAWoS,EAAgB7ga,KAAK,KAAO,OASpD+ga,EAAMN,aACN,CACE3yW,UAAW,YACX2gW,MAAO,OAASqS,EAAW9ga,KAAK,KAAO,QAGzC,CACEyuZ,MAAO,IACPrpZ,IAAK,QACL8iC,SAAU,CACR64X,EAAMV,cACNU,EAAMT,SACNS,EAAMX,UACNW,EAAMP,mBACHnE,EAIH,CACE5N,MAAO,mBACPrpZ,IAAK,KACLspZ,UAAW,EACX6B,SAAU,CAAEwL,SAAU,gBACtB7zX,SAAU,IACLm0X,EACH,CACEvuW,UAAW,SAGX2gW,MAAO,OACP+F,gBAAgB,EAChBjC,YAAY,KAIlBwO,EAAM1C,oBAGV,CACE5P,MAAO5hU,EAAMwgU,UAAU,KACvBjoZ,IAAK,OACLspZ,UAAW,EACXI,QAAS,IACT5mX,SAAU,CACR,CACE4lB,UAAW,UACX2gW,MAAOyS,GAET,CACEzS,MAAO,KACP+F,gBAAgB,EAChBjC,YAAY,EACZ7D,UAAW,EACX6B,SAAU,CACR8D,SAAU,UACVrtS,QAASi6S,EACTp6V,UAAW85V,EAAe3ga,KAAK,MAEjCkoC,SAAU,CACR,CACEumX,MAAO,eACP3gW,UAAW,gBAEVuuW,EACH0E,EAAMP,oBAKd,CACE1yW,UAAW,eACX2gW,MAAO,OAASiS,EAAK1ga,KAAK,KAAO,SAIzC,CAEAvM,EAAOD,QAAUw8D,C,oBCttBjB,SAASw8F,EAAK9H,GACZ,MAAMq2Q,EAAQ,CACZjtW,UAAW,QACXgnW,SAAU,CAAE,CAAErG,MAAO,sBAGjB2S,EAAe,CACnBtzW,UAAW,QACXgnW,SAAU,CACR,CACErG,MAAO,OACPrpZ,IAAK,OAGTmrZ,SAAU,qCAGNqK,EAAS,CACb9sW,UAAW,SACXgnW,SAAU,CACR,CACErG,MAAO,OACPrpZ,IAAK,OAEP,CACEqpZ,MAAO,OACPrpZ,IAAK,OAEP,CACEqpZ,MAAO,KACPrpZ,IAAK,IACL0pZ,QAAS,OAEX,CACEL,MAAO,KACPrpZ,IAAK,IACL0pZ,QAAS,OAEX,CACEL,MAAO,MACPrpZ,IAAK,MACL8iC,SAAU,CACRw8G,EAAKkqQ,iBACLmM,EACAqG,IAGJ,CACE3S,MAAO,MACPrpZ,IAAK,MACL8iC,SAAU,CACRw8G,EAAKkqQ,iBACLmM,EACAqG,IAGJ,CACE3S,MAAO,IACPrpZ,IAAK,IACL0pZ,QAAS,MACT5mX,SAAU,CACRw8G,EAAKkqQ,iBACLmM,EACAqG,IAGJ,CACE3S,MAAO,IACPrpZ,IAAK,IACL0pZ,QAAS,MACT5mX,SAAU,CACRw8G,EAAKkqQ,iBACLmM,EACAqG,MAKRA,EAAal5X,SAAW,CACtBw8G,EAAK+qQ,cACLmL,GAGF,MAAMyG,EAAiB,CAErB,aACA,WACA,WACA,WACA,WACA,WACA,OACA,MACA,QACA,SACA,UACA,SACA,MACA,YACA,SACA,eACA,aACA,SACA,OACA,MACA,OACA,SACA,MACA,MAEA,UACA,eAEIC,EAA0BD,EAAe/qa,KAAKO,GAAM,GAAGA,OAEvD0qa,EAAiB,CACrB,WACA,KACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,YACA,UACA,WACA,KACA,UACA,OACA,OACA,SACA,UACA,YACA,WACA,UACA,QACA,QACA,UACA,MACA,WACA,MACA,OACA,KACA,aACA,SACA,KACA,YACA,KACA,OACA,UACA,QACA,MACA,OACA,KACA,WACA,OACA,WACA,UACA,SACA,MACA,OACA,SACA,QACA,SACA,OACA,OACA,QACA,OACA,MACA,UACA,MACA,OACA,QACA,OACA,SAGI5G,EAAW,CACf3zS,QAASu6S,EACTxF,SACEsF,EACGtla,OAAOula,GACPvla,OAAO,CAEN,QACA,OACA,UACA,QAEA,WACA,gBACA,mBACA,WAENs4Z,SAAU,4BAGZ,MAAO,CACLv3Z,KAAM,OACNyzZ,SAAUoK,EACVzyX,SAAU,CACR0yX,EACAl2Q,EAAKuqQ,QACH,eACA,OACA,CACEkI,YAAa,WACbzI,UAAW,IAGfhqQ,EAAKuqQ,QACH,WACA,IAAK,CAAE/mX,SAAU,CACf,CACEivX,YAAa,WAC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AAM27B,EAAOi2X,EAAqB5xZ,GAC5BukC,EAAS,KACV5I,EAAKga,QAAU,GAAK,MACrB31C,EAAKrF,KAAKyV,GAAM3H,EAAO2H,KAAI/L,KAAK,KAAO,IAC3C,OAAOkgC,CACT,CAWA,SAASkjY,EAAO1+Q,GACd,MAAMi2Q,EAAW,CACf,WACA,MACA,KACA,SACA,OACA,QACA,QACA,UACA,WACA,KACA,OACA,WACA,SACA,OACA,OACA,MACA,YACA,SAEA,UACA,QACA,MACA,MACA,WACA,SACA,KACA,KACA,UACA,SACA,YACA,WACA,OACA,MACA,QACA,SACA,SACA,UACA,YACA,MAGA,KACA,OACA,KACA,WACA,UACA,SACA,MACA,SACA,SACA,SACA,OACA,KAEA,MACA,OACA,SACA,MACA,MACA,OACA,OACA,QACA,OACA,SAGI0I,EAAoB,CAExB3oW,MAAO,UACPt8D,MAAO,sCAGHkla,EAAwB,CAC5B,KACA,OACA,QACA,OACA,SACA,QACA,IACA,IACA,IACA,OACA,OACA,OACA,QAGI9H,EAAW,CACf,OACA,QACA,OACA,OACA,OACA,KACA,QACA,WACA,YACA,MACA,QAGI+H,EAAsB,CAC1B,WACA,uBACA,mBAKIC,EAAc,CAElB,OACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,MACA,OACA,QACA,SACA,YACA,aACA,UACA,QACA,SACA,UACA,SACA,OACA,SACA,OACA,SAEA,SACA,UACA,OACA,QACA,MACA,QACA,MACA,QACA,YACA,MACA,SACA,UAEA,UAGIC,EAAW,CAKf,MACA,MACA,QACA,UACA,OACA,eACA,MACA,MACA,OACA,SACA,SACA,YACA,SACA,UACA,aACA,YACA,KACA,MACA,MACA,SACA,OACA,QACA,MACA,QACA,WACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,aAGIC,EAAe,CACnB18S,QAAS2zS,EACTmB,QAASN,EACTO,SAAU0H,EACV,oBAAqBF,GAIjBI,EACJj/Q,EAAKuqQ,QAAQ,aAAc,OAAQ,CACjC/mX,SAAU,CAAC,UAGT+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CACb9F,SAAU,CACRoQ,EACAnF,EACAD,EACAmF,EACAtF,EACAqF,EACAG,IAIJ,MAAO,CACLroa,KAAM,KACNy4Z,QAAS,CACP,KACA,MAEFhF,SAAUmT,EACV5U,QAAS,OACT8F,iBAAkB,CAChB,yBAA0B,WAE5B1sX,SAAU,CACRm7X,EACAzI,EACA3L,EACA4U,EACAiB,EACA,CAGEpqW,MAAO,OACP+zV,MAAO,MACPrpZ,IAAK,MACLspZ,UAAW,EACXxmX,SAAU,CACR27X,EAEAoB,EACAtF,EACAqF,EACAG,EACA9H,IAGJwH,EACAD,EACAG,EACAxI,EACAc,EACA0G,EACAS,GAGN,CAEA/wa,EAAOD,QAAU4va,C,oBCxmBjB,SAASnlU,EAAGymD,GACV,MAAM82Q,EAAW,CACf,OACA,QACA,OACA,OAEI4J,EAAY,CAChB,SACA,MACA,QACA,UACA,OACA,OACA,MACA,OACA,MACA,QACA,QACA,UACA,OACA,UACA,UAEI/vT,EAAQ,CACZ,OACA,OACA,YACA,aACA,QACA,UACA,UACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,UACA,QAEIssT,EAAM,CACV,QACA,OACA,OACA,QACA,WACA,UACA,QACA,OACA,cACA,MACA,OACA,KACA,OACA,KACA,SACA,YACA,MACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,OAEIhH,EAAW,CACf3zS,QAAS26S,EACTj5Z,KAAM2sG,EACNymT,QAASN,EACTO,SAAUqJ,GAEZ,MAAO,CACLtoa,KAAM,KACNy4Z,QAAS,CAAE,UACXhF,SAAUoK,EACV7L,QAAS,KACT5mX,SAAU,CACRw8G,EAAK2qQ,oBACL3qQ,EAAK4qQ,qBACL,CACExhW,UAAW,SACXgnW,SAAU,CACRpwQ,EAAKqqQ,kBACLrqQ,EAAKmqQ,iBACL,CACEJ,MAAO,IACPrpZ,IAAK,OAIX,CACE0oD,UAAW,SACXgnW,SAAU,CACR,CACErG,MAAO/pQ,EAAK0pQ,YAAc,MAC1BM,UAAW,GAEbhqQ,EAAK+qQ,gBAGT,CAAEhB,MAAO,MAET,CACE3gW,UAAW,WACXuiW,cAAe,OACfjrZ,IAAK,cACLmtZ,YAAY,EACZrqX,SAAU,CACRw8G,EAAKkrQ,WACL,CACE9hW,UAAW,SACX2gW,MAAO,KACPrpZ,IAAK,KACL2rZ,YAAY,EACZR,SAAUoK,EACV7L,QAAS,WAMrB,CAEAr7Z,EAAOD,QAAUyqG,C,oBCrIjB,SAAS0zD,EAAOjN,GACd,MAAMi2Q,EAAW,CACf,OACA,UACA,cACA,cACA,YACA,cACA,iBACA,eACA,eACA,aACA,cACA,SACA,OACA,OACA,UACA,UACA,SACA,YACA,iBACA,WACA,UACA,sBACA,sBACA,QACA,UACA,SACA,UACA,UACA,QACA,UACA,MACA,MACA,WACA,QACA,OACA,QACA,WACA,UACA,KACA,OACA,UACA,QACA,UACA,MACA,KACA,aACA,aACA,SACA,MACA,UACA,YACA,SACA,SACA,SACA,SACA,eACA,QACA,SACA,YACA,MACA,WACA,QACA,WACA,UACA,SACA,QACA,OACA,QACA,OACA,OACA,YACA,aACA,WACA,OACA,UACA,OACA,OACA,QACA,SACA,QACA,MACA,YACA,OACA,QACA,OACA,UACA,UACA,OACA,WACA,MACA,MACA,SACA,SACA,aACA,OACA,UACA,YACA,QACA,MACA,OACA,OACA,WACA,WACA,WACA,QACA,OACA,UACA,UACA,QACA,SACA,QACA,SACA,UACA,OACA,YACA,SACA,UACA,YACA,gBACA,SACA,OACA,YACA,QACA,WACA,iBACA,kBACA,iBACA,YACA,YACA,OACA,OACA,MACA,QACA,WACA,QACA,UACA,OACA,QACA,OACA,YACA,YACA,UACA,cACA,QACA,OACA,OACA,gBACA,OACA,SACA,QACA,YACA,SACA,WACA,OACA,gBACA,kBACA,aACA,aACA,aACA,mBACA,QACA,aAEF,MAAO,CACL79Z,KAAM,SACNi2Z,kBAAkB,EAClBxC,SAAUoK,EACVzyX,SAAU,CACRw8G,EAAK2qQ,oBACL3qQ,EAAK4qQ,qBACL5qQ,EAAKmqQ,iBACLnqQ,EAAKqqQ,kBACLrqQ,EAAK8qQ,YACL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,OACH,EAAG,WACH,EAAG,aAGP,CACE2gW,MAAO,CACL,SACA,MACAkZ,GAEF75W,UAAW,CACT,EAAG,UACH,EAAG,eAEL5lB,SAAU,CACRi7X,EACAz+Q,EAAK2qQ,oBACL3qQ,EAAK4qQ,uBAGT,CAGEe,cAAe,wBACf3B,UAAW,GAEb,CACED,MAAO,CACL,MAAQmZ,EAAmB,QAC3BljR,EAAKwpQ,oBACL,aAEFpgW,UAAW,CAAE,EAAG,kBAChByiW,SAAUoK,EACVzyX,SAAU,CACR,CACE4lB,UAAW,SACX2gW,MAAO,KACPrpZ,IAAK,KACLmrZ,SAAUoK,EACVjM,UAAW,EACXxmX,SAAU,CACR4/X,EACApjR,EAAKmqQ,iBACLnqQ,EAAKqqQ,kBACLhwC,EACAr6N,EAAK4qQ,uBAGT5qQ,EAAK2qQ,oBACL3qQ,EAAK4qQ,uBAGTvwC,EACA+oD,GAGN,CAEAr0a,EAAOD,QAAU6/J,C,oBC7RjB,MAAM46P,EAAW,2BACX0M,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIa,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAIInmT,EAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAGI0yT,EAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAGIC,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGIC,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eAC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CACjBvwW,UAAW,WACX2gW,MAAO,gBAET8R,wBAAyB,CACvB7lW,MAAO,gBACP+zV,MAAO,KACPrpZ,IAAK,KACL0pZ,QAAS,IACT5mX,SAAU,CACRw8G,EAAKmqQ,iBACLnqQ,EAAKqqQ,oBAGTyR,gBAAiB,CACf9lW,MAAO,SACP+zV,MAAO/pQ,EAAKypQ,UAALzpQ,kGASPgqQ,UAAW,GAEb+R,aAAc,CACZ3yW,UAAW,OACX2gW,MAAO,8BAKPiS,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGAxyX,UAGIk8X,EAAmB5J,EAAe7ka,OAAO8ka,GAW/C,SAAShrQ,EAAKnR,GACZ,MAAMq8Q,EAAQ9Q,EAAMvrQ,GACd+lR,EAAqBD,EAErBvJ,EAAe,kBACfhT,EAAW,UACXyc,EAAkB,IAAMzc,EAAW,QAAUA,EAAW,OAIxD0c,EAAQ,GAAUC,EAAc,GAEhCC,EAAc,SAAS1tZ,GAC3B,MAAO,CAEL2wC,UAAW,SACX2gW,MAAO,KAAOtxY,EAAI,MAAQA,EAE9B,EAEM2tZ,EAAa,SAAShua,EAAM2xZ,EAAOC,GACvC,MAAO,CACL5gW,UAAWhxD,EACX2xZ,MAAOA,EACPC,UAAWA,EAEf,EAEMqc,EAAc,CAClB1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MAAO,wEAEHmV,EAAgB,yBAChBvuT,EAAQ,CACZ,MACA,QACA,OACA,WACA,SACA,QACA,OACA,SACA,UACA,UACA,OACA,OACA,OACA,OACA,SAEIssT,EAAM,CACV,QACA,SACA,SACA,UACA,QACA,SACA,MACA,QACA,WACA,SACA,UACA,KACA,KACA,SACA,OACA,OACA,OACA,QACA,SACA,MACA,OACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,WACA,SACA,YACA,OACA,gBACA,KACA,SACA,YACA,WACA,WACA,SACA,OACA,OACA,KACA,MACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,kBACA,WACA,aACA,UACA,OACA,YACA,OACA,SACA,SACA,WACA,mBACA,cACA,WACA,YACA,YACA,YACA,UACA,WACA,UACA,QACA,uBACA,WACA,oBACA,oBACA,kBACA,cACA,kBACA,WACA,WACA,YACA,oBACA,eACA,sBACA,gBACA,SACA,SACA,SACA,oBACA,UACA,WACA,mBACA,kBACA,QACA,eACA,4BACA,iBACA,oBACA,2BACA,YACA,eACA,gBACA,UACA,aACA,uBACA,0BACA,wBACA,uBACA,gBACA,mBACA,YACA,aACA,gBACA,iBACA,iBAEInG,EAAW,CACf,QACA,OACA,QACA,OACA,MACA,MACA,KACA,QAEI4J,EAAY,CAChB,kBACA,mBACA,gBACA,iBACA,iBAEIzK,EAAW,CACf,oBAAqB,CACnB,OACA,SAEFtG,SAAUuP,EACV58S,QAAS26S,EACT7F,QAASN,EACTO,SAAUqJ,EACV18Z,KAAM2sG,GAEFo4T,EAAiB,CACrBpZ,SAAUuP,EACV58S,QAAS,CACP,aACA,SACA,YACA,oBAGJ,MAAO,CACLlqH,KAAM,cACNy4Z,QAAS,CACP,KACA,OACA,QACA,UACA,iBAEFhF,SAAUoK,EACV7L,QAAS,KACT5mX,SAAU,CACRslY,EACA9oR,EAAK2qQ,oBACL3qQ,EAAK4qQ,qBACL5qQ,EAAK+qQ,cACL/qQ,EAAKqqQ,kBACLrqQ,EAAKmqQ,iBACL,CACE/gW,UAAW,SACXgnW,SAAU,CACR,CACErG,MAAO,KACPrpZ,IAAK,IACL0pZ,QAAS,MACT5mX,SAAU,CAAEw8G,EAAKkqQ,qBAIvB,CACE9gW,UAAW,OACX2gW,MAAO,eACPrpZ,IAAK,IACLmrZ,SAAU,CAAEvpS,QACR,kFAEJ9+E,SAAU,CACR,CACEumX,MAAO,OACPC,UAAW,GAEbhqQ,EAAKwwQ,QAAQxwQ,EAAKqqQ,kBAAmB,CAAEjhW,UAAW,WAClD,CACEA,UAAW,SACX2gW,MAAO,QACPrpZ,IAAK,IACL0pZ,QAAS,OAEXpqQ,EAAK2qQ,oBACL3qQ,EAAK4qQ,uBAGT,CACExhW,UAAW,QACX2gW,MAAO,IAAMgf,EAAezmT,QAAQhnH,KAAK,KAAO,OAChDoF,IAAK,SACLmtZ,YAAY,EACZhC,SAAUkd,EACVvlY,SAAU,CAAEw8G,EAAKmrQ,wBAEnB,CACEpB,MAAO,MAAQ/pQ,EAAKwpQ,oBACpBQ,UAAW,IAInB,CAEAj7Z,EAAOD,QAAU+5a,C,mBCpPjB,SAAS31Q,EAAKlT,GACZ,MAAM73D,EAAQ63D,EAAK73D,MACb8tU,EAAW,CACf,MACA,SACA,QACA,MACA,QACA,OACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,UACA,WACA,MACA,QACA,WACA,UACA,UACA,SACA,MACA,KACA,OACA,OACA,OACA,QACA,WACA,aACA,YACA,cACA,WACA,aACA,MACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,MACA,UACA,OACA,SACA,WACA,OACA,WACA,WACA,WACA,gBACA,gBACA,aACA,WACA,eACA,eACA,YACA,cACA,UACA,cACA,iBACA,mBACA,cACA,WACA,WACA,WACA,gBACA,gBACA,aACA,cACA,aACA,QACA,OACA,SACA,OACA,OACA,KACA,MACA,KACA,QACA,MACA,QACA,OACA,OACA,OACA,OACA,KACA,UACA,SACA,OACA,SACA,QACA,YACA,MACA,QACA,KACA,KACA,MACA,QACA,SACA,SACA,SACA,SACA,KACA,KACA,OACA,KACA,MACA,MACA,OACA,UACA,KACA,MACA,MACA,OACA,UACA,OACA,MACA,MACA,QACA,SACA,YACA,OACA,MACA,KACA,YACA,KACA,KACA,OACA,OACA,UACA,WACA,WACA,WACA,OACA,OACA,MACA,SACA,UACA,QACA,SACA,UACA,YACA,SACA,QACA,MACA,SACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,WACA,aACA,YACA,UACA,cACA,cACA,WACA,aACA,aACA,QACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,SACA,aACA,OACA,SACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,OACA,UACA,MACA,OACA,OACA,QACA,KACA,WACA,KACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,QACA,MACA,QACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,QACA,QACA,MACA,MACA,OAII+S,EAAkB,uBAClBC,EAAgB,CACpBtZ,SAAU,SACVrtS,QAAS2zS,EAAS36Z,KAAK,MAEnB+6Z,EAAQ,CACZjtW,UAAW,QACX2gW,MAAO,UACPrpZ,IAAK,MACLmrZ,SAAUod,GAENC,EAAS,CACbnf,MAAO,OACPrpZ,IAAK,MAGDy1Z,EAAM,CAAE/F,SAAU,CACtB,CAAErG,MAAO,QACT,CAAEA,MAAO5hU,EAAM9wF,OACb,iDAGA,0BAEF,CACE0yZ,MAAO,gBACPC,UAAW,KAGTmf,EAAkB,CACtBnpR,EAAKkqQ,iBACLmM,EACAF,GAEIiT,EAAe,CACnB,IACA,KACA,KACA,KACA,IACA,IACA,KAOIC,EAAmB,CAAC5iT,EAAQx+D,EAAM8xD,EAAQ,SAC9C,MAAMw9P,EAAoB,QAAVx9P,EACZA,EACA5xB,EAAM9wF,OAAO0iH,EAAO9xD,GACxB,OAAOkgC,EAAM9wF,OACX8wF,EAAM9wF,OAAO,MAAOovH,EAAQ,KAC5Bx+D,EACA,oBACAsvT,EACA,oBACAx9P,EACAivT,EACD,EAOGM,EAAY,CAAC7iT,EAAQx+D,EAAM8xD,IACxB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CT5mX,SAAUw8G,EAAKqqQ,kBAAkB7mX,SAASnsC,OAAOg/Z,KAE7CmU,EAAUxqR,EAAKqrQ,kBAAkB,CACrCtB,MAAO,mBACPrpZ,IAAK,gBACL8iC,SAAUw8G,EAAKqqQ,kBAAkB7mX,SAASnsC,OAAOg/Z,KAG7CoU,EAAa,UACbvU,EAAS,CACblgW,MAAO,SACPo6V,SAAU,CACRma,EACAD,EACAE,IAGE7R,EAAS,CACb3iW,MAAO,SACPo6V,SAAU,CACR,CAAErG,MAAO,+BACT,CAAEA,MAAO,iCACT,CAAEA,MAAO,6CAET,CAAEA,MAAO,+EAEXC,UAAW,GAEP8M,EAAW,CACf,QACA,OACA,QAEImG,EAAM,CAGV,YACA,UACA,WACA,eACA,2BACA,WACA,aACA,gBACA,YAGA,MACA,OACA,OACA,UACA,eACA,QACA,UACA,eAMA,QACA,WACA,MACA,KACA,SACA,OACA,UACA,QACA,WACA,OACA,QACA,QACA,QACA,QACA,WACA,UACA,UACA,KACA,SACA,OACA,SACA,QACA,aACA,SACA,aACA,QACA,YACA,WACA,OACA,OACA,UACA,QACA,UACA,QACA,MACA,UACA,OACA,SACA,OACA,KACA,aACA,aACA,YACA,MACA,UACA,YACA,QACA,WACA,OACA,UACA,QACA,MACA,QACA,SACA,KACA,UACA,YACA,SACA,WACA,OACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,MACA,OACA,QACA,MACA,SAGIyD,EAAY,CAGhB,UACA,iBACA,qBACA,kBACA,gBACA,cACA,iBACA,2BACA,yBACA,kBACA,yBACA,eACA,YACA,oBACA,sBACA,kBACA,gBACA,iBACA,YACA,qBACA,iBACA,eACA,mBACA,2BACA,mBACA,kBACA,gBACA,iBACA,mBACA,mBACA,uBACA,sBACA,gBACA,oBACA,iBACA,aACA,iBACA,yBACA,2BACA,kCACA,6BACA,0BACA,oBACA,4BACA,yBACA,wBACA,gBACA,mBACA,mBACA,sBACA,cACA,gBACA,gBACA,UACA,aACA,aACA,mBACA,cACA,mBACA,WACA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CA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,OAGI5J,EAAW,CACf,YACA,WACA,QACA,OACA,iBACA,QAMInmT,EAAQ,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,SAGIslT,EAAW,CACftG,SAAU,sBACVrtS,QAASqqT,EACTtV,SAAUqJ,EACVtJ,QAASN,EACT9yZ,KAAM2sG,GAGFi8T,EAAS,CACbxjX,UAAW,OACX2gW,MAAO,kBAGHsM,EAAQ,CACZjtW,UAAW,QACX2gW,MAAO,KACPrpZ,IAAK,KACLmrZ,SAAUoK,EACV7L,QAAS,KAGLyiB,EAAkB,CACtB9iB,MAAO,OACPC,UAAW,GAGPkM,EAAS,CACb9sW,UAAW,SACX5lB,SAAU,CAAEw8G,EAAKkqQ,kBACjBkG,SAAU,CACR,CACErG,MAAO,yCACPrpZ,IAAK,MACL8iC,SAAU,CACRw8G,EAAKkqQ,iBACL0iB,GAEF5iB,UAAW,IAEb,CACED,MAAO,yCACPrpZ,IAAK,MACL8iC,SAAU,CACRw8G,EAAKkqQ,iBACL0iB,GAEF5iB,UAAW,IAEb,CACED,MAAO,8BACPrpZ,IAAK,MACL8iC,SAAU,CACRw8G,EAAKkqQ,iBACL0iB,EACAC,EACAxW,IAGJ,CACEtM,MAAO,8BACPrpZ,IAAK,MACL8iC,SAAU,CACRw8G,EAAKkqQ,iBACL0iB,EACAC,EACAxW,IAGJ,CACEtM,MAAO,eACPrpZ,IAAK,IACLspZ,UAAW,IAEb,CACED,MAAO,eACPrpZ,IAAK,IACLspZ,UAAW,IAEb,CACED,MAAO,4BACPrpZ,IAAK,KAEP,CACEqpZ,MAAO,4BACPrpZ,IAAK,KAEP,CACEqpZ,MAAO,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UAChCrlF,OAAO22a,GACP32a,OAAOk2a,GACPl2a,OAAOu2a,GAEd,CAEA7+a,EAAOD,QAAUk7J,C,mBClZjB,SAASikR,EAAKjuR,GACZ,MAAM73D,EAAQ63D,EAAK73D,MACb8iV,EAAkB,CACtB7hX,UAAW,wBACX4gW,UAAW,EACXD,MAAO5hU,EAAM9wF,OACX,KACA,YACA2oJ,EAAKupQ,SACLphU,EAAMwgU,UAAU,WAEdulB,EAAgB,wCAChBjY,EAAW,CACf,WACA,KACA,QACA,QACA,SACA,MACA,QACA,QACA,WACA,QACA,KACA,MACA,OACA,OACA,SACA,QACA,QACA,KACA,MACA,KACA,OACA,KACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,WACA,OACA,MACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,QACA,OACA,MACA,OACA,SACA,SACA,UACA,MACA,UACA,QACA,QACA,SAEIa,EAAW,CACf,OACA,QACA,OACA,OACA,KACA,OAEIiI,EAAW,CAEf,QAEA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,SACA,UACA,QACA,QACA,YACA,aACA,KACA,MACA,QACA,QACA,OACA,OACA,UACA,WACA,SACA,eACA,sBACA,oBACA,iBACA,WAEA,UACA,aACA,YACA,SACA,OACA,OACA,UACA,iBACA,gBACA,mBACA,OACA,SACA,QACA,UACA,eACA,iBACA,eACA,QACA,kBACA,eACA,cACA,SACA,WACA,UACA,aACA,OACA,iBACA,eACA,OACA,SACA,WACA,eACA,aACA,oBAEIpuT,EAAQ,CACZ,KACA,MACA,MACA,MACA,OACA,QACA,KACA,MACA,MACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,SACA,SACA,SACA,OAEF,MAAO,CACLv4G,KAAM,OACNy4Z,QAAS,CAAE,MACXhF,SAAU,CACR8D,SAAU3vQ,EAAKupQ,SAAW,KAC1BvlZ,KAAM2sG,EACN2R,QAAS2zS,EACTmB,QAASN,EACTO,SAAU0H,GAEZ3U,QAAS,KACT5mX,SAAU,CACRw8G,EAAK2qQ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E,SAAU,CACRw8G,EAAK2qQ,oBACL3qQ,EAAK4qQ,qBACLsL,EACAl+H,EACAkxI,EACAzL,EACAz9Q,EAAK+qQ,cACLojB,EACAC,KACGC,EACHC,EACAlL,GAGN,CAEAr0a,EAAOD,QAAU2pK,C,oBChLjB,MAAM8yP,EAASvrQ,IACN,CACL07Q,UAAW,CACT1lW,MAAO,OACP+zV,MAAO,cAET4R,cAAe37Q,EAAK4qQ,qBACpBgR,SAAU,CACR5lW,MAAO,SACP+zV,MAAO,mDAET4P,kBAAmB,CACjBvwW,UAAW,WACX2gW,MAAO,gBAET8R,wBAAyB,CACvB7lW,MAAO,gBACP+zV,MAAO,KACPrpZ,IAAK,KACL0pZ,QAAS,IACT5mX,SAAU,CACRw8G,EAAKmqQ,iBACLnqQ,EAAKqqQ,oBAGTyR,gBAAiB,CACf9lW,MAAO,SACP+zV,MAAO/pQ,EAAKypQ,UAALzpQ,kGASPgqQ,UAAW,GAEb+R,aAAc,CACZ3yW,UAAW,OACX2gW,MAAO,8BAKPiS,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGAxyX,UAWF,SAASwvH,EAAKpZ,GACZ,MAAMq8Q,EAAQ9Q,EAAMvrQ,GACduuR,EAAoBpS,EACpBqS,EAAmBtS,EAEnBT,EAAgB,WAChBc,EAAe,kBACfhT,EAAW,0BACXyM,EAAW,CACf5sW,UAAW,WACX2gW,MAAO,OAASR,EAAW,OAC3BS,UAAW,GAGb,MAAO,CACL5xZ,KAAM,OACNi2Z,kBAAkB,EAClBjE,QAAS,SACT5mX,SAAU,CACRw8G,EAAK2qQ,oBACL3qQ,EAAK4qQ,qBAGLyR,EAAMP,gBACN,CACE1yW,UAAW,cACX2gW,MAAO,kBACPC,UAAW,GAEb,CACE5gW,UAAW,iBACX2gW,MAAO,oBACPC,UAAW,GAEbqS,EAAMR,wBACN,CACEzyW,UAAW,eACX2gW,MAAO,OAASiS,EAAK1ga,KAAK,KAAO,OAEjC0uZ,UAAW,GAEb,CACE5gW,UAAW,kBACX2gW,MAAO,KAAOykB,EAAiBlza,KAAK,KAAO,KAE7C,CACE8tD,UAAW,kBACX2gW,MAAO,SAAWwkB,EAAkBjza,KAAK,KAAO,KAElD06Z,EACA,CACEjM,MAAO,KACPrpZ,IAAK,KACL8iC,SAAU,CAAE64X,EAAMP,kBAEpBO,EAAMN,aACN,CACE3yW,UAAW,YACX2gW,MAAO,OAASqS,EAAW9ga,KAAK,KAAO,QAEzC,CAAEyuZ,MAAO,8oCACT,CACEA,MAAO,IACPrpZ,IAAK,QACLspZ,UAAW,EACXxmX,SAAU,CACR64X,EAAMV,cACN3F,EACAqG,EAAMT,SACNS,EAAMP,gBACN97Q,EAAKqqQ,kBACLrqQ,EAAKmqQ,iBACLkS,EAAMX,UACNW,EAAM1C,oBAMV,CACE5P,MAAO,oBACP8B,SAAU,CACR8D,SAAU8L,EACVn5S,QAAS,qBAGb,CACEynS,MAAO,IACPrpZ,IAAK,OACLgtZ,aAAa,EACb7B,SAAU,CACR8D,SAAU,UACVrtS,QAASi6S,EACTp6V,UAAW85V,EAAe3ga,KAAK,MAEjCkoC,SAAU,CACR,CACEumX,MAAO0R,EACPryW,UAAW,WAEb,CACE2gW,MAAO,eACP3gW,UAAW,aAEb4sW,EACAh2Q,EAAKqqQ,kBACLrqQ,EAAKmqQ,iBACLkS,EAAMT,SACNS,EAAMP,kBAGVO,EAAM1C,mBAGZ,CAEA5qa,EAAOD,QAAUsqK,C,mBC7sBjB,SAASC,EAAMrZ,GACb,MAAO,CACL5nJ,KAAM,gBACNy4Z,QAAS,CACP,UACA,gBAEFrtX,SAAU,CACR,CACE4lB,UAAW,cAIX2gW,MAAO,qCACPoC,OAAQ,CACNzrZ,IAAK,gBACL+xZ,YAAa,UAKvB,CAEA1ja,EAAOD,QAAUuqK,C,oBCVjB,SAASK,EAAI1Z,GACX,MAAM73D,EAAQ63D,EAAK73D,MACbqhV,EAAexpR,EAAKuqQ,QAAQ,KAAM,KAClC2L,EAAS,CACb9sW,UAAW,SACXgnW,SAAU,CACR,CACErG,MAAO,IACPrpZ,IAAK,IACL8iC,SAAU,CAAE,CAAEumX,MAAO,UAIrBoV,EAAoB,CACxBpV,MAAO,IACPrpZ,IAAK,IACL8iC,SAAU,CAAE,CAAEumX,MAAO,QAGjB+M,EAAW,CACf,OACA,QAGA,WAGI2X,EAAmB,CACvB,mBACA,eACA,gBACA,oBAGI99T,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,aAGI+9T,EAAqB,CACzB,MACA,MACA,YACA,OACA,QACA,QACA,OACA,QAII/B,EAAiB,CACrB,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,QAMIgC,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,gBAIIC,EAA0B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,kBAKIC,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,iBAGI3E,EAAYyE,EAEZ1Y,EAAW,IACZ0W,KACA+B,GACH9ya,QAAQ0mH,IACAqsT,EAAmB/qa,SAAS0+G,KAGhC0zS,EAAW,CACf5sW,UAAW,WACX2gW,MAAO,cAGH+V,EAAW,CACf12W,UAAW,WACX2gW,MAAO,gDACPC,UAAW,GAGPiU,EAAgB,CACpBlU,MAAO5hU,EAAM9wF,OAAO,KAAM8wF,EAAM2gU,UAAUohB,GAAY,SACtDlgB,UAAW,EACX6B,SAAU,CAAEwL,SAAU6S,IAIxB,SAAS4E,EAAgB97Z,GAAM,WAC7B+7Z,EAAU,KAAEC,GACV,CAAC,GACH,MAAMC,EAAYD,EAElB,OADAD,EAAaA,GAAc,GACpB/7Z,EAAKphB,KAAKoZ,GACXA,EAAKtR,MAAM,WAAaq1a,EAAWnra,SAASoH,GACvCA,EACEika,EAAUjka,GACZ,GAAGA,MAEHA,GAGb,CAEA,MAAO,CACL5S,KAAM,MACNi2Z,kBAAkB,EAElBjE,QAAS,WACTyB,SAAU,CACR8D,SAAU,YACVrtS,QACEwsT,EAAgB7Y,EAAU,CAAE+Y,KAAO3na,GAAMA,EAAEnX,OAAS,IACtDkna,QAASN,EACT9yZ,KAAM2sG,EACN0mT,SAAUuX,GAEZprY,SAAU,CACR,CACEumX,MAAO5hU,EAAM2gU,UAAU+lB,GACvB7kB,UAAW,EACX6B,SAAU,CACR8D,SAAU,UACVrtS,QAAS2zS,EAAS5+Z,OAAOw3a,GACzBzX,QAASN,EACT9yZ,KAAM2sG,IAGV,CACEvnD,UAAW,OACX2gW,MAAO5hU,EAAM2gU,UAAU2lB,IAEzBxQ,EACAjI,EACAE,EACAiJ,EACAn/Q,EAAK+qQ,cACL/qQ,EAAK4qQ,qBACL4e,EACA1J,GAGN,CAEA/wa,EAAOD,QAAU4qK,C,oBChqBjB,SAASh6J,EAAOm4F,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGn4F,OAHM,IAIlB,CAMA,SAASipZ,EAAU9wT,GACjB,OAAOxgG,EAAO,MAAOwgG,EAAI,IAC3B,CAMA,SAASxgG,KAAUJ,GACjB,MAAMukC,EAASvkC,EAAKrF,KAAKyV,GAAM3H,EAAO2H,KAAI/L,KAAK,IAC/C,OAAOkgC,CACT,CAMA,SAASqtX,EAAqB5xZ,GAC5B,MAAM27B,EAAO37B,EAAKA,EAAK/G,OAAS,GAEhC,MAAoB,kBAAT0iC,GAAqBA,EAAKjgC,cAAgBnD,QACnDyH,EAAKuvC,OAAOvvC,EAAK/G,OAAS,EAAG,GACtB0iC,GAEA,CAAC,CAEZ,CAWA,SAASk2X,KAAU7xZ,GAEjB,MAAM27B,EAAOi2X,EAAqB5xZ,GAC5BukC,EAAS,KACV5I,EAAKga,QAAU,GAAK,MACrB31C,EAAKrF,KAAKyV,GAAM3H,EAAO2H,KAAI/L,KAAK,KAAO,IAC3C,OAAOkgC,CACT,CAEA,MAAM0zY,EAAiB5sT,GAAWjrH,EAChC,KACAirH,EACA,MAAMx9G,KAAKw9G,GAAW,KAAO,MAIzB6sT,EAAc,CAClB,WACA,QACAv9a,IAAIs9a,GAGAE,EAAsB,CAC1B,OACA,QACAx9a,IAAIs9a,GAGAG,EAAe,CACnB,MACA,QAIIxjB,EAAW,CAIf,QACA,MACA,iBACA,QACA,QACA,OACA,MACA,KACA,QACA,OACA,QACA,QACA,WACA,cACA,UACA,QACA,SACA,SACA,cACA,KACA,UACA,OACA,OACA,YACA,cACA,qBACA,cACA,QACA,MACA,OACA,MACA,QACA,KACA,SACA,WACA,QACA,SACA,QACA,QACA,kBACA,WACA,KACA,KACA,WACA,cACA,OACA,MACA,WACA,cACA,cACA,OACA,WACA,WACA,WACA,UACA,kBACA,SACA,iBACA,UACA,WACA,gBACA,SACA,SACA,WACA,WACA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,WAOI5iD,EAAW,CACf,QACA,MACA,QAIIqmE,EAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,SAKIC,EAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,2BACA,YAIIC,EAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,OAIIC,EAAe3mB,EACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,YAII4mB,EAAoB5mB,EACxB2mB,EACA,kBACA,kBACA,kBACA,kBACA,mBAMIx5a,EAAWoB,EAAOo4a,EAAcC,EAAmB,KAGnDC,EAAiB7mB,EACr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,EACVzyX,SAAU,CACRw8G,EAAKwwQ,QAAQxwQ,EAAKkrQ,WAAY,CAC5B9hW,UAAW,cACX2gW,MAAO,6CAENsmB,IAGPsB,GACAC,GACA,CACEjmB,cAAe,SACfjrZ,IAAK,IACL8iC,SAAU,IAAK8+X,GACftY,UAAW,MAEVqmB,KACA3P,KACA8P,EACH7X,EACAzC,KACG+a,KACA7U,EACHpkI,EACAkmI,IAGN,CAEAnva,EAAOD,QAAU0rK,C,oBC31BjB,MAAM+uP,EAAW,2BACX0M,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIa,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAIInmT,EAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAGI0yT,EAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAGIC,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGIC,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UAGI7C,EAAY,GAAGrpa,OACnBisa,EACA3yT,EACA0yT,GAWF,SAASnxB,EAAWlyP,GAClB,MAAM73D,EAAQ63D,EAAK73D,MAQbq7U,EAAgB,CAAC9pa,GAAS88P,YAC9B,MAAMt0G,EAAM,KAAOxoJ,EAAM,GAAG2B,MAAM,GAC5BF,EAAMzB,EAAMhG,MAAM0H,QAAQ8mJ,EAAKs0G,GACrC,OAAgB,IAATr7P,CAAU,EAGbsoa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R,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,KACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,IACR,IAAQ,KACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,KACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,SACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,IACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,SACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MAGZ,QACI,MAAAz4b,CAAOtH,GAEH,GAAKA,GAAK,IAAUA,GAAK,IACrB,OAAOA,EAIX,MAAMggc,EAASD,GAAW//b,GAC1B,YAAejU,IAAXi0c,EACOA,EAIJ,SAAahgc,CACxB,GCnqBJ,IACI,EAAM,YACN,EAAM,MACN,GAAM,cACN,GAAM,UACN,GAAM,QACN,GAAM,YACN,GAAM,cACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,WACN,GAAM,MACN,GAAM,OACN,GAAM,YACN,GAAM,UACN,GAAM,aACN,GAAM,YACN,GAAM,SACN,GAAM,cACN,GAAM,SACN,GAAM,SACN,GAAM,OACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,YACN,GAAM,cACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,IAAM,UACN,IAAM,UACN,IAAM,UACN,IAAM,UACN,IAAM,UACN,IAAM,UACN,IAAM,iBACN,IAAM,YACN,IAAM,gBACN,IAAM,iBACN,IAAM,gBACN,IAAM,eACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,UACN,IAAM,aACN,IAAM,cACN,IAAM,iBACN,IAAM,iBACN,IAAM,cACN,IAAM,gBACN,IAAM,mBACN,IAAM,cACN,IAAM,kBACN,IAAM,kBACN,IAAM,gBACN,IAAM,iBACN,IAAM,qBACN,IAAM,YACN,IAAM,iBACN,IAAM,aACN,IAAM,cACN,IAAM,aACN,IAAM,aACN,IAAM,YCjGV,IAII,UAAoB,YAIpB,QAAoB,MACpB,SAAoB,MACpB,SAAoB,WACpB,YAAoB,cACpB,YAAoB,UACpB,aAAoB,UACpB,MAAoB,QACpB,SAAoB,OACpB,UAAoB,OACpB,UAAoB,QACpB,WAAoB,QACpB,IAAoB,MAKpB,OAAoB,SACpB,IAAoB,MACpB,KAAoB,OACpB,KAAoB,OACpB,OAAoB,SACpB,SAAoB,WACpB,OAAoB,SAIpB,UAAoB,YACpB,UAAoB,YACpB,WAAoB,aACpB,QAAoB,UAIpB,QAAoB,UACpB,gBAAoB,YACpB,YAAoB,QAIpB,OAAoB,SACpB,GAAoB,KACpB,GAAoB,KACpB,GAAoB,KACpB,GAAoB,KACpB,GAAoB,KACpB,GAAoB,KACpB,GAAoB,KACpB,GAAoB,KACpB,GAAoB,KACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,IAAoB,MACpB,YAAoB,cACpB,WAAoB,aACpB,MAAoB,QAIpB,YAAoB,cACpB,iBAAoB,mBACpB,eAAoB,iBACpB,YAAoB,cACpB,eAAoB,iBACpB,cAAoB,gBACpB,YAAoB,cACpB,MAAoB,QACpB,WAAoB,mBACpB,WAAoB,iBACpB,WAAoB,aACpB,eAAoB,YACpB,UAAoB,YACpB,eAAoB,iBACpB,mBAAsB,qBACtB,MAAoB,QACpB,MAAoB,QACpB,gBAAoB,kBACpB,gBAAoB,kBACpB,cAAoB,gBACpB,OAAoB,UChHxB,MAAMigc,GAAc,CAAC,EAErB,SAASC,GAAYjyc,EAAKqyF,GACtB,QAAiBv0F,IAAbu0F,EAAwB,MAAM,IAAInzF,MAAM,6BAAgCc,EAAM,KAClF,GAAIA,KAAOgyc,GAAa,MAAM,IAAI9yc,MAAM,4BAA+Bc,EAAM,KAC7Egyc,GAAYhyc,GAAO,CAACqyF,EAAUA,EAAUA,EAAUA,EACtD,CAEA,SAAS6/W,GAAalyc,EAAKykE,EAAMI,GAC7B,QAAa/mE,IAAT2mE,EAAoB,MAAM,IAAIvlE,MAAM,6BAAgCc,EAAM,KAC9E,QAAclC,IAAV+mE,EAAqB,MAAM,IAAI3lE,MAAM,6BAAgCc,EAAM,KAC/E,GAAIA,KAAOgyc,GAAa,MAAM,IAAI9yc,MAAM,4BAA+Bc,EAAM,KAC7Egyc,GAAYhyc,GAAO,CAACykE,EAAMA,EAAMI,EAAOJ,EAC3C,CAEA,SAAS0tY,GAAUnyc,EAAKqyF,EAAU+/W,GAC9B,QAAiBt0c,IAAbu0F,EAAwB,MAAM,IAAInzF,MAAM,6BAAgCc,EAAM,KAClF,QAAelC,IAAXs0c,EAAsB,MAAM,IAAIlzc,MAAM,6BAAgCc,EAAM,KAChF,GAAIA,KAAOgyc,GAAa,MAAM,IAAI9yc,MAAM,4BAA+Bc,EAAM,KAC7Egyc,GAAYhyc,GAAO,CAACqyF,EAAUA,EAAUA,EAAU+/W,EACtD,CAIAF,GAAa,MAAO,GAASxY,SAAU,GAASC,UAChDsY,GAAY,WAAY,GAASjY,qBACjCiY,GAAY,WAAY,GAAS3Y,cACjC4Y,GAAa,UAAW,GAAS9Y,aAAc,GAASC,cAGxD6Y,GAAa,OAAQ,GAAStY,WAAY,GAASC,YACnDoY,GAAY,UAAW,GAASjf,aAChCif,GAAY,aAAc,GAAStiB,gBACnCuiB,GAAa,QAAS,GAAShZ,WAAY,GAASC,YAMpDgZ,GAAU,QAAS,GAAS1iB,UAAW,GAAS0D,aAChD8e,GAAY,MAAO,GAAS3iB,QAC5B6iB,GAAU,IAAK,GAAS9X,SAAU,GAASpH,aAI3Ckf,GAAU,YAAa,GAASvgB,QAAS,GAASgC,YAClDue,GAAU,UAAW,GAASzgB,MAAO,GAASgC,UAC9Cye,GAAU,YAAa,GAAS1gB,QAAS,GAASgC,YAClD0e,GAAU,aAAc,GAASxgB,SAAU,GAASgC,aACpDwe,GAAU,MAAO,GAASlgB,OAAQ,GAASgC,WAC3Cke,GAAU,OAAQ,GAAS3gB,QAAS,GAASgC,YAC7C2e,GAAU,WAAY,GAASpgB,QAAS,GAASgC,YACjDoe,GAAU,SAAU,GAAStgB,SAAU,GAASgC,aAIhDoe,GAAY,YAAa,GAAS5iB,cAIlC8iB,GAAU,QAAS,GAAS3iB,SAAU,GAAS0E,aAC/C+d,GAAY,OAAQ,GAASvG,aAE7BuG,GAAY,MAAO,GAAStG,YAC5BwG,GAAU,SAAU,GAASriB,UAAW,GAASsE,cAGjD+d,GAAU,SAAU,GAAS7f,UAAW,GAAS6B,cACjD8d,GAAY,QAAS,GAASlF,cAC9BkF,GAAY,OAAQ,GAASzf,SAC7Byf,GAAY,OAAQ,GAAS1f,SAO7B0f,GAAY,SAAU,GAAStf,WAC/Bsf,GAAY,cAAe,GAASxf,SACpCwf,GAAY,SAAU,GAASpiB,WAC/BoiB,GAAY,UAAW,GAAS5f,YAChC4f,GAAY,OAAQ,GAASvf,SAC7Buf,GAAY,OAAQ,GAASrf,SAC7Bqf,GAAY,QAAS,GAASviB,UAG9BuiB,GAAY,SAAU,GAAS9f,WAC/B8f,GAAY,SAAU,GAASvD,eAC/BuD,GAAY,UAAW,GAAStD,gBAIhCsD,GAAY,iBAAkB,GAASlL,0BACvCkL,GAAY,eAAgB,GAASnL,wBACrCmL,GAAY,QAAS,GAASlJ,cAC9BkJ,GAAY,SAAU,GAAS7F,eAC/B6F,GAAY,QAAS,GAASpJ,iBAC9BoJ,GAAY,WAAY,GAAS7J,kBACjC6J,GAAY,cAAe,GAAS7f,UACpC6f,GAAY,YAAa,GAAS1B,kBAClC0B,GAAY,UAAW,GAAS9K,gBAChC8K,GAAY,SAAU,GAASnJ,eAI/BmJ,GAAY,gBAAiB,GAAS/hB,sBACtC+hB,GAAY,eAAgB,GAAS9gB,eACrC8gB,GAAY,YAAa,GAASjiB,cAClCiiB,GAAY,UAAW,GAASliB,cAChCkiB,GAAY,UAAW,GAAS1hB,WAGhC0hB,GAAY,aAAc,GAAS9X,oBACnC8X,GAAY,YAAa,GAAS7X,mBAClC6X,GAAY,YAAa,GAAShY,mBAClCgY,GAAY,gBAAiB,GAAS/X,mBAGtC+X,GAAY,aAAc,GAAS5hB,aACnC4hB,GAAY,oBAAqB,GAAS9hB,sBAE1C8hB,GAAY,kBAAmB,GAAShiB,oBACxCgiB,GAAY,aAAc,GAASvL,WACnCuL,GAAY,YAAa,GAAStL,iBAClCsL,GAAY,aAAc,GAASrL,kBACnCqL,GAAY,OAAQ,GAAS7gB,gBAC7B6gB,GAAY,UAAW,GAASphB,YAChCohB,GAAY,WAAY,GAASxhB,aACjCwhB,GAAY,mBAAoB,GAASthB,sBACzCshB,GAAY,WAAY,GAAS/gB,eACjC+gB,GAAY,YAAa,GAAS7hB,UAClC6hB,GAAY,WAAY,GAASvhB,aACjCuhB,GAAY,SAAU,GAASzhB,WAC/ByhB,GAAY,UAAW,GAASrhB,YAChCqhB,GAAY,gBAAiB,GAASnhB,oBAItCmhB,GAAY,KAAM,GAAS3c,OAC3B2c,GAAY,KAAM,GAAS1c,OAC3B0c,GAAY,KAAM,GAASzc,OAC3Byc,GAAY,KAAM,GAASxc,OAC3Bwc,GAAY,KAAM,GAASvc,OAC3Buc,GAAY,KAAM,GAAStc,OAC3Bsc,GAAY,KAAM,GAASrc,OAC3Bqc,GAAY,KAAM,GAASpc,OAC3Boc,GAAY,KAAM,GAASnc,OAC3Bmc,GAAY,MAAO,GAASlc,QAC5Bkc,GAAY,MAAO,GAASjc,QAC5Bic,GAAY,MAAO,GAAS/b,QAC5B+b,GAAY,MAAO,GAAS7b,QAC5B6b,GAAY,MAAO,GAAS3b,QAC5B2b,GAAY,MAAO,GAASzb,QAC5Byb,GAAY,MAAO,GAASvb,QAC5Bub,GAAY,MAAO,GAASrb,QAC5Bqb,GAAY,MAAO,GAASnb,QAC5Bmb,GAAY,MAAO,GAASjb,QAC5Bib,GAAY,MAAO,GAAS/a,QAC5B+a,GAAY,MAAO,GAAS7a,QAC5B6a,GAAY,MAAO,GAAS3a,QAC5B2a,GAAY,MAAO,GAASza,QAC5Bya,GAAY,MAAO,GAASva,QAC5Bua,GAAY,MAAO,GAASra,QAC5Bqa,GAAY,MAAO,GAASna,QAC5Bma,GAAY,MAAO,GAASja,QAC5Bia,GAAY,MAAO,GAAS/Z,QAC5B+Z,GAAY,MAAO,GAAS7Z,QAC5B6Z,GAAY,MAAO,GAAS3Z,QAC5B2Z,GAAY,MAAO,GAASzZ,QAC5ByZ,GAAY,MAAO,GAASvZ,QAC5BuZ,GAAY,MAAO,GAASrZ,QAC5BqZ,GAAY,MAAO,GAASnZ,QAC5BmZ,GAAY,MAAO,GAASjZ,QAO5BiZ,GAAY,QAAS,GAASxG,cAC9BwG,GAAY,cAAe,GAASlD,oBACpCkD,GAAY,YAAa,GAAS/E,cAClC+E,GAAY,WAAY,GAAStE,aAEjCsE,GAAY,mBAAoB,GAAS3C,qBACzC2C,GAAY,aAAc,GAAS7I,mBACnC6I,GAAY,YAAa,GAAS1K,kBAClC0K,GAAY,cAAe,GAASlK,oBACpCkK,GAAY,cAAe,GAAShI,oBACpCgI,GAAY,YAAa,GAASzK,kBAClCyK,GAAY,iBAAkB,GAASvK,kBACvCuK,GAAY,qBAAsB,GAASxK,kBAC3CwK,GAAY,MAAO,GAASvF,YAC5BuF,GAAY,OAAQ,GAASpF,aAC7BoF,GAAY,QAAS,GAAS7f,UAC9B6f,GAAY,OAAQ,GAAS1E,aAC7B0E,GAAY,aAAc,GAASrE,cAmBnCqE,GAAY,kBAAmB,GAAS7K,yBACxC6K,GAAY,gBAAiB,GAAS3K,yBACtC2K,GAAY,kBAAmB,GAAS5K,kBAIxC4K,GAAY,uBAAwB,GAAStB,qBAS7CsB,GAAY,qBAAsB,GAAS3I,mBAC3C2I,GAAY,qBAAsB,GAASjK,mBAC3CiK,GAAY,iBAAkB,GAAS9J,iBACvC8J,GAAY,aAAc,GAASrK,aACnCqK,GAAY,oBAAqB,GAAS5I,mBAC1C4I,GAAY,oBAAqB,GAAShD,cAC1CgD,GAAY,cAAe,GAASjF,cACpCiF,GAAY,oBAAqB,GAASjJ,oBAC1CiJ,GAAY,oBAAqB,GAASlG,cAC1CkG,GAAY,mBAAoB,GAAShJ,YACzCgJ,GAAY,eAAgB,GAASnD,eACrCmD,GAAY,sBAAuB,GAASzD,aAI5CyD,GAAY,cAAe,GAASxJ,aACpCwJ,GAAY,mBAAoB,GAAS9I,kBACzC8I,GAAY,iBAAkB,GAASvJ,gBACvCuJ,GAAY,cAAe,GAAStK,iBACpCsK,GAAY,iBAAkB,GAASrJ,gBACvCqJ,GAAY,gBAAiB,GAASnK,eACtCmK,GAAY,cAAe,GAAStJ,aAapCsJ,GAAY,SAAU,GAASnI,yBAC/BmI,GAAY,kBAAmB,GAASvC,wBACxCuC,GAAY,eAAgB,GAASzC,wBACrCyC,GAAY,oBAAqB,GAASpE,oBAC1CoE,GAAY,WAAY,GAASxC,iBACjCwC,GAAY,gBAAiB,GAASP,mBAItCS,GAAU,IAAK,GAAShW,SAAU,GAAS9H,aAC3C8d,GAAU,IAAK,GAASlX,QAAS,GAAS1G,WAC1C4d,GAAU,IAAK,GAAShX,SAAU,GAAS1G,gBAC3C0d,GAAU,IAAK,GAASnX,YAAa,GAAS1G,gBAC9C6d,GAAU,IAAK,GAAS9W,SAAU,GAAS1G,cAC3Cwd,GAAU,IAAK,GAAS/W,UAAW,GAAS1G,eAC5Cyd,GAAU,IAAK,GAASjX,SAAU,GAAS1G,iBAC3C2d,GAAU,IAAK,GAAS7W,KAAM,GAAS1G,SACvCud,GAAU,IAAK,GAAS5W,KAAM,GAAS1G,SACvCsd,GAAU,IAAK,GAAS3W,KAAM,GAAS1G,SACvCqd,GAAU,IAAK,GAAS1W,KAAM,GAAS1G,SACvCod,GAAU,IAAK,GAASzW,KAAM,GAAS1G,SACvCmd,GAAU,IAAK,GAASxW,KAAM,GAAS1G,SACvCkd,GAAU,IAAK,GAASvW,KAAM,GAAS1G,SACvCid,GAAU,IAAK,GAAStW,KAAM,GAAS1G,SACvCgd,GAAU,IAAK,GAASrW,KAAM,GAAS1G,SACvC+c,GAAU,IAAK,GAASpW,KAAM,GAAS1G,SAEvC,U,WCtSA,IAAIgd,GAAY,OAEZC,GAAQ,OACRC,GAAO,OACPC,GAAO,OACP,GAAQ,OAEL,SAASC,GAAYv8U,GASxB,GARqB,qBAAVA,EACPA,EAAQm8U,GAERA,GAAYn8U,EAGhBo8U,GAAQC,GAAOC,GAAO,GAAQ,OAEA,qBAAnBr0c,OAAOmF,QAEd,OAAQ4yH,GACJ,IAAK,QACDo8U,GAAQ,GAAQ7vZ,MAAMl/C,KAAKpF,OAAOmF,SACtC,IAAK,OACDivc,GAAQ,GAAQ5tZ,KAAKphD,KAAKpF,OAAOmF,SACrC,IAAK,OACDkvc,GAAQ,GAAQrvc,KAAKI,KAAKpF,OAAOmF,SACrC,IAAK,QACD,GAAQ,GAAQ0C,MAAMzC,KAAKpF,OAAOmF,SACtC,IAAK,OACD,MACJ,QACI,MAAM,IAAInF,OAAOe,MAAM,yBAA2Bg3H,EAAQ,KAI1E,CASAu8U,KC1CO,IAAIC,GAAiB,iBAAkB10c,SAAS0nE,sBAEK5nE,IAA1BE,SAAS20c,cAETlvY,UAAUmvY,eAAiB,GAC3BnvY,UAAUovY,iBAAmB,EAC/D10c,OAAOs7C,iBAAiB,cAAc,SAASq5Z,IAC3CJ,IAAgB,EAChBv0c,OAAO07C,oBAAoB,aAAci5Z,GAAc,EAC3D,IAAG,GAKI,IAAIC,GAAgB,IAAM50c,OAAO+uE,kBAAoB,GAExD8lY,IAAsB,EAE1B,IACI,MAAMt2c,EAASsB,SAASy9D,cAAc,UACtC/+D,EAAOi1B,MAAMu7Z,OAAS,gfAEqB,IAAvCxwb,EAAOi1B,MAAMu7Z,OAAOhlb,QAAQ,QAC5B,GAAS,oCACT8qc,IAAsB,GAEtB,GAAS,uCAEjB,CAAE,MAAOC,IACL,GAAU,0CAA4CA,GAC1D,CAEO,MAAMC,GAAqBF,GAElC,IAAIG,IAAyB,EAC7B,IACI,IAAIC,UAAU,IAAI3wR,kBAAkB,GAAI,EAAG,GAC3C0wR,IAAyB,CAC7B,CAAE,MAAOn/V,IAET,CACO,MAAMq/V,GAAwBF,GAErC,IAAIG,IAAsB,EAC1B,IAEI,MAAMjha,EAAYr0C,SAASy9D,cAAc,OACzCppB,EAAU1gB,MAAMsf,WAAa,SAC7BoB,EAAU1gB,MAAMm0C,SAAW,SAC3B9nE,SAASgpE,KAAKpL,YAAYvpB,GAG1B,MAAMnD,EAAQlxC,SAASy9D,cAAc,OACrCppB,EAAUupB,YAAY1sB,GAItB,MAAMqka,EAAkBlha,EAAUgyB,YAAcn1B,EAAMm1B,YAGtDhyB,EAAUtF,WAAW+qI,YAAYzlI,GAEjCiha,GAAwC,GAAlBC,CAC1B,CAAE,MAAON,IACL,GAAU,6BAA+BA,GAC7C,CAUO,SAASnib,KACZ,OAAO2yC,aAAe,OAASpb,KAAKob,UAAUm/S,SAClD,CAEO,SAAS4wF,KACZ,OAAO/vY,aAAe,OAASpb,KAAKob,UAAUm/S,SAClD,CAEO,SAAS6wF,KACZ,OAAOhwY,cACG,QAAUpb,KAAKob,UAAUm/S,aACzB,UAAYv6T,KAAKob,UAAUm/S,aAC3B,QAAUv6T,KAAKob,UAAUm/S,UACvC,CAOO,SAASl7S,KACZ,OAAOjE,aAAe,WAAapb,KAAKob,UAAUK,UACtD,CAEO,SAAS4vY,KACZ,OAAOjwY,aAAe,QAAUpb,KAAKob,UAAUK,UACnD,CAEO,SAAS2D,KACZ,OAAOhE,aAAe,WAAapb,KAAKob,UAAUK,UACtD,CC9GO,SAAS6vY,GAAW51c,GAKvB,GAAIA,EAAIoB,KAAM,CAEV,OAAQpB,EAAIoB,MACR,IAAK,SAAU,MAAO,WACtB,IAAK,UAAW,MAAO,YAG3B,OAAOpB,EAAIoB,IACf,CAKA,GAAkB,aAAbpB,EAAI+S,MAAyB/S,EAAI41C,WAAWiga,GAAQ,CACrD,IAAIz0c,EAAOy0c,GAAM71c,EAAI41C,SASrB,GANI,MAA6B,gBAATx0C,IACpBA,EAAO,aAKU,IAAjBpB,EAAIw8R,SACJ,OAAQp7R,GACJ,IAAK,YAAa,MAAO,aACzB,IAAK,cAAe,MAAO,eAC3B,IAAK,UAAW,MAAO,WAK/B,GAAqB,IAAjBpB,EAAIw8R,SACJ,OAAQp7R,GACJ,IAAK,SAAU,MAAO,gBACtB,IAAK,SAAU,MAAO,UACtB,IAAK,MAAO,MAAO,UACnB,IAAK,YAAa,MAAO,UACzB,IAAK,WAAY,MAAO,UACxB,IAAK,YAAa,MAAO,UACzB,IAAK,aAAc,MAAO,UAC1B,IAAK,OAAQ,MAAO,UACpB,IAAK,UAAW,MAAO,UACvB,IAAK,SAAU,MAAO,UACtB,IAAK,QAAS,MAAO,cAI7B,OAAOA,CACX,CAEA,MAAO,cACX,CAGO,SAAS+3M,GAAOn5M,GAEnB,QAAgBD,IAAZC,EAAIiC,IAAmB,CAGvB,OAAQjC,EAAIiC,KACR,IAAK,WAAY,MAAO,IACxB,IAAK,MAAO,MAAO,SACnB,IAAK,SAAU,MAAO,aACtB,IAAK,MAAO,MAAO,OACnB,IAAK,OAAQ,MAAO,cACpB,IAAK,KAAM,MAAO,UAClB,IAAK,OAAQ,MAAO,YACpB,IAAK,QAAS,MAAO,aACrB,IAAK,OAAQ,MAAO,YACpB,IAAK,MAAO,MAAO,SACnB,IAAK,SAAU,MAAO,IACtB,IAAK,WAAY,MAAO,IACxB,IAAK,WAAY,MAAO,IACxB,IAAK,MAAO,MAAO,IACnB,IAAK,UAAW,OAAOjC,EAAI0sD,KAI/B,OAAQ1sD,EAAIiC,KACR,IAAK,KAAM,MAAO,OAClB,IAAK,mBAAoB,MAAO,qBAChC,IAAK,mBAAoB,MAAO,qBAIpC,OAAQjC,EAAIiC,KACR,IAAK,oBAAqB,MAAO,UACjC,IAAK,sBAAuB,MAAO,YACnC,IAAK,sBAAuB,MAAO,YACnC,IAAK,uBAAwB,MAAO,aACpC,IAAK,mBAAoB,MAAO,SAIpC,GAAiB,OAAZjC,EAAIiC,KAAiC,kBAAbjC,EAAIoB,KAC7B,MAAO,SAKX,IAAK,OAAmB,KACpB,OAAOpB,EAAIiC,IAMf,GAAwB,IAAnBjC,EAAIiC,IAAIhD,QAA8B,iBAAZe,EAAIiC,IAC/B,OAAOjC,EAAIiC,GAEnB,CAGA,MAAMb,EAAOw0c,GAAW51c,GACxB,OAAIoB,KAAQ00c,GACDA,GAAU10c,GAIjBpB,EAAI+1c,SACGvzc,OAAOsgB,aAAa9iB,EAAI+1c,UAI5B,cACX,CAGO,SAASC,GAAUh2c,GACtB,MAAMiC,EAAMk3M,GAAOn5M,GAEnB,GAAY,iBAARiC,EACA,OAAO,KAIX,GAAIA,KAAO,GAAa,CACpB,IAAIu6R,EAAWx8R,EAAIw8R,SAQnB,GALa,SAARv6R,GAAiC,IAAbu6R,IACrBA,EAAW,GAIF,UAARv6R,GAAkC,IAAbu6R,EAAiB,CACvC,IAAIp7R,EAAOw0c,GAAW51c,GACT,YAAToB,IACAo7R,EAAW,EAEnB,CASA,SAPkBz8R,IAAby8R,GAA4BA,EAAW,KACxCA,EAAW,GAMH,SAARv6R,EAAgB,CAChB,IAAIb,EAAOw0c,GAAW51c,GACtB,GAAa,YAAToB,EACA,OAAO,GAASq6b,UACb,GAAa,aAATr6b,EACP,OAAO,GAASs6b,SAExB,CAIA,GAAY,UAARz5b,EAAiB,CACjB,IAAIb,EAAOw0c,GAAW51c,GACtB,GAAa,YAAToB,EACA,OAAO,GAAS6zb,WAExB,CAEA,OAAO,GAAYhzb,GAAKu6R,EAC5B,CAKA,GAAmB,IAAfv6R,EAAIhD,OACJ,OAAO,KAGX,MAAMg3c,EAAYh0c,EAAI+T,aACtB,OAAIigc,EACO,GAAQ36b,OAAO26b,GAGnB,IACX,C,UC/MAh0c,IAAA,G,IAGYkqC,MAAM,qB,IACLA,MAAM,e,IASLA,MAAM,wB,IAbpBlqC,IAAA,G,IAoBYkqC,MAAM,e,IACLA,MAAM,e,IACLA,MAAM,wB,IAOdgB,IAAI,Q,+FA5BRjB,EAAAA,EAAAA,oBA8BM,YA7BOH,EAAAmqa,WAAanqa,EAAAoqa,eAAY,kBAApCjqa,EAAAA,EAAAA,oBAgBM,MAlBVa,GAAA,EAGMO,EAAAA,EAAAA,oBAcO,OAdPN,GAcO,EAbLM,EAAAA,EAAAA,oBAYM,MAZNL,GAYM,EAXJqzB,EAAAA,EAAAA,aAIEgkX,EAAA,CAHA,YAAU,6BACVzwZ,MAAM,MACNif,OAAO,SAETxF,EAAAA,EAAAA,oBAEK,WAAAb,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,uCAAD,IAEN6iC,EAAAA,EAAAA,oBAEK,KAFLJ,IAEKT,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,6BAAD,WAdhB8hC,EAAAA,EAAAA,oBAAA,OAmBeR,EAAAqqa,eAAY,kBAAvBlqa,EAAAA,EAAAA,oBAQM,MA3BVu1C,GAAA,EAoBMn0C,EAAAA,EAAAA,oBAMO,OANP8yC,GAMO,EALL9yC,EAAAA,EAAAA,oBAIM,MAJN+yC,GAIM,EAHJ/yC,EAAAA,EAAAA,oBAEK,KAFLizC,IAEK9zC,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,oCAAqC,KAACgiC,EAAAA,EAAAA,iBAAGV,EAAAsqa,YAAa,QAAI5pa,EAAAA,EAAAA,iBAAGV,EAAAuqa,mBAAiB,WAvB/F/pa,EAAAA,EAAAA,oBAAA,QA4BIe,EAAAA,EAAAA,oBAEE,MAFFkzC,GAEE,W,CCtBC,SAAS+1X,GAAgBC,GAC5B,OAAOA,IAAc,CACzB,CAEO,SAASC,GAAcD,GAC1B,OAAmB,EAAZA,CACX,CCLO,SAASE,GAAWC,EAAYC,GAAY,GAC/C,IACI,OAAO3yR,mBAAmBtyI,OAAOgla,GACrC,CAAE,MAAOz1c,IACL,GAAIA,cAAao9K,UACTs4R,EAGA,OAAOD,EAGf,MAAMz1c,EACV,CACJ,CAGO,SAAS21c,GAAWC,GACvB,OAAOtjR,SAASzoJ,mBAAmB+ra,GACvC,CCfO,SAASC,GAAgB3gc,EAAGC,EAAGkpD,GAClC,MAAMy3Y,EAASz3Y,EAAK1sB,wBACpB,IAAI3oC,EAAM,CAAEkM,EAAG,EAAGC,EAAG,GAgBrB,OAdID,EAAI4gc,EAAOtwY,KACXx8D,EAAIkM,EAAI,EACDA,GAAK4gc,EAAOlwY,MACnB58D,EAAIkM,EAAI4gc,EAAOnjb,MAAQ,EAEvB3pB,EAAIkM,EAAIA,EAAI4gc,EAAOtwY,KAEnBrwD,EAAI2gc,EAAOpwY,IACX18D,EAAImM,EAAI,EACDA,GAAK2gc,EAAOjwY,OACnB78D,EAAImM,EAAI2gc,EAAOlka,OAAS,EAExB5oC,EAAImM,EAAIA,EAAI2gc,EAAOpwY,IAEhB18D,CACX,CCfO,SAAS+sc,GAAU/1c,GACtBA,EAAEiiG,kBACFjiG,EAAE05C,gBACN,CAGA,IAAIs8Z,IAAoB,EACpBC,GAA6B,KAEjC,SAASC,GAAcl2c,GAEnB,GAAIg2c,GAAmB,OAGvB,MAAMG,EAAQ,IAAIn2c,EAAEQ,YAAYR,EAAE6R,KAAM7R,GAExCg2c,IAAoB,EAChBj3c,SAASq3c,eACTr3c,SAASq3c,eAAe1zW,cAAcyzW,GAEtCF,GAA2BvzW,cAAcyzW,GAE7CH,IAAoB,EAGpBh2c,EAAEiiG,kBAGEk0W,EAAMnuB,kBACNhob,EAAE05C,iBAIS,YAAX15C,EAAE6R,MACFwkc,IAER,CAGA,SAASC,KACL,MAAMC,EAAYx3c,SAASy0G,eAAe,4BAC1C+iW,EAAU7jb,MAAMu7Z,OAAS/ub,OAAO4zB,iBAAiB/zB,SAASq3c,gBAAgBnoB,MAC9E,CAlCAlvb,SAASq3c,eAAiB,KAoC1B,MAAMI,GAAmB,IAAIr7Z,iBAAiBm7Z,IAEvC,SAASG,GAAWh5c,GACvB,GAAIA,EAAOg5c,WAEPh5c,EAAOg5c,aACP13c,SAASq3c,eAAiB34c,EAG1BA,EAAO+8C,iBAAiB,UAAW67Z,QAEhC,CAGHA,KAEA,IAAIE,EAAYx3c,SAASy0G,eAAe,4BAEtB,OAAd+iW,IACAA,EAAYx3c,SAASy9D,cAAc,OACnC+5Y,EAAU32c,GAAK,2BACf22c,EAAU7jb,MAAM1a,SAAW,QAC3Bu+b,EAAU7jb,MAAMgzC,IAAM,MACtB6wY,EAAU7jb,MAAM8yC,KAAO,MACvB+wY,EAAU7jb,MAAMC,MAAQ,OACxB4jb,EAAU7jb,MAAMkf,OAAS,OACzB2ka,EAAU7jb,MAAMgkb,OAAS,IACzBH,EAAU7jb,MAAM0G,QAAU,OAC1Br6B,SAASgpE,KAAKpL,YAAY45Y,GAI1BA,EAAU/7Z,iBAAiB,cAAe07Z,IAE1CK,EAAU/7Z,iBAAiB,YAAa07Z,IACxCK,EAAU/7Z,iBAAiB,UAAW07Z,KAG1Cn3c,SAASq3c,eAAiB34c,EAG1B+4c,GAAiBl7Z,QAAQ79C,EAAQ,CAACisC,YAAY,IAC9C4sa,KAEAC,EAAU7jb,MAAM0G,QAAU,GAI1Bl6B,OAAOs7C,iBAAiB,YAAa07Z,IACrCh3c,OAAOs7C,iBAAiB,UAAW07Z,GACvC,CACJ,CAEO,SAASG,KACZ,GAAIt3c,SAASs3c,eAETt3c,SAASs3c,iBACTt3c,SAASq3c,eAAiB,SAEvB,CACH,IAAKr3c,SAASq3c,eACV,OASJH,GAA6Bl3c,SAASq3c,eACtCr3c,SAASq3c,eAAiB,KAE1BI,GAAiBn7Z,aAEjB,MAAMk7Z,EAAYx3c,SAASy0G,eAAe,4BAC1C+iW,EAAU7jb,MAAM0G,QAAU,OAE1Bl6B,OAAO07C,oBAAoB,YAAas7Z,IACxCh3c,OAAO07C,oBAAoB,UAAWs7Z,GAC1C,CACJ,CCrIe,MAAMS,GACjB,WAAAn2c,GACIvD,KAAK6hL,WAAa,IAAI77K,GAC1B,CAEA,gBAAAu3C,CAAiB3oC,EAAMwmB,GACdp7B,KAAK6hL,WAAW1zK,IAAIyG,IACrB5U,KAAK6hL,WAAWxzK,IAAIuG,EAAM,IAAIoH,KAElChc,KAAK6hL,WAAWzzK,IAAIwG,GAAMqH,IAAImf,EAClC,CAEA,mBAAAuiB,CAAoB/oC,EAAMwmB,GAClBp7B,KAAK6hL,WAAW1zK,IAAIyG,IACpB5U,KAAK6hL,WAAWzzK,IAAIwG,GAAMwG,OAAOggB,EAEzC,CAEA,aAAAqqE,CAAclkG,GACV,OAAKvB,KAAK6hL,WAAW1zK,IAAI5M,EAAMqT,QAG/B5U,KAAK6hL,WAAWzzK,IAAI7M,EAAMqT,MACrBhM,SAAQwyB,GAAYA,EAASj6B,KAAKnB,KAAMuB,MACrCA,EAAMwpb,iBAClB,ECzBJ,QAEI4uB,cAAe,oEAAoE/tc,MAAM,IACzFguc,UAAW,IAEX,MAAA99L,CAAOt7P,GAEH,IAAIxV,EAAS,GACb,MAAMlK,EAAS0f,EAAK1f,OACd+4c,EAAa/4c,EAAS,EAG5B,IAAK,IAAI4C,EAAI,EAAGA,EAAK5C,EAAS,EAAI4C,GAAK,EACnCsH,GAAUhL,KAAK25c,cAAcn5b,EAAK9c,IAAM,GACxCsH,GAAUhL,KAAK25c,gBAA0B,EAAVn5b,EAAK9c,KAAc,IAAM8c,EAAK9c,EAAI,IAAM,IACvEsH,GAAUhL,KAAK25c,gBAA8B,GAAdn5b,EAAK9c,EAAI,KAAc,IAAM8c,EAAK9c,EAAI,IAAM,IAC3EsH,GAAUhL,KAAK25c,cAA4B,GAAdn5b,EAAK9c,EAAI,IAI1C,MAAMwe,EAAIphB,EAAS+4c,EAanB,OAZkB,IAAdA,GACA7uc,GAAUhL,KAAK25c,cAAcn5b,EAAK0B,IAAM,GACxClX,GAAUhL,KAAK25c,gBAA0B,EAAVn5b,EAAK0B,KAAc,IAAM1B,EAAK0B,EAAI,IAAM,IACvElX,GAAUhL,KAAK25c,eAA6B,GAAdn5b,EAAK0B,EAAI,KAAc,GACrDlX,GAAUhL,KAAK25c,cAAc,KACR,IAAdE,IACP7uc,GAAUhL,KAAK25c,cAAcn5b,EAAK0B,IAAM,GACxClX,GAAUhL,KAAK25c,eAAyB,EAAVn5b,EAAK0B,KAAc,GACjDlX,GAAUhL,KAAK25c,cAAc,IAC7B3uc,GAAUhL,KAAK25c,cAAc,KAG1B3uc,CACX,EAIA8uc,cAAe,EACV,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAChD,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAChD,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,EAAE,IAAK,GAAG,GAAG,EAAE,GAChD,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,IAAI,GAAG,GAAI,EAAG,GAAG,GAAG,GAChD,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAE,GAAI,GAAG,GAAG,GAAG,GAChD,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,IAAI,GAAI,GAAG,GAAG,GAAG,GAChD,EAAE,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAChD,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,GAAI,GAAG,GAAG,IAAI,GAAI,GAAG,GAAG,GAAG,GAIrD,MAAAngM,CAAOn5P,EAAMzH,EAAS,GAClB,IAAIghc,EAAav5b,EAAKxU,QAAQ,KAAO+M,EACjCghc,EAAa,IAAKA,EAAav5b,EAAK1f,OAASiY,GAGjD,MAAMihc,EAAmC,GAAnBD,GAAc,GAASz3c,KAAKC,MAAOw3c,EAAa,EAAK,KACrE/uc,EAAS,IAAIlD,MAAMkyc,GAIzB,IAAIC,EAAW,EACXC,EAAW,EACf,IAAK,IAAI52Z,EAAM,EAAG5/C,EAAIqV,EAAQrV,EAAI8c,EAAK1f,OAAQ4C,IAAK,CAChD,MAAM2lB,EAAIrpB,KAAK85c,cAAmC,IAArBt5b,EAAK3I,WAAWnU,IACvCwyE,EAAW11D,EAAKshC,OAAOp+C,KAAO1D,KAAK45c,WAE9B,IAAPvwb,GAMJ6wb,EAAYA,GAAY,EAAK7wb,EAC7B4wb,GAAY,EAGRA,GAAY,IACZA,GAAY,EAEP/jY,IACDlrE,EAAOs4C,KAAU42Z,GAAYD,EAAY,KAE7CC,IAAa,GAAKD,GAAY,IAf9B,GAAU,0BAA4Bz5b,EAAK3I,WAAWnU,GAAK,gBAAkBA,EAiBrF,CAGA,GAAIu2c,EAAU,CACV,MAAM1yc,EAAM,IAAIvE,MAAM,2BAEtB,MADAuE,EAAIyB,KAAO,eACLzB,CACV,CAEA,OAAOyD,CACX,GCzFW,MAAMmvc,GACjB,WAAA52c,CAAY/C,GAqBR,GApBAR,KAAKo6c,SAAW,KAEhBp6c,KAAKq6c,SAAW,GAChBr6c,KAAKs6c,WAAY,EAGjBt6c,KAAKu6c,SAAW,EAChBv6c,KAAKw6c,UAAY,EAEjBx6c,KAAKy6c,eAAiB,GACtBz6c,KAAK06c,MAAQ,KACb16c,KAAK26c,WAAa,KAClB36c,KAAK46c,OAAS,EACd56c,KAAK66c,OAAS,EAEd,GAAU,0BAGV76c,KAAK2tZ,QAAUntZ,GAEVR,KAAK2tZ,QACN,MAAM,IAAI3qZ,MAAM,sBAGpB,GAA4B,kBAAjBhD,KAAK2tZ,QACZ,MAAM,IAAI3qZ,MAAM,gCAGpB,IAAKhD,KAAK2tZ,QAAQmtD,WACd,MAAM,IAAI93c,MAAM,wBAmBpB,GAhBAhD,KAAK+6c,WAAa/6c,KAAK2tZ,QAAQmtD,WAAW,MAG1C96c,KAAKg7c,aAAe,CAAE,EAAK,EAAG,EAAK,EAAG,EAAKh7c,KAAK2tZ,QAAQj4X,MAAO,EAAK11B,KAAK2tZ,QAAQh5W,QAGjF30C,KAAKi7c,YAAcn5c,SAASy9D,cAAc,UAC1Cv/D,KAAKo6c,SAAWp6c,KAAKi7c,YAAYH,WAAW,MAE5C96c,KAAKk7c,cAAgB,CAAE3yY,KAAM,EAAGE,IAAK,EACdE,MAAO3oE,KAAKi7c,YAAYvlb,MACxBkzC,OAAQ5oE,KAAKi7c,YAAYtma,QAEhD,GAAU,eAAiB4yB,UAAUK,aAG/B,oBAAqB5nE,KAAKo6c,UAC5B,MAAM,IAAIp3c,MAAM,2CAGpBhD,KAAK26c,WAAa36c,KAAKo6c,SAASe,gBAAgB,GAAI,IACpD,GAAU,0BAIVn7c,KAAKo7c,OAAS,EACdp7c,KAAKq7c,eAAgB,EAIrBr7c,KAAKs7c,QAAU,MACnB,CAIA,SAAI5pI,GAAU,OAAO1xU,KAAKo7c,MAAQ,CAClC,SAAI1pI,CAAMA,GACN1xU,KAAKu7c,SAAS7pI,EAClB,CAEA,gBAAI8pI,GAAiB,OAAOx7c,KAAKq7c,aAAe,CAChD,gBAAIG,CAAarvY,GACbnsE,KAAKq7c,cAAgBlvY,EAErB,MAAMsvY,EAAKz7c,KAAKg7c,aAChBh7c,KAAK07c,mBAAmBD,EAAG1nV,EAAG0nV,EAAGjgZ,GACjCx7D,KAAK27c,kBAAkB,EAAG,EAC9B,CAEA,SAAIjmb,GACA,OAAO11B,KAAKu6c,QAChB,CAEA,UAAI5la,GACA,OAAO30C,KAAKw6c,SAChB,CAIA,iBAAAmB,CAAkBC,EAAQC,GACtB,MAAMJ,EAAKz7c,KAAKg7c,aAChBY,EAASt5c,KAAKC,MAAMq5c,GACpBC,EAASv5c,KAAKC,MAAMs5c,GAEf77c,KAAKq7c,gBACNO,GAAUH,EAAG1nV,EACb8nV,GAAUJ,EAAGjgZ,GAGjB,MAAMsgZ,EAAML,EAAGxjc,EAAIwjc,EAAG1nV,EAAI,EACpBgoV,EAAMN,EAAGvjc,EAAIujc,EAAGjgZ,EAAI,EAItBogZ,EAAS,GAAKH,EAAGxjc,EAAI2jc,EAAS,IAC9BA,GAAUH,EAAGxjc,GAEb6jc,EAAMF,GAAU57c,KAAKu6c,WACrBqB,GAAUE,EAAMF,EAAS57c,KAAKu6c,SAAW,GAGzCkB,EAAGvjc,EAAI2jc,EAAS,IAChBA,GAAUJ,EAAGvjc,GAEb6jc,EAAMF,GAAU77c,KAAKw6c,YACrBqB,GAAWE,EAAMF,EAAS77c,KAAKw6c,UAAY,GAGhC,IAAXoB,GAA2B,IAAXC,IAGpB,GAAU,0BAA4BD,EAAS,aAAeC,GAE9DJ,EAAGxjc,GAAK2jc,EACRH,EAAGvjc,GAAK2jc,EAER77c,KAAKg8c,QAAQP,EAAGxjc,EAAGwjc,EAAGvjc,EAAGujc,EAAG1nV,EAAG0nV,EAAGjgZ,GAElCx7D,KAAKo3E,OACT,CAEA,kBAAAskY,CAAmBhmb,EAAOif,GAEjB30C,KAAKq7c,eACY,qBAAZ,GACa,qBAAb,IAEN,GAAU,2CACV3lb,EAAQ11B,KAAKu6c,SACb5la,EAAS30C,KAAKw6c,WAGlB9kb,EAAQpzB,KAAKC,MAAMmzB,GACnBif,EAASryC,KAAKC,MAAMoyC,GAEhBjf,EAAQ11B,KAAKu6c,WACb7kb,EAAQ11B,KAAKu6c,UAEb5la,EAAS30C,KAAKw6c,YACd7la,EAAS30C,KAAKw6c,WAGlB,MAAMiB,EAAKz7c,KAAKg7c,aAChB,GAAIS,EAAG1nV,IAAMr+F,GAAS+lb,EAAGjgZ,IAAM7mB,EAAQ,CACnC8ma,EAAG1nV,EAAIr+F,EACP+lb,EAAGjgZ,EAAI7mB,EAEP,MAAMsna,EAASj8c,KAAK2tZ,QACpBsuD,EAAOvmb,MAAQA,EACfumb,EAAOtna,OAASA,EAGhB30C,KAAK27c,kBAAkB,EAAG,GAE1B37c,KAAKg8c,QAAQP,EAAGxjc,EAAGwjc,EAAGvjc,EAAGujc,EAAG1nV,EAAG0nV,EAAGjgZ,GAClCx7D,KAAKo3E,OAGLp3E,KAAKu7c,SAASv7c,KAAKo7c,OACvB,CACJ,CAEA,IAAAc,CAAKjkc,GACD,OAAoB,IAAhBjY,KAAKo7c,OACE,EAEJ9C,GAAcrgc,EAAIjY,KAAKo7c,OAASp7c,KAAKg7c,aAAa/ic,EAC7D,CAEA,IAAAkkc,CAAKjkc,GACD,OAAoB,IAAhBlY,KAAKo7c,OACE,EAEJ9C,GAAcpgc,EAAIlY,KAAKo7c,OAASp7c,KAAKg7c,aAAa9ic,EAC7D,CAEA,MAAAg4D,CAAOx6C,EAAOif,GACV30C,KAAKy6c,eAAiB,GAEtBz6c,KAAKu6c,SAAW7kb,EAChB11B,KAAKw6c,UAAY7la,EAEjB,MAAMsna,EAASj8c,KAAKi7c,YACpB,GAAIgB,EAAOvmb,QAAUA,GAASumb,EAAOtna,SAAWA,EAAQ,CAGpD,IAAIyna,EAAU,KACVH,EAAOvmb,MAAQ,GAAKumb,EAAOtna,OAAS,IACpCyna,EAAUp8c,KAAKo6c,SAASiC,aAAa,EAAG,EAAGJ,EAAOvmb,MAAOumb,EAAOtna,SAGhEsna,EAAOvmb,QAAUA,IACjBumb,EAAOvmb,MAAQA,GAEfumb,EAAOtna,SAAWA,IAClBsna,EAAOtna,OAASA,GAGhByna,GACAp8c,KAAKo6c,SAASkC,aAAaF,EAAS,EAAG,EAE/C,CAIA,MAAMX,EAAKz7c,KAAKg7c,aAChBh7c,KAAK07c,mBAAmBD,EAAG1nV,EAAG0nV,EAAGjgZ,GACjCx7D,KAAK27c,kBAAkB,EAAG,EAC9B,CAGA,OAAAK,CAAQ/jc,EAAGC,EAAG67G,EAAGv4D,GACTvjD,EAAIjY,KAAKk7c,cAAc3yY,OACvBvoE,KAAKk7c,cAAc3yY,KAAOtwD,GAE1BC,EAAIlY,KAAKk7c,cAAczyY,MACvBzoE,KAAKk7c,cAAczyY,IAAMvwD,GAExBD,EAAI87G,EAAK/zH,KAAKk7c,cAAcvyY,QAC7B3oE,KAAKk7c,cAAcvyY,MAAQ1wD,EAAI87G,GAE9B77G,EAAIsjD,EAAKx7D,KAAKk7c,cAActyY,SAC7B5oE,KAAKk7c,cAActyY,OAAS1wD,EAAIsjD,EAExC,CAIA,IAAA4b,CAAKmlY,GACD,GAA6B,IAAzBv8c,KAAKq6c,SAASv5c,QAAiBy7c,EAI5B,CACH,IAAItkc,EAAIjY,KAAKk7c,cAAc3yY,KACvBrwD,EAAIlY,KAAKk7c,cAAczyY,IACvBsrD,EAAI/zH,KAAKk7c,cAAcvyY,MAAQ1wD,EAC/BujD,EAAIx7D,KAAKk7c,cAActyY,OAAS1wD,EAEhCskc,EAAKvkc,EAAIjY,KAAKg7c,aAAa/ic,EAC3Bwkc,EAAKvkc,EAAIlY,KAAKg7c,aAAa9ic,EAE3Bskc,EAAK,IACLzoV,GAAKyoV,EACLvkc,GAAKukc,EACLA,EAAK,GAELC,EAAK,IACLjhZ,GAAKihZ,EACLvkc,GAAKukc,EACLA,EAAK,GAGJD,EAAKzoV,EAAK/zH,KAAKg7c,aAAajnV,IAC7BA,EAAI/zH,KAAKg7c,aAAajnV,EAAIyoV,GAEzBC,EAAKjhZ,EAAKx7D,KAAKg7c,aAAax/Y,IAC7BA,EAAIx7D,KAAKg7c,aAAax/Y,EAAIihZ,GAGzB1oV,EAAI,GAAOv4D,EAAI,GAIhBx7D,KAAK+6c,WAAW2B,UAAU18c,KAAKi7c,YACLhjc,EAAGC,EAAG67G,EAAGv4D,EACTghZ,EAAIC,EAAI1oV,EAAGv4D,GAGzCx7D,KAAKk7c,cAAc3yY,KAAOvoE,KAAKk7c,cAAczyY,IAAM,MACnDzoE,KAAKk7c,cAAcvyY,MAAQ3oE,KAAKk7c,cAActyY,OAAS,CAC3D,MAzCI5oE,KAAK28c,aAAa,CACd,KAAQ,QAyCpB,CAEA,OAAAhvY,GACI,OAAO3tE,KAAKq6c,SAASv5c,OAAS,CAClC,CAEA,KAAA0uP,GACiC,IAAzBxvP,KAAKq6c,SAASv5c,OACdd,KAAKs7c,UAELt7c,KAAKs6c,WAAY,CAEzB,CAEA,QAAAsC,CAAS3kc,EAAGC,EAAGwd,EAAOif,EAAQnG,EAAO+ta,GACJ,IAAzBv8c,KAAKq6c,SAASv5c,QAAiBy7c,GAU/Bv8c,KAAK68c,cAAcrua,GACnBxuC,KAAKo6c,SAASwC,SAAS3kc,EAAGC,EAAGwd,EAAOif,GACpC30C,KAAKg8c,QAAQ/jc,EAAGC,EAAGwd,EAAOif,IAX1B30C,KAAK28c,aAAa,CACd,KAAQ,OACR,EAAK1kc,EACL,EAAKC,EACL,MAASwd,EACT,OAAUif,EACV,MAASnG,GAOrB,CAEA,SAAAsua,CAAUC,EAAMC,EAAMC,EAAMC,EAAMnpV,EAAGv4D,EAAG+gZ,GACP,IAAzBv8c,KAAKq6c,SAASv5c,QAAiBy7c,GAkB/Bv8c,KAAKo6c,SAAS+C,0BAA2B,EACzCn9c,KAAKo6c,SAASgD,6BAA8B,EAC5Cp9c,KAAKo6c,SAASiD,yBAA0B,EACxCr9c,KAAKo6c,SAASkD,uBAAwB,EAEtCt9c,KAAKo6c,SAASsC,UAAU18c,KAAKi7c,YACL8B,EAAMC,EAAMjpV,EAAGv4D,EACfyhZ,EAAMC,EAAMnpV,EAAGv4D,GACvCx7D,KAAKg8c,QAAQiB,EAAMC,EAAMnpV,EAAGv4D,IAzB5Bx7D,KAAK28c,aAAa,CACd,KAAQ,OACR,KAAQI,EACR,KAAQC,EACR,EAAKC,EACL,EAAKC,EACL,MAASnpV,EACT,OAAUv4D,GAoBtB,CAEA,SAAA+hZ,CAAUtlc,EAAGC,EAAGwd,EAAOif,EAAQ6oa,EAAMvoc,GAEjC,GAAe,IAAVygB,GAA4B,IAAXif,EAClB,OAGJ,MAAMs5C,EAAM,IAAIwvX,MAChBxvX,EAAIzkE,IAAM,SAAWg0b,EAAO,WAAa,GAAO1hM,OAAO7mQ,GAEvDjV,KAAK28c,aAAa,CACd,KAAQ,MACR,IAAO1uX,EACP,EAAKh2E,EACL,EAAKC,EACL,MAASwd,EACT,OAAUif,GAElB,CAGA,SAAA+oa,CAAUzlc,EAAGC,EAAGwd,EAAOif,EAAQnG,GAC3BxuC,KAAK46c,OAAS3ic,EACdjY,KAAK66c,OAAS3ic,EAEVlY,KAAK06c,MADK,KAAVhlb,GAA2B,KAAXif,EACH30C,KAAK26c,WAEL36c,KAAKo6c,SAASe,gBAAgBzlb,EAAOif,GAGtD,MAAM7kC,EAAM0+B,EAAM,GACZ3+B,EAAQ2+B,EAAM,GACd5+B,EAAO4+B,EAAM,GAEbhuB,EAAOxgB,KAAK06c,MAAMl6b,KACxB,IAAK,IAAI9c,EAAI,EAAGA,EAAIgyB,EAAQif,EAAS,EAAGjxC,GAAK,EACzC8c,EAAK9c,GAAKoM,EACV0Q,EAAK9c,EAAI,GAAKmM,EACd2Q,EAAK9c,EAAI,GAAKkM,EACd4Q,EAAK9c,EAAI,GAAK,GAEtB,CAGA,OAAAi6c,CAAQ1lc,EAAGC,EAAG67G,EAAGv4D,EAAGhtB,GAChB,MAAM1+B,EAAM0+B,EAAM,GACZ3+B,EAAQ2+B,EAAM,GACd5+B,EAAO4+B,EAAM,GACbova,EAAO3lc,EAAI87G,EACX8pV,EAAO3lc,EAAIsjD,EAEXh7C,EAAOxgB,KAAK06c,MAAMl6b,KAClBkV,EAAQ11B,KAAK06c,MAAMhlb,MACzB,IAAK,IAAIxT,EAAIhK,EAAGgK,EAAI27b,EAAM37b,IACtB,IAAK,IAAIxe,EAAIuU,EAAGvU,EAAIk6c,EAAMl6c,IAAK,CAC3B,MAAMqL,EAAwB,GAAnBrL,EAAKwe,EAAIwT,GACpBlV,EAAKzR,GAAKe,EACV0Q,EAAKzR,EAAI,GAAKc,EACd2Q,EAAKzR,EAAI,GAAKa,EACd4Q,EAAKzR,EAAI,GAAK,GAClB,CAER,CAGA,UAAA+uc,GACI99c,KAAKo6c,SAASkC,aAAat8c,KAAK06c,MAAO16c,KAAK46c,OAAQ56c,KAAK66c,QACzD76c,KAAKg8c,QAAQh8c,KAAK46c,OAAQ56c,KAAK66c,OAClB76c,KAAK06c,MAAMhlb,MAAO11B,KAAK06c,MAAM/la,OAC9C,CAEA,SAAAopa,CAAU9lc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,EAAQwjc,GACxC,GAA6B,IAAzBv8c,KAAKq6c,SAASv5c,QAAiBy7c,EAe/Bv8c,KAAKg+c,eAAe/lc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,OAfJ,CAI1C,MAAMw+H,EAAS,IAAIt+H,WAAWyc,EAAQif,EAAS,GAC/C4iG,EAAOlpI,IAAI,IAAI4K,WAAWhE,EAAIiE,OAAQ,EAAGq+H,EAAOz2I,SAChDd,KAAK28c,aAAa,CACd,KAAQ,OACR,KAAQplU,EACR,EAAKt/H,EACL,EAAKC,EACL,MAASwd,EACT,OAAUif,GAElB,CAGJ,CAEA,YAAAspa,CAAahmc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,EAAQwjc,GAC3C,GAA6B,IAAzBv8c,KAAKq6c,SAASv5c,QAAiBy7c,EAe/Bv8c,KAAKk+c,cAAcjmc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,OAfH,CAI1C,MAAMw+H,EAAS,IAAIt+H,WAAWyc,EAAQif,EAAS,GAC/C4iG,EAAOlpI,IAAI,IAAI4K,WAAWhE,EAAIiE,OAAQ,EAAGq+H,EAAOz2I,SAChDd,KAAK28c,aAAa,CACd,KAAQ,UACR,KAAQplU,EACR,EAAKt/H,EACL,EAAKC,EACL,MAASwd,EACT,OAAUif,GAElB,CAGJ,CAEA,aAAAwpa,CAAclmc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,EAAQwjc,GAC5C,GAA6B,IAAzBv8c,KAAKq6c,SAASv5c,QAAiBy7c,EAe/Bv8c,KAAKo+c,eAAenmc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,OAfJ,CAI1C,MAAMw+H,EAAS,IAAIt+H,WAAWyc,EAAQif,EAAS,GAC/C4iG,EAAOlpI,IAAI,IAAI4K,WAAWhE,EAAIiE,OAAQ,EAAGq+H,EAAOz2I,SAChDd,KAAK28c,aAAa,CACd,KAAQ,WACR,KAAQplU,EACR,EAAKt/H,EACL,EAAKC,EACL,MAASwd,EACT,OAAUif,GAElB,CAGJ,CAEA,SAAA+na,CAAUzuX,EAAKh2E,EAAGC,GACdlY,KAAKo6c,SAASsC,UAAUzuX,EAAKh2E,EAAGC,GAChClY,KAAKg8c,QAAQ/jc,EAAGC,EAAG+1E,EAAIv4D,MAAOu4D,EAAIt5C,OACtC,CAEA,SAAA0pa,CAAUC,EAAgBC,GACtB,IAAIC,EAEJ,GAAuB,IAAnBF,GAA4C,IAApBC,EACxBC,EAAa,MAEV,CAEH,MAAM/C,EAAKz7c,KAAKg7c,aACVyD,EAAoBH,EAAiBC,EACrCG,EAAgBjD,EAAG1nV,EAAI0nV,EAAGjgZ,EAG5BgjZ,EADAE,GAAiBD,EACJH,EAAiB7C,EAAG1nV,EAEpBwqV,EAAkB9C,EAAGjgZ,CAE1C,CAEAx7D,KAAKu7c,SAASiD,EAClB,CAIA,QAAAjD,CAASt5S,GACLjiK,KAAKo7c,OAASn5S,EACd,MAAMw5S,EAAKz7c,KAAKg7c,aAMVtlb,EAAQusI,EAASw5S,EAAG1nV,EAAI,KACxBp/E,EAASstH,EAASw5S,EAAGjgZ,EAAI,KAE1Bx7D,KAAK2tZ,QAAQl4X,MAAMC,QAAUA,GAC7B11B,KAAK2tZ,QAAQl4X,MAAMkf,SAAWA,IAC/B30C,KAAK2tZ,QAAQl4X,MAAMC,MAAQA,EAC3B11B,KAAK2tZ,QAAQl4X,MAAMkf,OAASA,EAEpC,CAEA,aAAAkoa,CAAcrua,GACV,MAAMmwa,EAAW,OAASnwa,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,IACnEmwa,IAAa3+c,KAAKy6c,iBAClBz6c,KAAKo6c,SAASwE,UAAYD,EAC1B3+c,KAAKy6c,eAAiBkE,EAE9B,CAEA,aAAAT,CAAcjmc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,GACpC,MAAMk1E,EAAMjuF,KAAKo6c,SAASe,gBAAgBzlb,EAAOif,GAC3Cn0B,EAAOytE,EAAIztE,KACjB,IAAK,IAAI9c,EAAI,EAAGwe,EAAInJ,EAAQrV,EAAIgyB,EAAQif,EAAS,EAAGjxC,GAAK,EAAGwe,GAAK,EAC7D1B,EAAK9c,GAASuR,EAAIiN,GAClB1B,EAAK9c,EAAI,GAAKuR,EAAIiN,EAAI,GACtB1B,EAAK9c,EAAI,GAAKuR,EAAIiN,EAAI,GACtB1B,EAAK9c,EAAI,GAAK,IAElB1D,KAAKo6c,SAASkC,aAAaruX,EAAKh2E,EAAGC,GACnClY,KAAKg8c,QAAQ/jc,EAAGC,EAAG+1E,EAAIv4D,MAAOu4D,EAAIt5C,OACtC,CAEA,cAAAqpa,CAAe/lc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,GACrC,MAAMk1E,EAAMjuF,KAAKo6c,SAASe,gBAAgBzlb,EAAOif,GAC3Cn0B,EAAOytE,EAAIztE,KACjB,IAAK,IAAI9c,EAAI,EAAGwe,EAAInJ,EAAQrV,EAAIgyB,EAAQif,EAAS,EAAGjxC,GAAK,EAAGwe,GAAK,EAC7D1B,EAAK9c,GAASuR,EAAIiN,EAAI,GACtB1B,EAAK9c,EAAI,GAAKuR,EAAIiN,EAAI,GACtB1B,EAAK9c,EAAI,GAAKuR,EAAIiN,GAClB1B,EAAK9c,EAAI,GAAK,IAElB1D,KAAKo6c,SAASkC,aAAaruX,EAAKh2E,EAAGC,GACnClY,KAAKg8c,QAAQ/jc,EAAGC,EAAG+1E,EAAIv4D,MAAOu4D,EAAIt5C,OACtC,CAEA,cAAAypa,CAAenmc,EAAGC,EAAGwd,EAAOif,EAAQ1/B,EAAK8D,GAErC,IAAIk1E,EACAkpX,GACAlpX,EAAM,IAAIipX,UAAU,IAAI3wR,kBAAkBtxK,EAAIiE,OAAQjE,EAAIkE,WAAYuc,EAAQif,EAAS,GAAIjf,EAAOif,IAElGs5C,EAAMjuF,KAAKo6c,SAASe,gBAAgBzlb,EAAOif,GAC3Cs5C,EAAIztE,KAAKnS,IAAI,IAAIk4K,kBAAkBtxK,EAAIiE,OAAQjE,EAAIkE,WAAYuc,EAAQif,EAAS,KAEpF30C,KAAKo6c,SAASkC,aAAaruX,EAAKh2E,EAAGC,GACnClY,KAAKg8c,QAAQ/jc,EAAGC,EAAG+1E,EAAIv4D,MAAOu4D,EAAIt5C,OACtC,CAEA,YAAAgoa,CAAa/ob,GACT5zB,KAAKq6c,SAASlxc,KAAKyqB,GACU,IAAzB5zB,KAAKq6c,SAASv5c,QAGdd,KAAK6+c,cAEb,CAEA,cAAAC,GAGI9+c,KAAK29C,oBAAoB,OAAQ39C,KAAK++c,cAAcD,gBACpD9+c,KAAK++c,cAAcF,cACvB,CAEA,YAAAA,GACI,IAAIvib,GAAQ,EACZ,MAAOA,GAASt8B,KAAKq6c,SAASv5c,OAAS,EAAG,CACtC,MAAMgI,EAAI9I,KAAKq6c,SAAS,GACxB,OAAQvxc,EAAE8L,MACN,IAAK,OACD5U,KAAKo3E,MAAK,GACV,MACJ,IAAK,OACDp3E,KAAK88c,UAAUh0c,EAAEi0c,KAAMj0c,EAAEk0c,KAAMl0c,EAAEmP,EAAGnP,EAAEoP,EAAGpP,EAAE4sB,MAAO5sB,EAAE6rC,QAAQ,GAC5D,MACJ,IAAK,OACD30C,KAAK48c,SAAS9zc,EAAEmP,EAAGnP,EAAEoP,EAAGpP,EAAE4sB,MAAO5sB,EAAE6rC,OAAQ7rC,EAAE0lC,OAAO,GACpD,MACJ,IAAK,OACDxuC,KAAK+9c,UAAUj1c,EAAEmP,EAAGnP,EAAEoP,EAAGpP,EAAE4sB,MAAO5sB,EAAE6rC,OAAQ7rC,EAAE0X,KAAM,GAAG,GACvD,MACJ,IAAK,UACDxgB,KAAKi+c,aAAan1c,EAAEmP,EAAGnP,EAAEoP,EAAGpP,EAAE4sB,MAAO5sB,EAAE6rC,OAAQ7rC,EAAE0X,KAAM,GAAG,GAC1D,MACJ,IAAK,WACDxgB,KAAKm+c,cAAcr1c,EAAEmP,EAAGnP,EAAEoP,EAAGpP,EAAE4sB,MAAO5sB,EAAE6rC,OAAQ7rC,EAAE0X,KAAM,GAAG,GAC3D,MACJ,IAAK,MAED,GAAI1X,EAAEmlF,IAAIwsD,UAA6B,IAAhB3xI,EAAEmlF,IAAIv4D,OAAkC,IAAjB5sB,EAAEmlF,IAAIt5C,OAAe,CAC/D,GAAI7rC,EAAEmlF,IAAIv4D,QAAU5sB,EAAE4sB,OAAS5sB,EAAEmlF,IAAIt5C,SAAW7rC,EAAE6rC,OAI9C,YAHA,GAAU,+CACA7rC,EAAEmlF,IAAIv4D,MAAQ,IAAM5sB,EAAEmlF,IAAIt5C,OAAS,cACnC7rC,EAAE4sB,MAAQ,IAAM5sB,EAAE6rC,OAAS,KAGzC30C,KAAK08c,UAAU5zc,EAAEmlF,IAAKnlF,EAAEmP,EAAGnP,EAAEoP,EACjC,MACIpP,EAAEmlF,IAAI8wX,cAAgB/+c,KACtB8I,EAAEmlF,IAAI1wC,iBAAiB,OAAQv9C,KAAK8+c,gBAGpCxib,GAAQ,EAEZ,MAGJA,GACAt8B,KAAKq6c,SAASxuc,OAEtB,CAE6B,IAAzB7L,KAAKq6c,SAASv5c,QAAgBd,KAAKs6c,YACnCt6c,KAAKs6c,WAAY,EACjBt6c,KAAKs7c,UAEb,ECpoBG,SAAS0D,GAAU77L,EAAM35P,EAAKy1b,EAAU5qc,EAAK6qc,GAClD,GAAI11b,EAAI/D,UAAY09P,EAAK19P,SACvB09P,EAAK90Q,IAAImb,EAAI/D,SAASw5b,EAAUA,EAAW5qc,GAAM6qc,QAInD,IAAK,IAAIx7c,EAAI,EAAGA,EAAI2Q,EAAK3Q,IACvBy/Q,EAAK+7L,EAAYx7c,GAAK8lB,EAAIy1b,EAAWv7c,EAEzC,CAwBO,IAAIy7c,GAAQlmc,WACRmmc,GAAQ54R,YACR64R,GAAQ/4R,WCxCJ,SAAS,GAAQg5R,EAAOpgc,EAAK7K,EAAKtI,GAC/C,IAAIolL,EAAc,MAARmuR,EACNluR,EAAOkuR,IAAU,GAAM,MACvB9pc,EAAI,EAER,MAAe,IAARnB,EAAW,CAIhBmB,EAAInB,EAAM,IAAO,IAAOA,EACxBA,GAAOmB,EAEP,GACE27K,EAAMA,EAAKjyK,EAAInT,KAAS,EACxBqlL,EAAMA,EAAKD,EAAK,UACP37K,GAEX27K,GAAM,MACNC,GAAM,KACR,CAEA,OAAQD,EAAMC,GAAM,EACtB,CCpBe,SAASmuR,KAGtB,IAFA,IAAIl2b,EAAGM,EAAQ,GAENnU,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B6T,EAAI7T,EACJ,IAAK,IAAIgF,EAAI,EAAGA,EAAI,EAAGA,IACrB6O,EAAU,EAAJA,EAAU,WAAcA,IAAM,EAAOA,IAAM,EAEnDM,EAAMnU,GAAK6T,CACb,CAEA,OAAOM,CACT,CAGe41b,KCpBf,IAAIC,GAAM,GACN,GAAO,GAqCI,SAASC,GAAaC,EAAMjrc,GACzC,IAAImvB,EACA+7a,EACA/7Z,EACAg8Z,EACAC,EACAvuc,EAEAwuc,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACA5vR,EACA6vR,EACAC,EACAC,EACAC,EACAC,EACA3uL,EAEAx9Q,EACAg7I,EACA55I,EACAgrc,EAGAn8c,EAAO4Z,EAGX0lB,EAAQ87a,EAAK97a,MAEb+7a,EAAMD,EAAKgB,QACXp8c,EAAQo7c,EAAKp7c,MACbs/C,EAAO+7Z,GAAOD,EAAKiB,SAAW,GAC9Bf,EAAOF,EAAKkB,SACZ1ic,EAASwhc,EAAKxhc,OACd2hc,EAAMD,GAAQnrc,EAAQirc,EAAKmB,WAC3Bvvc,EAAMsuc,GAAQF,EAAKmB,UAAY,KAE/Bf,EAAOl8a,EAAMk8a,KAEbC,EAAQn8a,EAAMm8a,MACdC,EAAQp8a,EAAMo8a,MACdC,EAAQr8a,EAAMq8a,MACdC,EAAWt8a,EAAM3hC,OACjBk+c,EAAOv8a,EAAMu8a,KACb5vR,EAAO3sJ,EAAM2sJ,KACb6vR,EAAQx8a,EAAMk9a,QACdT,EAAQz8a,EAAMm9a,SACdT,GAAS,GAAK18a,EAAMo9a,SAAW,EAC/BT,GAAS,GAAK38a,EAAMq9a,UAAY,EAMhCx4Y,EACA,EAAG,CACG8nH,EAAO,KACT4vR,GAAQ77c,EAAMq7c,MAAUpvR,EACxBA,GAAQ,EACR4vR,GAAQ77c,EAAMq7c,MAAUpvR,EACxBA,GAAQ,GAGViwR,EAAOJ,EAAMD,EAAOG,GAEpBY,EACA,OAAS,CAKP,GAJArvL,EAAK2uL,IAAS,GACdL,KAAUtuL,EACVthG,GAAQshG,EACRA,EAAM2uL,IAAS,GAAM,IACV,IAAP3uL,EAIF3zQ,EAAO0hc,KAAiB,MAAPY,MAEd,MAAS,GAAL3uL,GAwKJ,IAAkB,KAAR,GAALA,GAAgB,CACxB2uL,EAAOJ,GAAc,MAAPI,IAA8BL,GAAS,GAAKtuL,GAAM,IAChE,SAASqvL,CACX,CACK,GAAS,GAALrvL,EAAS,CAEhBjuP,EAAM1R,KAAO,GACb,MAAMu2C,CACR,CAEEi3Y,EAAKx2c,IAAM,8BACX06B,EAAM1R,KAAOstb,GACb,MAAM/2Y,CACR,CApLEp0D,EAAa,MAAPmsc,EACN3uL,GAAM,GACFA,IACEthG,EAAOshG,IACTsuL,GAAQ77c,EAAMq7c,MAAUpvR,EACxBA,GAAQ,GAEVl8K,GAAO8rc,GAAS,GAAKtuL,GAAM,EAC3BsuL,KAAUtuL,EACVthG,GAAQshG,GAGNthG,EAAO,KACT4vR,GAAQ77c,EAAMq7c,MAAUpvR,EACxBA,GAAQ,EACR4vR,GAAQ77c,EAAMq7c,MAAUpvR,EACxBA,GAAQ,GAEViwR,EAAOH,EAAMF,EAAOI,GAEpBY,EACA,OAAS,CAMP,GALAtvL,EAAK2uL,IAAS,GACdL,KAAUtuL,EACVthG,GAAQshG,EACRA,EAAM2uL,IAAS,GAAM,MAEZ,GAAL3uL,GA+HC,IAAkB,KAAR,GAALA,GAAgB,CACxB2uL,EAAOH,GAAc,MAAPG,IAA8BL,GAAS,GAAKtuL,GAAM,IAChE,SAASsvL,CACX,CAEEzB,EAAKx2c,IAAM,wBACX06B,EAAM1R,KAAOstb,GACb,MAAM/2Y,CACR,CA1HE,GAZA4mF,EAAc,MAAPmxT,EACP3uL,GAAM,GACFthG,EAAOshG,IACTsuL,GAAQ77c,EAAMq7c,MAAUpvR,EACxBA,GAAQ,EACJA,EAAOshG,IACTsuL,GAAQ77c,EAAMq7c,MAAUpvR,EACxBA,GAAQ,IAGZlhC,GAAQ8wT,GAAS,GAAKtuL,GAAM,EAExBxiI,EAAOywT,EAAM,CACfJ,EAAKx2c,IAAM,gCACX06B,EAAM1R,KAAOstb,GACb,MAAM/2Y,CACR,CAMA,GAJA03Y,KAAUtuL,EACVthG,GAAQshG,EAERA,EAAK+tL,EAAOC,EACRxwT,EAAOwiI,EAAI,CAEb,GADAA,EAAKxiI,EAAOwiI,EACRA,EAAKmuL,GACHp8a,EAAMw9a,KAAM,CACd1B,EAAKx2c,IAAM,gCACX06B,EAAM1R,KAAOstb,GACb,MAAM/2Y,CACR,CA0BF,GAFAhzD,EAAO,EACPgrc,EAAcP,EACA,IAAVD,GAEF,GADAxqc,GAAQsqc,EAAQluL,EACZA,EAAKx9Q,EAAK,CACZA,GAAOw9Q,EACP,GACE3zQ,EAAO0hc,KAAUM,EAASzqc,aACjBo8Q,GACXp8Q,EAAOmqc,EAAOvwT,EACdoxT,EAAcvic,CAChB,OAEG,GAAI+hc,EAAQpuL,GAGf,GAFAp8Q,GAAQsqc,EAAQE,EAAQpuL,EACxBA,GAAMouL,EACFpuL,EAAKx9Q,EAAK,CACZA,GAAOw9Q,EACP,GACE3zQ,EAAO0hc,KAAUM,EAASzqc,aACjBo8Q,GAEX,GADAp8Q,EAAO,EACHwqc,EAAQ5rc,EAAK,CACfw9Q,EAAKouL,EACL5rc,GAAOw9Q,EACP,GACE3zQ,EAAO0hc,KAAUM,EAASzqc,aACjBo8Q,GACXp8Q,EAAOmqc,EAAOvwT,EACdoxT,EAAcvic,CAChB,CACF,OAIA,GADAzI,GAAQwqc,EAAQpuL,EACZA,EAAKx9Q,EAAK,CACZA,GAAOw9Q,EACP,GACE3zQ,EAAO0hc,KAAUM,EAASzqc,aACjBo8Q,GACXp8Q,EAAOmqc,EAAOvwT,EACdoxT,EAAcvic,CAChB,CAEF,MAAO7J,EAAM,EACX6J,EAAO0hc,KAAUa,EAAYhrc,KAC7ByI,EAAO0hc,KAAUa,EAAYhrc,KAC7ByI,EAAO0hc,KAAUa,EAAYhrc,KAC7BpB,GAAO,EAELA,IACF6J,EAAO0hc,KAAUa,EAAYhrc,KACzBpB,EAAM,IACR6J,EAAO0hc,KAAUa,EAAYhrc,MAGnC,KACK,CACHA,EAAOmqc,EAAOvwT,EACd,GACEnxI,EAAO0hc,KAAU1hc,EAAOzI,KACxByI,EAAO0hc,KAAU1hc,EAAOzI,KACxByI,EAAO0hc,KAAU1hc,EAAOzI,KACxBpB,GAAO,QACAA,EAAM,GACXA,IACF6J,EAAO0hc,KAAU1hc,EAAOzI,KACpBpB,EAAM,IACR6J,EAAO0hc,KAAU1hc,EAAOzI,MAG9B,CAYF,KACF,CAeF,CAEA,KACF,CACF,OAASkqc,EAAM/7Z,GAAQg8Z,EAAOtuc,GAG9B+C,EAAMk8K,GAAQ,EACdovR,GAAOtrc,EACPk8K,GAAQl8K,GAAO,EACf8rc,IAAS,GAAK5vR,GAAQ,EAGtBmvR,EAAKgB,QAAUf,EACfD,EAAKkB,SAAWhB,EAChBF,EAAKiB,SAAYhB,EAAM/7Z,EAAYA,EAAO+7Z,EAAZ,EAAmB,GAAKA,EAAM/7Z,GAC5D87Z,EAAKmB,UAAajB,EAAOtuc,EAAaA,EAAMsuc,EAAb,IAAqB,KAAOA,EAAOtuc,GAClEsyB,EAAMu8a,KAAOA,EACbv8a,EAAM2sJ,KAAOA,CAEf,CCjUA,IAAI8wR,GAAU,GACVC,GAAc,IACdC,GAAe,IAGfC,GAAQ,EACRC,GAAO,EACPC,GAAQ,EAERC,GAAQ,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAG3DC,GAAO,CACT,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGtDC,GAAQ,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAClD,KAAM,MAAO,MAAO,MAAO,EAAG,GAG5BC,GAAO,CACT,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGP,SAASC,GAAcntc,EAAM8I,EAAMskc,EAAY/8c,EAAO0kB,EAAOs4b,EAAaC,EAAM1+a,GAE7F,IAYI86R,EACAv+S,EACA02K,EACA0rR,EACApsc,EAIAzE,EAMA8wc,EAAWC,EAASC,EA1BpB/xR,EAAO/sJ,EAAK+sJ,KAGZl8K,EAAM,EACNk0K,EAAM,EACNpwK,EAAM,EAAGhG,EAAM,EACf3S,EAAO,EACP25R,EAAO,EACPj2B,EAAO,EACP36L,EAAO,EACP+yU,EAAO,EACPinE,EAAO,EAMPrvc,EAAO,KACPsvc,EAAa,EAGb/yc,EAAQ,IAAI,GAAY4xc,GAAU,GAClClyR,EAAO,IAAI,GAAYkyR,GAAU,GACjCtgE,EAAQ,KACR0hE,EAAc,EAoClB,IAAKpuc,EAAM,EAAGA,GAAOgtc,GAAShtc,IAC5B5E,EAAM4E,GAAO,EAEf,IAAKk0K,EAAM,EAAGA,EAAMtjL,EAAOsjL,IACzB94K,EAAMiO,EAAKskc,EAAaz5R,MAK1B,IADA/oL,EAAO+wL,EACFp+K,EAAMkvc,GAASlvc,GAAO,EAAGA,IAC5B,GAAmB,IAAf1C,EAAM0C,GAAc,MAK1B,GAHI3S,EAAO2S,IACT3S,EAAO2S,GAEG,IAARA,EAaF,OATAwX,EAAMs4b,KAAiB,SAMvBt4b,EAAMs4b,KAAiB,SAEvBz+a,EAAK+sJ,KAAO,EACL,EAET,IAAKp4K,EAAM,EAAGA,EAAMhG,EAAKgG,IACvB,GAAmB,IAAf1I,EAAM0I,GAAc,MAQ1B,IANI3Y,EAAO2Y,IACT3Y,EAAO2Y,GAITowD,EAAO,EACFl0D,EAAM,EAAGA,GAAOgtc,GAAShtc,IAG5B,GAFAk0D,IAAS,EACTA,GAAQ94D,EAAM4E,GACVk0D,EAAO,EACT,OAAQ,EAGZ,GAAIA,EAAO,IAAM3zD,IAAS4sc,IAAiB,IAARrvc,GACjC,OAAQ,EAKV,IADAg9K,EAAK,GAAK,EACL96K,EAAM,EAAGA,EAAMgtc,GAAShtc,IAC3B86K,EAAK96K,EAAM,GAAK86K,EAAK96K,GAAO5E,EAAM4E,GAIpC,IAAKk0K,EAAM,EAAGA,EAAMtjL,EAAOsjL,IACM,IAA3B7qK,EAAKskc,EAAaz5R,KACpB25R,EAAK/yR,EAAKzxK,EAAKskc,EAAaz5R,OAAWA,GAmE3C,GA7BI3zK,IAAS4sc,IACXtuc,EAAO6tY,EAAQmhE,EACf5wc,EAAM,IAEGsD,IAAS6sc,IAClBvuc,EAAOyuc,GACPa,GAAc,IACdzhE,EAAQ6gE,GACRa,GAAe,IACfnxc,EAAM,MAGN4B,EAAO2uc,GACP9gE,EAAQ+gE,GACRxwc,GAAO,GAITixc,EAAO,EACPh6R,EAAM,EACNl0K,EAAM8D,EACNpC,EAAOksc,EACP9oL,EAAO35R,EACP0jQ,EAAO,EACPzsE,GAAO,EACP6kN,EAAO,GAAK97Y,EACZ2id,EAAO7mE,EAAO,EAGT1mY,IAAS6sc,IAAQnmE,EAAOgmE,IAC1B1sc,IAAS8sc,IAASpmE,EAAOimE,GAC1B,OAAO,EAIT,OAAS,CAEPa,EAAY/tc,EAAM6uP,EACdg/M,EAAK35R,GAAOj3K,GACd+wc,EAAU,EACVC,EAAWJ,EAAK35R,IAET25R,EAAK35R,GAAOj3K,GACnB+wc,EAAUthE,EAAM0hE,EAAcP,EAAK35R,IACnC+5R,EAAWpvc,EAAKsvc,EAAaN,EAAK35R,MAGlC85R,EAAU,GACVC,EAAW,GAIbhkJ,EAAO,GAAMjqT,EAAM6uP,EACnBnjP,EAAO,GAAKo5Q,EACZhhR,EAAM4H,EACN,GACEA,GAAQu+S,EACR30S,EAAM5T,GAAQwsc,GAAQr/M,GAAQnjP,GAASqic,GAAa,GAAOC,GAAW,GAAMC,QAC5D,IAATvic,GAGTu+S,EAAO,GAAMjqT,EAAM,EACnB,MAAOkuc,EAAOjkJ,EACZA,IAAS,EAWX,GATa,IAATA,GACFikJ,GAAQjkJ,EAAO,EACfikJ,GAAQjkJ,GAERikJ,EAAO,EAITh6R,IACqB,MAAf94K,EAAM4E,GAAY,CACtB,GAAIA,IAAQlC,EAAO,MACnBkC,EAAMqJ,EAAKskc,EAAaE,EAAK35R,GAC/B,CAGA,GAAIl0K,EAAM7U,IAAS+id,EAAOJ,KAAU1rR,EAAK,CAE1B,IAATysE,IACFA,EAAO1jQ,GAITuW,GAAQoC,EAGRghR,EAAO9kR,EAAM6uP,EACb36L,EAAO,GAAK4wN,EACZ,MAAOA,EAAOj2B,EAAO/wP,EAAK,CAExB,GADAo2D,GAAQ94D,EAAM0pR,EAAOj2B,GACjB36L,GAAQ,EAAK,MACjB4wN,IACA5wN,IAAS,CACX,CAIA,GADA+yU,GAAQ,GAAKniH,EACRvkR,IAAS6sc,IAAQnmE,EAAOgmE,IAC1B1sc,IAAS8sc,IAASpmE,EAAOimE,GAC1B,OAAO,EAIT9qR,EAAM8rR,EAAOJ,EAIbx4b,EAAM8sK,GAAQj3L,GAAQ,GAAO25R,GAAQ,GAAOpjR,EAAOksc,CACrD,CACF,CAeA,OAVa,IAATM,IAIF54b,EAAM5T,EAAOwsc,GAAUluc,EAAM6uP,GAAS,GAAO,IAAM,IAKrD1/N,EAAK+sJ,KAAO/wL,EACL,CACT,CC3TA,IAAI,GAAQ,EACR,GAAO,EACP,GAAQ,EAWL,MAAMkjd,GAAkB,EAClBC,GAAkB,EAClBC,GAAkB,EAMlBC,GAAkB,EAClBC,GAAkB,EAClBC,GAAkB,EAElBC,IAAmB,EACnBC,IAAmB,EACnBC,IAAmB,EACnBC,IAAmB,EAInBC,GAAc,EAO3B,IAAOC,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPjvF,GAAK,EACLkvF,GAAQ,EACRC,GAAQ,EACR72K,GAAO,EACPuuH,GAAU,EACVuoD,GAAO,EACPC,GAAS,GACTC,GAAO,GACH,GAAO,GACPC,GAAS,GACTC,GAAS,GACTC,GAAQ,GACRC,GAAO,GACP3vb,GAAQ,GACR4vb,GAAU,GACVC,GAAW,GACPC,GAAO,GACPC,GAAM,GACNC,GAAS,GACTC,GAAO,GACPC,GAAU,GACVC,GAAQ,GACRC,GAAM,GACdC,GAAQ,GACR/zM,GAAS,GACTuxB,GAAO,GACP,GAAM,GACNyiL,GAAM,GACNC,GAAO,GAMV,GAAc,IACd,GAAe,IAGfC,GAAY,GAEZC,GAAYD,GAGhB,SAASE,GAAQz4Z,GACf,OAAWA,IAAM,GAAM,MACbA,IAAM,EAAK,SACP,MAAJA,IAAe,KACX,IAAJA,IAAa,GACzB,CAGA,SAAS04Z,KACPhld,KAAKkyB,KAAO,EACZlyB,KAAK4jD,MAAO,EACZ5jD,KAAKkoQ,KAAO,EACZloQ,KAAKild,UAAW,EAChBjld,KAAKmW,MAAQ,EACbnW,KAAK8/c,KAAO,EACZ9/c,KAAK04E,MAAQ,EACb14E,KAAKw8B,MAAQ,EAEbx8B,KAAKy/D,KAAO,KAGZz/D,KAAKkld,MAAQ,EACblld,KAAK+/c,MAAQ,EACb//c,KAAKggd,MAAQ,EACbhgd,KAAKigd,MAAQ,EACbjgd,KAAKiC,OAAS,KAGdjC,KAAKmgd,KAAO,EACZngd,KAAKuwL,KAAO,EAGZvwL,KAAKc,OAAS,EACdd,KAAK+Y,OAAS,EAGd/Y,KAAK+gZ,MAAQ,EAGb/gZ,KAAK8gd,QAAU,KACf9gd,KAAK+gd,SAAW,KAChB/gd,KAAKghd,QAAU,EACfhhd,KAAKihd,SAAW,EAGhBjhd,KAAKmld,MAAQ,EACbnld,KAAKold,KAAO,EACZpld,KAAKqld,MAAQ,EACbrld,KAAKokD,KAAO,EACZpkD,KAAK+V,KAAO,KAEZ/V,KAAK0d,KAAO,IAAI,GAAY,KAC5B1d,KAAKkid,KAAO,IAAI,GAAY,KAO5Blid,KAAKsld,OAAS,KACdtld,KAAKuld,QAAU,KACfvld,KAAKohd,KAAO,EACZphd,KAAKqkF,KAAO,EACZrkF,KAAKwld,IAAM,CACb,CAEA,SAASC,GAAiB/F,GACxB,IAAI97a,EAEJ,OAAK87a,GAASA,EAAK97a,OACnBA,EAAQ87a,EAAK97a,MACb87a,EAAKgG,SAAWhG,EAAKiG,UAAY/hb,EAAMpH,MAAQ,EAC/Ckjb,EAAKx2c,IAAM,GACP06B,EAAMskO,OACRw3M,EAAKJ,MAAqB,EAAb17a,EAAMskO,MAErBtkO,EAAM1R,KAAOmxb,GACbz/a,EAAMggB,KAAO,EACbhgB,EAAMqhb,SAAW,EACjBrhb,EAAMk8a,KAAO,MACbl8a,EAAM67B,KAAO,KACb77B,EAAMu8a,KAAO,EACbv8a,EAAM2sJ,KAAO,EAEb3sJ,EAAMk9a,QAAUl9a,EAAM0hb,OAAS,IAAI,GAAY,IAC/C1hb,EAAMm9a,SAAWn9a,EAAM2hb,QAAU,IAAI,GAAY,IAEjD3hb,EAAMw9a,KAAO,EACbx9a,EAAMygD,MAAQ,EAEPw+X,IArB4BG,EAsBrC,CAEA,SAAS4C,GAAalG,GACpB,IAAI97a,EAEJ,OAAK87a,GAASA,EAAK97a,OACnBA,EAAQ87a,EAAK97a,MACbA,EAAMm8a,MAAQ,EACdn8a,EAAMo8a,MAAQ,EACdp8a,EAAMq8a,MAAQ,EACPwF,GAAiB/F,IALWsD,EAOrC,CAEA,SAAS6C,GAAcnG,EAAMoG,GAC3B,IAAI59M,EACAtkO,EAGJ,OAAK87a,GAASA,EAAK97a,OACnBA,EAAQ87a,EAAK97a,MAGTkib,EAAa,GACf59M,EAAO,EACP49M,GAAcA,IAGd59M,EAA2B,GAAnB49M,GAAc,GAClBA,EAAa,KACfA,GAAc,KAKdA,IAAeA,EAAa,GAAKA,EAAa,IACzC9C,IAEY,OAAjBp/a,EAAM3hC,QAAmB2hC,EAAMshb,QAAUY,IAC3Clib,EAAM3hC,OAAS,MAIjB2hC,EAAMskO,KAAOA,EACbtkO,EAAMshb,MAAQY,EACPF,GAAalG,KA1BesD,EA2BrC,CAEA,SAAS+C,GAAarG,EAAMoG,GAC1B,IAAIlhc,EACAgf,EAEJ,OAAK87a,GAGL97a,EAAQ,IAAIohb,GAIZtF,EAAK97a,MAAQA,EACbA,EAAM3hC,OAAS,KACf2iB,EAAMihc,GAAcnG,EAAMoG,GACtBlhc,IAAQi+b,KACVnD,EAAK97a,MAAQ,MAERhf,GAbao+b,EActB,CAEA,SAASgD,GAAYtG,GACnB,OAAOqG,GAAarG,EAAMoF,GAC5B,CAaA,IAEImB,GAAQC,GAFRC,IAAS,EAIb,SAASC,GAAYxib,GAEnB,GAAIuib,GAAQ,CACV,IAAI59R,EAEJ09R,GAAS,IAAI,GAAY,KACzBC,GAAU,IAAI,GAAY,IAG1B39R,EAAM,EACN,MAAOA,EAAM,IAAO3kJ,EAAMlmB,KAAK6qK,KAAS,EACxC,MAAOA,EAAM,IAAO3kJ,EAAMlmB,KAAK6qK,KAAS,EACxC,MAAOA,EAAM,IAAO3kJ,EAAMlmB,KAAK6qK,KAAS,EACxC,MAAOA,EAAM,IAAO3kJ,EAAMlmB,KAAK6qK,KAAS,EAExCw5R,GAAc,GAAOn+a,EAAMlmB,KAAM,EAAG,IAAKuoc,GAAU,EAAGrib,EAAMs+a,KAAM,CAAE3xR,KAAM,IAG1EhI,EAAM,EACN,MAAOA,EAAM,GAAM3kJ,EAAMlmB,KAAK6qK,KAAS,EAEvCw5R,GAAc,GAAOn+a,EAAMlmB,KAAM,EAAG,GAAMwoc,GAAS,EAAGtib,EAAMs+a,KAAM,CAAE3xR,KAAM,IAG1E41R,IAAS,CACX,CAEAvib,EAAMk9a,QAAUmF,GAChBrib,EAAMo9a,QAAU,EAChBp9a,EAAMm9a,SAAWmF,GACjBtib,EAAMq9a,SAAW,CACnB,CAiBA,SAASoF,GAAa3G,EAAMl2b,EAAKlY,EAAKgP,GACpC,IAAI+uI,EACAzrH,EAAQ87a,EAAK97a,MAqCjB,OAlCqB,OAAjBA,EAAM3hC,SACR2hC,EAAMm8a,MAAQ,GAAKn8a,EAAMshb,MACzBthb,EAAMq8a,MAAQ,EACdr8a,EAAMo8a,MAAQ,EAEdp8a,EAAM3hC,OAAS,IAAI,GAAW2hC,EAAMm8a,QAIlCz/b,GAAQsjB,EAAMm8a,OAChB,GAAen8a,EAAM3hC,OAAQunB,EAAKlY,EAAMsyB,EAAMm8a,MAAOn8a,EAAMm8a,MAAO,GAClEn8a,EAAMq8a,MAAQ,EACdr8a,EAAMo8a,MAAQp8a,EAAMm8a,QAGpB1wT,EAAOzrH,EAAMm8a,MAAQn8a,EAAMq8a,MACvB5wT,EAAO/uI,IACT+uI,EAAO/uI,GAGT,GAAesjB,EAAM3hC,OAAQunB,EAAKlY,EAAMgP,EAAM+uI,EAAMzrH,EAAMq8a,OAC1D3/b,GAAQ+uI,EACJ/uI,GAEF,GAAesjB,EAAM3hC,OAAQunB,EAAKlY,EAAMgP,EAAMA,EAAM,GACpDsjB,EAAMq8a,MAAQ3/b,EACdsjB,EAAMo8a,MAAQp8a,EAAMm8a,QAGpBn8a,EAAMq8a,OAAS5wT,EACXzrH,EAAMq8a,QAAUr8a,EAAMm8a,QAASn8a,EAAMq8a,MAAQ,GAC7Cr8a,EAAMo8a,MAAQp8a,EAAMm8a,QAASn8a,EAAMo8a,OAAS3wT,KAG7C,CACT,CAEA,SAASi3T,GAAQ5G,EAAMlwN,GACrB,IAAI5rN,EACAt/B,EAAO4Z,EACPnI,EACAwwc,EACAnia,EAAMmkB,EACN43Y,EACA5vR,EACAovR,EAAKC,EACLt/b,EACA7K,EACAgrc,EAEA2B,EAAWC,EAASC,EAEpBkE,EAAWC,EAASC,EACpBryc,EACAuQ,EAEA4e,EAEAhuB,EATAgrc,EAAO,EAMPmG,EAAO,IAAI,GAAW,GAKtB35Y,EACF,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAGlE,IAAK0yY,IAASA,EAAK97a,QAAU87a,EAAKxhc,SAC5Bwhc,EAAKp7c,OAA2B,IAAlBo7c,EAAKiB,SACvB,OAAOqC,GAGTp/a,EAAQ87a,EAAK97a,MACTA,EAAM1R,OAAS,KAAQ0R,EAAM1R,KAAO2xb,IAIxC0C,EAAM7G,EAAKkB,SACX1ic,EAASwhc,EAAKxhc,OACdqqD,EAAOm3Y,EAAKmB,UACZ9qc,EAAO2pc,EAAKgB,QACZp8c,EAAQo7c,EAAKp7c,MACb8/C,EAAOs7Z,EAAKiB,SACZR,EAAOv8a,EAAMu8a,KACb5vR,EAAO3sJ,EAAM2sJ,KAGbovR,EAAMv7Z,EACNw7Z,EAAOr3Y,EACP3jD,EAAMi+b,GAEN+D,EACA,OACE,OAAQhjb,EAAM1R,MACd,KAAKmxb,GACH,GAAmB,IAAfz/a,EAAMskO,KAAY,CACpBtkO,EAAM1R,KAAO2xb,GACb,KACF,CAEA,MAAOtzR,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEA,GAAkB,EAAb3sJ,EAAMskO,MAAsB,QAATi4M,EAAiB,CACvCv8a,EAAM80C,MAAQ,EAEdiuY,EAAK,GAAY,IAAPxG,EACVwG,EAAK,GAAMxG,IAAS,EAAK,IACzBv8a,EAAM80C,MAAQ,GAAM90C,EAAM80C,MAAOiuY,EAAM,EAAG,GAI1CxG,EAAO,EACP5vR,EAAO,EAEP3sJ,EAAM1R,KAAOoxb,GACb,KACF,CAKA,GAJA1/a,EAAMztB,MAAQ,EACVytB,EAAM67B,OACR77B,EAAM67B,KAAKzpD,MAAO,KAED,EAAb4tB,EAAMskO,UACA,IAAPi4M,IAA2B,IAAMA,GAAQ,IAAM,GAAI,CACtDT,EAAKx2c,IAAM,yBACX06B,EAAM1R,KAAO,GACb,KACF,CACA,IAAY,GAAPiub,KAA4BiD,GAAY,CAC3C1D,EAAKx2c,IAAM,6BACX06B,EAAM1R,KAAO,GACb,KACF,CAMA,GAJAiub,KAAU,EACV5vR,GAAQ,EAERl8K,EAAiC,GAAnB,GAAP8rc,GACa,IAAhBv8a,EAAMshb,MACRthb,EAAMshb,MAAQ7wc,OAEX,GAAIA,EAAMuvB,EAAMshb,MAAO,CAC1BxF,EAAKx2c,IAAM,sBACX06B,EAAM1R,KAAO,GACb,KACF,CACA0R,EAAMk8a,KAAO,GAAKzrc,EAElBqrc,EAAKJ,MAAQ17a,EAAM80C,MAAQ,EAC3B90C,EAAM1R,KAAc,IAAPiub,EAAewD,GAAS,GAErCxD,EAAO,EACP5vR,EAAO,EAEP,MACF,KAAK+yR,GAEH,MAAO/yR,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAGA,GADA3sJ,EAAMztB,MAAQgqc,GACK,IAAdv8a,EAAMztB,SAAkBitc,GAAY,CACvC1D,EAAKx2c,IAAM,6BACX06B,EAAM1R,KAAO,GACb,KACF,CACA,GAAkB,MAAd0R,EAAMztB,MAAgB,CACxBupc,EAAKx2c,IAAM,2BACX06B,EAAM1R,KAAO,GACb,KACF,CACI0R,EAAM67B,OACR77B,EAAM67B,KAAKwtB,KAASkzX,GAAQ,EAAK,GAEjB,IAAdv8a,EAAMztB,QAERwwc,EAAK,GAAY,IAAPxG,EACVwG,EAAK,GAAMxG,IAAS,EAAK,IACzBv8a,EAAM80C,MAAQ,GAAM90C,EAAM80C,MAAOiuY,EAAM,EAAG,IAI5CxG,EAAO,EACP5vR,EAAO,EAEP3sJ,EAAM1R,KAAOqxb,GAEf,KAAKA,GAEH,MAAOhzR,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEI3sJ,EAAM67B,OACR77B,EAAM67B,KAAK+7D,KAAO2kV,GAEF,IAAdv8a,EAAMztB,QAERwwc,EAAK,GAAY,IAAPxG,EACVwG,EAAK,GAAMxG,IAAS,EAAK,IACzBwG,EAAK,GAAMxG,IAAS,GAAM,IAC1BwG,EAAK,GAAMxG,IAAS,GAAM,IAC1Bv8a,EAAM80C,MAAQ,GAAM90C,EAAM80C,MAAOiuY,EAAM,EAAG,IAI5CxG,EAAO,EACP5vR,EAAO,EAEP3sJ,EAAM1R,KAAOoiW,GAEf,KAAKA,GAEH,MAAO/jM,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEI3sJ,EAAM67B,OACR77B,EAAM67B,KAAKonZ,OAAiB,IAAP1G,EACrBv8a,EAAM67B,KAAKkgR,GAAMwgI,GAAQ,GAET,IAAdv8a,EAAMztB,QAERwwc,EAAK,GAAY,IAAPxG,EACVwG,EAAK,GAAMxG,IAAS,EAAK,IACzBv8a,EAAM80C,MAAQ,GAAM90C,EAAM80C,MAAOiuY,EAAM,EAAG,IAI5CxG,EAAO,EACP5vR,EAAO,EAEP3sJ,EAAM1R,KAAOsxb,GAEf,KAAKA,GACH,GAAkB,KAAd5/a,EAAMztB,MAAgB,CAExB,MAAOo6K,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEA3sJ,EAAM9iC,OAASq/c,EACXv8a,EAAM67B,OACR77B,EAAM67B,KAAKqnZ,UAAY3G,GAEP,IAAdv8a,EAAMztB,QAERwwc,EAAK,GAAY,IAAPxG,EACVwG,EAAK,GAAMxG,IAAS,EAAK,IACzBv8a,EAAM80C,MAAQ,GAAM90C,EAAM80C,MAAOiuY,EAAM,EAAG,IAI5CxG,EAAO,EACP5vR,EAAO,CAET,MACS3sJ,EAAM67B,OACb77B,EAAM67B,KAAKshV,MAAQ,MAErBn9W,EAAM1R,KAAOuxb,GAEf,KAAKA,GACH,GAAkB,KAAd7/a,EAAMztB,QACRmK,EAAOsjB,EAAM9iC,OACTwf,EAAO8jC,IAAQ9jC,EAAO8jC,GACtB9jC,IACEsjB,EAAM67B,OACRprD,EAAMuvB,EAAM67B,KAAKqnZ,UAAYljb,EAAM9iC,OAC9B8iC,EAAM67B,KAAKshV,QAEdn9W,EAAM67B,KAAKshV,MAAQ,IAAIj5Y,MAAM87B,EAAM67B,KAAKqnZ,YAE1C,GACEljb,EAAM67B,KAAKshV,MACXz8Y,EACAyR,EAGAuK,EAEAjM,IAMc,IAAduvB,EAAMztB,QACRytB,EAAM80C,MAAQ,GAAM90C,EAAM80C,MAAOp0E,EAAOgc,EAAMvK,IAEhDquC,GAAQ9jC,EACRvK,GAAQuK,EACRsjB,EAAM9iC,QAAUwf,GAEdsjB,EAAM9iC,QAAU,MAAM8ld,EAE5Bhjb,EAAM9iC,OAAS,EACf8iC,EAAM1R,KAAO06Q,GAEf,KAAKA,GACH,GAAkB,KAAdhpQ,EAAMztB,MAAgB,CACxB,GAAa,IAATiuC,EAAc,MAAMwia,EACxBtmc,EAAO,EACP,GAEEjM,EAAM/P,EAAMyR,EAAOuK,KAEfsjB,EAAM67B,MAAQprD,GACbuvB,EAAM9iC,OAAS,QAClB8iC,EAAM67B,KAAKz2D,MAAQ3E,OAAOsgB,aAAatQ,UAElCA,GAAOiM,EAAO8jC,GAOvB,GALkB,IAAdxgB,EAAMztB,QACRytB,EAAM80C,MAAQ,GAAM90C,EAAM80C,MAAOp0E,EAAOgc,EAAMvK,IAEhDquC,GAAQ9jC,EACRvK,GAAQuK,EACJjM,EAAO,MAAMuyc,CACnB,MACShjb,EAAM67B,OACb77B,EAAM67B,KAAKz2D,KAAO,MAEpB46B,EAAM9iC,OAAS,EACf8iC,EAAM1R,KAAOipY,GAEf,KAAKA,GACH,GAAkB,KAAdv3X,EAAMztB,MAAgB,CACxB,GAAa,IAATiuC,EAAc,MAAMwia,EACxBtmc,EAAO,EACP,GACEjM,EAAM/P,EAAMyR,EAAOuK,KAEfsjB,EAAM67B,MAAQprD,GACbuvB,EAAM9iC,OAAS,QAClB8iC,EAAM67B,KAAK4qQ,SAAWhmU,OAAOsgB,aAAatQ,UAErCA,GAAOiM,EAAO8jC,GAMvB,GALkB,IAAdxgB,EAAMztB,QACRytB,EAAM80C,MAAQ,GAAM90C,EAAM80C,MAAOp0E,EAAOgc,EAAMvK,IAEhDquC,GAAQ9jC,EACRvK,GAAQuK,EACJjM,EAAO,MAAMuyc,CACnB,MACShjb,EAAM67B,OACb77B,EAAM67B,KAAK4qQ,QAAU,MAEvBzmS,EAAM1R,KAAOwxb,GAEf,KAAKA,GACH,GAAkB,IAAd9/a,EAAMztB,MAAgB,CAExB,MAAOo6K,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEA,GAAI4vR,KAAwB,MAAdv8a,EAAM80C,OAAiB,CACnCgnY,EAAKx2c,IAAM,sBACX06B,EAAM1R,KAAO,GACb,KACF,CAEAiub,EAAO,EACP5vR,EAAO,CAET,CACI3sJ,EAAM67B,OACR77B,EAAM67B,KAAKsnZ,KAASnjb,EAAMztB,OAAS,EAAK,EACxCytB,EAAM67B,KAAKzpD,MAAO,GAEpB0pc,EAAKJ,MAAQ17a,EAAM80C,MAAQ,EAC3B90C,EAAM1R,KAAO,GACb,MACF,KAAKyxb,GAEH,MAAOpzR,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEAmvR,EAAKJ,MAAQ17a,EAAM80C,MAAQqsY,GAAQ5E,GAEnCA,EAAO,EACP5vR,EAAO,EAEP3sJ,EAAM1R,KAAO0xb,GAEf,KAAKA,GACH,GAAuB,IAAnBhgb,EAAMqhb,SASR,OAPAvF,EAAKkB,SAAW2F,EAChB7G,EAAKmB,UAAYt4Y,EACjBm3Y,EAAKgB,QAAU3qc,EACf2pc,EAAKiB,SAAWv8Z,EAChBxgB,EAAMu8a,KAAOA,EACbv8a,EAAM2sJ,KAAOA,EAENwyR,GAETrD,EAAKJ,MAAQ17a,EAAM80C,MAAQ,EAC3B90C,EAAM1R,KAAO,GAEf,KAAK,GACH,GAAIs9N,IAAUmzN,IAAWnzN,IAAUozN,GAAW,MAAMgE,EAEtD,KAAK/C,GACH,GAAIjgb,EAAMggB,KAAM,CAEdu8Z,KAAiB,EAAP5vR,EACVA,GAAe,EAAPA,EAER3sJ,EAAM1R,KAAOwyb,GACb,KACF,CAEA,MAAOn0R,EAAO,EAAG,CACf,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAQA,OANA3sJ,EAAMggB,KAAe,EAAPu8Z,EAEdA,KAAU,EACV5vR,GAAQ,EAGQ,EAAP4vR,GACT,KAAK,EAGHv8a,EAAM1R,KAAO4xb,GACb,MACF,KAAK,EAKH,GAJAsC,GAAYxib,GAGZA,EAAM1R,KAAOiyb,GACT30N,IAAUozN,GAAS,CAErBzC,KAAU,EACV5vR,GAAQ,EAER,MAAMq2R,CACR,CACA,MACF,KAAK,EAGHhjb,EAAM1R,KAAOmC,GACb,MACF,KAAK,EACHqrb,EAAKx2c,IAAM,qBACX06B,EAAM1R,KAAO,GAGfiub,KAAU,EACV5vR,GAAQ,EAER,MACF,KAAKuzR,GAEH3D,KAAiB,EAAP5vR,EACVA,GAAe,EAAPA,EAGR,MAAOA,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEA,IAAY,MAAP4vR,MAAqBA,IAAS,GAAM,OAAS,CAChDT,EAAKx2c,IAAM,+BACX06B,EAAM1R,KAAO,GACb,KACF,CASA,GARA0R,EAAM9iC,OAAgB,MAAPq/c,EAIfA,EAAO,EACP5vR,EAAO,EAEP3sJ,EAAM1R,KAAO6xb,GACTv0N,IAAUozN,GAAW,MAAMgE,EAEjC,KAAK7C,GACHngb,EAAM1R,KAAO8xb,GAEf,KAAKA,GAEH,GADA1jc,EAAOsjB,EAAM9iC,OACTwf,EAAM,CAGR,GAFIA,EAAO8jC,IAAQ9jC,EAAO8jC,GACtB9jC,EAAOioD,IAAQjoD,EAAOioD,GACb,IAATjoD,EAAc,MAAMsmc,EAExB,GAAe1oc,EAAQ5Z,EAAOyR,EAAMuK,EAAMimc,GAE1Cnia,GAAQ9jC,EACRvK,GAAQuK,EACRioD,GAAQjoD,EACRimc,GAAOjmc,EACPsjB,EAAM9iC,QAAUwf,EAChB,KACF,CAEAsjB,EAAM1R,KAAO,GACb,MACF,KAAKmC,GAEH,MAAOk8J,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAkBA,GAhBA3sJ,EAAMwhb,KAAkC,KAAnB,GAAPjF,GAEdA,KAAU,EACV5vR,GAAQ,EAER3sJ,EAAMyhb,MAAmC,GAAnB,GAAPlF,GAEfA,KAAU,EACV5vR,GAAQ,EAER3sJ,EAAMuhb,MAAmC,GAAnB,GAAPhF,GAEfA,KAAU,EACV5vR,GAAQ,EAGJ3sJ,EAAMwhb,KAAO,KAAOxhb,EAAMyhb,MAAQ,GAAI,CACxC3F,EAAKx2c,IAAM,sCACX06B,EAAM1R,KAAO,GACb,KACF,CAGA0R,EAAMwgB,KAAO,EACbxgB,EAAM1R,KAAO+xb,GAEf,KAAKA,GACH,MAAOrgb,EAAMwgB,KAAOxgB,EAAMuhb,MAAO,CAE/B,MAAO50R,EAAO,EAAG,CACf,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEA3sJ,EAAMlmB,KAAKsvD,EAAMppC,EAAMwgB,SAAmB,EAAP+7Z,EAEnCA,KAAU,EACV5vR,GAAQ,CAEV,CACA,MAAO3sJ,EAAMwgB,KAAO,GAClBxgB,EAAMlmB,KAAKsvD,EAAMppC,EAAMwgB,SAAW,EAapC,GAPAxgB,EAAMk9a,QAAUl9a,EAAM0hb,OACtB1hb,EAAMo9a,QAAU,EAEhBx9a,EAAO,CAAE+sJ,KAAM3sJ,EAAMo9a,SACrBp8b,EAAMm9b,GAAc,GAAOn+a,EAAMlmB,KAAM,EAAG,GAAIkmB,EAAMk9a,QAAS,EAAGl9a,EAAMs+a,KAAM1+a,GAC5EI,EAAMo9a,QAAUx9a,EAAK+sJ,KAEjB3rK,EAAK,CACP86b,EAAKx2c,IAAM,2BACX06B,EAAM1R,KAAO,GACb,KACF,CAEA0R,EAAMwgB,KAAO,EACbxgB,EAAM1R,KAAOgyb,GAEf,KAAKA,GACH,MAAOtgb,EAAMwgB,KAAOxgB,EAAMwhb,KAAOxhb,EAAMyhb,MAAO,CAC5C,OAAS,CAMP,GALA7E,EAAO58a,EAAMk9a,QAAQX,GAAS,GAAKv8a,EAAMo9a,SAAW,GACpDoB,EAAY5B,IAAS,GACrB6B,EAAW7B,IAAS,GAAM,IAC1B8B,EAAkB,MAAP9B,EAEP,GAAejwR,EAAQ,MAE3B,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CAEV,CACA,GAAI+xR,EAAW,GAEbnC,KAAUiC,EACV7xR,GAAQ6xR,EAERx+a,EAAMlmB,KAAKkmB,EAAMwgB,QAAUk+Z,MAExB,CACH,GAAiB,KAAbA,EAAiB,CAEnB9sc,EAAI4sc,EAAY,EAChB,MAAO7xR,EAAO/6K,EAAG,CACf,GAAa,IAAT4uC,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAMA,GAHA4vR,KAAUiC,EACV7xR,GAAQ6xR,EAEW,IAAfx+a,EAAMwgB,KAAY,CACpBs7Z,EAAKx2c,IAAM,4BACX06B,EAAM1R,KAAO,GACb,KACF,CACA7d,EAAMuvB,EAAMlmB,KAAKkmB,EAAMwgB,KAAO,GAC9B9jC,EAAO,GAAY,EAAP6/b,GAEZA,KAAU,EACV5vR,GAAQ,CAEV,MACK,GAAiB,KAAb+xR,EAAiB,CAExB9sc,EAAI4sc,EAAY,EAChB,MAAO7xR,EAAO/6K,EAAG,CACf,GAAa,IAAT4uC,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAGA4vR,KAAUiC,EACV7xR,GAAQ6xR,EAER/tc,EAAM,EACNiM,EAAO,GAAY,EAAP6/b,GAEZA,KAAU,EACV5vR,GAAQ,CAEV,KACK,CAEH/6K,EAAI4sc,EAAY,EAChB,MAAO7xR,EAAO/6K,EAAG,CACf,GAAa,IAAT4uC,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAGA4vR,KAAUiC,EACV7xR,GAAQ6xR,EAER/tc,EAAM,EACNiM,EAAO,IAAa,IAAP6/b,GAEbA,KAAU,EACV5vR,GAAQ,CAEV,CACA,GAAI3sJ,EAAMwgB,KAAO9jC,EAAOsjB,EAAMwhb,KAAOxhb,EAAMyhb,MAAO,CAChD3F,EAAKx2c,IAAM,4BACX06B,EAAM1R,KAAO,GACb,KACF,CACA,MAAO5R,IACLsjB,EAAMlmB,KAAKkmB,EAAMwgB,QAAU/vC,CAE/B,CACF,CAGA,GAAIuvB,EAAM1R,OAAS,GAAO,MAG1B,GAAwB,IAApB0R,EAAMlmB,KAAK,KAAY,CACzBgic,EAAKx2c,IAAM,uCACX06B,EAAM1R,KAAO,GACb,KACF,CAcA,GATA0R,EAAMo9a,QAAU,EAEhBx9a,EAAO,CAAE+sJ,KAAM3sJ,EAAMo9a,SACrBp8b,EAAMm9b,GAAc,GAAMn+a,EAAMlmB,KAAM,EAAGkmB,EAAMwhb,KAAMxhb,EAAMk9a,QAAS,EAAGl9a,EAAMs+a,KAAM1+a,GAGnFI,EAAMo9a,QAAUx9a,EAAK+sJ,KAGjB3rK,EAAK,CACP86b,EAAKx2c,IAAM,8BACX06B,EAAM1R,KAAO,GACb,KACF,CAaA,GAXA0R,EAAMq9a,SAAW,EAGjBr9a,EAAMm9a,SAAWn9a,EAAM2hb,QACvB/hb,EAAO,CAAE+sJ,KAAM3sJ,EAAMq9a,UACrBr8b,EAAMm9b,GAAc,GAAOn+a,EAAMlmB,KAAMkmB,EAAMwhb,KAAMxhb,EAAMyhb,MAAOzhb,EAAMm9a,SAAU,EAAGn9a,EAAMs+a,KAAM1+a,GAG/FI,EAAMq9a,SAAWz9a,EAAK+sJ,KAGlB3rK,EAAK,CACP86b,EAAKx2c,IAAM,wBACX06B,EAAM1R,KAAO,GACb,KACF,CAGA,GADA0R,EAAM1R,KAAOiyb,GACT30N,IAAUozN,GAAW,MAAMgE,EAEjC,KAAKzC,GACHvgb,EAAM1R,KAAOkyb,GAEf,KAAKA,GACH,GAAIhga,GAAQ,GAAKmkB,GAAQ,IAAK,CAE5Bm3Y,EAAKkB,SAAW2F,EAChB7G,EAAKmB,UAAYt4Y,EACjBm3Y,EAAKgB,QAAU3qc,EACf2pc,EAAKiB,SAAWv8Z,EAChBxgB,EAAMu8a,KAAOA,EACbv8a,EAAM2sJ,KAAOA,EAEbkvR,GAAaC,EAAME,GAEnB2G,EAAM7G,EAAKkB,SACX1ic,EAASwhc,EAAKxhc,OACdqqD,EAAOm3Y,EAAKmB,UACZ9qc,EAAO2pc,EAAKgB,QACZp8c,EAAQo7c,EAAKp7c,MACb8/C,EAAOs7Z,EAAKiB,SACZR,EAAOv8a,EAAMu8a,KACb5vR,EAAO3sJ,EAAM2sJ,KAGT3sJ,EAAM1R,OAAS,KACjB0R,EAAMygD,MAAQ,GAEhB,KACF,CAEA,IADAzgD,EAAMygD,KAAO,IACJ,CAMP,GALAm8X,EAAO58a,EAAMk9a,QAAQX,GAAS,GAAKv8a,EAAMo9a,SAAW,GACpDoB,EAAY5B,IAAS,GACrB6B,EAAW7B,IAAS,GAAM,IAC1B8B,EAAkB,MAAP9B,EAEP4B,GAAa7xR,EAAQ,MAEzB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CAEV,CACA,GAAI8xR,GAAgC,KAAV,IAAVA,GAAuB,CAIrC,IAHAmE,EAAYpE,EACZqE,EAAUpE,EACVqE,EAAWpE,IACF,CAOP,GANA9B,EAAO58a,EAAMk9a,QAAQ4F,IACXvG,GAAS,GAAMqG,EAAYC,GAAY,IAAoCD,IACrFpE,EAAY5B,IAAS,GACrB6B,EAAW7B,IAAS,GAAM,IAC1B8B,EAAkB,MAAP9B,EAENgG,EAAYpE,GAAc7xR,EAAQ,MAEvC,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CAEV,CAEA4vR,KAAUqG,EACVj2R,GAAQi2R,EAER5ib,EAAMygD,MAAQmiY,CAChB,CAOA,GALArG,KAAUiC,EACV7xR,GAAQ6xR,EAERx+a,EAAMygD,MAAQ+9X,EACdx+a,EAAM9iC,OAASwhd,EACC,IAAZD,EAAe,CAIjBz+a,EAAM1R,KAAOuyb,GACb,KACF,CACA,GAAc,GAAVpC,EAAc,CAEhBz+a,EAAMygD,MAAQ,EACdzgD,EAAM1R,KAAO,GACb,KACF,CACA,GAAc,GAAVmwb,EAAc,CAChB3C,EAAKx2c,IAAM,8BACX06B,EAAM1R,KAAO,GACb,KACF,CACA0R,EAAMm9W,MAAkB,GAAVshE,EACdz+a,EAAM1R,KAAOmyb,GAEf,KAAKA,GACH,GAAIzgb,EAAMm9W,MAAO,CAEfvrY,EAAIouB,EAAMm9W,MACV,MAAOxwN,EAAO/6K,EAAG,CACf,GAAa,IAAT4uC,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEA3sJ,EAAM9iC,QAAUq/c,GAAS,GAAKv8a,EAAMm9W,OAAS,EAE7Co/D,KAAUv8a,EAAMm9W,MAChBxwN,GAAQ3sJ,EAAMm9W,MAEdn9W,EAAMygD,MAAQzgD,EAAMm9W,KACtB,CAEAn9W,EAAM4hb,IAAM5hb,EAAM9iC,OAClB8iC,EAAM1R,KAAOoyb,GAEf,KAAKA,GACH,OAAS,CAMP,GALA9D,EAAO58a,EAAMm9a,SAASZ,GAAS,GAAKv8a,EAAMq9a,UAAY,GACtDmB,EAAY5B,IAAS,GACrB6B,EAAW7B,IAAS,GAAM,IAC1B8B,EAAkB,MAAP9B,EAEP,GAAejwR,EAAQ,MAE3B,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CAEV,CACA,GAAyB,KAAV,IAAV8xR,GAAuB,CAI1B,IAHAmE,EAAYpE,EACZqE,EAAUpE,EACVqE,EAAWpE,IACF,CAOP,GANA9B,EAAO58a,EAAMm9a,SAAS2F,IACZvG,GAAS,GAAMqG,EAAYC,GAAY,IAAoCD,IACrFpE,EAAY5B,IAAS,GACrB6B,EAAW7B,IAAS,GAAM,IAC1B8B,EAAkB,MAAP9B,EAENgG,EAAYpE,GAAc7xR,EAAQ,MAEvC,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CAEV,CAEA4vR,KAAUqG,EACVj2R,GAAQi2R,EAER5ib,EAAMygD,MAAQmiY,CAChB,CAMA,GAJArG,KAAUiC,EACV7xR,GAAQ6xR,EAERx+a,EAAMygD,MAAQ+9X,EACA,GAAVC,EAAc,CAChB3C,EAAKx2c,IAAM,wBACX06B,EAAM1R,KAAO,GACb,KACF,CACA0R,EAAM7qB,OAASupc,EACf1+a,EAAMm9W,MAAoB,GAAZ,EACdn9W,EAAM1R,KAAOqyb,GAEf,KAAKA,GACH,GAAI3gb,EAAMm9W,MAAO,CAEfvrY,EAAIouB,EAAMm9W,MACV,MAAOxwN,EAAO/6K,EAAG,CACf,GAAa,IAAT4uC,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEA3sJ,EAAM7qB,QAAUonc,GAAS,GAAKv8a,EAAMm9W,OAAS,EAE7Co/D,KAAUv8a,EAAMm9W,MAChBxwN,GAAQ3sJ,EAAMm9W,MAEdn9W,EAAMygD,MAAQzgD,EAAMm9W,KACtB,CAEA,GAAIn9W,EAAM7qB,OAAS6qB,EAAMk8a,KAAM,CAC7BJ,EAAKx2c,IAAM,gCACX06B,EAAM1R,KAAO,GACb,KACF,CAGA0R,EAAM1R,KAAOsyb,GAEf,KAAKA,GACH,GAAa,IAATj8Y,EAAc,MAAMq+Y,EAExB,GADAtmc,EAAOs/b,EAAOr3Y,EACV3kC,EAAM7qB,OAASuH,EAAM,CAEvB,GADAA,EAAOsjB,EAAM7qB,OAASuH,EAClBA,EAAOsjB,EAAMo8a,OACXp8a,EAAMw9a,KAAM,CACd1B,EAAKx2c,IAAM,gCACX06B,EAAM1R,KAAO,GACb,KACF,CAiBE5R,EAAOsjB,EAAMq8a,OACf3/b,GAAQsjB,EAAMq8a,MACdxqc,EAAOmuB,EAAMm8a,MAAQz/b,GAGrB7K,EAAOmuB,EAAMq8a,MAAQ3/b,EAEnBA,EAAOsjB,EAAM9iC,SAAUwf,EAAOsjB,EAAM9iC,QACxC2/c,EAAc78a,EAAM3hC,MACtB,MAEEw+c,EAAcvic,EACdzI,EAAO8wc,EAAM3ib,EAAM7qB,OACnBuH,EAAOsjB,EAAM9iC,OAEXwf,EAAOioD,IAAQjoD,EAAOioD,GAC1BA,GAAQjoD,EACRsjB,EAAM9iC,QAAUwf,EAChB,GACEpC,EAAOqoc,KAAS9F,EAAYhrc,aACnB6K,GACU,IAAjBsjB,EAAM9iC,SAAgB8iC,EAAM1R,KAAOkyb,IACvC,MACF,KAAKK,GACH,GAAa,IAATl8Y,EAAc,MAAMq+Y,EACxB1oc,EAAOqoc,KAAS3ib,EAAM9iC,OACtBynE,IACA3kC,EAAM1R,KAAOkyb,GACb,MACF,KAAKM,GACH,GAAI9gb,EAAMskO,KAAM,CAEd,MAAO33E,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IAEA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAaA,GAXAqvR,GAAQr3Y,EACRm3Y,EAAKiG,WAAa/F,EAClBh8a,EAAMpH,OAASojb,EACXA,IACFF,EAAKJ,MAAQ17a,EAAM80C,MAEd90C,EAAMztB,MAAQ,GAAMytB,EAAM80C,MAAOx6D,EAAQ0hc,EAAM2G,EAAM3G,GAAQ,GAAQh8a,EAAM80C,MAAOx6D,EAAQ0hc,EAAM2G,EAAM3G,IAG7GA,EAAOr3Y,GAEF3kC,EAAMztB,MAAQgqc,EAAO4E,GAAQ5E,MAAWv8a,EAAM80C,MAAO,CACxDgnY,EAAKx2c,IAAM,uBACX06B,EAAM1R,KAAO,GACb,KACF,CAEAiub,EAAO,EACP5vR,EAAO,CAGT,CACA3sJ,EAAM1R,KAAOy+O,GAEf,KAAKA,GACH,GAAI/sO,EAAMskO,MAAQtkO,EAAMztB,MAAO,CAE7B,MAAOo6K,EAAO,GAAI,CAChB,GAAa,IAATnsI,EAAc,MAAMwia,EACxBxia,IACA+7Z,GAAQ77c,EAAMyR,MAAWw6K,EACzBA,GAAQ,CACV,CAEA,GAAI4vR,KAAwB,WAAdv8a,EAAMpH,OAAqB,CACvCkjb,EAAKx2c,IAAM,yBACX06B,EAAM1R,KAAO,GACb,KACF,CAEAiub,EAAO,EACP5vR,EAAO,CAGT,CACA3sJ,EAAM1R,KAAOgwQ,GAEf,KAAKA,GACHt9Q,EAAMk+b,GACN,MAAM8D,EACR,KAAK,GACHhic,EAAMq+b,GACN,MAAM2D,EACR,KAAKjC,GACH,OAAOzB,GACT,KAAK0B,GAEL,QACE,OAAO5B,GAsBX,OARAtD,EAAKkB,SAAW2F,EAChB7G,EAAKmB,UAAYt4Y,EACjBm3Y,EAAKgB,QAAU3qc,EACf2pc,EAAKiB,SAAWv8Z,EAChBxgB,EAAMu8a,KAAOA,EACbv8a,EAAM2sJ,KAAOA,GAGT3sJ,EAAMm8a,OAAUH,IAASF,EAAKmB,WAAaj9a,EAAM1R,KAAO,KACvC0R,EAAM1R,KAAOwyb,IAASl1N,IAAUkzN,MAC/C2D,GAAa3G,EAAMA,EAAKxhc,OAAQwhc,EAAKkB,SAAUhB,EAAOF,EAAKmB,YAC7Dj9a,EAAM1R,KAAOyyb,GACNzB,KAGXvD,GAAOD,EAAKiB,SACZf,GAAQF,EAAKmB,UACbnB,EAAKgG,UAAY/F,EACjBD,EAAKiG,WAAa/F,EAClBh8a,EAAMpH,OAASojb,EACXh8a,EAAMskO,MAAQ03M,IAChBF,EAAKJ,MAAQ17a,EAAM80C,MAChB90C,EAAMztB,MAAQ,GAAMytB,EAAM80C,MAAOx6D,EAAQ0hc,EAAMF,EAAKkB,SAAWhB,GAAQ,GAAQh8a,EAAM80C,MAAOx6D,EAAQ0hc,EAAMF,EAAKkB,SAAWhB,IAE/HF,EAAKsH,UAAYpjb,EAAM2sJ,MAAQ3sJ,EAAMggB,KAAO,GAAK,IAC9BhgB,EAAM1R,OAAS,GAAO,IAAM,IAC5B0R,EAAM1R,OAASiyb,IAAQvgb,EAAM1R,OAAS6xb,GAAQ,IAAM,IACzD,IAARpE,GAAsB,IAATC,GAAepwN,IAAUkzN,KAAa99b,IAAQi+b,KAC/Dj+b,EAAMu+b,IAEDv+b,EACT,CCz6Ce,SAASqic,KAEtBjnd,KAAKsE,MAAQ,KACbtE,KAAK0gd,QAAU,EAEf1gd,KAAK2gd,SAAW,EAEhB3gd,KAAK0ld,SAAW,EAEhB1ld,KAAKke,OAAS,KACdle,KAAK4gd,SAAW,EAEhB5gd,KAAK6gd,UAAY,EAEjB7gd,KAAK2ld,UAAY,EAEjB3ld,KAAKkJ,IAAM,GAEXlJ,KAAK4jC,MAAQ,KAEb5jC,KAAKgnd,UAAY,EAEjBhnd,KAAKs/c,MAAQ,CACf,CCZe,MAAM4H,GACjB,WAAA3jd,GACIvD,KAAK0/c,KAAO,IAAIuH,GAChBjnd,KAAK2iM,UAAY,OACjB3iM,KAAK0/c,KAAKxhc,OAAS,IAAIjF,WAAWjZ,KAAK2iM,WACvC3iM,KAAK8ld,WAAa,EAElBE,GAAYhmd,KAAK0/c,KAAM1/c,KAAK8ld,WAChC,CAEA,QAAAqB,CAAS3mc,GACAA,GAODxgB,KAAK0/c,KAAKp7c,MAAQkc,EAClBxgB,KAAK0/c,KAAKiB,SAAW3gd,KAAK0/c,KAAKp7c,MAAMxD,OACrCd,KAAK0/c,KAAKgB,QAAU,IANpB1gd,KAAK0/c,KAAKp7c,MAAQ,KAClBtE,KAAK0/c,KAAKiB,SAAW,EACrB3gd,KAAK0/c,KAAKgB,QAAU,EAO5B,CAEA,OAAA4F,CAAQ1/c,GAIAA,EAAW5G,KAAK2iM,YAChB3iM,KAAK2iM,UAAY/7L,EACjB5G,KAAK0/c,KAAKxhc,OAAS,IAAIjF,WAAWjZ,KAAK2iM,YAI3C3iM,KAAK0/c,KAAKkB,SAAW,EACrB5gd,KAAK0/c,KAAKmB,UAAYj6c,EAGtB,IAAIge,EAAM0hc,GAAQtmd,KAAK0/c,KAAM,GAC7B,GAAI96b,EAAM,EACN,MAAM,IAAI5hB,MAAM,uBAGpB,GAAIhD,KAAK0/c,KAAKkB,UAAYh6c,EACtB,MAAM,IAAI5D,MAAM,yBAGpB,OAAO,IAAIiW,WAAWjZ,KAAK0/c,KAAKxhc,OAAOhF,OAAQ,EAAGlZ,KAAK0/c,KAAKkB,SAChE,CAEA,KAAA39a,GACI2ib,GAAa5ld,KAAK0/c,KACtB,ECvDJ,IAAI0H,GAAwB,EAIxBC,GAAwB,EACxBC,GAAwB,EAExBC,GAAwB,EAK5B,SAASC,GAAKtoc,GAAO,IAAI7K,EAAM6K,EAAIpe,OAAQ,QAASuT,GAAO,EAAK6K,EAAI7K,GAAO,CAAK,CAIhF,IAAIozc,GAAe,EACfC,GAAe,EACfC,GAAe,EAGfC,GAAe,EACfC,GAAe,IAQfC,GAAgB,GAGhBpgD,GAAgB,IAGhBqgD,GAAgBrgD,GAAW,EAAIogD,GAG/BE,GAAgB,GAGhBC,GAAgB,GAGhBC,GAAgB,EAAIH,GAAU,EAG9BI,GAAgB,GAGhBC,GAAgB,GAQhBC,GAAc,EAGdC,GAAc,IAGdC,GAAc,GAGdC,GAAc,GAGdC,GAAc,GAIdC,GACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAEvDC,GACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAEhEC,GACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAEnCC,GACF,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAa3CC,GAAgB,IAGhBC,GAAgB,IAAIjhd,MAAsB,GAAfigd,GAAU,IACzCP,GAAKuB,IAOL,IAAIC,GAAgB,IAAIlhd,MAAgB,EAAVkgd,IAC9BR,GAAKwB,IAKL,IAAIC,GAAgB,IAAInhd,MAAMghd,IAC9BtB,GAAKyB,IAML,IAAIC,GAAgB,IAAIphd,MAAM+/c,GAAYD,GAAY,GACtDJ,GAAK0B,IAGL,IAAIC,GAAgB,IAAIrhd,MAAMggd,IAC9BN,GAAK2B,IAGL,IAkBIC,GACAC,GACAC,GApBAC,GAAgB,IAAIzhd,MAAMkgd,IAK9B,SAASwB,GAAeC,EAAaC,EAAYC,EAAYnnG,EAAOonG,GAElE5pd,KAAKypd,YAAeA,EACpBzpd,KAAK0pd,WAAeA,EACpB1pd,KAAK2pd,WAAeA,EACpB3pd,KAAKwiX,MAAeA,EACpBxiX,KAAK4pd,WAAeA,EAGpB5pd,KAAK6pd,UAAeJ,GAAeA,EAAY3od,MACjD,CAQA,SAASgpd,GAASC,EAAUC,GAC1Bhqd,KAAK+pd,SAAWA,EAChB/pd,KAAKiqd,SAAW,EAChBjqd,KAAKgqd,UAAYA,CACnB,CAIA,SAASE,GAAO76T,GACd,OAAOA,EAAO,IAAM45T,GAAW55T,GAAQ45T,GAAW,KAAO55T,IAAS,GACpE,CAOA,SAAS86T,GAAU99a,EAAG0nF,GAGpB1nF,EAAE+9a,YAAY/9a,EAAEshC,WAAmB,IAAN,EAC7BthC,EAAE+9a,YAAY/9a,EAAEshC,WAAcomD,IAAM,EAAK,GAC3C,CAOA,SAASs2V,GAAUh+a,EAAG9rC,EAAOO,GACvBurC,EAAEi+a,SAAYlC,GAAWtnd,GAC3BurC,EAAEk+a,QAAWhqd,GAAS8rC,EAAEi+a,SAAY,MACpCH,GAAU99a,EAAGA,EAAEk+a,QACfl+a,EAAEk+a,OAAShqd,GAAU6nd,GAAW/7a,EAAEi+a,SAClCj+a,EAAEi+a,UAAYxpd,EAASsnd,KAEvB/7a,EAAEk+a,QAAWhqd,GAAS8rC,EAAEi+a,SAAY,MACpCj+a,EAAEi+a,UAAYxpd,EAElB,CAGA,SAAS0pd,GAAUn+a,EAAGhjB,EAAGqiK,GACvB2+R,GAAUh+a,EAAGq/I,EAAS,EAAJriK,GAAiBqiK,EAAS,EAAJriK,EAAQ,GAClD,CAQA,SAASohc,GAAWxnd,EAAMoR,GACxB,IAAI3P,EAAM,EACV,GACEA,GAAc,EAAPzB,EACPA,KAAU,EACVyB,IAAQ,UACC2P,EAAM,GACjB,OAAO3P,IAAQ,CACjB,CAMA,SAASgmd,GAASr+a,GACG,KAAfA,EAAEi+a,UACJH,GAAU99a,EAAGA,EAAEk+a,QACfl+a,EAAEk+a,OAAS,EACXl+a,EAAEi+a,SAAW,GAEJj+a,EAAEi+a,UAAY,IACvBj+a,EAAE+9a,YAAY/9a,EAAEshC,WAAwB,IAAXthC,EAAEk+a,OAC/Bl+a,EAAEk+a,SAAW,EACbl+a,EAAEi+a,UAAY,EAElB,CAaA,SAASK,GAAWt+a,EAAGq6D,GAIrB,IAOIlrC,EACAhmD,EAAG8L,EACHivK,EACAq6R,EACA90c,EAXA41K,EAAkBhlF,EAAKqjX,SACvBE,EAAkBvjX,EAAKujX,SACvBY,EAAkBnkX,EAAKsjX,UAAUP,YACjCI,EAAkBnjX,EAAKsjX,UAAUH,UACjC9oE,EAAkBr6S,EAAKsjX,UAAUN,WACjCx2c,EAAkBwzF,EAAKsjX,UAAUL,WACjCC,EAAkBljX,EAAKsjX,UAAUJ,WAMjChgZ,EAAW,EAEf,IAAK2mH,EAAO,EAAGA,GAAQ43R,GAAU53R,IAC/BlkJ,EAAEy+a,SAASv6R,GAAQ,EAQrB,IAFA7E,EAA0B,EAArBr/I,EAAE0+a,KAAK1+a,EAAE2+a,UAAgB,GAAa,EAEtCxvZ,EAAInvB,EAAE2+a,SAAW,EAAGxvZ,EAAI0sZ,GAAW1sZ,IACtChmD,EAAI62B,EAAE0+a,KAAKvvZ,GACX+0H,EAAO7E,EAA+B,EAA1BA,EAAS,EAAJl2K,EAAQ,GAAiB,GAAa,EACnD+6K,EAAOq5R,IACTr5R,EAAOq5R,EACPhgZ,KAEF8hH,EAAS,EAAJl2K,EAAQ,GAAa+6K,EAGtB/6K,EAAIy0c,IAER59a,EAAEy+a,SAASv6R,KACXq6R,EAAQ,EACJp1c,GAAKtC,IACP03c,EAAQ7pE,EAAMvrY,EAAItC,IAEpB4C,EAAI41K,EAAS,EAAJl2K,GACT62B,EAAE4+a,SAAWn1c,GAAKy6K,EAAOq6R,GACrBf,IACFx9a,EAAE6+a,YAAcp1c,GAAK+0c,EAAU,EAAJr1c,EAAQ,GAAao1c,KAGpD,GAAiB,IAAbhhZ,EAAJ,CAMA,EAAG,CACD2mH,EAAOq5R,EAAa,EACpB,MAA4B,IAArBv9a,EAAEy+a,SAASv6R,GAAeA,IACjClkJ,EAAEy+a,SAASv6R,KACXlkJ,EAAEy+a,SAASv6R,EAAO,IAAM,EACxBlkJ,EAAEy+a,SAASlB,KAIXhgZ,GAAY,CACd,OAASA,EAAW,GAOpB,IAAK2mH,EAAOq5R,EAAqB,IAATr5R,EAAYA,IAAQ,CAC1C/6K,EAAI62B,EAAEy+a,SAASv6R,GACf,MAAa,IAAN/6K,EACL8L,EAAI+qB,EAAE0+a,OAAOvvZ,GACTl6C,EAAI2oc,IACJv+R,EAAS,EAAJpqK,EAAQ,KAAeivK,IAE9BlkJ,EAAE4+a,UAAY16R,EAAO7E,EAAS,EAAJpqK,EAAQ,IAAcoqK,EAAS,EAAJpqK,GACrDoqK,EAAS,EAAJpqK,EAAQ,GAAaivK,GAE5B/6K,IAEJ,CAnC8B,CAoChC,CAWA,SAAS21c,GAAUz/R,EAAMu+R,EAAUa,GAKjC,IAEIv6R,EACA/6K,EAHA41c,EAAY,IAAItjd,MAAMqgd,GAAW,GACjClld,EAAO,EAOX,IAAKstL,EAAO,EAAGA,GAAQ43R,GAAU53R,IAC/B66R,EAAU76R,GAAQttL,EAAQA,EAAO6nd,EAASv6R,EAAO,IAAO,EAS1D,IAAK/6K,EAAI,EAAIA,GAAKy0c,EAAUz0c,IAAK,CAC/B,IAAInB,EAAMq3K,EAAS,EAAJl2K,EAAQ,GACX,IAARnB,IAEJq3K,EAAS,EAAJl2K,GAAkBi1c,GAAWW,EAAU/2c,KAAQA,GAItD,CACF,CAMA,SAASg3c,KACP,IAAI71c,EACA+6K,EACAzvL,EACAmC,EACAosJ,EACAy7T,EAAW,IAAIhjd,MAAMqgd,GAAW,GAiBpC,IADArnd,EAAS,EACJmC,EAAO,EAAGA,EAAO6kd,GAAe,EAAG7kd,IAEtC,IADAkmd,GAAYlmd,GAAQnC,EACf0U,EAAI,EAAGA,EAAK,GAAKkzc,GAAYzld,GAAQuS,IACxC0zc,GAAapod,KAAYmC,EAY7B,IAJAimd,GAAapod,EAAS,GAAKmC,EAG3BosJ,EAAO,EACFpsJ,EAAO,EAAGA,EAAO,GAAIA,IAExB,IADAsmd,GAAUtmd,GAAQosJ,EACb75I,EAAI,EAAGA,EAAK,GAAKmzc,GAAY1ld,GAAQuS,IACxCyzc,GAAW55T,KAAUpsJ,EAKzB,IADAosJ,IAAS,EACFpsJ,EAAO+kd,GAAS/kd,IAErB,IADAsmd,GAAUtmd,GAAQosJ,GAAQ,EACrB75I,EAAI,EAAGA,EAAK,GAAMmzc,GAAY1ld,GAAQ,EAAKuS,IAC9Cyzc,GAAW,IAAM55T,KAAUpsJ,EAM/B,IAAKstL,EAAO,EAAGA,GAAQ43R,GAAU53R,IAC/Bu6R,EAASv6R,GAAQ,EAGnB/6K,EAAI,EACJ,MAAOA,GAAK,IACVuzc,GAAiB,EAAJvzc,EAAQ,GAAa,EAClCA,IACAs1c,EAAS,KAEX,MAAOt1c,GAAK,IACVuzc,GAAiB,EAAJvzc,EAAQ,GAAa,EAClCA,IACAs1c,EAAS,KAEX,MAAOt1c,GAAK,IACVuzc,GAAiB,EAAJvzc,EAAQ,GAAa,EAClCA,IACAs1c,EAAS,KAEX,MAAOt1c,GAAK,IACVuzc,GAAiB,EAAJvzc,EAAQ,GAAa,EAClCA,IACAs1c,EAAS,KASX,IAHAK,GAAUpC,GAAchB,GAAU,EAAG+C,GAGhCt1c,EAAI,EAAGA,EAAIwyc,GAASxyc,IACvBwzc,GAAiB,EAAJxzc,EAAQ,GAAa,EAClCwzc,GAAiB,EAAJxzc,GAAkBi1c,GAAWj1c,EAAG,GAI/C4zc,GAAgB,IAAII,GAAeT,GAAcL,GAAahhD,GAAW,EAAGqgD,GAASI,IACrFkB,GAAgB,IAAIG,GAAeR,GAAcL,GAAa,EAAYX,GAASG,IACnFmB,GAAiB,IAAIE,GAAe,IAAI1hd,MAAM,GAAI8gd,GAAc,EAAWX,GAAUI,GAGvF,CAMA,SAASiD,GAAWj/a,GAClB,IAAI72B,EAGJ,IAAKA,EAAI,EAAGA,EAAIuyc,GAAUvyc,IAAO62B,EAAEk/a,UAAc,EAAJ/1c,GAAkB,EAC/D,IAAKA,EAAI,EAAGA,EAAIwyc,GAAUxyc,IAAO62B,EAAEm/a,UAAc,EAAJh2c,GAAkB,EAC/D,IAAKA,EAAI,EAAGA,EAAIyyc,GAAUzyc,IAAO62B,EAAEo/a,QAAY,EAAJj2c,GAAkB,EAE7D62B,EAAEk/a,UAAsB,EAAZjD,IAA0B,EACtCj8a,EAAE4+a,QAAU5+a,EAAE6+a,WAAa,EAC3B7+a,EAAEq/a,SAAWr/a,EAAE2D,QAAU,CAC3B,CAMA,SAAS27a,GAAUt/a,GAEbA,EAAEi+a,SAAW,EACfH,GAAU99a,EAAGA,EAAEk+a,QACNl+a,EAAEi+a,SAAW,IAEtBj+a,EAAE+9a,YAAY/9a,EAAEshC,WAAathC,EAAEk+a,QAEjCl+a,EAAEk+a,OAAS,EACXl+a,EAAEi+a,SAAW,CACf,CAMA,SAASsB,GAAWv/a,EAAGntB,EAAK7K,EAAKupD,GAM/B+tZ,GAAUt/a,GAENuxB,IACFusZ,GAAU99a,EAAGh4B,GACb81c,GAAU99a,GAAIh4B,IAKhB,GAAeg4B,EAAE+9a,YAAa/9a,EAAEpqC,OAAQid,EAAK7K,EAAKg4B,EAAEshC,SACpDthC,EAAEshC,SAAWt5D,CACf,CAMA,SAASw3c,GAAQngS,EAAMl2K,EAAG8L,EAAG3Q,GAC3B,IAAIm7c,EAAU,EAAJt2c,EACNu2c,EAAU,EAAJzqc,EACV,OAAQoqK,EAAKogS,GAAgBpgS,EAAKqgS,IAC1BrgS,EAAKogS,KAAkBpgS,EAAKqgS,IAAiBp7c,EAAM6E,IAAM7E,EAAM2Q,EACzE,CAQA,SAAS0qc,GAAW3/a,EAAGq/I,EAAMlxK,GAK3B,IAAIgxC,EAAInf,EAAE0+a,KAAKvwc,GACX0H,EAAI1H,GAAK,EACb,MAAO0H,GAAKmqB,EAAE4/a,SAAU,CAOtB,GALI/pc,EAAImqB,EAAE4/a,UACRJ,GAAQngS,EAAMr/I,EAAE0+a,KAAK7oc,EAAI,GAAImqB,EAAE0+a,KAAK7oc,GAAImqB,EAAE17B,QAC1CuR,IAGE2pc,GAAQngS,EAAMlgI,EAAGnf,EAAE0+a,KAAK7oc,GAAImqB,EAAE17B,OAAU,MAG5C07B,EAAE0+a,KAAKvwc,GAAK6xB,EAAE0+a,KAAK7oc,GACnB1H,EAAI0H,EAGJA,IAAM,CACR,CACAmqB,EAAE0+a,KAAKvwc,GAAKgxC,CACd,CASA,SAAS0ga,GAAe7/a,EAAG8/a,EAAOC,GAKhC,IAAI/8T,EACAiiH,EAEAruQ,EACA89Y,EAFAsrE,EAAK,EAIT,GAAmB,IAAfhgb,EAAEq/a,SACJ,GACEr8T,EAAQhjH,EAAE+9a,YAAY/9a,EAAEigb,MAAa,EAALD,IAAW,EAAMhgb,EAAE+9a,YAAY/9a,EAAEigb,MAAa,EAALD,EAAS,GAClF/6M,EAAKjlO,EAAE+9a,YAAY/9a,EAAEkgb,MAAQF,GAC7BA,IAEa,IAATh9T,EACFm7T,GAAUn+a,EAAGilO,EAAI66M,IAIjBlpd,EAAOimd,GAAa53M,GACpBk5M,GAAUn+a,EAAGppC,EAAOyka,GAAW,EAAGykD,GAClCprE,EAAQ2nE,GAAYzld,GACN,IAAV89Y,IACFzvI,GAAM63M,GAAYlmd,GAClBond,GAAUh+a,EAAGilO,EAAIyvI,IAEnB1xP,IACApsJ,EAAOind,GAAO76T,GAGdm7T,GAAUn+a,EAAGppC,EAAMmpd,GACnBrrE,EAAQ4nE,GAAY1ld,GACN,IAAV89Y,IACF1xP,GAAQk6T,GAAUtmd,GAClBond,GAAUh+a,EAAGgjH,EAAM0xP,WAQhBsrE,EAAKhgb,EAAEq/a,UAGlBlB,GAAUn+a,EAAGi8a,GAAW6D,EAC1B,CAWA,SAASK,GAAWngb,EAAGq6D,GAIrB,IAIIlxF,EAAG8L,EAEHgf,EANAorJ,EAAWhlF,EAAKqjX,SAChBc,EAAWnkX,EAAKsjX,UAAUP,YAC1BI,EAAYnjX,EAAKsjX,UAAUH,UAC3BrnG,EAAW97Q,EAAKsjX,UAAUxnG,MAE1BynG,GAAY,EAUhB,IAHA59a,EAAE4/a,SAAW,EACb5/a,EAAE2+a,SAAW9C,GAER1yc,EAAI,EAAGA,EAAIgtW,EAAOhtW,IACQ,IAAzBk2K,EAAS,EAAJl2K,IACP62B,EAAE0+a,OAAO1+a,EAAE4/a,UAAYhC,EAAWz0c,EAClC62B,EAAE17B,MAAM6E,GAAK,GAGbk2K,EAAS,EAAJl2K,EAAQ,GAAa,EAS9B,MAAO62B,EAAE4/a,SAAW,EAClB3rb,EAAO+L,EAAE0+a,OAAO1+a,EAAE4/a,UAAahC,EAAW,IAAMA,EAAW,EAC3Dv+R,EAAY,EAAPprJ,GAAqB,EAC1B+L,EAAE17B,MAAM2vB,GAAQ,EAChB+L,EAAE4+a,UAEEpB,IACFx9a,EAAE6+a,YAAcL,EAAa,EAAPvqb,EAAW,IASrC,IALAomE,EAAKujX,SAAWA,EAKXz0c,EAAK62B,EAAE4/a,UAAY,EAAcz2c,GAAK,EAAGA,IAAOw2c,GAAW3/a,EAAGq/I,EAAMl2K,GAKzE8qB,EAAOkiV,EACP,GAGEhtW,EAAI62B,EAAE0+a,KAAK,GACX1+a,EAAE0+a,KAAK,GAAiB1+a,EAAE0+a,KAAK1+a,EAAE4/a,YACjCD,GAAW3/a,EAAGq/I,EAAM,GAGpBpqK,EAAI+qB,EAAE0+a,KAAK,GAEX1+a,EAAE0+a,OAAO1+a,EAAE2+a,UAAYx1c,EACvB62B,EAAE0+a,OAAO1+a,EAAE2+a,UAAY1pc,EAGvBoqK,EAAY,EAAPprJ,GAAqBorJ,EAAS,EAAJl2K,GAAkBk2K,EAAS,EAAJpqK,GACtD+qB,EAAE17B,MAAM2vB,IAAS+L,EAAE17B,MAAM6E,IAAM62B,EAAE17B,MAAM2Q,GAAK+qB,EAAE17B,MAAM6E,GAAK62B,EAAE17B,MAAM2Q,IAAM,EACvEoqK,EAAS,EAAJl2K,EAAQ,GAAak2K,EAAS,EAAJpqK,EAAQ,GAAagf,EAGpD+L,EAAE0+a,KAAK,GAAiBzqb,IACxB0rb,GAAW3/a,EAAGq/I,EAAM,SAEbr/I,EAAE4/a,UAAY,GAEvB5/a,EAAE0+a,OAAO1+a,EAAE2+a,UAAY3+a,EAAE0+a,KAAK,GAK9BJ,GAAWt+a,EAAGq6D,GAGdykX,GAAUz/R,EAAMu+R,EAAU59a,EAAEy+a,SAC9B,CAOA,SAAS2B,GAAUpgb,EAAGq/I,EAAMu+R,GAK1B,IAAIz0c,EAEAk3c,EADAC,GAAW,EAGXC,EAAUlhS,EAAK,GAEfj8K,EAAQ,EACRo9c,EAAY,EACZC,EAAY,EAQhB,IANgB,IAAZF,IACFC,EAAY,IACZC,EAAY,GAEdphS,EAAsB,GAAhBu+R,EAAW,GAAS,GAAa,MAElCz0c,EAAI,EAAGA,GAAKy0c,EAAUz0c,IACzBk3c,EAASE,EACTA,EAAUlhS,EAAe,GAATl2K,EAAI,GAAS,KAEvB/F,EAAQo9c,GAAaH,IAAWE,IAG3Bn9c,EAAQq9c,EACjBzgb,EAAEo/a,QAAiB,EAATiB,IAAwBj9c,EAEd,IAAXi9c,GAELA,IAAWC,GAAWtgb,EAAEo/a,QAAiB,EAATiB,KACpCrgb,EAAEo/a,QAAkB,EAAVlD,OAED94c,GAAS,GAClB48B,EAAEo/a,QAAoB,EAAZjD,MAGVn8a,EAAEo/a,QAAsB,EAAdhD,MAGZh5c,EAAQ,EACRk9c,EAAUD,EAEM,IAAZE,GACFC,EAAY,IACZC,EAAY,GAEHJ,IAAWE,GACpBC,EAAY,EACZC,EAAY,IAGZD,EAAY,EACZC,EAAY,GAGlB,CAOA,SAASC,GAAU1gb,EAAGq/I,EAAMu+R,GAK1B,IAAIz0c,EAEAk3c,EADAC,GAAW,EAGXC,EAAUlhS,EAAK,GAEfj8K,EAAQ,EACRo9c,EAAY,EACZC,EAAY,EAQhB,IALgB,IAAZF,IACFC,EAAY,IACZC,EAAY,GAGTt3c,EAAI,EAAGA,GAAKy0c,EAAUz0c,IAIzB,GAHAk3c,EAASE,EACTA,EAAUlhS,EAAe,GAATl2K,EAAI,GAAS,OAEvB/F,EAAQo9c,GAAaH,IAAWE,GAAtC,CAGO,GAAIn9c,EAAQq9c,EACjB,GAAKtC,GAAUn+a,EAAGqgb,EAAQrgb,EAAEo/a,eAA+B,MAAVh8c,QAE7B,IAAXi9c,GACLA,IAAWC,IACbnC,GAAUn+a,EAAGqgb,EAAQrgb,EAAEo/a,SACvBh8c,KAGF+6c,GAAUn+a,EAAGk8a,GAASl8a,EAAEo/a,SACxBpB,GAAUh+a,EAAG58B,EAAQ,EAAG,IAEfA,GAAS,IAClB+6c,GAAUn+a,EAAGm8a,GAAWn8a,EAAEo/a,SAC1BpB,GAAUh+a,EAAG58B,EAAQ,EAAG,KAGxB+6c,GAAUn+a,EAAGo8a,GAAap8a,EAAEo/a,SAC5BpB,GAAUh+a,EAAG58B,EAAQ,GAAI,IAG3BA,EAAQ,EACRk9c,EAAUD,EACM,IAAZE,GACFC,EAAY,IACZC,EAAY,GAEHJ,IAAWE,GACpBC,EAAY,EACZC,EAAY,IAGZD,EAAY,EACZC,EAAY,EAdd,CAiBJ,CAOA,SAASE,GAAc3gb,GACrB,IAAI4gb,EAgBJ,IAbAR,GAAUpgb,EAAGA,EAAEk/a,UAAWl/a,EAAE6gb,OAAOjD,UACnCwC,GAAUpgb,EAAGA,EAAEm/a,UAAWn/a,EAAE8gb,OAAOlD,UAGnCuC,GAAWngb,EAAGA,EAAE+gb,SASXH,EAAchF,GAAW,EAAGgF,GAAe,EAAGA,IACjD,GAAyD,IAArD5gb,EAAEo/a,QAAgC,EAAxB5C,GAASoE,GAAmB,GACxC,MAQJ,OAJA5gb,EAAE4+a,SAAW,GAAKgC,EAAc,GAAK,EAAI,EAAI,EAItCA,CACT,CAQA,SAASI,GAAehhb,EAAGihb,EAAQC,EAAQC,GAIzC,IAAIC,EASJ,IAHApD,GAAUh+a,EAAGihb,EAAS,IAAK,GAC3BjD,GAAUh+a,EAAGkhb,EAAS,EAAK,GAC3BlD,GAAUh+a,EAAGmhb,EAAU,EAAI,GACtBC,EAAO,EAAGA,EAAOD,EAASC,IAE7BpD,GAAUh+a,EAAGA,EAAEo/a,QAAyB,EAAjB5C,GAAS4E,GAAY,GAAY,GAI1DV,GAAU1gb,EAAGA,EAAEk/a,UAAW+B,EAAS,GAGnCP,GAAU1gb,EAAGA,EAAEm/a,UAAW+B,EAAS,EAErC,CAgBA,SAASG,GAAiBrhb,GAKxB,IACI72B,EADAm4c,EAAa,WAIjB,IAAKn4c,EAAI,EAAGA,GAAK,GAAIA,IAAKm4c,KAAgB,EACxC,GAAkB,EAAbA,GAAoD,IAAhCthb,EAAEk/a,UAAc,EAAJ/1c,GACnC,OAAO6xc,GAKX,GAAoC,IAAhCh7a,EAAEk/a,UAAU,KAA0D,IAAjCl/a,EAAEk/a,UAAU,KAChB,IAAjCl/a,EAAEk/a,UAAU,IACd,OAAOjE,GAET,IAAK9xc,EAAI,GAAIA,EAAIkyZ,GAAUlyZ,IACzB,GAAoC,IAAhC62B,EAAEk/a,UAAc,EAAJ/1c,GACd,OAAO8xc,GAOX,OAAOD,EACT,CAp1BAG,GAAK+B,IAu1BL,IAAIqE,IAAmB,EAKvB,SAASC,GAASxhb,GAGXuhb,KACHvC,KACAuC,IAAmB,GAGrBvhb,EAAE6gb,OAAU,IAAIpD,GAASz9a,EAAEk/a,UAAWnC,IACtC/8a,EAAE8gb,OAAU,IAAIrD,GAASz9a,EAAEm/a,UAAWnC,IACtCh9a,EAAE+gb,QAAU,IAAItD,GAASz9a,EAAEo/a,QAASnC,IAEpCj9a,EAAEk+a,OAAS,EACXl+a,EAAEi+a,SAAW,EAGbgB,GAAWj/a,EACb,CAMA,SAASyhb,GAAiBzhb,EAAGntB,EAAK6uc,EAAYnqa,GAM5Cyma,GAAUh+a,GAAIo7a,IAAgB,IAAM7ja,EAAO,EAAI,GAAI,GACnDgoa,GAAWv/a,EAAGntB,EAAK6uc,GAAY,EACjC,CAOA,SAASC,GAAU3hb,GACjBg+a,GAAUh+a,EAAGq7a,IAAgB,EAAG,GAChC8C,GAAUn+a,EAAGi8a,GAAWS,IACxB2B,GAASr+a,EACX,CAOA,SAAS4hb,GAAgB5hb,EAAGntB,EAAK6uc,EAAYnqa,GAM3C,IAAIsqa,EAAUC,EACVlB,EAAc,EAGd5gb,EAAE2tF,MAAQ,GAGR3tF,EAAEqza,KAAKsH,YAAcO,KACvBl7a,EAAEqza,KAAKsH,UAAY0G,GAAiBrhb,IAItCmgb,GAAWngb,EAAGA,EAAE6gb,QAIhBV,GAAWngb,EAAGA,EAAE8gb,QAUhBF,EAAcD,GAAc3gb,GAG5B6hb,EAAY7hb,EAAE4+a,QAAU,EAAI,IAAO,EACnCkD,EAAe9hb,EAAE6+a,WAAa,EAAI,IAAO,EAMrCiD,GAAeD,IAAYA,EAAWC,IAI1CD,EAAWC,EAAcJ,EAAa,EAGnCA,EAAa,GAAKG,IAAuB,IAAThvc,EASnC4uc,GAAiBzhb,EAAGntB,EAAK6uc,EAAYnqa,GAE5BvX,EAAE4hC,WAAam5Y,IAAW+G,IAAgBD,GAEnD7D,GAAUh+a,GAAIq7a,IAAgB,IAAM9ja,EAAO,EAAI,GAAI,GACnDsoa,GAAe7/a,EAAG08a,GAAcC,MAGhCqB,GAAUh+a,GAAIs7a,IAAa,IAAM/ja,EAAO,EAAI,GAAI,GAChDypa,GAAehhb,EAAGA,EAAE6gb,OAAOjD,SAAW,EAAG59a,EAAE8gb,OAAOlD,SAAW,EAAGgD,EAAc,GAC9Ef,GAAe7/a,EAAGA,EAAEk/a,UAAWl/a,EAAEm/a,YAMnCF,GAAWj/a,GAEPuX,GACF+na,GAAUt/a,EAId,CAMA,SAAS+hb,GAAU/hb,EAAGgjH,EAAMiiH,GAmD1B,OA5CAjlO,EAAE+9a,YAAY/9a,EAAEigb,MAAqB,EAAbjgb,EAAEq/a,UAAqBr8T,IAAS,EAAK,IAC7DhjH,EAAE+9a,YAAY/9a,EAAEigb,MAAqB,EAAbjgb,EAAEq/a,SAAe,GAAY,IAAPr8T,EAE9ChjH,EAAE+9a,YAAY/9a,EAAEkgb,MAAQlgb,EAAEq/a,UAAiB,IAALp6M,EACtCjlO,EAAEq/a,WAEW,IAATr8T,EAEFhjH,EAAEk/a,UAAe,EAALj6M,MAEZjlO,EAAE2D,UAEFq/G,IAKAhjH,EAAEk/a,UAA8C,GAAnCrC,GAAa53M,GAAMo2J,GAAW,MAC3Cr7X,EAAEm/a,UAAyB,EAAftB,GAAO76T,OA0BbhjH,EAAEq/a,WAAar/a,EAAEgib,YAAc,CAKzC,CCxqCA,QACE,EAAQ,kBACR,EAAQ,aACR,EAAQ,GACR,KAAQ,aACR,KAAQ,eACR,KAAQ,aACR,KAAQ,sBACR,KAAQ,eACR,KAAQ,wBCEH,MAAMC,GAAkB,EAClBC,GAAkB,EAElBC,GAAkB,EAClB,GAAkB,EAClB,GAAkB,EAOlB,GAAkB,EAClB,GAAkB,EAGlB,IAAmB,EAGnB,IAAmB,EAQnBC,IAAyB,EAGzBC,GAAwB,EACxBC,GAAwB,EACxBC,GAAwB,EACxB,GAAwB,EACxBC,GAAwB,EAMxB,GAAwB,EAIxB,GAAc,EAK3B,IAs8BIC,GAt8BAC,GAAgB,EAEhB,GAAY,GAEZC,GAAgB,EAGhB,GAAgB,GAEhB,GAAgB,IAEhB,GAAgB,GAAW,EAAI,GAE/B,GAAgB,GAEhB,GAAgB,GAEhB,GAAgB,EAAI,GAAU,EAE9B,GAAY,GAGZ,GAAY,EACZ,GAAY,IACZC,GAAiB,GAAY,GAAY,EAEzCC,GAAc,GAEdC,GAAa,GACbC,GAAc,GACdC,GAAa,GACbC,GAAgB,GAChBC,GAAa,IACbC,GAAa,IACbC,GAAe,IAEfC,GAAoB,EACpBC,GAAoB,EACpBC,GAAoB,EACpBC,GAAoB,EAEpBC,GAAU,EAEd,SAASvod,GAAIm4c,EAAMqQ,GAEjB,OADArQ,EAAKx2c,IAAM,GAAI6md,GACRA,CACT,CAEA,SAAStC,GAAK33c,GACZ,OAAQ,GAAO,IAAM,EAAM,EAAI,EAAI,EACrC,CAEA,SAAS,GAAKoJ,GAAO,IAAI7K,EAAM6K,EAAIpe,OAAQ,QAASuT,GAAO,EAAK6K,EAAI7K,GAAO,CAAK,CAShF,SAAS27c,GAActQ,GACrB,IAAIrza,EAAIqza,EAAK97a,MAGTvvB,EAAMg4B,EAAEshC,QACRt5D,EAAMqrc,EAAKmB,YACbxsc,EAAMqrc,EAAKmB,WAED,IAARxsc,IAEJ,GAAeqrc,EAAKxhc,OAAQmuB,EAAE+9a,YAAa/9a,EAAE4jb,YAAa57c,EAAKqrc,EAAKkB,UACpElB,EAAKkB,UAAYvsc,EACjBg4B,EAAE4jb,aAAe57c,EACjBqrc,EAAKiG,WAAatxc,EAClBqrc,EAAKmB,WAAaxsc,EAClBg4B,EAAEshC,SAAWt5D,EACK,IAAdg4B,EAAEshC,UACJthC,EAAE4jb,YAAc,GAEpB,CAGA,SAASC,GAAiB7jb,EAAGuX,GAC3B,GAAsBvX,EAAIA,EAAE8jb,aAAe,EAAI9jb,EAAE8jb,aAAe,EAAI9jb,EAAE+jb,SAAW/jb,EAAE8jb,YAAavsa,GAChGvX,EAAE8jb,YAAc9jb,EAAE+jb,SAClBJ,GAAc3jb,EAAEqza,KAClB,CAGA,SAAS2Q,GAAShkb,EAAGtjC,GACnBsjC,EAAE+9a,YAAY/9a,EAAEshC,WAAa5kE,CAC/B,CAQA,SAASund,GAAYjkb,EAAGtjC,GAGtBsjC,EAAE+9a,YAAY/9a,EAAEshC,WAAc5kE,IAAM,EAAK,IACzCsjC,EAAE+9a,YAAY/9a,EAAEshC,WAAiB,IAAJ5kE,CAC/B,CAUA,SAASwnd,GAAS7Q,EAAMxgc,EAAKzK,EAAO6F,GAClC,IAAIjG,EAAMqrc,EAAKiB,SAGf,OADItsc,EAAMiG,IAAQjG,EAAMiG,GACZ,IAARjG,EAAoB,GAExBqrc,EAAKiB,UAAYtsc,EAGjB,GAAe6K,EAAKwgc,EAAKp7c,MAAOo7c,EAAKgB,QAASrsc,EAAKI,GAC3B,IAApBirc,EAAK97a,MAAMskO,KACbw3M,EAAKJ,MAAQ,GAAQI,EAAKJ,MAAOpgc,EAAK7K,EAAKI,GAGhB,IAApBirc,EAAK97a,MAAMskO,OAClBw3M,EAAKJ,MAAQ,GAAMI,EAAKJ,MAAOpgc,EAAK7K,EAAKI,IAG3Circ,EAAKgB,SAAWrsc,EAChBqrc,EAAKgG,UAAYrxc,EAEVA,EACT,CAYA,SAASm8c,GAAcnkb,EAAGokb,GACxB,IAEInmd,EACA+J,EAHAq8c,EAAerkb,EAAEskb,iBACjBpnS,EAAOl9I,EAAE+jb,SAGTQ,EAAWvkb,EAAEwkb,YACbC,EAAazkb,EAAEykb,WACf/9c,EAASs5B,EAAE+jb,SAAY/jb,EAAE0kb,OAAS9B,GAClC5ib,EAAE+jb,UAAY/jb,EAAE0kb,OAAS9B,IAAiB,EAE1C+B,EAAO3kb,EAAEpqC,OAETgvd,EAAQ5kb,EAAE6kb,OACVz1U,EAAQpvG,EAAEovG,KAMV01U,EAAS9kb,EAAE+jb,SAAW,GACtBgB,EAAaJ,EAAKznS,EAAOqnS,EAAW,GACpCS,EAAaL,EAAKznS,EAAOqnS,GAQzBvkb,EAAEwkb,aAAexkb,EAAEilb,aACrBZ,IAAiB,GAKfI,EAAazkb,EAAEktX,YAAau3D,EAAazkb,EAAEktX,WAI/C,GAaE,GAXAjvZ,EAAQmmd,EAWJO,EAAK1md,EAAQsmd,KAAkBS,GAC/BL,EAAK1md,EAAQsmd,EAAW,KAAOQ,GAC/BJ,EAAK1md,KAA0B0md,EAAKznS,IACpCynS,IAAO1md,KAAwB0md,EAAKznS,EAAO,GAH/C,CAaAA,GAAQ,EACRj/K,IAMA,UAES0md,IAAOznS,KAAUynS,IAAO1md,IAAU0md,IAAOznS,KAAUynS,IAAO1md,IAC1D0md,IAAOznS,KAAUynS,IAAO1md,IAAU0md,IAAOznS,KAAUynS,IAAO1md,IAC1D0md,IAAOznS,KAAUynS,IAAO1md,IAAU0md,IAAOznS,KAAUynS,IAAO1md,IAC1D0md,IAAOznS,KAAUynS,IAAO1md,IAAU0md,IAAOznS,KAAUynS,IAAO1md,IAC1Di/K,EAAO4nS,GAOhB,GAHA98c,EAAM,IAAa88c,EAAS5nS,GAC5BA,EAAO4nS,EAAS,GAEZ98c,EAAMu8c,EAAU,CAGlB,GAFAvkb,EAAEklb,YAAcd,EAChBG,EAAWv8c,EACPA,GAAOy8c,EACT,MAEFM,EAAaJ,EAAKznS,EAAOqnS,EAAW,GACpCS,EAAaL,EAAKznS,EAAOqnS,EAC3B,CApCA,SAqCQH,EAAYh1U,EAAKg1U,EAAYQ,IAAUl+c,GAA4B,MAAjB29c,GAE5D,OAAIE,GAAYvkb,EAAEktX,UACTq3D,EAEFvkb,EAAEktX,SACX,CAaA,SAASi4D,GAAYnlb,GACnB,IACIt9B,EAAGyG,EAAG8L,EAAGqsE,EAAMv+E,EADfqid,EAAUplb,EAAE0kb,OAKhB,EAAG,CAqBD,GApBApjY,EAAOthD,EAAEqlb,YAAcrlb,EAAEktX,UAAYltX,EAAE+jb,SAoBnC/jb,EAAE+jb,UAAYqB,GAAWA,EAAUxC,IAAgB,CAErD,GAAe5ib,EAAEpqC,OAAQoqC,EAAEpqC,OAAQwvd,EAASA,EAAS,GACrDplb,EAAEklb,aAAeE,EACjBplb,EAAE+jb,UAAYqB,EAEdplb,EAAE8jb,aAAesB,EASjBj8c,EAAI62B,EAAEslb,UACN5id,EAAIyG,EACJ,GACE8L,EAAI+qB,EAAEozB,OAAO1wD,GACbs9B,EAAEozB,KAAK1wD,GAAMuS,GAAKmwc,EAAUnwc,EAAImwc,EAAU,UACjCj8c,GAEXA,EAAIi8c,EACJ1id,EAAIyG,EACJ,GACE8L,EAAI+qB,EAAEovG,OAAO1sI,GACbs9B,EAAEovG,KAAK1sI,GAAMuS,GAAKmwc,EAAUnwc,EAAImwc,EAAU,UAIjCj8c,GAEXm4E,GAAQ8jY,CACV,CACA,GAAwB,IAApBplb,EAAEqza,KAAKiB,SACT,MAmBF,GAJAnrc,EAAI+6c,GAASlkb,EAAEqza,KAAMrza,EAAEpqC,OAAQoqC,EAAE+jb,SAAW/jb,EAAEktX,UAAW5rU,GACzDthD,EAAEktX,WAAa/jZ,EAGX62B,EAAEktX,UAAYltX,EAAEuyG,QAAU,GAAW,CACvCxvI,EAAMi9B,EAAE+jb,SAAW/jb,EAAEuyG,OACrBvyG,EAAEulb,MAAQvlb,EAAEpqC,OAAOmN,GAGnBi9B,EAAEulb,OAAUvlb,EAAEulb,OAASvlb,EAAEwlb,WAAcxlb,EAAEpqC,OAAOmN,EAAM,IAAMi9B,EAAEylb,UAI9D,MAAOzlb,EAAEuyG,OAQP,GANAvyG,EAAEulb,OAAUvlb,EAAEulb,OAASvlb,EAAEwlb,WAAcxlb,EAAEpqC,OAAOmN,EAAM,GAAY,IAAMi9B,EAAEylb,UAE1Ezlb,EAAEovG,KAAKrsI,EAAMi9B,EAAE6kb,QAAU7kb,EAAEozB,KAAKpzB,EAAEulb,OAClCvlb,EAAEozB,KAAKpzB,EAAEulb,OAASxid,EAClBA,IACAi9B,EAAEuyG,SACEvyG,EAAEktX,UAAYltX,EAAEuyG,OAAS,GAC3B,KAGN,CAKF,OAASvyG,EAAEktX,UAAY01D,IAAqC,IAApB5ib,EAAEqza,KAAKiB,SAsCjD,CAWA,SAASoR,GAAe1lb,EAAGmjN,GAIzB,IAAIwiO,EAAiB,MAOrB,IALIA,EAAiB3lb,EAAE4lb,iBAAmB,IACxCD,EAAiB3lb,EAAE4lb,iBAAmB,KAI/B,CAEP,GAAI5lb,EAAEktX,WAAa,EAAG,CAUpB,GADAi4D,GAAYnlb,GACQ,IAAhBA,EAAEktX,WAAmB/pK,IAAU8+N,GACjC,OAAOoB,GAGT,GAAoB,IAAhBrjb,EAAEktX,UACJ,KAGJ,CAIAltX,EAAE+jb,UAAY/jb,EAAEktX,UAChBltX,EAAEktX,UAAY,EAGd,IAAI24D,EAAY7lb,EAAE8jb,YAAc6B,EAEhC,IAAmB,IAAf3lb,EAAE+jb,UAAkB/jb,EAAE+jb,UAAY8B,KAEpC7lb,EAAEktX,UAAYltX,EAAE+jb,SAAW8B,EAC3B7lb,EAAE+jb,SAAW8B,EAEbhC,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACT,OAAO6O,GASX,GAAIrjb,EAAE+jb,SAAW/jb,EAAE8jb,aAAgB9jb,EAAE0kb,OAAS9B,KAE5CiB,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACT,OAAO6O,EAIb,CAIA,OAFArjb,EAAEuyG,OAAS,EAEP4wG,IAAU,IAEZ0gO,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,UACF+O,GAGFC,KAGLxjb,EAAE+jb,SAAW/jb,EAAE8jb,cAEjBD,GAAiB7jb,GAAG,GAChBA,EAAEqza,KAAKmB,WACF6O,GAMb,CASA,SAASyC,GAAa9lb,EAAGmjN,GAIvB,IAHA,IAAI4iO,EACAC,IAEK,CAMP,GAAIhmb,EAAEktX,UAAY01D,GAAe,CAE/B,GADAuC,GAAYnlb,GACRA,EAAEktX,UAAY01D,IAAiBz/N,IAAU8+N,GAC3C,OAAOoB,GAET,GAAoB,IAAhBrjb,EAAEktX,UACJ,KAEJ,CAyBA,GApBA64D,EAAY,EACR/lb,EAAEktX,WAAa,KAEjBltX,EAAEulb,OAAUvlb,EAAEulb,OAASvlb,EAAEwlb,WAAcxlb,EAAEpqC,OAAOoqC,EAAE+jb,SAAW,GAAY,IAAM/jb,EAAEylb,UACjFM,EAAY/lb,EAAEovG,KAAKpvG,EAAE+jb,SAAW/jb,EAAE6kb,QAAU7kb,EAAEozB,KAAKpzB,EAAEulb,OACrDvlb,EAAEozB,KAAKpzB,EAAEulb,OAASvlb,EAAE+jb,UAOJ,IAAdgC,GAA4B/lb,EAAE+jb,SAAWgC,GAAe/lb,EAAE0kb,OAAS9B,KAKrE5ib,EAAEimb,aAAe9B,GAAcnkb,EAAG+lb,IAGhC/lb,EAAEimb,cAAgB,GAYpB,GAPAD,EAAS,GAAgBhmb,EAAGA,EAAE+jb,SAAW/jb,EAAEklb,YAAallb,EAAEimb,aAAe,IAEzEjmb,EAAEktX,WAAaltX,EAAEimb,aAKbjmb,EAAEimb,cAAgBjmb,EAAEkmb,gBAAuClmb,EAAEktX,WAAa,GAAW,CACvFltX,EAAEimb,eACF,GACEjmb,EAAE+jb,WAEF/jb,EAAEulb,OAAUvlb,EAAEulb,OAASvlb,EAAEwlb,WAAcxlb,EAAEpqC,OAAOoqC,EAAE+jb,SAAW,GAAY,IAAM/jb,EAAEylb,UACjFM,EAAY/lb,EAAEovG,KAAKpvG,EAAE+jb,SAAW/jb,EAAE6kb,QAAU7kb,EAAEozB,KAAKpzB,EAAEulb,OACrDvlb,EAAEozB,KAAKpzB,EAAEulb,OAASvlb,EAAE+jb,eAKQ,MAAnB/jb,EAAEimb,cACbjmb,EAAE+jb,UACJ,MAEE/jb,EAAE+jb,UAAY/jb,EAAEimb,aAChBjmb,EAAEimb,aAAe,EACjBjmb,EAAEulb,MAAQvlb,EAAEpqC,OAAOoqC,EAAE+jb,UAErB/jb,EAAEulb,OAAUvlb,EAAEulb,OAASvlb,EAAEwlb,WAAcxlb,EAAEpqC,OAAOoqC,EAAE+jb,SAAW,IAAM/jb,EAAEylb,eAavEO,EAAS,GAAgBhmb,EAAG,EAAGA,EAAEpqC,OAAOoqC,EAAE+jb,WAE1C/jb,EAAEktX,YACFltX,EAAE+jb,WAEJ,GAAIiC,IAEFnC,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACT,OAAO6O,EAIb,CAEA,OADArjb,EAAEuyG,OAAWvyG,EAAE+jb,SAAY,GAAY,EAAM/jb,EAAE+jb,SAAW,GAAY,EAClE5gO,IAAU,IAEZ0gO,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,UACF+O,GAGFC,IAELxjb,EAAEq/a,WAEJwE,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACF6O,GAIJC,EACT,CAOA,SAAS6C,GAAanmb,EAAGmjN,GAOvB,IANA,IAAI4iO,EACAC,EAEAI,IAGK,CAMP,GAAIpmb,EAAEktX,UAAY01D,GAAe,CAE/B,GADAuC,GAAYnlb,GACRA,EAAEktX,UAAY01D,IAAiBz/N,IAAU8+N,GAC3C,OAAOoB,GAET,GAAoB,IAAhBrjb,EAAEktX,UAAmB,KAC3B,CAyCA,GApCA64D,EAAY,EACR/lb,EAAEktX,WAAa,KAEjBltX,EAAEulb,OAAUvlb,EAAEulb,OAASvlb,EAAEwlb,WAAcxlb,EAAEpqC,OAAOoqC,EAAE+jb,SAAW,GAAY,IAAM/jb,EAAEylb,UACjFM,EAAY/lb,EAAEovG,KAAKpvG,EAAE+jb,SAAW/jb,EAAE6kb,QAAU7kb,EAAEozB,KAAKpzB,EAAEulb,OACrDvlb,EAAEozB,KAAKpzB,EAAEulb,OAASvlb,EAAE+jb,UAMtB/jb,EAAEwkb,YAAcxkb,EAAEimb,aAClBjmb,EAAEqmb,WAAarmb,EAAEklb,YACjBllb,EAAEimb,aAAe,GAAY,EAEX,IAAdF,GAA0B/lb,EAAEwkb,YAAcxkb,EAAEkmb,gBAC5Clmb,EAAE+jb,SAAWgC,GAAc/lb,EAAE0kb,OAAS9B,KAKxC5ib,EAAEimb,aAAe9B,GAAcnkb,EAAG+lb,GAG9B/lb,EAAEimb,cAAgB,IAClBjmb,EAAE4hC,WAAaygZ,IAAerib,EAAEimb,eAAiB,IAAajmb,EAAE+jb,SAAW/jb,EAAEklb,YAAc,QAK7Fllb,EAAEimb,aAAe,GAAY,IAM7Bjmb,EAAEwkb,aAAe,IAAaxkb,EAAEimb,cAAgBjmb,EAAEwkb,YAAa,CACjE4B,EAAapmb,EAAE+jb,SAAW/jb,EAAEktX,UAAY,GAOxC84D,EAAS,GAAgBhmb,EAAGA,EAAE+jb,SAAW,EAAI/jb,EAAEqmb,WAAYrmb,EAAEwkb,YAAc,IAM3Exkb,EAAEktX,WAAaltX,EAAEwkb,YAAc,EAC/Bxkb,EAAEwkb,aAAe,EACjB,KACQxkb,EAAE+jb,UAAYqC,IAElBpmb,EAAEulb,OAAUvlb,EAAEulb,OAASvlb,EAAEwlb,WAAcxlb,EAAEpqC,OAAOoqC,EAAE+jb,SAAW,GAAY,IAAM/jb,EAAEylb,UACjFM,EAAY/lb,EAAEovG,KAAKpvG,EAAE+jb,SAAW/jb,EAAE6kb,QAAU7kb,EAAEozB,KAAKpzB,EAAEulb,OACrDvlb,EAAEozB,KAAKpzB,EAAEulb,OAASvlb,EAAE+jb,gBAGK,MAAlB/jb,EAAEwkb,aAKb,GAJAxkb,EAAEsmb,gBAAkB,EACpBtmb,EAAEimb,aAAe,GAAY,EAC7Bjmb,EAAE+jb,WAEEiC,IAEFnC,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACT,OAAO6O,EAKb,MAAO,GAAIrjb,EAAEsmb,iBAgBX,GATAN,EAAS,GAAgBhmb,EAAG,EAAGA,EAAEpqC,OAAOoqC,EAAE+jb,SAAW,IAEjDiC,GAEFnC,GAAiB7jb,GAAG,GAGtBA,EAAE+jb,WACF/jb,EAAEktX,YACuB,IAArBltX,EAAEqza,KAAKmB,UACT,OAAO6O,QAMTrjb,EAAEsmb,gBAAkB,EACpBtmb,EAAE+jb,WACF/jb,EAAEktX,WAEN,CAUA,OARIltX,EAAEsmb,kBAGJN,EAAS,GAAgBhmb,EAAG,EAAGA,EAAEpqC,OAAOoqC,EAAE+jb,SAAW,IAErD/jb,EAAEsmb,gBAAkB,GAEtBtmb,EAAEuyG,OAASvyG,EAAE+jb,SAAW,GAAY,EAAI/jb,EAAE+jb,SAAW,GAAY,EAC7D5gO,IAAU,IAEZ0gO,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,UACF+O,GAGFC,IAELxjb,EAAEq/a,WAEJwE,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACF6O,GAKJC,EACT,CAQA,SAASiD,GAAYvmb,EAAGmjN,GAOtB,IANA,IAAI6iO,EACA52U,EACA8tC,EAAM4nS,EAENH,EAAO3kb,EAAEpqC,SAEJ,CAKP,GAAIoqC,EAAEktX,WAAa,GAAW,CAE5B,GADAi4D,GAAYnlb,GACRA,EAAEktX,WAAa,IAAa/pK,IAAU8+N,GACxC,OAAOoB,GAET,GAAoB,IAAhBrjb,EAAEktX,UAAmB,KAC3B,CAIA,GADAltX,EAAEimb,aAAe,EACbjmb,EAAEktX,WAAa,IAAaltX,EAAE+jb,SAAW,IAC3C7mS,EAAOl9I,EAAE+jb,SAAW,EACpB30U,EAAOu1U,EAAKznS,GACR9tC,IAASu1U,IAAOznS,IAAS9tC,IAASu1U,IAAOznS,IAAS9tC,IAASu1U,IAAOznS,IAAO,CAC3E4nS,EAAS9kb,EAAE+jb,SAAW,GACtB,UAES30U,IAASu1U,IAAOznS,IAAS9tC,IAASu1U,IAAOznS,IACzC9tC,IAASu1U,IAAOznS,IAAS9tC,IAASu1U,IAAOznS,IACzC9tC,IAASu1U,IAAOznS,IAAS9tC,IAASu1U,IAAOznS,IACzC9tC,IAASu1U,IAAOznS,IAAS9tC,IAASu1U,IAAOznS,IACzCA,EAAO4nS,GAChB9kb,EAAEimb,aAAe,IAAanB,EAAS5nS,GACnCl9I,EAAEimb,aAAejmb,EAAEktX,YACrBltX,EAAEimb,aAAejmb,EAAEktX,UAEvB,CAuBF,GAlBIltX,EAAEimb,cAAgB,IAIpBD,EAAS,GAAgBhmb,EAAG,EAAGA,EAAEimb,aAAe,IAEhDjmb,EAAEktX,WAAaltX,EAAEimb,aACjBjmb,EAAE+jb,UAAY/jb,EAAEimb,aAChBjmb,EAAEimb,aAAe,IAKjBD,EAAS,GAAgBhmb,EAAG,EAAGA,EAAEpqC,OAAOoqC,EAAE+jb,WAE1C/jb,EAAEktX,YACFltX,EAAE+jb,YAEAiC,IAEFnC,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACT,OAAO6O,EAIb,CAEA,OADArjb,EAAEuyG,OAAS,EACP4wG,IAAU,IAEZ0gO,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,UACF+O,GAGFC,IAELxjb,EAAEq/a,WAEJwE,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACF6O,GAIJC,EACT,CAMA,SAASkD,GAAaxmb,EAAGmjN,GAGvB,IAFA,IAAI6iO,IAEK,CAEP,GAAoB,IAAhBhmb,EAAEktX,YACJi4D,GAAYnlb,GACQ,IAAhBA,EAAEktX,WAAiB,CACrB,GAAI/pK,IAAU8+N,GACZ,OAAOoB,GAET,KACF,CAUF,GANArjb,EAAEimb,aAAe,EAGjBD,EAAS,GAAgBhmb,EAAG,EAAGA,EAAEpqC,OAAOoqC,EAAE+jb,WAC1C/jb,EAAEktX,YACFltX,EAAE+jb,WACEiC,IAEFnC,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACT,OAAO6O,EAIb,CAEA,OADArjb,EAAEuyG,OAAS,EACP4wG,IAAU,IAEZ0gO,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,UACF+O,GAGFC,IAELxjb,EAAEq/a,WAEJwE,GAAiB7jb,GAAG,GACK,IAArBA,EAAEqza,KAAKmB,WACF6O,GAIJC,EACT,CAOA,SAASmD,GAAOC,EAAaC,EAAUC,EAAaC,EAAW7gW,GAC7DryH,KAAK+yd,YAAcA,EACnB/yd,KAAKgzd,SAAWA,EAChBhzd,KAAKizd,YAAcA,EACnBjzd,KAAKkzd,UAAYA,EACjBlzd,KAAKqyH,KAAOA,CACd,CAuBA,SAAS8gW,GAAQ9mb,GACfA,EAAEqlb,YAAc,EAAIrlb,EAAE0kb,OAGtB,GAAK1kb,EAAEozB,MAIPpzB,EAAEkmb,eAAiBzD,GAAoBzib,EAAE2tF,OAAOg5V,SAChD3mb,EAAEilb,WAAaxC,GAAoBzib,EAAE2tF,OAAO+4V,YAC5C1mb,EAAEykb,WAAahC,GAAoBzib,EAAE2tF,OAAOi5V,YAC5C5mb,EAAEskb,iBAAmB7B,GAAoBzib,EAAE2tF,OAAOk5V,UAElD7mb,EAAE+jb,SAAW,EACb/jb,EAAE8jb,YAAc,EAChB9jb,EAAEktX,UAAY,EACdltX,EAAEuyG,OAAS,EACXvyG,EAAEimb,aAAejmb,EAAEwkb,YAAc,GAAY,EAC7Cxkb,EAAEsmb,gBAAkB,EACpBtmb,EAAEulb,MAAQ,CACZ,CAGA,SAASwB,KACPpzd,KAAK0/c,KAAO,KACZ1/c,KAAKk8B,OAAS,EACdl8B,KAAKoqd,YAAc,KACnBpqd,KAAKiyd,iBAAmB,EACxBjyd,KAAKiwd,YAAc,EACnBjwd,KAAK2tE,QAAU,EACf3tE,KAAKkoQ,KAAO,EACZloQ,KAAKqzd,OAAS,KACdrzd,KAAKszd,QAAU,EACftzd,KAAK8mC,OAAS,GACd9mC,KAAKuzd,YAAc,EAEnBvzd,KAAK+wd,OAAS,EACd/wd,KAAKwzd,OAAS,EACdxzd,KAAKkxd,OAAS,EAEdlxd,KAAKiC,OAAS,KAQdjC,KAAK0xd,YAAc,EAKnB1xd,KAAKy7I,KAAO,KAMZz7I,KAAKy/D,KAAO,KAEZz/D,KAAK4xd,MAAQ,EACb5xd,KAAK2xd,UAAY,EACjB3xd,KAAKyzd,UAAY,EACjBzzd,KAAK8xd,UAAY,EAEjB9xd,KAAK6xd,WAAa,EAOlB7xd,KAAKmwd,YAAc,EAKnBnwd,KAAKsyd,aAAe,EACpBtyd,KAAK0yd,WAAa,EAClB1yd,KAAK2yd,gBAAkB,EACvB3yd,KAAKowd,SAAW,EAChBpwd,KAAKuxd,YAAc,EACnBvxd,KAAKu5Z,UAAY,EAEjBv5Z,KAAK6wd,YAAc,EAKnB7wd,KAAK2wd,iBAAmB,EAMxB3wd,KAAKuyd,eAAiB,EAYtBvyd,KAAKg6H,MAAQ,EACbh6H,KAAKiuE,SAAW,EAEhBjuE,KAAKsxd,WAAa,EAGlBtxd,KAAK8wd,WAAa,EAYlB9wd,KAAKurd,UAAa,IAAI,GAAwB,EAAZ,IAClCvrd,KAAKwrd,UAAa,IAAI,GAAgC,GAAnB,EAAI,GAAU,IACjDxrd,KAAKyrd,QAAa,IAAI,GAAiC,GAApB,EAAI,GAAW,IAClD,GAAKzrd,KAAKurd,WACV,GAAKvrd,KAAKwrd,WACV,GAAKxrd,KAAKyrd,SAEVzrd,KAAKktd,OAAW,KAChBltd,KAAKmtd,OAAW,KAChBntd,KAAKotd,QAAW,KAGhBptd,KAAK8qd,SAAW,IAAI,GAAY,GAAW,GAI3C9qd,KAAK+qd,KAAO,IAAI,GAAY,EAAI,GAAU,GAC1C,GAAK/qd,KAAK+qd,MAEV/qd,KAAKisd,SAAW,EAChBjsd,KAAKgrd,SAAW,EAKhBhrd,KAAK2Q,MAAQ,IAAI,GAAY,EAAI,GAAU,GAC3C,GAAK3Q,KAAK2Q,OAIV3Q,KAAKusd,MAAQ,EAEbvsd,KAAKqud,YAAc,EAoBnBrud,KAAK0rd,SAAW,EAEhB1rd,KAAKssd,MAAQ,EAMbtsd,KAAKird,QAAU,EACfjrd,KAAKkrd,WAAa,EAClBlrd,KAAKgwC,QAAU,EACfhwC,KAAK4+I,OAAS,EAGd5+I,KAAKuqd,OAAS,EAIdvqd,KAAKsqd,SAAW,CAalB,CAGA,SAASoJ,GAAiBhU,GACxB,IAAIrza,EAEJ,OAAKqza,GAASA,EAAK97a,OAInB87a,EAAKgG,SAAWhG,EAAKiG,UAAY,EACjCjG,EAAKsH,UAAY,GAEjB36a,EAAIqza,EAAK97a,MACTyI,EAAEshC,QAAU,EACZthC,EAAE4jb,YAAc,EAEZ5jb,EAAE67N,KAAO,IACX77N,EAAE67N,MAAQ77N,EAAE67N,MAGd77N,EAAEnQ,OAAUmQ,EAAE67N,KAAOinN,GAAaK,GAClC9P,EAAKJ,MAAoB,IAAXjza,EAAE67N,KACd,EAEA,EACF77N,EAAEknb,WAAajF,GACf,GAAejib,GACR,IArBE9kC,GAAIm4c,EAAM,GAsBrB,CAGA,SAASiU,GAAajU,GACpB,IAAI96b,EAAM8uc,GAAiBhU,GAI3B,OAHI96b,IAAQ,IACVuuc,GAAQzT,EAAK97a,OAERhf,CACT,CAWA,SAASgvc,GAAalU,EAAM1lV,EAAOlzF,EAAQg/a,EAAY+N,EAAU5lZ,GAC/D,IAAKyxY,EACH,OAAO,GAET,IAAIx3M,EAAO,EAiBX,GAfIluI,IAAUy0V,KACZz0V,EAAQ,GAGN8rV,EAAa,GACf59M,EAAO,EACP49M,GAAcA,GAGPA,EAAa,KACpB59M,EAAO,EACP49M,GAAc,IAIZ+N,EAAW,GAAKA,EAAW9E,IAAiBjob,IAAW,IACzDg/a,EAAa,GAAKA,EAAa,IAAM9rV,EAAQ,GAAKA,EAAQ,GAC1D/rD,EAAW,GAAKA,EAAW,GAC3B,OAAO1mE,GAAIm4c,EAAM,IAIA,IAAfoG,IACFA,EAAa,GAIf,IAAIz5a,EAAI,IAAI+mb,GA0CZ,OAxCA1T,EAAK97a,MAAQyI,EACbA,EAAEqza,KAAOA,EAETrza,EAAE67N,KAAOA,EACT77N,EAAEgnb,OAAS,KACXhnb,EAAEmnb,OAAS1N,EACXz5a,EAAE0kb,OAAS,GAAK1kb,EAAEmnb,OAClBnnb,EAAE6kb,OAAS7kb,EAAE0kb,OAAS,EAEtB1kb,EAAEonb,UAAYI,EAAW,EACzBxnb,EAAEslb,UAAY,GAAKtlb,EAAEonb,UACrBpnb,EAAEylb,UAAYzlb,EAAEslb,UAAY,EAC5Btlb,EAAEwlb,eAAiBxlb,EAAEonb,UAAY,GAAY,GAAK,IAElDpnb,EAAEpqC,OAAS,IAAI,GAAsB,EAAXoqC,EAAE0kb,QAC5B1kb,EAAEozB,KAAO,IAAI,GAAYpzB,EAAEslb,WAC3Btlb,EAAEovG,KAAO,IAAI,GAAYpvG,EAAE0kb,QAK3B1kb,EAAEgib,YAAc,GAAMwF,EAAW,EAEjCxnb,EAAE4lb,iBAAmC,EAAhB5lb,EAAEgib,YAIvBhib,EAAE+9a,YAAc,IAAI,GAAW/9a,EAAE4lb,kBAIjC5lb,EAAEigb,MAAQ,EAAIjgb,EAAEgib,YAGhBhib,EAAEkgb,MAAQ,EAAUlgb,EAAEgib,YAEtBhib,EAAE2tF,MAAQA,EACV3tF,EAAE4hC,SAAWA,EACb5hC,EAAEvF,OAASA,EAEJ6sb,GAAajU,EACtB,CAEA,SAASoU,GAAYpU,EAAM1lV,GACzB,OAAO45V,GAAalU,EAAM1lV,EAAO,GAAY,GAAWg1V,GAAeH,GACzE,CAGA,SAASkF,GAAQrU,EAAMlwN,GACrB,IAAIwkO,EAAW3nb,EACXwza,EAAKrvc,EAET,IAAKkvc,IAASA,EAAK97a,OACjB4rN,EAAQ,IAAWA,EAAQ,EAC3B,OAAOkwN,EAAOn4c,GAAIm4c,EAAM,IAAkB,GAK5C,GAFArza,EAAIqza,EAAK97a,OAEJ87a,EAAKxhc,SACJwhc,EAAKp7c,OAA2B,IAAlBo7c,EAAKiB,UACpBt0a,EAAEnQ,SAAWuzb,IAAgBjgO,IAAU,GAC1C,OAAOjoP,GAAIm4c,EAA0B,IAAnBA,EAAKmB,UAAmB,GAAc,IAQ1D,GALAx0a,EAAEqza,KAAOA,EACTsU,EAAY3nb,EAAEknb,WACdlnb,EAAEknb,WAAa/jO,EAGXnjN,EAAEnQ,SAAWizb,GAEf,GAAe,IAAX9ib,EAAE67N,KACJw3M,EAAKJ,MAAQ,EACb+Q,GAAShkb,EAAG,IACZgkb,GAAShkb,EAAG,KACZgkb,GAAShkb,EAAG,GACPA,EAAEgnb,QAaLhD,GAAShkb,GAAIA,EAAEgnb,OAAOpmY,KAAO,EAAI,IACpB5gD,EAAEgnb,OAAOtM,KAAO,EAAI,IACnB16a,EAAEgnb,OAAOtyE,MAAY,EAAJ,IACjB10W,EAAEgnb,OAAOrqd,KAAW,EAAJ,IAChBqjC,EAAEgnb,OAAOhpJ,QAAc,GAAJ,IAEjCgmJ,GAAShkb,EAAmB,IAAhBA,EAAEgnb,OAAO73V,MACrB60V,GAAShkb,EAAIA,EAAEgnb,OAAO73V,MAAQ,EAAK,KACnC60V,GAAShkb,EAAIA,EAAEgnb,OAAO73V,MAAQ,GAAM,KACpC60V,GAAShkb,EAAIA,EAAEgnb,OAAO73V,MAAQ,GAAM,KACpC60V,GAAShkb,EAAe,IAAZA,EAAE2tF,MAAc,EACf3tF,EAAE4hC,UAAY0gZ,IAAkBtib,EAAE2tF,MAAQ,EAC1C,EAAI,GACjBq2V,GAAShkb,EAAiB,IAAdA,EAAEgnb,OAAO1zI,IACjBtzS,EAAEgnb,OAAOtyE,OAAS10W,EAAEgnb,OAAOtyE,MAAMjgZ,SACnCuvd,GAAShkb,EAA2B,IAAxBA,EAAEgnb,OAAOtyE,MAAMjgZ,QAC3Buvd,GAAShkb,EAAIA,EAAEgnb,OAAOtyE,MAAMjgZ,QAAU,EAAK,MAEzCurC,EAAEgnb,OAAOtM,OACXrH,EAAKJ,MAAQ,GAAMI,EAAKJ,MAAOjza,EAAE+9a,YAAa/9a,EAAEshC,QAAS,IAE3DthC,EAAEinb,QAAU,EACZjnb,EAAEnQ,OAASkzb,KAlCXiB,GAAShkb,EAAG,GACZgkb,GAAShkb,EAAG,GACZgkb,GAAShkb,EAAG,GACZgkb,GAAShkb,EAAG,GACZgkb,GAAShkb,EAAG,GACZgkb,GAAShkb,EAAe,IAAZA,EAAE2tF,MAAc,EACf3tF,EAAE4hC,UAAY0gZ,IAAkBtib,EAAE2tF,MAAQ,EAC1C,EAAI,GACjBq2V,GAAShkb,EAAGyjb,IACZzjb,EAAEnQ,OAASszb,QA6Bf,CACE,IAAI5xZ,EAAU,IAAevxB,EAAEmnb,OAAS,GAAM,IAAO,EACjDS,GAAe,EAGjBA,EADE5nb,EAAE4hC,UAAY0gZ,IAAkBtib,EAAE2tF,MAAQ,EAC9B,EACL3tF,EAAE2tF,MAAQ,EACL,EACO,IAAZ3tF,EAAE2tF,MACG,EAEA,EAEhBp8D,GAAWq2Z,GAAe,EACP,IAAf5nb,EAAE+jb,WAAkBxyZ,GAAUsxZ,IAClCtxZ,GAAU,GAAMA,EAAS,GAEzBvxB,EAAEnQ,OAASszb,GACXc,GAAYjkb,EAAGuxB,GAGI,IAAfvxB,EAAE+jb,WACJE,GAAYjkb,EAAGqza,EAAKJ,QAAU,IAC9BgR,GAAYjkb,EAAgB,MAAbqza,EAAKJ,QAEtBI,EAAKJ,MAAQ,CACf,CAIF,GAAIjza,EAAEnQ,SAAWkzb,GACf,GAAI/ib,EAAEgnb,OAAOtyE,MAAqB,CAChC8+D,EAAMxza,EAAEshC,QAER,MAAOthC,EAAEinb,SAAmC,MAAxBjnb,EAAEgnb,OAAOtyE,MAAMjgZ,QAAkB,CACnD,GAAIurC,EAAEshC,UAAYthC,EAAE4lb,mBACd5lb,EAAEgnb,OAAOtM,MAAQ16a,EAAEshC,QAAUkyY,IAC/BH,EAAKJ,MAAQ,GAAMI,EAAKJ,MAAOjza,EAAE+9a,YAAa/9a,EAAEshC,QAAUkyY,EAAKA,IAEjEmQ,GAActQ,GACdG,EAAMxza,EAAEshC,QACJthC,EAAEshC,UAAYthC,EAAE4lb,kBAClB,MAGJ5B,GAAShkb,EAA+B,IAA5BA,EAAEgnb,OAAOtyE,MAAM10W,EAAEinb,UAC7Bjnb,EAAEinb,SACJ,CACIjnb,EAAEgnb,OAAOtM,MAAQ16a,EAAEshC,QAAUkyY,IAC/BH,EAAKJ,MAAQ,GAAMI,EAAKJ,MAAOjza,EAAE+9a,YAAa/9a,EAAEshC,QAAUkyY,EAAKA,IAE7Dxza,EAAEinb,UAAYjnb,EAAEgnb,OAAOtyE,MAAMjgZ,SAC/BurC,EAAEinb,QAAU,EACZjnb,EAAEnQ,OAASmzb,GAEf,MAEEhjb,EAAEnQ,OAASmzb,GAGf,GAAIhjb,EAAEnQ,SAAWmzb,GACf,GAAIhjb,EAAEgnb,OAAOrqd,KAAoB,CAC/B62c,EAAMxza,EAAEshC,QAGR,EAAG,CACD,GAAIthC,EAAEshC,UAAYthC,EAAE4lb,mBACd5lb,EAAEgnb,OAAOtM,MAAQ16a,EAAEshC,QAAUkyY,IAC/BH,EAAKJ,MAAQ,GAAMI,EAAKJ,MAAOjza,EAAE+9a,YAAa/9a,EAAEshC,QAAUkyY,EAAKA,IAEjEmQ,GAActQ,GACdG,EAAMxza,EAAEshC,QACJthC,EAAEshC,UAAYthC,EAAE4lb,kBAAkB,CACpCzhd,EAAM,EACN,KACF,CAIAA,EADE67B,EAAEinb,QAAUjnb,EAAEgnb,OAAOrqd,KAAKlI,OACkB,IAAxCurC,EAAEgnb,OAAOrqd,KAAK6O,WAAWw0B,EAAEinb,WAE3B,EAERjD,GAAShkb,EAAG77B,EACd,OAAiB,IAARA,GAEL67B,EAAEgnb,OAAOtM,MAAQ16a,EAAEshC,QAAUkyY,IAC/BH,EAAKJ,MAAQ,GAAMI,EAAKJ,MAAOjza,EAAE+9a,YAAa/9a,EAAEshC,QAAUkyY,EAAKA,IAErD,IAARrvc,IACF67B,EAAEinb,QAAU,EACZjnb,EAAEnQ,OAASozb,GAEf,MAEEjjb,EAAEnQ,OAASozb,GAGf,GAAIjjb,EAAEnQ,SAAWozb,GACf,GAAIjjb,EAAEgnb,OAAOhpJ,QAAuB,CAClCw1I,EAAMxza,EAAEshC,QAGR,EAAG,CACD,GAAIthC,EAAEshC,UAAYthC,EAAE4lb,mBACd5lb,EAAEgnb,OAAOtM,MAAQ16a,EAAEshC,QAAUkyY,IAC/BH,EAAKJ,MAAQ,GAAMI,EAAKJ,MAAOjza,EAAE+9a,YAAa/9a,EAAEshC,QAAUkyY,EAAKA,IAEjEmQ,GAActQ,GACdG,EAAMxza,EAAEshC,QACJthC,EAAEshC,UAAYthC,EAAE4lb,kBAAkB,CACpCzhd,EAAM,EACN,KACF,CAIAA,EADE67B,EAAEinb,QAAUjnb,EAAEgnb,OAAOhpJ,QAAQvpU,OACkB,IAA3CurC,EAAEgnb,OAAOhpJ,QAAQxyT,WAAWw0B,EAAEinb,WAE9B,EAERjD,GAAShkb,EAAG77B,EACd,OAAiB,IAARA,GAEL67B,EAAEgnb,OAAOtM,MAAQ16a,EAAEshC,QAAUkyY,IAC/BH,EAAKJ,MAAQ,GAAMI,EAAKJ,MAAOjza,EAAE+9a,YAAa/9a,EAAEshC,QAAUkyY,EAAKA,IAErD,IAARrvc,IACF67B,EAAEnQ,OAASqzb,GAEf,MAEEljb,EAAEnQ,OAASqzb,GAsBf,GAnBIljb,EAAEnQ,SAAWqzb,KACXljb,EAAEgnb,OAAOtM,MACP16a,EAAEshC,QAAU,EAAIthC,EAAE4lb,kBACpBjC,GAActQ,GAEZrza,EAAEshC,QAAU,GAAKthC,EAAE4lb,mBACrB5B,GAAShkb,EAAgB,IAAbqza,EAAKJ,OACjB+Q,GAAShkb,EAAIqza,EAAKJ,OAAS,EAAK,KAChCI,EAAKJ,MAAQ,EACbjza,EAAEnQ,OAASszb,KAIbnjb,EAAEnQ,OAASszb,IAMG,IAAdnjb,EAAEshC,SAEJ,GADAqiZ,GAActQ,GACS,IAAnBA,EAAKmB,UAQP,OADAx0a,EAAEknb,YAAc,EACT,QAOJ,GAAsB,IAAlB7T,EAAKiB,UAAkB8M,GAAKj+N,IAAUi+N,GAAKuG,IACpDxkO,IAAU,GACV,OAAOjoP,GAAIm4c,EAAM,IAInB,GAAIrza,EAAEnQ,SAAWuzb,IAAkC,IAAlB/P,EAAKiB,SACpC,OAAOp5c,GAAIm4c,EAAM,IAKnB,GAAsB,IAAlBA,EAAKiB,UAAkC,IAAhBt0a,EAAEktX,WAC1B/pK,IAAU8+N,IAAcjib,EAAEnQ,SAAWuzb,GAAe,CACrD,IAAIyE,EAAU7nb,EAAE4hC,WAAa0gZ,GAAkBkE,GAAaxmb,EAAGmjN,GAC5DnjN,EAAE4hC,WAAa2gZ,GAAQgE,GAAYvmb,EAAGmjN,GACrCs/N,GAAoBzib,EAAE2tF,OAAO3H,KAAKhmF,EAAGmjN,GAKzC,GAHI0kO,IAAWtE,IAAqBsE,IAAWrE,KAC7Cxjb,EAAEnQ,OAASuzb,IAETyE,IAAWxE,IAAgBwE,IAAWtE,GAKxC,OAJuB,IAAnBlQ,EAAKmB,YACPx0a,EAAEknb,YAAc,GAGX,GAST,GAAIW,IAAWvE,KACTngO,IAAU++N,GACZ,GAAgBlib,GAETmjN,IAAU,KAEjB,GAAuBnjN,EAAG,EAAG,GAAG,GAI5BmjN,IAAUg/N,KAEZ,GAAKnib,EAAEozB,MAEa,IAAhBpzB,EAAEktX,YACJltX,EAAE+jb,SAAW,EACb/jb,EAAE8jb,YAAc,EAChB9jb,EAAEuyG,OAAS,KAIjBoxU,GAActQ,GACS,IAAnBA,EAAKmB,WAEP,OADAx0a,EAAEknb,YAAc,EACT,EAGb,CAIA,OAAI/jO,IAAU,GAAmB,GAC7BnjN,EAAE67N,MAAQ,EAAY,IAGX,IAAX77N,EAAE67N,MACJmoN,GAAShkb,EAAgB,IAAbqza,EAAKJ,OACjB+Q,GAAShkb,EAAIqza,EAAKJ,OAAS,EAAK,KAChC+Q,GAAShkb,EAAIqza,EAAKJ,OAAS,GAAM,KACjC+Q,GAAShkb,EAAIqza,EAAKJ,OAAS,GAAM,KACjC+Q,GAAShkb,EAAmB,IAAhBqza,EAAKgG,UACjB2K,GAAShkb,EAAIqza,EAAKgG,UAAY,EAAK,KACnC2K,GAAShkb,EAAIqza,EAAKgG,UAAY,GAAM,KACpC2K,GAAShkb,EAAIqza,EAAKgG,UAAY,GAAM,OAIpC4K,GAAYjkb,EAAGqza,EAAKJ,QAAU,IAC9BgR,GAAYjkb,EAAgB,MAAbqza,EAAKJ,QAGtB0Q,GAActQ,GAIVrza,EAAE67N,KAAO,IAAK77N,EAAE67N,MAAQ77N,EAAE67N,MAET,IAAd77N,EAAEshC,QAAgB,GAAO,GAClC,CAprBAmhZ,GAAsB,CAEpB,IAAIgE,GAAO,EAAG,EAAG,EAAG,EAAGf,IACvB,IAAIe,GAAO,EAAG,EAAG,EAAG,EAAGX,IACvB,IAAIW,GAAO,EAAG,EAAG,GAAI,EAAGX,IACxB,IAAIW,GAAO,EAAG,EAAG,GAAI,GAAIX,IAEzB,IAAIW,GAAO,EAAG,EAAG,GAAI,GAAIN,IACzB,IAAIM,GAAO,EAAG,GAAI,GAAI,GAAIN,IAC1B,IAAIM,GAAO,EAAG,GAAI,IAAK,IAAKN,IAC5B,IAAIM,GAAO,EAAG,GAAI,IAAK,IAAKN,IAC5B,IAAIM,GAAO,GAAI,IAAK,IAAK,KAAMN,IAC/B,IAAIM,GAAO,GAAI,IAAK,IAAK,KAAMN,KCpgClB,MAAM2B,GACjB,WAAA5wd,GACIvD,KAAK0/c,KAAO,IAAIuH,GAChBjnd,KAAK2iM,UAAY,OACjB3iM,KAAKo0d,aAAe,IAAIn7c,WAAWjZ,KAAK2iM,WACxC3iM,KAAK8ld,WAAa,EAElBgO,GAAY9zd,KAAK0/c,KAAM1/c,KAAK8ld,WAChC,CAEA,OAAAiO,CAAQM,GAEJr0d,KAAK0/c,KAAKp7c,MAAQ+vd,EAClBr0d,KAAK0/c,KAAKiB,SAAW3gd,KAAK0/c,KAAKp7c,MAAMxD,OACrCd,KAAK0/c,KAAKgB,QAAU,EACpB1gd,KAAK0/c,KAAKxhc,OAASle,KAAKo0d,aACxBp0d,KAAK0/c,KAAKmB,UAAY7gd,KAAK2iM,UAC3B3iM,KAAK0/c,KAAKkB,SAAW,EAGrB,IAAI0T,EAAUP,GAAQ/zd,KAAK0/c,KAAM8O,IAC7B+F,EAAU,IAAIt7c,WAAWjZ,KAAK0/c,KAAKxhc,OAAOhF,OAAQ,EAAGlZ,KAAK0/c,KAAKkB,UAEnE,GAAI0T,EAAU,EACV,MAAM,IAAItxd,MAAM,uBAGpB,GAAIhD,KAAK0/c,KAAKiB,SAAW,EAAG,CAGxB,IAAIxxT,EAAS,CAAColU,GACVC,EAAWD,EAAQzzd,OACvB,EAAG,CASC,GAPAd,KAAK0/c,KAAKxhc,OAAS,IAAIjF,WAAWjZ,KAAK2iM,WACvC3iM,KAAK0/c,KAAKkB,SAAW,EACrB5gd,KAAK0/c,KAAKmB,UAAY7gd,KAAK2iM,UAG3B2xR,EAAUP,GAAQ/zd,KAAK0/c,KAAM8O,IAEzB8F,EAAU,EACV,MAAM,IAAItxd,MAAM,uBAGpB,IAAIosJ,EAAQ,IAAIn2I,WAAWjZ,KAAK0/c,KAAKxhc,OAAOhF,OAAQ,EAAGlZ,KAAK0/c,KAAKkB,UACjE4T,GAAYplU,EAAMtuJ,OAClBquJ,EAAOhmJ,KAAKimJ,EAChB,OAASpvJ,KAAK0/c,KAAKiB,SAAW,GAI9B,IAAIl/M,EAAU,IAAIxoP,WAAWu7c,GACzBz7c,EAAS,EAEb,IAAK,IAAIrV,EAAI,EAAGA,EAAIyrJ,EAAOruJ,OAAQ4C,IAC/B+9P,EAAQpzP,IAAI8gJ,EAAOzrJ,GAAIqV,GACvBA,GAAUo2I,EAAOzrJ,GAAG5C,OAGxByzd,EAAU9yN,CACd,CAQA,OALAzhQ,KAAK0/c,KAAKp7c,MAAQ,KAClBtE,KAAK0/c,KAAKiB,SAAW,EACrB3gd,KAAK0/c,KAAKgB,QAAU,EAGb6T,CACX,EClEW,MAAME,GACjB,WAAAlxd,CAAY/C,GACRR,KAAK2tZ,QAAUntZ,GAAU,KAEzBR,KAAK00d,aAAe,CAAC,EAErB10d,KAAK20d,YAAc,KACnB30d,KAAK40d,aAAc,EAGnB50d,KAAK60d,eAAiB,CAClB,MAAS70d,KAAK80d,aAAaztd,KAAKrH,MAChC,QAAWA,KAAK+0d,eAAe1td,KAAKrH,MACpC,SAAYA,KAAKg1d,gBAAgB3td,KAAKrH,MACtC,KAAQA,KAAKi1d,WAAW5td,KAAKrH,MAC7B,SAAYA,KAAKk1d,UAAU7td,KAAKrH,OAKpCA,KAAKm1d,WAAa,MACtB,CAIA,aAAAC,CAAcvf,EAAQ5yc,EAAMoyd,GACxB,GAAIA,EACAr1d,KAAK00d,aAAazxd,GAAQ4yc,MACvB,CAEH,KAAM5yc,KAAQjD,KAAK00d,cACf,cAEG10d,KAAK00d,aAAazxd,EAC7B,CAEA,GAAU,eAAiBoyd,EAAO,OAAS,MACjC,aAAexf,EAAQ,WAAa5yc,GAC9CjD,KAAKm1d,WAAWtf,EAAQ5yc,EAAMoyd,EAClC,CAEA,WAAAC,CAAYvyd,GACR,MAAME,EAAO,GAAwBF,GACrC,GAAa,iBAATE,EACA,OAAOA,EAMX,GAAIF,EAAE00C,SAAuB,aAAX10C,EAAE6R,MAEE,MAAd7R,EAAE00C,QACF,MAAO,WAAa10C,EAAE00C,QAM9B,GAAI10C,EAAEwyd,cAAe,CAEjB,GAAqC,OAAjCxyd,EAAEwyd,cAAchhd,OAAO,EAAG,GAC1B,OAAOxR,EAAEwyd,cAGb,MAAMzd,EAAYv1b,SAASxf,EAAEwyd,cAAchhd,OAAO,GAAI,IAChDg6C,EAAOlqD,OAAOsgB,aAAamzb,GAAWjjb,cAE5C,MAAO,WAAa05B,EAAK12C,YAC7B,CAEA,MAAO,cACX,CAEA,cAAAk9c,CAAehyd,GACX,MAAME,EAAOjD,KAAKs1d,YAAYvyd,GAC9B,IAAI8yc,EAAS,GAAuB9yc,GA4BpC,GArBI/C,KAAK40d,cACL50d,KAAK40d,aAAc,EACnB11a,aAAal/C,KAAKw1d,eAEJ,aAATvyd,GACCF,EAAEmnb,UAAYlqb,KAAKy1d,eAAkB,GAQvC5f,EAAS,GAAS/X,oBAElB99b,KAAKo1d,cAAc,GAASl4B,aAAc,eAAe,IAMpD,iBAATj6b,EAUA,OATI4yc,IAIA71c,KAAKo1d,cAAcvf,EAAQ5yc,GAAM,GACjCjD,KAAKo1d,cAAcvf,EAAQ5yc,GAAM,SAGrC61c,GAAU/1c,GAQd,GAAI,MAAmB,KACnB,OAAQ8yc,GACJ,KAAK,GAASnY,WACVmY,EAAS,GAASrY,SAClB,MACJ,KAAK,GAASG,WACVkY,EAAS,GAASnY,WAClB,MACJ,KAAK,GAASF,SACVqY,EAAS,GAASjf,eAClB,MACJ,KAAK,GAAS6G,SACVoY,EAAS,GAAS/X,oBAClB,MAcZ,OARI76b,KAAQjD,KAAK00d,eACb7e,EAAS71c,KAAK00d,aAAazxd,KAO1B,MAAmB,OAA8B,aAATA,GACzCjD,KAAKo1d,cAAc,GAASh4B,aAAc,YAAY,GACtDp9b,KAAKo1d,cAAc,GAASh4B,aAAc,YAAY,QACtD0b,GAAU/1c,IAQT8yc,GAAY9yc,EAAEe,MAAO,OAAkB,MAS5C9D,KAAK20d,YAAc,KACnB7b,GAAU/1c,GAGI,gBAATE,GAA2B,QAC1B,gBAAiBjD,KAAK00d,eACxB10d,KAAK40d,aAAc,EACnB50d,KAAKw1d,cAAgBz9a,WAAW/3C,KAAK01d,oBAAoBrud,KAAKrH,MAAO,UACrEA,KAAKy1d,eAAiB1yd,EAAEmnb,iBAI5Blqb,KAAKo1d,cAAcvf,EAAQ5yc,GAAM,KApB7BjD,KAAK20d,YAAc1xd,OAInB80C,WAAW/3C,KAAK21d,uBAAuBtud,KAAKrH,MAAO,GAAI+C,GAiB/D,CAGA,eAAAiyd,CAAgBjyd,GAIZ,GAHA+1c,GAAU/1c,GAGe,OAArB/C,KAAK20d,YACL,OAGJ,IAAI1xd,EAAOjD,KAAKs1d,YAAYvyd,GAC5B,MAAM8yc,EAAS,GAAuB9yc,GAGxB,iBAATE,GAA6BA,GAAQjD,KAAK20d,cAI/C1xd,EAAOjD,KAAK20d,YACZ30d,KAAK20d,YAAc,KAEd9e,EAKL71c,KAAKo1d,cAAcvf,EAAQ5yc,GAAM,GAJ7B,GAAS,2BAA4BF,GAK7C,CAEA,sBAAA4yd,CAAuB5yd,GAEnB,GAAyB,OAArB/C,KAAK20d,YACL,OAGJ,IAAI9e,EAEJ,MAAM5yc,EAAOjD,KAAK20d,YAMlB,GALA30d,KAAK20d,YAAc,KAKd5xd,EAAE00C,SAAW,IAAU10C,EAAE00C,SAAW,GAErCo+Z,EAAS9yc,EAAE00C,aACR,GAAK10C,EAAE00C,SAAW,IAAU10C,EAAE00C,SAAW,GAAO,CAEnD,IAAI8W,EAAOlqD,OAAOsgB,aAAa5hB,EAAE00C,SAG7B8W,EADAxrD,EAAE60C,SACK2W,EAAK15B,cAEL05B,EAAK1tC,cAEhBg1b,EAAStnZ,EAAK12C,YAClB,MAEIg+b,EAAS,EAGb71c,KAAKo1d,cAAcvf,EAAQ5yc,GAAM,EACrC,CAEA,YAAA6xd,CAAa/xd,GACT+1c,GAAU/1c,GAEV,MAAME,EAAOjD,KAAKs1d,YAAYvyd,GAW9B,GAPI/C,KAAK40d,cACL50d,KAAK40d,aAAc,EACnB11a,aAAal/C,KAAKw1d,eAClBx1d,KAAKo1d,cAAc,GAASl4B,aAAc,eAAe,KAIxD,MAAmB,OAA8B,aAATj6b,EAGzC,OAFAjD,KAAKo1d,cAAc,GAASh4B,aAAc,YAAY,QACtDp9b,KAAKo1d,cAAc,GAASh4B,aAAc,YAAY,GAI1Dp9b,KAAKo1d,cAAcp1d,KAAK00d,aAAazxd,GAAOA,GAAM,IAK9C,MAAkC,cAATA,GACS,eAATA,IACrB,eAAgBjD,KAAK00d,cACrB10d,KAAKo1d,cAAcp1d,KAAK00d,aAAa,cAClB,cAAc,GAEjC,cAAe10d,KAAK00d,cACpB10d,KAAKo1d,cAAcp1d,KAAK00d,aAAa,aAClB,aAAa,GAG5C,CAEA,mBAAAgB,GACI11d,KAAK40d,aAAc,EACnB11a,aAAal/C,KAAKw1d,eAClBx1d,KAAKo1d,cAAc,GAASl4B,aAAc,eAAe,EAC7D,CAEA,UAAA+3B,GACI,GAAU,yBACV,IAAK,IAAIhyd,KAAQjD,KAAK00d,aAClB10d,KAAKo1d,cAAcp1d,KAAK00d,aAAazxd,GAAOA,GAAM,GAEtD,GAAU,wBACd,CAGA,SAAAiyd,CAAUnyd,GACN,GAAIA,EAAE6yd,aACF,OAEJ,GAAI7yd,EAAEgpH,OACF,OAGJ,MAAMvrH,EAASR,KAAK2tZ,QACdkoE,EAAW71d,KAAK00d,aACtB,CAAC,UAAW,YAAY9rd,SAAS3F,IAC7B,KAAMA,KAAQ4yd,GACV,OAGJ,MAAMt0d,EAAQ,IAAIu0d,cAAc,QACA,CAAEhyd,IAAK+xd,EAAS5yd,GACdA,KAAMA,IACxC1B,EAAMq0d,cAAe,EACrBp1d,EAAOilG,cAAclkG,EAAM,GAEnC,CAIA,IAAAw0d,GAcI,GAXA/1d,KAAK2tZ,QAAQpwW,iBAAiB,UAAWv9C,KAAK60d,eAAemB,SAC7Dh2d,KAAK2tZ,QAAQpwW,iBAAiB,QAASv9C,KAAK60d,eAAeoB,OAC3Dj2d,KAAK2tZ,QAAQpwW,iBAAiB,WAAYv9C,KAAK60d,eAAeqB,UAG9Dj0d,OAAOs7C,iBAAiB,OAAQv9C,KAAK60d,eAAesB,MAMhD,MAAuB,KAAqB,CAC5C,MAAMt1Z,EAAU7gE,KAAK60d,eAAeuB,SACpC,CAAC,YAAa,UAAW,YAAa,QACrC,aAAc,WAAY,YAC1B,UAAW,SAASxtd,SAAQgM,GACzB9S,SAASy7C,iBAAiB3oC,EAAMisD,EACN,CAAErjB,SAAS,EACTC,SAAS,KAC7C,CAGJ,CAEA,MAAA44a,GAGI,GAAI,MAAuB,KAAqB,CAC5C,MAAMx1Z,EAAU7gE,KAAK60d,eAAeuB,SACpC,CAAC,YAAa,UAAW,YAAa,QACrC,aAAc,WAAY,YAC1B,UAAW,SAASxtd,SAAQgM,GAAQ9S,SAAS67C,oBAAoB/oC,EAAMisD,IAC5E,CAEA7gE,KAAK2tZ,QAAQhwW,oBAAoB,UAAW39C,KAAK60d,eAAemB,SAChEh2d,KAAK2tZ,QAAQhwW,oBAAoB,QAAS39C,KAAK60d,eAAeoB,OAC9Dj2d,KAAK2tZ,QAAQhwW,oBAAoB,WAAY39C,KAAK60d,eAAeqB,UACjEj0d,OAAO07C,oBAAoB,OAAQ39C,KAAK60d,eAAesB,MAGvDn2d,KAAKi1d,YAGT,ECzXJ,MAAMqB,GAAe,EACfC,GAAe,EACfC,GAAe,EACfC,GAAe,EACfC,GAAe,EACfC,GAAe,GACfC,GAAe,GACfC,GAAe,GAEfC,GAAe,IAEfC,GAAoB,GACpBC,GAAqB,GAGrBC,GAAwB,IAGxBC,GAAiB,IAGjBC,GAAuB,IAGvBC,GAAsB,GAEb,MAAMC,GACjB,WAAA9zd,GACIvD,KAAK2tZ,QAAU,KAEf3tZ,KAAKkvZ,OAAS4nE,GAEd92d,KAAKs3d,SAAW,GAChBt3d,KAAKu3d,SAAW,GAEhBv3d,KAAKw3d,iBAAkB,EACvBx3d,KAAKy3d,cAAgB,EAErBz3d,KAAK03d,oBAAsB,KAC3B13d,KAAK23d,mBAAqB,KAE1B33d,KAAK43d,mBAAqB53d,KAAK63d,cAAcxwd,KAAKrH,KACtD,CAEA,MAAA83d,CAAOt3d,GACHR,KAAK+3d,SAEL/3d,KAAK2tZ,QAAUntZ,EACfR,KAAK2tZ,QAAQpwW,iBAAiB,aACAv9C,KAAK43d,oBACnC53d,KAAK2tZ,QAAQpwW,iBAAiB,YACAv9C,KAAK43d,oBACnC53d,KAAK2tZ,QAAQpwW,iBAAiB,WACAv9C,KAAK43d,oBACnC53d,KAAK2tZ,QAAQpwW,iBAAiB,cACAv9C,KAAK43d,mBACvC,CAEA,MAAAG,GACS/3d,KAAK2tZ,UAIV3tZ,KAAKg4d,wBACLh4d,KAAKi4d,uBAELj4d,KAAK2tZ,QAAQhwW,oBAAoB,aACA39C,KAAK43d,oBACtC53d,KAAK2tZ,QAAQhwW,oBAAoB,YACA39C,KAAK43d,oBACtC53d,KAAK2tZ,QAAQhwW,oBAAoB,WACA39C,KAAK43d,oBACtC53d,KAAK2tZ,QAAQhwW,oBAAoB,cACA39C,KAAK43d,oBACtC53d,KAAK2tZ,QAAU,KACnB,CAEA,aAAAkqE,CAAc90d,GACV,IAAI2E,EAKJ,OAHA3E,EAAEiiG,kBACFjiG,EAAE05C,iBAEM15C,EAAE6R,MACN,IAAK,aACDlN,EAAK1H,KAAKk4d,YACV,MACJ,IAAK,YACDxwd,EAAK1H,KAAKm4d,WACV,MACJ,IAAK,WACL,IAAK,cACDzwd,EAAK1H,KAAKo4d,UACV,MAGR,IAAK,IAAI10d,EAAI,EAAGA,EAAIX,EAAEs1d,eAAev3d,OAAQ4C,IAAK,CAC9C,IAAI40d,EAAQv1d,EAAEs1d,eAAe30d,GAC7BgE,EAAGvG,KAAKnB,KAAMs4d,EAAM5mM,WAAY4mM,EAAM7wG,QAAS6wG,EAAM9wG,QACzD,CACJ,CAEA,WAAA0wG,CAAYv1d,EAAIsV,EAAGC,GAGf,GAAIlY,KAAKu4d,uBAA0Bv4d,KAAKkvZ,SAAWonE,GAC/Ct2d,KAAKu3d,SAASpud,KAAKxG,OADvB,CAOA,GAAK3C,KAAKs3d,SAASx2d,OAAS,GACtBoZ,KAAK2e,MAAQ74B,KAAKs3d,SAAS,GAAG//H,QAAW0/H,GAG3C,OAFAj3d,KAAKkvZ,OAASonE,QACdt2d,KAAKu3d,SAASpud,KAAKxG,GAMvB,GAAI3C,KAAKw3d,gBAGL,OAFAx3d,KAAKkvZ,OAASonE,QACdt2d,KAAKu3d,SAASpud,KAAKxG,GAevB,OAXA3C,KAAKs3d,SAASnud,KAAK,CACfxG,GAAIA,EACJ40V,QAASr9U,KAAK2e,MACdoN,QAAQ,EACRuyb,OAAQvgd,EACRwgd,OAAQvgd,EACRwgd,MAAOzgd,EACP0gd,MAAOzgd,EACPmiD,MAAO,IAGHr6D,KAAKs3d,SAASx2d,QAClB,KAAK,EACDd,KAAK44d,yBACL,MAEJ,KAAK,EACD54d,KAAKkvZ,UAAYqnE,GAAYG,GAAUC,IACvC32d,KAAKg4d,wBACL,MAEJ,KAAK,EACDh4d,KAAKkvZ,UAAYsnE,GAAYI,GAAaC,IAC1C,MAEJ,QACI72d,KAAKkvZ,OAASonE,GA7CtB,CA+CJ,CAEA,UAAA6B,CAAWx1d,EAAIsV,EAAGC,GACd,IAAIogd,EAAQt4d,KAAKs3d,SAASz/b,MAAKvrB,GAAKA,EAAE3J,KAAOA,IAG7C,QAAcf,IAAV02d,EACA,OAIJA,EAAMI,MAAQzgd,EACdqgd,EAAMK,MAAQzgd,EAEd,IAAI0jc,EAAS3jc,EAAIqgd,EAAME,OACnB3c,EAAS3jc,EAAIogd,EAAMG,OAQvB,GALKH,EAAME,SAAWF,EAAMI,OACvBJ,EAAMG,SAAWH,EAAMK,QACxBL,EAAMj+Z,MAAqC,IAA7B/3D,KAAK2yH,MAAM4mV,EAAQD,GAAgBt5c,KAAKg4D,KAGrDt6D,KAAKu4d,sBAAuB,CAE7B,GAAIj2d,KAAKu2d,MAAMjd,EAAQC,GAAUkb,GAC7B,OAgBJ,GAZA/2d,KAAKkvZ,UAAYqnE,GAAYC,GAAYC,GAAcE,IACvD32d,KAAKg4d,wBAEwB,IAAzBh4d,KAAKs3d,SAASx2d,SACdd,KAAKkvZ,SAAW,IAES,IAAzBlvZ,KAAKs3d,SAASx2d,SACdd,KAAKkvZ,UAAY0nE,GAAaC,KAKL,IAAzB72d,KAAKs3d,SAASx2d,OAAc,CAG5B,IAAIg4d,EAAY94d,KAAKs3d,SAASz/b,MAAKvrB,GAAKA,EAAE3J,KAAOA,IAG7Co2d,EAAgBz2d,KAAKu2d,MAAMC,EAAUN,OAASM,EAAUJ,MAC7BI,EAAUL,OAASK,EAAUH,OAK5D,GAAII,EAAgBhC,GAAmB,CAGnC,IAAIiC,EAAa12d,KAAKg7D,IAAIg7Z,EAAMj+Z,MAAQy+Z,EAAUz+Z,OAClD2+Z,EAAa12d,KAAKg7D,KAAM07Z,EAAa,KAAO,IAAO,KAI/Ch5d,KAAKkvZ,QADL8pE,EAAahC,IACGJ,IAEAC,GAGhB72d,KAAKi5d,6BACLj5d,KAAKi4d,sBAEb,MAAYj4d,KAAKi5d,6BAGbj5d,KAAKk5d,uBAEb,CAEA,IAAKl5d,KAAKu4d,sBACN,OAGJv4d,KAAKm5d,WAAW,eACpB,CAEAn5d,KAAKm5d,WAAW,cACpB,CAEA,SAAAf,CAAUz1d,EAAIsV,EAAGC,GAEb,IAAmC,IAA/BlY,KAAKu3d,SAASvrd,QAAQrJ,GAUtB,OARA3C,KAAKu3d,SAASngb,OAAOp3C,KAAKu3d,SAASvrd,QAAQrJ,GAAK,QAGlB,IAAzB3C,KAAKu3d,SAASz2d,QACW,IAAzBd,KAAKs3d,SAASx2d,SACfd,KAAKkvZ,OAAS4nE,GACd92d,KAAKw3d,iBAAkB,IAc/B,IAPKx3d,KAAKu4d,uBACNv4d,KAAKi5d,8BACLj5d,KAAKi4d,uBACLj4d,KAAKkvZ,OAASonE,KAIbt2d,KAAKu4d,wBAENv4d,KAAKkvZ,UAAYwnE,GAAUE,GAAaC,IAExC72d,KAAKkvZ,SAAWynE,GAChB32d,KAAKg4d,yBAEAh4d,KAAKw3d,iBAKN,OAJAx3d,KAAKy3d,cAAgBv9c,KAAK2e,MAC1B74B,KAAKw3d,iBAAkB,EAGfx3d,KAAKs3d,SAASx2d,QAClB,KAAK,EACDd,KAAKkvZ,UAAYsnE,GAAYC,IAC7B,MAEJ,KAAK,EACDz2d,KAAKkvZ,UAAYqnE,GAAYE,IAC7B,MAMhB,GAAIz2d,KAAKw3d,gBAAiB,CAEjBt9c,KAAK2e,MAAQ74B,KAAKy3d,cAAiBR,KACpCj3d,KAAKkvZ,OAASonE,IAIdt2d,KAAKs3d,SAASjgc,MAAK/qB,GAAM4N,KAAK2e,MAAQvsB,EAAEirV,QAAW2/H,OACnDl3d,KAAKkvZ,OAASonE,IAGlB,IAAIgC,EAAQt4d,KAAKs3d,SAASz/b,MAAKvrB,GAAKA,EAAE3J,KAAOA,IAI7C,GAHA21d,EAAMryb,QAAS,EAGXjmC,KAAKu4d,sBACLv4d,KAAKm5d,WAAW,qBAGhB,GAAIn5d,KAAKkvZ,SAAWonE,GAChB,MAGZ,CAEIt2d,KAAKu4d,uBACLv4d,KAAKm5d,WAAW,cAIpB,IAAK,IAAIz1d,EAAI,EAAGA,EAAI1D,KAAKs3d,SAASx2d,OAAQ4C,IAClC1D,KAAKs3d,SAAS5zd,GAAGuiC,QACjBjmC,KAAKu3d,SAASpud,KAAKnJ,KAAKs3d,SAAS5zd,GAAGf,IAG5C3C,KAAKs3d,SAAW,GAEhBt3d,KAAKkvZ,OAASonE,IAGqB,IAA/Bt2d,KAAKu3d,SAASvrd,QAAQrJ,IACtB3C,KAAKu3d,SAASngb,OAAOp3C,KAAKu3d,SAASvrd,QAAQrJ,GAAK,GAItB,IAAzB3C,KAAKu3d,SAASz2d,SACfd,KAAKkvZ,OAAS4nE,GACd92d,KAAKw3d,iBAAkB,EAE/B,CAEA,mBAAAe,GACI,OAAIv4d,KAAKkvZ,SAAWonE,OAKhBt2d,KAAKkvZ,OAAUlvZ,KAAKkvZ,OAAS,MAM7BlvZ,KAAKkvZ,QAAUqnE,GAAYC,GAAYC,KACnCz2d,KAAKs3d,SAASjgc,MAAK/qB,GAAKA,EAAE25B,UAMtC,CAEA,sBAAA2yb,GACI54d,KAAKg4d,wBACLh4d,KAAK03d,oBAAsB3/a,YAAW,IAAM/3C,KAAKo5d,qBACXjC,GAC1C,CAEA,qBAAAa,GACI94a,aAAal/C,KAAK03d,qBAClB13d,KAAK03d,oBAAsB,IAC/B,CAEA,iBAAA0B,GACI,GAAIp5d,KAAKu4d,sBACL,MAAM,IAAIv1d,MAAM,iEAGpBhD,KAAKkvZ,OAASynE,GACd32d,KAAKm5d,WAAW,eACpB,CAEA,qBAAAD,GACIl5d,KAAKi4d,uBACLj4d,KAAK23d,mBAAqB5/a,YAAW,IAAM/3C,KAAKq5d,oBACXjC,GACzC,CAEA,oBAAAa,GACI/4a,aAAal/C,KAAK23d,oBAClB33d,KAAK23d,mBAAqB,IAC9B,CAEA,yBAAAsB,GACI,OAAmC,OAA5Bj5d,KAAK23d,kBAChB,CAEA,gBAAA0B,GACI,GAA6B,IAAzBr5d,KAAKs3d,SAASx2d,OACd,MAAM,IAAIkC,MAAM,0DAIpB,IAAIs2d,EAAOt5d,KAAKu5d,sBACZC,EAAWl3d,KAAKg7D,IAAIg8Z,EAAKrhd,GACzBwhd,EAAWn3d,KAAKg7D,IAAIg8Z,EAAKphd,GAIzBwhd,EAAO15d,KAAK25d,sBACZC,EAAqBt3d,KAAKg7D,IAAIh7D,KAAKu2d,MAAMa,EAAK/1a,MAAM1rC,EAAGyhd,EAAK/1a,MAAMzrC,GACpC5V,KAAKu2d,MAAMa,EAAK91a,KAAK3rC,EAAGyhd,EAAK91a,KAAK1rC,IAIhElY,KAAKkvZ,OAFJuqE,EAAWG,GACXJ,EAAWI,EACE/C,GAEAD,GAGlB52d,KAAKm5d,WAAW,gBAChBn5d,KAAKm5d,WAAW,cACpB,CAEA,UAAAA,CAAWvkd,GACP,IAAIjT,EAAS,CAAEiT,KAAM5U,KAAK65d,gBAAgB75d,KAAKkvZ,SAI3C4qE,EAAM95d,KAAK+5d,eACXhud,EAAM+td,EAAIl2a,KAUd,OANa,iBAAThvC,IACA7I,EAAM+td,EAAIn2a,OAKN3jD,KAAKkvZ,QACT,KAAK0nE,GACL,KAAKC,GACD9qd,EAAM+td,EAAIn2a,MACV,MASR,GANAhiD,EAAO,WAAaoK,EAAIkM,EACxBtW,EAAO,WAAaoK,EAAImM,EAKpBlY,KAAKkvZ,SAAW2nE,GAAU,CAC1B,IAAI1jZ,EAAWnzE,KAAK25d,sBACP,iBAAT/kd,GACAjT,EAAO,cAAgBwxE,EAASxvB,MAAM1rC,EACtCtW,EAAO,cAAgBwxE,EAASxvB,MAAMzrC,IAEtCvW,EAAO,cAAgBwxE,EAASvvB,KAAK3rC,EACrCtW,EAAO,cAAgBwxE,EAASvvB,KAAK1rC,EAE7C,MAAO,GAAIlY,KAAKkvZ,SAAW0nE,GACvB,GAAa,iBAAThid,EACAjT,EAAO,cAAgB,EACvBA,EAAO,cAAgB,MACpB,CACH,IAAIq4d,EAAWh6d,KAAKu5d,sBACpB53d,EAAO,cAAgBq4d,EAAS/hd,EAChCtW,EAAO,cAAgBq4d,EAAS9hd,CACpC,CAGJ,IAAI+hd,EAAM,IAAI34d,YAAYsT,EAAM,CAAEjT,OAAQA,IAC1C3B,KAAK2tZ,QAAQloT,cAAcw0X,EAC/B,CAEA,eAAAJ,CAAgBj2b,GACZ,OAAQA,GACJ,KAAK2yb,GACD,MAAO,SACX,KAAKC,GACD,MAAO,SACX,KAAKC,GACD,MAAO,WACX,KAAKC,GACD,MAAO,OACX,KAAKC,GACD,MAAO,YACX,KAAKC,GACD,MAAO,UACX,KAAKC,GACD,MAAO,QAGf,MAAM,IAAI7zd,MAAM,0BAA4B4gC,EAChD,CAEA,YAAAm2b,GACI,GAA6B,IAAzB/5d,KAAKs3d,SAASx2d,OACd,MAAM,IAAIkC,MAAM,sDAGpB,IAAIsX,EAAOta,KAAKs3d,SAASx2d,OACrBo5d,EAAK,EAAGC,EAAK,EAAG9N,EAAK,EAAG+N,EAAK,EAEjC,IAAK,IAAI12d,EAAI,EAAGA,EAAI1D,KAAKs3d,SAASx2d,OAAQ4C,IACtCw2d,GAAMl6d,KAAKs3d,SAAS5zd,GAAG80d,OACvB2B,GAAMn6d,KAAKs3d,SAAS5zd,GAAG+0d,OACvBpM,GAAMrsd,KAAKs3d,SAAS5zd,GAAGg1d,MACvB0B,GAAMp6d,KAAKs3d,SAAS5zd,GAAGi1d,MAG3B,MAAO,CAAEh1a,MAAO,CAAE1rC,EAAGiid,EAAK5/c,EACRpC,EAAGiid,EAAK7/c,GACjBspC,KAAM,CAAE3rC,EAAGo0c,EAAK/xc,EACRpC,EAAGkid,EAAK9/c,GAC7B,CAEA,mBAAAi/c,GACI,GAA6B,IAAzBv5d,KAAKs3d,SAASx2d,OACd,MAAM,IAAIkC,MAAM,sDAGpB,IAAIq3d,EAAQC,EACZD,EAASC,EAAS,EAClB,IAAIhgd,EAAOta,KAAKs3d,SAASx2d,OAEzB,IAAK,IAAI4C,EAAI,EAAGA,EAAI1D,KAAKs3d,SAASx2d,OAAQ4C,IACtC22d,GAAUr6d,KAAKs3d,SAAS5zd,GAAGg1d,MAAQ14d,KAAKs3d,SAAS5zd,GAAG80d,OACpD8B,GAAUt6d,KAAKs3d,SAAS5zd,GAAGi1d,MAAQ34d,KAAKs3d,SAAS5zd,GAAG+0d,OAGxD,MAAO,CAAExgd,EAAGoid,EAAS//c,EACZpC,EAAGoid,EAAShgd,EACzB,CAEA,mBAAAq/c,GACI,GAA6B,IAAzB35d,KAAKs3d,SAASx2d,OACd,MAAM,IAAIkC,MAAM,sDAKpB,IAAI2gD,EAAQ3jD,KAAKs3d,SAAS,GACtB1za,EAAO5jD,KAAKs3d,SAASt3d,KAAKs3d,SAASx2d,OAAS,GAE5Cy5d,EAAMj4d,KAAKg7D,IAAI1Z,EAAK40a,OAAS70a,EAAM60a,QACnCgC,EAAMl4d,KAAKg7D,IAAI1Z,EAAK60a,OAAS90a,EAAM80a,QAEnCgC,EAAMn4d,KAAKg7D,IAAI1Z,EAAK80a,MAAQ/0a,EAAM+0a,OAClCgC,EAAMp4d,KAAKg7D,IAAI1Z,EAAK+0a,MAAQh1a,EAAMg1a,OAEtC,MAAO,CAAEh1a,MAAO,CAAE1rC,EAAGsid,EAAKrid,EAAGsid,GACpB52a,KAAM,CAAE3rC,EAAGwid,EAAKvid,EAAGwid,GAChC,EC7iBJ,MAAMC,IAAe3jB,IAAsBR,GAE5B,MAAMokB,GACjB,WAAAr3d,GACIvD,KAAK2tZ,QAAU,KAEf3tZ,KAAK66d,QAAU/4d,SAASy9D,cAAc,UAElCo7Z,KACA36d,KAAK66d,QAAQplc,MAAM1a,SAAW,QAC9B/a,KAAK66d,QAAQplc,MAAMgkb,OAAS,QAC5Bz5c,KAAK66d,QAAQplc,MAAMqlc,cAAgB,OAEnC96d,KAAK66d,QAAQplc,MAAMsf,WAAa,UAGpC/0C,KAAK+6d,UAAY,CAAE9id,EAAG,EAAGC,EAAG,GAC5BlY,KAAKg7d,SAAW,CAAE/id,EAAG,EAAGC,EAAG,GAE3BlY,KAAK60d,eAAiB,CAClB,UAAa70d,KAAKi7d,iBAAiB5zd,KAAKrH,MACxC,WAAcA,KAAKk7d,kBAAkB7zd,KAAKrH,MAC1C,UAAaA,KAAKm7d,iBAAiB9zd,KAAKrH,MACxC,QAAWA,KAAKo7d,eAAe/zd,KAAKrH,MAE5C,CAEA,MAAA83d,CAAOt3d,GAOH,GANIR,KAAK2tZ,SACL3tZ,KAAK+3d,SAGT/3d,KAAK2tZ,QAAUntZ,EAEXm6d,GAAa,CACb74d,SAASgpE,KAAKpL,YAAY1/D,KAAK66d,SAK/B,MAAM/nd,EAAU,CAAE0qC,SAAS,EAAMC,SAAS,GAC1Cz9C,KAAK2tZ,QAAQpwW,iBAAiB,YAAav9C,KAAK60d,eAAewG,UAAWvod,GAC1E9S,KAAK2tZ,QAAQpwW,iBAAiB,aAAcv9C,KAAK60d,eAAeyG,WAAYxod,GAC5E9S,KAAK2tZ,QAAQpwW,iBAAiB,YAAav9C,KAAK60d,eAAe0G,UAAWzod,GAC1E9S,KAAK2tZ,QAAQpwW,iBAAiB,UAAWv9C,KAAK60d,eAAe2G,QAAS1od,EAC1E,CAEA9S,KAAKgkD,OACT,CAEA,MAAA+za,GACI,GAAK/3d,KAAK2tZ,QAAV,CAIA,GAAIgtE,GAAa,CACb,MAAM7nd,EAAU,CAAE0qC,SAAS,EAAMC,SAAS,GAC1Cz9C,KAAK2tZ,QAAQhwW,oBAAoB,YAAa39C,KAAK60d,eAAewG,UAAWvod,GAC7E9S,KAAK2tZ,QAAQhwW,oBAAoB,aAAc39C,KAAK60d,eAAeyG,WAAYxod,GAC/E9S,KAAK2tZ,QAAQhwW,oBAAoB,YAAa39C,KAAK60d,eAAe0G,UAAWzod,GAC7E9S,KAAK2tZ,QAAQhwW,oBAAoB,UAAW39C,KAAK60d,eAAe2G,QAAS1od,GAEzEhR,SAASgpE,KAAK8wG,YAAY57K,KAAK66d,QACnC,CAEA76d,KAAK2tZ,QAAU,IAZf,CAaJ,CAEA,MAAA9vU,CAAO25C,EAAMikW,EAAMC,EAAM3nW,EAAGv4D,GACxB,GAAW,IAANu4D,GAAmB,IAANv4D,EAEd,YADAx7D,KAAKgkD,QAIThkD,KAAK+6d,UAAU9id,EAAIjY,KAAK+6d,UAAU9id,EAAIjY,KAAKg7d,SAAS/id,EAAIwjd,EACxDz7d,KAAK+6d,UAAU7id,EAAIlY,KAAK+6d,UAAU7id,EAAIlY,KAAKg7d,SAAS9id,EAAIwjd,EACxD17d,KAAKg7d,SAAS/id,EAAIwjd,EAClBz7d,KAAKg7d,SAAS9id,EAAIwjd,EAElB,IAKIztY,EALA16E,EAAMvT,KAAK66d,QAAQ/f,WAAW,MAElC96c,KAAK66d,QAAQnlc,MAAQq+F,EACrB/zH,KAAK66d,QAAQlmb,OAAS6mB,EAGtB,IAEIyyB,EAAM,IAAIipX,UAAU,IAAI3wR,kBAAkB/uD,GAAOzD,EAAGv4D,EACxD,CAAE,MAAOs8C,IACL7pB,EAAM16E,EAAI4nc,gBAAgBpnV,EAAGv4D,GAC7ByyB,EAAIztE,KAAKnS,IAAI,IAAIk4K,kBAAkB/uD,GACvC,CAIA,GAHAjkH,EAAIood,UAAU,EAAG,EAAG5nW,EAAGv4D,GACvBjoD,EAAI+oc,aAAaruX,EAAK,EAAG,GAErB0sY,GACA36d,KAAK47d,sBACF,CACH,IAAIn4b,EAAMzjC,KAAK66d,QAAQgB,YACvB77d,KAAK2tZ,QAAQl4X,MAAMu7Z,OAAS,OAASvtZ,EAAM,IAAMg4b,EAAO,IAAMC,EAAO,WACzE,CACJ,CAEA,KAAA13a,GACIhkD,KAAK2tZ,QAAQl4X,MAAMu7Z,OAAS,OAC5Bhxb,KAAK66d,QAAQnlc,MAAQ,EACrB11B,KAAK66d,QAAQlmb,OAAS,EACtB30C,KAAK+6d,UAAU9id,EAAIjY,KAAK+6d,UAAU9id,EAAIjY,KAAKg7d,SAAS/id,EACpDjY,KAAK+6d,UAAU7id,EAAIlY,KAAK+6d,UAAU7id,EAAIlY,KAAKg7d,SAAS9id,EACpDlY,KAAKg7d,SAAS/id,EAAI,EAClBjY,KAAKg7d,SAAS9id,EAAI,CACtB,CAIA,IAAAuiU,CAAKgtC,EAASD,GACV,IAAKmzG,GACD,OAKA14d,OAAOomE,gBACProE,KAAK+6d,UAAU9id,EAAIwvW,EAAUxlX,OAAOomE,eAAeG,WACnDxoE,KAAK+6d,UAAU7id,EAAIsvW,EAAUvlX,OAAOomE,eAAeK,YAEnD1oE,KAAK+6d,UAAU9id,EAAIwvW,EACnBznX,KAAK+6d,UAAU7id,EAAIsvW,GAEvBxnX,KAAK47d,kBACL,IAAIp7d,EAASsB,SAASg6d,iBAAiBr0G,EAASD,GAChDxnX,KAAK+7d,kBAAkBv7d,EAC3B,CAEA,gBAAAy6d,CAAiB15d,GAIbvB,KAAKm7d,iBAAiB55d,EAC1B,CAEA,iBAAA25d,CAAkB35d,GAEdvB,KAAK+7d,kBAAkBx6d,EAAMy6d,cACjC,CAEA,gBAAAb,CAAiB55d,GACbvB,KAAK+7d,kBAAkBx6d,EAAMf,QAE7BR,KAAK+6d,UAAU9id,EAAI1W,EAAMkmX,QAAUznX,KAAKg7d,SAAS/id,EACjDjY,KAAK+6d,UAAU7id,EAAI3W,EAAMimX,QAAUxnX,KAAKg7d,SAAS9id,EAEjDlY,KAAK47d,iBACT,CAEA,cAAAR,CAAe75d,GAIX,IAAIf,EAASsB,SAASg6d,iBAAiBv6d,EAAMkmX,QAASlmX,EAAMimX,SAC5DxnX,KAAK+7d,kBAAkBv7d,GAWnBR,KAAKi8d,oBACLh6d,OAAO81C,YAAW,KAET/3C,KAAK2tZ,UAKVntZ,EAASsB,SAASg6d,iBAAiBv6d,EAAMkmX,QACNlmX,EAAMimX,SACzCxnX,KAAK+7d,kBAAkBv7d,GAAO,GAC/B,EAEX,CAEA,WAAA07d,GAC0C,WAAlCl8d,KAAK66d,QAAQplc,MAAMsf,aACnB/0C,KAAK66d,QAAQplc,MAAMsf,WAAa,GAExC,CAEA,WAAAonb,GAC0C,WAAlCn8d,KAAK66d,QAAQplc,MAAMsf,aACnB/0C,KAAK66d,QAAQplc,MAAMsf,WAAa,SAExC,CAKA,iBAAAqnb,CAAkB57d,GACd,QAAKA,IAIDA,IAAWR,KAAK2tZ,WAIf3tZ,KAAK2tZ,QAAQv5W,SAAS5zC,IAMoB,SAA3CyB,OAAO4zB,iBAAiBr1B,GAAQwwb,OAIxC,CAEA,iBAAA+qC,CAAkBv7d,GAGVR,KAAKi8d,qBACLz7d,EAASsB,SAASq3c,gBAElBn5c,KAAKo8d,kBAAkB57d,GACvBR,KAAKk8d,cAELl8d,KAAKm8d,aAEb,CAEA,eAAAP,GACI57d,KAAK66d,QAAQplc,MAAM8yC,KAAOvoE,KAAK+6d,UAAU9id,EAAI,KAC7CjY,KAAK66d,QAAQplc,MAAMgzC,IAAMzoE,KAAK+6d,UAAU7id,EAAI,IAChD,CAEA,gBAAA+jd,GACI,OAAOn6d,SAASq3c,gBACZr3c,SAAS0nE,gBAAgBp1B,SAAStyC,SAASq3c,eACnD,ECtOJ,MAAMkjB,IAAoB,EACpBC,GAAmB,SAEV,MAAMC,GACjB,WAAAh5d,GACIvD,KAAKw8d,WAAa,KAElBx8d,KAAKy8d,KAAO,EACZz8d,KAAK08d,OAAS,EACd18d,KAAK28d,cAAgB,QAErB38d,KAAK48d,IAAM,KAEX58d,KAAK68d,cAAgB,MAErB78d,KAAK88d,OAAS,EACd98d,KAAK+8d,IAAM,KAEX/8d,KAAK60d,eAAiB,CAClBpud,QAAS,OACToyD,KAAM,OACN8xD,MAAO,OACP7gH,MAAO,OAEf,CAGA,MAAIkzd,GACA,OAAOh9d,KAAK+8d,GAChB,CAEA,MAAIE,GACA,OAAOj9d,KAAK48d,GAChB,CAEA,OAAIM,GACA,OAAOl9d,KAAKy8d,IAChB,CAEA,OAAIS,CAAI1sd,GACJxQ,KAAKy8d,KAAOjsd,CAChB,CAGA,SAAI2sd,GACA,OAAOn9d,KAAK08d,OAAS18d,KAAKy8d,IAC9B,CAEA,OAAAW,GACI,OAAOp9d,KAAK48d,IAAI58d,KAAKy8d,KACzB,CAEA,WAAAY,CAAYt4c,GACR/kB,KAAKy8d,MAAQ13c,CACjB,CAEA,QAAAu4c,GACI,OAAOt9d,KAAKu9d,SAAS,EACzB,CAEA,SAAAC,GACI,OAAOx9d,KAAKu9d,SAAS,EACzB,CAEA,SAAAE,GACI,OAAOz9d,KAAKu9d,SAAS,EACzB,CAGA,QAAAA,CAASx4c,GACL,IAAIrgB,EAAM,EACV,IAAK,IAAIqgS,EAAOhgR,EAAQ,EAAGggR,GAAQ,EAAGA,IAClCrgS,GAAO1E,KAAK48d,IAAI58d,KAAKy8d,SAAmB,EAAP13L,EAErC,OAAOrgS,CACX,CAEA,UAAAg5d,CAAWrpd,GACa,qBAAV,IAAyBA,EAAMrU,KAAKm9d,OAC9C,IAAI/td,EAAM,GAEV,IAAK,IAAI1L,EAAI,EAAGA,EAAI2Q,EAAK3Q,GAAK,KAAM,CAChC,IAAIm/B,EAAO7iC,KAAK29d,aAAar7d,KAAK6V,IAAI,KAAM9D,EAAM3Q,IAClD0L,GAAO/K,OAAOsgB,aAAa3c,MAAM,KAAM66B,EAC3C,CACA,OAAOzzB,CACX,CAEA,YAAAuud,CAAatpd,GAGT,MAFoB,qBAAV,IAAyBA,EAAMrU,KAAKm9d,OAC9Cn9d,KAAKy8d,MAAQpod,EACN,IAAI4E,WAAWjZ,KAAK48d,IAAI1jd,OAAQlZ,KAAKy8d,KAAOpod,EAAKA,EAC5D,CAEA,SAAAupd,CAAUp9d,EAAQ6T,QACFzS,IAARyS,IAAqBA,EAAMrU,KAAKm9d,OAEpC38d,EAAO6N,IAAI,IAAI4K,WAAWjZ,KAAK48d,IAAI1jd,OAAQlZ,KAAKy8d,KAAMpod,IACtDrU,KAAKy8d,MAAQpod,CACjB,CAEA,OAAAwpd,CAAQppd,EAAOnD,EAAMtR,KAAKm9d,OACtB,OAAO,IAAIlkd,WAAWjZ,KAAK48d,IAAI1jd,OAAQlZ,KAAKy8d,KAAOhod,EAAOnD,EAAMmD,EACpE,CAKA,MAAAqpd,CAAO50d,EAAK6U,EAAKggd,GACb,GAAI/9d,KAAKm9d,MAAQp/c,EAAK,CAClB,GAAIggd,EAAQ,CACR,GAAI/9d,KAAKy8d,KAAOsB,EACZ,MAAM,IAAI/6d,MAAM,wBAA0B+6d,EAAS,UAEvD/9d,KAAKy8d,MAAQsB,CACjB,CACA,OAAO,CACX,CACA,OAAO,CACX,CAIA,KAAAvuO,GACQxvP,KAAK88d,OAAS,GAAK98d,KAAKw8d,WAAWx6L,aAAeisJ,UAAU+vC,OAC5Dh+d,KAAKw8d,WAAWn6L,KAAKriS,KAAKi+d,kBAC1Bj+d,KAAK88d,OAAS,EAEtB,CAEA,IAAAz6L,CAAKptR,GACDjV,KAAK+8d,IAAI1ud,IAAI4G,EAAKjV,KAAK88d,QACvB98d,KAAK88d,QAAU7nd,EAAInU,OACnBd,KAAKwvP,OACT,CAEA,UAAA0uO,CAAW9ud,GACPpP,KAAKqiS,KAAKjzR,EAAIxD,MAAM,IAAIpJ,KAAIyuK,GAAOA,EAAIp5J,WAAW,KACtD,CAGA,GAAAqrK,CAAIrhL,GACA7B,KAAK60d,eAAehzd,GAAO,MAC/B,CAEA,EAAA0jG,CAAG1jG,EAAKg/D,GACJ7gE,KAAK60d,eAAehzd,GAAOg/D,CAC/B,CAEA,gBAAAs9Z,GACIn+d,KAAK48d,IAAM,IAAI3jd,WAAWjZ,KAAK28d,eAC/B38d,KAAK+8d,IAAM,IAAI9jd,WAAWjZ,KAAK68d,cACnC,CAEA,IAAApuV,GACIzuI,KAAKm+d,mBACLn+d,KAAKy8d,KAAO,EACZz8d,KAAKw8d,WAAa,IACtB,CAEA,IAAA3ja,CAAKzM,EAAKgya,GACNp+d,KAAKyuI,OAELzuI,KAAKw8d,WAAa,IAAIvuC,UAAU7hY,EAAKgya,GACrCp+d,KAAKw8d,WAAW6B,WAAa,cAE7Br+d,KAAKw8d,WAAWtuC,UAAYlub,KAAKs+d,aAAaj3d,KAAKrH,MACnDA,KAAKw8d,WAAWpuC,OAAS,KACrB,GAAU,qBACNpub,KAAKw8d,WAAW5wa,UAChB,GAAS,+BAAiC5rD,KAAKw8d,WAAW5wa,UAG9D5rD,KAAK60d,eAAeh8Z,OACpB,GAAU,oBAAoB,EAElC74D,KAAKw8d,WAAWz4M,QAAWhhR,IACvB,GAAU,sBACV/C,KAAK60d,eAAelqW,MAAM5nH,GAC1B,GAAU,qBAAqB,EAEnC/C,KAAKw8d,WAAW1gX,QAAW/4G,IACvB,GAAU,uBAAyBA,GACnC/C,KAAK60d,eAAe/qd,MAAM/G,GAC1B,GAAU,uBAAyBA,EAAE,CAE7C,CAEA,KAAA4nH,GACQ3qH,KAAKw8d,aACAx8d,KAAKw8d,WAAWx6L,aAAeisJ,UAAU+vC,MACrCh+d,KAAKw8d,WAAWx6L,aAAeisJ,UAAUswC,aAC9C,GAAS,gCACTv+d,KAAKw8d,WAAW7xW,SAGpB3qH,KAAKw8d,WAAWtuC,UAAY,OAEpC,CAGA,cAAA+vC,GAGI,OAAO,IAAIhld,WAAWjZ,KAAK+8d,IAAI7jd,OAAQ,EAAGlZ,KAAK88d,OACnD,CAOA,gBAAA0B,CAAiBC,GAGb,MAAMC,EAA2D,GAApC1+d,KAAK08d,OAAS18d,KAAKy8d,KAAOgC,GACjDE,EAAe3+d,KAAK28d,cAAgB+B,EAS1C,GAPIC,IAGA3+d,KAAK28d,cAAgBr6d,KAAK6P,IAAyB,EAArBnS,KAAK28d,cAAmB+B,IAItD1+d,KAAK28d,cAAgBL,KACrBt8d,KAAK28d,cAAgBL,GACjBt8d,KAAK28d,cAAgB38d,KAAKm9d,MAAQsB,GAClC,MAAM,IAAIz7d,MAAM,iCAAmCs5d,GAAmB,6CAI9E,GAAIqC,EAAc,CACd,MAAMC,EAAc5+d,KAAK48d,IAAI1jd,OAC7BlZ,KAAK48d,IAAM,IAAI3jd,WAAWjZ,KAAK28d,eAC/B38d,KAAK48d,IAAIvud,IAAI,IAAI4K,WAAW2ld,EAAa5+d,KAAKy8d,KAAMz8d,KAAK08d,OAAS18d,KAAKy8d,MAC3E,MACQJ,GACAr8d,KAAK48d,IAAI7zc,WAAW,EAAG/oB,KAAKy8d,KAAMz8d,KAAK08d,QAEvC18d,KAAK48d,IAAIvud,IAAI,IAAI4K,WAAWjZ,KAAK48d,IAAI1jd,OAAQlZ,KAAKy8d,KAAMz8d,KAAK08d,OAAS18d,KAAKy8d,OAInFz8d,KAAK08d,OAAS18d,KAAK08d,OAAS18d,KAAKy8d,KACjCz8d,KAAKy8d,KAAO,CAChB,CAGA,cAAAoC,CAAer+c,GACX,MAAMs+c,EAAK,IAAI7ld,WAAWuH,GACtBs+c,EAAGh+d,OAASd,KAAK28d,cAAgB38d,KAAK08d,QACtC18d,KAAKw+d,iBAAiBM,EAAGh+d,QAE7Bd,KAAK48d,IAAIvud,IAAIywd,EAAI9+d,KAAK08d,QACtB18d,KAAK08d,QAAUoC,EAAGh+d,MACtB,CAEA,YAAAw9d,CAAav7d,GACT/C,KAAK6+d,eAAe97d,EAAEyd,MAClBxgB,KAAKm9d,MAAQ,GACbn9d,KAAK60d,eAAepud,UAChBzG,KAAK08d,QAAU18d,KAAKy8d,OAGpBz8d,KAAK08d,OAAS,EACd18d,KAAKy8d,KAAO,IAGhB,GAAU,yBAElB,ECpNJ,MAAMsC,GAAM,CAAC,GAAG,GAAG,GAAG,GAAI,EAAG,EAAG,EAAE,GAAG,GAAI,EAAE,GAAI,EAAE,GAAG,GAAG,GAAI,EAC9C,GAAI,EAAE,GAAI,EAAE,GAAG,GAAG,GAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC7C,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IACtDC,GAAS,CAAE,EAAG,EAAG,EAAG,EAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAErD7qW,GAAI,EACV,IAAIrrH,GAAEC,GAAEsgB,GAAE6e,GAAEnlC,GAAE+S,GACdhN,GAAE,MAAOC,GAAE,GAAG,GAAIsgB,GAAEvgB,GAAEC,GAAGm/B,GAAE,EAAMnlC,GAAE,KAAO+S,GAAEoyB,GAAEnlC,GAC9C,MAAMk8d,GAAM,CAAC51c,GAAEtmB,GAAEoxH,EAAEA,GAAErrH,GAAEqrH,GAAE9qG,GAAEvT,GAAEuT,GAAE6e,GAAEp/B,GAAEgN,GAAEq+G,GAAEjsF,GAAEp/B,GAAEqrH,GAAEA,GAAEpxH,GAAEsmB,GAAEtmB,GAAEsmB,GAAEvT,GAAEq+G,GAAEpxH,GAAEgG,GAAE+M,GAAEuT,GAAE6e,GAAEn/B,GAAEorH,GAAEA,GAAEjsF,GAC9DisF,GAAEr+G,GAAE/M,GAAEhG,GAAEgG,GAAEhG,GAAE+F,GAAE/F,GAAE+F,GAAE/F,GAAEsmB,GAAE8qG,GAAE9qG,GAAE8qG,GAAEprH,GAAE+M,GAAEhN,GAAEo/B,GAAEn/B,GAAEm/B,GAAEn/B,GAAEm/B,GAAEp/B,GAAEo/B,GAAEisF,EAAEA,GAAEA,GAAEr+G,GAAEhN,GAAEgN,GAAE/M,GAAEorH,GAC9DrrH,GAAEqrH,GAAE9qG,GAAEvT,GAAEq+G,GAAEjsF,GAAE7e,GAAE8qG,GAAE9qG,GAAEtmB,GAAEgG,GAAEorH,GAAEprH,GAAEorH,GAAEA,GAAEpxH,GAAEsmB,GAAE6e,GAAEp/B,GAAEqrH,GAAErrH,GAAE/F,GAAEgG,GAAEm/B,GAAEisF,GAAEpxH,GAAEoxH,GAAEjsF,GAAEn/B,GAAE+M,GAAEhN,GAAEgN,GAC9DuT,GAAEvT,GAAEhN,GAAEo/B,GAAE7e,GAAE8qG,GAAEprH,GAAE+M,GAAE/M,GAAEm/B,GAAEisF,GAAEr+G,GAAEhN,GAAEgN,GAAEuT,GAAEtmB,GAAEoxH,GAAEr+G,GAAE/M,GAAEhG,GAAEgG,GAAEhG,GAAEoxH,EAAEA,GAAErrH,GAAEo/B,GAAEp/B,GAAE/F,GAAEoxH,EAAEA,GAAE9qG,GAAE6e,IAC3Ep/B,GAAE,GAAG,GAAIC,GAAE,GAAG,GAAIsgB,GAAEvgB,GAAEC,GAAGm/B,GAAE,GAAMnlC,GAAE,MAAO+S,GAAEoyB,GAAEnlC,GAC9C,MAAMm8d,GAAM,CAAC71c,GAAEvT,GAAE/M,GAAEhG,GAAEoxH,GAAEpxH,GAAE+F,GAAEgN,GAAEhN,GAAEqrH,GAAEA,GAAEjsF,GAAE7e,GAAE6e,GAAEn/B,GAAE+M,GAAE/M,GAAEm/B,GAAE7e,GAAEvT,GAAEuT,GAAEtmB,GAAEgG,GAAEorH,GAAEprH,GAAEhG,GAAE+F,GAAEqrH,GAAEA,GAAEjsF,GAAE7e,GAAE6e,GAC9Dp/B,GAAE/F,GAAE+F,GAAEo/B,GAAEn/B,GAAE+M,GAAEq+G,EAAEA,GAAEprH,GAAEorH,GAAEA,GAAEpxH,GAAE+F,GAAEgN,GAAEuT,GAAE8qG,GAAErrH,GAAEo/B,GAAEn/B,GAAEm/B,GAAEisF,EAAEA,GAAErrH,GAAE/F,GAAEoxH,GAAEr+G,GAAEuT,GAAEtmB,GAAEsmB,GAAE8qG,GAAEA,GAAEr+G,GAC9Dq+G,EAAEA,GAAErrH,GAAEgN,GAAEuT,GAAE6e,GAAEp/B,GAAEqrH,GAAEprH,GAAE+M,GAAEuT,GAAE8qG,GAAE9qG,GAAEtmB,GAAEoxH,GAAEpxH,GAAEsmB,GAAE8qG,GAAEprH,GAAEhG,GAAEoxH,GAAEjsF,GAAE7e,GAAEvT,GAAEhN,GAAEgN,GAAEq+G,GAAEjsF,GAAEisF,GAAEpxH,GAAEgG,GAAEorH,GAC9DA,GAAEr+G,GAAEuT,GAAEtmB,GAAE+F,GAAEqrH,GAAEprH,GAAEm/B,GAAEp/B,GAAEo/B,GAAEn/B,GAAE+M,GAAE/M,GAAEm/B,GAAEp/B,GAAEo/B,GAAEp/B,GAAE/F,GAAEoxH,EAAEA,GAAEprH,GAAEhG,GAAEoxH,GAAEr+G,GAAE/M,GAAEorH,GAAE9qG,GAAE6e,GAAE7e,GAAEvT,GAAEhN,GAAE/F,IAC3E+F,GAAE,GAAG,GAAIC,GAAE,GAAG,GAAIsgB,GAAEvgB,GAAEC,GAAGm/B,GAAE,EAAMnlC,GAAE,IAAM+S,GAAEoyB,GAAEnlC,GAC7C,MAAMo8d,GAAM,CAAChrW,GAAEr+G,GAAEuT,GAAEtmB,GAAEoxH,EAAEA,GAAE9qG,GAAE6e,GAAEn/B,GAAEhG,GAAEoxH,EAAEA,GAAErrH,GAAEgN,GAAE/M,GAAEhG,GAAE+F,GAAEo/B,GAAEn/B,GAAEm/B,GAAEn/B,GAAEm/B,GAAEp/B,GAAEqrH,GAAE9qG,GAAEvT,GAAEhN,GAAEo/B,GAAE7e,GAAE8qG,GAAEA,GAAEr+G,GAC9D/M,GAAEorH,GAAEA,GAAEjsF,GAAE7e,GAAEtmB,GAAEoxH,GAAEpxH,GAAE+F,GAAE/F,GAAEsmB,GAAE8qG,GAAE9qG,GAAE6e,GAAEp/B,GAAEgN,GAAE/M,GAAE+M,GAAEhN,GAAE/F,GAAE+F,GAAEqrH,GAAEprH,GAAE+M,GAAEq+G,GAAEjsF,GAAE7e,GAAEvT,GAAEq+G,GAAEpxH,GAAEgG,GAAEorH,GAC9D9qG,GAAEtmB,GAAEgG,GAAEorH,GAAErrH,GAAEo/B,GAAEisF,GAAEr+G,GAAEhN,GAAEqrH,GAAE9qG,GAAEtmB,GAAEgG,GAAEhG,GAAEoxH,EAAEA,GAAEA,GAAEpxH,GAAE+F,GAAEo/B,GAAE7e,GAAEvT,GAAE/M,GAAEhG,GAAEgG,GAAEm/B,GAAEisF,GAAEpxH,GAAEoxH,EAAEA,GAAE9qG,GAAE6e,GAC9Dn/B,GAAE+M,GAAEhN,GAAEqrH,GAAEprH,GAAEorH,GAAE9qG,GAAEvT,GAAEq+G,GAAEjsF,GAAEp/B,GAAEgN,GAAEhN,GAAE/F,GAAEgG,GAAEm/B,GAAE7e,GAAE8qG,GAAEprH,GAAE+M,GAAEq+G,GAAEr+G,GAAEuT,GAAE8qG,GAAErrH,GAAEgN,GAAEq+G,GAAEjsF,GAAE7e,GAAE6e,GAAEp/B,GAAE/F,IAC3E+F,GAAE,KAAOC,GAAE,GAAG,GAAIsgB,GAAEvgB,GAAEC,GAAGm/B,GAAE,EAAMnlC,GAAE,IAAM+S,GAAEoyB,GAAEnlC,GAC7C,MAAMq8d,GAAM,CAAC/1c,GAAE6e,GAAEp/B,GAAEgN,GAAEhN,GAAEgN,GAAEq+G,GAAEpxH,GAAEsmB,GAAEtmB,GAAEgG,GAAE+M,GAAE/M,GAAEm/B,GAAEp/B,GAAEo/B,GAAEisF,EAAEA,GAAE9qG,GAAE8qG,GAAE9qG,GAAE8qG,GAAE9qG,GAAEvT,GAAEq+G,GAAEr+G,GAAEq+G,EAAEA,GAAEprH,GAAEhG,GAAEgG,GAAEm/B,GAC9DisF,GAAEjsF,GAAEp/B,GAAEqrH,GAAEprH,GAAEorH,GAAE9qG,GAAE6e,GAAEisF,GAAEpxH,GAAEgG,GAAEorH,GAAErrH,GAAEo/B,GAAEp/B,GAAE/F,GAAEgG,GAAE+M,GAAEq+G,GAAEjsF,GAAEp/B,GAAE/F,GAAEgG,GAAEhG,GAAE+F,GAAEqrH,GAAE9qG,GAAEtmB,GAAEsmB,GAAEvT,GAAEq+G,GAAEr+G,GAC9D/M,GAAEhG,GAAEgG,GAAEm/B,GAAE7e,GAAE8qG,GAAE9qG,GAAEvT,GAAEq+G,GAAEr+G,GAAEq+G,EAAEA,GAAEA,EAAEA,GAAE9qG,GAAE8qG,GAAErrH,GAAE/F,GAAEgG,GAAEhG,GAAEgG,GAAE+M,GAAEq+G,GAAEjsF,GAAE7e,GAAE6e,GAAEp/B,GAAEgN,GAAEhN,GAAEgN,GAAEq+G,GAAEpxH,GAC9DsmB,GAAEvT,GAAEq+G,GAAEr+G,GAAEq+G,GAAEjsF,GAAEp/B,GAAEqrH,GAAEprH,GAAEm/B,GAAEp/B,GAAEo/B,GAAE7e,GAAEtmB,GAAEgG,GAAE+M,GAAEhN,GAAEo/B,GAAEp/B,GAAE/F,GAAEgG,GAAEorH,GAAE9qG,GAAE6e,GAAEisF,GAAEpxH,GAAEgG,GAAEorH,GAAErrH,GAAEqrH,GAAE9qG,GAAEtmB,IAC3E+F,GAAE,GAAG,GAAIC,GAAE,GAAG,GAAIsgB,GAAEvgB,GAAEC,GAAGm/B,GAAE,IAAMnlC,GAAE,GAAG,GAAI+S,GAAEoyB,GAAEnlC,GAC9C,MAAMs8d,GAAM,CAAClrW,GAAEjsF,GAAEp/B,GAAEgN,GAAEhN,GAAE/F,GAAEsmB,GAAE6e,GAAEisF,GAAEpxH,GAAEoxH,GAAEjsF,GAAEn/B,GAAEorH,GAAErrH,GAAE/F,GAAEgG,GAAE+M,GAAEq+G,GAAEpxH,GAAE+F,GAAEo/B,GAAEn/B,GAAE+M,GAAEuT,GAAE6e,GAAE7e,GAAEtmB,GAAEoxH,GAAEr+G,GAAE/M,GAAEorH,GAC9DrrH,GAAEqrH,GAAEprH,GAAEhG,GAAEgG,GAAEhG,GAAEoxH,EAAEA,GAAEprH,GAAEm/B,GAAE7e,GAAEvT,GAAEuT,GAAEvT,GAAEhN,GAAEo/B,GAAE7e,GAAEtmB,GAAEgG,GAAEm/B,GAAEisF,EAAEA,GAAE9qG,GAAE8qG,GAAErrH,GAAEgN,GAAEhN,GAAEqrH,GAAE9qG,GAAE8qG,GAAEA,GAAEr+G,GAC9Dq+G,GAAEpxH,GAAEsmB,GAAE6e,GAAEisF,GAAEjsF,GAAEp/B,GAAEqrH,GAAEprH,GAAEorH,GAAErrH,GAAE/F,GAAEsmB,GAAE6e,GAAEn/B,GAAE+M,GAAEhN,GAAEo/B,GAAEn/B,GAAEorH,GAAE9qG,GAAEtmB,GAAE+F,GAAEgN,GAAE/M,GAAE+M,GAAEq+G,GAAEjsF,GAAEp/B,GAAEqrH,GAAE9qG,GAAEtmB,GAC9DsmB,GAAEvT,GAAEq+G,GAAEr+G,GAAEuT,GAAE8qG,GAAE9qG,GAAEvT,GAAEhN,GAAE/F,GAAEoxH,EAAEA,GAAEprH,GAAEhG,GAAEsmB,GAAE8qG,GAAEA,GAAEr+G,GAAEhN,GAAEo/B,GAAEn/B,GAAEm/B,GAAEisF,GAAEpxH,GAAEoxH,EAAEA,GAAEprH,GAAEhG,GAAE+F,GAAEgN,GAAE/M,GAAEm/B,IAC3Ep/B,GAAE,GAAG,GAAIC,GAAE,GAAG,GAAIsgB,GAAEvgB,GAAEC,GAAGm/B,GAAE,GAAMnlC,GAAE,MAAO+S,GAAEoyB,GAAEnlC,GAC9C,MAAMu8d,GAAM,CAACv2d,GAAEm/B,GAAE7e,GAAE8qG,GAAEA,GAAEpxH,GAAEsmB,GAAEvT,GAAEuT,GAAE8qG,GAAEA,GAAEjsF,GAAE7e,GAAEvT,GAAEhN,GAAEqrH,GAAEprH,GAAEhG,GAAE+F,GAAEgN,GAAEhN,GAAEqrH,GAAEprH,GAAEm/B,GAAEp/B,GAAEo/B,GAAEn/B,GAAEhG,GAAEgG,GAAEorH,GAAEA,GAAEr+G,GAC9Dq+G,EAAEA,GAAErrH,GAAEo/B,GAAEn/B,GAAE+M,GAAEq+G,GAAEpxH,GAAE+F,GAAE/F,GAAEgG,GAAE+M,GAAEq+G,GAAEjsF,GAAE7e,GAAE6e,GAAE7e,GAAE6e,GAAEisF,EAAEA,GAAErrH,GAAEgN,GAAEuT,GAAEtmB,GAAEoxH,GAAEr+G,GAAEhN,GAAE/F,GAAEsmB,GAAEtmB,GAAEgG,GAAEorH,GAC9DprH,GAAEhG,GAAEoxH,GAAEjsF,GAAE7e,GAAE6e,GAAEp/B,GAAE/F,GAAEsmB,GAAEvT,GAAEhN,GAAEqrH,GAAEA,GAAEr+G,GAAE/M,GAAEm/B,GAAEp/B,GAAEqrH,GAAEprH,GAAEhG,GAAEgG,GAAEorH,GAAEA,GAAEr+G,GAAE/M,GAAEm/B,GAAE7e,GAAEvT,GAAEhN,GAAE/F,GAAEsmB,GAAE8qG,GAC9DrrH,GAAEgN,GAAEuT,GAAEtmB,GAAEoxH,EAAEA,GAAE9qG,GAAE6e,GAAEisF,GAAEjsF,GAAEisF,GAAEpxH,GAAEsmB,GAAE8qG,GAAErrH,GAAEgN,GAAEq+G,GAAEpxH,GAAE+F,GAAEo/B,GAAEn/B,GAAE+M,GAAEq+G,EAAEA,GAAE9qG,GAAEtmB,GAAEgG,GAAEorH,GAAErrH,GAAEo/B,GAAEn/B,GAAE+M,IAC3EhN,GAAE,GAAG,GAAIC,GAAE,GAAG,GAAIsgB,GAAEvgB,GAAEC,GAAGm/B,GAAE,EAAMnlC,GAAE,KAAO+S,GAAEoyB,GAAEnlC,GAC9C,MAAMw8d,GAAM,CAACz2d,GAAEqrH,GAAE9qG,GAAE6e,GAAEn/B,GAAE+M,GAAEq+G,EAAEA,GAAEA,GAAEpxH,GAAEgG,GAAE+M,GAAEhN,GAAEgN,GAAEuT,GAAEtmB,GAAEsmB,GAAEvT,GAAEhN,GAAEqrH,GAAEA,EAAEA,GAAEprH,GAAEm/B,GAAEisF,GAAEjsF,GAAEn/B,GAAEorH,GAAE9qG,GAAE6e,GAAEisF,GAAEr+G,GAC9D/M,GAAEhG,GAAE+F,GAAEgN,GAAEhN,GAAEo/B,GAAEn/B,GAAEhG,GAAEgG,GAAEm/B,GAAE7e,GAAE8qG,GAAE9qG,GAAEtmB,GAAE+F,GAAEo/B,GAAE7e,GAAE8qG,GAAEA,GAAEpxH,GAAEoxH,GAAEr+G,GAAEuT,GAAEvT,GAAEhN,GAAE/F,GAAEoxH,GAAEjsF,GAAEn/B,GAAEorH,GAAErrH,GAAE/F,GAC9DgG,GAAEorH,GAAErrH,GAAE/F,GAAE+F,GAAEqrH,GAAEprH,GAAE+M,GAAE/M,GAAE+M,GAAEuT,GAAE6e,GAAE7e,GAAE6e,GAAEisF,GAAEjsF,GAAEp/B,GAAEo/B,GAAEn/B,GAAEorH,GAAEprH,GAAEhG,GAAE+F,GAAEqrH,GAAE9qG,GAAEtmB,GAAEoxH,GAAEr+G,GAAEhN,GAAEgN,GAAEuT,GAAEtmB,GAC9DoxH,GAAEr+G,GAAE/M,GAAEm/B,GAAE7e,GAAEvT,GAAEuT,GAAE8qG,GAAErrH,GAAE/F,GAAEoxH,EAAEA,GAAEA,GAAEjsF,GAAE7e,GAAEvT,GAAEq+G,EAAEA,GAAErrH,GAAEgN,GAAEuT,GAAE8qG,GAAEA,GAAEpxH,GAAEgG,GAAEm/B,GAAEn/B,GAAEhG,GAAEoxH,GAAEpxH,GAAE+F,GAAEo/B,IAC3Ep/B,GAAE,GAAG,GAAIC,GAAE,GAAG,GAAIsgB,GAAEvgB,GAAEC,GAAGm/B,GAAE,GAAMnlC,GAAE,KAAO+S,GAAEoyB,GAAEnlC,GAC9C,MAAMy8d,GAAM,CAACz2d,GAAE+M,GAAEq+G,GAAEpxH,GAAE+F,GAAEqrH,GAAE9qG,GAAEvT,GAAE/M,GAAEorH,GAAEprH,GAAE+M,GAAEq+G,GAAEjsF,GAAEn/B,GAAEorH,GAAErrH,GAAEo/B,GAAE7e,GAAE8qG,GAAE9qG,GAAEvT,GAAEhN,GAAE/F,GAAEsmB,GAAEtmB,GAAE+F,GAAEgN,GAAEq+G,GAAEpxH,GAAEoxH,GAAEjsF,GAC9D7e,GAAE8qG,GAAEprH,GAAEm/B,GAAEn/B,GAAEhG,GAAEoxH,GAAEr+G,GAAEhN,GAAE/F,GAAE+F,GAAEo/B,GAAE7e,GAAE6e,GAAE7e,GAAEtmB,GAAEoxH,GAAEr+G,GAAEq+G,EAAEA,GAAEA,EAAEA,GAAE9qG,GAAE6e,GAAEn/B,GAAEm/B,GAAEn/B,GAAEhG,GAAE+F,GAAEgN,GAAEhN,GAAEqrH,GAC9DrrH,GAAEgN,GAAEhN,GAAEqrH,GAAE9qG,GAAEtmB,GAAEoxH,GAAEpxH,GAAEoxH,GAAEjsF,GAAE7e,GAAE6e,GAAEisF,GAAEpxH,GAAE+F,GAAEgN,GAAE/M,GAAEhG,GAAEoxH,GAAEjsF,GAAEn/B,GAAEm/B,GAAE7e,GAAE8qG,GAAE9qG,GAAE6e,GAAEn/B,GAAEorH,GAAErrH,GAAEqrH,GAAEprH,GAAE+M,GAC9Dq+G,EAAEA,GAAE9qG,GAAEvT,GAAEhN,GAAEo/B,GAAEn/B,GAAEm/B,GAAE7e,GAAE8qG,GAAEprH,GAAEhG,GAAEgG,GAAE+M,GAAEq+G,EAAEA,GAAE9qG,GAAEvT,GAAEhN,GAAE/F,GAAE+F,GAAE/F,GAAEoxH,GAAEr+G,GAAEq+G,GAAEr+G,GAAEhN,GAAEo/B,GAAEn/B,GAAEorH,GAAE9qG,GAAEtmB,IAI5D,MAAM62L,GACjB,WAAAr2L,CAAYopD,GACR3sD,KAAKkD,KAAO,GAGZ,MAAMu8d,EAAO,GAAIC,EAAM,GAAIC,EAAK,GAEhC,IAAK,IAAIz9c,EAAI,EAAGtM,EAAI,GAAIsM,EAAI,KAAMA,EAAGtM,GAAK,EAAG,CACzCA,GAAKA,GAAK,EAAI,GAAKA,GAAK,EAAI,GAAKA,GAAK,EAAI,GAAW,KAANA,EAAW,GAAK,EAC/D,MAAM0L,EAAQ,EAAJ1L,EACV6pd,EAAKv9c,GAAuC,KAAhCyqC,EAAS/2C,IAAM,GAAM,GAAG0L,GAAa,EAAG,CACxD,CAEA,IAAK,IAAI5d,EAAI,EAAGA,EAAI,KAAMA,EAAG,CACzB,MAAM4d,EAAI5d,GAAK,EACT8R,EAAI8L,EAAI,EACdq+c,EAAGr+c,GAAKq+c,EAAGnqd,GAAK,EAChB,IAAK,IAAI1S,EAAI,GAAIA,EAAI,GAAIA,GAAK,GAC1B,IAAK,IAAIof,EAAIpf,EAAI,GAAIof,EAAIpf,IAAKof,EAAG,CAC7B,MAAMtM,EAAIsM,EAAI88c,GAAOt7d,GACrBg8d,EAAIx9c,GAAKtM,EAAI9S,EAAI28d,EAAK7pd,GAAK6pd,EAAK7pd,EAAI,GACxC,CAEJ,IAAK,IAAIsM,EAAI,EAAGA,EAAI,KAAMA,EACF,IAAhBw9c,EAAIX,GAAI78c,MACRy9c,EAAGr+c,IAAM,GAAM,GAAKY,GAEC,IAArBw9c,EAAIX,GAAI78c,EAAI,OACZy9c,EAAGnqd,IAAM,GAAM,GAAK0M,EAGhC,CAGA,IAAK,IAAIxe,EAAI,EAAGk8d,EAAO,EAAGC,EAAO,EAAGn8d,EAAI,KAAMA,EAAG,CAC7C,MAAMo8d,EAAOH,EAAGC,KACVG,EAAOJ,EAAGC,KAChB5/d,KAAKkD,KAAK28d,IAAgB,SAAPC,IAAsB,EACzC9/d,KAAKkD,KAAK28d,KAAiB,KAAPC,IAAsB,GAC1C9/d,KAAKkD,KAAK28d,KAAiB,SAAPE,KAAuB,GAC3C//d,KAAKkD,KAAK28d,KAAiB,KAAPE,KAAuB,IACzCF,EACF7/d,KAAKkD,KAAK28d,IAAgB,OAAPC,IAAsB,GACzC9/d,KAAKkD,KAAK28d,KAAiB,GAAPC,IAAsB,GAC1C9/d,KAAKkD,KAAK28d,KAAiB,OAAPE,KAAuB,EAC3C//d,KAAKkD,KAAK28d,IAAiB,GAAPE,IAClBF,CACN,CACJ,CAGA,IAAAG,CAAK/yY,GACD,MAAMlkF,EAAIkkF,EAAKhhF,QACf,IAAW2J,EAAGvJ,EAAG4L,EAAbvU,EAAI,EAGRkS,EAAI7M,EAAErF,MAAM,GAAKqF,EAAErF,MAAM,GAAKqF,EAAErF,MAAM,EAAIqF,EAAErF,KAC5C2I,EAAItD,EAAErF,MAAM,GAAKqF,EAAErF,MAAM,GAAKqF,EAAErF,MAAM,EAAIqF,EAAErF,KAE5CuU,EAAsB,WAAhBrC,IAAM,EAAKvJ,GACjBA,GAAK4L,EACLrC,GAAMqC,GAAK,EACXA,EAAuB,OAAjBrC,IAAM,GAAMvJ,GAClBA,GAAK4L,EACLrC,GAAMqC,GAAK,GACXA,EAAsB,WAAhB5L,IAAM,EAAKuJ,GACjBA,GAAKqC,EACL5L,GAAM4L,GAAK,EACXA,EAAsB,UAAhB5L,IAAM,EAAKuJ,GACjBA,GAAKqC,EACL5L,GAAM4L,GAAK,EACX5L,EAAKA,GAAK,EAAOA,IAAM,GAAM,EAC7B4L,EAAc,YAATrC,EAAIvJ,GACTuJ,GAAKqC,EACL5L,GAAK4L,EACLrC,EAAKA,GAAK,EAAOA,IAAM,GAAM,EAE7B,IAAK,IAAIlS,EAAI,EAAGu8d,EAAQ,EAAGv8d,EAAI,IAAKA,EAAG,CACnCuU,EAAK5L,GAAK,GAAOA,IAAM,EACvB4L,GAAKjY,KAAKkD,KAAK+8d,KACf,IAAIC,EAAQX,GAAQ,GAAJtnd,GAChBiod,GAAQb,GAAKpnd,IAAM,EAAK,IACxBiod,GAAQf,GAAKlnd,IAAM,GAAM,IACzBiod,GAAQjB,GAAKhnd,IAAM,GAAM,IACzBA,EAAI5L,EAAIrM,KAAKkD,KAAK+8d,KAClBC,GAAQV,GAAQ,GAAJvnd,GACZiod,GAAQZ,GAAKrnd,IAAM,EAAK,IACxBiod,GAAQd,GAAKnnd,IAAM,GAAM,IACzBiod,GAAQhB,GAAKjnd,IAAM,GAAM,IACzBrC,GAAKsqd,EACLjod,EAAKrC,GAAK,GAAOA,IAAM,EACvBqC,GAAKjY,KAAKkD,KAAK+8d,KACfC,EAAQX,GAAQ,GAAJtnd,GACZiod,GAAQb,GAAKpnd,IAAM,EAAK,IACxBiod,GAAQf,GAAKlnd,IAAM,GAAM,IACzBiod,GAAQjB,GAAKhnd,IAAM,GAAM,IACzBA,EAAIrC,EAAI5V,KAAKkD,KAAK+8d,KAClBC,GAAQV,GAAQ,GAAJvnd,GACZiod,GAAQZ,GAAKrnd,IAAM,EAAK,IACxBiod,GAAQd,GAAKnnd,IAAM,GAAM,IACzBiod,GAAQhB,GAAKjnd,IAAM,GAAM,IACzB5L,GAAK6zd,CACT,CAsBA,IApBA7zd,EAAKA,GAAK,GAAOA,IAAM,EACvB4L,EAAc,YAATrC,EAAIvJ,GACTuJ,GAAKqC,EACL5L,GAAK4L,EACLrC,EAAKA,GAAK,GAAOA,IAAM,EACvBqC,EAAsB,UAAhBrC,IAAM,EAAKvJ,GACjBA,GAAK4L,EACLrC,GAAMqC,GAAK,EACXA,EAAsB,WAAhBrC,IAAM,EAAKvJ,GACjBA,GAAK4L,EACLrC,GAAMqC,GAAK,EACXA,EAAuB,OAAjB5L,IAAM,GAAMuJ,GAClBA,GAAKqC,EACL5L,GAAM4L,GAAK,GACXA,EAAsB,WAAhB5L,IAAM,EAAKuJ,GACjBA,GAAKqC,EACL5L,GAAM4L,GAAK,EAGXA,EAAI,CAAC5L,EAAGuJ,GACHlS,EAAI,EAAGA,EAAI,EAAGA,IACfqF,EAAErF,IAAMuU,EAAEvU,IAAI,KAAQ,GAAK,EAAKA,EAAI,IAAQ,IACxCqF,EAAErF,GAAK,IAAKqF,EAAErF,IAAM,KAE5B,OAAOqF,CACX,CAGA,OAAAsuL,CAAQ/qL,GACJ,OAAOtM,KAAKgge,KAAK1zd,EAAEL,MAAM,EAAG,IAAIhE,OAAOjI,KAAKgge,KAAK1zd,EAAEL,MAAM,EAAG,KAChE,EClQJ,QACE,MAAS,MACT,QAAW,GACX,SAAY,MACZ,UAAa,MACb,UAAa,MACb,WAAc,MACd,QAAW,MACX,gBAAmB,MACnB,gBAAmB,MACnB,cAAiB,MACjB,UAAa,GACb,UAAa,GACb,UAAa,GACb,YAAe,GACf,aAAgB,GAChB,YAAe,MACf,iBAAoB,MACpB,eAAkB,MAClB,YAAe,MACf,eAAkB,MAClB,cAAiB,MACjB,YAAe,MACf,SAAY,GACZ,MAAS,GACT,YAAe,MACf,YAAe,GACf,aAAgB,MAChB,QAAW,IACX,KAAQ,MACR,IAAO,MACP,OAAU,MACV,OAAU,GACV,OAAU,EACV,OAAU,EACV,OAAU,EACV,OAAU,EACV,OAAU,EACV,OAAU,EACV,OAAU,EACV,OAAU,EACV,OAAU,GACV,MAAS,MACT,IAAO,MACP,MAAS,GACT,MAAS,GACT,OAAU,EACV,GAAM,GACN,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,GAAM,GACN,IAAO,GACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,KAAQ,MACR,KAAQ,MACR,SAAY,IACZ,KAAQ,MACR,OAAU,MACV,cAAiB,GACjB,OAAU,IACV,QAAW,IACX,SAAY,IACZ,SAAY,IACZ,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,KAAQ,GACR,MAAS,IACT,MAAS,IACT,MAAS,IACT,WAAc,MACd,WAAc,MACd,WAAc,MACd,eAAkB,MAClB,YAAe,MACf,UAAa,MACb,eAAkB,MAClB,mBAAsB,MACtB,SAAY,MACZ,UAAa,MACb,MAAS,GACT,WAAc,IACd,QAAW,GACX,QAAW,GACX,QAAW,GACX,QAAW,GACX,QAAW,GACX,QAAW,GACX,QAAW,GACX,QAAW,GACX,QAAW,GACX,QAAW,GACX,QAAW,GACX,UAAa,GACb,YAAe,IACf,cAAiB,GACjB,aAAgB,MAChB,YAAe,MACf,YAAe,GACf,eAAkB,GAClB,gBAAmB,MACnB,iBAAoB,MACpB,eAAkB,GAClB,KAAQ,IACR,SAAY,MACZ,OAAU,MACV,MAAS,IACT,MAAS,MACT,OAAU,GACV,MAAS,MACT,YAAe,GACf,MAAS,MACT,MAAS,GACT,WAAc,GACd,UAAa,GACb,UAAa,GACb,WAAc,GACd,MAAS,GACT,MAAS,MACT,MAAS,GACT,QAAW,MACX,IAAO,GACP,KAAQ,MACR,OAAU,OCjKL,MAAMk0d,GAAY,CACrBC,YAAa,EACbC,iBAAkB,EAClBC,YAAa,EACbC,gBAAiB,EACjBC,cAAe,EACfC,kBAAmB,IAEnBC,6BAA8B,GAC9BC,6BAA8B,GAC9BC,2BAA4B,IAC5BC,wBAAyB,IACzBC,sBAAuB,IACvBC,oCAAqC,IACrCC,2BAA4B,IAC5BC,mCAAoC,IACpCC,mBAAoB,IACpBC,qBAAsB,IACtBC,iCAAkC,IAClCC,8BAA+B,IAC/BC,8BAA+B,IAC/BC,2BAA4B,WAC5BC,gCAAiC,Y,QCrBtB,MAAMC,GACjB,WAAAl+d,GACIvD,KAAK0he,OAAS,CAClB,CAEA,UAAAC,CAAW1pd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GACvB,IAAhB3Q,KAAK0he,SACL1he,KAAK0he,OAAS/sb,GAGlB,MAAMktb,EAAqB,GAATlxd,EAAa,EAAI,EAC7Bmxd,EAAepsc,EAAQmsc,EAE7B,GAAID,EAAK9D,OAAO,MAAOgE,GACnB,OAAO,EAGX,MAAMC,EAAO7pd,GAAKy8B,EAAS30C,KAAK0he,QAC1BM,EAAa1/d,KAAK6V,IAAInY,KAAK0he,OACLp/d,KAAKC,MAAMq/d,EAAKzE,MAAQ2E,IACpD,IAAIthd,EAAOohd,EAAK3E,GACZr8d,EAAQghe,EAAK1E,IAGjB,GAAa,GAATvsd,EAAY,CACZ,MAAMsxd,EAASvsc,EAAQssc,EACjBE,EAAU,IAAIjpd,WAAoB,EAATgpd,GAC/B,IAAK,IAAIv+d,EAAI,EAAGA,EAAIu+d,EAAQv+d,IACxBw+d,EAAY,EAAJx+d,EAAQ,GAAsC,KAAP,EAAxB8c,EAAK5f,EAAQ8C,IAAwB,EAC5Dw+d,EAAY,EAAJx+d,EAAQ,GAAsC,KAA/B8c,EAAK5f,EAAQ8C,IAAM,EAAK,GAAa,EAC5Dw+d,EAAY,EAAJx+d,EAAQ,GAAsC,KAA/B8c,EAAK5f,EAAQ8C,IAAM,EAAK,GAAa,EAC5Dw+d,EAAY,EAAJx+d,EAAQ,GAAK,EAEzB8c,EAAO0hd,EACPthe,EAAQ,CACZ,CAKA,OAHAu7B,EAAQ4hb,UAAU9lc,EAAG8pd,EAAMrsc,EAAOssc,EAAYxhd,EAAM5f,GACpDghe,EAAKvE,YAAY2E,EAAaF,GAC9B9he,KAAK0he,QAAUM,IACXhie,KAAK0he,OAAS,EAKtB,EC7CW,MAAMS,GACjB,UAAAR,CAAW1pd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GAC3C,GAAIixd,EAAK9D,OAAO,WAAY,GACxB,OAAO,EAGX,IAAIliB,EAASgmB,EAAKpE,YACd3hB,EAAS+lB,EAAKpE,YAGlB,OAFArhc,EAAQ2gb,UAAUlB,EAAQC,EAAQ5jc,EAAGC,EAAGwd,EAAOif,IAExC,CACX,ECXW,MAAMytb,GACjB,WAAA7+d,GACIvD,KAAKqie,UAAY,CACrB,CAEA,UAAAV,CAAW1pd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GAC3C,GAAuB,IAAnB3Q,KAAKqie,UAAiB,CACtB,GAAIT,EAAK9D,OAAO,MAAO,GACnB,OAAO,EAGX99d,KAAKqie,UAAYT,EAAKnE,YAEtB,IAAIjvb,EAAQozb,EAAKjE,aAAa,GAC9Bxhc,EAAQygb,SAAS3kc,EAAGC,EAAGwd,EAAOif,EAAQnG,EAC1C,CAEA,MAAOxuC,KAAKqie,UAAY,EAAG,CACvB,GAAIT,EAAK9D,OAAO,MAAO,IACnB,OAAO,EAGX,IAAItvb,EAAQozb,EAAKjE,aAAa,GAC1B2E,EAAKV,EAAKpE,YACV+E,EAAKX,EAAKpE,YACVgF,EAASZ,EAAKpE,YACdiF,EAAUb,EAAKpE,YACnBrhc,EAAQygb,SAAS3kc,EAAIqqd,EAAIpqd,EAAIqqd,EAAIC,EAAQC,EAASj0b,GAElDxuC,KAAKqie,WACT,CAEA,OAAO,CACX,EC/BW,MAAMK,GACjB,WAAAn/d,GACIvD,KAAK2ie,OAAS,EACd3ie,KAAK4ie,iBAAmB,CAC5B,CAEA,UAAAjB,CAAW1pd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GACvB,IAAhB3Q,KAAK2ie,SACL3ie,KAAK6ie,QAAUvge,KAAK4uF,KAAKx7D,EAAQ,IACjC11B,KAAK8ie,QAAUxge,KAAK4uF,KAAKv8C,EAAS,IAClC30C,KAAK+ie,YAAc/ie,KAAK6ie,QAAU7ie,KAAK8ie,QACvC9ie,KAAK2ie,OAAS3ie,KAAK+ie,aAGvB,MAAO/ie,KAAK2ie,OAAS,EAAG,CACpB,IAAI59c,EAAQ,EAEZ,GAAI68c,EAAK9D,OAAO,UAAW/4c,GACvB,OAAO,EAGX,IAAIk4c,EAAK2E,EAAK3E,GACVC,EAAM0E,EAAK1E,IAEX8F,EAAc/F,EAAGC,GACrB,GAAI8F,EAAc,GACd,MAAM,IAAIhge,MAAM,6CACJgge,EAAc,KAG9B,MAAMC,EAAWjje,KAAK+ie,YAAc/ie,KAAK2ie,OACnCO,EAAQD,EAAWjje,KAAK6ie,QACxBM,EAAQ7ge,KAAKC,MAAM0ge,EAAWjje,KAAK6ie,SACnCO,EAAKnrd,EAAY,GAARird,EACTG,EAAKnrd,EAAY,GAARird,EACTG,EAAKhhe,KAAK6V,IAAI,GAAKF,EAAIyd,EAAS0tc,GAChCG,EAAKjhe,KAAK6V,IAAI,GAAKD,EAAIy8B,EAAU0ub,GAGvC,GAAkB,EAAdL,EACAj+c,GAASu+c,EAAKC,EAAK,OAQnB,GANkB,EAAdP,IACAj+c,GAAS,GAEK,EAAdi+c,IACAj+c,GAAS,GAEK,EAAdi+c,EAAoB,CAGpB,GAFAj+c,IAEI68c,EAAK9D,OAAO,UAAW/4c,GACvB,OAAO,EAGX,IAAIy+c,EAAWvG,EAAGC,EAAMn4c,EAAQ,GAE5BA,GADc,GAAdi+c,EACoB,EAAXQ,EAEW,EAAXA,CAEjB,CAGJ,GAAI5B,EAAK9D,OAAO,UAAW/4c,GACvB,OAAO,EAKX,GADAm4c,IACoB,IAAhB8F,EAC4B,EAAxBhje,KAAK4ie,iBAEL,GAAU,iCAEVzmc,EAAQygb,SAASwmB,EAAIC,EAAIC,EAAIC,EAAIvje,KAAKyje,kBAEvC,GAAkB,EAAdT,EACP7mc,EAAQ4hb,UAAUqlB,EAAIC,EAAIC,EAAIC,EAAItG,EAAIC,GACtCA,GAAOn4c,EAAQ,MACZ,CAWH,GAVkB,EAAdi+c,IACAhje,KAAKyje,YAAc,CAACxG,EAAGC,GAAMD,EAAGC,EAAM,GAAID,EAAGC,EAAM,GAAID,EAAGC,EAAM,IAChEA,GAAO,GAEO,EAAd8F,IACAhje,KAAK0je,YAAc,CAACzG,EAAGC,GAAMD,EAAGC,EAAM,GAAID,EAAGC,EAAM,GAAID,EAAGC,EAAM,IAChEA,GAAO,GAGX/gc,EAAQuhb,UAAU0lB,EAAIC,EAAIC,EAAIC,EAAIvje,KAAKyje,aACrB,EAAdT,EAAoB,CACpB,IAAIQ,EAAWvG,EAAGC,GAClBA,IAEA,IAAK,IAAI7wb,EAAI,EAAGA,EAAIm3b,EAAUn3b,IAAK,CAC/B,IAAImC,EACc,GAAdw0b,GACAx0b,EAAQ,CAACyub,EAAGC,GAAMD,EAAGC,EAAM,GAAID,EAAGC,EAAM,GAAID,EAAGC,EAAM,IACrDA,GAAO,GAEP1ub,EAAQxuC,KAAK0je,YAEjB,MAAM/5P,EAAKszP,EAAGC,GACdA,IACA,MAAMoF,EAAM34P,GAAM,EACZ44P,EAAW,GAAL54P,EAEN/0G,EAAKqoW,EAAGC,GACdA,IACA,MAAMyG,EAAiB,GAAX/uW,GAAM,GACZmhC,EAAmB,GAAR,GAALnhC,GAEZz4F,EAAQwhb,QAAQ2kB,EAAIC,EAAIoB,EAAI5tU,EAAIvnH,EACpC,CACJ,CACArS,EAAQ2hb,YACZ,CACA8jB,EAAK1E,IAAMA,EACXl9d,KAAK4ie,iBAAmBI,EACxBhje,KAAK2ie,QACT,CAEA,OAAO,CACX,EC1HW,MAAMiB,GACjB,WAAArge,GACIvD,KAAK6je,KAAO,KACZ7je,KAAKmjG,QAAU,KACfnjG,KAAK8je,WAAa,EAClB9je,KAAK+je,SAAW,IAAI9qd,WAAW,MAC/BjZ,KAAK4H,KAAO,EAEZ5H,KAAKgke,OAAS,GACd,IAAK,IAAItge,EAAI,EAAGA,EAAI,EAAGA,IACnB1D,KAAKgke,OAAOtge,GAAK,IAAI,EAE7B,CAEA,UAAAi+d,CAAW1pd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GAC3C,GAAkB,OAAd3Q,KAAK6je,KAAe,CACpB,GAAIjC,EAAK9D,OAAO,4BAA6B,GACzC,OAAO,EAGX99d,KAAK6je,KAAOjC,EAAKtE,WAGjB,IAAK,IAAI55d,EAAI,EAAGA,EAAI,EAAGA,IACd1D,KAAK6je,MAAQnge,EAAK,IACnB1D,KAAKgke,OAAOtge,GAAGu/B,QACf,GAAS,qBAAuBv/B,IAKxC1D,KAAK6je,KAAO7je,KAAK6je,MAAQ,CAC7B,CAEA,IAAIj/c,EAEJ,GAAkB,IAAd5kB,KAAK6je,KACLj/c,EAAM5kB,KAAKike,UAAUhsd,EAAGC,EAAGwd,EAAOif,EACbitb,EAAMzlc,EAASxrB,QACjC,GAAkB,IAAd3Q,KAAK6je,KACZj/c,EAAM5kB,KAAKkke,UAAUjsd,EAAGC,EAAGwd,EAAOif,EACbitb,EAAMzlc,EAASxrB,QACjC,GAAkB,KAAd3Q,KAAK6je,KACZj/c,EAAM5kB,KAAKmke,SAASlsd,EAAGC,EAAGwd,EAAOif,EACbitb,EAAMzlc,EAASxrB,OAChC,IAA0B,IAAT,IAAZ3Q,KAAK6je,MAIb,MAAM,IAAI7ge,MAAM,4CACOhD,KAAK6je,KAAO,KAJnCj/c,EAAM5kB,KAAKoke,WAAWpke,KAAK6je,KAAM5rd,EAAGC,EAAGwd,EAAOif,EACxBitb,EAAMzlc,EAASxrB,EAIzC,CAMA,OAJIiU,IACA5kB,KAAK6je,KAAO,MAGTj/c,CACX,CAEA,SAAAq/c,CAAUhsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GAC1C,GAAIixd,EAAK9D,OAAO,QAAS,GACrB,OAAO,EAGX,MAAMZ,EAAM0E,EAAK1E,IACXD,EAAK2E,EAAK3E,GAMhB,OAJA9gc,EAAQygb,SAAS3kc,EAAGC,EAAGwd,EAAOif,EACb,CAACsob,EAAGC,EAAM,GAAID,EAAGC,EAAM,GAAID,EAAGC,KAAO,GACtD0E,EAAKvE,YAAY,IAEV,CACX,CAEA,SAAA6G,CAAUjsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GAC1C,IAAI6P,EAAOxgB,KAAKqke,UAAUzC,GAC1B,OAAa,OAATphd,IAIJ2b,EAAQohb,UAAUtlc,EAAGC,EAAGwd,EAAOif,EAAQ,aAAcn0B,IAE9C,EACX,CAEA,QAAA2jd,CAASlsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GACzC,MAAM,IAAI3N,MAAM,sCACpB,CAEA,UAAAohe,CAAWE,EAAKrsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GAChD,GAAqB,OAAjB3Q,KAAKmjG,QACL,GAAU,EAANmhY,EAAW,CACX,GAAI1C,EAAK9D,OAAO,QAAS,GACrB,OAAO,EAGX99d,KAAKmjG,QAAUy+X,EAAKtE,UACxB,MAEIt9d,KAAKmjG,QAAU,EAIvB,IAEIv+E,EAFA2/c,EAAiB,EAAND,EAIf,OAAQtke,KAAKmjG,SACT,KAAK,EACDv+E,EAAM5kB,KAAKwke,YAAYD,EAAUtsd,EAAGC,EAAGwd,EAAOif,EACvBitb,EAAMzlc,EAASxrB,GACtC,MACJ,KAAK,EACDiU,EAAM5kB,KAAKyke,eAAeF,EAAUtsd,EAAGC,EAAGwd,EAAOif,EACvBitb,EAAMzlc,EAASxrB,GACzC,MACJ,KAAK,EACDiU,EAAM5kB,KAAK0ke,gBAAgBH,EAAUtsd,EAAGC,EAAGwd,EAAOif,EACvBitb,EAAMzlc,EAASxrB,GAC1C,MACJ,QACI,MAAM,IAAI3N,MAAM,uCACOhD,KAAKmjG,QAAU,KAO9C,OAJIv+E,IACA5kB,KAAKmjG,QAAU,MAGZv+E,CACX,CAEA,WAAA4/c,CAAYD,EAAUtsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GACtD,MAAMg0d,EAAmBjvc,EAAQif,EAAS,EAC1C,IAAIn0B,EAEJ,GAAImkd,EAAmB,GAAI,CACvB,GAAI/C,EAAK9D,OAAO,QAAS6G,GACrB,OAAO,EAGXnkd,EAAOohd,EAAKjE,aAAagH,EAC7B,KAAO,CAEH,GADAnkd,EAAOxgB,KAAKqke,UAAUzC,GACT,OAATphd,EACA,OAAO,EAGXxgB,KAAKgke,OAAOO,GAAUpd,SAAS3mc,GAC/BA,EAAOxgB,KAAKgke,OAAOO,GAAUje,QAAQqe,GACrC3ke,KAAKgke,OAAOO,GAAUpd,SAAS,KACnC,CAIA,OAFAhrb,EAAQ8hb,aAAahmc,EAAGC,EAAGwd,EAAOif,EAAQn0B,EAAM,GAAG,IAE5C,CACX,CAEA,cAAAikd,CAAeF,EAAUtsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GACzD,GAAwB,IAApB3Q,KAAK8je,WAAkB,CACvB,GAAIlC,EAAK9D,OAAO,gBAAiB,GAC7B,OAAO,EAGX,MAAM8G,EAAYhD,EAAKxE,UAAY,EAC7ByH,EAA0B,EAAZD,EAEpB,GAAIhD,EAAK9D,OAAO,gBAAiB,EAAI+G,GACjC,OAAO,EAGX7ke,KAAK8je,WAAac,EAClBhD,EAAKvE,YAAY,GAEjBuE,EAAKhE,UAAU59d,KAAK+je,SAAUc,EAClC,CAEA,MAAMC,EAAO9ke,KAAK8je,YAAc,EAAK,EAAI,EACnCiB,EAAUzie,KAAKC,OAAOmzB,EAAQovc,EAAM,GAAK,GACzCH,EAAmBI,EAAUpwb,EAEnC,IAAIn0B,EAEJ,GAAImkd,EAAmB,GAAI,CACvB,GAAI/C,EAAK9D,OAAO,QAAS6G,GACrB,OAAO,EAGXnkd,EAAOohd,EAAKjE,aAAagH,EAC7B,KAAO,CAEH,GADAnkd,EAAOxgB,KAAKqke,UAAUzC,GACT,OAATphd,EACA,OAAO,EAGXxgB,KAAKgke,OAAOO,GAAUpd,SAAS3mc,GAC/BA,EAAOxgB,KAAKgke,OAAOO,GAAUje,QAAQqe,GACrC3ke,KAAKgke,OAAOO,GAAUpd,SAAS,KACnC,CAWA,OARuB,GAAnBnnd,KAAK8je,WACL9je,KAAKgle,UAAU/sd,EAAGC,EAAGwd,EAAOif,EAAQn0B,EAAMxgB,KAAK+je,SAAU5nc,GAEzDn8B,KAAKile,aAAahtd,EAAGC,EAAGwd,EAAOif,EAAQn0B,EAAMxgB,KAAK+je,SAAU5nc,GAGhEn8B,KAAK8je,WAAa,GAEX,CACX,CAEA,SAAAkB,CAAU/sd,EAAGC,EAAGwd,EAAOif,EAAQn0B,EAAM4vK,EAASj0J,GAG1C,MAAMgnP,EAAOnjR,KAAKkle,kBAAkBxvc,EAAQif,EAAS,GAC/Co/E,EAAIzxH,KAAKC,OAAOmzB,EAAQ,GAAK,GAC7BulG,EAAK34H,KAAKC,MAAMmzB,EAAQ,GAE9B,IAAK,IAAIxd,EAAI,EAAGA,EAAIy8B,EAAQz8B,IAAK,CAC7B,IAAI2xN,EAAIs7P,EAAIltd,EACZ,IAAKA,EAAI,EAAGA,EAAIgjH,EAAIhjH,IAChB,IAAK,IAAIlP,EAAI,EAAGA,GAAK,EAAGA,IACpB8gO,EAAmC,GAA7B3xN,EAAIwd,EAAY,EAAJzd,EAAQ,EAAIlP,GAC9Bo8d,EAAkC,GAA5B3kd,EAAKtI,EAAI67G,EAAI97G,IAAMlP,EAAI,GAC7Bo6Q,EAAKt5C,GAAMz5C,EAAQ+0S,GACnBhiN,EAAKt5C,EAAK,GAAKz5C,EAAQ+0S,EAAK,GAC5BhiN,EAAKt5C,EAAK,GAAKz5C,EAAQ+0S,EAAK,GAC5BhiN,EAAKt5C,EAAK,GAAK,IAIvB,IAAK,IAAI9gO,EAAI,EAAGA,GAAK,EAAI2sB,EAAQ,EAAG3sB,IAChC8gO,EAAmC,GAA7B3xN,EAAIwd,EAAY,EAAJzd,EAAQ,EAAIlP,GAC9Bo8d,EAAkC,GAA5B3kd,EAAKtI,EAAI67G,EAAI97G,IAAMlP,EAAI,GAC7Bo6Q,EAAKt5C,GAAMz5C,EAAQ+0S,GACnBhiN,EAAKt5C,EAAK,GAAKz5C,EAAQ+0S,EAAK,GAC5BhiN,EAAKt5C,EAAK,GAAKz5C,EAAQ+0S,EAAK,GAC5BhiN,EAAKt5C,EAAK,GAAK,GAEvB,CAEA1tM,EAAQgib,cAAclmc,EAAGC,EAAGwd,EAAOif,EAAQwuO,EAAM,GAAG,EACxD,CAEA,YAAA8hN,CAAahtd,EAAGC,EAAGwd,EAAOif,EAAQn0B,EAAM4vK,EAASj0J,GAE7C,MAAMgnP,EAAOnjR,KAAKkle,kBAAkBxvc,EAAQif,EAAS,GAC/CnY,EAAQ9G,EAAQif,EAAS,EAC/B,IAAK,IAAIjxC,EAAI,EAAGwe,EAAI,EAAGxe,EAAI84B,EAAO94B,GAAK,EAAGwe,IAAK,CAC3C,MAAMijd,EAAe,EAAV3kd,EAAK0B,GAChBihQ,EAAKz/Q,GAAK0sL,EAAQ+0S,GAClBhiN,EAAKz/Q,EAAI,GAAK0sL,EAAQ+0S,EAAK,GAC3BhiN,EAAKz/Q,EAAI,GAAK0sL,EAAQ+0S,EAAK,GAC3BhiN,EAAKz/Q,EAAI,GAAK,GAClB,CAEAy4B,EAAQgib,cAAclmc,EAAGC,EAAGwd,EAAOif,EAAQwuO,EAAM,GAAG,EACxD,CAEA,eAAAuhN,CAAgBH,EAAUtsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GAC1D,MAAM,IAAI3N,MAAM,kCACpB,CAEA,SAAAqhe,CAAUzC,GACN,GAAkB,IAAd5he,KAAK4H,KAAY,CACjB,GAAIg6d,EAAK9D,OAAO,QAAS,GACrB,OAAO,KAGX,IAAI/4L,EAEJA,EAAO68L,EAAKtE,WACZt9d,KAAK4H,KAAc,IAAPm9R,EACD,IAAPA,IACAA,EAAO68L,EAAKtE,WACZt9d,KAAK4H,OAAgB,IAAPm9R,IAAgB,EACnB,IAAPA,IACAA,EAAO68L,EAAKtE,WACZt9d,KAAK4H,MAAQm9R,GAAQ,IAGjC,CAEA,GAAI68L,EAAK9D,OAAO,QAAS99d,KAAK4H,MAC1B,OAAO,KAGX,IAAI4Y,EAAOohd,EAAKjE,aAAa39d,KAAK4H,MAGlC,OAFA5H,KAAK4H,KAAO,EAEL4Y,CACX,CAEA,iBAAA0kd,CAAkB5qd,GAId,QAHKta,KAAKole,gBAAmBple,KAAKole,eAAetke,OAASwZ,KACtDta,KAAKole,eAAiB,IAAInsd,WAAWqB,IAElCta,KAAKole,cAChB,EC9SW,MAAMC,WAAwBzB,GACzC,QAAAO,CAASlsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GACzC,IAAI6P,EAAOxgB,KAAKqke,UAAUzC,GAC1B,OAAa,OAATphd,IAIJ2b,EAAQohb,UAAUtlc,EAAGC,EAAGwd,EAAOif,EAAQ,YAAan0B,IAE7C,EACX,CAEA,UAAA4jd,CAAWE,EAAKrsd,EAAGC,EAAGwd,EAAOif,EAAQitb,EAAMzlc,EAASxrB,GAChD,MAAM,IAAI3N,MAAM,6CACpB,ECYJ,MAAMsie,GAAqB,EACrBC,GAAqB,kBAGrBC,GAAmB,GAGnBC,GAAa,GACbC,GAAoB,GAGpBC,GAAmB,GACnBC,GAAmB,GACnBC,GAAqB,IACrBC,GAAuB,GAGvBC,GAAgC,EAShCC,GAAiC,GAAK,GACtCC,GAAiC,GAAK,GACtCC,GAAiC,GAAK,GACtCC,GAAiC,GAAK,GACtCC,GAAiC,GAAK,GAG7B,MAAMC,WAAY3sB,GAC7B,WAAAn2c,CAAY/C,EAAQijC,EAAK3wB,GACrB,IAAKtS,EACD,MAAM,IAAIwC,MAAM,uBAEpB,IAAKygC,EACD,MAAM,IAAIzgC,MAAM,oBAGpBmkC,QAEAnnC,KAAK2tZ,QAAUntZ,EACfR,KAAKsme,KAAO7ic,EAGZ3wB,EAAUA,GAAW,CAAC,EACtB9S,KAAKume,gBAAkBzzd,EAAQwuR,aAAe,CAAC,EAC/CthS,KAAKwme,UAAU,WAAY1zd,MAAYA,EAAQ2zd,OAC/Czme,KAAK0me,YAAc5zd,EAAQ6zd,YAAc,GACzC3me,KAAK4me,aAAe9zd,EAAQ+zd,aAAe,GAG3C7me,KAAK8me,oBAAsB,GAC3B9me,KAAK+me,cAAgB,GACrB/me,KAAKgne,gBAAkB,EACvBhne,KAAKine,qBAAsB,EAG3Bjne,KAAKkne,YAAc,EACnBlne,KAAKmne,eAAiB,IACtBnne,KAAKone,cAAe,EACpBpne,KAAKqne,kBAAoB,EACzBrne,KAAKsne,WAAa,EAElBtne,KAAKu6c,SAAW,EAChBv6c,KAAKw6c,UAAY,EAEjBx6c,KAAKune,QAAU,GAEfvne,KAAKwne,cAAgB,CAAEC,OAAO,GAE9Bzne,KAAK0ne,gBAAiB,EAEtB1ne,KAAK2ne,4BAA6B,EAClC3ne,KAAK4ne,2BAA4B,EAEjC5ne,KAAK6ne,yBAA0B,EAC/B7ne,KAAK8ne,UAAY,EACjB9ne,KAAK+ne,aAAe,EAEpB/ne,KAAKgoe,2BAA4B,EAEjChoe,KAAKioe,eAAiB,KACtBjoe,KAAKkoe,oCAAsC,CAAC,EAC5Cloe,KAAKmoe,oCAAsC,CAAC,EAG5Cnoe,KAAKooe,MAAQ,KACbpoe,KAAKqoe,SAAW,KAChBroe,KAAKs6c,WAAY,EACjBt6c,KAAKsoe,UAAY,KACjBtoe,KAAKuoe,UAAY,KAGjBvoe,KAAKwoe,cAAgB,KACrBxoe,KAAKyoe,eAAiB,KACtBzoe,KAAK0oe,gBAAkB,KAGvB1oe,KAAK2oe,UAAY,CAAC,EAElB3oe,KAAK4oe,KAAO,CACRt5Z,MAAO,EACPr3D,EAAG,EACHC,EAAG,EACHwd,MAAO,EACPif,OAAQ,EACR30B,SAAU,MAIdhgB,KAAK6oe,UAAY,CAAC,EAClB7oe,KAAK8oe,iBAAmB,EACxB9oe,KAAK+oe,mBAAqB,EAC1B/oe,KAAKgpe,mBAAoB,EACzBhpe,KAAKipe,iBAAmB,CAAC,EACzBjpe,KAAKkpe,mBAAoB,EACzBlpe,KAAKmpe,wBAA0B,EAC/Bnpe,KAAKope,wBAA0B,EAG/Bppe,KAAKqpe,oBAAsB,KAC3Brpe,KAAKspe,yBAA2B,KAChCtpe,KAAKupe,uBAAyB,EAC9Bvpe,KAAKwpe,uBAAyB,EAG9Bxpe,KAAK60d,eAAiB,CAClB4U,YAAazpe,KAAK0pe,aAAarie,KAAKrH,MACpC2pe,aAAc3pe,KAAK4pe,cAAcvie,KAAKrH,MACtC6pe,YAAa7pe,KAAK8pe,aAAazie,KAAKrH,MACpC+pe,YAAa/pe,KAAKgqe,aAAa3ie,KAAKrH,MACpCiqe,cAAejqe,KAAKkqe,eAAe7ie,KAAKrH,OAI5C,GAAU,sBAGVA,KAAKmqe,QAAUroe,SAASy9D,cAAc,OACtCv/D,KAAKmqe,QAAQ10c,MAAM0G,QAAU,OAC7Bn8B,KAAKmqe,QAAQ10c,MAAMC,MAAQ,OAC3B11B,KAAKmqe,QAAQ10c,MAAMkf,OAAS,OAC5B30C,KAAKmqe,QAAQ10c,MAAMm0C,SAAW,OAC9B5pE,KAAKmqe,QAAQ10c,MAAM64J,WAAai3S,GAChCvle,KAAK66d,QAAU/4d,SAASy9D,cAAc,UACtCv/D,KAAK66d,QAAQplc,MAAMm9C,OAAS,OAE5B5yE,KAAK66d,QAAQplc,MAAM20c,QAAU,OAE7Bpqe,KAAK66d,QAAQplc,MAAM40c,WAAa,IAChCrqe,KAAK66d,QAAQnlc,MAAQ,EACrB11B,KAAK66d,QAAQlmb,OAAS,EACtB30C,KAAK66d,QAAQrob,UAAY,EACzBxyC,KAAKmqe,QAAQzqa,YAAY1/D,KAAK66d,SAG9B76d,KAAKsqe,QAAU,IAAI1P,GAWnB56d,KAAKuqe,aAAelE,GAAImE,QAAQ/oX,KAGhCzhH,KAAK2oe,UAAUxI,GAAUC,aAAe,IAAIqB,GAC5Czhe,KAAK2oe,UAAUxI,GAAUE,kBAAoB,IAAI8B,GACjDnie,KAAK2oe,UAAUxI,GAAUG,aAAe,IAAI8B,GAC5Cpie,KAAK2oe,UAAUxI,GAAUI,iBAAmB,IAAImC,GAChD1ie,KAAK2oe,UAAUxI,GAAUK,eAAiB,IAAIoD,GAC9C5je,KAAK2oe,UAAUxI,GAAUM,kBAAoB,IAAI4E,GAIjD,IACIrle,KAAKqoe,SAAW,IAAIluB,GAAQn6c,KAAK66d,QACrC,CAAE,MAAO9jB,IAEL,MADA,GAAU,sBAAwBA,IAC5BA,EACV,CACA/2c,KAAKqoe,SAAS/sB,QAAUt7c,KAAKyqe,SAASpje,KAAKrH,MAE3CA,KAAKsoe,UAAY,IAAI7T,GAASz0d,KAAK66d,SACnC76d,KAAKsoe,UAAUnT,WAAan1d,KAAK0qe,gBAAgBrje,KAAKrH,MAEtDA,KAAKuoe,UAAY,IAAIlR,GAErBr3d,KAAKooe,MAAQ,IAAI7L,GACjBv8d,KAAKooe,MAAM7iY,GAAG,WAAW,KACrBvlG,KAAK2qe,gBAAgB,IAEzB3qe,KAAKooe,MAAM7iY,GAAG,QAAQ,KACgB,eAA7BvlG,KAAK8me,qBACkB,KAAvB9me,KAAK+me,eACN/me,KAAK+me,cAAgB,kBACrB,GAAU,2BAEV/me,KAAK4qe,MAAM,sCACA5qe,KAAK8me,oBACpB,IAEJ9me,KAAKooe,MAAM7iY,GAAG,SAAUxiG,IACpB,GAAU,4BACV,IAAImG,EAAM,GAQV,OAPInG,EAAEE,OACFiG,EAAM,UAAYnG,EAAEE,KAChBF,EAAE8R,SACF3L,GAAO,aAAenG,EAAE8R,QAE5B3L,GAAO,KAEHlJ,KAAK8me,qBACT,IAAK,aACD9me,KAAK4qe,MAAM,qBAAuB1he,GAClC,MACJ,IAAK,YAEDlJ,KAAK6qe,uBAAuB,iBAC5B7qe,KAAK6qe,uBAAuB,gBAC5B,MACJ,IAAK,gBAED7qe,KAAK6qe,uBAAuB,gBAC5B,MACJ,IAAK,eACD7qe,KAAK4qe,MAAM,0DAC+B1he,GAC1C,MACJ,QACIlJ,KAAK4qe,MAAM,kDACA1he,GACX,MAERlJ,KAAKooe,MAAMllT,IAAI,QAAQ,IAE3BljL,KAAKooe,MAAM7iY,GAAG,SAASxiG,GAAK,GAAS,8BAIrCg1C,WAAW/3C,KAAK6qe,uBAAuBxje,KAAKrH,KAAM,eAElD,GAAU,sBAIVA,KAAK8qe,cAAe,EACpB9qe,KAAK+qe,cAAe,EAEpB/qe,KAAKgre,WAAY,EACjBhre,KAAKq7c,eAAgB,EACrBr7c,KAAKire,gBAAiB,EACtBjre,KAAKkre,gBAAiB,EAEtBlre,KAAKmre,gBAAiB,OACQvpe,IAA1BkR,EAAQs4d,gBACR,GAAS,wEACTpre,KAAKmre,eAAiBr4d,EAAQs4d,eAGlCpre,KAAKqre,cAAgB,EACrBrre,KAAKsre,kBAAoB,CAC7B,CAIA,YAAIC,GAAa,OAAOvre,KAAKgre,SAAW,CACxC,YAAIO,CAASA,GACTvre,KAAKgre,UAAYO,EAEgB,eAA7Bvre,KAAK8me,qBACwB,cAA7B9me,KAAK8me,sBACDyE,EACAvre,KAAKsoe,UAAUjS,SAEfr2d,KAAKsoe,UAAUvS,OAG3B,CAEA,gBAAIyV,GAAiB,OAAOxre,KAAKwne,aAAe,CAEhD,eAAIiE,GAAgB,OAAO,CAAG,CAC9B,eAAIA,CAAYrxY,GAAU,GAAS,iBAAmB,CAEtD,gBAAIohX,GAAiB,OAAOx7c,KAAKq7c,aAAe,CAChD,gBAAIG,CAAarvY,GACbnsE,KAAKq7c,cAAgBlvY,EACrBnsE,KAAK0re,aACT,CAEA,iBAAIC,GAAkB,OAAO3re,KAAKire,cAAgB,CAClD,iBAAIU,CAAcj6J,GACd1xU,KAAKire,eAAiBv5J,EAGlBA,GAAS1xU,KAAKq7c,eACdr7c,KAAK0re,cAET1re,KAAK4re,gBACAl6J,GAAS1xU,KAAKq7c,eACfr7c,KAAK0re,aAEb,CAEA,iBAAIG,GAAkB,OAAO7re,KAAKkre,cAAgB,CAClD,iBAAIW,CAAc37Z,GACdlwE,KAAKkre,eAAiBh7Z,EAClBA,GACAlwE,KAAK8re,sBAEb,CAEA,iBAAIV,GAAkB,OAAOpre,KAAKmre,cAAgB,CAClD,iBAAIC,CAActqa,GACd9gE,KAAKmre,eAAiBrqa,EACtB9gE,KAAK+re,gBACT,CAEA,cAAIz9S,GAAe,OAAOtuL,KAAKmqe,QAAQ10c,MAAM64J,UAAY,CACzD,cAAIA,CAAW09S,GAAYhse,KAAKmqe,QAAQ10c,MAAM64J,WAAa09S,CAAU,CAErE,gBAAIC,GACA,OAAOjse,KAAKqre,aAChB,CACA,gBAAIY,CAAaA,IACR9pe,OAAOC,UAAU6pe,IAAiBA,EAAe,GAAKA,EAAe,EACtE,GAAU,mDAIVjse,KAAKqre,gBAAkBY,IAI3Bjse,KAAKqre,cAAgBY,EAEY,cAA7Bjse,KAAK8me,qBACL9me,KAAKkse,iBAEb,CAEA,oBAAIC,GACA,OAAOnse,KAAKsre,iBAChB,CACA,oBAAIa,CAAiBA,IACZhqe,OAAOC,UAAU+pe,IAAqBA,EAAmB,GAAKA,EAAmB,EAClF,GAAU,uDAIVnse,KAAKsre,oBAAsBa,IAI/Bnse,KAAKsre,kBAAoBa,EAEQ,cAA7Bnse,KAAK8me,qBACL9me,KAAKkse,iBAEb,CAIA,UAAA9tb,GACIp+C,KAAK6qe,uBAAuB,iBAC5B7qe,KAAKooe,MAAMllT,IAAI,SACfljL,KAAKooe,MAAMllT,IAAI,WACfljL,KAAKooe,MAAMllT,IAAI,OACnB,CAEA,eAAAkpT,CAAgBC,GACZrse,KAAKume,gBAAkB8F,EACvBt0b,WAAW/3C,KAAKsse,SAASjle,KAAKrH,MAAO,EACzC,CAEA,cAAAuse,GACqC,cAA7Bvse,KAAK8me,qBAAuC9me,KAAKgre,YACrD,GAAS,wBAEThre,KAAKwse,QAAQ,GAAStvC,aAAc,eAAe,GACnDl9b,KAAKwse,QAAQ,GAAShvC,SAAU,WAAW,GAC3Cx9b,KAAKwse,QAAQ,GAAS54C,UAAW,UAAU,GAC3C5zb,KAAKwse,QAAQ,GAAS54C,UAAW,UAAU,GAC3C5zb,KAAKwse,QAAQ,GAAShvC,SAAU,WAAW,GAC3Cx9b,KAAKwse,QAAQ,GAAStvC,aAAc,eAAe,GACvD,CAEA,eAAAuvC,GACIzse,KAAK0se,OAAO,EAAG,EACnB,CAEA,aAAAC,GACI3se,KAAK0se,OAAO,EAAG,EACnB,CAEA,YAAAE,GACI5se,KAAK0se,OAAO,EAAG,EACnB,CAIA,OAAAF,CAAQ32B,EAAQ5yc,EAAMoyd,GAClB,GAAiC,cAA7Br1d,KAAK8me,qBAAuC9me,KAAKgre,UAAa,OAElE,QAAappe,IAATyzd,EAGA,OAFAr1d,KAAKwse,QAAQ32B,EAAQ5yc,GAAM,QAC3BjD,KAAKwse,QAAQ32B,EAAQ5yc,GAAM,GAI/B,MAAM4pe,EAAW,GAAW5pe,GAE5B,GAAIjD,KAAKgoe,2BAA6B6E,EAElCh3B,EAASA,GAAU,EAEnB,GAAS,iBAAmBwf,EAAO,OAAS,MAAQ,aAAexf,EAAS,cAAgBg3B,GAE5FxG,GAAIjtL,SAAS0zL,qBAAqB9se,KAAKooe,MAAOvyB,EAAQwf,EAAMwX,OACzD,CACH,IAAKh3B,EACD,OAEJ,GAAS,oBAAsBwf,EAAO,OAAS,MAAQ,MAAQxf,GAC/DwwB,GAAIjtL,SAAS2zL,SAAS/se,KAAKooe,MAAOvyB,EAAQwf,EAAO,EAAI,EACzD,CACJ,CAEA,KAAAp6a,GACIj7C,KAAK66d,QAAQ5/a,OACjB,CAEA,IAAAk7a,GACIn2d,KAAK66d,QAAQ1E,MACjB,CAEA,kBAAA6W,CAAmB//Y,GACf,GAAiC,cAA7BjtF,KAAK8me,sBAAuC9me,KAAKgre,UAErD,GAAIhre,KAAKmoe,oCAAoCpC,KACzC/le,KAAKkoe,oCAAoC/B,IAEzCnme,KAAKioe,eAAiBh7Y,EACtBo5Y,GAAIjtL,SAAS6zL,wBAAwBjte,KAAKooe,MAAO,CAACrC,SAC/C,CACH,IAAIvld,EAAO,IAAIvH,WAAWg0E,EAAKnsF,QAC/B,IAAK,IAAI4C,EAAI,EAAGA,EAAIupF,EAAKnsF,OAAQ4C,IAE7B8c,EAAK9c,GAAKupF,EAAKp1E,WAAWnU,GAG9B2ie,GAAIjtL,SAAS8zL,cAAclte,KAAKooe,MAAO5nd,EAC3C,CACJ,CAIA,QAAAkhR,GACI,GAAU,kBAEV,GAAS,iBAAmB1hS,KAAKsme,MAEjC,IAEItme,KAAKooe,MAAMvva,KAAK74D,KAAKsme,KAAMtme,KAAK4me,aACpC,CAAE,MAAO7je,IACU,gBAAXA,GAAEiG,KACFhJ,KAAK4qe,MAAM,yBAA2B7ne,GAAI,KAE1C/C,KAAK4qe,MAAM,8BAAgC7ne,GAAI,IAEvD,CAGA/C,KAAK2tZ,QAAQjuV,YAAY1/D,KAAKmqe,SAE9Bnqe,KAAKuoe,UAAUzQ,OAAO93d,KAAK66d,SAE3B76d,KAAKsqe,QAAQxS,OAAO93d,KAAK66d,SACzB76d,KAAK+re,iBAIL9pe,OAAOs7C,iBAAiB,SAAUv9C,KAAK60d,eAAe8U,cAGtD3pe,KAAK66d,QAAQt9a,iBAAiB,YAAav9C,KAAK60d,eAAe4U,aAC/Dzpe,KAAK66d,QAAQt9a,iBAAiB,aAAcv9C,KAAK60d,eAAe4U,aAGhEzpe,KAAK66d,QAAQt9a,iBAAiB,YAAav9C,KAAK60d,eAAegV,aAC/D7pe,KAAK66d,QAAQt9a,iBAAiB,UAAWv9C,KAAK60d,eAAegV,aAC7D7pe,KAAK66d,QAAQt9a,iBAAiB,YAAav9C,KAAK60d,eAAegV,aAE/D7pe,KAAK66d,QAAQt9a,iBAAiB,QAASv9C,KAAK60d,eAAegV,aAG3D7pe,KAAK66d,QAAQt9a,iBAAiB,cAAev9C,KAAK60d,eAAegV,aAGjE7pe,KAAK66d,QAAQt9a,iBAAiB,QAASv9C,KAAK60d,eAAekV,aAG3D/pe,KAAK66d,QAAQt9a,iBAAiB,eAAgBv9C,KAAK60d,eAAeoV,eAClEjqe,KAAK66d,QAAQt9a,iBAAiB,cAAev9C,KAAK60d,eAAeoV,eACjEjqe,KAAK66d,QAAQt9a,iBAAiB,aAAcv9C,KAAK60d,eAAeoV,eAEhE,GAAU,iBACd,CAEA,WAAAkD,GACI,GAAU,qBACVnte,KAAKsqe,QAAQvS,SACb/3d,KAAK66d,QAAQl9a,oBAAoB,eAAgB39C,KAAK60d,eAAeoV,eACrEjqe,KAAK66d,QAAQl9a,oBAAoB,cAAe39C,KAAK60d,eAAeoV,eACpEjqe,KAAK66d,QAAQl9a,oBAAoB,aAAc39C,KAAK60d,eAAeoV,eACnEjqe,KAAK66d,QAAQl9a,oBAAoB,QAAS39C,KAAK60d,eAAekV,aAC9D/pe,KAAK66d,QAAQl9a,oBAAoB,YAAa39C,KAAK60d,eAAegV,aAClE7pe,KAAK66d,QAAQl9a,oBAAoB,UAAW39C,KAAK60d,eAAegV,aAChE7pe,KAAK66d,QAAQl9a,oBAAoB,YAAa39C,KAAK60d,eAAegV,aAClE7pe,KAAK66d,QAAQl9a,oBAAoB,QAAS39C,KAAK60d,eAAegV,aAC9D7pe,KAAK66d,QAAQl9a,oBAAoB,cAAe39C,KAAK60d,eAAegV,aACpE7pe,KAAK66d,QAAQl9a,oBAAoB,YAAa39C,KAAK60d,eAAe4U,aAClEzpe,KAAK66d,QAAQl9a,oBAAoB,aAAc39C,KAAK60d,eAAe4U,aACnExne,OAAO07C,oBAAoB,SAAU39C,KAAK60d,eAAe8U,cACzD3pe,KAAKsoe,UAAUjS,SACfr2d,KAAKuoe,UAAUxQ,SACf/3d,KAAKooe,MAAMz9W,QACX,IACI3qH,KAAK2tZ,QAAQ/xO,YAAY57K,KAAKmqe,QAClC,CAAE,MAAOpne,IACL,GAAe,kBAAXA,GAAEiG,KAIF,MAAMjG,EAEd,CACAm8C,aAAal/C,KAAKyoe,gBAClBvpb,aAAal/C,KAAK0oe,iBAClB,GAAU,oBACd,CAEA,YAAAgB,CAAanoe,GACJvB,KAAK+qe,cAIV/qe,KAAKi7C,OACT,CAEA,eAAAmyb,CAAgBpke,GACZhJ,KAAKune,QAAUv+d,EACfhJ,KAAKylG,cAAc,IAAInkG,YACnB,cACA,CAAEK,OAAQ,CAAEqH,KAAMhJ,KAAKune,WAC/B,CAEA,aAAAqC,CAAcroe,GAGVU,OAAOore,uBAAsB,KACzBrte,KAAK0re,cACL1re,KAAK4re,cAAc,IAGnB5re,KAAKkre,iBAMLhsb,aAAal/C,KAAKyoe,gBAClBzoe,KAAKyoe,eAAiB1wb,WAAW/3C,KAAK8re,qBAAqBzke,KAAKrH,MAAO,KAE/E,CAIA,WAAA0re,GACI,MAAM4B,EAAUtte,KAAKqoe,SAAS7sB,aAC9B,IAAI+xB,EAAUvte,KAAKq7c,cAWnB,GATIr7c,KAAKire,iBAELsC,GAAU,GAGVD,IAAYC,IACZvte,KAAKqoe,SAAS7sB,aAAe+xB,GAG7BA,EAAS,CAGT,MAAMjzd,EAAOta,KAAKwte,cAClBxte,KAAKqoe,SAAS3sB,mBAAmBphc,EAAKy5G,EAAGz5G,EAAKkhD,GAC9Cx7D,KAAKyte,gBACT,CACJ,CAEA,YAAA7B,GACI,GAAK5re,KAAKire,eAEH,CACH,MAAM3wd,EAAOta,KAAKwte,cAClBxte,KAAKqoe,SAAShqB,UAAU/jc,EAAKy5G,EAAGz5G,EAAKkhD,EACzC,MAJIx7D,KAAKqoe,SAAS32J,MAAQ,EAK1B1xU,KAAKyte,gBACT,CAIA,oBAAA3B,GAII,GAHA5sb,aAAal/C,KAAKyoe,gBAClBzoe,KAAKyoe,eAAiB,MAEjBzoe,KAAKkre,gBAAkBlre,KAAKgre,YAC5Bhre,KAAK6ne,wBACN,OAGJ,MAAMvtd,EAAOta,KAAKwte,cAClBnH,GAAIjtL,SAASs0L,eAAe1te,KAAKooe,MACL9le,KAAKC,MAAM+X,EAAKy5G,GAAIzxH,KAAKC,MAAM+X,EAAKkhD,GACpCx7D,KAAK8ne,UAAW9ne,KAAK+ne,cAEjD,GAAU,+BACCztd,EAAKy5G,EAAI,IAAMz5G,EAAKkhD,EACnC,CAGA,WAAAgya,GACI,IAAInhe,EAAIrM,KAAKmqe,QAAQz1b,wBACrB,MAAO,CAAEq/E,EAAG1nH,EAAEqpB,MAAO8lC,EAAGnvD,EAAEsoC,OAC9B,CAEA,cAAA84b,GAII,MAAM33X,EAAO91G,KAAKmqe,QAAQ10c,MAAMm0C,SAChC5pE,KAAKmqe,QAAQ10c,MAAMm0C,SAAW,SAG9B5pE,KAAKmqe,QAAQz1b,wBACb10C,KAAKmqe,QAAQ10c,MAAMm0C,SAAWksC,CAClC,CASA,sBAAA+0X,CAAuBjnc,GACnB,MAAM+pc,EAAW3te,KAAK8me,oBAEtB,GAAIljc,IAAU+pc,EAMd,GAAiB,iBAAbA,EAAJ,CAMA,OAAQ/pc,GACJ,IAAK,YACD,GAAiB,eAAb+pc,EAGA,YAFA,GAAU,iEACiCA,GAG/C,MAEJ,IAAK,eACD,GAAiB,kBAAbA,EAGA,YAFA,GAAU,oEACiCA,GAG/C,MAEJ,IAAK,aACD,GAAiB,KAAbA,EAGA,YAFA,GAAU,kEACiCA,GAG/C,MAEJ,IAAK,gBACD,GAAiB,cAAbA,GAAyC,eAAbA,EAG5B,YAFA,GAAU,qEACiCA,GAG/C,MAEJ,QAEI,YADA,GAAU,6BAA+B/pc,GAmBjD,OAbA5jC,KAAK8me,oBAAsBljc,EAE3B,GAAU,cAAgBA,EAAQ,WAAa+pc,EAAW,MAEtD3te,KAAKwoe,eAA2B,kBAAV5kc,IACtB,GAAU,6BACVsb,aAAal/C,KAAKwoe,eAClBxoe,KAAKwoe,cAAgB,KAGrBxoe,KAAKooe,MAAMllT,IAAI,UAGXt/I,GACJ,IAAK,aACD5jC,KAAK0hS,WACL,MAEJ,IAAK,YACD1hS,KAAKylG,cAAc,IAAInkG,YAAY,UAAW,CAAEK,OAAQ,CAAC,KACzD,MAEJ,IAAK,gBACD3B,KAAKmte,cAELnte,KAAKwoe,cAAgBzwb,YAAW,KAC5B,GAAU,4BACV/3C,KAAK6qe,uBAAuB,eAAe,GACvB,IAArBvF,IACH,MAEJ,IAAK,eACDtle,KAAKylG,cAAc,IAAInkG,YACnB,aAAc,CAAEK,OACA,CAAE80J,MAAOz2J,KAAKine,wBAClC,MA9ER,MAFI,GAAU,0DANV,GAAU,qBAAuBrjc,EAAQ,cAwFjD,CAOA,KAAAgnc,CAAM7ge,GACF,OAAQ/J,KAAK8me,qBACT,IAAK,gBACD,GAAU,8BAAgC/8d,GAC1C,MACJ,IAAK,YACD,GAAU,2BAA6BA,GACvC,MACJ,IAAK,aACD,GAAU,2BAA6BA,GACvC,MACJ,QACI,GAAU,gBAAkBA,GAC5B,MAQR,OANA/J,KAAKine,qBAAsB,EAG3Bjne,KAAK6qe,uBAAuB,iBAC5B7qe,KAAK6qe,uBAAuB,iBAErB,CACX,CAEA,cAAA+C,CAAeC,EAAKr9d,GAChBxQ,KAAKwne,cAAcqG,GAAOr9d,EAC1BxQ,KAAKylG,cAAc,IAAInkG,YAAY,eACA,CAAEK,OAAQ,CAAE6pe,aAAcxre,KAAKwne,iBACtE,CAEA,cAAAmD,GACI,GAAyB,IAArB3qe,KAAKooe,MAAMjL,MAKf,OAAQn9d,KAAK8me,qBACT,IAAK,eACD,GAAU,+BACV,MACJ,IAAK,YACD,MAAO,EAAM,CACT,GAAI9me,KAAKs6c,UACL,MAEJ,IAAKt6c,KAAK8te,aACN,MAEJ,GAAyB,IAArB9te,KAAKooe,MAAMjL,MACX,KAER,CACA,MACJ,QACIn9d,KAAKsse,WACL,WAvBJ,GAAS,iDAyBjB,CAEA,eAAA5B,CAAgB70B,EAAQ5yc,EAAMoyd,GAC1Br1d,KAAKwse,QAAQ32B,EAAQ5yc,EAAMoyd,EAC/B,CAEA,YAAAyU,CAAanjY,GAMT,GAAgB,UAAZA,EAAG/xF,MAMC+xF,EAAGnmG,SAAWR,KAAK66d,QACnB,OASR,GAHAl0X,EAAG3B,kBACH2B,EAAGlqD,iBAEc,UAAZkqD,EAAG/xF,MAAkC,gBAAZ+xF,EAAG/xF,KAC7B,OAGJ,IAAI7I,EAAM6sc,GAAgBjyW,EAAG8gR,QAAS9gR,EAAG6gR,QACfxnX,KAAK66d,SAE/B,OAAQl0X,EAAG/xF,MACP,IAAK,YACD4kc,GAAWx5c,KAAK66d,SAChB76d,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GACX,EAAM,GAAKyuF,EAAGvM,QACtC,MACJ,IAAK,UACDp6F,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GACX,EAAO,GAAKyuF,EAAGvM,QACvC,MACJ,IAAK,YACDp6F,KAAKm7d,iBAAiBpvd,EAAIkM,EAAGlM,EAAImM,GACjC,MAEZ,CAEA,kBAAA61d,CAAmB91d,EAAGC,EAAGm9c,EAAM2Y,GAC3B,GAAIhue,KAAK8qe,aAAc,CACnB,GAAIzV,IAASr1d,KAAKgpe,kBAMd,OALAhpe,KAAKgpe,mBAAoB,EACzBhpe,KAAKipe,iBAAmB,CAAC,EAAKhxd,EAAG,EAAKC,QACtClY,KAAKkpe,mBAAoB,GASzB,GAJAlpe,KAAKgpe,mBAAoB,EAIrBhpe,KAAKkpe,kBACL,OAMJlpe,KAAKiue,WAAWh2d,EAAGC,EAAG81d,EAE9B,CAG6B,OAAzBhue,KAAK0oe,kBACLxpb,aAAal/C,KAAK0oe,iBAClB1oe,KAAK0oe,gBAAkB,KACvB1oe,KAAKiue,WAAWh2d,EAAGC,EAAGlY,KAAK8oe,mBAG3BzT,EACAr1d,KAAK8oe,kBAAoBkF,EAEzBhue,KAAK8oe,mBAAqBkF,EAG9Bhue,KAAKiue,WAAWh2d,EAAGC,EAAGlY,KAAK8oe,iBAC/B,CAEA,gBAAA3N,CAAiBljd,EAAGC,GAChB,GAAIlY,KAAKgpe,kBAAT,CACI,MAAMptB,EAAS57c,KAAKipe,iBAAiBhxd,EAAIA,EACnC4jc,EAAS77c,KAAKipe,iBAAiB/wd,EAAIA,GAErClY,KAAKkpe,mBAAsB5me,KAAKg7D,IAAIs+Y,GAAU/E,IACnBv0c,KAAKg7D,IAAIu+Y,GAAUhF,MAC9C72c,KAAKkpe,mBAAoB,EAEzBlpe,KAAKipe,iBAAmB,CAAC,EAAKhxd,EAAG,EAAKC,GACtClY,KAAKqoe,SAAS1sB,kBAAkBC,EAAQC,GAKhD,MAKA,GAHA77c,KAAK6oe,UAAY,CAAE,EAAK5wd,EAAG,EAAKC,GAGJ,MAAxBlY,KAAK0oe,gBAAyB,CAE9B,MAAMwF,EAAoBh0d,KAAK2e,MAAQ74B,KAAK+oe,mBACxCmF,EAAoB1I,IACpBxle,KAAKiue,WAAWh2d,EAAGC,EAAGlY,KAAK8oe,kBAC3B9oe,KAAK+oe,mBAAqB7ud,KAAK2e,OAG/B74B,KAAK0oe,gBAAkB3wb,YAAW,KAC9B/3C,KAAKmue,yBAAyB,GAC/B3I,GAAmB0I,EAE9B,CACJ,CAEA,uBAAAC,GACInue,KAAK0oe,gBAAkB,KACvB1oe,KAAKiue,WAAWjue,KAAK6oe,UAAU5wd,EAAGjY,KAAK6oe,UAAU3wd,EACjClY,KAAK8oe,kBACrB9oe,KAAK+oe,mBAAqB7ud,KAAK2e,KACnC,CAEA,UAAAo1c,CAAWh2d,EAAGC,EAAGiqc,GACoB,cAA7Bnid,KAAK8me,sBACL9me,KAAKgre,WAET3E,GAAIjtL,SAASg1L,aAAapue,KAAKooe,MAAOpoe,KAAKqoe,SAASnsB,KAAKjkc,GAC/BjY,KAAKqoe,SAASlsB,KAAKjkc,GAAIiqc,GACrD,CAEA,YAAA6nB,CAAarjY,GACT,GAAiC,cAA7B3mG,KAAK8me,oBAAuC,OAChD,GAAI9me,KAAKgre,UAAa,OAEtBrkY,EAAG3B,kBACH2B,EAAGlqD,iBAEH,IAAI1wC,EAAM6sc,GAAgBjyW,EAAG8gR,QAAS9gR,EAAG6gR,QACfxnX,KAAK66d,SAE3BwT,EAAK1nY,EAAGi1W,OACR0yB,EAAK3nY,EAAGk1W,OAOS,IAAjBl1W,EAAG4nY,YACHF,GAAM3I,GACN4I,GAAM5I,IAMV1le,KAAKmpe,yBAA2BkF,EAChCrue,KAAKope,yBAA2BkF,EAI5Bhse,KAAKg7D,IAAIt9D,KAAKmpe,0BAA4B1D,KACtCzle,KAAKmpe,wBAA0B,GAC/Bnpe,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,IAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,KACtClY,KAAKmpe,wBAA0B,IACtCnpe,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,IAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,KAGjDlY,KAAKmpe,wBAA0B,GAE/B7me,KAAKg7D,IAAIt9D,KAAKope,0BAA4B3D,KACtCzle,KAAKope,wBAA0B,GAC/Bppe,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,GAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,IACtClY,KAAKope,wBAA0B,IACtCppe,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,IAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,KAGjDlY,KAAKope,wBAA0B,EAEvC,CAEA,cAAAoF,CAAe7nY,EAAI8nY,EAAUC,GACzB1ue,KAAKm7d,iBAAiBsT,EAAUC,GAChC1ue,KAAKsqe,QAAQ7vJ,KAAK9zO,EAAGhlG,OAAO8lX,QAAS9gR,EAAGhlG,OAAO6lX,QACnD,CAEA,eAAAmnH,CAAgBhoY,EAAIqnY,GAChB,IAAIjie,EAAM6sc,GAAgBjyW,EAAGhlG,OAAO8lX,QAAS9gR,EAAGhlG,OAAO6lX,QAC7BxnX,KAAK66d,SAK/B,GAAkC,OAA7B76d,KAAKqpe,qBACJnvd,KAAK2e,MAAQ74B,KAAKqpe,oBAAuBxD,IAC1C7le,KAAKspe,yBAAyB3ne,OAAOiT,OAAS+xF,EAAGhlG,OAAOiT,KAAO,CAChE,IAAIg6d,EAAK5ue,KAAKspe,yBAAyB3ne,OAAO8lX,QAAU9gR,EAAGhlG,OAAO8lX,QAC9DonH,EAAK7ue,KAAKspe,yBAAyB3ne,OAAO6lX,QAAU7gR,EAAGhlG,OAAO6lX,QAC9Dr0S,EAAW7wE,KAAKu2d,MAAM+V,EAAIC,GAE1B17Z,EAAW2yZ,GACX/5d,EAAM6sc,GAAgB54c,KAAKspe,yBAAyB3ne,OAAO8lX,QACrCznX,KAAKspe,yBAAyB3ne,OAAO6lX,QACrCxnX,KAAK66d,SAE3B76d,KAAKspe,yBAA2B3iY,CAExC,MACI3mG,KAAKspe,yBAA2B3iY,EAEpC3mG,KAAKqpe,oBAAsBnvd,KAAK2e,MAEhC74B,KAAKwue,eAAexue,KAAKspe,yBAA0Bv9d,EAAIkM,EAAGlM,EAAImM,GAC9DlY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM81d,GAC5Chue,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO81d,EACjD,CAEA,cAAA9D,CAAevjY,GACX,IAAImoY,EAEA/ie,EAAM6sc,GAAgBjyW,EAAGhlG,OAAO8lX,QAAS9gR,EAAGhlG,OAAO6lX,QAC7BxnX,KAAK66d,SAC/B,OAAQl0X,EAAG/xF,MACP,IAAK,eACD,OAAQ+xF,EAAGhlG,OAAOiT,MACd,IAAK,SACD5U,KAAK2ue,gBAAgBhoY,EAAI,GACzB,MACJ,IAAK,SACD3mG,KAAK2ue,gBAAgBhoY,EAAI,GACzB,MACJ,IAAK,WACD3mG,KAAK2ue,gBAAgBhoY,EAAI,GACzB,MACJ,IAAK,OACD3mG,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,GAC5C,MACJ,IAAK,YACDlY,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,GAC5C,MAEJ,IAAK,UACDlY,KAAKupe,uBAAyB5iY,EAAGhlG,OAAOote,WACxC/ue,KAAKwpe,uBAAyB7iY,EAAGhlG,OAAOqte,WACxChve,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnC,MACJ,IAAK,QACDlY,KAAKupe,uBAAyBjne,KAAKu2d,MAAMlyX,EAAGhlG,OAAOote,WACVpoY,EAAGhlG,OAAOqte,YACnDhve,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnC,MAER,MAEJ,IAAK,cACD,OAAQyuF,EAAGhlG,OAAOiT,MACd,IAAK,SACL,IAAK,SACL,IAAK,WACD,MACJ,IAAK,OACL,IAAK,YACD5U,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnC,MACJ,IAAK,UAIDlY,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnC,MAAQyuF,EAAGhlG,OAAOqte,WAAahve,KAAKwpe,uBAA0B5D,GAC1D5le,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,GAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,GAC7ClY,KAAKwpe,wBAA0B5D,GAEnC,MAAQj/X,EAAGhlG,OAAOqte,WAAahve,KAAKwpe,wBAA2B5D,GAC3D5le,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,IAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,IAC7ClY,KAAKwpe,wBAA0B5D,GAEnC,MAAQj/X,EAAGhlG,OAAOote,WAAa/ue,KAAKupe,uBAA0B3D,GAC1D5le,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,IAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,IAC7ClY,KAAKupe,wBAA0B3D,GAEnC,MAAQj/X,EAAGhlG,OAAOote,WAAa/ue,KAAKupe,wBAA2B3D,GAC3D5le,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,IAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,IAC7ClY,KAAKupe,wBAA0B3D,GAEnC,MACJ,IAAK,QAMD,GAFA5le,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnC42d,EAAYxse,KAAKu2d,MAAMlyX,EAAGhlG,OAAOote,WAAYpoY,EAAGhlG,OAAOqte,YACnD1se,KAAKg7D,IAAIwxa,EAAY9ue,KAAKupe,wBAA0B5D,GAAkB,CACtE3le,KAAK0qe,gBAAgB,GAASxtC,aAAc,eAAe,GAC3D,MAAQ4xC,EAAY9ue,KAAKupe,uBAA0B5D,GAC/C3le,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,GAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,GAC7ClY,KAAKupe,wBAA0B5D,GAEnC,MAAQmJ,EAAa9ue,KAAKupe,wBAA2B5D,GACjD3le,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAM,IAC5ClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,IAC7ClY,KAAKupe,wBAA0B5D,EAEvC,CACA3le,KAAK0qe,gBAAgB,GAASxtC,aAAc,eAAe,GAC3D,MAER,MAEJ,IAAK,aACD,OAAQv2V,EAAGhlG,OAAOiT,MACd,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,UACD,MACJ,IAAK,OACD5U,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,GAC7C,MACJ,IAAK,YACDlY,KAAKwue,eAAe7nY,EAAI56F,EAAIkM,EAAGlM,EAAImM,GACnClY,KAAK+te,mBAAmBhie,EAAIkM,EAAGlM,EAAImM,GAAG,EAAO,GAC7C,MAER,MAEZ,CAIA,yBAAA+2d,GACI,GAAIjve,KAAKooe,MAAMtK,OAAO,UAAW,IAC7B,OAAO,EAGX,MAAMoR,EAAWlve,KAAKooe,MAAM1K,WAAW,IAAInpd,OAAO,EAAG,GACrD,GAAS,2BAA6B26d,GACtC,IAAIC,EAAa,EACjB,OAAQD,GACJ,IAAK,UACDC,EAAa,EACb,MACJ,IAAK,UACL,IAAK,UACL,IAAK,UACDnve,KAAKkne,YAAc,IACnB,MACJ,IAAK,UACDlne,KAAKkne,YAAc,IACnB,MACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACDlne,KAAKkne,YAAc,IACnB,MACJ,QACI,OAAOlne,KAAK4qe,MAAM,0BAA4BsE,GAGtD,GAAIC,EAAY,CACZ,IAAIxI,EAAa,MAAQ3me,KAAK0me,YAC9B,MAAOC,EAAW7le,OAAS,IACvB6le,GAAc,KAGlB,OADA3me,KAAKooe,MAAMlK,WAAWyI,IACf,CACX,CAEI3me,KAAKkne,YAAclne,KAAKmne,iBACxBnne,KAAKkne,YAAclne,KAAKmne,gBAG5B,MAAMiI,EAAW,KAAO7sd,SAASviB,KAAKkne,YAAa,IACpC,MAA6B,GAAnBlne,KAAKkne,YAAoB,GAClDlne,KAAKooe,MAAMlK,WAAW,OAASkR,EAAW,MAC1C,GAAU,yBAA2BA,GAErCpve,KAAK+me,cAAgB,UACzB,CAEA,kBAAAsI,GAGI,SAAS76d,EAASoH,EAAMvF,GACpB,IAAK,IAAI3S,EAAI,EAAGA,EAAI2S,EAAMvV,OAAQ4C,IAC9B,GAAI2S,EAAM3S,KAAOkY,EACb,OAAO,EAGf,OAAO,CACX,CAEA,GAAI5b,KAAKkne,aAAe,IAAK,CAEzB,MAAMoI,EAAWtve,KAAKooe,MAAM9K,WAC5B,GAAIt9d,KAAKooe,MAAMtK,OAAO,gBAAiBwR,EAAU,GAAM,OAAO,EAE9D,GAAiB,IAAbA,EAIA,OAHAtve,KAAK+me,cAAgB,iBACrB/me,KAAKuve,iBAAmB,oBACxBvve,KAAKwve,gBAAkB,EAChBxve,KAAKsse,WAGhB,MAAM1lb,EAAQ5mD,KAAKooe,MAAMzK,aAAa2R,GAItC,GAHA,GAAU,0BAA4B1ob,GAGlCpyC,EAAS,EAAGoyC,GACZ5mD,KAAKgne,eAAiB,OACnB,GAAIxyd,EAAS,GAAIoyC,GACpB5mD,KAAKgne,eAAiB,QACnB,GAAIxyd,EAAS,GAAIoyC,GACpB5mD,KAAKgne,eAAiB,QACnB,GAAIxyd,EAAS,EAAGoyC,GACnB5mD,KAAKgne,eAAiB,MACnB,KAAIxyd,EAAS,GAAIoyC,GAGpB,OAAO5mD,KAAK4qe,MAAM,sCAAwChkb,EAAQ,KAFlE5mD,KAAKgne,eAAiB,EAG1B,CAEAhne,KAAKooe,MAAM/lM,KAAK,CAACriS,KAAKgne,gBAC1B,KAAO,CAEH,GAAIhne,KAAKooe,MAAMtK,OAAO,kBAAmB,GAAM,OAAO,EAGtD,GAFA99d,KAAKgne,eAAiBhne,KAAKooe,MAAM3K,YAEN,GAAvBz9d,KAAKgne,eAIL,OAHAhne,KAAK+me,cAAgB,iBACrB/me,KAAKuve,iBAAmB,wBACxBvve,KAAKwve,gBAAkB,EAChBxve,KAAKsse,UAEpB,CAKA,OAHAtse,KAAK+me,cAAgB,iBACrB,GAAU,gCAAkC/me,KAAKgne,gBAE1Chne,KAAKsse,UAChB,CAEA,qBAAAmD,GACI,GAAIzve,KAAKooe,MAAMtK,OAAO,gBAAiB,GACnC,OAAO,EAEX,MAAM4R,EAAS1ve,KAAKooe,MAAM3K,YAC1B,IAAI5od,EAAS,GAEb,GAAI66d,EAAS,EAAG,CACZ,GAAI1ve,KAAKooe,MAAMtK,OAAO,SAAU4R,EAAQ,GAAM,OAAO,EACrD76d,EAAS7U,KAAKooe,MAAM1K,WAAWgS,EACnC,CAEA,MAAe,KAAX76d,GACA7U,KAAKylG,cAAc,IAAInkG,YACnB,kBACA,CAAEK,OAAQ,CAAEu6B,OAAQl8B,KAAKwve,gBACb36d,OAAQA,MAEjB7U,KAAK4qe,MAAM,kCACA5qe,KAAKuve,iBACL,aAAe16d,EAAS,OAE1C7U,KAAKylG,cAAc,IAAInkG,YACnB,kBACA,CAAEK,OAAQ,CAAEu6B,OAAQl8B,KAAKwve,oBAEtBxve,KAAK4qe,MAAM,kCACA5qe,KAAKuve,kBAE/B,CAGA,iBAAAI,GACI,QAAsC/te,IAAlC5B,KAAKume,gBAAgBv9W,eACapnH,IAAlC5B,KAAKume,gBAAgB55a,eACW/qD,IAAhC5B,KAAKume,gBAAgB/le,OAIrB,OAHAR,KAAKylG,cAAc,IAAInkG,YACnB,sBACA,CAAEK,OAAQ,CAAEilD,MAAO,CAAC,WAAY,WAAY,eACzC,EAGX,MAAMgpb,EAAavre,OAAOsgB,aAAa3kB,KAAKume,gBAAgBv9W,SAASloH,QAClDuD,OAAOsgB,aAAa3kB,KAAKume,gBAAgB/le,OAAOM,QAChDd,KAAKume,gBAAgBv9W,SACrBhpH,KAAKume,gBAAgB/le,OAGxC,OAFAR,KAAKooe,MAAMlK,WAAW0R,GACtB5ve,KAAKgne,eAAiB,EACfhne,KAAK6ve,0BAChB,CAGA,sBAAAC,GAGI,GAA8B,GAA1B9ve,KAAKqne,kBAAwB,CAC7B,GAAIrne,KAAKooe,MAAMtK,OAAO,mBAAoB,GAAM,OAAO,EAEvD,MAAM/sM,EAAQ/wR,KAAKooe,MAAM9K,WACnBtsM,EAAQhxR,KAAKooe,MAAM9K,WAEzB,GAAe,GAATvsM,GAAuB,GAATC,EAChB,OAAOhxR,KAAK4qe,MAAM,gCAAkC75M,EAAQ,IAAMC,GAGtEhxR,KAAKooe,MAAM/lM,KAAK,CAAC,EAAG,IACpBriS,KAAKqne,kBAAoB,CAC7B,CAGA,GAA8B,GAA1Brne,KAAKqne,kBAAwB,CAC7B,GAAIrne,KAAKooe,MAAMtK,OAAO,eAAgB,GAAM,OAAO,EAEnD,MAAMp5d,EAAM1E,KAAKooe,MAAM9K,WAEvB,GAAW,GAAP54d,EACA,OAAO1E,KAAK4qe,MAAM,oBAAsBlme,GAG5C1E,KAAKqne,kBAAoB,CAC7B,CAIA,GAA8B,GAA1Brne,KAAKqne,kBAAwB,CAC7B,GAAIrne,KAAKooe,MAAMtK,OAAO,2BAA4B,GAAM,OAAO,EAE/D,MAAMiS,EAAiB/ve,KAAKooe,MAAM9K,WAClC,GAAIyS,EAAiB,EACjB,OAAO/ve,KAAK4qe,MAAM,2BAGtB5qe,KAAKgwe,2BAA6BD,EAClC/ve,KAAKqne,kBAAoB,CAC7B,CAGA,GAA8B,GAA1Brne,KAAKqne,kBAAwB,CAC7B,GAAIrne,KAAKooe,MAAMtK,OAAO,oBAAqB,EAAI99d,KAAKgwe,4BAA+B,OAAO,EAE1F,MAAMnuZ,EAAW,GACjB,IAAK,IAAIn+E,EAAI,EAAGA,EAAI1D,KAAKgwe,2BAA4Btse,IACjDm+E,EAAS14E,KAAKnJ,KAAKooe,MAAM3K,aAI7B,IAA8B,GAA1B57Y,EAAS71E,QAAQ,KAKjB,OAAOhM,KAAK4qe,MAAM,gDAHlB5qe,KAAKooe,MAAM/lM,KAAK,CAAC,EAAG,EAAG,EAAG,IAC1BriS,KAAKqne,kBAAoB,CAIjC,CAGA,GAA8B,GAA1Brne,KAAKqne,kBAAwB,CAC7B,IAAKrne,KAAKume,gBAAgBv9W,WACrBhpH,KAAKume,gBAAgB55a,SAItB,OAHA3sD,KAAKylG,cAAc,IAAInkG,YACnB,sBACA,CAAEK,OAAQ,CAAEilD,MAAO,CAAC,WAAY,iBAC7B,EAGX,MAAM8F,EAAOgsZ,GAAW14c,KAAKume,gBAAgBv9W,UACvCukE,EAAOmrR,GAAW14c,KAAKume,gBAAgB55a,UAS7C,OANA3sD,KAAKooe,MAAM/lM,KAAK,CAAC,EAAG,EAAG,EAAG31O,EAAK5rD,SAC/Bd,KAAKooe,MAAM/lM,KAAK,CAAC,EAAG,EAAG,EAAG90G,EAAKzsL,SAC/Bd,KAAKooe,MAAMlK,WAAWxxa,GACtB1sD,KAAKooe,MAAMlK,WAAW3wS,GAEtBvtL,KAAK+me,cAAgB,kBACd,CACX,CACJ,CAEA,oBAAAkJ,GACI,GAAIjwe,KAAKooe,MAAMtK,OAAO,iBAAkB,IAAO,OAAO,EAEtD,QAAsCl8d,IAAlC5B,KAAKume,gBAAgB55a,SAIrB,OAHA3sD,KAAKylG,cAAc,IAAInkG,YACnB,sBACA,CAAEK,OAAQ,CAAEilD,MAAO,CAAC,iBACjB,EAIX,MAAMspb,EAAYpoe,MAAM7G,UAAUgL,MAAM9K,KAAKnB,KAAKooe,MAAMzK,aAAa,KAC/DhkY,EAAW0sY,GAAI8J,OAAOnwe,KAAKume,gBAAgB55a,SAAUujb,GAG3D,OAFAlwe,KAAKooe,MAAM/lM,KAAK1oM,GAChB35F,KAAK+me,cAAgB,kBACd,CACX,CAEA,uBAAAqJ,GACI,YAAsCxue,IAAlC5B,KAAKume,gBAAgBv9W,eACapnH,IAAlC5B,KAAKume,gBAAgB55a,UACrB3sD,KAAKylG,cAAc,IAAInkG,YACnB,sBACA,CAAEK,OAAQ,CAAEilD,MAAO,CAAC,WAAY,iBAC7B,IAGX5mD,KAAKooe,MAAM/lM,KAAK,CAAC,EAAG,EAAG,EAAGriS,KAAKume,gBAAgBv9W,SAASloH,SACxDd,KAAKooe,MAAM/lM,KAAK,CAAC,EAAG,EAAG,EAAGriS,KAAKume,gBAAgB55a,SAAS7rD,SACxDd,KAAKooe,MAAMlK,WAAWl+d,KAAKume,gBAAgBv9W,UAC3ChpH,KAAKooe,MAAMlK,WAAWl+d,KAAKume,gBAAgB55a,UAC3C3sD,KAAK+me,cAAgB,kBACd,EACX,CAEA,sBAAAsJ,CAAuBC,GACnB,MAAMC,EAA6B,CAC/B,EAAG,CAAEjkM,OAAQ,OAAQkkM,UAAW,aAE9BC,EAA6B,CAAC,EAEpC,IAAK,IAAI/se,EAAI,EAAGA,EAAI4se,EAAY5se,IAAK,CACjC,MAAMgte,EAAU1we,KAAKooe,MAAM3K,YACrBkT,EAAY3we,KAAKooe,MAAM1K,WAAW,GAClCkT,EAAe5we,KAAKooe,MAAM1K,WAAW,GAC3C+S,EAA2BC,GAAW,CAAEpkM,OAAQqkM,EAAWH,UAAWI,EAC1E,CAeA,OAbA,GAAU,8BAAgCH,GAKtCA,EAA2B,IACe,SAAzCA,EAA2B,GAAGnkM,QACc,aAA5CmkM,EAA2B,GAAGD,YAC/B,GAAU,uDACVC,EAA2B,GAAK,CAAEnkM,OAAQ,OAAQkkM,UAAW,aAI7DC,EAA2B,GACvBA,EAA2B,GAAGnkM,QAAUikM,EAA2B,GAAGjkM,QACtEmkM,EAA2B,GAAGD,WAAaD,EAA2B,GAAGC,UAClExwe,KAAK4qe,MAAM,+DAGtB,GAAU,yBAA2B2F,EAA2B,IAChEvwe,KAAKooe,MAAM/lM,KAAK,CAAC,EAAG,EAAG,EAAG,KACnB,GAEAriS,KAAK4qe,MAAM,+DAG1B,CAEA,mBAAAiG,GACI,IAAK7we,KAAKone,aAAc,CACpB,GAAIpne,KAAKooe,MAAMtK,OAAO,cAAe,GAAM,OAAO,EAClD,MAAMwS,EAAatwe,KAAKooe,MAAM3K,YAC9B,GAAI6S,EAAa,GAAKtwe,KAAKooe,MAAMtK,OAAO,sBAAuB,GAAKwS,EAAY,GAAM,OAAO,EAI7F,GAFAtwe,KAAKone,cAAe,EAEhBkJ,EAAa,EAEb,OADAtwe,KAAKqwe,uBAAuBC,IACrB,CAEf,CAGA,GAAItwe,KAAKooe,MAAMtK,OAAO,iBAAkB,GAAM,OAAO,EACrD,MAAMgT,EAAe9we,KAAKooe,MAAM3K,YAChC,GAAqB,IAAjBqT,EAEA,OADA9we,KAAK+me,cAAgB,kBACd,EAGX,GAAI/me,KAAKooe,MAAMtK,OAAO,wBAAyB,GAAKgT,EAAc,GAAM,OAAO,EAE/E,MAAMC,EAAuB,CACzB,aAAgB,EAChB,aAAgB,EAChB,aAAgB,KAGdC,EAAuB,GAE7B,IAAK,IAAItte,EAAI,EAAGA,EAAIote,EAAcpte,IAAK,CACnC1D,KAAKooe,MAAM3K,YACX,MAAM+N,EAAexre,KAAKooe,MAAM1K,WAAW,IAC3CsT,EAAqB7ne,KAAKqie,EAC9B,CAEA,GAAU,sCAAwCwF,GAElD,IAAK,IAAIlpX,KAAYipX,EACjB,IAA+C,GAA3CC,EAAqBhle,QAAQ87G,GAI7B,OAHA9nH,KAAKooe,MAAM/lM,KAAK,CAAC,EAAG,EAAG,EAAG0uM,EAAqBjpX,KAC/C,GAAU,iCAAmCA,GAErCA,GACJ,IAAK,eAED,OADA9nH,KAAK+me,cAAgB,kBACd,EACX,IAAK,eAED,OADA/me,KAAKgne,eAAiB,EACfhne,KAAKsse,WAChB,IAAK,eAED,OADAtse,KAAKgne,eAAiB,IACfhne,KAAKsse,WAChB,QACI,OAAOtse,KAAK4qe,MAAM,yCACc9iX,EAAW,KAK3D,OAAO9nH,KAAK4qe,MAAM,+BACtB,CAEA,wBAAAiF,GACI,OAAQ7ve,KAAKgne,gBACT,KAAK,EACD,OAAIhne,KAAKkne,aAAe,KACpBlne,KAAK+me,cAAgB,kBACd,IAEX/me,KAAK+me,cAAgB,uBACd/me,KAAKsse,YAEhB,KAAK,GACD,OAAOtse,KAAK2ve,oBAEhB,KAAK,EACD,OAAO3ve,KAAKiwe,uBAEhB,KAAK,GACD,OAAOjwe,KAAK6we,sBAEhB,KAAK,GACD,OAAO7we,KAAK8ve,yBAEhB,KAAK,IACD,OAAO9ve,KAAKowe,0BAEhB,QACI,OAAOpwe,KAAK4qe,MAAM,oCACA5qe,KAAKgne,eAAiB,KAEpD,CAEA,qBAAAiK,GACI,GAAIjxe,KAAKooe,MAAMtK,OAAO,qBAAsB,GAAM,OAAO,EAEzD,MAAM5hc,EAASl8B,KAAKooe,MAAM3K,YAE1B,OAAe,IAAXvhc,GACAl8B,KAAK+me,cAAgB,uBACrB,GAAU,qBACH/me,KAAKsse,YAERtse,KAAKkne,aAAe,KACpBlne,KAAK+me,cAAgB,iBACrB/me,KAAKuve,iBAAmB,kBACxBvve,KAAKwve,gBAAkBtzc,EAChBl8B,KAAKsse,aAEZtse,KAAKylG,cAAc,IAAInkG,YACnB,kBACA,CAAEK,OAAQ,CAAEu6B,OAAQA,MAEjBl8B,KAAK4qe,MAAM,6BAG9B,CAEA,oBAAAsG,GACI,GAAIlxe,KAAKooe,MAAMtK,OAAO,wBAAyB,IAAO,OAAO,EAG7D,MAAMpoc,EAAQ11B,KAAKooe,MAAM5K,YACnB7ob,EAAS30C,KAAKooe,MAAM5K,YAGpBsH,EAAc9ke,KAAKooe,MAAM9K,WACzB3sd,EAAc3Q,KAAKooe,MAAM9K,WACzB6T,EAAanxe,KAAKooe,MAAM9K,WACxB8T,EAAapxe,KAAKooe,MAAM9K,WAExB+T,EAAarxe,KAAKooe,MAAM5K,YACxB8T,EAAatxe,KAAKooe,MAAM5K,YACxB+T,EAAavxe,KAAKooe,MAAM5K,YACxBgU,EAAaxxe,KAAKooe,MAAM9K,WACxBmU,EAAazxe,KAAKooe,MAAM9K,WACxBoU,EAAa1xe,KAAKooe,MAAM9K,WAC9Bt9d,KAAKooe,MAAM/K,YAAY,GAMvB,MAAMsU,EAAa3xe,KAAKooe,MAAM3K,YAC9B,GAAIz9d,KAAKooe,MAAMtK,OAAO,mBAAoB6T,EAAY,IAAO,OAAO,EACpE,IAAI3oe,EAAOhJ,KAAKooe,MAAM1K,WAAWiU,GAGjC,GAFA3oe,EAAOuvc,GAAWvvc,GAAM,GAEpBhJ,KAAKone,aAAc,CACnB,GAAIpne,KAAKooe,MAAMtK,OAAO,uCAAwC,EAAG,GAAK6T,GAAe,OAAO,EAE5F,MAAMC,EAAoB5xe,KAAKooe,MAAM5K,YAC/BqU,EAAoB7xe,KAAKooe,MAAM5K,YAC/BsU,EAAe9xe,KAAKooe,MAAM5K,YAChCx9d,KAAKooe,MAAM/K,YAAY,GAEvB,MAAM0U,EAA+E,IAAxDH,EAAoBC,EAAoBC,GACrE,GAAI9xe,KAAKooe,MAAMtK,OAAO,uCAAwCiU,EAAqB,GAAKJ,GAAe,OAAO,EAM9G3xe,KAAKooe,MAAM/K,YAAY,GAAKuU,GAG5B5xe,KAAKooe,MAAM/K,YAAY,GAAKwU,GAG5B7xe,KAAKooe,MAAM/K,YAAY,GAAKyU,EAChC,CAiCA,OA7BA,GAAS,WAAap8c,EAAQ,IAAMif,EAC1B,UAAYmwb,EAAM,YAAcn0d,EAChC,gBAAkBwge,EAClB,gBAAkBC,EAClB,aAAeC,EACf,eAAiBC,EACjB,cAAgBC,EAChB,eAAiBC,EACjB,iBAAmBC,EACnB,gBAAkBC,GAG5B1xe,KAAKote,gBAAgBpke,GACrBhJ,KAAKgye,QAAQt8c,EAAOif,GAEf30C,KAAKgre,WAAahre,KAAKsoe,UAAUvS,OAEtC/1d,KAAKiye,SAAW,GAEK,qBAAjBjye,KAAKune,UACL,GAAS,sEACTvne,KAAKiye,SAAW,GAGpB5L,GAAIjtL,SAAS84L,YAAYlye,KAAKooe,MAAOpoe,KAAKiye,UAAU,GACpDjye,KAAKkse,iBACL7F,GAAIjtL,SAAS+4L,gBAAgBnye,KAAKooe,OAAO,EAAO,EAAG,EAAGpoe,KAAKu6c,SAAUv6c,KAAKw6c,WAE1Ex6c,KAAK6qe,uBAAuB,cACrB,CACX,CAEA,cAAAqB,GACI,MAAMkG,EAAO,GAGbA,EAAKjpe,KAAKg3d,GAAUE,kBAEC,IAAjBrge,KAAKiye,WACLG,EAAKjpe,KAAKg3d,GAAUK,eACpB4R,EAAKjpe,KAAKg3d,GAAUM,kBACpB2R,EAAKjpe,KAAKg3d,GAAUI,iBACpB6R,EAAKjpe,KAAKg3d,GAAUG,cAExB8R,EAAKjpe,KAAKg3d,GAAUC,aAGpBgS,EAAKjpe,KAAKg3d,GAAUQ,4BAA8B3ge,KAAKqre,eACvD+G,EAAKjpe,KAAKg3d,GAAUmB,6BAA+Bthe,KAAKsre,mBAExD8G,EAAKjpe,KAAKg3d,GAAUS,2BACpBwR,EAAKjpe,KAAKg3d,GAAUU,wBACpBuR,EAAKjpe,KAAKg3d,GAAUY,oCACpBqR,EAAKjpe,KAAKg3d,GAAUc,mCACpBmR,EAAKjpe,KAAKg3d,GAAUe,mBACpBkR,EAAKjpe,KAAKg3d,GAAUgB,qBACpBiR,EAAKjpe,KAAKg3d,GAAUiB,iCACpBgR,EAAKjpe,KAAKg3d,GAAUa,2BACpBoR,EAAKjpe,KAAKg3d,GAAUqB,iCAEC,IAAjBxhe,KAAKiye,WACLG,EAAKjpe,KAAKg3d,GAAUoB,4BACpB6Q,EAAKjpe,KAAKg3d,GAAUW,uBAGxBuF,GAAIjtL,SAASi5L,gBAAgBrye,KAAKooe,MAAOgK,EAC7C,CAUA,QAAA9F,GACI,OAAQtse,KAAK+me,eACT,IAAK,kBACD,OAAO/me,KAAKive,4BAEhB,IAAK,WACD,OAAOjve,KAAKqve,qBAEhB,IAAK,iBACD,OAAOrve,KAAK6ve,2BAEhB,IAAK,iBACD,OAAO7ve,KAAKixe,wBAEhB,IAAK,iBACD,OAAOjxe,KAAKyve,wBAEhB,IAAK,uBAGD,OAFAzve,KAAKooe,MAAM/lM,KAAK,CAACriS,KAAKwme,QAAU,EAAI,IACpCxme,KAAK+me,cAAgB,wBACd,EAEX,IAAK,uBACD,OAAO/me,KAAKkxe,uBAEhB,QACI,OAAOlxe,KAAK4qe,MAAM,8BACA5qe,KAAK+me,cAAgB,KAEnD,CAEA,sBAAAuL,GAGI,OAFA,GAAU,sBAEHtye,KAAK4qe,MAAM,wCACtB,CAEA,oBAAA2H,GAGI,GAFA,GAAU,iBAENvye,KAAKooe,MAAMtK,OAAO,uBAAwB,EAAG,GAAM,OAAO,EAE9D99d,KAAKooe,MAAM/K,YAAY,GAEvB,IAAIv8d,EAASd,KAAKooe,MAAM3K,YAGxB,GAFA38d,EAASw3c,GAAcx3c,GAEnBd,KAAKooe,MAAMtK,OAAO,wBAAyBx7d,KAAKg7D,IAAIx8D,GAAS,GAAM,OAAO,EAE9E,GAAIA,GAAU,EAAG,CAEb,MAAMmsF,EAAOjtF,KAAKooe,MAAM1K,WAAW58d,GACnC,GAAId,KAAKgre,UACL,OAAO,EAGXhre,KAAKylG,cAAc,IAAInkG,YACnB,YACA,CAAEK,OAAQ,CAAEsrF,KAAMA,KAE1B,KAAO,CAEHnsF,EAASwB,KAAKg7D,IAAIx8D,GAClB,MAAMqV,EAAQnW,KAAKooe,MAAM3K,YACzB,IAAIxkN,EAAkB,MAAR9iQ,EACVwd,EAAkB,WAARxd,EAEVq8d,KAAa7+c,EAAUqyc,IAC3B,GAAIwM,EAAQ,CACRxye,KAAKmoe,oCAAsC,CAAC,EAC5Cnoe,KAAKkoe,oCAAsC,CAAC,EAG5C,IAAK,IAAIxke,EAAI,EAAGA,GAAK,GAAIA,IAAK,CAC1B,IAAI9C,EAAQ,GAAK8C,EAGZu1Q,EAAUr4Q,IACXZ,KAAKmoe,oCAAoCvne,IAAS,EAGlDZ,KAAKooe,MAAM3K,YAEnB,CAGA,IAAK,IAAI/5d,EAAI,GAAIA,GAAK,GAAIA,IAAK,CAC3B,IAAI9C,EAAQ,GAAK8C,EACjB1D,KAAKkoe,oCAAoCtne,MAAY+yB,EAAU/yB,EACnE,CAIA,IAAI6xe,EAAgB,CAChBzM,GACAC,GACAC,GACAC,GACAC,IAEJC,GAAIjtL,SAASs5L,sBAAsB1ye,KAAKooe,MAAOqK,EAAe,CAAC1M,4BAA6B,GAEhG,MAAO,GAAIpyc,IAAYsyc,GAAgC,CACnD,GAAIjme,KAAKgre,UACL,OAAO,EAIgB,MAAvBhre,KAAKioe,gBACLjoe,KAAKkoe,oCAAoC9B,KAErCntN,EAAU8sN,IACVM,GAAIjtL,SAASu5L,yBAAyB3ye,KAAKooe,MAAO,CAACrC,IAA8B,CAAC/le,KAAKioe,gBAInG,MAAO,GAAIt0c,IAAYuyc,GAA6B,CAChD,GAAIlme,KAAKgre,UACL,OAAO,EAGPhre,KAAKkoe,oCAAoC/B,MAEd,MAAvBnme,KAAKioe,eACL5B,GAAIjtL,SAAS6zL,wBAAwBjte,KAAKooe,MAAO,CAACrC,KAElDM,GAAIjtL,SAAS6zL,wBAAwBjte,KAAKooe,MAAO,IAI7D,MAAO,GAAIz0c,IAAYwyc,GAA+B,CAClD,GAAInme,KAAKgre,UACL,OAAO,EAGPhre,KAAKkoe,oCAAoCjC,KAErChtN,EAAU8sN,IACVM,GAAIjtL,SAASw5L,yBAAyB5ye,KAAKooe,MAAO,CAACrC,IAI/D,KAAO,IAAIpyc,IAAYyyc,GAyDnB,OAAOpme,KAAK4qe,MAAM,oDAAsDj3c,GAzDrB,CACnD,GAAI3zB,KAAKgre,UACL,OAAO,EAGX,KAAM/xN,EAAU8sN,IACZ,OAAO,EAGX/le,KAAKioe,eAAiB,KAGtB,IAAI4K,EAAa7ye,KAAKooe,MAAMzK,aAAa78d,EAAS,GAC9Cgye,EAAiB,IAAI,GACrBC,EAAW,KAEfD,EAAe3rB,SAAS0rB,GACxB,IAAK,IAAInve,EAAI,EAAGA,GAAK,GAAIA,IAAK,CAC1B,IAAIw9C,EAAS,GAAKx9C,EAElB,GAAIu1Q,EAAU/3N,EAAQ,CAElB,IAAI5mC,EAAO,EACP04d,EAAYF,EAAexsB,QAAQ,GAEvChsc,GAAS04d,EAAU,IAAM,GACzB14d,GAAS04d,EAAU,IAAM,GACzB14d,GAAS04d,EAAU,IAAM,EACzB14d,GAAS04d,EAAU,GACnB,IAAI5jV,EAAQ0jV,EAAexsB,QAAQhsc,GAE/B4mC,IAAW6kb,KACXgN,EAAW3jV,EAEnB,CACJ,CAGA,GAFA0jV,EAAe3rB,SAAS,MAEP,OAAb4rB,EAAmB,CACnB,IAAIE,EAAU,GACd,IAAK,IAAIvve,EAAI,EAAGA,EAAIqve,EAASjye,OAAQ4C,IACjCuve,GAAW5ue,OAAOsgB,aAAaoud,EAASrve,IAE5Cqve,EAAWE,EAEXF,EAAWx6B,GAAWw6B,GACjBA,EAASjye,OAAS,GAAM,OAASiye,EAASjxb,OAAOixb,EAASjye,OAAS,KACpEiye,EAAWA,EAAS9me,MAAM,GAAI,IAGlC8me,EAAWA,EAASp+d,QAAQ,OAAQ,MAEpC3U,KAAKylG,cAAc,IAAInkG,YACnB,YACA,CAAEK,OAAQ,CAAEsrF,KAAM8lZ,KAC1B,CACJ,CAEA,CACJ,CACA,OAAO,CACX,CAEA,qBAAAG,GACI,GAAIlze,KAAKooe,MAAMtK,OAAO,qBAAsB,EAAG,GAAM,OAAO,EAC5D99d,KAAKooe,MAAM/K,YAAY,GACvB,IAAIlnd,EAAQnW,KAAKooe,MAAM3K,YACnB38d,EAASd,KAAKooe,MAAM9K,WAExB,GAAIt9d,KAAKooe,MAAMtK,OAAO,sBAAuBh9d,EAAQ,GAAM,OAAO,EAE9DA,EAAS,KACT,GAAS,uBAAyBA,EAAS,uBAC3CA,EAAS,IAGb,MAAM00O,EAAUx1O,KAAKooe,MAAM1K,WAAW58d,GAatC,OAXAd,KAAK0ne,gBAAiB,EAWhBvxd,EAAS,GAAG,IAMlBA,GAAS,EAKTkwd,GAAIjtL,SAAS+5L,YAAYnze,KAAKooe,MAAOjyd,EAAOq/N,IAErC,GAZIx1O,KAAK4qe,MAAM,4BAa1B,CAEA,aAAAwI,GACI,GAAIpze,KAAKooe,MAAMtK,OAAO,0BAA2B,EAAG,GAAM,OAAO,EACjE99d,KAAKooe,MAAM/K,YAAY,GACvB,MAAMgW,EAASrze,KAAKooe,MAAM9K,WACpBgW,EAAStze,KAAKooe,MAAM9K,WAE1B,OAAQgW,GACJ,KAAK,EACD,GAAU,wBACV,MACJ,KAAK,EACDtze,KAAKsne,WAAa+L,EAClB,GAAS,mCAAqCrze,KAAKsne,WAAa,KAChEtne,KAAK4te,eAAe,SAAS,GAC7B,MACJ,QACI5te,KAAK4qe,MAAM,oCAAsC0I,EAAS,KAC1D,MAGR,OAAO,CACX,CAEA,UAAAxF,GACI,IAAIyF,EAOA5vb,EAAO/+B,EACX,OANI2ud,EADAvze,KAAK4oe,KAAKt5Z,MAAQ,EACR,EAEAtvE,KAAKooe,MAAM9K,WAIjBiW,GACJ,KAAK,EAMD,OALA3ud,EAAM5kB,KAAKwze,qBACP5ud,IAAQ5kB,KAAK4ne,2BACbvB,GAAIjtL,SAAS+4L,gBAAgBnye,KAAKooe,OAAO,EAAM,EAAG,EACrBpoe,KAAKu6c,SAAUv6c,KAAKw6c,WAE9C51b,EAEX,KAAK,EACD,OAAO5kB,KAAKsye,yBAEhB,KAAK,EAKD,OAJA,GAAU,QACVtye,KAAKylG,cAAc,IAAInkG,YACnB,OACA,CAAEK,OAAQ,CAAC,MACR,EAEX,KAAK,EACD,OAAO3B,KAAKuye,uBAEhB,KAAK,IAYD,OAXA5ub,GAAS3jD,KAAK2ne,2BACd3ne,KAAK2ne,4BAA6B,EAClC3ne,KAAK4ne,2BAA4B,EAC7Bjkb,IACA3jD,KAAK4ne,2BAA4B,EACjC5ne,KAAKyze,2BACL,GAAS,kCAKN,EAEX,KAAK,IACD,OAAOzze,KAAKkze,wBAEhB,KAAK,IACD,OAAOlze,KAAKoze,gBAEhB,QAGI,OAFApze,KAAK4qe,MAAM,mCAAqC2I,EAAU,KAC1D,GAAU,wBAA0Bvze,KAAKooe,MAAMvK,QAAQ,EAAG,MACnD,EAEnB,CAEA,QAAA4M,GACIzqe,KAAKs6c,WAAY,EAEbt6c,KAAKooe,MAAMjL,MAAQ,GACnBn9d,KAAK2qe,gBAEb,CAEA,kBAAA6I,GACI,GAAwB,IAApBxze,KAAK4oe,KAAKt5Z,MAAa,CACvB,GAAItvE,KAAKooe,MAAMtK,OAAO,aAAc,EAAG,GAAM,OAAO,EAMpD,GALA99d,KAAKooe,MAAM/K,YAAY,GACvBr9d,KAAK4oe,KAAKt5Z,MAAQtvE,KAAKooe,MAAM5K,YAIzBx9d,KAAKqoe,SAAS16Z,UAGd,OAFA3tE,KAAKs6c,WAAY,EACjBt6c,KAAKqoe,SAAS74O,SACP,CAEf,CAEA,MAAOxvP,KAAK4oe,KAAKt5Z,MAAQ,EAAG,CACxB,GAA2B,OAAvBtvE,KAAK4oe,KAAK5od,SAAmB,CAC7B,GAAIhgB,KAAKooe,MAAMtK,OAAO,cAAe,IAAO,OAAO,EAGnD,MAAM4V,EAAM1ze,KAAKooe,MAAMzK,aAAa,IACpC39d,KAAK4oe,KAAK3wd,GAAYy7d,EAAI,IAAM,GAAKA,EAAI,GACzC1ze,KAAK4oe,KAAK1wd,GAAYw7d,EAAI,IAAM,GAAKA,EAAI,GACzC1ze,KAAK4oe,KAAKlzc,OAAYg+c,EAAI,IAAM,GAAKA,EAAI,GACzC1ze,KAAK4oe,KAAKj0b,QAAY++b,EAAI,IAAM,GAAKA,EAAI,GACzC1ze,KAAK4oe,KAAK5od,SAAWuC,UAAUmxd,EAAI,IAAM,KAAOA,EAAI,IAAM,KAC3BA,EAAI,KAAO,GAAKA,EAAI,IAAK,GAC5D,CAEA,IAAK1ze,KAAK2ze,cACN,OAAO,EAGX3ze,KAAK4oe,KAAKt5Z,QACVtvE,KAAK4oe,KAAK5od,SAAW,IACzB,CAIA,OAFAhgB,KAAKqoe,SAASjxZ,QAEP,CACX,CAEA,WAAAu8Z,GACI,OAAQ3ze,KAAK4oe,KAAK5od,UACd,KAAKmgd,GAAUU,uBAEX,OADA7ge,KAAK4oe,KAAKt5Z,MAAQ,GACX,EAEX,KAAK6wZ,GAAUoB,2BACX,OAAOvhe,KAAK4ze,sBAEhB,KAAKzT,GAAUW,qBACX,OAAO9ge,KAAK6ze,gBAEhB,KAAK1T,GAAUY,mCAEX,IACI,MAAM+S,EAAgBhye,SAASC,YAAY,sBAChBH,IAAvBkye,EAAc7we,OACdjD,KAAKgoe,2BAA4B,EAEzC,CAAE,MAAOzge,IAET,CACA,OAAO,EAEX,KAAK44d,GAAUa,0BACX,OAAOhhe,KAAK+ze,qBAEhB,KAAK5T,GAAUS,0BAEX,OADA5ge,KAAKgye,QAAQhye,KAAK4oe,KAAKlzc,MAAO11B,KAAK4oe,KAAKj0b,SACjC,EAEX,KAAKwrb,GAAUc,kCACX,OAAOjhe,KAAKg0e,6BAEhB,QACI,OAAOh0e,KAAKi0e,kBAExB,CAEA,mBAAAL,GACI,MAAMnY,EAAOz7d,KAAK4oe,KAAK3wd,EACjByjd,EAAO17d,KAAK4oe,KAAK1wd,EACjB67G,EAAI/zH,KAAK4oe,KAAKlzc,MACd8lC,EAAIx7D,KAAK4oe,KAAKj0b,OACpB,GAAI30C,KAAKooe,MAAMtK,OAAO,yBAA0B,GAC5C,OAAO,EAGX,MAAMoW,EAAal0e,KAAKooe,MAAM9K,WAI9B,IAAI9lW,EAFJx3H,KAAKooe,MAAM9K,WAGX,MAAM6W,EAAgB,EAGtB,GAAkB,GAAdD,EAAiB,CAGjB,MAAME,GAAa,IAGnB,GAFA58W,EAAO,IAAI1vH,MAAMisH,EAAIv4D,EAAI24a,GAErBn0e,KAAKooe,MAAMtK,OAAO,iCACC/pW,EAAIv4D,EAAI24a,EAAiB,EAAG,GAC/C,OAAO,EAGX,IAAIE,EAAU,IAAIvse,MAAMisH,EAAIv4D,GAC5B,IAAK,IAAI84a,EAAQ,EAAGA,EAASvgX,EAAIv4D,EAAI84a,IACjCD,EAAQC,GAASt0e,KAAKooe,MAAM3K,YAGhC,IAAI8W,EAAU,IAAIzse,MAAMisH,EAAIv4D,GAC5B,IAAK,IAAI84a,EAAQ,EAAGA,EAASvgX,EAAIv4D,EAAI84a,IACjCC,EAAQD,GAASt0e,KAAKooe,MAAM3K,YAGhC,IAAK,IAAI6W,EAAQ,EAAGA,EAASvgX,EAAIv4D,EAAI84a,IACjC,GAAsB,GAAlBD,EAAQC,GAAa,CAErB,IAAIE,EAAMD,EAAQD,GACdjoe,EAAMmoe,GAAO,EAAK,IAClB15b,EAAM05b,GAAO,GAAK,IAClBzre,EAAMyre,GAAO,GAAK,IAEtBh9W,EAAM88W,EAAQH,GAAuB9ne,EACrCmrH,EAAM88W,EAAQH,EAAiB,GAAMr5b,EACrC08E,EAAM88W,EAAQH,EAAiB,GAAMpre,EACrCyuH,EAAM88W,EAAQH,EAAiB,GAAM,GAEzC,MAAYE,EAAQC,GAASF,IAClBA,EAEe,GAAlBG,EAAQD,IAER98W,EAAM88W,EAAQH,GAAuB,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,IAE7BI,EAAQD,GAIhB98W,EAAM88W,EAAQH,GAAuB,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,MAYzC38W,EAAM88W,EAAQH,GAAuB,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,EACrC38W,EAAM88W,EAAQH,EAAiB,GAAM,IAKjD,KAAO,IAAkB,GAAdD,EAoBP,OAFA,GAAS,2CACGA,EAAa,YAClB,EAnBP,GAAIl0e,KAAKooe,MAAMtK,OAAO,+BACC/pW,EAAIv4D,EAAI,EAAI,GAC/B,OAAO,EAGXg8D,EAAO,IAAI1vH,MAAMisH,EAAIv4D,EAAI24a,GAEzB,IAAK,IAAIG,EAAQ,EAAGA,EAASvgX,EAAIv4D,EAAI84a,IAAS,CAC1C,IAAI9zd,EAAOxgB,KAAKooe,MAAM3K,YAEtBjmW,EAAc,EAAR88W,GAAmB9zd,GAAQ,GAAK,IACtCg3G,EAAc,EAAR88W,EAAa,GAAM9zd,GAAQ,GAAK,IACtCg3G,EAAc,EAAR88W,EAAa,GAAM9zd,GAAQ,EAAI,IACrCg3G,EAAc,EAAR88W,EAAa,GAAa,IAAP9zd,CAC7B,CAMJ,CAIA,OAFAxgB,KAAKy0e,cAAcj9W,EAAMikW,EAAMC,EAAM3nW,EAAGv4D,IAEjC,CACX,CAEA,aAAAq4a,GACI,MAAMpY,EAAOz7d,KAAK4oe,KAAK3wd,EACjByjd,EAAO17d,KAAK4oe,KAAK1wd,EACjB67G,EAAI/zH,KAAK4oe,KAAKlzc,MACd8lC,EAAIx7D,KAAK4oe,KAAKj0b,OAEd+/b,EAAe3gX,EAAIv4D,EAAI,EACvBm5a,EAAarye,KAAK4uF,KAAK6iC,EAAI,GAAKv4D,EAEtC,IAAIz2C,EAAQ2vd,EAAeC,EAC3B,GAAI30e,KAAKooe,MAAMtK,OAAO,kBAAmB/4c,GACrC,OAAO,EAIX,MAAMk9c,EAASjie,KAAKooe,MAAMzK,aAAa+W,GACjCvyB,EAAOnid,KAAKooe,MAAMzK,aAAagX,GACrC,IAAIn9W,EAAO,IAAIv+G,WAAW86G,EAAIv4D,EAAI,GAE9Bo5a,EAAS,EACb,IAAK,IAAI18d,EAAI,EAAGA,EAAIsjD,EAAGtjD,IACnB,IAAK,IAAID,EAAI,EAAGA,EAAI87G,EAAG97G,IAAK,CACxB,IAAI48d,EAAU38d,EAAI5V,KAAK4uF,KAAK6iC,EAAI,GAAKzxH,KAAKC,MAAM0V,EAAI,GAChDykD,EAASylZ,EAAK0yB,IAAa58d,EAAI,EAAM,IAAO,IAAM,EACtDu/G,EAAKo9W,GAAc3S,EAAO2S,EAAS,GACnCp9W,EAAKo9W,EAAS,GAAK3S,EAAO2S,EAAS,GACnCp9W,EAAKo9W,EAAS,GAAK3S,EAAO2S,GAC1Bp9W,EAAKo9W,EAAS,GAAKl4a,EACnBk4a,GAAU,CACd,CAKJ,OAFA50e,KAAKy0e,cAAcj9W,EAAMikW,EAAMC,EAAM3nW,EAAGv4D,IAEjC,CACX,CAEA,kBAAAu4a,GACI,GAAI/ze,KAAKooe,MAAMtK,OAAO,cAAe,GACjC,OAAO,EAGX,IAAIh9d,EAASd,KAAKooe,MAAM3K,YAExB,GAAIz9d,KAAKooe,MAAMtK,OAAO,cAAeh9d,EAAQ,GACzC,OAAO,EAGX,IAAIkI,EAAOhJ,KAAKooe,MAAM1K,WAAW58d,GAKjC,OAJAkI,EAAOuvc,GAAWvvc,GAAM,GAExBhJ,KAAKote,gBAAgBpke,IAEd,CACX,CAEA,0BAAAgre,GACI,GAAIh0e,KAAKooe,MAAMtK,OAAO,sBAAuB,GACzC,OAAO,EAGX,MAAMgX,EAAkB90e,KAAKooe,MAAMhL,UAEnC,IAAIr4c,EAAQ,EAAuB,GAAlB+vd,EACjB,GAAI90e,KAAKooe,MAAMtK,OAAO,sBAAuB/4c,GACzC,OAAO,EAGX,MAAMgwd,GAAe/0e,KAAK6ne,wBAC1B7ne,KAAK6ne,yBAA0B,EAM3BkN,GACA/0e,KAAK8re,uBAGT9re,KAAKooe,MAAM/K,YAAY,GACvBr9d,KAAKooe,MAAM/K,YAAY,GAEvB,IAAK,IAAI35d,EAAI,EAAGA,EAAIoxe,EAAiBpxe,GAAK,EAE5B,IAANA,GACA1D,KAAK8ne,UAAY9ne,KAAKooe,MAAMzK,aAAa,GACzC39d,KAAKooe,MAAM/K,YAAY,GACvBr9d,KAAKooe,MAAM/K,YAAY,GACvBr9d,KAAKooe,MAAM/K,YAAY,GACvBr9d,KAAKooe,MAAM/K,YAAY,GACvBr9d,KAAK+ne,aAAe/ne,KAAKooe,MAAMzK,aAAa,IAE5C39d,KAAKooe,MAAM/K,YAAY,IAa/B,GAAoB,IAAhBr9d,KAAK4oe,KAAK3wd,GAA2B,IAAhBjY,KAAK4oe,KAAK1wd,EAAS,CACxC,IAAIhP,EAAM,GAEV,OAAQlJ,KAAK4oe,KAAK1wd,GACd,KAAK,EACDhP,EAAM,wCACN,MACJ,KAAK,EACDA,EAAM,mBACN,MACJ,KAAK,EACDA,EAAM,wBACN,MACJ,QACIA,EAAM,iBACN,MAER,GAAS,6CACEA,EACf,MACIlJ,KAAKgye,QAAQhye,KAAK4oe,KAAKlzc,MAAO11B,KAAK4oe,KAAKj0b,QAG5C,OAAO,CACX,CAEA,eAAAs/b,GACI,IAAIv6N,EAAU15Q,KAAK2oe,UAAU3oe,KAAK4oe,KAAK5od,UACvC,IAAK05P,EAGD,OAFA15Q,KAAK4qe,MAAM,mCACA5qe,KAAK4oe,KAAK5od,SAAW,MACzB,EAGX,IACI,OAAO05P,EAAQioN,WAAW3he,KAAK4oe,KAAK3wd,EAAGjY,KAAK4oe,KAAK1wd,EACvBlY,KAAK4oe,KAAKlzc,MAAO11B,KAAK4oe,KAAKj0b,OAC3B30C,KAAKooe,MAAOpoe,KAAKqoe,SACjBroe,KAAKiye,SACnC,CAAE,MAAO1qe,IAEL,OADAvH,KAAK4qe,MAAM,wBAA0Brje,KAC9B,CACX,CACJ,CAEA,wBAAAkse,GACSzze,KAAK4ne,2BAEVvB,GAAIjtL,SAAS47L,wBAAwBh1e,KAAKooe,OAAO,EAAM,EAAG,EACrBpoe,KAAKu6c,SAAUv6c,KAAKw6c,UAC7D,CAEA,OAAAw3B,CAAQt8c,EAAOif,GACX30C,KAAKu6c,SAAW7kb,EAChB11B,KAAKw6c,UAAY7la,EAEjB30C,KAAKqoe,SAASn4Z,OAAOlwE,KAAKu6c,SAAUv6c,KAAKw6c,WAGzCx6c,KAAK0re,cACL1re,KAAK4re,eAEL5re,KAAKyze,0BACT,CAEA,MAAA/G,CAAO9/H,EAAK/6E,GACJ7xR,KAAKsne,WAAa16H,IACtB,GAAS,yBAA2B/6E,EAAK,aAAe+6E,EAAM,KAC9Dy5H,GAAIjtL,SAAS67L,MAAMj1e,KAAKooe,MAAOx7H,EAAK/6E,GACxC,CAEA,aAAA4iN,CAAcj9W,EAAMikW,EAAMC,EAAM3nW,EAAGv4D,GAC/Bx7D,KAAKuqe,aAAe,CAChB2K,WAAY19W,EACZikW,KAAMA,EAAMC,KAAMA,EAAM3nW,EAAGA,EAAGv4D,EAAGA,GAErCx7D,KAAK+re,gBACT,CAEA,oBAAAoJ,GAEI,IAAKn1e,KAAKmre,eAEN,OAAO,EAOX,IAAK,IAAIzne,EAAI,EAAGA,EAAI1D,KAAKuqe,aAAa2K,WAAWp0e,OAAQ4C,GAAK,EAC1D,GAAI1D,KAAKuqe,aAAa2K,WAAWxxe,GAC7B,OAAO,EAMf,OAAO,CACX,CAEA,cAAAqoe,GACI,GAAiC,eAA7B/re,KAAK8me,qBACwB,cAA7B9me,KAAK8me,oBACL,OAEJ,MAAM/gc,EAAQ/lC,KAAKm1e,uBAAyB9O,GAAImE,QAAQ4K,IAAMp1e,KAAKuqe,aACnEvqe,KAAKsqe,QAAQzsZ,OAAO93C,EAAMmvc,WACNnvc,EAAM01b,KAAM11b,EAAM21b,KAClB31b,EAAMguF,EAAGhuF,EAAMy1B,EAEvC,CAEA,aAAO20a,CAAOxjb,EAAUujb,GACpB,MAAMmF,EAAgB1ob,EAAS/gD,MAAM,IAAIpJ,KAAI6mB,GAAKA,EAAExR,WAAW,KAC/D,OAAO,IAAK+hL,GAAIy7S,GAAgBh+S,QAAQ64S,EAC5C,EAIJ7J,GAAIjtL,SAAW,CACX,QAAA2zL,CAASnL,EAAM/rB,EAAQwf,GACnB,MAAMx/G,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpBjnH,EAAK98V,GAAU,EACf88V,EAAK98V,EAAS,GAAKs8c,EAEnBx/G,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK,EAEnB88V,EAAK98V,EAAS,GAAM88b,GAAU,GAC9BhgG,EAAK98V,EAAS,GAAM88b,GAAU,GAC9BhgG,EAAK98V,EAAS,GAAM88b,GAAU,EAC9BhgG,EAAK98V,EAAS,GAAK88b,EAEnB+rB,EAAK9E,QAAU,EACf8E,EAAKpyO,OACT,EAEA,oBAAAs9O,CAAqBlL,EAAM/rB,EAAQwf,EAAMigB,GACrC,SAASC,EAAcC,GACnB,MAAMC,EAAaH,GAAW,EACxBI,EAAuB,IAAVJ,EACnB,OAAkB,MAAdG,GAAsBC,EAAY,IACf,IAAZA,EAEJF,CACX,CAEA,MAAM3/H,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpBjnH,EAAK98V,GAAU,IACf88V,EAAK98V,EAAS,GAAK,EAEnB88V,EAAK98V,EAAS,GAAMs8c,GAAQ,EAC5Bx/G,EAAK98V,EAAS,GAAKs8c,EAEnBx/G,EAAK98V,EAAS,GAAM88b,GAAU,GAC9BhgG,EAAK98V,EAAS,GAAM88b,GAAU,GAC9BhgG,EAAK98V,EAAS,GAAM88b,GAAU,EAC9BhgG,EAAK98V,EAAS,GAAK88b,EAEnB,MAAM8/B,EAAaJ,EAAcD,GAEjCz/H,EAAK98V,EAAS,GAAM48d,GAAc,GAClC9/H,EAAK98V,EAAS,GAAM48d,GAAc,GAClC9/H,EAAK98V,EAAS,IAAO48d,GAAc,EACnC9/H,EAAK98V,EAAS,IAAM48d,EAEpB/T,EAAK9E,QAAU,GACf8E,EAAKpyO,OACT,EAEA,YAAA4+O,CAAaxM,EAAM3pd,EAAGC,EAAGiqc,GACrB,MAAMtsG,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpBjnH,EAAK98V,GAAU,EAEf88V,EAAK98V,EAAS,GAAKopc,EAEnBtsG,EAAK98V,EAAS,GAAKd,GAAK,EACxB49V,EAAK98V,EAAS,GAAKd,EAEnB49V,EAAK98V,EAAS,GAAKb,GAAK,EACxB29V,EAAK98V,EAAS,GAAKb,EAEnB0pd,EAAK9E,QAAU,EACf8E,EAAKpyO,OACT,EAGA,4BAAAomP,CAA6Bjid,EAASslP,GAClC,IAAIz4P,EAAO,IAAIvH,WAAW,GACtB48d,EAAa,EACbC,EAAa,EAEjB,IAAK,IAAIpye,EAAI,EAAGA,EAAIiwB,EAAQ7yB,OAAQ4C,IAChCoye,GAAcnid,EAAQjwB,GAG1B,IAAK,IAAIA,EAAI,EAAGA,EAAIu1Q,EAAQn4Q,OAAQ4C,IAChCmye,GAAc58N,EAAQv1Q,GAQ1B,OALA8c,EAAK,GAAKs1d,GAAc,GACxBt1d,EAAK,GAAK,EACVA,EAAK,GAAK,EACVA,EAAK,GAAKq1d,EAEHr1d,CACX,EAEA,wBAAAmyd,CAAyB/Q,EAAM3oN,EAASo7M,GAEpC,IAAI0hB,EAAW,IAAI5hB,GACf6hB,EAAgB,GAEpB,IAAK,IAAItye,EAAI,EAAGA,EAAIu1Q,EAAQn4Q,OAAQ4C,IAAK,CAErC,GAAIu1Q,EAAQv1Q,IAAMqie,GACd,MAAM,IAAI/ie,MAAM,8DAIpBqxd,EAAO3wd,GAAK2wd,EAAO3wd,GAAGiR,QAAQ,eAAgB,QAG9C,IAAIs4E,EAAOyrX,GAAW2b,EAAO3wd,GAAK,MAElCsye,EAAc7se,KAAO8jF,EAAKnsF,QAAU,GAAM,IACrBmsF,EAAKnsF,QAAU,GAAM,IACrBmsF,EAAKnsF,QAAW,EAAK,IACP,IAAdmsF,EAAKnsF,QAE1B,IAAK,IAAIohB,EAAI,EAAGA,EAAI+qE,EAAKnsF,OAAQohB,IAC7B8zd,EAAc7se,KAAK8jF,EAAKp1E,WAAWqK,GAE3C,CAEA,IAAI+zd,EAAeF,EAAShiB,QAAQ,IAAI96c,WAAW+8d,IAG/Cx1d,EAAO,IAAIvH,WAAW,EAAIg9d,EAAan1e,QAC3C0f,EAAKnS,IAAIg4d,GAAIjtL,SAASw8L,6BAA6B,CAACxP,IACDntN,IACnDz4P,EAAKnS,IAAI4ne,EAAc,GAEvB5P,GAAIjtL,SAAS8zL,cAActL,EAAMphd,GAAM,EAC3C,EAEA,uBAAAysd,CAAwBrL,EAAM3oN,GAC1B,IAAI9iQ,EAAQkwd,GAAIjtL,SAASw8L,6BAA6B,CAACzP,IACDltN,GACtDotN,GAAIjtL,SAAS8zL,cAActL,EAAMzrd,GAAO,EAC5C,EAEA,wBAAAy8d,CAAyBhR,EAAM3oN,GAC3B,IAAI9iQ,EAAQkwd,GAAIjtL,SAASw8L,6BAA6B,CAAC3P,IACDhtN,GACtDotN,GAAIjtL,SAAS8zL,cAActL,EAAMzrd,GAAO,EAC5C,EAEA,qBAAAu8d,CAAsB9Q,EAAMjuc,EAASslP,GACjC,IAAIi9N,EAAa91e,OAAO8C,KAAK+1Q,GACzBz4P,EAAQ,IAAIvH,WAAW,EAAK,EAAIi9d,EAAWp1e,QAE/Co1e,EAAW1ze,KAAIyV,GAAKsK,SAAStK,KAC7Bi+d,EAAWjqc,MAAK,CAACnjC,EAAGC,IAAOD,EAAIC,IAE/ByX,EAAKnS,IAAIg4d,GAAIjtL,SAASw8L,6BAA6Bjid,EAAS,KAE5D,IAAIwid,EAAa,EACjB,IAAK,IAAIzye,EAAI,EAAGA,EAAIwye,EAAWp1e,OAAQ4C,IACnC8c,EAAK21d,GAAkBl9N,EAAQi9N,EAAWxye,KAAO,GACjD8c,EAAK21d,EAAa,GAAKl9N,EAAQi9N,EAAWxye,KAAO,GACjD8c,EAAK21d,EAAa,GAAKl9N,EAAQi9N,EAAWxye,KAAO,EACjD8c,EAAK21d,EAAa,GAAKl9N,EAAQi9N,EAAWxye,IAAO,EAEjDyye,GAAc,EACd31d,EAAK,IAAO,GAAK01d,EAAWxye,GAGhC2ie,GAAIjtL,SAAS8zL,cAActL,EAAMphd,GAAM,EAC3C,EAEA,aAAA0sd,CAActL,EAAMphd,EAAM41d,GAAW,GACjC,MAAMvgI,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAQpB,IAAIh8d,EANJ+0W,EAAK98V,GAAU,EAEf88V,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK,EAIfjY,EADAs1e,EACSh+B,IAAiB53b,EAAK1f,QAEtB0f,EAAK1f,OAGlB+0W,EAAK98V,EAAS,GAAKjY,GAAU,GAC7B+0W,EAAK98V,EAAS,GAAKjY,GAAU,GAC7B+0W,EAAK98V,EAAS,GAAKjY,GAAU,EAC7B+0W,EAAK98V,EAAS,GAAKjY,EAEnB8ge,EAAK9E,QAAU,EAIf,IAAIuZ,EAAa,EAEbj0d,EAAY5B,EAAK1f,OACrB,MAAOshB,EAAY,EAAG,CAElB,IAAIk0d,EAAYh0e,KAAK6V,IAAIiK,EAAYw/c,EAAK/E,cAAgB+E,EAAK9E,QAC/D,IAAK,IAAIp5d,EAAI,EAAGA,EAAI4ye,EAAW5ye,IAC3BmyW,EAAK+rH,EAAK9E,OAASp5d,GAAK8c,EAAK61d,EAAa3ye,GAG9Ck+d,EAAK9E,QAAUwZ,EACf1U,EAAKpyO,QAELptO,GAAak0d,EACbD,GAAcC,CAClB,CAEJ,EAEA,cAAA5I,CAAe9L,EAAMlsc,EAAOif,EAAQhyC,EAAIwT,GACpC,MAAM0/V,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpBjnH,EAAK98V,GAAU,IACf88V,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK2c,GAAS,EAC5BmgV,EAAK98V,EAAS,GAAK2c,EACnBmgV,EAAK98V,EAAS,GAAK47B,GAAU,EAC7BkhU,EAAK98V,EAAS,GAAK47B,EAEnBkhU,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK,EAGnB88V,EAAK98V,EAAS,GAAKpW,GAAM,GACzBkzW,EAAK98V,EAAS,GAAKpW,GAAM,GACzBkzW,EAAK98V,EAAS,IAAMpW,GAAM,EAC1BkzW,EAAK98V,EAAS,IAAMpW,EACpBkzW,EAAK98V,EAAS,IAAM,EACpB88V,EAAK98V,EAAS,IAAM,EACpB88V,EAAK98V,EAAS,IAAM,EACpB88V,EAAK98V,EAAS,IAAM,EACpB88V,EAAK98V,EAAS,IAAM2c,GAAS,EAC7BmgV,EAAK98V,EAAS,IAAM2c,EACpBmgV,EAAK98V,EAAS,IAAM47B,GAAU,EAC9BkhU,EAAK98V,EAAS,IAAM47B,EACpBkhU,EAAK98V,EAAS,IAAM5C,GAAS,GAC7B0/V,EAAK98V,EAAS,IAAM5C,GAAS,GAC7B0/V,EAAK98V,EAAS,IAAM5C,GAAS,EAC7B0/V,EAAK98V,EAAS,IAAM5C,EAEpByrd,EAAK9E,QAAU,GACf8E,EAAKpyO,OACT,EAEA,WAAA2jP,CAAYvR,EAAMzrd,EAAOq/N,GACrB,MAAMqgI,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpBjnH,EAAK98V,GAAU,IAEf88V,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK,EAEnB88V,EAAK98V,EAAS,GAAK5C,GAAS,GAC5B0/V,EAAK98V,EAAS,GAAK5C,GAAS,GAC5B0/V,EAAK98V,EAAS,GAAK5C,GAAS,EAC5B0/V,EAAK98V,EAAS,GAAK5C,EAEnB,MAAMX,EAAIggO,EAAQ10O,OAElB+0W,EAAK98V,EAAS,GAAKvD,EAEnB,IAAK,IAAI9R,EAAI,EAAGA,EAAI8R,EAAG9R,IACnBmyW,EAAK98V,EAAS,EAAIrV,GAAK8xO,EAAQ39N,WAAWnU,GAG9Ck+d,EAAK9E,QAAU,EAAItnd,EACnBosd,EAAKpyO,OACT,EAEA,uBAAAwlP,CAAwBpT,EAAM7mJ,EAAQ9iU,EAAGC,EAAGwd,EAAOif,GAC/C,MAAMkhU,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpBjnH,EAAK98V,GAAU,IACf88V,EAAK98V,EAAS,GAAKgiU,EAEnB86B,EAAK98V,EAAS,GAAKd,GAAK,EACxB49V,EAAK98V,EAAS,GAAKd,EACnB49V,EAAK98V,EAAS,GAAKb,GAAK,EACxB29V,EAAK98V,EAAS,GAAKb,EACnB29V,EAAK98V,EAAS,GAAK2c,GAAS,EAC5BmgV,EAAK98V,EAAS,GAAK2c,EACnBmgV,EAAK98V,EAAS,GAAK47B,GAAU,EAC7BkhU,EAAK98V,EAAS,GAAK47B,EAEnBitb,EAAK9E,QAAU,GACf8E,EAAKpyO,OACT,EAEA,WAAA0iP,CAAYtQ,EAAMjxd,EAAOyge,GACrB,MAAMv7H,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpB,IAAIgI,EAGAA,EADAn0d,EAAQ,GACF,GACCA,EAAQ,EACT,GAEA,EAGV,MAAM4/K,EAAOjuL,KAAKC,MAAMoO,EAAM,GAE9BklW,EAAK98V,GAAU,EAEf88V,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAK,EAEnB88V,EAAK98V,EAAS,GAAK+rd,EACnBjvH,EAAK98V,EAAS,GAAKpI,EACnBklW,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,GAAKq4d,EAAY,EAAI,EAEnCv7H,EAAK98V,EAAS,GAAK,EACnB88V,EAAK98V,EAAS,IAAM,GAAKw3K,GAAQ,EAEjCslL,EAAK98V,EAAS,IAAM,EACpB88V,EAAK98V,EAAS,KAAO,GAAKw3K,GAAQ,EAElCslL,EAAK98V,EAAS,IAAM,EACpB88V,EAAK98V,EAAS,KAAO,GAAKw3K,GAAQ,EAElCslL,EAAK98V,EAAS,IAAa,EAAPw3K,EACpBslL,EAAK98V,EAAS,IAAa,EAAPw3K,EACpBslL,EAAK98V,EAAS,IAAa,EAAPw3K,EAEpBslL,EAAK98V,EAAS,IAAM,EACpB88V,EAAK98V,EAAS,IAAM,EACpB88V,EAAK98V,EAAS,IAAM,EAEpB6od,EAAK9E,QAAU,GACf8E,EAAKpyO,OACT,EAEA,eAAA6iP,CAAgBzQ,EAAMzB,GAClB,MAAMtqH,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpBjnH,EAAK98V,GAAU,EACf88V,EAAK98V,EAAS,GAAK,EAEnB88V,EAAK98V,EAAS,GAAKond,EAAUr/d,QAAU,EACvC+0W,EAAK98V,EAAS,GAAKond,EAAUr/d,OAE7B,IAAIohB,EAAInJ,EAAS,EACjB,IAAK,IAAIrV,EAAI,EAAGA,EAAIy8d,EAAUr/d,OAAQ4C,IAAK,CACvC,MAAMuxL,EAAMkrS,EAAUz8d,GACtBmyW,EAAK3zV,GAAK+yK,GAAO,GACjB4gL,EAAK3zV,EAAI,GAAK+yK,GAAO,GACrB4gL,EAAK3zV,EAAI,GAAK+yK,GAAO,EACrB4gL,EAAK3zV,EAAI,GAAK+yK,EAEd/yK,GAAK,CACT,CAEA0/c,EAAK9E,QAAU56c,EAAInJ,EACnB6od,EAAKpyO,OACT,EAEA,eAAA2iP,CAAgBvQ,EAAMhlL,EAAa3kS,EAAGC,EAAG67G,EAAGv4D,GACxC,MAAMq6S,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEF,qBAAR,IAAuB7kd,EAAI,GACnB,qBAAR,IAAuBC,EAAI,GAErC29V,EAAK98V,GAAU,EACf88V,EAAK98V,EAAS,GAAK6jS,EAAc,EAAI,EAErCi5D,EAAK98V,EAAS,GAAMd,GAAK,EAAK,IAC9B49V,EAAK98V,EAAS,GAAS,IAAJd,EAEnB49V,EAAK98V,EAAS,GAAMb,GAAK,EAAK,IAC9B29V,EAAK98V,EAAS,GAAS,IAAJb,EAEnB29V,EAAK98V,EAAS,GAAMg7G,GAAK,EAAK,IAC9B8hP,EAAK98V,EAAS,GAAS,IAAJg7G,EAEnB8hP,EAAK98V,EAAS,GAAMyiD,GAAK,EAAK,IAC9Bq6S,EAAK98V,EAAS,GAAS,IAAJyiD,EAEnBoma,EAAK9E,QAAU,GACf8E,EAAKpyO,OACT,EAEA,KAAAylP,CAAMrT,EAAMh1H,EAAK/6E,GACb,MAAMgkF,EAAO+rH,EAAK7E,IACZhkd,EAAS6od,EAAK9E,OAEpBjnH,EAAK98V,GAAU,IACf88V,EAAK98V,EAAS,GAAK,EAEnB88V,EAAK98V,EAAS,GAAK6zV,EACnBiJ,EAAK98V,EAAS,GAAK84Q,EAEnB+vM,EAAK9E,QAAU,EACf8E,EAAKpyO,OACT,GAGJ62O,GAAImE,QAAU,CACV/oX,KAAM,CACFyzX,WAAY,IAAIj8d,WAChB86G,EAAG,EAAGv4D,EAAG,EACTiga,KAAM,EAAGC,KAAM,GAGnB0Z,IAAK,CAEDF,WAAY,IAAIj8d,WAAW,CACvB,IAAK,IAAK,IAAK,IAAO,EAAK,EAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IACrD,EAAK,EAAK,EAAG,IAAO,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,EAAI,IACvD,IAAK,IAAK,IAAK,IAAO,EAAK,EAAK,EAAG,IAAK,IAAK,IAAK,IAAK,MAG3D86G,EAAG,EAAGv4D,EAAG,EACTiga,KAAM,EAAGC,KAAM,IjC53FvB,QACEj4d,MAAO,CACLggC,IAAK,CACH7uB,KAASvQ,OACT2xB,QAAS,KAIb8pC,WAAY,CAAEmnX,WAAUA,GAExBzma,IAAAA,GACE,MAAO,CACL+1d,IAAmB,KACnBx+B,WAAmB,EACnBC,cAAmB,EACnBw+B,eAAmB,IACnBv+B,cAAmB,EACnBE,kBAAmB,GACnBD,WAAmB,EACnBnga,WAAmB,KAEvB,EAEAgI,OAAAA,GACE//C,KAAKk4B,WAAU,KACbl4B,KAAK8tb,SAAS,GAElB,EAEA7tY,aAAAA,GACEjgD,KAAKk/C,cACP,EAEAlnB,QAAS,CACP81Z,OAAAA,GACE,MAAMyoD,EAAM,IAAIlQ,GAAIrme,KAAKo4B,MAAMgqF,KAAMpiH,KAAKyjC,KAE1C8yc,EAAIh5b,iBAAiB,WAAW,KAC9Bv9C,KAAKk/C,eAELl/C,KAAK+3c,WAAY,EACjB/3c,KAAKk4c,WAAa,EAClBl4c,KAAKi4c,cAAe,CAAK,IAG3Bs+B,EAAIh5b,iBAAiB,cAAex6C,IAClC/C,KAAKk/C,eAELl/C,KAAKg4c,cAAe,EACpBh4c,KAAKu2e,IAAM,KACXv2e,KAAK2ub,WAAW,IAGlB3ub,KAAKu2e,IAAMA,CACb,EAEA5nD,SAAAA,GACE,GAAI3ub,KAAKk4c,YAAcl4c,KAAKm4c,kBAK1B,OAJAn4c,KAAKi4c,cAAe,EACpBj4c,KAAK+3c,WAAY,OACjB/3c,KAAKg4c,cAAe,GAKtBh4c,KAAKk4c,YAAc,EACnBl4c,KAAKi4c,cAAe,EACpBj4c,KAAK+3c,WAAY,EACjB/3c,KAAKg4c,cAAe,EAEpBh4c,KAAK+3C,WAAaA,YAAW,KAC3B/3C,KAAK8tb,SAAS,GACb9tb,KAAKw2e,eACV,EAEAt3b,YAAAA,GACMl/C,KAAK+3C,YACPmH,aAAal/C,KAAK+3C,WAEtB,EAEAqG,UAAAA,GACEp+C,KAAKu2e,IAAIn4b,YACX,EAEAq4b,aAAAA,GACEz2e,KAAKu2e,IAAIhK,gBACX,EAEAC,OAAAA,CAAQ32B,EAAQ5yc,EAAMoyd,GACpBr1d,KAAKu2e,IAAI/J,QAAQ32B,EAAQ5yc,EAAMoyd,EACjC,I,SkC1HJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UC2CMrnb,MAAM,sD,GApDZ,Y,GAAA,Y,iJAoDED,EAAAA,EAAAA,oBAkCK,KAlCLa,GAkCK,uBAjCHb,EAAAA,EAAAA,oBAgCKmrB,EAAAA,SAAA,MArFTC,EAAAA,EAAAA,YAsD4BzrB,EAAA03D,OAtD5B,CAsDcxpF,EAAM9X,M,kBADhBiqC,EAAAA,EAAAA,oBAgCK,MA9BFjqC,IAAKA,GAAG,CAGC8X,EAAK1Y,OAAI,kBADnB22D,EAAAA,EAAAA,aAqBagnC,EAAA,CA9EnB/8F,IAAA,EA2DQyoE,UAAU,cACV07S,QAAQ,QACP9xU,WAAW,G,CAQDi2B,QAAM9J,EAAAA,EAAAA,UACf,IAME,EANFH,EAAAA,EAAAA,aAME+vX,EAAA,CALC9sV,MAAOxpF,EAAK1Y,KACZ8vB,KAAM0a,EAAA1a,KACNjnB,IAAK2hC,EAAA3hC,IAAG,EACRomb,SAAQtkZ,EAAA6oc,QACRtkD,WAAWvkZ,EAAAwkZ,U,0DA3ExBr8Z,SAAAssC,EAAAA,EAAAA,UA+DQ,IAIwB,EAJxBnzB,EAAAA,EAAAA,oBAIwB,QAHrBnB,OAhEXC,EAAAA,EAAAA,gBAAA,EAAA4qB,KAgE0BhrB,EAAA8oc,cAAc7ye,EAAK4pC,EAAA3hC,MAC7B,cACL0jC,QAAK+pB,GAAE3rB,EAAA6oc,QAAQ,CAAE5ye,MAAGiI,IAAE2hC,EAAA3hC,Q,qBACrB6P,EAAKsY,OAAK,GAnEtB2a,OAAAgW,EAAA,G,2BAgFM9W,EAAAA,EAAAA,oBAIwB,QApF9BjqC,IAAA,EAkFQkqC,MAAM,YACLyB,QAAK+pB,GAAE3rB,EAAA+oc,SAAS9ye,EAAK4pC,EAAA3hC,O,qBACpB6P,EAAKsY,OAAK,EApFpB4a,U,QACA,QACE9lC,KAAM,mBAEN+sB,MAAO,CAAC,YAAa,UAErBtyB,MAAO,CACL2hG,MAAO,CACLxwF,KAAUxU,OACVi2B,UAAU,EACVL,QAAUA,KACD,CAAC,IAIZhD,KAAM,CACJpe,KAAU9M,MACVuuB,UAAU,EACVL,QAAUA,IACD,IAIXjqB,IAAK,CACH6I,KAAUzS,OACVk0B,UAAU,EACVL,QAAU,IAIdgC,QAAS,CACP4+c,QAAAA,CAAS9ye,EAAKiI,GACZ/L,KAAK02e,QAAQ,CAAE5ye,MAAKiI,QACpB/L,KAAK+3B,MAAM,YACb,EAEA2+c,OAAAA,EAAQ,IAAE5ye,EAAG,IAAEiI,IACb/L,KAAK+3B,MAAM,SAAU,CAAEj0B,MAAKiI,OAC9B,EAEAsmb,QAAAA,GACEryb,KAAK+3B,MAAM,YACb,EAEA4+c,aAAAA,CAAc7ye,EAAKiI,GACjB,OAAO/L,KAAKgzB,KAAKjnB,KAASjI,CAC5B,I,SCvCJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UC4KWkqC,MAAM,O,IACJA,MAAM,e,IAMRA,MAAM,O,IACJA,MAAM,e,GA7LnB,a,IAoNWA,MAAM,wB,IAGPA,MAAM,qB,IAGHA,MAAM,qB,IAYRA,MAAM,W,kPA1Df6rB,EAAAA,EAAAA,aAuEgBg9a,EAAA,CAtEd7te,KAAK,qBACJ0sB,MAAO,K,CAEG4Z,OAAKgzB,EAAAA,EAAAA,UACd,IAAoE,EAApEH,EAAAA,EAAAA,aAAoE4b,EAAA,CAAjEvjE,EAAE,kEAGI+0B,SAAO+yB,EAAAA,EAAAA,UAChB,IAMM,EANNnzB,EAAAA,EAAAA,oBAMM,MANNP,GAMM,EALJO,EAAAA,EAAAA,oBAIM,MAJNN,GAIM,EAHJszB,EAAAA,EAAAA,aAESof,EAAA,CAFD/yC,MAAM,QAAM,CAvL9BxY,SAAAssC,EAAAA,EAAAA,UAwLY,IAA6C,uBAA7CnzB,EAAAA,EAAAA,oBAA6C,0BAAzBtB,EAAAipc,uBAxLhCjyb,EAAA,SA4LM1V,EAAAA,EAAAA,oBAoBM,MApBNL,GAoBM,EAnBJK,EAAAA,EAAAA,oBAkBM,MAlBNJ,GAkBM,EAjBJI,EAAAA,EAAAA,oBASS,UARPnB,MAAM,iBACLyB,QAAKxhC,EAAA,KAAAA,EAAA,OAAApG,IAAEgmC,EAAAkpc,iBAAAlpc,EAAAkpc,mBAAAlve,K,EAERs6D,EAAAA,EAAAA,aAAuB4b,EAAA,CAAnBvjE,EAAGqzB,EAAAmpc,cAAY,eACnB7nc,EAAAA,EAAAA,oBAGE,KAFAnB,OApMdC,EAAAA,EAAAA,gBAAA,CAoMoB,eACEL,EAAAqpc,YAAc,gBAAkB,c,WAG5C9nc,EAAAA,EAAAA,oBAMS,UALN7Y,UAAWuX,EAAAmsE,OACZhsE,MAAM,iBACLyB,QAAKxhC,EAAA,KAAAA,EAAA,OAAApG,IAAEgmC,EAAAqpc,gBAAArpc,EAAAqpc,kBAAArve,K,EAERs6D,EAAAA,EAAAA,aAAqB4b,EAAA,CAAlBvjE,EAAE,iBAAa,EA7M9B8oE,QAAA,aAkNMn0C,EAAAA,EAAAA,oBAAI,qBAEJA,EAAAA,EAAAA,oBAcM,MAdN8yC,GAcM,uBAbJ9yC,EAAAA,EAAAA,oBAGE,KAHF+yC,GAGE,cAFcz0C,EAAAnhC,EAAE,oEAIlB6iC,EAAAA,EAAAA,oBAOM,MAPNizC,GAOM,uBANJr0C,EAAAA,EAAAA,oBAKSmrB,EAAAA,SAAA,MAhOnBC,EAAAA,EAAAA,YA4NmCtrB,EAAAspc,eA5NnC,CA4NoBj0e,EAAKtC,M,kBADfi5D,EAAAA,EAAAA,aAKS0nB,EAAA,CAHNz9E,IAAKlD,GAAK,CA7NvBo1B,SAAAssC,EAAAA,EAAAA,UA+NY,IAAiC,uBAAjCnzB,EAAAA,EAAAA,oBAAiC,0BAAbjsC,QA/NhC2hD,EAAA,G,sBAqOeuyb,QAAM90a,EAAAA,EAAAA,UACf,IAWM,EAXNnzB,EAAAA,EAAAA,oBAWM,MAXNkzC,GAWM,EAVJlzC,EAAAA,EAAAA,oBAKS,UAJPnB,MAAM,2BACLyB,QAAKxhC,EAAA,KAAAA,EAAA,IAzOhB+qD,EAAAA,EAAAA,gBAAA,IAAAnxD,IAyO0BgmC,EAAAwpc,qBAAAxpc,EAAAwpc,uBAAAxve,IAAmB,e,EAEnCs6D,EAAAA,EAAAA,aAAuB4b,EAAA,CAApBvjE,EAAE,qBAEP2nD,EAAAA,EAAAA,aAGE8iB,EAAA,CAFA/yD,KAAK,OACJud,QAAO5B,EAAAypc,U,yBA/OlBzyb,EAAA,G,yCAMA,MAAM0yb,GAAyB,yBAE/B,QACEvue,KAAM,yBAEN+sB,MAAO,CAAC,SAER+pC,WAAY,CACV03a,cAAa,KAAEzuZ,OAAM,KAAEzB,YAAWA,GAAAA,GAGpC9mE,IAAAA,GACE,MAAO,CACLyxa,WAAuB,GACvBwlD,kBAAuB,GACvB/kD,sBAAuB,GACvBukD,aAAuB,EAE3B,EAEA9/c,SAAU,CACRugd,iBAAAA,GACE,MAAMC,EAAa33e,KAAKk+D,OAAOhtD,QAAQ,kBAAkBu2B,EAAAA,GAAMwnQ,YACzD2oM,EAAuBD,IAAa,IAAIn3d,OAAO+2d,IACrD,IAAI1yd,EAAM,GAEV,IAAK+yd,EACH,OAAO/yd,EAGT,IACEA,EAAMkiC,KAAKC,MAAM4wb,EACnB,CAAE,MAAOrwe,IACPvH,KAAKk+D,OAAOpjC,SAAS,kBAAmB,CACtCwU,MAAOtvC,KAAKsM,EAAE,mCAAoC,CAAEtD,KAAMhJ,KAAKsM,EAAE,gEACjE/E,QACC,CAAE/H,MAAM,GACb,CAEA,OAAOqlB,CACT,EAEAsyd,aAAAA,GACE,MAAMtyd,EAAM7kB,KAAKy3e,kBAAkBxve,OAAOjI,KAAK0yb,uBAAuBlwb,KAAKoZ,IACzE,MAAMiJ,EAAMjJ,EAAKpZ,KAAK44L,GAAM,UAAWA,EAAEt3L,IAAIg+C,OAAO,GAAGjtB,cAAgBumK,EAAEt3L,IAAImI,MAAM,cAEnF,OAAO4Y,EAAI3Y,KAAK,IAAI,IAGtB,OAAO2Y,CACT,EAEAmyd,YAAAA,GACE,OAAIh3e,KAAKi3e,YACA,sDAGF,sDACT,EAEAH,gBAAAA,GACE,IAAK92e,KAAKi3e,aAA0C,IAA3Bj3e,KAAKiyb,WAAWnxb,OACvC,OAAOd,KAAKsM,EAAE,uDAGhB,MAAMuY,EAAM7kB,KAAKiyb,WAAWzvb,KAAKoZ,GAAS,UAAWA,EAAK9X,IAAIg+C,OAAO,GAAGjtB,cAAgBjZ,EAAK9X,IAAImI,MAAM,cAEvG,MAAO,SAAU4Y,EAAI3Y,KAAK,MAC5B,EAEA8tG,MAAAA,GACE,MAAM69X,EAAY73e,KAAKiyb,WAAWnxb,OAAS,EAC3C,IAAIg3e,EAAiB,GAAG7ve,OAAOjI,KAAK0yb,sBAAuB1yb,KAAKy3e,mBAEhE,QAAKI,IAILC,EAAe3ue,KAAKnJ,KAAKiyb,YAEzB6lD,EAAiBA,EAAet1e,KAAKoZ,IACnC,MAAMiJ,EAAMjJ,EAAKpZ,KAAK44L,GAAMA,EAAEt3L,MAE9B,OAAO+gB,EAAI3Y,KAAK,IAAI,IAGf4re,EAAeh3e,SAAW,IAAIkb,IAAI87d,GAAgBx9d,KAC3D,GAGFsmD,MAAO,CACL82a,kBAAmB,CACjB72a,OAAAA,GACE7gE,KAAK0yb,sBAAwB,GAAGzqb,OAAOjI,KAAK03e,oBAAsB,EACpE,EACArjZ,WAAW,IAIfr8D,QAAS,CACPq/c,mBAAAA,GACEp1e,OAAO07C,oBAAoB,UAAW39C,KAAK+3e,gBAC3C/3e,KAAK+3B,MAAM,QACb,EAEAg/c,eAAAA,GACE/2e,KAAKi3e,aAAej3e,KAAKi3e,YAErBj3e,KAAKi3e,aACPj3e,KAAKiyb,WAAa,GAClBhwb,OAAOs7C,iBAAiB,UAAWv9C,KAAK+3e,iBAExC91e,OAAO07C,oBAAoB,UAAW39C,KAAK+3e,eAE/C,EAEAA,cAAAA,CAAex2e,GACbA,EAAMk7C,iBAEN,MAAM,IACJ34C,EAAG,QAAE2zC,EAAO,KAAEx0C,EAAI,SAAEo7R,EAAQ,SAAEu5K,GAC5Br2c,EAEJvB,KAAKiyb,WAAW9ob,KAAK,CACnBrF,MAAK2zC,UAASx0C,OAAMo7R,WAAUu5K,YAElC,EAEAs/B,cAAAA,GACEl3e,KAAKy3e,kBAAkBtue,KAAK,GAAGlB,OAAOjI,KAAKiyb,YAC7C,EAEA+lD,SAAAA,CAAU90e,GACR,MAAMY,EAAMZ,EAAKyR,QAAQ,wBAAyB,IAAIA,QAAQ,WAAY,KAE1E3U,KAAKy3e,kBAAoBz3e,KAAKy3e,kBAAkBjre,QAAQoP,IACtD,MAAMq8d,EAAYr8d,EAAKpZ,KAAK44L,GAAMA,EAAEt3L,IAAIg+C,OAAO,GAAGjtB,cAAgBumK,EAAEt3L,IAAImI,MAAM,KAAIC,KAAK,KAEvF,OAAO+re,IAAcn0e,CAAG,IAG1B9D,KAAK0yb,sBAAwB1yb,KAAK0yb,sBAAsBlmb,QAAQoP,IAC9D,MAAMq8d,EAAYr8d,EAAKpZ,KAAK44L,GAAMA,EAAEt3L,IAAIg+C,OAAO,GAAGjtB,cAAgBumK,EAAEt3L,IAAImI,MAAM,KAAIC,KAAK,KAEvF,OAAO+re,IAAcn0e,CAAG,GAE5B,EAEA,cAAMwze,CAASnqZ,GACb,MAAMtoE,EAAM,GAAG5c,OAAOjI,KAAK0yb,sBAAuB1yb,KAAKy3e,mBACjDE,EAAa33e,KAAKk+D,OAAOhtD,QAAQ,kBAAkBu2B,EAAAA,GAAMwnQ,cAAc,GAE7E,IACE0oM,EAAWn3d,KAAK+2d,IAA0Bxwb,KAAK0F,UAAU5nC,SACnD8yd,EAAWh9c,OACjB36B,KAAKq3e,sBACLlqZ,GAAS,EACX,CAAE,MAAO5lF,IACP4lF,GAAS,EACX,CACF,I,SC/JJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U/CEA,MAAMoqZ,GAAyB,yBAEzBW,GAAa,CACjBC,YAAa,CACXjkd,MAAO,OACP3zB,MAAO63e,GAASl7C,cAElBm7C,QAAS,CACPnkd,MAAO,MACP3zB,MAAO63e,GAAS56C,WAId86C,GAAgB,CACpBC,OAAQ,CACNrkd,MAAO,MACP3zB,MAAO63e,GAASxkD,WAElB4kD,YAAa,CACXtkd,MAAO,eACP3zB,MAAO63e,GAASliD,WAIduiD,GAAc,CAClBC,KAAM,CACJxkd,MAAO,IACP3zB,MAAO63e,GAASj1C,MAElBw1C,KAAM,CACJzkd,MAAO,IACP3zB,MAAO63e,GAAS30C,MAElBm1C,KAAM,CACJ1kd,MAAO,IACP3zB,MAAO63e,GAASx0C,MAElBi1C,KAAM,CACJ3kd,MAAO,IACP3zB,MAAO63e,GAASt0C,OAIdg1C,GAAS,CACb96S,GAAI,CACF9pK,MAAO,KACP3zB,MAAO63e,GAASh/C,OAElBn7P,GAAI,CACF/pK,MAAO,KACP3zB,MAAO63e,GAAS/+C,OAElB0/C,GAAI,CACF7kd,MAAO,KACP3zB,MAAO63e,GAAS9+C,OAElB0/C,GAAI,CACF9kd,MAAO,KACP3zB,MAAO63e,GAAS7+C,OAElB0/C,GAAI,CACF/kd,MAAO,KACP3zB,MAAO63e,GAAS5+C,OAElB0/C,GAAI,CACFhld,MAAO,KACP3zB,MAAO63e,GAAS3+C,OAElB0/C,GAAI,CACFjld,MAAO,KACP3zB,MAAO63e,GAAS1+C,OAElB0/C,GAAI,CACFlld,MAAO,KACP3zB,MAAO63e,GAASz+C,OAElB0/C,GAAI,CACFnld,MAAO,KACP3zB,MAAO63e,GAASx+C,OAElB0/C,IAAK,CACHpld,MAAO,MACP3zB,MAAO63e,GAASv+C,QAElB0/C,IAAK,CACHrld,MAAO,MACP3zB,MAAO63e,GAASt+C,QAElB0/C,IAAK,CACHtld,MAAO,MACP3zB,MAAO63e,GAASp+C,SAIpB,QACEhxb,KAAY,sBACZ82D,WAAY,CACV25a,aAAY,GAAEC,iBAAgB,GAAEC,uBAAsBA,IAGxD,WAAM55X,GACJ,MAAMs6E,EAAQ,CAAEu/S,WAAY55e,KAAKk+D,OAAOpjC,SAAS,iBAAkB,CAAElmB,KAAMi+C,EAAAA,GAAI2C,GAAI7yD,GAAI3C,KAAKO,MAAMoC,MAE5FkwB,QAAa41V,EAAAA,GAAAA,IAAQpuL,GAE3Br6L,KAAK45e,WAAa/md,EAAK+md,UACzB,EAEAn2e,MAAO,CACLlD,MAAO,CACLqU,KAAUxU,OACVi2B,UAAU,EACVL,QAAUA,KACD,CAAC,KAKdxV,IAAAA,GACE,MAAO,CACLyxa,WAAmB,GACnB2nD,WAAmB,CAAC,EACpBhnD,iBAAmB,EACnBE,YAAmB,KACnBN,mBAAmB,EAEvB,EAEAr7Z,SAAU,CACRugd,iBAAAA,GACE,MAAMC,EAAa33e,KAAKk+D,OAAOhtD,QAAQ,kBAAkBu2B,EAAAA,GAAMwnQ,YACzD2oM,EAAuBD,IAAa,IAAIn3d,OAAO+2d,IACrD,IAAI1yd,EAAM,GAEV,IAAK8yd,IAAa,IAAIn3d,KAIpB,OAFAxgB,KAAKwyb,mBAAoB,EAElB3ta,EAGT,IAAK+yd,EACH,OAAO/yd,EAGT,IACEA,EAAMkiC,KAAKC,MAAM4wb,EACnB,CAAE,MAAOrwe,IACPvH,KAAKk+D,OAAOpjC,SAAS,kBAAmB,CACtCwU,MAAOtvC,KAAKsM,EAAE,mCAAoC,CAAEtD,MAAM2kH,EAAAA,GAAAA,IAAW3tH,KAAKO,MAAM+4B,SAAStwB,QACzFzB,QACC,CAAE/H,MAAM,GACb,CAEA,OAAOqlB,CACT,EAEAmua,MAAAA,GACE,OAAOhzb,KAAKuwD,QAAQvwD,KAAKO,MAC3B,EAEAkjC,GAAAA,GACE,MAAM8hL,EAAK,GAAItjN,OAAOo8R,SAASpuO,YAAchuD,OAAOo8R,SAAS1yO,OAE7D,MAAO,SAAU45J,IAAOvlN,KAAKO,OAAO85Y,eACtC,EAEAjoE,OAAAA,GACE,MAAO,IACF8lK,MACAI,MACAG,MACAK,GAEP,EAEAv5Z,MAAAA,GACE,MAAM16D,EAAM,IACPqzd,GACHM,YAAaF,GAAcE,eACxBM,IAYL,OATAj0d,EAAIwzd,QAAQn1e,KAAO,CAAEs1e,YAAaF,GAAcE,eAAgBM,IAChEj0d,EAAIszd,YAAYj1e,KAAO,CACrBm1e,QAAS,IACJj4e,OAAOC,OAAO63e,GAAWG,QAAS,CAAC,GACtCn1e,KAAM,CAAEq1e,OAAQD,GAAcC,YAE7BE,IAGE5zd,CACT,EAEAyta,mBAAAA,GACE,QAAStyb,KAAK45e,YAAYjmd,SAASs/W,UACrC,EAEAy/C,qBAAAA,GACE,OAAQ1yb,KAAK03e,mBAAqB,IAAIl1e,KAAKoZ,IAClC,CACLsY,MAAOtY,EAAKpZ,KAAK44L,GAAMA,EAAEt3L,IAAIg+C,OAAO,GAAGjtB,cAAgBumK,EAAEt3L,IAAImI,MAAM,KAAIC,KAAK,KAC5E3L,MAAOqb,KAGb,GAGFoc,QAAS,CACPu4B,OAAAA,CAAQztD,GACN,YAAalB,IAANkB,GAA6C,IAA1B1C,OAAO8C,KAAKJ,GAAGhC,MAC3C,EAEA6pH,KAAAA,GACE3qH,KAAKo4B,MAAMyhd,aAAaz7b,YAC1B,EAEA+wB,MAAAA,EAAO,IAAErrE,EAAG,IAAEiI,IACZ/L,KAAKiyb,WAAW76Y,OAAOrrC,EAAK/L,KAAKiyb,WAAWnxb,OAASiL,EAAKjI,EAC5D,EAGAuub,QAAAA,GACEryb,KAAKiyb,WAAWrpb,SAAS9E,IACvB9D,KAAKo4B,MAAMyhd,aAAarN,QAAQxse,KAAKoyU,QAAQtuU,GAAKvD,MAAOuD,GAAK,EAAK,IAGrE9D,KAAKiyb,WAAWz3Y,UAAU5xC,SAAS9E,IACjC9D,KAAKo4B,MAAMyhd,aAAarN,QAAQxse,KAAKoyU,QAAQtuU,GAAKvD,MAAOuD,GAAK,EAAM,IAGtE9D,KAAKo4B,MAAM0hd,QAAQzqX,QAAS,EAC5BrvH,KAAKiyb,WAAa,EACpB,EAEAU,cAAAA,CAAezvb,GACb,MAAM62e,EAAU,GAAG9xe,OAAO/E,GAE1B62e,EAAQnxe,SAASwyL,IACfp7L,KAAKo4B,MAAMyhd,aAAarN,QAAQwN,GAAuB5+S,GAAI4+S,GAAwB5+S,IAAI,EAAK,IAG9F2+S,EAAQv/b,UAAU5xC,SAASwyL,IACzBp7L,KAAKo4B,MAAMyhd,aAAarN,QAAQwN,GAAuB5+S,GAAI4+S,GAAwB5+S,IAAI,EAAM,GAEjG,EAEAm3P,UAAAA,GACEvyb,KAAK45e,WAAW9lG,cAClB,EAEA2+C,aAAAA,GACEzyb,KAAK4yb,iBAAkB,CACzB,EAEAG,aAAAA,GACE/yb,KAAK4yb,iBAAkB,CACzB,I,SgDtQJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UjDJA,IACE9yX,WAAY,CAAEm6a,oBAAmB,GAAEjxZ,QAAOA,GAAAA,GAE1C,WAAM+2B,GACJ//G,KAAKqxF,WAAarxF,KAAKk+D,OAAOpjC,SAAS,oBAAqB,CAAElmB,KAAMi+C,EAAAA,GAAI4C,KAC1E,EAEAj1C,IAAAA,GACE,MAAO,CAAEgZ,IAAKx5B,KAAK2xB,OAAOnwB,OAAOg4B,IACnC,EAEArC,SAAU,CACRq9W,GAAAA,GACE,MAAMq9C,EAAU7xb,KAAKk+D,OAAOhtD,QAAQ,iBAAiB2hD,EAAAA,GAAI4C,MAAQ,GAE3D++U,EAAMq9C,EAAQh6Z,MAAO49B,GAClBA,GAAKn8B,UAAUkB,kBAAkB,IAAIhB,MAAQx5B,KAAKw5B,MAG3D,OAAOg7W,CACT,GAGFz0V,OAAAA,GACE99C,OAAOs7C,iBAAiB,gBAAgB,KACtCv9C,KAAKo4B,MAAMhxB,QAAQujH,OAAO,GAE9B,EAEAlrD,IAAAA,GACE,MAAO,CAAEnwB,MAAOtvC,KAAKw0Y,KAAKl7W,UAAUtwB,KACtC,G,QkD7BF,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,iGCCE6wD,EAAAA,EAAAA,aAAgBqgb,E,WCVlBp2e,IAAA,EA6OIkqC,MAAM,U,IA7OVlqC,IAAA,G,wMAwNU2pC,EAAA6sQ,0BAAuB,kBAD/BzgP,EAAAA,EAAAA,aAScsgb,EAAA,CAhOhBr2e,IAAA,EAyNKs2e,UAAU,EACVC,QAAQ,EACTlsc,KAAK,mB,CAEM1nC,SAAO67D,EAAAA,EAAAA,UAChB,IAAmC,EA9NzCj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA8NSb,EAAAnhC,EAAE,6BAAD,MA9NVu4C,EAAA,KAkOepX,EAAA8tQ,6BAA0B,kBADvC1hP,EAAAA,EAAAA,aAScsgb,EAAA,CA1OhBr2e,IAAA,EAmOKs2e,UAAU,EACVC,QAAQ,EACTlsc,KAAK,mB,CAEM1nC,SAAO67D,EAAAA,EAAAA,UAChB,IAA0C,EAxOhDj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAwOSb,EAAAnhC,EAAE,oCAAD,MAxOVu4C,EAAA,O,kBA2OE9W,EAAAA,EAAAA,oBAmDM,MAnDNa,GAmDM,CA9CIhB,EAAAi1Q,eAAY,kBADpBhpP,EAAAA,EAAAA,aAYWygb,EAAA,CA3Pfx2e,IAAA,EAiPO,eAAc8pC,EAAA2sc,kBACd50c,OAAQiI,EAAAjI,OACRxU,SAAUyc,EAAAzc,SACV,qCAAoC0c,EAAAmhD,gCACpC,iBAAgBphD,EAAAshD,cAChB,qBAAoBthD,EAAAwhD,mB,CAEVorZ,cAAYl4a,EAAAA,EAAAA,UACrB,IAA4B,EAA5BlzB,EAAAA,EAAAA,YAA4B3B,EAAA4B,OAAA,uBAAAztC,GAAA,MAzPpCijD,EAAA,G,qHAAAzW,EAAAA,EAAAA,oBAAA,QA6PI+zB,EAAAA,EAAAA,aAIEs4a,EAAA,CAHCtpd,SAAU,CAAC,EACXvc,KAAMg5B,EAAA8sc,cACNr8M,SAAUzwP,EAAA+sc,mB,4BAIL/sc,EAAA8tQ,mBAAgB,kBADxB3tQ,EAAAA,EAAAA,oBASM,MA5QVc,GAAA,qBAsQMgrB,EAAAA,EAAAA,cAKEonB,EAAAA,EAAAA,yBAJKxzC,EAAAmtc,gBADPp4a,EAAAA,EAAAA,YAKE,CAHC,gCAA+B30B,EAAAmhD,gCAC/BqC,KAAM5jD,EAAA4jD,MACC5jD,EAAAG,OAAK,0EAGjBisB,EAAAA,EAAAA,aAgBEghb,EAAA,CA7RN/2e,IAAA,EA+QO6hC,OAAQiI,EAAAjI,OACR0rD,KAAM5jD,EAAA4jD,KACN,cAAa5jD,EAAAhW,cAAgBgW,EAAAqvQ,YAC7B5/N,QAASzvC,EAAAyvC,QACTt2C,QAASiH,EAAAjH,QACT,WAAUiH,EAAAgmD,QACV,yBAAwBnmD,EAAAukD,qBACxB,iCAAgCvkD,EAAAwkD,0BAChC,sCAAqCxkD,EAAAykD,gCACrC,wCAAuCvkD,EAAA2kD,iCACvC,gCAA+B9kD,EAAA+kD,0BAC/B,8BAA6B/kD,EAAAhW,YAC7B,6BAA4BgW,EAAAkuQ,iBAC5Bm/L,oBAAoBrtc,EAAA6gE,mB,kYCpPlBtgE,MAAM,W,kDARbD,EAAAA,EAAAA,oBAkBM,OAjBJC,OAjCJC,EAAAA,EAAAA,gBAAA,CAiCU,eAAc,UACCP,EAAA0sc,SAAQ,OAAY1sc,EAAA2sc,W,EAEzClrc,EAAAA,EAAAA,oBAGE,KAFAnB,OArCNC,EAAAA,EAAAA,gBAAA,CAqCY,OAAM,EACDP,EAAAS,OAAO,EAAH,CAAUT,EAAAqtc,aAAcrtc,EAAAqtc,c,SAEzC5rc,EAAAA,EAAAA,oBASM,MATNP,GASM,EARJQ,EAAAA,EAAAA,YAOO3B,EAAA4B,OAAA,cAPP,IAOO,CANW3B,EAAAstc,aAAU,kBAA1Bjtc,EAAAA,EAAAA,oBAEWmrB,EAAAA,SAAA,CA5CnBp1D,IAAA,KAAAuqC,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA2Cab,EAAAnhC,EAAEohC,EAAAstc,aAAU,6BAEjBjtc,EAAAA,EAAAA,oBAEWmrB,EAAAA,SAAA,CA/CnBp1D,IAAA,KAAAuqC,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA8CaZ,EAAAjnC,SAAO,oB,CA7CpB,QACEhD,MAAO,CACL22e,SAAU,CACRxle,KAAShG,QACTonB,SAAS,GAEXmY,KAAM,CACJv5B,KAAUvQ,OACVgyB,UAAU,GAEZ0kd,UAAW,CACTnme,KAASvQ,OACT2xB,QAAS,MAEXvvB,QAAS,CACPmO,KAASvQ,OACT2xB,QAAS,MAEXgld,WAAY,CACVpme,KAASvQ,OACT2xB,QAAS,MAEXqkd,OAAQ,CACNzle,KAAShG,QACTonB,SAAS,K,SClBf,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,kCCTAlyB,IAAA,G,gCA6BU8pC,EAAAqtc,cAAcn6e,SAAM,kBAD5BitC,EAAAA,EAAAA,oBAYM,MAxCRa,GAAA,uBA+BIb,EAAAA,EAAAA,oBAQMmrB,EAAAA,SAAA,MAvCVC,EAAAA,EAAAA,YAgCwBvrB,EAAAqtc,eAhCxB,CAgCar/d,EAAMlY,M,kBADfqqC,EAAAA,EAAAA,oBAQM,OANHjqC,IAAG,gBAAkB4pC,EAAA2wP,WAAW36R,K,qBAEjCm2D,EAAAA,EAAAA,cAGEonB,EAAAA,EAAAA,yBAFKrlE,EAAKwhE,WAAS,CAClBjsD,SAAUuc,EAAAvc,UAAQ,2B,UArC3Bid,EAAAA,EAAAA,oBAAA,M,iBAGA,IACEplC,KAAO,iBACPvF,MAAO,CACL0tB,SAAU,CACRvc,KAASxU,OACT41B,QAASA,KACA,CAAC,IAGZphB,KAAM,CACJA,KAASvQ,OACT2xB,QAAS,IAEXqoQ,SAAU,CACRzpR,KAASvQ,OACT2xB,QAAS,KAGbxV,IAAAA,GACE,MAAO,CAAEy6d,eAAe/nd,EAAAA,GAAAA,GAAmClzB,KAAMA,KAAK4U,KAAM5U,KAAKq+R,SAAUr+R,KAAK2xB,QAClG,GClBF,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,UJKA,IACE3oB,KAAMo8R,GAAAA,EAENtlO,WAAY,CACVkpB,QAAO,KACPkyZ,cAAa,KACbC,SAAQ,KACRprZ,yBAAwB,KACxBqrZ,YAAW,GACXC,eAAcA,IAEhBt+Z,OAAQ,CAACu+Z,GAAAA,GAET73e,MAAO,CACLwuF,qBAAsB,CACpBr9E,KAAShG,QACTonB,SAAS,GAEXk8D,0BAA2B,CACzBt9E,KAAShG,QACTonB,SAAS,GAEXm8D,gCAAiC,CAC/Bv9E,KAAShG,QACTonB,SAAS,IAIb,WAAM+pF,GACJ,MAAMj9E,EAAQ9iC,KAAKk+D,OACb/sC,EAAWnxB,KAAKmxB,SAEhBwU,EAAS3lC,KAAK2lC,OAEpB,GAAK3lC,KAAK07S,iBAAmB,CAE3B,MAAM6/L,EAAWv7e,KAAK46e,cAEhBx9Z,QAAkBm+Z,EAASC,gBAejC,GAbKp+Z,GAAW6S,cACdjwF,KAAKu6e,kBAAoBn9Z,EAAU6S,YAAYjoF,MAAMhI,QAMlDo9E,GAAW2iC,OAAS3iC,GAAWtd,aAAa,6BAC/C9/D,KAAKy7e,oBAAqB,GAKxBr+Z,GAAWs+Z,kBAAmB,CAChC,MAAM,cAAExsZ,EAAa,kBAAEE,GAAsBhS,GAAWs+Z,kBAAkB17e,KAAK2xB,OAAQ3xB,KAAKk+D,QAE5Fl+D,KAAKkvF,cAAgBA,GAAiB,CAAC/9D,GACvCnxB,KAAKovF,kBAAoBA,IAAqB,CAChD,CACF,CAEA,IAAMpvF,KAAKy7e,mBAAqB,CAC9B,IAAM91c,EAGJ,YAFA7C,EAAMhI,SAAS,eAAgB,IAAI93B,MAAMhD,KAAKsM,EAAE,qCAAsC,CAAE6kB,aAAY,KAMjGnxB,KAAKs6S,yBAA6Bt6S,KAAKy3B,cAAez3B,KAAKk9S,mBACxDl9S,KAAKu9S,WAAWpsR,EAE1B,CACF,EAEA3Q,IAAAA,GACE,MAAMtP,EAAUlR,KAAKk+D,OAAOhtD,QACtB1P,EAAS,IAAKxB,KAAK2xB,OAAOnwB,QAC1B2vB,EAAW3vB,EAAO2vB,SAElBuqR,EAAmBxqS,EAAQ,0BAA0BigB,GAErDiP,EAAUlvB,EAAQ,gBAAgBigB,GAClCwU,EAASz0B,EAAQ,GAAIkvB,eAAsBjP,GAE3C0xR,EAAe3xS,EAAQ,uBAAuBigB,GAAU+/V,iBAE9D,MAAO,CACLvrV,SACA+1Q,mBACAmH,kBAAmDjhT,IAAjBihT,GAAoCA,EACtE1xR,WACAupd,cAAkC7md,GAAAA,GAAe8nd,MACjDhB,kBAAkCvld,GAAAA,GAAcwmd,cAChD1sZ,cAAkC,CAAC/9D,GAKnCsqd,oBAAkC,EAElCI,mBAAkC,EAClCj7a,OAAkC,EAClCuqD,OAAkC,EAElCovX,kBAAkC,KAElCnrZ,mBAAkC,EAElCmD,kCAAkC,EAEtC,EAEAp7D,SAAU,CACRyP,OAAAA,GACE,OAAK5mC,KAAK07S,mBAAqB17S,KAAK2lC,OAE3B,GAGF3lC,KAAKk+D,OAAOhtD,QAAQ,uBAAuBlR,KAAK2lC,OAAQ3lC,KAAKy3B,YACtE,EAEAo8D,OAAAA,GACE,OAAO7zF,KAAKk+D,OAAOhtD,QAAQ,uBAAuBlR,KAAK2lC,OACzD,EAEAqpD,+BAAAA,GACE,OAAOhvF,KAAKyoC,YAAYha,oBAAoBF,OAC9C,GAIFqyC,MAAO,CAWL/3B,eAAAA,CAAgB8B,EAAKq2B,GACnB,GAAIr2B,IAAQ3qC,KAAKy7e,mBAAoB,CACnC,IAAIn3b,EAAAA,GAAAA,IAAa3Z,EAAKq2B,GACpB,OAGFhhE,KAAKu9S,WAAWv9S,KAAKmxB,SACvB,CACF,EAWAya,UAAAA,CAAWjB,EAAKq2B,IACVr2B,GAAQ3qC,KAAKy7e,oBAAuBz7e,KAAKwqD,gBAAgB7f,EAAKq2B,IAChEhhE,KAAKu9S,WAAWv9S,KAAKmxB,SAEzB,EAMAkgE,IAAAA,CAAK1mD,GACE3qC,KAAK4rC,YAIN5rC,KAAK4rC,WAAWG,KAAO,GAAoB,IAAfpB,EAAI7pC,QAClCd,KAAKi7S,cAAc,IACdj7S,KAAK4rC,WACRG,KAAM/rC,KAAK4rC,WAAWG,KAAO,GAGnC,GAGFgyB,OAAAA,GACE,IAAI68a,GAAgB,EAEpB,MAAMzpd,EAAWnxB,KAAK2xB,OAAOnwB,OAAO2vB,SAC9BuqR,EAAmB17S,KAAKk+D,OAAOhtD,QAAQ,0BAA0BigB,GAElEuqR,IACHk/L,EAAgB56e,KAAKk+D,OAAOhtD,QAAQ,uBAAuBigB,IAG7DnxB,KAAK46e,cAAgBA,CACvB,G,SK3MF,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UNNA,IACE5xe,KAAY,yBACZ82D,WAAY,CAAEg8a,aAAYA,KOA5B,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,UCPAh4e,IAAA,G,IAmKQkqC,MAAM,S,IAKHA,MAAM,a,IACJA,MAAM,c,IASTA,MAAM,mB,IAGHA,MAAM,c,IAGRA,MAAM,mB,IAxLjBlqC,IAAA,EAiMQkqC,MAAM,a,IAEDA,MAAM,6B,IACJA,MAAM,S,IAeFA,MAAM,c,GAnNzB,Q,IA0NaA,MAAM,6B,IACJA,MAAM,S,IAeFA,MAAM,c,GA1OzB,Q,IAkPUA,MAAM,mB,IAGHA,MAAM,c,IAGRA,MAAM,mB,IAxPjBlqC,IAAA,EAiQQkqC,MAAM,a,IAEDA,MAAM,8B,IACJA,MAAM,S,IAYFA,MAAM,c,GAhRzB,Q,IAwRUA,MAAM,mB,IAGHA,MAAM,c,IAGRA,MAAM,a,IA9RjBlqC,IAAA,EAuSQkqC,MAAM,mB,IAOJA,MAAM,mB,IAGHA,MAAM,c,IAGRA,MAAM,a,IApTjBlqC,IAAA,EA6TQkqC,MAAM,mB,IAOAA,MAAM,oB,IApUpBlqC,IAAA,G,qYAiKiB2pC,EAAA0xE,YAAYxxC,UAAO,kBAAlC9T,EAAAA,EAAAA,aAAsC+tB,EAAA,CAjKxC9jF,IAAA,yBAkKEiqC,EAAAA,EAAAA,oBA0LM,MA5VRa,GAAA,EAmKIO,EAAAA,EAAAA,oBAEK,KAFLN,IAEKP,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,mBAAD,IAEN61D,EAAAA,EAAAA,aAAwCusB,EAAA,CAAvBv9D,SAAS,eAC1Bge,EAAAA,EAAAA,oBAmKM,aAlKJA,EAAAA,EAAAA,oBASM,MATNL,GASM,EARJK,EAAAA,EAAAA,oBAOM,MAPNJ,GAOM,EANJozB,EAAAA,EAAAA,aAKEo2C,EAAA,CAJQh4G,MAAOqtC,EAAAmuc,YAAYx7e,MA3KvC,iBAAA0N,EAAA,KAAAA,EAAA,GAAAurD,GA2K2B5rB,EAAAmuc,YAAYx7e,MAAKi5D,GAC/BtlC,MAAOuZ,EAAAnhC,EAAE,uBACT4lB,KAAM2b,EAAA3b,KACNm6F,UAAW,K,sCAIlBl9E,EAAAA,EAAAA,oBAEK,KAFLm0C,IAEKh1C,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,yBAAD,IAEN6iC,EAAAA,EAAAA,oBAEQ,QAFR8yC,IAEQ3zC,EAAAA,EAAAA,iBADHb,EAAAnhC,EAAE,+BAAgC,CAAC,GAAG,IAArC,IAEN6iC,EAAAA,EAAAA,oBAMM,MANN+yC,GAMM,EALJ/f,EAAAA,EAAAA,aAIEi8B,EAAA,CAHQ79F,MAAOqtC,EAAAouc,cA1LzB,iBAAA/te,EAAA,KAAAA,EAAA,GAAAurD,GA0LyB5rB,EAAAouc,cAAaxib,GAC3BtlC,MAAOuZ,EAAAnhC,EAAE,4BACT4lB,KAAM2b,EAAA3b,M,mCAIH0b,EAAAouc,gBAAa,kBADrBjuc,EAAAA,EAAAA,oBAkDM,MAlDNq0C,GAkDM,EA9CJjzC,EAAAA,EAAAA,oBAsBM,MAtBNkzC,GAsBM,EArBJlzC,EAAAA,EAAAA,oBAUM,MAVNozC,GAUM,EATJpgB,EAAAA,EAAAA,aAQEs1B,EAAA,CAPC,aAAY,IACZ,oBAAkB,EACnBzpD,MAAM,iBACL9Z,MAAOuZ,EAAAnhC,EAAE,8BACT4lB,KAAM2b,EAAA3b,KACN4xD,QAAOj2C,EAAAouc,SACPvkZ,WAAQzpF,EAAA,KAAAA,EAAA,GAAAurD,GAAE3rB,EAAAquc,WAAW1ib,EAAQ,iB,qCAI1B5rB,EAAA+4Y,aAAe/4Y,EAAAg5Y,aAAU,kBADjC/sX,EAAAA,EAAAA,aASYqtX,EAAA,CAxNtBpjb,IAAA,EAiNYkqC,MAAM,qB,CAjNlBhY,SAAAssC,EAAAA,EAAAA,UAmNY,IAAwE,EAAxEnzB,EAAAA,EAAAA,oBAAwE,QAAxEqzC,IAAwEl0C,EAAAA,EAAAA,iBAA3Cb,EAAAnhC,EAAE,gCAAD,IAC9B6iC,EAAAA,EAAAA,oBAGC,OAFCnB,MAAM,eACLxkB,IAAKokB,EAAA+4Y,YAAc/4Y,EAAA+4Y,YAAc/4Y,EAAAg5Y,Y,OAtNhDjkW,OAAA99B,EAAA,MAAAzW,EAAAA,EAAAA,oBAAA,UA0NQe,EAAAA,EAAAA,oBAsBM,MAtBNyzC,GAsBM,EArBJzzC,EAAAA,EAAAA,oBAUM,MAVN0zC,GAUM,EATJ1gB,EAAAA,EAAAA,aAQEs1B,EAAA,CAPC,aAAY,IACZ,oBAAkB,EACnBzpD,MAAM,iBACL9Z,MAAOuZ,EAAAnhC,EAAE,6BACT4lB,KAAM2b,EAAA3b,KACN4xD,QAAOj2C,EAAAouc,SACPvkZ,WAAQzpF,EAAA,KAAAA,EAAA,GAAAurD,GAAE3rB,EAAAquc,WAAW1ib,EAAQ,gB,qCAI1B5rB,EAAAg5Y,YAAch5Y,EAAA+4Y,cAAW,kBADjC9sX,EAAAA,EAAAA,aASYqtX,EAAA,CA/OtBpjb,IAAA,EAwOYkqC,MAAM,oB,CAxOlBhY,SAAAssC,EAAAA,EAAAA,UA0OY,IAAuE,EAAvEnzB,EAAAA,EAAAA,oBAAuE,QAAvE2zC,IAAuEx0C,EAAAA,EAAAA,iBAA1Cb,EAAAnhC,EAAE,+BAAD,IAC9B6iC,EAAAA,EAAAA,oBAGC,OAFCnB,MAAM,eACLxkB,IAAKokB,EAAAg5Y,WAAah5Y,EAAAg5Y,WAAah5Y,EAAA+4Y,a,OA7O9C1jW,OAAAp+B,EAAA,MAAAzW,EAAAA,EAAAA,oBAAA,aAAAA,EAAAA,EAAAA,oBAAA,QAkPMe,EAAAA,EAAAA,oBAEK,KAFL+zC,IAEK50C,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,2BAAD,IAEN6iC,EAAAA,EAAAA,oBAEQ,QAFRg0C,IAEQ70C,EAAAA,EAAAA,iBADHb,EAAAnhC,EAAE,iCAAkC,CAAC,GAAG,IAAvC,IAEN6iC,EAAAA,EAAAA,oBAMM,MANNi0C,GAMM,EALJjhB,EAAAA,EAAAA,aAIEi8B,EAAA,CAHQ79F,MAAOqtC,EAAAuuc,iBA1PzB,iBAAAlue,EAAA,KAAAA,EAAA,GAAAurD,GA0PyB5rB,EAAAuuc,iBAAgB3ib,GAC9BtlC,MAAOuZ,EAAAnhC,EAAE,8BACT4lB,KAAM2b,EAAA3b,M,mCAIH0b,EAAAuuc,mBAAgB,kBADxBpuc,EAAAA,EAAAA,oBAwBM,MAxBNs1C,GAwBM,EApBJl0C,EAAAA,EAAAA,oBAmBM,MAnBNs0C,GAmBM,EAlBJt0C,EAAAA,EAAAA,oBAUM,MAVN01C,GAUM,EATJ1iB,EAAAA,EAAAA,aAQEs1B,EAAA,CAPC,aAAY,IACZ,oBAAkB,EACnBzpD,MAAM,iBACL9Z,MAAOuZ,EAAAnhC,EAAE,2BACT4lB,KAAM2b,EAAA3b,KACN4xD,QAAOj2C,EAAAouc,SACPvkZ,WAAQzpF,EAAA,KAAAA,EAAA,GAAAurD,GAAE3rB,EAAAquc,WAAW1ib,EAAQ,e,qCAGjB5rB,EAAAwuc,YAAS,kBAA1Bvib,EAAAA,EAAAA,aAMYqtX,EAAA,CArRtBpjb,IAAA,IAAAkyB,SAAAssC,EAAAA,EAAAA,UAgRY,IAAqE,EAArEnzB,EAAAA,EAAAA,oBAAqE,QAArE61C,IAAqE12C,EAAAA,EAAAA,iBAAxCb,EAAAnhC,EAAE,6BAAD,IAC9B6iC,EAAAA,EAAAA,oBAGC,OAFCnB,MAAM,eACLxkB,IAAKokB,EAAAwuc,W,OAnRpBj3Z,OAAAtgC,EAAA,MAAAzW,EAAAA,EAAAA,oBAAA,aAAAA,EAAAA,EAAAA,oBAAA,QAwRMe,EAAAA,EAAAA,oBAEK,KAFLm2C,IAEKh3C,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,yBAAD,IAEN6iC,EAAAA,EAAAA,oBAEQ,QAFRs2C,IAEQn3C,EAAAA,EAAAA,iBADHb,EAAAnhC,EAAE,qBAAsB,CAAC,GAAG,IAA3B,IAEN6iC,EAAAA,EAAAA,oBAMM,MANNq3C,GAMM,EALJrkB,EAAAA,EAAAA,aAIEi8B,EAAA,CAHQ79F,MAAOqtC,EAAAyuc,eAhSzB,iBAAApue,EAAA,KAAAA,EAAA,GAAAurD,GAgSyB5rB,EAAAyuc,eAAc7ib,GAC5BtlC,MAAOuZ,EAAAnhC,EAAE,4BACT4lB,KAAM2b,EAAA3b,M,mCAIH0b,EAAAyuc,iBAAc,kBADtBtuc,EAAAA,EAAAA,oBAQM,MARN04C,GAQM,EAJJtkB,EAAAA,EAAAA,aAGEm6a,EAAA,CAFQ/7e,MAAOqtC,EAAAuwB,QA1SzB,iBAAAlwD,EAAA,KAAAA,EAAA,GAAAurD,GA0SyB5rB,EAAAuwB,QAAO3E,GACtB,mBAAiB,W,sBA3S3BprB,EAAAA,EAAAA,oBAAA,QA8SMe,EAAAA,EAAAA,oBAEK,KAFLu3C,IAEKp4C,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,6BAAD,IAEN6iC,EAAAA,EAAAA,oBAEQ,QAFRw3C,IAEQr4C,EAAAA,EAAAA,iBADHb,EAAAnhC,EAAE,yBAA0B,CAAC,GAAG,IAA/B,IAEN6iC,EAAAA,EAAAA,oBAMM,MANNy3C,GAMM,EALJzkB,EAAAA,EAAAA,aAIEi8B,EAAA,CAHQ79F,MAAOqtC,EAAA2uc,mBAtTzB,iBAAAtue,EAAA,KAAAA,EAAA,GAAAurD,GAsTyB5rB,EAAA2uc,mBAAkB/ib,GAChCtlC,MAAOuZ,EAAAnhC,EAAE,gCACT4lB,KAAM2b,EAAA3b,M,mCAIH0b,EAAA2uc,qBAAkB,kBAD1Bxuc,EAAAA,EAAAA,oBAcM,MAdNowD,GAcM,EAVJh8B,EAAAA,EAAAA,aAIEm6a,EAAA,CAHQ/7e,MAAOqtC,EAAA4uc,YAhUzB,iBAAAvue,EAAA,KAAAA,EAAA,GAAAurD,GAgUyB5rB,EAAA4uc,YAAWhjb,GAC1BxrB,MAAM,MACN,mBAAiB,Q,mBAEnBmB,EAAAA,EAAAA,oBAIO,OAJPkvD,GAIO,EAHLlvD,EAAAA,EAAAA,oBAEI,KAFA1Z,OArUdwjC,EAAAA,EAAAA,gBAqUqBprB,EAAA4uc,mB,qBACNhvc,EAAAnhC,EAAE,+BAAD,SAtUhB8hC,EAAAA,EAAAA,oBAAA,+BA2UIL,EAAAA,EAAAA,oBAQWmrB,EAAAA,SAAA,MAnVfC,EAAAA,EAAAA,YA4UyBvrB,EAAA0zC,QA5UzB,CA4Uc/5E,EAAK7D,M,kBAGbm2D,EAAAA,EAAAA,aAGE0nB,EAAA,CAlVRz9E,IA6UYJ,EAGJ8qC,MAAM,QACLta,MAAO3sB,G,2BAGQ,SAATsmC,EAAA3b,OAAI,kBAAf6b,EAAAA,EAAAA,oBAOM,MA3VVwwD,GAAA,EAqVMp8B,EAAAA,EAAAA,aAKE8iB,EAAA,CAJA,mBAAiB,iBACjBj3C,MAAM,mBACN9b,KAAK,QACJud,QAAO5B,EAAAlT,M,wBAzVhByT,EAAAA,EAAAA,oBAAA,S,0BCAA,2B,IAqGWJ,MAAM,c,GArGjB,gB,GAAA,kD,IA8HYA,MAAM,0B,sFAhChBD,EAAAA,EAAAA,oBAkCM,OAjCJC,OA/FJC,EAAAA,EAAAA,gBAAA,CA+FU,cAAa,EACTP,EAAAxb,MAAMwb,EAAAxb,KAAIoE,SAAYuX,EAAAtW,cAC/B,cAAamW,EAAA4rB,gBAAkB,eAC/BC,SAAU1rB,EAAAtW,YAAc,EAAI,EAC5BmiC,QAAKzrD,EAAA,KAAAA,EAAA,IAnGV0rD,EAAAA,EAAAA,WAAAX,EAAAA,EAAAA,gBAAAQ,GAmG6B3rB,EAAA6uc,YAAYljb,IAAM,+B,EAE3CrqB,EAAAA,EAAAA,oBAIqB,QAJrBN,GAIqB,CAHbnB,EAAAzZ,WAAQ,kBADU4lC,EAAAA,EAAAA,aAIxBkkB,EAAA,CAzGNj6E,IAAA,EAuGO0W,EAAGkzB,EAAAzZ,SACHm6D,KAAK,G,gBAxGZhgD,EAAAA,EAAAA,oBAAA,QAAAC,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAyGSZ,EAAAxZ,OAAK,MACVib,EAAAA,EAAAA,oBAqBM,OApBH,cAAazB,EAAA4rB,gBAAkB,iCAChCtrB,MAAM,oBACLyB,QAAKxhC,EAAA,KAAAA,EAAA,IA7GZ+qD,EAAAA,EAAAA,gBAAAQ,GA6GmB/rB,EAAArV,MAAM9zB,MAAMuzG,MAAMr+C,IAAM,Y,EAErCrqB,EAAAA,EAAAA,oBAcO,QAbJ1Z,OAhHTwjC,EAAAA,EAAAA,gBAAA,oBAgHqCprB,EAAA8uc,aAC7B3uc,MAAM,iB,EAENmB,EAAAA,EAAAA,oBASC,SARCH,IAAI,QACH,gBAAenB,EAAAtW,WAAa,OAAS,QACrC,aAAYkW,EAAAnhC,EAAE,uBACfsI,KAAK,QACJ0hB,SAAUuX,EAAAtW,WACXgiC,SAAS,KACRh5D,MAAOstC,EAAA8uc,WACPz9Z,QAAKjxE,EAAA,KAAAA,EAAA,GAAAurD,GAAE/rB,EAAA1V,MAAM,eAAgByhC,EAAOh5D,OAAOD,S,QA3HtDwuC,KAAA,IA8HMI,EAAAA,EAAAA,oBAA4D,OAA5Dm0C,IAA4Dh1C,EAAAA,EAAAA,iBAApBT,EAAA8uc,YAAU,MA9HxD7tc,KAAA,GAAAF,G,iBAGA,IACE7Y,MAAO,CAAC,gBAERtyB,MAAO,CACLlD,MAAO,CACLqU,KAASvQ,OACT2xB,QAAS,IAGXm6N,aAAc,CACZv7O,KAASvQ,OACT2xB,QAAS,IAGX9B,MAAO,CACLtf,KAASvQ,OACT2xB,QAAS,MAGX/B,SAAU,CACRrf,KAASvQ,OACT2xB,QAAS,MAGX9D,KAAM,CACJtd,KAAMvQ,OACNsyB,SAAAA,CAAUp2B,GACR,MAAO,CAAC0xB,GAAAA,GAAO+E,GAAAA,IAAOxiB,SAASjU,EACjC,EACAy1B,QAAS/D,GAAAA,IAOXqnC,gBAAiB,CACf1kD,KAASvQ,OACT2xB,QAAS,eAGXM,SAAU,CACR1hB,KAAShG,QACTonB,SAAS,IAIbxV,IAAAA,GACE,MAAO,CACLo8d,SAAU5ld,GAAAA,GACV6ld,SAAU5qd,GAAAA,GAEd,EAEAkF,SAAU,CAIRwld,UAAAA,GACE,OAAO38e,KAAKO,MAAQP,KAAKO,MAAQP,KAAKmwP,YACxC,EAEA54N,UAAAA,GACE,MAAMjB,EAAWt2B,KAAKs2B,SAEtB,OAAOt2B,KAAKkyB,OAASlyB,KAAK68e,UAAYvmd,CACxC,GAGFypB,OAAAA,GAEE//C,KAAK+3B,MAAM,eAAgB/3B,KAAK28e,WAClC,EAEA3kd,QAAS,CACP0kd,WAAAA,CAAY/1Y,GACV,OAAI3mG,KAAKu3B,WACA,GAGFv3B,KAAKo4B,MAAM9zB,MAAMuzG,MAAMlR,EAChC,I,SC7EJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,2DCNA,IAAIm2Y,IAAa,EAMV,SAASC,GAAWj6c,GACzB,MAAMp+B,EAAMo+B,EAAM5xB,QAAQ,mBAAmBqgB,EAAAA,GAAW1H,QAASA,EAAAA,GAAQiD,SACnEkwd,EAAel6c,EAAM5xB,QAAQ,mBAAmBqgB,EAAAA,GAAW1H,QAASA,EAAAA,GAAQuC,OAC5E0qG,EAAOmmX,GAAan7e,SAAS29D,KAAKq0C,qBAAqB,SAE7D,GAAIgjB,EAAM,CACR,IAAIomX,EAEwB,SAAxBF,GAAcz8e,MAChB28e,EAAat9e,EAAQ,OACY,QAAxBo9e,GAAcz8e,MACvB28e,EAAat9e,EAAQ,OACY,cAAxBo9e,GAAcz8e,QACvB28e,EAAat9e,EAAQ,QAGvBk3H,EAAK9zC,KAAOt+E,GAAKnE,OAAS28e,GAAcC,GACxCL,IAAa,CACf,CACF,CAEA,SAASM,KACP,MAAMtmX,EAAOmmX,GAAan7e,SAAS29D,KAAKq0C,qBAAqB,SAE7D,OAAOgjB,EAAOA,EAAK9zC,KAAO,EAC5B,CAEA,SAASi6Z,GAAa75c,GACpB,IAAK,IAAI1/B,EAAI,EAAGA,EAAI0/B,EAAMtiC,OAAQ4C,IAAK,CACrC,MAAMozH,EAAO1zF,EAAM1/B,GAEnB,GAAIozH,EAAK59F,KAAK1kB,SAAS,QACrB,OAAOsiH,CAEX,CAGF,CAEA,MAAMqmX,GAAiBC,KH/BjBnjb,GAAQr6D,EAAQ,OAEtB,QACEkgE,WAAY,CACVi5C,aAAY,KAAE1S,SAAQ,KAAEvO,aAAY,KAAE9O,QAAO,KAAE8/V,UAAS,KAAExhW,YAAW,KAAEyB,OAAM,KAAEs0Z,WAAU,GAAEvtZ,gBAAeA,GAAAA,GAE5G,WAAMiwB,GACJ,MAAMltF,QAAa41V,EAAAA,GAAAA,IAAQ,CACzBszH,YAAoB/7e,KAAKk+D,OAAOpjC,SAAS,kBAAmB,CAAElmB,KAAM2c,EAAAA,GAAW1H,QAASlnB,GAAIknB,EAAAA,GAAQkC,KACpGuxd,mBAAoBryb,EAAAA,GAAAA,IAAqBjrD,KAAKk+D,OAAQr0C,EAAAA,GAAQyC,UAAW,IACzEixd,oBAAoBtyb,EAAAA,GAAAA,IAAqBjrD,KAAKk+D,OAAQr0C,EAAAA,GAAQwC,WAAY,IAC1Emxd,gBAAoBvyb,EAAAA,GAAAA,IAAqBjrD,KAAKk+D,OAAQr0C,EAAAA,GAAQ8C,cAAe,IAC7E8wd,oBAAoBxyb,EAAAA,GAAAA,IAAqBjrD,KAAKk+D,OAAQr0C,EAAAA,GAAQ+C,WAAY,IAC1E8wd,kBAAoBzyb,EAAAA,GAAAA,IAAqBjrD,KAAKk+D,OAAQr0C,EAAAA,GAAQiD,QAAS,MAIzE,GADA1sB,OAAOC,OAAOL,KAAM6yB,GAChBA,EAAKyqd,kBAAkB/8e,MACzB,IACEP,KAAK4mb,WAAa/zZ,EAAKyqd,kBAAkB/8e,MACzCP,KAAKg8e,eAAgB,CACvB,CAAE,MAAO,CAEX,GAAInpd,EAAK0qd,mBAAmBh9e,MAC1B,IACEP,KAAK2mb,YAAc9zZ,EAAK0qd,mBAAmBh9e,MAC3CP,KAAKg8e,eAAgB,CACvB,CAAE,MAAO,CAEX,GAAInpd,EAAK6qd,iBAAiBn9e,MACxB,IACEP,KAAKo8e,UAAYvpd,EAAK6qd,iBAAiBn9e,MACvCP,KAAKm8e,kBAAmB,CAC1B,CAAE,MAAO,CAEPtpd,EAAK2qd,eAAej9e,QACtBP,KAAKm+D,QAAUlE,GAAMpnC,EAAK2qd,eAAej9e,OAAO0yH,MAChDjzH,KAAKq8e,gBAAiB,GAEpBxpd,EAAK4qd,mBAAmBl9e,QAC1BP,KAAKw8e,YAAcvib,GAAMpnC,EAAK4qd,mBAAmBl9e,OAAO0yH,MACxDjzH,KAAKu8e,oBAAqB,EAE9B,EACA/7d,IAAAA,GACE,MAAO,CACL8rR,QAAoB/6L,EAAAA,GAAAA,MACpBwqY,YAAoB,CAAC,EACrBuB,kBAAoB,CAAC,EACrB12D,WAAoB,GACpB22D,mBAAoB,CAAC,EACrB52D,YAAoB,GACpBq1D,eAAoB,EACpB0B,iBAAoB,CAAC,EACrBtB,UAAoB,GACpBD,kBAAoB,EACpBqB,eAAoB,CAAC,EACrBr/a,QAAoB,KACpBk+a,gBAAoB,EACpBoB,mBAAoB,CAAC,EACrBjB,YAAoB,KACpBD,oBAAoB,EACpBj7Z,OAAoB,GAExB,EACAnqD,SAAU,CACRjF,IAAAA,GACE,MAAMyT,EAAS3lC,KAAKk+D,OAAOhtD,QAAQ,wBAAwBqgB,EAAAA,GAAW1H,SAEtE,OAAO8b,GAAQilD,iBAAiBp2E,SAAS,OAASyd,GAAAA,GAAQ+E,GAAAA,EAC5D,EACAyld,eAAAA,GACE,MAAO,CAAEjuc,MAAOxuC,KAAKw8e,YACvB,GAEFz8b,OAAAA,GACE,IAAIoe,EAAUtoC,iBAAiB/zB,SAASgpE,MAAMnM,iBAAiB,aAC3D69a,EAAc3md,iBAAiB/zB,SAASgpE,MAAMnM,iBAAiB,UACnE,MAAM0tO,EAAOvqS,SAASw2B,cAAc,SAEhC+zQ,IACFluO,EAAUtoC,iBAAiBw2Q,GAAM1tO,iBAAiB,aAClD69a,EAAc3md,iBAAiBw2Q,GAAM1tO,iBAAiB,WAGxD3+D,KAAKm+D,QAAUn+D,KAAKm+D,SAAWA,EAAQj6C,OACvClkB,KAAKw8e,YAAcx8e,KAAKw8e,aAAeA,EAAYt4d,MACrD,EACA8T,QAAS,CACPkkd,UAAAA,CAAWjuZ,EAAKnqF,GACd9D,KAAK8D,GAAOmqF,CACd,EACAguZ,QAAAA,CAASl5e,GACP/C,KAAKshF,OAAS,GACdthF,KAAKshF,OAAOn4E,KAAKpG,EACnB,EACA,UAAM43B,CAAKgjd,GACT39e,KAAK+7e,YAAYx7e,MAAQP,KAAK+7e,YAAYx7e,MAAMm+U,WAAW,gBAAiB,IACxE1+U,KAAKg8e,eACPh8e,KAAKu9e,mBAAmBh9e,MAAQP,KAAK2mb,YACrC3mb,KAAKs9e,kBAAkB/8e,MAAQP,KAAK4mb,aAEpC5mb,KAAKu9e,mBAAmBh9e,MAAQ,GAChCP,KAAKs9e,kBAAkB/8e,MAAQ,IAE7BP,KAAKm8e,iBACPn8e,KAAK09e,iBAAiBn9e,MAAQP,KAAKo8e,UAEnCp8e,KAAK09e,iBAAiBn9e,MAAQ,GAE5BP,KAAKq8e,eACPr8e,KAAKw9e,eAAej9e,MAAQ05D,GAAMj6D,KAAKm+D,SAASzC,MAAMvxD,SAEtDnK,KAAKw9e,eAAej9e,MAAQ,KAE1BP,KAAKu8e,mBACPv8e,KAAKy9e,mBAAmBl9e,MAAQ05D,GAAMj6D,KAAKw8e,aAAa9gb,MAAMvxD,SAE9DnK,KAAKy9e,mBAAmBl9e,MAAQ,KAElCP,KAAKshF,OAAS,GACd,UACQ33E,QAAQ60B,IAAI,CAChBx+B,KAAK+7e,YAAYphd,OACjB36B,KAAKs9e,kBAAkB3id,OACvB36B,KAAKu9e,mBAAmB5id,OACxB36B,KAAKw9e,eAAe7id,OACpB36B,KAAKy9e,mBAAmB9id,OACxB36B,KAAK09e,iBAAiB/id,SAEpB36B,KAAK+7e,YAAYx7e,QAAUP,KAAKssS,SAClCC,EAAAA,GAAAA,IAAUvsS,KAAK+7e,YAAYx7e,OAE7Bw8e,GAAW/8e,KAAKk+D,QAChBy/a,GAAM,EACR,CAAE,MAAOp2e,IACPvH,KAAKshF,OAAOn4E,KAAK5B,IACjBo2e,GAAM,EACR,CACF,I,SIrJJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,mGCCE9jb,EAAAA,EAAAA,aAAkB+jb,E,WCVpB95e,IAAA,G,IAAAA,IAAA,EAwbMnB,GAAG,aACHqrC,MAAM,e,GAzbZ,gB,GAAA,gB,GAAA,gB,GAAA,gB,yTAgaiBP,EAAA0xE,YAAYxxC,SAAW//B,EAAAiwc,WAAQ,kBAA9Chkb,EAAAA,EAAAA,aAAkD+tB,EAAA,CAhapD9jF,IAAA,yBAiaEiqC,EAAAA,EAAAA,oBAqGM,MAtgBRa,GAAA,CAmaYnB,EAAAo1Q,eAAY,kBADpBhpP,EAAAA,EAAAA,aAmBWygb,EAAA,CArbfx2e,IAAA,EAoaOqtB,SAAUyc,EAAA8vE,aACVn9G,MAAOqtC,EAAAgmR,UACP1hS,KAAM0b,EAAA1b,KACN,YAAW2b,EAAA0qQ,SACXpmR,GAAIyb,EAAAzb,GACJ,YAAWyb,EAAAkwc,SACX,aAAYlwc,EAAAmwc,gBACZ,WAAUnwc,EAAAowc,cACV,gBAAepwc,EAAAusR,YACf,mBAAkBvsR,EAAAqwc,gBAClB,wBAAuBvwc,EAAAwwc,oBACvB,iBAAgBxwc,EAAAgqQ,e,CA/avB1hR,SAAAssC,EAAAA,EAAAA,UAibM,IAGE,CAFMz0B,EAAAtuB,QAAUsuB,EAAAswc,WAAQ,kBAD1Btkb,EAAAA,EAAAA,aAGEukb,EAAA,CApbRt6e,IAAA,EAmbSvD,MAAOqtC,EAAAgmR,W,oBAnbhBxlR,EAAAA,EAAAA,oBAAA,UAAAyW,EAAA,G,kKAAAzW,EAAAA,EAAAA,oBAAA,OAubYP,EAAAwzC,YAAS,kBADjBtzC,EAAAA,EAAAA,oBAeM,MAfNc,GAeM,uBAVJd,EAAAA,EAAAA,oBASEmrB,EAAAA,SAAA,MApcRC,EAAAA,EAAAA,YA4b2BvrB,EAAA0zC,QA5b3B,CA4bgB/5E,EAAK7D,M,kBADfm2D,EAAAA,EAAAA,aASE0nB,EAAA,CAPCz9E,IAAKJ,EACN8qC,MAAM,QACL,cAAW,eAAiB9qC,IAC5BwwB,MAAO2Z,EAAA4e,UAAU5e,EAAA2zC,aAAaj6E,GAAKd,SACnC0nC,KAAMN,EAAA2zC,aAAaj6E,GAAK4mC,KACxBszC,UAAU,EACVC,QAAKloB,GAAE3rB,EAAA8zC,WAAWj+E,I,8DAnc3B0qC,EAAAA,EAAAA,oBAAA,OAwcYP,EAAAwwc,SAAWzwc,EAAA0wc,eAAY,kBAD/Bzkb,EAAAA,EAAAA,aAIE0kb,EAAA,CA3cNz6e,IAAA,EAycO0c,KAAMotB,EAAA4wc,UACN,aAAY/wc,EAAAgxc,gB,+BAIF5wc,EAAA6wc,SAAM,kBADnB7kb,EAAAA,EAAAA,aAWE6rB,EAAA,CAxdN5hF,IAAA,EA+cMkrC,IAAI,eACHzuC,MAAOqtC,EAAArtC,MACP2xB,KAAM0b,EAAA1b,KACNuQ,KAAMmL,EAAAnL,KACN,gBAAeoL,EAAA+pD,aACf,aAAYnqD,EAAAq4C,UACZ,gBAAel4C,EAAArtC,MAAQqtC,EAAArtC,MAAMwlF,aAAe,KAC5C,iBAAY93E,EAAA,KAAAA,EAAA,GAAAurD,GAAE/rB,EAAA1V,MAAM,QAASyhC,IAC7BsqB,QAAK71E,EAAA,KAAAA,EAAA,GAAElL,GAAG6qC,EAAA0zC,OAAOn4E,KAAKpG,K,kGAGzB82D,EAAAA,EAAAA,cAcEonB,EAAAA,EAAAA,yBAbKpzC,EAAA8wc,gBADPn8a,EAAAA,EAAAA,YAcE,CAxeN1+D,IAAA,EA6dMkrC,IAAI,OACIzuC,MAAOqtC,EAAArtC,MA9drB,iBAAA0N,EAAA,KAAAA,EAAA,GAAAurD,GA8dqB5rB,EAAArtC,MAAKi5D,IACZ/rB,EAAAG,MAAK,CACZ,cAAaH,EAAAoqQ,WACb,aAAYpqQ,EAAAq4C,UACZ5zD,KAAM0b,EAAA1b,KACN,gBAAe0b,EAAAgxc,aACf,aAAYhxc,EAAAgmR,UACZ,YAAW/lR,EAAA0qQ,SACX,iBAAYtqS,EAAA,KAAAA,EAAA,GAAAurD,GAAE/rB,EAAA1V,MAAM,QAASyhC,IAC7Bqlb,aAAahxc,EAAAixc,a,8GAIRjxc,EAAAtuB,QAAM,wCADdwuB,EAAAA,EAAAA,oBAME,UAhfNjqC,IAAA,EA6eO,cAAa4pC,EAAA4rB,gBAAkB,UAChCtrB,MAAM,OACLilD,WAAQhlF,EAAA,KAAAA,EAAA,GAAAurD,GAAE3rB,EAAAqlD,UAAU,gB,QA/e3BpkD,KAAA,IA4euB,CAAC,QAAD,UAAa,GAAnBqkD,MAAX,OA5eN/kD,EAAAA,EAAAA,oBAAA,OAkfYP,EAAAtuB,QAAM,wCADdwuB,EAAAA,EAAAA,oBAME,UAvfNjqC,IAAA,EAofO,cAAa4pC,EAAA4rB,gBAAkB,UAChCtrB,MAAM,OACLilD,WAAQhlF,EAAA,KAAAA,EAAA,GAAAurD,GAAE3rB,EAAAqlD,UAAU,oB,QAtf3BnkD,KAAA,IAmfuB,CAAC,QAAD,UAAa,GAAnBokD,MAAX,OAnfN/kD,EAAAA,EAAAA,oBAAA,OAyfYP,EAAAtuB,QAAM,wCADdwuB,EAAAA,EAAAA,oBAME,UA9fNjqC,IAAA,EA2fO,cAAa4pC,EAAA4rB,gBAAkB,QAChCtrB,MAAM,OACLilD,WAAQhlF,EAAA,KAAAA,EAAA,GAAAurD,GAAE3rB,EAAAqlD,UAAU,kB,QA7f3B5P,KAAA,IA0fuB,CAAC,QAAD,UAAa,GAAnB6P,MAAX,OA1fN/kD,EAAAA,EAAAA,oBAAA,OAggBYP,EAAAtuB,QAAM,wCADdwuB,EAAAA,EAAAA,oBAME,UArgBNjqC,IAAA,EAkgBO,cAAa4pC,EAAA4rB,gBAAkB,QAChCtrB,MAAM,OACLilD,WAAQhlF,EAAA,KAAAA,EAAA,GAAAurD,GAAE3rB,EAAAqlD,UAAU,c,QApgB3BjR,KAAA,IAigBuB,CAAC,QAAD,UAAa,GAAnBkR,MAAX,OAjgBN/kD,EAAAA,EAAAA,oBAAA,S,mDCyaOJ,MAAM,Y,IAEFA,MAAM,S,IACJA,MAAM,iB,IA5anBlqC,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,EAodckqC,MAAM,kB,IAIJA,MAAM,2B,GAxdtB,S,IAAAlqC,IAAA,EAyeUkqC,MAAM,a,IAzehBlqC,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,G,IA8fmGkqC,MAAM,a,IAI5FA,MAAM,iC,IACJA,MAAM,W,GAngBrB,a,+YAyaED,EAAAA,EAAAA,oBAyJM,MAzJNa,GAyJM,EAxJJO,EAAAA,EAAAA,oBAiIS,gBAhIPA,EAAAA,EAAAA,oBAqFM,MArFNN,GAqFM,EApFJM,EAAAA,EAAAA,oBA0DM,MA1DNL,GA0DM,EAzDJK,EAAAA,EAAAA,oBAwDK,WAtDKtB,EAAAwqD,WAAQ,kBADhBx+B,EAAAA,EAAAA,aAKW80B,EAAA,CAnbvB7qF,IAAA,EAgbemtG,WAAW,G,CAhb1Bj7E,SAAAssC,EAAAA,EAAAA,UAkbc,IAAwB,EAlbtCj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAkbiBT,EAAAsmC,OAAO+1C,aAAW,MAlbnCrlE,EAAA,O,kBAobYgV,EAAAA,EAAAA,aAKW80B,EAAA,CAzbvB7qF,IAAA,EAsbemtG,WAAW,G,CAtb1Bj7E,SAAAssC,EAAAA,EAAAA,UAwbc,IAAiB,EAxb/Bj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAwbiBT,EAAAq8E,aAAW,MAxb5BrlE,EAAA,KA2boBhX,EAAAwwP,WAAQ,kBADhBxkO,EAAAA,EAAAA,aAQc01B,EAAA,CAlc1BzrF,IAAA,EA4benD,GAAIktC,EAAAwwP,SACLzgN,KAAK,OACL5vC,MAAM,8BACL,aAAYH,EAAAsmC,OAAO+1C,a,CA/blCl0F,SAAAssC,EAAAA,EAAAA,UAicc,IAAwB,EAjctCj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAiciBT,EAAAsmC,OAAO+1C,aAAc,KAC1B,MAlcZrlE,EAAA,G,4CAmcY9W,EAAAA,EAAAA,oBAA6C,OAnczDgB,IAAAT,EAAAA,EAAAA,iBAmc4BT,EAAAsmC,OAAO+1C,aAAc,IAAC,IAC1Bx8E,EAAAntC,OAAO+rU,gCAAkC5+R,EAAAntC,OAAO+rU,+BAA+B5+R,EAAA6qQ,YAAQ,kBAAnGxqQ,EAAAA,EAAAA,oBAAkK,OApc9Ku1C,IAAAh1C,EAAAA,EAAAA,iBAocqHZ,EAAAntC,OAAO+rU,+BAA+B5+R,EAAA6qQ,WAAQ,wBACvJ1+O,EAAAA,EAAAA,aAOEkkB,EAAA,CA5cdj6E,IAAA,EAucckqC,MAAM,0BACLxzB,EAAC,yBAA6BkzB,EAAA6qQ,SAC9Bn2Q,QAASsL,EAAAuwc,gBACTj1e,KAAM6kC,EAAAq8E,YACN60X,YAAY,G,iCAGNlxc,EAAAwqD,UAAYxqD,EAAAsmC,OAAOxzB,YAAS,kBADrCkZ,EAAAA,EAAAA,aAIEmlb,EAAA,CAjddl7e,IAAA,EA+cckqC,MAAM,iBACLztC,MAAOmtC,EAAAntC,O,oBAhdtB6tC,EAAAA,EAAAA,oBAAA,QAmdqBP,EAAAwqD,UAAY3qD,EAAAntC,MAAMi6U,mBAAgB,kBAD3CzsS,EAAAA,EAAAA,oBAQO,OARPk0C,GAQO,uBAJL9yC,EAAAA,EAAAA,oBAGE,IAHF+yC,GAGE,cAFiBz0C,EAAAnhC,EAAE,oDAvdnC8hC,EAAAA,EAAAA,oBAAA,OA4doBP,EAAAg4Y,KAASh4Y,EAAAs1V,sBAAoB,wCADrCp1V,EAAAA,EAAAA,oBASI,KApehBjqC,IAAA,EA8dckqC,MAAM,oBACN9U,IAAI,+BACJ14B,OAAO,SACNwiF,KAAMn1C,EAAAs1V,qBAAqB1/V,K,cAE5B0L,EAAAA,EAAAA,oBAAqC,KAAlCnB,MAAM,2BAAyB,aAnehDo0C,KAAA,IA6d+B30C,EAAAnhC,EAAEuhC,EAAAs1V,qBAAqBC,SAAW,wCA7djEh1V,EAAAA,EAAAA,oBAAA,WAweiBP,EAAAwqD,UAxejBjqD,EAAAA,EAAAA,oBAAA,SAweyB,kBADjBL,EAAAA,EAAAA,oBAwBM,MAxBNs0C,GAwBM,CApBQx0C,EAAAoxc,aAAepxc,EAAA61R,UAAO,kBAAlC31R,EAAAA,EAAAA,oBAAwK,OA3elLw0C,GAAA,EAAAl0C,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA2eiDb,EAAAnhC,EAAE,oCAAqC,KAAE,IAAA61D,EAAAA,EAAAA,aAAiFotB,EAAA,CAAnE5uF,GAAIktC,EAAA61R,QAAQ/jB,gB,CA3epH3pR,SAAAssC,EAAAA,EAAAA,UA2eoI,IAAyB,EA3e7Jj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA2euIT,EAAA61R,QAAQryN,aAAW,MA3e1JxsD,EAAA,G,aA4e2BhX,EAAAqxc,cAAW,kBAA5Bnxc,EAAAA,EAAAA,oBAAqJ,OA5e/Jy0C,GAAA,EAAAn0C,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA4e2Cb,EAAAnhC,EAAE,sCAAuC,KAAE,IAAA61D,EAAAA,EAAAA,aAAkEotB,EAAA,CAApD5uF,GAAIktC,EAAAsxc,mBAAiB,CA5ezHnpd,SAAAssC,EAAAA,EAAAA,UA4e2H,IAAe,EA5e1Ij0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA4e8HT,EAAAtU,WAAS,MA5evIsrB,EAAA,G,aA6e2BhX,EAAAtU,YAAcsU,EAAAuxc,wBAAqB,kBAApDrxc,EAAAA,EAAAA,oBAYO,OAzfjB40C,GAAA,EAAAt0C,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA8eeb,EAAAnhC,EAAE,sCAAuC,KAC5C,GACSuhC,EAAA0tS,wB,kBAMTxtS,EAAAA,EAAAA,oBAEO,OAxfnB60C,IAAAt0C,EAAAA,EAAAA,iBAufiBT,EAAAtU,WAAS,MAPgB,kBAD9BsgC,EAAAA,EAAAA,aAMc01B,EAAA,CArf1BzrF,IAAA,EAifenD,GAAIktC,EAAAg5S,kBACL,cAAY,gC,CAlf1B7wT,SAAAssC,EAAAA,EAAAA,UAofc,IAAe,EApf7Bj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAofiBT,EAAAtU,WAAS,MApf1BsrB,EAAA,G,eAAAzW,EAAAA,EAAAA,oBAAA,OA0fsBP,EAAAsmC,OAAO5yB,UAAO,kBAA1BxT,EAAAA,EAAAA,oBAGS,OA7fnB80C,GAAA,EAAAx0C,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA0fyCb,EAAAnhC,EAAE,gCAAiC,KAAE,IAAA61D,EAAAA,EAAAA,aAGlEk9a,EAAA,CAFArxc,MAAM,YACLztC,MAAOmtC,EAAAntC,MAAMwkC,mB,sBA5f1BqJ,EAAAA,EAAAA,oBAAA,OA8fsBV,EAAAntC,MAAMuvV,kBAAe,kBAAjC/hT,EAAAA,EAAAA,oBAAkJ,OA9f5J+0C,GAAA,EAAAz0C,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA8fgDb,EAAAnhC,EAAE,yCAA0C,IAAC,IAAA6iC,EAAAA,EAAAA,oBAAwD,OAAxD8zC,IAAwD30C,EAAAA,EAAAA,iBAA5BZ,EAAAntC,MAAMygV,cAAY,OA9f3I5yS,EAAAA,EAAAA,oBAAA,aAigBMgB,EAAAA,EAAAA,YAyCO3B,EAAA4B,OAAA,YAzCP,IAyCO,EAxCLF,EAAAA,EAAAA,oBAuCM,MAvCN+zC,GAuCM,EAtCJ/zC,EAAAA,EAAAA,oBAqCM,MArCNg0C,GAqCM,CAnCIt1C,EAAAg0S,eAAiBh0S,EAAAmpS,cAAgBppS,EAAA0xc,aAAezxc,EAAAtuB,SAAM,kBAD9DwuB,EAAAA,EAAAA,oBAQS,UA5gBrBjqC,IAAA,EAsgBc8Q,KAAK,SACLo5B,MAAM,iCACL1X,UAAWuX,EAAAg0S,cAActzT,QACzBkhB,QAAKxhC,EAAA,KAAAA,EAAA,OAAApG,IAAEgmC,EAAA0xc,qBAAA1xc,EAAA0xc,uBAAA13e,M,qBAELgmC,EAAAg0S,cAAc3tT,OAAK,EA3gBpCkvD,MAAAh1C,EAAAA,EAAAA,oBAAA,OA8gBoBP,EAAA2xc,sBAAmB,kBAD3B3lb,EAAAA,EAAAA,aAOEw5B,EAAA,CAphBdvvF,IAAA,EA+gBevD,QAASstC,EAAA+/C,kBACV,YAAU,KACT96E,QAAS+6B,EAAA4xc,iBACVzxc,MAAM,QACL,iBAAcH,EAAA6xc,qB,+CAnhB7Btxc,EAAAA,EAAAA,oBAAA,OAuhBoBP,EAAA8xc,aAAe9xc,EAAAtuB,SAAM,kBAD7Bs6C,EAAAA,EAAAA,aAKEw5B,EAAA,CA3hBdvvF,IAAA,EAwhBsBvD,MAAOstC,EAAAmpS,YAxhB7B,iBAAA/oU,EAAA,KAAAA,EAAA,GAAAurD,GAwhB6B3rB,EAAAmpS,YAAWx9Q,GACzB1mD,QAAS+6B,EAAA8xc,YACV3xc,MAAM,S,8BA1hBpBI,EAAAA,EAAAA,oBAAA,OA8hBoBP,EAAAtuB,SAAM,kBADdwuB,EAAAA,EAAAA,oBAUS,UAviBrBjqC,IAAA,EA+hBckrC,IAAI,UACJ,cAAY,uBACZ,gBAAc,OACdp6B,KAAK,SACLo5B,MAAM,gCACLyB,QAAKxhC,EAAA,KAAAA,EAAA,OAAApG,IAAEgmC,EAAA2B,aAAA3B,EAAA2B,eAAA3nC,K,cAERsnC,EAAAA,EAAAA,oBAA+B,KAA5BnB,MAAM,qBAAmB,kBAtiB1CI,EAAAA,EAAAA,oBAAA,oBA8iBI+zB,EAAAA,EAAAA,aAIEs4a,EAAA,CAHCtpd,SAAUuc,EAAAntC,MACVqU,KAAMg5B,EAAA8sc,cACNr8M,SAAUzwP,EAAA+sc,mB,uCAIL9sc,EAAA4pS,QAAU5pS,EAAAtuB,SAAWsuB,EAAAsmC,OAAOyra,aAAU,kBAD9C/lb,EAAAA,EAAAA,aAKE0nB,EAAA,CAzjBNz9E,IAAA,EAsjBMkqC,MAAM,qBACLQ,MAAOX,EAAA4pS,OAAOjpS,MACdta,MAAO2Z,EAAA4pS,OAAOhxU,S,4BAxjBrB2nC,EAAAA,EAAAA,oBAAA,OA2jBYP,EAAAgyc,eAAe/+a,OAAI,kBAD3BjH,EAAAA,EAAAA,aAKE0nB,EAAA,CA/jBNz9E,IAAA,EA4jBM0qC,MAAM,UACNR,MAAM,QACL9Z,MAAOuZ,EAAAnhC,EAAE,yCAA0CuhC,EAAAgyc,iB,oBA9jB1Dzxc,EAAAA,EAAAA,oBAAA,QAikBIgB,EAAAA,EAAAA,YAAQ3B,EAAA4B,OAAA,kBAAAztC,GAAA,I,kHC1jBL,MAAMgrS,GAAO,Q,gBDgBpB,IAEE5jS,KAAM,yBAEN82D,WAAY,CACVggb,WAAU,KAAE/2Z,OAAM,KAAE4K,YAAW,KAAE0nZ,eAAc,GAAErrZ,SAAQA,GAAAA,GAE3DvsF,MAAO,CACLlD,MAAO,CACLqU,KAASxU,OACT41B,QAASA,KACA,CAAC,IAIZ9D,KAAM,CACJtd,KAASvQ,OACT2xB,QAAS,UAGXuiR,SAAU,CACR3jS,KAASvQ,OACT2xB,QAAS,UAGX7D,GAAI,CACFvd,KAASvQ,OACT2xB,QAASw0D,GAAAA,IAGXszZ,SAAU,CACRlpe,KAAShG,QACTonB,SAAS,GAGX+pd,UAAW,CACTnre,KAAShG,QACTonB,SAAS,GAGXgqd,QAAS,CACPpre,KAAShG,QACTonB,SAAS,GAGX0hR,cAAe,CACb9iS,KAASvQ,OACT2xB,QAAS,MAGX7E,SAAU,CACRvc,KAASvQ,OACT2xB,QAAS,MAGXiod,gBAAiB,CACfrpe,KAASvQ,OACT2xB,QAAS,MAGXkod,oBAAqB,CACnBtpe,KAASvQ,OACT2xB,QAAS,MAGXmkS,YAAa,CACXvlT,KAAShG,QACTonB,SAAS,IAIbxV,IAAAA,GACE,MAAO,CACL8+d,YAAmBjtd,GAAAA,GACnBqod,cAAmB7md,GAAAA,GAAe8nd,MAClChB,kBAAmBvld,GAAAA,GAAc6qd,iBAErC,EAEA9od,SAAU,CACR0uZ,GAAAA,GACE,OAAO7lb,KAAKk+D,OAAOhtD,QAAQ,YAC7B,EAEAy0B,MAAAA,GACE,MAAMvF,EAAUpgC,KAAK03S,eAAiB13S,KAAKk+D,OAAOhtD,QAAQ,gBAAgBlR,KAAKmxB,UAE/E,OAAOnxB,KAAKk+D,OAAOhtD,QAAQ,GAAIkvB,eAAuBpgC,KAAKmxB,SAC7D,EAEA5R,MAAAA,GACE,OAAOvf,KAAKkyB,OAAS8E,GAAAA,EACvB,EAEA6uD,MAAAA,GACE,OAAO7lF,KAAKkyB,OAASD,GAAAA,EACvB,EAEAomE,QAAAA,GACE,OAAOr4F,KAAKkyB,OAASK,GAAAA,EACvB,EAEA0sd,WAAAA,GACE,OAAOj/e,KAAK2lC,QAAQhjC,KAAO0qC,EAAAA,EAC7B,EAEA6yc,SAAAA,GACE,OAAOlgf,KAAK2lC,QAAQhjC,KAAO4uB,EAAAA,GAAW+3B,OACxC,EAEA62b,kBAAAA,GACE,OAAOngf,KAAK2lC,QAAQhjC,KAAO8tS,EAAAA,GAAKC,gBAClC,EAEA0uM,qBAAAA,GACE,QAASp/e,KAAKO,MAAMuoC,UACtB,EAEAvP,SAAAA,GACE,OAAIv5B,KAAKO,OAAO+4B,UAAUC,UACjBv5B,KAAKO,OAAO+4B,UAAUC,UAGxB,IACT,EAEAsoT,aAAAA,GACE,OAAO7hV,KAAKO,OAAOshV,aACrB,EAEAu+J,cAAAA,GACE,OAAsB,SAAdpgf,KAAKkyB,MAAiC,SAAdlyB,KAAKkyB,OAAoBlyB,KAAKi+e,iBAAiBn9e,QAAUd,KAAKO,OAAO8wG,aAAavwG,MACpH,EAEA+lV,iBAAAA,GACE,OAAK7mV,KAAKi/e,YAYH,KAXEj/e,KAAKO,MAAMsmV,mBAAqB,CACrC79U,KAAQ,gCACRxH,OAAQ,CACN8tB,QAAUtvB,KAAK2xB,OAAOnwB,OAAO8tB,QAC7BuC,QAAU7xB,KAAKk+D,OAAOhtD,QAAQ,aAC9BigB,SAAUkc,EAAAA,GACV1qC,GAAU3C,KAAK2xB,OAAOnwB,OAAO+3B,WAMrC,EAEA2ld,WAAAA,GACE,OAAOl/e,KAAKk+D,OAAOhtD,QAAQ,eAAiBmve,MAAgBrgf,KAAKO,OAAO+4B,UAAUC,SACpF,EAEA4ld,iBAAAA,GACE,MAAO,CACLn2e,KAAQ,gCACRxH,OAAQ,CACN8tB,QAAUtvB,KAAK2xB,OAAOnwB,OAAO8tB,QAC7BuC,QAAU7xB,KAAKk+D,OAAOhtD,QAAQ,aAC9BigB,SAAUy4Q,EAAAA,GAAM6J,UAChB9wS,GAAU3C,KAAK2xB,OAAOnwB,OAAO+3B,WAGnC,EAEAmqS,OAAAA,GACE,GAAI1jU,KAAKi/e,YAAa,CACpB,MAAM3vd,EAAUtvB,KAAKk+D,OAAOhtD,QAAQ,kBAEpC,GAAIoe,EAAS,CACX,MAAM3sB,GAAM3C,KAAKO,OAAO+4B,UAAUyC,QAAU,CAAC,GAAGutB,GAAAA,IAEhD,OAAOtpD,KAAKk+D,OAAOhtD,QAAQ,mBAAmBqgB,EAAAA,GAAW+3B,QAAS,GAAIh6B,EAAQ3sB,MAAQA,IACxF,CACF,CAEA,OAAO,IACT,EAEA80U,MAAAA,GACE,GAAIz3U,KAAKO,OAAOq/F,UAAU91F,MAAO,CAC/B,MAAMw2e,EAAsBtgf,KAAKsM,EAAE,0DAAsD1K,GAAW,GAEpG,MAAO,CACL4sC,MAAS,QACT/nC,QAASzG,KAAKO,MAAMq/F,SAASn5F,SAAW65e,EAE5C,CAEA,GAAItgf,KAAKO,OAAOy5B,MAAM8e,OACpB,MAAO,CACLtK,MAAS,OACT/nC,QAASzG,KAAKsM,EAAE,kCAIpB,GAAItM,KAAKO,OAAOq/F,UAAUj+D,cAAe,CACvC,MAAM4+c,EAA8Bvgf,KAAKsM,EAAE,kEAA8D1K,GAAW,GAEpH,MAAO,CACL4sC,MAAS,OACT/nC,QAASzG,KAAKO,MAAMq/F,SAASn5F,SAAW85e,EAE5C,CAEA,OAAO,IACT,EAEApsa,MAAAA,GACE,MAAM+1C,EAAclqH,KAAKO,OAAOojU,oBAAsB3jU,KAAKk+D,OAAOhtD,QAAQ,qBAAqBlR,KAAK2lC,QAC9F9T,EAAU7xB,KAAKk+D,OAAOhtD,QAAQ,kBAAkBlI,KAEhDw3e,EAAkB,CACtBx3e,KAAQ,6BACRxH,OAAQ,CACN2vB,SAAUnxB,KAAKmxB,SACfU,YAIEwsQ,EAAWr+R,KAAKO,OAAO+tT,wBAA0BkyL,EAEnDxgf,KAAKk+e,sBACP7/M,EAASr1R,KAAOhJ,KAAKk+e,qBAGvB,MAAM99b,EAAcpgD,KAAKk+D,OAAOhtD,QAAQ,uBAAwBlR,KAAKmxB,UAC/DtM,EAAM,CACVqlG,cAAam0K,cAAaj+O,GAG5B,OAAOv7B,CACT,EAEA+oE,iBAAAA,GACE,OAAO5tF,KAAKk+D,OAAOhtD,QAAQ,aAAa28E,EAAAA,GAC1C,EAEA4xZ,gBAAAA,GACE,MAAO,CACL,CACErpd,WAAY,yCACZ+X,KAAY,YACZ5tC,OAAY,GAEd,CACE61B,WAAY,yCACZ+X,KAAY,YACZ5tC,OAAY,GAGlB,EAEAo/e,WAAAA,GACE,MAAM96d,EAAM,GA8BZ,OA5BK7kB,KAAK+/e,WACRl7d,EAAI1b,KAAK,CACP8qB,SAAU,iCACV1zB,MAAU8xB,GAAAA,KAITryB,KAAKggf,UAA2C,IAAhChgf,KAAKm0E,QAAQy9S,gBAChC/sW,EAAI1b,KAAK,CACP8qB,SAAU,iCACV1zB,MAAU6xB,GAAAA,KAITpyB,KAAK89e,UACRj5d,EAAI1b,KAAK,CACP8qB,SAAU,gCACV1zB,MAAU2sS,GAAAA,KAITltS,KAAKm6T,aACRt1S,EAAI1b,KAAK,CACP8qB,SAAU,+BACV1zB,MAAUiqF,GAAAA,KAIT3lE,EAAI/jB,OAAS,EACT,KAGF+jB,CACT,EAEAmyT,YAAa,CACX5oU,GAAAA,GACE,OAAOpO,KAAKmyB,EACd,EAEA9jB,GAAAA,CAAImC,GACF,OAASA,GACT,KAAK6hB,GAAAA,GACHryB,KAAKkrF,QAAQC,WAAW,CACtB,CAAC2hN,GAAAA,GAAO1hN,GAAAA,GACR,CAACb,GAAAA,IAAOa,GAAAA,KAEV,MACF,KAAKh5D,GAAAA,GACHpyB,KAAKkrF,QAAQC,WAAW,CACtB,CAAC2hN,GAAAA,GAAO1hN,GAAAA,GACR,CAACb,GAAAA,IAAOn4D,GAAAA,KAEV,MACF,KAAK86Q,GAAAA,GACHltS,KAAKkrF,QAAQC,WAAW,CACtB,CAAC2hN,GAAAA,GAAO1hN,GAAAA,GACR,CAACb,GAAAA,IAAO2iN,GAAAA,KAEV,MACF,KAAK1iN,GAAAA,GACHxqF,KAAKkrF,QAAQC,WAAW,CACtB,CAAC2hN,GAAAA,GAAO1hN,GAAAA,GACR,CAACb,GAAAA,IAAOC,GAAAA,KAEV,MAEJ,GAGFg1Z,mBAAAA,GACE,QAASx/e,KAAKO,MAAM4tT,kBAAoBnuT,KAAKkyB,OAAS8E,GAAAA,IAASh3B,KAAKmyB,KAAOq4D,GAAAA,EAC7E,EAEAq1Z,cAAAA,GACE,MAAM,MAAEt/e,GAAUP,KACZ+7B,EAASx7B,GAAO+4B,UAAUyC,QAAU,CAAC,EAErC0kd,EAAY1kd,EAAOmqQ,GAAAA,GAAWG,aAAe,GAC7C3oG,EAAU3hK,EAAOmqQ,GAAAA,GAAWI,eAAiBvqQ,EAAOmqQ,GAAAA,GAAWK,WAAa,GAElF,MAAO,CACLzlO,KAAS9gE,KAAKkyB,OAASD,GAAAA,MAAWwud,EAClC7re,KAASrU,GAAOwtB,MAAQ,GACxBkzB,QAASy8I,EAAU,MAAQ,KAC3BA,UACA+iT,YAEJ,EAEAv2X,WAAAA,GACE,IAAIA,EAAclqH,KAAKO,MAAM8wG,YAM7B,OAJIrxG,KAAKmgf,qBACPj2X,EAAclqH,KAAKO,MAAMkjU,oBAGpBzjU,KAAKogf,eAAiB,MAAOl2X,IAAiBA,CACvD,EAEAm0K,QAAAA,GACE,MAAM,OAAElqN,GAAWn0E,KAEnB,OAAOm0E,GAAQkqN,QACjB,EAEAk9C,qBAAAA,GACE,OAAOv7U,KAAKk+D,OAAOhtD,QAAQ,kBAAkBqqU,uBAA0D,OAAjCv7U,KAAKO,MAAMsmV,iBACnF,EAEAs8C,oBAAAA,GACE,OAAOnjY,KAAKO,MAAM4iY,oBACpB,GAGFnrW,QAAS,CACP5pB,IAAG,MAEHohC,WAAAA,GACExvC,KAAKk+D,OAAO+C,OAAO,mBAAoB,CACrC1xC,UAAWvvB,KAAKO,MAChB6gE,KAAWphE,KAAKo4B,MAAMzE,SAE1B,EAEA+rd,mBAAAA,CAAoB38e,GAClB/C,KAAKk+D,OAAOpjC,SAAS,YAAa,CAAEh3B,IAAK+pF,EAAAA,GAAgBttF,QAASwC,GACpE,EAEAw8e,mBAAAA,GACE,MAAM3rd,EAAS5zB,KAAK6hV,cAEpB,GAAIjuT,EAAQ,CACV,MAAMlsB,EAAK1H,KAAKO,MAAMqzB,EAAOA,QAEzBlsB,GACFA,EAAGM,MAAMhI,KAAKO,MAAO,GAEzB,CACF,I,SE5ZJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UCTAuD,IAAA,EAqLMkqC,MAAM,U,IAEAA,MAAM,S,IAvLlBlqC,IAAA,EAwMMkqC,MAAM,e,IAEAA,MAAM,S,IAGNA,MAAM,W,IA7MlBlqC,IAAA,G,IA2NgBkqC,MAAM,S,IA3NtBlqC,IAAA,G,IAAAA,IAAA,EA2OMkqC,MAAM,U,IAEDA,MAAM,Q,IACHA,MAAM,S,IA9OpBlqC,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,EAgRMkqC,MAAM,e,IAEAA,MAAM,S,IAlRlBlqC,IAAA,G,4PA+KEiqC,EAAAA,EAAAA,oBA6HM,OA5HJC,OAhLJC,EAAAA,EAAAA,gBAAA,CAgLU,aAAY,CAAA3W,MACFuW,EAAA0iB,Y,CAGR1iB,EAAA6yc,gBAAa,kBADrB3yc,EAAAA,EAAAA,oBAiBM,MAjBNa,GAiBM,EAbJO,EAAAA,EAAAA,oBAEO,OAFPN,IAEOP,EAAAA,EAAAA,iBADFb,EAAAnhC,EAAE,wCAAyC,KAChD,IACA6iC,EAAAA,EAAAA,oBASO,mCARLpB,EAAAA,EAAAA,oBAOcmrB,EAAAA,SAAA,MAlMtBC,EAAAA,EAAAA,YA4L8BtrB,EAAA/E,YAAbvP,K,kBADTsgC,EAAAA,EAAAA,aAOc01B,EAAA,CALXzrF,IAAKy1B,EAAUvwB,KACfrI,GAAI44B,EAAUomR,eACf3xQ,MAAM,qB,CA/LhBhY,SAAAssC,EAAAA,EAAAA,UAiMU,IAAoB,EAjM9Bj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAiMa/U,EAAUvwB,MAAI,MAjM3B67C,EAAA,G,4BAAAzW,EAAAA,EAAAA,oBAAA,OAuMYP,EAAAmU,cAAW,kBADnBjU,EAAAA,EAAAA,oBAQM,MARNe,GAQM,EAJJK,EAAAA,EAAAA,oBAEO,OAFPJ,IAEOT,EAAAA,EAAAA,iBADFb,EAAAnhC,EAAE,yCAA0C,KACjD,IACA6iC,EAAAA,EAAAA,oBAA8C,OAA9Cm0C,IAA8Ch1C,EAAAA,EAAAA,iBAArBT,EAAAmU,aAAW,OA7M1C5T,EAAAA,EAAAA,oBAAA,OAgNeP,EAAA8yc,aAAU,kBAArB5yc,EAAAA,EAAAA,oBAuBM,MAvOVk0C,GAAA,uBAiNMl0C,EAAAA,EAAAA,oBAqBMmrB,EAAAA,SAAA,MAtOZC,EAAAA,EAAAA,YAkN+BtrB,EAAA9jC,SAlN/B,CAkNe8wC,EAAOj6C,M,kBADhBmtC,EAAAA,EAAAA,oBAqBM,OAnBHjqC,IAAKlD,EACNotC,MAAM,W,uBAEND,EAAAA,EAAAA,oBAeMmrB,EAAAA,SAAA,MArOdC,EAAAA,EAAAA,YAuNgCte,GAvNhC,CAuNkBl5C,EAAQ+B,M,kBADlBqqC,EAAAA,EAAAA,oBAeM,OAbHjqC,IAAKJ,EACNsqC,MAAM,U,EAENmB,EAAAA,EAAAA,oBAEO,OAFP+yC,IAEO5zC,EAAAA,EAAAA,iBADF3sC,EAAOuyB,OAAQ,KACpB,GAGQvyB,EAAO+/C,YAAS,kBAFxBmY,EAAAA,EAAAA,cAKEonB,EAAAA,EAAAA,yBAJKt/E,EAAO+/C,YADd8gB,EAAAA,EAAAA,YAKE,CAnOZ1+D,IAAA,EAiOavD,MAAOoB,EAAO4tC,QAjO3BuvD,SAAA,GAkOoBn9F,EAAOggD,eAAa,wCAE9B5T,EAAAA,EAAAA,oBAAwC,OApOlDq0C,IAAA9zC,EAAAA,EAAAA,iBAoO0B3sC,EAAO4tC,SAAO,S,qBApOxCnB,EAAAA,EAAAA,oBAAA,OA0OYP,EAAA+yc,YAAS,kBADjB7yc,EAAAA,EAAAA,oBAmCM,MAnCNs0C,GAmCM,EA/BJlzC,EAAAA,EAAAA,oBA8BM,MA9BNozC,GA8BM,EA7BJpzC,EAAAA,EAAAA,oBAEO,OAFPqzC,IAEOl0C,EAAAA,EAAAA,iBADFb,EAAAnhC,EAAE,oCAAqC,KAC5C,yBACAyhC,EAAAA,EAAAA,oBAiBMmrB,EAAAA,SAAA,MAlQdC,EAAAA,EAAAA,YAkPgCtrB,EAAA9R,QAlPhC,CAkPkByrE,EAAM1jG,M,kBADhB+1D,EAAAA,EAAAA,aAiBMgnb,EAAA,CAfH/8e,IAAKA,GAAG,CAnPnBkyB,SAAAssC,EAAAA,EAAAA,UAqPU,IAIE,CAHMz0B,EAAAizc,cAAch9e,KAAG,kBADzBiqC,EAAAA,EAAAA,oBAIE,KAzPZjqC,IAAA,EAuPYkqC,OAvPZC,EAAAA,EAAAA,gBAAA,CAuPkB,OACEJ,EAAAizc,cAAch9e,M,UAxPlCsqC,EAAAA,EAAAA,oBAAA,OA2PkBP,EAAAkzc,iBAAiBj9e,IAAG,wCAD5BiqC,EAAAA,EAAAA,oBAMO,OAhQjB40C,GAAA,EA8PYxzC,EAAAA,EAAAA,oBAAsE,aAAAb,EAAAA,EAAAA,iBAA7DT,EAAAkzc,iBAAiBj9e,GAAO+pC,EAAAkzc,iBAAiBj9e,GAAOA,GAAG,GAChD8pC,EAAAozc,gBAAa,kBAAzBjzc,EAAAA,EAAAA,oBAA6C,OA/PzD60C,GA+PuC,MAAEt0C,EAAAA,EAAAA,iBAAGxqC,GAAG,KA/P/CsqC,EAAAA,EAAAA,oBAAA,cA4P6Bo5D,EAAO,GAAG1jG,OAAS0jG,IAAS1jG,OAAG,kBAKlDiqC,EAAAA,EAAAA,oBAAyD,OAjQnE80C,IAAAv0C,EAAAA,EAAAA,iBAiQ0Bk5D,EAAO,GAAG1jG,OAAS0jG,IAAS1jG,GAAG,OAjQzD+gD,EAAA,G,eAoQgBhX,EAAAozc,2BAAwB,kBADhClzc,EAAAA,EAAAA,oBAOI,KA1QZjqC,IAAA,EAqQUk/E,KAAK,IACLh1C,MAAM,2BACLyB,QAAKxhC,EAAA,KAAAA,EAAA,IAvQhB+qD,EAAAA,EAAAA,gBAAA,IAAAnxD,IAuQ0BgmC,EAAAqzc,cAAArzc,EAAAqzc,gBAAAr5e,IAAY,gB,qBAEzB4lC,EAAAnhC,EAAE,6BAA4BshC,EAAAozc,cAAa,kCAzQxD5yc,EAAAA,EAAAA,oBAAA,aAAAA,EAAAA,EAAAA,oBAAA,OA+QYP,EAAAszc,iBAAc,kBADtBpzc,EAAAA,EAAAA,oBAsBM,MAtBN+0C,GAsBM,EAlBJ3zC,EAAAA,EAAAA,oBAEO,OAFP8zC,IAEO30C,EAAAA,EAAAA,iBADFb,EAAAnhC,EAAE,yCAA0C,KACjD,IACA6iC,EAAAA,EAAAA,oBAKI,KAJF6zC,KAAK,IACJvzC,QAAKxhC,EAAA,KAAAA,EAAA,IAvRd+qD,EAAAA,EAAAA,gBAAA,IAAAnxD,IAuRwBgmC,EAAAuzc,mBAAAvzc,EAAAuzc,qBAAAv5e,IAAiB,gB,qBAE9B4lC,EAAAnhC,EAAE,6BAA4BshC,EAAAyzc,mBAAkB,sCAAA1ld,YAAyDkS,EAAAyzc,mBAAe,GAElH1zc,EAAAyzc,qBAAkB,kBAA7Btzc,EAAAA,EAAAA,oBAQM,MAnSZm1C,GAAA,uBA4RQn1C,EAAAA,EAAAA,oBAMEmrB,EAAAA,SAAA,MAlSVC,EAAAA,EAAAA,YA6R+BtrB,EAAAlS,aA7R/B,CA6RkBnrB,EAAK1M,M,kBADf+1D,EAAAA,EAAAA,aAME0nb,EAAA,CAJCz9e,IAAKA,EACNkqC,MAAM,aACLztC,MAAOiQ,EACP0jB,MAAOpwB,G,uCAjSlBsqC,EAAAA,EAAAA,oBAAA,WAAAA,EAAAA,EAAAA,oBAAA,QAuSI+zB,EAAAA,EAAAA,aAIEs4a,EAAA,CAHCtpd,SAAUuc,EAAAntC,MACVqU,KAAMg5B,EAAA8sc,cACNr8M,SAAUzwP,EAAA+sc,mB,4FAlSjB,IACE76a,WAAY,CACV0hb,WAAU,KAAEC,IAAG,KAAEpG,eAAcA,IAGjC53e,MAAO,CACLlD,MAAO,CACLqU,KAASxU,OACT41B,QAASA,KACA,CAAC,IAIZ0rd,YAAa,CACX9se,KAAS9M,MACTkuB,QAASA,IACA,IAQX2rd,SAAU,CACR/se,KAASxU,OACT41B,QAASA,KACA,CAAC,IAQZ4rd,MAAO,CACLhte,KAASxU,OACT41B,QAASA,KACA,CAAC,KAKdxV,IAAAA,GACE,MAAO,CACLk6d,cAAoB7md,GAAAA,GAAe8nd,MACnChB,kBAAoBvld,GAAAA,GAAcysd,WAClCR,oBAAoB,EACpBL,eAAoB,EACpB5+X,KAAoBprF,GAAAA,GAExB,EAEAG,SAAU,CACR2R,UAAAA,GACE,OAAQ9oC,KAAKO,OAAOuoC,YAAc,IAAItmC,KAAK+2B,IAClC,CACLvwB,KAAgBuwB,GAAWD,UAAUtwB,KACrC22S,eAAgBpmR,EAAUomR,kBAGhC,EACA51S,OAAAA,GACE,MAAMq7F,EAAQ,IACRplG,KAAK0hf,aAAe,MACpB1hf,KAAKO,OAAOwJ,SAAW,IAC3ByC,QAAQyL,GAAMA,EAAEiX,aAAgB,GAAIjX,EAAEs3B,gBAA4B3tC,IAAdqW,EAAEs3B,SAAuC,OAAdt3B,EAAEs3B,UAE7EmhB,EAAS,GACf,IAAIoxb,EAAe,GAenB,OAbA18Y,EAAMx8F,SAASlF,IACTA,EAAEwrB,WACJwhC,EAAOvnD,KAAK24e,GACZA,EAAe,IAEfA,EAAa34e,KAAKzF,EACpB,IAGEo+e,EAAahhf,QACf4vD,EAAOvnD,KAAK24e,GAGPpxb,CACT,EAEA30B,MAAAA,GACE,OAAI/7B,KAAKghf,gBAAkBhhf,KAAKihf,yBACvBjhf,KAAKO,OAAOw7B,QAAU,CAAC,EAGzB/7B,KAAKO,OAAO86U,oBACrB,EAEA0lK,gBAAAA,GACE,OAAO/gf,KAAKO,OAAO26U,mBAAqBl7U,KAAK2hf,QAC/C,EAEAb,aAAAA,GACE,OAAO9gf,KAAKO,OAAO66U,gBAAkBp7U,KAAK4hf,KAC5C,EAEAjmd,WAAAA,GACE,OAAO37B,KAAKO,OAAOo7B,aAAe,CAAC,CACrC,EAEAqmB,WAAAA,GACE,OAAOhiD,KAAKO,OAAOyhD,WACrB,EAEA2+b,UAAAA,GACE,OAAQpwb,KAAQvwD,KAAK+J,QACvB,EAEA62e,SAAAA,GACE,OAAQrwb,KAAQvwD,KAAK+7B,OACvB,EAEAold,cAAAA,GACE,OAAQ5wb,KAAQvwD,KAAK27B,YACvB,EAEAomd,cAAAA,GACE,OAAQxxb,KAAQvwD,KAAKgiD,YACvB,EAEA0+b,aAAAA,GACE,OAAQnwb,KAAQvwD,KAAK8oC,WACvB,EAEAw4c,eAAAA,GACE,OAAOlhf,OAAO8C,KAAKlD,KAAK27B,aAAe,CAAC,GAAG76B,MAC7C,EAEAyvD,OAAAA,GACE,MAAMyxb,EAAchif,KAAK2gf,YAAc3gf,KAAK4gf,WAAa5gf,KAAKmhf,gBAAkBnhf,KAAK+hf,gBAAkB/hf,KAAK0gf,cAE5G,OAAQsB,CACV,EAEAf,wBAAAA,GAGE,GAAIjhf,KAAKO,OAAOw7B,QAAU/7B,KAAKO,OAAO86U,qBAAsB,CAC1D,MAAM4mK,EAAa7hf,OAAO8C,KAAKlD,KAAKO,MAAMw7B,QAAQj7B,OAC5Cohf,EAA4B9hf,OAAO8C,KAAKlD,KAAKO,MAAM86U,sBAAsBv6U,OAE/E,OAAOmhf,IAAeC,CACxB,CAEA,OAAO,CACT,GAEFlqd,QAAS,CACPkpd,YAAAA,GACElhf,KAAKghf,eAAiBhhf,KAAKghf,aAC7B,EAEAI,iBAAAA,CAAkBz6Y,GAChB3mG,KAAKqhf,oBAAsBrhf,KAAKqhf,kBAClC,I,SClKJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,UCqVMrzc,MAAM,kBACN,cAAY,iB,IA/VlBlqC,IAAA,EAoWQkqC,MAAM,qB,IAaHA,MAAM,uB,IACJA,MAAM,a,IAUGA,MAAM,wB,IA5X5BlqC,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,G,IAAAA,IAAA,EA4YgBkqC,MAAM,gB,IA5YtBlqC,IAAA,EAyZgBkqC,MAAM,eACNwvD,QAAQ,K,IA1ZxB15F,IAAA,G,uIA4VEiqC,EAAAA,EAAAA,oBA2EM,aA1EJoB,EAAAA,EAAAA,oBAyEM,MAzENP,GAyEM,CAnEKhB,EAAAu0c,qCAnWf/zc,EAAAA,EAAAA,oBAAA,SAmWkD,kBAD5CL,EAAAA,EAAAA,oBAWM,MAXNc,GAWM,uBAPJM,EAAAA,EAAAA,oBAEI,UAAAb,EAAAA,EAAAA,iBADCb,EAAAnhC,EAAE,2BAAD,gBADMshC,EAAAw0c,yBAAoB,qBAGhCjzc,EAAAA,EAAAA,oBAEI,UAAAb,EAAAA,EAAAA,iBADCb,EAAAnhC,EAAE,6BAAD,eADKshC,EAAAw0c,uBAAyBx0c,EAAAu0c,uCAAmC,aAGvEhzc,EAAAA,EAAAA,oBAA0C,KAAvCnB,MAAM,gCAA8B,aA5W/C,aA+WMmB,EAAAA,EAAAA,oBAAiB,OAAZxsC,GAAG,QAAM,WAEdwsC,EAAAA,EAAAA,oBAoDM,MApDNL,GAoDM,EAnDJK,EAAAA,EAAAA,oBAkDM,MAlDNJ,GAkDM,EAjDJI,EAAAA,EAAAA,oBAgDQ,oCA/CNpB,EAAAA,EAAAA,oBA8CKmrB,EAAAA,SAAA,MAlajBC,EAAAA,EAAAA,YAqXkCvrB,EAAAy0c,UArXlC,CAqXsBzme,EAAMlY,M,kBADhBqqC,EAAAA,EAAAA,oBA8CK,MA5CFjqC,IAAKJ,GAAC,CAGe,iBAAdkY,EAAKhH,OAAI,kBADjBm5B,EAAAA,EAAAA,oBAKK,MA7XnBjqC,IAAA,EA0XiBkqC,OA1XjBC,EAAAA,EAAAA,gBAAA,gBA0XuD,gBAAdryB,EAAKhH,Q,EAE9Bu6B,EAAAA,EAAAA,oBAAiE,OAAjEm0C,IAAiEh1C,EAAAA,EAAAA,iBAA3Bb,EAAAnhC,EAAEsP,EAAKqY,WAAY,IAAC,SA5X1Ema,EAAAA,EAAAA,oBAAA,OA+XsC,eAAdxyB,EAAKhH,OAAI,kBAAnBm5B,EAAAA,EAAAA,oBASK,KAxYnBk0C,GAAA,CAgY4BrmE,EAAK0me,SAAS3iM,iBAAc,kBAAxC5xQ,EAAAA,EAAAA,oBAMO,OAtYvBm0C,GAAA,EAiYkB/f,EAAAA,EAAAA,aAIcotB,EAAA,CAHX5uF,GAAIib,EAAK0me,SAAS3iM,gB,CAlYvC3pR,SAAAssC,EAAAA,EAAAA,UAoYoB,IAAyB,EApY7Cj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAoYuB1yB,EAAK0me,SAASpud,OAAK,MApY1C2wB,EAAA,G,oCAuYgB9W,EAAAA,EAAAA,oBAA6C,OAvY7Dq0C,IAAA9zC,EAAAA,EAAAA,iBAuYgC1yB,EAAK0me,SAASpud,OAAK,OAIV,gBAAdtY,EAAKhH,OAAI,kBADtBm5B,EAAAA,EAAAA,oBAWK,KAXLs0C,GAWK,EAPHlzC,EAAAA,EAAAA,oBAMO,cALLgzB,EAAAA,EAAAA,aAIE68a,EAAA,CAHCxwc,MAAK,MAAQ5yB,EAAK0me,SAAS/wJ,aAC3Br9T,MAAOtY,EAAK0me,SAASC,WACtBv0c,MAAM,e,gCAlZ1BI,EAAAA,EAAAA,oBAAA,OAwZoC,iBAAdxyB,EAAKhH,OAAI,kBADjBm5B,EAAAA,EAAAA,oBAMK,KANLw0C,GAMK,EADHpzC,EAAAA,EAAAA,oBAAuB,UAAAb,EAAAA,EAAAA,iBAAjB1yB,EAAKrb,OAAK,0BAGlBwtC,EAAAA,EAAAA,oBAEK,KAjanBy0C,IAAAl0C,EAAAA,EAAAA,iBAgamB1yB,EAAKrb,OAAK,S,gBCha7B,SAASkhH,KAAQ,CAEF,YAASgwC,GACtB,OAAmB,MAAZA,EAAmBhwC,GAAO,WAC/B,OAAOzhH,KAAKs4B,cAAcm5H,EAC5B,CACF,CCHe,YAASp5H,GACA,oBAAXA,IAAuBA,EAASo5H,GAASp5H,IAEpD,IAAK,IAAIq4B,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQ2hf,EAAY,IAAI36e,MAAMwZ,GAAIY,EAAI,EAAGA,EAAIZ,IAAKY,EAC3F,IAAK,IAAiFoe,EAAMoid,EAAnF7nc,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAQ6hf,EAAWF,EAAUvge,GAAK,IAAIpa,MAAM0N,GAAmB9R,EAAI,EAAGA,EAAI8R,IAAK9R,GAC9G48B,EAAOua,EAAMn3C,MAAQg/e,EAAUrqd,EAAOl3B,KAAKm/B,EAAMA,EAAK42M,SAAUxzO,EAAGm3C,MAClE,aAAcva,IAAMoid,EAAQxrQ,SAAW52M,EAAK42M,UAChDyrQ,EAASj/e,GAAKg/e,GAKpB,OAAO,IAAIE,GAAUH,EAAWzif,KAAK6if,SACvC,CCVe,SAAS,GAAM5qe,GAC5B,OAAY,MAALA,EAAY,GAAKnQ,MAAMsM,QAAQ6D,GAAKA,EAAInQ,MAAM2N,KAAKwC,EAC5D,CCRA,SAASqf,KACP,MAAO,EACT,CAEe,YAASm6H,GACtB,OAAmB,MAAZA,EAAmBn6H,GAAQ,WAChC,OAAOt3B,KAAKoxC,iBAAiBqgH,EAC/B,CACF,CCJA,SAASqxV,GAASzqd,GAChB,OAAO,WACL,OAAO,GAAMA,EAAOrwB,MAAMhI,KAAMa,WAClC,CACF,CAEe,YAASw3B,GACYA,EAAZ,oBAAXA,EAAgCyqd,GAASzqd,GACtC0qd,GAAY1qd,GAE1B,IAAK,IAAIq4B,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQ2hf,EAAY,GAAIO,EAAU,GAAI9ge,EAAI,EAAGA,EAAIZ,IAAKY,EAC/F,IAAK,IAAyCoe,EAArCua,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAc4C,EAAI,EAAGA,EAAI8R,IAAK9R,GAC9D48B,EAAOua,EAAMn3C,MACf++e,EAAUt5e,KAAKkvB,EAAOl3B,KAAKm/B,EAAMA,EAAK42M,SAAUxzO,EAAGm3C,IACnDmoc,EAAQ75e,KAAKm3B,IAKnB,OAAO,IAAIsid,GAAUH,EAAWO,EAClC,CCxBe,YAASvxV,GACtB,OAAO,WACL,OAAOzxJ,KAAKgwC,QAAQyhH,EACtB,CACF,CAEO,SAASwxV,GAAaxxV,GAC3B,OAAO,SAASnxH,GACd,OAAOA,EAAK0P,QAAQyhH,EACtB,CACF,CCRA,IAAI55H,GAAO/vB,MAAM7G,UAAU42B,KAE3B,SAASqrd,GAAU54e,GACjB,OAAO,WACL,OAAOutB,GAAK12B,KAAKnB,KAAK4xC,SAAUtnC,EAClC,CACF,CAEA,SAAS64e,KACP,OAAOnjf,KAAKy9K,iBACd,CAEe,YAASnzK,GACtB,OAAOtK,KAAKq4B,OAAgB,MAAT/tB,EAAgB64e,GAC7BD,GAA2B,oBAAV54e,EAAuBA,EAAQ24e,GAAa34e,IACrE,CCfA,IAAIkC,GAAS1E,MAAM7G,UAAUuL,OAE7B,SAASolC,KACP,OAAO9pC,MAAM2N,KAAKzV,KAAK4xC,SACzB,CAEA,SAASwxc,GAAe94e,GACtB,OAAO,WACL,OAAOkC,GAAOrL,KAAKnB,KAAK4xC,SAAUtnC,EACpC,CACF,CAEe,YAASA,GACtB,OAAOtK,KAAKqjf,UAAmB,MAAT/4e,EAAgBsnC,GAChCwxc,GAAgC,oBAAV94e,EAAuBA,EAAQ24e,GAAa34e,IAC1E,CCde,YAASA,GACD,oBAAVA,IAAsBA,EAAQq/I,GAAQr/I,IAEjD,IAAK,IAAIomD,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQ2hf,EAAY,IAAI36e,MAAMwZ,GAAIY,EAAI,EAAGA,EAAIZ,IAAKY,EAC3F,IAAK,IAAuEoe,EAAnEua,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAQ6hf,EAAWF,EAAUvge,GAAK,GAAUxe,EAAI,EAAGA,EAAI8R,IAAK9R,GAC3F48B,EAAOua,EAAMn3C,KAAO4G,EAAMnJ,KAAKm/B,EAAMA,EAAK42M,SAAUxzO,EAAGm3C,IAC1D8nc,EAASx5e,KAAKm3B,GAKpB,OAAO,IAAIsid,GAAUH,EAAWzif,KAAK6if,SACvC,CCfe,YAAS1za,GACtB,OAAO,IAAIrnE,MAAMqnE,EAAOruE,OAC1B,CCCe,cACb,OAAO,IAAI8hf,GAAU5if,KAAKsjf,QAAUtjf,KAAKwif,QAAQhgf,IAAI+gf,IAASvjf,KAAK6if,SACrE,CAEO,SAASW,GAAUrva,EAAQsva,GAChCzjf,KAAKswC,cAAgB6jC,EAAO7jC,cAC5BtwC,KAAKy7K,aAAetnG,EAAOsnG,aAC3Bz7K,KAAK0jf,MAAQ,KACb1jf,KAAKs8Z,QAAUnoV,EACfn0E,KAAKk3O,SAAWusQ,CAClB,CCbe,YAASxre,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCAA,SAAS0re,GAAUxva,EAAQt5B,EAAO+oc,EAAOz0a,EAAQ00a,EAAMrje,GASrD,IARA,IACI8f,EADA58B,EAAI,EAEJogf,EAAcjpc,EAAM/5C,OACpBi5c,EAAav5b,EAAK1f,OAKf4C,EAAIq2c,IAAcr2c,GACnB48B,EAAOua,EAAMn3C,KACf48B,EAAK42M,SAAW12N,EAAK9c,GACrByrE,EAAOzrE,GAAK48B,GAEZsjd,EAAMlgf,GAAK,IAAI8/e,GAAUrva,EAAQ3zD,EAAK9c,IAK1C,KAAOA,EAAIogf,IAAepgf,GACpB48B,EAAOua,EAAMn3C,MACfmgf,EAAKngf,GAAK48B,EAGhB,CAEA,SAASgnO,GAAQnzL,EAAQt5B,EAAO+oc,EAAOz0a,EAAQ00a,EAAMrje,EAAM1c,GACzD,IAAIJ,EACA48B,EAKAo8O,EAJAqnO,EAAiB,IAAI/9e,IACrB89e,EAAcjpc,EAAM/5C,OACpBi5c,EAAav5b,EAAK1f,OAClBkjf,EAAY,IAAIl8e,MAAMg8e,GAK1B,IAAKpgf,EAAI,EAAGA,EAAIogf,IAAepgf,GACzB48B,EAAOua,EAAMn3C,MACfsgf,EAAUtgf,GAAKg5Q,EAAW54Q,EAAI3C,KAAKm/B,EAAMA,EAAK42M,SAAUxzO,EAAGm3C,GAAS,GAChEkpc,EAAe51e,IAAIuuQ,GACrBmnO,EAAKngf,GAAK48B,EAEVyjd,EAAe11e,IAAIquQ,EAAUp8O,IAQnC,IAAK58B,EAAI,EAAGA,EAAIq2c,IAAcr2c,EAC5Bg5Q,EAAW54Q,EAAI3C,KAAKgzE,EAAQ3zD,EAAK9c,GAAIA,EAAG8c,GAAQ,IAC5C8f,EAAOyjd,EAAe31e,IAAIsuQ,KAC5BvtM,EAAOzrE,GAAK48B,EACZA,EAAK42M,SAAW12N,EAAK9c,GACrBqgf,EAAe3oe,OAAOshQ,IAEtBknO,EAAMlgf,GAAK,IAAI8/e,GAAUrva,EAAQ3zD,EAAK9c,IAK1C,IAAKA,EAAI,EAAGA,EAAIogf,IAAepgf,GACxB48B,EAAOua,EAAMn3C,KAAQqgf,EAAe31e,IAAI41e,EAAUtgf,MAAQ48B,IAC7Dujd,EAAKngf,GAAK48B,EAGhB,CAEA,SAASmjd,GAAMnjd,GACb,OAAOA,EAAK42M,QACd,CAEe,YAAS32O,EAAOuD,GAC7B,IAAKjD,UAAUC,OAAQ,OAAOgH,MAAM2N,KAAKzV,KAAMyjf,IAE/C,IAAIp8e,EAAOvD,EAAMwjQ,GAAUq8O,GACvBX,EAAUhjf,KAAK6if,SACfnyb,EAAS1wD,KAAKwif,QAEG,oBAAVjif,IAAsBA,EAAQ,GAASA,IAElD,IAAK,IAAI+gB,EAAIovC,EAAO5vD,OAAQquE,EAAS,IAAIrnE,MAAMwZ,GAAIsie,EAAQ,IAAI97e,MAAMwZ,GAAIuie,EAAO,IAAI/7e,MAAMwZ,GAAIY,EAAI,EAAGA,EAAIZ,IAAKY,EAAG,CAC/G,IAAIiyD,EAAS6ua,EAAQ9ge,GACjB24B,EAAQ6V,EAAOxuC,GACf4he,EAAcjpc,EAAM/5C,OACpB0f,EAAOyje,GAAU1jf,EAAMY,KAAKgzE,EAAQA,GAAUA,EAAO+iK,SAAUh1N,EAAG8ge,IAClEjpC,EAAav5b,EAAK1f,OAClBojf,EAAaN,EAAM1he,GAAK,IAAIpa,MAAMiyc,GAClCoqC,EAAch1a,EAAOjtD,GAAK,IAAIpa,MAAMiyc,GACpCqqC,EAAYP,EAAK3he,GAAK,IAAIpa,MAAMg8e,GAEpCz8e,EAAK8sE,EAAQt5B,EAAOqpc,EAAYC,EAAaC,EAAW5je,EAAM1c,GAK9D,IAAK,IAAoB23P,EAAU1lP,EAA1Bsue,EAAK,EAAGC,EAAK,EAAmBD,EAAKtqC,IAAcsqC,EAC1D,GAAI5oP,EAAWyoP,EAAWG,GAAK,CACzBA,GAAMC,IAAIA,EAAKD,EAAK,GACxB,QAAStue,EAAOoue,EAAYG,OAAUA,EAAKvqC,GAC3Ct+M,EAASioP,MAAQ3te,GAAQ,IAC3B,CAEJ,CAKA,OAHAo5D,EAAS,IAAIyza,GAAUzza,EAAQ6za,GAC/B7za,EAAOm0a,OAASM,EAChBz0a,EAAOo1a,MAAQV,EACR10a,CACT,CAQA,SAAS80a,GAAUzje,GACjB,MAAuB,kBAATA,GAAqB,WAAYA,EAC3CA,EACA1Y,MAAM2N,KAAK+K,EACjB,CC5He,cACb,OAAO,IAAIoie,GAAU5if,KAAKukf,OAASvkf,KAAKwif,QAAQhgf,IAAI+gf,IAASvjf,KAAK6if,SACpE,CCLe,YAAS2B,EAASC,EAAUC,GACzC,IAAId,EAAQ5jf,KAAK4jf,QAASz0a,EAASnvE,KAAM6jf,EAAO7jf,KAAK6jf,OAYrD,MAXuB,oBAAZW,GACTZ,EAAQY,EAAQZ,GACZA,IAAOA,EAAQA,EAAM34c,cAEzB24c,EAAQA,EAAMjwV,OAAO6wV,EAAU,IAEjB,MAAZC,IACFt1a,EAASs1a,EAASt1a,GACdA,IAAQA,EAASA,EAAOlkC,cAEhB,MAAVy5c,EAAgBb,EAAK7/Y,SAAe0gZ,EAAOb,GACxCD,GAASz0a,EAASy0a,EAAMtnW,MAAMntE,GAAQnC,QAAUmC,CACzD,CCZe,YAAS79C,GAGtB,IAFA,IAAI2Z,EAAY3Z,EAAQ2Z,UAAY3Z,EAAQ2Z,YAAc3Z,EAEjDqzd,EAAU3kf,KAAKwif,QAASoC,EAAU35c,EAAUu3c,QAASqC,EAAKF,EAAQ7jf,OAAQgkf,EAAKF,EAAQ9jf,OAAQwgB,EAAIhf,KAAK6V,IAAI0se,EAAIC,GAAKC,EAAS,IAAIj9e,MAAM+8e,GAAK3ie,EAAI,EAAGA,EAAIZ,IAAKY,EACpK,IAAK,IAAmGoe,EAA/F0kd,EAASL,EAAQzie,GAAIyqI,EAASi4V,EAAQ1ie,GAAI1M,EAAIwve,EAAOlkf,OAAQw7I,EAAQyoW,EAAO7ie,GAAK,IAAIpa,MAAM0N,GAAU9R,EAAI,EAAGA,EAAI8R,IAAK9R,GACxH48B,EAAO0kd,EAAOthf,IAAMipJ,EAAOjpJ,MAC7B44I,EAAM54I,GAAK48B,GAKjB,KAAOpe,EAAI2ie,IAAM3ie,EACf6ie,EAAO7ie,GAAKyie,EAAQzie,GAGtB,OAAO,IAAI0ge,GAAUmC,EAAQ/kf,KAAK6if,SACpC,CClBe,cAEb,IAAK,IAAInyb,EAAS1wD,KAAKwif,QAAStge,GAAK,EAAGZ,EAAIovC,EAAO5vD,SAAUohB,EAAIZ,GAC/D,IAAK,IAA8Dgf,EAA1Dua,EAAQ6V,EAAOxuC,GAAIxe,EAAIm3C,EAAM/5C,OAAS,EAAGiV,EAAO8kC,EAAMn3C,KAAYA,GAAK,IAC1E48B,EAAOua,EAAMn3C,MACXqS,GAA6C,EAArCuqB,EAAK2kd,wBAAwBlve,IAAWA,EAAK86B,WAAWyrI,aAAah8I,EAAMvqB,GACvFA,EAAOuqB,GAKb,OAAOtgC,IACT,CCVe,YAASgY,GAGtB,SAASkte,EAAYp8e,EAAGC,GACtB,OAAOD,GAAKC,EAAIiP,EAAQlP,EAAEouO,SAAUnuO,EAAEmuO,WAAapuO,GAAKC,CAC1D,CAJKiP,IAASA,EAAUmte,IAMxB,IAAK,IAAIz0b,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQskf,EAAa,IAAIt9e,MAAMwZ,GAAIY,EAAI,EAAGA,EAAIZ,IAAKY,EAAG,CAC/F,IAAK,IAAmFoe,EAA/Eua,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAQukf,EAAYD,EAAWlje,GAAK,IAAIpa,MAAM0N,GAAU9R,EAAI,EAAGA,EAAI8R,IAAK9R,GACxG48B,EAAOua,EAAMn3C,MACf2hf,EAAU3hf,GAAK48B,GAGnB+kd,EAAUp5c,KAAKi5c,EACjB,CAEA,OAAO,IAAItC,GAAUwC,EAAYplf,KAAK6if,UAAU71a,OAClD,CAEA,SAASm4a,GAAUr8e,EAAGC,GACpB,OAAOD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAIkzH,GAC/C,CCvBe,cACb,IAAI7gG,EAAWv6B,UAAU,GAGzB,OAFAA,UAAU,GAAKb,KACfo7B,EAASpzB,MAAM,KAAMnH,WACdb,IACT,CCLe,cACb,OAAO8H,MAAM2N,KAAKzV,KACpB,CCFe,cAEb,IAAK,IAAI0wD,EAAS1wD,KAAKwif,QAAStge,EAAI,EAAGZ,EAAIovC,EAAO5vD,OAAQohB,EAAIZ,IAAKY,EACjE,IAAK,IAAI24B,EAAQ6V,EAAOxuC,GAAIxe,EAAI,EAAG8R,EAAIqlC,EAAM/5C,OAAQ4C,EAAI8R,IAAK9R,EAAG,CAC/D,IAAI48B,EAAOua,EAAMn3C,GACjB,GAAI48B,EAAM,OAAOA,CACnB,CAGF,OAAO,IACT,CCVe,cACb,IAAIhmB,EAAO,EACX,IAAK,MAAMgmB,KAAQtgC,OAAQsa,EAC3B,OAAOA,CACT,CCJe,cACb,OAAQta,KAAKsgC,MACf,CCFe,YAASlF,GAEtB,IAAK,IAAIs1B,EAAS1wD,KAAKwif,QAAStge,EAAI,EAAGZ,EAAIovC,EAAO5vD,OAAQohB,EAAIZ,IAAKY,EACjE,IAAK,IAAgDoe,EAA5Cua,EAAQ6V,EAAOxuC,GAAIxe,EAAI,EAAG8R,EAAIqlC,EAAM/5C,OAAc4C,EAAI8R,IAAK9R,GAC9D48B,EAAOua,EAAMn3C,KAAI03B,EAASj6B,KAAKm/B,EAAMA,EAAK42M,SAAUxzO,EAAGm3C,GAI/D,OAAO76C,IACT,CbMAwjf,GAAUvif,UAAY,CACpBsC,YAAaigf,GACb9jb,YAAa,SAAS1sB,GAAS,OAAOhzC,KAAKs8Z,QAAQhgP,aAAatpI,EAAOhzC,KAAK0jf,MAAQ,EACpFpnU,aAAc,SAAStpI,EAAOj9B,GAAQ,OAAO/V,KAAKs8Z,QAAQhgP,aAAatpI,EAAOj9B,EAAO,EACrFuiB,cAAe,SAASm5H,GAAY,OAAOzxJ,KAAKs8Z,QAAQhkY,cAAcm5H,EAAW,EACjFrgH,iBAAkB,SAASqgH,GAAY,OAAOzxJ,KAAKs8Z,QAAQlrX,iBAAiBqgH,EAAW,GcpBlF,IAAIqD,GAAQ,+BAEnB,IACEl7F,IAAK,6BACLk7F,MAAOA,GACPwwV,MAAO,+BACPzwV,IAAK,uCACL0wV,MAAO,iCCLM,YAASv8e,GACtB,IAAIquH,EAASruH,GAAQ,GAAItF,EAAI2zH,EAAOrrH,QAAQ,KAE5C,OADItI,GAAK,GAAqC,WAA/B2zH,EAASruH,EAAKiD,MAAM,EAAGvI,MAAiBsF,EAAOA,EAAKiD,MAAMvI,EAAI,IACtEolC,GAAW5nC,eAAem2H,GAAU,CAACmuX,MAAO18c,GAAWuuF,GAAS8kM,MAAOnzT,GAAQA,CACxF,CCJA,SAASy8e,GAAWz8e,GAClB,OAAO,WACLhJ,KAAKyyE,gBAAgBzpE,EACvB,CACF,CAEA,SAAS08e,GAAaC,GACpB,OAAO,WACL3lf,KAAK4lf,kBAAkBD,EAASH,MAAOG,EAASxpL,MAClD,CACF,CAEA,SAAS0pL,GAAa78e,EAAMzI,GAC1B,OAAO,WACLP,KAAK0yE,aAAa1pE,EAAMzI,EAC1B,CACF,CAEA,SAASulf,GAAeH,EAAUplf,GAChC,OAAO,WACLP,KAAKy+K,eAAeknU,EAASH,MAAOG,EAASxpL,MAAO57T,EACtD,CACF,CAEA,SAASwlf,GAAa/8e,EAAMzI,GAC1B,OAAO,WACL,IAAIirD,EAAIjrD,EAAMyH,MAAMhI,KAAMa,WACjB,MAAL2qD,EAAWxrD,KAAKyyE,gBAAgBzpE,GAC/BhJ,KAAK0yE,aAAa1pE,EAAMwiD,EAC/B,CACF,CAEA,SAASw6b,GAAeL,EAAUplf,GAChC,OAAO,WACL,IAAIirD,EAAIjrD,EAAMyH,MAAMhI,KAAMa,WACjB,MAAL2qD,EAAWxrD,KAAK4lf,kBAAkBD,EAASH,MAAOG,EAASxpL,OAC1Dn8T,KAAKy+K,eAAeknU,EAASH,MAAOG,EAASxpL,MAAO3wQ,EAC3D,CACF,CAEe,YAASxiD,EAAMzI,GAC5B,IAAIolf,EAAWpsd,GAAUvwB,GAEzB,GAAInI,UAAUC,OAAS,EAAG,CACxB,IAAIw/B,EAAOtgC,KAAKsgC,OAChB,OAAOqld,EAASxpL,MACV77R,EAAK2ld,eAAeN,EAASH,MAAOG,EAASxpL,OAC7C77R,EAAKqQ,aAAag1c,EAC1B,CAEA,OAAO3lf,KAAKg5B,MAAe,MAATz4B,EACXolf,EAASxpL,MAAQupL,GAAeD,GAAgC,oBAAVllf,EACtDolf,EAASxpL,MAAQ6pL,GAAiBD,GAClCJ,EAASxpL,MAAQ2pL,GAAiBD,IAAgBF,EAAUplf,GACrE,CCxDe,YAAS+/B,GACtB,OAAQA,EAAKgQ,eAAiBhQ,EAAKgQ,cAAcy2B,aACzCzmC,EAAKx+B,UAAYw+B,GAClBA,EAAKymC,WACd,CCFA,SAASm/a,GAAYl9e,GACnB,OAAO,WACLhJ,KAAKy1B,MAAM0wd,eAAen9e,EAC5B,CACF,CAEA,SAASo9e,GAAcp9e,EAAMzI,EAAO02S,GAClC,OAAO,WACLj3S,KAAKy1B,MAAM4wd,YAAYr9e,EAAMzI,EAAO02S,EACtC,CACF,CAEA,SAASqvM,GAAct9e,EAAMzI,EAAO02S,GAClC,OAAO,WACL,IAAIzrP,EAAIjrD,EAAMyH,MAAMhI,KAAMa,WACjB,MAAL2qD,EAAWxrD,KAAKy1B,MAAM0wd,eAAen9e,GACpChJ,KAAKy1B,MAAM4wd,YAAYr9e,EAAMwiD,EAAGyrP,EACvC,CACF,CAEe,YAASjuS,EAAMzI,EAAO02S,GACnC,OAAOp2S,UAAUC,OAAS,EACpBd,KAAKg5B,MAAe,MAATz4B,EACL2lf,GAA+B,oBAAV3lf,EACrB+lf,GACAF,IAAep9e,EAAMzI,EAAmB,MAAZ02S,EAAmB,GAAKA,IAC1DsvM,GAAWvmf,KAAKsgC,OAAQt3B,EAChC,CAEO,SAASu9e,GAAWjmd,EAAMt3B,GAC/B,OAAOs3B,EAAK7K,MAAMkpC,iBAAiB31D,IAC5B,GAAYs3B,GAAMzK,iBAAiByK,EAAM,MAAMq+B,iBAAiB31D,EACzE,CClCA,SAASw9e,GAAex9e,GACtB,OAAO,kBACEhJ,KAAKgJ,EACd,CACF,CAEA,SAASy9e,GAAiBz9e,EAAMzI,GAC9B,OAAO,WACLP,KAAKgJ,GAAQzI,CACf,CACF,CAEA,SAASmmf,GAAiB19e,EAAMzI,GAC9B,OAAO,WACL,IAAIirD,EAAIjrD,EAAMyH,MAAMhI,KAAMa,WACjB,MAAL2qD,SAAkBxrD,KAAKgJ,GACtBhJ,KAAKgJ,GAAQwiD,CACpB,CACF,CAEe,YAASxiD,EAAMzI,GAC5B,OAAOM,UAAUC,OAAS,EACpBd,KAAKg5B,MAAe,MAATz4B,EACPimf,GAAkC,oBAAVjmf,EACxBmmf,GACAD,IAAkBz9e,EAAMzI,IAC5BP,KAAKsgC,OAAOt3B,EACpB,CC3BA,SAAS29e,GAAWx8e,GAClB,OAAOA,EAAO+Z,OAAOtY,MAAM,QAC7B,CAEA,SAASi4F,GAAUvjE,GACjB,OAAOA,EAAKujE,WAAa,IAAI+iZ,GAAUtmd,EACzC,CAEA,SAASsmd,GAAUtmd,GACjBtgC,KAAK6mf,MAAQvmd,EACbtgC,KAAK8mf,OAASH,GAAWrmd,EAAKqQ,aAAa,UAAY,GACzD,CAsBA,SAASo2c,GAAWzmd,EAAM0pF,GACxB,IAAIpmG,EAAOigF,GAAUvjE,GAAO58B,GAAK,EAAG8R,EAAIw0G,EAAMlpH,OAC9C,QAAS4C,EAAI8R,EAAGoO,EAAK3H,IAAI+tG,EAAMtmH,GACjC,CAEA,SAASsjf,GAAc1md,EAAM0pF,GAC3B,IAAIpmG,EAAOigF,GAAUvjE,GAAO58B,GAAK,EAAG8R,EAAIw0G,EAAMlpH,OAC9C,QAAS4C,EAAI8R,EAAGoO,EAAKogF,OAAOgmB,EAAMtmH,GACpC,CAEA,SAASujf,GAAYj9X,GACnB,OAAO,WACL+8X,GAAW/mf,KAAMgqH,EACnB,CACF,CAEA,SAASk9X,GAAal9X,GACpB,OAAO,WACLg9X,GAAchnf,KAAMgqH,EACtB,CACF,CAEA,SAASm9X,GAAgBn9X,EAAOzpH,GAC9B,OAAO,YACJA,EAAMyH,MAAMhI,KAAMa,WAAakmf,GAAaC,IAAehnf,KAAMgqH,EACpE,CACF,CAEe,YAAShhH,EAAMzI,GAC5B,IAAIypH,EAAQ28X,GAAW39e,EAAO,IAE9B,GAAInI,UAAUC,OAAS,EAAG,CACxB,IAAI8iB,EAAOigF,GAAU7jG,KAAKsgC,QAAS58B,GAAK,EAAG8R,EAAIw0G,EAAMlpH,OACrD,QAAS4C,EAAI8R,MAAQoO,EAAKwwB,SAAS41E,EAAMtmH,IAAK,OAAO,EACrD,OAAO,CACT,CAEA,OAAO1D,KAAKg5B,MAAuB,oBAAVz4B,EACnB4mf,GAAkB5mf,EAClB0mf,GACAC,IAAcl9X,EAAOzpH,GAC7B,CC1EA,SAAS6mf,KACPpnf,KAAK8xJ,YAAc,EACrB,CAEA,SAASu1V,GAAa9mf,GACpB,OAAO,WACLP,KAAK8xJ,YAAcvxJ,CACrB,CACF,CAEA,SAAS+mf,GAAa/mf,GACpB,OAAO,WACL,IAAIirD,EAAIjrD,EAAMyH,MAAMhI,KAAMa,WAC1Bb,KAAK8xJ,YAAmB,MAALtmG,EAAY,GAAKA,CACtC,CACF,CAEe,YAASjrD,GACtB,OAAOM,UAAUC,OACXd,KAAKg5B,KAAc,MAATz4B,EACN6mf,IAA+B,oBAAV7mf,EACrB+mf,GACAD,IAAc9mf,IAClBP,KAAKsgC,OAAOwxH,WACpB,CCxBA,SAASy1V,KACPvnf,KAAK+wJ,UAAY,EACnB,CAEA,SAASy2V,GAAajnf,GACpB,OAAO,WACLP,KAAK+wJ,UAAYxwJ,CACnB,CACF,CAEA,SAASknf,GAAalnf,GACpB,OAAO,WACL,IAAIirD,EAAIjrD,EAAMyH,MAAMhI,KAAMa,WAC1Bb,KAAK+wJ,UAAiB,MAALvlG,EAAY,GAAKA,CACpC,CACF,CAEe,YAASjrD,GACtB,OAAOM,UAAUC,OACXd,KAAKg5B,KAAc,MAATz4B,EACNgnf,IAA+B,oBAAVhnf,EACrBknf,GACAD,IAAcjnf,IAClBP,KAAKsgC,OAAOywH,SACpB,CCxBA,SAAS22V,KACH1nf,KAAKgzJ,aAAahzJ,KAAK6wC,WAAW6uB,YAAY1/D,KACpD,CAEe,cACb,OAAOA,KAAKg5B,KAAK0ud,GACnB,CCNA,SAASpuP,KACHt5P,KAAK2nf,iBAAiB3nf,KAAK6wC,WAAWyrI,aAAat8K,KAAMA,KAAK6wC,WAAWkiH,WAC/E,CAEe,cACb,OAAO/yJ,KAAKg5B,KAAKsgO,GACnB,CCHA,SAASsuP,GAAe5+e,GACtB,OAAO,WACL,IAAIlH,EAAW9B,KAAKswC,cAChB8b,EAAMpsD,KAAKy7K,aACf,OAAOrvH,IAAQ0oG,IAAShzJ,EAAS0nE,gBAAgBiyG,eAAiB3mB,GAC5DhzJ,EAASy9D,cAAcv2D,GACvBlH,EAASuwJ,gBAAgBjmG,EAAKpjD,EACtC,CACF,CAEA,SAAS6+e,GAAalC,GACpB,OAAO,WACL,OAAO3lf,KAAKswC,cAAc+hH,gBAAgBszV,EAASH,MAAOG,EAASxpL,MACrE,CACF,CAEe,YAASnzT,GACtB,IAAI28e,EAAWpsd,GAAUvwB,GACzB,OAAQ28e,EAASxpL,MACX0rL,GACAD,IAAgBjC,EACxB,CCtBe,YAAS38e,GACtB,IAAIiE,EAAyB,oBAATjE,EAAsBA,EAAO8+e,GAAQ9+e,GACzD,OAAOhJ,KAAKq4B,QAAO,WACjB,OAAOr4B,KAAK0/D,YAAYzyD,EAAOjF,MAAMhI,KAAMa,WAC7C,GACF,CCJA,SAASknf,KACP,OAAO,IACT,CAEe,YAAS/+e,EAAMq+P,GAC5B,IAAIp6P,EAAyB,oBAATjE,EAAsBA,EAAO8+e,GAAQ9+e,GACrDqvB,EAAmB,MAAVgvO,EAAiB0gP,GAAiC,oBAAX1gP,EAAwBA,EAAS51G,GAAS41G,GAC9F,OAAOrnQ,KAAKq4B,QAAO,WACjB,OAAOr4B,KAAKs8K,aAAarvK,EAAOjF,MAAMhI,KAAMa,WAAYw3B,EAAOrwB,MAAMhI,KAAMa,YAAc,KAC3F,GACF,CCbA,SAASmjG,KACP,IAAI7vB,EAASn0E,KAAK6wC,WACdsjC,GAAQA,EAAOynG,YAAY57K,KACjC,CAEe,cACb,OAAOA,KAAKg5B,KAAKgrE,GACnB,CCPA,SAASgkZ,KACP,IAAIt9Z,EAAQ1qF,KAAKs2K,WAAU,GAAQniG,EAASn0E,KAAK6wC,WACjD,OAAOsjC,EAASA,EAAOmoG,aAAa5xF,EAAO1qF,KAAKgzJ,aAAetoE,CACjE,CAEA,SAASu9Z,KACP,IAAIv9Z,EAAQ1qF,KAAKs2K,WAAU,GAAOniG,EAASn0E,KAAK6wC,WAChD,OAAOsjC,EAASA,EAAOmoG,aAAa5xF,EAAO1qF,KAAKgzJ,aAAetoE,CACjE,CAEe,YAAS+uB,GACtB,OAAOz5G,KAAKq4B,OAAOohF,EAAOwuY,GAAsBD,GAClD,CCZe,YAASznf,GACtB,OAAOM,UAAUC,OACXd,KAAK8yE,SAAS,WAAYvyE,GAC1BP,KAAKsgC,OAAO42M,QACpB,CCJA,SAASgxQ,GAAgBlnU,GACvB,OAAO,SAASz/K,GACdy/K,EAAS7/K,KAAKnB,KAAMuB,EAAOvB,KAAKk3O,SAClC,CACF,CAEA,SAASixQ,GAAeC,GACtB,OAAOA,EAAUlke,OAAOtY,MAAM,SAASpJ,KAAI,SAAS8J,GAClD,IAAItD,EAAO,GAAItF,EAAI4I,EAAEN,QAAQ,KAE7B,OADItI,GAAK,IAAGsF,EAAOsD,EAAEL,MAAMvI,EAAI,GAAI4I,EAAIA,EAAEL,MAAM,EAAGvI,IAC3C,CAACkR,KAAMtI,EAAGtD,KAAMA,EACzB,GACF,CAEA,SAASkxG,GAASmuY,GAChB,OAAO,WACL,IAAI9iZ,EAAKvlG,KAAKsof,KACd,GAAK/iZ,EAAL,CACA,IAAK,IAAkCziG,EAA9Bof,EAAI,EAAGxe,GAAK,EAAG4d,EAAIikF,EAAGzkG,OAAWohB,EAAIZ,IAAKY,EAC7Cpf,EAAIyiG,EAAGrjF,GAAMmme,EAASzze,MAAQ9R,EAAE8R,OAASyze,EAASzze,MAAS9R,EAAEkG,OAASq/e,EAASr/e,KAGjFu8F,IAAK7hG,GAAKZ,EAFV9C,KAAK29C,oBAAoB76C,EAAE8R,KAAM9R,EAAEk+K,SAAUl+K,EAAEgQ,WAK7CpP,EAAG6hG,EAAGzkG,OAAS4C,SACT1D,KAAKsof,IATF,CAUjB,CACF,CAEA,SAASruY,GAAMouY,EAAU9nf,EAAOuS,GAC9B,OAAO,WACL,IAAoBhQ,EAAhByiG,EAAKvlG,KAAKsof,KAAStnU,EAAWknU,GAAgB3nf,GAClD,GAAIglG,EAAI,IAAK,IAAIrjF,EAAI,EAAGZ,EAAIikF,EAAGzkG,OAAQohB,EAAIZ,IAAKY,EAC9C,IAAKpf,EAAIyiG,EAAGrjF,IAAItN,OAASyze,EAASzze,MAAQ9R,EAAEkG,OAASq/e,EAASr/e,KAI5D,OAHAhJ,KAAK29C,oBAAoB76C,EAAE8R,KAAM9R,EAAEk+K,SAAUl+K,EAAEgQ,SAC/C9S,KAAKu9C,iBAAiBz6C,EAAE8R,KAAM9R,EAAEk+K,SAAWA,EAAUl+K,EAAEgQ,QAAUA,QACjEhQ,EAAEvC,MAAQA,GAIdP,KAAKu9C,iBAAiB8qc,EAASzze,KAAMosK,EAAUluK,GAC/ChQ,EAAI,CAAC8R,KAAMyze,EAASzze,KAAM5L,KAAMq/e,EAASr/e,KAAMzI,MAAOA,EAAOygL,SAAUA,EAAUluK,QAASA,GACrFyyF,EACAA,EAAGp8F,KAAKrG,GADJ9C,KAAKsof,KAAO,CAACxlf,EAExB,CACF,CAEe,YAASulf,EAAU9nf,EAAOuS,GACvC,IAA+CpP,EAAyB4I,EAApE87e,EAAYD,GAAeE,EAAW,IAAQ7ye,EAAI4ye,EAAUtnf,OAEhE,KAAID,UAAUC,OAAS,GAAvB,CAaA,IADAykG,EAAKhlG,EAAQ05G,GAAQC,GAChBx2G,EAAI,EAAGA,EAAI8R,IAAK9R,EAAG1D,KAAKg5B,KAAKusE,EAAG6iZ,EAAU1kf,GAAInD,EAAOuS,IAC1D,OAAO9S,IAJP,CATE,IAAIulG,EAAKvlG,KAAKsgC,OAAOgod,KACrB,GAAI/iZ,EAAI,IAAK,IAA0BziG,EAAtBof,EAAI,EAAGZ,EAAIikF,EAAGzkG,OAAWohB,EAAIZ,IAAKY,EACjD,IAAKxe,EAAI,EAAGZ,EAAIyiG,EAAGrjF,GAAIxe,EAAI8R,IAAK9R,EAC9B,IAAK4I,EAAI87e,EAAU1kf,IAAIkR,OAAS9R,EAAE8R,MAAQtI,EAAEtD,OAASlG,EAAEkG,KACrD,OAAOlG,EAAEvC,KAUnB,CChEA,SAASklG,GAAcnlE,EAAM1rB,EAAMpT,GACjC,IAAIS,EAAS,GAAYq+B,GACrB/+B,EAAQU,EAAOX,YAEE,oBAAVC,EACTA,EAAQ,IAAIA,EAAMqT,EAAMpT,IAExBD,EAAQU,EAAOH,SAASC,YAAY,SAChCP,GAAQD,EAAM4pb,UAAUv2a,EAAMpT,EAAOC,QAASD,EAAOE,YAAaH,EAAMI,OAASH,EAAOG,QACvFJ,EAAM4pb,UAAUv2a,GAAM,GAAO,IAGpC0rB,EAAKmlE,cAAclkG,EACrB,CAEA,SAASgnf,GAAiB3ze,EAAMpT,GAC9B,OAAO,WACL,OAAOikG,GAAczlG,KAAM4U,EAAMpT,EACnC,CACF,CAEA,SAASgnf,GAAiB5ze,EAAMpT,GAC9B,OAAO,WACL,OAAOikG,GAAczlG,KAAM4U,EAAMpT,EAAOwG,MAAMhI,KAAMa,WACtD,CACF,CAEe,YAAS+T,EAAMpT,GAC5B,OAAOxB,KAAKg5B,MAAwB,oBAAXx3B,EACnBgnf,GACAD,IAAkB3ze,EAAMpT,GAChC,CCjCe,cACb,IAAK,IAAIkvD,EAAS1wD,KAAKwif,QAAStge,EAAI,EAAGZ,EAAIovC,EAAO5vD,OAAQohB,EAAIZ,IAAKY,EACjE,IAAK,IAAgDoe,EAA5Cua,EAAQ6V,EAAOxuC,GAAIxe,EAAI,EAAG8R,EAAIqlC,EAAM/5C,OAAc4C,EAAI8R,IAAK9R,GAC9D48B,EAAOua,EAAMn3C,YAAU48B,EAGjC,CbOAsmd,GAAU3lf,UAAY,CACpBgb,IAAK,SAASjT,GACZ,IAAItF,EAAI1D,KAAK8mf,OAAO96e,QAAQhD,GACxBtF,EAAI,IACN1D,KAAK8mf,OAAO39e,KAAKH,GACjBhJ,KAAK6mf,MAAMn0a,aAAa,QAAS1yE,KAAK8mf,OAAO56e,KAAK,MAEtD,EACA83F,OAAQ,SAASh7F,GACf,IAAItF,EAAI1D,KAAK8mf,OAAO96e,QAAQhD,GACxBtF,GAAK,IACP1D,KAAK8mf,OAAO1vc,OAAO1zC,EAAG,GACtB1D,KAAK6mf,MAAMn0a,aAAa,QAAS1yE,KAAK8mf,OAAO56e,KAAK,MAEtD,EACAkoC,SAAU,SAASprC,GACjB,OAAOhJ,KAAK8mf,OAAO96e,QAAQhD,IAAS,CACtC,GcKK,IAAIxJ,GAAO,CAAC,MAEZ,SAASojf,GAAUlyb,EAAQsyb,GAChChjf,KAAKwif,QAAU9xb,EACf1wD,KAAK6if,SAAWG,CAClB,CAEA,SAAS/3c,KACP,OAAO,IAAI23c,GAAU,CAAC,CAAC9gf,SAAS0nE,kBAAmBhqE,GACrD,CAEA,SAASipf,KACP,OAAOzof,IACT,CAEA4if,GAAU3hf,UAAYgqC,GAAUhqC,UAAY,CAC1CsC,YAAaq/e,GACbvqd,OAAQqwd,GACRrF,UAAW,GACXsF,YAAa,GACbC,eAAgB,GAChBp8e,OAAQq8e,GACRroe,KAAM,GACNoje,MAAO,GACPC,KAAM,GACN33e,KAAM,GACNowI,MAAO,GACPrxG,UAAWw9c,GACXz7a,MAAO,GACP/gC,KAAM,GACN9qC,KAAM,GACNi+B,MAAO,GACPkB,KAAM,GACNhmB,KAAM,GACNgd,MAAOwxd,GACP9vd,KAAM,GACNu6H,KAAM,GACN99H,MAAO,GACPq9C,SAAU,GACVi2a,QAAS,GACT97Z,KAAM+7Z,GACNt1a,KAAM,GACNg0a,MAAOuB,GACP3vP,MAAO4vP,GACPv1V,OAAQ,GACR/U,OAAQ,GACR56C,OAAQmlZ,GACRz+Z,MAAO,GACP+4Z,MAAO2F,GACP7jZ,GAAI,GACJzqE,SAAUuud,GACV,CAAChmf,OAAOC,UAAW,IAGrB,UCzFI8jP,GAAO,CAAC7mP,MAAO,QAEnB,SAAS,KACP,IAAK,IAAyC+L,EAArC5I,EAAI,EAAG8R,EAAI3U,UAAUC,OAAQ+jD,EAAI,CAAC,EAAMnhD,EAAI8R,IAAK9R,EAAG,CAC3D,KAAM4I,EAAIzL,UAAU6C,GAAK,KAAQ4I,KAAKu4C,GAAM,QAAQnvC,KAAKpJ,GAAI,MAAM,IAAItJ,MAAM,iBAAmBsJ,GAChGu4C,EAAEv4C,GAAK,EACT,CACA,OAAO,IAAIg9e,GAASzkc,EACtB,CAEA,SAASykc,GAASzkc,GAChB7kD,KAAK6kD,EAAIA,CACX,CAEA,SAAS,GAAeujc,EAAWxhc,GACjC,OAAOwhc,EAAUlke,OAAOtY,MAAM,SAASpJ,KAAI,SAAS8J,GAClD,IAAItD,EAAO,GAAItF,EAAI4I,EAAEN,QAAQ,KAE7B,GADItI,GAAK,IAAGsF,EAAOsD,EAAEL,MAAMvI,EAAI,GAAI4I,EAAIA,EAAEL,MAAM,EAAGvI,IAC9C4I,IAAMs6C,EAAM1lD,eAAeoL,GAAI,MAAM,IAAItJ,MAAM,iBAAmBsJ,GACtE,MAAO,CAACsI,KAAMtI,EAAGtD,KAAMA,EACzB,GACF,CA2CA,SAASoF,GAAIwG,EAAM5L,GACjB,IAAK,IAA4BqgB,EAAxB3lB,EAAI,EAAG8R,EAAIZ,EAAK9T,OAAW4C,EAAI8R,IAAK9R,EAC3C,IAAK2lB,EAAIzU,EAAKlR,IAAIsF,OAASA,EACzB,OAAOqgB,EAAE9oB,KAGf,CAEA,SAAS8N,GAAIuG,EAAM5L,EAAMoyB,GACvB,IAAK,IAAI13B,EAAI,EAAG8R,EAAIZ,EAAK9T,OAAQ4C,EAAI8R,IAAK9R,EACxC,GAAIkR,EAAKlR,GAAGsF,OAASA,EAAM,CACzB4L,EAAKlR,GAAK0jP,GAAMxyO,EAAOA,EAAK3I,MAAM,EAAGvI,GAAGuE,OAAO2M,EAAK3I,MAAMvI,EAAI,IAC9D,KACF,CAGF,OADgB,MAAZ03B,GAAkBxmB,EAAKzL,KAAK,CAACH,KAAMA,EAAMzI,MAAO66B,IAC7CxmB,CACT,CA1DA00e,GAASrof,UAAY,GAASA,UAAY,CACxCsC,YAAa+lf,GACb/jZ,GAAI,SAAS8iZ,EAAUjtd,GACrB,IAEI9uB,EAFAu4C,EAAI7kD,KAAK6kD,EACTg2I,EAAI,GAAewtT,EAAW,GAAIxjc,GAElCnhD,GAAK,EACL8R,EAAIqlL,EAAE/5L,OAGV,KAAID,UAAUC,OAAS,GAAvB,CAOA,GAAgB,MAAZs6B,GAAwC,oBAAbA,EAAyB,MAAM,IAAIp4B,MAAM,qBAAuBo4B,GAC/F,QAAS13B,EAAI8R,EACX,GAAIlJ,GAAK+7e,EAAWxtT,EAAEn3L,IAAIkR,KAAMiwC,EAAEv4C,GAAK+B,GAAIw2C,EAAEv4C,GAAI+7e,EAASr/e,KAAMoyB,QAC3D,GAAgB,MAAZA,EAAkB,IAAK9uB,KAAKu4C,EAAGA,EAAEv4C,GAAK+B,GAAIw2C,EAAEv4C,GAAI+7e,EAASr/e,KAAM,MAG1E,OAAOhJ,IAVP,CAFE,QAAS0D,EAAI8R,MAAQlJ,GAAK+7e,EAAWxtT,EAAEn3L,IAAIkR,QAAUtI,EAAI8B,GAAIy2C,EAAEv4C,GAAI+7e,EAASr/e,OAAQ,OAAOsD,CAa/F,EACAgU,KAAM,WACJ,IAAIA,EAAO,CAAC,EAAGukC,EAAI7kD,KAAK6kD,EACxB,IAAK,IAAIv4C,KAAKu4C,EAAGvkC,EAAKhU,GAAKu4C,EAAEv4C,GAAGL,QAChC,OAAO,IAAIq9e,GAAShpe,EACtB,EACAnf,KAAM,SAASyT,EAAMssK,GACnB,IAAK1rK,EAAI3U,UAAUC,OAAS,GAAK,EAAG,IAAK,IAAgC0U,EAAGlJ,EAA/BzE,EAAO,IAAIC,MAAM0N,GAAI9R,EAAI,EAASA,EAAI8R,IAAK9R,EAAGmE,EAAKnE,GAAK7C,UAAU6C,EAAI,GACnH,IAAK1D,KAAK6kD,EAAE3jD,eAAe0T,GAAO,MAAM,IAAI5R,MAAM,iBAAmB4R,GACrE,IAAKtI,EAAItM,KAAK6kD,EAAEjwC,GAAOlR,EAAI,EAAG8R,EAAIlJ,EAAExL,OAAQ4C,EAAI8R,IAAK9R,EAAG4I,EAAE5I,GAAGnD,MAAMyH,MAAMk5K,EAAMr5K,EACjF,EACAG,MAAO,SAAS4M,EAAMssK,EAAMr5K,GAC1B,IAAK7H,KAAK6kD,EAAE3jD,eAAe0T,GAAO,MAAM,IAAI5R,MAAM,iBAAmB4R,GACrE,IAAK,IAAItI,EAAItM,KAAK6kD,EAAEjwC,GAAOlR,EAAI,EAAG8R,EAAIlJ,EAAExL,OAAQ4C,EAAI8R,IAAK9R,EAAG4I,EAAE5I,GAAGnD,MAAMyH,MAAMk5K,EAAMr5K,EACrF,GAsBF,IC/EI0hf,GACAC,GD8EJ,MCnFI,GAAQ,EACR/jc,GAAU,EACVE,GAAW,EACX8jc,GAAY,IAGZC,GAAY,EACZC,GAAW,EACXC,GAAY,EACZC,GAA+B,kBAAhBh9F,aAA4BA,YAAYh0X,IAAMg0X,YAAc3yY,KAC3E4ve,GAA6B,kBAAX7nf,QAAuBA,OAAOore,sBAAwBpre,OAAOore,sBAAsBhme,KAAKpF,QAAU,SAAS6T,GAAKiiC,WAAWjiC,EAAG,GAAK,EAElJ,SAAS+iB,KACd,OAAO8wd,KAAaG,GAASC,IAAWJ,GAAWE,GAAMhxd,MAAQ+wd,GACnE,CAEA,SAASG,KACPJ,GAAW,CACb,CAEO,SAASK,KACdhqf,KAAKiqf,MACLjqf,KAAKmzZ,MACLnzZ,KAAK0jf,MAAQ,IACf,CAyBO,SAASp/a,GAAMlpC,EAAU0c,EAAO0jF,GACrC,IAAIlvH,EAAI,IAAI09e,GAEZ,OADA19e,EAAE0mY,QAAQ53W,EAAU0c,EAAO0jF,GACpBlvH,CACT,CAEO,SAAS49e,KACdrxd,OACE,GACF,IAAkB91B,EAAduJ,EAAIi9e,GACR,MAAOj9e,GACAvJ,EAAI4mf,GAAWr9e,EAAE6mZ,QAAU,GAAG7mZ,EAAE29e,MAAM9of,UAAKS,EAAWmB,GAC3DuJ,EAAIA,EAAEo3e,QAEN,EACJ,CAEA,SAASyG,KACPR,IAAYD,GAAYG,GAAMhxd,OAAS+wd,GACvC,GAAQnkc,GAAU,EAClB,IACEykc,IACF,CAAE,QACA,GAAQ,EACRE,KACAT,GAAW,CACb,CACF,CAEA,SAASU,KACP,IAAIxxd,EAAMgxd,GAAMhxd,MAAOif,EAAQjf,EAAM6wd,GACjC5xc,EAAQ2xc,KAAWG,IAAa9xc,EAAO4xc,GAAY7wd,EACzD,CAEA,SAASuxd,KACP,IAAIE,EAAmBl2X,EAAfE,EAAKi1X,GAAc/tX,EAAO3qH,IAClC,MAAOyjH,EACDA,EAAG21X,OACDzuX,EAAOlH,EAAG6+R,QAAO33R,EAAOlH,EAAG6+R,OAC/Bm3F,EAAKh2X,EAAIA,EAAKA,EAAGovX,QAEjBtvX,EAAKE,EAAGovX,MAAOpvX,EAAGovX,MAAQ,KAC1BpvX,EAAKg2X,EAAKA,EAAG5G,MAAQtvX,EAAKm1X,GAAWn1X,GAGzCo1X,GAAWc,EACXC,GAAM/uX,EACR,CAEA,SAAS+uX,GAAM/uX,GACb,IAAI,GAAJ,CACI/1E,KAASA,GAAUvG,aAAauG,KACpC,IAAI3N,EAAQ0jF,EAAOmuX,GACf7xc,EAAQ,IACN0jF,EAAO3qH,MAAU40C,GAAU1N,WAAWoyc,GAAM3uX,EAAOquX,GAAMhxd,MAAQ+wd,KACjEjkc,KAAUA,GAAWD,cAAcC,OAElCA,KAAU+jc,GAAYG,GAAMhxd,MAAO8sB,GAAWC,YAAYykc,GAAMZ,KACrE,GAAQ,EAAGK,GAASK,IARL,CAUnB,CC3Ge,YAAS/ud,EAAU0c,EAAO0jF,GACvC,IAAIlvH,EAAI,IAAI09e,GAMZ,OALAlyc,EAAiB,MAATA,EAAgB,GAAKA,EAC7BxrC,EAAE0mY,SAAQw3G,IACRl+e,EAAE+vH,OACFjhG,EAASovd,EAAU1yc,EAAM,GACxBA,EAAO0jF,GACHlvH,CACT,CDgBA09e,GAAM/of,UAAYqjE,GAAMrjE,UAAY,CAClCsC,YAAaymf,GACbh3G,QAAS,SAAS53W,EAAU0c,EAAO0jF,GACjC,GAAwB,oBAAbpgG,EAAyB,MAAM,IAAI16B,UAAU,8BACxD86H,GAAgB,MAARA,EAAe3iG,MAAS2iG,IAAkB,MAAT1jF,EAAgB,GAAKA,GACzD93C,KAAK0jf,OAAS8F,KAAaxpf,OAC1Bwpf,GAAUA,GAAS9F,MAAQ1jf,KAC1Bupf,GAAWvpf,KAChBwpf,GAAWxpf,MAEbA,KAAKiqf,MAAQ7ud,EACbp7B,KAAKmzZ,MAAQ33R,EACb+uX,IACF,EACAluX,KAAM,WACAr8H,KAAKiqf,QACPjqf,KAAKiqf,MAAQ,KACbjqf,KAAKmzZ,MAAQtiZ,IACb05e,KAEJ,GE3CF,IAAIE,GAAU,GAAS,QAAS,MAAO,SAAU,aAC7CC,GAAa,GAEN1oJ,GAAU,EACV2oJ,GAAY,EACZ9lJ,GAAW,EACX+lJ,GAAU,EACVlmJ,GAAU,EACVmmJ,GAAS,EACTC,GAAQ,EAEJ,YAASxqd,EAAMt3B,EAAMrG,EAAI/B,EAAOi6C,EAAOkwc,GACpD,IAAIC,EAAY1qd,EAAK2qd,aACrB,GAAKD,GACA,GAAIrof,KAAMqof,EAAW,YADV1qd,EAAK2qd,aAAe,CAAC,EAErCh+e,GAAOqzB,EAAM39B,EAAI,CACfqG,KAAMA,EACNpI,MAAOA,EACPi6C,MAAOA,EACP0qD,GAAIklZ,GACJS,MAAOR,GACPlvX,KAAMuvX,EAAOvvX,KACb1jF,MAAOizc,EAAOjzc,MACd+jF,SAAUkvX,EAAOlvX,SACjBsvX,KAAMJ,EAAOI,KACb7mb,MAAO,KACP1gC,MAAOo+T,IAEX,CAEO,SAAS,GAAK1hU,EAAM39B,GACzB,IAAIsrX,EAAW,GAAI3tV,EAAM39B,GACzB,GAAIsrX,EAASrqV,MAAQo+T,GAAS,MAAM,IAAIh/V,MAAM,+BAC9C,OAAOirX,CACT,CAEO,SAAS,GAAI3tV,EAAM39B,GACxB,IAAIsrX,EAAW,GAAI3tV,EAAM39B,GACzB,GAAIsrX,EAASrqV,MAAQgnd,GAAS,MAAM,IAAI5nf,MAAM,6BAC9C,OAAOirX,CACT,CAEO,SAAS,GAAI3tV,EAAM39B,GACxB,IAAIsrX,EAAW3tV,EAAK2qd,aACpB,IAAKh9H,KAAcA,EAAWA,EAAStrX,IAAM,MAAM,IAAIK,MAAM,wBAC7D,OAAOirX,CACT,CAEA,SAAShhX,GAAOqzB,EAAM39B,EAAI5C,GACxB,IACImrf,EADAF,EAAY1qd,EAAK2qd,aAQrB,SAASh9H,EAASu8H,GAChBzqf,EAAK6jC,MAAQ+md,GACb5qf,EAAKukE,MAAM0uU,QAAQv+X,EAAO1U,EAAK+3C,MAAO/3C,EAAKy7H,MAGvCz7H,EAAK+3C,OAAS0yc,GAAS/1e,EAAM+1e,EAAUzqf,EAAK+3C,MAClD,CAEA,SAASrjC,EAAM+1e,GACb,IAAI9mf,EAAGwe,EAAG1M,EAAG1S,EAGb,GAAI/C,EAAK6jC,QAAU+md,GAAW,OAAOtuX,IAErC,IAAK34H,KAAKsnf,EAER,GADAlof,EAAIkof,EAAUtnf,GACVZ,EAAEkG,OAASjJ,EAAKiJ,KAApB,CAKA,GAAIlG,EAAE8gC,QAAUgnd,GAAS,OAAO,GAAQn2e,GAGpC3R,EAAE8gC,QAAU8gU,IACd5hW,EAAE8gC,MAAQknd,GACVhof,EAAEwhE,MAAM+3D,OACRv5H,EAAEyiG,GAAGpkG,KAAK,YAAam/B,EAAMA,EAAK42M,SAAUp0O,EAAElC,MAAOkC,EAAE+3C,cAChDmwc,EAAUtnf,KAITA,EAAIf,IACZG,EAAE8gC,MAAQknd,GACVhof,EAAEwhE,MAAM+3D,OACRv5H,EAAEyiG,GAAGpkG,KAAK,SAAUm/B,EAAMA,EAAK42M,SAAUp0O,EAAElC,MAAOkC,EAAE+3C,cAC7Cmwc,EAAUtnf,GApBe,CAwCpC,GAZA,IAAQ,WACF3D,EAAK6jC,QAAUgnd,KACjB7qf,EAAK6jC,MAAQ8gU,GACb3kW,EAAKukE,MAAM0uU,QAAQo4G,EAAMrrf,EAAK+3C,MAAO/3C,EAAKy7H,MAC1C4vX,EAAKZ,GAET,IAIAzqf,EAAK6jC,MAAQihU,GACb9kW,EAAKwlG,GAAGpkG,KAAK,QAASm/B,EAAMA,EAAK42M,SAAUn3O,EAAKa,MAAOb,EAAK86C,OACxD96C,EAAK6jC,QAAUihU,GAAnB,CAKA,IAJA9kW,EAAK6jC,MAAQgnd,GAGbM,EAAQ,IAAIpjf,MAAM0N,EAAIzV,EAAKmrf,MAAMpqf,QAC5B4C,EAAI,EAAGwe,GAAK,EAAGxe,EAAI8R,IAAK9R,GACvBZ,EAAI/C,EAAKmrf,MAAMxnf,GAAGnD,MAAMY,KAAKm/B,EAAMA,EAAK42M,SAAUn3O,EAAKa,MAAOb,EAAK86C,UACrEqwc,IAAQhpe,GAAKpf,GAGjBoof,EAAMpqf,OAASohB,EAAI,CAVgB,CAWrC,CAEA,SAASkpe,EAAKZ,GACZ,IAAIl+e,EAAIk+e,EAAUzqf,EAAK87H,SAAW97H,EAAKorf,KAAKhqf,KAAK,KAAMqpf,EAAUzqf,EAAK87H,WAAa97H,EAAKukE,MAAM0uU,QAAQ32Q,GAAOt8H,EAAK6jC,MAAQind,GAAQ,GAC9Hnnf,GAAK,EACL8R,EAAI01e,EAAMpqf,OAEd,QAAS4C,EAAI8R,EACX01e,EAAMxnf,GAAGvC,KAAKm/B,EAAMh0B,GAIlBvM,EAAK6jC,QAAUind,KACjB9qf,EAAKwlG,GAAGpkG,KAAK,MAAOm/B,EAAMA,EAAK42M,SAAUn3O,EAAKa,MAAOb,EAAK86C,OAC1DwhF,IAEJ,CAEA,SAASA,IAIP,IAAK,IAAI34H,KAHT3D,EAAK6jC,MAAQknd,GACb/qf,EAAKukE,MAAM+3D,cACJ2uX,EAAUrof,GACHqof,EAAW,cAClB1qd,EAAK2qd,YACd,CA9FAD,EAAUrof,GAAM5C,EAChBA,EAAKukE,MAAQA,GAAM2pT,EAAU,EAAGluX,EAAKy7H,KA8FvC,CCtJe,YAASl7F,EAAMt3B,GAC5B,IACIilX,EACAhoV,EAEAviC,EAJAsnf,EAAY1qd,EAAK2qd,aAGjB3zd,GAAQ,EAGZ,GAAK0zd,EAAL,CAIA,IAAKtnf,KAFLsF,EAAe,MAARA,EAAe,KAAOA,EAAO,GAE1Bgif,GACH/8H,EAAW+8H,EAAUtnf,IAAIsF,OAASA,GACvCi9B,EAASgoV,EAASrqV,MAAQihU,IAAYopB,EAASrqV,MAAQind,GACvD58H,EAASrqV,MAAQknd,GACjB78H,EAAS3pT,MAAM+3D,OACf4xP,EAAS1oR,GAAGpkG,KAAK8kC,EAAS,YAAc,SAAU3F,EAAMA,EAAK42M,SAAU+2I,EAASrtX,MAAOqtX,EAASpzU,cACzFmwc,EAAUtnf,IAL8B4zB,GAAQ,EAQrDA,UAAcgJ,EAAK2qd,YAbD,CAcxB,CCrBe,YAASjif,GACtB,OAAOhJ,KAAKg5B,MAAK,WACf,GAAUh5B,KAAMgJ,EAClB,GACF,CCNe,YAASF,EAAGC,GACzB,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAASuD,GAC9B,OAAOxD,GAAK,EAAIwD,GAAKvD,EAAIuD,CAC3B,CACF,CCJA,ICEI++e,GDFAxwX,GAAU,IAAMv4H,KAAKg4D,GAEdmnL,GAAW,CACpB6pQ,WAAY,EACZC,WAAY,EACZ36X,OAAQ,EACR46X,MAAO,EACPvjb,OAAQ,EACRC,OAAQ,GAGK,YAASp/D,EAAGC,EAAGsgB,EAAG6e,EAAGnlC,EAAG+S,GACrC,IAAImyD,EAAQC,EAAQsjb,EAKpB,OAJIvjb,EAAS3lE,KAAK4yH,KAAKpsH,EAAIA,EAAIC,EAAIA,MAAID,GAAKm/D,EAAQl/D,GAAKk/D,IACrDujb,EAAQ1if,EAAIugB,EAAItgB,EAAIm/B,KAAG7e,GAAKvgB,EAAI0if,EAAOtjd,GAAKn/B,EAAIyif,IAChDtjb,EAAS5lE,KAAK4yH,KAAK7rG,EAAIA,EAAI6e,EAAIA,MAAI7e,GAAK6+C,EAAQhgC,GAAKggC,EAAQsjb,GAAStjb,GACtEp/D,EAAIo/B,EAAIn/B,EAAIsgB,IAAGvgB,GAAKA,EAAGC,GAAKA,EAAGyif,GAASA,EAAOvjb,GAAUA,GACtD,CACLqjb,WAAYvof,EACZwof,WAAYz1e,EACZ86G,OAAQtuH,KAAK2yH,MAAMlsH,EAAGD,GAAK+xH,GAC3B2wX,MAAOlpf,KAAKmpf,KAAKD,GAAS3wX,GAC1B5yD,OAAQA,EACRC,OAAQA,EAEZ,CCpBO,SAASwjb,GAASnrf,GACvB,MAAM+gB,EAAI,IAA0B,oBAAdqqe,UAA2BA,UAAYC,iBAAiBrrf,EAAQ,IACtF,OAAO+gB,EAAEuqe,WAAapqQ,GAAWqqQ,GAAUxqe,EAAExY,EAAGwY,EAAEvY,EAAGuY,EAAE+H,EAAG/H,EAAE4mB,EAAG5mB,EAAEve,EAAGue,EAAExL,EACxE,CAEO,SAASi2e,GAASxrf,GACvB,OAAa,MAATA,EAAsBkhP,IACrB4pQ,KAASA,GAAUvpf,SAASuwJ,gBAAgB,6BAA8B,MAC/Eg5V,GAAQ34a,aAAa,YAAanyE,IAC5BA,EAAQ8qf,GAAQ1/a,UAAUqgb,QAAQC,gBACxC1rf,EAAQA,EAAMs6D,OACPixb,GAAUvrf,EAAMuI,EAAGvI,EAAMwI,EAAGxI,EAAM8oB,EAAG9oB,EAAM2nC,EAAG3nC,EAAMwC,EAAGxC,EAAMuV,IAFL2rO,GAGjE,CCdA,SAASyqQ,GAAqBllc,EAAOmlc,EAASC,EAASC,GAErD,SAASp6e,EAAIo6B,GACX,OAAOA,EAAEvrC,OAASurC,EAAEp6B,MAAQ,IAAM,EACpC,CAEA,SAASq6e,EAAUC,EAAIC,EAAIC,EAAIC,EAAIrgd,EAAGigB,GACpC,GAAIigc,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAIhpf,EAAI2oC,EAAEljC,KAAK,aAAc,KAAMgjf,EAAS,KAAMC,GAClD9/b,EAAEnjD,KAAK,CAACzF,EAAGA,EAAI,EAAGuU,EAAGmwE,GAAOmka,EAAIE,IAAM,CAAC/of,EAAGA,EAAI,EAAGuU,EAAGmwE,GAAOoka,EAAIE,IACjE,MAAWD,GAAMC,IACfrgd,EAAEljC,KAAK,aAAesjf,EAAKN,EAAUO,EAAKN,EAE9C,CAEA,SAASx7X,EAAO9nH,EAAGC,EAAGsjC,EAAGigB,GACnBxjD,IAAMC,GACJD,EAAIC,EAAI,IAAKA,GAAK,IAAcA,EAAID,EAAI,MAAKA,GAAK,KACtDwjD,EAAEnjD,KAAK,CAACzF,EAAG2oC,EAAEljC,KAAK8I,EAAIo6B,GAAK,UAAW,KAAMggd,GAAY,EAAGp0e,EAAGmwE,GAAOt/E,EAAGC,MAC/DA,GACTsjC,EAAEljC,KAAK8I,EAAIo6B,GAAK,UAAYtjC,EAAIsjf,EAEpC,CAEA,SAASb,EAAM1if,EAAGC,EAAGsjC,EAAGigB,GAClBxjD,IAAMC,EACRujD,EAAEnjD,KAAK,CAACzF,EAAG2oC,EAAEljC,KAAK8I,EAAIo6B,GAAK,SAAU,KAAMggd,GAAY,EAAGp0e,EAAGmwE,GAAOt/E,EAAGC,KAC9DA,GACTsjC,EAAEljC,KAAK8I,EAAIo6B,GAAK,SAAWtjC,EAAIsjf,EAEnC,CAEA,SAAS36K,EAAM66K,EAAIC,EAAIC,EAAIC,EAAIrgd,EAAGigB,GAChC,GAAIigc,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAIhpf,EAAI2oC,EAAEljC,KAAK8I,EAAIo6B,GAAK,SAAU,KAAM,IAAK,KAAM,KACnDigB,EAAEnjD,KAAK,CAACzF,EAAGA,EAAI,EAAGuU,EAAGmwE,GAAOmka,EAAIE,IAAM,CAAC/of,EAAGA,EAAI,EAAGuU,EAAGmwE,GAAOoka,EAAIE,IACjE,MAAkB,IAAPD,GAAmB,IAAPC,GACrBrgd,EAAEljC,KAAK8I,EAAIo6B,GAAK,SAAWogd,EAAK,IAAMC,EAAK,IAE/C,CAEA,OAAO,SAAS5jf,EAAGC,GACjB,IAAIsjC,EAAI,GACJigB,EAAI,GAOR,OANAxjD,EAAIk+C,EAAMl+C,GAAIC,EAAIi+C,EAAMj+C,GACxBujf,EAAUxjf,EAAEwif,WAAYxif,EAAEyif,WAAYxif,EAAEuif,WAAYvif,EAAEwif,WAAYl/c,EAAGigB,GACrEskE,EAAO9nH,EAAE8nH,OAAQ7nH,EAAE6nH,OAAQvkF,EAAGigB,GAC9Bk/b,EAAM1if,EAAE0if,MAAOzif,EAAEyif,MAAOn/c,EAAGigB,GAC3BolR,EAAM5oU,EAAEm/D,OAAQn/D,EAAEo/D,OAAQn/D,EAAEk/D,OAAQl/D,EAAEm/D,OAAQ77B,EAAGigB,GACjDxjD,EAAIC,EAAI,KACD,SAASuD,GACd,IAA0BxJ,EAAtBY,GAAK,EAAG8R,EAAI82C,EAAExrD,OAClB,QAAS4C,EAAI8R,EAAG62B,GAAGvpC,EAAIwpD,EAAE5oD,IAAIA,GAAKZ,EAAEmV,EAAE3L,GACtC,OAAO+/B,EAAEngC,KAAK,GAChB,CACF,CACF,CAEO,IAAIygf,GAA0BT,GAAqBR,GAAU,OAAQ,MAAO,QACxEkB,GAA0BV,GAAqBH,GAAU,KAAM,IAAK,KC5D/E,SAASc,GAAYlqf,EAAIqG,GACvB,IAAI8jf,EAAQC,EACZ,OAAO,WACL,IAAI9+H,EAAW,GAAIjuX,KAAM2C,GACrBuof,EAAQj9H,EAASi9H,MAKrB,GAAIA,IAAU4B,EAAQ,CACpBC,EAASD,EAAS5B,EAClB,IAAK,IAAIxnf,EAAI,EAAG8R,EAAIu3e,EAAOjsf,OAAQ4C,EAAI8R,IAAK9R,EAC1C,GAAIqpf,EAAOrpf,GAAGsF,OAASA,EAAM,CAC3B+jf,EAASA,EAAO9gf,QAChB8gf,EAAO31c,OAAO1zC,EAAG,GACjB,KACF,CAEJ,CAEAuqX,EAASi9H,MAAQ6B,CACnB,CACF,CAEA,SAASC,GAAcrqf,EAAIqG,EAAMzI,GAC/B,IAAIusf,EAAQC,EACZ,GAAqB,oBAAVxsf,EAAsB,MAAM,IAAIyC,MAC3C,OAAO,WACL,IAAIirX,EAAW,GAAIjuX,KAAM2C,GACrBuof,EAAQj9H,EAASi9H,MAKrB,GAAIA,IAAU4B,EAAQ,CACpBC,GAAUD,EAAS5B,GAAOj/e,QAC1B,IAAK,IAAIK,EAAI,CAACtD,KAAMA,EAAMzI,MAAOA,GAAQmD,EAAI,EAAG8R,EAAIu3e,EAAOjsf,OAAQ4C,EAAI8R,IAAK9R,EAC1E,GAAIqpf,EAAOrpf,GAAGsF,OAASA,EAAM,CAC3B+jf,EAAOrpf,GAAK4I,EACZ,KACF,CAEE5I,IAAM8R,GAAGu3e,EAAO5jf,KAAKmD,EAC3B,CAEA2hX,EAASi9H,MAAQ6B,CACnB,CACF,CAEe,YAAS/jf,EAAMzI,GAC5B,IAAIoC,EAAK3C,KAAKwrW,IAId,GAFAxiW,GAAQ,GAEJnI,UAAUC,OAAS,EAAG,CAExB,IADA,IACkCwL,EAD9B4+e,EAAQ,GAAIlrf,KAAKsgC,OAAQ39B,GAAIuof,MACxBxnf,EAAI,EAAG8R,EAAI01e,EAAMpqf,OAAW4C,EAAI8R,IAAK9R,EAC5C,IAAK4I,EAAI4+e,EAAMxnf,IAAIsF,OAASA,EAC1B,OAAOsD,EAAE/L,MAGb,OAAO,IACT,CAEA,OAAOP,KAAKg5B,MAAe,MAATz4B,EAAgBssf,GAAcG,IAAerqf,EAAIqG,EAAMzI,GAC3E,CAEO,SAAS0sf,GAAWC,EAAYlkf,EAAMzI,GAC3C,IAAIoC,EAAKuqf,EAAW1hJ,IAOpB,OALA0hJ,EAAWl0d,MAAK,WACd,IAAIi1V,EAAW,GAAIjuX,KAAM2C,IACxBsrX,EAAS1tX,QAAU0tX,EAAS1tX,MAAQ,CAAC,IAAIyI,GAAQzI,EAAMyH,MAAMhI,KAAMa,UACtE,IAEO,SAASy/B,GACd,OAAO,GAAIA,EAAM39B,GAAIpC,MAAMyI,EAC7B,CACF,CChFe,YAASzF,EAAa9D,EAASwB,GAC5CsC,EAAYtC,UAAYxB,EAAQwB,UAAYA,EAC5CA,EAAUsC,YAAcA,CAC1B,CAEO,SAASuuI,GAAO39D,EAAQiwW,GAC7B,IAAInjb,EAAYb,OAAO6M,OAAOknE,EAAOlzE,WACrC,IAAK,IAAI6C,KAAOsgb,EAAYnjb,EAAU6C,GAAOsgb,EAAWtgb,GACxD,OAAO7C,CACT,CCPO,SAAS,KAAS,CAElB,IAAIksf,GAAS,GACTC,GAAW,EAAID,GAEtBE,GAAM,sBACNC,GAAM,oDACNC,GAAM,qDACNC,GAAQ,qBACRC,GAAe,IAAI70e,OAAO,UAAUy0e,MAAOA,MAAOA,UAClDK,GAAe,IAAI90e,OAAO,UAAU20e,MAAOA,MAAOA,UAClDI,GAAgB,IAAI/0e,OAAO,WAAWy0e,MAAOA,MAAOA,MAAOC,UAC3DM,GAAgB,IAAIh1e,OAAO,WAAW20e,MAAOA,MAAOA,MAAOD,UAC3DO,GAAe,IAAIj1e,OAAO,UAAU00e,MAAOC,MAAOA,UAClDO,GAAgB,IAAIl1e,OAAO,WAAW00e,MAAOC,MAAOA,MAAOD,UAE3DS,GAAQ,CACVC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRj1X,MAAO,EACPk1X,eAAgB,SAChB3+e,KAAM,IACN4+e,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACT/1X,KAAM,MACNg2X,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACX19X,KAAM,QACN1jH,MAAO,MACPqhf,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACP55X,QAAS,SACT65X,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfnlf,IAAK,SACLolf,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPzmf,MAAO,SACP0mf,WAAY,SACZr9X,OAAQ,SACRs9X,YAAa,UAkBf,SAASC,KACP,OAAO32f,KAAK07D,MAAMk7b,WACpB,CAEA,SAASC,KACP,OAAO72f,KAAK07D,MAAMo7b,YACpB,CAEA,SAASC,KACP,OAAOC,GAAWh3f,MAAMi3f,WAC1B,CAEA,SAASC,KACP,OAAOl3f,KAAK07D,MAAMy7b,WACpB,CAEe,SAAS3od,GAAM0S,GAC5B,IAAI5/B,EAAG1L,EAEP,OADAsrC,GAAUA,EAAS,IAAIh9B,OAAOrD,eACtBS,EAAIkse,GAAMrhc,KAAKjL,KAAYtrC,EAAI0L,EAAE,GAAGxgB,OAAQwgB,EAAIiB,SAASjB,EAAE,GAAI,IAAW,IAAN1L,EAAUwhf,GAAK91e,GAC/E,IAAN1L,EAAU,IAAIyhf,GAAK/1e,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAAN1L,EAAU4hH,GAAKl2G,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAAN1L,EAAU4hH,GAAMl2G,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAImse,GAAathc,KAAKjL,IAAW,IAAIm2c,GAAI/1e,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAIose,GAAavhc,KAAKjL,IAAW,IAAIm2c,GAAW,IAAP/1e,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAIqse,GAAcxhc,KAAKjL,IAAWs2E,GAAKl2G,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAIsse,GAAczhc,KAAKjL,IAAWs2E,GAAY,IAAPl2G,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIuse,GAAa1hc,KAAKjL,IAAW02E,GAAKt2G,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIwse,GAAc3hc,KAAKjL,IAAW02E,GAAKt2G,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEyse,GAAM7sf,eAAeggD,GAAUk2c,GAAKrJ,GAAM7sc,IAC/B,gBAAXA,EAA2B,IAAIm2c,GAAIp7X,IAAKA,IAAKA,IAAK,GAClD,IACR,CAEA,SAASm7X,GAAK5hf,GACZ,OAAO,IAAI6hf,GAAI7hf,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,EAC1D,CAEA,SAASgiH,GAAKnrH,EAAGyuC,EAAG/xC,EAAGD,GAErB,OADIA,GAAK,IAAGuD,EAAIyuC,EAAI/xC,EAAIkzH,KACjB,IAAIo7X,GAAIhrf,EAAGyuC,EAAG/xC,EAAGD,EAC1B,CAEO,SAASwuf,GAAWx0f,GAEzB,OADMA,aAAa,KAAQA,EAAI0rC,GAAM1rC,IAChCA,GACLA,EAAIA,EAAE44D,MACC,IAAI27b,GAAIv0f,EAAEuJ,EAAGvJ,EAAEg4C,EAAGh4C,EAAEiG,EAAGjG,EAAEy0f,UAFjB,IAAIF,EAGrB,CAEO,SAAS,GAAIhrf,EAAGyuC,EAAG/xC,EAAGwuf,GAC3B,OAA4B,IAArB12f,UAAUC,OAAew2f,GAAWjrf,GAAK,IAAIgrf,GAAIhrf,EAAGyuC,EAAG/xC,EAAc,MAAXwuf,EAAkB,EAAIA,EACzF,CAEO,SAASF,GAAIhrf,EAAGyuC,EAAG/xC,EAAGwuf,GAC3Bv3f,KAAKqM,GAAKA,EACVrM,KAAK86C,GAAKA,EACV96C,KAAK+I,GAAKA,EACV/I,KAAKu3f,SAAWA,CAClB,CA8BA,SAASC,KACP,MAAO,IAAIvkY,GAAIjzH,KAAKqM,KAAK4mH,GAAIjzH,KAAK86C,KAAKm4E,GAAIjzH,KAAK+I,IAClD,CAEA,SAAS0uf,KACP,MAAO,IAAIxkY,GAAIjzH,KAAKqM,KAAK4mH,GAAIjzH,KAAK86C,KAAKm4E,GAAIjzH,KAAK+I,KAAKkqH,GAA+C,KAA1Cv8G,MAAM1W,KAAKu3f,SAAW,EAAIv3f,KAAKu3f,WAC3F,CAEA,SAASG,KACP,MAAM5uf,EAAI6uf,GAAO33f,KAAKu3f,SACtB,MAAO,GAAS,IAANzuf,EAAU,OAAS,UAAU8uf,GAAO53f,KAAKqM,OAAOurf,GAAO53f,KAAK86C,OAAO88c,GAAO53f,KAAK+I,KAAW,IAAND,EAAU,IAAM,KAAKA,MACrH,CAEA,SAAS6uf,GAAOJ,GACd,OAAO7gf,MAAM6gf,GAAW,EAAIj1f,KAAK6P,IAAI,EAAG7P,KAAK6V,IAAI,EAAGo/e,GACtD,CAEA,SAASK,GAAOr3f,GACd,OAAO+B,KAAK6P,IAAI,EAAG7P,KAAK6V,IAAI,IAAK7V,KAAK43D,MAAM35D,IAAU,GACxD,CAEA,SAAS0yH,GAAI1yH,GAEX,OADAA,EAAQq3f,GAAOr3f,IACPA,EAAQ,GAAK,IAAM,IAAMA,EAAMuO,SAAS,GAClD,CAEA,SAAS8oH,GAAKp8D,EAAGnvB,EAAGz2B,EAAG9M,GAIrB,OAHIA,GAAK,EAAG0yD,EAAInvB,EAAIz2B,EAAIqmH,IACfrmH,GAAK,GAAKA,GAAK,EAAG4lD,EAAInvB,EAAI4vF,IAC1B5vF,GAAK,IAAGmvB,EAAIygE,KACd,IAAI47X,GAAIr8b,EAAGnvB,EAAGz2B,EAAG9M,EAC1B,CAEO,SAASkuf,GAAWl0f,GACzB,GAAIA,aAAa+0f,GAAK,OAAO,IAAIA,GAAI/0f,EAAE04D,EAAG14D,EAAEupC,EAAGvpC,EAAE8S,EAAG9S,EAAEy0f,SAEtD,GADMz0f,aAAa,KAAQA,EAAI0rC,GAAM1rC,KAChCA,EAAG,OAAO,IAAI+0f,GACnB,GAAI/0f,aAAa+0f,GAAK,OAAO/0f,EAC7BA,EAAIA,EAAE44D,MACN,IAAIrvD,EAAIvJ,EAAEuJ,EAAI,IACVyuC,EAAIh4C,EAAEg4C,EAAI,IACV/xC,EAAIjG,EAAEiG,EAAI,IACVoP,EAAM7V,KAAK6V,IAAI9L,EAAGyuC,EAAG/xC,GACrBoJ,EAAM7P,KAAK6P,IAAI9F,EAAGyuC,EAAG/xC,GACrByyD,EAAIygE,IACJ5vF,EAAIl6B,EAAMgG,EACVvC,GAAKzD,EAAMgG,GAAO,EAUtB,OATIk0B,GACamvB,EAAXnvD,IAAM8F,GAAU2oC,EAAI/xC,GAAKsjC,EAAc,GAATyO,EAAI/xC,GAC7B+xC,IAAM3oC,GAAUpJ,EAAIsD,GAAKggC,EAAI,GAC5BhgC,EAAIyuC,GAAKzO,EAAI,EACvBA,GAAKz2B,EAAI,GAAMzD,EAAMgG,EAAM,EAAIhG,EAAMgG,EACrCqjD,GAAK,IAELnvB,EAAIz2B,EAAI,GAAKA,EAAI,EAAI,EAAI4lD,EAEpB,IAAIq8b,GAAIr8b,EAAGnvB,EAAGz2B,EAAG9S,EAAEy0f,QAC5B,CAEO,SAASh8b,GAAIC,EAAGnvB,EAAGz2B,EAAG2hf,GAC3B,OAA4B,IAArB12f,UAAUC,OAAek2f,GAAWx7b,GAAK,IAAIq8b,GAAIr8b,EAAGnvB,EAAGz2B,EAAc,MAAX2hf,EAAkB,EAAIA,EACzF,CAEA,SAASM,GAAIr8b,EAAGnvB,EAAGz2B,EAAG2hf,GACpBv3f,KAAKw7D,GAAKA,EACVx7D,KAAKqsC,GAAKA,EACVrsC,KAAK4V,GAAKA,EACV5V,KAAKu3f,SAAWA,CAClB,CAsCA,SAASO,GAAOv3f,GAEd,OADAA,GAASA,GAAS,GAAK,IAChBA,EAAQ,EAAIA,EAAQ,IAAMA,CACnC,CAEA,SAASw3f,GAAOx3f,GACd,OAAO+B,KAAK6P,IAAI,EAAG7P,KAAK6V,IAAI,EAAG5X,GAAS,GAC1C,CAGA,SAASiuL,GAAQhzH,EAAGspb,EAAI/kF,GACtB,OAGY,KAHJvkW,EAAI,GAAKspb,GAAM/kF,EAAK+kF,GAAMtpb,EAAI,GAChCA,EAAI,IAAMukW,EACVvkW,EAAI,IAAMspb,GAAM/kF,EAAK+kF,IAAO,IAAMtpb,GAAK,GACvCspb,EACR,CC3YO,SAASkT,GAAM1jY,EAAI2jY,EAAI1lO,EAAIC,EAAI0lO,GACpC,IAAI9jY,EAAKE,EAAKA,EAAID,EAAKD,EAAKE,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAIF,EAAKC,GAAM4jY,GAC9B,EAAI,EAAI7jY,EAAK,EAAIC,GAAMk+J,GACvB,EAAI,EAAIj+J,EAAK,EAAIF,EAAK,EAAIC,GAAMm+J,EACjCn+J,EAAK6jY,GAAM,CACnB,CAEe,YAASl8b,GACtB,IAAIxmD,EAAIwmD,EAAOl7D,OAAS,EACxB,OAAO,SAASwL,GACd,IAAI5I,EAAI4I,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAGkJ,EAAI,GAAKlT,KAAKC,MAAM+J,EAAIkJ,GAChE+8Q,EAAKv2N,EAAOt4D,GACZ8uR,EAAKx2N,EAAOt4D,EAAI,GAChBu0f,EAAKv0f,EAAI,EAAIs4D,EAAOt4D,EAAI,GAAK,EAAI6uR,EAAKC,EACtC0lO,EAAKx0f,EAAI8R,EAAI,EAAIwmD,EAAOt4D,EAAI,GAAK,EAAI8uR,EAAKD,EAC9C,OAAOylO,IAAO1rf,EAAI5I,EAAI8R,GAAKA,EAAGyif,EAAI1lO,EAAIC,EAAI0lO,EAC5C,CACF,CChBe,YAASl8b,GACtB,IAAIxmD,EAAIwmD,EAAOl7D,OACf,OAAO,SAASwL,GACd,IAAI5I,EAAIpB,KAAKC,QAAQ+J,GAAK,GAAK,IAAMA,EAAIA,GAAKkJ,GAC1Cyif,EAAKj8b,GAAQt4D,EAAI8R,EAAI,GAAKA,GAC1B+8Q,EAAKv2N,EAAOt4D,EAAI8R,GAChBg9Q,EAAKx2N,GAAQt4D,EAAI,GAAK8R,GACtB0if,EAAKl8b,GAAQt4D,EAAI,GAAK8R,GAC1B,OAAOwif,IAAO1rf,EAAI5I,EAAI8R,GAAKA,EAAGyif,EAAI1lO,EAAIC,EAAI0lO,EAC5C,CACF,CF6JA,GAAO,GAAO1pd,GAAO,CACnB,IAAAluB,CAAKoyG,GACH,OAAOtyH,OAAOC,OAAO,IAAIL,KAAKuD,YAAavD,KAAM0yH,EACnD,EACA,WAAAylY,GACE,OAAOn4f,KAAK07D,MAAMy8b,aACpB,EACAllY,IAAK0jY,GACLC,UAAWD,GACXG,WAAYD,GACZI,UAAWF,GACXI,UAAWD,GACXpof,SAAUoof,KAiEZ,GAAOG,GAAK,GAAKvlX,GAAO,GAAO,CAC7B,QAAAs7W,CAAS5ye,GAEP,OADAA,EAAS,MAALA,EAAY4ye,GAAW9qf,KAAKwV,IAAIs1e,GAAU5ye,GACvC,IAAI68e,GAAIr3f,KAAKqM,EAAImO,EAAGxa,KAAK86C,EAAItgC,EAAGxa,KAAK+I,EAAIyR,EAAGxa,KAAKu3f,QAC1D,EACA,MAAApK,CAAO3ye,GAEL,OADAA,EAAS,MAALA,EAAY2ye,GAAS7qf,KAAKwV,IAAIq1e,GAAQ3ye,GACnC,IAAI68e,GAAIr3f,KAAKqM,EAAImO,EAAGxa,KAAK86C,EAAItgC,EAAGxa,KAAK+I,EAAIyR,EAAGxa,KAAKu3f,QAC1D,EACA,GAAA77b,GACE,OAAO17D,IACT,EACA,KAAAm6D,GACE,OAAO,IAAIk9b,GAAIO,GAAO53f,KAAKqM,GAAIurf,GAAO53f,KAAK86C,GAAI88c,GAAO53f,KAAK+I,GAAI4uf,GAAO33f,KAAKu3f,SAC7E,EACA,WAAAY,GACE,OAAS,IAAOn4f,KAAKqM,GAAKrM,KAAKqM,EAAI,QAC1B,IAAOrM,KAAK86C,GAAK96C,KAAK86C,EAAI,QAC1B,IAAO96C,KAAK+I,GAAK/I,KAAK+I,EAAI,OAC3B,GAAK/I,KAAKu3f,SAAWv3f,KAAKu3f,SAAW,CAC/C,EACAtkY,IAAKukY,GACLZ,UAAWY,GACXV,WAAYW,GACZN,UAAWO,GACX5of,SAAU4of,MAyEZ,GAAOG,GAAKt8b,GAAKu2E,GAAO,GAAO,CAC7B,QAAAs7W,CAAS5ye,GAEP,OADAA,EAAS,MAALA,EAAY4ye,GAAW9qf,KAAKwV,IAAIs1e,GAAU5ye,GACvC,IAAIq9e,GAAI73f,KAAKw7D,EAAGx7D,KAAKqsC,EAAGrsC,KAAK4V,EAAI4E,EAAGxa,KAAKu3f,QAClD,EACA,MAAApK,CAAO3ye,GAEL,OADAA,EAAS,MAALA,EAAY2ye,GAAS7qf,KAAKwV,IAAIq1e,GAAQ3ye,GACnC,IAAIq9e,GAAI73f,KAAKw7D,EAAGx7D,KAAKqsC,EAAGrsC,KAAK4V,EAAI4E,EAAGxa,KAAKu3f,QAClD,EACA,GAAA77b,GACE,IAAIF,EAAIx7D,KAAKw7D,EAAI,IAAqB,KAAdx7D,KAAKw7D,EAAI,GAC7BnvB,EAAI31B,MAAM8kD,IAAM9kD,MAAM1W,KAAKqsC,GAAK,EAAIrsC,KAAKqsC,EACzCz2B,EAAI5V,KAAK4V,EACTmqZ,EAAKnqZ,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKy2B,EACjCy4c,EAAK,EAAIlve,EAAImqZ,EACjB,OAAO,IAAIs3F,GACT7oU,GAAQhzH,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKspb,EAAI/kF,GAC1CvxO,GAAQhzH,EAAGspb,EAAI/kF,GACfvxO,GAAQhzH,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKspb,EAAI/kF,GACzC//Z,KAAKu3f,QAET,EACA,KAAAp9b,GACE,OAAO,IAAI09b,GAAIC,GAAO93f,KAAKw7D,GAAIu8b,GAAO/3f,KAAKqsC,GAAI0rd,GAAO/3f,KAAK4V,GAAI+hf,GAAO33f,KAAKu3f,SAC7E,EACA,WAAAY,GACE,OAAQ,GAAKn4f,KAAKqsC,GAAKrsC,KAAKqsC,GAAK,GAAK31B,MAAM1W,KAAKqsC,KACzC,GAAKrsC,KAAK4V,GAAK5V,KAAK4V,GAAK,GACzB,GAAK5V,KAAKu3f,SAAWv3f,KAAKu3f,SAAW,CAC/C,EACA,SAAAN,GACE,MAAMnuf,EAAI6uf,GAAO33f,KAAKu3f,SACtB,MAAO,GAAS,IAANzuf,EAAU,OAAS,UAAUgvf,GAAO93f,KAAKw7D,OAAwB,IAAjBu8b,GAAO/3f,KAAKqsC,QAA+B,IAAjB0rd,GAAO/3f,KAAK4V,MAAkB,IAAN9M,EAAU,IAAM,KAAKA,MACnI,KGzXF,OAAemP,GAAK,IAAMA,ECE1B,SAASijD,GAAOpyD,EAAGo/B,GACjB,OAAO,SAAS57B,GACd,OAAOxD,EAAIwD,EAAI47B,CACjB,CACF,CAEA,SAASkwd,GAAYtvf,EAAGC,EAAGmP,GACzB,OAAOpP,EAAIxG,KAAKwV,IAAIhP,EAAGoP,GAAInP,EAAIzG,KAAKwV,IAAI/O,EAAGmP,GAAKpP,EAAGoP,EAAI,EAAIA,EAAG,SAAS5L,GACrE,OAAOhK,KAAKwV,IAAIhP,EAAIwD,EAAIvD,EAAGmP,EAC7B,CACF,CAOO,SAASykD,GAAMzkD,GACpB,OAAoB,KAAZA,GAAKA,GAAWmgf,GAAU,SAASvvf,EAAGC,GAC5C,OAAOA,EAAID,EAAIsvf,GAAYtvf,EAAGC,EAAGmP,GAAK,GAASxB,MAAM5N,GAAKC,EAAID,EAChE,CACF,CAEe,SAASuvf,GAAQvvf,EAAGC,GACjC,IAAIm/B,EAAIn/B,EAAID,EACZ,OAAOo/B,EAAIgzB,GAAOpyD,EAAGo/B,GAAK,GAASxxB,MAAM5N,GAAKC,EAAID,EACpD,CCvBA,OAAe,SAAUwvf,EAASpgf,GAChC,IAAIs2B,EAAQmuB,GAAMzkD,GAElB,SAASwjD,EAAIjnD,EAAOnD,GAClB,IAAIjF,EAAImiC,GAAO/5B,EAAQ,GAASA,IAAQpI,GAAIiF,EAAM,GAASA,IAAMjF,GAC7DyuC,EAAItM,EAAM/5B,EAAMqmC,EAAGxpC,EAAIwpC,GACvB/xC,EAAIylC,EAAM/5B,EAAM1L,EAAGuI,EAAIvI,GACvBwuf,EAAUc,GAAQ5jf,EAAM8if,QAASjmf,EAAIimf,SACzC,OAAO,SAASjrf,GAKd,OAJAmI,EAAMpI,EAAIA,EAAEC,GACZmI,EAAMqmC,EAAIA,EAAExuC,GACZmI,EAAM1L,EAAIA,EAAEuD,GACZmI,EAAM8if,QAAUA,EAAQjrf,GACjBmI,EAAQ,EACjB,CACF,CAIA,OAFAinD,EAAIiB,MAAQ27b,EAEL58b,CACR,CApBD,CAoBG,GAEH,SAAS68b,GAAUC,GACjB,OAAO,SAAS76b,GACd,IAIIj6D,EAAG8qC,EAJHh5B,EAAImoD,EAAO78D,OACXuL,EAAI,IAAIvE,MAAM0N,GACdslC,EAAI,IAAIhzC,MAAM0N,GACdzM,EAAI,IAAIjB,MAAM0N,GAElB,IAAK9R,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB8qC,EAAQ,GAASmvB,EAAOj6D,IACxB2I,EAAE3I,GAAK8qC,EAAMniC,GAAK,EAClByuC,EAAEp3C,GAAK8qC,EAAMsM,GAAK,EAClB/xC,EAAErF,GAAK8qC,EAAMzlC,GAAK,EAMpB,OAJAsD,EAAImsf,EAAOnsf,GACXyuC,EAAI09c,EAAO19c,GACX/xC,EAAIyvf,EAAOzvf,GACXylC,EAAM+od,QAAU,EACT,SAASjrf,GAId,OAHAkiC,EAAMniC,EAAIA,EAAEC,GACZkiC,EAAMsM,EAAIA,EAAExuC,GACZkiC,EAAMzlC,EAAIA,EAAEuD,GACLkiC,EAAQ,EACjB,CACF,CACF,CAEsB+pd,GAAU,IACJA,GAAUE,IAD/B,ICnDHC,GAAM,8CACNC,GAAM,IAAI//e,OAAO8/e,GAAIpof,OAAQ,KAEjC,SAAS,GAAKvH,GACZ,OAAO,WACL,OAAOA,CACT,CACF,CAEA,SAAS6vf,GAAI7vf,GACX,OAAO,SAASuD,GACd,OAAOvD,EAAEuD,GAAK,EAChB,CACF,CAEe,YAASxD,EAAGC,GACzB,IACI+iI,EACAogB,EACA2sW,EAHAC,EAAKJ,GAAIj1Q,UAAYk1Q,GAAIl1Q,UAAY,EAIrC//O,GAAK,EACL2oC,EAAI,GACJigB,EAAI,GAGRxjD,GAAQ,GAAIC,GAAQ,GAGpB,OAAQ+iI,EAAK4sX,GAAIvsc,KAAKrjD,MACdojJ,EAAKysW,GAAIxsc,KAAKpjD,KACf8vf,EAAK3sW,EAAGtrJ,OAASk4f,IACpBD,EAAK9vf,EAAEkD,MAAM6sf,EAAID,GACbxsd,EAAE3oC,GAAI2oC,EAAE3oC,IAAMm1f,EACbxsd,IAAI3oC,GAAKm1f,IAEX/sX,EAAKA,EAAG,OAASogB,EAAKA,EAAG,IACxB7/G,EAAE3oC,GAAI2oC,EAAE3oC,IAAMwoJ,EACb7/G,IAAI3oC,GAAKwoJ,GAEd7/G,IAAI3oC,GAAK,KACT4oD,EAAEnjD,KAAK,CAACzF,EAAGA,EAAGuU,EAAGmwE,GAAO0jD,EAAIogB,MAE9B4sW,EAAKH,GAAIl1Q,UAYX,OARIq1Q,EAAK/vf,EAAEjI,SACT+3f,EAAK9vf,EAAEkD,MAAM6sf,GACTzsd,EAAE3oC,GAAI2oC,EAAE3oC,IAAMm1f,EACbxsd,IAAI3oC,GAAKm1f,GAKTxsd,EAAEvrC,OAAS,EAAKwrD,EAAE,GACnBssc,GAAItsc,EAAE,GAAGr0C,GACT,GAAKlP,IACJA,EAAIujD,EAAExrD,OAAQ,SAASwL,GACtB,IAAK,IAAWxJ,EAAPY,EAAI,EAAMA,EAAIqF,IAAKrF,EAAG2oC,GAAGvpC,EAAIwpD,EAAE5oD,IAAIA,GAAKZ,EAAEmV,EAAE3L,GACrD,OAAO+/B,EAAEngC,KAAK,GAChB,EACR,CC5De,YAASpD,EAAGC,GACzB,IAAIsgB,EACJ,OAAqB,kBAANtgB,EAAiB,GAC1BA,aAAaylC,GAAQ,IACpBnlB,EAAImlB,GAAMzlC,KAAOA,EAAIsgB,EAAG,IACzB,IAAmBvgB,EAAGC,EAC9B,CCJA,SAAS,GAAWC,GAClB,OAAO,WACLhJ,KAAKyyE,gBAAgBzpE,EACvB,CACF,CAEA,SAAS,GAAa28e,GACpB,OAAO,WACL3lf,KAAK4lf,kBAAkBD,EAASH,MAAOG,EAASxpL,MAClD,CACF,CAEA,SAAS,GAAanzT,EAAMqjQ,EAAa0sP,GACvC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAUn5f,KAAK2wC,aAAa3nC,GAChC,OAAOmwf,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAe5sP,EAAY2sP,EAAWG,EAASJ,EACvD,CACF,CAEA,SAAS,GAAepT,EAAUt5O,EAAa0sP,GAC7C,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAUn5f,KAAKimf,eAAeN,EAASH,MAAOG,EAASxpL,OAC3D,OAAOg9L,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAe5sP,EAAY2sP,EAAWG,EAASJ,EACvD,CACF,CAEA,SAAS,GAAa/vf,EAAMqjQ,EAAa9rQ,GACvC,IAAIy4f,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAA+BD,EAAtBH,EAASx4f,EAAMP,MAC5B,GAAc,MAAV+4f,EAGJ,OAFAI,EAAUn5f,KAAK2wC,aAAa3nC,GAC5Bkwf,EAAUH,EAAS,GACZI,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAe5sP,EAAY2sP,EAAWG,EAASJ,IAL1C/4f,KAAKyyE,gBAAgBzpE,EAMvD,CACF,CAEA,SAAS,GAAe28e,EAAUt5O,EAAa9rQ,GAC7C,IAAIy4f,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAA+BD,EAAtBH,EAASx4f,EAAMP,MAC5B,GAAc,MAAV+4f,EAGJ,OAFAI,EAAUn5f,KAAKimf,eAAeN,EAASH,MAAOG,EAASxpL,OACvD+8L,EAAUH,EAAS,GACZI,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAe5sP,EAAY2sP,EAAWG,EAASJ,IAL1C/4f,KAAK4lf,kBAAkBD,EAASH,MAAOG,EAASxpL,MAMlF,CACF,CAEe,YAASnzT,EAAMzI,GAC5B,IAAIolf,EAAWpsd,GAAUvwB,GAAOtF,EAAiB,cAAbiif,EAA2B,GAAuB,GACtF,OAAO3lf,KAAKq5f,UAAUrwf,EAAuB,oBAAVzI,GAC5Bolf,EAASxpL,MAAQ,GAAiB,IAAcwpL,EAAUjif,EAAGupf,GAAWjtf,KAAM,QAAUgJ,EAAMzI,IACtF,MAATA,GAAiBolf,EAASxpL,MAAQ,GAAe,IAAYwpL,IAC5DA,EAASxpL,MAAQ,GAAiB,IAAcwpL,EAAUjif,EAAGnD,GACtE,CC3EA,SAAS+4f,GAAgBtwf,EAAMtF,GAC7B,OAAO,SAAS4I,GACdtM,KAAK0yE,aAAa1pE,EAAMtF,EAAEvC,KAAKnB,KAAMsM,GACvC,CACF,CAEA,SAASitf,GAAkB5T,EAAUjif,GACnC,OAAO,SAAS4I,GACdtM,KAAKy+K,eAAeknU,EAASH,MAAOG,EAASxpL,MAAOz4T,EAAEvC,KAAKnB,KAAMsM,GACnE,CACF,CAEA,SAASktf,GAAY7T,EAAUplf,GAC7B,IAAI+pf,EAAIjG,EACR,SAAS6G,IACP,IAAIxnf,EAAInD,EAAMyH,MAAMhI,KAAMa,WAE1B,OADI6C,IAAM2gf,IAAIiG,GAAMjG,EAAK3gf,IAAM61f,GAAkB5T,EAAUjif,IACpD4mf,CACT,CAEA,OADAY,EAAMj3Y,OAAS1zG,EACR2qf,CACT,CAEA,SAASmO,GAAUrwf,EAAMzI,GACvB,IAAI+pf,EAAIjG,EACR,SAAS6G,IACP,IAAIxnf,EAAInD,EAAMyH,MAAMhI,KAAMa,WAE1B,OADI6C,IAAM2gf,IAAIiG,GAAMjG,EAAK3gf,IAAM41f,GAAgBtwf,EAAMtF,IAC9C4mf,CACT,CAEA,OADAY,EAAMj3Y,OAAS1zG,EACR2qf,CACT,CAEe,YAASlif,EAAMzI,GAC5B,IAAIuD,EAAM,QAAUkF,EACpB,GAAInI,UAAUC,OAAS,EAAG,OAAQgD,EAAM9D,KAAKkrf,MAAMpnf,KAASA,EAAImwG,OAChE,GAAa,MAAT1zG,EAAe,OAAOP,KAAKkrf,MAAMpnf,EAAK,MAC1C,GAAqB,oBAAVvD,EAAsB,MAAM,IAAIyC,MAC3C,IAAI2if,EAAWpsd,GAAUvwB,GACzB,OAAOhJ,KAAKkrf,MAAMpnf,GAAM6hf,EAASxpL,MAAQq9L,GAAcH,IAAW1T,EAAUplf,GAC9E,CCzCA,SAASk5f,GAAc92f,EAAIpC,GACzB,OAAO,WACL,GAAKP,KAAM2C,GAAIm1C,OAASv3C,EAAMyH,MAAMhI,KAAMa,UAC5C,CACF,CAEA,SAAS64f,GAAc/2f,EAAIpC,GACzB,OAAOA,GAASA,EAAO,WACrB,GAAKP,KAAM2C,GAAIm1C,MAAQv3C,CACzB,CACF,CAEe,YAASA,GACtB,IAAIoC,EAAK3C,KAAKwrW,IAEd,OAAO3qW,UAAUC,OACXd,KAAKg5B,MAAuB,oBAAVz4B,EACdk5f,GACAC,IAAe/2f,EAAIpC,IACvB,GAAIP,KAAKsgC,OAAQ39B,GAAIm1C,KAC7B,CCpBA,SAAS6hd,GAAiBh3f,EAAIpC,GAC5B,OAAO,WACL,GAAIP,KAAM2C,GAAIk5H,UAAYt7H,EAAMyH,MAAMhI,KAAMa,UAC9C,CACF,CAEA,SAAS+4f,GAAiBj3f,EAAIpC,GAC5B,OAAOA,GAASA,EAAO,WACrB,GAAIP,KAAM2C,GAAIk5H,SAAWt7H,CAC3B,CACF,CAEe,YAASA,GACtB,IAAIoC,EAAK3C,KAAKwrW,IAEd,OAAO3qW,UAAUC,OACXd,KAAKg5B,MAAuB,oBAAVz4B,EACdo5f,GACAC,IAAkBj3f,EAAIpC,IAC1B,GAAIP,KAAKsgC,OAAQ39B,GAAIk5H,QAC7B,CCpBA,SAASg+X,GAAal3f,EAAIpC,GACxB,GAAqB,oBAAVA,EAAsB,MAAM,IAAIyC,MAC3C,OAAO,WACL,GAAIhD,KAAM2C,GAAIwof,KAAO5qf,CACvB,CACF,CAEe,YAASA,GACtB,IAAIoC,EAAK3C,KAAKwrW,IAEd,OAAO3qW,UAAUC,OACXd,KAAKg5B,KAAK6ge,GAAal3f,EAAIpC,IAC3B,GAAIP,KAAKsgC,OAAQ39B,GAAIwof,IAC7B,CCbA,SAAS2O,GAAYn3f,EAAIpC,GACvB,OAAO,WACL,IAAIirD,EAAIjrD,EAAMyH,MAAMhI,KAAMa,WAC1B,GAAiB,oBAAN2qD,EAAkB,MAAM,IAAIxoD,MACvC,GAAIhD,KAAM2C,GAAIwof,KAAO3/b,CACvB,CACF,CAEe,YAASjrD,GACtB,GAAqB,oBAAVA,EAAsB,MAAM,IAAIyC,MAC3C,OAAOhD,KAAKg5B,KAAK8ge,GAAY95f,KAAKwrW,IAAKjrW,GACzC,CCVe,YAAS+J,GACD,oBAAVA,IAAsBA,EAAQq/I,GAAQr/I,IAEjD,IAAK,IAAIomD,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQ2hf,EAAY,IAAI36e,MAAMwZ,GAAIY,EAAI,EAAGA,EAAIZ,IAAKY,EAC3F,IAAK,IAAuEoe,EAAnEua,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAQ6hf,EAAWF,EAAUvge,GAAK,GAAUxe,EAAI,EAAGA,EAAI8R,IAAK9R,GAC3F48B,EAAOua,EAAMn3C,KAAO4G,EAAMnJ,KAAKm/B,EAAMA,EAAK42M,SAAUxzO,EAAGm3C,IAC1D8nc,EAASx5e,KAAKm3B,GAKpB,OAAO,IAAIy5d,GAAWtX,EAAWzif,KAAK6if,SAAU7if,KAAKk7V,MAAOl7V,KAAKwrW,IACnE,CCbe,YAAS0hJ,GACtB,GAAIA,EAAW1hJ,MAAQxrW,KAAKwrW,IAAK,MAAM,IAAIxoW,MAE3C,IAAK,IAAI2hf,EAAU3kf,KAAKwif,QAASoC,EAAUsI,EAAW1K,QAASqC,EAAKF,EAAQ7jf,OAAQgkf,EAAKF,EAAQ9jf,OAAQwgB,EAAIhf,KAAK6V,IAAI0se,EAAIC,GAAKC,EAAS,IAAIj9e,MAAM+8e,GAAK3ie,EAAI,EAAGA,EAAIZ,IAAKY,EACrK,IAAK,IAAmGoe,EAA/F0kd,EAASL,EAAQzie,GAAIyqI,EAASi4V,EAAQ1ie,GAAI1M,EAAIwve,EAAOlkf,OAAQw7I,EAAQyoW,EAAO7ie,GAAK,IAAIpa,MAAM0N,GAAU9R,EAAI,EAAGA,EAAI8R,IAAK9R,GACxH48B,EAAO0kd,EAAOthf,IAAMipJ,EAAOjpJ,MAC7B44I,EAAM54I,GAAK48B,GAKjB,KAAOpe,EAAI2ie,IAAM3ie,EACf6ie,EAAO7ie,GAAKyie,EAAQzie,GAGtB,OAAO,IAAI63e,GAAWhV,EAAQ/kf,KAAK6if,SAAU7if,KAAKk7V,MAAOl7V,KAAKwrW,IAChE,CChBA,SAAS/2V,GAAMzL,GACb,OAAQA,EAAO,IAAIkb,OAAOtY,MAAM,SAASgrB,OAAM,SAAStqB,GACtD,IAAI5I,EAAI4I,EAAEN,QAAQ,KAElB,OADItI,GAAK,IAAG4I,EAAIA,EAAEL,MAAM,EAAGvI,KACnB4I,GAAW,UAANA,CACf,GACF,CAEA,SAAS0tf,GAAWr3f,EAAIqG,EAAMg4K,GAC5B,IAAIi5U,EAAKC,EAAKC,EAAM1lf,GAAMzL,GAAQ,GAAO,GACzC,OAAO,WACL,IAAIilX,EAAWksI,EAAIn6f,KAAM2C,GACrB4iG,EAAK0oR,EAAS1oR,GAKdA,IAAO00Z,IAAMC,GAAOD,EAAM10Z,GAAIjlF,QAAQilF,GAAGv8F,EAAMg4K,GAEnDitM,EAAS1oR,GAAK20Z,CAChB,CACF,CAEe,YAASlxf,EAAMg4K,GAC5B,IAAIr+K,EAAK3C,KAAKwrW,IAEd,OAAO3qW,UAAUC,OAAS,EACpB,GAAId,KAAKsgC,OAAQ39B,GAAI4iG,GAAGA,GAAGv8F,GAC3BhJ,KAAKg5B,KAAKghe,GAAWr3f,EAAIqG,EAAMg4K,GACvC,CC/BA,SAASo5U,GAAez3f,GACtB,OAAO,WACL,IAAIwxE,EAASn0E,KAAK6wC,WAClB,IAAK,IAAIntC,KAAK1D,KAAKirf,aAAc,IAAKvnf,IAAMf,EAAI,OAC5CwxE,GAAQA,EAAOynG,YAAY57K,KACjC,CACF,CAEe,cACb,OAAOA,KAAKulG,GAAG,aAAc60Z,GAAep6f,KAAKwrW,KACnD,CCNe,YAASnzU,GACtB,IAAIrvB,EAAOhJ,KAAKk7V,MACZv4V,EAAK3C,KAAKwrW,IAEQ,oBAAXnzU,IAAuBA,EAASo5H,GAASp5H,IAEpD,IAAK,IAAIq4B,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQ2hf,EAAY,IAAI36e,MAAMwZ,GAAIY,EAAI,EAAGA,EAAIZ,IAAKY,EAC3F,IAAK,IAAiFoe,EAAMoid,EAAnF7nc,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAQ6hf,EAAWF,EAAUvge,GAAK,IAAIpa,MAAM0N,GAAmB9R,EAAI,EAAGA,EAAI8R,IAAK9R,GAC9G48B,EAAOua,EAAMn3C,MAAQg/e,EAAUrqd,EAAOl3B,KAAKm/B,EAAMA,EAAK42M,SAAUxzO,EAAGm3C,MAClE,aAAcva,IAAMoid,EAAQxrQ,SAAW52M,EAAK42M,UAChDyrQ,EAASj/e,GAAKg/e,EACdz0H,GAAS00H,EAASj/e,GAAIsF,EAAMrG,EAAIe,EAAGi/e,EAAU,GAAIrid,EAAM39B,KAK7D,OAAO,IAAIo3f,GAAWtX,EAAWzif,KAAK6if,SAAU75e,EAAMrG,EACxD,CCjBe,YAAS01B,GACtB,IAAIrvB,EAAOhJ,KAAKk7V,MACZv4V,EAAK3C,KAAKwrW,IAEQ,oBAAXnzU,IAAuBA,EAAS0qd,GAAY1qd,IAEvD,IAAK,IAAIq4B,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQ2hf,EAAY,GAAIO,EAAU,GAAI9ge,EAAI,EAAGA,EAAIZ,IAAKY,EAC/F,IAAK,IAAyCoe,EAArCua,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAc4C,EAAI,EAAGA,EAAI8R,IAAK9R,EAClE,GAAI48B,EAAOua,EAAMn3C,GAAI,CACnB,IAAK,IAA2DsvC,EAAvDpB,EAAWvZ,EAAOl3B,KAAKm/B,EAAMA,EAAK42M,SAAUxzO,EAAGm3C,GAAeumX,EAAU,GAAI9gY,EAAM39B,GAAK6X,EAAI,EAAG5E,EAAIg8B,EAAS9wC,OAAQ0Z,EAAI5E,IAAK4E,GAC/Hw4B,EAAQpB,EAASp3B,KACnByzW,GAASj7U,EAAOhqC,EAAMrG,EAAI6X,EAAGo3B,EAAUwvX,GAG3CqhF,EAAUt5e,KAAKyoC,GACfoxc,EAAQ75e,KAAKm3B,EACf,CAIJ,OAAO,IAAIy5d,GAAWtX,EAAWO,EAASh6e,EAAMrG,EAClD,CCvBA,IAAI,GAAY,GAAU1B,UAAUsC,YAErB,cACb,OAAO,IAAI,GAAUvD,KAAKwif,QAASxif,KAAK6if,SAC1C,CCAA,SAASwX,GAAUrxf,EAAMqjQ,GACvB,IAAI2sP,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAAU,GAAMn5f,KAAMgJ,GACtBkwf,GAAWl5f,KAAKy1B,MAAM0wd,eAAen9e,GAAO,GAAMhJ,KAAMgJ,IAC5D,OAAOmwf,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,EAC/CA,EAAe5sP,EAAY2sP,EAAWG,EAASC,EAAWF,EAClE,CACF,CAEA,SAAS,GAAYlwf,GACnB,OAAO,WACLhJ,KAAKy1B,MAAM0wd,eAAen9e,EAC5B,CACF,CAEA,SAAS,GAAcA,EAAMqjQ,EAAa0sP,GACxC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAU,GAAMn5f,KAAMgJ,GAC1B,OAAOmwf,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAe5sP,EAAY2sP,EAAWG,EAASJ,EACvD,CACF,CAEA,SAAS,GAAc/vf,EAAMqjQ,EAAa9rQ,GACxC,IAAIy4f,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAAU,GAAMn5f,KAAMgJ,GACtB+vf,EAASx4f,EAAMP,MACfk5f,EAAUH,EAAS,GAEvB,OADc,MAAVA,IAAoC/4f,KAAKy1B,MAAM0wd,eAAen9e,GAA9Ckwf,EAAUH,EAA2C,GAAM/4f,KAAMgJ,IAC9Emwf,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAe5sP,EAAY2sP,EAAWG,EAASJ,GAC5E,CACF,CAEA,SAASuB,GAAiB33f,EAAIqG,GAC5B,IAAIixf,EAAKC,EAAKK,EAAwDv2Z,EAA7ClgG,EAAM,SAAWkF,EAAMzH,EAAQ,OAASuC,EACjE,OAAO,WACL,IAAImqX,EAAW,GAAIjuX,KAAM2C,GACrB4iG,EAAK0oR,EAAS1oR,GACdy7E,EAAkC,MAAvBitM,EAAS1tX,MAAMuD,GAAekgG,IAAWA,EAAS,GAAYh7F,SAASpH,EAKlF2jG,IAAO00Z,GAAOM,IAAcv5U,IAAWk5U,GAAOD,EAAM10Z,GAAIjlF,QAAQilF,GAAGhkG,EAAOg5f,EAAYv5U,GAE1FitM,EAAS1oR,GAAK20Z,CAChB,CACF,CAEe,YAASlxf,EAAMzI,EAAO02S,GACnC,IAAIvzS,EAAqB,eAAhBsF,GAAQ,IAAsB,GAAuB,GAC9D,OAAgB,MAATzI,EAAgBP,KAClBw6f,WAAWxxf,EAAMqxf,GAAUrxf,EAAMtF,IACjC6hG,GAAG,aAAev8F,EAAM,GAAYA,IACpB,oBAAVzI,EAAuBP,KAC7Bw6f,WAAWxxf,EAAM,GAAcA,EAAMtF,EAAGupf,GAAWjtf,KAAM,SAAWgJ,EAAMzI,KAC1Ey4B,KAAKshe,GAAiBt6f,KAAKwrW,IAAKxiW,IACjChJ,KACCw6f,WAAWxxf,EAAM,GAAcA,EAAMtF,EAAGnD,GAAQ02S,GAChD1xM,GAAG,aAAev8F,EAAM,KAC/B,CC/EA,SAASyxf,GAAiBzxf,EAAMtF,EAAGuzS,GACjC,OAAO,SAAS3qS,GACdtM,KAAKy1B,MAAM4wd,YAAYr9e,EAAMtF,EAAEvC,KAAKnB,KAAMsM,GAAI2qS,EAChD,CACF,CAEA,SAASujN,GAAWxxf,EAAMzI,EAAO02S,GAC/B,IAAI3qS,EAAG+3e,EACP,SAAS6G,IACP,IAAIxnf,EAAInD,EAAMyH,MAAMhI,KAAMa,WAE1B,OADI6C,IAAM2gf,IAAI/3e,GAAK+3e,EAAK3gf,IAAM+2f,GAAiBzxf,EAAMtF,EAAGuzS,IACjD3qS,CACT,CAEA,OADA4+e,EAAMj3Y,OAAS1zG,EACR2qf,CACT,CAEe,YAASlif,EAAMzI,EAAO02S,GACnC,IAAInzS,EAAM,UAAYkF,GAAQ,IAC9B,GAAInI,UAAUC,OAAS,EAAG,OAAQgD,EAAM9D,KAAKkrf,MAAMpnf,KAASA,EAAImwG,OAChE,GAAa,MAAT1zG,EAAe,OAAOP,KAAKkrf,MAAMpnf,EAAK,MAC1C,GAAqB,oBAAVvD,EAAsB,MAAM,IAAIyC,MAC3C,OAAOhD,KAAKkrf,MAAMpnf,EAAK02f,GAAWxxf,EAAMzI,EAAmB,MAAZ02S,EAAmB,GAAKA,GACzE,CCrBA,SAAS,GAAa12S,GACpB,OAAO,WACLP,KAAK8xJ,YAAcvxJ,CACrB,CACF,CAEA,SAAS,GAAaA,GACpB,OAAO,WACL,IAAIw4f,EAASx4f,EAAMP,MACnBA,KAAK8xJ,YAAwB,MAAVinW,EAAiB,GAAKA,CAC3C,CACF,CAEe,YAASx4f,GACtB,OAAOP,KAAKkrf,MAAM,OAAyB,oBAAV3qf,EAC3B,GAAa0sf,GAAWjtf,KAAM,OAAQO,IACtC,GAAsB,MAATA,EAAgB,GAAKA,EAAQ,IAClD,CCnBA,SAASm6f,GAAgBh3f,GACvB,OAAO,SAAS4I,GACdtM,KAAK8xJ,YAAcpuJ,EAAEvC,KAAKnB,KAAMsM,EAClC,CACF,CAEA,SAASquf,GAAUp6f,GACjB,IAAI+pf,EAAIjG,EACR,SAAS6G,IACP,IAAIxnf,EAAInD,EAAMyH,MAAMhI,KAAMa,WAE1B,OADI6C,IAAM2gf,IAAIiG,GAAMjG,EAAK3gf,IAAMg3f,GAAgBh3f,IACxC4mf,CACT,CAEA,OADAY,EAAMj3Y,OAAS1zG,EACR2qf,CACT,CAEe,YAAS3qf,GACtB,IAAIuD,EAAM,OACV,GAAIjD,UAAUC,OAAS,EAAG,OAAQgD,EAAM9D,KAAKkrf,MAAMpnf,KAASA,EAAImwG,OAChE,GAAa,MAAT1zG,EAAe,OAAOP,KAAKkrf,MAAMpnf,EAAK,MAC1C,GAAqB,oBAAVvD,EAAsB,MAAM,IAAIyC,MAC3C,OAAOhD,KAAKkrf,MAAMpnf,EAAK62f,GAAUp6f,GACnC,CCpBe,cAKb,IAJA,IAAIyI,EAAOhJ,KAAKk7V,MACZ0/J,EAAM56f,KAAKwrW,IACXqvJ,EAAMC,KAEDpqc,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQohB,EAAI,EAAGA,EAAIZ,IAAKY,EACjE,IAAK,IAAyCoe,EAArCua,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAc4C,EAAI,EAAGA,EAAI8R,IAAK9R,EAClE,GAAI48B,EAAOua,EAAMn3C,GAAI,CACnB,IAAI09Z,EAAU,GAAI9gY,EAAMs6d,GACxB3sI,GAAS3tV,EAAMt3B,EAAM6xf,EAAKn3f,EAAGm3C,EAAO,CAClC2gF,KAAM4lS,EAAQ5lS,KAAO4lS,EAAQtpX,MAAQspX,EAAQvlS,SAC7C/jF,MAAO,EACP+jF,SAAUulS,EAAQvlS,SAClBsvX,KAAM/pF,EAAQ+pF,MAElB,CAIJ,OAAO,IAAI4O,GAAWrpc,EAAQ1wD,KAAK6if,SAAU75e,EAAM6xf,EACrD,CCrBe,cACb,IAAIZ,EAAKC,EAAKh5U,EAAOlhL,KAAM2C,EAAKu+K,EAAKsqL,IAAKlxV,EAAO4mK,EAAK5mK,OACtD,OAAO,IAAI3Q,SAAQ,SAASxG,EAASqiD,GACnC,IAAImjC,EAAS,CAACpoF,MAAOilD,GACjBl0C,EAAM,CAAC/Q,MAAO,WAA4B,MAAT+Z,GAAYnX,GAAW,GAE5D+9K,EAAKloJ,MAAK,WACR,IAAIi1V,EAAW,GAAIjuX,KAAM2C,GACrB4iG,EAAK0oR,EAAS1oR,GAKdA,IAAO00Z,IACTC,GAAOD,EAAM10Z,GAAIjlF,OACjB45e,EAAIr1c,EAAE8jC,OAAOx/E,KAAKw/E,GAClBuxa,EAAIr1c,EAAEk2c,UAAU5xf,KAAKw/E,GACrBuxa,EAAIr1c,EAAEvzC,IAAInI,KAAKmI,IAGjB28W,EAAS1oR,GAAK20Z,CAChB,IAGa,IAAT5/e,GAAYnX,GAClB,GACF,CCNA,IAAIR,GAAK,EAEF,SAASo3f,GAAWrpc,EAAQsyb,EAASh6e,EAAMrG,GAChD3C,KAAKwif,QAAU9xb,EACf1wD,KAAK6if,SAAWG,EAChBhjf,KAAKk7V,MAAQlyV,EACbhJ,KAAKwrW,IAAM7oW,CACb,CAEe,SAAS,GAAWqG,GACjC,OAAO,KAAYkkf,WAAWlkf,EAChC,CAEO,SAAS8xf,KACd,QAASn4f,EACX,CAEA,IAAIq4f,GAAsB,GAAU/5f,UC/B7B,SAASg6f,GAAW3uf,GACzB,QAASA,GAAK,IAAM,EAAIA,EAAIA,EAAIA,GAAKA,GAAK,GAAKA,EAAIA,EAAI,GAAK,CAC9D,CD+BAytf,GAAW94f,UAAY,GAAWA,UAAY,CAC5CsC,YAAaw2f,GACb1he,OAAQ6ie,GACR7X,UAAW8X,GACXxS,YAAaqS,GAAoBrS,YACjCC,eAAgBoS,GAAoBpS,eACpCp8e,OAAQ4uf,GACR9+W,MAAO++W,GACPpwd,UAAWqwd,GACXpO,WAAYA,GACZ/rf,KAAM65f,GAAoB75f,KAC1Bi+B,MAAO47d,GAAoB57d,MAC3BkB,KAAM06d,GAAoB16d,KAC1BhmB,KAAM0gf,GAAoB1gf,KAC1Bgd,MAAO0je,GAAoB1je,MAC3B0B,KAAMgie,GAAoBhie,KAC1BusE,GAAIg2Z,GACJhoW,KAAMioW,GACNnC,UAAWoC,GACXhme,MAAOime,GACPlB,WAAYmB,GACZ1ua,KAAM2ua,GACNjB,UAAWkB,GACX73Z,OAAQ83Z,GACR5Q,MAAO,GACPpzc,MAAO,GACP+jF,SAAU,GACVsvX,KAAM,GACN2O,YAAaiC,GACbzqf,IAAK,GACL,CAACjO,OAAOC,UAAW03f,GAAoB33f,OAAOC,WElEhD,IAAI04f,GAAgB,CAClBxgY,KAAM,KACN1jF,MAAO,EACP+jF,SAAU,IACVsvX,KAAM,IAGR,SAAS/pF,GAAQ9gY,EAAM39B,GACrB,IAAIoof,EACJ,QAASA,EAASzqd,EAAK2qd,iBAAmBF,EAASA,EAAOpof,IACxD,KAAM29B,EAAOA,EAAKuQ,YAChB,MAAM,IAAI7tC,MAAM,cAAcL,eAGlC,OAAOoof,CACT,CAEe,YAAS/hf,GACtB,IAAIrG,EACAoof,EAEA/hf,aAAgB+wf,IAClBp3f,EAAKqG,EAAKwiW,IAAKxiW,EAAOA,EAAKkyV,QAE3Bv4V,EAAKm4f,MAAU/P,EAASiR,IAAexgY,KAAO3iG,KAAO7vB,EAAe,MAARA,EAAe,KAAOA,EAAO,IAG3F,IAAK,IAAI0nD,EAAS1wD,KAAKwif,QAASlhe,EAAIovC,EAAO5vD,OAAQohB,EAAI,EAAGA,EAAIZ,IAAKY,EACjE,IAAK,IAAyCoe,EAArCua,EAAQ6V,EAAOxuC,GAAI1M,EAAIqlC,EAAM/5C,OAAc4C,EAAI,EAAGA,EAAI8R,IAAK9R,GAC9D48B,EAAOua,EAAMn3C,KACfuqX,GAAS3tV,EAAMt3B,EAAMrG,EAAIe,EAAGm3C,EAAOkwc,GAAU3pF,GAAQ9gY,EAAM39B,IAKjE,OAAO,IAAIo3f,GAAWrpc,EAAQ1wD,KAAK6if,SAAU75e,EAAMrG,EACrD,CCrCA,GAAU1B,UAAU85f,UAAYkB,GAChC,GAAUh7f,UAAUisf,WAAagP,GCSjC,MAAM,IAAC5+b,GAAG,IAAEnrD,GAAG,IAAEgG,IAAO7V,KAExB,SAAS65f,GAAQp5f,GACf,MAAO,EAAEA,EAAE,IAAKA,EAAE,GACpB,CAEA,SAASq5f,GAAQr5f,GACf,MAAO,CAACo5f,GAAQp5f,EAAE,IAAKo5f,GAAQp5f,EAAE,IACnC,CAIW,CAAC,IAAK,KAAKP,IAAIoS,IAOf,CAAC,IAAK,KAAKpS,IAAIoS,IAOf,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAAMpS,IAAIoS,IA8D5D,SAASA,GAAKtI,GACZ,MAAO,CAACsI,KAAMtI,EAChB,CCtGe,YAASmlJ,GACtB,MAA2B,kBAAbA,EACR,IAAImxV,GAAU,CAAC,CAAC9gf,SAASw2B,cAAcm5H,KAAa,CAAC3vJ,SAAS0nE,kBAC9D,IAAIo5a,GAAU,CAAC,CAACnxV,IAAYjyJ,GACpC,CCNe,YAAS+B,GACtB,IAAI86f,EACJ,MAAOA,EAAc96f,EAAM86f,YAAa96f,EAAQ86f,EAChD,OAAO96f,CACT,CCFe,YAASA,EAAO++B,GAG7B,GAFA/+B,EAAQ86f,GAAY96f,QACPK,IAAT0+B,IAAoBA,EAAO/+B,EAAMwob,eACjCzpZ,EAAM,CACR,IAAIs5B,EAAMt5B,EAAKg8d,iBAAmBh8d,EAClC,GAAIs5B,EAAI2ic,eAAgB,CACtB,IAAIC,EAAQ5ic,EAAI2ic,iBAGhB,OAFAC,EAAMvkf,EAAI1W,EAAMkmX,QAAS+0I,EAAMtkf,EAAI3W,EAAMimX,QACzCg1I,EAAQA,EAAMC,gBAAgBn8d,EAAKo8d,eAAeC,WAC3C,CAACH,EAAMvkf,EAAGukf,EAAMtkf,EACzB,CACA,GAAIooB,EAAKoU,sBAAuB,CAC9B,IAAIs1B,EAAO1pC,EAAKoU,wBAChB,MAAO,CAACnzC,EAAMkmX,QAAUz9S,EAAKzB,KAAOjoC,EAAKmqC,WAAYlpE,EAAMimX,QAAUx9S,EAAKvB,IAAMnoC,EAAKoqC,UACvF,CACF,CACA,MAAO,CAACnpE,EAAMq7f,MAAOr7f,EAAMs7f,MAC7B,CCjBO,MAAMC,GAAa,CAACr/c,SAAS,GACvBs/c,GAAoB,CAACv/c,SAAS,EAAMC,SAAS,GAEnD,SAAS,GAAcl8C,GAC5BA,EAAMu7C,0BACR,CAEe,YAASv7C,GACtBA,EAAMk7C,iBACNl7C,EAAMu7C,0BACR,CCTe,YAASslE,GACtB,IAAI5iH,EAAO4iH,EAAKtgH,SAAS0nE,gBACrBv+B,EAAY,GAAOm3E,GAAM7c,GAAG,iBAAkB,GAASw3Z,IACvD,kBAAmBv9f,EACrByrC,EAAUs6D,GAAG,mBAAoB,GAASw3Z,KAE1Cv9f,EAAKw9f,WAAax9f,EAAKi2B,MAAMwne,cAC7Bz9f,EAAKi2B,MAAMwne,cAAgB,OAE/B,CAEO,SAASC,GAAQ96Y,EAAM+6Y,GAC5B,IAAI39f,EAAO4iH,EAAKtgH,SAAS0nE,gBACrBv+B,EAAY,GAAOm3E,GAAM7c,GAAG,iBAAkB,MAC9C43Z,IACFlyd,EAAUs6D,GAAG,aAAc,GAASw3Z,IACpChld,YAAW,WAAa9M,EAAUs6D,GAAG,aAAc,KAAO,GAAG,IAE3D,kBAAmB/lG,EACrByrC,EAAUs6D,GAAG,mBAAoB,OAEjC/lG,EAAKi2B,MAAMwne,cAAgBz9f,EAAKw9f,kBACzBx9f,EAAKw9f,WAEhB,CC3BA,OAAe/kf,GAAK,IAAMA,ECAX,SAASmlf,GAAUxof,GAAM,YACtCynf,EAAW,QACXvhT,EAAO,OACPt6M,EAAM,WACNkxR,EAAU,OACVzrP,EAAM,EACNhuB,EAAC,EAAEC,EAAC,GAAE02d,EAAE,GAAEC,EAAE,SACZ/zc,IAEA16B,OAAOyM,iBAAiB7M,KAAM,CAC5B4U,KAAM,CAACrU,MAAOqU,EAAMhR,YAAY,EAAMvC,cAAc,GACpDg7f,YAAa,CAAC97f,MAAO87f,EAAaz4f,YAAY,EAAMvC,cAAc,GAClEy5M,QAAS,CAACv6M,MAAOu6M,EAASl3M,YAAY,EAAMvC,cAAc,GAC1Db,OAAQ,CAACD,MAAOC,EAAQoD,YAAY,EAAMvC,cAAc,GACxDqwR,WAAY,CAACnxR,MAAOmxR,EAAY9tR,YAAY,EAAMvC,cAAc,GAChE4kC,OAAQ,CAAC1lC,MAAO0lC,EAAQriC,YAAY,EAAMvC,cAAc,GACxD4W,EAAG,CAAC1X,MAAO0X,EAAGrU,YAAY,EAAMvC,cAAc,GAC9C6W,EAAG,CAAC3X,MAAO2X,EAAGtU,YAAY,EAAMvC,cAAc,GAC9Cute,GAAI,CAACrue,MAAOque,EAAIhre,YAAY,EAAMvC,cAAc,GAChDwte,GAAI,CAACtue,MAAOsue,EAAIjre,YAAY,EAAMvC,cAAc,GAChDwjD,EAAG,CAACtkD,MAAOu6B,IAEf,CCdA,SAAS,GAAcv5B,GACrB,OAAQA,EAAMyqH,UAAYzqH,EAAM64F,MAClC,CAEA,SAASs0P,KACP,OAAO1uV,KAAK6wC,UACd,CAEA,SAASwsd,GAAe97f,EAAO2mC,GAC7B,OAAY,MAALA,EAAY,CAACjwB,EAAG1W,EAAM0W,EAAGC,EAAG3W,EAAM2W,GAAKgwB,CAChD,CAEA,SAAS,KACP,OAAOq/B,UAAUmvY,gBAAmB,iBAAkB12c,IACxD,CAEe,cACb,IAOIs9f,EACAC,EACAC,EACAC,EAVAjxf,EAAS,GACT2pC,EAAYu4S,GACZ5zI,EAAUuiT,GACVK,EAAY,GACZC,EAAW,CAAC,EACZ96U,EAAY,GAAS,QAAS,OAAQ,OACtC58I,EAAS,EAKT23d,EAAiB,EAErB,SAASC,EAAK5yd,GACZA,EACKs6D,GAAG,iBAAkBu4Z,GACvBtxf,OAAOkxf,GACLn4Z,GAAG,kBAAmBw4Z,GACtBx4Z,GAAG,iBAAkBy4Z,EAAYlB,IACjCv3Z,GAAG,iCAAkC04Z,GACrCxoe,MAAM,eAAgB,QACtBA,MAAM,8BAA+B,gBAC5C,CAEA,SAASqoe,EAAYv8f,EAAO2mC,GAC1B,IAAIu1d,GAAgBjxf,EAAOrL,KAAKnB,KAAMuB,EAAO2mC,GAA7C,CACA,IAAIg2d,EAAUC,EAAYn+f,KAAMm2C,EAAUh1C,KAAKnB,KAAMuB,EAAO2mC,GAAI3mC,EAAO2mC,EAAG,SACrEg2d,IACL,GAAO38f,EAAM6gH,MACV7c,GAAG,iBAAkB64Z,EAAYrB,IACjCx3Z,GAAG,eAAgB84Z,EAAYtB,IAClCuB,GAAO/8f,EAAM6gH,MACb,GAAc7gH,GACdi8f,GAAc,EACdF,EAAa/7f,EAAMkmX,QACnB81I,EAAah8f,EAAMimX,QACnB02I,EAAQ,QAAS38f,GAXsC,CAYzD,CAEA,SAAS68f,EAAW78f,GAElB,GADA,GAAQA,IACHi8f,EAAa,CAChB,IAAI5uB,EAAKrte,EAAMkmX,QAAU61I,EAAYzuB,EAAKtte,EAAMimX,QAAU+1I,EAC1DC,EAAc5uB,EAAKA,EAAKC,EAAKA,EAAK+uB,CACpC,CACAD,EAASY,MAAM,OAAQh9f,EACzB,CAEA,SAAS88f,EAAW98f,GAClB,GAAOA,EAAM6gH,MAAM7c,GAAG,8BAA+B,MACrD23Z,GAAQ37f,EAAM6gH,KAAMo7Y,GACpB,GAAQj8f,GACRo8f,EAASY,MAAM,MAAOh9f,EACxB,CAEA,SAASw8f,EAAax8f,EAAO2mC,GAC3B,GAAK17B,EAAOrL,KAAKnB,KAAMuB,EAAO2mC,GAA9B,CACA,IAEwBxkC,EAAGw6f,EAFvBM,EAAUj9f,EAAM82d,eAChBhvc,EAAI8sB,EAAUh1C,KAAKnB,KAAMuB,EAAO2mC,GAChC1yB,EAAIgpf,EAAQ19f,OAEhB,IAAK4C,EAAI,EAAGA,EAAI8R,IAAK9R,GACfw6f,EAAUC,EAAYn+f,KAAMqpB,EAAG9nB,EAAO2mC,EAAGs2d,EAAQ96f,GAAGguR,WAAY8sO,EAAQ96f,OAC1E,GAAcnC,GACd28f,EAAQ,QAAS38f,EAAOi9f,EAAQ96f,IARI,CAW1C,CAEA,SAASs6f,EAAWz8f,GAClB,IACwBmC,EAAGw6f,EADvBM,EAAUj9f,EAAM82d,eAChB7id,EAAIgpf,EAAQ19f,OAEhB,IAAK4C,EAAI,EAAGA,EAAI8R,IAAK9R,GACfw6f,EAAUP,EAASa,EAAQ96f,GAAGguR,eAChC,GAAQnwR,GACR28f,EAAQ,OAAQ38f,EAAOi9f,EAAQ96f,IAGrC,CAEA,SAASu6f,EAAW18f,GAClB,IACwBmC,EAAGw6f,EADvBM,EAAUj9f,EAAM82d,eAChB7id,EAAIgpf,EAAQ19f,OAIhB,IAFI28f,GAAav+c,aAAau+c,GAC9BA,EAAc1ld,YAAW,WAAa0ld,EAAc,IAAM,GAAG,KACxD/5f,EAAI,EAAGA,EAAI8R,IAAK9R,GACfw6f,EAAUP,EAASa,EAAQ96f,GAAGguR,eAChC,GAAcnwR,GACd28f,EAAQ,MAAO38f,EAAOi9f,EAAQ96f,IAGpC,CAEA,SAASy6f,EAAYj9U,EAAM/qI,EAAW50C,EAAO2mC,EAAGwpP,EAAY4mM,GAC1D,IAC4CsW,EAAIC,EAC5Cxic,EAFAvR,EAAW+nJ,EAAUviK,OACrBvR,EAAI,GAAQupd,GAAS/2d,EAAO40C,GAGhC,GAUa,OAVR9J,EAAIyuK,EAAQ35M,KAAK+/K,EAAM,IAAIk8U,GAAU,cAAe,CACrDf,YAAa96f,EACbf,OAAQq9f,EACRnsO,aACAzrP,SACAhuB,EAAGlJ,EAAE,GACLmJ,EAAGnJ,EAAE,GACL6/d,GAAI,EACJC,GAAI,EACJ/zc,aACEoN,IAKN,OAHA0mc,EAAKvic,EAAEp0B,EAAIlJ,EAAE,IAAM,EACnB8/d,EAAKxic,EAAEn0B,EAAInJ,EAAE,IAAM,EAEZ,SAASmvf,EAAQtpf,EAAMrT,EAAO+2d,GACnC,IAAY9id,EAARipf,EAAK1vf,EACT,OAAQ6F,GACN,IAAK,QAAS+of,EAASjsO,GAAcwsO,EAAS1of,EAAIywB,IAAU,MAC5D,IAAK,aAAc03d,EAASjsO,KAAezrP,EAC3C,IAAK,OAAQl3B,EAAI,GAAQupd,GAAS/2d,EAAO40C,GAAY3gC,EAAIywB,EAAQ,MAEnEnL,EAAS35B,KACPyT,EACAssK,EACA,IAAIk8U,GAAUxof,EAAM,CAClBynf,YAAa96f,EACbu5M,QAASzuK,EACT7rC,OAAQq9f,EACRnsO,aACAzrP,OAAQzwB,EACRyC,EAAGlJ,EAAE,GAAK6/d,EACV12d,EAAGnJ,EAAE,GAAK8/d,EACVD,GAAI7/d,EAAE,GAAK0vf,EAAG,GACd5vB,GAAI9/d,EAAE,GAAK0vf,EAAG,GACd3je,aAEFoN,EAEJ,CACF,CA2BA,OAzBA21d,EAAKrxf,OAAS,SAASq4C,GACrB,OAAOhkD,UAAUC,QAAU0L,EAAsB,oBAANq4C,EAAmBA,EAAI,KAAWA,GAAIg5c,GAAQrxf,CAC3F,EAEAqxf,EAAK1nd,UAAY,SAAS0O,GACxB,OAAOhkD,UAAUC,QAAUq1C,EAAyB,oBAAN0O,EAAmBA,EAAI,GAASA,GAAIg5c,GAAQ1nd,CAC5F,EAEA0nd,EAAK/iT,QAAU,SAASj2J,GACtB,OAAOhkD,UAAUC,QAAUg6M,EAAuB,oBAANj2J,EAAmBA,EAAI,GAASA,GAAIg5c,GAAQ/iT,CAC1F,EAEA+iT,EAAKH,UAAY,SAAS74c,GACxB,OAAOhkD,UAAUC,QAAU48f,EAAyB,oBAAN74c,EAAmBA,EAAI,KAAWA,GAAIg5c,GAAQH,CAC9F,EAEAG,EAAKt4Z,GAAK,WACR,IAAIhlG,EAAQsiL,EAAUt9E,GAAGv9F,MAAM66K,EAAWhiL,WAC1C,OAAON,IAAUsiL,EAAYg7U,EAAOt9f,CACtC,EAEAs9f,EAAKa,cAAgB,SAAS75c,GAC5B,OAAOhkD,UAAUC,QAAU88f,GAAkB/4c,GAAKA,GAAKA,EAAGg5c,GAAQv7f,KAAK4yH,KAAK0oY,EAC9E,EAEOC,CACT,CCjMe,YAAS5lf,EAAGC,GACzB,IAAIknB,EAAOu/d,EAAW,EAKtB,SAASxzY,IACP,IAAIznH,EAEA48B,EADA9qB,EAAI4pB,EAAMt+B,OAEVwhe,EAAK,EACLC,EAAK,EAET,IAAK7+d,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB48B,EAAOlB,EAAM17B,GAAI4+d,GAAMhic,EAAKroB,EAAGsqd,GAAMjic,EAAKpoB,EAG5C,IAAKoqd,GAAMA,EAAK9sd,EAAIyC,GAAK0mf,EAAUp8B,GAAMA,EAAK/sd,EAAI0C,GAAKymf,EAAUj7f,EAAI,EAAGA,EAAI8R,IAAK9R,EAC/E48B,EAAOlB,EAAM17B,GAAI48B,EAAKroB,GAAKqqd,EAAIhic,EAAKpoB,GAAKqqd,CAE7C,CAkBA,OAnCS,MAALtqd,IAAWA,EAAI,GACV,MAALC,IAAWA,EAAI,GAkBnBizG,EAAMsY,WAAa,SAAS5+E,GAC1BzlB,EAAQylB,CACV,EAEAsmE,EAAMlzG,EAAI,SAAS4sC,GACjB,OAAOhkD,UAAUC,QAAUmX,GAAK4sC,EAAGsmE,GAASlzG,CAC9C,EAEAkzG,EAAMjzG,EAAI,SAAS2sC,GACjB,OAAOhkD,UAAUC,QAAUoX,GAAK2sC,EAAGsmE,GAASjzG,CAC9C,EAEAizG,EAAMwzY,SAAW,SAAS95c,GACxB,OAAOhkD,UAAUC,QAAU69f,GAAY95c,EAAGsmE,GAASwzY,CACrD,EAEOxzY,CACT,CCvCe,YAASjjF,GACtB,MAAMjwB,GAAKjY,KAAK4+f,GAAGz9f,KAAK,KAAM+mC,GAC1BhwB,GAAKlY,KAAK6+f,GAAG19f,KAAK,KAAM+mC,GAC5B,OAAO,GAAIloC,KAAK8+f,MAAM7mf,EAAGC,GAAID,EAAGC,EAAGgwB,EACrC,CAEA,SAAS,GAAIwjJ,EAAMzzK,EAAGC,EAAGgwB,GACvB,GAAIxxB,MAAMuB,IAAMvB,MAAMwB,GAAI,OAAOwzK,EAEjC,IAAIv3G,EAOA47M,EACAgvO,EACA/uO,EACAgvO,EACAr2b,EACAC,EACAllE,EACAwe,EAbAoe,EAAOorJ,EAAKuzU,MACZn9V,EAAO,CAACthJ,KAAM0nB,GACdg3d,EAAKxzU,EAAKyzU,IACVC,EAAK1zU,EAAK2zU,IACV1vY,EAAK+7D,EAAK4zU,IACV1vY,EAAK87D,EAAK6zU,IAWd,IAAKj/d,EAAM,OAAOorJ,EAAKuzU,MAAQn9V,EAAM4pB,EAGrC,MAAOprJ,EAAKx/B,OAGV,IAFI6nE,EAAQ1wD,IAAM83Q,GAAMmvO,EAAKvvY,GAAM,IAAIuvY,EAAKnvO,EAASpgK,EAAKogK,GACtDnnN,EAAS1wD,IAAM6mf,GAAMK,EAAKxvY,GAAM,IAAIwvY,EAAKL,EAASnvY,EAAKmvY,EACvD5qb,EAAS7zC,IAAQA,EAAOA,EAAK58B,EAAIklE,GAAU,EAAID,IAAS,OAAOwL,EAAOzwE,GAAKo+J,EAAM4pB,EAMvF,GAFAskG,GAAMtkG,EAAKkzU,GAAGz9f,KAAK,KAAMm/B,EAAK9f,MAC9Bw+e,GAAMtzU,EAAKmzU,GAAG19f,KAAK,KAAMm/B,EAAK9f,MAC1BvI,IAAM+3Q,GAAM93Q,IAAM8mf,EAAI,OAAOl9V,EAAK/rJ,KAAOuqB,EAAM6zC,EAASA,EAAOzwE,GAAKo+J,EAAO4pB,EAAKuzU,MAAQn9V,EAAM4pB,EAGlG,GACEv3G,EAASA,EAASA,EAAOzwE,GAAK,IAAIoE,MAAM,GAAK4jL,EAAKuzU,MAAQ,IAAIn3f,MAAM,IAChE6gE,EAAQ1wD,IAAM83Q,GAAMmvO,EAAKvvY,GAAM,IAAIuvY,EAAKnvO,EAASpgK,EAAKogK,GACtDnnN,EAAS1wD,IAAM6mf,GAAMK,EAAKxvY,GAAM,IAAIwvY,EAAKL,EAASnvY,EAAKmvY,SACnDr7f,EAAIklE,GAAU,EAAID,MAAYzmD,GAAK88e,GAAMD,IAAO,EAAK/uO,GAAMD,IACrE,OAAO57M,EAAOjyD,GAAKoe,EAAM6zC,EAAOzwE,GAAKo+J,EAAM4pB,CAC7C,CAEO,SAAS8zU,GAAOh/e,GACrB,IAAI0nB,EAAGxkC,EACHuU,EACAC,EAFM1C,EAAIgL,EAAK1f,OAGf2+f,EAAK,IAAI33f,MAAM0N,GACfkqf,EAAK,IAAI53f,MAAM0N,GACf0pf,EAAKruf,IACLuuf,EAAKvuf,IACL8+G,GAAM9+G,IACN++G,GAAM/+G,IAGV,IAAKnN,EAAI,EAAGA,EAAI8R,IAAK9R,EACfgT,MAAMuB,GAAKjY,KAAK4+f,GAAGz9f,KAAK,KAAM+mC,EAAI1nB,EAAK9c,MAAQgT,MAAMwB,GAAKlY,KAAK6+f,GAAG19f,KAAK,KAAM+mC,MACjFu3d,EAAG/7f,GAAKuU,EACRynf,EAAGh8f,GAAKwU,EACJD,EAAIinf,IAAIA,EAAKjnf,GACbA,EAAI03G,IAAIA,EAAK13G,GACbC,EAAIknf,IAAIA,EAAKlnf,GACbA,EAAI03G,IAAIA,EAAK13G,IAInB,GAAIgnf,EAAKvvY,GAAMyvY,EAAKxvY,EAAI,OAAO5vH,KAM/B,IAHAA,KAAK8+f,MAAMI,EAAIE,GAAIN,MAAMnvY,EAAIC,GAGxBlsH,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB,GAAI1D,KAAMy/f,EAAG/7f,GAAIg8f,EAAGh8f,GAAI8c,EAAK9c,IAG/B,OAAO1D,IACT,CCnFe,YAASiY,EAAGC,GACzB,GAAIxB,MAAMuB,GAAKA,IAAMvB,MAAMwB,GAAKA,GAAI,OAAOlY,KAE3C,IAAIk/f,EAAKl/f,KAAKm/f,IACVC,EAAKp/f,KAAKq/f,IACV1vY,EAAK3vH,KAAKs/f,IACV1vY,EAAK5vH,KAAKu/f,IAKd,GAAI7of,MAAMwof,GACRvvY,GAAMuvY,EAAK58f,KAAKC,MAAM0V,IAAM,EAC5B23G,GAAMwvY,EAAK98f,KAAKC,MAAM2V,IAAM,MAIzB,CACH,IAEIi8D,EACAzwE,EAHAywH,EAAIxE,EAAKuvY,GAAM,EACf5+d,EAAOtgC,KAAKi/f,MAIhB,MAAOC,EAAKjnf,GAAKA,GAAK03G,GAAMyvY,EAAKlnf,GAAKA,GAAK03G,EAGzC,OAFAlsH,GAAKwU,EAAIknf,IAAO,EAAKnnf,EAAIinf,EACzB/qb,EAAS,IAAIrsE,MAAM,GAAIqsE,EAAOzwE,GAAK48B,EAAMA,EAAO6zC,EAAQggD,GAAK,EACrDzwH,GACN,KAAK,EAAGisH,EAAKuvY,EAAK/qY,EAAGvE,EAAKwvY,EAAKjrY,EAAG,MAClC,KAAK,EAAG+qY,EAAKvvY,EAAKwE,EAAGvE,EAAKwvY,EAAKjrY,EAAG,MAClC,KAAK,EAAGxE,EAAKuvY,EAAK/qY,EAAGirY,EAAKxvY,EAAKuE,EAAG,MAClC,KAAK,EAAG+qY,EAAKvvY,EAAKwE,EAAGirY,EAAKxvY,EAAKuE,EAAG,MAIlCn0H,KAAKi/f,OAASj/f,KAAKi/f,MAAMn+f,SAAQd,KAAKi/f,MAAQ3+d,EACpD,CAMA,OAJAtgC,KAAKm/f,IAAMD,EACXl/f,KAAKq/f,IAAMD,EACXp/f,KAAKs/f,IAAM3vY,EACX3vH,KAAKu/f,IAAM3vY,EACJ5vH,IACT,CC1Ce,cACb,IAAIwgB,EAAO,GAIX,OAHAxgB,KAAK2/f,OAAM,SAASr/d,GAClB,IAAKA,EAAKx/B,OAAQ,GAAG0f,EAAKrX,KAAKm3B,EAAK9f,YAAc8f,EAAOA,EAAKvqB,KAChE,IACOyK,CACT,CCNe,YAASqkC,GACtB,OAAOhkD,UAAUC,OACXd,KAAK8+f,OAAOj6c,EAAE,GAAG,IAAKA,EAAE,GAAG,IAAIi6c,OAAOj6c,EAAE,GAAG,IAAKA,EAAE,GAAG,IACrDnuC,MAAM1W,KAAKm/f,UAAOv9f,EAAY,CAAC,CAAC5B,KAAKm/f,IAAKn/f,KAAKq/f,KAAM,CAACr/f,KAAKs/f,IAAKt/f,KAAKu/f,KAC7E,CCJe,YAASj/d,EAAM4+d,EAAIE,EAAIzvY,EAAIC,GACxC5vH,KAAKsgC,KAAOA,EACZtgC,KAAKk/f,GAAKA,EACVl/f,KAAKo/f,GAAKA,EACVp/f,KAAK2vH,GAAKA,EACV3vH,KAAK4vH,GAAKA,CACZ,CCJe,YAAS33G,EAAGC,EAAGk4G,GAC5B,IAAI5vG,EAGAmvG,EACAC,EACAC,EACAC,EAKAxjE,EACA5oD,EAXAw7f,EAAKl/f,KAAKm/f,IACVC,EAAKp/f,KAAKq/f,IAKVO,EAAK5/f,KAAKs/f,IACVO,EAAK7/f,KAAKu/f,IACVO,EAAQ,GACRx/d,EAAOtgC,KAAKi/f,MAIZ3+d,GAAMw/d,EAAM32f,KAAK,IAAI,GAAKm3B,EAAM4+d,EAAIE,EAAIQ,EAAIC,IAClC,MAAVzvY,EAAgBA,EAASv/G,KAE3Bquf,EAAKjnf,EAAIm4G,EAAQgvY,EAAKlnf,EAAIk4G,EAC1BwvY,EAAK3nf,EAAIm4G,EAAQyvY,EAAK3nf,EAAIk4G,EAC1BA,GAAUA,GAGZ,MAAO9jE,EAAIwzc,EAAM7tf,MAGf,OAAMquB,EAAOgsB,EAAEhsB,QACPqvF,EAAKrjE,EAAE4yc,IAAMU,IACbhwY,EAAKtjE,EAAE8yc,IAAMS,IACbhwY,EAAKvjE,EAAEqjE,IAAMuvY,IACbpvY,EAAKxjE,EAAEsjE,IAAMwvY,GAGrB,GAAI9+d,EAAKx/B,OAAQ,CACf,IAAIivR,GAAMpgK,EAAKE,GAAM,EACjBkvY,GAAMnvY,EAAKE,GAAM,EAErBgwY,EAAM32f,KACJ,IAAI,GAAKm3B,EAAK,GAAIyvP,EAAIgvO,EAAIlvY,EAAIC,GAC9B,IAAI,GAAKxvF,EAAK,GAAIqvF,EAAIovY,EAAIhvO,EAAIjgK,GAC9B,IAAI,GAAKxvF,EAAK,GAAIyvP,EAAIngK,EAAIC,EAAIkvY,GAC9B,IAAI,GAAKz+d,EAAK,GAAIqvF,EAAIC,EAAImgK,EAAIgvO,KAI5Br7f,GAAKwU,GAAK6mf,IAAO,EAAK9mf,GAAK83Q,KAC7BzjO,EAAIwzc,EAAMA,EAAMh/f,OAAS,GACzBg/f,EAAMA,EAAMh/f,OAAS,GAAKg/f,EAAMA,EAAMh/f,OAAS,EAAI4C,GACnDo8f,EAAMA,EAAMh/f,OAAS,EAAI4C,GAAK4oD,EAElC,KAGK,CACH,IAAIsib,EAAK32d,GAAKjY,KAAK4+f,GAAGz9f,KAAK,KAAMm/B,EAAK9f,MAClCqud,EAAK32d,GAAKlY,KAAK6+f,GAAG19f,KAAK,KAAMm/B,EAAK9f,MAClCu/e,EAAKnxB,EAAKA,EAAKC,EAAKA,EACxB,GAAIkxB,EAAK3vY,EAAQ,CACf,IAAIloF,EAAI5lC,KAAK4yH,KAAK9E,EAAS2vY,GAC3Bb,EAAKjnf,EAAIiwB,EAAGk3d,EAAKlnf,EAAIgwB,EACrB03d,EAAK3nf,EAAIiwB,EAAG23d,EAAK3nf,EAAIgwB,EACrB1nB,EAAO8f,EAAK9f,IACd,CACF,CAGF,OAAOA,CACT,CCrEe,YAAS0nB,GACtB,GAAIxxB,MAAMuB,GAAKjY,KAAK4+f,GAAGz9f,KAAK,KAAM+mC,KAAOxxB,MAAMwB,GAAKlY,KAAK6+f,GAAG19f,KAAK,KAAM+mC,IAAK,OAAOloC,KAEnF,IAAIm0E,EAEA6rb,EACAvkQ,EACA1lP,EAKAkC,EACAC,EACA63Q,EACAgvO,EACAp2b,EACAC,EACAllE,EACAwe,EAfAoe,EAAOtgC,KAAKi/f,MAIZC,EAAKl/f,KAAKm/f,IACVC,EAAKp/f,KAAKq/f,IACV1vY,EAAK3vH,KAAKs/f,IACV1vY,EAAK5vH,KAAKu/f,IAWd,IAAKj/d,EAAM,OAAOtgC,KAIlB,GAAIsgC,EAAKx/B,OAAQ,MAAO,EAAM,CAG5B,IAFI6nE,EAAQ1wD,IAAM83Q,GAAMmvO,EAAKvvY,GAAM,IAAIuvY,EAAKnvO,EAASpgK,EAAKogK,GACtDnnN,EAAS1wD,IAAM6mf,GAAMK,EAAKxvY,GAAM,IAAIwvY,EAAKL,EAASnvY,EAAKmvY,EACrD5qb,EAAS7zC,IAAMA,EAAOA,EAAK58B,EAAIklE,GAAU,EAAID,IAAS,OAAO3oE,KACnE,IAAKsgC,EAAKx/B,OAAQ,OACdqzE,EAAQzwE,EAAI,EAAK,IAAMywE,EAAQzwE,EAAI,EAAK,IAAMywE,EAAQzwE,EAAI,EAAK,MAAIs8f,EAAW7rb,EAAQjyD,EAAIxe,EAChG,CAGA,MAAO48B,EAAK9f,OAAS0nB,KAASuzN,EAAWn7N,IAAMA,EAAOA,EAAKvqB,MAAO,OAAO/V,KAIzE,OAHI+V,EAAOuqB,EAAKvqB,cAAauqB,EAAKvqB,KAG9B0lP,GAAkB1lP,EAAO0lP,EAAS1lP,KAAOA,SAAc0lP,EAAS1lP,KAAO/V,MAGtEm0E,GAGLp+D,EAAOo+D,EAAOzwE,GAAKqS,SAAco+D,EAAOzwE,IAGnC48B,EAAO6zC,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,KACnD7zC,KAAU6zC,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,MACvD7zC,EAAKx/B,SACPk/f,EAAUA,EAAS99e,GAAKoe,EACvBtgC,KAAKi/f,MAAQ3+d,GAGbtgC,OAbaA,KAAKi/f,MAAQlpf,EAAM/V,KAczC,CAEO,SAASiggB,GAAUz/e,GACxB,IAAK,IAAI9c,EAAI,EAAG8R,EAAIgL,EAAK1f,OAAQ4C,EAAI8R,IAAK9R,EAAG1D,KAAKgkG,OAAOxjF,EAAK9c,IAC9D,OAAO1D,IACT,CC7De,cACb,OAAOA,KAAKi/f,KACd,CCFe,cACb,IAAI3kf,EAAO,EAIX,OAHAta,KAAK2/f,OAAM,SAASr/d,GAClB,IAAKA,EAAKx/B,OAAQ,KAAKwZ,QAAagmB,EAAOA,EAAKvqB,KAClD,IACOuE,CACT,CCJe,YAAS8gB,GACtB,IAAgBkxB,EAAsBtZ,EAAOksd,EAAIE,EAAIzvY,EAAIC,EAArDkwY,EAAQ,GAAOx/d,EAAOtgC,KAAKi/f,MAC3B3+d,GAAMw/d,EAAM32f,KAAK,IAAI,GAAKm3B,EAAMtgC,KAAKm/f,IAAKn/f,KAAKq/f,IAAKr/f,KAAKs/f,IAAKt/f,KAAKu/f,MACvE,MAAOjzc,EAAIwzc,EAAM7tf,MACf,IAAKmpB,EAASkF,EAAOgsB,EAAEhsB,KAAM4+d,EAAK5yc,EAAE4yc,GAAIE,EAAK9yc,EAAE8yc,GAAIzvY,EAAKrjE,EAAEqjE,GAAIC,EAAKtjE,EAAEsjE,KAAOtvF,EAAKx/B,OAAQ,CACvF,IAAIivR,GAAMmvO,EAAKvvY,GAAM,EAAGovY,GAAMK,EAAKxvY,GAAM,GACrC58E,EAAQ1S,EAAK,KAAIw/d,EAAM32f,KAAK,IAAI,GAAK6pC,EAAO+8O,EAAIgvO,EAAIpvY,EAAIC,KACxD58E,EAAQ1S,EAAK,KAAIw/d,EAAM32f,KAAK,IAAI,GAAK6pC,EAAOksd,EAAIH,EAAIhvO,EAAIngK,KACxD58E,EAAQ1S,EAAK,KAAIw/d,EAAM32f,KAAK,IAAI,GAAK6pC,EAAO+8O,EAAIqvO,EAAIzvY,EAAIovY,KACxD/rd,EAAQ1S,EAAK,KAAIw/d,EAAM32f,KAAK,IAAI,GAAK6pC,EAAOksd,EAAIE,EAAIrvO,EAAIgvO,GAC9D,CAEF,OAAO/+f,IACT,CCbe,YAASo7B,GACtB,IAA2BkxB,EAAvBwzc,EAAQ,GAAI/pf,EAAO,GACnB/V,KAAKi/f,OAAOa,EAAM32f,KAAK,IAAI,GAAKnJ,KAAKi/f,MAAOj/f,KAAKm/f,IAAKn/f,KAAKq/f,IAAKr/f,KAAKs/f,IAAKt/f,KAAKu/f,MACnF,MAAOjzc,EAAIwzc,EAAM7tf,MAAO,CACtB,IAAIquB,EAAOgsB,EAAEhsB,KACb,GAAIA,EAAKx/B,OAAQ,CACf,IAAIkyC,EAAOksd,EAAK5yc,EAAE4yc,GAAIE,EAAK9yc,EAAE8yc,GAAIzvY,EAAKrjE,EAAEqjE,GAAIC,EAAKtjE,EAAEsjE,GAAImgK,GAAMmvO,EAAKvvY,GAAM,EAAGovY,GAAMK,EAAKxvY,GAAM,GACxF58E,EAAQ1S,EAAK,KAAIw/d,EAAM32f,KAAK,IAAI,GAAK6pC,EAAOksd,EAAIE,EAAIrvO,EAAIgvO,KACxD/rd,EAAQ1S,EAAK,KAAIw/d,EAAM32f,KAAK,IAAI,GAAK6pC,EAAO+8O,EAAIqvO,EAAIzvY,EAAIovY,KACxD/rd,EAAQ1S,EAAK,KAAIw/d,EAAM32f,KAAK,IAAI,GAAK6pC,EAAOksd,EAAIH,EAAIhvO,EAAIngK,KACxD58E,EAAQ1S,EAAK,KAAIw/d,EAAM32f,KAAK,IAAI,GAAK6pC,EAAO+8O,EAAIgvO,EAAIpvY,EAAIC,GAC9D,CACA75G,EAAK5M,KAAKmjD,EACZ,CACA,MAAOA,EAAIv2C,EAAK9D,MACdmpB,EAASkxB,EAAEhsB,KAAMgsB,EAAE4yc,GAAI5yc,EAAE8yc,GAAI9yc,EAAEqjE,GAAIrjE,EAAEsjE,IAEvC,OAAO5vH,IACT,CCpBO,SAASkggB,GAASh4d,GACvB,OAAOA,EAAE,EACX,CAEe,YAAS2c,GACtB,OAAOhkD,UAAUC,QAAUd,KAAK4+f,GAAK/5c,EAAG7kD,MAAQA,KAAK4+f,EACvD,CCNO,SAASuB,GAASj4d,GACvB,OAAOA,EAAE,EACX,CAEe,YAAS2c,GACtB,OAAOhkD,UAAUC,QAAUd,KAAK6+f,GAAKh6c,EAAG7kD,MAAQA,KAAK6+f,EACvD,CCOe,SAASuB,GAAShhe,EAAOnnB,EAAGC,GACzC,IAAIwzK,EAAO,IAAI20U,GAAc,MAALpof,EAAYiof,GAAWjof,EAAQ,MAALC,EAAYiof,GAAWjof,EAAG+jH,IAAKA,IAAKA,IAAKA,KAC3F,OAAgB,MAAT78F,EAAgBssJ,EAAOA,EAAK8zU,OAAOpge,EAC5C,CAEA,SAASihe,GAASpof,EAAGC,EAAGgnf,EAAIE,EAAIzvY,EAAIC,GAClC5vH,KAAK4+f,GAAK3mf,EACVjY,KAAK6+f,GAAK3mf,EACVlY,KAAKm/f,IAAMD,EACXl/f,KAAKq/f,IAAMD,EACXp/f,KAAKs/f,IAAM3vY,EACX3vH,KAAKu/f,IAAM3vY,EACX5vH,KAAKi/f,WAAQr9f,CACf,CAEA,SAAS0+f,GAAUx+V,GACjB,IAAIxhJ,EAAO,CAACE,KAAMshJ,EAAKthJ,MAAOzK,EAAOuK,EACrC,MAAOwhJ,EAAOA,EAAK/rJ,KAAMA,EAAOA,EAAKA,KAAO,CAACyK,KAAMshJ,EAAKthJ,MACxD,OAAOF,CACT,ChBRA88e,GAAUn8f,UAAUskG,GAAK,WACvB,IAAIhlG,EAAQP,KAAK6kD,EAAE0gD,GAAGv9F,MAAMhI,KAAK6kD,EAAGhkD,WACpC,OAAON,IAAUP,KAAK6kD,EAAI7kD,KAAOO,CACnC,EgBOA,IAAIgggB,GAAYH,GAASn/f,UAAYo/f,GAASp/f,UClC/B,YAASgX,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJe,YAASglD,GACtB,OAA0B,MAAlBA,IAAW,GACrB,CCEA,SAAS,GAAE/0B,GACT,OAAOA,EAAEjwB,EAAIiwB,EAAEs0a,EACjB,CAEA,SAAS,GAAEt0a,GACT,OAAOA,EAAEhwB,EAAIgwB,EAAEu0a,EACjB,CAEe,YAASrsV,GACtB,IAAIhxF,EACAohe,EACAvjc,EACA0hc,EAAW,EACXjiU,EAAa,EAIjB,SAASvxE,IASP,IARA,IAAIznH,EACAgoL,EACAprJ,EACAmge,EACAC,EACAzzU,EACA0zU,EANGnrf,EAAI4pB,EAAMt+B,OAQR0Z,EAAI,EAAGA,EAAIkiL,IAAcliL,EAEhC,IADAkxK,EAAO00U,GAAShhe,EAAO,GAAG,IAAGwhe,WAAWC,GACnCn9f,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB48B,EAAOlB,EAAM17B,GACbupL,EAAKuzU,EAAMlge,EAAK1/B,OAAQ+/f,EAAM1zU,EAAKA,EACnCwzU,EAAKnge,EAAKroB,EAAIqoB,EAAKk8a,GACnBkkD,EAAKpge,EAAKpoB,EAAIooB,EAAKm8a,GACnB/wR,EAAKi0U,MAAM33f,GAIf,SAASA,EAAM84f,EAAM5B,EAAIE,EAAIzvY,EAAIC,GAC/B,IAAIpvG,EAAOsgf,EAAKtgf,KAAMugf,EAAKD,EAAKz0f,EAAGA,EAAI4gL,EAAK8zU,EAC5C,IAAIvgf,EAiBJ,OAAO0+e,EAAKuB,EAAKp0f,GAAKsjH,EAAK8wY,EAAKp0f,GAAK+yf,EAAKsB,EAAKr0f,GAAKujH,EAAK8wY,EAAKr0f,EAhB5D,GAAImU,EAAK5f,MAAQ0/B,EAAK1/B,MAAO,CAC3B,IAAIqX,EAAIwof,EAAKjgf,EAAKvI,EAAIuI,EAAKg8b,GACvBtkc,EAAIwof,EAAKlgf,EAAKtI,EAAIsI,EAAKi8b,GACvB7mc,EAAIqC,EAAIA,EAAIC,EAAIA,EAChBtC,EAAIvJ,EAAIA,IACA,IAAN4L,IAASA,EAAI+of,GAAO/jc,GAASrnD,GAAKqC,EAAIA,GAChC,IAANC,IAASA,EAAI8of,GAAO/jc,GAASrnD,GAAKsC,EAAIA,GAC1CtC,GAAKvJ,GAAKuJ,EAAItT,KAAK4yH,KAAKt/G,KAAOA,EAAI+of,EACnCr+d,EAAKk8a,KAAOvkc,GAAKrC,IAAMvJ,GAAK00f,GAAMA,IAAOJ,EAAMI,IAC/Czge,EAAKm8a,KAAOvkc,GAAKtC,GAAKvJ,EACtBmU,EAAKg8b,IAAMvkc,GAAK5L,EAAI,EAAIA,GACxBmU,EAAKi8b,IAAMvkc,EAAI7L,EAEnB,CAIJ,CACF,CAEA,SAASw0f,EAAQC,GACf,GAAIA,EAAKtgf,KAAM,OAAOsgf,EAAKz0f,EAAIm0f,EAAMM,EAAKtgf,KAAK5f,OAC/C,IAAK,IAAI8C,EAAIo9f,EAAKz0f,EAAI,EAAG3I,EAAI,IAAKA,EAC5Bo9f,EAAKp9f,IAAMo9f,EAAKp9f,GAAG2I,EAAIy0f,EAAKz0f,IAC9By0f,EAAKz0f,EAAIy0f,EAAKp9f,GAAG2I,EAGvB,CAEA,SAASo3H,IACP,GAAKrkG,EAAL,CACA,IAAI17B,EAAqB48B,EAAlB9qB,EAAI4pB,EAAMt+B,OAEjB,IADA0/f,EAAQ,IAAI14f,MAAM0N,GACb9R,EAAI,EAAGA,EAAI8R,IAAK9R,EAAG48B,EAAOlB,EAAM17B,GAAI88f,EAAMlge,EAAK1/B,QAAUwvH,EAAO9vF,EAAM58B,EAAG07B,EAH5D,CAIpB,CAoBA,MA/EsB,oBAAXgxF,IAAuBA,EAAS,GAAmB,MAAVA,EAAiB,GAAKA,IA6D1EjF,EAAMsY,WAAa,SAASw9X,EAAQC,GAClC9he,EAAQ6he,EACRhkc,EAASikc,EACTz9X,GACF,EAEAtY,EAAMuxE,WAAa,SAAS73I,GAC1B,OAAOhkD,UAAUC,QAAU47L,GAAc73I,EAAGsmE,GAASuxE,CACvD,EAEAvxE,EAAMwzY,SAAW,SAAS95c,GACxB,OAAOhkD,UAAUC,QAAU69f,GAAY95c,EAAGsmE,GAASwzY,CACrD,EAEAxzY,EAAMiF,OAAS,SAASvrE,GACtB,OAAOhkD,UAAUC,QAAUsvH,EAAsB,oBAANvrE,EAAmBA,EAAI,IAAUA,GAAI4+E,IAActY,GAASiF,CACzG,EAEOjF,CACT,CChGA,SAASvqH,GAAMsnC,GACb,OAAOA,EAAEtnC,KACX,CAEA,SAAS,GAAKuggB,EAAUjje,GACtB,IAAIoC,EAAO6ge,EAAS/yf,IAAI8vB,GACxB,IAAKoC,EAAM,MAAM,IAAIt9B,MAAM,mBAAqBk7B,GAChD,OAAOoC,CACT,CAEe,YAAS8C,GACtB,IAEIg+d,EAEAC,EACAjie,EACA3vB,EACAkyY,EACA1kV,EARAt6D,EAAK/B,GACL+9f,EAAW2C,EAEXnub,EAAW,GAAS,IAMpBupH,EAAa,EAIjB,SAAS4kU,EAAgBxqY,GACvB,OAAO,EAAIx0H,KAAK6V,IAAI1I,EAAMqnH,EAAKxmH,OAAO1P,OAAQ6O,EAAMqnH,EAAKt2H,OAAOI,OAClE,CAEA,SAASuqH,EAAMzuD,GACb,IAAK,IAAIliD,EAAI,EAAGhF,EAAI4tB,EAAMtiC,OAAQ0Z,EAAIkiL,IAAcliL,EAClD,IAAK,IAAWs8G,EAAMxmH,EAAQ9P,EAAQyX,EAAGC,EAAGtC,EAAG7M,EAAtCrF,EAAI,EAAqCA,EAAI8R,IAAK9R,EACzDozH,EAAO1zF,EAAM1/B,GAAI4M,EAASwmH,EAAKxmH,OAAQ9P,EAASs2H,EAAKt2H,OACrDyX,EAAIzX,EAAOyX,EAAIzX,EAAOg8c,GAAKlsc,EAAO2H,EAAI3H,EAAOksc,IAAMwkD,GAAO/jc,GAC1D/kD,EAAI1X,EAAO0X,EAAI1X,EAAOi8c,GAAKnsc,EAAO4H,EAAI5H,EAAOmsc,IAAMukD,GAAO/jc,GAC1DrnD,EAAItT,KAAK4yH,KAAKj9G,EAAIA,EAAIC,EAAIA,GAC1BtC,GAAKA,EAAIyrf,EAAU39f,IAAMkS,EAAI8mD,EAAQ0kc,EAAU19f,GAC/CuU,GAAKrC,EAAGsC,GAAKtC,EACbpV,EAAOg8c,IAAMvkc,GAAKlP,EAAI44Y,EAAKj+Y,IAC3BlD,EAAOi8c,IAAMvkc,EAAInP,EACjBuH,EAAOksc,IAAMvkc,GAAKlP,EAAI,EAAIA,GAC1BuH,EAAOmsc,IAAMvkc,EAAInP,CAGvB,CAEA,SAAS06H,IACP,GAAKrkG,EAAL,CAEA,IAAI17B,EAIAozH,EAHAthH,EAAI4pB,EAAMt+B,OACVwgB,EAAI8hB,EAAMtiC,OACVqggB,EAAW,IAAIn7f,IAAIo5B,EAAM58B,KAAI,CAAC0lC,EAAGxkC,IAAM,CAACf,EAAGulC,EAAGxkC,EAAG07B,GAAQ8I,MAG7D,IAAKxkC,EAAI,EAAG+L,EAAQ,IAAI3H,MAAM0N,GAAI9R,EAAI4d,IAAK5d,EACzCozH,EAAO1zF,EAAM1/B,GAAIozH,EAAKl2H,MAAQ8C,EACH,kBAAhBozH,EAAKxmH,SAAqBwmH,EAAKxmH,OAAS,GAAK6wf,EAAUrqY,EAAKxmH,SAC5C,kBAAhBwmH,EAAKt2H,SAAqBs2H,EAAKt2H,OAAS,GAAK2ggB,EAAUrqY,EAAKt2H,SACvEiP,EAAMqnH,EAAKxmH,OAAO1P,QAAU6O,EAAMqnH,EAAKxmH,OAAO1P,QAAU,GAAK,EAC7D6O,EAAMqnH,EAAKt2H,OAAOI,QAAU6O,EAAMqnH,EAAKt2H,OAAOI,QAAU,GAAK,EAG/D,IAAK8C,EAAI,EAAGi+Y,EAAO,IAAI75Y,MAAMwZ,GAAI5d,EAAI4d,IAAK5d,EACxCozH,EAAO1zF,EAAM1/B,GAAIi+Y,EAAKj+Y,GAAK+L,EAAMqnH,EAAKxmH,OAAO1P,QAAU6O,EAAMqnH,EAAKxmH,OAAO1P,OAAS6O,EAAMqnH,EAAKt2H,OAAOI,QAGtGwggB,EAAY,IAAIt5f,MAAMwZ,GAAIigf,IAC1BF,EAAY,IAAIv5f,MAAMwZ,GAAIkgf,GArBR,CAsBpB,CAEA,SAASD,IACP,GAAKnie,EAEL,IAAK,IAAI17B,EAAI,EAAG8R,EAAI4tB,EAAMtiC,OAAQ4C,EAAI8R,IAAK9R,EACzC09f,EAAU19f,IAAMi7f,EAASv7d,EAAM1/B,GAAIA,EAAG0/B,EAE1C,CAEA,SAASo+d,IACP,GAAKpie,EAEL,IAAK,IAAI17B,EAAI,EAAG8R,EAAI4tB,EAAMtiC,OAAQ4C,EAAI8R,IAAK9R,EACzC29f,EAAU39f,IAAMyvE,EAAS/vC,EAAM1/B,GAAIA,EAAG0/B,EAE1C,CA4BA,OA1Fa,MAATA,IAAeA,EAAQ,IAgE3B+nF,EAAMsY,WAAa,SAASw9X,EAAQC,GAClC9he,EAAQ6he,EACRhkc,EAASikc,EACTz9X,GACF,EAEAtY,EAAM/nF,MAAQ,SAASyhB,GACrB,OAAOhkD,UAAUC,QAAUsiC,EAAQyhB,EAAG4+E,IAActY,GAAS/nF,CAC/D,EAEA+nF,EAAMxoH,GAAK,SAASkiD,GAClB,OAAOhkD,UAAUC,QAAU6B,EAAKkiD,EAAGsmE,GAASxoH,CAC9C,EAEAwoH,EAAMuxE,WAAa,SAAS73I,GAC1B,OAAOhkD,UAAUC,QAAU47L,GAAc73I,EAAGsmE,GAASuxE,CACvD,EAEAvxE,EAAMwzY,SAAW,SAAS95c,GACxB,OAAOhkD,UAAUC,QAAU69f,EAAwB,oBAAN95c,EAAmBA,EAAI,IAAUA,GAAI08c,IAAsBp2Y,GAASwzY,CACnH,EAEAxzY,EAAMh4C,SAAW,SAAStuB,GACxB,OAAOhkD,UAAUC,QAAUqyE,EAAwB,oBAANtuB,EAAmBA,EAAI,IAAUA,GAAI28c,IAAsBr2Y,GAASh4C,CACnH,EAEOg4C,CACT,CJhFAo1Y,GAAUjgf,KAAO,WACf,IAEI8e,EACA4T,EAHA1yB,EAAO,IAAI+/e,GAASrggB,KAAK4+f,GAAI5+f,KAAK6+f,GAAI7+f,KAAKm/f,IAAKn/f,KAAKq/f,IAAKr/f,KAAKs/f,IAAKt/f,KAAKu/f,KACzEj/d,EAAOtgC,KAAKi/f,MAIhB,IAAK3+d,EAAM,OAAOhgB,EAElB,IAAKggB,EAAKx/B,OAAQ,OAAOwf,EAAK2+e,MAAQqB,GAAUhge,GAAOhgB,EAEvD8e,EAAQ,CAAC,CAAC9uB,OAAQgwB,EAAM9/B,OAAQ8f,EAAK2+e,MAAQ,IAAIn3f,MAAM,KACvD,MAAOw4B,EAAOlB,EAAMntB,MAClB,IAAK,IAAIvO,EAAI,EAAGA,EAAI,IAAKA,GACnBsvC,EAAQ1S,EAAKhwB,OAAO5M,MAClBsvC,EAAMlyC,OAAQs+B,EAAMj2B,KAAK,CAACmH,OAAQ0iC,EAAOxyC,OAAQ8/B,EAAK9/B,OAAOkD,GAAK,IAAIoE,MAAM,KAC3Ew4B,EAAK9/B,OAAOkD,GAAK48f,GAAUttd,IAKtC,OAAO1yB,CACT,EAEAigf,GAAUtkf,IAAM,GAChBskf,GAAUf,OAAS,GACnBe,GAAUzB,MAAQ,GAClByB,GAAU//e,KAAO,GACjB+/e,GAAUkB,OAAS,GACnBlB,GAAU1oe,KAAO,GACjB0oe,GAAUv8Z,OAAS,GACnBu8Z,GAAUN,UAAY,GACtBM,GAAU/ggB,KAAO,GACjB+ggB,GAAUjmf,KAAO,GACjBimf,GAAUZ,MAAQ,GAClBY,GAAUK,WAAa,GACvBL,GAAUtof,EAAI,GACdsof,GAAUrof,EAAI,GKvEd,MAAM,GAAI,QACJ,GAAI,WACJoJ,GAAI,WAEK,cACb,IAAI+qB,EAAI,EACR,MAAO,KAAOA,GAAK,GAAIA,EAAI,IAAK/qB,IAAKA,EACvC,CCJO,SAAS,GAAE4mB,GAChB,OAAOA,EAAEjwB,CACX,CAEO,SAAS,GAAEiwB,GAChB,OAAOA,EAAEhwB,CACX,CAEA,IAAIwpf,GAAgB,GAChBC,GAAer/f,KAAKg4D,IAAM,EAAIh4D,KAAK4yH,KAAK,IAE7B,YAAS91F,GACtB,IAAIwie,EACAllc,EAAQ,EACRmlc,EAAW,KACXC,EAAa,EAAIx/f,KAAKwV,IAAI+pf,EAAU,EAAI,KACxCE,EAAc,EACdC,EAAgB,GAChBC,EAAS,IAAIj8f,IACbk8f,EAAU59b,GAAM2f,GAChB1iF,EAAQ,GAAS,OAAQ,OACzB07D,EAASklc,KAIb,SAASl+a,IACPmna,IACA7pf,EAAMJ,KAAK,OAAQyggB,GACfllc,EAAQmlc,IACVK,EAAQ7lY,OACR96H,EAAMJ,KAAK,MAAOyggB,GAEtB,CAEA,SAASxW,EAAK1uT,GACZ,IAAIh5L,EAAqB48B,EAAlB9qB,EAAI4pB,EAAMt+B,YAEEc,IAAf86L,IAA0BA,EAAa,GAE3C,IAAK,IAAIliL,EAAI,EAAGA,EAAIkiL,IAAcliL,EAOhC,IANAkiD,IAAUqlc,EAAcrlc,GAASolc,EAEjCG,EAAOr5f,SAAQ,SAASuiH,GACtBA,EAAMzuD,EACR,IAEKh5D,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB48B,EAAOlB,EAAM17B,GACE,MAAX48B,EAAK45b,GAAY55b,EAAKroB,GAAKqoB,EAAKk8a,IAAMwlD,GACrC1he,EAAKroB,EAAIqoB,EAAK45b,GAAI55b,EAAKk8a,GAAK,GAClB,MAAXl8a,EAAK65b,GAAY75b,EAAKpoB,GAAKooB,EAAKm8a,IAAMulD,GACrC1he,EAAKpoB,EAAIooB,EAAK65b,GAAI75b,EAAKm8a,GAAK,GAIrC,OAAOmlD,CACT,CAEA,SAASQ,IACP,IAAK,IAA6B9he,EAAzB58B,EAAI,EAAG8R,EAAI4pB,EAAMt+B,OAAc4C,EAAI8R,IAAK9R,EAAG,CAIlD,GAHA48B,EAAOlB,EAAM17B,GAAI48B,EAAK1/B,MAAQ8C,EACf,MAAX48B,EAAK45b,KAAY55b,EAAKroB,EAAIqoB,EAAK45b,IACpB,MAAX55b,EAAK65b,KAAY75b,EAAKpoB,EAAIooB,EAAK65b,IAC/Bzjd,MAAM4pB,EAAKroB,IAAMvB,MAAM4pB,EAAKpoB,GAAI,CAClC,IAAIk4G,EAASsxY,GAAgBp/f,KAAK4yH,KAAK,GAAMxxH,GAAI22D,EAAQ32D,EAAIi+f,GAC7Drhe,EAAKroB,EAAIm4G,EAAS9tH,KAAKk4D,IAAIH,GAC3B/5B,EAAKpoB,EAAIk4G,EAAS9tH,KAAKi4D,IAAIF,EAC7B,EACI3jD,MAAM4pB,EAAKk8a,KAAO9lc,MAAM4pB,EAAKm8a,OAC/Bn8a,EAAKk8a,GAAKl8a,EAAKm8a,GAAK,EAExB,CACF,CAEA,SAAS4lD,EAAgBl3Y,GAEvB,OADIA,EAAMsY,YAAYtY,EAAMsY,WAAWrkG,EAAO69B,GACvCkuD,CACT,CAIA,OA1Da,MAAT/rF,IAAeA,EAAQ,IAwD3Bgje,IAEOR,EAAa,CAClBxW,KAAMA,EAENp4G,QAAS,WACP,OAAOkvH,EAAQlvH,QAAQ/uT,GAAO29a,CAChC,EAEAvlY,KAAM,WACJ,OAAO6lY,EAAQ7lY,OAAQulY,CACzB,EAEAxie,MAAO,SAASylB,GACd,OAAOhkD,UAAUC,QAAUs+B,EAAQylB,EAAGu9c,IAAmBH,EAAOr5f,QAAQy5f,GAAkBT,GAAcxie,CAC1G,EAEAs9B,MAAO,SAAS7X,GACd,OAAOhkD,UAAUC,QAAU47D,GAAS7X,EAAG+8c,GAAcllc,CACvD,EAEAmlc,SAAU,SAASh9c,GACjB,OAAOhkD,UAAUC,QAAU+ggB,GAAYh9c,EAAG+8c,GAAcC,CAC1D,EAEAC,WAAY,SAASj9c,GACnB,OAAOhkD,UAAUC,QAAUghgB,GAAcj9c,EAAG+8c,IAAeE,CAC7D,EAEAC,YAAa,SAASl9c,GACpB,OAAOhkD,UAAUC,QAAUihgB,GAAel9c,EAAG+8c,GAAcG,CAC7D,EAEAC,cAAe,SAASn9c,GACtB,OAAOhkD,UAAUC,QAAUkhgB,EAAgB,EAAIn9c,EAAG+8c,GAAc,EAAII,CACtE,EAEAM,aAAc,SAASz9c,GACrB,OAAOhkD,UAAUC,QAAUm8D,EAASpY,EAAGo9c,EAAOr5f,QAAQy5f,GAAkBT,GAAc3kc,CACxF,EAEAkuD,MAAO,SAASniH,EAAM67C,GACpB,OAAOhkD,UAAUC,OAAS,GAAW,MAAL+jD,EAAYo9c,EAAO7mf,OAAOpS,GAAQi5f,EAAO5zf,IAAIrF,EAAMq5f,EAAgBx9c,IAAM+8c,GAAcK,EAAO7zf,IAAIpF,EACpI,EAEA6uB,KAAM,SAAS5f,EAAGC,EAAGk4G,GACnB,IAEIw+W,EACAC,EACAkxB,EACAz/d,EACAsjE,EANAlgG,EAAI,EACJ8R,EAAI4pB,EAAMt+B,OAUd,IAHc,MAAVsvH,EAAgBA,EAASv/G,IACxBu/G,GAAUA,EAEV1sH,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB48B,EAAOlB,EAAM17B,GACbkre,EAAK32d,EAAIqoB,EAAKroB,EACd42d,EAAK32d,EAAIooB,EAAKpoB,EACd6nf,EAAKnxB,EAAKA,EAAKC,EAAKA,EAChBkxB,EAAK3vY,IAAQxsB,EAAUtjE,EAAM8vF,EAAS2vY,GAG5C,OAAOn8Z,CACT,EAEA2B,GAAI,SAASv8F,EAAM67C,GACjB,OAAOhkD,UAAUC,OAAS,GAAKS,EAAMgkG,GAAGv8F,EAAM67C,GAAI+8c,GAAcrggB,EAAMgkG,GAAGv8F,EAC3E,EAEJ,CCtJe,cACb,IAAIo2B,EACAkB,EACA28B,EACAP,EAEA0kc,EADAzC,EAAW,IAAU,IAErB4D,EAAe,EACfC,EAAe3xf,IACf4xf,EAAS,IAEb,SAASt3Y,EAAMtmE,GACb,IAAInhD,EAAG8R,EAAI4pB,EAAMt+B,OAAQ4qL,EAAO00U,GAAShhe,EAAO,GAAG,IAAGwhe,WAAW8B,GACjE,IAAKhmc,EAAQ7X,EAAGnhD,EAAI,EAAGA,EAAI8R,IAAK9R,EAAG48B,EAAOlB,EAAM17B,GAAIgoL,EAAKi0U,MAAM33f,EACjE,CAEA,SAASy7H,IACP,GAAKrkG,EAAL,CACA,IAAI17B,EAAqB48B,EAAlB9qB,EAAI4pB,EAAMt+B,OAEjB,IADAsggB,EAAY,IAAIt5f,MAAM0N,GACjB9R,EAAI,EAAGA,EAAI8R,IAAK9R,EAAG48B,EAAOlB,EAAM17B,GAAI09f,EAAU9ge,EAAK1/B,QAAU+9f,EAASr+d,EAAM58B,EAAG07B,EAHlE,CAIpB,CAEA,SAASsje,EAAW5B,GAClB,IAAkBx0c,EAAGjjC,EAAepR,EAAGC,EAAGxU,EAAtCi7f,EAAW,EAASr7Z,EAAS,EAGjC,GAAIw9Z,EAAKhggB,OAAQ,CACf,IAAKmX,EAAIC,EAAIxU,EAAI,EAAGA,EAAI,IAAKA,GACtB4oD,EAAIw0c,EAAKp9f,MAAQ2lB,EAAI/mB,KAAKg7D,IAAIhR,EAAE/rD,UACnCo+f,GAAYryc,EAAE/rD,MAAO+iG,GAAUj6E,EAAGpR,GAAKoR,EAAIijC,EAAEr0C,EAAGC,GAAKmR,EAAIijC,EAAEp0C,GAG/D4of,EAAK7of,EAAIA,EAAIqrF,EACbw9Z,EAAK5of,EAAIA,EAAIorF,CACf,KAGK,CACHh3C,EAAIw0c,EACJx0c,EAAEr0C,EAAIq0C,EAAE9rC,KAAKvI,EACbq0C,EAAEp0C,EAAIo0C,EAAE9rC,KAAKtI,EACb,GAAGymf,GAAYyC,EAAU90c,EAAE9rC,KAAK5f,aACzB0rD,EAAIA,EAAEv2C,KACf,CAEA+qf,EAAKvggB,MAAQo+f,CACf,CAEA,SAAS32f,EAAM84f,EAAMnxY,EAAI9qE,EAAGgrE,GAC1B,IAAKixY,EAAKvggB,MAAO,OAAO,EAExB,IAAI0X,EAAI6of,EAAK7of,EAAIqoB,EAAKroB,EAClBC,EAAI4of,EAAK5of,EAAIooB,EAAKpoB,EAClB67G,EAAIlE,EAAKF,EACT/5G,EAAIqC,EAAIA,EAAIC,EAAIA,EAIpB,GAAI67G,EAAIA,EAAI0uY,EAAS7sf,EAQnB,OAPIA,EAAI4sf,IACI,IAANvqf,IAASA,EAAI+of,GAAO/jc,GAASrnD,GAAKqC,EAAIA,GAChC,IAANC,IAASA,EAAI8of,GAAO/jc,GAASrnD,GAAKsC,EAAIA,GACtCtC,EAAI2sf,IAAc3sf,EAAItT,KAAK4yH,KAAKqtY,EAAe3sf,IACnD0qB,EAAKk8a,IAAMvkc,EAAI6of,EAAKvggB,MAAQm8D,EAAQ9mD,EACpC0qB,EAAKm8a,IAAMvkc,EAAI4of,EAAKvggB,MAAQm8D,EAAQ9mD,IAE/B,EAIJ,KAAIkrf,EAAKhggB,QAAU8U,GAAK4sf,GAAxB,EAGD1B,EAAKtgf,OAAS8f,GAAQwge,EAAK/qf,QACnB,IAANkC,IAASA,EAAI+of,GAAO/jc,GAASrnD,GAAKqC,EAAIA,GAChC,IAANC,IAASA,EAAI8of,GAAO/jc,GAASrnD,GAAKsC,EAAIA,GACtCtC,EAAI2sf,IAAc3sf,EAAItT,KAAK4yH,KAAKqtY,EAAe3sf,KAGrD,GAAOkrf,EAAKtgf,OAAS8f,IACnByzF,EAAIqtY,EAAUN,EAAKtgf,KAAK5f,OAAS87D,EAAQ9mD,EACzC0qB,EAAKk8a,IAAMvkc,EAAI87G,EACfzzF,EAAKm8a,IAAMvkc,EAAI67G,SACR+sY,EAAOA,EAAK/qf,KAb4B,CAcnD,CAwBA,OAtBAo1G,EAAMsY,WAAa,SAASw9X,EAAQC,GAClC9he,EAAQ6he,EACRhkc,EAASikc,EACTz9X,GACF,EAEAtY,EAAMwzY,SAAW,SAAS95c,GACxB,OAAOhkD,UAAUC,QAAU69f,EAAwB,oBAAN95c,EAAmBA,EAAI,IAAUA,GAAI4+E,IAActY,GAASwzY,CAC3G,EAEAxzY,EAAMw3Y,YAAc,SAAS99c,GAC3B,OAAOhkD,UAAUC,QAAUyhgB,EAAe19c,EAAIA,EAAGsmE,GAAS7oH,KAAK4yH,KAAKqtY,EACtE,EAEAp3Y,EAAMy3Y,YAAc,SAAS/9c,GAC3B,OAAOhkD,UAAUC,QAAU0hgB,EAAe39c,EAAIA,EAAGsmE,GAAS7oH,KAAK4yH,KAAKstY,EACtE,EAEAr3Y,EAAM03Y,MAAQ,SAASh+c,GACrB,OAAOhkD,UAAUC,QAAU2hgB,EAAS59c,EAAIA,EAAGsmE,GAAS7oH,KAAK4yH,KAAKutY,EAChE,EAEOt3Y,CACT,CCnHA,SAAS17G,GAAM6wB,GACb,IAAIkvO,EAAM,EACN59N,EAAWtR,EAAKsR,SAChBluC,EAAIkuC,GAAYA,EAAS9wC,OAC7B,GAAK4C,EACA,QAASA,GAAK,EAAG8rQ,GAAO59N,EAASluC,GAAGnD,WADjCivQ,EAAM,EAEdlvO,EAAK//B,MAAQivQ,CACf,CAEe,cACb,OAAOxvQ,KAAK8igB,UAAUrzf,GACxB,CCXe,YAAS2rB,EAAU8lJ,GAChC,IAAItgL,GAAS,EACb,IAAK,MAAM0/B,KAAQtgC,KACjBo7B,EAASj6B,KAAK+/K,EAAM5gJ,IAAQ1/B,EAAOZ,MAErC,OAAOA,IACT,CCNe,YAASo7B,EAAU8lJ,GAChC,IAAiCtvI,EAAUluC,EAAvC48B,EAAOtgC,KAAMo/B,EAAQ,CAACkB,GAAoB1/B,GAAS,EACvD,MAAO0/B,EAAOlB,EAAMntB,MAElB,GADAmpB,EAASj6B,KAAK+/K,EAAM5gJ,IAAQ1/B,EAAOZ,MAC/B4xC,EAAWtR,EAAKsR,SAClB,IAAKluC,EAAIkuC,EAAS9wC,OAAS,EAAG4C,GAAK,IAAKA,EACtC07B,EAAMj2B,KAAKyoC,EAASluC,IAI1B,OAAO1D,IACT,CCXe,YAASo7B,EAAU8lJ,GAChC,IAA4CtvI,EAAUluC,EAAG8R,EAArD8qB,EAAOtgC,KAAMo/B,EAAQ,CAACkB,GAAOvqB,EAAO,GAAoBnV,GAAS,EACrE,MAAO0/B,EAAOlB,EAAMntB,MAElB,GADA8D,EAAK5M,KAAKm3B,GACNsR,EAAWtR,EAAKsR,SAClB,IAAKluC,EAAI,EAAG8R,EAAIo8B,EAAS9wC,OAAQ4C,EAAI8R,IAAK9R,EACxC07B,EAAMj2B,KAAKyoC,EAASluC,IAI1B,MAAO48B,EAAOvqB,EAAK9D,MACjBmpB,EAASj6B,KAAK+/K,EAAM5gJ,IAAQ1/B,EAAOZ,MAErC,OAAOA,IACT,CCde,YAASo7B,EAAU8lJ,GAChC,IAAItgL,GAAS,EACb,IAAK,MAAM0/B,KAAQtgC,KACjB,GAAIo7B,EAASj6B,KAAK+/K,EAAM5gJ,IAAQ1/B,EAAOZ,MACrC,OAAOsgC,CAGb,CCPe,YAAS//B,GACtB,OAAOP,KAAK8igB,WAAU,SAASxie,GAC7B,IAAIkvO,GAAOjvQ,EAAM+/B,EAAK9f,OAAS,EAC3BoxB,EAAWtR,EAAKsR,SAChBluC,EAAIkuC,GAAYA,EAAS9wC,OAC7B,QAAS4C,GAAK,EAAG8rQ,GAAO59N,EAASluC,GAAGnD,MACpC+/B,EAAK//B,MAAQivQ,CACf,GACF,CCRe,YAASx3P,GACtB,OAAOhY,KAAK+igB,YAAW,SAASzie,GAC1BA,EAAKsR,UACPtR,EAAKsR,SAAS3F,KAAKj0B,EAEvB,GACF,CCNe,YAAS1G,GACtB,IAAImD,EAAQzU,KACRgjgB,EAAWC,GAAoBxuf,EAAOnD,GACtC8tB,EAAQ,CAAC3qB,GACb,MAAOA,IAAUuuf,EACfvuf,EAAQA,EAAM0/D,OACd/0C,EAAMj2B,KAAKsL,GAEb,IAAI+F,EAAI4kB,EAAMt+B,OACd,MAAOwQ,IAAQ0xf,EACb5je,EAAMgY,OAAO58B,EAAG,EAAGlJ,GACnBA,EAAMA,EAAI6iE,OAEZ,OAAO/0C,CACT,CAEA,SAAS6je,GAAoBn6f,EAAGC,GAC9B,GAAID,IAAMC,EAAG,OAAOD,EACpB,IAAIo6f,EAASp6f,EAAEq6f,YACXC,EAASr6f,EAAEo6f,YACX95e,EAAI,KACRvgB,EAAIo6f,EAAOjxf,MACXlJ,EAAIq6f,EAAOnxf,MACX,MAAOnJ,IAAMC,EACXsgB,EAAIvgB,EACJA,EAAIo6f,EAAOjxf,MACXlJ,EAAIq6f,EAAOnxf,MAEb,OAAOoX,CACT,CC7Be,cACb,IAAIiX,EAAOtgC,KAAMo/B,EAAQ,CAACkB,GAC1B,MAAOA,EAAOA,EAAK6zC,OACjB/0C,EAAMj2B,KAAKm3B,GAEb,OAAOlB,CACT,CCNe,cACb,OAAOt3B,MAAM2N,KAAKzV,KACpB,CCFe,cACb,IAAIqjgB,EAAS,GAMb,OALArjgB,KAAK+igB,YAAW,SAASzie,GAClBA,EAAKsR,UACRyxd,EAAOl6f,KAAKm3B,EAEhB,IACO+ie,CACT,CCRe,cACb,IAAI7jgB,EAAOQ,KAAMojC,EAAQ,GAMzB,OALA5jC,EAAKw5B,MAAK,SAASsH,GACbA,IAAS9gC,GACX4jC,EAAMj6B,KAAK,CAACmH,OAAQgwB,EAAK6zC,OAAQ3zE,OAAQ8/B,GAE7C,IACO8C,CACT,CCRe,cACb,IAAiB0qC,EAAwBl8B,EAAUluC,EAAG8R,EAAlD8qB,EAAOtgC,KAAe+V,EAAO,CAACuqB,GAClC,EAAG,CACDwtC,EAAU/3D,EAAKykC,UAAWzkC,EAAO,GACjC,MAAOuqB,EAAOwtC,EAAQ77D,MAEpB,SADMquB,EACFsR,EAAWtR,EAAKsR,SAClB,IAAKluC,EAAI,EAAG8R,EAAIo8B,EAAS9wC,OAAQ4C,EAAI8R,IAAK9R,EACxCqS,EAAK5M,KAAKyoC,EAASluC,GAI3B,OAASqS,EAAKjV,OAChB,CCCe,SAASwigB,GAAU9if,EAAMoxB,GAClCpxB,aAAgBxa,KAClBwa,EAAO,MAAC5e,EAAW4e,QACF5e,IAAbgwC,IAAwBA,EAAW2xd,UACjB3hgB,IAAbgwC,IACTA,EAAW4xd,IAGb,IACIlje,EAEA0S,EACAywd,EACA//f,EACA8R,EANAhW,EAAO,IAAI+gC,GAAK/f,GAEhB4e,EAAQ,CAAC5/B,GAMb,MAAO8gC,EAAOlB,EAAMntB,MAClB,IAAKwxf,EAAS7xd,EAAStR,EAAK9f,SAAWhL,GAAKiuf,EAAS37f,MAAM2N,KAAKguf,IAAS3igB,QAEvE,IADAw/B,EAAKsR,SAAW6xd,EACX//f,EAAI8R,EAAI,EAAG9R,GAAK,IAAKA,EACxB07B,EAAMj2B,KAAK6pC,EAAQywd,EAAO//f,GAAK,IAAI68B,GAAKkje,EAAO//f,KAC/CsvC,EAAMmhC,OAAS7zC,EACf0S,EAAMriC,MAAQ2vB,EAAK3vB,MAAQ,EAKjC,OAAOnR,EAAKujgB,WAAWW,GACzB,CAEA,SAASC,KACP,OAAOL,GAAUtjgB,MAAM+igB,WAAWa,GACpC,CAEA,SAASJ,GAAet7d,GACtB,OAAOA,EAAE0J,QACX,CAEA,SAAS2xd,GAAYr7d,GACnB,OAAOpgC,MAAMsM,QAAQ8zB,GAAKA,EAAE,GAAK,IACnC,CAEA,SAAS07d,GAAStje,QACQ1+B,IAApB0+B,EAAK9f,KAAKjgB,QAAqB+/B,EAAK//B,MAAQ+/B,EAAK9f,KAAKjgB,OAC1D+/B,EAAK9f,KAAO8f,EAAK9f,KAAKA,IACxB,CAEO,SAASkjf,GAAcpje,GAC5B,IAAIqU,EAAS,EACb,GAAGrU,EAAKqU,OAASA,SACTrU,EAAOA,EAAK6zC,SAAY7zC,EAAKqU,SAAWA,EAClD,CAEO,SAASpU,GAAK/f,GACnBxgB,KAAKwgB,KAAOA,EACZxgB,KAAK2Q,MACL3Q,KAAK20C,OAAS,EACd30C,KAAKm0E,OAAS,IAChB,CAEA5zC,GAAKt/B,UAAYqigB,GAAUrigB,UAAY,CACrCsC,YAAag9B,GACb9wB,MAAO,GACPupB,KAAM,GACN8pe,UAAW,GACXC,WAAY,GACZlre,KAAM,GACN23O,IAAK,GACLvjO,KAAM,GACNjZ,KAAM,GACNmwe,UAAW,GACXU,YAAa,GACbR,OAAQ,GACRjge,MAAO,GACP9iB,KAAMqjf,GACN,CAACtggB,OAAOC,UAAW,ICzFrB,IAAIwggB,GAAW,MAEf,SAASC,GAAK9rf,GACZ,QAASA,EAAI3V,KAAK0kI,IAAI/uH,IAAM,EAAIA,GAAK,CACvC,CAEA,SAAS+rf,GAAK/rf,GACZ,QAASA,EAAI3V,KAAK0kI,IAAI/uH,IAAM,EAAIA,GAAK,CACvC,CAEA,SAASgsf,GAAKhsf,GACZ,QAASA,EAAI3V,KAAK0kI,IAAI,EAAI/uH,IAAM,IAAMA,EAAI,EAC5C,CAEA,OAAe,SAAUisf,EAAQC,EAAKC,EAAMC,GAI1C,SAASC,EAAK7F,EAAI5vI,GAChB,IAKInrX,EACAi4L,EANA4oU,EAAM9F,EAAG,GAAI+F,EAAM/F,EAAG,GAAIgG,EAAKhG,EAAG,GAClCiG,EAAM71I,EAAG,GAAI81I,EAAM91I,EAAG,GAAI5zP,EAAK4zP,EAAG,GAClC+/G,EAAK81B,EAAMH,EACX11B,EAAK81B,EAAMH,EACXzE,EAAKnxB,EAAKA,EAAKC,EAAKA,EAKxB,GAAIkxB,EAAK+D,GACPnoU,EAAIr5L,KAAKqN,IAAIsrH,EAAKwpY,GAAMN,EACxBzggB,EAAI,SAAS4I,GACX,MAAO,CACLi4f,EAAMj4f,EAAIsie,EACV41B,EAAMl4f,EAAIuie,EACV41B,EAAKnigB,KAAK0kI,IAAIm9X,EAAM73f,EAAIqvL,GAE5B,MAIG,CACH,IAAIipU,EAAKtigB,KAAK4yH,KAAK6qY,GACf8E,GAAM5pY,EAAKA,EAAKwpY,EAAKA,EAAKJ,EAAOtE,IAAO,EAAI0E,EAAKL,EAAOQ,GACxDx4W,GAAMnxB,EAAKA,EAAKwpY,EAAKA,EAAKJ,EAAOtE,IAAO,EAAI9kY,EAAKmpY,EAAOQ,GACxDE,EAAKxigB,KAAKqN,IAAIrN,KAAK4yH,KAAK2vY,EAAKA,EAAK,GAAKA,GACvCxuO,EAAK/zR,KAAKqN,IAAIrN,KAAK4yH,KAAKk3B,EAAKA,EAAK,GAAKA,GAC3CuvC,GAAK06F,EAAKyuO,GAAMX,EAChBzggB,EAAI,SAAS4I,GACX,IAAI+/B,EAAI//B,EAAIqvL,EACRopU,EAAShB,GAAKe,GACdjvf,EAAI4uf,GAAML,EAAOQ,IAAOG,EAASd,GAAKE,EAAM93d,EAAIy4d,GAAMd,GAAKc,IAC/D,MAAO,CACLP,EAAM1uf,EAAI+4d,EACV41B,EAAM3uf,EAAIg5d,EACV41B,EAAKM,EAAShB,GAAKI,EAAM93d,EAAIy4d,GAEjC,CACF,CAIA,OAFAphgB,EAAEm4H,SAAe,IAAJ8/D,EAAWwoU,EAAM7hgB,KAAK0igB,MAE5BthgB,CACT,CAOA,OALA4ggB,EAAKH,IAAM,SAASt/c,GAClB,IAAIogd,EAAK3igB,KAAK6P,IAAI,MAAO0yC,GAAIqgd,EAAKD,EAAKA,EAAIE,EAAKD,EAAKA,EACrD,OAAOhB,EAAQe,EAAIC,EAAIC,EACzB,EAEOb,CACR,CAxDD,CAwDGhigB,KAAK0igB,MAAO,EAAG,GCtElB,GAAe/sf,GAAK,IAAMA,ECAX,SAASmtf,GAAUxwf,GAAM,YACtCynf,EAAW,OACX77f,EAAM,UACNmrE,EAAS,SACT7wC,IAEA16B,OAAOyM,iBAAiB7M,KAAM,CAC5B4U,KAAM,CAACrU,MAAOqU,EAAMhR,YAAY,EAAMvC,cAAc,GACpDg7f,YAAa,CAAC97f,MAAO87f,EAAaz4f,YAAY,EAAMvC,cAAc,GAClEb,OAAQ,CAACD,MAAOC,EAAQoD,YAAY,EAAMvC,cAAc,GACxDsqE,UAAW,CAACprE,MAAOorE,EAAW/nE,YAAY,EAAMvC,cAAc,GAC9DwjD,EAAG,CAACtkD,MAAOu6B,IAEf,CCbO,SAAS6jP,GAAUnkQ,EAAGvC,EAAGC,GAC9BlY,KAAKwa,EAAIA,EACTxa,KAAKiY,EAAIA,EACTjY,KAAKkY,EAAIA,CACX,CAEAymQ,GAAU19Q,UAAY,CACpBsC,YAAao7Q,GACb+yD,MAAO,SAASl3T,GACd,OAAa,IAANA,EAAUxa,KAAO,IAAI2+Q,GAAU3+Q,KAAKwa,EAAIA,EAAGxa,KAAKiY,EAAGjY,KAAKkY,EACjE,EACAo0e,UAAW,SAASr0e,EAAGC,GACrB,OAAa,IAAND,EAAgB,IAANC,EAAUlY,KAAO,IAAI2+Q,GAAU3+Q,KAAKwa,EAAGxa,KAAKiY,EAAIjY,KAAKwa,EAAIvC,EAAGjY,KAAKkY,EAAIlY,KAAKwa,EAAItC,EACjG,EACAlQ,MAAO,SAASw0f,GACd,MAAO,CAACA,EAAM,GAAKx8f,KAAKwa,EAAIxa,KAAKiY,EAAGukf,EAAM,GAAKx8f,KAAKwa,EAAIxa,KAAKkY,EAC/D,EACAmtf,OAAQ,SAASptf,GACf,OAAOA,EAAIjY,KAAKwa,EAAIxa,KAAKiY,CAC3B,EACAqtf,OAAQ,SAASptf,GACf,OAAOA,EAAIlY,KAAKwa,EAAIxa,KAAKkY,CAC3B,EACAojD,OAAQ,SAAS+iO,GACf,MAAO,EAAEA,EAAS,GAAKr+R,KAAKiY,GAAKjY,KAAKwa,GAAI6jR,EAAS,GAAKr+R,KAAKkY,GAAKlY,KAAKwa,EACzE,EACA+qf,QAAS,SAASttf,GAChB,OAAQA,EAAIjY,KAAKiY,GAAKjY,KAAKwa,CAC7B,EACAgrf,QAAS,SAASttf,GAChB,OAAQA,EAAIlY,KAAKkY,GAAKlY,KAAKwa,CAC7B,EACAirf,SAAU,SAASxtf,GACjB,OAAOA,EAAEqI,OAAO4qU,OAAOjzU,EAAEq2P,QAAQ9rQ,IAAIxC,KAAKulgB,QAASvlgB,MAAMwC,IAAIyV,EAAEqjD,OAAQrjD,GACzE,EACAytf,SAAU,SAASxtf,GACjB,OAAOA,EAAEoI,OAAO4qU,OAAOhzU,EAAEo2P,QAAQ9rQ,IAAIxC,KAAKwlgB,QAASxlgB,MAAMwC,IAAI0V,EAAEojD,OAAQpjD,GACzE,EACApJ,SAAU,WACR,MAAO,aAAe9O,KAAKiY,EAAI,IAAMjY,KAAKkY,EAAI,WAAalY,KAAKwa,EAAI,GACtE,GAGK,IAAI,GAAW,IAAImkQ,GAAU,EAAG,EAAG,GAI3B,SAAShzM,GAAUrrC,GAChC,OAAQA,EAAKqle,YAAcrle,EAAOA,EAAKuQ,YAAa,OAAO,GAC3D,OAAOvQ,EAAKqle,MACd,CClDO,SAAS,GAAcpkgB,GAC5BA,EAAMu7C,0BACR,CAEe,YAASv7C,GACtBA,EAAMk7C,iBACNl7C,EAAMu7C,0BACR,CCKA,SAAS,GAAcv7C,GACrB,QAASA,EAAMyqH,SAA0B,UAAfzqH,EAAMqT,QAAsBrT,EAAM64F,MAC9D,CAEA,SAAS,KACP,IAAIr3F,EAAI/C,KACR,OAAI+C,aAAa6igB,YACf7igB,EAAIA,EAAEu5f,iBAAmBv5f,EACrBA,EAAEqyK,aAAa,YACjBryK,EAAIA,EAAE0sH,QAAQu8X,QACP,CAAC,CAACjpf,EAAEkV,EAAGlV,EAAEmV,GAAI,CAACnV,EAAEkV,EAAIlV,EAAE2yB,MAAO3yB,EAAEmV,EAAInV,EAAE4xC,UAEvC,CAAC,CAAC,EAAG,GAAI,CAAC5xC,EAAE2yB,MAAMs2d,QAAQzrf,MAAOwC,EAAE4xC,OAAOq3c,QAAQzrf,SAEpD,CAAC,CAAC,EAAG,GAAI,CAACwC,EAAE4wE,YAAa5wE,EAAE6wE,cACpC,CAEA,SAASiyb,KACP,OAAO7lgB,KAAK2lgB,QAAU,EACxB,CAEA,SAASG,GAAkBvkgB,GACzB,OAAQA,EAAMs6c,QAA8B,IAApBt6c,EAAMgte,UAAkB,IAAOhte,EAAMgte,UAAY,EAAI,OAAUhte,EAAMyqH,QAAU,GAAK,EAC9G,CAEA,SAAS,KACP,OAAOzkD,UAAUmvY,gBAAmB,iBAAkB12c,IACxD,CAEA,SAAS+lgB,GAAiBp6b,EAAW81b,EAAQuE,GAC3C,IAAIC,EAAMt6b,EAAU45b,QAAQ9D,EAAO,GAAG,IAAMuE,EAAgB,GAAG,GAC3DE,EAAMv6b,EAAU45b,QAAQ9D,EAAO,GAAG,IAAMuE,EAAgB,GAAG,GAC3DG,EAAMx6b,EAAU65b,QAAQ/D,EAAO,GAAG,IAAMuE,EAAgB,GAAG,GAC3DI,EAAMz6b,EAAU65b,QAAQ/D,EAAO,GAAG,IAAMuE,EAAgB,GAAG,GAC/D,OAAOr6b,EAAU2gb,UACf4Z,EAAMD,GAAOA,EAAMC,GAAO,EAAI5jgB,KAAK6V,IAAI,EAAG8tf,IAAQ3jgB,KAAK6P,IAAI,EAAG+zf,GAC9DE,EAAMD,GAAOA,EAAMC,GAAO,EAAI9jgB,KAAK6V,IAAI,EAAGguf,IAAQ7jgB,KAAK6P,IAAI,EAAGi0f,GAElE,CAEe,cACb,IAUIC,EACAC,EACA7I,EAZAjxf,EAAS,GACTi1f,EAAS,GACT8E,EAAYR,GACZS,EAAaV,GACbpI,EAAY,GACZ+I,EAAc,CAAC,EAAG51f,KAClBm1f,EAAkB,CAAC,EAAEn1f,KAAWA,KAAW,CAACA,IAAUA,MACtDgrH,EAAW,IACXwwI,EAAc,GACdxpF,EAAY,GAAS,QAAS,OAAQ,OAItC6jV,EAAa,IACbC,EAAa,IACb/I,EAAiB,EACjBgJ,EAAc,GAElB,SAAStC,EAAKr5d,GACZA,EACK6nC,SAAS,SAAU+yb,IACnBtga,GAAG,aAAcsha,EAAS,CAACppd,SAAS,IACpC8nD,GAAG,iBAAkBu4Z,GACrBv4Z,GAAG,gBAAiBuha,GACtBt6f,OAAOkxf,GACLn4Z,GAAG,kBAAmBw4Z,GACtBx4Z,GAAG,iBAAkBy4Z,GACrBz4Z,GAAG,iCAAkC04Z,GACrCxoe,MAAM,8BAA+B,gBAC5C,CA0DA,SAASi8S,EAAM/lQ,EAAWnxD,GAExB,OADAA,EAAIlY,KAAK6P,IAAIs0f,EAAY,GAAInkgB,KAAK6V,IAAIsuf,EAAY,GAAIjsf,IAC/CA,IAAMmxD,EAAUnxD,EAAImxD,EAAY,IAAIgzM,GAAUnkQ,EAAGmxD,EAAU1zD,EAAG0zD,EAAUzzD,EACjF,CAEA,SAASo0e,EAAU3gb,EAAW8yb,EAAI5vI,GAChC,IAAI52W,EAAIwmf,EAAG,GAAK5vI,EAAG,GAAKljT,EAAUnxD,EAAGtC,EAAIumf,EAAG,GAAK5vI,EAAG,GAAKljT,EAAUnxD,EACnE,OAAOvC,IAAM0zD,EAAU1zD,GAAKC,IAAMyzD,EAAUzzD,EAAIyzD,EAAY,IAAIgzM,GAAUhzM,EAAUnxD,EAAGvC,EAAGC,EAC5F,CAEA,SAAS6uf,EAAStF,GAChB,MAAO,GAAGA,EAAO,GAAG,KAAMA,EAAO,GAAG,IAAM,IAAKA,EAAO,GAAG,KAAMA,EAAO,GAAG,IAAM,EACjF,CAEA,SAASxzI,EAASi/H,EAAYvhb,EAAW6wb,EAAOj7f,GAC9C2rf,EACK3nZ,GAAG,cAAc,WAAa24Z,EAAQl+f,KAAMa,WAAWU,MAAMA,GAAOkT,OAAS,IAC7E8wF,GAAG,2BAA2B,WAAa24Z,EAAQl+f,KAAMa,WAAWU,MAAMA,GAAO+P,KAAO,IACxF45e,MAAM,QAAQ,WACb,IAAIhqU,EAAOlhL,KACP6H,EAAOhH,UACPi6C,EAAIojd,EAAQh9U,EAAMr5K,GAAMtG,MAAMA,GAC9BwB,EAAI0+f,EAAOz5f,MAAMk5K,EAAMr5K,GACvBkH,EAAa,MAATytf,EAAgBuK,EAAShkgB,GAAsB,oBAAVy5f,EAAuBA,EAAMx0f,MAAMk5K,EAAMr5K,GAAQ20f,EAC1FzoY,EAAIzxH,KAAK6P,IAAIpP,EAAE,GAAG,GAAKA,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAKA,EAAE,GAAG,IAC/C+F,EAAIo4K,EAAKykV,OACT58f,EAAyB,oBAAd4iE,EAA2BA,EAAU3jE,MAAMk5K,EAAMr5K,GAAQ8jE,EACpEjoE,EAAI2oQ,EAAYvjQ,EAAEwyD,OAAOvsD,GAAG9G,OAAO8rH,EAAIjrH,EAAE0R,GAAIzR,EAAEuyD,OAAOvsD,GAAG9G,OAAO8rH,EAAIhrH,EAAEyR,IAC1E,OAAO,SAASlO,GACd,GAAU,IAANA,EAASA,EAAIvD,MACZ,CAAE,IAAI6M,EAAIlS,EAAE4I,GAAIkO,EAAIu5G,EAAIn+G,EAAE,GAAItJ,EAAI,IAAIqyQ,GAAUnkQ,EAAGzL,EAAE,GAAK6G,EAAE,GAAK4E,EAAGzL,EAAE,GAAK6G,EAAE,GAAK4E,EAAI,CAC3FsgC,EAAEwpd,KAAK,KAAMh4f,EACf,CACF,GACN,CAEA,SAAS4xf,EAAQh9U,EAAMr5K,EAAM4uJ,GAC3B,OAASA,GAASyqB,EAAK8lV,WAAc,IAAIC,EAAQ/lV,EAAMr5K,EACzD,CAEA,SAASo/f,EAAQ/lV,EAAMr5K,GACrB7H,KAAKkhL,KAAOA,EACZlhL,KAAK6H,KAAOA,EACZ7H,KAAKimC,OAAS,EACdjmC,KAAKq8f,YAAc,KACnBr8f,KAAKyhgB,OAASA,EAAOz5f,MAAMk5K,EAAMr5K,GACjC7H,KAAKkngB,KAAO,CACd,CA8CA,SAASL,EAAQtlgB,KAAUsG,GACzB,GAAK2E,EAAOxE,MAAMhI,KAAMa,WAAxB,CACA,IAAIi6C,EAAIojd,EAAQl+f,KAAM6H,GAAMtG,MAAMA,GAC9B+K,EAAItM,KAAK2lgB,OACTnrf,EAAIlY,KAAK6P,IAAIs0f,EAAY,GAAInkgB,KAAK6V,IAAIsuf,EAAY,GAAIn6f,EAAEkO,EAAIlY,KAAKwV,IAAI,EAAG0uf,EAAWx+f,MAAMhI,KAAMa,cAC/FkO,EAAI,GAAQxN,GAIhB,GAAIu5C,EAAEqsd,MACArsd,EAAEyjd,MAAM,GAAG,KAAOxvf,EAAE,IAAM+rC,EAAEyjd,MAAM,GAAG,KAAOxvf,EAAE,KAChD+rC,EAAEyjd,MAAM,GAAKjyf,EAAEgvD,OAAOxgB,EAAEyjd,MAAM,GAAKxvf,IAErCmwC,aAAapE,EAAEqsd,WAIZ,IAAI76f,EAAEkO,IAAMA,EAAG,OAIlBsgC,EAAEyjd,MAAQ,CAACxvf,EAAGzC,EAAEgvD,OAAOvsD,IACvB,GAAU/O,MACV86C,EAAErmC,OACJ,CAEA,GAAQlT,GACRu5C,EAAEqsd,MAAQpvd,WAAWqvd,EAAYT,GACjC7rd,EAAEwpd,KAAK,QAASiC,EAAUja,EAAU56K,EAAMplU,EAAGkO,GAAIsgC,EAAEyjd,MAAM,GAAIzjd,EAAEyjd,MAAM,IAAKzjd,EAAE2md,OAAQuE,GA3B1C,CA6B1C,SAASoB,IACPtsd,EAAEqsd,MAAQ,KACVrsd,EAAExpC,KACJ,CACF,CAEA,SAASwsf,EAAYv8f,KAAUsG,GAC7B,IAAI41f,GAAgBjxf,EAAOxE,MAAMhI,KAAMa,WAAvC,CACA,IAAIkpb,EAAgBxob,EAAMwob,cACtBjvY,EAAIojd,EAAQl+f,KAAM6H,GAAM,GAAMtG,MAAMA,GACpCiqD,EAAI,GAAOjqD,EAAM6gH,MAAM7c,GAAG,iBAAkB64Z,GAAY,GAAM74Z,GAAG,eAAgB84Z,GAAY,GAC7Ftvf,EAAI,GAAQxN,EAAOwob,GACnBm1E,EAAK39f,EAAMkmX,QACX23I,EAAK79f,EAAMimX,QAEf,GAAYjmX,EAAM6gH,MAClB,GAAc7gH,GACdu5C,EAAEyjd,MAAQ,CAACxvf,EAAG/O,KAAK2lgB,OAAOrqc,OAAOvsD,IACjC,GAAU/O,MACV86C,EAAErmC,OAZuD,CAczD,SAAS2pf,EAAW78f,GAElB,GADA,GAAQA,IACHu5C,EAAEusd,MAAO,CACZ,IAAIz4B,EAAKrte,EAAMkmX,QAAUy3I,EAAIrwB,EAAKtte,EAAMimX,QAAU43I,EAClDtkd,EAAEusd,MAAQz4B,EAAKA,EAAKC,EAAKA,EAAK+uB,CAChC,CACA9id,EAAEv5C,MAAMA,GACN+igB,KAAK,QAASiC,EAAUja,EAAUxxc,EAAEomI,KAAKykV,OAAQ7qd,EAAEyjd,MAAM,GAAK,GAAQh9f,EAAOwob,GAAgBjvY,EAAEyjd,MAAM,IAAKzjd,EAAE2md,OAAQuE,GACxH,CAEA,SAAS3H,EAAW98f,GAClBiqD,EAAE+5C,GAAG,8BAA+B,MACpC,GAAWhkG,EAAM6gH,KAAMtnE,EAAEusd,OACzB,GAAQ9lgB,GACRu5C,EAAEv5C,MAAMA,GAAO+P,KACjB,CACF,CAEA,SAASw1f,EAAWvlgB,KAAUsG,GAC5B,GAAK2E,EAAOxE,MAAMhI,KAAMa,WAAxB,CACA,IAAIypf,EAAKtqf,KAAK2lgB,OACVlH,EAAK,GAAQl9f,EAAM82d,eAAiB92d,EAAM82d,eAAe,GAAK92d,EAAOvB,MACrE6uX,EAAKy7H,EAAGhvb,OAAOmjc,GACf6I,EAAKhd,EAAG9ve,GAAKjZ,EAAMq2C,SAAW,GAAM,GACpC08E,EAAKiyY,EAAUja,EAAU56K,EAAM44K,EAAIgd,GAAK7I,EAAI5vI,GAAK4yI,EAAOz5f,MAAMhI,KAAM6H,GAAOm+f,GAE/E,GAAQzkgB,GACJs6H,EAAW,EAAG,GAAO77H,MAAMktf,aAAarxX,SAASA,GAAU16H,KAAK8sX,EAAU35P,EAAImqY,EAAIl9f,GACjF,GAAOvB,MAAMmB,KAAKmjgB,EAAK34b,UAAW2oD,EAAImqY,EAAIl9f,EATL,CAU5C,CAEA,SAASw8f,EAAax8f,KAAUsG,GAC9B,GAAK2E,EAAOxE,MAAMhI,KAAMa,WAAxB,CACA,IAGI02V,EAAS7zV,EAAG4I,EAAGyC,EAHfyvf,EAAUj9f,EAAMi9f,QAChBhpf,EAAIgpf,EAAQ19f,OACZg6C,EAAIojd,EAAQl+f,KAAM6H,EAAMtG,EAAM82d,eAAev3d,SAAW0U,GAAGjU,MAAMA,GAIrE,IADA,GAAcA,GACTmC,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB4I,EAAIkyf,EAAQ96f,GAAIqL,EAAI,GAAQzC,EAAGtM,MAC/B+O,EAAI,CAACA,EAAG/O,KAAK2lgB,OAAOrqc,OAAOvsD,GAAIzC,EAAEolR,YAC5B52O,EAAEysd,OACGzsd,EAAE0sd,QAAU1sd,EAAEysd,OAAO,KAAOx4f,EAAE,KAAI+rC,EAAE0sd,OAASz4f,EAAG+rC,EAAEosd,KAAO,IADpDpsd,EAAEysd,OAASx4f,EAAGwoV,GAAU,EAAMz8S,EAAEosd,KAAO,IAAMb,GAI1DA,IAAeA,EAAgBnnd,aAAamnd,IAE5C9uK,IACEz8S,EAAEosd,KAAO,IAAGZ,EAAav3f,EAAE,GAAIs3f,EAAgBtud,YAAW,WAAasud,EAAgB,IAAM,GAAGK,IACpG,GAAU1mgB,MACV86C,EAAErmC,QAnBsC,CAqB5C,CAEA,SAASupf,EAAWz8f,KAAUsG,GAC5B,GAAK7H,KAAKgngB,UAAV,CACA,IAEwBtjgB,EAAG4I,EAAGyC,EAAG6G,EAF7BklC,EAAIojd,EAAQl+f,KAAM6H,GAAMtG,MAAMA,GAC9Bi9f,EAAUj9f,EAAM82d,eAChB7id,EAAIgpf,EAAQ19f,OAGhB,IADA,GAAQS,GACHmC,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB4I,EAAIkyf,EAAQ96f,GAAIqL,EAAI,GAAQzC,EAAGtM,MAC3B86C,EAAEysd,QAAUzsd,EAAEysd,OAAO,KAAOj7f,EAAEolR,WAAY52O,EAAEysd,OAAO,GAAKx4f,EACnD+rC,EAAE0sd,QAAU1sd,EAAE0sd,OAAO,KAAOl7f,EAAEolR,aAAY52O,EAAE0sd,OAAO,GAAKz4f,GAGnE,GADAzC,EAAIwuC,EAAEomI,KAAKykV,OACP7qd,EAAE0sd,OAAQ,CACZ,IAAI/I,EAAK3jd,EAAEysd,OAAO,GAAIE,EAAK3sd,EAAEysd,OAAO,GAChC14I,EAAK/zU,EAAE0sd,OAAO,GAAIE,EAAK5sd,EAAE0sd,OAAO,GAChC39R,GAAMA,EAAKglJ,EAAG,GAAK4vI,EAAG,IAAM50R,GAAMA,EAAKglJ,EAAG,GAAK4vI,EAAG,IAAM50R,EACxD89R,GAAMA,EAAKD,EAAG,GAAKD,EAAG,IAAME,GAAMA,EAAKD,EAAG,GAAKD,EAAG,IAAME,EAC5Dr7f,EAAIolU,EAAMplU,EAAGhK,KAAK4yH,KAAK20G,EAAK89R,IAC5B54f,EAAI,EAAE0vf,EAAG,GAAK5vI,EAAG,IAAM,GAAI4vI,EAAG,GAAK5vI,EAAG,IAAM,GAC5Cj5W,EAAI,EAAE6xf,EAAG,GAAKC,EAAG,IAAM,GAAID,EAAG,GAAKC,EAAG,IAAM,EAC9C,KACK,KAAI5sd,EAAEysd,OACN,OADcx4f,EAAI+rC,EAAEysd,OAAO,GAAI3xf,EAAIklC,EAAEysd,OAAO,EACtC,CAEXzsd,EAAEwpd,KAAK,QAASiC,EAAUja,EAAUhgf,EAAGyC,EAAG6G,GAAIklC,EAAE2md,OAAQuE,GAxB7B,CAyB7B,CAEA,SAAS/H,EAAW18f,KAAUsG,GAC5B,GAAK7H,KAAKgngB,UAAV,CACA,IAEwBtjgB,EAAG4I,EAFvBwuC,EAAIojd,EAAQl+f,KAAM6H,GAAMtG,MAAMA,GAC9Bi9f,EAAUj9f,EAAM82d,eAChB7id,EAAIgpf,EAAQ19f,OAKhB,IAHA,GAAcS,GACVk8f,GAAav+c,aAAau+c,GAC9BA,EAAc1ld,YAAW,WAAa0ld,EAAc,IAAM,GAAGiJ,GACxDhjgB,EAAI,EAAGA,EAAI8R,IAAK9R,EACnB4I,EAAIkyf,EAAQ96f,GACRo3C,EAAEysd,QAAUzsd,EAAEysd,OAAO,KAAOj7f,EAAEolR,kBAAmB52O,EAAEysd,OAC9Czsd,EAAE0sd,QAAU1sd,EAAE0sd,OAAO,KAAOl7f,EAAEolR,mBAAmB52O,EAAE0sd,OAG9D,GADI1sd,EAAE0sd,SAAW1sd,EAAEysd,SAAQzsd,EAAEysd,OAASzsd,EAAE0sd,cAAe1sd,EAAE0sd,QACrD1sd,EAAEysd,OAAQzsd,EAAEysd,OAAO,GAAKvngB,KAAK2lgB,OAAOrqc,OAAOxgB,EAAEysd,OAAO,SAItD,GAFAzsd,EAAExpC,MAEa,IAAXwpC,EAAEosd,OACJ56f,EAAI,GAAQA,EAAGtM,MACXsC,KAAKu2d,MAAMytC,EAAW,GAAKh6f,EAAE,GAAIg6f,EAAW,GAAKh6f,EAAE,IAAMs6f,GAAa,CACxE,IAAI73f,EAAI,GAAO/O,MAAMulG,GAAG,iBACpBx2F,GAAGA,EAAE/G,MAAMhI,KAAMa,UACvB,CAvBuB,CA0B7B,CAmDA,OAzWAyjgB,EAAK34b,UAAY,SAASw7K,EAAYx7K,EAAW6wb,EAAOj7f,GACtD,IAAI0pC,EAAYk8M,EAAWl8M,UAAYk8M,EAAWl8M,YAAck8M,EAChEl8M,EAAU6nC,SAAS,SAAU+yb,IACzB1+Q,IAAel8M,EACjBgjV,EAAS9mI,EAAYx7K,EAAW6wb,EAAOj7f,GAEvC0pC,EAAU8vd,YAAY/he,MAAK,WACzBkle,EAAQl+f,KAAMa,WACXU,MAAMA,GACNkT,QACA6vf,KAAK,KAA2B,oBAAd34b,EAA2BA,EAAU3jE,MAAMhI,KAAMa,WAAa8qE,GAChFr6D,KACL,GAEJ,EAEAgzf,EAAKsD,QAAU,SAAS38d,EAAWzwB,EAAGzL,EAAGxN,GACvC+igB,EAAKuD,QAAQ58d,GAAW,WACtB,IAAI68d,EAAK9ngB,KAAK2lgB,OAAOnrf,EACjB8sf,EAAkB,oBAAN9sf,EAAmBA,EAAExS,MAAMhI,KAAMa,WAAa2Z,EAC9D,OAAOstf,EAAKR,CACd,GAAGv4f,EAAGxN,EACR,EAEA+igB,EAAKuD,QAAU,SAAS58d,EAAWzwB,EAAGzL,EAAGxN,GACvC+igB,EAAK34b,UAAU1gC,GAAW,WACxB,IAAIloC,EAAI0+f,EAAOz5f,MAAMhI,KAAMa,WACvBypf,EAAKtqf,KAAK2lgB,OACVlH,EAAU,MAAL1vf,EAAYg4f,EAAShkgB,GAAkB,oBAANgM,EAAmBA,EAAE/G,MAAMhI,KAAMa,WAAakO,EACpF8/W,EAAKy7H,EAAGhvb,OAAOmjc,GACf6I,EAAkB,oBAAN9sf,EAAmBA,EAAExS,MAAMhI,KAAMa,WAAa2Z,EAC9D,OAAO+rf,EAAUja,EAAU56K,EAAM44K,EAAIgd,GAAK7I,EAAI5vI,GAAK9rX,EAAGijgB,EACxD,GAAGj3f,EAAGxN,EACR,EAEA+igB,EAAKyD,YAAc,SAAS98d,EAAWhzB,EAAGC,EAAG3W,GAC3C+igB,EAAK34b,UAAU1gC,GAAW,WACxB,OAAOs7d,EAAUvmgB,KAAK2lgB,OAAOrZ,UACd,oBAANr0e,EAAmBA,EAAEjQ,MAAMhI,KAAMa,WAAaoX,EACxC,oBAANC,EAAmBA,EAAElQ,MAAMhI,KAAMa,WAAaqX,GACpDupf,EAAOz5f,MAAMhI,KAAMa,WAAYmlgB,EACpC,GAAG,KAAMzkgB,EACX,EAEA+igB,EAAK0D,YAAc,SAAS/8d,EAAWhzB,EAAGC,EAAGnJ,EAAGxN,GAC9C+igB,EAAK34b,UAAU1gC,GAAW,WACxB,IAAIloC,EAAI0+f,EAAOz5f,MAAMhI,KAAMa,WACvByL,EAAItM,KAAK2lgB,OACTlH,EAAU,MAAL1vf,EAAYg4f,EAAShkgB,GAAkB,oBAANgM,EAAmBA,EAAE/G,MAAMhI,KAAMa,WAAakO,EACxF,OAAOw3f,EAAU,GAASja,UAAUmS,EAAG,GAAIA,EAAG,IAAI/sL,MAAMplU,EAAEkO,GAAG8xe,UAC9C,oBAANr0e,GAAoBA,EAAEjQ,MAAMhI,KAAMa,YAAcoX,EAC1C,oBAANC,GAAoBA,EAAElQ,MAAMhI,KAAMa,YAAcqX,GACtDnV,EAAGijgB,EACR,GAAGj3f,EAAGxN,EACR,EAmDA0lgB,EAAQhmgB,UAAY,CAClBM,MAAO,SAASA,GAEd,OADIA,IAAOvB,KAAKq8f,YAAc96f,GACvBvB,IACT,EACAyU,MAAO,WAKL,OAJsB,MAAhBzU,KAAKimC,SACTjmC,KAAKkhL,KAAK8lV,UAAYhngB,KACtBA,KAAK+sH,KAAK,UAEL/sH,IACT,EACAskgB,KAAM,SAASxggB,EAAK6nE,GAMlB,OALI3rE,KAAKu+f,OAAiB,UAARz6f,IAAiB9D,KAAKu+f,MAAM,GAAK5yb,EAAUrQ,OAAOt7D,KAAKu+f,MAAM,KAC3Ev+f,KAAKungB,QAAkB,UAARzjgB,IAAiB9D,KAAKungB,OAAO,GAAK57b,EAAUrQ,OAAOt7D,KAAKungB,OAAO,KAC9EvngB,KAAKwngB,QAAkB,UAAR1jgB,IAAiB9D,KAAKwngB,OAAO,GAAK77b,EAAUrQ,OAAOt7D,KAAKwngB,OAAO,KAClFxngB,KAAKkhL,KAAKykV,OAASh6b,EACnB3rE,KAAK+sH,KAAK,QACH/sH,IACT,EACAsR,IAAK,WAKH,OAJsB,MAAhBtR,KAAKimC,gBACFjmC,KAAKkhL,KAAK8lV,UACjBhngB,KAAK+sH,KAAK,QAEL/sH,IACT,EACA+sH,KAAM,SAASn4G,GACb,IAAIszB,EAAI,GAAOloC,KAAKkhL,MAAMuiU,QAC1B5gU,EAAU1hL,KACRyT,EACA5U,KAAKkhL,KACL,IAAIkkV,GAAUxwf,EAAM,CAClBynf,YAAar8f,KAAKq8f,YAClB77f,OAAQ8jgB,EACR1vf,OACA+2D,UAAW3rE,KAAKkhL,KAAKykV,OACrB7qe,SAAU+nJ,IAEZ36I,EAEJ,GAsKFo8d,EAAKkC,WAAa,SAAS3hd,GACzB,OAAOhkD,UAAUC,QAAU0lgB,EAA0B,oBAAN3hd,EAAmBA,EAAI,IAAUA,GAAIy/c,GAAQkC,CAC9F,EAEAlC,EAAK93f,OAAS,SAASq4C,GACrB,OAAOhkD,UAAUC,QAAU0L,EAAsB,oBAANq4C,EAAmBA,EAAI,KAAWA,GAAIy/c,GAAQ93f,CAC3F,EAEA83f,EAAK5G,UAAY,SAAS74c,GACxB,OAAOhkD,UAAUC,QAAU48f,EAAyB,oBAAN74c,EAAmBA,EAAI,KAAWA,GAAIy/c,GAAQ5G,CAC9F,EAEA4G,EAAK7C,OAAS,SAAS58c,GACrB,OAAOhkD,UAAUC,QAAU2ggB,EAAsB,oBAAN58c,EAAmBA,EAAI,GAAS,CAAC,EAAEA,EAAE,GAAG,IAAKA,EAAE,GAAG,IAAK,EAAEA,EAAE,GAAG,IAAKA,EAAE,GAAG,MAAOy/c,GAAQ7C,CACpI,EAEA6C,EAAKmC,YAAc,SAAS5hd,GAC1B,OAAOhkD,UAAUC,QAAU2lgB,EAAY,IAAM5hd,EAAE,GAAI4hd,EAAY,IAAM5hd,EAAE,GAAIy/c,GAAQ,CAACmC,EAAY,GAAIA,EAAY,GAClH,EAEAnC,EAAK0B,gBAAkB,SAASnhd,GAC9B,OAAOhkD,UAAUC,QAAUklgB,EAAgB,GAAG,IAAMnhd,EAAE,GAAG,GAAImhd,EAAgB,GAAG,IAAMnhd,EAAE,GAAG,GAAImhd,EAAgB,GAAG,IAAMnhd,EAAE,GAAG,GAAImhd,EAAgB,GAAG,IAAMnhd,EAAE,GAAG,GAAIy/c,GAAQ,CAAC,CAAC0B,EAAgB,GAAG,GAAIA,EAAgB,GAAG,IAAK,CAACA,EAAgB,GAAG,GAAIA,EAAgB,GAAG,IACzQ,EAEA1B,EAAKiC,UAAY,SAAS1hd,GACxB,OAAOhkD,UAAUC,QAAUylgB,EAAY1hd,EAAGy/c,GAAQiC,CACpD,EAEAjC,EAAKzoY,SAAW,SAASh3E,GACvB,OAAOhkD,UAAUC,QAAU+6H,GAAYh3E,EAAGy/c,GAAQzoY,CACpD,EAEAyoY,EAAKj4P,YAAc,SAASxnN,GAC1B,OAAOhkD,UAAUC,QAAUurQ,EAAcxnN,EAAGy/c,GAAQj4P,CACtD,EAEAi4P,EAAK/+Z,GAAK,WACR,IAAIhlG,EAAQsiL,EAAUt9E,GAAGv9F,MAAM66K,EAAWhiL,WAC1C,OAAON,IAAUsiL,EAAYyhV,EAAO/jgB,CACtC,EAEA+jgB,EAAK5F,cAAgB,SAAS75c,GAC5B,OAAOhkD,UAAUC,QAAU88f,GAAkB/4c,GAAKA,GAAKA,EAAGy/c,GAAQhigB,KAAK4yH,KAAK0oY,EAC9E,EAEA0G,EAAKsC,YAAc,SAAS/hd,GAC1B,OAAOhkD,UAAUC,QAAU8lgB,GAAe/hd,EAAGy/c,GAAQsC,CACvD,EAEOtC,CACT,CFjZA34b,GAAU1qE,UAAY09Q,GAAU19Q,UG3CzB,MAAMgngB,GAAgBrzf,GAAS,miOAcPA,oB5IV/B,QACE5L,KAAY,yBACZ82D,WAAY,CAAEggb,WAAUA,GAAAA,GACxBr8e,MAAY,CACV+c,KAAM,CACJ5L,KAAU,CAAC9M,MAAO1H,QAClBi2B,UAAU,GAEZ6xe,UAAW,CACTtzf,KAAUxU,OACVi2B,UAAU,IAGd7V,IAAAA,GACE,MAAO,CACL2nf,iBAAqCvmgB,EACrCwmgB,gBAAqCxmgB,EACrCpC,UAAqCoC,EACrCymgB,kBAAqCzmgB,EACrC0mgB,cAAqC1mgB,EACrCwzC,cAAqCxzC,EACrC0+B,UAAqC1+B,EACrCk1H,UAAqCl1H,EACrCg4D,SAAqCh4D,EACrC0igB,UAAqC1igB,EACrCgggB,gBAAqChggB,EACrCwgf,sBAAqC,EACrCD,qCAAqC,EACrCE,SAAqC,CAAC,EAE1C,EACArqd,QAAS,CACPuwe,eAAAA,CAAgB7uZ,GACd,GAAIA,EAAS54G,OACX,GAAKd,KAAKoif,qBAaH,CACL,MAAMgmB,EAAapogB,KAAKkogB,UAAUM,UAAUxogB,KAAKwgB,MAC3Ciof,EAAgBzogB,KAAK8xC,QAAQs2d,GACnC,IAAIM,GAAkB,EAEtBD,EAAc7/f,SAASgT,IACrB,MAAMhb,EAAQZ,KAAKqogB,aAAa/ud,WAAWqvd,GAAa/sf,EAAKgtf,aAAeD,EAASnof,KAAKoof,aAGtFhogB,GAAS,GAAKZ,KAAKqogB,aAAazngB,GAAO4f,KAAKojB,QAAUhoB,EAAKgoB,QAC7D5jC,KAAKqogB,aAAazngB,GAAO4f,KAAKojB,MAAQhoB,EAAKgoB,MAC3C5jC,KAAKqogB,aAAazngB,GAAO4f,KAAK+he,WAAa3me,EAAK2me,WAChDvif,KAAKqogB,aAAazngB,GAAO4f,KAAK+wU,WAAa31U,EAAK21U,WAChDm3K,GAAkB,EAGd1ogB,KAAKqogB,aAAazngB,GAAO4f,KAAKylB,QAChCjmC,KAAK6ogB,eAAe7ogB,KAAKqogB,aAAazngB,GAAO4f,MAAM,GAEvD,IAGEkof,GACF1ogB,KAAK8ogB,aAAY,GAAO,EAE5B,MArCE9ogB,KAAKoogB,WAAapogB,KAAKkogB,UAAUM,UAAUxogB,KAAKwgB,MAGhDxgB,KAAK6ogB,eAAe7ogB,KAAKoogB,YAAY,GACrCpogB,KAAKoogB,WAAWnie,QAAS,EAGzBjmC,KAAK+ogB,cACL/ogB,KAAK8ogB,aAAY,GAAM,GACvB9ogB,KAAKoif,sBAAuB,CA8BlC,EACA2mB,WAAAA,GACE/ogB,KAAKskgB,KAAO0E,KAAUvC,YAAY,CAAC,EAAI,EAAG,KAAKlha,GAAG,OAAQvlG,KAAKipgB,QAC/D,MAAMt9b,EAAYq9b,GAAgBt3L,MAAM,GAAG46K,UAAU,EAAG,GAExDtsf,KAAKo1C,SAAWp1C,KAAK45D,IAAI+5F,OAAO,KAC7BJ,KAAK,QAAS,aAEjBvzJ,KAAK45D,IAAIz4D,KAAKnB,KAAKskgB,MACnBtkgB,KAAK45D,IAAIz4D,KAAKnB,KAAKskgB,KAAK34b,UAAWA,GAEnC3rE,KAAK4hgB,WAAaoH,KACf79Y,MAAM,SAAU69Y,KAAmBrK,SAAS3+f,KAAKkogB,UAAUgB,iBAAiBC,aAAavG,YAAY5igB,KAAKkogB,UAAUgB,iBAAiBE,iBACrIj+Y,MAAM,YAAa69Y,GAAgBhpgB,KAAKkogB,UAAUgB,iBAAiBG,kBACnEl+Y,MAAM,SAAU69Y,GAAgBhpgB,KAAKkogB,UAAUoB,WAAa,EAAGtpgB,KAAKkogB,UAAUqB,YAAc,IAC5FzH,WAAW9hgB,KAAKkogB,UAAUgB,iBAAiBM,eAC3Cjka,GAAG,OAAQvlG,KAAKypgB,QAChBlka,GAAG,OAAO,KACJvlG,KAAKmif,sCACRnif,KAAK0pgB,UACL1pgB,KAAKmif,qCAAsC,EAC7C,GAEN,EACA2mB,WAAAA,CAAYa,EAAgBC,GACtBD,IACF3pgB,KAAKR,KAAOwpgB,GAAahpgB,KAAKoogB,aAG5BwB,IACF5pgB,KAAKqogB,aAAerogB,KAAK8xC,QAAQ9xC,KAAKR,MACtCQ,KAAKsogB,SAAWtogB,KAAKR,KAAK4jC,SAG5BpjC,KAAK82H,KAAO92H,KAAKo1C,SACdiuc,UAAU,SACV7ie,KAAKxgB,KAAKsogB,UAAWpge,GACbA,EAAE1nC,OAAOmC,KAGpB3C,KAAK82H,KAAK+sX,OAAO7/Y,SAEjB,MAAM6la,EAAY7pgB,KAAK82H,KACpB8sX,QACAjwV,OAAO,QACPJ,KAAK,QAAS,QACd99H,MAAM,UAAW,OACjBA,MAAM,eAAgB,GAEzBz1B,KAAK82H,KAAO+yY,EAAUvtX,MAAMt8I,KAAK82H,MAEjC92H,KAAKsgC,KAAOtgC,KAAKo1C,SACdiuc,UAAU,SACV7ie,KAAKxgB,KAAKqogB,cAAenge,GACjBA,EAAEvlC,KAGV4wJ,KAAK,QAASvzJ,KAAK8pgB,eAEtB9pgB,KAAKsgC,KAAKujd,OAAO7/Y,SAGjB,MAAM+la,EAAY/pgB,KAAKsgC,KACpBsjd,QACAjwV,OAAO,KACPJ,KAAK,QAASvzJ,KAAK8pgB,eACnBr0e,MAAM,UAAW,GACjB8vE,GAAG,SAAS,CAACoB,EAAIz+D,KAChBloC,KAAK6ogB,eAAe3ge,EAAE1nB,MAAM,EAAK,IAElCrf,KAAK6ngB,KACHzja,GAAG,QAASvlG,KAAKgqgB,aACjBzka,GAAG,OAAQvlG,KAAKiqgB,UAChB1ka,GAAG,MAAOvlG,KAAKkqgB,YAGpBH,EAAUp2W,OAAO,UACdJ,KAAK,IAAKvzJ,KAAKmqgB,eAElBJ,EAAUp2W,OAAO,UACdJ,KAAK,KAAMrrH,GACHloC,KAAKmqgB,cAAcjie,GAAK,IAEhCqrH,KAAK,QAAS,oBAEjBw2W,EAAUp2W,OAAO,OAAOjgF,MAAMxrC,IAC5B,MAAMiG,EAAOnuC,KAAKkogB,UAAUkC,cAAclie,GAE1C,OAAO+/d,GAAa95d,EAAK,IAExBolH,KAAK,IAAKvzJ,KAAKqqgB,mBACf92W,KAAK,IAAKvzJ,KAAKqqgB,mBACf92W,KAAK,SAAUvzJ,KAAKsqgB,eACpB/2W,KAAK,QAASvzJ,KAAKsqgB,eAEtBtqgB,KAAKsgC,KAAOype,EAAUztX,MAAMt8I,KAAKsgC,MAEjCtgC,KAAK4hgB,WAAWxie,MAAMp/B,KAAKqogB,cAC3BrogB,KAAK4hgB,WAAWz2Y,MAAM,OAAQ69Y,KAC3BrmgB,IAAIulC,GACIA,EAAEvlC,KAEVwwE,SAAS,KACT/vC,MAAMpjC,KAAKsogB,UAEhB,EACAwB,aAAAA,CAAc5he,GACZ,MAAMqie,EAAkBrie,EAAE1nB,MAAMojB,MAAQsE,EAAE1nB,KAAKojB,MAAM/iB,cAAgB,gBAC/D2pf,EAAoB,CAAC,QAEvB5kK,GAAAA,GAAO2kK,IAAoB3kK,GAAAA,GAAO2kK,GAAiB/7d,MACrDg8d,EAAkBrhgB,KAAK,QAASy8V,GAAAA,GAAO2kK,GAAiB/7d,SAExDg8d,EAAkBrhgB,KAAK,qBAIrB++B,EAAE1nB,MAAMylB,QACVuke,EAAkBrhgB,KAAK,UAIzB,MAAMshgB,EAAqBzqgB,KAAKkogB,UAAUwC,gBAAgBxie,GAAGjgC,OAAOuigB,GAEpE,OAAOC,EAAmBv+f,KAAK,IACjC,EACAi+f,aAAAA,CAAcjie,GACZ,MAAM,OAAEkoF,GAAWpwH,KAAKkogB,UAAUyC,eAAezie,GAEjD,OAAOkoF,CACT,EACAk6Y,aAAAA,CAAcpie,GACZ,MAAM,KAAE5tB,GAASta,KAAKkogB,UAAUyC,eAAezie,GAE/C,OAAO5tB,CACT,EACA+vf,iBAAAA,CAAkBnie,GAChB,MAAM,SAAEntB,GAAa/a,KAAKkogB,UAAUyC,eAAezie,GAEnD,OAAOntB,CACT,EACA8tf,cAAAA,CAAerof,EAAMoqf,GAEnB5qgB,KAAKqif,SAAWjif,OAAOC,OAAO,GAAIL,KAAKkogB,UAAU2C,YAAYrqf,IAGzDoqf,IACF5qgB,KAAKqogB,aAAaz/f,SAAQ,CAACgT,EAAMlY,KAC3BkY,EAAK4E,KAAKoof,aAAepof,EAAKoof,WAChC5ogB,KAAKqogB,aAAa3kgB,GAAG8c,KAAKylB,QAAS,EAEnCjmC,KAAKqogB,aAAa3kgB,GAAG8c,KAAKylB,QAAS,CACrC,IAGFjmC,KAAK8ogB,aAAY,GAAO,GAE5B,EACAY,OAAAA,GACE,MAAMt0d,EAAW4zd,GAAU,cACrB8B,EAAgB,GAEhBC,EAAkB31d,EAAS9U,OAAOoU,wBAClCs2d,EAAmB51d,EAAS9U,OAAO2qe,UACnC92b,EAAS/+B,EAAS9U,OAAO4U,cACzBg2d,EAAY/2b,EAAOR,YACnBw3b,EAAah3b,EAAOP,aACpBl+C,EAAQq1e,EAAgBr1e,MACxBif,EAASo2d,EAAgBp2d,OACzBy2d,EAAOJ,EAAiB/yf,EAAIyd,EAAQ,EACpC21e,EAAOL,EAAiB9yf,EAAIy8B,EAAS,EAE3C,GAAc,IAAVjf,GAA0B,IAAXif,EACjB,OAGF,MAAM+8R,EAAQ,EAAIpvU,KAAK6P,IAAIujB,GAASw1e,EAAYJ,GAAgBn2d,GAAUw2d,EAAaL,IACjFxe,EAAY,CAAC4e,EAAY,EAAIx5L,EAAQ05L,EAAMD,EAAa,EAAIz5L,EAAQ25L,GAEpE1/b,EAAYq9b,GACf1c,UAAUA,EAAU,GAAIA,EAAU,IAClC56K,MAAMA,GAGT1xU,KAAK45D,IAAIz4D,KAAKnB,KAAKskgB,KAAK34b,UAAWA,EACrC,EACA89b,MAAAA,GACEzpgB,KAAK82H,KACFy8B,KAAK,MAAOrrH,GACJA,EAAE53B,OAAO2H,IAEjBs7I,KAAK,MAAOrrH,GACJA,EAAE53B,OAAO4H,IAEjBq7I,KAAK,MAAOrrH,GACJA,EAAE1nC,OAAOyX,IAEjBs7I,KAAK,MAAOrrH,GACJA,EAAE1nC,OAAO0X,IAGpBlY,KAAKsgC,KACFizH,KAAK,aAAcrrH,GACX,aAAcA,EAAEjwB,MAAQiwB,EAAEhwB,MAEvC,EACA8xf,WAAAA,CAAYrja,EAAIz+D,GACTy+D,EAAG1gE,QACNjmC,KAAK4hgB,WAAWG,YAAY,IAAK/uH,UAEnC9qW,EAAEgyb,GAAKhyb,EAAEjwB,EACTiwB,EAAEiyb,GAAKjyb,EAAEhwB,CACX,EACA+xf,QAAAA,CAAStja,EAAIz+D,GACXA,EAAEgyb,GAAKvzX,EAAG1uF,EACViwB,EAAEiyb,GAAKxzX,EAAGzuF,CACZ,EACAgyf,SAAAA,CAAUvja,EAAIz+D,GACPy+D,EAAG1gE,QACNjmC,KAAK4hgB,WAAWG,YAAY,GAE9B75d,EAAEgyb,QAAKt4d,EACPsmC,EAAEiyb,QAAKv4d,CACT,EACAqngB,MAAAA,CAAOtia,GACL3mG,KAAKo1C,SAASm+G,KAAK,YAAa5sD,EAAGh7B,UACrC,EACA75B,OAAAA,CAAQtyC,GACN,MAAM4/B,EAAQ,GACd,IAAI17B,EAAI,EAER,SAAS4ngB,EAAQhre,GACXA,EAAKsR,UACPtR,EAAKsR,SAAShpC,QAAQ0igB,GAEnBhre,EAAK39B,KAGNe,EAFF48B,EAAK39B,KAAOe,EAId07B,EAAMj2B,KAAKm3B,EACb,CAGA,OAFAgre,EAAQ9rgB,GAED4/B,CACT,GAEF2gB,OAAAA,GAEE//C,KAAK45D,IAAMovc,GAAU,SAASr1W,OAAO,OAClCJ,KAAK,UAAW,OAAQvzJ,KAAKkogB,UAAUoB,cAAgBtpgB,KAAKkogB,UAAUqB,eACtEh2W,KAAK,sBAAuB,QAG/BvzJ,KAAKmogB,YAAcnogB,KAAKurgB,OAAOvrgB,KAAKkogB,UAAUsD,aAAa,SAAS9xZ,GAClE15G,KAAKuogB,gBAAgB7uZ,EACvB,GAAG,CACDD,MAAW,EACXplB,WAAW,GAEf,EACAuf,SAAAA,GACE5zG,KAAKmogB,aACP,G,Q6IhVF,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,0BCgGO,MAAMsD,GAA6BA,CAAC7kd,EAAO9jB,KAChD,MAAMjQ,EAAO,CAAC,EAEd,IAAK,MAAO/uB,EAAKvD,KAAUH,OAAO2nC,QAAQ6e,GAAQ,CAChD,MAAMjhB,EAAS7C,EAAM5xB,QAAQ,GAAI3Q,EAAMmrgB,yBAA0BnrgB,EAAMqU,MAMjE+2f,EAAcprgB,EAAMqrgB,gBAAkBrrgB,EAAMqrgB,gBAAgBjme,KAAYA,EAE9E,GAAIgme,EAAa,CACf,MAAMjngB,EAAMo+B,EAAMhI,SAAS,GAAIv6B,EAAMmrgB,sBAAwB,CAAE92f,KAAMrU,EAAMqU,KAAM6vB,IAAKlkC,EAAMkkC,MAEvFlkC,EAAMsrgB,WACTh5e,EAAK/uB,GAAOY,EAEhB,CACF,CAEA,OAAO+jX,EAAAA,GAAAA,IAAQ51V,EAAK,E,gBpJ3GtB,SAASi5e,GAAQ9pc,GACf,OAAKA,EAAMhwC,OAAOE,OAAS+6Q,GAAAA,GAClBA,GAAAA,GAGJjrO,EAAMxgE,QAAQmB,GACVq/D,EAAMhwC,MAAME,MAAQ8E,GAAAA,GAEpBzE,GAAAA,EAEX,CAEA8H,eAAe0xe,GAAQjpe,EAAO0wF,GAC5B,IAAI/wF,EACJ,MAAMgC,EAAM,CAAEmC,QAAS,CAAEC,OAAQ,qBAMjC,OAJK2sF,EAAMq3L,QAAQ,UACjBpoR,SAAc+wF,EAAM8zO,WAAW,OAAQ7iU,IAAMjkB,MAGxCgzG,EAAM7wF,iBAAiBF,EAChC,CAEA,QACE1M,MAAO,CAAC,SAER+pC,WAAY,CACVkpB,QAAO,KACPgjb,UAAS,GACTC,uBAAsB,GACtBrib,aAAY,KACZuxZ,SAAQ,GACRC,YAAW,GACXryZ,OAAMA,GAAAA,GAGRhM,OAAQ,CAACmvb,GAAAA,GAETzogB,MAAO,CACLi0S,cAAe,CACb9iS,KAASvQ,OACT2xB,QAAS,MAGXm2e,iBAAkB,CAChBv3f,KAASvQ,OACT2xB,QAAS,MAGXkod,oBAAqB,CACnBtpe,KAASvQ,OACT2xB,QAAS,MAOXsjC,gBAAiB,CACf1kD,KAASvQ,OACT2xB,QAAS,oBAEXi0D,UAAW,CACTr1E,KAASxU,OACT41B,QAAS,OAIb,WAAM+pF,GACJ,MAAMj9E,EAAQ9iC,KAAKk+D,OACb8D,EAAQhiE,KAAK2xB,OACbnwB,EAASwgE,EAAMxgE,OACrB,IAAIk8G,EAAe19G,KAAKmsgB,kBAAoB3qgB,EAAO2vB,SAEnD,MAAMiP,EAAUpgC,KAAK03S,eAAiB50Q,EAAM5xB,QAAQ,gBAAgBwsG,GAC9D66L,EAAWv4S,KAAKu4S,SAGtB,IAAI,UAAEh/Q,EAAS,GAAE52B,GAAOnB,EAKxB,MAAM0wB,EAAQ,CAAC66Q,GAAAA,GAAQE,GAAAA,GAASD,GAAAA,IAAQx4R,SAAS+jS,GAAYhmR,GAAAA,GAAUgmR,EAEjEkmM,EAAiB37c,EAAM5xB,QAAQ,qBAAqBwsG,GACpDogY,IAAaW,EACbV,EAAkBj7c,EAAM5xB,QAAQ,4BAA4BwsG,EAAc/6G,GAC1Eq7e,EAAgBl7c,EAAM5xB,QAAQ,0BAA0BwsG,EAAc/6G,GAEtE4oF,EAAUzoD,EAAM5xB,QAAQ,GAAIkvB,SAAgBorD,EAAAA,IAG5Cq/O,EAAY7oQ,EAAMhwC,MAAMu4D,GAAAA,IAC9B,IAAIp4D,EACA0rd,GAAW,EAKb1rd,EAHGD,IAAS8E,GAAAA,KAAS+md,GAAqBlzK,GAAaA,IAAcx4S,GAAAA,GAE3DH,IAAS8E,GAAAA,IAAS8md,GAAYjzK,IAAc39B,GAAAA,GACjDA,GAAAA,IACK8wM,GAAmBnzK,GAAaA,IAAcz4S,GAAAA,GAGnDo4D,GAAAA,GAFAp4D,GAAAA,GAJAC,GAAAA,GASPryB,KAAKmyB,GAAKA,EAEV,MAAMrf,EAAUgwB,EAAM5xB,QAAQ,uBAAuBwsG,GAErD19G,KAAK6iT,cAAe,CAACtwR,GAAAA,GAASN,GAAAA,IAAOzd,SAAS0d,IAAQpf,EAAQs5f,qBAC9D,MAAMjyM,EAAcrnT,EAAQo3E,QAEvBp3E,EAAQqe,WACXusF,EAAe5qG,EAAQqe,UAGzB,MAAMwU,EAAS7C,EAAM5xB,QAAQ,GAAIkvB,eAAsBs9E,GACvD,IAAI8V,EAAOorX,EAAchrL,EAAWnxR,EAEpC,GAAK81Q,IAAahmR,GAAAA,IAAWgmR,IAAatL,GAAAA,GAAU,CAC5C1zQ,IACJA,EAAYuJ,EAAM5xB,QAAQ,qBAG5B,MAAMsP,EAAO,CAAE5L,KAAM8oG,GAEhB/3E,GAAQ8G,YAAYnE,aACvB9nB,EAAK8Y,SAAW,CAAEC,cAGpBq6R,QAAkB9wR,EAAMhI,SAAS,GAAIsF,WAAmB5f,GACxDo+d,QAAqB97c,EAAMhI,SAAS,GAAIsF,UAAkB,CAAEjP,SAAUyiS,IACtEpgM,QAAc1wF,EAAMhI,SAAS,GAAIsF,UAAkB,CAAEjP,SAAUyiS,KAEvC,IAApBpgM,EAAM4mQ,YACRjoW,EAAKq4D,GAAAA,GACLxqF,KAAKmyB,GAAKA,GAGPA,IAAOq4D,GAAAA,KACN7kD,GAAQtB,2BAEJsB,EAAOtB,sBAGf5B,GAAOyyT,EAAAA,GAAAA,IAAW3pQ,EAASmyB,EAAcl9F,GAE7C,KAAO,CACL,GAAK2R,IAAO+6Q,GAAAA,GAAS,CACnB,MAAMm/N,QAAoBZ,GAA2B,CACnDn8e,QAAS,CACPo8e,YAAa,aACb92f,KAAag1R,EAAAA,GAAMp4Q,SAErB+tS,OAAQ,CACNmsM,YAAa,aACb92f,KAAag1R,EAAAA,GAAMyJ,OACnB5uQ,IAAa,CAAE6ne,cAAe,CAAC,yBAA0B,oBAG3DC,iBAAkB,CAChBb,YAAa,aACb92f,KAAag1R,EAAAA,GAAM0J,oBAGpBtzS,KAAKk+D,QAERl+D,KAAKs+e,aAAe+tB,EAAY/8e,SAAW+8e,EAAY9sM,QAAU8sM,EAAYE,gBAC/E,CAEA,IAAIC,EAAO7pgB,EAENgjC,EAAO8G,YAAYnE,YAAc/O,IACpCize,EAAO,GAAIjze,KAAeize,KAG5B,IACE54M,QAAkB9wR,EAAMhI,SAAS,GAAIsF,SAAiB,CACpDxrB,KAAM8oG,EACN/6G,GAAM6pgB,EACN/ne,IAAM,CAAEm8B,OAAO,IAEnB,CAAE,MAAO79D,IACU,MAAbA,GAAEm5B,QAA+B,MAAbn5B,GAAEm5B,QACxB4G,EAAMhI,SAAS,eAAgB,IAAI93B,MAAMhD,KAAKsM,EAAE,mCAAoC,CAAE6kB,SAAUusF,EAAc8uZ,SAAQ,KAExH54M,EAAY,CAAC,EACbiqL,EAAW2uB,CACb,CAEA,IAEIh5Y,EADE+kL,IAAavhR,GAAAA,GACP48R,QAEM9wR,EAAMhI,SAAS,GAAIsF,UAAkB,CAAEjP,SAAUyiS,IAEjEgrL,QAAqB97c,EAAMhI,SAAS,GAAIsF,UAAkB,CAAEjP,SAAUyiS,IAEjEzhS,IAAOq4D,GAAAA,KACV/nD,QAAaspe,GAAQ/rgB,KAAKk+D,OAAQ01P,GAEtC,CAAE,MAAO7wT,IACP/C,KAAKshF,OAAOn4E,KAAKpG,GACnB,CACA,GAAKovB,IAAOq4D,GAAAA,GACV,IACE/nD,QAAaspe,GAAQ/rgB,KAAKk+D,OAAQ01P,EACpC,CAAE,MAAO7wT,IACP/C,KAAKshF,OAAOn4E,KAAKpG,GACnB,CAGGovB,IAAO+6Q,GAAAA,KACVltS,KAAKw+e,UAAY5qL,GAGd,CAAC7mB,GAAAA,GAAQE,GAAAA,GAASD,GAAAA,IAAQx4R,SAAS+jS,KACtC/kL,EAAMwmM,cACNv3R,EAAO+wF,EAAM9wF,UAAUD,EAAM81Q,GAEjC,CAGA,IACE/kL,QAAc1wF,EAAMhI,SAAS,GAAIsF,mBAA2BozF,EAC9D,CAAE,MAAOzwH,IACP/C,KAAKshF,OAAOn4E,KAAKpG,GACnB,CAEA,MAAM8hB,EAAM,CACVi5d,WACAW,iBACAV,kBACAC,gBACA7jL,cACAz8M,eACAvrF,KACAsQ,OACAm8c,eACAhrL,YACA1hS,OACA3xB,MAAOizH,EACPqqX,YAGF,IAAM,MAAM/5e,KAAO+gB,EACjB7kB,KAAK8D,GAAO+gB,EAAI/gB,GAGb9D,KAAKkyB,OAASK,GAAAA,IACjBvyB,KAAKO,MAAM6rF,cAAcpsF,KAAMu4S,EAEnC,EACA/3R,IAAAA,GACE,MAAO,CACLg+d,UAAiB,KACjBP,gBAAiB,KAGjBH,SAAiB,KACjBC,gBAAiB,KACjBC,cAAiB,KACjBtgY,aAAiB,KACjB+uZ,OAAiB,KACjBhqe,KAAiB,KACjBmxR,UAAiB,KACjBgrL,aAAiB,KACjB1sd,KAAiB,KACjBC,GAAiB,KACjB5xB,MAAiB,KACjBizH,MAAiB,KACjBqqX,SAAiB,KACjBS,cAAiB,EACjBnkL,YAAiB,KACjB74O,OAAiB,GAErB,EAEAnqD,SAAU,CACRohR,QAAAA,GAEE,MAAMA,EAAWuzN,GAAQ9rgB,KAAK2xB,QAE9B,OAAO4mR,CACT,EAEAh5R,MAAAA,GACE,OAAOvf,KAAKkyB,OAAS8E,GAAAA,EACvB,EAEA0nd,MAAAA,GACE,OAAO1+e,KAAKmyB,KAAOq4D,GAAAA,EACrB,EAEA2zZ,QAAAA,GACE,OAAOn+e,KAAKmyB,KAAOE,GAAAA,EACrB,EAEAgsd,OAAAA,GACE,OAAOr+e,KAAKmyB,KAAO+6Q,GAAAA,EACrB,EAEAt1M,YAAAA,GACE,OAAO53F,KAAKmyB,KAAOq4D,GAAAA,IAAS,CAACv4D,GAAAA,GAAO86Q,GAAAA,GAAQE,GAAAA,GAASD,GAAAA,IAAQx4R,SAASxU,KAAKkyB,KAC7E,EAEAysd,aAAAA,GACE,OAAS3+e,KAAKmyB,IACd,KAAKE,GAAAA,GAAS,OAAOryB,KAAK0sgB,gBAC1B,KAAKt6e,GAAAA,GAAS,OAAOpyB,KAAK2sgB,cAG1B,OAAO,IACT,EACAtrb,SAAAA,GACE,OAAOrhF,KAAKshF,QAAQxgF,QAAUgH,MAAMsM,QAAQpU,KAAKshF,OACnD,EACAE,YAAAA,GACE,OAAQxhF,KAAKshF,OAActhF,KAAKiqF,WAAajqF,KAAKshF,OAAOr5C,QAAO,CAAC+N,EAAKlsC,KAAU,IAC3EksC,EACH,CAAClsC,GAAQ,CACPrD,QAASqD,GAAO0W,MAAM/Z,SAAWqD,EACjCqkC,KAAS,SAET,CAAC,GANiB,CAAC,CAOzB,GAGFyyB,MAAO,CACL,OAASkN,EAAS2tE,GAChB,GAAI3tE,EAAQ9kE,OAASyyI,EAAKzyI,KACxB,OAEF,MAAM2hC,GAAM+/C,EAAAA,GAAAA,IAAM5c,EAAQ97C,OACpBgvC,GAAM0pB,EAAAA,GAAAA,IAAM+wD,EAAKzpH,cAEhB2Y,EAAIutD,GAAAA,WACJl3B,EAAIk3B,GAAAA,IAELl4F,KAAKuf,gBACForB,EAAI4/C,GAAAA,WACJvpB,EAAIupB,GAAAA,KAGb,MAAMqib,EAAYxsgB,OAAO8C,MAAKotG,EAAAA,GAAAA,IAAK3lE,EAAKq2B,KAEpC4rc,EAAUp4f,SAASs4R,GAAAA,IAAS8/N,EAAUp4f,SAAS+1E,GAAAA,MACjDvqF,KAAK86S,QAET,EAGA,qCAAM,CAAiChyS,EAAGC,GACnC/I,KAAKkyB,OAAS8E,GAAAA,IAASh3B,KAAKmyB,KAAOq4D,GAAAA,IAAS1hF,GAAKC,GAAKD,IAAMC,IAC/D/I,KAAKyiC,WAAaspe,GAAQ/rgB,KAAKk+D,OAAQl+D,KAAK4zT,WAEhD,GAGF71P,OAAAA,GAEE,MAAMp7D,EAAK3C,KAAK2xB,OAAOnwB,OAAOmB,GACxBwuB,EAAWnxB,KAAKmsgB,kBAAoBnsgB,KAAK2xB,OAAOnwB,OAAO2vB,SACvDre,EAAU9S,KAAKk+D,OAAOhtD,QAAQ,uBAAuBigB,GAErD07e,EAAiB/5f,EAAQq+W,gBAAkBr+W,EAAQqe,UAAYA,EAC/D27e,EAAeh6f,EAAQs+W,cAAgBt+W,EAAQqe,UAAYA,EAIjEnxB,KAAK0sgB,gBAAkB1sgB,KAAKk+D,OAAOhtD,QAAQ,yBAAyB27f,EAAgBlqgB,GACpF3C,KAAK2sgB,cAAgB3sgB,KAAKk+D,OAAOhtD,QAAQ,uBAAuB47f,EAAcnqgB,EAChF,EAEAq1B,QAAS,CACPy0B,UAAS,MACTqyb,UAAAA,CAAW18c,GACTpiC,KAAKi+e,gBAAkB77c,CACzB,EAEA8wD,SAAAA,CAAUwD,GACR,MAAMp1E,EAAIthB,KAAK4zT,UAEVtyS,IAAIo1E,IACPp1E,EAAEo1E,IAEN,EACA/U,UAAAA,CAAW/gF,GACTZ,KAAKshF,OAASthF,KAAKshF,OAAO90E,QAAO,CAACq4C,EAAGnhD,IAAMA,IAAM9C,GACnD,I,SqJnZJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UtJNA,IACEoI,KAAY,0BACZ82D,WAAY,CAAEitc,eAAcA,KuJA9B,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,mGCGElzc,EAAAA,EAAAA,aAAkB+jb,E,CAPpB,QACE50e,KAAY,uBACZ82D,WAAY,CAAEitc,eAAcA,KCA9B,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,mGCGElzc,EAAAA,EAAAA,aAAkB+jb,E,CAPpB,QACE50e,KAAY,gCACZ82D,WAAY,CAAEitc,eAAcA,KCA9B,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,UCPAjpgB,IAAA,EAyNInB,GAAG,W,IAECqrC,MAAM,S,IA3NdlqC,IAAA,G,IAAAA,IAAA,EAuSUkqC,MAAM,c,qRA/ENJ,EAAArtC,QAAK,kBADbwtC,EAAAA,EAAAA,oBAoHM,MApHNa,GAoHM,EAhHJO,EAAAA,EAAAA,oBAEK,KAFLN,IAEKP,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,oCAAD,IAEN61D,EAAAA,EAAAA,aA4Gc6qc,EAAA,CA3GX,aAAYn/d,EAAAi4C,UACZ30D,SAAUyc,EAAArtC,MACX2xB,KAAK,SACJovD,OAAQ1zC,EAAA0zC,OACR,YAAU,EACX,qBAAmB,UAClB,gBAAc,EACd2rb,SAAQp/d,EAAAlT,KACRuye,SAAQr/d,EAAA73B,M,CAvOfggB,SAAAssC,EAAAA,EAAAA,UAyOM,IAYE,EAZFH,EAAAA,EAAAA,aAYEgrc,EAAA,CAXQ5sgB,MAAOqtC,EAAAugW,YA1OvB,iBAAAlgY,EAAA,KAAAA,EAAA,GAAAurD,GA0OuB5rB,EAAAugW,YAAW30U,GAC1BxrB,MAAM,cACNhlC,KAAK,QACJ8J,QAAO,CAAc86B,EAAAw/d,aAAaj7I,IAAevkV,EAAAw/d,aAAaC,OAI9Dtxe,OAAM,CAAc0R,EAAAnhC,EAAC,mCAA+CmhC,EAAAnhC,EAAC,0C,sCAMxE61D,EAAAA,EAAAA,aAAemrc,GAEJz/d,EAAA0gW,cAAW,kBAAtBxgW,EAAAA,EAAAA,oBAuEM,MAhUZe,GAAA,EA0PQqzB,EAAAA,EAAAA,aAKEo2C,EAAA,CA/PVvyC,WA2PwBp4B,EAAA2/d,WAAWvze,KAAKkwF,YA3PxC,sBAAAj8G,EAAA,KAAAA,EAAA,GAAAurD,GA2PwB5rB,EAAA2/d,WAAWvze,KAAKkwF,YAAW1wD,GA3PnDg0c,eA2PU,CAAAtpf,MAAA,GACA8pB,MAAM,QACN,YAAU,wBACV3X,SAAA,I,wBAGF8rC,EAAAA,EAAAA,aAIEo2C,EAAA,CAHQh4G,MAAOqtC,EAAA2/d,WAAWvze,KAAK80W,SAlQzC,iBAAA7gY,EAAA,KAAAA,EAAA,GAAAurD,GAkQyB5rB,EAAA2/d,WAAWvze,KAAK80W,SAAQt1U,GACvCxrB,MAAM,QACN,YAAU,sC,kBAIJH,EAAA4/d,mBAAgB,kBADxB5zc,EAAAA,EAAAA,aAMEukC,EAAA,CA7QVt6F,IAAA,EAyQkBvD,MAAOqtC,EAAA8/d,cAzQzB,iBAAAz/f,EAAA,KAAAA,EAAA,GAAAurD,GAyQyB5rB,EAAA8/d,cAAal0c,GAC5BxrB,MAAM,cACNp5B,KAAK,WACJsf,MAAOuZ,EAAAnhC,EAAE,wC,4BA5QpB8hC,EAAAA,EAAAA,oBAAA,QA+QQ+zB,EAAAA,EAAAA,aAYEgrc,EAAA,CAXQ5sgB,MAAOqtC,EAAAu/V,WAhRzB,iBAAAl/X,EAAA,KAAAA,EAAA,GAAAurD,GAgRyB5rB,EAAAu/V,WAAU3zU,GACzBxrB,MAAM,oBACNhlC,KAAK,aACJ8J,QAAS,CAAC,SAAD,YAITipB,OAAM,CAAgB0R,EAAAnhC,EAAC,qCAAmDmhC,EAAAnhC,EAAC,yC,2BAOvD,aAAfshC,EAAAu/V,aAAU,kBADlBtzU,EAAAA,EAAAA,aAME0+C,EAAA,CAnSVz0G,IAAA,EAAAkiE,WA+RwBp4B,EAAA2/d,WAAWvze,KAAKyJ,IA/RxC,sBAAAx1B,EAAA,KAAAA,EAAA,GAAAurD,GA+RwB5rB,EAAA2/d,WAAWvze,KAAKyJ,IAAG+1B,GA/R3Cg0c,eA+RU,CAAAtpf,MAAA,GACA8pB,MAAM,yBACN3X,SAAA,GACA,YAAU,uB,4CAGZ0X,EAAAA,EAAAA,oBA0BM,MA1BNgB,GA0BM,EAtBJI,EAAAA,EAAAA,oBAcS,UAbPv6B,KAAK,SACLo5B,MAAM,mBACLyB,QAAKxhC,EAAA,KAAAA,EAAA,OAAApG,IAAEgmC,EAAA2sE,YAAA3sE,EAAA2sE,cAAA3yG,K,EA5SpBwmC,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA8Seb,EAAAnhC,EAAE,+BAAgC,IACrC,yBAAA6iC,EAAAA,EAAAA,oBAOE,SALAxsC,GAAG,OACHqsC,IAAI,OACJp6B,KAAK,OACLiyB,OAAO,OACN8zE,SAAM1sG,EAAA,KAAAA,EAAA,GAAAurD,GAAE3rB,EAAA8/d,qB,qBALD,QASZx+d,EAAAA,EAAAA,oBAKO,QAJJnB,OA1TbC,EAAAA,EAAAA,gBAAA,gBA0TqCJ,EAAAsqG,UACnB,Y,qBAEHtqG,EAAAsqG,SAAWtqG,EAAAsqG,SAAW1qG,EAAAnhC,EAAE,mCAAD,6BAKhCutD,EAAAA,EAAAA,aAOE0hC,EAAA,CAzURz3F,IAAA,EAoUgBvD,MAAOqtC,EAAAk1V,QApUvB,iBAAA70X,EAAA,KAAAA,EAAA,GAAAurD,GAoUuB5rB,EAAAk1V,QAAOtpU,GACrB1mD,QAAS+6B,EAAA+/d,eACVv3e,SAAA,GACA2X,MAAM,QACN,YAAU,0B,gCAxUlB6W,EAAA,G,gEAAAzW,EAAAA,EAAAA,oBAAA,M,gEAaA,MAAMg/d,GAAe,CACnBj7I,IAAO,MACPk7I,MAAO,SAGHQ,GAAW,WACXC,GAAS,SAEf,QACE9kgB,KAAY,yBACZ82D,WAAY,CACVumC,SAAQ,KAAE0na,YAAW,KAAEzna,cAAa,KAAEyS,aAAY,KAAEi1Z,WAAU,KAAEC,YAAWA,GAAAA,GAG7En4e,cAAc,EAEd,WAAMiqF,SACE//G,KAAKk+D,OAAOpjC,SAAS,oBAAqB,CAAElmB,KAAMi+C,EAAAA,GAAIgD,QAE5D,MAAMt1D,QAAcP,KAAKk+D,OAAOpjC,SAAS,mBAAoB,CAC3DlmB,KAAUi+C,EAAAA,GAAIoD,QACd38B,SAAU,CACR8L,aAAc,gBACd7L,UAAc,oBAEhBS,KAAM,CAAE+L,MAAO,MAGXwne,QAAmBvtgB,KAAKk+D,OAAOpjC,SAAS,mBAAoB,CAChElmB,KAAUi+C,EAAAA,GAAIgD,MACdv8B,SAAU,CACRtwB,KAAc,GACduwB,UAAc,mBACd6L,aAAc,SACdzJ,YAAc,CAAC,GAEjB3B,KAAM,CACJmzW,WAAa2gI,GACb5jZ,YAAa,GACb4kR,SAAa,MAIjB9uY,KAAKO,MAAQA,EACbP,KAAKutgB,WAAaA,CACpB,EAEA/sf,IAAAA,GACE,MAAO,CACLjgB,MAAe,KACf+6G,KAAe,CAAC,EAChBwnR,QAAe,GACfqL,YAAei/H,GAAaj7I,IAC5Bgb,WAAe2gI,GACfP,WAAe,KACfjsb,OAAe,GACfosb,eAAe,EACfN,gBAEJ,EAEAj2e,SAAU,CACR2uD,SAAAA,GACE,MAAO,GAAIo0S,EAAAA,uBACb,EAEA0zI,cAAAA,GACE,OAAO5tgB,KAAKk+D,OAAOhtD,QAAQ,iBAAiB2hD,EAAAA,GAAIgD,OAC7CrpD,QAAQyuL,GAAMA,EAAEsyM,YAChB/qY,KAAKy4L,IACG,CACL/mK,MAAU+mK,EAAEjhK,KAAKkwF,YACjB3pH,MAAU06L,EAAEt4L,GACZ2zB,UAAW2kK,EAAEguI,WAGrB,EAEAslE,WAAAA,GACE,OAAOvuY,KAAKmuY,cAAgBi/H,GAAaj7I,GAC3C,EAEAh6O,QAAAA,GACE,OAAOn4I,KAAKs7G,MAAMtyG,MAAQ,EAC5B,EAEAykgB,gBAAAA,GACE,OAAOztgB,KAAKk+D,OAAOhtD,QAAQ,uBAAuB2hD,EAAAA,GAAIqD,YACxD,GAGFl+B,QAAS,CACPhiB,IAAAA,GACEhW,KAAKkrF,QAAQ/hF,KAAK,CAChBH,KAAQhJ,KAAK8lF,UACbtkF,OAAQ,CAAE2vB,SAAU0hC,EAAAA,GAAIhpC,QAASgI,QAAS,cAE9C,EAEA,UAAM8I,CAAKwyD,GACT,IAAIzoF,EAAM,KAGV,GADA1E,KAAKshF,OAAS,IACTthF,KAAKutgB,WAAWvze,KAAKkwF,aAAelqH,KAAKuuY,YAI5C,OAHAvuY,KAAKshF,OAAOn4E,KAAKnJ,KAAKk+D,OAAOhtD,QAAQ,UAAU,sBAAuB,CAAEpN,IAAK9D,KAAKsM,EAAE,wBACpF6gF,GAAS,GAKX,IACE,GAAIntF,KAAKmuY,cAAgBi/H,GAAaj7I,IAAK,CAGzC,GAFAnyX,KAAKutgB,WAAWj0e,SAASqC,YAAYs9V,GAAAA,EAAgBzD,kBAAoB,OAErEx1X,KAAKmtY,aAAe2gI,GAAQ,CAC9B9tgB,KAAKutgB,WAAWvze,KAAKmzW,WAAa2gI,GAClC,MAAMxyZ,EAAOt7G,KAAKs7G,KAElB,IAAKA,EAAKtyG,KAIR,OAHAhJ,KAAKshF,OAAOn4E,KAAKnJ,KAAKk+D,OAAOhtD,QAAQ,UAAU,mDAC/Ci8E,GAAS,GAKXntF,KAAKutgB,WAAWvze,KAAKyJ,IAAM,GAE3BzjC,KAAKutgB,WAAWj0e,SAASqC,YAAYs9V,GAAAA,EAAgBnmU,YAAcwoD,EAAKtyG,KAExEtE,QAAY1E,KAAKutgB,WAAW5ye,OAE5Bj2B,EAAI6pY,YAAYjzR,EAClB,MAAO,GAAIt7G,KAAKmtY,aAAe0gI,GAAU,CAEvC,GADA7tgB,KAAKutgB,WAAWvze,KAAKmzW,WAAa0gI,IAC7B7tgB,KAAKutgB,WAAWvze,KAAKyJ,IAIxB,OAHAzjC,KAAKshF,OAAOn4E,KAAKnJ,KAAKk+D,OAAOhtD,QAAQ,UAAU,4CAC/Ci8E,GAAS,GAKXzoF,QAAY1E,KAAKutgB,WAAW5ye,MAC9B,CAEA36B,KAAKO,MAAMy5B,KAAK+L,MAAQrhC,EAAI/B,EAC9B,MAAO,GAAI3C,KAAKmuY,cAAgBi/H,GAAaC,MAAO,CAClD,IAAKrtgB,KAAK8iY,QAGR,YAFA9iY,KAAKshF,OAAOn4E,KAAKnJ,KAAKk+D,OAAOhtD,QAAQ,UAAU,yCAKjDlR,KAAKO,MAAMy5B,KAAK+L,MAAQ/lC,KAAK8iY,OAC/B,CAEI9iY,KAAKytgB,mBACPztgB,KAAKO,MAAMy5B,KAAKk0e,WAAalugB,KAAK0tgB,qBAG9B1tgB,KAAKO,MAAMo6B,OACjB36B,KAAKgW,OACLm3E,GAAS,EACX,CAAE,MAAOpqF,IACP/C,KAAKshF,QAASyK,EAAAA,GAAAA,IAAuBhpF,IACrCoqF,GAAS,EACX,CACF,EAEAwgb,gBAAAA,GACE3tgB,KAAKs7G,KAAOt7G,KAAKo4B,MAAMkjF,KAAKD,MAAM,EACpC,EAEAb,UAAAA,GACEx6G,KAAKo4B,MAAMkjF,KAAK/6G,MAAQ,KACxBP,KAAKo4B,MAAMkjF,KAAKzD,OAClB,GAGFj3C,MAAO,CACL,sBAAuB,CACrBC,OAAAA,CAAQl2B,GACN,MAAM2zW,EAAa3zW,GAAK/+B,MAAM,MAAMqG,MAC9Bk8f,EAAY7vH,GAAY1yY,MAAM,MAAQ,GACtC2yY,EAAa4vH,GAAWl8f,OAAO4O,cAEjCstf,EAAUrtgB,OAAS,GAAoB,QAAfy9Y,IAAyBv+Y,KAAKutgB,WAAWvze,KAAKkwF,cACxElqH,KAAKutgB,WAAWvze,KAAKkwF,YAAco0R,EAEvC,EACA7kS,MAAM,GAGR6B,IAAAA,CAAK3wE,IACE3qC,KAAKutgB,WAAWvze,KAAKkwF,aAAev/E,EAAI3hC,OAC3ChJ,KAAKutgB,WAAWvze,KAAKkwF,YAAcv/E,EAAI3hC,KAE3C,I,SC1MJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,4FCcE6wD,EAAAA,EAAAA,aAGEu0c,GAHF5rc,EAAAA,EAAAA,YAGE,CAFC,2BAA0B30B,EAAAwge,wBACnB5ge,EAAAg1B,QAAM,qC,WC0GXz0B,MAAM,mB,IAnIblqC,IAAA,EAyJUkqC,MAAM,yB,qRAtBdD,EAAAA,EAAAA,oBA4CM,MA5CNa,GA4CM,EA3CJuzB,EAAAA,EAAAA,aAQEm4a,EAAA,CAPC30c,OAAQiI,EAAAjI,OACRxU,SAAUyc,EAAAzc,SACV,oBAAmByc,EAAAkoQ,cAAcC,gBACjC,kBAAiBnoQ,EAAAwiD,eACjB,sBAAqB3iD,EAAAnhC,EAAE,6BACvB,gBAAc,EACd,eAAcmhC,EAAAnhC,EAAE,8B,yGAGXuhC,EAAAonE,UAAO,kBADfp7C,EAAAA,EAAAA,aAIE0nB,EAAA,CAjJNz9E,IAAA,EA+IM0qC,MAAM,QACLta,MAAOuZ,EAAAnhC,EAAE,gC,oBAhJhB8hC,EAAAA,EAAAA,oBAAA,QAkJI+zB,EAAAA,EAAAA,aA4BSmsc,EAAA,MA9Kbt4e,SAAAssC,EAAAA,EAAAA,UAmJM,IA0BM,EA1BNH,EAAAA,EAAAA,aA0BMywC,EAAA,CAzBJ5pG,KAAK,qBACJkrB,MAAOuZ,EAAAnhC,EAAE,8B,CArJlB0pB,SAAAssC,EAAAA,EAAAA,UAwNK,IAgBkC,CAhFvBz0B,EAAA0ge,wBAAqB,kBAD7Bxge,EAAAA,EAAAA,oBAUM,MAVNc,GAUM,EANJszB,EAAAA,EAAAA,aAKcotB,EAAA,CAJX5uF,GAAIitC,EAAAwiD,eACLpiD,MAAM,+B,CA7JlBhY,SAAAssC,EAAAA,EAAAA,UA+JY,IAAoC,EA/JhDj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA+Jeb,EAAAnhC,EAAE,8BAAD,MA/JhBu4C,EAAA,G,cAAAzW,EAAAA,EAAAA,oBAAA,QAkKQ+zB,EAAAA,EAAAA,aAUE04a,EAAA,CATCl1c,OAAQiI,EAAAjI,OACRiB,QAASgH,EAAAhH,QACTyqD,KAAMxjD,EAAA2ge,oCACNx6a,WAAW,EACX,iBAAe,EACf1rD,YAAY,EACZ40C,QAASzvC,EAAA0xE,YAAYxxC,UAAYlgC,EAAA0jE,gBAAkBvjE,EAAA6ge,uBACpD,aAAW,YACV,aAAY,CAAC,gB,iDA3KxB5pd,EAAA,G,gBAAAA,EAAA,K,6BAWA,IACE77C,KAAM,UAEN82D,WAAY,CACVipB,OAAM,KACNoyZ,SAAQ,KACRD,cAAa,KACbwzB,OAAM,KACNtub,IAAGA,GAAAA,GAGL38E,MAAO,CAEL4qgB,uBAAwB,CACtBz5f,KAASxU,OACT41B,QAASA,KACA,CACLhtB,KAAQ,oCACRxH,OAAQ,CAAE2vB,SAAUI,EAAAA,GAAW+9Q,mCAMvC,WAAMvvL,GACJ,MAAM4uZ,EAAmC3ugB,KAAKk+D,OAAOhtD,QACnD,qBACAg+R,EAAAA,GAAOI,+BAEHs/N,EAAmC5ugB,KAAKk+D,OAAOhtD,QAAQ,qBAAqBg+R,EAAAA,GAAOQ,+BAEzF1vS,KAAK,0BAA4B2ugB,EACjC3ugB,KAAK,0BAA4B4ugB,EAE7BD,GACFhlgB,QAAQ60B,IAAI,CACVx+B,KAAKk+D,OAAOpjC,SAAS,kBAAmB,CAAElmB,KAAMs6R,EAAAA,GAAOI,+BAAiC,CAAE9vS,MAAM,IAChGQ,KAAKk+D,OAAOpjC,SAAS,qBAAsB,CAAElmB,KAAM2c,EAAAA,GAAW+9Q,kCAC7D/lS,MAAK,EAAEslgB,MACR7ugB,KAAK,qCAAuC6ugB,EAC5C7ugB,KAAKyugB,wBAAyB,CAAK,IAInCG,GACF5ugB,KAAKk+D,OAAOpjC,SAAS,kBAAmB,CAAElmB,KAAMs6R,EAAAA,GAAOQ,+BAAiC,CAAElwS,MAAM,IAC7F+J,MAAMulgB,IACL9ugB,KAAK,+BAAiC8ugB,EACtC9ugB,KAAK+ugB,wBAAyB,CAAK,IAIzC,MAAMC,EAAY,CAChBC,iBAAmBjvgB,KAAKk+D,OAAOpjC,SAAS,kBAAmB,CAAElmB,KAAMs6R,EAAAA,GAAOf,YAC1ExtQ,KAAmB3gC,KAAKk+D,OAAOpjC,SAAS,qBAAsB,CAAElmB,KAAM2c,EAAAA,GAAWykC,OACjFk5c,kBAAmBlvgB,KAAKk+D,OAAOpjC,SAAS,qBAAsB,CAAElmB,KAAM2c,EAAAA,GAAWs+Q,uBAG7E44E,EAAAA,GAAAA,IAAQumJ,EAChB,EAEAxuf,IAAAA,GACE,MAAO,CACLmlB,OAAQ3lC,KAAKk+D,OAAOhtD,QAAQ,wBAC1BqgB,EAAAA,GAAW+9Q,+BAEb1oQ,QAAgB,CAAC2kQ,GAAAA,GAAO4C,GAAAA,GAAWp8O,GAAAA,GAAMqjC,GAAAA,GACzChF,eAAgB,IACXpwF,KAAKqugB,uBACR7sgB,OAAQ,IACHxB,KAAKqugB,uBAAuB7sgB,OAC/B8tB,QAAStvB,KAAKk+D,OAAOhtD,QAAQ,kBAAkBvO,KAGnDwuB,SAAmCI,EAAAA,GAAW+9Q,8BAC9C6/N,uBAAmC,KACnCC,uBAAmC,KACnCC,kCAAmC,GACnCC,4BAAmC,GACnCx5N,cAAa,KACby5N,2BAAmC,CACjChkO,GAAAA,GACA,CACEviS,KAAW,SACXwmgB,QAAW,eACXjvgB,MAAW,cACXmhD,UAAW,aAEb,CACE14C,KAAU,OACVirB,SAAU,oBACV1zB,MAAU,6BAGdwugB,wBAAwB,EACxBN,wBAAwB,EAE5B,EAEAt3e,SAAU,KACLqpC,EAAAA,EAAAA,IAAW,CAAC,mBACfivc,2BAAAA,GACE,OAAOzvgB,KAAKqvgB,kCAAkC7sgB,KAAKuG,GAAMA,EAAEiwT,4BAC7D,EACAw1M,mCAAAA,GACE,OAAOxugB,KAAKyvgB,4BAA4BjjgB,QACrCzD,GAAMA,GAAG03B,cAAgBzgC,KAAKk+D,OAAOhtD,QAAQ,kBAAkBvO,IAEpE,EACAsyG,OAAAA,GACE,OAAOj1G,KAAKk+D,OAAOhtD,QAAQ,kBAAkB+jG,OAC/C,EACAs5Z,qBAAAA,GACE,OAAOvugB,KAAKmvgB,wBAAwBz+a,kBAAkB74D,MAAM5f,GAA0B,SAApBA,EAAE4I,eACtE,I,SCtHJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UFLA,IACEi/C,WAAc,CAAE4vc,QAAOA,IACvB55e,cAAc,EACdqB,SAAc,CACZk3e,sBAAAA,GACE,MAAO,CACLrlgB,KAAQ,GAAIkxX,EAAAA,+BACZ14X,OAAQ,CACNqwB,QAAUqoW,EAAAA,GACV5qW,QAAUtvB,KAAKk+D,OAAOhtD,QAAQ,mBAAmBvO,GACjDwuB,SAAUI,EAAAA,GAAW+9Q,+BAG3B,IGZJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,+GCuBEz1O,EAAAA,EAAAA,aAIE81c,GAJFntc,EAAAA,EAAAA,YAIE/0B,EAHQg1B,OAAM,CACb,mCAAkC70B,EAAAgie,sBAClC,qCAAoChie,EAAAiie,0B,6FCoWlC7he,MAAM,6B,IAmDDA,MAAM,a,IAIJA,MAAM,gB,IA5bpBlqC,IAAA,EAgcckqC,MAAM,qC,IAKLA,MAAM,S,IArcrBlqC,IAAA,G,IAAAA,IAAA,EA0dUkqC,MAAM,c,IAIHA,MAAM,kB,IA9dnBlqC,IAAA,G,IAAAA,IAAA,EA2eYkqC,MAAM,wB,IA3elBlqC,IAAA,EAgfYkqC,MAAM,uB,IAURA,MAAM,Y,GA1fhB,Y,IAqgBYA,MAAM,Y,GArgBlB,Y,2aAqYED,EAAAA,EAAAA,oBA2IM,MA3INa,GA2IM,EA1IJuzB,EAAAA,EAAAA,aAuBWm4a,EAAA,CAtBR30c,OAAQiI,EAAAkie,cACR,eAAcrie,EAAAnhC,EAAE,2BAChB6kB,SAAUyc,EAAArc,WAAW+3B,QACrB,oBAAmB1b,EAAAkoQ,cAAcE,mBACjC,kBAAiBnoQ,EAAA+he,sBACjB,sBAAqBnie,EAAAnhC,EAAE,mCACvB,qCAAoCuhC,EAAAmhD,gCACpC,iBAAgBphD,EAAAshD,cAChB,qBAAoBthD,EAAAwhD,oBA/Y3B7oB,EAAAA,EAAAA,aAAA,CAAA1hB,EAAA,IAkZchX,EAAAkie,mBAAkB,CAlZhC/mgB,KAmZS,eAnZTtB,IAAA46D,EAAAA,EAAAA,UAqZQ,IAMc,EANdH,EAAAA,EAAAA,aAMcotB,EAAA,CALX5uF,GAAIktC,EAAAmie,kCACLhie,MAAM,yBACN,cAAY,6B,CAxZtBhY,SAAAssC,EAAAA,EAAAA,UA0ZU,IAA4C,EA1ZtDj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA0Zab,EAAAnhC,EAAE,sCAAD,MA1Zdu4C,EAAA,G,aAAA/gD,IAAA,UAAAlC,IAAA,mLA+ZIugE,EAAAA,EAAAA,aAIEs4a,EAAA,CAHCtpd,SAAU,CAAC,EACXvc,KAAMg5B,EAAA8sc,cACNr8M,SAAUzwP,EAAA+sc,mB,6BAEbx4a,EAAAA,EAAAA,aA0GgB04a,GA1GhBr4a,EAAAA,EAAAA,YA0GgB,CAzGdxzB,IAAI,SAAO,IACCvB,EAAAg1B,OAAMz0B,MAAA,OAClBA,MAAM,iCACLrI,OAAQiI,EAAAjI,OACRiB,QAASiH,EAAAjH,QACTyqD,KAAMxjD,EAAAyjD,aACN0C,WAAW,EACX,qBAAoBnmD,EAAAqmD,iBACpBhX,QAASrvC,EAAAqvC,QACV,gBAAc,gCACd,YAAU,UA/ahB3W,EAAAA,EAAAA,aAAA,CAibiB,YAAQjE,EAAAA,EAAAA,UAmCXznB,GAnCkB,EACxB1L,EAAAA,EAAAA,oBAkCM,OAjCJnB,OAnbVC,EAAAA,EAAAA,gBAAA,CAmbgB,cAAa,mBACSJ,EAAAoie,mBAAmBp1d,EAAMA,W,0CAErD9M,EAAAA,EAAAA,oBAcM,MAdNc,GAcM,uBAVJM,EAAAA,EAAAA,oBAGE,MAHFL,GAGE,cAFcjB,EAAAqie,aAAar1d,EAAMA,UAI3BhN,EAAAoie,mBAAmBp1d,EAAMA,SAAK,kBADtC9M,EAAAA,EAAAA,oBAKM,MALNgB,IAKMT,EAAAA,EAAAA,iBADDT,EAAAoie,mBAAmBp1d,EAAMA,QAAK,KAlc/CzM,EAAAA,EAAAA,oBAAA,kBAqcUe,EAAAA,EAAAA,oBAcM,MAdNm0C,GAcM,CAZIz1C,EAAAsie,uBAAyBtie,EAAAs8E,6BAA+BtvE,EAAMA,MAAM/2C,MAAQ+pC,EAAAuie,mBAAe,kBADnGv2c,EAAAA,EAAAA,aAMc01B,EAAA,CA5c1BzrF,IAAA,EAwcckqC,MAAM,kDACLrtC,GAAIktC,EAAAgie,wBAAwBh1d,EAAMA,Q,CAzcjD7kB,SAAAssC,EAAAA,EAAAA,UA2cc,IAA4C,EA3c1Dj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA2ciBb,EAAAnhC,EAAE,sCAAD,MA3clBu4C,EAAA,G,eAAAzW,EAAAA,EAAAA,oBAAA,QA6cY+zB,EAAAA,EAAAA,aAKEk9B,EAAA,CAJArxD,MAAM,uBACLowC,YAAY,EACZC,WAAYxwC,EAAAwie,wBAAwBx1d,EAAMA,OAC1CpL,QAAK+pB,GAAE3rB,EAAAyie,kBAAkB92c,EAAQ3e,EAAMA,Q,yCAKrC,gBAAYynB,EAAAA,EAAAA,UArVi9Y,EAqV98YjgB,SAAG,CACfA,EAAIqhR,UAAO,kBAAvB31R,EAAAA,EAAAA,oBAA6D,OAvdrEk0C,IAAA3zC,EAAAA,EAAAA,iBAudoC+T,EAAIqhR,QAAQryN,aAAW,wBACnDtjE,EAAAA,EAAAA,oBAGe,OAHfm0C,GAGC,SAEQ,aAAS5f,EAAAA,EAAAA,UAClB,EADqBjgB,SAAG,EACxBlT,EAAAA,EAAAA,oBAoBM,MApBNizC,GAoBM,CAlBI//B,EAAIs9P,iBAAmBt9P,EAAIi5R,qBAAkB,kBADrDzhR,EAAAA,EAAAA,aAKc01B,EAAA,CApexBzrF,IAAA,EAieanD,GAAI0hD,EAAIs9P,gB,CAjerB3pR,SAAAssC,EAAAA,EAAAA,UAmeY,IAAc,EAne1Bj0B,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBAmee+T,EAAIr5C,MAAI,MAnevB67C,EAAA,G,kCAqeU9W,EAAAA,EAAAA,oBAEO,OAvejBs0C,IAAA/zC,EAAAA,EAAAA,iBAsee+T,EAAIr5C,MAAI,IAGLq5C,EAAIm4R,kBAAgB,wCAD5BzsS,EAAAA,EAAAA,oBAIE,IAJFw0C,GAIE,eAFiB90C,EAAAnhC,EAAE,iDA1e/B8hC,EAAAA,EAAAA,oBAAA,OA8ekBiU,EAAI8tQ,iBAAe,wCAD3BpiR,EAAAA,EAAAA,oBAIE,IAJFy0C,GAIE,eAFiB30C,EAAA0ie,cAAclud,OA/e3CjU,EAAAA,EAAAA,oBAAA,YAogBiB,uBAAmBk0B,EAAAA,EAAAA,UAC5B,EADgCm7B,iBAAW,EAC3CtuD,EAAAA,EAAAA,oBAOK,KAPL0zC,GAOK,EANH1zC,EAAAA,EAAAA,oBAKK,MAJHnB,MAAM,oBACLwvD,QAASC,I,qBAEPhwD,EAAAnhC,EAAE,4CAAD,EA1gBhBw2E,SAAAj+B,EAAA,G,EAAAsU,EAAAA,EAAAA,YAqf+BtrB,EAAA2ie,2BArf/B,CAqfgB9sM,EAAShgU,K,CArfzBsF,KAufS6kC,EAAA4ie,SAAS/sM,GAvflBh8T,IAAA46D,EAAAA,EAAAA,UAyfQ,EAFwBm7B,iBAAW,EAEnCtuD,EAAAA,EAAAA,oBASK,KATLwzC,GASK,EANHxzC,EAAAA,EAAAA,oBAKK,MAJHnB,MAAM,oBACLwvD,QAASC,I,qBAEPhwD,EAAAnhC,EAAE,mCAAD,EAhgBhBs2E,e,kEA+gBIzgB,EAAAA,EAAAA,aAAsCuuc,EAAA,CAA1BC,SAAQ9ie,EAAAipD,gBAAc,sB,WCva1B9oD,MAAM,qB,IAOJA,MAAM,c,mOArBVJ,EAAAs5C,YAAS,kBADjBrtB,EAAAA,EAAAA,aAoDYstB,EAAA,CA7IdrjF,IAAA,EA2FIkqC,MAAM,aACLhlC,KAAM4kC,EAAAgje,UACNl7e,MAAO,IACRif,OAAO,OACN+sC,QAAO7zC,EAAA88E,O,CA/FZ30F,SAAAssC,EAAAA,EAAAA,UAgGC,IAEE,CADgB70B,EAAA0xE,YAAYxxC,UAAO,kBAAlC9T,EAAAA,EAAAA,aAAsC+tB,EAAA,CAjG1C9jF,IAAA,yBAkGI+1D,EAAAA,EAAAA,aA0COy0B,EAAA,CA5IXxqF,IAAA,EAoGMkqC,MAAM,kBACL,yBAAuB,G,CAEbsB,OAAKgzB,EAAAA,EAAAA,UACd,IAEK,EAFLnzB,EAAAA,EAAAA,oBAEK,KAFLP,IAEKN,EAAAA,EAAAA,iBADAb,EAAAnhC,EAAE,oBAAD,MAGGw+D,MAAIxI,EAAAA,EAAAA,UACb,IAUM,EAVNnzB,EAAAA,EAAAA,oBAUM,aAvHdd,EAAAA,EAAAA,kBAAAC,EAAAA,EAAAA,iBA8Gab,EAAAnhC,EAAE,0BAA2B,IAChC,IAAA6iC,EAAAA,EAAAA,oBAOK,KAPLN,GAOK,uBANHd,EAAAA,EAAAA,oBAKKmrB,EAAAA,SAAA,MArHjBC,EAAAA,EAAAA,YAiHuC1rB,EAAAoje,QAjHvC,CAiHsBt3e,EAAW71B,M,kBADrBqqC,EAAAA,EAAAA,oBAKK,MAHFjqC,IAAKJ,IAAC4qC,EAAAA,EAAAA,iBAEJ/U,EAAU83E,aAAW,M,WAI9BlvC,EAAAA,EAAAA,aAIEo5B,EAAA,CAHQh7F,MAAOqtC,EAAAkje,cAzHzB,iBAAA7igB,EAAA,KAAAA,EAAA,GAAAurD,GAyHyB5rB,EAAAkje,cAAat3c,GAC3B1mD,QAAS+6B,EAAAkje,eACT78e,MAAOuZ,EAAAnhC,EAAE,4B,uCAGHqnB,SAAO2uC,EAAAA,EAAAA,UAChB,IAKS,EALTnzB,EAAAA,EAAAA,oBAKS,UAJPnB,MAAM,qBACLyB,QAAKxhC,EAAA,KAAAA,EAAA,OAAApG,IAAEgmC,EAAA88E,OAAA98E,EAAA88E,SAAA9iH,M,qBAEL4lC,EAAAnhC,EAAE,mBAAD,IAEN61D,EAAAA,EAAAA,aAKE8iB,EAAA,CAJC,eAAcx3C,EAAAnhC,EAAE,6BACjB0hC,MAAM,uBACL1X,UAAWsX,EAAAkje,cACXrhe,QAAO5B,EAAA4sS,M,iDAzIlB51R,EAAA,QAAAA,EAAA,G,wBAAAzW,EAAAA,EAAAA,oBAAA,M,iBAUA,IACErY,MAAO,CAAC,UAER+pC,WAAY,CACVwnB,YAAW,KAAEmH,KAAI,KAAE6X,cAAa,KAAEtd,QAAO,KAAE3B,SAAQA,GAAAA,GAGrD,WAAM04B,GACJ//G,KAAKkrC,eAAiBlrC,KAAKk+D,OAAOpjC,SAAS,qBAAsB,CAAElmB,KAAM2c,EAAAA,GAAW+3B,SACtF,EAEA9oC,IAAAA,GACE,MAAO,CACLowf,UAAW,aAAc1le,SAAU,GAAI4le,cAAe,KAAM5pb,WAAW,EAE3E,EAEA/vD,SAAU,KACL2zD,EAAAA,EAAAA,IAAS,cAAe,CAAC,iBAAkB,eAC3CtqB,EAAAA,EAAAA,IAAW,CAAC,mBAEfwwc,gBAAAA,GACE,OAAOhxgB,KAAK6wgB,OAAOrkgB,QAAQ+sB,KAAgBA,EAAUmqS,UAASlhU,KAAK+2B,GAAcA,EAAUmqS,QAAQ+mC,SACrG,EAEAsmK,cAAAA,GACE,OAAO/wgB,KAAKkrC,SAASjD,QAAO,CAACgpe,EAAWvtM,KACjC1jU,KAAKgxgB,iBAAiBx8f,SAASkvT,EAAQ+mC,UAAY/mC,EAAQ1pS,MAAMyG,cAAgBzgC,KAAKmxG,eAAexuG,IACxGsugB,EAAU9ngB,KAAK,CACb5I,MAAOmjU,EAAQ+mC,QACfv2U,MAAOwvS,EAAQryN,cAIZ4/Z,IACN,GACL,GAGFrwc,MAAO,CACLswc,cAAAA,CAAepwc,GAEX9gE,KAAKknF,YADHpmB,CAKN,GAGF9oC,QAAS,CACP2yF,KAAAA,GACE3qH,KAAKk+D,OAAO+C,OAAO,+BACrB,EAEA,UAAMw5Q,CAAK/xP,GACT,MAAMp5D,EAAUtvB,KAAKk+D,OAAOhtD,QAAQ,kBAC9BiggB,EAAuB,GAAI7hf,EAAQ3sB,MAAQ3C,KAAK8wgB,gBAEhD3qa,EAAWnmG,KAAK6wgB,OAAOrugB,KAAK+2B,IAChCA,EAAU+sU,SAASh9S,GAAAA,GAAStpD,KAAK8wgB,eACjCv3e,EAAUo1R,cAAcrlQ,GAAAA,GAAS6nd,GAE1B53e,EAAUoB,UAGnB,IACE36B,KAAK+3B,MAAM,gBACLpuB,QAAQ60B,IAAI2nE,GAClBzd,GAAO,GACP1oF,KAAK8wgB,cAAgB,KACrB9wgB,KAAK2qH,OACP,CAAE,MAAO7S,IACPpvB,GAAO,EACT,CACF,I,SC7EJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,oCFUA,IACE1/E,KAAY,uBACZ82D,WAAY,CACVu7a,eAAc,GACdF,SAAQ,KACRi2B,UAAS,GACTl2B,cAAa,KACbluY,kBAAiBA,GAAAA,GAEnBjwB,OAAQ,CAACu+Z,GAAAA,GAET73e,MAAO,CACL4tgB,8BAA+B,CAC7Bz8f,KAASxU,OACT41B,QAASA,IAAM,MAGjBs7e,gCAAiC,CAC/B18f,KAASxU,OACT41B,QAASA,IAAM,OAInB,WAAM+pF,GACJ,MAAM3/E,EAAUpgC,KAAKk+D,OAAOhtD,QAAQ,gBAAgBm8B,EAAAA,IAEpDrtC,KAAKuxgB,6BAA+BvxgB,KAAKk+D,OAAOhtD,QAAQ,GAAIkvB,eAAsByyB,EAAAA,GAAI0E,gBACtFv3D,KAAK2lC,OAAS3lC,KAAKk+D,OAAOhtD,QAAQ,GAAIkvB,eAAsBiN,EAAAA,IAC5DrtC,KAAK8vgB,cAAgB9vgB,KAAKk+D,OAAOhtD,QAAQ,wBAAwBqgB,EAAAA,GAAW+3B,SAEtEtpD,KAAK2lC,eAOL3lC,KAAKu9S,WAAWlwQ,EAAAA,IACtBrtC,KAAKkrC,eAAiBlrC,KAAKk+D,OAAOpjC,SAAS,qBAAsB,CAAElmB,KAAM2c,EAAAA,GAAW+3B,QAAS7kB,IAAK,CAAE0mF,OAAO,KAC7G,EAEA3qG,IAAAA,GACE,MAAO,CACL0uE,cAA8B,CAAC7hD,EAAAA,IAC/B+hD,mBAA8B,EAC9Bmib,6BAA8B,KAC9B5re,OAA8B,KAC9BuF,SAA8B,GAC9B4ke,cAA8B,KAC9Bp1B,cAA8B7md,GAAAA,GAAe8nd,MAC7ChB,kBAA8Bvld,GAAAA,GAAcwmd,cAC5Crqd,WAAU,KACVukR,cAAa,KACb07N,6BAA8B,CAC5BxogB,KAAQ,oCACRxH,OAAQ,CACNqwB,QAAU7xB,KAAKk+D,OAAOhtD,QAAQ,kBAAkBlI,KAChDmoB,SAAUI,EAAAA,GAAW+3B,UAI7B,EAEAnyB,SAAU,KACLqpC,EAAAA,EAAAA,IAAW,CAAC,iBAAkB,mBACjC13B,UAAAA,GACE,MAAM1I,EAAUpgC,KAAKk+D,OAAOhtD,QAAQ,gBAAgBm8B,EAAAA,IAEpD,OAAOrtC,KAAKk+D,OAAOhtD,QAAQ,GAAIkvB,SAAgBiN,EAAAA,GACjD,EACA6vC,OAAAA,GACE,SAAQl9E,KAAKmxG,gBAAkBnxG,KAAK8oC,WAAWhoC,SAAiBd,KAAKm/G,YAAYxxC,OACnF,EACAqhB,+BAAAA,GACE,OAAOhvF,KAAKyoC,YAAYha,oBAAoBF,OAC9C,EACA4hf,oBAAAA,GACE,OAAQnwgB,KAAK2lC,QAAQ+qD,mBAAqB,IAAIl8E,SAAS,OACzD,EACA48F,WAAAA,GACE,OAAOpxG,KAAKk+D,OAAOhtD,QAAQ,kBAAkBkvB,UAAY4pS,GAAAA,CAC3D,EACApjS,OAAAA,GACE,MAAMA,EAAU,CACd2kQ,GAAAA,GACAqB,GAAAA,IAGF,GAA6B,SAAzB5sS,KAAKyxgB,gBAA4B,CACnC,MAAMC,EAAgB,CACpB1ogB,KAAO,UACPkrB,MAAOl0B,KAAKsM,EAAE,wBACd/L,MAAO,sBACP0rC,KAAO,CAAC,kBAAmB,aAG7BrF,EAAQz9B,KAAKuogB,EACf,CAQA,OANI1xgB,KAAKoxG,aAAepxG,KAAKuxgB,8BAC3B3qe,EAAQz9B,KAAKklS,GAAAA,IAGfznQ,EAAQz9B,KAAKisF,GAAAA,GAENxuD,CACT,EACA+qe,wBAAAA,GACE,MAAMvqe,EAAMpnC,KAAKqxF,KACd7uF,KAAK6/C,GAAQA,EAAItiB,YACjBvzB,QAAQ7J,GAAOA,IAElB,OAAO6pC,EAAAA,GAAAA,IAAKpF,EACd,EACAwqe,eAAAA,GACE,MAAMjoN,EAAY3pT,KAAKmxG,eAAexuG,GAIhCkvgB,EAAwB7xgB,KAAKk+D,OAAOhtD,QAAQ,kBAAkBqgB,EAAAA,GAAW+3B,SAE/E,GAAItpD,KAAKmgC,gBAAgB4wV,uBAAyB/wX,KAAKmgC,gBAAgBC,SAAWpgC,KAAKk+D,OAAOhtD,QAAQ,GAAIlR,KAAKmgC,eAAeC,yBAC5H,OAAOpgC,KAAKk+D,OAAOhtD,QAAQ,GAAIlR,KAAKmgC,eAAeC,yBAGrD,MAAM0xe,EAAqBD,EAAsBrlgB,QAAQk3T,GAAYA,EAAQ1pS,KAAKyG,cAAgBkpR,IAElG,OAAOmoN,CACT,EACAtB,yBAAAA,GACE,OAAOxwgB,KAAK+xgB,eAAevlgB,QAAQk3T,IACzB1jU,KAAK2xgB,yBAAyB95e,MAAMjc,GAAS8nT,GAAS/gU,IAAIwM,SAAS,IAAKyM,QAEpF,EAEAo2f,sBAAAA,GACE,MAAMC,EAAWjygB,KAAKwwgB,0BAA0BhugB,KAAKkhU,IAC5C,CACL1R,aAAkB,0CAAoD0R,EAAQ/gU,KAC9EuvgB,QAAkB,EAClBn0a,WAAkB2lO,EAAQ/gU,GAC1B0uG,YAAkBqyN,EAAQ1pS,MAAMkwF,YAChCw5M,UACA/sO,iBAAkB,OAWtB,OAPI32F,KAAKmygB,2BACPF,EAAS9ogB,KAAM,CACb6oT,aAAchyT,KAAKsM,EAAE,0CACrByxF,WAAc,eAIX,IAAI/9F,KAAKqxF,QAAS4gb,EAC3B,EACArC,qBAAAA,GACE,OAAO5vgB,KAAKqxgB,+BAAiCrxgB,KAAKwxgB,4BACpD,EACAC,iBAAiB37a,EAAAA,EAAAA,IAAQC,EAAAA,IACzBq8a,sBAAAA,GACE,OAAOpygB,KAAKk+D,OAAOhtD,QAAQ,yBAC7B,EACAmhgB,oBAAAA,GACE,MAAMN,EAAiB,CAAC,EAExB,IAAK,MAAMvlgB,KAAUxM,KAAKoygB,uBAAwB,CAChD,MAAOx9f,EAAMjS,GAAM6J,EAAOZ,MAAM,MAAO,GAE1B,YAATgJ,IACFm9f,EAAepvgB,IAAM,EAEzB,CAEA,OAAOovgB,CACT,EACAA,cAAAA,GACE,MAAMt3N,EAAmBz6S,KAAKk+D,OAAOhtD,QAAQ,0BAE7C,OAAIupS,EAAiBjmS,SAAS8jW,GAAAA,KAAmF,IAAlDl4W,OAAO8C,KAAKlD,KAAKqygB,sBAAsBvxgB,OAG7F,GAKJd,KAAKsygB,+CAKHtygB,KAAK4xgB,gBAAgBplgB,QAAQ+lgB,IAClC,MAAMxye,EAAYwye,EAAY5vgB,GAAGiJ,MAAM,KAAK,GAE5C,QAAS5L,KAAKqygB,qBAAqBtye,EAAU,IAPtC//B,KAAK4xgB,eAShB,EACAY,gBAAAA,GAEE,MAAMA,EAAmBxygB,KAAKk+D,OAAOhtD,QAAQ,gBAE7C,OAAOlR,KAAK8oC,WAAWt8B,QAAQimgB,KACpBD,EAAiBC,EAAcn5e,SAAStwB,OAErD,EACAsoF,YAAAA,GACE,MAAgC,SAAzBtxF,KAAKyxgB,gBAA6BzxgB,KAAKqxF,KAAOrxF,KAAKgygB,sBAC5D,EACA3gb,IAAAA,GACE,IAAIqhb,EAEJ,IACEA,EAAQ1ygB,KAAKk+D,OAAOhtD,QAAQ,aAAa2qS,EAAAA,GAC3C,CAAE,MACA62N,EAAQ1ygB,KAAKk+D,OAAOhtD,QAAQ,aAAak2V,EAAAA,GAC3C,CAEA,OAAIsrK,EAIK1ygB,KAAKwygB,iBAGPxygB,KAAKwygB,iBAAiBhmgB,QAAQ+sB,IACnC,MAAM2iW,EAA2Bl8X,KAAKk+D,OAAOhtD,QAAQ,oBAAoBsD,SAAS+kB,EAAUD,SAAStwB,MAC/F2pgB,EAAWp5e,EAAUmG,UAAYnG,EAAUmhT,gBAAkBwhD,EAEnE,OAAOl8X,KAAKmgC,gBAAgBs1D,sBAAuBk9a,CAAe,GAEtE,EAEAxoZ,2BAAAA,GACE,OAAOnqH,KAAKmxG,eAAeqZ,SAC7B,EAEA2nZ,yBAAAA,GACE,IAAKnygB,KAAKmqH,4BACR,OAAO,EAGT,MAAMyoZ,GAAiC5ygB,KAAKqxF,KAAKh6D,MAAMgrB,IAASA,EAAIqhR,UAI9DmvM,EAAsB7ygB,KAAKsygB,+CAEjC,OAAQO,GAAuBD,CACjC,EAEAxC,eAAAA,GACE,OAAOpwgB,KAAKk+D,OAAOhtD,QAAQ,UAAU,yCACvC,EACA6+f,kBAAAA,GACE,MAAgC,cAAzB/vgB,KAAKyxgB,eACd,GAEFz5e,QAAS,CAIPu4e,aAAAA,CAAclud,GACZ,MAAMywd,EAAazwd,EAAI84R,uBACjBv3T,EAAOxjB,OAAO47D,OAAO82c,GACxB7me,OACAzpC,KAAKyqF,GAAS,OAAQA,WAAc/gF,KAAK,IACtCojC,EAAQ,MAAOtvC,KAAKsM,EAAE,qCAE5B,MAAO,GAAIgjC,4BAAkC1rB,QAC/C,EAEA0uf,4CAAAA,GACE,MAAMS,EAAgB/ygB,KAAKk+D,OAAOhtD,QAAQ,oBAE1C,IAAK,IAAIxN,EAAI,EAAGA,EAAIqvgB,EAAcjygB,OAAQ4C,IAAK,CAC7C,MAAM8I,EAASumgB,EAAcrvgB,GACvBsvgB,EAAaxmgB,EAAOZ,MAAM,OAAO,GAEvC,GAAmB,OAAfongB,GAAsC,YAAfA,EACzB,OAAO,CAEX,CAEA,OAAO,CACT,EACAvC,QAAAA,CAAS/sM,GACP,MAAO,YAAaA,EAAQ/gU,IAC9B,EACAktgB,uBAAAA,CAAwBh1d,GACtB,MAAM6oR,EAAU7oR,EAAMw2C,KAAK,GAAGqyO,QAExBrlC,EAAWr+R,KAAKsxgB,gCAAkC,IAAKtxgB,KAAKsxgB,iCAAoC,CACpGtogB,KAAQ,oCACRxH,OAAQ,CACNqwB,QAAU7xB,KAAKk+D,OAAOhtD,QAAQ,kBAAkBlI,KAChDmoB,SAAUkc,EAAAA,KAMd,OAFAgxP,EAASrsQ,MAAQ,CAAE,CAAC07Q,GAAAA,IAAag2B,GAASpqS,SAAStwB,MAE5Cq1R,CACT,EAEA2xO,+BAAAA,GACE,MAAM3xO,EAAWr+R,KAAKsxgB,gCAAkC,IAAKtxgB,KAAKsxgB,iCAAoC,CACpGtogB,KAAQ,oCACRxH,OAAQ,CACNqwB,QAAU7xB,KAAKk+D,OAAOhtD,QAAQ,mBAAmBlI,KACjDmoB,SAAUkc,EAAAA,KAMd,OAFAgxP,EAASrsQ,MAAQ,CAAE,CAAC27Q,GAAAA,KAAY,GAEzBtP,CACT,EAEAiyO,iBAAAA,CAAkB/ugB,EAAOs5C,GACvB,MAAM6oR,EAAU7oR,EAAMw2C,KAAK,GAAGqyO,QAE9B1jU,KAAKk+D,OAAO+C,OAAO,mBAAoB,CACrC1xC,UAAW,CAACm0S,GACZtiQ,KAAW7/D,EAAMf,QAErB,EACA6vgB,uBAAAA,CAAwBx1d,GACtB,MAAM6oR,EAAU7oR,EAAMw2C,KAAK,GAAGqyO,QAE9B,QAASA,CACX,EACAwsM,YAAAA,CAAar1d,GACX,MAAMwH,EAAMxH,EAAMw2C,KAAK,GAEvB,OAAIhvC,EAAI6vd,OACCx8V,KAAAA,SACL11K,KAAKsM,EAAE,mCAAoC,CAAEtD,KAAMq5C,EAAIqhR,SAASryN,cAAe,GAC/E,CAAEwmE,aAAc,CAAC,UAIdx1H,EAAI2vQ,YACb,EAEAi+M,kBAAAA,CAAmBp1d,GACjB,MAAM6oR,EAAU7oR,EAAMw2C,KAAK,GAAGqyO,QAE9B,OAAOA,GAAS1hR,WAClB,EAEA80C,cAAAA,GACE92F,KAAKo4B,MAAMzO,MAAMmtE,gBACnB,EAEA5C,gBAAAA,GAKE,MAAMhhF,GAAOsgF,EAAAA,GAAAA,GAA6BxzF,KAAK2lC,OAAQ3lC,KAAKk+D,QAE5D,OAAOhrD,GAAQlT,KAAKmygB,0BAA4B,QAAU,GAC5D,I,iBGtXJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UJLA,IACEryc,WAAY,CAAEmzc,2BAA0BA,IACxCzyf,IAAAA,GACE,MAAO,CACLovf,sBAAuB,CACrB5mgB,KAAQ,GAAIkxX,EAAAA,+BACZ14X,OAAQ,CACNqwB,QAAUqoW,EAAAA,GACV5qW,QAAUtvB,KAAKk+D,OAAOhtD,QAAQ,mBAAmBvO,GACjDwuB,SAAUI,EAAAA,GAAW+3B,UAGzBumd,wBAAyB,CACvB7mgB,KAAQ,GAAIkxX,EAAAA,+BACZ14X,OAAQ,CACNqwB,QAAUqoW,EAAAA,GACV/oW,SAAUkc,EAAAA,KAIlB,GKpBF,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,UC6NYW,MAAM,U,IACPA,MAAM,S,IACJA,MAAM,iB,IAMRA,MAAM,qB,IACJA,MAAM,W,2NAVjBD,EAAAA,EAAAA,oBA+DM,aA9DJoB,EAAAA,EAAAA,oBA6BS,SA7BTP,GA6BS,EA5BPO,EAAAA,EAAAA,oBAMM,MANNN,GAMM,EALJM,EAAAA,EAAAA,oBAIM,MAJNL,GAIM,EAHJK,EAAAA,EAAAA,oBAEK,WAAAb,EAAAA,EAAAA,iBADAT,EAAAqle,SAAO,QAIhB/je,EAAAA,EAAAA,oBAoBM,MApBNJ,GAoBM,EAnBJI,EAAAA,EAAAA,oBAkBM,MAlBNm0C,GAkBM,CAhBI11C,EAAA+xc,aAAe9xc,EAAA3b,OAAS0b,EAAAw0E,OAAI,kBADpCvoD,EAAAA,EAAAA,aAKEw5B,EAAA,CAnPZvvF,IAAA,EAgPavD,MAAOstC,EAAAmpS,YACPlkU,QAAS86B,EAAA+xc,YACT,iBAAc9xc,EAAAsle,wB,+CAlP3B/ke,EAAAA,EAAAA,oBAAA,OAsPkBP,EAAA3b,OAAS0b,EAAAw0E,OAAI,kBADrBr0E,EAAAA,EAAAA,oBASS,UA9PnBjqC,IAAA,EAuPYkrC,IAAI,UACJ,gBAAc,OACdp6B,KAAK,SACLo5B,MAAM,gCACLyB,QAAKxhC,EAAA,KAAAA,EAAA,OAAApG,IAAEgmC,EAAAule,+BAAAvle,EAAAule,iCAAAvrgB,K,cAERsnC,EAAAA,EAAAA,oBAA+B,KAA5BnB,MAAM,qBAAmB,kBA7PxCI,EAAAA,EAAAA,oBAAA,aAmQYP,EAAAmpS,cAAgBppS,EAAAnL,MAAQmL,EAAAyle,6BAA0B,kBAD1Dx5c,EAAAA,EAAAA,aAYE6rB,EAAA,CA9QN5hF,IAAA,EAoQMkrC,IAAI,eACHzuC,MAAOqtC,EAAAyle,2BACPnhf,KAAM2b,EAAA3b,KACN,wBAAuB,KACvBuQ,KAAMoL,EAAA+3C,aACN,gBAAe/3C,EAAA3b,OAAS0b,EAAA0le,KACxB,aAAYvsd,KAAK0F,UAAU5e,EAAA0le,yBAAyB3le,EAAAspS,eACpD,gBAAetpS,EAAA4le,8BACf,cAAa5le,EAAAyle,2BAA2Brtb,WACxClC,QAAK71E,EAAA,KAAAA,EAAA,GAAElL,GAAG0qC,EAAA1V,MAAM,QAASh1B,K,6FA7QhCqrC,EAAAA,EAAAA,oBAAA,OAgRaP,EAAAmpS,cAAgBppS,EAAA/J,QAAUgK,EAAAmpS,cAAgBppS,EAAAjsC,SAAWisC,EAAAyle,4BAhRlEjle,EAAAA,EAAAA,oBAAA,SAgR4F,kBADxFyrB,EAAAA,EAAAA,aAOE45c,EAAA,CAtRN3vgB,IAAA,EAiROvD,MAAOqtC,EAAA8le,cACPxhf,KAAM2b,EAAA3b,KACN,yBAAwB0b,EAAA+le,qBACxB,+BAA8B/le,EAAAyle,2BAC9B,gBAAexle,EAAA+le,c,mGAElBzxc,EAAAA,EAAAA,aAUE0xc,EAAA,CATC,iBAAgBhme,EAAAime,gBAChBj7c,KAAMjrB,EAAAmme,yBACN,6BAA2B,EAC3B,wBAAuBnme,EAAAome,wBACvB,sBAAqBpme,EAAAqme,sBACrBvyb,QAAKzzE,EAAA,KAAAA,EAAA,GAAAurD,GAAE5rB,EAAAmme,0BAA2B,GAClCG,WAAUrme,EAAA2oD,SACV29a,eAActme,EAAAq6T,aACdksK,eAAcvme,EAAA2pT,c,2JCHZxpT,MAAM,a,IACJA,MAAM,c,IAuBJA,MAAM,2C,GArTnB,Y,IA6TiBA,MAAM,Q,IACJA,MAAM,Q,GA9TzB,Q,IAiUkBA,MAAM,c,IAjUxBlqC,IAAA,EAuUckqC,MAAM,S,IAvUpBlqC,IAAA,G,8TA+QE+1D,EAAAA,EAAAA,aAiGcmzc,EAAA,CAhGZh/d,MAAM,WACL,aAAYN,EAAA2le,2BAA2BhlN,gBACvCn8R,KAAMwb,EAAAxb,KACNf,SAAUuc,EAAA2le,2BACVxxb,SAAU,GACV,YAAU,EACVP,OAAQ7zC,EAAA6zC,OACR,gBAAc,EACd,oBAAmB7zC,EAAA4sQ,cACnBv2N,QAAK71E,EAAA,KAAAA,EAAA,GAAElL,GAAG0qC,EAAA6zC,OAASv+E,GACnBkqgB,SAAQv/d,EAAAkme,aACR1G,SAAQr/d,EAAAwme,qB,CA3Rbr+e,SAAAssC,EAAAA,EAAAA,UA6RI,IAYM,EAZNnzB,EAAAA,EAAAA,oBAYM,MAZNP,GAYM,EAXJO,EAAAA,EAAAA,oBAUM,MAVNN,GAUM,EATJszB,EAAAA,EAAAA,aAQEo2C,EAAA,CAPQh4G,MAAOmtC,EAAAntC,MAAMyI,KAhS/B,iBAAAiF,EAAA,KAAAA,EAAA,GAAAurD,GAgSyB9rB,EAAAntC,MAAMyI,KAAIwwD,GACxB,cAAa3rB,EAAAyme,qBACbpgf,MAAOuZ,EAAAnhC,EAAE,gBACT+pB,UAAU,EACVnE,KAAMwb,EAAAxb,KACNwE,MAAO+W,EAAAorQ,wBAAwB,QAChC,cAAY,+B,4DAIlB12O,EAAAA,EAAAA,aAqESmsc,EAAA,CApEPt/d,IAAI,SACH,aAAW,EACZ,cAAY,WACXule,UAAS1me,EAAA2me,Y,CA9ShBx+e,SAAAssC,EAAAA,EAAAA,UAgTM,IA6BM,EA7BNH,EAAAA,EAAAA,aA6BMywC,EAAA,CA5BH1+E,MAAOuZ,EAAAnhC,EAAE,oBACTg3F,OAAQ11D,EAAAoqS,cAAcl3U,OACvBkI,KAAK,Y,CAnTbgtB,SAAAssC,EAAAA,EAAAA,UAqTQ,IAuBM,EAvBNnzB,EAAAA,EAAAA,oBAuBM,MAvBNL,GAuBM,uBAtBJf,EAAAA,EAAAA,oBAqBMmrB,EAAAA,SAAA,MA3UhBC,EAAAA,EAAAA,YAuTwCvrB,EAAAoqS,eAvTxC,CAuToBy8L,EAAc/wgB,M,kBADxBqqC,EAAAA,EAAAA,oBAqBM,OAnBHjqC,IAAKJ,EACNsqC,MAAM,uBACN,oBAAkB,kBACjByB,QAAK+pB,GAAE3rB,EAAA6me,WAAWD,I,EAEnBtle,EAAAA,EAAAA,oBAOM,MAPNm0C,GAOM,EANJn0C,EAAAA,EAAAA,oBAEM,MAFN8yC,GAEM,EADJ9yC,EAAAA,EAAAA,oBAA8B,OAAxB3lB,IAAKirf,EAAaxqM,M,OA/TxC/nP,OAiUc/yC,EAAAA,EAAAA,oBAEK,KAFLizC,GAEK,EADHjgB,EAAAA,EAAAA,aAA6B4b,EAAA,CAAzBvjE,EAAGi6f,EAAavgf,O,kBAIM,WAAtBugf,EAAazrgB,OAAI,kBADzB+kC,EAAAA,EAAAA,oBAKM,MALNs0C,IAKM/zC,EAAAA,EAAAA,iBADDT,EAAA8me,SAASF,IAAY,KAzUtCrme,EAAAA,EAAAA,oBAAA,UAAAW,O,WAAA8V,EAAA,G,4CA8UM9W,EAAAA,EAAAA,oBAgCMmrB,EAAAA,SAAA,MA9WZC,EAAAA,EAAAA,YA+UoCvrB,EAAAoqS,eA/UpC,CA+UgBy8L,EAAc/wgB,M,kBADxBm2D,EAAAA,EAAAA,aAgCM+4C,EAAA,CA9BH9uG,IAAKJ,EACLwwB,MAAOuZ,EAAAnhC,EAAEmogB,EAAavgf,OACtBlrB,KAAMyrgB,EAAazrgB,KACnBs6F,OAAQ11D,EAAAoqS,cAAcl3U,OAAS4C,G,CAnVxCsyB,SAAAssC,EAAAA,EAAAA,UAuC6wQ,IAAyM,CA+Sh7Q,WAAtBmyc,EAAazrgB,OAAI,kBADzB6wD,EAAAA,EAAAA,aAMEk9B,EAAA,CA3VVjzF,IAAA,EAAAg7F,SAAA,EAuVU9vD,IAAI,eACIzuC,MAAOktC,EAAAmne,WAxVzB,iBAAA3mgB,EAAA,KAAAA,EAAA,GAAAurD,GAwVyB/rB,EAAAmne,WAAUp7c,GACxB87C,WAAW,EACX,cAAaznE,EAAAopD,Y,qDAEhBlpD,EAAAA,EAAAA,oBAiBM,MA7Wdw0C,GAAA,EA6VUpgB,EAAAA,EAAAA,aAemB0yc,EAAA,CAdTt0gB,MAAOmtC,EAAAntC,MAAMk0gB,EAAa3wgB,KA9V9C,iBAAA01D,GA8V2B9rB,EAAAntC,MAAMk0gB,EAAa3wgB,KAAG01D,EACrCxrB,MAAM,iBACL9b,KAAMwb,EAAAxb,KACN,oBAAmB,CAAC,EACpB,YAAWub,EAAAnhC,EAAE,+BAAgC,CAAjCsI,KAAyC64B,EAAAnhC,EAAEmogB,EAAavgf,U,CAE1D8B,SAAOssC,EAAAA,EAAAA,UAMd7+D,GANqB,qBACvBo2D,EAAAA,EAAAA,cAKEonB,EAAAA,EAAAA,yBAJKpzC,EAAAine,aAAaL,EAAazrgB,OAAI,CAClCzI,MAAOkD,EAAM4+C,IAAI9hD,MACjB2xB,KAAMwb,EAAAxb,KACNqH,UAAWsU,EAAAkne,6B,yCAzW5Blwd,EAAA,G,0DAAAA,EAAA,G,4CAAAA,EAAA,G,oBAAAA,EAAA,G,yLAkBO,MAAM2yR,GAAkB,CAC7B,CACExuU,KAAO,QACPkrB,MAAO,iCACPob,MAAO,iCACPmZ,KAAO,gCACP3kD,IAAO,eACPmmU,KAAOrqU,EAAQ,QAEjB,CACEoJ,KAAO,QACPkrB,MAAO,iCACPob,MAAO,iCACPxrC,IAAO,eACPmmU,KAAOrqU,EAAQ,QAEjB,CACEoJ,KAAO,YACPkrB,MAAO,qCACPob,MAAO,qCACPmZ,KAAO,oCACP3kD,IAAO,mBACPmmU,KAAOrqU,EAAQ,QAEjB,CACEoJ,KAAO,WACPkrB,MAAO,oCACPob,MAAO,oCACPxrC,IAAO,kBACPmmU,KAAOrqU,EAAQ,QAEjB,CACEoJ,KAAO,UACPkrB,MAAO,mCACPob,MAAO,mCACPxrC,IAAO,iBACPmmU,KAAOrqU,EAAQ,QAEjB,CACEoJ,KAAO,SACPkrB,MAAO,kCACPob,MAAO,kCACPmZ,KAAO,iCACP3kD,IAAO,iBACPmmU,KAAOrqU,EAAQ,SAInB,QACEkgE,WAAY,CACVk1c,iBAAgB,KAChBjsb,OAAM,KACNksb,eAAc,KACdlH,YAAW,KACXh1Z,aAAY,KACZ/vB,QAAO,KACP0lb,OAAM,KACNtub,IAAG,KACH2X,WAAUA,GAAAA,GAGZt0F,MAAO,CAELlD,MAAO,CACLqU,KAASxU,OACT41B,QAASA,KACA,CAAC,IAGZ9D,KAAM,CACJtd,KAASvQ,OACT2xB,QAAS,IAEXq9e,2BAA4B,CAC1Bz+f,KAAUxU,OACVi2B,UAAU,GAEZs9e,qBAAsB,CACpB/+f,KAAUvQ,OACVgyB,UAAU,GAEZu9e,aAAc,CACZh/f,KAAUnG,SACV4nB,UAAU,IAId0mD,OAAQ,CAACmvb,GAAAA,EAAgBgJ,GAAAA,GAEzBp/e,cAAc,EAEd,WAAMiqF,GAQJ,MAAM,eAAEuuP,SAAyBD,EAAAA,GAAAA,IAA6BruW,KAAKk+D,QAEnE,IAAKowS,EACH,MAAM,IAAItrW,MAAM,wGAGlB,MAAMmygB,EAAiB/0gB,OAAO8C,KAAKorW,EAAenrU,gBAC5C4oB,EAAS,CAAC,EAEhB3rD,OAAO8C,KAAKlD,KAAKO,OAAOqI,SAAS9E,IAC1BqxgB,EAAe3ggB,SAAS1Q,KAC3BioD,EAAOjoD,GAAO9D,KAAKO,MAAMuD,GAC3B,IAGF,IAAI8wgB,EAAapre,KAAAA,KAAYuiB,GAEH,OAAtB6od,EAAW1wf,SACb0wf,EAAa,IAGf50gB,KAAKm1gB,eAAiBA,EACtBn1gB,KAAK40gB,WAAaA,CACpB,EAEAp0f,IAAAA,CAAK/c,GACH,MAAM2xgB,EAAkB,CAAC,EACnBljf,EAAOlyB,KAAK2xB,OAAOK,MAAME,KAQ/B,OANIA,IAASK,GAAAA,IACXilT,GAAgB5uU,SAAS6rgB,IACvBW,EAAgBX,EAAa3wgB,KAAOsxgB,EAAgBX,EAAa3wgB,MAAQ,EAAE,IAIxE,CACLmJ,OAAgBslB,GAAAA,GAChB+lE,aAAY,KACZ+8a,WAAgB,EAChBr9L,cAAgBR,GAChBp1N,KAAgBprF,GAAAA,GAChBs+e,UAAgB,GAChB98N,eAAgB,CACd,CAAExlR,KAAM,OAAQ0D,MAAO,CAAC,WAAY,mBAEtC+hR,0BAA2B,CAAC,SAEhC,EAEA14P,OAAAA,GACM//C,KAAKkyB,OAASlyB,KAAKiN,SAChBjN,KAAKqzgB,2BAA2Br5e,KAAKo8S,YACxCp2U,KAAKqzgB,2BAA2Br5e,KAAKo8S,UAAY,IAEnDp2U,KAAKqzgB,2BAA2Br5e,KAAKo8S,UAAUjtU,KAAKnJ,KAAKO,OAE7D,EAEA42B,SAAU,CACR8/D,UAAAA,GACE,OAAKj3F,KAAK2xB,OAAOK,MAAME,OAAS8E,GAAAA,GACvBshE,GAAAA,EAAaC,UAGfD,GAAAA,EAAaG,SACtB,EACAs8a,2BAAAA,GACE,OAAO/0gB,KAAKqzgB,4BAA4B/5e,UAAUC,WAAa,EACjE,EACA+6e,oBAAAA,GACE,OAAOt0gB,KAAK2xB,OAAOK,MAAME,OAAS8E,GAAAA,EACpC,EACAwiR,YAAAA,GACE,MAAO,CACL+7N,cAAeA,KACb,MAAMC,EAAiBx1gB,KAAKqzgB,2BAA2Br5e,KAAKo8S,UACtDq/L,EAAqBD,EAAehzgB,KAAK69K,GAAMA,EAAEr3K,OACjD0sgB,EAAe,IAAI15f,IAAIy5f,GAE7B,GAAID,EAAe10gB,SAAW40gB,EAAap7f,KACzC,OAAOta,KAAKk+D,OAAOhtD,QAAQ,UAAU,wDAAyD,CAAElI,KAAMhJ,KAAKO,MAAMyI,MACnH,EAGN,GAGF43D,MAAO,CACLg0c,UAAAA,CAAWr0gB,GACT,IAEEH,OAAO8C,KAAKlD,KAAKO,OAAOqI,SAAS9E,IAC1B9D,KAAKm1gB,eAAe3ggB,SAAS1Q,WACzB9D,KAAKO,MAAMuD,EACpB,IAGF,MAAMioD,EAASviB,KAAAA,KAAYjpC,GAE3BH,OAAOC,OAAOL,KAAKO,MAAOwrD,GAC1B/rD,KAAKs1gB,UAAY,EACnB,CAAE,MAAOx9Z,IACP93G,KAAKs1gB,UAAY,kDAAmDx9Z,IACtE,CACF,GAGF9/E,QAAS,CACP88e,YAAAA,CAAa9rgB,GACX,OAAOpJ,EAAAA,MAAAA,CAAQ,KAAYoJ,KAASgtB,OACtC,EAEA0+e,UAAAA,CAAWD,GACTz0gB,KAAKo4B,MAAMu9e,OAAOt9e,OAAOo8e,EAAazrgB,KACxC,EAEA2rgB,QAAAA,CAASF,GACP,MAAMxyf,EAAQjiB,KAAKO,QAAQk0gB,EAAa3wgB,MAAQ,GAEhD,OAAOme,EAAMnhB,MACf,EAEA0zgB,UAAAA,EAAW,IAAEria,IACXlwG,OAAOgnE,UAAY,EACD,WAAbkpC,EAAInpG,MACPhJ,KAAKk4B,WAAU,KACRl4B,KAAKo4B,MAAMw9e,eACd51gB,KAAKo4B,MAAMw9e,aAAa,GAAGh1b,UAC3B5gF,KAAKo4B,MAAMw9e,aAAa,GAAG36d,QAC7B,GAGN,EAEAo5d,mBAAAA,GACEr0gB,KAAKkrF,QAAQ/hF,KAAKnJ,KAAKqzgB,2BAA2BhlN,gBACpD,EAEAwnN,gBAAAA,CAAiBpB,GACf,OAAOA,EAAaqB,WAAWtzgB,KACjC,EAEAy5e,QAAAA,CAAS10e,GAILvH,KAAKshF,OAHF/5E,EAGW,CAACA,GAFD,EAIlB,I,SClQJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,UFKA,IACEyB,KAAY,uCACZ82D,WAAY,CACVi2c,WAAU,KACVpib,YAAW,KACXqib,eAAc,GACdpsb,aAAYA,GAAAA,GAGd,WAAMm2B,GACJ,MAAM3/E,EAAUpgC,KAAKk+D,OAAOhtD,QAAQ,kBAAkBkvB,QAEtDpgC,KAAKk3U,aAAel3U,KAAK2xB,OAAOK,MAAMklT,aAEtC,MAAMy8L,EAAuB3zgB,KAAK2xB,OAAOnwB,OAAOu1U,qBAC1Ck/L,QAA2Cj2gB,KAAKk+D,OAAOpjC,SAAS,GAAIsF,SAAiB,CAAExrB,KAAM+7R,EAAAA,GAAW15O,mBAAoBt0D,GAAIgxgB,IAChIN,QAAmCrzgB,KAAKk+D,OAAOpjC,SAAS,GAAIsF,UAAkB,CAAEjP,SAAU8kf,IAC1F/jf,EAAOlyB,KAAK2xB,OAAOK,MAAME,KAE/B,GAAIA,IAASK,GAAAA,GAAS,CACpB,MAAM2jf,GAAwB7C,EAA2Br5e,KAAKo8S,WAAa,IAAIv+S,MAAMs+e,GAC5EA,EAAantgB,OAAShJ,KAAKk3U,eAGhCg/L,IACFl2gB,KAAK0zgB,cAAgBwC,EAEzB,CAEAl2gB,KAAK2zgB,qBAAuBN,EAA2B1wgB,GACvD3C,KAAKqzgB,2BAA6BA,EAClCrzgB,KAAKwzgB,8BAAgCH,EAA2BhlN,eAClE,EAKA7tS,IAAAA,GACE,MAAO,CACLwzf,wBAA+B,KAC/BC,sBAA+B,KAC/BN,qBAA+B,GAC/BN,2BAA+B,KAC/BG,8BAA+B,KAC/B3ve,OAA+BzR,GAAAA,GAC/BnlB,OAA+BslB,GAAAA,GAC/B5wB,OAA+B0wB,GAAAA,GAC/Bihf,KAA+Brhf,GAAAA,GAC/B8hf,0BAA+B,EAC/B78L,aAA+B,GAC/Bw8L,cAA+B,CAAC,EAChCvtb,aAA+B,EAC/Bi8B,KAA+BprF,GAAAA,GAC/B2od,YAA+B,CAC7B,CACE1rd,SAAU,iCACV1zB,MAAU,UACT,CACD0zB,SAAU,+BACV1zB,MAAUiqF,GAAAA,KAGd/nD,KAAM+nD,GAAAA,GAEV,EAEArzD,SAAU,CACR6/S,WAAAA,GACE,OAAOh3U,KAAK2xB,OAAOK,MAAMglT,WAC3B,EACA88L,eAAAA,GACE,MAAMn9L,EAA4B32U,KAAKqzgB,4BAA4B18a,iBAEnE,OAAKggP,EAeE32U,KAAKqzgB,2BAA2B38L,mBAAmBC,GAdjD,EAeX,EACA/wP,YAAAA,GACE,MAAMz0D,EAAWnxB,KAAKqzgB,2BAEhBjze,EAAUpgC,KAAKk+D,OAAOhtD,QAAQ,gBAAgBigB,GAC9Co6D,EAAUvrF,KAAKk+D,OAAOhtD,QAAQ,GAAIkvB,SAAgBorD,EAAAA,IAClDC,GAAiBf,EAAAA,GAAAA,IAAMv5D,GAEvBtM,GAAMqwU,EAAAA,GAAAA,IAAW3pQ,EAASolN,EAAAA,GAAW15O,mBAAoBw0B,GAE/D,OAAO5mE,CACT,EACAqN,IAAAA,GAKE,OAAOlyB,KAAK2xB,OAAOK,MAAME,IAC3B,EACA+kE,UAAAA,GACE,OAAKj3F,KAAKkyB,OAASlyB,KAAKoiH,KACf9pB,GAAAA,EAAaC,UACVv4F,KAAKmmF,YACRmS,GAAAA,EAAaE,UAGfF,GAAAA,EAAaG,SACtB,EACAy6a,OAAAA,GACE,OAAQlzgB,KAAK2xB,OAAOK,MAAME,MAC1B,KAAKlyB,KAAKiN,OACR,OAAOjN,KAAKsM,EAAE,0DAChB,KAAKtM,KAAKszgB,KACR,OAAItzgB,KAAKg3U,cAAgBh3U,KAAKyiC,MAAQziC,KAAK2xB,OAAOK,MAAMG,KAAOnyB,KAAKyiC,KAG3DziC,KAAKsM,EAAE,4DAKTtM,KAAKsM,EAAE,wDAEhB,QACE,OAAOtM,KAAKsM,EAAE,0DAElB,GAGF0rB,QAAS,CAMP47e,YAAAA,CAAa/nb,GACX,GAAI7rF,KAAKqzgB,2BAA2BiC,UAMlC,OALAt1gB,KAAKqzgB,2BAA2B/xb,OAASthF,KAAKqzgB,2BAA2B/xb,QAAU,GACnFthF,KAAKqzgB,2BAA2B/xb,OAAOn4E,KAAKnJ,KAAKqzgB,2BAA2BiC,gBAE5Ezpb,GAAW,GAKb7rF,KAAKqzgB,2BAA2B14e,QAAQ95B,WACxCb,KAAKo2gB,oCACP,EACAjD,sBAAAA,CAAuB5xgB,GACjBA,IAAUvB,KAAKyiC,MACjBziC,KAAKkoW,aAAaloW,KAAKoiH,MAErB7gH,IAAUvB,KAAK6jC,QACjB7jC,KAAKw2F,SAASx2F,KAAKoiH,KAEvB,EACAi0Z,wBAAAA,GACEr2gB,KAAK+zgB,0BAA4B/zgB,KAAK+zgB,wBACxC,EACAX,6BAAAA,CAA8B7xgB,GAC5BvB,KAAKg0gB,wBAA0Bh0gB,KAAKo4B,MAAMzE,QAC1C3zB,KAAKi0gB,sBAAwB1ygB,EAC7BvB,KAAKq2gB,0BACP,EACA7/a,QAAAA,GAGEx2F,KAAKkrF,QAAQ/hF,KAAKnJ,KAAKqzgB,2BAA2Bh8L,2BAA2Br3U,KAAK0zgB,cAAc1qgB,KAAMipB,GAAAA,IACxG,EACAi2U,YAAAA,GAGEloW,KAAKkrF,QAAQ/hF,KAAKnJ,KAAKqzgB,2BAA2Bl8L,yBAAyBn3U,KAAK0zgB,cAAc1qgB,KAAMipB,GAAAA,IACtG,EACAulU,YAAAA,CAAa5gB,GAIX,MAAM0/L,EAAyB1/L,EAAW50Q,MAAMhwC,MAAMklT,aAGhDf,EAAoBn2U,KAAKqzgB,2BAA2Br5e,KAAKo8S,WAAa,GACtEmgM,EAA4BpgM,EAAkB3pU,QAAQ+zK,GACnDA,EAASv3K,OAASstgB,IAG3Bt2gB,KAAKqzgB,2BAA2Br5e,KAAKo8S,UAAYmgM,EAEjDv2gB,KAAKqzgB,2BAA2B14e,QAAQ95B,WACxCb,KAAKkrF,QAAQ/hF,KAAKnJ,KAAKqzgB,2BAA2BhlN,gBACpD,EACAklN,wBAAAA,CAAyBr8L,GACvB,OAAOl3U,KAAKqzgB,2BAA2Bp8L,sBAAsBC,EAC/D,EACAk/L,kCAAAA,GACE,MAAMp0c,EAAQhiE,KAAKqzgB,2BAA2BhlN,gBAE9CruT,KAAKkrF,QAAQ/hF,KAAK64D,EACpB,I,SGtNJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UCQOh0B,MAAM,kB,IACJA,MAAM,qB,IACHA,MAAM,e,IACLA,MAAM,Q,IAMNA,MAAM,W,IACJA,MAAM,e,IAIRA,MAAM,W,IAGNA,MAAM,W,sIAjBjBD,EAAAA,EAAAA,oBAsBM,MAtBNa,GAsBM,EArBJO,EAAAA,EAAAA,oBAoBM,MApBNN,GAoBM,EAnBJM,EAAAA,EAAAA,oBAkBO,OAlBPL,GAkBO,EAjBLK,EAAAA,EAAAA,oBAKM,MALNJ,GAKM,EAJJozB,EAAAA,EAAAA,aAGEgkX,EAAA,CAFA,YAAU,gBACVxxY,OAAO,UAGXxF,EAAAA,EAAAA,oBAIM,MAJNm0C,GAIM,EAHJn0C,EAAAA,EAAAA,oBAEM,MAFN8yC,IAEM3zC,EAAAA,EAAAA,iBADDb,EAAAnhC,EAAE,4BAAD,MAGR6iC,EAAAA,EAAAA,oBAEM,MAFN+yC,GAEM,uBADJ/yC,EAAAA,EAAAA,oBAA8E,yBAA3D1B,EAAAnhC,EAAE,4BAA6B,CAA9B8xY,cAAgCvwW,EAAAuwW,gBAAa,SAEnEjvW,EAAAA,EAAAA,oBAEM,MAFNizC,GAEM,uBADJjzC,EAAAA,EAAAA,oBAA2D,yBAAxC1B,EAAAnhC,EAAE,wBAAyB,CAAC,GAAG,a,CAhC5D,QACEwzD,WAAY,CAAEmnX,WAAUA,GAExB9vZ,SAAU,CACRinX,aAAAA,GACE,MAAMz2U,EAAU3nE,KAAKk+D,OAAOhtD,QAAQ,wCAA0C,GAE9E,OAAOy2D,EAAQhzD,QAAQ,IAAK,GAC9B,I,SCJJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UCUA,MAAM0hH,GAAS,CACb,CACEr0D,MAAO,CACLh5D,KAAW,GAAIgqD,EAAAA,sCACfhgC,KAAW,YACXoqD,UAAWo5b,IAEbric,OAAQ,SAEV,CACEnS,MAAO,CACLh5D,KAAW,GAAIgqD,EAAAA,2BACfhgC,KAAW,YACXoqD,UAAWo5b,IAEbric,OAAQ,SAEV,CACEnrE,KAAW,GAAIgqD,EAAAA,uBACfhgC,KAAW,+BACXoqD,UAAWq5b,IAEb,CACEz0c,MAAO,CACLh5D,KAAW,GAAIgqD,EAAAA,kCACfhgC,KAAW,2CACXoqD,UAAWs5b,IAEbvic,OAAQ,SAEV,CACEnS,MAAO,CACLh5D,KAAW,GAAIgqD,EAAAA,+BACfhgC,KAAW,wCACXoqD,UAAWu5b,IAEbxic,OAAQ,SAEV,CACEnrE,KAAW,GAAIgqD,EAAAA,6BACfhgC,KAAW,qCACXoqD,UAAWw5b,IAEb,CACE5tgB,KAAW,GAAIgqD,EAAAA,qBACfhgC,KAAW,6BACXoqD,UAAWy5b,IAEb,CACE7tgB,KAAW,GAAIgqD,EAAAA,gEACfhgC,KAAW,yEACXoqD,UAAW05b,IAEb,CACE9tgB,KAAW,GAAIgqD,EAAAA,uBACfhgC,KAAW,+BACXoqD,UAAW25b,IAEb,CACE/tgB,KAAW,GAAIgqD,EAAAA,eACfhgC,KAAW,uBACXoqD,UAAW45b,GACV,CACDhugB,KAAW,GAAIgqD,EAAAA,kCACfhgC,KAAW,0CACXoqD,UAAW65b,IACV,CACDjugB,KAAW,GAAIgqD,EAAAA,wBACfhgC,KAAW,iCACXoqD,UAAW85b,IACV,CACDlugB,KAAW,GAAIgqD,EAAAA,+BACfhgC,KAAW,wCACXoqD,UAAW+5b,IACV,CACDnugB,KAAW,GAAIgqD,EAAAA,2BACfhgC,KAAW,qCACXoqD,UAAWg6b,IACV,CACDpugB,KAAW,GAAIgqD,EAAAA,qCACfhgC,KAAW,gDACXoqD,UAAWi6b,KAKf,U,uBCpGA,MAAMzze,GAAQ,WACZ,MAAO,CACL0ze,eAAqB,GACrBhoZ,eAAqB,EACrBioZ,iBAAqB,EACrBC,iBAAqB,EACrBC,gBAAqB,GACrBC,oBAAqB,CAAC,EAE1B,EAEM75d,GAAY,CAChB85d,iBAAAA,CAAkB/ze,EAAOo+R,GACvBp+R,EAAM0ze,eAAiBt1M,CACzB,EAEA41M,gBAAAA,CAAiBh0e,EAAOrjC,GACtBqjC,EAAM0rF,cAAgB/uH,CACxB,EAEAs3gB,iBAAAA,CAAkBj0e,EAAOrjC,GACvBqjC,EAAM2ze,gBAAkBh3gB,CAC1B,EAEAu3gB,mBAAAA,CAAoBl0e,EAAOrjC,GACzBqjC,EAAM4ze,iBAAmBj3gB,CAC3B,EAEAw3gB,WAAAA,CAAYn0e,EAAOrjC,GACjBqjC,EAAM6ze,gBAAgBtugB,KAAK5I,EAC7B,EAEAitY,WAAAA,CAAY5pW,GAAO,KAAE56B,EAAI,QAAEvC,IACzBm9B,EAAM8ze,oBAAoB1ugB,GAAQvC,CACpC,EAEAuxgB,SAAAA,CAAUp0e,EAAOrjC,GACf,MAAM03gB,EAAWr0e,EAAM6ze,gBAAgBjrgB,QAAQoJ,GAAMA,IAAMrV,IAE3DqjC,EAAM,mBAAqBq0e,CAC7B,GAGI/mgB,GAAU,CACdgngB,WAAAA,CAAYt0e,GACV,OAAOA,EAAM0ze,cACf,EAEAa,eAAAA,CAAgBv0e,GACd,OAAOA,EAAM0rF,aACf,EAEA6B,iBAAAA,CAAkBvtF,GAChB,OAAOA,EAAM2ze,eACf,EAEAa,mBAAAA,CAAoBx0e,GAClB,OAAOA,EAAM4ze,gBACf,EAEAC,eAAAA,CAAgB7ze,GACd,OAAOA,EAAM6ze,eACf,EAEAC,mBAAAA,CAAoB9ze,GAClB,OAAQ56B,GAAS46B,EAAM8ze,oBAAoB1ugB,EAC7C,EAEAqvgB,iBAAkBA,CAACnpH,EAAQopH,EAAUC,EAAYj9e,IAAgB,KAC/D,MAAM8iX,EAAgB9iX,EAAY,kBAAkBu3B,EAAAA,GAAIhpC,QAAS,mBAAmBtpB,MAEpF,OAAOqrO,EAAAA,GAAAA,IAAWwyK,EAAc,EAGlCo6H,kBAAmBA,CAACtpH,EAAQopH,EAAUC,EAAYj9e,IAAgB,CAACm9e,EAAS9wc,KAC1E,MAAMy2U,EAAgBz2U,GAAWrsC,EAAY,kBAAkBu3B,EAAAA,GAAIhpC,QAAS,mBAAmBtpB,MAE/F,OAAO29Y,EAAAA,GAAAA,IAAeu6H,EAASr6H,EAAc,EAG/Cs6H,uBAAwBA,CAAC90e,EAAO1yB,EAASw1C,EAAWprB,IAAiBmI,IAGnE,GAAInI,EAAY,kBAAmB,CACjC,MAAMquR,EAAYruR,EAAY,aACxBq9e,EAAqB,iBAAkBhvN,KAAelmR,IAE5D,MAAO,GAAIk1e,GACb,CACE,OAAOl1e,CACT,GAIE9P,GAAU,CACd,oBAAMilf,EAAe,MACnBh1e,EAAK,SAAE9I,EAAQ,OAAEmmC,EAAM,YAAE3lC,IAEzB,MAAM0rB,EAAQkkV,KAAMjpY,OAAOkpY,QAAQnoT,MAE7BrgF,EAAKihC,EAAM0ze,eACjB,IAAIjmZ,QAAkBv2F,EACpB,iBACA,CAAElmB,KAAMi+C,EAAAA,GAAI2D,eAAgB7zD,MAC5B,CAAEnD,MAAM,IAEV,MAAM8M,EAAIgvB,EAAY,UAEtB,IAAI7rB,EAAQ,QAENwxD,EAAO,oBAAoB,GACjC,MAAMqD,EAAQ1e,aAAYvrB,UAexB,GAdA5qB,GAAgB,EACZA,EAAQ,IAAM,IAEhB4hH,QAAkBv2F,EAChB,iBACA,CACElmB,KAAMi+C,EAAAA,GAAI2D,eACV7zD,KACA8hC,IAAM,CAAE0mF,OAAO,IAEjB,CAAE3rH,MAAM,KAIkB,UAA1B6xH,EAAUi4Q,YAAyB,CACrCj4Q,EAAY/1F,EAAY,kBAAkBu3B,EAAAA,GAAI2D,eAAgB7zD,GAC9D,MAAM6sH,EAAa6B,EAAUm4Q,QAI7B,GAFAvoU,EAAO,sBAAuBuuD,GAE1B6B,GAAWk4Q,cAAe,CAC5B,MAAMhiY,EAAM8pH,GAAWk4Q,cAEvBzuW,EACE,kBACA,CAAEwU,MAAOhjC,EAAE,oCAAqC/E,OAChD,CAAE/H,MAAM,IAEVkmD,cAAc4e,GACdrD,EAAO,oBAAoB,GAC3BA,EAAO,qBAAqB,EAC9B,CACF,KAAO,CACL,MAAMj4D,EAAOrG,EAAGiJ,MAAM,KAAK,GAU3B,GARAq1D,EAAO,sBAAuB,GAE9BlpB,YAAW,KACTkpB,EAAO,qBAAqB,GAC5BA,EAAO,oBAAoB,GAC3BA,EAAO,sBAAuB,EAAE,GAC/B,KAEC3lC,EAAY,kBAAmB,CACjC,MAAMquR,EAAYruR,EAAY,aACxB+7F,EAAS,iBAAkBsyL,IAEjC1nT,OAAOo8R,SAASr7M,KAAO,GAAIh8B,EAAMokV,SAAW/zQ,iCAAwCruH,YACtF,MACE/G,OAAOo8R,SAASr7M,KAAO,GAAIh8B,EAAMokV,sCAAwCpiY,aAG3E08C,cAAc4e,EAChB,IACC,IACL,GAGIu0c,GAAmBA,KAChB,CACLj1e,SAEA1yB,QAAS,IAAKA,IAEd2sC,UAAW,IAAKA,IAEhBlqB,QAAS,IAAKA,MAGZkQ,GAAS,CACbtK,UAAgB,GAAIy5B,EAAAA,YACpBwnS,gBAAgB,GAGlB,QACEs+K,UAAWD,KACXh1e,W,YCjMK,MAAMk1e,GAAO,O,0fCWb,MAAMC,GAAiB,CAI5BC,cAAkB,UAIlBC,gBAAkB,YAIlBC,SAAkB,WAIlBr0K,QAAkB,UAIlBs0K,eAAkB,kBAIlBC,iBAAkB,qBAGPC,GAAkBA,EAC7B57Z,eAAc9oG,OAAM2kB,YAAW52B,KAAI8uJ,YACjC,CAAC,IACI,CAAE/zC,GAAgB9oG,EAAO2kB,EAAW52B,EAAI8uJ,GAC5CjlJ,QAAQmmB,KAAYA,IACpBzmB,KAAK,KAGGqtgB,GAAuBrwgB,IAClC,MAAM,aACJw0G,EAAY,UACZnkF,EAAS,GACT52B,EAAE,SACF8uJ,GACEvoJ,EAEEswgB,EAAc,CAClB97Z,eACA/6G,KACA42B,YACAk4H,YAGF,OAAO6nX,GAAgBE,EAAY,GAG/B,cACJP,GAAa,gBAAEC,GAAe,SAAEC,GAAQ,eAAEC,GAAc,iBAAEK,IACxDT,GAEW,MAAMU,WAAwBlsF,GAM3Cjqb,WAAAA,CAAYkgC,EAAKgqZ,GAAgB,EAAMC,EAAe,KAAM9hY,EAAW,KAAM+hY,EAAW,KAAMgsF,GAC5Fxye,MAAM1D,EAAKgqZ,EAAeC,EAAc9hY,EAAU+hY,GAAU,GAAMhhb,GAAA,eAN1D,CAAC,GAACA,GAAA,cACH,IAAEA,GAAA,qBACI,GAAKA,GAAA,oBAKlB3M,KAAKw4V,QAAUz4V,KAAKs+R,SAAS+sG,OAAS3nW,EAAI9uB,QAAQ,YAAa,IAC/D3U,KAAK25gB,KAAOA,EAEZ35gB,KAAKu9C,iBAAiBuvY,IAAkB/pb,IACtC/C,KAAK07H,MAAMoxT,GAAiB,0DAE5B1sb,OAAO47D,OAAOh8D,KAAK45gB,SAAShxgB,SAASg4D,IACnC,MAAM,OAAE1kC,EAAM,MAAEpyB,GAAU82D,EACpBi5c,EAAWP,GAAgB14c,GAE7B,CAACq4c,GAAeC,GAAiBC,IAAU3kgB,SAAS0nB,KAAYpyB,GAClE9J,KAAK07H,MAAMoxT,GAAiB,6CAA8C+sF,EAAU39e,GACpFl8B,KAAK45gB,QAAQC,GAAU39e,OAAS+8e,GAChCj5gB,KAAK4gE,MAAMi5c,IACF,CAACT,IAAgB5kgB,SAAS0nB,KACnCl8B,KAAK07H,MAAMoxT,GAAiB,4CAA6C+sF,EAAU39e,GACnFl8B,KAAK45gB,QAAQC,GAAU39e,OAASk9e,GAChCp5gB,KAAK85gB,QAAQD,GACf,GACA,GAEN,CAEAn+Y,KAAAA,IAAS7zH,GACP7H,KAAK+5gB,cAAgB3ygB,GAAQqhD,KAAK,uBAAwB5gD,EAC5D,CAEAmygB,QAAAA,CAASz0a,GACPvlG,KAAK+5gB,eAAiBx0a,CACxB,CAEA00a,WAAAA,CAAYJ,GACV,QAAS75gB,KAAK45gB,UAAUC,EAC1B,CAEAj5c,KAAAA,CAAMi5c,EAAUK,EAAyBC,EAA6BC,EAAmB,CAAC,EAAGC,GAC3F,MACE38Z,aAAc48Z,EACd33gB,GAAI43gB,EACJhhf,UAAWihf,EACX/oX,SAAUgpX,EACVtvZ,MAAOuvZ,GACLN,EAIJ,GAFAp6gB,KAAK07H,MAAM,SAAU,YAAam+Y,GAE9B,CAACX,GAAiBC,IAAU3kgB,SAASxU,KAAK45gB,UAAUC,IAAW39e,QAGjE,YAFAl8B,KAAK07H,MAAM,SAAU,0CAA2Cm+Y,GAKlE,IAAKa,GAAiB16gB,KAAK45gB,UAAUC,IAAW/vgB,MAK9C,YAJI9J,KAAK45gB,UAAUC,IAAW/vgB,MAAM+K,SAAW04a,IAC7Cvtb,KAAK07H,MAAM,SAAU,qBAAsBm+Y,IAM/C,MAAMn8Z,EAAe48Z,GAAwBt6gB,KAAK45gB,UAAUC,IAAWn8Z,aACjE/6G,EAAK43gB,GAAcv6gB,KAAK45gB,UAAUC,IAAWl3gB,GAC7C42B,EAAYihf,GAAqBx6gB,KAAK45gB,UAAUC,IAAWtgf,UAC3Dk4H,EAAWgpX,GAAoBz6gB,KAAK45gB,UAAUC,IAAWpoX,SACzDkpX,EAAsB36gB,KAAK45gB,UAAUC,IAAWc,qBAAuBN,EAEvEb,EAAc,CAClB97Z,eACA/6G,KACA42B,YACAk4H,YAGImpX,EAAsBT,GAA+Bn6gB,KAAK45gB,UAAUC,IAAWe,oBAC/En1e,EAAkBy0e,GAA2Bl6gB,KAAK45gB,UAAUC,IAAWp0e,gBAEvEigC,EAAU1lE,KAAKqiS,KAAKt7O,KAAK0F,UAAU,IACpC+sd,EACH/ze,gBAAkBk1e,OAAwC/4gB,EAAlB6jC,KAG1CzlC,KAAK45gB,QAAQC,GAAY,IACpBL,EACHt9e,OAAQwpC,EAAUszc,GAAeE,gBAAkBF,GAAeC,cAClExze,kBACAm1e,sBACAD,sBAEJ,CAEAb,OAAAA,CAAQD,GACN,MAAMj5c,EAAQ5gE,KAAK45gB,UAAUC,IAAa,CAAC,GACrC,aACJn8Z,EAAY,GAAE/6G,EAAE,UAAE42B,EAAS,SAAEk4H,GAC3B7wF,EACE44c,EAAc,CAClB97Z,eACA/6G,KACA42B,YACAk4H,YAGF,GAAI/zC,GAAgB19G,KAAK45gB,QAAQC,GAAU39e,SAAWu9e,GAAkB,CACtE,MAAM/zc,EAAU1lE,KAAKqiS,KAAKt7O,KAAK0F,UAAU,IACpC+sd,EACHn9Y,MAAM,KAGRr8H,KAAK45gB,QAAQC,GAAU39e,OAASwpC,EAAU+zc,GAAmBL,EAC/D,CACF,CAKAjrF,UAAAA,CAAW5sb,GACT,MACEyH,KAAMyib,EAAS,aAAE/tU,EAAcl9F,MAAM,KAAE5L,GAAM,GAAEjS,EAAE,UAAE42B,EAAS,SAAEk4H,EAAQ,KAAEjxI,GACtEumC,KAAKC,MAAMzlD,EAAMif,MACfq5f,EAAWP,GAAgB,CAC/B57Z,eACA9oG,OACAjS,KACA42B,YACAk4H,aAGF,GAAkB,mBAAdg6R,GAAkCzrb,KAAK45gB,UAAUC,IAAW39e,SAAWg9e,GACzEl5gB,KAAK45gB,QAAQC,GAAU39e,OAASi9e,UACzBn5gB,KAAK45gB,QAAQC,GAAU/vgB,WACzB,GAAkB,kBAAd2hb,GAAiCzrb,KAAK45gB,UAAUC,GAMzD75gB,KAAK45gB,QAAQC,GAAY,CAAE/vgB,MAAO9J,KAAK45gB,QAAQC,IAAW/vgB,YAQrD,GAAkB,mBAAd2hb,EAAgC,CACzC,MAAMlkb,EAAMiZ,GAAM1W,OAAO+W,cAEpB7gB,KAAK45gB,QAAQC,IAAatygB,EAAIiN,SAAS,qBAC1CxU,KAAK45gB,QAAQC,GAAU/vgB,MAAQ,CAAE8K,KAAM8oG,EAAc7oG,OAAQu4a,IACnDptb,KAAK45gB,QAAQC,IAAatygB,EAAIiN,SAAS,yBAKjDxU,KAAK45gB,QAAQC,GAAU/vgB,MAAQ,CAAE8K,KAAM8oG,EAAc7oG,OAAQw4a,IACnD9lb,EAAIiN,SAAS,oBAChBxU,KAAK45gB,QAAQC,GAAUp0e,uBACvBzlC,KAAK45gB,QAAQC,GAAUe,2BACvB56gB,KAAK45gB,QAAQC,GAAUc,oBAC9B36gB,KAAK45gB,QAAQC,GAAU/vgB,MAAQ,CAAE8K,KAAM8oG,EAAc7oG,OAAQ04a,IAE7Dvtb,KAAKylG,cAAc,IAAInkG,YAAY,SAAU,CAC3CK,OAAQ,CACN6e,KAAM,CACJk9F,eAAc/6G,KAAI42B,YAAWk4H,iBAKrCzxJ,KAAK07H,MAAM,cAAe,YAAa17H,KAAK45gB,QAAQC,GAAU/vgB,MAChE,CAEAq9B,MAAMgnZ,WAAW5sb,EACnB,E,kDCrPF,MAAMs5gB,GAAuB,KAEvBj3e,GAAQ,CACZd,MAAY,GACZg4e,gBAAYl5gB,EACZ+0H,MAAY,GACZprC,QAAY,CAAC,GAGf,SAASikK,KACP5rN,GAAM+yF,MAAM/tH,SAAS+8B,IACnB,MAAM9S,GAAO8hV,EAAAA,GAAAA,IAAQhvU,GACfooC,EAAWnqC,GAAM2nD,QAAQ5lD,EAAOhjC,IAEtC,IAAKorE,GAAaA,GAAYA,IAAal7C,EAAO,CAEhD+Q,GAAM2nD,QAAQ5lD,EAAOhjC,IAAMkwB,EAE3B,MAAM3pB,EAAM,CACVsX,KAAcmlB,EACd+3E,aAAclyB,EAAAA,GACd52E,KAAc,mBAGhBgvH,GAAK16H,EACP,KAGF06B,GAAM+yF,MAAQ,GAEd/yF,GAAMk3e,WAAa/ie,WAAWy3M,GAAOqrR,GACvC,CAKA,SAASj3Y,GAAKpjH,GACZzgB,KAAKg7gB,YAAY,CAAEn3Y,KAAMpjH,GAC3B,CAGA,SAASw6f,GAAW9xgB,GAClBnJ,KAAKg7gB,YAAY,CAAEC,WAAY9xgB,GACjC,CAVA06B,GAAMk3e,WAAa/ie,WAAWy3M,GAAOqrR,IAiBrC,MAAMI,GAAwB,CAC5Br6c,MAAQ13D,IACN8xgB,GAAW,CAAE34O,KAAMn5R,GAAM,EAE3BgygB,cAAgBhygB,IACd8xgB,GAAW,CAAEpoH,UAAW1pZ,GAAM,GAI5BiygB,GAAgB,CACpBjtF,UAAYnrb,IAGV,MAAMq4gB,EAAiBh7gB,OAAO8C,KAAKH,GAAGyd,MAEtC46f,EAAexygB,SAASgrB,IAClBunf,GAAcvnf,GAChBunf,GAAcvnf,GAAQ7wB,GAAGyd,KAAKoT,IAE9BxsB,GAAQH,KAAK,4BAA6B2sB,EAC5C,GACA,EAEJynf,WAAYA,EAAG/gL,gBACb12T,GAAMd,MAAQw3T,CAAS,EAGzBghL,cAAeA,KACbp8d,aAAatb,GAAMk3e,YAEnB/6gB,KAAKg7gB,YAAY,CAAEO,eAAe,GAAO,EAI3CnmL,YAAc5pQ,IACZA,EAAQ3iF,SAAS+8B,KAGf8lU,EAAAA,GAAAA,GAAwB9lU,GAExB/B,GAAM2nD,QAAQ5lD,EAAOhjC,KAAMgyW,EAAAA,GAAAA,IAAQhvU,EAAO,GAC1C,EAIJ41e,aAAe51e,IAEb/B,GAAM+yF,MAAMxtH,KAAKw8B,EAAO,EAI1B61e,aAAe74gB,IAEbihC,GAAM+yF,MAAQ/yF,GAAM+yF,MAAMnqH,QAAQm5B,GAAWA,EAAOhjC,KAAOA,WAGpDihC,GAAM2nD,QAAQ5oF,EAAG,KAEvBs4gB,I,wcAGLl7gB,KAAKmub,UAAYitF,GAAcjtF,UC9GhB,MAAMutF,GAInBl4gB,WAAAA,CAAYqR,GAAMjI,GAAA,iBAHN,CAAC,GAACA,GAAA,oBAAAA,GAAA,wBAIZ3M,KAAK4U,MAAO6gV,EAAAA,GAAAA,IAAuB,WAAT7gV,EAAoByzC,EAAAA,GAAQzzC,GACtD5U,KAAKoyF,UAAWioQ,EAAAA,GAAAA,IAAYr6V,KAAK4U,KACnC,CAEAgvH,IAAAA,CAAKujH,EAAa,IAEhB,IAAK,IAAIzjP,EAAI,EAAGA,EAAIyjP,EAAWrmP,OAAQ4C,IAAK,CAC1C,MAAMytB,EAAWg2N,EAAWzjP,GAEvB1D,KAAK4U,OAAS42E,EAAAA,KACjB6pQ,EAAAA,GAAAA,GAAqBlkU,GAEvB,MAAMxuB,EAAKwuB,EAASnxB,KAAKoyF,UAKzBpyF,KAAKuvB,UAAU5sB,IAAMgyW,EAAAA,GAAAA,IAAQxjV,EAC/B,CAGA,OAAOnxB,IACT,CAEA69E,MAAAA,CAAO1sD,EAAUiK,GACVp7B,KAAK4U,OAAS42E,EAAAA,KACjB6pQ,EAAAA,GAAAA,GAAqBlkU,GAGvB,MAAMuqf,EAAuB17gB,KAAKuvB,UAAU4B,EAASnxB,KAAKoyF,YAAc,CAAC,EACnEupb,GAAkBhnK,EAAAA,GAAAA,IAAQxjV,GAE5Buqf,IAAyBC,IAC3B37gB,KAAKuvB,UAAU4B,EAASnxB,KAAKoyF,WAAajhE,EAC1CiK,IAEJ,CAEAnuB,MAAAA,CAAOkkB,EAAUiK,GAEfp7B,KAAK69E,OAAO1sD,EAAUiK,EACxB,CAEA4oE,MAAAA,CAAOrhG,EAAIy4B,GACLp7B,KAAKuvB,UAAU5sB,YACV3C,KAAKuvB,UAAU5sB,GACtBy4B,IAEJ,E,eC9CF,MAAMq/N,GAAS,CAAC,EAEV72N,GAAQ,CACZg4e,aAAch6gB,EACdkhC,MAAc,GAId+4e,YAAc,GACd7kL,aAAc,CAAC,EACf8kL,aAAc,GAGVpgZ,GAAQA,IAAI7zH,KAChB+7B,GAAMk4e,aAAe10gB,GAAQqhD,KAAK,sBAAuB5gD,EAAK,EAGhE6zH,GAAM,WAEN,MAAMqgZ,GAAsBn2d,aAAY,KAClCxlD,OAAO8C,KAAK0gC,GAAMozT,cAAcl2V,SAClCf,KAAKg7gB,YAAY,CAAE/jL,aAAcpzT,GAAMozT,eACvCpzT,GAAMozT,aAAe,CAAC,EACxB,GACC,KAEGglL,GAAqB9ygB,IACzB,MAAM,aAAEw0G,EAAcl9F,MAAM,KAAE5L,GAAM,KAAE4L,GAAStX,EACzC+ygB,EAAUv+Z,GAAgB9oG,EAC1BynV,GAAiB5G,EAAAA,GAAAA,IAA0B,WAAZwmL,EAAuB5zd,EAAAA,GAAQ4zd,GAC9D7pb,GAAWioQ,EAAAA,GAAAA,IAAYgC,GAM7B,OAJKA,IAAmB7wQ,EAAAA,KACtB6pQ,EAAAA,GAAAA,GAAqB70U,GAGhB,CACL5L,KAAMynV,EACN15V,GAAM6d,EAAK4xE,GACX5xE,OACD,EAMG07f,GAAwBA,CAACvgN,EAAWp6T,EAAOq6gB,KAC/ClgZ,GAAM,gBAAiBigM,EAAWp6T,GAClCxB,KAAKg7gB,YAAY,CACf,CAACp/M,GAAY,CACX/mT,KAAYrT,EAAMqT,KAClBjT,OAAYJ,EAAMI,OAClBiqF,WAAY,CACVyjW,eAAgBusF,EAAQvsF,eACxB5rZ,IAAgBm4e,EAAQn4e,OAG5B,EAME04e,GAAyBtC,IAC7Bj2e,GAAMi4e,YAAcj4e,GAAMi4e,YAAYrvgB,QAAQ4vgB,IAC5C,MAAO,CAAElzgB,GAAO9I,OAAO2nC,QAAQq0e,GAAe,GACxCC,EAAwB9C,GAAoBrwgB,GAElD,OAAO2wgB,IAAawC,CAAqB,GACzC,EAMElB,GAAgB,CAEpBhmL,YAAchuG,IACPsT,GAAOjvK,EAAAA,MACVivK,GAAOjvK,EAAAA,IAAU,IAAIiwb,GAAcjwb,EAAAA,KAErCivK,GAAOjvK,EAAAA,IAAQo4C,KAAKujH,EAAW,EAEjC+zR,cAAgBz2e,IACdi3F,GAAM,gBAAiBj3F,GAEvB,MAAM,SACJnL,EAAQ,SAAEq0Z,EAAQ,IAAElqZ,EAAG,KAAEk2e,GACvBl1e,EAEJ,IAAKb,GAAMg4e,QAAS,CAClBh4e,GAAMg4e,QAAU,IAAIlC,GAAgBj2e,GAAK,EAAM,KAAM,KAAMkqZ,EAAUgsF,GAErE/1e,GAAMg4e,QAAQr+d,iBAAiByvY,IAAgBjqb,IAC7C,MAAMxB,EAAQwB,EAAEpB,OAEhB,GAAIJ,EAAMif,KAAM,CACd,MAAMtX,EAAM69C,KAAKC,MAAMzlD,EAAMif,MAEzBtX,EAAIF,OACFszgB,GAAuBpzgB,EAAIF,MAC7BszgB,GAAuBpzgB,EAAIF,MAAME,GAEjCozgB,GAAuBxhf,SAAS5xB,GAGtC,KAGF06B,GAAMg4e,QAAQr+d,iBAAiB,UAAWx6C,IACxChD,KAAKg7gB,YAAY,CAAEC,WAAY,CAAEuB,YAAax5gB,EAAEpB,OAAO6e,OAAS,IAGlEojB,GAAMg4e,QAAQr+d,iBAAiB2vY,IAAsBnqb,IACnDm5gB,GAAsBhvF,GAAqBnqb,EAAG6gC,GAAMg4e,QAAQ,IAG9Dh4e,GAAMg4e,QAAQr+d,iBAAiB4vY,IAAyBpqb,IACtDm5gB,GAAsB/uF,GAAwBpqb,EAAG6gC,GAAMg4e,QAAQ,IAGjEh4e,GAAMg4e,QAAQ5B,SAASp2e,GAAMk4e,aAE7Bl4e,GAAMg4e,QAAQ9tF,QAAQx0Z,GAGtB,MAAOsK,GAAMi4e,YAAY/6gB,OAAS,EAAG,CACnC46H,GAAM,gBAAiB,uBAAwB93F,GAAMi4e,aAErD,MAAMO,EAAgBx4e,GAAMi4e,YAAYhwgB,SACjC+nB,EAAQ1qB,GAAO9I,OAAO2nC,QAAQq0e,GAAe,GAEhDjB,GAAcvnf,GAChBunf,GAAcvnf,GAAQ1qB,GAEtB9B,GAAQH,KAAK,4BAA6B2sB,EAE9C,CACF,GAEFgtC,MAAQ13D,IACNwyH,GAAM,QAASxyH,GAEf,MAAM2wgB,EAAWN,GAAoBrwgB,GAErC,GAAIA,EAAImzH,KAGN,YAFA8+Y,GAAcrB,QAAQD,GAMxB,IAAK3wgB,EAAIiiH,OAAWvnF,GAAMg4e,SAAShC,QAAQC,IAAW/vgB,MACpD,OAGF,IAAK85B,GAAMg4e,QAGT,YAFAh4e,GAAMi4e,YAAY1ygB,KAAK,CAAEy3D,MAAO13D,IAKlC,MAAM,aACJw0G,EAAY,UACZnkF,EAAS,GACT52B,EAAE,SACF8uJ,EAAQ,gBACRhsH,GACEv8B,EAEE0xgB,EAAsBn1e,EAAkBvrB,KAAK2e,WAAQj3B,EACrD+4gB,EAAsB,CAACnvb,EAAAA,GAAQnjC,EAAAA,IAAO7zC,SAASkpG,GAE/C87Z,EAAc,CAClB97Z,eACA/6G,KACA42B,YACAk4H,WACAtmC,MAAOjiH,EAAIiiH,OAGbvnF,GAAMg4e,QAAQh7c,MAAMi5c,EAAUp0e,EAAiBm1e,EAAqBpB,EAAamB,EAAoB,EAEvGb,QAAUD,IACRn+Y,GAAM,UAAWm+Y,GAEjBsC,GAAsBtC,GAEjBj2e,GAAMg4e,SAIXh4e,GAAMg4e,QAAQ9B,QAAQD,EAAS,EAEjCwB,WAAYA,EAAG/gL,gBACb5+N,GAAM,aAAc4+N,GAEpB12T,GAAMd,MAAQw3T,CAAS,EAEzBghL,cAAeA,KAKb,SAASkB,WACAz8gB,KAAKmub,UACZnub,KAAKg7gB,YAAY,CAAEO,eAAe,GACpC,CAPA5/Y,GAAM,iBAENh2E,cAAcq2d,IAQVn4e,GAAMg4e,QACRh4e,GAAMg4e,SAASx9d,aAAa70C,KAAKizgB,GAEjCA,GACF,EAGFC,YAAaA,EAAGl3a,SACd3hE,GAAMk4e,cAAgBv2a,EACtB3hE,GAAMg4e,QAAQ5B,WAAWz0a,EAAG,EAE9Bm3a,WAAAA,CAAY9ngB,EAAMjS,EAAIk7E,GACfj6C,GAAMozT,aAAapiV,KACtBgvB,GAAMozT,aAAapiV,GAAQ,CAAC,GAE9BgvB,GAAMozT,aAAapiV,GAAMjS,GAAMk7E,CACjC,GAMIy+b,GAAyB,CAC7B,kBAAoBpzgB,IAClB,MAAM,KAAE0L,EAAI,GAAEjS,EAAE,KAAE6d,GAASw7f,GAAkB9ygB,GAEzCuxP,GAAO7lP,GACT6lP,GAAO7lP,GAAMipE,OAAOr9D,GAAM,IAAM26f,GAAcuB,YAAY9ngB,EAAMjS,EAAI6d,KAEpE26f,GAAcuB,YAAY9ngB,EAAMjS,EAAI6d,EACtC,EAGF,kBAAoBtX,IAClB,MAAM,KAAE0L,EAAI,GAAEjS,EAAE,KAAE6d,GAASw7f,GAAkB9ygB,GAEzCuxP,GAAO7lP,GACT6lP,GAAO7lP,GAAM3H,OAAOuT,GAAM,IAAM26f,GAAcuB,YAAY9ngB,EAAMjS,EAAI6d,KAEpE26f,GAAcuB,YAAY9ngB,EAAMjS,EAAI6d,EACtC,EAEF,iBAAmBtX,MAGnB,kBAAoBA,IAClB,MAAM,KAAE0L,EAAI,GAAEjS,GAAOq5gB,GAAkB9ygB,GAEnCuxP,GAAO7lP,GACT6lP,GAAO7lP,GAAMovF,OAAOrhG,GAAI,IAAMw4gB,GAAcuB,YAAY9ngB,EAAMjS,EAAI,CAAC,KAEnEw4gB,GAAcuB,YAAY9ngB,EAAMjS,EAAI,CAAC,EACvC,EAEF,gBAAkBuG,IAChBwyH,GAAM,gBAAiBxyH,GAGvB,MAAM2wgB,EAAWN,GAAoBrwgB,GAErCizgB,GAAsBtC,GAIjBj2e,GAAMg4e,SAAShC,QAAQC,IAAW/vgB,OAGrCwygB,GAAuBxhf,SAAS,IAC3B5xB,EACH6lB,gBAAgB,GAEpB,EAEF,iBAAmB7lB,IAEjB9B,GAAQH,KAAK,mBAAoB28B,GAAMd,SAAW55B,EAAIw0G,aAAc,IAAKx0G,EAAIsX,KAAK1W,MAAM,EAE1FgxB,SAAW5xB,IACTnJ,KAAKg7gB,YAAY,CAAEjgf,SAAU5xB,GAAM,GAOvCnJ,KAAKmub,UAAanrb,IAGhB,MAAMq4gB,EAAiBh7gB,OAAO8C,KAAKH,GAAGyd,MAEtC46f,EAAexygB,SAASgrB,IAClBunf,GAAcvnf,GAChBunf,GAAcvnf,GAAQ7wB,GAAGyd,KAAKoT,IAE9BxsB,GAAQH,KAAK,4BAA6B2sB,EAC5C,GACA,ECzTG,MAAM+of,GAAe,CAC1B34c,QAAc,UACd44c,aAAc,UACdlzL,MAAc,QACdmzL,SAAc,Y,gBCEhB,MAAMC,GACJC,gBAAAA,EAAiB,QAAE7rgB,GAAgB0D,GACjC,OAAO1D,EAAQ2oV,cAAcjlV,IAAO9T,OAAS,CAC/C,CAEAk8gB,eAAAA,EAAgB,QAAE9rgB,GAAgB0D,GAChC,QAAS1D,EAAQ6oV,SAASnlV,EAC5B,CAEAw1G,kBAAAA,EAAmB,YAAE9uF,IAEnB,OAAOA,EAAYq/T,oBACrB,CAKAsiL,kBAAAA,CAAmB1jf,GACjB,IAAIqhR,GAAAA,EAAevyQ,aAAa,CAAEC,WAAY/O,EAAW3kB,KAAM,UAAY2kB,EAAUz4B,OAIrF,OAAOy4B,CACT,CAEA2jf,WAAAA,EAAY,QAAEhsgB,EAAO,YAAEoqB,GAAoB1mB,EAAc4L,GAEvD,GAAIxgB,KAAK+8gB,iBAAiB,CAAE7rgB,WAAW0D,GAAO,CAC5C,MAAMk0B,EAAa9oC,KAAKoqH,mBAAmB,CAAE9uF,gBAE7C,IAAKwN,EAAWtoB,EAAK8Y,SAASC,WAC5B,OAAO,CAEX,CAGA,GAAIv5B,KAAKg9gB,gBAAgB,CAAE9rgB,WAAW0D,GAAO,CAC3C,MAAMm3B,EAAO76B,EAAQ,OAAO0D,GAE5B,QAASm3B,EAAKlU,MAAMslf,GAAYA,EAAGx6gB,KAAO6d,EAAK7d,IACjD,CAEA,OAAO,CACT,CAEAy6gB,mBAAAA,EAAoB,QAAElsgB,EAAO,YAAEoqB,GAAoB27T,GACjD,MAAMnuT,EAAa9oC,KAAKoqH,mBAAmB,CAAE9uF,gBAEvC+hf,EAA+D,CACnE/0e,WAAY,CAAC,EACbg1e,UAAY,CAAC,GAqCf,OAlCAl9gB,OAAO2nC,QAAQkvT,GAAOruV,SAAQ,EAAEgM,EAAMmzB,MAIpC,QAHgCnmC,IAA5By7gB,EAAO/0e,WAAW1zB,KACpByogB,EAAO/0e,WAAW1zB,GAAQ5U,KAAK+8gB,iBAAiB,CAAE7rgB,WAAW0D,IAE3DyogB,EAAO/0e,WAAW1zB,GAAO,CAC3B,MAAM+wB,EAASz0B,EAAQu1B,UAAU7xB,GAEjC,IAAK+wB,GAAQ8G,YAAYnE,WACvB,OAGFloC,OAAO8C,KAAK6kC,GAASn/B,SAASjG,IAC5B,MAAM42B,EAAY52B,EAAGiJ,MAAM,KAAK,GAE3B2tB,GAAcuP,EAAWvP,WACrBwO,EAAQplC,EACjB,GAEJ,CAKA,QAH+Bf,IAA3By7gB,EAAOC,UAAU1ogB,KACnByogB,EAAOC,UAAU1ogB,GAAQ5U,KAAKg9gB,gBAAgB,CAAE9rgB,WAAW0D,IAEzDyogB,EAAOC,UAAU1ogB,GAAO,CAC1B,MAAMm3B,EAAO76B,EAAQ,OAAO0D,GAE5BxU,OAAO8C,KAAK6kC,GAASn/B,SAASjG,IACvBopC,EAAKlU,MAAMslf,GAAYA,EAAGx6gB,KAAOA,YAC7BolC,EAAQplC,EACjB,GAEJ,KAGKs0V,CACT,EAGF,WAAmB6lL,G,uBC/DnB,MAAMS,GAAwB,IAExBC,GAAe,CAAC,EAEhBC,GAAkB,CAAC9vK,GAAAA,EAAMn8U,QAASm8U,GAAAA,EAAMC,QAASD,GAAAA,EAAMp8U,YAEvDmsf,GAAsBA,CAACpjL,EAAWx3T,IAC/BA,EAAM66e,SAASrjL,IAAYsjL,mBAAqB96e,EAAM66e,SAASrjL,GAAWsjL,oBAG7EC,GAAwBA,CAACvjL,EAAWx3T,KACjCqiB,EAAAA,GAAAA,IAAQ,IAAMu4d,GAAoBpjL,EAAWx3T,MAAYA,EAAM5xB,QAAQ,mBAAmBs6E,EAAAA,GAAQj6D,EAAAA,GAAW1H,WAGhHi0f,GAAkBA,CAACxjL,EAAWx3T,KAC3BqiB,EAAAA,GAAAA,IAAQ,IAAMu4d,GAAoBpjL,EAAWx3T,MAAYA,EAAM5xB,QAAQ,mBAAmBqgB,EAAAA,GAAW1H,QAASA,EAAAA,GAAQkD,kBAGzHgxf,GAAoBxqgB,IACxB,MAAM,YAAE+nB,EAAW,QAAEpqB,GAAYqC,EAC3B+mV,EAAYppV,EAAQopV,UACpB3wC,EAAYruR,EAAYquR,UAE9B,IAAK8zN,GAAgBjpgB,SAAS8lV,IAAe3wC,IAAcC,GAAAA,GAAiB0wC,IAAcqT,GAAAA,EAAMn8U,QAC9F,OAAO,EAGT,MAAM25B,GAAcziB,EAAAA,GAAAA,IAAsBpN,GAE1C,OAAO6vB,GAAap8B,eAAeR,OAAO,EAGrC8L,eAAe2jf,GAAal7e,EAAOvvB,GACxC,MAAM,QAAErC,EAAO,SAAE4pB,GAAavnB,EACxB+mV,EAAYppV,EAAQopV,UAI1B,GAFAx3T,EAAM66e,SAAW76e,EAAM66e,UAAY,CAAC,GAE/BF,GAAgBjpgB,SAAS8lV,GAC5B,OAsCF,GAnCKx3T,EAAM66e,SAASrjL,KAGlBx3T,EAAM66e,SAASrjL,GAAa,CAC1BygL,YAAc7xgB,IACkB,kBAA1B9I,OAAO8C,KAAKgG,KAAO,GAWnBs0gB,GAAaljL,GACfkjL,GAAaljL,GAAWnxV,KAAKD,GAE7Bs0gB,GAAaljL,GAAa,CAACpxV,GAP3B45B,EAAM66e,SAASrjL,GAAWpoU,KAAOyqf,GAAaC,YAQhD,EAEF1qf,KAAmByqf,GAAa34c,QAChC45c,kBAAmBA,IACV96e,EAAM66e,SAASrjL,IAAYpoU,OAASyqf,GAAaC,aAE1Dltc,QAASA,YAEA5sC,EAAM66e,SAASrjL,EAAU,UAKhCujL,GAAsBvjL,EAAWx3T,SACjCg7e,GAAgBxjL,EAAWx3T,GAC7BA,EAAM66e,SAASrjL,GAAWsjL,oBAG5B,YAFA96e,EAAM66e,SAASrjL,GAAW5qR,UAI5B,MAAM3gD,EAAiBgvf,GAAiBxqgB,GAElC4ngB,EAAgB,CACpBv3Y,KAAOzyG,IACL8sf,GAAY1qgB,EAAK4d,GAAU,EAAM,SAAS,EAE5Cmqf,cAAeA,KACTx4e,EAAM66e,WACR76e,EAAM66e,SAASrjL,GAAW4jL,mBACnBp7e,EAAM66e,SAASrjL,GACxB,EAEFtD,aAAeC,IACbn8T,EAAS,eAAgBqjf,GAA4Bf,oBAAoB7pgB,EAAK0jV,GAAO,EAEvFn8T,SAAW5xB,IACT4xB,EAAS,MAAO5xB,EAAIF,OAASE,EAAI,EAEnC8xgB,WAAa9xgB,IAKX9I,OAAO2nC,QAAQ7+B,GAAKN,SAAQ,EAAEgrB,EAAQpyB,MACpCs5B,EAASlH,EAAQpyB,EAAO,GACxB,EAEJ,CAAC0rb,IAAuBnqb,IACtB+3B,EAAS,QAAS/3B,EAAG,EAEvB,CAACoqb,IAA0Bpqb,IACzB+3B,EAAS,QAAS/3B,EAAG,GAIzB,IAAK+/B,EAAM66e,SAASrjL,IAAcx3T,EAAM66e,SAASrjL,GAAWpoU,OAASyqf,GAAa34c,QAAS,CACzF,MAAMo6c,EAAarvf,EAAiB4tf,GAAaE,SAAWF,GAAajzL,MACnEtrT,EAAS0E,EAAMu7e,kBAAkBD,GAEvCt7e,EAAM66e,SAASrjL,GAAal8T,EAE5BA,EAAO28e,YAAY,CAAEM,WAAY,CAAE/gL,eAKnCx3T,EAAM66e,SAASrjL,GAAW4zF,UAAanrb,IAGrC,MAAMq4gB,EAAiBh7gB,OAAO8C,KAAKH,GAAGyd,MAEtC46f,EAAexygB,SAASgrB,IACtBunf,EAAcvnf,GAAQ7wB,GAAGyd,KAAKoT,GAAQ,GACtC,CAEN,CAEA,MAAO4pf,GAAaljL,IAAYx5V,OAAQ,CACtC,MAAM2F,EAAU+2gB,GAAaljL,GAAWzuV,QAClCyygB,GAAc/3J,EAAAA,GAAAA,IAAU9/W,GAE9Bq8B,EAAM66e,SAASrjL,GAAWygL,YAAYuD,EACxC,CACF,CAEO,SAASC,GAAgBz1gB,EAAGC,GACjC,MAAMy1gB,EAAgB11gB,EAAE40G,cAAgB50G,EAAE8L,KACpC6pgB,EAAgB11gB,EAAE20G,cAAgB30G,EAAE6L,KAE1C,OAAK4pgB,IAAkBC,KAIlB31gB,EAAEnG,KAAOoG,EAAEpG,KAAOmG,EAAEnG,KAAMoG,EAAEpG,OAI5BmG,EAAEywB,YAAcxwB,EAAEwwB,YAAczwB,EAAEywB,YAAaxwB,EAAEwwB,aAIjDzwB,EAAE2oJ,WAAa1oJ,EAAE0oJ,WAAa3oJ,EAAE2oJ,WAAY1oJ,EAAE0oJ,WAKrD,CAEA,SAASwsX,IAAY,QAAE/sgB,EAAO,MAAE0yB,EAAK,YAAEtI,IAAe,KAAE9a,EAAI,SAAEy/R,GAAYr8K,EAAM1vG,GAC9E,MAAMtf,EAAO1D,EAAQukV,cAAcj1U,EAAK5L,MAElCisC,EAAQ3vC,EAAQ0oV,UAAUhlV,GAEhC,GAAKisC,IACHA,EAAMo/P,SAAW39S,KAAK6P,IAAI0uC,EAAMo/P,SAAU19R,SAAS09R,EAAU,KAO1Dk+N,GAA4BjB,YAAY,CAAEhsgB,UAASoqB,eAAe1mB,EAAM4L,IAI7E,GAAKojH,EACHhgG,EAAM+yF,MAAMxtH,KAAK,CACfyqB,OAAQ,WACRryB,MAAQ,OACRupE,KAAQtqD,QAEL,CACL,MAAMha,EAAM0K,EAAQylV,KAAKn2U,EAAK5L,KAAM4L,EAAK7d,IAEpC6D,GACHo9B,EAAM+yF,MAAMxtH,KAAK,CACfyqB,OAAQ,SACRryB,MAAQ,SACRupE,KAAQtkE,IAIPoO,IAAS42E,EAAAA,IAEZ5nD,EAAM+yF,MAAMxtH,KAAK,CACfyqB,OAAQ,SACRryB,MAAQ,aACRupE,KAAQtqD,EAAK7d,IAGnB,CACF,CAEA,SAAS+7gB,GAAepjf,GACtB,OAAOoN,EAAAA,GAAAA,IAAsBpN,IAAc3M,4BAC7C,CAKA,MAAMgwf,GAAgB,CACpB,eAAM/rH,CAAUr/Y,EAAKkxB,GACnB,MAAM,MACJb,EAAK,OAAEq9B,EAAM,SAAEnmC,EAAQ,QAAE5pB,EAAO,YAAEoqB,GAChC/nB,EAIJ,GAAI+nB,EAAY,oBAAoBsjf,oBAClC,OAGF,IAAI7wF,EAASnqZ,EAAMmqZ,OAEnB9sX,EAAO,iBAAiB,GAExBr9B,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,cAAev3C,EAAQopV,cAEzD,MAAM72T,EAAM,GAAIG,EAAMC,OAAO20T,oBACvBm1F,EAAW+wF,GAAepjf,GAAe,KAAO,EAChDhC,GAAWlrB,EAAAA,GAAAA,IAAIq2B,EAAK,YAEtBs5e,GAAiBxqgB,IACdvT,KAAK29gB,SAASzsgB,EAAQopV,kBACnB0jL,GAAah+gB,KAAMuT,GAI3BvT,KAAK29gB,SAASzsgB,EAAQopV,WAAWygL,YAAY,CAC3CG,cAAe,CACb5hf,WACAmK,IAAM,GAAIG,EAAMC,OAAO20T,oBACvBmhL,KAAM35gB,KAAK8+gB,SAAS1wgB,IAAI2qgB,GAAM,CAAE9rK,WAAW,IAC3C0gF,eAGMI,GACVA,EAAOiB,kBAAiB,GACxBjB,EAAOF,OAAOpqZ,GACdsqZ,EAAOD,QAAQx0Z,KAEfy0Z,EAAS,IAAIP,GAAO,GAAI5pZ,EAAMC,OAAO20T,qBAAsB,EAAM,KAAM,KAAMm1F,GAE7E1sX,EAAO,YAAa8sX,GACpBA,EAAOxwY,iBAAiBuvY,IAAkB/pb,IACxC+3B,EAAS,SAAU/3B,EAAE,IAGvBgrb,EAAOxwY,iBAAiBwvY,IAAqBhqb,IAC3C+3B,EAAS,SAAU/3B,EAAE,IAGvBgrb,EAAOxwY,iBAAiB2vY,IAAsBnqb,IAC5C+3B,EAAS,QAAS/3B,EAAG,IAGvBgrb,EAAOxwY,iBAAiB4vY,IAAyBpqb,IAC/C+3B,EAAS,QAAS/3B,EAAG,IAGvBgrb,EAAOxwY,iBAAiByvY,IAAgBjqb,IACtC,MAAMxB,EAAQwB,EAAEpB,OAEhB,GAAKJ,EAAMif,KAAM,CACf,MAAMtX,EAAM69C,KAAKC,MAAMzlD,EAAMif,MAEzBtX,EAAIF,MACN8xB,EAAS,MAAO5xB,EAAIF,OAASE,EAEjC,KAEF6kb,EAAOD,QAAQx0Z,GAEnB,EAEAylf,WAAAA,EAAY,OAAE99c,EAAM,QAAE/vD,EAAO,MAAE0yB,IAC7B,MAAMmqZ,EAASnqZ,EAAMmqZ,OAErB9sX,EAAO,iBAAiB,GACxB,MAAM+9c,EAAe,GAEf5gf,GAAUp+B,KAAK29gB,UAAY,CAAC,GAAGzsgB,EAAQopV,WAW7C,OATIl8T,IACFA,EAAO28e,YAAY,CAAEO,eAAe,IACpC0D,EAAa71gB,MAAKg8C,EAAAA,GAAAA,IAAQ,KAAOnlD,KAAK29gB,SAASzsgB,EAAQopV,YAAY,yBAGhEyzF,GACHixF,EAAa71gB,KAAK4kb,EAAO3vY,cAGpBz0C,QAAQ60B,IAAIwgf,EACrB,EAEAp+c,KAAAA,EAAM,MACJh9B,EAAK,SAAE9I,EAAQ,QAAE5pB,EAAO,YAAEoqB,GACzB95B,GACDoiC,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,kBAAmBv3C,EAAQopV,aAAevzS,KAAK0F,UAAUjrD,IAE3F,IAAI,KAEFoT,EAAI,SAAE68I,EAAQ,GAAE9uJ,EAAE,SAAEs9S,EAAQ,UAAE1mR,EAAS,KAAE8iG,EAAI,MAAElR,GAC7C3pH,EAKJ,GAHA+3B,EAAY4kf,GAA4BlB,mBAAmB1jf,GAC3D3kB,EAAO1D,EAAQukV,cAAc7gV,GAEzB0mB,EAAY,sBAAsB1mB,GAGpC,YAFAgvB,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,mCAAoC1B,KAAK0F,UAAUjrD,KAKvF,MAAMmkC,EAASz0B,EAAQu1B,UAAU7xB,GAAM,GAAO,GAE9C,GAAM+wB,GAAQ8G,YAAYmlB,OAAOp9C,WAAamxB,EAAO8G,WAAWmlB,MAAMp9C,SAAS,SAG7E,YAFAovB,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,iDAAkD1B,KAAK0F,UAAUjrD,KAMrG,MAAMqnV,EAAU33U,EAAQ23U,QAAQrnV,GAEhC,IAAM66H,IAASlR,GAAS09N,EAMtB,YAJIA,IAAY0kG,IACdnmb,GAAQ0C,MAAM,2BAA4BoH,EAAQopV,iCAAmCzR,KAAa9hS,KAAK0F,UAAUjrD,KAMrH,IAAM66H,GAAQnrH,EAAQ+tgB,aAAa,CACjCrqgB,OAAMjS,KAAI8uJ,WAAUl4H,cAOpB,YAJAqK,EAAMi7e,aAAez3gB,GAAQm/C,MAAM,qBAAsBr1C,EAAQopV,aAAe,CAC9E1lV,OAAMjS,KAAI8uJ,WAAUl4H,eAYA,qBAAb0mR,GAA6B3E,GAAAA,EAAgB3xP,oBAAoB,CAAEruB,kBAC5E2kR,EAAW/uS,EAAQgugB,oBAAoBtqgB,EAAMjS,IAG/C,MAAMuG,EAAM,CAAEw0G,aAAc9oG,GAEvBqrS,IACH/2S,EAAIu8B,gBAAkB,GAAIw6Q,KAGvB1mR,IACHrwB,EAAIqwB,UAAYA,GAGb8iG,IACHnzH,EAAImzH,MAAO,GAGR15H,IACHuG,EAAIvG,GAAKA,GAGN8uJ,IACHvoJ,EAAIuoJ,SAAWA,GAGjB,MAAMrzH,EAASp+B,KAAK29gB,WAAWzsgB,EAAQopV,YAAc,CAAC,EAEtD,OAAIl8T,EAAOlM,OAASyqf,GAAaE,UAAYz+e,EAAOlM,OAASyqf,GAAa34c,SACnEmnD,IACHjiH,EAAIiiH,OAAQ,QAGd/sF,EAAO28e,YAAY,CAAEn6c,MAAO13D,KAKvB4xB,EAAS,OAAQ5xB,EAC1B,EAEA4wgB,OAAAA,CAAQvmgB,GAAK,KACXqB,EAAI,GAAEjS,EAAE,UAAE42B,EAAS,SAAEk4H,EAAQ,IAAEjzH,IAE/B,MAAM,OAAEyiC,EAAM,QAAE/vD,EAAO,SAAE4pB,GAAavnB,EAEtC,GAAIrC,EAAQ,aAAa0D,GAAO,CAC9B2kB,EAAY4kf,GAA4BlB,mBAAmB1jf,GAE3D,MAAM/yB,EAAM,CACVoO,OACAjS,KACA42B,YACAk4H,WACAp1B,MAAM,GAGFy9Y,EAAWtzgB,IACX0K,EAAQ,gBAAgB1K,KAI1By6D,EAAO,kBAAmBz6D,GAC1Bs0B,EAAS,QAASt0B,GAElBy6D,EAAO,iBAAkBrsD,GAC3B,EAGEmpgB,GAAiBxqgB,GACnBunB,EAAS,QAASt0B,GACTg4B,EACTttB,EAAQ,iBAAiB0D,GAAMhM,SAASpC,IACtCszgB,EAAQtzgB,EAAI,IAEL0K,EAAQ,gBAAgB1K,IACjCszgB,EAAQtzgB,EAEZ,CACF,EAEA,WAAU,QAAE0K,EAAO,SAAE4pB,GAAY5xB,GAC/B,GAA2B,eAAtBgI,EAAQopV,UAA6B,CACxC,MAAM3yR,EAAUz+D,GAAKsX,MAAMmnD,SAAW,KAEtC7sC,EAAS,sBAAuB6sC,EAAS,CAAEnoE,MAAM,IACjD4H,GAAQqhD,KAAK,SAAUv3C,EAAQopV,mBAAqB3yR,GAAW,oBACjE,CACF,GAMIw3c,GAAkB,CACtB54d,KAAAA,CAAM3iB,EAAO2hE,EAAIziE,GACfc,EAAMi7e,aAAqB,IAAPt5a,EAChBziE,GAAS9iC,KAAK29gB,SAAS76e,IACzB9iC,KAAK29gB,SAAS76e,GAAOi4e,YAAY,CAAE0B,aAAoB,IAAPl3a,GAEpD,GAMI65a,GAAiB,CAErB,WAAM5vR,EAAM,MACV5rN,EAAK,OAAEq9B,EAAM,SAAEnmC,EAAQ,QAAE5pB,IAEzB,MAAMylH,EAAQ/yF,EAAM+yF,MACpB,IAAI0oZ,EAAS,GAEb,IAAM1oZ,EAAM71H,OACV,OAGF,MAAMy2V,GAAU,IAAIr9U,MAAOC,UAE3BypB,EAAM+yF,MAAQ,GAEd/yF,EAAMi7e,aAAez3gB,GAAQm/C,MAAM,oBAAqBr1C,EAAQopV,aAAe3jO,EAAM71H,OAAQ,SAE7F,IAAM,MAAM,OAAE8yB,EAAM,MAAEryB,EAAK,KAAEupE,KAAU6rD,EACrC,GAAgB,aAAX/iG,GAAmC,SAAVryB,EAE5B89gB,EAAOl2gB,KAAK2hE,QAQZ,GALKu0c,EAAOv+gB,eACJg6B,EAAS,YAAaukf,GAC5BA,EAAS,IAGK,aAAXzrf,QACGkH,EAASv5B,EAAOupE,OACjB,IAAgB,WAAXl3C,EAGV,MAAM,IAAI5wB,MAAM,yBAFhBi+D,EAAO1/D,EAAOupE,EAGhB,CAKCu0c,EAAOv+gB,cACJg6B,EAAS,YAAaukf,GAG9Bz7e,EAAMi7e,aAAez3gB,GAAQm/C,MAAM,oBAAqBr1C,EAAQopV,uBAAyB,IAAIpgV,MAAOC,UAAao9U,EAAS,KAC5H,EAEA+nL,kBAAAA,EAAmB,MAAE17e,EAAK,SAAE9I,IACrB8I,EAAM27e,aAAe37e,EAAMmqZ,QAC9BjzZ,EAAS,YAEb,EAEA0kf,gBAAAA,EAAiB,MACf57e,EAAK,QAAE1yB,EAAO,OAAE+vD,EAAM,SAAEnmC,IAExB,MAAMqrE,EAAW,GAEjB,IAAM,MAAMtlD,KAASjd,EAAM2zT,QAAQtrV,QACjC7E,GAAQqhD,KAAK,cAAev3C,EAAQopV,aAAevzS,KAAK0F,UAAU5L,IAE7D3vC,EAAQu1B,UAAUoa,EAAMjsC,QAC3BqsD,EAAO,kBAAmBpgB,UACnBA,EAAMo/P,SACb95M,EAASh9F,KAAK2xB,EAAS,QAAS+lB,KAIpC,OAAOl3C,QAAQ60B,IAAI2nE,EACrB,EAEA,iBAAMo2a,EAAY,MAChB34e,EAAK,QAAE1yB,EAAO,SAAE4pB,EAAQ,OAAEmmC,GACzBz/D,GACD,MAAM,aACJk8G,EAAY,UAAEnkF,EAAS,GAAE52B,EAAE,SAAE8uJ,GAC3BjwJ,EAEJ4F,GAAQqhD,KAAK,WAAYv3C,EAAQopV,aAAe94V,GAEhD,MAAMijC,EAAM,CAAE0mF,OAAO,EAAMmrO,YAAY,GAEvC,GAAK3zV,EAaH,kBAZMm4B,EAAS,OAAQ,CACrBlmB,KAAM8oG,EACN/6G,KACA8hC,IAAM,IACDA,EAEH6D,WAAY/O,EAEZ0mR,SAAY,QAMlB,IAAI77P,EAAMD,EAELstG,GACHrtG,EAAOlzC,EAAQ,YAAYwsG,EAAc+zC,GAAUxlJ,QACnDk4C,QAAarpB,EAAS,eAAgB,CACpClmB,KAAM8oG,EACN+zC,WACAhtH,UAGF2f,EAAOlzC,EAAQ,OAAOwsG,GAAczxG,QAE/BstB,IACH6qB,EAAOA,EAAK53C,QAAQyL,GAAMA,EAAEqhB,UAAUC,YAAcA,KAGtD4qB,QAAarpB,EAAS,UAAW,CAC/BlmB,KAAgB8oG,EAChBo4O,eAAgBv8T,EAChBkL,SAIJ,MAAMg7e,EAAU,CAAC,EAEjB,IAAM,MAAMj5gB,KAAO29C,EACjBs7d,EAAQj5gB,EAAI7D,KAAM,EAGpB,IAAM,MAAM6D,KAAO49C,EACXq7d,EAAQj5gB,EAAI7D,MAChBihC,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,iBAAkBv3C,EAAQopV,aAAe58O,EAAcl3G,EAAI7D,IAE7Fs+D,EAAO,SAAUz6D,GAGvB,EAEA,YAAMk5gB,EAAO,OACXz+c,EAAM,SAAEnmC,EAAQ,MAAE8I,EAAK,QAAE1yB,EAAO,YAAEoqB,GACjC/5B,GACDqiC,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,qBAAsBv3C,EAAQopV,cAChE,MAAMyzF,EAASxsb,EAAMwob,cACf/xF,EAAQz2V,GAAOI,QAAQq2V,MACvB1rV,EAAIgvB,EAAY,UAChBqkf,EAAejB,GAAepjf,GAoBpC,GAlBAt7B,KAAK4/gB,QAAU7xF,EAETnqZ,EAAM+yF,QACV/yF,EAAM+yF,MAAQ,IAGV/yF,EAAMi8e,aACVj8e,EAAMk8e,WAAazlf,UACZuJ,EAAM+yF,MAAM71H,cACTg6B,EAAS,SAGjB8I,EAAMi8e,WAAa9ne,WAAWnU,EAAMk8e,WAAY,IAAK,EAGvDl8e,EAAMk8e,cAGH/xF,EAAOyB,eAAiB,OACrB10Z,EAAS,oBAEf,MAAMilf,EAAWzkf,EAAY,cAAc,CAAEx3B,IAAK,MAAO0M,IAAKu9a,EAAOtqZ,MAEjEs8e,GACFjlf,EAAS,eAAgBilf,EAASp9gB,GAAI,CAAEnD,MAAM,IAE5Cw4V,EAAQ,IAAM2nL,GAChB7kf,EAAS,gBAAiB,CACxBwU,MAAShjC,EAAE,2BACX7F,QAAS6F,EAAE,4BAA6B,CAAEm3B,IAAKzjC,KAAK4/gB,QAAQn8e,IAAKu0T,WAChE,CAAEx4V,MAAM,GAEf,CAGA,IAAM,MAAMgH,KAAOo9B,EAAMo8e,cAAc/zgB,QACrCg1D,EAAO,sBAAuBz6D,GAC9Bs0B,EAAS,gBAAiBt0B,EAE9B,EAEA8kR,MAAAA,EAAO,MAAE1nP,EAAK,QAAE1yB,IACd0yB,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,qBAAsBv3C,EAAQopV,cAChEp7S,aAAatb,EAAMi8e,YACnBj8e,EAAMi8e,WAAa,IACrB,EAEA/1gB,KAAAA,EAAM,QACJoH,EAAO,MAAE0yB,EAAK,SAAE9I,EAAQ,YAAEQ,GACzBv4B,GACDm8C,aAAatb,EAAMi8e,YACnBj8e,EAAMi8e,WAAa,KAGnB,MAAMF,EAAejB,GAAepjf,GAEpC,IAAKqkf,EAAc,CACjB,MAAMlwN,GAAa9hM,EAAAA,GAAAA,IAAYryF,EAAY,aAAao0R,EAAAA,KAClDC,GAAahiM,EAAAA,GAAAA,IAAYryF,EAAY,aAAas0R,EAAAA,KAClDp0L,EAAOz4H,GAAG6oF,YAAYyjW,gBAAkBn1a,KAAK2e,MAE7Conf,EAAgB,GAAI7va,KAAIorB,GAAMt6E,OAAO,GAAIuuQ,KAAgBE,OACzDlsR,EAAM1gC,GAAG6oF,YAAYnoD,IACrBu0T,EAAQp0T,GAAOmqZ,QAAQ/1F,MAEvB1rV,EAAIgvB,EAAY,UAEhBykf,EAAWzkf,EAAY,cAAc,CAAEx3B,IAAK,MAAO0M,IAAKizB,IAE1D1gC,EAAE6R,OAASs4a,IACT6yF,GACFjlf,EAAS,eAAgBilf,EAASp9gB,GAAI,CAAEnD,MAAM,IAEhDs7B,EAAS,cAAe,CACtBwU,MAAShjC,EAAE,4BACX7F,QAAS6F,EAAE,6BAA8B,CACvCm3B,MAAK+3F,KAAMykZ,EAAejoL,SACzB,CAAE5pQ,KAAK,IACVjgD,KAAe,QACf+xe,cAAe1kZ,EAAO+hZ,GACtB95e,OACC,CAAEjkC,MAAM,KACFuD,EAAE6R,OAASu4a,IAChB4yF,GACFjlf,EAAS,eAAgBilf,EAASp9gB,GAAI,CAAEnD,MAAM,IAEhDs7B,EAAS,cAAe,CACtBwU,MAAShjC,EAAE,+BACX7F,QAAS6F,EAAE,gCAAiC,CAC1Cm3B,MAAK+3F,KAAMykZ,EAAejoL,SACzB,CAAE5pQ,KAAK,IACVjgD,KAAe,QACf+xe,cAAe1kZ,EAAO+hZ,GACtB95e,OACC,CAAEjkC,MAAM,KAGX4H,GAAQ0C,MAAM,+BAAgCoH,EAAQopV,aAAev3V,EAAEpB,OAE3E,CACF,EAEA0gS,IAAAA,EAAK,MAAEz+P,EAAK,OAAEq9B,GAAUz6D,GACtB,GAAKo9B,EAAMmqZ,OAAS,CAClB,MAAM1nb,EAAKu9B,EAAMmqZ,OAAO1rJ,KAAKt7O,KAAK0F,UAAUjmD,IAE5C,GAAKH,EACH,MAEJ,CAEA46D,EAAO,sBAAuBz6D,EAChC,EAEA25gB,aAAAA,EAAc,MAAEv8e,GAASp9B,GACvB,GAAKo9B,EAAMmqZ,OACT,OAAOnqZ,EAAMmqZ,OAAO1rJ,KAAKt7O,KAAK0F,UAAUjmD,GAE5C,EAKA,qBAAoB,MAClBo9B,EAAK,QAAE1yB,EAAO,OAAE+vD,EAAM,SAAEnmC,GACvB5xB,GACD06B,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,oBAAqBv3C,EAAQopV,aAAepxV,GAE9E,MAAMk3gB,EAAW,CACfxrgB,KAAW1L,EAAIw0G,aACfnkF,UAAWrwB,EAAIqwB,UACf52B,GAAWuG,EAAIvG,GACf8uJ,SAAWvoJ,EAAIuoJ,UAGjB7tH,EAAM2zT,QAAQ/qV,QAAQq0C,IACpB,GACEA,EAAMjsC,OAASwrgB,EAASxrgB,MACxBisC,EAAMtnB,YAAc6mf,EAAS7mf,UAE7B,OAAO,CACT,IACC3wB,SAASi4C,IACV/lB,EAAS,UAAW+lB,EAAM,IAG5BogB,EAAO,kBAAmBm/c,EAC5B,EAEA,qBAAoB,QAAElvgB,EAAO,OAAE+vD,EAAM,SAAEnmC,GAAY5xB,GACjD9B,GAAQH,KAAK,mBAAoBiK,EAAQopV,aAAepxV,EAAIw0G,aAAc,IAAKx0G,EAAIsX,KAAK1W,OAExF,MAAMvC,EAAM2B,EAAIsX,MAAM1W,OAAO+W,cAExBtZ,EAAIiN,SAAS,qBAChBysD,EAAO,aAAc,CAAE/3D,MAAK2L,OAAQu4a,KAC1B7lb,EAAIiN,SAAS,yBACvBysD,EAAO,aAAc,CAAE/3D,MAAK2L,OAAQw4a,KAC1B9lb,EAAIiN,SAAS,YAIvBysD,EAAO,aAAc,CAAE/3D,MAAK2L,OAAQ04a,KACpCzyZ,EAAS,cAAe5xB,IACd3B,EAAIiN,SAAS,oEACvBysD,EAAO,aAAc,CAAE/3D,MAAK2L,OAAQy4a,IAExC,EAWA,oBAAmB,MACjB1pZ,EAAK,QAAE1yB,EAAO,OAAE+vD,EAAM,SAAEnmC,GACvB5xB,GACD,MAAM0L,EAAO1L,EAAIw0G,aACXl3G,EAAM,CACVoO,OACAjS,GAAWuG,EAAIvG,GACf42B,UAAWrwB,EAAIqwB,UACfk4H,SAAWvoJ,EAAIuoJ,UAKjB,GAFA7tH,EAAMi7e,aAAez3gB,GAAQqhD,KAAK,kBAAmBv3C,EAAQopV,aAAe1lV,EAAM1L,IAE7E0L,EAGH,YAFAxN,GAAQ0C,MAAM,kBAAmBoH,EAAQopV,0EAA4EpxV,GASvH,MAAM6lB,EAAiB7lB,EAAI6lB,eACrBsxf,GAActxf,EACdkwf,EAAeoB,EAAanvgB,EAAQ,gBAAgB1K,GAAOuoB,EAE5D7d,EAAQ,aAAa0D,IAASqqgB,IAC7BoB,GACFp/c,EAAO,kBAAmBz6D,GAG5Bs0B,EAAS,QAASt0B,GAEtB,EAEA,qBAAqB+M,EAAKrK,GACxBqK,EAAIqwB,MAAMi7e,aAAez3gB,GAAQqhD,KAAK,oBAAqBl1C,EAAIrC,QAAQopV,aAAepxV,EAAIw0G,aAAcx0G,GACxG+0gB,GAAY1qgB,EAAKrK,GAAK,EAAM,SAC9B,EAEA,qBAAqBqK,EAAKrK,GACxB,MAAMsX,EAAOtX,EAAIsX,KACX5L,EAAO4L,EAAK5L,KAIlB,GAAI4L,EAAK/Z,UAAY+Z,EAAK7d,GACxB,OAKF,GAAIiS,IAAS42E,EAAAA,GAAQ,CACnB,MAAMptD,GAAUp+B,KAAK29gB,UAAY,CAAC,GAAGpqgB,EAAIrC,QAAQopV,WAEjD,GAAIl8T,EAIF,YAHAA,EAAO28e,YAAY,CAAEQ,aAAc/6f,GAKvC,CAEAy9f,GAAY1qgB,EAAKrK,GAAK,EAAM,UAE5B,MAAMgzV,EAAa3oV,EAAI+nB,YAAY,uBAAuB1mB,GAE1D,GAAIsnV,GAAY9mS,OAAOt0D,OAAS,EAAG,CACjC,MAAMs0D,EAAQ8mS,GAAY9mS,OAAS,GAEnCA,EAAM5yD,KAAKoS,IACTrB,EAAIqwB,MAAM+yF,MAAMxtH,KAAK,CACnByqB,OAAQ,WACRryB,MAAQ,OACRupE,KAAQ,IACHtqD,EACH5L,SAEF,GAEN,CACF,EAEA,qBAAqBrB,EAAKrK,GACxB,MAAMsX,EAAOtX,EAAIsX,KACX5L,EAAO4L,EAAK5L,KAIlB,GAFArB,EAAIqwB,MAAMi7e,aAAez3gB,GAAQqhD,KAAK,oBAAqBl1C,EAAIrC,QAAQopV,aAAe1lV,EAAM1L,GAExF0L,IAAS42E,EAAAA,GAAQ,CACnB,MAAMptD,GAAUp+B,KAAK29gB,UAAY,CAAC,GAAGpqgB,EAAIrC,QAAQopV,WAE7Cl8T,GACFA,EAAO28e,YAAY,CAAES,aAAch7f,EAAK7d,IAE5C,CAEAs7gB,GAAY1qgB,EAAKrK,GAAK,EAAO,UAE7B,MAAMgzV,EAAa3oV,EAAI+nB,YAAY,uBAAuB1mB,GAE1D,GAAIsnV,GAAY9mS,OAAOt0D,OAAS,EAAG,CACjC,MAAMs0D,EAAQ8mS,GAAY9mS,OAAS,GAEnCA,EAAM5yD,KAAKoS,IACT,MAAMpO,EAAM+M,EAAIrC,QAAQylV,KAAK/hV,EAAM4L,EAAK7d,IAExC4Q,EAAIqwB,MAAM+yF,MAAMxtH,KAAK,CACnByqB,OAAQ,SACRryB,MAAQ,SACRupE,KAAQtkE,GACR,GAEN,CACF,GAMI85gB,GAAmB,CACvBC,SAAAA,CAAU38e,EAAOmqZ,GACfnqZ,EAAMmqZ,OAASA,CACjB,EAEAyyF,aAAAA,CAAc58e,EAAOugB,GACnBvgB,EAAM27e,WAAap7d,CACrB,EAEAs8d,mBAAAA,CAAoB78e,EAAOp9B,GACzBo9B,EAAMo8e,cAAc72gB,KAAK3C,EAC3B,EAEAk6gB,mBAAAA,CAAoB98e,EAAOp9B,IACzB86C,EAAAA,GAAAA,IAAa1d,EAAMo8e,cAAex5gB,EACpC,EAEAm6gB,eAAAA,CAAgB/8e,EAAOp9B,GACrB,MAAMunE,EAAWnqC,EAAM2zT,QAAQ1/T,MAAMgpB,GAAU09d,GAAgB/3gB,EAAKq6C,KAE9DktB,IACJlqB,EAAAA,GAAAA,IAAUjgB,EAAM2zT,QAAS/wV,UAGpBo9B,EAAMilT,QAAQywL,GAAgB9ygB,GACvC,EAEAo6gB,eAAAA,CAAgBh9e,EAAOp9B,GACrB,MAAMunE,EAAWnqC,EAAM2zT,QAAQ1/T,MAAMgpB,GAAU09d,GAAgB/3gB,EAAKq6C,KAE/DktB,GACHzsB,EAAAA,GAAAA,IAAa1d,EAAM2zT,QAASxpR,GAE5B3mE,GAAQH,KAAK,6CAA8CT,EAE/D,EAEAq6gB,UAAAA,CAAWj9e,GAAO,IAAE16B,EAAG,OAAE2L,IACvB,MAAM/Q,EAAMw1gB,GAAgBpwgB,GAE5B06B,EAAMilT,QAAQ/kV,GAAO+Q,CACvB,EAEAisgB,YAAAA,CAAal9e,EAAO16B,GAClB,MAAMpF,EAAMw1gB,GAAgBpwgB,UAErB06B,EAAMilT,QAAQ/kV,EACvB,EAEAi9gB,kBAAAA,CAAmBn9e,IAGjBogB,EAAAA,GAAAA,IAAMpgB,EAAM2zT,UACZvzS,EAAAA,GAAAA,IAAMpgB,EAAMo8e,gBACZh8d,EAAAA,GAAAA,IAAMpgB,EAAM+yF,OACZz3E,aAAatb,EAAMi8e,YACnBj8e,EAAMo9e,iBAAmB,CAAC,EAC1Bp9e,EAAMi8e,WAAa,IACrB,EAEAoB,cAAAA,CAAer9e,EAAOhvB,GAEpBgvB,EAAM+yF,MAAQ/yF,EAAM+yF,MAAMnqH,QAAQoP,GACzBA,EAAKkvD,MAAMl2D,OAASA,GAE/B,GAMIssgB,GAAiB,CACrBr4L,QAAUjlT,GAAWp9B,GACZo9B,EAAMilT,QAAQywL,GAAgB9ygB,IAGvC26gB,cAAgBv9e,GAAWhvB,GAClBgvB,EAAM2zT,QAAQ/qV,QAAQq0C,GAAUjsC,KAAUisC,EAAM68D,cAAgB78D,EAAMjsC,QAG/EqqgB,aAAer7e,GAAWp9B,KACfo9B,EAAM2zT,QAAQ1/T,MAAMgpB,GAAU09d,GAAgB/3gB,EAAKq6C,KAG9Dq+d,oBAAqBA,CAACt7e,EAAO1yB,IAAY,CAAC0D,EAAMjS,KAC9CiS,GAAO6gV,EAAAA,GAAAA,IAAc7gV,GACrB,IAAIqrS,EAAW,EAEf,GAAKt9S,EAAK,CACR,MAAMorE,EAAW78D,EAAQ,QAAQ0D,EAAMjS,GAEvCs9S,EAAW19R,SAASwrD,GAAUz0C,UAAUmM,gBAAiB,GAC3D,CAEA,IAAMw6Q,EAAW,CACf,MAAMt0J,EAAQ/nH,EAAMgjB,MAAMhyC,GAE1B,IAAM+2I,EACJ,OAAO,KAGTs0J,EAAWt0J,EAAMs0J,SAEjB,IAAM,MAAMz5S,KAAOmlJ,EAAM/nI,KACvB,GAAKpd,GAAOA,EAAI8yB,SAAW,CACzB,MAAMqR,EAAMpoB,SAAS/b,EAAI8yB,SAASmM,gBAAiB,IAEnDw6Q,EAAW39S,KAAK6P,IAAI8tS,EAAUt1Q,EAChC,CAEJ,CAEA,OAAKs1Q,GAIE,IAAI,GAIFtsR,GAAU,IAClBgrf,MACAS,IAGQvhe,GAAY,IACpBshe,MACAmB,IAGQpvgB,GAAU,IAAKgwgB,I,sIC9iCrB,MAAME,GAAoB,CAC/BlyO,OAAS,SACTznQ,MAAS,QACT4wT,QAAS,UAGLgpL,GAAkB,CACtB,CAACh5d,EAAAA,KAAc,EACf,CAAChb,EAAAA,KAAc,EACf,CAACm+C,EAAAA,KAAc,EACf,CAACoqN,EAAAA,GAAGC,WAAW,GAIXyrO,GAAa,IAAI1ogB,OAAO,uCAE9B,QACE6/U,WAAYA,IAAM,CAACh1T,EAAKgB,EAAKkB,KAC3BlB,EAAMA,GAAO,CAAC,EACd,MAAM88e,GAAYv6d,EAAAA,GAAAA,IAAMvjB,GAClB+9e,EAAUF,GAAW5rgB,KAAK6rgB,EAAUvuf,MAEpCyuf,EAAkBpmO,GAAAA,EAAqB1vQ,0BAA0BhG,EAAQlB,GAE/E,GAAIg9e,EACFh+e,GAAO,KAAKA,EAAIjvB,SAAS,KAAO,IAAM,KAAOitgB,OACxC,CAQL,GANKh9e,EAAIiyT,gBACPjzT,GAAO,GAAIA,EAAIjvB,SAAS,KAAO,IAAM,oBAAsBiwB,EAAIiyT,iBAK5DjyT,EAAIj4B,OAAS,CAChBi3B,GAAO,IAAKA,EAAIjvB,SAAS,KAAO,IAAM,KACtC,MAAMtR,EAAO9C,OAAO8C,KAAKuhC,EAAIj4B,QAE7BtJ,EAAK0F,SAAS9E,IACZ,IAAI49gB,EAAOj9e,EAAIj4B,OAAO1I,IAEhBsQ,EAAAA,GAAAA,IAAQstgB,KACZA,EAAO,CAACA,IAINF,IACF/9e,GAAO,IAAKA,EAAIjvB,SAAS,WAAa,IAAM,YAG9C,MAAMm4B,EAAgB+0e,EAAKl/gB,KAAKgO,GACvB,GAAIu1K,UAAUjiL,MAAUiiL,UAAUv1K,OAErCmxgB,EAAYl+e,EAAIqe,OAAOre,EAAI3iC,OAAS,GACpC8ghB,EAAsB,CAAC,IAAK,IAAK,KAAKptgB,SAASmtgB,GAAa,GAAK,IAEvEl+e,GAAO,GAAIm+e,IAAwBj1e,EAAczgC,KAAK,MAAO,GAEjE,CAKA,MAAM21gB,EAAyBjnO,GAAAA,EAAejyQ,oBAAoBlE,GAE9Do9e,IACFp+e,GAAO,KAAKA,EAAIjvB,SAAS,KAAO,IAAM,KAAOqtgB,IAK/C,MAAM9ugB,EAAQ0xB,EAAI1xB,MAEbA,IACH0wB,GAAO,GAAIA,EAAIjvB,SAAS,KAAO,IAAM,YAAczB,KAMrD,MAAM0pF,EAASh4D,EAAIg4D,OACbqqK,EAAUriO,EAAIq9e,UAEfrlb,IACC+kb,EACF/9e,GAAO,GAAIA,EAAIjvB,SAAS,KAAO,IAAM,YAA0B,SAAZsyP,EAAqB,IAAM,IAAM/gF,UAAUtpF,MAE9Fh5D,GAAO,GAAIA,EAAIjvB,SAAS,KAAO,IAAM,WAAauxK,UAAUtpF,KACvDqqK,IACHrjO,GAAO,GAAIA,EAAIjvB,SAAS,KAAO,IAAM,YAAcuxK,UAAU+gF,OAKrE,CAKA,GAAI06Q,EAAS,CACX,IAAK15gB,MAAMsM,QAAQqwB,GAAK6ne,eAAgB,CACtC,MAAMA,EAAgB,CAAC,0BAGvB7ne,EAAI6ne,cAAgBxkgB,MAAMsM,QAAQqwB,GAAKs9e,mBAAqBzV,EAAc9/f,QAAQsJ,IAAOA,EAAEtB,SAASiwB,EAAIs9e,qBAAsBzV,CAChI,CAEA,MAAM0V,EAAsBv9e,EAAI6ne,cAAc9pgB,KAAK6/B,GAAU,WAAYA,MAAUn2B,KAAK,KAExFu3B,GAAO,GAAIA,EAAIjvB,SAAS,KAAO,IAAM,MAAQwtgB,GAC/C,CAGA,OAAOv+e,CAAG,EAGZsyT,OAAQA,CAACnyT,EAAO1yB,IAAY,CAAC0D,EAAMjS,EAAI8hC,KACrC,IAAIhB,GAAMsyT,EAAAA,GAAAA,GAAOnyT,EAAO1yB,EAAd6kV,CAAuBnhV,EAAMjS,EAAI8hC,GAK3C,IAAKA,GAAKhB,KAAOgB,GAAK6D,aAAesyQ,GAAAA,EAAevyQ,aAAa5D,GAAM,CAMrE,MAAMw9e,EAAS,IAAIl1Y,IAAItpG,GACjBzQ,EAAOivf,EAAO5iI,SAEdrsX,GAAMlyB,QAAoC,MAA1BkyB,EAAKA,EAAKlyB,OAAS,KACvCmhhB,EAAO5iI,SAAWrsX,EAAKzjB,UAAU,EAAGyjB,EAAKlyB,OAAS,IAEpD,MAAMsd,EAAQ6jgB,EAAO5iI,SAASzzY,MAAM,KAEhCjJ,GAEFyb,EAAMg5B,OAAOh5B,EAAMtd,OAAS,EAAG,EAAG2jC,EAAI6D,YACtC25e,EAAO5iI,SAAWjhY,EAAMlS,KAAK,MAG7B+1gB,EAAO5iI,SAAW,GAAI4iI,EAAO5iI,SAASzzY,MAAM,KAAKM,KAAK,QAAUu4B,EAAI6D,aAGtE7E,EAAMw+e,EAAOnzgB,UACf,CAEA,OAAO20B,CAAG,EAGZ82T,aAAe32T,GAAWp9B,IACxB,MAAMsjG,EAAQlmE,EAAMC,OAAOq+e,gBAAkBd,GAAkB/oL,QAAQ5wT,MAEvE,OAAKqiE,IAAUs3a,GAAkB/oL,QAC1B7xV,GAAKoO,MAAMN,WAAW,0BAA4B9N,GAAKoO,MAAMN,WAAW,sBACpE+3T,GAAAA,EAEAtsB,GAAAA,EAECj2M,IAAUs3a,GAAkBlyO,OAC/BuQ,GAAAA,EAEAM,GAAAA,CACT,EAGFtgM,SAAUA,CAAC77E,EAAO1yB,EAASw1C,IAAelgD,IACxC,MAAM+xV,GAAcp7U,EAAAA,GAAAA,GAAOymB,EAAMC,OAAOtK,UAAW/yB,GAAKoO,KAAMpO,GAAK8yB,UAAUtwB,KAAM09C,GAEnF,GAAI6xS,EACF,OAAOA,EAGT,MAAMzuP,EAAQlmE,EAAMC,OAAOq+e,gBAAkB7pL,GAAAA,GAE7C,OAAKvuP,IAAUuuP,GAAAA,GACR7xV,GAAKoO,MAAMN,WAAW,0BAA4B9N,GAAKoO,MAAMN,WAAW,sBACpE+3T,GAAAA,EAEAtsB,GAAAA,EAECj2M,IAAUs3a,GAAkBlyO,OAC/BuQ,GAAAA,EAEAM,GAAAA,CACT,EAGF00B,cAAeA,IAAM,CAAC1mQ,EAAUvtD,KAK9B,GAAIA,GAAM5L,OAASyzC,EAAAA,IAAS0lB,EAG1B,OAFAvtD,EAAK8nC,OAAS,IAAKylB,EAASzlB,UAAW9nC,EAAK8nC,QAErC9nC,EAIT,GAAIutD,GAAU0mQ,eAAmD,oBAA3B1mQ,EAAS0mQ,cAC7C,OAAO1mQ,EAAS0mQ,cAAcj0T,GAGhC,MAAM2hgB,EAAiB/hhB,OAAO8O,eAAe9O,OAAO8O,eAAe6+D,KAAYxqE,YAE/E,OAAO4+gB,IAAmB91M,GAAAA,GAAcqI,EAAAA,GAAAA,GAAqBl0T,GAAQA,CAAI,EAI3E4hgB,gBAAkBx+e,GAAWrK,IAC3B,MAAM/2B,EAAMohC,EAAMw+e,gBAAgB7of,GAElC,OAAO/2B,GAAKohB,MAAQ,EAAE,EAGxB8jC,cAAeA,IACN25d,GAGTgB,kBAAoBz+e,GAAWhvB,IAC7BA,GAAO6gV,EAAAA,GAAAA,IAAc7gV,GAErB,MAAM+2I,EAAQ/nH,EAAMgjB,MAAMhyC,GAE1B,OAAM+2I,EAICA,EAAMtmH,WAHJ,IAGc,EAMzByzT,mBAAoBA,CAACl1T,EAAO1yB,IAAY,CAAC0D,EAAMoe,KAC7C,MAAM2S,EAASz0B,EAAQu1B,UAAU7xB,GAEjC,GAAI+wB,EAAO1B,yBAA2B0B,EAAOxB,kBAG3C,OAFA/8B,GAAQH,KAAK,sCAAuC0+B,EAAOhjC,6HAEpD,EAGT,MAAMqhC,EAAoB2B,EAAO1B,uBAAyB0B,EAAO3B,kBAAoB,KAC/E5lB,GAAQ4mW,EAAAA,GAAAA,IAAgBhyV,GAC9B,IAAIsvf,EAA2B38e,EAG/B,MAAQvnB,EAAMtd,OAAS,CACrB,MAAMgD,EAAMsa,EAAMvS,QAEZw2B,EAAQigf,EAAyBn/e,iBAAiBr/B,GAIxD,GAFA8Q,EAAOytB,GAAOztB,MAERA,EACJ,OAAO,EAGT,GAAKwJ,EAAMtd,SACT8T,GAAO0tB,EAAAA,GAAAA,WAAU1tB,EAAMytB,GAAOpwB,MAE9BqwgB,EAA2Bt+e,EAAoBA,IAAoBpvB,GAAQ1D,EAAQu1B,UAAU7xB,IAEvF+wB,GACJ,OAAO,CAGb,CAEA,OAAO,CAAI,EAMb48e,WAAYA,CAAC3+e,EAAO1yB,EAASw1C,EAAWprB,IAAgB,EACtDpqB,QAASsxgB,EACT5+e,MAAO6+e,IACJ98e,SAAQiG,iBACX,GAAKA,EAIL,OAAOuU,EAAAA,GAAAA,IAAc,CACnBvc,MAAO6+e,EAAcvxgB,QAASsxgB,EAAgBlnf,eAC7C,CACDsL,QAAa67e,EAAaC,kBAC1Btie,YAAaoie,EAAe,cAAc78e,GAAQ,GAClDA,SACA3zB,QAAa,CACX4xB,MAAW0nQ,GAAAA,GACX/xQ,UAAWkyQ,GAAAA,GACXhrP,IAAW+qP,GAAAA,GACX7oS,GAAW0oS,GAAAA,KAEb,EAMJs3O,WAAYA,IAAM,CAACpvgB,GAAOoyB,SAAQiG,aAAYpI,WAC5C,GAAIoI,EAAY,CAGd,MAAMg3e,EAAY,CAAEnub,kBAAmB,IAQvC,OANKjxD,EAAK0yD,wBAA0BvwD,EAAO8G,WAAWnE,aAEpDs6e,EAAUrub,WAAay3M,GAAAA,GACvB42O,EAAU1sb,wBAAyB,GAG9B0sb,CACT,I,uBC5UJ,MAAMC,GAAY,CAChBvif,KAAM,CACJ7wB,MAAW,IACXqzgB,UAAW,GAEb,kBAAmB,CACjBrzgB,MAAW,IACXqzgB,UAAW,GAEb73Z,IAAK,CACHx7G,MAAW,IACXqzgB,UAAW,MAKT57gB,CAAAA,SAAAA,aAAAA,SAAAA,MAAY67gB,UAAY77gB,CAAAA,SAAAA,aAAAA,SAAAA,KAAY2+a,KACxCz+a,GAAQH,KAAK,mCAAoC47gB,IAGnD,MAAMG,GAAW,CACfvzgB,MAAW,EACXqzgB,UAAW,EACXtvgB,OAAW,MAGN,SAASyvgB,GAAYrugB,EAAM4L,GAEhC,GAAoB,IAAhBA,EAAK1f,OACP,OAAO0f,EAGT,MAAMhL,EAAIgL,EAAK,GAEf,IAAKhL,EAAEukB,WACL,OAAOvZ,EAGT,IAAIqjB,EAASg/e,GAAUjugB,GAEvB,OAAKivB,GAIiB,kBAAXA,IACTA,EAAS,CAAEp0B,MAAOo0B,IAGpBA,EAAS,IACJm/e,MACAn/e,GAGEq/e,GAAU1igB,EAAMqjB,IAZdrjB,CAaX,CAEA,SAAS2igB,GAAQhxgB,GACf,OAAO7P,KAAKC,MAAMD,KAAK26D,SAAW9qD,EACpC,CAEA,SAAS+wgB,GAAU1igB,EAAMqjB,GACvB,GAAoB,IAAhBrjB,EAAK1f,OACP,OAAO0f,EAIT,GAAqB,IAAjBqjB,EAAOp0B,MACT,MAAO,GAGT,GAAIo0B,EAAOp0B,OAAS+Q,EAAK1f,OACvB,OAAO0f,EAAKvU,MAAM,EAAG43B,EAAOp0B,OAG9B,MAAMohY,EAAY,GAClB,IAAI3uX,EAAI,EAER1B,EAAK5X,SAASs/B,GAAM2oW,EAAU1nY,KAAK49C,KAAK0F,UAAUvkB,MAElD,MAAMu5N,EAAU,IAAIjhP,GAGd4B,EAAYyhB,EAAOp0B,MAAQ+Q,EAAK1f,OAEtC,IAAK,IAAI4C,EAAI,EAAGA,EAAI0e,EAAW1e,IAAK,CAClC,MAAMo1Z,EAAU/xW,KAAKC,MAAM6pV,EAAU3uX,IAQrC,GANA42Y,EAAQn2Z,GAAK,GAAIm2Z,EAAQn2Z,MAAQe,IACjCo1Z,EAAQx/X,SAASE,IAAM,OAAQ91B,KAAuB,IAAhBpB,KAAK26D,WAC3C67V,EAAQx/X,SAAStwB,KAAO,GAAI8vZ,EAAQx/X,UAAUtwB,QAAUtF,IACxDo1Z,EAAQx/X,SAASyL,kBAAoBqrE,OAAMlvD,SAC3CugN,EAAQt4P,KAAK2vZ,GAETj1X,EAAOi/e,UAAY,EAAG,CAExB,MAAMM,EAAoC,IAArBv/e,EAAOi/e,WAAuD,IAA9BK,GAAQt/e,EAAOi/e,WAEpE,GAAIM,EAAc,CAChBtqH,EAAQx/X,SAASsK,MAAQk1X,EAAQx/X,SAASsK,OAAS,CAAC,EACpD,MAAM+kO,EAAyB,IAAfw6Q,GAAQ,GAEpBx6Q,EACFmwJ,EAAQx/X,SAASsK,MAAM95B,OAAQ,EAE/BgvZ,EAAQx/X,SAASsK,MAAMjC,eAAgB,EAEzCm3X,EAAQx/X,SAASsK,MAAMn9B,QAAU,8BAA+BqyZ,EAAQx/X,SAAStwB,MACnF,CACF,CAEI66B,EAAOrwB,QACTqwB,EAAOrwB,OAAOslZ,EAASp1Z,GAGzBwe,IACIA,IAAM2uX,EAAU/vY,SAClBohB,EAAI,EAER,CAEA,OAAOu/O,CACT,C,gBC9GA,SAAS4hR,GAAkBz/e,EAAOrK,GAChC,IAAIoyH,EAAQ/nH,EAAMw+e,gBAAgB7of,GAWlC,OATKoyH,IACHA,EAAQ,CACN/nI,KAAM,GACNphB,IAAM,IAAIwD,KAGZ49B,EAAMw+e,gBAAgB7of,GAAaoyH,GAG9BA,CACT,CAKA,SAAS23X,GAA2B1/e,EAAOrwB,EAAK2tS,EAAMg2C,GAChDA,GAEF92V,OAAO8C,KAAK0gC,EAAMw+e,iBAAiBx5gB,SAASg3B,WACnCgE,EAAMw+e,gBAAgBxif,EAAG,IAKpCshR,EAAKt4S,SAASi4C,IACZ,MAAM47S,EAAiB74T,EAAMgjB,MAAM12B,EAAAA,IAAK1tB,IAAI4L,IAAIyyC,EAAMl+C,MAAO88G,EAAAA,GAAAA,IAASlsG,EAAKstC,GAErE8qG,EAAQ03X,GAAkBz/e,EAAO64T,EAAeljU,WAChDw0C,EAAW49E,EAAMnpJ,IAAI4L,IAAIyyC,EAAMl+C,IAEjCorE,GAEFp5D,EAAAA,GAAAA,IAAQo5D,EAAUltB,KAElBgD,EAAAA,GAAAA,IAAU8nG,EAAM/nI,KAAM64U,GACtB9wM,EAAMnpJ,IAAI6L,IAAIwyC,EAAMl+C,GAAI85V,GAC1B,GAEJ,CAKA,SAAS8mL,GAA0B3/e,EAAOzS,GACxC,GAAIA,GAAYA,EAASvc,OAASsb,EAAAA,GAAK,CACrC,MAAMy7H,EAAQ/nH,EAAMw+e,gBAAgBjxf,EAASoI,WAG7C,GAAIoyH,EAAO,CACT,MAAM63X,EAAS73X,EAAM/nI,KAAK01B,WAAWvqC,GAAMA,EAAEpM,KAAOwuB,EAASxuB,KAExD6ghB,GAAU,GACb73X,EAAM/nI,KAAKwzB,OAAOose,EAAQ,GAE5B73X,EAAMnpJ,IAAI4Y,OAAO+V,EAASxuB,GAC5B,CACF,MAAWwuB,GAAYA,EAASvc,OAASy4B,EAAAA,WAEhCzJ,EAAMw+e,gBAAgBjxf,EAASxuB,GAE1C,CAEA,QACEq0V,YAAAA,CAAapzT,GAAO,IAAErwB,EAAG,MAAE0jV,IAGzB,IAFAD,EAAAA,GAAAA,IAAapzT,EAAO,CAAErwB,MAAK0jV,UAEvBA,EAAM/mU,EAAAA,IAAM,CACd,MAAMuzf,EAAoBrjhB,OAAO2nC,QAAQkvT,EAAM/mU,EAAAA,KAAM+X,QAAO,CAACi5Q,GAAOv+S,EAAIsoH,MAClEA,EAAItoH,GAENu+S,EAAK/3S,KAAK8hH,GAGVs4Z,GAA0B3/e,EAAO,CAC/BjhC,KACAiS,KAAWsb,EAAAA,GACXqJ,UAAW52B,EAAG4M,UAAU,EAAG5M,EAAGqJ,QAAQ,QAInCk1S,IACN,IAEHoiO,GAA2B1/e,EAAOrwB,EAAKkwgB,GAAmB,EAC5D,CAEIxsL,EAAM5pT,EAAAA,KACRjtC,OAAO2nC,QAAQkvT,EAAM5pT,EAAAA,KAAYzkC,SAAQ,EAAEjG,EAAI42B,MACxCA,EAAU52B,IAEb4ghB,GAA0B3/e,EAAO,CAC/BjhC,KACAiS,KAAMy4B,EAAAA,IAEV,GAGN,EAEA6pT,OAAAA,CAAQtzT,GAAO,KACbhvB,EAAI,KACJ4L,EAAI,IACJjN,EAAG,YACH0iV,EAAW,UACX18T,EAAS,SACT0mR,EAAQ,WACRr0Q,KAGI1kC,CAAAA,SAAAA,aAAAA,SAAAA,MAAY2+a,KAAS3+a,CAAAA,SAAAA,aAAAA,SAAAA,KAAY67gB,WACnCvigB,EAAOyigB,GAAYrugB,EAAM4L,IAG3B,MAAMo8U,GAAU1F,EAAAA,GAAAA,IAAQtzT,EAAO,CAC7BhvB,OAAM4L,OAAMjN,MAAK0iV,cAAa18T,YAAW0mR,WAAUr0Q,eASrD,GALIh3B,IAASsb,EAAAA,IACXozf,GAA2B1/e,EAAOrwB,EAAKqpV,GAAS,GAI9ChoV,IAAS42E,EAAAA,GAAQ,CACnB,MAAMptD,GAAUp+B,KAAK29gB,UAAY,CAAC,GAAGpqgB,EAAIrC,QAAQopV,WAEjD,GAAIl8T,EAAQ,CAEV,MAAM+8E,GAAUorQ,EAAAA,GAAAA,IAAU/lW,GAE1B4d,EAAO28e,YAAY,CAAE5lL,YAAah6O,GACpC,CACF,CACF,EAEAm8O,UAAAA,CAAW1zT,EAAOhvB,IACX0iV,EAAAA,GAAAA,IAAW1zT,EAAOhvB,IACrBxU,OAAO8C,KAAK0gC,EAAMilT,SAASjgV,SAAS9E,IAC9BA,EAAIwQ,WAAWM,WACVgvB,EAAMilT,QAAQ/kV,EACvB,GAGN,EAEAm/B,KAAAA,CAAMW,IAGJk4T,EAAAA,GAAAA,IAAWl4T,EAAO5jC,KAAKihE,QAEvBjhE,KAAKihE,OAAO,GAAIr9B,EAAMC,OAAOtK,gCAG7BqK,EAAMw+e,gBAAkB,CAAC,EAEzBp/e,GAAAA,WAAYC,MAAMW,EAAMC,OAAOtK,UACjC,EAKAw9T,SAAAA,CAAUnzT,GAAO,KAAEpjB,EAAI,IAAEjN,IACvB,IAAK,MAAMstC,KAASrgC,EAAM,CACxB,MAAM2Q,GAAWyyG,EAAAA,GAAAA,IAAKhgG,EAAO,CAAEpjB,KAAMqgC,EAAOttC,QAE5C,GAAI4d,EAASvc,OAASsb,EAAAA,IAAOiB,EAASmI,SAAU,CAC9C,MAAMqyH,EAAQ03X,GAAkBz/e,EAAOzS,EAASoI,YAEhDsqB,EAAAA,GAAAA,IAAU8nG,EAAM/nI,KAAMuN,GACtBw6H,EAAMnpJ,IAAI6L,IAAI8iB,EAASxuB,GAAIwuB,EAC7B,CACF,CACF,EAEA0rU,OAAAA,CAAQj5T,GAAO,KAAEhvB,EAAM4L,KAAMs8U,EAAS,IAAEvpV,KACtCspV,EAAAA,GAAAA,IAAQj5T,EAAO,CACbhvB,OAAM4L,KAAMs8U,EAAWvpV,QAGrBupV,EAAUh8V,QAAUg8V,EAAU,GAAGloV,OAASsb,EAAAA,IAC5Cozf,GAA2B1/e,EAAOrwB,EAAKupV,GAAW,EAEtD,EAEA94P,MAAAA,CAAOpgE,EAAOp9B,IACZw9F,EAAAA,GAAAA,IAAOpgE,EAAOp9B,EAAKxG,KAAKkR,SAExBqygB,GAA0B3/e,EAAOp9B,EACnC,G,8CChNK,SAASk9gB,GAAWjgf,EAAKgB,EAAK2xT,GACnC3xT,EAAMA,GAAO,CAAC,EACdA,EAAIqC,OAASrC,EAAIqC,QAAU,MAC3BrC,EAAImC,QAAUnC,EAAImC,SAAW,CAAC,EAC9BnC,EAAImC,QAAQC,OAAS,oBAErB,MAAM6yO,EAAU,IAAIiqQ,YACpB,IAAIzkgB,EAAM,GAEV,OAAO6gG,MAAMt8E,EAAKgB,GACfl7B,MAAM7E,IACL,GAAKA,EAAIw3B,QAAU,IAAM,CAEvB90B,GAAQ0C,MAAM,kBAAmBpF,GAEjC,MAAMmgB,EAAM,CAAEpe,QAAS,mBAIvB,OAFAoe,EAAI80E,SAAWj1F,EAERiF,QAAQ67C,OAAO3gC,EACxB,CACE,OAAOngB,EAAIomE,KAAKu4N,WAClB,IACC95R,MAAMoyG,GACAA,EAAO75F,OAAOvY,MAAK,SAASrC,GAAQ,MAAE3G,EAAK,KAAEyV,IAClD,GAAIA,EAGF,YAFAogV,EAAOrvS,KAAKC,MAAM9nC,IAKpBA,GAAOw6P,EAAQC,OAAOp5Q,EAAO,CAAEizJ,QAAQ,IACvC,MAAMtwF,EAAQhkD,EAAItT,MAAM,eAKxB,OAHAsT,EAAMgkD,EAAMjxD,MACZixD,EAAM1gE,IAAIukD,KAAKC,OAAOp+C,QAAQwtV,GAEvBz6O,EAAO75F,OAAOvY,KAAKrC,EAC5B,KAEN,CAEO,SAAS08gB,KACd,MAAMtlM,EAAmC,qBAAhBqlM,YAIzB,OAAOrlM,CACT,C,sCClCA,IAAIulM,GAKJ,SAASC,GAAsBC,GAI7B,MAAM5iM,EAAW4iM,EAAYn4gB,MAAMi4gB,GAAsB30f,YAAc,GAGvE,OAAOiyT,EAASl5S,QAAO,CAACvjC,EAAK0pB,KAC3B,MAAM41f,EAAiB51f,EAAQlK,OAE/B,IAAK8/f,EACH,OAAOt/gB,EAGT,MAAMu/gB,EAAeD,EAAe70gB,SAAS,KAAO60gB,EAAe/3gB,MAAM,GAAI,GAAK+3gB,EAKlF,OAFAt/gB,EAAIyE,KAAK06gB,GAAsB30f,UAAY+0f,GAEpCv/gB,CAAG,GACT,GACL,CAMM,SAAUw/gB,GAA4Bx/gB,EAAmBo2B,EAAeQ,EAAkBwL,EAAgBq9e,GAAe,GAC7H,MAAMC,EAAat9e,GAAQjmB,cAG3B,GAAoB,SAAfujgB,GAAwC,QAAfA,IAA0B1/gB,EAAIkiC,SAASxY,QACnE,OAIF,IAAKy1f,IAAyBM,EAAc,CAC1C,MAAMr6d,GAAWphB,EAAAA,GAAAA,IAAsBpN,GAGvCuof,GAAwB/5d,GAAU96B,QAAQC,aAC5C,CAGA,MAAMo1f,EAAoBP,GAAsBp/gB,EAAIkiC,SAASxY,SAE7D,IAAKi2f,EAAkBvjhB,OACrB,OAIF,MAAMwjhB,EAAgBD,EAAkB73gB,QAAQunH,IAAO8vZ,GAAsB10f,sBAAsB0I,MAAM0sf,GAAYxwZ,EAAEz/G,WAAWiwgB,OAElI,GAAID,EAAcxjhB,OAAQ,CACxB,MAAM48G,EAAeh5G,EAAI8b,MAAM5L,MAAQlQ,EAAI8b,MAAMuN,MAAQuN,EAAY,UAAU,mBAAoB,CAAE7rB,MAAO,IAE5GqrB,EAAS,gBAAiB,CACxBwU,MAAoB,QAAXxI,EAAmBxL,EAAY,UAAU,yCAA0C,CAAEoiF,iBAAkBpiF,EAAY,UAAU,yCAA0C,CAAEoiF,iBAClLj3G,QAAS69gB,EAAcp4gB,KAAK,MAC5Bu5C,QAAS,GACR,CAAEjmD,MAAM,GACb,CAGA,MAAMiH,EAAU,2BAA4B/B,EAAIm/B,OAAOJ,UAAY4gf,EAAkBn4gB,KAAK,SAEtFhF,CAAAA,SAAAA,aAAAA,SAAAA,KAAY2+a,IAGdz+a,GAAQm/C,MAAM9/C,GAFdW,GAAQH,KAAK,GAAIR,QAAgB/B,EAAI8b,KAIzC,C,gBC9EA,IAGE,iBAAM20U,CAAY5hV,EAAKqtD,GAAQ,GAC7B,aAAau0R,EAAAA,GAAAA,IAAY5hV,EAAKqtD,EAChC,EAEA,aAAMutH,EAAQ,MAAEvqJ,EAAK,SAAE9I,EAAQ,YAAEQ,GAAekpf,GAC9C,MAAM//e,EAAM+/e,EAAK//e,KAAO+/e,EAClBC,QAAmB7vL,EAAAA,GAAAA,IAAqBt5T,EAAa,UAAWmJ,GAEtE,GAAIggf,EACF,OAAOA,EAGThgf,EAAIhB,IAAMgB,EAAIhB,IAAI9uB,QAAQ,QAAS,IAInC,MAAM+vgB,EAA0C,WAA5B1khB,KAAK2khB,QAAQz0J,WAA0B,wBAA0B,GAErF,GAAIw0J,EACF,GAAIjgf,EAAIhB,IAAInvB,WAAW,KACrBmwB,EAAIhB,IAAMihf,EAAcjgf,EAAIhB,QACvB,CACL,MAAMA,GAAMmhf,EAAAA,GAAAA,IAASngf,EAAIhB,KAEpBA,EAAIzQ,KAAK1e,WAAWowgB,KACvBjhf,EAAIzQ,KAAO0xf,EAAcjhf,EAAIzQ,KAC7ByR,EAAIhB,KAAMohf,EAAAA,GAAAA,IAAWphf,GAEzB,CAGFgB,EAAIqgf,WAAa,IAAI51d,KAAAA,OAAY,CAAE61d,oBAAoB,IAEvD,MAAMj+e,GAAUrC,EAAIqC,QAAU,OAAOjmB,cAC/B+lB,EAAWnC,EAAImC,SAAW,CAAC,EAC3B9iC,EAAMijD,KAAK0F,UAAU7lB,GAAWE,EAASrC,EAAIhB,IACnD,IAAI6zL,EAgCA0tT,EA9BJ,GAAiB,QAAXl+e,EAAoB,CAGxB,GAFAwwL,EAAU1zL,EAAMo9e,iBAAiBl9gB,GAE5BwzN,EAAU,CACb,MAAM2tT,GAAQt8J,EAAAA,GAAAA,MAMd,OAJArxJ,EAAQnuN,KAAK87gB,GAINA,EAAMr7P,OACf,CAEEtyD,EAAU,GACV1zL,EAAMo9e,iBAAiBl9gB,GAAOwzN,CAElC,CAEA,GAAK7yL,EAAI+uH,QAAU5vH,EAAMshf,gBAAkBthf,EAAMC,OAAOshf,gBAAkBvB,KAGxE,OAAOF,GAAWj/e,EAAIhB,IAAKgB,EAAKA,EAAI2xT,QAAQ7sV,MAAK,KACxC,CAAE8sV,eAAgBA,EAAehvV,KAAK,KAAMvD,EAAK,eACvD0F,OAAOjC,GACDu8E,EAAQv8E,KAQnB,MAAO,EACL,IACE,MAAMsd,QAAYuggB,EAAYplhB,KAAMykC,EAAKnJ,GAEzC,IAAKmJ,EAAI8d,WACP,OAAO19B,EAWT,GARKmggB,EAKHA,EAAgBxkgB,KAAOwkgB,EAAgBxkgB,KAAKvY,OAAO4c,EAAIrE,MAHvDwkgB,EAAkBnggB,GAMhBA,GAAK+mB,YAAY71B,KAUnB,cALOivgB,EAAgBp5e,YAAY+X,aAC5Bqhe,EAAgBp5e,YAAYgY,YAC5Bohe,EAAgBp5e,YAAY71B,YAC5BivgB,EAAgBp5e,YAAYghJ,QAE5Bo4V,EARPvgf,EAAIhB,IAAM5e,EAAI+mB,WAAW71B,IAU7B,CAAE,MAAOxO,IACP,OAAOu8E,EAAQv8E,GACjB,CAGF,SAAS69gB,EAAYlkW,EAAMz8I,EAAKnJ,GAC9B,OAAO4lJ,EAAKmkW,OAAO5gf,GAAKl7B,MAAM7E,IAC5B,IAAImgB,EAYJ,OATEA,EADG4f,EAAIw6P,aACDv6R,EAEA4ghB,EAAe5ghB,GAGvB2xV,EAAevyV,EAAK,UAAW+gB,GAE/Bq/f,GAA4Bx/gB,EAAKo2B,EAAUQ,EAAamJ,EAAIqC,QAErDjiB,CAAG,GAEd,CAEA,SAASwxU,EAAevyV,EAAK8vB,EAAS,UAAWlvB,GAC/C,MAAM4yN,EAAU1zL,EAAMo9e,iBAAiBl9gB,IAAQ,GAI/C,MAAQwzN,EAAQx2N,OACdw2N,EAAQrlN,MAAM2hB,GAAQlvB,UAGjBk/B,EAAMo9e,iBAAiBl9gB,EAChC,CAEA,SAASwhhB,EAAe5ghB,GACtB,IAAImgB,EAAMngB,EAAI8b,KAEd,MAAM+kgB,EAAa7ghB,EAAIkiC,QAAQ,qBAsB/B,OApBK2+e,GAAcA,IAAejqf,EAAY,oBAC5CR,EAAS,iBAAkByqf,EAAY,CAAE/lhB,MAAM,IAG7B,MAAfkF,EAAIw3B,QAA0B,OAARrX,IACzBA,EAAM,CAAC,GAGW,kBAARA,IACVA,EAAM,CAAErE,KAAMqE,IAGhBzkB,OAAOyM,iBAAiBgY,EAAK,CAC3B8iB,QAAa,CAAEpnC,MAAOmE,EAAIw3B,QAC1Bspf,YAAa,CAAEjlhB,MAAOmE,EAAIw+R,YAC1B9xM,SAAa,CAAE7wF,MAAOmE,EAAIkiC,SAC1B6+e,KAAa,CAAEllhB,MAAOmE,EAAIypL,SAC1Bm4S,KAAa,CAAE/le,MAAOkkC,EAAIhB,OAGrB5e,CACT,CAEA,SAASi/D,EAAQv8E,GACf,IAAIsd,EAAMtd,EAEV,GAAKA,GAAKoyF,SAAW,CACnB,MAAMj1F,EAAM6C,EAAIoyF,UAGkB,IAA7Bl1D,EAAIihf,sBAAiD,MAAfhhhB,EAAIw3B,QAC7CpB,EAAS,cAAe2J,EAAIkhf,cAAe,CAAEnmhB,MAAM,IAG5B,qBAAbkF,EAAI8b,OACdqE,EAAMyggB,EAAe5ghB,GAEzB,CAIA,OAFA2xV,EAAevyV,EAAK,SAAU+gB,GAEvBlb,QAAQ67C,OAAO3gC,EACxB,CACF,EAEA+ggB,UAAAA,EAAW,OAAE3kd,EAAM,MAAEr9B,GAASrU,GAC5B0xC,EAAO,+BAAgC1xC,EAAW,CAAE/vB,MAAM,GAC5D,EAEAw7T,aAAAA,EAAc,OAAE/5P,EAAM,MAAEr9B,GAASrU,GAC/B0xC,EAAO,kCAAmC1xC,EAAW,CAAE/vB,MAAM,GAC/D,EAEAw9T,QAAAA,EAAS,OAAE/7P,EAAM,MAAEr9B,GAASrU,EAAY,IACtC0xC,EAAO,6BAA8B1xC,EAAW,CAAE/vB,MAAM,GAC1D,EAEA,oBAAMk4V,EAAe,QAAExmV,EAAO,SAAE4pB,IAAY,SAC1C3J,EAAQ,WAAEwmU,EAAU,KAAE7sR,EAAI,IAAErmC,IAE5BA,EAAMA,GAAO,CAAC,EAERA,EAAIhB,MACRgB,EAAIhB,IAAMtS,EAASq2U,cAAc7P,IAInClzT,EAAIqC,OAAS,OACbrC,EAAIjkB,KAAOsqD,EAEX,MAAMpmE,QAAYo2B,EAAS,UAAW,CAAE2J,QAExC,OAAkB,IAAbA,EAAIm/F,MAA+B,eAAbl/H,EAAIkQ,YACvBkmB,EAAS,YAAap2B,EAAI8b,MAEzB9b,EAAI8b,KAAKhe,KAAKyV,GAAM/G,EAAQylV,KAAK1+U,EAAErD,KAAMqD,EAAEtV,KAAOsV,MAClC,IAAbwsB,EAAIm/F,MAAkBl/H,EAAIkQ,MAAQlQ,EAAI/B,GACzCm4B,EAAS,OAAQ,CAAEta,KAAM9b,IAEzBA,CAEX,EAEAmhhB,YAAAA,EAAa,OAAE5kd,EAAM,MAAEr9B,GAASrU,EAAY,IAC1C0xC,EAAO,iCAAkC1xC,EAAW,CAAE/vB,MAAM,GAC9D,EAEA,sBAAMo4V,EAAiB,QAAE1mV,EAAO,SAAE4pB,IAAY,KAC5ClmB,EAAI,WAAE+iV,EAAU,KAAE7sR,EAAI,IAAErmC,IAIxB,GAFAA,EAAMA,GAAO,CAAC,GAERA,EAAIhB,IAAM,CAEd,MAAMkC,EAASz0B,EAAQ,aAAa0D,GAEpC6vB,EAAIhB,KAAM8nB,EAAAA,GAAAA,IAAS5lB,EAAOvC,MAAM+jN,WAAY,SAAUwwG,EACxD,CAEAlzT,EAAIqC,OAAS,OACbrC,EAAIjkB,KAAOsqD,EAEX,MAAMpmE,QAAYo2B,EAAS,UAAW,CAAE2J,QAExC,OAAkB,IAAbA,EAAIm/F,MAA+B,eAAbl/H,EAAIkQ,YACvBkmB,EAAS,YAAap2B,EAAI8b,MAEzB9b,EAAI8b,KAAKhe,KAAKyV,GAAM/G,EAAQylV,KAAK1+U,EAAErD,KAAMqD,EAAEtV,KAAOsV,MAClC,IAAbwsB,EAAIm/F,MAAkBl/H,EAAIkQ,MAAQlQ,EAAI/B,GACzCm4B,EAAS,OAAQ,CAAEta,KAAM9b,IAEzBA,CAEX,EAEAwnF,eAAAA,CAAgB34E,EAAK/M,GACnB,OAAOi5G,EAAAA,GAAAA,IAASlsG,EAAK,CACnBqB,KAAUy4B,EAAAA,GACV/T,SAAU,CAAEtwB,KAAMxC,EAAIwC,OAE1B,EAEAgxT,WAAAA,CAAYzmT,EAAK/M,GACf,MAAM8a,EAAI9a,EAAI8yB,UAAY,CAAC,EAa3B,OAXAmQ,EAAAA,GAAAA,IAASjjC,EAAKs/gB,KACdr8e,EAAAA,GAAAA,IAASnoB,EAAGykgB,IACZC,GAAe1kgB,EAAEqa,aACjBqqf,GAAe1kgB,EAAEya,QAEjBza,EAAEtY,KAAO,GAEJxC,GAAKwzB,MAAMurR,KAAKvrR,MAAMgwF,OAAOj8F,OAChCvnB,EAAIwzB,KAAKurR,IAAIvrR,KAAKgwF,MAAMj8F,KAAO,IAG1BvnB,CACT,EAEAqxV,YAAAA,CAAatkV,EAAK/M,GAChB,MAAM8a,EAAI9a,EAAI8yB,UAAY,CAAC,EAgB3B,OAdMhY,EAAEya,SACNza,EAAEya,OAAS,CAAC,GAGRza,EAAEqa,cACNra,EAAEqa,YAAc,CAAC,GAGnBsqf,GAAgBz/gB,IAChBijC,EAAAA,GAAAA,IAASjjC,EAAK0/gB,KACdz8e,EAAAA,GAAAA,IAASnoB,EAAG6kgB,IACZH,GAAe1kgB,EAAEqa,aACjBqqf,GAAe1kgB,EAAEya,QAEVv1B,CACT,EAEAsxV,cAAAA,CAAevkV,EAAK4d,GAclB,OAZMA,EAASmI,WACbjrB,EAAAA,GAAAA,IAAI8iB,EAAU,WAAY,CAAC,GAGvBA,EAASmI,SAASqC,cACtBttB,EAAAA,GAAAA,IAAI8iB,EAAU,uBAAwB,CAAC,GAGnCA,EAASmI,SAASyC,SACtB1tB,EAAAA,GAAAA,IAAI8iB,EAAU,kBAAmB,CAAC,GAG7BA,CACT,EAGAwR,gBAAAA,CAAiBpvB,EAAKkvB,GACpB,OAAO2G,EAAAA,GAAAA,GAAsB3G,EAC/B,GAGF,MAAMyjf,GAAe,CACnB,UAAW,QAAS,SAAU,cAAe,WAGzCC,GAAmB,CACvB,kBACA,WACA,oBACA,oBACA,QACA,SACA,gBACA,aACA,gBACA,mBAGIL,GAAc,CAClB,UAAW,QAAS,SAAU,MAG1BC,GAAkB,IACnBI,GACH,OAGF,SAASF,GAAgBz/gB,GACvB,IAAM,MAAMgU,KAAKhU,EACf,GAAKgU,EAAElG,WAAW,aACT9N,EAAIgU,OACN,CACL,MAAMgxC,EAAIhlD,EAAIgU,GAETu0G,KAASvjE,IACZy6d,GAAgBz6d,EAEpB,CAEJ,CAEA,SAASw6d,GAAex/gB,GAChBA,GAINpG,OAAO8C,KAAKsD,GAAKoC,SAAS9E,IACjBA,EAAIwG,MAAM,yCACR9D,EAAI1C,EACb,GAEJ,CCrXO,SAASsihB,GAAa7sf,EAAWi/T,GACtC,MAAO,IACFqC,GAAAA,GAEHj3T,KAAAA,GACE,MAAO,KACFk3T,EAAAA,GAAAA,IAAevhU,EAAWi/T,GAC7Bu1F,OAAkB,KAClBp3T,MAAkB,GAClB4oZ,YAAkB,EAClBV,aAAkB,EAClBqG,gBAAkB,EAClBlF,cAAkB,GAClBgB,iBAAkB,CAAC,EACnBzpL,QAAkB,GAClB1O,QAAkB,CAAC,EACnBu5L,gBAAkB,CAAC,EAEvB,EAEAlxgB,QAAS,IACJ2pV,GAAAA,GAAgB3pV,WAChBA,MACAm1gB,IAGLxoe,UAAW,IACNg9S,GAAAA,GAAgBh9S,aAChBA,MACAyoe,IAGL3yf,QAAS,IACJknU,GAAAA,GAAgBlnU,WAChBA,MACA4yf,IAGT,CAEO,MAAMC,GAAiBA,CAAC1jf,EAAOvvB,KACpCyqgB,GAAal7e,EAAOvvB,EAAI,EAG1B,I,YC9CA,IACEkzgB,uBAAwBA,CAAC7if,EAAY1yB,EAAcw1C,EAAgBprB,IAAqB,EACtForf,eACArtd,UACAstd,0BAEA,MAAM9hgB,EAAM,CAAC,CACXliB,GAAOumD,GAAAA,GACPn7B,KAAOs7B,GAAAA,GAAuB0kR,QAC9B75S,MAAOoH,EAAY,UAAU,gBAG/B+9B,EAAQx0C,GAER,MAAMikB,EAAa53B,EAAQ01gB,gBAAgBD,GAE3C,IAAKrrf,EAAY,0BAA4BA,EAAY,mBAA2D,MAAtCA,EAAY,mBAAmB34B,GAAY,CACvH,MAAM2sB,EAAUgM,EAAY,kBAC5B,IAAI4P,EAAW5P,EAAY,kBACzB/J,EAAAA,GAAW+3B,SAGbpe,GAAWuxD,EAAAA,GAAAA,KAAOp4C,EAAAA,GAAAA,IAASnZ,EAAU,mBAAoB5b,EAAQ3sB,IAAK,CACpE,gBACC6J,QAAQk3T,GAAyC,WAAxBA,EAAQryN,cAEpC,MAAMw1a,EAAoB,CAAC,EACrBC,EAA2B,CAAC,EAClC,IAAIC,GAAe,EAEnBD,EAAoB,QAAU,GAC9B,IAAK,MAAMpjN,KAAWx4R,EACpB27e,EAAanjN,EAAQpqS,SAAStwB,MAAQ06T,EAGxC,IAAK,MAAMnqS,KAAauP,EAAY,CAClC,IAAI/I,EAAYxG,EAAUwG,UAErBA,GAAc8mf,EAAa9mf,KAE9BA,EAAY,QAGd,IAAI8gB,EAAQime,EAAoB/mf,GAE3B8gB,IACHA,EAAQ,GACRime,EAAoBvtf,EAAUwG,WAAa8gB,GAE7CA,EAAM13C,KAAKowB,EACb,CAEA,IAAK,MAAMmqS,KAAWx4R,EAAU,CAC9B,MAAMvoC,EAAK+gU,EAAQpqS,SAAStwB,KAExB+9gB,EACFA,GAAe,EAEf1td,EAAQx0C,GAGVA,EAAI1b,KAAK,CACPxG,GAAO,aAAcA,IACrBorB,KAAO,UACPmG,MAAOwvS,EAAQryN,cAGjB,MAAM21a,EAAiBF,EAAoBnkhB,IAAO,GAElD+jhB,EAAa7hgB,EAAKmigB,EACpB,CAEA,MAAMC,EAAUH,EAAoB,QAEhCG,EAAQnmhB,SACLimhB,GACH1td,EAAQx0C,GAGVA,EAAI1b,KAAK,CACPxG,GAAOukhB,GAAAA,GACPn5f,KAAO,UACPmG,MAAOoH,EAAY,UAAU,mBAG/Borf,EAAa7hgB,EAAKoigB,GAEtB,MACEP,EAAa7hgB,EAAKikB,GAGpB,OAAOjkB,CAAG,EAMZ+hgB,eAAAA,CAAgBhjf,EAAY1yB,EAAcw1C,EAAgBprB,EAAkB1H,GAC1E,MAAMiW,EAAgB34B,EAAQstB,IAAI,aAElC,MAAO,CAACmof,EAA2B,KAC1B98e,EAAcr9B,QAAQ+sB,IACnBA,EAAUmG,UAAYinf,EAAoBnygB,SAAS+kB,EAAU52B,KAG3E,EAEAwkhB,aAAAA,CAAcvjf,EAAY1yB,EAAcw1C,EAAgBprB,GACtD,MAAMu2e,EAAwBv2e,EAAY,kBACxC/J,EAAAA,GAAW+3B,SAEP6nD,EAAiB71E,EAAY,kBAC7BquR,EAAYx4M,EAAexuG,GAEjC,OAAOkvgB,EAAsBrlgB,QAAQk3T,GAAiBA,EAAQ1pS,KAAKyG,cAAgBkpR,GAAqC,WAAxB+Z,EAAQryN,aAC1G,GC7HF,IAAiB,ECQjB,IACE,iBAAM+1a,EAAY,MAChBxjf,EAAK,OAAEq9B,EAAM,SAAEnmC,EAAQ,QAAE5pB,EAAO,YAAEoqB,EAAW,UAAEorB,IACzC,GAAE/jD,UAGFm4B,EAAS,2BAA4B,CAAElmB,KAAM2c,EAAAA,GAAWC,SAAW,CAAEhyB,MAAM,IAGjF,MAAM8vB,QAAgBwL,EAAS,kBAAmB,CAChDlmB,KAAM2c,EAAAA,GAAWC,QACjB7uB,KACA8hC,IAAM,CAAEhB,IAAK,GAAIlS,EAAAA,GAAWC,YAAcgiB,OAAO7wC,OAChD,CAAEnD,MAAM,IAEX,IAAI6nhB,EAAc,iBAAkB7ze,OAAO7wC,kBAM3C,GAJW,UAAPA,IACF0khB,EAAc,kBAGV/3f,EAGJ,MAFA2xC,EAAO,YAAa,KAAM,CAAEzhE,MAAM,IAClCyhE,EAAO,cAAe,CAAEu3R,QAAS,OAC3B,IAAI0f,GAAAA,GAAqBv1W,GAIjCs+D,EAAO,cAAe,CAAEu3R,QAAS6uL,UAE3B19gB,QAAQ60B,IAAI,CAChB1D,EAAS,eAAe,KAG1BA,EAAS,aAET,MAAMwsf,EAAc,CAClB1ygB,KAAM2c,EAAAA,GAAW+3B,QACjB7kB,IAAM,CACJhB,IAAgB,GAAIlS,EAAAA,GAAW+3B,WAAa9V,OAAO7wC,KACnDmzV,eAAgBnzV,IAId4khB,EAAgBltf,UACpB,IAAItnB,EAAQ,IACZ,MAAMw3e,EAAQ,IAEd,MAAQx3e,EAAQ,IAAM2zC,EAAU8ge,sBACxBzve,YAAW,QAAUwyc,GAC3Bx3e,GAASw3e,EAGX,GAAKjvd,EAAY,wBAAwB/J,EAAAA,GAAW+3B,SAClD,OAAOxuB,EAAS,qBAAsBwsf,EAAa,CAAE9nhB,MAAM,GAC7D,EAGF,GAAW,UAAPmD,GAAkBuO,EAAQ,aAAaqgB,EAAAA,GAAW1H,SAAU,CAC9D,MAAMigC,QAAiBhvB,EAAS,UAAW,CACzClmB,KAAM2c,EAAAA,GAAW1H,QACjBlnB,GAAMknB,EAAAA,GAAQsD,kBACdsX,IAAM,CAAEhB,IAAK,GAAI4jf,KAAiB91f,EAAAA,GAAW1H,YAAcshG,OAAO,KAG9D8wQ,EAAmBnyU,GAAUjyB,MAAM5f,GAAWA,EAAEtV,KAAOknB,EAAAA,GAAQsD,oBAErE,GAAI8uW,EAAkB,CACpB,MAAM1iW,GAAa0iW,EAAiB17X,OAAS07X,EAAiBjmW,UAAUpqB,MAAM,KAE9Eq1D,EAAO,sBAAuB1nC,EAAW,CAAE/5B,MAAM,GACnD,CACF,CAEA,MAAMqzB,EAAuC,CAC3CqY,SAAmBq8e,IACnBE,aAAmB3sf,EAAS,UAAW,CAAElmB,KAAMyzC,EAAAA,KAC/Cq/d,kBAAmB5sf,EAAS,UAAW,CAAElmB,KAAMy4B,EAAAA,KAC/Cyc,SAAmBhvB,EAAS,UAAW,CAAElmB,KAAMi+C,EAAAA,GAAIhpC,UACnDoyS,SAAmBnhS,EAAS,qBAAsB,CAChDlmB,KAAM2c,EAAAA,GAAWC,QACjBiT,IAAM,CAAE0mF,OAAO,IACd,CAAE3rH,MAAM,KAGT0R,EAAQ,aAAa2hD,EAAAA,GAAI0E,kBAC3B1kC,EAAKooT,cAAgBngT,EAAS,UAAW,CAAElmB,KAAMi+C,EAAAA,GAAI0E,kBAGnDrmD,EAAQ,aAAa2hD,EAAAA,GAAIoD,WAC3BpjC,EAAK80f,SAAW7sf,EAAS,UAAW,CAAElmB,KAAMi+C,EAAAA,GAAIoD,WAGlD,MAAMvxD,QAAiB+jX,EAAAA,GAAAA,IAAQ51V,GAEzB+0f,EAA8Btsf,EAAY,sCAAsC,kCAEtF,IAAKssf,EAA6B,CAChC,MAAM/1f,EAAUyJ,EAAY,aAO5B,YALAt7B,KAAKkrF,SAAS/hF,KAAK,CACjBH,KAAQ,GAAI6oB,0BAAyC,UAAPlvB,EAAiB,cAAgB,KAC/EnB,OAAQ,CAAEqwB,YAId,OAEMiJ,EAAS,kBAAmB,KAAM,CAAEt7B,MAAM,IAEhDyhE,EAAO,mBAAoB,CACzBj2B,QAAS,GACTxM,IAASttB,EAAQ01gB,kBACjB11gB,WACC,CAAE1R,MAAM,IAGX,MAAM4kb,EAAa,CACjBt3E,KAAkB,EAClBG,WAAkB,EAClBG,YAAkBhG,EAAAA,GAClB+F,kBAAkB,GAGpBlsS,EAAO,sBAAuB,CAC5Bj4D,KAAM,cACNo7a,cACC,CAAE5kb,MAAM,IACXyhE,EAAO,sBAAuB,CAC5Bj4D,KAAM,iBACNo7a,cACC,CAAE5kb,MAAM,IACXyhE,EAAO,sBAAuB,CAC5Bj4D,KAAM,iBACNo7a,cACC,CAAE5kb,MAAM,IACXyhE,EAAO,sBAAuB,CAC5Bj4D,KAAM,mBACNo7a,cACC,CAAE5kb,MAAM,IAEX,MAAMqohB,IAA2C,IAAxBnjhB,EAAIu3T,SAASn7T,QAAmD,UAAnC4D,EAAIu3T,SAAS,GAAG3iS,UAAUtwB,MAE5E6+gB,GACF5md,EAAO,oBAAqB,CAC1B3kC,OAAgB,EAChBurf,gBAAgB,EAChB5nf,WAAgB,GACf,CAAEzgC,MAAM,GAEf,GCrJF,MAAMq5gB,GAAmBA,KACvB,MAAMiP,EAAe1B,GAAa,KAAM,MAiBxC,OAfA0B,EAAa52gB,QAAU,IAClB42gB,EAAa52gB,WACbA,IAGL42gB,EAAajqe,UAAY,IACpBiqe,EAAajqe,aACbA,IAGLiqe,EAAan0f,QAAU,IAClBm0f,EAAan0f,WACbA,IAGEm0f,CAAY,EAEfjkf,GAA0B,CAC9BtK,UAAgBy5B,EAAAA,GAChBwnS,gBAAgB,GAGlB,QACEs+K,UAAWD,KACXh1e,OAAM,GACN4qG,KAAW+3Y,I,YCpCN,SAASuB,GAAWxnhB,GACzB,MAAO,4EAA4EmV,KAAKnV,EAC1F,CAMO,SAASynhB,GAAoB54gB,GAClC,MAAMg9W,EAAM,kCAEZ,OAAOA,EAAI12W,KAAKtG,EAClB,C,4BCRA,MAAM64gB,GAAgB,GAEf,SAASC,GAAWluf,EAAM9oB,EAASowE,EAAQ88Q,GAChD,MAAQlT,QAAUglD,SAAS,WAAEE,IAAc,SAAEM,GAAa12W,EAEpDmuf,EAAe,GA6BrB,OA3BA/3I,EAAW5tY,KAAK,CAACy4L,EAAGr6L,KAClB,MAAM26L,EAAIm1M,EAAS74W,MAAO0jK,GAAMN,EAAEjyL,OAASuyL,EAAEvyL,OACvCquH,EAAU4jE,EAAEjyL,MAAQuyL,EAAEvyL,MAAS,WAAYpI,EAAQ,IAEnDgU,EAAO1D,EAAQ,UAAU,4BAEzBk3gB,EAAYl3gB,EAAQ,UAAU,6CAC9Bm3gB,EAAYn3gB,EAAQ,UAAU,6CAIpC,GAFAo3gB,GAAUp3gB,EAASowE,EAAQ25G,EAAEjyL,KAAMm/gB,EAAc9wZ,EAAQziH,EAAMwzgB,EAAWC,GAEtE9sV,EAAE09M,SACC19M,EAAE09M,OAAOsvI,YAAa,CACzB,MAAMzkhB,EAAMoN,EAAQ,UAAU,4BACxBzK,EAAUyK,EAAQ,UAAU,sBAAuB,CAAEpN,QAE3Dw9E,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,CAGF,GAAIw0L,EAAEy4M,aAAeq0I,GAAW9sV,EAAEy4M,cAAgBn4M,EAAEtwE,IAAK,CACvD,MAAMxkH,EAAUyK,EAAQ,UAAU,6CAElCowE,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,KAGK66E,CACT,CAEO,SAASknc,GAAQxuf,EAAM9oB,EAASowE,EAAQ88Q,EAAexkD,EAAYr5S,GACxE,MAAMkohB,EAAerqL,EAAc5pV,SAAS,gBACtCgM,EAAOiogB,EAAezohB,KAAKO,MAAMy5B,KAAKgkR,GAAKz9S,EAE3CmohB,GAAwBjwI,EAAAA,GAAAA,GAA0Bj4X,GAElDmogB,EAAW3uf,EAAKoM,SAASpM,KAAKynW,SAAW,GACzCmnJ,EAAS5uf,EAAKoM,SAASpM,KAAKkxT,OAAOglD,QAAQzR,OAAS,GAEpDoqJ,EAAY,GAElBD,EAAOhghB,SAAQ,CAACmlI,EAAGzqF,KACjB,MAAM+zE,EAAS0W,EAAE/kI,MAAQ2/gB,EAASrle,IAAMt6C,MAAQ,UAAWs6C,EAAM,IAEjE,IAAKyqF,EAAEytQ,OAASztQ,EAAE+6Y,MAAO,CACvB,MAAMhlhB,EAAMoN,EAAQ,UAAU,yBACxBzK,EAAUyK,EAAQ,UAAU,sBAAuB,CAAEpN,QAE3Dw9E,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,CAEA,MAAMmO,EAAO1D,EAAQ,UAAU,2BACzBk3gB,EAAYl3gB,EAAQ,UAAU,4CAC9Bm3gB,EAAYn3gB,EAAQ,UAAU,4CAEpCo3gB,GAAUp3gB,EAASowE,EAAQysD,EAAE/kI,KAAM6/gB,EAAWxxZ,EAAQziH,EAAMwzgB,EAAWC,EAAU,IAGnF,IAAIU,GAAiB,EA0ErB,OAxEAJ,EAAS//gB,SAAQ,CAACgzL,EAAGt4I,KACnB,MAAM,KAAE1uC,EAAI,UAAEo0gB,GAAcC,GAAc/3gB,EAAS0qL,EAAG8sV,EAAuBnohB,GAEvE82H,EAASukE,EAAE5yL,MAAQs6C,EAAM,EAM/B,GAJI,CAAC4uU,GAAAA,GAAYr8T,MAAOq8T,GAAAA,GAAYE,cAAeF,GAAAA,GAAYG,WAAW79W,SAASI,KACjFm0gB,GAAiB,GAGfn0gB,IAASs9W,GAAAA,GAAYC,KAAOv9W,IAASs9W,GAAAA,GAAYr8T,MAAO,CAC1D,IAAK,+BAA+BngD,KAAKszgB,GAAWhvf,MAAMzK,WAAW2vT,UAAUD,SAAU,CACvF,MAAMn7U,EAAMoN,EAAQ,UAAU,yBACxBzK,EAAUyK,EAAQ,UAAU,sBAAuB,CAAEpN,QAE3Dw9E,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,CAEA,GAAIuihB,GAAWhvf,MAAMzK,WAAW2vT,UAAUD,UAAY,+BAA+BvpU,KAAKszgB,GAAWhvf,MAAMzK,WAAW2vT,UAAUD,SAAU,CACxI,MAAMx4U,EAAUyK,EAAQ,UAAU,2CAA4C,CAAEiB,IAAK,kBAErFmvE,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,CAEA,GAAImO,IAASs9W,GAAAA,GAAYr8T,QAAUmzd,GAAWhvf,MAAMmlT,mBAAqBspM,EAAc,CACrF,MAAM3khB,EAAMoN,EAAQ,UAAU,0BACxBzK,EAAUyK,EAAQ,UAAU,sBAAuB,CAAEpN,QAE3Dw9E,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,CAEA,IAAKuihB,GAAWhvf,MAAMmlT,kBAAoBvjJ,GAAG+lM,uBAAuB5iD,WAAanqU,IAASs9W,GAAAA,GAAYr8T,MAAO,CAC3G,MAAM/xD,EAAMoN,EAAQ,UAAU,iCACxBzK,EAAUyK,EAAQ,UAAU,sBAAuB,CAAEpN,QAE3Dw9E,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,CACF,CAEA,GAAImO,IAASs9W,GAAAA,GAAYE,cAAe,CACtC,MAAM82J,EAAUh4gB,EAAQ,iBAAiB2f,EAAAA,IAEnCs4f,EAAqBvtV,GAAG+lM,uBAAuB5iD,UAC/CqqM,EAAoBF,EAAQrxf,MAAM4jK,GAAMA,EAAE94L,KAAO,GAAIpC,EAAM+4B,SAASC,aAAe4vf,MAEzF,IAAKC,GAAqBD,EAAoB,CAC5C,MAAMv0gB,EAAO1D,EAAQ,UAAU,2BAE/BowE,EAAOn4E,KAAK+H,EAAQ,UAAU,yCAA0C,CAAE0D,OAAM5L,KAAMmghB,IACxF,CAEA,IAAKA,EAAoB,CACvB,MAAMrlhB,EAAMoN,EAAQ,UAAU,0CAE9BowE,EAAOn4E,KAAK+H,EAAQ,UAAU,sBAAuB,CAAEpN,QACzD,CACF,CAEA,GAAI8Q,IAASs9W,GAAAA,GAAYG,YAAcz2L,EAAEytV,cAActjf,MAAO,CAC5D,MAAMjiC,EAAMoN,EAAQ,UAAU,gCACxBzK,EAAUyK,EAAQ,UAAU,sBAAuB,CAAEpN,QAE3Dw9E,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,KAMIsihB,GAAsC,IAApBJ,EAAS7nhB,QAAkBP,EAAM6iC,OACvDk+C,EAAOn4E,KAAK+H,EAAQ,UAAU,uDAGzBowE,CACT,CAEA,SAAS2nc,GAAc/3gB,EAAS0qL,EAAG0tV,EAAM/ohB,GACvC,IAAIgphB,EAAW,KACf,MAAML,EAAUh4gB,EAAQ,iBAAiB2f,EAAAA,IAEzC,GAAI+qK,EAAE+lM,sBAAuB,CAC3B,MAAMwnJ,EAAqBvtV,GAAG+lM,uBAAuB5iD,UAC/CqqM,EAAoBF,EAAQrxf,MAAM4jK,GAAMA,EAAE94L,KAAO,GAAIpC,EAAM+4B,SAASC,aAAe4vf,MAEzF,GAAIC,EAEF,MAAO,CACLx0gB,KAAWs9W,GAAAA,GAAYE,cACvB42J,UAAW,MAQf,GAJAO,EAAWD,EAAKzxf,MAAM2xf,GACb5tV,EAAE+lM,sBAAsB5iD,YAAcyqM,EAAIlwf,SAAStwB,MAAQwghB,EAAIlwf,UAAUqC,aAAev7B,OAAOa,UAAUC,eAAeC,KAAKqohB,EAAIlwf,SAASqC,YAAa,6BAG5J4tf,EACF,MAAO,CACL30gB,KAAWs9W,GAAAA,GAAYr8T,MACvBmzd,UAAWO,GAOf,GAFAA,EAAWD,EAAKzxf,MAAM2xf,GAAQ5tV,EAAE+lM,sBAAsB5iD,YAAcyqM,EAAIlwf,SAAStwB,OAE7EughB,EACF,MAAO,CACL30gB,KAAWs9W,GAAAA,GAAYC,IACvB62J,UAAWO,EAGjB,CAEA,OAAI3tV,EAAEytV,cACG,CACLz0gB,KAAWs9W,GAAAA,GAAYG,UACvB22J,UAAW,MAIR,CAAC,CACV,CAEA,SAASV,GAAUp3gB,EAASowE,EAAQt4E,EAAMghH,EAAQ,GAAIqN,EAAQziH,EAAMwzgB,EAAWC,GAS7E,IAP6C,IAAzCr+Z,EAAM1wE,WAAYiiJ,GAAMvyL,IAASuyL,KACnCj6G,EAAOn4E,KAAK+H,EAAQ,UAAU,yCAA0C,CAAE0D,OAAM5L,UAGlFghH,EAAM7gH,KAAKH,GAGPA,GAAQA,GAAMlI,OAASmnhB,GAAe,CACxC,MAAMnkhB,EAAMoN,EAAQ,UAAU,yBACxBzK,EAAUyK,EAAQ,UAAU,yCAA0C,CAAEpN,MAAKqO,IAAK81gB,KAExF3mc,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,CAGA,IAAKuC,EAAM,CACT,MAAMlF,EAAMoN,EAAQ,UAAU,yBACxBzK,EAAUyK,EAAQ,UAAU,sBAAuB,CAAEpN,QAE3Dw9E,EAAOn4E,KAAK+H,EAAQ,UAAU,wCAAyC,CAAEmmH,SAAQ5wH,YACnF,CAGA,IAAKuhhB,GAAoBh/gB,GAAO,CAC9B,MAAM+vF,EAAQ,kCAEdzX,EAAOn4E,KAAK+H,EAAQ,UAAU,qCAAsC,CAClEk3gB,YAAWp/gB,OAAM+vF,QAAOsvb,cAE5B,CACF,C,gBCjOO,SAASoB,GAAexqM,EAAS/tU,EAASowE,EAAQ88Q,GACvD,MAAM9xV,EAAI4E,EAAQ,UAElB,IAAK+tU,GAAuB,KAAZA,EAAgB,CAC9B,MAAMn7U,EAAMwI,EAAE,yBAId,OAFAg1E,EAAOn4E,KAAKmD,EAAE,sBAAuB,CAAExI,SAEhCw9E,CACT,CAEA,MAAMhnE,EAAOovgB,GAAQzqM,GACf9sU,EAAM,OACNw3gB,EAAe,aAMrB,QAJKA,EAAaj0gB,KAAK4E,IAASA,EAAOnI,IACrCmvE,EAAOn4E,KAAKmD,EAAE,0CAGTg1E,CACT,CAEA,SAASooc,GAAQzqM,GACf,IAAKA,EACH,OAAO,KAGT,MAAM2qM,GAAcj0N,EAAAA,GAAAA,IAAQspB,GAE5B,OAAOjN,EAAAA,GAAAA,IAAS43M,EAAa,CAC3Br7O,WAAa,EACbD,UAAa,KACby+E,YAAa,EACbC,YAAa,GAEjB,CCrCO,SAAS96T,GAAa3xD,EAAO2Q,EAASowE,EAAQ88Q,GACnD,MAAM9xV,EAAI4E,EAAQ,UAElB,IAAK3Q,EACH,OAAO+gF,EAGT,MAAMnvB,EAAapL,KAAKC,MAAMzmD,GACxBqU,EAAOu9C,EAAWv9C,KAExB,OAAKA,GAIQ,OAATA,IACGu9C,EAAWC,aACdkvB,EAAOn4E,KAAKmD,EAAE,sBAAuB,CAAExI,IAAK,iBAGzCquD,EAAWE,iBACdivB,EAAOn4E,KAAKmD,EAAE,sBAAuB,CAAExI,IAAK,qBAGzCquD,EAAWG,cACdgvB,EAAOn4E,KAAKmD,EAAE,sBAAuB,CAAExI,IAAK,kBAGzCquD,EAAWI,YACd+uB,EAAOn4E,KAAKmD,EAAE,sBAAuB,CAAExI,IAAK,iBAI3CquD,EAAWk0Q,UAAqB,OAATzxT,GAC1B0sE,EAAOn4E,KAAKmD,EAAE,sBAAuB,CAAExI,IAAK,cAGvCw9E,GAzBEA,CA0BX,CAEO,SAASuoc,GAAWtphB,EAAO2Q,EAASowE,EAAQ88Q,GACjD,MAAM,WAAEyrL,GAAe9ie,KAAKC,MAAMzmD,GAC5B+L,EAAI4E,EAAQ,UACZ44gB,EAAY,kCACZC,EAAY,qDAElB,IAAKF,EACH,OAAOvoc,EAGT,MAAM0oc,EAAgB,IAAIhugB,IAAI6tgB,GAU9B,OARIA,EAAW/ohB,SAAWkphB,EAAc1vgB,MACtCgnE,EAAOn4E,KAAKmD,EAAE,6CAGZu9gB,EAAWhyf,MAAM+jK,IAAOkuV,EAAUp0gB,KAAKkmL,KAAOmuV,EAAUr0gB,KAAKkmL,MAC/Dt6G,EAAOn4E,KAAKmD,EAAE,2CAGTg1E,CACT,CC5DO,SAAS2oc,GAAW3vgB,EAAMpJ,EAASowE,EAAQ88Q,EAAexkD,EAAYr5S,GAC3E,IAAK+Z,EAAM,CACT,MAAMxW,EAAMoN,EAAQ,UAAU,yBAE9BowE,EAAOn4E,KAAK+H,EAAQ,UAAU,sBAAuB,CAAEpN,QACzD,CAEA,GAAIwW,IAAS,+BAA+B5E,KAAK4E,GAAO,CACtD,MAAM7T,EAAUyK,EAAQ,UAAU,2CAA4C,CAAEiB,IAAK,kBAErFmvE,EAAOn4E,KAAK1C,EACd,CAEA,OAAO66E,CACT,CCXO,SAAS4oc,GAAkBpjJ,EAAe51X,EAASowE,EAAQ88Q,GAChE,MAAM+rL,EAAY3gf,KAAAA,KAAYs9V,GACxBsjJ,EAAiB,CACrB,CACEp3f,KAAgB,2CAChB6mR,eAAgB,uCAElB,CACE7mR,KAAgB,+CAChB6mR,eAAgB,2CAElB,CACE7mR,KAAgB,sCAChB6mR,eAAgB,0CAElB,CACE7mR,KAAgB,0CAChB6mR,eAAgB,8CAElB,CACE7mR,KAAgB,mDAChB6mR,eAAgB,6CAElB,CACE7mR,KAAgB,sDAChB6mR,eAAgB,gDAElB,CACE7mR,KAAgB,iDAChB6mR,eAAgB,2CAElB,CACE7mR,KAAgB,oDAChB6mR,eAAgB,8CAElB,CACE7mR,KAAgB,kDAChB6mR,eAAgB,6CAElB,CACE7mR,KAAgB,qDAChB6mR,eAAgB,gDAElB,CACE7mR,KAAgB,gDAChB6mR,eAAgB,2CAElB,CACE7mR,KAAgB,mDAChB6mR,eAAgB,8CAElB,CACE7mR,KAAgB,iCAChB6mR,eAAgB,6CAElB,CACE7mR,KAAgB,oCAChB6mR,eAAgB,gDAElB,CACE7mR,KAAgB,+BAChB6mR,eAAgB,2CAElB,CACE7mR,KAAgB,kCAChB6mR,eAAgB,8CAElB,CACE7mR,KAAgB,0CAChB6mR,eAAgB,0CAElB,CACE7mR,KAAgB,uDAChB6mR,eAAgB,6CAElB,CACE7mR,KAAgB,0DAChB6mR,eAAgB,gDAElB,CACE7mR,KAAgB,qDAChB6mR,eAAgB,2CAElB,CACE7mR,KAAgB,wDAChB6mR,eAAgB,+CAUpB,OANAuwO,EAAexhhB,SAASiuB,KACjBzoB,EAAAA,GAAAA,IAAI+7gB,EAAWtzf,EAAK7D,OACvBsuD,EAAOn4E,KAAK+H,EAAQ,UAAU,sBAAuB,CAAEpN,IAAKoN,EAAQ,UAAU2lB,EAAKgjR,kBACrF,IAGKv4N,CACT,CAEO,SAAS+oc,GAAevjJ,EAAe51X,EAASowE,EAAQ88Q,GAC7D,MAAM+rL,EAAY3gf,KAAAA,KAAYs9V,GACxBsjJ,EAAiB,CACrB,CACEp3f,KAAgB,mCAChB6mR,eAAgB,6CAElB,CACE7mR,KAAgB,sCAChB6mR,eAAgB,gDAElB,CACE7mR,KAAgB,iCAChB6mR,eAAgB,2CAElB,CACE7mR,KAAgB,oCAChB6mR,eAAgB,8CAElB,CACE7mR,KAAgB,iCAChB6mR,eAAgB,6CAElB,CACE7mR,KAAgB,oCAChB6mR,eAAgB,gDAElB,CACE7mR,KAAgB,+BAChB6mR,eAAgB,2CAElB,CACE7mR,KAAgB,kCAChB6mR,eAAgB,+CAUpB,OANAuwO,EAAexhhB,SAASiuB,KACjBzoB,EAAAA,GAAAA,IAAI+7gB,EAAWtzf,EAAK7D,OACvBsuD,EAAOn4E,KAAK+H,EAAQ,UAAU,sBAAuB,CAAEpN,IAAKoN,EAAQ,UAAU2lB,EAAKgjR,kBACrF,IAGKv4N,CACT,CCjJO,SAAS59B,GAAOA,EAAS,GAAIxyC,EAASowE,EAAQ88Q,GACnD,MAAM9xV,EAAI4E,EAAQ,UAYlB,OAVsB,IAAlBwyC,EAAO5iD,QACTwgF,EAAOn4E,KAAKmD,EAAE,sBAAuB,CAAExI,IAAKwI,EAAE,iCAAkC,IAGlFo3C,EAAOlhD,KAAK6J,IACLA,EAAEquY,QACLp5T,EAAOn4E,KAAKmD,EAAE,sBAAuB,CAAExI,IAAKwI,EAAE,mCAAoC,GACpF,IAGKg1E,CACT,CCdO,SAASgpc,GAAW/phB,EAAO2Q,EAASowE,EAAQ88Q,EAAexkD,GAKhE,MAJK,mBAAmBlkS,KAAKnV,IAC3B+gF,EAAOn4E,KAAK+H,EAAQ,UAAU,qCAGzBowE,CACT,CCGA,QACE9uB,SAAQ,MACRi3d,eAAc,GACdvB,WAAU,GACVM,QAAO,GACP51d,aAAY,MACZV,aAAY,GACZ23d,WAAU,GACVI,WAAU,GACVC,kBAAiB,GACjBG,eAAc,GACd3me,OAAM,GACN4me,WAAUA,ICVE,YAAWthO,GAEmCh2P,EAAAA,GAG1DwyX,EAAYx8H,GAGZA,EAAO1vR,SAAW15B,EAAQ,MAG1BopT,EAAO1vR,SAAS6U,KAAOvuC,EAAQ,OAE/BopT,EAAOuhO,WAAW3qhB,EAAQ,QAE1BopT,EAAOwhO,kBAAkBC,GAAqB5mf,OAAOtK,UAAWkxf,GAAqB3R,UAAW2R,GAAqB5mf,QACrHmlR,EAAOwhO,kBAAkBE,GAAe7mf,OAAOtK,UAAWmxf,GAAe5R,UAAW4R,GAAe7mf,OAAQ6mf,GAAej8Y,MAC1Hu6K,EAAO77P,WAAaw9d,GAEpB3hO,EAAO4hO,UAAUC,IAEjB7hO,EAAO2vD,SAAS,YAAa,kBAAkBnpQ,EAAAA,EAAAA,uBAAqB,IAClE,iCAEJ,CCjCA,S","sources":["webpack://harvester-1.5.0-dev/webpack/universalModuleDefinition","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/polyfill.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/ sync ^\\.\\/.*$","webpack://harvester-1.5.0-dev/../../node_modules/assert/build/assert.js","webpack://harvester-1.5.0-dev/../../node_modules/assert/build/internal/assert/assertion_error.js","webpack://harvester-1.5.0-dev/../../node_modules/assert/build/internal/errors.js","webpack://harvester-1.5.0-dev/../../node_modules/assert/build/internal/util/comparisons.js","webpack://harvester-1.5.0-dev/../../node_modules/base64-js/index.js","webpack://harvester-1.5.0-dev/../../node_modules/buffer/index.js","webpack://harvester-1.5.0-dev/../../node_modules/builtin-status-codes/browser.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/settings.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/core/plugin-helpers.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/core/types.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/width.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/labeled-form-element.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/apps.deployment.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/batch.cronjob.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/cluster.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/fleet.cattle.io.cluster.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/management.cattle.io.cluster.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/management.cattle.io.node.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/management.cattle.io.nodepool.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/namespace.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/node.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/provisioning.cattle.io.cluster.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/schema.tests.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/secret.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/steve-schema.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/storage.k8s.io.storageclass.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/__tests__/utils/store-mocks.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/__tests__/utils/steve-mocks.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/__tests__/workload.test.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/steve-schema.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/projectAndNamespaceFiltering.utils.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/resource-utils.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/steve-pagination-utils.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/BadgeState/BadgeState.vue?26e6","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/BadgeState/BadgeState.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/BadgeState/BadgeState.vue?799b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Card/Card.vue?193e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Card/Card.vue","webpack://harvester-1.5.0-dev/../../node_modules/tabbable/dist/index.esm.js","webpack://harvester-1.5.0-dev/../../node_modules/focus-trap/dist/focus-trap.esm.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Card/Card.vue?89c4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/store/type-map.utils.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/types/components/labeledSelect.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/types/store/pagination.types.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/types/store/type-map.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/array.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/async.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/gc/gc-types.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/gc/gc.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/pagination-utils.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/settings.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/type-helpers.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/url.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/formRules/index.ts","webpack://harvester-1.5.0-dev/./config/harvester.ts","webpack://harvester-1.5.0-dev/./config/settings.ts","webpack://harvester-1.5.0-dev/./types.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ActionMenu.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IconOrSvg.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/svg-filter.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IconOrSvg.vue?be8d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ActionMenu.vue?67af","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AppModal.vue?b398","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AppModal.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AppModal.vue?d566","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AsyncButton.vue?e860","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AsyncButton.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AsyncButton.vue?4abf","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonDropdown.vue","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/math.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/enums.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/debounce.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/createPopper.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/utils/within.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://harvester-1.5.0-dev/../../node_modules/@popperjs/core/lib/popper.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonDropdown.vue?af24","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonGroup.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonGroup.vue?bb36","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonMultiAction.vue?ad23","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonMultiAction.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonMultiAction.vue?e698","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CodeMirror.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CodeMirror.vue?28f0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CruResource.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CruResourceFooter.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceCancelModal.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceCancelModal.vue?48a2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CruResourceFooter.vue?3023","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Wizard.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Wizard.vue?e935","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CruResource.vue?f38a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DetailText.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboard.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CopyToClipboard.vue?5b16","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DetailText.vue?2148","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/InfoBox.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/InfoBox.vue?58f4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/LazyImage.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/LazyImage.vue?1a55","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Loading.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Loading.vue?1fb3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ModalWithCard.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ModalWithCard.vue?cee7","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/Masthead.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/nav/Favorite.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/nav/Favorite.vue?a0a0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/Masthead.vue?3b43","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/ResourceLoadingIndicator.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/ResourceLoadingIndicator.vue?cf04","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceTable.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceTable.vue?04c0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceYaml.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceYaml.vue?e224","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SimpleBox.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SimpleBox.vue?8ebc","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ActionDropdown.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ActionDropdown.vue?88bd","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/THead.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/dom.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/selection.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/THead.vue?bb6a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/filtering.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/sorting.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/paging.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/grouping.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/actions.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/advanced-filtering.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/sortable-config.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/index.vue?27a6","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/title.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/TabTitle.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/TabTitle.vue?c0b5","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tabbed/Tab.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tabbed/Tab.vue?29fe","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tabbed/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tabbed/index.vue?6996","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tag.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tag.vue?5570","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/TypeDescription.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/TypeDescription.vue?9a5c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/YamlEditor.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/FileDiff.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/FileDiff.vue?1ba3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/YamlEditor.vue?05c6","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayList.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayList.vue?84c0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayListGrouped.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayListGrouped.vue?c31b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/FileSelector.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/FileSelector.vue?af3a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Footer.vue?b117","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Footer.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Footer.vue?7e47","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/LabeledSelect.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/compact-input.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/labeled-select-utils/labeled-select-pagination.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/LabeledSelect.vue?00dd","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceLabeledSelect.vue?b100","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceLabeledSelect.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/types/components/resourceLabeledSelect.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/labeled-select-utils/labeled-select.utils.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ResourceLabeledSelect.vue?271d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Select.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Select.vue?fe4a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/SimpleSecretSelector.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/SimpleSecretSelector.vue?1d9d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/tls.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/tls.vue?538e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue?d35c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/InputWithSelect.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/InputWithSelect.vue?648e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue?b787","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue?be9a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue?291b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue?0b60","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue?0ef6","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.globalrole.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.globalrole.vue?1a67","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.project.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.project.vue?7dc8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.roletemplate.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.roletemplate.vue?43c3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/pod.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/pod.vue?098b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Banner/Banner.vue?7689","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Banner/Banner.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Banner/Banner.vue?e432","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Checkbox/Checkbox.vue?ce42","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Checkbox/Checkbox.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Checkbox/Checkbox.vue?1a3e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/LabeledInput/LabeledInput.vue?4377","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/LabeledInput/LabeledInput.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/composables/useLabeledFormElement.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/composables/useCompactInput.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/LabeledInput/LabeledInput.vue?a88f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioButton.vue?5c34","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioButton.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioButton.vue?7d0c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioGroup.vue?0caf","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioGroup.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioGroup.vue?5666","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/TextArea/TextAreaAutoGrow.vue?9536","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/TextArea/TextAreaAutoGrow.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/TextArea/TextAreaAutoGrow.vue?39ce","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/LabeledTooltip/LabeledTooltip.vue?43b8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/LabeledTooltip/LabeledTooltip.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/LabeledTooltip/LabeledTooltip.vue?8bb3","webpack://harvester-1.5.0-dev/./components/UpgradeInfo.vue","webpack://harvester-1.5.0-dev/./components/UpgradeInfo.vue?abf6","webpack://harvester-1.5.0-dev/./dialog/HarvesterSupportBundle.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Circle.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Circle.vue?394c","webpack://harvester-1.5.0-dev/./dialog/HarvesterSupportBundle.vue?65a8","webpack://harvester-1.5.0-dev/../../node_modules/call-bind/callBound.js","webpack://harvester-1.5.0-dev/../../node_modules/call-bind/index.js","webpack://harvester-1.5.0-dev/../../node_modules/color-convert/conversions.js","webpack://harvester-1.5.0-dev/../../node_modules/color-convert/index.js","webpack://harvester-1.5.0-dev/../../node_modules/color-convert/route.js","webpack://harvester-1.5.0-dev/../../node_modules/color-name/index.js","webpack://harvester-1.5.0-dev/../../node_modules/color-string/index.js","webpack://harvester-1.5.0-dev/../../node_modules/color/index.js","webpack://harvester-1.5.0-dev/../../node_modules/console-browserify/index.js","webpack://harvester-1.5.0-dev/../../node_modules/cron-validator/lib/index.js","webpack://harvester-1.5.0-dev/../../node_modules/cronstrue/dist/cronstrue.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/LabeledInput/LabeledInput.vue?5b3e","webpack://harvester-1.5.0-dev/./pages/c/_cluster/console/_uid/vnc.vue?a633","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/bundles/css/diff2html.min.css","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ActionDropdown.vue?552d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ActionMenu.vue?640d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AppModal.vue?0776","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AsyncButton.vue?ea9f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/BannerGraphic.vue?6ffa","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonDropdown.vue?aae9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonMultiAction.vue?6eed","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CodeMirror.vue?0edf","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CommunityLinks.vue?1ae3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CruResource.vue?2ef8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CruResourceFooter.vue?bd4e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DetailText.vue?3ffe","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DetailTop.vue?a833","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ExplorerProjectsNamespaces.vue?b46f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ExplorerProjectsNamespaces.vue?1158","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/FileDiff.vue?7a17","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/FileDiff.vue?fba4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IconMessage.vue?0c38","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IconOrSvg.vue?e286","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IndentedPanel.vue?6444","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/InfoBox.vue?78eb","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Loading.vue?1b4a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ModalWithCard.vue?23a2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ModalWithCard.vue?897c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/MoveModal.vue?c09a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceCancelModal.vue?3946","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceDetail/Masthead.vue?1dcb","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceDetail/index.vue?8501","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/Masthead.vue?4b17","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/ResourceLoadingIndicator.vue?a281","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/index.vue?5590","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceYaml.vue?c810","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceYaml.vue?7b85","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SimpleBox.vue?676a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SimpleBox.vue?e70b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/THead.vue?a0b4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/THead.vue?470c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/index.vue?fb6c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/index.vue?18d3","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tabbed/Tab.vue?5d7e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tabbed/index.vue?d1e0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tag.vue?f301","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Wizard.vue?5af9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/YamlEditor.vue?f910","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/fleet/ForceDirectedTreeChart/index.vue?d7b0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayList.vue?1fb0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayListGrouped.vue?8c9c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ColorInput.vue?d542","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Footer.vue?a415","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/InputWithSelect.vue?cd0a","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/LabeledSelect.vue?6412","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Select.vue?1a4e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/SimpleSecretSelector.vue?d621","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Circle.vue?b52d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/nav/Favorite.vue?9ecf","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue?d4f6","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue?3e51","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.globalrole.vue?f117","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.project.vue?e13c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.roletemplate.vue?3d1e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/pod.vue?8be2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/BadgeState/BadgeState.vue?a1b2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/BadgeState/BadgeState.vue?6200","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Banner/Banner.vue?4169","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Card/Card.vue?36d2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Checkbox/Checkbox.vue?2437","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/LabeledInput/LabeledInput.vue?e3c4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioButton.vue?330f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioGroup.vue?93b1","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/LabeledTooltip/LabeledTooltip.vue?f289","webpack://harvester-1.5.0-dev/./components/Members.vue?c639","webpack://harvester-1.5.0-dev/./components/SerialConsole/index.vue?5f93","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsole.vue?c511","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleCustomKeys.vue?664c","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleItem.vue?3b3e","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleWrapper.vue?cf26","webpack://harvester-1.5.0-dev/./dialog/HarvesterSupportBundle.vue?37e8","webpack://harvester-1.5.0-dev/./pages/c/_cluster/airgapupgrade/index.vue?3265","webpack://harvester-1.5.0-dev/./pages/c/_cluster/alertmanagerconfig/_alertmanagerconfigid/receiver.vue?af70","webpack://harvester-1.5.0-dev/./pages/c/_cluster/brand/index.vue?7bb6","webpack://harvester-1.5.0-dev/./pages/c/_cluster/console/_uid/serial.vue?f1a5","webpack://harvester-1.5.0-dev/./pages/c/_cluster/support/index.vue?4a85","webpack://harvester-1.5.0-dev/./pages/c/_cluster/unsupported/index.vue?8f81","webpack://harvester-1.5.0-dev/../../node_modules/xterm/css/xterm.css","webpack://harvester-1.5.0-dev/../../node_modules/css-loader/dist/runtime/api.js","webpack://harvester-1.5.0-dev/../../node_modules/css-loader/dist/runtime/getUrl.js","webpack://harvester-1.5.0-dev/../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack://harvester-1.5.0-dev/../../node_modules/dayjs/dayjs.min.js","webpack://harvester-1.5.0-dev/../../node_modules/define-data-property/index.js","webpack://harvester-1.5.0-dev/../../node_modules/define-properties/index.js","webpack://harvester-1.5.0-dev/../../node_modules/diff/dist/diff.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/diff-parser.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/diff2html-templates.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/diff2html.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/file-list-renderer.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/hoganjs-utils.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/line-by-line-renderer.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/rematch.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/render-utils.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/side-by-side-renderer.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/types.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/ui/js/diff2html-ui-base.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/ui/js/diff2html-ui-slim.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/ui/js/highlight.js-helpers.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/ui/js/highlight.js-slim.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/lib/utils.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/convert/dmp.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/convert/xml.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/diff/array.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/diff/base.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/diff/character.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/diff/css.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/diff/json.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/diff/line.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/diff/sentence.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/diff/word.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/index.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/patch/apply.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/patch/create.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/patch/merge.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/patch/parse.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/util/array.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/util/distance-iterator.js","webpack://harvester-1.5.0-dev/../../node_modules/diff2html/node_modules/diff/lib/util/params.js","webpack://harvester-1.5.0-dev/../../node_modules/dompurify/dist/purify.js","webpack://harvester-1.5.0-dev/../../node_modules/es-define-property/index.js","webpack://harvester-1.5.0-dev/../../node_modules/es-errors/eval.js","webpack://harvester-1.5.0-dev/../../node_modules/es-errors/index.js","webpack://harvester-1.5.0-dev/../../node_modules/es-errors/range.js","webpack://harvester-1.5.0-dev/../../node_modules/es-errors/ref.js","webpack://harvester-1.5.0-dev/../../node_modules/es-errors/syntax.js","webpack://harvester-1.5.0-dev/../../node_modules/es-errors/type.js","webpack://harvester-1.5.0-dev/../../node_modules/es-errors/uri.js","webpack://harvester-1.5.0-dev/../../node_modules/events/events.js","webpack://harvester-1.5.0-dev/../../node_modules/for-each/index.js","webpack://harvester-1.5.0-dev/../../node_modules/function-bind/implementation.js","webpack://harvester-1.5.0-dev/../../node_modules/function-bind/index.js","webpack://harvester-1.5.0-dev/../../node_modules/get-intrinsic/index.js","webpack://harvester-1.5.0-dev/../../node_modules/gopd/index.js","webpack://harvester-1.5.0-dev/../../node_modules/has-property-descriptors/index.js","webpack://harvester-1.5.0-dev/../../node_modules/has-proto/index.js","webpack://harvester-1.5.0-dev/../../node_modules/has-symbols/index.js","webpack://harvester-1.5.0-dev/../../node_modules/has-symbols/shams.js","webpack://harvester-1.5.0-dev/../../node_modules/has-tostringtag/shams.js","webpack://harvester-1.5.0-dev/../../node_modules/hasown/index.js","webpack://harvester-1.5.0-dev/../../node_modules/hogan.js/lib/compiler.js","webpack://harvester-1.5.0-dev/../../node_modules/hogan.js/lib/hogan.js","webpack://harvester-1.5.0-dev/../../node_modules/hogan.js/lib/template.js","webpack://harvester-1.5.0-dev/../../node_modules/https-browserify/index.js","webpack://harvester-1.5.0-dev/../../node_modules/identicon.js/identicon.js","webpack://harvester-1.5.0-dev/../../node_modules/identicon.js/pnglib.js","webpack://harvester-1.5.0-dev/../../node_modules/ieee754/index.js","webpack://harvester-1.5.0-dev/../../node_modules/inherits/inherits_browser.js","webpack://harvester-1.5.0-dev/../../node_modules/is-arguments/index.js","webpack://harvester-1.5.0-dev/../../node_modules/is-arrayish/index.js","webpack://harvester-1.5.0-dev/../../node_modules/is-callable/index.js","webpack://harvester-1.5.0-dev/../../node_modules/is-generator-function/index.js","webpack://harvester-1.5.0-dev/../../node_modules/is-nan/implementation.js","webpack://harvester-1.5.0-dev/../../node_modules/is-nan/index.js","webpack://harvester-1.5.0-dev/../../node_modules/is-nan/polyfill.js","webpack://harvester-1.5.0-dev/../../node_modules/is-nan/shim.js","webpack://harvester-1.5.0-dev/../../node_modules/is-typed-array/index.js","webpack://harvester-1.5.0-dev/../../node_modules/is-url/index.js","webpack://harvester-1.5.0-dev/../../node_modules/jsrsasign/lib/jsrsasign.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_DataView.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_Hash.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_ListCache.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_Map.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_MapCache.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_Promise.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_Set.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_SetCache.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_Stack.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_Symbol.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_Uint8Array.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_WeakMap.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_apply.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arrayEach.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arrayFilter.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arrayIncludes.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arrayIncludesWith.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arrayLikeKeys.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arrayMap.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arrayPush.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arrayReduce.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_arraySome.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_asciiToArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_asciiWords.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_assignMergeValue.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_assignValue.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_assocIndexOf.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseAssign.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseAssignIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseAssignValue.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseClone.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseCreate.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseDifference.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseFindIndex.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseFlatten.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseFor.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseForOwn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseGet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseGetAllKeys.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseGetTag.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseHas.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseHasIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIndexOf.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsArguments.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsEqual.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsEqualDeep.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsMap.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsMatch.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsNaN.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsNative.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsSet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIsTypedArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseIteratee.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseKeys.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseKeysIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseMatches.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseMatchesProperty.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseMerge.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseMergeDeep.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_basePick.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_basePickBy.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseProperty.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_basePropertyDeep.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_basePropertyOf.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseRest.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseSet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseSetToString.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseSlice.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseTimes.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseToString.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseTrim.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseUnary.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseUniq.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseValues.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_baseXor.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_cacheHas.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_castFunction.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_castPath.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_castSlice.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_cloneArrayBuffer.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_cloneBuffer.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_cloneDataView.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_cloneRegExp.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_cloneSymbol.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_cloneTypedArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_copyArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_copyObject.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_copySymbols.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_copySymbolsIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_coreJsData.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_createAssigner.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_createBaseFor.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_createCaseFirst.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_createCompounder.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_createFind.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_createSet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_deburrLetter.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_defineProperty.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_equalArrays.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_equalByTag.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_equalObjects.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_flatRest.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_freeGlobal.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getAllKeys.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getAllKeysIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getMapData.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getMatchData.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getNative.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getPrototype.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getRawTag.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getSymbols.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getSymbolsIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getTag.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_getValue.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_hasPath.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_hasUnicode.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_hasUnicodeWord.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_hashClear.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_hashDelete.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_hashGet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_hashHas.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_hashSet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_initCloneArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_initCloneByTag.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_initCloneObject.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_isFlattenable.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_isIndex.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_isIterateeCall.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_isKey.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_isKeyable.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_isMasked.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_isPrototype.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_isStrictComparable.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_listCacheClear.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_listCacheDelete.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_listCacheGet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_listCacheHas.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_listCacheSet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_mapCacheClear.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_mapCacheDelete.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_mapCacheGet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_mapCacheHas.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_mapCacheSet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_mapToArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_matchesStrictComparable.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_memoizeCapped.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_nativeCreate.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_nativeKeys.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_nativeKeysIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_nodeUtil.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_objectToString.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_overArg.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_overRest.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_root.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_safeGet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_setCacheAdd.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_setCacheHas.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_setToArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_setToString.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_shortOut.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_stackClear.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_stackDelete.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_stackGet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_stackHas.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_stackSet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_strictIndexOf.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_stringToArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_stringToPath.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_toKey.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_toSource.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_trimmedEndIndex.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_unicodeToArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/_unicodeWords.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/capitalize.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/cloneDeep.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/compact.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/constant.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/debounce.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/deburr.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/difference.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/eq.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/find.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/findIndex.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/findLast.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/findLastIndex.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/flatten.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/flattenDeep.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/forIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/get.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/has.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/hasIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/head.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/identity.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/includes.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isArguments.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isArrayLike.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isArrayLikeObject.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isBuffer.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isEmpty.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isEqual.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isFunction.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isLength.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isMap.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isObject.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isObjectLike.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isPlainObject.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isSet.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isString.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isSymbol.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/isTypedArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/keys.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/keysIn.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/lodash.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/memoize.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/merge.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/mergeWith.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/negate.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/noop.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/now.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/omitBy.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/pick.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/pickBy.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/property.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/startCase.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/stubArray.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/stubFalse.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/throttle.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/toFinite.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/toInteger.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/toNumber.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/toPlainObject.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/toString.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/transform.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/uniq.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/upperFirst.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/values.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/words.js","webpack://harvester-1.5.0-dev/../../node_modules/lodash/xor.js","webpack://harvester-1.5.0-dev/../../node_modules/lru-cache/index.js","webpack://harvester-1.5.0-dev/../../node_modules/node-polyfill-webpack-plugin/node_modules/buffer/index.js","webpack://harvester-1.5.0-dev/../../node_modules/object-is/implementation.js","webpack://harvester-1.5.0-dev/../../node_modules/object-is/index.js","webpack://harvester-1.5.0-dev/../../node_modules/object-is/polyfill.js","webpack://harvester-1.5.0-dev/../../node_modules/object-is/shim.js","webpack://harvester-1.5.0-dev/../../node_modules/object-keys/implementation.js","webpack://harvester-1.5.0-dev/../../node_modules/object-keys/index.js","webpack://harvester-1.5.0-dev/../../node_modules/object-keys/isArguments.js","webpack://harvester-1.5.0-dev/../../node_modules/object.assign/implementation.js","webpack://harvester-1.5.0-dev/../../node_modules/object.assign/polyfill.js","webpack://harvester-1.5.0-dev/../../node_modules/possible-typed-array-names/index.js","webpack://harvester-1.5.0-dev/../../node_modules/process/browser.js","webpack://harvester-1.5.0-dev/../../node_modules/qs/lib/formats.js","webpack://harvester-1.5.0-dev/../../node_modules/qs/lib/index.js","webpack://harvester-1.5.0-dev/../../node_modules/qs/lib/parse.js","webpack://harvester-1.5.0-dev/../../node_modules/qs/lib/stringify.js","webpack://harvester-1.5.0-dev/../../node_modules/qs/lib/utils.js","webpack://harvester-1.5.0-dev/../../node_modules/querystringify/index.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/errors-browser.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/_stream_duplex.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/_stream_passthrough.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/_stream_readable.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/_stream_transform.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/_stream_writable.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/internal/streams/state.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://harvester-1.5.0-dev/../../node_modules/readable-stream/readable-browser.js","webpack://harvester-1.5.0-dev/../../node_modules/requires-port/index.js","webpack://harvester-1.5.0-dev/../../node_modules/safe-buffer/index.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/classes/comparator.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/classes/range.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/classes/semver.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/clean.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/cmp.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/coerce.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/compare-build.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/compare-loose.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/compare.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/diff.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/eq.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/gt.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/gte.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/inc.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/lt.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/lte.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/major.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/minor.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/neq.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/parse.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/patch.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/prerelease.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/rcompare.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/rsort.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/satisfies.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/sort.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/functions/valid.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/index.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/internal/constants.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/internal/debug.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/internal/identifiers.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/internal/parse-options.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/internal/re.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/gtr.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/intersects.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/ltr.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/max-satisfying.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/min-satisfying.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/min-version.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/outside.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/simplify.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/subset.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/to-comparators.js","webpack://harvester-1.5.0-dev/../../node_modules/semver/ranges/valid.js","webpack://harvester-1.5.0-dev/../../node_modules/set-function-length/index.js","webpack://harvester-1.5.0-dev/../../node_modules/side-channel/index.js","webpack://harvester-1.5.0-dev/../../node_modules/side-channel/node_modules/object-inspect/index.js","webpack://harvester-1.5.0-dev/../../node_modules/simple-swizzle/index.js","webpack://harvester-1.5.0-dev/../../node_modules/stream-http/index.js","webpack://harvester-1.5.0-dev/../../node_modules/stream-http/lib/capability.js","webpack://harvester-1.5.0-dev/../../node_modules/stream-http/lib/request.js","webpack://harvester-1.5.0-dev/../../node_modules/stream-http/lib/response.js","webpack://harvester-1.5.0-dev/../../node_modules/string_decoder/lib/string_decoder.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/resource-list.config.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/features.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/labels-annotations.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/pagination-table-headers.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/private-label.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/product/cis.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/product/explorer.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/product/manager.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/query-params.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/system-namespaces.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/table-headers.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/types.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/version.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/child-hook.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/closeable.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/create-edit-view/impl.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/create-edit-view/index.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/form-validation.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/resource-fetch-namespaced.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/resource-fetch-api-pagination.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/resource-fetch.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/mixins/vue-select-overrides.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/parse-externalid.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/app.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/apps.controllerrevision.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/apps.daemonset.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/apps.deployment.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/apps.replicaset.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/apps.statefulset.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/autoscaling.horizontalpodautoscaler.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/batch.cronjob.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/batch.job.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/catalog.cattle.io.app.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/catalog.cattle.io.clusterrepo.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/catalog.cattle.io.operation.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/catalog.cattle.io.repo.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/catalog.cattle.io.uiplugin.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/chart.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/chartinstallaction.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/chartupgradeaction.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cis.cattle.io.clusterscan.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cis.cattle.io.clusterscanbenchmark.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cis.cattle.io.clusterscanprofile.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cis.cattle.io.clusterscanreport.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/store/plugins.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cloudcredential.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cluster.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cluster.x-k8s.io.machine.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/elemental-types.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/harvester-manager-types.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cluster.x-k8s.io.machinedeployment.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cluster.x-k8s.io.machineset.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cluster/node.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/cluster/schema.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/clusterroletemplatebinding.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/configmap.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/constraints.gatekeeper.sh.constraint.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/driver.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/etcdbackup.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/event.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/fleet.cattle.io.bundle.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/fleet.cattle.io.cluster.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/fleet.cattle.io.clustergroup.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/fleet.cattle.io.clusterregistrationtoken.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/fleet.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/fleet.cattle.io.gitrepo.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/group.principal.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/helm.cattle.io.projecthelmchart.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/k8s.cni.cncf.io.networkattachmentdefinition.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/kontainerdriver.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/logging.banzaicloud.io.clusterflow.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/logging.banzaicloud.io.clusteroutput.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/logging.banzaicloud.io.flow.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/logging.banzaicloud.io.output.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.authconfig.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/cluster.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.cluster.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.clusterroletemplatebinding.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.feature.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.fleetworkspace.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.gitreporestriction.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.globalrole.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.globalrolebinding.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.kontainerdriver.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.node.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.nodepool.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.nodetemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.podsecurityadmissionconfigurationtemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.project.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.projectroletemplatebinding.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.roletemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.setting.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management.cattle.io.user.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/management/schema.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/metrics.k8s.io.nodemetrics.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/monitoring.coreos.com.alertmanagerconfig.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/monitoring.coreos.com.podmonitor.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/monitoring.coreos.com.prometheusrule.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/monitoring.coreos.com.receiver.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/product/monitoring.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/monitoring.coreos.com.route.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/monitoring.coreos.com.servicemonitor.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/pod-security-admission.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/pod-security-admission.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/namespace.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/networking.istio.io.destinationrule.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/networking.k8s.io.ingress.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/nodedriver.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/persistentVolume.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/persistentvolume.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/persistentvolumeclaim.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/pod.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/principal.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/projectroletemplatebinding.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/provisioning.cattle.io.cluster.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rbac.authorization.k8s.io.clusterrole.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rbac.authorization.k8s.io.clusterrolebinding.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rbac.authorization.k8s.io.role.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rbac.authorization.k8s.io.rolebinding.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/replicationcontroller.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/resources.cattle.io.backup.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/resources.cattle.io.restore.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke-machine-config.cattle.io.harvesterconfig.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke-machine.cattle.io.amazonec2machinetemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke-machine.cattle.io.azuremachinetemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke-machine.cattle.io.digitaloceanmachinetemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke-machine.cattle.io.linodemachinetemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke-machine.cattle.io.machinetemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke-machine.cattle.io.pnapmachinetemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke-machine.cattle.io.vmwarevspheremachinetemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/rke.cattle.io.etcdsnapshot.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/schema.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/secret.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/service.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/storage.k8s.io.storageclass.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/templates.gatekeeper.sh.constrainttemplate.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/token.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/ui.cattle.io.navlink.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/workload.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/workload.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/models/workload.service.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/pkg/dynamic-importer.lib.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/actions.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/classify.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/getters.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/index.js","webpack://harvester-1.5.0-dev/./model-loader-require.lib.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/model-loader.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/mutations.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/normalize.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/flow-output.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/logging-outputs.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/service.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/prometheusrule.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/monitoring-route.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/container-images.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/pod-affinity.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/role-template.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/cluster-name.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/custom-validators.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/dashboard-store/resource-class.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/hybrid-class.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/norman-class.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/schema.utils.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/core/plugin.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/steve-class.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/steve-description-class.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/mixin/roleDeletionCheck.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/store/catalog.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/store/features.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/store/prefs.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/store/store-types.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/store/type-map.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/alertmanagerconfig.js","webpack://harvester-1.5.0-dev/../../node_modules/clipboard-polyfill/dist/es6/clipboard-polyfill.es6.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/clipboard.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/color.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/create-yaml.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/crypto/browserHashUtils.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/crypto/browserMd5.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/crypto/browserSha256.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/crypto/browserSha1.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/crypto/index.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/download.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/error.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/monitoring.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/namespace-filter.js","webpack://harvester-1.5.0-dev/../../node_modules/jsonpath-plus/dist/index-browser-esm.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/object.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/platform.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/position.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/queue.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/promise.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/router.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/select.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/selector.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/sort.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/string.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/time.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/units.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/cron-schedule.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/kubernetes-name.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/index.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/validators/setting.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/version.js","webpack://harvester-1.5.0-dev/./config/doc-links.js","webpack://harvester-1.5.0-dev/./config/harvester-cluster.js","webpack://harvester-1.5.0-dev/./config/harvester-map.js","webpack://harvester-1.5.0-dev/./config/labels-annotations.js","webpack://harvester-1.5.0-dev/./config/table-headers.js","webpack://harvester-1.5.0-dev/./config/types.js","webpack://harvester-1.5.0-dev/./models/clusterroletemplatebinding.js","webpack://harvester-1.5.0-dev/./models/devices.harvesterhci.io.pcidevice.js","webpack://harvester-1.5.0-dev/./models/devices.harvesterhci.io.sriovgpudevice.js","webpack://harvester-1.5.0-dev/./models/devices.harvesterhci.io.sriovnetworkdevice.js","webpack://harvester-1.5.0-dev/./models/devices.harvesterhci.io.usbdevice.js","webpack://harvester-1.5.0-dev/./models/devices.harvesterhci.io.vgpudevice.js","webpack://harvester-1.5.0-dev/./models/harvester.js","webpack://harvester-1.5.0-dev/./models/harvester/configmap.js","webpack://harvester-1.5.0-dev/./models/harvester/k8s.cni.cncf.io.networkattachmentdefinition.js","webpack://harvester-1.5.0-dev/./models/harvester/logging.banzaicloud.io.clusterflow.js","webpack://harvester-1.5.0-dev/./models/harvester/logging.banzaicloud.io.clusteroutput.js","webpack://harvester-1.5.0-dev/./models/harvester/logging.banzaicloud.io.flow.js","webpack://harvester-1.5.0-dev/./models/harvester/logging.banzaicloud.io.output.js","webpack://harvester-1.5.0-dev/./models/harvester/management.cattle.io.setting.js","webpack://harvester-1.5.0-dev/./models/harvester/monitoring.coreos.com.alertmanagerconfig.js","webpack://harvester-1.5.0-dev/./models/harvester/namespace.js","webpack://harvester-1.5.0-dev/./models/harvester/node.js","webpack://harvester-1.5.0-dev/./models/harvester/persistentvolumeclaim.js","webpack://harvester-1.5.0-dev/./models/harvester/pod.js","webpack://harvester-1.5.0-dev/./models/harvester/schema.js","webpack://harvester-1.5.0-dev/./models/harvester/secret.js","webpack://harvester-1.5.0-dev/./models/harvester/snapshot.storage.k8s.io.volumesnapshot.js","webpack://harvester-1.5.0-dev/./models/harvester/storage.k8s.io.storageclass.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.addon.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.blockdevice.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.keypair.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.schedulevmbackup.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.setting.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.supportbundle.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.upgrade.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.upgradelog.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.virtualmachinebackup.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.virtualmachineimage.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.virtualmachinerestore.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.virtualmachinetemplate.js","webpack://harvester-1.5.0-dev/./models/harvesterhci.io.virtualmachinetemplateversion.js","webpack://harvester-1.5.0-dev/./models/k8s.cni.cncf.io.networkattachmentdefinition.js","webpack://harvester-1.5.0-dev/./models/kubevirt.io.virtualmachine.js","webpack://harvester-1.5.0-dev/./models/kubevirt.io.virtualmachineinstance.js","webpack://harvester-1.5.0-dev/./models/loadbalancer.harvesterhci.io.ippool.js","webpack://harvester-1.5.0-dev/./models/loadbalancer.harvesterhci.io.loadbalancer.js","webpack://harvester-1.5.0-dev/./models/longhorn.io.node.js","webpack://harvester-1.5.0-dev/./models/metal.harvesterhci.io.inventory.js","webpack://harvester-1.5.0-dev/./models/network.harvesterhci.io.clusternetwork.js","webpack://harvester-1.5.0-dev/./models/network.harvesterhci.io.nodenetwork.js","webpack://harvester-1.5.0-dev/./models/network.harvesterhci.io.vlanconfig.js","webpack://harvester-1.5.0-dev/./models/network.harvesterhci.io.vlanstatus.js","webpack://harvester-1.5.0-dev/./config/feature-flags.js","webpack://harvester-1.5.0-dev/./utils/feature-flags.js","webpack://harvester-1.5.0-dev/./utils/vm.js","webpack://harvester-1.5.0-dev/./validators/vm-image.js","webpack://harvester-1.5.0-dev/../../node_modules/url-parse/index.js","webpack://harvester-1.5.0-dev/../../node_modules/url/node_modules/punycode/punycode.js","webpack://harvester-1.5.0-dev/../../node_modules/url/url.js","webpack://harvester-1.5.0-dev/../../node_modules/util-deprecate/browser.js","webpack://harvester-1.5.0-dev/../../node_modules/util/support/isBufferBrowser.js","webpack://harvester-1.5.0-dev/../../node_modules/util/support/types.js","webpack://harvester-1.5.0-dev/../../node_modules/util/util.js","webpack://harvester-1.5.0-dev/../../node_modules/vue-loader/dist/exportHelper.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/LabeledInput/LabeledInput.vue?c5da","webpack://harvester-1.5.0-dev/./pages/c/_cluster/console/_uid/vnc.vue?6ff8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ActionDropdown.vue?50c2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ActionMenu.vue?af8c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AppModal.vue?3ac9","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/AsyncButton.vue?fb7d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/BannerGraphic.vue?f586","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonDropdown.vue?9538","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ButtonMultiAction.vue?2aee","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CodeMirror.vue?09ef","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CommunityLinks.vue?6f9f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CruResource.vue?db11","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CruResourceFooter.vue?f9de","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DetailText.vue?3d5c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DetailTop.vue?c023","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ExplorerProjectsNamespaces.vue?ec80","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ExplorerProjectsNamespaces.vue?2e17","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/FileDiff.vue?4e16","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/FileDiff.vue?c7f4","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IconMessage.vue?5037","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IconOrSvg.vue?6a24","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IndentedPanel.vue?c576","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/InfoBox.vue?0981","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Loading.vue?22cb","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ModalWithCard.vue?44f5","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ModalWithCard.vue?4560","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/MoveModal.vue?d3bb","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceCancelModal.vue?5294","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceDetail/Masthead.vue?d806","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceDetail/index.vue?a852","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/Masthead.vue?9c27","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/ResourceLoadingIndicator.vue?93d0","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/index.vue?ba96","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceYaml.vue?d4c8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceYaml.vue?c7d8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SimpleBox.vue?ea89","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SimpleBox.vue?9f27","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/THead.vue?de6f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/THead.vue?2ffc","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/index.vue?4677","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/SortableTable/index.vue?0000","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tabbed/Tab.vue?8007","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tabbed/index.vue?c89d","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Tag.vue?f4ea","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/Wizard.vue?389b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/YamlEditor.vue?5556","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/fleet/ForceDirectedTreeChart/index.vue?4d44","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayList.vue?94cc","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ArrayListGrouped.vue?85fa","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ColorInput.vue?8dc2","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Footer.vue?13be","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/InputWithSelect.vue?5efa","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/LabeledSelect.vue?abca","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/Select.vue?a257","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/SimpleSecretSelector.vue?2fff","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/graph/Circle.vue?16bc","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/nav/Favorite.vue?8762","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue?7281","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue?d682","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.globalrole.vue?f473","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.project.vue?7def","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/management.cattle.io.roletemplate.vue?ad9e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/promptRemove/pod.vue?83ce","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/BadgeState/BadgeState.vue?3474","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/BadgeState/BadgeState.vue?9a3e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Banner/Banner.vue?6778","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Card/Card.vue?1029","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Checkbox/Checkbox.vue?9857","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/LabeledInput/LabeledInput.vue?f446","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioButton.vue?bc7c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/Form/Radio/RadioGroup.vue?d0de","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/rancher-components/LabeledTooltip/LabeledTooltip.vue?c152","webpack://harvester-1.5.0-dev/./components/Members.vue?a307","webpack://harvester-1.5.0-dev/./components/SerialConsole/index.vue?2f7a","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsole.vue?00ac","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleCustomKeys.vue?a748","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleItem.vue?3daa","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleWrapper.vue?88af","webpack://harvester-1.5.0-dev/./dialog/HarvesterSupportBundle.vue?88e5","webpack://harvester-1.5.0-dev/./pages/c/_cluster/airgapupgrade/index.vue?94e2","webpack://harvester-1.5.0-dev/./pages/c/_cluster/alertmanagerconfig/_alertmanagerconfigid/receiver.vue?d494","webpack://harvester-1.5.0-dev/./pages/c/_cluster/brand/index.vue?de5a","webpack://harvester-1.5.0-dev/./pages/c/_cluster/console/_uid/serial.vue?57a2","webpack://harvester-1.5.0-dev/./pages/c/_cluster/support/index.vue?2216","webpack://harvester-1.5.0-dev/./pages/c/_cluster/unsupported/index.vue?cfca","webpack://harvester-1.5.0-dev/../../node_modules/vue-style-loader/lib/listToStyles.js","webpack://harvester-1.5.0-dev/../../node_modules/vue-style-loader/lib/addStylesClient.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/devtools-api/lib/esm/env.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/devtools-api/lib/esm/const.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/devtools-api/lib/esm/time.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://harvester-1.5.0-dev/../../node_modules/@vue/devtools-api/lib/esm/index.js","webpack://harvester-1.5.0-dev/../../node_modules/vuex/dist/vuex.esm-bundler.js","webpack://harvester-1.5.0-dev/../../node_modules/which-typed-array/index.js","webpack://harvester-1.5.0-dev/../../node_modules/xtend/immutable.js","webpack://harvester-1.5.0-dev/../../node_modules/yallist/iterator.js","webpack://harvester-1.5.0-dev/../../node_modules/yallist/yallist.js","webpack://harvester-1.5.0-dev/./.shell/assets/brand/ sync ^\\.\\/.*\\/.*$","webpack://harvester-1.5.0-dev/./.shell/assets/brand/ sync ^\\.\\/.*\\/dark\\/.*$","webpack://harvester-1.5.0-dev/./.shell/assets/brand/ sync ^\\.\\/.*\\/metadata\\.json$","webpack://harvester-1.5.0-dev/./.shell/assets/images/pl/ sync ^\\.\\/.*$","webpack://harvester-1.5.0-dev/./.shell/assets/images/pl/ sync ^\\.\\/.*.*$","webpack://harvester-1.5.0-dev/./.shell/assets/images/providers/ sync ^\\.\\/.*\\.svg$","webpack://harvester-1.5.0-dev/./.shell/assets/images/vendor/ sync ^\\.\\/.*\\.svg$","webpack://harvester-1.5.0-dev/./.shell/models/ sync ^\\.\\/.*$","webpack://harvester-1.5.0-dev/./.shell/promptRemove/ sync ^\\.\\/.*$","webpack://harvester-1.5.0-dev/external umd \"__jsyaml\"","webpack://harvester-1.5.0-dev/external umd \"__jszip\"","webpack://harvester-1.5.0-dev/external umd {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://harvester-1.5.0-dev/../../node_modules/available-typed-arrays/index.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/core.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/awk.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/bash.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/c.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/clojure.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/cpp.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/crystal.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/csharp.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/csp.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/css.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/dart.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/diff.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/dockerfile.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/elixir.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/elm.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/erlang.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/fsharp.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/go.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/gradle.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/groovy.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/handlebars.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/haskell.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/ini.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/java.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/javascript.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/json.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/kotlin.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/less.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/lisp.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/lua.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/makefile.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/markdown.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/nginx.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/objectivec.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/perl.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/pgsql.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/php.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/plaintext.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/powershell.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/properties.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/protobuf.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/python.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/ruby.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/rust.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/scala.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/scss.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/shell.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/sql.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/swift.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/typescript.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/xml.js","webpack://harvester-1.5.0-dev/../../node_modules/highlight.js/lib/languages/yaml.js","webpack://harvester-1.5.0-dev/webpack/bootstrap","webpack://harvester-1.5.0-dev/webpack/runtime/compat get default export","webpack://harvester-1.5.0-dev/webpack/runtime/create fake namespace object","webpack://harvester-1.5.0-dev/webpack/runtime/define property getters","webpack://harvester-1.5.0-dev/webpack/runtime/ensure chunk","webpack://harvester-1.5.0-dev/webpack/runtime/get javascript chunk filename","webpack://harvester-1.5.0-dev/webpack/runtime/global","webpack://harvester-1.5.0-dev/webpack/runtime/hasOwnProperty shorthand","webpack://harvester-1.5.0-dev/webpack/runtime/load script","webpack://harvester-1.5.0-dev/webpack/runtime/make namespace object","webpack://harvester-1.5.0-dev/webpack/runtime/node module decorator","webpack://harvester-1.5.0-dev/webpack/runtime/publicPath","webpack://harvester-1.5.0-dev/webpack/runtime/jsonp chunk loading","webpack://harvester-1.5.0-dev/../../node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://harvester-1.5.0-dev/./node_modules/@rancher/auto-import","webpack://harvester-1.5.0-dev/./pages/c/_cluster/index.vue","webpack://harvester-1.5.0-dev/./pages/c/_cluster/index.vue?ec4d","webpack://harvester-1.5.0-dev/./pages/c/_cluster/support/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/BannerGraphic.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/BrandImage.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/BrandImage.vue?5c65","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/BannerGraphic.vue?e287","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IndentedPanel.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IndentedPanel.vue?d66c","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CommunityLinks.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/home-links.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/clean-html.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/CommunityLinks.vue?74bd","webpack://harvester-1.5.0-dev/./pages/c/_cluster/support/index.vue?4886","webpack://harvester-1.5.0-dev/./pages/c/_cluster/console/_uid/serial.vue","webpack://harvester-1.5.0-dev/./components/SerialConsole/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/event-target-shim/dist/event-target-shim.mjs","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/socket.js","webpack://harvester-1.5.0-dev/./components/SerialConsole/index.vue?2b47","webpack://harvester-1.5.0-dev/./pages/c/_cluster/console/_uid/serial.vue?40e1","webpack://harvester-1.5.0-dev/./pages/c/_cluster/console/_uid/vnc.vue","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleWrapper.vue","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/keysym.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/keysymdef.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/vkeys.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/fixedkeys.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/domkeytable.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/logging.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/browser.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/util.js","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsole.vue","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/int.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/strings.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/element.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/events.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/eventtarget.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/base64.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/display.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/utils/common.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/adler32.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/crc32.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/inffast.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/inftrees.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/inflate.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/zstream.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/inflator.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/trees.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/messages.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/vendor/pako/lib/zlib/deflate.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/deflator.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/keyboard.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/gesturehandler.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/util/cursor.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/websock.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/des.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/input/xtscancodes.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/encodings.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/decoders/raw.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/decoders/copyrect.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/decoders/rre.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/decoders/hextile.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/decoders/tight.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/decoders/tightpng.js","webpack://harvester-1.5.0-dev/../../node_modules/@novnc/novnc/core/rfb.js","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsole.vue?7edb","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleItem.vue","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleItem.vue?844b","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleCustomKeys.vue","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleCustomKeys.vue?165b","webpack://harvester-1.5.0-dev/./components/novnc/NovncConsoleWrapper.vue?1cd8","webpack://harvester-1.5.0-dev/./pages/c/_cluster/console/_uid/vnc.vue?47e7","webpack://harvester-1.5.0-dev/./pages/c/_cluster/_resource/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IconMessage.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/IconMessage.vue?89cd","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ExtensionPanel.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ExtensionPanel.vue?f40f","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceList/index.vue?31d1","webpack://harvester-1.5.0-dev/./pages/c/_cluster/_resource/index.vue?7267","webpack://harvester-1.5.0-dev/./pages/c/_cluster/brand/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ColorInput.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/form/ColorInput.vue?da01","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/favicon.js","webpack://harvester-1.5.0-dev/./pages/c/_cluster/brand/index.vue?1381","webpack://harvester-1.5.0-dev/./pages/c/_cluster/_resource/create.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceDetail/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceDetail/Masthead.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/product/fleet.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceDetail/Masthead.vue?2d22","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DetailTop.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/DetailTop.vue?ce8b","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/fleet/ForceDirectedTreeChart/index.vue","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selector.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/select.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/array.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selectorAll.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/selectAll.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/matcher.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/selectChild.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/selectChildren.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/filter.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/sparse.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/enter.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/constant.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/data.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/exit.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/join.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/merge.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/order.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/sort.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/call.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/nodes.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/node.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/size.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/empty.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/each.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/namespaces.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/namespace.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/attr.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/window.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/style.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/property.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/classed.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/text.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/html.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/raise.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/lower.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/creator.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/append.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/insert.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/remove.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/clone.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/datum.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/on.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/dispatch.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/iterator.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/selection/index.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-dispatch/src/dispatch.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-timer/src/timer.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-timer/src/timeout.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/schedule.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/interrupt.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/selection/interrupt.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/number.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/transform/decompose.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/transform/parse.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/transform/index.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/tween.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-color/src/define.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-color/src/color.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/basis.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/basisClosed.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/constant.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/color.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/rgb.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/string.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/interpolate.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/attr.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/attrTween.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/delay.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/duration.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/ease.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/easeVarying.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/filter.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/merge.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/on.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/remove.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/select.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/selectAll.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/selection.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/style.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/styleTween.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/text.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/textTween.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/transition.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/end.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/transition/index.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-ease/src/cubic.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/selection/transition.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-transition/src/selection/index.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-brush/src/brush.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/select.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/sourceEvent.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-selection/src/pointer.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-drag/src/noevent.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-drag/src/nodrag.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-drag/src/constant.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-drag/src/event.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-drag/src/drag.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-force/src/center.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/add.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/cover.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/data.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/extent.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/quad.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/find.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/remove.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/root.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/size.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/visit.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/visitAfter.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/x.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/y.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-quadtree/src/quadtree.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-force/src/constant.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-force/src/jiggle.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-force/src/collide.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-force/src/link.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-force/src/lcg.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-force/src/simulation.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-force/src/manyBody.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/find.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-interpolate/src/zoom.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-zoom/src/constant.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-zoom/src/event.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-zoom/src/transform.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-zoom/src/noevent.js","webpack://harvester-1.5.0-dev/../../node_modules/d3-zoom/src/zoom.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/fleet/ForceDirectedTreeChart/chartIcons.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/fleet/ForceDirectedTreeChart/index.vue?f41e","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/auth.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ResourceDetail/index.vue?3105","webpack://harvester-1.5.0-dev/./pages/c/_cluster/_resource/create.vue?6d67","webpack://harvester-1.5.0-dev/./pages/c/_cluster/_resource/_id.vue","webpack://harvester-1.5.0-dev/./pages/c/_cluster/_resource/_id.vue?b71d","webpack://harvester-1.5.0-dev/./pages/c/_cluster/_resource/_namespace/_id.vue","webpack://harvester-1.5.0-dev/./pages/c/_cluster/_resource/_namespace/_id.vue?d553","webpack://harvester-1.5.0-dev/./pages/c/_cluster/airgapupgrade/index.vue","webpack://harvester-1.5.0-dev/./pages/c/_cluster/airgapupgrade/index.vue?7c96","webpack://harvester-1.5.0-dev/./pages/c/_cluster/members/index.vue","webpack://harvester-1.5.0-dev/./components/Members.vue","webpack://harvester-1.5.0-dev/./components/Members.vue?cf0c","webpack://harvester-1.5.0-dev/./pages/c/_cluster/members/index.vue?6b0b","webpack://harvester-1.5.0-dev/./pages/c/_cluster/projectsnamespaces.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ExplorerProjectsNamespaces.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/MoveModal.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/MoveModal.vue?4dd8","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/components/ExplorerProjectsNamespaces.vue?63fc","webpack://harvester-1.5.0-dev/./pages/c/_cluster/projectsnamespaces.vue?32a2","webpack://harvester-1.5.0-dev/./pages/c/_cluster/alertmanagerconfig/_alertmanagerconfigid/receiver.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue?468c","webpack://harvester-1.5.0-dev/./pages/c/_cluster/alertmanagerconfig/_alertmanagerconfigid/receiver.vue?7069","webpack://harvester-1.5.0-dev/./pages/c/_cluster/unsupported/index.vue","webpack://harvester-1.5.0-dev/./pages/c/_cluster/unsupported/index.vue?1f57","webpack://harvester-1.5.0-dev/./routing/harvester-routing.js","webpack://harvester-1.5.0-dev/./store/harvester-common.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/config/cookies.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/resourceWatcher.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/worker/web-worker.basic.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/caches/resourceCache.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/worker/web-worker.advanced.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/worker/index.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/accept-or-reject-socket-message.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/subscribe.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/getters.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/performanceTesting.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/mutations.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/utils/stream.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/header-warnings.ts","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/actions.js","webpack://harvester-1.5.0-dev/../../node_modules/@rancher/shell/plugins/steve/index.js","webpack://harvester-1.5.0-dev/./store/harvester-store/getters.ts","webpack://harvester-1.5.0-dev/./store/harvester-store/mutations.ts","webpack://harvester-1.5.0-dev/./store/harvester-store/actions.ts","webpack://harvester-1.5.0-dev/./store/harvester-store/index.ts","webpack://harvester-1.5.0-dev/./utils/regular.js","webpack://harvester-1.5.0-dev/./validators/vm.js","webpack://harvester-1.5.0-dev/./validators/vm-datavolumes.js","webpack://harvester-1.5.0-dev/./validators/setting.js","webpack://harvester-1.5.0-dev/./validators/volume.js","webpack://harvester-1.5.0-dev/./validators/monitoringAndLogging.js","webpack://harvester-1.5.0-dev/./validators/network.js","webpack://harvester-1.5.0-dev/./validators/hash.js","webpack://harvester-1.5.0-dev/./validators/index.js","webpack://harvester-1.5.0-dev/./index.ts","webpack://harvester-1.5.0-dev/../../node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"), require(\"__jszip\"), require(\"__jsyaml\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([, \"__jszip\", \"__jsyaml\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"harvester-1.5.0-dev\"] = factory(require(\"vue\"), require(\"__jszip\"), require(\"__jsyaml\"));\n\telse\n\t\troot[\"harvester-1.5.0-dev\"] = factory(root[\"Vue\"], root[\"__jszip\"], root[\"__jsyaml\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__9274__, __WEBPACK_EXTERNAL_MODULE__47008__, __WEBPACK_EXTERNAL_MODULE__20246__) {\nreturn ","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/* Polyfills to provide new APIs in old browsers */\n\n/* Object.assign() (taken from MDN) */\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, \"assign\", {\n value: function assign(target, varArgs) { // .length of function is 2\n 'use strict';\n if (target == null) { // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n const to = Object(target);\n\n for (let index = 1; index < arguments.length; index++) {\n const nextSource = arguments[index];\n\n if (nextSource != null) { // Skip over if undefined or null\n for (let nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true\n });\n}\n\n/* CustomEvent constructor (taken from MDN) */\n(() => {\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n const evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n if (typeof window.CustomEvent !== \"function\") {\n window.CustomEvent = CustomEvent;\n }\n})();\n\n/* Number.isInteger() (taken from MDN) */\nNumber.isInteger = Number.isInteger || function isInteger(value) {\n return typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value;\n};\n","var map = {\n\t\"./email\": 51557,\n\t\"./email.vue\": 51557,\n\t\"./opsgenie\": 72420,\n\t\"./opsgenie.vue\": 72420,\n\t\"./pagerduty\": 12772,\n\t\"./pagerduty.vue\": 12772,\n\t\"./slack\": 33427,\n\t\"./slack.vue\": 33427,\n\t\"./webhook\": 4496,\n\t\"./webhook.vue\": 4496\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 19469;","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\nvar AssertionError = require('./internal/assert/assertion_error');\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\nvar objectAssign = require('object.assign/polyfill')();\nvar objectIs = require('object-is/polyfill')();\nvar RegExpPrototypeTest = require('call-bind/callBound')('RegExp.prototype.test');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n}\n\n// Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\nvar warned = false;\n\n// The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {};\n\n// All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n if (argsLen === 2) operator = '!=';\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== undefined) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n}\nassert.fail = fail;\n\n// The AssertionError is defined in internal/error.\nassert.AssertionError = AssertionError;\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\n\n// Pure assertion tests whether a value is truthy, as determined\n// by !!value.\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\nassert.ok = ok;\n\n// The equality assertion tests shallow, coercive equality with ==.\n/* eslint-disable no-restricted-properties */\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n};\n\n// The non-equality assertion tests for whether two objects are not\n// equal with !=.\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n};\n\n// The equivalence assertion tests a deep equality relation.\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n};\n\n// The non-equivalence assertion tests for any deep inequality.\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\nvar Comparison = /*#__PURE__*/_createClass(function Comparison(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison);\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n});\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n // assert.doesNotThrow does not accept objects.\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n }\n\n // Handle primitives properly.\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n // Special handle errors to make sure the name and the message are compared\n // as well.\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n // Guard instanceof against arrow functions as they don't have a prototype.\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n}\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n}\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn();\n // Fail in case no promise is returned.\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n throw actual;\n}\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n });\n\n // Make sure we actually have a stack trace!\n var origStack = err.stack;\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift();\n // Filter all frames existing in err.stack.\n var tmp1 = newErr.stack.split('\\n');\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n throw newErr;\n }\n};\n\n// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a871df3dfb8ea663ef5e1f8f62701ec51384ecb\nfunction internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE('regexp', 'RegExp', regexp);\n }\n var match = fnName === 'match';\n if (typeof string !== 'string' || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n\n // 'The input was expected to not match the regular expression ' +\n message = message || (typeof string !== 'string' ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? 'The input did not match the regular expression ' : 'The input was expected to not match the regular expression ') + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message: message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\nassert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, 'match');\n};\nassert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, 'doesNotMatch');\n};\n\n// Expose a strict only variant of assert\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n\n'use strict';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _require = require('util/'),\n inspect = _require.inspect;\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nvar kMaxShortLength = 10;\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = '';\n\n // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n }\n\n // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n // Ignore the first characters.\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n }\n\n // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n');\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the expected line to the cache.\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine);\n // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = '';\n // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n // Inspected object to big (Show ~20 rows max)\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\nvar AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {\n _inherits(AssertionError, _Error);\n var _super = _createSuper(AssertionError);\n function AssertionError(options) {\n var _this;\n _classCallCheck(this, AssertionError);\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n }\n // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n');\n\n // In case \"actual\" is an object, it should not be reference equal.\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n\n // Only print a single input.\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = '';\n var knownOperators = kReadableOperator[operator];\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n // Create error message including the error code in the name.\n _this.stack;\n // Reset the name.\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError;\n}( /*#__PURE__*/_wrapNativeSuper(Error), inspect.custom);\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n/* eslint node-core/alphabetize-errors: \"error\" */\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar codes = {};\n\n// Lazy loaded\nvar assert;\nvar util;\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n var _super = _createSuper(NodeError);\n function NodeError(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError);\n }(Base);\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\");\n\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n // TODO(BridgeAR): Improve the output by showing `null` and similar.\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar regexFlagsSupported = /a/g.flags !== undefined;\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n // The maximum size for an array is 2 ** 32 -1.\n return key.length === 10 && key >= Math.pow(2, 32);\n}\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n}\n\n// Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3;\n\n// Check if they have the same source and flags\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n}\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n}\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n\n // The pair must have the same number of owned properties.\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n\n // Use memos to handle cycles.\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n return false;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n case 'object':\n // Only pass in null as object!\n return undefined;\n case 'symbol':\n return false;\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n}\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n }\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n}\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n _key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n if (_typeof(_key) === 'object' && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n}\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","// Settings\nimport { GC_DEFAULTS, GC_PREFERENCES } from '@shell/utils/gc/gc-types';\nimport { PaginationSettings } from '@shell/types/resources/settings';\nimport {\n CAPI, MANAGEMENT, EVENT, CATALOG, HPA, INGRESS, SERVICE,\n CONFIG_MAP,\n SECRET,\n POD, NODE,\n STORAGE_CLASS,\n PVC,\n PV,\n WORKLOAD_TYPES\n} from '@shell/config/types';\n\ninterface GlobalSettingRuleset {\n name: string,\n key?: string | number,\n factoryArg?: string | number | (string | number)[]\n}\n\ninterface GlobalSetting {\n [key: string]: {\n alias?: string,\n canReset?: boolean,\n customFormatter?: string,\n from?: string,\n kind?: string,\n options?: string[]\n readOnly?: boolean,\n /**\n * Function used from the form validation\n */\n ruleSet?: GlobalSettingRuleset[],\n warning?: string\n };\n}\n\n// Adapted from: https://github.com/rancher/ui/blob/08c379a9529f740666a704b52522a468986c3520/lib/shared/addon/utils/constants.js#L564\n// Setting IDs\nexport const SETTING = {\n VERSION_RANCHER: 'server-version',\n VERSION_CLI: 'cli-version',\n VERSION_MACHINE: 'machine-version',\n VERSION_HELM: 'helm-version',\n CLI_URL: {\n DARWIN: 'cli-url-darwin',\n WINDOWS: 'cli-url-windows',\n LINUX: 'cli-url-linux',\n },\n API_HOST: 'api-host',\n CA_CERTS: 'cacerts',\n\n // Allow the local cluster to be hidden\n HIDE_LOCAL_CLUSTER: 'hide-local-cluster',\n AUTH_TOKEN_MAX_TTL_MINUTES: 'auth-token-max-ttl-minutes',\n KUBECONFIG_GENERATE_TOKEN: 'kubeconfig-generate-token',\n KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES: 'kubeconfig-default-token-ttl-minutes',\n ENGINE_URL: 'engine-install-url',\n ENGINE_ISO_URL: 'engine-iso-url',\n FIRST_LOGIN: 'first-login',\n INGRESS_IP_DOMAIN: 'ingress-ip-domain',\n SERVER_URL: 'server-url',\n RKE_METADATA_CONFIG: 'rke-metadata-config',\n EULA_AGREED: 'eula-agreed',\n AUTH_USER_INFO_MAX_AGE_SECONDS: 'auth-user-info-max-age-seconds',\n AUTH_USER_SESSION_TTL_MINUTES: 'auth-user-session-ttl-minutes',\n AUTH_USER_INFO_RESYNC_CRON: 'auth-user-info-resync-cron',\n AUTH_LOCAL_VALIDATE_DESC: 'auth-password-requirements-description',\n PASSWORD_MIN_LENGTH: 'password-min-length', // CATTLE_PASSWORD_MIN_LENGTH\n CLUSTER_TEMPLATE_ENFORCEMENT: 'cluster-template-enforcement',\n UI_INDEX: 'ui-index',\n UI_DASHBOARD_INDEX: 'ui-dashboard-index',\n UI_DASHBOARD_HARVESTER_LEGACY_PLUGIN: 'ui-dashboard-harvester-legacy-plugin',\n UI_OFFLINE_PREFERRED: 'ui-offline-preferred',\n SYSTEM_DEFAULT_REGISTRY: 'system-default-registry',\n UI_ISSUES: 'ui-issues',\n PL: 'ui-pl',\n PL_RANCHER_VALUE: 'rancher',\n SUPPORTED: 'has-support',\n BANNERS: 'ui-banners',\n ISSUES: 'ui-issues',\n BRAND: 'ui-brand',\n LOGO_LIGHT: 'ui-logo-light',\n LOGO_DARK: 'ui-logo-dark',\n BANNER_LIGHT: 'ui-banner-light',\n BANNER_DARK: 'ui-banner-dark',\n LOGIN_BACKGROUND_LIGHT: 'ui-login-background-light',\n LOGIN_BACKGROUND_DARK: 'ui-login-background-dark',\n PRIMARY_COLOR: 'ui-primary-color',\n LINK_COLOR: 'ui-link-color',\n COMMUNITY_LINKS: 'ui-community-links',\n FAVICON: 'ui-favicon',\n UI_PERFORMANCE: 'ui-performance',\n UI_CUSTOM_LINKS: 'ui-custom-links',\n UI_SUPPORTED_K8S_VERSIONS: 'ui-k8s-supported-versions-range',\n /**\n * Allow the backend to force a light/dark theme. Used in non-rancher world and results in the theme used\n * both pre and post log in. If not present defaults to the usual process\n */\n THEME: 'ui-theme',\n SYSTEM_NAMESPACES: 'system-namespaces',\n /**\n * Cluster Agent configuration\n */\n CLUSTER_AGENT_DEFAULT_AFFINITY: 'cluster-agent-default-affinity',\n FLEET_AGENT_DEFAULT_AFFINITY: 'fleet-agent-default-affinity',\n /**\n * manage rancher repositories in extensions (official, partners repos)\n */\n ADD_EXTENSION_REPOS_BANNER_DISPLAY: 'display-add-extension-repos-banner',\n AGENT_TLS_MODE: 'agent-tls-mode',\n /**\n * User retention settings\n */\n USER_RETENTION_CRON: 'user-retention-cron',\n USER_RETENTION_DRY_RUN: 'user-retention-dry-run',\n USER_LAST_LOGIN_DEFAULT: 'user-last-login-default',\n DISABLE_INACTIVE_USER_AFTER: 'disable-inactive-user-after',\n DELETE_INACTIVE_USER_AFTER: 'delete-inactive-user-after',\n K3S_UPGRADER_UNINSTALL_CONCURRENCY: 'k3s-based-upgrader-uninstall-concurrency'\n} as const;\n\n// These are the settings that are allowed to be edited via the UI\nexport const ALLOWED_SETTINGS: GlobalSetting = {\n [SETTING.CA_CERTS]: { kind: 'multiline', readOnly: true },\n [SETTING.ENGINE_URL]: {},\n [SETTING.ENGINE_ISO_URL]: {},\n [SETTING.PASSWORD_MIN_LENGTH]: {\n kind: 'integer',\n ruleSet: [\n {\n name: 'betweenValues',\n key: 'Password',\n factoryArg: [2, 256]\n },\n {\n name: 'isInteger',\n key: 'Password',\n },\n {\n name: 'isPositive',\n key: 'Password',\n },\n {\n name: 'isOctal',\n key: 'Password',\n }\n ],\n },\n [SETTING.INGRESS_IP_DOMAIN]: {},\n [SETTING.AUTH_USER_INFO_MAX_AGE_SECONDS]: {},\n [SETTING.AUTH_USER_SESSION_TTL_MINUTES]: {},\n [SETTING.AUTH_TOKEN_MAX_TTL_MINUTES]: {},\n [SETTING.KUBECONFIG_GENERATE_TOKEN]: { kind: 'boolean' },\n [SETTING.KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES]: { kind: 'integer' },\n [SETTING.AUTH_USER_INFO_RESYNC_CRON]: {},\n [SETTING.SERVER_URL]: { kind: 'url', canReset: true },\n [SETTING.RKE_METADATA_CONFIG]: { kind: 'json' },\n [SETTING.SYSTEM_DEFAULT_REGISTRY]: {},\n [SETTING.UI_INDEX]: {},\n [SETTING.UI_DASHBOARD_INDEX]: {},\n [SETTING.UI_OFFLINE_PREFERRED]: {\n kind: 'enum',\n options: ['dynamic', 'true', 'false']\n },\n [SETTING.BRAND]: { canReset: true },\n [SETTING.CLUSTER_TEMPLATE_ENFORCEMENT]: { kind: 'boolean' },\n [SETTING.HIDE_LOCAL_CLUSTER]: { kind: 'boolean' },\n [SETTING.AGENT_TLS_MODE]: {\n kind: 'enum',\n options: ['strict', 'system-store'],\n warning: 'agent-tls-mode'\n },\n [SETTING.K3S_UPGRADER_UNINSTALL_CONCURRENCY]: {\n kind: 'integer',\n ruleSet: [{ name: 'minValue', factoryArg: 1 }]\n }\n};\n\n/**\n * Settings on how to handle warnings returning in api responses, specifically which to show as growls\n */\nexport interface PerfSettingsWarningHeaders {\n /**\n * Warning is a string containing multiple entries. This determines how they are split up\n *\n * See https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1693-warnings#design-details\n */\n separator: string,\n /**\n * Show warnings in a notification if they're not in this block list\n */\n notificationBlockList: string[]\n}\n\nexport interface PerfSettingsKubeApi {\n /**\n * Settings related to the response header `warnings` value\n */\n warningHeader: PerfSettingsWarningHeaders\n}\n\nexport interface PerfSettings {\n inactivity: {\n enabled: boolean;\n threshold: number;\n };\n incrementalLoading: {\n enabled: boolean;\n threshold: number;\n };\n manualRefresh: {};\n disableWebsocketNotification: boolean;\n garbageCollection: GC_PREFERENCES;\n forceNsFilterV2: any;\n advancedWorker: {};\n kubeAPI: PerfSettingsKubeApi;\n serverPagination: PaginationSettings;\n}\n\nexport const DEFAULT_PERF_SETTING: PerfSettings = {\n inactivity: {\n enabled: false,\n threshold: 900,\n },\n incrementalLoading: {\n enabled: true,\n threshold: 1500,\n },\n manualRefresh: {\n enabled: false,\n threshold: 1500,\n },\n disableWebsocketNotification: true,\n garbageCollection: GC_DEFAULTS,\n forceNsFilterV2: { enabled: false },\n advancedWorker: { enabled: false },\n kubeAPI: {\n /**\n * Settings related to the response header `warnings` value\n */\n warningHeader: {\n /**\n * Warning is a string containing multiple entries. This determines how they are split up\n *\n * See https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1693-warnings#design-details\n */\n separator: '299 - ',\n /**\n * Show warnings in a notification if they're not in this block list\n */\n notificationBlockList: ['299 - unknown field']\n }\n },\n serverPagination: {\n enabled: false,\n stores: {\n cluster: {\n resources: {\n enableAll: false,\n enableSome: {\n // if a resource list is shown by a custom resource list component or has specific list headers then it's not generically shown\n // and must be included here.\n enabled: [\n NODE, EVENT,\n WORKLOAD_TYPES.CRON_JOB, WORKLOAD_TYPES.DAEMON_SET, WORKLOAD_TYPES.DEPLOYMENT, WORKLOAD_TYPES.JOB, WORKLOAD_TYPES.STATEFUL_SET, POD,\n CATALOG.APP, CATALOG.CLUSTER_REPO, CATALOG.OPERATION,\n HPA, INGRESS, SERVICE,\n PV, CONFIG_MAP, STORAGE_CLASS, PVC, SECRET,\n WORKLOAD_TYPES.REPLICA_SET, WORKLOAD_TYPES.REPLICATION_CONTROLLER\n ],\n generic: true,\n }\n }\n },\n management: {\n resources: {\n enableAll: false,\n enableSome: {\n enabled: [\n { resource: CAPI.RANCHER_CLUSTER, context: ['home', 'side-bar'] },\n { resource: MANAGEMENT.CLUSTER, context: ['side-bar'] },\n ],\n generic: false,\n }\n }\n }\n }\n }\n};\n","import { RouteLocation } from 'vue-router';\nimport { ComponentOptionsMixin } from 'vue';\n\nimport { ActionLocation, CardLocation, ExtensionPoint } from '@shell/core/types';\nimport { isMac } from '@shell/utils/platform';\nimport { ucFirst, randomStr } from '@shell/utils/string';\nimport {\n _EDIT, _CONFIG, _DETAIL, _LIST, _CREATE\n} from '@shell/config/query-params';\nimport { getProductFromRoute } from '@shell/utils/router';\nimport { isEqual } from '@shell/utils/object';\n\n/* eslint-disable no-unused-vars */\nenum LocationConfigParams {\n _CONFIG = 'config',\n _CREATE = 'create',\n _DETAIL = 'detail',\n _EDIT = 'edit',\n _LIST = 'list',\n}\n\nfunction checkRouteProduct($route: RouteLocation, locationConfigParam: string) {\n const product = getProductFromRoute($route);\n\n // alias for the homepage\n if (locationConfigParam === 'home' && $route.name === 'home') {\n return true;\n } else if (locationConfigParam === product) {\n return true;\n }\n\n return false;\n}\n\nfunction checkRouteMode({ name, query }: {name: string, query: any}, locationConfigParam: LocationConfigParams) {\n if (locationConfigParam === _EDIT && query.mode && query.mode === _EDIT && !query.as) {\n return true;\n } else if (locationConfigParam === _CONFIG && query.as && query.as === _CONFIG) {\n return true;\n } else if (locationConfigParam === _DETAIL && !query.as && name.includes('-id') && (!query.mode || query?.mode !== _EDIT)) {\n return true;\n // alias to target all list views\n } else if (locationConfigParam === _LIST && !name.includes('-id') && name.includes('-resource')) {\n return true;\n // alias to target create views\n } else if (locationConfigParam === _CREATE && name.endsWith('-create')) {\n return true;\n }\n\n return false;\n}\n\nfunction checkExtensionRouteBinding($route: any, locationConfig: any, context: any) {\n // if no configuration is passed, consider it as global\n if (!Object.keys(locationConfig).length) {\n return true;\n }\n\n const { params } = $route;\n\n // \"params\" to be checked based on the locationConfig\n // This has become overloaded with mode and context\n const paramsToCheck = [\n 'product',\n 'resource',\n 'namespace',\n 'cluster',\n 'id',\n 'mode',\n 'path',\n 'hash',\n // url query params\n 'queryParam',\n // Custom context specific params provided by the extension, not to be confused with location params\n 'context',\n ];\n\n let res = true;\n\n for (let i = 0; i < paramsToCheck.length; i++) {\n const param = paramsToCheck[i];\n\n if (locationConfig[param]) {\n const asArray = Array.isArray(locationConfig[param]) ? locationConfig[param] : [locationConfig[param]];\n\n for (let x = 0; x < asArray.length; x++) {\n const locationConfigParam = asArray[x];\n\n if (locationConfigParam) {\n if (param === 'hash') {\n res = $route.hash ? $route.hash.includes(locationConfigParam) : false;\n // handle \"product\" in a separate way...\n } else if (param === 'product') {\n res = checkRouteProduct($route, locationConfigParam);\n // also handle \"mode\" in a separate way because it mainly depends on query params\n } else if (param === 'mode') {\n res = checkRouteMode($route, locationConfigParam);\n } else if (param === 'resource') {\n // Match exact resource but also allow resource of '*' to match any resource\n res = (params[param] && locationConfigParam === '*') || locationConfigParam === params[param];\n } else if (param === 'context') {\n // Need all keys and values to match\n res = isEqual(locationConfigParam, context);\n // evaluate queryParam in route\n } else if (param === 'queryParam') {\n res = isEqual(locationConfigParam, $route.query);\n // evaluate path in route\n } else if (param === 'path' && locationConfigParam.urlPath) {\n if (locationConfigParam.endsWith) {\n res = $route.path.endsWith(locationConfigParam.urlPath);\n } else if (!Object.keys(locationConfigParam).includes('exact') || locationConfigParam.exact) {\n res = locationConfigParam.urlPath === $route.path;\n } else {\n res = $route.path.includes(locationConfigParam.urlPath);\n }\n } else if (locationConfigParam === params[param]) {\n res = true;\n } else {\n res = false;\n }\n }\n\n // If a single location config param is good then this is an param (aka ['pods', 'configmap'] = pods or configmaps)\n if (res) {\n break;\n }\n }\n\n // If a single param (set of location config params) is bad then this is not an acceptable location\n if (!res) {\n break;\n }\n }\n }\n\n return res;\n}\n\nexport function getApplicableExtensionEnhancements<T>(\n pluginCtx: ComponentOptionsMixin,\n actionType: ExtensionPoint,\n uiArea: CardLocation | ActionLocation,\n currRoute: RouteLocation,\n translationCtx = pluginCtx,\n context?: ComponentOptionsMixin): T[] {\n const extensionEnhancements: T[] = [];\n\n // gate it so that we prevent errors on older versions of dashboard\n if (pluginCtx.$plugin?.getUIConfig) {\n const actions = pluginCtx.$plugin.getUIConfig(actionType, uiArea);\n\n actions.forEach((action: any, i: number) => {\n if (checkExtensionRouteBinding(currRoute, action.locationConfig, context || {})) {\n // ADD CARD PLUGIN UI ENHANCEMENT\n if (actionType === ExtensionPoint.CARD) {\n // intercept to apply translation\n if (uiArea === CardLocation.CLUSTER_DASHBOARD_CARD && action.labelKey) {\n actions[i].label = translationCtx.t(action.labelKey);\n }\n\n // ADD ACTION PLUGIN UI ENHANCEMENT\n } else if (actionType === ExtensionPoint.ACTION) {\n // TABLE ACTION\n if (uiArea === ActionLocation.TABLE) {\n // intercept to apply translation\n if (action.labelKey) {\n actions[i].label = translationCtx.t(action.labelKey);\n }\n\n // bulkable flag\n actions[i].bulkable = actions[i].multiple || actions[i].bulkable;\n\n // populate action identifier to prevent errors\n if (!actions[i].action) {\n actions[i].action = `custom-table-action-${ randomStr(10).toLowerCase() }`;\n }\n }\n\n // extract simplified shortcut definition on plugin - HEADER ACTION\n if (uiArea === ActionLocation.HEADER && action.shortcut) {\n // if it's a string, then assume CTRL for windows and META for mac\n if (typeof action.shortcut === 'string') {\n actions[i].shortcutLabel = () => {\n return isMac ? `(\\u2318-${ action.shortcut.toUpperCase() })` : `(Ctrl-${ action.shortcut.toUpperCase() })`;\n };\n actions[i].shortcutKey = { windows: ['ctrl', action.shortcut], mac: ['meta', action.shortcut] };\n // correct check for an Object type in JS... handle the object passed\n } else if (typeof action.shortcut === 'object' && !Array.isArray(action.shortcut) && action.shortcut !== null) {\n actions[i].shortcutKey = action.shortcut;\n const keyboardCombo = isMac ? actions[i].shortcut.mac : actions[i].shortcut.windows ? actions[i].shortcut.windows : [];\n let scLabel = '';\n\n keyboardCombo.forEach((key: string, i: number) => {\n if (i < keyboardCombo.length - 1) {\n if (key === 'meta') {\n key = '\\u2318';\n } else {\n key = ucFirst(key);\n }\n scLabel += `${ key }`;\n scLabel += '-';\n } else {\n scLabel += `${ key.toUpperCase() }`;\n }\n });\n\n actions[i].shortcutLabel = () => {\n return `(${ scLabel })`;\n };\n }\n }\n }\n\n extensionEnhancements.push(actions[i]);\n }\n });\n }\n\n return extensionEnhancements;\n}\n","import { ProductFunction } from './plugin';\nimport { RouteRecordRaw } from 'vue-router';\n\n// Cluster Provisioning types\nexport * from './types-provisioning';\n\n// package.json metadata\nexport interface PackageMetadata {\n name: string;\n version: string;\n description: string;\n icon: string;\n}\n\n// export interface Route {\n// name: string;\n// path: string;\n// component: Object | Function,\n// children: Route[];\n// }\n\nexport type VuexStoreObject = { [key: string]: any }\nexport type CoreStoreSpecifics = { state: () => VuexStoreObject, getters: VuexStoreObject, mutations: VuexStoreObject, actions: VuexStoreObject }\nexport type CoreStoreConfig = { namespace: string, baseUrl?: string, modelBaseClass?: string, supportsStream?: boolean, isClusterStore?: boolean }\nexport type CoreStoreInit = (store: any, ctx: any) => void;\nexport type RegisterStore = () => (store: any) => void\nexport type UnregisterStore = (store: any) => void\n\nexport type PluginRouteRecordRaw = { [key: string]: any }\n\nexport type OnEnterLeavePackageConfig = {\n clusterId: string,\n product: string,\n oldProduct: string,\n isExt: string,\n oldIsExt: string\n}\n\nexport type OnNavToPackage = (store: any, config: OnEnterLeavePackageConfig) => Promise<void>;\nexport type OnNavAwayFromPackage = (store: any, config: OnEnterLeavePackageConfig) => Promise<void>;\nexport type OnLogOut = (store: any) => Promise<void>;\n\n/** Enum regarding the extensionable areas/places of the UI */\nexport enum ExtensionPoint {\n ACTION = 'Action', // eslint-disable-line no-unused-vars\n TAB = 'Tab', // eslint-disable-line no-unused-vars\n PANEL = 'Panel', // eslint-disable-line no-unused-vars\n CARD = 'Card', // eslint-disable-line no-unused-vars\n TABLE_COL = 'TableColumn', // eslint-disable-line no-unused-vars\n}\n\n/** Enum regarding action locations that are extensionable in the UI */\nexport enum ActionLocation {\n HEADER = 'header-action', // eslint-disable-line no-unused-vars\n TABLE = 'table-action', // eslint-disable-line no-unused-vars\n}\n\n/** Enum regarding panel locations that are extensionable in the UI */\nexport enum PanelLocation {\n DETAILS_MASTHEAD = 'details-masthead', // eslint-disable-line no-unused-vars\n DETAIL_TOP = 'detail-top', // eslint-disable-line no-unused-vars\n RESOURCE_LIST = 'resource-list', // eslint-disable-line no-unused-vars\n}\n\n/** Enum regarding tab locations that are extensionable in the UI */\nexport enum TabLocation {\n RESOURCE_DETAIL = 'tab', // eslint-disable-line no-unused-vars\n CLUSTER_CREATE_RKE2 = 'cluster-create-rke2', // eslint-disable-line no-unused-vars\n}\n\n/** Enum regarding card locations that are extensionable in the UI */\nexport enum CardLocation {\n CLUSTER_DASHBOARD_CARD = 'cluster-dashboard-card', // eslint-disable-line no-unused-vars\n}\n\n/** Enum regarding table col locations that are extensionable in the UI */\nexport enum TableColumnLocation {\n RESOURCE = 'resource-list', // eslint-disable-line no-unused-vars\n}\n\n/** Definition of the shortcut object (keyboard shortcuts) */\nexport type ShortCutKey = {\n windows?: string[];\n mac?: string[];\n};\n\n/** Definition of the action options (table actions) */\nexport type ActionOpts = {\n event: any;\n isAlt: boolean;\n action: any;\n};\n\n/** Definition of an extension action (options that can be passed when setting an extension action) */\nexport type Action = {\n label?: string;\n labelKey?: string;\n tooltipKey?: string;\n tooltip?: string;\n shortcut?: string | ShortCutKey;\n svg?: Function;\n icon?: string;\n multiple?: boolean;\n enabled?: Function | boolean;\n invoke: (opts: ActionOpts, resources: any[], globals?: any) => void | boolean | Promise<boolean>;\n};\n\n/** Definition of a panel (options that can be passed when defining an extension panel enhancement) */\nexport type Panel = {\n component: Function;\n};\n\n/** Definition of a card (options that can be passed when defining an extension card enhancement) */\nexport type Card = {\n label?: string;\n labelKey?: string;\n component: Function;\n};\n\nexport type TableColumn = any;\n\n/** Definition of a tab (options that can be passed when defining an extension tab enhancement) */\nexport type Tab = {\n name: string;\n label?: string;\n labelKey?: string;\n tooltipKey?: string;\n tooltip?: string;\n showHeader?: boolean;\n weight?: number;\n component: Function;\n};\n\n/** Definition of the locationConfig object (used in extensions) */\nexport type LocationConfig = {\n product?: string[],\n resource?: string[],\n namespace?: string[],\n cluster?: string[],\n id?: string[],\n mode?: string[],\n hash?: string[],\n /**\n * path match from URL (excludes host address)\n */\n path?: { [key: string]: string | boolean}[],\n /**\n * Query Params from URL\n */\n queryParam?: { [key: string]: string},\n /**\n * Context specific params.\n *\n * Components can provide additional context specific params that this value must match\n */\n context?: { [key: string]: string},\n};\n\n/**\n * Environment metadata that extensions can access\n */\nexport type ExtensionEnvironment = {\n version: string;\n commit: string;\n isPrime: boolean;\n docsVersion: string; /** e.g. 'v2.10' */\n};\n\nexport interface ProductOptions {\n /**\n * The category this product belongs under. i.e. 'config'\n */\n category?: string;\n\n /**\n * Hide the Copy KubeConfig button in the header\n */\n hideCopyConfig?: boolean;\n\n /**\n * Hide the Download KubeConfig button in the header\n */\n hideKubeConfig?: boolean;\n\n /**\n * Hide the Kubectl Shell button in the header\n */\n hideKubeShell?: boolean;\n\n /**\n * Hide the Namespace location\n */\n hideNamespaceLocation?: boolean;\n\n /**\n * Hide the system resources\n */\n\n hideSystemResources?: boolean;\n /**\n * The icon that should be displayed beside this item in the navigation.\n */\n icon?: string,\n\n /**\n * Only load the product if the feature is present\n */\n ifFeature?: string | RegExp;\n\n /**\n * Only load the product if the type is present\n */\n ifHave?: string;\n\n /**\n * Only load the product if the group is present\n */\n ifHaveGroup?: string | RegExp;\n\n /**\n * Only load the product if the type is present\n */\n ifHaveType?: string | RegExp;\n\n /**\n * The vuex store that this product should use by default i.e. 'management'\n */\n inStore?: string;\n\n /**\n * Show the cluster switcher in the navigation\n */\n showClusterSwitcher?: boolean;\n\n /**\n * Show the namespace filter in the header\n */\n showNamespaceFilter?: boolean;\n\n /**\n * A number used to determine where in navigation this item will be placed. The highest number will be at the top of the list.\n */\n weight?: number;\n\n /**\n * The route that the product will lead to if click on in navigation.\n */\n to?: PluginRouteRecordRaw;\n\n /**\n * Alternative to the icon property. Uses require\n */\n svg?: Function;\n\n /**\n * Product name\n */\n name?: string;\n\n /**\n * Leaving these here for completeness but I don't think these should be advertised as useable to plugin creators.\n */\n // ifHaveVerb: string | RegExp;\n // removable: string;\n // showWorkspaceSwitcher: boolean;\n // supportRoute: string;\n // typeStoreMap: string;\n}\n\nexport interface HeaderOptions {\n /**\n * Name of the header. This should be unique.\n */\n name?: string;\n\n /**\n * A string that will show in the table column as a header\n */\n label?: string;\n\n /**\n * A translation key where the resulting string will show in the table column as a header\n */\n labelKey?: string;\n\n /**\n * A string which represents the path to access the value from the row object i.e. `row.meta.value`.\n */\n value?: string;\n\n /**\n * A string which represents the path to access the value from the row object which we'll use to sort i.e. `row.meta.value`\n */\n sort?: string | string[];\n\n /**\n * A string which represents the path to access the value from the row object which we'll use to search i.e. `row.meta.value`.\n * It can be false to disable searching on this field\n */\n search?: string | boolean;\n\n /**\n * Number of pixels the column should be in the table\n */\n width?: number;\n\n /**\n * The name of a custom formatter. The available formatters can bee seen in `@rancher/shell/components/formatter`\n */\n formatter?: string;\n\n /**\n * These options are dependent on the formatter that's chosen. Examples can be seen in `@rancher/shell/components/formatter` and `@rancher/shell/config/table-headers`\n */\n formatterOpts?: any;\n\n /**\n * Provide a function which accets a row and returns the value that should be displayed in the column\n * @param row This can be any value which represents the row\n * @returns Can return {@link string | number | null | undefined} to display in the column\n */\n getValue?: (row: any) => string | number | null | undefined;\n}\n\nexport interface ConfigureTypeOptions {\n /**\n * The resource can edit/show yaml\n */\n canYaml?: boolean;\n\n /**\n * Modify the way the name looks when displayed\n */\n displayName?: string;\n\n /**\n * New resources can be created of this type\n */\n isCreatable?: boolean;\n\n /**\n * Resources of this type can be deleted/removed\n */\n isRemovable?: boolean;\n\n /**\n * Resources of this type can be edited\n */\n isEditable?: boolean;\n\n /**\n * This type should be grouped by namespaces when displayed in a table\n */\n namespaced?: boolean;\n\n /**\n * Show the age column in when displaying this type in a table\n */\n showAge?: boolean;\n\n /**\n * Show the masthead at the top of the list view of this type\n */\n showListMasthead?: boolean;\n\n /**\n * Show the state column in when displaying this type in a table\n */\n showState?: boolean;\n\n /**\n * Define where this type/page should navigate to (menu entry routing)\n */\n customRoute?: Object;\n\n /**\n * Leaving these here for completeness but I don't think these should be advertised as useable to plugin creators.\n */\n // alias\n // depaginate\n // graphConfig\n // hasGraph\n // limit\n // listGroups\n // localOnly\n // location\n // match\n // realResource\n // resource\n // resourceDetail\n // resourceEdit\n // showConfigView\n}\n\nexport interface ConfigureVirtualTypeOptions extends ConfigureTypeOptions {\n /**\n * Only load the product if the type is present\n */\n ifHave?: string;\n\n /**\n * Only load the product if the type is present\n */\n ifHaveType?: string | RegExp | Object;\n\n /**\n * The label that this type should display\n */\n label?: string;\n\n /**\n * The translation key displayed anywhere this type is referenced\n */\n labelKey?: string;\n\n /**\n * An identifier that should be unique across all types\n */\n name: string;\n\n /**\n * The route that this type should correspond to {@link PluginRouteRecordRaw} {@link RouteRecordRaw}\n */\n route: PluginRouteRecordRaw | RouteRecordRaw | Object;\n}\n\nexport interface DSLReturnType {\n /**\n * Register multiple types by name and place them all in a group if desired. Primarily used for grouping things in the cluster explorer navigation.\n * @param types A list of types that are going to be registered\n * @param group Conditionally a group you want to places all the types in\n * @returns {@link void}\n */\n basicType: (types: string[], group?: string) => void;\n\n /**\n * Configure a myriad of options for the specified type\n * @param type The type to be configured\n * @param options {@link ConfigureTypeOptions}\n * @returns {@link void}\n */\n configureType: (type: string, options: ConfigureTypeOptions) => void;\n\n /**\n * Register the headers/columns that should be used when rendering a table for the specified type.\n * @param type The type you'd like to register headers/columns for.\n * @param headers {@link HeaderOptions[]}\n * @returns {@link void}\n */\n headers: (type: string, headers: HeaderOptions[]) => void;\n\n /**\n * Create and register a new product\n * @param options {@link ProductOptions}\n * @returns {@link void}\n */\n product: (options: ProductOptions) => void;\n\n /**\n * Create and label a group. The group will show up in navigation\n * @param groupNane Name of the group\n * @param label Label in navigation\n * @returns {@link void}\n */\n mapGroup: (groupName: string, label: string) => void;\n\n /**\n * Create and configure a myriad of options for a type\n * @param options {@link ConfigureVirtualTypeOptions}\n * @returns {@link void}\n */\n virtualType: (options: ConfigureVirtualTypeOptions) => void;\n\n /**\n * Leaving these here for completeness but I don't think these should be advertised as useable to plugin creators.\n */\n // componentForType: (type: string, replacementType: string)\n // groupBy: (type: string, field: string)\n // hideBulkActions: (type: string, field)\n // ignoreGroup: (regexOrString)\n // ignoreType: (regexOrString)\n //\n // mapType: (match, replace)\n // moveType: (match, group)\n // setGroupDefaultType: (input, defaultType)\n // spoofedType: (obj)\n // weightGroup: (input, weight, forBasic)\n // weightType: (input, weight, forBasic)\n}\n\n/**\n * Context for the constructor of a model extension\n */\nexport type ModelExtensionContext = {\n /**\n * Dispatch vuex actions\n */\n dispatch: any,\n /**\n * Get from vuex store\n */\n getters: any,\n /**\n * Used to make http requests\n */\n axios: any,\n /**\n * Definition of the extension\n */\n $plugin: any,\n /**\n * Function to retrieve a localised string\n */\n t: (key: string) => string,\n};\n\n/**\n * Constructor signature for a model extension\n */\nexport type ModelExtensionConstructor = (context: ModelExtensionContext) => Object;\n\n/**\n * Interface for a Dashboard plugin\n */\nexport interface IPlugin {\n /**\n * Add a product\n * @param importFn Function that will import the module containing a product definition\n */\n addProduct(importFn: ProductFunction): void;\n\n /**\n * Add a locale to the i18n store\n * @param locale Locale id (e.g. en-us)\n * @param label Label for the locale to be displayed in the i18n chooser\n */\n addLocale(locale: string, label: string): void;\n\n /**\n * Plugin metadata\n */\n metadata: PackageMetadata;\n\n /**\n * Validators used in the same manner as shell/utils/custom-validators\n */\n validators: {[key: string]: Function};\n\n /**\n * Add a module containing localisations for a specific locale\n */\n addL10n(locale: string, fn: Function): void;\n\n /**\n * Add a route to the Vue Router\n */\n addRoute(route: RouteRecordRaw): void;\n addRoute(parent: string, route: RouteRecordRaw): void;\n\n /**\n * Adds an action/button to the UI\n */\n addAction(where: ActionLocation | string, when: LocationConfig | string, action: Action): void;\n\n /**\n * Adds a tab to the UI (ResourceTabs component)\n */\n addTab(where: TabLocation | string, when: LocationConfig | string, action: Tab): void;\n\n /**\n * Adds a panel/component to the UI\n */\n addPanel(where: PanelLocation | string, when: LocationConfig | string, action: Panel): void;\n\n /**\n * Adds a card to the UI\n */\n addCard(where: CardLocation | string, when: LocationConfig | string, action: Card): void;\n\n /**\n * Adds a new column to the SortableTable component\n */\n addTableColumn(where: TableColumnLocation | string, when: LocationConfig | string, action: TableColumn): void;\n\n /**\n * Set the component to use for the landing home page\n * @param component Home page component\n */\n setHomePage(component: any): void;\n\n /**\n * Add routes to the Vue Router\n */\n addRoutes(routes: PluginRouteRecordRaw[] | RouteRecordRaw[]): void;\n\n /**\n * Add a hook to be called when the plugin is uninstalled\n * @param hook Function to call when the plugin is uninstalled\n */\n addUninstallHook(hook: Function): void;\n\n /**\n * Add a generic Vuex Store\n */\n addStore(storeName: string, register: RegisterStore, unregister: UnregisterStore): void;\n /**\n * Add a dashboard Vuex store.\n *\n * This will contain the toolset (getters/mutations/actions/etc) required by the dashboard to support Dashboard components. Most of these\n * will be automatically supplemented when the store is registered, others though will need to be provided to supply package specific\n * functionality (see storeSpecifics). For instance a component may request to fetch all of a resource type which, via a number of generic\n * actions, will eventually call a `request` action which will make the raw http request. This is a pkg specific feature so needs the\n * `request` action needs to be supplied in the `storeSpecifics`\n */\n addDashboardStore(storeName: string, storeSpecifics: CoreStoreSpecifics, config: CoreStoreConfig, init?: CoreStoreInit): void;\n\n /**\n * Add hooks that will execute when a user navigates\n * - to a route owned by this package\n * - from a route owned by this package\n */\n addNavHooks(\n onEnter?: OnNavToPackage,\n onLeave?: OnNavAwayFromPackage,\n onLogOut?: OnLogOut\n ): void;\n\n /**\n * Adds a model extension\n * @experimental May change or be removed in the future\n *\n * @param type Model type\n * @param clz Class for the model extension (constructor)\n */\n addModelExtension(type: string, clz: ModelExtensionConstructor): void;\n\n /**\n * Register 'something' that can be dynamically loaded - e.g. model, edit, create, list, i18n\n * @param {String} type type of thing to register, e.g. 'edit'\n * @param {String} name unique name of 'something'\n * @param {Function} fn function that dynamically loads the module for the thing being registered\n */\n register(type: string, name: string, fn: Function | Boolean): void;\n\n /**\n * Will return all of the configuration functions used for creating a new product.\n * @param store The store that was passed to the function that's passed to `plugin.addProduct(function)`\n * @param productName The name of the new product. This name is displayed in the navigation.\n */\n DSL(store: any, productName: string): DSLReturnType;\n\n /**\n * Get information about the Extension Environment\n */\n get environment(): ExtensionEnvironment;\n}\n\n// Internal interface\n// Built-in extensions may use this, but external extensions should not, as this is subject to change\n// Defined as any for now\nexport type IInternal = any;\n","/**\n * Sets the width of a DOM element. Adapted from [youmightnotneedjquery.com](https://youmightnotneedjquery.com/#set_width)\n * @param {Element} el - The target DOM element\n * @param {function | string | number} val - The desired width represented as a Number\n */\nexport function setWidth(el, val) {\n if (!el) {\n return;\n }\n\n if (typeof val === 'function') {\n val = val();\n }\n\n if (typeof val === 'string') {\n el.style.width = val;\n\n return;\n }\n\n el.style.width = `${ val }px`;\n}\n\n/**\n * Gets the width of a DOM element. Adapted from [youmightnotneedjquery.com](https://youmightnotneedjquery.com/#get_width)\n * @param {Element} el - The target DOM element\n * @returns Number representing the width for the provided element\n */\nexport function getWidth(el) {\n if (!el || !el.length) {\n return;\n }\n\n if (el.length) {\n return parseFloat(getComputedStyle(el[0]).width.replace('px', ''));\n } else {\n return parseFloat(getComputedStyle(el).width.replace('px', ''));\n }\n}\n","import { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { getWidth, setWidth } from '@shell/utils/width';\n\ninterface LabeledFormElement {\n raised: boolean;\n focused: boolean;\n blurred: number | null;\n}\n\nexport default {\n inheritAttrs: false,\n\n emits: ['update:validation', 'on-focus', 'on-blur'],\n\n props: {\n mode: {\n type: String,\n default: _EDIT,\n },\n\n label: {\n type: String,\n default: null\n },\n\n labelKey: {\n type: String,\n default: null\n },\n\n placeholderKey: {\n type: String,\n default: null\n },\n\n tooltip: {\n type: [String, Object],\n default: null\n },\n\n hoverTooltip: {\n type: Boolean,\n default: true,\n },\n\n tooltipKey: {\n type: String,\n default: null\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n placeholder: {\n type: [String, Number],\n default: ''\n },\n\n value: {\n type: [String, Number, Object],\n default: ''\n },\n\n options: {\n default: null,\n type: Array\n },\n\n searchable: {\n default: false,\n type: Boolean\n },\n\n filterable: {\n default: true,\n type: Boolean\n },\n\n rules: {\n default: () => [],\n type: Array,\n // we only want functions in the rules array\n validator: (rules: any) => rules.every((rule: any) => ['function'].includes(typeof rule))\n },\n\n requireDirty: {\n default: true,\n type: Boolean\n }\n },\n\n data(): LabeledFormElement {\n return {\n raised: this.mode === _VIEW || !!`${ this.value }`,\n focused: false,\n blurred: null,\n };\n },\n\n computed: {\n requiredField(): boolean {\n // using \"any\" for a type on \"rule\" here is dirty but the use of the optional chaining operator makes it safe for what we're doing here.\n return (this.required || this.rules.some((rule: any): boolean => rule?.name === 'required'));\n },\n empty(): boolean {\n return !!`${ this.value }`;\n },\n\n isView(): boolean {\n return this.mode === _VIEW;\n },\n\n isDisabled(): boolean {\n return this.disabled || this.isView;\n },\n\n isSearchable(): boolean {\n const { searchable, canPaginate } = this as any; // This will be resolved when we migrate from mixin\n\n if (canPaginate) {\n return true;\n }\n const options = ( this.options || [] );\n\n if (searchable || options.length >= 10) {\n return true;\n }\n\n return false;\n },\n\n isFilterable(): boolean {\n const { filterable, canPaginate } = this as any; // This will be resolved when we migrate from mixin\n\n if (canPaginate) {\n return false;\n }\n\n return filterable;\n },\n\n validationMessage(): string | undefined {\n // we want to grab the required rule passed in if we can but if it's not there then we can just grab it from the formRulesGenerator\n const requiredRule = this.rules.find((rule: any) => rule?.name === 'required') as Function;\n const ruleMessages = [];\n const value = this?.value;\n\n if (requiredRule && this.blurred && !this.focused) {\n const message = requiredRule(value);\n\n if (!!message) {\n this.$emit('update:validation', false);\n\n return message;\n }\n }\n\n for (const rule of this.rules as Function[]) {\n const message = rule(value);\n\n if (!!message && rule.name !== 'required') { // we're catching 'required' above so we can ignore it here\n ruleMessages.push(message);\n }\n }\n if (ruleMessages.length > 0 && (this.blurred || this.focused || !this.requireDirty)) {\n this.$emit('update:validation', false);\n\n return ruleMessages.join(', ');\n } else {\n this.$emit('update:validation', true);\n\n return undefined;\n }\n }\n },\n\n methods: {\n resizeHandler() {\n // since the DD is positioned there is no way to 'inherit' the size of the input, this calcs the size of the parent and set the dd width if it is smaller. If not let it grow with the regular styles\n this.$nextTick(() => {\n const DD = (this.$refs.select as HTMLElement).querySelector('ul.vs__dropdown-menu');\n\n const selectWidth = getWidth(this.$refs.select as Element) || 0;\n const dropWidth = getWidth(DD as Element) || 0;\n\n if (dropWidth < selectWidth) {\n setWidth(DD as Element, selectWidth);\n }\n });\n },\n onFocus() {\n this.$emit('on-focus');\n\n return this.onFocusLabeled();\n },\n\n onFocusLabeled() {\n this.raised = true;\n this.focused = true;\n },\n\n onBlur() {\n this.$emit('on-blur');\n\n return this.onBlurLabeled();\n },\n\n onBlurLabeled() {\n this.focused = false;\n\n if ( !this.value ) {\n this.raised = false;\n }\n\n this.blurred = Date.now();\n }\n }\n};\n","import Deployment from '@shell/models/apps.deployment';\nimport { WORKLOAD_TYPES } from '@shell/config/types';\n\ndescribe('class Deployment', () => {\n describe('replicaSetId', () => {\n it.each([{\n relationships: [],\n expected: undefined,\n }, {\n relationships: [{\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id'\n }],\n expected: 'rel-id',\n }, {\n relationships: [{\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-1',\n message: 'ReplicaSet is available. Replicas: 1'\n }],\n expected: 'rel-id-1',\n }, {\n relationships: [{\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-1',\n message: 'ReplicaSet is available. Replicas: 0'\n }, {\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-2',\n message: 'ReplicaSet is available. Replicas: 1'\n }],\n expected: 'rel-id-2',\n }, {\n relationships: [{\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-1',\n message: 'Message without replicas count'\n }, {\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-2',\n message: 'Another message without replicas count'\n }],\n expected: 'rel-id-1',\n }, {\n relationships: [{\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-1',\n message: 'ReplicaSet is available. Replicas: 0'\n }, {\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-2',\n message: 'ReplicaSet is available. Replicas: 0'\n }],\n expected: 'rel-id-1',\n }, {\n relationships: [{\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-1',\n message: 'Message without replicas count'\n }, {\n rel: 'owner',\n toType: WORKLOAD_TYPES.REPLICA_SET,\n toId: 'rel-id-2',\n message: 'ReplicaSet is available. Replicas: 0'\n }],\n expected: 'rel-id-1',\n }])('replicaSetId', ({ relationships, expected }) => {\n const deploymentData = {\n id: 'any-id',\n type: WORKLOAD_TYPES.DEPLOYMENT,\n metadata: {\n name: 'any-name',\n namespace: 'any-namespace',\n uid: 'any-uid',\n relationships,\n },\n };\n\n const deployment = new Deployment(deploymentData);\n\n expect(deployment.replicaSetId).toStrictEqual(expected);\n });\n });\n});\n","import Cronjob from '@shell/models/batch.cronjob';\ndescribe('class Cronjob', () => {\n it('should have no ownerReferences by default', () => {\n const cronJobData = {\n id: 'any-id',\n type: 'batch.job',\n apiVersion: 'batch/v1',\n kind: 'Job',\n metadata: {\n name: 'any-name',\n namespace: 'any-namespace',\n uid: 'any-uid'\n },\n spec: { jobTemplate: {} }\n };\n const expectation = {\n name: 'any-name', namespace: 'any-namespace', uid: 'any-uid'\n };\n const cronjob = new Cronjob(cronJobData);\n\n expect(cronjob.metadata).toStrictEqual(expectation);\n });\n\n describe('method runNow', () => {\n it('should populate job metadata', async() => {\n const jobData = {\n id: 'any-id',\n type: 'batch.job',\n apiVersion: 'batch/v1',\n kind: 'Job',\n metadata: {\n name: 'any-name',\n namespace: 'any-namespace',\n uid: 'any-uid'\n },\n spec: { jobTemplate: {} }\n };\n const date = Date.now();\n const expected = {\n name: `${ jobData.metadata.name }-${ date }`,\n namespace: jobData.metadata.namespace,\n ownerReferences: [{\n apiVersion: 'batch/v1',\n controller: true,\n kind: 'Job',\n name: jobData.metadata.name,\n uid: jobData.metadata.uid\n }],\n uid: jobData.metadata.uid\n };\n const dispatcher = () => ({\n ...jobData,\n save: jest.fn(),\n goToDetail: jest.fn()\n });\n const cronjob = new Cronjob(jobData, { dispatch: dispatcher });\n\n jest\n .useFakeTimers()\n .setSystemTime(date);\n jest.spyOn(cronjob, '$dispatch').mockImplementation(dispatcher);\n\n await cronjob.runNow();\n\n expect(cronjob.metadata).toStrictEqual(expected);\n });\n\n it('should redirect to another page', async() => {\n const jobData = {\n metadata: { name: 'any-name' },\n spec: { jobTemplate: {} }\n };\n const callback = jest.fn();\n const dispatcher = () => ({\n ...jobData,\n save: jest.fn(),\n goToDetail: callback\n });\n const cronjob = new Cronjob(jobData, { dispatch: dispatcher });\n\n jest.spyOn(cronjob, '$dispatch').mockImplementation(dispatcher);\n\n await cronjob.runNow();\n\n expect(callback).toHaveBeenCalledWith();\n });\n });\n});\n","import NormanCluster from '@shell/models/cluster';\n\ndescribe('class NormanCluster', () => {\n const t = jest.fn(() => 'abc');\n const ctx = { rootGetters: { 'i18n/t': t }, dispatch: jest.fn() };\n\n it('should return empty arrays of system labels and system annotations if cluster labels and annotations are undefined', () => {\n const cluster = new NormanCluster({}, ctx);\n\n expect(cluster.systemLabels).toStrictEqual([]);\n expect(cluster.systemAnnotations).toStrictEqual([]);\n });\n\n it('should list all the cluster\\'s annotation keys that contain coreos.com, cattle.io, k3s.io, kubernetes.io, or k3s.io', () => {\n const testAnnotations = ['cattle.io/test', 'coreos.com', 'test.cattle.io/something', 'kubernetes.io/test'];\n const cluster = new NormanCluster({\n annotations: {\n 'cattle.io/test': 'abc',\n 'coreos.com': 'abc',\n 'k3s.io/test': 'abc',\n 'test.cattle.io/something': 'abc',\n 'kubernetes.io/test': 'abc',\n 'other-label': 'abc'\n }\n }, ctx);\n\n expect(testAnnotations.find((annotation) => !cluster.systemAnnotations.includes(annotation))).toBeUndefined();\n });\n\n it('should list all the cluster\\'s label keys that contain io.cattle.lifecycle, kubernetes.io, cattle.io, or k3s.io', () => {\n const testLabels = ['cattle.io/test', 'test.io.cattle.lifecycle', 'test.kubernetes.io/test', 'k3s.io/test'];\n const cluster = new NormanCluster({\n labels: {\n 'cattle.io/test': 'abc',\n 'test.io.cattle.lifecycle': 'abc',\n 'k3s.io/test': 'abc',\n 'test.kubernetes.io/test': 'abc',\n 'other-label': 'abc'\n }\n }, ctx);\n\n expect(testLabels.find((label) => !cluster.systemLabels.includes(label))).toBeUndefined();\n });\n});\n","import FleetCluster from '@shell/models/fleet.cattle.io.cluster';\n\ndescribe('class FleetCluster', () => {\n it('should provide bundleInfo if correct data is present', () => {\n const fleetCluster = new FleetCluster({\n metadata: {},\n spec: {},\n status: { display: { readyBundles: '0/1' } },\n });\n\n expect(fleetCluster.bundleInfo.ready).toBe(0);\n expect(fleetCluster.bundleInfo.total).toBe(1);\n expect(Object.getOwnPropertyNames(fleetCluster.bundleInfo)).not.toContain('noValidData');\n });\n describe('should provide bundleInfo with error', () => {\n it.each([\n [''],\n ['/'],\n ['1/'],\n ['/1'],\n ['1/1/2'],\n ['a/1'],\n ['a/b'],\n ['any-string'],\n ['any-string1/string2']\n ])('with multiple scenarios of wrongful \"readyBundles\" data', (readyBundles) => {\n const fleetCluster = new FleetCluster({\n metadata: {},\n spec: {},\n status: { display: { readyBundles } },\n });\n\n expect(Object.getOwnPropertyNames(fleetCluster.bundleInfo)).toContain('noValidData');\n });\n });\n});\n","import MgmtCluster from '@shell/models/management.cattle.io.cluster';\n\njest.mock('@shell/utils/clipboard', () => {\n return { copyTextToClipboard: jest.fn(() => Promise.resolve({})) };\n});\n\ndescribe('class MgmtCluster', () => {\n describe('provisioner', () => {\n const testCases = [\n [{ provider: 'rke', driver: 'imported' }, 'imported'],\n [{ provider: 'k3s', driver: 'K3S' }, 'K3S'],\n [{ provider: 'aks', driver: 'AKS' }, 'AKS'],\n [{}, 'imported'],\n ];\n\n it.each(testCases)('should return provisioner value properly based on the props data', (clusterData: Object, expected: String) => {\n const cluster = new MgmtCluster({ status: clusterData });\n\n expect(cluster.provisioner).toBe(expected);\n }\n );\n });\n});\n","import MgmtNode from '@shell/models/management.cattle.io.node';\n\ndescribe('class MgmtNode', () => {\n const foo = 'foo';\n const bar = 'bar';\n const t = jest.fn(() => bar);\n const ctx = { rootGetters: { 'i18n/t': t } };\n\n const resetMocks = () => {\n // Clear all mock function calls:\n jest.clearAllMocks();\n };\n\n it('should not return addresses if they are not present in the resource status, the internalNodeStatus, or the rkeNode key in status', () => {\n const mgmtNode = new MgmtNode({ status: {} });\n\n expect(mgmtNode.addresses).toStrictEqual([]);\n resetMocks();\n });\n\n describe('should return addresses', () => {\n const addresses = [foo];\n\n it('if they are present directly on the resource status', () => {\n const mgmtNode = new MgmtNode({ status: { addresses } });\n\n expect(mgmtNode.addresses).toStrictEqual(addresses);\n });\n it('if they are not present directly on the resource status but are on \"status.internalNodeStatus\"', () => {\n const mgmtNode = new MgmtNode({ status: { internalNodeStatus: { addresses } } });\n\n expect(mgmtNode.addresses).toStrictEqual(addresses);\n });\n });\n\n describe('should return an internalIp', () => {\n const addresses = [{ type: 'InternalIP', address: foo }];\n const internalAddress = foo;\n\n it('if addresses includes an object with an appropriate type and address', () => {\n const mgmtNode = new MgmtNode({ status: { addresses } });\n\n expect(mgmtNode.internalIp).toStrictEqual(foo);\n });\n it('if internalNodeStatus.addresses includes an object with an appropriate type and address', () => {\n const mgmtNode = new MgmtNode({ status: { internalNodeStatus: { addresses } } });\n\n expect(mgmtNode.internalIp).toStrictEqual(foo);\n });\n it('if addresses and internalNodeStatus.addresses do not provide an internal ip and the status includes an rkeNode key with an appropriate type and address', () => {\n const mgmtNode = new MgmtNode({ status: { rkeNode: { internalAddress } } });\n\n expect(mgmtNode.internalIp).toStrictEqual(internalAddress);\n });\n });\n\n describe('should return an externalIp', () => {\n const addresses = [{ type: 'ExternalIP', address: foo }];\n const address = foo;\n\n it('if addresses includes an object with an appropriate type and address', () => {\n const mgmtNode = new MgmtNode({ status: { addresses } });\n\n expect(mgmtNode.externalIp).toStrictEqual(foo);\n });\n it('if internalNodeStatus.addresses includes an object with an appropriate type and address', () => {\n const mgmtNode = new MgmtNode({ status: { internalNodeStatus: { addresses } } });\n\n expect(mgmtNode.externalIp).toStrictEqual(foo);\n });\n it('if addresses and internalNodeStatus.addresses do not provide an external ip and the status includes an rkeNode key with an appropriate type and address', () => {\n const mgmtNode = new MgmtNode({ status: { rkeNode: { address } } });\n\n expect(mgmtNode.externalIp).toStrictEqual(address);\n });\n });\n\n describe('should return an appropriate message', () => {\n it('if there is no internalIp to display', () => {\n const mgmtNode = new MgmtNode({ status: {} }, ctx);\n\n expect(mgmtNode.internalIp).toStrictEqual(bar);\n expect(t).toHaveBeenCalledTimes(1);\n expect(t).toHaveBeenCalledWith('generic.none');\n resetMocks();\n });\n it('if there is no externalIp to display', () => {\n const mgmtNode = new MgmtNode({ status: {} }, ctx);\n\n expect(mgmtNode.externalIp).toStrictEqual(bar);\n expect(t).toHaveBeenCalledTimes(1);\n expect(t).toHaveBeenCalledWith('generic.none');\n resetMocks();\n });\n });\n\n describe('canScaleDown', () => {\n const mgmtClusterId = 'test';\n const nodeId = 'test/id';\n const specs = {\n worker: {\n worker: true, etcd: false, controlPlane: false\n },\n etcd: {\n worker: false, etcd: true, controlPlane: false\n },\n controlPlane: {\n worker: false, etcd: false, controlPlane: true\n },\n etcdAndControlPlane: {\n worker: false, etcd: true, controlPlane: true\n },\n all: {\n worker: true, etcd: true, controlPlane: true\n }\n };\n\n const workerNode = {\n id: '01',\n isWorker: true,\n isControlPlane: false,\n isEtcd: false\n };\n const etcdNode = {\n id: '02',\n isWorker: false,\n isControlPlane: false,\n isEtcd: true\n };\n const controlPlaneNode = {\n id: '03',\n isWorker: false,\n isControlPlane: true,\n isEtcd: false\n };\n const etcdAndControlPlaneNode = {\n id: '03',\n isWorker: false,\n isControlPlane: true,\n isEtcd: true\n };\n const allNode = {\n id: '04',\n isWorker: true,\n isControlPlane: true,\n isEtcd: true\n };\n\n const baseCtx = {\n rootGetters: {\n 'rancher/byId': () => ({ actions: { scaledown: 'scaledown' } }),\n 'i18n/t': t\n }\n };\n\n it.each([\n [{ spec: specs.worker, nodes: [workerNode] }, true],\n [{ spec: specs.etcd, nodes: [etcdNode, etcdNode, controlPlaneNode] }, true],\n [{ spec: specs.etcdAndControlPlane, nodes: [etcdAndControlPlaneNode, etcdAndControlPlaneNode] }, true],\n [{ spec: specs.etcdAndControlPlane, nodes: [etcdAndControlPlaneNode] }, false],\n [{ spec: specs.all, nodes: [allNode] }, false],\n [{ spec: specs.all, nodes: [allNode, allNode] }, true],\n ])('should return canScaleDown properly', (data, expected) => {\n const { spec, nodes } = data;\n const mgmtNode = new MgmtNode({\n spec,\n id: nodeId\n }, {\n ...baseCtx,\n getters: {\n all: () => [{\n mgmtClusterId,\n nodes\n }]\n }\n });\n\n expect(mgmtNode.canScaleDown).toStrictEqual(expected);\n });\n });\n});\n","import MgmtNodePool from '@shell/models/management.cattle.io.nodepool';\n\ndescribe('class MgmtNodePool', () => {\n describe('canScaleDownPool', () => {\n const mgmtClusterId = 'test';\n const nodeId = 'test/id';\n const specs = {\n worker: {\n worker: true, etcd: false, controlPlane: false\n },\n etcd: {\n worker: false, etcd: true, controlPlane: false\n },\n controlPlane: {\n worker: false, etcd: false, controlPlane: true\n },\n etcdAndControlPlane: {\n worker: false, etcd: true, controlPlane: true\n },\n all: {\n worker: true, etcd: true, controlPlane: true\n }\n };\n\n const workerNode = {\n id: '01',\n isWorker: true,\n isControlPlane: false,\n isEtcd: false\n };\n const etcdNode = {\n id: '02',\n isWorker: false,\n isControlPlane: false,\n isEtcd: true\n };\n const controlPlaneNode = {\n id: '03',\n isWorker: false,\n isControlPlane: true,\n isEtcd: false\n };\n const etcdAndControlPlaneNode = {\n id: '03',\n isWorker: false,\n isControlPlane: true,\n isEtcd: true\n };\n const allNode = {\n id: '04',\n isWorker: true,\n isControlPlane: true,\n isEtcd: true\n };\n\n const baseCtx = { rootGetters: { 'rancher/byId': () => ({ actions: { scaledown: 'scaledown' } }) } };\n\n it.each([\n [{ spec: specs.worker, nodes: [workerNode] }, true],\n [{ spec: specs.etcd, nodes: [etcdNode, etcdNode, controlPlaneNode] }, true],\n [{ spec: specs.etcdAndControlPlane, nodes: [etcdAndControlPlaneNode, etcdAndControlPlaneNode] }, true],\n [{ spec: specs.etcdAndControlPlane, nodes: [etcdAndControlPlaneNode] }, false],\n [{ spec: specs.all, nodes: [allNode] }, false],\n [{ spec: specs.all, nodes: [allNode, allNode] }, true],\n ])('should return canScaleDownPool properly', (data, expected) => {\n const { spec, nodes } = data;\n const mgmtNode = new MgmtNodePool({\n spec,\n id: nodeId\n }, {\n ...baseCtx,\n getters: {\n all: () => [{\n mgmtClusterId,\n nodes\n }]\n }\n });\n\n expect(mgmtNode.canScaleDownPool()).toStrictEqual(expected);\n });\n });\n});\n","import Namespace from '@shell/models/namespace';\nimport { SYSTEM_NAMESPACE } from '@shell/config/labels-annotations';\nimport SYSTEM_NAMESPACES from '@shell/config/system-namespaces';\n\ndescribe('class Namespace', () => {\n describe('checking if isSystem', () => {\n it.each([\n ['whatever1', SYSTEM_NAMESPACE, true],\n ['whatever2', 'any-annotation', false],\n ['whatever3', '', false]\n ])('should return true if it has the correct annotation', (name, annotation, expectation) => {\n const namespace = new Namespace({});\n\n namespace.metadata = { ...namespace.metadata, name };\n\n if (annotation) {\n namespace.metadata.annotations = { [annotation]: 'true' };\n }\n\n expect(namespace.isSystem).toBe(expectation);\n });\n\n const assertionsArr = [];\n\n SYSTEM_NAMESPACES.forEach((ns) => {\n assertionsArr.push([ns, true]);\n });\n\n assertionsArr.push(['c-whatever-system', false]);\n assertionsArr.push(['cattle-whatever', false]);\n assertionsArr.push(['', false]);\n\n it.each(assertionsArr)('should return true if it belongs to the curated list of namespaces', (name, expectation) => {\n const namespace = new Namespace({});\n\n namespace.metadata = { ...namespace.metadata, name };\n\n expect(namespace.isSystem).toBe(expectation);\n });\n\n it.each([\n ['cattle-c-whatever-system', true],\n ['cattle-whatever', false],\n ['c-whatever-system', false]\n ])('should return true if starts with \"cattle-\" end with \"-system', (name, expectation) => {\n const namespace = new Namespace({});\n\n namespace.metadata = { ...namespace.metadata, name };\n\n expect(namespace.isSystem).toBe(expectation);\n });\n });\n\n it.todo('should check if isFleetManaged');\n\n describe('checking if isObscure', () => {\n it.each([\n ['c-whatever-system', 'management.cattle.io/system-namespace', true],\n ['p-whatever', SYSTEM_NAMESPACE, true],\n ['p-whatever', '', false],\n ['', '', false]\n ])('should return a value if is system AND has the correct prefix', (name, annotation, expectation) => {\n const namespace = new Namespace({});\n\n namespace.metadata = { ...namespace.metadata, name };\n\n if (annotation) {\n namespace.metadata.annotations = { [annotation]: 'true' };\n }\n\n expect(namespace.isObscure).toBe(expectation);\n });\n });\n\n it.each([\n ['foo:bar', 'bar'],\n ['', null]\n ])('given %p annotation, projectId should be %p', (value, result) => {\n const namespace = new Namespace({});\n\n namespace.metadata = { name: '', annotations: { 'field.cattle.io/projectId': value } };\n\n expect(namespace.projectId).toBe(result);\n });\n\n it.todo('should return the project');\n it.todo('should return the groupByLabel with i18n');\n it.todo('should return the project name with i18n');\n it.todo('should return the projectNameSort');\n it.todo('should check if istioInstalled');\n it.todo('should check if injectionEnabled');\n\n describe('handling Istio labels', () => {\n const save = jest.fn();\n\n it.each([\n { metadata: { name: '', labels: { 'istio-injection': 'whatever' } }, save },\n [{ metadata: { name: '', labels: { 'istio-injection': 'whatever' } }, save }],\n ])('should handle both data as list and single object and save', (data) => {\n const namespace = new Namespace({});\n\n namespace.enableAutoInjection(data as unknown as Namespace);\n\n expect(save).toHaveBeenCalledWith();\n });\n\n it('should add auto injection label as enable', () => {\n const data = { metadata: { name: '', labels: { 'istio-injection': 'whatever' } }, save };\n const namespace = new Namespace({});\n\n namespace.enableAutoInjection(data as unknown as Namespace);\n\n expect(data.metadata!.labels['istio-injection']).toBe('enabled');\n });\n\n it('should remove label on disable', () => {\n const data = { metadata: { name: '', labels: { 'istio-injection': 'whatever' } }, save };\n const namespace = new Namespace({});\n\n namespace.enableAutoInjection(data as unknown as Namespace, false);\n\n expect(data.metadata!.labels['istio-injection']).toBeUndefined();\n });\n });\n\n it.todo('should disableAutoInjection');\n it.todo('should check if confirmRemove');\n\n describe('handling listLocation', () => {\n it.each([\n ['c-cluster-product-projectsnamespaces', true],\n ['c-cluster-product-resource', false],\n ])('should return the name %p if is Rancher (%p)', (name, isRancher) => {\n const namespace = new Namespace({});\n\n jest.spyOn(namespace, '$rootGetters', 'get').mockReturnValue({\n isRancher,\n currentProduct: { inStore: '' }\n });\n\n expect(namespace.listLocation.name).toBe(name);\n });\n\n it('should return the name and resource if Harvester', () => {\n const namespace = new Namespace({});\n\n jest.spyOn(namespace, '$rootGetters', 'get').mockReturnValue({\n isRancher: true,\n currentProduct: { inStore: 'harvester' }\n });\n\n const value = {\n name: 'harvester-c-cluster-projectsnamespaces',\n params: { resource: 'namespace' }\n };\n\n expect(namespace.listLocation).toStrictEqual(value);\n });\n });\n\n it.todo('should return _detailLocation with a name');\n it.todo('should return the resourceQuota');\n it.todo('should set the resourceQuota as reactive Vue property');\n it.todo('should reset project with cleanForNew');\n});\n","import Node from '@shell/models/management.cattle.io.node';\n\ndescribe('class Node', () => {\n const foo = 'foo';\n const bar = 'bar';\n const t = jest.fn(() => bar);\n const ctx = { rootGetters: { 'i18n/t': t } };\n\n const resetMocks = () => {\n // Clear all mock function calls:\n jest.clearAllMocks();\n };\n\n it('should not return addresses if they are not present in the resource status', () => {\n const node = new Node({ status: {} });\n\n expect(node.addresses).toStrictEqual([]);\n resetMocks();\n });\n\n describe('should return addresses', () => {\n const addresses = [foo];\n\n it('if they are present directly on the resource status', () => {\n const node = new Node({ status: { addresses } });\n\n expect(node.addresses).toStrictEqual(addresses);\n });\n });\n\n describe('should return an internalIp', () => {\n const addresses = [{ type: 'InternalIP', address: foo }];\n\n it('if addresses includes an object with an appropriate type and address', () => {\n const node = new Node({ status: { addresses } });\n\n expect(node.internalIp).toStrictEqual(foo);\n });\n });\n\n describe('should return an externalIp', () => {\n const addresses = [{ type: 'ExternalIP', address: foo }];\n\n it('if addresses includes an object with an appropriate type and address', () => {\n const node = new Node({ status: { addresses } });\n\n expect(node.externalIp).toStrictEqual(foo);\n });\n it('if internalNodeStatus.addresses includes an object with an appropriate type and address', () => {\n const node = new Node({ status: { internalNodeStatus: { addresses } } });\n\n expect(node.externalIp).toStrictEqual(foo);\n });\n });\n\n describe('should return an appropriate message', () => {\n it('if there is no internalIp to display', () => {\n const node = new Node({ status: {} }, ctx);\n\n expect(node.internalIp).toStrictEqual(bar);\n expect(t).toHaveBeenCalledTimes(1);\n expect(t).toHaveBeenCalledWith('generic.none');\n resetMocks();\n });\n it('if there is no externalIp to display', () => {\n const node = new Node({ status: {} }, ctx);\n\n expect(node.externalIp).toStrictEqual(bar);\n expect(t).toHaveBeenCalledTimes(1);\n expect(t).toHaveBeenCalledWith('generic.none');\n resetMocks();\n });\n });\n});\n","import ProvCluster from '@shell/models/provisioning.cattle.io.cluster';\n\ndescribe('class ProvCluster', () => {\n const gkeClusterWithPrivateEndpoint = {\n clusterName: 'test',\n provisioner: 'GKE',\n spec: { rkeConfig: {} },\n mgmt: { spec: { gkeConfig: { privateClusterConfig: { enablePrivateEndpoint: true } } } }\n };\n\n const eksClusterWithPrivateEndpoint = {\n clusterName: 'test',\n provisioner: 'EKS',\n spec: { rkeConfig: {} },\n mgmt: { spec: { eksConfig: { privateAccess: true } } }\n };\n\n const aksClusterWithPrivateEndpoint = {\n clusterName: 'test',\n provisioner: 'AKS',\n spec: { rkeConfig: {} },\n mgmt: { spec: { aksConfig: { privateCluster: true } } }\n };\n\n // Related to https://github.com/rancher/dashboard/issues/9402\n describe('isHostedKubernetesProvider + isPrivateHostedProvider', () => {\n const testCases = [\n [gkeClusterWithPrivateEndpoint, true],\n [eksClusterWithPrivateEndpoint, true],\n [aksClusterWithPrivateEndpoint, true],\n ];\n const resetMocks = () => {\n // Clear all mock function calls:\n jest.clearAllMocks();\n };\n\n it.each(testCases)('should return the isHostedKubernetesProvider and isPrivateHostedProvider values properly based on the props data', (clusterData: Object, expected: Boolean) => {\n const cluster = new ProvCluster({ spec: clusterData.spec });\n\n jest.spyOn(cluster, 'mgmt', 'get').mockReturnValue(\n clusterData.mgmt\n );\n jest.spyOn(cluster, 'provisioner', 'get').mockReturnValue(\n clusterData.provisioner\n );\n\n expect(cluster.isRke2).toBe(expected);\n expect(cluster.isHostedKubernetesProvider).toBe(expected);\n expect(cluster.isPrivateHostedProvider).toBe(expected);\n resetMocks();\n });\n });\n\n describe('hasError', () => {\n const conditionsWithoutError = [\n {\n error: false,\n lastUpdateTime: '2022-10-17T23:09:15Z',\n status: 'True',\n transitioning: false,\n type: 'Ready'\n },\n ];\n\n const conditionsWithoutReady = [\n {\n error: true,\n lastUpdateTime: '2022-10-17T23:09:15Z',\n status: 'False',\n message: 'some-error-message',\n transitioning: false,\n type: 'Pending'\n },\n ];\n\n const noConditions:[] = [];\n\n const conditionsWithReadyLatest = [\n {\n error: true,\n lastUpdateTime: '2022-10-17T23:09:15Z',\n status: 'False',\n message: 'some-error-message',\n transitioning: false,\n type: 'Pending'\n },\n {\n error: false,\n lastUpdateTime: '2023-10-17T23:09:15Z',\n status: 'True',\n transitioning: false,\n type: 'Ready'\n }\n ];\n\n const conditionsWithErrorLatest = [\n {\n error: false,\n lastUpdateTime: '2022-10-17T23:09:15Z',\n status: 'True',\n transitioning: false,\n type: 'Ready'\n },\n {\n error: true,\n lastUpdateTime: '2023-10-17T23:09:15Z',\n status: 'False',\n message: 'some-error-message',\n transitioning: false,\n type: 'Pending'\n }\n ];\n\n const conditionsWithProblemInLastUpdateTimeProp = [\n {\n error: true,\n lastUpdateTime: '',\n status: 'False',\n message: 'some-error-message',\n transitioning: false,\n type: 'Pending'\n },\n {\n error: false,\n lastUpdateTime: '2023-10-17T23:09:15Z',\n status: 'True',\n transitioning: false,\n type: 'Ready'\n }\n ];\n\n const testCases = [\n ['conditionsWithoutError', conditionsWithoutError, false],\n ['conditionsWithoutReady', conditionsWithoutReady, true],\n ['noConditions', noConditions, false],\n ['conditionsWithReadyLatest', conditionsWithReadyLatest, false],\n ['conditionsWithErrorLatest', conditionsWithErrorLatest, true],\n ['conditionsWithProblemInLastUpdateTimeProp', conditionsWithProblemInLastUpdateTimeProp, false],\n ];\n\n const resetMocks = () => {\n // Clear all mock function calls\n jest.clearAllMocks();\n };\n\n it.each(testCases)('should return the hasError value properly based on the \"status.conditions\" props data for testcase %p', (testName: string, conditions: Array, expected: Boolean) => {\n const ctx = { rootGetters: { 'management/byId': jest.fn() } };\n const cluster = new ProvCluster({ status: { conditions } }, ctx);\n\n expect(cluster.hasError).toBe(expected);\n resetMocks();\n }\n );\n });\n});\n","import { parseType } from '@shell/models/schema';\n\ndescribe('class: schema:', () => {\n describe('parseType', () => {\n it.each([\n ['array', undefined, ['array']],\n ['map', undefined, ['map']],\n ['io.cattle.provisioning.v1.Cluster.status', undefined, ['io.cattle.provisioning.v1.Cluster.status']],\n\n ['array[string]', undefined, ['array', 'string']],\n ['array', { subtype: 'string' }, ['array', 'string']],\n ['map[string]', undefined, ['map', 'string']],\n ['map', { subtype: 'string' }, ['map', 'string']],\n\n ['array[io.cattle.provisioning.v1.Cluster.status]', undefined, ['array', 'io.cattle.provisioning.v1.Cluster.status']],\n ['array', { subtype: 'io.cattle.provisioning.v1.Cluster.status' }, ['array', 'io.cattle.provisioning.v1.Cluster.status']],\n ['map[io.cattle.provisioning.v1.Cluster.status]', undefined, ['map', 'io.cattle.provisioning.v1.Cluster.status']],\n ['map', { subtype: 'io.cattle.provisioning.v1.Cluster.status' }, ['map', 'io.cattle.provisioning.v1.Cluster.status']],\n\n ])('string: %p and field: %p ... should equal %p', (val, field, expected) => {\n expect(parseType(val, field)).toStrictEqual(expected);\n });\n });\n});\n","import Secret from '@shell/models/secret';\n\ndescribe('class Secret', () => {\n it('should contains the type attribute if cleanForDownload', async() => {\n const secret = new Secret({});\n const yaml = `apiVersion: v1\nkind: Secret\nmetadata:\n name: my-secret\ntype: Opaque\n`;\n const cleanYaml = await secret.cleanForDownload(yaml);\n\n expect(cleanYaml).toBe(yaml);\n });\n\n it('should remove id, links and actions keys if cleanForDownload', async() => {\n const secret = new Secret({});\n const expectedYamlStr = `apiVersion: v1\nkind: Secret\nmetadata:\n name: my-secret\n namespace: default\ntype: Opaque\n`;\n const part = `id: test_id\nlinks:\n view: https://example.com\nactions:\n remove: https://example.com`;\n const yaml = `${ expectedYamlStr }\n${ part }`;\n const cleanYaml = await secret.cleanForDownload(yaml);\n\n expect(cleanYaml).toBe(expectedYamlStr);\n });\n});\n","import SteveSchema from '@shell/models/steve-schema';\nimport { replace } from '@shell/plugins/dashboard-store/mutations';\n\ndescribe('class SteveSchema', () => {\n describe('schema diet', () => {\n it('schema Definitions', async() => {\n const store = 'cluster';\n const schemaName = 'steveTest';\n\n SteveSchema.reset(store);\n\n const testSchema = {\n id: schemaName,\n metadata: { name: schemaName },\n resourceFields: null,\n links: { self: `/v1/schemas/${ schemaName }` }\n };\n const testSchemaDefinition = {\n type: schemaName,\n resourceFields: {\n a: {},\n b: {},\n }\n };\n const testSecondarySchemaDefinitions = {\n a: { type: 'a' },\n b: { type: 'b' }\n };\n\n const schemaModel = new SteveSchema(testSchema, {\n dispatch: jest.fn().mockImplementation((action, opts) => {\n expect(action).toBe('request');\n expect(opts.type).toBe('schemaDefinition');\n expect(opts.url).toBe(`/v1/schemaDefinitions/${ schemaName }`);\n\n return {\n definitionType: schemaName,\n definitions: {\n [schemaName]: testSchemaDefinition,\n ...testSecondarySchemaDefinitions,\n }\n };\n }),\n state: { config: { namespace: store } }\n });\n\n // We have no schema definition info, however we know that schema definitions should be fetched\n expect(schemaModel.schemaDefinition).toBeNull();\n expect(schemaModel.schemaDefinitions).toBeNull();\n expect(schemaModel.requiresResourceFields).toBeTruthy();\n expect(schemaModel.hasResourceFields).toBeFalsy();\n\n // Fetch schema definition\n await schemaModel.fetchResourceFields();\n\n // We have schema definition info\n expect(schemaModel.schemaDefinition).toStrictEqual(testSchemaDefinition);\n expect(schemaModel.schemaDefinitions).toStrictEqual(testSecondarySchemaDefinitions);\n expect(schemaModel.requiresResourceFields).toBeTruthy();\n expect(schemaModel.hasResourceFields).toBeTruthy();\n\n // Uhoh, there's been an update over socket. Socket process calls the `load` mutator which then calls `replace`.\n // This wipes out ALL properties on our poor schema model and applies everything from the one we get over socket\n replace(schemaModel, { ...testSchema });\n\n // All schema definition info should still work (this matches above)\n expect(schemaModel.schemaDefinition).toStrictEqual(testSchemaDefinition);\n expect(schemaModel.schemaDefinitions).toStrictEqual(testSecondarySchemaDefinitions);\n expect(schemaModel.requiresResourceFields).toBeTruthy();\n expect(schemaModel.hasResourceFields).toBeTruthy();\n });\n });\n});\n","import StorageClass, { PROVISIONER_OPTIONS } from '@shell/models/storage.k8s.io.storageclass';\n\ndescribe('class StorageClass', () => {\n describe('checking if provisionerDisplay', () => {\n it.each([\n ['kubernetes.io/azure-disk', true],\n ['kubernetes.io/portworx-volume', true],\n ['rancher.io/local-path', false],\n ['some-random-string-as-provisioner', false],\n ])('should NOT show a suffix IF they are built-in (on the PROVISIONER_OPTIONS list)', (provisioner, expectation) => {\n const storageClass = new StorageClass({\n metadata: {},\n spec: {},\n provisioner\n });\n\n jest.spyOn(storageClass, '$rootGetters', 'get').mockReturnValue({ 'i18n/t': jest.fn() });\n\n expect(!!PROVISIONER_OPTIONS.find((opt) => opt.value === provisioner)).toBe(expectation);\n });\n });\n});\n","const customType = 'dsaf';\n\nexport const resourceClassJunkObject = {\n type: customType,\n __rehydrate: 'whatever',\n __clone: 'whatever',\n};\n","import { resourceClassJunkObject } from '@shell/plugins/dashboard-store/__tests__/utils/store-mocks';\n\nconst customType = 'asdasd';\n\nexport const steveClassJunkObject = {\n ...resourceClassJunkObject,\n type: customType,\n __clone: 'whatever',\n metadata: {\n clusterName: 'whatever',\n creationTimestamp: 'whatever',\n deletionGracePeriodSeconds: 'whatever',\n deletionTimestamp: 'whatever',\n fields: 'whatever',\n finalizers: 'whatever',\n generateName: 'whatever',\n generation: 'whatever',\n initializers: 'whatever',\n managedFields: 'whatever',\n ownerReferences: 'whatever',\n relationships: 'whatever',\n selfLink: 'whatever',\n state: 'whatever',\n uid: 'whatever',\n resourceVersion: 'whatever',\n },\n spec: { versions: { schema: 'whatever' } },\n links: 'whatever',\n status: 'whatever',\n stringData: 'whatever',\n};\n","import Workload from '@shell/models/workload.js';\nimport { steveClassJunkObject } from '@shell/plugins/steve/__tests__/utils/steve-mocks';\n\ndescribe('class: Workload', () => {\n describe('given custom workload keys', () => {\n const customContainerImage = 'image';\n const customContainer = {\n image: customContainerImage,\n __active: 'whatever',\n active: 'whatever',\n _init: 'whatever',\n error: 'whatever',\n };\n const customWorkload = {\n ...steveClassJunkObject,\n type: '123abv',\n __rehydrate: 'whatever',\n __clone: 'whatever',\n spec: {\n template: {\n spec: {\n containers: [customContainer],\n initContainers: [customContainer],\n }\n }\n }\n };\n\n (customWorkload.metadata as any).name = 'abc';\n\n it('should keep internal keys', () => {\n const workload = new Workload(customWorkload, {\n getters: { schemaFor: () => ({ linkFor: jest.fn() }) },\n dispatch: jest.fn(),\n rootGetters: { 'i18n/t': jest.fn() },\n });\n\n expect({ ...workload }).toStrictEqual(customWorkload);\n });\n\n describe('method: save', () => {\n it('should remove all the internal keys', async() => {\n const dispatch = jest.fn();\n const workload = new Workload(customWorkload, {\n getters: { schemaFor: () => ({ linkFor: jest.fn() }) },\n dispatch,\n rootGetters: {\n 'i18n/t': jest.fn(),\n 'i18n/exists': () => true,\n },\n });\n const expectation = {\n metadata: {\n name: 'abc',\n fields: 'whatever',\n resourceVersion: 'whatever',\n clusterName: 'whatever',\n deletionGracePeriodSeconds: 'whatever',\n generateName: 'whatever',\n },\n spec: {\n template: {\n spec: {\n containers: [{ image: customContainerImage }],\n initContainers: [{ image: customContainerImage }]\n }\n }\n }\n };\n\n await workload.save();\n\n const opt = {\n data: expectation,\n headers: {\n accept: 'application/json',\n 'content-type': 'application/json',\n },\n method: 'post',\n url: undefined,\n };\n\n // Data sent should have been cleaned\n expect(dispatch).toHaveBeenCalledWith('request', { opt, type: customWorkload.type });\n\n // Original workload model should remain unchanged\n expect({ ...workload }).toStrictEqual(customWorkload);\n });\n });\n });\n});\n","import { STEVE } from '@shell/config/types';\nimport Schema from './schema';\nimport { wait } from '@shell/utils/async';\n\ninterface ResourceField {\n type: string,\n description: string,\n}\ntype ResourceFields = { [id: string]: ResourceField }\n\ninterface SchemaDefinition {\n type: string,\n description: string,\n resourceFields: ResourceFields\n}\ntype SchemaDefinitions = { [definitionId: string]: SchemaDefinition }\n\ntype SchemaId = {\n self: string;\n others: string[];\n}\ntype SchemaIds = { [schemaId: string]: SchemaId }\n\ninterface SchemaDefinitionResponse {\n definitions: SchemaDefinitions,\n definitionType: string,\n}\n\nconst SchemaDefinitionCache: { [store: string]: {\n ids: SchemaIds,\n definitions: SchemaDefinitions,\n} } = {};\n\n/**\n * Steve Schema specific functionality\n */\nexport default class SteveSchema extends Schema {\n static reset(store: string): void {\n delete SchemaDefinitionCache[store];\n }\n\n _resourceFields?: ResourceFields;\n\n /**\n * If resourceFields have not been provided, they are required to be fetched aka schemaDefinition world\n */\n requiresResourceFields: boolean;\n\n // These are just for typing, eventually we'll get them when Schema is fully converted to typescript\n id?: string;\n type?: string;\n links?: any;\n $ctx?: any;\n\n /**\n * This should match the root Schema ctor (...args throws ts error)\n */\n constructor(data: unknown, ctx: unknown, rehydrateNamespace?: null | undefined, setClone?: boolean) {\n super(data, ctx, rehydrateNamespace, setClone);\n\n if (!SchemaDefinitionCache[this.store]) {\n SchemaDefinitionCache[this.store] = {\n ids: {},\n definitions: {}\n };\n }\n\n this.requiresResourceFields = this._resourceFields === null; // This is set pre ctor via `set'er, but TS complains that it's not initialised\n }\n\n // Notes on Schemas, resourceFields and schemaDefinitions\n // - Schemas previously contained a `resourceFields` collection, which is now null\n // - resourceFields now come from a new `schemaDefinitions` endpoint\n // - for neatness / safety / compatibility with norman resources... we fetch schemaDefinitions and return their resourceFields in a resourceFields getter\n\n /******************\n * Resource Fields\n ****************** /\n\n /**\n * Is the property `resourceFields` available\n *\n * If the schema definition is required and it hasn't been fetched this will be false\n *\n * This is a non-erroring request, unlike the resourceFields getter which will error if schema definition is required but missing\n */\n get hasResourceFields(): boolean {\n if (this.requiresResourceFields) {\n return !!this.schemaDefinition?.resourceFields;\n }\n\n return !!this._resourceFields;\n }\n\n /**\n * Fields associated with instances of this schema\n *\n * This will either come directly from the schema or from the schema's definition\n */\n get resourceFields(): ResourceFields {\n if (this.requiresResourceFields) {\n if (!this.schemaDefinitionsIds) {\n throw new Error(`Cannot find resourceFields for Schema ${ this.id } (schemaDefinitions have not been fetched) `);\n }\n\n if (!this.schemaDefinition) {\n throw new Error(`No schemaDefinition for ${ this.id } found (not in schemaDefinition response) `);\n }\n\n return this.schemaDefinition.resourceFields;\n }\n\n return this._resourceFields as ResourceFields;\n }\n\n /**\n * Apply the original `resourceFields` param (if it exists). If it does not then we'll need to fetch the schema definition\n */\n set resourceFields(resourceFields: ResourceFields) {\n this._resourceFields = resourceFields;\n this.requiresResourceFields = this._resourceFields === null;\n }\n\n /**\n * Ensure this schema has a populated `resourceFields` property\n *\n * This happens via making a request to fetch the schema definition\n */\n async fetchResourceFields(depth = 0): Promise<SchemaDefinition | null | undefined> {\n if (!this.requiresResourceFields) {\n // Not needed, no-op\n return;\n }\n\n if (this.schemaDefinition) {\n // Already have it, no-op\n return this.schemaDefinition;\n }\n\n const url = this.schemaDefinitionUrl;\n\n if (!url) {\n console.warn(`Unable to fetch schema definitions for ${ this.id } (failed to find url of schema definition)`); // eslint-disable-line no-console\n\n return;\n }\n\n if (depth >= 4) {\n console.warn(`Unable to fetch schema definitions for ${ this.id } (too many failed requests)`); // eslint-disable-line no-console\n\n return;\n }\n\n let res;\n\n try {\n // Make a direct request to fetch the schema definition\n res = await this.$dispatch('request', {\n type: STEVE.SCHEMA_DEFINITION,\n url\n });\n } catch (e: any) {\n if (e?._status === 500 || e?._status === 503) {\n // Rancher could be updating it's definition cache, attempt a few times\n await wait(2000);\n\n return this.fetchResourceFields(++depth);\n }\n\n console.warn(`Unable to fetch schema definitions for ${ this.id }`, e); // eslint-disable-line no-console\n\n return;\n }\n\n this.cacheSchemaDefinitionResponse(res);\n\n return this.schemaDefinition;\n }\n\n /**\n * Convert collection of schema definitions for this schema into objects we can store\n *\n * Split out for unit testing purposes\n */\n private cacheSchemaDefinitionResponse(res: SchemaDefinitionResponse): void {\n const { [res.definitionType]: self, ...others } = res.definitions;\n const store = this.store;\n\n SchemaDefinitionCache[store].ids[this.id as string] = { self: self.type, others: Object.keys(others) };\n Object.entries(res.definitions).forEach(([type, sd]) => {\n SchemaDefinitionCache[store].definitions[type] = sd;\n });\n }\n\n /*********************\n * Schema Definitions\n ********************* /\n\n /**\n * Store this schema's definition and a collection of associated definitions (all ids)\n */\n\n /**\n * The schema definition for this schema\n */\n get schemaDefinition(): SchemaDefinition | null {\n if (!this.schemaDefinitionsIds) {\n return null;\n }\n\n return SchemaDefinitionCache[this.store].definitions[this.schemaDefinitionsIds.self];\n }\n\n /**\n * The schema definitions for this schema definition's resourceFields\n */\n get schemaDefinitions(): SchemaDefinitions | null {\n if (!this.schemaDefinitionsIds) {\n return null;\n }\n\n return this.schemaDefinitionsIds.others.reduce((res, d) => {\n res[d] = SchemaDefinitionCache[this.store].definitions[d];\n\n return res;\n }, {} as SchemaDefinitions);\n }\n\n /**\n * URL to fetch this schema's definition\n */\n get schemaDefinitionUrl(): string {\n return this.links?.self?.replace('/schemas/', '/schemaDefinitions/');\n }\n\n /*********************\n * Local Properties\n *\n * This could be set in the ctor, however are removed in `replaceResource` when there are socket updates..\n * ... so use getters instead\n *\n *********************/\n\n /**\n * The name (namespace) of the vuex store this schema lives in (i.e. cluster, management, etc)\n */\n private get store(): string {\n return this.$ctx.state?.config?.namespace;\n }\n\n private get schemaDefinitionsIds(): SchemaId | undefined {\n return SchemaDefinitionCache[this.store]?.ids[this.id as string];\n }\n}\n","import { NAMESPACE_FILTER_NS_FULL_PREFIX, NAMESPACE_FILTER_P_FULL_PREFIX } from '@shell/utils/namespace-filter';\nimport { getPerformanceSetting } from '@shell/utils/settings';\nimport { ActionFindAllArgs } from '@shell/types/store/dashboard-store.types';\n\nclass ProjectAndNamespaceFiltering {\n static param = 'projectsornamespaces'\n\n /**\n * Does the request `opt` definition require resources are fetched from a specific set namespaces/projects?\n */\n isApplicable(opt: ActionFindAllArgs): boolean {\n return Array.isArray(opt.namespaced);\n }\n\n isEnabled(rootGetters: any): boolean {\n const currentProduct = rootGetters['currentProduct'];\n\n // Only enable for the cluster store at the moment. In theory this should work in management as well, as they're both 'steve' stores\n if (currentProduct?.inStore !== 'cluster') {\n return false;\n }\n\n if (currentProduct?.showWorkspaceSwitcher) {\n return false;\n }\n\n const perfConfig = getPerformanceSetting(rootGetters);\n\n if (!perfConfig.forceNsFilterV2?.enabled) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Check if `opt` requires resources from specific ns/projects, if so return the required query param (x=y)\n */\n checkAndCreateParam(opt: ActionFindAllArgs): string {\n if (!this.isApplicable(opt)) {\n return '';\n }\n\n return this.createParam(opt.namespaced);\n }\n\n public createParam(namespaceFilter: string[] | undefined): string {\n if (!namespaceFilter || !namespaceFilter.length) {\n return '';\n }\n\n const namespaces = namespaceFilter.reduce((res, n) => {\n const name = n\n .replace(NAMESPACE_FILTER_NS_FULL_PREFIX, '')\n .replace(NAMESPACE_FILTER_P_FULL_PREFIX, '');\n\n if (name.startsWith('-')) {\n res.exclude.push(n.substring(1, n.length));\n } else {\n res.include.push(name);\n }\n\n return res;\n }, { include: [] as string[], exclude: [] as string[] });\n\n let res = '';\n\n if (namespaces.include.length) {\n res = `${ ProjectAndNamespaceFiltering.param }=${ namespaces.include.join(',') }`;\n }\n\n if (namespaces.exclude.length) {\n res = `${ ProjectAndNamespaceFiltering.param }!=${ namespaces.exclude.join(',') }`;\n }\n\n return res;\n }\n}\n\nexport default new ProjectAndNamespaceFiltering();\n","import { dropKeys } from '@shell/utils/object';\nimport jsyaml from 'js-yaml';\n\nexport function steveCleanForDownload(yaml: string, keys?: {\n rootKeys?: string[],\n metadataKeys?: string[],\n conditionKeys?: string[]\n }): string | undefined {\n if (!yaml) {\n return;\n }\n\n const {\n rootKeys = [\n 'id',\n 'links',\n 'type',\n 'actions'\n ],\n metadataKeys = [\n 'fields',\n 'relationships',\n 'state',\n ],\n conditionKeys = [\n 'error',\n 'transitioning',\n ]\n } = keys || {};\n\n const obj: any = jsyaml.load(yaml);\n\n dropKeys(obj, rootKeys);\n dropKeys(obj?.metadata, metadataKeys);\n (obj?.status?.conditions || []).forEach((condition: any) => dropKeys(condition, conditionKeys));\n\n return jsyaml.dump(obj);\n}\n","import { ActionFindPageArgs } from '@shell/types/store/dashboard-store.types';\nimport { PaginationParam, PaginationFilterField, PaginationParamProjectOrNamespace, PaginationParamFilter } from '@shell/types/store/pagination.types';\nimport { NAMESPACE_FILTER_ALL_SYSTEM, NAMESPACE_FILTER_ALL_USER, NAMESPACE_FILTER_P_FULL_PREFIX } from '@shell/utils/namespace-filter';\nimport Namespace from '@shell/models/namespace';\nimport { uniq } from '@shell/utils/array';\nimport {\n CAPI,\n CATALOG,\n CONFIG_MAP, MANAGEMENT, EVENT, NAMESPACE, NODE, POD, PVC,\n PV,\n STORAGE_CLASS,\n SERVICE,\n INGRESS,\n WORKLOAD_TYPES,\n HPA\n} from '@shell/config/types';\nimport { CAPI as CAPI_LABELS, CATTLE_PUBLIC_ENDPOINTS } from '@shell/config/labels-annotations';\nimport { Schema } from '@shell/plugins/steve/schema';\n\nclass NamespaceProjectFilters {\n /**\n * User needs all resources.... except if there's some settings which should remove resources in specific circumstances\n */\n protected handlePrefAndSettingFilter(allNamespaces: Namespace[], showDynamicRancherNamespaces: boolean, productHidesSystemNamespaces: boolean): PaginationParamFilter[] {\n // These are AND'd together\n // Not ns 1 AND ns 2\n return allNamespaces.reduce((res, ns) => {\n // Links to ns.isObscure and covers things like `c-`, `user-`, etc (see OBSCURE_NAMESPACE_PREFIX)\n const hideObscure = showDynamicRancherNamespaces ? false : ns.isObscure;\n // Links to ns.isSystem and covers things like ns with system annotation, hardcoded list, etc\n const hideSystem = productHidesSystemNamespaces ? ns.isSystem : false;\n\n if (hideObscure || hideSystem) {\n res.push(PaginationParamFilter.createSingleField({\n field: 'metadata.namespace', value: ns.name, equals: false\n }));\n }\n\n return res;\n }, [] as PaginationParamFilter[]);\n }\n\n /**\n * User needs either all user resources... or all system\n *\n * System resources revolve around the namespace's isSystem property\n *\n * Users resources are those not in system namespaces\n */\n protected handleSystemOrUserFilter(allNamespaces: Namespace[], isAllSystem: boolean, isAllUser: boolean) {\n const allSystem = allNamespaces.filter((ns) => ns.isSystem);\n\n // > Neither of these use projectsOrNamespaces to avoid scenarios where the local cluster provides a namespace which has\n // > a matching project... which could lead to results in the user project resource being included in the system filter\n if (isAllSystem) {\n // return resources in system ns 1 OR in system ns 2 ...\n // &filter=metadata.namespace=system ns 1,metadata.namespace=system ns 2\n return [PaginationParamFilter.createMultipleFields(\n allSystem.map(\n (ns) => new PaginationFilterField({ field: 'metadata.namespace', value: ns.name })\n )\n )];\n } else { // if isAllUser\n // return resources not in system ns 1 AND not in system ns 2 ...\n // &filter=metadata.namespace!=system ns 1&filter=metadata.namespace!=system ns 2\n return allSystem.map((ns) => PaginationParamFilter.createSingleField({\n field: 'metadata.namespace', value: ns.name, equals: false\n }));\n }\n }\n\n /**\n * User needs resources in a set of projects or namespaces\n */\n protected handleSelectionFilter(neu: string[], isLocalCluster: boolean) {\n // User has one or more projects or namespaces. We can pass this straight through to projectsornamespaces\n\n // return resources in project 1 OR namespace 2\n // &projectsornamespaces=project 1,namespace 2\n const projectsOrNamespaces = [\n new PaginationParamProjectOrNamespace({ projectOrNamespace: neu })\n ];\n\n if (isLocalCluster) {\n // > As per `handleSystemOrUserFilter` above, we need to be careful of the local cluster where there's namespaces related to projects with the same id\n // > In this case\n // - We're including resources in the project and it's related namespace (via projectsornamespaces)\n // - We're also then excluding resources in the related namespace (via below `filter`)\n\n // Exclude resources NOT in projects namespace 1 AND not in projects namespace 2\n // &filter=metadata.namespace!=pn1&filter=metadata.namespace!=pn2\n return {\n projectsOrNamespaces,\n filters: neu\n .filter((selection) => selection.startsWith(NAMESPACE_FILTER_P_FULL_PREFIX))\n .map((projects) => PaginationParamFilter.createSingleField({\n field: 'metadata.namespace', value: projects.replace(NAMESPACE_FILTER_P_FULL_PREFIX, ''), equals: false\n }))\n };\n }\n\n return { projectsOrNamespaces, filters: [] };\n }\n}\n\n/**\n * Helper functions for steve pagination\n */\nclass StevePaginationUtils extends NamespaceProjectFilters {\n /**\n * Filtering with the vai cache supports specific fields\n * 1) Those listed here\n * 2) Those references in the schema's attributes.fields list (which is used by generic lists)\n */\n static VALID_FIELDS: { [type: string]: { field: string, startsWith?: boolean }[]} = {\n '': [// all types\n { field: 'metadata.name' },\n { field: 'metadata.namespace' },\n { field: 'id' },\n { field: 'metadata.state.name' },\n { field: 'metadata.creationTimestamp' },\n ],\n [NODE]: [\n { field: 'status.nodeInfo.kubeletVersion' },\n { field: 'status.nodeInfo.operatingSystem' },\n ],\n [POD]: [\n { field: 'spec.containers.image' },\n { field: 'spec.nodeName' },\n ],\n [MANAGEMENT.NODE]: [\n { field: 'status.nodeName' },\n ],\n [MANAGEMENT.NODE_POOL]: [\n { field: 'spec.clusterName' },\n ],\n [MANAGEMENT.NODE_TEMPLATE]: [\n { field: 'spec.clusterName' },\n ],\n [MANAGEMENT.CLUSTER]: [\n { field: 'spec.internal' },\n { field: 'spec.displayName' },\n { field: `status.provider` },\n { field: `metadata.labels.\"${ CAPI_LABELS.PROVIDER }\"` },\n\n ],\n [CONFIG_MAP]: [\n { field: 'metadata.labels[harvesterhci.io/cloud-init-template]' }\n ],\n [NAMESPACE]: [\n { field: 'metadata.labels[field.cattle.io/projectId]' }\n ],\n [CAPI.MACHINE]: [\n { field: 'spec.clusterName' }\n ],\n [EVENT]: [\n { field: '_type' },\n { field: 'reason' },\n { field: 'involvedObject.kind' },\n // { field: 'involvedObject.uid' }, // Pending API Support - https://github.com/rancher/rancher/issues/48603\n { field: 'message' },\n ],\n [CATALOG.CLUSTER_REPO]: [\n { field: 'spec.gitRepo' },\n { field: 'spec.gitBranch' },\n { field: `metadata.annotations[clusterrepo.cattle.io/hidden]` }\n ],\n [CATALOG.OPERATION]: [\n { field: 'status.action' },\n { field: 'status.namespace' },\n { field: 'status.releaseName' },\n ],\n [CAPI.RANCHER_CLUSTER]: [\n { field: `metadata.labels.\"${ CAPI_LABELS.PROVIDER }\"` },\n { field: `status.provider` },\n { field: 'status.clusterName' },\n ],\n [SERVICE]: [\n { field: 'spec.type' },\n // { field: 'spec.clusterIP' }, // Pending API support (blocked https://github.com/rancher/rancher/issues/48473 (index fields)\n ],\n [INGRESS]: [\n // { field: 'spec.rules.host' }, // Pending API support (blocked https://github.com/rancher/rancher/issues/48473 (index fields)\n // { field: 'spec.ingressClassName' }, // Pending API support (blocked https://github.com/rancher/rancher/issues/48473 (index fields)\n ],\n [HPA]: [\n // { field: 'spec.scaleTargetRef.name' }, // Pending API support https://github.com/rancher/rancher/issues/48473 (hpa filtering fix)\n // { field: 'spec.minReplicas' }, // Pending API support https://github.com/rancher/rancher/issues/48473 (hpa filtering fix)\n // { field: 'spec.maxReplicas' }, // Pending API support https://github.com/rancher/rancher/issues/48473 (hpa filtering fix)\n // { field: 'spec.currentReplicas' }, // Pending API support https://github.com/rancher/rancher/issues/48473 (hpa filtering fix)\n ],\n [PVC]: [\n { field: 'spec.volumeName' },\n ],\n [PV]: [\n { field: 'status.reason' },\n { field: 'spec.persistentVolumeReclaimPolicy' },\n ],\n [STORAGE_CLASS]: [\n { field: 'provisioner' },\n // { field: `metadata.annotations[STORAGE.DEFAULT_STORAGE_CLASS]` }, // Pending API Support - https://github.com/rancher/rancher/issues/48453\n ],\n [CATALOG.APP]: [\n { field: 'spec.chart.metadata.name' }\n ],\n [WORKLOAD_TYPES.CRON_JOB]: [\n { field: `metadata.annotations[${ CATTLE_PUBLIC_ENDPOINTS }]` }\n ],\n [WORKLOAD_TYPES.DAEMON_SET]: [\n { field: `metadata.annotations[${ CATTLE_PUBLIC_ENDPOINTS }]` }\n ],\n [WORKLOAD_TYPES.DEPLOYMENT]: [\n { field: `metadata.annotations[${ CATTLE_PUBLIC_ENDPOINTS }]` }\n ],\n [WORKLOAD_TYPES.JOB]: [\n { field: `metadata.annotations[${ CATTLE_PUBLIC_ENDPOINTS }]` }\n ],\n [WORKLOAD_TYPES.STATEFUL_SET]: [\n { field: `metadata.annotations[${ CATTLE_PUBLIC_ENDPOINTS }]` }\n ]\n\n }\n\n private convertArrayPath(path: string): string {\n if (path.startsWith('metadata.fields.')) {\n return `metadata.fields[${ path.substring(16) }]`;\n }\n\n return path;\n }\n\n public createSortForPagination(sortByPath: string): string {\n return this.convertArrayPath(sortByPath);\n }\n\n /**\n * Given the selection of projects or namespaces come up with `filter` and `projectsornamespace` query params\n */\n public createParamsFromNsFilter({\n allNamespaces,\n selection,\n isAllNamespaces,\n isLocalCluster,\n showDynamicRancherNamespaces,\n productHidesSystemNamespaces,\n }: {\n allNamespaces: Namespace[],\n selection: string[],\n /**\n * There is no user provided filter\n */\n isAllNamespaces: boolean,\n /**\n * Weird things be happening if the target cluster is local / upstream. Uses this to check what cluster we're in\n */\n isLocalCluster: boolean,\n /**\n * Links to ns.isObscure and covers things like `c-`, `user-`, etc (see OBSCURE_NAMESPACE_PREFIX)\n */\n showDynamicRancherNamespaces: boolean,\n /**\n * Links to ns.isSystem and covers things like ns with system annotation, hardcoded list, etc\n */\n productHidesSystemNamespaces: boolean,\n }): {\n projectsOrNamespaces: PaginationParamProjectOrNamespace[],\n filters: PaginationParamFilter[]\n } {\n // Hold up, why are we doing yet another way to convert the user's project / namespace filter to a set of something?\n // - When doing this for local pagination `getActiveNamespaces` provides a full list of applicable namespaces.\n // Lists then filter resource locally using those namespaces\n // - Pagination cannot take this approach of 'gimme all resources in these namespaces' primarily for the 'Only User Namespaces' case\n // - User could have 2k namespaces. This would result in 2k+ namespaces added to the url (namespace=1,namespace=2,namespace=3, etc)\n // - Instead we do\n // - All but not given settings - Gimme resources NOT in system or obscure namespaces\n // - Only System Namespaces - Gimme resources in the system namespaces (which shouldn't be many namespaces)\n // - Only User Namespaces - Gimme resources NOT in system namespaces\n // - User selection - Gimme resources in specific Projects or Namespaces\n if (isAllNamespaces && (showDynamicRancherNamespaces && !productHidesSystemNamespaces)) {\n // No-op. Everything is returned\n return {\n projectsOrNamespaces: [],\n filters: []\n };\n }\n\n // used to return resources in / not in projects/namespaces (entries are checked in both types)\n // &projectsornamespaces=project 1,namespace 2\n let projectsOrNamespaces: PaginationParamProjectOrNamespace[] = [];\n // used to return resources in / not in namespaces\n // &filter=metadata.namespace=abc\n let filters: PaginationParamFilter[] = [];\n\n if (!showDynamicRancherNamespaces || productHidesSystemNamespaces) {\n // We need to hide dynamic namespaces ('c-', 'p-', etc) OR system namespaces\n filters = this.handlePrefAndSettingFilter(allNamespaces, showDynamicRancherNamespaces, productHidesSystemNamespaces);\n }\n\n const isAllSystem = selection[0] === NAMESPACE_FILTER_ALL_SYSTEM;\n const isAllUser = selection[0] === NAMESPACE_FILTER_ALL_USER;\n\n if (selection.length === 1 && (isAllSystem || isAllUser)) {\n // Filter by resources either in or not in system namespaces\n filters.push(...this.handleSystemOrUserFilter(allNamespaces, isAllSystem, isAllUser ));\n } else {\n // User has one or more projects or namespaces\n const res = this.handleSelectionFilter(selection, isLocalCluster);\n\n projectsOrNamespaces = res.projectsOrNamespaces;\n filters.push(...res.filters);\n }\n\n return {\n projectsOrNamespaces,\n filters\n };\n }\n\n public createParamsForPagination(schema: Schema, opt: ActionFindPageArgs): string | undefined {\n if (!opt.pagination) {\n return;\n }\n\n const params: string[] = [];\n const namespaceParam = this.convertPaginationParams(schema, opt.pagination.projectsOrNamespaces);\n\n if (namespaceParam) {\n params.push(namespaceParam);\n }\n\n if (opt.pagination.page) {\n params.push(`page=${ opt.pagination.page }`);\n }\n\n if (opt.pagination.pageSize) {\n params.push(`pagesize=${ opt.pagination.pageSize }`);\n }\n\n if (opt.pagination.sort?.length) {\n const validateFields = {\n checked: new Array<string>(),\n invalid: new Array<string>(),\n };\n\n const joined = opt.pagination.sort\n .map((s) => {\n this.validateField(validateFields, schema, s.field);\n\n return `${ s.asc ? '' : '-' }${ this.convertArrayPath(s.field) }`;\n })\n .join(',');\n\n params.push(`sort=${ joined }`);\n\n if (validateFields.invalid.length) {\n console.warn(`Pagination API does not support sorting '${ schema.id }' by the requested fields: ${ uniq(validateFields.invalid).join(', ') }`); // eslint-disable-line no-console\n }\n }\n\n if (opt.pagination.filters?.length) {\n const filters = this.convertPaginationParams(schema, opt.pagination.filters);\n\n if (filters) {\n params.push(filters);\n }\n }\n\n // Note - There is a `limit` property that is by default 100,000. This can be disabled by using `limit=-1`,\n // but we shouldn't be fetching any pages big enough to exceed the default\n\n return params.join('&');\n }\n\n /**\n * Check if the API supports filtering by this field\n */\n private validateField(state: { checked: string[], invalid: string[]}, schema: Schema, field?: string) {\n if (!field) {\n return; // no field, so not invalid\n }\n\n if (state.checked.includes(field)) {\n return; // already checked, exit early\n }\n\n state.checked.push(field);\n\n // First check in our hardcoded list of supported filters\n if (\n process.env.NODE_ENV === 'dev' &&\n [\n StevePaginationUtils.VALID_FIELDS[''], // Global\n StevePaginationUtils.VALID_FIELDS[schema.id], // Type specific\n ].find((fields) => fields?.find((f) => {\n if (f.startsWith) {\n if (field.startsWith(f.field)) {\n return true;\n }\n } else {\n return field === f.field;\n }\n }))\n ) {\n return;\n }\n\n // Then check in schema (the api automatically supports these)\n if (!!schema?.attributes.columns.find(\n // This isn't the most performant, but the string is tiny\n (at) => at.field.replace('$.', '').replace('[', '.').replace(']', '') === field\n )) {\n return;\n }\n\n state.invalid.push(field);\n }\n\n /**\n * Convert our {@link PaginationParam} definition of params to a set of url params\n */\n private convertPaginationParams(schema: Schema, filters: PaginationParam[] = []): string {\n const validateFields = {\n checked: new Array<string>(),\n invalid: new Array<string>(),\n };\n const filterStrings = filters\n .filter((filter) => !!filter.fields.length)\n .map((filter) => {\n const joined = filter.fields\n .map((field) => {\n if (field.field) {\n // Check if the API supports filtering by this field\n this.validateField(validateFields, schema, field.field);\n\n const value = encodeURIComponent(field.value);\n const exactPartial = field.exact ? `'${ value }'` : value;\n\n return `${ this.convertArrayPath(field.field) }${ field.equals ? '=' : '!=' }${ exactPartial }`;\n }\n\n return field.value;\n })\n .join(','); // This means OR\n\n return `${ filter.param }${ filter.equals ? '=' : '!=' }${ joined }`;\n });\n const unique = filterStrings.reduce((res, s) => {\n res[s] = true;\n\n return res;\n }, { } as {[filterString: string] : boolean });\n\n const res = Object.keys(unique).join('&'); // This means AND\n\n if (validateFields.invalid.length) {\n console.warn(`Pagination API does not support filtering '${ schema.id }' by the requested fields: ${ uniq(validateFields.invalid).join(', ') }`); // eslint-disable-line no-console\n }\n\n return res;\n }\n}\n\nexport default new StevePaginationUtils();\n","import { normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass(['badge-state', _ctx.bg])\n }, [\n (_ctx.icon)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass([\"icon\", {[_ctx.icon]: true, 'mr-5': !!_ctx.msg}])\n }, null, 2))\n : _createCommentVNode(\"\", true),\n _createTextVNode(_toDisplayString(_ctx.msg), 1)\n ], 2))\n}","<script lang=\"ts\">\nimport { PropType, defineComponent } from 'vue';\n\ninterface Badge {\n stateBackground: string;\n stateDisplay: string;\n}\n\n/**\n * Badge state component.\n * <p>Represents a badge whose label and color is either taken from the value property or\n * from the label and color properties. The state property takes precedence.</p>\n */\nexport default defineComponent({\n props: {\n /**\n * A value having the properties `stateBackground` and `stateDisplay`\n */\n value: {\n type: Object as PropType<Badge>,\n default: null\n },\n\n /**\n * Badge color. `stateBackground` of the value property takes precedence if supplied\n */\n color: {\n type: String,\n default: null\n },\n\n /**\n * Optional icon to be shown before the label\n */\n icon: {\n type: String,\n default: null\n },\n\n /**\n * Label to display in the badge. `stateDisplay` of the value property takes precedence if supplied\n */\n label: {\n type: String,\n default: null\n }\n },\n\n computed: {\n bg(): string | null {\n return this.value?.stateBackground || this.color;\n },\n\n msg(): string | null {\n return this.value?.stateDisplay || this.label;\n }\n }\n});\n</script>\n\n<template>\n <span :class=\"['badge-state', bg]\">\n <i\n v-if=\"icon\"\n class=\"icon\"\n :class=\"{[icon]: true, 'mr-5': !!msg}\"\n />{{ msg }}\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n .badge-state {\n align-items: center;\n display: inline-flex;\n padding: 2px 10px;\n border: 1px solid transparent;\n border-radius: 20px;\n\n &.bg-info {\n border-color: var(--info);\n }\n\n &.bg-error {\n border-color: var(--error);\n }\n\n &.bg-warning {\n border-color: var(--warning);\n }\n\n // Successful states are de-emphasized by using [text-]color instead of background-color\n &.bg-success {\n color: var(--success);\n background: transparent;\n border-color: var(--success);\n }\n\n // Added badge-disabled instead of bg-disabled since bg-disabled is used in other places with !important styling, an investigation is needed to make the naming consistent\n &.badge-disabled {\n color: var(--badge-state-disabled-text);\n background-color: var( --badge-state-disabled-bg);\n border: 1px solid var(--badge-state-disabled-border);\n }\n }\n</style>\n<style lang=\"scss\">\n // TODO: #6005\n // Investigate why this is here.. I don't think that styles for sortable table should belong here\n .sortable-table TD .badge-state {\n @include clip;\n display: inline-block;\n max-width: 100%;\n position: relative;\n max-width: 110px;\n font-size: .85em;\n vertical-align: middle;\n }\n</style>\n","import { render } from \"./BadgeState.vue?vue&type=template&id=64b26d7f&scoped=true&ts=true\"\nimport script from \"./BadgeState.vue?vue&type=script&lang=ts\"\nexport * from \"./BadgeState.vue?vue&type=script&lang=ts\"\n\nimport \"./BadgeState.vue?vue&type=style&index=0&id=64b26d7f&lang=scss&scoped=true\"\nimport \"./BadgeState.vue?vue&type=style&index=1&id=64b26d7f&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-64b26d7f\"]])\n\nexport default __exports__","import { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"card-wrap\" }\nconst _hoisted_2 = {\n class: \"card-title\",\n \"data-testid\": \"card-title-slot\"\n}\nconst _hoisted_3 = {\n class: \"card-body\",\n \"data-testid\": \"card-body-slot\"\n}\nconst _hoisted_4 = {\n key: 0,\n class: \"card-actions\",\n \"data-testid\": \"card-actions-slot\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n ref: \"cardContainer\",\n class: _normalizeClass([\"card-container\", {'highlight-border': _ctx.showHighlightBorder, 'card-sticky': _ctx.sticky}]),\n \"data-testid\": \"card\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"title\", {}, () => [\n _createTextVNode(_toDisplayString(_ctx.title), 1)\n ])\n ]),\n _cache[1] || (_cache[1] = _createElementVNode(\"hr\", null, null, -1)),\n _createElementVNode(\"div\", _hoisted_3, [\n _renderSlot(_ctx.$slots, \"body\", {}, () => [\n _createTextVNode(_toDisplayString(_ctx.content), 1)\n ])\n ]),\n (_ctx.showActions)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"actions\", {}, () => [\n _createElementVNode(\"button\", {\n class: \"btn role-primary\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.buttonAction && _ctx.buttonAction(...args)))\n }, _toDisplayString(_ctx.buttonText), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n}","<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\nimport { createFocusTrap, FocusTrap } from 'focus-trap';\n\nexport default defineComponent({\n name: 'Card',\n props: {\n /**\n * The card's title.\n */\n title: {\n type: String,\n default: ''\n },\n /**\n * The text content for the card's body.\n */\n content: {\n type: String,\n default: ''\n },\n /**\n * The function to invoke when the default action button is clicked.\n */\n buttonAction: {\n type: Function as PropType<(event: MouseEvent) => void>,\n default: (): void => { }\n },\n /**\n * The text for the default action button.\n */\n buttonText: {\n type: String,\n default: 'go'\n },\n /**\n * Toggles the card's highlight-border class.\n */\n showHighlightBorder: {\n type: Boolean,\n default: true\n },\n /**\n * Toggles the card's Actions section.\n */\n showActions: {\n type: Boolean,\n default: true\n },\n sticky: {\n type: Boolean,\n default: false,\n },\n triggerFocusTrap: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return { focusTrapInstance: {} as FocusTrap };\n },\n mounted() {\n if (this.triggerFocusTrap) {\n this.focusTrapInstance = createFocusTrap(this.$refs.cardContainer as HTMLElement, {\n escapeDeactivates: true,\n allowOutsideClick: true,\n });\n\n this.$nextTick(() => {\n this.focusTrapInstance.activate();\n });\n }\n },\n beforeUnmount() {\n if (this.focusTrapInstance && this.triggerFocusTrap) {\n this.focusTrapInstance.deactivate();\n }\n },\n});\n</script>\n\n<template>\n <div\n ref=\"cardContainer\"\n class=\"card-container\"\n :class=\"{'highlight-border': showHighlightBorder, 'card-sticky': sticky}\"\n data-testid=\"card\"\n >\n <div class=\"card-wrap\">\n <div\n class=\"card-title\"\n data-testid=\"card-title-slot\"\n >\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <hr>\n <div\n class=\"card-body\"\n data-testid=\"card-body-slot\"\n >\n <slot name=\"body\">\n {{ content }}\n </slot>\n </div>\n <div\n v-if=\"showActions\"\n class=\"card-actions\"\n data-testid=\"card-actions-slot\"\n >\n <slot name=\"actions\">\n <button\n class=\"btn role-primary\"\n @click=\"buttonAction\"\n >\n {{ buttonText }}\n </button>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<style lang='scss'>\n .card-container {\n &.highlight-border {\n border-left: 5px solid var(--primary);\n }\n border-radius: var(--border-radius);\n display: flex;\n flex-basis: 40%;\n margin: 10px;\n min-height: 100px;\n padding: 10px;\n box-shadow: 0 0 20px var(--shadow);\n &:not(.top) {\n align-items: top;\n flex-direction: row;\n justify-content: start;\n }\n .card-wrap {\n width: 100%;\n }\n & .card-body {\n color: var(--input-label);\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n & .card-actions {\n align-self: end;\n display: flex;\n padding-top: 20px;\n }\n & .card-title {\n align-items: center;\n display: flex;\n width: 100%;\n h5 {\n margin: 0;\n }\n .flex-right {\n margin-left: auto;\n }\n }\n\n // Sticky mode will stick header and footer to top and bottom with content in the middle scrolling\n &.card-sticky {\n // display: flex;\n // flex-direction: column;\n overflow: hidden;\n\n .card-wrap {\n display: flex;\n flex-direction: column;\n\n .card-body {\n justify-content: flex-start;\n overflow: auto;\n }\n\n > * {\n flex: 0;\n }\n\n .card-body {\n flex: 1;\n }\n }\n }\n }\n</style>\n","/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 7.6.2\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { isFocusable, tabbable, focusable, isTabbable, getTabIndex } from 'tabbable';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar activeFocusTraps = {\n activateTrap: function activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n var activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n }\n};\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\nvar isEscapeEvent = function isEscapeEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Escape' || (e === null || e === void 0 ? void 0 : e.key) === 'Esc' || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\n\n// checks for TAB by default\nvar isKeyForward = function isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nvar isKeyBackward = function isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward: isKeyForward,\n isKeyBackward: isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // posTabIndexesFound: boolean,\n // firstTabbableNode: HTMLElement|undefined,\n // lastTabbableNode: HTMLElement|undefined,\n // firstDomTabbableNode: HTMLElement|undefined,\n // lastDomTabbableNode: HTMLElement|undefined,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event] If available, and `element` isn't directly found in any container,\n * the event's composed path is used to see if includes any known trap containers in the\n * case where the element is inside a Shadow DOM.\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n var findContainerIndex = function findContainerIndex(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || (// fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @param {Object} options\n * @param {boolean} [options.hasFallback] True if the option could be a selector string\n * and the option allows for a fallback scenario in the case where the selector is\n * valid but does not match a node (i.e. the queried node doesn't exist in the DOM).\n * @param {Array} [options.params] Params to pass to the option if it's a function.\n * @returns {undefined | null | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `null` if the option didn't resolve\n * to a node but `options.hasFallback=true`, `false` if the option resolved to `false`\n * (node explicitly not given); otherwise, the resolved DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node, unless the option is a selector string and `options.hasFallback=true`.\n */\n var getNodeForOption = function getNodeForOption(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$hasFallback = _ref2.hasFallback,\n hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback,\n _ref2$params = _ref2.params,\n params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === 'function') {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n try {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n } catch (err) {\n throw new Error(\"`\".concat(optionName, \"` appears to be an invalid selector; error=\\\"\").concat(err.message, \"\\\"\"));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n // else, `node` MUST be `null` because that's what `Document.querySelector()` returns\n // if the selector is valid but doesn't match anything\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus', {\n hasFallback: true\n });\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n if (node === undefined || node && !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n } else if (node === null) {\n // option is a VALID selector string that doesn't yield a node: use the `fallbackFocus`\n // option instead of the default behavior when the option isn't specified at all\n node = getNodeForOption('fallbackFocus');\n }\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes since nodes with negative `tabindex` attributes\n // are focusable but not tabbable\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : undefined;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : undefined;\n var firstDomTabbableNode = focusableNodes.find(function (node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function (node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function (node) {\n return getTabIndex(node) > 0;\n });\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound: posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode: firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode: lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode: firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode: lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n // either not tabbable nor focusable, or was focused but not tabbable (negative tabindex):\n // since `node` should at least have been focusable, we assume that's the case and mimic\n // what browsers do, which is set focus to the next node in __document position order__,\n // regardless of positive tabindexes, if any -- and for reasons explained in the NOTE\n // above related to `firstDomTabbable` and `lastDomTabbable` properties, we fall back to\n // basic DOM order\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function (el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function (el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n });\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n\n // NOTE: Positive tabindexes are only properly supported in single-container traps because\n // doing it across multiple containers where tabindexes could be all over the place\n // would require Tabbable to support multiple containers, would require additional\n // specialized Shadow DOM support, and would require Tabbable's multi-container support\n // to look at those containers in document position order rather than user-provided\n // order (as they are treated in Focus-trap, for legacy reasons). See discussion on\n // https://github.com/focus-trap/focus-trap/issues/375 for more details.\n if (state.containerGroups.find(function (g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n\n /**\n * Gets the current activeElement. If it's a web-component and has open shadow-root\n * it will recursively search inside shadow roots for the \"true\" activeElement.\n *\n * @param {Document | ShadowRoot} el\n *\n * @returns {HTMLElement} The element that currently has the focus\n **/\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n // NOTE: focus() API does not trigger focusIn event so set MRU node manually\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n /**\n * Finds the next node (in either direction) where focus should move according to a\n * keyboard focus-in event.\n * @param {Object} params\n * @param {Node} [params.target] Known target __from which__ to navigate, if any.\n * @param {KeyboardEvent|FocusEvent} [params.event] Event to use if `target` isn't known (event\n * will be used to determine the `target`). Ignored if `target` is specified.\n * @param {boolean} [params.isBackward] True if focus should move backward.\n * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be\n * determined given the current state of the trap.\n */\n var findNextNavNode = function findNextNavNode(_ref3) {\n var target = _ref3.target,\n event = _ref3.event,\n _ref3$isBackward = _ref3.isBackward,\n isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = state.tabbableGroups.findIndex(function (_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function (_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n return destinationNode;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n // NOTE: the focusIn event is NOT cancelable, so if focus escapes, it may cause unexpected\n // scrolling if the node that got focused was out of view; there's nothing we can do to\n // prevent that from happening by the time we discover that focus escaped\n var checkFocusIn = function checkFocusIn(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n event.stopImmediatePropagation();\n\n // focus will escape if the MRU node had a positive tab index and user tried to nav forward;\n // it will also escape if the MRU node had a 0 tab index and user tried to nav backward\n // toward a node with a positive tab index\n var nextNode; // next node to focus, if we find one\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n // MRU container index must be >=0 otherwise we wouldn't have it as an MRU node...\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n // there MAY not be any tabbable nodes in the container if there are at least 2 containers\n // and the MRU node is focusable but not tabbable (focus-trap requires at least 1 container\n // with at least one tabbable node in order to function, so this could be the other container\n // with nothing tabbable in it)\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n // MRU tab index MAY not be found if the MRU node is focusable but not tabbable\n var mruTabIdx = tabbableNodes.findIndex(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n }\n // else, don't find in container order without considering direction too\n }\n }\n // else, no tabbable nodes in that container (which means we must have at least one other\n // container with at least one tabbable node in it, otherwise focus-trap would've thrown\n // an error the last time updateTabbableNodes() was run): find next node among all known\n // containers\n } else {\n // check to see if there's at least one tabbable node with a positive tab index inside\n // the trap because focus seems to escape when navigating backward from a tabbable node\n // with tabindex=0 when this is the case (instead of wrapping to the tabbable node with\n // the greatest positive tab index like it should)\n if (!state.containerGroups.some(function (g) {\n return g.tabbableNodes.some(function (n) {\n return getTabIndex(n) > 0;\n });\n })) {\n // no containers with tabbable nodes with positive tab indexes which means the focus\n // escaped for some other reason and we should just execute the fallback to the\n // MRU node or initial focus node, if any\n navAcrossContainers = false;\n }\n }\n } else {\n // no MRU node means we're likely in some initial condition when the trap has just\n // been activated and initial focus hasn't been given yet, in which case we should\n // fall through to trying to focus the initial focus node, which is what should\n // happen below at this point in the logic\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = undefined; // clear\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n var checkKeyNav = function checkKeyNav(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event: event,\n isBackward: isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n var checkTabKey = function checkTabKey(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n\n // we use a different event phase for the Escape key to allow canceling the event and checking for this in escapeDeactivates\n var checkEscapeKey = function checkEscapeKey(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n _tryFocus(getInitialFocusNode());\n }) : _tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkEscapeKey);\n return trap;\n };\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkTabKey, true);\n doc.removeEventListener('keydown', checkEscapeKey);\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n var checkDomRemoval = function checkDomRemoval(mutations) {\n var isFocusedNodeRemoved = mutations.some(function (mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // <body> element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;\n var updateObservedNodes = function updateObservedNodes() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (state.paused || !state.active) {\n return this;\n }\n var onPause = getOption(pauseOptions, 'onPause');\n var onPostPause = getOption(pauseOptions, 'onPostPause');\n state.paused = true;\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 || onPostPause();\n return this;\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.paused || !state.active) {\n return this;\n }\n var onUnpause = getOption(unpauseOptions, 'onUnpause');\n var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');\n state.paused = false;\n onUnpause === null || onUnpause === void 0 || onUnpause();\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n if (state.active) {\n updateTabbableNodes();\n }\n updateObservedNodes();\n return this;\n }\n };\n\n // initialize container elements\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","import { render } from \"./Card.vue?vue&type=template&id=11c9bbd2&ts=true\"\nimport script from \"./Card.vue?vue&type=script&lang=ts\"\nexport * from \"./Card.vue?vue&type=script&lang=ts\"\n\nimport \"./Card.vue?vue&type=style&index=0&id=11c9bbd2&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Schema, SchemaAttribute, SchemaAttributeColumn } from '@shell/plugins/steve/schema';\nimport { TableColumn } from '@shell/types/store/type-map';\nimport { VuexStoreGetters } from '@shell/types/store/vuex';\nimport { findBy, insertAt, removeObject } from '@shell/utils/array';\nimport { COUNT } from '@shell/config/types';\nimport { ActionFindAllArgs } from '@shell/types/store/dashboard-store.types';\n\nconst FIELD_REGEX = /^\\$\\.metadata\\.fields\\[([0-9]*)\\]/;\n\ntype StoreColumns = { [schemaId: string]: TableColumn[]}\n\n/**\n * Create the headers used in lists to show a resource\n *\n * These could be\n * - Pre-configured via the product (either non-paginated or paginated)\n * - Generated dynamically from schema's attributes.columns\n *\n * There's also some additional ones like state, age, and at least one of name or id\n *\n * The order of these are massaged as well\n */\nexport function createHeaders(\n ctx: {\n getters: VuexStoreGetters,\n rootGetters: VuexStoreGetters,\n state: any,\n },\n opt: {\n headers: StoreColumns,\n typeOptions: any,\n schema: any, // Once the schema-diet changes go in this can be typed\n columns: {\n /**\n * Always show this column (if showState is true)\n */\n state: TableColumn,\n /**\n * If dynamically creating columns, use specific column for name, if required\n */\n name?: TableColumn,\n /**\n * If dynamically creating columns, use specific column for id, if required\n */\n id?: TableColumn\n /**\n * If dynamically creating columns, use specific column for namespace, if required\n */\n namespace: TableColumn,\n /**\n * If dynamically creating columns, use specific column for age, if required\n */\n age: TableColumn,\n },\n pagination: boolean\n }): TableColumn[] {\n const {\n headers, typeOptions, schema, columns, pagination\n } = opt;\n const {\n state: stateColumn, name: nameColumn, namespace: namespaceColumn, id: idColumn, age: ageColumn\n } = columns;\n const { rootGetters } = ctx;\n const out = typeOptions.showState ? [stateColumn] : [];\n const attributes = (schema.attributes as SchemaAttribute) || {};\n const columnsFromSchema = attributes.columns || [];\n\n // A specific list has been provided\n if ( headers?.[schema.id]?.length ) {\n return headers[schema.id].map((entry: any) => {\n if ( typeof entry === 'string' ) {\n const col = findBy(columnsFromSchema, 'name', entry);\n\n if ( col ) {\n return headerFromSchemaCol(col, rootGetters, pagination, ageColumn);\n } else {\n return null;\n }\n } else {\n return entry;\n }\n }).filter((col: SchemaAttributeColumn) => !!col);\n }\n\n // Otherwise make one up from schema\n let hasName = false;\n const namespaced = attributes.namespaced || false;\n\n for ( const col of columnsFromSchema ) {\n if ( col.format === 'name' ) {\n hasName = true;\n out.push(nameColumn || headerFromSchemaCol(col, rootGetters, pagination, ageColumn));\n if ( namespaced ) {\n out.push(namespaceColumn);\n }\n } else {\n out.push(headerFromSchemaCol(col, rootGetters, pagination, ageColumn));\n }\n }\n\n // Always try to have an identifier\n if ( !hasName ) {\n insertAt(out, 1, idColumn || nameColumn);\n if ( namespaced ) {\n insertAt(out, 2, namespaceColumn);\n }\n }\n\n // Age always goes last\n const ageColumnActual = out.find((o) => o.name.toLocaleLowerCase() === 'age');\n\n if ( ageColumnActual ) {\n removeObject(out, ageColumnActual);\n if ( typeOptions.showAge ) {\n out.push(ageColumnActual);\n }\n }\n\n return out;\n}\n\n/**\n * Given a schema's attribute.column value create a header\n */\nexport function headerFromSchemaColString(colName: string, schema: Schema, rootGetters: VuexStoreGetters, pagination: boolean, ageColumn: TableColumn): TableColumn {\n const col = schema.attributes.columns.find((c) => c.name === colName);\n\n if (!col) {\n throw new Error(`Unable to find column '${ colName }' in schema '${ schema.id }'`);\n }\n\n return headerFromSchemaCol(col, rootGetters, pagination, ageColumn);\n}\n\n/**\n * Given a schema's attribute.column value create a header\n */\nexport function headerFromSchemaCol(col: SchemaAttributeColumn, rootGetters: VuexStoreGetters, pagination: boolean, ageColumn: TableColumn): TableColumn {\n let formatter, width, formatterOpts;\n\n if ( (col.format === '' || col.format === 'date') && col.name === 'Age' && ageColumn ) {\n return ageColumn;\n }\n\n if ( col.format === 'date' || col.type === 'date' ) {\n formatter = 'Date';\n width = 120;\n formatterOpts = { multiline: true };\n }\n\n if ( col.type === 'number' || col.type === 'int' ) {\n formatter = 'Number';\n }\n\n const colName = col.name.includes(' ') ? col.name.split(' ').map((word) => word.charAt(0).toUpperCase() + word.substring(1) ).join('') : col.name;\n\n const exists = rootGetters['i18n/exists'];\n const t = rootGetters['i18n/t'];\n const labelKey = `tableHeaders.${ colName.charAt(0).toLowerCase() + colName.slice(1) }`;\n const description = col.description || '';\n const tooltip = description && description[description.length - 1] === '.' ? description.slice(0, -1) : description;\n\n const path = rowValueGetter(col, false) as string;\n // If we're not paginating use a function to get the value, otherwise use the string path\n const altPath = pagination ? path : rowValueGetter(col, true) as Function;\n\n return {\n name: col.name.toLowerCase(),\n label: exists(labelKey) ? t(labelKey) : col.name,\n value: altPath,\n sort: [path],\n search: path,\n formatter,\n formatterOpts,\n width,\n tooltip\n };\n}\n\nexport function rowValueGetter(col: SchemaAttributeColumn, asFn = true): string | ((row: any) => string) {\n // 'field' comes from the schema - typically it is of the form $.metadata.field[N]\n // We will use JsonPath to look up this value, which is costly - so if we can detect this format\n // Use a more efficient function to get the value\n const value = col.field.startsWith('.') ? `$${ col.field }` : col.field;\n const found = value.match(FIELD_REGEX);\n\n if (found && found.length === 2) {\n const fieldIndex = parseInt(found[1], 10);\n\n if (asFn) {\n return (row: any) => row.metadata?.fields?.[fieldIndex];\n }\n\n return `metadata.fields.${ fieldIndex }`;\n }\n\n return value;\n}\n\ntype conditionalDepaginateArgs ={\n ctx: { rootGetters: VuexStoreGetters},\n args: { type: string, opt: ActionFindAllArgs},\n};\ntype conditionalDepaginateFn = (args: conditionalDepaginateArgs) => boolean\n\n/**\n * Conditionally determine if a resource should use naive kube pagination api to fetch all results\n * (not just first page)\n */\nexport const conditionalDepaginate = (\n depaginate?: conditionalDepaginateFn | boolean,\n depaginateArgs?: conditionalDepaginateArgs\n): boolean => {\n if (typeof depaginate === 'function') {\n return !!depaginateArgs ? depaginate(depaginateArgs) : false;\n }\n\n return depaginate as boolean;\n};\n\n/**\n * Setup a function that will determine if a resource should use native kube pagination api to fetch all resources\n * (not just the first page)\n */\nexport const configureConditionalDepaginate = (\n { maxResourceCount, isNorman = false }: { maxResourceCount: number, isNorman: boolean },\n): conditionalDepaginateFn => {\n return (fnArgs: conditionalDepaginateArgs ): boolean => {\n const { rootGetters } = fnArgs.ctx;\n const { type } = fnArgs.args;\n const safeType = isNorman ? `management.cattle.io.${ type }` : type;\n\n const inStore = rootGetters['currentStore'](safeType);\n const resourceCounts = rootGetters[`${ inStore }/all`](COUNT)[0]?.counts[safeType];\n const resourceCount = resourceCounts?.summary?.count;\n\n return resourceCount !== undefined ? resourceCount < maxResourceCount : false;\n };\n};\n","export const LABEL_SELECT_KINDS = {\n GROUP: 'group',\n DIVIDER: 'divider',\n NONE: 'none',\n};\n\nexport const LABEL_SELECT_NOT_OPTION_KINDS = [\n LABEL_SELECT_KINDS.GROUP,\n LABEL_SELECT_KINDS.DIVIDER,\n];\n\n/**\n * Options used When LabelSelect requests a new page\n */\nexport interface LabelSelectPaginateFnOptions<T = any> {\n /**\n * Current page\n */\n pageContent: T[],\n /**\n * page number to fetch\n */\n page: number,\n /**\n * number of items in the page to fetch\n */\n pageSize: number,\n /**\n * filter pagination filter. this is just a text string associated with user entered text\n */\n filter: string,\n /**\n * true if the result should only contain the fetched page, false if the result should be added to the pageContent\n */\n resetPage: boolean,\n}\n\n/**\n * Response that LabelSelect needs when it's requested a new page\n */\nexport interface LabelSelectPaginateFnResponse<T = any> {\n page: T[],\n pages: number,\n total: number\n}\n\n/**\n * Function called when LabelSelect needs a new page\n */\nexport type LabelSelectPaginateFn<T = any> = (opts: LabelSelectPaginateFnOptions<T>) => Promise<LabelSelectPaginateFnResponse<T>>\n","import { NAMESPACE_FILTER_NS_FULL_PREFIX, NAMESPACE_FILTER_P_FULL_PREFIX } from '@shell/utils/namespace-filter';\n\n// Pagination Typing\n// These structures are designed to offer both convenience and flexibility based on a common structure and are\n// converted to the url param format as per https://github.com/rancher/steve.\n//\n// Simple use cases such as filtering by a single param should be easy to use.\n// More complex filtering (and'ing and 'or'ing multiple fields) is also supported.\n//\n// The top level object `PaginationArgs` contains all properties that will be converted to url params\n//\n// The two important / complex params are currently\n// - `filter` https://github.com/rancher/steve?tab=readme-ov-file#filter\n// - represented by `PaginationParamFilter extends PaginationParam`\n// - Examples\n// - filter=metadata.name=123\n// - filter=metadata.name=123,metadata.name=456 (name is 123 OR 456)\n// - filter=metadata.name=123&filter=metadata.namespace=abc (name 123 AND namespace abc)\n// - `projectsornamespaces` https://github.com/rancher/steve?tab=readme-ov-file#projectsornamespaces\n// - represented by `PaginationParamProjectOrNamespace extends PaginationParam`\n// - Examples\n// - projectsornamespaces=123\n// - projectsornamespaces=123,456 (projects or namespaces that have id 123 OR 456)\n//\n//\n// Some of the types below are defined using classes instead of TS types/interfaces\n// - Avoid making complex json objects by using clearer instance constructors\n// - Better documented\n// - Defaults (a lot of the time convenience > utility)\n// - Adds some kind of typing in pure js docs\n// - class ctor links to definition, instead of object just being a random json blob)\n// - helps VSCode jsdoc highlighting\n\n/**\n * Sort the pagination result\n *\n * For more information regarding the API see https://github.com/rancher/steve?tab=readme-ov-file#sort\n */\nexport interface PaginationSort {\n /**\n * Name of field within the object to sort by\n */\n field: string,\n asc: boolean\n}\n\n/**\n * Filter the pagination result by these specific fields\n *\n * For example\n *\n * - metadata.name=test\n * - metadata.namespace!=system\n *\n * For more information regarding the API see https://github.com/rancher/steve?tab=readme-ov-file#query-parameters\n */\nexport class PaginationFilterField {\n /**\n * Name of field within the object to filter by for example the x of x=y\n *\n * This can be optional for some (projectsornamespaces)\n */\n field?: string;\n /**\n * Value of field within the object to filter by for example the y of x=y\n */\n value: string;\n /**\n * Equality field within the object to filter by for example the `=` or `!=` of x=y\n */\n equals: boolean;\n /**\n * Match the field exactly. False for partial matches\n *\n * Value: pod1\n * Exact: true. \"p\" no, \"pod\", no, \"pod1\" yes\n * Exact: false. \"p\" yes, \"pod\", yes, \"pod1\" yes\n */\n exact: boolean;\n\n constructor(\n {\n field, value, equals = true, exact = true\n }:\n { field?: string; value: string; equals?: boolean; exact?: boolean;}\n ) {\n this.field = field;\n this.value = value;\n this.equals = equals;\n this.exact = exact;\n }\n}\n\n/**\n * Represents filter like params, for example\n *\n * - `filter=abc!=xyz&def=123`\n * - `projectsornamespace!=p-3456`\n *\n * ### Params\n * #### Filter\n * - For more information regarding the API see https://github.com/rancher/steve?tab=readme-ov-file#filter\n *\n * #### Projects Or Namespace\n * - For more information regarding the API see https://github.com/rancher/steve?tab=readme-ov-file#projectsornamespaces\n *\n * ### Combining Params\n * Params can be combined in two logical ways\n *\n * 1) AND\n * - Used when you would like to filter by something like a=1 AND b=2 AND c=3\n * - To do this multiple instances of `PaginationParam` are used in an array\n * - Object Structure\n * ```\n * [\n * PaginationParam,\n * PaginationParam,\n * PaginationParam\n * ]\n * ```\n * - Results in url\n * ```\n * filter=a=1&filter=b=2&filter=c=3\n * ```\n * - Examples\n * - `filter=metadata.namespace=abc&filter=metadata.name=123,property=123`\n * 2) OR\n * - Used when you would like to filter by something like a=1 OR b=2 OR c=3\n * - To do this multiple fields within a single PaginationParam is used\n * - Object Structure\n * ```\n * [\n * PaginationParam {\n * PaginationFilterField,\n * PaginationFilterField,\n * PaginationFilterField\n * }\n * ]\n * ```\n * - Results in url\n * ```\n * filter=a=1,b=2,c=3\n * ```\n *\n * - For example `filter=a=1,b=2,c=3`\n *\n *\n * This structure should give enough flexibility to cover all uses.\n *\n *\n */\nexport abstract class PaginationParam {\n /**\n * Query Param. For example `filter` or `projectsornamespaces`\n */\n param: string;\n /**\n * should fields equal param.\n *\n * For example projectsornamexspaces=x or projectsornamexspaces!=x\n */\n equals: boolean;\n /**\n * Fields to filter by\n *\n * For example metadata.namespace=abc OR metadata.namespace=xyz\n */\n fields: PaginationFilterField[];\n\n constructor(\n { param, equals = true, fields = [] }:\n {\n param: string;\n /**\n * should param equal fields\n *\n * For definition see {@link PaginationParam} `equals`\n */\n equals?: boolean;\n /**\n * Collection of fields to filter by\n *\n * For definition see {@link PaginationParam} `fields`\n */\n fields?: PaginationFilterField[];\n }) {\n this.param = param;\n this.equals = equals;\n this.fields = fields;\n }\n}\n\n/**\n * This is a convenience class for the `filter` param which works some magic, adds defaults and converts to the required PaginationParam format\n *\n * See description for {@link PaginationParam} for how multiple of these can be combined together to AND or OR together\n *\n * For more information regarding the API see https://github.com/rancher/steve?tab=readme-ov-file#filter\n */\nexport class PaginationParamFilter extends PaginationParam {\n constructor(\n { equals = true, fields = [] }:\n {\n /**\n * should param equal fields\n *\n * For definition see {@link PaginationParam} `equals`\n */\n equals?: boolean;\n /**\n * Collection of fields to filter by.\n *\n * Fields are ORd together\n *\n * For definition see {@link PaginationParam} `fields`\n */\n fields?: PaginationFilterField[];\n }\n ) {\n super({\n param: 'filter',\n equals,\n fields\n });\n }\n\n /**\n * Convenience method when you just want an instance of {@link PaginationParamFilter} with a simple `filter=x=y` param\n */\n static createSingleField(field: { field?: string; value: string; equals?: boolean; exact?: boolean }): PaginationParam {\n return new PaginationParamFilter({ fields: [new PaginationFilterField(field)] });\n }\n\n /**\n * Convenience method when you just want an instance of {@link PaginationParamFilter} with a simple `filter=a=1,b=2,c=3` PaginationParam\n *\n * These will be OR'd together\n */\n static createMultipleFields(fields: PaginationFilterField[]): PaginationParam {\n return new PaginationParamFilter({ fields });\n }\n}\n\n/**\n * This is a convenience class for the `projectsornamespaces` param which works some magic, adds defaults and converts to the required PaginationParam format\n *\n * See description for {@link PaginationParam} for how multiple of these can be combined together to AND or OR together\n *\n * For more information regarding the API see https://github.com/rancher/steve?tab=readme-ov-file#projectsornamespaces\n */\nexport class PaginationParamProjectOrNamespace extends PaginationParam {\n constructor(\n { equals = true, projectOrNamespace = [] }:\n {\n /**\n * should param equal fields\n * For definition see {@link PaginationParam} `equals`\n */\n equals?: boolean;\n /**\n * Collection of projects / namespace id's to filter by\n *\n * These are OR'd together\n *\n * For clarification on definition see {@link PaginationFilterField}\n */\n projectOrNamespace?: string[];\n }\n ) {\n const safeFields = projectOrNamespace.map((f) => {\n return new PaginationFilterField({\n value: f\n .replace(NAMESPACE_FILTER_NS_FULL_PREFIX, '')\n .replace(NAMESPACE_FILTER_P_FULL_PREFIX, '')\n });\n });\n\n super({\n param: 'projectsornamespaces',\n equals,\n fields: safeFields\n });\n }\n}\n\n/**\n * Pagination settings sent to actions and persisted to store\n *\n * Use this for making pagination requests that utilise the new vai cache backed API\n */\nexport class PaginationArgs {\n /**\n * Page number to fetch\n */\n page: number | null;\n /**\n * Number of results in the page\n */\n pageSize?: number | null;\n /**\n * Sort the results\n *\n * For more info see {@link PaginationSort}\n */\n sort: PaginationSort[];\n /**\n * A collection of `filter` params\n *\n * For more info see {@link PaginationParamFilter}\n */\n filters: PaginationParamFilter[];\n /**\n * A collection of `projectsornamespace` params\n *\n * For more info see {@link PaginationParamProjectOrNamespace}\n */\n projectsOrNamespaces: PaginationParamProjectOrNamespace[];\n\n /**\n * Creates an instance of PaginationArgs.\n *\n * Contains defaults to avoid creating complex json objects all the time\n */\n constructor({\n page = 1,\n pageSize = 10,\n sort = [],\n filters = [],\n projectsOrNamespaces = [],\n }:\n // This would be neater as just Partial<PaginationArgs> but we lose all jsdoc\n {\n /**\n * For definition see {@link PaginationArgs} `page`\n */\n page?: number | null,\n /**\n * For definition see {@link PaginationArgs} `pageSize`\n */\n pageSize?: number | null,\n /**\n * For definition see {@link PaginationArgs} `sort`\n */\n sort?: PaginationSort[],\n /**\n * Automatically wrap if not an array\n *\n * For definition see {@link PaginationArgs} `filters`\n */\n filters?: PaginationParamFilter | PaginationParamFilter[],\n /**\n * Automatically wrap if not an array\n *\n * For definition see {@link PaginationArgs} `projectsOrNamespaces`\n */\n projectsOrNamespaces?: PaginationParamProjectOrNamespace | PaginationParamProjectOrNamespace[],\n }) {\n this.page = page;\n this.pageSize = pageSize;\n this.sort = sort;\n if (filters) {\n this.filters = Array.isArray(filters) ? filters : [filters];\n } else {\n this.filters = [];\n }\n if (projectsOrNamespaces) {\n this.projectsOrNamespaces = Array.isArray(projectsOrNamespaces) ? projectsOrNamespaces : [projectsOrNamespaces];\n } else {\n this.projectsOrNamespaces = [];\n }\n }\n}\n\n/**\n * Wrapper around {@link PaginationArgs}\n *\n * Use this for making requests that utilise filtering backed by the new vai cache backed API\n */\nexport class FilterArgs extends PaginationArgs {\n /**\n * Creates an instance of PaginationArgs.\n *\n * Contains defaults to avoid creating complex json objects all the time\n */\n constructor({\n sort = [],\n filters = [],\n projectsOrNamespaces = [],\n }:\n // This would be neater as just Partial<PaginationArgs> but we lose all jsdoc\n {\n /**\n * For definition see {@link PaginationArgs} `sort`\n */\n sort?: PaginationSort[],\n /**\n * Automatically wrap if not an array\n *\n * For definition see {@link PaginationArgs} `filters`\n */\n filters?: PaginationParamFilter | PaginationParamFilter[],\n /**\n * Automatically wrap if not an array\n *\n * For definition see {@link PaginationArgs} `projectsOrNamespaces`\n */\n projectsOrNamespaces?: PaginationParamProjectOrNamespace | PaginationParamProjectOrNamespace[],\n }) {\n super({\n page: null, pageSize: null, sort, filters, projectsOrNamespaces\n });\n }\n}\n\n/**\n * Overall result of a pagination request.\n *\n * Does not contain actual resources but overall stats (count, pages, etc)\n */\nexport interface StorePaginationResult {\n count: number,\n pages: number,\n /**\n * The last time the resource was updated. Used to assist list watching for changes\n */\n timestamp: number,\n}\n\nexport interface StorePaginationRequest {\n /**\n * The single namespace to filter results by (as part of url path, not pagination params)\n */\n namespace?: string,\n /**\n * The set of pagination args used to create the request\n */\n pagination: PaginationArgs\n}\n\n/**\n * Pagination settings\n * - what was requested\n * - what was received (minus actual resources)\n *\n * Object is persisted to store\n */\nexport interface StorePagination {\n /**\n * Collection of args that is used to make the request\n */\n request: StorePaginationRequest,\n\n /**\n * Information in the response outside of the actual resources returned\n */\n result: StorePaginationResult\n}\n\n/**\n * The resource and context that the pagination request will be used\n *\n * Used to determine if the request is supported\n*/\nexport interface PaginationResourceContext {\n store: string,\n resource?: {\n id: string,\n context?: string,\n }\n}\n","\n/**\n * interface for type-map's' definition for table headers/columns\n */\nexport interface TableColumn {\n name: string,\n label?: string,\n value: any,\n sort?: string | string[],\n formatter?: string,\n formatterOpts?: any,\n width?: number,\n tooltip?: string,\n search?: string | boolean,\n}\n\nexport const COLUMN_BREAKPOINTS = {\n /**\n * Only show column if at tablet width or wider\n */\n TABLET: 'tablet',\n /**\n * Only show column if at laptop width or wider\n */\n LAPTOP: 'laptop',\n /**\n * Only show column if at desktop width or wider\n */\n DESKTOP: 'desktop'\n};\n","import xor from 'lodash/xor';\nimport { get, isEqual } from '@shell/utils/object';\n\nexport function removeObject<T>(ary: T[], obj: T): T[] {\n const idx = ary.indexOf(obj);\n\n if ( idx >= 0 ) {\n ary.splice(idx, 1);\n }\n\n return ary;\n}\n\nexport function removeObjects<T>(ary: T[], objs: T[]): T[] {\n let i;\n let indexes = [];\n\n for ( i = 0 ; i < objs.length ; i++ ) {\n let idx = ary.indexOf(objs[i]);\n\n // Find multiple copies of the same value\n while ( idx !== -1 ) {\n indexes.push(idx);\n idx = ary.indexOf(objs[i], idx + 1);\n }\n }\n\n if ( !indexes.length ) {\n // That was easy...\n return ary;\n }\n\n indexes = indexes.sort((a, b) => a - b);\n\n const ranges = [];\n let first: number;\n let last: number;\n\n // Group all the indexes into contiguous ranges\n while ( indexes.length ) {\n first = indexes.shift() as number;\n last = first;\n\n while ( indexes.length && indexes[0] === last + 1 ) {\n last = indexes.shift() as number;\n }\n\n ranges.push({ start: first, end: last });\n }\n\n // Remove the items by range\n for ( i = ranges.length - 1 ; i >= 0 ; i--) {\n const { start, end } = ranges[i];\n\n ary.splice(start, end - start + 1);\n }\n\n return ary;\n}\n\nexport function addObject<T>(ary: T[], obj: T): void {\n const idx = ary.indexOf(obj);\n\n if ( idx === -1 ) {\n ary.push(obj);\n }\n}\n\nexport function addObjects<T>(ary: T[], objs: T[]): void {\n const unique: T[] = [];\n\n for ( const obj of objs ) {\n if ( !ary.includes(obj) && !unique.includes(obj) ) {\n unique.push(obj);\n }\n }\n\n ary.push(...unique);\n}\n\nexport function insertAt<T>(ary: T[], idx: number, ...objs: T[]): void {\n ary.splice(idx, 0, ...objs);\n}\n\nexport function isArray<T>(thing: T[] | unknown): boolean {\n return Array.isArray(thing);\n}\n\nexport function removeAt<T>(ary: T[], idx: number, length = 1): T[] {\n if ( idx < 0 ) {\n throw new Error('Index too low');\n }\n\n if ( idx + length > ary.length ) {\n throw new Error('Index + length too high');\n }\n\n ary.splice(idx, length);\n\n return ary;\n}\n\nexport function clear<T>(ary: T[]): void {\n ary.splice(0, ary.length);\n}\n\nexport function replaceWith<T>(ary: T[], ...values: T[]): void {\n ary.splice(0, ary.length, ...values);\n}\n\nfunction findOrFilterBy<T, K, V>(\n method: 'filter', ary: T[] | null, keyOrObj: string | K, val?: V\n): T[];\nfunction findOrFilterBy<T, K, V>(\n method: 'find', ary: T[] | null, keyOrObj: string | K, val?: V\n): T;\nfunction findOrFilterBy<T, K, V>(\n method: keyof T[], ary: T[] | null, keyOrObj: string | K, val?: V\n): T[] {\n ary = ary || [];\n\n if ( typeof keyOrObj === 'object' ) {\n return (ary[method] as Function)((item: T) => {\n for ( const path in keyOrObj ) {\n const want = keyOrObj[path];\n const have = get(item, path);\n\n if ( typeof want === 'undefined' ) {\n if ( !have ) {\n return false;\n }\n } else if ( have !== want ) {\n return false;\n }\n }\n\n return true;\n });\n } else if ( val === undefined ) {\n return (ary[method] as Function)((item: T) => !!get(item, keyOrObj));\n } else {\n return (ary[method] as Function)((item: T) => get(item, keyOrObj) === val);\n }\n}\n\nexport function filterBy<T, K, V>(\n ary: T[] | null, keyOrObj: string | K, val?: V\n): T[] {\n return findOrFilterBy('filter', ary, keyOrObj, val);\n}\n\nexport function findBy<T, K, V>(\n ary: T[] | null, keyOrObj: string | K, val?: V\n): T {\n return findOrFilterBy('find', ary, keyOrObj, val);\n}\n\nexport function findStringIndex(items: string[], item: string, trim = true): number {\n return items.indexOf(trim ? item?.trim() : item);\n}\n\nexport function hasDuplicatedStrings(items: string[], caseSensitive = true): boolean {\n const normalizedItems = items.map((i) => (caseSensitive ? i : i.toLowerCase()).trim());\n\n for (let i = 0; i < items.length; i++) {\n const index = findStringIndex(\n normalizedItems,\n (caseSensitive ? items[i] : items[i].toLowerCase()),\n );\n\n if (i !== index) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function sameContents<T>(aryA: T[], aryB: T[]): boolean {\n return xor(aryA, aryB).length === 0;\n}\n\nexport function sameArrayObjects<T>(aryA: T[], aryB: T[], positionAgnostic = false): boolean {\n if (!aryA && !aryB) {\n // catch calls from js (where props aren't type checked)\n return false;\n }\n if (aryA?.length !== aryB?.length) {\n // catch one null and not t'other, and different lengths\n return false;\n }\n\n if (positionAgnostic) {\n const consumedB: { [pos: number]: boolean } = {};\n\n aryB.forEach((_, index) => {\n consumedB[index] = false;\n });\n\n for (let i = 0; i < aryA.length; i++) {\n const a = aryA[i];\n\n const validA = aryB.findIndex((arB, index) => isEqual(arB, a) && !consumedB[index] );\n\n if (validA >= 0) {\n consumedB[validA] = true;\n } else {\n return false;\n }\n }\n } else {\n for (let i = 0; i < aryA.length; i++) {\n if (!isEqual(aryA[i], aryB[i])) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function uniq<T>(ary: T[]): T[] {\n const out: T[] = [];\n\n addObjects(out, ary);\n\n return out;\n}\n\nexport function concatStrings(a: string[], b: string[]): string[] {\n return [...a.map((aa) => b.map((bb) => aa.concat(bb)))].reduce((acc, arr) => [...arr, ...acc], []);\n}\n\ninterface KubeResource { metadata: { labels: { [name: string]: string} } } // Migrate to central kube types resource when those are brought in\nexport function getUniqueLabelKeys<T extends KubeResource>(aryResources: T[]): string[] {\n const uniqueObj = aryResources.reduce((res, r) => {\n Object.keys(r.metadata.labels).forEach((l) => (res[l] = true));\n\n return res;\n }, {} as {[label: string]: boolean});\n\n return Object.keys(uniqueObj).sort();\n}\n","export const waitFor = (testFn: Function, msg = '', timeoutMs = 3000000, intervalMs = 500, log = false): Promise<unknown> => {\n gatedLog('Starting wait for', msg);\n\n return new Promise((resolve, reject) => {\n if (testFn()) {\n gatedLog('Wait for', msg || 'unknown', 'done immediately');\n resolve(this);\n }\n const timeout = setTimeout(() => {\n gatedLog('Wait for', msg, 'timed out');\n clearInterval(interval);\n clearTimeout(timeout);\n if (msg) {\n reject(new Error(`Failed waiting for: ${ msg }`));\n } else {\n throw new Error(`waitFor timed out after ${ timeoutMs / 1000 } seconds`);\n }\n }, timeoutMs);\n const interval = setInterval(() => {\n if ( testFn() ) {\n gatedLog('Wait for', msg, 'done');\n clearInterval(interval);\n clearTimeout(timeout);\n resolve(this);\n } else if (msg) {\n gatedLog('Wait for', msg, 'not done yet');\n }\n }, intervalMs);\n });\n\n function gatedLog(...args: any[]) {\n if (log) {\n console.log(...args); // eslint-disable-line no-console\n }\n }\n};\n\nexport const wait = (milliseconds: number): Promise<unknown> => new Promise((resolve) => setTimeout(resolve, milliseconds));\n","export type GC_PREFERENCES = {\n enabled: boolean,\n enabledInterval: boolean,\n interval: number,\n enabledOnNavigate: boolean,\n ageThreshold: number,\n countThreshold: number\n}\n\nexport const GC_DEFAULTS: GC_PREFERENCES = {\n enabled: false,\n\n // When GC Runs\n enabledInterval: true,\n interval: 1 * 60 * 5,\n enabledOnNavigate: true,\n\n // How GC handles resources when GC'ing\n ageThreshold: 1 * 60 * 2,\n countThreshold: 500,\n};\n","import { SETTING } from '@shell/config/settings';\nimport { COUNT, MANAGEMENT } from '@shell/config/types';\nimport { GC_DEFAULTS, GC_PREFERENCES } from './gc-types';\n\nclass GarbageCollect {\n private static ENABLE_DEBUG_LOGGING = false;\n\n /**\n * Don't run GC if it's been run within 5 seconds\n */\n private static GC_RE_RUN_GAP = 1000 * 5;\n\n private cachedGcPrefs: GC_PREFERENCES = GC_DEFAULTS;\n\n private cachedGcPrefsStamp = '';\n\n private debugLog = (...args: any) => {\n if (GarbageCollect.ENABLE_DEBUG_LOGGING) {\n console.debug('GC', ...args); // eslint-disable-line no-console\n }\n };\n\n /**\n * Time the GC last ran\n */\n private gcLastRun: number | null = 0;\n\n /**\n * To avoid JSON.parse on the `ui-performance` setting keep a local cache\n */\n private getUiPerfGarbageCollection = (rootState: any) => {\n const uiPerfSetting = rootState.management.types[MANAGEMENT.SETTING]?.list?.find((s: any) => s.id === SETTING.UI_PERFORMANCE);\n\n if (!uiPerfSetting || !uiPerfSetting.value) {\n // Could be in the process of logging out\n return undefined;\n }\n const stamp = `${ uiPerfSetting.metadata.generation }-${ uiPerfSetting.metadata.resourceVersion }`;\n\n if (this.cachedGcPrefsStamp !== stamp) {\n this.debugLog(`Updating ${ SETTING.UI_PERFORMANCE } cache`);\n this.cachedGcPrefsStamp = stamp;\n const uiPerfSettingParsed = JSON.parse(uiPerfSetting.value);\n\n this.cachedGcPrefs = uiPerfSettingParsed.garbageCollection;\n }\n\n return this.cachedGcPrefs;\n };\n\n /**\n * The last time a resource was accessed by either find or getters style functions\n */\n private lastAccessedCache: {\n [store: string]: {\n [type: string]: number;\n }\n } = {}\n\n /**\n * Track when a logged in route changes.\n */\n private lastRouteChange = 0;\n\n // ------------- GC Enabled ---------------------\n\n gcEnabledAll(pseudoCtx: any, type: string) {\n return this.gcEnabledForStore(pseudoCtx.state) && this.gcEnabledSetting(pseudoCtx) && this.gcEnabledForType(pseudoCtx, type);\n }\n\n gcEnabledSetting(pseudoCtx: any) {\n const { rootState } = pseudoCtx;\n\n // Don't use a getter... as we'll end up triggering ourselves again\n const uiPerfGarbageCollection = this.getUiPerfGarbageCollection(rootState);\n\n return uiPerfGarbageCollection?.enabled;\n }\n\n gcEnabledForStore(state: any) {\n return state?.config?.supportsGc;\n }\n\n /**\n * Store can require certain types are not GC'd (for example `cluster` and `schema`s, `counts`, etc)\n */\n gcEnabledForType(pseudoCtx: any, type: string) {\n const { getters } = pseudoCtx;\n\n if (!type || getters.gcIgnoreTypes[type]) {\n return false;\n }\n\n return true;\n }\n\n gcEnabledInterval(pseudoCtx: any) {\n const { rootState } = pseudoCtx;\n\n // Don't use a getter... as we'll end up triggering ourselves again\n const uiPerfGarbageCollection = this.getUiPerfGarbageCollection(rootState);\n\n return {\n enabled: uiPerfGarbageCollection?.enabledInterval,\n interval: uiPerfGarbageCollection?.interval || 0\n };\n }\n\n gcEnabledRoute(pseudoCtx: any) {\n const { rootState } = pseudoCtx;\n\n // Don't use a getter... as we'll end up triggering ourselves again\n const uiPerfGarbageCollection = this.getUiPerfGarbageCollection(rootState);\n\n return uiPerfGarbageCollection?.enabledOnNavigate;\n }\n\n // ------------- GC (actual) ---------------------\n\n /**\n * Remove stale resource types from the store and stop watching them for changes\n */\n garbageCollect(ctx: any, ignoreTypes: {[type: string]: boolean} = {}) {\n const now = new Date().getTime();\n\n // Is gc currently running OR has run in the past GC_RE_RUN_GAP return early\n if (this.gcLastRun === null || now - this.gcLastRun < GarbageCollect.GC_RE_RUN_GAP) {\n this.debugLog('Skipping (running or recently run)', this.gcLastRun ? new Date(this.gcLastRun) : 'running');\n\n return;\n }\n\n this.gcLastRun = null;\n const gcd: {[type: string]: number} = {};\n\n try {\n const { getters, rootState, dispatch } = ctx;\n\n if (!rootState.clusterReady) {\n this.debugLog('Skipping (cluster not ready)');\n this.gcLastRun = new Date().getTime();\n\n return ;\n }\n this.debugLog(`------ Started ------`);\n\n const uiPerfGarbageCollection = this.getUiPerfGarbageCollection(rootState);\n\n if (!uiPerfGarbageCollection) {\n return ;\n }\n const maxAge = uiPerfGarbageCollection.ageThreshold * 1000;\n const maxCount = uiPerfGarbageCollection.countThreshold;\n\n this.debugLog(`Max Age: ${ maxAge }. Max Count: ${ maxCount }`);// , 'Cache', this.lastAccessedCache\n\n const store = ctx.state.config.namespace;\n\n // this.debugLog('Cache', this.lastAccessedCache);\n\n Object.entries((this.lastAccessedCache[store] || {})).forEach(([type, lastAccessed]) => {\n if (!lastAccessed) {\n // There's no last accessed time... gc is probably disabled in another way\n this.debugLog(`${ type }: Skipping (no accessed time)`);\n\n return;\n }\n\n if (!this.gcEnabledForType(ctx, type)) {\n // This specific store is telling us to ignore the type (for example `cluster` store will not GC schema's, counts, etc)\n this.debugLog(`${ type }: Skipping (type ignored by store)`);\n\n return;\n }\n\n if (ignoreTypes[type]) {\n // We're going to a place that needs the resource\n this.debugLog(`${ type }: Skipping (navigating to type)`);\n\n return;\n }\n\n if (now - lastAccessed <= maxAge) {\n // The resource was recently accessed\n\n this.debugLog(`${ type }: Skipping (recently accessed)`);\n\n return;\n }\n\n if (this.lastRouteChange !== undefined && this.lastRouteChange < lastAccessed ) {\n // The resource is being used in the current route/page\n this.debugLog(`${ type }: Skipping (used in current route/page)`);\n\n return;\n }\n\n const countFromResource = getters.all(COUNT)[0].counts[type]?.summary.count;\n const currentCount = countFromResource ?? 0;\n\n if (currentCount === undefined || currentCount < maxCount) {\n // There's too few resources, we might as well keep them to avoid a network request when we need them again\n this.debugLog(`${ type }: Skipping (too few of resource)`);\n\n return;\n }\n\n this.debugLog(`${ type }: Removing from store`);\n dispatch('forgetType', type);\n gcd[type] = currentCount;\n });\n\n this.gcLastRun = new Date().getTime();\n } catch (e) {\n this.debugLog(`: Error`, e);\n this.gcLastRun = new Date().getTime();\n }\n\n if (Object.keys(gcd).length > 0) {\n console.info('Garbage Collected Resources', gcd); // eslint-disable-line no-console\n }\n\n this.debugLog(`------ Finished ------`);\n }\n\n // ------------- GC Update local cache ---------------------\n\n /**\n * Update the time that the resource type was accessed\n * This needs to run after any type initialisation (aka registerType)\n */\n gcUpdateLastAccessed(pseudoCtx: any, type: string) {\n if (!this.gcEnabledAll(pseudoCtx, type)) {\n return;\n }\n const store = pseudoCtx.state.config.namespace;\n\n if (!this.lastAccessedCache[store]) {\n this.lastAccessedCache[store] = {};\n }\n\n this.lastAccessedCache[store][type] = new Date().getTime();\n }\n\n /**\n * Update the time the user last changed routes\n */\n gcUpdateRouteChanged() {\n this.lastRouteChange = new Date().getTime();\n }\n\n // ------------- GC reset ---------------------\n\n /**\n * Remove all cached access times for the given store\n */\n gcResetStore(state: any) {\n const store = state.config.namespace;\n\n delete this.lastAccessedCache[store];\n\n this.debugLog('Forgetting Store:', store);\n }\n\n /**\n * Remove cached access time for the given resource type\n */\n gcResetType(state: any, type: string) {\n const store = state.config.namespace;\n\n if (!this.lastAccessedCache[store]) {\n return;\n }\n delete this.lastAccessedCache[store][type];\n\n this.debugLog('Forgetting Type:', store, type);\n }\n}\n\nconst gc = new GarbageCollect();\n\nexport default gc;\n","import { PaginationSettings } from '@shell/types/resources/settings';\nimport {\n NAMESPACE_FILTER_ALL_USER as ALL_USER,\n NAMESPACE_FILTER_ALL as ALL,\n NAMESPACE_FILTER_ALL_SYSTEM as ALL_SYSTEM,\n NAMESPACE_FILTER_NAMESPACED_YES as NAMESPACED_YES,\n NAMESPACE_FILTER_NAMESPACED_NO as NAMESPACED_NO,\n NAMESPACE_FILTER_KINDS,\n NAMESPACE_FILTER_NS_FULL_PREFIX,\n NAMESPACE_FILTER_P_FULL_PREFIX,\n} from '@shell/utils/namespace-filter';\nimport { PaginationArgs, PaginationResourceContext, PaginationParam, PaginationSort } from '@shell/types/store/pagination.types';\nimport { sameArrayObjects } from '@shell/utils/array';\nimport { isEqual } from '@shell/utils/object';\nimport { STEVE_CACHE } from '@shell/store/features';\nimport { getPerformanceSetting } from '@shell/utils/settings';\n\n/**\n * Helper functions for server side pagination\n */\nclass PaginationUtils {\n /**\n * When a ns filter isn't one or more projects/namespaces... what are the valid values?\n *\n * This basically blocks 'Not in a Project'.. which would involve a projectsornamespaces param with every ns not in a project.\n */\n validNsProjectFilters = [ALL, ALL_SYSTEM, ALL_USER, ALL_SYSTEM, NAMESPACE_FILTER_KINDS.NAMESPACE, NAMESPACE_FILTER_KINDS.PROJECT, NAMESPACED_YES, NAMESPACED_NO];\n\n private getSettings({ rootGetters }: any): PaginationSettings {\n const perf = getPerformanceSetting(rootGetters);\n\n return perf.serverPagination;\n }\n\n isSteveCacheEnabled({ rootGetters }: any): boolean {\n // We always get Feature flags as part of start up (see `dispatch('features/loadServer')` in loadManagement)\n return rootGetters['features/get']?.(STEVE_CACHE);\n }\n\n /**\n * Is pagination enabled at a global level or for a specific resource\n */\n isEnabled({ rootGetters }: any, enabledFor: PaginationResourceContext) {\n // Cache must be enabled to support pagination api\n if (!this.isSteveCacheEnabled({ rootGetters })) {\n return false;\n }\n\n const settings = this.getSettings({ rootGetters });\n\n // No setting, not enabled\n if (!settings?.enabled) {\n return false;\n }\n\n // Missing required params, not enabled\n if (!enabledFor) {\n return false;\n }\n\n const storeSettings = settings.stores?.[enabledFor.store];\n\n // No pagination setting for target store, not enabled\n if (!storeSettings) {\n return false;\n }\n\n // Not interested in a resource, so just top level settings are checked\n if (!enabledFor.resource) {\n return true;\n }\n\n // Store says all resources are enabled\n if (storeSettings.resources.enableAll) {\n return true;\n }\n\n // given a resource... but no id... invalid\n if (!enabledFor.resource.id) {\n return false;\n }\n\n // Store says only some (those that have pagination columns not from schema and no custom list)\n const isGeneric =\n !rootGetters['type-map/configuredHeaders'](enabledFor.resource.id) &&\n !rootGetters['type-map/configuredPaginationHeaders'](enabledFor.resource.id) &&\n !rootGetters['type-map/hasCustomList'](enabledFor.resource.id);\n\n if (storeSettings.resources.enableSome.generic && isGeneric) {\n return true;\n }\n\n if (storeSettings.resources.enableSome.enabled.find((setting) => {\n if (typeof setting === 'string') {\n return setting === enabledFor.resource?.id;\n }\n\n if (setting.resource === enabledFor.resource?.id) {\n if (!!setting.context) {\n return enabledFor.resource?.context ? setting.context.includes(enabledFor.resource.context) : false;\n }\n\n return true;\n }\n\n return false;\n })) {\n return true;\n }\n\n return false;\n }\n\n validateNsProjectFilters(nsProjectFilters: string[]) {\n return nsProjectFilters?.every((f) => this.validateNsProjectFilter(f));\n }\n\n validateNsProjectFilter(nsProjectFilter: string) {\n if (nsProjectFilter.startsWith(NAMESPACE_FILTER_NS_FULL_PREFIX) || nsProjectFilter.startsWith(NAMESPACE_FILTER_P_FULL_PREFIX)) {\n return true;\n }\n\n return this.validNsProjectFilters.includes(nsProjectFilter);\n }\n\n paginationFilterEqual(a: PaginationParam, b: PaginationParam): boolean {\n if (a.param !== b.param || a.equals !== b.equals) {\n return false;\n }\n\n return sameArrayObjects(a.fields, b.fields, true);\n }\n\n paginationFiltersEqual(a: PaginationParam[], b: PaginationParam[]): boolean {\n if (!!a && a?.length !== b?.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (!this.paginationFilterEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n paginationEqual(a?: PaginationArgs, b?: PaginationArgs): boolean {\n const {\n filters: aFilter = [], sort: aSort = [], projectsOrNamespaces: aPN = [], ...aPrimitiveTypes\n } = a || {};\n const {\n filters: bFilter = [], sort: bSort = [], projectsOrNamespaces: bPN = [], ...bPrimitiveTypes\n } = b || {};\n\n return isEqual(aPrimitiveTypes, bPrimitiveTypes) &&\n this.paginationFiltersEqual(aFilter, bFilter) &&\n this.paginationFiltersEqual(aPN, bPN) &&\n sameArrayObjects<PaginationSort>(aSort, bSort, true);\n }\n}\n\nexport default new PaginationUtils();\n","import { MANAGEMENT } from '@shell/config/types';\nimport { Store } from 'vuex';\nimport { DEFAULT_PERF_SETTING, PerfSettings, SETTING } from '@shell/config/settings';\nimport { pluralize } from '@shell/utils/string';\nimport { _MULTI } from '@shell/plugins/dashboard-store/actions';\n\nexport const fetchOrCreateSetting = async(store: Store<any>, id: string, val: string, save = true): Promise<any> => {\n let setting;\n\n try {\n setting = await store.dispatch('management/find', { type: MANAGEMENT.SETTING, id });\n } catch {\n const schema = store.getters['management/schemaFor'](MANAGEMENT.SETTING);\n const url = schema.linkFor('collection');\n\n setting = await store.dispatch('management/create', {\n type: MANAGEMENT.SETTING, metadata: { name: id }, value: val, default: val || ''\n });\n if ( save ) {\n await setting.save({ url });\n }\n }\n\n return setting;\n};\n\n/**\n * Fetch a specific setting that might not exist\n * We fetch all settings - reality is Rancher will have done this already, so there's no overhead in doing\n * this - but if we fetch a specific setting that does not exist, we will get a 404, which we don't want\n */\nexport const fetchSetting = async(store: Store<any>, id: string): Promise<any> => {\n const all = await store.dispatch('management/findAll', { type: MANAGEMENT.SETTING });\n const setting = (all || []).find((setting: any) => setting.id === id);\n\n return setting;\n};\n\n/**\n * Carefully fetch mgmt settings\n *\n * Ensures that\n * - Concurrent calls to this function will only result in a single http request\n * - Subsequent calls, when either logged in or logged out, will only result in a single http request\n * - Logged out call will fetch partial settings, after logging in another call will fetch all settings\n *\n * Will be used in many places, particularly multiple times when loading the dashboard\n *\n * Note - We need to specify the url for cases where it can't be determined (i.e. we haven't fetched schemas)\n */\nexport const fetchInitialSettings = async(store: Store<any>): Promise<any> => {\n const generation = store.getters['management/generation'](MANAGEMENT.SETTING);\n // We use this as it copies the previous mechanism this was based on (in findAll)\n // There is the getter `auth/loggedInAs` (which is set given `fromHeader`), but that's initialised after the first call to here (see `authenticated`)\n const header = store.getters['auth/fromHeader'];\n const authed = `${ header }` === 'true' || `${ header }` === 'none';\n\n if (authed) {\n // We're authed, we will always get the full list\n return await store.dispatch('management/findAll', {\n type: MANAGEMENT.SETTING,\n opt: { url: `/v1/${ pluralize(MANAGEMENT.SETTING) }` }\n } );\n }\n\n if (!generation) {\n // We're not authed, and haven't previously fetched settings (no generation)\n // Fetch settings, put them in the store, but don't say we've got all yet (so subsequent calls will run)\n return await store.dispatch('management/findAll', {\n type: MANAGEMENT.SETTING,\n opt: {\n url: `/v1/${ pluralize(MANAGEMENT.SETTING) }`,\n load: _MULTI,\n redirectUnauthorized: false\n }\n });\n }\n\n // We're not authed, but have a previous value, no need to make a http request to fetch again\n return store.getters['management/all'](MANAGEMENT.SETTING);\n};\n\nexport const setSetting = async(store: Store<any>, id: string, val: string): Promise<any> => {\n const setting = await fetchOrCreateSetting(store, id, val, false);\n\n setting.value = val;\n await setting.save();\n\n return setting;\n};\n\nexport const getPerformanceSetting = (rootGetters: Record<string, (arg0: string, arg1: string) => any>): PerfSettings => {\n const perfSettingResource = rootGetters['management/byId'](MANAGEMENT.SETTING, SETTING.UI_PERFORMANCE);\n let perfSetting = {};\n\n if (perfSettingResource?.value) {\n try {\n perfSetting = JSON.parse(perfSettingResource.value);\n } catch (e) {\n console.warn('ui-performance setting contains invalid data'); // eslint-disable-line no-console\n }\n }\n\n // Start with the default and overwrite the values from the setting - ensures we have defaults for newly added options\n const safeDefaults = Object.assign({}, DEFAULT_PERF_SETTING);\n\n return Object.assign(safeDefaults, perfSetting || {});\n};\n","\nexport default {\n memberOfObject: <V = string>(obj: { [key: string]: any}, key: string): V => {\n return Object.entries(obj || {}).find(([k]) => k === key) as unknown as V;\n },\n memberOfComponent: <V = string>(obj: object | undefined, key: string): V => {\n return (obj as any as { [key: string]: any})[key] as V;\n },\n};\n","type UriField = 'source' | 'protocol' | 'authority' | 'userInfo' | 'user' | 'password' | 'host' | 'port' | 'relative' | 'path' | 'directory' | 'file' | 'queryStr' | 'anchor'\ntype UriFields = {\n [key in UriField]: string; // eslint-disable-line no-unused-vars\n}\nexport type QueryParams = {\n [key: string]: string\n}\n\ninterface ParsedUri extends UriFields {\n query: QueryParams;\n}\n\nexport function addParam(url: string, key: string, val: string | string[]): string {\n let out = url + (url.includes('?') ? '&' : '?');\n\n // val can be a string or an array of strings\n if ( !Array.isArray(val) ) {\n val = [val];\n }\n out += val.map((v) => {\n if ( v === null ) {\n return `${ encodeURIComponent(key) }`;\n } else {\n return `${ encodeURIComponent(key) }=${ encodeURIComponent(v) }`;\n }\n }).join('&');\n\n return out;\n}\n\nexport function addParams(url: string, params: QueryParams): string {\n if ( params && typeof params === 'object' ) {\n Object.keys(params).forEach((key) => {\n url = addParam(url, key, params[key]);\n });\n }\n\n return url;\n}\n\nexport function removeParam(url: string, key: string): string {\n const parsed = parse(url);\n\n if ( parsed.query?.[key] ) {\n delete parsed.query[key];\n }\n\n return stringify(parsed);\n}\n\nexport function parseLinkHeader(str: string): Record<string, string> {\n const out: { [key: string]: string} = { };\n const lines = (str || '').split(',');\n\n for ( const line of lines ) {\n const match = line.match(/^\\s*<([^>]+)>\\s*;\\s*rel\\s*=\"(.*)\"/);\n\n if ( match ) {\n out[match[2].toLowerCase()] = match[1];\n }\n }\n\n return out;\n}\n\nexport function isMaybeSecure(port: number, proto: string): boolean {\n const protocol = proto.toLowerCase();\n\n return portMatch([port], [443, 8443], ['443']) || protocol === 'https';\n}\n\nexport function portMatch(ports: number[], equals: number[], endsWith: string[]): boolean {\n for (let i = 0; i < ports.length; i++) {\n const port = ports[i];\n\n if (equals.includes(port)) {\n return true;\n }\n\n for (let j = 0; j < endsWith.length; j++) {\n const suffix = `${ endsWith[j] }`;\n const portStr = `${ port }`;\n\n if (portStr !== suffix && portStr.endsWith(suffix)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\n// parseUri 1.2.2\n// (c) Steven Levithan <stevenlevithan.com>\n// https://javascriptsource.com/parseuri/\n// MIT License\nexport function parse(str: string): ParsedUri {\n const o = parse.options;\n const m = o.parser[o.strictMode ? 'strict' : 'loose'].exec(str);\n\n if (!m) {\n throw new Error(`Cannot parse as uri: ${ str }`);\n }\n const uri = {} as ParsedUri;\n let i = 14;\n\n while (i--) {\n uri[o.key[i]] = m[i] || '';\n }\n\n uri.query = {};\n uri.queryStr.replace(o.q.parser, (_, $1: string, $2: string): string => {\n if ($1) {\n uri[o.q.name][$1] = $2;\n }\n\n return '';\n });\n\n return uri;\n}\n\nparse.options = {\n strictMode: false,\n key: ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'queryStr', 'anchor'],\n q: {\n name: 'query',\n parser: /(?:^|&)([^&=]*)=?([^&]*)/g\n },\n parser: {\n strict: /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?))?((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n loose: /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/\n }\n} as {\n strictMode: boolean,\n key: UriField[],\n q: {\n name: 'query',\n parser: RegExp\n },\n parser: {\n strict: RegExp,\n loose: RegExp\n }\n};\n\nexport function stringify(uri: ParsedUri): string {\n let out = `${ uri.protocol }://`;\n\n if ( uri.user && uri.password ) {\n out += `${ uri.user }:${ uri.password }@`;\n } else if ( uri.user ) {\n out += `${ uri.user }@`;\n }\n\n out += uri.host;\n\n if ( uri.port ) {\n out += `:${ uri.port }`;\n }\n\n out += uri.path || '/';\n\n out = addParams(out, uri.query || {});\n\n if ( uri.anchor ) {\n out += `#${ uri.anchor }`;\n }\n\n return out;\n}\n","import { RBAC } from '@shell/config/types';\nimport { HCI } from '@shell/config/labels-annotations';\nimport isEmpty from 'lodash/isEmpty';\nimport has from 'lodash/has';\nimport isUrl from 'is-url';\n// import uniq from 'lodash/uniq';\nimport { Translation } from '@shell/types/t';\nimport { isHttps, isLocalhost, hasTrailingForwardSlash } from '@shell/utils/validators/setting';\nimport { cronScheduleRule } from '@shell/utils/validators/cron-schedule';\n\n// import uniq from 'lodash/uniq';\n\n/**\n * Fixed validation rule which require only the value to be evaluated\n * @param value\n * @returns { string | undefined }\n */\nexport type Validator<T = undefined | string> = (value: any, arg?: any) => T;\n\n/**\n * Factory function which returns a validation rule\n * @param arg Argument used as part of the validation rule process, not necessarily as parameter of the validation rule\n * @param value Value to be evaluated\n * @returns { Validator }\n */\nexport type ValidatorFactory = (arg: any, value?: any) => Validator\n\ntype ServicePort = {\n name?: string,\n nodePort?: string | number,\n port?: string | number,\n targetPort?: string | number,\n idx: number\n}\n\nexport class Port {\n empty: boolean;\n int: number;\n string: string;\n isNumber: boolean;\n isInt: boolean;\n constructor(port: number | string | undefined) {\n this.string = String(port);\n this.int = parseInt(this.string, 10);\n this.empty = (!port && this.int !== 0);\n this.isNumber = !isNaN(this.int) && !this.string.includes('e'); // leaving out the exponent edge case to keep the logic simple and because port numbers aren't that big...\n this.isInt = this.isNumber && !this.string.includes('.');\n }\n}\n\nconst runValidators = (val: any, validators: Validator[]) => {\n for (const validator of validators) {\n const message = validator(val);\n\n if (message) {\n return message;\n }\n }\n};\n\nexport interface ValidationOptions {\n key?: string,\n}\n\n// \"t\" is the function name we use for getting a translated string\nexport default function(t: Translation, { key = 'Value' }: ValidationOptions): { [key:string]: Validator<any> | ValidatorFactory } {\n // utility validators these validators only get used by other validators\n const startDot: ValidatorFactory = (label: string): Validator => (val: string) => val?.slice(0, 1) === '.' ? t(`validation.dns.${ label }.startDot`, { key }) : undefined;\n\n const endDot = (label: string): Validator => (val: string) => val?.slice(-1) === '.' ? t(`validation.dns.${ label }.endDot`, { key }) : undefined;\n\n const startNumber: ValidatorFactory = (label: string): Validator => (val: string) => val?.slice(0, 1)?.match(/[0-9]/) ? t(`validation.dns.${ label }.startNumber`, { key }) : undefined;\n\n const startHyphen: ValidatorFactory = (label: string): Validator => (val: string) => val?.slice(0, 1) === '-' ? t(`validation.dns.${ label }.startHyphen`, { key }) : undefined;\n\n const endHyphen: ValidatorFactory = (label: string): Validator => (val: string) => val?.slice(-1) === '-' ? t(`validation.dns.${ label }.endHyphen`, { key }) : undefined;\n\n const minValue: ValidatorFactory = (min: string) => (val: string | number) => Number(val) < Number(min) ? t('validation.minValue', { key, min }) : undefined;\n\n const maxValue: ValidatorFactory = (max: string) => (val: string | number) => Number(val) > Number(max) ? t('validation.maxValue', { key, max }) : undefined;\n\n const betweenValues: ValidatorFactory = ([min, max]: string[]) => (val: string | number) => minValue(min)(val) || maxValue(max)(val) ? t('validation.betweenValues', {\n key, min, max\n }) : undefined;\n\n const minLength: ValidatorFactory = (min: string) => (val: string) => val.length < Number(min) ? t('validation.minLength', { key, min }) : undefined;\n\n const maxLength: ValidatorFactory = (max: string) => (val: string) => val.length > Number(max) ? t('validation.maxLength', { key, max }) : undefined;\n\n const betweenLengths: ValidatorFactory = ([min, max]: string[]) => (val: string) => minLength(min)(val) || maxLength(max)(val) ? t('validation.betweenLengths', {\n key, min, max\n }) : undefined;\n\n const requiredInt: Validator = (val: string) => isNaN(parseInt(val, 10)) ? t('validation.number.requiredInt', { key }) : undefined;\n\n const isInteger: Validator = (val: string | number) => !Number.isInteger(+val) || `${ val }`.match(/\\.+/g) ? t('validation.number.requiredInt', { key }) : undefined;\n\n const isPositive: Validator = (val: string | number) => +val < 0 ? t('validation.number.isPositive', { key }) : undefined;\n\n const isOctal: Validator = (val: string | number) => {\n const valueString = `${ val }`;\n const isValid = valueString.match(/(^0+)(.+)/);\n\n return isValid ? t('validation.number.isOctal', { key }) : undefined;\n };\n\n const portNumber: Validator = (val: string) => parseInt(val, 10) < 1 || parseInt(val, 10) > 65535 ? t('validation.number.between', {\n key, min: '1', max: '65535'\n }) : undefined;\n\n const dnsChars: Validator = (val: string) => {\n const matchedChars = val?.match(/[^${'A-Za-z0-9-'}]/g);\n\n if (matchedChars) {\n return t('validation.chars', {\n key, count: matchedChars.length, chars: matchedChars.map((char) => char === ' ' ? 'Space' : `\"${ char }\"`).join(', ')\n });\n }\n\n return undefined;\n };\n\n // the weird edge case here deals with internationalized domain names which are prepended with 'xn--'\n // https://datatracker.ietf.org/doc/html/rfc5891#section-4.2.3.1\n const dnsDoubleDash: Validator = (val: string) => (val?.substr(2, 2) === '--' && val?.substr(0, 2) !== 'xn') ? t(`validation.dns.doubleHyphen`, { key }) : undefined;\n\n const dnsIanaServiceNameDoubleDash: Validator = (val: string) => (val?.substr(2, 2) === '--' && val?.substr(0, 2) !== 'xn') ? t(`validation.dns.doubleHyphen`, { key }) : undefined;\n\n const dnsEmpty: ValidatorFactory = (label: string): Validator => (val = '') => val.length === 0 ? t(`validation.dns.${ label }.emptyLabel`, { key, min: 1 }) : undefined;\n\n const dnsTooLong: ValidatorFactory = (label: string, length = 63): Validator => (val = '') => val.length > length ? t(`validation.dns.${ label }.tooLongLabel`, { key, max: length }) : undefined;\n\n // eslint-disable-next-line no-unused-vars\n const hostnameEmpty: Validator = (val = '') => val.length === 0 ? t('validation.dns.hostname.empty', { key }) : undefined;\n\n const hostnameTooLong: Validator = (val = '') => val.length > 253 ? t('validation.dns.hostname.tooLong', { key, max: 253 }) : undefined;\n\n const absolutePath: Validator = (val = '') => val[0] !== '/' && val.length > 0 ? t('validation.path', { key }) : undefined;\n\n const required: Validator = (val: any) => !val && val !== false ? t('validation.required', { key }) : undefined;\n\n const noUpperCase: Validator = (val = '') => val.toLowerCase() !== val ? t('validation.noUpperCase', { key }) : undefined;\n\n const cronSchedule: Validator = (val: string) => {\n try {\n cronScheduleRule.validation(val);\n } catch (e) {\n return t(cronScheduleRule.message);\n }\n };\n\n const https: Validator = (val: string) => val && !isHttps(val) ? t('validation.setting.serverUrl.https') : undefined;\n\n const localhost: Validator = (val: string) => isLocalhost(val) ? t('validation.setting.serverUrl.localhost') : undefined;\n\n const trailingForwardSlash: Validator = (val: string) => hasTrailingForwardSlash(val) ? t('validation.setting.serverUrl.trailingForwardSlash') : undefined;\n\n const url: Validator = (val: string) => val && !isUrl(val) ? t('validation.setting.serverUrl.url') : undefined;\n\n const gitRepository: Validator = (val: string) => val && !/^((http|git|ssh|http(s)|file|\\/?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@\\:\\/\\-]+)([\\d\\/\\w.-]+?)(.git){0,1}(\\/)?$/gm.test(val) ? t('validation.git.repository') : undefined;\n\n const alphanumeric: Validator = (val: string) => val && !/^[a-zA-Z0-9]+$/.test(val) ? t('validation.alphanumeric', { key }) : undefined;\n\n const interval: Validator = (val: string) => !/^\\d+[hms]$/.test(val) ? t('validation.monitoring.route.interval', { key }) : undefined;\n\n const containerImage: Validator = (val: any) => !val?.image ? t('workload.validation.containerImage', { name: val.name }) : undefined;\n\n const containerImages: Validator = (val: any | [any]) => {\n const containers = val.jobTemplate ? val?.jobTemplate?.spec?.template?.spec?.containers : val?.template?.spec?.containers;\n\n if (!containers || !containers.length) {\n return t('validation.required', { key: t('workload.container.titles.containers') });\n }\n\n // making sure each container has an image name\n return containers.map((container: any) => containerImage(container)).find((containerError: string) => containerError);\n };\n\n const dnsLabel: Validator = (val: string) => {\n const validators = [\n dnsChars,\n startHyphen('label'),\n endHyphen('label'),\n dnsDoubleDash,\n // dnsEmpty('label'), // questionable as to if this is needed if the field is also required...\n dnsTooLong('label')\n ];\n\n return runValidators(val, validators);\n };\n\n const dnsLabelIanaServiceName: Validator = (val: string) => {\n const validators = [\n dnsChars,\n startHyphen('label'),\n endHyphen('label'),\n dnsIanaServiceNameDoubleDash,\n dnsEmpty('label'), // questionable as to if this is needed if the field is also required...\n dnsTooLong('label', 15)\n ];\n\n return runValidators(val, validators);\n };\n\n const dnsLabelRestricted: Validator = (val: string) => {\n const validators = [\n dnsChars,\n startNumber('label'),\n startHyphen('label'),\n endHyphen('label'),\n dnsDoubleDash,\n dnsEmpty('label'), // questionable as to if this is needed if the field is also required...\n dnsTooLong('label')\n ];\n\n return runValidators(val, validators);\n };\n\n const hostname: Validator = (val: string) => {\n if (val) {\n const validators = [\n startDot('hostname'),\n hostnameTooLong,\n endDot('hostname')\n ];\n\n const hostNameMessage = runValidators(val, validators);\n\n if (hostNameMessage) {\n return hostNameMessage;\n }\n\n const labels = val.split('.');\n const labelValidators = [\n dnsChars,\n startHyphen('hostname'),\n endHyphen('hostname'),\n dnsDoubleDash,\n dnsEmpty('hostname'),\n dnsTooLong('hostname')\n ];\n\n for ( let i = 0; i < labels.length; i++ ) {\n const labelMessage = runValidators(labels[i], labelValidators);\n\n if (labelMessage) {\n return labelMessage;\n }\n }\n }\n };\n\n const wildcardHostname: Validator = (val: string) => {\n // allow wildcard in first part of hostname\n val = val ? val.replace(/^\\*\\./, '') : val;\n\n return hostname(val);\n };\n\n const externalName: Validator = (val: string) => {\n if (isEmpty(val)) {\n return t('validation.service.externalName.none');\n } else {\n return hostname(val);\n }\n };\n\n const testRule = (val: string | undefined) => {\n return 'This is an error returned by the testRule validator';\n };\n\n const ruleGroups: Validator = (val: {groups?: any}) => isEmpty(val?.groups) ? t('validation.prometheusRule.groups.required') : undefined;\n\n const clusterName: ValidatorFactory = (isRke2: boolean): Validator => (val: string | undefined) => isRke2 && (val || '')?.match(/^(c-.{5}|local)$/i) ? t('validation.cluster.name') : undefined;\n\n const servicePort: Validator<string | Port | undefined> = (val: ServicePort) => {\n const {\n name,\n idx\n } = val;\n\n const nodePort = new Port(val.nodePort);\n const listeningPort = new Port(val.port);\n const targetPort = new Port(val.targetPort);\n\n if (isEmpty(name)) {\n return t('validation.service.ports.name.required', { position: idx + 1 });\n }\n\n if (!nodePort.empty) {\n if (!nodePort.isInt) {\n return t('validation.service.ports.nodePort.requiredInt', { position: idx + 1 });\n } else if (nodePort.int < 1 || nodePort.int > 65535) {\n return t('validation.service.ports.nodePort.between', { position: idx + 1 });\n }\n }\n\n if (!listeningPort.empty) {\n if (!listeningPort.isInt) {\n return t('validation.service.ports.port.requiredInt', { position: idx + 1 });\n } else if (listeningPort.int < 1 || listeningPort.int > 65535) {\n return t('validation.service.ports.port.between', { position: idx + 1 });\n } else if (listeningPort.string?.includes('.')) {\n return listeningPort;\n }\n } else {\n return t('validation.service.ports.port.required', { position: idx + 1 });\n }\n\n if (!targetPort.empty) {\n if (!targetPort.isInt) {\n const ianaServiceNameErrors = dnsLabelIanaServiceName(targetPort.string);\n\n if (ianaServiceNameErrors) {\n return ianaServiceNameErrors;\n }\n } else if (targetPort.int < 1 || targetPort.int > 65535) {\n return t('validation.service.ports.targetPort.between', { position: idx + 1 });\n }\n } else {\n return t('validation.service.ports.targetPort.required', { position: idx + 1 });\n }\n\n return undefined;\n };\n\n const groupIsValid: Validator = (val, readableIndex) => {\n let returnMessage: string | undefined;\n\n if (isEmpty(val?.name)) {\n return t('validation.prometheusRule.groups.valid.name', { index: readableIndex });\n }\n\n if (isEmpty(val.rules)) {\n return t('validation.prometheusRule.groups.valid.singleEntry', { index: readableIndex });\n } else {\n val.rules.forEach((rule: any, idx: number) => {\n const readableRuleIndex = idx + 1;\n\n if (has(rule, 'alert') && isEmpty(rule?.alert) && !returnMessage) {\n returnMessage = t('validation.prometheusRule.groups.valid.rule.alertName', { groupIndex: readableIndex, ruleIndex: readableRuleIndex });\n } else if (has(rule, 'record') && isEmpty(rule?.record)) {\n returnMessage = t('validation.prometheusRule.groups.valid.rule.recordName', { groupIndex: readableIndex, ruleIndex: readableRuleIndex });\n }\n\n if ((has(rule, 'expr') && isEmpty(rule.expr) && !returnMessage) || (!has(rule, 'expr') && !returnMessage)) {\n returnMessage = t('validation.prometheusRule.groups.valid.rule.expr', { groupIndex: readableIndex, ruleIndex: readableRuleIndex });\n }\n\n if (has(rule, 'alert')) {\n if (\n (has(rule, 'labels') && isEmpty(rule.labels) && !returnMessage) ||\n (!has(rule, 'labels') && !returnMessage)\n ) {\n returnMessage = t('validation.prometheusRule.groups.valid.rule.labels', { groupIndex: readableIndex, ruleIndex: readableRuleIndex });\n }\n }\n });\n }\n\n return returnMessage;\n };\n\n const groupsAreValid: Validator = (val) => {\n const groups = [...val]; // making a new array in the function because I'm gonna mutate it later...\n let message;\n\n groups.forEach((group, idx, arr) => {\n message = groupIsValid(group, idx + 1);\n if (!!message) {\n arr.length = idx + 1; // this is a tricksy way of breaking a forEach loop since we just want the first message\n }\n });\n\n return message;\n };\n\n const matching: Validator = (val) => {\n if (isEmpty(val?.match) && isEmpty(val?.['match_re'])) {\n return t('validation.monitoring.route.match');\n }\n };\n\n const roleTemplateRules: ValidatorFactory = (type): Validator => (val = []) => {\n if (val.some((rule: any) => isEmpty(rule.verbs))) {\n return t('validation.roleTemplate.roleTemplateRules.missingVerb');\n }\n\n if (val.some((rule: any) => rule.resources?.length && rule.nonResourceURLs?.length)) {\n return t('validation.roleTemplate.roleTemplateRules.noResourceAndNonResource');\n }\n\n if (type === RBAC.ROLE) {\n if (val.some((rule: any) => isEmpty(rule.resources))) {\n return t('validation.roleTemplate.roleTemplateRules.missingResource');\n }\n\n if (val.some((rule: any) => isEmpty(rule.apiGroups))) {\n return t('validation.roleTemplate.roleTemplateRules.missingApiGroup');\n }\n } else if (val.some((rule: any) => isEmpty(rule.resources) && isEmpty(rule.nonResourceURLs))) {\n return t('validation.roleTemplate.roleTemplateRules.missingOneResource');\n }\n\n return undefined;\n };\n\n // The existing validator for clusterIp never actually returns an error\n const clusterIp: Validator = (val) => undefined;\n\n const backupTarget: Validator = (val) => {\n const parseValue = JSON.parse(val);\n const type = parseValue.type;\n\n if (!type) {\n return t('validation.required', { key: 'Type' });\n }\n\n if (type === 's3') {\n if (!parseValue.accessKeyId) {\n return t('validation.required', { key: 'accessKeyId' });\n }\n\n if (!parseValue.secretAccessKey) {\n return t('validation.required', { key: 'secretAccessKey' });\n }\n\n if (!parseValue.bucketRegion) {\n return t('validation.required', { key: 'bucketRegion' });\n }\n\n if (!parseValue.bucketName) {\n return t('validation.required', { key: 'bucketName' });\n }\n }\n\n return undefined;\n };\n\n const imageUrl: Validator = (val) => {\n const VM_IMAGE_FILE_FORMAT = ['qcow', 'qcow2', 'raw', 'img', 'iso'];\n\n if (!val || val === '') {\n return undefined;\n }\n\n const urlSlug = val.split('/').pop();\n const fileExtension = urlSlug.split('.').pop().toLowerCase();\n\n if (!VM_IMAGE_FILE_FORMAT.includes(fileExtension)) {\n return t('harvester.validation.image.ruleTip');\n }\n\n return undefined;\n };\n\n const fileRequired: Validator = (val = {}) => {\n if (!val[HCI.IMAGE_NAME]) {\n return t('validation.required', { key: t('harvester.image.fileName') });\n }\n };\n\n const subDomain: Validator = (val) => {\n const matchedChars = val?.match(/[^a-z0-9.-]/g);\n\n if (matchedChars) {\n return t('validation.chars', {\n key, count: matchedChars.length, chars: matchedChars.map((char: string) => char === ' ' ? 'Space' : `\"${ char }\"`).join(', ')\n });\n }\n\n return runValidators(val, [startHyphen('label'), endHyphen('label'), startDot('label'), endDot('label'), required]);\n };\n\n return {\n absolutePath,\n alphanumeric,\n backupTarget,\n betweenLengths,\n betweenValues,\n clusterIp,\n clusterName,\n containerImage,\n containerImages,\n cronSchedule,\n dnsLabel,\n dnsLabelIanaServiceName,\n dnsLabelRestricted,\n externalName,\n fileRequired,\n gitRepository,\n groupsAreValid,\n hostname,\n imageUrl,\n interval,\n https,\n localhost,\n trailingForwardSlash,\n url,\n matching,\n maxLength,\n maxValue,\n minLength,\n minValue,\n noUpperCase,\n portNumber,\n required,\n requiredInt,\n isInteger,\n isPositive,\n isOctal,\n roleTemplateRules,\n ruleGroups,\n servicePort,\n subDomain,\n testRule,\n wildcardHostname\n };\n}\n","export const PRODUCT_NAME = 'harvester';\nexport const BLANK_CLUSTER = '_';\nexport const LOGO = require(`@shell/assets/images/providers/harvester.svg`);\n","export const HCI_SETTING = {\n BACKUP_TARGET: 'backup-target',\n CONTAINERD_REGISTRY: 'containerd-registry',\n LOG_LEVEL: 'log-level',\n SERVER_VERSION: 'server-version',\n UI_INDEX: 'ui-index',\n UI_PLUGIN_INDEX: 'ui-plugin-index',\n UPGRADE_CHECKER_ENABLED: 'upgrade-checker-enabled',\n UPGRADE_CHECKER_URL: 'upgrade-checker-url',\n VLAN: 'vlan',\n UI_SOURCE: 'ui-source',\n UI_PL: 'ui-pl',\n HTTP_PROXY: 'http-proxy',\n ADDITIONAL_CA: 'additional-ca',\n OVERCOMMIT_CONFIG: 'overcommit-config',\n CLUSTER_REGISTRATION_URL: 'cluster-registration-url',\n DEFAULT_STORAGE_CLASS: 'default-storage-class',\n SUPPORT_BUNDLE_TIMEOUT: 'support-bundle-timeout',\n SUPPORT_BUNDLE_EXPIRATION: 'support-bundle-expiration',\n SUPPORT_BUNDLE_IMAGE: 'support-bundle-image',\n SUPPORT_BUNDLE_NODE_COLLECTION_TIMEOUT: 'support-bundle-node-collection-timeout',\n STORAGE_NETWORK: 'storage-network',\n VM_FORCE_RESET_POLICY: 'vm-force-reset-policy',\n SSL_CERTIFICATES: 'ssl-certificates',\n SSL_PARAMETERS: 'ssl-parameters',\n SUPPORT_BUNDLE_NAMESPACES: 'support-bundle-namespaces',\n AUTO_DISK_PROVISION_PATHS: 'auto-disk-provision-paths',\n RELEASE_DOWNLOAD_URL: 'release-download-url',\n CCM_CSI_VERSION: 'harvester-csi-ccm-versions',\n CSI_DRIVER_CONFIG: 'csi-driver-config',\n VM_TERMINATION_PERIOD: 'default-vm-termination-grace-period-seconds',\n NTP_SERVERS: 'ntp-servers',\n AUTO_ROTATE_RKE2_CERTS: 'auto-rotate-rke2-certs',\n KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES: 'kubeconfig-default-token-ttl-minutes',\n LONGHORN_V2_DATA_ENGINE_ENABLED: 'longhorn-v2-data-engine-enabled',\n ADDITIONAL_GUEST_MEMORY_OVERHEAD_RATIO: 'additional-guest-memory-overhead-ratio',\n};\n\nexport const HCI_ALLOWED_SETTINGS = {\n [HCI_SETTING.BACKUP_TARGET]: {\n kind: 'json', from: 'import', canReset: true\n },\n [HCI_SETTING.LOG_LEVEL]: {\n kind: 'enum',\n options: ['info', 'debug', 'trace']\n },\n [HCI_SETTING.VLAN]: {\n kind: 'custom', from: 'import', alias: 'vlan'\n },\n [HCI_SETTING.AUTO_ROTATE_RKE2_CERTS]: {\n kind: 'json',\n from: 'import',\n featureFlag: 'autoRotateRke2CertsSetting'\n },\n [HCI_SETTING.CSI_DRIVER_CONFIG]: { kind: 'json', from: 'import' },\n [HCI_SETTING.SERVER_VERSION]: { readOnly: true },\n [HCI_SETTING.UPGRADE_CHECKER_ENABLED]: { kind: 'boolean' },\n [HCI_SETTING.UPGRADE_CHECKER_URL]: { kind: 'url' },\n [HCI_SETTING.HTTP_PROXY]: { kind: 'json', from: 'import' },\n [HCI_SETTING.ADDITIONAL_CA]: {\n kind: 'multiline', canReset: true, from: 'import'\n },\n [HCI_SETTING.OVERCOMMIT_CONFIG]: { kind: 'json', from: 'import' },\n [HCI_SETTING.SUPPORT_BUNDLE_TIMEOUT]: {},\n [HCI_SETTING.SUPPORT_BUNDLE_EXPIRATION]: {},\n [HCI_SETTING.SUPPORT_BUNDLE_NODE_COLLECTION_TIMEOUT]: { featureFlag: 'supportBundleNodeCollectionTimeoutSetting' },\n [HCI_SETTING.SUPPORT_BUNDLE_IMAGE]: { kind: 'json', from: 'import' },\n [HCI_SETTING.STORAGE_NETWORK]: {\n kind: 'custom', from: 'import', canReset: true\n },\n [HCI_SETTING.VM_FORCE_RESET_POLICY]: { kind: 'json', from: 'import' },\n [HCI_SETTING.SSL_CERTIFICATES]: { kind: 'json', from: 'import' },\n [HCI_SETTING.SSL_PARAMETERS]: {\n kind: 'json', from: 'import', canReset: true\n },\n [HCI_SETTING.SUPPORT_BUNDLE_NAMESPACES]: { from: 'import', canReset: true },\n [HCI_SETTING.AUTO_DISK_PROVISION_PATHS]: { canReset: true },\n [HCI_SETTING.RELEASE_DOWNLOAD_URL]: { kind: 'url' },\n [HCI_SETTING.UI_PLUGIN_INDEX]: { kind: 'url' },\n [HCI_SETTING.CONTAINERD_REGISTRY]: {\n kind: 'json', from: 'import', canReset: true\n },\n [HCI_SETTING.UI_SOURCE]: {\n kind: 'enum',\n options: ['auto', 'external', 'bundled']\n },\n [HCI_SETTING.UI_INDEX]: { kind: 'url' },\n [HCI_SETTING.VM_TERMINATION_PERIOD]: { kind: 'string', from: 'import' },\n [HCI_SETTING.NTP_SERVERS]: {\n kind: 'json', from: 'import', canReset: true\n },\n [HCI_SETTING.KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES]: { featureFlag: 'kubeconfigDefaultTokenTTLMinutesSetting' },\n [HCI_SETTING.LONGHORN_V2_DATA_ENGINE_ENABLED]: {\n kind: 'boolean',\n experimental: true,\n featureFlag: 'longhornV2LVMSupport'\n },\n [HCI_SETTING.ADDITIONAL_GUEST_MEMORY_OVERHEAD_RATIO]: { kind: 'string', from: 'import' },\n};\n\nexport const HCI_SINGLE_CLUSTER_ALLOWED_SETTING = {\n [HCI_SETTING.CLUSTER_REGISTRATION_URL]: {\n kind: 'url',\n canReset: true,\n },\n [HCI_SETTING.UI_PL]: {\n kind: 'custom', from: 'import', alias: 'branding'\n }\n};\n","export const HCI = {\n VM: 'kubevirt.io.virtualmachine',\n VMI: 'kubevirt.io.virtualmachineinstance',\n VMIM: 'kubevirt.io.virtualmachineinstancemigration',\n VM_TEMPLATE: 'harvesterhci.io.virtualmachinetemplate',\n VM_VERSION: 'harvesterhci.io.virtualmachinetemplateversion',\n IMAGE: 'harvesterhci.io.virtualmachineimage',\n SSH: 'harvesterhci.io.keypair',\n VOLUME: 'harvesterhci.io.volume',\n USER: 'harvesterhci.io.user',\n SETTING: 'harvesterhci.io.setting',\n UPGRADE: 'harvesterhci.io.upgrade',\n UPGRADE_LOG: 'harvesterhci.io.upgradelog',\n SCHEDULE_VM_BACKUP: 'harvesterhci.io.schedulevmbackup',\n BACKUP: 'harvesterhci.io.virtualmachinebackup',\n RESTORE: 'harvesterhci.io.virtualmachinerestore',\n NODE_NETWORK: 'network.harvesterhci.io.nodenetwork',\n CLUSTER_NETWORK: 'network.harvesterhci.io.clusternetwork',\n SUPPORT_BUNDLE: 'harvesterhci.io.supportbundle',\n NETWORK_ATTACHMENT: 'harvesterhci.io.networkattachmentdefinition',\n CLUSTER: 'harvesterhci.io.management.cluster',\n DASHBOARD: 'harvesterhci.io.dashboard',\n BLOCK_DEVICE: 'harvesterhci.io.blockdevice',\n CLOUD_TEMPLATE: 'harvesterhci.io.cloudtemplate',\n HOST: 'harvesterhci.io.host',\n VERSION: 'harvesterhci.io.version',\n SNAPSHOT: 'harvesterhci.io.volumesnapshot',\n VM_SNAPSHOT: 'harvesterhci.io.vmsnapshot',\n ALERTMANAGERCONFIG: 'harvesterhci.io.monitoring.alertmanagerconfig',\n CLUSTER_FLOW: 'harvesterhci.io.logging.clusterflow',\n CLUSTER_OUTPUT: 'harvesterhci.io.logging.clusteroutput',\n FLOW: 'harvesterhci.io.logging.flow',\n OUTPUT: 'harvesterhci.io.logging.output',\n STORAGE: 'harvesterhci.io.storage',\n RESOURCE_QUOTA: 'harvesterhci.io.resourcequota',\n KSTUNED: 'node.harvesterhci.io.ksmtuned',\n PCI_DEVICE: 'devices.harvesterhci.io.pcidevice',\n PCI_CLAIM: 'devices.harvesterhci.io.pcideviceclaim',\n SR_IOV: 'devices.harvesterhci.io.sriovnetworkdevice',\n VGPU_DEVICE: 'devices.harvesterhci.io.vgpudevice',\n SR_IOVGPU_DEVICE: 'devices.harvesterhci.io.sriovgpudevice',\n USB_DEVICE: 'devices.harvesterhci.io.usbdevice',\n USB_CLAIM: 'devices.harvesterhci.io.usbdeviceclaim',\n VLAN_CONFIG: 'network.harvesterhci.io.vlanconfig',\n VLAN_STATUS: 'network.harvesterhci.io.vlanstatus',\n ADD_ONS: 'harvesterhci.io.addon',\n LINK_MONITOR: 'network.harvesterhci.io.linkmonitor',\n SECRET: 'harvesterhci.io.secret',\n INVENTORY: 'metal.harvesterhci.io.inventory',\n LB: 'loadbalancer.harvesterhci.io.loadbalancer',\n IP_POOL: 'loadbalancer.harvesterhci.io.ippool',\n HARVESTER_CONFIG: 'rke-machine-config.cattle.io.harvesterconfig',\n LVM_VOLUME_GROUP: 'harvesterhci.io.lvmvolumegroup'\n};\n\nexport const VOLUME_SNAPSHOT = 'snapshot.storage.k8s.io.volumesnapshot';\nexport const CSI_DRIVER = 'storage.k8s.io.csidriver';\nexport const VOLUME_SNAPSHOT_CLASS = 'snapshot.storage.k8s.io.volumesnapshotclass';\n","<script>\nimport { mapGetters } from 'vuex';\nimport { AUTO, CENTER, fitOnScreen } from '@shell/utils/position';\nimport { isAlternate } from '@shell/utils/platform';\nimport IconOrSvg from '@shell/components/IconOrSvg';\n\nconst HIDDEN = 'hide';\nconst CALC = 'calculate';\nconst SHOW = 'show';\n\nexport default {\n name: 'ActionMenu',\n\n emits: ['close'],\n\n components: { IconOrSvg },\n props: {\n customActions: {\n // Custom actions can be used if you need the action\n // menu to work for something that is not a Kubernetes\n // resource, for example, a receiver within an\n // AlertmanagerConfig.\n\n // This prop can also be used to avoid\n // a dependency on Vuex. For now, this component can have\n // its state controlled by either props OR by Vuex, but if it\n // gets unwieldy, it could later be split into two components,\n // one with the dependency on Vuex and one without.\n type: Array,\n default: () => {\n return [];\n }\n },\n open: {\n // Use this prop to show and hide the action menu if\n // you want to avoid an unnecessary dependency on Vuex.\n\n // Note: There are known issues with performance if this component\n // is included with every row of a table, so don't do that.\n // Instead the ActionMenu component can be included once on a page,\n // and then if you click on a list item, that can change\n // the menu's target so that it can open in different locations.\n type: Boolean,\n default: false\n },\n useCustomTargetElement: {\n // The custom target element can be a\n // variable in the component state of a list or detail page\n // if you don't want a dependency on Vuex.\n // Then when an action menu button is clicked, it can emit an event\n // that triggers the target to be set to the clicked element,\n // so that the dropdown menu can open where the context menu\n // was clicked.\n // This flag tells the component to look for and use the\n // custom target element.\n type: Boolean,\n default: false\n },\n customTargetElement: {\n type: HTMLElement,\n default: null\n },\n customTargetEvent: {\n // The event details from the user's click can be used\n // for positioning the menu on the page.\n type: [PointerEvent, MouseEvent],\n default: null\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'action-menu'\n }\n },\n\n data() {\n return { phase: HIDDEN, style: {} };\n },\n\n computed: {\n ...mapGetters({\n // Use either these Vuex getters\n // OR the props to set the action menu state,\n // but don't use both.\n targetElem: 'action-menu/elem',\n targetEvent: 'action-menu/event',\n shouldShow: 'action-menu/showing',\n options: 'action-menu/options'\n }),\n\n showing() {\n return this.phase !== HIDDEN;\n },\n menuOptions() {\n if (this.customActions.length > 0) {\n return this.customActions;\n }\n\n return this.options;\n },\n },\n\n watch: {\n shouldShow: {\n handler(show) {\n if ( show ) {\n this.phase = CALC;\n this.updateStyle();\n this.$nextTick(() => {\n if ( this.phase === CALC ) {\n this.phase = SHOW;\n this.updateStyle();\n }\n });\n } else {\n this.phase = HIDDEN;\n }\n },\n },\n\n open() {\n // This component has a timing issue where the\n // mounted size of the expanded menu is used to\n // calculate where its position should be. That means\n // it won't work if the style is a computed property,\n // so we put a watcher here to update the style instead.\n this.updateStyle();\n },\n\n '$route.path'(val, old) {\n this.hide();\n }\n },\n\n methods: {\n hide() {\n if (this.useCustomTargetElement) {\n // If the show/hide state is controlled\n // by props, emit an event to close the menu.\n this.$emit('close');\n } else {\n // If the show/hide state is controlled\n // by Vuex, mutate the store to close the menu.\n this.$store.commit('action-menu/hide');\n }\n },\n\n updateStyle() {\n if ( this.phase === SHOW && !this.useCustomTargetElement) {\n const menu = this.$el?.querySelector && this.$el.querySelector('.menu');\n const event = this.targetEvent;\n const elem = this.targetElem;\n\n // If the action menu state is controlled with Vuex,\n // use the target element and the target event\n // to position the menu.\n this.style = fitOnScreen(menu, elem || event, {\n overlapX: true,\n fudgeX: elem ? -2 : 0,\n fudgeY: elem ? 20 : 0,\n positionX: (elem ? AUTO : CENTER),\n positionY: AUTO,\n });\n this.style.visibility = 'visible';\n\n return;\n }\n\n if ( this.open && this.useCustomTargetElement) {\n const menu = this.$el?.querySelector && this.$el.querySelector('.menu');\n const elem = this.customTargetElement;\n\n // If the action menu state is controlled with\n // props, use the target element to position the menu.\n this.style = fitOnScreen(menu, elem, {\n overlapX: true,\n fudgeX: elem ? 4 : 0,\n fudgeY: elem ? 4 : 0,\n positionX: (elem ? AUTO : CENTER),\n positionY: AUTO,\n }, true );\n\n this.style.visibility = 'visible';\n\n return;\n }\n\n this.style = {};\n },\n\n execute(action, event, args) {\n if (action.disabled) {\n return;\n }\n\n // this will come from extensions...\n if (action.invoke) {\n const fn = action.invoke;\n\n if (fn && action.enabled) {\n const resources = this.$store.getters['action-menu/resources'];\n const opts = {\n event,\n action,\n isAlt: isAlternate(event)\n };\n\n if (resources.length === 1) {\n fn.apply(this, [opts, resources]);\n }\n }\n } else if (this.useCustomTargetElement) {\n // If the state of this component is controlled\n // by props instead of Vuex, we assume you wouldn't want\n // the mutation to have a dependency on Vuex either.\n // So in that case we use events to execute actions instead.\n // If an action list item is clicked, this\n // component emits that event, then we assume the parent\n // component will execute the action.\n this.$emit(action.action, {\n action,\n event,\n ...args,\n route: this.$route\n });\n } else {\n // If the state of this component is controlled\n // by Vuex, mutate the store when an action is clicked.\n const opts = { alt: isAlternate(event) };\n\n this.$store.dispatch('action-menu/execute', {\n action, args, opts\n });\n }\n\n this.hide();\n },\n\n hasOptions(options) {\n return options.length !== undefined ? options.length : Object.keys(options).length > 0;\n }\n },\n};\n</script>\n\n<template>\n <div v-if=\"showing || open\">\n <div\n class=\"background\"\n @click=\"hide\"\n @contextmenu.prevent\n />\n <ul\n class=\"list-unstyled menu\"\n :style=\"style\"\n >\n <li\n v-for=\"(opt, i) in menuOptions\"\n :key=\"i\"\n :disabled=\"opt.disabled ? true : null\"\n :class=\"{divider: opt.divider}\"\n :data-testid=\"componentTestid + '-' + i + '-item'\"\n :tabindex=\"opt.divider ? -1 : 0\"\n @click=\"execute(opt, $event)\"\n @keyup.enter=\"execute(opt, $event)\"\n @keyup.space=\"execute(opt, $event)\"\n >\n <IconOrSvg\n v-if=\"opt.icon || opt.svg\"\n :icon=\"opt.icon\"\n :src=\"opt.svg\"\n class=\"icon\"\n color=\"header\"\n />\n <span v-clean-html=\"opt.label\" />\n </li>\n\n <li\n v-if=\"!hasOptions(menuOptions)\"\n class=\"no-actions\"\n >\n <span v-t=\"'sortableTable.noActions'\" />\n </li>\n </ul>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .root {\n position: absolute;\n }\n\n .menu {\n position: absolute;\n visibility: hidden;\n top: 0;\n left: 0;\n z-index: z-index('dropdownContent');\n min-width: 145px;\n\n color: var(--dropdown-text);\n background-color: var(--dropdown-bg);\n border: 1px solid var(--dropdown-border);\n border-radius: 5px;\n box-shadow: 0 5px 20px var(--shadow);\n\n LI {\n align-items: center;\n display: flex;\n padding: 8px 10px;\n margin: 0;\n\n &:focus-visible {\n @include focus-outline;\n outline-offset: -2px;\n }\n\n &[disabled] {\n cursor: not-allowed !important;\n color: var(--disabled-text);\n }\n\n &.divider {\n padding: 0;\n border-bottom: 1px solid var(--dropdown-divider);\n }\n\n &:not(.divider):hover {\n background-color: var(--dropdown-hover-bg);\n color: var(--dropdown-hover-text);\n cursor: pointer;\n }\n\n .icon {\n display: unset;\n width: 14px;\n text-align: center;\n margin-right: 8px;\n }\n\n &.no-actions {\n color: var(--disabled-text);\n }\n\n &.no-actions:hover {\n background-color: initial;\n color: var(--disabled-text);\n cursor: default;\n }\n }\n }\n\n .background {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n opacity: 0;\n z-index: z-index('dropdownOverlay');\n }\n</style>\n","<script>\n\n/**\n * This component renders the icon in the top level menu.\n * Icon can either be via a font via the 'icon' property or an svg via the 'src' property\n *\n * The trickiness here is that we want the icon to be the correct color - both normally and when hovered\n * For a font icon, this is easy, since we just set the color css property\n * For an svg icon included with the <img> tag this is harder - there is no way to apply css to\n * the svg brought in this way - the workaround is to apply a css filter - in order to do this we\n * need to generate the css filter for the required color - the code for that is in the 'svg-filter' utility\n *\n * We cache filters and css for given colors, so we only generate them once.\n *\n * This makes the code here look complex - but we are essentially generating the css filters\n * and then injecting custom css into the document so that any icons included via svg will\n * show with the desired colors for the theme.\n */\nimport { Solver } from '@shell/utils/svg-filter';\nimport { colorToRgb, mapStandardColors, normalizeHex } from '@shell/utils/color';\n\nconst filterCache = {};\nconst cssCache = {};\n\nconst colors = {\n header: {\n color: '--header-btn-text',\n hover: '--header-btn-text-hover'\n },\n primary: {\n color: '--link',\n hover: '--primary-hover-text'\n }\n};\n\nexport default {\n name: 'IconOrSvg',\n props: {\n src: {\n type: String,\n default: () => undefined,\n },\n icon: {\n type: String,\n default: () => undefined,\n },\n color: {\n type: String,\n default: () => 'primary',\n }\n },\n\n data() {\n return { className: '' };\n },\n\n created() {\n if (this.src) {\n this.setColor();\n }\n },\n\n methods: {\n setColor() {\n const currTheme = this.$store.getters['prefs/theme'];\n let uiColor, hoverColor;\n\n // grab css vars values based on the actual stylesheets, depending on the theme applied\n // use for loops to minimize computation\n for (let i = 0; i < Object.keys(document.styleSheets).length; i++) {\n let found = false;\n const stylesheet = document.styleSheets[i];\n\n if (stylesheet && stylesheet.cssRules) {\n for (let x = 0; x < Object.keys(stylesheet.cssRules).length; x++) {\n const cssRules = stylesheet.cssRules[x];\n\n if (cssRules.selectorText && ((currTheme === 'light' && (cssRules.selectorText.includes('body') || cssRules.selectorText.includes('BODY')) &&\n cssRules.selectorText.includes('.theme-light') && cssRules.style.cssText.includes('--link:')) ||\n (currTheme === 'dark' && cssRules.selectorText.includes('.theme-dark')))) {\n // grab the colors to be used on the icon from the css rules\n uiColor = mapStandardColors(cssRules.style.getPropertyValue(colors[this.color].color).trim());\n hoverColor = mapStandardColors(cssRules.style.getPropertyValue(colors[this.color].hover).trim());\n\n // normalize hex colors (#xxx to #xxxxxx)\n uiColor = normalizeHex(uiColor);\n hoverColor = normalizeHex(hoverColor);\n\n found = true;\n break;\n }\n }\n }\n if (found) {\n break;\n } else {\n continue;\n }\n }\n\n const uiColorRGB = colorToRgb(uiColor);\n const hoverColorRGB = colorToRgb(hoverColor);\n const uiColorStr = `${ uiColorRGB.r }-${ uiColorRGB.g }-${ uiColorRGB.b }`;\n const hoverColorStr = `${ hoverColorRGB.r }-${ hoverColorRGB.g }-${ hoverColorRGB.b }`;\n\n const className = `svg-icon-${ uiColorStr }-${ hoverColorStr }`;\n\n if (!cssCache[className]) {\n let hoverFilter = filterCache[hoverColor];\n\n if (!hoverFilter) {\n const solver = new Solver(hoverColorRGB);\n const res = solver.solve();\n\n hoverFilter = res?.filter;\n filterCache[hoverColor] = hoverFilter;\n }\n\n let mainFilter = filterCache[uiColor];\n\n if (!mainFilter) {\n const solver = new Solver(uiColorRGB);\n const res = solver.solve();\n\n mainFilter = res?.filter;\n filterCache[uiColor] = mainFilter;\n }\n\n // Add stylesheet (added as global styles)\n const styles = `\n img.${ className } {\n ${ mainFilter };\n }\n img.${ className }:hover {\n ${ hoverFilter };\n }\n button:hover > img.${ className } {\n ${ hoverFilter };\n }\n li:hover > img.${ className } {\n ${ hoverFilter };\n }\n a.option:hover > img.${ className } {\n ${ hoverFilter };\n } `;\n\n const styleSheet = document.createElement('style');\n\n styleSheet.innerText = styles;\n document.head.appendChild(styleSheet);\n\n cssCache[className] = true;\n }\n\n this['className'] = className;\n }\n }\n};\n</script>\n\n<template>\n <img\n v-if=\"src\"\n :src=\"src\"\n class=\"svg-icon\"\n :class=\"className\"\n >\n <i\n v-else-if=\"icon\"\n class=\"icon group-icon\"\n :class=\"icon\"\n />\n <i\n v-else\n class=\"icon icon-extension\"\n />\n</template>\n\n<style lang=\"scss\" scoped>\n .svg-icon {\n height: 24px;\n width: 24px;\n }\n</style>\n","'use strict';\n\n// Utilities to generate a css filter to give a required color\n\nclass Color {\n constructor(r, g, b) {\n this.set(r, g, b);\n }\n\n toString() {\n return `rgb(${ Math.round(this.r) }, ${ Math.round(this.g) }, ${ Math.round(this.b) })`;\n }\n\n set(r, g, b) {\n this.r = this.clamp(r);\n this.g = this.clamp(g);\n this.b = this.clamp(b);\n }\n\n hueRotate(angle = 0) {\n angle = angle / 180 * Math.PI;\n const sin = Math.sin(angle);\n const cos = Math.cos(angle);\n\n this.multiply([\n 0.213 + cos * 0.787 - sin * 0.213,\n 0.715 - cos * 0.715 - sin * 0.715,\n 0.072 - cos * 0.072 + sin * 0.928,\n 0.213 - cos * 0.213 + sin * 0.143,\n 0.715 + cos * 0.285 + sin * 0.140,\n 0.072 - cos * 0.072 - sin * 0.283,\n 0.213 - cos * 0.213 - sin * 0.787,\n 0.715 - cos * 0.715 + sin * 0.715,\n 0.072 + cos * 0.928 + sin * 0.072,\n ]);\n }\n\n grayscale(value = 1) {\n this.multiply([\n 0.2126 + 0.7874 * (1 - value),\n 0.7152 - 0.7152 * (1 - value),\n 0.0722 - 0.0722 * (1 - value),\n 0.2126 - 0.2126 * (1 - value),\n 0.7152 + 0.2848 * (1 - value),\n 0.0722 - 0.0722 * (1 - value),\n 0.2126 - 0.2126 * (1 - value),\n 0.7152 - 0.7152 * (1 - value),\n 0.0722 + 0.9278 * (1 - value),\n ]);\n }\n\n sepia(value = 1) {\n this.multiply([\n 0.393 + 0.607 * (1 - value),\n 0.769 - 0.769 * (1 - value),\n 0.189 - 0.189 * (1 - value),\n 0.349 - 0.349 * (1 - value),\n 0.686 + 0.314 * (1 - value),\n 0.168 - 0.168 * (1 - value),\n 0.272 - 0.272 * (1 - value),\n 0.534 - 0.534 * (1 - value),\n 0.131 + 0.869 * (1 - value),\n ]);\n }\n\n saturate(value = 1) {\n this.multiply([\n 0.213 + 0.787 * value,\n 0.715 - 0.715 * value,\n 0.072 - 0.072 * value,\n 0.213 - 0.213 * value,\n 0.715 + 0.285 * value,\n 0.072 - 0.072 * value,\n 0.213 - 0.213 * value,\n 0.715 - 0.715 * value,\n 0.072 + 0.928 * value,\n ]);\n }\n\n multiply(matrix) {\n const newR = this.clamp(this.r * matrix[0] + this.g * matrix[1] + this.b * matrix[2]);\n const newG = this.clamp(this.r * matrix[3] + this.g * matrix[4] + this.b * matrix[5]);\n const newB = this.clamp(this.r * matrix[6] + this.g * matrix[7] + this.b * matrix[8]);\n\n this.r = newR;\n this.g = newG;\n this.b = newB;\n }\n\n brightness(value = 1) {\n this.linear(value);\n }\n\n contrast(value = 1) {\n this.linear(value, -(0.5 * value) + 0.5);\n }\n\n linear(slope = 1, intercept = 0) {\n this.r = this.clamp(this.r * slope + intercept * 255);\n this.g = this.clamp(this.g * slope + intercept * 255);\n this.b = this.clamp(this.b * slope + intercept * 255);\n }\n\n invert(value = 1) {\n this.r = this.clamp((value + this.r / 255 * (1 - 2 * value)) * 255);\n this.g = this.clamp((value + this.g / 255 * (1 - 2 * value)) * 255);\n this.b = this.clamp((value + this.b / 255 * (1 - 2 * value)) * 255);\n }\n\n hsl() {\n // Code taken from https://stackoverflow.com/a/9493060/2688027, licensed under CC BY-SA.\n const r = this.r / 255;\n const g = this.g / 255;\n const b = this.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h = l;\n let s = l;\n\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return {\n h: h * 100,\n s: s * 100,\n l: l * 100,\n };\n }\n\n clamp(value) {\n if (value > 255) {\n value = 255;\n } else if (value < 0) {\n value = 0;\n }\n\n return value;\n }\n}\n\nexport class Solver {\n constructor(rgb) {\n this.target = new Color(rgb.r, rgb.g, rgb.b);\n this.targetHSL = this.target.hsl();\n this.reusedColor = new Color(0, 0, 0);\n }\n\n solve() {\n const result = this.solveNarrow(this.solveWide());\n\n return {\n values: result.values,\n loss: result.loss,\n filter: this.css(result.values),\n };\n }\n\n solveWide() {\n const A = 5;\n const c = 15;\n const a = [60, 180, 18000, 600, 1.2, 1.2];\n\n let best = { loss: Infinity };\n\n for (let i = 0; best.loss > 25 && i < 3; i++) {\n const initial = [50, 20, 3750, 50, 100, 100];\n const result = this.spsa(A, a, c, initial, 1000);\n\n if (result.loss < best.loss) {\n best = result;\n }\n }\n\n return best;\n }\n\n solveNarrow(wide) {\n const A = wide.loss;\n const c = 2;\n const A1 = A + 1;\n const a = [0.25 * A1, 0.25 * A1, A1, 0.25 * A1, 0.2 * A1, 0.2 * A1];\n\n return this.spsa(A, a, c, wide.values, 500);\n }\n\n spsa(A, a, c, values, iters) {\n const alpha = 1;\n const gamma = 0.16666666666666666;\n\n let best = null;\n let bestLoss = Infinity;\n const deltas = new Array(6);\n const highArgs = new Array(6);\n const lowArgs = new Array(6);\n\n for (let k = 0; k < iters; k++) {\n const ck = c / Math.pow(k + 1, gamma);\n\n for (let i = 0; i < 6; i++) {\n deltas[i] = Math.random() > 0.5 ? 1 : -1;\n highArgs[i] = values[i] + ck * deltas[i];\n lowArgs[i] = values[i] - ck * deltas[i];\n }\n\n const lossDiff = this.loss(highArgs) - this.loss(lowArgs);\n\n for (let i = 0; i < 6; i++) {\n const g = lossDiff / (2 * ck) * deltas[i];\n const ak = a[i] / Math.pow(A + k + 1, alpha);\n\n values[i] = fix(values[i] - ak * g, i);\n }\n\n const loss = this.loss(values);\n\n if (loss < bestLoss) {\n best = values.slice(0);\n bestLoss = loss;\n }\n }\n\n return { values: best, loss: bestLoss };\n\n function fix(value, idx) {\n let max = 100;\n\n if (idx === 2 /* saturate */) {\n max = 7500;\n } else if (idx === 4 /* brightness */ || idx === 5 /* contrast */) {\n max = 200;\n }\n\n if (idx === 3 /* hue-rotate */) {\n if (value > max) {\n value %= max;\n } else if (value < 0) {\n value = max + value % max;\n }\n } else if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n\n return value;\n }\n }\n\n loss(filters) {\n // Argument is array of percentages.\n const color = this.reusedColor;\n\n color.set(0, 0, 0);\n\n color.invert(filters[0] / 100);\n color.sepia(filters[1] / 100);\n color.saturate(filters[2] / 100);\n color.hueRotate(filters[3] * 3.6);\n color.brightness(filters[4] / 100);\n color.contrast(filters[5] / 100);\n\n const colorHSL = color.hsl();\n\n return (\n Math.abs(color.r - this.target.r) +\n Math.abs(color.g - this.target.g) +\n Math.abs(color.b - this.target.b) +\n Math.abs(colorHSL.h - this.targetHSL.h) +\n Math.abs(colorHSL.s - this.targetHSL.s) +\n Math.abs(colorHSL.l - this.targetHSL.l)\n );\n }\n\n css(filters) {\n function fmt(idx, multiplier = 1) {\n return Math.round(filters[idx] * multiplier);\n }\n\n return `filter: invert(${ fmt(0) }%) sepia(${ fmt(1) }%) saturate(${ fmt(2) }%) hue-rotate(${ fmt(3, 3.6) }deg) brightness(${ fmt(4) }%) contrast(${ fmt(5) }%);`;\n }\n}\n","import { render } from \"./IconOrSvg.vue?vue&type=template&id=373e6345&scoped=true\"\nimport script from \"./IconOrSvg.vue?vue&type=script&lang=js\"\nexport * from \"./IconOrSvg.vue?vue&type=script&lang=js\"\n\nimport \"./IconOrSvg.vue?vue&type=style&index=0&id=373e6345&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-373e6345\"]])\n\nexport default __exports__","import { render } from \"./ActionMenu.vue?vue&type=template&id=3af780f6&scoped=true\"\nimport script from \"./ActionMenu.vue?vue&type=script&lang=js\"\nexport * from \"./ActionMenu.vue?vue&type=script&lang=js\"\n\nimport \"./ActionMenu.vue?vue&type=style&index=0&id=3af780f6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3af780f6\"]])\n\nexport default __exports__","import { renderSlot as _renderSlot, withModifiers as _withModifiers, mergeProps as _mergeProps, createElementVNode as _createElementVNode, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"data-modal\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock(_Teleport, { to: \"#modals\" }, [\n _createVNode(_Transition, {\n name: \"modal-fade\",\n appear: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: \"modal-overlay\",\n \"data-modal\": _ctx.name,\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.handleClickOutside && _ctx.handleClickOutside(...args)))\n }, [\n _createElementVNode(\"div\", _mergeProps(_ctx.$attrs, {\n ref: \"modalRef\",\n class: [_ctx.customClass, \"modal-container\"],\n style: _ctx.modalStyles,\n onClick: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"stop\"]))\n }), [\n _renderSlot(_ctx.$slots, \"default\")\n ], 16)\n ], 8, _hoisted_1)\n ]),\n _: 3\n })\n ]))\n}","<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'AppModal',\n\n emits: ['close'],\n\n inheritAttrs: false,\n props: {\n /**\n * If set to false, it will not be possible to close modal by clicking on\n * the background or by pressing Esc key.\n */\n clickToClose: {\n type: Boolean,\n default: true,\n },\n /**\n * Width in pixels or percents (50, \"50px\", \"50%\").\n *\n * Supported string values are <number>% and <number>px\n */\n width: {\n type: [Number, String],\n default: 600,\n validator(value) {\n if (typeof value === 'number') {\n return value > 0;\n }\n\n if (typeof value === 'string') {\n return /^(0*(?:[1-9][0-9]*|0)\\.?\\d*)+(px|%)$/.test(value);\n }\n\n return false;\n }\n },\n /**\n * List of class that will be applied to the modal window\n */\n customClass: {\n type: String,\n default: '',\n },\n /**\n * Style that will be applied to the modal window\n */\n styles: {\n type: String,\n default: '',\n },\n /**\n * Name of the modal\n */\n name: {\n type: String,\n default: '',\n }\n },\n computed: {\n modalWidth(): string {\n if (this.isValidWidth(this.width)) {\n const uom = typeof (this.width) === 'number' ? 'px' : '';\n\n return `${ this.width }${ uom }`;\n }\n\n return '600px';\n },\n stylesPropToObj(): object {\n return this.styles.split(';')\n .map((line) => line.trim().split(':'))\n .reduce((lines, [key, val]) => {\n return {\n ...lines,\n [key]: val\n };\n }, { });\n },\n modalStyles(): object {\n return {\n width: this.modalWidth,\n ...this.stylesPropToObj,\n };\n }\n },\n mounted() {\n document.addEventListener('keydown', this.handleEscapeKey);\n },\n beforeUnmount() {\n document.removeEventListener('keydown', this.handleEscapeKey);\n },\n methods: {\n handleClickOutside(event: MouseEvent) {\n if (\n this.clickToClose &&\n this.$refs.modalRef &&\n !(this.$refs.modalRef as HTMLElement).contains(event.target as Node)\n ) {\n this.$emit('close');\n }\n },\n handleEscapeKey(event: KeyboardEvent) {\n if (this.clickToClose && event.key === 'Escape') {\n this.$emit('close');\n }\n },\n isValidWidth(value: number | string) {\n if (typeof value === 'number') {\n return value > 0;\n }\n\n if (typeof value === 'string') {\n return /^(0*(?:[1-9][0-9]*|0)\\.?\\d*)+(px|%)$/.test(value);\n }\n\n return false;\n }\n }\n});\n</script>\n\n<template>\n <teleport to=\"#modals\">\n <transition\n name=\"modal-fade\"\n appear\n >\n <div\n class=\"modal-overlay\"\n :data-modal=\"name\"\n @click=\"handleClickOutside\"\n >\n <div\n v-bind=\"$attrs\"\n ref=\"modalRef\"\n :class=\"customClass\"\n class=\"modal-container\"\n :style=\"modalStyles\"\n @click.stop\n >\n <slot><!--Empty content--></slot>\n </div>\n </div>\n </transition>\n </teleport>\n</template>\n\n<style lang=\"scss\">\n .modal-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: var(--overlay-bg);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 20;\n\n .modal-container {\n background-color: var(--modal-bg);\n border-radius: var(--border-radius);\n max-height: 95vh;\n overflow: auto;\n border: 2px solid var(--modal-border);\n }\n }\n\n .modal-fade-enter-active,\n .modal-fade-leave-active {\n transition: opacity 200ms;\n }\n\n .modal-fade-enter,\n .modal-fade-leave-to {\n opacity: 0;\n }\n</style>\n","import { render } from \"./AppModal.vue?vue&type=template&id=61be4f05&ts=true\"\nimport script from \"./AppModal.vue?vue&type=script&lang=ts\"\nexport * from \"./AppModal.vue?vue&type=script&lang=ts\"\n\nimport \"./AppModal.vue?vue&type=style&index=0&id=61be4f05&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = [\"name\", \"type\", \"disabled\", \"tab-index\", \"data-testid\"]\nconst _hoisted_2 = { key: 2 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_clean_tooltip = _resolveDirective(\"clean-tooltip\")!\n const _directive_clean_html = _resolveDirective(\"clean-html\")!\n\n return (_openBlock(), _createElementBlock(\"button\", {\n ref: \"btn\",\n class: _normalizeClass(_ctx.classes),\n name: _ctx.name,\n type: _ctx.type,\n disabled: _ctx.isDisabled,\n \"tab-index\": _ctx.tabIndex,\n \"data-testid\": _ctx.componentTestid + '-async-button',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.clicked && _ctx.clicked(...args)))\n }, [\n (_ctx.isManualRefresh)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass({'mr-10': _ctx.displayIcon && _ctx.size !== 'sm', 'mr-5': _ctx.displayIcon && _ctx.size === 'sm'})\n }, _toDisplayString(_ctx.t('action.refresh')), 3))\n : _createCommentVNode(\"\", true),\n (_ctx.displayIcon)\n ? _withDirectives((_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass({icon: true, 'icon-lg': true, [_ctx.displayIcon]: true, 'mr-0': _ctx.isManualRefresh})\n }, null, 2)), [\n [_directive_clean_tooltip, _ctx.tooltip]\n ])\n : _createCommentVNode(\"\", true),\n (_ctx.labelAs === 'text' && _ctx.displayLabel)\n ? _withDirectives((_openBlock(), _createElementBlock(\"span\", _hoisted_2, null, 512)), [\n [_directive_clean_tooltip, _ctx.tooltip],\n [_directive_clean_html, _ctx.displayLabel]\n ])\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_1))\n}","<script lang=\"ts\">\nimport { defineComponent, PropType, inject } from 'vue';\nimport typeHelper from '@shell/utils/type-helpers';\n\nexport const ASYNC_BUTTON_STATES = {\n ACTION: 'action',\n WAITING: 'waiting',\n SUCCESS: 'success',\n ERROR: 'error',\n};\n\nconst TEXT = 'text';\nconst TOOLTIP = 'tooltip';\n\nexport type AsyncButtonCallback = (success: boolean) => void;\n\ninterface NonReactiveProps {\n timer: NodeJS.Timeout | undefined;\n}\n\nconst provideProps: NonReactiveProps = { timer: undefined };\n\n// i18n-uses asyncButton.*\nexport default defineComponent({\n props: {\n /**\n * Mode maps to keys in asyncButton.* translations\n */\n mode: {\n type: String,\n default: 'edit',\n },\n delay: {\n type: Number,\n default: 5000,\n },\n\n name: {\n type: String,\n default: null,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n type: {\n type: String as PropType<'button' | 'submit' | 'reset' | undefined>,\n default: 'button'\n },\n tabIndex: {\n type: Number,\n default: null,\n },\n\n actionColor: {\n type: String,\n default: 'role-primary',\n },\n waitingColor: {\n type: String,\n default: 'bg-primary',\n },\n successColor: {\n type: String,\n default: 'bg-success',\n },\n errorColor: {\n type: String,\n default: 'bg-error',\n },\n\n actionLabel: {\n type: String,\n default: null,\n },\n waitingLabel: {\n type: String,\n default: null,\n },\n successLabel: {\n type: String,\n default: null,\n },\n errorLabel: {\n type: String,\n default: null,\n },\n\n icon: {\n type: String,\n default: null,\n },\n labelAs: {\n type: String,\n default: TEXT,\n },\n size: {\n type: String,\n default: '',\n },\n\n currentPhase: {\n type: String,\n default: ASYNC_BUTTON_STATES.ACTION,\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'action-button'\n },\n\n manual: {\n type: Boolean,\n default: false,\n },\n\n },\n\n setup() {\n const timer = inject('timer', provideProps.timer);\n\n return { timer };\n },\n\n emits: ['click'],\n\n data() {\n return { phase: this.currentPhase };\n },\n\n watch: {\n currentPhase(neu) {\n this.phase = neu;\n }\n },\n\n computed: {\n classes(): {btn: boolean, [color: string]: boolean} {\n const key = `${ this.phase }Color`;\n const color = typeHelper.memberOfComponent(this, key);\n\n const out = {\n btn: true,\n [color]: true,\n };\n\n if (this.size) {\n out[`btn-${ this.size }`] = true;\n }\n\n return out;\n },\n\n displayIcon(): string {\n const exists = this.$store.getters['i18n/exists'];\n const t = this.$store.getters['i18n/t'];\n const key = `asyncButton.${ this.mode }.${ this.phase }Icon`;\n const defaultKey = `asyncButton.default.${ this.phase }Icon`;\n\n let out = '';\n\n if ( this.icon ) {\n out = this.icon;\n } else if ( exists(key) ) {\n out = `icon-${ t(key) }`;\n } else if ( exists(defaultKey) ) {\n out = `icon-${ t(defaultKey) }`;\n }\n\n if ( this.isSpinning ) {\n if ( !out ) {\n out = 'icon-spinner';\n }\n\n out += ' icon-spin';\n }\n\n return out;\n },\n\n displayLabel(): string {\n const override = typeHelper.memberOfComponent(this, `${ this.phase }Label`);\n const exists = this.$store.getters['i18n/exists'];\n const t = this.$store.getters['i18n/t'];\n const key = `asyncButton.${ this.mode }.${ this.phase }`;\n const defaultKey = `asyncButton.default.${ this.phase }`;\n\n if ( override ) {\n return override;\n } else if ( exists(key) ) {\n return t(key);\n } else if ( exists(defaultKey) ) {\n return t(defaultKey);\n } else {\n return '';\n }\n },\n\n isSpinning(): boolean {\n return this.phase === ASYNC_BUTTON_STATES.WAITING;\n },\n\n isDisabled(): boolean {\n return this.disabled || this.phase === ASYNC_BUTTON_STATES.WAITING;\n },\n\n isManualRefresh() {\n return this.mode === 'manual-refresh';\n },\n\n tooltip(): { content: string, hideOnTargetClick: boolean} | null {\n if ( this.labelAs === TOOLTIP ) {\n return {\n content: this.displayLabel,\n hideOnTargetClick: false\n };\n }\n\n return null;\n }\n },\n\n beforeUnmount() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n\n methods: {\n clicked() {\n if ( this.isDisabled ) {\n return;\n }\n\n if (this.timer) {\n clearTimeout(this.timer);\n }\n\n // If manual property is set, don't automatically change the button on click\n if (!this.manual) {\n this.phase = ASYNC_BUTTON_STATES.WAITING;\n }\n\n const cb: AsyncButtonCallback = (success) => {\n this.done(success);\n };\n\n this.$emit('click', cb);\n },\n\n done(success: boolean | 'cancelled') {\n if (success === 'cancelled') {\n this.phase = ASYNC_BUTTON_STATES.ACTION;\n } else {\n this.phase = (success ? ASYNC_BUTTON_STATES.SUCCESS : ASYNC_BUTTON_STATES.ERROR );\n this.timer = setTimeout(() => {\n this.timerDone();\n }, this.delay);\n }\n },\n\n timerDone() {\n if ( this.phase === ASYNC_BUTTON_STATES.SUCCESS || this.phase === ASYNC_BUTTON_STATES.ERROR ) {\n this.phase = ASYNC_BUTTON_STATES.ACTION;\n }\n },\n\n focus() {\n (this.$refs.btn as HTMLElement).focus();\n }\n }\n});\n</script>\n\n<template>\n <button\n ref=\"btn\"\n :class=\"classes\"\n :name=\"name\"\n :type=\"type\"\n :disabled=\"isDisabled\"\n :tab-index=\"tabIndex\"\n :data-testid=\"componentTestid + '-async-button'\"\n @click=\"clicked\"\n >\n <span\n v-if=\"isManualRefresh\"\n :class=\"{'mr-10': displayIcon && size !== 'sm', 'mr-5': displayIcon && size === 'sm'}\"\n >{{ t('action.refresh') }}</span>\n <i\n v-if=\"displayIcon\"\n v-clean-tooltip=\"tooltip\"\n :class=\"{icon: true, 'icon-lg': true, [displayIcon]: true, 'mr-0': isManualRefresh}\"\n />\n <span\n v-if=\"labelAs === 'text' && displayLabel\"\n v-clean-tooltip=\"tooltip\"\n v-clean-html=\"displayLabel\"\n />\n </button>\n</template>\n\n<style lang=\"scss\" scoped>\n// refresh mode has icon + text. We need to fix the positioning of the icon and sizing\n.manual-refresh i {\n margin: 0 0 0 8px !important;\n font-size: 1rem !important;\n}\n</style>\n","import { render } from \"./AsyncButton.vue?vue&type=template&id=799da077&scoped=true&ts=true\"\nimport script from \"./AsyncButton.vue?vue&type=script&lang=ts\"\nexport * from \"./AsyncButton.vue?vue&type=script&lang=ts\"\n\nimport \"./AsyncButton.vue?vue&type=style&index=0&id=799da077&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-799da077\"]])\n\nexport default __exports__","<script>\nimport { createPopper } from '@popperjs/core';\nimport { get } from '@shell/utils/object';\nimport isString from 'lodash/isString';\nimport VueSelectOverrides from '@shell/mixins/vue-select-overrides';\n\nexport default {\n emits: ['dd-button-action', 'click-action'],\n\n mixins: [VueSelectOverrides],\n props: {\n buttonLabel: {\n default: '',\n type: String,\n },\n closeOnSelect: {\n default: true,\n type: Boolean\n },\n disabled: {\n default: false,\n type: Boolean,\n },\n // array of option objects containing at least a label and link, but also icon and action are available\n dropdownOptions: {\n // required: true,\n default: () => [],\n type: Array,\n },\n optionKey: {\n default: null,\n type: String,\n },\n optionLabel: {\n default: 'label',\n type: String,\n },\n // sm, null(med), lg - no xs...its so small\n size: {\n default: null,\n type: String,\n },\n value: {\n default: null,\n type: String,\n },\n placement: {\n default: 'bottom-start',\n type: String\n },\n selectable: {\n default: (opt) => {\n if ( opt ) {\n if ( opt.disabled || opt.kind === 'group' || opt.kind === 'divider' || opt.loading ) {\n return false;\n }\n }\n\n return true;\n },\n type: Function\n },\n },\n data() {\n return { focused: false };\n },\n\n methods: {\n withPopper(dropdownList, component, { width }) {\n /**\n * We need to explicitly define the dropdown width since\n * it is usually inherited from the parent with CSS.\n */\n const componentWidth = component.$refs.search.clientWidth;\n const dropWidth = dropdownList.clientWidth;\n\n if (dropWidth < componentWidth) {\n dropdownList.style.width = `${ componentWidth }px`;\n } else {\n dropdownList.style.width = 'min-content';\n }\n\n /**\n * Here we position the dropdownList relative to the $refs.toggle Element.\n *\n * The 'offset' modifier aligns the dropdown so that the $refs.toggle and\n * the dropdownList overlap by 1 pixel.\n *\n * The 'toggleClass' modifier adds a 'drop-up' class to the Vue Select\n * wrapper so that we can set some styles for when the dropdown is placed\n * above.\n */\n const popper = createPopper(component.$refs.toggle, dropdownList, {\n placement: this.placement || 'bottom-start',\n modifiers: [\n {\n name: 'offset',\n options: { offset: [-2, 2] },\n },\n {\n name: 'toggleClass',\n enabled: true,\n phase: 'write',\n fn({ state }) {\n component.$el.setAttribute('x-placement', state.placement);\n },\n },\n ],\n });\n\n /**\n * To prevent memory leaks Popper needs to be destroyed.\n * If you return function, it will be called just before dropdown is removed from DOM.\n */\n return () => popper.destroy();\n },\n ddButtonAction(option) {\n this.focusSearch();\n this.$emit('dd-button-action', option);\n },\n getOptionLabel(option) {\n if (isString(option)) {\n return option;\n }\n\n if (this.$attrs['get-option-label']) {\n return this.$attrs['get-option-label'](option);\n }\n\n if (get(option, this.optionLabel)) {\n if (this.localizedLabel) {\n return this.$store.getters['i18n/t'](get(option, this.optionLabel));\n } else {\n return get(option, this.optionLabel);\n }\n } else {\n return option;\n }\n },\n\n onFocus() {\n return this.onFocusLabeled();\n },\n\n onFocusLabeled() {\n this.focused = true;\n },\n\n onBlur() {\n return this.onBlurLabeled();\n },\n\n onBlurLabeled() {\n this.focused = false;\n },\n\n focusSearch() {\n this.$nextTick(() => {\n const el = this.$refs['button-dropdown'].searchEl;\n\n if ( el ) {\n el.focus();\n }\n });\n },\n get,\n },\n};\n</script>\n\n<template>\n <v-select\n ref=\"button-dropdown\"\n class=\"button-dropdown btn\"\n :class=\"{\n disabled,\n focused,\n }\"\n v-bind=\"$attrs\"\n :append-to-body=\"true\"\n :calculate-position=\"withPopper\"\n :searchable=\"false\"\n :clearable=\"false\"\n :close-on-select=\"closeOnSelect\"\n :filterable=\"false\"\n :modelValue=\"buttonLabel\"\n :options=\"dropdownOptions\"\n :map-keydown=\"mappedKeys\"\n :get-option-key=\"\n (opt) => (optionKey ? get(opt, optionKey) : getOptionLabel(opt))\n \"\n :get-option-label=\"(opt) => getOptionLabel(opt)\"\n :selectable=\"selectable\"\n @search:blur=\"onBlur\"\n @search:focus=\"onFocus\"\n @update:modelValue=\"$emit('click-action', $event)\"\n >\n <template #no-options>\n <slot name=\"no-options\" />\n </template>\n\n <template #selected-option=\"option\">\n <button\n tabindex=\"-1\"\n type=\"button\"\n class=\"dropdown-button-two btn\"\n data-testid=\"dropdown-button\"\n @click=\"ddButtonAction(option)\"\n @focus=\"focusSearch\"\n >\n {{ option.label }}\n </button>\n </template>\n <!-- Pass down templates provided by the caller -->\n <template\n v-for=\"(_, slot) of $slots\"\n #[slot]=\"scope\"\n :key=\"slot\"\n >\n <template v-if=\"slot !== 'selected-option' && typeof $slots[slot] === 'function'\">\n <slot\n :name=\"slot\"\n v-bind=\"scope\"\n />\n </template>\n </template>\n </v-select>\n</template>\n\n<style lang='scss' scoped>\n.button-dropdown.btn-sm {\n :deep() > .vs__dropdown-toggle {\n .vs__actions {\n &:after {\n font-size: 1.6rem;\n }\n }\n }\n}\n.button-dropdown.btn-lg {\n :deep() > .vs__dropdown-toggle {\n .vs__actions {\n &:after {\n font-size: 2.6rem;\n }\n }\n }\n}\n.button-dropdown {\n background: var(--accent-btn);\n border: solid 1px var(--link);\n color: var(--link);\n padding: 0;\n\n &.vs--open :deep() {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n :deep() .vs__dropdown-toggle .vs__actions,\n :deep() .vs__selected-options {\n background: var(--accent-btn-hover);\n }\n :deep() .vs__selected-options .vs__selected button {\n background-color: transparent;\n color: var(--accent-btn-hover-text);\n }\n :deep() .vs__dropdown-toggle .vs__actions {\n &:after {\n color: var(--accent-btn-hover-text);\n }\n }\n }\n\n :deep() > .vs__dropdown-toggle {\n width: 100%;\n display: grid;\n grid-template-columns: 75% 25%;\n border: none;\n background: transparent;\n\n .vs__actions {\n\n &:after {\n color: var(--link);\n line-height: 1;\n }\n }\n }\n\n :deep() .vs__selected-options {\n .vs__selected {\n margin: unset;\n border: none;\n\n button {\n border: none;\n background: transparent;\n color: var(--link);\n }\n }\n .vs__search {\n // if you need to keep the dd open you can toggle these on and off\n // display: none;\n // visibility: hidden;\n position: absolute;\n opacity: 0;\n padding: 0;\n }\n }\n\n :deep() .vs__dropdown-menu {\n min-width: unset;\n width: fit-content;\n }\n}\n</style>\n","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { render } from \"./ButtonDropdown.vue?vue&type=template&id=2ab9ff7a&scoped=true\"\nimport script from \"./ButtonDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./ButtonDropdown.vue?vue&type=script&lang=js\"\n\nimport \"./ButtonDropdown.vue?vue&type=style&index=0&id=2ab9ff7a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2ab9ff7a\"]])\n\nexport default __exports__","<script>\nexport default {\n emits: ['update:value'],\n\n props: {\n value: {\n type: [String, Number, Boolean, Object],\n required: true,\n },\n\n inactiveClass: {\n type: String,\n default: 'bg-disabled',\n },\n\n activeClass: {\n type: String,\n default: 'bg-primary',\n },\n\n options: {\n type: Array,\n required: true,\n },\n\n iconSize: {\n type: String,\n default: null,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n }\n\n },\n\n computed: {\n optionObjects() {\n const value = this.value;\n\n return this.options.map((opt) => {\n let out;\n\n if ( opt && typeof opt === 'object' && typeof opt.value !== 'undefined' ) {\n out = Object.assign({}, opt);\n } else {\n out = { label: opt, value: opt };\n }\n\n const active = value === out.value;\n\n out.class = {\n btn: true,\n [this.inactiveClass]: !active,\n [this.activeClass]: active,\n };\n\n return out;\n });\n },\n },\n\n methods: {\n change(value) {\n this.$emit('update:value', value);\n }\n }\n};\n</script>\n\n<template>\n <div\n v-trim-whitespace\n class=\"btn-group\"\n >\n <button\n v-for=\"(opt,idx) in optionObjects\"\n :key=\"idx\"\n v-clean-tooltip=\"opt.tooltipKey ? t(opt.tooltipKey) : opt.tooltip\"\n :data-testid=\"`button-group-child-${idx}`\"\n type=\"button\"\n :class=\"opt.class\"\n :disabled=\"disabled || opt.disabled\"\n role=\"button\"\n :aria-label=\"opt.labelKey ? t(opt.labelKey) : opt.label\"\n @click=\"change(opt.value)\"\n >\n <slot\n name=\"option\"\n :label=\"opt.label\"\n :value=\"opt.value\"\n >\n <i\n v-if=\"opt.icon\"\n :class=\"{icon: true, [opt.icon]: true, [`icon-${iconSize}`]: !!iconSize }\"\n />\n <t\n v-if=\"opt.labelKey\"\n :k=\"opt.labelKey\"\n />\n <span v-else-if=\"opt.label\">{{ opt.label }}</span>\n </slot>\n </button>\n </div>\n</template>\n","import { render } from \"./ButtonGroup.vue?vue&type=template&id=b6d055ae\"\nimport script from \"./ButtonGroup.vue?vue&type=script&lang=js\"\nexport * from \"./ButtonGroup.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { computed } from 'vue';\n\ntype Props = {\n borderless?: boolean;\n invisible?: boolean;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ButtonMultiAction',\n props: {\n borderless: { type: Boolean },\n invisible: { type: Boolean }\n },\n emits: ['click'],\n setup(__props: any) {\n\n\n\nconst props = __props;\n\nconst buttonClass = computed(() => {\n return {\n borderless: props?.borderless,\n invisible: props?.invisible,\n };\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n type: \"button\",\n class: _normalizeClass([\"btn btn-sm role-multi-action actions\", buttonClass.value]),\n onClick: _cache[0] || (_cache[0] = (e) => _ctx.$emit('click', e))\n }, _cache[1] || (_cache[1] = [\n _createElementVNode(\"i\", { class: \"icon icon-actions\" }, null, -1)\n ]), 2))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ndefineEmits(['click']);\n\ntype Props = {\n borderless?: boolean;\n invisible?: boolean;\n}\n\nconst props = defineProps<Props>();\n\nconst buttonClass = computed(() => {\n return {\n borderless: props?.borderless,\n invisible: props?.invisible,\n };\n});\n</script>\n\n<template>\n <button\n type=\"button\"\n class=\"btn btn-sm role-multi-action actions\"\n :class=\"buttonClass\"\n @click=\"(e: Event) => $emit('click', e)\"\n >\n <i class=\"icon icon-actions\" />\n </button>\n</template>\n\n<style lang=\"scss\" scoped>\n.borderless {\n background-color: transparent;\n border: none;\n\n &:focus-visible {\n @include focus-outline;\n outline-offset: -2px;\n }\n\n &:hover, &:focus {\n background-color: var(--accent-btn);\n box-shadow: none;\n }\n}\n</style>\n","import script from \"./ButtonMultiAction.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ButtonMultiAction.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ButtonMultiAction.vue?vue&type=style&index=0&id=750b8386&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-750b8386\"]])\n\nexport default __exports__","<script>\nimport { KEYMAP } from '@shell/store/prefs';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\n\nexport default {\n name: 'CodeMirror',\n\n emits: ['onReady', 'onInput', 'onChanges', 'onFocus', 'validationChanged'],\n\n props: {\n /**\n * Sets the edit mode for Text Area.\n * @values _EDIT, _VIEW\n */\n mode: {\n type: String,\n default: _EDIT\n },\n value: {\n type: String,\n required: true,\n },\n options: {\n type: Object,\n default: () => {}\n },\n asTextArea: {\n type: Boolean,\n default: false\n },\n showKeyMapBox: {\n type: Boolean,\n default: false\n },\n },\n\n data() {\n return {\n codeMirrorRef: null,\n loaded: false,\n removeKeyMapBox: false,\n hasLintErrors: false,\n };\n },\n\n computed: {\n isDisabled() {\n return this.mode === _VIEW;\n },\n\n combinedOptions() {\n const theme = this.$store.getters['prefs/theme'];\n const keymap = this.$store.getters['prefs/get'](KEYMAP);\n\n const out = {\n // codemirror default options\n tabSize: 2,\n indentWithTabs: false,\n mode: 'yaml',\n keyMap: keymap,\n theme: `base16-${ theme }`,\n lineNumbers: true,\n line: true,\n styleActiveLine: false,\n lineWrapping: true,\n foldGutter: true,\n styleSelectedText: true,\n showCursorWhenSelecting: true,\n autocorrect: false,\n };\n\n if (this.asTextArea) {\n out.lineNumbers = false;\n out.foldGutter = false;\n out.tabSize = 0;\n out.extraKeys = { Tab: false };\n }\n\n Object.assign(out, this.options);\n\n // parent components control lint with a boolean; if linting is enabled, we need to override that boolean with a custom error handler to wire lint errors into dashboard validation\n if (this.options?.lint) {\n out.lint = { onUpdateLinting: this.handleLintErrors };\n }\n\n return out;\n },\n\n keyMapTooltip() {\n if (this.combinedOptions?.keyMap) {\n const name = this.t(`prefs.keymap.${ this.combinedOptions.keyMap }`);\n\n return this.t('codeMirror.keymap.indicatorToolip', { name });\n }\n\n return null;\n },\n\n isNonDefaultKeyMap() {\n return this.combinedOptions?.keyMap !== 'sublime';\n }\n },\n\n created() {\n if (window.__codeMirrorLoader) {\n window.__codeMirrorLoader().then(() => {\n this.loaded = true;\n });\n } else {\n console.error('Code mirror loader not available'); // eslint-disable-line no-console\n }\n },\n\n watch: {\n hasLintErrors(neu) {\n this.$emit('validationChanged', !neu);\n }\n },\n\n methods: {\n /**\n * Codemirror yaml linting uses js-yaml parse\n * it does not distinguish between warnings and errors so we will treat all yaml lint messages as errors\n * other codemirror linters (eg json) will report from, to, severity where severity may be 'warning' or 'error'\n * only 'error' level linting will trigger a validation event from this component\n */\n handleLintErrors(diagnostics = []) {\n const hasLintErrors = diagnostics.filter((d) => !d.severity || d.severity === 'error').length > 0;\n\n this.hasLintErrors = hasLintErrors;\n },\n\n focus() {\n if ( this.$refs.codeMirrorRef ) {\n this.$refs.codeMirrorRef.cminstance.focus();\n }\n },\n\n refresh() {\n if ( this.$refs.codeMirrorRef ) {\n this.$refs.codeMirrorRef.refresh();\n }\n },\n\n onReady(codeMirrorRef) {\n this.$emit('validationChanged', true);\n\n this.$nextTick(() => {\n codeMirrorRef.refresh();\n this.codeMirrorRef = codeMirrorRef;\n });\n this.$emit('onReady', codeMirrorRef);\n },\n\n onInput(newCode) {\n this.$emit('onInput', newCode);\n },\n\n onChanges(codeMirrorRef, changes) {\n this.$emit('onChanges', codeMirrorRef, changes);\n },\n\n onFocus() {\n this.$emit('onFocus', true);\n },\n\n onBlur() {\n this.$emit('onFocus', false);\n },\n\n updateValue(value) {\n if ( this.$refs.codeMirrorRef ) {\n this.$refs.codeMirrorRef.cminstance.doc.setValue(value);\n }\n },\n\n closeKeyMapInfo() {\n this.removeKeyMapBox = true;\n },\n }\n};\n</script>\n\n<template>\n <div\n class=\"code-mirror\"\n :class=\"{['as-text-area']: asTextArea}\"\n >\n <div v-if=\"loaded\">\n <div\n v-if=\"showKeyMapBox && !removeKeyMapBox && keyMapTooltip && isNonDefaultKeyMap\"\n class=\"keymap overlay\"\n >\n <div\n v-clean-tooltip=\"keyMapTooltip\"\n class=\"keymap-indicator\"\n data-testid=\"code-mirror-keymap\"\n @click=\"closeKeyMapInfo\"\n >\n <i class=\"icon icon-keyboard keymap-icon\" />\n <div class=\"close-indicator\">\n <i class=\"icon icon-close icon-sm\" />\n </div>\n </div>\n </div>\n <Codemirror\n ref=\"codeMirrorRef\"\n :value=\"value\"\n :options=\"combinedOptions\"\n :disabled=\"isDisabled\"\n :original-style=\"true\"\n @ready=\"onReady\"\n @input=\"onInput\"\n @changes=\"onChanges\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n />\n </div>\n <div v-else>\n Loading...\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n $code-mirror-animation-time: 0.1s;\n\n .code-mirror {\n &.as-text-area .codemirror-container{\n min-height: 40px;\n position: relative;\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 10px;\n background-color: var(--input-bg);\n border-radius: var(--border-radius);\n border: solid var(--border-width) var(--input-border);\n color: var(--input-text);\n\n &:hover {\n border-color: var(--input-hover-border);\n }\n\n &:focus, &.focus {\n outline: none;\n border-color: var(--outline);\n }\n\n .CodeMirror-wrap pre {\n word-break: break-word;\n }\n .CodeMirror-code {\n .CodeMirror-line {\n &:not(:last-child)>span:after,\n .cm-markdown-single-trailing-space-odd:before,\n .cm-markdown-single-trailing-space-even:before {\n color: var(--muted);\n position: absolute;\n line-height: 20px;\n pointer-events: none;\n }\n &:not(:last-child)>span:after {\n content: '↵';\n margin-left: 2px;\n }\n .cm-markdown-single-trailing-space-odd:before,\n .cm-markdown-single-trailing-space-even:before {\n font-weight: bold;\n content: '·';\n }\n }\n }\n\n .CodeMirror-lines {\n color: var(--input-text);\n padding: 0;\n\n .CodeMirror-line > span > span {\n &.cm-overlay {\n font-family: monospace;\n }\n }\n\n .CodeMirror-line > span {\n font-family: $body-font;\n }\n }\n\n .CodeMirror-sizer {\n min-height: 20px;\n }\n\n .CodeMirror-selected {\n background-color: var(--primary) !important;\n }\n\n .CodeMirror-selectedtext {\n color: var(--primary-text);\n }\n\n .CodeMirror-line::selection,\n .CodeMirror-line > span::selection,\n .CodeMirror-line > span > span::selection {\n color: var(--primary-text);\n background-color: var(--primary);\n }\n\n .CodeMirror-line::-moz-selection,\n .CodeMirror-line > span::-moz-selection,\n .CodeMirror-line > span > span::-moz-selection {\n color: var(--primary-text);\n background-color: var(--primary);\n }\n\n .CodeMirror-gutters .CodeMirror-foldgutter:empty {\n display: none;\n }\n }\n }\n\n .code-mirror {\n position: relative;\n\n .codemirror-container {\n z-index: 0;\n font-size: inherit !important;\n\n //rm no longer extant selector\n .CodeMirror {\n height: initial;\n background: none\n }\n\n .CodeMirror-gutters {\n background: inherit;\n }\n }\n\n .keymap.overlay {\n position: absolute;\n display: flex;\n top: 7px;\n right: 7px;\n z-index: 1;\n cursor: pointer;\n\n .keymap-indicator {\n width: 48px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid transparent;\n color: var(--darker);\n background-color: var(--overlay-bg);\n font-size: 12px;\n\n .close-indicator {\n width: 0;\n\n .icon-close {\n color: var(--primary);\n opacity: 0;\n }\n }\n\n .keymap-icon {\n font-size: 24px;\n opacity: 0.8;\n transition: margin-right $code-mirror-animation-time ease-in-out;\n }\n\n &:hover {\n border: 1px solid var(--primary);\n border-radius: var(--border-radius);;\n\n .close-indicator {\n margin-left: -6px;\n width: auto;\n\n .icon-close {\n opacity: 1;\n transition: opacity $code-mirror-animation-time ease-in-out $code-mirror-animation-time; // Only animate when being shown\n }\n }\n\n .keymap-icon {\n opacity: 0.6;\n margin-right: 10px;\n }\n }\n }\n }\n }\n\n</style>\n","import { render } from \"./CodeMirror.vue?vue&type=template&id=e761bafa\"\nimport script from \"./CodeMirror.vue?vue&type=script&lang=js\"\nexport * from \"./CodeMirror.vue?vue&type=script&lang=js\"\n\nimport \"./CodeMirror.vue?vue&type=style&index=0&id=e761bafa&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport isEmpty from 'lodash/isEmpty';\nimport { createYamlWithOptions } from '@shell/utils/create-yaml';\nimport { clone, get } from '@shell/utils/object';\nimport { SCHEMA, NAMESPACE } from '@shell/config/types';\nimport ResourceYaml from '@shell/components/ResourceYaml';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { mapGetters, mapState, mapActions } from 'vuex';\nimport { stringify, exceptionToErrorsArray } from '@shell/utils/error';\nimport CruResourceFooter from '@shell/components/CruResourceFooter';\n\nimport {\n _EDIT, _VIEW, AS, _YAML, _UNFLAG, SUB_TYPE\n} from '@shell/config/query-params';\n\nimport { BEFORE_SAVE_HOOKS } from '@shell/mixins/child-hook';\nimport Wizard from '@shell/components/Wizard';\n\nexport const CONTEXT_HOOK_EDIT_YAML = 'show-preview-yaml';\n\nexport default {\n\n name: 'CruResource',\n\n emits: ['select-type', 'error', 'cancel', 'finish'],\n\n components: {\n AsyncButton,\n Banner,\n CruResourceFooter,\n ResourceYaml,\n Wizard\n },\n\n props: {\n doneRoute: {\n type: [String, Object],\n default: null\n },\n\n cancelEvent: {\n type: Boolean,\n default: false,\n },\n\n showCancel: {\n type: Boolean,\n default: true\n },\n\n mode: {\n type: String,\n required: true\n },\n\n resource: {\n type: [String, Object],\n required: true\n },\n\n subtypes: {\n type: Array,\n default: () => []\n },\n\n selectedSubtype: {\n type: String,\n default: null\n },\n\n validationPassed: {\n type: Boolean,\n default: true\n },\n\n errors: {\n type: Array,\n default: () => []\n },\n\n /**\n * Set of maps to convert error messages to something more user friendly and apply icons\n */\n errorsMap: {\n type: Object,\n default: null\n },\n\n // Is the edit as yaml button allowed\n canYaml: {\n type: Boolean,\n default: true,\n },\n\n // Call this function instead of the normal one to convert the resource into yaml to display\n generateYaml: {\n type: Function,\n default: null,\n },\n\n // Override the set of labels shown on the button from the default save/create.\n finishButtonMode: {\n type: String,\n default: null,\n },\n\n preventEnterSubmit: {\n type: Boolean,\n default: false,\n },\n\n applyHooks: {\n type: Function,\n default: null,\n },\n\n steps: {\n type: Array,\n default: () => []\n },\n\n stepsOptions: {\n type: Object,\n default: () => ({ editFirstStep: true })\n },\n\n // The set of labels to display for the finish AsyncButton\n finishMode: {\n type: String,\n default: 'finish'\n },\n\n // Used to prevent cancel and create buttons from moving\n // as form validation errors appear and disappear.\n minHeight: {\n type: String,\n default: ''\n },\n\n // Location of `namespace` value within the resource. Used when creating the namespace\n namespaceKey: {\n type: String,\n default: 'metadata.namespace'\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'form'\n },\n\n description: {\n type: String,\n default: ''\n },\n\n yamlModifiers: {\n type: Object,\n default: undefined\n }\n },\n\n data(props) {\n const inStore = this.$store.getters['currentStore'](this.resource);\n const schema = this.$store.getters[`${ inStore }/schemaFor`](this.resource.type);\n\n return {\n isCancelModal: false,\n showAsForm: this.$route.query[AS] !== _YAML,\n /**\n * Initialised on demand (given that it needs to make a request to fetch schema definition)\n */\n resourceYaml: null,\n /**\n * Initialised on demand (given that it needs to make a request to fetch schema definition)\n */\n initialYaml: null,\n /**\n * Save a copy of the initial resource. This is used to calc the initial yaml later on\n */\n initialResource: clone(this.resource),\n abbrSizes: {\n 3: '24px',\n 4: '18px',\n 5: '16px',\n 6: '14px'\n },\n schema\n };\n },\n\n computed: {\n canSave() {\n const { validationPassed, showAsForm, steps } = this;\n\n if (showAsForm && steps?.length) {\n return validationPassed && this.steps.every((step) => step.ready);\n }\n\n // Don't apply validation rules if the form is not shown.\n if (!this.showAsForm) {\n return true;\n }\n\n // Disable the save button if there are form validation\n // errors while the user is typing.\n return this.validationPassed;\n },\n\n canEditYaml() {\n return !(this.schema?.resourceMethods?.includes('blocked-PUT'));\n },\n\n showYaml() {\n return this.canYaml && (this._selectedSubtype || !this.subtypes.length) && this.canEditYaml && this.mode !== _VIEW;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isEdit() {\n return this.mode === _EDIT;\n },\n\n _selectedSubtype() {\n if ( this.selectedSubtype ) {\n return this.selectedSubtype;\n }\n\n return this.$route.query[SUB_TYPE];\n },\n\n showSubtypeSelection() {\n if (isEmpty(this.subtypes)) {\n return false;\n }\n\n if (!this._selectedSubtype) {\n return true;\n }\n\n return false;\n },\n\n ...mapGetters({ t: 'i18n/t' }),\n ...mapState('cru-resource', ['createNamespace']),\n ...mapActions('cru-resource', ['setCreateNamespace']),\n\n /**\n * Prevent issues for malformed types injection\n */\n hasErrors() {\n return this.errors?.length && Array.isArray(this.errors);\n },\n\n /**\n * Replace returned string with new picked value and icon\n */\n mappedErrors() {\n return !this.errors ? {} : this.errorsMap || this.errors.reduce((acc, error) => ({\n ...acc,\n [error]: {\n message: error,\n icon: null\n }\n }), {});\n },\n },\n\n created() {\n if ( this._selectedSubtype ) {\n this.$emit('select-type', this._selectedSubtype);\n }\n },\n\n mounted() {\n this.$store.dispatch('cru-resource/setCreateNamespace', false);\n },\n\n beforeUnmount() {\n this.$store.dispatch('cru-resource/setCreateNamespace', false);\n },\n\n methods: {\n stringify,\n\n confirmCancel(isCancelNotBack = true) {\n if (isCancelNotBack) {\n this.emitOrRoute();\n } else if (!this.showAsForm) {\n this.resourceYaml = null;\n this.showAsForm = true;\n this.$router.applyQuery({ [AS]: _UNFLAG });\n }\n },\n\n /**\n * Dismiss given error\n */\n closeError(index) {\n const errors = this.errors.filter((_, i) => i !== index);\n\n this.$emit('error', errors, this.errors[index]);\n },\n\n emitOrRoute() {\n if ( this.cancelEvent ) {\n this.$emit('cancel');\n } else {\n const { resource = this.resource.type } = this.$route.params;\n const doneOverride = this.resource.doneOverride;\n const doneDefault = {\n name: this.doneRoute,\n params: { resource }\n };\n\n this.$router.replace(doneOverride || doneDefault);\n }\n },\n\n async createResourceYaml(modifiers, resource = this.resource) {\n // Required to populate yaml comments and default values\n await this.schema?.fetchResourceFields();\n\n if ( typeof this.generateYaml === 'function' ) {\n return this.generateYaml.apply(this, resource);\n } else {\n const inStore = this.$store.getters['currentStore'](resource);\n const schemas = this.$store.getters[`${ inStore }/all`](SCHEMA);\n const clonedResource = clone(resource);\n\n const out = createYamlWithOptions(schemas, resource.type, clonedResource, modifiers);\n\n return out;\n }\n },\n\n async showPreviewYaml() {\n // Required to populate yaml comments and default values\n await this.schema?.fetchResourceFields();\n\n if ( this.applyHooks ) {\n try {\n await this.applyHooks(BEFORE_SAVE_HOOKS, CONTEXT_HOOK_EDIT_YAML);\n } catch (e) {\n console.warn('Unable to show yaml: ', e); // eslint-disable-line no-console\n\n return;\n }\n }\n\n const resourceYaml = await this.createResourceYaml(this.yamlModifiers);\n\n this.resourceYaml = resourceYaml;\n this.showAsForm = false;\n this.$router.applyQuery({ [AS]: _YAML });\n },\n\n selectType(id, event) {\n if (event?.srcElement?.tagName === 'A') {\n return;\n }\n\n this.$router.applyQuery({ [SUB_TYPE]: id });\n this.$emit('select-type', id);\n },\n\n async clickSave(buttonDone) {\n try {\n await this.createNamespaceIfNeeded();\n\n // If the attempt to create the new namespace\n // is successful, save the resource.\n this.$emit('finish', buttonDone);\n } catch (err) {\n // After the attempt to create the namespace,\n // show any applicable errors if the namespace is\n // invalid.\n this.$emit('error', exceptionToErrorsArray(err.message));\n buttonDone(false);\n }\n },\n\n save() {\n this.$refs.save.clicked();\n },\n\n async createNamespaceIfNeeded() {\n const inStore = this.$store.getters['currentStore'](this.resource);\n const newNamespaceName = get(this.resource, this.namespaceKey);\n let namespaceAlreadyExists = false;\n\n if (!this.createNamespace) {\n return;\n }\n\n try {\n // This is in a try-catch block because the call to fetch\n // a namespace throws an error if the namespace is not found.\n namespaceAlreadyExists = !!(await this.$store.dispatch(`${ inStore }/find`, { type: NAMESPACE, id: newNamespaceName }));\n } catch {}\n\n if (this.createNamespace && !namespaceAlreadyExists) {\n try {\n const newNamespace = await this.$store.dispatch(`${ inStore }/createNamespace`, { name: newNamespaceName }, { root: true });\n\n newNamespace.applyDefaults();\n await newNamespace.save();\n } catch (e) {\n // this.errors = exceptionToErrorsArray(e);\n this.$emit('error', exceptionToErrorsArray(e));\n throw new Error(`Could not create the new namespace. ${ e.message }`);\n }\n }\n },\n\n onPressEnter(event) {\n if (this.preventEnterSubmit) {\n event.preventDefault();\n }\n },\n\n shouldProvideSlot(slot) {\n return slot !== 'default' && typeof this.$slots[slot] === 'function';\n }\n },\n\n watch: {\n async showAsForm(neu) {\n if (!neu) {\n // Entering yaml mode\n if (!this.initialYaml) {\n this.initialYaml = await this.createResourceYaml(undefined, this.initialResource);\n }\n }\n }\n }\n};\n</script>\n\n<template>\n <section class=\"cru\">\n <slot name=\"noticeBanner\" />\n <p\n v-if=\"description\"\n class=\"description\"\n >\n {{ description }}\n </p>\n <component\n :is=\"(isView? 'div' : 'form')\"\n :value=\"resource\"\n data-testid=\"cru-form\"\n class=\"create-resource-container cru__form\"\n @submit.prevent\n @keydown.enter=\"onPressEnter($event)\"\n >\n <div\n v-if=\"hasErrors\"\n id=\"cru-errors\"\n class=\"cru__errors\"\n >\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :data-testid=\"`error-banner${i}`\"\n :label=\"stringify(mappedErrors[err].message)\"\n :icon=\"mappedErrors[err].icon\"\n :closable=\"true\"\n @close=\"closeError(i)\"\n />\n </div>\n <div\n v-if=\"showSubtypeSelection\"\n class=\"subtypes-container cru__content\"\n >\n <slot\n name=\"subtypes\"\n :subtypes=\"subtypes\"\n >\n <div\n v-for=\"(subtype, i) in subtypes\"\n :key=\"i\"\n class=\"subtype-banner\"\n :class=\"{ selected: subtype.id === _selectedSubtype }\"\n :data-testid=\"`subtype-banner-item-${subtype.id}`\"\n @click=\"selectType(subtype.id, $event)\"\n >\n <slot name=\"subtype-content\">\n <div class=\"subtype-container\">\n <div class=\"subtype-logo\">\n <img\n v-if=\"subtype.bannerImage\"\n :src=\"subtype.bannerImage\"\n :alt=\"(resource.type ? resource.type + ': ' : '') + (subtype.label || '')\"\n >\n <div\n v-else\n class=\"round-image\"\n >\n <div\n v-if=\"subtype.bannerAbbrv\"\n class=\"banner-abbrv\"\n >\n <span v-if=\"$store.getters['i18n/exists'](subtype.bannerAbbrv)\">{{ t(subtype.bannerAbbrv) }}</span>\n <span\n v-else\n :style=\"{fontSize: abbrSizes[subtype.bannerAbbrv.length]}\"\n >{{ subtype.bannerAbbrv }}</span>\n </div>\n <div v-else>\n {{ subtype.id.slice(0, 1).toUpperCase() }}\n </div>\n </div>\n </div>\n <div class=\"subtype-body\">\n <div\n class=\"title\"\n :class=\"{'with-description': !!subtype.description}\"\n >\n <h5>\n <span\n v-if=\"$store.getters['i18n/exists'](subtype.label)\"\n v-clean-html=\"t(subtype.label)\"\n />\n <span v-else>{{ subtype.label }}</span>\n </h5>\n <a\n v-if=\"subtype.docLink\"\n :href=\"subtype.docLink\"\n target=\"_blank\"\n rel=\"noopener nofollow\"\n class=\"flex-right\"\n >{{ t('generic.moreInfo') }} <i class=\"icon icon-external-link\" /></a>\n </div>\n <hr v-if=\"subtype.description\">\n <div\n v-if=\"subtype.description\"\n class=\"description\"\n >\n <span\n v-if=\"$store.getters['i18n/exists'](subtype.description)\"\n v-clean-html=\"t(subtype.description, {}, true)\"\n />\n <span v-else>{{ subtype.description }}</span>\n </div>\n </div>\n </div>\n </slot>\n </div>\n </slot>\n </div>\n <!------ MULTI STEP PROCESS ------>\n <template v-if=\"showAsForm && steps.length\">\n <div\n v-if=\"_selectedSubtype || !subtypes.length\"\n class=\"resource-container cru__content cru__content-wizard\"\n >\n <Wizard\n v-if=\"resource\"\n ref=\"Wizard\"\n :header-mode=\"mode\"\n :steps=\"steps\"\n :edit-first-step=\"stepsOptions.editFirstStep\"\n :errors=\"errors\"\n :finish-mode=\"finishMode\"\n class=\"wizard\"\n @error=\"e=>errors = e\"\n >\n <template\n #stepContainer=\"{activeStep}\"\n class=\"step-container\"\n >\n <template\n v-for=\"(step, i) in steps\"\n :key=\"i\"\n >\n <div\n v-if=\"step.name === activeStep.name || step.hidden\"\n :key=\"step.name\"\n class=\"step-container__step\"\n :class=\"{'hide': step.name !== activeStep.name && step.hidden}\"\n >\n <slot\n :step=\"step\"\n :name=\"step.name\"\n />\n </div>\n </template>\n </template>\n <template #controlsContainer=\"{showPrevious, next, back, activeStep, canNext, activeStepIndex, visibleSteps}\">\n <CruResourceFooter\n class=\"cru__footer\"\n :mode=\"mode\"\n :is-form=\"showAsForm\"\n :show-cancel=\"showCancel\"\n @cancel-confirmed=\"confirmCancel\"\n >\n <!-- Pass down templates provided by the caller -->\n <template\n v-for=\"(_, slot) of $slots\"\n #[slot]=\"scope\"\n :key=\"slot\"\n >\n <template v-if=\"shouldProvideSlot(slot)\">\n <slot\n :name=\"slot\"\n v-bind=\"scope\"\n />\n </template>\n </template>\n <div class=\"controls-steps\">\n <button\n v-if=\"showYaml\"\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"showPreviewYaml\"\n >\n <t k=\"cruResource.previewYaml\" />\n </button>\n <template\n v-if=\"showPrevious\"\n name=\"back\"\n >\n <button\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"back()\"\n >\n <t k=\"wizard.previous\" />\n </button>\n </template>\n <template\n v-if=\"activeStepIndex === visibleSteps.length-1\"\n name=\"finish\"\n >\n <AsyncButton\n v-if=\"!showSubtypeSelection && !isView\"\n ref=\"save\"\n :disabled=\"!activeStep.ready\"\n :mode=\"finishButtonMode || mode\"\n @click=\"$emit('finish', $event)\"\n />\n </template>\n <template\n v-else\n name=\"next\"\n >\n <button\n :disabled=\"!canNext\"\n type=\"button\"\n class=\"btn role-primary\"\n @click=\"next()\"\n >\n <t k=\"wizard.next\" />\n </button>\n </template>\n </div>\n </CruResourceFooter>\n </template>\n </Wizard>\n </div>\n </template>\n <!------ SINGLE PROCESS ------>\n <template v-else-if=\"showAsForm\">\n <div\n v-if=\"_selectedSubtype || !subtypes.length\"\n class=\"resource-container cru__content\"\n :style=\"[minHeight ? { 'min-height': minHeight } : {}]\"\n >\n <slot />\n </div>\n <slot name=\"form-footer\">\n <CruResourceFooter\n class=\"cru__footer\"\n :mode=\"mode\"\n :is-form=\"showAsForm\"\n :show-cancel=\"showCancel\"\n :component-testid=\"componentTestid\"\n @cancel-confirmed=\"confirmCancel\"\n >\n <!-- Pass down templates provided by the caller -->\n <template\n v-for=\"(_, slot) of $slots\"\n #[slot]=\"scope\"\n :key=\"slot\"\n >\n <template v-if=\"shouldProvideSlot(slot)\">\n <slot\n :name=\"slot\"\n v-bind=\"scope\"\n />\n </template>\n </template>\n <template\n v-if=\"!isView\"\n #default\n >\n <div>\n <button\n v-if=\"showYaml\"\n :data-testid=\"componentTestid + '-yaml'\"\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"showPreviewYaml\"\n >\n <t k=\"cruResource.previewYaml\" />\n </button>\n <AsyncButton\n v-if=\"!showSubtypeSelection\"\n ref=\"save\"\n :disabled=\"!canSave\"\n :mode=\"finishButtonMode || mode\"\n :data-testid=\"componentTestid + '-save'\"\n @click=\"clickSave($event)\"\n />\n </div>\n </template>\n </CruResourceFooter>\n </slot>\n </template>\n <!------ YAML ------>\n <!-- Hide this section until it's needed. This means we don't need to upfront create initialYaml -->\n <section\n v-else-if=\"showYaml && !showAsForm\"\n class=\"cru-resource-yaml-container resource-container cru__content\"\n >\n <ResourceYaml\n ref=\"resourceyaml\"\n :value=\"resource\"\n :mode=\"mode\"\n :initial-yaml-for-diff=\"initialYaml\"\n :yaml=\"resourceYaml\"\n :offer-preview=\"isEdit\"\n :done-route=\"doneRoute\"\n :done-override=\"resource.doneOverride\"\n :errors=\"errors\"\n :apply-hooks=\"applyHooks\"\n class=\"resource-container cru__content\"\n @error=\"e=>$emit('error', e)\"\n >\n <template #yamlFooter=\"{yamlSave, showPreview, yamlPreview, yamlUnpreview, canDiff}\">\n <slot name=\"cru-yaml-footer\">\n <CruResourceFooter\n class=\"cru__footer\"\n :done-route=\"doneRoute\"\n :mode=\"mode\"\n :is-form=\"showAsForm\"\n @cancel-confirmed=\"confirmCancel\"\n >\n <template #default=\"{checkCancel}\">\n <div class=\"controls-middle\">\n <button\n v-if=\"showPreview\"\n type=\"button\"\n class=\"btn role-secondary\"\n :data-testid=\"componentTestid + '-yaml-yaml'\"\n @click=\"yamlUnpreview\"\n >\n <t k=\"resourceYaml.buttons.continue\" />\n </button>\n <button\n v-if=\"!showPreview && isEdit\"\n :data-testid=\"componentTestid + '-yaml-yaml-preview'\"\n :disabled=\"!canDiff\"\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"yamlPreview\"\n >\n <t k=\"resourceYaml.buttons.diff\" />\n </button>\n </div>\n <div\n v-if=\"_selectedSubtype || !subtypes.length\"\n class=\"controls-right\"\n >\n <button\n :data-testid=\"componentTestid + '-yaml-cancel'\"\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"checkCancel(false)\"\n >\n <t k=\"cruResource.backToForm\" />\n </button>\n <AsyncButton\n v-if=\"!showSubtypeSelection\"\n :data-testid=\"componentTestid + '-yaml-save'\"\n :disabled=\"!canSave\"\n :action-label=\"isEdit ? t('generic.save') : t('generic.create')\"\n @click=\"cb=>yamlSave(cb)\"\n />\n </div>\n </template>\n </CruResourceFooter>\n </slot>\n </template>\n </ResourceYaml>\n </section>\n </component>\n </section>\n</template>\n\n<style lang='scss' scoped>\n.cru-resource-yaml-container {\n .resource-yaml {\n .yaml-editor {\n min-height: 100px;\n }\n }\n}\n.create-resource-container {\n\n .resource-container {\n display: flex; // Ensures content grows in child CruResources\n flex-direction: column;\n }\n\n .subtype-banner {\n .round-image {\n background-color: var(--primary);\n }\n }\n}\n\n$logo: 60px;\n$logo-space: 100px;\n\n.title {\n margin-top: 20px;\n\n &.with-description {\n margin-top: 0;\n }\n}\n\n.subtype-container {\n position: relative;\n display: flex;\n height: 100%;\n};\n\n.subtype-body {\n flex: 1;\n padding: 10px;\n}\n\n.subtype-logo {\n align-items: center;\n display: flex;\n justify-content: center;\n min-width: $logo-space;\n min-height: $logo-space;\n overflow: hidden;\n background-color: var(--box-bg);\n\n img {\n width: $logo - 4px;\n height: $logo - 4px;\n object-fit: contain;\n position: relative;\n top: 2px;\n }\n}\n\nform.create-resource-container .cru {\n &__footer {\n // Only show border when the mode is not view\n border-top: var(--header-border-size) solid var(--header-border);\n }\n}\n.cru {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n\n &__form {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n }\n\n &__content {\n flex-grow: 1;\n &-wizard {\n display: flex;\n }\n }\n\n &__footer {\n right: 0;\n position: sticky;\n bottom: 0;\n background-color: var(--header-bg);\n\n // Overrides outlet padding\n margin-left: -$space-m;\n margin-right: -$space-m;\n margin-bottom: -$space-m;\n padding: $space-s $space-m;\n }\n\n &__errors {\n position: sticky;\n top: 0;\n z-index: 1;\n background-color: var(--header-bg);\n margin: 10px 0;\n }\n}\n\n.description {\n margin-bottom: 15px;\n margin-top: 5px;\n}\n\n</style>\n","<script>\nimport { mapGetters } from 'vuex';\n\nimport AsyncButton from '@shell/components/AsyncButton';\nimport ResourceCancelModal from '@shell/components/ResourceCancelModal';\nimport { _VIEW } from '@shell/config/query-params';\n\nexport default {\n emits: ['cancel-confirmed', 'finish'],\n\n components: { AsyncButton, ResourceCancelModal },\n props: {\n mode: {\n type: String,\n default: 'create',\n },\n\n isForm: {\n type: Boolean,\n default: true,\n },\n\n // Override the set of labels shown on the button from the default save/create.\n finishButtonMode: {\n type: String,\n default: null,\n },\n\n confirmCancelRequired: {\n type: Boolean,\n default: false,\n },\n\n confirmBackRequired: {\n type: Boolean,\n default: true,\n },\n\n showCancel: {\n type: Boolean,\n default: true\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'form-footer'\n }\n },\n\n data() {\n return { isCancelModal: false };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n\n isView() {\n return this.mode === _VIEW;\n },\n },\n\n methods: {\n checkCancel(isCancel) {\n if (isCancel) {\n this.isCancelModal = true;\n } else {\n this.isCancelModal = false;\n }\n this.$refs.cancelModal.show();\n },\n\n confirmCancel(isCancel) {\n this.$emit('cancel-confirmed', isCancel);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"cru-resource-footer\">\n <slot name=\"footer-prefix\" />\n <slot name=\"cancel\">\n <button\n v-if=\"!isView && showCancel\"\n id=\"cru-cancel\"\n :data-testid=\"componentTestid + '-cancel'\"\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"confirmCancelRequired ? checkCancel(true) : $emit('cancel-confirmed', true)\"\n >\n <t k=\"generic.cancel\" />\n </button>\n </slot>\n <slot :checkCancel=\"checkCancel\">\n <AsyncButton\n v-if=\"!isView\"\n :data-testid=\"componentTestid + '-create'\"\n :mode=\"finishButtonMode || mode\"\n @click=\"$emit('finish', $event)\"\n />\n </slot>\n <ResourceCancelModal\n ref=\"cancelModal\"\n :is-cancel-modal=\"isCancelModal\"\n :is-form=\"isForm\"\n @confirm-cancel=\"confirmCancel($event)\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n.cru-resource-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 20px;\n z-index: 40;\n\n .btn {\n margin-left: 20px;\n }\n}\n\n</style>\n","<script>\nimport AppModal from '@shell/components/AppModal.vue';\n\nexport default {\n emits: ['cancel-cancel', 'confirm-cancel'],\n\n components: { AppModal },\n\n props: {\n isCancelModal: {\n type: Boolean,\n default: false\n },\n isForm: {\n type: Boolean,\n default: false\n },\n },\n\n data() {\n return { showModal: false };\n },\n\n watch: {},\n\n methods: {\n show() {\n this.showModal = true;\n },\n\n /**\n * Close the modal, no op\n */\n cancelCancel() {\n this.showModal = false;\n\n this.$emit('cancel-cancel');\n },\n\n /**\n * Close the modal, cancel has been confirmed\n */\n confirmCancel() {\n this.showModal = false;\n\n this.$emit('confirm-cancel', this.isCancelModal);\n },\n }\n};\n</script>\n\n<template>\n <app-modal\n v-if=\"showModal\"\n customClass=\"confirm-modal\"\n name=\"cancel-modal\"\n :width=\"440\"\n height=\"auto\"\n @close=\"cancelCancel\"\n >\n <div class=\"header\">\n <h4 class=\"text-default-text\">\n <t\n v-if=\"isCancelModal\"\n k=\"generic.cancel\"\n />\n <span v-else>{{ t(\"cruResource.backToForm\") }}</span>\n </h4>\n </div>\n <div class=\"body\">\n <p v-if=\"isCancelModal\">\n <t k=\"cruResource.cancelBody\" />\n </p>\n <p v-else>\n <t k=\"cruResource.backBody\" />\n </p>\n </div>\n <div class=\"footer\">\n <button\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"cancelCancel\"\n >\n {{ isForm ? t(\"cruResource.reviewForm\") : t(\"cruResource.reviewYaml\") }}\n </button>\n <button\n type=\"button\"\n class=\"btn role-primary\"\n @click=\"confirmCancel\"\n >\n <span v-if=\"isCancelModal\">{{ t(\"cruResource.confirmCancel\") }}</span>\n <span v-else>{{ t(\"cruResource.confirmBack\") }}</span>\n </button>\n </div>\n </app-modal>\n</template>\n\n<style lang='scss' scoped>\n .confirm-modal {\n .btn {\n margin: 0 10px;\n }\n\n .body {\n min-height: 75px;\n padding: 10px 0 0 15px;\n p {\n margin-top: 10px;\n }\n }\n .header {\n background-color: var(--error);\n padding: 15px 0 0 15px;\n height: 50px;\n\n h4 {\n color: white;\n }\n }\n .footer {\n border-top: 1px solid var(--border);\n text-align: center;\n padding: 10px 0 0 15px;\n height: 60px;\n }\n}\n</style>\n","import { render } from \"./ResourceCancelModal.vue?vue&type=template&id=72d8b215&scoped=true\"\nimport script from \"./ResourceCancelModal.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceCancelModal.vue?vue&type=script&lang=js\"\n\nimport \"./ResourceCancelModal.vue?vue&type=style&index=0&id=72d8b215&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-72d8b215\"]])\n\nexport default __exports__","import { render } from \"./CruResourceFooter.vue?vue&type=template&id=21cdf96a\"\nimport script from \"./CruResourceFooter.vue?vue&type=script&lang=js\"\nexport * from \"./CruResourceFooter.vue?vue&type=script&lang=js\"\n\nimport \"./CruResourceFooter.vue?vue&type=style&index=0&id=21cdf96a&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\n\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { Banner } from '@components/Banner';\nimport Loading from '@shell/components/Loading';\nimport { stringify } from '@shell/utils/error';\nimport LazyImage from '@shell/components/LazyImage';\n\n/*\nWizard accepts an array of steps (see props), and creates named slots for each step.\nIt also contains slots for buttons:\n next\n cancel\n finish\n\nWizard will emit these events:\n next({step})\n cancel\n finish\n*/\n\n// i18n-uses wizard.next, wizard.edit, wizard.create, wizard.view, wizard.finish\nexport default {\n name: 'Wizard',\n\n emits: ['next', 'cancel', 'finish'],\n\n components: {\n AsyncButton,\n Banner,\n Loading,\n LazyImage,\n },\n\n props: {\n /*\n steps need: {\n name: String - this will be the slot name\n label: String - this will appear in the top nav bar below circles\n subtext: String (optional) - If defined, appears below the step number in the banner. If blank, label is used\n ready: Boolean - whether or not the step is completed/wizard is able to go to next step\n if a step has ready=true, the wizard also allows navigation *back* to it\n hidden: Don't show step, though include in DOM (dynamic steps must be in DOM to determine if they will include themselves in wizard)\n loading: Wizard will block until all steps are not loading\n nextButton?: {\n labelKey?: default to `wizard.next`\n style?: defaults to `btn role-primary`\n },\n previousButton: {\n disable: defaults to false\n }\n }\n */\n steps: {\n type: Array,\n required: true\n },\n\n // Initial step to show when Wizard loads.\n initStepIndex: {\n type: Number,\n default: 0\n },\n\n // if true, allow users to navigate back to the first step of the Wizard\n // if false, only way back to step 1 is to cancel and undo all configuration\n editFirstStep: {\n type: Boolean,\n default: false\n },\n\n showBanner: {\n type: Boolean,\n default: true,\n },\n\n // whether or not to show the overall title/image on left of banner header in first step\n initialTitle: {\n type: Boolean,\n default: true\n },\n\n // place the same title (e.g. the type of thing being created by wizard) on every page\n bannerTitle: {\n type: String,\n default: null\n },\n\n // circular image left of banner title\n bannerImage: {\n type: String,\n default: null\n },\n\n bannerTitleSubtext: {\n type: String,\n default: null\n },\n\n // Verb shown in the header, defaults to finishMode\n headerMode: {\n type: String,\n default: null\n },\n\n // The set of labels to display for the finish AsyncButton\n finishMode: {\n type: String,\n default: 'finish'\n },\n\n // Errors to display above the buttons\n errors: {\n type: Array,\n default: null,\n }\n },\n\n data() {\n return { activeStep: null };\n },\n\n computed: {\n errorStrings() {\n return ( this.errors || [] ).map((x) => stringify(x));\n },\n\n activeStepIndex() {\n return this.visibleSteps.findIndex((s) => s.name === this.activeStep.name);\n },\n\n showPrevious() {\n // If on first step...\n if (this.activeStepIndex === 0) {\n return false;\n }\n // .. or any previous step isn't hidden\n for (let stepIndex = 0; stepIndex < this.activeStepIndex; stepIndex++) {\n const step = this.visibleSteps[stepIndex];\n\n if (!step) {\n break;\n }\n if (!step.hidden) {\n return true;\n }\n }\n\n return false;\n },\n\n canPrevious() {\n return !this.activeStep?.previousButton?.disable && (this.activeStepIndex > 1 || this.editFirstStep);\n },\n\n canNext() {\n return (this.activeStepIndex < this.visibleSteps.length - 1) && this.activeStep.ready;\n },\n\n readySteps() {\n return this.visibleSteps.filter((step) => step.ready);\n },\n\n showSteps() {\n return this.activeStep.showSteps !== false && this.visibleSteps.length > 1;\n },\n\n stepsLoaded() {\n return !this.steps.some((step) => step.loading === true);\n },\n\n visibleSteps() {\n return this.steps.filter((step) => !step.hidden);\n },\n\n nextButtonStyle() {\n return this.activeStep.nextButton?.style || `btn role-primary`;\n },\n nextButtonLabel() {\n return this.activeStep.nextButton?.labelKey || `wizard.next`;\n }\n },\n\n watch: {\n stepsLoaded(neu, old) {\n if (!old && neu) {\n this.activeStep = this.visibleSteps[this.initStepIndex];\n this.goToStep(this.activeStepIndex + 1);\n }\n },\n errors() {\n // Ensurce we scroll the errors into view\n this.$nextTick(() => {\n this.$refs.wizard.scrollTop = this.$refs.wizard.scrollHeight;\n });\n }\n },\n\n created() {\n this.activeStep = this.visibleSteps[this.initStepIndex];\n this.goToStep(this.activeStepIndex + 1);\n },\n\n methods: {\n goToStep(number, fromNav) {\n if (number < 1) {\n return;\n }\n\n // if editFirstStep is false, do not allow returning to step 1 (restarting wizard) from top nav\n if (!this.editFirstStep && (number === 1 && fromNav)) {\n return;\n }\n\n const selected = this.visibleSteps[number - 1];\n\n if ( !selected || (!this.isAvailable(selected) && number !== 1)) {\n return;\n }\n\n this.activeStep = selected;\n\n this.$emit('next', { step: selected });\n },\n\n cancel() {\n this.$emit('cancel');\n },\n\n finish(cb) {\n this.$emit('finish', cb);\n },\n\n next() {\n this.goToStep(this.activeStepIndex + 2);\n },\n\n back() {\n this.goToStep(this.activeStepIndex);\n },\n\n // a step is not available if ready=false for any previous steps OR if the editFirstStep=false and it is the first step\n isAvailable(step) {\n if (!step) {\n return false;\n }\n\n const idx = this.visibleSteps.findIndex((s) => s.name === step.name);\n\n if (idx === 0 && !this.editFirstStep) {\n return false;\n }\n\n for (let i = 0; i < idx; i++) {\n if ( this.visibleSteps[i].ready === false ) {\n return false;\n }\n }\n\n return true;\n },\n }\n};\n</script>\n\n<template>\n <div\n ref=\"wizard\"\n class=\"outer-container\"\n >\n <Loading\n v-if=\"!stepsLoaded\"\n mode=\"relative\"\n />\n <!-- Note - Don't v-else this.... the steps need to be included in order to update 'stepsLoaded' -->\n <div\n class=\"outer-container\"\n :class=\"{'hide': !stepsLoaded}\"\n >\n <div class=\"header\">\n <div class=\"title\">\n <div\n v-if=\"showBanner\"\n class=\"top choice-banner\"\n >\n <slot\n v-if=\"!!bannerImage || !!bannerTitle\"\n name=\"bannerTitle\"\n >\n <div\n v-show=\"initialTitle || activeStepIndex > 0\"\n class=\"title\"\n >\n <!-- Logo -->\n <slot name=\"bannerTitleImage\">\n <div\n v-if=\"bannerImage\"\n class=\"round-image\"\n >\n <LazyImage\n :src=\"bannerImage\"\n class=\"logo\"\n />\n </div>\n </slot>\n <!-- Title with subtext -->\n <div class=\"subtitle\">\n <h2 v-if=\"bannerTitle\">\n {{ bannerTitle }}\n </h2>\n <span\n v-if=\"bannerTitleSubtext\"\n class=\"subtext\"\n >{{ bannerTitleSubtext }}</span>\n </div>\n </div>\n </slot>\n <!-- Step number with subtext -->\n <div\n v-if=\"activeStep && showSteps\"\n class=\"subtitle\"\n >\n <h2>{{ !!headerMode ? t(`wizard.${headerMode}`) : t(`asyncButton.${finishMode}.action`) }}: {{ t('wizard.step', {number:activeStepIndex+1}) }}</h2>\n <slot name=\"bannerSubtext\">\n <span\n v-if=\"activeStep.subtext !== null\"\n class=\"subtext\"\n >{{ activeStep.subtext || activeStep.label }}</span>\n </slot>\n </div>\n </div>\n <div class=\"step-sequence\">\n <ul\n v-if=\"showSteps\"\n class=\"steps\"\n tabindex=\"0\"\n @keyup.right.stop=\"selectNext(1)\"\n @keyup.left.stop=\"selectNext(-1)\"\n >\n <template\n v-for=\"(step, idx ) in visibleSteps\"\n :key=\"idx\"\n >\n <li\n\n :id=\"step.name\"\n :class=\"{step: true, active: step.name === activeStep.name, disabled: !isAvailable(step)}\"\n role=\"presentation\"\n >\n <span\n :aria-controls=\"'step' + idx+1\"\n :aria-selected=\"step.name === activeStep.name\"\n role=\"tab\"\n class=\"controls\"\n @click.prevent=\"goToStep(idx+1, true)\"\n >\n <span\n class=\"icon icon-lg\"\n :class=\"{'icon-dot': step.name === activeStep.name, 'icon-dot-open':step.name !== activeStep.name}\"\n />\n <span>\n {{ step.label }}\n </span>\n </span>\n </li>\n <div\n v-if=\"idx!==visibleSteps.length-1\"\n :key=\"step.name\"\n class=\"divider\"\n />\n </template>\n </ul>\n </div>\n </div>\n </div>\n <slot\n class=\"step-container\"\n name=\"stepContainer\"\n :activeStep=\"activeStep\"\n >\n <template\n v-for=\"(step, i) in steps\"\n :key=\"i\"\n >\n <div\n v-if=\"step.name === activeStep.name || step.hidden\"\n :key=\"step.name\"\n class=\"step-container__step\"\n :class=\"{'hide': step.name !== activeStep.name && step.hidden}\"\n >\n <slot\n :step=\"step\"\n :name=\"step.name\"\n />\n </div>\n </template>\n </slot>\n <slot\n name=\"controlsContainer\"\n :showPrevious=\"showPrevious\"\n :next=\"next\"\n :back=\"back\"\n :canNext=\"canNext\"\n :activeStepIndex=\"activeStepIndex\"\n :visibleSteps=\"visibleSteps\"\n :errorStrings=\"errorStrings\"\n :finish=\"finish\"\n :cancel=\"cancel\"\n :activeStep=\"activeStep\"\n >\n <div\n v-for=\"(err,idx) in errorStrings\"\n :key=\"idx\"\n >\n <Banner\n color=\"error\"\n :label=\"err\"\n :closable=\"true\"\n class=\"footer-error\"\n @close=\"errors.splice(idx, 1)\"\n />\n </div>\n <div\n id=\"wizard-footer-controls\"\n class=\"controls-row pt-20\"\n >\n <slot\n name=\"cancel\"\n :cancel=\"cancel\"\n >\n <button\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"cancel\"\n >\n <t k=\"generic.cancel\" />\n </button>\n </slot>\n <div class=\"controls-steps\">\n <slot\n v-if=\"showPrevious\"\n name=\"back\"\n :back=\"back\"\n >\n <button\n :disabled=\"!canPrevious || (!editFirstStep && activeStepIndex===1)\"\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"back()\"\n >\n <t k=\"wizard.previous\" />\n </button>\n </slot>\n <slot\n v-if=\"activeStepIndex === visibleSteps.length-1\"\n name=\"finish\"\n :finish=\"finish\"\n >\n <AsyncButton\n :disabled=\"!activeStep.ready\"\n :mode=\"finishMode\"\n @click=\"finish\"\n />\n </slot>\n <slot\n v-else\n name=\"next\"\n :next=\"next\"\n >\n <button\n :disabled=\"!canNext\"\n type=\"button\"\n :class=\"nextButtonStyle\"\n @click=\"next()\"\n >\n <t :k=\"nextButtonLabel\" />\n </button>\n </slot>\n </div>\n </div>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang='scss' scoped>\n$spacer: 10px;\n\n.outer-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n padding: 0;\n justify-content: flex-start;\n}\n\n.header {\n display: flex;\n align-content: space-between;\n align-items: center;\n margin-bottom: 2*$spacer;\n\n border-bottom: var(--header-border-size) solid var(--header-border);\n\n $minHeight: 60px;\n & > .title {\n flex: 1;\n min-height: $minHeight;\n display: flex;\n }\n .step-sequence {\n flex:1;\n min-height: $minHeight;\n display: flex;\n\n .steps {\n flex: 1;\n margin: 0 30px;\n display:flex;\n justify-content: space-between;\n list-style-type:none;\n padding: 0;\n\n &:focus{\n outline:none;\n box-shadow: none;\n }\n\n & li.step{\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n align-items: center;\n\n & > span > span:last-of-type {\n padding-bottom: 0;\n }\n\n &:last-of-type{\n flex-grow: 0;\n }\n\n & .controls {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 40px;\n overflow: visible;\n padding-top: 7px;\n\n & > span {\n padding-bottom: 3px;\n margin-bottom: 5px;\n white-space: nowrap;\n }\n }\n\n &.active .controls{\n color: var(--primary);\n }\n\n &:not(.disabled){\n & .controls:hover>*{\n color: var(--primary) !important;\n cursor: pointer;\n }\n }\n\n &:not(.active) {\n & .controls>*{\n color: var(--input-disabled-text);\n text-decoration: none;\n }\n }\n }\n\n & .divider {\n flex-basis: 100%;\n border-top: 1px solid var(--border);\n position: relative;\n top: 17px;\n\n .cru__content & {\n top: 13px;\n }\n }\n }\n }\n\n .choice-banner {\n\n flex-basis: 40%;\n display: flex;\n align-items: center;\n margin-bottom: $spacer;\n\n &.selected{\n background-color: var(--accent-btn);\n }\n\n &.top {\n\n H2 {\n margin: 0px;\n }\n\n .title{\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n position: relative;\n\n & > .subtitle {\n margin-right: 20px;\n }\n }\n\n .subtitle{\n display: flex;\n flex-direction: column;\n & .subtext {\n color: var(--input-label);\n }\n }\n\n }\n\n &:not(.top){\n box-shadow: 0px 0px 12px 3px var(--box-bg);\n flex-direction: row;\n align-items: center;\n justify-content: start;\n &:hover{\n outline: var(--outline-width) solid var(--outline);\n cursor: pointer;\n }\n }\n\n & .round-image {\n min-width: 50px;\n height: 50px;\n margin: 10px 10px 10px 0;\n border-radius: 50%;\n overflow: hidden;\n .logo {\n min-width: 50px;\n height: 50px;\n }\n }\n }\n}\n\n.step-container {\n position: relative; // Important for loading indicator in chart's with custom form components\n flex: 1 1 auto;\n height: 0;\n overflow-y: auto;\n padding: 20px 2px 2px 2px; // Handle borders flush against edge\n display: flex;\n flex-direction: column;\n\n &__step {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n}\n\n// We have to account for the absolute position of the .controls-row\n.footer-error {\n margin-top: -40px;\n margin-bottom: 70px;\n}\n\n .controls-row {\n\n // Overrides outlet padding\n margin-left: -$space-m;\n margin-right: -$space-m;\n padding: $space-s $space-m;\n\n display: flex;\n justify-content: space-between;\n padding-top: $spacer;\n\n border-top: var(--header-border-size) solid var(--header-border);\n position: absolute;\n bottom: 0;\n width: 100%;\n background: var(--body-bg);\n .controls-steps {\n\n .btn {\n margin-left: $spacer;\n }\n }\n }\n\n</style>\n","import { render } from \"./Wizard.vue?vue&type=template&id=21be6a33&scoped=true\"\nimport script from \"./Wizard.vue?vue&type=script&lang=js\"\nexport * from \"./Wizard.vue?vue&type=script&lang=js\"\n\nimport \"./Wizard.vue?vue&type=style&index=0&id=21be6a33&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-21be6a33\"]])\n\nexport default __exports__","import { render } from \"./CruResource.vue?vue&type=template&id=820bce44&scoped=true\"\nimport script from \"./CruResource.vue?vue&type=script&lang=js\"\nexport * from \"./CruResource.vue?vue&type=script&lang=js\"\n\nimport \"./CruResource.vue?vue&type=style&index=0&id=820bce44&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-820bce44\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { asciiLike, nlToBr } from '@shell/utils/string';\nimport { HIDE_SENSITIVE } from '@shell/store/prefs';\nimport CopyToClipboard from '@shell/components/CopyToClipboard';\nimport CodeMirror from '@shell/components/CodeMirror';\nimport { binarySize } from '@shell/utils/crypto';\n\nexport default {\n components: { CopyToClipboard, CodeMirror },\n\n props: {\n label: {\n type: String,\n default: null,\n },\n\n labelKey: {\n type: String,\n default: null,\n },\n\n value: {\n type: String,\n default: null,\n },\n\n maxLength: {\n type: Number,\n default: 640, // Ought to be enough for anybody\n },\n\n binary: {\n type: Boolean,\n default: null, // Autodetect\n },\n\n conceal: {\n type: Boolean,\n default: false\n },\n\n monospace: {\n type: Boolean,\n default: true\n },\n\n copy: {\n type: Boolean,\n default: true\n }\n },\n\n data() {\n const expanded = this.value.length <= this.maxLength;\n\n return { expanded };\n },\n\n computed: {\n isBinary() {\n if ( this.binary === null ) {\n return typeof this.value === 'string' && !asciiLike(this.value);\n }\n\n return this.binary;\n },\n\n size() {\n return `${ this.value }`.length;\n },\n\n isLong() {\n return this.size > this.maxLength;\n },\n\n isEmpty() {\n return this.size === 0;\n },\n\n body() {\n if (this.isBinary) {\n return this.t('detailText.binary', { n: this.value.length ? binarySize(this.value) : 0 }, true);\n }\n\n if (this.expanded) {\n return this.value;\n }\n\n return this.value.slice(0, this.maxLength);\n },\n\n jsonStr() {\n const value = this.value;\n\n if ( value && ( value.startsWith('{') || value.startsWith('[') ) ) {\n try {\n let parsed = JSON.parse(value);\n\n parsed = JSON.stringify(parsed, null, 2);\n\n return parsed;\n } catch {\n }\n }\n\n return null;\n },\n\n bodyHtml() {\n // Includes escapeHtml()\n return nlToBr(this.body);\n },\n\n plusMore() {\n if (this.expanded) {\n return this.t('detailText.collapse');\n }\n\n const more = Math.max(this.size - this.maxLength, 0);\n\n return this.t('detailText.plusMore', { n: more }).trim();\n },\n\n hideSensitiveData() {\n return this.$store.getters['prefs/get'](HIDE_SENSITIVE);\n },\n\n concealed() {\n return this.conceal && this.hideSensitiveData && !this.isBinary;\n },\n\n ...mapGetters({ t: 'i18n/t' })\n },\n methods: {\n expand() {\n this.expanded = !this.expanded;\n },\n }\n};\n</script>\n\n<template>\n <div :class=\"{'force-wrap': true, 'with-copy':copy}\">\n <h5\n v-if=\"labelKey\"\n v-t=\"labelKey\"\n />\n <h5 v-else-if=\"label\">\n {{ label }}\n </h5>\n\n <span\n v-if=\"isEmpty\"\n v-t=\"'detailText.empty'\"\n class=\"text-italic\"\n />\n <span\n v-else-if=\"isBinary\"\n class=\"text-italic\"\n >{{ body }}</span>\n\n <CodeMirror\n v-else-if=\"jsonStr\"\n :options=\"{mode:{name:'javascript', json:true}, lineNumbers:false, foldGutter:false, readOnly:true}\"\n :value=\"jsonStr\"\n :class=\"{'conceal': concealed}\"\n />\n\n <span\n v-else\n v-clean-html=\"bodyHtml\"\n data-testid=\"detail-top_html\"\n :class=\"{'conceal': concealed, 'monospace': monospace && !isBinary}\"\n />\n\n <template v-if=\"!isBinary && !jsonStr && isLong && !expanded\">\n <a\n href=\"#\"\n @click.prevent=\"expand\"\n >{{ plusMore }}</a>\n </template>\n\n <CopyToClipboard\n v-if=\"copy && !isBinary\"\n :text=\"value\"\n class=\"role-tertiary\"\n action-color=\"\"\n />\n </div>\n</template>\n\n<style lang='scss' scoped>\n.with-copy {\n border: solid 1px var(--border);\n border-radius: var(--border-radius);\n padding: 10px;\n position: relative;\n background-color: var(--input-bg);\n border-radius: var(--border-radius);\n border: solid var(--border-width) var(--input-border);\n\n > button {\n position: absolute;\n top: -1px;\n right: -1px;\n border-radius: 0 0 0 var(--border-radius);\n }\n}\n\n.monospace {\n white-space: pre-wrap;\n word-wrap: break-all\n}\n</style>\n","<script>\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { copyTextToClipboard } from '@shell/utils/clipboard';\n\nexport default {\n components: { AsyncButton },\n\n props: {\n text: {\n type: String,\n required: true,\n },\n\n showLabel: {\n type: Boolean,\n default: true,\n }\n },\n\n methods: {\n clicked(buttonCb) {\n copyTextToClipboard(this.text).then(() => {\n buttonCb(true);\n }).catch(() => {\n buttonCb(false);\n });\n },\n }\n};\n</script>\n\n<template>\n <AsyncButton\n icon=\"icon-copy\"\n :show-label=\"showLabel\"\n action-label=\"Copy\"\n waiting-label=\"Copying...\"\n success-label=\"Copied!\"\n error-label=\"Error Copying\"\n v-bind=\"$attrs\"\n :delay=\"2000\"\n @click=\"clicked\"\n />\n</template>\n","import { render } from \"./CopyToClipboard.vue?vue&type=template&id=421d1dba\"\nimport script from \"./CopyToClipboard.vue?vue&type=script&lang=js\"\nexport * from \"./CopyToClipboard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./DetailText.vue?vue&type=template&id=348d5cf1&scoped=true\"\nimport script from \"./DetailText.vue?vue&type=script&lang=js\"\nexport * from \"./DetailText.vue?vue&type=script&lang=js\"\n\nimport \"./DetailText.vue?vue&type=style&index=0&id=348d5cf1&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-348d5cf1\"]])\n\nexport default __exports__","<script>\nexport default {\n props: {\n step: {\n type: Number,\n default: null\n }\n }\n};\n</script>\n\n<template>\n <div\n :class=\"{'stepped': !!step}\"\n class=\"info-box\"\n >\n <div\n v-if=\"step\"\n class=\"step-number mb-10\"\n >\n <h2>Step {{ step }}</h2>\n </div>\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .info-box {\n border: 2px solid var(--tabbed-border);\n padding: 10px;\n margin-bottom: 20px;\n border-radius: var(--border-radius);\n flex-grow: 1;\n flex-basis: 0;\n position:relative;\n\n .stepped {\n padding-left: 40px;\n }\n\n .step-number {\n border-radius: var(--border-radius);\n background: var(--secondary);\n color: var(--input-text);\n display: inline-block;\n padding: 5px 10px;\n }\n\n .step-list {\n margin: 0;\n }\n\n .info-column:not(:last-child) {\n border-right: 1px solid var(--tabbed-border);\n }\n .info-row {\n margin-bottom: 10px;\n .info-row-label {\n padding-top: 2px;\n display: inline-block;\n }\n }\n .info-column,\n .info-row {\n label {\n color: var(--input-label);\n }\n }\n\n .info-column {\n .usage {\n margin-bottom: 10px;\n label {\n display: inline-block;\n font-size: 12px;\n padding-top: 6px;\n }\n }\n .flex-item-half {\n align-items: center;\n }\n }\n }\n</style>\n","import { render } from \"./InfoBox.vue?vue&type=template&id=1c5683df&scoped=true\"\nimport script from \"./InfoBox.vue?vue&type=script&lang=js\"\nexport * from \"./InfoBox.vue?vue&type=script&lang=js\"\n\nimport \"./InfoBox.vue?vue&type=style&index=0&id=1c5683df&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1c5683df\"]])\n\nexport default __exports__","<script>\nexport default {\n props: {\n initialSrc: {\n type: String,\n default: require('@shell/assets/images/generic-catalog.svg'),\n },\n\n errorSrc: {\n type: String,\n default: require('@shell/assets/images/generic-catalog.svg'),\n },\n\n src: {\n type: String,\n default: null,\n },\n },\n\n watch: {\n src(neu, old) {\n if (neu !== old) {\n this.loadImage();\n }\n }\n },\n\n mounted() {\n this.loadImage();\n },\n\n beforeUnmount() {\n const img = this.$refs.img;\n\n if (img) {\n img.removeEventListener('error', this.boundError);\n }\n },\n\n methods: {\n // Ensure we load the image when the source changes\n loadImage() {\n const img = this.$refs.img;\n\n if (this.src) {\n img.setAttribute('src', this.src);\n this.boundError = this.onError.bind(this);\n\n img.addEventListener('error', this.boundError);\n }\n },\n\n onError() {\n const img = this.$refs.img;\n\n if (img) {\n img.setAttribute('src', this.errorSrc);\n }\n }\n }\n};\n</script>\n\n<template>\n <img\n ref=\"img\"\n :src=\"initialSrc\"\n v-bind=\"$attrs\"\n >\n</template>\n","import { render } from \"./LazyImage.vue?vue&type=template&id=41f5694f\"\nimport script from \"./LazyImage.vue?vue&type=script&lang=js\"\nexport * from \"./LazyImage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nexport default {\n props: {\n loading: {\n type: Boolean,\n default: true,\n },\n // How to size and position the loading indicator - supports three modes:\n // 'content' - the content area only (not side nav or header)\n // 'main' - entire main view excluding the header, but including the side nav\n // 'relative' - content up to the nearest relatively positioned element\n mode: {\n type: String,\n default: 'content',\n },\n noDelay: {\n type: Boolean,\n default: false,\n }\n },\n\n data() {\n return { timer: null, showMessage: this.noDelay };\n },\n\n mounted() {\n this.timer = setTimeout(() => {\n this.showMessage = true;\n }, 250);\n },\n\n beforeUnmount() {\n clearTimeout(this.timer);\n }\n};\n</script>\n\n<template>\n <div\n v-if=\"loading\"\n class=\"loading-indicator\"\n >\n <div\n v-if=\"showMessage\"\n class=\"overlay\"\n :class=\"{ 'overlay-content-mode' : mode === 'content', 'overlay-main-mode' : mode === 'main' }\"\n >\n <t\n k=\"generic.loading\"\n :raw=\"true\"\n />\n </div>\n </div>\n <div v-else>\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .overlay {\n align-items: center;\n background-color: var(--overlay-bg);\n display: flex;\n justify-content: center;\n position: absolute;\n bottom: 0;\n top: 0;\n left: 0;\n right: 0;\n text-align: center;\n\n // Covers both default `content` mode, an often used `relative` mode and any other value of mode\n z-index: z-index('loading');\n\n &-main-mode {\n top: var(--header-height);\n z-index: z-index('loadingMain');\n }\n\n &-content-mode {\n left: calc(var(--nav-width));\n top: var(--header-height);\n }\n }\n</style>\n","import { render } from \"./Loading.vue?vue&type=template&id=1d9696d1&scoped=true\"\nimport script from \"./Loading.vue?vue&type=script&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&lang=js\"\n\nimport \"./Loading.vue?vue&type=style&index=0&id=1d9696d1&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1d9696d1\"]])\n\nexport default __exports__","<script>\nimport { Card } from '@components/Card';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport AppModal from '@shell/components/AppModal.vue';\n\nexport default {\n name: 'ModalWithCard',\n\n emits: ['close', 'finish'],\n\n components: {\n Card, Banner, AsyncButton, AppModal\n },\n\n props: {\n name: {\n type: String,\n required: true\n },\n\n closeText: {\n type: String,\n default: 'Close'\n },\n\n saveText: {\n type: String,\n default: 'create'\n },\n\n width: {\n type: [String, Number],\n default: '50%'\n },\n\n height: {\n type: [String, Number],\n default: 'auto'\n },\n\n errors: {\n type: Array,\n default: () => {\n return [];\n }\n }\n },\n\n methods: {\n hide() {\n this.$emit('close');\n },\n }\n};\n\n</script>\n\n<template>\n <app-modal\n :name=\"name\"\n :width=\"width\"\n :click-to-close=\"false\"\n :height=\"height\"\n v-bind=\"$attrs\"\n class=\"modal\"\n data-testid=\"mvc__card\"\n @close=\"$emit('finish', $event)\"\n >\n <Card\n class=\"modal\"\n :show-highlight-border=\"false\"\n >\n <template #title>\n <h4 class=\"text-default-text\">\n <slot name=\"title\" />\n </h4>\n </template>\n\n <template #body>\n <slot name=\"content\" />\n\n <div\n v-for=\"(err,idx) in errors\"\n :key=\"idx\"\n >\n <Banner\n class=\"banner\"\n color=\"error\"\n :label=\"err\"\n />\n </div>\n </template>\n\n <template #actions>\n <slot name=\"footer\">\n <div class=\"footer\">\n <button\n class=\"btn role-secondary mr-20\"\n @click.prevent=\"hide\"\n >\n {{ closeText }}\n </button>\n\n <AsyncButton\n :mode=\"saveText\"\n @click=\"$emit('finish', $event)\"\n />\n </div>\n </slot>\n </template>\n </Card>\n </app-modal>\n</template>\n\n<style lang=\"scss\" scoped>\n.footer {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.banner {\n margin-bottom: 0px;\n}\n</style>\n\n<style lang=\"scss\">\n.modal {\n border-radius: var(--border-radius);\n max-height: 100vh;\n\n &.card-container {\n box-shadow: none;\n }\n}\n</style>\n","import { render } from \"./ModalWithCard.vue?vue&type=template&id=0430f766&scoped=true\"\nimport script from \"./ModalWithCard.vue?vue&type=script&lang=js\"\nexport * from \"./ModalWithCard.vue?vue&type=script&lang=js\"\n\nimport \"./ModalWithCard.vue?vue&type=style&index=0&id=0430f766&lang=scss&scoped=true\"\nimport \"./ModalWithCard.vue?vue&type=style&index=1&id=0430f766&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0430f766\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport Favorite from '@shell/components/nav/Favorite';\nimport TypeDescription from '@shell/components/TypeDescription';\nimport { get } from '@shell/utils/object';\nimport { AS, _YAML } from '@shell/config/query-params';\nimport ResourceLoadingIndicator from './ResourceLoadingIndicator';\nimport TabTitle from '@shell/components/TabTitle';\n\n/**\n * Resource List Masthead component.\n */\nexport default {\n\n name: 'MastheadResourceList',\n\n components: {\n Favorite,\n TypeDescription,\n ResourceLoadingIndicator,\n TabTitle\n },\n props: {\n resource: {\n type: String,\n required: true,\n },\n favoriteResource: {\n type: String,\n default: null\n },\n schema: {\n type: Object,\n default: null,\n },\n typeDisplay: {\n type: String,\n default: null,\n },\n isCreatable: {\n type: Boolean,\n default: null,\n },\n isYamlCreatable: {\n type: Boolean,\n default: null,\n },\n createLocation: {\n type: Object,\n default: null,\n },\n yamlCreateLocation: {\n type: Object,\n default: null,\n },\n createButtonLabel: {\n type: String,\n default: null\n },\n loadResources: {\n type: Array,\n default: () => []\n },\n\n loadIndeterminate: {\n type: Boolean,\n default: false\n },\n\n showIncrementalLoadingIndicator: {\n type: Boolean,\n default: false\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'masthead'\n }\n },\n\n data() {\n const params = { ...this.$route.params };\n\n const formRoute = { name: `${ this.$route.name }-create`, params };\n\n const hasEditComponent = this.$store.getters['type-map/hasCustomEdit'](this.resource);\n\n const yamlRoute = {\n name: `${ this.$route.name }-create`,\n params,\n query: { [AS]: _YAML },\n };\n\n return {\n formRoute,\n yamlRoute,\n hasEditComponent,\n };\n },\n\n computed: {\n get,\n ...mapGetters(['isExplorer', 'currentCluster']),\n\n resourceName() {\n if (this.schema) {\n return this.$store.getters['type-map/labelFor'](this.schema);\n }\n\n return this.resource;\n },\n\n _typeDisplay() {\n if ( this.typeDisplay !== null) {\n return this.typeDisplay;\n }\n\n if ( !this.schema ) {\n return '?';\n }\n\n return this.$store.getters['type-map/labelFor'](this.schema, 99);\n },\n\n _isYamlCreatable() {\n if ( this.isYamlCreatable !== null) {\n return this.isYamlCreatable;\n }\n\n return this.schema && this._isCreatable && this.$store.getters['type-map/optionsFor'](this.resource).canYaml;\n },\n\n _isCreatable() {\n // Does not take into account hasEditComponent, such that _isYamlCreatable works\n if ( this.isCreatable !== null) {\n return this.isCreatable;\n }\n\n // blocked-post means you can post through norman, but not through steve.\n if ( this.schema && !this.schema?.collectionMethods.find((x) => ['blocked-post', 'post'].includes(x.toLowerCase())) ) {\n return false;\n }\n\n return this.$store.getters['type-map/optionsFor'](this.resource).isCreatable;\n },\n\n _createLocation() {\n return this.createLocation || this.formRoute;\n },\n\n _yamlCreateLocation() {\n return this.yamlCreateLocation || this.yamlRoute;\n },\n\n _createButtonlabel() {\n return this.createButtonLabel || this.t('resourceList.head.create');\n },\n }\n};\n</script>\n\n<template>\n <header class=\"with-subheader\">\n <slot name=\"typeDescription\">\n <TypeDescription :resource=\"resource\" />\n </slot>\n <div class=\"title\">\n <h1 class=\"m-0\">\n <TabTitle>{{ _typeDisplay }}</TabTitle> <Favorite\n v-if=\"isExplorer\"\n :resource=\"favoriteResource || resource\"\n />\n </h1>\n <ResourceLoadingIndicator\n v-if=\"showIncrementalLoadingIndicator\"\n :resources=\"loadResources\"\n :indeterminate=\"loadIndeterminate\"\n />\n </div>\n <div class=\"sub-header\">\n <slot name=\"subHeader\">\n <!--Slot content-->\n </slot>\n </div>\n <div class=\"actions-container\">\n <slot name=\"actions\">\n <div class=\"actions\">\n <slot name=\"extraActions\" />\n\n <slot name=\"createButton\">\n <router-link\n v-if=\"hasEditComponent && _isCreatable\"\n :to=\"_createLocation\"\n class=\"btn role-primary\"\n :data-testid=\"componentTestid+'-create'\"\n >\n {{ _createButtonlabel }}\n </router-link>\n <router-link\n v-else-if=\"_isYamlCreatable\"\n :to=\"_yamlCreateLocation\"\n class=\"btn role-primary\"\n :data-testid=\"componentTestid+'-create-yaml'\"\n >\n {{ t(\"resourceList.head.createFromYaml\") }}\n </router-link>\n </slot>\n </div>\n </slot>\n </div>\n </header>\n</template>\n\n<style lang=\"scss\" scoped>\n .title {\n align-items: center;\n display: flex;\n h1 {\n margin: 0;\n }\n }\n\n header {\n margin-bottom: 20px;\n }\n\n header.with-subheader {\n grid-template-areas:\n 'type-banner type-banner'\n 'title actions'\n 'sub-header sub-header'\n 'state-banner state-banner';\n }\n\n .sub-header {\n grid-area: sub-header;\n\n a {\n display: inline-block;\n }\n }\n</style>\n","<script>\nexport default {\n props: {\n resource: {\n type: String,\n required: true,\n }\n },\n\n computed: {\n isFavorite() {\n return this.$store.getters['type-map/isFavorite'](this.resource);\n }\n },\n\n methods: {\n toggle() {\n if ( this.isFavorite ) {\n this.$store.dispatch('type-map/removeFavorite', this.resource);\n } else {\n this.$store.dispatch('type-map/addFavorite', this.resource);\n }\n }\n }\n};\n</script>\n\n<template>\n <i\n :tabindex=\"0\"\n :aria-checked=\"!!isFavorite\"\n class=\"favorite icon\"\n :class=\"{'icon-star-open': !isFavorite, 'icon-star': isFavorite}\"\n aria-role=\"button\"\n @click.stop.prevent=\"toggle\"\n @keydown.enter.prevent=\"toggle\"\n @keydown.space.prevent=\"toggle\"\n />\n</template>\n\n<style lang=\"scss\" scoped>\n .favorite {\n position: relative;\n cursor: pointer;\n font-size: 20px;\n transform: ease-in-out-all 1s;\n\n &.icon-star-open {\n color: var(--muted);\n }\n\n &.icon-star-closed {\n color: var(--body-text);\n }\n }\n</style>\n","import { render } from \"./Favorite.vue?vue&type=template&id=f74a378a&scoped=true\"\nimport script from \"./Favorite.vue?vue&type=script&lang=js\"\nexport * from \"./Favorite.vue?vue&type=script&lang=js\"\n\nimport \"./Favorite.vue?vue&type=style&index=0&id=f74a378a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f74a378a\"]])\n\nexport default __exports__","import { render } from \"./Masthead.vue?vue&type=template&id=577fc9fa&scoped=true\"\nimport script from \"./Masthead.vue?vue&type=script&lang=js\"\nexport * from \"./Masthead.vue?vue&type=script&lang=js\"\n\nimport \"./Masthead.vue?vue&type=style&index=0&id=577fc9fa&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-577fc9fa\"]])\n\nexport default __exports__","<script>\nimport { COUNT } from '@shell/config/types';\n\n/**\n * Loading Indicator for resources - used when we are loading resources incrementally, by page\n */\nexport default {\n\n name: 'ResourceLoadingIndicator',\n\n props: {\n resources: {\n type: Array,\n required: true,\n },\n indeterminate: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n const inStore = this.$store.getters['currentStore'](this.resource);\n\n return { inStore };\n },\n\n computed: {\n // Count of rows - either from the data provided or from the rows for the first resource\n rowsCount() {\n if (this.resources.length > 0) {\n const existingData = this.$store.getters[`${ this.inStore }/all`](this.resources[0]) || [];\n\n return (existingData || []).length;\n }\n\n return 0;\n },\n\n // Have we loaded all resources for the types that are needed\n haveAll() {\n return this.resources.reduce((acc, r) => {\n return acc && this.$store.getters[`${ this.inStore }/haveAll`](r);\n }, true);\n },\n\n // Total of all counts of all resources for all of the resources being loaded\n total() {\n const clusterCounts = this.$store.getters[`${ this.inStore }/all`](COUNT);\n\n return this.resources.reduce((acc, r) => {\n const resourceCounts = clusterCounts?.[0]?.counts?.[r];\n const resourceCount = resourceCounts?.summary?.count;\n const count = resourceCount || 0;\n\n return acc + count;\n }, 0);\n },\n\n // Total count of all of the resources for all of the resources being loaded\n count() {\n return this.resources.reduce((acc, r) => {\n return acc + (this.$store.getters[`${ this.inStore }/all`](r) || []).length;\n }, 0);\n },\n\n // Width style to enable the progress bar style presentation\n width() {\n const progress = Math.ceil(100 * (this.count / this.total));\n\n return `${ progress }%`;\n }\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"count && !haveAll\"\n class=\"ml-10 resource-loading-indicator\"\n >\n <div class=\"inner\">\n <div class=\"resource-loader\">\n <div class=\"rl-bg\">\n <i class=\"icon icon-spinner icon-spin\" /><span>{{ t( 'resourceLoadingIndicator.loading' ) }} <span v-if=\"!indeterminate\">{{ count }} / {{ total }}</span></span>\n </div>\n </div>\n <div\n class=\"resource-loader\"\n :style=\"{width}\"\n >\n <div class=\"rl-fg\">\n <i class=\"icon icon-spinner icon-spin\" /><span>{{ t( 'resourceLoadingIndicator.loading' ) }} <span v-if=\"!indeterminate\">{{ count }} / {{ total }}</span></span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .resource-loading-indicator {\n border: 1px solid var(--link);\n border-radius: 10px;\n position: relative;\n width: min-content;\n overflow: hidden;\n\n .resource-loader:last-child {\n position: absolute;\n top: 0;\n\n background-color: var(--link);\n color: var(--link-text);\n overflow: hidden;\n white-space: nowrap;\n }\n\n .resource-loader {\n padding: 1px 10px;\n width: max-content;\n\n .rl-fg, .rl-bg {\n align-content: center;\n display: flex;\n\n > i {\n font-size: 18px;\n line-height: 18px;\n }\n\n > span {\n margin-left: 5px;\n }\n }\n }\n }\n</style>\n","import { render } from \"./ResourceLoadingIndicator.vue?vue&type=template&id=6457c305&scoped=true\"\nimport script from \"./ResourceLoadingIndicator.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceLoadingIndicator.vue?vue&type=script&lang=js\"\n\nimport \"./ResourceLoadingIndicator.vue?vue&type=style&index=0&id=6457c305&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6457c305\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { get } from '@shell/utils/object';\nimport { mapPref, GROUP_RESOURCES } from '@shell/store/prefs';\nimport ButtonGroup from '@shell/components/ButtonGroup';\nimport SortableTable from '@shell/components/SortableTable';\nimport { NAMESPACE, AGE } from '@shell/config/table-headers';\nimport { findBy } from '@shell/utils/array';\nimport { ExtensionPoint, TableColumnLocation } from '@shell/core/types';\nimport { getApplicableExtensionEnhancements } from '@shell/core/plugin-helpers';\n\n// Default group-by in the case the group stored in the preference does not apply\nconst DEFAULT_GROUP = 'namespace';\n\nexport const defaultTableSortGenerationFn = (schema, $store) => {\n if ( !schema ) {\n return null;\n }\n\n const resource = schema.id;\n let sortKey = resource;\n\n const inStore = $store.getters['currentStore'](resource);\n const generation = $store.getters[`${ inStore }/currentGeneration`]?.(resource);\n\n if ( generation ) {\n sortKey += `/${ generation }`;\n }\n\n const nsFilterKey = $store.getters['activeNamespaceCacheKey'];\n\n if ( nsFilterKey ) {\n return `${ sortKey }/${ nsFilterKey }`;\n }\n\n // covers case where we have no current cluster's ns cache\n return sortKey;\n};\n\nexport default {\n\n name: 'ResourceTable',\n\n emits: ['clickedActionButton'],\n\n components: { ButtonGroup, SortableTable },\n\n props: {\n schema: {\n type: Object,\n default: null,\n },\n\n rows: {\n type: Array,\n required: true\n },\n\n loading: {\n type: Boolean,\n required: false\n },\n\n altLoading: {\n type: Boolean,\n required: false\n },\n\n keyField: {\n // Field that is unique for each row.\n type: String,\n default: '_key',\n },\n\n headers: {\n type: Array,\n default: null,\n },\n\n groupBy: {\n type: String,\n default: null\n },\n\n namespaced: {\n type: Boolean,\n default: null, // Automatic from schema\n },\n\n search: {\n // Show search input to filter rows\n type: Boolean,\n default: true\n },\n\n tableActions: {\n // Show bulk table actions\n type: [Boolean, null],\n default: null\n },\n\n pagingLabel: {\n type: String,\n default: 'sortableTable.paging.resource',\n },\n\n /**\n * Additional params to pass to the pagingLabel translation\n */\n pagingParams: {\n type: Object,\n default: null,\n },\n\n rowActions: {\n type: Boolean,\n default: true,\n },\n\n groupable: {\n type: Boolean,\n default: null, // Null: auto based on namespaced and type custom groupings\n },\n\n groupTooltip: {\n type: String,\n default: 'resourceTable.groupBy.namespace',\n },\n\n overflowX: {\n type: Boolean,\n default: false\n },\n overflowY: {\n type: Boolean,\n default: false\n },\n sortGenerationFn: {\n type: Function,\n default: null,\n },\n getCustomDetailLink: {\n type: Function,\n default: null\n },\n ignoreFilter: {\n type: Boolean,\n default: false\n },\n hasAdvancedFiltering: {\n type: Boolean,\n default: false\n },\n advFilterHideLabelsAsCols: {\n type: Boolean,\n default: false\n },\n advFilterPreventFilteringLabels: {\n type: Boolean,\n default: false\n },\n /**\n * Allows for the usage of a query param to work for simple filtering (q)\n */\n useQueryParamsForSimpleFiltering: {\n type: Boolean,\n default: false\n },\n /**\n * Manual force the update of live and delayed cells. Change this number to kick off the update\n */\n forceUpdateLiveAndDelayed: {\n type: Number,\n default: 0\n },\n\n externalPaginationEnabled: {\n type: Boolean,\n default: false\n },\n\n externalPaginationResult: {\n type: Object,\n default: null\n },\n\n rowsPerPage: {\n type: Number,\n default: null, // Default comes from the user preference\n },\n },\n\n mounted() {\n /**\n * v-shortkey prevents the event's propagation:\n * https://github.com/fgr-araujo/vue-shortkey/blob/55d802ea305cadcc2ea970b55a3b8b86c7b44c05/src/index.js#L156-L157\n *\n * 'Enter' key press is handled via event listener in order to allow the event propagation\n */\n window.addEventListener('keyup', this.handleEnterKeyPress);\n },\n\n beforeUnmount() {\n window.removeEventListener('keyup', this.handleEnterKeyPress);\n },\n\n data() {\n // Confirm which store we're in, if schema isn't available we're probably showing a list with different types\n const inStore = this.schema?.id ? this.$store.getters['currentStore'](this.schema.id) : undefined;\n\n return {\n inStore,\n /**\n * Override the sortGenerationFn given changes in the rows we pass through to sortable table\n *\n * Primary purpose is to directly connect an iteration of `rows` with a sortGeneration string. This avoids\n * reactivity issues where `rows` hasn't yet changed but something like workspaces has (stale values stored against fresh key)\n */\n sortGeneration: undefined\n };\n },\n\n watch: {\n filteredRows: {\n handler() {\n // This is only prevalent in fleet world and the workspace switcher\n // - it's singular (a --> b --> c) instead of namespace switchers additive (a --> a+b --> a)\n // - this means it's much more likely to switch between resource sets containing the same mount of rows\n //\n if (this.currentProduct.showWorkspaceSwitcher) {\n this.sortGeneration = this.safeSortGenerationFn(this.schema, this.$store);\n }\n },\n immediate: true\n }\n },\n\n computed: {\n options() {\n return this.$store.getters[`type-map/optionsFor`](this.schema, this.externalPaginationEnabled);\n },\n\n _listGroupMapped() {\n return this.options?.listGroups?.reduce((acc, grp) => {\n acc[grp.value] = grp;\n\n return acc;\n }, {});\n },\n\n _mandatorySort() {\n return this.options?.listMandatorySort;\n },\n\n ...mapGetters(['currentProduct']),\n\n isNamespaced() {\n if ( this.namespaced !== null ) {\n return this.namespaced;\n }\n\n return !!get( this.schema, 'attributes.namespaced');\n },\n\n showNamespaceColumn() {\n const groupNamespaces = this.group === 'namespace';\n const out = !this.showGrouping || !groupNamespaces;\n\n return out;\n },\n\n _showBulkActions() {\n if (this.tableActions !== null) {\n return this.tableActions;\n } else if (this.schema) {\n const hideTableActions = this.$store.getters['type-map/hideBulkActionsFor'](this.schema);\n\n return !hideTableActions;\n }\n\n return false;\n },\n\n _headers() {\n let headers;\n const showNamespace = this.showNamespaceColumn;\n\n if ( this.headers ) {\n headers = this.headers.slice();\n } else {\n headers = this.$store.getters['type-map/headersFor'](this.schema, this.externalPaginationEnabled);\n }\n\n // add custom table columns provided by the extensions ExtensionPoint.TABLE_COL hook\n // gate it so that we prevent errors on older versions of dashboard\n if (this.$store.$plugin?.getUIConfig) {\n const extensionCols = getApplicableExtensionEnhancements(this, ExtensionPoint.TABLE_COL, TableColumnLocation.RESOURCE, this.$route);\n\n // Try and insert the columns before the Age column\n let insertPosition = headers.length;\n\n if (headers.length > 0) {\n const ageColIndex = headers.findIndex((h) => h.name === AGE.name);\n\n if (ageColIndex >= 0) {\n insertPosition = ageColIndex;\n } else {\n // we've found some labels with ' ', which isn't necessarily empty (explore action/button)\n // if we are to add cols, let's push them before these so that the UI doesn't look weird\n const lastViableColIndex = headers.findIndex((h) => (!h.label || !h.label?.trim()) && (!h.labelKey || !h.labelKey?.trim()));\n\n if (lastViableColIndex >= 0) {\n insertPosition = lastViableColIndex;\n }\n }\n }\n\n // adding extension defined cols to the correct header config\n extensionCols.forEach((col) => {\n // we need the 'value' prop to be populated in order for the rows to show the values\n if (!col.value && col.getValue) {\n col.value = col.getValue;\n }\n headers.splice(insertPosition, 0, col);\n });\n }\n\n // If only one namespace is selected, hide the namespace column\n if ( !showNamespace ) {\n const idx = headers.findIndex((header) => header.name === NAMESPACE.name);\n\n if ( idx >= 0 ) {\n headers.splice(idx, 1);\n }\n }\n\n // If we are grouping by a custom group, it may specify that we hide a specific column\n const custom = this._listGroupMapped?.[this.group];\n\n if (custom?.hideColumn) {\n const idx = headers.findIndex((header) => header.name === custom.hideColumn);\n\n if ( idx >= 0 ) {\n headers.splice(idx, 1);\n }\n }\n\n return headers;\n },\n\n /**\n * Take rows and filter out entries given the namespace filter\n */\n filteredRows() {\n const isAll = this.$store.getters['isAllNamespaces'];\n\n // Do we need to filter by namespace like things?\n if (\n !this.isNamespaced || // Resource type isn't namespaced\n this.ignoreFilter || // Component owner strictly states no filtering\n this.externalPaginationEnabled ||\n (isAll && !this.currentProduct?.hideSystemResources) || // Need all\n (this.inStore ? this.$store.getters[`${ this.inStore }/haveNamespace`](this.schema.id)?.length : false)// Store reports type has namespace filter, so rows already contain the correctly filtered resources\n ) {\n return this.rows || [];\n }\n\n const includedNamespaces = this.$store.getters['namespaces']();\n\n // Shouldn't happen, but does for resources like management.cattle.io.preference\n if (!this.rows) {\n return [];\n }\n\n const haveAllNamespace = this.$store.getters['haveAllNamespace'];\n\n return this.rows.filter((row) => {\n if (this.currentProduct?.hideSystemResources && this.isNamespaced) {\n return !!includedNamespaces[row.metadata.namespace] && !row.isSystemResource;\n } else if (!this.isNamespaced) {\n return true;\n } else if (haveAllNamespace) {\n // `rows` only contains resource from a single namespace\n return true;\n } else {\n return !!includedNamespaces[row.metadata.namespace];\n }\n });\n },\n\n _group: mapPref(GROUP_RESOURCES),\n\n // The group stored in the preference (above) might not be valid for this resource table - so ensure we\n // choose a group that is applicable (the default)\n // This saves us from having to store a group preference per resource type - given that custom groupings aer not used much\n // and it feels like a good UX to be able to keep the namespace/flat grouping across tables\n group: {\n get() {\n // Check group is valid\n const exists = this.groupOptions.find((g) => g.value === this._group);\n\n if (!exists) {\n // Attempt to find the default option in available options...\n // if not use the first value in the options collection...\n // and if not that just fall back to the default\n if (this.groupOptions.find((g) => g.value === DEFAULT_GROUP)) {\n return DEFAULT_GROUP;\n }\n\n return this.groupOptions[0]?.value || DEFAULT_GROUP;\n }\n\n return this._group;\n },\n set(value) {\n this._group = value;\n }\n },\n\n showGrouping() {\n if ( this.groupable === null ) {\n const namespaceGroupable = this.$store.getters['isMultipleNamespaces'] && this.isNamespaced;\n const customGroupable = !!this.options?.listGroups?.length;\n\n return namespaceGroupable || customGroupable;\n }\n\n return this.groupable || false;\n },\n\n computedGroupBy() {\n // If we're not showing grouping options we shouldn't have a group by property\n if (!this.showGrouping) {\n return null;\n }\n\n if ( this.groupBy ) {\n // This probably comes from the type-map config for the resource (see ResourceList)\n return this.groupBy;\n }\n\n if ( this.group === 'namespace' ) {\n // This switches to group rows by a key which is the label for the group (??)\n return 'groupByLabel';\n }\n\n const custom = this._listGroupMapped?.[this.group];\n\n if (custom?.field) {\n // Override the normal filtering\n return custom.field;\n }\n\n return null;\n },\n\n groupOptions() {\n // Ignore the defaults below, we have an override set of groups\n // REPLACE (instead of SUPPLEMENT) defaults with listGroups (given listGroupsWillOverride is true)\n if (this.options?.listGroupsWillOverride && !!this.options?.listGroups?.length) {\n return this.options?.listGroups;\n }\n\n const standard = [\n {\n tooltipKey: 'resourceTable.groupBy.none',\n icon: 'icon-list-flat',\n value: 'none',\n }\n ];\n\n if (!this.options?.hiddenNamespaceGroupButton) {\n standard.push( {\n tooltipKey: this.groupTooltip,\n icon: 'icon-folder',\n value: 'namespace',\n });\n }\n\n // SUPPLEMENT (instead of REPLACE) defaults with listGroups (given listGroupsWillOverride is false)\n if (!!this.options?.listGroups?.length) {\n return standard.concat(this.options.listGroups);\n }\n\n return standard;\n },\n\n parsedPagingParams() {\n if (this.pagingParams) {\n return this.pagingParams;\n }\n\n if ( !this.schema ) {\n return {\n singularLabel: '',\n pluralLabel: ''\n };\n }\n\n return {\n singularLabel: this.$store.getters['type-map/labelFor'](this.schema),\n pluralLabel: this.$store.getters['type-map/labelFor'](this.schema, 99),\n };\n },\n\n },\n\n methods: {\n keyAction(action) {\n const table = this.$refs.table;\n\n if ( !table ) {\n return;\n }\n\n const selection = table.selectedRows;\n\n if ( action === 'remove' ) {\n const act = findBy(table.availableActions, 'action', 'promptRemove');\n\n if ( act ) {\n table.setBulkActionOfInterest(act);\n table.applyTableAction(act);\n }\n\n return;\n }\n\n if ( selection.length !== 1 ) {\n return;\n }\n\n switch ( action ) {\n case 'detail':\n selection[0].goToDetail();\n break;\n case 'edit':\n selection[0].goToEdit();\n break;\n case 'yaml':\n selection[0].goToViewYaml();\n break;\n }\n },\n\n clearSelection() {\n this.$refs.table.clearSelection();\n },\n\n safeSortGenerationFn() {\n if (this.sortGenerationFn) {\n return this.sortGenerationFn(this.schema, this.$store);\n }\n\n return defaultTableSortGenerationFn(this.schema, this.$store);\n },\n\n handleActionButtonClick(event) {\n this.$emit('clickedActionButton', event);\n },\n\n handleEnterKeyPress(event) {\n if (event.key === 'Enter') {\n this.keyAction('detail');\n }\n }\n },\n};\n</script>\n\n<template>\n <SortableTable\n ref=\"table\"\n v-bind=\"$attrs\"\n :headers=\"_headers\"\n :rows=\"filteredRows\"\n :loading=\"loading\"\n :alt-loading=\"altLoading\"\n :group-by=\"computedGroupBy\"\n :group=\"group\"\n :group-options=\"groupOptions\"\n :search=\"search\"\n :paging=\"true\"\n :paging-params=\"parsedPagingParams\"\n :paging-label=\"pagingLabel\"\n :rows-per-page=\"rowsPerPage\"\n :row-actions=\"rowActions\"\n :table-actions=\"_showBulkActions\"\n :overflow-x=\"overflowX\"\n :overflow-y=\"overflowY\"\n :get-custom-detail-link=\"getCustomDetailLink\"\n :has-advanced-filtering=\"hasAdvancedFiltering\"\n :adv-filter-hide-labels-as-cols=\"advFilterHideLabelsAsCols\"\n :adv-filter-prevent-filtering-labels=\"advFilterPreventFilteringLabels\"\n :key-field=\"keyField\"\n :sortGeneration=\"sortGeneration\"\n :sort-generation-fn=\"safeSortGenerationFn\"\n :use-query-params-for-simple-filtering=\"useQueryParamsForSimpleFiltering\"\n :force-update-live-and-delayed=\"forceUpdateLiveAndDelayed\"\n :external-pagination-enabled=\"externalPaginationEnabled\"\n :external-pagination-result=\"externalPaginationResult\"\n :mandatory-sort=\"_mandatorySort\"\n @clickedActionButton=\"handleActionButtonClick\"\n @group-value-change=\"group = $event\"\n >\n <template\n v-if=\"showGrouping\"\n #header-middle\n >\n <slot name=\"more-header-middle\" />\n\n <ButtonGroup\n v-model:value=\"group\"\n :options=\"groupOptions\"\n />\n </template>\n\n <template\n v-if=\"showGrouping\"\n #header-right\n >\n <slot name=\"header-right\" />\n </template>\n\n <template #group-by=\"{group: thisGroup}\">\n <div\n v-clean-html=\"thisGroup.ref\"\n class=\"group-tab\"\n />\n </template>\n\n <!-- Pass down templates provided by the caller -->\n <template\n v-for=\"(_, slot) of $slots\"\n :key=\"slot\"\n v-slot:[slot]=\"scope\"\n >\n <slot\n :name=\"slot\"\n v-bind=\"scope\"\n />\n </template>\n\n <template #shortkeys>\n <button\n v-shortkey.once=\"['e']\"\n class=\"hide\"\n @shortkey=\"keyAction('edit')\"\n />\n <button\n v-shortkey.once=\"['y']\"\n class=\"hide\"\n @shortkey=\"keyAction('yaml')\"\n />\n <button\n v-if=\"_showBulkActions\"\n v-shortkey.once=\"['del']\"\n class=\"hide\"\n @shortkey=\"keyAction('remove')\"\n />\n <button\n v-if=\"_showBulkActions\"\n v-shortkey.once=\"['backspace']\"\n class=\"hide\"\n @shortkey=\"keyAction('remove')\"\n />\n </template>\n </SortableTable>\n</template>\n","import { render } from \"./ResourceTable.vue?vue&type=template&id=78b5a268\"\nimport script from \"./ResourceTable.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceTable.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport jsyaml from 'js-yaml';\nimport YamlEditor, { EDITOR_MODES } from '@shell/components/YamlEditor';\nimport FileSelector from '@shell/components/form/FileSelector';\nimport Footer from '@shell/components/form/Footer';\nimport { ANNOTATIONS_TO_FOLD } from '@shell/config/labels-annotations';\nimport { ensureRegex } from '@shell/utils/string';\nimport { typeOf } from '@shell/utils/sort';\n\nimport {\n _CREATE,\n _VIEW,\n PREVIEW,\n _FLAGGED,\n _UNFLAG,\n _EDIT,\n} from '@shell/config/query-params';\nimport { BEFORE_SAVE_HOOKS, AFTER_SAVE_HOOKS } from '@shell/mixins/child-hook';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\n\nexport default {\n emits: ['error'],\n\n components: {\n Footer,\n FileSelector,\n YamlEditor\n },\n\n props: {\n mode: {\n type: String,\n required: true,\n },\n\n value: {\n type: Object,\n required: true,\n },\n\n initialYamlForDiff: {\n type: String,\n default: null,\n },\n\n yaml: {\n type: String,\n required: true,\n },\n\n doneRoute: {\n type: [String, Object],\n default: null,\n },\n\n offerPreview: {\n type: Boolean,\n default: true,\n },\n\n parentParams: {\n type: Object,\n default: null,\n },\n\n doneOverride: {\n type: [Function, Object],\n default: null\n },\n\n showFooter: {\n type: Boolean,\n default: true\n },\n\n applyHooks: {\n type: Function,\n default: null,\n }\n },\n\n data() {\n // Initial load with a preview showing no diff isn't very useful\n this.$router.applyQuery({ [PREVIEW]: _UNFLAG });\n\n return {\n initialYaml: this.initialYamlForDiff || this.yaml,\n currentYaml: this.yaml,\n showPreview: false,\n errors: null,\n cm: null,\n initialReady: true\n };\n },\n\n computed: {\n schema() {\n const inStore = this.$store.getters['currentStore'](this.value.type);\n\n return this.$store.getters[`${ inStore }/schemaFor`]( this.value.type );\n },\n\n isCreate() {\n return this.mode === _CREATE;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isEdit() {\n return this.mode === _EDIT;\n },\n\n editorMode() {\n // Include the mode in the route as a dependency\n // of this computed property so that the editor\n // toggles when you navigate back and forth between\n // edit and view.\n if ( this.$route.query.mode === _VIEW || (this.isView && (this.$route.query.mode !== _EDIT || this.$route.query.mode !== _VIEW))) {\n return EDITOR_MODES.VIEW_CODE;\n } else if ( this.showPreview ) {\n return EDITOR_MODES.DIFF_CODE;\n }\n\n return EDITOR_MODES.EDIT_CODE;\n },\n\n canDiff() {\n return this.initialYaml !== this.currentYaml;\n },\n },\n\n watch: {\n yaml(neu) {\n if ( this.mode === _VIEW ) {\n this.currentYaml = neu;\n }\n },\n\n mode(neu, old) {\n // if this component is changing from viewing a resource to 'creating' that resource, it must actually be cloning\n // clean yaml accordingly\n if (neu === _CREATE && old === _VIEW) {\n this.currentYaml = this.value.cleanYaml(this.yaml, neu);\n }\n }\n },\n\n methods: {\n onInput(yaml) {\n this.currentYaml = yaml;\n this.onReady(this.cm);\n },\n\n onReady(cm) {\n if (!this.initialReady) {\n return;\n }\n this.initialReady = false;\n\n this.cm = cm;\n\n if ( this.isEdit ) {\n cm.foldLinesMatching(/^status:\\s*$/);\n }\n\n try {\n const parsed = jsyaml.load(this.currentYaml);\n const annotations = Object.keys(parsed?.metadata?.annotations || {});\n const regexes = ANNOTATIONS_TO_FOLD.map((x) => ensureRegex(x));\n\n let foldAnnotations = false;\n\n for ( const k of annotations ) {\n if ( foldAnnotations ) {\n break;\n }\n\n for ( const regex of regexes ) {\n if ( k.match(regex) ) {\n foldAnnotations = true;\n break;\n }\n }\n }\n\n if ( foldAnnotations ) {\n cm.foldLinesMatching(/^\\s+annotations:\\s*$/);\n }\n } catch (e) {}\n\n cm.foldLinesMatching(/managedFields/);\n\n // Allow the model to supply an array of json paths to fold other sections in the YAML for the given resource type\n if (this.value?.yamlFolding) {\n this.value.yamlFolding.forEach((path) => cm.foldYaml(path));\n }\n\n // regardless of edit or create we should probably fold all the comments so they dont get out of hand.\n const saved = cm.getMode().fold;\n\n cm.getMode().fold = 'yamlcomments';\n cm.execCommand('foldAll');\n cm.getMode().fold = saved;\n },\n\n updateValue(value) {\n this.$refs.yamleditor.updateValue(value);\n },\n\n preview() {\n this.updateValue(this.currentYaml);\n this.showPreview = true;\n this.$router.applyQuery({ [PREVIEW]: _FLAGGED });\n },\n\n unpreview() {\n this.showPreview = false;\n this.$router.applyQuery({ [PREVIEW]: _UNFLAG });\n },\n\n async save(buttonDone) {\n const yaml = this.value.yamlForSave(this.currentYaml) || this.currentYaml;\n\n try {\n if ( this.applyHooks ) {\n await this.applyHooks(BEFORE_SAVE_HOOKS);\n }\n\n try {\n await this.value.saveYaml(yaml);\n } catch (err) {\n return onError.call(this, err);\n }\n\n if ( this.applyHooks ) {\n await this.applyHooks(AFTER_SAVE_HOOKS);\n }\n\n buttonDone(true);\n this.done();\n } catch (err) {\n return onError.call(this, err);\n }\n\n function onError(err) {\n if ( err && err.response && err.response.data ) {\n const body = err.response.data;\n\n if ( body && body.message ) {\n this.errors = [body.message];\n } else {\n this.errors = [err];\n }\n } else {\n this.errors = [err];\n }\n\n buttonDone(false);\n\n this.$emit('error', exceptionToErrorsArray(err));\n }\n },\n\n done() {\n if (this.doneOverride) {\n return typeof (this.doneOverride) === 'function' ? this.doneOverride() : this.$router.replace(this.doneOverride);\n }\n if ( !this.doneRoute ) {\n return;\n }\n if (typeOf(this.doneRoute) === 'object') {\n this.$router.replace(this.doneRoute);\n\n return;\n }\n this.$router.replace({\n name: this.doneRoute,\n params: { resource: this.value.type }\n });\n },\n\n onFileSelected(value) {\n const component = this.$refs.yamleditor;\n\n if (component) {\n component.updateValue(value);\n }\n },\n\n }\n};\n</script>\n\n<template>\n <div class=\"root resource-yaml flex-content\">\n <YamlEditor\n ref=\"yamleditor\"\n v-model:value=\"currentYaml\"\n :initial-yaml-values=\"initialYaml\"\n class=\"yaml-editor flex-content\"\n :editor-mode=\"editorMode\"\n @onReady=\"onReady\"\n />\n <slot\n name=\"yamlFooter\"\n :currentYaml=\"currentYaml\"\n :showPreview=\"showPreview\"\n :yamlPreview=\"preview\"\n :yamlSave=\"save\"\n :yamlUnpreview=\"unpreview\"\n :canDiff=\"canDiff\"\n >\n <Footer\n v-if=\"showFooter\"\n class=\"footer\"\n :class=\"{ 'edit': !isView }\"\n :mode=\"mode\"\n :errors=\"errors\"\n @save=\"save\"\n @done=\"done\"\n >\n <template\n v-if=\"!isView\"\n #left\n >\n <FileSelector\n class=\"btn role-secondary\"\n :label=\"t('generic.readFromFile')\"\n @selected=\"onFileSelected\"\n />\n </template>\n <template\n v-if=\"!isView\"\n #middle\n >\n <button\n v-if=\"showPreview\"\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"unpreview\"\n >\n <t k=\"resourceYaml.buttons.continue\" />\n </button>\n <button\n v-else-if=\"offerPreview\"\n :disabled=\"!canDiff\"\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"preview\"\n >\n <t k=\"resourceYaml.buttons.diff\" />\n </button>\n </template>\n </Footer>\n </slot>\n </div>\n</template>\n\n<style lang='scss' scoped>\n .flex-content {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n }\n\n .footer {\n margin-top: 20px;\n right: 0;\n position: sticky;\n bottom: 0;\n background-color: var(--header-bg);\n\n // Overrides outlet padding\n margin-left: -$space-m;\n margin-right: -$space-m;\n margin-bottom: -$space-m;\n padding: $space-s $space-m;\n\n &.edit {\n border-top: var(--header-border-size) solid var(--header-border);\n }\n }\n</style>\n\n<style lang=\"scss\">\n.resource-yaml {\n .yaml-editor {\n min-height: 200px;\n }\n\n footer .actions {\n text-align: right;\n }\n\n .spacer-small {\n padding: 0;\n }\n}\n\n</style>\n","import { render } from \"./ResourceYaml.vue?vue&type=template&id=49797251&scoped=true\"\nimport script from \"./ResourceYaml.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceYaml.vue?vue&type=script&lang=js\"\n\nimport \"./ResourceYaml.vue?vue&type=style&index=0&id=49797251&lang=scss&scoped=true\"\nimport \"./ResourceYaml.vue?vue&type=style&index=1&id=49797251&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-49797251\"]])\n\nexport default __exports__","<script>\nimport Closeable from '@shell/mixins/closeable';\n\nexport default {\n name: 'SimpleBox',\n\n emits: ['close'],\n\n mixins: [Closeable],\n\n props: {\n title: {\n type: String,\n default: null,\n },\n\n canClose: {\n type: Boolean,\n default: false\n }\n },\n\n methods: {\n closeBox(event) {\n this.hide();\n this.$emit('close', event);\n }\n }\n};\n</script>\n\n<template>\n <div\n v-if=\"shown\"\n class=\"simple-box\"\n data-testid=\"simple-box-container\"\n >\n <div\n v-if=\"title || canClose || $slots.title\"\n class=\"top\"\n >\n <slot name=\"title\">\n <h2\n v-if=\"title\"\n data-testid=\"simple-box-title\"\n >\n {{ title }}\n </h2>\n </slot>\n <div\n v-if=\"canClose || pref\"\n class=\"close-button\"\n data-testid=\"simple-box-close\"\n @click=\"closeBox($event)\"\n >\n <i class=\"icon icon-close\" />\n </div>\n </div>\n <div class=\"content\">\n <slot />\n </div>\n </div>\n</template>\n<style lang=\"scss\" scoped>\n.top {\n display: flex;\n position: relative;\n > h2 {\n flex: 1;\n }\n}\n.close-button {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2px;\n > i {\n font-size: 14px;\n opacity: 0.5;\n }\n &:hover {\n background-color: var(--wm-closer-hover-bg);\n }\n}\n</style>\n<style lang=\"scss\">\n.simple-box {\n $padding: 15px;\n\n background: var(--simple-box-bg) 0% 0% no-repeat padding-box;\n box-shadow: 0px 0px 10px var(--simple-box-shadow);\n border: 1px solid var(--simple-box-border);\n padding: $padding;\n\n .top {\n line-height: 24px;\n font-size: 18px;\n border-bottom: 1px solid var(--simple-box-divider);\n padding-bottom: $padding;\n margin: 0 -15px 10px -15px;\n padding: 0 15px 15px 15px;\n align-items: center;\n display: flex\n\n & BUTTON {\n padding: 0;\n height: fit-content;\n align-self: flex-start;\n }\n\n & H2{\n margin-bottom: 0;\n }\n }\n\n .content {\n padding: $padding;\n }\n}\n</style>\n","import { render } from \"./SimpleBox.vue?vue&type=template&id=48821e48&scoped=true\"\nimport script from \"./SimpleBox.vue?vue&type=script&lang=js\"\nexport * from \"./SimpleBox.vue?vue&type=script&lang=js\"\n\nimport \"./SimpleBox.vue?vue&type=style&index=0&id=48821e48&lang=scss&scoped=true\"\nimport \"./SimpleBox.vue?vue&type=style&index=1&id=48821e48&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-48821e48\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { defineAsyncComponent } from 'vue';\nimport day from 'dayjs';\nimport isEmpty from 'lodash/isEmpty';\nimport { dasherize, ucFirst } from '@shell/utils/string';\nimport { get, clone } from '@shell/utils/object';\nimport { removeObject } from '@shell/utils/array';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport AsyncButton, { ASYNC_BUTTON_STATES } from '@shell/components/AsyncButton';\nimport ActionDropdown from '@shell/components/ActionDropdown';\nimport throttle from 'lodash/throttle';\nimport debounce from 'lodash/debounce';\nimport THead from './THead';\nimport filtering from './filtering';\nimport selection from './selection';\nimport sorting from './sorting';\nimport paging from './paging';\nimport grouping from './grouping';\nimport actions from './actions';\nimport AdvancedFiltering from './advanced-filtering';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { getParent } from '@shell/utils/dom';\nimport { FORMATTERS } from '@shell/components/SortableTable/sortable-config';\nimport ButtonMultiAction from '@shell/components/ButtonMultiAction.vue';\n\n// Uncomment for table performance debugging\n// import tableDebug from './debug';\n\n// @TODO:\n// Fixed header/scrolling\n\n// Data Flow:\n// rows prop\n// --> sorting.js arrangedRows\n// --> filtering.js handleFiltering()\n// --> filtering.js filteredRows\n// --> paging.js pageRows\n// --> grouping.js groupedRows\n// --> index.vue displayRows\n\nexport default {\n name: 'SortableTable',\n\n emits: ['clickedActionButton', 'pagination-changed', 'group-value-change', 'selection', 'rowClick'],\n\n components: {\n THead,\n Checkbox,\n AsyncButton,\n ActionDropdown,\n LabeledSelect,\n ButtonMultiAction,\n },\n mixins: [\n filtering,\n sorting,\n paging,\n grouping,\n selection,\n actions,\n AdvancedFiltering,\n // For table performance debugging - uncomment and uncomment the corresponding import\n // tableDebug,\n ],\n\n props: {\n headers: {\n // {\n // name: Name for the column (goes in query param) and for defaultSortBy\n // label: Displayed column header\n // sort: string|array[string] Field name(s) to sort by, default: [name, keyField]\n // fields can be suffixed with ':desc' to flip the normal sort order\n // search: string|array[string] Field name(s) to search in, default: [name]\n // width: number\n // }\n type: Array,\n required: true\n },\n\n rows: {\n // The array of objects to show\n type: Array,\n required: true\n },\n\n keyField: {\n // Field that is unique for each row.\n type: String,\n default: '_key',\n },\n\n loading: {\n type: Boolean,\n required: false\n },\n\n /**\n * Alt Loading - True: Always show table rows and obscure them when `loading`. Intended for use with server-side pagination.\n *\n * Alt Loading - False: Hide the table rows when `loading`. Intended when all resources are provided up front.\n */\n altLoading: {\n type: Boolean,\n required: false\n },\n\n groupBy: {\n // Field to group rows by, row[groupBy] must be something that can be a map key\n type: String,\n default: null\n },\n groupRef: {\n // Object to provide as the reference for rendering the grouping row\n type: String,\n default: null,\n },\n groupSort: {\n // Field to order groups by, defaults to groupBy\n type: Array,\n default: null\n },\n\n defaultSortBy: {\n // Default field to sort by if none is specified\n // uses name on headers\n type: String,\n default: null\n },\n\n tableActions: {\n // Show bulk table actions\n type: Boolean,\n default: true\n },\n\n rowActions: {\n // Show action dropdown on the end of each row\n type: Boolean,\n default: true\n },\n\n mangleActionResources: {\n type: Function,\n default: null,\n },\n\n rowActionsWidth: {\n // How wide the action dropdown column should be\n type: Number,\n default: 40\n },\n\n search: {\n // Show search input to filter rows\n type: Boolean,\n default: true\n },\n\n extraSearchFields: {\n // Additional fields that aren't defined in the headers to search in on each row\n type: Array,\n default: null\n },\n\n subRows: {\n // If there are sub-rows, your main row must have <tr class=\"main-row\"> to identify it\n type: Boolean,\n default: false,\n },\n\n subRowsDescription: {\n type: Boolean,\n default: true,\n },\n\n subExpandable: {\n type: Boolean,\n default: false,\n },\n\n subExpandColumn: {\n type: Boolean,\n default: false,\n },\n\n subSearch: {\n // A field containing an array of sub-items to also search in for each row\n type: String,\n default: null,\n },\n\n subFields: {\n // Search this list of fields within the items in \"subSearch\" of each row\n type: Array,\n default: null,\n },\n\n /**\n * Show the divider between the thead and tbody.\n */\n topDivider: {\n type: Boolean,\n default: true\n },\n\n /**\n * Show the dividers between rows\n */\n bodyDividers: {\n type: Boolean,\n default: false\n },\n\n overflowX: {\n type: Boolean,\n default: false\n },\n overflowY: {\n type: Boolean,\n default: false\n },\n\n /**\n * If pagination of the data is enabled or not\n */\n paging: {\n type: Boolean,\n default: false,\n },\n\n /**\n * What translation key to use for displaying the '1 - 10 of 100 Things' pagination info\n */\n pagingLabel: {\n type: String,\n default: 'sortableTable.paging.generic'\n },\n\n /**\n * Additional params to pass to the pagingLabel translation\n */\n pagingParams: {\n type: Object,\n default: null,\n },\n\n /**\n * Allows you to override the default preference of the number of\n * items to display per page. This is used by ./paging.js if you're\n * looking for a reference.\n */\n rowsPerPage: {\n type: Number,\n default: null, // Default comes from the user preference\n },\n\n /**\n * Allows you to override the default translation text of no rows view\n */\n noRowsKey: {\n type: String,\n default: 'sortableTable.noRows'\n },\n\n /**\n * Allows you to hide the no rows messaging.\n */\n showNoRows: {\n type: Boolean,\n default: true\n },\n\n /**\n * Allows you to override the default translation text of no search data view\n */\n noDataKey: {\n type: String,\n default: 'sortableTable.noData' // i18n-uses sortableTable.noData\n },\n\n /**\n * Allows you to override showing the THEAD section.\n */\n showHeaders: {\n type: Boolean,\n default: true\n },\n\n /**\n * Provide a unique key that will provide a new value given changes to the environment that\n * should kick off an update to table rows (for instance resource list generation or change of namespace)\n *\n * This does not have to update given internal facets like sort order or direction\n */\n sortGenerationFn: {\n type: Function,\n default: null,\n },\n\n /**\n * Can be used in place of sortGenerationFn\n */\n sortGeneration: {\n type: String,\n default: null\n },\n\n /**\n * The list will always be sorted by these regardless of what the user has selected\n */\n mandatorySort: {\n type: Array,\n default: null,\n },\n\n /**\n * Allows you to link to a custom detail page for data that\n * doesn't have a class model. For example, a receiver configuration\n * block within an AlertmanagerConfig resource.\n */\n getCustomDetailLink: {\n type: Function,\n default: null\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'sortable-table'\n },\n /**\n * Allows for the usage of a query param to work for simple filtering (q)\n */\n useQueryParamsForSimpleFiltering: {\n type: Boolean,\n default: false\n },\n /**\n * Manaul force the update of live and delayed cells. Change this number to kick off the update\n */\n forceUpdateLiveAndDelayed: {\n type: Number,\n default: 0\n },\n\n /**\n * True if pagination is executed outside of the component\n */\n externalPaginationEnabled: {\n type: Boolean,\n default: false\n },\n\n /**\n * If `externalPaginationEnabled` is true this will be used as the current page\n */\n externalPaginationResult: {\n type: Object,\n default: null\n },\n\n manualRefreshButtonSize: {\n type: String,\n default: ''\n }\n\n },\n\n data() {\n let searchQuery = '';\n let eventualSearchQuery = '';\n\n // only allow for filter query param for simple filtering for now...\n if (!this.hasAdvancedFiltering && this.useQueryParamsForSimpleFiltering && this.$route.query?.q) {\n searchQuery = this.$route.query?.q;\n eventualSearchQuery = this.$route.query?.q;\n }\n\n const isLoading = this.loading || false;\n\n return {\n refreshButtonPhase: isLoading ? ASYNC_BUTTON_STATES.WAITING : ASYNC_BUTTON_STATES.ACTION,\n expanded: {},\n searchQuery,\n eventualSearchQuery,\n subMatches: null,\n actionOfInterest: null,\n loadingDelay: false,\n debouncedPaginationChanged: null,\n /**\n * The is the bool the DOM uses to show loading state. it's proxied from `loading` to avoid blipping the indicator (see usages)\n */\n isLoading\n };\n },\n\n mounted() {\n this._loadingDelayTimer = setTimeout(() => {\n this.loadingDelay = true;\n }, 200);\n\n // Add scroll listener to the main element\n const $main = document.querySelector('main');\n\n this._onScroll = this.onScroll.bind(this);\n $main?.addEventListener('scroll', this._onScroll);\n\n this.debouncedPaginationChanged();\n },\n\n beforeUnmount() {\n clearTimeout(this._scrollTimer);\n clearTimeout(this._loadingDelayTimer);\n clearTimeout(this._altLoadingDelayTimer);\n clearTimeout(this._liveColumnsTimer);\n clearTimeout(this._delayedColumnsTimer);\n clearTimeout(this.manualRefreshTimer);\n\n const $main = document.querySelector('main');\n\n $main?.removeEventListener('scroll', this._onScroll);\n },\n\n watch: {\n eventualSearchQuery: debounce(function(q) {\n this.searchQuery = q;\n\n if (!this.hasAdvancedFiltering && this.useQueryParamsForSimpleFiltering) {\n const route = {\n name: this.$route.name,\n params: { ...this.$route.params },\n query: { ...this.$route.query, q }\n };\n\n if (!q && this.$route.query?.q) {\n route.query = {};\n }\n\n this.$router.replace(route);\n }\n }, 200),\n\n descending(neu, old) {\n this.watcherUpdateLiveAndDelayed(neu, old);\n },\n\n searchQuery(neu, old) {\n this.watcherUpdateLiveAndDelayed(neu, old);\n },\n\n sortFields(neu, old) {\n this.watcherUpdateLiveAndDelayed(neu, old);\n },\n\n groupBy(neu, old) {\n this.watcherUpdateLiveAndDelayed(neu, old);\n },\n\n namespaces(neu, old) {\n this.watcherUpdateLiveAndDelayed(neu, old);\n },\n\n page(neu, old) {\n this.watcherUpdateLiveAndDelayed(neu, old);\n },\n\n forceUpdateLiveAndDelayed(neu, old) {\n this.watcherUpdateLiveAndDelayed(neu, old);\n },\n\n // Ensure we update live and delayed columns on first load\n initalLoad: {\n handler(neu) {\n if (neu) {\n this._didinit = true;\n this.$nextTick(() => this.updateLiveAndDelayed());\n }\n },\n immediate: true\n },\n\n // this is the flag that indicates that manual refresh data has been loaded\n // and we should update the deferred cols\n manualRefreshLoadingFinished: {\n handler(neu, old) {\n // this is merely to update the manual refresh button status\n this.refreshButtonPhase = !neu ? ASYNC_BUTTON_STATES.WAITING : ASYNC_BUTTON_STATES.ACTION;\n if (neu && neu !== old) {\n this.$nextTick(() => this.updateLiveAndDelayed());\n }\n },\n immediate: true\n },\n\n loading: {\n handler(neu, old) {\n // Always ensure the Refresh button phase aligns with loading state (to ensure external phase changes which can then reset the internal phase changed by click)\n this.refreshButtonPhase = neu ? ASYNC_BUTTON_STATES.WAITING : ASYNC_BUTTON_STATES.ACTION;\n\n if (this.altLoading) {\n // Delay setting the actual loading indicator. This should avoid flashing up the indicator if the API responds quickly\n if (neu) {\n this._altLoadingDelayTimer = setTimeout(() => {\n this.isLoading = true;\n }, 200); // this should be higher than the targeted quick response\n } else {\n clearTimeout(this._altLoadingDelayTimer);\n this.isLoading = false;\n }\n } else {\n this.isLoading = neu;\n }\n },\n immediate: true\n },\n },\n\n created() {\n this.debouncedRefreshTableData = debounce(this.refreshTableData, 500);\n this.debouncedPaginationChanged = debounce(this.paginationChanged, 50);\n },\n\n computed: {\n ...mapGetters({ isTooManyItemsToAutoUpdate: 'resource-fetch/isTooManyItemsToAutoUpdate' }),\n ...mapGetters({ isManualRefreshLoading: 'resource-fetch/manualRefreshIsLoading' }),\n namespaces() {\n return this.$store.getters['activeNamespaceCache'];\n },\n\n initalLoad() {\n return !!(!this.isLoading && !this._didinit && this.rows?.length);\n },\n\n manualRefreshLoadingFinished() {\n const res = !!(!this.isLoading && this._didinit && this.rows?.length && !this.isManualRefreshLoading);\n\n return res;\n },\n\n fullColspan() {\n let span = 0;\n\n for ( let i = 0 ; i < this.columns.length ; i++ ) {\n if (!this.columns[i].hide) {\n span++;\n }\n }\n\n if ( this.tableActions ) {\n span++;\n }\n\n if ( this.subExpandColumn ) {\n span++;\n }\n\n if ( this.rowActions ) {\n span++;\n }\n\n return span;\n },\n\n noResults() {\n return !!this.searchQuery && this.pagedRows.length === 0;\n },\n\n noRows() {\n return !this.noResults && (this.rows || []).length === 0;\n },\n\n showHeaderRow() {\n // All of these are used to show content in the header\n return this.search ||\n this.tableActions ||\n this.$slots['header-left'] ||\n this.$slots['header-middle'] ||\n this.$slots['header-right'] ||\n this.isTooManyItemsToAutoUpdate;\n },\n\n columns() {\n // Filter out any columns that are too heavy to show for large page sizes\n const out = this.headers.slice().filter((c) => !c.maxPageSize || (c.maxPageSize && c.maxPageSize >= this.perPage));\n\n if ( this.groupBy ) {\n const entry = out.find((x) => x.name === this.groupBy);\n\n if ( entry ) {\n removeObject(out, entry);\n }\n }\n\n // If all columns have a width, try to remove it from a column that can be variable (name)\n const missingWidth = out.find((x) => !x.width);\n\n if ( !missingWidth ) {\n const variable = out.find((x) => x.canBeVariable);\n\n if ( variable ) {\n const neu = clone(variable);\n\n delete neu.width;\n\n out.splice(out.indexOf(variable), 1, neu);\n }\n }\n\n // handle cols visibility and filtering if there is advanced filtering\n if (this.hasAdvancedFiltering) {\n const cols = this.handleColsVisibilyAndFiltering(out);\n\n return cols;\n }\n\n return out;\n },\n\n // For data-title properties on <td>s\n dt() {\n const out = {\n check: `Select: `,\n actions: `Actions: `,\n };\n\n this.columns.forEach((col) => {\n out[col.name] = `${ (col.label || col.name) }:`;\n });\n\n return out;\n },\n\n classObject() {\n return {\n 'top-divider': this.topDivider,\n 'body-dividers': this.bodyDividers,\n 'overflow-y': this.overflowY,\n 'overflow-x': this.overflowX,\n 'alt-loading': this.altLoading && this.isLoading\n };\n },\n\n // Do we have any live columns?\n hasLiveColumns() {\n const liveColumns = this.columns.find((c) => c.formatter?.startsWith('Live') || c.liveUpdates);\n\n return !!liveColumns;\n },\n\n hasDelayedColumns() {\n const delaeydColumns = this.columns.find((c) => c.delayLoading);\n\n return !!delaeydColumns;\n },\n\n columnFormmatterIDs() {\n const columnsIds = {};\n\n this.columns.forEach((c) => {\n if (c.formatter) {\n columnsIds[c.formatter] = dasherize(c.formatter);\n }\n });\n\n return columnsIds;\n },\n\n // Generate row and column data for easier rendering in the template\n // ensures we only call methods like `valueFor` once\n displayRows() {\n const rows = [];\n const columnFormmatterIDs = this.columnFormmatterIDs;\n\n this.groupedRows.forEach((grp) => {\n const group = {\n grp,\n key: grp.key,\n ref: grp.ref,\n rows: [],\n };\n\n rows.push(group);\n\n grp.rows.forEach((row) => {\n const rowData = {\n row,\n key: this.get(row, this.keyField),\n showSubRow: this.showSubRow(row, this.keyField),\n canRunBulkActionOfInterest: this.canRunBulkActionOfInterest(row),\n columns: []\n };\n\n group.rows.push(rowData);\n\n this.columns.forEach((c) => {\n const value = c.delayLoading ? undefined : this.valueFor(row, c, c.isLabel);\n let component;\n let formatted = value;\n let needRef = false;\n\n if (Array.isArray(value)) {\n formatted = value.join(', ');\n }\n\n if (c.formatter) {\n if (FORMATTERS[c.formatter]) {\n component = FORMATTERS[c.formatter];\n needRef = true;\n } else {\n // Check if we have a formatter from a plugin\n const pluginFormatter = this.$plugin?.getDynamic('formatters', c.formatter);\n\n if (pluginFormatter) {\n component = defineAsyncComponent(pluginFormatter);\n needRef = true;\n }\n }\n }\n\n rowData.columns.push({\n col: c,\n value,\n formatted,\n component,\n needRef,\n delayed: c.delayLoading,\n live: c.formatter?.startsWith('Live') || c.liveUpdates,\n label: this.labelFor(c),\n dasherize: columnFormmatterIDs[c.formatter] || '',\n });\n });\n });\n });\n\n return rows;\n }\n },\n\n methods: {\n refreshTableData() {\n this.$store.dispatch('resource-fetch/doManualRefresh');\n },\n get,\n dasherize,\n\n onScroll() {\n if (this.hasLiveColumns || this.hasDelayedColumns) {\n clearTimeout(this._liveColumnsTimer);\n clearTimeout(this._scrollTimer);\n clearTimeout(this._delayedColumnsTimer);\n this._scrollTimer = setTimeout(() => {\n this.updateLiveColumns();\n this.updateDelayedColumns();\n }, 300);\n }\n },\n\n watcherUpdateLiveAndDelayed(neu, old) {\n if (neu !== old) {\n this.$nextTick(() => this.updateLiveAndDelayed());\n }\n },\n\n updateLiveAndDelayed() {\n if (this.hasLiveColumns) {\n this.updateLiveColumns();\n }\n\n if (this.hasDelayedColumns) {\n this.updateDelayedColumns();\n }\n },\n\n updateDelayedColumns() {\n clearTimeout(this._delayedColumnsTimer);\n\n if (!this.$refs.column || this.pagedRows.length === 0) {\n return;\n }\n\n const delayedColumns = this.$refs.column.filter((c) => c.startDelayedLoading && !c.__delayedLoading);\n // We add 100 pixels here - so we will render the delayed columns for a few extra rows below what is visible\n // This way if you scroll slowly, you won't see the columns being loaded\n const clientHeight = (window.innerHeight || document.documentElement.clientHeight) + 100;\n\n let scheduled = 0;\n\n for (let i = 0; i < delayedColumns.length; i++) {\n const dc = delayedColumns[i];\n const y = dc.$el.getBoundingClientRect().y;\n\n if (y >= 0 && y <= clientHeight) {\n dc.startDelayedLoading(true);\n dc.__delayedLoading = true;\n\n scheduled++;\n\n // Only update 4 at a time\n if (scheduled === 4) {\n this._delayedColumnsTimer = setTimeout(this.updateDelayedColumns, 100);\n\n return;\n }\n }\n }\n },\n\n updateLiveColumns() {\n clearTimeout(this._liveColumnsTimer);\n\n if (!this.$refs.column || !this.hasLiveColumns || this.pagedRows.length === 0) {\n return;\n }\n\n const clientHeight = window.innerHeight || document.documentElement.clientHeight;\n const liveColumns = this.$refs.column.filter((c) => !!c.liveUpdate);\n const now = day();\n let next = Number.MAX_SAFE_INTEGER;\n\n for (let i = 0; i < liveColumns.length; i++) {\n const column = liveColumns[i];\n const y = column.$el.getBoundingClientRect().y;\n\n if (y >= 0 && y <= clientHeight) {\n const diff = column.liveUpdate(now);\n\n if (diff < next) {\n next = diff;\n }\n }\n }\n\n if (next < 1 ) {\n next = 1;\n }\n\n // Schedule again\n this._liveColumnsTimer = setTimeout(() => this.updateLiveColumns(), next * 1000);\n },\n\n labelFor(col) {\n if ( col.labelKey ) {\n return this.t(col.labelKey, undefined, true);\n } else if ( col.label ) {\n return col.label;\n }\n\n return ucFirst(col.name);\n },\n\n valueFor(row, col, isLabel) {\n if (typeof col.value === 'function') {\n return col.value(row);\n }\n\n if (isLabel) {\n if (row.metadata?.labels && row.metadata?.labels[col.label]) {\n return row.metadata?.labels[col.label];\n }\n\n return '';\n }\n\n // Use to debug table columns using expensive value getters\n // console.warn(`Performance: Table valueFor: ${ col.name } ${ col.value }`); // eslint-disable-line no-console\n\n const expr = col.value || col.name;\n\n if (!expr) {\n console.error('No path has been defined for this column, unable to get value of cell', col); // eslint-disable-line no-console\n\n return '';\n }\n const out = get(row, expr);\n\n if ( out === null || out === undefined ) {\n return '';\n }\n\n return out;\n },\n\n isExpanded(row) {\n const key = row[this.keyField];\n\n return !!this.expanded[key];\n },\n\n toggleExpand(row) {\n const key = row[this.keyField];\n const val = !this.expanded[key];\n\n this.expanded[key] = val;\n this.expanded = { ...this.expanded };\n\n return val;\n },\n\n setBulkActionOfInterest(action) {\n this.actionOfInterest = action;\n },\n\n // Can the action of interest be applied to the specified resource?\n canRunBulkActionOfInterest(resource) {\n if ( !this.actionOfInterest || isEmpty(resource?.availableActions) ) {\n return false;\n }\n\n const matchingResourceAction = resource.availableActions?.find((a) => a.action === this.actionOfInterest.action);\n\n return matchingResourceAction?.enabled;\n },\n\n focusSearch() {\n if ( this.$refs.searchQuery ) {\n this.$refs.searchQuery.focus();\n this.$refs.searchQuery.select();\n }\n },\n\n nearestCheckbox() {\n return document.activeElement.closest('tr.main-row')?.querySelector('.checkbox-custom');\n },\n\n focusAdjacent(next = true) {\n const all = Array.from(this.$el.querySelectorAll('.checkbox-custom'));\n\n const cur = this.nearestCheckbox();\n let idx = -1;\n\n if ( cur ) {\n idx = all.indexOf(cur) + (next ? 1 : -1 );\n } else if ( next ) {\n idx = 1;\n } else {\n idx = all.length - 1;\n }\n\n if ( idx < 1 ) { // Don't go up to the check all button\n idx = 1;\n\n return null;\n }\n\n if ( idx >= all.length ) {\n idx = all.length - 1;\n\n return null;\n }\n\n if ( all[idx] ) {\n all[idx].focus();\n\n return all[idx];\n }\n },\n\n focusNext: throttle(function(event, more = false) {\n const elem = this.focusAdjacent(true);\n const row = getParent(elem, 'tr');\n\n if (row?.classList.contains('row-selected')) {\n return;\n }\n\n this.keySelectRow(row, more);\n }, 50),\n\n focusPrevious: throttle(function(event, more = false) {\n const elem = this.focusAdjacent(false);\n const row = getParent(elem, 'tr');\n\n if (row?.classList.contains('row-selected')) {\n return;\n }\n\n this.keySelectRow(row, more);\n }, 50),\n\n showSubRow(row, keyField) {\n const hasInjectedSubRows = this.subRows && (!this.subExpandable || this.expanded[get(row, keyField)]);\n const hasStateDescription = this.subRowsDescription && row.stateDescription;\n\n return hasInjectedSubRows || hasStateDescription;\n },\n\n handleActionButtonClick(i, event) {\n // Each row in the table gets its own ref with\n // a number based on its index. If you are using\n // an ActionMenu that doen't have a dependency on Vuex,\n // these refs are useful because you can reuse the\n // same ActionMenu component on a page with many different\n // target elements in a list,\n // so you can still avoid the performance problems that\n // could result if the ActionMenu was in every row. The menu\n // will open on whichever target element is clicked.\n this.$emit('clickedActionButton', {\n event,\n targetElement: this.$refs[`actionButton${ i }`][0],\n });\n },\n\n paginationChanged() {\n if (!this.externalPaginationEnabled) {\n return;\n }\n\n this.$emit('pagination-changed', {\n page: this.page,\n perPage: this.perPage,\n filter: {\n searchFields: this.searchFields,\n searchQuery: this.searchQuery\n },\n sort: this.sortFields,\n descending: this.descending\n });\n }\n }\n};\n</script>\n\n<template>\n <div\n ref=\"container\"\n :data-testid=\"componentTestid + '-list-container'\"\n >\n <div\n :class=\"{'titled': $slots.title && $slots.title.length}\"\n class=\"sortable-table-header\"\n >\n <slot name=\"title\" />\n <div\n v-if=\"showHeaderRow\"\n class=\"fixed-header-actions\"\n :class=\"{button: !!$slots['header-button'], 'advanced-filtering': hasAdvancedFiltering}\"\n >\n <div\n :class=\"bulkActionsClass\"\n class=\"bulk\"\n >\n <slot name=\"header-left\">\n <template v-if=\"tableActions\">\n <button\n v-for=\"(act) in availableActions\"\n :id=\"act.action\"\n :key=\"act.action\"\n v-clean-tooltip=\"actionTooltip\"\n type=\"button\"\n class=\"btn role-primary\"\n :class=\"{[bulkActionClass]:true}\"\n :disabled=\"!act.enabled\"\n :data-testid=\"componentTestid + '-' + act.action\"\n @click=\"applyTableAction(act, null, $event)\"\n @mouseover=\"setBulkActionOfInterest(act)\"\n @mouseleave=\"setBulkActionOfInterest(null)\"\n >\n <i\n v-if=\"act.icon\"\n :class=\"act.icon\"\n />\n <span v-clean-html=\"act.label\" />\n </button>\n <ActionDropdown\n :class=\"bulkActionsDropdownClass\"\n class=\"bulk-actions-dropdown\"\n :disable-button=\"!selectedRows.length\"\n size=\"sm\"\n >\n <template #button-content>\n <button\n ref=\"actionDropDown\"\n class=\"btn bg-primary mr-0\"\n :disabled=\"!selectedRows.length\"\n >\n <i class=\"icon icon-gear\" />\n <span>{{ t('sortableTable.bulkActions.collapsed.label') }}</span>\n <i class=\"ml-10 icon icon-chevron-down\" />\n </button>\n </template>\n <template #popover-content>\n <ul class=\"list-unstyled menu\">\n <li\n v-for=\"(act, i) in hiddenActions\"\n :key=\"i\"\n v-close-popper\n v-clean-tooltip=\"{\n content: actionTooltip,\n placement: 'right'\n }\"\n :class=\"{ disabled: !act.enabled }\"\n @click=\"applyTableAction(act, null, $event)\"\n @mouseover=\"setBulkActionOfInterest(act)\"\n @mouseleave=\"setBulkActionOfInterest(null)\"\n >\n <i\n v-if=\"act.icon\"\n :class=\"act.icon\"\n />\n <span v-clean-html=\"act.label\" />\n </li>\n </ul>\n </template>\n </ActionDropdown>\n <label\n v-if=\"selectedRowsText\"\n :class=\"bulkActionAvailabilityClass\"\n class=\"action-availability\"\n >\n {{ selectedRowsText }}\n </label>\n </template>\n </slot>\n </div>\n <div\n v-if=\"!hasAdvancedFiltering && $slots['header-middle']\"\n class=\"middle\"\n >\n <slot name=\"header-middle\" />\n </div>\n\n <div\n v-if=\"search || hasAdvancedFiltering || isTooManyItemsToAutoUpdate || $slots['header-right']\"\n class=\"search row\"\n data-testid=\"search-box-filter-row\"\n >\n <ul\n v-if=\"hasAdvancedFiltering\"\n class=\"advanced-filters-applied\"\n >\n <li\n v-for=\"(filter, i) in advancedFilteringValues\"\n :key=\"i\"\n >\n <span class=\"label\">{{ `\"${filter.value}\" ${ t('sortableTable.in') } ${filter.label}` }}</span>\n <span\n class=\"cross\"\n @click=\"clearAdvancedFilter(i)\"\n >✕</span>\n <div class=\"bg\" />\n </li>\n </ul>\n <slot name=\"header-right\" />\n <AsyncButton\n v-if=\"isTooManyItemsToAutoUpdate\"\n mode=\"manual-refresh\"\n :size=\"manualRefreshButtonSize\"\n :current-phase=\"refreshButtonPhase\"\n @click=\"debouncedRefreshTableData\"\n />\n <div\n v-if=\"hasAdvancedFiltering\"\n ref=\"advanced-filter-group\"\n class=\"advanced-filter-group\"\n >\n <button\n class=\"btn role-primary\"\n @click=\"advancedFilteringVisibility = !advancedFilteringVisibility;\"\n >\n {{ t('sortableTable.addFilter') }}\n </button>\n <div\n v-show=\"advancedFilteringVisibility\"\n class=\"advanced-filter-container\"\n >\n <input\n ref=\"advancedSearchQuery\"\n v-model=\"advFilterSearchTerm\"\n type=\"search\"\n class=\"advanced-search-box\"\n :placeholder=\"t('sortableTable.filterFor')\"\n >\n <div class=\"middle-block\">\n <span>{{ t('sortableTable.in') }}</span>\n <LabeledSelect\n v-model:value=\"advFilterSelectedProp\"\n class=\"filter-select\"\n :clearable=\"true\"\n :options=\"advFilterSelectOptions\"\n :disabled=\"false\"\n :searchable=\"false\"\n mode=\"edit\"\n :multiple=\"false\"\n :taggable=\"false\"\n :placeholder=\"t('sortableTable.selectCol')\"\n @selecting=\"(col) => advFilterSelectedLabel = col.label\"\n />\n </div>\n <div class=\"bottom-block\">\n <button\n class=\"btn role-secondary\"\n :disabled=\"!advancedFilteringValues.length\"\n @click=\"clearAllAdvancedFilters\"\n >\n {{ t('sortableTable.resetFilters') }}\n </button>\n <button\n class=\"btn role-primary\"\n @click=\"addAdvancedFilter\"\n >\n {{ t('sortableTable.add') }}\n </button>\n </div>\n </div>\n </div>\n <input\n v-else-if=\"search\"\n ref=\"searchQuery\"\n v-model=\"eventualSearchQuery\"\n type=\"search\"\n class=\"input-sm search-box\"\n :aria-label=\"t('sortableTable.searchLabel')\"\n :placeholder=\"t('sortableTable.search')\"\n >\n <slot name=\"header-button\" />\n </div>\n </div>\n </div>\n <table\n class=\"sortable-table\"\n :class=\"classObject\"\n width=\"100%\"\n role=\"table\"\n >\n <THead\n v-if=\"showHeaders\"\n :label-for=\"labelFor\"\n :columns=\"columns\"\n :group=\"group\"\n :group-options=\"advGroupOptions\"\n :has-advanced-filtering=\"hasAdvancedFiltering\"\n :adv-filter-hide-labels-as-cols=\"advFilterHideLabelsAsCols\"\n :table-actions=\"tableActions\"\n :table-cols-options=\"columnOptions\"\n :row-actions=\"rowActions\"\n :sub-expand-column=\"subExpandColumn\"\n :row-actions-width=\"rowActionsWidth\"\n :how-much-selected=\"howMuchSelected\"\n :sort-by=\"sortBy\"\n :default-sort-by=\"_defaultSortBy\"\n :descending=\"descending\"\n :no-rows=\"noRows\"\n :loading=\"isLoading && !loadingDelay\"\n :no-results=\"noResults\"\n @on-toggle-all=\"onToggleAll\"\n @on-sort-change=\"changeSort\"\n @col-visibility-change=\"changeColVisibility\"\n @group-value-change=\"(val) => $emit('group-value-change', val)\"\n @update-cols-options=\"updateColsOptions\"\n />\n\n <!-- Don't display anything if we're loading and the delay has yet to pass -->\n <div v-if=\"isLoading && !loadingDelay\" />\n\n <tbody v-else-if=\"isLoading && !altLoading\">\n <slot name=\"loading\">\n <tr>\n <td :colspan=\"fullColspan\">\n <div class=\"data-loading\">\n <i class=\"icon-spin icon icon-spinner\" />\n <t\n k=\"generic.loading\"\n :raw=\"true\"\n />\n </div>\n </td>\n </tr>\n </slot>\n </tbody>\n <tbody v-else-if=\"noRows\">\n <slot name=\"no-rows\">\n <tr class=\"no-rows\">\n <td :colspan=\"fullColspan\">\n <t\n v-if=\"showNoRows\"\n :k=\"noRowsKey\"\n />\n </td>\n </tr>\n </slot>\n </tbody>\n <tbody v-else-if=\"noResults\">\n <slot name=\"no-results\">\n <tr class=\"no-results\">\n <td\n :colspan=\"fullColspan\"\n class=\"text-center\"\n >\n <t :k=\"noDataKey\" />\n </td>\n </tr>\n </slot>\n </tbody>\n <tbody\n v-for=\"(groupedRows) in displayRows\"\n v-else\n :key=\"groupedRows.key\"\n :class=\"{ group: groupBy }\"\n >\n <slot\n v-if=\"groupBy\"\n name=\"group-row\"\n :group=\"groupedRows\"\n :fullColspan=\"fullColspan\"\n >\n <tr class=\"group-row\">\n <td :colspan=\"fullColspan\">\n <slot\n name=\"group-by\"\n :group=\"groupedRows.grp\"\n >\n <div\n v-trim-whitespace\n class=\"group-tab\"\n >\n {{ groupedRows.ref }}\n </div>\n </slot>\n </td>\n </tr>\n </slot>\n <template\n v-for=\"(row, i) in groupedRows.rows\"\n :key=\"i\"\n >\n <slot\n name=\"main-row\"\n :row=\"row.row\"\n >\n <slot\n :name=\"'main-row:' + (row.row.mainRowKey || i)\"\n :full-colspan=\"fullColspan\"\n >\n <!-- The data-cant-run-bulk-action-of-interest attribute is being used instead of :class because\n because our selection.js invokes toggleClass and :class clobbers what was added by toggleClass if\n the value of :class changes. -->\n <tr\n class=\"main-row\"\n :data-testid=\"componentTestid + '-' + i + '-row'\"\n :class=\"{ 'has-sub-row': row.showSubRow}\"\n :data-node-id=\"row.key\"\n :data-cant-run-bulk-action-of-interest=\"actionOfInterest && !row.canRunBulkActionOfInterest\"\n >\n <td\n v-if=\"tableActions\"\n class=\"row-check\"\n align=\"middle\"\n >\n {{ row.mainRowKey }}<Checkbox\n class=\"selection-checkbox\"\n :data-node-id=\"row.key\"\n :data-testid=\"componentTestid + '-' + i + '-checkbox'\"\n :value=\"selectedRows.includes(row.row)\"\n />\n </td>\n <td\n v-if=\"subExpandColumn\"\n class=\"row-expand\"\n align=\"middle\"\n >\n <i\n data-title=\"Toggle Expand\"\n :class=\"{\n icon: true,\n 'icon-chevron-right': !expanded[row.row[keyField]],\n 'icon-chevron-down': !!expanded[row.row[keyField]]\n }\"\n @click.stop=\"toggleExpand(row.row)\"\n />\n </td>\n <template\n v-for=\"(col, j) in row.columns\"\n :key=\"j\"\n >\n <slot\n :name=\"'col:' + col.col.name\"\n :row=\"row.row\"\n :col=\"col.col\"\n :dt=\"dt\"\n :expanded=\"expanded\"\n :rowKey=\"row.key\"\n >\n <td\n v-show=\"!hasAdvancedFiltering || (hasAdvancedFiltering && col.col.isColVisible)\"\n :key=\"col.col.name\"\n :data-title=\"col.col.label\"\n :data-testid=\"`sortable-cell-${ i }-${ j }`\"\n :align=\"col.col.align || 'left'\"\n :class=\"{['col-'+col.dasherize]: !!col.col.formatter, [col.col.breakpoint]: !!col.col.breakpoint, ['skip-select']: col.col.skipSelect}\"\n :width=\"col.col.width\"\n >\n <slot\n :name=\"'cell:' + col.col.name\"\n :row=\"row.row\"\n :col=\"col.col\"\n :value=\"col.value\"\n >\n <component\n :is=\"col.component\"\n v-if=\"col.component && col.needRef\"\n ref=\"column\"\n :value=\"col.value\"\n :row=\"row.row\"\n :col=\"col.col\"\n v-bind=\"col.col.formatterOpts\"\n :row-key=\"row.key\"\n :get-custom-detail-link=\"getCustomDetailLink\"\n />\n <component\n :is=\"col.component\"\n v-else-if=\"col.component\"\n :value=\"col.value\"\n :row=\"row.row\"\n :col=\"col.col\"\n v-bind=\"col.col.formatterOpts\"\n :row-key=\"row.key\"\n />\n <component\n :is=\"col.col.formatter\"\n v-else-if=\"col.col.formatter\"\n :value=\"col.value\"\n :row=\"row.row\"\n :col=\"col.col\"\n v-bind=\"col.col.formatterOpts\"\n :row-key=\"row.key\"\n />\n <template v-else-if=\"col.value !== ''\">\n {{ col.formatted }}\n </template>\n <template v-else-if=\"col.col.dashIfEmpty\">\n <span class=\"text-muted\">—</span>\n </template>\n </slot>\n </td>\n </slot>\n </template>\n <td\n v-if=\"rowActions\"\n align=\"middle\"\n >\n <slot\n name=\"row-actions\"\n :row=\"row.row\"\n >\n <ButtonMultiAction\n :id=\"`actionButton+${i}+${(row.row && row.row.name) ? row.row.name : ''}`\"\n :ref=\"`actionButton${i}`\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n :data-testid=\"componentTestid + '-' + i + '-action-button'\"\n :borderless=\"true\"\n @click=\"handleActionButtonClick(i, $event)\"\n @keyup.enter=\"handleActionButtonClick(i, $event)\"\n @keyup.space=\"handleActionButtonClick(i, $event)\"\n />\n </slot>\n </td>\n </tr>\n </slot>\n </slot>\n <slot\n v-if=\"row.showSubRow\"\n name=\"sub-row\"\n :full-colspan=\"fullColspan\"\n :row=\"row.row\"\n :sub-matches=\"subMatches\"\n :keyField=\"keyField\"\n :componentTestid=\"componentTestid\"\n :i=\"i\"\n :onRowMouseEnter=\"onRowMouseEnter\"\n :onRowMouseLeave=\"onRowMouseLeave\"\n >\n <tr\n v-if=\"row.row.stateDescription\"\n :key=\"row.row[keyField] + '-description'\"\n :data-testid=\"componentTestid + '-' + i + '-row-description'\"\n class=\"state-description sub-row\"\n @mouseenter=\"onRowMouseEnter\"\n @mouseleave=\"onRowMouseLeave\"\n >\n <td\n v-if=\"tableActions\"\n class=\"row-check\"\n align=\"middle\"\n />\n <td\n :colspan=\"fullColspan - (tableActions ? 1: 0)\"\n :class=\"{ 'text-error' : row.row.stateObj.error }\"\n >\n {{ row.row.stateDescription }}\n </td>\n </tr>\n </slot>\n </template>\n </tbody>\n </table>\n <div\n v-if=\"showPaging\"\n class=\"paging\"\n >\n <button\n type=\"button\"\n class=\"btn btn-sm role-multi-action\"\n data-testid=\"pagination-first\"\n :disabled=\"page == 1 || loading\"\n @click=\"goToPage('first')\"\n >\n <i class=\"icon icon-chevron-beginning\" />\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm role-multi-action\"\n data-testid=\"pagination-prev\"\n :disabled=\"page == 1 || loading\"\n @click=\"goToPage('prev')\"\n >\n <i class=\"icon icon-chevron-left\" />\n </button>\n <span>\n {{ pagingDisplay }}\n </span>\n <button\n type=\"button\"\n class=\"btn btn-sm role-multi-action\"\n data-testid=\"pagination-next\"\n :disabled=\"page == totalPages || loading\"\n @click=\"goToPage('next')\"\n >\n <i class=\"icon icon-chevron-right\" />\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm role-multi-action\"\n data-testid=\"pagination-last\"\n :disabled=\"page == totalPages || loading\"\n @click=\"goToPage('last')\"\n >\n <i class=\"icon icon-chevron-end\" />\n </button>\n </div>\n <button\n v-if=\"search\"\n v-shortkey.once=\"['/']\"\n class=\"hide\"\n @shortkey=\"focusSearch()\"\n />\n <template v-if=\"tableActions\">\n <button\n v-shortkey=\"['j']\"\n class=\"hide\"\n @shortkey=\"focusNext($event)\"\n />\n <button\n v-shortkey=\"['k']\"\n class=\"hide\"\n @shortkey=\"focusPrevious($event)\"\n />\n <button\n v-shortkey=\"['shift','j']\"\n class=\"hide\"\n @shortkey=\"focusNext($event, true)\"\n />\n <button\n v-shortkey=\"['shift','k']\"\n class=\"hide\"\n @shortkey=\"focusPrevious($event, true)\"\n />\n <slot name=\"shortkeys\" />\n </template>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .sortable-table.alt-loading {\n opacity: 0.5;\n pointer-events: none;\n }\n .advanced-filter-group {\n position: relative;\n margin-left: 10px;\n .advanced-filter-container {\n position: absolute;\n top: 38px;\n right: 0;\n width: 300px;\n border: 1px solid var(--primary);\n background-color: var(--body-bg);\n padding: 20px;\n z-index: 2;\n\n .middle-block {\n display: flex;\n align-items: center;\n margin-top: 20px;\n\n span {\n margin-right: 20px;\n }\n\n button {\n margin-left: 20px;\n }\n }\n\n .bottom-block {\n display: flex;\n align-items: center;\n margin-top: 40px;\n justify-content: space-between;\n }\n }\n }\n\n .advanced-filters-applied {\n display: inline-flex;\n margin: 0;\n padding: 0;\n list-style: none;\n max-width: 100%;\n flex-wrap: wrap;\n justify-content: flex-end;\n\n li {\n margin: 0 20px 10px 0;\n padding: 2px 5px;\n border: 1px solid;\n display: flex;\n align-items: center;\n position: relative;\n height: 20px;\n\n &:nth-child(4n+1) {\n border-color: var(--success);\n\n .bg {\n background-color: var(--success);\n }\n }\n\n &:nth-child(4n+2) {\n border-color: var(--warning);\n\n .bg {\n background-color: var(--warning);\n }\n }\n\n &:nth-child(4n+3) {\n border-color: var(--info);\n\n .bg {\n background-color: var(--info);\n }\n }\n\n &:nth-child(4n+4) {\n border-color: var(--error);\n\n .bg {\n background-color: var(--error);\n }\n }\n\n .bg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0.2;\n z-index: -1;\n }\n\n .label {\n margin-right: 10px;\n font-size: 11px;\n }\n .cross {\n font-size: 12px;\n font-weight: bold;\n cursor: pointer;\n }\n }\n }\n\n td {\n // Aligns with COLUMN_BREAKPOINTS\n @media only screen and (max-width: map-get($breakpoints, '--viewport-4')) {\n // HIDE column on sizes below 480px\n &.tablet, &.laptop, &.desktop {\n display: none;\n }\n }\n @media only screen and (max-width: map-get($breakpoints, '--viewport-9')) {\n // HIDE column on sizes below 992px\n &.laptop, &.desktop {\n display: none;\n }\n }\n @media only screen and (max-width: map-get($breakpoints, '--viewport-12')) {\n // HIDE column on sizes below 1281px\n &.desktop {\n display: none;\n }\n }\n }\n\n // Loading indicator row\n tr td div.data-loading {\n align-items: center;\n display: flex;\n justify-content: center;\n padding: 20px 0;\n > i {\n font-size: 20px;\n height: 20px;\n margin-right: 5px;\n width: 20px;\n }\n }\n\n .search-box {\n height: 40px;\n margin-left: 10px;\n min-width: 180px;\n }\n</style>\n\n<style lang=\"scss\">\n //\n // Important: Almost all selectors in here need to be \">\"-ed together so they\n // apply only to the current table, not one nested inside another table.\n //\n\n $group-row-height: 40px;\n $group-separation: 40px;\n $divider-height: 1px;\n\n $separator: 20;\n $remove: 100;\n $spacing: 10px;\n\n .filter-select .vs__selected-options .vs__selected {\n text-align: left;\n }\n\n .sortable-table {\n border-collapse: collapse;\n min-width: 400px;\n border-radius: 5px 5px 0 0;\n outline: 1px solid var(--border);\n overflow: hidden;\n background: var(--sortable-table-bg);\n border-radius: 4px;\n\n &.overflow-x {\n overflow-x: visible;\n }\n &.overflow-y {\n overflow-y: visible;\n }\n\n td {\n padding: 8px 5px;\n border: 0;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n &.row-check {\n padding-top: 12px;\n }\n }\n\n tbody {\n tr {\n border-bottom: 1px solid var(--sortable-table-top-divider);\n background-color: var(--sortable-table-row-bg);\n\n &.main-row.has-sub-row {\n border-bottom: 0;\n }\n\n // if a main-row is hovered also hover it's sibling sub row. note - the reverse is handled in selection.js\n &.main-row:not(.row-selected):hover + .sub-row {\n background-color: var(--sortable-table-hover-bg);\n }\n\n &:last-of-type {\n border-bottom: 0;\n }\n\n &:hover, &.sub-row-hovered {\n background-color: var(--sortable-table-hover-bg);\n }\n\n &.state-description > td {\n font-size: 13px;\n padding-top: 0;\n overflow-wrap: anywhere;\n }\n }\n\n tr.active-row {\n color: var(--sortable-table-header-bg);\n }\n\n tr.row-selected {\n background: var(--sortable-table-selected-bg);\n }\n\n .no-rows {\n td {\n padding: 30px 0;\n text-align: center;\n }\n }\n\n .no-rows, .no-results {\n &:hover {\n background-color: var(--body-bg);\n }\n }\n\n &.group {\n &:before {\n content: \"\";\n display: block;\n height: 20px;\n background-color: transparent;\n }\n }\n\n tr.group-row {\n background-color: initial;\n\n &:first-child {\n border-bottom: 2px solid var(--sortable-table-row-bg);\n }\n\n &:not(:first-child) {\n margin-top: 20px;\n }\n\n td {\n padding: 0;\n\n &:first-of-type {\n border-left: 1px solid var(--sortable-table-accent-bg);\n }\n }\n\n .group-tab {\n @include clearfix;\n height: $group-row-height;\n line-height: $group-row-height;\n padding: 0 10px;\n border-radius: 4px 4px 0px 0px;\n background-color: var(--sortable-table-row-bg);\n position: relative;\n top: 1px;\n display: inline-block;\n z-index: z-index('tableGroup');\n min-width: $group-row-height * 1.8;\n\n > SPAN {\n color: var(--sortable-table-group-label);\n }\n }\n\n .group-tab:after {\n height: $group-row-height;\n width: 70px;\n border-radius: 5px 5px 0px 0px;\n background-color: var(--sortable-table-row-bg);\n content: \"\";\n position: absolute;\n right: -15px;\n top: 0px;\n transform: skewX(40deg);\n z-index: -1;\n }\n }\n }\n }\n\n .for-inputs{\n & TABLE.sortable-table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: $spacing;\n\n >TBODY>TR>TD, >THEAD>TR>TH {\n padding-right: $spacing;\n padding-bottom: $spacing;\n\n &:last-of-type {\n padding-right: 0;\n }\n }\n\n >TBODY>TR:first-of-type>TD {\n padding-top: $spacing;\n }\n\n >TBODY>TR:last-of-type>TD {\n padding-bottom: 0;\n }\n }\n\n &.edit, &.create, &.clone {\n TABLE.sortable-table>THEAD>TR>TH {\n border-color: transparent;\n }\n }\n }\n\n .sortable-table-header {\n position: relative;\n z-index: z-index('fixedTableHeader');\n\n &.titled {\n display: flex;\n align-items: center;\n }\n }\n .fixed-header-actions.button{\n grid-template-columns: [bulk] auto [middle] min-content [search] minmax(min-content, 350px);\n }\n\n .fixed-header-actions {\n padding: 0 0 20px 0;\n width: 100%;\n z-index: z-index('fixedTableHeader');\n background: transparent;\n display: grid;\n grid-template-columns: [bulk] auto [middle] min-content [search] minmax(min-content, 200px);\n grid-column-gap: 10px;\n\n &.advanced-filtering {\n grid-template-columns: [bulk] auto [middle] minmax(min-content, auto) [search] minmax(min-content, auto);\n }\n\n .bulk {\n grid-area: bulk;\n\n $gap: 10px;\n\n & > BUTTON {\n display: none; // Handled dynamically\n }\n\n & > BUTTON:not(:last-of-type) {\n margin-right: $gap;\n }\n\n .action-availability {\n display: none; // Handled dynamically\n margin-left: $gap;\n vertical-align: middle;\n margin-top: 2px;\n }\n\n .dropdown-button {\n $disabled-color: var(--disabled-text);\n $disabled-cursor: not-allowed;\n li.disabled {\n color: $disabled-color;\n cursor: $disabled-cursor;\n\n &:hover {\n color: $disabled-color;\n background-color: unset;\n cursor: $disabled-cursor;\n }\n }\n }\n\n .bulk-action {\n .icon {\n vertical-align: -10%;\n }\n }\n }\n\n .middle {\n grid-area: middle;\n white-space: nowrap;\n\n .icon.icon-backup.animate {\n animation-name: spin;\n animation-duration: 1000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n }\n\n @keyframes spin {\n from {\n transform:rotate(0deg);\n }\n to {\n transform:rotate(360deg);\n }\n }\n }\n\n .search {\n grid-area: search;\n text-align: right;\n justify-content: flex-end;\n }\n\n .bulk-actions-dropdown {\n display: none; // Handled dynamically\n\n .dropdown-button {\n background-color: var(--primary);\n\n &:hover {\n background-color: var(--primary-hover-bg);\n color: var(--primary-hover-text);\n }\n\n > *, .icon-chevron-down {\n color: var(--primary-text);\n }\n\n .button-divider {\n border-color: var(--primary-text);\n }\n\n &.disabled {\n border-color: var(--disabled-bg);\n\n .icon-chevron-down {\n color: var(--disabled-text) !important;\n }\n\n .button-divider {\n border-color: var(--disabled-text);\n }\n }\n }\n }\n }\n\n .paging {\n margin-top: 10px;\n text-align: center;\n\n SPAN {\n display: inline-block;\n min-width: 200px;\n }\n }\n</style>\n","<script>\nexport default {\n name: 'ActionDropdown',\n\n props: {\n size: {\n type: String,\n default: '' // possible values are xs, sm, lg. empty is default .btn\n },\n // whether this is a button and dropdown (default) or dropdown that looks like a button/dropdown\n dualAction: {\n type: Boolean,\n default: true\n },\n\n disableButton: {\n type: Boolean,\n default: false\n }\n },\n\n computed: {\n buttonSize() {\n const { size } = this;\n let out;\n\n switch (size) {\n case '':\n out = 'btn';\n break;\n case 'xs':\n out = 'btn btn-xs';\n break;\n case 'sm':\n out = 'btn btn-sm';\n break;\n case 'lg':\n out = 'btn btn-lg';\n break;\n default:\n }\n\n return out;\n }\n },\n\n methods: {\n hasSlot(name = 'default') {\n return !!this.$slots[name] || !!this.$slots.name();\n },\n\n // allows parent components to programmatically open the dropdown\n togglePopover() {\n // this.$refs.popoverButton.click();\n },\n }\n};\n</script>\n<template>\n <div class=\"dropdown-button-group\">\n <div\n class=\"dropdown-button bg-primary\"\n :class=\"{'one-action':!dualAction, [buttonSize]:true, 'disabled': disableButton}\"\n >\n <v-dropdown\n placement=\"bottom\"\n :container=\"false\"\n :disabled=\"disableButton\"\n :flip=\"false\"\n >\n <slot\n name=\"button-content\"\n :buttonSize=\"buttonSize\"\n >\n <button\n ref=\"popoverButton\"\n class=\"icon-container bg-primary no-left-border-radius\"\n :class=\"buttonSize\"\n :disabled=\"disableButton\"\n type=\"button\"\n >\n Button <i class=\"icon icon-chevron-down\" />\n </button>\n </slot>\n <template #popper>\n <slot name=\"popover-content\" />\n </template>\n </v-dropdown>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n// load here instead of component so SSR render isn't all wonky\n.dropdown-button-group {\n $xs-padding: 2px 3px;\n\n .no-left-border-radius {\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n }\n\n .no-right-border-radius {\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n }\n\n .btn {\n line-height: normal;\n border: 0px;\n }\n\n .btn-xs,\n .btn-group-xs > .btn,\n .btn-xs .btn-label {\n padding: $xs-padding;\n font-size: 13px;\n }\n\n // this matches the top/bottom padding of the default button\n $trigger-padding: 15px 10px 15px 10px;\n $xs-trigger-padding: 2px 4px 4px 4px;\n $sm-trigger-padding: 10px 10px 10px 10px;\n $lg-trigger-padding: 18px 10px 10px 10px;\n\n .v-popper {\n .text-right {\n margin-top: 5px;\n }\n .trigger {\n height: 100%;\n .icon-container {\n height: 100%;\n padding: 10px 10px 10px 10px;\n i {\n transform: scale(1);\n }\n &.btn-xs {\n padding: $xs-trigger-padding;\n }\n &.btn-sm {\n padding: $sm-trigger-padding;\n }\n &.btn-lg {\n padding: $lg-trigger-padding;\n }\n &:focus {\n outline-style: none;\n box-shadow: none;\n border-color: transparent;\n }\n }\n }\n }\n\n .dropdown-button {\n background: var(--tooltip-bg);\n color: var(--link-text);\n padding: 0;\n display: inline-flex;\n\n .wrapper-content {\n button {\n border-right: 0px;\n }\n }\n\n &>*, .icon-chevron-down {\n color: var(--primary);\n background-color: rgba(0,0,0,0);\n }\n\n &.bg-primary:hover {\n background: var(--accent-btn-hover);\n }\n\n &.one-action {\n position: relative;\n &>.btn {\n padding: 15px 35px 15px 15px;\n }\n .v-popper{\n .trigger{\n position: absolute;\n top: 0px;\n right: 0px;\n left: 0px;\n bottom: 0px;\n BUTTON {\n position: absolute;\n right: 0px;\n }\n }\n }\n }\n }\n .v-popper__popper {\n border: none;\n }\n .v-popper__popper {\n margin-top: 0px;\n\n &[data-popper-placement^=\"bottom\"] {\n .v-popper__arrow-container {\n display: none;\n }\n }\n\n .v-popper__inner {\n color: var(--dropdown-text);\n background-color: var(--dropdown-bg);\n border: 1px solid var(--dropdown-border);\n padding: 0px;\n text-align: left;\n\n LI {\n padding: 10px;\n\n &.divider {\n padding-top: 0px;\n padding-bottom: 0px;\n\n > .divider-inner {\n padding: 0;\n border-bottom: 1px solid var(--dropdown-divider);\n width: 125%;\n margin: 0 auto;\n }\n }\n\n &:not(.divider):hover {\n background-color: var(--dropdown-hover-bg);\n color: var(--dropdown-hover-text);\n cursor: pointer;\n }\n }\n\n }\n }\n\n //header\n .user-info {\n border-bottom: 1px solid var(--border);\n display: block;\n }\n}\n\n</style>\n","import { render } from \"./ActionDropdown.vue?vue&type=template&id=2829f66d\"\nimport script from \"./ActionDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./ActionDropdown.vue?vue&type=script&lang=js\"\n\nimport \"./ActionDropdown.vue?vue&type=style&index=0&id=2829f66d&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { SOME, NONE } from './selection';\nimport { AUTO, CENTER, fitOnScreen } from '@shell/utils/position';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\n\nexport default {\n emits: ['update-cols-options', 'on-toggle-all', 'group-value-change', 'on-sort-change', 'col-visibility-change'],\n\n components: { Checkbox, LabeledSelect },\n props: {\n columns: {\n type: Array,\n required: true\n },\n sortBy: {\n type: String,\n required: true\n },\n defaultSortBy: {\n type: String,\n default: ''\n },\n group: {\n type: String,\n default: ''\n },\n groupOptions: {\n type: Array,\n default: () => []\n },\n descending: {\n type: Boolean,\n required: true\n },\n hasAdvancedFiltering: {\n type: Boolean,\n required: false\n },\n tableColsOptions: {\n type: Array,\n default: () => [],\n },\n tableActions: {\n type: Boolean,\n required: true,\n },\n rowActions: {\n type: Boolean,\n required: true,\n },\n howMuchSelected: {\n type: String,\n required: true,\n },\n checkWidth: {\n type: Number,\n default: 30,\n },\n rowActionsWidth: {\n type: Number,\n required: true\n },\n subExpandColumn: {\n type: Boolean,\n default: false,\n },\n expandWidth: {\n type: Number,\n default: 30,\n },\n labelFor: {\n type: Function,\n required: true,\n },\n noRows: {\n type: Boolean,\n default: true,\n },\n noResults: {\n type: Boolean,\n default: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n },\n\n data() {\n return {\n tableColsOptionsVisibility: false,\n tableColsMenuPosition: null\n };\n },\n\n watch: {\n advancedFilteringValues() {\n // passing different dummy args to make sure update is triggered\n this.watcherUpdateLiveAndDelayed(true, false);\n },\n tableColsOptionsVisibility(neu) {\n if (neu) {\n // check if user clicked outside the table cols options box\n window.addEventListener('click', this.onClickOutside);\n\n // update filtering options and toggable cols every time dropdown is open\n this.$emit('update-cols-options');\n } else {\n // unregister click event\n window.removeEventListener('click', this.onClickOutside);\n }\n }\n },\n computed: {\n isAll: {\n get() {\n return this.howMuchSelected !== NONE;\n },\n\n set(value) {\n this.$emit('on-toggle-all', value);\n }\n },\n hasAdvGrouping() {\n return this.group?.length && this.groupOptions?.length;\n },\n advGroup: {\n get() {\n return this.group || this.advGroup;\n },\n\n set(val) {\n this.$emit('group-value-change', val);\n }\n },\n\n isIndeterminate() {\n return this.howMuchSelected === SOME;\n },\n hasColumnWithSubLabel() {\n return this.columns.some((col) => col.subLabel);\n }\n },\n\n methods: {\n changeSort(e, col) {\n if ( !col.sort ) {\n return;\n }\n\n let desc = false;\n\n if ( this.sortBy === col.name ) {\n desc = !this.descending;\n }\n\n this.$emit('on-sort-change', col.name, desc);\n },\n\n isCurrent(col) {\n return col.name === this.sortBy;\n },\n\n ariaSort(col) {\n if (this.isCurrent(col)) {\n return this.descending ? this.t('generic.descending') : this.t('generic.ascending');\n }\n\n return this.t('generic.none');\n },\n\n tableColsOptionsClick(ev) {\n // set menu position\n const menu = document.querySelector('.table-options-container');\n const elem = document.querySelector('.table-options-btn');\n\n this.tableColsMenuPosition = fitOnScreen(menu, ev || elem, {\n overlapX: true,\n fudgeX: 326,\n fudgeY: -22,\n positionX: CENTER,\n positionY: AUTO,\n });\n\n // toggle visibility\n this.tableColsOptionsVisibility = !this.tableColsOptionsVisibility;\n },\n\n onClickOutside(event) {\n const tableOpts = this.$refs['table-options'];\n\n if (!tableOpts || tableOpts.contains(event.target)) {\n return;\n }\n this.tableColsOptionsVisibility = false;\n },\n\n tableOptionsCheckbox(value, label) {\n this.$emit('col-visibility-change', {\n label,\n value\n });\n },\n\n tooltip(col) {\n if (!col.tooltip) {\n return null;\n }\n\n const exists = this.$store.getters['i18n/exists'];\n\n return exists(col.tooltip) ? this.t(col.tooltip) : col.tooltip;\n },\n }\n\n};\n</script>\n\n<template>\n <thead>\n <tr :class=\"{'loading': loading, 'top-aligned': hasColumnWithSubLabel}\">\n <th\n v-if=\"tableActions\"\n :width=\"checkWidth\"\n >\n <Checkbox\n v-model:value=\"isAll\"\n class=\"check\"\n data-testid=\"sortable-table_check_select_all\"\n :indeterminate=\"isIndeterminate\"\n :disabled=\"noRows || noResults\"\n />\n </th>\n <th\n v-if=\"subExpandColumn\"\n :width=\"expandWidth\"\n />\n <th\n v-for=\"(col) in columns\"\n v-show=\"!hasAdvancedFiltering || (hasAdvancedFiltering && col.isColVisible)\"\n :key=\"col.name\"\n :align=\"col.align || 'left'\"\n :width=\"col.width\"\n :class=\"{ sortable: col.sort, [col.breakpoint]: !!col.breakpoint}\"\n :tabindex=\"col.sort ? 0 : -1\"\n class=\"sortable-table-head-element\"\n :aria-sort=\"ariaSort(col)\"\n @click.prevent=\"changeSort($event, col)\"\n @keyup.enter=\"changeSort($event, col)\"\n @keyup.space=\"changeSort($event, col)\"\n >\n <div\n class=\"table-header-container\"\n :class=\"{ 'not-filterable': hasAdvancedFiltering && !col.isFilter }\"\n >\n <div\n v-clean-tooltip=\"tooltip(col)\"\n class=\"content\"\n >\n <span v-clean-html=\"labelFor(col)\" />\n <span\n v-if=\"col.subLabel\"\n class=\"text-muted\"\n >\n {{ col.subLabel }}\n </span>\n </div>\n <div\n v-if=\"col.sort\"\n class=\"sort\"\n >\n <i\n v-show=\"hasAdvancedFiltering && !col.isFilter\"\n v-clean-tooltip=\"t('sortableTable.tableHeader.noFilter')\"\n class=\"icon icon-info not-filter-icon\"\n />\n <span class=\"icon-stack\">\n <i class=\"icon icon-sort icon-stack-1x faded\" />\n <i\n v-if=\"isCurrent(col) && !descending\"\n class=\"icon icon-sort-down icon-stack-1x\"\n />\n <i\n v-if=\"isCurrent(col) && descending\"\n class=\"icon icon-sort-up icon-stack-1x\"\n />\n </span>\n </div>\n </div>\n </th>\n <th\n v-if=\"rowActions && hasAdvancedFiltering && tableColsOptions.length\"\n :width=\"rowActionsWidth\"\n >\n <div\n ref=\"table-options\"\n class=\"table-options-group\"\n >\n <button\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n type=\"button\"\n class=\"btn btn-sm role-multi-action table-options-btn\"\n @click=\"tableColsOptionsClick\"\n >\n <i class=\"icon icon-actions\" />\n </button>\n <div\n v-show=\"tableColsOptionsVisibility\"\n class=\"table-options-container\"\n :style=\"tableColsMenuPosition\"\n >\n <div\n v-if=\"hasAdvGrouping\"\n class=\"table-options-grouping\"\n >\n <span class=\"table-options-col-subtitle\">{{ t('sortableTable.tableHeader.groupBy') }}:</span>\n <LabeledSelect\n v-model:value=\"advGroup\"\n class=\"table-options-grouping-select\"\n :clearable=\"true\"\n :options=\"groupOptions\"\n :disabled=\"false\"\n :searchable=\"false\"\n mode=\"edit\"\n :multiple=\"false\"\n :taggable=\"false\"\n />\n </div>\n <p class=\"table-options-col-subtitle mb-20\">\n {{ t('sortableTable.tableHeader.show') }}:\n </p>\n <ul>\n <li\n v-for=\"(col, index) in tableColsOptions\"\n v-show=\"col.isTableOption\"\n :key=\"index\"\n :class=\"{ 'visible': !col.preventColToggle }\"\n >\n <Checkbox\n v-show=\"!col.preventColToggle\"\n v-model:value=\"col.isColVisible\"\n class=\"table-options-checkbox\"\n :label=\"col.label\"\n @update:value=\"tableOptionsCheckbox($event, col.label)\"\n />\n </li>\n </ul>\n </div>\n </div>\n </th>\n <th\n v-else-if=\"rowActions\"\n :width=\"rowActionsWidth\"\n />\n </tr>\n </thead>\n</template>\n\n <style lang=\"scss\" scoped>\n .table-options-group {\n\n .table-options-btn.role-multi-action {\n background-color: transparent;\n border: none;\n font-size: 18px;\n &:hover, &:focus {\n background-color: var(--accent-btn);\n box-shadow: none;\n }\n }\n .table-options-container {\n width: 350px;\n border: 1px solid var(--primary);\n background-color: var(--body-bg);\n padding: 20px;\n z-index: 1;\n\n .table-options-grouping {\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n\n span {\n white-space: nowrap;\n margin-right: 10px;\n }\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n max-height: 200px;\n overflow-y: auto;\n\n li {\n margin: 0;\n padding: 0;\n\n &.visible {\n margin: 0 0 10px 0;\n }\n }\n }\n }\n }\n\n .sortable > SPAN {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n &:hover,\n &:active {\n text-decoration: underline;\n color: var(--body-text);\n }\n }\n\n .top-aligned th {\n vertical-align: top;\n padding-top: 10px;\n }\n\n thead {\n tr {\n background-color: var(--sortable-table-header-bg);\n color: var(--body-text);\n text-align: left;\n border-bottom: 1px solid var(--sortable-table-top-divider);\n }\n }\n\n th {\n padding: 8px 5px;\n font-weight: normal;\n border: 0;\n color: var(--body-text);\n\n &.sortable-table-head-element:focus-visible {\n @include focus-outline;\n outline-offset: -4px;\n }\n\n .table-header-container {\n display: inline-flex;\n\n .content {\n display: flex;\n flex-direction: column;\n }\n\n &.not-filterable {\n margin-top: -2px;\n\n .icon-stack {\n margin-top: -2px;\n }\n }\n\n .not-filter-icon {\n font-size: 16px;\n color: var(--primary);\n vertical-align: super;\n }\n }\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n &:not(.sortable) > SPAN {\n display: block;\n margin-bottom: 2px;\n }\n\n & A {\n color: var(--body-text);\n }\n\n // Aligns with COLUMN_BREAKPOINTS\n @media only screen and (max-width: map-get($breakpoints, '--viewport-4')) {\n // HIDE column on sizes below 480px\n &.tablet, &.laptop, &.desktop {\n display: none;\n }\n }\n @media only screen and (max-width: map-get($breakpoints, '--viewport-9')) {\n // HIDE column on sizes below 992px\n &.laptop, &.desktop {\n display: none;\n }\n }\n @media only screen and (max-width: map-get($breakpoints, '--viewport-12')) {\n // HIDE column on sizes below 1281px\n &.desktop {\n display: none;\n }\n }\n }\n\n .icon-stack {\n width: 12px;\n }\n\n .icon-sort {\n &.faded {\n opacity: .3;\n }\n }\n </style>\n <style lang=\"scss\">\n .table-options-checkbox .checkbox-custom {\n min-width: 14px;\n }\n .table-options-checkbox .checkbox-label {\n color: var(--body-text);\n }\n </style>\n","export function getParent(el, parentSelector) {\n el = el?.parentElement;\n\n if (!el) {\n return null;\n }\n\n const matchFn = el.matches || el.matchesSelector;\n\n if (!matchFn.call(el, parentSelector)) {\n return getParent(el, parentSelector);\n }\n\n return el;\n}\n","import { mapGetters } from 'vuex';\nimport { isMore, isRange, suppressContextMenu, isAlternate } from '@shell/utils/platform';\nimport { get } from '@shell/utils/object';\nimport { filterBy } from '@shell/utils/array';\nimport { getParent } from '@shell/utils/dom';\n\nexport const ALL = 'all';\nexport const SOME = 'some';\nexport const NONE = 'none';\n\nexport default {\n mounted() {\n const table = this.$el.querySelector('TABLE');\n\n this._onRowClickBound = this.onRowClick.bind(this);\n this._onRowMousedownBound = this.onRowMousedown.bind(this);\n this._onRowContextBound = this.onRowContext.bind(this);\n\n table.addEventListener('click', this._onRowClickBound);\n table.addEventListener('mousedown', this._onRowMousedownBound);\n table.addEventListener('contextmenu', this._onRowContextBound);\n },\n\n beforeUnmount() {\n const table = this.$el.querySelector('TABLE');\n\n table.removeEventListener('click', this._onRowClickBound);\n table.removeEventListener('mousedown', this._onRowMousedownBound);\n table.removeEventListener('contextmenu', this._onRowContextBound);\n },\n\n computed: {\n ...mapGetters({\n // Use either these Vuex getters\n // OR the props to set the action menu state,\n // but don't use both.\n targetElem: 'action-menu/elem',\n shouldShow: 'action-menu/showing',\n }),\n // Used for the table-level selection check-box to show checked (all selected)/intermediate (some selected)/unchecked (none selected)\n howMuchSelected() {\n const total = this.pagedRows.length;\n const selected = this.selectedRows.length;\n\n if ( selected >= total && total > 0 ) {\n return ALL;\n } else if ( selected > 0 ) {\n return SOME;\n }\n\n return NONE;\n },\n\n // NOTE: The logic here could be simplified and made more performant\n bulkActionsForSelection() {\n let disableAll = false;\n\n // pagedRows is all rows in the current page\n const all = this.pagedRows;\n const allRows = this.arrangedRows || all;\n let selected = this.selectedRows;\n\n // Nothing is selected\n if ( !this.selectedRows.length ) {\n // and there are no rows\n if ( !allRows ) {\n return [];\n }\n\n const firstNode = allRows[0];\n\n selected = firstNode ? [firstNode] : [];\n disableAll = true;\n }\n\n const map = {};\n\n // Find and add all the actions for all the nodes so that we know\n // what all the possible actions are\n for ( const node of all ) {\n if (node.availableActions) {\n for ( const act of node.availableActions ) {\n if ( act.bulkable ) {\n _add(map, act, false);\n }\n }\n }\n }\n\n // Go through all the selected items and add the actions (which were already identified above)\n // as available for some (or all) of the selected nodes\n for ( const node of selected ) {\n if (node.availableActions) {\n for ( const act of node.availableActions ) {\n if ( act.bulkable && act.enabled ) {\n _add(map, act, false);\n }\n }\n }\n }\n\n // If there's no items actually selected, we want to see all the actions\n // so you know what exists, but have them all be disabled since there's nothing to do them on.\n const out = _filter(map, disableAll);\n\n // Enable a bulkaction if some of the selected items can perform the action\n out.forEach((bulkAction) => {\n const actionEnabledForSomeSelected = this.selectedRows.some((node) => {\n const availableActions = node.availableActions || [];\n\n return availableActions.some((action) => action.action === bulkAction.action && action.enabled);\n });\n\n bulkAction.enabled = this.selectedRows.length > 0 && actionEnabledForSomeSelected;\n });\n\n return out.sort((a, b) => (b.weight || 0) - (a.weight || 0));\n }\n },\n\n data() {\n return {\n // List of selected items in the table\n selectedRows: [],\n prevNode: null,\n };\n },\n\n watch: {\n // On page change\n pagedRows() {\n // When the table contents changes:\n // - Remove items that are in the selection but no longer in the table.\n\n const content = this.pagedRows;\n const toRemove = [];\n\n for (const node of this.selectedRows) {\n if (!content.includes(node) ) {\n toRemove.push(node);\n }\n }\n\n this.update([], toRemove);\n }\n },\n\n methods: {\n onToggleAll(value) {\n if ( value ) {\n this.update(this.pagedRows, []);\n\n return true;\n } else {\n this.update([], this.pagedRows);\n\n return false;\n }\n },\n\n onRowMousedown(e) {\n if ( isRange(e) || this.isSelectionCheckbox(e.target) ) {\n e.preventDefault();\n }\n },\n\n onRowMouseEnter(e) {\n const tr = e.target.closest('TR');\n\n if (tr.classList.contains('sub-row')) {\n const trMainRow = tr.previousElementSibling;\n\n trMainRow.classList.add('sub-row-hovered');\n }\n },\n\n onRowMouseLeave(e) {\n const tr = e.target.closest('TR');\n\n if (tr.classList.contains('sub-row')) {\n const trMainRow = tr.previousElementSibling;\n\n trMainRow.classList.remove('sub-row-hovered');\n }\n },\n\n nodeForEvent(e) {\n const tagName = e.target.tagName;\n const tgt = e.target;\n const actionElement = tgt.closest('.actions');\n\n if ( tgt.classList.contains('select-all-check') ) {\n return;\n }\n\n if ( !actionElement ) {\n if (\n tagName === 'A' ||\n tagName === 'BUTTON' ||\n getParent(tgt, '.btn')\n ) {\n return;\n }\n }\n\n const tgtRow = e.target.closest('TR');\n\n return this.nodeForRow(tgtRow);\n },\n\n nodeForRow(tgtRow) {\n if ( tgtRow?.classList.contains('separator-row') ) {\n return;\n }\n\n while ( tgtRow && !tgtRow.classList.contains('main-row') ) {\n tgtRow = tgtRow.previousElementSibling;\n }\n\n if ( !tgtRow ) {\n return;\n }\n\n const nodeId = tgtRow.dataset.nodeId;\n\n if ( !nodeId ) {\n return;\n }\n\n const node = this.pagedRows.find( (x) => get(x, this.keyField) === nodeId );\n\n return node;\n },\n\n async onRowClick(e) {\n const node = this.nodeForEvent(e);\n const td = e.target.closest('TD');\n const skipSelect = td?.classList.contains('skip-select');\n\n if (skipSelect) {\n return;\n }\n const selection = this.selectedRows;\n const isCheckbox = this.isSelectionCheckbox(e.target) || td?.classList.contains('row-check');\n const isExpand = td?.classList.contains('row-expand');\n const content = this.pagedRows;\n\n this.$emit('rowClick', e);\n\n if ( !node ) {\n return;\n }\n\n if ( isExpand ) {\n this.toggleExpand(node);\n\n return;\n }\n\n const actionElement = e.target.closest('.actions');\n\n if ( actionElement ) {\n let resources = [node];\n\n if ( this.mangleActionResources ) {\n const i = actionElement.querySelector('i');\n\n i.classList.remove('icon-actions');\n i.classList.add('icon-spinner');\n i.classList.add('icon-spin');\n\n try {\n resources = await this.mangleActionResources(resources);\n } finally {\n i.classList.remove('icon-spinner');\n i.classList.remove('icon-spin');\n i.classList.add('icon-actions');\n }\n }\n\n if (!this.targetElem && !this.shouldShow) {\n this.$store.commit(`action-menu/show`, {\n resources,\n event: e,\n elem: actionElement\n });\n } else if (this.targetElem === actionElement && this.shouldShow) {\n // this condition is needed so that we can \"toggle\" the action menu with\n // the keyboard for accessibility (row action menu)\n this.$store.commit('action-menu/hide');\n }\n\n return;\n }\n\n const isSelected = selection.includes(node);\n let prevNode = this.prevNode;\n\n // PrevNode is only valid if it's in the current content\n if ( !prevNode || !content.includes(prevNode) ) {\n prevNode = node;\n }\n\n if ( isMore(e) ) {\n this.toggle(node);\n } else if ( isRange(e) ) {\n const toToggle = this.nodesBetween(prevNode, node);\n\n if ( isSelected ) {\n this.update([], toToggle);\n } else {\n this.update(toToggle, []);\n }\n } else if ( isCheckbox ) {\n this.toggle(node);\n } else {\n this.update([node], content);\n }\n\n this.prevNode = node;\n },\n\n async onRowContext(e) {\n const node = this.nodeForEvent(e);\n\n if ( suppressContextMenu(e) ) {\n return;\n }\n\n if ( !node ) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n this.prevNode = node;\n const isSelected = this.selectedRows.includes(node);\n\n if ( !isSelected ) {\n this.update([node], this.selectedRows.slice());\n }\n\n let resources = this.selectedRows;\n\n if ( this.mangleActionResources ) {\n resources = await this.mangleActionResources(resources);\n }\n\n this.$store.commit(`action-menu/show`, {\n resources,\n event: e,\n });\n },\n\n keySelectRow(row, more = false) {\n const node = this.nodeForRow(row);\n const content = this.pagedRows;\n\n if ( !node ) {\n return;\n }\n\n if ( more ) {\n this.update([node], []);\n } else {\n this.update([node], content);\n }\n\n this.prevNode = node;\n },\n\n isSelectionCheckbox(element) {\n return element.tagName === 'INPUT' &&\n element.type === 'checkbox' &&\n element.closest('.selection-checkbox') !== null;\n },\n\n nodesBetween(a, b) {\n let toToggle = [];\n const key = this.groupBy;\n\n if ( key ) {\n // Grouped has 2 levels to look through\n const grouped = this.groupedRows;\n\n let from = this.groupIdx(a);\n let to = this.groupIdx(b);\n\n if ( !from || !to ) {\n return [];\n }\n\n // From has to come before To\n if ( (from.group > to.group) || ((from.group === to.group) && (from.item > to.item)) ) {\n [from, to] = [to, from];\n }\n\n for ( let i = from.group ; i <= to.group ; i++ ) {\n const items = grouped[i].rows;\n let j = (from.group === i ? from.item : 0);\n\n while ( items[j] && ( i < to.group || j <= to.item )) {\n toToggle.push(items[j]);\n j++;\n }\n }\n } else {\n // Ungrouped is much simpler\n const content = this.pagedRows;\n let from = content.indexOf(a);\n let to = content.indexOf(b);\n\n [from, to] = [Math.min(from, to), Math.max(from, to)];\n toToggle = content.slice(from, to + 1);\n }\n\n // check if there is already duplicate content selected (selectedRows) on the list to toggle...\n toToggle = toToggle.filter((item) => !this.selectedRows.includes(item));\n\n return toToggle;\n },\n\n groupIdx(node) {\n const grouped = this.groupedRows;\n\n for ( let i = 0 ; i < grouped.length ; i++ ) {\n const rows = grouped[i].rows;\n\n for ( let j = 0 ; j < rows.length ; j++ ) {\n if ( rows[j] === node ) {\n return {\n group: i,\n item: j\n };\n }\n }\n }\n\n return null;\n },\n\n toggle(node) {\n const add = [];\n const remove = [];\n\n if (this.selectedRows.includes(node)) {\n remove.push(node);\n } else {\n add.push(node);\n }\n\n this.update(add, remove);\n },\n\n update(toAdd, toRemove) {\n toRemove.forEach((row) => {\n const index = this.selectedRows.findIndex((r) => r === row);\n\n if (index !== -1) {\n this.selectedRows.splice(index, 1);\n }\n });\n\n if ( toAdd ) {\n this.selectedRows.push(...toAdd);\n }\n\n // Uncheck and check the checkboxes of nodes that have been added/removed\n if (toRemove.length) {\n this.$nextTick(() => {\n for ( let i = 0 ; i < toRemove.length ; i++ ) {\n this.updateInput(toRemove[i], false, this.keyField);\n }\n });\n }\n\n if (toAdd.length) {\n this.$nextTick(() => {\n for ( let i = 0 ; i < toAdd.length ; i++ ) {\n this.updateInput(toAdd[i], true, this.keyField);\n }\n });\n }\n\n this.$nextTick(() => {\n this.$emit('selection', this.selectedRows);\n });\n },\n\n updateInput(node, on, keyField) {\n const id = get(node, keyField);\n\n if ( id ) {\n // Note: This is looking for the checkbox control for the row\n const input = this.$el.querySelector(`div[data-checkbox-ctrl][data-node-id=\"${ id }\"]`);\n\n if ( input && !input.disabled ) {\n const label = input.querySelector('label');\n\n if (label) {\n label.value = on;\n }\n let tr = input.closest('tr');\n let first = true;\n\n while ( tr && (first || tr.classList.contains('sub-row') ) ) {\n if (on) {\n tr.classList.add('row-selected');\n } else {\n tr.classList.remove('row-selected');\n }\n tr = tr.nextElementSibling;\n first = false;\n }\n }\n }\n },\n\n select(nodes) {\n nodes.forEach((node) => {\n const id = get(node, this.keyField);\n const input = this.$el.querySelector(`label[data-node-id=\"${ id }\"]`);\n\n input.dispatchEvent(new Event('click'));\n });\n },\n\n applyTableAction(action, args, event) {\n const opts = { alt: event && isAlternate(event), event };\n\n // Go through the table selection and filter out those actions that can't run the chosen action\n const executableSelection = this.selectedRows.filter((row) => {\n const matchingResourceAction = row.availableActions.find((a) => a.action === action.action);\n\n return matchingResourceAction?.enabled;\n });\n\n _execute(executableSelection, action, args, opts, this);\n\n this.actionOfInterest = null;\n },\n\n clearSelection() {\n this.update([], this.selectedRows);\n },\n\n }\n};\n\n// ---------------------------------------------------------------------\n// --- Helpers that were in selectionStore.js --------------------------\n// ---------------------------------------------------------------------\n\nlet anon = 0;\n\nfunction _add(map, act, incrementCounts = true) {\n let id = act.action;\n\n if ( !id ) {\n id = `anon${ anon }`;\n anon++;\n }\n\n let obj = map[id];\n\n if ( !obj ) {\n obj = Object.assign({}, act);\n map[id] = obj;\n obj.allEnabled = false;\n }\n\n if ( !act.enabled ) {\n obj.allEnabled = false;\n } else {\n obj.anyEnabled = true;\n }\n\n if ( incrementCounts ) {\n obj.available = (obj.available || 0) + (!act.enabled ? 0 : 1 );\n obj.total = (obj.total || 0) + 1;\n }\n\n return obj;\n}\n\nfunction _filter(map, disableAll = false) {\n const out = filterBy(Object.values(map), 'anyEnabled', true);\n\n for ( const act of out ) {\n if ( disableAll ) {\n act.enabled = false;\n } else {\n act.enabled = ( act.available >= act.total );\n }\n }\n\n return out;\n}\n\nfunction _execute(resources, action, args, opts = {}, ctx) {\n args = args || [];\n\n // New pattern for extensions - always call invoke\n if (action.invoke) {\n const actionOpts = {\n action,\n event: opts.event,\n isAlt: !!opts.alt,\n };\n\n return action.invoke.apply(ctx, [actionOpts, resources || [], args]);\n }\n\n if ( resources.length > 1 && action.bulkAction && !opts.alt ) {\n const fn = resources[0][action.bulkAction];\n\n if ( fn ) {\n return fn.call(resources[0], resources, ...args);\n }\n }\n\n const promises = [];\n\n for ( const resource of resources ) {\n let fn;\n\n if (opts.alt && action.altAction) {\n fn = resource[action.altAction];\n } else {\n fn = resource[action.action];\n }\n\n if ( fn ) {\n promises.push(fn.apply(resource, args));\n }\n }\n\n return Promise.all(promises);\n}\n","import { render } from \"./THead.vue?vue&type=template&id=d8d3445c&scoped=true\"\nimport script from \"./THead.vue?vue&type=script&lang=js\"\nexport * from \"./THead.vue?vue&type=script&lang=js\"\n\nimport \"./THead.vue?vue&type=style&index=0&id=d8d3445c&lang=scss&scoped=true\"\nimport \"./THead.vue?vue&type=style&index=1&id=d8d3445c&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d8d3445c\"]])\n\nexport default __exports__","import { get } from '@shell/utils/object';\nimport { addObject, addObjects, isArray, removeAt } from '@shell/utils/array';\n\nexport const ADV_FILTER_ALL_COLS_VALUE = 'allcols';\nexport const ADV_FILTER_ALL_COLS_LABEL = 'All Columns';\nconst LABEL_IDENTIFIER = ':::islabel';\n\nexport default {\n data() {\n return {\n searchQuery: null,\n previousFilter: null,\n previousResult: null,\n };\n },\n\n computed: {\n searchFields() {\n const out = columnsToSearchField(this.columns);\n\n if ( this.extraSearchFields ) {\n addObjects(out, this.extraSearchFields);\n }\n\n return out;\n },\n\n /*\n subFields: computed('subHeaders.@each.{searchField,name}', 'extraSearchSubFields.[]', function() {\n let out = headersToSearchField(get(this, 'subHeaders'));\n\n return out.addObjects(get(this, 'extraSearchSubFields') || []);\n }),\n */\n filteredRows() {\n if (this.externalPaginationEnabled) {\n return;\n }\n\n // PROP hasAdvancedFiltering comes from Advanced Filtering mixin (careful changing data var there...)\n if (!this.hasAdvancedFiltering) {\n return this.handleFiltering();\n } else {\n return this.handleAdvancedFiltering();\n }\n },\n },\n\n methods: {\n handleAdvancedFiltering() {\n this.subMatches = null;\n\n if (this.searchQuery.length) {\n const out = (this.arrangedRows || []).slice();\n\n const res = out.filter((row) => {\n return this.searchQuery.every((f) => {\n if (f.prop === ADV_FILTER_ALL_COLS_VALUE) {\n // advFilterSelectOptions comes from Advanced Filtering mixin\n // remove the All Columns option from the list so that we don't iterate over it\n const allCols = this.advFilterSelectOptions.slice(1);\n let searchFields = [];\n\n allCols.forEach((col) => {\n if (col.value.includes('[') && col.value.includes(']')) {\n searchFields = searchFields.concat(JSON.parse(col.value));\n } else {\n // this means we are on the presence of a label, which should be dealt\n // carefully because of object path such row.metadata.labels.\"app.kubernetes.io/managed-by\n const value = col.isLabel ? `${ col.label }${ LABEL_IDENTIFIER }` : col.value;\n\n searchFields.push(value);\n }\n });\n\n return handleStringSearch(searchFields, [f.value], row);\n } else {\n if (f.prop.includes('[') && f.prop.includes(']')) {\n return handleStringSearch(JSON.parse(f.prop), [f.value], row);\n }\n\n let prop = f.prop;\n\n // this means we are on the presence of a label, which should be dealt\n // carefully because of object path such row.metadata.labels.\"app.kubernetes.io/managed-by\"\n if (f.prop.includes('metadata.labels')) {\n prop = `${ f.label }${ LABEL_IDENTIFIER }`;\n }\n\n return handleStringSearch([prop], [f.value], row);\n }\n });\n });\n\n return res;\n }\n\n // return arrangedRows array if we don't have anything to search for...\n return this.arrangedRows;\n },\n\n handleFiltering() {\n const searchText = (this.searchQuery || '').trim().toLowerCase();\n let out;\n\n if ( searchText && this.previousResult && searchText.startsWith(this.previousFilter) ) {\n // If the new search is an addition to the last one, we can start with the same set of results as last time\n // and filter those down, since adding more searchText can only reduce the number of results.\n out = this.previousResult.slice();\n } else {\n this.previousResult = null;\n out = (this.arrangedRows || []).slice();\n }\n\n this.previousFilter = searchText;\n\n if ( !searchText.length ) {\n this.subMatches = null;\n this.previousResult = null;\n\n return out;\n }\n\n const searchFields = this.searchFields;\n const searchTokens = searchText.split(/\\s*[, ]\\s*/);\n const subSearch = this.subSearch;\n const subFields = this.subFields;\n const subMatches = {};\n\n for ( let i = out.length - 1 ; i >= 0 ; i-- ) {\n const row = out[i];\n let hits = 0;\n let mainFound = true;\n\n mainFound = handleStringSearch(searchFields, searchTokens, row);\n\n if ( subFields && subSearch) {\n const subRows = row[subSearch] || [];\n\n for ( let k = subRows.length - 1 ; k >= 0 ; k-- ) {\n let subFound = true;\n\n subFound = handleStringSearch(subFields, searchTokens, row);\n\n if ( subFound ) {\n hits++;\n }\n }\n\n subMatches[get(row, this.keyField)] = hits;\n }\n\n if ( !mainFound && hits === 0 ) {\n removeAt(out, i);\n }\n }\n\n this.subMatches = subMatches;\n this.previousResult = out;\n\n return out;\n }\n },\n\n watch: {\n arrangedRows(q) {\n // The rows changed so the old filter result is no longer useful\n this.previousResult = null;\n },\n\n searchQuery() {\n this.debouncedPaginationChanged();\n },\n },\n};\n\nfunction columnsToSearchField(columns) {\n const out = [];\n\n (columns || []).forEach((column) => {\n const field = column.search;\n\n if ( field ) {\n if ( typeof field === 'string' ) {\n addObject(out, field);\n } else if ( isArray(field) ) {\n addObjects(out, field);\n }\n } else if ( field === false ) {\n // Don't add the name\n } else {\n // Use value/name as the default\n addObject(out, column.value || column.name);\n }\n });\n\n return out.filter((x) => !!x);\n}\n\nconst ipLike = /^[0-9a-f\\.:]+$/i;\n\nfunction handleStringSearch(searchFields, searchTokens, row) {\n for ( let j = 0 ; j < searchTokens.length ; j++ ) {\n let expect = true;\n let token = searchTokens[j];\n\n if ( token.substr(0, 1) === '!' ) {\n expect = false;\n token = token.substr(1);\n }\n\n if ( token && matches(searchFields, token, row) !== expect ) {\n return false;\n }\n\n return true;\n }\n}\n\nfunction matches(fields, token, item) {\n for ( let field of fields ) {\n if ( !field ) {\n continue;\n }\n\n // some items might not even have metadata.labels or metadata.labels.something... ignore those items. Nothing to filter by\n if (typeof field !== 'function' &&\n field.includes(LABEL_IDENTIFIER) &&\n (!item.metadata.labels || !item.metadata.labels[field.replace(LABEL_IDENTIFIER, '')])) {\n continue;\n }\n\n let modifier;\n let val;\n\n if (typeof field === 'function') {\n val = field(item);\n } else if (field.includes(LABEL_IDENTIFIER)) {\n val = item.metadata.labels[field.replace(LABEL_IDENTIFIER, '')];\n } else {\n const idx = field.indexOf(':');\n\n if ( idx > 0 ) {\n modifier = field.substr(idx + 1);\n field = field.substr(0, idx);\n }\n\n if ( field.includes('.') ) {\n val = get(item, field);\n } else {\n val = item[field];\n }\n }\n\n if ( val === undefined ) {\n continue;\n }\n\n val = (`${ val }`).toLowerCase();\n if ( !val ) {\n continue;\n }\n\n if ( !modifier ) {\n if ( val.includes((`${ token }`).toLowerCase()) ) {\n return true;\n }\n } else if ( modifier === 'exact' ) {\n if ( val === token ) {\n return true;\n }\n } else if ( modifier === 'ip' ) {\n const tokenMayBeIp = ipLike.test(token);\n\n if ( tokenMayBeIp ) {\n const re = new RegExp(`(?:^|\\\\.)${ token }(?:\\\\.|$)`);\n\n if ( re.test(val) ) {\n return true;\n }\n }\n } else if ( modifier === 'prefix' ) {\n if ( val.indexOf(token) === 0) {\n return true;\n }\n }\n }\n\n return false;\n}\n","import { sortBy } from '@shell/utils/sort';\nimport { uniq } from '@shell/utils/array';\n\n/**\n * Always sort by something, this is the best guess on properties\n *\n * Can be overriden\n */\nconst DEFAULT_MANDATORY_SORT = ['nameSort', 'id'];\n\nexport default {\n computed: {\n sortFields() {\n let fromGroup = ( this.groupBy ? this.groupSort || this.groupBy : null) || [];\n let fromColumn = [];\n\n const column = (this.columns || this.headers).find((x) => x && x.name && x.name.toLowerCase() === this.sortBy.toLowerCase());\n\n if ( this.sortBy && column && column.sort ) {\n fromColumn = column.sort;\n }\n\n if ( !Array.isArray(fromGroup) ) {\n fromGroup = [fromGroup];\n }\n\n if ( !Array.isArray(fromColumn) ) {\n fromColumn = [fromColumn];\n }\n\n // return the sorting based on grouping, user selection and fallback\n return uniq([...fromGroup, ...fromColumn].concat(...(this.mandatorySort || DEFAULT_MANDATORY_SORT)));\n },\n\n arrangedRows() {\n if (this.externalPaginationEnabled) {\n return;\n }\n\n let key;\n\n // Why is sortGeneration needed when we have sortGenerationFn?\n // 1. sortGenerationFn is called when this fn is kicked off and returns latest and greatest string (given things like namespace)\n // 2. it can be kicked off with stale rows... which is then stored against latest string\n // 3. when updates rows comes through... sortGenerationFn returns same string\n // 4. we therefor think nothing has changed and return old, stale rows\n // This is avoided by outside storage of sortGeneration against rows\n // (it would be nice to have that hash on the rows object itself, but it gets messy)\n const sortGenerationKey = this.sortGeneration || this.sortGenerationFn?.apply(this);\n\n if ( sortGenerationKey) {\n key = `${ sortGenerationKey }/${ this.rows.length }/${ this.descending }/${ this.sortFields.join(',') }`;\n if ( this.cacheKey === key ) {\n return this.cachedRows;\n }\n }\n\n const out = sortBy(this.rows, this.sortFields, this.descending);\n\n if ( key ) {\n this.cacheKey = key;\n this.cachedRows = out;\n }\n\n return out;\n },\n },\n\n data() {\n let sortBy = null;\n\n this._defaultSortBy = this.defaultSortBy;\n\n // Try to find a reasonable default sort\n if ( !this._defaultSortBy ) {\n const markedColumn = this.headers.find((x) => !!x.defaultSort);\n const nameColumn = this.headers.find( (x) => x.name === 'name');\n\n if ( markedColumn ) {\n this._defaultSortBy = markedColumn.name;\n } else if ( nameColumn ) {\n // Use the name column if there is one\n this._defaultSortBy = nameColumn.name;\n } else {\n // The first column that isn't state\n const first = this.headers.filter( (x) => x.name !== 'state' )[0];\n\n if ( first ) {\n this._defaultSortBy = first.name;\n } else {\n // I give up\n this._defaultSortBy = 'id';\n }\n }\n }\n\n // If the sort column doesn't exist or isn't specified, use default\n if ( !sortBy || !this.headers.find((x) => x.name === sortBy ) ) {\n sortBy = this._defaultSortBy;\n }\n\n return {\n sortBy,\n descending: false,\n cachedRows: null,\n cacheKey: null,\n };\n },\n\n methods: {\n changeSort(sort, desc) {\n this.sortBy = sort;\n this.descending = desc;\n\n // Always go back to the first page when the sort is changed\n this.setPage(1);\n },\n },\n\n watch: {\n sortFields() {\n this.debouncedPaginationChanged();\n },\n\n descending() {\n this.debouncedPaginationChanged();\n }\n }\n};\n","import { ROWS_PER_PAGE } from '@shell/store/prefs';\n\nexport default {\n computed: {\n totalRows() {\n if (this.externalPaginationEnabled) {\n return this.externalPaginationResult?.count || 0;\n }\n\n return this.filteredRows.length;\n },\n\n indexFrom() {\n return Math.max(0, 1 + this.perPage * (this.page - 1));\n },\n\n indexTo() {\n return Math.min(this.totalRows, this.indexFrom + this.perPage - 1);\n },\n\n totalPages() {\n return Math.ceil(this.totalRows / this.perPage );\n },\n\n showPaging() {\n if (!this.paging) {\n return false;\n }\n\n const havePages = this.totalPages > 1;\n\n if (this.altLoading) {\n return havePages;\n }\n\n return !this.loading && havePages;\n },\n\n pagingDisplay() {\n const opt = {\n ...(this.pagingParams || {}),\n\n count: this.totalRows,\n pages: this.totalPages,\n from: this.indexFrom,\n to: this.indexTo,\n };\n\n return this.$store.getters['i18n/t'](this.pagingLabel, opt);\n },\n\n pagedRows() {\n if (this.externalPaginationEnabled) {\n return this.rows;\n } else if ( this.paging ) {\n return this.filteredRows.slice(this.indexFrom - 1, this.indexTo);\n } else {\n return this.filteredRows;\n }\n }\n },\n\n data() {\n const perPage = this.getPerPage();\n\n return { page: 1, perPage };\n },\n\n watch: {\n pagedRows() {\n // Go to the last page if we end up \"past\" the last page because the table changed\n\n const from = this.indexFrom;\n const last = this.totalRows;\n\n if ( this.totalPages > 0 && this.page > 1 && from > last ) {\n this.setPage(this.totalPages);\n }\n },\n\n page() {\n this.debouncedPaginationChanged();\n },\n\n perPage() {\n this.debouncedPaginationChanged();\n },\n\n },\n\n methods: {\n getPerPage() {\n // perPage can not change while the list is displayed\n let out = this.rowsPerPage || 0;\n\n if ( out <= 0 ) {\n out = parseInt(this.$store.getters['prefs/get'](ROWS_PER_PAGE), 10) || 0;\n }\n\n // This should ideally never happen, but the preference value could be invalid, so return something...\n if ( out <= 0 ) {\n out = 10;\n }\n\n return out;\n },\n\n setPage(num) {\n if (this.page === num) {\n return;\n }\n\n this.page = num;\n },\n\n goToPage(which) {\n let page;\n\n switch (which) {\n case 'first':\n page = 1;\n break;\n case 'prev':\n page = Math.max(1, this.page - 1 );\n break;\n case 'next':\n page = Math.min(this.totalPages, this.page + 1 );\n break;\n case 'last':\n page = this.totalPages;\n break;\n }\n\n this.setPage(page);\n },\n\n getPageByRow(rowId, getRowId = (x) => x) {\n const pos = this.filteredRows.map(getRowId).indexOf(rowId);\n\n if (pos === -1) {\n return null;\n }\n\n return Math.ceil(pos / this.perPage);\n }\n }\n};\n","import { get } from '@shell/utils/object';\n\nexport default {\n computed: {\n /**\n * The group config associated with the selected group\n */\n selectedGroupOption() {\n return this.groupOptions?.find((go) => go.value === this.group);\n },\n\n groupedRows() {\n const groupKey = this.groupBy;\n const refKey = this.groupRef || this.selectedGroupOption?.groupLabelKey || groupKey;\n\n if ( !groupKey) {\n return [{\n key: 'default',\n ref: 'default',\n rows: this.pagedRows,\n }];\n }\n\n const out = [];\n const map = {};\n\n for ( const obj of this.pagedRows ) {\n const key = get(obj, groupKey) || '';\n const ref = get(obj, refKey);\n let entry = map[key];\n\n if ( entry ) {\n entry.rows.push(obj);\n } else {\n entry = {\n key,\n ref,\n rows: [obj]\n };\n map[key] = entry;\n out.push(entry);\n }\n }\n\n return out;\n }\n }\n};\n","import debounce from 'lodash/debounce';\n\n// Use a visible display type to reduce flickering\nconst displayType = 'inline-block';\n\nexport default {\n\n data() {\n return {\n bulkActionsClass: 'bulk',\n bulkActionClass: 'bulk-action',\n bulkActionsDropdownClass: 'bulk-actions-dropdown',\n bulkActionAvailabilityClass: 'action-availability',\n\n hiddenActions: [],\n\n updateHiddenBulkActions: debounce(this.protectedUpdateHiddenBulkActions, 10)\n };\n },\n\n beforeUnmount() {\n window.removeEventListener('resize', this.onWindowResize);\n },\n\n mounted() {\n window.addEventListener('resize', this.onWindowResize);\n this.updateHiddenBulkActions();\n },\n\n watch: {\n selectedRows() {\n this.updateHiddenBulkActions();\n },\n keyedAvailableActions() {\n this.updateHiddenBulkActions();\n },\n },\n\n computed: {\n availableActions() {\n return this.bulkActionsForSelection.filter((act) => !act.external);\n },\n\n keyedAvailableActions() {\n return this.availableActions.map((aa) => aa.action);\n },\n\n selectedRowsText() {\n if (!this.selectedRows.length) {\n return null;\n }\n\n return this.t('sortableTable.actionAvailability.selected', { actionable: this.selectedRows.length });\n },\n\n // Shows a tooltip if the bulk action that the user is hovering over can not be applied to all selected rows\n actionTooltip() {\n if (!this.selectedRows.length || !this.actionOfInterest) {\n return null;\n }\n\n const runnableTotal = this.selectedRows.filter(this.canRunBulkActionOfInterest).length;\n\n if (runnableTotal === this.selectedRows.length) {\n return null;\n }\n\n return this.t('sortableTable.actionAvailability.some', {\n actionable: runnableTotal,\n total: this.selectedRows.length,\n });\n },\n },\n\n methods: {\n onWindowResize() {\n this.updateHiddenBulkActions();\n this.onScroll();\n },\n\n /**\n * Determine if any actions wrap over to a new line, if so group them into a dropdown instead\n */\n protectedUpdateHiddenBulkActions() {\n if (!this.$refs.container) {\n return;\n }\n\n const actionsContainer = this.$refs.container.querySelector(`.${ this.bulkActionsClass }`);\n const actionsDropdown = this.$refs.container.querySelector(`.${ this.bulkActionsDropdownClass }`);\n\n if (!actionsContainer || !actionsDropdown) {\n return;\n }\n\n const actionsContainerWidth = actionsContainer.offsetWidth;\n const actionsHTMLCollection = this.$refs.container.querySelectorAll(`.${ this.bulkActionClass }`);\n const actions = Array.from(actionsHTMLCollection || []);\n\n // Determine if the 'x selected' label should show and it's size\n const selectedRowsText = this.$refs.container.querySelector(`.${ this.bulkActionAvailabilityClass }`);\n let selectedRowsTextWidth = 0;\n\n if (this.selectedRowsText) {\n if (selectedRowsText) {\n selectedRowsText.style.display = displayType;\n selectedRowsTextWidth = selectedRowsText.offsetWidth;\n } else {\n selectedRowsText.style.display = 'none;';\n }\n }\n\n this.hiddenActions = [];\n\n let cumulativeWidth = 0;\n let showActionsDropdown = false;\n let totalAvailableWidth = actionsContainerWidth - selectedRowsTextWidth;\n\n // Loop through all actions to determine if some exceed the available space in the row, if so hide them and instead show in a dropdown\n for (let i = 0; i < actions.length; i++) {\n const ba = actions[i];\n\n ba.style.display = displayType;\n const actionWidth = ba.offsetWidth;\n\n cumulativeWidth += actionWidth + 15;\n if (cumulativeWidth >= totalAvailableWidth) {\n // There are too many actions so the drop down will be visible.\n if (!showActionsDropdown) {\n // If we haven't previously enabled the drop down...\n actionsDropdown.style.display = displayType;\n // By showing the drop down some previously visible actions may now be hidden, so start the process again\n // ... except taking into account the width of drop down width in the available space\n i = -1;\n cumulativeWidth = 0;\n showActionsDropdown = true;\n totalAvailableWidth = actionsContainerWidth - actionsDropdown.offsetWidth - selectedRowsTextWidth;\n } else {\n // Collate the actions in an array and hide in the normal row\n const id = ba.attributes.getNamedItem('id').value;\n\n this.hiddenActions.push(this.availableActions.find((aa) => aa.action === id));\n ba.style.display = 'none';\n }\n }\n }\n\n if (!showActionsDropdown) {\n actionsDropdown.style.display = 'none';\n }\n }\n }\n};\n","import { ADV_FILTER_ALL_COLS_VALUE, ADV_FILTER_ALL_COLS_LABEL } from './filtering';\n\nconst DEFAULT_ADV_FILTER_COLS_VALUE = ADV_FILTER_ALL_COLS_VALUE;\n\nexport default {\n props: {\n /**\n * Group value\n * To be used on the THead component when adv filtering is present\n */\n group: {\n type: String,\n default: () => ''\n },\n /**\n * Group options\n * All of the grouping options available to be used on the THead component when adv filtering is present\n */\n groupOptions: {\n type: Array,\n default: () => []\n },\n /**\n * Flag that controls visibility of advanced filtering feature\n */\n hasAdvancedFiltering: {\n type: Boolean,\n default: false\n },\n /**\n * Flag that controls visibility of labels as possibe toggable cols to be displayed on the Sortable Table\n */\n advFilterHideLabelsAsCols: {\n type: Boolean,\n default: false\n },\n /**\n * Flag that prevents filtering by labels\n */\n advFilterPreventFilteringLabels: {\n type: Boolean,\n default: false\n },\n },\n data() {\n return {\n columnOptions: [],\n colOptionsWatcher: null,\n advancedFilteringVisibility: false,\n advancedFilteringValues: [],\n advFilterSearchTerm: null,\n advFilterSelectedProp: DEFAULT_ADV_FILTER_COLS_VALUE,\n advFilterSelectedLabel: ADV_FILTER_ALL_COLS_LABEL,\n column: null,\n };\n },\n\n mounted() {\n if (this.hasAdvancedFiltering) {\n // trigger to first populate the cols options for filters\n this.updateColsOptions();\n }\n },\n\n watch: {\n advancedFilteringValues() {\n // passing different dummy args to make sure update is triggered\n this.watcherUpdateLiveAndDelayed(true, false);\n },\n advancedFilteringVisibility(neu) {\n if (neu) {\n // check if user clicked outside the advanced filter box\n window.addEventListener('click', this.onClickOutside);\n\n // update filtering options and toggable cols every time dropdown is open\n this.updateColsOptions();\n } else {\n // unregister click event\n window.removeEventListener('click', this.onClickOutside);\n }\n }\n },\n\n computed: {\n advFilterSelectOptions() {\n return this.columnOptions.filter((c) => c.isFilter && !c.preventFiltering);\n },\n\n advGroupOptions() {\n return this.groupOptions.map((item) => {\n return {\n label: this.t(item.tooltipKey),\n value: item.value\n };\n });\n },\n },\n\n methods: {\n handleColsVisibilyAndFiltering(cols) {\n const allCols = cols;\n\n this.columnOptions.forEach((advCol) => {\n if (advCol.isTableOption) {\n const index = allCols.findIndex((col) => col.name === advCol.name);\n\n if (index !== -1) {\n allCols[index].isColVisible = advCol.isColVisible;\n allCols[index].isFilter = advCol.isFilter;\n } else {\n allCols.push(advCol);\n }\n }\n });\n\n return allCols;\n },\n // advanced filtering methods\n setColsOptions() {\n let opts = [];\n const rowLabels = [];\n const headerProps = [];\n\n // Filter out any columns that are too heavy to show for large page sizes\n const filteredHeaders = this.headers.slice().filter((c) => (!c.maxPageSize || (c.maxPageSize && c.maxPageSize >= this.perPage)));\n\n // add table cols from config (headers)\n filteredHeaders.forEach((prop) => {\n const name = prop.name;\n const label = prop.labelKey ? this.t(`${ prop.labelKey }`) : prop.label;\n const isFilter = !!((!Object.keys(prop).includes('search') || prop.search));\n let sortVal = prop.sort;\n const valueProp = prop.valueProp || prop.value;\n let value = null;\n let isColVisible = true;\n\n if (prop.sort && valueProp) {\n if (typeof prop.sort === 'string') {\n sortVal = prop.sort.includes(':') ? [prop.sort.split(':')[0]] : [prop.sort];\n }\n\n if (!sortVal.includes(valueProp)) {\n value = JSON.stringify(sortVal.concat([valueProp]));\n } else {\n value = JSON.stringify([valueProp]);\n }\n } else if (valueProp) {\n value = JSON.stringify([valueProp]);\n } else {\n value = null;\n }\n\n // maintain current visibility of cols if they exist already\n if (this.columnOptions?.length) {\n const opt = this.columnOptions.find((colOpt) => colOpt.name === name && colOpt.label === label);\n\n if (opt) {\n isColVisible = opt.isColVisible;\n }\n }\n\n headerProps.push({\n name,\n label,\n value,\n isFilter,\n isTableOption: true,\n isColVisible\n });\n });\n\n // add labels as table cols\n if (this.rows.length) {\n this.rows.forEach((row) => {\n if (row.metadata?.labels && Object.keys(row.metadata?.labels).length) {\n Object.keys(row.metadata?.labels).forEach((label) => {\n const res = {\n name: label,\n label,\n value: `metadata.labels.${ label }`,\n isFilter: true,\n isTableOption: true,\n isColVisible: false,\n isLabel: true,\n preventFiltering: this.advFilterPreventFilteringLabels,\n preventColToggle: this.advFilterHideLabelsAsCols\n };\n\n // maintain current visibility of cols if they exist already\n if (this.columnOptions?.length) {\n const opt = this.columnOptions.find((colOpt) => colOpt.name === label && colOpt.label === label);\n\n if (opt) {\n res.isColVisible = opt.isColVisible;\n }\n }\n\n if (!rowLabels.filter((row) => row.label === label).length) {\n rowLabels.push(res);\n }\n });\n }\n });\n }\n\n opts = headerProps.concat(rowLabels);\n\n // add find on all cols option...\n if (opts.length) {\n opts.unshift({\n name: ADV_FILTER_ALL_COLS_LABEL,\n label: ADV_FILTER_ALL_COLS_LABEL,\n value: ADV_FILTER_ALL_COLS_VALUE,\n isFilter: true,\n isTableOption: false\n });\n }\n\n return opts;\n },\n addAdvancedFilter() {\n // set new advanced filter\n if (this.advFilterSelectedProp && this.advFilterSearchTerm) {\n this.advancedFilteringValues.push({\n prop: this.advFilterSelectedProp,\n value: this.advFilterSearchTerm,\n label: this.advFilterSelectedLabel\n });\n\n this.eventualSearchQuery = this.advancedFilteringValues;\n\n this.advancedFilteringVisibility = false;\n this.advFilterSelectedProp = DEFAULT_ADV_FILTER_COLS_VALUE;\n this.advFilterSelectedLabel = ADV_FILTER_ALL_COLS_LABEL;\n this.advFilterSearchTerm = null;\n }\n },\n clearAllAdvancedFilters() {\n this.advancedFilteringValues = [];\n this.eventualSearchQuery = this.advancedFilteringValues;\n\n this.advancedFilteringVisibility = false;\n this.advFilterSelectedProp = DEFAULT_ADV_FILTER_COLS_VALUE;\n this.advFilterSelectedLabel = ADV_FILTER_ALL_COLS_LABEL;\n this.advFilterSearchTerm = null;\n },\n clearAdvancedFilter(index) {\n this.advancedFilteringValues.splice(index, 1);\n this.eventualSearchQuery = this.advancedFilteringValues;\n },\n onClickOutside(event) {\n const advFilterBox = this.$refs['advanced-filter-group'];\n\n if (!advFilterBox || advFilterBox.contains(event.target)) {\n return;\n }\n this.advancedFilteringVisibility = false;\n },\n updateColsOptions() {\n this.columnOptions = this.setColsOptions();\n },\n\n // cols visibility\n changeColVisibility(colData) {\n const index = this.columnOptions.findIndex((col) => col.label === colData.label);\n\n if (index !== -1) {\n this.columnOptions[index].isColVisible = colData.value;\n }\n },\n },\n};\n","// Its quicker to render if we directly supply the components for the formatters\n// rather than just the name of a global component - so create a map of the formatter comoponents\n// NOTE: This is populated by a plugin (formatters.js) to avoid issues with plugins\nexport const FORMATTERS = {};\n","import { render } from \"./index.vue?vue&type=template&id=171d81ac&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=171d81ac&lang=scss&scoped=true\"\nimport \"./index.vue?vue&type=style&index=1&id=171d81ac&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-171d81ac\"]])\n\nexport default __exports__","export function updatePageTitle(...breadcrumb: (string | null | undefined | false)[]): void {\n document.title = breadcrumb.filter((s) => s).join(' - ');\n}\n","<script>\nimport { mapGetters } from 'vuex';\nimport { updatePageTitle } from '@shell/utils/title';\nimport { getVendor } from '@shell/config/private-label';\n\nexport default {\n props: {\n /**\n * Include can be 'full', 'vendor-only' or false\n * 'full': Show's the entire breadcrumb include vendor, product and cluster\n * 'vendor-only': Show only the vendor name in the breadcrumb i.e. 'Rancher > \"child\"'\n * false: Don't include any part of the breadcrumb\n */\n breadcrumb: {\n type: [String, Boolean],\n default: 'full',\n validator(value) {\n return ['full', 'vendor-only'].includes(value) || value === false;\n }\n },\n includeVendor: {\n type: Boolean,\n default: true\n },\n showChild: {\n type: Boolean,\n default: true\n }\n },\n computed: { ...mapGetters(['isExplorer', 'currentCluster', 'currentProduct']) },\n\n methods: {\n // This isn't a computed prop because it would trigger a recompute when the $slots changed\n computeTitle() {\n if (!this.$slots.default || (typeof this.$slots.default()[0].children) !== 'string') {\n console.error('The <TabTitle> component only supports text as the child.'); // eslint-disable-line no-console\n\n return [];\n }\n\n const breadcrumb = [this.$slots.default()[0].children.trim()];\n\n if (this.breadcrumb === 'full') {\n if (this.currentCluster && (this.isExplorer || this.currentCluster.isHarvester ) ) {\n breadcrumb.unshift(this.currentCluster.nameDisplay);\n } else if (this.currentProduct?.name) {\n const productName = this.$store.getters['i18n/withFallback'](`product.${ this.currentProduct.name }`, null, null);\n\n if (productName) {\n breadcrumb.unshift(productName);\n }\n }\n }\n\n if (this.includeVendor && ['full', 'vendor-only'].includes(this.breadcrumb)) {\n breadcrumb.unshift(getVendor());\n }\n\n return breadcrumb;\n },\n updatePageTitle() {\n updatePageTitle(...this.computeTitle());\n }\n },\n\n created() {\n this.updatePageTitle();\n },\n\n // Using the render function instead of <template> because <template><slot /></template> will yield a compiler error since\n // <slot /> is not allowed to be a root node of a <template> and I don't want to wrap the child to avoid affecting existing styling\n render() {\n this.updatePageTitle();\n\n return this.showChild ? this.$slots.default() : null;\n }\n};\n</script>\n","import script from \"./TabTitle.vue?vue&type=script&lang=js\"\nexport * from \"./TabTitle.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<script>\nexport default {\n inject: ['addTab', 'removeTab', 'sideTabs'],\n\n emits: ['active'],\n\n props: {\n label: {\n default: null,\n type: String\n },\n labelKey: {\n default: null,\n type: String\n },\n name: {\n required: true,\n type: String\n },\n tooltip: {\n default: null,\n type: [String, Object]\n },\n weight: {\n default: 0,\n required: false,\n type: Number\n },\n showHeader: {\n type: Boolean,\n default: null, // Default true for side-tabs, false for top.\n },\n displayAlertIcon: {\n type: Boolean,\n default: null\n },\n error: {\n type: Boolean,\n default: false\n },\n badge: {\n default: 0,\n required: false,\n type: Number\n },\n },\n\n data() {\n return { active: null };\n },\n\n computed: {\n labelDisplay() {\n if ( this.labelKey ) {\n return this.$store.getters['i18n/t'](this.labelKey);\n }\n\n if ( this.label ) {\n return this.label;\n }\n\n return this.name;\n },\n\n shouldShowHeader() {\n if ( this.showHeader !== null ) {\n return this.showHeader;\n }\n\n return this.sideTabs || false;\n }\n },\n\n watch: {\n active(neu) {\n if (neu) {\n this.$emit('active');\n }\n }\n },\n\n mounted() {\n this.addTab(this);\n },\n\n beforeUnmount() {\n this.removeTab(this);\n }\n};\n</script>\n\n<template>\n <section\n v-show=\"active\"\n :id=\"name\"\n :aria-hidden=\"!active\"\n role=\"tabpanel\"\n >\n <div\n v-if=\"shouldShowHeader\"\n class=\"tab-header\"\n >\n <h2>\n {{ labelDisplay }}\n <i\n v-if=\"tooltip\"\n v-clean-tooltip=\"tooltip\"\n class=\"icon icon-info icon-lg\"\n />\n </h2>\n <slot name=\"tab-header-right\" />\n </div>\n <slot v-bind=\"{active}\" />\n </section>\n</template>\n\n<style lang=\"scss\" scoped>\n.tab-header {\n display: flex;\n justify-content: space-between;\n margin-bottom: 15px;\n align-items: center;\n\n h2 {\n margin: 0;\n\n }\n}\n</style>\n","import { render } from \"./Tab.vue?vue&type=template&id=6f6df00a&scoped=true\"\nimport script from \"./Tab.vue?vue&type=script&lang=js\"\nexport * from \"./Tab.vue?vue&type=script&lang=js\"\n\nimport \"./Tab.vue?vue&type=style&index=0&id=6f6df00a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6f6df00a\"]])\n\nexport default __exports__","<script>\nimport head from 'lodash/head';\nimport isEmpty from 'lodash/isEmpty';\nimport { addObject, removeObject, findBy } from '@shell/utils/array';\nimport { sortBy } from '@shell/utils/sort';\nimport findIndex from 'lodash/findIndex';\nimport { ExtensionPoint, TabLocation } from '@shell/core/types';\nimport { getApplicableExtensionEnhancements } from '@shell/core/plugin-helpers';\nimport Tab from '@shell/components/Tabbed/Tab';\n\nexport default {\n name: 'Tabbed',\n\n components: { Tab },\n\n emits: ['changed', 'addTab', 'removeTab'],\n\n props: {\n defaultTab: {\n type: String,\n default: null,\n },\n\n sideTabs: {\n type: Boolean,\n default: false\n },\n\n hideSingleTab: {\n type: Boolean,\n default: false\n },\n\n showTabsAddRemove: {\n type: Boolean,\n default: false\n },\n\n // whether or not to scroll to the top of the new tab on tab change. This is particularly ugly with side tabs\n scrollOnChange: {\n type: Boolean,\n default: false\n },\n\n useHash: {\n type: Boolean,\n default: true,\n },\n\n noContent: {\n type: Boolean,\n default: false,\n },\n\n // Remove padding and box-shadow\n flat: {\n type: Boolean,\n default: false,\n },\n\n tabsOnly: {\n type: Boolean,\n default: false,\n }\n },\n\n provide() {\n const tabs = this.tabs;\n\n return {\n sideTabs: this.sideTabs,\n\n addTab(tab) {\n const existing = findBy(tabs, 'name', tab.name);\n\n if ( existing ) {\n removeObject(tabs, existing);\n }\n\n addObject(tabs, tab);\n },\n\n removeTab(tab) {\n removeObject(tabs, tab);\n }\n };\n },\n\n data() {\n const extensionTabs = getApplicableExtensionEnhancements(this, ExtensionPoint.TAB, TabLocation.RESOURCE_DETAIL, this.$route, this, this.extensionParams) || [];\n\n const parsedExtTabs = extensionTabs.map((item) => {\n return {\n ...item,\n active: false\n };\n });\n\n return {\n tabs: [...parsedExtTabs],\n extensionTabs: parsedExtTabs,\n activeTabName: null\n };\n },\n\n computed: {\n // keep the tabs list ordered for dynamic tabs\n sortedTabs() {\n return sortBy(this.tabs, ['weight:desc', 'labelDisplay', 'name']);\n },\n\n // hide tabs based on tab count IF flag is active\n hideTabs() {\n return this.hideSingleTab && this.sortedTabs.length === 1;\n }\n },\n\n watch: {\n sortedTabs(tabs) {\n const {\n defaultTab,\n useHash\n } = this;\n const activeTab = tabs.find((t) => t.active);\n\n const hash = useHash ? this.$route.hash : undefined;\n const windowHash = useHash ? hash.slice(1) : undefined;\n const windowHashTabMatch = tabs.find((t) => t.name === windowHash && !t.active);\n const firstTab = head(tabs) || null;\n\n if (isEmpty(activeTab)) {\n if (useHash && !isEmpty(windowHashTabMatch)) {\n this.select(windowHashTabMatch.name);\n } else if (!isEmpty(defaultTab) && !isEmpty(tabs.find((t) => t.name === defaultTab))) {\n this.select(defaultTab);\n } else if (firstTab?.name) {\n this.select(firstTab.name);\n }\n } else if (useHash && activeTab?.name === windowHash) {\n this.select(activeTab.name);\n }\n },\n },\n\n mounted() {\n if ( this.useHash ) {\n window.addEventListener('hashchange', this.hashChange);\n }\n },\n\n unmounted() {\n if ( this.useHash ) {\n window.removeEventListener('hashchange', this.hashChange);\n }\n },\n\n methods: {\n hasIcon(tab) {\n return tab.displayAlertIcon || (tab.error && !tab.active);\n },\n hashChange() {\n if (!this.scrollOnChange) {\n const scrollable = document.getElementsByTagName('main')[0];\n\n if (scrollable) {\n scrollable.scrollTop = 0;\n }\n }\n\n this.select(this.$route.hash);\n },\n\n find(name) {\n return this.sortedTabs.find((x) => x.name === name );\n },\n\n select(name/* , event */) {\n const { sortedTabs } = this;\n\n const selected = this.find(name);\n const hashName = `#${ name }`;\n\n if ( !selected || selected.disabled) {\n return;\n }\n /**\n * Exclude logic with URL anchor (hash) for projects without routing logic (vue-router)\n */\n if ( this.useHash ) {\n const currentRoute = this.$router.currentRoute._value;\n const routeHash = currentRoute.hash;\n\n if (this.useHash && routeHash !== hashName) {\n const kurrentRoute = { ...currentRoute };\n\n kurrentRoute.hash = hashName;\n\n this.$router.replace(kurrentRoute);\n }\n }\n\n for ( const tab of sortedTabs ) {\n tab.active = (tab.name === selected.name);\n }\n\n this.$emit('changed', { tab: selected, selectedName: selected.name });\n this.activeTabName = selected.name;\n },\n\n selectNext(direction) {\n const { sortedTabs } = this;\n const currentIdx = sortedTabs.findIndex((x) => x.active);\n const nextIdx = getCyclicalIdx(currentIdx, direction, sortedTabs.length);\n const nextName = sortedTabs[nextIdx].name;\n\n this.select(nextName);\n\n this.$nextTick(() => {\n this.$refs.tablist.focus();\n });\n\n function getCyclicalIdx(currentIdx, direction, tabsLength) {\n const nxt = currentIdx + direction;\n\n if (nxt >= tabsLength) {\n return 0;\n } else if (nxt <= 0) {\n return tabsLength - 1;\n } else {\n return nxt;\n }\n }\n },\n\n tabAddClicked() {\n const activeTabIndex = findIndex(this.tabs, (tab) => tab.active);\n\n this.$emit('addTab', activeTabIndex);\n },\n\n tabRemoveClicked() {\n const activeTabIndex = findIndex(this.tabs, (tab) => tab.active);\n\n this.$emit('removeTab', activeTabIndex);\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"{'side-tabs': !!sideTabs, 'tabs-only': tabsOnly }\"\n data-testid=\"tabbed\"\n >\n <ul\n v-if=\"!hideTabs\"\n ref=\"tablist\"\n role=\"tablist\"\n class=\"tabs\"\n :class=\"{'clearfix':!sideTabs, 'vertical': sideTabs, 'horizontal': !sideTabs}\"\n data-testid=\"tabbed-block\"\n @keydown.right.prevent=\"selectNext(1)\"\n @keydown.left.prevent=\"selectNext(-1)\"\n @keydown.down.prevent=\"selectNext(1)\"\n @keydown.up.prevent=\"selectNext(-1)\"\n >\n <li\n v-for=\"tab in sortedTabs\"\n :id=\"tab.name\"\n :key=\"tab.name\"\n :data-testid=\"tab.name\"\n :class=\"{tab: true, active: tab.active, disabled: tab.disabled, error: (tab.error)}\"\n role=\"presentation\"\n >\n <a\n :data-testid=\"`btn-${tab.name}`\"\n :aria-controls=\"'#' + tab.name\"\n :aria-selected=\"tab.active\"\n :aria-label=\"tab.labelDisplay\"\n role=\"tab\"\n tabindex=\"0\"\n @click.prevent=\"select(tab.name, $event)\"\n @keyup.enter=\"select(tab.name, $event)\"\n @keyup.space=\"select(tab.name, $event)\"\n >\n <span>{{ tab.labelDisplay }}</span>\n <span\n v-if=\"tab.badge\"\n class=\"tab-badge\"\n >{{ tab.badge }}</span>\n <i\n v-if=\"hasIcon(tab)\"\n v-clean-tooltip=\"t('validation.tab')\"\n class=\"conditions-alert-icon icon-error\"\n />\n </a>\n </li>\n <li\n v-if=\"sideTabs && !sortedTabs.length\"\n class=\"tab disabled\"\n >\n <a\n href=\"#\"\n @click.prevent\n >(None)</a>\n </li>\n <ul\n v-if=\"sideTabs && showTabsAddRemove\"\n class=\"tab-list-footer\"\n >\n <li>\n <button\n type=\"button\"\n class=\"btn bg-transparent\"\n data-testid=\"tab-list-add\"\n @click=\"tabAddClicked\"\n >\n <i class=\"icon icon-plus\" />\n </button>\n <button\n type=\"button\"\n class=\"btn bg-transparent\"\n :disabled=\"!sortedTabs.length\"\n data-testid=\"tab-list-remove\"\n @click=\"tabRemoveClicked\"\n >\n <i class=\"icon icon-minus\" />\n </button>\n </li>\n </ul>\n <slot name=\"tab-row-extras\" />\n </ul>\n <div\n :class=\"{\n 'tab-container': !!tabs.length || !!sideTabs,\n 'no-content': noContent,\n 'tab-container--flat': !!flat,\n }\"\n >\n <slot />\n <!-- Extension tabs -->\n <Tab\n v-for=\"tab, i in extensionTabs\"\n :key=\"`${tab.name}${i}`\"\n :name=\"tab.name\"\n :label=\"tab.label\"\n :label-key=\"tab.labelKey\"\n :weight=\"tab.weight\"\n :tooltip=\"tab.tooltip\"\n :show-header=\"tab.showHeader\"\n :display-alert-icon=\"tab.displayAlertIcon\"\n :error=\"tab.error\"\n :badge=\"tab.badge\"\n >\n <component\n :is=\"tab.component\"\n />\n </Tab>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.tabs {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n &.horizontal {\n border: solid thin var(--border);\n border-bottom: 0;\n display: flex;\n flex-direction: row;\n\n + .tab-container {\n border: solid thin var(--border);\n }\n\n .tab.active {\n border-bottom: solid 2px var(--primary);\n }\n }\n\n &:focus {\n outline: none;\n\n & .tab.active a span {\n text-decoration: underline;\n }\n }\n\n .tab {\n position: relative;\n float: left;\n padding: 0 8px 0 0;\n cursor: pointer;\n\n A {\n display: flex;\n align-items: center;\n padding: 10px 15px;\n\n &:hover {\n text-decoration: none;\n span {\n text-decoration: underline;\n }\n }\n\n &:focus-visible {\n @include focus-outline;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .conditions-alert-icon {\n color: var(--error);\n padding-left: 4px;\n }\n\n &:last-child {\n padding-right: 0;\n }\n\n &.active {\n > A {\n color: var(--primary);\n text-decoration: none;\n }\n }\n\n &.error {\n & A > i {\n color: var(--error);\n }\n }\n\n .tab-badge {\n margin-left: 5px;\n background-color: var(--link);\n color: #fff;\n border-radius: 6px;\n padding: 1px 7px;\n font-size: 11px;\n }\n }\n}\n\n.tab-container {\n padding: 20px;\n\n &.no-content {\n padding: 0 0 3px 0;\n }\n\n // Example case: Tabbed component within a tabbed component\n &--flat {\n padding: 0;\n\n .side-tabs {\n box-shadow: unset;\n }\n }\n}\n\n.tabs-only {\n margin-bottom: 20px;\n\n .tab-container {\n display: none;\n }\n\n .tabs {\n border: 0;\n border-bottom: 2px solid var(--border);\n }\n}\n\n.side-tabs {\n display: flex;\n box-shadow: 0 0 20px var(--shadow);\n border-radius: calc(var(--border-radius) * 2);\n background-color: var(--tabbed-sidebar-bg);\n\n .tab-container {\n padding: 20px;\n }\n\n & .tabs {\n width: $sideways-tabs-width;\n min-width: $sideways-tabs-width;\n display: flex;\n flex: 1 0;\n flex-direction: column;\n\n // &.vertical {\n // .tab.active {\n // background-color: var(--tabbed-container-bg);\n // }\n // }\n\n & .tab {\n width: 100%;\n border-left: solid 5px transparent;\n\n &.toggle A {\n color: var(--primary);\n }\n\n A {\n color: var(--primary);\n }\n\n &.active {\n background-color: var(--body-bg);\n border-left: solid 5px var(--primary);\n\n & A {\n color: var(--input-label);\n }\n }\n\n &.disabled {\n background-color: var(--disabled-bg);\n\n & A {\n color: var(--disabled-text);\n text-decoration: none;\n }\n }\n }\n .tab-list-footer {\n list-style: none;\n padding: 0;\n margin-top: auto;\n\n li {\n display: flex;\n flex: 1;\n\n .btn {\n flex: 1 1;\n display: flex;\n justify-content: center;\n }\n\n button:first-of-type {\n border-top: solid 1px var(--border);\n border-right: solid 1px var(--border);\n border-top-right-radius: 0;\n }\n button:last-of-type {\n border-top: solid 1px var(--border);\n border-top-left-radius: 0;\n }\n }\n }\n }\n\n &\n\n .tab-container {\n width: calc(100% - #{$sideways-tabs-width});\n flex-grow: 1;\n background-color: var(--body-bg);\n }\n}\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=79e80ea7&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=79e80ea7&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-79e80ea7\"]])\n\nexport default __exports__","<script>\nexport default {};\n</script>\n\n<template>\n <span class=\"tag\">\n <slot />\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n .tag {\n border-radius: var(--border-radius);\n color: var(--tag-primary);\n background-color: var(--tag-bg);\n padding: 4px 6px 3px 6px;\n font-size: 12px;\n }\n</style>\n","import { render } from \"./Tag.vue?vue&type=template&id=0d281a35&scoped=true\"\nimport script from \"./Tag.vue?vue&type=script&lang=js\"\nexport * from \"./Tag.vue?vue&type=script&lang=js\"\n\nimport \"./Tag.vue?vue&type=style&index=0&id=0d281a35&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0d281a35\"]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { Banner } from '@components/Banner';\nimport { HIDE_DESC, mapPref } from '@shell/store/prefs';\nimport { addObject } from '@shell/utils/array';\nimport { CATALOG } from '@shell/config/types';\n\nexport default {\n components: { Banner },\n\n props: {\n resource: {\n type: String,\n required: true\n },\n },\n\n computed: {\n ...mapGetters(['currentCluster']),\n hideDescriptions: mapPref(HIDE_DESC),\n\n typeDescriptionKey() {\n let key;\n\n if (this.resource === CATALOG.CLUSTER_REPO) {\n key = !this.currentCluster || this.currentCluster.isLocal ? 'typeDescription.\"catalog.cattle.io.clusterrepo.local\"' : 'typeDescription.\"catalog.cattle.io.clusterrepo\"';\n } else {\n // i18n-uses typeDescription.*\n key = `typeDescription.\"${ this.resource }\"`;\n }\n\n if ( this.hideDescriptions.includes(this.resource) || this.hideDescriptions.includes('ALL') ) {\n return false;\n }\n\n if ( this.$store.getters['i18n/exists'](key) ) {\n return key;\n }\n\n return false;\n },\n },\n\n methods: {\n hideTypeDescription() {\n const neu = this.hideDescriptions.slice();\n\n addObject(neu, this.resource);\n\n this.hideDescriptions = neu;\n },\n },\n};\n</script>\n\n<template>\n <Banner\n v-if=\"typeDescriptionKey\"\n class=\"type-banner mb-20 mt-0\"\n color=\"info\"\n :closable=\"true\"\n :label-key=\"typeDescriptionKey\"\n @close=\"hideTypeDescription\"\n />\n</template>\n","import { render } from \"./TypeDescription.vue?vue&type=template&id=60996d0a\"\nimport script from \"./TypeDescription.vue?vue&type=script&lang=js\"\nexport * from \"./TypeDescription.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport jsyaml from 'js-yaml';\nimport { mapPref, DIFF } from '@shell/store/prefs';\nimport isEmpty from 'lodash/isEmpty';\nimport { saferDump } from '@shell/utils/create-yaml';\nimport CodeMirror from './CodeMirror';\nimport FileDiff from './FileDiff';\n\nexport const EDITOR_MODES = {\n EDIT_CODE: 'EDIT_CODE',\n VIEW_CODE: 'VIEW_CODE',\n DIFF_CODE: 'DIFF_CODE'\n};\n\nexport default {\n emits: ['update:value', 'newObject', 'onInput', 'onReady', 'onChanges', 'validationChanged'],\n\n components: {\n CodeMirror,\n FileDiff\n },\n props: {\n editorMode: {\n type: String,\n default: EDITOR_MODES.EDIT_CODE,\n validator(value) {\n return Object.values(EDITOR_MODES).includes(value);\n }\n },\n\n asObject: {\n type: Boolean,\n default: false,\n },\n\n initialYamlValues: {\n type: [String, Object],\n default: '',\n },\n\n scrolling: {\n type: Boolean,\n default: true,\n },\n\n value: {\n type: [String, Object],\n default: '',\n },\n\n hidePreviewButtons: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'yaml-editor'\n }\n },\n\n data() {\n const { initialYamlValues, value } = this;\n let curValue;\n let original;\n\n if ( this.asObject ) {\n curValue = saferDump(value);\n } else {\n curValue = value || '';\n }\n\n if ( this.asObject && initialYamlValues) {\n original = saferDump(initialYamlValues);\n } else {\n original = initialYamlValues;\n }\n\n if ( isEmpty(original) ) {\n original = value;\n }\n\n return { original, curValue };\n },\n\n computed: {\n codeMirrorOptions() {\n const readOnly = this.editorMode === EDITOR_MODES.VIEW_CODE;\n\n const gutters = [];\n\n if ( !readOnly ) {\n gutters.push('CodeMirror-lint-markers');\n }\n\n gutters.push('CodeMirror-foldgutter');\n\n return {\n readOnly,\n gutters,\n mode: 'yaml',\n lint: !readOnly,\n lineNumbers: !readOnly,\n styleActiveLine: false,\n tabSize: 2,\n indentWithTabs: false,\n cursorBlinkRate: ( readOnly ? -1 : 530 ),\n extraKeys: {\n 'Ctrl-Space': 'autocomplete',\n\n Tab: (cm) => {\n if (cm.somethingSelected()) {\n cm.indentSelection('add');\n\n return;\n }\n\n cm.execCommand('insertSoftTab');\n },\n\n 'Shift-Tab': (cm) => {\n cm.indentSelection('subtract');\n }\n },\n screenReaderLabel: this.t('import.editor.label'),\n // @TODO find a better way to display the outline\n // foldOptions: {\n // widget: (from, to) => {\n // const count = to.line - from.line;\n\n // return count ? `\\u21A4${ count }\\u21A6` : '\\u2194';\n // }\n // }\n };\n },\n\n isPreview() {\n return this.editorMode === EDITOR_MODES.DIFF_CODE;\n },\n\n diffMode: mapPref(DIFF),\n\n showCodeEditor() {\n return [EDITOR_MODES.EDIT_CODE, EDITOR_MODES.VIEW_CODE].includes(this.editorMode);\n },\n },\n\n watch: {\n showUploadPrompt(neu) {\n if (neu) {\n this.$refs.yamluploader.click();\n }\n },\n },\n\n methods: {\n focus() {\n if ( this.$refs.cm ) {\n this.$refs.cm.focus();\n }\n },\n\n refresh() {\n if ( this.$refs.cm ) {\n this.$refs.cm.refresh();\n }\n },\n\n onInput(value) {\n if ( !this.asObject ) {\n this.$emit('update:value', ...arguments);\n }\n\n try {\n const parsed = jsyaml.load(value);\n\n if ( this.asObject ) {\n this.$emit('update:value', parsed);\n } else {\n this.$emit('newObject', parsed);\n }\n } catch (ex) {}\n\n this.$emit('onInput', ...arguments);\n },\n\n onReady() {\n this.$emit('onReady', ...arguments);\n },\n\n onChanges() {\n this.$emit('onChanges', ...arguments);\n },\n\n updateValue(value) {\n this.curValue = value;\n this.$refs.cm.updateValue(value);\n }\n }\n};\n</script>\n\n<template>\n <div class=\"yaml-editor\">\n <div class=\"text-right\">\n <span\n v-if=\"isPreview && !hidePreviewButtons\"\n v-trim-whitespace\n class=\"btn-group btn-sm diff-mode\"\n >\n <button\n type=\"button\"\n class=\"btn btn-sm bg-default\"\n :class=\"{'active': diffMode !== 'split'}\"\n @click=\"diffMode='unified'\"\n >Unified</button>\n <button\n type=\"button\"\n class=\"btn btn-sm bg-default\"\n :class=\"{'active': diffMode === 'split'}\"\n @click=\"diffMode='split'\"\n >Split</button>\n </span>\n </div>\n <CodeMirror\n v-if=\"showCodeEditor\"\n ref=\"cm\"\n :class=\"{fill: true, scrolling: scrolling}\"\n :value=\"curValue\"\n :options=\"codeMirrorOptions\"\n :showKeyMapBox=\"true\"\n :data-testid=\"componentTestid + '-code-mirror'\"\n @onInput=\"onInput\"\n @onReady=\"onReady\"\n @onChanges=\"onChanges\"\n @validationChanged=\"$emit('validationChanged', $event)\"\n />\n <FileDiff\n v-else\n :class=\"{fill: true, scrolling: scrolling}\"\n :filename=\"'.yaml'\"\n :side-by-side=\"diffMode === 'split'\"\n :orig=\"original\"\n :neu=\"curValue\"\n :footer-space=\"80\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n.yaml-editor {\n display: flex;\n flex-direction: column;\n\n .fill {\n flex: 1;\n }\n\n .codemirror-container {\n position: relative;\n\n .CodeMirror {\n background-color: var(--yaml-editor-bg);\n & .CodeMirror-gutters {\n background-color: var(--yaml-editor-bg);\n }\n }\n }\n\n .diff-mode {\n background-color: var(--diff-header-bg);\n padding: 5px 5px;\n\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .d2h-file-wrapper {\n border-top-right-radius: 0;\n }\n}\n</style>\n","<script>\nimport { Diff2HtmlUI } from 'diff2html/lib/ui/js/diff2html-ui-slim.js';\n\nimport { createPatch } from 'diff';\n\nexport default {\n props: {\n filename: {\n type: String,\n default: 'file.txt',\n },\n\n sideBySide: {\n type: Boolean,\n default: false,\n },\n\n orig: {\n type: String,\n required: true,\n },\n\n neu: {\n type: String,\n required: true,\n },\n\n autoResize: {\n type: Boolean,\n default: true,\n },\n footerSpace: {\n type: Number,\n default: 0,\n },\n minHeight: {\n type: Number,\n default: 200,\n }\n },\n\n mounted() {\n this.draw();\n },\n\n watch: {\n sideBySide() {\n this.draw();\n }\n },\n\n methods: {\n draw() {\n const targetElement = document.getElementById('diffElement');\n const patch = createPatch(\n this.filename,\n this.orig,\n this.neu\n );\n const configuration = {\n // UI\n synchronisedScroll: true,\n\n // Base\n outputFormat: this.sideBySide ? 'side-by-side' : 'line-by-line',\n drawFileList: false,\n matching: 'words',\n };\n\n const diff2htmlUi = new Diff2HtmlUI(targetElement, patch, configuration);\n\n diff2htmlUi.draw();\n this.fit();\n },\n\n fit() {\n if ( !this.autoResize ) {\n return;\n }\n\n const container = this.$refs.root;\n\n if ( !container ) {\n return;\n }\n\n const offset = container.getBoundingClientRect();\n\n if ( !offset ) {\n return;\n }\n\n const desired = window.innerHeight - offset.top - this.footerSpace;\n\n container.style.height = `${ Math.max(0, desired) }px`;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <resize-observer @notify=\"fit\" />\n <div\n id=\"diffElement\"\n ref=\"root\"\n class=\"root\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.root {\n max-width: 100%;\n position: relative;\n overflow: auto;\n}\n</style>\n\n<style scoped lang=\"scss\">\n@import 'node_modules/diff2html/bundles/css/diff2html.min.css';\n\n:deep() .d2h-wrapper {\n .d2h-file-header {\n display: none;\n }\n\n .d2h-file-wrapper {\n border-color: var(--diff-border);\n }\n\n .d2h-diff-table {\n font-family: Menlo,Consolas,monospace;\n font-size: 13px;\n }\n\n .d2h-emptyplaceholder, .d2h-code-side-emptyplaceholder {\n border-color: var(--diff-linenum-border);\n background-color: var(--diff-empty-placeholder);\n }\n\n .d2h-code-linenumber,\n .d2h-code-side-linenumber {\n background-color: var(--diff-linenum-bg);\n color: var(--diff-linenum);\n border-color: var(--diff-linenum-border);\n border-left: 0;\n }\n\n .d2h-code-line del,.d2h-code-side-line del {\n background-color: var(--diff-line-del-bg);\n }\n\n .d2h-code-line ins,.d2h-code-side-line ins {\n background-color: var(--diff-line-ins-bg);\n }\n\n .d2h-del {\n background-color: var(--diff-del-bg);\n border-color: var(--diff-del-border);\n color: var(--body-text);\n }\n\n .d2h-ins {\n background-color: var(--diff-ins-bg);\n border-color: var(--diff-ins-border);\n color: var(--body-text);\n }\n\n .d2h-info {\n background-color: var(--diff-header-bg);\n color: var(--diff-header);\n border-color: var(--diff-header-border);\n }\n\n .d2h-file-diff .d2h-del.d2h-change {\n background-color: var(--diff-chg-del);\n }\n\n .d2h-file-diff .d2h-ins.d2h-change {\n background-color: var(--diff-chg-ins);\n }\n}\n</style>\n","import { render } from \"./FileDiff.vue?vue&type=template&id=639a852a&scoped=true\"\nimport script from \"./FileDiff.vue?vue&type=script&lang=js\"\nexport * from \"./FileDiff.vue?vue&type=script&lang=js\"\n\nimport \"./FileDiff.vue?vue&type=style&index=0&id=639a852a&lang=scss&scoped=true\"\nimport \"./FileDiff.vue?vue&type=style&index=1&id=639a852a&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-639a852a\"]])\n\nexport default __exports__","import { render } from \"./YamlEditor.vue?vue&type=template&id=3f74996c\"\nimport script from \"./YamlEditor.vue?vue&type=script&lang=js\"\nexport * from \"./YamlEditor.vue?vue&type=script&lang=js\"\n\nimport \"./YamlEditor.vue?vue&type=style&index=0&id=3f74996c&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport debounce from 'lodash/debounce';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { removeAt } from '@shell/utils/array';\nimport { TextAreaAutoGrow } from '@components/Form/TextArea';\nimport { clone } from '@shell/utils/object';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nconst DEFAULT_PROTIP = 'Tip: Paste lines into any list field for easy bulk entry';\n\nexport default {\n emits: ['add', 'remove', 'update:value'],\n\n components: { TextAreaAutoGrow, LabeledInput },\n props: {\n value: {\n type: Array,\n default: null,\n },\n mode: {\n type: String,\n default: _EDIT,\n },\n initialEmptyRow: {\n type: Boolean,\n default: false,\n },\n title: {\n type: String,\n default: ''\n },\n protip: {\n type: [String, Boolean],\n default: DEFAULT_PROTIP,\n },\n showHeader: {\n type: Boolean,\n default: false,\n },\n valueLabel: {\n type: String,\n default: 'Value',\n },\n valuePlaceholder: {\n type: String,\n default: 'e.g. bar'\n },\n valueMultiline: {\n type: Boolean,\n default: false,\n },\n addLabel: {\n type: String,\n default: '',\n },\n addAllowed: {\n type: Boolean,\n default: true,\n },\n addDisabled: {\n type: Boolean,\n default: false,\n },\n removeLabel: {\n type: String,\n default: '',\n },\n removeAllowed: {\n type: Boolean,\n default: true,\n },\n defaultAddValue: {\n type: [String, Number, Object, Array],\n default: ''\n },\n loading: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n required: {\n type: Boolean,\n default: false\n },\n rules: {\n default: () => [],\n type: Array,\n // we only want functions in the rules array\n validator: (rules) => rules.every((rule) => ['function'].includes(typeof rule))\n },\n },\n data() {\n const input = (Array.isArray(this.value) ? this.value : []).slice();\n const rows = [];\n\n for ( const value of input ) {\n rows.push({ value });\n }\n if ( !rows.length && this.initialEmptyRow ) {\n const value = this.defaultAddValue ? clone(this.defaultAddValue) : '';\n\n rows.push({ value });\n }\n\n return { rows, lastUpdateWasFromValue: false };\n },\n computed: {\n _addLabel() {\n return this.addLabel || this.t('generic.add');\n },\n _removeLabel() {\n return this.removeLabel || this.t('generic.remove');\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n showAdd() {\n return this.addAllowed;\n },\n disableAdd() {\n return this.addDisabled;\n },\n showRemove() {\n return this.removeAllowed;\n },\n isDefaultProtip() {\n return this.protip === DEFAULT_PROTIP;\n },\n showProtip() {\n if (this.protip && !this.isDefaultProtip) {\n return true;\n }\n\n return !this.valueMultiline && this.protip;\n }\n },\n watch: {\n value: {\n deep: true,\n handler() {\n this.lastUpdateWasFromValue = true;\n this.rows = (this.value || []).map((v) => ({ value: v }));\n }\n },\n\n rows: {\n deep: true,\n handler(newValue, oldValue) {\n // lastUpdateWasFromValue is used to break a cycle where when rows are updated\n // this was called which then forced rows to updated again\n if (!this.lastUpdateWasFromValue) {\n this.queueUpdate();\n }\n this.lastUpdateWasFromValue = false;\n }\n }\n },\n created() {\n this.queueUpdate = debounce(this.update, 50);\n },\n methods: {\n add() {\n this.rows.push({ value: clone(this.defaultAddValue) });\n if (this.defaultAddValue) {\n this.queueUpdate();\n }\n this.$nextTick(() => {\n const inputs = this.$refs.value;\n\n if ( inputs && inputs.length > 0 ) {\n inputs[inputs.length - 1].focus();\n }\n this.$emit('add');\n });\n },\n /**\n * Remove item and emits removed row and its own index value\n */\n remove(row, index) {\n this.$emit('remove', { row, index });\n removeAt(this.rows, index);\n this.queueUpdate();\n },\n\n /**\n * Cleanup rows and emit input\n */\n update() {\n if ( this.isView ) {\n return;\n }\n const out = [];\n\n for ( const row of this.rows ) {\n const trim = !this.valueMultiline && (typeof row.value === 'string');\n const value = trim ? row.value.trim() : row.value;\n\n if ( typeof value !== 'undefined' ) {\n out.push(value);\n }\n }\n this.$emit('update:value', out);\n },\n\n /**\n * Handle paste event, e.g. split multiple lines in rows\n */\n onPaste(index, event) {\n event.preventDefault();\n const text = event.clipboardData.getData('text/plain');\n\n if (this.valueMultiline) {\n // Allow to paste multiple lines\n this.rows[index].value = text;\n } else {\n // Prevent to paste the value and emit text in multiple rows\n const split = text.split('\\n').map((value) => ({ value }));\n\n event.preventDefault();\n this.rows.splice(index, 1, ...split);\n }\n\n this.update();\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"title\"\n class=\"clearfix\"\n >\n <slot name=\"title\">\n <h3>\n {{ title }}\n <span\n v-if=\"required\"\n class=\"required\"\n >*</span>\n <i\n v-if=\"showProtip\"\n v-clean-tooltip=\"protip\"\n class=\"icon icon-info\"\n />\n </h3>\n </slot>\n </div>\n\n <template v-if=\"rows.length\">\n <div v-if=\"showHeader\">\n <slot name=\"column-headers\">\n <label class=\"value text-label mb-10\">\n {{ valueLabel }}\n </label>\n </slot>\n </div>\n <div\n v-for=\"(row, idx) in rows\"\n :key=\"idx\"\n :data-testid=\"`array-list-box${ idx }`\"\n class=\"box\"\n >\n <slot\n name=\"columns\"\n :queueUpdate=\"queueUpdate\"\n :i=\"idx\"\n :rows=\"rows\"\n :row=\"row\"\n :mode=\"mode\"\n :isView=\"isView\"\n >\n <div class=\"value\">\n <slot\n name=\"value\"\n :row=\"row\"\n :mode=\"mode\"\n :isView=\"isView\"\n :queue-update=\"queueUpdate\"\n >\n <TextAreaAutoGrow\n v-if=\"valueMultiline\"\n ref=\"value\"\n v-model:value=\"row.value\"\n :data-testid=\"`textarea-${idx}`\"\n :placeholder=\"valuePlaceholder\"\n :mode=\"mode\"\n :disabled=\"disabled\"\n @paste=\"onPaste(idx, $event)\"\n @update:value=\"queueUpdate\"\n />\n <LabeledInput\n v-else-if=\"rules.length > 0\"\n ref=\"value\"\n v-model:value=\"row.value\"\n :data-testid=\"`labeled-input-${idx}`\"\n :placeholder=\"valuePlaceholder\"\n :disabled=\"isView || disabled\"\n :rules=\"rules\"\n :compact=\"false\"\n @paste=\"onPaste(idx, $event)\"\n @update:value=\"queueUpdate\"\n />\n <input\n v-else\n ref=\"value\"\n v-model=\"row.value\"\n :data-testid=\"`input-${idx}`\"\n :placeholder=\"valuePlaceholder\"\n :disabled=\"isView || disabled\"\n @paste=\"onPaste(idx, $event)\"\n >\n </slot>\n </div>\n </slot>\n <div\n v-if=\"showRemove\"\n class=\"remove\"\n >\n <slot\n name=\"remove-button\"\n :remove=\"() => remove(row, idx)\"\n :i=\"idx\"\n :row=\"row\"\n >\n <button\n type=\"button\"\n :disabled=\"isView\"\n class=\"btn role-link\"\n :data-testid=\"`remove-item-${idx}`\"\n @click=\"remove(row, idx)\"\n >\n {{ _removeLabel }}\n </button>\n </slot>\n </div>\n </div>\n </template>\n <div v-else>\n <slot name=\"empty\">\n <div\n v-if=\"mode==='view'\"\n class=\"text-muted\"\n >\n —\n </div>\n </slot>\n </div>\n <div\n v-if=\"showAdd && !isView\"\n class=\"footer mt-20\"\n >\n <slot\n v-if=\"showAdd\"\n name=\"add\"\n :add=\"add\"\n >\n <button\n type=\"button\"\n class=\"btn role-tertiary add\"\n :disabled=\"loading || disableAdd\"\n data-testid=\"array-list-button\"\n @click=\"add()\"\n >\n <i\n v-if=\"loading\"\n class=\"mr-5 icon icon-spinner icon-spin icon-lg\"\n />\n {{ _addLabel }}\n </button>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .title {\n margin-bottom: 10px;\n }\n\n .required {\n color: var(--error);\n }\n\n .box {\n display: grid;\n grid-template-columns: auto $array-list-remove-margin;\n align-items: center;\n margin-bottom: 10px;\n .value {\n flex: 1;\n INPUT {\n height: $unlabeled-input-height;\n }\n }\n }\n .remove {\n text-align: right;\n }\n .footer {\n .protip {\n float: right;\n padding: 5px 0;\n }\n }\n\n .required {\n color: var(--error);\n }\n</style>\n","import { render } from \"./ArrayList.vue?vue&type=template&id=d6b8fa5e&scoped=true\"\nimport script from \"./ArrayList.vue?vue&type=script&lang=js\"\nexport * from \"./ArrayList.vue?vue&type=script&lang=js\"\n\nimport \"./ArrayList.vue?vue&type=style&index=0&id=d6b8fa5e&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d6b8fa5e\"]])\n\nexport default __exports__","<script>\nimport ArrayList from '@shell/components/form/ArrayList';\nimport InfoBox from '@shell/components/InfoBox';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\n\nexport default {\n name: 'ArrayListGrouped',\n components: { ArrayList, InfoBox },\n props: {\n /**\n * Allow to remove items by value or computation\n */\n canRemove: {\n type: [Boolean, Function],\n default: true,\n },\n\n /**\n * Allow to extend list\n */\n canAdd: {\n type: Boolean,\n default: true,\n },\n /**\n * Start with empty row\n */\n initialEmptyRow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Form mode for the component\n */\n mode: {\n type: String,\n default: _EDIT,\n },\n\n value: {\n type: Object,\n default: () => {\n return {};\n },\n },\n },\n\n emits: ['update:value', 'add', 'remove'],\n\n computed: {\n isView() {\n return this.mode === _VIEW;\n }\n },\n\n methods: {\n /**\n * Verify if row can be removed by mode, function and declaration\n */\n canRemoveRow(row, idx) {\n if ( this.isView ) {\n return false;\n }\n\n if ( typeof this.canRemove === 'function' ) {\n return this.canRemove(row, idx);\n }\n\n return this.canRemove;\n },\n }\n};\n</script>\n\n<template>\n <ArrayList\n class=\"array-list-grouped\"\n :value=\"value\"\n v-bind=\"$attrs\"\n :add-allowed=\"canAdd && !isView\"\n :mode=\"mode\"\n :initial-empty-row=\"initialEmptyRow\"\n @update:value=\"$emit('update:value', $event)\"\n @add=\"$emit('add')\"\n @remove=\"$emit('remove', $event)\"\n >\n <template v-slot:columns=\"scope\">\n <InfoBox>\n <slot v-bind=\"scope\" />\n </InfoBox>\n </template>\n <template v-slot:remove-button=\"scope\">\n <button\n v-if=\"canRemoveRow(scope.row, scope.i)\"\n type=\"button\"\n class=\"btn role-link close btn-sm\"\n :data-testid=\"`remove-item-${scope.i}`\"\n @click=\"scope.remove\"\n >\n <i class=\"icon icon-x\" />\n </button>\n <span v-else />\n </template>\n <!-- Pass down templates provided by the caller -->\n <template\n v-for=\"(_, slot) of $slots\"\n #[slot]=\"scope\"\n :key=\"slot\"\n >\n <template v-if=\"typeof $slots[slot] === 'function'\">\n <slot\n :name=\"slot\"\n v-bind=\"scope\"\n />\n </template>\n </template>\n </ArrayList>\n</template>\n\n<style lang=\"scss\">\n.array-list-grouped {\n & > .box {\n position: relative;\n display: block;\n\n & > .remove {\n position: absolute;\n\n top: 0;\n right: 0;\n }\n\n & > .info-box {\n margin-bottom: 0;\n padding-right: 25px;\n }\n }\n}\n\n</style>\n","import { render } from \"./ArrayListGrouped.vue?vue&type=template&id=eb1084c8\"\nimport script from \"./ArrayListGrouped.vue?vue&type=script&lang=js\"\nexport * from \"./ArrayListGrouped.vue?vue&type=script&lang=js\"\n\nimport \"./ArrayListGrouped.vue?vue&type=style&index=0&id=eb1084c8&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { set } from '@shell/utils/object';\n\nexport function createOnSelected(field) {\n return function(contents) {\n set(this, field, contents);\n };\n}\n\nexport default {\n emits: ['error', 'selected'],\n\n props: {\n label: {\n type: String,\n required: true\n },\n\n mode: {\n type: String,\n default: _EDIT\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n includeFileName: {\n type: Boolean,\n default: false,\n },\n\n showGrowlError: {\n type: Boolean,\n default: true\n },\n\n multiple: {\n type: Boolean,\n default: false\n },\n\n byteLimit: {\n type: Number,\n default: 0\n },\n\n readAsDataUrl: {\n type: Boolean,\n default: false\n },\n\n directory: {\n type: Boolean,\n default: false\n },\n\n rawData: {\n type: Boolean,\n default: false\n },\n\n accept: {\n type: String,\n default: '*'\n },\n\n },\n\n computed: {\n isView() {\n return this.mode === _VIEW;\n }\n },\n\n methods: {\n selectFile() {\n // Clear the value so the user can reselect the same file again\n this.$refs.uploader.value = null;\n this.$refs.uploader.click();\n },\n\n async fileChange(event) {\n const input = event.target;\n const files = Array.from(input.files || []);\n\n if (this.byteLimit) {\n for (const file of files) {\n if (file.size > this.byteLimit) {\n this.$emit('error', `${ file.name } exceeds the file size limit of ${ this.byteLimit } bytes`);\n\n return;\n }\n }\n }\n\n if (this.rawData) {\n const unboxedContents = !this.multiple && files.length === 1 ? files[0] : files;\n\n this.$emit('selected', unboxedContents);\n\n return;\n }\n\n try {\n const asyncFileContents = files.map(this.getFileContents);\n const fileContents = await Promise.all(asyncFileContents);\n const unboxedContents = !this.multiple && fileContents.length === 1 ? fileContents[0] : fileContents;\n\n this.$emit('selected', unboxedContents);\n } catch (error) {\n this.$emit('error', error);\n if (this.showGrowlError) {\n this.$store.dispatch('growl/fromError', { title: 'Error reading file', error }, { root: true });\n }\n }\n },\n\n getFileContents(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = (ev) => {\n const value = ev.target.result;\n const name = file.name;\n const fileContents = this.includeFileName ? { value, name } : value;\n\n resolve(fileContents);\n };\n\n reader.onerror = (err) => {\n reject(err);\n };\n if (this.readAsDataUrl) {\n reader.readAsDataURL(file);\n } else {\n reader.readAsText(file);\n }\n });\n }\n }\n};\n</script>\n\n<template>\n <button\n v-if=\"!isView\"\n :disabled=\"disabled\"\n :aria-label=\"label\"\n type=\"button\"\n role=\"button\"\n class=\"file-selector btn\"\n data-testid=\"file-selector__uploader-button\"\n @click=\"selectFile\"\n >\n <span>{{ label }}</span>\n <input\n ref=\"uploader\"\n type=\"file\"\n class=\"hide\"\n :multiple=\"multiple\"\n :webkitdirectory=\"directory\"\n :accept=\"accept\"\n @change=\"fileChange\"\n >\n </button>\n</template>\n","import { render } from \"./FileSelector.vue?vue&type=template&id=4710f09a\"\nimport script from \"./FileSelector.vue?vue&type=script&lang=js\"\nexport * from \"./FileSelector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, renderSlot as _renderSlot, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"buttons\" }\nconst _hoisted_3 = { class: \"left\" }\nconst _hoisted_4 = { class: \"right\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Banner = _resolveComponent(\"Banner\")!\n const _component_t = _resolveComponent(\"t\")!\n const _component_AsyncButton = _resolveComponent(\"AsyncButton\")!\n\n return (!_ctx.isView)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _cache[1] || (_cache[1] = _createElementVNode(\"div\", { class: \"spacer-small\" }, null, -1)),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.errors, (err, idx) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: idx }, [\n _createVNode(_component_Banner, {\n color: \"error\",\n label: err\n }, null, 8, [\"label\"])\n ]))\n }), 128)),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _renderSlot(_ctx.$slots, \"left\")\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"cancel\", {}, () => [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"btn role-secondary\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.done && _ctx.done(...args)))\n }, [\n _createVNode(_component_t, { k: \"generic.cancel\" })\n ])\n ]),\n _renderSlot(_ctx.$slots, \"middle\"),\n _renderSlot(_ctx.$slots, \"save\", {}, () => [\n (!_ctx.isView)\n ? (_openBlock(), _createBlock(_component_AsyncButton, {\n key: 0,\n mode: _ctx.mode,\n disabled: _ctx.disableSave,\n onClick: _ctx.save\n }, null, 8, [\"mode\", \"disabled\", \"onClick\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _renderSlot(_ctx.$slots, \"right\")\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { _VIEW } from '@shell/config/query-params';\nimport AsyncButton, { AsyncButtonCallback } from '@shell/components/AsyncButton.vue';\nimport Banner from '@components/Banner/Banner.vue';\n\nexport default defineComponent({\n emits: ['save', 'done'],\n\n components: { AsyncButton, Banner },\n\n props: {\n /**\n * Current mode of the page\n * passed to asyncButton to determine lables of the button\n */\n mode: {\n type: String,\n required: true,\n },\n\n errors: {\n type: Array,\n default: null,\n },\n\n disableSave: {\n type: Boolean,\n default: false,\n }\n },\n\n computed: {\n isView(): boolean {\n return this.mode === _VIEW;\n },\n },\n\n methods: {\n save(buttonCb: AsyncButtonCallback) {\n this.$emit('save', buttonCb);\n },\n\n done() {\n this.$emit('done');\n }\n }\n});\n</script>\n<template>\n <div v-if=\"!isView\">\n <div class=\"spacer-small\" />\n\n <div\n v-for=\"(err,idx) in errors\"\n :key=\"idx\"\n >\n <Banner\n color=\"error\"\n :label=\"err\"\n />\n </div>\n <div class=\"buttons\">\n <div class=\"left\">\n <slot name=\"left\" />\n </div>\n <div class=\"right\">\n <slot name=\"cancel\">\n <button\n type=\"button\"\n class=\"btn role-secondary\"\n @click=\"done\"\n >\n <t k=\"generic.cancel\" />\n </button>\n </slot>\n <slot name=\"middle\" />\n <slot name=\"save\">\n <AsyncButton\n v-if=\"!isView\"\n :mode=\"mode\"\n :disabled=\"disableSave\"\n @click=\"save\"\n />\n </slot>\n <slot name=\"right\" />\n </div>\n </div>\n </div>\n</template>\n\n<style lang='scss'>\n .buttons {\n display: grid;\n grid-template-areas: \"left right\";\n grid-template-columns: \"min-content auto\";\n\n .left {\n grid-area: left;\n text-align: left;\n\n .btn, button {\n margin: 0 $column-gutter 0 0;\n }\n }\n\n .right {\n grid-area: right;\n text-align: right;\n\n .btn, button {\n margin: 0 0 0 $column-gutter;\n }\n }\n }\n</style>\n","import { render } from \"./Footer.vue?vue&type=template&id=5743b8c9&ts=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=5743b8c9&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CompactInput from '@shell/mixins/compact-input';\nimport LabeledFormElement from '@shell/mixins/labeled-form-element';\nimport { get } from '@shell/utils/object';\nimport { LabeledTooltip } from '@components/LabeledTooltip';\nimport VueSelectOverrides from '@shell/mixins/vue-select-overrides';\nimport { onClickOption, calculatePosition } from '@shell/utils/select';\nimport LabeledSelectPagination from '@shell/components/form/labeled-select-utils/labeled-select-pagination';\nimport { LABEL_SELECT_NOT_OPTION_KINDS } from '@shell/types/components/labeledSelect';\nimport { mapGetters } from 'vuex';\n\nexport default {\n name: 'LabeledSelect',\n\n inheritAttrs: false,\n\n components: { LabeledTooltip },\n mixins: [\n CompactInput,\n LabeledFormElement,\n VueSelectOverrides,\n LabeledSelectPagination\n ],\n\n emits: ['on-open', 'on-close', 'selecting', 'deselecting', 'search', 'update:validation', 'update:value'],\n\n props: {\n appendToBody: {\n default: true,\n type: Boolean,\n },\n clearable: {\n default: false,\n type: Boolean\n },\n disabled: {\n default: false,\n type: Boolean\n },\n required: {\n default: false,\n type: Boolean\n },\n hoverTooltip: {\n default: true,\n type: Boolean\n },\n loading: {\n default: false,\n type: Boolean\n },\n localizedLabel: {\n default: false,\n type: Boolean\n },\n optionKey: {\n default: null,\n type: String\n },\n optionLabel: {\n default: 'label',\n type: String\n },\n placement: {\n default: null,\n type: String\n },\n reduce: {\n default: (e) => {\n if (e && typeof e === 'object' && e.value !== undefined) {\n return e.value;\n }\n\n return e;\n },\n type: Function\n },\n selectable: {\n default: (opt) => {\n if ( opt ) {\n if ( opt.disabled || LABEL_SELECT_NOT_OPTION_KINDS.includes(opt.kind) || opt.loading ) {\n return false;\n }\n }\n\n return true;\n },\n type: Function\n },\n status: {\n default: null,\n type: String\n },\n tooltip: {\n default: null,\n type: [String, Object]\n },\n value: {\n default: null,\n type: [String, Object, Number, Array, Boolean]\n },\n options: {\n type: Array,\n default: () => ([])\n },\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n noOptionsLabelKey: {\n type: String,\n default: 'labelSelect.noOptions.empty'\n }\n },\n\n data() {\n return {\n selectedVisibility: 'visible',\n shouldOpen: true\n };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n hasLabel() {\n return this.isCompact ? false : !!this.label || !!this.labelKey || !!this.$slots.label;\n },\n\n hasGroupIcon() {\n // Required for option.icon. Note that we only apply if paginating as well (there might be 2 x performance issues with 2k entries. one to iterate through this list, the other with conditional class per entry in dom)\n return this.canPaginate ? !!this._options.find((o) => o.kind === 'group' && !!o.icon) : false;\n },\n\n _options() {\n // If we're paginated show the page as provided by `paginate`. See label-select-pagination mixin\n return this.canPaginate ? this.page : this.options;\n },\n\n filteredAttrs() {\n const {\n class: _class,\n ...rest\n } = this.$attrs;\n\n return rest;\n },\n\n // update placeholder text to inform user they can add their own opts when none are found\n showTagPrompts() {\n return !this.options.length && this.$attrs.taggable && this.isSearchable;\n }\n },\n\n methods: {\n // resizeHandler = in mixin\n focusSearch() {\n // we need this override as in a \"closeOnSelect\" type of component\n // if we don't have this override, it would open again\n if (this.overridesMixinPreventDoubleTriggerKeysOpen) {\n this.$nextTick(() => {\n const el = this.$refs['select'];\n\n if ( el ) {\n el.focus();\n }\n\n this.overridesMixinPreventDoubleTriggerKeysOpen = false;\n });\n\n return;\n }\n this.$refs['select-input'].open = true;\n\n this.$nextTick(() => {\n const el = this.$refs['select-input']?.searchEl;\n\n if (el) {\n el.focus();\n }\n });\n },\n\n onFocus() {\n this.selectedVisibility = 'hidden';\n this.onFocusLabeled();\n },\n\n onBlur() {\n this.selectedVisibility = 'visible';\n this.onBlurLabeled();\n },\n\n onOpen() {\n this.$emit('on-open');\n this.resizeHandler();\n },\n\n onClose() {\n this.$emit('on-close');\n },\n\n getOptionLabel(option) {\n if (!option) {\n return;\n }\n\n if (this.$attrs['get-option-label']) {\n return this.$attrs['get-option-label'](option);\n }\n if (get(option, this.optionLabel)) {\n if (this.localizedLabel) {\n const label = get(option, this.optionLabel);\n\n return this.$store.getters['i18n/t'](label) || label;\n } else {\n return get(option, this.optionLabel);\n }\n } else {\n return option;\n }\n },\n\n positionDropdown(dropdownList, component, { width }) {\n calculatePosition(dropdownList, component, width, this.placement);\n },\n\n get,\n\n onClickOption(option, event) {\n onClickOption.call(this, option, event);\n },\n\n dropdownShouldOpen(instance, forceOpen = false) {\n const { noDrop, mutableLoading } = instance;\n const { open } = instance;\n const shouldOpen = this.shouldOpen;\n\n if (forceOpen) {\n instance.open = true;\n\n return true;\n }\n\n if (shouldOpen === false) {\n this.shouldOpen = true;\n instance.closeSearchOptions();\n }\n\n return noDrop ? false : open && shouldOpen && !mutableLoading;\n },\n\n onSearch(newSearchString, loading) {\n if (this.canPaginate) {\n this.setPaginationFilter(newSearchString);\n } else {\n if (newSearchString) {\n this.dropdownShouldOpen(this.$refs['select-input'], true);\n }\n }\n this.$emit('search', newSearchString, loading);\n },\n\n getOptionKey(opt) {\n if (this.optionKey) {\n return get(opt, this.optionKey);\n }\n\n return this.getOptionLabel(opt);\n }\n },\n};\n</script>\n\n<template>\n <div\n ref=\"select\"\n class=\"labeled-select\"\n :class=\"[\n $attrs.class,\n {\n disabled: isView || disabled,\n focused,\n [mode]: true,\n [status]: status,\n taggable: $attrs.taggable,\n taggable: $attrs.multiple,\n hoverable: hoverTooltip,\n 'compact-input': isCompact,\n 'no-label': !hasLabel\n }\n ]\"\n :tabindex=\"isView || disabled ? -1 : 0\"\n @click=\"focusSearch\"\n @keyup.enter.space.down=\"focusSearch\"\n >\n <div\n :class=\"{ 'labeled-container': true, raised, empty, [mode]: true }\"\n :style=\"{ border: 'none' }\"\n >\n <label v-if=\"hasLabel\">\n <t\n v-if=\"labelKey\"\n :k=\"labelKey\"\n />\n <template v-else-if=\"label\">{{ label }}</template>\n\n <span\n v-if=\"requiredField\"\n class=\"required\"\n >*</span>\n </label>\n </div>\n <v-select\n ref=\"select-input\"\n v-bind=\"filteredAttrs\"\n class=\"inline\"\n :append-to-body=\"appendToBody\"\n :calculate-position=\"positionDropdown\"\n :class=\"{ 'no-label': !(label || '').length}\"\n :clearable=\"clearable\"\n :disabled=\"isView || disabled || loading\"\n :get-option-key=\"getOptionKey\"\n :get-option-label=\"(opt) => getOptionLabel(opt)\"\n :label=\"optionLabel\"\n :options=\"_options\"\n :map-keydown=\"mappedKeys\"\n :placeholder=\"placeholder\"\n :reduce=\"(x) => reduce(x)\"\n :filterable=\"isFilterable\"\n :searchable=\"isSearchable\"\n :selectable=\"selectable\"\n :modelValue=\"value != null && !loading ? value : ''\"\n :dropdown-should-open=\"dropdownShouldOpen\"\n :tabindex=\"-1\"\n @update:modelValue=\"$emit('selecting', $event); $emit('update:value', $event)\"\n @search:blur=\"onBlur\"\n @search:focus=\"onFocus\"\n @search=\"onSearch\"\n @open=\"onOpen\"\n @close=\"onClose\"\n @option:selecting=\"$emit('selecting', $event)\"\n @option:deselecting=\"$emit('deselecting', $event)\"\n >\n <template #option=\"option\">\n <template v-if=\"showTagPrompts\">\n <div class=\"only-user-opts\">\n {{ t('labeledSelect.pressEnter', {input:getOptionLabel(option.label)}) }}\n </div>\n </template>\n <template v-else-if=\"option.kind === 'group'\">\n <div class=\"vs__option-kind-group\">\n <i\n v-if=\"option.icon\"\n class=\"icon\"\n :class=\"{ [option.icon]: true}\"\n />\n <b>{{ getOptionLabel(option) }}</b>\n <div v-if=\"option.badge\">\n {{ option.badge }}\n </div>\n </div>\n </template>\n <template v-else-if=\"option.kind === 'divider'\">\n <hr>\n </template>\n <template v-else-if=\"option.kind === 'highlighted'\">\n <div class=\"option-kind-highlighted\">\n {{ option.label }}\n </div>\n </template>\n <div\n v-else\n class=\"vs__option-kind\"\n :class=\"{ 'has-icon' : hasGroupIcon}\"\n @mousedown=\"(e) => onClickOption(option, e)\"\n >\n {{ getOptionLabel(option) }}\n <i\n v-if=\"option.error\"\n class=\"icon icon-warning pull-right\"\n style=\"font-size: 20px;\"\n />\n </div>\n </template>\n <!-- Pass down templates provided by the caller -->\n <template\n v-for=\"(_, slot) of $slots\"\n :key=\"slot\"\n #[slot]=\"scope\"\n >\n <slot\n :name=\"slot\"\n v-bind=\"scope\"\n />\n </template>\n\n <template #list-footer>\n <div\n v-if=\"canPaginate && totalResults && pages > 1\"\n class=\"pagination-slot\"\n >\n <div class=\"load-more\">\n <i\n v-if=\"paginating\"\n class=\"icon icon-spinner icon-spin\"\n />\n <div v-else>\n <a\n v-if=\"canLoadMore\"\n @click=\"loadMore\"\n > {{ t('labelSelect.pagination.more') }}</a>\n </div>\n </div>\n\n <div class=\"count\">\n {{ optionCounts }}\n </div>\n </div>\n </template>\n <template #no-options=\"{ search }\">\n <div class=\"no-options-slot\">\n <template v-if=\"showTagPrompts\">\n <span v-if=\"!searching\">{{ t('labeledSelect.startTyping') }}</span>\n </template>\n <div\n v-else-if=\"paginating\"\n class=\"paginating\"\n >\n <i class=\"icon icon-spinner icon-spin\" />\n </div>\n <template v-else-if=\"search\">\n {{ t('labelSelect.noOptions.noMatch') }}\n </template>\n <template v-else>\n {{ t(noOptionsLabelKey) }}\n </template>\n </div>\n </template>\n </v-select>\n <i\n v-if=\"loading\"\n class=\"icon icon-spinner icon-spin icon-lg\"\n />\n <LabeledTooltip\n v-if=\"tooltip && !focused\"\n :hover=\"hoverTooltip\"\n :value=\"tooltip\"\n :status=\"status\"\n />\n <LabeledTooltip\n v-if=\"!!validationMessage\"\n :hover=\"hoverTooltip\"\n :value=\"validationMessage\"\n />\n </div>\n</template>\n\n<style lang='scss' scoped>\n\n.labeled-select {\n position: relative;\n // Prevent namespace field from wiggling or changing\n // height when it is toggled from a LabeledInput to a\n // LabeledSelect.\n padding-bottom: 1px;\n\n &.no-label.compact-input {\n :deep() .vs__actions:after {\n top: -2px;\n }\n\n .labeled-container {\n padding: 5px 0 1px 10px;\n }\n }\n\n &.no-label:not(.compact-input) {\n height: $input-height;\n padding-top: 4px;\n\n :deep() .vs__actions:after {\n top: 0;\n }\n }\n\n .icon-spinner {\n position: absolute;\n left: calc(50% - .5em);\n top: calc(50% - .5em);\n }\n\n .labeled-container {\n // Make LabeledSelect and LabeledInput the same height so they\n // don't wiggle when you toggle between them.\n padding: 7px 0 0 $input-padding-sm;\n padding: $input-padding-sm 0 0 $input-padding-sm;\n\n label {\n margin: 0;\n }\n\n .selected {\n background-color: transparent;\n }\n }\n\n &.view {\n &.labeled-input {\n .labeled-container {\n padding: 0;\n }\n }\n }\n\n &.taggable.compact-input {\n min-height: $unlabeled-input-height;\n :deep() .vs__selected-options {\n padding-top: 8px !important;\n }\n }\n\n &.taggable:not(.compact-input) {\n min-height: $input-height;\n :deep() .vs__selected-options {\n // Need to adjust margin when there is a label in the control to add space between the label and the tags\n margin-top: 0px;\n }\n }\n\n &:not(.taggable) {\n :deep() .vs__selected-options {\n // Ensure whole select is clickable to close the select when open\n .vs__selected {\n width: 100%;\n }\n }\n }\n\n &.taggable {\n :deep() .vs__selected-options {\n padding: 3px 0;\n .vs__selected {\n border-color: var(--accent-btn);\n height: 20px;\n min-height: unset !important;\n padding: 0 0 0 7px !important;\n\n > button {\n height: 20px;\n line-height: 14px;\n }\n\n > button:hover {\n background-color: var(--primary);\n border-radius: 0;\n\n &::after {\n color: #fff;\n }\n }\n }\n }\n }\n\n :deep() .vs__selected-options {\n margin-top: -5px;\n }\n\n :deep() .v-select:not(.vs--single) {\n .vs__selected-options {\n padding: 5px 0;\n }\n }\n\n :deep() .vs__actions {\n &:after {\n position: relative;\n top: -10px;\n }\n }\n\n :deep() .v-select.vs--open {\n .vs__dropdown-toggle {\n color: var(--outline) !important;\n }\n }\n\n :deep() &.disabled {\n .labeled-container,\n .vs__dropdown-toggle,\n input,\n label {\n cursor: not-allowed;\n }\n }\n\n .no-label :deep() {\n &.v-select:not(.vs--single) {\n min-height: 33px;\n }\n\n &.selected {\n padding-top: 8px;\n padding-bottom: 9px;\n position: relative;\n max-height: 2.3em;\n overflow: hidden;\n }\n\n .vs__selected-options {\n padding: 8px 0 7px 0;\n }\n }\n}\n\n$icon-size: 18px;\n\n// This represents the drop down area. Note - it might be attached to body and NOT the parent label select div\n.vs__dropdown-menu {\n\n // Styling for individual options\n .vs__dropdown-option .vs__option-kind {\n &-group {\n display: flex;\n align-items: center;\n\n i { // icon\n width: $icon-size;\n }\n\n > b { // group label\n flex: 1;\n }\n\n > div { // badge\n background-color: var(--primary);\n border-radius: 4px;\n color: var(--primary-text);\n font-size: 12px;\n height: 18px;\n line-height: 18px;\n margin-top: 1px;\n padding: 0 10px;\n }\n }\n\n &.has-icon {\n padding-left: $icon-size;\n }\n }\n\n &.has-icon .vs__option-kind div{\n padding-left: $icon-size;\n }\n\n .pagination-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n margin-top: 5px;\n\n .load-more {\n display: flex;\n align-items: center;\n height: 19px;\n\n a {\n cursor: pointer;\n }\n }\n\n .count {\n position: absolute;\n right: 10px;\n }\n }\n\n .no-options-slot .paginating {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n\n// Styling for option highlighted\n.vs__dropdown-option {\n > .option-kind-highlighted {\n color: var(--dropdown-highlight-text);\n\n &:hover {\n color: var(--dropdown-hover-text);\n }\n }\n\n &.vs__dropdown-option--selected,\n &.vs__dropdown-option--highlight {\n > .option-kind-highlighted {\n color: var(--dropdown-hover-text);\n }\n }\n}\n\n.vs__dropdown-menu .vs__dropdown-option .only-user-opts{\n color: var(--dropdown-text);\n background-color: var(--dropdown-bg);\n margin: 0px calc(-#{$input-padding-sm}/2);\n padding: 3px 20px;\n}\n</style>\n","\nexport default {\n props: {\n compact: {\n type: Boolean,\n default: null\n },\n label: {\n type: String,\n default: null\n },\n\n labelKey: {\n type: String,\n default: null\n },\n },\n\n computed: {\n isCompact(): boolean {\n // Compact if explicitly set - otherwise compact if there is no label\n return this.compact !== null ? this.compact : !(this.label || this.labelKey);\n }\n }\n};\n","import { debounce } from 'lodash';\nimport { PropType, defineComponent } from 'vue';\nimport { ComputedOptions, MethodOptions } from 'vue/types/v3-component-options';\nimport { LabelSelectPaginateFn, LABEL_SELECT_NOT_OPTION_KINDS, LABEL_SELECT_KINDS } from '@shell/types/components/labeledSelect';\n\ninterface Props {\n paginate?: LabelSelectPaginateFn\n}\n\ninterface Data {\n currentPage: number,\n search: string,\n pageSize: number,\n\n page: any[],\n pages: number,\n totalResults: number,\n\n paginating: boolean,\n\n debouncedRequestPagination: Function\n}\n\ninterface Computed extends ComputedOptions {\n canPaginate: () => boolean,\n\n canLoadMore: () => boolean,\n\n optionsInPage: () => number,\n\n optionCounts: () => string,\n}\n\ninterface Methods extends MethodOptions {\n loadMore: () => void\n setPaginationFilter: (filter: string) => void\n requestPagination: () => Promise<any>;\n}\n\n/**\n * 'mixin' to provide pagination support to LabeledSelect\n */\nexport default defineComponent<Props, any, Data, Computed, Methods>({\n props: {\n paginate: {\n default: null,\n type: Function as PropType<LabelSelectPaginateFn>,\n },\n\n inStore: {\n type: String,\n default: 'cluster',\n },\n\n /**\n * Resource to show\n */\n resourceType: {\n type: String,\n default: null,\n },\n },\n\n data(): Data {\n return {\n // Internal\n currentPage: 1,\n search: '',\n pageSize: 10,\n pages: 0,\n\n debouncedRequestPagination: debounce(this.requestPagination, 700),\n\n // External\n page: [],\n totalResults: 0,\n paginating: false,\n };\n },\n\n async mounted() {\n if (this.canPaginate) {\n await this.requestPagination();\n }\n },\n\n computed: {\n canPaginate() {\n return !!this.paginate && !!this.resourceType && this.$store.getters[`${ this.inStore }/paginationEnabled`](this.resourceType);\n },\n\n canLoadMore() {\n return this.pages > this.currentPage;\n },\n\n optionsInPage() {\n // Number of genuine options (not groups, dividers, etc)\n return this.canPaginate ? this._options.filter((o: any) => {\n return o.kind !== LABEL_SELECT_KINDS.NONE && !LABEL_SELECT_NOT_OPTION_KINDS.includes(o.kind);\n }).length : 0;\n },\n\n optionCounts() {\n if (!this.canPaginate || this.optionsInPage === this.totalResults) {\n return '';\n }\n\n return this.$store.getters['i18n/t']('labelSelect.pagination.counts', {\n count: this.optionsInPage,\n totalCount: this.totalResults\n });\n },\n },\n\n methods: {\n loadMore() {\n this.currentPage++;\n this.requestPagination();\n },\n\n setPaginationFilter(filter: string) {\n this.paginating = true; // Do this before debounce\n this.currentPage = 1;\n this.search = filter;\n this.debouncedRequestPagination(true);\n },\n\n async requestPagination(resetPage = false) {\n this.paginating = true;\n const paginate: LabelSelectPaginateFn = this.paginate as LabelSelectPaginateFn; // Checking is done via prop\n\n const {\n page,\n pages,\n total\n } = await paginate({\n resetPage,\n pageContent: this.page || [],\n page: this.currentPage,\n filter: this.search,\n pageSize: this.pageSize,\n });\n\n this.page = page;\n this.pages = pages || 0;\n this.totalResults = total || 0;\n\n this.paginating = false;\n }\n }\n});\n","import { render } from \"./LabeledSelect.vue?vue&type=template&id=92b3990a&scoped=true\"\nimport script from \"./LabeledSelect.vue?vue&type=script&lang=js\"\nexport * from \"./LabeledSelect.vue?vue&type=script&lang=js\"\n\nimport \"./LabeledSelect.vue?vue&type=style&index=0&id=92b3990a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-92b3990a\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, mergeProps as _mergeProps, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LabeledSelect = _resolveComponent(\"LabeledSelect\")!\n\n return (_openBlock(), _createBlock(_component_LabeledSelect, _mergeProps(_ctx.labelSelectAttributes, {\n loading: _ctx.$fetchState.pending,\n options: _ctx.allOfType,\n paginate: _ctx.paginateType,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('update:value', $event)))\n }), null, 16, [\"loading\", \"options\", \"paginate\"]))\n}","<script lang=\"ts\">\nimport { PropType, defineComponent } from 'vue';\nimport LabeledSelect from '@shell/components/form/LabeledSelect.vue';\nimport { PaginationParamFilter } from '@shell/types/store/pagination.types';\nimport { labelSelectPaginationFunction, LabelSelectPaginationFunctionOptions } from '@shell/components/form/labeled-select-utils/labeled-select.utils';\nimport { LabelSelectPaginateFnOptions, LabelSelectPaginateFnResponse } from '@shell/types/components/labeledSelect';\nimport { RESOURCE_LABEL_SELECT_MODE, ResourceLabeledSelectPaginateSettings, ResourceLabeledSelectSettings } from '@shell/types/components/resourceLabeledSelect';\n\n/**\n * Convenience wrapper around the LabelSelect component to support pagination\n *\n * Handles\n *\n * 1) Conditionally enabling the pagination feature given system settings\n * 2) Helper function to fetch the pagination result\n *\n * A number of ways can be provided to override the conveniences (see props)\n */\nexport default defineComponent({\n name: 'ResourceLabeledSelect',\n\n components: { LabeledSelect },\n\n emits: ['update:value'],\n\n props: {\n /**\n * Resource to show\n */\n resourceType: {\n type: String,\n required: true\n },\n\n inStore: {\n type: String,\n default: 'cluster',\n },\n\n /**\n * Determine if pagination is used via settings (DYNAMIC) or hardcode off\n */\n paginateMode: {\n type: String as PropType<RESOURCE_LABEL_SELECT_MODE>,\n default: RESOURCE_LABEL_SELECT_MODE.DYNAMIC,\n },\n\n /**\n * Specific settings to use when we're showing all results in the drop down\n */\n allResourcesSettings: {\n type: Object as PropType<ResourceLabeledSelectSettings>,\n default: null,\n },\n\n /**\n * Specific settings to use when we're showing paginated results in the drop down\n */\n paginatedResourceSettings: {\n type: Object as PropType<ResourceLabeledSelectPaginateSettings>,\n default: null,\n },\n },\n\n data() {\n return { paginate: false };\n },\n\n async fetch() {\n switch (this.paginateMode) {\n case RESOURCE_LABEL_SELECT_MODE.ALL_RESOURCES:\n this.paginate = false;\n break;\n case RESOURCE_LABEL_SELECT_MODE.DYNAMIC:\n this.paginate = this.$store.getters[`${ this.inStore }/paginationEnabled`](this.resourceType);\n break;\n }\n\n if (!this.paginate) {\n // The resource won't be paginated and component expects everything up front\n await this.$store.dispatch(`${ this.inStore }/findAll`, { type: this.resourceType });\n }\n },\n\n computed: {\n labelSelectAttributes() {\n // This component is a wrapper for LabelSelect, so pass through everything\n const allAttrs = {\n ...this.$attrs, // Attributes (other than props)\n ...this.$props, // Attributes that are props\n };\n\n return this.paginate ? {\n ...allAttrs,\n ...this.paginatedResourceSettings?.labelSelectOptions || {}\n } : {\n ...allAttrs,\n ...this.allResourcesSettings?.labelSelectOptions || {}\n };\n },\n\n allOfType() {\n if (this.$fetchState.pending || this.paginate) {\n return [];\n }\n\n const all = this.$store.getters[`${ this.inStore }/all`](this.resourceType);\n\n return this.allResourcesSettings?.updateResources ? this.allResourcesSettings.updateResources(all) : all;\n }\n },\n\n methods: {\n /**\n * Make the request to fetch the resource given the state of the label select (filter, page, page size, etc see LabelSelectPaginateFn)\n * opts: Typeof LabelSelectPaginateFn\n */\n async paginateType(opts: LabelSelectPaginateFnOptions): Promise<LabelSelectPaginateFnResponse> {\n if (this.paginatedResourceSettings?.overrideRequest) {\n return await this.paginatedResourceSettings.overrideRequest(opts);\n }\n\n const { filter } = opts;\n const filters = !!filter ? [PaginationParamFilter.createSingleField({\n field: 'metadata.name', value: filter, exact: false\n })] : [];\n const defaultOptions: LabelSelectPaginationFunctionOptions = {\n opts,\n filters,\n type: this.resourceType,\n ctx: { getters: this.$store.getters, dispatch: this.$store.dispatch },\n sort: [{ asc: true, field: 'metadata.name' }],\n };\n const options = this.paginatedResourceSettings?.requestSettings ? this.paginatedResourceSettings.requestSettings(defaultOptions) : defaultOptions;\n const res = await labelSelectPaginationFunction(options);\n\n return this.paginatedResourceSettings?.updateResources ? {\n ...res,\n page: this.paginatedResourceSettings.updateResources(res.page)\n } : res;\n },\n },\n});\n</script>\n\n<template>\n <LabeledSelect\n v-bind=\"labelSelectAttributes\"\n :loading=\"$fetchState.pending\"\n :options=\"allOfType\"\n :paginate=\"paginateType\"\n @update:value=\"$emit('update:value', $event)\"\n />\n</template>\n","import { LabelSelectPaginationFunctionOptions } from '@shell/components/form/labeled-select-utils/labeled-select.utils';\nimport { LabelSelectPaginateFn } from '@shell/types/components/labeledSelect';\n\ntype PaginateTypeOverridesFn = (opts: LabelSelectPaginationFunctionOptions) => LabelSelectPaginationFunctionOptions;\n\ninterface SharedSettings {\n /**\n * Provide specific LabelSelect options for this mode (paginated / not paginated)\n */\n labelSelectOptions?: { [key: string]: any },\n /**\n * Map, filter, tweak, etc the resources to show in the LabelSelect\n */\n updateResources?: (resources: any[]) => any[]\n}\n\n/**\n * Settings to use when the LabelSelect is paginating\n */\nexport interface ResourceLabeledSelectPaginateSettings extends SharedSettings {\n /**\n * Override the convenience function which fetches a page of results\n */\n overrideRequest?: LabelSelectPaginateFn,\n /**\n * Override the default settings used in the convenience function to fetch a page of results\n */\n requestSettings?: PaginateTypeOverridesFn,\n}\n\n/**\n * Settings to use when the LabelSelect is fetching all resources (not paginating)\n */\nexport type ResourceLabeledSelectSettings = SharedSettings\n\n/**\n * Force a specific mode\n */\nexport enum RESOURCE_LABEL_SELECT_MODE {\n /**\n * Fetch all resources\n */\n ALL_RESOURCES = 'ALL', // eslint-disable-line no-unused-vars\n /**\n * Determine if all resources are fetched given system settings\n */\n DYNAMIC = 'DYNAMIC', // eslint-disable-line no-unused-vars\n}\n","import { LabelSelectPaginateFnOptions, LabelSelectPaginateFnResponse } from '@shell/types/components/labeledSelect';\nimport { PaginationArgs, PaginationParam, PaginationSort } from '@shell/types/store/pagination.types';\n\nexport interface LabelSelectPaginationFunctionOptions<T = any> {\n opts: LabelSelectPaginateFnOptions<T>,\n /**\n * Resource type\n */\n type: string,\n /**\n * Store things\n */\n ctx: { getters: any, dispatch: any}\n /**\n * Filters to apply. This mostly covers the text a user has entered, but could be other things like namespace\n */\n filters?: PaginationParam[],\n /**\n * How to sort the response\n */\n sort?: PaginationSort[],\n /**\n * Vuex store name\n */\n store?: string,\n /**\n * True if the options returned should be grouped by namespace\n */\n groupByNamespace?: boolean,\n\n /**\n * Convert the results from JSON object to Rancher model class instance\n */\n classify?: boolean,\n}\n\n/**\n * This is a helper function to cover common functionality that could happen when a LabelSelect requests a new page\n */\nexport async function labelSelectPaginationFunction<T>({\n opts,\n type,\n ctx,\n filters = [],\n sort = [{ asc: true, field: 'metadata.namespace' }, { asc: true, field: 'metadata.name' }],\n store = 'cluster',\n groupByNamespace = true,\n classify = false,\n}: LabelSelectPaginationFunctionOptions<T>): Promise<LabelSelectPaginateFnResponse<T>> {\n const {\n pageContent, page, pageSize, resetPage\n } = opts;\n\n try {\n // Construct params for request\n\n const pagination = new PaginationArgs({\n page,\n pageSize,\n sort,\n filters\n });\n const url = ctx.getters[`${ store }/urlFor`](type, null, { pagination });\n // Make request (note we're not bothering to persist anything to the store, response is transient)\n const res = await ctx.dispatch(`${ store }/request`, { url });\n let data = res.data;\n\n if (classify) {\n data = await ctx.dispatch('cluster/createMany', data);\n }\n\n const options = resetPage ? data : pageContent.concat(data);\n\n // Create the new option collection by...\n let resPage: any[];\n\n if (groupByNamespace) {\n // ... grouping by namespace\n const namespaced: { [ns: string]: T[]} = {};\n\n options.forEach((option: any) => {\n const ns = option.metadata.namespace;\n\n if (option.kind === 'group') { // this could contain a previous option set which contains groups\n return;\n }\n if (!namespaced[ns]) {\n namespaced[ns] = [];\n }\n namespaced[ns].push(option);\n });\n\n resPage = [];\n\n // ... then sort groups by name and combined into a single array\n Object.keys(namespaced).sort().forEach((ns) => {\n resPage.push({\n kind: 'group',\n icon: 'icon-namespace',\n id: ns,\n metadata: { name: ns },\n disabled: true,\n });\n resPage = resPage.concat(namespaced[ns]);\n });\n } else {\n resPage = options;\n }\n\n return {\n page: resPage,\n pages: res.pages || Math.ceil(res.count / (pageSize || Number.MAX_SAFE_INTEGER)),\n total: res.count\n };\n } catch (err) {\n console.error(err); // eslint-disable-line no-console\n }\n\n return {\n page: [], pages: 0, total: 0\n };\n}\n","import { render } from \"./ResourceLabeledSelect.vue?vue&type=template&id=674fed7b&ts=true\"\nimport script from \"./ResourceLabeledSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./ResourceLabeledSelect.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { get } from '@shell/utils/object';\nimport LabeledFormElement from '@shell/mixins/labeled-form-element';\nimport VueSelectOverrides from '@shell/mixins/vue-select-overrides';\nimport { LabeledTooltip } from '@components/LabeledTooltip';\nimport { onClickOption, calculatePosition } from '@shell/utils/select';\n\nexport default {\n emits: ['update:value', 'createdListItem'],\n\n components: { LabeledTooltip },\n mixins: [\n LabeledFormElement,\n VueSelectOverrides,\n ],\n props: {\n appendToBody: {\n default: true,\n type: Boolean,\n },\n disabled: {\n default: false,\n type: Boolean,\n },\n getKeyForOption: {\n default: null,\n type: Function\n },\n mode: {\n default: 'edit',\n type: String,\n },\n optionKey: {\n default: null,\n type: String,\n },\n optionLabel: {\n default: 'label',\n type: String,\n },\n placement: {\n default: null,\n type: String,\n },\n placeholder: {\n type: String,\n default: '',\n },\n popperOverride: {\n type: Function,\n default: null,\n },\n reduce: {\n default: (e) => {\n if (e && typeof e === 'object' && e.value !== undefined) {\n return e.value;\n }\n\n return e;\n },\n type: Function,\n },\n tooltip: {\n type: String,\n default: null,\n },\n\n hoverTooltip: {\n type: Boolean,\n default: true,\n },\n\n status: {\n type: String,\n default: null,\n },\n value: {\n default: null,\n type: [String, Object, Number, Array, Boolean],\n },\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n\n compact: {\n type: Boolean,\n default: null\n },\n },\n\n methods: {\n // resizeHandler = in mixin\n getOptionLabel(option) {\n if (this.$attrs['get-option-label']) {\n return this.$attrs['get-option-label'](option);\n }\n if (get(option, this.optionLabel)) {\n if (this.localizedLabel) {\n return this.$store.getters['i18n/t'](get(option, this.optionLabel));\n } else {\n return get(option, this.optionLabel);\n }\n } else {\n return option;\n }\n },\n\n positionDropdown(dropdownList, component, { width }) {\n if (this.popperOverride) {\n return this.popperOverride(dropdownList, component, { width });\n }\n\n calculatePosition(dropdownList, component, width, this.placement);\n },\n\n focusSearch() {\n // we need this override as in a \"closeOnSelect\" type of component\n // if we don't have this override, it would open again\n if (this.overridesMixinPreventDoubleTriggerKeysOpen) {\n this.$nextTick(() => {\n const el = this.$refs['select'];\n\n if ( el ) {\n el.focus();\n }\n\n this.overridesMixinPreventDoubleTriggerKeysOpen = false;\n });\n\n return;\n }\n this.$refs['select-input'].open = true;\n\n this.$nextTick(() => {\n const el = this.$refs['select-input']?.searchEl;\n\n if ( el ) {\n el.focus();\n }\n });\n },\n\n get,\n\n onClickOption(option, event) {\n onClickOption.call(this, option, event);\n },\n selectable(opt) {\n // Lets you disable options that are used\n // for headings on groups of options.\n if ( opt ) {\n if ( opt.disabled || opt.kind === 'group' || opt.kind === 'divider' || opt.loading ) {\n return false;\n }\n }\n\n return true;\n },\n /**\n * Get a unique value to represent the option\n */\n getOptionKey(opt) {\n // Use the property from a component level key\n if (opt && this.optionKey) {\n return get(opt, this.optionKey);\n }\n\n // Use the property from an option level key\n // This doesn't seem right, think it was meant to represent the actual option key... rather than the key to find the option key\n // This approach also doesn't appear in LabeledSelect\n if (opt?.optionKey) {\n // opt.optionKey should in theory be optionKeyKey\n return get(opt, opt.optionKey);\n }\n\n // There's no configuration to help us get a sensible key. Fall back on ..\n // - the label\n // - something random\n\n const label = this.getOptionLabel(opt);\n\n // label may be type of object\n if (typeof label === 'string' || typeof label === 'number') {\n return label;\n } else {\n return Math.random(100000);\n }\n },\n report(e) {\n alert(e);\n },\n handleDropdownOpen(args) {\n // function that prevents the \"opening dropdown on focus\"\n // default behaviour of v-select\n return args.noDrop || args.disabled ? false : args.open;\n }\n },\n computed: {\n requiredField() {\n // using \"any\" for a type on \"rule\" here is dirty but the use of the optional chaining operator makes it safe for what we're doing here.\n return (this.required || this.rules.some((rule) => rule?.name === 'required'));\n },\n validationMessage() {\n // we want to grab the required rule passed in if we can but if it's not there then we can just grab it from the formRulesGenerator\n const requiredRule = this.rules.find((rule) => rule?.name === 'required');\n const ruleMessages = [];\n const value = this?.value;\n\n if (requiredRule && this.blurred && !this.focused) {\n const message = requiredRule(value);\n\n if (!!message) {\n return message;\n }\n }\n\n for (const rule of this.rules) {\n const message = rule(value);\n\n if (!!message && rule.name !== 'required') { // we're catching 'required' above so we can ignore it here\n ruleMessages.push(message);\n }\n }\n if (ruleMessages.length > 0 && (this.blurred || this.focused)) {\n return ruleMessages.join(', ');\n } else {\n return undefined;\n }\n },\n canPaginate() {\n return false;\n },\n deClassedAttrs() {\n const { class: _, ...rest } = this.$attrs;\n\n return rest;\n }\n }\n};\n</script>\n\n<template>\n <div\n ref=\"select\"\n class=\"unlabeled-select\"\n :class=\"{\n disabled: disabled || isView,\n focused,\n [mode]: true,\n [status]: status,\n taggable: $attrs.taggable,\n taggable: $attrs.multiple,\n 'compact-input': compact,\n [$attrs.class]: $attrs.class\n }\"\n :tabindex=\"disabled || isView ? -1 : 0\"\n @click=\"focusSearch\"\n @keyup.enter.space.down=\"focusSearch\"\n >\n <v-select\n ref=\"select-input\"\n v-bind=\"deClassedAttrs\"\n class=\"inline\"\n :class=\"{'select-input-view': mode === 'view'}\"\n :autoscroll=\"true\"\n :append-to-body=\"appendToBody\"\n :calculate-position=\"positionDropdown\"\n :disabled=\"isView || disabled\"\n :get-option-key=\"(opt) => getOptionKey(opt)\"\n :get-option-label=\"(opt) => getOptionLabel(opt)\"\n :label=\"optionLabel\"\n :options=\"options\"\n :close-on-select=\"closeOnSelect\"\n :map-keydown=\"mappedKeys\"\n :placeholder=\"placeholder\"\n :reduce=\"(x) => reduce(x)\"\n :searchable=\"isSearchable\"\n :selectable=\"selectable\"\n :modelValue=\"value != null ? value : ''\"\n :dropdownShouldOpen=\"handleDropdownOpen\"\n :tabindex=\"-1\"\n\n @update:modelValue=\"$emit('update:value', $event)\"\n @search:blur=\"onBlur\"\n @search:focus=\"onFocus\"\n @open=\"resizeHandler\"\n @option:created=\"(e) => $emit('createdListItem', e)\"\n >\n <template #option=\"option\">\n <div @mousedown=\"(e) => onClickOption(option, e)\">\n {{ getOptionLabel(option.label) }}\n </div>\n </template>\n <!-- Pass down templates provided by the caller -->\n <template\n v-for=\"(_, slot) of $slots\"\n :key=\"slot\"\n v-slot:[slot]=\"scope\"\n >\n <slot\n :name=\"slot\"\n v-bind=\"scope\"\n />\n </template>\n </v-select>\n <LabeledTooltip\n v-if=\"tooltip && !focused\"\n :hover=\"hoverTooltip\"\n :value=\"tooltip\"\n :status=\"status\"\n />\n <LabeledTooltip\n v-if=\"!!validationMessage\"\n :hover=\"hoverTooltip\"\n :value=\"validationMessage\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .unlabeled-select {\n position: relative;\n\n :deep() .v-select.select-input-view {\n .vs__actions {\n visibility: hidden;\n }\n }\n\n & .vs--multiple :deep() .vs__selected-options .vs__selected {\n width: auto;\n }\n\n :deep() .labeled-tooltip.error .status-icon {\n top: 7px;\n right: 2px;\n }\n\n :deep() .vs__selected-options {\n display: flex;\n margin: 3px;\n\n .vs__selected {\n width: initial;\n }\n }\n\n :deep() .v-select.vs--open {\n .vs__dropdown-toggle {\n color: var(--outline) !important;\n }\n }\n\n :deep() .v-select.vs--open {\n .vs__dropdown-toggle {\n color: var(--outline) !important;\n }\n }\n\n @include input-status-color;\n\n &.compact-input {\n min-height: $unlabeled-input-height;\n line-height: $input-line-height;\n }\n }\n</style>\n","import { render } from \"./Select.vue?vue&type=template&id=fef44118&scoped=true\"\nimport script from \"./Select.vue?vue&type=script&lang=js\"\nexport * from \"./Select.vue?vue&type=script&lang=js\"\n\nimport \"./Select.vue?vue&type=style&index=0&id=fef44118&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fef44118\"]])\n\nexport default __exports__","<script>\n/**\n * I created this component because the regular secret\n * selector assumes secrets need to be in this format:\n *\n * valueFrom:\n secretKeyRef:\n name: example-secret-name\n key: example-secret-key\n\n But for secrets for receivers in AlertmanagerConfigs,\n it needed to be in this format:\n\n name: example-secret-name\n key: example-secret-key\n\n FIXME: The solution to above would have been to have a configurable path to set/get name and key from.\n This would have avoided a lot of copy and paste\n */\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport ResourceLabeledSelect from '@shell/components/form/ResourceLabeledSelect';\nimport { SECRET } from '@shell/config/types';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { TYPES } from '@shell/models/secret';\nimport { LABEL_SELECT_KINDS } from '@shell/types/components/labeledSelect';\nimport { PaginationParamFilter } from '@shell/types/store/pagination.types';\n\nconst NONE = '__[[NONE]]__';\n\nexport default {\n emits: ['updateSecretName', 'updateSecretKey'],\n\n components: { LabeledSelect, ResourceLabeledSelect },\n\n props: {\n test: { type: String, default: '' },\n initialName: {\n type: String,\n required: true\n },\n initialKey: {\n type: String,\n required: true\n },\n namespace: {\n type: String,\n required: true\n },\n types: {\n type: Array,\n default: () => Object.values(TYPES)\n },\n disabled: {\n type: Boolean,\n default: false\n },\n secretNameLabel: {\n type: String,\n default: 'Secret Name'\n },\n keyNameLabel: {\n type: String,\n default: 'Key'\n },\n mode: {\n type: String,\n default: _EDIT\n },\n },\n\n data(props) {\n return {\n secrets: [],\n name: props.initialName,\n key: props.initialKey,\n none: NONE,\n SECRET,\n allSecretsSettings: {\n mapResult: (secrets) => {\n const allSecretsInNamespace = secrets.filter((secret) => this.types.includes(secret._type) && secret.namespace === this.namespace);\n const mappedSecrets = this.mapSecrets(allSecretsInNamespace.sort((a, b) => a.name.localeCompare(b.name)));\n\n this.secrets = allSecretsInNamespace; // We need the key from the selected secret\n\n return mappedSecrets;\n }\n },\n paginateSecretsSetting: {\n requestSettings: this.paginatePageOptions,\n mapResult: (secrets) => {\n const mappedSecrets = this.mapSecrets(secrets);\n\n this.secrets = secrets; // We need the key from the selected secret. When paginating we won't touch the store, so just pass back here\n\n return mappedSecrets;\n }\n }\n };\n },\n\n computed: {\n keys() {\n const secret = (this.secrets || []).find((secret) => secret.name === this.name) || {};\n\n return Object.keys(secret.data || {}).map((key) => ({\n label: key,\n value: key\n }));\n },\n isView() {\n return this.mode === _VIEW;\n },\n isKeyDisabled() {\n return !this.isView && (!this.name || this.name === NONE || this.disabled);\n }\n },\n\n methods: {\n /**\n * Provide a set of options for the LabelSelect ([none, ...{label, value}])\n */\n mapSecrets(secrets) {\n const mappedSecrets = secrets\n .reduce((res, s) => {\n if (s.kind === LABEL_SELECT_KINDS.NONE) {\n return res;\n }\n\n if (s.id) {\n res.push({ label: s.name, value: s.name });\n } else {\n res.push(s);\n }\n\n return res;\n }, []);\n\n return [\n {\n label: 'None', value: NONE, kind: LABEL_SELECT_KINDS.NONE\n },\n ...mappedSecrets\n ];\n },\n\n /**\n * @param [LabelSelectPaginationFunctionOptions] opts\n * @returns LabelSelectPaginationFunctionOptions\n */\n paginatePageOptions(opts) {\n const { opts: { filter } } = opts;\n\n const filters = !!filter ? [PaginationParamFilter.createSingleField({ field: 'metadata.name', value: filter })] : [];\n\n filters.push(\n PaginationParamFilter.createSingleField({ field: 'metadata.namespace', value: this.namespace }),\n PaginationParamFilter.createSingleField({ field: 'metadata.fields.1', value: this.types.join(',') })\n );\n\n return {\n ...opts,\n filters,\n groupByNamespace: false,\n classify: true,\n sort: [{ asc: true, field: 'metadata.name' }],\n };\n },\n\n updateSecretName(e) {\n if (e.value === this.none) {\n // The key should appear blank if the secret name is cleared\n this.key = '';\n }\n if (e.value) {\n this.$emit('updateSecretName', e.value);\n }\n },\n updateSecretKey(e) {\n if (e.value) {\n this.$emit('updateSecretKey', e.value);\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"secret-selector show-key-selector\">\n <div class=\"input-container\">\n <ResourceLabeledSelect\n v-model:value=\"name\"\n class=\"col span-6\"\n :disabled=\"!isView && disabled\"\n :loading=\"$fetchState.pending\"\n :label=\"secretNameLabel\"\n :mode=\"mode\"\n :resource-type=\"SECRET\"\n :paginated-resource-settings=\"paginateSecretsSetting\"\n :all-resources-settings=\"allSecretsSettings\"\n @selecting=\"updateSecretName\"\n />\n <LabeledSelect\n v-model:value=\"key\"\n class=\"col span-6\"\n :disabled=\"isKeyDisabled\"\n :options=\"keys\"\n :label=\"keyNameLabel\"\n :mode=\"mode\"\n @selecting=\"updateSecretKey\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.secret-selector {\n width: 100%;\n label {\n display: block;\n }\n\n & .labeled-select {\n min-height: $input-height;\n }\n\n & .vs__selected-options {\n padding: 8px 0 7px 0;\n }\n\n & label {\n display: inline-block;\n }\n\n &.show-key-selector {\n .input-container > * {\n display: inline-block;\n width: 50%;\n\n &.labeled-select.focused {\n z-index: 10;\n }\n\n &:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n margin-right: 0;\n }\n\n &:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-left: none;\n float: right;\n }\n }\n }\n}\n</style>\n","import { render } from \"./SimpleSecretSelector.vue?vue&type=template&id=cea7a3ca\"\nimport script from \"./SimpleSecretSelector.vue?vue&type=script&lang=js\"\nexport * from \"./SimpleSecretSelector.vue?vue&type=script&lang=js\"\n\nimport \"./SimpleSecretSelector.vue?vue&type=style&index=0&id=cea7a3ca&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\r\nimport { LabeledInput } from '@components/Form/LabeledInput';\r\nimport { Banner } from '@components/Banner';\r\nimport SimpleSecretSelector from '@shell/components/form/SimpleSecretSelector';\r\nimport { _VIEW } from '@shell/config/query-params';\r\n\r\nexport default {\r\n components: {\r\n Banner, LabeledInput, SimpleSecretSelector\r\n },\r\n props: {\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n value: {\r\n type: Object,\r\n required: true\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n data() {\r\n this.value['tlsConfig'] = this.value.tlsConfig || {};\r\n\r\n return {\r\n initialCaSecretKey: this.value.tlsConfig.ca?.secret?.key ? this.value.tlsConfig.ca.secret.key : '',\r\n initialCaSecretName: this.value.tlsConfig.ca?.secret?.name ? this.value.tlsConfig.ca.secret.name : '',\r\n initialClientCertSecretKey: this.value.tlsConfig.cert?.secret?.key ? this.value.tlsConfig.cert.secret.key : '',\r\n initialClientCertSecretName: this.value.tlsConfig.cert?.secret?.name ? this.value.tlsConfig.cert.secret.name : '',\r\n initialClientKeySecretKey: this.value.tlsConfig.keySecret?.key ? this.value.tlsConfig.keySecret.key : '',\r\n initialClientKeySecretName: this.value.tlsConfig.keySecret?.name ? this.value.tlsConfig.keySecret.name : '',\r\n view: _VIEW,\r\n none: '__[[NONE]]__'\r\n };\r\n },\r\n\r\n methods: {\r\n updateCaSecretName(name) {\r\n const existingKey = this.value.tlsConfig.ca?.secret?.key || '';\r\n\r\n if (!this.value.tlsConfig.ca) {\r\n this.value.tlsConfig['ca'] = {\r\n secret: {\r\n name,\r\n key: ''\r\n }\r\n };\r\n }\r\n\r\n if (this.value.tlsConfig.ca?.secret) {\r\n if (name === this.none) {\r\n // set the whole secret to blank if no secret is selected\r\n this.value.tlsConfig.ca = {};\r\n } else {\r\n this.value.tlsConfig.ca.secret = {\r\n\r\n key: existingKey,\r\n name\r\n };\r\n }\r\n } else {\r\n this.value.tlsConfig.ca['secret'] = {\r\n key: existingKey,\r\n name\r\n };\r\n }\r\n },\r\n updateCaSecretKey(key) {\r\n const existingName = this.value.tlsConfig.ca?.secret?.name || '';\r\n\r\n if (!this.value.tlsConfig.ca) {\r\n this.value.tlsConfig['ca'] = {\r\n secret: {\r\n name: '',\r\n key\r\n }\r\n };\r\n }\r\n\r\n if (this.value.tlsConfig.ca?.secret) {\r\n this.value.tlsConfig.ca.secret = {\r\n name: existingName,\r\n key\r\n };\r\n } else {\r\n this.value.tlsConfig.ca['secret'] = {\r\n key: '',\r\n name: existingName\r\n };\r\n }\r\n },\r\n updateClientCertSecretName(name) {\r\n const existingKey = this.value.tlsConfig.cert?.secret?.key || '';\r\n\r\n if (!this.value.tlsConfig.cert) {\r\n this.value.tlsConfig['cert'] = {\r\n secret: {\r\n name,\r\n key: ''\r\n }\r\n };\r\n }\r\n\r\n if (this.value.tlsConfig.cert?.secret) {\r\n if (name === this.none) {\r\n // set the whole secret to blank if no secret is selected\r\n this.value.tlsConfig.cert = {};\r\n } else {\r\n this.value.tlsConfig.cert.secret = {\r\n\r\n key: existingKey,\r\n name\r\n };\r\n }\r\n } else {\r\n this.value.tlsConfig.cert['secret'] = {\r\n key: '',\r\n name\r\n };\r\n }\r\n },\r\n updateClientCertSecretKey(key) {\r\n const existingName = this.value.tlsConfig.cert?.secret?.name || '';\r\n\r\n if (!this.value.tlsConfig.cert) {\r\n this.value.tlsConfig['cert'] = {\r\n secret: {\r\n name: '',\r\n key\r\n }\r\n };\r\n }\r\n\r\n if (this.value.tlsConfig.cert?.secret) {\r\n this.value.tlsConfig.cert.secret = {\r\n name: existingName,\r\n key\r\n };\r\n } else {\r\n this.value.tlsConfig.cert['secret'] = {\r\n key: '',\r\n name: existingName\r\n };\r\n }\r\n },\r\n updateClientKeySecretName(name) {\r\n const existingKey = this.value.tlsConfig.keySecret?.key || '';\r\n\r\n if (this.value.tlsConfig.keySecret) {\r\n if (name === this.none) {\r\n // set key to blank if no secret is selected\r\n this.value.tlsConfig.keySecret = {};\r\n } else {\r\n this.value.tlsConfig.keySecret = {\r\n key: existingKey,\r\n name\r\n };\r\n }\r\n } else {\r\n this.value.tlsConfig['keySecret'] = {\r\n key: '',\r\n name\r\n };\r\n }\r\n },\r\n updateClientKeySecretKey(key) {\r\n const existingName = this.value.tlsConfig.keySecret?.name || '';\r\n\r\n if (this.value.tlsConfig.keySecret) {\r\n this.value.tlsConfig.keySecret = {\r\n name: existingName,\r\n key\r\n };\r\n } else {\r\n this.value.tlsConfig['keySecret'] = {\r\n key,\r\n name: ''\r\n };\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-12\">\r\n <h3>{{ t('monitoring.receiver.tls.label') }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-20\">\r\n <SimpleSecretSelector\r\n v-if=\"namespace\"\r\n :initial-key=\"initialCaSecretKey\"\r\n :initial-name=\"initialCaSecretName\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"mode === view\"\r\n :secret-name-label=\"\r\n t('monitoringReceiver.tls.ca')\r\n \"\r\n @updateSecretName=\"updateCaSecretName\"\r\n @updateSecretKey=\"updateCaSecretKey\"\r\n />\r\n <Banner\n v-else\n color=\"error\"\n >\r\n {{ t(\"alertmanagerConfigReceiver.namespaceWarning\") }}\r\n </Banner>\r\n </div>\r\n\r\n <div class=\"row mb-20\">\r\n <SimpleSecretSelector\r\n v-if=\"namespace\"\r\n :initial-key=\"initialClientCertSecretKey\"\r\n :initial-name=\"initialClientCertSecretName\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"mode === view\"\r\n :secret-name-label=\"\r\n t('monitoringReceiver.tls.cert')\r\n \"\r\n @updateSecretName=\"updateClientCertSecretName\"\r\n @updateSecretKey=\"updateClientCertSecretKey\"\r\n />\r\n <Banner\n v-else\n color=\"error\"\n >\r\n {{ t(\"alertmanagerConfigReceiver.namespaceWarning\") }}\r\n </Banner>\r\n </div>\r\n\r\n <div class=\"row mb-20\">\r\n <SimpleSecretSelector\r\n v-if=\"namespace\"\r\n :initial-key=\"initialClientKeySecretKey\"\r\n :initial-name=\"initialClientKeySecretName\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"mode === view\"\r\n :secret-name-label=\"\r\n t('monitoringReceiver.tls.key')\r\n \"\r\n @updateSecretName=\"updateClientKeySecretName\"\r\n @updateSecretKey=\"updateClientKeySecretKey\"\r\n />\r\n <Banner\n v-else\n color=\"error\"\n >\r\n {{ t(\"alertmanagerConfigReceiver.namespaceWarning\") }}\r\n </Banner>\r\n </div>\r\n\r\n <div class=\"row mb-20\">\r\n <div class=\"col span-12\">\r\n <LabeledInput\r\n v-model:value=\"value.tlsConfig.serverName\"\r\n :mode=\"mode\"\r\n :label=\"t('monitoringReceiver.tls.serverName')\"\r\n :tooltip=\"t('monitoringReceiver.tls.serverNameTooltip')\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./tls.vue?vue&type=template&id=674ad289\"\nimport script from \"./tls.vue?vue&type=script&lang=js\"\nexport * from \"./tls.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport TLS from '../tls';\nimport SimpleSecretSelector from '@shell/components/form/SimpleSecretSelector';\nimport { _VIEW } from '@shell/config/query-params';\n\nexport default {\n emits: ['input'],\n\n components: {\n Checkbox, LabeledInput, SimpleSecretSelector, TLS\n },\n props: {\n mode: {\n type: String,\n required: true,\n },\n value: {\n type: Object,\n required: true\n },\n namespace: {\n type: String,\n default: ''\n }\n },\n data() {\n this.value['sendResolved'] = this.value.sendResolved || false;\n this.value['requireTLS'] = this.value.requireTLS || false;\n\n return {\n view: _VIEW,\n initialAuthPasswordSecretName: this.value?.authPassword?.name ? this.value.authPassword.name : '',\n initialAuthPasswordSecretKey: this.value.authPassword?.key ? this.value.authPassword.key : '',\n none: '__[[NONE]]__',\n };\n },\n\n methods: {\n updateAuthPasswordSecretName(name) {\n const existingKey = this.value.authPassword?.key || '';\n\n if (this.value.authPassword) {\n if (name === this.none) {\n delete this.value.authPassword;\n } else {\n this.value.authPassword = {\n key: existingKey,\n name,\n };\n }\n } else {\n this.value['authPassword'] = {\n key: '',\n name\n };\n }\n },\n updateAuthPasswordSecretKey(key) {\n const existingName = this.value.authPassword?.name || '';\n\n if (this.value.authPassword) {\n this.value.authPassword = {\n name: existingName,\n key\n };\n } else {\n this.value['authPassword'] = {\n name: '',\n key\n };\n }\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <h3>Target</h3>\n </div>\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.to\"\n :mode=\"mode\"\n label=\"Default Recipient Address\"\n placeholder=\"e.g. admin@example.com\"\n />\n </div>\n <div class=\"col span-6\">\n <Checkbox\n v-model:value=\"value.sendResolved\"\n :mode=\"mode\"\n class=\"mt-20\"\n label=\"Enable send resolved alerts\"\n />\n </div>\n </div>\n <h2 class=\"mb-10\">\n SMTP\n </h2>\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"value.from\"\n :mode=\"mode\"\n label=\"Sender\"\n placeholder=\"e.g. admin@example.com\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.smarthost\"\n :mode=\"mode\"\n label=\"Host\"\n placeholder=\"e.g. 192.168.1.121:587\"\n />\n </div>\n <div class=\"col span-6\">\n <Checkbox\n v-model:value=\"value.requireTLS\"\n :mode=\"mode\"\n class=\"mt-20\"\n label=\"Use TLS\"\n />\n </div>\n </div>\n <div\n v-if=\"namespace\"\n class=\"row mb-20\"\n >\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.authUsername\"\n :mode=\"mode\"\n :label=\"t('monitoring.alertmanagerConfig.email.username')\"\n placeholder=\"e.g. John\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <SimpleSecretSelector\n v-if=\"namespace\"\n :initial-key=\"initialAuthPasswordSecretKey\"\n :mode=\"mode\"\n :initial-name=\"initialAuthPasswordSecretName\"\n :namespace=\"namespace\"\n :disabled=\"mode === view\"\n :secret-name-label=\"t('monitoring.alertmanagerConfig.email.password')\"\n @updateSecretName=\"updateAuthPasswordSecretName\"\n @updateSecretKey=\"updateAuthPasswordSecretKey\"\n />\n <Banner\n v-else\n color=\"error\"\n >\n {{ t('alertmanagerConfigReceiver.namespaceWarning') }}\n </Banner>\n </div>\n <TLS\n :value=\"value\"\n class=\"mb-20\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n @update:value=\"$emit('input', $event)\"\n />\n </div>\n</template>\n","import { render } from \"./email.vue?vue&type=template&id=f828b74c\"\nimport script from \"./email.vue?vue&type=script&lang=js\"\nexport * from \"./email.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ArrayList from '@shell/components/form/ArrayList';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport Select from '@shell/components/form/Select';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport InputWithSelect from '@shell/components/form/InputWithSelect';\nimport SimpleSecretSelector from '@shell/components/form/SimpleSecretSelector';\nimport { _VIEW } from '@shell/config/query-params';\n\nexport const TARGETS = [\n {\n label: 'Id',\n value: 'id'\n },\n {\n label: 'Name',\n value: 'name'\n },\n {\n label: 'Username',\n value: 'username'\n }\n];\n\nexport const TYPES = [\n {\n label: 'Team',\n value: 'team'\n },\n {\n label: 'User',\n value: 'user'\n },\n {\n label: 'Escalation',\n value: 'escalation'\n },\n {\n label: 'Schedule',\n value: 'schedule'\n }\n];\n\nexport default {\n components: {\n ArrayList, Checkbox, InputWithSelect, LabeledInput, Select, SimpleSecretSelector\n },\n props: {\n mode: {\n type: String,\n required: true,\n },\n value: {\n type: Object,\n required: true\n },\n namespace: {\n type: String,\n default: ''\n }\n },\n data() {\n this.value['httpConfig'] = this.value.httpConfig || {};\n this.value['sendResolved'] = typeof this.value.sendResolved === 'boolean' ? this.value.send_resolved : true;\n this.value['responders'] = this.value.responders || [];\n\n const responders = this.value.responders.map((responder) => {\n const target = TARGETS.find((target) => responder[target.value]);\n\n return {\n type: responder.type,\n target: target.value,\n value: responder[target.value]\n };\n });\n\n return {\n defaultResponder: {\n type: TYPES[0].value,\n target: TARGETS[0].value,\n value: ''\n },\n responders,\n TARGETS,\n TYPES,\n view: _VIEW,\n initialApiKeySecretName: this.value?.apiKey?.name ? this.value.apiKey.name : '',\n initialApiKeySecretKey: this.value?.apiKey?.key ? this.value.apiKey.key : '',\n none: '__[[NONE]]__',\n };\n },\n\n computed: {\n isView() {\n return this.mode === _VIEW;\n }\n },\n\n watch: {\n responders: {\n deep: true,\n handler() {\n const responders = this.responders.map((responder) => {\n return {\n type: responder.type,\n [responder.target]: responder.value\n };\n });\n\n this.value['responders'] = responders;\n }\n }\n },\n\n methods: {\n updateResponder({ selected, text }, row) {\n row.target = selected;\n row.value = text;\n },\n typeLabel(type) {\n return TYPES.find((t) => t.value === type).label;\n },\n targetLabel(target) {\n return TARGETS.find((t) => t.value === target).label;\n },\n updateApiKeySecretName(name) {\n const existingKey = this.value.apiKey?.key || '';\n\n if (this.value.apiKey) {\n if (name === this.none) {\n delete this.value.apiKey;\n } else {\n this.value.apiKey = {\n key: existingKey,\n name,\n };\n }\n } else {\n this.value['apiKey'] = {\n key: '',\n name\n };\n }\n },\n updateApiKeySecretKey(key) {\n const existingName = this.value.apiKey?.name || '';\n\n if (this.value.apiKey) {\n this.value.apiKey = {\n name: existingName,\n key\n };\n } else {\n this.value['apiKey'] = {\n name: '',\n key\n };\n }\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <h3>Target</h3>\n </div>\n </div>\n <div class=\"row mb-20\">\n <SimpleSecretSelector\n v-if=\"namespace\"\n :initial-key=\"initialApiKeySecretKey\"\n :mode=\"mode\"\n :initial-name=\"initialApiKeySecretName\"\n :namespace=\"namespace\"\n :disabled=\"mode === view\"\n :secret-name-label=\"t('monitoring.alertmanagerConfig.opsgenie.apiKey')\"\n @updateSecretName=\"updateApiKeySecretName\"\n @updateSecretKey=\"updateApiKeySecretKey\"\n />\n <Banner\n v-else\n color=\"error\"\n >\n {{ t('alertmanagerConfigReceiver.namespaceWarning') }}\n </Banner>\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"value.httpConfig.proxyURL\"\n :mode=\"mode\"\n label=\"Proxy URL\"\n placeholder=\"e.g. http://my-proxy/\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <Checkbox\n v-model:value=\"value.sendResolved\"\n :mode=\"mode\"\n label=\"Enable send resolved alerts\"\n />\n </div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <h3>Responders</h3>\n <ArrayList\n v-model:value=\"responders\"\n :mode=\"mode\"\n :default-add-value=\"defaultResponder\"\n :show-header=\"true\"\n >\n <template v-slot:column-headers>\n <div class=\"responders-heading\">\n <div\n class=\"row\"\n :class=\"{'mb-15': isView, 'mb-10': !isView}\"\n >\n <div class=\"col span-6\">\n <span class=\"text-label\">Type</span>\n </div>\n <div class=\"col span-6 send-to\">\n <span class=\"text-label\">Send To</span>\n </div>\n </div>\n </div>\n </template>\n <template v-slot:columns=\"scope\">\n <div class=\"row responder\">\n <div class=\"col span-6\">\n <span v-if=\"isView\">{{ typeLabel(scope.row.value.type) }}</span>\n <Select\n v-else\n v-model:value=\"scope.row.value.type\"\n :mode=\"mode\"\n :options=\"TYPES\"\n />\n </div>\n <div class=\"col-span-6 target-container\">\n <span v-if=\"isView\">{{ targetLabel(scope.row.value.target) }}: {{ scope.row.value.value }}</span>\n <InputWithSelect\n v-else\n class=\"target\"\n :mode=\"mode\"\n :options=\"TARGETS\"\n :select-value=\"scope.row.value.target\"\n :text-value=\"scope.row.value.value\"\n @update:value=\"updateResponder($event, scope.row.value)\"\n />\n </div>\n </div>\n </template>\n </ArrayList>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .responders-heading {\n display: grid;\n grid-template-columns: auto $array-list-remove-margin;\n }\n\n .responder {\n &, .target-container {\n width: 100%;\n }\n\n .target-container :deep() .unlabeled-select {\n min-width: 35%;\n height: 100%;\n }\n\n .target {\n height: 100%;\n }\n }\n</style>\n","<script>\nimport labeledFormElement from '@shell/mixins/labeled-form-element';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport Select from '@shell/components/form/Select';\nexport default {\n name: 'InputWithSelect',\n emits: ['update:value'],\n components: {\n LabeledInput,\n LabeledSelect,\n Select,\n },\n mixins: [labeledFormElement],\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n\n searchable: {\n type: Boolean,\n default: true,\n },\n\n taggable: {\n type: Boolean,\n default: false,\n },\n\n selectLabel: {\n type: String,\n default: '',\n },\n\n selectValue: {\n type: String,\n default: null,\n },\n\n optionLabel: {\n type: String,\n default: 'label',\n },\n\n options: {\n type: Array,\n required: true,\n },\n\n selectBeforeText: {\n type: Boolean,\n default: true,\n },\n\n textLabel: {\n type: String,\n default: '',\n },\n\n textRequired: {\n type: Boolean,\n default: false,\n },\n\n textDisabled: {\n type: Boolean,\n default: false,\n },\n\n textValue: {\n type: [String, Number],\n default: '',\n },\n\n placeholder: {\n type: String,\n default: '',\n },\n textRules: {\n default: () => [],\n type: Array,\n },\n selectRules: {\n default: () => [],\n type: Array,\n }\n\n },\n\n data() {\n return {\n selected: this.selectValue || this.options[0].value,\n string: this.textValue,\n };\n },\n\n computed: {\n canPaginate() {\n return false;\n }\n },\n\n methods: {\n focus() {\n const comp = this.$refs.text;\n\n if (comp) {\n comp.focus();\n }\n },\n\n change() {\n this.$emit('update:value', { selected: this.selected, text: this.string });\n },\n },\n\n watch: {\n textValue(value) {\n this.string = value;\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"{ 'select-after': !selectBeforeText }\"\n class=\"input-container row\"\n >\n <LabeledSelect\n v-if=\"selectLabel\"\n v-model:value=\"selected\"\n :label=\"selectLabel\"\n :class=\"{ 'in-input': !isView}\"\n :options=\"options\"\n :searchable=\"false\"\n :clearable=\"false\"\n :disabled=\"disabled || isView\"\n :taggable=\"taggable\"\n :create-option=\"(name) => ({ label: name, value: name })\"\n :multiple=\"false\"\n :mode=\"mode\"\n :option-label=\"optionLabel\"\n :placement=\"$attrs.placement ? $attrs.placement : null\"\n :v-bind=\"$attrs\"\n :rules=\"selectRules\"\n @update:value=\"change\"\n />\n <Select\n v-else\n v-model:value=\"selected\"\n :options=\"options\"\n :searchable=\"searchable\"\n :disabled=\"disabled || isView\"\n :clearable=\"false\"\n class=\"in-input\"\n :taggable=\"taggable\"\n :create-option=\"(name) => ({ label: name, value: name })\"\n :multiple=\"false\"\n :mode=\"mode\"\n :option-label=\"optionLabel\"\n :placement=\"$attrs.placement ? $attrs.placement : null\"\n :v-bind=\"$attrs\"\n @update:value=\"change\"\n />\n <LabeledInput\n v-if=\"textLabel || textRules.length > 0\"\n ref=\"text\"\n v-model:value=\"string\"\n class=\"input-string col span-8\"\n :label=\"textLabel\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled || textDisabled\"\n :required=\"textRequired\"\n :mode=\"mode\"\n :rules=\"textRules\"\n v-bind=\"$attrs\"\n @update:value=\"change\"\n >\n <template #label>\n <slot name=\"label\" />\n </template>\n <template #suffix>\n <slot name=\"suffix\" />\n </template>\n </LabeledInput>\n <input\n v-else\n ref=\"text\"\n v-model=\"string\"\n class=\"input-string\"\n :disabled=\"isView\"\n :placeholder=\"placeholder\"\n autocomplete=\"off\"\n @input=\"change\"\n >\n </div>\n</template>\n\n<style lang='scss' scoped>\n.input-container {\n display: flex;\n\n &.select-after {\n height: 100%;\n flex-direction: row-reverse;\n\n & .input-string {\n border-radius: var(--border-radius) 0 0 var(--border-radius);\n border-right: 0;\n border-left-width: 1px;\n }\n\n & .in-input {\n border-radius: 0 var(--border-radius) var(--border-radius) 0;\n\n &.labeled-select {\n .selected {\n color: var(--input-text);\n text-align: center;\n margin-right: 1em;\n }\n }\n\n &.focused:not(.vs__dropdown-up) {\n border-bottom-right-radius: 0;\n }\n\n &.focused.vs__dropdown-up {\n border-top-right-radius: 0;\n }\n }\n\n .input-string {\n &:hover:not(.focused):not(.disabled):not(:focus) {\n padding-left: 10px !important;\n }\n &.focused, &:focus {\n padding-left: 10px !important;\n }\n }\n }\n\n & .input-string {\n padding-right: 0;\n width: 60%;\n flex-grow: 1;\n border-radius: 0 var(--border-radius) var(--border-radius) 0;\n border-left-width: 0;\n margin-left: -1px;\n position: relative;\n display: table;\n border-collapse: separate;\n\n &:hover:not(.focused):not(.disabled):not(:focus):not(.view) {\n border-left: 1px solid var(--input-hover-border);\n border-right: 1px solid var(--input-hover-border);\n padding-left: 9px;\n }\n &.focused, &:focus {\n border-left: 1px solid var(--outline) !important;\n border-right: 1px solid var(--outline) !important;\n padding-left: 9px;\n }\n }\n\n & .in-input {\n margin-right: 0;\n\n &:hover:not(.focused):not(.disabled):not(.view) {\n border: 1px solid var(--input-hover-border) !important;\n }\n\n &.focused {\n border: 1px solid var(--outline) !important;\n }\n\n &:hover:not(.focused):not(.disabled) {\n border: 1px solid var(--input-hover-border) !important;\n }\n\n &.focused {\n border: 1px solid var(--outline) !important;\n }\n\n &.labeled-select.focused :deep(),\n &.unlabeled-select.focused :deep() {\n outline: none;\n }\n\n &.labeled-select:not(.disabled):not(.view) :deep(),\n &.unlabeled-select:not(.disabled):not(.view) :deep() {\n border: solid 1px var(--input-border);\n }\n\n &.labeled-select :deep(),\n &.unlabeled-select :deep() {\n box-shadow: none;\n width: 20%;\n margin-right: 1px; // push the input box right so the full focus outline of the select can be seen, z-index borks\n // position: relative;\n\n .vs__selected {\n color: var(--input-text);\n }\n\n .vs__dropdown-menu {\n box-shadow: none;\n .vs__dropdown-option {\n padding: 3px 5px;\n }\n }\n\n .v-select:not(.vs--disabled) {\n .vs__dropdown-toggle {\n border-radius: var(--border-radius) 0 0 var(--border-radius);\n }\n &.vs--open {\n .vs__dropdown-toggle {\n color: var(--outline) !important;\n }\n }\n }\n }\n }\n}\n\n</style>\n","import { render } from \"./InputWithSelect.vue?vue&type=template&id=035f9ce5&scoped=true\"\nimport script from \"./InputWithSelect.vue?vue&type=script&lang=js\"\nexport * from \"./InputWithSelect.vue?vue&type=script&lang=js\"\n\nimport \"./InputWithSelect.vue?vue&type=style&index=0&id=035f9ce5&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-035f9ce5\"]])\n\nexport default __exports__","import { render } from \"./opsgenie.vue?vue&type=template&id=174af1a6&scoped=true\"\nimport script from \"./opsgenie.vue?vue&type=script&lang=js\"\nexport * from \"./opsgenie.vue?vue&type=script&lang=js\"\n\nimport \"./opsgenie.vue?vue&type=style&index=0&id=174af1a6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-174af1a6\"]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport SimpleSecretSelector from '@shell/components/form/SimpleSecretSelector';\nimport { _VIEW } from '@shell/config/query-params';\n\nexport default {\n components: {\n Checkbox, LabeledInput, LabeledSelect, SimpleSecretSelector\n },\n props: {\n mode: {\n type: String,\n required: true,\n },\n value: {\n type: Object,\n required: true\n },\n namespace: {\n type: String,\n default: ''\n }\n },\n data() {\n this.value['httpConfig'] = this.value.httpConfig || {};\n this.value['sendResolved'] = typeof this.value.send_resolved === 'boolean' ? this.value.send_resolved : true;\n\n const integrationMapping = {\n 'Events API v2': 'routingKey',\n Prometheus: 'serviceKey'\n };\n\n const integrationTypeOptions = Object.keys(integrationMapping);\n\n return {\n integrationMapping,\n integrationTypeOptions,\n integrationType: this.value.serviceKey ? integrationTypeOptions[1] : integrationTypeOptions[0],\n initialRoutingKeySecretKey: this.value.routingKey?.key || '',\n initialRoutingKeySecretName: this.value.routingKey?.name || '',\n initialServiceKeySecretKey: this.value.serviceKey?.key || '',\n initialServiceKeySecretName: this.value.serviceKey?.name || '',\n view: _VIEW,\n none: '__[[NONE]]__',\n };\n },\n watch: {\n integrationType() {\n this.integrationTypeOptions.forEach((option) => {\n this.value[this.integrationMapping[option]] = null;\n });\n }\n },\n methods: {\n updateRoutingKeySecretName(name) {\n const existingKey = this.value.routingKey?.key || '';\n\n if (this.value.routingKey) {\n if (name === this.none) {\n delete this.value.routingKey;\n } else {\n this.value.routingKey = {\n key: existingKey,\n name,\n };\n }\n } else {\n this.value['routingKey'] = {\n key: '',\n name\n };\n }\n },\n updateRoutingKeySecretKey(key) {\n const existingName = this.value.routingKey?.name || '';\n\n if (this.value.routingKey) {\n this.value.routingKey = {\n name: existingName,\n key\n };\n } else {\n this.value['routingKey'] = {\n name: '',\n key\n };\n }\n },\n updateServiceKeySecretName(name) {\n const existingKey = this.value.serviceKey?.key || '';\n\n if (this.value.serviceKey) {\n if (name === this.none) {\n delete this.value.serviceKey;\n } else {\n this.value.serviceKey = {\n key: existingKey,\n name,\n };\n }\n } else {\n this.value['serviceKey'] = {\n key: '',\n name\n };\n }\n },\n updateServiceKeySecretKey(key) {\n const existingName = this.value.serviceKey?.name || '';\n\n if (this.value.serviceKey) {\n this.value.serviceKey = {\n name: existingName,\n key\n };\n } else {\n this.value['serviceKey'] = {\n name: '',\n key\n };\n }\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <h3>Target</h3>\n </div>\n </div>\n <div\n v-if=\"namespace\"\n class=\"row mb-20\"\n >\n <div class=\"col span-6\">\n <LabeledSelect\n v-model:value=\"integrationType\"\n :options=\"integrationTypeOptions\"\n :mode=\"mode\"\n label=\"Integration Type\"\n />\n </div>\n </div>\n\n <div\n v-if=\"namespace\"\n class=\"row mb-20\"\n >\n <SimpleSecretSelector\n v-if=\"integrationType === 'Events API v2'\"\n :initial-key=\"initialRoutingKeySecretKey\"\n :mode=\"mode\"\n :initial-name=\"initialRoutingKeySecretName\"\n :namespace=\"namespace\"\n :disabled=\"mode === view\"\n :secret-name-label=\"t('monitoring.alertmanagerConfig.pagerDuty.routingKey')\"\n @updateSecretName=\"updateRoutingKeySecretName\"\n @updateSecretKey=\"updateRoutingKeySecretKey\"\n />\n <SimpleSecretSelector\n v-if=\"integrationType === 'Prometheus'\"\n :initial-key=\"initialServiceKeySecretKey\"\n :mode=\"mode\"\n :initial-name=\"initialServiceKeySecretName\"\n :namespace=\"namespace\"\n :disabled=\"mode === view\"\n :secret-name-label=\"t('monitoring.alertmanagerConfig.pagerDuty.serviceKey')\"\n @updateSecretName=\"updateServiceKeySecretName\"\n @updateSecretKey=\"updateServiceKeySecretKey\"\n />\n </div>\n <Banner\n v-else\n color=\"error\"\n >\n {{ t('alertmanagerConfigReceiver.namespaceWarning') }}\n </Banner>\n\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"value.httpConfig.proxyURL\"\n :mode=\"mode\"\n label=\"Proxy URL\"\n placeholder=\"e.g. http://my-proxy/\"\n data-testid=\"v2-monitoring-receiver-pagerduty-proxy-url\"\n />\n </div>\n </div>\n <div class=\"row\">\n <Checkbox\n v-model:value=\"value.sendResolved\"\n :mode=\"mode\"\n label=\"Enable send resolved alerts\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./pagerduty.vue?vue&type=template&id=2fb70600\"\nimport script from \"./pagerduty.vue?vue&type=script&lang=js\"\nexport * from \"./pagerduty.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { Banner } from '@components/Banner';\nimport SimpleSecretSelector from '@shell/components/form/SimpleSecretSelector';\nimport { _CREATE, _VIEW } from '@shell/config/query-params';\n\nexport default {\n components: {\n Banner, Checkbox, LabeledInput, SimpleSecretSelector\n },\n props: {\n mode: {\n type: String,\n required: true,\n },\n value: {\n type: Object,\n required: true,\n },\n namespace: {\n type: String,\n default: ''\n }\n },\n data() {\n this.value['httpConfig'] = this.value.httpConfig || {};\n this.value['sendResolved'] = this.value.sendResolved || false;\n\n if (this.mode === _CREATE) {\n this.value.text = this.value.text || '{{ template \"slack.rancher.text\" . }}';\n }\n\n return {\n view: _VIEW,\n initialSecretKey: this.value?.apiURL?.key ? this.value.apiURL.key : '',\n initialSecretName: this.value.apiURL?.name ? this.value.apiURL.name : '',\n none: '__[[NONE]]__',\n };\n },\n\n methods: {\n updateSecretName(name) {\n const existingKey = this.value.apiURL?.key || '';\n\n if (this.value.apiURL) {\n if (name === this.none) {\n delete this.value.apiURL;\n } else {\n this.value.apiURL = {\n key: existingKey,\n name,\n };\n }\n } else {\n this.value['apiURL'] = {\n key: '',\n name\n };\n }\n },\n updateSecretKey(key) {\n const existingName = this.value.apiURL?.name || '';\n\n if (this.value.apiURL) {\n this.value.apiURL = {\n key,\n name: existingName\n };\n } else {\n this.value['apiURL'] = {\n key,\n name: ''\n };\n }\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <h3>Target</h3>\n </div>\n </div>\n <div class=\"row mb-20\">\n <SimpleSecretSelector\n v-if=\"namespace\"\n :initial-key=\"initialSecretKey\"\n :mode=\"mode\"\n :initial-name=\"initialSecretName\"\n :tooltip=\"t('alertmanagerConfigReceiver.slack.apiUrlTooltip')\"\n :namespace=\"namespace\"\n :disabled=\"mode === view\"\n :secret-name-label=\"t('monitoring.alertmanagerConfig.slack.apiUrl')\"\n @updateSecretName=\"updateSecretName\"\n @updateSecretKey=\"updateSecretKey\"\n />\n <Banner\n v-else\n color=\"error\"\n >\n {{ t('alertmanagerConfigReceiver.namespaceWarning') }}\n </Banner>\n <p class=\"helper-text text-right mt-10\">\n <t\n k=\"monitoringReceiver.slack.info\"\n :raw=\"true\"\n />\n </p>\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.channel\"\n :mode=\"mode\"\n label=\"Default Channel\"\n placeholder=\"e.g. #example\"\n />\n </div>\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.httpConfig.proxyURL\"\n :mode=\"mode\"\n label=\"Proxy URL\"\n placeholder=\"e.g. http://my-proxy/\"\n />\n </div>\n </div>\n <div class=\"row\">\n <Checkbox\n v-model:value=\"value.sendResolved\"\n :mode=\"mode\"\n label=\"Enable send resolved alerts\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./slack.vue?vue&type=template&id=c7b7c80e\"\nimport script from \"./slack.vue?vue&type=script&lang=js\"\nexport * from \"./slack.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\n\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { Banner } from '@components/Banner';\nimport SimpleSecretSelector from '@shell/components/form/SimpleSecretSelector';\nimport { _VIEW } from '@shell/config/query-params';\nimport TLS from '../tls';\nimport Auth from '../auth';\n\nexport const MS_TEAMS_URL = 'http://rancher-alerting-drivers-prom2teams.cattle-monitoring-system.svc:8089/v2/connector';\nexport const ALIBABA_CLOUD_SMS_URL = 'http://rancher-alerting-drivers-sachet.cattle-monitoring-system.svc:9876/alert';\nexport const WEBHOOK_TYPES = {\n ALIBABA_CLOUD_SMS: 'alibaba-cloud-sms',\n GENERIC: 'generic',\n MS_TEAMS: 'ms-teams'\n};\n\nexport default {\n components: {\n Auth,\n Banner,\n Checkbox,\n LabeledInput,\n LabeledSelect,\n SimpleSecretSelector,\n TLS,\n },\n props: {\n mode: {\n type: String,\n required: true,\n },\n value: {\n type: Object,\n required: true\n },\n namespace: {\n type: String,\n default: ''\n }\n },\n data(props) {\n this.value['httpConfig'] = this.value.httpConfig || {};\n this.value['sendResolved'] = this.value.sendResolved || false;\n\n const isDriverUrl = this.value.url === MS_TEAMS_URL || this.value.url === ALIBABA_CLOUD_SMS_URL;\n\n return {\n showNamespaceBanner: isDriverUrl && this.mode !== _VIEW,\n view: _VIEW,\n initialUrlSecretName: this.value?.urlSecret?.name ? this.value.urlSecret.name : '',\n initialUrlSecretKey: this.value?.urlSecret?.key ? this.value.urlSecret.key : '',\n webhookOptons: [\n {\n label: this.t('monitoringReceiver.webhook.add.generic'),\n value: WEBHOOK_TYPES.GENERIC\n },\n {\n label: this.t('monitoringReceiver.webhook.add.msTeams'),\n value: WEBHOOK_TYPES.MS_TEAMS\n },\n {\n label: this.t('monitoringReceiver.webhook.add.alibabaCloudSms'),\n value: WEBHOOK_TYPES.ALIBABA_CLOUD_SMS\n }\n ],\n msTeamsUrl: MS_TEAMS_URL,\n alibabaCloudSmsUrl: ALIBABA_CLOUD_SMS_URL,\n selectedWebhookType: this.getTypeFromUrl(this.value.url),\n none: '__[[NONE]]__',\n };\n },\n methods: {\n getTypeFromUrl(url) {\n switch (url) {\n case MS_TEAMS_URL:\n return WEBHOOK_TYPES.MS_TEAMS;\n case ALIBABA_CLOUD_SMS_URL:\n return WEBHOOK_TYPES.ALIBABA_CLOUD_SMS;\n default:\n return WEBHOOK_TYPES.GENERIC;\n }\n },\n updateUrlSecretName(name) {\n const existingKey = this.value.urlSecret?.key || '';\n\n if (this.value.urlSecret) {\n if (name === this.none) {\n delete this.value.urlSecret;\n } else {\n this.value.urlSecret = {\n key: existingKey,\n name\n };\n }\n } else {\n this.value['urlSecret'] = {\n key: '',\n name\n };\n }\n },\n updateUrlSecretKey(key) {\n const existingName = this.value.urlSecret?.name || '';\n\n if (this.value.urlSecret) {\n this.value.urlSecret = {\n name: existingName,\n key\n };\n } else {\n this.value['urlSecret'] = {\n name: '',\n key\n };\n }\n },\n updateWebhookType(event) {\n switch (event) {\n case ('ms-teams'):\n this.value.url = this.msTeamsUrl;\n this.selectedWebhookType = WEBHOOK_TYPES.MS_TEAMS;\n break;\n case ('alibaba-cloud-sms'):\n this.value.url = this.alibabaCloudSmsUrl;\n this.selectedWebhookType = WEBHOOK_TYPES.ALIBABA_CLOUD_SMS;\n break;\n default:\n this.value.url = '';\n this.selectedWebhookType = WEBHOOK_TYPES.GENERIC;\n }\n },\n updateWebhookUrl(val) {\n this.value.url = val;\n }\n }\n};\n</script>\n\n<template>\n <div>\n <Banner\n v-if=\"mode !== view\"\n v-clean-html=\"t('monitoringReceiver.webhook.banner', {}, raw=true)\"\n color=\"info\"\n />\n <div class=\"row mb-20\">\n <LabeledSelect\n v-model:value=\"selectedWebhookType\"\n :disabled=\"mode === view\"\n :label=\"t('monitoringReceiver.webhook.add.selectWebhookType')\"\n :placeholder=\"t('monitoringReceiver.webhook.add.generic')\"\n :localized-label=\"true\"\n :options=\"webhookOptons\"\n @update:value=\"updateWebhookType($event)\"\n />\n </div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <h3 class=\"mb-0\">\n Target\n </h3>\n </div>\n </div>\n <Banner\n v-if=\"showNamespaceBanner\"\n v-clean-html=\"t('monitoringReceiver.webhook.modifyNamespace', {}, raw=true)\"\n color=\"info\"\n />\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"value.url\"\n :mode=\"mode\"\n :label=\"t('monitoring.alertmanagerConfig.webhook.url')\"\n :tooltip=\"t('monitoring.alertmanagerConfig.webhook.urlSecretTooltip')\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <SimpleSecretSelector\n v-if=\"namespace\"\n :initial-key=\"initialUrlSecretKey\"\n :initial-name=\"initialUrlSecretName\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n :disabled=\"mode === view\"\n :secret-name-label=\"t('monitoring.alertmanagerConfig.webhook.urlSecret')\"\n @updateSecretName=\"updateUrlSecretName\"\n @updateSecretKey=\"updateUrlSecretKey\"\n />\n <Banner\n v-else\n color=\"error\"\n >\n {{ t('alertmanagerConfigReceiver.namespaceWarning') }}\n </Banner>\n </div>\n <div class=\"row mb-20\">\n <div class=\"col span-12\">\n <LabeledInput\n v-model:value=\"value.httpConfig.proxyURL\"\n :mode=\"mode\"\n :label=\"t('monitoringReceiver.shared.proxyUrl.label')\"\n :placeholder=\"t('monitoringReceiver.shared.proxyUrl.placeholder')\"\n />\n </div>\n </div>\n <div class=\"row mb-20\">\n <Checkbox\n v-model:value=\"value.sendResolved\"\n :mode=\"mode\"\n :label=\"t('monitoringReceiver.shared.sendResolved.label')\"\n />\n </div>\n <TLS\n v-model:value=\"value.httpConfig\"\n class=\"mb-20\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n />\n <Auth\n v-model:value=\"value.httpConfig\"\n :mode=\"mode\"\n :namespace=\"namespace\"\n />\n </div>\n</template>\n","<script>\r\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\r\nimport SimpleSecretSelector from '@shell/components/form/SimpleSecretSelector';\r\nimport isEmpty from 'lodash/isEmpty';\r\nimport { _VIEW } from '@shell/config/query-params';\r\n\r\nexport default {\r\n components: { LabeledSelect, SimpleSecretSelector },\r\n props: {\r\n mode: {\r\n type: String,\r\n required: true,\r\n },\r\n value: {\r\n type: Object,\r\n required: true,\r\n },\r\n namespace: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n data() {\r\n this.value['basicAuth'] = this.value.basicAuth || {};\r\n\r\n const authOptions = [\r\n {\r\n value: 'none',\r\n label: this.t('monitoringReceiver.auth.none.label'),\r\n },\r\n {\r\n value: 'basicAuth',\r\n label: this.t('monitoringReceiver.auth.basicAuth.label'),\r\n default: {},\r\n },\r\n {\r\n value: 'bearerTokenSecret',\r\n label: this.t('monitoringReceiver.auth.bearerToken.label'),\r\n default: {},\r\n },\r\n ];\r\n const authTypes = authOptions.map((option) => option.value);\r\n const authType =\r\n authTypes.find((authType) => !isEmpty(this.value[authType])) ||\r\n authTypes[0];\r\n\r\n this.initializeType(authOptions, authType);\r\n\r\n return {\r\n authOptions,\r\n authTypes,\r\n authType,\r\n view: _VIEW,\r\n none: '__[[NONE]]__',\r\n initialBearerTokenSecretName: this.value?.bearerTokenSecret?.name ? this.value.bearerTokenSecret.name : '',\r\n initialBearerTokenSecretKey: this.value?.bearerTokenSecret?.key ? this.value.bearerTokenSecret.key : '',\r\n initialBasicAuthUsernameSecretName: this.value?.basicAuth?.username?.name ? this.value.basicAuth.username.name : '',\r\n initialBasicAuthUsernameSecretKey: this.value?.basicAuth?.username?.key ? this.value.basicAuth.username.key : '',\r\n initialBasicAuthPasswordSecretName: this.value?.basicAuth?.password?.name ? this.value.basicAuth.password.name : '',\r\n initialBasicAuthPasswordSecretKey: this.value?.basicAuth?.password?.key ? this.value.basicAuth.password.key : ''\r\n };\r\n },\r\n methods: {\r\n initializeType(authOptions, type) {\r\n authOptions.forEach((authOption) => {\r\n if (authOption.value === type && type !== 'none') {\r\n this.value.authOption.value = this.value[authOption.value] || authOption.default;\r\n } else if (typeof this.value[authOption.value] !== 'undefined') {\r\n delete this.value[authOption.value];\r\n }\r\n });\r\n },\r\n updateBearerTokenSecretName(name) {\r\n const existingKey = this.value.bearerTokenSecret?.key || '';\r\n\r\n if (this.value.bearerTokenSecret) {\r\n if (name === this.none) {\r\n delete this.value.bearerTokenSecret;\r\n } else {\r\n this.value.bearerTokenSecret = {\r\n key: existingKey,\r\n name,\r\n };\r\n }\r\n } else {\r\n this.value['bearerTokenSecret'] = {\r\n key: '',\r\n name,\r\n };\r\n }\r\n },\r\n updateBearerTokenSecretKey(key) {\r\n const existingName = this.value.bearerTokenSecret?.name || '';\r\n\r\n if (this.value.bearerTokenSecret) {\r\n this.value.bearerTokenSecret = {\r\n name: existingName,\r\n key,\r\n };\r\n } else {\r\n this.value['bearerTokenSecret'] = {\r\n name: '',\r\n key,\r\n };\r\n }\r\n },\r\n updateBasicAuthUsernameSecretName(name) {\r\n if (!this.value.basicAuth) {\r\n this.value['basicAuth'] = {\r\n username: {\r\n key: '',\r\n name\r\n },\r\n password: {\r\n key: '',\r\n name: ''\r\n }\r\n };\r\n }\r\n\r\n const existingKey = this.value.basicAuth.username?.key || '';\r\n\r\n if (this.value.basicAuth.username) {\r\n if (name === this.none) {\r\n // Clear out the secret data if none is selected\r\n delete this.value.basicAuth.username;\r\n } else {\r\n this.value.basicAuth.username = {\r\n key: existingKey,\r\n name,\r\n };\r\n }\r\n } else {\r\n this.value.basicAuth['username'] = {\r\n key: '',\r\n name,\r\n };\r\n }\r\n },\r\n updateBasicAuthUsernameSecretKey(key) {\r\n if (!this.value.basicAuth) {\r\n this.value['basicAuth'] = {\r\n username: {\r\n key,\r\n name: ''\r\n },\r\n password: {\r\n key: '',\r\n name: ''\r\n }\r\n };\r\n }\r\n\r\n const existingName = this.value.basicAuth.username?.name || '';\r\n\r\n if (this.value.basicAuth.username) {\r\n this.value.basicAuth.username = {\r\n key,\r\n name: existingName\r\n };\r\n } else {\r\n this.value.basicAuth['username'] = {\r\n key,\r\n name: '',\r\n };\r\n }\r\n },\r\n updateBasicAuthPasswordSecretName(name) {\r\n if (!this.value.basicAuth) {\r\n this.value['basicAuth'] = {\r\n username: {\r\n key: '',\r\n name: ''\r\n },\r\n password: {\r\n key: '',\r\n name\r\n }\r\n };\r\n }\r\n\r\n const existingKey = this.value.basicAuth.password?.key || '';\r\n\r\n if (this.value.basicAuth.password) {\r\n if (name === this.none) {\r\n // Clear out the secret data if no secret is selected\r\n delete this.value.basicAuth.password;\r\n } else {\r\n this.value.basicAuth.password = {\r\n key: existingKey,\r\n name,\r\n };\r\n }\r\n } else {\r\n this.value.basicAuth['password'] = {\r\n key: '',\r\n name,\r\n };\r\n }\r\n },\r\n updateBasicAuthPasswordSecretKey(key) {\r\n if (!this.value.basicAuth) {\r\n this.value['basicAuth'] = {\r\n username: {\r\n key: '',\r\n name: ''\r\n },\r\n password: {\r\n key,\r\n name: ''\r\n }\r\n };\r\n }\r\n\r\n const existingName = this.value.basicAuth.password?.name || '';\r\n\r\n if (this.value.basicAuth.password) {\r\n this.value.basicAuth.password = {\r\n key,\r\n name: existingName,\r\n };\r\n } else {\r\n this.value.basicAuth['password'] = {\r\n key,\r\n name: '',\r\n };\r\n }\r\n }\r\n },\r\n};\r\n</script>\r\n\r\n<template>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col span-6\">\r\n <h3>{{ t(\"monitoringReceiver.auth.label\") }}</h3>\r\n </div>\r\n </div>\r\n <div class=\"row mb-20\">\r\n <div class=\"col span-12\">\r\n <LabeledSelect\r\n v-model:value=\"authType\"\r\n :disabled=\"mode === view\"\r\n :options=\"authOptions\"\r\n label=\"Auth Type\"\r\n @update:value=\"initializeType(authOptions, authType)\"\r\n />\r\n </div>\r\n </div>\r\n <div\n v-if=\"authType === 'basicAuth'\"\n class=\"row mb-20\"\n >\r\n <SimpleSecretSelector\r\n v-if=\"namespace\"\r\n :initial-key=\"initialBasicAuthUsernameSecretKey\"\r\n :initial-name=\"initialBasicAuthUsernameSecretName\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"mode === view\"\r\n :secret-name-label=\"\r\n t('monitoring.alertmanagerConfig.auth.basicAuthUsername')\r\n \"\r\n @updateSecretName=\"updateBasicAuthUsernameSecretName\"\r\n @updateSecretKey=\"updateBasicAuthUsernameSecretKey\"\r\n />\r\n <Banner\n v-else\n color=\"error\"\n >\r\n {{ t(\"alertmanagerConfigReceiver.namespaceWarning\") }}\r\n </Banner>\r\n </div>\r\n <div\n v-if=\"authType === 'basicAuth'\"\n class=\"row mb-20\"\n >\r\n <SimpleSecretSelector\r\n v-if=\"namespace\"\r\n :initial-key=\"initialBasicAuthPasswordSecretKey\"\r\n :initial-name=\"initialBasicAuthPasswordSecretName\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"mode === view\"\r\n :secret-name-label=\"\r\n t('monitoring.alertmanagerConfig.auth.basicAuthPassword')\r\n \"\r\n @updateSecretName=\"updateBasicAuthPasswordSecretName\"\r\n @updateSecretKey=\"updateBasicAuthPasswordSecretKey\"\r\n />\r\n <Banner\n v-else\n color=\"error\"\n >\r\n {{ t(\"alertmanagerConfigReceiver.namespaceWarning\") }}\r\n </Banner>\r\n </div>\r\n <div\n v-if=\"authType === 'bearerTokenSecret'\"\n class=\"row mb-20\"\n >\r\n <SimpleSecretSelector\r\n v-if=\"namespace\"\r\n :initial-key=\"initialBearerTokenSecretKey\"\r\n :initial-name=\"initialBearerTokenSecretName\"\r\n :mode=\"mode\"\r\n :namespace=\"namespace\"\r\n :disabled=\"mode === view\"\r\n :secret-name-label=\"\r\n t('monitoring.alertmanagerConfig.auth.bearerTokenSecret')\r\n \"\r\n @updateSecretName=\"updateBearerTokenSecretName\"\r\n @updateSecretKey=\"updateBearerTokenSecretKey\"\r\n />\r\n <Banner\n v-else\n color=\"error\"\n >\r\n {{ t(\"alertmanagerConfigReceiver.namespaceWarning\") }}\r\n </Banner>\r\n </div>\r\n </div>\r\n</template>\r\n","import { render } from \"./auth.vue?vue&type=template&id=41eb7aec\"\nimport script from \"./auth.vue?vue&type=script&lang=js\"\nexport * from \"./auth.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./webhook.vue?vue&type=template&id=53458bdb\"\nimport script from \"./webhook.vue?vue&type=script&lang=js\"\nexport * from \"./webhook.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport RoleDeletionCheck from '@shell/promptRemove/mixin/roleDeletionCheck';\nexport default {\n name: 'GlobalRolePromptRemove',\n mixins: [RoleDeletionCheck],\n props: {\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n type: {\n type: String,\n required: true\n }\n },\n};\n</script>\n\n<template>\n <div>\n {{ t('promptRemove.attemptingToRemove', { type }) }} <span v-clean-html=\"resourceNames(names, plusMore, t)\" />\n <div\n v-if=\"info\"\n class=\"text info mb-10 mt-20\"\n >\n <span v-clean-html=\"info\" />\n </div>\n <div\n v-if=\"warning\"\n class=\"text-warning mb-10 mt-20\"\n >\n {{ warning }}\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.text.info {\n display: flex;\n align-items: center;\n\n > span {\n margin-right: 5px;\n }\n}\n</style>\n","import { render } from \"./management.cattle.io.globalrole.vue?vue&type=template&id=06b0c427&scoped=true\"\nimport script from \"./management.cattle.io.globalrole.vue?vue&type=script&lang=js\"\nexport * from \"./management.cattle.io.globalrole.vue?vue&type=script&lang=js\"\n\nimport \"./management.cattle.io.globalrole.vue?vue&type=style&index=0&id=06b0c427&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-06b0c427\"]])\n\nexport default __exports__","<script>\nimport { mapState, mapGetters } from 'vuex';\nimport { PROJECT } from '@shell/config/labels-annotations';\nimport { MANAGEMENT, NAMESPACE } from '@shell/config/types';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { resourceNames } from '@shell/utils/string';\n\nexport default {\n name: 'ProjectAndNamespacesPromptRemove',\n\n components: { Checkbox },\n\n props: {\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n type: {\n type: String,\n required: true\n }\n },\n\n async fetch() {\n this.allNamespaces = await this.$store.dispatch('cluster/findAll', { type: NAMESPACE });\n this.allProjects = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.PROJECT });\n },\n\n data() {\n return {\n deleteProjectNamespaces: false,\n allNamespaces: [],\n allProjects: [],\n };\n },\n\n computed: {\n ...mapState('action-menu', ['toRemove']),\n ...mapGetters({ t: 'i18n/t' }),\n ...mapGetters(['currentCluster']),\n\n currentProject() {\n if ( this.allProjects) {\n return this.value[0];\n }\n\n return {};\n },\n\n filteredNamespaces() {\n if (this.currentProject) {\n return this.allNamespaces.filter((n) => n.metadata.labels[PROJECT] === this.currentProject.metadata?.name);\n }\n\n return [];\n },\n\n plusMore() {\n const remaining = this.filteredNamespaces.length > 5 ? this.filteredNamespaces.length - 5 : 0;\n\n return this.t('promptRemove.andOthers', { count: remaining });\n },\n\n displayName() {\n return this.currentProject?.spec?.displayName;\n },\n\n names() {\n return this.filteredNamespaces.map((obj) => obj.nameDisplay).slice(0, 5);\n },\n // Only admins and cluster owners can see namespaces outside of projects\n canSeeProjectlessNamespaces() {\n return this.currentCluster.canUpdate;\n }\n },\n methods: {\n resourceNames,\n remove() {\n // Delete all of thre namespaces and return false - this tells the prompt remove dialog to continue and delete the project\n // Delete all namespaces if the user wouldn't be able to see them after deleting the project\n if (this.deleteProjectNamespaces || !this.canSeeProjectlessNamespaces) {\n return Promise.all(this.filteredNamespaces.map((n) => n.remove())).then(() => false);\n }\n\n // Return false so that the main promptRemoval will continue to remove the project\n return false;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div>\n <div class=\"mb-10\">\n {{ t('promptRemove.attemptingToRemove', { type }) }} <span class=\"display-name\">{{ `${displayName}.` }}</span>\n <template v-if=\"!canSeeProjectlessNamespaces\">\n <span class=\"delete-warning\"> {{ t('promptRemove.willDeleteAssociatedNamespaces') }}</span> <br>\n <div\n v-clean-html=\"resourceNames(names, plusMore, t)\"\n class=\"mt-10\"\n />\n </template>\n </div>\n <div\n v-if=\"filteredNamespaces.length > 0 && canSeeProjectlessNamespaces\"\n class=\"mt-20 remove-project-dialog\"\n >\n <Checkbox\n v-model:value=\"deleteProjectNamespaces\"\n :label=\"t('promptRemove.deleteAssociatedNamespaces')\"\n />\n <div class=\"mt-10 ml-20\">\n <span v-clean-html=\"resourceNames(names, plusMore, t)\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.delete-warning{\n color: var(--error)\n}\n.remove-project-dialog {\n border: 1px solid var(--border);\n padding: 10px;\n border-radius: 5px;\n\n .display-name {\n font-weight: bold;\n }\n}\n</style>\n","import { render } from \"./management.cattle.io.project.vue?vue&type=template&id=0b3eae82&scoped=true\"\nimport script from \"./management.cattle.io.project.vue?vue&type=script&lang=js\"\nexport * from \"./management.cattle.io.project.vue?vue&type=script&lang=js\"\n\nimport \"./management.cattle.io.project.vue?vue&type=style&index=0&id=0b3eae82&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0b3eae82\"]])\n\nexport default __exports__","<script>\nimport RoleDeletionCheck from '@shell/promptRemove/mixin/roleDeletionCheck';\nexport default {\n name: 'RoleTemplatePromptRemove',\n mixins: [RoleDeletionCheck],\n props: {\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n type: {\n type: String,\n required: true\n }\n },\n};\n</script>\n\n<template>\n <div>\n {{ t('promptRemove.attemptingToRemove', { type }) }} <span\n v-clean-html=\"resourceNames(names, plusMore, t)\"\n />\n <div\n v-if=\"info\"\n class=\"text info mb-10 mt-20\"\n >\n <span v-clean-html=\"info\" />\n </div>\n <div\n v-if=\"warning\"\n class=\"text-warning mb-10 mt-20\"\n >\n {{ warning }}\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.text.info {\n display: flex;\n align-items: center;\n\n > span {\n margin-right: 5px;\n }\n}\n</style>\n","import { render } from \"./management.cattle.io.roletemplate.vue?vue&type=template&id=e0c89e72&scoped=true\"\nimport script from \"./management.cattle.io.roletemplate.vue?vue&type=script&lang=js\"\nexport * from \"./management.cattle.io.roletemplate.vue?vue&type=script&lang=js\"\n\nimport \"./management.cattle.io.roletemplate.vue?vue&type=style&index=0&id=e0c89e72&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e0c89e72\"]])\n\nexport default __exports__","<script>\nimport { Banner } from '@components/Banner';\nimport Checkbox from '@components/Form/Checkbox/Checkbox.vue';\nimport { mapGetters, mapState } from 'vuex';\nimport { isEmpty } from 'lodash';\n\nexport default {\n name: 'PromptRemovePodDialog',\n\n emits: ['errors'],\n\n components: {\n Banner,\n Checkbox\n },\n\n props: {\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n names: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n type: {\n type: String,\n required: true\n },\n\n close: {\n type: Function,\n required: true\n },\n\n doneLocation: {\n type: Object,\n default: () => {}\n }\n },\n\n data() {\n return {\n errors: [],\n forceDelete: false\n };\n },\n\n computed: {\n ...mapState('action-menu', ['toRemove']),\n ...mapGetters({ t: 'i18n/t' }),\n\n plusMore() {\n const count = this.names.length - this.names.length;\n\n return this.t('promptRemove.andOthers', { count });\n },\n\n podNames() {\n return this.names.reduce((res, name, i) => {\n if (i >= 5) {\n return res;\n }\n res += `<b>${ name }</b>`;\n if (i === this.names.length - 1) {\n res += this.plusMore;\n } else {\n res += i === this.toRemove.length - 2 ? ' and ' : ', ';\n }\n\n return res;\n }, '');\n },\n },\n\n methods: {\n async remove(confirm) {\n let goTo;\n\n if (this.doneLocation) {\n // doneLocation will recompute to undefined when delete request completes\n goTo = { ...this.doneLocation };\n }\n\n try {\n await Promise.all(this.value.map((resource) => this.removePod(resource)));\n if ( goTo && !isEmpty(goTo) ) {\n this.value?.[0]?.currentRouter().push(goTo);\n }\n this.close();\n } catch (err) {\n this.$emit('errors', err);\n confirm(false);\n }\n },\n\n removePod(pod) {\n const opt = this.forceDelete ? {\n data: {\n gracePeriod: 0,\n force: true\n }\n } : undefined;\n\n return pod.remove(opt);\n },\n }\n};\n</script>\n\n<template>\n <div class=\"mt-10\">\n <div class=\"mb-30\">\n {{ t('promptRemove.attemptingToRemove', { type }) }} <span\n v-clean-html=\"podNames\"\n class=\"machine-name\"\n />\n </div>\n <div class=\"mb-30\">\n <Checkbox\n v-model:value=\"forceDelete\"\n :label=\"t('promptForceRemove.forceDelete')\"\n />\n </div>\n <Banner\n color=\"warning\"\n label-key=\"promptForceRemove.podRemoveWarning\"\n />\n <Banner\n v-for=\"(error, i) in errors\"\n :key=\"i\"\n class=\"\"\n color=\"error\"\n :label=\"error\"\n />\n </div>\n</template>\n\n<style lang='scss' scoped>\n .actions {\n text-align: right;\n }\n\n .machine-name {\n font-weight: 600;\n }\n</style>\n","import { render } from \"./pod.vue?vue&type=template&id=64ba45e0&scoped=true\"\nimport script from \"./pod.vue?vue&type=script&lang=js\"\nexport * from \"./pod.vue?vue&type=script&lang=js\"\n\nimport \"./pod.vue?vue&type=style&index=0&id=64ba45e0&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-64ba45e0\"]])\n\nexport default __exports__","import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, resolveComponent as _resolveComponent, createBlock as _createBlock, toDisplayString as _toDisplayString, resolveDirective as _resolveDirective, withDirectives as _withDirectives, withKeys as _withKeys } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"banner__icon\",\n \"data-testid\": \"banner-icon\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = { key: 2 }\nconst _hoisted_4 = [\"aria-label\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_t = _resolveComponent(\"t\")!\n const _directive_clean_html = _resolveDirective(\"clean-html\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"banner\", {\n [_ctx.color]: true,\n }]),\n role: \"banner\"\n }, [\n (_ctx.icon)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"icon icon-2x\", _ctx.icon])\n }, null, 2)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"banner__content\", {\n closable: _ctx.closable,\n stacked: _ctx.stacked,\n icon: _ctx.icon\n }]),\n \"data-testid\": \"banner-content\"\n }, [\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n (_ctx.labelKey)\n ? (_openBlock(), _createBlock(_component_t, {\n key: 0,\n k: _ctx.labelKey,\n raw: true\n }, null, 8, [\"k\"]))\n : (_ctx.messageLabel)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.messageLabel), 1))\n : _withDirectives((_openBlock(), _createElementBlock(\"span\", _hoisted_3, null, 512)), [\n [_directive_clean_html, _ctx.nlToBr(_ctx.label)]\n ])\n ], true),\n (_ctx.closable)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"banner__content__closer\",\n tabindex: \"0\",\n role: \"button\",\n \"aria-label\": _ctx.t('generic.close'),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close'))),\n onKeyup: [\n _cache[1] || (_cache[1] = _withKeys(($event: any) => (_ctx.$emit('close')), [\"enter\"])),\n _cache[2] || (_cache[2] = _withKeys(($event: any) => (_ctx.$emit('close')), [\"space\"]))\n ]\n }, _cache[3] || (_cache[3] = [\n _createElementVNode(\"i\", {\n \"data-testid\": \"banner-close\",\n class: \"icon icon-close closer-icon\"\n }, null, -1)\n ]), 40, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ], 2)\n ], 2))\n}","<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { nlToBr } from '@shell/utils/string';\nimport { stringify } from '@shell/utils/error';\n\nexport default defineComponent({\n props: {\n /**\n * A color class that represents the color of the banner.\n * @values primary, secondary, success, warning, error, info\n */\n color: {\n type: String,\n default: 'secondary'\n },\n /**\n * The label to display as the banner's default content.\n */\n label: {\n type: [String, Error, Object],\n default: null\n },\n /**\n * The i18n key for the label to display as the banner's default content.\n */\n labelKey: {\n type: String,\n default: null\n },\n /**\n * Add icon for the banner\n */\n icon: {\n type: String,\n default: null\n },\n /**\n * Toggles the banner's close button.\n */\n closable: {\n type: Boolean,\n default: false\n },\n /**\n * Toggles the stacked class for the banner.\n */\n stacked: {\n type: Boolean,\n default: false\n }\n },\n emits: ['close'],\n computed: {\n /**\n * Return message text as label.\n */\n messageLabel(): string | void {\n return !(typeof this.label === 'string') ? stringify(this.label) : undefined;\n }\n },\n methods: { nlToBr }\n});\n</script>\n<template>\n <div\n class=\"banner\"\n :class=\"{\n [color]: true,\n }\"\n role=\"banner\"\n >\n <div\n v-if=\"icon\"\n class=\"banner__icon\"\n data-testid=\"banner-icon\"\n >\n <i\n class=\"icon icon-2x\"\n :class=\"icon\"\n />\n </div>\n <div\n class=\"banner__content\"\n data-testid=\"banner-content\"\n :class=\"{\n closable,\n stacked,\n icon\n }\"\n >\n <slot>\n <t\n v-if=\"labelKey\"\n :k=\"labelKey\"\n :raw=\"true\"\n />\n <span v-else-if=\"messageLabel\">{{ messageLabel }}</span>\n <span\n v-else\n v-clean-html=\"nlToBr(label)\"\n />\n </slot>\n <div\n v-if=\"closable\"\n class=\"banner__content__closer\"\n tabindex=\"0\"\n role=\"button\"\n :aria-label=\"t('generic.close')\"\n @click=\"$emit('close')\"\n @keyup.enter=\"$emit('close')\"\n @keyup.space=\"$emit('close')\"\n >\n <i\n data-testid=\"banner-close\"\n class=\"icon icon-close closer-icon\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n$left-border-size: 4px;\n$icon-size: 24px;\n\n.banner {\n display: flex;\n margin: 15px 0;\n position: relative;\n width: 100%;\n color: var(--body-text);\n\n &__icon {\n width: $icon-size * 2;\n flex-grow: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: content-box;\n\n .primary & {\n background: var(--primary);\n }\n\n .secondary & {\n background: var(--default);\n }\n\n .success & {\n background: var(--success);\n }\n\n .info & {\n background: var(--info);\n }\n\n .warning & {\n background: var(--warning);\n }\n\n .error & {\n background: var(--error);\n color: var(--primary-text);\n }\n }\n\n &__content {\n padding: 10px;\n transition: all 0.2s ease;\n line-height: 20px;\n width: 100%;\n border-left: solid $left-border-size transparent;\n display: flex;\n gap: 3px;\n\n .primary & {\n background: var(--primary);\n border-color: var(--primary);\n }\n\n .secondary & {\n background: var(--default-banner-bg);\n border-color: var(--default);\n }\n\n .success & {\n background: var(--success-banner-bg);\n border-color: var(--success);\n }\n\n .info & {\n background: var(--info-banner-bg);\n border-color: var(--info);\n }\n\n .warning & {\n background: var(--warning-banner-bg);\n border-color: var(--warning);\n }\n\n .error & {\n background: var(--error-banner-bg);\n border-color: var(--error);\n color: var(--error);\n }\n\n &.stacked {\n padding: 0 10px;\n margin: 0;\n transition: none;\n &:first-child {\n padding-top: 10px;\n }\n &:last-child {\n padding-bottom: 10px;\n }\n }\n\n &.closable {\n padding-right: $icon-size * 2;\n }\n\n &__closer {\n display: flex;\n align-items: center;\n\n cursor: pointer;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: $icon-size;\n line-height: $icon-size;\n text-align: center;\n outline: none;\n\n .closer-icon {\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n color: var(--link);\n }\n }\n\n &:focus-visible i {\n @include focus-outline;\n outline-offset: 2px;\n }\n }\n\n &.icon {\n border-left: none;\n }\n }\n}\n</style>\n","import { render } from \"./Banner.vue?vue&type=template&id=1a4e45d4&scoped=true&ts=true\"\nimport script from \"./Banner.vue?vue&type=script&lang=ts\"\nexport * from \"./Banner.vue?vue&type=script&lang=ts\"\n\nimport \"./Banner.vue?vue&type=style&index=0&id=1a4e45d4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1a4e45d4\"]])\n\nexport default __exports__","import { withModifiers as _withModifiers, withKeys as _withKeys, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, renderSlot as _renderSlot, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = [\"for\"]\nconst _hoisted_2 = [\"checked\", \"value\", \"name\"]\nconst _hoisted_3 = [\"tabindex\", \"aria-label\", \"aria-checked\"]\nconst _hoisted_4 = [\"tabindex\"]\nconst _hoisted_5 = [\"tabindex\"]\nconst _hoisted_6 = {\n key: 0,\n class: \"checkbox-outer-container-description\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_t = _resolveComponent(\"t\")!\n const _directive_clean_tooltip = _resolveDirective(\"clean-tooltip\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"checkbox-outer-container\", {\n 'v-popper--has-tooltip': _ctx.hasTooltip,\n }]),\n \"data-checkbox-ctrl\": \"\"\n }, [\n _createElementVNode(\"label\", {\n class: _normalizeClass([\"checkbox-container\", { 'disabled': _ctx.isDisabled}]),\n for: _ctx.id,\n onKeydown: [\n _cache[2] || (_cache[2] = _withKeys(_withModifiers(($event: any) => (_ctx.clicked($event)), [\"prevent\"]), [\"enter\"])),\n _cache[3] || (_cache[3] = _withKeys(_withModifiers(($event: any) => (_ctx.clicked($event)), [\"prevent\"]), [\"space\"]))\n ],\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.clicked($event)))\n }, [\n _createElementVNode(\"input\", {\n checked: _ctx.isChecked,\n value: _ctx.valueWhenTrue,\n type: \"checkbox\",\n tabindex: \"-1\",\n name: _ctx.id,\n onClick: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"stop\",\"prevent\"])),\n onKeyup: _cache[1] || (_cache[1] = _withKeys(_withModifiers(() => {}, [\"stop\",\"prevent\"]), [\"enter\"]))\n }, null, 40, _hoisted_2),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"checkbox-custom\", {indeterminate: _ctx.indeterminate}]),\n tabindex: _ctx.isDisabled ? -1 : 0,\n \"aria-label\": _ctx.label,\n \"aria-checked\": !!_ctx.value,\n role: \"checkbox\"\n }, null, 10, _hoisted_3),\n (_ctx.$slots.label || _ctx.label || _ctx.labelKey || _ctx.hasTooltip)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"checkbox-label\", { 'checkbox-primary': _ctx.primary }])\n }, [\n _renderSlot(_ctx.$slots, \"label\", {}, () => [\n (_ctx.labelKey)\n ? (_openBlock(), _createBlock(_component_t, {\n key: 0,\n k: _ctx.labelKey,\n raw: true\n }, null, 8, [\"k\"]))\n : (_ctx.label)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.label), 1)\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.tooltipKey)\n ? _withDirectives((_openBlock(), _createElementBlock(\"i\", {\n key: 2,\n class: \"checkbox-info icon icon-info icon-lg\",\n tabindex: _ctx.isDisabled ? -1 : 0\n }, null, 8, _hoisted_4)), [\n [_directive_clean_tooltip, {content: _ctx.t(_ctx.tooltipKey), triggers: ['hover', 'touch', 'focus']}]\n ])\n : (_ctx.tooltip)\n ? _withDirectives((_openBlock(), _createElementBlock(\"i\", {\n key: 3,\n class: \"checkbox-info icon icon-info icon-lg\",\n tabindex: _ctx.isDisabled ? -1 : 0\n }, null, 8, _hoisted_5)), [\n [_directive_clean_tooltip, {content: _ctx.tooltip, triggers: ['hover', 'touch', 'focus']}]\n ])\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 42, _hoisted_1),\n (_ctx.descriptionKey || _ctx.description)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_ctx.descriptionKey)\n ? (_openBlock(), _createBlock(_component_t, {\n key: 0,\n k: _ctx.descriptionKey\n }, null, 8, [\"k\"]))\n : (_ctx.description)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.description), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 2))\n}","<script lang=\"ts\">\nimport { PropType, defineComponent } from 'vue';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { addObject, removeObject } from '@shell/utils/array';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport default defineComponent({\n name: 'Checkbox',\n\n props: {\n /**\n * The checkbox value.\n */\n value: {\n type: [Boolean, Array, String] as PropType<boolean | boolean[] | string>,\n default: false\n },\n\n /**\n * The checkbox label.\n */\n label: {\n type: String,\n default: null\n },\n\n /**\n * The i18n key to use for the checkbox label.\n */\n labelKey: {\n type: String,\n default: null\n },\n\n /**\n * Random ID generated for binding label to input.\n */\n id: {\n type: String,\n default: String(Math.random() * 1000)\n },\n\n /**\n * Disable the checkbox.\n */\n disabled: {\n type: Boolean,\n default: false\n },\n\n /**\n * Display an indeterminate state. Useful for cases where a checkbox might\n * be the parent to child checkboxes, and we need to show that a subset of\n * children are checked.\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n\n /**\n * The checkbox editing mode.\n * @values _EDIT, _VIEW\n */\n mode: {\n type: String,\n default: _EDIT\n },\n\n /**\n * The contents of the checkbox tooltip.\n */\n tooltip: {\n type: [String, Object],\n default: null\n },\n\n /**\n * The i18n key to use for the checkbox tooltip.\n */\n tooltipKey: {\n type: String,\n default: null\n },\n\n /**\n * A custom value to use when the checkbox is checked.\n */\n valueWhenTrue: {\n type: [Boolean, String, Number],\n default: true\n },\n\n /**\n * The i18n key to use for the checkbox description.\n */\n descriptionKey: {\n type: String,\n default: null\n },\n\n /**\n * The checkbox description.\n */\n description: {\n type: String,\n default: null\n },\n\n /**\n * Primary checkbox displays label so that it stands out more\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n\n emits: ['update:value'],\n\n computed: {\n /**\n * Determines if the checkbox is disabled.\n * @returns boolean: True when the disabled prop is true or when mode is\n * View.\n */\n isDisabled(): boolean {\n return (this.disabled || this.mode === _VIEW);\n },\n /**\n * Determines if the checkbox is checked when using custom values or\n * multiple values.\n * @returns boolean: True when at least one value is true in a collection or\n * when value matches `this.valueWhenTrue`.\n */\n isChecked(): boolean {\n return this.isMulti(this.value) ? this.findTrueValues(this.value) : this.value === this.valueWhenTrue;\n },\n\n /**\n * Determines if the Labeled Input should display a tooltip.\n */\n hasTooltip(): boolean {\n return !!this.tooltip || !!this.tooltipKey;\n },\n },\n\n methods: {\n /**\n * Toggles the checked state for the checkbox and emits an 'input' event.\n */\n clicked(event: MouseEvent | KeyboardEvent): boolean | void {\n if ((event.target as HTMLLinkElement).tagName === 'A' && (event.target as HTMLLinkElement).href) {\n // Ignore links inside the checkbox label so you can click them\n return true;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n if (this.isDisabled) {\n return;\n }\n\n const customEvent = {\n bubbles: true,\n cancelable: false,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey\n };\n\n const click = new CustomEvent('click', customEvent);\n\n // Flip the value\n const value = cloneDeep(this.value);\n\n if (this.isMulti(value)) {\n if (this.isChecked) {\n removeObject(value, this.valueWhenTrue);\n } else {\n addObject(value, this.valueWhenTrue);\n }\n this.$emit('update:value', value);\n } else if (this.isString(this.valueWhenTrue)) {\n if (this.isChecked) {\n this.$emit('update:value', null);\n } else {\n this.$emit('update:value', this.valueWhenTrue);\n }\n } else {\n this.$emit('update:value', !value);\n this.$el.dispatchEvent(click);\n }\n },\n\n /**\n * Determines if there are multiple values for the checkbox.\n */\n isMulti(value: boolean | boolean[] | string): value is boolean[] {\n return Array.isArray(value);\n },\n\n isString(value: boolean | number | string): value is boolean {\n return typeof value === 'string';\n },\n\n /**\n * Finds the first true value for multiple checkboxes.\n * @param value A collection of values for the checkbox.\n */\n findTrueValues(value: boolean[]): boolean {\n return value.find((v) => v === this.valueWhenTrue) || false;\n }\n }\n});\n</script>\n\n<template>\n <div\n class=\"checkbox-outer-container\"\n data-checkbox-ctrl\n :class=\"{\n 'v-popper--has-tooltip': hasTooltip,\n }\"\n >\n <label\n class=\"checkbox-container\"\n :class=\"{ 'disabled': isDisabled}\"\n :for=\"id\"\n @keydown.enter.prevent=\"clicked($event)\"\n @keydown.space.prevent=\"clicked($event)\"\n @click=\"clicked($event)\"\n >\n <input\n :checked=\"isChecked\"\n :value=\"valueWhenTrue\"\n type=\"checkbox\"\n tabindex=\"-1\"\n :name=\"id\"\n @click.stop.prevent\n @keyup.enter.stop.prevent\n >\n <span\n class=\"checkbox-custom\"\n :class=\"{indeterminate: indeterminate}\"\n :tabindex=\"isDisabled ? -1 : 0\"\n :aria-label=\"label\"\n :aria-checked=\"!!value\"\n role=\"checkbox\"\n />\n <span\n v-if=\"$slots.label || label || labelKey || hasTooltip\"\n class=\"checkbox-label\"\n :class=\"{ 'checkbox-primary': primary }\"\n >\n <slot name=\"label\">\n <t\n v-if=\"labelKey\"\n :k=\"labelKey\"\n :raw=\"true\"\n />\n <template v-else-if=\"label\">{{ label }}</template>\n <i\n v-if=\"tooltipKey\"\n v-clean-tooltip=\"{content: t(tooltipKey), triggers: ['hover', 'touch', 'focus']}\"\n class=\"checkbox-info icon icon-info icon-lg\"\n :tabindex=\"isDisabled ? -1 : 0\"\n />\n <i\n v-else-if=\"tooltip\"\n v-clean-tooltip=\"{content: tooltip, triggers: ['hover', 'touch', 'focus']}\"\n class=\"checkbox-info icon icon-info icon-lg\"\n :tabindex=\"isDisabled ? -1 : 0\"\n />\n </slot>\n </span>\n </label>\n <div\n v-if=\"descriptionKey || description\"\n class=\"checkbox-outer-container-description\"\n >\n <t\n v-if=\"descriptionKey\"\n :k=\"descriptionKey\"\n />\n <template v-else-if=\"description\">\n {{ description }}\n </template>\n </div>\n </div>\n</template>\n\n<style lang='scss'>\n$fontColor: var(--input-label);\n\n.checkbox-outer-container {\n display: inline-flex;\n flex-direction: column;\n &-description {\n color: $fontColor;\n font-size: 14px;\n margin-left: 19px;\n margin-top: 5px;\n opacity: 0.8;\n }\n}\n\n// NOTE: SortableTable depends on the names of this class, do not arbitrarily change.\n.checkbox-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n margin: 0;\n cursor: pointer;\n user-select: none;\n border-radius: var(--border-radius);\n\n .checkbox-label {\n color: var(--input-label);\n display: inline-flex;\n margin: 0px 10px 0px 5px;\n\n &.checkbox-primary {\n color: inherit;\n font-weight: 600;\n }\n }\n\n .checkbox-info {\n line-height: normal;\n margin-left: 2px;\n\n &:focus-visible {\n @include focus-outline;\n outline-offset: 2px;\n }\n }\n\n .checkbox-custom {\n height: 14px;\n width: 14px;\n background-color: var(--body-bg);\n border-radius: var(--border-radius);\n border: 1px solid var(--border);\n flex-shrink: 0;\n\n &:focus-visible {\n @include focus-outline;\n outline-offset: 2px;\n border-radius: 0;\n }\n }\n\n input {\n // display: none;\n opacity: 0;\n position: absolute;\n z-index: -1;\n }\n\n input:focus-visible ~ .checkbox-custom {\n @include focus-outline;\n outline-offset: 2px;\n border-radius: 0;\n }\n\n input:checked ~ .checkbox-custom {\n background-color:var(--primary);\n -webkit-transform: rotate(0deg) scale(1);\n -ms-transform: rotate(0deg) scale(1);\n transform: rotate(0deg) scale(1);\n opacity:1;\n border: 1px solid var(--primary);\n }\n\n // Custom Checkbox tick\n .checkbox-custom::after {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n height: 0px;\n width: 0px;\n border-radius: var(--border-radius);\n border: solid;\n border-color: var(--input-text);\n border-width: 0 3px 3px 0;\n -webkit-transform: rotate(0deg) scale(0);\n -ms-transform: rotate(0deg) scale(0);\n transform: rotate(0deg) scale(0);\n opacity:1;\n }\n\n input:checked ~ .checkbox-custom::after {\n -webkit-transform: rotate(45deg) scale(1);\n -ms-transform: rotate(45deg) scale(1);\n transform: rotate(45deg) scale(1);\n opacity:1;\n left: 4px;\n width: 4px;\n height: 10px;\n border: solid;\n border-color: var(--checkbox-tick);\n border-width: 0 2px 2px 0;\n background-color: transparent;\n }\n\n input:checked ~ .checkbox-custom.indeterminate::after {\n -webkit-transform: scale(1);\n -ms-transform: scale(1);\n transform: scale(1);\n opacity:1;\n left: 3px;\n top:2px;\n width: 6px;\n height: 5px;\n border: solid;\n border-color: var(--checkbox-tick);\n border-width: 0 0 2px 0;\n background-color: transparent;\n }\n\n // Disabled styles\n &.disabled {\n .checkbox-custom {\n background-color: var(--checkbox-disabled-bg);\n border-color: var(--checkbox-disabled-bg);\n }\n input:checked ~ .checkbox-custom {\n background-color: var(--checkbox-disabled-bg);\n border-color: var(--checkbox-disabled-bg);\n &::after {\n border-color: var(--checkbox-tick-disabled);\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n\n .checkbox-view {\n display: flex;\n flex-direction: column;\n LABEL {\n color: $fontColor;\n }\n }\n}\n</style>\n","import { render } from \"./Checkbox.vue?vue&type=template&id=b59125e4&ts=true\"\nimport script from \"./Checkbox.vue?vue&type=script&lang=ts\"\nexport * from \"./Checkbox.vue?vue&type=script&lang=ts\"\n\nimport \"./Checkbox.vue?vue&type=style&index=0&id=b59125e4&lang=scss\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderSlot as _renderSlot, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, createElementBlock as _createElementBlock, mergeProps as _mergeProps, resolveDirective as _resolveDirective, withDirectives as _withDirectives, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = {\n key: 2,\n class: \"required\"\n}\nconst _hoisted_3 = [\"maxlength\", \"disabled\", \"type\", \"value\", \"placeholder\", \"data-lpignore\"]\nconst _hoisted_4 = {\n key: 2,\n class: \"sub-label\",\n \"data-testid\": \"sub-label\"\n}\nconst _hoisted_5 = [\"aria-label\"]\nconst _hoisted_6 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_t = _resolveComponent(\"t\")!\n const _component_TextAreaAutoGrow = _resolveComponent(\"TextAreaAutoGrow\")!\n const _component_LabeledTooltip = _resolveComponent(\"LabeledTooltip\")!\n const _directive_clean_html = _resolveDirective(\"clean-html\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass({\n 'labeled-input': true,\n focused: _ctx.focused,\n [_ctx.mode]: true,\n disabled: _ctx.isDisabled,\n [_ctx.status]: _ctx.status,\n suffix: _ctx.hasSuffix,\n 'v-popper--has-tooltip': _ctx.hasTooltip,\n 'compact-input': _ctx.isCompact,\n hideArrows: _ctx.hideArrows,\n [_ctx.className]: true\n })\n }, [\n _renderSlot(_ctx.$slots, \"label\", {}, () => [\n (_ctx.hasLabel)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n (_ctx.labelKey)\n ? (_openBlock(), _createBlock(_component_t, {\n key: 0,\n k: _ctx.labelKey\n }, null, 8, [\"k\"]))\n : (_ctx.label)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.label), 1)\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.requiredField)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, \"*\"))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], true),\n _renderSlot(_ctx.$slots, \"prefix\", {}, undefined, true),\n _renderSlot(_ctx.$slots, \"field\", {}, () => [\n (_ctx.type === 'multiline' || _ctx.type === 'multiline-password')\n ? (_openBlock(), _createBlock(_component_TextAreaAutoGrow, _mergeProps({\n key: 0,\n ref: \"value\"\n }, _ctx.$attrs, {\n maxlength: _ctx._maxlength,\n disabled: _ctx.isDisabled,\n value: _ctx.value || '',\n placeholder: _ctx._placeholder,\n autocapitalize: \"off\",\n class: { conceal: _ctx.type === 'multiline-password' },\n \"onUpdate:value\": _ctx.onInput,\n onFocus: _ctx.onFocus,\n onBlur: _ctx.onBlur\n }), null, 16, [\"maxlength\", \"disabled\", \"value\", \"placeholder\", \"class\", \"onUpdate:value\", \"onFocus\", \"onBlur\"]))\n : (_openBlock(), _createElementBlock(\"input\", _mergeProps({\n key: 1,\n ref: \"value\",\n class: { 'no-label': !_ctx.hasLabel }\n }, _ctx.$attrs, {\n maxlength: _ctx._maxlength,\n disabled: _ctx.isDisabled,\n type: _ctx.type === 'cron' ? 'text' : _ctx.type,\n value: _ctx.value,\n placeholder: _ctx._placeholder,\n autocomplete: \"off\",\n autocapitalize: \"off\",\n \"data-lpignore\": _ctx.ignorePasswordManagers,\n onInput: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onInput && _ctx.onInput(...args))),\n onFocus: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.onFocus && _ctx.onFocus(...args))),\n onBlur: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.onBlur && _ctx.onBlur(...args))),\n onChange: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.onChange && _ctx.onChange(...args)))\n }), null, 16, _hoisted_3))\n ], true),\n _renderSlot(_ctx.$slots, \"suffix\", {}, undefined, true),\n (_ctx.hasTooltip && !_ctx.focused)\n ? (_openBlock(), _createBlock(_component_LabeledTooltip, {\n key: 0,\n hover: _ctx.hoverTooltip,\n value: _ctx.tooltipValue,\n status: _ctx.status\n }, null, 8, [\"hover\", \"value\", \"status\"]))\n : _createCommentVNode(\"\", true),\n (!!_ctx.validationMessage)\n ? (_openBlock(), _createBlock(_component_LabeledTooltip, {\n key: 1,\n hover: _ctx.hoverTooltip,\n value: _ctx.validationMessage\n }, null, 8, [\"hover\", \"value\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.cronHint || _ctx.subLabel)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_ctx.cronHint)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n role: \"alert\",\n \"aria-label\": _ctx.cronHint\n }, _toDisplayString(_ctx.cronHint), 9, _hoisted_5))\n : _createCommentVNode(\"\", true),\n (_ctx.subLabel)\n ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_6, null, 512)), [\n [_directive_clean_html, _ctx.subLabel]\n ])\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 2))\n}","<script lang=\"ts\">\nimport { defineComponent, inject } from 'vue';\nimport TextAreaAutoGrow from '@components/Form/TextArea/TextAreaAutoGrow.vue';\nimport LabeledTooltip from '@components/LabeledTooltip/LabeledTooltip.vue';\nimport { escapeHtml } from '@shell/utils/string';\nimport cronstrue from 'cronstrue';\nimport { isValidCron } from 'cron-validator';\nimport { debounce } from 'lodash';\nimport { useLabeledFormElement, labeledFormElementProps } from '@shell/composables/useLabeledFormElement';\nimport { useCompactInput } from '@shell/composables/useCompactInput';\n\ninterface NonReactiveProps {\n onInput: (event: Event) => void | ((event: Event) => void);\n}\n\nconst provideProps: NonReactiveProps = {\n onInput() {\n // noop\n },\n};\n\nexport default defineComponent({\n components: { LabeledTooltip, TextAreaAutoGrow },\n\n inheritAttrs: false,\n\n props: {\n ...labeledFormElementProps,\n /**\n * The type of the Labeled Input.\n * @values text, cron, multiline, multiline-password\n */\n type: {\n type: String,\n default: 'text'\n },\n\n /**\n * The status class of the Labeled Input and tooltip.\n * @values info, success, warning, error\n */\n status: {\n type: String,\n default: null\n },\n\n /**\n * The sub-label for the Labeled Input.\n */\n subLabel: {\n type: String,\n default: null\n },\n\n /**\n * The tooltip to display for the Labeled Input.\n */\n tooltip: {\n default: null,\n type: [String, Object]\n },\n\n /**\n * Renders the tooltip when hovering the cursor over the Labeled Input.\n */\n hoverTooltip: {\n type: Boolean,\n default: true\n },\n\n /**\n * Disables the password manager prompt to save the contents of the Labeled\n * Input.\n */\n ignorePasswordManagers: {\n default: false,\n type: Boolean\n },\n\n /**\n * The max length of the Labeled Input.\n */\n maxlength: {\n type: Number,\n default: null\n },\n\n /**\n * Hides arrows on the Labeled Input.\n * @deprecated This doesn't appear to be in use for Labeled Input.\n */\n hideArrows: {\n type: Boolean,\n default: false\n },\n\n /**\n * Optionally delay on input while typing.\n */\n delay: {\n type: Number,\n default: 0\n },\n\n class: {\n type: String,\n default: ''\n }\n },\n\n emits: ['change', 'update:value', 'blur', 'update:validation'],\n\n setup(props, { emit }) {\n const {\n focused,\n onFocusLabeled,\n onBlurLabeled,\n isDisabled,\n validationMessage,\n requiredField\n } = useLabeledFormElement(props, emit);\n const { isCompact } = useCompactInput(props);\n\n const onInput = inject('onInput', provideProps.onInput);\n\n return {\n focused,\n onFocusLabeled,\n onBlurLabeled,\n onInput,\n isDisabled,\n validationMessage,\n requiredField,\n isCompact,\n };\n },\n\n data() {\n return {\n updated: false,\n validationErrors: '',\n };\n },\n\n computed: {\n /**\n * Determines if the Labeled Input should display a label.\n */\n hasLabel(): boolean {\n return this.isCompact ? false : !!this.label || !!this.labelKey || !!this.$slots.label;\n },\n\n /**\n * Determines if the Labeled Input should display a tooltip.\n */\n hasTooltip(): boolean {\n return !!this.tooltip || !!this.tooltipKey;\n },\n\n tooltipValue(): string | Record<string, unknown> | undefined {\n if (this.hasTooltip) {\n return this.tooltipKey ? this.t(this.tooltipKey) : this.tooltip;\n }\n\n return undefined;\n },\n\n /**\n * Determines if the Labeled Input makes use of the suffix slot.\n */\n hasSuffix(): boolean {\n return !!this.$slots.suffix;\n },\n\n /**\n * Determines if the Labeled Input should display a cron hint.\n */\n cronHint(): string | undefined {\n if (this.type !== 'cron' || !this.value) {\n return;\n }\n\n // TODO - #13202: This is required due use of 2 libraries and 3 different libraries through the code.\n const predefined = [\n '@yearly',\n '@annually',\n '@monthly',\n '@weekly',\n '@daily',\n '@midnight',\n '@hourly'\n ];\n const isPredefined = predefined.includes(this.value as string);\n\n // refer https://github.com/GuillaumeRochat/cron-validator#readme\n if (!isPredefined && !isValidCron(this.value as string, {\n alias: true,\n allowBlankDay: true,\n allowSevenAsSunday: true,\n })) {\n return this.t('generic.invalidCron');\n }\n\n try {\n const hint = cronstrue.toString(this.value as string || '', { verbose: true });\n\n return hint;\n } catch (e) {\n return this.t('generic.invalidCron');\n }\n },\n\n /**\n * The placeholder value for the Labeled Input.\n */\n _placeholder(): string {\n if (this.placeholder) {\n return this.placeholder.toString();\n }\n if (this.placeholderKey) {\n return this.t(this.placeholderKey);\n }\n\n return '';\n },\n\n /**\n * The max length for the Labeled Input.\n */\n _maxlength(): number | undefined {\n if (this.type === 'text' && this.maxlength) {\n return this.maxlength;\n }\n\n return undefined;\n },\n\n className() {\n return this.class;\n }\n },\n\n created() {\n /**\n * Determines if the Labeled Input @input event should be debounced.\n */\n this.onInput = this.delay ? debounce(this.delayInput, this.delay) : this.delayInput;\n },\n\n methods: {\n /**\n * Attempts to give the Labeled Input focus.\n */\n focus(): void {\n const comp = this.$refs.value as HTMLInputElement;\n\n if (comp) {\n comp.focus();\n }\n },\n\n /**\n * Attempts to select the Labeled Input.\n * @deprecated\n */\n select(): void {\n const comp = this.$refs.value as HTMLInputElement;\n\n if (comp) {\n comp.select();\n }\n },\n\n /**\n * Emit on input change\n */\n onChange(event: Event): void {\n this.$emit('change', event);\n },\n\n /**\n * Emit on input with delay. Note: Arrow function is avoided due context\n * binding.\n *\n * NOTE: In multiline, TextAreaAutoGrow emits a string with the value\n * https://github.com/rancher/dashboard/issues/10249\n */\n delayInput(val: string | Event): void {\n const value = typeof val === 'string' ? val : (val?.target as HTMLInputElement)?.value;\n\n this.$emit('update:value', value);\n },\n\n /**\n * Handles the behavior of the Labeled Input when given focus.\n * @see labeled-form-element.ts mixin for onFocusLabeled()\n */\n onFocus(): void {\n this.onFocusLabeled();\n },\n\n /**\n * Handles the behavior of the Labeled Input when blurred and emits the blur\n * event.\n * @see labeled-form-element.ts mixin for onBlurLabeled()\n */\n onBlur(event: string | FocusEvent): void {\n this.$emit('blur', event);\n this.onBlurLabeled();\n },\n\n escapeHtml\n }\n});\n</script>\n\n<template>\n <div\n :class=\"{\n 'labeled-input': true,\n focused,\n [mode]: true,\n disabled: isDisabled,\n [status]: status,\n suffix: hasSuffix,\n 'v-popper--has-tooltip': hasTooltip,\n 'compact-input': isCompact,\n hideArrows,\n [className]: true\n }\"\n >\n <slot name=\"label\">\n <label v-if=\"hasLabel\">\n <t\n v-if=\"labelKey\"\n :k=\"labelKey\"\n />\n <template v-else-if=\"label\">{{ label }}</template>\n\n <span\n v-if=\"requiredField\"\n class=\"required\"\n >*</span>\n </label>\n </slot>\n\n <slot name=\"prefix\" />\n\n <slot name=\"field\">\n <TextAreaAutoGrow\n v-if=\"type === 'multiline' || type === 'multiline-password'\"\n ref=\"value\"\n v-bind=\"$attrs\"\n :maxlength=\"_maxlength\"\n :disabled=\"isDisabled\"\n :value=\"value || ''\"\n :placeholder=\"_placeholder\"\n autocapitalize=\"off\"\n :class=\"{ conceal: type === 'multiline-password' }\"\n @update:value=\"onInput\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n />\n <input\n v-else\n ref=\"value\"\n :class=\"{ 'no-label': !hasLabel }\"\n v-bind=\"$attrs\"\n :maxlength=\"_maxlength\"\n :disabled=\"isDisabled\"\n :type=\"type === 'cron' ? 'text' : type\"\n :value=\"value\"\n :placeholder=\"_placeholder\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n :data-lpignore=\"ignorePasswordManagers\"\n @input=\"onInput\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @change=\"onChange\"\n >\n </slot>\n\n <slot name=\"suffix\" />\n <LabeledTooltip\n v-if=\"hasTooltip && !focused\"\n :hover=\"hoverTooltip\"\n :value=\"tooltipValue\"\n :status=\"status\"\n />\n <LabeledTooltip\n v-if=\"!!validationMessage\"\n :hover=\"hoverTooltip\"\n :value=\"validationMessage\"\n />\n <div\n v-if=\"cronHint || subLabel\"\n class=\"sub-label\"\n data-testid=\"sub-label\"\n >\n <div\n v-if=\"cronHint\"\n role=\"alert\"\n :aria-label=\"cronHint\"\n >\n {{ cronHint }}\n </div>\n <div\n v-if=\"subLabel\"\n v-clean-html=\"subLabel\"\n />\n </div>\n </div>\n</template>\n<style scoped lang=\"scss\">\n.labeled-input.view {\n input {\n text-overflow: ellipsis;\n }\n}\n\n.hideArrows {\n /* Hide arrows on number input when it overlaps with the unit */\n /* Chrome, Safari, Edge, Opera */\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* Firefox */\n input[type=number] {\n -moz-appearance: textfield;\n }\n}\n</style>\n<style>\n.validation-message {\n padding: 5px;\n position: absolute;\n bottom: -35px;\n}\n</style>\n","import {\n ref, computed, ComputedRef, Ref, defineEmits\n} from 'vue';\nimport { _VIEW, _EDIT } from '@shell/config/query-params';\n\ninterface LabeledFormElementProps {\n mode: string;\n value: string | number | Record<string, any>\n required: boolean;\n disabled: boolean;\n rules: Array<any>;\n requireDirty?: boolean;\n}\n\ninterface UseLabeledFormElement {\n raised: Ref<boolean>;\n focused: Ref<boolean>;\n blurred: Ref<number | null>;\n requiredField: ComputedRef<any>;\n isDisabled: ComputedRef<any>;\n validationMessage: ComputedRef<any>;\n onFocusLabeled: () => void;\n onBlurLabeled: () => void;\n}\n\nexport const labeledFormElementProps = {\n tooltipKey: {\n type: String,\n default: null\n },\n placeholder: {\n type: [String, Number],\n default: ''\n },\n placeholderKey: {\n type: String,\n default: null\n },\n label: {\n type: String,\n default: null\n },\n labelKey: {\n type: String,\n default: null\n },\n value: {\n type: [String, Number, Object],\n default: ''\n },\n mode: {\n type: String,\n default: _EDIT,\n },\n rules: {\n default: (): Array<unknown> => [],\n type: Array,\n // we only want functions in the rules array\n validator: (rules: Array<unknown>): boolean => rules.every((rule: unknown) => ['function'].includes(typeof rule))\n },\n required: {\n type: Boolean,\n default: false,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n requireDirty: {\n default: true,\n type: Boolean\n }\n};\n\nconst labeledFormElementEmits = defineEmits(['update:validation']);\n\nexport const useLabeledFormElement = (props: LabeledFormElementProps, emit: typeof labeledFormElementEmits): UseLabeledFormElement => {\n const raised = ref(props.mode === _VIEW || !!`${ props.value }`);\n const focused = ref(false);\n const blurred = ref<number | null>(null);\n\n const requiredField = computed(() => {\n return props.required || props.rules?.some((rule: any) => rule?.name === 'required');\n });\n\n const isView = computed(() => {\n return props.mode === _VIEW;\n });\n\n const isDisabled = computed(() => {\n return props.disabled || isView.value;\n });\n\n const validationMessage = computed(() => {\n const requiredRule = props.rules.find((rule: any) => rule?.name === 'required') as Function;\n const ruleMessages = [];\n const value = props.value;\n\n if (requiredRule && blurred.value && !focused.value) {\n const message = requiredRule(value);\n\n if (!!message) {\n emit('update:validation', false);\n\n return message;\n }\n }\n\n for (const rule of props.rules) {\n const message = rule(value);\n\n if (!!message && rule.name !== 'required') {\n ruleMessages.push(message);\n }\n }\n\n if (ruleMessages.length > 0 && (blurred.value || focused.value || !props.requireDirty)) {\n emit('update:validation', false);\n\n return ruleMessages.join(', ');\n } else {\n emit('update:validation', true);\n\n return undefined;\n }\n });\n\n const onFocusLabeled = () => {\n raised.value = true;\n focused.value = true;\n };\n\n const onBlurLabeled = () => {\n focused.value = false;\n\n if (!props.value) {\n raised.value = false;\n }\n\n blurred.value = Date.now();\n };\n\n return {\n raised,\n focused,\n blurred,\n onFocusLabeled,\n onBlurLabeled,\n isDisabled,\n validationMessage,\n requiredField\n };\n};\n","import { computed, ComputedRef } from 'vue';\n\ninterface CompactInputProps {\n compact?: boolean | null;\n label?: string;\n labelKey?: string;\n}\n\ninterface UseCompactInput {\n isCompact: ComputedRef<boolean>;\n}\n\nexport const useCompactInput = (props: CompactInputProps): UseCompactInput => {\n const isCompact = computed(() => {\n // Compact if explicitly set - otherwise compact if there is no label\n return (props.compact !== null && props.compact !== undefined) ? !!props.compact : !(props.label || props.labelKey);\n });\n\n return { isCompact };\n};\n","import { render } from \"./LabeledInput.vue?vue&type=template&id=3954a5a8&scoped=true&ts=true\"\nimport script from \"./LabeledInput.vue?vue&type=script&lang=ts\"\nexport * from \"./LabeledInput.vue?vue&type=script&lang=ts\"\n\nimport \"./LabeledInput.vue?vue&type=style&index=0&id=3954a5a8&scoped=true&lang=scss\"\nimport \"./LabeledInput.vue?vue&type=style&index=1&id=3954a5a8&lang=css\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3954a5a8\"]])\n\nexport default __exports__","import { withModifiers as _withModifiers, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, renderSlot as _renderSlot, createCommentVNode as _createCommentVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, withKeys as _withKeys } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"disabled\", \"name\", \"value\", \"checked\"]\nconst _hoisted_2 = [\"tabindex\", \"aria-label\", \"aria-checked\"]\nconst _hoisted_3 = { class: \"labeling\" }\nconst _hoisted_4 = [\"for\"]\nconst _hoisted_5 = { key: 1 }\nconst _hoisted_6 = {\n key: 0,\n class: \"radio-button-outer-container-description\"\n}\nconst _hoisted_7 = {\n key: 1,\n class: \"radio-button-outer-container-description\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_t = _resolveComponent(\"t\")!\n const _directive_clean_html = _resolveDirective(\"clean-html\")!\n\n return (_openBlock(), _createElementBlock(\"label\", {\n class: _normalizeClass({'disabled': _ctx.isDisabled, 'radio-container': true}),\n onKeydown: [\n _cache[1] || (_cache[1] = _withKeys(($event: any) => (_ctx.clicked($event)), [\"enter\"])),\n _cache[2] || (_cache[2] = _withKeys(($event: any) => (_ctx.clicked($event)), [\"space\"]))\n ],\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.clicked($event)), [\"stop\"]))\n }, [\n _createElementVNode(\"input\", {\n id: _ctx.randomString,\n disabled: _ctx.isDisabled,\n name: _ctx.name,\n value: ''+_ctx.val,\n checked: _ctx.isChecked,\n type: \"radio\",\n tabindex: -1,\n onClick: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"stop\",\"prevent\"]))\n }, null, 8, _hoisted_1),\n _createElementVNode(\"span\", {\n ref: \"custom\",\n class: _normalizeClass([ _ctx.isDisabled ? 'text-muted' : '', 'radio-custom']),\n tabindex: _ctx.isDisabled ? -1 : 0,\n \"aria-label\": _ctx.label,\n \"aria-checked\": _ctx.isChecked,\n role: \"radio\"\n }, null, 10, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"label\", {\n class: _normalizeClass([ _ctx.muteLabel ? 'text-muted' : '', 'radio-label', 'm-0']),\n for: _ctx.name\n }, [\n (_ctx.hasLabelSlot)\n ? _renderSlot(_ctx.$slots, \"label\", { key: 0 })\n : (_ctx.label)\n ? _withDirectives((_openBlock(), _createElementBlock(\"span\", _hoisted_5, null, 512)), [\n [_directive_clean_html, _ctx.label]\n ])\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_4),\n (_ctx.descriptionKey || _ctx.description)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_ctx.descriptionKey)\n ? (_openBlock(), _createBlock(_component_t, {\n key: 0,\n k: _ctx.descriptionKey\n }, null, 8, [\"k\"]))\n : (_ctx.description)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.description), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ]))\n : (_ctx.hasDescriptionSlot)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _renderSlot(_ctx.$slots, \"description\")\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 34))\n}","<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { _VIEW } from '@shell/config/query-params';\nimport { randomStr } from '@shell/utils/string';\n\nexport default defineComponent({\n props: {\n /**\n * The name of the input, for grouping.\n */\n name: {\n type: String,\n default: ''\n },\n\n /**\n * The value for this option.\n */\n val: {\n required: true,\n validator: () => true\n },\n\n /**\n * The selected value.\n */\n value: {\n required: true,\n validator: () => true\n },\n\n /**\n * The label shown next to the radio.\n */\n label: {\n type: String,\n default: ''\n },\n\n /**\n * Disable the radio.\n */\n disabled: {\n type: Boolean,\n default: false\n },\n\n /**\n * The radio editing mode.\n * @values _EDIT, _VIEW\n */\n mode: {\n type: String,\n default: 'edit'\n },\n\n /**\n * The i18n key to use for the radio description.\n */\n descriptionKey: {\n type: String,\n default: null\n },\n\n /**\n * The radio description.\n */\n description: {\n type: String,\n default: null\n }\n },\n\n emits: ['update:value'],\n\n data() {\n return {\n isChecked: this.value === this.val,\n randomString: `${ randomStr() }-radio`,\n };\n },\n\n computed: {\n /**\n * Determines if the radio is disabled.\n */\n isDisabled(): boolean {\n return this.mode === _VIEW || this.disabled;\n },\n\n /**\n * Determines if the label for the radio should be muted.\n */\n muteLabel(): boolean {\n // Don't mute the label if the mode is view and the button is checked\n return this.disabled && !(this.mode === _VIEW && this.isChecked);\n },\n\n /**\n * Determines if the description slot is in use.\n */\n hasDescriptionSlot(): boolean {\n return !!this.$slots.description;\n },\n\n hasLabelSlot(): boolean {\n return !!this.$slots.label;\n }\n },\n\n watch: {\n value(neu) {\n this.isChecked = this.val === neu;\n if (this.isChecked) {\n (this.$refs.custom as HTMLElement).focus();\n }\n }\n },\n\n methods: {\n /**\n * Emits the input event.\n */\n clicked(event: MouseEvent | KeyboardEvent) {\n const target = event.target;\n\n if (this.isDisabled || (target instanceof HTMLElement && target.tagName === 'A')) {\n return;\n }\n\n this.$emit('update:value', this.val);\n },\n }\n});\n</script>\n\n<template>\n <label\n :class=\"{'disabled': isDisabled, 'radio-container': true}\"\n @keydown.enter=\"clicked($event)\"\n @keydown.space=\"clicked($event)\"\n @click.stop=\"clicked($event)\"\n >\n <input\n :id=\"randomString\"\n :disabled=\"isDisabled\"\n :name=\"name\"\n :value=\"''+val\"\n :checked=\"isChecked\"\n type=\"radio\"\n :tabindex=\"-1\"\n @click.stop.prevent\n >\n <span\n ref=\"custom\"\n :class=\"[ isDisabled ? 'text-muted' : '', 'radio-custom']\"\n :tabindex=\"isDisabled ? -1 : 0\"\n :aria-label=\"label\"\n :aria-checked=\"isChecked\"\n role=\"radio\"\n />\n <div class=\"labeling\">\n <label\n :class=\"[ muteLabel ? 'text-muted' : '', 'radio-label', 'm-0']\"\n :for=\"name\"\n >\n <slot\n v-if=\"hasLabelSlot\"\n name=\"label\"\n >\n <!-- slot content -->\n </slot>\n <span\n v-else-if=\"label\"\n v-clean-html=\"label\"\n />\n </label>\n <div\n v-if=\"descriptionKey || description\"\n class=\"radio-button-outer-container-description\"\n >\n <t\n v-if=\"descriptionKey\"\n :k=\"descriptionKey\"\n />\n <template v-else-if=\"description\">\n {{ description }}\n </template>\n </div>\n <div\n v-else-if=\"hasDescriptionSlot\"\n class=\"radio-button-outer-container-description\"\n >\n <slot name=\"description\" />\n </div>\n </div>\n </label>\n</template>\n\n<style lang='scss'>\n$fontColor: var(--input-label);\n\n.radio-view {\n display: flex;\n flex-direction: column;\n LABEL {\n color: var(--input-label);\n }\n}\n\n.radio-group {\n .text-label {\n display: block;\n padding-bottom: 5px;\n }\n}\n\n.radio-container {\n position: relative;\n display: inline-flex;\n align-items: flex-start;\n margin: 0;\n user-select: none;\n border-radius: var(--border-radius);\n padding-bottom: 5px;\n\n &,\n .radio-label,\n .radio-button-outer-container-description {\n cursor: pointer;\n }\n\n &.disabled,\n &.disabled .radio-label,\n &.disabled .radio-button-outer-container-description {\n cursor: not-allowed\n }\n\n .radio-custom {\n height: 14px;\n width: 14px;\n min-height: 14px;\n min-width: 14px;\n background-color: var(--input-bg);\n border-radius: 50%;\n border: 1.5px solid var(--border);\n margin-top: 5px;\n }\n\n input {\n display: none;\n }\n\n .radio-custom {\n &[aria-checked=\"true\"] {\n background-color: var(--primary);\n -webkit-transform: rotate(0deg) scale(1);\n -ms-transform: rotate(0deg) scale(1);\n transform: rotate(0deg) scale(1);\n opacity:1;\n border: 1.5px solid var(--primary);\n\n // Ensure that checked radio buttons are muted but still visibly selected when muted\n &.text-muted {\n opacity: .25;\n }\n }\n }\n\n input:disabled ~ .radio-custom:not([aria-checked=\"true\"]) {\n background-color: var(--disabled-bg);\n opacity: .25;\n }\n\n .radio-button-outer-container-description {\n color: $fontColor;\n font-size: 11px;\n margin-top: 5px;\n }\n\n .labeling {\n display: inline-flex;\n flex-direction: column;\n\n margin: 3px 10px 0px 5px;\n }\n}\n\n</style>\n","import { render } from \"./RadioButton.vue?vue&type=template&id=1346032c&ts=true\"\nimport script from \"./RadioButton.vue?vue&type=script&lang=ts\"\nexport * from \"./RadioButton.vue?vue&type=script&lang=ts\"\n\nimport \"./RadioButton.vue?vue&type=style&index=0&id=1346032c&lang=scss\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderSlot as _renderSlot, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createElementVNode as _createElementVNode, renderList as _renderList, createVNode as _createVNode, withModifiers as _withModifiers, withKeys as _withKeys, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"radio-group label\"\n}\nconst _hoisted_2 = {\n key: 2,\n class: \"icon icon-info icon-lg\"\n}\nconst _hoisted_3 = {\n key: 3,\n class: \"icon icon-info icon-lg\"\n}\nconst _hoisted_4 = [\"aria-label\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_t = _resolveComponent(\"t\")!\n const _component_RadioButton = _resolveComponent(\"RadioButton\")!\n const _directive_clean_tooltip = _resolveDirective(\"clean-tooltip\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_ctx.label || _ctx.labelKey || _ctx.tooltip || _ctx.tooltipKey || _ctx.$slots.label)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"label\", {}, () => [\n _createElementVNode(\"h3\", null, [\n (_ctx.labelKey)\n ? (_openBlock(), _createBlock(_component_t, {\n key: 0,\n k: _ctx.labelKey\n }, null, 8, [\"k\"]))\n : (_ctx.label)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.label), 1)\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.tooltipKey)\n ? _withDirectives((_openBlock(), _createElementBlock(\"i\", _hoisted_2, null, 512)), [\n [_directive_clean_tooltip, _ctx.t(_ctx.tooltipKey)]\n ])\n : (_ctx.tooltip)\n ? _withDirectives((_openBlock(), _createElementBlock(\"i\", _hoisted_3, null, 512)), [\n [_directive_clean_tooltip, _ctx.tooltip]\n ])\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n role: \"radiogroup\",\n \"aria-label\": _ctx.radioGroupLabel,\n class: _normalizeClass([\"radio-group\", {'row':_ctx.row}]),\n onKeyup: [\n _cache[1] || (_cache[1] = _withKeys(_withModifiers(($event: any) => (_ctx.clickNext(1)), [\"stop\"]), [\"down\"])),\n _cache[2] || (_cache[2] = _withKeys(_withModifiers(($event: any) => (_ctx.clickNext(-1)), [\"stop\"]), [\"up\"]))\n ]\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.normalizedOptions, (option, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n _renderSlot(_ctx.$slots, i, {\n vBind: _ctx.$attrs,\n option: option,\n isDisabled: _ctx.isDisabled\n }, () => [\n _createVNode(_component_RadioButton, {\n name: _ctx.name,\n value: _ctx.value,\n label: option.label,\n description: option.description,\n val: option.value,\n disabled: _ctx.isDisabled,\n mode: _ctx.mode,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('update:value', $event)))\n }, null, 8, [\"name\", \"value\", \"label\", \"description\", \"val\", \"disabled\", \"mode\"])\n ])\n ]))\n }), 128))\n ], 42, _hoisted_4)\n ]))\n}","<script lang=\"ts\">\nimport { PropType, defineComponent } from 'vue';\nimport { _VIEW } from '@shell/config/query-params';\nimport RadioButton from '@components/Form/Radio/RadioButton.vue';\n\ninterface Option {\n value: unknown,\n label: string,\n description?: string,\n}\n\nexport default defineComponent({\n components: { RadioButton },\n props: {\n /**\n * Name for the checkbox grouping, must be unique on page.\n */\n name: {\n type: String,\n required: true\n },\n\n /**\n * Options can be an array of {label, value}, or just values.\n */\n options: {\n type: Array as PropType<Option[] | string[]>,\n required: true\n },\n\n /**\n * If options are just values, then labels can be a corresponding display\n * value.\n */\n labels: {\n type: Array as PropType<string[]>,\n default: null\n },\n\n /**\n * The selected value.\n */\n value: {\n type: [Boolean, String, Object],\n default: null\n },\n\n /**\n * Disable the radio group.\n */\n disabled: {\n type: Boolean,\n default: false\n },\n\n /**\n * The radio group editing mode.\n * @values _EDIT, _VIEW\n */\n mode: {\n type: String,\n default: 'edit'\n },\n\n /**\n * Label for above the radios.\n */\n label: {\n type: String,\n default: null\n },\n\n /**\n * The i18n key to use for the radio group label.\n */\n labelKey: {\n type: String,\n default: null\n },\n\n /**\n * Radio group tooltip.\n */\n tooltip: {\n type: [String, Object],\n default: null\n },\n\n /**\n * The i18n key to use for the radio group tooltip.\n */\n tooltipKey: {\n type: String,\n default: null\n },\n\n /**\n * Show radio buttons in column or row.\n */\n row: {\n type: Boolean,\n default: false\n }\n },\n\n emits: ['update:value'],\n\n computed: {\n /**\n * Creates a collection of Options from the provided props.\n */\n normalizedOptions(): Option[] {\n const out: Option[] = [];\n\n for (let i = 0; i < this.options.length; i++) {\n const opt = this.options[i];\n\n if (typeof opt === 'object' && opt) {\n out.push(opt);\n } else if (this.labels) {\n out.push({\n label: this.labels[i],\n value: opt\n });\n } else {\n out.push({\n label: opt,\n value: opt\n });\n }\n }\n\n return out;\n },\n\n /**\n * Determines the view mode for the radio group.\n */\n isView(): boolean {\n return this.mode === _VIEW;\n },\n\n /**\n * Determines if the radio group is disabled.\n */\n isDisabled(): boolean {\n return (this.disabled || this.isView);\n },\n radioGroupLabel(): string {\n return this.labelKey ? this.t(this.labelKey) : this.label ? this.label : '';\n }\n },\n\n methods: {\n /**\n * Keyboard left/right event listener to select next/previous option. Emits\n * the input event.\n */\n clickNext(direction: number): void {\n const opts = this.normalizedOptions;\n const selected = opts.find((x) => x.value === this.value);\n let newIndex = (selected ? opts.indexOf(selected) : -1) + direction;\n\n if (newIndex >= opts.length) {\n newIndex = opts.length - 1;\n } else if (newIndex < 0) {\n newIndex = 0;\n }\n\n this.$emit('update:value', opts[newIndex].value);\n }\n }\n});\n</script>\n\n<template>\n <div>\n <!-- Label -->\n <div\n v-if=\"label || labelKey || tooltip || tooltipKey || $slots.label\"\n class=\"radio-group label\"\n >\n <slot name=\"label\">\n <h3>\n <t\n v-if=\"labelKey\"\n :k=\"labelKey\"\n />\n <template v-else-if=\"label\">\n {{ label }}\n </template>\n <i\n v-if=\"tooltipKey\"\n v-clean-tooltip=\"t(tooltipKey)\"\n class=\"icon icon-info icon-lg\"\n />\n <i\n v-else-if=\"tooltip\"\n v-clean-tooltip=\"tooltip\"\n class=\"icon icon-info icon-lg\"\n />\n </h3>\n </slot>\n </div>\n\n <!-- Group -->\n <div\n role=\"radiogroup\"\n :aria-label=\"radioGroupLabel\"\n class=\"radio-group\"\n :class=\"{'row':row}\"\n @keyup.down.stop=\"clickNext(1)\"\n @keyup.up.stop=\"clickNext(-1)\"\n >\n <div\n v-for=\"(option, i) in normalizedOptions\"\n :key=\"i\"\n >\n <slot\n :v-bind=\"$attrs\"\n :option=\"option\"\n :is-disabled=\"isDisabled\"\n :name=\"i\"\n >\n <!-- Default input -->\n <RadioButton\n :name=\"name\"\n :value=\"value\"\n :label=\"option.label\"\n :description=\"option.description\"\n :val=\"option.value\"\n :disabled=\"isDisabled\"\n :mode=\"mode\"\n @update:value=\"$emit('update:value', $event)\"\n />\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<style lang='scss'>\n.radio-group {\n &:focus {\n border:none;\n outline:none;\n }\n\n h3 {\n position: relative;\n }\n\n &.row {\n display: flex;\n .radio-container {\n margin-right: 10px;\n }\n }\n\n .label{\n font-size: 14px !important;\n }\n}\n</style>\n","import { render } from \"./RadioGroup.vue?vue&type=template&id=452c5c93&ts=true\"\nimport script from \"./RadioGroup.vue?vue&type=script&lang=ts\"\nexport * from \"./RadioGroup.vue?vue&type=script&lang=ts\"\n\nimport \"./RadioGroup.vue?vue&type=style&index=0&id=452c5c93&lang=scss\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"value\", \"data-testid\", \"disabled\", \"placeholder\", \"spellcheck\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"textarea\", _mergeProps({\n ref: \"ta\",\n value: _ctx.value,\n \"data-testid\": _ctx.$attrs['data-testid'] ? _ctx.$attrs['data-testid'] : 'text-area-auto-grow',\n disabled: _ctx.isDisabled,\n style: _ctx.style,\n placeholder: _ctx.placeholder,\n class: [_ctx.className, \"no-resize no-ease\"]\n }, _ctx.$attrs, {\n spellcheck: _ctx.spellcheck,\n onPaste: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('paste', $event))),\n onInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onInput($event))),\n onFocus: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('focus', $event))),\n onBlur: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('blur', $event)))\n }), null, 16, _hoisted_1))\n}","<script lang=\"ts\">\nimport { defineComponent, inject, PropType } from 'vue';\nimport { debounce } from 'lodash';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\n\ninterface NonReactiveProps {\n queueResize(): void;\n}\n\nconst provideProps: NonReactiveProps = {\n queueResize() {\n // noop\n }\n};\n\nexport default defineComponent({\n inheritAttrs: false,\n\n props: {\n value: {\n type: String,\n required: true\n },\n\n class: {\n type: [String, Array, Object] as PropType<string | unknown[] | Record<string, boolean>>,\n default: ''\n },\n\n /**\n * Sets the edit mode for Text Area.\n * @values _EDIT, _VIEW\n */\n mode: {\n type: String,\n default: _EDIT\n },\n\n /**\n * Sets the Minimum height for Text Area. Prevents the height from becoming\n * smaller than the value specified in minHeight.\n */\n minHeight: {\n type: Number,\n default: 25\n },\n\n /**\n * Sets the maximum height for Text Area. Prevents the height from becoming\n * larger than the value specified in maxHeight.\n */\n maxHeight: {\n type: Number,\n default: 200\n },\n\n /**\n * Text that appears in the Text Area when it has no value set.\n */\n placeholder: {\n type: String,\n default: ''\n },\n\n /**\n * Specifies whether Text Area is subject to spell checking by the\n * underlying browser/OS.\n */\n spellcheck: {\n type: Boolean,\n default: true\n },\n\n /**\n * Disables the Text Area.\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n\n emits: ['update:value', 'paste', 'focus', 'blur'],\n\n setup() {\n const queueResize = inject('queueResize', provideProps.queueResize);\n\n return { queueResize };\n },\n\n data() {\n return {\n curHeight: this.minHeight,\n overflow: 'hidden'\n };\n },\n\n computed: {\n /**\n * Determines if the Text Area should be disabled.\n */\n isDisabled(): boolean {\n return this.disabled || this.mode === _VIEW;\n },\n\n /**\n * Sets the height to one-line for SSR pageload so that it's already right\n * (unless the input is long)\n */\n style(): string {\n return `height: ${ this.curHeight }px; overflow: ${ this.overflow };`;\n },\n\n className(): string | unknown[] | Record<string, boolean> {\n return this.class;\n }\n },\n\n watch: {\n $attrs: {\n deep: true,\n handler() {\n this.queueResize();\n }\n }\n },\n\n created() {\n this.queueResize = debounce(this.autoSize, 100);\n },\n\n mounted() {\n (this.$refs.ta as HTMLElement).style.height = `${ this.curHeight }px`;\n this.$nextTick(() => {\n this.autoSize();\n });\n },\n\n methods: {\n /**\n * Emits the input event and resizes the Text Area.\n */\n onInput(event: Event): void {\n const val = (event?.target as HTMLInputElement)?.value;\n\n this.$emit('update:value', val);\n this.queueResize();\n },\n\n /**\n * Gives focus to the Text Area.\n */\n focus(): void {\n (this.$refs?.ta as HTMLElement).focus();\n },\n\n /**\n * Sets the overflowY and height of the Text Area based on the content\n * entered (calculated via scroll height).\n */\n autoSize(): void {\n const el = this.$refs.ta as HTMLElement;\n\n if (!el) {\n return;\n }\n\n el.style.height = '1px';\n\n const border = parseInt(getComputedStyle(el).getPropertyValue('borderTopWidth'), 10) || 0 + parseInt(getComputedStyle(el).getPropertyValue('borderBottomWidth'), 10) || 0;\n const neu = Math.max(this.minHeight, Math.min(el.scrollHeight + border, this.maxHeight));\n\n el.style.overflowY = el.scrollHeight > neu ? 'auto' : 'hidden';\n el.style.height = `${ neu }px`;\n\n this.curHeight = neu;\n }\n }\n});\n</script>\n\n<template>\n <textarea\n ref=\"ta\"\n :value=\"value\"\n :data-testid=\"$attrs['data-testid'] ? $attrs['data-testid'] : 'text-area-auto-grow'\"\n :disabled=\"isDisabled\"\n :style=\"style\"\n :placeholder=\"placeholder\"\n :class=\"className\"\n class=\"no-resize no-ease\"\n v-bind=\"$attrs\"\n :spellcheck=\"spellcheck\"\n @paste=\"$emit('paste', $event)\"\n @input=\"onInput($event)\"\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n />\n</template>\n","import { render } from \"./TextAreaAutoGrow.vue?vue&type=template&id=3a422c38&ts=true\"\nimport script from \"./TextAreaAutoGrow.vue?vue&type=script&lang=ts\"\nexport * from \"./TextAreaAutoGrow.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { normalizeClass as _normalizeClass, resolveDirective as _resolveDirective, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"tooltip\",\n \"x-placement\": \"bottom\"\n}\nconst _hoisted_2 = { class: \"tooltip-inner\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_clean_tooltip = _resolveDirective(\"clean-tooltip\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n ref: \"container\",\n class: _normalizeClass([\"labeled-tooltip\", {[_ctx.status]: true, hoverable: _ctx.hover}])\n }, [\n (_ctx.hover)\n ? _withDirectives((_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass([{'hover':!_ctx.value, [_ctx.iconClass]: true}, \"icon status-icon\"])\n }, null, 2)), [\n [_directive_clean_tooltip, _ctx.isObject(_ctx.value) ? { ...{content: _ctx.value.content, popperClass: [`tooltip-${_ctx.status}`]}, ..._ctx.value } : _ctx.value]\n ])\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([{'hover':!_ctx.value}, \"icon status-icon\"])\n }, null, 2),\n (_ctx.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _cache[0] || (_cache[0] = _createElementVNode(\"div\", { class: \"tooltip-arrow\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.value), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n ], 2))\n}","<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n /**\n * The Labeled Tooltip value.\n */\n value: {\n type: [String, Object],\n default: null\n },\n\n /**\n * The status for the Labeled Tooltip. Controls the Labeled Tooltip class.\n * @values info, success, warning, error\n */\n status: {\n type: String,\n default: 'error'\n },\n\n /**\n * Displays the Labeled Tooltip on mouse hover.\n */\n hover: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n iconClass(): string {\n return this.status === 'error' ? 'icon-warning' : 'icon-info';\n }\n },\n methods: {\n isObject(value: string | Record<string, unknown>): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !!value.content;\n }\n }\n});\n</script>\n\n<template>\n <div\n ref=\"container\"\n class=\"labeled-tooltip\"\n :class=\"{[status]: true, hoverable: hover}\"\n >\n <template v-if=\"hover\">\n <i\n v-clean-tooltip=\"isObject(value) ? { ...{content: value.content, popperClass: [`tooltip-${status}`]}, ...value } : value\"\n :class=\"{'hover':!value, [iconClass]: true}\"\n class=\"icon status-icon\"\n />\n </template>\n <template v-else>\n <i\n :class=\"{'hover':!value}\"\n class=\"icon status-icon\"\n />\n <div\n v-if=\"value\"\n class=\"tooltip\"\n x-placement=\"bottom\"\n >\n <div class=\"tooltip-arrow\" />\n <div class=\"tooltip-inner\">\n {{ value }}\n </div>\n </div>\n </template>\n </div>\n</template>\n\n<style lang='scss'>\n.labeled-tooltip {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n\n &.hoverable {\n height: 0%;\n }\n\n .status-icon {\n position: absolute;\n right: 30px;\n top: $input-padding-lg;\n z-index: z-index(hoverOverContent);\n }\n\n @mixin tooltipColors($color) {\n .status-icon {\n color: $color;\n }\n }\n\n &.error {\n @include tooltipColors(var(--error));\n\n .status-icon {\n top: 7px;\n right: 5px;\n }\n }\n\n &.warning {\n @include tooltipColors(var(--warning));\n }\n\n &.success {\n @include tooltipColors(var(--success));\n }\n}\n\n// Ensure code blocks inside tootips don't look awful\n.v-popper__popper.v-popper--theme-tooltip {\n .v-popper__inner {\n pre {\n padding: 2px;\n vertical-align: middle;\n }\n }\n}\n</style>\n","import { render } from \"./LabeledTooltip.vue?vue&type=template&id=cd538d50&ts=true\"\nimport script from \"./LabeledTooltip.vue?vue&type=script&lang=ts\"\nexport * from \"./LabeledTooltip.vue?vue&type=script&lang=ts\"\n\nimport \"./LabeledTooltip.vue?vue&type=style&index=0&id=cd538d50&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { Banner } from '@components/Banner';\nimport { DOC } from '../config/doc-links';\nimport { docLink } from '../utils/feature-flags';\n\nexport default {\n name: 'HarvesterUpgradeInfo',\n\n components: { Banner },\n\n props: {\n version: {\n type: String,\n default: ''\n }\n },\n\n computed: {\n releaseVersion() {\n return !!this.version ? `https://github.com/harvester/harvester/releases/tag/${ this.version }` : `https://github.com/harvester/harvester/releases`;\n },\n\n upgradeLink() {\n const version = this.$store.getters['harvester-common/getServerVersion']();\n\n return docLink(DOC.UPGRADE_URL, version);\n }\n },\n};\n</script>\n\n<template>\n <div>\n <Banner color=\"warning\">\n <div>\n <strong>{{ t('harvester.upgradePage.upgradeInfo.warning') }}:</strong>\n <p\n v-clean-html=\"t('harvester.upgradePage.upgradeInfo.doc', {url: upgradeLink}, true)\"\n class=\"mb-5\"\n ></p>\n\n <p class=\"mb-5\">\n {{ t('harvester.upgradePage.upgradeInfo.tip') }}\n </p>\n\n <p class=\"mb-5\">\n {{ t('harvester.upgradePage.upgradeInfo.moreNotes') }} <a\n :href=\"releaseVersion\"\n target=\"_blank\"\n >{{ t('generic.moreInfo') }}</a>\n </p>\n </div>\n </Banner>\n </div>\n</template>\n","import { render } from \"./UpgradeInfo.vue?vue&type=template&id=5b82f56d\"\nimport script from \"./UpgradeInfo.vue?vue&type=script&lang=js\"\nexport * from \"./UpgradeInfo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { randomStr } from '@shell/utils/string';\nimport { exceptionToErrorsArray, stringify } from '@shell/utils/error';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport GraphCircle from '@shell/components/graph/Circle';\nimport { Banner } from '@components/Banner';\nimport AppModal from '@shell/components/AppModal';\nimport { HCI } from '../types';\n\nexport default {\n name: 'SupportBundle',\n\n components: {\n LabeledInput,\n GraphCircle,\n AsyncButton,\n Banner,\n AppModal,\n },\n\n data() {\n return {\n url: '',\n description: '',\n errors: [],\n isOpen: false,\n };\n },\n\n computed: {\n bundlePending() {\n return this.$store.getters['harvester-common/isBundlePending'];\n },\n\n isShowBundleModal() {\n return this.$store.getters['harvester-common/isShowBundleModal'];\n },\n\n percentage() {\n return this.$store.getters['harvester-common/getBundlePercentage'];\n }\n },\n\n watch: {\n isShowBundleModal: {\n handler(show) {\n if (show) {\n this.$nextTick(() => {\n this.isOpen = true;\n });\n } else {\n this.isOpen = false;\n this.url = '';\n this.description = '';\n }\n },\n immediate: true\n },\n },\n\n methods: {\n stringify,\n\n close() {\n this.isOpen = false;\n this.$store.commit('harvester-common/toggleBundleModal', false);\n this.backUpName = '';\n },\n\n async save(buttonCb) {\n this.errors = [];\n\n const name = `bundle-${ randomStr(5).toLowerCase() }`;\n const namespace = 'harvester-system';\n\n const bundleCrd = {\n apiVersion: 'harvesterhci.io/v1beta1',\n type: HCI.SUPPORT_BUNDLE,\n kind: 'SupportBundle',\n metadata: {\n name,\n namespace\n },\n spec: {\n issueURL: this.url,\n description: this.description\n }\n };\n\n const inStore = this.$store.getters['currentProduct'].inStore;\n const bundleValue = await this.$store.dispatch(`${ inStore }/create`, bundleCrd);\n\n try {\n await bundleValue.save();\n\n this.$store.commit('harvester-common/setLatestBundleId', `${ namespace }/${ name }`, { root: true });\n this.$store.dispatch('harvester-common/bundleProgress', { root: true });\n } catch (err) {\n this.errors = exceptionToErrorsArray(err);\n buttonCb(false);\n }\n },\n }\n};\n</script>\n\n<template>\n <div class=\"bundleModal\">\n <app-modal\n v-if=\"isOpen\"\n name=\"bundle-modal\"\n custom-class=\"bundleModal\"\n :click-to-close=\"false\"\n :width=\"550\"\n :height=\"390\"\n class=\"remove-modal support-modal\"\n @close=\"close\"\n >\n <div class=\"p-20\">\n <h2>\n {{ t('harvester.modal.bundle.title') }}\n </h2>\n\n <div\n v-if=\"!bundlePending\"\n class=\"content\"\n >\n <LabeledInput\n v-model:value=\"url\"\n :label=\"t('harvester.modal.bundle.url')\"\n class=\"mb-20\"\n />\n\n <LabeledInput\n v-model:value=\"description\"\n :label=\"t('harvester.modal.bundle.description')\"\n type=\"multiline\"\n :min-height=\"120\"\n required\n />\n </div>\n\n <div\n v-else\n class=\"content\"\n >\n <div class=\"circle\">\n <GraphCircle\n primary-stroke-color=\"green\"\n secondary-stroke-color=\"white\"\n :stroke-width=\"6\"\n :percentage=\"percentage\"\n :show-text=\"true\"\n />\n </div>\n </div>\n\n <div\n v-for=\"(err, idx) in errors\"\n :key=\"idx\"\n >\n <Banner\n color=\"error\"\n :label=\"stringify(err)\"\n />\n </div>\n\n <div class=\"footer mt-20\">\n <button\n class=\"btn btn-sm role-secondary mr-10\"\n @click=\"close\"\n >\n {{ t('generic.close') }}\n </button>\n\n <AsyncButton\n type=\"submit\"\n mode=\"generate\"\n class=\"btn btn-sm bg-primary\"\n :disabled=\"bundlePending\"\n @click=\"save\"\n />\n </div>\n </div>\n </app-modal>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.bundleModal {\n .support-modal {\n border-radius: var(--border-radius);\n max-height: 100vh;\n }\n\n .bundle {\n cursor: pointer;\n color: var(--primary);\n }\n\n .icon-spinner {\n font-size: 100px;\n }\n\n .content {\n height: 218px;\n\n .circle {\n padding-top: 20px;\n height: 160px;\n }\n }\n\n div {\n line-height: normal;\n }\n\n .footer {\n display: flex;\n justify-content: center;\n }\n}\n</style>\n","<script>\nlet id = 0;\n\nexport default {\n props: {\n percentage: {\n type: Number,\n default: 0.75\n },\n strokeWidth: {\n type: Number,\n default: 22\n },\n primaryStrokeColor: {\n type: String,\n required: true\n },\n primaryStrokeGradientColor: {\n type: String,\n default: null\n },\n secondaryStrokeColor: {\n type: String,\n required: true\n },\n secondaryStrokeGradientColor: {\n type: String,\n default: null\n },\n rotate: {\n type: Number,\n default: 90\n },\n showText: {\n type: Boolean,\n default: false\n },\n },\n data() {\n return { id: id++ };\n },\n computed: {\n viewportSize() {\n return 100;\n },\n radius() {\n const outerRadius = this.viewportSize / 2;\n const halfStrokeWidth = this.strokeWidth / 2;\n\n return outerRadius - halfStrokeWidth;\n },\n center() {\n return this.viewportSize / 2;\n },\n viewBox() {\n return `0 0 ${ this.viewportSize } ${ this.viewportSize }`;\n },\n circumference() {\n return 2 * Math.PI * this.radius;\n },\n transform() {\n return `rotate(${ this.rotate }, ${ this.center }, ${ this.center })`;\n },\n strokeDasharray() {\n // This needs to be the circumference of the circle in order to allow the path to be filled\n return this.circumference;\n },\n strokeDashoffset() {\n // This needs to be the percentage of the circumference that we won't show as it will hide that portion of the path\n return this.circumference * (1 - this.percentage);\n },\n primaryStrokeColorId() {\n return `primary-${ id }`;\n },\n secondaryStrokeColorId() {\n return `secondary-${ id }`;\n },\n parsePercentage() {\n return parseInt(this.percentage * 100) || 0;\n },\n }\n};\n\n</script>\n\n<template>\n <svg\n class=\"circle\"\n width=\"100%\"\n height=\"100%\"\n :viewBox=\"viewBox\"\n >\n <g :transform=\"transform\">\n <defs>\n <linearGradient\n :id=\"primaryStrokeColorId\"\n x1=\"0%\"\n y1=\"0%\"\n x2=\"100%\"\n y2=\"0%\"\n >\n <stop\n offset=\"50%\"\n :stop-color=\"primaryStrokeGradientColor || primaryStrokeColor\"\n />\n <stop\n offset=\"100%\"\n :stop-color=\"primaryStrokeColor\"\n />\n </linearGradient>\n <linearGradient\n :id=\"secondaryStrokeColorId\"\n x1=\"0%\"\n y1=\"0%\"\n x2=\"100%\"\n y2=\"0%\"\n >\n <stop\n offset=\"50%\"\n :stop-color=\"secondaryStrokeGradientColor || secondaryStrokeColor\"\n />\n <stop\n offset=\"100%\"\n :stop-color=\"secondaryStrokeColor\"\n />\n </linearGradient>\n </defs>\n <circle\n :r=\"radius\"\n :cy=\"center\"\n :cx=\"center\"\n :stroke-width=\"strokeWidth\"\n :stroke=\"`url(#${secondaryStrokeColorId})`\"\n fill=\"none\"\n />\n <circle\n :r=\"radius\"\n :cy=\"center\"\n :cx=\"center\"\n :stroke-width=\"strokeWidth\"\n :stroke=\"`url(#${primaryStrokeColorId})`\"\n :stroke-dasharray=\"circumference\"\n :stroke-dashoffset=\"circumference * (1 - percentage)\"\n fill=\"none\"\n />\n </g>\n\n <text\n v-if=\"showText\"\n :x=\"center\"\n :y=\"center\"\n style=\"font-size: 25; dominant-baseline: middle; text-anchor:middle;\"\n :fill=\"`url(#${primaryStrokeColorId})`\"\n >\n {{ parsePercentage }}%\n </text>\n </svg>\n</template>\n\n<style lang=\"scss\" scoped>\nsvg.text {\n fill: red\n}\n</style>\n","import { render } from \"./Circle.vue?vue&type=template&id=5f78e642&scoped=true\"\nimport script from \"./Circle.vue?vue&type=script&lang=js\"\nexport * from \"./Circle.vue?vue&type=script&lang=js\"\n\nimport \"./Circle.vue?vue&type=style&index=0&id=5f78e642&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5f78e642\"]])\n\nexport default __exports__","import { render } from \"./HarvesterSupportBundle.vue?vue&type=template&id=4369f8da&scoped=true\"\nimport script from \"./HarvesterSupportBundle.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterSupportBundle.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterSupportBundle.vue?vue&type=style&index=0&id=4369f8da&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4369f8da\"]])\n\nexport default __exports__","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidCron = void 0;\n// This comes from the fact that parseInt trims characters coming\n// after digits and consider it a valid int, so `1*` becomes `1`.\nvar safeParseInt = function (value) {\n if (/^\\d+$/.test(value)) {\n return Number(value);\n }\n else {\n return NaN;\n }\n};\nvar isWildcard = function (value) {\n return value === '*';\n};\nvar isQuestionMark = function (value) {\n return value === '?';\n};\nvar isInRange = function (value, start, stop) {\n return value >= start && value <= stop;\n};\nvar isValidRange = function (value, start, stop) {\n var sides = value.split('-');\n switch (sides.length) {\n case 1:\n return isWildcard(value) || isInRange(safeParseInt(value), start, stop);\n case 2:\n var _a = sides.map(function (side) { return safeParseInt(side); }), small = _a[0], big = _a[1];\n return small <= big && isInRange(small, start, stop) && isInRange(big, start, stop);\n default:\n return false;\n }\n};\nvar isValidStep = function (value) {\n return value === undefined || (value.search(/[^\\d]/) === -1 && safeParseInt(value) > 0);\n};\nvar validateForRange = function (value, start, stop) {\n if (value.search(/[^\\d-,\\/*]/) !== -1) {\n return false;\n }\n var list = value.split(',');\n return list.every(function (condition) {\n var splits = condition.split('/');\n // Prevents `*/ * * * *` from being accepted.\n if (condition.trim().endsWith('/')) {\n return false;\n }\n // Prevents `*/*/* * * * *` from being accepted\n if (splits.length > 2) {\n return false;\n }\n // If we don't have a `/`, right will be undefined which is considered a valid step if we don't a `/`.\n var left = splits[0], right = splits[1];\n return isValidRange(left, start, stop) && isValidStep(right);\n });\n};\nvar hasValidSeconds = function (seconds) {\n return validateForRange(seconds, 0, 59);\n};\nvar hasValidMinutes = function (minutes) {\n return validateForRange(minutes, 0, 59);\n};\nvar hasValidHours = function (hours) {\n return validateForRange(hours, 0, 23);\n};\nvar hasValidDays = function (days, allowBlankDay) {\n return (allowBlankDay && isQuestionMark(days)) || validateForRange(days, 1, 31);\n};\nvar monthAlias = {\n jan: '1',\n feb: '2',\n mar: '3',\n apr: '4',\n may: '5',\n jun: '6',\n jul: '7',\n aug: '8',\n sep: '9',\n oct: '10',\n nov: '11',\n dec: '12'\n};\nvar hasValidMonths = function (months, alias) {\n // Prevents alias to be used as steps\n if (months.search(/\\/[a-zA-Z]/) !== -1) {\n return false;\n }\n if (alias) {\n var remappedMonths = months.toLowerCase().replace(/[a-z]{3}/g, function (match) {\n return monthAlias[match] === undefined ? match : monthAlias[match];\n });\n // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the months\n return validateForRange(remappedMonths, 1, 12);\n }\n return validateForRange(months, 1, 12);\n};\nvar weekdaysAlias = {\n sun: '0',\n mon: '1',\n tue: '2',\n wed: '3',\n thu: '4',\n fri: '5',\n sat: '6'\n};\nvar hasValidWeekdays = function (weekdays, alias, allowBlankDay, allowSevenAsSunday) {\n // If there is a question mark, checks if the allowBlankDay flag is set\n if (allowBlankDay && isQuestionMark(weekdays)) {\n return true;\n }\n else if (!allowBlankDay && isQuestionMark(weekdays)) {\n return false;\n }\n // Prevents alias to be used as steps\n if (weekdays.search(/\\/[a-zA-Z]/) !== -1) {\n return false;\n }\n if (alias) {\n var remappedWeekdays = weekdays.toLowerCase().replace(/[a-z]{3}/g, function (match) {\n return weekdaysAlias[match] === undefined ? match : weekdaysAlias[match];\n });\n // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the weekdays\n return validateForRange(remappedWeekdays, 0, allowSevenAsSunday ? 7 : 6);\n }\n return validateForRange(weekdays, 0, allowSevenAsSunday ? 7 : 6);\n};\nvar hasCompatibleDayFormat = function (days, weekdays, allowBlankDay) {\n return !(allowBlankDay && isQuestionMark(days) && isQuestionMark(weekdays));\n};\nvar split = function (cron) {\n return cron.trim().split(/\\s+/);\n};\nvar defaultOptions = {\n alias: false,\n seconds: false,\n allowBlankDay: false,\n allowSevenAsSunday: false\n};\nexports.isValidCron = function (cron, options) {\n options = __assign(__assign({}, defaultOptions), options);\n var splits = split(cron);\n if (splits.length > (options.seconds ? 6 : 5) || splits.length < 5) {\n return false;\n }\n var checks = [];\n if (splits.length === 6) {\n var seconds = splits.shift();\n if (seconds) {\n checks.push(hasValidSeconds(seconds));\n }\n }\n // We could only check the steps gradually and return false on the first invalid block,\n // However, this won't have any performance impact so why bother for now.\n var minutes = splits[0], hours = splits[1], days = splits[2], months = splits[3], weekdays = splits[4];\n checks.push(hasValidMinutes(minutes));\n checks.push(hasValidHours(hours));\n checks.push(hasValidDays(days, options.allowBlankDay));\n checks.push(hasValidMonths(months, options.alias));\n checks.push(hasValidWeekdays(weekdays, options.alias, options.allowBlankDay, options.allowSevenAsSunday));\n checks.push(hasCompatibleDayFormat(days, weekdays, options.allowBlankDay));\n return checks.every(Boolean);\n};\n//# sourceMappingURL=index.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cronstrue\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cronstrue\"] = factory();\n\telse\n\t\troot[\"cronstrue\"] = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 794:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CronParser = void 0;\nvar rangeValidator_1 = __webpack_require__(586);\nvar CronParser = (function () {\n function CronParser(expression, dayOfWeekStartIndexZero, monthStartIndexZero) {\n if (dayOfWeekStartIndexZero === void 0) { dayOfWeekStartIndexZero = true; }\n if (monthStartIndexZero === void 0) { monthStartIndexZero = false; }\n this.expression = expression;\n this.dayOfWeekStartIndexZero = dayOfWeekStartIndexZero;\n this.monthStartIndexZero = monthStartIndexZero;\n }\n CronParser.prototype.parse = function () {\n var _a;\n var parsed;\n var expression = (_a = this.expression) !== null && _a !== void 0 ? _a : '';\n if (expression.startsWith('@')) {\n var special = this.parseSpecial(this.expression);\n parsed = this.extractParts(special);\n }\n else {\n parsed = this.extractParts(this.expression);\n }\n this.normalize(parsed);\n this.validate(parsed);\n return parsed;\n };\n CronParser.prototype.parseSpecial = function (expression) {\n var specialExpressions = {\n '@yearly': '0 0 1 1 *',\n '@annually': '0 0 1 1 *',\n '@monthly': '0 0 1 * *',\n '@weekly': '0 0 * * 0',\n '@daily': '0 0 * * *',\n '@midnight': '0 0 * * *',\n '@hourly': '0 * * * *'\n };\n var special = specialExpressions[expression];\n if (!special) {\n throw new Error('Unknown special expression.');\n }\n return special;\n };\n CronParser.prototype.extractParts = function (expression) {\n if (!this.expression) {\n throw new Error(\"cron expression is empty\");\n }\n var parsed = expression.trim().split(/[ ]+/);\n for (var i = 0; i < parsed.length; i++) {\n if (parsed[i].includes(\",\")) {\n var arrayElement = parsed[i]\n .split(\",\")\n .map(function (item) { return item.trim(); })\n .filter(function (item) { return item !== \"\"; })\n .map(function (item) { return (!isNaN(Number(item)) ? Number(item) : item); })\n .filter(function (item) { return item !== null && item !== \"\"; });\n if (arrayElement.length === 0) {\n arrayElement.push(\"*\");\n }\n arrayElement.sort(function (a, b) { return (a !== null && b !== null ? a - b : 0); });\n parsed[i] = arrayElement.map(function (item) { return (item !== null ? item.toString() : \"\"); }).join(\",\");\n }\n }\n if (parsed.length < 5) {\n throw new Error(\"Expression has only \".concat(parsed.length, \" part\").concat(parsed.length == 1 ? \"\" : \"s\", \". At least 5 parts are required.\"));\n }\n else if (parsed.length == 5) {\n parsed.unshift(\"\");\n parsed.push(\"\");\n }\n else if (parsed.length == 6) {\n var isYearWithNoSecondsPart = /\\d{4}$/.test(parsed[5]) || parsed[4] == \"?\" || parsed[2] == \"?\";\n if (isYearWithNoSecondsPart) {\n parsed.unshift(\"\");\n }\n else {\n parsed.push(\"\");\n }\n }\n else if (parsed.length > 7) {\n throw new Error(\"Expression has \".concat(parsed.length, \" parts; too many!\"));\n }\n return parsed;\n };\n CronParser.prototype.normalize = function (expressionParts) {\n var _this = this;\n expressionParts[3] = expressionParts[3].replace(\"?\", \"*\");\n expressionParts[5] = expressionParts[5].replace(\"?\", \"*\");\n expressionParts[2] = expressionParts[2].replace(\"?\", \"*\");\n if (expressionParts[0].indexOf(\"0/\") == 0) {\n expressionParts[0] = expressionParts[0].replace(\"0/\", \"*/\");\n }\n if (expressionParts[1].indexOf(\"0/\") == 0) {\n expressionParts[1] = expressionParts[1].replace(\"0/\", \"*/\");\n }\n if (expressionParts[2].indexOf(\"0/\") == 0) {\n expressionParts[2] = expressionParts[2].replace(\"0/\", \"*/\");\n }\n if (expressionParts[3].indexOf(\"1/\") == 0) {\n expressionParts[3] = expressionParts[3].replace(\"1/\", \"*/\");\n }\n if (expressionParts[4].indexOf(\"1/\") == 0) {\n expressionParts[4] = expressionParts[4].replace(\"1/\", \"*/\");\n }\n if (expressionParts[6].indexOf(\"1/\") == 0) {\n expressionParts[6] = expressionParts[6].replace(\"1/\", \"*/\");\n }\n expressionParts[5] = expressionParts[5].replace(/(^\\d)|([^#/\\s]\\d)/g, function (t) {\n var dowDigits = t.replace(/\\D/, \"\");\n var dowDigitsAdjusted = dowDigits;\n if (_this.dayOfWeekStartIndexZero) {\n if (dowDigits == \"7\") {\n dowDigitsAdjusted = \"0\";\n }\n }\n else {\n dowDigitsAdjusted = (parseInt(dowDigits) - 1).toString();\n }\n return t.replace(dowDigits, dowDigitsAdjusted);\n });\n if (expressionParts[5] == \"L\") {\n expressionParts[5] = \"6\";\n }\n if (expressionParts[3] == \"?\") {\n expressionParts[3] = \"*\";\n }\n if (expressionParts[3].indexOf(\"W\") > -1 &&\n (expressionParts[3].indexOf(\",\") > -1 || expressionParts[3].indexOf(\"-\") > -1)) {\n throw new Error(\"The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.\");\n }\n var days = {\n SUN: 0,\n MON: 1,\n TUE: 2,\n WED: 3,\n THU: 4,\n FRI: 5,\n SAT: 6,\n };\n for (var day in days) {\n expressionParts[5] = expressionParts[5].replace(new RegExp(day, \"gi\"), days[day].toString());\n }\n expressionParts[4] = expressionParts[4].replace(/(^\\d{1,2})|([^#/\\s]\\d{1,2})/g, function (t) {\n var dowDigits = t.replace(/\\D/, \"\");\n var dowDigitsAdjusted = dowDigits;\n if (_this.monthStartIndexZero) {\n dowDigitsAdjusted = (parseInt(dowDigits) + 1).toString();\n }\n return t.replace(dowDigits, dowDigitsAdjusted);\n });\n var months = {\n JAN: 1,\n FEB: 2,\n MAR: 3,\n APR: 4,\n MAY: 5,\n JUN: 6,\n JUL: 7,\n AUG: 8,\n SEP: 9,\n OCT: 10,\n NOV: 11,\n DEC: 12,\n };\n for (var month in months) {\n expressionParts[4] = expressionParts[4].replace(new RegExp(month, \"gi\"), months[month].toString());\n }\n if (expressionParts[0] == \"0\") {\n expressionParts[0] = \"\";\n }\n if (!/\\*|\\-|\\,|\\//.test(expressionParts[2]) &&\n (/\\*|\\//.test(expressionParts[1]) || /\\*|\\//.test(expressionParts[0]))) {\n expressionParts[2] += \"-\".concat(expressionParts[2]);\n }\n for (var i = 0; i < expressionParts.length; i++) {\n if (expressionParts[i].indexOf(\",\") != -1) {\n expressionParts[i] =\n expressionParts[i]\n .split(\",\")\n .filter(function (str) { return str !== \"\"; })\n .join(\",\") || \"*\";\n }\n if (expressionParts[i] == \"*/1\") {\n expressionParts[i] = \"*\";\n }\n if (expressionParts[i].indexOf(\"/\") > -1 && !/^\\*|\\-|\\,/.test(expressionParts[i])) {\n var stepRangeThrough = null;\n switch (i) {\n case 4:\n stepRangeThrough = \"12\";\n break;\n case 5:\n stepRangeThrough = \"6\";\n break;\n case 6:\n stepRangeThrough = \"9999\";\n break;\n default:\n stepRangeThrough = null;\n break;\n }\n if (stepRangeThrough !== null) {\n var parts = expressionParts[i].split(\"/\");\n expressionParts[i] = \"\".concat(parts[0], \"-\").concat(stepRangeThrough, \"/\").concat(parts[1]);\n }\n }\n }\n };\n CronParser.prototype.validate = function (parsed) {\n this.assertNoInvalidCharacters(\"DOW\", parsed[5]);\n this.assertNoInvalidCharacters(\"DOM\", parsed[3]);\n this.validateRange(parsed);\n };\n CronParser.prototype.validateRange = function (parsed) {\n rangeValidator_1.default.secondRange(parsed[0]);\n rangeValidator_1.default.minuteRange(parsed[1]);\n rangeValidator_1.default.hourRange(parsed[2]);\n rangeValidator_1.default.dayOfMonthRange(parsed[3]);\n rangeValidator_1.default.monthRange(parsed[4], this.monthStartIndexZero);\n rangeValidator_1.default.dayOfWeekRange(parsed[5], this.dayOfWeekStartIndexZero);\n };\n CronParser.prototype.assertNoInvalidCharacters = function (partDescription, expression) {\n var invalidChars = expression.match(/[A-KM-VX-Z]+/gi);\n if (invalidChars && invalidChars.length) {\n throw new Error(\"\".concat(partDescription, \" part contains invalid values: '\").concat(invalidChars.toString(), \"'\"));\n }\n };\n return CronParser;\n}());\nexports.CronParser = CronParser;\n\n\n/***/ }),\n\n/***/ 728:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ExpressionDescriptor = void 0;\nvar stringUtilities_1 = __webpack_require__(910);\nvar cronParser_1 = __webpack_require__(794);\nvar ExpressionDescriptor = (function () {\n function ExpressionDescriptor(expression, options) {\n this.expression = expression;\n this.options = options;\n this.expressionParts = new Array(5);\n if (!this.options.locale && ExpressionDescriptor.defaultLocale) {\n this.options.locale = ExpressionDescriptor.defaultLocale;\n }\n if (!ExpressionDescriptor.locales[this.options.locale]) {\n var fallBackLocale = Object.keys(ExpressionDescriptor.locales)[0];\n console.warn(\"Locale '\".concat(this.options.locale, \"' could not be found; falling back to '\").concat(fallBackLocale, \"'.\"));\n this.options.locale = fallBackLocale;\n }\n this.i18n = ExpressionDescriptor.locales[this.options.locale];\n if (options.use24HourTimeFormat === undefined) {\n options.use24HourTimeFormat = this.i18n.use24HourTimeFormatByDefault();\n }\n }\n ExpressionDescriptor.toString = function (expression, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.throwExceptionOnParseError, throwExceptionOnParseError = _c === void 0 ? true : _c, _d = _b.verbose, verbose = _d === void 0 ? false : _d, _e = _b.dayOfWeekStartIndexZero, dayOfWeekStartIndexZero = _e === void 0 ? true : _e, _f = _b.monthStartIndexZero, monthStartIndexZero = _f === void 0 ? false : _f, use24HourTimeFormat = _b.use24HourTimeFormat, _g = _b.locale, locale = _g === void 0 ? null : _g, _h = _b.tzOffset, tzOffset = _h === void 0 ? 0 : _h;\n var options = {\n throwExceptionOnParseError: throwExceptionOnParseError,\n verbose: verbose,\n dayOfWeekStartIndexZero: dayOfWeekStartIndexZero,\n monthStartIndexZero: monthStartIndexZero,\n use24HourTimeFormat: use24HourTimeFormat,\n locale: locale,\n tzOffset: tzOffset\n };\n var descripter = new ExpressionDescriptor(expression, options);\n return descripter.getFullDescription();\n };\n ExpressionDescriptor.initialize = function (localesLoader, defaultLocale) {\n if (defaultLocale === void 0) { defaultLocale = \"en\"; }\n ExpressionDescriptor.specialCharacters = [\"/\", \"-\", \",\", \"*\"];\n ExpressionDescriptor.defaultLocale = defaultLocale;\n localesLoader.load(ExpressionDescriptor.locales);\n };\n ExpressionDescriptor.prototype.getFullDescription = function () {\n var description = \"\";\n try {\n var parser = new cronParser_1.CronParser(this.expression, this.options.dayOfWeekStartIndexZero, this.options.monthStartIndexZero);\n this.expressionParts = parser.parse();\n var timeSegment = this.getTimeOfDayDescription();\n var dayOfMonthDesc = this.getDayOfMonthDescription();\n var monthDesc = this.getMonthDescription();\n var dayOfWeekDesc = this.getDayOfWeekDescription();\n var yearDesc = this.getYearDescription();\n description += timeSegment + dayOfMonthDesc + dayOfWeekDesc + monthDesc + yearDesc;\n description = this.transformVerbosity(description, !!this.options.verbose);\n description = description.charAt(0).toLocaleUpperCase() + description.substr(1);\n }\n catch (ex) {\n if (!this.options.throwExceptionOnParseError) {\n description = this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();\n }\n else {\n throw \"\".concat(ex);\n }\n }\n return description;\n };\n ExpressionDescriptor.prototype.getTimeOfDayDescription = function () {\n var secondsExpression = this.expressionParts[0];\n var minuteExpression = this.expressionParts[1];\n var hourExpression = this.expressionParts[2];\n var description = \"\";\n if (!stringUtilities_1.StringUtilities.containsAny(minuteExpression, ExpressionDescriptor.specialCharacters) &&\n !stringUtilities_1.StringUtilities.containsAny(hourExpression, ExpressionDescriptor.specialCharacters) &&\n !stringUtilities_1.StringUtilities.containsAny(secondsExpression, ExpressionDescriptor.specialCharacters)) {\n description += this.i18n.atSpace() + this.formatTime(hourExpression, minuteExpression, secondsExpression);\n }\n else if (!secondsExpression &&\n minuteExpression.indexOf(\"-\") > -1 &&\n !(minuteExpression.indexOf(\",\") > -1) &&\n !(minuteExpression.indexOf(\"/\") > -1) &&\n !stringUtilities_1.StringUtilities.containsAny(hourExpression, ExpressionDescriptor.specialCharacters)) {\n var minuteParts = minuteExpression.split(\"-\");\n description += stringUtilities_1.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(), this.formatTime(hourExpression, minuteParts[0], \"\"), this.formatTime(hourExpression, minuteParts[1], \"\"));\n }\n else if (!secondsExpression &&\n hourExpression.indexOf(\",\") > -1 &&\n hourExpression.indexOf(\"-\") == -1 &&\n hourExpression.indexOf(\"/\") == -1 &&\n !stringUtilities_1.StringUtilities.containsAny(minuteExpression, ExpressionDescriptor.specialCharacters)) {\n var hourParts = hourExpression.split(\",\");\n description += this.i18n.at();\n for (var i = 0; i < hourParts.length; i++) {\n description += \" \";\n description += this.formatTime(hourParts[i], minuteExpression, \"\");\n if (i < hourParts.length - 2) {\n description += \",\";\n }\n if (i == hourParts.length - 2) {\n description += this.i18n.spaceAnd();\n }\n }\n }\n else {\n var secondsDescription = this.getSecondsDescription();\n var minutesDescription = this.getMinutesDescription();\n var hoursDescription = this.getHoursDescription();\n description += secondsDescription;\n if (description && minutesDescription) {\n description += \", \";\n }\n description += minutesDescription;\n if (minutesDescription === hoursDescription) {\n return description;\n }\n if (description && hoursDescription) {\n description += \", \";\n }\n description += hoursDescription;\n }\n return description;\n };\n ExpressionDescriptor.prototype.getSecondsDescription = function () {\n var _this = this;\n var description = this.getSegmentDescription(this.expressionParts[0], this.i18n.everySecond(), function (s) {\n return s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Seconds(s), s);\n }, function (s) {\n return _this.i18n.secondsX0ThroughX1PastTheMinute();\n }, function (s) {\n return s == \"0\"\n ? \"\"\n : parseInt(s) < 20\n ? _this.i18n.atX0SecondsPastTheMinute(s)\n : _this.i18n.atX0SecondsPastTheMinuteGt20() || _this.i18n.atX0SecondsPastTheMinute(s);\n });\n return description;\n };\n ExpressionDescriptor.prototype.getMinutesDescription = function () {\n var _this = this;\n var secondsExpression = this.expressionParts[0];\n var hourExpression = this.expressionParts[2];\n var description = this.getSegmentDescription(this.expressionParts[1], this.i18n.everyMinute(), function (s) {\n return s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Minutes(s), s);\n }, function (s) {\n return _this.i18n.minutesX0ThroughX1PastTheHour();\n }, function (s) {\n try {\n return s == \"0\" && hourExpression.indexOf(\"/\") == -1 && secondsExpression == \"\"\n ? _this.i18n.everyHour()\n : parseInt(s) < 20\n ? _this.i18n.atX0MinutesPastTheHour(s)\n : _this.i18n.atX0MinutesPastTheHourGt20() || _this.i18n.atX0MinutesPastTheHour(s);\n }\n catch (e) {\n return _this.i18n.atX0MinutesPastTheHour(s);\n }\n });\n return description;\n };\n ExpressionDescriptor.prototype.getHoursDescription = function () {\n var _this = this;\n var expression = this.expressionParts[2];\n var description = this.getSegmentDescription(expression, this.i18n.everyHour(), function (s) {\n return _this.formatTime(s, \"0\", \"\");\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Hours(s), s);\n }, function (s) {\n return _this.i18n.betweenX0AndX1();\n }, function (s) {\n return _this.i18n.atX0();\n });\n if (description && expression.includes(\"-\") && this.expressionParts[1] != \"0\") {\n var atTheHourMatches = Array.from(description.matchAll(/:00/g));\n if (atTheHourMatches.length > 1) {\n var lastAtTheHourMatchIndex = atTheHourMatches[atTheHourMatches.length - 1].index;\n description =\n description.substring(0, lastAtTheHourMatchIndex) +\n \":59\" +\n description.substring(lastAtTheHourMatchIndex + 3);\n }\n }\n return description;\n };\n ExpressionDescriptor.prototype.getDayOfWeekDescription = function () {\n var _this = this;\n var daysOfWeekNames = this.i18n.daysOfTheWeek();\n var description = null;\n if (this.expressionParts[5] == \"*\") {\n description = \"\";\n }\n else {\n description = this.getSegmentDescription(this.expressionParts[5], this.i18n.commaEveryDay(), function (s, form) {\n var exp = s;\n if (s.indexOf(\"#\") > -1) {\n exp = s.substring(0, s.indexOf(\"#\"));\n }\n else if (s.indexOf(\"L\") > -1) {\n exp = exp.replace(\"L\", \"\");\n }\n var parsedExp = parseInt(exp);\n if (_this.options.tzOffset) {\n var hourExpression = _this.expressionParts[2];\n var hour = parseInt(hourExpression) + (_this.options.tzOffset ? _this.options.tzOffset : 0);\n if (hour >= 24) {\n parsedExp++;\n }\n else if (hour < 0) {\n parsedExp--;\n }\n if (parsedExp > 6) {\n parsedExp = 0;\n }\n else if (parsedExp < 0) {\n parsedExp = 6;\n }\n }\n var description = _this.i18n.daysOfTheWeekInCase\n ? _this.i18n.daysOfTheWeekInCase(form)[parsedExp]\n : daysOfWeekNames[parsedExp];\n if (s.indexOf(\"#\") > -1) {\n var dayOfWeekOfMonthDescription = null;\n var dayOfWeekOfMonthNumber = s.substring(s.indexOf(\"#\") + 1);\n var dayOfWeekNumber = s.substring(0, s.indexOf(\"#\"));\n switch (dayOfWeekOfMonthNumber) {\n case \"1\":\n dayOfWeekOfMonthDescription = _this.i18n.first(dayOfWeekNumber);\n break;\n case \"2\":\n dayOfWeekOfMonthDescription = _this.i18n.second(dayOfWeekNumber);\n break;\n case \"3\":\n dayOfWeekOfMonthDescription = _this.i18n.third(dayOfWeekNumber);\n break;\n case \"4\":\n dayOfWeekOfMonthDescription = _this.i18n.fourth(dayOfWeekNumber);\n break;\n case \"5\":\n dayOfWeekOfMonthDescription = _this.i18n.fifth(dayOfWeekNumber);\n break;\n }\n description = dayOfWeekOfMonthDescription + \" \" + description;\n }\n return description;\n }, function (s) {\n if (parseInt(s) == 1) {\n return \"\";\n }\n else {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0DaysOfTheWeek(s), s);\n }\n }, function (s) {\n var beginFrom = s.substring(0, s.indexOf(\"-\"));\n var domSpecified = _this.expressionParts[3] != \"*\";\n return domSpecified ? _this.i18n.commaAndX0ThroughX1(beginFrom) : _this.i18n.commaX0ThroughX1(beginFrom);\n }, function (s) {\n var format = null;\n if (s.indexOf(\"#\") > -1) {\n var dayOfWeekOfMonthNumber = s.substring(s.indexOf(\"#\") + 1);\n format = _this.i18n.commaOnThe(dayOfWeekOfMonthNumber).trim() + _this.i18n.spaceX0OfTheMonth();\n }\n else if (s.indexOf(\"L\") > -1) {\n format = _this.i18n.commaOnTheLastX0OfTheMonth(s.replace(\"L\", \"\"));\n }\n else {\n var domSpecified = _this.expressionParts[3] != \"*\";\n format = domSpecified ? _this.i18n.commaAndOnX0() : _this.i18n.commaOnlyOnX0(s);\n }\n return format;\n });\n }\n return description;\n };\n ExpressionDescriptor.prototype.getMonthDescription = function () {\n var _this = this;\n var monthNames = this.i18n.monthsOfTheYear();\n var description = this.getSegmentDescription(this.expressionParts[4], \"\", function (s, form) {\n return form && _this.i18n.monthsOfTheYearInCase\n ? _this.i18n.monthsOfTheYearInCase(form)[parseInt(s) - 1]\n : monthNames[parseInt(s) - 1];\n }, function (s) {\n if (parseInt(s) == 1) {\n return \"\";\n }\n else {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0Months(s), s);\n }\n }, function (s) {\n return _this.i18n.commaMonthX0ThroughMonthX1() || _this.i18n.commaX0ThroughX1();\n }, function (s) {\n return _this.i18n.commaOnlyInMonthX0 ? _this.i18n.commaOnlyInMonthX0() : _this.i18n.commaOnlyInX0();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getDayOfMonthDescription = function () {\n var _this = this;\n var description = null;\n var expression = this.expressionParts[3];\n switch (expression) {\n case \"L\":\n description = this.i18n.commaOnTheLastDayOfTheMonth();\n break;\n case \"WL\":\n case \"LW\":\n description = this.i18n.commaOnTheLastWeekdayOfTheMonth();\n break;\n default:\n var weekDayNumberMatches = expression.match(/(\\d{1,2}W)|(W\\d{1,2})/);\n if (weekDayNumberMatches) {\n var dayNumber = parseInt(weekDayNumberMatches[0].replace(\"W\", \"\"));\n var dayString = dayNumber == 1\n ? this.i18n.firstWeekday()\n : stringUtilities_1.StringUtilities.format(this.i18n.weekdayNearestDayX0(), dayNumber.toString());\n description = stringUtilities_1.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(), dayString);\n break;\n }\n else {\n var lastDayOffSetMatches = expression.match(/L-(\\d{1,2})/);\n if (lastDayOffSetMatches) {\n var offSetDays = lastDayOffSetMatches[1];\n description = stringUtilities_1.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(offSetDays), offSetDays);\n break;\n }\n else if (expression == \"*\" && this.expressionParts[5] != \"*\") {\n return \"\";\n }\n else {\n description = this.getSegmentDescription(expression, this.i18n.commaEveryDay(), function (s) {\n return s == \"L\"\n ? _this.i18n.lastDay()\n : _this.i18n.dayX0\n ? stringUtilities_1.StringUtilities.format(_this.i18n.dayX0(), s)\n : s;\n }, function (s) {\n return s == \"1\" ? _this.i18n.commaEveryDay() : _this.i18n.commaEveryX0Days(s);\n }, function (s) {\n return _this.i18n.commaBetweenDayX0AndX1OfTheMonth(s);\n }, function (s) {\n return _this.i18n.commaOnDayX0OfTheMonth(s);\n });\n }\n break;\n }\n }\n return description;\n };\n ExpressionDescriptor.prototype.getYearDescription = function () {\n var _this = this;\n var description = this.getSegmentDescription(this.expressionParts[6], \"\", function (s) {\n return /^\\d+$/.test(s) ? new Date(parseInt(s), 1).getFullYear().toString() : s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0Years(s), s);\n }, function (s) {\n return _this.i18n.commaYearX0ThroughYearX1() || _this.i18n.commaX0ThroughX1();\n }, function (s) {\n return _this.i18n.commaOnlyInYearX0 ? _this.i18n.commaOnlyInYearX0() : _this.i18n.commaOnlyInX0();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getSegmentDescription = function (expression, allDescription, getSingleItemDescription, getIncrementDescriptionFormat, getRangeDescriptionFormat, getDescriptionFormat) {\n var description = null;\n var doesExpressionContainIncrement = expression.indexOf(\"/\") > -1;\n var doesExpressionContainRange = expression.indexOf(\"-\") > -1;\n var doesExpressionContainMultipleValues = expression.indexOf(\",\") > -1;\n if (!expression) {\n description = \"\";\n }\n else if (expression === \"*\") {\n description = allDescription;\n }\n else if (!doesExpressionContainIncrement && !doesExpressionContainRange && !doesExpressionContainMultipleValues) {\n description = stringUtilities_1.StringUtilities.format(getDescriptionFormat(expression), getSingleItemDescription(expression));\n }\n else if (doesExpressionContainMultipleValues) {\n var segments = expression.split(\",\");\n var descriptionContent = \"\";\n for (var i = 0; i < segments.length; i++) {\n if (i > 0 && segments.length > 2) {\n descriptionContent += \",\";\n if (i < segments.length - 1) {\n descriptionContent += \" \";\n }\n }\n if (i > 0 && segments.length > 1 && (i == segments.length - 1 || segments.length == 2)) {\n descriptionContent += \"\".concat(this.i18n.spaceAnd(), \" \");\n }\n if (segments[i].indexOf(\"/\") > -1 || segments[i].indexOf(\"-\") > -1) {\n var isSegmentRangeWithoutIncrement = segments[i].indexOf(\"-\") > -1 && segments[i].indexOf(\"/\") == -1;\n var currentDescriptionContent = this.getSegmentDescription(segments[i], allDescription, getSingleItemDescription, getIncrementDescriptionFormat, isSegmentRangeWithoutIncrement ? this.i18n.commaX0ThroughX1 : getRangeDescriptionFormat, getDescriptionFormat);\n if (isSegmentRangeWithoutIncrement) {\n currentDescriptionContent = currentDescriptionContent.replace(\", \", \"\");\n }\n descriptionContent += currentDescriptionContent;\n }\n else if (!doesExpressionContainIncrement) {\n descriptionContent += getSingleItemDescription(segments[i]);\n }\n else {\n descriptionContent += this.getSegmentDescription(segments[i], allDescription, getSingleItemDescription, getIncrementDescriptionFormat, getRangeDescriptionFormat, getDescriptionFormat);\n }\n }\n if (!doesExpressionContainIncrement) {\n description = stringUtilities_1.StringUtilities.format(getDescriptionFormat(expression), descriptionContent);\n }\n else {\n description = descriptionContent;\n }\n }\n else if (doesExpressionContainIncrement) {\n var segments = expression.split(\"/\");\n description = stringUtilities_1.StringUtilities.format(getIncrementDescriptionFormat(segments[1]), segments[1]);\n if (segments[0].indexOf(\"-\") > -1) {\n var rangeSegmentDescription = this.generateRangeSegmentDescription(segments[0], getRangeDescriptionFormat, getSingleItemDescription);\n if (rangeSegmentDescription.indexOf(\", \") != 0) {\n description += \", \";\n }\n description += rangeSegmentDescription;\n }\n else if (segments[0].indexOf(\"*\") == -1) {\n var rangeItemDescription = stringUtilities_1.StringUtilities.format(getDescriptionFormat(segments[0]), getSingleItemDescription(segments[0]));\n rangeItemDescription = rangeItemDescription.replace(\", \", \"\");\n description += stringUtilities_1.StringUtilities.format(this.i18n.commaStartingX0(), rangeItemDescription);\n }\n }\n else if (doesExpressionContainRange) {\n description = this.generateRangeSegmentDescription(expression, getRangeDescriptionFormat, getSingleItemDescription);\n }\n return description;\n };\n ExpressionDescriptor.prototype.generateRangeSegmentDescription = function (rangeExpression, getRangeDescriptionFormat, getSingleItemDescription) {\n var description = \"\";\n var rangeSegments = rangeExpression.split(\"-\");\n var rangeSegment1Description = getSingleItemDescription(rangeSegments[0], 1);\n var rangeSegment2Description = getSingleItemDescription(rangeSegments[1], 2);\n var rangeDescriptionFormat = getRangeDescriptionFormat(rangeExpression);\n description += stringUtilities_1.StringUtilities.format(rangeDescriptionFormat, rangeSegment1Description, rangeSegment2Description);\n return description;\n };\n ExpressionDescriptor.prototype.formatTime = function (hourExpression, minuteExpression, secondExpression) {\n var hourOffset = 0;\n var minuteOffset = 0;\n if (this.options.tzOffset) {\n hourOffset = this.options.tzOffset > 0 ? Math.floor(this.options.tzOffset) : Math.ceil(this.options.tzOffset);\n minuteOffset = (parseFloat((this.options.tzOffset % 1).toFixed(2)));\n if (minuteOffset != 0) {\n minuteOffset *= 60;\n }\n }\n var hour = parseInt(hourExpression) + (hourOffset);\n var minute = parseInt(minuteExpression) + (minuteOffset);\n if (minute >= 60) {\n minute -= 60;\n hour += 1;\n }\n else if (minute < 0) {\n minute += 60;\n hour -= 1;\n }\n if (hour >= 24) {\n hour = hour - 24;\n }\n else if (hour < 0) {\n hour = 24 + hour;\n }\n var period = \"\";\n var setPeriodBeforeTime = false;\n if (!this.options.use24HourTimeFormat) {\n setPeriodBeforeTime = !!(this.i18n.setPeriodBeforeTime && this.i18n.setPeriodBeforeTime());\n period = setPeriodBeforeTime ? \"\".concat(this.getPeriod(hour), \" \") : \" \".concat(this.getPeriod(hour));\n if (hour > 12) {\n hour -= 12;\n }\n if (hour === 0) {\n hour = 12;\n }\n }\n var second = \"\";\n if (secondExpression) {\n second = \":\".concat((\"00\" + secondExpression).substring(secondExpression.length));\n }\n return \"\".concat(setPeriodBeforeTime ? period : \"\").concat((\"00\" + hour.toString()).substring(hour.toString().length), \":\").concat((\"00\" + minute.toString()).substring(minute.toString().length)).concat(second).concat(!setPeriodBeforeTime ? period : \"\");\n };\n ExpressionDescriptor.prototype.transformVerbosity = function (description, useVerboseFormat) {\n if (!useVerboseFormat) {\n description = description.replace(new RegExp(\", \".concat(this.i18n.everyMinute()), \"g\"), \"\");\n description = description.replace(new RegExp(\", \".concat(this.i18n.everyHour()), \"g\"), \"\");\n description = description.replace(new RegExp(this.i18n.commaEveryDay(), \"g\"), \"\");\n description = description.replace(/\\, ?$/, \"\");\n }\n return description;\n };\n ExpressionDescriptor.prototype.getPeriod = function (hour) {\n return hour >= 12 ? (this.i18n.pm && this.i18n.pm()) || \"PM\" : (this.i18n.am && this.i18n.am()) || \"AM\";\n };\n ExpressionDescriptor.locales = {};\n return ExpressionDescriptor;\n}());\nexports.ExpressionDescriptor = ExpressionDescriptor;\n\n\n/***/ }),\n\n/***/ 336:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.enLocaleLoader = void 0;\nvar en_1 = __webpack_require__(751);\nvar enLocaleLoader = (function () {\n function enLocaleLoader() {\n }\n enLocaleLoader.prototype.load = function (availableLocales) {\n availableLocales[\"en\"] = new en_1.en();\n };\n return enLocaleLoader;\n}());\nexports.enLocaleLoader = enLocaleLoader;\n\n\n/***/ }),\n\n/***/ 751:\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.en = void 0;\nvar en = (function () {\n function en() {\n }\n en.prototype.atX0SecondsPastTheMinuteGt20 = function () {\n return null;\n };\n en.prototype.atX0MinutesPastTheHourGt20 = function () {\n return null;\n };\n en.prototype.commaMonthX0ThroughMonthX1 = function () {\n return null;\n };\n en.prototype.commaYearX0ThroughYearX1 = function () {\n return null;\n };\n en.prototype.use24HourTimeFormatByDefault = function () {\n return false;\n };\n en.prototype.anErrorOccuredWhenGeneratingTheExpressionD = function () {\n return \"An error occured when generating the expression description. Check the cron expression syntax.\";\n };\n en.prototype.everyMinute = function () {\n return \"every minute\";\n };\n en.prototype.everyHour = function () {\n return \"every hour\";\n };\n en.prototype.atSpace = function () {\n return \"At \";\n };\n en.prototype.everyMinuteBetweenX0AndX1 = function () {\n return \"Every minute between %s and %s\";\n };\n en.prototype.at = function () {\n return \"At\";\n };\n en.prototype.spaceAnd = function () {\n return \" and\";\n };\n en.prototype.everySecond = function () {\n return \"every second\";\n };\n en.prototype.everyX0Seconds = function () {\n return \"every %s seconds\";\n };\n en.prototype.secondsX0ThroughX1PastTheMinute = function () {\n return \"seconds %s through %s past the minute\";\n };\n en.prototype.atX0SecondsPastTheMinute = function () {\n return \"at %s seconds past the minute\";\n };\n en.prototype.everyX0Minutes = function () {\n return \"every %s minutes\";\n };\n en.prototype.minutesX0ThroughX1PastTheHour = function () {\n return \"minutes %s through %s past the hour\";\n };\n en.prototype.atX0MinutesPastTheHour = function () {\n return \"at %s minutes past the hour\";\n };\n en.prototype.everyX0Hours = function () {\n return \"every %s hours\";\n };\n en.prototype.betweenX0AndX1 = function () {\n return \"between %s and %s\";\n };\n en.prototype.atX0 = function () {\n return \"at %s\";\n };\n en.prototype.commaEveryDay = function () {\n return \", every day\";\n };\n en.prototype.commaEveryX0DaysOfTheWeek = function () {\n return \", every %s days of the week\";\n };\n en.prototype.commaX0ThroughX1 = function () {\n return \", %s through %s\";\n };\n en.prototype.commaAndX0ThroughX1 = function () {\n return \", %s through %s\";\n };\n en.prototype.first = function () {\n return \"first\";\n };\n en.prototype.second = function () {\n return \"second\";\n };\n en.prototype.third = function () {\n return \"third\";\n };\n en.prototype.fourth = function () {\n return \"fourth\";\n };\n en.prototype.fifth = function () {\n return \"fifth\";\n };\n en.prototype.commaOnThe = function () {\n return \", on the \";\n };\n en.prototype.spaceX0OfTheMonth = function () {\n return \" %s of the month\";\n };\n en.prototype.lastDay = function () {\n return \"the last day\";\n };\n en.prototype.commaOnTheLastX0OfTheMonth = function () {\n return \", on the last %s of the month\";\n };\n en.prototype.commaOnlyOnX0 = function () {\n return \", only on %s\";\n };\n en.prototype.commaAndOnX0 = function () {\n return \", and on %s\";\n };\n en.prototype.commaEveryX0Months = function () {\n return \", every %s months\";\n };\n en.prototype.commaOnlyInX0 = function () {\n return \", only in %s\";\n };\n en.prototype.commaOnTheLastDayOfTheMonth = function () {\n return \", on the last day of the month\";\n };\n en.prototype.commaOnTheLastWeekdayOfTheMonth = function () {\n return \", on the last weekday of the month\";\n };\n en.prototype.commaDaysBeforeTheLastDayOfTheMonth = function () {\n return \", %s days before the last day of the month\";\n };\n en.prototype.firstWeekday = function () {\n return \"first weekday\";\n };\n en.prototype.weekdayNearestDayX0 = function () {\n return \"weekday nearest day %s\";\n };\n en.prototype.commaOnTheX0OfTheMonth = function () {\n return \", on the %s of the month\";\n };\n en.prototype.commaEveryX0Days = function () {\n return \", every %s days\";\n };\n en.prototype.commaBetweenDayX0AndX1OfTheMonth = function () {\n return \", between day %s and %s of the month\";\n };\n en.prototype.commaOnDayX0OfTheMonth = function () {\n return \", on day %s of the month\";\n };\n en.prototype.commaEveryHour = function () {\n return \", every hour\";\n };\n en.prototype.commaEveryX0Years = function () {\n return \", every %s years\";\n };\n en.prototype.commaStartingX0 = function () {\n return \", starting %s\";\n };\n en.prototype.daysOfTheWeek = function () {\n return [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n };\n en.prototype.monthsOfTheYear = function () {\n return [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n };\n return en;\n}());\nexports.en = en;\n\n\n/***/ }),\n\n/***/ 586:\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction assert(value, message) {\n if (!value) {\n throw new Error(message);\n }\n}\nvar RangeValidator = (function () {\n function RangeValidator() {\n }\n RangeValidator.secondRange = function (parse) {\n var parsed = parse.split(',');\n for (var i = 0; i < parsed.length; i++) {\n if (!isNaN(parseInt(parsed[i], 10))) {\n var second = parseInt(parsed[i], 10);\n assert(second >= 0 && second <= 59, 'seconds part must be >= 0 and <= 59');\n }\n }\n };\n RangeValidator.minuteRange = function (parse) {\n var parsed = parse.split(',');\n for (var i = 0; i < parsed.length; i++) {\n if (!isNaN(parseInt(parsed[i], 10))) {\n var minute = parseInt(parsed[i], 10);\n assert(minute >= 0 && minute <= 59, 'minutes part must be >= 0 and <= 59');\n }\n }\n };\n RangeValidator.hourRange = function (parse) {\n var parsed = parse.split(',');\n for (var i = 0; i < parsed.length; i++) {\n if (!isNaN(parseInt(parsed[i], 10))) {\n var hour = parseInt(parsed[i], 10);\n assert(hour >= 0 && hour <= 23, 'hours part must be >= 0 and <= 23');\n }\n }\n };\n RangeValidator.dayOfMonthRange = function (parse) {\n var parsed = parse.split(',');\n for (var i = 0; i < parsed.length; i++) {\n if (!isNaN(parseInt(parsed[i], 10))) {\n var dayOfMonth = parseInt(parsed[i], 10);\n assert(dayOfMonth >= 1 && dayOfMonth <= 31, 'DOM part must be >= 1 and <= 31');\n }\n }\n };\n RangeValidator.monthRange = function (parse, monthStartIndexZero) {\n var parsed = parse.split(',');\n for (var i = 0; i < parsed.length; i++) {\n if (!isNaN(parseInt(parsed[i], 10))) {\n var month = parseInt(parsed[i], 10);\n assert(month >= 1 && month <= 12, monthStartIndexZero ? 'month part must be >= 0 and <= 11' : 'month part must be >= 1 and <= 12');\n }\n }\n };\n RangeValidator.dayOfWeekRange = function (parse, dayOfWeekStartIndexZero) {\n var parsed = parse.split(',');\n for (var i = 0; i < parsed.length; i++) {\n if (!isNaN(parseInt(parsed[i], 10))) {\n var dayOfWeek = parseInt(parsed[i], 10);\n assert(dayOfWeek >= 0 && dayOfWeek <= 6, dayOfWeekStartIndexZero ? 'DOW part must be >= 0 and <= 6' : 'DOW part must be >= 1 and <= 7');\n }\n }\n };\n return RangeValidator;\n}());\nexports[\"default\"] = RangeValidator;\n\n\n/***/ }),\n\n/***/ 910:\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StringUtilities = void 0;\nvar StringUtilities = (function () {\n function StringUtilities() {\n }\n StringUtilities.format = function (template) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n return template.replace(/%s/g, function (substring) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return values.shift();\n });\n };\n StringUtilities.containsAny = function (text, searchStrings) {\n return searchStrings.some(function (c) {\n return text.indexOf(c) > -1;\n });\n };\n return StringUtilities;\n}());\nexports.StringUtilities = StringUtilities;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.toString = void 0;\nvar expressionDescriptor_1 = __webpack_require__(728);\nvar enLocaleLoader_1 = __webpack_require__(336);\nexpressionDescriptor_1.ExpressionDescriptor.initialize(new enLocaleLoader_1.enLocaleLoader());\nexports[\"default\"] = expressionDescriptor_1.ExpressionDescriptor;\nvar toString = expressionDescriptor_1.ExpressionDescriptor.toString;\nexports.toString = toString;\n\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".validation-message{padding:5px;position:absolute;bottom:-35px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#__layout,#__nuxt,#app,.vm-console,.vm-console>DIV,.vm-console>DIV>DIV,BODY,HTML,MAIN{height:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".d2h-wrapper{text-align:left}.d2h-file-header{background-color:#f7f7f7;border-bottom:1px solid #d8d8d8;display:flex;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;height:35px;padding:5px 10px}.d2h-file-header.d2h-sticky-header{position:sticky;top:0;z-index:1}.d2h-file-stats{display:flex;font-size:14px;margin-left:auto}.d2h-lines-added{border:1px solid #b4e2b4;border-radius:5px 0 0 5px;color:#399839;padding:2px;text-align:right;vertical-align:middle}.d2h-lines-deleted{border:1px solid #e9aeae;border-radius:0 5px 5px 0;color:#c33;margin-left:1px;padding:2px;text-align:left;vertical-align:middle}.d2h-file-name-wrapper{align-items:center;display:flex;font-size:15px;width:100%}.d2h-file-name{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.d2h-file-wrapper{margin-bottom:1em}.d2h-file-collapse,.d2h-file-wrapper{border:1px solid #ddd;border-radius:3px}.d2h-file-collapse{-webkit-box-pack:end;-ms-flex-pack:end;align-items:center;cursor:pointer;display:none;font-size:12px;justify-content:flex-end;padding:4px 8px}.d2h-file-collapse.d2h-selected{background-color:#c8e1ff}.d2h-file-collapse-input{margin:0 4px 0 0}.d2h-diff-table{border-collapse:collapse;font-family:Menlo,Consolas,monospace;font-size:13px;width:100%}.d2h-files-diff{display:flex;width:100%}.d2h-file-diff{overflow-y:hidden}.d2h-file-diff.d2h-d-none,.d2h-files-diff.d2h-d-none{display:none}.d2h-file-side-diff{display:inline-block;overflow-x:scroll;overflow-y:hidden;width:50%}.d2h-code-line{padding:0 8em}.d2h-code-line,.d2h-code-side-line{display:inline-block;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;width:100%}.d2h-code-side-line{padding:0 4.5em}.d2h-code-line-ctn{word-wrap:normal;background:none;display:inline-block;padding:0;-webkit-user-select:text;-moz-user-select:text;user-select:text;vertical-align:middle;white-space:pre;width:100%}.d2h-code-line del,.d2h-code-side-line del{background-color:#ffb6ba}.d2h-code-line del,.d2h-code-line ins,.d2h-code-side-line del,.d2h-code-side-line ins{border-radius:.2em;display:inline-block;margin-top:-1px;text-decoration:none;vertical-align:middle}.d2h-code-line ins,.d2h-code-side-line ins{background-color:#97f295;text-align:left}.d2h-code-line-prefix{word-wrap:normal;background:none;display:inline;padding:0;white-space:pre}.line-num1{float:left}.line-num1,.line-num2{box-sizing:border-box;overflow:hidden;padding:0 .5em;text-overflow:ellipsis;width:3.5em}.line-num2{float:right}.d2h-code-linenumber{background-color:#fff;border:solid #eee;border-width:0 1px;box-sizing:border-box;color:rgba(0,0,0,.3);cursor:pointer;display:inline-block;position:absolute;text-align:right;width:7.5em}.d2h-code-linenumber:after{content:\\\"\\\\200b\\\"}.d2h-code-side-linenumber{background-color:#fff;border:solid #eee;border-width:0 1px;box-sizing:border-box;color:rgba(0,0,0,.3);cursor:pointer;display:inline-block;overflow:hidden;padding:0 .5em;position:absolute;text-align:right;text-overflow:ellipsis;width:4em}.d2h-code-side-linenumber:after{content:\\\"\\\\200b\\\"}.d2h-code-side-emptyplaceholder,.d2h-emptyplaceholder{background-color:#f1f1f1;border-color:#e1e1e1}.d2h-code-line-prefix,.d2h-code-linenumber,.d2h-code-side-linenumber,.d2h-emptyplaceholder{-webkit-user-select:none;-moz-user-select:none;user-select:none}.d2h-code-linenumber,.d2h-code-side-linenumber{direction:rtl}.d2h-del{background-color:#fee8e9;border-color:#e9aeae}.d2h-ins{background-color:#dfd;border-color:#b4e2b4}.d2h-info{background-color:#f8fafd;border-color:#d5e4f2;color:rgba(0,0,0,.3)}.d2h-file-diff .d2h-del.d2h-change{background-color:#fdf2d0}.d2h-file-diff .d2h-ins.d2h-change{background-color:#ded}.d2h-file-list-wrapper{margin-bottom:10px}.d2h-file-list-wrapper a{color:#3572b0;text-decoration:none}.d2h-file-list-wrapper a:visited{color:#3572b0}.d2h-file-list-header{text-align:left}.d2h-file-list-title{font-weight:700}.d2h-file-list-line{display:flex;text-align:left}.d2h-file-list{display:block;list-style:none;margin:0;padding:0}.d2h-file-list>li{border-bottom:1px solid #ddd;margin:0;padding:5px 10px}.d2h-file-list>li:last-child{border-bottom:none}.d2h-file-switch{cursor:pointer;display:none;font-size:10px}.d2h-icon{fill:currentColor;margin-right:10px;vertical-align:middle}.d2h-deleted{color:#c33}.d2h-added{color:#399839}.d2h-changed{color:#d0b44c}.d2h-moved{color:#3572b0}.d2h-tag{background-color:#fff;display:flex;font-size:10px;margin-left:5px;padding:0 2px}.d2h-deleted-tag{border:1px solid #c33}.d2h-added-tag{border:1px solid #399839}.d2h-changed-tag{border:1px solid #d0b44c}.d2h-moved-tag{border:1px solid #3572b0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".dropdown-button-group .no-left-border-radius{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-button-group .no-right-border-radius{border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-button-group .btn{line-height:normal;border:0}.dropdown-button-group .btn-group-xs>.btn,.dropdown-button-group .btn-xs,.dropdown-button-group .btn-xs .btn-label{padding:2px 3px;font-size:13px}.dropdown-button-group .v-popper .text-right{margin-top:5px}.dropdown-button-group .v-popper .trigger{height:100%}.dropdown-button-group .v-popper .trigger .icon-container{height:100%;padding:10px 10px 10px 10px}.dropdown-button-group .v-popper .trigger .icon-container i{transform:scale(1)}.dropdown-button-group .v-popper .trigger .icon-container.btn-xs{padding:2px 4px 4px 4px}.dropdown-button-group .v-popper .trigger .icon-container.btn-sm{padding:10px 10px 10px 10px}.dropdown-button-group .v-popper .trigger .icon-container.btn-lg{padding:18px 10px 10px 10px}.dropdown-button-group .v-popper .trigger .icon-container:focus{outline-style:none;box-shadow:none;border-color:transparent}.dropdown-button-group .dropdown-button{background:var(--tooltip-bg);color:var(--link-text);padding:0;display:inline-flex}.dropdown-button-group .dropdown-button .wrapper-content button{border-right:0}.dropdown-button-group .dropdown-button .icon-chevron-down,.dropdown-button-group .dropdown-button>*{color:var(--primary);background-color:transparent}.dropdown-button-group .dropdown-button.bg-primary:hover{background:var(--accent-btn-hover)}.dropdown-button-group .dropdown-button.one-action{position:relative}.dropdown-button-group .dropdown-button.one-action>.btn{padding:15px 35px 15px 15px}.dropdown-button-group .dropdown-button.one-action .v-popper .trigger{position:absolute;top:0;right:0;left:0;bottom:0}.dropdown-button-group .dropdown-button.one-action .v-popper .trigger BUTTON{position:absolute;right:0}.dropdown-button-group .v-popper__popper{border:none;margin-top:0}.dropdown-button-group .v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{display:none}.dropdown-button-group .v-popper__popper .v-popper__inner{color:var(--dropdown-text);background-color:var(--dropdown-bg);border:1px solid var(--dropdown-border);padding:0;text-align:left}.dropdown-button-group .v-popper__popper .v-popper__inner LI{padding:10px}.dropdown-button-group .v-popper__popper .v-popper__inner LI.divider{padding-top:0;padding-bottom:0}.dropdown-button-group .v-popper__popper .v-popper__inner LI.divider>.divider-inner{padding:0;border-bottom:1px solid var(--dropdown-divider);width:125%;margin:0 auto}.dropdown-button-group .v-popper__popper .v-popper__inner LI:not(.divider):hover{background-color:var(--dropdown-hover-bg);color:var(--dropdown-hover-text);cursor:pointer}.dropdown-button-group .user-info{border-bottom:1px solid var(--border);display:block}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".menu[data-v-3af780f6],.root[data-v-3af780f6]{position:absolute}.menu[data-v-3af780f6]{visibility:hidden;top:0;left:0;z-index:41;min-width:145px;color:var(--dropdown-text);background-color:var(--dropdown-bg);border:1px solid var(--dropdown-border);border-radius:5px;box-shadow:0 5px 20px var(--shadow)}.menu LI[data-v-3af780f6]{align-items:center;display:flex;padding:8px 10px;margin:0}.menu LI[data-v-3af780f6]:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:-2px}.menu LI[disabled][data-v-3af780f6]{cursor:not-allowed!important;color:var(--disabled-text)}.menu LI.divider[data-v-3af780f6]{padding:0;border-bottom:1px solid var(--dropdown-divider)}.menu LI[data-v-3af780f6]:not(.divider):hover{background-color:var(--dropdown-hover-bg);color:var(--dropdown-hover-text);cursor:pointer}.menu LI .icon[data-v-3af780f6]{display:unset;width:14px;text-align:center;margin-right:8px}.menu LI.no-actions[data-v-3af780f6],.menu LI.no-actions[data-v-3af780f6]:hover{color:var(--disabled-text)}.menu LI.no-actions[data-v-3af780f6]:hover{background-color:initial;cursor:default}.background[data-v-3af780f6]{position:fixed;top:0;left:0;right:0;bottom:0;opacity:0;z-index:40}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".modal-overlay{position:absolute;top:0;left:0;width:100vw;height:100vh;background-color:var(--overlay-bg);display:flex;justify-content:center;align-items:center;z-index:20}.modal-overlay .modal-container{background-color:var(--modal-bg);border-radius:var(--border-radius);max-height:95vh;overflow:auto;border:2px solid var(--modal-border)}.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .2s}.modal-fade-enter,.modal-fade-leave-to{opacity:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".manual-refresh i[data-v-799da077]{margin:0 0 0 8px!important;font-size:1rem!important}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".banner-graphic{position:relative}.banner-graphic .graphic{display:flex;flex-direction:column;height:240px;overflow:hidden}.banner-graphic .graphic>img.banner{flex:1;-o-object-fit:cover;object-fit:cover}.banner-graphic .title{display:flex;justify-content:center;align-items:center;position:absolute;text-align:center;top:0;height:100%;width:100%;margin-top:-20px}.banner-graphic.small .graphic{height:200px}.banner-graphic.small .graphic img.banner{margin-top:-20px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".button-dropdown.btn-sm[data-v-2ab9ff7a] >.vs__dropdown-toggle .vs__actions:after{font-size:1.6rem}.button-dropdown.btn-lg[data-v-2ab9ff7a] >.vs__dropdown-toggle .vs__actions:after{font-size:2.6rem}.button-dropdown[data-v-2ab9ff7a]{background:var(--accent-btn);border:solid 1px var(--link);color:var(--link);padding:0}.button-dropdown.vs--open[data-v-2ab9ff7a] {outline:none;box-shadow:none}.button-dropdown[data-v-2ab9ff7a]:hover .vs__dropdown-toggle .vs__actions,.button-dropdown[data-v-2ab9ff7a]:hover .vs__selected-options{background:var(--accent-btn-hover)}.button-dropdown[data-v-2ab9ff7a]:hover .vs__selected-options .vs__selected button{background-color:transparent;color:var(--accent-btn-hover-text)}.button-dropdown[data-v-2ab9ff7a]:hover .vs__dropdown-toggle .vs__actions:after{color:var(--accent-btn-hover-text)}.button-dropdown[data-v-2ab9ff7a] >.vs__dropdown-toggle{width:100%;display:grid;grid-template-columns:75% 25%;border:none;background:transparent}.button-dropdown[data-v-2ab9ff7a] >.vs__dropdown-toggle .vs__actions:after{color:var(--link);line-height:1}.button-dropdown[data-v-2ab9ff7a] .vs__selected-options .vs__selected{margin:unset;border:none}.button-dropdown[data-v-2ab9ff7a] .vs__selected-options .vs__selected button{border:none;background:transparent;color:var(--link)}.button-dropdown[data-v-2ab9ff7a] .vs__selected-options .vs__search{position:absolute;opacity:0;padding:0}.button-dropdown[data-v-2ab9ff7a] .vs__dropdown-menu{min-width:unset;width:-moz-fit-content;width:fit-content}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".borderless[data-v-750b8386]{background-color:transparent;border:none}.borderless[data-v-750b8386]:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:-2px}.borderless[data-v-750b8386]:focus,.borderless[data-v-750b8386]:hover{background-color:var(--accent-btn);box-shadow:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".code-mirror.as-text-area .codemirror-container{min-height:40px;position:relative;display:block;box-sizing:border-box;width:100%;padding:10px;background-color:var(--input-bg);border-radius:var(--border-radius);border:solid var(--border-width) var(--input-border);color:var(--input-text)}.code-mirror.as-text-area .codemirror-container:hover{border-color:var(--input-hover-border)}.code-mirror.as-text-area .codemirror-container.focus,.code-mirror.as-text-area .codemirror-container:focus{outline:none;border-color:var(--outline)}.code-mirror.as-text-area .codemirror-container .CodeMirror-wrap pre{word-break:break-word}.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-even:before,.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-odd:before,.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line:not(:last-child)>span:after{color:var(--muted);position:absolute;line-height:20px;pointer-events:none}.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line:not(:last-child)>span:after{content:\\\"↵\\\";margin-left:2px}.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-even:before,.code-mirror.as-text-area .codemirror-container .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-odd:before{font-weight:700;content:\\\"·\\\"}.code-mirror.as-text-area .codemirror-container .CodeMirror-lines{color:var(--input-text);padding:0}.code-mirror.as-text-area .codemirror-container .CodeMirror-lines .CodeMirror-line>span>span.cm-overlay{font-family:monospace}.code-mirror.as-text-area .codemirror-container .CodeMirror-lines .CodeMirror-line>span{font-family:Lato,arial,helvetica,sans-serif}.code-mirror.as-text-area .codemirror-container .CodeMirror-sizer{min-height:20px}.code-mirror.as-text-area .codemirror-container .CodeMirror-selected{background-color:var(--primary)!important}.code-mirror.as-text-area .codemirror-container .CodeMirror-selectedtext{color:var(--primary-text)}.code-mirror.as-text-area .codemirror-container .CodeMirror-line::selection,.code-mirror.as-text-area .codemirror-container .CodeMirror-line>span::selection,.code-mirror.as-text-area .codemirror-container .CodeMirror-line>span>span::selection{color:var(--primary-text);background-color:var(--primary)}.code-mirror.as-text-area .codemirror-container .CodeMirror-line::-moz-selection,.code-mirror.as-text-area .codemirror-container .CodeMirror-line>span::-moz-selection,.code-mirror.as-text-area .codemirror-container .CodeMirror-line>span>span::-moz-selection{color:var(--primary-text);background-color:var(--primary)}.code-mirror.as-text-area .codemirror-container .CodeMirror-gutters .CodeMirror-foldgutter:empty{display:none}.code-mirror{position:relative}.code-mirror .codemirror-container{z-index:0;font-size:inherit!important}.code-mirror .codemirror-container .CodeMirror{height:auto;background:none}.code-mirror .codemirror-container .CodeMirror-gutters{background:inherit}.code-mirror .keymap.overlay{position:absolute;display:flex;top:7px;right:7px;z-index:1;cursor:pointer}.code-mirror .keymap.overlay .keymap-indicator{width:48px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;color:var(--darker);background-color:var(--overlay-bg);font-size:12px}.code-mirror .keymap.overlay .keymap-indicator .close-indicator{width:0}.code-mirror .keymap.overlay .keymap-indicator .close-indicator .icon-close{color:var(--primary);opacity:0}.code-mirror .keymap.overlay .keymap-indicator .keymap-icon{font-size:24px;opacity:.8;transition:margin-right .1s ease-in-out}.code-mirror .keymap.overlay .keymap-indicator:hover{border:1px solid var(--primary);border-radius:var(--border-radius)}.code-mirror .keymap.overlay .keymap-indicator:hover .close-indicator{margin-left:-6px;width:auto}.code-mirror .keymap.overlay .keymap-indicator:hover .close-indicator .icon-close{opacity:1;transition:opacity .1s ease-in-out .1s}.code-mirror .keymap.overlay .keymap-indicator:hover .keymap-icon{opacity:.6;margin-right:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../assets/images/wechat-qr-code.jpg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"h2[data-v-05573032]{display:flex;align-items:center}h2 i[data-v-05573032]{font-size:12px;margin-left:5px}.support-link[data-v-05573032]:not(:last-child){margin-bottom:15px}.wechat-modal[data-v-05573032]{margin:60px;display:flex;flex-direction:column;align-items:center}.link[data-v-05573032]{cursor:pointer}.btn[data-v-05573032]{margin:20px auto 0}.qr-img[data-v-05573032]{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-repeat:no-repeat;background-size:cover;background-position:50%;height:128px;width:128px;margin:15px auto 10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cru-resource-yaml-container .resource-yaml .yaml-editor[data-v-820bce44]{min-height:100px}.create-resource-container .resource-container[data-v-820bce44]{display:flex;flex-direction:column}.create-resource-container .subtype-banner .round-image[data-v-820bce44]{background-color:var(--primary)}.title[data-v-820bce44]{margin-top:20px}.title.with-description[data-v-820bce44]{margin-top:0}.subtype-container[data-v-820bce44]{position:relative;display:flex;height:100%}.subtype-body[data-v-820bce44]{flex:1;padding:10px}.subtype-logo[data-v-820bce44]{align-items:center;display:flex;justify-content:center;min-width:100px;min-height:100px;overflow:hidden;background-color:var(--box-bg)}.subtype-logo img[data-v-820bce44]{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;position:relative;top:2px}form.create-resource-container .cru__footer[data-v-820bce44]{border-top:var(--header-border-size) solid var(--header-border)}.cru[data-v-820bce44],.cru__form[data-v-820bce44]{display:flex;flex-direction:column;flex-grow:1}.cru__content[data-v-820bce44]{flex-grow:1}.cru__content-wizard[data-v-820bce44]{display:flex}.cru__footer[data-v-820bce44]{right:0;bottom:0;margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:10px 20px}.cru__errors[data-v-820bce44],.cru__footer[data-v-820bce44]{position:sticky;background-color:var(--header-bg)}.cru__errors[data-v-820bce44]{top:0;z-index:1;margin:10px 0}.description[data-v-820bce44]{margin-bottom:15px;margin-top:5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cru-resource-footer{display:flex;justify-content:flex-end;margin-top:20px;z-index:40}.cru-resource-footer .btn{margin-left:20px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".with-copy[data-v-348d5cf1]{border:solid 1px var(--border);padding:10px;position:relative;background-color:var(--input-bg);border-radius:var(--border-radius);border:solid var(--border-width) var(--input-border)}.with-copy>button[data-v-348d5cf1]{position:absolute;top:-1px;right:-1px;border-radius:0 0 0 var(--border-radius)}.monospace[data-v-348d5cf1]{white-space:pre-wrap;word-wrap:break-all}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".detail-top:not(.empty){padding-top:10px;border-top:1px solid var(--border);margin-top:10px}.detail-top .namespaceLinkList:not(:first-child):before{content:\\\", \\\"}.detail-top .tags{display:inline-flex;flex-direction:row;flex-wrap:wrap;position:relative;top:-2px}.detail-top .tags .label{position:relative;top:4px}.detail-top .tags .tag{margin:2px 4px 0 2px;font-size:12px}.detail-top .annotation{margin-top:10px}.detail-top .label{color:var(--input-label);margin:0 4px 0 0}.detail-top__label-button{padding:4px}.detail-top .details{display:flex;flex-direction:row;flex-wrap:wrap}.detail-top .details .detail{margin-right:20px;margin-bottom:3px}.detail-top .details:not(:first-of-type){margin-top:3px}.detail-top>div:not(:last-of-type){margin-bottom:4px}.detail-top .icon{vertical-align:top}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".project-namespaces[data-v-4b76ed34] .project-namespaces-table table{table-layout:fixed}.project-namespaces[data-v-4b76ed34] .project-name{line-height:30px}.project-namespaces[data-v-4b76ed34] .project-bar{display:flex;flex-direction:row;justify-content:space-between}.project-namespaces[data-v-4b76ed34] .project-bar .group-tab{max-width:calc(100% - 230px)}.project-namespaces[data-v-4b76ed34] .project-bar .project-name{display:flex;flex-direction:row;align-items:center}.project-namespaces[data-v-4b76ed34] .project-bar .project-name span:first-child{padding-right:8px}.project-namespaces[data-v-4b76ed34] .project-bar .project-name span:last-child{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.project-namespaces[data-v-4b76ed34] .project-bar.has-description .right{margin-top:5px}.project-namespaces[data-v-4b76ed34] .project-bar.has-description .group-tab,.project-namespaces[data-v-4b76ed34] .project-bar.has-description .group-tab:after{height:50px}.project-namespaces[data-v-4b76ed34] .project-bar.has-description .group-tab:after{right:-20px}.project-namespaces[data-v-4b76ed34] .project-bar.has-description .group-tab .description{margin-top:-20px}.project-namespaces[data-v-4b76ed34] .namespace-name{display:flex;align-items:center}.project-namespaces[data-v-4b76ed34] .namespace-name .icon-istio{color:var(--primary)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".psa-tooltip{margin:3px 0;padding:0 8px 0 22px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".root[data-v-639a852a]{max-width:100%;position:relative;overflow:auto}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../diff2html/bundles/css/diff2html.min.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-639a852a] .d2h-wrapper .d2h-file-header{display:none}[data-v-639a852a] .d2h-wrapper .d2h-file-wrapper{border-color:var(--diff-border)}[data-v-639a852a] .d2h-wrapper .d2h-diff-table{font-family:Menlo,Consolas,monospace;font-size:13px}[data-v-639a852a] .d2h-wrapper .d2h-code-side-emptyplaceholder,[data-v-639a852a] .d2h-wrapper .d2h-emptyplaceholder{border-color:var(--diff-linenum-border);background-color:var(--diff-empty-placeholder)}[data-v-639a852a] .d2h-wrapper .d2h-code-linenumber,[data-v-639a852a] .d2h-wrapper .d2h-code-side-linenumber{background-color:var(--diff-linenum-bg);color:var(--diff-linenum);border-color:var(--diff-linenum-border);border-left:0}[data-v-639a852a] .d2h-wrapper .d2h-code-line del,[data-v-639a852a] .d2h-wrapper .d2h-code-side-line del{background-color:var(--diff-line-del-bg)}[data-v-639a852a] .d2h-wrapper .d2h-code-line ins,[data-v-639a852a] .d2h-wrapper .d2h-code-side-line ins{background-color:var(--diff-line-ins-bg)}[data-v-639a852a] .d2h-wrapper .d2h-del{background-color:var(--diff-del-bg);border-color:var(--diff-del-border);color:var(--body-text)}[data-v-639a852a] .d2h-wrapper .d2h-ins{background-color:var(--diff-ins-bg);border-color:var(--diff-ins-border);color:var(--body-text)}[data-v-639a852a] .d2h-wrapper .d2h-info{background-color:var(--diff-header-bg);color:var(--diff-header);border-color:var(--diff-header-border)}[data-v-639a852a] .d2h-wrapper .d2h-file-diff .d2h-del.d2h-change{background-color:var(--diff-chg-del)}[data-v-639a852a] .d2h-wrapper .d2h-file-diff .d2h-ins.d2h-change{background-color:var(--diff-chg-ins)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vertical[data-v-01996ade]{flex-direction:column;width:100%}.subtle[data-v-01996ade]{opacity:.7}.message-icon[data-v-01996ade]{display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column}.message-icon>I[data-v-01996ade]{font-size:64px;margin-bottom:20px}.message-icon>I.info[data-v-01996ade]{color:var(--primary)}.message-icon>I.error[data-v-01996ade]{color:var(--error)}.message-icon>I.warning[data-v-01996ade]{color:var(--warning)}.message-icon>I.success[data-v-01996ade]{color:var(--success)}.message-icon>.message[data-v-01996ade]{font-size:20px;margin-bottom:40px;max-width:60%;text-align:center;line-height:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".svg-icon[data-v-373e6345]{height:24px;width:24px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".indented-panel{height:100%;width:90%;margin-left:5%}@media only screen and (max-width:992px){.indented-panel{margin:0 20px;width:auto}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".info-box[data-v-1c5683df]{border:2px solid var(--tabbed-border);padding:10px;margin-bottom:20px;border-radius:var(--border-radius);flex-grow:1;flex-basis:0;position:relative}.info-box .stepped[data-v-1c5683df]{padding-left:40px}.info-box .step-number[data-v-1c5683df]{border-radius:var(--border-radius);background:var(--secondary);color:var(--input-text);display:inline-block;padding:5px 10px}.info-box .step-list[data-v-1c5683df]{margin:0}.info-box .info-column[data-v-1c5683df]:not(:last-child){border-right:1px solid var(--tabbed-border)}.info-box .info-row[data-v-1c5683df]{margin-bottom:10px}.info-box .info-row .info-row-label[data-v-1c5683df]{padding-top:2px;display:inline-block}.info-box .info-column label[data-v-1c5683df],.info-box .info-row label[data-v-1c5683df]{color:var(--input-label)}.info-box .info-column .usage[data-v-1c5683df]{margin-bottom:10px}.info-box .info-column .usage label[data-v-1c5683df]{display:inline-block;font-size:12px;padding-top:6px}.info-box .info-column .flex-item-half[data-v-1c5683df]{align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".overlay[data-v-1d9696d1]{align-items:center;background-color:var(--overlay-bg);display:flex;justify-content:center;position:absolute;bottom:0;top:0;left:0;right:0;text-align:center;z-index:12}.overlay-main-mode[data-v-1d9696d1]{top:var(--header-height);z-index:51}.overlay-content-mode[data-v-1d9696d1]{left:calc(var(--nav-width));top:var(--header-height)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".footer[data-v-0430f766]{width:100%;display:flex;justify-content:center}.banner[data-v-0430f766]{margin-bottom:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".modal{border-radius:var(--border-radius);max-height:100vh}.modal.card-container{box-shadow:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".move-modal .namespaces{max-height:200px;overflow-y:scroll}.move-modal .move-modal-card{box-shadow:none;border-radius:var(--border-radius)}.move-modal .actions{text-align:right}.move-modal .card-actions{display:flex;justify-content:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".confirm-modal .btn[data-v-72d8b215]{margin:0 10px}.confirm-modal .body[data-v-72d8b215]{min-height:75px;padding:10px 0 0 15px}.confirm-modal .body p[data-v-72d8b215]{margin-top:10px}.confirm-modal .header[data-v-72d8b215]{background-color:var(--error);padding:15px 0 0 15px;height:50px}.confirm-modal .header h4[data-v-72d8b215]{color:#fff}.confirm-modal .footer[data-v-72d8b215]{border-top:1px solid var(--border);text-align:center;padding:10px 0 0 15px;height:60px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".masthead[data-v-81c48f58]{padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:10px}HEADER[data-v-81c48f58]{margin:0 0 0 -5px}HEADER .title[data-v-81c48f58]{overflow-x:hidden}.primaryheader[data-v-81c48f58],.primaryheader h1[data-v-81c48f58]{display:flex;flex-direction:row;align-items:center}.primaryheader h1[data-v-81c48f58]{margin:0;overflow-x:hidden}.primaryheader h1 .masthead-resource-title[data-v-81c48f58]{padding:0 8px;text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.primaryheader h1 .masthead-resource-list-link[data-v-81c48f58]{margin:5px}.subheader[data-v-81c48f58]{display:flex;flex-direction:row;color:var(--input-label)}.subheader[data-v-81c48f58]>*{margin:5px 20px 5px 0}.subheader .live-data[data-v-81c48f58]{color:var(--body-text);margin-left:3px}.state-banner[data-v-81c48f58]{margin:3px 0 0 0}.masthead-state[data-v-81c48f58]{font-size:medium}.masthead-istio .icon[data-v-81c48f58]{vertical-align:middle;color:var(--primary)}.left-right-split[data-v-81c48f58]{display:grid;align-items:center}.left-right-split .left-half[data-v-81c48f58]{grid-column:1}.left-right-split .right-half[data-v-81c48f58]{grid-column:2}div.actions-container>div.actions[data-v-81c48f58]{display:flex;flex-direction:row;justify-content:flex-end}.resource-external[data-v-81c48f58]{font-size:18px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flex-content[data-v-3c03c7c6]{display:flex;flex-direction:column;flex-grow:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".title[data-v-577fc9fa]{align-items:center;display:flex}.title h1[data-v-577fc9fa]{margin:0}header[data-v-577fc9fa]{margin-bottom:20px}header.with-subheader[data-v-577fc9fa]{grid-template-areas:\\\"type-banner type-banner\\\" \\\"title actions\\\" \\\"sub-header sub-header\\\" \\\"state-banner state-banner\\\"}.sub-header[data-v-577fc9fa]{grid-area:sub-header}.sub-header a[data-v-577fc9fa]{display:inline-block}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".resource-loading-indicator[data-v-6457c305]{border:1px solid var(--link);border-radius:10px;position:relative;width:-moz-min-content;width:min-content;overflow:hidden}.resource-loading-indicator .resource-loader[data-v-6457c305]:last-child{position:absolute;top:0;background-color:var(--link);color:var(--link-text);overflow:hidden;white-space:nowrap}.resource-loading-indicator .resource-loader[data-v-6457c305]{padding:1px 10px;width:-moz-max-content;width:max-content}.resource-loading-indicator .resource-loader .rl-bg[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg[data-v-6457c305]{align-content:center;display:flex}.resource-loading-indicator .resource-loader .rl-bg>i[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg>i[data-v-6457c305]{font-size:18px;line-height:18px}.resource-loading-indicator .resource-loader .rl-bg>span[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg>span[data-v-6457c305]{margin-left:5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".header[data-v-515e48d4],H2[data-v-515e48d4]{position:relative}H2[data-v-515e48d4]{margin:0 0 20px 0}.filter[data-v-515e48d4]{line-height:45px}.right-action[data-v-515e48d4]{position:absolute;top:10px;right:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flex-content[data-v-49797251]{display:flex;flex-direction:column;flex-grow:1}.footer[data-v-49797251]{margin-top:20px;right:0;position:sticky;bottom:0;background-color:var(--header-bg);margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:10px 20px}.footer.edit[data-v-49797251]{border-top:var(--header-border-size) solid var(--header-border)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".resource-yaml .yaml-editor{min-height:200px}.resource-yaml footer .actions{text-align:right}.resource-yaml .spacer-small{padding:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".top[data-v-48821e48]{display:flex;position:relative}.top>h2[data-v-48821e48]{flex:1}.close-button[data-v-48821e48]{cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px}.close-button>i[data-v-48821e48]{font-size:14px;opacity:.5}.close-button[data-v-48821e48]:hover{background-color:var(--wm-closer-hover-bg)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".simple-box{background:var(--simple-box-bg) 0 0 no-repeat padding-box;box-shadow:0 0 10px var(--simple-box-shadow);border:1px solid var(--simple-box-border);padding:15px}.simple-box .top{line-height:24px;font-size:18px;border-bottom:1px solid var(--simple-box-divider);padding-bottom:15px;margin:0 -15px 10px -15px;padding:0 15px 15px 15px;align-items:center;display:flex .simple-box .top BUTTON;display-padding:0;display-height:fit-content;display-align-self:flex-start}.simple-box .top H2{margin-bottom:0}.simple-box .content{padding:15px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".table-options-group .table-options-btn.role-multi-action[data-v-d8d3445c]{background-color:transparent;border:none;font-size:18px}.table-options-group .table-options-btn.role-multi-action[data-v-d8d3445c]:focus,.table-options-group .table-options-btn.role-multi-action[data-v-d8d3445c]:hover{background-color:var(--accent-btn);box-shadow:none}.table-options-group .table-options-container[data-v-d8d3445c]{width:350px;border:1px solid var(--primary);background-color:var(--body-bg);padding:20px;z-index:1}.table-options-group .table-options-container .table-options-grouping[data-v-d8d3445c]{display:flex;align-items:center;margin-bottom:20px}.table-options-group .table-options-container .table-options-grouping span[data-v-d8d3445c]{white-space:nowrap;margin-right:10px}.table-options-group .table-options-container ul[data-v-d8d3445c]{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto}.table-options-group .table-options-container ul li[data-v-d8d3445c]{margin:0;padding:0}.table-options-group .table-options-container ul li.visible[data-v-d8d3445c]{margin:0 0 10px 0}.sortable>SPAN[data-v-d8d3445c]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.sortable>SPAN[data-v-d8d3445c]:active,.sortable>SPAN[data-v-d8d3445c]:hover{text-decoration:underline;color:var(--body-text)}.top-aligned th[data-v-d8d3445c]{vertical-align:top;padding-top:10px}thead tr[data-v-d8d3445c]{background-color:var(--sortable-table-header-bg);text-align:left;border-bottom:1px solid var(--sortable-table-top-divider)}th[data-v-d8d3445c],thead tr[data-v-d8d3445c]{color:var(--body-text)}th[data-v-d8d3445c]{padding:8px 5px;font-weight:400;border:0}th.sortable-table-head-element[data-v-d8d3445c]:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:-4px}th .table-header-container[data-v-d8d3445c]{display:inline-flex}th .table-header-container .content[data-v-d8d3445c]{display:flex;flex-direction:column}th .table-header-container.not-filterable[data-v-d8d3445c],th .table-header-container.not-filterable .icon-stack[data-v-d8d3445c]{margin-top:-2px}th .table-header-container .not-filter-icon[data-v-d8d3445c]{font-size:16px;color:var(--primary);vertical-align:super}th[data-v-d8d3445c]:first-child{padding-left:10px}th[data-v-d8d3445c]:last-child{padding-right:10px}th:not(.sortable)>SPAN[data-v-d8d3445c]{display:block;margin-bottom:2px}th A[data-v-d8d3445c]{color:var(--body-text)}@media only screen and (max-width:480px){th.desktop[data-v-d8d3445c],th.laptop[data-v-d8d3445c],th.tablet[data-v-d8d3445c]{display:none}}@media only screen and (max-width:992px){th.desktop[data-v-d8d3445c],th.laptop[data-v-d8d3445c]{display:none}}@media only screen and (max-width:1281px){th.desktop[data-v-d8d3445c]{display:none}}.icon-stack[data-v-d8d3445c]{width:12px}.icon-sort.faded[data-v-d8d3445c]{opacity:.3}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".table-options-checkbox .checkbox-custom{min-width:14px}.table-options-checkbox .checkbox-label{color:var(--body-text)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".sortable-table.alt-loading[data-v-171d81ac]{opacity:.5;pointer-events:none}.advanced-filter-group[data-v-171d81ac]{position:relative;margin-left:10px}.advanced-filter-group .advanced-filter-container[data-v-171d81ac]{position:absolute;top:38px;right:0;width:300px;border:1px solid var(--primary);background-color:var(--body-bg);padding:20px;z-index:2}.advanced-filter-group .advanced-filter-container .middle-block[data-v-171d81ac]{display:flex;align-items:center;margin-top:20px}.advanced-filter-group .advanced-filter-container .middle-block span[data-v-171d81ac]{margin-right:20px}.advanced-filter-group .advanced-filter-container .middle-block button[data-v-171d81ac]{margin-left:20px}.advanced-filter-group .advanced-filter-container .bottom-block[data-v-171d81ac]{display:flex;align-items:center;margin-top:40px;justify-content:space-between}.advanced-filters-applied[data-v-171d81ac]{display:inline-flex;margin:0;padding:0;list-style:none;max-width:100%;flex-wrap:wrap;justify-content:flex-end}.advanced-filters-applied li[data-v-171d81ac]{margin:0 20px 10px 0;padding:2px 5px;border:1px solid;display:flex;align-items:center;position:relative;height:20px}.advanced-filters-applied li[data-v-171d81ac]:nth-child(4n+1){border-color:var(--success)}.advanced-filters-applied li:nth-child(4n+1) .bg[data-v-171d81ac]{background-color:var(--success)}.advanced-filters-applied li[data-v-171d81ac]:nth-child(4n+2){border-color:var(--warning)}.advanced-filters-applied li:nth-child(4n+2) .bg[data-v-171d81ac]{background-color:var(--warning)}.advanced-filters-applied li[data-v-171d81ac]:nth-child(4n+3){border-color:var(--info)}.advanced-filters-applied li:nth-child(4n+3) .bg[data-v-171d81ac]{background-color:var(--info)}.advanced-filters-applied li[data-v-171d81ac]:nth-child(4n+4){border-color:var(--error)}.advanced-filters-applied li:nth-child(4n+4) .bg[data-v-171d81ac]{background-color:var(--error)}.advanced-filters-applied li .bg[data-v-171d81ac]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.2;z-index:-1}.advanced-filters-applied li .label[data-v-171d81ac]{margin-right:10px;font-size:11px}.advanced-filters-applied li .cross[data-v-171d81ac]{font-size:12px;font-weight:700;cursor:pointer}@media only screen and (max-width:480px){td.desktop[data-v-171d81ac],td.laptop[data-v-171d81ac],td.tablet[data-v-171d81ac]{display:none}}@media only screen and (max-width:992px){td.desktop[data-v-171d81ac],td.laptop[data-v-171d81ac]{display:none}}@media only screen and (max-width:1281px){td.desktop[data-v-171d81ac]{display:none}}tr td div.data-loading[data-v-171d81ac]{align-items:center;display:flex;justify-content:center;padding:20px 0}tr td div.data-loading>i[data-v-171d81ac]{font-size:20px;height:20px;margin-right:5px;width:20px}.search-box[data-v-171d81ac]{height:40px;margin-left:10px;min-width:180px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".filter-select .vs__selected-options .vs__selected{text-align:left}.sortable-table{border-collapse:collapse;min-width:400px;border-radius:5px 5px 0 0;outline:1px solid var(--border);overflow:hidden;background:var(--sortable-table-bg);border-radius:4px}.sortable-table.overflow-x{overflow-x:visible}.sortable-table.overflow-y{overflow-y:visible}.sortable-table td{padding:8px 5px;border:0}.sortable-table td:first-child{padding-left:10px}.sortable-table td:last-child{padding-right:10px}.sortable-table td.row-check{padding-top:12px}.sortable-table tbody tr{border-bottom:1px solid var(--sortable-table-top-divider);background-color:var(--sortable-table-row-bg)}.sortable-table tbody tr.main-row.has-sub-row{border-bottom:0}.sortable-table tbody tr.main-row:not(.row-selected):hover+.sub-row{background-color:var(--sortable-table-hover-bg)}.sortable-table tbody tr:last-of-type{border-bottom:0}.sortable-table tbody tr.sub-row-hovered,.sortable-table tbody tr:hover{background-color:var(--sortable-table-hover-bg)}.sortable-table tbody tr.state-description>td{font-size:13px;padding-top:0;overflow-wrap:anywhere}.sortable-table tbody tr.active-row{color:var(--sortable-table-header-bg)}.sortable-table tbody tr.row-selected{background:var(--sortable-table-selected-bg)}.sortable-table tbody .no-rows td{padding:30px 0;text-align:center}.sortable-table tbody .no-results:hover,.sortable-table tbody .no-rows:hover{background-color:var(--body-bg)}.sortable-table tbody.group:before{content:\\\"\\\";display:block;height:20px;background-color:transparent}.sortable-table tbody tr.group-row{background-color:initial}.sortable-table tbody tr.group-row:first-child{border-bottom:2px solid var(--sortable-table-row-bg)}.sortable-table tbody tr.group-row:not(:first-child){margin-top:20px}.sortable-table tbody tr.group-row td{padding:0}.sortable-table tbody tr.group-row td:first-of-type{border-left:1px solid var(--sortable-table-accent-bg)}.sortable-table tbody tr.group-row .group-tab{height:40px;line-height:40px;padding:0 10px;border-radius:4px 4px 0 0;background-color:var(--sortable-table-row-bg);position:relative;top:1px;display:inline-block;z-index:10;min-width:72px}.sortable-table tbody tr.group-row .group-tab:after,.sortable-table tbody tr.group-row .group-tab:before{content:\\\" \\\";display:table}.sortable-table tbody tr.group-row .group-tab:after{clear:both}.sortable-table tbody tr.group-row .group-tab>SPAN{color:var(--sortable-table-group-label)}.sortable-table tbody tr.group-row .group-tab:after{height:40px;width:70px;border-radius:5px 5px 0 0;background-color:var(--sortable-table-row-bg);content:\\\"\\\";position:absolute;right:-15px;top:0;transform:skewX(40deg);z-index:-1}.for-inputs TABLE.sortable-table{width:100%;border-collapse:collapse;margin-bottom:10px}.for-inputs TABLE.sortable-table>TBODY>TR>TD,.for-inputs TABLE.sortable-table>THEAD>TR>TH{padding-right:10px;padding-bottom:10px}.for-inputs TABLE.sortable-table>TBODY>TR>TD:last-of-type,.for-inputs TABLE.sortable-table>THEAD>TR>TH:last-of-type{padding-right:0}.for-inputs TABLE.sortable-table>TBODY>TR:first-of-type>TD{padding-top:10px}.for-inputs TABLE.sortable-table>TBODY>TR:last-of-type>TD{padding-bottom:0}.for-inputs.clone TABLE.sortable-table>THEAD>TR>TH,.for-inputs.create TABLE.sortable-table>THEAD>TR>TH,.for-inputs.edit TABLE.sortable-table>THEAD>TR>TH{border-color:transparent}.sortable-table-header{position:relative;z-index:11}.sortable-table-header.titled{display:flex;align-items:center}.fixed-header-actions.button{grid-template-columns:[bulk] auto [middle] min-content [search] minmax(min-content,350px)}.fixed-header-actions{padding:0 0 20px 0;width:100%;z-index:11;background:transparent;display:grid;grid-template-columns:[bulk] auto [middle] min-content [search] minmax(min-content,200px);grid-column-gap:10px}.fixed-header-actions.advanced-filtering{grid-template-columns:[bulk] auto [middle] minmax(min-content,auto) [search] minmax(min-content,auto)}.fixed-header-actions .bulk{grid-area:bulk}.fixed-header-actions .bulk>BUTTON{display:none}.fixed-header-actions .bulk>BUTTON:not(:last-of-type){margin-right:10px}.fixed-header-actions .bulk .action-availability{display:none;margin-left:10px;vertical-align:middle;margin-top:2px}.fixed-header-actions .bulk .dropdown-button li.disabled{color:var(--disabled-text);cursor:not-allowed}.fixed-header-actions .bulk .dropdown-button li.disabled:hover{color:var(--disabled-text);background-color:unset;cursor:not-allowed}.fixed-header-actions .bulk .bulk-action .icon{vertical-align:-10%}.fixed-header-actions .middle{grid-area:middle;white-space:nowrap}.fixed-header-actions .middle .icon.icon-backup.animate{animation-name:spin;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fixed-header-actions .search{grid-area:search;text-align:right;justify-content:flex-end}.fixed-header-actions .bulk-actions-dropdown{display:none}.fixed-header-actions .bulk-actions-dropdown .dropdown-button{background-color:var(--primary)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button:hover{background-color:var(--primary-hover-bg);color:var(--primary-hover-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button .icon-chevron-down,.fixed-header-actions .bulk-actions-dropdown .dropdown-button>*{color:var(--primary-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button .button-divider{border-color:var(--primary-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled{border-color:var(--disabled-bg)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled .icon-chevron-down{color:var(--disabled-text)!important}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled .button-divider{border-color:var(--disabled-text)}.paging{margin-top:10px;text-align:center}.paging SPAN{display:inline-block;min-width:200px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tab-header[data-v-6f6df00a]{display:flex;justify-content:space-between;margin-bottom:15px;align-items:center}.tab-header h2[data-v-6f6df00a]{margin:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tabs[data-v-79e80ea7]{list-style-type:none;margin:0;padding:0}.tabs.horizontal[data-v-79e80ea7]{border:solid thin var(--border);border-bottom:0;display:flex;flex-direction:row}.tabs.horizontal+.tab-container[data-v-79e80ea7]{border:solid thin var(--border)}.tabs.horizontal .tab.active[data-v-79e80ea7]{border-bottom:solid 2px var(--primary)}.tabs[data-v-79e80ea7]:focus{outline:none}.tabs:focus .tab.active a span[data-v-79e80ea7]{text-decoration:underline}.tabs .tab[data-v-79e80ea7]{position:relative;float:left;padding:0 8px 0 0;cursor:pointer}.tabs .tab A[data-v-79e80ea7]{display:flex;align-items:center;padding:10px 15px}.tabs .tab A[data-v-79e80ea7]:hover{text-decoration:none}.tabs .tab A:hover span[data-v-79e80ea7]{text-decoration:underline}.tabs .tab A[data-v-79e80ea7]:focus-visible{outline:2px solid var(--primary-keyboard-focus)}.tabs .tab A:focus-visible span[data-v-79e80ea7]{text-decoration:underline}.tabs .tab .conditions-alert-icon[data-v-79e80ea7]{color:var(--error);padding-left:4px}.tabs .tab[data-v-79e80ea7]:last-child{padding-right:0}.tabs .tab.active>A[data-v-79e80ea7]{color:var(--primary);text-decoration:none}.tabs .tab.error A>i[data-v-79e80ea7]{color:var(--error)}.tabs .tab .tab-badge[data-v-79e80ea7]{margin-left:5px;background-color:var(--link);color:#fff;border-radius:6px;padding:1px 7px;font-size:11px}.tab-container[data-v-79e80ea7]{padding:20px}.tab-container.no-content[data-v-79e80ea7]{padding:0 0 3px 0}.tab-container--flat[data-v-79e80ea7]{padding:0}.tab-container--flat .side-tabs[data-v-79e80ea7]{box-shadow:unset}.tabs-only[data-v-79e80ea7]{margin-bottom:20px}.tabs-only .tab-container[data-v-79e80ea7]{display:none}.tabs-only .tabs[data-v-79e80ea7]{border:0;border-bottom:2px solid var(--border)}.side-tabs[data-v-79e80ea7]{display:flex;box-shadow:0 0 20px var(--shadow);border-radius:calc(var(--border-radius)*2);background-color:var(--tabbed-sidebar-bg)}.side-tabs .tab-container[data-v-79e80ea7]{padding:20px}.side-tabs .tabs[data-v-79e80ea7]{width:200px;min-width:200px;display:flex;flex:1 0;flex-direction:column}.side-tabs .tabs .tab[data-v-79e80ea7]{width:100%;border-left:5px solid transparent}.side-tabs .tabs .tab A[data-v-79e80ea7],.side-tabs .tabs .tab.toggle A[data-v-79e80ea7]{color:var(--primary)}.side-tabs .tabs .tab.active[data-v-79e80ea7]{background-color:var(--body-bg);border-left:solid 5px var(--primary)}.side-tabs .tabs .tab.active A[data-v-79e80ea7]{color:var(--input-label)}.side-tabs .tabs .tab.disabled[data-v-79e80ea7]{background-color:var(--disabled-bg)}.side-tabs .tabs .tab.disabled A[data-v-79e80ea7]{color:var(--disabled-text);text-decoration:none}.side-tabs .tabs .tab-list-footer[data-v-79e80ea7]{list-style:none;padding:0;margin-top:auto}.side-tabs .tabs .tab-list-footer li[data-v-79e80ea7]{display:flex;flex:1}.side-tabs .tabs .tab-list-footer li .btn[data-v-79e80ea7]{flex:1 1;display:flex;justify-content:center}.side-tabs .tabs .tab-list-footer li button[data-v-79e80ea7]:first-of-type{border-top:solid 1px var(--border);border-right:solid 1px var(--border);border-top-right-radius:0}.side-tabs .tabs .tab-list-footer li button[data-v-79e80ea7]:last-of-type{border-top:solid 1px var(--border);border-top-left-radius:0}.side-tabs .tab-container[data-v-79e80ea7]{width:calc(100% - 200px);flex-grow:1;background-color:var(--body-bg)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tag[data-v-0d281a35]{border-radius:var(--border-radius);color:var(--tag-primary);background-color:var(--tag-bg);padding:4px 6px 3px 6px;font-size:12px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".outer-container[data-v-21be6a33]{display:flex;flex-direction:column;flex:1;padding:0;justify-content:flex-start}.header[data-v-21be6a33]{display:flex;align-content:space-between;align-items:center;margin-bottom:20px;border-bottom:var(--header-border-size) solid var(--header-border)}.header .step-sequence[data-v-21be6a33],.header>.title[data-v-21be6a33]{flex:1;min-height:60px;display:flex}.header .step-sequence .steps[data-v-21be6a33]{flex:1;margin:0 30px;display:flex;justify-content:space-between;list-style-type:none;padding:0}.header .step-sequence .steps[data-v-21be6a33]:focus{outline:none;box-shadow:none}.header .step-sequence .steps li.step[data-v-21be6a33]{display:flex;flex-direction:row;flex-grow:1;align-items:center}.header .step-sequence .steps li.step>span>span[data-v-21be6a33]:last-of-type{padding-bottom:0}.header .step-sequence .steps li.step[data-v-21be6a33]:last-of-type{flex-grow:0}.header .step-sequence .steps li.step .controls[data-v-21be6a33]{display:flex;flex-direction:column;align-items:center;width:40px;overflow:visible;padding-top:7px}.header .step-sequence .steps li.step .controls>span[data-v-21be6a33]{padding-bottom:3px;margin-bottom:5px;white-space:nowrap}.header .step-sequence .steps li.step.active .controls[data-v-21be6a33]{color:var(--primary)}.header .step-sequence .steps li.step:not(.disabled) .controls[data-v-21be6a33]:hover>*{color:var(--primary)!important;cursor:pointer}.header .step-sequence .steps li.step:not(.active) .controls[data-v-21be6a33]>*{color:var(--input-disabled-text);text-decoration:none}.header .step-sequence .steps .divider[data-v-21be6a33]{flex-basis:100%;border-top:1px solid var(--border);position:relative;top:17px}.cru__content .header .step-sequence .steps .divider[data-v-21be6a33]{top:13px}.header .choice-banner[data-v-21be6a33]{flex-basis:40%;display:flex;align-items:center;margin-bottom:10px}.header .choice-banner.selected[data-v-21be6a33]{background-color:var(--accent-btn)}.header .choice-banner.top H2[data-v-21be6a33]{margin:0}.header .choice-banner.top .title[data-v-21be6a33]{display:flex;align-items:center;justify-content:space-evenly;position:relative}.header .choice-banner.top .title>.subtitle[data-v-21be6a33]{margin-right:20px}.header .choice-banner.top .subtitle[data-v-21be6a33]{display:flex;flex-direction:column}.header .choice-banner.top .subtitle .subtext[data-v-21be6a33]{color:var(--input-label)}.header .choice-banner[data-v-21be6a33]:not(.top){box-shadow:0 0 12px 3px var(--box-bg);flex-direction:row;align-items:center;justify-content:start}.header .choice-banner[data-v-21be6a33]:not(.top):hover{outline:var(--outline-width) solid var(--outline);cursor:pointer}.header .choice-banner .round-image[data-v-21be6a33]{min-width:50px;height:50px;margin:10px 10px 10px 0;border-radius:50%;overflow:hidden}.header .choice-banner .round-image .logo[data-v-21be6a33]{min-width:50px;height:50px}.step-container[data-v-21be6a33]{position:relative;flex:1 1 auto;height:0;overflow-y:auto;padding:20px 2px 2px 2px;display:flex;flex-direction:column}.step-container__step[data-v-21be6a33]{overflow:hidden;display:flex;flex-direction:column;flex:1}.footer-error[data-v-21be6a33]{margin-top:-40px;margin-bottom:70px}.controls-row[data-v-21be6a33]{margin-left:-20px;margin-right:-20px;padding:10px 20px;display:flex;justify-content:space-between;padding-top:10px;border-top:var(--header-border-size) solid var(--header-border);position:absolute;bottom:0;width:100%;background:var(--body-bg)}.controls-row .controls-steps .btn[data-v-21be6a33]{margin-left:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".yaml-editor{display:flex;flex-direction:column}.yaml-editor .fill{flex:1}.yaml-editor .codemirror-container{position:relative}.yaml-editor .codemirror-container .CodeMirror,.yaml-editor .codemirror-container .CodeMirror .CodeMirror-gutters{background-color:var(--yaml-editor-bg)}.yaml-editor .diff-mode{background-color:var(--diff-header-bg);padding:5px 5px;border-bottom-right-radius:0;border-bottom-left-radius:0}.yaml-editor .d2h-file-wrapper{border-top-right-radius:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".chart-container{position:relative;border:1px solid var(--border);min-height:100px}.chart-container,.chart-container .loading-container{display:flex;background-color:var(--body-bg);border-radius:var(--border-radius)}.chart-container .loading-container{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;align-items:center;justify-content:center;flex-direction:column}.chart-container .loading-container i{font-size:24px}.chart-container #tree{width:70%;height:-moz-fit-content;height:fit-content}.chart-container #tree svg{margin-top:3px}.chart-container #tree .link{stroke:var(--darker)}.chart-container #tree .node{cursor:pointer}.chart-container #tree .node.active .node-hover-layer{display:block}.chart-container #tree .node.repo.active>circle{transform:scale(1.2)}.chart-container #tree .node.bundle.active>circle{transform:scale(1.35)}.chart-container #tree .node.bundle-deployment.active>circle{transform:scale(1.6)}.chart-container #tree .node.node-default-fill>circle,.chart-container #tree .node.repo>circle{fill:var(--muted)}.chart-container #tree .node:not(.repo).node-success>circle{fill:var(--success)}.chart-container #tree .node:not(.repo).node-info>circle{fill:var(--info)}.chart-container #tree .node:not(.repo).node-warning>circle{fill:var(--warning)}.chart-container #tree .node:not(.repo).node-error>circle{fill:var(--error)}.chart-container #tree .node .node-hover-layer{stroke:var(--body-bg);stroke-width:2;display:none}.chart-container .more-info-container{width:30%;position:relative;border-left:1px solid var(--border);background-color:var(--body-bg);overflow:hidden}.chart-container .more-info-container,.chart-container .more-info-container .more-info{border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.chart-container .more-info-container .more-info{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;padding:20px;overflow-y:auto}.chart-container .more-info-container .more-info table td{vertical-align:top;padding-bottom:10px}.chart-container .more-info-container .more-info table td.align-middle{vertical-align:middle}.chart-container .more-info-container .more-info table .more-info-item-label{color:var(--darker);margin-right:8px}.chart-container .more-info-container .more-info table .single-error{color:var(--error)}.chart-container .more-info-container .more-info table p{line-height:1.5em}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".box[data-v-d6b8fa5e],.title[data-v-d6b8fa5e]{margin-bottom:10px}.box[data-v-d6b8fa5e]{display:grid;grid-template-columns:auto 75px;align-items:center}.box .value[data-v-d6b8fa5e]{flex:1}.box .value INPUT[data-v-d6b8fa5e]{height:40px}.remove[data-v-d6b8fa5e]{text-align:right}.footer .protip[data-v-d6b8fa5e]{float:right;padding:5px 0}.required[data-v-d6b8fa5e]{color:var(--error)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".array-list-grouped>.box{position:relative;display:block}.array-list-grouped>.box>.remove{position:absolute;top:0;right:0}.array-list-grouped>.box>.info-box{margin-bottom:0;padding-right:25px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".color-input[data-v-4b3e7faa]{border:1px solid var(--border);border-radius:var(--border-radius);padding:10px}.color-input[data-v-4b3e7faa]:focus-visible{outline:2px solid var(--primary-keyboard-focus)}.color-input.disabled[data-v-4b3e7faa],.color-input.disabled .selected[data-v-4b3e7faa],.color-input[disabled][data-v-4b3e7faa],.color-input[disabled][data-v-4b3e7faa]:hover{color:var(--input-disabled-text);background-color:var(--input-disabled-bg);outline-width:0;border-color:var(--input-disabled-border);cursor:not-allowed}.color-input.disabled .selected div[data-v-4b3e7faa],.color-input.disabled .selected input[data-v-4b3e7faa],.color-input.disabled .selected label[data-v-4b3e7faa],.color-input.disabled .selected span[data-v-4b3e7faa],.color-input.disabled div[data-v-4b3e7faa],.color-input.disabled input[data-v-4b3e7faa],.color-input.disabled label[data-v-4b3e7faa],.color-input.disabled span[data-v-4b3e7faa],.color-input[disabled] div[data-v-4b3e7faa],.color-input[disabled] input[data-v-4b3e7faa],.color-input[disabled] label[data-v-4b3e7faa],.color-input[disabled] span[data-v-4b3e7faa],.color-input[disabled]:hover div[data-v-4b3e7faa],.color-input[disabled]:hover input[data-v-4b3e7faa],.color-input[disabled]:hover label[data-v-4b3e7faa],.color-input[disabled]:hover span[data-v-4b3e7faa]{cursor:not-allowed!important}.color-input.disabled .selected label[data-v-4b3e7faa],.color-input.disabled label[data-v-4b3e7faa],.color-input[disabled] label[data-v-4b3e7faa],.color-input[disabled]:hover label[data-v-4b3e7faa]{color:var(--input-disabled-label);display:inline-block;z-index:1}.color-input.disabled .selected[data-v-4b3e7faa]::-moz-placeholder,.color-input.disabled[data-v-4b3e7faa]::-moz-placeholder,.color-input[disabled][data-v-4b3e7faa]::-moz-placeholder,.color-input[disabled][data-v-4b3e7faa]:hover::-moz-placeholder{color:var(--input-disabled-placeholder)}.color-input.disabled .selected[data-v-4b3e7faa]::placeholder,.color-input.disabled[data-v-4b3e7faa]::placeholder,.color-input[disabled][data-v-4b3e7faa]::placeholder,.color-input[disabled][data-v-4b3e7faa]:hover::placeholder{color:var(--input-disabled-placeholder)}.color-input LABEL[data-v-4b3e7faa]{display:block}.color-input .preview-container[data-v-4b3e7faa]:hover{cursor:pointer}.color-input .preview-container .color-value[data-v-4b3e7faa]{margin-left:4px}.color-input .color-display[data-v-4b3e7faa]{border:1px solid var(--border)}.color-input .color-display[data-v-4b3e7faa]:focus{outline:none;box-shadow:0 0 0 var(--outline-width) var(--outline);background:var(--input-focus-bg)}.color-input INPUT[data-v-4b3e7faa]{border:none;padding:0;width:23px;height:23px;-webkit-appearance:none;opacity:0}.color-input INPUT[data-v-4b3e7faa]:hover{cursor:pointer}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".buttons{display:grid;grid-template-areas:\\\"left right\\\";grid-template-columns:\\\"min-content auto\\\"}.buttons .left{grid-area:left;text-align:left}.buttons .left .btn,.buttons .left button{margin:0 1.75% 0 0}.buttons .right{grid-area:right;text-align:right}.buttons .right .btn,.buttons .right button{margin:0 0 0 1.75%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".input-container[data-v-035f9ce5]{display:flex}.input-container.select-after[data-v-035f9ce5]{height:100%;flex-direction:row-reverse}.input-container.select-after .input-string[data-v-035f9ce5]{border-radius:var(--border-radius) 0 0 var(--border-radius);border-right:0;border-left-width:1px}.input-container.select-after .in-input[data-v-035f9ce5]{border-radius:0 var(--border-radius) var(--border-radius) 0}.input-container.select-after .in-input.labeled-select .selected[data-v-035f9ce5]{color:var(--input-text);text-align:center;margin-right:1em}.input-container.select-after .in-input.focused[data-v-035f9ce5]:not(.vs__dropdown-up){border-bottom-right-radius:0}.input-container.select-after .in-input.focused.vs__dropdown-up[data-v-035f9ce5]{border-top-right-radius:0}.input-container.select-after .input-string.focused[data-v-035f9ce5],.input-container.select-after .input-string[data-v-035f9ce5]:focus,.input-container.select-after .input-string[data-v-035f9ce5]:hover:not(.focused):not(.disabled):not(:focus){padding-left:10px!important}.input-container .input-string[data-v-035f9ce5]{padding-right:0;width:60%;flex-grow:1;border-radius:0 var(--border-radius) var(--border-radius) 0;border-left-width:0;margin-left:-1px;position:relative;display:table;border-collapse:separate}.input-container .input-string[data-v-035f9ce5]:hover:not(.focused):not(.disabled):not(:focus):not(.view){border-left:1px solid var(--input-hover-border);border-right:1px solid var(--input-hover-border);padding-left:9px}.input-container .input-string.focused[data-v-035f9ce5],.input-container .input-string[data-v-035f9ce5]:focus{border-left:1px solid var(--outline)!important;border-right:1px solid var(--outline)!important;padding-left:9px}.input-container .in-input[data-v-035f9ce5]{margin-right:0}.input-container .in-input[data-v-035f9ce5]:hover:not(.focused):not(.disabled),.input-container .in-input[data-v-035f9ce5]:hover:not(.focused):not(.disabled):not(.view){border:1px solid var(--input-hover-border)!important}.input-container .in-input.focused[data-v-035f9ce5]{border:1px solid var(--outline)!important}.input-container .in-input.labeled-select.focused[data-v-035f9ce5] ,.input-container .in-input.unlabeled-select.focused[data-v-035f9ce5] {outline:none}.input-container .in-input.labeled-select[data-v-035f9ce5]:not(.disabled):not(.view) ,.input-container .in-input.unlabeled-select[data-v-035f9ce5]:not(.disabled):not(.view) {border:solid 1px var(--input-border)}.input-container .in-input.labeled-select[data-v-035f9ce5] ,.input-container .in-input.unlabeled-select[data-v-035f9ce5] {box-shadow:none;width:20%;margin-right:1px}.input-container .in-input.labeled-select[data-v-035f9ce5] .vs__selected,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .vs__selected{color:var(--input-text)}.input-container .in-input.labeled-select[data-v-035f9ce5] .vs__dropdown-menu,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .vs__dropdown-menu{box-shadow:none}.input-container .in-input.labeled-select[data-v-035f9ce5] .vs__dropdown-menu .vs__dropdown-option,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .vs__dropdown-menu .vs__dropdown-option{padding:3px 5px}.input-container .in-input.labeled-select[data-v-035f9ce5] .v-select:not(.vs--disabled) .vs__dropdown-toggle,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .v-select:not(.vs--disabled) .vs__dropdown-toggle{border-radius:var(--border-radius) 0 0 var(--border-radius)}.input-container .in-input.labeled-select[data-v-035f9ce5] .v-select:not(.vs--disabled).vs--open .vs__dropdown-toggle,.input-container .in-input.unlabeled-select[data-v-035f9ce5] .v-select:not(.vs--disabled).vs--open .vs__dropdown-toggle{color:var(--outline)!important}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".labeled-select[data-v-92b3990a]{position:relative;padding-bottom:1px}.labeled-select.no-label.compact-input[data-v-92b3990a] .vs__actions:after{top:-2px}.labeled-select.no-label.compact-input .labeled-container[data-v-92b3990a]{padding:5px 0 1px 10px}.labeled-select.no-label[data-v-92b3990a]:not(.compact-input){height:61px;padding-top:4px}.labeled-select.no-label[data-v-92b3990a]:not(.compact-input) .vs__actions:after{top:0}.labeled-select .icon-spinner[data-v-92b3990a]{position:absolute;left:calc(50% - .5em);top:calc(50% - .5em)}.labeled-select .labeled-container[data-v-92b3990a]{padding:7px 0 0 10px;padding:10px 0 0 10px}.labeled-select .labeled-container label[data-v-92b3990a]{margin:0}.labeled-select .labeled-container .selected[data-v-92b3990a]{background-color:transparent}.labeled-select.view.labeled-input .labeled-container[data-v-92b3990a]{padding:0}.labeled-select.taggable.compact-input[data-v-92b3990a]{min-height:40px}.labeled-select.taggable.compact-input[data-v-92b3990a] .vs__selected-options{padding-top:8px!important}.labeled-select.taggable[data-v-92b3990a]:not(.compact-input){min-height:61px}.labeled-select.taggable[data-v-92b3990a]:not(.compact-input) .vs__selected-options{margin-top:0}.labeled-select[data-v-92b3990a]:not(.taggable) .vs__selected-options .vs__selected{width:100%}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options{padding:3px 0}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options .vs__selected{border-color:var(--accent-btn);height:20px;min-height:unset!important;padding:0 0 0 7px!important}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options .vs__selected>button{height:20px;line-height:14px}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options .vs__selected>button:hover{background-color:var(--primary);border-radius:0}.labeled-select.taggable[data-v-92b3990a] .vs__selected-options .vs__selected>button:hover:after{color:#fff}.labeled-select[data-v-92b3990a] .vs__selected-options{margin-top:-5px}.labeled-select[data-v-92b3990a] .v-select:not(.vs--single) .vs__selected-options{padding:5px 0}.labeled-select[data-v-92b3990a] .vs__actions:after{position:relative;top:-10px}.labeled-select[data-v-92b3990a] .v-select.vs--open .vs__dropdown-toggle{color:var(--outline)!important}[data-v-92b3990a] .labeled-select.disabled .labeled-container,[data-v-92b3990a] .labeled-select.disabled .vs__dropdown-toggle,[data-v-92b3990a] .labeled-select.disabled input,[data-v-92b3990a] .labeled-select.disabled label{cursor:not-allowed}.labeled-select .no-label[data-v-92b3990a] .v-select:not(.vs--single){min-height:33px}.labeled-select .no-label[data-v-92b3990a] .selected{padding-top:8px;padding-bottom:9px;position:relative;max-height:2.3em;overflow:hidden}.labeled-select .no-label[data-v-92b3990a] .vs__selected-options{padding:8px 0 7px 0}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group[data-v-92b3990a]{display:flex;align-items:center}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group i[data-v-92b3990a]{width:18px}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>b[data-v-92b3990a]{flex:1}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>div[data-v-92b3990a]{background-color:var(--primary);border-radius:4px;color:var(--primary-text);font-size:12px;height:18px;line-height:18px;margin-top:1px;padding:0 10px}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind.has-icon[data-v-92b3990a],.vs__dropdown-menu.has-icon .vs__option-kind div[data-v-92b3990a]{padding-left:18px}.vs__dropdown-menu .pagination-slot[data-v-92b3990a]{display:flex;align-items:center;justify-content:center;position:relative;margin-top:5px}.vs__dropdown-menu .pagination-slot .load-more[data-v-92b3990a]{display:flex;align-items:center;height:19px}.vs__dropdown-menu .pagination-slot .load-more a[data-v-92b3990a]{cursor:pointer}.vs__dropdown-menu .pagination-slot .count[data-v-92b3990a]{position:absolute;right:10px}.vs__dropdown-menu .no-options-slot .paginating[data-v-92b3990a]{display:flex;align-items:center;justify-content:center}.vs__dropdown-option>.option-kind-highlighted[data-v-92b3990a]{color:var(--dropdown-highlight-text)}.vs__dropdown-option.vs__dropdown-option--highlight>.option-kind-highlighted[data-v-92b3990a],.vs__dropdown-option.vs__dropdown-option--selected>.option-kind-highlighted[data-v-92b3990a],.vs__dropdown-option>.option-kind-highlighted[data-v-92b3990a]:hover{color:var(--dropdown-hover-text)}.vs__dropdown-menu .vs__dropdown-option .only-user-opts[data-v-92b3990a]{color:var(--dropdown-text);background-color:var(--dropdown-bg);margin:0 -5px;padding:3px 20px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".unlabeled-select[data-v-fef44118]{position:relative}.unlabeled-select[data-v-fef44118] .v-select.select-input-view .vs__actions{visibility:hidden}.unlabeled-select .vs--multiple[data-v-fef44118] .vs__selected-options .vs__selected{width:auto}.unlabeled-select[data-v-fef44118] .labeled-tooltip.error .status-icon{top:7px;right:2px}.unlabeled-select[data-v-fef44118] .vs__selected-options{display:flex;margin:3px}.unlabeled-select[data-v-fef44118] .vs__selected-options .vs__selected{width:auto}.unlabeled-select[data-v-fef44118] .v-select.vs--open .vs__dropdown-toggle{color:var(--outline)!important}.unlabeled-select.focused.success[data-v-fef44118],.unlabeled-select.success[data-v-fef44118]{border:solid 1px var(--success)}.unlabeled-select.focused.success .selected[data-v-fef44118],.unlabeled-select.focused.success .vs__actions[data-v-fef44118]:after,.unlabeled-select.focused.success input[data-v-fef44118],.unlabeled-select.success .selected[data-v-fef44118],.unlabeled-select.success .vs__actions[data-v-fef44118]:after,.unlabeled-select.success input[data-v-fef44118]{color:var(--success)}.unlabeled-select.focused.warning[data-v-fef44118],.unlabeled-select.warning[data-v-fef44118]{border:solid 1px var(--warning)}.unlabeled-select.focused.warning .selected[data-v-fef44118],.unlabeled-select.focused.warning .vs__actions[data-v-fef44118]:after,.unlabeled-select.focused.warning input[data-v-fef44118],.unlabeled-select.warning .selected[data-v-fef44118],.unlabeled-select.warning .vs__actions[data-v-fef44118]:after,.unlabeled-select.warning input[data-v-fef44118]{color:var(--warning)}.unlabeled-select.error[data-v-fef44118],.unlabeled-select.focused.error[data-v-fef44118]{border:solid 1px var(--error)}.unlabeled-select.error .vs__actions[data-v-fef44118]:after,.unlabeled-select.error>label[data-v-fef44118],.unlabeled-select.focused.error .vs__actions[data-v-fef44118]:after,.unlabeled-select.focused.error>label[data-v-fef44118]{color:var(--error)}.unlabeled-select.compact-input[data-v-fef44118]{min-height:40px;line-height:18px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".secret-selector{width:100%}.secret-selector label{display:block}.secret-selector .labeled-select{min-height:61px}.secret-selector .vs__selected-options{padding:8px 0 7px 0}.secret-selector label{display:inline-block}.secret-selector.show-key-selector .input-container>*{display:inline-block;width:50%}.secret-selector.show-key-selector .input-container>.labeled-select.focused{z-index:10}.secret-selector.show-key-selector .input-container>:first-child{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.secret-selector.show-key-selector .input-container>:last-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none;float:right}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"svg.text[data-v-5f78e642]{fill:red}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".favorite[data-v-f74a378a]{position:relative;cursor:pointer;font-size:20px;transform:ease-in-out-all 1s}.favorite.icon-star-open[data-v-f74a378a]{color:var(--muted)}.favorite.icon-star-closed[data-v-f74a378a]{color:var(--body-text)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".receiver .box-container.create-resource-container{display:flex;justify-content:space-between;flex-wrap:wrap;margin:0 -10px}.receiver .box-container.create-resource-container .subtype-banner{justify-content:space-between;align-items:center;flex-direction:row}.receiver .right{padding:30px;border-left:1px solid var(--border)}.receiver .logo{text-align:center;width:60px;height:60px;border-radius:calc(var(--border-radius)*2);overflow:hidden;background-color:#fff;display:inline-block;vertical-align:middle}.receiver .logo img{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;position:relative;top:2px}.receiver .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:0;display:inline-block;vertical-align:middle}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".responders-heading[data-v-174af1a6]{display:grid;grid-template-columns:auto 75px}.responder[data-v-174af1a6],.responder .target-container[data-v-174af1a6]{width:100%}.responder .target-container[data-v-174af1a6] .unlabeled-select{min-width:35%;height:100%}.responder .target[data-v-174af1a6]{height:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".text.info[data-v-06b0c427]{display:flex;align-items:center}.text.info>span[data-v-06b0c427]{margin-right:5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".delete-warning[data-v-0b3eae82]{color:var(--error)}.remove-project-dialog[data-v-0b3eae82]{border:1px solid var(--border);padding:10px;border-radius:5px}.remove-project-dialog .display-name[data-v-0b3eae82]{font-weight:700}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".text.info[data-v-e0c89e72]{display:flex;align-items:center}.text.info>span[data-v-e0c89e72]{margin-right:5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions[data-v-64ba45e0]{text-align:right}.machine-name[data-v-64ba45e0]{font-weight:600}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".badge-state[data-v-64b26d7f]{align-items:center;display:inline-flex;padding:2px 10px;border:1px solid transparent;border-radius:20px}.badge-state.bg-info[data-v-64b26d7f]{border-color:var(--info)}.badge-state.bg-error[data-v-64b26d7f]{border-color:var(--error)}.badge-state.bg-warning[data-v-64b26d7f]{border-color:var(--warning)}.badge-state.bg-success[data-v-64b26d7f]{color:var(--success);background:transparent;border-color:var(--success)}.badge-state.badge-disabled[data-v-64b26d7f]{color:var(--badge-state-disabled-text);background-color:var(--badge-state-disabled-bg);border:1px solid var(--badge-state-disabled-border)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".sortable-table TD .badge-state{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;word-wrap:break-word;display:inline-block;max-width:100%;position:relative;max-width:110px;font-size:.85em;vertical-align:middle}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".banner[data-v-1a4e45d4]{display:flex;margin:15px 0;position:relative;width:100%;color:var(--body-text)}.banner__icon[data-v-1a4e45d4]{width:48px;flex-grow:1;display:flex;justify-content:center;align-items:center;box-sizing:content-box}.primary .banner__icon[data-v-1a4e45d4]{background:var(--primary)}.secondary .banner__icon[data-v-1a4e45d4]{background:var(--default)}.success .banner__icon[data-v-1a4e45d4]{background:var(--success)}.info .banner__icon[data-v-1a4e45d4]{background:var(--info)}.warning .banner__icon[data-v-1a4e45d4]{background:var(--warning)}.error .banner__icon[data-v-1a4e45d4]{background:var(--error);color:var(--primary-text)}.banner__content[data-v-1a4e45d4]{padding:10px;transition:all .2s ease;line-height:20px;width:100%;border-left:4px solid transparent;display:flex;gap:3px}.primary .banner__content[data-v-1a4e45d4]{background:var(--primary);border-color:var(--primary)}.secondary .banner__content[data-v-1a4e45d4]{background:var(--default-banner-bg);border-color:var(--default)}.success .banner__content[data-v-1a4e45d4]{background:var(--success-banner-bg);border-color:var(--success)}.info .banner__content[data-v-1a4e45d4]{background:var(--info-banner-bg);border-color:var(--info)}.warning .banner__content[data-v-1a4e45d4]{background:var(--warning-banner-bg);border-color:var(--warning)}.error .banner__content[data-v-1a4e45d4]{background:var(--error-banner-bg);border-color:var(--error);color:var(--error)}.banner__content.stacked[data-v-1a4e45d4]{padding:0 10px;margin:0;transition:none}.banner__content.stacked[data-v-1a4e45d4]:first-child{padding-top:10px}.banner__content.stacked[data-v-1a4e45d4]:last-child{padding-bottom:10px}.banner__content.closable[data-v-1a4e45d4]{padding-right:48px}.banner__content__closer[data-v-1a4e45d4]{display:flex;align-items:center;cursor:pointer;position:absolute;top:0;right:0;bottom:0;width:24px;line-height:24px;text-align:center;outline:none}.banner__content__closer .closer-icon[data-v-1a4e45d4]{opacity:.7}.banner__content__closer .closer-icon[data-v-1a4e45d4]:hover{opacity:1;color:var(--link)}.banner__content__closer:focus-visible i[data-v-1a4e45d4]{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px}.banner__content.icon[data-v-1a4e45d4]{border-left:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".card-container{border-radius:var(--border-radius);display:flex;flex-basis:40%;margin:10px;min-height:100px;padding:10px;box-shadow:0 0 20px var(--shadow)}.card-container.highlight-border{border-left:5px solid var(--primary)}.card-container:not(.top){align-items:top;flex-direction:row;justify-content:start}.card-container .card-wrap{width:100%}.card-container .card-body{color:var(--input-label);display:flex;flex-direction:column;justify-content:center}.card-container .card-actions{align-self:end;display:flex;padding-top:20px}.card-container .card-title{align-items:center;display:flex;width:100%}.card-container .card-title h5{margin:0}.card-container .card-title .flex-right{margin-left:auto}.card-container.card-sticky{overflow:hidden}.card-container.card-sticky .card-wrap{display:flex;flex-direction:column}.card-container.card-sticky .card-wrap .card-body{justify-content:flex-start;overflow:auto}.card-container.card-sticky .card-wrap>*{flex:0}.card-container.card-sticky .card-wrap .card-body{flex:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".checkbox-outer-container{display:inline-flex;flex-direction:column}.checkbox-outer-container-description{color:var(--input-label);font-size:14px;margin-left:19px;margin-top:5px;opacity:.8}.checkbox-container{position:relative;display:inline-flex;align-items:center;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--border-radius)}.checkbox-container .checkbox-label{color:var(--input-label);display:inline-flex;margin:0 10px 0 5px}.checkbox-container .checkbox-label.checkbox-primary{color:inherit;font-weight:600}.checkbox-container .checkbox-info{line-height:normal;margin-left:2px}.checkbox-container .checkbox-info:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px}.checkbox-container .checkbox-custom{height:14px;width:14px;background-color:var(--body-bg);border-radius:var(--border-radius);border:1px solid var(--border);flex-shrink:0}.checkbox-container .checkbox-custom:focus-visible{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px;border-radius:0}.checkbox-container input{opacity:0;position:absolute;z-index:-1}.checkbox-container input:focus-visible~.checkbox-custom{outline:2px solid var(--primary-keyboard-focus);outline-offset:2px;border-radius:0}.checkbox-container input:checked~.checkbox-custom{background-color:var(--primary);transform:rotate(0deg) scale(1);opacity:1;border:1px solid var(--primary)}.checkbox-container .checkbox-custom:after{position:absolute;content:\\\"\\\";left:0;top:0;height:0;width:0;border-radius:var(--border-radius);border:solid;border-color:var(--input-text);border-width:0 3px 3px 0;transform:rotate(0deg) scale(0);opacity:1}.checkbox-container input:checked~.checkbox-custom:after{transform:rotate(45deg) scale(1);opacity:1;left:4px;width:4px;height:10px;border:solid;border-color:var(--checkbox-tick);border-width:0 2px 2px 0;background-color:transparent}.checkbox-container input:checked~.checkbox-custom.indeterminate:after{transform:scale(1);opacity:1;left:3px;top:2px;width:6px;height:5px;border:solid;border-color:var(--checkbox-tick);border-width:0 0 2px 0;background-color:transparent}.checkbox-container.disabled .checkbox-custom,.checkbox-container.disabled input:checked~.checkbox-custom{background-color:var(--checkbox-disabled-bg);border-color:var(--checkbox-disabled-bg)}.checkbox-container.disabled input:checked~.checkbox-custom:after{border-color:var(--checkbox-tick-disabled)}.checkbox-container.disabled{cursor:not-allowed}.checkbox-container .checkbox-view{display:flex;flex-direction:column}.checkbox-container .checkbox-view LABEL{color:var(--input-label)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".labeled-input.view input[data-v-3954a5a8]{text-overflow:ellipsis}.hideArrows input[data-v-3954a5a8]::-webkit-inner-spin-button,.hideArrows input[data-v-3954a5a8]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.hideArrows input[type=number][data-v-3954a5a8]{-moz-appearance:textfield}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".radio-view{display:flex;flex-direction:column}.radio-view LABEL{color:var(--input-label)}.radio-group .text-label{display:block;padding-bottom:5px}.radio-container{position:relative;display:inline-flex;align-items:flex-start;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--border-radius);padding-bottom:5px}.radio-container,.radio-container .radio-button-outer-container-description,.radio-container .radio-label{cursor:pointer}.radio-container.disabled,.radio-container.disabled .radio-button-outer-container-description,.radio-container.disabled .radio-label{cursor:not-allowed}.radio-container .radio-custom{height:14px;width:14px;min-height:14px;min-width:14px;background-color:var(--input-bg);border-radius:50%;border:1.5px solid var(--border);margin-top:5px}.radio-container input{display:none}.radio-container .radio-custom[aria-checked=true]{background-color:var(--primary);transform:rotate(0deg) scale(1);opacity:1;border:1.5px solid var(--primary)}.radio-container .radio-custom[aria-checked=true].text-muted{opacity:.25}.radio-container input:disabled~.radio-custom:not([aria-checked=true]){background-color:var(--disabled-bg);opacity:.25}.radio-container .radio-button-outer-container-description{color:var(--input-label);font-size:11px;margin-top:5px}.radio-container .labeling{display:inline-flex;flex-direction:column;margin:3px 10px 0 5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".radio-group:focus{border:none;outline:none}.radio-group h3{position:relative}.radio-group.row{display:flex}.radio-group.row .radio-container{margin-right:10px}.radio-group .label{font-size:14px!important}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".labeled-tooltip{position:absolute;width:100%;height:100%;left:0;top:0}.labeled-tooltip.hoverable{height:0}.labeled-tooltip .status-icon{position:absolute;right:30px;top:18px;z-index:3}.labeled-tooltip.error .status-icon{color:var(--error);top:7px;right:5px}.labeled-tooltip.warning .status-icon{color:var(--warning)}.labeled-tooltip.success .status-icon{color:var(--success)}.v-popper__popper.v-popper--theme-tooltip .v-popper__inner pre{padding:2px;vertical-align:middle}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".role[data-v-fa2c9f40]{align-items:center;background-color:rgba(0,0,0,.05);border:1px solid var(--header-border);border-radius:5px;color:var(--tag-text);line-height:20px;padding:2px 5px;white-space:nowrap;display:inline-flex;margin-right:3px}.role-value.text-link-enabled[data-v-fa2c9f40]{cursor:pointer}.role-value.text-link-enabled[data-v-fa2c9f40]:hover{color:var(--primary)}.role-value+.icon-close[data-v-fa2c9f40]{margin-left:3px;cursor:pointer}.role-value+.icon-close[data-v-fa2c9f40]:hover{color:var(--primary)}.project-members[data-v-fa2c9f40] .group-bar{display:flex;justify-content:space-between}.cluster-add[data-v-fa2c9f40]{justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/xterm/css/xterm.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#__layout,#__nuxt,MAIN,body{height:100%}.harvester-shell-container{height:100%;overflow:hidden}.harvester-shell-container .shell-body,.harvester-shell-container .terminal.xterm{height:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".error[data-v-56da10be]{overflow:hidden}.error .row[data-v-56da10be]{align-items:center}.error h1[data-v-56da10be]{font-size:5rem}.error .desert-landscape img[data-v-56da10be]{max-width:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".displayed-keys .banner[data-v-7821dcb9]{margin:0}.displayed-banners[data-v-7821dcb9]{max-height:155px;overflow:auto}.actions[data-v-7821dcb9]{width:100%;display:flex;justify-content:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".combination-keys__container[data-v-11c334cb]{max-width:60px}.combination-keys__container DIV[data-v-11c334cb],.combination-keys__container SPAN[data-v-11c334cb]{display:block;text-align:center}.combination-keys__container SPAN[data-v-11c334cb]{border-radius:3px}.combination-keys__container SPAN.open[data-v-11c334cb],.combination-keys__container SPAN[data-v-11c334cb]:hover{color:var(--primary-hover-text);background:var(--primary-hover-bg)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vm-console[data-v-55ed4d1a]{height:100%;display:grid;grid-template-rows:30px auto}.combination-keys[data-v-55ed4d1a]{background:#282828}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".bundleModal .support-modal[data-v-4369f8da]{border-radius:var(--border-radius);max-height:100vh}.bundleModal .bundle[data-v-4369f8da]{cursor:pointer;color:var(--primary)}.bundleModal .icon-spinner[data-v-4369f8da]{font-size:100px}.bundleModal .content[data-v-4369f8da]{height:218px}.bundleModal .content .circle[data-v-4369f8da]{padding-top:20px;height:160px}.bundleModal div[data-v-4369f8da]{line-height:normal}.bundleModal .footer[data-v-4369f8da]{display:flex;justify-content:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#air-gap[data-v-f88eec4a] .image-group .radio-group{display:flex}#air-gap[data-v-f88eec4a] .image-group .radio-group .radio-container{margin-right:30px}#air-gap .chooseFile[data-v-f88eec4a]{display:flex;align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".header[data-v-a0fecebc]{border-bottom:1px solid var(--border);margin-bottom:0;padding-bottom:20px}.header H1[data-v-a0fecebc]{flex:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".link-example[data-v-45ae37da]{display:flex;align-content:center}.link-example a[data-v-45ae37da]{margin:auto}.logo-container[data-v-45ae37da]{display:flex;flex-direction:column}.logo-container[data-v-45ae37da] .simple-box{position:relative;flex:1;max-height:120px}.logo-container[data-v-45ae37da] .simple-box .content{height:100%;display:flex}.logo-container[data-v-45ae37da] .simple-box .logo-preview{max-width:100%}.logo-container LABEL[data-v-45ae37da]{position:absolute;top:10px;left:10px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#__layout[data-v-2efbfdaf],#__nuxt[data-v-2efbfdaf],body[data-v-2efbfdaf],main[data-v-2efbfdaf]{height:100%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".content[data-v-74e3f663]{display:grid;grid-column-gap:20px;grid-row-gap:20px;grid-template-columns:70% 30%}.only-community[data-v-74e3f663]{display:grid;grid-template-columns:100%}.community[data-v-74e3f663]{border-left:1px solid var(--border);padding-left:20px}.community>h2[data-v-74e3f663]{font-size:18px;font-weight:300;margin-bottom:20px}.community .support-link[data-v-74e3f663]{margin:10px 0}.box[data-v-74e3f663]{padding:20px;border:1px solid var(--border)}.box.box-primary[data-v-74e3f663]{border-color:var(--primary)}.box>h2[data-v-74e3f663]{font-size:20px;font-weight:300}.box>div[data-v-74e3f663]{font-weight:300;line-height:18px;opacity:.8}.role-secondary[data-v-74e3f663]:focus{background-color:transparent}.warning[data-v-74e3f663]{margin:0 -5px 0 -5px;padding:5px;background-color:var(--warning-banner-bg)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".dashboard-root[data-v-140c2578]{display:flex;flex-direction:column;height:100vh}.dashboard-content[data-v-140c2578]{display:grid;flex-grow:1;grid-template-areas:\\\"main\\\";grid-template-columns:auto;grid-template-rows:auto}.logo[data-v-140c2578]{margin:200px 0 40px 0}.logo[data-v-140c2578],.tagline[data-v-140c2578]{display:flex;justify-content:center}.tagline[data-v-140c2578]{margin-top:30px}.tagline>div[data-v-140c2578]{font-size:16px;line-height:22px;max-width:80%;text-align:center}.description[data-v-140c2578]{font-size:24px!important;font-weight:400}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):t.dayjs=e()}(this,function(){\"use strict\";var t=\"millisecond\",e=\"second\",n=\"minute\",r=\"hour\",i=\"day\",s=\"week\",u=\"month\",o=\"quarter\",a=\"year\",h=/^(\\d{4})-?(\\d{1,2})-?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d{1,3})?$/,f=/\\[([^\\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,c=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},d={s:c,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+c(r,2,\"0\")+\":\"+c(i,2,\"0\")},m:function(t,e){var n=12*(e.year()-t.year())+(e.month()-t.month()),r=t.clone().add(n,u),i=e-r<0,s=t.clone().add(n+(i?-1:1),u);return Number(-(n+(e-r)/(i?r-s:s-r))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return{M:u,y:a,w:s,d:i,D:\"date\",h:r,m:n,s:e,ms:t,Q:o}[h]||String(h||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},$={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},l=\"en\",m={};m[l]=$;var y=function(t){return t instanceof v},M=function(t,e,n){var r;if(!t)return l;if(\"string\"==typeof t)m[t]&&(r=t),e&&(m[t]=e,r=t);else{var i=t.name;m[i]=t,r=i}return!n&&r&&(l=r),r||!n&&l},g=function(t,e){if(y(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new v(n)},D=d;D.l=M,D.i=y,D.w=function(t,e){return g(t,{locale:e.$L,utc:e.$u,$offset:e.$offset})};var v=function(){function c(t){this.$L=this.$L||M(t.locale,null,!0),this.parse(t)}var d=c.prototype;return d.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(D.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(h);if(r)return n?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(e)}(t),this.init()},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},d.$utils=function(){return D},d.isValid=function(){return!(\"Invalid Date\"===this.$d.toString())},d.isSame=function(t,e){var n=g(t);return this.startOf(e)<=n&&n<=this.endOf(e)},d.isAfter=function(t,e){return g(t)<this.startOf(e)},d.isBefore=function(t,e){return this.endOf(e)<g(t)},d.$g=function(t,e,n){return D.u(t)?this[e]:this.set(n,t)},d.year=function(t){return this.$g(t,\"$y\",a)},d.month=function(t){return this.$g(t,\"$M\",u)},d.day=function(t){return this.$g(t,\"$W\",i)},d.date=function(t){return this.$g(t,\"$D\",\"date\")},d.hour=function(t){return this.$g(t,\"$H\",r)},d.minute=function(t){return this.$g(t,\"$m\",n)},d.second=function(t){return this.$g(t,\"$s\",e)},d.millisecond=function(e){return this.$g(e,\"$ms\",t)},d.unix=function(){return Math.floor(this.valueOf()/1e3)},d.valueOf=function(){return this.$d.getTime()},d.startOf=function(t,o){var h=this,f=!!D.u(o)||o,c=D.p(t),d=function(t,e){var n=D.w(h.$u?Date.UTC(h.$y,e,t):new Date(h.$y,e,t),h);return f?n:n.endOf(i)},$=function(t,e){return D.w(h.toDate()[t].apply(h.toDate(\"s\"),(f?[0,0,0,0]:[23,59,59,999]).slice(e)),h)},l=this.$W,m=this.$M,y=this.$D,M=\"set\"+(this.$u?\"UTC\":\"\");switch(c){case a:return f?d(1,0):d(31,11);case u:return f?d(1,m):d(0,m+1);case s:var g=this.$locale().weekStart||0,v=(l<g?l+7:l)-g;return d(f?y-v:y+(6-v),m);case i:case\"date\":return $(M+\"Hours\",0);case r:return $(M+\"Minutes\",1);case n:return $(M+\"Seconds\",2);case e:return $(M+\"Milliseconds\",3);default:return this.clone()}},d.endOf=function(t){return this.startOf(t,!1)},d.$set=function(s,o){var h,f=D.p(s),c=\"set\"+(this.$u?\"UTC\":\"\"),d=(h={},h[i]=c+\"Date\",h.date=c+\"Date\",h[u]=c+\"Month\",h[a]=c+\"FullYear\",h[r]=c+\"Hours\",h[n]=c+\"Minutes\",h[e]=c+\"Seconds\",h[t]=c+\"Milliseconds\",h)[f],$=f===i?this.$D+(o-this.$W):o;if(f===u||f===a){var l=this.clone().set(\"date\",1);l.$d[d]($),l.init(),this.$d=l.set(\"date\",Math.min(this.$D,l.daysInMonth())).toDate()}else d&&this.$d[d]($);return this.init(),this},d.set=function(t,e){return this.clone().$set(t,e)},d.get=function(t){return this[D.p(t)]()},d.add=function(t,o){var h,f=this;t=Number(t);var c=D.p(o),d=function(e){var n=g(f);return D.w(n.date(n.date()+Math.round(e*t)),f)};if(c===u)return this.set(u,this.$M+t);if(c===a)return this.set(a,this.$y+t);if(c===i)return d(1);if(c===s)return d(7);var $=(h={},h[n]=6e4,h[r]=36e5,h[e]=1e3,h)[c]||1,l=this.$d.getTime()+t*$;return D.w(l,this)},d.subtract=function(t,e){return this.add(-1*t,e)},d.format=function(t){var e=this;if(!this.isValid())return\"Invalid Date\";var n=t||\"YYYY-MM-DDTHH:mm:ssZ\",r=D.z(this),i=this.$locale(),s=this.$H,u=this.$m,o=this.$M,a=i.weekdays,h=i.months,c=function(t,r,i,s){return t&&(t[r]||t(e,n))||i[r].substr(0,s)},d=function(t){return D.s(s%12||12,t,\"0\")},$=i.meridiem||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r},l={YY:String(this.$y).slice(-2),YYYY:this.$y,M:o+1,MM:D.s(o+1,2,\"0\"),MMM:c(i.monthsShort,o,h,3),MMMM:c(h,o),D:this.$D,DD:D.s(this.$D,2,\"0\"),d:String(this.$W),dd:c(i.weekdaysMin,this.$W,a,2),ddd:c(i.weekdaysShort,this.$W,a,3),dddd:a[this.$W],H:String(s),HH:D.s(s,2,\"0\"),h:d(1),hh:d(2),a:$(s,u,!0),A:$(s,u,!1),m:String(u),mm:D.s(u,2,\"0\"),s:String(this.$s),ss:D.s(this.$s,2,\"0\"),SSS:D.s(this.$ms,3,\"0\"),Z:r};return n.replace(f,function(t,e){return e||l[t]||r.replace(\":\",\"\")})},d.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},d.diff=function(t,h,f){var c,d=D.p(h),$=g(t),l=6e4*($.utcOffset()-this.utcOffset()),m=this-$,y=D.m(this,$);return y=(c={},c[a]=y/12,c[u]=y,c[o]=y/3,c[s]=(m-l)/6048e5,c[i]=(m-l)/864e5,c[r]=m/36e5,c[n]=m/6e4,c[e]=m/1e3,c)[d]||m,f?y:D.a(y)},d.daysInMonth=function(){return this.endOf(u).$D},d.$locale=function(){return m[this.$L]},d.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=M(t,e,!0);return r&&(n.$L=r),n},d.clone=function(){return D.w(this.$d,this)},d.toDate=function(){return new Date(this.valueOf())},d.toJSON=function(){return this.isValid()?this.toISOString():null},d.toISOString=function(){return this.$d.toISOString()},d.toString=function(){return this.$d.toUTCString()},c}();return g.prototype=v.prototype,g.extend=function(t,e){return t(e,v,g),g},g.locale=M,g.isDayjs=y,g.unix=function(t){return g(1e3*t)},g.en=m[l],g.Ls=m,g});\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","/*!\n\n diff v4.0.1\n\nSoftware License Agreement (BSD License)\n\nCopyright (c) 2009-2015, Kevin Decker <kpdecker@gmail.com>\n\nAll rights reserved.\n\nRedistribution and use of this software in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above\n copyright notice, this list of conditions and the\n following disclaimer.\n\n* Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the\n following disclaimer in the documentation and/or other\n materials provided with the distribution.\n\n* Neither the name of Kevin Decker nor the names of its\n contributors may be used to endorse or promote products\n derived from this software without specific prior\n written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\nIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\nOF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n@license\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.Diff = {}));\n}(this, function (exports) { 'use strict';\n\n function Diff() {}\n Diff.prototype = {\n diff: function diff(oldString, newString) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = options.callback;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = options;\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n } // Allow subclasses to massage the input prior to running\n\n\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{\n value: this.join(newString),\n count: newString.length\n }]);\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath = void 0;\n\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced.\n\n\n if (callback) {\n (function exec() {\n setTimeout(function () {\n // This should not happen, but we want to be safe.\n\n /* istanbul ignore next */\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n }\n },\n pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n equals: function equals(left, right) {\n if (this.options.comparator) {\n return this.options.comparator(left, right);\n } else {\n return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n removeEmpty: function removeEmpty(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n\n return ret;\n },\n castInput: function castInput(value) {\n return value;\n },\n tokenize: function tokenize(value) {\n return value.split('');\n },\n join: function join(chars) {\n return chars.join('');\n }\n };\n\n function buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = diff.join(value);\n } else {\n component.value = diff.join(newString.slice(newPos, newPos + component.count));\n }\n\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n } // Special case handle for when one terminal is ignored (i.e. whitespace).\n // For this case we merge the terminal into the prior string and drop the change.\n // This is only available for string mode.\n\n\n var lastComponent = components[componentLen - 1];\n\n if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n }\n\n function clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n }\n\n var characterDiff = new Diff();\n function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n }\n\n function generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n\n return defaults;\n }\n\n //\n // Ranges and exceptions:\n // Latin-1 Supplement, 0080–00FF\n // - U+00D7 × Multiplication sign\n // - U+00F7 ÷ Division sign\n // Latin Extended-A, 0100–017F\n // Latin Extended-B, 0180–024F\n // IPA Extensions, 0250–02AF\n // Spacing Modifier Letters, 02B0–02FF\n // - U+02C7 ˇ ˇ Caron\n // - U+02D8 ˘ ˘ Breve\n // - U+02D9 ˙ ˙ Dot Above\n // - U+02DA ˚ ˚ Ring Above\n // - U+02DB ˛ ˛ Ogonek\n // - U+02DC ˜ ˜ Small Tilde\n // - U+02DD ˝ ˝ Double Acute Accent\n // Latin Extended Additional, 1E00–1EFF\n\n var extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\n var reWhitespace = /\\S/;\n var wordDiff = new Diff();\n\n wordDiff.equals = function (left, right) {\n if (this.options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n };\n\n wordDiff.tokenize = function (value) {\n var tokens = value.split(/(\\s+|[()[\\]{}'\"]|\\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n };\n\n function diffWords(oldStr, newStr, options) {\n options = generateOptions(options, {\n ignoreWhitespace: true\n });\n return wordDiff.diff(oldStr, newStr, options);\n }\n function diffWordsWithSpace(oldStr, newStr, options) {\n return wordDiff.diff(oldStr, newStr, options);\n }\n\n var lineDiff = new Diff();\n\n lineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/); // Ignore the final empty token that occurs if the string ends with a new line\n\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n } // Merge the content and line separators into single tokens\n\n\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n\n retLines.push(line);\n }\n }\n\n return retLines;\n };\n\n function diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n }\n function diffTrimmedLines(oldStr, newStr, callback) {\n var options = generateOptions(callback, {\n ignoreWhitespace: true\n });\n return lineDiff.diff(oldStr, newStr, options);\n }\n\n var sentenceDiff = new Diff();\n\n sentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n };\n\n function diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n }\n\n var cssDiff = new Diff();\n\n cssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n };\n\n function diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n }\n\n function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }\n\n var objectPrototypeToString = Object.prototype.toString;\n var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n\n jsonDiff.useLongestToken = true;\n jsonDiff.tokenize = lineDiff.tokenize;\n\n jsonDiff.castInput = function (value) {\n var _this$options = this.options,\n undefinedReplacement = _this$options.undefinedReplacement,\n _this$options$stringi = _this$options.stringifyReplacer,\n stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {\n return typeof v === 'undefined' ? undefinedReplacement : v;\n } : _this$options$stringi;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');\n };\n\n jsonDiff.equals = function (left, right) {\n return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'));\n };\n\n function diffJson(oldObj, newObj, options) {\n return jsonDiff.diff(oldObj, newObj, options);\n } // This function handles the presence of circular references by bailing out when encountering an\n // object that is already on the \"stack\" of items being processed. Accepts an optional replacer\n\n function canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n if (replacer) {\n obj = replacer(key, obj);\n }\n\n var i;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n }\n\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if (_typeof(obj) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n\n var sortedKeys = [],\n _key;\n\n for (_key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(_key)) {\n sortedKeys.push(_key);\n }\n }\n\n sortedKeys.sort();\n\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);\n }\n\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n\n return canonicalizedObj;\n }\n\n var arrayDiff = new Diff();\n\n arrayDiff.tokenize = function (value) {\n return value.slice();\n };\n\n arrayDiff.join = arrayDiff.removeEmpty = function (value) {\n return value;\n };\n\n function diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n }\n\n function parsePatch(uniDiff) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var diffstr = uniDiff.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = uniDiff.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index); // Parse diff metadata\n\n while (i < diffstr.length) {\n var line = diffstr[i]; // File header found, end parsing diff metadata\n\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n } // Diff index\n\n\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n\n if (header) {\n index.index = header[1];\n }\n\n i++;\n } // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n\n\n parseFileHeader(index);\n parseFileHeader(index); // Parse hunks\n\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n } // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n\n\n function parseFileHeader(index) {\n var fileHeader = /^(---|\\+\\+\\+)\\s+(.*)$/.exec(diffstr[i]);\n\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n var data = fileHeader[2].split('\\t', 2);\n var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n\n if (/^\".*\"$/.test(fileName)) {\n fileName = fileName.substr(1, fileName.length - 2);\n }\n\n index[keyPrefix + 'FileName'] = fileName;\n index[keyPrefix + 'Header'] = (data[1] || '').trim();\n i++;\n }\n } // Parses a hunk\n // This assumes that we are at the start of a hunk.\n\n\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: +chunkHeader[2] || 1,\n newStart: +chunkHeader[3],\n newLines: +chunkHeader[4] || 1,\n lines: [],\n linedelimiters: []\n };\n var addCount = 0,\n removeCount = 0;\n\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n\n var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n hunk.linedelimiters.push(delimiters[i] || '\\n');\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n } // Handle the empty block count case\n\n\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n } // Perform optional sanity checking\n\n\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n }\n\n // Iterator that traverses in the range of [min, max], stepping\n // by distance from a given start position. I.e. for [0, 4], with\n // start of 2, this will iterate 2, 3, 1, 4, 0.\n function distanceIterator (start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n } // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n\n\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n } // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n\n\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n } // We tried to fit hunk before text beginning and beyond text length, then\n // hunk can't fit on the text. Return undefined\n\n };\n }\n\n function applyPatch(source, uniDiff) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n } // Apply the diff to the input\n\n\n var lines = source.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = source.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {\n return line === patchContent;\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL,\n addEOFNL;\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n\n\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line;\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n\n toPos++;\n }\n }\n\n return true;\n } // Search best fit offsets for each hunk based on the previous ones\n\n\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n var iterator = distanceIterator(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n } // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n\n\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n } // Apply patch hunks\n\n\n var diffOffset = 0;\n\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;\n\n diffOffset += _hunk.newLines - _hunk.oldLines;\n\n if (_toPos < 0) {\n // Creating a new file\n _toPos = 0;\n }\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line,\n delimiter = _hunk.linedelimiters[j];\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n delimiters.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n delimiters.splice(_toPos, 0, delimiter);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n } // Handle EOFNL insertion/removal\n\n\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n delimiters.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n delimiters.push('\\n');\n }\n\n for (var _k = 0; _k < lines.length - 1; _k++) {\n lines[_k] = lines[_k] + delimiters[_k];\n }\n\n return lines.join('');\n } // Wrapper that supports multiple file patches via callbacks.\n\n function applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n var currentIndex = 0;\n\n function processIndex() {\n var index = uniDiff[currentIndex++];\n\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n\n processIndex();\n }\n\n function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.context === 'undefined') {\n options.context = 4;\n }\n\n var diff = diffLines(oldStr, newStr, options);\n diff.push({\n value: '',\n lines: []\n }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n\n var _loop = function _loop(i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n var _curRange;\n\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n } // Output our changes\n\n\n (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n }))); // Track the updated file position\n\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n var _curRange2;\n\n // Overlapping\n (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));\n } else {\n var _curRange3;\n\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n\n (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;\n\n if (!oldEOFNewline && noNlBeforeAdds) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n }\n\n if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n _loop(i);\n }\n\n return {\n oldFileName: oldFileName,\n newFileName: newFileName,\n oldHeader: oldHeader,\n newHeader: newHeader,\n hunks: hunks\n };\n }\n function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n var ret = [];\n\n if (oldFileName == newFileName) {\n ret.push('Index: ' + oldFileName);\n }\n\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i];\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n }\n function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n }\n\n function arrayEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n return arrayStartsWith(a, b);\n }\n function arrayStartsWith(array, start) {\n if (start.length > array.length) {\n return false;\n }\n\n for (var i = 0; i < start.length; i++) {\n if (start[i] !== array[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function calcLineCount(hunk) {\n var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),\n oldLines = _calcOldNewLineCount.oldLines,\n newLines = _calcOldNewLineCount.newLines;\n\n if (oldLines !== undefined) {\n hunk.oldLines = oldLines;\n } else {\n delete hunk.oldLines;\n }\n\n if (newLines !== undefined) {\n hunk.newLines = newLines;\n } else {\n delete hunk.newLines;\n }\n }\n function merge(mine, theirs, base) {\n mine = loadPatch(mine, base);\n theirs = loadPatch(theirs, base);\n var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.\n // Leaving sanity checks on this to the API consumer that may know more about the\n // meaning in their own context.\n\n if (mine.index || theirs.index) {\n ret.index = mine.index || theirs.index;\n }\n\n if (mine.newFileName || theirs.newFileName) {\n if (!fileNameChanged(mine)) {\n // No header or no change in ours, use theirs (and ours if theirs does not exist)\n ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n ret.newFileName = theirs.newFileName || mine.newFileName;\n ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n ret.newHeader = theirs.newHeader || mine.newHeader;\n } else if (!fileNameChanged(theirs)) {\n // No header or no change in theirs, use ours\n ret.oldFileName = mine.oldFileName;\n ret.newFileName = mine.newFileName;\n ret.oldHeader = mine.oldHeader;\n ret.newHeader = mine.newHeader;\n } else {\n // Both changed... figure it out\n ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n }\n }\n\n ret.hunks = [];\n var mineIndex = 0,\n theirsIndex = 0,\n mineOffset = 0,\n theirsOffset = 0;\n\n while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n var mineCurrent = mine.hunks[mineIndex] || {\n oldStart: Infinity\n },\n theirsCurrent = theirs.hunks[theirsIndex] || {\n oldStart: Infinity\n };\n\n if (hunkBefore(mineCurrent, theirsCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n mineIndex++;\n theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n theirsIndex++;\n mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n } else {\n // Overlap, merge as best we can\n var mergedHunk = {\n oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n oldLines: 0,\n newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n newLines: 0,\n lines: []\n };\n mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n theirsIndex++;\n mineIndex++;\n ret.hunks.push(mergedHunk);\n }\n }\n\n return ret;\n }\n\n function loadPatch(param, base) {\n if (typeof param === 'string') {\n if (/^@@/m.test(param) || /^Index:/m.test(param)) {\n return parsePatch(param)[0];\n }\n\n if (!base) {\n throw new Error('Must provide a base reference or pass in a patch');\n }\n\n return structuredPatch(undefined, undefined, base, param);\n }\n\n return param;\n }\n\n function fileNameChanged(patch) {\n return patch.newFileName && patch.newFileName !== patch.oldFileName;\n }\n\n function selectField(index, mine, theirs) {\n if (mine === theirs) {\n return mine;\n } else {\n index.conflict = true;\n return {\n mine: mine,\n theirs: theirs\n };\n }\n }\n\n function hunkBefore(test, check) {\n return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;\n }\n\n function cloneHunk(hunk, offset) {\n return {\n oldStart: hunk.oldStart,\n oldLines: hunk.oldLines,\n newStart: hunk.newStart + offset,\n newLines: hunk.newLines,\n lines: hunk.lines\n };\n }\n\n function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n // This will generally result in a conflicted hunk, but there are cases where the context\n // is the only overlap where we can successfully merge the content here.\n var mine = {\n offset: mineOffset,\n lines: mineLines,\n index: 0\n },\n their = {\n offset: theirOffset,\n lines: theirLines,\n index: 0\n }; // Handle any leading content\n\n insertLeading(hunk, mine, their);\n insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.\n\n while (mine.index < mine.lines.length && their.index < their.lines.length) {\n var mineCurrent = mine.lines[mine.index],\n theirCurrent = their.lines[their.index];\n\n if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n // Both modified ...\n mutualChange(hunk, mine, their);\n } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n var _hunk$lines;\n\n // Mine inserted\n (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));\n } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n var _hunk$lines2;\n\n // Theirs inserted\n (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));\n } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n // Mine removed or edited\n removal(hunk, mine, their);\n } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n // Their removed or edited\n removal(hunk, their, mine, true);\n } else if (mineCurrent === theirCurrent) {\n // Context identity\n hunk.lines.push(mineCurrent);\n mine.index++;\n their.index++;\n } else {\n // Context mismatch\n conflict(hunk, collectChange(mine), collectChange(their));\n }\n } // Now push anything that may be remaining\n\n\n insertTrailing(hunk, mine);\n insertTrailing(hunk, their);\n calcLineCount(hunk);\n }\n\n function mutualChange(hunk, mine, their) {\n var myChanges = collectChange(mine),\n theirChanges = collectChange(their);\n\n if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n // Special case for remove changes that are supersets of one another\n if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n var _hunk$lines3;\n\n (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));\n\n return;\n } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n var _hunk$lines4;\n\n (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));\n\n return;\n }\n } else if (arrayEqual(myChanges, theirChanges)) {\n var _hunk$lines5;\n\n (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));\n\n return;\n }\n\n conflict(hunk, myChanges, theirChanges);\n }\n\n function removal(hunk, mine, their, swap) {\n var myChanges = collectChange(mine),\n theirChanges = collectContext(their, myChanges);\n\n if (theirChanges.merged) {\n var _hunk$lines6;\n\n (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));\n } else {\n conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n }\n }\n\n function conflict(hunk, mine, their) {\n hunk.conflict = true;\n hunk.lines.push({\n conflict: true,\n mine: mine,\n theirs: their\n });\n }\n\n function insertLeading(hunk, insert, their) {\n while (insert.offset < their.offset && insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n insert.offset++;\n }\n }\n\n function insertTrailing(hunk, insert) {\n while (insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n }\n }\n\n function collectChange(state) {\n var ret = [],\n operation = state.lines[state.index][0];\n\n while (state.index < state.lines.length) {\n var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n\n if (operation === '-' && line[0] === '+') {\n operation = '+';\n }\n\n if (operation === line[0]) {\n ret.push(line);\n state.index++;\n } else {\n break;\n }\n }\n\n return ret;\n }\n\n function collectContext(state, matchChanges) {\n var changes = [],\n merged = [],\n matchIndex = 0,\n contextChanges = false,\n conflicted = false;\n\n while (matchIndex < matchChanges.length && state.index < state.lines.length) {\n var change = state.lines[state.index],\n match = matchChanges[matchIndex]; // Once we've hit our add, then we are done\n\n if (match[0] === '+') {\n break;\n }\n\n contextChanges = contextChanges || change[0] !== ' ';\n merged.push(match);\n matchIndex++; // Consume any additions in the other block as a conflict to attempt\n // to pull in the remaining context after this\n\n if (change[0] === '+') {\n conflicted = true;\n\n while (change[0] === '+') {\n changes.push(change);\n change = state.lines[++state.index];\n }\n }\n\n if (match.substr(1) === change.substr(1)) {\n changes.push(change);\n state.index++;\n } else {\n conflicted = true;\n }\n }\n\n if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {\n conflicted = true;\n }\n\n if (conflicted) {\n return changes;\n }\n\n while (matchIndex < matchChanges.length) {\n merged.push(matchChanges[matchIndex++]);\n }\n\n return {\n merged: merged,\n changes: changes\n };\n }\n\n function allRemoves(changes) {\n return changes.reduce(function (prev, change) {\n return prev && change[0] === '-';\n }, true);\n }\n\n function skipRemoveSuperset(state, removeChanges, delta) {\n for (var i = 0; i < delta; i++) {\n var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n\n if (state.lines[state.index + i] !== ' ' + changeContent) {\n return false;\n }\n }\n\n state.index += delta;\n return true;\n }\n\n function calcOldNewLineCount(lines) {\n var oldLines = 0;\n var newLines = 0;\n lines.forEach(function (line) {\n if (typeof line !== 'string') {\n var myCount = calcOldNewLineCount(line.mine);\n var theirCount = calcOldNewLineCount(line.theirs);\n\n if (oldLines !== undefined) {\n if (myCount.oldLines === theirCount.oldLines) {\n oldLines += myCount.oldLines;\n } else {\n oldLines = undefined;\n }\n }\n\n if (newLines !== undefined) {\n if (myCount.newLines === theirCount.newLines) {\n newLines += myCount.newLines;\n } else {\n newLines = undefined;\n }\n }\n } else {\n if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n newLines++;\n }\n\n if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n oldLines++;\n }\n }\n });\n return {\n oldLines: oldLines,\n newLines: newLines\n };\n }\n\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\n function convertChangesToDMP(changes) {\n var ret = [],\n change,\n operation;\n\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n\n return ret;\n }\n\n function convertChangesToXML(changes) {\n var ret = [];\n\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n\n if (change.added) {\n ret.push('<ins>');\n } else if (change.removed) {\n ret.push('<del>');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('</ins>');\n } else if (change.removed) {\n ret.push('</del>');\n }\n }\n\n return ret.join('');\n }\n\n function escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&');\n n = n.replace(/</g, '<');\n n = n.replace(/>/g, '>');\n n = n.replace(/\"/g, '"');\n return n;\n }\n\n /* See LICENSE file for terms of use */\n\n exports.Diff = Diff;\n exports.diffChars = diffChars;\n exports.diffWords = diffWords;\n exports.diffWordsWithSpace = diffWordsWithSpace;\n exports.diffLines = diffLines;\n exports.diffTrimmedLines = diffTrimmedLines;\n exports.diffSentences = diffSentences;\n exports.diffCss = diffCss;\n exports.diffJson = diffJson;\n exports.diffArrays = diffArrays;\n exports.structuredPatch = structuredPatch;\n exports.createTwoFilesPatch = createTwoFilesPatch;\n exports.createPatch = createPatch;\n exports.applyPatch = applyPatch;\n exports.applyPatches = applyPatches;\n exports.parsePatch = parsePatch;\n exports.merge = merge;\n exports.convertChangesToDMP = convertChangesToDMP;\n exports.convertChangesToXML = convertChangesToXML;\n exports.canonicalize = canonicalize;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = void 0;\nvar types_1 = require(\"./types\");\nvar utils_1 = require(\"./utils\");\nfunction getExtension(filename, language) {\n var filenameParts = filename.split('.');\n return filenameParts.length > 1 ? filenameParts[filenameParts.length - 1] : language;\n}\nfunction startsWithAny(str, prefixes) {\n return prefixes.reduce(function (startsWith, prefix) { return startsWith || str.startsWith(prefix); }, false);\n}\nvar baseDiffFilenamePrefixes = ['a/', 'b/', 'i/', 'w/', 'c/', 'o/'];\nfunction getFilename(line, linePrefix, extraPrefix) {\n var prefixes = extraPrefix !== undefined ? __spreadArray(__spreadArray([], baseDiffFilenamePrefixes, true), [extraPrefix], false) : baseDiffFilenamePrefixes;\n var FilenameRegExp = linePrefix\n ? new RegExp(\"^\".concat((0, utils_1.escapeForRegExp)(linePrefix), \" \\\"?(.+?)\\\"?$\"))\n : new RegExp('^\"?(.+?)\"?$');\n var _a = FilenameRegExp.exec(line) || [], _b = _a[1], filename = _b === void 0 ? '' : _b;\n var matchingPrefix = prefixes.find(function (p) { return filename.indexOf(p) === 0; });\n var fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename;\n return fnameWithoutPrefix.replace(/\\s+\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)? [+-]\\d{4}.*$/, '');\n}\nfunction getSrcFilename(line, srcPrefix) {\n return getFilename(line, '---', srcPrefix);\n}\nfunction getDstFilename(line, dstPrefix) {\n return getFilename(line, '+++', dstPrefix);\n}\nfunction parse(diffInput, config) {\n if (config === void 0) { config = {}; }\n var files = [];\n var currentFile = null;\n var currentBlock = null;\n var oldLine = null;\n var oldLine2 = null;\n var newLine = null;\n var possibleOldName = null;\n var possibleNewName = null;\n var oldFileNameHeader = '--- ';\n var newFileNameHeader = '+++ ';\n var hunkHeaderPrefix = '@@';\n var oldMode = /^old mode (\\d{6})/;\n var newMode = /^new mode (\\d{6})/;\n var deletedFileMode = /^deleted file mode (\\d{6})/;\n var newFileMode = /^new file mode (\\d{6})/;\n var copyFrom = /^copy from \"?(.+)\"?/;\n var copyTo = /^copy to \"?(.+)\"?/;\n var renameFrom = /^rename from \"?(.+)\"?/;\n var renameTo = /^rename to \"?(.+)\"?/;\n var similarityIndex = /^similarity index (\\d+)%/;\n var dissimilarityIndex = /^dissimilarity index (\\d+)%/;\n var index = /^index ([\\da-z]+)\\.\\.([\\da-z]+)\\s*(\\d{6})?/;\n var binaryFiles = /^Binary files (.*) and (.*) differ/;\n var binaryDiff = /^GIT binary patch/;\n var combinedIndex = /^index ([\\da-z]+),([\\da-z]+)\\.\\.([\\da-z]+)/;\n var combinedMode = /^mode (\\d{6}),(\\d{6})\\.\\.(\\d{6})/;\n var combinedNewFile = /^new file mode (\\d{6})/;\n var combinedDeletedFile = /^deleted file mode (\\d{6}),(\\d{6})/;\n var diffLines = diffInput\n .replace(/\\\\ No newline at end of file/g, '')\n .replace(/\\r\\n?/g, '\\n')\n .split('\\n');\n function saveBlock() {\n if (currentBlock !== null && currentFile !== null) {\n currentFile.blocks.push(currentBlock);\n currentBlock = null;\n }\n }\n function saveFile() {\n if (currentFile !== null) {\n if (!currentFile.oldName && possibleOldName !== null) {\n currentFile.oldName = possibleOldName;\n }\n if (!currentFile.newName && possibleNewName !== null) {\n currentFile.newName = possibleNewName;\n }\n if (currentFile.newName) {\n files.push(currentFile);\n currentFile = null;\n }\n }\n possibleOldName = null;\n possibleNewName = null;\n }\n function startFile() {\n saveBlock();\n saveFile();\n currentFile = {\n blocks: [],\n deletedLines: 0,\n addedLines: 0,\n };\n }\n function startBlock(line) {\n saveBlock();\n var values;\n if (currentFile !== null) {\n if ((values = /^@@ -(\\d+)(?:,\\d+)? \\+(\\d+)(?:,\\d+)? @@.*/.exec(line))) {\n currentFile.isCombined = false;\n oldLine = parseInt(values[1], 10);\n newLine = parseInt(values[2], 10);\n }\n else if ((values = /^@@@ -(\\d+)(?:,\\d+)? -(\\d+)(?:,\\d+)? \\+(\\d+)(?:,\\d+)? @@@.*/.exec(line))) {\n currentFile.isCombined = true;\n oldLine = parseInt(values[1], 10);\n oldLine2 = parseInt(values[2], 10);\n newLine = parseInt(values[3], 10);\n }\n else {\n if (line.startsWith(hunkHeaderPrefix)) {\n console.error('Failed to parse lines, starting in 0!');\n }\n oldLine = 0;\n newLine = 0;\n currentFile.isCombined = false;\n }\n }\n currentBlock = {\n lines: [],\n oldStartLine: oldLine,\n oldStartLine2: oldLine2,\n newStartLine: newLine,\n header: line,\n };\n }\n function createLine(line) {\n if (currentFile === null || currentBlock === null || oldLine === null || newLine === null)\n return;\n var currentLine = {\n content: line,\n };\n var addedPrefixes = currentFile.isCombined ? ['+ ', ' +', '++'] : ['+'];\n var deletedPrefixes = currentFile.isCombined ? ['- ', ' -', '--'] : ['-'];\n if (startsWithAny(line, addedPrefixes)) {\n currentFile.addedLines++;\n currentLine.type = types_1.LineType.INSERT;\n currentLine.oldNumber = undefined;\n currentLine.newNumber = newLine++;\n }\n else if (startsWithAny(line, deletedPrefixes)) {\n currentFile.deletedLines++;\n currentLine.type = types_1.LineType.DELETE;\n currentLine.oldNumber = oldLine++;\n currentLine.newNumber = undefined;\n }\n else {\n currentLine.type = types_1.LineType.CONTEXT;\n currentLine.oldNumber = oldLine++;\n currentLine.newNumber = newLine++;\n }\n currentBlock.lines.push(currentLine);\n }\n function existHunkHeader(line, lineIdx) {\n var idx = lineIdx;\n while (idx < diffLines.length - 3) {\n if (line.startsWith('diff')) {\n return false;\n }\n if (diffLines[idx].startsWith(oldFileNameHeader) &&\n diffLines[idx + 1].startsWith(newFileNameHeader) &&\n diffLines[idx + 2].startsWith(hunkHeaderPrefix)) {\n return true;\n }\n idx++;\n }\n return false;\n }\n diffLines.forEach(function (line, lineIndex) {\n if (!line || line.startsWith('*')) {\n return;\n }\n var values;\n var prevLine = diffLines[lineIndex - 1];\n var nxtLine = diffLines[lineIndex + 1];\n var afterNxtLine = diffLines[lineIndex + 2];\n if (line.startsWith('diff')) {\n startFile();\n var gitDiffStart = /^diff --git \"?([a-ciow]\\/.+)\"? \"?([a-ciow]\\/.+)\"?/;\n if ((values = gitDiffStart.exec(line))) {\n possibleOldName = getFilename(values[1], undefined, config.dstPrefix);\n possibleNewName = getFilename(values[2], undefined, config.srcPrefix);\n }\n if (currentFile === null) {\n throw new Error('Where is my file !!!');\n }\n currentFile.isGitDiff = true;\n return;\n }\n if (!currentFile ||\n (!currentFile.isGitDiff &&\n currentFile &&\n line.startsWith(oldFileNameHeader) &&\n nxtLine.startsWith(newFileNameHeader) &&\n afterNxtLine.startsWith(hunkHeaderPrefix))) {\n startFile();\n }\n if (currentFile === null || currentFile === void 0 ? void 0 : currentFile.isTooBig) {\n return;\n }\n if (currentFile &&\n ((typeof config.diffMaxChanges === 'number' &&\n currentFile.addedLines + currentFile.deletedLines > config.diffMaxChanges) ||\n (typeof config.diffMaxLineLength === 'number' && line.length > config.diffMaxLineLength))) {\n currentFile.isTooBig = true;\n currentFile.addedLines = 0;\n currentFile.deletedLines = 0;\n currentFile.blocks = [];\n currentBlock = null;\n var message = typeof config.diffTooBigMessage === 'function'\n ? config.diffTooBigMessage(files.length)\n : 'Diff too big to be displayed';\n startBlock(message);\n return;\n }\n if ((line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader)) ||\n (line.startsWith(newFileNameHeader) && prevLine.startsWith(oldFileNameHeader))) {\n if (currentFile &&\n !currentFile.oldName &&\n line.startsWith('--- ') &&\n (values = getSrcFilename(line, config.srcPrefix))) {\n currentFile.oldName = values;\n currentFile.language = getExtension(currentFile.oldName, currentFile.language);\n return;\n }\n if (currentFile &&\n !currentFile.newName &&\n line.startsWith('+++ ') &&\n (values = getDstFilename(line, config.dstPrefix))) {\n currentFile.newName = values;\n currentFile.language = getExtension(currentFile.newName, currentFile.language);\n return;\n }\n }\n if (currentFile &&\n (line.startsWith(hunkHeaderPrefix) ||\n (currentFile.isGitDiff && currentFile.oldName && currentFile.newName && !currentBlock))) {\n startBlock(line);\n return;\n }\n if (currentBlock && (line.startsWith('+') || line.startsWith('-') || line.startsWith(' '))) {\n createLine(line);\n return;\n }\n var doesNotExistHunkHeader = !existHunkHeader(line, lineIndex);\n if (currentFile === null) {\n throw new Error('Where is my file !!!');\n }\n if ((values = oldMode.exec(line))) {\n currentFile.oldMode = values[1];\n }\n else if ((values = newMode.exec(line))) {\n currentFile.newMode = values[1];\n }\n else if ((values = deletedFileMode.exec(line))) {\n currentFile.deletedFileMode = values[1];\n currentFile.isDeleted = true;\n }\n else if ((values = newFileMode.exec(line))) {\n currentFile.newFileMode = values[1];\n currentFile.isNew = true;\n }\n else if ((values = copyFrom.exec(line))) {\n if (doesNotExistHunkHeader) {\n currentFile.oldName = values[1];\n }\n currentFile.isCopy = true;\n }\n else if ((values = copyTo.exec(line))) {\n if (doesNotExistHunkHeader) {\n currentFile.newName = values[1];\n }\n currentFile.isCopy = true;\n }\n else if ((values = renameFrom.exec(line))) {\n if (doesNotExistHunkHeader) {\n currentFile.oldName = values[1];\n }\n currentFile.isRename = true;\n }\n else if ((values = renameTo.exec(line))) {\n if (doesNotExistHunkHeader) {\n currentFile.newName = values[1];\n }\n currentFile.isRename = true;\n }\n else if ((values = binaryFiles.exec(line))) {\n currentFile.isBinary = true;\n currentFile.oldName = getFilename(values[1], undefined, config.srcPrefix);\n currentFile.newName = getFilename(values[2], undefined, config.dstPrefix);\n startBlock('Binary file');\n }\n else if (binaryDiff.test(line)) {\n currentFile.isBinary = true;\n startBlock(line);\n }\n else if ((values = similarityIndex.exec(line))) {\n currentFile.unchangedPercentage = parseInt(values[1], 10);\n }\n else if ((values = dissimilarityIndex.exec(line))) {\n currentFile.changedPercentage = parseInt(values[1], 10);\n }\n else if ((values = index.exec(line))) {\n currentFile.checksumBefore = values[1];\n currentFile.checksumAfter = values[2];\n values[3] && (currentFile.mode = values[3]);\n }\n else if ((values = combinedIndex.exec(line))) {\n currentFile.checksumBefore = [values[2], values[3]];\n currentFile.checksumAfter = values[1];\n }\n else if ((values = combinedMode.exec(line))) {\n currentFile.oldMode = [values[2], values[3]];\n currentFile.newMode = values[1];\n }\n else if ((values = combinedNewFile.exec(line))) {\n currentFile.newFileMode = values[1];\n currentFile.isNew = true;\n }\n else if ((values = combinedDeletedFile.exec(line))) {\n currentFile.deletedFileMode = values[1];\n currentFile.isDeleted = true;\n }\n });\n saveBlock();\n saveFile();\n return files;\n}\nexports.parse = parse;\n//# sourceMappingURL=diff-parser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultTemplates = void 0;\nvar Hogan = __importStar(require(\"hogan.js\"));\nexports.defaultTemplates = {};\nexports.defaultTemplates[\"file-summary-line\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<li class=\\\"d2h-file-list-line\\\">\"); t.b(\"\\n\" + i); t.b(\" <span class=\\\"d2h-file-name-wrapper\\\">\"); t.b(\"\\n\" + i); t.b(t.rp(\"<fileIcon0\", c, p, \" \")); t.b(\" <a href=\\\"#\"); t.b(t.v(t.f(\"fileHtmlId\", c, p, 0))); t.b(\"\\\" class=\\\"d2h-file-name\\\">\"); t.b(t.v(t.f(\"fileName\", c, p, 0))); t.b(\"</a>\"); t.b(\"\\n\" + i); t.b(\" <span class=\\\"d2h-file-stats\\\">\"); t.b(\"\\n\" + i); t.b(\" <span class=\\\"d2h-lines-added\\\">\"); t.b(t.v(t.f(\"addedLines\", c, p, 0))); t.b(\"</span>\"); t.b(\"\\n\" + i); t.b(\" <span class=\\\"d2h-lines-deleted\\\">\"); t.b(t.v(t.f(\"deletedLines\", c, p, 0))); t.b(\"</span>\"); t.b(\"\\n\" + i); t.b(\" </span>\"); t.b(\"\\n\" + i); t.b(\" </span>\"); t.b(\"\\n\" + i); t.b(\"</li>\"); return t.fl(); }, partials: { \"<fileIcon0\": { name: \"fileIcon\", partials: {}, subs: {} } }, subs: {} });\nexports.defaultTemplates[\"file-summary-wrapper\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<div class=\\\"d2h-file-list-wrapper\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-file-list-header\\\">\"); t.b(\"\\n\" + i); t.b(\" <span class=\\\"d2h-file-list-title\\\">Files changed (\"); t.b(t.v(t.f(\"filesNumber\", c, p, 0))); t.b(\")</span>\"); t.b(\"\\n\" + i); t.b(\" <a class=\\\"d2h-file-switch d2h-hide\\\">hide</a>\"); t.b(\"\\n\" + i); t.b(\" <a class=\\\"d2h-file-switch d2h-show\\\">show</a>\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" <ol class=\\\"d2h-file-list\\\">\"); t.b(\"\\n\" + i); t.b(\" \"); t.b(t.t(t.f(\"files\", c, p, 0))); t.b(\"\\n\" + i); t.b(\" </ol>\"); t.b(\"\\n\" + i); t.b(\"</div>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"generic-block-header\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<tr>\"); t.b(\"\\n\" + i); t.b(\" <td class=\\\"\"); t.b(t.v(t.f(\"lineClass\", c, p, 0))); t.b(\" \"); t.b(t.v(t.d(\"CSSLineClass.INFO\", c, p, 0))); t.b(\"\\\"></td>\"); t.b(\"\\n\" + i); t.b(\" <td class=\\\"\"); t.b(t.v(t.d(\"CSSLineClass.INFO\", c, p, 0))); t.b(\"\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"\"); t.b(t.v(t.f(\"contentClass\", c, p, 0))); t.b(\"\\\">\"); t.b(t.t(t.f(\"blockHeader\", c, p, 0))); t.b(\"</div>\"); t.b(\"\\n\" + i); t.b(\" </td>\"); t.b(\"\\n\" + i); t.b(\"</tr>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"generic-empty-diff\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<tr>\"); t.b(\"\\n\" + i); t.b(\" <td class=\\\"\"); t.b(t.v(t.d(\"CSSLineClass.INFO\", c, p, 0))); t.b(\"\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"\"); t.b(t.v(t.f(\"contentClass\", c, p, 0))); t.b(\"\\\">\"); t.b(\"\\n\" + i); t.b(\" File without changes\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" </td>\"); t.b(\"\\n\" + i); t.b(\"</tr>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"generic-file-path\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<span class=\\\"d2h-file-name-wrapper\\\">\"); t.b(\"\\n\" + i); t.b(t.rp(\"<fileIcon0\", c, p, \" \")); t.b(\" <span class=\\\"d2h-file-name\\\">\"); t.b(t.v(t.f(\"fileDiffName\", c, p, 0))); t.b(\"</span>\"); t.b(\"\\n\" + i); t.b(t.rp(\"<fileTag1\", c, p, \" \")); t.b(\"</span>\"); t.b(\"\\n\" + i); t.b(\"<label class=\\\"d2h-file-collapse\\\">\"); t.b(\"\\n\" + i); t.b(\" <input class=\\\"d2h-file-collapse-input\\\" type=\\\"checkbox\\\" name=\\\"viewed\\\" value=\\\"viewed\\\">\"); t.b(\"\\n\" + i); t.b(\" Viewed\"); t.b(\"\\n\" + i); t.b(\"</label>\"); return t.fl(); }, partials: { \"<fileIcon0\": { name: \"fileIcon\", partials: {}, subs: {} }, \"<fileTag1\": { name: \"fileTag\", partials: {}, subs: {} } }, subs: {} });\nexports.defaultTemplates[\"generic-line\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<tr>\"); t.b(\"\\n\" + i); t.b(\" <td class=\\\"\"); t.b(t.v(t.f(\"lineClass\", c, p, 0))); t.b(\" \"); t.b(t.v(t.f(\"type\", c, p, 0))); t.b(\"\\\">\"); t.b(\"\\n\" + i); t.b(\" \"); t.b(t.t(t.f(\"lineNumber\", c, p, 0))); t.b(\"\\n\" + i); t.b(\" </td>\"); t.b(\"\\n\" + i); t.b(\" <td class=\\\"\"); t.b(t.v(t.f(\"type\", c, p, 0))); t.b(\"\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"\"); t.b(t.v(t.f(\"contentClass\", c, p, 0))); t.b(\"\\\">\"); t.b(\"\\n\" + i); if (t.s(t.f(\"prefix\", c, p, 1), c, p, 0, 162, 238, \"{{ }}\")) {\n t.rs(c, p, function (c, p, t) { t.b(\" <span class=\\\"d2h-code-line-prefix\\\">\"); t.b(t.t(t.f(\"prefix\", c, p, 0))); t.b(\"</span>\"); t.b(\"\\n\" + i); });\n c.pop();\n } if (!t.s(t.f(\"prefix\", c, p, 1), c, p, 1, 0, 0, \"\")) {\n t.b(\" <span class=\\\"d2h-code-line-prefix\\\"> </span>\");\n t.b(\"\\n\" + i);\n } ; if (t.s(t.f(\"content\", c, p, 1), c, p, 0, 371, 445, \"{{ }}\")) {\n t.rs(c, p, function (c, p, t) { t.b(\" <span class=\\\"d2h-code-line-ctn\\\">\"); t.b(t.t(t.f(\"content\", c, p, 0))); t.b(\"</span>\"); t.b(\"\\n\" + i); });\n c.pop();\n } if (!t.s(t.f(\"content\", c, p, 1), c, p, 1, 0, 0, \"\")) {\n t.b(\" <span class=\\\"d2h-code-line-ctn\\\"><br></span>\");\n t.b(\"\\n\" + i);\n } ; t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" </td>\"); t.b(\"\\n\" + i); t.b(\"</tr>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"generic-wrapper\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<div class=\\\"d2h-wrapper\\\">\"); t.b(\"\\n\" + i); t.b(\" \"); t.b(t.t(t.f(\"content\", c, p, 0))); t.b(\"\\n\" + i); t.b(\"</div>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"icon-file-added\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<svg aria-hidden=\\\"true\\\" class=\\\"d2h-icon d2h-added\\\" height=\\\"16\\\" title=\\\"added\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 14 16\\\"\"); t.b(\"\\n\" + i); t.b(\" width=\\\"14\\\">\"); t.b(\"\\n\" + i); t.b(\" <path d=\\\"M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z\\\"></path>\"); t.b(\"\\n\" + i); t.b(\"</svg>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"icon-file-changed\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<svg aria-hidden=\\\"true\\\" class=\\\"d2h-icon d2h-changed\\\" height=\\\"16\\\" title=\\\"modified\\\" version=\\\"1.1\\\"\"); t.b(\"\\n\" + i); t.b(\" viewBox=\\\"0 0 14 16\\\" width=\\\"14\\\">\"); t.b(\"\\n\" + i); t.b(\" <path d=\\\"M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z\\\"></path>\"); t.b(\"\\n\" + i); t.b(\"</svg>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"icon-file-deleted\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<svg aria-hidden=\\\"true\\\" class=\\\"d2h-icon d2h-deleted\\\" height=\\\"16\\\" title=\\\"removed\\\" version=\\\"1.1\\\"\"); t.b(\"\\n\" + i); t.b(\" viewBox=\\\"0 0 14 16\\\" width=\\\"14\\\">\"); t.b(\"\\n\" + i); t.b(\" <path d=\\\"M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM11 9H3V7h8v2z\\\"></path>\"); t.b(\"\\n\" + i); t.b(\"</svg>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"icon-file-renamed\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<svg aria-hidden=\\\"true\\\" class=\\\"d2h-icon d2h-moved\\\" height=\\\"16\\\" title=\\\"renamed\\\" version=\\\"1.1\\\"\"); t.b(\"\\n\" + i); t.b(\" viewBox=\\\"0 0 14 16\\\" width=\\\"14\\\">\"); t.b(\"\\n\" + i); t.b(\" <path d=\\\"M6 9H3V7h3V4l5 4-5 4V9z m8-7v12c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h12c0.55 0 1 0.45 1 1z m-1 0H1v12h12V2z\\\"></path>\"); t.b(\"\\n\" + i); t.b(\"</svg>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"icon-file\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<svg aria-hidden=\\\"true\\\" class=\\\"d2h-icon\\\" height=\\\"16\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 12 16\\\" width=\\\"12\\\">\"); t.b(\"\\n\" + i); t.b(\" <path d=\\\"M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z\\\"></path>\"); t.b(\"\\n\" + i); t.b(\"</svg>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"line-by-line-file-diff\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<div id=\\\"\"); t.b(t.v(t.f(\"fileHtmlId\", c, p, 0))); t.b(\"\\\" class=\\\"d2h-file-wrapper\\\" data-lang=\\\"\"); t.b(t.v(t.d(\"file.language\", c, p, 0))); t.b(\"\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-file-header\\\">\"); t.b(\"\\n\" + i); t.b(\" \"); t.b(t.t(t.f(\"filePath\", c, p, 0))); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-file-diff\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-code-wrapper\\\">\"); t.b(\"\\n\" + i); t.b(\" <table class=\\\"d2h-diff-table\\\">\"); t.b(\"\\n\" + i); t.b(\" <tbody class=\\\"d2h-diff-tbody\\\">\"); t.b(\"\\n\" + i); t.b(\" \"); t.b(t.t(t.f(\"diffs\", c, p, 0))); t.b(\"\\n\" + i); t.b(\" </tbody>\"); t.b(\"\\n\" + i); t.b(\" </table>\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\"</div>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"line-by-line-numbers\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<div class=\\\"line-num1\\\">\"); t.b(t.v(t.f(\"oldNumber\", c, p, 0))); t.b(\"</div>\"); t.b(\"\\n\" + i); t.b(\"<div class=\\\"line-num2\\\">\"); t.b(t.v(t.f(\"newNumber\", c, p, 0))); t.b(\"</div>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"side-by-side-file-diff\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<div id=\\\"\"); t.b(t.v(t.f(\"fileHtmlId\", c, p, 0))); t.b(\"\\\" class=\\\"d2h-file-wrapper\\\" data-lang=\\\"\"); t.b(t.v(t.d(\"file.language\", c, p, 0))); t.b(\"\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-file-header\\\">\"); t.b(\"\\n\" + i); t.b(\" \"); t.b(t.t(t.f(\"filePath\", c, p, 0))); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-files-diff\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-file-side-diff\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-code-wrapper\\\">\"); t.b(\"\\n\" + i); t.b(\" <table class=\\\"d2h-diff-table\\\">\"); t.b(\"\\n\" + i); t.b(\" <tbody class=\\\"d2h-diff-tbody\\\">\"); t.b(\"\\n\" + i); t.b(\" \"); t.b(t.t(t.d(\"diffs.left\", c, p, 0))); t.b(\"\\n\" + i); t.b(\" </tbody>\"); t.b(\"\\n\" + i); t.b(\" </table>\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-file-side-diff\\\">\"); t.b(\"\\n\" + i); t.b(\" <div class=\\\"d2h-code-wrapper\\\">\"); t.b(\"\\n\" + i); t.b(\" <table class=\\\"d2h-diff-table\\\">\"); t.b(\"\\n\" + i); t.b(\" <tbody class=\\\"d2h-diff-tbody\\\">\"); t.b(\"\\n\" + i); t.b(\" \"); t.b(t.t(t.d(\"diffs.right\", c, p, 0))); t.b(\"\\n\" + i); t.b(\" </tbody>\"); t.b(\"\\n\" + i); t.b(\" </table>\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\" </div>\"); t.b(\"\\n\" + i); t.b(\"</div>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"tag-file-added\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<span class=\\\"d2h-tag d2h-added d2h-added-tag\\\">ADDED</span>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"tag-file-changed\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<span class=\\\"d2h-tag d2h-changed d2h-changed-tag\\\">CHANGED</span>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"tag-file-deleted\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<span class=\\\"d2h-tag d2h-deleted d2h-deleted-tag\\\">DELETED</span>\"); return t.fl(); }, partials: {}, subs: {} });\nexports.defaultTemplates[\"tag-file-renamed\"] = new Hogan.Template({ code: function (c, p, i) { var t = this; t.b(i = i || \"\"); t.b(\"<span class=\\\"d2h-tag d2h-moved d2h-moved-tag\\\">RENAMED</span>\"); return t.fl(); }, partials: {}, subs: {} });\n//# sourceMappingURL=diff2html-templates.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.html = exports.parse = exports.defaultDiff2HtmlConfig = void 0;\nvar DiffParser = __importStar(require(\"./diff-parser\"));\nvar fileListPrinter = __importStar(require(\"./file-list-renderer\"));\nvar line_by_line_renderer_1 = __importStar(require(\"./line-by-line-renderer\"));\nvar side_by_side_renderer_1 = __importStar(require(\"./side-by-side-renderer\"));\nvar types_1 = require(\"./types\");\nvar hoganjs_utils_1 = __importDefault(require(\"./hoganjs-utils\"));\nexports.defaultDiff2HtmlConfig = __assign(__assign(__assign({}, line_by_line_renderer_1.defaultLineByLineRendererConfig), side_by_side_renderer_1.defaultSideBySideRendererConfig), { outputFormat: types_1.OutputFormatType.LINE_BY_LINE, drawFileList: true });\nfunction parse(diffInput, configuration) {\n if (configuration === void 0) { configuration = {}; }\n return DiffParser.parse(diffInput, __assign(__assign({}, exports.defaultDiff2HtmlConfig), configuration));\n}\nexports.parse = parse;\nfunction html(diffInput, configuration) {\n if (configuration === void 0) { configuration = {}; }\n var config = __assign(__assign({}, exports.defaultDiff2HtmlConfig), configuration);\n var diffJson = typeof diffInput === 'string' ? DiffParser.parse(diffInput, config) : diffInput;\n var hoganUtils = new hoganjs_utils_1.default(config);\n var fileList = config.drawFileList ? fileListPrinter.render(diffJson, hoganUtils) : '';\n var diffOutput = config.outputFormat === 'side-by-side'\n ? new side_by_side_renderer_1.default(hoganUtils, config).render(diffJson)\n : new line_by_line_renderer_1.default(hoganUtils, config).render(diffJson);\n return fileList + diffOutput;\n}\nexports.html = html;\n//# sourceMappingURL=diff2html.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\nvar renderUtils = __importStar(require(\"./render-utils\"));\nvar baseTemplatesPath = 'file-summary';\nvar iconsBaseTemplatesPath = 'icon';\nfunction render(diffFiles, hoganUtils) {\n var files = diffFiles\n .map(function (file) {\n return hoganUtils.render(baseTemplatesPath, 'line', {\n fileHtmlId: renderUtils.getHtmlId(file),\n oldName: file.oldName,\n newName: file.newName,\n fileName: renderUtils.filenameDiff(file),\n deletedLines: '-' + file.deletedLines,\n addedLines: '+' + file.addedLines,\n }, {\n fileIcon: hoganUtils.template(iconsBaseTemplatesPath, renderUtils.getFileIcon(file)),\n });\n })\n .join('\\n');\n return hoganUtils.render(baseTemplatesPath, 'wrapper', {\n filesNumber: diffFiles.length,\n files: files,\n });\n}\nexports.render = render;\n//# sourceMappingURL=file-list-renderer.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Hogan = __importStar(require(\"hogan.js\"));\nvar diff2html_templates_1 = require(\"./diff2html-templates\");\nvar HoganJsUtils = (function () {\n function HoganJsUtils(_a) {\n var _b = _a.compiledTemplates, compiledTemplates = _b === void 0 ? {} : _b, _c = _a.rawTemplates, rawTemplates = _c === void 0 ? {} : _c;\n var compiledRawTemplates = Object.entries(rawTemplates).reduce(function (previousTemplates, _a) {\n var _b;\n var name = _a[0], templateString = _a[1];\n var compiledTemplate = Hogan.compile(templateString, { asString: false });\n return __assign(__assign({}, previousTemplates), (_b = {}, _b[name] = compiledTemplate, _b));\n }, {});\n this.preCompiledTemplates = __assign(__assign(__assign({}, diff2html_templates_1.defaultTemplates), compiledTemplates), compiledRawTemplates);\n }\n HoganJsUtils.compile = function (templateString) {\n return Hogan.compile(templateString, { asString: false });\n };\n HoganJsUtils.prototype.render = function (namespace, view, params, partials, indent) {\n var templateKey = this.templateKey(namespace, view);\n try {\n var template = this.preCompiledTemplates[templateKey];\n return template.render(params, partials, indent);\n }\n catch (e) {\n throw new Error(\"Could not find template to render '\".concat(templateKey, \"'\"));\n }\n };\n HoganJsUtils.prototype.template = function (namespace, view) {\n return this.preCompiledTemplates[this.templateKey(namespace, view)];\n };\n HoganJsUtils.prototype.templateKey = function (namespace, view) {\n return \"\".concat(namespace, \"-\").concat(view);\n };\n return HoganJsUtils;\n}());\nexports.default = HoganJsUtils;\n//# sourceMappingURL=hoganjs-utils.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultLineByLineRendererConfig = void 0;\nvar Rematch = __importStar(require(\"./rematch\"));\nvar renderUtils = __importStar(require(\"./render-utils\"));\nvar types_1 = require(\"./types\");\nexports.defaultLineByLineRendererConfig = __assign(__assign({}, renderUtils.defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 });\nvar genericTemplatesPath = 'generic';\nvar baseTemplatesPath = 'line-by-line';\nvar iconsBaseTemplatesPath = 'icon';\nvar tagsBaseTemplatesPath = 'tag';\nvar LineByLineRenderer = (function () {\n function LineByLineRenderer(hoganUtils, config) {\n if (config === void 0) { config = {}; }\n this.hoganUtils = hoganUtils;\n this.config = __assign(__assign({}, exports.defaultLineByLineRendererConfig), config);\n }\n LineByLineRenderer.prototype.render = function (diffFiles) {\n var _this = this;\n var diffsHtml = diffFiles\n .map(function (file) {\n var diffs;\n if (file.blocks.length) {\n diffs = _this.generateFileHtml(file);\n }\n else {\n diffs = _this.generateEmptyDiff();\n }\n return _this.makeFileDiffHtml(file, diffs);\n })\n .join('\\n');\n return this.hoganUtils.render(genericTemplatesPath, 'wrapper', { content: diffsHtml });\n };\n LineByLineRenderer.prototype.makeFileDiffHtml = function (file, diffs) {\n if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0)\n return '';\n var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath, 'file-diff');\n var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, 'file-path');\n var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath, 'file');\n var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, renderUtils.getFileIcon(file));\n return fileDiffTemplate.render({\n file: file,\n fileHtmlId: renderUtils.getHtmlId(file),\n diffs: diffs,\n filePath: filePathTemplate.render({\n fileDiffName: renderUtils.filenameDiff(file),\n }, {\n fileIcon: fileIconTemplate,\n fileTag: fileTagTemplate,\n }),\n });\n };\n LineByLineRenderer.prototype.generateEmptyDiff = function () {\n return this.hoganUtils.render(genericTemplatesPath, 'empty-diff', {\n contentClass: 'd2h-code-line',\n CSSLineClass: renderUtils.CSSLineClass,\n });\n };\n LineByLineRenderer.prototype.generateFileHtml = function (file) {\n var _this = this;\n var matcher = Rematch.newMatcherFn(Rematch.newDistanceFn(function (e) { return renderUtils.deconstructLine(e.content, file.isCombined).content; }));\n return file.blocks\n .map(function (block) {\n var lines = _this.hoganUtils.render(genericTemplatesPath, 'block-header', {\n CSSLineClass: renderUtils.CSSLineClass,\n blockHeader: file.isTooBig ? block.header : renderUtils.escapeForHtml(block.header),\n lineClass: 'd2h-code-linenumber',\n contentClass: 'd2h-code-line',\n });\n _this.applyLineGroupping(block).forEach(function (_a) {\n var contextLines = _a[0], oldLines = _a[1], newLines = _a[2];\n if (oldLines.length && newLines.length && !contextLines.length) {\n _this.applyRematchMatching(oldLines, newLines, matcher).map(function (_a) {\n var oldLines = _a[0], newLines = _a[1];\n var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right;\n lines += left;\n lines += right;\n });\n }\n else if (contextLines.length) {\n contextLines.forEach(function (line) {\n var _a = renderUtils.deconstructLine(line.content, file.isCombined), prefix = _a.prefix, content = _a.content;\n lines += _this.generateSingleLineHtml({\n type: renderUtils.CSSLineClass.CONTEXT,\n prefix: prefix,\n content: content,\n oldNumber: line.oldNumber,\n newNumber: line.newNumber,\n });\n });\n }\n else if (oldLines.length || newLines.length) {\n var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right;\n lines += left;\n lines += right;\n }\n else {\n console.error('Unknown state reached while processing groups of lines', contextLines, oldLines, newLines);\n }\n });\n return lines;\n })\n .join('\\n');\n };\n LineByLineRenderer.prototype.applyLineGroupping = function (block) {\n var blockLinesGroups = [];\n var oldLines = [];\n var newLines = [];\n for (var i = 0; i < block.lines.length; i++) {\n var diffLine = block.lines[i];\n if ((diffLine.type !== types_1.LineType.INSERT && newLines.length) ||\n (diffLine.type === types_1.LineType.CONTEXT && oldLines.length > 0)) {\n blockLinesGroups.push([[], oldLines, newLines]);\n oldLines = [];\n newLines = [];\n }\n if (diffLine.type === types_1.LineType.CONTEXT) {\n blockLinesGroups.push([[diffLine], [], []]);\n }\n else if (diffLine.type === types_1.LineType.INSERT && oldLines.length === 0) {\n blockLinesGroups.push([[], [], [diffLine]]);\n }\n else if (diffLine.type === types_1.LineType.INSERT && oldLines.length > 0) {\n newLines.push(diffLine);\n }\n else if (diffLine.type === types_1.LineType.DELETE) {\n oldLines.push(diffLine);\n }\n }\n if (oldLines.length || newLines.length) {\n blockLinesGroups.push([[], oldLines, newLines]);\n oldLines = [];\n newLines = [];\n }\n return blockLinesGroups;\n };\n LineByLineRenderer.prototype.applyRematchMatching = function (oldLines, newLines, matcher) {\n var comparisons = oldLines.length * newLines.length;\n var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function (elem) { return elem.content.length; })));\n var doMatching = comparisons < this.config.matchingMaxComparisons &&\n maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison &&\n (this.config.matching === 'lines' || this.config.matching === 'words');\n return doMatching ? matcher(oldLines, newLines) : [[oldLines, newLines]];\n };\n LineByLineRenderer.prototype.processChangedLines = function (isCombined, oldLines, newLines) {\n var fileHtml = {\n right: '',\n left: '',\n };\n var maxLinesNumber = Math.max(oldLines.length, newLines.length);\n for (var i = 0; i < maxLinesNumber; i++) {\n var oldLine = oldLines[i];\n var newLine = newLines[i];\n var diff = oldLine !== undefined && newLine !== undefined\n ? renderUtils.diffHighlight(oldLine.content, newLine.content, isCombined, this.config)\n : undefined;\n var preparedOldLine = oldLine !== undefined && oldLine.oldNumber !== undefined\n ? __assign(__assign({}, (diff !== undefined\n ? {\n prefix: diff.oldLine.prefix,\n content: diff.oldLine.content,\n type: renderUtils.CSSLineClass.DELETE_CHANGES,\n }\n : __assign(__assign({}, renderUtils.deconstructLine(oldLine.content, isCombined)), { type: renderUtils.toCSSClass(oldLine.type) }))), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : undefined;\n var preparedNewLine = newLine !== undefined && newLine.newNumber !== undefined\n ? __assign(__assign({}, (diff !== undefined\n ? {\n prefix: diff.newLine.prefix,\n content: diff.newLine.content,\n type: renderUtils.CSSLineClass.INSERT_CHANGES,\n }\n : __assign(__assign({}, renderUtils.deconstructLine(newLine.content, isCombined)), { type: renderUtils.toCSSClass(newLine.type) }))), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : undefined;\n var _a = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a.left, right = _a.right;\n fileHtml.left += left;\n fileHtml.right += right;\n }\n return fileHtml;\n };\n LineByLineRenderer.prototype.generateLineHtml = function (oldLine, newLine) {\n return {\n left: this.generateSingleLineHtml(oldLine),\n right: this.generateSingleLineHtml(newLine),\n };\n };\n LineByLineRenderer.prototype.generateSingleLineHtml = function (line) {\n if (line === undefined)\n return '';\n var lineNumberHtml = this.hoganUtils.render(baseTemplatesPath, 'numbers', {\n oldNumber: line.oldNumber || '',\n newNumber: line.newNumber || '',\n });\n return this.hoganUtils.render(genericTemplatesPath, 'line', {\n type: line.type,\n lineClass: 'd2h-code-linenumber',\n contentClass: 'd2h-code-line',\n prefix: line.prefix === ' ' ? ' ' : line.prefix,\n content: line.content,\n lineNumber: lineNumberHtml,\n });\n };\n return LineByLineRenderer;\n}());\nexports.default = LineByLineRenderer;\n//# sourceMappingURL=line-by-line-renderer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.newMatcherFn = exports.newDistanceFn = exports.levenshtein = void 0;\nfunction levenshtein(a, b) {\n if (a.length === 0) {\n return b.length;\n }\n if (b.length === 0) {\n return a.length;\n }\n var matrix = [];\n var i;\n for (i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n var j;\n for (j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n for (i = 1; i <= b.length; i++) {\n for (j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n }\n else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1));\n }\n }\n }\n return matrix[b.length][a.length];\n}\nexports.levenshtein = levenshtein;\nfunction newDistanceFn(str) {\n return function (x, y) {\n var xValue = str(x).trim();\n var yValue = str(y).trim();\n var lev = levenshtein(xValue, yValue);\n return lev / (xValue.length + yValue.length);\n };\n}\nexports.newDistanceFn = newDistanceFn;\nfunction newMatcherFn(distance) {\n function findBestMatch(a, b, cache) {\n if (cache === void 0) { cache = new Map(); }\n var bestMatchDist = Infinity;\n var bestMatch;\n for (var i = 0; i < a.length; ++i) {\n for (var j = 0; j < b.length; ++j) {\n var cacheKey = JSON.stringify([a[i], b[j]]);\n var md = void 0;\n if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) {\n md = distance(a[i], b[j]);\n cache.set(cacheKey, md);\n }\n if (md < bestMatchDist) {\n bestMatchDist = md;\n bestMatch = { indexA: i, indexB: j, score: bestMatchDist };\n }\n }\n }\n return bestMatch;\n }\n function group(a, b, level, cache) {\n if (level === void 0) { level = 0; }\n if (cache === void 0) { cache = new Map(); }\n var bm = findBestMatch(a, b, cache);\n if (!bm || a.length + b.length < 3) {\n return [[a, b]];\n }\n var a1 = a.slice(0, bm.indexA);\n var b1 = b.slice(0, bm.indexB);\n var aMatch = [a[bm.indexA]];\n var bMatch = [b[bm.indexB]];\n var tailA = bm.indexA + 1;\n var tailB = bm.indexB + 1;\n var a2 = a.slice(tailA);\n var b2 = b.slice(tailB);\n var group1 = group(a1, b1, level + 1, cache);\n var groupMatch = group(aMatch, bMatch, level + 1, cache);\n var group2 = group(a2, b2, level + 1, cache);\n var result = groupMatch;\n if (bm.indexA > 0 || bm.indexB > 0) {\n result = group1.concat(result);\n }\n if (a.length > tailA || b.length > tailB) {\n result = result.concat(group2);\n }\n return result;\n }\n return group;\n}\nexports.newMatcherFn = newMatcherFn;\n//# sourceMappingURL=rematch.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diffHighlight = exports.getFileIcon = exports.getHtmlId = exports.filenameDiff = exports.deconstructLine = exports.escapeForHtml = exports.toCSSClass = exports.defaultRenderConfig = exports.CSSLineClass = void 0;\nvar jsDiff = __importStar(require(\"diff\"));\nvar utils_1 = require(\"./utils\");\nvar rematch = __importStar(require(\"./rematch\"));\nvar types_1 = require(\"./types\");\nexports.CSSLineClass = {\n INSERTS: 'd2h-ins',\n DELETES: 'd2h-del',\n CONTEXT: 'd2h-cntx',\n INFO: 'd2h-info',\n INSERT_CHANGES: 'd2h-ins d2h-change',\n DELETE_CHANGES: 'd2h-del d2h-change',\n};\nexports.defaultRenderConfig = {\n matching: types_1.LineMatchingType.NONE,\n matchWordsThreshold: 0.25,\n maxLineLengthHighlight: 10000,\n diffStyle: types_1.DiffStyleType.WORD,\n};\nvar separator = '/';\nvar distance = rematch.newDistanceFn(function (change) { return change.value; });\nvar matcher = rematch.newMatcherFn(distance);\nfunction isDevNullName(name) {\n return name.indexOf('dev/null') !== -1;\n}\nfunction removeInsElements(line) {\n return line.replace(/(<ins[^>]*>((.|\\n)*?)<\\/ins>)/g, '');\n}\nfunction removeDelElements(line) {\n return line.replace(/(<del[^>]*>((.|\\n)*?)<\\/del>)/g, '');\n}\nfunction toCSSClass(lineType) {\n switch (lineType) {\n case types_1.LineType.CONTEXT:\n return exports.CSSLineClass.CONTEXT;\n case types_1.LineType.INSERT:\n return exports.CSSLineClass.INSERTS;\n case types_1.LineType.DELETE:\n return exports.CSSLineClass.DELETES;\n }\n}\nexports.toCSSClass = toCSSClass;\nfunction prefixLength(isCombined) {\n return isCombined ? 2 : 1;\n}\nfunction escapeForHtml(str) {\n return str\n .slice(0)\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/\\//g, '/');\n}\nexports.escapeForHtml = escapeForHtml;\nfunction deconstructLine(line, isCombined, escape) {\n if (escape === void 0) { escape = true; }\n var indexToSplit = prefixLength(isCombined);\n return {\n prefix: line.substring(0, indexToSplit),\n content: escape ? escapeForHtml(line.substring(indexToSplit)) : line.substring(indexToSplit),\n };\n}\nexports.deconstructLine = deconstructLine;\nfunction filenameDiff(file) {\n var oldFilename = (0, utils_1.unifyPath)(file.oldName);\n var newFilename = (0, utils_1.unifyPath)(file.newName);\n if (oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) {\n var prefixPaths = [];\n var suffixPaths = [];\n var oldFilenameParts = oldFilename.split(separator);\n var newFilenameParts = newFilename.split(separator);\n var oldFilenamePartsSize = oldFilenameParts.length;\n var newFilenamePartsSize = newFilenameParts.length;\n var i = 0;\n var j = oldFilenamePartsSize - 1;\n var k = newFilenamePartsSize - 1;\n while (i < j && i < k) {\n if (oldFilenameParts[i] === newFilenameParts[i]) {\n prefixPaths.push(newFilenameParts[i]);\n i += 1;\n }\n else {\n break;\n }\n }\n while (j > i && k > i) {\n if (oldFilenameParts[j] === newFilenameParts[k]) {\n suffixPaths.unshift(newFilenameParts[k]);\n j -= 1;\n k -= 1;\n }\n else {\n break;\n }\n }\n var finalPrefix = prefixPaths.join(separator);\n var finalSuffix = suffixPaths.join(separator);\n var oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator);\n var newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator);\n if (finalPrefix.length && finalSuffix.length) {\n return (finalPrefix + separator + '{' + oldRemainingPath + ' → ' + newRemainingPath + '}' + separator + finalSuffix);\n }\n else if (finalPrefix.length) {\n return finalPrefix + separator + '{' + oldRemainingPath + ' → ' + newRemainingPath + '}';\n }\n else if (finalSuffix.length) {\n return '{' + oldRemainingPath + ' → ' + newRemainingPath + '}' + separator + finalSuffix;\n }\n return oldFilename + ' → ' + newFilename;\n }\n else if (!isDevNullName(newFilename)) {\n return newFilename;\n }\n else {\n return oldFilename;\n }\n}\nexports.filenameDiff = filenameDiff;\nfunction getHtmlId(file) {\n return \"d2h-\".concat((0, utils_1.hashCode)(filenameDiff(file)).toString().slice(-6));\n}\nexports.getHtmlId = getHtmlId;\nfunction getFileIcon(file) {\n var templateName = 'file-changed';\n if (file.isRename) {\n templateName = 'file-renamed';\n }\n else if (file.isCopy) {\n templateName = 'file-renamed';\n }\n else if (file.isNew) {\n templateName = 'file-added';\n }\n else if (file.isDeleted) {\n templateName = 'file-deleted';\n }\n else if (file.newName !== file.oldName) {\n templateName = 'file-renamed';\n }\n return templateName;\n}\nexports.getFileIcon = getFileIcon;\nfunction diffHighlight(diffLine1, diffLine2, isCombined, config) {\n if (config === void 0) { config = {}; }\n var _a = __assign(__assign({}, exports.defaultRenderConfig), config), matching = _a.matching, maxLineLengthHighlight = _a.maxLineLengthHighlight, matchWordsThreshold = _a.matchWordsThreshold, diffStyle = _a.diffStyle;\n var line1 = deconstructLine(diffLine1, isCombined, false);\n var line2 = deconstructLine(diffLine2, isCombined, false);\n if (line1.content.length > maxLineLengthHighlight || line2.content.length > maxLineLengthHighlight) {\n return {\n oldLine: {\n prefix: line1.prefix,\n content: escapeForHtml(line1.content),\n },\n newLine: {\n prefix: line2.prefix,\n content: escapeForHtml(line2.content),\n },\n };\n }\n var diff = diffStyle === 'char'\n ? jsDiff.diffChars(line1.content, line2.content)\n : jsDiff.diffWordsWithSpace(line1.content, line2.content);\n var changedWords = [];\n if (diffStyle === 'word' && matching === 'words') {\n var removed = diff.filter(function (element) { return element.removed; });\n var added = diff.filter(function (element) { return element.added; });\n var chunks = matcher(added, removed);\n chunks.forEach(function (chunk) {\n if (chunk[0].length === 1 && chunk[1].length === 1) {\n var dist = distance(chunk[0][0], chunk[1][0]);\n if (dist < matchWordsThreshold) {\n changedWords.push(chunk[0][0]);\n changedWords.push(chunk[1][0]);\n }\n }\n });\n }\n var highlightedLine = diff.reduce(function (highlightedLine, part) {\n var elemType = part.added ? 'ins' : part.removed ? 'del' : null;\n var addClass = changedWords.indexOf(part) > -1 ? ' class=\"d2h-change\"' : '';\n var escapedValue = escapeForHtml(part.value);\n return elemType !== null\n ? \"\".concat(highlightedLine, \"<\").concat(elemType).concat(addClass, \">\").concat(escapedValue, \"</\").concat(elemType, \">\")\n : \"\".concat(highlightedLine).concat(escapedValue);\n }, '');\n return {\n oldLine: {\n prefix: line1.prefix,\n content: removeInsElements(highlightedLine),\n },\n newLine: {\n prefix: line2.prefix,\n content: removeDelElements(highlightedLine),\n },\n };\n}\nexports.diffHighlight = diffHighlight;\n//# sourceMappingURL=render-utils.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultSideBySideRendererConfig = void 0;\nvar Rematch = __importStar(require(\"./rematch\"));\nvar renderUtils = __importStar(require(\"./render-utils\"));\nvar types_1 = require(\"./types\");\nexports.defaultSideBySideRendererConfig = __assign(__assign({}, renderUtils.defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 });\nvar genericTemplatesPath = 'generic';\nvar baseTemplatesPath = 'side-by-side';\nvar iconsBaseTemplatesPath = 'icon';\nvar tagsBaseTemplatesPath = 'tag';\nvar SideBySideRenderer = (function () {\n function SideBySideRenderer(hoganUtils, config) {\n if (config === void 0) { config = {}; }\n this.hoganUtils = hoganUtils;\n this.config = __assign(__assign({}, exports.defaultSideBySideRendererConfig), config);\n }\n SideBySideRenderer.prototype.render = function (diffFiles) {\n var _this = this;\n var diffsHtml = diffFiles\n .map(function (file) {\n var diffs;\n if (file.blocks.length) {\n diffs = _this.generateFileHtml(file);\n }\n else {\n diffs = _this.generateEmptyDiff();\n }\n return _this.makeFileDiffHtml(file, diffs);\n })\n .join('\\n');\n return this.hoganUtils.render(genericTemplatesPath, 'wrapper', { content: diffsHtml });\n };\n SideBySideRenderer.prototype.makeFileDiffHtml = function (file, diffs) {\n if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0)\n return '';\n var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath, 'file-diff');\n var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, 'file-path');\n var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath, 'file');\n var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, renderUtils.getFileIcon(file));\n return fileDiffTemplate.render({\n file: file,\n fileHtmlId: renderUtils.getHtmlId(file),\n diffs: diffs,\n filePath: filePathTemplate.render({\n fileDiffName: renderUtils.filenameDiff(file),\n }, {\n fileIcon: fileIconTemplate,\n fileTag: fileTagTemplate,\n }),\n });\n };\n SideBySideRenderer.prototype.generateEmptyDiff = function () {\n return {\n right: '',\n left: this.hoganUtils.render(genericTemplatesPath, 'empty-diff', {\n contentClass: 'd2h-code-side-line',\n CSSLineClass: renderUtils.CSSLineClass,\n }),\n };\n };\n SideBySideRenderer.prototype.generateFileHtml = function (file) {\n var _this = this;\n var matcher = Rematch.newMatcherFn(Rematch.newDistanceFn(function (e) { return renderUtils.deconstructLine(e.content, file.isCombined).content; }));\n return file.blocks\n .map(function (block) {\n var fileHtml = {\n left: _this.makeHeaderHtml(block.header, file),\n right: _this.makeHeaderHtml(''),\n };\n _this.applyLineGroupping(block).forEach(function (_a) {\n var contextLines = _a[0], oldLines = _a[1], newLines = _a[2];\n if (oldLines.length && newLines.length && !contextLines.length) {\n _this.applyRematchMatching(oldLines, newLines, matcher).map(function (_a) {\n var oldLines = _a[0], newLines = _a[1];\n var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right;\n fileHtml.left += left;\n fileHtml.right += right;\n });\n }\n else if (contextLines.length) {\n contextLines.forEach(function (line) {\n var _a = renderUtils.deconstructLine(line.content, file.isCombined), prefix = _a.prefix, content = _a.content;\n var _b = _this.generateLineHtml({\n type: renderUtils.CSSLineClass.CONTEXT,\n prefix: prefix,\n content: content,\n number: line.oldNumber,\n }, {\n type: renderUtils.CSSLineClass.CONTEXT,\n prefix: prefix,\n content: content,\n number: line.newNumber,\n }), left = _b.left, right = _b.right;\n fileHtml.left += left;\n fileHtml.right += right;\n });\n }\n else if (oldLines.length || newLines.length) {\n var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right;\n fileHtml.left += left;\n fileHtml.right += right;\n }\n else {\n console.error('Unknown state reached while processing groups of lines', contextLines, oldLines, newLines);\n }\n });\n return fileHtml;\n })\n .reduce(function (accomulated, html) {\n return { left: accomulated.left + html.left, right: accomulated.right + html.right };\n }, { left: '', right: '' });\n };\n SideBySideRenderer.prototype.applyLineGroupping = function (block) {\n var blockLinesGroups = [];\n var oldLines = [];\n var newLines = [];\n for (var i = 0; i < block.lines.length; i++) {\n var diffLine = block.lines[i];\n if ((diffLine.type !== types_1.LineType.INSERT && newLines.length) ||\n (diffLine.type === types_1.LineType.CONTEXT && oldLines.length > 0)) {\n blockLinesGroups.push([[], oldLines, newLines]);\n oldLines = [];\n newLines = [];\n }\n if (diffLine.type === types_1.LineType.CONTEXT) {\n blockLinesGroups.push([[diffLine], [], []]);\n }\n else if (diffLine.type === types_1.LineType.INSERT && oldLines.length === 0) {\n blockLinesGroups.push([[], [], [diffLine]]);\n }\n else if (diffLine.type === types_1.LineType.INSERT && oldLines.length > 0) {\n newLines.push(diffLine);\n }\n else if (diffLine.type === types_1.LineType.DELETE) {\n oldLines.push(diffLine);\n }\n }\n if (oldLines.length || newLines.length) {\n blockLinesGroups.push([[], oldLines, newLines]);\n oldLines = [];\n newLines = [];\n }\n return blockLinesGroups;\n };\n SideBySideRenderer.prototype.applyRematchMatching = function (oldLines, newLines, matcher) {\n var comparisons = oldLines.length * newLines.length;\n var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function (elem) { return elem.content.length; })));\n var doMatching = comparisons < this.config.matchingMaxComparisons &&\n maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison &&\n (this.config.matching === 'lines' || this.config.matching === 'words');\n return doMatching ? matcher(oldLines, newLines) : [[oldLines, newLines]];\n };\n SideBySideRenderer.prototype.makeHeaderHtml = function (blockHeader, file) {\n return this.hoganUtils.render(genericTemplatesPath, 'block-header', {\n CSSLineClass: renderUtils.CSSLineClass,\n blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : renderUtils.escapeForHtml(blockHeader),\n lineClass: 'd2h-code-side-linenumber',\n contentClass: 'd2h-code-side-line',\n });\n };\n SideBySideRenderer.prototype.processChangedLines = function (isCombined, oldLines, newLines) {\n var fileHtml = {\n right: '',\n left: '',\n };\n var maxLinesNumber = Math.max(oldLines.length, newLines.length);\n for (var i = 0; i < maxLinesNumber; i++) {\n var oldLine = oldLines[i];\n var newLine = newLines[i];\n var diff = oldLine !== undefined && newLine !== undefined\n ? renderUtils.diffHighlight(oldLine.content, newLine.content, isCombined, this.config)\n : undefined;\n var preparedOldLine = oldLine !== undefined && oldLine.oldNumber !== undefined\n ? __assign(__assign({}, (diff !== undefined\n ? {\n prefix: diff.oldLine.prefix,\n content: diff.oldLine.content,\n type: renderUtils.CSSLineClass.DELETE_CHANGES,\n }\n : __assign(__assign({}, renderUtils.deconstructLine(oldLine.content, isCombined)), { type: renderUtils.toCSSClass(oldLine.type) }))), { number: oldLine.oldNumber }) : undefined;\n var preparedNewLine = newLine !== undefined && newLine.newNumber !== undefined\n ? __assign(__assign({}, (diff !== undefined\n ? {\n prefix: diff.newLine.prefix,\n content: diff.newLine.content,\n type: renderUtils.CSSLineClass.INSERT_CHANGES,\n }\n : __assign(__assign({}, renderUtils.deconstructLine(newLine.content, isCombined)), { type: renderUtils.toCSSClass(newLine.type) }))), { number: newLine.newNumber }) : undefined;\n var _a = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a.left, right = _a.right;\n fileHtml.left += left;\n fileHtml.right += right;\n }\n return fileHtml;\n };\n SideBySideRenderer.prototype.generateLineHtml = function (oldLine, newLine) {\n return {\n left: this.generateSingleHtml(oldLine),\n right: this.generateSingleHtml(newLine),\n };\n };\n SideBySideRenderer.prototype.generateSingleHtml = function (line) {\n var lineClass = 'd2h-code-side-linenumber';\n var contentClass = 'd2h-code-side-line';\n return this.hoganUtils.render(genericTemplatesPath, 'line', {\n type: (line === null || line === void 0 ? void 0 : line.type) || \"\".concat(renderUtils.CSSLineClass.CONTEXT, \" d2h-emptyplaceholder\"),\n lineClass: line !== undefined ? lineClass : \"\".concat(lineClass, \" d2h-code-side-emptyplaceholder\"),\n contentClass: line !== undefined ? contentClass : \"\".concat(contentClass, \" d2h-code-side-emptyplaceholder\"),\n prefix: (line === null || line === void 0 ? void 0 : line.prefix) === ' ' ? ' ' : line === null || line === void 0 ? void 0 : line.prefix,\n content: line === null || line === void 0 ? void 0 : line.content,\n lineNumber: line === null || line === void 0 ? void 0 : line.number,\n });\n };\n return SideBySideRenderer;\n}());\nexports.default = SideBySideRenderer;\n//# sourceMappingURL=side-by-side-renderer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffStyleType = exports.LineMatchingType = exports.OutputFormatType = exports.LineType = void 0;\nvar LineType;\n(function (LineType) {\n LineType[\"INSERT\"] = \"insert\";\n LineType[\"DELETE\"] = \"delete\";\n LineType[\"CONTEXT\"] = \"context\";\n})(LineType = exports.LineType || (exports.LineType = {}));\nexports.OutputFormatType = {\n LINE_BY_LINE: 'line-by-line',\n SIDE_BY_SIDE: 'side-by-side',\n};\nexports.LineMatchingType = {\n LINES: 'lines',\n WORDS: 'words',\n NONE: 'none',\n};\nexports.DiffStyleType = {\n WORD: 'word',\n CHAR: 'char',\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Diff2HtmlUI = exports.defaultDiff2HtmlUIConfig = void 0;\nvar highlight_js_helpers_1 = require(\"./highlight.js-helpers\");\nvar diff2html_1 = require(\"../../diff2html\");\nexports.defaultDiff2HtmlUIConfig = __assign(__assign({}, diff2html_1.defaultDiff2HtmlConfig), { synchronisedScroll: true, highlight: true, fileListToggle: true, fileListStartVisible: false, highlightLanguages: new Map(), smartSelection: true, fileContentToggle: true, stickyFileHeaders: true });\nvar Diff2HtmlUI = (function () {\n function Diff2HtmlUI(target, diffInput, config, hljs) {\n if (config === void 0) { config = {}; }\n this.hljs = null;\n this.currentSelectionColumnId = -1;\n this.config = __assign(__assign({}, exports.defaultDiff2HtmlUIConfig), config);\n this.diffHtml = diffInput !== undefined ? (0, diff2html_1.html)(diffInput, this.config) : target.innerHTML;\n this.targetElement = target;\n if (hljs !== undefined)\n this.hljs = hljs;\n }\n Diff2HtmlUI.prototype.draw = function () {\n this.targetElement.innerHTML = this.diffHtml;\n if (this.config.synchronisedScroll)\n this.synchronisedScroll();\n if (this.config.highlight)\n this.highlightCode();\n if (this.config.fileListToggle)\n this.fileListToggle(this.config.fileListStartVisible);\n if (this.config.fileContentToggle)\n this.fileContentToggle();\n if (this.config.stickyFileHeaders)\n this.stickyFileHeaders();\n };\n Diff2HtmlUI.prototype.synchronisedScroll = function () {\n this.targetElement.querySelectorAll('.d2h-file-wrapper').forEach(function (wrapper) {\n var _a = Array().slice.call(wrapper.querySelectorAll('.d2h-file-side-diff')), left = _a[0], right = _a[1];\n if (left === undefined || right === undefined)\n return;\n var onScroll = function (event) {\n if (event === null || event.target === null)\n return;\n if (event.target === left) {\n right.scrollTop = left.scrollTop;\n right.scrollLeft = left.scrollLeft;\n }\n else {\n left.scrollTop = right.scrollTop;\n left.scrollLeft = right.scrollLeft;\n }\n };\n left.addEventListener('scroll', onScroll);\n right.addEventListener('scroll', onScroll);\n });\n };\n Diff2HtmlUI.prototype.fileListToggle = function (startVisible) {\n var showBtn = this.targetElement.querySelector('.d2h-show');\n var hideBtn = this.targetElement.querySelector('.d2h-hide');\n var fileList = this.targetElement.querySelector('.d2h-file-list');\n if (showBtn === null || hideBtn === null || fileList === null)\n return;\n var show = function () {\n showBtn.style.display = 'none';\n hideBtn.style.display = 'inline';\n fileList.style.display = 'block';\n };\n var hide = function () {\n showBtn.style.display = 'inline';\n hideBtn.style.display = 'none';\n fileList.style.display = 'none';\n };\n showBtn.addEventListener('click', function () { return show(); });\n hideBtn.addEventListener('click', function () { return hide(); });\n var hashTag = this.getHashTag();\n if (hashTag === 'files-summary-show')\n show();\n else if (hashTag === 'files-summary-hide')\n hide();\n else if (startVisible)\n show();\n else\n hide();\n };\n Diff2HtmlUI.prototype.fileContentToggle = function () {\n this.targetElement.querySelectorAll('.d2h-file-collapse').forEach(function (fileContentToggleBtn) {\n fileContentToggleBtn.style.display = 'flex';\n var toggleFileContents = function (selector) {\n var _a;\n var fileContents = (_a = fileContentToggleBtn\n .closest('.d2h-file-wrapper')) === null || _a === void 0 ? void 0 : _a.querySelector(selector);\n if (fileContents !== null && fileContents !== undefined) {\n fileContentToggleBtn.classList.toggle('d2h-selected');\n fileContents.classList.toggle('d2h-d-none');\n }\n };\n var toggleHandler = function (e) {\n if (fileContentToggleBtn === e.target)\n return;\n toggleFileContents('.d2h-file-diff');\n toggleFileContents('.d2h-files-diff');\n };\n fileContentToggleBtn.addEventListener('click', function (e) { return toggleHandler(e); });\n });\n };\n Diff2HtmlUI.prototype.highlightCode = function () {\n var _this = this;\n var hljs = this.hljs;\n if (hljs === null) {\n throw new Error('Missing a `highlight.js` implementation. Please provide one when instantiating Diff2HtmlUI.');\n }\n var files = this.targetElement.querySelectorAll('.d2h-file-wrapper');\n files.forEach(function (file) {\n var language = file.getAttribute('data-lang');\n if (!(_this.config.highlightLanguages instanceof Map)) {\n _this.config.highlightLanguages = new Map(Object.entries(_this.config.highlightLanguages));\n }\n var hljsLanguage = language && _this.config.highlightLanguages.has(language)\n ?\n _this.config.highlightLanguages.get(language)\n : language\n ? (0, highlight_js_helpers_1.getLanguage)(language)\n : 'plaintext';\n var codeLines = file.querySelectorAll('.d2h-code-line-ctn');\n codeLines.forEach(function (line) {\n var text = line.textContent;\n var lineParent = line.parentNode;\n if (text === null || lineParent === null || !_this.isElement(lineParent))\n return;\n var result = (0, highlight_js_helpers_1.closeTags)(hljs.highlight(text, {\n language: hljsLanguage,\n ignoreIllegals: true,\n }));\n var originalStream = (0, highlight_js_helpers_1.nodeStream)(line);\n if (originalStream.length) {\n var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');\n resultNode.innerHTML = result.value;\n result.value = (0, highlight_js_helpers_1.mergeStreams)(originalStream, (0, highlight_js_helpers_1.nodeStream)(resultNode), text);\n }\n line.classList.add('hljs');\n if (result.language) {\n line.classList.add(result.language);\n }\n line.innerHTML = result.value;\n });\n });\n };\n Diff2HtmlUI.prototype.stickyFileHeaders = function () {\n this.targetElement.querySelectorAll('.d2h-file-header').forEach(function (header) {\n header.classList.add('d2h-sticky-header');\n });\n };\n Diff2HtmlUI.prototype.smartSelection = function () {\n console.warn('Smart selection is now enabled by default with CSS. No need to call this method anymore.');\n };\n Diff2HtmlUI.prototype.getHashTag = function () {\n var docUrl = document.URL;\n var hashTagIndex = docUrl.indexOf('#');\n var hashTag = null;\n if (hashTagIndex !== -1) {\n hashTag = docUrl.substr(hashTagIndex + 1);\n }\n return hashTag;\n };\n Diff2HtmlUI.prototype.isElement = function (arg) {\n return arg !== null && (arg === null || arg === void 0 ? void 0 : arg.classList) !== undefined;\n };\n return Diff2HtmlUI;\n}());\nexports.Diff2HtmlUI = Diff2HtmlUI;\n//# sourceMappingURL=diff2html-ui-base.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultDiff2HtmlUIConfig = exports.Diff2HtmlUI = void 0;\nvar highlight_js_slim_1 = require(\"./highlight.js-slim\");\nvar diff2html_ui_base_1 = require(\"./diff2html-ui-base\");\nObject.defineProperty(exports, \"defaultDiff2HtmlUIConfig\", { enumerable: true, get: function () { return diff2html_ui_base_1.defaultDiff2HtmlUIConfig; } });\nvar Diff2HtmlUI = (function (_super) {\n __extends(Diff2HtmlUI, _super);\n function Diff2HtmlUI(target, diffInput, config) {\n if (config === void 0) { config = {}; }\n return _super.call(this, target, diffInput, config, highlight_js_slim_1.hljs) || this;\n }\n return Diff2HtmlUI;\n}(diff2html_ui_base_1.Diff2HtmlUI));\nexports.Diff2HtmlUI = Diff2HtmlUI;\n//# sourceMappingURL=diff2html-ui-slim.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLanguage = exports.closeTags = exports.mergeStreams = exports.nodeStream = void 0;\nfunction escapeHTML(value) {\n return value.replace(/&/gm, '&').replace(/</gm, '<').replace(/>/gm, '>');\n}\nfunction tag(node) {\n return node.nodeName.toLowerCase();\n}\nfunction nodeStream(node) {\n var result = [];\n var nodeStream = function (node, offset) {\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (child.nodeType === 3 && child.nodeValue !== null) {\n offset += child.nodeValue.length;\n }\n else if (child.nodeType === 1) {\n result.push({\n event: 'start',\n offset: offset,\n node: child,\n });\n offset = nodeStream(child, offset);\n if (!tag(child).match(/br|hr|img|input/)) {\n result.push({\n event: 'stop',\n offset: offset,\n node: child,\n });\n }\n }\n }\n return offset;\n };\n nodeStream(node, 0);\n return result;\n}\nexports.nodeStream = nodeStream;\nfunction mergeStreams(original, highlighted, value) {\n var processed = 0;\n var result = '';\n var nodeStack = [];\n function isElement(arg) {\n return arg !== null && (arg === null || arg === void 0 ? void 0 : arg.attributes) !== undefined;\n }\n function selectStream() {\n if (!original.length || !highlighted.length) {\n return original.length ? original : highlighted;\n }\n if (original[0].offset !== highlighted[0].offset) {\n return original[0].offset < highlighted[0].offset ? original : highlighted;\n }\n return highlighted[0].event === 'start' ? original : highlighted;\n }\n function open(node) {\n if (!isElement(node)) {\n throw new Error('Node is not an Element');\n }\n result += \"<\".concat(tag(node), \" \").concat(Array()\n .map.call(node.attributes, function (attr) { return \"\".concat(attr.nodeName, \"=\\\"\").concat(escapeHTML(attr.value).replace(/\"/g, '"'), \"\\\"\"); })\n .join(' '), \">\");\n }\n function close(node) {\n result += '</' + tag(node) + '>';\n }\n function render(event) {\n (event.event === 'start' ? open : close)(event.node);\n }\n while (original.length || highlighted.length) {\n var stream = selectStream();\n result += escapeHTML(value.substring(processed, stream[0].offset));\n processed = stream[0].offset;\n if (stream === original) {\n nodeStack.reverse().forEach(close);\n do {\n render(stream.splice(0, 1)[0]);\n stream = selectStream();\n } while (stream === original && stream.length && stream[0].offset === processed);\n nodeStack.reverse().forEach(open);\n }\n else {\n if (stream[0].event === 'start') {\n nodeStack.push(stream[0].node);\n }\n else {\n nodeStack.pop();\n }\n render(stream.splice(0, 1)[0]);\n }\n }\n return result + escapeHTML(value.substr(processed));\n}\nexports.mergeStreams = mergeStreams;\nfunction closeTags(res) {\n var tokenStack = new Array();\n res.value = res.value\n .split('\\n')\n .map(function (line) {\n var prepend = tokenStack.map(function (token) { return \"<span class=\\\"\".concat(token, \"\\\">\"); }).join('');\n var matches = line.matchAll(/(<span class=\"(.*?)\">|<\\/span>)/g);\n Array.from(matches).forEach(function (match) {\n if (match[0] === '</span>')\n tokenStack.shift();\n else\n tokenStack.unshift(match[2]);\n });\n var append = '</span>'.repeat(tokenStack.length);\n return prepend + line + append;\n })\n .join('\\n');\n return res;\n}\nexports.closeTags = closeTags;\nvar languagesToExt = {\n '1c': '1c',\n abnf: 'abnf',\n accesslog: 'accesslog',\n as: 'actionscript',\n adb: 'ada',\n ada: 'ada',\n ads: 'ada',\n angelscript: 'angelscript',\n apache: 'apache',\n applescript: 'applescript',\n scpt: 'applescript',\n arcade: 'arcade',\n cpp: 'cpp',\n hpp: 'cpp',\n arduino: 'arduino',\n ino: 'arduino',\n armasm: 'armasm',\n arm: 'armasm',\n xml: 'xml',\n html: 'xml',\n xhtml: 'xml',\n rss: 'xml',\n atom: 'xml',\n xjb: 'xml',\n xsd: 'xml',\n xsl: 'xml',\n plist: 'xml',\n svg: 'xml',\n asciidoc: 'asciidoc',\n adoc: 'asciidoc',\n asc: 'asciidoc',\n aspectj: 'aspectj',\n ahk: 'autohotkey',\n ahkl: 'autohotkey',\n au3: 'autoit',\n avrasm: 'avrasm',\n awk: 'awk',\n axapta: 'axapta',\n 'x++': 'axapta',\n bash: 'bash',\n sh: 'bash',\n zsh: 'bash',\n b: 'basic',\n bnf: 'bnf',\n bf: 'brainfuck',\n c: 'c',\n h: 'c',\n cats: 'c',\n idc: 'c',\n cal: 'cal',\n capnproto: 'capnproto',\n capnp: 'capnproto',\n ceylon: 'ceylon',\n clean: 'clean',\n clj: 'clojure',\n boot: 'clojure',\n cl2: 'clojure',\n cljc: 'clojure',\n cljs: 'clojure',\n 'cljs.hl': 'clojure',\n cljscm: 'clojure',\n cljx: 'clojure',\n hic: 'clojure',\n 'clojure-repl': 'clojure-repl',\n cmake: 'cmake',\n 'cmake.in': 'cmake',\n coffee: 'coffeescript',\n _coffee: 'coffeescript',\n cake: 'coffeescript',\n cjsx: 'coffeescript',\n iced: 'coffeescript',\n cson: 'coffeescript',\n coq: 'coq',\n cos: 'cos',\n cls: 'cos',\n crmsh: 'crmsh',\n crm: 'crmsh',\n pcmk: 'crmsh',\n cr: 'crystal',\n cs: 'csharp',\n csx: 'csharp',\n csp: 'csp',\n css: 'css',\n d: 'd',\n di: 'd',\n md: 'markdown',\n markdown: 'markdown',\n mdown: 'markdown',\n mdwn: 'markdown',\n mkd: 'markdown',\n mkdn: 'markdown',\n mkdown: 'markdown',\n ronn: 'markdown',\n workbook: 'markdown',\n dart: 'dart',\n dpr: 'delphi',\n dfm: 'delphi',\n pas: 'delphi',\n pascal: 'delphi',\n diff: 'diff',\n patch: 'diff',\n django: 'django',\n jinja: 'django',\n dns: 'dns',\n zone: 'dns',\n bind: 'dns',\n dockerfile: 'dockerfile',\n docker: 'dockerfile',\n dos: 'dos',\n bat: 'dos',\n cmd: 'dos',\n dsconfig: 'dsconfig',\n dts: 'dts',\n dust: 'dust',\n dst: 'dust',\n ebnf: 'ebnf',\n ex: 'elixir',\n exs: 'elixir',\n elm: 'elm',\n rb: 'ruby',\n builder: 'ruby',\n eye: 'ruby',\n gemspec: 'ruby',\n god: 'ruby',\n jbuilder: 'ruby',\n mspec: 'ruby',\n pluginspec: 'ruby',\n podspec: 'ruby',\n rabl: 'ruby',\n rake: 'ruby',\n rbuild: 'ruby',\n rbw: 'ruby',\n rbx: 'ruby',\n ru: 'ruby',\n ruby: 'ruby',\n spec: 'ruby',\n thor: 'ruby',\n watchr: 'ruby',\n erb: 'erb',\n 'erlang-repl': 'erlang-repl',\n erl: 'erlang',\n 'app.src': 'erlang',\n escript: 'erlang',\n hrl: 'erlang',\n xrl: 'erlang',\n yrl: 'erlang',\n excel: 'excel',\n xls: 'excel',\n xlsx: 'excel',\n fix: 'fix',\n flix: 'flix',\n f90: 'fortran',\n f: 'fortran',\n f03: 'fortran',\n f08: 'fortran',\n f77: 'fortran',\n f95: 'fortran',\n for: 'fortran',\n fpp: 'fortran',\n fs: 'fsharp',\n fsx: 'fsharp',\n gams: 'gams',\n gms: 'gams',\n gauss: 'gauss',\n gss: 'gauss',\n gcode: 'gcode',\n nc: 'gcode',\n gherkin: 'gherkin',\n glsl: 'glsl',\n fp: 'glsl',\n frag: 'glsl',\n frg: 'glsl',\n fsh: 'glsl',\n fshader: 'glsl',\n geo: 'glsl',\n geom: 'glsl',\n glslv: 'glsl',\n gshader: 'glsl',\n shader: 'glsl',\n tesc: 'glsl',\n tese: 'glsl',\n vert: 'glsl',\n vrx: 'glsl',\n vsh: 'glsl',\n vshader: 'glsl',\n gml: 'gml',\n go: 'go',\n bal: 'go',\n golo: 'golo',\n gololang: 'golo',\n gradle: 'gradle',\n groovy: 'groovy',\n grt: 'groovy',\n gtpl: 'groovy',\n gvy: 'groovy',\n haml: 'haml',\n 'haml.deface': 'haml',\n handlebars: 'handlebars',\n hbs: 'handlebars',\n 'html.hbs': 'handlebars',\n 'html.handlebars': 'handlebars',\n hs: 'haskell',\n hsc: 'haskell',\n idr: 'haskell',\n purs: 'haskell',\n hx: 'haxe',\n hxsl: 'haxe',\n hsp: 'hsp',\n htmlbars: 'htmlbars',\n http: 'http',\n https: 'http',\n hy: 'hy',\n inform7: 'inform7',\n i7: 'inform7',\n ini: 'ini',\n toml: 'ini',\n cfg: 'ini',\n prefs: 'ini',\n irpf90: 'irpf90',\n isbl: 'isbl',\n java: 'java',\n jsp: 'java',\n js: 'javascript',\n jsx: 'javascript',\n _js: 'javascript',\n bones: 'javascript',\n es: 'javascript',\n es6: 'javascript',\n gs: 'javascript',\n jake: 'javascript',\n jsb: 'javascript',\n jscad: 'javascript',\n jsfl: 'javascript',\n jsm: 'javascript',\n jss: 'javascript',\n mjs: 'javascript',\n njs: 'javascript',\n pac: 'javascript',\n sjs: 'javascript',\n ssjs: 'javascript',\n xsjs: 'javascript',\n xsjslib: 'javascript',\n cfc: 'javascript',\n 'jboss-cli': 'jboss-cli',\n json: 'json',\n avsc: 'json',\n geojson: 'json',\n gltf: 'json',\n 'JSON-tmLanguage': 'json',\n jsonl: 'json',\n tfstate: 'json',\n 'tfstate.backup': 'json',\n topojson: 'json',\n webapp: 'json',\n webmanifest: 'json',\n jl: 'julia',\n 'julia-repl': 'julia-repl',\n kt: 'kotlin',\n ktm: 'kotlin',\n kts: 'kotlin',\n lasso: 'lasso',\n lassoscript: 'lasso',\n tex: 'latex',\n ldif: 'ldif',\n leaf: 'leaf',\n less: 'less',\n lisp: 'lisp',\n factor: 'lisp',\n livecodeserver: 'livecodeserver',\n ls: 'livescript',\n _ls: 'livescript',\n llvm: 'llvm',\n lsl: 'lsl',\n lua: 'lua',\n nse: 'lua',\n p8: 'lua',\n pd_lua: 'lua',\n rbxs: 'lua',\n wlua: 'lua',\n mak: 'makefile',\n make: 'makefile',\n mk: 'makefile',\n mkfile: 'makefile',\n mathematica: 'mathematica',\n mma: 'mathematica',\n wl: 'mathematica',\n matlab: 'matlab',\n maxima: 'maxima',\n mel: 'mel',\n mercury: 'mercury',\n mipsasm: 'mipsasm',\n miz: 'mizar',\n voc: 'mizar',\n al: 'perl',\n cgi: 'perl',\n fcgi: 'perl',\n perl: 'perl',\n ph: 'perl',\n plx: 'perl',\n pl: 'perl',\n pm: 'perl',\n psgi: 'perl',\n t: 'perl',\n mojolicious: 'mojolicious',\n monkey: 'monkey',\n monkey2: 'monkey',\n moonscript: 'moonscript',\n moon: 'moonscript',\n n1ql: 'n1ql',\n nginxconf: 'nginx',\n nim: 'nim',\n nimrod: 'nim',\n nix: 'nix',\n nsi: 'nsis',\n nsh: 'nsis',\n m: 'objectivec',\n objc: 'objectivec',\n mm: 'objectivec',\n 'obj-c': 'objectivec',\n 'obj-c++': 'objectivec',\n 'objective-c++': 'objectivec',\n fun: 'ocaml',\n sig: 'ocaml',\n ml: 'ocaml',\n mli: 'ocaml',\n eliom: 'ocaml',\n eliomi: 'ocaml',\n ml4: 'ocaml',\n mll: 'ocaml',\n mly: 'ocaml',\n openscad: 'openscad',\n oxygene: 'oxygene',\n parser3: 'parser3',\n pf: 'pf',\n 'pf.conf': 'pf',\n pgsql: 'pgsql',\n postgres: 'pgsql',\n postgresql: 'pgsql',\n php: 'php',\n aw: 'php',\n ctp: 'php',\n inc: 'php',\n php3: 'php',\n php4: 'php',\n php5: 'php',\n phps: 'php',\n phpt: 'php',\n 'php-template': 'php-template',\n plaintext: 'plaintext',\n txt: 'plaintext',\n text: 'plaintext',\n pony: 'pony',\n ps: 'powershell',\n ps1: 'powershell',\n psd1: 'powershell',\n psm1: 'powershell',\n pde: 'processing',\n profile: 'profile',\n pro: 'prolog',\n prolog: 'prolog',\n yap: 'prolog',\n properties: 'properties',\n proto: 'protobuf',\n puppet: 'puppet',\n pp: 'puppet',\n purebasic: 'purebasic',\n py: 'python',\n bzl: 'python',\n gyp: 'python',\n gypi: 'python',\n lmi: 'python',\n py3: 'python',\n pyde: 'python',\n pyi: 'python',\n pyp: 'python',\n pyt: 'python',\n pyw: 'python',\n rpy: 'python',\n tac: 'python',\n wsgi: 'python',\n xpy: 'python',\n 'python-repl': 'python-repl',\n pycon: 'python-repl',\n q: 'q',\n k: 'q',\n kdb: 'q',\n qml: 'qml',\n r: 'r',\n rd: 'r',\n rsx: 'r',\n reasonml: 'reasonml',\n re: 'reasonml',\n rib: 'rib',\n roboconf: 'roboconf',\n graph: 'roboconf',\n instances: 'roboconf',\n routeros: 'routeros',\n rsl: 'rsl',\n ruleslanguage: 'ruleslanguage',\n rs: 'rust',\n 'rs.in': 'rust',\n sas: 'sas',\n scala: 'scala',\n kojo: 'scala',\n sbt: 'scala',\n sc: 'scala',\n scm: 'scheme',\n sch: 'scheme',\n sld: 'scheme',\n sls: 'scheme',\n sps: 'scheme',\n ss: 'scheme',\n rkt: 'scheme',\n scilab: 'scilab',\n scss: 'scss',\n shell: 'shell',\n smali: 'smali',\n st: 'smalltalk',\n sml: 'sml',\n sqf: 'sqf',\n sql: 'sql',\n cql: 'sql',\n ddl: 'sql',\n mysql: 'sql',\n prc: 'sql',\n tab: 'sql',\n udf: 'sql',\n viw: 'sql',\n stan: 'stan',\n stanfuncs: 'stan',\n stata: 'stata',\n step21: 'step21',\n step: 'step21',\n stp: 'step21',\n styl: 'stylus',\n subunit: 'subunit',\n swift: 'swift',\n taggerscript: 'taggerscript',\n yml: 'yaml',\n mir: 'yaml',\n reek: 'yaml',\n rviz: 'yaml',\n 'sublime-syntax': 'yaml',\n syntax: 'yaml',\n yaml: 'yaml',\n 'yaml-tmlanguage': 'yaml',\n 'yml.mysql': 'yaml',\n tap: 'tap',\n tcl: 'tcl',\n adp: 'tcl',\n tm: 'tcl',\n thrift: 'thrift',\n tp: 'tp',\n twig: 'twig',\n craftcms: 'twig',\n ts: 'typescript',\n tsx: 'typescript',\n vala: 'vala',\n vbnet: 'vbnet',\n vb: 'vbnet',\n vbscript: 'vbscript',\n vbs: 'vbscript',\n 'vbscript-html': 'vbscript-html',\n v: 'verilog',\n veo: 'verilog',\n vhdl: 'vhdl',\n vhd: 'vhdl',\n vhf: 'vhdl',\n vhi: 'vhdl',\n vho: 'vhdl',\n vhs: 'vhdl',\n vht: 'vhdl',\n vhw: 'vhdl',\n vim: 'vim',\n x86asm: 'x86asm',\n xl: 'xl',\n xquery: 'xquery',\n xpath: 'xquery',\n xq: 'xquery',\n zephir: 'zephir',\n zep: 'zephir',\n};\nfunction getLanguage(fileExtension) {\n var _a;\n return (_a = languagesToExt[fileExtension]) !== null && _a !== void 0 ? _a : 'plaintext';\n}\nexports.getLanguage = getLanguage;\n//# sourceMappingURL=highlight.js-helpers.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hljs = void 0;\nvar core_1 = __importDefault(require(\"highlight.js/lib/core\"));\nvar cpp_1 = __importDefault(require(\"highlight.js/lib/languages/cpp\"));\nvar xml_1 = __importDefault(require(\"highlight.js/lib/languages/xml\"));\nvar awk_1 = __importDefault(require(\"highlight.js/lib/languages/awk\"));\nvar bash_1 = __importDefault(require(\"highlight.js/lib/languages/bash\"));\nvar c_1 = __importDefault(require(\"highlight.js/lib/languages/c\"));\nvar clojure_1 = __importDefault(require(\"highlight.js/lib/languages/clojure\"));\nvar crystal_1 = __importDefault(require(\"highlight.js/lib/languages/crystal\"));\nvar csharp_1 = __importDefault(require(\"highlight.js/lib/languages/csharp\"));\nvar csp_1 = __importDefault(require(\"highlight.js/lib/languages/csp\"));\nvar css_1 = __importDefault(require(\"highlight.js/lib/languages/css\"));\nvar markdown_1 = __importDefault(require(\"highlight.js/lib/languages/markdown\"));\nvar dart_1 = __importDefault(require(\"highlight.js/lib/languages/dart\"));\nvar diff_1 = __importDefault(require(\"highlight.js/lib/languages/diff\"));\nvar dockerfile_1 = __importDefault(require(\"highlight.js/lib/languages/dockerfile\"));\nvar elixir_1 = __importDefault(require(\"highlight.js/lib/languages/elixir\"));\nvar elm_1 = __importDefault(require(\"highlight.js/lib/languages/elm\"));\nvar ruby_1 = __importDefault(require(\"highlight.js/lib/languages/ruby\"));\nvar erlang_1 = __importDefault(require(\"highlight.js/lib/languages/erlang\"));\nvar fsharp_1 = __importDefault(require(\"highlight.js/lib/languages/fsharp\"));\nvar go_1 = __importDefault(require(\"highlight.js/lib/languages/go\"));\nvar gradle_1 = __importDefault(require(\"highlight.js/lib/languages/gradle\"));\nvar groovy_1 = __importDefault(require(\"highlight.js/lib/languages/groovy\"));\nvar handlebars_1 = __importDefault(require(\"highlight.js/lib/languages/handlebars\"));\nvar haskell_1 = __importDefault(require(\"highlight.js/lib/languages/haskell\"));\nvar ini_1 = __importDefault(require(\"highlight.js/lib/languages/ini\"));\nvar java_1 = __importDefault(require(\"highlight.js/lib/languages/java\"));\nvar javascript_1 = __importDefault(require(\"highlight.js/lib/languages/javascript\"));\nvar json_1 = __importDefault(require(\"highlight.js/lib/languages/json\"));\nvar kotlin_1 = __importDefault(require(\"highlight.js/lib/languages/kotlin\"));\nvar less_1 = __importDefault(require(\"highlight.js/lib/languages/less\"));\nvar lisp_1 = __importDefault(require(\"highlight.js/lib/languages/lisp\"));\nvar lua_1 = __importDefault(require(\"highlight.js/lib/languages/lua\"));\nvar makefile_1 = __importDefault(require(\"highlight.js/lib/languages/makefile\"));\nvar perl_1 = __importDefault(require(\"highlight.js/lib/languages/perl\"));\nvar nginx_1 = __importDefault(require(\"highlight.js/lib/languages/nginx\"));\nvar objectivec_1 = __importDefault(require(\"highlight.js/lib/languages/objectivec\"));\nvar pgsql_1 = __importDefault(require(\"highlight.js/lib/languages/pgsql\"));\nvar php_1 = __importDefault(require(\"highlight.js/lib/languages/php\"));\nvar plaintext_1 = __importDefault(require(\"highlight.js/lib/languages/plaintext\"));\nvar powershell_1 = __importDefault(require(\"highlight.js/lib/languages/powershell\"));\nvar properties_1 = __importDefault(require(\"highlight.js/lib/languages/properties\"));\nvar protobuf_1 = __importDefault(require(\"highlight.js/lib/languages/protobuf\"));\nvar python_1 = __importDefault(require(\"highlight.js/lib/languages/python\"));\nvar rust_1 = __importDefault(require(\"highlight.js/lib/languages/rust\"));\nvar scala_1 = __importDefault(require(\"highlight.js/lib/languages/scala\"));\nvar scss_1 = __importDefault(require(\"highlight.js/lib/languages/scss\"));\nvar shell_1 = __importDefault(require(\"highlight.js/lib/languages/shell\"));\nvar sql_1 = __importDefault(require(\"highlight.js/lib/languages/sql\"));\nvar swift_1 = __importDefault(require(\"highlight.js/lib/languages/swift\"));\nvar yaml_1 = __importDefault(require(\"highlight.js/lib/languages/yaml\"));\nvar typescript_1 = __importDefault(require(\"highlight.js/lib/languages/typescript\"));\ncore_1.default.registerLanguage('cpp', cpp_1.default);\ncore_1.default.registerLanguage('xml', xml_1.default);\ncore_1.default.registerLanguage('awk', awk_1.default);\ncore_1.default.registerLanguage('bash', bash_1.default);\ncore_1.default.registerLanguage('c', c_1.default);\ncore_1.default.registerLanguage('clojure', clojure_1.default);\ncore_1.default.registerLanguage('crystal', crystal_1.default);\ncore_1.default.registerLanguage('csharp', csharp_1.default);\ncore_1.default.registerLanguage('csp', csp_1.default);\ncore_1.default.registerLanguage('css', css_1.default);\ncore_1.default.registerLanguage('markdown', markdown_1.default);\ncore_1.default.registerLanguage('dart', dart_1.default);\ncore_1.default.registerLanguage('diff', diff_1.default);\ncore_1.default.registerLanguage('dockerfile', dockerfile_1.default);\ncore_1.default.registerLanguage('elixir', elixir_1.default);\ncore_1.default.registerLanguage('elm', elm_1.default);\ncore_1.default.registerLanguage('ruby', ruby_1.default);\ncore_1.default.registerLanguage('erlang', erlang_1.default);\ncore_1.default.registerLanguage('fsharp', fsharp_1.default);\ncore_1.default.registerLanguage('go', go_1.default);\ncore_1.default.registerLanguage('gradle', gradle_1.default);\ncore_1.default.registerLanguage('groovy', groovy_1.default);\ncore_1.default.registerLanguage('handlebars', handlebars_1.default);\ncore_1.default.registerLanguage('haskell', haskell_1.default);\ncore_1.default.registerLanguage('ini', ini_1.default);\ncore_1.default.registerLanguage('java', java_1.default);\ncore_1.default.registerLanguage('javascript', javascript_1.default);\ncore_1.default.registerLanguage('json', json_1.default);\ncore_1.default.registerLanguage('kotlin', kotlin_1.default);\ncore_1.default.registerLanguage('less', less_1.default);\ncore_1.default.registerLanguage('lisp', lisp_1.default);\ncore_1.default.registerLanguage('lua', lua_1.default);\ncore_1.default.registerLanguage('makefile', makefile_1.default);\ncore_1.default.registerLanguage('perl', perl_1.default);\ncore_1.default.registerLanguage('nginx', nginx_1.default);\ncore_1.default.registerLanguage('objectivec', objectivec_1.default);\ncore_1.default.registerLanguage('pgsql', pgsql_1.default);\ncore_1.default.registerLanguage('php', php_1.default);\ncore_1.default.registerLanguage('plaintext', plaintext_1.default);\ncore_1.default.registerLanguage('powershell', powershell_1.default);\ncore_1.default.registerLanguage('properties', properties_1.default);\ncore_1.default.registerLanguage('protobuf', protobuf_1.default);\ncore_1.default.registerLanguage('python', python_1.default);\ncore_1.default.registerLanguage('rust', rust_1.default);\ncore_1.default.registerLanguage('scala', scala_1.default);\ncore_1.default.registerLanguage('scss', scss_1.default);\ncore_1.default.registerLanguage('shell', shell_1.default);\ncore_1.default.registerLanguage('sql', sql_1.default);\ncore_1.default.registerLanguage('swift', swift_1.default);\ncore_1.default.registerLanguage('yaml', yaml_1.default);\ncore_1.default.registerLanguage('typescript', typescript_1.default);\nexports.hljs = core_1.default;\n//# sourceMappingURL=highlight.js-slim.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashCode = exports.unifyPath = exports.escapeForRegExp = void 0;\nvar specials = [\n '-',\n '[',\n ']',\n '/',\n '{',\n '}',\n '(',\n ')',\n '*',\n '+',\n '?',\n '.',\n '\\\\',\n '^',\n '$',\n '|',\n];\nvar regex = RegExp('[' + specials.join('\\\\') + ']', 'g');\nfunction escapeForRegExp(str) {\n return str.replace(regex, '\\\\$&');\n}\nexports.escapeForRegExp = escapeForRegExp;\nfunction unifyPath(path) {\n return path ? path.replace(/\\\\/g, '/') : path;\n}\nexports.unifyPath = unifyPath;\nfunction hashCode(text) {\n var i, chr, len;\n var hash = 0;\n for (i = 0, len = text.length; i < len; i++) {\n chr = text.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0;\n }\n return hash;\n}\nexports.hashCode = hashCode;\n//# sourceMappingURL=utils.js.map","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.convertChangesToDMP = convertChangesToDMP;\n\n/*istanbul ignore end*/\n// See: http://code.google.com/p/google-diff-match-patch/wiki/API\nfunction convertChangesToDMP(changes) {\n var ret = [],\n change,\n operation;\n\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n\n return ret;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvRE1QIiwiY2hhbmdlcyIsInJldCIsImNoYW5nZSIsIm9wZXJhdGlvbiIsImkiLCJsZW5ndGgiLCJhZGRlZCIsInJlbW92ZWQiLCJwdXNoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ08sU0FBU0EsbUJBQVQsQ0FBNkJDLE9BQTdCLEVBQXNDO0FBQzNDLE1BQUlDLEdBQUcsR0FBRyxFQUFWO0FBQUEsTUFDSUMsTUFESjtBQUFBLE1BRUlDLFNBRko7O0FBR0EsT0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSixPQUFPLENBQUNLLE1BQTVCLEVBQW9DRCxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDRixJQUFBQSxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0ksQ0FBRCxDQUFoQjs7QUFDQSxRQUFJRixNQUFNLENBQUNJLEtBQVgsRUFBa0I7QUFDaEJILE1BQUFBLFNBQVMsR0FBRyxDQUFaO0FBQ0QsS0FGRCxNQUVPLElBQUlELE1BQU0sQ0FBQ0ssT0FBWCxFQUFvQjtBQUN6QkosTUFBQUEsU0FBUyxHQUFHLENBQUMsQ0FBYjtBQUNELEtBRk0sTUFFQTtBQUNMQSxNQUFBQSxTQUFTLEdBQUcsQ0FBWjtBQUNEOztBQUVERixJQUFBQSxHQUFHLENBQUNPLElBQUosQ0FBUyxDQUFDTCxTQUFELEVBQVlELE1BQU0sQ0FBQ08sS0FBbkIsQ0FBVDtBQUNEOztBQUNELFNBQU9SLEdBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNlZTogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2dvb2dsZS1kaWZmLW1hdGNoLXBhdGNoL3dpa2kvQVBJXG5leHBvcnQgZnVuY3Rpb24gY29udmVydENoYW5nZXNUb0RNUChjaGFuZ2VzKSB7XG4gIGxldCByZXQgPSBbXSxcbiAgICAgIGNoYW5nZSxcbiAgICAgIG9wZXJhdGlvbjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhbmdlID0gY2hhbmdlc1tpXTtcbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICBvcGVyYXRpb24gPSAxO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIG9wZXJhdGlvbiA9IC0xO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcGVyYXRpb24gPSAwO1xuICAgIH1cblxuICAgIHJldC5wdXNoKFtvcGVyYXRpb24sIGNoYW5nZS52YWx1ZV0pO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.convertChangesToXML = convertChangesToXML;\n\n/*istanbul ignore end*/\nfunction convertChangesToXML(changes) {\n var ret = [];\n\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n\n if (change.added) {\n ret.push('<ins>');\n } else if (change.removed) {\n ret.push('<del>');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('</ins>');\n } else if (change.removed) {\n ret.push('</del>');\n }\n }\n\n return ret.join('');\n}\n\nfunction escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&');\n n = n.replace(/</g, '<');\n n = n.replace(/>/g, '>');\n n = n.replace(/\"/g, '"');\n return n;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2hhbmdlcyIsInJldCIsImkiLCJsZW5ndGgiLCJjaGFuZ2UiLCJhZGRlZCIsInB1c2giLCJyZW1vdmVkIiwiZXNjYXBlSFRNTCIsInZhbHVlIiwiam9pbiIsInMiLCJuIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQU8sU0FBU0EsbUJBQVQsQ0FBNkJDLE9BQTdCLEVBQXNDO0FBQzNDLE1BQUlDLEdBQUcsR0FBRyxFQUFWOztBQUNBLE9BQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0YsT0FBTyxDQUFDRyxNQUE1QixFQUFvQ0QsQ0FBQyxFQUFyQyxFQUF5QztBQUN2QyxRQUFJRSxNQUFNLEdBQUdKLE9BQU8sQ0FBQ0UsQ0FBRCxDQUFwQjs7QUFDQSxRQUFJRSxNQUFNLENBQUNDLEtBQVgsRUFBa0I7QUFDaEJKLE1BQUFBLEdBQUcsQ0FBQ0ssSUFBSixDQUFTLE9BQVQ7QUFDRCxLQUZELE1BRU8sSUFBSUYsTUFBTSxDQUFDRyxPQUFYLEVBQW9CO0FBQ3pCTixNQUFBQSxHQUFHLENBQUNLLElBQUosQ0FBUyxPQUFUO0FBQ0Q7O0FBRURMLElBQUFBLEdBQUcsQ0FBQ0ssSUFBSixDQUFTRSxVQUFVLENBQUNKLE1BQU0sQ0FBQ0ssS0FBUixDQUFuQjs7QUFFQSxRQUFJTCxNQUFNLENBQUNDLEtBQVgsRUFBa0I7QUFDaEJKLE1BQUFBLEdBQUcsQ0FBQ0ssSUFBSixDQUFTLFFBQVQ7QUFDRCxLQUZELE1BRU8sSUFBSUYsTUFBTSxDQUFDRyxPQUFYLEVBQW9CO0FBQ3pCTixNQUFBQSxHQUFHLENBQUNLLElBQUosQ0FBUyxRQUFUO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPTCxHQUFHLENBQUNTLElBQUosQ0FBUyxFQUFULENBQVA7QUFDRDs7QUFFRCxTQUFTRixVQUFULENBQW9CRyxDQUFwQixFQUF1QjtBQUNyQixNQUFJQyxDQUFDLEdBQUdELENBQVI7QUFDQUMsRUFBQUEsQ0FBQyxHQUFHQSxDQUFDLENBQUNDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLE9BQWhCLENBQUo7QUFDQUQsRUFBQUEsQ0FBQyxHQUFHQSxDQUFDLENBQUNDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLE1BQWhCLENBQUo7QUFDQUQsRUFBQUEsQ0FBQyxHQUFHQSxDQUFDLENBQUNDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLE1BQWhCLENBQUo7QUFDQUQsRUFBQUEsQ0FBQyxHQUFHQSxDQUFDLENBQUNDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLFFBQWhCLENBQUo7QUFFQSxTQUFPRCxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY29udmVydENoYW5nZXNUb1hNTChjaGFuZ2VzKSB7XG4gIGxldCByZXQgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgcmV0LnB1c2goJzxpbnM+Jyk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgcmV0LnB1c2goJzxkZWw+Jyk7XG4gICAgfVxuXG4gICAgcmV0LnB1c2goZXNjYXBlSFRNTChjaGFuZ2UudmFsdWUpKTtcblxuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8L2lucz4nKTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICByZXQucHVzaCgnPC9kZWw+Jyk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQuam9pbignJyk7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUhUTUwocykge1xuICBsZXQgbiA9IHM7XG4gIG4gPSBuLnJlcGxhY2UoLyYvZywgJyZhbXA7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoLzwvZywgJyZsdDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xuICBuID0gbi5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7Jyk7XG5cbiAgcmV0dXJuIG47XG59XG4iXX0=\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.diffArrays = diffArrays;\nexports.arrayDiff = void 0;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(require(\"./base\"))\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*istanbul ignore end*/\nvar arrayDiff = new\n/*istanbul ignore start*/\n_base\n/*istanbul ignore end*/\n[\n/*istanbul ignore start*/\n\"default\"\n/*istanbul ignore end*/\n]();\n\n/*istanbul ignore start*/\nexports.arrayDiff = arrayDiff;\n\n/*istanbul ignore end*/\narrayDiff.tokenize = function (value) {\n return value.slice();\n};\n\narrayDiff.join = arrayDiff.removeEmpty = function (value) {\n return value;\n};\n\nfunction diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2FycmF5LmpzIl0sIm5hbWVzIjpbImFycmF5RGlmZiIsIkRpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic2xpY2UiLCJqb2luIiwicmVtb3ZlRW1wdHkiLCJkaWZmQXJyYXlzIiwib2xkQXJyIiwibmV3QXJyIiwiY2FsbGJhY2siLCJkaWZmIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUFFTyxJQUFNQSxTQUFTLEdBQUc7QUFBSUM7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUEsQ0FBSixFQUFsQjs7Ozs7O0FBQ1BELFNBQVMsQ0FBQ0UsUUFBVixHQUFxQixVQUFTQyxLQUFULEVBQWdCO0FBQ25DLFNBQU9BLEtBQUssQ0FBQ0MsS0FBTixFQUFQO0FBQ0QsQ0FGRDs7QUFHQUosU0FBUyxDQUFDSyxJQUFWLEdBQWlCTCxTQUFTLENBQUNNLFdBQVYsR0FBd0IsVUFBU0gsS0FBVCxFQUFnQjtBQUN2RCxTQUFPQSxLQUFQO0FBQ0QsQ0FGRDs7QUFJTyxTQUFTSSxVQUFULENBQW9CQyxNQUFwQixFQUE0QkMsTUFBNUIsRUFBb0NDLFFBQXBDLEVBQThDO0FBQUUsU0FBT1YsU0FBUyxDQUFDVyxJQUFWLENBQWVILE1BQWYsRUFBdUJDLE1BQXZCLEVBQStCQyxRQUEvQixDQUFQO0FBQWtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGNvbnN0IGFycmF5RGlmZiA9IG5ldyBEaWZmKCk7XG5hcnJheURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc2xpY2UoKTtcbn07XG5hcnJheURpZmYuam9pbiA9IGFycmF5RGlmZi5yZW1vdmVFbXB0eSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmQXJyYXlzKG9sZEFyciwgbmV3QXJyLCBjYWxsYmFjaykgeyByZXR1cm4gYXJyYXlEaWZmLmRpZmYob2xkQXJyLCBuZXdBcnIsIGNhbGxiYWNrKTsgfVxuIl19\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = Diff;\n\n/*istanbul ignore end*/\nfunction Diff() {}\n\nDiff.prototype = {\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n diff: function diff(oldString, newString) {\n /*istanbul ignore start*/\n var\n /*istanbul ignore end*/\n options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = options.callback;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = options;\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n } // Allow subclasses to massage the input prior to running\n\n\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n\n if (options.maxEditLength) {\n maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n }\n\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{\n value: this.join(newString),\n count: newString.length\n }]);\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath =\n /*istanbul ignore start*/\n void 0\n /*istanbul ignore end*/\n ;\n\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced, or until the edit length exceeds options.maxEditLength (if given),\n // in which case it will return undefined.\n\n\n if (callback) {\n (function exec() {\n setTimeout(function () {\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n }\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n equals: function equals(left, right) {\n if (this.options.comparator) {\n return this.options.comparator(left, right);\n } else {\n return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n removeEmpty: function removeEmpty(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n\n return ret;\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n castInput: function castInput(value) {\n return value;\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n tokenize: function tokenize(value) {\n return value.split('');\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n join: function join(chars) {\n return chars.join('');\n }\n};\n\nfunction buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = diff.join(value);\n } else {\n component.value = diff.join(newString.slice(newPos, newPos + component.count));\n }\n\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n } // Special case handle for when one terminal is ignored (i.e. whitespace).\n // For this case we merge the terminal into the prior string and drop the change.\n // This is only available for string mode.\n\n\n var lastComponent = components[componentLen - 1];\n\n if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n}\n\nfunction clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Jhc2UuanMiXSwibmFtZXMiOlsiRGlmZiIsInByb3RvdHlwZSIsImRpZmYiLCJvbGRTdHJpbmciLCJuZXdTdHJpbmciLCJvcHRpb25zIiwiY2FsbGJhY2siLCJzZWxmIiwiZG9uZSIsInZhbHVlIiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsImNhc3RJbnB1dCIsInJlbW92ZUVtcHR5IiwidG9rZW5pemUiLCJuZXdMZW4iLCJsZW5ndGgiLCJvbGRMZW4iLCJlZGl0TGVuZ3RoIiwibWF4RWRpdExlbmd0aCIsIk1hdGgiLCJtaW4iLCJiZXN0UGF0aCIsIm5ld1BvcyIsImNvbXBvbmVudHMiLCJvbGRQb3MiLCJleHRyYWN0Q29tbW9uIiwiam9pbiIsImNvdW50IiwiZXhlY0VkaXRMZW5ndGgiLCJkaWFnb25hbFBhdGgiLCJiYXNlUGF0aCIsImFkZFBhdGgiLCJyZW1vdmVQYXRoIiwiY2FuQWRkIiwiY2FuUmVtb3ZlIiwiY2xvbmVQYXRoIiwicHVzaENvbXBvbmVudCIsImJ1aWxkVmFsdWVzIiwidXNlTG9uZ2VzdFRva2VuIiwiZXhlYyIsInJldCIsImFkZGVkIiwicmVtb3ZlZCIsImxhc3QiLCJwdXNoIiwiY29tbW9uQ291bnQiLCJlcXVhbHMiLCJsZWZ0IiwicmlnaHQiLCJjb21wYXJhdG9yIiwiaWdub3JlQ2FzZSIsInRvTG93ZXJDYXNlIiwiYXJyYXkiLCJpIiwic3BsaXQiLCJjaGFycyIsImNvbXBvbmVudFBvcyIsImNvbXBvbmVudExlbiIsImNvbXBvbmVudCIsInNsaWNlIiwibWFwIiwib2xkVmFsdWUiLCJ0bXAiLCJsYXN0Q29tcG9uZW50IiwicG9wIiwicGF0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWUsU0FBU0EsSUFBVCxHQUFnQixDQUFFOztBQUVqQ0EsSUFBSSxDQUFDQyxTQUFMLEdBQWlCO0FBQUE7O0FBQUE7QUFDZkMsRUFBQUEsSUFEZSxnQkFDVkMsU0FEVSxFQUNDQyxTQURELEVBQzBCO0FBQUE7QUFB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R0FBMkJNLEdBQTNCO0FBQ0Q7QUFDRjtBQUNGLEdBdkMyRSxDQXlDNUU7QUFDQTtBQUNBOzs7QUFDQSxNQUFJQyxhQUFhLEdBQUd4QyxVQUFVLENBQUNrQyxZQUFZLEdBQUcsQ0FBaEIsQ0FBOUI7O0FBQ0EsTUFBSUEsWUFBWSxHQUFHLENBQWYsSUFDRyxPQUFPTSxhQUFhLENBQUN2RCxLQUFyQixLQUErQixRQURsQyxLQUVJdUQsYUFBYSxDQUFDdEIsS0FBZCxJQUF1QnNCLGFBQWEsQ0FBQ3JCLE9BRnpDLEtBR0d6QyxJQUFJLENBQUM2QyxNQUFMLENBQVksRUFBWixFQUFnQmlCLGFBQWEsQ0FBQ3ZELEtBQTlCLENBSFAsRUFHNkM7QUFDM0NlLElBQUFBLFVBQVUsQ0FBQ2tDLFlBQVksR0FBRyxDQUFoQixDQUFWLENBQTZCakQsS0FBN0IsSUFBc0N1RCxhQUFhLENBQUN2RCxLQUFwRDtBQUNBZSxJQUFBQSxVQUFVLENBQUN5QyxHQUFYO0FBQ0Q7O0FBRUQsU0FBT3pDLFVBQVA7QUFDRDs7QUFFRCxTQUFTWSxTQUFULENBQW1COEIsSUFBbkIsRUFBeUI7QUFDdkIsU0FBTztBQUFFM0MsSUFBQUEsTUFBTSxFQUFFMkMsSUFBSSxDQUFDM0MsTUFBZjtBQUF1QkMsSUFBQUEsVUFBVSxFQUFFMEMsSUFBSSxDQUFDMUMsVUFBTCxDQUFnQm9DLEtBQWhCLENBQXNCLENBQXRCO0FBQW5DLEdBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERpZmYoKSB7fVxuXG5EaWZmLnByb3RvdHlwZSA9IHtcbiAgZGlmZihvbGRTdHJpbmcsIG5ld1N0cmluZywgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGNhbGxiYWNrID0gb3B0aW9ucy5jYWxsYmFjaztcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGxldCBzZWxmID0gdGhpcztcblxuICAgIGZ1bmN0aW9uIGRvbmUodmFsdWUpIHtcbiAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYWxsYmFjayh1bmRlZmluZWQsIHZhbHVlKTsgfSwgMCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsbG93IHN1YmNsYXNzZXMgdG8gbWFzc2FnZSB0aGUgaW5wdXQgcHJpb3IgdG8gcnVubmluZ1xuICAgIG9sZFN0cmluZyA9IHRoaXMuY2FzdElucHV0KG9sZFN0cmluZyk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5jYXN0SW5wdXQobmV3U3RyaW5nKTtcblxuICAgIG9sZFN0cmluZyA9IHRoaXMucmVtb3ZlRW1wdHkodGhpcy50b2tlbml6ZShvbGRTdHJpbmcpKTtcbiAgICBuZXdTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUobmV3U3RyaW5nKSk7XG5cbiAgICBsZXQgbmV3TGVuID0gbmV3U3RyaW5nLmxlbmd0aCwgb2xkTGVuID0gb2xkU3RyaW5nLmxlbmd0aDtcbiAgICBsZXQgZWRpdExlbmd0aCA9IDE7XG4gICAgbGV0IG1heEVkaXRMZW5ndGggPSBuZXdMZW4gKyBvbGRMZW47XG4gICAgaWYob3B0aW9ucy5tYXhFZGl0TGVuZ3RoKSB7XG4gICAgICBtYXhFZGl0TGVuZ3RoID0gTWF0aC5taW4obWF4RWRpdExlbmd0aCwgb3B0aW9ucy5tYXhFZGl0TGVuZ3RoKTtcbiAgICB9XG5cbiAgICBsZXQgYmVzdFBhdGggPSBbeyBuZXdQb3M6IC0xLCBjb21wb25lbnRzOiBbXSB9XTtcblxuICAgIC8vIFNlZWQgZWRpdExlbmd0aCA9IDAsIGkuZS4gdGhlIGNvbnRlbnQgc3RhcnRzIHdpdGggdGhlIHNhbWUgdmFsdWVzXG4gICAgbGV0IG9sZFBvcyA9IHRoaXMuZXh0cmFjdENvbW1vbihiZXN0UGF0aFswXSwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIDApO1xuICAgIGlmIChiZXN0UGF0aFswXS5uZXdQb3MgKyAxID49IG5ld0xlbiAmJiBvbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgLy8gSWRlbnRpdHkgcGVyIHRoZSBlcXVhbGl0eSBhbmQgdG9rZW5pemVyXG4gICAgICByZXR1cm4gZG9uZShbe3ZhbHVlOiB0aGlzLmpvaW4obmV3U3RyaW5nKSwgY291bnQ6IG5ld1N0cmluZy5sZW5ndGh9XSk7XG4gICAgfVxuXG4gICAgLy8gTWFpbiB3b3JrZXIgbWV0aG9kLiBjaGVja3MgYWxsIHBlcm11dGF0aW9ucyBvZiBhIGdpdmVuIGVkaXQgbGVuZ3RoIGZvciBhY2NlcHRhbmNlLlxuICAgIGZ1bmN0aW9uIGV4ZWNFZGl0TGVuZ3RoKCkge1xuICAgICAgZm9yIChsZXQgZGlhZ29uYWxQYXRoID0gLTEgKiBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggPD0gZWRpdExlbmd0aDsgZGlhZ29uYWxQYXRoICs9IDIpIHtcbiAgICAgICAgbGV0IGJhc2VQYXRoO1xuICAgICAgICBsZXQgYWRkUGF0aCA9IGJlc3RQYXRoW2RpYWdvbmFsUGF0aCAtIDFdLFxuICAgICAgICAgICAgcmVtb3ZlUGF0aCA9IGJlc3RQYXRoW2RpYWdvbmFsUGF0aCArIDFdLFxuICAgICAgICAgICAgb2xkUG9zID0gKHJlbW92ZVBhdGggPyByZW1vdmVQYXRoLm5ld1BvcyA6IDApIC0gZGlhZ29uYWxQYXRoO1xuICAgICAgICBpZiAoYWRkUGF0aCkge1xuICAgICAgICAgIC8vIE5vIG9uZSBlbHNlIGlzIGdvaW5nIHRvIGF0dGVtcHQgdG8gdXNlIHRoaXMgdmFsdWUsIGNsZWFyIGl0XG4gICAgICAgICAgYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2FuQWRkID0gYWRkUGF0aCAmJiBhZGRQYXRoLm5ld1BvcyArIDEgPCBuZXdMZW4sXG4gICAgICAgICAgICBjYW5SZW1vdmUgPSByZW1vdmVQYXRoICYmIDAgPD0gb2xkUG9zICYmIG9sZFBvcyA8IG9sZExlbjtcbiAgICAgICAgaWYgKCFjYW5BZGQgJiYgIWNhblJlbW92ZSkge1xuICAgICAgICAgIC8vIElmIHRoaXMgcGF0aCBpcyBhIHRlcm1pbmFsIHRoZW4gcHJ1bmVcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VsZWN0IHRoZSBkaWFnb25hbCB0aGF0IHdlIHdhbnQgdG8gYnJhbmNoIGZyb20uIFdlIHNlbGVjdCB0aGUgcHJpb3JcbiAgICAgICAgLy8gcGF0aCB3aG9zZSBwb3NpdGlvbiBpbiB0aGUgbmV3IHN0cmluZyBpcyB0aGUgZmFydGhlc3QgZnJvbSB0aGUgb3JpZ2luXG4gICAgICAgIC8vIGFuZCBkb2VzIG5vdCBwYXNzIHRoZSBib3VuZHMgb2YgdGhlIGRpZmYgZ3JhcGhcbiAgICAgICAgaWYgKCFjYW5BZGQgfHwgKGNhblJlbW92ZSAmJiBhZGRQYXRoLm5ld1BvcyA8IHJlbW92ZVBhdGgubmV3UG9zKSkge1xuICAgICAgICAgIGJhc2VQYXRoID0gY2xvbmVQYXRoKHJlbW92ZVBhdGgpO1xuICAgICAgICAgIHNlbGYucHVzaENvbXBvbmVudChiYXNlUGF0aC5jb21wb25lbnRzLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJhc2VQYXRoID0gYWRkUGF0aDsgLy8gTm8gbmVlZCB0byBjbG9uZSwgd2UndmUgcHVsbGVkIGl0IGZyb20gdGhlIGxpc3RcbiAgICAgICAgICBiYXNlUGF0aC5uZXdQb3MrKztcbiAgICAgICAgICBzZWxmLnB1c2hDb21wb25lbnQoYmFzZVBhdGguY29tcG9uZW50cywgdHJ1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9sZFBvcyA9IHNlbGYuZXh0cmFjdENvbW1vbihiYXNlUGF0aCwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIGRpYWdvbmFsUGF0aCk7XG5cbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBoaXQgdGhlIGVuZCBvZiBib3RoIHN0cmluZ3MsIHRoZW4gd2UgYXJlIGRvbmVcbiAgICAgICAgaWYgKGJhc2VQYXRoLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIG9sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAgICAgcmV0dXJuIGRvbmUoYnVpbGRWYWx1ZXMoc2VsZiwgYmFzZVBhdGguY29tcG9uZW50cywgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIHNlbGYudXNlTG9uZ2VzdFRva2VuKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gT3RoZXJ3aXNlIHRyYWNrIHRoaXMgcGF0aCBhcyBhIHBvdGVudGlhbCBjYW5kaWRhdGUgYW5kIGNvbnRpbnVlLlxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSBiYXNlUGF0aDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBlZGl0TGVuZ3RoKys7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybXMgdGhlIGxlbmd0aCBvZiBlZGl0IGl0ZXJhdGlvbi4gSXMgYSBiaXQgZnVnbHkgYXMgdGhpcyBoYXMgdG8gc3VwcG9ydCB0aGVcbiAgICAvLyBzeW5jIGFuZCBhc3luYyBtb2RlIHdoaWNoIGlzIG5ldmVyIGZ1bi4gTG9vcHMgb3ZlciBleGVjRWRpdExlbmd0aCB1bnRpbCBhIHZhbHVlXG4gICAgLy8gaXMgcHJvZHVjZWQsIG9yIHVudGlsIHRoZSBlZGl0IGxlbmd0aCBleGNlZWRzIG9wdGlvbnMubWF4RWRpdExlbmd0aCAoaWYgZ2l2ZW4pLFxuICAgIC8vIGluIHdoaWNoIGNhc2UgaXQgd2lsbCByZXR1cm4gdW5kZWZpbmVkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgKGZ1bmN0aW9uIGV4ZWMoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKGVkaXRMZW5ndGggPiBtYXhFZGl0TGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWV4ZWNFZGl0TGVuZ3RoKCkpIHtcbiAgICAgICAgICAgIGV4ZWMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDApO1xuICAgICAgfSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2hpbGUgKGVkaXRMZW5ndGggPD0gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICBsZXQgcmV0ID0gZXhlY0VkaXRMZW5ndGgoKTtcbiAgICAgICAgaWYgKHJldCkge1xuICAgICAgICAgIHJldHVybiByZXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgcHVzaENvbXBvbmVudChjb21wb25lbnRzLCBhZGRlZCwgcmVtb3ZlZCkge1xuICAgIGxldCBsYXN0ID0gY29tcG9uZW50c1tjb21wb25lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChsYXN0ICYmIGxhc3QuYWRkZWQgPT09IGFkZGVkICYmIGxhc3QucmVtb3ZlZCA9PT0gcmVtb3ZlZCkge1xuICAgICAgLy8gV2UgbmVlZCB0byBjbG9uZSBoZXJlIGFzIHRoZSBjb21wb25lbnQgY2xvbmUgb3BlcmF0aW9uIGlzIGp1c3RcbiAgICAgIC8vIGFzIHNoYWxsb3cgYXJyYXkgY2xvbmVcbiAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXSA9IHtjb3VudDogbGFzdC5jb3VudCArIDEsIGFkZGVkOiBhZGRlZCwgcmVtb3ZlZDogcmVtb3ZlZCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21wb25lbnRzLnB1c2goe2NvdW50OiAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfSk7XG4gICAgfVxuICB9LFxuICBleHRyYWN0Q29tbW9uKGJhc2VQYXRoLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgZGlhZ29uYWxQYXRoKSB7XG4gICAgbGV0IG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsXG4gICAgICAgIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGgsXG4gICAgICAgIG5ld1BvcyA9IGJhc2VQYXRoLm5ld1BvcyxcbiAgICAgICAgb2xkUG9zID0gbmV3UG9zIC0gZGlhZ29uYWxQYXRoLFxuXG4gICAgICAgIGNvbW1vbkNvdW50ID0gMDtcbiAgICB3aGlsZSAobmV3UG9zICsgMSA8IG5ld0xlbiAmJiBvbGRQb3MgKyAxIDwgb2xkTGVuICYmIHRoaXMuZXF1YWxzKG5ld1N0cmluZ1tuZXdQb3MgKyAxXSwgb2xkU3RyaW5nW29sZFBvcyArIDFdKSkge1xuICAgICAgbmV3UG9zKys7XG4gICAgICBvbGRQb3MrKztcbiAgICAgIGNvbW1vbkNvdW50Kys7XG4gICAgfVxuXG4gICAgaWYgKGNvbW1vbkNvdW50KSB7XG4gICAgICBiYXNlUGF0aC5jb21wb25lbnRzLnB1c2goe2NvdW50OiBjb21tb25Db3VudH0pO1xuICAgIH1cblxuICAgIGJhc2VQYXRoLm5ld1BvcyA9IG5ld1BvcztcbiAgICByZXR1cm4gb2xkUG9zO1xuICB9LFxuXG4gIGVxdWFscyhsZWZ0LCByaWdodCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuY29tcGFyYXRvcikge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5jb21wYXJhdG9yKGxlZnQsIHJpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0XG4gICAgICAgIHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlQ2FzZSAmJiBsZWZ0LnRvTG93ZXJDYXNlKCkgPT09IHJpZ2h0LnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cbiAgfSxcbiAgcmVtb3ZlRW1wdHkoYXJyYXkpIHtcbiAgICBsZXQgcmV0ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFycmF5W2ldKSB7XG4gICAgICAgIHJldC5wdXNoKGFycmF5W2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfSxcbiAgY2FzdElucHV0KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuICB0b2tlbml6ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnJyk7XG4gIH0sXG4gIGpvaW4oY2hhcnMpIHtcbiAgICByZXR1cm4gY2hhcnMuam9pbignJyk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGJ1aWxkVmFsdWVzKGRpZmYsIGNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCB1c2VMb25nZXN0VG9rZW4pIHtcbiAgbGV0IGNvbXBvbmVudFBvcyA9IDAsXG4gICAgICBjb21wb25lbnRMZW4gPSBjb21wb25lbnRzLmxlbmd0aCxcbiAgICAgIG5ld1BvcyA9IDAsXG4gICAgICBvbGRQb3MgPSAwO1xuXG4gIGZvciAoOyBjb21wb25lbnRQb3MgPCBjb21wb25lbnRMZW47IGNvbXBvbmVudFBvcysrKSB7XG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zXTtcbiAgICBpZiAoIWNvbXBvbmVudC5yZW1vdmVkKSB7XG4gICAgICBpZiAoIWNvbXBvbmVudC5hZGRlZCAmJiB1c2VMb25nZXN0VG9rZW4pIHtcbiAgICAgICAgbGV0IHZhbHVlID0gbmV3U3RyaW5nLnNsaWNlKG5ld1BvcywgbmV3UG9zICsgY29tcG9uZW50LmNvdW50KTtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5tYXAoZnVuY3Rpb24odmFsdWUsIGkpIHtcbiAgICAgICAgICBsZXQgb2xkVmFsdWUgPSBvbGRTdHJpbmdbb2xkUG9zICsgaV07XG4gICAgICAgICAgcmV0dXJuIG9sZFZhbHVlLmxlbmd0aCA+IHZhbHVlLmxlbmd0aCA/IG9sZFZhbHVlIDogdmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbXBvbmVudC52YWx1ZSA9IGRpZmYuam9pbih2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb21wb25lbnQudmFsdWUgPSBkaWZmLmpvaW4obmV3U3RyaW5nLnNsaWNlKG5ld1BvcywgbmV3UG9zICsgY29tcG9uZW50LmNvdW50KSk7XG4gICAgICB9XG4gICAgICBuZXdQb3MgKz0gY29tcG9uZW50LmNvdW50O1xuXG4gICAgICAvLyBDb21tb24gY2FzZVxuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQpIHtcbiAgICAgICAgb2xkUG9zICs9IGNvbXBvbmVudC5jb3VudDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50LnZhbHVlID0gZGlmZi5qb2luKG9sZFN0cmluZy5zbGljZShvbGRQb3MsIG9sZFBvcyArIGNvbXBvbmVudC5jb3VudCkpO1xuICAgICAgb2xkUG9zICs9IGNvbXBvbmVudC5jb3VudDtcblxuICAgICAgLy8gUmV2ZXJzZSBhZGQgYW5kIHJlbW92ZSBzbyByZW1vdmVzIGFyZSBvdXRwdXQgZmlyc3QgdG8gbWF0Y2ggY29tbW9uIGNvbnZlbnRpb25cbiAgICAgIC8vIFRoZSBkaWZmaW5nIGFsZ29yaXRobSBpcyB0aWVkIHRvIGFkZCB0aGVuIHJlbW92ZSBvdXRwdXQgYW5kIHRoaXMgaXMgdGhlIHNpbXBsZXN0XG4gICAgICAvLyByb3V0ZSB0byBnZXQgdGhlIGRlc2lyZWQgb3V0cHV0IHdpdGggbWluaW1hbCBvdmVyaGVhZC5cbiAgICAgIGlmIChjb21wb25lbnRQb3MgJiYgY29tcG9uZW50c1tjb21wb25lbnRQb3MgLSAxXS5hZGRlZCkge1xuICAgICAgICBsZXQgdG1wID0gY29tcG9uZW50c1tjb21wb25lbnRQb3MgLSAxXTtcbiAgICAgICAgY29tcG9uZW50c1tjb21wb25lbnRQb3MgLSAxXSA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zXTtcbiAgICAgICAgY29tcG9uZW50c1tjb21wb25lbnRQb3NdID0gdG1wO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpYWwgY2FzZSBoYW5kbGUgZm9yIHdoZW4gb25lIHRlcm1pbmFsIGlzIGlnbm9yZWQgKGkuZS4gd2hpdGVzcGFjZSkuXG4gIC8vIEZvciB0aGlzIGNhc2Ugd2UgbWVyZ2UgdGhlIHRlcm1pbmFsIGludG8gdGhlIHByaW9yIHN0cmluZyBhbmQgZHJvcCB0aGUgY2hhbmdlLlxuICAvLyBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBzdHJpbmcgbW9kZS5cbiAgbGV0IGxhc3RDb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudExlbiAtIDFdO1xuICBpZiAoY29tcG9uZW50TGVuID4gMVxuICAgICAgJiYgdHlwZW9mIGxhc3RDb21wb25lbnQudmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAmJiAobGFzdENvbXBvbmVudC5hZGRlZCB8fCBsYXN0Q29tcG9uZW50LnJlbW92ZWQpXG4gICAgICAmJiBkaWZmLmVxdWFscygnJywgbGFzdENvbXBvbmVudC52YWx1ZSkpIHtcbiAgICBjb21wb25lbnRzW2NvbXBvbmVudExlbiAtIDJdLnZhbHVlICs9IGxhc3RDb21wb25lbnQudmFsdWU7XG4gICAgY29tcG9uZW50cy5wb3AoKTtcbiAgfVxuXG4gIHJldHVybiBjb21wb25lbnRzO1xufVxuXG5mdW5jdGlvbiBjbG9uZVBhdGgocGF0aCkge1xuICByZXR1cm4geyBuZXdQb3M6IHBhdGgubmV3UG9zLCBjb21wb25lbnRzOiBwYXRoLmNvbXBvbmVudHMuc2xpY2UoMCkgfTtcbn1cbiJdfQ==\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.diffChars = diffChars;\nexports.characterDiff = void 0;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(require(\"./base\"))\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*istanbul ignore end*/\nvar characterDiff = new\n/*istanbul ignore start*/\n_base\n/*istanbul ignore end*/\n[\n/*istanbul ignore start*/\n\"default\"\n/*istanbul ignore end*/\n]();\n\n/*istanbul ignore start*/\nexports.characterDiff = characterDiff;\n\n/*istanbul ignore end*/\nfunction diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6WyJjaGFyYWN0ZXJEaWZmIiwiRGlmZiIsImRpZmZDaGFycyIsIm9sZFN0ciIsIm5ld1N0ciIsIm9wdGlvbnMiLCJkaWZmIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUFFTyxJQUFNQSxhQUFhLEdBQUc7QUFBSUM7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUEsQ0FBSixFQUF0Qjs7Ozs7O0FBQ0EsU0FBU0MsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkJDLE1BQTNCLEVBQW1DQyxPQUFuQyxFQUE0QztBQUFFLFNBQU9MLGFBQWEsQ0FBQ00sSUFBZCxDQUFtQkgsTUFBbkIsRUFBMkJDLE1BQTNCLEVBQW1DQyxPQUFuQyxDQUFQO0FBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckRpZmYgPSBuZXcgRGlmZigpO1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDaGFycyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykgeyByZXR1cm4gY2hhcmFjdGVyRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTsgfVxuIl19\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.diffCss = diffCss;\nexports.cssDiff = void 0;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(require(\"./base\"))\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*istanbul ignore end*/\nvar cssDiff = new\n/*istanbul ignore start*/\n_base\n/*istanbul ignore end*/\n[\n/*istanbul ignore start*/\n\"default\"\n/*istanbul ignore end*/\n]();\n\n/*istanbul ignore start*/\nexports.cssDiff = cssDiff;\n\n/*istanbul ignore end*/\ncssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n};\n\nfunction diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6WyJjc3NEaWZmIiwiRGlmZiIsInRva2VuaXplIiwidmFsdWUiLCJzcGxpdCIsImRpZmZDc3MiLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7OztBQUVPLElBQU1BLE9BQU8sR0FBRztBQUFJQztBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQSxDQUFKLEVBQWhCOzs7Ozs7QUFDUEQsT0FBTyxDQUFDRSxRQUFSLEdBQW1CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDakMsU0FBT0EsS0FBSyxDQUFDQyxLQUFOLENBQVksZUFBWixDQUFQO0FBQ0QsQ0FGRDs7QUFJTyxTQUFTQyxPQUFULENBQWlCQyxNQUFqQixFQUF5QkMsTUFBekIsRUFBaUNDLFFBQWpDLEVBQTJDO0FBQUUsU0FBT1IsT0FBTyxDQUFDUyxJQUFSLENBQWFILE1BQWIsRUFBcUJDLE1BQXJCLEVBQTZCQyxRQUE3QixDQUFQO0FBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGNvbnN0IGNzc0RpZmYgPSBuZXcgRGlmZigpO1xuY3NzRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5zcGxpdCgvKFt7fTo7LF18XFxzKykvKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmQ3NzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykgeyByZXR1cm4gY3NzRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ==\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.diffJson = diffJson;\nexports.canonicalize = canonicalize;\nexports.jsonDiff = void 0;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(require(\"./base\"))\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_line = require(\"./line\")\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*istanbul ignore end*/\nvar objectPrototypeToString = Object.prototype.toString;\nvar jsonDiff = new\n/*istanbul ignore start*/\n_base\n/*istanbul ignore end*/\n[\n/*istanbul ignore start*/\n\"default\"\n/*istanbul ignore end*/\n](); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n\n/*istanbul ignore start*/\nexports.jsonDiff = jsonDiff;\n\n/*istanbul ignore end*/\njsonDiff.useLongestToken = true;\njsonDiff.tokenize =\n/*istanbul ignore start*/\n_line\n/*istanbul ignore end*/\n.\n/*istanbul ignore start*/\nlineDiff\n/*istanbul ignore end*/\n.tokenize;\n\njsonDiff.castInput = function (value) {\n /*istanbul ignore start*/\n var _this$options =\n /*istanbul ignore end*/\n this.options,\n undefinedReplacement = _this$options.undefinedReplacement,\n _this$options$stringi = _this$options.stringifyReplacer,\n stringifyReplacer = _this$options$stringi === void 0 ? function (k, v)\n /*istanbul ignore start*/\n {\n return (\n /*istanbul ignore end*/\n typeof v === 'undefined' ? undefinedReplacement : v\n );\n } : _this$options$stringi;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');\n};\n\njsonDiff.equals = function (left, right) {\n return (\n /*istanbul ignore start*/\n _base\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ].prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'))\n );\n};\n\nfunction diffJson(oldObj, newObj, options) {\n return jsonDiff.diff(oldObj, newObj, options);\n} // This function handles the presence of circular references by bailing out when encountering an\n// object that is already on the \"stack\" of items being processed. Accepts an optional replacer\n\n\nfunction canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n if (replacer) {\n obj = replacer(key, obj);\n }\n\n var i;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n }\n\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if (\n /*istanbul ignore start*/\n _typeof(\n /*istanbul ignore end*/\n obj) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n\n var sortedKeys = [],\n _key;\n\n for (_key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(_key)) {\n sortedKeys.push(_key);\n }\n }\n\n sortedKeys.sort();\n\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);\n }\n\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n\n return canonicalizedObj;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOlsib2JqZWN0UHJvdG90eXBlVG9TdHJpbmciLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImpzb25EaWZmIiwiRGlmZiIsInVzZUxvbmdlc3RUb2tlbiIsInRva2VuaXplIiwibGluZURpZmYiLCJjYXN0SW5wdXQiLCJ2YWx1ZSIsIm9wdGlvbnMiLCJ1bmRlZmluZWRSZXBsYWNlbWVudCIsInN0cmluZ2lmeVJlcGxhY2VyIiwiayIsInYiLCJKU09OIiwic3RyaW5naWZ5IiwiY2Fub25pY2FsaXplIiwiZXF1YWxzIiwibGVmdCIsInJpZ2h0IiwiY2FsbCIsInJlcGxhY2UiLCJkaWZmSnNvbiIsIm9sZE9iaiIsIm5ld09iaiIsImRpZmYiLCJvYmoiLCJzdGFjayIsInJlcGxhY2VtZW50U3RhY2siLCJyZXBsYWNlciIsImtleSIsImkiLCJsZW5ndGgiLCJjYW5vbmljYWxpemVkT2JqIiwicHVzaCIsIkFycmF5IiwicG9wIiwidG9KU09OIiwic29ydGVkS2V5cyIsImhhc093blByb3BlcnR5Iiwic29ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7QUFFQSxJQUFNQSx1QkFBdUIsR0FBR0MsTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxRQUFqRDtBQUdPLElBQU1DLFFBQVEsR0FBRztBQUFJQztBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQSxDQUFKLEVBQWpCLEMsQ0FDUDtBQUNBOzs7Ozs7QUFDQUQsUUFBUSxDQUFDRSxlQUFULEdBQTJCLElBQTNCO0FBRUFGLFFBQVEsQ0FBQ0csUUFBVDtBQUFvQkM7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQTtBQUFBLENBQVNELFFBQTdCOztBQUNBSCxRQUFRLENBQUNLLFNBQVQsR0FBcUIsVUFBU0MsS0FB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Z0IsR0FBR1AsR0FBbkI7QUFDRDs7QUFDRCxTQUFPTyxnQkFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7bGluZURpZmZ9IGZyb20gJy4vbGluZSc7XG5cbmNvbnN0IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuXG5leHBvcnQgY29uc3QganNvbkRpZmYgPSBuZXcgRGlmZigpO1xuLy8gRGlzY3JpbWluYXRlIGJldHdlZW4gdHdvIGxpbmVzIG9mIHByZXR0eS1wcmludGVkLCBzZXJpYWxpemVkIEpTT04gd2hlcmUgb25lIG9mIHRoZW0gaGFzIGFcbi8vIGRhbmdsaW5nIGNvbW1hIGFuZCB0aGUgb3RoZXIgZG9lc24ndC4gVHVybnMgb3V0IGluY2x1ZGluZyB0aGUgZGFuZ2xpbmcgY29tbWEgeWllbGRzIHRoZSBuaWNlc3Qgb3V0cHV0OlxuanNvbkRpZmYudXNlTG9uZ2VzdFRva2VuID0gdHJ1ZTtcblxuanNvbkRpZmYudG9rZW5pemUgPSBsaW5lRGlmZi50b2tlbml6ZTtcbmpzb25EaWZmLmNhc3RJbnB1dCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGNvbnN0IHt1bmRlZmluZWRSZXBsYWNlbWVudCwgc3RyaW5naWZ5UmVwbGFjZXIgPSAoaywgdikgPT4gdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkUmVwbGFjZW1lbnQgOiB2fSA9IHRoaXMub3B0aW9ucztcblxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlLCBudWxsLCBudWxsLCBzdHJpbmdpZnlSZXBsYWNlciksIHN0cmluZ2lmeVJlcGxhY2VyLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzLmNhbGwoanNvbkRpZmYsIGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgb3B0aW9ucykgeyByZXR1cm4ganNvbkRpZmYuZGlmZihvbGRPYmosIG5ld09iaiwgb3B0aW9ucyk7IH1cblxuLy8gVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBwcmVzZW5jZSBvZiBjaXJjdWxhciByZWZlcmVuY2VzIGJ5IGJhaWxpbmcgb3V0IHdoZW4gZW5jb3VudGVyaW5nIGFuXG4vLyBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IG9uIHRoZSBcInN0YWNrXCIgb2YgaXRlbXMgYmVpbmcgcHJvY2Vzc2VkLiBBY2NlcHRzIGFuIG9wdGlvbmFsIHJlcGxhY2VyXG5leHBvcnQgZnVuY3Rpb24gY2Fub25pY2FsaXplKG9iaiwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpIHtcbiAgc3RhY2sgPSBzdGFjayB8fCBbXTtcbiAgcmVwbGFjZW1lbnRTdGFjayA9IHJlcGxhY2VtZW50U3RhY2sgfHwgW107XG5cbiAgaWYgKHJlcGxhY2VyKSB7XG4gICAgb2JqID0gcmVwbGFjZXIoa2V5LCBvYmopO1xuICB9XG5cbiAgbGV0IGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKHN0YWNrW2ldID09PSBvYmopIHtcbiAgICAgIHJldHVybiByZXBsYWNlbWVudFN0YWNrW2ldO1xuICAgIH1cbiAgfVxuXG4gIGxldCBjYW5vbmljYWxpemVkT2JqO1xuXG4gIGlmICgnW29iamVjdCBBcnJheV0nID09PSBvYmplY3RQcm90b3R5cGVUb1N0cmluZy5jYWxsKG9iaikpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG5ldyBBcnJheShvYmoubGVuZ3RoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnB1c2goY2Fub25pY2FsaXplZE9iaik7XG4gICAgZm9yIChpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY2Fub25pY2FsaXplZE9ialtpXSA9IGNhbm9uaWNhbGl6ZShvYmpbaV0sIHN0YWNrLCByZXBsYWNlbWVudFN0YWNrLCByZXBsYWNlciwga2V5KTtcbiAgICB9XG4gICAgc3RhY2sucG9wKCk7XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wb3AoKTtcbiAgICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbiAgfVxuXG4gIGlmIChvYmogJiYgb2JqLnRvSlNPTikge1xuICAgIG9iaiA9IG9iai50b0pTT04oKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IHt9O1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdLFxuICAgICAgICBrZXk7XG4gICAgZm9yIChrZXkgaW4gb2JqKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAga2V5ID0gc29ydGVkS2V5c1tpXTtcbiAgICAgIGNhbm9uaWNhbGl6ZWRPYmpba2V5XSA9IGNhbm9uaWNhbGl6ZShvYmpba2V5XSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIGNhbm9uaWNhbGl6ZWRPYmogPSBvYmo7XG4gIH1cbiAgcmV0dXJuIGNhbm9uaWNhbGl6ZWRPYmo7XG59XG4iXX0=\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.diffLines = diffLines;\nexports.diffTrimmedLines = diffTrimmedLines;\nexports.lineDiff = void 0;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(require(\"./base\"))\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_params = require(\"../util/params\")\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*istanbul ignore end*/\nvar lineDiff = new\n/*istanbul ignore start*/\n_base\n/*istanbul ignore end*/\n[\n/*istanbul ignore start*/\n\"default\"\n/*istanbul ignore end*/\n]();\n\n/*istanbul ignore start*/\nexports.lineDiff = lineDiff;\n\n/*istanbul ignore end*/\nlineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/); // Ignore the final empty token that occurs if the string ends with a new line\n\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n } // Merge the content and line separators into single tokens\n\n\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n\n retLines.push(line);\n }\n }\n\n return retLines;\n};\n\nfunction diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n}\n\nfunction diffTrimmedLines(oldStr, newStr, callback) {\n var options =\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _params\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n generateOptions)\n /*istanbul ignore end*/\n (callback, {\n ignoreWhitespace: true\n });\n return lineDiff.diff(oldStr, newStr, options);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOlsibGluZURpZmYiLCJEaWZmIiwidG9rZW5pemUiLCJ2YWx1ZSIsInJldExpbmVzIiwibGluZXNBbmROZXdsaW5lcyIsInNwbGl0IiwibGVuZ3RoIiwicG9wIiwiaSIsImxpbmUiLCJvcHRpb25zIiwibmV3bGluZUlzVG9rZW4iLCJpZ25vcmVXaGl0ZXNwYWNlIiwidHJpbSIsInB1c2giLCJkaWZmTGluZXMiLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiLCJkaWZmVHJpbW1lZExpbmVzIiwiZ2VuZXJhdGVPcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUFFTyxJQUFNQSxRQUFRLEdBQUc7QUFBSUM7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUEsQ0FBSixFQUFqQjs7Ozs7O0FBQ1BELFFBQVEsQ0FBQ0UsUUFBVCxHQUFvQixVQUFTQyxLQUFULEVBQWdCO0FBQ2xDLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQUEsTUFDSUMsZ0JBQWdCLEdBQUdGLEtBQUssQ0FBQ0csS0FBTixDQUFZLFdBQVosQ0FEdkIsQ0FEa0MsQ0FJbEM7O0FBQ0EsTUFBSSxDQUFDRCxnQkFBZ0IsQ0FBQ0EsZ0JBQWdCLENBQUNFLE1BQWpCLEdBQTBCLENBQTNCLENBQXJCLEVBQW9EO0FBQ2xERixJQUFBQSxnQkFBZ0IsQ0FBQ0csR0FBakI7QUFDRCxHQVBpQyxDQVNsQzs7O0FBQ0EsT0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSixnQkFBZ0IsQ0FBQ0UsTUFBckMsRUFBNkNFLENBQUMsRUFBOUMsRUFBa0Q7QUFDaEQsUUFBSUMsSUFBSSxHQUFHTCxnQkFBZ0IsQ0FBQ0ksQ0FBRCxDQUEzQjs7QUFFQSxRQUFJQSxDQUFDLEdBQUcsQ0FBSixJQUFTLENBQUMsS0FBS0UsT0FBTCxDQUFhQyxjQUEzQixFQUEyQztBQUN6Q1IsTUFBQUEsUUFBUSxDQUFDQSxRQUFRLENBQUNHLE1BQVQsR0FBa0IsQ0FBbkIsQ0FBUixJQUFpQ0csSUFBakM7QUFDRCxLQUZELE1BRU87QUFDTCxVQUFJLEtBQUtDLE9BQUwsQ0FBYUUsZ0JBQWpCLEVBQW1DO0FBQ2pDSCxRQUFBQSxJQUFJLEdBQUdBLElBQUksQ0FBQ0ksSUFBTCxFQUFQO0FBQ0Q7O0FBQ0RWLE1BQUFBLFFBQVEsQ0FBQ1csSUFBVCxDQUFjTCxJQUFkO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPTixRQUFQO0FBQ0QsQ0F4QkQ7O0FBMEJPLFNBQVNZLFNBQVQsQ0FBbUJDLE1BQW5CLEVBQTJCQyxNQUEzQixFQUFtQ0MsUUFBbkMsRUFBNkM7QUFBRSxTQUFPbkIsUUFBUSxDQUFDb0IsSUFBVCxDQUFjSCxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QkMsUUFBOUIsQ0FBUDtBQUFpRDs7QUFDaEcsU0FBU0UsZ0JBQVQsQ0FBMEJKLE1BQTFCLEVBQWtDQyxNQUFsQyxFQUEwQ0MsUUFBMUMsRUFBb0Q7QUFDekQsTUFBSVIsT0FBTztBQUFHO0FBQUE7QUFBQTs7QUFBQVc7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQTtBQUFBLEdBQWdCSCxRQUFoQixFQUEwQjtBQUFDTixJQUFBQSxnQkFBZ0IsRUFBRTtBQUFuQixHQUExQixDQUFkO0FBQ0EsU0FBT2IsUUFBUSxDQUFDb0IsSUFBVCxDQUFjSCxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QlAsT0FBOUIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7Z2VuZXJhdGVPcHRpb25zfSBmcm9tICcuLi91dGlsL3BhcmFtcyc7XG5cbmV4cG9ydCBjb25zdCBsaW5lRGlmZiA9IG5ldyBEaWZmKCk7XG5saW5lRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGxldCByZXRMaW5lcyA9IFtdLFxuICAgICAgbGluZXNBbmROZXdsaW5lcyA9IHZhbHVlLnNwbGl0KC8oXFxufFxcclxcbikvKTtcblxuICAvLyBJZ25vcmUgdGhlIGZpbmFsIGVtcHR5IHRva2VuIHRoYXQgb2NjdXJzIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIGEgbmV3IGxpbmVcbiAgaWYgKCFsaW5lc0FuZE5ld2xpbmVzW2xpbmVzQW5kTmV3bGluZXMubGVuZ3RoIC0gMV0pIHtcbiAgICBsaW5lc0FuZE5ld2xpbmVzLnBvcCgpO1xuICB9XG5cbiAgLy8gTWVyZ2UgdGhlIGNvbnRlbnQgYW5kIGxpbmUgc2VwYXJhdG9ycyBpbnRvIHNpbmdsZSB0b2tlbnNcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGxpbmUgPSBsaW5lc0FuZE5ld2xpbmVzW2ldO1xuXG4gICAgaWYgKGkgJSAyICYmICF0aGlzLm9wdGlvbnMubmV3bGluZUlzVG9rZW4pIHtcbiAgICAgIHJldExpbmVzW3JldExpbmVzLmxlbmd0aCAtIDFdICs9IGxpbmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSkge1xuICAgICAgICBsaW5lID0gbGluZS50cmltKCk7XG4gICAgICB9XG4gICAgICByZXRMaW5lcy5wdXNoKGxpbmUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXRMaW5lcztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmTGluZXMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVHJpbW1lZExpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykge1xuICBsZXQgb3B0aW9ucyA9IGdlbmVyYXRlT3B0aW9ucyhjYWxsYmFjaywge2lnbm9yZVdoaXRlc3BhY2U6IHRydWV9KTtcbiAgcmV0dXJuIGxpbmVEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIG9wdGlvbnMpO1xufVxuIl19\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.diffSentences = diffSentences;\nexports.sentenceDiff = void 0;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(require(\"./base\"))\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*istanbul ignore end*/\nvar sentenceDiff = new\n/*istanbul ignore start*/\n_base\n/*istanbul ignore end*/\n[\n/*istanbul ignore start*/\n\"default\"\n/*istanbul ignore end*/\n]();\n\n/*istanbul ignore start*/\nexports.sentenceDiff = sentenceDiff;\n\n/*istanbul ignore end*/\nsentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n};\n\nfunction diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbInNlbnRlbmNlRGlmZiIsIkRpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic3BsaXQiLCJkaWZmU2VudGVuY2VzIiwib2xkU3RyIiwibmV3U3RyIiwiY2FsbGJhY2siLCJkaWZmIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUFHTyxJQUFNQSxZQUFZLEdBQUc7QUFBSUM7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUEsQ0FBSixFQUFyQjs7Ozs7O0FBQ1BELFlBQVksQ0FBQ0UsUUFBYixHQUF3QixVQUFTQyxLQUFULEVBQWdCO0FBQ3RDLFNBQU9BLEtBQUssQ0FBQ0MsS0FBTixDQUFZLHVCQUFaLENBQVA7QUFDRCxDQUZEOztBQUlPLFNBQVNDLGFBQVQsQ0FBdUJDLE1BQXZCLEVBQStCQyxNQUEvQixFQUF1Q0MsUUFBdkMsRUFBaUQ7QUFBRSxTQUFPUixZQUFZLENBQUNTLElBQWIsQ0FBa0JILE1BQWxCLEVBQTBCQyxNQUExQixFQUFrQ0MsUUFBbEMsQ0FBUDtBQUFxRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IHNlbnRlbmNlRGlmZiA9IG5ldyBEaWZmKCk7XG5zZW50ZW5jZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZlNlbnRlbmNlcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIHNlbnRlbmNlRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ==\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.diffWords = diffWords;\nexports.diffWordsWithSpace = diffWordsWithSpace;\nexports.wordDiff = void 0;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(require(\"./base\"))\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_params = require(\"../util/params\")\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*istanbul ignore end*/\n// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\n//\n// Ranges and exceptions:\n// Latin-1 Supplement, 0080–00FF\n// - U+00D7 × Multiplication sign\n// - U+00F7 ÷ Division sign\n// Latin Extended-A, 0100–017F\n// Latin Extended-B, 0180–024F\n// IPA Extensions, 0250–02AF\n// Spacing Modifier Letters, 02B0–02FF\n// - U+02C7 ˇ ˇ Caron\n// - U+02D8 ˘ ˘ Breve\n// - U+02D9 ˙ ˙ Dot Above\n// - U+02DA ˚ ˚ Ring Above\n// - U+02DB ˛ ˛ Ogonek\n// - U+02DC ˜ ˜ Small Tilde\n// - U+02DD ˝ ˝ Double Acute Accent\n// Latin Extended Additional, 1E00–1EFF\nvar extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\nvar reWhitespace = /\\S/;\nvar wordDiff = new\n/*istanbul ignore start*/\n_base\n/*istanbul ignore end*/\n[\n/*istanbul ignore start*/\n\"default\"\n/*istanbul ignore end*/\n]();\n\n/*istanbul ignore start*/\nexports.wordDiff = wordDiff;\n\n/*istanbul ignore end*/\nwordDiff.equals = function (left, right) {\n if (this.options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n};\n\nwordDiff.tokenize = function (value) {\n // All whitespace symbols except newline group into one token, each newline - in separate token\n var tokens = value.split(/([^\\S\\r\\n]+|[()[\\]{}'\"\\r\\n]|\\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n};\n\nfunction diffWords(oldStr, newStr, options) {\n options =\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _params\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n generateOptions)\n /*istanbul ignore end*/\n (options, {\n ignoreWhitespace: true\n });\n return wordDiff.diff(oldStr, newStr, options);\n}\n\nfunction diffWordsWithSpace(oldStr, newStr, options) {\n return wordDiff.diff(oldStr, newStr, options);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOlsiZXh0ZW5kZWRXb3JkQ2hhcnMiLCJyZVdoaXRlc3BhY2UiLCJ3b3JkRGlmZiIsIkRpZmYiLCJlcXVhbHMiLCJsZWZ0IiwicmlnaHQiLCJvcHRpb25zIiwiaWdub3JlQ2FzZSIsInRvTG93ZXJDYXNlIiwiaWdub3JlV2hpdGVzcGFjZSIsInRlc3QiLCJ0b2tlbml6ZSIsInZhbHVlIiwidG9rZW5zIiwic3BsaXQiLCJpIiwibGVuZ3RoIiwic3BsaWNlIiwiZGlmZldvcmRzIiwib2xkU3RyIiwibmV3U3RyIiwiZ2VuZXJhdGVPcHRpb25zIiwiZGlmZiIsImRpZmZXb3Jkc1dpdGhTcGFjZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsaUJBQWlCLEdBQUcsK0RBQTFCO0FBRUEsSUFBTUMsWUFBWSxHQUFHLElBQXJCO0FBRU8sSUFBTUMsUUFBUSxHQUFHO0FBQUlDO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBLENBQUosRUFBakI7Ozs7OztBQUNQRCxRQUFRLENBQUNFLE1BQVQsR0FBa0IsVUFBU0MsSUFBVCxFQUFlQyxLQUFmLEVBQXNCO0FBQ3RDLE1BQUksS0FBS0MsT0FBTCxDQUFhQyxVQUFqQixFQUE2QjtBQUMzQkgsSUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNJLFdBQUwsRUFBUDtBQUNBSCxJQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0csV0FBTixFQUFSO0FBQ0Q7O0FBQ0QsU0FBT0osSUFBSSxLQUFLQyxLQUFULElBQW1CLEtBQUtDLE9BQUwsQ0FBYUcsZ0JBQWIsSUFBaUMsQ0FBQ1QsWUFBWSxDQUFDVSxJQUFiLENBQWtCTixJQUFsQixDQUFsQyxJQUE2RCxDQUFDSixZQUFZLENBQUNVLElBQWIsQ0FBa0JMLEtBQWxCLENBQXhGO0FBQ0QsQ0FORDs7QUFPQUosUUFBUSxDQUFDVSxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEM7QUFDQSxNQUFJQyxNQUFNLEdBQUdELEtBQUssQ0FBQ0UsS0FBTixDQUFZLGlDQUFaLENBQWIsQ0FGa0MsQ0FJbEM7O0FBQ0EsT0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHRixNQUFNLENBQUNHLE1BQVAsR0FBZ0IsQ0FBcEMsRUFBdUNELENBQUMsRUFBeEMsRUFBNEM7QUFDMUM7QUFDQSxRQUFJLENBQUNGLE1BQU0sQ0FBQ0UsQ0FBQyxHQUFHLENBQUwsQ0FBUCxJQUFrQkYsTUFBTSxDQUFDRSxDQUFDLEdBQUcsQ0FBTCxDQUF4QixJQUNLaEIsaUJBQWlCLENBQUNXLElBQWxCLENBQXVCRyxNQUFNLENBQUNFLENBQUQsQ0FBN0IsQ0FETCxJQUVLaEIsaUJBQWlCLENBQUNXLElBQWxCLENBQXVCRyxNQUFNLENBQUNFLENBQUMsR0FBRyxDQUFMLENBQTdCLENBRlQsRUFFZ0Q7QUFDOUNGLE1BQUFBLE1BQU0sQ0FBQ0UsQ0FBRCxDQUFOLElBQWFGLE1BQU0sQ0FBQ0UsQ0FBQyxHQUFHLENBQUwsQ0FBbkI7QUFDQUYsTUFBQUEsTUFBTSxDQUFDSSxNQUFQLENBQWNGLENBQUMsR0FBRyxDQUFsQixFQUFxQixDQUFyQjtBQUNBQSxNQUFBQSxDQUFDO0FBQ0Y7QUFDRjs7QUFFRCxTQUFPRixNQUFQO0FBQ0QsQ0FqQkQ7O0FBbUJPLFNBQVNLLFNBQVQsQ0FBbUJDLE1BQW5CLEVBQTJCQyxNQUEzQixFQUFtQ2QsT0FBbkMsRUFBNEM7QUFDakRBLEVBQUFBLE9BQU87QUFBRztBQUFBO0FBQUE7O0FBQUFlO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUE7QUFBQSxHQUFnQmYsT0FBaEIsRUFBeUI7QUFBQ0csSUFBQUEsZ0JBQWdCLEVBQUU7QUFBbkIsR0FBekIsQ0FBVjtBQUNBLFNBQU9SLFFBQVEsQ0FBQ3FCLElBQVQsQ0FBY0gsTUFBZCxFQUFzQkMsTUFBdEIsRUFBOEJkLE9BQTlCLENBQVA7QUFDRDs7QUFFTSxTQUFTaUIsa0JBQVQsQ0FBNEJKLE1BQTVCLEVBQW9DQyxNQUFwQyxFQUE0Q2QsT0FBNUMsRUFBcUQ7QUFDMUQsU0FBT0wsUUFBUSxDQUFDcUIsSUFBVCxDQUFjSCxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmQsT0FBOUIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7Z2VuZXJhdGVPcHRpb25zfSBmcm9tICcuLi91dGlsL3BhcmFtcyc7XG5cbi8vIEJhc2VkIG9uIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xhdGluX3NjcmlwdF9pbl9Vbmljb2RlXG4vL1xuLy8gUmFuZ2VzIGFuZCBleGNlcHRpb25zOlxuLy8gTGF0aW4tMSBTdXBwbGVtZW50LCAwMDgw4oCTMDBGRlxuLy8gIC0gVSswMEQ3ICDDlyBNdWx0aXBsaWNhdGlvbiBzaWduXG4vLyAgLSBVKzAwRjcgIMO3IERpdmlzaW9uIHNpZ25cbi8vIExhdGluIEV4dGVuZGVkLUEsIDAxMDDigJMwMTdGXG4vLyBMYXRpbiBFeHRlbmRlZC1CLCAwMTgw4oCTMDI0RlxuLy8gSVBBIEV4dGVuc2lvbnMsIDAyNTDigJMwMkFGXG4vLyBTcGFjaW5nIE1vZGlmaWVyIExldHRlcnMsIDAyQjDigJMwMkZGXG4vLyAgLSBVKzAyQzcgIMuHICYjNzExOyAgQ2Fyb25cbi8vICAtIFUrMDJEOCAgy5ggJiM3Mjg7ICBCcmV2ZVxuLy8gIC0gVSswMkQ5ICDLmSAmIzcyOTsgIERvdCBBYm92ZVxuLy8gIC0gVSswMkRBICDLmiAmIzczMDsgIFJpbmcgQWJvdmVcbi8vICAtIFUrMDJEQiAgy5sgJiM3MzE7ICBPZ29uZWtcbi8vICAtIFUrMDJEQyAgy5wgJiM3MzI7ICBTbWFsbCBUaWxkZVxuLy8gIC0gVSswMkREICDLnSAmIzczMzsgIERvdWJsZSBBY3V0ZSBBY2NlbnRcbi8vIExhdGluIEV4dGVuZGVkIEFkZGl0aW9uYWwsIDFFMDDigJMxRUZGXG5jb25zdCBleHRlbmRlZFdvcmRDaGFycyA9IC9eW2EtekEtWlxcdXtDMH0tXFx1e0ZGfVxcdXtEOH0tXFx1e0Y2fVxcdXtGOH0tXFx1ezJDNn1cXHV7MkM4fS1cXHV7MkQ3fVxcdXsyREV9LVxcdXsyRkZ9XFx1ezFFMDB9LVxcdXsxRUZGfV0rJC91O1xuXG5jb25zdCByZVdoaXRlc3BhY2UgPSAvXFxTLztcblxuZXhwb3J0IGNvbnN0IHdvcmREaWZmID0gbmV3IERpZmYoKTtcbndvcmREaWZmLmVxdWFscyA9IGZ1bmN0aW9uKGxlZnQsIHJpZ2h0KSB7XG4gIGlmICh0aGlzLm9wdGlvbnMuaWdub3JlQ2FzZSkge1xuICAgIGxlZnQgPSBsZWZ0LnRvTG93ZXJDYXNlKCk7XG4gICAgcmlnaHQgPSByaWdodC50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIHJldHVybiBsZWZ0ID09PSByaWdodCB8fCAodGhpcy5vcHRpb25zLmlnbm9yZVdoaXRlc3BhY2UgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KGxlZnQpICYmICFyZVdoaXRlc3BhY2UudGVzdChyaWdodCkpO1xufTtcbndvcmREaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgLy8gQWxsIHdoaXRlc3BhY2Ugc3ltYm9scyBleGNlcHQgbmV3bGluZSBncm91cCBpbnRvIG9uZSB0b2tlbiwgZWFjaCBuZXdsaW5lIC0gaW4gc2VwYXJhdGUgdG9rZW5cbiAgbGV0IHRva2VucyA9IHZhbHVlLnNwbGl0KC8oW15cXFNcXHJcXG5dK3xbKClbXFxde30nXCJcXHJcXG5dfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3Jkc1dpdGhTcGFjZShvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICByZXR1cm4gd29yZERpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucyk7XG59XG4iXX0=\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Diff\", {\n enumerable: true,\n get: function get() {\n return _base[\"default\"];\n }\n});\nObject.defineProperty(exports, \"diffChars\", {\n enumerable: true,\n get: function get() {\n return _character.diffChars;\n }\n});\nObject.defineProperty(exports, \"diffWords\", {\n enumerable: true,\n get: function get() {\n return _word.diffWords;\n }\n});\nObject.defineProperty(exports, \"diffWordsWithSpace\", {\n enumerable: true,\n get: function get() {\n return _word.diffWordsWithSpace;\n }\n});\nObject.defineProperty(exports, \"diffLines\", {\n enumerable: true,\n get: function get() {\n return _line.diffLines;\n }\n});\nObject.defineProperty(exports, \"diffTrimmedLines\", {\n enumerable: true,\n get: function get() {\n return _line.diffTrimmedLines;\n }\n});\nObject.defineProperty(exports, \"diffSentences\", {\n enumerable: true,\n get: function get() {\n return _sentence.diffSentences;\n }\n});\nObject.defineProperty(exports, \"diffCss\", {\n enumerable: true,\n get: function get() {\n return _css.diffCss;\n }\n});\nObject.defineProperty(exports, \"diffJson\", {\n enumerable: true,\n get: function get() {\n return _json.diffJson;\n }\n});\nObject.defineProperty(exports, \"canonicalize\", {\n enumerable: true,\n get: function get() {\n return _json.canonicalize;\n }\n});\nObject.defineProperty(exports, \"diffArrays\", {\n enumerable: true,\n get: function get() {\n return _array.diffArrays;\n }\n});\nObject.defineProperty(exports, \"applyPatch\", {\n enumerable: true,\n get: function get() {\n return _apply.applyPatch;\n }\n});\nObject.defineProperty(exports, \"applyPatches\", {\n enumerable: true,\n get: function get() {\n return _apply.applyPatches;\n }\n});\nObject.defineProperty(exports, \"parsePatch\", {\n enumerable: true,\n get: function get() {\n return _parse.parsePatch;\n }\n});\nObject.defineProperty(exports, \"merge\", {\n enumerable: true,\n get: function get() {\n return _merge.merge;\n }\n});\nObject.defineProperty(exports, \"structuredPatch\", {\n enumerable: true,\n get: function get() {\n return _create.structuredPatch;\n }\n});\nObject.defineProperty(exports, \"createTwoFilesPatch\", {\n enumerable: true,\n get: function get() {\n return _create.createTwoFilesPatch;\n }\n});\nObject.defineProperty(exports, \"createPatch\", {\n enumerable: true,\n get: function get() {\n return _create.createPatch;\n }\n});\nObject.defineProperty(exports, \"convertChangesToDMP\", {\n enumerable: true,\n get: function get() {\n return _dmp.convertChangesToDMP;\n }\n});\nObject.defineProperty(exports, \"convertChangesToXML\", {\n enumerable: true,\n get: function get() {\n return _xml.convertChangesToXML;\n }\n});\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(require(\"./diff/base\"))\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_character = require(\"./diff/character\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_word = require(\"./diff/word\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_line = require(\"./diff/line\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_sentence = require(\"./diff/sentence\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_css = require(\"./diff/css\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_json = require(\"./diff/json\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_array = require(\"./diff/array\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_apply = require(\"./patch/apply\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_parse = require(\"./patch/parse\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_merge = require(\"./patch/merge\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_create = require(\"./patch/create\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_dmp = require(\"./convert/dmp\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_xml = require(\"./convert/xml\")\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*istanbul ignore end*/\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBTZWUgTElDRU5TRSBmaWxlIGZvciB0ZXJtcyBvZiB1c2UgKi9cblxuLypcbiAqIFRleHQgZGlmZiBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBUaGlzIGxpYnJhcnkgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBBUElTOlxuICogSnNEaWZmLmRpZmZDaGFyczogQ2hhcmFjdGVyIGJ5IGNoYXJhY3RlciBkaWZmXG4gKiBKc0RpZmYuZGlmZldvcmRzOiBXb3JkIChhcyBkZWZpbmVkIGJ5IFxcYiByZWdleCkgZGlmZiB3aGljaCBpZ25vcmVzIHdoaXRlc3BhY2VcbiAqIEpzRGlmZi5kaWZmTGluZXM6IExpbmUgYmFzZWQgZGlmZlxuICpcbiAqIEpzRGlmZi5kaWZmQ3NzOiBEaWZmIHRhcmdldGVkIGF0IENTUyBjb250ZW50XG4gKlxuICogVGhlc2UgbWV0aG9kcyBhcmUgYmFzZWQgb24gdGhlIGltcGxlbWVudGF0aW9uIHByb3Bvc2VkIGluXG4gKiBcIkFuIE8oTkQpIERpZmZlcmVuY2UgQWxnb3JpdGhtIGFuZCBpdHMgVmFyaWF0aW9uc1wiIChNeWVycywgMTk4NikuXG4gKiBodHRwOi8vY2l0ZXNlZXJ4LmlzdC5wc3UuZWR1L3ZpZXdkb2Mvc3VtbWFyeT9kb2k9MTAuMS4xLjQuNjkyN1xuICovXG5pbXBvcnQgRGlmZiBmcm9tICcuL2RpZmYvYmFzZSc7XG5pbXBvcnQge2RpZmZDaGFyc30gZnJvbSAnLi9kaWZmL2NoYXJhY3Rlcic7XG5pbXBvcnQge2RpZmZXb3JkcywgZGlmZldvcmRzV2l0aFNwYWNlfSBmcm9tICcuL2RpZmYvd29yZCc7XG5pbXBvcnQge2RpZmZMaW5lcywgZGlmZlRyaW1tZWRMaW5lc30gZnJvbSAnLi9kaWZmL2xpbmUnO1xuaW1wb3J0IHtkaWZmU2VudGVuY2VzfSBmcm9tICcuL2RpZmYvc2VudGVuY2UnO1xuXG5pbXBvcnQge2RpZmZDc3N9IGZyb20gJy4vZGlmZi9jc3MnO1xuaW1wb3J0IHtkaWZmSnNvbiwgY2Fub25pY2FsaXplfSBmcm9tICcuL2RpZmYvanNvbic7XG5cbmltcG9ydCB7ZGlmZkFycmF5c30gZnJvbSAnLi9kaWZmL2FycmF5JztcblxuaW1wb3J0IHthcHBseVBhdGNoLCBhcHBseVBhdGNoZXN9IGZyb20gJy4vcGF0Y2gvYXBwbHknO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhdGNoL3BhcnNlJztcbmltcG9ydCB7bWVyZ2V9IGZyb20gJy4vcGF0Y2gvbWVyZ2UnO1xuaW1wb3J0IHtzdHJ1Y3R1cmVkUGF0Y2gsIGNyZWF0ZVR3b0ZpbGVzUGF0Y2gsIGNyZWF0ZVBhdGNofSBmcm9tICcuL3BhdGNoL2NyZWF0ZSc7XG5cbmltcG9ydCB7Y29udmVydENoYW5nZXNUb0RNUH0gZnJvbSAnLi9jb252ZXJ0L2RtcCc7XG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9YTUx9IGZyb20gJy4vY29udmVydC94bWwnO1xuXG5leHBvcnQge1xuICBEaWZmLFxuXG4gIGRpZmZDaGFycyxcbiAgZGlmZldvcmRzLFxuICBkaWZmV29yZHNXaXRoU3BhY2UsXG4gIGRpZmZMaW5lcyxcbiAgZGlmZlRyaW1tZWRMaW5lcyxcbiAgZGlmZlNlbnRlbmNlcyxcblxuICBkaWZmQ3NzLFxuICBkaWZmSnNvbixcblxuICBkaWZmQXJyYXlzLFxuXG4gIHN0cnVjdHVyZWRQYXRjaCxcbiAgY3JlYXRlVHdvRmlsZXNQYXRjaCxcbiAgY3JlYXRlUGF0Y2gsXG4gIGFwcGx5UGF0Y2gsXG4gIGFwcGx5UGF0Y2hlcyxcbiAgcGFyc2VQYXRjaCxcbiAgbWVyZ2UsXG4gIGNvbnZlcnRDaGFuZ2VzVG9ETVAsXG4gIGNvbnZlcnRDaGFuZ2VzVG9YTUwsXG4gIGNhbm9uaWNhbGl6ZVxufTtcbiJdfQ==\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.applyPatch = applyPatch;\nexports.applyPatches = applyPatches;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_parse = require(\"./parse\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_distanceIterator = _interopRequireDefault(require(\"../util/distance-iterator\"))\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*istanbul ignore end*/\nfunction applyPatch(source, uniDiff) {\n /*istanbul ignore start*/\n var\n /*istanbul ignore end*/\n options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof uniDiff === 'string') {\n uniDiff =\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _parse\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n parsePatch)\n /*istanbul ignore end*/\n (uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n } // Apply the diff to the input\n\n\n var lines = source.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = source.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent)\n /*istanbul ignore start*/\n {\n return (\n /*istanbul ignore end*/\n line === patchContent\n );\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL,\n addEOFNL;\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n\n\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line;\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n\n toPos++;\n }\n }\n\n return true;\n } // Search best fit offsets for each hunk based on the previous ones\n\n\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n var iterator =\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _distanceIterator\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ])(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n } // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n\n\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n } // Apply patch hunks\n\n\n var diffOffset = 0;\n\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;\n\n diffOffset += _hunk.newLines - _hunk.oldLines;\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line,\n delimiter = _hunk.linedelimiters[j];\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n delimiters.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n delimiters.splice(_toPos, 0, delimiter);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n } // Handle EOFNL insertion/removal\n\n\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n delimiters.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n delimiters.push('\\n');\n }\n\n for (var _k = 0; _k < lines.length - 1; _k++) {\n lines[_k] = lines[_k] + delimiters[_k];\n }\n\n return lines.join('');\n} // Wrapper that supports multiple file patches via callbacks.\n\n\nfunction applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff =\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _parse\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n parsePatch)\n /*istanbul ignore end*/\n (uniDiff);\n }\n\n var currentIndex = 0;\n\n function processIndex() {\n var index = uniDiff[currentIndex++];\n\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n\n processIndex();\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6WyJhcHBseVBhdGNoIiwic291cmNlIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJwYXJzZVBhdGNoIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiRXJyb3IiLCJsaW5lcyIsInNwbGl0IiwiZGVsaW1pdGVycyIsIm1hdGNoIiwiaHVua3MiLCJjb21wYXJlTGluZSIsImxpbmVOdW1iZXIiLCJsaW5lIiwib3BlcmF0aW9uIiwicGF0Y2hDb250ZW50IiwiZXJyb3JDb3VudCIsImZ1enpGYWN0b3IiLCJtaW5MaW5lIiwib2Zmc2V0IiwicmVtb3ZlRU9GTkwiLCJhZGRFT0ZOTCIsImh1bmtGaXRzIiwiaHVuayIsInRvUG9zIiwiaiIsImNvbnRlbnQiLCJzdWJzdHIiLCJpIiwibWF4TGluZSIsIm9sZExpbmVzIiwibG9jYWxPZmZzZXQiLCJvbGRTdGFydCIsIml0ZXJhdG9yIiwiZGlzdGFuY2VJdGVyYXRvciIsInVuZGVmaW5lZCIsImRpZmZPZmZzZXQiLCJuZXdMaW5lcyIsImRlbGltaXRlciIsImxpbmVkZWxpbWl0ZXJzIiwic3BsaWNlIiwicHJldmlvdXNPcGVyYXRpb24iLCJwb3AiLCJwdXNoIiwiX2siLCJqb2luIiwiYXBwbHlQYXRjaGVzIiwiY3VycmVudEluZGV4IiwicHJvY2Vzc0luZGV4IiwiaW5kZXgiLCJjb21wbGV0ZSIsImxvYWRGaWxlIiwiZXJyIiwiZGF0YSIsInVwZGF0ZWRDb250ZW50IiwicGF0Y2hlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUFFTyxTQUFTQSxVQUFULENBQW9CQyxNQUFwQixFQUE0QkMsT0FBNUIsRUFBbUQ7QUFBQTtBQUFBO0FBQUE7QUFBZEMsRUFBQUEsT0FBYyx1RUFBSixFQUFJOztBQUN4RCxNQUFJLE9BQU9ELE9BQVAsS0FBbUIsUUFBdkIsRUFBaUM7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QUNEOztBQUVELE1BQUlnRCxZQUFZLEdBQUcsQ0FBbkI7O0FBQ0EsV0FBU0MsWUFBVCxHQUF3QjtBQUN0QixRQUFJQyxLQUFLLEdBQUdsRCxPQUFPLENBQUNnRCxZQUFZLEVBQWIsQ0FBbkI7O0FBQ0EsUUFBSSxDQUFDRSxLQUFMLEVBQVk7QUFDVixhQUFPakQsT0FBTyxDQUFDa0QsUUFBUixFQUFQO0FBQ0Q7O0FBRURsRCxJQUFBQSxPQUFPLENBQUNtRCxRQUFSLENBQWlCRixLQUFqQixFQUF3QixVQUFTRyxHQUFULEVBQWNDLElBQWQsRUFBb0I7QUFDMUMsVUFBSUQsR0FBSixFQUFTO0FBQ1AsZUFBT3BELE9BQU8sQ0FBQ2tELFFBQVIsQ0FBaUJFLEdBQWpCLENBQVA7QUFDRDs7QUFFRCxVQUFJRSxjQUFjLEdBQUd6RCxVQUFVLENBQUN3RCxJQUFELEVBQU9KLEtBQVAsRUFBY2pELE9BQWQsQ0FBL0I7QUFDQUEsTUFBQUEsT0FBTyxDQUFDdUQsT0FBUixDQUFnQk4sS0FBaEIsRUFBdUJLLGNBQXZCLEVBQXVDLFVBQVNGLEdBQVQsRUFBYztBQUNuRCxZQUFJQSxHQUFKLEVBQVM7QUFDUCxpQkFBT3BELE9BQU8sQ0FBQ2tELFFBQVIsQ0FBaUJFLEdBQWpCLENBQVA7QUFDRDs7QUFFREosUUFBQUEsWUFBWTtBQUNiLE9BTkQ7QUFPRCxLQWJEO0FBY0Q7O0FBQ0RBLEVBQUFBLFlBQVk7QUFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXJzZSc7XG5pbXBvcnQgZGlzdGFuY2VJdGVyYXRvciBmcm9tICcuLi91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2goc291cmNlLCB1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodW5pRGlmZikpIHtcbiAgICBpZiAodW5pRGlmZi5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcGx5UGF0Y2ggb25seSB3b3JrcyB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xuICAgIH1cblxuICAgIHVuaURpZmYgPSB1bmlEaWZmWzBdO1xuICB9XG5cbiAgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIGlucHV0XG4gIGxldCBsaW5lcyA9IHNvdXJjZS5zcGxpdCgvXFxyXFxufFtcXG5cXHZcXGZcXHJcXHg4NV0vKSxcbiAgICAgIGRlbGltaXRlcnMgPSBzb3VyY2UubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSAobGluZS5sZW5ndGggPiAwID8gbGluZVswXSA6ICcgJyksXG4gICAgICAgICAgY29udGVudCA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lLnN1YnN0cigxKSA6IGxpbmUpO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgLy8gQ29udGV4dCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFjb21wYXJlTGluZSh0b1BvcyArIDEsIGxpbmVzW3RvUG9zXSwgb3BlcmF0aW9uLCBjb250ZW50KSkge1xuICAgICAgICAgIGVycm9yQ291bnQrKztcblxuICAgICAgICAgIGlmIChlcnJvckNvdW50ID4gZnV6ekZhY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0b1BvcysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gU2VhcmNoIGJlc3QgZml0IG9mZnNldHMgZm9yIGVhY2ggaHVuayBiYXNlZCBvbiB0aGUgcHJldmlvdXMgb25lc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgbWF4TGluZSA9IGxpbmVzLmxlbmd0aCAtIGh1bmsub2xkTGluZXMsXG4gICAgICAgIGxvY2FsT2Zmc2V0ID0gMCxcbiAgICAgICAgdG9Qb3MgPSBvZmZzZXQgKyBodW5rLm9sZFN0YXJ0IC0gMTtcblxuICAgIGxldCBpdGVyYXRvciA9IGRpc3RhbmNlSXRlcmF0b3IodG9Qb3MsIG1pbkxpbmUsIG1heExpbmUpO1xuXG4gICAgZm9yICg7IGxvY2FsT2Zmc2V0ICE9PSB1bmRlZmluZWQ7IGxvY2FsT2Zmc2V0ID0gaXRlcmF0b3IoKSkge1xuICAgICAgaWYgKGh1bmtGaXRzKGh1bmssIHRvUG9zICsgbG9jYWxPZmZzZXQpKSB7XG4gICAgICAgIGh1bmsub2Zmc2V0ID0gb2Zmc2V0ICs9IGxvY2FsT2Zmc2V0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9jYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBsb3dlciB0ZXh0IGxpbWl0IHRvIGVuZCBvZiB0aGUgY3VycmVudCBodW5rLCBzbyBuZXh0IG9uZXMgZG9uJ3QgdHJ5XG4gICAgLy8gdG8gZml0IG92ZXIgYWxyZWFkeSBwYXRjaGVkIHRleHRcbiAgICBtaW5MaW5lID0gaHVuay5vZmZzZXQgKyBodW5rLm9sZFN0YXJ0ICsgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIC8vIEFwcGx5IHBhdGNoIGh1bmtzXG4gIGxldCBkaWZmT2Zmc2V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIHRvUG9zID0gaHVuay5vbGRTdGFydCArIGh1bmsub2Zmc2V0ICsgZGlmZk9mZnNldCAtIDE7XG4gICAgZGlmZk9mZnNldCArPSBodW5rLm5ld0xpbmVzIC0gaHVuay5vbGRMaW5lcztcblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgbGV0IGxpbmUgPSBodW5rLmxpbmVzW2pdLFxuICAgICAgICAgIG9wZXJhdGlvbiA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lWzBdIDogJyAnKSxcbiAgICAgICAgICBjb250ZW50ID0gKGxpbmUubGVuZ3RoID4gMCA/IGxpbmUuc3Vic3RyKDEpIDogbGluZSksXG4gICAgICAgICAgZGVsaW1pdGVyID0gaHVuay5saW5lZGVsaW1pdGVyc1tqXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMSk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAxKTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAwLCBkZWxpbWl0ZXIpO1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICBsZXQgcHJldmlvdXNPcGVyYXRpb24gPSBodW5rLmxpbmVzW2ogLSAxXSA/IGh1bmsubGluZXNbaiAtIDFdWzBdIDogbnVsbDtcbiAgICAgICAgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgICByZW1vdmVFT0ZOTCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIGFkZEVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBFT0ZOTCBpbnNlcnRpb24vcmVtb3ZhbFxuICBpZiAocmVtb3ZlRU9GTkwpIHtcbiAgICB3aGlsZSAoIWxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgICBsaW5lcy5wb3AoKTtcbiAgICAgIGRlbGltaXRlcnMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgZGVsaW1pdGVycy5wdXNoKCdcXG4nKTtcbiAgfVxuICBmb3IgKGxldCBfayA9IDA7IF9rIDwgbGluZXMubGVuZ3RoIC0gMTsgX2srKykge1xuICAgIGxpbmVzW19rXSA9IGxpbmVzW19rXSArIGRlbGltaXRlcnNbX2tdO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCcnKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyh1bmlEaWZmLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50ID0gYXBwbHlQYXRjaChkYXRhLCBpbmRleCwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLnBhdGNoZWQoaW5kZXgsIHVwZGF0ZWRDb250ZW50LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZXNzSW5kZXgoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHByb2Nlc3NJbmRleCgpO1xufVxuIl19\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.structuredPatch = structuredPatch;\nexports.formatPatch = formatPatch;\nexports.createTwoFilesPatch = createTwoFilesPatch;\nexports.createPatch = createPatch;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_line = require(\"../diff/line\")\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/*istanbul ignore end*/\nfunction structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.context === 'undefined') {\n options.context = 4;\n }\n\n var diff =\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _line\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n diffLines)\n /*istanbul ignore end*/\n (oldStr, newStr, options);\n\n if (!diff) {\n return;\n }\n\n diff.push({\n value: '',\n lines: []\n }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n\n /*istanbul ignore start*/\n var _loop = function _loop(\n /*istanbul ignore end*/\n i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n /*istanbul ignore start*/\n var _curRange;\n\n /*istanbul ignore end*/\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n } // Output our changes\n\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_curRange =\n /*istanbul ignore end*/\n curRange).push.apply(\n /*istanbul ignore start*/\n _curRange\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n }))); // Track the updated file position\n\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n /*istanbul ignore start*/\n var _curRange2;\n\n /*istanbul ignore end*/\n // Overlapping\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_curRange2 =\n /*istanbul ignore end*/\n curRange).push.apply(\n /*istanbul ignore start*/\n _curRange2\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n contextLines(lines)));\n } else {\n /*istanbul ignore start*/\n var _curRange3;\n\n /*istanbul ignore end*/\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_curRange3 =\n /*istanbul ignore end*/\n curRange).push.apply(\n /*istanbul ignore start*/\n _curRange3\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;\n\n if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n // however, if the old file is empty, do not output the no-nl line\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n }\n\n if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n /*istanbul ignore start*/\n _loop(\n /*istanbul ignore end*/\n i);\n }\n\n return {\n oldFileName: oldFileName,\n newFileName: newFileName,\n oldHeader: oldHeader,\n newHeader: newHeader,\n hunks: hunks\n };\n}\n\nfunction formatPatch(diff) {\n var ret = [];\n\n if (diff.oldFileName == diff.newFileName) {\n ret.push('Index: ' + diff.oldFileName);\n }\n\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n}\n\nfunction createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));\n}\n\nfunction createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOlsic3RydWN0dXJlZFBhdGNoIiwib2xkRmlsZU5hbWUiLCJuZXdGaWxlTmFtZSIsIm9sZFN0ciIsIm5ld1N0ciIsIm9sZEhlYWRlciIsIm5ld0hlYWRlciIsIm9wdGlvbnMiLCJjb250ZXh0IiwiZGlmZiIsImRpZmZMaW5lcyIsInB1c2giLCJ2YWx1ZSIsImxpbmVzIiwiY29udGV4dExpbmVzIiwibWFwIiwiZW50cnkiLCJodW5rcyIsIm9sZFJhbmdlU3RhcnQiLCJuZXdSYW5nZVN0YXJ0IiwiY3VyUmFuZ2UiLCJvbGRMaW5lIiwibmV3TGluZSIsImkiLCJjdXJyZW50IiwicmVwbGFjZSIsInNwbGl0IiwiYWRkZWQiLCJyZW1vdmVkIiwicHJldiIsInNsaWNlIiwibGVuZ3RoIiwiY29udGV4dFNpemUiLCJNYXRoIiwibWluIiwiaHVuayIsIm9sZFN0YXJ0Iiwib2xkTGluZXMiLCJuZXdTdGFydCIsIm5ld0xpbmVzIiwib2xkRU9GTmV3bGluZSIsInRlc3QiLCJuZXdFT0ZOZXdsaW5lIiwibm9ObEJlZm9yZUFkZHMiLCJzcGxpY2UiLCJmb3JtYXRQYXRjaCIsInJldCIsImFwcGx5Iiwiam9pbiIsImNyZWF0ZVR3b0ZpbGVzUGF0Y2giLCJjcmVhdGVQYXRjaCIsImZpbGVOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7QUFFTyxTQUFTQSxlQUFULENBQXlCQyxXQUF6QixFQUFzQ0MsV0FBdEMsRUFBbURDLE1BQW5ELEVBQTJEQyxNQUEzRCxFQUFtRUMsU0FBbkUsRUFBOEVDLFNBQTlFLEVBQXlGQyxPQUF6RixFQUFrRztBQUN2RyxNQUFJLENBQUNBLE9BQUwsRUFBYztBQUNaQSxJQUFBQSxPQUFPLEdBQUcsRUFBVjtBQUNEOztBQUNELE1BQUksT0FBT0EsT0FBTyxDQUFDQyxPQUFmLEtBQTJCLFdBQS9CLEVBQTRDO0FB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IHtkaWZmTGluZXN9IGZyb20gJy4uL2RpZmYvbGluZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgIG9wdGlvbnMuY29udGV4dCA9IDQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbiAgaWYoIWRpZmYpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBkaWZmLnB1c2goe3ZhbHVlOiAnJywgbGluZXM6IFtdfSk7IC8vIEFwcGVuZCBhbiBlbXB0eSB2YWx1ZSB0byBtYWtlIGNsZWFudXAgZWFzaWVyXG5cbiAgZnVuY3Rpb24gY29udGV4dExpbmVzKGxpbmVzKSB7XG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihlbnRyeSkgeyByZXR1cm4gJyAnICsgZW50cnk7IH0pO1xuICB9XG5cbiAgbGV0IGh1bmtzID0gW107XG4gIGxldCBvbGRSYW5nZVN0YXJ0ID0gMCwgbmV3UmFuZ2VTdGFydCA9IDAsIGN1clJhbmdlID0gW10sXG4gICAgICBvbGRMaW5lID0gMSwgbmV3TGluZSA9IDE7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWZmW2ldLFxuICAgICAgICAgIGxpbmVzID0gY3VycmVudC5saW5lcyB8fCBjdXJyZW50LnZhbHVlLnJlcGxhY2UoL1xcbiQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICAgIGN1cnJlbnQubGluZXMgPSBsaW5lcztcblxuICAgIGlmIChjdXJyZW50LmFkZGVkIHx8IGN1cnJlbnQucmVtb3ZlZCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwcmV2aW91cyBjb250ZXh0LCBzdGFydCB3aXRoIHRoYXRcbiAgICAgIGlmICghb2xkUmFuZ2VTdGFydCkge1xuICAgICAgICBjb25zdCBwcmV2ID0gZGlmZltpIC0gMV07XG4gICAgICAgIG9sZFJhbmdlU3RhcnQgPSBvbGRMaW5lO1xuICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gbmV3TGluZTtcblxuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgIGN1clJhbmdlID0gb3B0aW9ucy5jb250ZXh0ID4gMCA/IGNvbnRleHRMaW5lcyhwcmV2LmxpbmVzLnNsaWNlKC1vcHRpb25zLmNvbnRleHQpKSA6IFtdO1xuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE91dHB1dCBvdXIgY2hhbmdlc1xuICAgICAgY3VyUmFuZ2UucHVzaCguLi4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiAoY3VycmVudC5hZGRlZCA/ICcrJyA6ICctJykgKyBlbnRyeTtcbiAgICAgIH0pKTtcblxuICAgICAgLy8gVHJhY2sgdGhlIHVwZGF0ZWQgZmlsZSBwb3NpdGlvblxuICAgICAgaWYgKGN1cnJlbnQuYWRkZWQpIHtcbiAgICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWRlbnRpY2FsIGNvbnRleHQgbGluZXMuIFRyYWNrIGxpbmUgY2hhbmdlc1xuICAgICAgaWYgKG9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3V0IGFueSBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG91dHB1dCAob3Igam9pbiBvdmVybGFwcGluZylcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQgKiAyICYmIGkgPCBkaWZmLmxlbmd0aCAtIDIpIHtcbiAgICAgICAgICAvLyBPdmVybGFwcGluZ1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGVuZCB0aGUgcmFuZ2UgYW5kIG91dHB1dFxuICAgICAgICAgIGxldCBjb250ZXh0U2l6ZSA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgICAgICBjdXJSYW5nZS5wdXNoKC4uLiBjb250ZXh0TGluZXMobGluZXMuc2xpY2UoMCwgY29udGV4dFNpemUpKSk7XG5cbiAgICAgICAgICBsZXQgaHVuayA9IHtcbiAgICAgICAgICAgIG9sZFN0YXJ0OiBvbGRSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgb2xkTGluZXM6IChvbGRMaW5lIC0gb2xkUmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIG5ld1N0YXJ0OiBuZXdSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgbmV3TGluZXM6IChuZXdMaW5lIC0gbmV3UmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIGxpbmVzOiBjdXJSYW5nZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGkgPj0gZGlmZi5sZW5ndGggLSAyICYmIGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQpIHtcbiAgICAgICAgICAgIC8vIEVPRiBpcyBpbnNpZGUgdGhpcyBodW5rXG4gICAgICAgICAgICBsZXQgb2xkRU9GTmV3bGluZSA9ICgoL1xcbiQvKS50ZXN0KG9sZFN0cikpO1xuICAgICAgICAgICAgbGV0IG5ld0VPRk5ld2xpbmUgPSAoKC9cXG4kLykudGVzdChuZXdTdHIpKTtcbiAgICAgICAgICAgIGxldCBub05sQmVmb3JlQWRkcyA9IGxpbmVzLmxlbmd0aCA9PSAwICYmIGN1clJhbmdlLmxlbmd0aCA+IGh1bmsub2xkTGluZXM7XG4gICAgICAgICAgICBpZiAoIW9sZEVPRk5ld2xpbmUgJiYgbm9ObEJlZm9yZUFkZHMgJiYgb2xkU3RyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiBvbGQgaGFzIG5vIGVvbCBhbmQgbm8gdHJhaWxpbmcgY29udGV4dDsgbm8tbmwgY2FuIGVuZCB1cCBiZWZvcmUgYWRkc1xuICAgICAgICAgICAgICAvLyBob3dldmVyLCBpZiB0aGUgb2xkIGZpbGUgaXMgZW1wdHksIGRvIG5vdCBvdXRwdXQgdGhlIG5vLW5sIGxpbmVcbiAgICAgICAgICAgICAgY3VyUmFuZ2Uuc3BsaWNlKGh1bmsub2xkTGluZXMsIDAsICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoIW9sZEVPRk5ld2xpbmUgJiYgIW5vTmxCZWZvcmVBZGRzKSB8fCAhbmV3RU9GTmV3bGluZSkge1xuICAgICAgICAgICAgICBjdXJSYW5nZS5wdXNoKCdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaHVua3MucHVzaChodW5rKTtcblxuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgPSAwO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgPSAwO1xuICAgICAgICAgIGN1clJhbmdlID0gW107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9sZExpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvbGRGaWxlTmFtZTogb2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lOiBuZXdGaWxlTmFtZSxcbiAgICBvbGRIZWFkZXI6IG9sZEhlYWRlciwgbmV3SGVhZGVyOiBuZXdIZWFkZXIsXG4gICAgaHVua3M6IGh1bmtzXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRQYXRjaChkaWZmKSB7XG4gIGNvbnN0IHJldCA9IFtdO1xuICBpZiAoZGlmZi5vbGRGaWxlTmFtZSA9PSBkaWZmLm5ld0ZpbGVOYW1lKSB7XG4gICAgcmV0LnB1c2goJ0luZGV4OiAnICsgZGlmZi5vbGRGaWxlTmFtZSk7XG4gIH1cbiAgcmV0LnB1c2goJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nKTtcbiAgcmV0LnB1c2goJy0tLSAnICsgZGlmZi5vbGRGaWxlTmFtZSArICh0eXBlb2YgZGlmZi5vbGRIZWFkZXIgPT09ICd1bmRlZmluZWQnID8gJycgOiAnXFx0JyArIGRpZmYub2xkSGVhZGVyKSk7XG4gIHJldC5wdXNoKCcrKysgJyArIGRpZmYubmV3RmlsZU5hbWUgKyAodHlwZW9mIGRpZmYubmV3SGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm5ld0hlYWRlcikpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5odW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGh1bmsgPSBkaWZmLmh1bmtzW2ldO1xuICAgIC8vIFVuaWZpZWQgRGlmZiBGb3JtYXQgcXVpcms6IElmIHRoZSBjaHVuayBzaXplIGlzIDAsXG4gICAgLy8gdGhlIGZpcnN0IG51bWJlciBpcyBvbmUgbG93ZXIgdGhhbiBvbmUgd291bGQgZXhwZWN0LlxuICAgIC8vIGh0dHBzOi8vd3d3LmFydGltYS5jb20vd2VibG9ncy92aWV3cG9zdC5qc3A/dGhyZWFkPTE2NDI5M1xuICAgIGlmIChodW5rLm9sZExpbmVzID09PSAwKSB7XG4gICAgICBodW5rLm9sZFN0YXJ0IC09IDE7XG4gICAgfVxuICAgIGlmIChodW5rLm5ld0xpbmVzID09PSAwKSB7XG4gICAgICBodW5rLm5ld1N0YXJ0IC09IDE7XG4gICAgfVxuICAgIHJldC5wdXNoKFxuICAgICAgJ0BAIC0nICsgaHVuay5vbGRTdGFydCArICcsJyArIGh1bmsub2xkTGluZXNcbiAgICAgICsgJyArJyArIGh1bmsubmV3U3RhcnQgKyAnLCcgKyBodW5rLm5ld0xpbmVzXG4gICAgICArICcgQEAnXG4gICAgKTtcbiAgICByZXQucHVzaC5hcHBseShyZXQsIGh1bmsubGluZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJldC5qb2luKCdcXG4nKSArICdcXG4nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdvRmlsZXNQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICByZXR1cm4gZm9ybWF0UGF0Y2goc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXRjaChmaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIHJldHVybiBjcmVhdGVUd29GaWxlc1BhdGNoKGZpbGVOYW1lLCBmaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcbn1cbiJdfQ==\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcLineCount = calcLineCount;\nexports.merge = merge;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_create = require(\"./create\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_parse = require(\"./parse\")\n/*istanbul ignore end*/\n;\n\nvar\n/*istanbul ignore start*/\n_array = require(\"../util/array\")\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/*istanbul ignore end*/\nfunction calcLineCount(hunk) {\n /*istanbul ignore start*/\n var _calcOldNewLineCount =\n /*istanbul ignore end*/\n calcOldNewLineCount(hunk.lines),\n oldLines = _calcOldNewLineCount.oldLines,\n newLines = _calcOldNewLineCount.newLines;\n\n if (oldLines !== undefined) {\n hunk.oldLines = oldLines;\n } else {\n delete hunk.oldLines;\n }\n\n if (newLines !== undefined) {\n hunk.newLines = newLines;\n } else {\n delete hunk.newLines;\n }\n}\n\nfunction merge(mine, theirs, base) {\n mine = loadPatch(mine, base);\n theirs = loadPatch(theirs, base);\n var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.\n // Leaving sanity checks on this to the API consumer that may know more about the\n // meaning in their own context.\n\n if (mine.index || theirs.index) {\n ret.index = mine.index || theirs.index;\n }\n\n if (mine.newFileName || theirs.newFileName) {\n if (!fileNameChanged(mine)) {\n // No header or no change in ours, use theirs (and ours if theirs does not exist)\n ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n ret.newFileName = theirs.newFileName || mine.newFileName;\n ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n ret.newHeader = theirs.newHeader || mine.newHeader;\n } else if (!fileNameChanged(theirs)) {\n // No header or no change in theirs, use ours\n ret.oldFileName = mine.oldFileName;\n ret.newFileName = mine.newFileName;\n ret.oldHeader = mine.oldHeader;\n ret.newHeader = mine.newHeader;\n } else {\n // Both changed... figure it out\n ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n }\n }\n\n ret.hunks = [];\n var mineIndex = 0,\n theirsIndex = 0,\n mineOffset = 0,\n theirsOffset = 0;\n\n while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n var mineCurrent = mine.hunks[mineIndex] || {\n oldStart: Infinity\n },\n theirsCurrent = theirs.hunks[theirsIndex] || {\n oldStart: Infinity\n };\n\n if (hunkBefore(mineCurrent, theirsCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n mineIndex++;\n theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n theirsIndex++;\n mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n } else {\n // Overlap, merge as best we can\n var mergedHunk = {\n oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n oldLines: 0,\n newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n newLines: 0,\n lines: []\n };\n mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n theirsIndex++;\n mineIndex++;\n ret.hunks.push(mergedHunk);\n }\n }\n\n return ret;\n}\n\nfunction loadPatch(param, base) {\n if (typeof param === 'string') {\n if (/^@@/m.test(param) || /^Index:/m.test(param)) {\n return (\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _parse\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n parsePatch)\n /*istanbul ignore end*/\n (param)[0]\n );\n }\n\n if (!base) {\n throw new Error('Must provide a base reference or pass in a patch');\n }\n\n return (\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _create\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n structuredPatch)\n /*istanbul ignore end*/\n (undefined, undefined, base, param)\n );\n }\n\n return param;\n}\n\nfunction fileNameChanged(patch) {\n return patch.newFileName && patch.newFileName !== patch.oldFileName;\n}\n\nfunction selectField(index, mine, theirs) {\n if (mine === theirs) {\n return mine;\n } else {\n index.conflict = true;\n return {\n mine: mine,\n theirs: theirs\n };\n }\n}\n\nfunction hunkBefore(test, check) {\n return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;\n}\n\nfunction cloneHunk(hunk, offset) {\n return {\n oldStart: hunk.oldStart,\n oldLines: hunk.oldLines,\n newStart: hunk.newStart + offset,\n newLines: hunk.newLines,\n lines: hunk.lines\n };\n}\n\nfunction mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n // This will generally result in a conflicted hunk, but there are cases where the context\n // is the only overlap where we can successfully merge the content here.\n var mine = {\n offset: mineOffset,\n lines: mineLines,\n index: 0\n },\n their = {\n offset: theirOffset,\n lines: theirLines,\n index: 0\n }; // Handle any leading content\n\n insertLeading(hunk, mine, their);\n insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.\n\n while (mine.index < mine.lines.length && their.index < their.lines.length) {\n var mineCurrent = mine.lines[mine.index],\n theirCurrent = their.lines[their.index];\n\n if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n // Both modified ...\n mutualChange(hunk, mine, their);\n } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n /*istanbul ignore start*/\n var _hunk$lines;\n\n /*istanbul ignore end*/\n // Mine inserted\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n collectChange(mine)));\n } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n /*istanbul ignore start*/\n var _hunk$lines2;\n\n /*istanbul ignore end*/\n // Theirs inserted\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines2 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines2\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n collectChange(their)));\n } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n // Mine removed or edited\n removal(hunk, mine, their);\n } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n // Their removed or edited\n removal(hunk, their, mine, true);\n } else if (mineCurrent === theirCurrent) {\n // Context identity\n hunk.lines.push(mineCurrent);\n mine.index++;\n their.index++;\n } else {\n // Context mismatch\n conflict(hunk, collectChange(mine), collectChange(their));\n }\n } // Now push anything that may be remaining\n\n\n insertTrailing(hunk, mine);\n insertTrailing(hunk, their);\n calcLineCount(hunk);\n}\n\nfunction mutualChange(hunk, mine, their) {\n var myChanges = collectChange(mine),\n theirChanges = collectChange(their);\n\n if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n // Special case for remove changes that are supersets of one another\n if (\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _array\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n arrayStartsWith)\n /*istanbul ignore end*/\n (myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n /*istanbul ignore start*/\n var _hunk$lines3;\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines3 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines3\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n myChanges));\n\n return;\n } else if (\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _array\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n arrayStartsWith)\n /*istanbul ignore end*/\n (theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n /*istanbul ignore start*/\n var _hunk$lines4;\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines4 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines4\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n theirChanges));\n\n return;\n }\n } else if (\n /*istanbul ignore start*/\n (0,\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n _array\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n arrayEqual)\n /*istanbul ignore end*/\n (myChanges, theirChanges)) {\n /*istanbul ignore start*/\n var _hunk$lines5;\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines5 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines5\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n myChanges));\n\n return;\n }\n\n conflict(hunk, myChanges, theirChanges);\n}\n\nfunction removal(hunk, mine, their, swap) {\n var myChanges = collectChange(mine),\n theirChanges = collectContext(their, myChanges);\n\n if (theirChanges.merged) {\n /*istanbul ignore start*/\n var _hunk$lines6;\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines6 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines6\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n theirChanges.merged));\n } else {\n conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n }\n}\n\nfunction conflict(hunk, mine, their) {\n hunk.conflict = true;\n hunk.lines.push({\n conflict: true,\n mine: mine,\n theirs: their\n });\n}\n\nfunction insertLeading(hunk, insert, their) {\n while (insert.offset < their.offset && insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n insert.offset++;\n }\n}\n\nfunction insertTrailing(hunk, insert) {\n while (insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n }\n}\n\nfunction collectChange(state) {\n var ret = [],\n operation = state.lines[state.index][0];\n\n while (state.index < state.lines.length) {\n var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n\n if (operation === '-' && line[0] === '+') {\n operation = '+';\n }\n\n if (operation === line[0]) {\n ret.push(line);\n state.index++;\n } else {\n break;\n }\n }\n\n return ret;\n}\n\nfunction collectContext(state, matchChanges) {\n var changes = [],\n merged = [],\n matchIndex = 0,\n contextChanges = false,\n conflicted = false;\n\n while (matchIndex < matchChanges.length && state.index < state.lines.length) {\n var change = state.lines[state.index],\n match = matchChanges[matchIndex]; // Once we've hit our add, then we are done\n\n if (match[0] === '+') {\n break;\n }\n\n contextChanges = contextChanges || change[0] !== ' ';\n merged.push(match);\n matchIndex++; // Consume any additions in the other block as a conflict to attempt\n // to pull in the remaining context after this\n\n if (change[0] === '+') {\n conflicted = true;\n\n while (change[0] === '+') {\n changes.push(change);\n change = state.lines[++state.index];\n }\n }\n\n if (match.substr(1) === change.substr(1)) {\n changes.push(change);\n state.index++;\n } else {\n conflicted = true;\n }\n }\n\n if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {\n conflicted = true;\n }\n\n if (conflicted) {\n return changes;\n }\n\n while (matchIndex < matchChanges.length) {\n merged.push(matchChanges[matchIndex++]);\n }\n\n return {\n merged: merged,\n changes: changes\n };\n}\n\nfunction allRemoves(changes) {\n return changes.reduce(function (prev, change) {\n return prev && change[0] === '-';\n }, true);\n}\n\nfunction skipRemoveSuperset(state, removeChanges, delta) {\n for (var i = 0; i < delta; i++) {\n var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n\n if (state.lines[state.index + i] !== ' ' + changeContent) {\n return false;\n }\n }\n\n state.index += delta;\n return true;\n}\n\nfunction calcOldNewLineCount(lines) {\n var oldLines = 0;\n var newLines = 0;\n lines.forEach(function (line) {\n if (typeof line !== 'string') {\n var myCount = calcOldNewLineCount(line.mine);\n var theirCount = calcOldNewLineCount(line.theirs);\n\n if (oldLines !== undefined) {\n if (myCount.oldLines === theirCount.oldLines) {\n oldLines += myCount.oldLines;\n } else {\n oldLines = undefined;\n }\n }\n\n if (newLines !== undefined) {\n if (myCount.newLines === theirCount.newLines) {\n newLines += myCount.newLines;\n } else {\n newLines = undefined;\n }\n }\n } else {\n if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n newLines++;\n }\n\n if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n oldLines++;\n }\n }\n });\n return {\n oldLines: oldLines,\n newLines: newLines\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9tZXJnZS5qcyJdLCJuYW1lcyI6WyJjYWxjTGluZUNvdW50IiwiaHVuayIsImNhbGNPbGROZXdMaW5lQ291bnQiLCJsaW5lcyIsIm9sZExpbmVzIiwibmV3TGluZXMiLCJ1bmRlZmluZWQiLCJtZXJnZSIsIm1pbmUiLCJ0aGVpcnMiLCJiYXNlIiwibG9hZFBhdGNoIiwicmV0IiwiaW5kZXgiLCJuZXdGaWxlTmFtZSIsImZpbGVOYW1lQ2hhbmdlZCIsIm9sZEZpbGVOYW1lIiwib2xkSGVhZGVyIiwibmV3SGVhZGVyIiwic2VsZWN0RmllbGQiLCJodW5rcyIsIm1pbmVJbmRleCIsInRoZWlyc0luZGV4IiwibWluZU9mZnNldCIsInRoZWlyc09mZnNldCIsImxlbmd0aCIsIm1pbmVDdXJyZW50Iiwib2xkU3RhcnQiLCJJbmZpbml0eSIsInRoZWlyc0N1cnJlbnQiLCJodW5rQmVmb3JlIiwicHVzaCIsImNsb25lSHVuayIsIm1lcmdlZEh1bmsiLCJNYXRoIiwibWluIiwibmV3U3RhcnQiLCJtZXJnZUxpbmVzIiwicGFyYW0iLCJ0ZXN0IiwicGFyc2VQYXRjaCIsIkVycm9yIiwic3RydWN0dXJlZFBhdGNoIiwicGF0Y2giLCJjb25mbGljdCIsImNoZWNrIiwib2Zmc2V0IiwibWluZUxpbmVzIiwidGhlaXJPZmZzZXQiLCJ0aGVpckxpbmVzIiwidGhlaXIiLCJpbnNlcnRMZWFkaW5nIiwidGhlaXJDdXJyZW50IiwibXV0dWFsQ2hhbmdlIiwiY29sbGVjdENoYW5nZSIsInJlbW92YWwiLCJpbnNlcnRUcmFpbGluZyIsIm15Q2hhbmdlcyIsInRoZWlyQ2hhbmdlcyIsImFsbFJlbW92ZXMiLCJhcnJheVN0YXJ0c1dpdGgiLCJza2lwUmVtb3ZlU3VwZXJzZXQiLCJhcnJheUVxdWFsIiwic3dhcCIsImNvbGxlY3RDb250ZXh0IiwibWVyZ2VkIiwiaW5zZXJ0IiwibGluZSIsInN0YXRlIiwib3BlcmF0aW9uIiwibWF0Y2hDaGFuZ2VzIiwiY2hhbmdlcyIsIm1hdGNoSW5kZXgiLCJjb250ZXh0Q2hhbmdlcyIsImNvbmZsaWN0ZWQiLCJjaGFuZ2UiLCJtYXRjaCIsInN1YnN0ciIsInJlZHVjZSIsInByZXYiLCJyZW1vdmVDaGFuZ2VzIiwiZGVsdGEiLCJpIiwiY2hhbmdlQ29udGVudCIsImZvckVhY2giLCJteUNvdW50IiwidGhlaXJDb3VudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7QUFFTyxTQUFTQSxhQUFULENBQXVCQyxJQUF2QixFQUE2QjtBQUFBO0FBQUE7QUFBQTtBQUNMQyxFQUFBQSxtQkFBbUIsQ0FBQ0QsSUFBSSxDQUFDRSxLQUFOLENBRGQ7QUFBQSxNQUMzQkMsUUFEMkIsd0JBQzNCQSxRQUQyQjtBQUFBLE1BQ2pCQyxRQURpQix3QkFDakJBLFFBRGlCOztBQUdsQyxNQUFJRCxRQUFRLEtBQUtFLFNBQWpCLEVBQTRCO0FBQzFCTCxJQUFBQSxJQUFJLENBQUNHLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0QsR0FGRCxNQUVPO0FBQ0wsV0FBT0gsSUFBSSxDQUFDRyxRQUFaO0FBQ0Q7O0FBRUQsTUFBSUMsUUFBUSxLQUFLQyxTQUFqQixFQUE0QjtBQUMxQkwsSUFBQUEsSUFBSSxDQUFDSSxRQUFMLEdBQWdCQSxRQUFoQjtBQUNELEdBRkQsTUFFTztBQUNMLFdBQU9KLElBQUksQ0FBQ0ksUUFBWjtBQUNEO0FBQ0Y7O0FBRU0sU0FBU0UsS0FBVCxDQUFlQyxJQUFmLEVBQXFCQyxNQUFyQixFQUE2QkMsSUFBN0IsRUFBbUM7QUFDeENGLEVBQUFBLElBQUksR0FBR0csU0FBUyxDQUFDSCxJQUFELEVBQU9FLElBQVAsQ0FBaEI7QUFDQUQsRUFBQUEsTUFBTSxHQUFHRSxTQUFTLENBQUNGLE1BQUQsRUFBU0MsSUFBVCxDQUFsQjtBQUVBLE1BQUlFLEdBQUcsR0FBRyxFQUFWLENBSndD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QUFKLEVBQW9FO0FBQ2xFL0QsUUFBQUEsUUFBUTtBQUNUO0FBQ0Y7QUFDRixHQTVCRDtBQThCQSxTQUFPO0FBQUNBLElBQUFBLFFBQVEsRUFBUkEsUUFBRDtBQUFXQyxJQUFBQSxRQUFRLEVBQVJBO0FBQVgsR0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzdHJ1Y3R1cmVkUGF0Y2h9IGZyb20gJy4vY3JlYXRlJztcbmltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXJzZSc7XG5cbmltcG9ydCB7YXJyYXlFcXVhbCwgYXJyYXlTdGFydHNXaXRofSBmcm9tICcuLi91dGlsL2FycmF5JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGNMaW5lQ291bnQoaHVuaykge1xuICBjb25zdCB7b2xkTGluZXMsIG5ld0xpbmVzfSA9IGNhbGNPbGROZXdMaW5lQ291bnQoaHVuay5saW5lcyk7XG5cbiAgaWYgKG9sZExpbmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBodW5rLm9sZExpbmVzID0gb2xkTGluZXM7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIGh1bmsub2xkTGluZXM7XG4gIH1cblxuICBpZiAobmV3TGluZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGh1bmsubmV3TGluZXMgPSBuZXdMaW5lcztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgaHVuay5uZXdMaW5lcztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2UobWluZSwgdGhlaXJzLCBiYXNlKSB7XG4gIG1pbmUgPSBsb2FkUGF0Y2gobWluZSwgYmFzZSk7XG4gIHRoZWlycyA9IGxvYWRQYXRjaCh0aGVpcnMsIGJhc2UpO1xuXG4gIGxldCByZXQgPSB7fTtcblxuICAvLyBGb3IgaW5kZXggd2UganVzdCBsZXQgaXQgcGFzcyB0aHJvdWdoIGFzIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgbmVjZXNzYXJ5IG1lYW5pbmcuXG4gIC8vIExlYXZpbmcgc2FuaXR5IGNoZWNrcyBvbiB0aGlzIHRvIHRoZSBBUEkgY29uc3VtZXIgdGhhdCBtYXkga25vdyBtb3JlIGFib3V0IHRoZVxuICAvLyBtZWFuaW5nIGluIHRoZWlyIG93biBjb250ZXh0LlxuICBpZiAobWluZS5pbmRleCB8fCB0aGVpcnMuaW5kZXgpIHtcbiAgICByZXQuaW5kZXggPSBtaW5lLmluZGV4IHx8IHRoZWlycy5pbmRleDtcbiAgfVxuXG4gIGlmIChtaW5lLm5ld0ZpbGVOYW1lIHx8IHRoZWlycy5uZXdGaWxlTmFtZSkge1xuICAgIGlmICghZmlsZU5hbWVDaGFuZ2VkKG1pbmUpKSB7XG4gICAgICAvLyBObyBoZWFkZXIgb3Igbm8gY2hhbmdlIGluIG91cnMsIHVzZSB0aGVpcnMgKGFuZCBvdXJzIGlmIHRoZWlycyBkb2VzIG5vdCBleGlzdClcbiAgICAgIHJldC5vbGRGaWxlTmFtZSA9IHRoZWlycy5vbGRGaWxlTmFtZSB8fCBtaW5lLm9sZEZpbGVOYW1lO1xuICAgICAgcmV0Lm5ld0ZpbGVOYW1lID0gdGhlaXJzLm5ld0ZpbGVOYW1lIHx8IG1pbmUubmV3RmlsZU5hbWU7XG4gICAgICByZXQub2xkSGVhZGVyID0gdGhlaXJzLm9sZEhlYWRlciB8fCBtaW5lLm9sZEhlYWRlcjtcbiAgICAgIHJldC5uZXdIZWFkZXIgPSB0aGVpcnMubmV3SGVhZGVyIHx8IG1pbmUubmV3SGVhZGVyO1xuICAgIH0gZWxzZSBpZiAoIWZpbGVOYW1lQ2hhbmdlZCh0aGVpcnMpKSB7XG4gICAgICAvLyBObyBoZWFkZXIgb3Igbm8gY2hhbmdlIGluIHRoZWlycywgdXNlIG91cnNcbiAgICAgIHJldC5vbGRGaWxlTmFtZSA9IG1pbmUub2xkRmlsZU5hbWU7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSBtaW5lLm5ld0ZpbGVOYW1lO1xuICAgICAgcmV0Lm9sZEhlYWRlciA9IG1pbmUub2xkSGVhZGVyO1xuICAgICAgcmV0Lm5ld0hlYWRlciA9IG1pbmUubmV3SGVhZGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBCb3RoIGNoYW5nZWQuLi4gZmlndXJlIGl0IG91dFxuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm9sZEZpbGVOYW1lLCB0aGVpcnMub2xkRmlsZU5hbWUpO1xuICAgICAgcmV0Lm5ld0ZpbGVOYW1lID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm5ld0ZpbGVOYW1lLCB0aGVpcnMubmV3RmlsZU5hbWUpO1xuICAgICAgcmV0Lm9sZEhlYWRlciA9IHNlbGVjdEZpZWxkKHJldCwgbWluZS5vbGRIZWFkZXIsIHRoZWlycy5vbGRIZWFkZXIpO1xuICAgICAgcmV0Lm5ld0hlYWRlciA9IHNlbGVjdEZpZWxkKHJldCwgbWluZS5uZXdIZWFkZXIsIHRoZWlycy5uZXdIZWFkZXIpO1xuICAgIH1cbiAgfVxuXG4gIHJldC5odW5rcyA9IFtdO1xuXG4gIGxldCBtaW5lSW5kZXggPSAwLFxuICAgICAgdGhlaXJzSW5kZXggPSAwLFxuICAgICAgbWluZU9mZnNldCA9IDAsXG4gICAgICB0aGVpcnNPZmZzZXQgPSAwO1xuXG4gIHdoaWxlIChtaW5lSW5kZXggPCBtaW5lLmh1bmtzLmxlbmd0aCB8fCB0aGVpcnNJbmRleCA8IHRoZWlycy5odW5rcy5sZW5ndGgpIHtcbiAgICBsZXQgbWluZUN1cnJlbnQgPSBtaW5lLmh1bmtzW21pbmVJbmRleF0gfHwge29sZFN0YXJ0OiBJbmZpbml0eX0sXG4gICAgICAgIHRoZWlyc0N1cnJlbnQgPSB0aGVpcnMuaHVua3NbdGhlaXJzSW5kZXhdIHx8IHtvbGRTdGFydDogSW5maW5pdHl9O1xuXG4gICAgaWYgKGh1bmtCZWZvcmUobWluZUN1cnJlbnQsIHRoZWlyc0N1cnJlbnQpKSB7XG4gICAgICAvLyBUaGlzIHBhdGNoIGRvZXMgbm90IG92ZXJsYXAgd2l0aCBhbnkgb2YgdGhlIG90aGVycywgeWF5LlxuICAgICAgcmV0Lmh1bmtzLnB1c2goY2xvbmVIdW5rKG1pbmVDdXJyZW50LCBtaW5lT2Zmc2V0KSk7XG4gICAgICBtaW5lSW5kZXgrKztcbiAgICAgIHRoZWlyc09mZnNldCArPSBtaW5lQ3VycmVudC5uZXdMaW5lcyAtIG1pbmVDdXJyZW50Lm9sZExpbmVzO1xuICAgIH0gZWxzZSBpZiAoaHVua0JlZm9yZSh0aGVpcnNDdXJyZW50LCBtaW5lQ3VycmVudCkpIHtcbiAgICAgIC8vIFRoaXMgcGF0Y2ggZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgb3RoZXJzLCB5YXkuXG4gICAgICByZXQuaHVua3MucHVzaChjbG9uZUh1bmsodGhlaXJzQ3VycmVudCwgdGhlaXJzT2Zmc2V0KSk7XG4gICAgICB0aGVpcnNJbmRleCsrO1xuICAgICAgbWluZU9mZnNldCArPSB0aGVpcnNDdXJyZW50Lm5ld0xpbmVzIC0gdGhlaXJzQ3VycmVudC5vbGRMaW5lcztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT3ZlcmxhcCwgbWVyZ2UgYXMgYmVzdCB3ZSBjYW5cbiAgICAgIGxldCBtZXJnZWRIdW5rID0ge1xuICAgICAgICBvbGRTdGFydDogTWF0aC5taW4obWluZUN1cnJlbnQub2xkU3RhcnQsIHRoZWlyc0N1cnJlbnQub2xkU3RhcnQpLFxuICAgICAgICBvbGRMaW5lczogMCxcbiAgICAgICAgbmV3U3RhcnQ6IE1hdGgubWluKG1pbmVDdXJyZW50Lm5ld1N0YXJ0ICsgbWluZU9mZnNldCwgdGhlaXJzQ3VycmVudC5vbGRTdGFydCArIHRoZWlyc09mZnNldCksXG4gICAgICAgIG5ld0xpbmVzOiAwLFxuICAgICAgICBsaW5lczogW11cbiAgICAgIH07XG4gICAgICBtZXJnZUxpbmVzKG1lcmdlZEh1bmssIG1pbmVDdXJyZW50Lm9sZFN0YXJ0LCBtaW5lQ3VycmVudC5saW5lcywgdGhlaXJzQ3VycmVudC5vbGRTdGFydCwgdGhlaXJzQ3VycmVudC5saW5lcyk7XG4gICAgICB0aGVpcnNJbmRleCsrO1xuICAgICAgbWluZUluZGV4Kys7XG5cbiAgICAgIHJldC5odW5rcy5wdXNoKG1lcmdlZEh1bmspO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGxvYWRQYXRjaChwYXJhbSwgYmFzZSkge1xuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykge1xuICAgIGlmICgoL15AQC9tKS50ZXN0KHBhcmFtKSB8fCAoKC9eSW5kZXg6L20pLnRlc3QocGFyYW0pKSkge1xuICAgICAgcmV0dXJuIHBhcnNlUGF0Y2gocGFyYW0pWzBdO1xuICAgIH1cblxuICAgIGlmICghYmFzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSBiYXNlIHJlZmVyZW5jZSBvciBwYXNzIGluIGEgcGF0Y2gnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cnVjdHVyZWRQYXRjaCh1bmRlZmluZWQsIHVuZGVmaW5lZCwgYmFzZSwgcGFyYW0pO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtO1xufVxuXG5mdW5jdGlvbiBmaWxlTmFtZUNoYW5nZWQocGF0Y2gpIHtcbiAgcmV0dXJuIHBhdGNoLm5ld0ZpbGVOYW1lICYmIHBhdGNoLm5ld0ZpbGVOYW1lICE9PSBwYXRjaC5vbGRGaWxlTmFtZTtcbn1cblxuZnVuY3Rpb24gc2VsZWN0RmllbGQoaW5kZXgsIG1pbmUsIHRoZWlycykge1xuICBpZiAobWluZSA9PT0gdGhlaXJzKSB7XG4gICAgcmV0dXJuIG1pbmU7XG4gIH0gZWxzZSB7XG4gICAgaW5kZXguY29uZmxpY3QgPSB0cnVlO1xuICAgIHJldHVybiB7bWluZSwgdGhlaXJzfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBodW5rQmVmb3JlKHRlc3QsIGNoZWNrKSB7XG4gIHJldHVybiB0ZXN0Lm9sZFN0YXJ0IDwgY2hlY2sub2xkU3RhcnRcbiAgICAmJiAodGVzdC5vbGRTdGFydCArIHRlc3Qub2xkTGluZXMpIDwgY2hlY2sub2xkU3RhcnQ7XG59XG5cbmZ1bmN0aW9uIGNsb25lSHVuayhodW5rLCBvZmZzZXQpIHtcbiAgcmV0dXJuIHtcbiAgICBvbGRTdGFydDogaHVuay5vbGRTdGFydCwgb2xkTGluZXM6IGh1bmsub2xkTGluZXMsXG4gICAgbmV3U3RhcnQ6IGh1bmsubmV3U3RhcnQgKyBvZmZzZXQsIG5ld0xpbmVzOiBodW5rLm5ld0xpbmVzLFxuICAgIGxpbmVzOiBodW5rLmxpbmVzXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1lcmdlTGluZXMoaHVuaywgbWluZU9mZnNldCwgbWluZUxpbmVzLCB0aGVpck9mZnNldCwgdGhlaXJMaW5lcykge1xuICAvLyBUaGlzIHdpbGwgZ2VuZXJhbGx5IHJlc3VsdCBpbiBhIGNvbmZsaWN0ZWQgaHVuaywgYnV0IHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUgY29udGV4dFxuICAvLyBpcyB0aGUgb25seSBvdmVybGFwIHdoZXJlIHdlIGNhbiBzdWNjZXNzZnVsbHkgbWVyZ2UgdGhlIGNvbnRlbnQgaGVyZS5cbiAgbGV0IG1pbmUgPSB7b2Zmc2V0OiBtaW5lT2Zmc2V0LCBsaW5lczogbWluZUxpbmVzLCBpbmRleDogMH0sXG4gICAgICB0aGVpciA9IHtvZmZzZXQ6IHRoZWlyT2Zmc2V0LCBsaW5lczogdGhlaXJMaW5lcywgaW5kZXg6IDB9O1xuXG4gIC8vIEhhbmRsZSBhbnkgbGVhZGluZyBjb250ZW50XG4gIGluc2VydExlYWRpbmcoaHVuaywgbWluZSwgdGhlaXIpO1xuICBpbnNlcnRMZWFkaW5nKGh1bmssIHRoZWlyLCBtaW5lKTtcblxuICAvLyBOb3cgaW4gdGhlIG92ZXJsYXAgY29udGVudC4gU2NhbiB0aHJvdWdoIGFuZCBzZWxlY3QgdGhlIGJlc3QgY2hhbmdlcyBmcm9tIGVhY2guXG4gIHdoaWxlIChtaW5lLmluZGV4IDwgbWluZS5saW5lcy5sZW5ndGggJiYgdGhlaXIuaW5kZXggPCB0aGVpci5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbWluZUN1cnJlbnQgPSBtaW5lLmxpbmVzW21pbmUuaW5kZXhdLFxuICAgICAgICB0aGVpckN1cnJlbnQgPSB0aGVpci5saW5lc1t0aGVpci5pbmRleF07XG5cbiAgICBpZiAoKG1pbmVDdXJyZW50WzBdID09PSAnLScgfHwgbWluZUN1cnJlbnRbMF0gPT09ICcrJylcbiAgICAgICAgJiYgKHRoZWlyQ3VycmVudFswXSA9PT0gJy0nIHx8IHRoZWlyQ3VycmVudFswXSA9PT0gJysnKSkge1xuICAgICAgLy8gQm90aCBtb2RpZmllZCAuLi5cbiAgICAgIG11dHVhbENoYW5nZShodW5rLCBtaW5lLCB0aGVpcik7XG4gICAgfSBlbHNlIGlmIChtaW5lQ3VycmVudFswXSA9PT0gJysnICYmIHRoZWlyQ3VycmVudFswXSA9PT0gJyAnKSB7XG4gICAgICAvLyBNaW5lIGluc2VydGVkXG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIGNvbGxlY3RDaGFuZ2UobWluZSkpO1xuICAgIH0gZWxzZSBpZiAodGhlaXJDdXJyZW50WzBdID09PSAnKycgJiYgbWluZUN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gVGhlaXJzIGluc2VydGVkXG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIGNvbGxlY3RDaGFuZ2UodGhlaXIpKTtcbiAgICB9IGVsc2UgaWYgKG1pbmVDdXJyZW50WzBdID09PSAnLScgJiYgdGhlaXJDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIE1pbmUgcmVtb3ZlZCBvciBlZGl0ZWRcbiAgICAgIHJlbW92YWwoaHVuaywgbWluZSwgdGhlaXIpO1xuICAgIH0gZWxzZSBpZiAodGhlaXJDdXJyZW50WzBdID09PSAnLScgJiYgbWluZUN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gVGhlaXIgcmVtb3ZlZCBvciBlZGl0ZWRcbiAgICAgIHJlbW92YWwoaHVuaywgdGhlaXIsIG1pbmUsIHRydWUpO1xuICAgIH0gZWxzZSBpZiAobWluZUN1cnJlbnQgPT09IHRoZWlyQ3VycmVudCkge1xuICAgICAgLy8gQ29udGV4dCBpZGVudGl0eVxuICAgICAgaHVuay5saW5lcy5wdXNoKG1pbmVDdXJyZW50KTtcbiAgICAgIG1pbmUuaW5kZXgrKztcbiAgICAgIHRoZWlyLmluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENvbnRleHQgbWlzbWF0Y2hcbiAgICAgIGNvbmZsaWN0KGh1bmssIGNvbGxlY3RDaGFuZ2UobWluZSksIGNvbGxlY3RDaGFuZ2UodGhlaXIpKTtcbiAgICB9XG4gIH1cblxuICAvLyBOb3cgcHVzaCBhbnl0aGluZyB0aGF0IG1heSBiZSByZW1haW5pbmdcbiAgaW5zZXJ0VHJhaWxpbmcoaHVuaywgbWluZSk7XG4gIGluc2VydFRyYWlsaW5nKGh1bmssIHRoZWlyKTtcblxuICBjYWxjTGluZUNvdW50KGh1bmspO1xufVxuXG5mdW5jdGlvbiBtdXR1YWxDaGFuZ2UoaHVuaywgbWluZSwgdGhlaXIpIHtcbiAgbGV0IG15Q2hhbmdlcyA9IGNvbGxlY3RDaGFuZ2UobWluZSksXG4gICAgICB0aGVpckNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKHRoZWlyKTtcblxuICBpZiAoYWxsUmVtb3ZlcyhteUNoYW5nZXMpICYmIGFsbFJlbW92ZXModGhlaXJDaGFuZ2VzKSkge1xuICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgcmVtb3ZlIGNoYW5nZXMgdGhhdCBhcmUgc3VwZXJzZXRzIG9mIG9uZSBhbm90aGVyXG4gICAgaWYgKGFycmF5U3RhcnRzV2l0aChteUNoYW5nZXMsIHRoZWlyQ2hhbmdlcylcbiAgICAgICAgJiYgc2tpcFJlbW92ZVN1cGVyc2V0KHRoZWlyLCBteUNoYW5nZXMsIG15Q2hhbmdlcy5sZW5ndGggLSB0aGVpckNoYW5nZXMubGVuZ3RoKSkge1xuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBteUNoYW5nZXMpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoYXJyYXlTdGFydHNXaXRoKHRoZWlyQ2hhbmdlcywgbXlDaGFuZ2VzKVxuICAgICAgICAmJiBza2lwUmVtb3ZlU3VwZXJzZXQobWluZSwgdGhlaXJDaGFuZ2VzLCB0aGVpckNoYW5nZXMubGVuZ3RoIC0gbXlDaGFuZ2VzLmxlbmd0aCkpIHtcbiAgICAgIGh1bmsubGluZXMucHVzaCguLi4gdGhlaXJDaGFuZ2VzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0gZWxzZSBpZiAoYXJyYXlFcXVhbChteUNoYW5nZXMsIHRoZWlyQ2hhbmdlcykpIHtcbiAgICBodW5rLmxpbmVzLnB1c2goLi4uIG15Q2hhbmdlcyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uZmxpY3QoaHVuaywgbXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpO1xufVxuXG5mdW5jdGlvbiByZW1vdmFsKGh1bmssIG1pbmUsIHRoZWlyLCBzd2FwKSB7XG4gIGxldCBteUNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKG1pbmUpLFxuICAgICAgdGhlaXJDaGFuZ2VzID0gY29sbGVjdENvbnRleHQodGhlaXIsIG15Q2hhbmdlcyk7XG4gIGlmICh0aGVpckNoYW5nZXMubWVyZ2VkKSB7XG4gICAgaHVuay5saW5lcy5wdXNoKC4uLiB0aGVpckNoYW5nZXMubWVyZ2VkKTtcbiAgfSBlbHNlIHtcbiAgICBjb25mbGljdChodW5rLCBzd2FwID8gdGhlaXJDaGFuZ2VzIDogbXlDaGFuZ2VzLCBzd2FwID8gbXlDaGFuZ2VzIDogdGhlaXJDaGFuZ2VzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb25mbGljdChodW5rLCBtaW5lLCB0aGVpcikge1xuICBodW5rLmNvbmZsaWN0ID0gdHJ1ZTtcbiAgaHVuay5saW5lcy5wdXNoKHtcbiAgICBjb25mbGljdDogdHJ1ZSxcbiAgICBtaW5lOiBtaW5lLFxuICAgIHRoZWlyczogdGhlaXJcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGluc2VydExlYWRpbmcoaHVuaywgaW5zZXJ0LCB0aGVpcikge1xuICB3aGlsZSAoaW5zZXJ0Lm9mZnNldCA8IHRoZWlyLm9mZnNldCAmJiBpbnNlcnQuaW5kZXggPCBpbnNlcnQubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IGxpbmUgPSBpbnNlcnQubGluZXNbaW5zZXJ0LmluZGV4KytdO1xuICAgIGh1bmsubGluZXMucHVzaChsaW5lKTtcbiAgICBpbnNlcnQub2Zmc2V0Kys7XG4gIH1cbn1cbmZ1bmN0aW9uIGluc2VydFRyYWlsaW5nKGh1bmssIGluc2VydCkge1xuICB3aGlsZSAoaW5zZXJ0LmluZGV4IDwgaW5zZXJ0LmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gaW5zZXJ0LmxpbmVzW2luc2VydC5pbmRleCsrXTtcbiAgICBodW5rLmxpbmVzLnB1c2gobGluZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29sbGVjdENoYW5nZShzdGF0ZSkge1xuICBsZXQgcmV0ID0gW10sXG4gICAgICBvcGVyYXRpb24gPSBzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleF1bMF07XG4gIHdoaWxlIChzdGF0ZS5pbmRleCA8IHN0YXRlLmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gc3RhdGUubGluZXNbc3RhdGUuaW5kZXhdO1xuXG4gICAgLy8gR3JvdXAgYWRkaXRpb25zIHRoYXQgYXJlIGltbWVkaWF0ZWx5IGFmdGVyIHN1YnRyYWN0aW9ucyBhbmQgdHJlYXQgdGhlbSBhcyBvbmUgXCJhdG9taWNcIiBtb2RpZnkgY2hhbmdlLlxuICAgIGlmIChvcGVyYXRpb24gPT09ICctJyAmJiBsaW5lWzBdID09PSAnKycpIHtcbiAgICAgIG9wZXJhdGlvbiA9ICcrJztcbiAgICB9XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSBsaW5lWzBdKSB7XG4gICAgICByZXQucHVzaChsaW5lKTtcbiAgICAgIHN0YXRlLmluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5mdW5jdGlvbiBjb2xsZWN0Q29udGV4dChzdGF0ZSwgbWF0Y2hDaGFuZ2VzKSB7XG4gIGxldCBjaGFuZ2VzID0gW10sXG4gICAgICBtZXJnZWQgPSBbXSxcbiAgICAgIG1hdGNoSW5kZXggPSAwLFxuICAgICAgY29udGV4dENoYW5nZXMgPSBmYWxzZSxcbiAgICAgIGNvbmZsaWN0ZWQgPSBmYWxzZTtcbiAgd2hpbGUgKG1hdGNoSW5kZXggPCBtYXRjaENoYW5nZXMubGVuZ3RoXG4gICAgICAgICYmIHN0YXRlLmluZGV4IDwgc3RhdGUubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IGNoYW5nZSA9IHN0YXRlLmxpbmVzW3N0YXRlLmluZGV4XSxcbiAgICAgICAgbWF0Y2ggPSBtYXRjaENoYW5nZXNbbWF0Y2hJbmRleF07XG5cbiAgICAvLyBPbmNlIHdlJ3ZlIGhpdCBvdXIgYWRkLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgaWYgKG1hdGNoWzBdID09PSAnKycpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnRleHRDaGFuZ2VzID0gY29udGV4dENoYW5nZXMgfHwgY2hhbmdlWzBdICE9PSAnICc7XG5cbiAgICBtZXJnZWQucHVzaChtYXRjaCk7XG4gICAgbWF0Y2hJbmRleCsrO1xuXG4gICAgLy8gQ29uc3VtZSBhbnkgYWRkaXRpb25zIGluIHRoZSBvdGhlciBibG9jayBhcyBhIGNvbmZsaWN0IHRvIGF0dGVtcHRcbiAgICAvLyB0byBwdWxsIGluIHRoZSByZW1haW5pbmcgY29udGV4dCBhZnRlciB0aGlzXG4gICAgaWYgKGNoYW5nZVswXSA9PT0gJysnKSB7XG4gICAgICBjb25mbGljdGVkID0gdHJ1ZTtcblxuICAgICAgd2hpbGUgKGNoYW5nZVswXSA9PT0gJysnKSB7XG4gICAgICAgIGNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICBjaGFuZ2UgPSBzdGF0ZS5saW5lc1srK3N0YXRlLmluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWF0Y2guc3Vic3RyKDEpID09PSBjaGFuZ2Uuc3Vic3RyKDEpKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgIHN0YXRlLmluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZsaWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICgobWF0Y2hDaGFuZ2VzW21hdGNoSW5kZXhdIHx8ICcnKVswXSA9PT0gJysnXG4gICAgICAmJiBjb250ZXh0Q2hhbmdlcykge1xuICAgIGNvbmZsaWN0ZWQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGNvbmZsaWN0ZWQpIHtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIHdoaWxlIChtYXRjaEluZGV4IDwgbWF0Y2hDaGFuZ2VzLmxlbmd0aCkge1xuICAgIG1lcmdlZC5wdXNoKG1hdGNoQ2hhbmdlc1ttYXRjaEluZGV4KytdKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWVyZ2VkLFxuICAgIGNoYW5nZXNcbiAgfTtcbn1cblxuZnVuY3Rpb24gYWxsUmVtb3ZlcyhjaGFuZ2VzKSB7XG4gIHJldHVybiBjaGFuZ2VzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBjaGFuZ2UpIHtcbiAgICByZXR1cm4gcHJldiAmJiBjaGFuZ2VbMF0gPT09ICctJztcbiAgfSwgdHJ1ZSk7XG59XG5mdW5jdGlvbiBza2lwUmVtb3ZlU3VwZXJzZXQoc3RhdGUsIHJlbW92ZUNoYW5nZXMsIGRlbHRhKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGVsdGE7IGkrKykge1xuICAgIGxldCBjaGFuZ2VDb250ZW50ID0gcmVtb3ZlQ2hhbmdlc1tyZW1vdmVDaGFuZ2VzLmxlbmd0aCAtIGRlbHRhICsgaV0uc3Vic3RyKDEpO1xuICAgIGlmIChzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleCArIGldICE9PSAnICcgKyBjaGFuZ2VDb250ZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc3RhdGUuaW5kZXggKz0gZGVsdGE7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjYWxjT2xkTmV3TGluZUNvdW50KGxpbmVzKSB7XG4gIGxldCBvbGRMaW5lcyA9IDA7XG4gIGxldCBuZXdMaW5lcyA9IDA7XG5cbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lKSB7XG4gICAgaWYgKHR5cGVvZiBsaW5lICE9PSAnc3RyaW5nJykge1xuICAgICAgbGV0IG15Q291bnQgPSBjYWxjT2xkTmV3TGluZUNvdW50KGxpbmUubWluZSk7XG4gICAgICBsZXQgdGhlaXJDb3VudCA9IGNhbGNPbGROZXdMaW5lQ291bnQobGluZS50aGVpcnMpO1xuXG4gICAgICBpZiAob2xkTGluZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAobXlDb3VudC5vbGRMaW5lcyA9PT0gdGhlaXJDb3VudC5vbGRMaW5lcykge1xuICAgICAgICAgIG9sZExpbmVzICs9IG15Q291bnQub2xkTGluZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2xkTGluZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5ld0xpbmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG15Q291bnQubmV3TGluZXMgPT09IHRoZWlyQ291bnQubmV3TGluZXMpIHtcbiAgICAgICAgICBuZXdMaW5lcyArPSBteUNvdW50Lm5ld0xpbmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0xpbmVzID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkICYmIChsaW5lWzBdID09PSAnKycgfHwgbGluZVswXSA9PT0gJyAnKSkge1xuICAgICAgICBuZXdMaW5lcysrO1xuICAgICAgfVxuICAgICAgaWYgKG9sZExpbmVzICE9PSB1bmRlZmluZWQgJiYgKGxpbmVbMF0gPT09ICctJyB8fCBsaW5lWzBdID09PSAnICcpKSB7XG4gICAgICAgIG9sZExpbmVzKys7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge29sZExpbmVzLCBuZXdMaW5lc307XG59XG4iXX0=\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parsePatch = parsePatch;\n\n/*istanbul ignore end*/\nfunction parsePatch(uniDiff) {\n /*istanbul ignore start*/\n var\n /*istanbul ignore end*/\n options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var diffstr = uniDiff.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = uniDiff.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index); // Parse diff metadata\n\n while (i < diffstr.length) {\n var line = diffstr[i]; // File header found, end parsing diff metadata\n\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n } // Diff index\n\n\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n\n if (header) {\n index.index = header[1];\n }\n\n i++;\n } // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n\n\n parseFileHeader(index);\n parseFileHeader(index); // Parse hunks\n\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n } // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n\n\n function parseFileHeader(index) {\n var fileHeader = /^(---|\\+\\+\\+)\\s+(.*)$/.exec(diffstr[i]);\n\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n var data = fileHeader[2].split('\\t', 2);\n var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n\n if (/^\".*\"$/.test(fileName)) {\n fileName = fileName.substr(1, fileName.length - 2);\n }\n\n index[keyPrefix + 'FileName'] = fileName;\n index[keyPrefix + 'Header'] = (data[1] || '').trim();\n i++;\n }\n } // Parses a hunk\n // This assumes that we are at the start of a hunk.\n\n\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],\n newStart: +chunkHeader[3],\n newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],\n lines: [],\n linedelimiters: []\n }; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart += 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart += 1;\n }\n\n var addCount = 0,\n removeCount = 0;\n\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n\n var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n hunk.linedelimiters.push(delimiters[i] || '\\n');\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n } // Handle the empty block count case\n\n\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n } // Perform optional sanity checking\n\n\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6WyJwYXJzZVBhdGNoIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJkaWZmc3RyIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJsaXN0IiwiaSIsInBhcnNlSW5kZXgiLCJpbmRleCIsInB1c2giLCJsZW5ndGgiLCJsaW5lIiwidGVzdCIsImhlYWRlciIsImV4ZWMiLCJwYXJzZUZpbGVIZWFkZXIiLCJodW5rcyIsInBhcnNlSHVuayIsInN0cmljdCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImZpbGVIZWFkZXIiLCJrZXlQcmVmaXgiLCJkYXRhIiwiZmlsZU5hbWUiLCJyZXBsYWNlIiwic3Vic3RyIiwidHJpbSIsImNodW5rSGVhZGVySW5kZXgiLCJjaHVua0hlYWRlckxpbmUiLCJjaHVua0hlYWRlciIsImh1bmsiLCJvbGRTdGFydCIsIm9sZExpbmVzIiwibmV3U3RhcnQiLCJuZXdMaW5lcyIsImxpbmVzIiwibGluZWRlbGltaXRlcnMiLCJhZGRDb3VudCIsInJlbW92ZUNvdW50IiwiaW5kZXhPZiIsIm9wZXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQU8sU0FBU0EsVUFBVCxDQUFvQkMsT0FBcEIsRUFBMkM7QUFBQTtBQUFBO0FBQUE7QUFBZEMsRUFBQUEsT0FBYyx1RUFBSixFQUFJO0FBQ2hELE1BQUlDLE9BQU8sR0FBR0YsT0FBTyxDQUFDRyxLQUFSLENBQWMscUJBQWQsQ0FBZDtBQUFBLE1BQ0lDLFVBQVUsR0FBR0osT0FBTyxDQUFDSyxLQUFSLENBQWMsc0JBQWQsS0FBeUMsRUFEMUQ7QUFBQSxNQUVJQyxJQUFJLEdBQUcsRUFGWDtBQUFBLE1BR0lDLENBQUMsR0FBRyxDQUhSOztBQUtBLFdBQVNDLFVBQVQsR0FBc0I7QUFDcEIsUUFBSUMsS0FBSyxHQUFHLEVBQVo7QUFDQUgsSUFBQUEsSUFBSSxDQUFDSSxJQUFMLENBQVVELEtBQVYsRUFGb0IsQ0FJcEI7O0FB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QUwsS0FBa0IsQ0FBbkMsRUFBc0M7QUFDcENKLE1BQUFBLElBQUksQ0FBQ0ksUUFBTCxHQUFnQixDQUFoQjtBQUNEOztBQUNELFFBQUksQ0FBQ0ksV0FBRCxJQUFnQlIsSUFBSSxDQUFDRSxRQUFMLEtBQWtCLENBQXRDLEVBQXlDO0FBQ3ZDRixNQUFBQSxJQUFJLENBQUNFLFFBQUwsR0FBZ0IsQ0FBaEI7QUFDRCxLQTVEa0IsQ0E4RG5COzs7QUFDQSxRQUFJbEMsT0FBTyxDQUFDa0IsTUFBWixFQUFvQjtBQUNsQixVQUFJcUIsUUFBUSxLQUFLUCxJQUFJLENBQUNJLFFBQXRCLEVBQWdDO0FBQzlCLGNBQU0sSUFBSWpCLEtBQUosQ0FBVSxzREFBc0RVLGdCQUFnQixHQUFHLENBQXpFLENBQVYsQ0FBTjtBQUNEOztBQUNELFVBQUlXLFdBQVcsS0FBS1IsSUFBSSxDQUFDRSxRQUF6QixFQUFtQztBQUNqQyxjQUFNLElBQUlmLEtBQUosQ0FBVSx3REFBd0RVLGdCQUFnQixHQUFHLENBQTNFLENBQVYsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsV0FBT0csSUFBUDtBQUNEOztBQUVELFNBQU8xQixDQUFDLEdBQUdMLE9BQU8sQ0FBQ1MsTUFBbkIsRUFBMkI7QUFDekJILElBQUFBLFVBQVU7QUFDWDs7QUFFRCxTQUFPRixJQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRjaCh1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGRpZmZzdHIgPSB1bmlEaWZmLnNwbGl0KC9cXHJcXG58W1xcblxcdlxcZlxcclxceDg1XS8pLFxuICAgICAgZGVsaW1pdGVycyA9IHVuaURpZmYubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgbGlzdCA9IFtdLFxuICAgICAgaSA9IDA7XG5cbiAgZnVuY3Rpb24gcGFyc2VJbmRleCgpIHtcbiAgICBsZXQgaW5kZXggPSB7fTtcbiAgICBsaXN0LnB1c2goaW5kZXgpO1xuXG4gICAgLy8gUGFyc2UgZGlmZiBtZXRhZGF0YVxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgLy8gRmlsZSBoZWFkZXIgZm91bmQsIGVuZCBwYXJzaW5nIGRpZmYgbWV0YWRhdGFcbiAgICAgIGlmICgoL14oXFwtXFwtXFwtfFxcK1xcK1xcK3xAQClcXHMvKS50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBEaWZmIGluZGV4XG4gICAgICBsZXQgaGVhZGVyID0gKC9eKD86SW5kZXg6fGRpZmYoPzogLXIgXFx3KykrKVxccysoLis/KVxccyokLykuZXhlYyhsaW5lKTtcbiAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgaW5kZXguaW5kZXggPSBoZWFkZXJbMV07XG4gICAgICB9XG5cbiAgICAgIGkrKztcbiAgICB9XG5cbiAgICAvLyBQYXJzZSBmaWxlIGhlYWRlcnMgaWYgdGhleSBhcmUgZGVmaW5lZC4gVW5pZmllZCBkaWZmIHJlcXVpcmVzIHRoZW0sIGJ1dFxuICAgIC8vIHRoZXJlJ3Mgbm8gdGVjaG5pY2FsIGlzc3VlcyB0byBoYXZlIGFuIGlzb2xhdGVkIGh1bmsgd2l0aG91dCBmaWxlIGhlYWRlclxuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG4gICAgcGFyc2VGaWxlSGVhZGVyKGluZGV4KTtcblxuICAgIC8vIFBhcnNlIGh1bmtzXG4gICAgaW5kZXguaHVua3MgPSBbXTtcblxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgaWYgKCgvXihJbmRleDp8ZGlmZnxcXC1cXC1cXC18XFwrXFwrXFwrKVxccy8pLnRlc3QobGluZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2UgaWYgKCgvXkBALykudGVzdChsaW5lKSkge1xuICAgICAgICBpbmRleC5odW5rcy5wdXNoKHBhcnNlSHVuaygpKTtcbiAgICAgIH0gZWxzZSBpZiAobGluZSAmJiBvcHRpb25zLnN0cmljdCkge1xuICAgICAgICAvLyBJZ25vcmUgdW5leHBlY3RlZCBjb250ZW50IHVubGVzcyBpbiBzdHJpY3QgbW9kZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluZSAnICsgKGkgKyAxKSArICcgJyArIEpTT04uc3RyaW5naWZ5KGxpbmUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYXJzZXMgdGhlIC0tLSBhbmQgKysrIGhlYWRlcnMsIGlmIG5vbmUgYXJlIGZvdW5kLCBubyBsaW5lc1xuICAvLyBhcmUgY29uc3VtZWQuXG4gIGZ1bmN0aW9uIHBhcnNlRmlsZUhlYWRlcihpbmRleCkge1xuICAgIGNvbnN0IGZpbGVIZWFkZXIgPSAoL14oLS0tfFxcK1xcK1xcKylcXHMrKC4qKSQvKS5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgY29uc3QgZGF0YSA9IGZpbGVIZWFkZXJbMl0uc3BsaXQoJ1xcdCcsIDIpO1xuICAgICAgbGV0IGZpbGVOYW1lID0gZGF0YVswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnXFxcXCcpO1xuICAgICAgaWYgKCgvXlwiLipcIiQvKS50ZXN0KGZpbGVOYW1lKSkge1xuICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnN1YnN0cigxLCBmaWxlTmFtZS5sZW5ndGggLSAyKTtcbiAgICAgIH1cbiAgICAgIGluZGV4W2tleVByZWZpeCArICdGaWxlTmFtZSddID0gZmlsZU5hbWU7XG4gICAgICBpbmRleFtrZXlQcmVmaXggKyAnSGVhZGVyJ10gPSAoZGF0YVsxXSB8fCAnJykudHJpbSgpO1xuXG4gICAgICBpKys7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2VzIGEgaHVua1xuICAvLyBUaGlzIGFzc3VtZXMgdGhhdCB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgaHVuay5cbiAgZnVuY3Rpb24gcGFyc2VIdW5rKCkge1xuICAgIGxldCBjaHVua0hlYWRlckluZGV4ID0gaSxcbiAgICAgICAgY2h1bmtIZWFkZXJMaW5lID0gZGlmZnN0cltpKytdLFxuICAgICAgICBjaHVua0hlYWRlciA9IGNodW5rSGVhZGVyTGluZS5zcGxpdCgvQEAgLShcXGQrKSg/OiwoXFxkKykpPyBcXCsoXFxkKykoPzosKFxcZCspKT8gQEAvKTtcblxuICAgIGxldCBodW5rID0ge1xuICAgICAgb2xkU3RhcnQ6ICtjaHVua0hlYWRlclsxXSxcbiAgICAgIG9sZExpbmVzOiB0eXBlb2YgY2h1bmtIZWFkZXJbMl0gPT09ICd1bmRlZmluZWQnID8gMSA6ICtjaHVua0hlYWRlclsyXSxcbiAgICAgIG5ld1N0YXJ0OiArY2h1bmtIZWFkZXJbM10sXG4gICAgICBuZXdMaW5lczogdHlwZW9mIGNodW5rSGVhZGVyWzRdID09PSAndW5kZWZpbmVkJyA/IDEgOiArY2h1bmtIZWFkZXJbNF0sXG4gICAgICBsaW5lczogW10sXG4gICAgICBsaW5lZGVsaW1pdGVyczogW11cbiAgICB9O1xuXG4gICAgLy8gVW5pZmllZCBEaWZmIEZvcm1hdCBxdWlyazogSWYgdGhlIGNodW5rIHNpemUgaXMgMCxcbiAgICAvLyB0aGUgZmlyc3QgbnVtYmVyIGlzIG9uZSBsb3dlciB0aGFuIG9uZSB3b3VsZCBleHBlY3QuXG4gICAgLy8gaHR0cHM6Ly93d3cuYXJ0aW1hLmNvbS93ZWJsb2dzL3ZpZXdwb3N0LmpzcD90aHJlYWQ9MTY0MjkzXG4gICAgaWYgKGh1bmsub2xkTGluZXMgPT09IDApIHtcbiAgICAgIGh1bmsub2xkU3RhcnQgKz0gMTtcbiAgICB9XG4gICAgaWYgKGh1bmsubmV3TGluZXMgPT09IDApIHtcbiAgICAgIGh1bmsubmV3U3RhcnQgKz0gMTtcbiAgICB9XG5cbiAgICBsZXQgYWRkQ291bnQgPSAwLFxuICAgICAgICByZW1vdmVDb3VudCA9IDA7XG4gICAgZm9yICg7IGkgPCBkaWZmc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBMaW5lcyBzdGFydGluZyB3aXRoICctLS0nIGNvdWxkIGJlIG1pc3Rha2VuIGZvciB0aGUgXCJyZW1vdmUgbGluZVwiIG9wZXJhdGlvblxuICAgICAgLy8gQnV0IHRoZXkgY291bGQgYmUgdGhlIGhlYWRlciBmb3IgdGhlIG5leHQgZmlsZS4gVGhlcmVmb3JlIHBydW5lIHN1Y2ggY2FzZXMgb3V0LlxuICAgICAgaWYgKGRpZmZzdHJbaV0uaW5kZXhPZignLS0tICcpID09PSAwXG4gICAgICAgICAgICAmJiAoaSArIDIgPCBkaWZmc3RyLmxlbmd0aClcbiAgICAgICAgICAgICYmIGRpZmZzdHJbaSArIDFdLmluZGV4T2YoJysrKyAnKSA9PT0gMFxuICAgICAgICAgICAgJiYgZGlmZnN0cltpICsgMl0uaW5kZXhPZignQEAnKSA9PT0gMCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgbGV0IG9wZXJhdGlvbiA9IChkaWZmc3RyW2ldLmxlbmd0aCA9PSAwICYmIGkgIT0gKGRpZmZzdHIubGVuZ3RoIC0gMSkpID8gJyAnIDogZGlmZnN0cltpXVswXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJysnIHx8IG9wZXJhdGlvbiA9PT0gJy0nIHx8IG9wZXJhdGlvbiA9PT0gJyAnIHx8IG9wZXJhdGlvbiA9PT0gJ1xcXFwnKSB7XG4gICAgICAgIGh1bmsubGluZXMucHVzaChkaWZmc3RyW2ldKTtcbiAgICAgICAgaHVuay5saW5lZGVsaW1pdGVycy5wdXNoKGRlbGltaXRlcnNbaV0gfHwgJ1xcbicpO1xuXG4gICAgICAgIGlmIChvcGVyYXRpb24gPT09ICcrJykge1xuICAgICAgICAgIGFkZENvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgICByZW1vdmVDb3VudCsrO1xuICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgICByZW1vdmVDb3VudCsrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgdGhlIGVtcHR5IGJsb2NrIGNvdW50IGNhc2VcbiAgICBpZiAoIWFkZENvdW50ICYmIGh1bmsubmV3TGluZXMgPT09IDEpIHtcbiAgICAgIGh1bmsubmV3TGluZXMgPSAwO1xuICAgIH1cbiAgICBpZiAoIXJlbW92ZUNvdW50ICYmIGh1bmsub2xkTGluZXMgPT09IDEpIHtcbiAgICAgIGh1bmsub2xkTGluZXMgPSAwO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm0gb3B0aW9uYWwgc2FuaXR5IGNoZWNraW5nXG4gICAgaWYgKG9wdGlvbnMuc3RyaWN0KSB7XG4gICAgICBpZiAoYWRkQ291bnQgIT09IGh1bmsubmV3TGluZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBZGRlZCBsaW5lIGNvdW50IGRpZCBub3QgbWF0Y2ggZm9yIGh1bmsgYXQgbGluZSAnICsgKGNodW5rSGVhZGVySW5kZXggKyAxKSk7XG4gICAgICB9XG4gICAgICBpZiAocmVtb3ZlQ291bnQgIT09IGh1bmsub2xkTGluZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZW1vdmVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaHVuaztcbiAgfVxuXG4gIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICBwYXJzZUluZGV4KCk7XG4gIH1cblxuICByZXR1cm4gbGlzdDtcbn1cbiJdfQ==\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrayEqual = arrayEqual;\nexports.arrayStartsWith = arrayStartsWith;\n\n/*istanbul ignore end*/\nfunction arrayEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n return arrayStartsWith(a, b);\n}\n\nfunction arrayStartsWith(array, start) {\n if (start.length > array.length) {\n return false;\n }\n\n for (var i = 0; i < start.length; i++) {\n if (start[i] !== array[i]) {\n return false;\n }\n }\n\n return true;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2FycmF5LmpzIl0sIm5hbWVzIjpbImFycmF5RXF1YWwiLCJhIiwiYiIsImxlbmd0aCIsImFycmF5U3RhcnRzV2l0aCIsImFycmF5Iiwic3RhcnQiLCJpIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQU8sU0FBU0EsVUFBVCxDQUFvQkMsQ0FBcEIsRUFBdUJDLENBQXZCLEVBQTBCO0FBQy9CLE1BQUlELENBQUMsQ0FBQ0UsTUFBRixLQUFhRCxDQUFDLENBQUNDLE1BQW5CLEVBQTJCO0FBQ3pCLFdBQU8sS0FBUDtBQUNEOztBQUVELFNBQU9DLGVBQWUsQ0FBQ0gsQ0FBRCxFQUFJQyxDQUFKLENBQXRCO0FBQ0Q7O0FBRU0sU0FBU0UsZUFBVCxDQUF5QkMsS0FBekIsRUFBZ0NDLEtBQWhDLEVBQXVDO0FBQzVDLE1BQUlBLEtBQUssQ0FBQ0gsTUFBTixHQUFlRSxLQUFLLENBQUNGLE1BQXpCLEVBQWlDO0FBQy9CLFdBQU8sS0FBUDtBQUNEOztBQUVELE9BQUssSUFBSUksQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0QsS0FBSyxDQUFDSCxNQUExQixFQUFrQ0ksQ0FBQyxFQUFuQyxFQUF1QztBQUNyQyxRQUFJRCxLQUFLLENBQUNDLENBQUQsQ0FBTCxLQUFhRixLQUFLLENBQUNFLENBQUQsQ0FBdEIsRUFBMkI7QUFDekIsYUFBTyxLQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPLElBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBhcnJheUVxdWFsKGEsIGIpIHtcbiAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBhcnJheVN0YXJ0c1dpdGgoYSwgYik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheVN0YXJ0c1dpdGgoYXJyYXksIHN0YXJ0KSB7XG4gIGlmIChzdGFydC5sZW5ndGggPiBhcnJheS5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXJ0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0YXJ0W2ldICE9PSBhcnJheVtpXSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuIl19\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\n\n/*istanbul ignore end*/\n// Iterator that traverses in the range of [min, max], stepping\n// by distance from a given start position. I.e. for [0, 4], with\n// start of 2, this will iterate 2, 3, 1, 4, 0.\nfunction\n/*istanbul ignore start*/\n_default\n/*istanbul ignore end*/\n(start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n } // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n\n\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n } // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n\n\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n } // We tried to fit hunk before text beginning and beyond text length, then\n // hunk can't fit on the text. Return undefined\n\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbInN0YXJ0IiwibWluTGluZSIsIm1heExpbmUiLCJ3YW50Rm9yd2FyZCIsImJhY2t3YXJkRXhoYXVzdGVkIiwiZm9yd2FyZEV4aGF1c3RlZCIsImxvY2FsT2Zmc2V0IiwiaXRlcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNlO0FBQUE7QUFBQTtBQUFBO0FBQUEsQ0FBU0EsS0FBVCxFQUFnQkMsT0FBaEIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQy9DLE1BQUlDLFdBQVcsR0FBRyxJQUFsQjtBQUFBLE1BQ0lDLGlCQUFpQixHQUFHLEtBRHhCO0FBQUEsTUFFSUMsZ0JBQWdCLEdBQUcsS0FGdkI7QUFBQSxNQUdJQyxXQUFXLEdBQUcsQ0FIbEI7QUFLQSxTQUFPLFNBQVNDLFFBQVQsR0FBb0I7QUFDekIsUUFBSUosV0FBVyxJQUFJLENBQUNFLGdCQUFwQixFQUFzQztBQUNwQyxVQUFJRCxpQkFBSixFQUF1QjtBQUNyQkUsUUFBQUEsV0FBVztBQUNaLE9BRkQsTUFFTztBQUNMSCxRQUFBQSxXQUFXLEdBQUcsS0FBZDtBQUNELE9BTG1DLENBT3BDO0FBQ0E7OztBQUNBLFVBQUlILEtBQUssR0FBR00sV0FBUixJQUF1QkosT0FBM0IsRUFBb0M7QUFDbEMsZUFBT0ksV0FBUDtBQUNEOztBQUVERCxNQUFBQSxnQkFBZ0IsR0FBRyxJQUFuQjtBQUNEOztBQUVELFFBQUksQ0FBQ0QsaUJBQUwsRUFBd0I7QUFDdEIsVUFBSSxDQUFDQyxnQkFBTCxFQUF1QjtBQUNyQkYsUUFBQUEsV0FBVyxHQUFHLElBQWQ7QUFDRCxPQUhxQixDQUt0QjtBQUNBOzs7QUFDQSxVQUFJRixPQUFPLElBQUlELEtBQUssR0FBR00sV0FBdkIsRUFBb0M7QUFDbEMsZUFBTyxDQUFDQSxXQUFXLEVBQW5CO0FBQ0Q7O0FBRURGLE1BQUFBLGlCQUFpQixHQUFHLElBQXBCO0FBQ0EsYUFBT0csUUFBUSxFQUFmO0FBQ0QsS0E5QndCLENBZ0N6QjtBQUNBOztBQUNELEdBbENEO0FBbUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSXRlcmF0b3IgdGhhdCB0cmF2ZXJzZXMgaW4gdGhlIHJhbmdlIG9mIFttaW4sIG1heF0sIHN0ZXBwaW5nXG4vLyBieSBkaXN0YW5jZSBmcm9tIGEgZ2l2ZW4gc3RhcnQgcG9zaXRpb24uIEkuZS4gZm9yIFswLCA0XSwgd2l0aFxuLy8gc3RhcnQgb2YgMiwgdGhpcyB3aWxsIGl0ZXJhdGUgMiwgMywgMSwgNCwgMC5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBtaW5MaW5lLCBtYXhMaW5lKSB7XG4gIGxldCB3YW50Rm9yd2FyZCA9IHRydWUsXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgbG9jYWxPZmZzZXQgPSAxO1xuXG4gIHJldHVybiBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICBpZiAod2FudEZvcndhcmQgJiYgIWZvcndhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmIChiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICBsb2NhbE9mZnNldCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FudEZvcndhcmQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZXlvbmQgdGV4dCBsZW5ndGgsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGFmdGVyIG9mZnNldCBsb2NhdGlvbiAob3IgZGVzaXJlZCBsb2NhdGlvbiBvbiBmaXJzdCBpdGVyYXRpb24pXG4gICAgICBpZiAoc3RhcnQgKyBsb2NhbE9mZnNldCA8PSBtYXhMaW5lKSB7XG4gICAgICAgIHJldHVybiBsb2NhbE9mZnNldDtcbiAgICAgIH1cblxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgaWYgKCFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZWZvcmUgdGV4dCBiZWdpbm5pbmcsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGJlZm9yZSBvZmZzZXQgbG9jYXRpb25cbiAgICAgIGlmIChtaW5MaW5lIDw9IHN0YXJ0IC0gbG9jYWxPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIC1sb2NhbE9mZnNldCsrO1xuICAgICAgfVxuXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgICByZXR1cm4gaXRlcmF0b3IoKTtcbiAgICB9XG5cbiAgICAvLyBXZSB0cmllZCB0byBmaXQgaHVuayBiZWZvcmUgdGV4dCBiZWdpbm5pbmcgYW5kIGJleW9uZCB0ZXh0IGxlbmd0aCwgdGhlblxuICAgIC8vIGh1bmsgY2FuJ3QgZml0IG9uIHRoZSB0ZXh0LiBSZXR1cm4gdW5kZWZpbmVkXG4gIH07XG59XG4iXX0=\n","/*istanbul ignore start*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.generateOptions = generateOptions;\n\n/*istanbul ignore end*/\nfunction generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n\n return defaults;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6WyJnZW5lcmF0ZU9wdGlvbnMiLCJvcHRpb25zIiwiZGVmYXVsdHMiLCJjYWxsYmFjayIsIm5hbWUiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQU8sU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFFBQWxDLEVBQTRDO0FBQ2pELE1BQUksT0FBT0QsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUNqQ0MsSUFBQUEsUUFBUSxDQUFDQyxRQUFULEdBQW9CRixPQUFwQjtBQUNELEdBRkQsTUFFTyxJQUFJQSxPQUFKLEVBQWE7QUFDbEIsU0FBSyxJQUFJRyxJQUFULElBQWlCSCxPQUFqQixFQUEwQjtBQUN4QjtBQUNBLFVBQUlBLE9BQU8sQ0FBQ0ksY0FBUixDQUF1QkQsSUFBdkIsQ0FBSixFQUFrQztBQUNoQ0YsUUFBQUEsUUFBUSxDQUFDRSxJQUFELENBQVIsR0FBaUJILE9BQU8sQ0FBQ0csSUFBRCxDQUF4QjtBQUNEO0FBQ0Y7QUFDRjs7QUFDRCxTQUFPRixRQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlZmF1bHRzLmNhbGxiYWNrID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChvcHRpb25zKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgZGVmYXVsdHNbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG4iXX0=\n","/*! @license DOMPurify 2.5.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.4/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return _construct(Func, _toConsumableArray(args));\n };\n }\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringToString = unapply(String.prototype.toString);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n var regExpTest = unapply(RegExp.prototype.test);\n var typeErrorCreate = unconstruct(TypeError);\n function numberIsNaN(x) {\n // eslint-disable-next-line unicorn/prefer-number-properties\n return typeof x === 'number' && isNaN(x);\n }\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array, transformCaseFunc) {\n var _transformCaseFunc;\n transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n var property;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property]) === true) {\n newObject[property] = object[property];\n }\n }\n return newObject;\n }\n\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n return fallbackValue;\n }\n\n var html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n var mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n var text = freeze(['#text']);\n\n var html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n var svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n var mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n var TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n var DOCTYPE_NAME = seal(/^html$/i);\n var CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html) {\n return html;\n },\n createScriptURL: function createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.5.4';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE,\n CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;\n var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n var ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n var SAFE_FOR_XML = true;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n var SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n var SANITIZE_NAMED_PROPS = false;\n var SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n var ALLOWED_NAMESPACES = null;\n var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n /* Parsing of strict XHTML documents */\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Specify the maximum element nesting depth to prevent mXSS */\n var MAX_NESTING_DEPTH = 255;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc;\n var leadingWhitespace;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n var body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.__depth !== 'undefined' && typeof elm.__depth !== 'number' || typeof elm.__removalCount !== 'undefined' && typeof elm.__removalCount !== 'number' || typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any ocurrence of processing instructions */\n if (currentNode.nodeType === 7) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === 8 && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n for (var i = childCount - 1; i >= 0; --i) {\n var childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$1, ' ');\n content = stringReplace(content, ERB_EXPR$1, ' ');\n content = stringReplace(content, TMPLIT_EXPR$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement || value === '__depth' || value === '__removalCount')) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT$1);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr;\n var value;\n var lcName;\n var l;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$1, ' ');\n value = stringReplace(value, ERB_EXPR$1, ' ');\n value = stringReplace(value, TMPLIT_EXPR$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && _typeof(trustedTypes) === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n var parentNode = getParentNode(shadowNode);\n\n /* Set the nesting depth of an element */\n if (shadowNode.nodeType === 1) {\n if (parentNode && parentNode.__depth) {\n /*\n We want the depth of the node in the original tree, which can\n change when it's removed from its parent.\n */\n shadowNode.__depth = (shadowNode.__removalCount || 0) + parentNode.__depth + 1;\n } else {\n shadowNode.__depth = 1;\n }\n }\n\n /*\n * Remove an element if nested too deeply to avoid mXSS\n * or if the __depth might have been tampered with\n */\n if (shadowNode.__depth >= MAX_NESTING_DEPTH || numberIsNaN(shadowNode.__depth)) {\n _forceRemove(shadowNode);\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n shadowNode.content.__depth = shadowNode.__depth;\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var body;\n var importedNode;\n var currentNode;\n var oldNode;\n var returnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n var tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n var parentNode = getParentNode(currentNode);\n\n /* Set the nesting depth of an element */\n if (currentNode.nodeType === 1) {\n if (parentNode && parentNode.__depth) {\n /*\n We want the depth of the node in the original tree, which can\n change when it's removed from its parent.\n */\n currentNode.__depth = (currentNode.__removalCount || 0) + parentNode.__depth + 1;\n } else {\n currentNode.__depth = 1;\n }\n }\n\n /*\n * Remove an element if nested too deeply to avoid mXSS\n * or if the __depth might have been tampered with\n */\n if (currentNode.__depth >= MAX_NESTING_DEPTH || numberIsNaN(currentNode.__depth)) {\n _forceRemove(currentNode);\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n currentNode.content.__depth = currentNode.__depth;\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n oldNode = currentNode;\n }\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR$1, ' ');\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function (Hogan) {\n // Setup regex assignments\n // remove whitespace according to Mustache spec\n var rIsWhitespace = /\\S/,\n rQuot = /\\\"/g,\n rNewline = /\\n/g,\n rCr = /\\r/g,\n rSlash = /\\\\/g,\n rLineSep = /\\u2028/,\n rParagraphSep = /\\u2029/;\n\n Hogan.tags = {\n '#': 1, '^': 2, '<': 3, '$': 4,\n '/': 5, '!': 6, '>': 7, '=': 8, '_v': 9,\n '{': 10, '&': 11, '_t': 12\n };\n\n Hogan.scan = function scan(text, delimiters) {\n var len = text.length,\n IN_TEXT = 0,\n IN_TAG_TYPE = 1,\n IN_TAG = 2,\n state = IN_TEXT,\n tagType = null,\n tag = null,\n buf = '',\n tokens = [],\n seenTag = false,\n i = 0,\n lineStart = 0,\n otag = '{{',\n ctag = '}}';\n\n function addBuf() {\n if (buf.length > 0) {\n tokens.push({tag: '_t', text: new String(buf)});\n buf = '';\n }\n }\n\n function lineIsWhitespace() {\n var isAllWhitespace = true;\n for (var j = lineStart; j < tokens.length; j++) {\n isAllWhitespace =\n (Hogan.tags[tokens[j].tag] < Hogan.tags['_v']) ||\n (tokens[j].tag == '_t' && tokens[j].text.match(rIsWhitespace) === null);\n if (!isAllWhitespace) {\n return false;\n }\n }\n\n return isAllWhitespace;\n }\n\n function filterLine(haveSeenTag, noNewLine) {\n addBuf();\n\n if (haveSeenTag && lineIsWhitespace()) {\n for (var j = lineStart, next; j < tokens.length; j++) {\n if (tokens[j].text) {\n if ((next = tokens[j+1]) && next.tag == '>') {\n // set indent to token value\n next.indent = tokens[j].text.toString()\n }\n tokens.splice(j, 1);\n }\n }\n } else if (!noNewLine) {\n tokens.push({tag:'\\n'});\n }\n\n seenTag = false;\n lineStart = tokens.length;\n }\n\n function changeDelimiters(text, index) {\n var close = '=' + ctag,\n closeIndex = text.indexOf(close, index),\n delimiters = trim(\n text.substring(text.indexOf('=', index) + 1, closeIndex)\n ).split(' ');\n\n otag = delimiters[0];\n ctag = delimiters[delimiters.length - 1];\n\n return closeIndex + close.length - 1;\n }\n\n if (delimiters) {\n delimiters = delimiters.split(' ');\n otag = delimiters[0];\n ctag = delimiters[1];\n }\n\n for (i = 0; i < len; i++) {\n if (state == IN_TEXT) {\n if (tagChange(otag, text, i)) {\n --i;\n addBuf();\n state = IN_TAG_TYPE;\n } else {\n if (text.charAt(i) == '\\n') {\n filterLine(seenTag);\n } else {\n buf += text.charAt(i);\n }\n }\n } else if (state == IN_TAG_TYPE) {\n i += otag.length - 1;\n tag = Hogan.tags[text.charAt(i + 1)];\n tagType = tag ? text.charAt(i + 1) : '_v';\n if (tagType == '=') {\n i = changeDelimiters(text, i);\n state = IN_TEXT;\n } else {\n if (tag) {\n i++;\n }\n state = IN_TAG;\n }\n seenTag = i;\n } else {\n if (tagChange(ctag, text, i)) {\n tokens.push({tag: tagType, n: trim(buf), otag: otag, ctag: ctag,\n i: (tagType == '/') ? seenTag - otag.length : i + ctag.length});\n buf = '';\n i += ctag.length - 1;\n state = IN_TEXT;\n if (tagType == '{') {\n if (ctag == '}}') {\n i++;\n } else {\n cleanTripleStache(tokens[tokens.length - 1]);\n }\n }\n } else {\n buf += text.charAt(i);\n }\n }\n }\n\n filterLine(seenTag, true);\n\n return tokens;\n }\n\n function cleanTripleStache(token) {\n if (token.n.substr(token.n.length - 1) === '}') {\n token.n = token.n.substring(0, token.n.length - 1);\n }\n }\n\n function trim(s) {\n if (s.trim) {\n return s.trim();\n }\n\n return s.replace(/^\\s*|\\s*$/g, '');\n }\n\n function tagChange(tag, text, index) {\n if (text.charAt(index) != tag.charAt(0)) {\n return false;\n }\n\n for (var i = 1, l = tag.length; i < l; i++) {\n if (text.charAt(index + i) != tag.charAt(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n // the tags allowed inside super templates\n var allowedInSuper = {'_t': true, '\\n': true, '$': true, '/': true};\n\n function buildTree(tokens, kind, stack, customTags) {\n var instructions = [],\n opener = null,\n tail = null,\n token = null;\n\n tail = stack[stack.length - 1];\n\n while (tokens.length > 0) {\n token = tokens.shift();\n\n if (tail && tail.tag == '<' && !(token.tag in allowedInSuper)) {\n throw new Error('Illegal content in < super tag.');\n }\n\n if (Hogan.tags[token.tag] <= Hogan.tags['$'] || isOpener(token, customTags)) {\n stack.push(token);\n token.nodes = buildTree(tokens, token.tag, stack, customTags);\n } else if (token.tag == '/') {\n if (stack.length === 0) {\n throw new Error('Closing tag without opener: /' + token.n);\n }\n opener = stack.pop();\n if (token.n != opener.n && !isCloser(token.n, opener.n, customTags)) {\n throw new Error('Nesting error: ' + opener.n + ' vs. ' + token.n);\n }\n opener.end = token.i;\n return instructions;\n } else if (token.tag == '\\n') {\n token.last = (tokens.length == 0) || (tokens[0].tag == '\\n');\n }\n\n instructions.push(token);\n }\n\n if (stack.length > 0) {\n throw new Error('missing closing tag: ' + stack.pop().n);\n }\n\n return instructions;\n }\n\n function isOpener(token, tags) {\n for (var i = 0, l = tags.length; i < l; i++) {\n if (tags[i].o == token.n) {\n token.tag = '#';\n return true;\n }\n }\n }\n\n function isCloser(close, open, tags) {\n for (var i = 0, l = tags.length; i < l; i++) {\n if (tags[i].c == close && tags[i].o == open) {\n return true;\n }\n }\n }\n\n function stringifySubstitutions(obj) {\n var items = [];\n for (var key in obj) {\n items.push('\"' + esc(key) + '\": function(c,p,t,i) {' + obj[key] + '}');\n }\n return \"{ \" + items.join(\",\") + \" }\";\n }\n\n function stringifyPartials(codeObj) {\n var partials = [];\n for (var key in codeObj.partials) {\n partials.push('\"' + esc(key) + '\":{name:\"' + esc(codeObj.partials[key].name) + '\", ' + stringifyPartials(codeObj.partials[key]) + \"}\");\n }\n return \"partials: {\" + partials.join(\",\") + \"}, subs: \" + stringifySubstitutions(codeObj.subs);\n }\n\n Hogan.stringify = function(codeObj, text, options) {\n return \"{code: function (c,p,i) { \" + Hogan.wrapMain(codeObj.code) + \" },\" + stringifyPartials(codeObj) + \"}\";\n }\n\n var serialNo = 0;\n Hogan.generate = function(tree, text, options) {\n serialNo = 0;\n var context = { code: '', subs: {}, partials: {} };\n Hogan.walk(tree, context);\n\n if (options.asString) {\n return this.stringify(context, text, options);\n }\n\n return this.makeTemplate(context, text, options);\n }\n\n Hogan.wrapMain = function(code) {\n return 'var t=this;t.b(i=i||\"\");' + code + 'return t.fl();';\n }\n\n Hogan.template = Hogan.Template;\n\n Hogan.makeTemplate = function(codeObj, text, options) {\n var template = this.makePartials(codeObj);\n template.code = new Function('c', 'p', 'i', this.wrapMain(codeObj.code));\n return new this.template(template, text, this, options);\n }\n\n Hogan.makePartials = function(codeObj) {\n var key, template = {subs: {}, partials: codeObj.partials, name: codeObj.name};\n for (key in template.partials) {\n template.partials[key] = this.makePartials(template.partials[key]);\n }\n for (key in codeObj.subs) {\n template.subs[key] = new Function('c', 'p', 't', 'i', codeObj.subs[key]);\n }\n return template;\n }\n\n function esc(s) {\n return s.replace(rSlash, '\\\\\\\\')\n .replace(rQuot, '\\\\\\\"')\n .replace(rNewline, '\\\\n')\n .replace(rCr, '\\\\r')\n .replace(rLineSep, '\\\\u2028')\n .replace(rParagraphSep, '\\\\u2029');\n }\n\n function chooseMethod(s) {\n return (~s.indexOf('.')) ? 'd' : 'f';\n }\n\n function createPartial(node, context) {\n var prefix = \"<\" + (context.prefix || \"\");\n var sym = prefix + node.n + serialNo++;\n context.partials[sym] = {name: node.n, partials: {}};\n context.code += 't.b(t.rp(\"' + esc(sym) + '\",c,p,\"' + (node.indent || '') + '\"));';\n return sym;\n }\n\n Hogan.codegen = {\n '#': function(node, context) {\n context.code += 'if(t.s(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,1),' +\n 'c,p,0,' + node.i + ',' + node.end + ',\"' + node.otag + \" \" + node.ctag + '\")){' +\n 't.rs(c,p,' + 'function(c,p,t){';\n Hogan.walk(node.nodes, context);\n context.code += '});c.pop();}';\n },\n\n '^': function(node, context) {\n context.code += 'if(!t.s(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,1),c,p,1,0,0,\"\")){';\n Hogan.walk(node.nodes, context);\n context.code += '};';\n },\n\n '>': createPartial,\n '<': function(node, context) {\n var ctx = {partials: {}, code: '', subs: {}, inPartial: true};\n Hogan.walk(node.nodes, ctx);\n var template = context.partials[createPartial(node, context)];\n template.subs = ctx.subs;\n template.partials = ctx.partials;\n },\n\n '$': function(node, context) {\n var ctx = {subs: {}, code: '', partials: context.partials, prefix: node.n};\n Hogan.walk(node.nodes, ctx);\n context.subs[node.n] = ctx.code;\n if (!context.inPartial) {\n context.code += 't.sub(\"' + esc(node.n) + '\",c,p,i);';\n }\n },\n\n '\\n': function(node, context) {\n context.code += write('\"\\\\n\"' + (node.last ? '' : ' + i'));\n },\n\n '_v': function(node, context) {\n context.code += 't.b(t.v(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,0)));';\n },\n\n '_t': function(node, context) {\n context.code += write('\"' + esc(node.text) + '\"');\n },\n\n '{': tripleStache,\n\n '&': tripleStache\n }\n\n function tripleStache(node, context) {\n context.code += 't.b(t.t(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,0)));';\n }\n\n function write(s) {\n return 't.b(' + s + ');';\n }\n\n Hogan.walk = function(nodelist, context) {\n var func;\n for (var i = 0, l = nodelist.length; i < l; i++) {\n func = Hogan.codegen[nodelist[i].tag];\n func && func(nodelist[i], context);\n }\n return context;\n }\n\n Hogan.parse = function(tokens, text, options) {\n options = options || {};\n return buildTree(tokens, '', [], options.sectionTags || []);\n }\n\n Hogan.cache = {};\n\n Hogan.cacheKey = function(text, options) {\n return [text, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join('||');\n }\n\n Hogan.compile = function(text, options) {\n options = options || {};\n var key = Hogan.cacheKey(text, options);\n var template = this.cache[key];\n\n if (template) {\n var partials = template.partials;\n for (var name in partials) {\n delete partials[name].instance;\n }\n return template;\n }\n\n template = this.generate(this.parse(this.scan(text, options.delimiters), text, options), text, options);\n return this.cache[key] = template;\n }\n})(typeof exports !== 'undefined' ? exports : Hogan);\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This file is for use with Node.js. See dist/ for browser files.\n\nvar Hogan = require('./compiler');\nHogan.Template = require('./template').Template;\nHogan.template = Hogan.Template;\nmodule.exports = Hogan;\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Hogan = {};\n\n(function (Hogan) {\n Hogan.Template = function (codeObj, text, compiler, options) {\n codeObj = codeObj || {};\n this.r = codeObj.code || this.r;\n this.c = compiler;\n this.options = options || {};\n this.text = text || '';\n this.partials = codeObj.partials || {};\n this.subs = codeObj.subs || {};\n this.buf = '';\n }\n\n Hogan.Template.prototype = {\n // render: replaced by generated code.\n r: function (context, partials, indent) { return ''; },\n\n // variable escaping\n v: hoganEscape,\n\n // triple stache\n t: coerceToString,\n\n render: function render(context, partials, indent) {\n return this.ri([context], partials || {}, indent);\n },\n\n // render internal -- a hook for overrides that catches partials too\n ri: function (context, partials, indent) {\n return this.r(context, partials, indent);\n },\n\n // ensurePartial\n ep: function(symbol, partials) {\n var partial = this.partials[symbol];\n\n // check to see that if we've instantiated this partial before\n var template = partials[partial.name];\n if (partial.instance && partial.base == template) {\n return partial.instance;\n }\n\n if (typeof template == 'string') {\n if (!this.c) {\n throw new Error(\"No compiler available.\");\n }\n template = this.c.compile(template, this.options);\n }\n\n if (!template) {\n return null;\n }\n\n // We use this to check whether the partials dictionary has changed\n this.partials[symbol].base = template;\n\n if (partial.subs) {\n // Make sure we consider parent template now\n if (!partials.stackText) partials.stackText = {};\n for (key in partial.subs) {\n if (!partials.stackText[key]) {\n partials.stackText[key] = (this.activeSub !== undefined && partials.stackText[this.activeSub]) ? partials.stackText[this.activeSub] : this.text;\n }\n }\n template = createSpecializedPartial(template, partial.subs, partial.partials,\n this.stackSubs, this.stackPartials, partials.stackText);\n }\n this.partials[symbol].instance = template;\n\n return template;\n },\n\n // tries to find a partial in the current scope and render it\n rp: function(symbol, context, partials, indent) {\n var partial = this.ep(symbol, partials);\n if (!partial) {\n return '';\n }\n\n return partial.ri(context, partials, indent);\n },\n\n // render a section\n rs: function(context, partials, section) {\n var tail = context[context.length - 1];\n\n if (!isArray(tail)) {\n section(context, partials, this);\n return;\n }\n\n for (var i = 0; i < tail.length; i++) {\n context.push(tail[i]);\n section(context, partials, this);\n context.pop();\n }\n },\n\n // maybe start a section\n s: function(val, ctx, partials, inverted, start, end, tags) {\n var pass;\n\n if (isArray(val) && val.length === 0) {\n return false;\n }\n\n if (typeof val == 'function') {\n val = this.ms(val, ctx, partials, inverted, start, end, tags);\n }\n\n pass = !!val;\n\n if (!inverted && pass && ctx) {\n ctx.push((typeof val == 'object') ? val : ctx[ctx.length - 1]);\n }\n\n return pass;\n },\n\n // find values with dotted names\n d: function(key, ctx, partials, returnFound) {\n var found,\n names = key.split('.'),\n val = this.f(names[0], ctx, partials, returnFound),\n doModelGet = this.options.modelGet,\n cx = null;\n\n if (key === '.' && isArray(ctx[ctx.length - 2])) {\n val = ctx[ctx.length - 1];\n } else {\n for (var i = 1; i < names.length; i++) {\n found = findInScope(names[i], val, doModelGet);\n if (found !== undefined) {\n cx = val;\n val = found;\n } else {\n val = '';\n }\n }\n }\n\n if (returnFound && !val) {\n return false;\n }\n\n if (!returnFound && typeof val == 'function') {\n ctx.push(cx);\n val = this.mv(val, ctx, partials);\n ctx.pop();\n }\n\n return val;\n },\n\n // find values with normal names\n f: function(key, ctx, partials, returnFound) {\n var val = false,\n v = null,\n found = false,\n doModelGet = this.options.modelGet;\n\n for (var i = ctx.length - 1; i >= 0; i--) {\n v = ctx[i];\n val = findInScope(key, v, doModelGet);\n if (val !== undefined) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n return (returnFound) ? false : \"\";\n }\n\n if (!returnFound && typeof val == 'function') {\n val = this.mv(val, ctx, partials);\n }\n\n return val;\n },\n\n // higher order templates\n ls: function(func, cx, partials, text, tags) {\n var oldTags = this.options.delimiters;\n\n this.options.delimiters = tags;\n this.b(this.ct(coerceToString(func.call(cx, text)), cx, partials));\n this.options.delimiters = oldTags;\n\n return false;\n },\n\n // compile text\n ct: function(text, cx, partials) {\n if (this.options.disableLambda) {\n throw new Error('Lambda features disabled.');\n }\n return this.c.compile(text, this.options).render(cx, partials);\n },\n\n // template result buffering\n b: function(s) { this.buf += s; },\n\n fl: function() { var r = this.buf; this.buf = ''; return r; },\n\n // method replace section\n ms: function(func, ctx, partials, inverted, start, end, tags) {\n var textSource,\n cx = ctx[ctx.length - 1],\n result = func.call(cx);\n\n if (typeof result == 'function') {\n if (inverted) {\n return true;\n } else {\n textSource = (this.activeSub && this.subsText && this.subsText[this.activeSub]) ? this.subsText[this.activeSub] : this.text;\n return this.ls(result, cx, partials, textSource.substring(start, end), tags);\n }\n }\n\n return result;\n },\n\n // method replace variable\n mv: function(func, ctx, partials) {\n var cx = ctx[ctx.length - 1];\n var result = func.call(cx);\n\n if (typeof result == 'function') {\n return this.ct(coerceToString(result.call(cx)), cx, partials);\n }\n\n return result;\n },\n\n sub: function(name, context, partials, indent) {\n var f = this.subs[name];\n if (f) {\n this.activeSub = name;\n f(context, partials, this, indent);\n this.activeSub = false;\n }\n }\n\n };\n\n //Find a key in an object\n function findInScope(key, scope, doModelGet) {\n var val;\n\n if (scope && typeof scope == 'object') {\n\n if (scope[key] !== undefined) {\n val = scope[key];\n\n // try lookup with get for backbone or similar model data\n } else if (doModelGet && scope.get && typeof scope.get == 'function') {\n val = scope.get(key);\n }\n }\n\n return val;\n }\n\n function createSpecializedPartial(instance, subs, partials, stackSubs, stackPartials, stackText) {\n function PartialTemplate() {};\n PartialTemplate.prototype = instance;\n function Substitutions() {};\n Substitutions.prototype = instance.subs;\n var key;\n var partial = new PartialTemplate();\n partial.subs = new Substitutions();\n partial.subsText = {}; //hehe. substext.\n partial.buf = '';\n\n stackSubs = stackSubs || {};\n partial.stackSubs = stackSubs;\n partial.subsText = stackText;\n for (key in subs) {\n if (!stackSubs[key]) stackSubs[key] = subs[key];\n }\n for (key in stackSubs) {\n partial.subs[key] = stackSubs[key];\n }\n\n stackPartials = stackPartials || {};\n partial.stackPartials = stackPartials;\n for (key in partials) {\n if (!stackPartials[key]) stackPartials[key] = partials[key];\n }\n for (key in stackPartials) {\n partial.partials[key] = stackPartials[key];\n }\n\n return partial;\n }\n\n var rAmp = /&/g,\n rLt = /</g,\n rGt = />/g,\n rApos = /\\'/g,\n rQuot = /\\\"/g,\n hChars = /[&<>\\\"\\']/;\n\n function coerceToString(val) {\n return String((val === null || val === undefined) ? '' : val);\n }\n\n function hoganEscape(str) {\n str = coerceToString(str);\n return hChars.test(str) ?\n str\n .replace(rAmp, '&')\n .replace(rLt, '<')\n .replace(rGt, '>')\n .replace(rApos, ''')\n .replace(rQuot, '"') :\n str;\n }\n\n var isArray = Array.isArray || function(a) {\n return Object.prototype.toString.call(a) === '[object Array]';\n };\n\n})(typeof exports !== 'undefined' ? exports : Hogan);\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","/**\n * Identicon.js 2.3.3\n * http://github.com/stewartlord/identicon.js\n *\n * PNGLib required for PNG output\n * http://www.xarg.org/download/pnglib.js\n *\n * Copyright 2018, Stewart Lord\n * Released under the BSD license\n * http://www.opensource.org/licenses/bsd-license.php\n */\n\n(function() {\n var PNGlib;\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n PNGlib = require('./pnglib');\n } else {\n PNGlib = window.PNGlib;\n }\n\n var Identicon = function(hash, options){\n if (typeof(hash) !== 'string' || hash.length < 15) {\n throw 'A hash of at least 15 characters is required.';\n }\n\n this.defaults = {\n background: [240, 240, 240, 255],\n margin: 0.08,\n size: 64,\n saturation: 0.7,\n brightness: 0.5,\n format: 'png'\n };\n\n this.options = typeof(options) === 'object' ? options : this.defaults;\n\n // backward compatibility with old constructor (hash, size, margin)\n if (typeof(arguments[1]) === 'number') { this.options.size = arguments[1]; }\n if (arguments[2]) { this.options.margin = arguments[2]; }\n\n this.hash = hash\n this.background = this.options.background || this.defaults.background;\n this.size = this.options.size || this.defaults.size;\n this.format = this.options.format || this.defaults.format;\n this.margin = this.options.margin !== undefined ? this.options.margin : this.defaults.margin;\n\n // foreground defaults to last 7 chars as hue at 70% saturation, 50% brightness\n var hue = parseInt(this.hash.substr(-7), 16) / 0xfffffff;\n var saturation = this.options.saturation || this.defaults.saturation;\n var brightness = this.options.brightness || this.defaults.brightness;\n this.foreground = this.options.foreground || this.hsl2rgb(hue, saturation, brightness);\n };\n\n Identicon.prototype = {\n background: null,\n foreground: null,\n hash: null,\n margin: null,\n size: null,\n format: null,\n\n image: function(){\n return this.isSvg()\n ? new Svg(this.size, this.foreground, this.background)\n : new PNGlib(this.size, this.size, 256);\n },\n\n render: function(){\n var image = this.image(),\n size = this.size,\n baseMargin = Math.floor(size * this.margin),\n cell = Math.floor((size - (baseMargin * 2)) / 5),\n margin = Math.floor((size - cell * 5) / 2),\n bg = image.color.apply(image, this.background),\n fg = image.color.apply(image, this.foreground);\n\n // the first 15 characters of the hash control the pixels (even/odd)\n // they are drawn down the middle first, then mirrored outwards\n var i, color;\n for (i = 0; i < 15; i++) {\n color = parseInt(this.hash.charAt(i), 16) % 2 ? bg : fg;\n if (i < 5) {\n this.rectangle(2 * cell + margin, i * cell + margin, cell, cell, color, image);\n } else if (i < 10) {\n this.rectangle(1 * cell + margin, (i - 5) * cell + margin, cell, cell, color, image);\n this.rectangle(3 * cell + margin, (i - 5) * cell + margin, cell, cell, color, image);\n } else if (i < 15) {\n this.rectangle(0 * cell + margin, (i - 10) * cell + margin, cell, cell, color, image);\n this.rectangle(4 * cell + margin, (i - 10) * cell + margin, cell, cell, color, image);\n }\n }\n\n return image;\n },\n\n rectangle: function(x, y, w, h, color, image){\n if (this.isSvg()) {\n image.rectangles.push({x: x, y: y, w: w, h: h, color: color});\n } else {\n var i, j;\n for (i = x; i < x + w; i++) {\n for (j = y; j < y + h; j++) {\n image.buffer[image.index(i, j)] = color;\n }\n }\n }\n },\n\n // adapted from: https://gist.github.com/aemkei/1325937\n hsl2rgb: function(h, s, b){\n h *= 6;\n s = [\n b += s *= b < .5 ? b : 1 - b,\n b - h % 1 * s * 2,\n b -= s *= 2,\n b,\n b + h % 1 * s,\n b + s\n ];\n\n return[\n s[ ~~h % 6 ] * 255, // red\n s[ (h|16) % 6 ] * 255, // green\n s[ (h|8) % 6 ] * 255 // blue\n ];\n },\n\n toString: function(raw){\n // backward compatibility with old toString, default to base64\n if (raw) {\n return this.render().getDump();\n } else {\n return this.render().getBase64();\n }\n },\n\n isSvg: function(){\n return this.format.match(/svg/i)\n }\n };\n\n var Svg = function(size, foreground, background){\n this.size = size;\n this.foreground = this.color.apply(this, foreground);\n this.background = this.color.apply(this, background);\n this.rectangles = [];\n };\n\n Svg.prototype = {\n size: null,\n foreground: null,\n background: null,\n rectangles: null,\n\n color: function(r, g, b, a){\n var values = [r, g, b].map(Math.round);\n values.push((a >= 0) && (a <= 255) ? a/255 : 1);\n return 'rgba(' + values.join(',') + ')';\n },\n\n getDump: function(){\n var i,\n xml,\n rect,\n fg = this.foreground,\n bg = this.background,\n stroke = this.size * 0.005;\n\n xml = \"<svg xmlns='http://www.w3.org/2000/svg'\"\n + \" width='\" + this.size + \"' height='\" + this.size + \"'\"\n + \" style='background-color:\" + bg + \";'>\"\n + \"<g style='fill:\" + fg + \"; stroke:\" + fg + \"; stroke-width:\" + stroke + \";'>\";\n\n for (i = 0; i < this.rectangles.length; i++) {\n rect = this.rectangles[i];\n if (rect.color == bg) continue;\n xml += \"<rect \"\n + \" x='\" + rect.x + \"'\"\n + \" y='\" + rect.y + \"'\"\n + \" width='\" + rect.w + \"'\"\n + \" height='\" + rect.h + \"'\"\n + \"/>\";\n }\n xml += \"</g></svg>\"\n\n return xml;\n },\n\n getBase64: function(){\n if ('function' === typeof btoa) {\n return btoa(this.getDump());\n } else if (Buffer) {\n return new Buffer(this.getDump(), 'binary').toString('base64');\n } else {\n throw 'Cannot generate base64 output';\n }\n }\n };\n\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = Identicon;\n } else {\n window.Identicon = Identicon;\n }\n})();\n","/**\n* A handy class to calculate color values.\n*\n* @version 1.0\n* @author Robert Eisele <robert@xarg.org>\n* @copyright Copyright (c) 2010, Robert Eisele\n* @link http://www.xarg.org/2010/03/generate-client-side-png-files-using-javascript/\n* @license http://www.opensource.org/licenses/bsd-license.php BSD License\n*\n*/\n\n(function() {\n\n\t// helper functions for that ctx\n\tfunction write(buffer, offs) {\n\t\tfor (var i = 2; i < arguments.length; i++) {\n\t\t\tfor (var j = 0; j < arguments[i].length; j++) {\n\t\t\t\tbuffer[offs++] = arguments[i].charAt(j);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction byte2(w) {\n\t\treturn String.fromCharCode((w >> 8) & 255, w & 255);\n\t}\n\n\tfunction byte4(w) {\n\t\treturn String.fromCharCode((w >> 24) & 255, (w >> 16) & 255, (w >> 8) & 255, w & 255);\n\t}\n\n\tfunction byte2lsb(w) {\n\t\treturn String.fromCharCode(w & 255, (w >> 8) & 255);\n\t}\n\n\t// modified from original source to support NPM\n\tvar PNGlib = function(width,height,depth) {\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = depth;\n\n\t\t// pixel data and row filter identifier size\n\t\tthis.pix_size = height * (width + 1);\n\n\t\t// deflate header, pix_size, block headers, adler32 checksum\n\t\tthis.data_size = 2 + this.pix_size + 5 * Math.floor((0xfffe + this.pix_size) / 0xffff) + 4;\n\n\t\t// offsets and sizes of Png chunks\n\t\tthis.ihdr_offs = 0;\t\t\t\t\t\t\t\t\t// IHDR offset and size\n\t\tthis.ihdr_size = 4 + 4 + 13 + 4;\n\t\tthis.plte_offs = this.ihdr_offs + this.ihdr_size;\t// PLTE offset and size\n\t\tthis.plte_size = 4 + 4 + 3 * depth + 4;\n\t\tthis.trns_offs = this.plte_offs + this.plte_size;\t// tRNS offset and size\n\t\tthis.trns_size = 4 + 4 + depth + 4;\n\t\tthis.idat_offs = this.trns_offs + this.trns_size;\t// IDAT offset and size\n\t\tthis.idat_size = 4 + 4 + this.data_size + 4;\n\t\tthis.iend_offs = this.idat_offs + this.idat_size;\t// IEND offset and size\n\t\tthis.iend_size = 4 + 4 + 4;\n\t\tthis.buffer_size = this.iend_offs + this.iend_size;\t// total PNG size\n\n\t\tthis.buffer = new Array();\n\t\tthis.palette = new Object();\n\t\tthis.pindex = 0;\n\n\t\tvar _crc32 = new Array();\n\n\t\t// initialize buffer with zero bytes\n\t\tfor (var i = 0; i < this.buffer_size; i++) {\n\t\t\tthis.buffer[i] = \"\\x00\";\n\t\t}\n\n\t\t// initialize non-zero elements\n\t\twrite(this.buffer, this.ihdr_offs, byte4(this.ihdr_size - 12), 'IHDR', byte4(width), byte4(height), \"\\x08\\x03\");\n\t\twrite(this.buffer, this.plte_offs, byte4(this.plte_size - 12), 'PLTE');\n\t\twrite(this.buffer, this.trns_offs, byte4(this.trns_size - 12), 'tRNS');\n\t\twrite(this.buffer, this.idat_offs, byte4(this.idat_size - 12), 'IDAT');\n\t\twrite(this.buffer, this.iend_offs, byte4(this.iend_size - 12), 'IEND');\n\n\t\t// initialize deflate header\n\t\tvar header = ((8 + (7 << 4)) << 8) | (3 << 6);\n\t\theader+= 31 - (header % 31);\n\n\t\twrite(this.buffer, this.idat_offs + 8, byte2(header));\n\n\t\t// initialize deflate block headers\n\t\tfor (var i = 0; (i << 16) - 1 < this.pix_size; i++) {\n\t\t\tvar size, bits;\n\t\t\tif (i + 0xffff < this.pix_size) {\n\t\t\t\tsize = 0xffff;\n\t\t\t\tbits = \"\\x00\";\n\t\t\t} else {\n\t\t\t\tsize = this.pix_size - (i << 16) - i;\n\t\t\t\tbits = \"\\x01\";\n\t\t\t}\n\t\t\twrite(this.buffer, this.idat_offs + 8 + 2 + (i << 16) + (i << 2), bits, byte2lsb(size), byte2lsb(~size));\n\t\t}\n\n\t\t/* Create crc32 lookup table */\n\t\tfor (var i = 0; i < 256; i++) {\n\t\t\tvar c = i;\n\t\t\tfor (var j = 0; j < 8; j++) {\n\t\t\t\tif (c & 1) {\n\t\t\t\t\tc = -306674912 ^ ((c >> 1) & 0x7fffffff);\n\t\t\t\t} else {\n\t\t\t\t\tc = (c >> 1) & 0x7fffffff;\n\t\t\t\t}\n\t\t\t}\n\t\t\t_crc32[i] = c;\n\t\t}\n\n\t\t// compute the index into a png for a given pixel\n\t\tthis.index = function(x,y) {\n\t\t\tvar i = y * (this.width + 1) + x + 1;\n\t\t\tvar j = this.idat_offs + 8 + 2 + 5 * Math.floor((i / 0xffff) + 1) + i;\n\t\t\treturn j;\n\t\t}\n\n\t\t// convert a color and build up the palette\n\t\tthis.color = function(red, green, blue, alpha) {\n\n\t\t\talpha = alpha >= 0 ? alpha : 255;\n\t\t\tvar color = (((((alpha << 8) | red) << 8) | green) << 8) | blue;\n\n\t\t\tif (typeof this.palette[color] == \"undefined\") {\n\t\t\t\tif (this.pindex == this.depth) return \"\\x00\";\n\n\t\t\t\tvar ndx = this.plte_offs + 8 + 3 * this.pindex;\n\n\t\t\t\tthis.buffer[ndx + 0] = String.fromCharCode(red);\n\t\t\t\tthis.buffer[ndx + 1] = String.fromCharCode(green);\n\t\t\t\tthis.buffer[ndx + 2] = String.fromCharCode(blue);\n\t\t\t\tthis.buffer[this.trns_offs+8+this.pindex] = String.fromCharCode(alpha);\n\n\t\t\t\tthis.palette[color] = String.fromCharCode(this.pindex++);\n\t\t\t}\n\t\t\treturn this.palette[color];\n\t\t}\n\n\t\t// output a PNG string, Base64 encoded\n\t\tthis.getBase64 = function() {\n\n\t\t\tvar s = this.getDump();\n\n\t\t\tvar ch = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\t\t\tvar c1, c2, c3, e1, e2, e3, e4;\n\t\t\tvar l = s.length;\n\t\t\tvar i = 0;\n\t\t\tvar r = \"\";\n\n\t\t\tdo {\n\t\t\t\tc1 = s.charCodeAt(i);\n\t\t\t\te1 = c1 >> 2;\n\t\t\t\tc2 = s.charCodeAt(i+1);\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\n\t\t\t\tc3 = s.charCodeAt(i+2);\n\t\t\t\tif (l < i+2) { e3 = 64; } else { e3 = ((c2 & 0xf) << 2) | (c3 >> 6); }\n\t\t\t\tif (l < i+3) { e4 = 64; } else { e4 = c3 & 0x3f; }\n\t\t\t\tr+= ch.charAt(e1) + ch.charAt(e2) + ch.charAt(e3) + ch.charAt(e4);\n\t\t\t} while ((i+= 3) < l);\n\t\t\treturn r;\n\t\t}\n\n\t\t// output a PNG string\n\t\tthis.getDump = function() {\n\n\t\t\t// compute adler32 of output pixels + row filter bytes\n\t\t\tvar BASE = 65521; /* largest prime smaller than 65536 */\n\t\t\tvar NMAX = 5552; /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */\n\t\t\tvar s1 = 1;\n\t\t\tvar s2 = 0;\n\t\t\tvar n = NMAX;\n\n\t\t\tfor (var y = 0; y < this.height; y++) {\n\t\t\t\tfor (var x = -1; x < this.width; x++) {\n\t\t\t\t\ts1+= this.buffer[this.index(x, y)].charCodeAt(0);\n\t\t\t\t\ts2+= s1;\n\t\t\t\t\tif ((n-= 1) == 0) {\n\t\t\t\t\t\ts1%= BASE;\n\t\t\t\t\t\ts2%= BASE;\n\t\t\t\t\t\tn = NMAX;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ts1%= BASE;\n\t\t\ts2%= BASE;\n\t\t\twrite(this.buffer, this.idat_offs + this.idat_size - 8, byte4((s2 << 16) | s1));\n\n\t\t\t// compute crc32 of the PNG chunks\n\t\t\tfunction crc32(png, offs, size) {\n\t\t\t\tvar crc = -1;\n\t\t\t\tfor (var i = 4; i < size-4; i += 1) {\n\t\t\t\t\tcrc = _crc32[(crc ^ png[offs+i].charCodeAt(0)) & 0xff] ^ ((crc >> 8) & 0x00ffffff);\n\t\t\t\t}\n\t\t\t\twrite(png, offs+size-4, byte4(crc ^ -1));\n\t\t\t}\n\n\t\t\tcrc32(this.buffer, this.ihdr_offs, this.ihdr_size);\n\t\t\tcrc32(this.buffer, this.plte_offs, this.plte_size);\n\t\t\tcrc32(this.buffer, this.trns_offs, this.trns_size);\n\t\t\tcrc32(this.buffer, this.idat_offs, this.idat_size);\n\t\t\tcrc32(this.buffer, this.iend_offs, this.iend_size);\n\n\t\t\t// convert PNG to string\n\t\t\treturn \"\\x89PNG\\r\\n\\x1a\\n\"+this.buffer.join('');\n\t\t}\n\t}\n\n\t// modified from original source to support NPM\n\tif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n\t\tmodule.exports = PNGlib;\n\t} else {\n\t\twindow.PNGlib = PNGlib;\n\t}\n})();\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","\n/**\n * Expose `isUrl`.\n */\n\nmodule.exports = isUrl;\n\n/**\n * RegExps.\n * A URL must match #1 and then at least one of #2/#3.\n * Use two levels of REs to avoid REDOS.\n */\n\nvar protocolAndDomainRE = /^(?:\\w+:)?\\/\\/(\\S+)$/;\n\nvar localhostDomainRE = /^localhost[\\:?\\d]*(?:[^\\:?\\d]\\S*)?$/\nvar nonLocalhostDomainRE = /^[^\\s\\.]+\\.\\S{2,}$/;\n\n/**\n * Loosely validate a URL `string`.\n *\n * @param {String} string\n * @return {Boolean}\n */\n\nfunction isUrl(string){\n if (typeof string !== 'string') {\n return false;\n }\n\n var match = string.match(protocolAndDomainRE);\n if (!match) {\n return false;\n }\n\n var everythingAfterProtocol = match[1];\n if (!everythingAfterProtocol) {\n return false;\n }\n\n if (localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol)) {\n return true;\n }\n\n return false;\n}\n","\nvar navigator = {};\nnavigator.userAgent = false;\n\nvar window = {};\n/*\n * jsrsasign(all) 11.0.0 (2024-01-16) (c) 2010-2023 Kenji Urushima | kjur.github.io/jsrsasign/license\n */\nvar VERSION = \"11.0.0\";\nvar VERSION_FULL = \"jsrsasign(all) 11.0.0 (2024-01-16) (c) 2010-2023 Kenji Urushima | kjur.github.io/jsrsasign/license\";\n\n/*! CryptoJS v3.1.2 core-fix.js\n * code.google.com/p/crypto-js\n * (c) 2009-2013 by Jeff Mott. All rights reserved.\n * code.google.com/p/crypto-js/wiki/License\n * THIS IS FIX of 'core.js' to fix Hmac issue.\n * https://code.google.com/p/crypto-js/issues/detail?id=84\n * https://crypto-js.googlecode.com/svn-history/r667/branches/3.x/src/core.js\n */\nvar CryptoJS=CryptoJS||(function(e,g){var a={};var b=a.lib={};var j=b.Base=(function(){function n(){}return{extend:function(p){n.prototype=this;var o=new n();if(p){o.mixIn(p)}if(!o.hasOwnProperty(\"init\")){o.init=function(){o.$super.init.apply(this,arguments)}}o.init.prototype=o;o.$super=this;return o},create:function(){var o=this.extend();o.init.apply(o,arguments);return o},init:function(){},mixIn:function(p){for(var o in p){if(p.hasOwnProperty(o)){this[o]=p[o]}}if(p.hasOwnProperty(\"toString\")){this.toString=p.toString}},clone:function(){return this.init.prototype.extend(this)}}}());var l=b.WordArray=j.extend({init:function(o,n){o=this.words=o||[];if(n!=g){this.sigBytes=n}else{this.sigBytes=o.length*4}},toString:function(n){return(n||h).stringify(this)},concat:function(t){var q=this.words;var p=t.words;var n=this.sigBytes;var s=t.sigBytes;this.clamp();if(n%4){for(var r=0;r<s;r++){var o=(p[r>>>2]>>>(24-(r%4)*8))&255;q[(n+r)>>>2]|=o<<(24-((n+r)%4)*8)}}else{for(var r=0;r<s;r+=4){q[(n+r)>>>2]=p[r>>>2]}}this.sigBytes+=s;return this},clamp:function(){var o=this.words;var n=this.sigBytes;o[n>>>2]&=4294967295<<(32-(n%4)*8);o.length=e.ceil(n/4)},clone:function(){var n=j.clone.call(this);n.words=this.words.slice(0);return n},random:function(p){var o=[];for(var n=0;n<p;n+=4){o.push((e.random()*4294967296)|0)}return new l.init(o,p)}});var m=a.enc={};var h=m.Hex={stringify:function(p){var r=p.words;var o=p.sigBytes;var q=[];for(var n=0;n<o;n++){var s=(r[n>>>2]>>>(24-(n%4)*8))&255;q.push((s>>>4).toString(16));q.push((s&15).toString(16))}return q.join(\"\")},parse:function(p){var n=p.length;var q=[];for(var o=0;o<n;o+=2){q[o>>>3]|=parseInt(p.substr(o,2),16)<<(24-(o%8)*4)}return new l.init(q,n/2)}};var d=m.Latin1={stringify:function(q){var r=q.words;var p=q.sigBytes;var n=[];for(var o=0;o<p;o++){var s=(r[o>>>2]>>>(24-(o%4)*8))&255;n.push(String.fromCharCode(s))}return n.join(\"\")},parse:function(p){var n=p.length;var q=[];for(var o=0;o<n;o++){q[o>>>2]|=(p.charCodeAt(o)&255)<<(24-(o%4)*8)}return new l.init(q,n)}};var c=m.Utf8={stringify:function(n){try{return decodeURIComponent(escape(d.stringify(n)))}catch(o){throw new Error(\"Malformed UTF-8 data\")}},parse:function(n){return d.parse(unescape(encodeURIComponent(n)))}};var i=b.BufferedBlockAlgorithm=j.extend({reset:function(){this._data=new l.init();this._nDataBytes=0},_append:function(n){if(typeof n==\"string\"){n=c.parse(n)}this._data.concat(n);this._nDataBytes+=n.sigBytes},_process:function(w){var q=this._data;var x=q.words;var n=q.sigBytes;var t=this.blockSize;var v=t*4;var u=n/v;if(w){u=e.ceil(u)}else{u=e.max((u|0)-this._minBufferSize,0)}var s=u*t;var r=e.min(s*4,n);if(s){for(var p=0;p<s;p+=t){this._doProcessBlock(x,p)}var o=x.splice(0,s);q.sigBytes-=r}return new l.init(o,r)},clone:function(){var n=j.clone.call(this);n._data=this._data.clone();return n},_minBufferSize:0});var f=b.Hasher=i.extend({cfg:j.extend(),init:function(n){this.cfg=this.cfg.extend(n);this.reset()},reset:function(){i.reset.call(this);this._doReset()},update:function(n){this._append(n);this._process();return this},finalize:function(n){if(n){this._append(n)}var o=this._doFinalize();return o},blockSize:512/32,_createHelper:function(n){return function(p,o){return new n.init(o).finalize(p)}},_createHmacHelper:function(n){return function(p,o){return new k.HMAC.init(n,o).finalize(p)}}});var k=a.algo={};return a}(Math));\n/*\nCryptoJS v3.1.2 x64-core-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(g){var a=CryptoJS,f=a.lib,e=f.Base,h=f.WordArray,a=a.x64={};a.Word=e.extend({init:function(b,c){this.high=b;this.low=c}});a.WordArray=e.extend({init:function(b,c){b=this.words=b||[];this.sigBytes=c!=g?c:8*b.length},toX32:function(){for(var b=this.words,c=b.length,a=[],d=0;d<c;d++){var e=b[d];a.push(e.high);a.push(e.low)}return h.create(a,this.sigBytes)},clone:function(){for(var b=e.clone.call(this),c=b.words=this.words.slice(0),a=c.length,d=0;d<a;d++)c[d]=c[d].clone();return b}})})();\n\n/*\nCryptoJS v3.1.2 cipher-core.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\nCryptoJS.lib.Cipher||function(u){var g=CryptoJS,f=g.lib,k=f.Base,l=f.WordArray,q=f.BufferedBlockAlgorithm,r=g.enc.Base64,v=g.algo.EvpKDF,n=f.Cipher=q.extend({cfg:k.extend(),createEncryptor:function(a,b){return this.create(this._ENC_XFORM_MODE,a,b)},createDecryptor:function(a,b){return this.create(this._DEC_XFORM_MODE,a,b)},init:function(a,b,c){this.cfg=this.cfg.extend(c);this._xformMode=a;this._key=b;this.reset()},reset:function(){q.reset.call(this);this._doReset()},process:function(a){this._append(a);\nreturn this._process()},finalize:function(a){a&&this._append(a);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(a){return{encrypt:function(b,c,d){return(\"string\"==typeof c?s:j).encrypt(a,b,c,d)},decrypt:function(b,c,d){return(\"string\"==typeof c?s:j).decrypt(a,b,c,d)}}}});f.StreamCipher=n.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var m=g.mode={},t=function(a,b,c){var d=this._iv;d?this._iv=u:d=this._prevBlock;for(var e=\n0;e<c;e++)a[b+e]^=d[e]},h=(f.BlockCipherMode=k.extend({createEncryptor:function(a,b){return this.Encryptor.create(a,b)},createDecryptor:function(a,b){return this.Decryptor.create(a,b)},init:function(a,b){this._cipher=a;this._iv=b}})).extend();h.Encryptor=h.extend({processBlock:function(a,b){var c=this._cipher,d=c.blockSize;t.call(this,a,b,d);c.encryptBlock(a,b);this._prevBlock=a.slice(b,b+d)}});h.Decryptor=h.extend({processBlock:function(a,b){var c=this._cipher,d=c.blockSize,e=a.slice(b,b+d);c.decryptBlock(a,\nb);t.call(this,a,b,d);this._prevBlock=e}});m=m.CBC=h;h=(g.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,e=[],f=0;f<c;f+=4)e.push(d);c=l.create(e,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};f.BlockCipher=n.extend({cfg:n.cfg.extend({mode:m,padding:h}),reset:function(){n.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;\nthis._mode=c.call(a,this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var p=f.CipherParams=k.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),m=(g.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;\nreturn(a?l.create([1398893684,1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=l.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return p.create({ciphertext:a,salt:c})}},j=f.SerializableCipher=k.extend({cfg:k.extend({format:m}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var e=a.createEncryptor(c,d);b=e.finalize(b);e=e.cfg;return p.create({ciphertext:b,key:c,iv:e.iv,algorithm:a,mode:e.mode,padding:e.padding,\nblockSize:a.blockSize,formatter:d.format})},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return\"string\"==typeof a?b.parse(a,this):a}}),g=(g.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=l.random(8));a=v.create({keySize:b+c}).compute(a,d);c=l.create(a.words.slice(b),4*c);a.sigBytes=4*b;return p.create({key:a,iv:c,salt:d})}},s=f.PasswordBasedCipher=j.extend({cfg:j.cfg.extend({kdf:g}),encrypt:function(a,\nb,c,d){d=this.cfg.extend(d);c=d.kdf.execute(c,a.keySize,a.ivSize);d.iv=c.iv;a=j.encrypt.call(this,a,b,c.key,d);a.mixIn(c);return a},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);c=d.kdf.execute(c,a.keySize,a.ivSize,b.salt);d.iv=c.iv;return j.decrypt.call(this,a,b,c.key,d)}})}();\n\n/*\nCryptoJS v3.1.2 aes.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){for(var q=CryptoJS,x=q.lib.BlockCipher,r=q.algo,j=[],y=[],z=[],A=[],B=[],C=[],s=[],u=[],v=[],w=[],g=[],k=0;256>k;k++)g[k]=128>k?k<<1:k<<1^283;for(var n=0,l=0,k=0;256>k;k++){var f=l^l<<1^l<<2^l<<3^l<<4,f=f>>>8^f&255^99;j[n]=f;y[f]=n;var t=g[n],D=g[t],E=g[D],b=257*g[f]^16843008*f;z[n]=b<<24|b>>>8;A[n]=b<<16|b>>>16;B[n]=b<<8|b>>>24;C[n]=b;b=16843009*E^65537*D^257*t^16843008*n;s[f]=b<<24|b>>>8;u[f]=b<<16|b>>>16;v[f]=b<<8|b>>>24;w[f]=b;n?(n=t^g[g[g[E^t]]],l^=g[g[l]]):n=l=1}var F=[0,1,2,4,8,\n16,32,64,128,27,54],r=r.AES=x.extend({_doReset:function(){for(var c=this._key,e=c.words,a=c.sigBytes/4,c=4*((this._nRounds=a+6)+1),b=this._keySchedule=[],h=0;h<c;h++)if(h<a)b[h]=e[h];else{var d=b[h-1];h%a?6<a&&4==h%a&&(d=j[d>>>24]<<24|j[d>>>16&255]<<16|j[d>>>8&255]<<8|j[d&255]):(d=d<<8|d>>>24,d=j[d>>>24]<<24|j[d>>>16&255]<<16|j[d>>>8&255]<<8|j[d&255],d^=F[h/a|0]<<24);b[h]=b[h-a]^d}e=this._invKeySchedule=[];for(a=0;a<c;a++)h=c-a,d=a%4?b[h]:b[h-4],e[a]=4>a||4>=h?d:s[j[d>>>24]]^u[j[d>>>16&255]]^v[j[d>>>\n8&255]]^w[j[d&255]]},encryptBlock:function(c,e){this._doCryptBlock(c,e,this._keySchedule,z,A,B,C,j)},decryptBlock:function(c,e){var a=c[e+1];c[e+1]=c[e+3];c[e+3]=a;this._doCryptBlock(c,e,this._invKeySchedule,s,u,v,w,y);a=c[e+1];c[e+1]=c[e+3];c[e+3]=a},_doCryptBlock:function(c,e,a,b,h,d,j,m){for(var n=this._nRounds,f=c[e]^a[0],g=c[e+1]^a[1],k=c[e+2]^a[2],p=c[e+3]^a[3],l=4,t=1;t<n;t++)var q=b[f>>>24]^h[g>>>16&255]^d[k>>>8&255]^j[p&255]^a[l++],r=b[g>>>24]^h[k>>>16&255]^d[p>>>8&255]^j[f&255]^a[l++],s=\nb[k>>>24]^h[p>>>16&255]^d[f>>>8&255]^j[g&255]^a[l++],p=b[p>>>24]^h[f>>>16&255]^d[g>>>8&255]^j[k&255]^a[l++],f=q,g=r,k=s;q=(m[f>>>24]<<24|m[g>>>16&255]<<16|m[k>>>8&255]<<8|m[p&255])^a[l++];r=(m[g>>>24]<<24|m[k>>>16&255]<<16|m[p>>>8&255]<<8|m[f&255])^a[l++];s=(m[k>>>24]<<24|m[p>>>16&255]<<16|m[f>>>8&255]<<8|m[g&255])^a[l++];p=(m[p>>>24]<<24|m[f>>>16&255]<<16|m[g>>>8&255]<<8|m[k&255])^a[l++];c[e]=q;c[e+1]=r;c[e+2]=s;c[e+3]=p},keySize:8});q.AES=x._createHelper(r)})();\n\n/*\nCryptoJS v3.1.2 tripledes-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){function j(b,c){var a=(this._lBlock>>>b^this._rBlock)&c;this._rBlock^=a;this._lBlock^=a<<b}function l(b,c){var a=(this._rBlock>>>b^this._lBlock)&c;this._lBlock^=a;this._rBlock^=a<<b}var h=CryptoJS,e=h.lib,n=e.WordArray,e=e.BlockCipher,g=h.algo,q=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],p=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,\n55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],r=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],s=[{\"0\":8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,\n2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,\n1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{\"0\":1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,\n75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,\n276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{\"0\":260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,\n14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,\n17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{\"0\":2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,\n98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,\n1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{\"0\":128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,\n10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,\n83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{\"0\":268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,\n2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{\"0\":1048576,\n16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,\n496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{\"0\":134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,\n2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,\n2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],t=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],m=g.DES=e.extend({_doReset:function(){for(var b=this._key.words,c=[],a=0;56>a;a++){var f=q[a]-1;c[a]=b[f>>>5]>>>31-f%32&1}b=this._subKeys=[];for(f=0;16>f;f++){for(var d=b[f]=[],e=r[f],a=0;24>a;a++)d[a/6|0]|=c[(p[a]-1+e)%28]<<31-a%6,d[4+(a/6|0)]|=c[28+(p[a+24]-1+e)%28]<<31-a%6;d[0]=d[0]<<1|d[0]>>>31;for(a=1;7>a;a++)d[a]>>>=\n4*(a-1)+3;d[7]=d[7]<<5|d[7]>>>27}c=this._invSubKeys=[];for(a=0;16>a;a++)c[a]=b[15-a]},encryptBlock:function(b,c){this._doCryptBlock(b,c,this._subKeys)},decryptBlock:function(b,c){this._doCryptBlock(b,c,this._invSubKeys)},_doCryptBlock:function(b,c,a){this._lBlock=b[c];this._rBlock=b[c+1];j.call(this,4,252645135);j.call(this,16,65535);l.call(this,2,858993459);l.call(this,8,16711935);j.call(this,1,1431655765);for(var f=0;16>f;f++){for(var d=a[f],e=this._lBlock,h=this._rBlock,g=0,k=0;8>k;k++)g|=s[k][((h^\nd[k])&t[k])>>>0];this._lBlock=h;this._rBlock=e^g}a=this._lBlock;this._lBlock=this._rBlock;this._rBlock=a;j.call(this,1,1431655765);l.call(this,8,16711935);l.call(this,2,858993459);j.call(this,16,65535);j.call(this,4,252645135);b[c]=this._lBlock;b[c+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});h.DES=e._createHelper(m);g=g.TripleDES=e.extend({_doReset:function(){var b=this._key.words;this._des1=m.createEncryptor(n.create(b.slice(0,2)));this._des2=m.createEncryptor(n.create(b.slice(2,4)));this._des3=\nm.createEncryptor(n.create(b.slice(4,6)))},encryptBlock:function(b,c){this._des1.encryptBlock(b,c);this._des2.decryptBlock(b,c);this._des3.encryptBlock(b,c)},decryptBlock:function(b,c){this._des3.decryptBlock(b,c);this._des2.encryptBlock(b,c);this._des1.decryptBlock(b,c)},keySize:6,ivSize:2,blockSize:2});h.TripleDES=e._createHelper(g)})();\n\n/*\nCryptoJS v3.1.2 enc-base64.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){var h=CryptoJS,j=h.lib.WordArray;h.enc.Base64={stringify:function(b){var e=b.words,f=b.sigBytes,c=this._map;b.clamp();b=[];for(var a=0;a<f;a+=3)for(var d=(e[a>>>2]>>>24-8*(a%4)&255)<<16|(e[a+1>>>2]>>>24-8*((a+1)%4)&255)<<8|e[a+2>>>2]>>>24-8*((a+2)%4)&255,g=0;4>g&&a+0.75*g<f;g++)b.push(c.charAt(d>>>6*(3-g)&63));if(e=c.charAt(64))for(;b.length%4;)b.push(e);return b.join(\"\")},parse:function(b){var e=b.length,f=this._map,c=f.charAt(64);c&&(c=b.indexOf(c),-1!=c&&(e=c));for(var c=[],a=0,d=0;d<\ne;d++)if(d%4){var g=f.indexOf(b.charAt(d-1))<<2*(d%4),h=f.indexOf(b.charAt(d))>>>6-2*(d%4);c[a>>>2]|=(g|h)<<24-8*(a%4);a++}return j.create(c,a)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}})();\n\n/*\nCryptoJS v3.1.2 md5.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(E){function h(a,f,g,j,p,h,k){a=a+(f&g|~f&j)+p+k;return(a<<h|a>>>32-h)+f}function k(a,f,g,j,p,h,k){a=a+(f&j|g&~j)+p+k;return(a<<h|a>>>32-h)+f}function l(a,f,g,j,h,k,l){a=a+(f^g^j)+h+l;return(a<<k|a>>>32-k)+f}function n(a,f,g,j,h,k,l){a=a+(g^(f|~j))+h+l;return(a<<k|a>>>32-k)+f}for(var r=CryptoJS,q=r.lib,F=q.WordArray,s=q.Hasher,q=r.algo,a=[],t=0;64>t;t++)a[t]=4294967296*E.abs(E.sin(t+1))|0;q=q.MD5=s.extend({_doReset:function(){this._hash=new F.init([1732584193,4023233417,2562383102,271733878])},\n_doProcessBlock:function(m,f){for(var g=0;16>g;g++){var j=f+g,p=m[j];m[j]=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360}var g=this._hash.words,j=m[f+0],p=m[f+1],q=m[f+2],r=m[f+3],s=m[f+4],t=m[f+5],u=m[f+6],v=m[f+7],w=m[f+8],x=m[f+9],y=m[f+10],z=m[f+11],A=m[f+12],B=m[f+13],C=m[f+14],D=m[f+15],b=g[0],c=g[1],d=g[2],e=g[3],b=h(b,c,d,e,j,7,a[0]),e=h(e,b,c,d,p,12,a[1]),d=h(d,e,b,c,q,17,a[2]),c=h(c,d,e,b,r,22,a[3]),b=h(b,c,d,e,s,7,a[4]),e=h(e,b,c,d,t,12,a[5]),d=h(d,e,b,c,u,17,a[6]),c=h(c,d,e,b,v,22,a[7]),\nb=h(b,c,d,e,w,7,a[8]),e=h(e,b,c,d,x,12,a[9]),d=h(d,e,b,c,y,17,a[10]),c=h(c,d,e,b,z,22,a[11]),b=h(b,c,d,e,A,7,a[12]),e=h(e,b,c,d,B,12,a[13]),d=h(d,e,b,c,C,17,a[14]),c=h(c,d,e,b,D,22,a[15]),b=k(b,c,d,e,p,5,a[16]),e=k(e,b,c,d,u,9,a[17]),d=k(d,e,b,c,z,14,a[18]),c=k(c,d,e,b,j,20,a[19]),b=k(b,c,d,e,t,5,a[20]),e=k(e,b,c,d,y,9,a[21]),d=k(d,e,b,c,D,14,a[22]),c=k(c,d,e,b,s,20,a[23]),b=k(b,c,d,e,x,5,a[24]),e=k(e,b,c,d,C,9,a[25]),d=k(d,e,b,c,r,14,a[26]),c=k(c,d,e,b,w,20,a[27]),b=k(b,c,d,e,B,5,a[28]),e=k(e,b,\nc,d,q,9,a[29]),d=k(d,e,b,c,v,14,a[30]),c=k(c,d,e,b,A,20,a[31]),b=l(b,c,d,e,t,4,a[32]),e=l(e,b,c,d,w,11,a[33]),d=l(d,e,b,c,z,16,a[34]),c=l(c,d,e,b,C,23,a[35]),b=l(b,c,d,e,p,4,a[36]),e=l(e,b,c,d,s,11,a[37]),d=l(d,e,b,c,v,16,a[38]),c=l(c,d,e,b,y,23,a[39]),b=l(b,c,d,e,B,4,a[40]),e=l(e,b,c,d,j,11,a[41]),d=l(d,e,b,c,r,16,a[42]),c=l(c,d,e,b,u,23,a[43]),b=l(b,c,d,e,x,4,a[44]),e=l(e,b,c,d,A,11,a[45]),d=l(d,e,b,c,D,16,a[46]),c=l(c,d,e,b,q,23,a[47]),b=n(b,c,d,e,j,6,a[48]),e=n(e,b,c,d,v,10,a[49]),d=n(d,e,b,c,\nC,15,a[50]),c=n(c,d,e,b,t,21,a[51]),b=n(b,c,d,e,A,6,a[52]),e=n(e,b,c,d,r,10,a[53]),d=n(d,e,b,c,y,15,a[54]),c=n(c,d,e,b,p,21,a[55]),b=n(b,c,d,e,w,6,a[56]),e=n(e,b,c,d,D,10,a[57]),d=n(d,e,b,c,u,15,a[58]),c=n(c,d,e,b,B,21,a[59]),b=n(b,c,d,e,s,6,a[60]),e=n(e,b,c,d,z,10,a[61]),d=n(d,e,b,c,q,15,a[62]),c=n(c,d,e,b,x,21,a[63]);g[0]=g[0]+b|0;g[1]=g[1]+c|0;g[2]=g[2]+d|0;g[3]=g[3]+e|0},_doFinalize:function(){var a=this._data,f=a.words,g=8*this._nDataBytes,j=8*a.sigBytes;f[j>>>5]|=128<<24-j%32;var h=E.floor(g/\n4294967296);f[(j+64>>>9<<4)+15]=(h<<8|h>>>24)&16711935|(h<<24|h>>>8)&4278255360;f[(j+64>>>9<<4)+14]=(g<<8|g>>>24)&16711935|(g<<24|g>>>8)&4278255360;a.sigBytes=4*(f.length+1);this._process();a=this._hash;f=a.words;for(g=0;4>g;g++)j=f[g],f[g]=(j<<8|j>>>24)&16711935|(j<<24|j>>>8)&4278255360;return a},clone:function(){var a=s.clone.call(this);a._hash=this._hash.clone();return a}});r.MD5=s._createHelper(q);r.HmacMD5=s._createHmacHelper(q)})(Math);\n\n/*\nCryptoJS v3.1.2 sha1-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){var k=CryptoJS,b=k.lib,m=b.WordArray,l=b.Hasher,d=[],b=k.algo.SHA1=l.extend({_doReset:function(){this._hash=new m.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(n,p){for(var a=this._hash.words,e=a[0],f=a[1],h=a[2],j=a[3],b=a[4],c=0;80>c;c++){if(16>c)d[c]=n[p+c]|0;else{var g=d[c-3]^d[c-8]^d[c-14]^d[c-16];d[c]=g<<1|g>>>31}g=(e<<5|e>>>27)+b+d[c];g=20>c?g+((f&h|~f&j)+1518500249):40>c?g+((f^h^j)+1859775393):60>c?g+((f&h|f&j|h&j)-1894007588):g+((f^h^\nj)-899497514);b=j;j=h;h=f<<30|f>>>2;f=e;e=g}a[0]=a[0]+e|0;a[1]=a[1]+f|0;a[2]=a[2]+h|0;a[3]=a[3]+j|0;a[4]=a[4]+b|0},_doFinalize:function(){var b=this._data,d=b.words,a=8*this._nDataBytes,e=8*b.sigBytes;d[e>>>5]|=128<<24-e%32;d[(e+64>>>9<<4)+14]=Math.floor(a/4294967296);d[(e+64>>>9<<4)+15]=a;b.sigBytes=4*d.length;this._process();return this._hash},clone:function(){var b=l.clone.call(this);b._hash=this._hash.clone();return b}});k.SHA1=l._createHelper(b);k.HmacSHA1=l._createHmacHelper(b)})();\n\n/*\nCryptoJS v3.1.2 sha256-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(k){for(var g=CryptoJS,h=g.lib,v=h.WordArray,j=h.Hasher,h=g.algo,s=[],t=[],u=function(q){return 4294967296*(q-(q|0))|0},l=2,b=0;64>b;){var d;a:{d=l;for(var w=k.sqrt(d),r=2;r<=w;r++)if(!(d%r)){d=!1;break a}d=!0}d&&(8>b&&(s[b]=u(k.pow(l,0.5))),t[b]=u(k.pow(l,1/3)),b++);l++}var n=[],h=h.SHA256=j.extend({_doReset:function(){this._hash=new v.init(s.slice(0))},_doProcessBlock:function(q,h){for(var a=this._hash.words,c=a[0],d=a[1],b=a[2],k=a[3],f=a[4],g=a[5],j=a[6],l=a[7],e=0;64>e;e++){if(16>e)n[e]=\nq[h+e]|0;else{var m=n[e-15],p=n[e-2];n[e]=((m<<25|m>>>7)^(m<<14|m>>>18)^m>>>3)+n[e-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+n[e-16]}m=l+((f<<26|f>>>6)^(f<<21|f>>>11)^(f<<7|f>>>25))+(f&g^~f&j)+t[e]+n[e];p=((c<<30|c>>>2)^(c<<19|c>>>13)^(c<<10|c>>>22))+(c&d^c&b^d&b);l=j;j=g;g=f;f=k+m|0;k=b;b=d;d=c;c=m+p|0}a[0]=a[0]+c|0;a[1]=a[1]+d|0;a[2]=a[2]+b|0;a[3]=a[3]+k|0;a[4]=a[4]+f|0;a[5]=a[5]+g|0;a[6]=a[6]+j|0;a[7]=a[7]+l|0},_doFinalize:function(){var d=this._data,b=d.words,a=8*this._nDataBytes,c=8*d.sigBytes;\nb[c>>>5]|=128<<24-c%32;b[(c+64>>>9<<4)+14]=k.floor(a/4294967296);b[(c+64>>>9<<4)+15]=a;d.sigBytes=4*b.length;this._process();return this._hash},clone:function(){var b=j.clone.call(this);b._hash=this._hash.clone();return b}});g.SHA256=j._createHelper(h);g.HmacSHA256=j._createHmacHelper(h)})(Math);\n\n/*\nCryptoJS v3.1.2 sha224-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){var b=CryptoJS,d=b.lib.WordArray,a=b.algo,c=a.SHA256,a=a.SHA224=c.extend({_doReset:function(){this._hash=new d.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var a=c._doFinalize.call(this);a.sigBytes-=4;return a}});b.SHA224=c._createHelper(a);b.HmacSHA224=c._createHmacHelper(a)})();\n\n/*\nCryptoJS v3.1.2 sha512-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){function a(){return d.create.apply(d,arguments)}for(var n=CryptoJS,r=n.lib.Hasher,e=n.x64,d=e.Word,T=e.WordArray,e=n.algo,ea=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),\na(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,\n2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),\na(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,\n3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],v=[],w=0;80>w;w++)v[w]=a();e=e.SHA512=r.extend({_doReset:function(){this._hash=new T.init([new d.init(1779033703,4089235720),new d.init(3144134277,2227873595),new d.init(1013904242,4271175723),new d.init(2773480762,1595750129),new d.init(1359893119,2917565137),new d.init(2600822924,725511199),new d.init(528734635,4215389547),new d.init(1541459225,327033209)])},_doProcessBlock:function(a,d){for(var f=this._hash.words,\nF=f[0],e=f[1],n=f[2],r=f[3],G=f[4],H=f[5],I=f[6],f=f[7],w=F.high,J=F.low,X=e.high,K=e.low,Y=n.high,L=n.low,Z=r.high,M=r.low,$=G.high,N=G.low,aa=H.high,O=H.low,ba=I.high,P=I.low,ca=f.high,Q=f.low,k=w,g=J,z=X,x=K,A=Y,y=L,U=Z,B=M,l=$,h=N,R=aa,C=O,S=ba,D=P,V=ca,E=Q,m=0;80>m;m++){var s=v[m];if(16>m)var j=s.high=a[d+2*m]|0,b=s.low=a[d+2*m+1]|0;else{var j=v[m-15],b=j.high,p=j.low,j=(b>>>1|p<<31)^(b>>>8|p<<24)^b>>>7,p=(p>>>1|b<<31)^(p>>>8|b<<24)^(p>>>7|b<<25),u=v[m-2],b=u.high,c=u.low,u=(b>>>19|c<<13)^(b<<\n3|c>>>29)^b>>>6,c=(c>>>19|b<<13)^(c<<3|b>>>29)^(c>>>6|b<<26),b=v[m-7],W=b.high,t=v[m-16],q=t.high,t=t.low,b=p+b.low,j=j+W+(b>>>0<p>>>0?1:0),b=b+c,j=j+u+(b>>>0<c>>>0?1:0),b=b+t,j=j+q+(b>>>0<t>>>0?1:0);s.high=j;s.low=b}var W=l&R^~l&S,t=h&C^~h&D,s=k&z^k&A^z&A,T=g&x^g&y^x&y,p=(k>>>28|g<<4)^(k<<30|g>>>2)^(k<<25|g>>>7),u=(g>>>28|k<<4)^(g<<30|k>>>2)^(g<<25|k>>>7),c=ea[m],fa=c.high,da=c.low,c=E+((h>>>14|l<<18)^(h>>>18|l<<14)^(h<<23|l>>>9)),q=V+((l>>>14|h<<18)^(l>>>18|h<<14)^(l<<23|h>>>9))+(c>>>0<E>>>0?1:\n0),c=c+t,q=q+W+(c>>>0<t>>>0?1:0),c=c+da,q=q+fa+(c>>>0<da>>>0?1:0),c=c+b,q=q+j+(c>>>0<b>>>0?1:0),b=u+T,s=p+s+(b>>>0<u>>>0?1:0),V=S,E=D,S=R,D=C,R=l,C=h,h=B+c|0,l=U+q+(h>>>0<B>>>0?1:0)|0,U=A,B=y,A=z,y=x,z=k,x=g,g=c+b|0,k=q+s+(g>>>0<c>>>0?1:0)|0}J=F.low=J+g;F.high=w+k+(J>>>0<g>>>0?1:0);K=e.low=K+x;e.high=X+z+(K>>>0<x>>>0?1:0);L=n.low=L+y;n.high=Y+A+(L>>>0<y>>>0?1:0);M=r.low=M+B;r.high=Z+U+(M>>>0<B>>>0?1:0);N=G.low=N+h;G.high=$+l+(N>>>0<h>>>0?1:0);O=H.low=O+C;H.high=aa+R+(O>>>0<C>>>0?1:0);P=I.low=P+D;\nI.high=ba+S+(P>>>0<D>>>0?1:0);Q=f.low=Q+E;f.high=ca+V+(Q>>>0<E>>>0?1:0)},_doFinalize:function(){var a=this._data,d=a.words,f=8*this._nDataBytes,e=8*a.sigBytes;d[e>>>5]|=128<<24-e%32;d[(e+128>>>10<<5)+30]=Math.floor(f/4294967296);d[(e+128>>>10<<5)+31]=f;a.sigBytes=4*d.length;this._process();return this._hash.toX32()},clone:function(){var a=r.clone.call(this);a._hash=this._hash.clone();return a},blockSize:32});n.SHA512=r._createHelper(e);n.HmacSHA512=r._createHmacHelper(e)})();\n\n/*\nCryptoJS v3.1.2 sha384-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){var c=CryptoJS,a=c.x64,b=a.Word,e=a.WordArray,a=c.algo,d=a.SHA512,a=a.SHA384=d.extend({_doReset:function(){this._hash=new e.init([new b.init(3418070365,3238371032),new b.init(1654270250,914150663),new b.init(2438529370,812702999),new b.init(355462360,4144912697),new b.init(1731405415,4290775857),new b.init(2394180231,1750603025),new b.init(3675008525,1694076839),new b.init(1203062813,3204075428)])},_doFinalize:function(){var a=d._doFinalize.call(this);a.sigBytes-=16;return a}});c.SHA384=\nd._createHelper(a);c.HmacSHA384=d._createHmacHelper(a)})();\n\n/*\nCryptoJS v3.1.2 ripemd160-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n/*\n\n(c) 2012 by Cedric Mesnil. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n(function(){var q=CryptoJS,d=q.lib,n=d.WordArray,p=d.Hasher,d=q.algo,x=n.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),y=n.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),z=n.create([11,14,15,12,\n5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),A=n.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),B=n.create([0,1518500249,1859775393,2400959708,2840853838]),C=n.create([1352829926,1548603684,1836072691,\n2053994217,0]),d=d.RIPEMD160=p.extend({_doReset:function(){this._hash=n.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,v){for(var b=0;16>b;b++){var c=v+b,f=e[c];e[c]=(f<<8|f>>>24)&16711935|(f<<24|f>>>8)&4278255360}var c=this._hash.words,f=B.words,d=C.words,n=x.words,q=y.words,p=z.words,w=A.words,t,g,h,j,r,u,k,l,m,s;u=t=c[0];k=g=c[1];l=h=c[2];m=j=c[3];s=r=c[4];for(var a,b=0;80>b;b+=1)a=t+e[v+n[b]]|0,a=16>b?a+((g^h^j)+f[0]):32>b?a+((g&h|~g&j)+f[1]):48>b?\na+(((g|~h)^j)+f[2]):64>b?a+((g&j|h&~j)+f[3]):a+((g^(h|~j))+f[4]),a|=0,a=a<<p[b]|a>>>32-p[b],a=a+r|0,t=r,r=j,j=h<<10|h>>>22,h=g,g=a,a=u+e[v+q[b]]|0,a=16>b?a+((k^(l|~m))+d[0]):32>b?a+((k&m|l&~m)+d[1]):48>b?a+(((k|~l)^m)+d[2]):64>b?a+((k&l|~k&m)+d[3]):a+((k^l^m)+d[4]),a|=0,a=a<<w[b]|a>>>32-w[b],a=a+s|0,u=s,s=m,m=l<<10|l>>>22,l=k,k=a;a=c[1]+h+m|0;c[1]=c[2]+j+s|0;c[2]=c[3]+r+u|0;c[3]=c[4]+t+k|0;c[4]=c[0]+g+l|0;c[0]=a},_doFinalize:function(){var e=this._data,d=e.words,b=8*this._nDataBytes,c=8*e.sigBytes;\nd[c>>>5]|=128<<24-c%32;d[(c+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;e.sigBytes=4*(d.length+1);this._process();e=this._hash;d=e.words;for(b=0;5>b;b++)c=d[b],d[b]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return e},clone:function(){var d=p.clone.call(this);d._hash=this._hash.clone();return d}});q.RIPEMD160=p._createHelper(d);q.HmacRIPEMD160=p._createHmacHelper(d)})(Math);\n\n/*\nCryptoJS v3.1.2 hmac.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){var c=CryptoJS,k=c.enc.Utf8;c.algo.HMAC=c.lib.Base.extend({init:function(a,b){a=this._hasher=new a.init;\"string\"==typeof b&&(b=k.parse(b));var c=a.blockSize,e=4*c;b.sigBytes>e&&(b=a.finalize(b));b.clamp();for(var f=this._oKey=b.clone(),g=this._iKey=b.clone(),h=f.words,j=g.words,d=0;d<c;d++)h[d]^=1549556828,j[d]^=909522486;f.sigBytes=g.sigBytes=e;this.reset()},reset:function(){var a=this._hasher;a.reset();a.update(this._iKey)},update:function(a){this._hasher.update(a);return this},finalize:function(a){var b=\nthis._hasher;a=b.finalize(a);b.reset();return b.finalize(this._oKey.clone().concat(a))}})})();\n\n/*\nCryptoJS v3.1.2 pbkdf2-min.js\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function(){var b=CryptoJS,a=b.lib,d=a.Base,m=a.WordArray,a=b.algo,q=a.HMAC,l=a.PBKDF2=d.extend({cfg:d.extend({keySize:4,hasher:a.SHA1,iterations:1}),init:function(a){this.cfg=this.cfg.extend(a)},compute:function(a,b){for(var c=this.cfg,f=q.create(c.hasher,a),g=m.create(),d=m.create([1]),l=g.words,r=d.words,n=c.keySize,c=c.iterations;l.length<n;){var h=f.update(b).finalize(d);f.reset();for(var j=h.words,s=j.length,k=h,p=1;p<c;p++){k=f.finalize(k);f.reset();for(var t=k.words,e=0;e<s;e++)j[e]^=t[e]}g.concat(h);\nr[0]++}g.sigBytes=4*n;return g}});b.PBKDF2=function(a,b,c){return l.create(c).compute(a,b)}})();\n\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nvar b64map=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";var b64pad=\"=\";function hex2b64(d){var b;var e;var a=\"\";for(b=0;b+3<=d.length;b+=3){e=parseInt(d.substring(b,b+3),16);a+=b64map.charAt(e>>6)+b64map.charAt(e&63)}if(b+1==d.length){e=parseInt(d.substring(b,b+1),16);a+=b64map.charAt(e<<2)}else{if(b+2==d.length){e=parseInt(d.substring(b,b+2),16);a+=b64map.charAt(e>>2)+b64map.charAt((e&3)<<4)}}if(b64pad){while((a.length&3)>0){a+=b64pad}}return a}function b64tohex(f){var d=\"\";var e;var b=0;var c;var a;for(e=0;e<f.length;++e){if(f.charAt(e)==b64pad){break}a=b64map.indexOf(f.charAt(e));if(a<0){continue}if(b==0){d+=int2char(a>>2);c=a&3;b=1}else{if(b==1){d+=int2char((c<<2)|(a>>4));c=a&15;b=2}else{if(b==2){d+=int2char(c);d+=int2char(a>>2);c=a&3;b=3}else{d+=int2char((c<<2)|(a>>4));d+=int2char(a&15);b=0}}}}if(b==1){d+=int2char(c<<2)}return d}function b64toBA(e){var d=b64tohex(e);var c;var b=new Array();for(c=0;2*c<d.length;++c){b[c]=parseInt(d.substring(2*c,2*c+2),16)}return b};\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nvar dbits;var canary=244837814094590;var j_lm=((canary&16777215)==15715070);function BigInteger(e,d,f){if(e!=null){if(\"number\"==typeof e){this.fromNumber(e,d,f)}else{if(d==null&&\"string\"!=typeof e){this.fromString(e,256)}else{this.fromString(e,d)}}}}function nbi(){return new BigInteger(null)}function am1(f,a,b,e,h,g){while(--g>=0){var d=a*this[f++]+b[e]+h;h=Math.floor(d/67108864);b[e++]=d&67108863}return h}function am2(f,q,r,e,o,a){var k=q&32767,p=q>>15;while(--a>=0){var d=this[f]&32767;var g=this[f++]>>15;var b=p*d+g*k;d=k*d+((b&32767)<<15)+r[e]+(o&1073741823);o=(d>>>30)+(b>>>15)+p*g+(o>>>30);r[e++]=d&1073741823}return o}function am3(f,q,r,e,o,a){var k=q&16383,p=q>>14;while(--a>=0){var d=this[f]&16383;var g=this[f++]>>14;var b=p*d+g*k;d=k*d+((b&16383)<<14)+r[e]+o;o=(d>>28)+(b>>14)+p*g;r[e++]=d&268435455}return o}if(j_lm&&(navigator.appName==\"Microsoft Internet Explorer\")){BigInteger.prototype.am=am2;dbits=30}else{if(j_lm&&(navigator.appName!=\"Netscape\")){BigInteger.prototype.am=am1;dbits=26}else{BigInteger.prototype.am=am3;dbits=28}}BigInteger.prototype.DB=dbits;BigInteger.prototype.DM=((1<<dbits)-1);BigInteger.prototype.DV=(1<<dbits);var BI_FP=52;BigInteger.prototype.FV=Math.pow(2,BI_FP);BigInteger.prototype.F1=BI_FP-dbits;BigInteger.prototype.F2=2*dbits-BI_FP;var BI_RM=\"0123456789abcdefghijklmnopqrstuvwxyz\";var BI_RC=new Array();var rr,vv;rr=\"0\".charCodeAt(0);for(vv=0;vv<=9;++vv){BI_RC[rr++]=vv}rr=\"a\".charCodeAt(0);for(vv=10;vv<36;++vv){BI_RC[rr++]=vv}rr=\"A\".charCodeAt(0);for(vv=10;vv<36;++vv){BI_RC[rr++]=vv}function int2char(a){return BI_RM.charAt(a)}function intAt(b,a){var d=BI_RC[b.charCodeAt(a)];return(d==null)?-1:d}function bnpCopyTo(b){for(var a=this.t-1;a>=0;--a){b[a]=this[a]}b.t=this.t;b.s=this.s}function bnpFromInt(a){this.t=1;this.s=(a<0)?-1:0;if(a>0){this[0]=a}else{if(a<-1){this[0]=a+this.DV}else{this.t=0}}}function nbv(a){var b=nbi();b.fromInt(a);return b}function bnpFromString(h,c){var e;if(c==16){e=4}else{if(c==8){e=3}else{if(c==256){e=8}else{if(c==2){e=1}else{if(c==32){e=5}else{if(c==4){e=2}else{this.fromRadix(h,c);return}}}}}}this.t=0;this.s=0;var g=h.length,d=false,f=0;while(--g>=0){var a=(e==8)?h[g]&255:intAt(h,g);if(a<0){if(h.charAt(g)==\"-\"){d=true}continue}d=false;if(f==0){this[this.t++]=a}else{if(f+e>this.DB){this[this.t-1]|=(a&((1<<(this.DB-f))-1))<<f;this[this.t++]=(a>>(this.DB-f))}else{this[this.t-1]|=a<<f}}f+=e;if(f>=this.DB){f-=this.DB}}if(e==8&&(h[0]&128)!=0){this.s=-1;if(f>0){this[this.t-1]|=((1<<(this.DB-f))-1)<<f}}this.clamp();if(d){BigInteger.ZERO.subTo(this,this)}}function bnpClamp(){var a=this.s&this.DM;while(this.t>0&&this[this.t-1]==a){--this.t}}function bnToString(c){if(this.s<0){return\"-\"+this.negate().toString(c)}var e;if(c==16){e=4}else{if(c==8){e=3}else{if(c==2){e=1}else{if(c==32){e=5}else{if(c==4){e=2}else{return this.toRadix(c)}}}}}var g=(1<<e)-1,l,a=false,h=\"\",f=this.t;var j=this.DB-(f*this.DB)%e;if(f-->0){if(j<this.DB&&(l=this[f]>>j)>0){a=true;h=int2char(l)}while(f>=0){if(j<e){l=(this[f]&((1<<j)-1))<<(e-j);l|=this[--f]>>(j+=this.DB-e)}else{l=(this[f]>>(j-=e))&g;if(j<=0){j+=this.DB;--f}}if(l>0){a=true}if(a){h+=int2char(l)}}}return a?h:\"0\"}function bnNegate(){var a=nbi();BigInteger.ZERO.subTo(this,a);return a}function bnAbs(){return(this.s<0)?this.negate():this}function bnCompareTo(b){var d=this.s-b.s;if(d!=0){return d}var c=this.t;d=c-b.t;if(d!=0){return(this.s<0)?-d:d}while(--c>=0){if((d=this[c]-b[c])!=0){return d}}return 0}function nbits(a){var c=1,b;if((b=a>>>16)!=0){a=b;c+=16}if((b=a>>8)!=0){a=b;c+=8}if((b=a>>4)!=0){a=b;c+=4}if((b=a>>2)!=0){a=b;c+=2}if((b=a>>1)!=0){a=b;c+=1}return c}function bnBitLength(){if(this.t<=0){return 0}return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM))}function bnpDLShiftTo(c,b){var a;for(a=this.t-1;a>=0;--a){b[a+c]=this[a]}for(a=c-1;a>=0;--a){b[a]=0}b.t=this.t+c;b.s=this.s}function bnpDRShiftTo(c,b){for(var a=c;a<this.t;++a){b[a-c]=this[a]}b.t=Math.max(this.t-c,0);b.s=this.s}function bnpLShiftTo(j,e){var b=j%this.DB;var a=this.DB-b;var g=(1<<a)-1;var f=Math.floor(j/this.DB),h=(this.s<<b)&this.DM,d;for(d=this.t-1;d>=0;--d){e[d+f+1]=(this[d]>>a)|h;h=(this[d]&g)<<b}for(d=f-1;d>=0;--d){e[d]=0}e[f]=h;e.t=this.t+f+1;e.s=this.s;e.clamp()}function bnpRShiftTo(g,d){d.s=this.s;var e=Math.floor(g/this.DB);if(e>=this.t){d.t=0;return}var b=g%this.DB;var a=this.DB-b;var f=(1<<b)-1;d[0]=this[e]>>b;for(var c=e+1;c<this.t;++c){d[c-e-1]|=(this[c]&f)<<a;d[c-e]=this[c]>>b}if(b>0){d[this.t-e-1]|=(this.s&f)<<a}d.t=this.t-e;d.clamp()}function bnpSubTo(d,f){var e=0,g=0,b=Math.min(d.t,this.t);while(e<b){g+=this[e]-d[e];f[e++]=g&this.DM;g>>=this.DB}if(d.t<this.t){g-=d.s;while(e<this.t){g+=this[e];f[e++]=g&this.DM;g>>=this.DB}g+=this.s}else{g+=this.s;while(e<d.t){g-=d[e];f[e++]=g&this.DM;g>>=this.DB}g-=d.s}f.s=(g<0)?-1:0;if(g<-1){f[e++]=this.DV+g}else{if(g>0){f[e++]=g}}f.t=e;f.clamp()}function bnpMultiplyTo(c,e){var b=this.abs(),f=c.abs();var d=b.t;e.t=d+f.t;while(--d>=0){e[d]=0}for(d=0;d<f.t;++d){e[d+b.t]=b.am(0,f[d],e,d,0,b.t)}e.s=0;e.clamp();if(this.s!=c.s){BigInteger.ZERO.subTo(e,e)}}function bnpSquareTo(d){var a=this.abs();var b=d.t=2*a.t;while(--b>=0){d[b]=0}for(b=0;b<a.t-1;++b){var e=a.am(b,a[b],d,2*b,0,1);if((d[b+a.t]+=a.am(b+1,2*a[b],d,2*b+1,e,a.t-b-1))>=a.DV){d[b+a.t]-=a.DV;d[b+a.t+1]=1}}if(d.t>0){d[d.t-1]+=a.am(b,a[b],d,2*b,0,1)}d.s=0;d.clamp()}function bnpDivRemTo(n,h,g){var w=n.abs();if(w.t<=0){return}var k=this.abs();if(k.t<w.t){if(h!=null){h.fromInt(0)}if(g!=null){this.copyTo(g)}return}if(g==null){g=nbi()}var d=nbi(),a=this.s,l=n.s;var v=this.DB-nbits(w[w.t-1]);if(v>0){w.lShiftTo(v,d);k.lShiftTo(v,g)}else{w.copyTo(d);k.copyTo(g)}var p=d.t;var b=d[p-1];if(b==0){return}var o=b*(1<<this.F1)+((p>1)?d[p-2]>>this.F2:0);var A=this.FV/o,z=(1<<this.F1)/o,x=1<<this.F2;var u=g.t,s=u-p,f=(h==null)?nbi():h;d.dlShiftTo(s,f);if(g.compareTo(f)>=0){g[g.t++]=1;g.subTo(f,g)}BigInteger.ONE.dlShiftTo(p,f);f.subTo(d,d);while(d.t<p){d[d.t++]=0}while(--s>=0){var c=(g[--u]==b)?this.DM:Math.floor(g[u]*A+(g[u-1]+x)*z);if((g[u]+=d.am(0,c,g,s,0,p))<c){d.dlShiftTo(s,f);g.subTo(f,g);while(g[u]<--c){g.subTo(f,g)}}}if(h!=null){g.drShiftTo(p,h);if(a!=l){BigInteger.ZERO.subTo(h,h)}}g.t=p;g.clamp();if(v>0){g.rShiftTo(v,g)}if(a<0){BigInteger.ZERO.subTo(g,g)}}function bnMod(b){var c=nbi();this.abs().divRemTo(b,null,c);if(this.s<0&&c.compareTo(BigInteger.ZERO)>0){b.subTo(c,c)}return c}function Classic(a){this.m=a}function cConvert(a){if(a.s<0||a.compareTo(this.m)>=0){return a.mod(this.m)}else{return a}}function cRevert(a){return a}function cReduce(a){a.divRemTo(this.m,null,a)}function cMulTo(a,c,b){a.multiplyTo(c,b);this.reduce(b)}function cSqrTo(a,b){a.squareTo(b);this.reduce(b)}Classic.prototype.convert=cConvert;Classic.prototype.revert=cRevert;Classic.prototype.reduce=cReduce;Classic.prototype.mulTo=cMulTo;Classic.prototype.sqrTo=cSqrTo;function bnpInvDigit(){if(this.t<1){return 0}var a=this[0];if((a&1)==0){return 0}var b=a&3;b=(b*(2-(a&15)*b))&15;b=(b*(2-(a&255)*b))&255;b=(b*(2-(((a&65535)*b)&65535)))&65535;b=(b*(2-a*b%this.DV))%this.DV;return(b>0)?this.DV-b:-b}function Montgomery(a){this.m=a;this.mp=a.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<(a.DB-15))-1;this.mt2=2*a.t}function montConvert(a){var b=nbi();a.abs().dlShiftTo(this.m.t,b);b.divRemTo(this.m,null,b);if(a.s<0&&b.compareTo(BigInteger.ZERO)>0){this.m.subTo(b,b)}return b}function montRevert(a){var b=nbi();a.copyTo(b);this.reduce(b);return b}function montReduce(a){while(a.t<=this.mt2){a[a.t++]=0}for(var c=0;c<this.m.t;++c){var b=a[c]&32767;var d=(b*this.mpl+(((b*this.mph+(a[c]>>15)*this.mpl)&this.um)<<15))&a.DM;b=c+this.m.t;a[b]+=this.m.am(0,d,a,c,0,this.m.t);while(a[b]>=a.DV){a[b]-=a.DV;a[++b]++}}a.clamp();a.drShiftTo(this.m.t,a);if(a.compareTo(this.m)>=0){a.subTo(this.m,a)}}function montSqrTo(a,b){a.squareTo(b);this.reduce(b)}function montMulTo(a,c,b){a.multiplyTo(c,b);this.reduce(b)}Montgomery.prototype.convert=montConvert;Montgomery.prototype.revert=montRevert;Montgomery.prototype.reduce=montReduce;Montgomery.prototype.mulTo=montMulTo;Montgomery.prototype.sqrTo=montSqrTo;function bnpIsEven(){return((this.t>0)?(this[0]&1):this.s)==0}function bnpExp(h,j){if(h>4294967295||h<1){return BigInteger.ONE}var f=nbi(),a=nbi(),d=j.convert(this),c=nbits(h)-1;d.copyTo(f);while(--c>=0){j.sqrTo(f,a);if((h&(1<<c))>0){j.mulTo(a,d,f)}else{var b=f;f=a;a=b}}return j.revert(f)}function bnModPowInt(b,a){var c;if(b<256||a.isEven()){c=new Classic(a)}else{c=new Montgomery(a)}return this.exp(b,c)}BigInteger.prototype.copyTo=bnpCopyTo;BigInteger.prototype.fromInt=bnpFromInt;BigInteger.prototype.fromString=bnpFromString;BigInteger.prototype.clamp=bnpClamp;BigInteger.prototype.dlShiftTo=bnpDLShiftTo;BigInteger.prototype.drShiftTo=bnpDRShiftTo;BigInteger.prototype.lShiftTo=bnpLShiftTo;BigInteger.prototype.rShiftTo=bnpRShiftTo;BigInteger.prototype.subTo=bnpSubTo;BigInteger.prototype.multiplyTo=bnpMultiplyTo;BigInteger.prototype.squareTo=bnpSquareTo;BigInteger.prototype.divRemTo=bnpDivRemTo;BigInteger.prototype.invDigit=bnpInvDigit;BigInteger.prototype.isEven=bnpIsEven;BigInteger.prototype.exp=bnpExp;BigInteger.prototype.toString=bnToString;BigInteger.prototype.negate=bnNegate;BigInteger.prototype.abs=bnAbs;BigInteger.prototype.compareTo=bnCompareTo;BigInteger.prototype.bitLength=bnBitLength;BigInteger.prototype.mod=bnMod;BigInteger.prototype.modPowInt=bnModPowInt;BigInteger.ZERO=nbv(0);BigInteger.ONE=nbv(1);\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction bnClone(){var a=nbi();this.copyTo(a);return a}function bnIntValue(){if(this.s<0){if(this.t==1){return this[0]-this.DV}else{if(this.t==0){return -1}}}else{if(this.t==1){return this[0]}else{if(this.t==0){return 0}}}return((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0]}function bnByteValue(){return(this.t==0)?this.s:(this[0]<<24)>>24}function bnShortValue(){return(this.t==0)?this.s:(this[0]<<16)>>16}function bnpChunkSize(a){return Math.floor(Math.LN2*this.DB/Math.log(a))}function bnSigNum(){if(this.s<0){return -1}else{if(this.t<=0||(this.t==1&&this[0]<=0)){return 0}else{return 1}}}function bnpToRadix(c){if(c==null){c=10}if(this.signum()==0||c<2||c>36){return\"0\"}var f=this.chunkSize(c);var e=Math.pow(c,f);var i=nbv(e),j=nbi(),h=nbi(),g=\"\";this.divRemTo(i,j,h);while(j.signum()>0){g=(e+h.intValue()).toString(c).substr(1)+g;j.divRemTo(i,j,h)}return h.intValue().toString(c)+g}function bnpFromRadix(m,h){this.fromInt(0);if(h==null){h=10}var f=this.chunkSize(h);var g=Math.pow(h,f),e=false,a=0,l=0;for(var c=0;c<m.length;++c){var k=intAt(m,c);if(k<0){if(m.charAt(c)==\"-\"&&this.signum()==0){e=true}continue}l=h*l+k;if(++a>=f){this.dMultiply(g);this.dAddOffset(l,0);a=0;l=0}}if(a>0){this.dMultiply(Math.pow(h,a));this.dAddOffset(l,0)}if(e){BigInteger.ZERO.subTo(this,this)}}function bnpFromNumber(f,e,h){if(\"number\"==typeof e){if(f<2){this.fromInt(1)}else{this.fromNumber(f,h);if(!this.testBit(f-1)){this.bitwiseTo(BigInteger.ONE.shiftLeft(f-1),op_or,this)}if(this.isEven()){this.dAddOffset(1,0)}while(!this.isProbablePrime(e)){this.dAddOffset(2,0);if(this.bitLength()>f){this.subTo(BigInteger.ONE.shiftLeft(f-1),this)}}}}else{var d=new Array(),g=f&7;d.length=(f>>3)+1;e.nextBytes(d);if(g>0){d[0]&=((1<<g)-1)}else{d[0]=0}this.fromString(d,256)}}function bnToByteArray(){var b=this.t,c=new Array();c[0]=this.s;var e=this.DB-(b*this.DB)%8,f,a=0;if(b-->0){if(e<this.DB&&(f=this[b]>>e)!=(this.s&this.DM)>>e){c[a++]=f|(this.s<<(this.DB-e))}while(b>=0){if(e<8){f=(this[b]&((1<<e)-1))<<(8-e);f|=this[--b]>>(e+=this.DB-8)}else{f=(this[b]>>(e-=8))&255;if(e<=0){e+=this.DB;--b}}if((f&128)!=0){f|=-256}if(a==0&&(this.s&128)!=(f&128)){++a}if(a>0||f!=this.s){c[a++]=f}}}return c}function bnEquals(b){return(this.compareTo(b)==0)}function bnMin(b){return(this.compareTo(b)<0)?this:b}function bnMax(b){return(this.compareTo(b)>0)?this:b}function bnpBitwiseTo(c,h,e){var d,g,b=Math.min(c.t,this.t);for(d=0;d<b;++d){e[d]=h(this[d],c[d])}if(c.t<this.t){g=c.s&this.DM;for(d=b;d<this.t;++d){e[d]=h(this[d],g)}e.t=this.t}else{g=this.s&this.DM;for(d=b;d<c.t;++d){e[d]=h(g,c[d])}e.t=c.t}e.s=h(this.s,c.s);e.clamp()}function op_and(a,b){return a&b}function bnAnd(b){var c=nbi();this.bitwiseTo(b,op_and,c);return c}function op_or(a,b){return a|b}function bnOr(b){var c=nbi();this.bitwiseTo(b,op_or,c);return c}function op_xor(a,b){return a^b}function bnXor(b){var c=nbi();this.bitwiseTo(b,op_xor,c);return c}function op_andnot(a,b){return a&~b}function bnAndNot(b){var c=nbi();this.bitwiseTo(b,op_andnot,c);return c}function bnNot(){var b=nbi();for(var a=0;a<this.t;++a){b[a]=this.DM&~this[a]}b.t=this.t;b.s=~this.s;return b}function bnShiftLeft(b){var a=nbi();if(b<0){this.rShiftTo(-b,a)}else{this.lShiftTo(b,a)}return a}function bnShiftRight(b){var a=nbi();if(b<0){this.lShiftTo(-b,a)}else{this.rShiftTo(b,a)}return a}function lbit(a){if(a==0){return -1}var b=0;if((a&65535)==0){a>>=16;b+=16}if((a&255)==0){a>>=8;b+=8}if((a&15)==0){a>>=4;b+=4}if((a&3)==0){a>>=2;b+=2}if((a&1)==0){++b}return b}function bnGetLowestSetBit(){for(var a=0;a<this.t;++a){if(this[a]!=0){return a*this.DB+lbit(this[a])}}if(this.s<0){return this.t*this.DB}return -1}function cbit(a){var b=0;while(a!=0){a&=a-1;++b}return b}function bnBitCount(){var c=0,a=this.s&this.DM;for(var b=0;b<this.t;++b){c+=cbit(this[b]^a)}return c}function bnTestBit(b){var a=Math.floor(b/this.DB);if(a>=this.t){return(this.s!=0)}return((this[a]&(1<<(b%this.DB)))!=0)}function bnpChangeBit(c,b){var a=BigInteger.ONE.shiftLeft(c);this.bitwiseTo(a,b,a);return a}function bnSetBit(a){return this.changeBit(a,op_or)}function bnClearBit(a){return this.changeBit(a,op_andnot)}function bnFlipBit(a){return this.changeBit(a,op_xor)}function bnpAddTo(d,f){var e=0,g=0,b=Math.min(d.t,this.t);while(e<b){g+=this[e]+d[e];f[e++]=g&this.DM;g>>=this.DB}if(d.t<this.t){g+=d.s;while(e<this.t){g+=this[e];f[e++]=g&this.DM;g>>=this.DB}g+=this.s}else{g+=this.s;while(e<d.t){g+=d[e];f[e++]=g&this.DM;g>>=this.DB}g+=d.s}f.s=(g<0)?-1:0;if(g>0){f[e++]=g}else{if(g<-1){f[e++]=this.DV+g}}f.t=e;f.clamp()}function bnAdd(b){var c=nbi();this.addTo(b,c);return c}function bnSubtract(b){var c=nbi();this.subTo(b,c);return c}function bnMultiply(b){var c=nbi();this.multiplyTo(b,c);return c}function bnSquare(){var a=nbi();this.squareTo(a);return a}function bnDivide(b){var c=nbi();this.divRemTo(b,c,null);return c}function bnRemainder(b){var c=nbi();this.divRemTo(b,null,c);return c}function bnDivideAndRemainder(b){var d=nbi(),c=nbi();this.divRemTo(b,d,c);return new Array(d,c)}function bnpDMultiply(a){this[this.t]=this.am(0,a-1,this,0,0,this.t);++this.t;this.clamp()}function bnpDAddOffset(b,a){if(b==0){return}while(this.t<=a){this[this.t++]=0}this[a]+=b;while(this[a]>=this.DV){this[a]-=this.DV;if(++a>=this.t){this[this.t++]=0}++this[a]}}function NullExp(){}function nNop(a){return a}function nMulTo(a,c,b){a.multiplyTo(c,b)}function nSqrTo(a,b){a.squareTo(b)}NullExp.prototype.convert=nNop;NullExp.prototype.revert=nNop;NullExp.prototype.mulTo=nMulTo;NullExp.prototype.sqrTo=nSqrTo;function bnPow(a){return this.exp(a,new NullExp())}function bnpMultiplyLowerTo(b,f,e){var d=Math.min(this.t+b.t,f);e.s=0;e.t=d;while(d>0){e[--d]=0}var c;for(c=e.t-this.t;d<c;++d){e[d+this.t]=this.am(0,b[d],e,d,0,this.t)}for(c=Math.min(b.t,f);d<c;++d){this.am(0,b[d],e,d,0,f-d)}e.clamp()}function bnpMultiplyUpperTo(b,e,d){--e;var c=d.t=this.t+b.t-e;d.s=0;while(--c>=0){d[c]=0}for(c=Math.max(e-this.t,0);c<b.t;++c){d[this.t+c-e]=this.am(e-c,b[c],d,0,0,this.t+c-e)}d.clamp();d.drShiftTo(1,d)}function Barrett(a){this.r2=nbi();this.q3=nbi();BigInteger.ONE.dlShiftTo(2*a.t,this.r2);this.mu=this.r2.divide(a);this.m=a}function barrettConvert(a){if(a.s<0||a.t>2*this.m.t){return a.mod(this.m)}else{if(a.compareTo(this.m)<0){return a}else{var b=nbi();a.copyTo(b);this.reduce(b);return b}}}function barrettRevert(a){return a}function barrettReduce(a){a.drShiftTo(this.m.t-1,this.r2);if(a.t>this.m.t+1){a.t=this.m.t+1;a.clamp()}this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);while(a.compareTo(this.r2)<0){a.dAddOffset(1,this.m.t+1)}a.subTo(this.r2,a);while(a.compareTo(this.m)>=0){a.subTo(this.m,a)}}function barrettSqrTo(a,b){a.squareTo(b);this.reduce(b)}function barrettMulTo(a,c,b){a.multiplyTo(c,b);this.reduce(b)}Barrett.prototype.convert=barrettConvert;Barrett.prototype.revert=barrettRevert;Barrett.prototype.reduce=barrettReduce;Barrett.prototype.mulTo=barrettMulTo;Barrett.prototype.sqrTo=barrettSqrTo;function bnModPow(q,f){var o=q.bitLength(),h,b=nbv(1),v;if(o<=0){return b}else{if(o<18){h=1}else{if(o<48){h=3}else{if(o<144){h=4}else{if(o<768){h=5}else{h=6}}}}}if(o<8){v=new Classic(f)}else{if(f.isEven()){v=new Barrett(f)}else{v=new Montgomery(f)}}var p=new Array(),d=3,s=h-1,a=(1<<h)-1;p[1]=v.convert(this);if(h>1){var A=nbi();v.sqrTo(p[1],A);while(d<=a){p[d]=nbi();v.mulTo(A,p[d-2],p[d]);d+=2}}var l=q.t-1,x,u=true,c=nbi(),y;o=nbits(q[l])-1;while(l>=0){if(o>=s){x=(q[l]>>(o-s))&a}else{x=(q[l]&((1<<(o+1))-1))<<(s-o);if(l>0){x|=q[l-1]>>(this.DB+o-s)}}d=h;while((x&1)==0){x>>=1;--d}if((o-=d)<0){o+=this.DB;--l}if(u){p[x].copyTo(b);u=false}else{while(d>1){v.sqrTo(b,c);v.sqrTo(c,b);d-=2}if(d>0){v.sqrTo(b,c)}else{y=b;b=c;c=y}v.mulTo(c,p[x],b)}while(l>=0&&(q[l]&(1<<o))==0){v.sqrTo(b,c);y=b;b=c;c=y;if(--o<0){o=this.DB-1;--l}}}return v.revert(b)}function bnGCD(c){var b=(this.s<0)?this.negate():this.clone();var h=(c.s<0)?c.negate():c.clone();if(b.compareTo(h)<0){var e=b;b=h;h=e}var d=b.getLowestSetBit(),f=h.getLowestSetBit();if(f<0){return b}if(d<f){f=d}if(f>0){b.rShiftTo(f,b);h.rShiftTo(f,h)}while(b.signum()>0){if((d=b.getLowestSetBit())>0){b.rShiftTo(d,b)}if((d=h.getLowestSetBit())>0){h.rShiftTo(d,h)}if(b.compareTo(h)>=0){b.subTo(h,b);b.rShiftTo(1,b)}else{h.subTo(b,h);h.rShiftTo(1,h)}}if(f>0){h.lShiftTo(f,h)}return h}function bnpModInt(e){if(e<=0){return 0}var c=this.DV%e,b=(this.s<0)?e-1:0;if(this.t>0){if(c==0){b=this[0]%e}else{for(var a=this.t-1;a>=0;--a){b=(c*b+this[a])%e}}}return b}function bnModInverse(f){var j=f.isEven();if((this.isEven()&&j)||f.signum()==0){return BigInteger.ZERO}var i=f.clone(),h=this.clone();var g=nbv(1),e=nbv(0),l=nbv(0),k=nbv(1);while(i.signum()!=0){while(i.isEven()){i.rShiftTo(1,i);if(j){if(!g.isEven()||!e.isEven()){g.addTo(this,g);e.subTo(f,e)}g.rShiftTo(1,g)}else{if(!e.isEven()){e.subTo(f,e)}}e.rShiftTo(1,e)}while(h.isEven()){h.rShiftTo(1,h);if(j){if(!l.isEven()||!k.isEven()){l.addTo(this,l);k.subTo(f,k)}l.rShiftTo(1,l)}else{if(!k.isEven()){k.subTo(f,k)}}k.rShiftTo(1,k)}if(i.compareTo(h)>=0){i.subTo(h,i);if(j){g.subTo(l,g)}e.subTo(k,e)}else{h.subTo(i,h);if(j){l.subTo(g,l)}k.subTo(e,k)}}if(h.compareTo(BigInteger.ONE)!=0){return BigInteger.ZERO}if(k.compareTo(f)>=0){return k.subtract(f)}if(k.signum()<0){k.addTo(f,k)}else{return k}if(k.signum()<0){return k.add(f)}else{return k}}var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997];var lplim=(1<<26)/lowprimes[lowprimes.length-1];function bnIsProbablePrime(e){var d,b=this.abs();if(b.t==1&&b[0]<=lowprimes[lowprimes.length-1]){for(d=0;d<lowprimes.length;++d){if(b[0]==lowprimes[d]){return true}}return false}if(b.isEven()){return false}d=1;while(d<lowprimes.length){var a=lowprimes[d],c=d+1;while(c<lowprimes.length&&a<lplim){a*=lowprimes[c++]}a=b.modInt(a);while(d<c){if(a%lowprimes[d++]==0){return false}}}return b.millerRabin(e)}function bnpMillerRabin(f){var g=this.subtract(BigInteger.ONE);var c=g.getLowestSetBit();if(c<=0){return false}var h=g.shiftRight(c);f=(f+1)>>1;if(f>lowprimes.length){f=lowprimes.length}var b=nbi();for(var e=0;e<f;++e){b.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);var l=b.modPow(h,this);if(l.compareTo(BigInteger.ONE)!=0&&l.compareTo(g)!=0){var d=1;while(d++<c&&l.compareTo(g)!=0){l=l.modPowInt(2,this);if(l.compareTo(BigInteger.ONE)==0){return false}}if(l.compareTo(g)!=0){return false}}}return true}BigInteger.prototype.chunkSize=bnpChunkSize;BigInteger.prototype.toRadix=bnpToRadix;BigInteger.prototype.fromRadix=bnpFromRadix;BigInteger.prototype.fromNumber=bnpFromNumber;BigInteger.prototype.bitwiseTo=bnpBitwiseTo;BigInteger.prototype.changeBit=bnpChangeBit;BigInteger.prototype.addTo=bnpAddTo;BigInteger.prototype.dMultiply=bnpDMultiply;BigInteger.prototype.dAddOffset=bnpDAddOffset;BigInteger.prototype.multiplyLowerTo=bnpMultiplyLowerTo;BigInteger.prototype.multiplyUpperTo=bnpMultiplyUpperTo;BigInteger.prototype.modInt=bnpModInt;BigInteger.prototype.millerRabin=bnpMillerRabin;BigInteger.prototype.clone=bnClone;BigInteger.prototype.intValue=bnIntValue;BigInteger.prototype.byteValue=bnByteValue;BigInteger.prototype.shortValue=bnShortValue;BigInteger.prototype.signum=bnSigNum;BigInteger.prototype.toByteArray=bnToByteArray;BigInteger.prototype.equals=bnEquals;BigInteger.prototype.min=bnMin;BigInteger.prototype.max=bnMax;BigInteger.prototype.and=bnAnd;BigInteger.prototype.or=bnOr;BigInteger.prototype.xor=bnXor;BigInteger.prototype.andNot=bnAndNot;BigInteger.prototype.not=bnNot;BigInteger.prototype.shiftLeft=bnShiftLeft;BigInteger.prototype.shiftRight=bnShiftRight;BigInteger.prototype.getLowestSetBit=bnGetLowestSetBit;BigInteger.prototype.bitCount=bnBitCount;BigInteger.prototype.testBit=bnTestBit;BigInteger.prototype.setBit=bnSetBit;BigInteger.prototype.clearBit=bnClearBit;BigInteger.prototype.flipBit=bnFlipBit;BigInteger.prototype.add=bnAdd;BigInteger.prototype.subtract=bnSubtract;BigInteger.prototype.multiply=bnMultiply;BigInteger.prototype.divide=bnDivide;BigInteger.prototype.remainder=bnRemainder;BigInteger.prototype.divideAndRemainder=bnDivideAndRemainder;BigInteger.prototype.modPow=bnModPow;BigInteger.prototype.modInverse=bnModInverse;BigInteger.prototype.pow=bnPow;BigInteger.prototype.gcd=bnGCD;BigInteger.prototype.isProbablePrime=bnIsProbablePrime;BigInteger.prototype.square=bnSquare;\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Arcfour(){this.i=0;this.j=0;this.S=new Array()}function ARC4init(d){var c,a,b;for(c=0;c<256;++c){this.S[c]=c}a=0;for(c=0;c<256;++c){a=(a+this.S[c]+d[c%d.length])&255;b=this.S[c];this.S[c]=this.S[a];this.S[a]=b}this.i=0;this.j=0}function ARC4next(){var a;this.i=(this.i+1)&255;this.j=(this.j+this.S[this.i])&255;a=this.S[this.i];this.S[this.i]=this.S[this.j];this.S[this.j]=a;return this.S[(a+this.S[this.i])&255]}Arcfour.prototype.init=ARC4init;Arcfour.prototype.next=ARC4next;function prng_newstate(){return new Arcfour()}var rng_psize=256;\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nvar rng_state;var rng_pool;var rng_pptr;function rng_seed_int(a){rng_pool[rng_pptr++]^=a&255;rng_pool[rng_pptr++]^=(a>>8)&255;rng_pool[rng_pptr++]^=(a>>16)&255;rng_pool[rng_pptr++]^=(a>>24)&255;if(rng_pptr>=rng_psize){rng_pptr-=rng_psize}}function rng_seed_time(){rng_seed_int(new Date().getTime())}if(rng_pool==null){rng_pool=new Array();rng_pptr=0;var t;if(window!==undefined&&(window.crypto!==undefined||window.msCrypto!==undefined)){var crypto=window.crypto||window.msCrypto;if(crypto.getRandomValues){var ua=new Uint8Array(32);crypto.getRandomValues(ua);for(t=0;t<32;++t){rng_pool[rng_pptr++]=ua[t]}}else{if(navigator.appName==\"Netscape\"&&navigator.appVersion<\"5\"){var z=window.crypto.random(32);for(t=0;t<z.length;++t){rng_pool[rng_pptr++]=z.charCodeAt(t)&255}}}}while(rng_pptr<rng_psize){t=Math.floor(65536*Math.random());rng_pool[rng_pptr++]=t>>>8;rng_pool[rng_pptr++]=t&255}rng_pptr=0;rng_seed_time()}function rng_get_byte(){if(rng_state==null){rng_seed_time();rng_state=prng_newstate();rng_state.init(rng_pool);for(rng_pptr=0;rng_pptr<rng_pool.length;++rng_pptr){rng_pool[rng_pptr]=0}rng_pptr=0}return rng_state.next()}function rng_get_bytes(b){var a;for(a=0;a<b.length;++a){b[a]=rng_get_byte()}}function SecureRandom(){}SecureRandom.prototype.nextBytes=rng_get_bytes;\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction parseBigInt(b,a){return new BigInteger(b,a)}function linebrk(c,d){var a=\"\";var b=0;while(b+d<c.length){a+=c.substring(b,b+d)+\"\\n\";b+=d}return a+c.substring(b,c.length)}function byte2Hex(a){if(a<16){return\"0\"+a.toString(16)}else{return a.toString(16)}}function pkcs1pad2(e,h){if(h<e.length+11){throw\"Message too long for RSA\";return null}var g=new Array();var d=e.length-1;while(d>=0&&h>0){var f=e.charCodeAt(d--);if(f<128){g[--h]=f}else{if((f>127)&&(f<2048)){g[--h]=(f&63)|128;g[--h]=(f>>6)|192}else{g[--h]=(f&63)|128;g[--h]=((f>>6)&63)|128;g[--h]=(f>>12)|224}}}g[--h]=0;var b=new SecureRandom();var a=new Array();while(h>2){a[0]=0;while(a[0]==0){b.nextBytes(a)}g[--h]=a[0]}g[--h]=2;g[--h]=0;return new BigInteger(g)}function oaep_mgf1_arr(c,a,e){var b=\"\",d=0;while(b.length<a){b+=e(String.fromCharCode.apply(String,c.concat([(d&4278190080)>>24,(d&16711680)>>16,(d&65280)>>8,d&255])));d+=1}return b}function oaep_pad(q,a,f,l){var c=KJUR.crypto.MessageDigest;var o=KJUR.crypto.Util;var b=null;if(!f){f=\"sha1\"}if(typeof f===\"string\"){b=c.getCanonicalAlgName(f);l=c.getHashLength(b);f=function(i){return hextorstr(o.hashHex(rstrtohex(i),b))}}if(q.length+2*l+2>a){throw\"Message too long for RSA\"}var k=\"\",e;for(e=0;e<a-q.length-2*l-2;e+=1){k+=\"\\x00\"}var h=f(\"\")+k+\"\\x01\"+q;var g=new Array(l);new SecureRandom().nextBytes(g);var j=oaep_mgf1_arr(g,h.length,f);var p=[];for(e=0;e<h.length;e+=1){p[e]=h.charCodeAt(e)^j.charCodeAt(e)}var m=oaep_mgf1_arr(p,g.length,f);var d=[0];for(e=0;e<g.length;e+=1){d[e+1]=g[e]^m.charCodeAt(e)}return new BigInteger(d.concat(p))}function RSAKey(){this.n=null;this.e=0;this.d=null;this.p=null;this.q=null;this.dmp1=null;this.dmq1=null;this.coeff=null}function RSASetPublic(b,a){this.isPublic=true;this.isPrivate=false;if(typeof b!==\"string\"){this.n=b;this.e=a}else{if(b!=null&&a!=null&&b.length>0&&a.length>0){this.n=parseBigInt(b,16);this.e=parseInt(a,16)}else{throw\"Invalid RSA public key\"}}}function RSADoPublic(a){return a.modPowInt(this.e,this.n)}RSAKey.prototype.doPublic=RSADoPublic;RSAKey.prototype.setPublic=RSASetPublic;RSAKey.prototype.type=\"RSA\";\n/*! (c) Tom Wu, Kenji Urushima | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction pkcs1unpad2(g,j){var a=g.toByteArray();var f=0;while(f<a.length&&a[f]==0){++f}if(a.length-f!=j-1||a[f]!=2){return null}++f;while(a[f]!=0){if(++f>=a.length){return null}}var e=\"\";while(++f<a.length){var h=a[f]&255;if(h<128){e+=String.fromCharCode(h)}else{if((h>191)&&(h<224)){e+=String.fromCharCode(((h&31)<<6)|(a[f+1]&63));++f}else{e+=String.fromCharCode(((h&15)<<12)|((a[f+1]&63)<<6)|(a[f+2]&63));f+=2}}}return e}function oaep_mgf1_str(c,a,e){var b=\"\",d=0;while(b.length<a){b+=e(c+String.fromCharCode.apply(String,[(d&4278190080)>>24,(d&16711680)>>16,(d&65280)>>8,d&255]));d+=1}return b}function oaep_unpad(o,b,g,p){var e=KJUR.crypto.MessageDigest;var r=KJUR.crypto.Util;var c=null;if(!g){g=\"sha1\"}if(typeof g===\"string\"){c=e.getCanonicalAlgName(g);p=e.getHashLength(c);g=function(d){return hextorstr(r.hashHex(rstrtohex(d),c))}}o=o.toByteArray();var h;for(h=0;h<o.length;h+=1){o[h]&=255}while(o.length<b){o.unshift(0)}o=String.fromCharCode.apply(String,o);if(o.length<2*p+2){throw\"Cipher too short\"}var f=o.substr(1,p);var s=o.substr(p+1);var q=oaep_mgf1_str(s,p,g);var k=[],h;for(h=0;h<f.length;h+=1){k[h]=f.charCodeAt(h)^q.charCodeAt(h)}var l=oaep_mgf1_str(String.fromCharCode.apply(String,k),o.length-p,g);var j=[];for(h=0;h<s.length;h+=1){j[h]=s.charCodeAt(h)^l.charCodeAt(h)}j=String.fromCharCode.apply(String,j);if(j.substr(0,p)!==g(\"\")){throw\"Hash mismatch\"}j=j.substr(p);var a=j.indexOf(\"\\x01\");var m=(a!=-1)?j.substr(0,a).lastIndexOf(\"\\x00\"):-1;if(m+1!=a){throw\"Malformed data\"}return j.substr(a+1)}function RSASetPrivate(c,a,b){this.isPrivate=true;if(typeof c!==\"string\"){this.n=c;this.e=a;this.d=b}else{if(c!=null&&a!=null&&c.length>0&&a.length>0){this.n=parseBigInt(c,16);this.e=parseInt(a,16);this.d=parseBigInt(b,16)}else{throw\"Invalid RSA private key\"}}}function RSASetPrivateEx(g,d,e,c,b,a,h,f){this.isPrivate=true;this.isPublic=false;if(g==null){throw\"RSASetPrivateEx N == null\"}if(d==null){throw\"RSASetPrivateEx E == null\"}if(g.length==0){throw\"RSASetPrivateEx N.length == 0\"}if(d.length==0){throw\"RSASetPrivateEx E.length == 0\"}if(g!=null&&d!=null&&g.length>0&&d.length>0){this.n=parseBigInt(g,16);this.e=parseInt(d,16);this.d=parseBigInt(e,16);this.p=parseBigInt(c,16);this.q=parseBigInt(b,16);this.dmp1=parseBigInt(a,16);this.dmq1=parseBigInt(h,16);this.coeff=parseBigInt(f,16)}else{throw\"Invalid RSA private key in RSASetPrivateEx\"}}function RSAGenerate(b,l){var a=new SecureRandom();var g=b>>1;this.e=parseInt(l,16);var c=new BigInteger(l,16);var d=(b/2)-100;var k=BigInteger.ONE.shiftLeft(d);for(;;){for(;;){this.p=new BigInteger(b-g,1,a);if(this.p.subtract(BigInteger.ONE).gcd(c).compareTo(BigInteger.ONE)==0&&this.p.isProbablePrime(10)){break}}for(;;){this.q=new BigInteger(g,1,a);if(this.q.subtract(BigInteger.ONE).gcd(c).compareTo(BigInteger.ONE)==0&&this.q.isProbablePrime(10)){break}}if(this.p.compareTo(this.q)<=0){var j=this.p;this.p=this.q;this.q=j}var h=this.q.subtract(this.p).abs();if(h.bitLength()<d||h.compareTo(k)<=0){continue}var i=this.p.subtract(BigInteger.ONE);var e=this.q.subtract(BigInteger.ONE);var f=i.multiply(e);if(f.gcd(c).compareTo(BigInteger.ONE)==0){this.n=this.p.multiply(this.q);if(this.n.bitLength()==b){this.d=c.modInverse(f);this.dmp1=this.d.mod(i);this.dmq1=this.d.mod(e);this.coeff=this.q.modInverse(this.p);break}}}this.isPrivate=true}function RSADoPrivate(a){if(this.p==null||this.q==null){return a.modPow(this.d,this.n)}var c=a.mod(this.p).modPow(this.dmp1,this.p);var b=a.mod(this.q).modPow(this.dmq1,this.q);while(c.compareTo(b)<0){c=c.add(this.p)}return c.subtract(b).multiply(this.coeff).mod(this.p).multiply(this.q).add(b)}RSAKey.prototype.doPrivate=RSADoPrivate;RSAKey.prototype.setPrivate=RSASetPrivate;RSAKey.prototype.setPrivateEx=RSASetPrivateEx;RSAKey.prototype.generate=RSAGenerate;\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction ECFieldElementFp(b,a){this.x=a;this.q=b}function feFpEquals(a){if(a==this){return true}return(this.q.equals(a.q)&&this.x.equals(a.x))}function feFpToBigInteger(){return this.x}function feFpNegate(){return new ECFieldElementFp(this.q,this.x.negate().mod(this.q))}function feFpAdd(a){return new ECFieldElementFp(this.q,this.x.add(a.toBigInteger()).mod(this.q))}function feFpSubtract(a){return new ECFieldElementFp(this.q,this.x.subtract(a.toBigInteger()).mod(this.q))}function feFpMultiply(a){return new ECFieldElementFp(this.q,this.x.multiply(a.toBigInteger()).mod(this.q))}function feFpSquare(){return new ECFieldElementFp(this.q,this.x.square().mod(this.q))}function feFpDivide(a){return new ECFieldElementFp(this.q,this.x.multiply(a.toBigInteger().modInverse(this.q)).mod(this.q))}ECFieldElementFp.prototype.equals=feFpEquals;ECFieldElementFp.prototype.toBigInteger=feFpToBigInteger;ECFieldElementFp.prototype.negate=feFpNegate;ECFieldElementFp.prototype.add=feFpAdd;ECFieldElementFp.prototype.subtract=feFpSubtract;ECFieldElementFp.prototype.multiply=feFpMultiply;ECFieldElementFp.prototype.square=feFpSquare;ECFieldElementFp.prototype.divide=feFpDivide;ECFieldElementFp.prototype.sqrt=function(){return new ECFieldElementFp(this.q,this.x.sqrt().mod(this.q))};function ECPointFp(c,a,d,b){this.curve=c;this.x=a;this.y=d;if(b==null){this.z=BigInteger.ONE}else{this.z=b}this.zinv=null}function pointFpGetX(){if(this.zinv==null){this.zinv=this.z.modInverse(this.curve.q)}return this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))}function pointFpGetY(){if(this.zinv==null){this.zinv=this.z.modInverse(this.curve.q)}return this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))}function pointFpEquals(a){if(a==this){return true}if(this.isInfinity()){return a.isInfinity()}if(a.isInfinity()){return this.isInfinity()}var c,b;c=a.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(a.z)).mod(this.curve.q);if(!c.equals(BigInteger.ZERO)){return false}b=a.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(a.z)).mod(this.curve.q);return b.equals(BigInteger.ZERO)}function pointFpIsInfinity(){if((this.x==null)&&(this.y==null)){return true}return this.z.equals(BigInteger.ZERO)&&!this.y.toBigInteger().equals(BigInteger.ZERO)}function pointFpNegate(){return new ECPointFp(this.curve,this.x,this.y.negate(),this.z)}function pointFpAdd(l){if(this.isInfinity()){return l}if(l.isInfinity()){return this}var p=l.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(l.z)).mod(this.curve.q);var o=l.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(l.z)).mod(this.curve.q);if(BigInteger.ZERO.equals(o)){if(BigInteger.ZERO.equals(p)){return this.twice()}return this.curve.getInfinity()}var j=new BigInteger(\"3\");var e=this.x.toBigInteger();var n=this.y.toBigInteger();var c=l.x.toBigInteger();var k=l.y.toBigInteger();var m=o.square();var i=m.multiply(o);var d=e.multiply(m);var g=p.square().multiply(this.z);var a=g.subtract(d.shiftLeft(1)).multiply(l.z).subtract(i).multiply(o).mod(this.curve.q);var h=d.multiply(j).multiply(p).subtract(n.multiply(i)).subtract(g.multiply(p)).multiply(l.z).add(p.multiply(i)).mod(this.curve.q);var f=i.multiply(this.z).multiply(l.z).mod(this.curve.q);return new ECPointFp(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(h),f)}function pointFpTwice(){if(this.isInfinity()){return this}if(this.y.toBigInteger().signum()==0){return this.curve.getInfinity()}var g=new BigInteger(\"3\");var c=this.x.toBigInteger();var h=this.y.toBigInteger();var e=h.multiply(this.z);var j=e.multiply(h).mod(this.curve.q);var i=this.curve.a.toBigInteger();var k=c.square().multiply(g);if(!BigInteger.ZERO.equals(i)){k=k.add(this.z.square().multiply(i))}k=k.mod(this.curve.q);var b=k.square().subtract(c.shiftLeft(3).multiply(j)).shiftLeft(1).multiply(e).mod(this.curve.q);var f=k.multiply(g).multiply(c).subtract(j.shiftLeft(1)).shiftLeft(2).multiply(j).subtract(k.square().multiply(k)).mod(this.curve.q);var d=e.square().multiply(e).shiftLeft(3).mod(this.curve.q);return new ECPointFp(this.curve,this.curve.fromBigInteger(b),this.curve.fromBigInteger(f),d)}function pointFpMultiply(d){if(this.isInfinity()){return this}if(d.signum()==0){return this.curve.getInfinity()}var m=d;var l=m.multiply(new BigInteger(\"3\"));var b=this.negate();var j=this;var q=this.curve.q.subtract(d);var o=q.multiply(new BigInteger(\"3\"));var c=new ECPointFp(this.curve,this.x,this.y);var a=c.negate();var g;for(g=l.bitLength()-2;g>0;--g){j=j.twice();var n=l.testBit(g);var f=m.testBit(g);if(n!=f){j=j.add(n?this:b)}}for(g=o.bitLength()-2;g>0;--g){c=c.twice();var p=o.testBit(g);var r=q.testBit(g);if(p!=r){c=c.add(p?c:a)}}return j}function pointFpMultiplyTwo(c,a,b){var d;if(c.bitLength()>b.bitLength()){d=c.bitLength()-1}else{d=b.bitLength()-1}var f=this.curve.getInfinity();var e=this.add(a);while(d>=0){f=f.twice();if(c.testBit(d)){if(b.testBit(d)){f=f.add(e)}else{f=f.add(this)}}else{if(b.testBit(d)){f=f.add(a)}}--d}return f}ECPointFp.prototype.getX=pointFpGetX;ECPointFp.prototype.getY=pointFpGetY;ECPointFp.prototype.equals=pointFpEquals;ECPointFp.prototype.isInfinity=pointFpIsInfinity;ECPointFp.prototype.negate=pointFpNegate;ECPointFp.prototype.add=pointFpAdd;ECPointFp.prototype.twice=pointFpTwice;ECPointFp.prototype.multiply=pointFpMultiply;ECPointFp.prototype.multiplyTwo=pointFpMultiplyTwo;function ECCurveFp(e,d,c){this.q=e;this.a=this.fromBigInteger(d);this.b=this.fromBigInteger(c);this.infinity=new ECPointFp(this,null,null)}function curveFpGetQ(){return this.q}function curveFpGetA(){return this.a}function curveFpGetB(){return this.b}function curveFpEquals(a){if(a==this){return true}return(this.q.equals(a.q)&&this.a.equals(a.a)&&this.b.equals(a.b))}function curveFpGetInfinity(){return this.infinity}function curveFpFromBigInteger(a){return new ECFieldElementFp(this.q,a)}function curveFpDecodePointHex(m){switch(parseInt(m.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:var c=m.substr(0,2);var l=m.substr(2);var j=this.fromBigInteger(new BigInteger(k,16));var i=this.getA();var h=this.getB();var e=j.square().add(i).multiply(j).add(h);var g=e.sqrt();if(c==\"03\"){g=g.negate()}return new ECPointFp(this,j,g);case 4:case 6:case 7:var d=(m.length-2)/2;var k=m.substr(2,d);var f=m.substr(d+2,d);return new ECPointFp(this,this.fromBigInteger(new BigInteger(k,16)),this.fromBigInteger(new BigInteger(f,16)));default:return null}}ECCurveFp.prototype.getQ=curveFpGetQ;ECCurveFp.prototype.getA=curveFpGetA;ECCurveFp.prototype.getB=curveFpGetB;ECCurveFp.prototype.equals=curveFpEquals;ECCurveFp.prototype.getInfinity=curveFpGetInfinity;ECCurveFp.prototype.fromBigInteger=curveFpFromBigInteger;ECCurveFp.prototype.decodePointHex=curveFpDecodePointHex;\n/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib\n */\nECFieldElementFp.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)};ECPointFp.prototype.getEncoded=function(c){var d=function(h,f){var g=h.toByteArrayUnsigned();if(f<g.length){g=g.slice(g.length-f)}else{while(f>g.length){g.unshift(0)}}return g};var a=this.getX().toBigInteger();var e=this.getY().toBigInteger();var b=d(a,32);if(c){if(e.isEven()){b.unshift(2)}else{b.unshift(3)}}else{b.unshift(4);b=b.concat(d(e,32))}return b};ECPointFp.decodeFrom=function(g,c){var f=c[0];var e=c.length-1;var d=c.slice(1,1+e/2);var b=c.slice(1+e/2,1+e);d.unshift(0);b.unshift(0);var a=new BigInteger(d);var h=new BigInteger(b);return new ECPointFp(g,g.fromBigInteger(a),g.fromBigInteger(h))};ECPointFp.decodeFromHex=function(g,c){var f=c.substr(0,2);var e=c.length-2;var d=c.substr(2,e/2);var b=c.substr(2+e/2,e/2);var a=new BigInteger(d,16);var h=new BigInteger(b,16);return new ECPointFp(g,g.fromBigInteger(a),g.fromBigInteger(h))};ECPointFp.prototype.add2D=function(c){if(this.isInfinity()){return c}if(c.isInfinity()){return this}if(this.x.equals(c.x)){if(this.y.equals(c.y)){return this.twice()}return this.curve.getInfinity()}var g=c.x.subtract(this.x);var e=c.y.subtract(this.y);var a=e.divide(g);var d=a.square().subtract(this.x).subtract(c.x);var f=a.multiply(this.x.subtract(d)).subtract(this.y);return new ECPointFp(this.curve,d,f)};ECPointFp.prototype.twice2D=function(){if(this.isInfinity()){return this}if(this.y.toBigInteger().signum()==0){return this.curve.getInfinity()}var b=this.curve.fromBigInteger(BigInteger.valueOf(2));var e=this.curve.fromBigInteger(BigInteger.valueOf(3));var a=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(b));var c=a.square().subtract(this.x.multiply(b));var d=a.multiply(this.x.subtract(c)).subtract(this.y);return new ECPointFp(this.curve,c,d)};ECPointFp.prototype.multiply2D=function(b){if(this.isInfinity()){return this}if(b.signum()==0){return this.curve.getInfinity()}var g=b;var f=g.multiply(new BigInteger(\"3\"));var l=this.negate();var d=this;var c;for(c=f.bitLength()-2;c>0;--c){d=d.twice();var a=f.testBit(c);var j=g.testBit(c);if(a!=j){d=d.add2D(a?this:l)}}return d};ECPointFp.prototype.isOnCurve=function(){var d=this.getX().toBigInteger();var i=this.getY().toBigInteger();var f=this.curve.getA().toBigInteger();var c=this.curve.getB().toBigInteger();var h=this.curve.getQ();var e=i.multiply(i).mod(h);var g=d.multiply(d).multiply(d).add(f.multiply(d)).add(c).mod(h);return e.equals(g)};ECPointFp.prototype.toString=function(){return\"(\"+this.getX().toBigInteger().toString()+\",\"+this.getY().toBigInteger().toString()+\")\"};ECPointFp.prototype.validate=function(){var c=this.curve.getQ();if(this.isInfinity()){throw new Error(\"Point is at infinity.\")}var a=this.getX().toBigInteger();var b=this.getY().toBigInteger();if(a.compareTo(BigInteger.ONE)<0||a.compareTo(c.subtract(BigInteger.ONE))>0){throw new Error(\"x coordinate out of bounds\")}if(b.compareTo(BigInteger.ONE)<0||b.compareTo(c.subtract(BigInteger.ONE))>0){throw new Error(\"y coordinate out of bounds\")}if(!this.isOnCurve()){throw new Error(\"Point is not on the curve.\")}if(this.multiply(c).isInfinity()){throw new Error(\"Point is not a scalar multiple of G.\")}return true};\n/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval\n */\nvar jsonParse=(function(){var e=\"(?:-?\\\\b(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\\\b)\";var j='(?:[^\\\\0-\\\\x08\\\\x0a-\\\\x1f\"\\\\\\\\]|\\\\\\\\(?:[\"/\\\\\\\\bfnrt]|u[0-9A-Fa-f]{4}))';var i='(?:\"'+j+'*\")';var d=new RegExp(\"(?:false|true|null|[\\\\{\\\\}\\\\[\\\\]]|\"+e+\"|\"+i+\")\",\"g\");var k=new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\",\"g\");var g={'\"':'\"',\"/\":\"/\",\"\\\\\":\"\\\\\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\\t\"};function h(l,m,n){return m?g[m]:String.fromCharCode(parseInt(n,16))}var c=new String(\"\");var a=\"\\\\\";var f={\"{\":Object,\"[\":Array};var b=Object.hasOwnProperty;return function(u,q){var p=u.match(d);var x;var v=p[0];var l=false;if(\"{\"===v){x={}}else{if(\"[\"===v){x=[]}else{x=[];l=true}}var t;var r=[x];for(var o=1-l,m=p.length;o<m;++o){v=p[o];var w;switch(v.charCodeAt(0)){default:w=r[0];w[t||w.length]=+(v);t=void 0;break;case 34:v=v.substring(1,v.length-1);if(v.indexOf(a)!==-1){v=v.replace(k,h)}w=r[0];if(!t){if(w instanceof Array){t=w.length}else{t=v||c;break}}w[t]=v;t=void 0;break;case 91:w=r[0];r.unshift(w[t||w.length]=[]);t=void 0;break;case 93:r.shift();break;case 102:w=r[0];w[t||w.length]=false;t=void 0;break;case 110:w=r[0];w[t||w.length]=null;t=void 0;break;case 116:w=r[0];w[t||w.length]=true;t=void 0;break;case 123:w=r[0];r.unshift(w[t||w.length]={});t=void 0;break;case 125:r.shift();break}}if(l){if(r.length!==1){throw new Error()}x=x[0]}else{if(r.length){throw new Error()}}if(q){var s=function(C,B){var D=C[B];if(D&&typeof D===\"object\"){var n=null;for(var z in D){if(b.call(D,z)&&D!==C){var y=s(D,z);if(y!==void 0){D[z]=y}else{if(!n){n=[]}n.push(z)}}}if(n){for(var A=n.length;--A>=0;){delete D[n[A]]}}}return q.call(C,B,D)};x=s({\"\":x},\"\")}return x}})();\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.asn1==\"undefined\"||!KJUR.asn1){KJUR.asn1={}}KJUR.asn1.ASN1Util=new function(){this.integerToByteHex=function(a){var b=a.toString(16);if((b.length%2)==1){b=\"0\"+b}return b};this.bigIntToMinTwosComplementsHex=function(a){return twoscompl(a)};this.getPEMStringFromHex=function(a,b){return hextopem(a,b)};this.newObject=function(k){var F=KJUR,o=F.asn1,v=o.ASN1Object,B=o.DERBoolean,e=o.DERInteger,t=o.DERBitString,h=o.DEROctetString,x=o.DERNull,y=o.DERObjectIdentifier,m=o.DEREnumerated,g=o.DERUTF8String,f=o.DERNumericString,A=o.DERPrintableString,w=o.DERTeletexString,q=o.DERIA5String,E=o.DERUTCTime,j=o.DERGeneralizedTime,b=o.DERVisibleString,l=o.DERBMPString,n=o.DERSequence,c=o.DERSet,s=o.DERTaggedObject,p=o.ASN1Util.newObject;if(k instanceof o.ASN1Object){return k}var u=Object.keys(k);if(u.length!=1){throw new Error(\"key of param shall be only one.\")}var H=u[0];if(\":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:\".indexOf(\":\"+H+\":\")==-1){throw new Error(\"undefined key: \"+H)}if(H==\"bool\"){return new B(k[H])}if(H==\"int\"){return new e(k[H])}if(H==\"bitstr\"){return new t(k[H])}if(H==\"octstr\"){return new h(k[H])}if(H==\"null\"){return new x(k[H])}if(H==\"oid\"){return new y(k[H])}if(H==\"enum\"){return new m(k[H])}if(H==\"utf8str\"){return new g(k[H])}if(H==\"numstr\"){return new f(k[H])}if(H==\"prnstr\"){return new A(k[H])}if(H==\"telstr\"){return new w(k[H])}if(H==\"ia5str\"){return new q(k[H])}if(H==\"utctime\"){return new E(k[H])}if(H==\"gentime\"){return new j(k[H])}if(H==\"visstr\"){return new b(k[H])}if(H==\"bmpstr\"){return new l(k[H])}if(H==\"asn1\"){return new v(k[H])}if(H==\"seq\"){var d=k[H];var G=[];for(var z=0;z<d.length;z++){var D=p(d[z]);G.push(D)}return new n({array:G})}if(H==\"set\"){var d=k[H];var G=[];for(var z=0;z<d.length;z++){var D=p(d[z]);G.push(D)}return new c({array:G})}if(H==\"tag\"){var C=k[H];if(Object.prototype.toString.call(C)===\"[object Array]\"&&C.length==3){var r=p(C[2]);return new s({tag:C[0],explicit:C[1],obj:r})}else{return new s(C)}}};this.jsonToASN1HEX=function(b){var a=this.newObject(b);return a.tohex()}};KJUR.asn1.ASN1Util.oidHexToInt=function(a){var j=\"\";var k=parseInt(a.substr(0,2),16);var d=Math.floor(k/40);var c=k%40;var j=d+\".\"+c;var e=\"\";for(var f=2;f<a.length;f+=2){var g=parseInt(a.substr(f,2),16);var h=(\"00000000\"+g.toString(2)).slice(-8);e=e+h.substr(1,7);if(h.substr(0,1)==\"0\"){var b=new BigInteger(e,2);j=j+\".\"+b.toString(10);e=\"\"}}return j};KJUR.asn1.ASN1Util.oidIntToHex=function(f){var e=function(a){var k=a.toString(16);if(k.length==1){k=\"0\"+k}return k};var d=function(o){var n=\"\";var k=new BigInteger(o,10);var a=k.toString(2);var l=7-a.length%7;if(l==7){l=0}var q=\"\";for(var m=0;m<l;m++){q+=\"0\"}a=q+a;for(var m=0;m<a.length-1;m+=7){var p=a.substr(m,7);if(m!=a.length-7){p=\"1\"+p}n+=e(parseInt(p,2))}return n};if(!f.match(/^[0-9.]+$/)){throw\"malformed oid string: \"+f}var g=\"\";var b=f.split(\".\");var j=parseInt(b[0])*40+parseInt(b[1]);g+=e(j);b.splice(0,2);for(var c=0;c<b.length;c++){g+=d(b[c])}return g};KJUR.asn1.ASN1Object=function(e){var c=true;var b=null;var d=\"00\";var f=\"00\";var a=\"\";this.params=null;this.getLengthHexFromValue=function(){if(typeof this.hV==\"undefined\"||this.hV==null){throw new Error(\"this.hV is null or undefined\")}if(this.hV.length%2==1){throw new Error(\"value hex must be even length: n=\"+a.length+\",v=\"+this.hV)}var j=this.hV.length/2;var i=j.toString(16);if(i.length%2==1){i=\"0\"+i}if(j<128){return i}else{var h=i.length/2;if(h>15){throw new Error(\"ASN.1 length too long to represent by 8x: n = \"+j.toString(16))}var g=128+h;return g.toString(16)+i}};this.tohex=function(){if(this.hTLV==null||this.isModified){this.hV=this.getFreshValueHex();this.hL=this.getLengthHexFromValue();this.hTLV=this.hT+this.hL+this.hV;this.isModified=false}return this.hTLV};this.getEncodedHex=function(){return this.tohex()};this.getValueHex=function(){this.tohex();return this.hV};this.getFreshValueHex=function(){return\"\"};this.setByParam=function(g){this.params=g};if(e!=undefined){if(e.tlv!=undefined){this.hTLV=e.tlv;this.isModified=false}}};KJUR.asn1.DERAbstractString=function(c){KJUR.asn1.DERAbstractString.superclass.constructor.call(this);var b=null;var a=null;this.getString=function(){return this.s};this.setString=function(d){this.hTLV=null;this.isModified=true;this.s=d;this.hV=utf8tohex(this.s).toLowerCase()};this.setStringHex=function(d){this.hTLV=null;this.isModified=true;this.s=null;this.hV=d};this.getFreshValueHex=function(){return this.hV};if(typeof c!=\"undefined\"){if(typeof c==\"string\"){this.setString(c)}else{if(typeof c.str!=\"undefined\"){this.setString(c.str)}else{if(typeof c.hex!=\"undefined\"){this.setStringHex(c.hex)}}}}};extendClass(KJUR.asn1.DERAbstractString,KJUR.asn1.ASN1Object);KJUR.asn1.DERAbstractTime=function(c){KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);var b=null;var a=null;this.localDateToUTC=function(g){var e=g.getTime()+(g.getTimezoneOffset()*60000);var f=new Date(e);return f};this.formatDate=function(m,o,e){var g=this.zeroPadding;var n=this.localDateToUTC(m);var p=String(n.getFullYear());if(o==\"utc\"){p=p.substr(2,2)}var l=g(String(n.getMonth()+1),2);var q=g(String(n.getDate()),2);var h=g(String(n.getHours()),2);var i=g(String(n.getMinutes()),2);var j=g(String(n.getSeconds()),2);var r=p+l+q+h+i+j;if(e===true){var f=n.getMilliseconds();if(f!=0){var k=g(String(f),3);k=k.replace(/[0]+$/,\"\");r=r+\".\"+k}}return r+\"Z\"};this.zeroPadding=function(e,d){if(e.length>=d){return e}return new Array(d-e.length+1).join(\"0\")+e};this.setByParam=function(d){this.hV=null;this.hTLV=null;this.params=d};this.getString=function(){return undefined};this.setString=function(d){this.hTLV=null;this.isModified=true;if(this.params==undefined){this.params={}}this.params.str=d};this.setByDate=function(d){this.hTLV=null;this.isModified=true;if(this.params==undefined){this.params={}}this.params.date=d};this.setByDateValue=function(h,j,e,d,f,g){var i=new Date(Date.UTC(h,j-1,e,d,f,g,0));this.setByDate(i)};this.getFreshValueHex=function(){return this.hV}};extendClass(KJUR.asn1.DERAbstractTime,KJUR.asn1.ASN1Object);KJUR.asn1.DERAbstractStructured=function(b){KJUR.asn1.DERAbstractString.superclass.constructor.call(this);var a=null;this.setByASN1ObjectArray=function(c){this.hTLV=null;this.isModified=true;this.asn1Array=c};this.appendASN1Object=function(c){this.hTLV=null;this.isModified=true;this.asn1Array.push(c)};this.asn1Array=new Array();if(typeof b!=\"undefined\"){if(typeof b.array!=\"undefined\"){this.asn1Array=b.array}}};extendClass(KJUR.asn1.DERAbstractStructured,KJUR.asn1.ASN1Object);KJUR.asn1.DERBoolean=function(a){KJUR.asn1.DERBoolean.superclass.constructor.call(this);this.hT=\"01\";if(a==false){this.hTLV=\"010100\"}else{this.hTLV=\"0101ff\"}};extendClass(KJUR.asn1.DERBoolean,KJUR.asn1.ASN1Object);KJUR.asn1.DERInteger=function(b){KJUR.asn1.DERInteger.superclass.constructor.call(this);this.hT=\"02\";this.params=null;var a=twoscompl;this.setByBigInteger=function(c){this.isModified=true;this.params={bigint:c}};this.setByInteger=function(c){this.isModified=true;this.params=c};this.setValueHex=function(c){this.isModified=true;this.params={hex:c}};this.getFreshValueHex=function(){var d=this.params;var c=null;if(d==null){throw new Error(\"value not set\")}if(typeof d==\"object\"&&d.hex!=undefined){this.hV=d.hex;return this.hV}if(typeof d==\"number\"){c=new BigInteger(String(d),10)}else{if(d[\"int\"]!=undefined){c=new BigInteger(String(d[\"int\"]),10)}else{if(d.bigint!=undefined){c=d.bigint}else{throw new Error(\"wrong parameter\")}}}this.hV=a(c);return this.hV};if(b!=undefined){this.params=b}};extendClass(KJUR.asn1.DERInteger,KJUR.asn1.ASN1Object);KJUR.asn1.DERBitString=function(b){if(b!==undefined&&typeof b.obj!==\"undefined\"){var a=KJUR.asn1.ASN1Util.newObject(b.obj);b.hex=\"00\"+a.tohex()}KJUR.asn1.DERBitString.superclass.constructor.call(this);this.hT=\"03\";this.setHexValueIncludingUnusedBits=function(c){this.hTLV=null;this.isModified=true;this.hV=c};this.setUnusedBitsAndHexValue=function(c,e){if(c<0||7<c){throw\"unused bits shall be from 0 to 7: u = \"+c}var d=\"0\"+c;this.hTLV=null;this.isModified=true;this.hV=d+e};this.setByBinaryString=function(e){e=e.replace(/0+$/,\"\");var f=8-e.length%8;if(f==8){f=0}e+=\"0000000\".substr(0,f);var j=\"\";for(var g=0;g<e.length-1;g+=8){var d=e.substr(g,8);var c=parseInt(d,2).toString(16);if(c.length==1){c=\"0\"+c}j+=c}this.hTLV=null;this.isModified=true;this.hV=\"0\"+f+j};this.setByBooleanArray=function(e){var d=\"\";for(var c=0;c<e.length;c++){if(e[c]==true){d+=\"1\"}else{d+=\"0\"}}this.setByBinaryString(d)};this.newFalseArray=function(e){var c=new Array(e);for(var d=0;d<e;d++){c[d]=false}return c};this.getFreshValueHex=function(){return this.hV};if(typeof b!=\"undefined\"){if(typeof b==\"string\"&&b.toLowerCase().match(/^[0-9a-f]+$/)){this.setHexValueIncludingUnusedBits(b)}else{if(typeof b.hex!=\"undefined\"){this.setHexValueIncludingUnusedBits(b.hex)}else{if(typeof b.bin!=\"undefined\"){this.setByBinaryString(b.bin)}else{if(typeof b.array!=\"undefined\"){this.setByBooleanArray(b.array)}}}}}};extendClass(KJUR.asn1.DERBitString,KJUR.asn1.ASN1Object);KJUR.asn1.DEROctetString=function(b){if(b!==undefined&&typeof b.obj!==\"undefined\"){var a=KJUR.asn1.ASN1Util.newObject(b.obj);b.hex=a.tohex()}KJUR.asn1.DEROctetString.superclass.constructor.call(this,b);this.hT=\"04\"};extendClass(KJUR.asn1.DEROctetString,KJUR.asn1.DERAbstractString);KJUR.asn1.DERNull=function(){KJUR.asn1.DERNull.superclass.constructor.call(this);this.hT=\"05\";this.hTLV=\"0500\"};extendClass(KJUR.asn1.DERNull,KJUR.asn1.ASN1Object);KJUR.asn1.DERObjectIdentifier=function(a){KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);this.hT=\"06\";this.setValueHex=function(b){this.hTLV=null;this.isModified=true;this.s=null;this.hV=b};this.setValueOidString=function(b){var c=oidtohex(b);if(c==null){throw new Error(\"malformed oid string: \"+b)}this.hTLV=null;this.isModified=true;this.s=null;this.hV=c};this.setValueName=function(c){var b=KJUR.asn1.x509.OID.name2oid(c);if(b!==\"\"){this.setValueOidString(b)}else{throw new Error(\"DERObjectIdentifier oidName undefined: \"+c)}};this.setValueNameOrOid=function(b){if(b.match(/^[0-2].[0-9.]+$/)){this.setValueOidString(b)}else{this.setValueName(b)}};this.getFreshValueHex=function(){return this.hV};this.setByParam=function(b){if(typeof b===\"string\"){this.setValueNameOrOid(b)}else{if(b.oid!==undefined){this.setValueNameOrOid(b.oid)}else{if(b.name!==undefined){this.setValueNameOrOid(b.name)}else{if(b.hex!==undefined){this.setValueHex(b.hex)}}}}};if(a!==undefined){this.setByParam(a)}};extendClass(KJUR.asn1.DERObjectIdentifier,KJUR.asn1.ASN1Object);KJUR.asn1.DEREnumerated=function(a){KJUR.asn1.DEREnumerated.superclass.constructor.call(this);this.hT=\"0a\";this.setByBigInteger=function(b){this.hTLV=null;this.isModified=true;this.hV=twoscompl(b)};this.setByInteger=function(c){var b=new BigInteger(String(c),10);this.setByBigInteger(b)};this.setValueHex=function(b){this.hV=b};this.getFreshValueHex=function(){return this.hV};if(typeof a!=\"undefined\"){if(typeof a[\"int\"]!=\"undefined\"){this.setByInteger(a[\"int\"])}else{if(typeof a==\"number\"){this.setByInteger(a)}else{if(typeof a.hex!=\"undefined\"){this.setValueHex(a.hex)}}}}};extendClass(KJUR.asn1.DEREnumerated,KJUR.asn1.ASN1Object);KJUR.asn1.DERUTF8String=function(a){KJUR.asn1.DERUTF8String.superclass.constructor.call(this,a);this.hT=\"0c\"};extendClass(KJUR.asn1.DERUTF8String,KJUR.asn1.DERAbstractString);KJUR.asn1.DERNumericString=function(a){KJUR.asn1.DERNumericString.superclass.constructor.call(this,a);this.hT=\"12\"};extendClass(KJUR.asn1.DERNumericString,KJUR.asn1.DERAbstractString);KJUR.asn1.DERPrintableString=function(a){KJUR.asn1.DERPrintableString.superclass.constructor.call(this,a);this.hT=\"13\"};extendClass(KJUR.asn1.DERPrintableString,KJUR.asn1.DERAbstractString);KJUR.asn1.DERTeletexString=function(a){KJUR.asn1.DERTeletexString.superclass.constructor.call(this,a);this.hT=\"14\"};extendClass(KJUR.asn1.DERTeletexString,KJUR.asn1.DERAbstractString);KJUR.asn1.DERIA5String=function(a){KJUR.asn1.DERIA5String.superclass.constructor.call(this,a);this.hT=\"16\"};extendClass(KJUR.asn1.DERIA5String,KJUR.asn1.DERAbstractString);KJUR.asn1.DERVisibleString=function(a){KJUR.asn1.DERIA5String.superclass.constructor.call(this,a);this.hT=\"1a\"};extendClass(KJUR.asn1.DERVisibleString,KJUR.asn1.DERAbstractString);KJUR.asn1.DERBMPString=function(a){KJUR.asn1.DERBMPString.superclass.constructor.call(this,a);this.hT=\"1e\"};extendClass(KJUR.asn1.DERBMPString,KJUR.asn1.DERAbstractString);KJUR.asn1.DERUTCTime=function(a){KJUR.asn1.DERUTCTime.superclass.constructor.call(this,a);this.hT=\"17\";this.params=undefined;this.getFreshValueHex=function(){var d=this.params;if(this.params==undefined){d={date:new Date()}}if(typeof d==\"string\"){if(d.match(/^[0-9]{12}Z$/)||d.match(/^[0-9]{12}\\.[0-9]+Z$/)){this.hV=stohex(d)}else{throw new Error(\"malformed string for UTCTime: \"+d)}}else{if(d.str!=undefined){this.hV=stohex(d.str)}else{if(d.date==undefined&&d.millis==true){var c=new Date();this.hV=stohex(this.formatDate(c,\"utc\",true))}else{if(d.date!=undefined&&d.date instanceof Date){var b=(d.millis===true);this.hV=stohex(this.formatDate(d.date,\"utc\",b))}else{if(d instanceof Date){this.hV=stohex(this.formatDate(d,\"utc\"))}}}}}if(this.hV==undefined){throw new Error(\"parameter not specified properly for UTCTime\")}return this.hV};if(a!=undefined){this.setByParam(a)}};extendClass(KJUR.asn1.DERUTCTime,KJUR.asn1.DERAbstractTime);KJUR.asn1.DERGeneralizedTime=function(a){KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this,a);this.hT=\"18\";this.params=a;this.getFreshValueHex=function(){var d=this.params;if(this.params==undefined){d={date:new Date()}}if(typeof d==\"string\"){if(d.match(/^[0-9]{14}Z$/)||d.match(/^[0-9]{14}\\.[0-9]+Z$/)){this.hV=stohex(d)}else{throw new Error(\"malformed string for GeneralizedTime: \"+d)}}else{if(d.str!=undefined){this.hV=stohex(d.str)}else{if(d.date==undefined&&d.millis==true){var c=new Date();this.hV=stohex(this.formatDate(c,\"gen\",true))}else{if(d.date!=undefined&&d.date instanceof Date){var b=(d.millis===true);this.hV=stohex(this.formatDate(d.date,\"gen\",b))}else{if(d instanceof Date){this.hV=stohex(this.formatDate(d,\"gen\"))}}}}}if(this.hV==undefined){throw new Error(\"parameter not specified properly for GeneralizedTime\")}return this.hV};if(a!=undefined){this.setByParam(a)}};extendClass(KJUR.asn1.DERGeneralizedTime,KJUR.asn1.DERAbstractTime);KJUR.asn1.DERSequence=function(a){KJUR.asn1.DERSequence.superclass.constructor.call(this,a);this.hT=\"30\";this.getFreshValueHex=function(){var c=\"\";for(var b=0;b<this.asn1Array.length;b++){var d=this.asn1Array[b];c+=d.tohex()}this.hV=c;return this.hV}};extendClass(KJUR.asn1.DERSequence,KJUR.asn1.DERAbstractStructured);KJUR.asn1.DERSet=function(a){KJUR.asn1.DERSet.superclass.constructor.call(this,a);this.hT=\"31\";this.sortFlag=true;this.getFreshValueHex=function(){var b=new Array();for(var c=0;c<this.asn1Array.length;c++){var d=this.asn1Array[c];b.push(d.tohex())}if(this.sortFlag==true){b.sort()}this.hV=b.join(\"\");return this.hV};if(typeof a!=\"undefined\"){if(typeof a.sortflag!=\"undefined\"&&a.sortflag==false){this.sortFlag=false}}};extendClass(KJUR.asn1.DERSet,KJUR.asn1.DERAbstractStructured);KJUR.asn1.DERTaggedObject=function(f){KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);var d=KJUR.asn1,e=ASN1HEX,a=e.getV,c=e.isASN1HEX,b=d.ASN1Util.newObject;this.hT=\"a0\";this.hV=\"\";this.isExplicit=true;this.asn1Object=null;this.params={tag:\"a0\",explicit:true};this.setASN1Object=function(g,h,i){this.params={tag:h,explicit:g,obj:i}};this.getFreshValueHex=function(){var h=this.params;if(h.explicit==undefined){h.explicit=true}if(h.tage!=undefined){h.tag=h.tage;h.explicit=true}if(h.tagi!=undefined){h.tag=h.tagi;h.explicit=false}if(h.str!=undefined){this.hV=utf8tohex(h.str)}else{if(h.hex!=undefined){this.hV=h.hex}else{if(h.obj!=undefined){var g;if(h.obj instanceof d.ASN1Object){g=h.obj.tohex()}else{if(typeof h.obj==\"object\"){g=b(h.obj).tohex()}}if(h.explicit){this.hV=g}else{this.hV=a(g,0)}}else{throw new Error(\"str, hex nor obj not specified\")}}}if(h.tag==undefined){h.tag=\"a0\"}this.hT=h.tag;this.hTLV=null;this.isModified=true;return this.hV};this.setByParam=function(g){this.params=g};if(f!==undefined){this.setByParam(f)}};extendClass(KJUR.asn1.DERTaggedObject,KJUR.asn1.ASN1Object);\nvar ASN1HEX=new function(){};ASN1HEX.getLblen=function(c,a){if(c.substr(a+2,1)!=\"8\"){return 1}var b=parseInt(c.substr(a+3,1));if(b==0){return -1}if(0<b&&b<10){return b+1}return -2};ASN1HEX.getL=function(c,b){var a=ASN1HEX.getLblen(c,b);if(a<1){return\"\"}return c.substr(b+2,a*2)};ASN1HEX.getVblen=function(d,a){var c,b;c=ASN1HEX.getL(d,a);if(c==\"\"){return -1}if(c.substr(0,1)===\"8\"){b=new BigInteger(c.substr(2),16)}else{b=new BigInteger(c,16)}return b.intValue()};ASN1HEX.getVidx=function(c,b){var a=ASN1HEX.getLblen(c,b);if(a<0){return a}return b+(a+1)*2};ASN1HEX.getV=function(d,a){var c=ASN1HEX.getVidx(d,a);var b=ASN1HEX.getVblen(d,a);return d.substr(c,b*2)};ASN1HEX.getTLV=function(b,a){return b.substr(a,2)+ASN1HEX.getL(b,a)+ASN1HEX.getV(b,a)};ASN1HEX.getTLVblen=function(b,a){return 2+ASN1HEX.getLblen(b,a)*2+ASN1HEX.getVblen(b,a)*2};ASN1HEX.getNextSiblingIdx=function(d,a){var c=ASN1HEX.getVidx(d,a);var b=ASN1HEX.getVblen(d,a);return c+b*2};ASN1HEX.getChildIdx=function(e,k){var l=ASN1HEX;var j=[];var c,f,g;c=l.getVidx(e,k);f=l.getVblen(e,k)*2;if(e.substr(k,2)==\"03\"){c+=2;f-=2}g=0;var d=c;while(g<=f){var b=l.getTLVblen(e,d);g+=b;if(g<=f){j.push(d)}d+=b;if(g>=f){break}}return j};ASN1HEX.getNthChildIdx=function(d,b,e){var c=ASN1HEX.getChildIdx(d,b);return c[e]};ASN1HEX.getIdxbyList=function(e,d,c,i){var g=ASN1HEX;var f,b;if(c.length==0){if(i!==undefined){if(e.substr(d,2)!==i){return -1}}return d}f=c.shift();b=g.getChildIdx(e,d);if(f>=b.length){return -1}return g.getIdxbyList(e,b[f],c,i)};ASN1HEX.getIdxbyListEx=function(f,k,b,g){var m=ASN1HEX;var d,l;if(b.length==0){if(g!==undefined){if(f.substr(k,2)!==g){return -1}}return k}d=b.shift();l=m.getChildIdx(f,k);var j=0;for(var e=0;e<l.length;e++){var c=f.substr(l[e],2);if((typeof d==\"number\"&&(!m.isContextTag(c))&&j==d)||(typeof d==\"string\"&&m.isContextTag(c,d))){return m.getIdxbyListEx(f,l[e],b,g)}if(!m.isContextTag(c)){j++}}return -1};ASN1HEX.getTLVbyList=function(d,c,b,f){var e=ASN1HEX;var a=e.getIdxbyList(d,c,b,f);if(a==-1){return null}if(a>=d.length){return null}return e.getTLV(d,a)};ASN1HEX.getTLVbyListEx=function(d,c,b,f){var e=ASN1HEX;var a=e.getIdxbyListEx(d,c,b,f);if(a==-1){return null}return e.getTLV(d,a)};ASN1HEX.getVbyList=function(e,c,b,g,i){var f=ASN1HEX;var a,d;a=f.getIdxbyList(e,c,b,g);if(a==-1){return null}if(a>=e.length){return null}d=f.getV(e,a);if(i===true){d=d.substr(2)}return d};ASN1HEX.getVbyListEx=function(b,e,a,d,f){var j=ASN1HEX;var g,c,i;g=j.getIdxbyListEx(b,e,a,d);if(g==-1){return null}i=j.getV(b,g);if(b.substr(g,2)==\"03\"&&f!==false){i=i.substr(2)}return i};ASN1HEX.getInt=function(e,b,f){if(f==undefined){f=-1}try{var c=e.substr(b,2);if(c!=\"02\"&&c!=\"03\"){return f}var a=ASN1HEX.getV(e,b);if(c==\"02\"){return parseInt(a,16)}else{return bitstrtoint(a)}}catch(d){return f}};ASN1HEX.getOID=function(c,a,d){if(d==undefined){d=null}try{if(c.substr(a,2)!=\"06\"){return d}var e=ASN1HEX.getV(c,a);return hextooid(e)}catch(b){return d}};ASN1HEX.getOIDName=function(d,a,f){if(f==undefined){f=null}try{var e=ASN1HEX.getOID(d,a,f);if(e==f){return f}var b=KJUR.asn1.x509.OID.oid2name(e);if(b==\"\"){return e}return b}catch(c){return f}};ASN1HEX.getString=function(d,b,e){if(e==undefined){e=null}try{var a=ASN1HEX.getV(d,b);return hextorstr(a)}catch(c){return e}};ASN1HEX.hextooidstr=function(e){var h=function(b,a){if(b.length>=a){return b}return new Array(a-b.length+1).join(\"0\")+b};var l=[];var o=e.substr(0,2);var f=parseInt(o,16);l[0]=new String(Math.floor(f/40));l[1]=new String(f%40);var m=e.substr(2);var k=[];for(var g=0;g<m.length/2;g++){k.push(parseInt(m.substr(g*2,2),16))}var j=[];var d=\"\";for(var g=0;g<k.length;g++){if(k[g]&128){d=d+h((k[g]&127).toString(2),7)}else{d=d+h((k[g]&127).toString(2),7);j.push(new String(parseInt(d,2)));d=\"\"}}var n=l.join(\".\");if(j.length>0){n=n+\".\"+j.join(\".\")}return n};ASN1HEX.dump=function(t,c,l,g){var p=ASN1HEX;var j=p.getV;var y=p.dump;var w=p.getChildIdx;var e=t;if(t instanceof KJUR.asn1.ASN1Object){e=t.tohex()}var q=function(A,i){if(A.length<=i*2){return A}else{var v=A.substr(0,i)+\"..(total \"+A.length/2+\"bytes)..\"+A.substr(A.length-i,i);return v}};if(c===undefined){c={ommit_long_octet:32}}if(l===undefined){l=0}if(g===undefined){g=\"\"}var x=c.ommit_long_octet;var z=e.substr(l,2);if(z==\"01\"){var h=j(e,l);if(h==\"00\"){return g+\"BOOLEAN FALSE\\n\"}else{return g+\"BOOLEAN TRUE\\n\"}}if(z==\"02\"){var h=j(e,l);return g+\"INTEGER \"+q(h,x)+\"\\n\"}if(z==\"03\"){var h=j(e,l);if(p.isASN1HEX(h.substr(2))){var k=g+\"BITSTRING, encapsulates\\n\";k=k+y(h.substr(2),c,0,g+\" \");return k}else{return g+\"BITSTRING \"+q(h,x)+\"\\n\"}}if(z==\"04\"){var h=j(e,l);if(p.isASN1HEX(h)){var k=g+\"OCTETSTRING, encapsulates\\n\";k=k+y(h,c,0,g+\" \");return k}else{return g+\"OCTETSTRING \"+q(h,x)+\"\\n\"}}if(z==\"05\"){return g+\"NULL\\n\"}if(z==\"06\"){var m=j(e,l);var b=KJUR.asn1.ASN1Util.oidHexToInt(m);var o=KJUR.asn1.x509.OID.oid2name(b);var a=b.replace(/\\./g,\" \");if(o!=\"\"){return g+\"ObjectIdentifier \"+o+\" (\"+a+\")\\n\"}else{return g+\"ObjectIdentifier (\"+a+\")\\n\"}}if(z==\"0a\"){return g+\"ENUMERATED \"+parseInt(j(e,l))+\"\\n\"}if(z==\"0c\"){return g+\"UTF8String '\"+hextoutf8(j(e,l))+\"'\\n\"}if(z==\"13\"){return g+\"PrintableString '\"+hextoutf8(j(e,l))+\"'\\n\"}if(z==\"14\"){return g+\"TeletexString '\"+hextoutf8(j(e,l))+\"'\\n\"}if(z==\"16\"){return g+\"IA5String '\"+hextoutf8(j(e,l))+\"'\\n\"}if(z==\"17\"){return g+\"UTCTime \"+hextoutf8(j(e,l))+\"\\n\"}if(z==\"18\"){return g+\"GeneralizedTime \"+hextoutf8(j(e,l))+\"\\n\"}if(z==\"1a\"){return g+\"VisualString '\"+hextoutf8(j(e,l))+\"'\\n\"}if(z==\"1e\"){return g+\"BMPString '\"+ucs2hextoutf8(j(e,l))+\"'\\n\"}if(z==\"30\"){if(e.substr(l,4)==\"3000\"){return g+\"SEQUENCE {}\\n\"}var k=g+\"SEQUENCE\\n\";var d=w(e,l);var f=c;if((d.length==2||d.length==3)&&e.substr(d[0],2)==\"06\"&&e.substr(d[d.length-1],2)==\"04\"){var o=p.oidname(j(e,d[0]));var r=JSON.parse(JSON.stringify(c));r.x509ExtName=o;f=r}for(var u=0;u<d.length;u++){k=k+y(e,f,d[u],g+\" \")}return k}if(z==\"31\"){var k=g+\"SET\\n\";var d=w(e,l);for(var u=0;u<d.length;u++){k=k+y(e,c,d[u],g+\" \")}return k}var z=parseInt(z,16);if((z&128)!=0){var n=z&31;if((z&32)!=0){var k=g+\"[\"+n+\"]\\n\";var d=w(e,l);for(var u=0;u<d.length;u++){k=k+y(e,c,d[u],g+\" \")}return k}else{var h=j(e,l);if(ASN1HEX.isASN1HEX(h)){var k=g+\"[\"+n+\"]\\n\";k=k+y(h,c,0,g+\" \");return k}else{if(h.substr(0,8)==\"68747470\"){h=hextoutf8(h)}else{if(c.x509ExtName===\"subjectAltName\"&&n==2){h=hextoutf8(h)}}}var k=g+\"[\"+n+\"] \"+h+\"\\n\";return k}}return g+\"UNKNOWN(\"+z+\") \"+j(e,l)+\"\\n\"};ASN1HEX.parse=function(x){var t=ASN1HEX,f=t.parse,a=t.isASN1HEX,l=t.getV,b=t.getTLV,y=t.getChildIdx,i=KJUR.asn1,e=i.ASN1Util.oidHexToInt,B=i.x509.OID.oid2name,k=hextoutf8,n=ucs2hextoutf8,q=iso88591hextoutf8;var c={\"0c\":\"utf8str\",\"12\":\"numstr\",\"13\":\"prnstr\",\"14\":\"telstr\",\"16\":\"ia5str\",\"17\":\"utctime\",\"18\":\"gentime\",\"1a\":\"visstr\",\"1e\":\"bmpstr\",\"30\":\"seq\",\"31\":\"set\"};var u=function(H){var D=[];var E=y(H,0);for(var G=0;G<E.length;G++){var s=E[G];var d=b(H,s);var F=f(d);D.push(F)}return D};var C=x.substr(0,2);var j={};var p=l(x,0);if(C==\"01\"){if(x==\"0101ff\"){return{bool:true}}return{bool:false}}else{if(C==\"02\"){return{\"int\":{hex:p}}}else{if(C==\"03\"){try{if(p.substr(0,2)!=\"00\"){throw\"not encap\"}var v=p.substr(2);if(!a(v)){throw\"not encap\"}return{bitstr:{obj:f(v)}}}catch(z){var m=null;if(p.length<=10){m=bitstrtobinstr(p)}if(m==null){return{bitstr:{hex:p}}}else{return{bitstr:{bin:m}}}}}else{if(C==\"04\"){try{if(!a(p)){throw\"not encap\"}return{octstr:{obj:f(p)}}}catch(z){return{octstr:{hex:p}}}}else{if(C==\"05\"){return{\"null\":\"\"}}else{if(C==\"06\"){var g=e(p);var r=B(g);if(r==\"\"){return{oid:g}}else{return{oid:r}}}else{if(C==\"0a\"){if(p.length>4){return{\"enum\":{hex:p}}}else{return{\"enum\":parseInt(p,16)}}}else{if(C==\"30\"||C==\"31\"){j[c[C]]=u(x);return j}else{if(C==\"14\"){var o=q(p);j[c[C]]={str:o};return j}else{if(C==\"1e\"){var o=n(p);j[c[C]]={str:o};return j}else{if(\":0c:12:13:16:17:18:1a:\".indexOf(C)!=-1){var o=k(p);j[c[C]]={str:o};return j}else{if(C.match(/^8[0-9]$/)){var o=k(p);if(o==null|o==\"\"){return{tag:{tag:C,explicit:false,hex:p}}}else{if(o.match(/[\\x00-\\x1F\\x7F-\\x9F]/)!=null||o.match(/[\\u0000-\\u001F\\u0080–\\u009F]/)!=null){return{tag:{tag:C,explicit:false,hex:p}}}else{return{tag:{tag:C,explicit:false,str:o}}}}}else{if(C.match(/^a[0-9]$/)){try{if(!a(p)){throw new Error(\"not encap\")}return{tag:{tag:C,explicit:true,obj:f(p)}}}catch(z){return{tag:{tag:C,explicit:true,hex:p}}}}else{var A=new KJUR.asn1.ASN1Object();A.hV=p;var w=A.getLengthHexFromValue();return{asn1:{tlv:C+w+p}}}}}}}}}}}}}}}};ASN1HEX.isContextTag=function(c,b){c=c.toLowerCase();var f,e;try{f=parseInt(c,16)}catch(d){return -1}if(b===undefined){if((f&192)==128){return true}else{return false}}try{var a=b.match(/^\\[[0-9]+\\]$/);if(a==null){return false}e=parseInt(b.substr(1,b.length-1),10);if(e>31){return false}if(((f&192)==128)&&((f&31)==e)){return true}return false}catch(d){return false}};ASN1HEX.isASN1HEX=function(e){var d=ASN1HEX;if(e.length%2==1){return false}var c=d.getVblen(e,0);var b=e.substr(0,2);var f=d.getL(e,0);var a=e.length-b.length-f.length;if(a==c*2){return true}return false};ASN1HEX.checkStrictDER=function(g,o,d,c,r){var s=ASN1HEX;if(d===undefined){if(typeof g!=\"string\"){throw new Error(\"not hex string\")}g=g.toLowerCase();if(!KJUR.lang.String.isHex(g)){throw new Error(\"not hex string\")}d=g.length;c=g.length/2;if(c<128){r=1}else{r=Math.ceil(c.toString(16))+1}}var k=s.getL(g,o);if(k.length>r*2){throw new Error(\"L of TLV too long: idx=\"+o)}var n=s.getVblen(g,o);if(n>c){throw new Error(\"value of L too long than hex: idx=\"+o)}var q=s.getTLV(g,o);var f=q.length-2-s.getL(g,o).length;if(f!==(n*2)){throw new Error(\"V string length and L's value not the same:\"+f+\"/\"+(n*2))}if(o===0){if(g.length!=q.length){throw new Error(\"total length and TLV length unmatch:\"+g.length+\"!=\"+q.length)}}var b=g.substr(o,2);if(b===\"02\"){var a=s.getVidx(g,o);if(g.substr(a,2)==\"00\"&&g.charCodeAt(a+2)<56){throw new Error(\"not least zeros for DER INTEGER\")}}if(parseInt(b,16)&32){var p=s.getVblen(g,o);var m=0;var l=s.getChildIdx(g,o);for(var e=0;e<l.length;e++){var j=s.getTLV(g,l[e]);m+=j.length;s.checkStrictDER(g,l[e],d,c,r)}if((p*2)!=m){throw new Error(\"sum of children's TLV length and L unmatch: \"+(p*2)+\"!=\"+m)}}};ASN1HEX.oidname=function(a){var c=KJUR.asn1;if(KJUR.lang.String.isHex(a)){a=c.ASN1Util.oidHexToInt(a)}var b=c.x509.OID.oid2name(a);if(b===\"\"){b=a}return b};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.asn1==\"undefined\"||!KJUR.asn1){KJUR.asn1={}}if(typeof KJUR.asn1.x509==\"undefined\"||!KJUR.asn1.x509){KJUR.asn1.x509={}}KJUR.asn1.x509.Certificate=function(h){KJUR.asn1.x509.Certificate.superclass.constructor.call(this);var d=KJUR,c=d.asn1,f=c.DERBitString,b=c.DERSequence,g=c.x509,a=g.TBSCertificate,e=g.AlgorithmIdentifier;this.params=undefined;this.setByParam=function(i){this.params=i};this.sign=function(){var l=this.params;var k=l.sigalg;if(l.sigalg.name!=undefined){k=l.sigalg.name}var i=l.tbsobj.tohex();var j=new KJUR.crypto.Signature({alg:k});j.init(l.cakey);j.updateHex(i);l.sighex=j.sign()};this.getPEM=function(){return hextopem(this.tohex(),\"CERTIFICATE\")};this.tohex=function(){var k=this.params;if(k.tbsobj==undefined||k.tbsobj==null){k.tbsobj=new a(k)}if(k.sighex==undefined&&k.cakey!=undefined){this.sign()}if(k.sighex==undefined){throw new Error(\"sighex or cakey parameter not defined\")}var i=[];i.push(k.tbsobj);i.push(new e({name:k.sigalg}));i.push(new f({hex:\"00\"+k.sighex}));var j=new b({array:i});return j.tohex()};this.getEncodedHex=function(){return this.tohex()};if(h!=undefined){this.params=h}};extendClass(KJUR.asn1.x509.Certificate,KJUR.asn1.ASN1Object);KJUR.asn1.x509.TBSCertificate=function(f){KJUR.asn1.x509.TBSCertificate.superclass.constructor.call(this);var b=KJUR,i=b.asn1,d=i.x509,c=i.DERTaggedObject,h=i.DERInteger,g=i.DERSequence,l=d.AlgorithmIdentifier,e=d.Time,a=d.X500Name,j=d.Extensions,k=d.SubjectPublicKeyInfo;this.params=null;this.setByParam=function(m){this.params=m};this.tohex=function(){var n=[];var q=this.params;if(q.version!=undefined||q.version!=1){var m=2;if(q.version!=undefined){m=q.version-1}var p=new c({obj:new h({\"int\":m})});n.push(p)}n.push(new h(q.serial));n.push(new l({name:q.sigalg}));n.push(new a(q.issuer));n.push(new g({array:[new e(q.notbefore),new e(q.notafter)]}));n.push(new a(q.subject));n.push(new k(KEYUTIL.getKey(q.sbjpubkey)));if(q.ext!==undefined&&q.ext.length>0){n.push(new c({tag:\"a3\",obj:new j(q.ext)}))}var o=new KJUR.asn1.DERSequence({array:n});return o.tohex()};this.getEncodedHex=function(){return this.tohex()};if(f!==undefined){this.setByParam(f)}};extendClass(KJUR.asn1.x509.TBSCertificate,KJUR.asn1.ASN1Object);KJUR.asn1.x509.Extensions=function(d){KJUR.asn1.x509.Extensions.superclass.constructor.call(this);var c=KJUR,b=c.asn1,a=b.DERSequence,e=b.x509;this.aParam=[];this.setByParam=function(f){this.aParam=f};this.tohex=function(){var f=[];for(var h=0;h<this.aParam.length;h++){var l=this.aParam[h];var k=l.extname;var j=null;if(l.extn!=undefined){j=new e.PrivateExtension(l)}else{if(k==\"subjectKeyIdentifier\"){j=new e.SubjectKeyIdentifier(l)}else{if(k==\"keyUsage\"){j=new e.KeyUsage(l)}else{if(k==\"subjectAltName\"){j=new e.SubjectAltName(l)}else{if(k==\"issuerAltName\"){j=new e.IssuerAltName(l)}else{if(k==\"basicConstraints\"){j=new e.BasicConstraints(l)}else{if(k==\"nameConstraints\"){j=new e.NameConstraints(l)}else{if(k==\"cRLDistributionPoints\"){j=new e.CRLDistributionPoints(l)}else{if(k==\"certificatePolicies\"){j=new e.CertificatePolicies(l)}else{if(k==\"policyMappings\"){j=new e.PolicyMappings(l)}else{if(k==\"policyConstraints\"){j=new e.PolicyConstraints(l)}else{if(k==\"inhibitAnyPolicy\"){j=new e.InhibitAnyPolicy(l)}else{if(k==\"authorityKeyIdentifier\"){j=new e.AuthorityKeyIdentifier(l)}else{if(k==\"extKeyUsage\"){j=new e.ExtKeyUsage(l)}else{if(k==\"authorityInfoAccess\"){j=new e.AuthorityInfoAccess(l)}else{if(k==\"cRLNumber\"){j=new e.CRLNumber(l)}else{if(k==\"cRLReason\"){j=new e.CRLReason(l)}else{if(k==\"ocspNonce\"){j=new e.OCSPNonce(l)}else{if(k==\"ocspNoCheck\"){j=new e.OCSPNoCheck(l)}else{if(k==\"adobeTimeStamp\"){j=new e.AdobeTimeStamp(l)}else{if(k==\"subjectDirectoryAttributes\"){j=new e.SubjectDirectoryAttributes(l)}else{throw new Error(\"extension not supported:\"+JSON.stringify(l))}}}}}}}}}}}}}}}}}}}}}if(j!=null){f.push(j)}}var g=new a({array:f});return g.tohex()};this.getEncodedHex=function(){return this.tohex()};if(d!=undefined){this.setByParam(d)}};extendClass(KJUR.asn1.x509.Extensions,KJUR.asn1.ASN1Object);KJUR.asn1.x509.Extension=function(d){KJUR.asn1.x509.Extension.superclass.constructor.call(this);var f=null,a=KJUR,e=a.asn1,h=e.DERObjectIdentifier,i=e.DEROctetString,b=e.DERBitString,g=e.DERBoolean,c=e.DERSequence;this.tohex=function(){var m=new h({oid:this.oid});var l=new i({hex:this.getExtnValueHex()});var k=new Array();k.push(m);if(this.critical){k.push(new g())}k.push(l);var j=new c({array:k});return j.tohex()};this.getEncodedHex=function(){return this.tohex()};this.critical=false;if(d!==undefined){if(d.critical!==undefined){this.critical=d.critical}}};extendClass(KJUR.asn1.x509.Extension,KJUR.asn1.ASN1Object);KJUR.asn1.x509.KeyUsage=function(c){KJUR.asn1.x509.KeyUsage.superclass.constructor.call(this,c);var b=Error;var a={digitalSignature:0,nonRepudiation:1,keyEncipherment:2,dataEncipherment:3,keyAgreement:4,keyCertSign:5,cRLSign:6,encipherOnly:7,decipherOnly:8};this.getExtnValueHex=function(){var d=this.getBinValue();this.asn1ExtnValue=new KJUR.asn1.DERBitString({bin:d});return this.asn1ExtnValue.tohex()};this.getBinValue=function(){var d=this.params;if(typeof d!=\"object\"||(typeof d.names!=\"object\"&&typeof d.bin!=\"string\")){throw new b(\"parameter not yet set\")}if(d.names!=undefined){return namearraytobinstr(d.names,a)}else{if(d.bin!=undefined){return d.bin}else{throw new b(\"parameter not set properly\")}}};this.oid=\"2.5.29.15\";if(c!==undefined){this.params=c}};extendClass(KJUR.asn1.x509.KeyUsage,KJUR.asn1.x509.Extension);KJUR.asn1.x509.BasicConstraints=function(g){KJUR.asn1.x509.BasicConstraints.superclass.constructor.call(this,g);var c=KJUR.asn1,e=c.DERBoolean,f=c.DERInteger,b=c.DERSequence;var a=false;var d=-1;this.getExtnValueHex=function(){var i=new Array();if(this.cA){i.push(new e())}if(this.pathLen>-1){i.push(new f({\"int\":this.pathLen}))}var h=new b({array:i});this.asn1ExtnValue=h;return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.19\";this.cA=false;this.pathLen=-1;if(g!==undefined){if(g.cA!==undefined){this.cA=g.cA}if(g.pathLen!==undefined){this.pathLen=g.pathLen}}};extendClass(KJUR.asn1.x509.BasicConstraints,KJUR.asn1.x509.Extension);KJUR.asn1.x509.CRLDistributionPoints=function(d){KJUR.asn1.x509.CRLDistributionPoints.superclass.constructor.call(this,d);var b=KJUR,a=b.asn1,c=a.x509;this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()};this.setByDPArray=function(e){var f=[];for(var g=0;g<e.length;g++){if(e[g] instanceof KJUR.asn1.ASN1Object){f.push(e[g])}else{var h=new c.DistributionPoint(e[g]);f.push(h)}}this.asn1ExtnValue=new a.DERSequence({array:f})};this.setByOneURI=function(f){var e=new c.DistributionPoint({fulluri:f});this.setByDPArray([e])};this.oid=\"2.5.29.31\";if(d!==undefined){if(d.array!==undefined){this.setByDPArray(d.array)}else{if(d.uri!==undefined){this.setByOneURI(d.uri)}}}};extendClass(KJUR.asn1.x509.CRLDistributionPoints,KJUR.asn1.x509.Extension);KJUR.asn1.x509.DistributionPoint=function(e){KJUR.asn1.x509.DistributionPoint.superclass.constructor.call(this);var a=null,c=KJUR,b=c.asn1,d=b.x509.DistributionPointName;this.tohex=function(){var f=new b.DERSequence();if(this.asn1DP!=null){var g=new b.DERTaggedObject({explicit:true,tag:\"a0\",obj:this.asn1DP});f.appendASN1Object(g)}this.hTLV=f.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){if(e.dpobj!==undefined){this.asn1DP=e.dpobj}else{if(e.dpname!==undefined){this.asn1DP=new d(e.dpname)}else{if(e.fulluri!==undefined){this.asn1DP=new d({full:[{uri:e.fulluri}]})}}}}};extendClass(KJUR.asn1.x509.DistributionPoint,KJUR.asn1.ASN1Object);KJUR.asn1.x509.DistributionPointName=function(h){KJUR.asn1.x509.DistributionPointName.superclass.constructor.call(this);var g=null,d=null,a=null,f=null,c=KJUR,b=c.asn1,e=b.DERTaggedObject;this.tohex=function(){if(this.type!=\"full\"){throw new Error(\"currently type shall be 'full': \"+this.type)}this.asn1Obj=new e({explicit:false,tag:this.tag,obj:this.asn1V});this.hTLV=this.asn1Obj.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(h!==undefined){if(b.x509.GeneralNames.prototype.isPrototypeOf(h)){this.type=\"full\";this.tag=\"a0\";this.asn1V=h}else{if(h.full!==undefined){this.type=\"full\";this.tag=\"a0\";this.asn1V=new b.x509.GeneralNames(h.full)}else{throw new Error(\"This class supports GeneralNames only as argument\")}}}};extendClass(KJUR.asn1.x509.DistributionPointName,KJUR.asn1.ASN1Object);KJUR.asn1.x509.CertificatePolicies=function(f){KJUR.asn1.x509.CertificatePolicies.superclass.constructor.call(this,f);var c=KJUR,b=c.asn1,e=b.x509,a=b.DERSequence,d=e.PolicyInformation;this.params=null;this.getExtnValueHex=function(){var j=[];for(var h=0;h<this.params.array.length;h++){j.push(new d(this.params.array[h]))}var g=new a({array:j});this.asn1ExtnValue=g;return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.32\";if(f!==undefined){this.params=f}};extendClass(KJUR.asn1.x509.CertificatePolicies,KJUR.asn1.x509.Extension);KJUR.asn1.x509.PolicyInformation=function(d){KJUR.asn1.x509.PolicyInformation.superclass.constructor.call(this,d);var c=KJUR.asn1,b=c.DERSequence,e=c.DERObjectIdentifier,a=c.x509.PolicyQualifierInfo;this.params=null;this.tohex=function(){if(this.params.policyoid===undefined&&this.params.array===undefined){throw new Error(\"parameter oid and array missing\")}var f=[new e(this.params.policyoid)];if(this.params.array!==undefined){var j=[];for(var h=0;h<this.params.array.length;h++){j.push(new a(this.params.array[h]))}if(j.length>0){f.push(new b({array:j}))}}var g=new b({array:f});return g.tohex()};this.getEncodedHex=function(){return this.tohex()};if(d!==undefined){this.params=d}};extendClass(KJUR.asn1.x509.PolicyInformation,KJUR.asn1.ASN1Object);KJUR.asn1.x509.PolicyQualifierInfo=function(e){KJUR.asn1.x509.PolicyQualifierInfo.superclass.constructor.call(this,e);var c=KJUR.asn1,b=c.DERSequence,d=c.DERIA5String,f=c.DERObjectIdentifier,a=c.x509.UserNotice;this.params=null;this.tohex=function(){if(this.params.cps!==undefined){var g=new b({array:[new f({oid:\"1.3.6.1.5.5.7.2.1\"}),new d({str:this.params.cps})]});return g.tohex()}if(this.params.unotice!=undefined){var g=new b({array:[new f({oid:\"1.3.6.1.5.5.7.2.2\"}),new a(this.params.unotice)]});return g.tohex()}};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){this.params=e}};extendClass(KJUR.asn1.x509.PolicyQualifierInfo,KJUR.asn1.ASN1Object);KJUR.asn1.x509.UserNotice=function(e){KJUR.asn1.x509.UserNotice.superclass.constructor.call(this,e);var a=KJUR.asn1.DERSequence,d=KJUR.asn1.DERInteger,c=KJUR.asn1.x509.DisplayText,b=KJUR.asn1.x509.NoticeReference;this.params=null;this.tohex=function(){var f=[];if(this.params.noticeref!==undefined){f.push(new b(this.params.noticeref))}if(this.params.exptext!==undefined){f.push(new c(this.params.exptext))}var g=new a({array:f});return g.tohex()};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){this.params=e}};extendClass(KJUR.asn1.x509.UserNotice,KJUR.asn1.ASN1Object);KJUR.asn1.x509.NoticeReference=function(d){KJUR.asn1.x509.NoticeReference.superclass.constructor.call(this,d);var a=KJUR.asn1.DERSequence,c=KJUR.asn1.DERInteger,b=KJUR.asn1.x509.DisplayText;this.params=null;this.tohex=function(){var f=[];if(this.params.org!==undefined){f.push(new b(this.params.org))}if(this.params.noticenum!==undefined){var h=[];var e=this.params.noticenum;for(var j=0;j<e.length;j++){h.push(new c(e[j]))}f.push(new a({array:h}))}if(f.length==0){throw new Error(\"parameter is empty\")}var g=new a({array:f});return g.tohex()};this.getEncodedHex=function(){return this.tohex()};if(d!==undefined){this.params=d}};extendClass(KJUR.asn1.x509.NoticeReference,KJUR.asn1.ASN1Object);KJUR.asn1.x509.DisplayText=function(a){KJUR.asn1.x509.DisplayText.superclass.constructor.call(this,a);this.hT=\"0c\";if(a!==undefined){if(a.type===\"ia5\"){this.hT=\"16\"}else{if(a.type===\"vis\"){this.hT=\"1a\"}else{if(a.type===\"bmp\"){this.hT=\"1e\"}}}}};extendClass(KJUR.asn1.x509.DisplayText,KJUR.asn1.DERAbstractString);KJUR.asn1.x509.PolicyMappings=function(e){KJUR.asn1.x509.PolicyMappings.superclass.constructor.call(this,e);var c=KJUR,b=c.asn1,d=b.x509,a=b.ASN1Util.newObject;this.params=null;this.getExtnValueHex=function(){var j=this.params;var f=[];for(var g=0;g<j.array.length;g++){var h=j.array[g];f.push({seq:[{oid:h[0]},{oid:h[1]}]})}this.asn1ExtnValue=a({seq:f});return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.33\";if(e!==undefined){this.params=e}};extendClass(KJUR.asn1.x509.PolicyMappings,KJUR.asn1.x509.Extension);KJUR.asn1.x509.PolicyConstraints=function(e){KJUR.asn1.x509.PolicyConstraints.superclass.constructor.call(this,e);var c=KJUR,b=c.asn1,d=b.x509,a=b.ASN1Util.newObject;this.params=null;this.getExtnValueHex=function(){var g=this.params;var f=[];if(g.reqexp!=undefined){f.push({tag:{tagi:\"80\",obj:{\"int\":g.reqexp}}})}if(g.inhibit!=undefined){f.push({tag:{tagi:\"81\",obj:{\"int\":g.inhibit}}})}this.asn1ExtnValue=a({seq:f});return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.36\";if(e!==undefined){this.params=e}};extendClass(KJUR.asn1.x509.PolicyConstraints,KJUR.asn1.x509.Extension);KJUR.asn1.x509.InhibitAnyPolicy=function(e){KJUR.asn1.x509.InhibitAnyPolicy.superclass.constructor.call(this,e);var c=KJUR,b=c.asn1,d=b.x509,a=b.ASN1Util.newObject;this.params=null;this.getExtnValueHex=function(){this.asn1ExtnValue=a({\"int\":this.params.skip});return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.54\";if(e!==undefined){this.params=e}};extendClass(KJUR.asn1.x509.InhibitAnyPolicy,KJUR.asn1.x509.Extension);KJUR.asn1.x509.NameConstraints=function(f){KJUR.asn1.x509.NameConstraints.superclass.constructor.call(this,f);var c=KJUR,b=c.asn1,e=b.x509,a=b.ASN1Util.newObject,d=e.GeneralSubtree;this.params=null;this.getExtnValueHex=function(){var l=this.params;var g=[];if(l.permit!=undefined&&l.permit.length!=undefined){var k=[];for(var h=0;h<l.permit.length;h++){k.push(new d(l.permit[h]))}g.push({tag:{tagi:\"a0\",obj:{seq:k}}})}if(l.exclude!=undefined&&l.exclude.length!=undefined){var j=[];for(var h=0;h<l.exclude.length;h++){j.push(new d(l.exclude[h]))}g.push({tag:{tagi:\"a1\",obj:{seq:j}}})}this.asn1ExtnValue=a({seq:g});return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.30\";if(f!==undefined){this.params=f}};extendClass(KJUR.asn1.x509.NameConstraints,KJUR.asn1.x509.Extension);KJUR.asn1.x509.GeneralSubtree=function(e){KJUR.asn1.x509.GeneralSubtree.superclass.constructor.call(this);var b=KJUR.asn1,d=b.x509,c=d.GeneralName,a=b.ASN1Util.newObject;this.params=null;this.setByParam=function(f){this.params=f};this.tohex=function(){var h=this.params;var f=[new c(h)];if(h.min!=undefined){f.push({tag:{tagi:\"80\",obj:{\"int\":h.min}}})}if(h.max!=undefined){f.push({tag:{tagi:\"81\",obj:{\"int\":h.max}}})}var g=a({seq:f});return g.tohex()};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){this.setByParam(e)}};extendClass(KJUR.asn1.x509.GeneralSubtree,KJUR.asn1.ASN1Object);KJUR.asn1.x509.ExtKeyUsage=function(c){KJUR.asn1.x509.ExtKeyUsage.superclass.constructor.call(this,c);var b=KJUR,a=b.asn1;this.setPurposeArray=function(d){this.asn1ExtnValue=new a.DERSequence();for(var e=0;e<d.length;e++){var f=new a.DERObjectIdentifier(d[e]);this.asn1ExtnValue.appendASN1Object(f)}};this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.37\";if(c!==undefined){if(c.array!==undefined){this.setPurposeArray(c.array)}}};extendClass(KJUR.asn1.x509.ExtKeyUsage,KJUR.asn1.x509.Extension);KJUR.asn1.x509.AuthorityKeyIdentifier=function(f){KJUR.asn1.x509.AuthorityKeyIdentifier.superclass.constructor.call(this,f);var b=KJUR,a=b.asn1,d=a.DERTaggedObject,e=a.x509.GeneralNames,c=b.crypto.Util.isKey;this.asn1KID=null;this.asn1CertIssuer=null;this.asn1CertSN=null;this.getExtnValueHex=function(){var h=new Array();if(this.asn1KID){h.push(new d({explicit:false,tag:\"80\",obj:this.asn1KID}))}if(this.asn1CertIssuer){h.push(new d({explicit:false,tag:\"a1\",obj:new e([{dn:this.asn1CertIssuer}])}))}if(this.asn1CertSN){h.push(new d({explicit:false,tag:\"82\",obj:this.asn1CertSN}))}var g=new a.DERSequence({array:h});this.asn1ExtnValue=g;return this.asn1ExtnValue.tohex()};this.setKIDByParam=function(i){if(i.str!==undefined||i.hex!==undefined){this.asn1KID=new KJUR.asn1.DEROctetString(i)}else{if((typeof i===\"object\"&&KJUR.crypto.Util.isKey(i))||(typeof i===\"string\"&&i.indexOf(\"BEGIN \")!=-1)){var h=i;if(typeof i===\"string\"){h=KEYUTIL.getKey(i)}var g=KEYUTIL.getKeyID(h);this.asn1KID=new KJUR.asn1.DEROctetString({hex:g})}}};this.setCertIssuerByParam=function(g){if(g.str!==undefined||g.ldapstr!==undefined||g.hex!==undefined||g.certsubject!==undefined||g.certissuer!==undefined){this.asn1CertIssuer=new KJUR.asn1.x509.X500Name(g)}else{if(typeof g===\"string\"&&g.indexOf(\"BEGIN \")!=-1&&g.indexOf(\"CERTIFICATE\")!=-1){this.asn1CertIssuer=new KJUR.asn1.x509.X500Name({certissuer:g})}}};this.setCertSNByParam=function(i){if(i.str!==undefined||i.bigint!==undefined||i.hex!==undefined){this.asn1CertSN=new KJUR.asn1.DERInteger(i)}else{if(typeof i===\"string\"&&i.indexOf(\"BEGIN \")!=-1&&i.indexOf(\"CERTIFICATE\")){var g=new X509();g.readCertPEM(i);var h=g.getSerialNumberHex();this.asn1CertSN=new KJUR.asn1.DERInteger({hex:h})}}};this.oid=\"2.5.29.35\";if(f!==undefined){if(f.kid!==undefined){this.setKIDByParam(f.kid)}if(f.issuer!==undefined){this.setCertIssuerByParam(f.issuer)}if(f.sn!==undefined){this.setCertSNByParam(f.sn)}if(f.issuersn!==undefined&&typeof f.issuersn===\"string\"&&f.issuersn.indexOf(\"BEGIN \")!=-1&&f.issuersn.indexOf(\"CERTIFICATE\")){this.setCertSNByParam(f.issuersn);this.setCertIssuerByParam(f.issuersn)}}};extendClass(KJUR.asn1.x509.AuthorityKeyIdentifier,KJUR.asn1.x509.Extension);KJUR.asn1.x509.SubjectKeyIdentifier=function(d){KJUR.asn1.x509.SubjectKeyIdentifier.superclass.constructor.call(this,d);var b=KJUR,a=b.asn1,c=a.DEROctetString;this.asn1KID=null;this.getExtnValueHex=function(){this.asn1ExtnValue=this.asn1KID;return this.asn1ExtnValue.tohex()};this.setKIDByParam=function(g){if(g.str!==undefined||g.hex!==undefined){this.asn1KID=new c(g)}else{if((typeof g===\"object\"&&KJUR.crypto.Util.isKey(g))||(typeof g===\"string\"&&g.indexOf(\"BEGIN\")!=-1)){var f=g;if(typeof g===\"string\"){f=KEYUTIL.getKey(g)}var e=KEYUTIL.getKeyID(f);this.asn1KID=new KJUR.asn1.DEROctetString({hex:e})}}};this.oid=\"2.5.29.14\";if(d!==undefined){if(d.kid!==undefined){this.setKIDByParam(d.kid)}}};extendClass(KJUR.asn1.x509.SubjectKeyIdentifier,KJUR.asn1.x509.Extension);KJUR.asn1.x509.AuthorityInfoAccess=function(a){KJUR.asn1.x509.AuthorityInfoAccess.superclass.constructor.call(this,a);this.setAccessDescriptionArray=function(k){var d=new Array(),b=KJUR,g=b.asn1,c=g.DERSequence,j=g.DERObjectIdentifier,l=g.x509.GeneralName;for(var f=0;f<k.length;f++){var e;var h=k[f];if(h.ocsp!==undefined){e=new c({array:[new j({oid:\"1.3.6.1.5.5.7.48.1\"}),new l({uri:h.ocsp})]})}else{if(h.caissuer!==undefined){e=new c({array:[new j({oid:\"1.3.6.1.5.5.7.48.2\"}),new l({uri:h.caissuer})]})}else{throw new Error(\"unknown AccessMethod parameter: \"+JSON.stringify(h))}}d.push(e)}this.asn1ExtnValue=new c({array:d})};this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()};this.oid=\"1.3.6.1.5.5.7.1.1\";if(a!==undefined){if(a.array!==undefined){this.setAccessDescriptionArray(a.array)}}};extendClass(KJUR.asn1.x509.AuthorityInfoAccess,KJUR.asn1.x509.Extension);KJUR.asn1.x509.SubjectAltName=function(a){KJUR.asn1.x509.SubjectAltName.superclass.constructor.call(this,a);this.setNameArray=function(b){this.asn1ExtnValue=new KJUR.asn1.x509.GeneralNames(b)};this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.17\";if(a!==undefined){if(a.array!==undefined){this.setNameArray(a.array)}}};extendClass(KJUR.asn1.x509.SubjectAltName,KJUR.asn1.x509.Extension);KJUR.asn1.x509.IssuerAltName=function(a){KJUR.asn1.x509.IssuerAltName.superclass.constructor.call(this,a);this.setNameArray=function(b){this.asn1ExtnValue=new KJUR.asn1.x509.GeneralNames(b)};this.getExtnValueHex=function(){return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.18\";if(a!==undefined){if(a.array!==undefined){this.setNameArray(a.array)}}};extendClass(KJUR.asn1.x509.IssuerAltName,KJUR.asn1.x509.Extension);KJUR.asn1.x509.SubjectDirectoryAttributes=function(e){KJUR.asn1.x509.SubjectDirectoryAttributes.superclass.constructor.call(this,e);var c=KJUR.asn1,a=c.DERSequence,b=c.ASN1Util.newObject,d=c.x509.OID.name2oid;this.params=null;this.getExtnValueHex=function(){var f=[];for(var j=0;j<this.params.array.length;j++){var l=this.params.array[j];if(l.attr!=undefined&&l.array!=undefined){var k={seq:[{oid:l.attr},{set:l.array}]};f.push(b(k));continue}var h={seq:[{oid:\"1.2.3.4\"},{set:[{utf8str:\"DE\"}]}]};if(l.attr==\"dateOfBirth\"){h.seq[0].oid=d(l.attr);h.seq[1].set[0]={gentime:l.str}}else{if(l.attr==\"placeOfBirth\"){h.seq[0].oid=d(l.attr);h.seq[1].set[0]={utf8str:l.str}}else{if(l.attr==\"gender\"){h.seq[0].oid=d(l.attr);h.seq[1].set[0]={prnstr:l.str}}else{if(l.attr==\"countryOfCitizenship\"){h.seq[0].oid=d(l.attr);h.seq[1].set[0]={prnstr:l.str}}else{if(l.attr==\"countryOfResidence\"){h.seq[0].oid=d(l.attr);h.seq[1].set[0]={prnstr:l.str}}else{throw new Error(\"unsupported attribute: \"+l.attr)}}}}}f.push(new b(h))}var g=new a({array:f});this.asn1ExtnValue=g;return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.9\";if(e!==undefined){this.params=e}};extendClass(KJUR.asn1.x509.SubjectDirectoryAttributes,KJUR.asn1.x509.Extension);KJUR.asn1.x509.PrivateExtension=function(f){KJUR.asn1.x509.PrivateExtension.superclass.constructor.call(this,f);var c=KJUR,e=c.lang.String.isHex,b=c.asn1,d=b.x509.OID.name2oid,a=b.ASN1Util.newObject;this.params=null;this.setByParam=function(g){this.oid=d(g.extname);this.params=g};this.getExtnValueHex=function(){if(this.params.extname==undefined||this.params.extn==undefined){throw new Error(\"extname or extnhex not specified\")}var h=this.params.extn;if(typeof h==\"string\"&&e(h)){return h}else{if(typeof h==\"object\"){try{return a(h).tohex()}catch(g){}}}throw new Error(\"unsupported extn value\")};if(f!=undefined){this.setByParam(f)}};extendClass(KJUR.asn1.x509.PrivateExtension,KJUR.asn1.x509.Extension);KJUR.asn1.x509.CRL=function(g){KJUR.asn1.x509.CRL.superclass.constructor.call(this);var c=KJUR,b=c.asn1,a=b.DERSequence,e=b.DERBitString,f=b.x509,d=f.AlgorithmIdentifier,h=f.TBSCertList;this.params=undefined;this.setByParam=function(i){this.params=i};this.sign=function(){var j=(new h(this.params)).tohex();var k=new KJUR.crypto.Signature({alg:this.params.sigalg});k.init(this.params.cakey);k.updateHex(j);var i=k.sign();this.params.sighex=i};this.getPEM=function(){return hextopem(this.tohex(),\"X509 CRL\")};this.tohex=function(){var k=this.params;if(k.tbsobj==undefined){k.tbsobj=new h(k)}if(k.sighex==undefined&&k.cakey!=undefined){this.sign()}if(k.sighex==undefined){throw new Error(\"sighex or cakey parameter not defined\")}var i=[];i.push(k.tbsobj);i.push(new d({name:k.sigalg}));i.push(new e({hex:\"00\"+k.sighex}));var j=new a({array:i});return j.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!=undefined){this.params=g}};extendClass(KJUR.asn1.x509.CRL,KJUR.asn1.ASN1Object);KJUR.asn1.x509.TBSCertList=function(f){KJUR.asn1.x509.TBSCertList.superclass.constructor.call(this);var b=KJUR,i=b.asn1,h=i.DERInteger,g=i.DERSequence,c=i.DERTaggedObject,k=i.DERObjectIdentifier,d=i.x509,l=d.AlgorithmIdentifier,e=d.Time,j=d.Extensions,a=d.X500Name;this.params=null;this.setByParam=function(m){this.params=m};this.getRevCertSequence=function(){var m=[];var n=this.params.revcert;for(var o=0;o<n.length;o++){var p=[new h(n[o].sn),new e(n[o].date)];if(n[o].ext!=undefined){p.push(new j(n[o].ext))}m.push(new g({array:p}))}return new g({array:m})};this.tohex=function(){var n=[];var r=this.params;if(r.version!=undefined){var m=r.version-1;var p=new h({\"int\":m});n.push(p)}n.push(new l({name:r.sigalg}));n.push(new a(r.issuer));n.push(new e(r.thisupdate));if(r.nextupdate!=undefined){n.push(new e(r.nextupdate))}if(r.revcert!=undefined){n.push(this.getRevCertSequence())}if(r.ext!=undefined){var q=new j(r.ext);n.push(new c({tag:\"a0\",explicit:true,obj:q}))}var o=new g({array:n});return o.tohex()};this.getEncodedHex=function(){return this.tohex()};if(f!==undefined){this.setByParam(f)}};extendClass(KJUR.asn1.x509.TBSCertList,KJUR.asn1.ASN1Object);KJUR.asn1.x509.CRLEntry=function(e){KJUR.asn1.x509.CRLEntry.superclass.constructor.call(this);var d=null,c=null,b=KJUR,a=b.asn1;this.setCertSerial=function(f){this.sn=new a.DERInteger(f)};this.setRevocationDate=function(f){this.time=new a.x509.Time(f)};this.tohex=function(){var f=new a.DERSequence({array:[this.sn,this.time]});this.TLV=f.tohex();return this.TLV};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){if(e.time!==undefined){this.setRevocationDate(e.time)}if(e.sn!==undefined){this.setCertSerial(e.sn)}}};extendClass(KJUR.asn1.x509.CRLEntry,KJUR.asn1.ASN1Object);KJUR.asn1.x509.CRLNumber=function(a){KJUR.asn1.x509.CRLNumber.superclass.constructor.call(this,a);this.params=undefined;this.getExtnValueHex=function(){this.asn1ExtnValue=new KJUR.asn1.DERInteger(this.params.num);return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.20\";if(a!=undefined){this.params=a}};extendClass(KJUR.asn1.x509.CRLNumber,KJUR.asn1.x509.Extension);KJUR.asn1.x509.CRLReason=function(a){KJUR.asn1.x509.CRLReason.superclass.constructor.call(this,a);this.params=undefined;this.getExtnValueHex=function(){this.asn1ExtnValue=new KJUR.asn1.DEREnumerated(this.params.code);return this.asn1ExtnValue.tohex()};this.oid=\"2.5.29.21\";if(a!=undefined){this.params=a}};extendClass(KJUR.asn1.x509.CRLReason,KJUR.asn1.x509.Extension);KJUR.asn1.x509.OCSPNonce=function(a){KJUR.asn1.x509.OCSPNonce.superclass.constructor.call(this,a);this.params=undefined;this.getExtnValueHex=function(){this.asn1ExtnValue=new KJUR.asn1.DEROctetString(this.params);return this.asn1ExtnValue.tohex()};this.oid=\"1.3.6.1.5.5.7.48.1.2\";if(a!=undefined){this.params=a}};extendClass(KJUR.asn1.x509.OCSPNonce,KJUR.asn1.x509.Extension);KJUR.asn1.x509.OCSPNoCheck=function(a){KJUR.asn1.x509.OCSPNoCheck.superclass.constructor.call(this,a);this.params=undefined;this.getExtnValueHex=function(){this.asn1ExtnValue=new KJUR.asn1.DERNull();return this.asn1ExtnValue.tohex()};this.oid=\"1.3.6.1.5.5.7.48.1.5\";if(a!=undefined){this.params=a}};extendClass(KJUR.asn1.x509.OCSPNoCheck,KJUR.asn1.x509.Extension);KJUR.asn1.x509.AdobeTimeStamp=function(g){KJUR.asn1.x509.AdobeTimeStamp.superclass.constructor.call(this,g);var c=KJUR,b=c.asn1,f=b.DERInteger,d=b.DERBoolean,a=b.DERSequence,e=b.x509.GeneralName;this.params=null;this.getExtnValueHex=function(){var i=this.params;var h=[new f(1)];h.push(new e({uri:i.uri}));if(i.reqauth!=undefined){h.push(new d(i.reqauth))}this.asn1ExtnValue=new a({array:h});return this.asn1ExtnValue.tohex()};this.oid=\"1.2.840.113583.1.1.9.1\";if(g!==undefined){this.setByParam(g)}};extendClass(KJUR.asn1.x509.AdobeTimeStamp,KJUR.asn1.x509.Extension);KJUR.asn1.x509.X500Name=function(f){KJUR.asn1.x509.X500Name.superclass.constructor.call(this);this.asn1Array=[];this.paramArray=[];this.sRule=\"utf8\";var c=KJUR,b=c.asn1,e=b.x509,d=e.RDN,a=pemtohex;this.setByString=function(g,l){if(l!==undefined){this.sRule=l}var k=g.split(\"/\");k.shift();var j=[];for(var m=0;m<k.length;m++){if(k[m].match(/^[^=]+=.+$/)){j.push(k[m])}else{var h=j.length-1;j[h]=j[h]+\"/\"+k[m]}}for(var m=0;m<j.length;m++){this.asn1Array.push(new d({str:j[m],rule:this.sRule}))}};this.setByLdapString=function(g,h){if(h!==undefined){this.sRule=h}var i=e.X500Name.ldapToCompat(g);this.setByString(i,h)};this.setByObject=function(j,i){if(i!==undefined){this.sRule=i}for(var g in j){if(j.hasOwnProperty(g)){var h=new d({str:g+\"=\"+j[g],rule:this.sRule});this.asn1Array?this.asn1Array.push(h):this.asn1Array=[h]}}};this.setByParam=function(h){if(h.rule!==undefined){this.sRule=h.rule}if(h.array!==undefined){this.paramArray=h.array}else{if(h.str!==undefined){this.setByString(h.str)}else{if(h.ldapstr!==undefined){this.setByLdapString(h.ldapstr)}else{if(h.hex!==undefined){this.hTLV=h.hex}else{if(h.certissuer!==undefined){var g=new X509();g.readCertPEM(h.certissuer);this.hTLV=g.getIssuerHex()}else{if(h.certsubject!==undefined){var g=new X509();g.readCertPEM(h.certsubject);this.hTLV=g.getSubjectHex()}else{if(typeof h===\"object\"&&h.certsubject===undefined&&h.certissuer===undefined){this.setByObject(h)}}}}}}}};this.tohex=function(){if(typeof this.hTLV==\"string\"){return this.hTLV}if(this.asn1Array.length==0&&this.paramArray.length>0){for(var g=0;g<this.paramArray.length;g++){var k={array:this.paramArray[g]};if(this.sRule!=\"utf8\"){k.rule=this.sRule}var h=new d(k);this.asn1Array.push(h)}}var j=new b.DERSequence({array:this.asn1Array});this.hTLV=j.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(f!==undefined){this.setByParam(f)}};extendClass(KJUR.asn1.x509.X500Name,KJUR.asn1.ASN1Object);KJUR.asn1.x509.X500Name.compatToLDAP=function(d){if(d.substr(0,1)!==\"/\"){throw\"malformed input\"}var b=\"\";d=d.substr(1);var c=d.split(\"/\");c.reverse();c=c.map(function(a){return a.replace(/,/,\"\\\\,\")});return c.join(\",\")};KJUR.asn1.x509.X500Name.onelineToLDAP=function(a){return KJUR.asn1.x509.X500Name.compatToLDAP(a)};KJUR.asn1.x509.X500Name.ldapToCompat=function(g){var c=g.split(\",\");var e=false;var b=[];for(var f=0;c.length>0;f++){var h=c.shift();if(e===true){var d=b.pop();var j=(d+\",\"+h).replace(/\\\\,/g,\",\");b.push(j);e=false}else{b.push(h)}if(h.substr(-1,1)===\"\\\\\"){e=true}}b=b.map(function(a){return a.replace(\"/\",\"\\\\/\")});b.reverse();return\"/\"+b.join(\"/\")};KJUR.asn1.x509.X500Name.ldapToOneline=function(a){return KJUR.asn1.x509.X500Name.ldapToCompat(a)};KJUR.asn1.x509.RDN=function(b){KJUR.asn1.x509.RDN.superclass.constructor.call(this);this.asn1Array=[];this.paramArray=[];this.sRule=\"utf8\";var a=KJUR.asn1.x509.AttributeTypeAndValue;this.setByParam=function(c){if(c.rule!==undefined){this.sRule=c.rule}if(c.str!==undefined){this.addByMultiValuedString(c.str)}if(c.array!==undefined){this.paramArray=c.array}};this.addByString=function(c){this.asn1Array.push(new KJUR.asn1.x509.AttributeTypeAndValue({str:c,rule:this.sRule}))};this.addByMultiValuedString=function(e){var c=KJUR.asn1.x509.RDN.parseString(e);for(var d=0;d<c.length;d++){this.addByString(c[d])}};this.tohex=function(){if(this.asn1Array.length==0&&this.paramArray.length>0){for(var d=0;d<this.paramArray.length;d++){var f=this.paramArray[d];if(f.rule!==undefined&&this.sRule!=\"utf8\"){f.rule=this.sRule}var c=new a(f);this.asn1Array.push(c)}}var e=new KJUR.asn1.DERSet({array:this.asn1Array});this.TLV=e.tohex();return this.TLV};this.getEncodedHex=function(){return this.tohex()};if(b!==undefined){this.setByParam(b)}};extendClass(KJUR.asn1.x509.RDN,KJUR.asn1.ASN1Object);KJUR.asn1.x509.RDN.parseString=function(m){var j=m.split(/\\+/);var h=false;var c=[];for(var g=0;j.length>0;g++){var k=j.shift();if(h===true){var f=c.pop();var d=(f+\"+\"+k).replace(/\\\\\\+/g,\"+\");c.push(d);h=false}else{c.push(k)}if(k.substr(-1,1)===\"\\\\\"){h=true}}var l=false;var b=[];for(var g=0;c.length>0;g++){var k=c.shift();if(l===true){var e=b.pop();if(k.match(/\"$/)){var d=(e+\"+\"+k).replace(/^([^=]+)=\"(.*)\"$/,\"$1=$2\");b.push(d);l=false}else{b.push(e+\"+\"+k)}}else{b.push(k)}if(k.match(/^[^=]+=\"/)){l=true}}return b};KJUR.asn1.x509.AttributeTypeAndValue=function(c){KJUR.asn1.x509.AttributeTypeAndValue.superclass.constructor.call(this);this.sRule=\"utf8\";this.sType=null;this.sValue=null;this.dsType=null;var a=KJUR,g=a.asn1,d=g.DERSequence,l=g.DERUTF8String,i=g.DERPrintableString,h=g.DERTeletexString,b=g.DERIA5String,e=g.DERVisibleString,k=g.DERBMPString,f=a.lang.String.isMail,j=a.lang.String.isPrintable;this.setByParam=function(o){if(o.rule!==undefined){this.sRule=o.rule}if(o.ds!==undefined){this.dsType=o.ds}if(o.value===undefined&&o.str!==undefined){var n=o.str;var m=n.match(/^([^=]+)=(.+)$/);if(m){this.sType=m[1];this.sValue=m[2]}else{throw new Error(\"malformed attrTypeAndValueStr: \"+attrTypeAndValueStr)}}else{this.sType=o.type;this.sValue=o.value}};this.setByString=function(n,o){if(o!==undefined){this.sRule=o}var m=n.match(/^([^=]+)=(.+)$/);if(m){this.setByAttrTypeAndValueStr(m[1],m[2])}else{throw new Error(\"malformed attrTypeAndValueStr: \"+attrTypeAndValueStr)}};this._getDsType=function(){var o=this.sType;var n=this.sValue;var m=this.sRule;if(m===\"prn\"){if(o==\"CN\"&&f(n)){return\"ia5\"}if(j(n)){return\"prn\"}return\"utf8\"}else{if(m===\"utf8\"){if(o==\"CN\"&&f(n)){return\"ia5\"}if(o==\"C\"){return\"prn\"}return\"utf8\"}}return\"utf8\"};this.setByAttrTypeAndValueStr=function(o,n,m){if(m!==undefined){this.sRule=m}this.sType=o;this.sValue=n};this.getValueObj=function(n,m){if(n==\"utf8\"){return new l({str:m})}if(n==\"prn\"){return new i({str:m})}if(n==\"tel\"){return new h({str:m})}if(n==\"ia5\"){return new b({str:m})}if(n==\"vis\"){return new e({str:m})}if(n==\"bmp\"){return new k({str:m})}throw new Error(\"unsupported directory string type: type=\"+n+\" value=\"+m)};this.tohex=function(){if(this.dsType==null){this.dsType=this._getDsType()}var n=KJUR.asn1.x509.OID.atype2obj(this.sType);var m=this.getValueObj(this.dsType,this.sValue);var p=new d({array:[n,m]});this.TLV=p.tohex();return this.TLV};this.getEncodedHex=function(){return this.tohex()};if(c!==undefined){this.setByParam(c)}};extendClass(KJUR.asn1.x509.AttributeTypeAndValue,KJUR.asn1.ASN1Object);KJUR.asn1.x509.SubjectPublicKeyInfo=function(f){KJUR.asn1.x509.SubjectPublicKeyInfo.superclass.constructor.call(this);var l=null,k=null,a=KJUR,j=a.asn1,i=j.DERInteger,b=j.DERBitString,m=j.DERObjectIdentifier,e=j.DERSequence,h=j.ASN1Util.newObject,d=j.x509,o=d.AlgorithmIdentifier,g=a.crypto,n=g.ECDSA,c=g.DSA;this.getASN1Object=function(){if(this.asn1AlgId==null||this.asn1SubjPKey==null){throw\"algId and/or subjPubKey not set\"}var p=new e({array:[this.asn1AlgId,this.asn1SubjPKey]});return p};this.tohex=function(){var p=this.getASN1Object();this.hTLV=p.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};this.setPubKey=function(q){try{if(q instanceof RSAKey){var u=h({seq:[{\"int\":{bigint:q.n}},{\"int\":{\"int\":q.e}}]});var s=u.tohex();this.asn1AlgId=new o({name:\"rsaEncryption\"});this.asn1SubjPKey=new b({hex:\"00\"+s})}}catch(p){}try{if(q instanceof KJUR.crypto.ECDSA){var r=new m({name:q.curveName});this.asn1AlgId=new o({name:\"ecPublicKey\",asn1params:r});this.asn1SubjPKey=new b({hex:\"00\"+q.pubKeyHex})}}catch(p){}try{if(q instanceof KJUR.crypto.DSA){var r=new h({seq:[{\"int\":{bigint:q.p}},{\"int\":{bigint:q.q}},{\"int\":{bigint:q.g}}]});this.asn1AlgId=new o({name:\"dsa\",asn1params:r});var t=new i({bigint:q.y});this.asn1SubjPKey=new b({hex:\"00\"+t.tohex()})}}catch(p){}};if(f!==undefined){this.setPubKey(f)}};extendClass(KJUR.asn1.x509.SubjectPublicKeyInfo,KJUR.asn1.ASN1Object);KJUR.asn1.x509.Time=function(f){KJUR.asn1.x509.Time.superclass.constructor.call(this);var e=null,a=null,d=KJUR,c=d.asn1,b=c.DERUTCTime,g=c.DERGeneralizedTime;this.params=null;this.type=null;this.setTimeParams=function(h){this.timeParams=h};this.setByParam=function(h){this.params=h};this.getType=function(h){if(h.match(/^[0-9]{12}Z$/)){return\"utc\"}if(h.match(/^[0-9]{14}Z$/)){return\"gen\"}if(h.match(/^[0-9]{12}\\.[0-9]+Z$/)){return\"utc\"}if(h.match(/^[0-9]{14}\\.[0-9]+Z$/)){return\"gen\"}return null};this.tohex=function(){var i=this.params;var h=null;if(typeof i==\"string\"){i={str:i}}if(i!=null&&i.str&&(i.type==null||i.type==undefined)){i.type=this.getType(i.str)}if(i!=null&&i.str){if(i.type==\"utc\"){h=new b(i.str)}if(i.type==\"gen\"){h=new g(i.str)}}else{if(this.type==\"gen\"){h=new g()}else{h=new b()}}if(h==null){throw new Error(\"wrong setting for Time\")}this.TLV=h.tohex();return this.TLV};this.getEncodedHex=function(){return this.tohex()};if(f!=undefined){this.setByParam(f)}};KJUR.asn1.x509.Time_bak=function(f){KJUR.asn1.x509.Time_bak.superclass.constructor.call(this);var e=null,a=null,d=KJUR,c=d.asn1,b=c.DERUTCTime,g=c.DERGeneralizedTime;this.setTimeParams=function(h){this.timeParams=h};this.tohex=function(){var h=null;if(this.timeParams!=null){if(this.type==\"utc\"){h=new b(this.timeParams)}else{h=new g(this.timeParams)}}else{if(this.type==\"utc\"){h=new b()}else{h=new g()}}this.TLV=h.tohex();return this.TLV};this.getEncodedHex=function(){return this.tohex()};this.type=\"utc\";if(f!==undefined){if(f.type!==undefined){this.type=f.type}else{if(f.str!==undefined){if(f.str.match(/^[0-9]{12}Z$/)){this.type=\"utc\"}if(f.str.match(/^[0-9]{14}Z$/)){this.type=\"gen\"}}}this.timeParams=f}};extendClass(KJUR.asn1.x509.Time,KJUR.asn1.ASN1Object);KJUR.asn1.x509.AlgorithmIdentifier=function(e){KJUR.asn1.x509.AlgorithmIdentifier.superclass.constructor.call(this);this.nameAlg=null;this.asn1Alg=null;this.asn1Params=null;this.paramEmpty=false;var b=KJUR,a=b.asn1,c=a.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;this.tohex=function(){if(this.nameAlg===null&&this.asn1Alg===null){throw new Error(\"algorithm not specified\")}if(this.nameAlg!==null){var f=null;for(var h in c){if(h===this.nameAlg){f=c[h]}}if(f!==null){this.hTLV=f;return this.hTLV}}if(this.nameAlg!==null&&this.asn1Alg===null){this.asn1Alg=a.x509.OID.name2obj(this.nameAlg)}var g=[this.asn1Alg];if(this.asn1Params!==null){g.push(this.asn1Params)}var i=new a.DERSequence({array:g});this.hTLV=i.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){if(e.name!==undefined){this.nameAlg=e.name}if(e.asn1params!==undefined){this.asn1Params=e.asn1params}if(e.paramempty!==undefined){this.paramEmpty=e.paramempty}}if(this.asn1Params===null&&this.paramEmpty===false&&this.nameAlg!==null){if(this.nameAlg.name!==undefined){this.nameAlg=this.nameAlg.name}var d=this.nameAlg.toLowerCase();if(d.substr(-7,7)!==\"withdsa\"&&d.substr(-9,9)!==\"withecdsa\"){this.asn1Params=new a.DERNull()}}};extendClass(KJUR.asn1.x509.AlgorithmIdentifier,KJUR.asn1.ASN1Object);KJUR.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:\"300d06092a864886f70d01010a3000\",SHA256withRSAandMGF1:\"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120\",SHA384withRSAandMGF1:\"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130\",SHA512withRSAandMGF1:\"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140\"};KJUR.asn1.x509.GeneralName=function(f){KJUR.asn1.x509.GeneralName.superclass.constructor.call(this);var l={rfc822:\"81\",dns:\"82\",dn:\"a4\",uri:\"86\",ip:\"87\",otherName:\"a0\"},b=KJUR,h=b.asn1,d=h.x509,a=d.X500Name,g=d.OtherName,e=h.DERIA5String,i=h.DERPrintableString,k=h.DEROctetString,c=h.DERTaggedObject,m=h.ASN1Object,j=Error;this.params=null;this.setByParam=function(n){this.params=n};this.tohex=function(){var p=this.params;var A,y,q;var y=false;if(p.other!==undefined){A=\"a0\",q=new g(p.other)}else{if(p.rfc822!==undefined){A=\"81\";q=new e({str:p.rfc822})}else{if(p.dns!==undefined){A=\"82\";q=new e({str:p.dns})}else{if(p.dn!==undefined){A=\"a4\";y=true;if(typeof p.dn===\"string\"){q=new a({str:p.dn})}else{if(p.dn instanceof KJUR.asn1.x509.X500Name){q=p.dn}else{q=new a(p.dn)}}}else{if(p.ldapdn!==undefined){A=\"a4\";y=true;q=new a({ldapstr:p.ldapdn})}else{if(p.certissuer!==undefined||p.certsubj!==undefined){A=\"a4\";y=true;var n,o;var z=null;if(p.certsubj!==undefined){n=false;o=p.certsubj}else{n=true;o=p.certissuer}if(o.match(/^[0-9A-Fa-f]+$/)){z==o}if(o.indexOf(\"-----BEGIN \")!=-1){z=pemtohex(o)}if(z==null){throw new Error(\"certsubj/certissuer not cert\")}var w=new X509();w.hex=z;var s;if(n){s=w.getIssuerHex()}else{s=w.getSubjectHex()}q=new m();q.hTLV=s}else{if(p.uri!==undefined){A=\"86\";q=new e({str:p.uri})}else{if(p.ip!==undefined){A=\"87\";var v;var t=p.ip;try{if(t.match(/^[0-9a-f]+$/)){var r=t.length;if(r==8||r==16||r==32||r==64){v=t}else{throw\"err\"}}else{v=iptohex(t)}}catch(u){throw new j(\"malformed IP address: \"+p.ip+\":\"+u.message)}q=new k({hex:v})}else{throw new j(\"improper params\")}}}}}}}}var B=new c({tag:A,explicit:y,obj:q});return B.tohex()};this.getEncodedHex=function(){return this.tohex()};if(f!==undefined){this.setByParam(f)}};extendClass(KJUR.asn1.x509.GeneralName,KJUR.asn1.ASN1Object);KJUR.asn1.x509.GeneralNames=function(d){KJUR.asn1.x509.GeneralNames.superclass.constructor.call(this);var a=null,c=KJUR,b=c.asn1;this.setByParamArray=function(g){for(var e=0;e<g.length;e++){var f=new b.x509.GeneralName(g[e]);this.asn1Array.push(f)}};this.tohex=function(){var e=new b.DERSequence({array:this.asn1Array});return e.tohex()};this.getEncodedHex=function(){return this.tohex()};this.asn1Array=new Array();if(typeof d!=\"undefined\"){this.setByParamArray(d)}};extendClass(KJUR.asn1.x509.GeneralNames,KJUR.asn1.ASN1Object);KJUR.asn1.x509.OtherName=function(g){KJUR.asn1.x509.OtherName.superclass.constructor.call(this);var f=null,e=null,d=KJUR,c=d.asn1,h=c.DERObjectIdentifier,a=c.DERSequence,b=c.ASN1Util.newObject;this.params=null;this.setByParam=function(i){this.params=i};this.tohex=function(){var k=this.params;if(k.oid==undefined||k.value==undefined){throw new Error(\"oid or value not specified\")}var l=new h({oid:k.oid});var i=b({tag:{tag:\"a0\",explicit:true,obj:k.value}});var j=new a({array:[l,i]});return j.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!==undefined){this.setByParam(g)}};extendClass(KJUR.asn1.x509.OtherName,KJUR.asn1.ASN1Object);KJUR.asn1.x509.OID=new function(){var a=KJUR.asn1.DERObjectIdentifier;this.name2oidList={\"aes128-CBC\":\"2.16.840.1.101.3.4.1.2\",\"aes256-CBC\":\"2.16.840.1.101.3.4.1.42\",sha1:\"1.3.14.3.2.26\",sha256:\"2.16.840.1.101.3.4.2.1\",sha384:\"2.16.840.1.101.3.4.2.2\",sha512:\"2.16.840.1.101.3.4.2.3\",sha224:\"2.16.840.1.101.3.4.2.4\",md5:\"1.2.840.113549.2.5\",md2:\"1.3.14.7.2.2.1\",ripemd160:\"1.3.36.3.2.1\",hmacWithSHA1:\"1.2.840.113549.2.7\",hmacWithSHA224:\"1.2.840.113549.2.8\",hmacWithSHA256:\"1.2.840.113549.2.9\",hmacWithSHA384:\"1.2.840.113549.2.10\",hmacWithSHA512:\"1.2.840.113549.2.11\",MD2withRSA:\"1.2.840.113549.1.1.2\",MD4withRSA:\"1.2.840.113549.1.1.3\",MD5withRSA:\"1.2.840.113549.1.1.4\",SHA1withRSA:\"1.2.840.113549.1.1.5\",\"pkcs1-MGF\":\"1.2.840.113549.1.1.8\",rsaPSS:\"1.2.840.113549.1.1.10\",SHA224withRSA:\"1.2.840.113549.1.1.14\",SHA256withRSA:\"1.2.840.113549.1.1.11\",SHA384withRSA:\"1.2.840.113549.1.1.12\",SHA512withRSA:\"1.2.840.113549.1.1.13\",SHA1withECDSA:\"1.2.840.10045.4.1\",SHA224withECDSA:\"1.2.840.10045.4.3.1\",SHA256withECDSA:\"1.2.840.10045.4.3.2\",SHA384withECDSA:\"1.2.840.10045.4.3.3\",SHA512withECDSA:\"1.2.840.10045.4.3.4\",dsa:\"1.2.840.10040.4.1\",SHA1withDSA:\"1.2.840.10040.4.3\",SHA224withDSA:\"2.16.840.1.101.3.4.3.1\",SHA256withDSA:\"2.16.840.1.101.3.4.3.2\",rsaEncryption:\"1.2.840.113549.1.1.1\",commonName:\"2.5.4.3\",countryName:\"2.5.4.6\",localityName:\"2.5.4.7\",stateOrProvinceName:\"2.5.4.8\",streetAddress:\"2.5.4.9\",organizationName:\"2.5.4.10\",organizationalUnitName:\"2.5.4.11\",domainComponent:\"0.9.2342.19200300.100.1.25\",userId:\"0.9.2342.19200300.100.1.1\",surname:\"2.5.4.4\",givenName:\"2.5.4.42\",title:\"2.5.4.12\",distinguishedName:\"2.5.4.49\",emailAddress:\"1.2.840.113549.1.9.1\",description:\"2.5.4.13\",businessCategory:\"2.5.4.15\",postalCode:\"2.5.4.17\",uniqueIdentifier:\"2.5.4.45\",organizationIdentifier:\"2.5.4.97\",jurisdictionOfIncorporationL:\"1.3.6.1.4.1.311.60.2.1.1\",jurisdictionOfIncorporationSP:\"1.3.6.1.4.1.311.60.2.1.2\",jurisdictionOfIncorporationC:\"1.3.6.1.4.1.311.60.2.1.3\",subjectDirectoryAttributes:\"2.5.29.9\",subjectKeyIdentifier:\"2.5.29.14\",keyUsage:\"2.5.29.15\",subjectAltName:\"2.5.29.17\",issuerAltName:\"2.5.29.18\",basicConstraints:\"2.5.29.19\",cRLNumber:\"2.5.29.20\",cRLReason:\"2.5.29.21\",nameConstraints:\"2.5.29.30\",cRLDistributionPoints:\"2.5.29.31\",certificatePolicies:\"2.5.29.32\",anyPolicy:\"2.5.29.32.0\",policyMappings:\"2.5.29.33\",authorityKeyIdentifier:\"2.5.29.35\",policyConstraints:\"2.5.29.36\",extKeyUsage:\"2.5.29.37\",inhibitAnyPolicy:\"2.5.29.54\",authorityInfoAccess:\"1.3.6.1.5.5.7.1.1\",ocsp:\"1.3.6.1.5.5.7.48.1\",ocspBasic:\"1.3.6.1.5.5.7.48.1.1\",ocspNonce:\"1.3.6.1.5.5.7.48.1.2\",ocspNoCheck:\"1.3.6.1.5.5.7.48.1.5\",caIssuers:\"1.3.6.1.5.5.7.48.2\",anyExtendedKeyUsage:\"2.5.29.37.0\",serverAuth:\"1.3.6.1.5.5.7.3.1\",clientAuth:\"1.3.6.1.5.5.7.3.2\",codeSigning:\"1.3.6.1.5.5.7.3.3\",emailProtection:\"1.3.6.1.5.5.7.3.4\",timeStamping:\"1.3.6.1.5.5.7.3.8\",ocspSigning:\"1.3.6.1.5.5.7.3.9\",smtpUTF8Mailbox:\"1.3.6.1.5.5.7.8.9\",dateOfBirth:\"1.3.6.1.5.5.7.9.1\",placeOfBirth:\"1.3.6.1.5.5.7.9.2\",gender:\"1.3.6.1.5.5.7.9.3\",countryOfCitizenship:\"1.3.6.1.5.5.7.9.4\",countryOfResidence:\"1.3.6.1.5.5.7.9.5\",ecPublicKey:\"1.2.840.10045.2.1\",\"P-256\":\"1.2.840.10045.3.1.7\",secp256r1:\"1.2.840.10045.3.1.7\",secp256k1:\"1.3.132.0.10\",secp384r1:\"1.3.132.0.34\",secp521r1:\"1.3.132.0.35\",pkcs5PBES2:\"1.2.840.113549.1.5.13\",pkcs5PBKDF2:\"1.2.840.113549.1.5.12\",\"des-EDE3-CBC\":\"1.2.840.113549.3.7\",data:\"1.2.840.113549.1.7.1\",\"signed-data\":\"1.2.840.113549.1.7.2\",\"enveloped-data\":\"1.2.840.113549.1.7.3\",\"digested-data\":\"1.2.840.113549.1.7.5\",\"encrypted-data\":\"1.2.840.113549.1.7.6\",\"authenticated-data\":\"1.2.840.113549.1.9.16.1.2\",tstinfo:\"1.2.840.113549.1.9.16.1.4\",signingCertificate:\"1.2.840.113549.1.9.16.2.12\",timeStampToken:\"1.2.840.113549.1.9.16.2.14\",signaturePolicyIdentifier:\"1.2.840.113549.1.9.16.2.15\",etsArchiveTimeStamp:\"1.2.840.113549.1.9.16.2.27\",signingCertificateV2:\"1.2.840.113549.1.9.16.2.47\",etsArchiveTimeStampV2:\"1.2.840.113549.1.9.16.2.48\",extensionRequest:\"1.2.840.113549.1.9.14\",contentType:\"1.2.840.113549.1.9.3\",messageDigest:\"1.2.840.113549.1.9.4\",signingTime:\"1.2.840.113549.1.9.5\",counterSignature:\"1.2.840.113549.1.9.6\",archiveTimeStampV3:\"0.4.0.1733.2.4\",pdfRevocationInfoArchival:\"1.2.840.113583.1.1.8\",adobeTimeStamp:\"1.2.840.113583.1.1.9.1\",smimeMailboxLegacy:\"2.23.140.1.5.1.1\",smimeMailboxMulti:\"2.23.140.1.5.1.2\",smimeMailboxStrict:\"2.23.140.1.5.1.3\",smimeOrganizationLegacy:\"2.23.140.1.5.2.1\",smimeOrganizationMulti:\"2.23.140.1.5.2.2\",smimeOrganizationStrict:\"2.23.140.1.5.2.3\",smimeSponsorLegacy:\"2.23.140.1.5.3.1\",smimeSponsorMulti:\"2.23.140.1.5.3.2\",smimeSponsorStrict:\"2.23.140.1.5.3.3\",smimeIndividualLegacy:\"2.23.140.1.5.4.1\",smimeIndividualMulti:\"2.23.140.1.5.4.2\",smimeIndividualStrict:\"2.23.140.1.5.4.3\",};this.atype2oidList={CN:\"2.5.4.3\",L:\"2.5.4.7\",ST:\"2.5.4.8\",O:\"2.5.4.10\",OU:\"2.5.4.11\",C:\"2.5.4.6\",STREET:\"2.5.4.9\",DC:\"0.9.2342.19200300.100.1.25\",UID:\"0.9.2342.19200300.100.1.1\",SN:\"2.5.4.4\",T:\"2.5.4.12\",GN:\"2.5.4.42\",DN:\"2.5.4.49\",E:\"1.2.840.113549.1.9.1\",description:\"2.5.4.13\",businessCategory:\"2.5.4.15\",postalCode:\"2.5.4.17\",serialNumber:\"2.5.4.5\",uniqueIdentifier:\"2.5.4.45\",organizationIdentifier:\"2.5.4.97\",jurisdictionOfIncorporationL:\"1.3.6.1.4.1.311.60.2.1.1\",jurisdictionOfIncorporationSP:\"1.3.6.1.4.1.311.60.2.1.2\",jurisdictionOfIncorporationC:\"1.3.6.1.4.1.311.60.2.1.3\"};this.objCache={};this.name2obj=function(b){if(typeof this.objCache[b]!=\"undefined\"){return this.objCache[b]}if(typeof this.name2oidList[b]==\"undefined\"){throw\"Name of ObjectIdentifier not defined: \"+b}var c=this.name2oidList[b];var d=new a({oid:c});this.objCache[b]=d;return d};this.atype2obj=function(b){if(this.objCache[b]!==undefined){return this.objCache[b]}var c;if(b.match(/^\\d+\\.\\d+\\.[0-9.]+$/)){c=b}else{if(this.atype2oidList[b]!==undefined){c=this.atype2oidList[b]}else{if(this.name2oidList[b]!==undefined){c=this.name2oidList[b]}else{throw new Error(\"AttributeType name undefined: \"+b)}}}var d=new a({oid:c});this.objCache[b]=d;return d};this.registerOIDs=function(b){if(!this.checkOIDs(b)){return}for(var c in b){this.name2oidList[c]=b[c]}};this.checkOIDs=function(b){try{var d=Object.keys(b);if(d.length==0){return false}d.map(function(g,e,h){var f=this[g];if(!f.match(/^[0-2]\\.[0-9.]+$/)){throw new Error(\"value is not OID\")}},b);return true}catch(c){return false}}};KJUR.asn1.x509.OID.oid2name=function(b){var c=KJUR.asn1.x509.OID.name2oidList;for(var a in c){if(c[a]==b){return a}}return\"\"};KJUR.asn1.x509.OID.oid2atype=function(b){var c=KJUR.asn1.x509.OID.atype2oidList;for(var a in c){if(c[a]==b){return a}}return b};KJUR.asn1.x509.OID.name2oid=function(a){if(a.match(/^[0-9.]+$/)){return a}var b=KJUR.asn1.x509.OID.name2oidList;if(b[a]===undefined){return\"\"}return b[a]};KJUR.asn1.x509.X509Util={};KJUR.asn1.x509.X509Util.newCertPEM=function(e){var d=KJUR.asn1.x509,b=d.TBSCertificate,a=d.Certificate;var c=new a(e);return c.getPEM()};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.asn1==\"undefined\"||!KJUR.asn1){KJUR.asn1={}}if(typeof KJUR.asn1.cms==\"undefined\"||!KJUR.asn1.cms){KJUR.asn1.cms={}}KJUR.asn1.cms.Attribute=function(f){var e=Error,d=KJUR,c=d.asn1,b=c.DERSequence,a=c.DERSet,g=c.DERObjectIdentifier;this.params=null;this.typeOid=null;this.setByParam=function(h){this.params=h};this.getValueArray=function(){throw new e(\"not yet implemented abstract\")};this.tohex=function(){var j=new g({oid:this.typeOid});var h=new a({array:this.getValueArray()});var i=new b({array:[j,h]});return i.tohex()};this.getEncodedHex=function(){return this.tohex()}};extendClass(KJUR.asn1.cms.Attribute,KJUR.asn1.ASN1Object);KJUR.asn1.cms.ContentType=function(c){var b=KJUR,a=b.asn1;a.cms.ContentType.superclass.constructor.call(this);this.typeOid=\"1.2.840.113549.1.9.3\";this.getValueArray=function(){var d=new a.DERObjectIdentifier(this.params.type);return[d]};if(c!=undefined){this.setByParam(c)}};extendClass(KJUR.asn1.cms.ContentType,KJUR.asn1.cms.Attribute);KJUR.asn1.cms.MessageDigest=function(e){var b=KJUR,a=b.asn1,c=a.DEROctetString,d=a.cms;d.MessageDigest.superclass.constructor.call(this);this.typeOid=\"1.2.840.113549.1.9.4\";this.getValueArray=function(){var f=new c(this.params);return[f]};if(e!=undefined){this.setByParam(e)}};extendClass(KJUR.asn1.cms.MessageDigest,KJUR.asn1.cms.Attribute);KJUR.asn1.cms.SigningTime=function(c){var b=KJUR,a=b.asn1;a.cms.SigningTime.superclass.constructor.call(this);this.typeOid=\"1.2.840.113549.1.9.5\";this.getValueArray=function(){var d=new a.x509.Time(this.params);return[d]};if(c!=undefined){this.setByParam(c)}};extendClass(KJUR.asn1.cms.SigningTime,KJUR.asn1.cms.Attribute);KJUR.asn1.cms.SigningCertificate=function(h){var e=Error,d=KJUR,c=d.asn1,b=c.DERSequence,g=c.cms,a=g.ESSCertID,f=d.crypto;g.SigningCertificate.superclass.constructor.call(this);this.typeOid=\"1.2.840.113549.1.9.16.2.12\";this.getValueArray=function(){if(this.params==null||this.params==undefined||this.params.array==undefined){throw new e(\"parameter 'array' not specified\")}var o=this.params.array;var k=[];for(var l=0;l<o.length;l++){var n=o[l];if(h.hasis==false&&(typeof n==\"string\"&&(n.indexOf(\"-----BEGIN\")!=-1||ASN1HEX.isASN1HEX(n)))){n={cert:n}}if(n.hasis!=false&&h.hasis==false){n.hasis=false}k.push(new a(n))}var j=new b({array:k});var m=new b({array:[j]});return[m]};if(h!=undefined){this.setByParam(h)}};extendClass(KJUR.asn1.cms.SigningCertificate,KJUR.asn1.cms.Attribute);KJUR.asn1.cms.ESSCertID=function(g){KJUR.asn1.cms.ESSCertID.superclass.constructor.call(this);var d=Error,c=KJUR,b=c.asn1,f=b.DEROctetString,a=b.DERSequence,e=b.cms.IssuerSerial;this.params=null;this.getCertHash=function(k,h){if(k.hash!=undefined){return k.hash}if(typeof k==\"string\"&&k.indexOf(\"-----BEGIN\")==-1&&!ASN1HEX.isASN1HEX(k)){return k}var i;if(typeof k==\"string\"){i=k}else{if(k.cert!=undefined){i=k.cert}else{throw new d(\"hash nor cert unspecified\")}}var j;if(i.indexOf(\"-----BEGIN\")!=-1){j=pemtohex(i)}else{j=i}if(typeof k==\"string\"){if(k.indexOf(\"-----BEGIN\")!=-1){j=pemtohex(k)}else{if(ASN1HEX.isASN1HEX(k)){j=k}}}var l;if(k.alg!=undefined){l=k.alg}else{if(h!=undefined){l=h}else{throw new d(\"hash alg unspecified\")}}return c.crypto.Util.hashHex(j,l)};this.tohex=function(){var k=this.params;var j=this.getCertHash(k,\"sha1\");var h=[];h.push(new f({hex:j}));if((typeof k==\"string\"&&k.indexOf(\"-----BEGIN\")!=-1)||(k.cert!=undefined&&k.hasis!=false)||(k.issuer!=undefined&&k.serial!=undefined)){h.push(new e(k))}var i=new a({array:h});return i.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.cms.ESSCertID,KJUR.asn1.ASN1Object);KJUR.asn1.cms.SigningCertificateV2=function(d){var h=Error,a=KJUR,g=a.asn1,e=g.DERSequence,b=g.x509,i=g.cms,c=i.ESSCertIDv2,f=a.crypto;i.SigningCertificateV2.superclass.constructor.call(this);this.typeOid=\"1.2.840.113549.1.9.16.2.47\";this.getValueArray=function(){if(this.params==null||this.params==undefined||this.params.array==undefined){throw new h(\"parameter 'array' not specified\")}var o=this.params.array;var l=[];for(var m=0;m<o.length;m++){var n=o[m];if((d.alg!=undefined||d.hasis==false)&&(typeof n==\"string\"&&(n.indexOf(\"-----BEGIN\")!=-1||ASN1HEX.isASN1HEX(n)))){n={cert:n}}if(n.alg==undefined&&d.alg!=undefined){n.alg=d.alg}if(n.hasis!=false&&d.hasis==false){n.hasis=false}l.push(new c(n))}var k=new e({array:l});var j=new e({array:[k]});return[j]};if(d!=undefined){this.setByParam(d)}};extendClass(KJUR.asn1.cms.SigningCertificateV2,KJUR.asn1.cms.Attribute);KJUR.asn1.cms.ESSCertIDv2=function(h){KJUR.asn1.cms.ESSCertIDv2.superclass.constructor.call(this);var d=Error,c=KJUR,b=c.asn1,f=b.DEROctetString,a=b.DERSequence,e=b.cms.IssuerSerial,g=b.x509.AlgorithmIdentifier;this.params=null;this.tohex=function(){var l=this.params;var k=this.getCertHash(l,\"sha256\");var i=[];if(l.alg!=undefined&&l.alg!=\"sha256\"){i.push(new g({name:l.alg}))}i.push(new f({hex:k}));if((typeof l==\"string\"&&l.indexOf(\"-----BEGIN\")!=-1)||(l.cert!=undefined&&l.hasis!=false)||(l.issuer!=undefined&&l.serial!=undefined)){i.push(new e(l))}var j=new a({array:i});return j.tohex()};this.getEncodedHex=function(){return this.tohex()};if(h!=undefined){this.setByParam(h)}};extendClass(KJUR.asn1.cms.ESSCertIDv2,KJUR.asn1.cms.ESSCertID);KJUR.asn1.cms.IssuerSerial=function(e){var i=Error,c=KJUR,h=c.asn1,g=h.DERInteger,f=h.DERSequence,j=h.cms,d=h.x509,a=d.GeneralNames,b=X509;j.IssuerSerial.superclass.constructor.call(this);this.setByParam=function(k){this.params=k};this.tohex=function(){var p=this.params;var l,r;if((typeof p==\"string\"&&p.indexOf(\"-----BEGIN\")!=-1)||p.cert!=undefined){var n;if(p.cert!=undefined){n=p.cert}else{n=p}var k=new b();k.readCertPEM(n);l=k.getIssuer();r={hex:k.getSerialNumberHex()}}else{if(p.issuer!=undefined&&p.serial){l=p.issuer;r=p.serial}else{throw new i(\"cert or issuer and serial parameter not specified\")}}var q=new a([{dn:l}]);var o=new g(r);var m=new f({array:[q,o]});return m.tohex()};this.getEncodedHex=function(){return this.tohex()};if(e!=undefined){this.setByParam(e)}};extendClass(KJUR.asn1.cms.IssuerSerial,KJUR.asn1.ASN1Object);KJUR.asn1.cms.SignerIdentifier=function(f){var c=KJUR,i=c.asn1,h=i.DERInteger,g=i.DERSequence,l=i.cms,k=l.IssuerAndSerialNumber,d=l.SubjectKeyIdentifier,e=i.x509,a=e.X500Name,b=X509,j=Error;l.SignerIdentifier.superclass.constructor.call(this);this.params=null;this.tohex=function(){var o=this.params;if(o.type==\"isssn\"){var m=new k(o);return m.tohex()}else{if(o.type==\"skid\"){var n=new d(o);return n.tohex()}else{throw new Error(\"wrong property for isssn or skid\")}}};this.getEncodedHex=function(){return this.tohex()};if(f!=undefined){this.setByParam(f)}};extendClass(KJUR.asn1.cms.SignerIdentifier,KJUR.asn1.ASN1Object);KJUR.asn1.cms.IssuerAndSerialNumber=function(e){var c=KJUR,h=c.asn1,g=h.DERInteger,f=h.DERSequence,j=h.cms,d=h.x509,a=d.X500Name,b=X509,i=Error;j.IssuerAndSerialNumber.superclass.constructor.call(this);this.params=null;this.tohex=function(){var p=this.params;var l,r;if((typeof p==\"string\"&&p.indexOf(\"-----BEGIN\")!=-1)||p.cert!=undefined){var n;if(p.cert!=undefined){n=p.cert}else{n=p}var k=new b();k.readCertPEM(n);l=k.getIssuer();r={hex:k.getSerialNumberHex()}}else{if(p.issuer!=undefined&&p.serial){l=p.issuer;r=p.serial}else{throw new i(\"cert or issuer and serial parameter not specified\")}}var q=new a(l);var o=new g(r);var m=new f({array:[q,o]});return m.tohex()};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(k){this.params=k};if(e!=undefined){this.setByParam(e)}};extendClass(KJUR.asn1.cms.IssuerAndSerialNumber,KJUR.asn1.ASN1Object);KJUR.asn1.cms.SubjectKeyIdentifier=function(g){var d=KJUR,k=d.asn1,i=k.DERInteger,h=k.DERSequence,j=k.ASN1Util.newObject,m=k.cms,f=m.IssuerAndSerialName,c=m.SubjectKeyIdentifier,e=k.x509,a=e.X500Name,b=X509,l=Error;m.SubjectKeyIdentifier.superclass.constructor.call(this);this.tohex=function(){var r=this.params;if(r.cert==undefined&&r.skid==undefined){throw new l(\"property cert nor skid undefined\")}var q;if(r.cert!=undefined){var n=new b(r.cert);var o=n.getExtSubjectKeyIdentifier();q=o.kid.hex}else{if(r.skid!=undefined){q=r.skid}}var p=j({tag:{tage:\"a0\",obj:{octstr:{hex:q}}}});return p.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.cms.SubjectKeyIdentifier,KJUR.asn1.ASN1Object);KJUR.asn1.cms.AttributeList=function(f){var d=Error,c=KJUR,b=c.asn1,a=b.DERSet,e=b.cms;e.AttributeList.superclass.constructor.call(this);this.params=null;this.hTLV=null;this.setByParam=function(g){this.params=g};this.tohex=function(){var o=this.params;if(this.hTLV!=null){return this.hTLV}var m=true;if(o.sortflag!=undefined){m=o.sortflag}var j=o.array;var g=[];for(var l=0;l<j.length;l++){var n=j[l];var k=n.attr;if(k==\"contentType\"){g.push(new e.ContentType(n))}else{if(k==\"messageDigest\"){g.push(new e.MessageDigest(n))}else{if(k==\"signingTime\"){g.push(new e.SigningTime(n))}else{if(k==\"signingCertificate\"){g.push(new e.SigningCertificate(n))}else{if(k==\"signingCertificateV2\"){g.push(new e.SigningCertificateV2(n))}else{if(k==\"signaturePolicyIdentifier\"){g.push(new KJUR.asn1.cades.SignaturePolicyIdentifier(n))}else{if(k==\"signatureTimeStamp\"||k==\"timeStampToken\"){g.push(new KJUR.asn1.cades.SignatureTimeStamp(n))}else{throw new d(\"unknown attr: \"+k)}}}}}}}}var h=new a({array:g,sortflag:m});this.hTLV=h.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(f!=undefined){this.setByParam(f)}};extendClass(KJUR.asn1.cms.AttributeList,KJUR.asn1.ASN1Object);KJUR.asn1.cms.SignerInfo=function(q){var n=Error,r=KJUR,i=r.asn1,c=i.DERInteger,f=i.DEROctetString,h=i.DERSequence,m=i.DERTaggedObject,k=i.cms,p=k.SignerIdentifier,l=k.AttributeList,g=k.ContentType,e=k.EncapsulatedContentInfo,d=k.MessageDigest,j=k.SignedData,a=i.x509,s=a.AlgorithmIdentifier,b=r.crypto,o=KEYUTIL;k.SignerInfo.superclass.constructor.call(this);this.params=null;this.sign=function(){var y=this.params;var x=y.sigalg;var u=(new l(y.sattrs)).tohex();var v=o.getKey(y.signkey);var w=new b.Signature({alg:x});w.init(v);w.updateHex(u);var t=w.sign();y.sighex=t};this.tohex=function(){var w=this.params;var t=[];t.push(new c({\"int\":w.version}));t.push(new p(w.id));t.push(new s({name:w.hashalg}));if(w.sattrs!=undefined){var x=new l(w.sattrs);try{t.push(new m({tag:\"a0\",explicit:false,obj:x}))}catch(v){throw new n(\"si sattr error: \"+v)}}if(w.sigalgfield!=undefined){t.push(new s({name:w.sigalgfield}))}else{t.push(new s({name:w.sigalg}))}if(w.sighex==undefined&&w.signkey!=undefined){this.sign()}t.push(new f({hex:w.sighex}));if(w.uattrs!=undefined){var x=new l(w.uattrs);try{t.push(new m({tag:\"a1\",explicit:false,obj:x}))}catch(v){throw new n(\"si uattr error: \"+v)}}var u=new h({array:t});return u.tohex()};this.getEncodedHex=function(){return this.tohex()};if(q!=undefined){this.setByParam(q)}};extendClass(KJUR.asn1.cms.SignerInfo,KJUR.asn1.ASN1Object);KJUR.asn1.cms.EncapsulatedContentInfo=function(g){var c=KJUR,b=c.asn1,e=b.DERTaggedObject,a=b.DERSequence,h=b.DERObjectIdentifier,d=b.DEROctetString,f=b.cms;f.EncapsulatedContentInfo.superclass.constructor.call(this);this.params=null;this.tohex=function(){var m=this.params;var i=[];i.push(new h(m.type));if(m.content!=undefined&&(m.content.hex!=undefined||m.content.str!=undefined)&&m.isDetached!=true){var k=new d(m.content);var l=new e({tag:\"a0\",explicit:true,obj:k});i.push(l)}var j=new a({array:i});return j.tohex()};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(i){this.params=i};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.cms.EncapsulatedContentInfo,KJUR.asn1.ASN1Object);KJUR.asn1.cms.ContentInfo=function(g){var c=KJUR,b=c.asn1,d=b.DERTaggedObject,a=b.DERSequence,h=b.DERObjectIdentifier,f=b.x509,e=f.OID.name2obj;KJUR.asn1.cms.ContentInfo.superclass.constructor.call(this);this.params=null;this.tohex=function(){var l=this.params;var i=[];i.push(new h(l.type));var k=new d({tag:\"a0\",explicit:true,obj:l.obj});i.push(k);var j=new a({array:i});return j.tohex()};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(i){this.params=i};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.cms.ContentInfo,KJUR.asn1.ASN1Object);KJUR.asn1.cms.SignedData=function(e){var j=Error,a=KJUR,h=a.asn1,m=h.ASN1Object,g=h.DERInteger,p=h.DERSet,f=h.DERSequence,b=h.DERTaggedObject,o=h.cms,l=o.EncapsulatedContentInfo,d=o.SignerInfo,q=o.ContentInfo,k=o.CertificateSet,i=o.RevocationInfoChoices,c=h.x509,n=c.AlgorithmIdentifier;KJUR.asn1.cms.SignedData.superclass.constructor.call(this);this.params=null;this.checkAndFixParam=function(){var r=this.params;this._setDigestAlgs(r);this._setContentTypeByEContent(r);this._setMessageDigestByEContent(r);this._setSignerInfoVersion(r);this._setSignedDataVersion(r)};this._setDigestAlgs=function(v){var u={};var t=v.sinfos;for(var r=0;r<t.length;r++){var s=t[r];u[s.hashalg]=1}v.hashalgs=Object.keys(u).sort()};this._setContentTypeByEContent=function(w){var u=w.econtent.type;var v=w.sinfos;for(var r=0;r<v.length;r++){var t=v[r];var s=this._getAttrParamByName(t,\"contentType\");s.type=u}};this._setMessageDigestByEContent=function(r){var v=r.econtent;var y=r.econtent.type;var x=v.content.hex;if(x==undefined&&v.type==\"data\"&&v.content.str!=undefined){x=rstrtohex(v.content.str)}var A=r.sinfos;for(var u=0;u<A.length;u++){var t=A[u];var s=t.hashalg;var z=this._getAttrParamByName(t,\"messageDigest\");var w=KJUR.crypto.Util.hashHex(x,s);z.hex=w}};this._getAttrParamByName=function(t,s){var u=t.sattrs.array;for(var r=0;r<u.length;r++){if(u[r].attr==s){return u[r]}}};this._setSignerInfoVersion=function(v){var t=v.sinfos;for(var r=0;r<t.length;r++){var s=t[r];var u=1;if(s.id.type==\"skid\"){u=3}s.version=u}};this._setSignedDataVersion=function(s){var r=this._getSignedDataVersion(s);s.version=r};this._getSignedDataVersion=function(w){if(w.revinfos!=undefined){var r=w.revinfos;for(var t=0;t<r.length;t++){var s=r[t];if(s.ocsp!=undefined){return 5}}}var v=w.sinfos;for(var t=0;t<v.length;t++){var u=w.sinfos[t];if(u.version==3){return 3}}if(w.econtent.type!=\"data\"){return 3}return 1};this.tohex=function(){var y=this.params;if(this.getEncodedHexPrepare!=undefined){this.getEncodedHexPrepare()}if(y.fixed!=true){this.checkAndFixParam()}var r=[];r.push(new g({\"int\":y.version}));var w=[];for(var v=0;v<y.hashalgs.length;v++){var t=y.hashalgs[v];w.push(new n({name:t}))}r.push(new p({array:w}));r.push(new l(y.econtent));if(y.certs!=undefined){r.push(new k(y.certs))}if(y.revinfos!=undefined){r.push(new i(y.revinfos))}var u=[];for(var v=0;v<y.sinfos.length;v++){var x=y.sinfos[v];u.push(new d(x))}r.push(new p({array:u}));var s=new f({array:r});return s.tohex()};this.getEncodedHex=function(){return this.tohex()};this.getContentInfo=function(){var r=new q({type:\"signed-data\",obj:this});return r};this.getContentInfoEncodedHex=function(){return this.getContentInfo().tohex()};if(e!=undefined){this.setByParam(e)}};extendClass(KJUR.asn1.cms.SignedData,KJUR.asn1.ASN1Object);KJUR.asn1.cms.CertificateSet=function(f){KJUR.asn1.cms.CertificateSet.superclass.constructor.call(this);var c=Error,b=KJUR.asn1,e=b.DERTaggedObject,a=b.DERSet,d=b.ASN1Object;this.params=null;this.tohex=function(){var j=this.params;var p=[];var q;if(j instanceof Array){q=j}else{if(j.array!=undefined){q=j.array}else{throw new c(\"cert array not specified\")}}for(var k=0;k<q.length;k++){var l=q[k];var n=pemtohex(l);var g=new d();g.hTLV=n;p.push(g)}var m={array:p};if(j.sortflag==false){m.sortflag=false}var o=new a(m);var h=new e({tag:\"a0\",explicit:false,obj:o});return h.tohex()};this.getEncodedHex=function(){return this.tohex()};if(f!=undefined){this.setByParam(f)}};extendClass(KJUR.asn1.cms.CertificateSet,KJUR.asn1.ASN1Object);KJUR.asn1.cms.RevocationInfoChoices=function(a){KJUR.asn1.cms.RevocationInfoChoices.superclass.constructor.call(this);this.params=null;this.tohex=function(){var e=this.params;if(!e instanceof Array){throw new Error(\"params is not array\")}var b=[];for(var c=0;c<e.length;c++){b.push(new KJUR.asn1.cms.RevocationInfoChoice(e[c]))}var d=KJUR.asn1.ASN1Util.newObject({tag:{tagi:\"a1\",obj:{set:b}}});return d.tohex()};this.getEncodedHex=function(){return this.tohex()};if(a!=undefined){this.setByParam(a)}};extendClass(KJUR.asn1.cms.RevocationInfoChoices,KJUR.asn1.ASN1Object);KJUR.asn1.cms.RevocationInfoChoice=function(a){KJUR.asn1.cms.RevocationInfoChoice.superclass.constructor.call(this);this.params=null;this.tohex=function(){var d=this.params;if(d.crl!=undefined&&typeof d.crl==\"string\"){var b=d.crl;if(d.crl.indexOf(\"-----BEGIN\")!=-1){b=pemtohex(d.crl)}return b}else{if(d.ocsp!=undefined){var c=KJUR.asn1.ASN1Util.newObject({tag:{tagi:\"a1\",obj:new KJUR.asn1.cms.OtherRevocationFormat(d)}});return c.tohex()}else{throw new Error(\"property crl or ocsp undefined\")}}};this.getEncodedHex=function(){return this.tohex()};if(a!=undefined){this.setByParam(a)}};extendClass(KJUR.asn1.cms.RevocationInfoChoice,KJUR.asn1.ASN1Object);KJUR.asn1.cms.OtherRevocationFormat=function(f){KJUR.asn1.cms.OtherRevocationFormat.superclass.constructor.call(this);var d=Error,c=KJUR,b=c.asn1,a=b.ASN1Util.newObject,e=c.lang.String.isHex;this.params=null;this.tohex=function(){var h=this.params;if(h.ocsp==undefined){throw new d(\"property ocsp not specified\")}if(!e(h.ocsp)||!ASN1HEX.isASN1HEX(h.ocsp)){throw new d(\"ocsp value not ASN.1 hex string\")}var g=a({seq:[{oid:\"1.3.6.1.5.5.7.16.2\"},{asn1:{tlv:h.ocsp}}]});return g.tohex()};this.getEncodedHex=function(){return this.tohex()};if(f!=undefined){this.setByParam(f)}};extendClass(KJUR.asn1.cms.OtherRevocationFormat,KJUR.asn1.ASN1Object);KJUR.asn1.cms.CMSUtil=new function(){};KJUR.asn1.cms.CMSUtil.newSignedData=function(a){return new KJUR.asn1.cms.SignedData(a)};KJUR.asn1.cms.CMSUtil.verifySignedData=function(n){var C=KJUR,p=C.asn1,s=p.cms,D=s.SignerInfo,q=s.SignedData,y=s.SigningTime,b=s.SigningCertificate,d=s.SigningCertificateV2,A=p.cades,u=A.SignaturePolicyIdentifier,i=C.lang.String.isHex,v=ASN1HEX,h=v.getVbyList,a=v.getTLVbyList,t=v.getIdxbyList,z=v.getChildIdx,c=v.getTLV,B=v.oidname,j=C.crypto.Util.hashHex;if(n.cms===undefined&&!i(n.cms)){}var E=n.cms;var g=function(J,H){var G;for(var I=3;I<6;I++){G=t(J,0,[1,0,I]);if(G!==undefined){var F=J.substr(G,2);if(F===\"a0\"){H.certsIdx=G}if(F===\"a1\"){H.revinfosIdx=G}if(F===\"31\"){H.signerinfosIdx=G}}}};var l=function(I,F){var H=F.signerinfosIdx;if(H===undefined){return}var L=z(I,H);F.signerInfoIdxList=L;for(var G=0;G<L.length;G++){var K=L[G];var J={idx:K};k(I,J);F.signerInfos.push(J)}};var k=function(I,J){var F=J.idx;J.signerid_issuer1=a(I,F,[1,0],\"30\");J.signerid_serial1=h(I,F,[1,1],\"02\");J.hashalg=B(h(I,F,[2,0],\"06\"));var H=t(I,F,[3],\"a0\");J.idxSignedAttrs=H;f(I,J,H);var G=z(I,F);var K=G.length;if(K<6){throw\"malformed SignerInfo\"}J.sigalg=B(h(I,F,[K-2,0],\"06\"));J.sigval=h(I,F,[K-1],\"04\")};var f=function(L,M,F){var J=z(L,F);M.signedAttrIdxList=J;for(var K=0;K<J.length;K++){var I=J[K];var G=h(L,I,[0],\"06\");var H;if(G===\"2a864886f70d010905\"){H=hextoutf8(h(L,I,[1,0]));M.saSigningTime=H}else{if(G===\"2a864886f70d010904\"){H=h(L,I,[1,0],\"04\");M.saMessageDigest=H}}}};var w=function(G,F){if(h(G,0,[0],\"06\")!==\"2a864886f70d010702\"){return F}F.cmsType=\"signedData\";F.econtent=h(G,0,[1,0,2,1,0]);g(G,F);F.signerInfos=[];l(G,F)};var o=function(J,F){var G=F.parse.signerInfos;var L=G.length;var K=true;for(var I=0;I<L;I++){var H=G[I];e(J,F,H,I);if(!H.isValid){K=false}}F.isValid=K};var x=function(F,Q,J,P){var N=Q.parse.certsIdx;var H;if(Q.certs===undefined){H=[];Q.certkeys=[];var K=z(F,N);for(var I=0;I<K.length;I++){var M=c(F,K[I]);var O=new X509();O.readCertHex(M);H[I]=O;Q.certkeys[I]=O.getPublicKey()}Q.certs=H}else{H=Q.certs}Q.cccc=H.length;Q.cccci=K.length;for(var I=0;I<H.length;I++){var L=O.getIssuerHex();var G=O.getSerialNumberHex();if(J.signerid_issuer1===L&&J.signerid_serial1===G){J.certkey_idx=I}}};var e=function(F,R,I,N){I.verifyDetail={};var Q=I.verifyDetail;var K=R.parse.econtent;var G=I.hashalg;var L=I.saMessageDigest;Q.validMessageDigest=false;if(j(K,G)===L){Q.validMessageDigest=true}x(F,R,I,N);Q.validSignatureValue=false;var H=I.sigalg;var M=\"31\"+c(F,I.idxSignedAttrs).substr(2);I.signedattrshex=M;var J=R.certs[I.certkey_idx].getPublicKey();var P=new KJUR.crypto.Signature({alg:H});P.init(J);P.updateHex(M);var O=P.verify(I.sigval);Q.validSignatureValue_isValid=O;if(O===true){Q.validSignatureValue=true}I.isValid=false;if(Q.validMessageDigest&&Q.validSignatureValue){I.isValid=true}};var m=function(){};var r={isValid:false,parse:{}};w(E,r.parse);o(E,r);return r};KJUR.asn1.cms.CMSParser=function(){var g=Error,a=X509,h=new a(),l=ASN1HEX,i=l.getV,b=l.getTLV,f=l.getIdxbyList,c=l.getTLVbyList,d=l.getTLVbyListEx,e=l.getVbyList,k=l.getVbyListEx,j=l.getChildIdx;this.getCMSSignedData=function(m){var o=c(m,0,[1,0]);var n=this.getSignedData(o);return n};this.getSignedData=function(o){var q=j(o,0);var v={};var p=i(o,q[0]);var n=parseInt(p,16);v.version=n;var r=b(o,q[1]);v.hashalgs=this.getHashAlgArray(r);var t=b(o,q[2]);v.econtent=this.getEContent(t);var m=d(o,0,[\"[0]\"]);if(m!=null){v.certs=this.getCertificateSet(m)}var u=d(o,0,[\"[1]\"]);if(u!=null){}var s=d(o,0,[3]);v.sinfos=this.getSignerInfos(s);return v};this.getHashAlgArray=function(s){var q=j(s,0);var m=new a();var n=[];for(var r=0;r<q.length;r++){var p=b(s,q[r]);var o=m.getAlgorithmIdentifierName(p);n.push(o)}return n};this.getEContent=function(m){var n={};var p=e(m,0,[0]);var o=e(m,0,[1,0]);n.type=KJUR.asn1.x509.OID.oid2name(ASN1HEX.hextooidstr(p));n.content={hex:o};return n};this.getSignerInfos=function(p){var r=[];var m=j(p,0);for(var n=0;n<m.length;n++){var o=b(p,m[n]);var q=this.getSignerInfo(o);r.push(q)}return r};this.getSignerInfo=function(s){var y={};var u=j(s,0);var q=l.getInt(s,u[0],-1);if(q!=-1){y.version=q}var t=b(s,u[1]);var p=this.getIssuerAndSerialNumber(t);y.id=p;var z=b(s,u[2]);var n=h.getAlgorithmIdentifierName(z);y.hashalg=n;var w=d(s,0,[\"[0]\"]);if(w!=null){var A=this.getAttributeList(w);y.sattrs=A}var m=d(s,0,[3]);var x=h.getAlgorithmIdentifierName(m);y.sigalg=x;var o=k(s,0,[4]);y.sighex=o;var r=d(s,0,[\"[1]\"]);if(r!=null){var v=this.getAttributeList(r);y.uattrs=v}return y};this.getSignerIdentifier=function(m){if(m.substr(0,2)==\"30\"){return this.getIssuerAndSerialNumber(m)}else{throw new Error(\"SKID of signerIdentifier not supported\")}};this.getIssuerAndSerialNumber=function(n){var o={type:\"isssn\"};var m=j(n,0);var p=b(n,m[0]);o.issuer=h.getX500Name(p);var q=i(n,m[1]);o.serial={hex:q};return o};this.getAttributeList=function(q){var m=[];var n=j(q,0);for(var o=0;o<n.length;o++){var p=b(q,n[o]);var r=this.getAttribute(p);m.push(r)}return{array:m}};this.getAttribute=function(p){var t={};var q=j(p,0);var o=l.getOID(p,q[0]);var m=KJUR.asn1.x509.OID.oid2name(o);t.attr=m;var r=b(p,q[1]);var u=j(r,0);if(u.length==1){t.valhex=b(r,u[0])}else{var s=[];for(var n=0;n<u.length;n++){s.push(b(r,u[n]))}t.valhex=s}if(m==\"contentType\"){this.setContentType(t)}else{if(m==\"messageDigest\"){this.setMessageDigest(t)}else{if(m==\"signingTime\"){this.setSigningTime(t)}else{if(m==\"signingCertificate\"){this.setSigningCertificate(t)}else{if(m==\"signingCertificateV2\"){this.setSigningCertificateV2(t)}else{if(m==\"signaturePolicyIdentifier\"){this.setSignaturePolicyIdentifier(t)}}}}}}return t};this.setContentType=function(m){var n=l.getOIDName(m.valhex,0,null);if(n!=null){m.type=n;delete m.valhex}};this.setSigningTime=function(o){var n=i(o.valhex,0);var m=hextoutf8(n);o.str=m;delete o.valhex};this.setMessageDigest=function(m){var n=i(m.valhex,0);m.hex=n;delete m.valhex};this.setSigningCertificate=function(n){var q=j(n.valhex,0);if(q.length>0){var m=b(n.valhex,q[0]);var p=j(m,0);var t=[];for(var o=0;o<p.length;o++){var s=b(m,p[o]);var u=this.getESSCertID(s);t.push(u)}n.array=t}if(q.length>1){var r=b(n.valhex,q[1]);n.polhex=r}delete n.valhex};this.setSignaturePolicyIdentifier=function(s){var q=j(s.valhex,0);if(q.length>0){var r=l.getOID(s.valhex,q[0]);s.oid=r}if(q.length>1){var m=new a();var t=j(s.valhex,q[1]);var p=b(s.valhex,t[0]);var o=m.getAlgorithmIdentifierName(p);s.alg=o;var n=i(s.valhex,t[1]);s.hash=n}delete s.valhex};this.setSigningCertificateV2=function(o){var s=j(o.valhex,0);if(s.length>0){var n=b(o.valhex,s[0]);var r=j(n,0);var u=[];for(var q=0;q<r.length;q++){var m=b(n,r[q]);var p=this.getESSCertIDv2(m);u.push(p)}o.array=u}if(s.length>1){var t=b(o.valhex,s[1]);o.polhex=t}delete o.valhex};this.getESSCertID=function(o){var p={};var n=j(o,0);if(n.length>0){var q=i(o,n[0]);p.hash=q}if(n.length>1){var m=b(o,n[1]);var r=this.getIssuerSerial(m);if(r.serial!=undefined){p.serial=r.serial}if(r.issuer!=undefined){p.issuer=r.issuer}}return p};this.getESSCertIDv2=function(q){var s={};var p=j(q,0);if(p.length<1||3<p.length){throw new g(\"wrong number of elements\")}var r=0;if(q.substr(p[0],2)==\"30\"){var o=b(q,p[0]);s.alg=h.getAlgorithmIdentifierName(o);r++}else{s.alg=\"sha256\"}var n=i(q,p[r]);s.hash=n;if(p.length>r+1){var m=b(q,p[r+1]);var t=this.getIssuerSerial(m);s.issuer=t.issuer;s.serial=t.serial}return s};this.getIssuerSerial=function(q){var r={};var n=j(q,0);var m=b(q,n[0]);var p=h.getGeneralNames(m);var o=p[0].dn;r.issuer=o;var s=i(q,n[1]);r.serial={hex:s};return r};this.getCertificateSet=function(p){var n=j(p,0);var m=[];for(var o=0;o<n.length;o++){var r=b(p,n[o]);if(r.substr(0,2)==\"30\"){var q=hextopem(r,\"CERTIFICATE\");m.push(q)}}return{array:m,sortflag:false}}};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.asn1==\"undefined\"||!KJUR.asn1){KJUR.asn1={}}if(typeof KJUR.asn1.tsp==\"undefined\"||!KJUR.asn1.tsp){KJUR.asn1.tsp={}}KJUR.asn1.tsp.TimeStampToken=function(d){var c=KJUR,b=c.asn1,a=b.tsp;a.TimeStampToken.superclass.constructor.call(this);this.params=null;this.getEncodedHexPrepare=function(){var e=new a.TSTInfo(this.params.econtent.content);this.params.econtent.content.hex=e.tohex()};if(d!=undefined){this.setByParam(d)}};extendClass(KJUR.asn1.tsp.TimeStampToken,KJUR.asn1.cms.SignedData);KJUR.asn1.tsp.TSTInfo=function(f){var m=Error,c=KJUR,j=c.asn1,g=j.DERSequence,i=j.DERInteger,l=j.DERBoolean,h=j.DERGeneralizedTime,n=j.DERObjectIdentifier,e=j.DERTaggedObject,k=j.tsp,d=k.MessageImprint,b=k.Accuracy,a=j.x509.X500Name,o=j.x509.GeneralName;k.TSTInfo.superclass.constructor.call(this);this.dVersion=new i({\"int\":1});this.dPolicy=null;this.dMessageImprint=null;this.dSerial=null;this.dGenTime=null;this.dAccuracy=null;this.dOrdering=null;this.dNonce=null;this.dTsa=null;this.tohex=function(){var p=[this.dVersion];if(this.dPolicy==null){throw new Error(\"policy shall be specified.\")}p.push(this.dPolicy);if(this.dMessageImprint==null){throw new Error(\"messageImprint shall be specified.\")}p.push(this.dMessageImprint);if(this.dSerial==null){throw new Error(\"serialNumber shall be specified.\")}p.push(this.dSerial);if(this.dGenTime==null){throw new Error(\"genTime shall be specified.\")}p.push(this.dGenTime);if(this.dAccuracy!=null){p.push(this.dAccuracy)}if(this.dOrdering!=null){p.push(this.dOrdering)}if(this.dNonce!=null){p.push(this.dNonce)}if(this.dTsa!=null){p.push(this.dTsa)}var q=new g({array:p});this.hTLV=q.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(f!==undefined){if(typeof f.policy==\"string\"){if(!f.policy.match(/^[0-9.]+$/)){throw\"policy shall be oid like 0.1.4.134\"}this.dPolicy=new n({oid:f.policy})}if(f.messageImprint!==undefined){this.dMessageImprint=new d(f.messageImprint)}if(f.serial!==undefined){this.dSerial=new i(f.serial)}if(f.genTime!==undefined){this.dGenTime=new h(f.genTime)}if(f.accuracy!==undefined){this.dAccuracy=new b(f.accuracy)}if(f.ordering!==undefined&&f.ordering==true){this.dOrdering=new l()}if(f.nonce!==undefined){this.dNonce=new i(f.nonce)}if(f.tsa!==undefined){this.dTsa=new e({tag:\"a0\",explicit:true,obj:new o({dn:f.tsa})})}}};extendClass(KJUR.asn1.tsp.TSTInfo,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.Accuracy=function(d){var c=KJUR,b=c.asn1,a=b.ASN1Util.newObject;b.tsp.Accuracy.superclass.constructor.call(this);this.params=null;this.tohex=function(){var f=this.params;var e=[];if(f.seconds!=undefined&&typeof f.seconds==\"number\"){e.push({\"int\":f.seconds})}if(f.millis!=undefined&&typeof f.millis==\"number\"){e.push({tag:{tagi:\"80\",obj:{\"int\":f.millis}}})}if(f.micros!=undefined&&typeof f.micros==\"number\"){e.push({tag:{tagi:\"81\",obj:{\"int\":f.micros}}})}return a({seq:e}).tohex()};this.getEncodedHex=function(){return this.tohex()};if(d!=undefined){this.setByParam(d)}};extendClass(KJUR.asn1.tsp.Accuracy,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.MessageImprint=function(g){var c=KJUR,b=c.asn1,a=b.DERSequence,d=b.DEROctetString,f=b.x509,e=f.AlgorithmIdentifier;b.tsp.MessageImprint.superclass.constructor.call(this);this.params=null;this.tohex=function(){var k=this.params;var j=new e({name:k.alg});var h=new d({hex:k.hash});var i=new a({array:[j,h]});return i.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!==undefined){this.setByParam(g)}};extendClass(KJUR.asn1.tsp.MessageImprint,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.TimeStampReq=function(c){var a=KJUR,f=a.asn1,d=f.DERSequence,e=f.DERInteger,h=f.DERBoolean,j=f.ASN1Object,i=f.DERObjectIdentifier,g=f.tsp,b=g.MessageImprint;g.TimeStampReq.superclass.constructor.call(this);this.params=null;this.tohex=function(){var m=this.params;var k=[];k.push(new e({\"int\":1}));if(m.messageImprint instanceof KJUR.asn1.ASN1Object){k.push(m.messageImprint)}else{k.push(new b(m.messageImprint))}if(m.policy!=undefined){k.push(new i(m.policy))}if(m.nonce!=undefined){k.push(new e(m.nonce))}if(m.certreq==true){k.push(new h())}var l=new d({array:k});return l.tohex()};this.getEncodedHex=function(){return this.tohex()};if(c!=undefined){this.setByParam(c)}};extendClass(KJUR.asn1.tsp.TimeStampReq,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.TimeStampResp=function(g){var e=KJUR,d=e.asn1,c=d.DERSequence,f=d.ASN1Object,a=d.tsp,b=a.PKIStatusInfo;a.TimeStampResp.superclass.constructor.call(this);this.params=null;this.tohex=function(){var j=this.params;var h=[];if(j.econtent!=undefined||j.tst!=undefined){if(j.statusinfo!=undefined){h.push(new b(j.statusinfo))}else{h.push(new b(\"granted\"))}if(j.econtent!=undefined){h.push((new a.TimeStampToken(j)).getContentInfo())}else{if(j.tst instanceof d.ASN1Object){h.push(j.tst)}else{throw new Error(\"improper member tst value\")}}}else{if(j.statusinfo!=undefined){h.push(new b(j.statusinfo))}else{throw new Error(\"parameter for token nor statusinfo not specified\")}}var i=new c({array:h});return i.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.tsp.TimeStampResp,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.PKIStatusInfo=function(d){var h=Error,a=KJUR,g=a.asn1,e=g.DERSequence,i=g.tsp,f=i.PKIStatus,c=i.PKIFreeText,b=i.PKIFailureInfo;i.PKIStatusInfo.superclass.constructor.call(this);this.params=null;this.tohex=function(){var l=this.params;var j=[];if(typeof l==\"string\"){j.push(new f(l))}else{if(l.status==undefined){throw new h(\"property 'status' unspecified\")}j.push(new f(l.status));if(l.statusstr!=undefined){j.push(new c(l.statusstr))}if(l.failinfo!=undefined){j.push(new b(l.failinfo))}}var k=new e({array:j});return k.tohex()};this.getEncodedHex=function(){return this.tohex()};if(d!=undefined){this.setByParam(d)}};extendClass(KJUR.asn1.tsp.PKIStatusInfo,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.PKIStatus=function(g){var e=Error,d=KJUR,c=d.asn1,f=c.DERInteger,b=c.tsp;b.PKIStatus.superclass.constructor.call(this);var a={granted:0,grantedWithMods:1,rejection:2,waiting:3,revocationWarning:4,revocationNotification:5};this.params=null;this.tohex=function(){var k=this.params;var h,j;if(typeof k==\"string\"){try{j=a[k]}catch(i){throw new e(\"undefined name: \"+k)}}else{if(typeof k==\"number\"){j=k}else{throw new e(\"unsupported params\")}}return(new f({\"int\":j})).tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.tsp.PKIStatus,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.PKIFreeText=function(g){var f=Error,e=KJUR,d=e.asn1,b=d.DERSequence,c=d.DERUTF8String,a=d.tsp;a.PKIFreeText.superclass.constructor.call(this);this.params=null;this.tohex=function(){var l=this.params;if(!l instanceof Array){throw new f(\"wrong params: not array\")}var h=[];for(var k=0;k<l.length;k++){h.push(new c({str:l[k]}))}var j=new b({array:h});return j.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.tsp.PKIFreeText,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.PKIFailureInfo=function(h){var f=Error,e=KJUR,d=e.asn1,g=d.DERBitString,b=d.tsp,c=b.PKIFailureInfo;var a={badAlg:0,badRequest:2,badDataFormat:5,timeNotAvailable:14,unacceptedPolicy:15,unacceptedExtension:16,addInfoNotAvailable:17,systemFailure:25};c.superclass.constructor.call(this);this.params=null;this.getBinValue=function(){var n=this.params;var m=0;if(typeof n==\"number\"&&0<=n&&n<=25){m|=1<<n;var k=m.toString(2);var l=\"\";for(var j=k.length-1;j>=0;j--){l+=k[j]}return l}else{if(typeof n==\"string\"&&a[n]!=undefined){return namearraytobinstr([n],a)}else{if(typeof n==\"object\"&&n.length!=undefined){return namearraytobinstr(n,a)}else{throw new f(\"wrong params\")}}}return};this.tohex=function(){var j=this.params;var i=this.getBinValue();return(new g({bin:i})).tohex()};this.getEncodedHex=function(){return this.tohex()};if(h!=undefined){this.setByParam(h)}};extendClass(KJUR.asn1.tsp.PKIFailureInfo,KJUR.asn1.ASN1Object);KJUR.asn1.tsp.AbstractTSAAdapter=function(a){this.getTSTHex=function(c,b){throw\"not implemented yet\"}};KJUR.asn1.tsp.SimpleTSAAdapter=function(e){var d=KJUR,c=d.asn1,a=c.tsp,b=d.crypto.Util.hashHex;a.SimpleTSAAdapter.superclass.constructor.call(this);this.params=null;this.serial=0;this.getTSTHex=function(g,f){var i=b(g,f);this.params.econtent.content.messageImprint={alg:f,hash:i};this.params.econtent.content.serial={\"int\":this.serial++};var h=Math.floor(Math.random()*1000000000);this.params.econtent.content.nonce={\"int\":h};var j=new a.TimeStampToken(this.params);return j.getContentInfoEncodedHex()};if(e!==undefined){this.params=e}};extendClass(KJUR.asn1.tsp.SimpleTSAAdapter,KJUR.asn1.tsp.AbstractTSAAdapter);KJUR.asn1.tsp.FixedTSAAdapter=function(e){var d=KJUR,c=d.asn1,a=c.tsp,b=d.crypto.Util.hashHex;a.FixedTSAAdapter.superclass.constructor.call(this);this.params=null;this.getTSTHex=function(g,f){var h=b(g,f);this.params.econtent.content.messageImprint={alg:f,hash:h};var i=new a.TimeStampToken(this.params);return i.getContentInfoEncodedHex()};if(e!==undefined){this.params=e}};extendClass(KJUR.asn1.tsp.FixedTSAAdapter,KJUR.asn1.tsp.AbstractTSAAdapter);KJUR.asn1.tsp.TSPUtil=new function(){};KJUR.asn1.tsp.TSPUtil.newTimeStampToken=function(a){return new KJUR.asn1.tsp.TimeStampToken(a)};KJUR.asn1.tsp.TSPUtil.parseTimeStampReq=function(a){var b=new KJUR.asn1.tsp.TSPParser();return b.getTimeStampReq(a)};KJUR.asn1.tsp.TSPUtil.parseMessageImprint=function(a){var b=new KJUR.asn1.tsp.TSPParser();return b.getMessageImprint(a)};KJUR.asn1.tsp.TSPParser=function(){var e=Error,a=X509,f=new a(),k=ASN1HEX,g=k.getV,b=k.getTLV,d=k.getIdxbyList,c=k.getTLVbyListEx,i=k.getChildIdx;var j=[\"granted\",\"grantedWithMods\",\"rejection\",\"waiting\",\"revocationWarning\",\"revocationNotification\"];var h={0:\"badAlg\",2:\"badRequest\",5:\"badDataFormat\",14:\"timeNotAvailable\",15:\"unacceptedPolicy\",16:\"unacceptedExtension\",17:\"addInfoNotAvailable\",25:\"systemFailure\"};this.getResponse=function(n){var l=i(n,0);if(l.length==1){return this.getPKIStatusInfo(b(n,l[0]))}else{if(l.length>1){var o=this.getPKIStatusInfo(b(n,l[0]));var m=b(n,l[1]);var p=this.getToken(m);p.statusinfo=o;return p}}};this.getToken=function(m){var l=new KJUR.asn1.cms.CMSParser;var n=l.getCMSSignedData(m);this.setTSTInfo(n);return n};this.setTSTInfo=function(l){var o=l.econtent;if(o.type==\"tstinfo\"){var n=o.content.hex;var m=this.getTSTInfo(n);o.content=m}};this.getTSTInfo=function(r){var x={};var s=i(r,0);var p=g(r,s[1]);x.policy=hextooid(p);var o=b(r,s[2]);x.messageImprint=this.getMessageImprint(o);var u=g(r,s[3]);x.serial={hex:u};var y=g(r,s[4]);x.genTime={str:hextoutf8(y)};var q=0;if(s.length>5&&r.substr(s[5],2)==\"30\"){var v=b(r,s[5]);x.accuracy=this.getAccuracy(v);q++}if(s.length>5+q&&r.substr(s[5+q],2)==\"01\"){var z=g(r,s[5+q]);if(z==\"ff\"){x.ordering=true}q++}if(s.length>5+q&&r.substr(s[5+q],2)==\"02\"){var n=g(r,s[5+q]);x.nonce={hex:n};q++}if(s.length>5+q&&r.substr(s[5+q],2)==\"a0\"){var m=b(r,s[5+q]);m=\"30\"+m.substr(2);pGeneralNames=f.getGeneralNames(m);var t=pGeneralNames[0].dn;x.tsa=t;q++}if(s.length>5+q&&r.substr(s[5+q],2)==\"a1\"){var l=b(r,s[5+q]);l=\"30\"+l.substr(2);var w=f.getExtParamArray(l);x.ext=w;q++}return x};this.getAccuracy=function(q){var r={};var o=i(q,0);for(var p=0;p<o.length;p++){var m=q.substr(o[p],2);var l=g(q,o[p]);var n=parseInt(l,16);if(m==\"02\"){r.seconds=n}else{if(m==\"80\"){r.millis=n}else{if(m==\"81\"){r.micros=n}}}}return r};this.getMessageImprint=function(n){if(n.substr(0,2)!=\"30\"){throw new Error(\"head of messageImprint hex shall be x30\")}var s={};var l=i(n,0);var t=d(n,0,[0,0]);var o=g(n,t);var p=k.hextooidstr(o);var r=KJUR.asn1.x509.OID.oid2name(p);if(r==\"\"){throw new Error(\"hashAlg name undefined: \"+p)}var m=r;var q=d(n,0,[1]);s.alg=m;s.hash=g(n,q);return s};this.getPKIStatusInfo=function(o){var t={};var r=i(o,0);var n=0;try{var l=g(o,r[0]);var p=parseInt(l,16);t.status=j[p]}catch(s){}if(r.length>1&&o.substr(r[1],2)==\"30\"){var m=b(o,r[1]);t.statusstr=this.getPKIFreeText(m);n++}if(r.length>n&&o.substr(r[1+n],2)==\"03\"){var q=b(o,r[1+n]);t.failinfo=this.getPKIFailureInfo(q)}return t};this.getPKIFreeText=function(n){var o=[];var l=i(n,0);for(var m=0;m<l.length;m++){o.push(k.getString(n,l[m]))}return o};this.getPKIFailureInfo=function(l){var m=k.getInt(l,0);if(h[m]!=undefined){return h[m]}else{return m}};this.getTimeStampReq=function(q){var p={};p.certreq=false;var s=i(q,0);if(s.length<2){throw new Error(\"TimeStampReq must have at least 2 items\")}var n=b(q,s[1]);p.messageImprint=KJUR.asn1.tsp.TSPUtil.parseMessageImprint(n);for(var o=2;o<s.length;o++){var m=s[o];var l=q.substr(m,2);if(l==\"06\"){var r=g(q,m);p.policy=k.hextooidstr(r)}if(l==\"02\"){p.nonce=g(q,m)}if(l==\"01\"){p.certreq=true}}return p}};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.asn1==\"undefined\"||!KJUR.asn1){KJUR.asn1={}}if(typeof KJUR.asn1.cades==\"undefined\"||!KJUR.asn1.cades){KJUR.asn1.cades={}}KJUR.asn1.cades.SignaturePolicyIdentifier=function(e){var c=KJUR,b=c.asn1,a=b.cades,d=a.SignaturePolicyId;a.SignaturePolicyIdentifier.superclass.constructor.call(this);this.typeOid=\"1.2.840.113549.1.9.16.2.15\";this.params=null;this.getValueArray=function(){return[new d(this.params)]};this.setByParam=function(f){this.params=f};if(e!=undefined){this.setByParam(e)}};extendClass(KJUR.asn1.cades.SignaturePolicyIdentifier,KJUR.asn1.cms.Attribute);KJUR.asn1.cades.SignaturePolicyId=function(e){var a=KJUR,g=a.asn1,f=g.DERSequence,i=g.DERObjectIdentifier,d=g.x509,j=d.AlgorithmIdentifier,c=g.cades,h=c.SignaturePolicyId,b=c.OtherHashAlgAndValue;h.superclass.constructor.call(this);this.params=null;this.tohex=function(){var m=this.params;var k=[];k.push(new i(m.oid));k.push(new b(m));var l=new f({array:k});return l.tohex()};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(k){this.params=k};if(e!=undefined){this.setByParam(e)}};extendClass(KJUR.asn1.cades.SignaturePolicyId,KJUR.asn1.ASN1Object);KJUR.asn1.cades.OtherHashAlgAndValue=function(e){var h=Error,a=KJUR,g=a.asn1,f=g.DERSequence,i=g.DEROctetString,d=g.x509,j=d.AlgorithmIdentifier,c=g.cades,b=c.OtherHashAlgAndValue;b.superclass.constructor.call(this);this.params=null;this.tohex=function(){var o=this.params;if(o.alg==undefined){throw new h(\"property 'alg' not specified\")}if(o.hash==undefined&&o.cert==undefined){throw new h(\"property 'hash' nor 'cert' not specified\")}var m=null;if(o.hash!=undefined){m=o.hash}else{if(o.cert!=undefined){if(typeof o.cert!=\"string\"){throw new h(\"cert not string\")}var n=o.cert;if(o.cert.indexOf(\"-----BEGIN\")!=-1){n=pemtohex(o.cert)}m=KJUR.crypto.Util.hashHex(n,o.alg)}}var k=[];k.push(new j({name:o.alg}));k.push(new i({hex:m}));var l=new f({array:k});return l.tohex()};this.getEncodedHex=function(){return this.tohex()};if(e!=undefined){this.setByParam(e)}};extendClass(KJUR.asn1.cades.OtherHashAlgAndValue,KJUR.asn1.ASN1Object);KJUR.asn1.cades.OtherHashValue=function(g){KJUR.asn1.cades.OtherHashValue.superclass.constructor.call(this);var d=Error,c=KJUR,f=c.lang.String.isHex,b=c.asn1,e=b.DEROctetString,a=c.crypto.Util.hashHex;this.params=null;this.tohex=function(){var j=this.params;if(j.hash==undefined&&j.cert==undefined){throw new d(\"hash or cert not specified\")}var h=null;if(j.hash!=undefined){h=j.hash}else{if(j.cert!=undefined){if(typeof j.cert!=\"string\"){throw new d(\"cert not string\")}var i=j.cert;if(j.cert.indexOf(\"-----BEGIN\")!=-1){i=pemtohex(j.cert)}h=KJUR.crypto.Util.hashHex(i,\"sha1\")}}return(new e({hex:h})).tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.cades.OtherHashValue,KJUR.asn1.ASN1Object);KJUR.asn1.cades.SignatureTimeStamp=function(h){var d=Error,c=KJUR,f=c.lang.String.isHex,b=c.asn1,e=b.ASN1Object,g=b.x509,a=b.cades;a.SignatureTimeStamp.superclass.constructor.call(this);this.typeOid=\"1.2.840.113549.1.9.16.2.14\";this.params=null;this.getValueArray=function(){var l=this.params;if(l.tst!=undefined){if(f(l.tst)){var j=new e();j.hTLV=l.tst;return[j]}else{if(l.tst instanceof e){return[l.tst]}else{throw new d(\"params.tst has wrong value\")}}}else{if(l.res!=undefined){var k=l.res;if(k instanceof e){k=k.tohex()}if(typeof k!=\"string\"||(!f(k))){throw new d(\"params.res has wrong value\")}var i=ASN1HEX.getTLVbyList(k,0,[1]);var j=new e();j.hTLV=l.tst;return[j]}}};if(h!=null){this.setByParam(h)}};extendClass(KJUR.asn1.cades.SignatureTimeStamp,KJUR.asn1.cms.Attribute);KJUR.asn1.cades.CompleteCertificateRefs=function(h){var f=Error,e=KJUR,d=e.asn1,b=d.DERSequence,c=d.cades,a=c.OtherCertID,g=e.lang.String.isHex;c.CompleteCertificateRefs.superclass.constructor.call(this);this.typeOid=\"1.2.840.113549.1.9.16.2.21\";this.params=null;this.getValueArray=function(){var o=this.params;var k=[];for(var m=0;m<o.array.length;m++){var n=o.array[m];if(typeof n==\"string\"){if(n.indexOf(\"-----BEGIN\")!=-1){n={cert:n}}else{if(g(n)){n={hash:n}}else{throw new f(\"unsupported value: \"+n)}}}if(o.alg!=undefined&&n.alg==undefined){n.alg=o.alg}if(o.hasis!=undefined&&n.hasis==undefined){n.hasis=o.hasis}var j=new a(n);k.push(j)}var l=new b({array:k});return[l]};if(h!=undefined){this.setByParam(h)}};extendClass(KJUR.asn1.cades.CompleteCertificateRefs,KJUR.asn1.cms.Attribute);KJUR.asn1.cades.OtherCertID=function(e){var a=KJUR,h=a.asn1,f=h.DERSequence,i=h.cms,g=i.IssuerSerial,c=h.cades,d=c.OtherHashValue,b=c.OtherHashAlgAndValue;c.OtherCertID.superclass.constructor.call(this);this.params=e;this.tohex=function(){var n=this.params;if(typeof n==\"string\"){if(n.indexOf(\"-----BEGIN\")!=-1){n={cert:n}}else{if(_isHex(n)){n={hash:n}}}}var j=[];var m=null;if(n.alg!=undefined){m=new b(n)}else{m=new d(n)}j.push(m);if((n.cert!=undefined&&n.hasis==true)||(n.issuer!=undefined&&n.serial!=undefined)){var l=new g(n);j.push(l)}var k=new f({array:j});return k.tohex()};this.getEncodedHex=function(){return this.tohex()};if(e!=undefined){this.setByParam(e)}};extendClass(KJUR.asn1.cades.OtherCertID,KJUR.asn1.ASN1Object);KJUR.asn1.cades.OtherHash=function(g){var i=Error,a=KJUR,h=a.asn1,j=h.cms,c=h.cades,b=c.OtherHashAlgAndValue,e=c.OtherHashValue,d=a.crypto.Util.hashHex,f=a.lang.String.isHex;c.OtherHash.superclass.constructor.call(this);this.params=null;this.tohex=function(){var l=this.params;if(typeof l==\"string\"){if(l.indexOf(\"-----BEGIN\")!=-1){l={cert:l}}else{if(f(l)){l={hash:l}}}}var k=null;if(l.alg!=undefined){k=new b(l)}else{k=new e(l)}return k.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!=undefined){this.setByParam(g)}};extendClass(KJUR.asn1.cades.OtherHash,KJUR.asn1.ASN1Object);KJUR.asn1.cades.CAdESUtil=new function(){};KJUR.asn1.cades.CAdESUtil.parseSignedDataForAddingUnsigned=function(a){var c=new KJUR.asn1.cms.CMSParser();var b=c.getCMSSignedData(a);return b};KJUR.asn1.cades.CAdESUtil.parseSignerInfoForAddingUnsigned=function(g,q,c){var p=ASN1HEX,s=p.getChildIdx,a=p.getTLV,l=p.getV,v=KJUR,h=v.asn1,n=h.ASN1Object,j=h.cms,k=j.AttributeList,w=j.SignerInfo;var o={};var t=s(g,q);if(t.length!=6){throw\"not supported items for SignerInfo (!=6)\"}var d=t.shift();o.version=a(g,d);var e=t.shift();o.si=a(g,e);var m=t.shift();o.digalg=a(g,m);var f=t.shift();o.sattrs=a(g,f);var i=t.shift();o.sigalg=a(g,i);var b=t.shift();o.sig=a(g,b);o.sigval=l(g,b);var u=null;o.obj=new w();u=new n();u.hTLV=o.version;o.obj.dCMSVersion=u;u=new n();u.hTLV=o.si;o.obj.dSignerIdentifier=u;u=new n();u.hTLV=o.digalg;o.obj.dDigestAlgorithm=u;u=new n();u.hTLV=o.sattrs;o.obj.dSignedAttrs=u;u=new n();u.hTLV=o.sigalg;o.obj.dSigAlg=u;u=new n();u.hTLV=o.sig;o.obj.dSig=u;o.obj.dUnsignedAttrs=new k();return o};\nif(typeof KJUR.asn1.csr==\"undefined\"||!KJUR.asn1.csr){KJUR.asn1.csr={}}KJUR.asn1.csr.CertificationRequest=function(g){var d=KJUR,c=d.asn1,e=c.DERBitString,b=c.DERSequence,a=c.csr,f=c.x509,h=a.CertificationRequestInfo;a.CertificationRequest.superclass.constructor.call(this);this.setByParam=function(i){this.params=i};this.sign=function(){var j=(new h(this.params)).tohex();var k=new KJUR.crypto.Signature({alg:this.params.sigalg});k.init(this.params.sbjprvkey);k.updateHex(j);var i=k.sign();this.params.sighex=i};this.getPEM=function(){return hextopem(this.tohex(),\"CERTIFICATE REQUEST\")};this.tohex=function(){var l=this.params;var j=new KJUR.asn1.csr.CertificationRequestInfo(this.params);var m=new KJUR.asn1.x509.AlgorithmIdentifier({name:l.sigalg});if(l.sighex==undefined&&l.sbjprvkey!=undefined){this.sign()}if(l.sighex==undefined){throw new Error(\"sighex or sbjprvkey parameter not defined\")}var k=new e({hex:\"00\"+l.sighex});var i=new b({array:[j,m,k]});return i.tohex()};this.getEncodedHex=function(){return this.tohex()};if(g!==undefined){this.setByParam(g)}};extendClass(KJUR.asn1.csr.CertificationRequest,KJUR.asn1.ASN1Object);KJUR.asn1.csr.CertificationRequestInfo=function(f){var b=KJUR,j=b.asn1,c=j.DERBitString,g=j.DERSequence,i=j.DERInteger,p=j.DERUTF8String,d=j.DERTaggedObject,h=j.ASN1Util.newObject,n=j.csr,e=j.x509,a=e.X500Name,l=e.Extensions,o=e.SubjectPublicKeyInfo,k=n.AttributeList;n.CertificationRequestInfo.superclass.constructor.call(this);this.params=null;this.setByParam=function(q){if(q!=undefined){this.params=q}};this.tohex=function(){var v=this.params;var r=[];r.push(new i({\"int\":0}));r.push(new a(v.subject));r.push(new o(KEYUTIL.getKey(v.sbjpubkey)));if(v.attrs!=undefined){var u=m(v.attrs);var t=h({tag:{tage:\"a0\",obj:u}});r.push(t)}else{if(v.extreq!=undefined){var q=new l(v.extreq);var t=h({tag:{tage:\"a0\",obj:{seq:[{oid:\"1.2.840.113549.1.9.14\"},{set:[q]}]}}});r.push(t)}else{r.push(new d({tag:\"a0\",explicit:false,obj:new p({str:\"\"})}))}}var s=new g({array:r});return s.tohex()};this.getEncodedHex=function(){return this.tohex()};function m(s){var w=Error,v=KJUR.asn1.x509.Extensions;var y=[];for(var u=0;u<s.length;u++){var r=s[u];var x=r.attr;if(x==\"extensionRequest\"){var t=new v(r.ext);var q={seq:[{oid:\"1.2.840.113549.1.9.14\"},{set:[t]}]};y.push(q)}else{if(x==\"unstructuredName\"){var q={seq:[{oid:\"1.2.840.113549.1.9.2\"},{set:r.names}]};y.push(q)}else{if(x==\"challengePassword\"){var q={seq:[{oid:\"1.2.840.113549.1.9.7\"},{set:[{utf8str:r.password}]}]};y.push(q)}else{throw new w(\"unknown CSR attribute\")}}}}return{set:y}}if(f!=undefined){this.setByParam(f)}};extendClass(KJUR.asn1.csr.CertificationRequestInfo,KJUR.asn1.ASN1Object);KJUR.asn1.csr.AttributeList=function(b){function a(c){}};extendClass(KJUR.asn1.csr.AttributeList,KJUR.asn1.ASN1Object);KJUR.asn1.csr.CSRUtil=new function(){};KJUR.asn1.csr.CSRUtil.newCSRPEM=function(e){var b=KEYUTIL,a=KJUR.asn1.csr;var c=new a.CertificationRequest(e);var d=c.getPEM();return d};KJUR.asn1.csr.CSRUtil.getParam=function(d,a){var m=ASN1HEX,i=m.getV,j=m.getIdxbyList,b=m.getTLVbyList,o=m.getTLVbyListEx,n=m.getVbyListEx;var l=function(u){var t=j(u,0,[0,3,0,0],\"06\");if(i(u,t)!=\"2a864886f70d01090e\"){return null}return b(u,0,[0,3,0,1,0],\"30\")};var g={};if(d.indexOf(\"-----BEGIN CERTIFICATE REQUEST\")==-1){throw new Error(\"argument is not PEM file\")}var e=pemtohex(d,\"CERTIFICATE REQUEST\");if(a){g.tbs=b(e,0,[0])}try{var p=o(e,0,[0,1]);if(p==\"3000\"){g.subject={}}else{var f=new X509();g.subject=f.getX500Name(p)}}catch(q){}var k=o(e,0,[0,2]);var r=KEYUTIL.getKey(k,null,\"pkcs8pub\");g.sbjpubkey=KEYUTIL.getPEM(r,\"PKCS8PUB\");var c=l(e);var f=new X509();if(c!=null){g.extreq=f.getExtParamArray(c)}try{var h=o(e,0,[1],\"30\");var f=new X509();g.sigalg=f.getAlgorithmIdentifierName(h)}catch(q){}try{var s=n(e,0,[2]);g.sighex=s}catch(q){}return g};KJUR.asn1.csr.CSRUtil.verifySignature=function(b){try{var c=null;if(typeof b==\"string\"&&b.indexOf(\"-----BEGIN CERTIFICATE REQUEST\")!=-1){c=KJUR.asn1.csr.CSRUtil.getParam(b,true)}else{if(typeof b==\"object\"&&b.sbjpubkey!=undefined&&b.sigalg!=undefined&&b.sighex!=undefined&&b.tbs!=undefined){c=b}}if(c==null){return false}var d=new KJUR.crypto.Signature({alg:c.sigalg});d.init(c.sbjpubkey);d.updateHex(c.tbs);return d.verify(c.sighex)}catch(a){alert(a);return false}};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.asn1==\"undefined\"||!KJUR.asn1){KJUR.asn1={}}if(typeof KJUR.asn1.ocsp==\"undefined\"||!KJUR.asn1.ocsp){KJUR.asn1.ocsp={}}KJUR.asn1.ocsp.DEFAULT_HASH=\"sha1\";KJUR.asn1.ocsp.OCSPResponse=function(e){KJUR.asn1.ocsp.OCSPResponse.superclass.constructor.call(this);var a=KJUR.asn1.DEREnumerated,b=KJUR.asn1.ASN1Util.newObject,c=KJUR.asn1.ocsp.ResponseBytes;var d=[\"successful\",\"malformedRequest\",\"internalError\",\"tryLater\",\"_not_used_\",\"sigRequired\",\"unauthorized\"];this.params=null;this._getStatusCode=function(){var f=this.params.resstatus;if(typeof f==\"number\"){return f}if(typeof f!=\"string\"){return -1}return d.indexOf(f)};this.setByParam=function(f){this.params=f};this.tohex=function(){var h=this.params;var g=this._getStatusCode();if(g==-1){throw new Error(\"responseStatus not supported: \"+h.resstatus)}if(g!=0){return b({seq:[{\"enum\":{\"int\":g}}]}).tohex()}var f=new c(h);return b({seq:[{\"enum\":{\"int\":0}},{tag:{tag:\"a0\",explicit:true,obj:f}}]}).tohex()};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){this.setByParam(e)}};extendClass(KJUR.asn1.ocsp.OCSPResponse,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.ResponseBytes=function(e){KJUR.asn1.ocsp.ResponseBytes.superclass.constructor.call(this);var b=KJUR.asn1,a=b.DERSequence,f=b.DERObjectIdentifier,c=b.DEROctetString,d=b.ocsp.BasicOCSPResponse;this.params=null;this.setByParam=function(g){this.params=g};this.tohex=function(){var j=this.params;if(j.restype!=\"ocspBasic\"){throw new Error(\"not supported responseType: \"+j.restype)}var i=new d(j);var g=[];g.push(new f({name:\"ocspBasic\"}));g.push(new c({hex:i.tohex()}));var h=new a({array:g});return h.tohex()};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){this.setByParam(e)}};extendClass(KJUR.asn1.ocsp.ResponseBytes,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.BasicOCSPResponse=function(d){KJUR.asn1.ocsp.BasicOCSPResponse.superclass.constructor.call(this);var i=Error,g=KJUR.asn1,j=g.ASN1Object,e=g.DERSequence,f=g.DERGeneralizedTime,c=g.DERTaggedObject,b=g.DERBitString,h=g.x509.Extensions,k=g.x509.AlgorithmIdentifier,l=g.ocsp,a=l.ResponderID;_SingleResponseList=l.SingleResponseList,_ResponseData=l.ResponseData;this.params=null;this.setByParam=function(m){this.params=m};this.sign=function(){var o=this.params;var m=o.tbsresp.tohex();var n=new KJUR.crypto.Signature({alg:o.sigalg});n.init(o.reskey);n.updateHex(m);o.sighex=n.sign()};this.tohex=function(){var t=this.params;if(t.tbsresp==undefined){t.tbsresp=new _ResponseData(t)}if(t.sighex==undefined&&t.reskey!=undefined){this.sign()}var n=[];n.push(t.tbsresp);n.push(new k({name:t.sigalg}));n.push(new b({hex:\"00\"+t.sighex}));if(t.certs!=undefined&&t.certs.length!=undefined){var m=[];for(var q=0;q<t.certs.length;q++){var s=t.certs[q];var r=null;if(ASN1HEX.isASN1HEX(s)){r=s}else{if(s.match(/-----BEGIN/)){r=pemtohex(s)}else{throw new i(\"certs[\"+q+\"] not hex or PEM\")}}m.push(new j({tlv:r}))}var p=new e({array:m});n.push(new c({tag:\"a0\",explicit:true,obj:p}))}var o=new e({array:n});return o.tohex()};this.getEncodedHex=function(){return this.tohex()};if(d!==undefined){this.setByParam(d)}};extendClass(KJUR.asn1.ocsp.BasicOCSPResponse,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.ResponseData=function(c){KJUR.asn1.ocsp.ResponseData.superclass.constructor.call(this);var h=Error,f=KJUR.asn1,d=f.DERSequence,e=f.DERGeneralizedTime,b=f.DERTaggedObject,g=f.x509.Extensions,i=f.ocsp,a=i.ResponderID;_SingleResponseList=i.SingleResponseList;this.params=null;this.tohex=function(){var m=this.params;if(m.respid!=undefined){new h(\"respid not specified\")}if(m.prodat!=undefined){new h(\"prodat not specified\")}if(m.array!=undefined){new h(\"array not specified\")}var j=[];j.push(new a(m.respid));j.push(new e(m.prodat));j.push(new _SingleResponseList(m.array));if(m.ext!=undefined){var l=new g(m.ext);j.push(new b({tag:\"a1\",explicit:true,obj:l}))}var k=new d({array:j});return k.tohex()};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(j){this.params=j};if(c!==undefined){this.setByParam(c)}};extendClass(KJUR.asn1.ocsp.ResponseData,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.ResponderID=function(g){KJUR.asn1.ocsp.ResponderID.superclass.constructor.call(this);var d=KJUR,c=d.asn1,b=c.ASN1Util.newObject,f=c.x509.X500Name,e=d.lang.String.isHex,a=Error;this.params=null;this.tohex=function(){var m=this.params;if(m.key!=undefined){var l=null;if(typeof m.key==\"string\"){if(e(m.key)){l=m.key}if(m.key.match(/-----BEGIN CERTIFICATE/)){var h=new X509(m.key);var k=h.getExtSubjectKeyIdentifier();if(k!=null){l=k.kid.hex}}}else{if(m.key instanceof X509){var k=m.key.getExtSubjectKeyIdentifier();if(k!=null){l=k.kid.hex}}}if(l==null){throw new a(\"wrong key member value\")}var j=b({tag:{tag:\"a2\",explicit:true,obj:{octstr:{hex:l}}}});return j.tohex()}else{if(m.name!=undefined){var i=null;if(typeof m.name==\"string\"&&m.name.match(/-----BEGIN CERTIFICATE/)){var h=new X509(m.name);i=h.getSubject()}else{if(m.name instanceof X509){i=m.name.getSubject()}else{if(typeof m.name==\"object\"&&(m.name.array!=undefined||m.name.str!=undefined)){i=m.name}}}if(i==null){throw new a(\"wrong name member value\")}var j=b({tag:{tag:\"a1\",explicit:true,obj:new f(i)}});return j.tohex()}}throw new a(\"key or name not specified\")};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(h){this.params=h};if(g!==undefined){this.setByParam(g)}};extendClass(KJUR.asn1.ocsp.ResponderID,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.SingleResponseList=function(d){KJUR.asn1.ocsp.SingleResponseList.superclass.constructor.call(this);var c=KJUR.asn1,b=c.DERSequence,a=c.ocsp.SingleResponse;this.params=null;this.tohex=function(){var h=this.params;if(typeof h!=\"object\"||h.length==undefined){throw new Error(\"params not specified properly\")}var e=[];for(var g=0;g<h.length;g++){e.push(new a(h[g]))}var f=new b({array:e});return f.tohex()};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(e){this.params=e};if(d!==undefined){this.setByParam(d)}};extendClass(KJUR.asn1.ocsp.SingleResponseList,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.SingleResponse=function(e){var k=Error,a=KJUR,i=a.asn1,f=i.DERSequence,g=i.DERGeneralizedTime,b=i.DERTaggedObject,l=i.ocsp,h=l.CertID,c=l.CertStatus,d=i.x509,j=d.Extensions;l.SingleResponse.superclass.constructor.call(this);this.params=null;this.tohex=function(){var q=this.params;var n=[];if(q.certid==undefined){throw new k(\"certid unspecified\")}if(q.status==undefined){throw new k(\"status unspecified\")}if(q.thisupdate==undefined){throw new k(\"thisupdate unspecified\")}n.push(new h(q.certid));n.push(new c(q.status));n.push(new g(q.thisupdate));if(q.nextupdate!=undefined){var m=new g(q.nextupdate);n.push(new b({tag:\"a0\",explicit:true,obj:m}))}if(q.ext!=undefined){var p=new j(q.ext);n.push(new b({tag:\"a1\",explicit:true,obj:p}))}var o=new f({array:n});return o.tohex()};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(m){this.params=m};if(e!==undefined){this.setByParam(e)}};extendClass(KJUR.asn1.ocsp.SingleResponse,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.CertID=function(e){var b=KJUR,i=b.asn1,l=i.DEROctetString,h=i.DERInteger,f=i.DERSequence,d=i.x509,m=d.AlgorithmIdentifier,n=i.ocsp,k=n.DEFAULT_HASH,g=b.crypto,c=g.Util.hashHex,a=X509,o=ASN1HEX,j=o.getVbyList;n.CertID.superclass.constructor.call(this);this.DEFAULT_HASH=\"sha1\";this.params=null;this.setByValue=function(s,r,p,q){if(q==undefined){q=this.DEFAULT_HASH}this.params={alg:q,issname:s,isskey:r,sbjsn:p}};this.setByCert=function(p,q,r){if(r==undefined){r=this.DEFAULT_HASH}this.params={alg:r,issuerCert:p,subjectCert:q,}};this.getParamByCerts=function(y,x,t){if(t==undefined){t=this.DEFAULT_HASH}var q=new a(y);var v=new a(x);var s=c(q.getSubjectHex(),t);var u=q.getPublicKeyHex();var p=c(j(u,0,[1],\"03\",true),t);var w=v.getSerialNumberHex();var r={alg:t,issname:s,isskey:p,sbjsn:w};return r};this.tohex=function(){if(typeof this.params!=\"object\"){throw new Error(\"params not set\")}var s=this.params;var u,r,y,q;if(s.alg==undefined){q=this.DEFAULT_HASH}else{q=s.alg}if(s.issuerCert!=undefined&&s.subjectCert!=undefined){var t=this.getParamByCerts(s.issuerCert,s.subjectCert,q);u=t.issname;r=t.isskey;y=t.sbjsn}else{if(s.issname!=undefined&&s.isskey!=undefined&&s.sbjsn!=undefined){u=s.issname;r=s.isskey;y=s.sbjsn}else{throw new Error(\"required param members not defined\")}}var A=new m({name:q});var v=new l({hex:u});var x=new l({hex:r});var w=new h({hex:y});var z=new f({array:[A,v,x,w]});this.hTLV=z.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){this.setByParam(e)}};extendClass(KJUR.asn1.ocsp.CertID,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.CertStatus=function(a){KJUR.asn1.ocsp.CertStatus.superclass.constructor.call(this);this.params=null;this.tohex=function(){var d=this.params;if(d.status==\"good\"){return\"8000\"}if(d.status==\"unknown\"){return\"8200\"}if(d.status==\"revoked\"){var c=[{gentime:{str:d.time}}];if(d.reason!=undefined){c.push({tag:{tag:\"a0\",explicit:true,obj:{\"enum\":{\"int\":d.reason}}}})}var b={tag:\"a1\",explicit:false,obj:{seq:c}};return KJUR.asn1.ASN1Util.newObject({tag:b}).tohex()}throw new Error(\"bad status\")};this.getEncodedHex=function(){return this.tohex()};this.setByParam=function(b){this.params=b};if(a!==undefined){this.setByParam(a)}};extendClass(KJUR.asn1.ocsp.CertStatus,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.Request=function(f){var c=KJUR,b=c.asn1,a=b.DERSequence,d=b.ocsp;d.Request.superclass.constructor.call(this);this.dReqCert=null;this.dExt=null;this.tohex=function(){var g=[];if(this.dReqCert===null){throw\"reqCert not set\"}g.push(this.dReqCert);var h=new a({array:g});this.hTLV=h.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(typeof f!==\"undefined\"){var e=new d.CertID(f);this.dReqCert=e}};extendClass(KJUR.asn1.ocsp.Request,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.TBSRequest=function(e){var c=KJUR,b=c.asn1,a=b.DERSequence,d=b.ocsp;d.TBSRequest.superclass.constructor.call(this);this.version=0;this.dRequestorName=null;this.dRequestList=[];this.dRequestExt=null;this.setRequestListByParam=function(h){var f=[];for(var g=0;g<h.length;g++){var j=new d.Request(h[0]);f.push(j)}this.dRequestList=f};this.tohex=function(){var f=[];if(this.version!==0){throw\"not supported version: \"+this.version}if(this.dRequestorName!==null){throw\"requestorName not supported\"}var h=new a({array:this.dRequestList});f.push(h);if(this.dRequestExt!==null){throw\"requestExtensions not supported\"}var g=new a({array:f});this.hTLV=g.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(e!==undefined){if(e.reqList!==undefined){this.setRequestListByParam(e.reqList)}}};extendClass(KJUR.asn1.ocsp.TBSRequest,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.OCSPRequest=function(f){var c=KJUR,b=c.asn1,a=b.DERSequence,d=b.ocsp;d.OCSPRequest.superclass.constructor.call(this);this.dTbsRequest=null;this.dOptionalSignature=null;this.tohex=function(){var g=[];if(this.dTbsRequest!==null){g.push(this.dTbsRequest)}else{throw\"tbsRequest not set\"}if(this.dOptionalSignature!==null){throw\"optionalSignature not supported\"}var h=new a({array:g});this.hTLV=h.tohex();return this.hTLV};this.getEncodedHex=function(){return this.tohex()};if(f!==undefined){if(f.reqList!==undefined){var e=new d.TBSRequest(f);this.dTbsRequest=e}}};extendClass(KJUR.asn1.ocsp.OCSPRequest,KJUR.asn1.ASN1Object);KJUR.asn1.ocsp.OCSPUtil={};KJUR.asn1.ocsp.OCSPUtil.getRequestHex=function(a,b,h){var d=KJUR,c=d.asn1,e=c.ocsp;if(h===undefined){h=e.DEFAULT_HASH}var g={alg:h,issuerCert:a,subjectCert:b};var f=new e.OCSPRequest({reqList:[g]});return f.tohex()};KJUR.asn1.ocsp.OCSPUtil.getOCSPResponseInfo=function(b){var m=ASN1HEX,c=m.getVbyList,k=m.getVbyListEx,e=m.getIdxbyList,d=m.getIdxbyListEx,g=m.getV;var n={};try{var j=k(b,0,[0],\"0a\");n.responseStatus=parseInt(j,16)}catch(f){}if(n.responseStatus!==0){return n}try{var i=e(b,0,[1,0,1,0,0,2,0,1]);if(b.substr(i,2)===\"80\"){n.certStatus=\"good\"}else{if(b.substr(i,2)===\"a1\"){n.certStatus=\"revoked\";n.revocationTime=hextoutf8(c(b,i,[0]))}else{if(b.substr(i,2)===\"82\"){n.certStatus=\"unknown\"}}}}catch(f){}try{var a=e(b,0,[1,0,1,0,0,2,0,2]);n.thisUpdate=hextoutf8(g(b,a))}catch(f){}try{var l=e(b,0,[1,0,1,0,0,2,0,3]);if(b.substr(l,2)===\"a0\"){n.nextUpdate=hextoutf8(c(b,l,[0]))}}catch(f){}return n};KJUR.asn1.ocsp.OCSPParser=function(){var g=Error,a=X509,h=new a(),l=ASN1HEX,i=l.getV,b=l.getTLV,f=l.getIdxbyList,e=l.getVbyList,c=l.getTLVbyList,k=l.getVbyListEx,d=l.getTLVbyListEx,j=l.getChildIdx;this.getOCSPRequest=function(o){var n=j(o,0);if(n.length!=1&&n.length!=2){throw new g(\"wrong number elements: \"+n.length)}var m=this.getTBSRequest(b(o,n[0]));return m};this.getTBSRequest=function(o){var m={};var n=d(o,0,[0],\"30\");m.array=this.getRequestList(n);var p=d(o,0,[\"[2]\",0],\"30\");if(p!=null){m.ext=h.getExtParamArray(p)}return m};this.getRequestList=function(p){var m=[];var n=j(p,0);for(var o=0;o<n.length;o++){var p=b(p,n[o]);m.push(this.getRequest(p))}return m};this.getRequest=function(n){var m=j(n,0);if(m.length!=1&&m.length!=2){throw new g(\"wrong number elements: \"+m.length)}var p=this.getCertID(b(n,m[0]));if(m.length==2){var o=f(n,0,[1,0]);p.ext=h.getExtParamArray(b(n,o))}return p};this.getCertID=function(p){var o=j(p,0);if(o.length!=4){throw new g(\"wrong number elements: \"+o.length)}var n=new a();var m={};m.alg=n.getAlgorithmIdentifierName(b(p,o[0]));m.issname=i(p,o[1]);m.isskey=i(p,o[2]);m.sbjsn=i(p,o[3]);return m};this.getOCSPResponse=function(r){var o=j(r,0);var m;var q=i(r,o[0]);var p=parseInt(q);if(o.length==1){return{resstatus:p}}var n=c(r,0,[1,0]);m=this.getResponseBytes(n);m.resstatus=p;return m};this.getResponseBytes=function(p){var o=j(p,0);var n;var q=c(p,0,[1,0]);n=this.getBasicOCSPResponse(q);var m=i(p,o[0]);n.restype=KJUR.asn1.x509.OID.oid2name(hextooid(m));return n};this.getBasicOCSPResponse=function(q){var t=j(q,0);var v;v=this.getResponseData(b(q,t[0]));var u=new X509();v.alg=u.getAlgorithmIdentifierName(b(q,t[1]));var n=i(q,t[2]);v.sighex=n.substr(2);var m=k(q,0,[\"[0]\"]);if(m!=null){var r=j(m,0);var o=[];for(var p=0;p<r.length;p++){var s=b(m,r[p]);o.push(s)}v.certs=o}return v};this.getResponseData=function(q){var p=j(q,0);var r=p.length;var o={};var n=0;if(q.substr(p[0],2)==\"a0\"){n++}o.respid=this.getResponderID(b(q,p[n++]));var t=i(q,p[n++]);o.prodat=hextoutf8(t);o.array=this.getSingleResponseList(b(q,p[n++]));if(q.substr(p[r-1],2)==\"a1\"){var s=c(q,p[r-1],[0]);var m=new X509();o.ext=m.getExtParamArray(s)}return o};this.getResponderID=function(o){var n={};if(o.substr(0,2)==\"a2\"){var p=e(o,0,[0]);n.key=p}if(o.substr(0,2)==\"a1\"){var q=c(o,0,[0]);var m=new X509();n.name=m.getX500Name(q)}return n};this.getSingleResponseList=function(q){var n=j(q,0);var m=[];for(var o=0;o<n.length;o++){var r=this.getSingleResponse(b(q,n[o]));m.push(r)}return m};this.getSingleResponse=function(p){var t=j(p,0);var v={};var r=this.getCertID(b(p,t[0]));v.certid=r;var u=this.getCertStatus(b(p,t[1]));v.status=u;if(p.substr(t[2],2)==\"18\"){var q=i(p,t[2]);v.thisupdate=hextoutf8(q)}for(var o=3;o<t.length;o++){if(p.substr(t[o],2)==\"a0\"){var m=e(p,t[o],[0],\"18\");v.nextupdate=hextoutf8(m)}if(p.substr(t[o],2)==\"a1\"){var s=new X509();var n=c(p,0,[o,0]);v.ext=s.getExtParamArray(n)}}return v};this.getCertStatus=function(p){var m={};if(p==\"8000\"){return{status:\"good\"}}if(p==\"8200\"){return{status:\"unknown\"}}if(p.substr(0,2)==\"a1\"){m.status=\"revoked\";var o=e(p,0,[0]);var n=hextoutf8(o);m.time=n}return m}};\nvar KJUR;if(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.lang==\"undefined\"||!KJUR.lang){KJUR.lang={}}KJUR.lang.String=function(){};function Base64x(){}function stoBA(d){var b=new Array();for(var c=0;c<d.length;c++){b[c]=d.charCodeAt(c)}return b}function BAtos(b){var d=\"\";for(var c=0;c<b.length;c++){d=d+String.fromCharCode(b[c])}return d}function BAtohex(b){var e=\"\";for(var d=0;d<b.length;d++){var c=b[d].toString(16);if(c.length==1){c=\"0\"+c}e=e+c}return e}function stohex(a){return BAtohex(stoBA(a))}function stob64(a){return hex2b64(stohex(a))}function stob64u(a){return b64tob64u(hex2b64(stohex(a)))}function b64utos(a){return BAtos(b64toBA(b64utob64(a)))}function b64tob64u(a){a=a.replace(/\\=/g,\"\");a=a.replace(/\\+/g,\"-\");a=a.replace(/\\//g,\"_\");return a}function b64utob64(a){if(a.length%4==2){a=a+\"==\"}else{if(a.length%4==3){a=a+\"=\"}}a=a.replace(/-/g,\"+\");a=a.replace(/_/g,\"/\");return a}function hextob64u(a){if(a.length%2==1){a=\"0\"+a}return b64tob64u(hex2b64(a))}function b64utohex(a){return b64tohex(b64utob64(a))}var utf8tob64u,b64utoutf8;if(typeof Buffer===\"function\"){utf8tob64u=function(a){return b64tob64u(Buffer.from(a,\"utf8\").toString(\"base64\"))};b64utoutf8=function(a){return Buffer.from(b64utob64(a),\"base64\").toString(\"utf8\")}}else{utf8tob64u=function(a){return hextob64u(uricmptohex(encodeURIComponentAll(a)))};b64utoutf8=function(a){return decodeURIComponent(hextouricmp(b64utohex(a)))}}function utf8tob64(a){return hex2b64(uricmptohex(encodeURIComponentAll(a)))}function b64toutf8(a){return decodeURIComponent(hextouricmp(b64tohex(a)))}function utf8tohex(a){return uricmptohex(encodeURIComponentAll(a)).toLowerCase()}function hextoutf8(b){try{return decodeURIComponent(hextouricmp(b))}catch(a){return null}}function iso88591hextoutf8(a){return hextoutf8(iso88591hextoutf8hex(a))}function utf8toiso88591hex(a){return utf8hextoiso88591hex(utf8tohex(a))}function iso88591hextoutf8hex(e){var c=e.match(/.{1,2}/g);var b=[];for(var d=0;d<c.length;d++){var f=parseInt(c[d],16);if(161<=f&&f<=191){b.push(\"c2\");b.push(c[d])}else{if(192<=f&&f<=255){b.push(\"c3\");b.push((f-64).toString(16))}else{b.push(c[d])}}}return b.join(\"\")}function utf8hextoiso88591hex(f){var c=f.match(/.{1,2}/g);var b=[];for(var e=0;e<c.length;e++){if(c[e]==\"c2\"){e++;b.push(c[e])}else{if(c[e]==\"c3\"){e++;var d=c[e];var g=parseInt(c[e],16)+64;b.push(g.toString(16))}else{b.push(c[e])}}}return b.join(\"\")}function hextorstr(c){var b=\"\";for(var a=0;a<c.length-1;a+=2){b+=String.fromCharCode(parseInt(c.substr(a,2),16))}return b}function rstrtohex(c){var a=\"\";for(var b=0;b<c.length;b++){a+=(\"0\"+c.charCodeAt(b).toString(16)).slice(-2)}return a}function hextob64(a){return hex2b64(a)}function hextob64nl(a){return foldnl(hextob64(a),64)}function foldnl(a,b){a=a.replace(new RegExp(\"(.{\"+b+\"})\",\"g\"),\"$1\\r\\n\");a=a.replace(/\\s+$/,\"\");return a}function b64nltohex(b){var a=b.replace(/[^0-9A-Za-z\\/+=]*/g,\"\");var c=b64tohex(a);return c}function b64topem(b,a){return\"-----BEGIN \"+a+\"-----\\r\\n\"+foldnl(b,64)+\"\\r\\n-----END \"+a+\"-----\\r\\n\"}function hextopem(a,b){return\"-----BEGIN \"+b+\"-----\\r\\n\"+foldnl(hextob64(a),64)+\"\\r\\n-----END \"+b+\"-----\\r\\n\"}function pemtohex(a,b){if(a.indexOf(\"-----BEGIN \")==-1){throw new Error(\"can't find PEM header\")}if(b!==undefined){a=a.replace(new RegExp(\"^[^]*-----BEGIN \"+b+\"-----\"),\"\");a=a.replace(new RegExp(\"-----END \"+b+\"-----[^]*$\"),\"\")}else{a=a.replace(/^[^]*-----BEGIN [^-]+-----/,\"\");a=a.replace(/-----END [^-]+-----[^]*$/,\"\")}return b64nltohex(a)}function pemtob64(a){if(a.indexOf(\"-----BEGIN \")==-1||a.indexOf(\"-----END \")==-1){return null}a=a.replace(/^[\\s\\S]*?-----BEGIN [^-]+-----/m,\"\");a=a.replace(/-----END [\\s\\S]+$/m,\"\");a=a.replace(/\\s+/g,\"\");return(a.match(/^[0-9a-zA-Z+/=]+$/))?a:null}function hextoArrayBuffer(d){if(d.length%2!=0){throw\"input is not even length\"}if(d.match(/^[0-9A-Fa-f]+$/)==null){throw\"input is not hexadecimal\"}var b=new ArrayBuffer(d.length/2);var a=new DataView(b);for(var c=0;c<d.length/2;c++){a.setUint8(c,parseInt(d.substr(c*2,2),16))}return b}function ArrayBuffertohex(b){var d=\"\";var a=new DataView(b);for(var c=0;c<b.byteLength;c++){d+=(\"00\"+a.getUint8(c).toString(16)).slice(-2)}return d}function zulutomsec(n){var l,j,m,e,f,i,b,k;var a,h,g,c;n=timetogen(n);c=n.match(/^(\\d{4})(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(|\\.\\d+)Z$/);if(c){l=parseInt(c[1]);j=parseInt(c[2])-1;m=parseInt(c[3]);e=parseInt(c[4]);f=parseInt(c[5]);i=parseInt(c[6]);b=0;h=c[7];if(h!==\"\"){g=(h.substr(1)+\"00\").substr(0,3);b=parseInt(g)}return Date.UTC(l,j,m,e,f,i,b)}throw new Error(\"unsupported zulu format: \"+n)}function msectozulu(b){var h=new Date(b),i=(\"0000\"+h.getUTCFullYear()).slice(-4),c=(\"00\"+(h.getUTCMonth()+1)).slice(-2),j=(\"00\"+h.getUTCDate()).slice(-2),e=(\"00\"+h.getUTCHours()).slice(-2),f=(\"00\"+h.getUTCMinutes()).slice(-2),g=(\"00\"+h.getUTCSeconds()).slice(-2),a=(\"000\"+h.getUTCMilliseconds()).slice(-3);a=a.replace(/0+$/,\"\");a=(a!=\"\")?\".\"+a:a;return i+c+j+e+f+g+a+\"Z\"}function zulutosec(a){return Math.round(zulutomsec(a)/1000)}function zulutodate(a){return new Date(zulutomsec(a))}function datetozulu(g,e,f){var b;var a=g.getUTCFullYear();if(e){if(a<1950||2049<a){throw\"not proper year for UTCTime: \"+a}b=(\"\"+a).slice(-2)}else{b=(\"000\"+a).slice(-4)}b+=(\"0\"+(g.getUTCMonth()+1)).slice(-2);b+=(\"0\"+g.getUTCDate()).slice(-2);b+=(\"0\"+g.getUTCHours()).slice(-2);b+=(\"0\"+g.getUTCMinutes()).slice(-2);b+=(\"0\"+g.getUTCSeconds()).slice(-2);if(f){var c=g.getUTCMilliseconds();if(c!==0){c=(\"00\"+c).slice(-3);c=c.replace(/0+$/g,\"\");b+=\".\"+c}}b+=\"Z\";return b}function timetogen(a){if(a.match(/^[0-9]{12}Z$/)||a.match(/^[0-9]{12}[.][0-9]*Z$/)){return(a.match(/^[0-4]/))?\"20\"+a:\"19\"+a}return a}function uricmptohex(a){return a.replace(/%/g,\"\")}function hextouricmp(a){return a.replace(/(..)/g,\"%$1\")}function ipv6tohex(g){var b=\"malformed IPv6 address\";if(!g.match(/^[0-9A-Fa-f:]+$/)){throw b}g=g.toLowerCase();var d=g.split(\":\").length-1;if(d<2){throw b}var e=\":\".repeat(7-d+2);g=g.replace(\"::\",e);var c=g.split(\":\");if(c.length!=8){throw b}for(var f=0;f<8;f++){c[f]=(\"0000\"+c[f]).slice(-4)}return c.join(\"\")}function hextoipv6(d){if(!d.match(/^[0-9A-Fa-f]{32}$/)){throw new Error(\"malformed IPv6 address: \"+d)}d=d.toLowerCase();var b=d.match(/.{1,4}/g);b=b.map(function(a){return a.replace(/^0+/,\"\")});b=b.map(function(a){return a==\"\"?\"0\":a});d=\":\"+b.join(\":\")+\":\";var c=d.match(/:(0:){2,}/g);if(c==null){return d.slice(1,-1)}var e=c.sort().slice(-1)[0];d=d.replace(e.substr(0,e.length-1),\":\");if(d.substr(0,2)!=\"::\"){d=d.substr(1)}if(d.substr(-2,2)!=\"::\"){d=d.substr(0,d.length-1)}return d}function hextoip(b){var c=new Error(\"malformed hex value\");if(!b.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/)){throw c}if(b.length==8){var d;try{d=parseInt(b.substr(0,2),16)+\".\"+parseInt(b.substr(2,2),16)+\".\"+parseInt(b.substr(4,2),16)+\".\"+parseInt(b.substr(6,2),16);return d}catch(a){throw c}}else{if(b.length==16){try{return hextoip(b.substr(0,8))+\"/\"+ipprefixlen(b.substr(8))}catch(a){throw c}}else{if(b.length==32){return hextoipv6(b)}else{if(b.length==64){try{return hextoipv6(b.substr(0,32))+\"/\"+ipprefixlen(b.substr(32))}catch(a){throw c}return}else{return b}}}}}function ipprefixlen(c){var d=new Error(\"malformed mask\");var a;try{a=new BigInteger(c,16).toString(2)}catch(b){throw d}if(!a.match(/^1*0*$/)){throw d}return a.replace(/0+$/,\"\").length}function iptohex(g){var j=new Error(\"malformed IP address\");g=g.toLowerCase(g);if(!g.match(/^[0-9a-f.:/]+$/)){throw j}if(g.match(/^[0-9.]+$/)){var b=g.split(\".\");if(b.length!==4){throw j}var h=\"\";try{for(var f=0;f<4;f++){var k=parseInt(b[f]);h+=(\"0\"+k.toString(16)).slice(-2)}return h}catch(e){throw j}}else{if(g.match(/^[0-9.]+\\/[0-9]+$/)){var c=g.split(\"/\");return iptohex(c[0])+ipnetmask(parseInt(c[1]),32)}else{if(g.match(/^[0-9a-f:]+$/)&&g.indexOf(\":\")!==-1){return ipv6tohex(g)}else{if(g.match(/^[0-9a-f:]+\\/[0-9]+$/)&&g.indexOf(\":\")!==-1){var c=g.split(\"/\");return ipv6tohex(c[0])+ipnetmask(parseInt(c[1]),128)}else{throw j}}}}}function ipnetmask(d,c){if(c==32&&d==0){return\"00000000\"}if(c==128&&d==0){return\"00000000000000000000000000000000\"}var a=Array(d+1).join(\"1\")+Array(c-d+1).join(\"0\");return new BigInteger(a,2).toString(16)}function ucs2hextoutf8(d){function e(f){var h=parseInt(f.substr(0,2),16);var a=parseInt(f.substr(2),16);if(h==0&a<128){return String.fromCharCode(a)}if(h<8){var j=192|((h&7)<<3)|((a&192)>>6);var i=128|(a&63);return hextoutf8(j.toString(16)+i.toString(16))}var j=224|((h&240)>>4);var i=128|((h&15)<<2)|((a&192)>>6);var g=128|(a&63);return hextoutf8(j.toString(16)+i.toString(16)+g.toString(16))}var c=d.match(/.{4}/g);var b=c.map(e);return b.join(\"\")}function encodeURIComponentAll(a){var d=encodeURIComponent(a);var b=\"\";for(var c=0;c<d.length;c++){if(d[c]==\"%\"){b=b+d.substr(c,3);c=c+2}else{b=b+\"%\"+stohex(d[c])}}return b}function newline_toUnix(a){a=a.replace(/\\r\\n/mg,\"\\n\");return a}function newline_toDos(a){a=a.replace(/\\r\\n/mg,\"\\n\");a=a.replace(/\\n/mg,\"\\r\\n\");return a}KJUR.lang.String.isInteger=function(a){if(a.match(/^[0-9]+$/)){return true}else{if(a.match(/^-[0-9]+$/)){return true}else{return false}}};KJUR.lang.String.isHex=function(a){return ishex(a)};function ishex(a){if(a.length%2==0&&(a.match(/^[0-9a-f]+$/)||a.match(/^[0-9A-F]+$/))){return true}else{return false}}KJUR.lang.String.isBase64=function(a){a=a.replace(/\\s+/g,\"\");if(a.match(/^[0-9A-Za-z+\\/]+={0,3}$/)&&a.length%4==0){return true}else{return false}};KJUR.lang.String.isBase64URL=function(a){if(a.match(/[+/=]/)){return false}a=b64utob64(a);return KJUR.lang.String.isBase64(a)};function isBase64URLDot(a){if(a.match(/^[0-9A-Za-z-_.]+$/)){return true}return false}KJUR.lang.String.isIntegerArray=function(a){a=a.replace(/\\s+/g,\"\");if(a.match(/^\\[[0-9,]+\\]$/)){return true}else{return false}};KJUR.lang.String.isPrintable=function(a){if(a.match(/^[0-9A-Za-z '()+,-./:=?]*$/)!==null){return true}return false};KJUR.lang.String.isIA5=function(a){if(a.match(/^[\\x20-\\x21\\x23-\\x7f]*$/)!==null){return true}return false};KJUR.lang.String.isMail=function(a){if(a.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\\.[A-Za-z0-9]{1,}$/)!==null){return true}return false};function hextoposhex(a){if(a.length%2==1){return\"0\"+a}if(a.substr(0,1)>\"7\"){return\"00\"+a}return a}function intarystrtohex(b){b=b.replace(/^\\s*\\[\\s*/,\"\");b=b.replace(/\\s*\\]\\s*$/,\"\");b=b.replace(/\\s*/g,\"\");try{var c=b.split(/,/).map(function(g,e,h){var f=parseInt(g);if(f<0||255<f){throw\"integer not in range 0-255\"}var d=(\"00\"+f.toString(16)).slice(-2);return d}).join(\"\");return c}catch(a){throw\"malformed integer array string: \"+a}}var strdiffidx=function(c,a){var d=c.length;if(c.length>a.length){d=a.length}for(var b=0;b<d;b++){if(c.charCodeAt(b)!=a.charCodeAt(b)){return b}}if(c.length!=a.length){return d}return -1};function oidtohex(g){var f=function(a){var l=a.toString(16);if(l.length==1){l=\"0\"+l}return l};var e=function(p){var o=\"\";var l=parseInt(p,10);var a=l.toString(2);var m=7-a.length%7;if(m==7){m=0}var r=\"\";for(var n=0;n<m;n++){r+=\"0\"}a=r+a;for(var n=0;n<a.length-1;n+=7){var q=a.substr(n,7);if(n!=a.length-7){q=\"1\"+q}o+=f(parseInt(q,2))}return o};try{if(!g.match(/^[0-9.]+$/)){return null}var j=\"\";var b=g.split(\".\");var k=parseInt(b[0],10)*40+parseInt(b[1],10);j+=f(k);b.splice(0,2);for(var d=0;d<b.length;d++){j+=e(b[d])}return j}catch(c){return null}}function hextooid(g){if(!ishex(g)){return null}try{var m=[];var p=g.substr(0,2);var e=parseInt(p,16);m[0]=new String(Math.floor(e/40));m[1]=new String(e%40);var n=g.substr(2);var l=[];for(var f=0;f<n.length/2;f++){l.push(parseInt(n.substr(f*2,2),16))}var k=[];var d=\"\";for(var f=0;f<l.length;f++){if(l[f]&128){d=d+strpad((l[f]&127).toString(2),7)}else{d=d+strpad((l[f]&127).toString(2),7);k.push(new String(parseInt(d,2)));d=\"\"}}var o=m.join(\".\");if(k.length>0){o=o+\".\"+k.join(\".\")}return o}catch(j){return null}}function inttohex(b){var a=new BigInteger(String(b),10);return twoscompl(a)}function twoscompl(b){var g=b.toString(16);if(g.substr(0,1)!=\"-\"){if(g.length%2==1){g=\"0\"+g}else{if(!g.match(/^[0-7]/)){g=\"00\"+g}}return g}var a=g.substr(1);var f=a.length;if(f%2==1){f+=1}else{if(!g.match(/^[0-7]/)){f+=2}}var j=\"\";for(var e=0;e<f;e++){j+=\"f\"}var d=new BigInteger(j,16);var c=d.xor(b).add(BigInteger.ONE);g=c.toString(16).replace(/^-/,\"\");return g}var strpad=function(c,b,a){if(a==undefined){a=\"0\"}if(c.length>=b){return c}return new Array(b-c.length+1).join(a)+c};function bitstrtoint(e){if(e.length%2!=0){return -1}e=e.toLowerCase();if(e.match(/^[0-9a-f]+$/)==null){return -1}try{var a=e.substr(0,2);if(a==\"00\"){return parseInt(e.substr(2),16)}var b=parseInt(a,16);if(b>7){return -1}var g=e.substr(2);var d=parseInt(g,16).toString(2);if(d==\"0\"){d=\"00000000\"}d=d.slice(0,0-b);var f=parseInt(d,2);if(f==NaN){return -1}return f}catch(c){return -1}}function inttobitstr(e){if(typeof e!=\"number\"){return null}if(e<0){return null}var c=Number(e).toString(2);var b=8-c.length%8;if(b==8){b=0}c=c+strpad(\"\",b,\"0\");var d=parseInt(c,2).toString(16);if(d.length%2==1){d=\"0\"+d}var a=\"0\"+b;return a+d}function bitstrtobinstr(g){if(typeof g!=\"string\"){return null}if(g.length%2!=0){return null}if(!g.match(/^[0-9a-f]+$/)){return null}try{var c=parseInt(g.substr(0,2),16);if(c<0||7<c){return null}var j=g.substr(2);var f=\"\";for(var e=0;e<j.length;e+=2){var b=j.substr(e,2);var a=parseInt(b,16).toString(2);a=(\"0000000\"+a).slice(-8);f+=a}return f.substr(0,f.length-c)}catch(d){return null}}function binstrtobitstr(b){if(typeof b!=\"string\"){return null}if(b.match(/^[01]+$/)==null){return null}try{var c=parseInt(b,2);return inttobitstr(c)}catch(a){return null}}function namearraytobinstr(e,g){var f=0;for(var a=0;a<e.length;a++){f|=1<<g[e[a]]}var b=f.toString(2);var c=\"\";for(var a=b.length-1;a>=0;a--){c+=b[a]}return c}function aryval(e,c,d){if(typeof e!=\"object\"){return undefined}var c=String(c).split(\".\");for(var b=0;b<c.length&&e;b++){var a=c[b];if(a.match(/^[0-9]+$/)){a=parseInt(a)}e=e[a]}return e||e===false?e:d}function extendClass(c,a){var b=function(){};b.prototype=a.prototype;c.prototype=new b();c.prototype.constructor=c;c.superclass=a.prototype;if(a.prototype.constructor==Object.prototype.constructor){a.prototype.constructor=a}};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.crypto==\"undefined\"||!KJUR.crypto){KJUR.crypto={}}KJUR.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:\"3021300906052b0e03021a05000414\",sha224:\"302d300d06096086480165030402040500041c\",sha256:\"3031300d060960864801650304020105000420\",sha384:\"3041300d060960864801650304020205000430\",sha512:\"3051300d060960864801650304020305000440\",md2:\"3020300c06082a864886f70d020205000410\",md5:\"3020300c06082a864886f70d020505000410\",ripemd160:\"3021300906052b2403020105000414\",};this.DEFAULTPROVIDER={md5:\"cryptojs\",sha1:\"cryptojs\",sha224:\"cryptojs\",sha256:\"cryptojs\",sha384:\"cryptojs\",sha512:\"cryptojs\",ripemd160:\"cryptojs\",hmacmd5:\"cryptojs\",hmacsha1:\"cryptojs\",hmacsha224:\"cryptojs\",hmacsha256:\"cryptojs\",hmacsha384:\"cryptojs\",hmacsha512:\"cryptojs\",hmacripemd160:\"cryptojs\",MD5withRSA:\"cryptojs/jsrsa\",SHA1withRSA:\"cryptojs/jsrsa\",SHA224withRSA:\"cryptojs/jsrsa\",SHA256withRSA:\"cryptojs/jsrsa\",SHA384withRSA:\"cryptojs/jsrsa\",SHA512withRSA:\"cryptojs/jsrsa\",RIPEMD160withRSA:\"cryptojs/jsrsa\",MD5withECDSA:\"cryptojs/jsrsa\",SHA1withECDSA:\"cryptojs/jsrsa\",SHA224withECDSA:\"cryptojs/jsrsa\",SHA256withECDSA:\"cryptojs/jsrsa\",SHA384withECDSA:\"cryptojs/jsrsa\",SHA512withECDSA:\"cryptojs/jsrsa\",RIPEMD160withECDSA:\"cryptojs/jsrsa\",SHA1withDSA:\"cryptojs/jsrsa\",SHA224withDSA:\"cryptojs/jsrsa\",SHA256withDSA:\"cryptojs/jsrsa\",MD5withRSAandMGF1:\"cryptojs/jsrsa\",SHAwithRSAandMGF1:\"cryptojs/jsrsa\",SHA1withRSAandMGF1:\"cryptojs/jsrsa\",SHA224withRSAandMGF1:\"cryptojs/jsrsa\",SHA256withRSAandMGF1:\"cryptojs/jsrsa\",SHA384withRSAandMGF1:\"cryptojs/jsrsa\",SHA512withRSAandMGF1:\"cryptojs/jsrsa\",RIPEMD160withRSAandMGF1:\"cryptojs/jsrsa\",};this.CRYPTOJSMESSAGEDIGESTNAME={md5:CryptoJS.algo.MD5,sha1:CryptoJS.algo.SHA1,sha224:CryptoJS.algo.SHA224,sha256:CryptoJS.algo.SHA256,sha384:CryptoJS.algo.SHA384,sha512:CryptoJS.algo.SHA512,ripemd160:CryptoJS.algo.RIPEMD160};this.getDigestInfoHex=function(a,b){if(typeof this.DIGESTINFOHEAD[b]==\"undefined\"){throw\"alg not supported in Util.DIGESTINFOHEAD: \"+b}return this.DIGESTINFOHEAD[b]+a};this.getPaddedDigestInfoHex=function(h,a,j){var c=this.getDigestInfoHex(h,a);var d=j/4;if(c.length+22>d){throw\"key is too short for SigAlg: keylen=\"+j+\",\"+a}var b=\"0001\";var k=\"00\"+c;var g=\"\";var l=d-b.length-k.length;for(var f=0;f<l;f+=2){g+=\"ff\"}var e=b+g+k;return e};this.hashString=function(a,c){var b=new KJUR.crypto.MessageDigest({alg:c});return b.digestString(a)};this.hashHex=function(b,c){var a=new KJUR.crypto.MessageDigest({alg:c});return a.digestHex(b)};this.sha1=function(a){return this.hashString(a,\"sha1\")};this.sha256=function(a){return this.hashString(a,\"sha256\")};this.sha256Hex=function(a){return this.hashHex(a,\"sha256\")};this.sha512=function(a){return this.hashString(a,\"sha512\")};this.sha512Hex=function(a){return this.hashHex(a,\"sha512\")};this.isKey=function(a){if(a instanceof RSAKey||a instanceof KJUR.crypto.DSA||a instanceof KJUR.crypto.ECDSA){return true}else{return false}}};KJUR.crypto.Util.md5=function(a){var b=new KJUR.crypto.MessageDigest({alg:\"md5\",prov:\"cryptojs\"});return b.digestString(a)};KJUR.crypto.Util.ripemd160=function(a){var b=new KJUR.crypto.MessageDigest({alg:\"ripemd160\",prov:\"cryptojs\"});return b.digestString(a)};KJUR.crypto.Util.SECURERANDOMGEN=new SecureRandom();KJUR.crypto.Util.getRandomHexOfNbytes=function(b){var a=new Array(b);KJUR.crypto.Util.SECURERANDOMGEN.nextBytes(a);return BAtohex(a)};KJUR.crypto.Util.getRandomBigIntegerOfNbytes=function(a){return new BigInteger(KJUR.crypto.Util.getRandomHexOfNbytes(a),16)};KJUR.crypto.Util.getRandomHexOfNbits=function(d){var c=d%8;var a=(d-c)/8;var b=new Array(a+1);KJUR.crypto.Util.SECURERANDOMGEN.nextBytes(b);b[0]=(((255<<c)&255)^255)&b[0];return BAtohex(b)};KJUR.crypto.Util.getRandomBigIntegerOfNbits=function(a){return new BigInteger(KJUR.crypto.Util.getRandomHexOfNbits(a),16)};KJUR.crypto.Util.getRandomBigIntegerZeroToMax=function(b){var a=b.bitLength();while(1){var c=KJUR.crypto.Util.getRandomBigIntegerOfNbits(a);if(b.compareTo(c)!=-1){return c}}};KJUR.crypto.Util.getRandomBigIntegerMinToMax=function(e,b){var c=e.compareTo(b);if(c==1){throw\"biMin is greater than biMax\"}if(c==0){return e}var a=b.subtract(e);var d=KJUR.crypto.Util.getRandomBigIntegerZeroToMax(a);return d.add(e)};KJUR.crypto.MessageDigest=function(c){var b=null;var a=null;var d=null;this.setAlgAndProvider=function(g,f){g=KJUR.crypto.MessageDigest.getCanonicalAlgName(g);if(g!==null&&f===undefined){f=KJUR.crypto.Util.DEFAULTPROVIDER[g]}if(\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(g)!=-1&&f==\"cryptojs\"){try{this.md=KJUR.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[g].create()}catch(e){throw\"setAlgAndProvider hash alg set fail alg=\"+g+\"/\"+e}this.updateString=function(h){this.md.update(h)};this.updateHex=function(h){var i=CryptoJS.enc.Hex.parse(h);this.md.update(i)};this.digest=function(){var h=this.md.finalize();return h.toString(CryptoJS.enc.Hex)};this.digestString=function(h){this.updateString(h);return this.digest()};this.digestHex=function(h){this.updateHex(h);return this.digest()}}if(\":sha256:\".indexOf(g)!=-1&&f==\"sjcl\"){try{this.md=new sjcl.hash.sha256()}catch(e){throw\"setAlgAndProvider hash alg set fail alg=\"+g+\"/\"+e}this.updateString=function(h){this.md.update(h)};this.updateHex=function(i){var h=sjcl.codec.hex.toBits(i);this.md.update(h)};this.digest=function(){var h=this.md.finalize();return sjcl.codec.hex.fromBits(h)};this.digestString=function(h){this.updateString(h);return this.digest()};this.digestHex=function(h){this.updateHex(h);return this.digest()}}};this.updateString=function(e){throw\"updateString(str) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName};this.updateHex=function(e){throw\"updateHex(hex) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName};this.digest=function(){throw\"digest() not supported for this alg/prov: \"+this.algName+\"/\"+this.provName};this.digestString=function(e){throw\"digestString(str) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName};this.digestHex=function(e){throw\"digestHex(hex) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName};if(c!==undefined){if(c.alg!==undefined){this.algName=c.alg;if(c.prov===undefined){this.provName=KJUR.crypto.Util.DEFAULTPROVIDER[this.algName]}this.setAlgAndProvider(this.algName,this.provName)}}};KJUR.crypto.MessageDigest.getCanonicalAlgName=function(a){if(typeof a===\"string\"){a=a.toLowerCase();a=a.replace(/-/,\"\")}return a};KJUR.crypto.MessageDigest.getHashLength=function(c){var b=KJUR.crypto.MessageDigest;var a=b.getCanonicalAlgName(c);if(b.HASHLENGTH[a]===undefined){throw\"not supported algorithm: \"+c}return b.HASHLENGTH[a]};KJUR.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20};KJUR.crypto.Mac=function(d){var f=null;var c=null;var a=null;var e=null;var b=null;this.setAlgAndProvider=function(k,i){k=k.toLowerCase();if(k==null){k=\"hmacsha1\"}k=k.toLowerCase();if(k.substr(0,4)!=\"hmac\"){throw\"setAlgAndProvider unsupported HMAC alg: \"+k}if(i===undefined){i=KJUR.crypto.Util.DEFAULTPROVIDER[k]}this.algProv=k+\"/\"+i;var g=k.substr(4);if(\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(g)!=-1&&i==\"cryptojs\"){try{var j=KJUR.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[g];this.mac=CryptoJS.algo.HMAC.create(j,this.pass)}catch(h){throw\"setAlgAndProvider hash alg set fail hashAlg=\"+g+\"/\"+h}this.updateString=function(l){this.mac.update(l)};this.updateHex=function(l){var m=CryptoJS.enc.Hex.parse(l);this.mac.update(m)};this.doFinal=function(){var l=this.mac.finalize();return l.toString(CryptoJS.enc.Hex)};this.doFinalString=function(l){this.updateString(l);return this.doFinal()};this.doFinalHex=function(l){this.updateHex(l);return this.doFinal()}}};this.updateString=function(g){throw\"updateString(str) not supported for this alg/prov: \"+this.algProv};this.updateHex=function(g){throw\"updateHex(hex) not supported for this alg/prov: \"+this.algProv};this.doFinal=function(){throw\"digest() not supported for this alg/prov: \"+this.algProv};this.doFinalString=function(g){throw\"digestString(str) not supported for this alg/prov: \"+this.algProv};this.doFinalHex=function(g){throw\"digestHex(hex) not supported for this alg/prov: \"+this.algProv};this.setPassword=function(h){if(typeof h==\"string\"){var g=h;if(h.length%2==1||!h.match(/^[0-9A-Fa-f]+$/)){g=rstrtohex(h)}this.pass=CryptoJS.enc.Hex.parse(g);return}if(typeof h!=\"object\"){throw\"KJUR.crypto.Mac unsupported password type: \"+h}var g=null;if(h.hex!==undefined){if(h.hex.length%2!=0||!h.hex.match(/^[0-9A-Fa-f]+$/)){throw\"Mac: wrong hex password: \"+h.hex}g=h.hex}if(h.utf8!==undefined){g=utf8tohex(h.utf8)}if(h.rstr!==undefined){g=rstrtohex(h.rstr)}if(h.b64!==undefined){g=b64tohex(h.b64)}if(h.b64u!==undefined){g=b64utohex(h.b64u)}if(g==null){throw\"KJUR.crypto.Mac unsupported password type: \"+h}this.pass=CryptoJS.enc.Hex.parse(g)};if(d!==undefined){if(d.pass!==undefined){this.setPassword(d.pass)}if(d.alg!==undefined){this.algName=d.alg;if(d.prov===undefined){this.provName=KJUR.crypto.Util.DEFAULTPROVIDER[this.algName]}this.setAlgAndProvider(this.algName,this.provName)}}};KJUR.crypto.Signature=function(o){var q=null;var n=null;var r=null;var c=null;var l=null;var d=null;var k=null;var h=null;var p=null;var e=null;var b=-1;var g=null;var j=null;var a=null;var i=null;var f=null;this._setAlgNames=function(){var s=this.algName.match(/^(.+)with(.+)$/);if(s){this.mdAlgName=s[1].toLowerCase();this.pubkeyAlgName=s[2].toLowerCase();if(this.pubkeyAlgName==\"rsaandmgf1\"&&this.mdAlgName==\"sha\"){this.mdAlgName=\"sha1\"}}};this._zeroPaddingOfSignature=function(x,w){var v=\"\";var t=w/4-x.length;for(var u=0;u<t;u++){v=v+\"0\"}return v+x};this.setAlgAndProvider=function(u,t){this._setAlgNames();if(t!=\"cryptojs/jsrsa\"){throw new Error(\"provider not supported: \"+t)}if(\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(this.mdAlgName)!=-1){try{this.md=new KJUR.crypto.MessageDigest({alg:this.mdAlgName})}catch(s){throw new Error(\"setAlgAndProvider hash alg set fail alg=\"+this.mdAlgName+\"/\"+s)}this.init=function(w,x){var y=null;try{if(x===undefined){y=KEYUTIL.getKey(w)}else{y=KEYUTIL.getKey(w,x)}}catch(v){throw\"init failed:\"+v}if(y.isPrivate===true){this.prvKey=y;this.state=\"SIGN\"}else{if(y.isPublic===true){this.pubKey=y;this.state=\"VERIFY\"}else{throw\"init failed.:\"+y}}};this.updateString=function(v){this.md.updateString(v)};this.updateHex=function(v){this.md.updateHex(v)};this.sign=function(){this.sHashHex=this.md.digest();if(this.prvKey===undefined&&this.ecprvhex!==undefined&&this.eccurvename!==undefined&&KJUR.crypto.ECDSA!==undefined){this.prvKey=new KJUR.crypto.ECDSA({curve:this.eccurvename,prv:this.ecprvhex})}if(this.prvKey instanceof RSAKey&&this.pubkeyAlgName===\"rsaandmgf1\"){this.hSign=this.prvKey.signWithMessageHashPSS(this.sHashHex,this.mdAlgName,this.pssSaltLen)}else{if(this.prvKey instanceof RSAKey&&this.pubkeyAlgName===\"rsa\"){this.hSign=this.prvKey.signWithMessageHash(this.sHashHex,this.mdAlgName)}else{if(this.prvKey instanceof KJUR.crypto.ECDSA){this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}else{if(this.prvKey instanceof KJUR.crypto.DSA){this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}else{throw\"Signature: unsupported private key alg: \"+this.pubkeyAlgName}}}}return this.hSign};this.signString=function(v){this.updateString(v);return this.sign()};this.signHex=function(v){this.updateHex(v);return this.sign()};this.verify=function(v){this.sHashHex=this.md.digest();if(this.pubKey===undefined&&this.ecpubhex!==undefined&&this.eccurvename!==undefined&&KJUR.crypto.ECDSA!==undefined){this.pubKey=new KJUR.crypto.ECDSA({curve:this.eccurvename,pub:this.ecpubhex})}if(this.pubKey instanceof RSAKey&&this.pubkeyAlgName===\"rsaandmgf1\"){return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,v,this.mdAlgName,this.pssSaltLen)}else{if(this.pubKey instanceof RSAKey&&this.pubkeyAlgName===\"rsa\"){return this.pubKey.verifyWithMessageHash(this.sHashHex,v)}else{if(KJUR.crypto.ECDSA!==undefined&&this.pubKey instanceof KJUR.crypto.ECDSA){return this.pubKey.verifyWithMessageHash(this.sHashHex,v)}else{if(KJUR.crypto.DSA!==undefined&&this.pubKey instanceof KJUR.crypto.DSA){return this.pubKey.verifyWithMessageHash(this.sHashHex,v)}else{throw\"Signature: unsupported public key alg: \"+this.pubkeyAlgName}}}}}}};this.init=function(s,t){throw\"init(key, pass) not supported for this alg:prov=\"+this.algProvName};this.updateString=function(s){throw\"updateString(str) not supported for this alg:prov=\"+this.algProvName};this.updateHex=function(s){throw\"updateHex(hex) not supported for this alg:prov=\"+this.algProvName};this.sign=function(){throw\"sign() not supported for this alg:prov=\"+this.algProvName};this.signString=function(s){throw\"digestString(str) not supported for this alg:prov=\"+this.algProvName};this.signHex=function(s){throw\"digestHex(hex) not supported for this alg:prov=\"+this.algProvName};this.verify=function(s){throw\"verify(hSigVal) not supported for this alg:prov=\"+this.algProvName};this.initParams=o;if(o!==undefined){if(o.alg!==undefined){this.algName=o.alg;if(o.prov===undefined){this.provName=KJUR.crypto.Util.DEFAULTPROVIDER[this.algName]}else{this.provName=o.prov}this.algProvName=this.algName+\":\"+this.provName;this.setAlgAndProvider(this.algName,this.provName);this._setAlgNames()}if(o.psssaltlen!==undefined){this.pssSaltLen=o.psssaltlen}if(o.prvkeypem!==undefined){if(o.prvkeypas!==undefined){throw\"both prvkeypem and prvkeypas parameters not supported\"}else{try{var q=KEYUTIL.getKey(o.prvkeypem);this.init(q)}catch(m){throw\"fatal error to load pem private key: \"+m}}}}};KJUR.crypto.OID=new function(){this.oidhex2name={\"2a864886f70d010101\":\"rsaEncryption\",\"2a8648ce3d0201\":\"ecPublicKey\",\"2a8648ce380401\":\"dsa\",\"2a8648ce3d030107\":\"secp256r1\",\"2b8104001f\":\"secp192k1\",\"2b81040021\":\"secp224r1\",\"2b8104000a\":\"secp256k1\",\"2b81040022\":\"secp384r1\",\"2b81040023\":\"secp521r1\",\"2a8648ce380403\":\"SHA1withDSA\",\"608648016503040301\":\"SHA224withDSA\",\"608648016503040302\":\"SHA256withDSA\",}};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.crypto==\"undefined\"||!KJUR.crypto){KJUR.crypto={}}KJUR.crypto.ECDSA=function(e){var g=\"secp256r1\";var p=null;var b=null;var i=null;var j=Error,f=BigInteger,h=ECPointFp,m=KJUR.crypto.ECDSA,c=KJUR.crypto.ECParameterDB,d=m.getName,q=ASN1HEX,n=q.getVbyListEx,k=q.isASN1HEX;var a=new SecureRandom();var o=null;this.type=\"EC\";this.isPrivate=false;this.isPublic=false;function l(x,t,w,s){var r=Math.max(t.bitLength(),s.bitLength());var y=x.add2D(w);var v=x.curve.getInfinity();for(var u=r-1;u>=0;--u){v=v.twice2D();v.z=f.ONE;if(t.testBit(u)){if(s.testBit(u)){v=v.add2D(y)}else{v=v.add2D(x)}}else{if(s.testBit(u)){v=v.add2D(w)}}}return v}this.getBigRandom=function(r){return new f(r.bitLength(),a).mod(r.subtract(f.ONE)).add(f.ONE)};this.setNamedCurve=function(r){this.ecparams=c.getByName(r);this.prvKeyHex=null;this.pubKeyHex=null;this.curveName=r};this.setPrivateKeyHex=function(r){this.isPrivate=true;this.prvKeyHex=r};this.setPublicKeyHex=function(r){this.isPublic=true;this.pubKeyHex=r};this.getPublicKeyXYHex=function(){var t=this.pubKeyHex;if(t.substr(0,2)!==\"04\"){throw\"this method supports uncompressed format(04) only\"}var s=this.ecparams.keycharlen;if(t.length!==2+s*2){throw\"malformed public key hex length\"}var r={};r.x=t.substr(2,s);r.y=t.substr(2+s);return r};this.getShortNISTPCurveName=function(){var r=this.curveName;if(r===\"secp256r1\"||r===\"NIST P-256\"||r===\"P-256\"||r===\"prime256v1\"){return\"P-256\"}if(r===\"secp384r1\"||r===\"NIST P-384\"||r===\"P-384\"){return\"P-384\"}if(r===\"secp521r1\"||r===\"NIST P-521\"||r===\"P-521\"){return\"P-521\"}return null};this.generateKeyPairHex=function(){var s=this.ecparams.n;var u=this.getBigRandom(s);var r=this.ecparams.keycharlen;var t=(\"0000000000\"+u.toString(16)).slice(-r);this.setPrivateKeyHex(t);var v=this.generatePublicKeyHex();return{ecprvhex:t,ecpubhex:v}};this.generatePublicKeyHex=function(){var u=new f(this.prvKeyHex,16);var w=this.ecparams.G.multiply(u);var t=w.getX().toBigInteger();var s=w.getY().toBigInteger();var r=this.ecparams.keycharlen;var y=(\"0000000000\"+t.toString(16)).slice(-r);var v=(\"0000000000\"+s.toString(16)).slice(-r);var x=\"04\"+y+v;this.setPublicKeyHex(x);return x};this.signWithMessageHash=function(r){return this.signHex(r,this.prvKeyHex)};this.signHex=function(x,u){var A=new f(u,16);var v=this.ecparams.n;var z=new f(x.substring(0,this.ecparams.keycharlen),16);do{var w=this.getBigRandom(v);var B=this.ecparams.G;var y=B.multiply(w);var t=y.getX().toBigInteger().mod(v)}while(t.compareTo(f.ZERO)<=0);var C=w.modInverse(v).multiply(z.add(A.multiply(t))).mod(v);return m.biRSSigToASN1Sig(t,C)};this.sign=function(w,B){var z=B;var u=this.ecparams.n;var y=f.fromByteArrayUnsigned(w);do{var v=this.getBigRandom(u);var A=this.ecparams.G;var x=A.multiply(v);var t=x.getX().toBigInteger().mod(u)}while(t.compareTo(BigInteger.ZERO)<=0);var C=v.modInverse(u).multiply(y.add(z.multiply(t))).mod(u);return this.serializeSig(t,C)};this.verifyWithMessageHash=function(s,r){return this.verifyHex(s,r,this.pubKeyHex)};this.verifyHex=function(v,y,u){try{var t,B;var w=m.parseSigHex(y);t=w.r;B=w.s;var x=h.decodeFromHex(this.ecparams.curve,u);var z=new f(v.substring(0,this.ecparams.keycharlen),16);return this.verifyRaw(z,t,B,x)}catch(A){return false}};this.verify=function(z,A,u){var w,t;if(Bitcoin.Util.isArray(A)){var y=this.parseSig(A);w=y.r;t=y.s}else{if(\"object\"===typeof A&&A.r&&A.s){w=A.r;t=A.s}else{throw\"Invalid value for signature\"}}var v;if(u instanceof ECPointFp){v=u}else{if(Bitcoin.Util.isArray(u)){v=h.decodeFrom(this.ecparams.curve,u)}else{throw\"Invalid format for pubkey value, must be byte array or ECPointFp\"}}var x=f.fromByteArrayUnsigned(z);return this.verifyRaw(x,w,t,v)};this.verifyRaw=function(z,t,E,y){var x=this.ecparams.n;var D=this.ecparams.G;if(t.compareTo(f.ONE)<0||t.compareTo(x)>=0){return false}if(E.compareTo(f.ONE)<0||E.compareTo(x)>=0){return false}var A=E.modInverse(x);var w=z.multiply(A).mod(x);var u=t.multiply(A).mod(x);var B=D.multiply(w).add(y.multiply(u));var C=B.getX().toBigInteger().mod(x);return C.equals(t)};this.serializeSig=function(v,u){var w=v.toByteArraySigned();var t=u.toByteArraySigned();var x=[];x.push(2);x.push(w.length);x=x.concat(w);x.push(2);x.push(t.length);x=x.concat(t);x.unshift(x.length);x.unshift(48);return x};this.parseSig=function(y){var x;if(y[0]!=48){throw new Error(\"Signature not a valid DERSequence\")}x=2;if(y[x]!=2){throw new Error(\"First element in signature must be a DERInteger\")}var w=y.slice(x+2,x+2+y[x+1]);x+=2+y[x+1];if(y[x]!=2){throw new Error(\"Second element in signature must be a DERInteger\")}var t=y.slice(x+2,x+2+y[x+1]);x+=2+y[x+1];var v=f.fromByteArrayUnsigned(w);var u=f.fromByteArrayUnsigned(t);return{r:v,s:u}};this.parseSigCompact=function(w){if(w.length!==65){throw\"Signature has the wrong length\"}var t=w[0]-27;if(t<0||t>7){throw\"Invalid signature type\"}var x=this.ecparams.n;var v=f.fromByteArrayUnsigned(w.slice(1,33)).mod(x);var u=f.fromByteArrayUnsigned(w.slice(33,65)).mod(x);return{r:v,s:u,i:t}};this.readPKCS5PrvKeyHex=function(u){if(k(u)===false){throw new Error(\"not ASN.1 hex string\")}var r,t,v;try{r=n(u,0,[\"[0]\",0],\"06\");t=n(u,0,[1],\"04\");try{v=n(u,0,[\"[1]\",0],\"03\")}catch(s){}}catch(s){throw new Error(\"malformed PKCS#1/5 plain ECC private key\")}this.curveName=d(r);if(this.curveName===undefined){throw\"unsupported curve name\"}this.setNamedCurve(this.curveName);this.setPublicKeyHex(v);this.setPrivateKeyHex(t);this.isPublic=false};this.readPKCS8PrvKeyHex=function(v){if(k(v)===false){throw new j(\"not ASN.1 hex string\")}var t,r,u,w;try{t=n(v,0,[1,0],\"06\");r=n(v,0,[1,1],\"06\");u=n(v,0,[2,0,1],\"04\");try{w=n(v,0,[2,0,\"[1]\",0],\"03\")}catch(s){}}catch(s){throw new j(\"malformed PKCS#8 plain ECC private key\")}this.curveName=d(r);if(this.curveName===undefined){throw new j(\"unsupported curve name\")}this.setNamedCurve(this.curveName);this.setPublicKeyHex(w);this.setPrivateKeyHex(u);this.isPublic=false};this.readPKCS8PubKeyHex=function(u){if(k(u)===false){throw new j(\"not ASN.1 hex string\")}var t,r,v;try{t=n(u,0,[0,0],\"06\");r=n(u,0,[0,1],\"06\");v=n(u,0,[1],\"03\")}catch(s){throw new j(\"malformed PKCS#8 ECC public key\")}this.curveName=d(r);if(this.curveName===null){throw new j(\"unsupported curve name\")}this.setNamedCurve(this.curveName);this.setPublicKeyHex(v)};this.readCertPubKeyHex=function(t,v){if(k(t)===false){throw new j(\"not ASN.1 hex string\")}var r,u;try{r=n(t,0,[0,5,0,1],\"06\");u=n(t,0,[0,5,1],\"03\")}catch(s){throw new j(\"malformed X.509 certificate ECC public key\")}this.curveName=d(r);if(this.curveName===null){throw new j(\"unsupported curve name\")}this.setNamedCurve(this.curveName);this.setPublicKeyHex(u)};if(e!==undefined){if(e.curve!==undefined){this.curveName=e.curve}}if(this.curveName===undefined){this.curveName=g}this.setNamedCurve(this.curveName);if(e!==undefined){if(e.prv!==undefined){this.setPrivateKeyHex(e.prv)}if(e.pub!==undefined){this.setPublicKeyHex(e.pub)}}};KJUR.crypto.ECDSA.parseSigHex=function(a){var b=KJUR.crypto.ECDSA.parseSigHexInHexRS(a);var d=new BigInteger(b.r,16);var c=new BigInteger(b.s,16);return{r:d,s:c}};KJUR.crypto.ECDSA.parseSigHexInHexRS=function(f){var j=ASN1HEX,i=j.getChildIdx,g=j.getV;j.checkStrictDER(f,0);if(f.substr(0,2)!=\"30\"){throw new Error(\"signature is not a ASN.1 sequence\")}var h=i(f,0);if(h.length!=2){throw new Error(\"signature shall have two elements\")}var e=h[0];var d=h[1];if(f.substr(e,2)!=\"02\"){throw new Error(\"1st item not ASN.1 integer\")}if(f.substr(d,2)!=\"02\"){throw new Error(\"2nd item not ASN.1 integer\")}var c=g(f,e);var b=g(f,d);return{r:c,s:b}};KJUR.crypto.ECDSA.asn1SigToConcatSig=function(d){var e=KJUR.crypto.ECDSA.parseSigHexInHexRS(d);var b=e.r;var a=e.s;if(b.length>=130&&b.length<=134){if(b.length%2!=0){throw Error(\"unknown ECDSA sig r length error\")}if(a.length%2!=0){throw Error(\"unknown ECDSA sig s length error\")}if(b.substr(0,2)==\"00\"){b=b.substr(2)}if(a.substr(0,2)==\"00\"){a=a.substr(2)}var c=Math.max(b.length,a.length);b=(\"000000\"+b).slice(-c);a=(\"000000\"+a).slice(-c);return b+a}if(b.substr(0,2)==\"00\"&&(b.length%32)==2){b=b.substr(2)}if(a.substr(0,2)==\"00\"&&(a.length%32)==2){a=a.substr(2)}if((b.length%32)==30){b=\"00\"+b}if((a.length%32)==30){a=\"00\"+a}if(b.length%32!=0){throw Error(\"unknown ECDSA sig r length error\")}if(a.length%32!=0){throw Error(\"unknown ECDSA sig s length error\")}return b+a};KJUR.crypto.ECDSA.concatSigToASN1Sig=function(a){if(a.length%4!=0){throw Error(\"unknown ECDSA concatinated r-s sig length error\")}var c=a.substr(0,a.length/2);var b=a.substr(a.length/2);return KJUR.crypto.ECDSA.hexRSSigToASN1Sig(c,b)};KJUR.crypto.ECDSA.hexRSSigToASN1Sig=function(b,a){var d=new BigInteger(b,16);var c=new BigInteger(a,16);return KJUR.crypto.ECDSA.biRSSigToASN1Sig(d,c)};KJUR.crypto.ECDSA.biRSSigToASN1Sig=function(f,d){var c=KJUR.asn1;var b=new c.DERInteger({bigint:f});var a=new c.DERInteger({bigint:d});var e=new c.DERSequence({array:[b,a]});return e.tohex()};KJUR.crypto.ECDSA.getName=function(a){if(a===\"2b8104001f\"){return\"secp192k1\"}if(a===\"2a8648ce3d030107\"){return\"secp256r1\"}if(a===\"2b8104000a\"){return\"secp256k1\"}if(a===\"2b81040021\"){return\"secp224r1\"}if(a===\"2b81040022\"){return\"secp384r1\"}if(a===\"2b81040023\"){return\"secp521r1\"}if(\"|secp256r1|NIST P-256|P-256|prime256v1|\".indexOf(a)!==-1){return\"secp256r1\"}if(\"|secp256k1|\".indexOf(a)!==-1){return\"secp256k1\"}if(\"|secp224r1|NIST P-224|P-224|\".indexOf(a)!==-1){return\"secp224r1\"}if(\"|secp384r1|NIST P-384|P-384|\".indexOf(a)!==-1){return\"secp384r1\"}if(\"|secp521r1|NIST P-521|P-521|\".indexOf(a)!==-1){return\"secp521r1\"}return null};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.crypto==\"undefined\"||!KJUR.crypto){KJUR.crypto={}}KJUR.crypto.ECParameterDB=new function(){var b={};var c={};function a(d){return new BigInteger(d,16)}this.getByName=function(e){var d=e;if(typeof c[d]!=\"undefined\"){d=c[e]}if(typeof b[d]!=\"undefined\"){return b[d]}throw\"unregistered EC curve name: \"+d};this.regist=function(A,l,o,g,m,e,j,f,k,u,d,x){b[A]={};var s=a(o);var z=a(g);var y=a(m);var t=a(e);var w=a(j);var r=new ECCurveFp(s,z,y);var q=r.decodePointHex(\"04\"+f+k);b[A][\"name\"]=A;b[A][\"keylen\"]=l;b[A][\"keycharlen\"]=Math.ceil(l/8)*2;b[A][\"curve\"]=r;b[A][\"G\"]=q;b[A][\"n\"]=t;b[A][\"h\"]=w;b[A][\"oid\"]=d;b[A][\"info\"]=x;for(var v=0;v<u.length;v++){c[u[v]]=A}}};KJUR.crypto.ECParameterDB.regist(\"secp128r1\",128,\"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF\",\"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC\",\"E87579C11079F43DD824993C2CEE5ED3\",\"FFFFFFFE0000000075A30D1B9038A115\",\"1\",\"161FF7528B899B2D0C28607CA52C5B86\",\"CF5AC8395BAFEB13C02DA292DDED7A83\",[],\"\",\"secp128r1 : SECG curve over a 128 bit prime field\");KJUR.crypto.ECParameterDB.regist(\"secp160k1\",160,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73\",\"0\",\"7\",\"0100000000000000000001B8FA16DFAB9ACA16B6B3\",\"1\",\"3B4C382CE37AA192A4019E763036F4F5DD4D7EBB\",\"938CF935318FDCED6BC28286531733C3F03C4FEE\",[],\"\",\"secp160k1 : SECG curve over a 160 bit prime field\");KJUR.crypto.ECParameterDB.regist(\"secp160r1\",160,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC\",\"1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45\",\"0100000000000000000001F4C8F927AED3CA752257\",\"1\",\"4A96B5688EF573284664698968C38BB913CBFC82\",\"23A628553168947D59DCC912042351377AC5FB32\",[],\"\",\"secp160r1 : SECG curve over a 160 bit prime field\");KJUR.crypto.ECParameterDB.regist(\"secp192k1\",192,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37\",\"0\",\"3\",\"FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D\",\"1\",\"DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D\",\"9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D\",[]);KJUR.crypto.ECParameterDB.regist(\"secp192r1\",192,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC\",\"64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1\",\"FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831\",\"1\",\"188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012\",\"07192B95FFC8DA78631011ED6B24CDD573F977A11E794811\",[]);KJUR.crypto.ECParameterDB.regist(\"secp224r1\",224,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE\",\"B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D\",\"1\",\"B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21\",\"BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34\",[]);KJUR.crypto.ECParameterDB.regist(\"secp256k1\",256,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F\",\"0\",\"7\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\",\"1\",\"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798\",\"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8\",[]);KJUR.crypto.ECParameterDB.regist(\"secp256r1\",256,\"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF\",\"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC\",\"5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B\",\"FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551\",\"1\",\"6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296\",\"4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5\",[\"NIST P-256\",\"P-256\",\"prime256v1\"]);KJUR.crypto.ECParameterDB.regist(\"secp384r1\",384,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC\",\"B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973\",\"1\",\"AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7\",\"3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f\",[\"NIST P-384\",\"P-384\"]);KJUR.crypto.ECParameterDB.regist(\"secp521r1\",521,\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\",\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\",\"051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00\",\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409\",\"1\",\"00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66\",\"011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650\",[\"NIST P-521\",\"P-521\"]);\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.crypto==\"undefined\"||!KJUR.crypto){KJUR.crypto={}}KJUR.crypto.DSA=function(){var b=ASN1HEX,e=b.getVbyList,d=b.getVbyListEx,a=b.isASN1HEX,c=BigInteger;this.p=null;this.q=null;this.g=null;this.y=null;this.x=null;this.type=\"DSA\";this.isPrivate=false;this.isPublic=false;this.setPrivate=function(j,i,h,k,f){this.isPrivate=true;this.p=j;this.q=i;this.g=h;this.y=k;this.x=f};this.setPrivateHex=function(i,g,k,n,o){var h,f,j,l,m;h=new BigInteger(i,16);f=new BigInteger(g,16);j=new BigInteger(k,16);if(typeof n===\"string\"&&n.length>1){l=new BigInteger(n,16)}else{l=null}m=new BigInteger(o,16);this.setPrivate(h,f,j,l,m)};this.setPublic=function(i,h,f,j){this.isPublic=true;this.p=i;this.q=h;this.g=f;this.y=j;this.x=null};this.setPublicHex=function(k,j,i,l){var g,f,m,h;g=new BigInteger(k,16);f=new BigInteger(j,16);m=new BigInteger(i,16);h=new BigInteger(l,16);this.setPublic(g,f,m,h)};this.signWithMessageHash=function(j){var i=this.p;var h=this.q;var m=this.g;var o=this.y;var t=this.x;var l=KJUR.crypto.Util.getRandomBigIntegerMinToMax(BigInteger.ONE.add(BigInteger.ONE),h.subtract(BigInteger.ONE));var u=j.substr(0,h.bitLength()/4);var n=new BigInteger(u,16);var f=(m.modPow(l,i)).mod(h);var w=(l.modInverse(h).multiply(n.add(t.multiply(f)))).mod(h);var v=KJUR.asn1.ASN1Util.jsonToASN1HEX({seq:[{\"int\":{bigint:f}},{\"int\":{bigint:w}}]});return v};this.verifyWithMessageHash=function(m,l){var j=this.p;var h=this.q;var o=this.g;var u=this.y;var n=this.parseASN1Signature(l);var f=n[0];var C=n[1];var B=m.substr(0,h.bitLength()/4);var t=new BigInteger(B,16);if(BigInteger.ZERO.compareTo(f)>0||f.compareTo(h)>0){throw\"invalid DSA signature\"}if(BigInteger.ZERO.compareTo(C)>=0||C.compareTo(h)>0){throw\"invalid DSA signature\"}var x=C.modInverse(h);var k=t.multiply(x).mod(h);var i=f.multiply(x).mod(h);var A=o.modPow(k,j).multiply(u.modPow(i,j)).mod(j).mod(h);return A.compareTo(f)==0};this.parseASN1Signature=function(f){try{var i=new c(d(f,0,[0],\"02\"),16);var h=new c(d(f,0,[1],\"02\"),16);return[i,h]}catch(g){throw new Error(\"malformed ASN.1 DSA signature\")}};this.readPKCS5PrvKeyHex=function(j){var k,i,g,l,m;if(a(j)===false){throw new Error(\"not ASN.1 hex string\")}try{k=d(j,0,[1],\"02\");i=d(j,0,[2],\"02\");g=d(j,0,[3],\"02\");l=d(j,0,[4],\"02\");m=d(j,0,[5],\"02\")}catch(f){throw new Error(\"malformed PKCS#1/5 plain DSA private key\")}this.setPrivateHex(k,i,g,l,m)};this.readPKCS8PrvKeyHex=function(j){var k,i,g,l;if(a(j)===false){throw new Error(\"not ASN.1 hex string\")}try{k=d(j,0,[1,1,0],\"02\");i=d(j,0,[1,1,1],\"02\");g=d(j,0,[1,1,2],\"02\");l=d(j,0,[2,0],\"02\")}catch(f){throw new Error(\"malformed PKCS#8 plain DSA private key\")}this.setPrivateHex(k,i,g,null,l)};this.readPKCS8PubKeyHex=function(j){var k,i,g,l;if(a(j)===false){throw new Error(\"not ASN.1 hex string\")}try{k=d(j,0,[0,1,0],\"02\");i=d(j,0,[0,1,1],\"02\");g=d(j,0,[0,1,2],\"02\");l=d(j,0,[1,0],\"02\")}catch(f){throw new Error(\"malformed PKCS#8 DSA public key\")}this.setPublicHex(k,i,g,l)};this.readCertPubKeyHex=function(j,m){var k,i,g,l;if(a(j)===false){throw new Error(\"not ASN.1 hex string\")}try{k=d(j,0,[0,5,0,1,0],\"02\");i=d(j,0,[0,5,0,1,1],\"02\");g=d(j,0,[0,5,0,1,2],\"02\");l=d(j,0,[0,5,1,0],\"02\")}catch(f){throw new Error(\"malformed X.509 certificate DSA public key\")}this.setPublicHex(k,i,g,l)}};\nvar KEYUTIL=function(){var d=function(p,r,q){return k(CryptoJS.AES,p,r,q)};var e=function(p,r,q){return k(CryptoJS.TripleDES,p,r,q)};var a=function(p,r,q){return k(CryptoJS.DES,p,r,q)};var k=function(s,x,u,q){var r=CryptoJS.enc.Hex.parse(x);var w=CryptoJS.enc.Hex.parse(u);var p=CryptoJS.enc.Hex.parse(q);var t={};t.key=w;t.iv=p;t.ciphertext=r;var v=s.decrypt(t,w,{iv:p});return CryptoJS.enc.Hex.stringify(v)};var l=function(p,r,q){return g(CryptoJS.AES,p,r,q)};var o=function(p,r,q){return g(CryptoJS.TripleDES,p,r,q)};var f=function(p,r,q){return g(CryptoJS.DES,p,r,q)};var g=function(t,y,v,q){var s=CryptoJS.enc.Hex.parse(y);var x=CryptoJS.enc.Hex.parse(v);var p=CryptoJS.enc.Hex.parse(q);var w=t.encrypt(s,x,{iv:p});var r=CryptoJS.enc.Hex.parse(w.toString());var u=CryptoJS.enc.Base64.stringify(r);return u};var i={\"AES-256-CBC\":{proc:d,eproc:l,keylen:32,ivlen:16},\"AES-192-CBC\":{proc:d,eproc:l,keylen:24,ivlen:16},\"AES-128-CBC\":{proc:d,eproc:l,keylen:16,ivlen:16},\"DES-EDE3-CBC\":{proc:e,eproc:o,keylen:24,ivlen:8},\"DES-CBC\":{proc:a,eproc:f,keylen:8,ivlen:8}};var c=function(p){return i[p][\"proc\"]};var m=function(p){var r=CryptoJS.lib.WordArray.random(p);var q=CryptoJS.enc.Hex.stringify(r);return q};var n=function(v){var w={};var q=v.match(new RegExp(\"DEK-Info: ([^,]+),([0-9A-Fa-f]+)\",\"m\"));if(q){w.cipher=q[1];w.ivsalt=q[2]}var p=v.match(new RegExp(\"-----BEGIN ([A-Z]+) PRIVATE KEY-----\"));if(p){w.type=p[1]}var u=-1;var x=0;if(v.indexOf(\"\\r\\n\\r\\n\")!=-1){u=v.indexOf(\"\\r\\n\\r\\n\");x=2}if(v.indexOf(\"\\n\\n\")!=-1){u=v.indexOf(\"\\n\\n\");x=1}var t=v.indexOf(\"-----END\");if(u!=-1&&t!=-1){var r=v.substring(u+x*2,t-x);r=r.replace(/\\s+/g,\"\");w.data=r}return w};var j=function(q,y,p){var v=p.substring(0,16);var t=CryptoJS.enc.Hex.parse(v);var r=CryptoJS.enc.Utf8.parse(y);var u=i[q][\"keylen\"]+i[q][\"ivlen\"];var x=\"\";var w=null;for(;;){var s=CryptoJS.algo.MD5.create();if(w!=null){s.update(w)}s.update(r);s.update(t);w=s.finalize();x=x+CryptoJS.enc.Hex.stringify(w);if(x.length>=u*2){break}}var z={};z.keyhex=x.substr(0,i[q][\"keylen\"]*2);z.ivhex=x.substr(i[q][\"keylen\"]*2,i[q][\"ivlen\"]*2);return z};var b=function(p,v,r,w){var s=CryptoJS.enc.Base64.parse(p);var q=CryptoJS.enc.Hex.stringify(s);var u=i[v][\"proc\"];var t=u(q,r,w);return t};var h=function(p,s,q,u){var r=i[s][\"eproc\"];var t=r(p,q,u);return t};return{version:\"1.0.0\",parsePKCS5PEM:function(p){return n(p)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(q,p,r){return j(q,p,r)},decryptKeyB64:function(p,r,q,s){return b(p,r,q,s)},getDecryptedKeyHex:function(y,x){var q=n(y);var t=q.type;var r=q.cipher;var p=q.ivsalt;var s=q.data;var w=j(r,x,p);var v=w.keyhex;var u=b(s,r,v,p);return u},getEncryptedPKCS5PEMFromPrvKeyHex:function(x,s,A,t,r){var p=\"\";if(typeof t==\"undefined\"||t==null){t=\"AES-256-CBC\"}if(typeof i[t]==\"undefined\"){throw new Error(\"KEYUTIL unsupported algorithm: \"+t)}if(typeof r==\"undefined\"||r==null){var v=i[t][\"ivlen\"];var u=m(v);r=u.toUpperCase()}var z=j(t,A,r);var y=z.keyhex;var w=h(s,t,y,r);var q=w.replace(/(.{64})/g,\"$1\\r\\n\");var p=\"-----BEGIN \"+x+\" PRIVATE KEY-----\\r\\n\";p+=\"Proc-Type: 4,ENCRYPTED\\r\\n\";p+=\"DEK-Info: \"+t+\",\"+r+\"\\r\\n\";p+=\"\\r\\n\";p+=q;p+=\"\\r\\n-----END \"+x+\" PRIVATE KEY-----\\r\\n\";return p},getEncryptedPKCS8PEM:function(r,p,s){var q=this.getEncryptedPKCS8Hex(r,p,s);return hextopem(q,\"ENCRYPTED PRIVATE KEY\")},getEncryptedPKCS8Hex:function(r,p,t){var q;if(t==undefined||t==null){q={}}else{q=JSON.parse(JSON.stringify(t))}q.plain=r;this.initPBES2Param(q);this.encryptPBES2Param(q,p);var s=this.generatePBES2ASN1Param(q);return KJUR.asn1.ASN1Util.newObject(s).tohex()},initPBES2Param:function(p){if(aryval(p,\"encalg\")==undefined){p.encalg=\"aes256-CBC\"}if(aryval(p,\"iter\")==undefined){p.iter=2048}if(aryval(p,\"prf\")==undefined){p.prf=\"hmacWithSHA256\"}if(aryval(p,\"salt\")==undefined){p.salt=CryptoJS.enc.Hex.stringify(CryptoJS.lib.WordArray.random(8))}if(aryval(p,\"enciv\")==undefined){var q;if(p.encalg==\"des-EDE3-CBC\"){q=8}if(p.encalg==\"aes128-CBC\"){q=16}if(p.encalg==\"aes256-CBC\"){q=16}p.enciv=CryptoJS.enc.Hex.stringify(CryptoJS.lib.WordArray.random(q))}},encryptPBES2Param:function(p,q){var t=KEYUTIL.getDKFromPBES2Param(p,q);try{var s=KJUR.crypto.Cipher.encrypt(p.plain,t,p.encalg,{iv:p.enciv})}catch(r){throw new Error(\"encrypt error: \"+p.plain+\" \"+t+\" \"+p.encalg+\" \"+p.enciv)}p.enc=s},generatePBES2ASN1Param:function(p){var q={seq:[{seq:[{oid:\"pkcs5PBES2\"},{seq:[{seq:[{oid:\"pkcs5PBKDF2\"},{seq:[{octstr:{hex:p.salt}},{\"int\":{hex:inttohex(p.iter)}}]}]},{seq:[{oid:p.encalg},{octstr:{hex:p.enciv}}]}]}]},{octstr:{hex:p.enc}}]};if(p.prf!=\"hmacWithSHA1\"){q.seq[0].seq[1].seq[0].seq[1].seq.push({seq:[{oid:p.prf},{\"null\":\"\"}]})}return q},parseHexOfEncryptedPKCS8:function(y){var B=ASN1HEX;var z=B.getChildIdx;var w=B.getV;var t={};var r=z(y,0);if(r.length!=2){throw new Error(\"malformed format: SEQUENCE(0).items != 2: \"+r.length)}t.ciphertext=w(y,r[1]);var A=z(y,r[0]);if(A.length!=2){throw new Error(\"malformed format: SEQUENCE(0.0).items != 2: \"+A.length)}if(w(y,A[0])!=\"2a864886f70d01050d\"){throw new Error(\"this only supports pkcs5PBES2\")}var p=z(y,A[1]);if(A.length!=2){throw new Error(\"malformed format: SEQUENCE(0.0.1).items != 2: \"+p.length)}var q=z(y,p[1]);if(q.length!=2){throw new Error(\"malformed format: SEQUENCE(0.0.1.1).items != 2: \"+q.length)}if(w(y,q[0])!=\"2a864886f70d0307\"){throw\"this only supports TripleDES\"}t.encryptionSchemeAlg=\"TripleDES\";t.encryptionSchemeIV=w(y,q[1]);var s=z(y,p[0]);if(s.length!=2){throw new Error(\"malformed format: SEQUENCE(0.0.1.0).items != 2: \"+s.length)}if(w(y,s[0])!=\"2a864886f70d01050c\"){throw new Error(\"this only supports pkcs5PBKDF2\")}var x=z(y,s[1]);if(x.length<2){throw new Error(\"malformed format: SEQUENCE(0.0.1.0.1).items < 2: \"+x.length)}t.pbkdf2Salt=w(y,x[0]);var u=w(y,x[1]);try{t.pbkdf2Iter=parseInt(u,16)}catch(v){throw new Error(\"malformed format pbkdf2Iter: \"+u)}return t},getPBKDF2KeyHexFromParam:function(u,p){var t=CryptoJS.enc.Hex.parse(u.pbkdf2Salt);var q=u.pbkdf2Iter;var s=CryptoJS.PBKDF2(p,t,{keySize:192/32,iterations:q});var r=CryptoJS.enc.Hex.stringify(s);return r},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(x,y){var r=pemtohex(x,\"ENCRYPTED PRIVATE KEY\");var p=this.parseHexOfEncryptedPKCS8(r);var u=KEYUTIL.getPBKDF2KeyHexFromParam(p,y);var v={};v.ciphertext=CryptoJS.enc.Hex.parse(p.ciphertext);var t=CryptoJS.enc.Hex.parse(u);var s=CryptoJS.enc.Hex.parse(p.encryptionSchemeIV);var w=CryptoJS.TripleDES.decrypt(v,t,{iv:s});var q=CryptoJS.enc.Hex.stringify(w);return q},parsePBES2:function(z){var v=ASN1HEX.parse(z);if(aryval(v,\"seq.0.seq.0.oid\")!=\"pkcs5PBES2\"||aryval(v,\"seq.0.seq.1.seq.0.seq.0.oid\")!=\"pkcs5PBKDF2\"){throw new Error(\"not pkcs5PBES2 and pkcs5PBKDF2 used\")}var y=aryval(v,\"seq.0.seq.1.seq.0.seq.1.seq\");if(y==undefined){throw new Error(\"PBKDF2 parameter not found\")}var t=aryval(y,\"0.octstr.hex\");var p=aryval(y,\"1.int.hex\");var q=aryval(y,\"2.seq.0.oid\",\"hmacWithSHA1\");var x=-1;try{x=parseInt(p,16)}catch(w){throw new Error(\"iter not proper value\")}var u=aryval(v,\"seq.0.seq.1.seq.1.seq.0.oid\");var s=aryval(v,\"seq.0.seq.1.seq.1.seq.1.octstr.hex\");var r=aryval(v,\"seq.1.octstr.hex\");if(u==undefined||s==undefined||r==undefined){throw new Error(\"encalg, enciv or enc is undefined\")}var A={salt:t,iter:x,prf:q,encalg:u,enciv:s,enc:r};return A},getDKFromPBES2Param:function(p,w){var x={hmacWithSHA1:CryptoJS.algo.SHA1,hmacWithSHA224:CryptoJS.algo.SHA224,hmacWithSHA256:CryptoJS.algo.SHA256,hmacWithSHA384:CryptoJS.algo.SHA384,hmacWithSHA512:CryptoJS.algo.SHA512};var q={\"des-EDE3-CBC\":192/32,\"aes128-CBC\":128/32,\"aes256-CBC\":256/32,};var y=x[p.prf];if(y==undefined){throw new Error(\"unsupported prf\")}var r=q[p.encalg];if(r==undefined){throw new Error(\"unsupported encalg\")}var s=CryptoJS.enc.Hex.parse(p.salt);var u=p.iter;try{var v=CryptoJS.PBKDF2(w,s,{keySize:r,iterations:u,hasher:y});return CryptoJS.enc.Hex.stringify(v)}catch(t){throw new Error(\"PBKDF2 error: \"+t+\" \"+JSON.stringify(p)+\" \"+w)}},getPlainHexFromEncryptedPKCS8PEM:function(t,q){if(t.indexOf(\"BEGIN ENCRYPTED PRIVATE KEY\")==-1){throw new Error(\"not Encrypted PKCS#8 PEM string\")}var u=pemtohex(t);var p;try{p=KEYUTIL.parsePBES2(u)}catch(r){throw new Error(\"malformed PBES2 format: \"+r.message)}var s=KEYUTIL.getDKFromPBES2Param(p,q);return KJUR.crypto.Cipher.decrypt(p.enc,s,p.encalg,{iv:p.enciv})},getKeyFromEncryptedPKCS8PEM:function(s,q){var p=this.getPlainHexFromEncryptedPKCS8PEM(s,q);var r=this.getKeyFromPlainPrivatePKCS8Hex(p);return r},parsePlainPrivatePKCS8Hex:function(s){var v=ASN1HEX;var u=v.getChildIdx;var t=v.getV;var q={};q.algparam=null;if(s.substr(0,2)!=\"30\"){throw new Error(\"malformed plain PKCS8 private key(code:001)\")}var r=u(s,0);if(r.length<3){throw new Error(\"malformed plain PKCS8 private key(code:002)\")}if(s.substr(r[1],2)!=\"30\"){throw new Error(\"malformed PKCS8 private key(code:003)\")}var p=u(s,r[1]);if(p.length!=2){throw new Error(\"malformed PKCS8 private key(code:004)\")}if(s.substr(p[0],2)!=\"06\"){throw new Error(\"malformed PKCS8 private key(code:005)\")}q.algoid=t(s,p[0]);if(s.substr(p[1],2)==\"06\"){q.algparam=t(s,p[1])}if(s.substr(r[2],2)!=\"04\"){throw new Error(\"malformed PKCS8 private key(code:006)\")}q.keyidx=v.getVidx(s,r[2]);return q},getKeyFromPlainPrivatePKCS8PEM:function(q){var p=pemtohex(q,\"PRIVATE KEY\");var r=this.getKeyFromPlainPrivatePKCS8Hex(p);return r},getKeyFromPlainPrivatePKCS8Hex:function(p){var q=this.parsePlainPrivatePKCS8Hex(p);var r;if(q.algoid==\"2a864886f70d010101\"){r=new RSAKey()}else{if(q.algoid==\"2a8648ce380401\"){r=new KJUR.crypto.DSA()}else{if(q.algoid==\"2a8648ce3d0201\"){r=new KJUR.crypto.ECDSA()}else{throw new Error(\"unsupported private key algorithm\")}}}r.readPKCS8PrvKeyHex(p);return r},_getKeyFromPublicPKCS8Hex:function(q){var p;var r=ASN1HEX.getVbyList(q,0,[0,0],\"06\");if(r===\"2a864886f70d010101\"){p=new RSAKey()}else{if(r===\"2a8648ce380401\"){p=new KJUR.crypto.DSA()}else{if(r===\"2a8648ce3d0201\"){p=new KJUR.crypto.ECDSA()}else{throw new Error(\"unsupported PKCS#8 public key hex\")}}}p.readPKCS8PubKeyHex(q);return p},parsePublicRawRSAKeyHex:function(r){var u=ASN1HEX;var t=u.getChildIdx;var s=u.getV;var p={};if(r.substr(0,2)!=\"30\"){throw new Error(\"malformed RSA key(code:001)\")}var q=t(r,0);if(q.length!=2){throw new Error(\"malformed RSA key(code:002)\")}if(r.substr(q[0],2)!=\"02\"){throw new Error(\"malformed RSA key(code:003)\")}p.n=s(r,q[0]);if(r.substr(q[1],2)!=\"02\"){throw new Error(\"malformed RSA key(code:004)\")}p.e=s(r,q[1]);return p},parsePublicPKCS8Hex:function(t){var v=ASN1HEX;var u=v.getChildIdx;var s=v.getV;var q={};q.algparam=null;var r=u(t,0);if(r.length!=2){throw new Error(\"outer DERSequence shall have 2 elements: \"+r.length)}var w=r[0];if(t.substr(w,2)!=\"30\"){throw new Error(\"malformed PKCS8 public key(code:001)\")}var p=u(t,w);if(p.length!=2){throw new Error(\"malformed PKCS8 public key(code:002)\")}if(t.substr(p[0],2)!=\"06\"){throw new Error(\"malformed PKCS8 public key(code:003)\")}q.algoid=s(t,p[0]);if(t.substr(p[1],2)==\"06\"){q.algparam=s(t,p[1])}else{if(t.substr(p[1],2)==\"30\"){q.algparam={};q.algparam.p=v.getVbyList(t,p[1],[0],\"02\");q.algparam.q=v.getVbyList(t,p[1],[1],\"02\");q.algparam.g=v.getVbyList(t,p[1],[2],\"02\")}}if(t.substr(r[1],2)!=\"03\"){throw new Error(\"malformed PKCS8 public key(code:004)\")}q.key=s(t,r[1]).substr(2);return q},}}();KEYUTIL.getKey=function(l,k,n){var G=ASN1HEX,L=G.getChildIdx,v=G.getV,d=G.getVbyList,c=KJUR.crypto,i=c.ECDSA,C=c.DSA,w=RSAKey,M=pemtohex,F=KEYUTIL;if(typeof w!=\"undefined\"&&l instanceof w){return l}if(typeof i!=\"undefined\"&&l instanceof i){return l}if(typeof C!=\"undefined\"&&l instanceof C){return l}if(l.curve!==undefined&&l.xy!==undefined&&l.d===undefined){return new i({pub:l.xy,curve:l.curve})}if(l.curve!==undefined&&l.d!==undefined){return new i({prv:l.d,curve:l.curve})}if(l.kty===undefined&&l.n!==undefined&&l.e!==undefined&&l.d===undefined){var P=new w();P.setPublic(l.n,l.e);return P}if(l.kty===undefined&&l.n!==undefined&&l.e!==undefined&&l.d!==undefined&&l.p!==undefined&&l.q!==undefined&&l.dp!==undefined&&l.dq!==undefined&&l.co!==undefined&&l.qi===undefined){var P=new w();P.setPrivateEx(l.n,l.e,l.d,l.p,l.q,l.dp,l.dq,l.co);return P}if(l.kty===undefined&&l.n!==undefined&&l.e!==undefined&&l.d!==undefined&&l.p===undefined){var P=new w();P.setPrivate(l.n,l.e,l.d);return P}if(l.p!==undefined&&l.q!==undefined&&l.g!==undefined&&l.y!==undefined&&l.x===undefined){var P=new C();P.setPublic(l.p,l.q,l.g,l.y);return P}if(l.p!==undefined&&l.q!==undefined&&l.g!==undefined&&l.y!==undefined&&l.x!==undefined){var P=new C();P.setPrivate(l.p,l.q,l.g,l.y,l.x);return P}if(l.kty===\"RSA\"&&l.n!==undefined&&l.e!==undefined&&l.d===undefined){var P=new w();P.setPublic(b64utohex(l.n),b64utohex(l.e));return P}if(l.kty===\"RSA\"&&l.n!==undefined&&l.e!==undefined&&l.d!==undefined&&l.p!==undefined&&l.q!==undefined&&l.dp!==undefined&&l.dq!==undefined&&l.qi!==undefined){var P=new w();P.setPrivateEx(b64utohex(l.n),b64utohex(l.e),b64utohex(l.d),b64utohex(l.p),b64utohex(l.q),b64utohex(l.dp),b64utohex(l.dq),b64utohex(l.qi));return P}if(l.kty===\"RSA\"&&l.n!==undefined&&l.e!==undefined&&l.d!==undefined){var P=new w();P.setPrivate(b64utohex(l.n),b64utohex(l.e),b64utohex(l.d));return P}if(l.kty===\"EC\"&&l.crv!==undefined&&l.x!==undefined&&l.y!==undefined&&l.d===undefined){var j=new i({curve:l.crv});var t=j.ecparams.keycharlen;var B=(\"0000000000\"+b64utohex(l.x)).slice(-t);var z=(\"0000000000\"+b64utohex(l.y)).slice(-t);var u=\"04\"+B+z;j.setPublicKeyHex(u);return j}if(l.kty===\"EC\"&&l.crv!==undefined&&l.x!==undefined&&l.y!==undefined&&l.d!==undefined){var j=new i({curve:l.crv});var t=j.ecparams.keycharlen;var B=(\"0000000000\"+b64utohex(l.x)).slice(-t);var z=(\"0000000000\"+b64utohex(l.y)).slice(-t);var u=\"04\"+B+z;var b=(\"0000000000\"+b64utohex(l.d)).slice(-t);j.setPublicKeyHex(u);j.setPrivateKeyHex(b);return j}if(n===\"pkcs5prv\"){var J=l,G=ASN1HEX,N,P;N=L(J,0);if(N.length===9){P=new w();P.readPKCS5PrvKeyHex(J)}else{if(N.length===6){P=new C();P.readPKCS5PrvKeyHex(J)}else{if(N.length>2&&J.substr(N[1],2)===\"04\"){P=new i();P.readPKCS5PrvKeyHex(J)}else{throw new Error(\"unsupported PKCS#1/5 hexadecimal key\")}}}return P}if(n===\"pkcs8prv\"){var P=F.getKeyFromPlainPrivatePKCS8Hex(l);return P}if(n===\"pkcs8pub\"){return F._getKeyFromPublicPKCS8Hex(l)}if(n===\"x509pub\"){return X509.getPublicKeyFromCertHex(l)}if(l.indexOf(\"-END CERTIFICATE-\",0)!=-1||l.indexOf(\"-END X509 CERTIFICATE-\",0)!=-1||l.indexOf(\"-END TRUSTED CERTIFICATE-\",0)!=-1){return X509.getPublicKeyFromCertPEM(l)}if(l.indexOf(\"-END PUBLIC KEY-\")!=-1){var O=pemtohex(l,\"PUBLIC KEY\");return F._getKeyFromPublicPKCS8Hex(O)}if(l.indexOf(\"-END RSA PRIVATE KEY-\")!=-1&&l.indexOf(\"4,ENCRYPTED\")==-1){var m=M(l,\"RSA PRIVATE KEY\");return F.getKey(m,null,\"pkcs5prv\")}if(l.indexOf(\"-END DSA PRIVATE KEY-\")!=-1&&l.indexOf(\"4,ENCRYPTED\")==-1){var I=M(l,\"DSA PRIVATE KEY\");var E=d(I,0,[1],\"02\");var D=d(I,0,[2],\"02\");var K=d(I,0,[3],\"02\");var r=d(I,0,[4],\"02\");var s=d(I,0,[5],\"02\");var P=new C();P.setPrivate(new BigInteger(E,16),new BigInteger(D,16),new BigInteger(K,16),new BigInteger(r,16),new BigInteger(s,16));return P}if(l.indexOf(\"-END EC PRIVATE KEY-\")!=-1&&l.indexOf(\"4,ENCRYPTED\")==-1){var m=M(l,\"EC PRIVATE KEY\");return F.getKey(m,null,\"pkcs5prv\")}if(l.indexOf(\"-END PRIVATE KEY-\")!=-1){return F.getKeyFromPlainPrivatePKCS8PEM(l)}if(l.indexOf(\"-END RSA PRIVATE KEY-\")!=-1&&l.indexOf(\"4,ENCRYPTED\")!=-1){var o=F.getDecryptedKeyHex(l,k);var H=new RSAKey();H.readPKCS5PrvKeyHex(o);return H}if(l.indexOf(\"-END EC PRIVATE KEY-\")!=-1&&l.indexOf(\"4,ENCRYPTED\")!=-1){var I=F.getDecryptedKeyHex(l,k);var P=d(I,0,[1],\"04\");var f=d(I,0,[2,0],\"06\");var A=d(I,0,[3,0],\"03\").substr(2);var e=\"\";if(KJUR.crypto.OID.oidhex2name[f]!==undefined){e=KJUR.crypto.OID.oidhex2name[f]}else{throw new Error(\"undefined OID(hex) in KJUR.crypto.OID: \"+f)}var j=new i({curve:e});j.setPublicKeyHex(A);j.setPrivateKeyHex(P);j.isPublic=false;return j}if(l.indexOf(\"-END DSA PRIVATE KEY-\")!=-1&&l.indexOf(\"4,ENCRYPTED\")!=-1){var I=F.getDecryptedKeyHex(l,k);var E=d(I,0,[1],\"02\");var D=d(I,0,[2],\"02\");var K=d(I,0,[3],\"02\");var r=d(I,0,[4],\"02\");var s=d(I,0,[5],\"02\");var P=new C();P.setPrivate(new BigInteger(E,16),new BigInteger(D,16),new BigInteger(K,16),new BigInteger(r,16),new BigInteger(s,16));return P}if(l.indexOf(\"-END ENCRYPTED PRIVATE KEY-\")!=-1){return F.getKeyFromEncryptedPKCS8PEM(l,k)}throw new Error(\"not supported argument\")};KEYUTIL.generateKeypair=function(a,c){if(a==\"RSA\"){var b=c;var h=new RSAKey();h.generate(b,\"10001\");h.isPrivate=true;h.isPublic=true;var f=new RSAKey();var e=h.n.toString(16);var i=h.e.toString(16);f.setPublic(e,i);f.isPrivate=false;f.isPublic=true;var k={};k.prvKeyObj=h;k.pubKeyObj=f;return k}else{if(a==\"EC\"){var d=c;var g=new KJUR.crypto.ECDSA({curve:d});var j=g.generateKeyPairHex();var h=new KJUR.crypto.ECDSA({curve:d});h.setPublicKeyHex(j.ecpubhex);h.setPrivateKeyHex(j.ecprvhex);h.isPrivate=true;h.isPublic=false;var f=new KJUR.crypto.ECDSA({curve:d});f.setPublicKeyHex(j.ecpubhex);f.isPrivate=false;f.isPublic=true;var k={};k.prvKeyObj=h;k.pubKeyObj=f;return k}else{throw new Error(\"unknown algorithm: \"+a)}}};KEYUTIL.getPEM=function(b,C,x,m,p,j){var E=KJUR,k=E.asn1,y=k.DERObjectIdentifier,e=k.DERInteger,l=k.ASN1Util.newObject,a=k.x509,B=a.SubjectPublicKeyInfo,d=E.crypto,t=d.DSA,q=d.ECDSA,n=RSAKey;function z(s){var G=l({seq:[{\"int\":0},{\"int\":{bigint:s.n}},{\"int\":s.e},{\"int\":{bigint:s.d}},{\"int\":{bigint:s.p}},{\"int\":{bigint:s.q}},{\"int\":{bigint:s.dmp1}},{\"int\":{bigint:s.dmq1}},{\"int\":{bigint:s.coeff}}]});return G}function A(G){var s=l({seq:[{\"int\":1},{octstr:{hex:G.prvKeyHex}},{tag:[\"a0\",true,{oid:{name:G.curveName}}]},{tag:[\"a1\",true,{bitstr:{hex:\"00\"+G.pubKeyHex}}]}]});return s}function w(s){var G=l({seq:[{\"int\":0},{\"int\":{bigint:s.p}},{\"int\":{bigint:s.q}},{\"int\":{bigint:s.g}},{\"int\":{bigint:s.y}},{\"int\":{bigint:s.x}}]});return G}if(((n!==undefined&&b instanceof n)||(t!==undefined&&b instanceof t)||(q!==undefined&&b instanceof q))&&b.isPublic==true&&(C===undefined||C==\"PKCS8PUB\")){var D=new B(b);var v=D.tohex();return hextopem(v,\"PUBLIC KEY\")}if(C==\"PKCS1PRV\"&&n!==undefined&&b instanceof n&&(x===undefined||x==null)&&b.isPrivate==true){var D=z(b);var v=D.tohex();return hextopem(v,\"RSA PRIVATE KEY\")}if(C==\"PKCS1PRV\"&&q!==undefined&&b instanceof q&&(x===undefined||x==null)&&b.isPrivate==true){var i=new y({name:b.curveName});var u=i.tohex();var h=A(b);var r=h.tohex();var o=\"\";o+=hextopem(u,\"EC PARAMETERS\");o+=hextopem(r,\"EC PRIVATE KEY\");return o}if(C==\"PKCS1PRV\"&&t!==undefined&&b instanceof t&&(x===undefined||x==null)&&b.isPrivate==true){var D=w(b);var v=D.tohex();return hextopem(v,\"DSA PRIVATE KEY\")}if(C==\"PKCS5PRV\"&&n!==undefined&&b instanceof n&&(x!==undefined&&x!=null)&&b.isPrivate==true){var D=z(b);var v=D.tohex();if(m===undefined){m=\"DES-EDE3-CBC\"}return this.getEncryptedPKCS5PEMFromPrvKeyHex(\"RSA\",v,x,m,j)}if(C==\"PKCS5PRV\"&&q!==undefined&&b instanceof q&&(x!==undefined&&x!=null)&&b.isPrivate==true){var D=A(b);var v=D.tohex();if(m===undefined){m=\"DES-EDE3-CBC\"}return this.getEncryptedPKCS5PEMFromPrvKeyHex(\"EC\",v,x,m,j)}if(C==\"PKCS5PRV\"&&t!==undefined&&b instanceof t&&(x!==undefined&&x!=null)&&b.isPrivate==true){var D=w(b);var v=D.tohex();if(m===undefined){m=\"DES-EDE3-CBC\"}return this.getEncryptedPKCS5PEMFromPrvKeyHex(\"DSA\",v,x,m,j)}var f=function(G,H){if(typeof H==\"string\"){return KEYUTIL.getEncryptedPKCS8PEM(G,H)}else{if(typeof H==\"object\"&&aryval(H,\"passcode\")!=undefined){var I=JSON.parse(JSON.stringify(H));var s=I.passcode;delete I.passcode;return KEYUTIL.getEncryptedPKCS8PEM(G,s,I)}}};if(C==\"PKCS8PRV\"&&n!=undefined&&b instanceof n&&b.isPrivate==true){var g=z(b);var c=g.tohex();var D=l({seq:[{\"int\":0},{seq:[{oid:{name:\"rsaEncryption\"}},{\"null\":true}]},{octstr:{hex:c}}]});var v=D.tohex();if(x===undefined||x==null){return hextopem(v,\"PRIVATE KEY\")}else{return f(v,x)}}if(C==\"PKCS8PRV\"&&q!==undefined&&b instanceof q&&b.isPrivate==true){var F={seq:[{\"int\":1},{octstr:{hex:b.prvKeyHex}}]};if(typeof b.pubKeyHex==\"string\"){F.seq.push({tag:[\"a1\",true,{bitstr:{hex:\"00\"+b.pubKeyHex}}]})}var g=new l(F);var c=g.tohex();var D=l({seq:[{\"int\":0},{seq:[{oid:{name:\"ecPublicKey\"}},{oid:{name:b.curveName}}]},{octstr:{hex:c}}]});var v=D.tohex();if(x===undefined||x==null){return hextopem(v,\"PRIVATE KEY\")}else{return f(v,x)}}if(C==\"PKCS8PRV\"&&t!==undefined&&b instanceof t&&b.isPrivate==true){var g=new e({bigint:b.x});var c=g.tohex();var D=l({seq:[{\"int\":0},{seq:[{oid:{name:\"dsa\"}},{seq:[{\"int\":{bigint:b.p}},{\"int\":{bigint:b.q}},{\"int\":{bigint:b.g}}]}]},{octstr:{hex:c}}]});var v=D.tohex();if(x===undefined||x==null){return hextopem(v,\"PRIVATE KEY\")}else{return f(v,x)}}throw new Error(\"unsupported object nor format\")};KEYUTIL.getKeyFromCSRPEM=function(b){var a=pemtohex(b,\"CERTIFICATE REQUEST\");var c=KEYUTIL.getKeyFromCSRHex(a);return c};KEYUTIL.getKeyFromCSRHex=function(a){var c=KEYUTIL.parseCSRHex(a);var b=KEYUTIL.getKey(c.p8pubkeyhex,null,\"pkcs8pub\");return b};KEYUTIL.parseCSRHex=function(d){var i=ASN1HEX;var f=i.getChildIdx;var c=i.getTLV;var b={};var g=d;if(g.substr(0,2)!=\"30\"){throw new Error(\"malformed CSR(code:001)\")}var e=f(g,0);if(e.length<1){throw new Error(\"malformed CSR(code:002)\")}if(g.substr(e[0],2)!=\"30\"){throw new Error(\"malformed CSR(code:003)\")}var a=f(g,e[0]);if(a.length<3){throw new Error(\"malformed CSR(code:004)\")}b.p8pubkeyhex=c(g,a[2]);return b};KEYUTIL.getKeyID=function(f){var c=KEYUTIL;var e=ASN1HEX;if(typeof f===\"string\"&&f.indexOf(\"BEGIN \")!=-1){f=c.getKey(f)}var d=pemtohex(c.getPEM(f));var b=e.getIdxbyList(d,0,[1]);var a=e.getV(d,b).substring(2);return KJUR.crypto.Util.hashHex(a,\"sha1\")};KEYUTIL.getJWK=function(d,h,g,b,f){var i;var k={};var e;var c=KJUR.crypto.Util.hashHex;if(typeof d==\"string\"){i=KEYUTIL.getKey(d);if(d.indexOf(\"CERTIFICATE\")!=-1){e=pemtohex(d)}}else{if(typeof d==\"object\"){if(d instanceof X509){i=d.getPublicKey();e=d.hex}else{i=d}}else{throw new Error(\"unsupported keyinfo type\")}}if(i instanceof RSAKey&&i.isPrivate){k.kty=\"RSA\";k.n=hextob64u(i.n.toString(16));k.e=hextob64u(i.e.toString(16));k.d=hextob64u(i.d.toString(16));k.p=hextob64u(i.p.toString(16));k.q=hextob64u(i.q.toString(16));k.dp=hextob64u(i.dmp1.toString(16));k.dq=hextob64u(i.dmq1.toString(16));k.qi=hextob64u(i.coeff.toString(16))}else{if(i instanceof RSAKey&&i.isPublic){k.kty=\"RSA\";k.n=hextob64u(i.n.toString(16));k.e=hextob64u(i.e.toString(16))}else{if(i instanceof KJUR.crypto.ECDSA&&i.isPrivate){var a=i.getShortNISTPCurveName();if(a!==\"P-256\"&&a!==\"P-384\"&&a!==\"P-521\"){throw new Error(\"unsupported curve name for JWT: \"+a)}var j=i.getPublicKeyXYHex();k.kty=\"EC\";k.crv=a;k.x=hextob64u(j.x);k.y=hextob64u(j.y);k.d=hextob64u(i.prvKeyHex)}else{if(i instanceof KJUR.crypto.ECDSA&&i.isPublic){var a=i.getShortNISTPCurveName();if(a!==\"P-256\"&&a!==\"P-384\"&&a!==\"P-521\"){throw new Error(\"unsupported curve name for JWT: \"+a)}var j=i.getPublicKeyXYHex();k.kty=\"EC\";k.crv=a;k.x=hextob64u(j.x);k.y=hextob64u(j.y)}}}}if(k.kty==undefined){throw new Error(\"unsupported keyinfo\")}if((!i.isPrivate)&&h!=true){k.kid=KJUR.jws.JWS.getJWKthumbprint(k)}if(e!=undefined&&g!=true){k.x5c=[hex2b64(e)]}if(e!=undefined&&b!=true){k.x5t=b64tob64u(hex2b64(c(e,\"sha1\")))}if(e!=undefined&&f!=true){k[\"x5t#S256\"]=b64tob64u(hex2b64(c(e,\"sha256\")))}return k};KEYUTIL.getJWKFromKey=function(a){return KEYUTIL.getJWK(a,true,true,true,true)};\nRSAKey.getPosArrayOfChildrenFromHex=function(a){return ASN1HEX.getChildIdx(a,0)};RSAKey.getHexValueArrayOfChildrenFromHex=function(f){var n=ASN1HEX;var i=n.getV;var k=RSAKey.getPosArrayOfChildrenFromHex(f);var e=i(f,k[0]);var j=i(f,k[1]);var b=i(f,k[2]);var c=i(f,k[3]);var h=i(f,k[4]);var g=i(f,k[5]);var m=i(f,k[6]);var l=i(f,k[7]);var d=i(f,k[8]);var k=new Array();k.push(e,j,b,c,h,g,m,l,d);return k};RSAKey.prototype.readPrivateKeyFromPEMString=function(d){var c=pemtohex(d);var b=RSAKey.getHexValueArrayOfChildrenFromHex(c);this.setPrivateEx(b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8])};RSAKey.prototype.readPKCS5PrvKeyHex=function(c){var b=RSAKey.getHexValueArrayOfChildrenFromHex(c);this.setPrivateEx(b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8])};RSAKey.prototype.readPKCS8PrvKeyHex=function(e){var c,i,k,b,a,f,d,j;var m=ASN1HEX;var l=m.getVbyListEx;if(m.isASN1HEX(e)===false){throw new Error(\"not ASN.1 hex string\")}try{c=l(e,0,[2,0,1],\"02\");i=l(e,0,[2,0,2],\"02\");k=l(e,0,[2,0,3],\"02\");b=l(e,0,[2,0,4],\"02\");a=l(e,0,[2,0,5],\"02\");f=l(e,0,[2,0,6],\"02\");d=l(e,0,[2,0,7],\"02\");j=l(e,0,[2,0,8],\"02\")}catch(g){throw new Error(\"malformed PKCS#8 plain RSA private key\")}this.setPrivateEx(c,i,k,b,a,f,d,j)};RSAKey.prototype.readPKCS5PubKeyHex=function(c){var e=ASN1HEX;var b=e.getV;if(e.isASN1HEX(c)===false){throw new Error(\"keyHex is not ASN.1 hex string\")}var a=e.getChildIdx(c,0);if(a.length!==2||c.substr(a[0],2)!==\"02\"||c.substr(a[1],2)!==\"02\"){throw new Error(\"wrong hex for PKCS#5 public key\")}var f=b(c,a[0]);var d=b(c,a[1]);this.setPublic(f,d)};RSAKey.prototype.readPKCS8PubKeyHex=function(b){var c=ASN1HEX;if(c.isASN1HEX(b)===false){throw new Error(\"not ASN.1 hex string\")}if(c.getTLVbyListEx(b,0,[0,0])!==\"06092a864886f70d010101\"){throw new Error(\"not PKCS8 RSA public key\")}var a=c.getTLVbyListEx(b,0,[1,0]);this.readPKCS5PubKeyHex(a)};RSAKey.prototype.readCertPubKeyHex=function(b,d){var a,c;a=new X509();a.readCertHex(b);c=a.getPublicKeyHex();this.readPKCS8PubKeyHex(c)};\nvar _RE_HEXDECONLY=new RegExp(\"[^0-9a-f]\",\"gi\");function _rsasign_getHexPaddedDigestInfoForString(d,e,a){var b=function(f){return KJUR.crypto.Util.hashString(f,a)};var c=b(d);return KJUR.crypto.Util.getPaddedDigestInfoHex(c,a,e)}function _zeroPaddingOfSignature(e,d){var c=\"\";var a=d/4-e.length;for(var b=0;b<a;b++){c=c+\"0\"}return c+e}RSAKey.prototype.sign=function(d,a){var b=function(e){return KJUR.crypto.Util.hashString(e,a)};var c=b(d);return this.signWithMessageHash(c,a)};RSAKey.prototype.signWithMessageHash=function(e,c){var f=KJUR.crypto.Util.getPaddedDigestInfoHex(e,c,this.n.bitLength());var b=parseBigInt(f,16);var d=this.doPrivate(b);var a=d.toString(16);return _zeroPaddingOfSignature(a,this.n.bitLength())};function pss_mgf1_str(c,a,e){var b=\"\",d=0;while(b.length<a){b+=hextorstr(e(rstrtohex(c+String.fromCharCode.apply(String,[(d&4278190080)>>24,(d&16711680)>>16,(d&65280)>>8,d&255]))));d+=1}return b}RSAKey.prototype.signPSS=function(e,a,d){var c=function(f){return KJUR.crypto.Util.hashHex(f,a)};var b=c(rstrtohex(e));if(d===undefined){d=-1}return this.signWithMessageHashPSS(b,a,d)};RSAKey.prototype.signWithMessageHashPSS=function(l,a,k){var b=hextorstr(l);var g=b.length;var m=this.n.bitLength()-1;var c=Math.ceil(m/8);var d;var o=function(i){return KJUR.crypto.Util.hashHex(i,a)};if(k===-1||k===undefined){k=g}else{if(k===-2){k=c-g-2}else{if(k<-2){throw new Error(\"invalid salt length\")}}}if(c<(g+k+2)){throw new Error(\"data too long\")}var f=\"\";if(k>0){f=new Array(k);new SecureRandom().nextBytes(f);f=String.fromCharCode.apply(String,f)}var n=hextorstr(o(rstrtohex(\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"+b+f)));var j=[];for(d=0;d<c-k-g-2;d+=1){j[d]=0}var e=String.fromCharCode.apply(String,j)+\"\\x01\"+f;var h=pss_mgf1_str(n,e.length,o);var q=[];for(d=0;d<e.length;d+=1){q[d]=e.charCodeAt(d)^h.charCodeAt(d)}var p=(65280>>(8*c-m))&255;q[0]&=~p;for(d=0;d<g;d++){q.push(n.charCodeAt(d))}q.push(188);return _zeroPaddingOfSignature(this.doPrivate(new BigInteger(q)).toString(16),this.n.bitLength())};function _rsasign_getDecryptSignatureBI(a,d,c){var b=new RSAKey();b.setPublic(d,c);var e=b.doPublic(a);return e}function _rsasign_getHexDigestInfoFromSig(a,c,b){var e=_rsasign_getDecryptSignatureBI(a,c,b);var d=e.toString(16).replace(/^1f+00/,\"\");return d}function _rsasign_getAlgNameAndHashFromHexDisgestInfo(f){for(var e in KJUR.crypto.Util.DIGESTINFOHEAD){var d=KJUR.crypto.Util.DIGESTINFOHEAD[e];var b=d.length;if(f.substring(0,b)==d){var c=[e,f.substring(b)];return c}}return[]}RSAKey.prototype.verify=function(f,l){l=l.toLowerCase();if(l.match(/^[0-9a-f]+$/)==null){return false}var b=parseBigInt(l,16);var k=this.n.bitLength();if(b.bitLength()>k){return false}var j=this.doPublic(b);var i=j.toString(16);if(i.length+3!=k/4){return false}var e=i.replace(/^1f+00/,\"\");var g=_rsasign_getAlgNameAndHashFromHexDisgestInfo(e);if(g.length==0){return false}var d=g[0];var h=g[1];var a=function(m){return KJUR.crypto.Util.hashString(m,d)};var c=a(f);return(h==c)};RSAKey.prototype.verifyWithMessageHash=function(e,a){if(a.length!=Math.ceil(this.n.bitLength()/4)){return false}var b=parseBigInt(a,16);if(b.bitLength()>this.n.bitLength()){return 0}var h=this.doPublic(b);var g=h.toString(16).replace(/^1f+00/,\"\");var c=_rsasign_getAlgNameAndHashFromHexDisgestInfo(g);if(c.length==0){return false}var d=c[0];var f=c[1];return(f==e)};RSAKey.prototype.verifyPSS=function(c,b,a,f){var e=function(g){return KJUR.crypto.Util.hashHex(g,a)};var d=e(rstrtohex(c));if(f===undefined){f=-1}return this.verifyWithMessageHashPSS(d,b,a,f)};RSAKey.prototype.verifyWithMessageHashPSS=function(f,s,l,c){if(s.length!=Math.ceil(this.n.bitLength()/4)){return false}var k=new BigInteger(s,16);var r=function(i){return KJUR.crypto.Util.hashHex(i,l)};var j=hextorstr(f);var h=j.length;var g=this.n.bitLength()-1;var m=Math.ceil(g/8);var q;if(c===-1||c===undefined){c=h}else{if(c===-2){c=m-h-2}else{if(c<-2){throw new Error(\"invalid salt length\")}}}if(m<(h+c+2)){throw new Error(\"data too long\")}var a=this.doPublic(k).toByteArray();for(q=0;q<a.length;q+=1){a[q]&=255}while(a.length<m){a.unshift(0)}if(a[m-1]!==188){throw new Error(\"encoded message does not end in 0xbc\")}a=String.fromCharCode.apply(String,a);var d=a.substr(0,m-h-1);var e=a.substr(d.length,h);var p=(65280>>(8*m-g))&255;if((d.charCodeAt(0)&p)!==0){throw new Error(\"bits beyond keysize not zero\")}var n=pss_mgf1_str(e,d.length,r);var o=[];for(q=0;q<d.length;q+=1){o[q]=d.charCodeAt(q)^n.charCodeAt(q)}o[0]&=~p;var b=m-h-c-2;for(q=0;q<b;q+=1){if(o[q]!==0){throw new Error(\"leftmost octets not zero\")}}if(o[b]!==1){throw new Error(\"0x01 marker not found\")}return e===hextorstr(r(rstrtohex(\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"+j+String.fromCharCode.apply(String,o.slice(-c)))))};RSAKey.SALT_LEN_HLEN=-1;RSAKey.SALT_LEN_MAX=-2;RSAKey.SALT_LEN_RECOVER=-2;\nfunction X509(v){var o=ASN1HEX,s=o.getChildIdx,k=o.getV,y=o.dump,j=o.parse,b=o.getTLV,c=o.getVbyList,p=o.getVbyListEx,a=o.getTLVbyList,q=o.getTLVbyListEx,l=o.getIdxbyList,f=o.getIdxbyListEx,n=o.getVidx,x=o.getInt,u=o.oidname,r=o.hextooidstr,d=X509,w=pemtohex,g,m=Error;try{g=KJUR.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={\"0c\":\"utf8\",\"13\":\"prn\",\"16\":\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"};this.hex=null;this.version=0;this.foffset=0;this.aExtInfo=null;this.getVersion=function(){if(this.hex===null||this.version!==0){return this.version}var A=a(this.hex,0,[0,0]);if(A.substr(0,2)==\"a0\"){var B=a(A,0,[0]);var z=x(B,0);if(z<0||2<z){throw new Error(\"malformed version field\")}this.version=z+1;return this.version}else{this.version=1;this.foffset=-1;return 1}};this.getSerialNumberHex=function(){return p(this.hex,0,[0,0],\"02\")};this.getSignatureAlgorithmField=function(){var z=q(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(z)};this.getAlgorithmIdentifierName=function(z){for(var A in g){if(z===g[A]){return A}}return u(p(z,0,[0],\"06\"))};this.getIssuer=function(A,z){return this.getX500Name(this.getIssuerHex(),A,z)};this.getIssuerHex=function(){return a(this.hex,0,[0,3+this.foffset],\"30\")};this.getIssuerString=function(){var z=this.getIssuer();return z.str};this.getSubject=function(A,z){return this.getX500Name(this.getSubjectHex(),A,z)};this.getSubjectHex=function(){return a(this.hex,0,[0,5+this.foffset],\"30\")};this.getSubjectString=function(){var z=this.getSubject();return z.str};this.getNotBefore=function(){var z=c(this.hex,0,[0,4+this.foffset,0]);z=z.replace(/(..)/g,\"%$1\");z=decodeURIComponent(z);return z};this.getNotAfter=function(){var z=c(this.hex,0,[0,4+this.foffset,1]);z=z.replace(/(..)/g,\"%$1\");z=decodeURIComponent(z);return z};this.getPublicKeyHex=function(){return this.getSPKI()};this.getSPKI=function(){return a(this.hex,0,[0,6+this.foffset],\"30\")};this.getSPKIValue=function(){var z=this.getSPKI();if(z==null){return null}return c(z,0,[1],\"03\",true)};this.getPublicKeyIdx=function(){return l(this.hex,0,[0,6+this.foffset],\"30\")};this.getPublicKeyContentIdx=function(){var z=this.getPublicKeyIdx();return l(this.hex,z,[1,0],\"30\")};this.getPublicKey=function(){return KEYUTIL.getKey(this.getPublicKeyHex(),null,\"pkcs8pub\")};this.getSignatureAlgorithmName=function(){var z=a(this.hex,0,[1],\"30\");return this.getAlgorithmIdentifierName(z)};this.getSignatureValueHex=function(){return c(this.hex,0,[2],\"03\",true)};this.verifySignature=function(B){var C=this.getSignatureAlgorithmField();var z=this.getSignatureValueHex();var A=a(this.hex,0,[0],\"30\");var D=new KJUR.crypto.Signature({alg:C});D.init(B);D.updateHex(A);return D.verify(z)};this.parseExt=function(I){var B,z,D;if(I===undefined){D=this.hex;if(this.version!==3){return -1}B=l(D,0,[0,7,0],\"30\");z=s(D,B)}else{D=pemtohex(I);var E=l(D,0,[0,3,0,0],\"06\");if(k(D,E)!=\"2a864886f70d01090e\"){this.aExtInfo=new Array();return}B=l(D,0,[0,3,0,1,0],\"30\");z=s(D,B);this.hex=D}this.aExtInfo=new Array();for(var C=0;C<z.length;C++){var G={};G.critical=false;var F=s(D,z[C]);var A=0;if(F.length===3){G.critical=true;A=1}G.oid=o.hextooidstr(c(D,z[C],[0],\"06\"));var H=l(D,z[C],[1+A]);G.vidx=n(D,H);this.aExtInfo.push(G)}};this.getExtInfo=function(B){var z=this.aExtInfo;var C=B;if(!B.match(/^[0-9.]+$/)){C=KJUR.asn1.x509.OID.name2oid(B)}if(C===\"\"){return undefined}for(var A=0;A<z.length;A++){if(z[A].oid===C){return z[A]}}return undefined};this.getCriticalExtV=function(C,z,B){if(z!=undefined){return[z,B]}var A=this.getExtInfo(C);if(A==undefined){return[null,null]}return[b(this.hex,A.vidx),A.critical]};this.getExtBasicConstraints=function(A,E){if(A===undefined&&E===undefined){var C=this.getExtInfo(\"basicConstraints\");if(C===undefined){return undefined}A=b(this.hex,C.vidx);E=C.critical}var z={extname:\"basicConstraints\"};if(E){z.critical=true}if(A===\"3000\"){return z}if(A===\"30030101ff\"){z.cA=true;return z}if(A.substr(0,12)===\"30060101ff02\"){var D=k(A,10);var B=parseInt(D,16);z.cA=true;z.pathLen=B;return z}throw new Error(\"hExtV parse error: \"+A)};this.getExtNameConstraints=function(I,G){var A=this.getCriticalExtV(\"nameConstraints\",I,G);I=A[0];G=A[1];if(I==null){return undefined}var K={extname:\"nameConstraints\"};if(G){K.critical=true}var F=s(I,0);for(var D=0;D<F.length;D++){var E=[];var B=s(I,F[D]);for(var C=0;C<B.length;C++){var H=b(I,B[C]);var z=this.getGeneralSubtree(H);E.push(z)}var J=I.substr(F[D],2);if(J==\"a0\"){K.permit=E}else{if(J==\"a1\"){K.exclude=E}}}return K};this.getGeneralSubtree=function(F){var D=s(F,0);var C=D.length;if(C<1||2<C){throw new Error(\"wrong num elements\")}var B=this.getGeneralName(b(F,D[0]));for(var E=1;E<C;E++){var A=F.substr(D[E],2);var z=k(F,D[E]);var G=parseInt(z,16);if(A==\"80\"){B.min=G}if(A==\"81\"){B.max=G}}return B};this.getExtKeyUsage=function(A,C){var B=this.getCriticalExtV(\"keyUsage\",A,C);A=B[0];C=B[1];if(A==null){return undefined}var z={extname:\"keyUsage\"};if(C){z.critical=true}z.names=this.getExtKeyUsageString(A).split(\",\");return z};this.getExtKeyUsageBin=function(A){if(A===undefined){var B=this.getExtInfo(\"keyUsage\");if(B===undefined){return\"\"}A=b(this.hex,B.vidx)}if(A.length!=8&&A.length!=10){throw new Error(\"malformed key usage value: \"+A)}var z=\"000000000000000\"+parseInt(A.substr(6),16).toString(2);if(A.length==8){z=z.slice(-8)}if(A.length==10){z=z.slice(-16)}z=z.replace(/0+$/,\"\");if(z==\"\"){z=\"0\"}return z};this.getExtKeyUsageString=function(B){var C=this.getExtKeyUsageBin(B);var z=new Array();for(var A=0;A<C.length;A++){if(C.substr(A,1)==\"1\"){z.push(X509.KEYUSAGE_NAME[A])}}return z.join(\",\")};this.getExtSubjectKeyIdentifier=function(B,D){if(B===undefined&&D===undefined){var C=this.getExtInfo(\"subjectKeyIdentifier\");if(C===undefined){return undefined}B=b(this.hex,C.vidx);D=C.critical}var z={extname:\"subjectKeyIdentifier\"};if(D){z.critical=true}var A=k(B,0);z.kid={hex:A};return z};this.getExtAuthorityKeyIdentifier=function(F,D){if(F===undefined&&D===undefined){var z=this.getExtInfo(\"authorityKeyIdentifier\");if(z===undefined){return undefined}F=b(this.hex,z.vidx);D=z.critical}var G={extname:\"authorityKeyIdentifier\"};if(D){G.critical=true}var E=s(F,0);for(var A=0;A<E.length;A++){var H=F.substr(E[A],2);if(H===\"80\"){G.kid={hex:k(F,E[A])}}if(H===\"a1\"){var C=b(F,E[A]);var B=this.getGeneralNames(C);G.issuer=B[0][\"dn\"]}if(H===\"82\"){G.sn={hex:k(F,E[A])}}}return G};this.getExtExtKeyUsage=function(C,E){if(C===undefined&&E===undefined){var D=this.getExtInfo(\"extKeyUsage\");if(D===undefined){return undefined}C=b(this.hex,D.vidx);E=D.critical}var z={extname:\"extKeyUsage\",array:[]};if(E){z.critical=true}var A=s(C,0);for(var B=0;B<A.length;B++){z.array.push(u(k(C,A[B])))}return z};this.getExtExtKeyUsageName=function(){var D=this.getExtInfo(\"extKeyUsage\");if(D===undefined){return D}var z=new Array();var C=b(this.hex,D.vidx);if(C===\"\"){return z}var A=s(C,0);for(var B=0;B<A.length;B++){z.push(u(k(C,A[B])))}return z};this.getExtSubjectAltName=function(A,C){if(A===undefined&&C===undefined){var B=this.getExtInfo(\"subjectAltName\");if(B===undefined){return undefined}A=b(this.hex,B.vidx);C=B.critical}var z={extname:\"subjectAltName\",array:[]};if(C){z.critical=true}z.array=this.getGeneralNames(A);return z};this.getExtIssuerAltName=function(A,C){if(A===undefined&&C===undefined){var B=this.getExtInfo(\"issuerAltName\");if(B===undefined){return undefined}A=b(this.hex,B.vidx);C=B.critical}var z={extname:\"issuerAltName\",array:[]};if(C){z.critical=true}z.array=this.getGeneralNames(A);return z};this.getGeneralNames=function(D){var B=s(D,0);var z=[];for(var C=0;C<B.length;C++){var A=this.getGeneralName(b(D,B[C]));if(A!==undefined){z.push(A)}}return z};this.getGeneralName=function(A){var z=A.substr(0,2);var C=k(A,0);var B=hextorstr(C);if(z==\"81\"){return{rfc822:B}}if(z==\"82\"){return{dns:B}}if(z==\"86\"){return{uri:B}}if(z==\"87\"){return{ip:hextoip(C)}}if(z==\"a4\"){return{dn:this.getX500Name(C)}}if(z==\"a0\"){return{other:this.getOtherName(A)}}return undefined};this.getExtSubjectAltName2=function(){var D,G,F;var E=this.getExtInfo(\"subjectAltName\");if(E===undefined){return E}var z=new Array();var C=b(this.hex,E.vidx);var A=s(C,0);for(var B=0;B<A.length;B++){F=C.substr(A[B],2);D=k(C,A[B]);if(F===\"81\"){G=hextoutf8(D);z.push([\"MAIL\",G])}if(F===\"82\"){G=hextoutf8(D);z.push([\"DNS\",G])}if(F===\"84\"){G=X509.hex2dn(D,0);z.push([\"DN\",G])}if(F===\"86\"){G=hextoutf8(D);z.push([\"URI\",G])}if(F===\"87\"){G=hextoip(D);z.push([\"IP\",G])}}return z};this.getExtCRLDistributionPoints=function(D,F){if(D===undefined&&F===undefined){var E=this.getExtInfo(\"cRLDistributionPoints\");if(E===undefined){return undefined}D=b(this.hex,E.vidx);F=E.critical}var A={extname:\"cRLDistributionPoints\",array:[]};if(F){A.critical=true}var B=s(D,0);for(var C=0;C<B.length;C++){var z=b(D,B[C]);A.array.push(this.getDistributionPoint(z))}return A};this.getDistributionPoint=function(E){var B={};var C=s(E,0);for(var D=0;D<C.length;D++){var A=E.substr(C[D],2);var z=b(E,C[D]);if(A==\"a0\"){B.dpname=this.getDistributionPointName(z)}}return B};this.getDistributionPointName=function(E){var B={};var C=s(E,0);for(var D=0;D<C.length;D++){var A=E.substr(C[D],2);var z=b(E,C[D]);if(A==\"a0\"){B.full=this.getGeneralNames(z)}}return B};this.getExtCRLDistributionPointsURI=function(){var D=this.getExtCRLDistributionPoints();if(D==undefined){return D}var A=D.array;var z=[];for(var C=0;C<A.length;C++){try{if(A[C].dpname.full[0].uri!=undefined){z.push(A[C].dpname.full[0].uri)}}catch(B){}}return z};this.getExtAIAInfo=function(){var D=this.getExtInfo(\"authorityInfoAccess\");if(D===undefined){return D}var z={ocsp:[],caissuer:[]};var A=s(this.hex,D.vidx);for(var B=0;B<A.length;B++){var E=c(this.hex,A[B],[0],\"06\");var C=c(this.hex,A[B],[1],\"86\");if(E===\"2b06010505073001\"){z.ocsp.push(hextoutf8(C))}if(E===\"2b06010505073002\"){z.caissuer.push(hextoutf8(C))}}return z};this.getExtAuthorityInfoAccess=function(G,E){if(G===undefined&&E===undefined){var z=this.getExtInfo(\"authorityInfoAccess\");if(z===undefined){return undefined}G=b(this.hex,z.vidx);E=z.critical}var H={extname:\"authorityInfoAccess\",array:[]};if(E){H.critical=true}var F=s(G,0);for(var A=0;A<F.length;A++){var D=p(G,F[A],[0],\"06\");var B=c(G,F[A],[1],\"86\");var C=hextoutf8(B);if(D==\"2b06010505073001\"){H.array.push({ocsp:C})}else{if(D==\"2b06010505073002\"){H.array.push({caissuer:C})}else{throw new Error(\"unknown method: \"+D)}}}return H};this.getExtCertificatePolicies=function(D,G){if(D===undefined&&G===undefined){var F=this.getExtInfo(\"certificatePolicies\");if(F===undefined){return undefined}D=b(this.hex,F.vidx);G=F.critical}var z={extname:\"certificatePolicies\",array:[]};if(G){z.critical=true}var A=s(D,0);for(var B=0;B<A.length;B++){var E=b(D,A[B]);var C=this.getPolicyInformation(E);z.array.push(C)}return z};this.getPolicyInformation=function(D){var z={};var F=c(D,0,[0],\"06\");z.policyoid=u(F);var G=f(D,0,[1],\"30\");if(G!=-1){z.array=[];var A=s(D,G);for(var B=0;B<A.length;B++){var E=b(D,A[B]);var C=this.getPolicyQualifierInfo(E);z.array.push(C)}}return z};this.getOtherName=function(B){var z={};var A=s(B,0);var D=c(B,A[0],[],\"06\");var C=c(B,A[1],[]);z.oid=u(D);z.value=j(C);return z};this.getPolicyQualifierInfo=function(A){var z={};var B=c(A,0,[0],\"06\");if(B===\"2b06010505070201\"){var D=p(A,0,[1],\"16\");z.cps=hextorstr(D)}else{if(B===\"2b06010505070202\"){var C=a(A,0,[1],\"30\");z.unotice=this.getUserNotice(C)}}return z};this.getUserNotice=function(B){var D=null;var z={};try{D=o.parse(B);var C=this._asn1ToUnotice(D);return C}catch(A){return undefined}};this._asn1ToUnotice=function(E){try{var z={};var A=aryval(E,\"seq\");for(var C=0;C<A.length;C++){var D=this._asn1ToNoticeRef(A[C]);if(D!=undefined){z.noticeref=D}var F=this.asn1ToDisplayText(A[C]);if(F!=undefined){z.exptext=F}}if(Object.keys(z).length>0){return z}return undefined}catch(B){return undefined}};this._asn1ToNoticeRef=function(F){try{var A={};var B=aryval(F,\"seq\");for(var D=0;D<B.length;D++){var E=this._asn1ToNoticeNum(B[D]);if(E!=undefined){A.noticenum=E}var z=this.asn1ToDisplayText(B[D]);if(z!=undefined){A.org=z}}if(Object.keys(A).length>0){return A}return undefined}catch(C){return undefined}};this._asn1ToNoticeNum=function(E){try{var A=aryval(E,\"seq\");var z=[];for(var C=0;C<A.length;C++){var D=A[C];z.push(parseInt(aryval(D,\"int.hex\"),16))}return z}catch(B){return undefined}};this.getDisplayText=function(A){var B={\"0c\":\"utf8\",\"16\":\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"};var z={};z.type=B[A.substr(0,2)];z.str=hextorstr(k(A,0));return z};this.asn1ToDisplayText=function(z){if(z.utf8str!=undefined){return{type:\"utf8\",str:z.utf8str.str}}if(z.ia5str!=undefined){return{type:\"ia5\",str:z.ia5str.str}}if(z.visstr!=undefined){return{type:\"vis\",str:z.visstr.str}}if(z.bmpstr!=undefined){return{type:\"bmp\",str:z.bmpstr.str}}if(z.prnstr!=undefined){return{type:\"prn\",str:z.prnstr.str}}return undefined};this.getExtPolicyMappings=function(G,E){var z=this.getCriticalExtV(\"policyMappings\",G,E);G=z[0];E=z[1];if(G==null){return undefined}var I={extname:\"policyMappings\"};if(E){I.critical=true}try{var A=j(G);var B=A.seq;var F=[];for(var C=0;C<B.length;C++){var H=B[C].seq;F.push([H[0].oid,H[1].oid])}I.array=F}catch(D){throw new m(\"malformed policyMappings\")}return I};this.getExtPolicyConstraints=function(G,D){var z=this.getCriticalExtV(\"policyConstraints\",G,D);G=z[0];D=z[1];if(G==null){return undefined}var H={extname:\"policyConstraints\"};if(D){H.critical=true}var A=j(G);try{var F=A.seq;for(var B=0;B<F.length;B++){var E=F[B].tag;if(E.explicit!=false){continue}if(E.tag==\"80\"){H.reqexp=parseInt(E.hex,16)}if(E.tag==\"81\"){H.inhibit=parseInt(E.hex,16)}}}catch(C){return new m(\"malformed policyConstraints value\")}return H};this.getExtInhibitAnyPolicy=function(A,D){var C=this.getCriticalExtV(\"inhibitAnyPolicy\",A,D);A=C[0];D=C[1];if(A==null){return undefined}var z={extname:\"inhibitAnyPolicy\"};if(D){z.critical=true}var B=x(A,0);if(B==-1){return new m(\"wrong value\")}z.skip=B;return z};this.getExtCRLNumber=function(A,B){var z={extname:\"cRLNumber\"};if(B){z.critical=true}if(A.substr(0,2)==\"02\"){z.num={hex:k(A,0)};return z}throw new m(\"hExtV parse error: \"+A)};this.getExtCRLReason=function(A,B){var z={extname:\"cRLReason\"};if(B){z.critical=true}if(A.substr(0,2)==\"0a\"){z.code=parseInt(k(A,0),16);return z}throw new Error(\"hExtV parse error: \"+A)};this.getExtOcspNonce=function(A,C){var z={extname:\"ocspNonce\"};if(C){z.critical=true}var B=k(A,0);z.hex=B;return z};this.getExtOcspNoCheck=function(A,B){var z={extname:\"ocspNoCheck\"};if(B){z.critical=true}return z};this.getExtAdobeTimeStamp=function(C,F){if(C===undefined&&F===undefined){var E=this.getExtInfo(\"adobeTimeStamp\");if(E===undefined){return undefined}C=b(this.hex,E.vidx);F=E.critical}var z={extname:\"adobeTimeStamp\"};if(F){z.critical=true}var B=s(C,0);if(B.length>1){var G=b(C,B[1]);var A=this.getGeneralName(G);if(A.uri!=undefined){z.uri=A.uri}}if(B.length>2){var D=b(C,B[2]);if(D==\"0101ff\"){z.reqauth=true}if(D==\"010100\"){z.reqauth=false}}return z};this.getExtSubjectDirectoryAttributes=function(I,H){if(I===undefined&&H===undefined){var B=this.getExtInfo(\"subjectDirectoryAttributes\");if(B===undefined){return undefined}I=b(this.hex,B.vidx);H=B.critical}var J={extname:\"subjectDirectoryAttributes\"};if(H){J.critical=true}try{var z=j(I);var D=[];for(var E=0;E<z.seq.length;E++){var A=z.seq[E];var C=aryval(A,\"seq.0.oid\");var F=aryval(A,\"seq.1.set\");if(C==undefined||F==undefined){throw\"error\"}D.push({attr:C,array:F})}J.array=D;return J}catch(G){throw new Error(\"malformed subjectDirectoryAttributes extension value\")}};var e=function(E){var z={};try{var B=E.seq[0].oid;var D=KJUR.asn1.x509.OID.name2oid(B);z.type=KJUR.asn1.x509.OID.oid2atype(D);var A=E.seq[1];if(A.utf8str!=undefined){z.ds=\"utf8\";z.value=A.utf8str.str}else{if(A.numstr!=undefined){z.ds=\"num\";z.value=A.numstr.str}else{if(A.telstr!=undefined){z.ds=\"tel\";z.value=A.telstr.str}else{if(A.prnstr!=undefined){z.ds=\"prn\";z.value=A.prnstr.str}else{if(A.ia5str!=undefined){z.ds=\"ia5\";z.value=A.ia5str.str}else{if(A.visstr!=undefined){z.ds=\"vis\";z.value=A.visstr.str}else{if(A.bmpstr!=undefined){z.ds=\"bmp\";z.value=A.bmpstr.str}else{throw\"error\"}}}}}}}return z}catch(C){throw new Erorr(\"improper ASN.1 parsed AttrTypeAndValue\")}};var i=function(A){try{return A.set.map(function(B){return e(B)})}catch(z){throw new Error(\"improper ASN.1 parsed RDN: \"+z)}};var h=function(A){try{return A.seq.map(function(B){return i(B)})}catch(z){throw new Error(\"improper ASN.1 parsed X500Name: \"+z)}};this.getX500NameRule=function(z){var G=true;var K=true;var J=false;var A=\"\";var D=\"\";var M=null;var H=[];for(var C=0;C<z.length;C++){var E=z[C];for(var B=0;B<E.length;B++){H.push(E[B])}}for(var C=0;C<H.length;C++){var L=H[C];var N=L.ds;var I=L.value;var F=L.type;A+=\":\"+N;if(N!=\"prn\"&&N!=\"utf8\"&&N!=\"ia5\"){return\"mixed\"}if(N==\"ia5\"){if(F!=\"CN\"){return\"mixed\"}else{if(!KJUR.lang.String.isMail(I)){return\"mixed\"}else{continue}}}if(F==\"C\"){if(N==\"prn\"){continue}else{return\"mixed\"}}D+=\":\"+N;if(M==null){M=N}else{if(M!==N){return\"mixed\"}}}if(M==null){return\"prn\"}else{return M}};this.getAttrTypeAndValue=function(z){var A=j(z);return e(A)};this.getRDN=function(z){var A=j(z);return i(A)};this.getX500NameArray=function(z){var A=j(z);return h(A)};this.getX500Name=function(C,E,D){var A=this.getX500NameArray(C);var B=this.dnarraytostr(A);var z={str:B};z.array=A;if(D==true){z.hex=C}if(E==true){z.canon=this.c14nRDNArray(A)}return z};this.readCertPEM=function(z){this.readCertHex(w(z))};this.readCertHex=function(z){this.hex=z;this.getVersion();try{l(this.hex,0,[0,7],\"a3\");this.parseExt()}catch(A){}};this.getParam=function(A){var z={};if(A==undefined){A={}}z.version=this.getVersion();z.serial={hex:this.getSerialNumberHex()};z.sigalg=this.getSignatureAlgorithmField();z.issuer=this.getIssuer(A.dncanon,A.dnhex);z.notbefore=this.getNotBefore();z.notafter=this.getNotAfter();z.subject=this.getSubject(A.dncanon,A.dnhex);z.sbjpubkey=hextopem(this.getPublicKeyHex(),\"PUBLIC KEY\");if(this.aExtInfo!=undefined&&this.aExtInfo.length>0){z.ext=this.getExtParamArray()}z.sighex=this.getSignatureValueHex();if(A.tbshex==true){z.tbshex=a(this.hex,0,[0])}if(A.nodnarray==true){delete z.issuer.array;delete z.subject.array}return z};this.getExtParamArray=function(A){if(A==undefined){var C=f(this.hex,0,[0,\"[3]\"]);if(C!=-1){A=q(this.hex,0,[0,\"[3]\",0],\"30\")}}var z=[];var B=s(A,0);for(var D=0;D<B.length;D++){var F=b(A,B[D]);var E=this.getExtParam(F);if(E!=null){z.push(E)}}return z};this.getExtParam=function(A){var I={};var C=s(A,0);var E=C.length;if(E!=2&&E!=3){throw new Error(\"wrong number elements in Extension: \"+E+\" \"+A)}var B=r(c(A,0,[0],\"06\"));var G=false;if(E==3&&a(A,0,[1])==\"0101ff\"){G=true}var H=a(A,0,[E-1,0]);var F=undefined;if(B==\"2.5.29.14\"){F=this.getExtSubjectKeyIdentifier(H,G)}else{if(B==\"2.5.29.15\"){F=this.getExtKeyUsage(H,G)}else{if(B==\"2.5.29.17\"){F=this.getExtSubjectAltName(H,G)}else{if(B==\"2.5.29.18\"){F=this.getExtIssuerAltName(H,G)}else{if(B==\"2.5.29.19\"){F=this.getExtBasicConstraints(H,G)}else{if(B==\"2.5.29.30\"){F=this.getExtNameConstraints(H,G)}else{if(B==\"2.5.29.31\"){F=this.getExtCRLDistributionPoints(H,G)}else{if(B==\"2.5.29.32\"){F=this.getExtCertificatePolicies(H,G)}else{if(B==\"2.5.29.33\"){F=this.getExtPolicyMappings(H,G)}else{if(B==\"2.5.29.35\"){F=this.getExtAuthorityKeyIdentifier(H,G)}else{if(B==\"2.5.29.36\"){F=this.getExtPolicyConstraints(H,G)}else{if(B==\"2.5.29.37\"){F=this.getExtExtKeyUsage(H,G)}else{if(B==\"2.5.29.54\"){F=this.getExtInhibitAnyPolicy(H,G)}else{if(B==\"1.3.6.1.5.5.7.1.1\"){F=this.getExtAuthorityInfoAccess(H,G)}else{if(B==\"2.5.29.20\"){F=this.getExtCRLNumber(H,G)}else{if(B==\"2.5.29.21\"){F=this.getExtCRLReason(H,G)}else{if(B==\"2.5.29.9\"){F=this.getExtSubjectDirectoryAttributes(H,G)}else{if(B==\"1.3.6.1.5.5.7.48.1.2\"){F=this.getExtOcspNonce(H,G)}else{if(B==\"1.3.6.1.5.5.7.48.1.5\"){F=this.getExtOcspNoCheck(H,G)}else{if(B==\"1.2.840.113583.1.1.9.1\"){F=this.getExtAdobeTimeStamp(H,G)}else{if(X509.EXT_PARSER[B]!=undefined){F=X509.EXT_PARSER[B](B,G,H)}}}}}}}}}}}}}}}}}}}}}if(F!=undefined){return F}var z={extname:B,extn:H};try{z.extn=j(H)}catch(D){}if(G){z.critical=true}return z};this.findExt=function(A,B){for(var z=0;z<A.length;z++){if(A[z].extname==B){return A[z]}}return null};this.updateExtCDPFullURI=function(D,z){var C=this.findExt(D,\"cRLDistributionPoints\");if(C==null){return}if(C.array==undefined){return}var F=C.array;for(var B=0;B<F.length;B++){if(F[B].dpname==undefined){continue}if(F[B].dpname.full==undefined){continue}var G=F[B].dpname.full;for(var A=0;A<G.length;A++){var E=G[B];if(E.uri==undefined){continue}E.uri=z}}};this.updateExtAIAOCSP=function(D,A){var C=this.findExt(D,\"authorityInfoAccess\");if(C==null){return}if(C.array==undefined){return}var z=C.array;for(var B=0;B<z.length;B++){if(z[B].ocsp!=undefined){z[B].ocsp=A}}};this.updateExtAIACAIssuer=function(D,A){var C=this.findExt(D,\"authorityInfoAccess\");if(C==null){return}if(C.array==undefined){return}var z=C.array;for(var B=0;B<z.length;B++){if(z[B].caissuer!=undefined){z[B].caissuer=A}}};this.dnarraytostr=function(B){function z(C){return C.map(function(D){return A(D).replace(/\\+/,\"\\\\+\")}).join(\"+\")}function A(C){return C.type+\"=\"+C.value}return\"/\"+B.map(function(C){return z(C).replace(/\\//,\"\\\\/\")}).join(\"/\")};this.setCanonicalizedDN=function(A){var C;if(A.str!=undefined&&A.array==undefined){var B=new KJUR.asn1.x509.X500Name({str:A.str});var z=B.tohex();C=this.getX500NameArray(z)}else{C=A.array}if(A.canon==undefined){A.canon=this.c14nRDNArray(C)}};this.c14nRDNArray=function(G){var A=[];for(var C=0;C<G.length;C++){var E=G[C];var z=[];for(var B=0;B<E.length;B++){var D=E[B];var F=D.value;F=F.replace(/^\\s*/,\"\");F=F.replace(/\\s*$/,\"\");F=F.replace(/\\s+/g,\" \");F=F.toLowerCase();z.push(D.type.toLowerCase()+\"=\"+F)}A.push(z.join(\"+\"))}return\"/\"+A.join(\"/\")};this.getInfo=function(){var A=function(W){var ac=\"\";var U=\" \";var Y=\"\\n\";var Z=W.array;for(var X=0;X<Z.length;X++){var V=Z[X];if(V.dn!=undefined){ac+=U+\"dn: \"+V.dn.str+Y}if(V.ip!=undefined){ac+=U+\"ip: \"+V.ip+Y}if(V.rfc822!=undefined){ac+=U+\"rfc822: \"+V.rfc822+Y}if(V.dns!=undefined){ac+=U+\"dns: \"+V.dns+Y}if(V.uri!=undefined){ac+=U+\"uri: \"+V.uri+Y}if(V.other!=undefined){var ab=V.other.oid;var aa=JSON.stringify(V.other.value).replace(/\\\"/g,\"\");ac+=U+\"other: \"+ab+\"=\"+aa+Y}}ac=ac.replace(/\\n$/,\"\");return ac};var H=function(aa){var Y=\"\";var U=aa.array;for(var X=0;X<U.length;X++){var Z=U[X];Y+=\" policy oid: \"+Z.policyoid+\"\\n\";if(Z.array===undefined){continue}for(var W=0;W<Z.array.length;W++){var V=Z.array[W];if(V.cps!==undefined){Y+=\" cps: \"+V.cps+\"\\n\"}}}return Y};var K=function(Y){var X=\"\";var U=Y.array;for(var W=0;W<U.length;W++){var Z=U[W];try{if(Z.dpname.full[0].uri!==undefined){X+=\" \"+Z.dpname.full[0].uri+\"\\n\"}}catch(V){}try{if(Z.dname.full[0].dn.hex!==undefined){X+=\" \"+X509.hex2dn(Z.dpname.full[0].dn.hex)+\"\\n\"}}catch(V){}}return X};var I=function(Y){var X=\"\";var U=Y.array;for(var V=0;V<U.length;V++){var W=U[V];if(W.caissuer!==undefined){X+=\" caissuer: \"+W.caissuer+\"\\n\"}if(W.ocsp!==undefined){X+=\" ocsp: \"+W.ocsp+\"\\n\"}}return X};var B=X509;var M,L,T;M=\"Basic Fields\\n\";M+=\" serial number: \"+this.getSerialNumberHex()+\"\\n\";M+=\" signature algorithm: \"+this.getSignatureAlgorithmField()+\"\\n\";M+=\" issuer: \"+this.getIssuerString()+\"\\n\";M+=\" notBefore: \"+this.getNotBefore()+\"\\n\";M+=\" notAfter: \"+this.getNotAfter()+\"\\n\";M+=\" subject: \"+this.getSubjectString()+\"\\n\";M+=\" subject public key info: \\n\";L=this.getPublicKey();M+=\" key algorithm: \"+L.type+\"\\n\";if(L.type===\"RSA\"){M+=\" n=\"+hextoposhex(L.n.toString(16)).substr(0,16)+\"...\\n\";M+=\" e=\"+hextoposhex(L.e.toString(16))+\"\\n\"}T=this.aExtInfo;if(T!==undefined&&T!==null){M+=\"X509v3 Extensions:\\n\";for(var P=0;P<T.length;P++){var R=T[P];var z=KJUR.asn1.x509.OID.oid2name(R.oid);if(z===\"\"){z=R.oid}var O=\"\";if(R.critical===true){O=\"CRITICAL\"}M+=\" \"+z+\" \"+O+\":\\n\";if(z===\"basicConstraints\"){var C=this.getExtBasicConstraints();if(C.cA===undefined){M+=\" {}\\n\"}else{M+=\" cA=true\";if(C.pathLen!==undefined){M+=\", pathLen=\"+C.pathLen}M+=\"\\n\"}}else{if(z==\"policyMappings\"){var S=this.getExtPolicyMappings().array;var G=S.map(function(U){var V=U;return V[0]+\":\"+V[1]}).join(\", \");M+=\" \"+G+\"\\n\"}else{if(z==\"policyConstraints\"){var N=this.getExtPolicyConstraints();M+=\" \";if(N.reqexp!=undefined){M+=\" reqexp=\"+N.reqexp}if(N.inhibit!=undefined){M+=\" inhibit=\"+N.inhibit}M+=\"\\n\"}else{if(z==\"inhibitAnyPolicy\"){var N=this.getExtInhibitAnyPolicy();M+=\" skip=\"+N.skip+\"\\n\"}else{if(z==\"keyUsage\"){M+=\" \"+this.getExtKeyUsageString()+\"\\n\"}else{if(z==\"subjectKeyIdentifier\"){M+=\" \"+this.getExtSubjectKeyIdentifier().kid.hex+\"\\n\"}else{if(z==\"authorityKeyIdentifier\"){var D=this.getExtAuthorityKeyIdentifier();if(D.kid!==undefined){M+=\" kid=\"+D.kid.hex+\"\\n\"}}else{if(z==\"extKeyUsage\"){var Q=this.getExtExtKeyUsage().array;M+=\" \"+Q.join(\", \")+\"\\n\"}else{if(z==\"subjectAltName\"){var E=A(this.getExtSubjectAltName());M+=E+\"\\n\"}else{if(z==\"cRLDistributionPoints\"){var J=this.getExtCRLDistributionPoints();M+=K(J)}else{if(z==\"authorityInfoAccess\"){var F=this.getExtAuthorityInfoAccess();M+=I(F)}else{if(z==\"certificatePolicies\"){M+=H(this.getExtCertificatePolicies())}}}}}}}}}}}}}}M+=\"signature algorithm: \"+this.getSignatureAlgorithmName()+\"\\n\";M+=\"signature: \"+this.getSignatureValueHex().substr(0,16)+\"...\\n\";return M};if(typeof v==\"string\"){if(v.indexOf(\"-----BEGIN\")!=-1){this.readCertPEM(v)}else{if(KJUR.lang.String.isHex(v)){this.readCertHex(v)}}}}X509.EXT_PARSER={};X509.registExtParser=function(b,a){X509.EXT_PARSER[b]=a};X509.hex2dn=function(e,b){if(b===undefined){b=0}var a=new X509();var c=ASN1HEX.getTLV(e,b);var d=a.getX500Name(e);return d.str};X509.hex2rdn=function(f,b){if(b===undefined){b=0}if(f.substr(b,2)!==\"31\"){throw new Error(\"malformed RDN\")}var c=new Array();var d=ASN1HEX.getChildIdx(f,b);for(var e=0;e<d.length;e++){c.push(X509.hex2attrTypeValue(f,d[e]))}c=c.map(function(a){return a.replace(\"+\",\"\\\\+\")});return c.join(\"+\")};X509.hex2attrTypeValue=function(d,i){var j=ASN1HEX;var h=j.getV;if(i===undefined){i=0}if(d.substr(i,2)!==\"30\"){throw new Error(\"malformed attribute type and value\")}var g=j.getChildIdx(d,i);if(g.length!==2||d.substr(g[0],2)!==\"06\"){\"malformed attribute type and value\"}var b=h(d,g[0]);var f=KJUR.asn1.ASN1Util.oidHexToInt(b);var e=KJUR.asn1.x509.OID.oid2atype(f);var a=h(d,g[1]);var c=hextorstr(a);return e+\"=\"+c};X509.getPublicKeyFromCertHex=function(b){var a=new X509();a.readCertHex(b);return a.getPublicKey()};X509.getPublicKeyFromCertPEM=function(b){var a=new X509();a.readCertPEM(b);return a.getPublicKey()};X509.getPublicKeyInfoPropOfCertPEM=function(c){var e=ASN1HEX;var g=e.getVbyList;var b={};var a,f,d;b.algparam=null;a=new X509();a.readCertPEM(c);f=a.getPublicKeyHex();b.keyhex=g(f,0,[1],\"03\").substr(2);b.algoid=g(f,0,[0,0],\"06\");if(b.algoid===\"2a8648ce3d0201\"){b.algparam=g(f,0,[0,1],\"06\")}return b};X509.KEYUSAGE_NAME=[\"digitalSignature\",\"nonRepudiation\",\"keyEncipherment\",\"dataEncipherment\",\"keyAgreement\",\"keyCertSign\",\"cRLSign\",\"encipherOnly\",\"decipherOnly\"];\nvar X509CRL=function(e){var a=KJUR,f=a.lang.String.isHex,m=ASN1HEX,k=m.getV,b=m.getTLV,h=m.getVbyList,c=m.getTLVbyList,d=m.getTLVbyListEx,i=m.getIdxbyList,g=m.getIdxbyListEx,l=m.getChildIdx,j=new X509();this.hex=null;this.posSigAlg=null;this.posRevCert=null;this.parsed=null;this._setPos=function(){var o=i(this.hex,0,[0,0]);var n=this.hex.substr(o,2);if(n==\"02\"){this.posSigAlg=1}else{if(n==\"30\"){this.posSigAlg=0}else{throw new Error(\"malformed 1st item of TBSCertList: \"+n)}}var s=i(this.hex,0,[0,this.posSigAlg+3]);var r=this.hex.substr(s,2);if(r==\"17\"||r==\"18\"){var q,p;q=i(this.hex,0,[0,this.posSigAlg+4]);this.posRevCert=null;if(q!=-1){p=this.hex.substr(q,2);if(p==\"30\"){this.posRevCert=this.posSigAlg+4}}}else{if(r==\"30\"){this.posRevCert=this.posSigAlg+3}else{if(r==\"a0\"){this.posRevCert=null}else{throw new Error(\"malformed nextUpdate or revCert tag: \"+r)}}}};this.getVersion=function(){if(this.posSigAlg==0){return null}return parseInt(h(this.hex,0,[0,0],\"02\"),16)+1};this.getSignatureAlgorithmField=function(){var n=c(this.hex,0,[0,this.posSigAlg],\"30\");return j.getAlgorithmIdentifierName(n)};this.getIssuer=function(){return j.getX500Name(this.getIssuerHex())};this.getIssuerHex=function(){return c(this.hex,0,[0,this.posSigAlg+1],\"30\")};this.getThisUpdate=function(){var n=h(this.hex,0,[0,this.posSigAlg+2]);return result=hextorstr(n)};this.getNextUpdate=function(){var o=i(this.hex,0,[0,this.posSigAlg+3]);var n=this.hex.substr(o,2);if(n!=\"17\"&&n!=\"18\"){return null}return hextorstr(k(this.hex,o))};this.getRevCertArray=function(){if(this.posRevCert==null){return null}var o=[];var n=i(this.hex,0,[0,this.posRevCert]);var p=l(this.hex,n);for(var q=0;q<p.length;q++){var r=b(this.hex,p[q]);o.push(this.getRevCert(r))}return o};this.getRevCert=function(p){var o={};var n=l(p,0);o.sn={hex:h(p,0,[0],\"02\")};o.date=hextorstr(h(p,0,[1]));if(n.length==3){o.ext=j.getExtParamArray(c(p,0,[2]))}return o};this.findRevCert=function(p){var n=new X509(p);var o=n.getSerialNumberHex();return this.findRevCertBySN(o)};this.findRevCertBySN=function(o){if(this.parsed==null){this.getParam()}if(this.parsed.revcert==null){return null}var n=this.parsed.revcert;for(var p=0;p<n.length;p++){if(o==n[p].sn.hex){return n[p]}}return null};this.getSignatureValueHex=function(){return h(this.hex,0,[2],\"03\",true)};this.verifySignature=function(o){var p=this.getSignatureAlgorithmField();var n=this.getSignatureValueHex();var q=c(this.hex,0,[0],\"30\");var r=new KJUR.crypto.Signature({alg:p});r.init(o);r.updateHex(q);return r.verify(n)};this.getParam=function(r){var n={};var p=this.getVersion();if(p!=null){n.version=p}n.sigalg=this.getSignatureAlgorithmField();n.issuer=this.getIssuer();n.thisupdate=this.getThisUpdate();var q=this.getNextUpdate();if(q!=null){n.nextupdate=q}var t=this.getRevCertArray();if(t!=null){n.revcert=t}var s=g(this.hex,0,[0,\"[0]\"]);if(s!=-1){var o=d(this.hex,0,[0,\"[0]\",0]);n.ext=j.getExtParamArray(o)}n.sighex=this.getSignatureValueHex();this.parsed=n;if(typeof r==\"object\"){if(r.tbshex==true){n.tbshex=c(this.hex,0,[0])}if(r.nodnarray==true){delete n.issuer.array}}return n};if(typeof e==\"string\"){if(f(e)){this.hex=e}else{if(e.match(/-----BEGIN X509 CRL/)){this.hex=pemtohex(e)}}this._setPos()}};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.jws==\"undefined\"||!KJUR.jws){KJUR.jws={}}KJUR.jws.JWS=function(){var b=KJUR,a=b.jws.JWS,c=a.isSafeJSONString;this.parseJWS=function(g,j){if((this.parsedJWS!==undefined)&&(j||(this.parsedJWS.sigvalH!==undefined))){return}var i=g.match(/^([^.]+)\\.([^.]+)\\.([^.]+)$/);if(i==null){throw\"JWS signature is not a form of 'Head.Payload.SigValue'.\"}var k=i[1];var e=i[2];var l=i[3];var n=k+\".\"+e;this.parsedJWS={};this.parsedJWS.headB64U=k;this.parsedJWS.payloadB64U=e;this.parsedJWS.sigvalB64U=l;this.parsedJWS.si=n;if(!j){var h=b64utohex(l);var f=parseBigInt(h,16);this.parsedJWS.sigvalH=h;this.parsedJWS.sigvalBI=f}var d=b64utoutf8(k);var m=b64utoutf8(e);this.parsedJWS.headS=d;this.parsedJWS.payloadS=m;if(!c(d,this.parsedJWS,\"headP\")){throw\"malformed JSON string for JWS Head: \"+d}}};KJUR.jws.JWS.sign=function(j,w,z,A,a){var x=KJUR,n=x.jws,r=n.JWS,h=r.readSafeJSONString,q=r.isSafeJSONString,d=x.crypto,l=d.ECDSA,p=d.Mac,c=d.Signature,u=JSON;var t,k,o;if(typeof w!=\"string\"&&typeof w!=\"object\"){throw\"spHeader must be JSON string or object: \"+w}if(typeof w==\"object\"){k=w;t=u.stringify(k)}if(typeof w==\"string\"){t=w;if(!q(t)){throw\"JWS Head is not safe JSON string: \"+t}k=h(t)}o=z;if(typeof z==\"object\"){o=u.stringify(z)}if((j==\"\"||j==null)&&k.alg!==undefined){j=k.alg}if((j!=\"\"&&j!=null)&&k.alg===undefined){k.alg=j;t=u.stringify(k)}if(j!==k.alg){throw\"alg and sHeader.alg doesn't match: \"+j+\"!=\"+k.alg}var s=null;if(r.jwsalg2sigalg[j]===undefined){throw\"unsupported alg name: \"+j}else{s=r.jwsalg2sigalg[j]}var e=utf8tob64u(t);var m=utf8tob64u(o);var b=e+\".\"+m;var y=\"\";if(s.substr(0,4)==\"Hmac\"){if(A===undefined){throw\"mac key shall be specified for HS* alg\"}var i=new p({alg:s,prov:\"cryptojs\",pass:A});i.updateString(b);y=i.doFinal()}else{if(s.indexOf(\"withECDSA\")!=-1){var f=new c({alg:s});f.init(A,a);f.updateString(b);var g=f.sign();y=KJUR.crypto.ECDSA.asn1SigToConcatSig(g)}else{if(s!=\"none\"){var f=new c({alg:s});f.init(A,a);f.updateString(b);y=f.sign()}}}var v=hextob64u(y);return b+\".\"+v};KJUR.jws.JWS.verify=function(w,B,n){var x=KJUR,q=x.jws,t=q.JWS,i=t.readSafeJSONString,e=x.crypto,p=e.ECDSA,s=e.Mac,d=e.Signature,m;if(typeof RSAKey!==undefined){m=RSAKey}if(!isBase64URLDot(w)){return false}var y=w.split(\".\");if(y.length!==3){return false}var f=y[0];var r=y[1];var c=f+\".\"+r;var A=b64utohex(y[2]);var l=i(b64utoutf8(y[0]));var k=null;var z=null;if(l.alg===undefined){throw\"algorithm not specified in header\"}else{k=l.alg;z=k.substr(0,2)}if(n!=null&&Object.prototype.toString.call(n)===\"[object Array]\"&&n.length>0){var b=\":\"+n.join(\":\")+\":\";if(b.indexOf(\":\"+k+\":\")==-1){throw\"algorithm '\"+k+\"' not accepted in the list\"}}if(k!=\"none\"&&B===null){throw\"key shall be specified to verify.\"}if(typeof B==\"string\"&&B.indexOf(\"-----BEGIN \")!=-1){B=KEYUTIL.getKey(B)}if(z==\"RS\"||z==\"PS\"){if(!(B instanceof m)){throw\"key shall be a RSAKey obj for RS* and PS* algs\"}}if(z==\"ES\"){if(!(B instanceof p)){throw\"key shall be a ECDSA obj for ES* algs\"}}if(k==\"none\"){}var u=null;if(t.jwsalg2sigalg[l.alg]===undefined){throw\"unsupported alg name: \"+k}else{u=t.jwsalg2sigalg[k]}if(u==\"none\"){throw\"not supported\"}else{if(u.substr(0,4)==\"Hmac\"){var o=null;if(B===undefined){throw\"hexadecimal key shall be specified for HMAC\"}var j=new s({alg:u,pass:B});j.updateString(c);o=j.doFinal();return A==o}else{if(u.indexOf(\"withECDSA\")!=-1){var h=null;try{h=p.concatSigToASN1Sig(A)}catch(v){return false}var g=new d({alg:u});g.init(B);g.updateString(c);return g.verify(h)}else{var g=new d({alg:u});g.init(B);g.updateString(c);return g.verify(A)}}}};KJUR.jws.JWS.parse=function(g){var c=g.split(\".\");var b={};var f,e,d;if(c.length!=2&&c.length!=3){throw\"malformed sJWS: wrong number of '.' splitted elements\"}f=c[0];e=c[1];if(c.length==3){d=c[2]}b.headerObj=KJUR.jws.JWS.readSafeJSONString(b64utoutf8(f));b.payloadObj=KJUR.jws.JWS.readSafeJSONString(b64utoutf8(e));b.headerPP=JSON.stringify(b.headerObj,null,\" \");if(b.payloadObj==null){b.payloadPP=b64utoutf8(e)}else{b.payloadPP=JSON.stringify(b.payloadObj,null,\" \")}if(d!==undefined){b.sigHex=b64utohex(d)}return b};KJUR.jws.JWS.verifyJWT=function(e,l,r){var d=KJUR,j=d.jws,o=j.JWS,n=o.readSafeJSONString,p=o.inArray,f=o.includedArray;if(!isBase64URLDot(e)){return false}var k=e.split(\".\");if(k.length!=3){return false}var c=k[0];var i=k[1];var q=c+\".\"+i;var m=b64utohex(k[2]);var h=n(b64utoutf8(c));var g=n(b64utoutf8(i));if(h.alg===undefined){return false}if(r.alg===undefined){throw\"acceptField.alg shall be specified\"}if(!p(h.alg,r.alg)){return false}if(g.iss!==undefined&&typeof r.iss===\"object\"){if(!p(g.iss,r.iss)){return false}}if(g.sub!==undefined&&typeof r.sub===\"object\"){if(!p(g.sub,r.sub)){return false}}if(g.aud!==undefined&&typeof r.aud===\"object\"){if(typeof g.aud==\"string\"){if(!p(g.aud,r.aud)){return false}}else{if(typeof g.aud==\"object\"){if(!f(g.aud,r.aud)){return false}}}}var b=j.IntDate.getNow();if(r.verifyAt!==undefined&&typeof r.verifyAt===\"number\"){b=r.verifyAt}if(r.gracePeriod===undefined||typeof r.gracePeriod!==\"number\"){r.gracePeriod=0}if(g.exp!==undefined&&typeof g.exp==\"number\"){if(g.exp+r.gracePeriod<b){return false}}if(g.nbf!==undefined&&typeof g.nbf==\"number\"){if(b<g.nbf-r.gracePeriod){return false}}if(g.iat!==undefined&&typeof g.iat==\"number\"){if(b<g.iat-r.gracePeriod){return false}}if(g.jti!==undefined&&r.jti!==undefined){if(g.jti!==r.jti){return false}}if(!o.verify(e,l,r.alg)){return false}return true};KJUR.jws.JWS.includedArray=function(b,a){var c=KJUR.jws.JWS.inArray;if(b===null){return false}if(typeof b!==\"object\"){return false}if(typeof b.length!==\"number\"){return false}for(var d=0;d<b.length;d++){if(!c(b[d],a)){return false}}return true};KJUR.jws.JWS.inArray=function(d,b){if(b===null){return false}if(typeof b!==\"object\"){return false}if(typeof b.length!==\"number\"){return false}for(var c=0;c<b.length;c++){if(b[c]==d){return true}}return false};KJUR.jws.JWS.jwsalg2sigalg={HS256:\"HmacSHA256\",HS384:\"HmacSHA384\",HS512:\"HmacSHA512\",RS256:\"SHA256withRSA\",RS384:\"SHA384withRSA\",RS512:\"SHA512withRSA\",ES256:\"SHA256withECDSA\",ES384:\"SHA384withECDSA\",ES512:\"SHA512withECDSA\",PS256:\"SHA256withRSAandMGF1\",PS384:\"SHA384withRSAandMGF1\",PS512:\"SHA512withRSAandMGF1\",none:\"none\",};KJUR.jws.JWS.isSafeJSONString=function(c,b,d){var e=null;try{e=jsonParse(c);if(typeof e!=\"object\"){return 0}if(e.constructor===Array){return 0}if(b){b[d]=e}return 1}catch(a){return 0}};KJUR.jws.JWS.readSafeJSONString=function(b){var c=null;try{c=jsonParse(b);if(typeof c!=\"object\"){return null}if(c.constructor===Array){return null}return c}catch(a){return null}};KJUR.jws.JWS.getEncodedSignatureValueFromJWS=function(b){var a=b.match(/^[^.]+\\.[^.]+\\.([^.]+)$/);if(a==null){throw\"JWS signature is not a form of 'Head.Payload.SigValue'.\"}return a[1]};KJUR.jws.JWS.getJWKthumbprint=function(d){if(d.kty!==\"RSA\"&&d.kty!==\"EC\"&&d.kty!==\"oct\"){throw\"unsupported algorithm for JWK Thumprint\"}var a=\"{\";if(d.kty===\"RSA\"){if(typeof d.n!=\"string\"||typeof d.e!=\"string\"){throw\"wrong n and e value for RSA key\"}a+='\"e\":\"'+d.e+'\",';a+='\"kty\":\"'+d.kty+'\",';a+='\"n\":\"'+d.n+'\"}'}else{if(d.kty===\"EC\"){if(typeof d.crv!=\"string\"||typeof d.x!=\"string\"||typeof d.y!=\"string\"){throw\"wrong crv, x and y value for EC key\"}a+='\"crv\":\"'+d.crv+'\",';a+='\"kty\":\"'+d.kty+'\",';a+='\"x\":\"'+d.x+'\",';a+='\"y\":\"'+d.y+'\"}'}else{if(d.kty===\"oct\"){if(typeof d.k!=\"string\"){throw\"wrong k value for oct(symmetric) key\"}a+='\"kty\":\"'+d.kty+'\",';a+='\"k\":\"'+d.k+'\"}'}}}var b=rstrtohex(a);var c=KJUR.crypto.Util.hashHex(b,\"sha256\");var e=hextob64u(c);return e};KJUR.jws.IntDate={};KJUR.jws.IntDate.get=function(c){var b=KJUR.jws.IntDate,d=b.getNow,a=b.getZulu;if(c==\"now\"){return d()}else{if(c==\"now + 1hour\"){return d()+60*60}else{if(c==\"now + 1day\"){return d()+60*60*24}else{if(c==\"now + 1month\"){return d()+60*60*24*30}else{if(c==\"now + 1year\"){return d()+60*60*24*365}else{if(c.match(/Z$/)){return a(c)}else{if(c.match(/^[0-9]+$/)){return parseInt(c)}}}}}}}throw\"unsupported format: \"+c};KJUR.jws.IntDate.getZulu=function(a){return zulutosec(a)};KJUR.jws.IntDate.getNow=function(){var a=~~(new Date()/1000);return a};KJUR.jws.IntDate.intDate2UTCString=function(a){var b=new Date(a*1000);return b.toUTCString()};KJUR.jws.IntDate.intDate2Zulu=function(e){var i=new Date(e*1000),h=(\"0000\"+i.getUTCFullYear()).slice(-4),g=(\"00\"+(i.getUTCMonth()+1)).slice(-2),b=(\"00\"+i.getUTCDate()).slice(-2),a=(\"00\"+i.getUTCHours()).slice(-2),c=(\"00\"+i.getUTCMinutes()).slice(-2),f=(\"00\"+i.getUTCSeconds()).slice(-2);return h+g+b+a+c+f+\"Z\"};\nif(typeof KJUR==\"undefined\"||!KJUR){KJUR={}}if(typeof KJUR.jws==\"undefined\"||!KJUR.jws){KJUR.jws={}}KJUR.jws.JWSJS=function(){var c=KJUR,b=c.jws,a=b.JWS,d=a.readSafeJSONString;this.aHeader=[];this.sPayload=\"\";this.aSignature=[];this.init=function(){this.aHeader=[];this.sPayload=undefined;this.aSignature=[]};this.initWithJWS=function(f){this.init();var e=f.split(\".\");if(e.length!=3){throw\"malformed input JWS\"}this.aHeader.push(e[0]);this.sPayload=e[1];this.aSignature.push(e[2])};this.addSignature=function(e,h,m,k){if(this.sPayload===undefined||this.sPayload===null){throw\"there's no JSON-JS signature to add.\"}var l=this.aHeader.length;if(this.aHeader.length!=this.aSignature.length){throw\"aHeader.length != aSignature.length\"}try{var f=KJUR.jws.JWS.sign(e,h,this.sPayload,m,k);var j=f.split(\".\");var n=j[0];var g=j[2];this.aHeader.push(j[0]);this.aSignature.push(j[2])}catch(i){if(this.aHeader.length>l){this.aHeader.pop()}if(this.aSignature.length>l){this.aSignature.pop()}throw\"addSignature failed: \"+i}};this.verifyAll=function(h){if(this.aHeader.length!==h.length||this.aSignature.length!==h.length){return false}for(var g=0;g<h.length;g++){var f=h[g];if(f.length!==2){return false}var e=this.verifyNth(g,f[0],f[1]);if(e===false){return false}}return true};this.verifyNth=function(f,j,g){if(this.aHeader.length<=f||this.aSignature.length<=f){return false}var h=this.aHeader[f];var k=this.aSignature[f];var l=h+\".\"+this.sPayload+\".\"+k;var e=false;try{e=a.verify(l,j,g)}catch(i){return false}return e};this.readJWSJS=function(g){if(typeof g===\"string\"){var f=d(g);if(f==null){throw\"argument is not safe JSON object string\"}this.aHeader=f.headers;this.sPayload=f.payload;this.aSignature=f.signatures}else{try{if(g.headers.length>0){this.aHeader=g.headers}else{throw\"malformed header\"}if(typeof g.payload===\"string\"){this.sPayload=g.payload}else{throw\"malformed signatures\"}if(g.signatures.length>0){this.aSignature=g.signatures}else{throw\"malformed signatures\"}}catch(e){throw\"malformed JWS-JS JSON object: \"+e}}};this.getJSON=function(){return{headers:this.aHeader,payload:this.sPayload,signatures:this.aSignature}};this.isEmpty=function(){if(this.aHeader.length==0){return 1}return 0}};\nexports.SecureRandom = SecureRandom;\nexports.rng_seed_time = rng_seed_time;\n\nexports.BigInteger = BigInteger;\nexports.RSAKey = RSAKey;\nexports.ECDSA = KJUR.crypto.ECDSA;\nexports.DSA = KJUR.crypto.DSA;\nexports.Signature = KJUR.crypto.Signature;\nexports.MessageDigest = KJUR.crypto.MessageDigest;\nexports.Mac = KJUR.crypto.Mac;\n//exports.Cipher = KJUR.crypto.Cipher;\nexports.KEYUTIL = KEYUTIL;\nexports.ASN1HEX = ASN1HEX;\nexports.X509 = X509;\nexports.X509CRL = X509CRL;\nexports.CryptoJS = CryptoJS;\n\n// ext/base64.js\nexports.b64tohex = b64tohex;\nexports.b64toBA = b64toBA;\n\n// ext/ec*.js\nexports.ECFieldElementFp = ECFieldElementFp;\nexports.ECPointFp = ECPointFp;\nexports.ECCurveFp = ECCurveFp;\n\n// base64x.js\nexports.stoBA = stoBA;\nexports.BAtos = BAtos;\nexports.BAtohex = BAtohex;\nexports.stohex = stohex;\nexports.stob64 = stob64;\nexports.stob64u = stob64u;\nexports.b64utos = b64utos;\nexports.b64tob64u = b64tob64u;\nexports.b64utob64 = b64utob64;\nexports.hex2b64 = hex2b64;\nexports.hextob64u = hextob64u;\nexports.b64utohex = b64utohex;\nexports.utf8tob64u = utf8tob64u;\nexports.b64utoutf8 = b64utoutf8;\nexports.utf8tob64 = utf8tob64;\nexports.b64toutf8 = b64toutf8;\nexports.utf8tohex = utf8tohex;\nexports.hextoutf8 = hextoutf8;\nexports.hextorstr = hextorstr;\nexports.rstrtohex = rstrtohex;\nexports.hextob64 = hextob64;\nexports.hextob64nl = hextob64nl;\nexports.b64nltohex = b64nltohex;\nexports.hextopem = hextopem;\nexports.pemtohex = pemtohex;\nexports.hextoArrayBuffer = hextoArrayBuffer;\nexports.ArrayBuffertohex = ArrayBuffertohex;\nexports.zulutomsec = zulutomsec;\nexports.msectozulu = msectozulu;\nexports.zulutosec = zulutosec;\nexports.zulutodate = zulutodate;\nexports.datetozulu = datetozulu;\nexports.uricmptohex = uricmptohex;\nexports.hextouricmp = hextouricmp;\nexports.ipv6tohex = ipv6tohex;\nexports.hextoipv6 = hextoipv6;\nexports.hextoip = hextoip;\nexports.iptohex = iptohex;\nexports.ucs2hextoutf8 = ucs2hextoutf8;\nexports.encodeURIComponentAll = encodeURIComponentAll;\nexports.newline_toUnix = newline_toUnix;\nexports.newline_toDos = newline_toDos;\nexports.hextoposhex = hextoposhex;\nexports.intarystrtohex = intarystrtohex;\nexports.strdiffidx = strdiffidx;\nexports.oidtohex = oidtohex;\nexports.hextooid = hextooid;\nexports.strpad = strpad;\nexports.bitstrtoint = bitstrtoint;\nexports.inttobitstr = inttobitstr;\nexports.bitstrtobinstr = bitstrtobinstr;\nexports.binstrtobitstr = binstrtobitstr;\nexports.isBase64URLDot = isBase64URLDot;\nexports.namearraytobinstr = namearraytobinstr;\nexports.extendClass = extendClass;\nexports.foldnl = foldnl;\nexports.b64topem = b64topem;\nexports.pemtob64 = pemtob64;\nexports.timeogen = timetogen;\nexports.aryval = aryval;\nexports.inttohex = inttohex;\nexports.twoscompl = twoscompl;\n\n// name spaces\nexports.KJUR = KJUR;\nexports.crypto = KJUR.crypto;\nexports.asn1 = KJUR.asn1;\nexports.jws = KJUR.jws;\nexports.lang = KJUR.lang;\n\nexports.VERSION = VERSION;\nexports.VERSION_FULL = VERSION_FULL;\n\n\n\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseUniq = require('./_baseUniq');\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nmodule.exports = baseXor;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var createFind = require('./_createFind'),\n findLastIndex = require('./findLastIndex');\n\n/**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\nvar findLast = createFind(findLastIndex);\n\nmodule.exports = findLast;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nmodule.exports = findLastIndex;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","var baseFor = require('./_baseFor'),\n castFunction = require('./_castFunction'),\n keysIn = require('./keysIn');\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nmodule.exports = forIn;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '<p>' + func(text) + '</p>';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '<p>fred, barney, & pebbles</p>'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b><script></b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\n function template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = lodash.templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = '//# sourceURL=' +\n (hasOwnProperty.call(options, 'sourceURL')\n ? (options.sourceURL + '').replace(/\\s/g, ' ')\n : ('lodash.templateSources[' + (++templateCounter) + ']')\n ) + '\\n';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n }\n\n /**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n\n /**\n * Converts `string`, as a whole, to upper case just like\n * [String#toUpperCase](https://mdn.io/toUpperCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.toUpper('--foo-bar--');\n * // => '--FOO-BAR--'\n *\n * _.toUpper('fooBar');\n * // => 'FOOBAR'\n *\n * _.toUpper('__foo_bar__');\n * // => '__FOO_BAR__'\n */\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n\n /**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n }\n\n /**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd(' abc ');\n * // => ' abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n return castSlice(strSymbols, 0, end).join('');\n }\n\n /**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n\n return castSlice(strSymbols, start).join('');\n }\n\n /**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n }\n\n /**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n }\n\n /**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\n var upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n });\n\n /**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n var upperFirst = createCaseFirst('toUpperCase');\n\n /**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\n var attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n });\n\n /**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\n var bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n\n /**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = getIteratee();\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n\n /**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\n function constant(value) {\n return function() {\n return value;\n };\n }\n\n /**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\n function defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n }\n\n /**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\n var flow = createFlow();\n\n /**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\n var flowRight = createFlow(true);\n\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n function iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\n var method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\n var methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n if (options == null &&\n !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\n /**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n }\n\n /**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\n var over = createOver(arrayMap);\n\n /**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\n var overEvery = createOver(arrayEvery);\n\n /**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\n var overSome = createOver(arraySome);\n\n /**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n\n /**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\n function propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n }\n\n /**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\n var range = createRange();\n\n /**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\n var rangeRight = createRange(true);\n\n /**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\n function stubArray() {\n return [];\n }\n\n /**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\n function stubFalse() {\n return false;\n }\n\n /**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\n function stubObject() {\n return {};\n }\n\n /**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\n function stubString() {\n return '';\n }\n\n /**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\n function stubTrue() {\n return true;\n }\n\n /**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\n function times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n iteratee = getIteratee(iteratee);\n n -= MAX_ARRAY_LENGTH;\n\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n }\n\n /**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\n var add = createMathOperation(function(augend, addend) {\n return augend + addend;\n }, 0);\n\n /**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\n var ceil = createRound('ceil');\n\n /**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\n var divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n }, 1);\n\n /**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\n var floor = createRound('floor');\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n }\n\n /**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\n function maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)\n : undefined;\n }\n\n /**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\n function mean(array) {\n return baseMean(array, identity);\n }\n\n /**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\n function meanBy(array, iteratee) {\n return baseMean(array, getIteratee(iteratee, 2));\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n }\n\n /**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\n function minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)\n : undefined;\n }\n\n /**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\n var multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n\n /**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\n var round = createRound('round');\n\n /**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\n var subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n\n /**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\n function sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n }\n\n /**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\n function sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, getIteratee(iteratee, 2))\n : 0;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n\n // Add aliases.\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.add = add;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.now = now;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n\n mixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }()), { 'chain': false });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Assign default placeholders.\n arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n lodash[methodName].placeholder = lodash;\n });\n\n // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\n arrayEach(['drop', 'take'], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n var result = (this.__filtered__ && !index)\n ? new LazyWrapper(this)\n : this.clone();\n\n if (result.__filtered__) {\n result.__takeCount__ = nativeMin(n, result.__takeCount__);\n } else {\n result.__views__.push({\n 'size': nativeMin(n, MAX_ARRAY_LENGTH),\n 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n });\n }\n return result;\n };\n\n LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n\n // Add `LazyWrapper` methods that accept an `iteratee` value.\n arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n var type = index + 1,\n isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n LazyWrapper.prototype[methodName] = function(iteratee) {\n var result = this.clone();\n result.__iteratees__.push({\n 'iteratee': getIteratee(iteratee, 3),\n 'type': type\n });\n result.__filtered__ = result.__filtered__ || isFilter;\n return result;\n };\n });\n\n // Add `LazyWrapper` methods for `_.head` and `_.last`.\n arrayEach(['head', 'last'], function(methodName, index) {\n var takeName = 'take' + (index ? 'Right' : '');\n\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n });\n\n // Add `LazyWrapper` methods for `_.initial` and `_.tail`.\n arrayEach(['initial', 'tail'], function(methodName, index) {\n var dropName = 'drop' + (index ? '' : 'Right');\n\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n\n LazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n };\n\n LazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n };\n\n LazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n };\n\n LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == 'function') {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n });\n\n LazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n\n LazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n\n var result = this;\n if (result.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result);\n }\n if (start < 0) {\n result = result.takeRight(-start);\n } else if (start) {\n result = result.drop(start);\n }\n if (end !== undefined) {\n end = toInteger(end);\n result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n }\n return result;\n };\n\n LazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n\n LazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n };\n\n // Add `LazyWrapper` methods to `lodash.prototype`.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n isTaker = /^(?:head|last)$/.test(methodName),\n lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n retUnwrapped = isTaker || /^find/.test(methodName);\n\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__,\n args = isTaker ? [1] : arguments,\n isLazy = value instanceof LazyWrapper,\n iteratee = args[0],\n useLazy = isLazy || isArray(value);\n\n var interceptor = function(value) {\n var result = lodashFunc.apply(lodash, arrayPush([value], args));\n return (isTaker && chainAll) ? result[0] : result;\n };\n\n if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__,\n isHybrid = !!this.__actions__.length,\n isUnwrapped = retUnwrapped && !chainAll,\n onlyLazy = isLazy && !isHybrid;\n\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result = func.apply(value, args);\n result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n return new LodashWrapper(result, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result = this.thru(interceptor);\n return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n };\n });\n\n // Add `Array` methods to `lodash.prototype`.\n arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = arrayProto[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Map minified method names to their real names.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + '';\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ 'name': methodName, 'func': lodashFunc });\n }\n });\n\n realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n 'name': 'wrapper',\n 'func': undefined\n }];\n\n // Add methods to `LazyWrapper`.\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n // Add lazy aliases.\n lodash.prototype.first = lodash.prototype.head;\n\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n });\n\n /*--------------------------------------------------------------------------*/\n\n // Export lodash.\n var _ = runInContext();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = _;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n define(function() {\n return _;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else if (freeModule) {\n // Export for Node.js.\n (freeModule.exports = _)._ = _;\n // Export for CommonJS support.\n freeExports._ = _;\n }\n else {\n // Export to the global object.\n root._ = _;\n }\n}.call(this));\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseIteratee = require('./_baseIteratee'),\n negate = require('./negate'),\n pickBy = require('./pickBy');\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nmodule.exports = omitBy;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createCompounder = require('./_createCompounder'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\nmodule.exports = startCase;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var arrayEach = require('./_arrayEach'),\n baseCreate = require('./_baseCreate'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee'),\n getPrototype = require('./_getPrototype'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isTypedArray = require('./isTypedArray');\n\n/**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\nfunction transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = baseIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n}\n\nmodule.exports = transform;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","var arrayFilter = require('./_arrayFilter'),\n baseRest = require('./_baseRest'),\n baseXor = require('./_baseXor'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\nvar xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n});\n\nmodule.exports = xor;\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = toObject(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = toObject(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => comps.join(' ').trim())\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // Otherwise it can be determined by checking the high version\n\n if (highVersion.patch) {\n // anything higher than a patch bump would result in the wrong version\n return 'patch'\n }\n\n if (highVersion.minor) {\n // anything higher than a minor bump would result in the wrong version\n return 'minor'\n }\n\n // bumping major/minor/patch all have same result\n return 'major'\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('.').listGetNode} */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\tfor (; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tcurr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('.').listGet} */\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('.').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('.').ListNode<typeof value>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('.').listHas} */\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @type {WeakMap<object, unknown>} */ var $wm;\n\t/** @type {Map<object, unknown>} */ var $m;\n\t/** @type {import('.').RootNode<unknown>} */ var $o;\n\n\t/** @type {import('.').Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n body = new Blob(self._body, {\n type: (headersObj['content-type'] || {}).value || ''\n });\n }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/**\n * Component name of the `ResourceList`\n *\n * This needs to be a in separate file to avoid circular dependency of\n * index.vue --> resource-fetch mixin --> resource-fetch-namespaced mixin --> index.vue\n */\nexport const ResourceListComponentName = 'ResourceList';\n","export const ONE_WAY = [\n 'token-hashing', 'multi-cluster-management'\n];\n\nexport const HARVESTER_NAME = 'harvester';\n","export const NORMAN_NAME = 'field.cattle.io/name';\nexport const DESCRIPTION = 'field.cattle.io/description';\nexport const HOSTNAME = 'kubernetes.io/hostname';\nexport const TIMESTAMP = 'cattle.io/timestamp';\nexport const SYSTEM_NAMESPACE = 'management.cattle.io/system-namespace';\nexport const PROJECT = 'field.cattle.io/projectId';\nexport const DEFAULT_PROJECT = 'authz.management.cattle.io/default-project';\nexport const SYSTEM_PROJECT = 'authz.management.cattle.io/system-project';\nexport const CONTAINER_DEFAULT_RESOURCE_LIMIT = 'field.cattle.io/containerDefaultResourceLimit';\nexport const CATTLE_PUBLIC_ENDPOINTS = 'field.cattle.io/publicEndpoints';\nexport const TARGET_WORKLOADS = 'field.cattle.io/targetWorkloadIds';\nexport const UI_MANAGED = 'management.cattle.io/ui-managed';\nexport const CREATOR_ID = 'field.cattle.io/creatorId';\nexport const CREATOR_PRINCIPAL_ID = 'field.cattle.io/creator-principal-name';\nexport const RESOURCE_QUOTA = 'field.cattle.io/resourceQuota';\nexport const AZURE_MIGRATED = 'auth.cattle.io/azuread-endpoint-migrated';\nexport const WORKSPACE_ANNOTATION = 'objectset.rio.cattle.io/id';\nexport const NODE_ARCHITECTURE = 'kubernetes.io/arch';\n\nexport const KUBERNETES = {\n SERVICE_ACCOUNT_UID: 'kubernetes.io/service-account.uid',\n SERVICE_ACCOUNT_NAME: 'kubernetes.io/service-account.name',\n MANAGED_BY: 'app.kubernetes.io/managed-by',\n MANAGED_NAME: 'app.kubernetes.io/name',\n INSTANCE: 'app.kubernetes.io/instance',\n};\n\nexport const CERTMANAGER = { ISSUER: 'cert-manager.io/issuer-name' };\n\nexport const STORAGE = {\n DEFAULT_STORAGE_CLASS: 'storageclass.kubernetes.io/is-default-class',\n BETA_DEFAULT_STORAGE_CLASS: 'storageclass.beta.kubernetes.io/is-default-class'\n};\n\nexport const MANAGEMENT_NODE = { NODE_NAME: 'management.cattle.io/nodename' };\n\nexport const NODE_ROLES = {\n CONTROL_PLANE_OLD: 'node-role.kubernetes.io/controlplane',\n CONTROL_PLANE: 'node-role.kubernetes.io/control-plane',\n WORKER: 'node-role.kubernetes.io/worker',\n ETCD: 'node-role.kubernetes.io/etcd',\n};\n\nexport const MACHINE_ROLES = {\n CONTROL_PLANE: 'rke.cattle.io/control-plane-role',\n WORKER: 'rke.cattle.io/worker-role',\n ETCD: 'rke.cattle.io/etcd-role',\n};\n\nexport const CAPI = {\n DEPLOYMENT_NAME: 'cluster.x-k8s.io/deployment-name',\n CREDENTIAL_DRIVER: 'provisioning.cattle.io/driver',\n CLUSTER_NAMESPACE: 'cluster.x-k8s.io/cluster-namespace',\n FORCE_MACHINE_REMOVE: 'provisioning.cattle.io/force-machine-remove',\n MACHINE_NAME: 'cluster.x-k8s.io/machine',\n DELETE_MACHINE: 'cluster.x-k8s.io/delete-machine',\n PROVIDER: 'provider.cattle.io',\n SECRET_AUTH: 'v2prov-secret-authorized-for-cluster',\n SECRET_WILL_DELETE: 'v2prov-authorized-secret-deletes-on-cluster-removal',\n /**\n * Annotation for overriding the cluster provider,\n */\n UI_CUSTOM_PROVIDER: 'ui.rancher/provider'\n};\n\nexport const CATALOG = {\n CERTIFIED: 'catalog.cattle.io/certified',\n _RANCHER: 'rancher',\n _PARTNER: 'partner',\n _OTHER: 'other',\n\n EXPERIMENTAL: 'catalog.cattle.io/experimental',\n NAMESPACE: 'catalog.cattle.io/namespace',\n RELEASE_NAME: 'catalog.cattle.io/release-name',\n FEATURED: 'catalog.cattle.io/featured',\n\n REQUIRES_GVK: 'catalog.cattle.io/requires-gvr',\n PROVIDES: 'catalog.cattle.io/provides-gvr',\n AUTO_INSTALL_GVK: 'catalog.cattle.io/auto-install-gvr',\n AUTO_INSTALL: 'catalog.cattle.io/auto-install',\n HIDDEN: 'catalog.cattle.io/hidden',\n REQUESTS_CPU: 'catalog.cattle.io/requests-cpu',\n REQUESTS_MEMORY: 'catalog.cattle.io/requests-memory',\n\n SCOPE: 'catalog.cattle.io/scope',\n _MANAGEMENT: 'management',\n _DOWNSTREAM: 'downstream',\n\n TYPE: 'catalog.cattle.io/type',\n _APP: 'app',\n _CLUSTER_TPL: 'cluster-template',\n _CLUSTER_TOOL: 'cluster-tool',\n\n COMPONENT: 'catalog.cattle.io/ui-component',\n SOURCE_REPO_TYPE: 'catalog.cattle.io/ui-source-repo-type',\n SOURCE_REPO_NAME: 'catalog.cattle.io/ui-source-repo',\n COLOR: 'catalog.cattle.io/ui-color',\n DISPLAY_NAME: 'catalog.cattle.io/display-name',\n CLUSTER_REPO_NAME: 'catalog.cattle.io/cluster-repo-name',\n\n SUPPORTED_OS: 'catalog.cattle.io/os',\n PERMITTED_OS: 'catalog.cattle.io/permits-os',\n DEPLOYED_OS: 'catalog.cattle.io/deploys-on-os',\n\n MIGRATED: 'apps.cattle.io/migrated',\n MANAGED: 'catalog.cattle.io/managed',\n\n HIDDEN_REPO: 'clusterrepo.cattle.io/hidden'\n};\n\nexport const FLEET = {\n CLUSTER_DISPLAY_NAME: 'management.cattle.io/cluster-display-name',\n CLUSTER_NAME: 'management.cattle.io/cluster-name',\n BUNDLE_ID: 'fleet.cattle.io/bundle-id',\n BUNDLE_NAME: 'fleet.cattle.io/bundle-name',\n BUNDLE_NAMESPACE: 'fleet.cattle.io/bundle-namespace',\n MANAGED: 'fleet.cattle.io/managed',\n CLUSTER_NAMESPACE: 'fleet.cattle.io/cluster-namespace',\n CLUSTER: 'fleet.cattle.io/cluster'\n};\n\nexport const RBAC = { PRODUCT: 'management.cattle.io/ui-product' };\n\nexport const RKE = { EXTERNAL_IP: 'rke.cattle.io/external-ip' };\n\nexport const SNAPSHOT = { CLUSTER_NAME: 'rke.cattle.io/cluster-name' };\n\nexport const ISTIO = { AUTO_INJECTION: 'istio-injection' };\n\nconst CATTLE_REGEX = /cattle\\.io\\//;\n\nexport const LABELS_TO_IGNORE_REGEX = [\n CATTLE_REGEX\n];\n\nexport const ANNOTATIONS_TO_IGNORE_REGEX = [\n CATTLE_REGEX\n];\n\nexport const ANNOTATIONS_TO_FOLD = [\n /^kubectl\\.kubernetes\\.io\\/.*$/,\n /^objectset\\.rio\\.cattle\\.io\\/.*$/,\n];\n\nexport const HCI = {\n CLOUD_INIT: 'harvesterhci.io/cloud-init-template',\n CLOUD_PROVIDER_IPAM: 'cloudprovider.harvesterhci.io/ipam',\n NETWORK_ROUTE: 'network.harvesterhci.io/route',\n IMAGE_NAME: 'harvesterhci.io/image-name',\n NETWORK_TYPE: 'network.harvesterhci.io/type',\n CLUSTER_NETWORK: 'network.harvesterhci.io/clusternetwork',\n PRIMARY_SERVICE: 'cloudprovider.harvesterhci.io/primary-service',\n};\n\n// Annotations that can be on management.cattle.io.cluster to configure a custom badge\n// Can't use ui.cattle.io - it seems to strip these out - so using io.rancher\nexport const CLUSTER_BADGE = {\n // Badge text - badge is only shown if badge text is not empty\n TEXT: 'ui.rancher/badge-text',\n // Badge color - as a hex color - e.g. #ff00ff\n COLOR: 'ui.rancher/badge-color',\n // Custom icon text - max 3 characters\n ICON_TEXT: 'ui.rancher/badge-icon-text',\n};\n\nexport const SYSTEM_LABELS = [\n 'io.cattle.lifecycle.',\n 'beta.kubernetes.io',\n 'failure-domain.beta.kubernetes.io',\n 'node-role.kubernetes.io',\n 'kubernetes.io',\n 'cattle.io',\n 'authz.management.cattle.io',\n 'rke.cattle.io',\n 'field.cattle.io',\n 'workload.user.cattle.io',\n 'k3s.io',\n 'node.kubernetes.io',\n 'egress.rke2.io'\n];\n\nexport const CLOUD_CREDENTIALS = { EXPIRATION: 'rancher.io/expiration-timestamp' };\n","import {\n STATE, NAME as NAME_COL, NAMESPACE as NAMESPACE_COL, AGE, OBJECT,\n EVENT_LAST_SEEN_TIME,\n EVENT_TYPE\n} from '@shell/config/table-headers';\n\n// This file contains table headers\n// These table headers are used for server side pagination\n// They MUST contain sort and search values that are paths to raw properties (not computed properties in models)\n// They SHOULD avoid formatters that change the value from the same used by sort and search (user will see an order that doesn't match what they see)\n\nexport const STEVE_NAME_COL = {\n ...NAME_COL,\n defaultSort: true,\n value: 'metadata.name',\n sort: ['metadata.name'],\n search: 'metadata.name',\n};\n\nexport const STEVE_ID_COL = {\n name: 'steve-id',\n labelKey: 'tableHeaders.id',\n value: 'id',\n sort: ['id'],\n search: 'id',\n};\n\nexport const STEVE_STATE_COL = {\n ...STATE,\n // Note, we're show the 'state' as per model, not the 'metadata.state.name' that's available in the model to remotely sort/filter\n // Need to investigate whether we should 'dumb down' the state we show to the native one (tracked via https://github.com/rancher/dashboard/issues/8527)\n // This means we'll show something different to what we sort and filter on.\n sort: ['metadata.state.name'],\n search: 'metadata.state.name',\n};\n\nexport const STEVE_AGE_COL = {\n ...AGE,\n value: 'metadata.creationTimestamp',\n sort: 'metadata.creationTimestamp',\n search: false,\n};\n\nexport const STEVE_NAMESPACE_COL = {\n ...NAMESPACE_COL,\n value: 'metadata.namespace',\n sort: 'metadata.namespace',\n search: 'metadata.namespace',\n};\n\nexport const STEVE_EVENT_OBJECT = {\n ...OBJECT,\n sort: 'involvedObject.kind',\n search: 'involvedObject.kind',\n};\n\nexport const STEVE_EVENT_LAST_SEEN = {\n ...EVENT_LAST_SEEN_TIME,\n value: 'metadata.fields.0',\n sort: 'metadata.fields.0',\n};\n\nexport const STEVE_EVENT_TYPE = {\n ...EVENT_TYPE,\n value: '_type',\n sort: '_type',\n};\n\nexport const STEVE_LIST_GROUPS = [{\n tooltipKey: 'resourceTable.groupBy.none',\n icon: 'icon-list-flat',\n value: 'none',\n}, {\n icon: 'icon-folder',\n value: 'metadata.namespace',\n field: 'metadata.namespace', // Default groupByLabel field in models is NS based\n hideColumn: NAMESPACE_COL.name,\n tooltipKey: 'resourceTable.groupBy.namespace',\n groupLabelKey: 'groupByLabel',\n}];\n","import { SETTING } from './settings';\nimport { CURRENT_RANCHER_VERSION } from './version';\n\nexport const ANY = 0;\nexport const STANDARD = 1;\nexport const CUSTOM = 2;\nexport const DOCS_BASE = `https://ranchermanager.docs.rancher.com/v${ CURRENT_RANCHER_VERSION }`;\n\nconst STANDARD_VENDOR = 'Rancher';\nconst STANDARD_PRODUCT = 'Explorer';\nconst CUSTOM_VENDOR = {\n suse: 'Rancher Prime',\n csp: 'SUSE Rancher'\n};\n\nlet mode = STANDARD;\nlet vendor = STANDARD_VENDOR;\nlet product = STANDARD_PRODUCT;\nlet brand = null;\n\nexport function setMode(m) {\n mode = m;\n}\n\nexport function setVendor(v) {\n vendor = v;\n setTitle();\n}\n\nexport function setProduct(p) {\n product = p;\n}\n\nexport function setBrand(b) {\n brand = b;\n}\n\n// -------------------------------------\n\nexport function getMode() {\n return mode;\n}\n\nexport function getBrand() {\n return brand;\n}\n\nexport function isStandard() {\n return mode === STANDARD;\n}\n\nexport function matches(pl) {\n if ( pl === ANY ) {\n return true;\n }\n\n return pl === mode;\n}\n\nexport function getVendor() {\n if ( vendor === SETTING.PL_RANCHER_VALUE ) {\n // Custom vendor override based on brand\n if (brand && CUSTOM_VENDOR[brand]) {\n return CUSTOM_VENDOR[brand];\n }\n\n return STANDARD_VENDOR;\n }\n\n return vendor;\n}\n\nexport function getProduct() {\n return product;\n}\n\nexport function setTitle() {\n const v = getVendor();\n\n if (v === 'Harvester') {\n const ico = require(`~shell/assets/images/pl/harvester.png`);\n\n document.title = 'Harvester';\n const link = document.createElement('link');\n\n link.hid = 'icon';\n link.rel = 'icon';\n link.type = 'image/x-icon';\n link.hrefv = ico;\n const head = document.getElementsByTagName('head')[0];\n\n head.appendChild(link);\n }\n}\n","import { DSL } from '@shell/store/type-map';\nimport { CIS } from '@shell/config/types';\nimport { STATE, NAME as NAME_HEADER, AGE } from '@shell/config/table-headers';\n\nexport const NAME = 'cis';\nexport const CHART_NAME = 'rancher-cis-benchmark';\n\nexport function init(store) {\n const {\n product,\n basicType,\n weightType,\n configureType,\n headers\n } = DSL(store, NAME);\n\n product({\n ifHaveGroup: /^(.*\\.)*cis\\.cattle\\.io$/,\n icon: 'cis',\n });\n\n weightType(CIS.CLUSTER_SCAN, 3, true);\n weightType(CIS.CLUSTER_SCAN_PROFILE, 2, true);\n weightType(CIS.BENCHMARK, 1, true);\n\n basicType([\n 'cis.cattle.io.clusterscan',\n 'cis.cattle.io.clusterscanprofile',\n 'cis.cattle.io.clusterscanbenchmark',\n ]);\n\n configureType(CIS.CLUSTER_SCAN, { canYaml: false, showAge: false });\n\n headers(CIS.CLUSTER_SCAN, [\n STATE,\n NAME_HEADER,\n {\n name: 'clusterScanProfile',\n label: 'Profile',\n formatter: 'Link',\n formatterOpts: { options: { internal: true }, urlKey: 'scanProfileLink' },\n value: 'status.lastRunScanProfileName',\n sort: ['status.lastRunScanProfileName'],\n },\n {\n name: 'total',\n labelKey: 'cis.scan.total',\n value: 'status.summary.total',\n formatter: 'ScanResult'\n\n },\n {\n name: 'pass',\n value: 'status.summary.pass',\n labelKey: 'cis.scan.pass',\n formatter: 'ScanResult'\n\n },\n {\n name: 'fail',\n labelKey: 'cis.scan.fail',\n value: 'status.summary.fail',\n formatter: 'ScanResult'\n\n },\n {\n name: 'warn',\n labelKey: 'cis.scan.warn',\n value: 'status.summary.warn',\n formatter: 'ScanResult'\n\n },\n {\n name: 'skip',\n labelKey: 'cis.scan.skip',\n value: 'status.summary.skip',\n formatter: 'ScanResult'\n\n },\n {\n name: 'notApplicable',\n labelKey: 'cis.scan.notApplicable',\n value: 'status.summary.notApplicable',\n formatter: 'ScanResult'\n\n },\n {\n name: 'nextScanAt',\n label: 'Next Scan',\n value: 'status.NextScanAt',\n formatter: 'LiveDate',\n formatterOpts: { addPrefix: false },\n sort: 'status.nextScanAt:desc',\n width: 150,\n align: 'right',\n },\n {\n name: 'lastRunTimestamp',\n label: 'Last Run',\n value: 'status.lastRunTimestamp',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n sort: 'status.lastRunTimestamp:desc',\n width: 150,\n align: 'right',\n defaultSort: true,\n },\n ]);\n\n headers(CIS.CLUSTER_SCAN_PROFILE, [\n STATE,\n NAME_HEADER,\n {\n name: 'benchmarkVersion',\n labelKey: 'cis.benchmarkVersion',\n value: 'spec.benchmarkVersion',\n formatter: 'Link',\n formatterOpts: { options: { internal: true }, urlKey: 'benchmarkVersionLink' },\n sort: ['spec.benchmarkVersion'],\n },\n {\n name: 'skippedTests',\n labelKey: 'cis.testsSkipped',\n value: 'numberTestsSkipped',\n sort: ['numberTestsSkipped']\n }\n ]);\n\n headers(CIS.BENCHMARK, [\n STATE,\n NAME_HEADER,\n {\n name: 'clusterProvider',\n labelKey: 'cis.clusterProvider',\n value: 'spec.clusterProvider',\n },\n {\n name: 'minKubernetesVersion',\n labelKey: 'tableHeaders.minKubernetesVersion',\n value: 'spec.minKubernetesVersion',\n dashIfEmpty: true,\n\n },\n {\n name: 'maxKubernetesVersion',\n labelKey: 'tableHeaders.maxKubernetesVersion',\n value: 'spec.maxKubernetesVersion',\n dashIfEmpty: true,\n },\n {\n name: 'isDefault',\n labelKey: 'tableHeaders.builtIn',\n formatter: 'Checked',\n value: 'isDefault'\n },\n AGE\n ]);\n}\n","import {\n CATALOG,\n CONFIG_MAP,\n EVENT,\n NODE, SECRET, INGRESS,\n WORKLOAD, WORKLOAD_TYPES, SERVICE, HPA, NETWORK_POLICY, PV, PVC, STORAGE_CLASS, POD, POD_DISRUPTION_BUDGET, LIMIT_RANGE, RESOURCE_QUOTA,\n MANAGEMENT,\n NAMESPACE,\n NORMAN,\n SNAPSHOT,\n VIRTUAL_TYPES,\n CAPI,\n} from '@shell/config/types';\n\nimport {\n STATE, USER_STATE, NAME as NAME_COL, NAMESPACE as NAMESPACE_COL, AGE, KEYS,\n INGRESS_DEFAULT_BACKEND, INGRESS_TARGET, INGRESS_CLASS,\n SPEC_TYPE, TARGET_PORT, SELECTOR, NODE as NODE_COL, TYPE, WORKLOAD_IMAGES, POD_IMAGES,\n USER_ID, USERNAME, USER_DISPLAY_NAME, USER_PROVIDER, USER_LAST_LOGIN, USER_DISABLED_IN, USER_DELETED_IN, WORKLOAD_ENDPOINTS, STORAGE_CLASS_DEFAULT,\n STORAGE_CLASS_PROVISIONER, PERSISTENT_VOLUME_SOURCE,\n HPA_REFERENCE, MIN_REPLICA, MAX_REPLICA, CURRENT_REPLICA,\n ACCESS_KEY, DESCRIPTION, EXPIRES, EXPIRY_STATE, LAST_USED, SUB_TYPE, AGE_NORMAN, SCOPE_NORMAN, PERSISTENT_VOLUME_CLAIM, RECLAIM_POLICY, PV_REASON, WORKLOAD_HEALTH_SCALE, POD_RESTARTS,\n DURATION, MESSAGE, REASON, EVENT_TYPE, OBJECT, ROLE, ROLES, VERSION, INTERNAL_EXTERNAL_IP, KUBE_NODE_OS, CPU, RAM, SECRET_DATA,\n EVENT_LAST_SEEN_TIME\n} from '@shell/config/table-headers';\n\nimport { DSL } from '@shell/store/type-map';\nimport {\n STEVE_AGE_COL, STEVE_EVENT_LAST_SEEN, STEVE_EVENT_OBJECT, STEVE_EVENT_TYPE, STEVE_LIST_GROUPS, STEVE_NAMESPACE_COL, STEVE_NAME_COL, STEVE_STATE_COL\n} from '@shell/config/pagination-table-headers';\n\nimport { COLUMN_BREAKPOINTS } from '@shell/types/store/type-map';\nimport { STEVE_CACHE } from '@shell/store/features';\nimport { configureConditionalDepaginate } from '@shell/store/type-map.utils';\nimport { CATTLE_PUBLIC_ENDPOINTS } from '@shell/config/labels-annotations';\n\nexport const NAME = 'explorer';\n\nexport function init(store) {\n const {\n product,\n basicType,\n ignoreType,\n ignoreGroup,\n mapGroup,\n weightGroup,\n weightType,\n headers,\n virtualType,\n componentForType,\n configureType,\n setGroupDefaultType,\n } = DSL(store, NAME);\n\n product({\n removable: false,\n weight: 3,\n showNamespaceFilter: true,\n icon: 'compass',\n typeStoreMap: {\n [MANAGEMENT.PROJECT]: 'management',\n [MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING]: 'management',\n [MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING]: 'management',\n [NORMAN.CLUSTER_ROLE_TEMPLATE_BINDING]: 'rancher',\n [NORMAN.PROJECT_ROLE_TEMPLATE_BINDING]: 'rancher',\n [CAPI.RANCHER_CLUSTER]: 'management',\n }\n });\n\n basicType(['cluster-dashboard', 'cluster-tools']);\n basicType([\n 'cluster-dashboard',\n 'projects-namespaces',\n 'namespaces',\n NODE,\n VIRTUAL_TYPES.CLUSTER_MEMBERS,\n EVENT,\n 'c-cluster-explorer-tools'\n ], 'cluster');\n basicType([\n LIMIT_RANGE,\n NETWORK_POLICY,\n POD_DISRUPTION_BUDGET,\n RESOURCE_QUOTA,\n ], 'policy');\n\n basicType([\n SERVICE,\n INGRESS,\n HPA,\n ], 'serviceDiscovery');\n basicType([\n PV,\n PVC,\n STORAGE_CLASS,\n SECRET,\n CONFIG_MAP\n ], 'storage');\n basicType([\n WORKLOAD,\n WORKLOAD_TYPES.DEPLOYMENT,\n WORKLOAD_TYPES.DAEMON_SET,\n WORKLOAD_TYPES.STATEFUL_SET,\n WORKLOAD_TYPES.JOB,\n WORKLOAD_TYPES.CRON_JOB,\n POD,\n ], 'workload');\n\n weightGroup('cluster', 99, true);\n weightGroup('workload', 98, true);\n weightGroup('serviceDiscovery', 96, true);\n weightGroup('storage', 95, true);\n weightGroup('policy', 94, true);\n weightType(POD, -1, true);\n\n // here is where we define the usage of the WORKLOAD custom list view for\n // all the workload types (ex: deployments, cron jobs, daemonsets, etc)\n for (const key in WORKLOAD_TYPES) {\n componentForType(WORKLOAD_TYPES[key], WORKLOAD);\n }\n\n ignoreType(MANAGEMENT.GLOBAL_DNS_PROVIDER); // Old, managed in multi-cluster-apps\n ignoreType('events.k8s.io.event'); // Old, moved into core\n ignoreType('extensions.ingress'); // Old, moved into networking\n ignoreType(MANAGEMENT.PROJECT);\n ignoreType(NAMESPACE);\n ignoreType(MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING);\n ignoreType(MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING);\n\n ignoreGroup('harvesterhci.io', (getters) => {\n return getters['currentCluster']?.isHarvester && getters['isExplorer'];\n });\n ignoreGroup('kubevirt.io', (getters) => {\n return getters['currentCluster']?.isHarvester && getters['isExplorer'];\n });\n ignoreGroup('network.harvesterhci.io', (getters) => {\n return getters['currentCluster']?.isHarvester && getters['isExplorer'];\n });\n ignoreGroup('node.harvesterhci.io', (getters) => {\n return getters['currentCluster']?.isHarvester && getters['isExplorer'];\n });\n\n mapGroup(/^(core)?$/, 'core');\n mapGroup('apps', 'apps');\n mapGroup('batch', 'Batch');\n mapGroup('autoscaling', 'Autoscaling');\n mapGroup('policy', 'Policy');\n mapGroup('networking.k8s.io', 'Networking');\n mapGroup(/^(.+\\.)?api(server)?.*\\.k8s\\.io$/, 'API');\n mapGroup('rbac.authorization.k8s.io', 'RBAC');\n mapGroup('admissionregistration.k8s.io', 'admission');\n mapGroup('crd.projectcalico.org', 'Calico');\n mapGroup(/^(.+\\.)?cert-manager\\.(k8s\\.)?io$/, 'Cert Manager');\n mapGroup(/^(.+\\.)?(gateway|gloo)\\.solo\\.io$/, 'Gloo');\n mapGroup(/^(.*\\.)?monitoring\\.coreos\\.com$/, 'Monitoring');\n mapGroup(/^(.*\\.)?tekton\\.dev$/, 'Tekton');\n mapGroup(/^(.*\\.)?tigera\\.io$/, 'Tigera');\n mapGroup(/^(.*\\.)?longhorn(\\.rancher)?\\.io$/, 'Longhorn');\n mapGroup(/^(.*\\.)?(fleet|gitjob)\\.cattle\\.io$/, 'Fleet');\n mapGroup(/^(.*\\.)?(k3s)\\.cattle\\.io$/, 'K3s');\n mapGroup(/^(.*\\.)?(helm)\\.cattle\\.io$/, 'Helm');\n mapGroup(/^(.*\\.)?upgrade\\.cattle\\.io$/, 'Upgrade Controller');\n mapGroup(/^(.*\\.)?cis\\.cattle\\.io$/, 'CIS');\n mapGroup(/^(.*\\.)?traefik\\.containo\\.us$/, 'Træfik');\n mapGroup(/^(catalog|management|project|ui)\\.cattle\\.io$/, 'Rancher');\n mapGroup(/^(.*\\.)?istio\\.io$/, 'Istio');\n mapGroup('split.smi-spec.io', 'SMI');\n mapGroup(/^(.*\\.)*knative\\.(io|dev)$/, 'Knative');\n mapGroup('argoproj.io', 'Argo');\n mapGroup('logging.banzaicloud.io', 'Logging');\n mapGroup(/^(.*\\.)?resources\\.cattle\\.io$/, 'Backup-Restore');\n mapGroup(/^(.*\\.)?cluster\\.x-k8s\\.io$/, 'clusterProvisioning');\n mapGroup(/^(aks|eks|gke|rke|rke-machine-config|rke-machine|provisioning)\\.cattle\\.io$/, 'clusterProvisioning');\n\n const dePaginateBindings = configureConditionalDepaginate({ maxResourceCount: 5000 });\n const dePaginateNormanBindings = configureConditionalDepaginate({ maxResourceCount: 5000, isNorman: true }) ;\n\n configureType(NODE, { isCreatable: false, isEditable: true });\n configureType(WORKLOAD_TYPES.JOB, { isEditable: false, match: WORKLOAD_TYPES.JOB });\n configureType(MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING, { isEditable: false, depaginate: dePaginateBindings });\n configureType(MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING, { isEditable: false, depaginate: dePaginateBindings });\n configureType(MANAGEMENT.PROJECT, { displayName: store.getters['i18n/t']('namespace.project.label') });\n configureType(NORMAN.CLUSTER_ROLE_TEMPLATE_BINDING, { depaginate: dePaginateNormanBindings });\n configureType(NORMAN.PROJECT_ROLE_TEMPLATE_BINDING, { depaginate: dePaginateNormanBindings });\n configureType(SNAPSHOT, { depaginate: true });\n configureType(NORMAN.ETCD_BACKUP, { depaginate: true });\n\n configureType(EVENT, { limit: 500 });\n weightType(EVENT, -1, true);\n\n configureType(POD, {\n listGroups: [\n ...STEVE_LIST_GROUPS,\n // Allow Pods to be grouped by node\n {\n icon: 'icon-cluster',\n value: 'role',\n field: 'spec.nodeName',\n hideColumn: NODE_COL.name,\n groupLabelKey: 'groupByNode',\n tooltipKey: 'resourceTable.groupBy.node'\n }\n ],\n listGroupsWillOverride: true,\n });\n\n setGroupDefaultType('serviceDiscovery', SERVICE);\n\n configureType(WORKLOAD, {\n displayName: store.getters['i18n/t'](`typeLabel.${ WORKLOAD }`, { count: 1 }).trim(),\n location: {\n name: 'c-cluster-product-resource',\n params: { resource: WORKLOAD },\n },\n });\n\n /** This CRD is installed on provisioned clusters because rancher webhook, used for both local and provisioned clusters, expects it to be there\n * Creating instances of this resource on downstream clusters wont do anything - Only show them for the local cluster\n */\n configureType(MANAGEMENT.PSA, { localOnly: true });\n\n headers(PV,\n [STATE, NAME_COL, RECLAIM_POLICY, PERSISTENT_VOLUME_CLAIM, PERSISTENT_VOLUME_SOURCE, PV_REASON, AGE],\n [\n STEVE_STATE_COL,\n STEVE_NAME_COL,\n RECLAIM_POLICY,\n {\n ...PERSISTENT_VOLUME_CLAIM,\n sort: ['metadata.fields.5'],\n search: ['metadata.fields.5'],\n }, {\n ...PERSISTENT_VOLUME_SOURCE,\n sort: false,\n search: false,\n },\n PV_REASON,\n STEVE_AGE_COL,\n ]\n );\n\n headers(CONFIG_MAP,\n [NAME_COL, NAMESPACE_COL, KEYS, AGE],\n [\n STEVE_NAME_COL,\n STEVE_NAMESPACE_COL, {\n ...KEYS,\n sort: false,\n search: false,\n },\n STEVE_AGE_COL\n ]\n );\n\n headers(SECRET, [\n STATE,\n NAME_COL,\n NAMESPACE_COL,\n SUB_TYPE,\n SECRET_DATA,\n AGE\n ], [\n STEVE_STATE_COL,\n STEVE_NAME_COL,\n STEVE_NAMESPACE_COL, {\n ...SUB_TYPE,\n value: 'metadata.fields.1',\n sort: 'metadata.fields.1',\n search: 'metadata.fields.1',\n }, {\n ...SECRET_DATA,\n sort: false,\n search: false,\n },\n STEVE_AGE_COL\n ]);\n\n headers(INGRESS,\n [STATE, NAME_COL, NAMESPACE_COL, INGRESS_TARGET, INGRESS_DEFAULT_BACKEND, INGRESS_CLASS, AGE],\n [\n STEVE_STATE_COL,\n STEVE_NAME_COL,\n STEVE_NAMESPACE_COL,\n {\n ...INGRESS_TARGET,\n sort: 'spec.rules[0].host', // Pending API support https://github.com/rancher/rancher/issues/48473 (index fields)\n search: false, // This is broken in normal world, so disable here\n },\n {\n ...INGRESS_DEFAULT_BACKEND,\n sort: false,\n search: false,\n },\n {\n ...INGRESS_CLASS,\n sort: 'spec.ingressClassName',\n search: 'spec.ingressClassName', // Pending API support (blocked https://github.com/rancher/rancher/issues/48473 (index fields)\n },\n STEVE_AGE_COL\n ]\n );\n\n headers(SERVICE,\n [STATE, NAME_COL, NAMESPACE_COL, TARGET_PORT, SELECTOR, SPEC_TYPE, AGE],\n [\n STEVE_STATE_COL,\n STEVE_NAME_COL,\n STEVE_NAMESPACE_COL,\n TARGET_PORT,\n {\n // Selector is an object. This is broken in non-SSP world anyway (won't sort on object, filtering on `$[x][y]` paths are broken )\n ...SELECTOR,\n sort: false,\n search: false,\n },\n {\n ...SPEC_TYPE,\n sort: false, // ['spec.type', 'spec.clusterIP'] Pending API support (blocked https://github.com/rancher/rancher/issues/48473 (index fields)\n search: 'spec.type',\n },\n STEVE_AGE_COL\n ]\n );\n\n headers(EVENT,\n [STATE, EVENT_LAST_SEEN_TIME, EVENT_TYPE, REASON, OBJECT, 'Subobject', 'Source', MESSAGE, 'First Seen', 'Count', NAME_COL, NAMESPACE_COL],\n [\n STEVE_STATE_COL,\n STEVE_EVENT_LAST_SEEN,\n STEVE_EVENT_TYPE,\n REASON,\n STEVE_EVENT_OBJECT,\n 'Subobject',\n 'Source',\n MESSAGE,\n 'First Seen',\n 'Count',\n STEVE_NAME_COL,\n STEVE_NAMESPACE_COL,\n ]\n );\n headers(HPA,\n [STATE, NAME_COL, NAMESPACE_COL, HPA_REFERENCE, MIN_REPLICA, MAX_REPLICA, CURRENT_REPLICA, AGE],\n [\n STEVE_STATE_COL,\n STEVE_NAME_COL,\n STEVE_NAMESPACE_COL,\n HPA_REFERENCE, // Pending API support https://github.com/rancher/rancher/issues/48479 (hpa filtering)\n MIN_REPLICA, // Pending API support https://github.com/rancher/rancher/issues/48479 (hpa filtering)\n MAX_REPLICA, // Pending API support https://github.com/rancher/rancher/issues/48479 (hpa filtering)\n CURRENT_REPLICA, // Pending API support https://github.com/rancher/rancher/issues/48479 (hpa filtering)\n STEVE_AGE_COL\n ]\n );\n\n const STEVE_WORKLOAD_ENDPOINTS = {\n ...WORKLOAD_ENDPOINTS,\n sort: [`metadata.annotations[${ CATTLE_PUBLIC_ENDPOINTS }]`],\n search: [`metadata.annotations[${ CATTLE_PUBLIC_ENDPOINTS }]`],\n };\n\n const createSteveWorkloadImageCol = (resourceFieldPos) => ({\n ...WORKLOAD_IMAGES,\n sort: `metadata.fields.${ resourceFieldPos }`,\n search: `metadata.fields.${ resourceFieldPos }`,\n });\n\n headers(WORKLOAD, [STATE, NAME_COL, NAMESPACE_COL, TYPE, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE]);\n headers(WORKLOAD_TYPES.DEPLOYMENT,\n [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Ready', 'Up-to-date', 'Available', POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE],\n [STEVE_STATE_COL, STEVE_NAME_COL, STEVE_NAMESPACE_COL, createSteveWorkloadImageCol(6), STEVE_WORKLOAD_ENDPOINTS, 'Ready', 'Up-to-date', 'Available', STEVE_AGE_COL],\n );\n headers(WORKLOAD_TYPES.DAEMON_SET,\n [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Ready', 'Current', 'Desired', POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE],\n [STEVE_STATE_COL, STEVE_NAME_COL, STEVE_NAMESPACE_COL, createSteveWorkloadImageCol(9), STEVE_WORKLOAD_ENDPOINTS, 'Ready', 'Current', 'Desired', STEVE_AGE_COL]\n );\n headers(WORKLOAD_TYPES.REPLICA_SET,\n [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Ready', 'Current', 'Desired', POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE],\n [STEVE_STATE_COL, STEVE_NAME_COL, STEVE_NAMESPACE_COL, createSteveWorkloadImageCol(6), STEVE_WORKLOAD_ENDPOINTS, 'Ready', 'Current', 'Desired', STEVE_AGE_COL],\n );\n headers(WORKLOAD_TYPES.STATEFUL_SET,\n [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Ready', POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE],\n [STEVE_STATE_COL, STEVE_NAME_COL, STEVE_NAMESPACE_COL, createSteveWorkloadImageCol(4), STEVE_WORKLOAD_ENDPOINTS, 'Ready', STEVE_AGE_COL],\n );\n headers(WORKLOAD_TYPES.JOB,\n [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Completions', DURATION, POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE],\n [STEVE_STATE_COL, STEVE_NAME_COL, STEVE_NAMESPACE_COL, createSteveWorkloadImageCol(6), STEVE_WORKLOAD_ENDPOINTS, 'Completions', {\n ...DURATION,\n value: 'metadata.fields.3',\n sort: false,\n search: 'metadata.fields.3',\n formatter: undefined, // Now that sort/search is remote we're not doing weird things with start time (see `duration` in model)\n }, STEVE_AGE_COL],\n );\n headers(WORKLOAD_TYPES.CRON_JOB,\n [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Schedule', 'Last Schedule', POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE],\n [STEVE_STATE_COL, STEVE_NAME_COL, STEVE_NAMESPACE_COL, createSteveWorkloadImageCol(8), STEVE_WORKLOAD_ENDPOINTS, 'Schedule', 'Last Schedule', STEVE_AGE_COL]\n );\n headers(WORKLOAD_TYPES.REPLICATION_CONTROLLER,\n [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Ready', 'Current', 'Desired', POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE],\n [STEVE_STATE_COL, STEVE_NAME_COL, STEVE_NAMESPACE_COL, createSteveWorkloadImageCol(6), STEVE_WORKLOAD_ENDPOINTS, 'Ready', 'Current', 'Desired', STEVE_AGE_COL],\n );\n\n headers(POD,\n [STATE, NAME_COL, NAMESPACE_COL, POD_IMAGES, 'Ready', 'Restarts', 'IP', NODE_COL, AGE],\n [\n STEVE_STATE_COL,\n STEVE_NAME_COL,\n STEVE_NAMESPACE_COL, {\n ...POD_IMAGES,\n sort: false,\n search: 'spec.containers.image'\n }, 'Ready', 'Restarts', 'IP', {\n ...NODE_COL,\n search: 'spec.nodeName'\n },\n STEVE_AGE_COL\n ]\n );\n\n headers(NODE,\n [\n STATE,\n NAME_COL,\n ROLES,\n VERSION,\n INTERNAL_EXTERNAL_IP,\n {\n ...KUBE_NODE_OS,\n breakpoint: COLUMN_BREAKPOINTS.LAPTOP,\n getValue: (row) => row.status?.nodeInfo?.operatingSystem\n },\n {\n ...CPU,\n breakpoint: COLUMN_BREAKPOINTS.LAPTOP,\n getValue: (row) => row.cpuUsagePercentage\n }, {\n ...RAM,\n breakpoint: COLUMN_BREAKPOINTS.LAPTOP,\n getValue: (row) => row.ramUsagePercentage\n },\n AGE\n ],\n [\n STEVE_STATE_COL,\n STEVE_NAME_COL,\n {\n ...ROLES,\n sort: false,\n search: false\n },\n {\n ...VERSION,\n value: 'status.nodeInfo.kubeletVersion',\n getValue: undefined,\n sort: ['status.nodeInfo.kubeletVersion'],\n search: 'status.nodeInfo.kubeletVersion'\n }, {\n ...INTERNAL_EXTERNAL_IP,\n sort: false,\n search: false,\n }, {\n ...KUBE_NODE_OS,\n breakpoint: COLUMN_BREAKPOINTS.LAPTOP,\n getValue: undefined\n }, {\n ...CPU,\n breakpoint: COLUMN_BREAKPOINTS.LAPTOP,\n getValue: (row) => row.cpuUsagePercentage,\n sort: false,\n search: false,\n }, {\n ...RAM,\n breakpoint: COLUMN_BREAKPOINTS.LAPTOP,\n sort: false,\n search: false,\n },\n STEVE_AGE_COL\n ]\n );\n\n headers(MANAGEMENT.PSA, [STATE, NAME_COL, {\n ...DESCRIPTION,\n width: undefined\n }, AGE]);\n\n headers(STORAGE_CLASS,\n [STATE, NAME_COL, STORAGE_CLASS_PROVISIONER, STORAGE_CLASS_DEFAULT, AGE],\n [\n STEVE_STATE_COL,\n STEVE_NAME_COL,\n {\n ...STORAGE_CLASS_PROVISIONER,\n sort: ['provisioner'],\n search: ['provisioner']\n },\n {\n ...STORAGE_CLASS_DEFAULT,\n sort: false, // [`metadata.annotations[${ STORAGE.DEFAULT_STORAGE_CLASS }]`], // Pending API Support - https://github.com/rancher/rancher/issues/48453\n search: false, // [`metadata.annotations[${ STORAGE.DEFAULT_STORAGE_CLASS }]`], // Pending API Support - https://github.com/rancher/rancher/issues/48453\n },\n STEVE_AGE_COL\n ]\n );\n\n configureType(MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING, {\n listGroups: [\n {\n icon: 'icon-role-binding',\n value: 'node',\n field: 'roleDisplay',\n hideColumn: ROLE.name,\n tooltipKey: 'resourceTable.groupBy.role'\n }\n ]\n });\n\n headers(MANAGEMENT.USER, [\n USER_STATE,\n USER_ID,\n USER_DISPLAY_NAME,\n USER_PROVIDER,\n USERNAME,\n USER_LAST_LOGIN,\n USER_DISABLED_IN,\n USER_DELETED_IN,\n AGE\n ]);\n\n headers(NORMAN.TOKEN, [\n EXPIRY_STATE,\n ACCESS_KEY,\n DESCRIPTION,\n SCOPE_NORMAN,\n LAST_USED,\n EXPIRES,\n AGE_NORMAN\n ]);\n\n virtualType({\n label: store.getters['i18n/t']('clusterIndexPage.header'),\n group: 'Root',\n namespaced: false,\n name: 'cluster-dashboard',\n weight: 100,\n route: { name: 'c-cluster-explorer' },\n exact: true,\n overview: true,\n });\n\n virtualType({\n labelKey: 'members.clusterAndProject',\n group: 'cluster',\n namespaced: false,\n name: VIRTUAL_TYPES.CLUSTER_MEMBERS,\n icon: 'globe',\n weight: -1,\n route: { name: 'c-cluster-product-members' },\n exact: false,\n 'exact-path': true,\n ifHaveType: {\n type: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING,\n store: 'management'\n }\n });\n\n virtualType({\n label: store.getters['i18n/t'](`typeLabel.${ WORKLOAD }`, { count: 2 }),\n group: store.getters['i18n/t'](`typeLabel.${ WORKLOAD }`, { count: 2 }),\n namespaced: true,\n name: WORKLOAD,\n weight: 99,\n icon: 'folder',\n // Workloads fetch ALL resources of ALL resource types... which scales badly. Until this is replaced by an overview page disable entirely\n ifFeature: `!${ STEVE_CACHE }`,\n ifHaveSubTypes: Object.values(WORKLOAD_TYPES),\n route: {\n name: 'c-cluster-product-resource',\n params: { resource: WORKLOAD }\n },\n overview: true,\n });\n\n virtualType({\n labelKey: 'projectNamespaces.label',\n group: 'cluster',\n icon: 'globe',\n namespaced: false,\n ifRancherCluster: true,\n name: VIRTUAL_TYPES.PROJECT_NAMESPACES,\n weight: 98,\n route: { name: 'c-cluster-product-projectsnamespaces' },\n exact: true,\n });\n\n virtualType({\n labelKey: 'nav.tools',\n group: 'cluster',\n icon: 'globe',\n namespaced: false,\n name: 'c-cluster-explorer-tools',\n weight: -2,\n route: { name: 'c-cluster-explorer-tools' },\n exact: true,\n ifHaveType: [CATALOG.CLUSTER_REPO, CATALOG.APP],\n });\n\n virtualType({\n label: store.getters['i18n/t'](`typeLabel.${ NAMESPACE }`, { count: 2 }),\n group: 'cluster',\n icon: 'globe',\n namespaced: false,\n ifRancherCluster: false,\n name: VIRTUAL_TYPES.NAMESPACES,\n weight: 98,\n route: { name: 'c-cluster-product-namespaces' },\n exact: true,\n });\n\n // Ignore these types as they are managed through the settings product\n ignoreType(MANAGEMENT.FEATURE);\n ignoreType(MANAGEMENT.SETTING);\n\n // Don't show Tokens/API Keys in the side navigation\n ignoreType(MANAGEMENT.TOKEN);\n ignoreType(NORMAN.TOKEN);\n\n // Ignore these types as they are managed through the auth product\n ignoreType(MANAGEMENT.USER);\n ignoreType(MANAGEMENT.GLOBAL_ROLE);\n ignoreType(MANAGEMENT.ROLE_TEMPLATE);\n}\n","import { AGE, NAME as NAME_COL, STATE } from '@shell/config/table-headers';\nimport {\n CAPI,\n CATALOG,\n NORMAN,\n HCI,\n MANAGEMENT,\n SNAPSHOT,\n VIRTUAL_TYPES\n} from '@shell/config/types';\nimport { MULTI_CLUSTER, RKE1_UI } from '@shell/store/features';\nimport { DSL } from '@shell/store/type-map';\nimport { BLANK_CLUSTER } from '@shell/store/store-types.js';\n\nexport const NAME = 'manager';\n\nexport function init(store) {\n const {\n product,\n basicType,\n headers,\n configureType,\n virtualType,\n weightType,\n weightGroup\n } = DSL(store, NAME);\n\n product({\n ifHaveType: CAPI.RANCHER_CLUSTER,\n ifFeature: MULTI_CLUSTER,\n inStore: 'management',\n icon: 'cluster-management',\n removable: false,\n showClusterSwitcher: false,\n weight: -1, // Place at the top\n to: {\n name: 'c-cluster-product-resource',\n params: {\n cluster: BLANK_CLUSTER,\n product: NAME,\n resource: CAPI.RANCHER_CLUSTER\n }\n },\n typeStoreMap: {\n [NORMAN.CLOUD_CREDENTIAL]: 'rancher',\n cloudCredential: 'rancher',\n [NORMAN.KONTAINER_DRIVER]: 'rancher',\n [NORMAN.NODE_DRIVER]: 'rancher',\n [VIRTUAL_TYPES.JWT_AUTHENTICATION]: 'management',\n }\n });\n\n virtualType({\n name: 'cloud-credentials',\n labelKey: 'manager.cloudCredentials.label',\n group: 'Root',\n namespaced: false,\n icon: 'globe',\n weight: 99,\n route: { name: 'c-cluster-manager-cloudCredential' },\n });\n\n basicType([\n CAPI.RANCHER_CLUSTER,\n 'cloud-credentials',\n 'drivers',\n ]);\n\n configureType(SNAPSHOT, { depaginate: true });\n configureType(NORMAN.ETCD_BACKUP, { depaginate: true });\n\n configureType(CAPI.RANCHER_CLUSTER, {\n showListMasthead: false, namespaced: false, alias: [HCI.CLUSTER]\n });\n // configureType(NORMAN.CLOUD_CREDENTIAL, { showListMasthead: false, namespaced: false });\n weightType(CAPI.RANCHER_CLUSTER, 100, true);\n weightType('cloud-credentials', 99, true);\n weightType('drivers', 98, true);\n weightType(CATALOG.CLUSTER_REPO, 97, true);\n\n configureType(NORMAN.CLOUD_CREDENTIAL, {\n showState: false, showAge: false, canYaml: false\n });\n\n virtualType({\n labelKey: 'drivers.kontainer.title',\n name: 'rke-kontainer-drivers',\n group: 'Root',\n namespaced: false,\n icon: 'globe',\n route: { name: 'c-cluster-manager-driver-kontainerdriver' },\n exact: true\n });\n virtualType({\n labelKey: 'drivers.node.title',\n name: 'rke-node-drivers',\n group: 'Root',\n namespaced: false,\n icon: 'globe',\n route: { name: 'c-cluster-manager-driver-nodedriver' },\n exact: true\n });\n\n virtualType({\n ifFeature: RKE1_UI,\n labelKey: 'manager.rkeTemplates.label',\n name: 'rke-templates',\n group: 'Root',\n namespaced: false,\n icon: 'globe',\n route: { name: 'c-cluster-manager-pages-page', params: { cluster: 'local', page: 'rke-templates' } },\n exact: true\n });\n\n virtualType({\n ifFeature: RKE1_UI,\n labelKey: 'manager.nodeTemplates.label',\n name: 'rke-node-templates',\n group: 'Root',\n namespaced: false,\n icon: 'globe',\n route: { name: 'c-cluster-manager-pages-page', params: { cluster: 'local', page: 'node-templates' } },\n exact: true\n });\n\n virtualType({\n ifHaveType: MANAGEMENT.CLUSTER_PROXY_CONFIG,\n labelKey: 'manager.jwtAuthentication.label',\n name: VIRTUAL_TYPES.JWT_AUTHENTICATION,\n group: 'Root',\n namespaced: false,\n icon: 'globe',\n route: { name: 'c-cluster-manager-jwt-authentication' },\n exact: true\n });\n\n basicType([\n 'rke-kontainer-drivers',\n 'rke-node-drivers',\n ], 'drivers');\n\n basicType([\n 'rke-templates',\n 'rke-node-templates'\n ], 'RKE1Configuration');\n\n weightType(CAPI.MACHINE_DEPLOYMENT, 4, true);\n weightType(CAPI.MACHINE_SET, 3, true);\n weightType(CAPI.MACHINE, 2, true);\n weightType(CATALOG.CLUSTER_REPO, 1, true);\n weightType(MANAGEMENT.PSA, 5, true);\n weightType(VIRTUAL_TYPES.JWT_AUTHENTICATION, 0, true);\n\n basicType([\n CAPI.MACHINE_DEPLOYMENT,\n CAPI.MACHINE_SET,\n CAPI.MACHINE,\n CATALOG.CLUSTER_REPO,\n MANAGEMENT.PSA,\n VIRTUAL_TYPES.JWT_AUTHENTICATION\n ], 'advanced');\n\n weightGroup('advanced', -1, true);\n\n const MACHINE_SUMMARY = {\n name: 'summary',\n labelKey: 'tableHeaders.machines',\n sort: false,\n search: false,\n formatter: 'MachineSummaryGraph',\n align: 'center',\n width: 100,\n };\n\n headers(CAPI.RANCHER_CLUSTER, [\n STATE,\n {\n name: 'name',\n labelKey: 'tableHeaders.name',\n value: 'nameDisplay',\n sort: ['nameSort'],\n formatter: 'ClusterLink',\n canBeVariable: true,\n },\n {\n name: 'kubernetesVersion',\n labelKey: 'tableHeaders.version',\n subLabel: 'Architecture',\n value: 'kubernetesVersion',\n sort: 'kubernetesVersion',\n search: 'kubernetesVersion',\n },\n {\n name: 'provider',\n labelKey: 'tableHeaders.provider',\n subLabel: 'Distro',\n value: 'machineProvider',\n sort: ['machineProvider', 'provisioner'],\n formatter: 'ClusterProvider',\n },\n MACHINE_SUMMARY,\n AGE,\n {\n name: 'explorer',\n label: ' ',\n align: 'right',\n width: 65,\n },\n ]);\n\n headers(CAPI.MACHINE_DEPLOYMENT, [\n STATE,\n NAME_COL,\n MACHINE_SUMMARY,\n AGE\n ]);\n}\n","// Debugging\nexport const SPA = 'spa';\n\n// Login/Initial setup\nexport const LOCAL = 'local';\nexport const SETUP = 'setup';\nexport const STEP = 'step';\nexport const LOGGED_OUT = 'logged-out';\nexport const IS_SSO = 'is-sso';\nexport const IS_SLO = 'is-slo';\nexport const UPGRADED = 'upgraded';\nexport const TIMED_OUT = 'timed-out';\nexport const AUTH_TEST = 'test';\nexport const BACK_TO = 'back-to';\nexport const GITHUB_CODE = 'code';\nexport const GITHUB_NONCE = 'state';\nexport const GITHUB_SCOPE = 'scope';\nexport const GITHUB_REDIRECT = 'redirect_uri';\n\n// General\nexport const _FLAGGED = null; // The value for a key-only flag, like `?desc`\nexport const _UNFLAG = undefined; // The value to remove a query param\n\n// SortableTable\nexport const SEARCH_QUERY = 'q';\nexport const SORT_BY = 'sort';\nexport const DESCENDING = 'desc';\nexport const PAGE = 'page';\n\n// ResourceDetail/Yaml\nexport const MODE = 'mode';\nexport const _CREATE = 'create';\nexport const _VIEW = 'view';\nexport const _EDIT = 'edit';\nexport const _LIST = 'list';\nexport const _CLONE = 'clone';\nexport const _STAGE = 'stage';\nexport const _IMPORT = 'import';\n\nexport const AS = 'as';\nexport const _DETAIL = 'detail';\nexport const _CONFIG = 'config';\nexport const _YAML = 'yaml';\nexport const _GRAPH = 'graph';\nexport const FOCUS = 'focus';\n\nexport const PREVIEW = 'preview';\n\nexport const DIFF = 'diff';\nexport const _UNIFIED = 'unified';\nexport const _SPLIT = 'split';\n\n// CruResource\nexport const SUB_TYPE = 'type';\nexport const RKE_TYPE = 'rkeType';\n\n// App launch\nexport const REPO_TYPE = 'repo-type';\nexport const REPO = 'repo';\nexport const CHART = 'chart';\nexport const VERSION = 'version';\nexport const NAME = 'name';\nexport const NAMESPACE = 'namespace';\nexport const DESCRIPTION = 'description';\nexport const CATEGORY = 'category';\nexport const OPERATING_SYSTEM = 'os';\nexport const DEPRECATED = 'deprecated';\nexport const HIDDEN = 'hidden';\nexport const FROM_TOOLS = 'tools';\nexport const FROM_CLUSTER = 'cluster';\nexport const HIDE_SIDE_NAV = 'hide-side-nav';\n\n// Cluster provisioning\nexport const PROVIDER = 'provider';\nexport const CLOUD_CREDENTIAL = 'cloud';\n\n// NAMESPACE/PROJECT\nexport const PROJECT_ID = 'projectId';\nexport const FLAT_VIEW = 'flatView';\n","// These are used to determine what is considered a User vs System namespace in the namespace picker,\n// along with the `isSystem` property of the project associated with the namespace, if in Rancher mode.\nexport default [\n 'cattle-dashboards',\n 'cattle-global-data',\n 'cattle-system',\n 'gatekeeper-system',\n 'ingress-nginx',\n 'kube-node-lease',\n 'kube-public',\n 'kube-system',\n 'linkerd',\n 'security-scan',\n 'tekton-pipelines',\n 'cis-operator-system',\n 'istio-system',\n 'longhorn-system',\n];\n","import { CATTLE_PUBLIC_ENDPOINTS } from '@shell/config/labels-annotations';\nimport { NODE as NODE_TYPE } from '@shell/config/types';\nimport { COLUMN_BREAKPOINTS } from '@shell/types/store/type-map';\n\n// Note: 'id' is always the last sort, so you don't have to specify it here.\n\nexport const STATE = {\n name: 'state',\n labelKey: 'tableHeaders.state',\n sort: ['stateSort', 'nameSort'],\n value: 'stateDisplay',\n getValue: (row) => row.stateDisplay,\n width: 100,\n default: 'unknown',\n formatter: 'BadgeStateFormatter',\n};\n\nexport const USER_STATE = {\n name: 'user-state',\n labelKey: 'tableHeaders.userState',\n sort: ['stateSort', 'nameSort'],\n value: 'stateDisplay',\n getValue: (row) => row.stateDisplay,\n width: 72,\n default: 'unknown',\n formatter: 'BadgeStateFormatter',\n};\n\nexport const DOWNLOAD = {\n name: 'download',\n labelKey: 'tableHeaders.download',\n value: 'download',\n canBeVariable: true,\n align: 'right',\n};\n\n// This header is used for nodes in\n// both Cluster Explorer and Cluster Management.\nexport const INTERNAL_EXTERNAL_IP = {\n // @TODO this is called internal/external but displays external/internal (╯°□°)╯︵ ┻━┻\n name: 'internal-external-ip',\n labelKey: 'tableHeaders.internalExternalIp',\n search: ['externalIp', 'internalIp'],\n sort: ['externalIp', 'internalIp'],\n formatter: 'InternalExternalIP'\n};\n\nexport const NAME = {\n name: 'name',\n labelKey: 'tableHeaders.name',\n value: 'nameDisplay',\n getValue: (row) => row.nameDisplay,\n sort: ['nameSort'],\n formatter: 'LinkDetail',\n canBeVariable: true,\n};\n\nexport const LOGGING_OUTPUT_PROVIDERS = {\n name: 'logging-output-providers',\n labelKey: 'tableHeaders.loggingOutputProviders',\n value: 'providersDisplay',\n sort: ['providersSortable'],\n formatter: 'List',\n};\n\nexport const SIMPLE_NAME = {\n name: 'name',\n labelKey: 'tableHeaders.simpleName',\n value: 'name',\n sort: ['name'],\n width: 200,\n canBeVariable: true,\n};\n\nexport const EFFECT = {\n name: 'effect',\n labelKey: 'tableHeaders.effect',\n value: 'effect',\n sort: ['effect'],\n};\n\nexport const STORAGE_CLASS_PROVISIONER = {\n name: 'storage_class_provisioner',\n labelKey: 'tableHeaders.storage_class_provisioner',\n value: 'provisionerListDisplay',\n sort: ['provisioner'],\n};\n\nexport const STORAGE_CLASS_DEFAULT = {\n name: 'storage_class_default',\n labelKey: 'tableHeaders.default',\n value: 'isDefault',\n sort: ['isDefault'],\n formatter: 'Checked',\n};\n\n/**\n * spec.csi.driver OR spec[known driver type]\n */\nexport const PERSISTENT_VOLUME_SOURCE = {\n name: 'persistent_volume_source',\n labelKey: 'tableHeaders.persistentVolumeSource',\n value: 'source',\n sort: ['provisioner'],\n};\n\n/**\n * Link to the PVC associated with PV\n */\nexport const PERSISTENT_VOLUME_CLAIM = {\n name: 'persistent-volume-claim',\n labelKey: 'tableHeaders.persistentVolumeClaim',\n sort: ['claimName'],\n value: 'claimName',\n formatter: 'LinkDetail',\n formatterOpts: { reference: 'claim.detailLocation' }\n};\n\nexport const OUTPUT = {\n name: 'localOutputRefs',\n labelKey: 'tableHeaders.output',\n value: 'outputs',\n sort: ['outputsSortable'],\n formatter: 'ListLink',\n formatterOpts: { options: { internal: true } },\n};\n\nexport const CONFIGURED_PROVIDERS = {\n name: 'providers',\n labelKey: 'tableHeaders.providers',\n value: 'providersDisplay',\n sort: 'providersSortable',\n formatter: 'List'\n};\n\nexport const CLUSTER_OUTPUT = {\n ...OUTPUT,\n name: 'globalOutputRefs',\n value: 'clusterOutputs',\n sort: ['clusterOutputsSortable'],\n labelKey: 'tableHeaders.clusterOutput',\n};\n\nexport const ID_UNLINKED = {\n name: 'id',\n labelKey: 'tableHeaders.id',\n value: 'id',\n sort: ['id'],\n canBeVariable: true,\n};\n\nexport const NAME_UNLINKED = {\n name: 'name',\n labelKey: 'tableHeaders.nameUnlinked',\n value: 'nameDisplay',\n sort: ['nameSort'],\n canBeVariable: true,\n};\n\nexport const NAMESPACE = {\n name: 'namespace',\n labelKey: 'tableHeaders.namespace',\n value: 'namespace',\n getValue: (row) => row.namespace,\n sort: 'namespace',\n dashIfEmpty: true,\n};\n\nexport const NODE = {\n name: 'node',\n labelKey: 'tableHeaders.node',\n value: 'spec.nodeName',\n getValue: (row) => row.spec?.nodeName,\n sort: 'spec.nodeName',\n formatter: 'LinkName',\n formatterOpts: { type: NODE_TYPE },\n};\n\nexport const NODE_NAME = {\n name: 'nodeName',\n labelKey: 'tableHeaders.nodeName',\n sort: 'name',\n value: 'name',\n getValue: (row) => row.name,\n formatter: 'LinkDetail',\n};\n\nexport const ROLES = {\n name: 'roles',\n labelKey: 'tableHeaders.roles',\n sort: 'roles',\n value: 'roles'\n};\n\nexport const VERSION = {\n name: 'version',\n labelKey: 'tableHeaders.version',\n sort: 'version',\n value: 'version',\n getValue: (row) => row.version\n};\n\nexport const CPU = {\n name: 'cpu',\n labelKey: 'tableHeaders.cpu',\n sort: 'cpuUsage',\n search: false,\n value: 'cpuUsagePercentage',\n formatter: 'PercentageBar',\n width: 120,\n};\n\nexport const RAM = {\n name: 'ram',\n labelKey: 'tableHeaders.ram',\n sort: 'ramUsage',\n search: false,\n value: 'ramUsagePercentage',\n formatter: 'PercentageBar',\n width: 120,\n};\n\nexport const PRINCIPAL = {\n name: 'principal',\n labelKey: 'tableHeaders.name',\n sort: 'principal.loginName',\n value: 'principalId',\n formatter: 'Principal',\n};\n\nexport const PODS = {\n name: 'pods',\n labelKey: 'tableHeaders.pods',\n sort: 'podConsumed',\n search: false,\n value: (row) => row.podConsumedUsage,\n formatter: 'PercentageBar',\n width: 120,\n};\n\nexport const AGE = {\n name: 'age',\n labelKey: 'tableHeaders.age',\n value: 'creationTimestamp',\n getValue: (row) => row.creationTimestamp,\n sort: 'creationTimestamp:desc',\n search: false,\n formatter: 'LiveDate',\n width: 100,\n align: 'left'\n};\n\nexport const AGE_NORMAN = {\n ...AGE,\n getValue: (row) => row.created,\n value: 'created',\n sort: 'created:desc',\n};\n\nexport const CREATION_DATE = {\n name: 'date',\n labelKey: 'tableHeaders.date',\n value: 'metadata.creationTimestamp',\n sort: ['date'],\n formatter: 'Date'\n};\n\nexport const DESCRIPTION = {\n name: 'description',\n labelKey: 'tableHeaders.description',\n align: 'left',\n sort: ['description'],\n width: 300,\n};\n\nexport const NS_SNAPSHOT_QUOTA = {\n name: 'NamespaceSnapshotQuota',\n labelKey: 'harvester.tableHeaders.totalSnapshotQuota',\n value: 'snapshotSizeQuota',\n sort: 'snapshotSizeQuota',\n align: 'center',\n formatter: 'Si',\n formatterOpts: {\n opts: {\n increment: 1024, addSuffix: true, suffix: 'i',\n },\n needParseSi: false\n },\n};\n\nexport const DURATION = {\n name: 'duration',\n labelKey: 'tableHeaders.duration',\n value: 'duration.value',\n sort: 'duration.seconds',\n formatter: 'LiveDuration',\n};\n\nexport const IMAGE_NAME = {\n name: 'image',\n labelKey: 'tableHeaders.image',\n value: 'image',\n sort: ['image', 'nameSort'],\n formatter: 'ImageName',\n};\n\nexport const POD_IMAGES = {\n name: 'pod_images',\n labelKey: 'tableHeaders.podImages',\n value: 'imageNames',\n getValue: (row) => row.imageNames,\n sort: 'imageNames',\n // search: 'imageNames',\n formatter: 'PodImages'\n};\n\nexport const POD_RESTARTS = {\n name: 'pod_restarts',\n labelKey: 'tableHeaders.podRestarts',\n formatter: 'LivePodRestarts',\n delayLoading: true,\n value: 'restartCount',\n getValue: (row) => row.restartCount,\n // This column is expensive to compute, so don't make it searchable\n search: false,\n liveUpdates: true\n};\n\nexport const SCALE = {\n name: 'scale',\n labelKey: 'tableHeaders.scale',\n value: 'scales.desired',\n sort: ['scales.desired', 'nameSort'],\n formatter: 'Scale',\n width: 60,\n align: 'center',\n};\n\nexport const SIMPLE_SCALE = {\n name: 'simple-scale',\n labelKey: 'tableHeaders.simpleScale',\n value: 'scale',\n sort: ['scale']\n};\n\nexport const SUCCESS = {\n name: 'success',\n labelKey: 'tableHeaders.success',\n value: 'success',\n width: 100,\n align: 'right',\n};\n\nexport const REQ_RATE = {\n name: 'req-rate',\n labelKey: 'tableHeaders.reqRate',\n value: 'rps',\n width: 100,\n align: 'right',\n};\n\nexport const P95 = {\n name: 'p95',\n labelKey: 'tableHeaders.p95',\n value: 'p95',\n width: 100,\n align: 'right',\n};\n\nexport const KEYS = {\n name: 'keys',\n labelKey: 'tableHeaders.keys',\n sort: false,\n value: 'keysDisplay',\n};\n\nexport const SECRET_DATA = {\n name: 'data',\n labelKey: 'tableHeaders.data',\n value: 'dataPreview',\n formatter: 'SecretData'\n};\n\nexport const TARGET_KIND = {\n name: 'target-kind',\n labelKey: 'tableHeaders.targetKind',\n value: 'kindDisplay',\n width: 100,\n};\n\nexport const TARGET = {\n name: 'target',\n labelKey: 'tableHeaders.target',\n value: 'targetDisplay',\n};\n\nexport const USERNAME = {\n name: 'username',\n labelKey: 'tableHeaders.username',\n value: 'username',\n dashIfEmpty: true,\n sort: 'username',\n};\n\nexport const USER_DISPLAY_NAME = {\n name: 'name',\n labelKey: 'tableHeaders.name',\n value: 'nameDisplay',\n sort: ['nameSort'],\n dashIfEmpty: true,\n};\n\nexport const USER_PROVIDER = {\n name: 'provider',\n labelKey: 'tableHeaders.provider',\n value: 'providerDisplay',\n dashIfEmpty: true,\n sort: 'providerDisplay',\n};\n\nexport const USER_LAST_LOGIN = {\n name: 'user-last-login',\n labelKey: 'tableHeaders.userLastLogin',\n value: 'userLastLogin',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n sort: 'userLastLogin',\n};\n\nexport const USER_DISABLED_IN = {\n name: 'user-disabled-in',\n labelKey: 'tableHeaders.userDisabledIn',\n value: 'userDisabledInDisplay',\n formatter: 'LiveDate',\n formatterOpts: { isCountdown: true },\n sort: 'userDisabledIn',\n};\n\nexport const USER_DELETED_IN = {\n name: 'user-deleted-in',\n labelKey: 'tableHeaders.userDeletedIn',\n value: 'userDeletedIn',\n formatter: 'LiveDate',\n formatterOpts: { isCountdown: true },\n sort: 'userDeletedIn',\n};\n\nexport const USER_ID = {\n name: 'user-id',\n labelKey: 'tableHeaders.userId',\n value: 'id',\n formatter: 'LinkDetail',\n canBeVariable: true,\n sort: 'id',\n};\n\nexport const ADDRESS = {\n name: 'address',\n labelKey: 'tableHeaders.address',\n value: 'address',\n sort: ['address'],\n};\n\nexport const SIMPLE_TYPE = {\n name: 'type',\n labelKey: 'tableHeaders.simpleType',\n value: 'type',\n sort: ['type'],\n width: 175,\n};\n\nexport const IMAGE_SIZE = {\n name: 'sizeBytes',\n labelKey: 'tableHeaders.imageSize',\n value: 'sizeBytes',\n sort: ['sizeBytes'],\n formatter: 'Si'\n};\n\nexport const TYPE = {\n name: 'type',\n labelKey: 'tableHeaders.type',\n value: 'typeDisplay',\n getValue: (row) => row.typeDisplay,\n sort: ['typeDisplay'],\n width: 100,\n};\n\nexport const SUB_TYPE = {\n name: 'subType',\n labelKey: 'tableHeaders.subType',\n value: 'subTypeDisplay',\n sort: ['subTypeDisplay'],\n width: 120,\n};\n\nexport const EVENT_TYPE = {\n name: 'type',\n labelKey: 'tableHeaders.type',\n value: 'eventType',\n sort: 'eventType',\n};\n\nexport const STATUS = {\n name: 'status',\n labelKey: 'tableHeaders.status',\n value: 'status',\n sort: ['status'],\n width: 175\n};\nexport const LAST_SEEN_TIME = {\n name: 'lastSeen',\n labelKey: 'tableHeaders.lastSeen',\n value: 'lastSeen',\n sort: 'lastTimestamp:desc',\n tooltip: 'tableHeaders.lastSeenTooltip'\n};\n\nexport const EVENT_LAST_SEEN_TIME = {\n ...LAST_SEEN_TIME,\n defaultSort: true,\n};\n\nexport const LAST_HEARTBEAT_TIME = {\n name: 'lastHeartbeatTime',\n labelKey: 'tableHeaders.lastSeen',\n value: 'lastHeartbeatTime',\n sort: ['lastHeartbeatTime'],\n formatter: 'LiveDate',\n width: 175\n};\nexport const REASON = {\n name: 'reason',\n labelKey: 'tableHeaders.reason',\n value: 'reason',\n sort: ['reason']\n};\nexport const OBJECT = {\n name: 'object',\n labelKey: 'tableHeaders.object',\n value: 'involvedObject',\n sort: ['involvedObject.kind', 'involvedObject.name'],\n canBeVariable: true,\n formatter: 'InvolvedObjectLink',\n};\nexport const RECLAIM_POLICY = {\n name: 'reclaimPolicy',\n labelKey: 'tableHeaders.reclaimPolicy',\n value: 'spec.persistentVolumeReclaimPolicy',\n sort: ['spec.persistentVolumeReclaimPolicy']\n};\nexport const PV_REASON = {\n name: 'pvReason',\n labelKey: 'tableHeaders.reason',\n value: 'status.reason',\n sort: ['status.reason']\n};\n\nexport const MESSAGE = {\n name: 'message',\n labelKey: 'tableHeaders.message',\n value: 'message',\n sort: ['message']\n};\nexport const KEY = {\n name: 'key',\n labelKey: 'tableHeaders.key',\n value: 'key',\n sort: ['key']\n};\nexport const VALUE = {\n name: 'value',\n labelKey: 'tableHeaders.value',\n value: 'value',\n sort: ['value'],\n};\n\nexport const BUILT_IN = {\n name: 'builtIn',\n labelKey: 'tableHeaders.builtIn',\n value: 'builtIn',\n sort: ['builtIn'],\n align: 'center',\n formatter: 'IconIsDefault'\n};\n\nexport const CLUSTER_CREATOR_DEFAULT = {\n name: 'default',\n labelKey: 'tableHeaders.clusterCreatorDefault',\n value: 'default',\n sort: ['Default'],\n align: 'center',\n formatter: 'IconIsDefault'\n};\n\nexport const RBAC_DEFAULT = {\n name: 'default',\n labelKey: 'tableHeaders.default',\n value: 'default',\n formatter: 'Checked',\n sort: ['default']\n};\n\nexport const RBAC_BUILTIN = {\n name: 'builtin',\n labelKey: 'tableHeaders.builtin',\n value: 'builtin',\n formatter: 'Checked',\n sort: ['builtin']\n};\n\nexport const RESOURCE = {\n name: 'resource',\n labelKey: 'tableHeaders.resource',\n value: 'resource',\n sort: ['resourceNames']\n};\n\nexport const API_GROUP = {\n name: 'apigroups',\n labelKey: 'tableHeaders.apiGroup',\n value: 'apiGroups',\n sort: ['apiGroups']\n};\n\nexport const INGRESS_CLASS = {\n name: 'ingressClassName',\n labelKey: 'tableHeaders.ingressClass',\n value: `$['spec']['ingressClassName']`,\n sort: `$['spec']['ingressClassName']`,\n};\n\nexport const INGRESS_DEFAULT_BACKEND = {\n name: 'ingressDefaultBackend',\n labelKey: 'tableHeaders.ingressDefaultBackend',\n value: 'hasDefaultBackend',\n sort: ['hasDefaultBackend:desc'],\n formatter: 'Checked',\n width: 75,\n align: 'center'\n};\n\nexport const INGRESS_TARGET = {\n name: 'ingressTarget',\n labelKey: 'tableHeaders.ingressTarget',\n value: \"$['spec']\",\n formatter: 'IngressTarget',\n sort: \"$['spec']['rules'][0].host\",\n};\n\nexport const SPEC_TYPE = {\n name: 'type',\n labelKey: 'tableHeaders.type',\n value: `$['spec']['type']`,\n sort: `$['spec']['type']`,\n formatter: 'ServiceType',\n};\n\nexport const TARGET_PORT = {\n formatter: 'ServiceTargets',\n labelKey: 'tableHeaders.targetPort',\n name: 'targetPort',\n sort: false,\n value: false,\n};\n\nexport const SELECTOR = {\n formatter: 'KeyValue',\n name: 'selector',\n labelKey: 'tableHeaders.selector',\n value: `$['spec']['selector']`,\n sort: `$['spec']['selector']`,\n};\n\nexport const CHART = {\n name: 'chart',\n labelKey: 'tableHeaders.chart',\n value: 'chartDisplay',\n sort: ['chartDisplay', 'versionSort'],\n};\n\nexport const CHART_UPGRADE = {\n name: 'upgrade',\n labelKey: 'tableHeaders.upgrade',\n value: 'upgradeAvailable',\n sort: 'upgradeAvailableSort:desc',\n dashIfEmpty: true,\n};\n\nexport const RESOURCES = {\n name: 'resources',\n labelKey: 'tableHeaders.resources',\n value: 'spec.resources.length',\n sort: 'spec.resources.length',\n width: 100,\n};\n\nexport const URL = {\n name: 'url',\n labelKey: 'tableHeaders.url',\n value: 'spec.url',\n sort: 'spec.url',\n};\n\nexport const LAST_UPDATED = {\n name: 'lastUpdated',\n labelKey: 'tableHeaders.lastUpdated',\n value: 'lastTransitionTime',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n sort: ['lastTransitionTime']\n};\n\nexport const WORKSPACE = {\n name: 'workspace',\n label: 'Workspace',\n value: 'metadata.namespace',\n sort: ['metadata.namespace', 'nameSort'],\n};\n\nexport const WORKLOAD_IMAGES = {\n ...POD_IMAGES,\n value: '',\n breakpoint: COLUMN_BREAKPOINTS.LAPTOP\n};\n\nexport const WORKLOAD_ENDPOINTS = {\n name: 'workloadEndpoints',\n labelKey: 'tableHeaders.endpoints',\n value: `$['metadata']['annotations']['${ CATTLE_PUBLIC_ENDPOINTS }']`,\n getValue: (row) => row.metadata?.annotations?.[CATTLE_PUBLIC_ENDPOINTS],\n formatter: 'Endpoints',\n dashIfEmpty: true,\n breakpoint: COLUMN_BREAKPOINTS.DESKTOP,\n maxPageSize: 25, // Hide this column when the page size is bigger than 25\n};\n\nexport const WORKLOAD_HEALTH_SCALE = {\n name: 'workloadHealthScale',\n labelKey: 'tableHeaders.health',\n formatter: 'WorkloadHealthScale',\n getValue: () => undefined,\n width: 150,\n skipSelect: true,\n delayLoading: true,\n // This column is expensive to compute, so don't make it searchable\n search: false,\n liveUpdates: true,\n};\n\nexport const FLEET_SUMMARY = {\n name: 'summary',\n labelKey: 'tableHeaders.resources',\n value: 'status.resourceCounts',\n sort: false,\n search: false,\n formatter: 'FleetSummaryGraph',\n align: 'center',\n width: 100,\n};\n\nexport const FLEET_REPO_CLUSTER_SUMMARY = {\n name: 'clusterSummary',\n labelKey: 'tableHeaders.clusterResources',\n value: 'status.resourceCounts',\n sort: false,\n search: false,\n formatter: 'FleetClusterSummaryGraph',\n align: 'center',\n width: 100,\n};\n\nexport const FLEET_REPO_PER_CLUSTER_STATE = {\n name: 'perClusterState',\n labelKey: 'tableHeaders.repoPerClusterState',\n tooltip: 'tableHeaders.repoPerClusterStateTooltip',\n sort: ['stateSort', 'nameSort'],\n width: 100,\n default: 'unknown',\n formatter: 'BadgeStateFormatter',\n formatterOpts: { arbitrary: true }\n\n};\n\nexport const APP_SUMMARY = {\n name: 'summary',\n labelKey: 'tableHeaders.resources',\n value: 'deployedResources.length',\n sort: false,\n search: false,\n formatter: 'AppSummaryGraph',\n align: 'center',\n width: 100,\n};\n\nexport const CONSTRAINT_VIOLATION_CONSTRAINT_LINK = {\n name: 'Constraint',\n labelKey: 'tableHeaders.constraint',\n value: 'constraintLink',\n sort: `constraintLink.text`,\n formatter: 'Link',\n formatterOpts: { options: { internal: true } },\n};\n\nexport const CONSTRAINT_VIOLATION_RESOURCE_LINK = {\n name: 'Name',\n labelKey: 'tableHeaders.name',\n value: 'resourceLink',\n sort: `resourceLink.text`,\n search: `resourceLink.text`,\n formatter: 'Link',\n formatterOpts: { options: { internal: true } },\n};\n\nexport const CONSTRAINT_VIOLATION_TYPE = {\n name: 'Type',\n labelKey: 'tableHeaders.type',\n value: `kind`,\n sort: `kind`\n};\n\nexport const CONSTRAINT_VIOLATION_NAMESPACE = {\n name: 'Namespace',\n labelKey: 'tableHeaders.namespace',\n value: `namespace`,\n sort: `namespace`,\n search: `namespace`,\n};\n\nexport const CONSTRAINT_VIOLATION_MESSAGE = {\n name: 'Message',\n labelKey: 'tableHeaders.message',\n value: `message`,\n sort: `message`\n};\n\nexport const CONSTRAINT_VIOLATION_TEMPLATE_LINK = {\n name: 'TemplateLink',\n labelKey: 'tableHeaders.template',\n value: `templateLink`,\n sort: `templateLink.text`,\n formatter: 'Link',\n formatterOpts: { options: { internal: true } },\n};\n\nexport const CONSTRAINT_VIOLATION_COUNT = {\n name: 'Count',\n labelKey: 'tableHeaders.count',\n value: `count`,\n sort: `count`,\n formatter: 'QualityText',\n formatterOpts: {\n qualityFn(value) {\n if (value <= 10) {\n return 'success';\n }\n\n if (value <= 20) {\n return 'warning';\n }\n\n return 'error';\n }\n }\n};\n\nexport const RECEIVER_PROVIDERS = {\n name: 'receiver-providers',\n label: 'Configured Providers',\n value: 'receiverTypes',\n sort: 'receiverTypes',\n formatter: 'List',\n};\n\nexport const CONFIGURED_RECEIVER = {\n name: 'receiver',\n label: 'Configured Receiver',\n value: 'receiverLink',\n sort: 'receiverLink.text',\n formatter: 'Link',\n formatterOpts: { options: { internal: true } },\n};\n\nexport const GROUP_NAME = {\n name: 'group-name',\n labelKey: 'tableHeaders.groupName',\n value: 'id',\n sort: ['name'],\n search: ['name'],\n formatter: 'Principal',\n width: 350\n};\n\nexport const GROUP_ROLE_NAME = {\n name: 'group-role-names',\n labelKey: 'tableHeaders.groupRoleNames',\n value: 'id',\n formatter: 'PrincipalGroupBindings',\n};\n\nexport const HPA_REFERENCE = {\n name: 'reference',\n labelKey: 'tableHeaders.hpaReference',\n value: 'spec.scaleTargetRef.name',\n sort: 'spec.scaleTargetRef.name',\n};\n\nexport const MIN_REPLICA = {\n name: 'minimum-replica',\n labelKey: 'tableHeaders.minReplicas',\n value: 'spec.minReplicas',\n sort: 'spec.minReplicas',\n};\n\nexport const MAX_REPLICA = {\n name: 'maximum-replica',\n labelKey: 'tableHeaders.maxReplicas',\n value: 'spec.maxReplicas',\n sort: 'spec.maxReplicas',\n};\n\nexport const CURRENT_REPLICA = {\n name: 'current-replica',\n labelKey: 'tableHeaders.currentReplicas',\n value: 'status.currentReplicas',\n sort: 'status.currentReplicas',\n};\n\nexport const EXPIRY_STATE = {\n ...STATE,\n value: '$',\n formatter: 'LiveExpiryBadgeState',\n};\n\nexport const ACCESS_KEY = {\n name: 'id',\n labelKey: 'tableHeaders.accessKey',\n align: 'left',\n sort: ['name'],\n width: 200,\n};\n\nexport const SCOPE = {\n name: 'scope',\n value: 'clusterName',\n labelKey: 'tableHeaders.scope',\n dashIfEmpty: true,\n align: 'left',\n sort: ['scope'],\n width: 100,\n};\n\nexport const SCOPE_NORMAN = {\n ...SCOPE,\n value: 'clusterId',\n sort: ['clusterId'],\n};\n\nexport const EXPIRES = {\n name: 'expires',\n value: 'expiresAt',\n labelKey: 'tableHeaders.expires',\n align: 'left',\n sort: ['expiresAt'],\n width: 200,\n formatter: 'LiveExpiryDate'\n};\n\nexport const LAST_USED = {\n name: 'lastUsed',\n value: 'lastUsedAt',\n labelKey: 'tableHeaders.lastUsed',\n align: 'left',\n sort: ['lastUsedAt'],\n width: 200,\n formatter: 'LiveExpiryDate',\n formatterOpts: { missingKey: 'generic.unknown' },\n};\n\nexport const RESTART = {\n name: 'restart',\n labelKey: 'tableHeaders.restart',\n value: 'restartRequired',\n sort: ['restartRequired', 'nameSort'],\n formatter: 'Checked',\n width: 125,\n align: 'center'\n};\n\nexport const ROLE = {\n name: 'role',\n value: 'roleDisplay',\n labelKey: 'tableHeaders.role',\n};\n\nexport const FEATURE_DESCRIPTION = {\n name: 'description',\n labelKey: 'tableHeaders.description',\n value: 'status.description',\n align: 'left',\n sort: ['status.description'],\n formatter: 'Translate',\n formatterOpts: { prefix: 'featureFlags.description' },\n};\n\nexport const STATE_NORMAN = {\n name: 'state',\n labelKey: 'tableHeaders.state',\n sort: ['stateSort', 'nameSort'],\n value: 'stateDisplay',\n width: 100,\n default: 'unknown',\n formatter: 'BadgeStateFormatter',\n};\n\nexport const KUBE_NODE_OS = {\n name: 'operating-system',\n labelKey: 'tableHeaders.operatingSystem',\n value: 'status.nodeInfo.operatingSystem',\n sort: ['status.nodeInfo.operatingSystem'],\n formatter: 'Capitalize'\n};\n\nexport const MACHINE_NODE_OS = {\n name: 'operating-system',\n labelKey: 'tableHeaders.operatingSystem',\n value: 'operatingSystem',\n sort: ['operatingSystem'],\n formatter: 'Capitalize',\n dashIfEmpty: true,\n};\n\nexport const MANAGEMENT_NODE_OS = {\n name: 'operating-system',\n labelKey: 'tableHeaders.operatingSystem',\n value: 'status.internalNodeStatus.nodeInfo.operatingSystem',\n sort: ['status.internalNodeStatus.nodeInfo.operatingSystem'],\n formatter: 'Capitalize',\n dashIfEmpty: true,\n};\n\n// FLEET\n\nexport const FLEET_BUNDLE_LAST_UPDATED = {\n name: 'lastUpdated',\n labelKey: 'tableHeaders.lastUpdated',\n value: 'lastUpdateTime',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n sort: ['lastUpdateTime']\n};\n\nexport const FLEET_BUNDLE_TYPE = {\n name: 'bundleType',\n labelKey: 'tableHeaders.fleetBundleType',\n value: 'bundleType',\n sort: ['bundleType'],\n width: 100,\n};\n\nexport const FLEET_REPO_CLUSTERS_READY = {\n name: 'clustersReady',\n labelKey: 'tableHeaders.clustersReady',\n value: 'status.readyClusters',\n sort: 'status.readyClusters',\n search: false,\n};\n\nexport const FLEET_REPO_TARGET = {\n name: 'target',\n labelKey: 'tableHeaders.target',\n value: 'targetInfo.modeDisplay',\n sort: ['targetInfo.modeDisplay', 'targetInfo.cluster', 'targetInfo.clusterGroup'],\n\n};\n\nexport const FLEET_REPO = {\n name: 'repo',\n labelKey: 'tableHeaders.repo',\n value: 'repoDisplay',\n sort: 'repoDisplay',\n search: ['spec.repo', 'status.commit'],\n};\n\nexport const UI_PLUGIN_CATALOG = [\n {\n name: 'state',\n labelKey: 'tableHeaders.state',\n sort: ['stateSort', 'nameSort'],\n value: 'state',\n width: 100,\n default: 'unknown',\n formatter: 'BadgeStateFormatter',\n formatterOpts: { arbitrary: true }\n },\n {\n name: 'name',\n labelKey: 'tableHeaders.name',\n value: 'name',\n sort: ['nameSort'],\n formatter: 'LinkDetail'\n },\n {\n name: 'image',\n sort: ['image'],\n labelKey: 'plugins.manageCatalog.headers.image.label',\n value: 'image'\n },\n {\n name: 'repository',\n sort: ['repository'],\n labelKey: 'plugins.manageCatalog.headers.repository.label',\n value: 'repo.metadata.name'\n }\n];\n","// --------------------------------------\n// 1. Provided by Steve and always potentially available\n// --------------------------------------\n\n// Steve-specific virtual types\n// Base: /v1\nexport const STEVE = {\n PREFERENCE: 'userpreference',\n SCHEMA_DEFINITION: 'schemaDefinition'\n};\n\n// Old APIs via Norman\n// Base: /v3\nexport const NORMAN = {\n APP: 'app',\n AUTH_CONFIG: 'authconfig',\n ETCD_BACKUP: 'etcdbackup',\n CLUSTER: 'cluster',\n CLUSTER_TOKEN: 'clusterregistrationtoken',\n CLUSTER_ROLE_TEMPLATE_BINDING: 'clusterroletemplatebinding',\n CLOUD_CREDENTIAL: 'cloudcredential',\n FLEET_WORKSPACES: 'fleetworkspace',\n GLOBAL_ROLE: 'globalRole',\n GLOBAL_ROLE_BINDING: 'globalRoleBinding',\n\n NODE_POOL: 'nodePool',\n // Note - This allows access to node resources, not schema's or custom components (both are accessed via 'type' which clashes with kube node)\n NODE: 'node',\n PRINCIPAL: 'principal',\n PROJECT: 'project',\n PROJECT_ROLE_TEMPLATE_BINDING: 'projectroletemplatebinding',\n SETTING: 'setting',\n SPOOFED: { GROUP_PRINCIPAL: 'group.principal' },\n ROLE_TEMPLATE: 'roleTemplate',\n TOKEN: 'token',\n USER: 'user',\n KONTAINER_DRIVER: 'kontainerDriver',\n NODE_DRIVER: 'nodeDriver'\n};\n\n// Public (via Norman)\n// Base: /v3-public\nexport const PUBLIC = { AUTH_PROVIDER: 'authprovider' };\n\n// Common native k8s types (via Steve)\n// Base: /k8s/clusters/<id>/v1/\nexport const API_GROUP = 'apiGroups';\nexport const API_SERVICE = 'apiregistration.k8s.io.apiservice';\nexport const CONFIG_MAP = 'configmap';\nexport const COUNT = 'count';\nexport const EVENT = 'event';\nexport const ENDPOINTS = 'endpoints';\nexport const HPA = 'autoscaling.horizontalpodautoscaler';\nexport const INGRESS = 'networking.k8s.io.ingress';\nexport const INGRESS_CLASS = 'networking.k8s.io.ingressclass';\nexport const LIMIT_RANGE = 'limitrange';\nexport const NAMESPACE = 'namespace';\nexport const NODE = 'node';\nexport const NETWORK_POLICY = 'networking.k8s.io.networkpolicy';\nexport const POD = 'pod';\nexport const POD_DISRUPTION_BUDGET = 'policy.poddisruptionbudget';\nexport const PV = 'persistentvolume';\nexport const PVC = 'persistentvolumeclaim';\nexport const RESOURCE_QUOTA = 'resourcequota';\nexport const SCHEMA = 'schema';\nexport const SERVICE = 'service';\nexport const SECRET = 'secret';\nexport const SERVICE_ACCOUNT = 'serviceaccount';\nexport const STORAGE_CLASS = 'storage.k8s.io.storageclass';\nexport const CSI_DRIVER = 'storage.k8s.io.csidriver';\nexport const OBJECT_META = 'io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta';\nexport const NETWORK_ATTACHMENT = 'k8s.cni.cncf.io.networkattachmentdefinition';\nexport const USER = 'user';\nexport const GROUP = 'group';\n\nexport const RBAC = {\n ROLE: 'rbac.authorization.k8s.io.role',\n CLUSTER_ROLE: 'rbac.authorization.k8s.io.clusterrole',\n ROLE_BINDING: 'rbac.authorization.k8s.io.rolebinding',\n CLUSTER_ROLE_BINDING: 'rbac.authorization.k8s.io.clusterrolebinding',\n};\n\nexport const WORKLOAD = 'workload';\n\n// The types that are aggregated into a \"workload\"\nexport const WORKLOAD_TYPES = {\n DEPLOYMENT: 'apps.deployment',\n CRON_JOB: 'batch.cronjob',\n DAEMON_SET: 'apps.daemonset',\n JOB: 'batch.job',\n STATEFUL_SET: 'apps.statefulset',\n REPLICA_SET: 'apps.replicaset',\n REPLICATION_CONTROLLER: 'replicationcontroller',\n};\n\nexport const WORKLOAD_TYPE_TO_KIND_MAPPING = {\n // Each deployment creates a replicaset and the metrics are published for a replicaset.\n [WORKLOAD_TYPES.DEPLOYMENT]: 'ReplicaSet',\n [WORKLOAD_TYPES.CRON_JOB]: 'CronJob',\n [WORKLOAD_TYPES.DAEMON_SET]: 'DaemonSet',\n [WORKLOAD_TYPES.JOB]: 'Job',\n [WORKLOAD_TYPES.STATEFUL_SET]: 'StatefulSet',\n [WORKLOAD_TYPES.REPLICA_SET]: 'ReplicaSet',\n [WORKLOAD_TYPES.REPLICATION_CONTROLLER]: 'ReplicationController',\n};\n\nexport const METRICS_SUPPORTED_KINDS = [\n WORKLOAD_TYPES.DAEMON_SET,\n WORKLOAD_TYPES.REPLICA_SET,\n WORKLOAD_TYPES.STATEFUL_SET,\n WORKLOAD_TYPES.DEPLOYMENT\n];\n\nconst {\n DAEMON_SET, CRON_JOB, JOB, ...scalableWorkloads\n} = WORKLOAD_TYPES;\n\nexport const SCALABLE_WORKLOAD_TYPES = scalableWorkloads;\n\nexport const LIST_WORKLOAD_TYPES = {\n ...WORKLOAD_TYPES,\n POD\n};\n\nexport const METRIC = {\n NODE: 'metrics.k8s.io.nodemetrics',\n POD: 'metrics.k8s.io.podmetrics',\n};\n\nexport const CATALOG = {\n CLUSTER_REPO: 'catalog.cattle.io.clusterrepo',\n OPERATION: 'catalog.cattle.io.operation',\n APP: 'catalog.cattle.io.app',\n REPO: 'catalog.cattle.io.repo',\n};\n\n// UI Plugin type\nexport const UI_PLUGIN = 'catalog.cattle.io.uiplugin';\n\nexport const HELM = { PROJECTHELMCHART: 'helm.cattle.io.projecthelmchart' };\n\nexport const MONITORING = {\n ALERTMANAGER: 'monitoring.coreos.com.alertmanager',\n ALERTMANAGERCONFIG: 'monitoring.coreos.com.alertmanagerconfig',\n PODMONITOR: 'monitoring.coreos.com.podmonitor',\n PROMETHEUS: 'monitoring.coreos.com.prometheus',\n PROMETHEUSRULE: 'monitoring.coreos.com.prometheusrule',\n SERVICEMONITOR: 'monitoring.coreos.com.servicemonitor',\n THANOSRULER: 'monitoring.coreos.com.thanosruler',\n SPOOFED: {\n RECEIVER: 'monitoring.coreos.com.receiver',\n RECEIVER_SPEC: 'monitoring.coreos.com.receiver.spec',\n RECEIVER_EMAIL: 'monitoring.coreos.com.receiver.email',\n RECEIVER_SLACK: 'monitoring.coreos.com.receiver.slack',\n RECEIVER_WEBHOOK: 'monitoring.coreos.com.receiver.webhook',\n RECEIVER_PAGERDUTY: 'monitoring.coreos.com.receiver.pagerduty',\n RECEIVER_OPSGENIE: 'monitoring.coreos.com.receiver.opsgenie',\n RECEIVER_HTTP_CONFIG: 'monitoring.coreos.com.receiver.httpconfig',\n RESPONDER: 'monitoring.coreos.com.receiver.responder',\n ROUTE: 'monitoring.coreos.com.route',\n ROUTE_SPEC: 'monitoring.coreos.com.route.spec',\n }\n};\n\nexport const LONGHORN = {\n ENGINES: 'longhorn.io.engine',\n ENGINE_IMAGES: 'longhorn.io.engineimage',\n NODES: 'longhorn.io.node',\n REPLICAS: 'longhorn.io.replica',\n SETTINGS: 'longhorn.io.setting',\n VOLUMES: 'longhorn.io.volume',\n};\n\nexport const LONGHORN_DRIVER = 'driver.longhorn.io';\nexport const LONGHORN_VERSION_V1 = 'LonghornV1';\nexport const LONGHORN_VERSION_V2 = 'LonghornV2';\n\nexport const SNAPSHOT = 'rke.cattle.io.etcdsnapshot';\n\n// --------------------------------------\n// 2. Only if Rancher is installed\n// --------------------------------------\n\n// Rancher Management API (via Steve)\n// Base: /v1\nexport const MANAGEMENT = {\n AUTH_CONFIG: 'management.cattle.io.authconfig',\n CATALOG_TEMPLATE: 'management.cattle.io.catalogtemplate',\n // CATALOG: 'management.cattle.io.catalog',\n CLUSTER: 'management.cattle.io.cluster',\n CLUSTER_ROLE_TEMPLATE_BINDING: 'management.cattle.io.clusterroletemplatebinding',\n FEATURE: 'management.cattle.io.feature',\n // GROUP: 'management.cattle.io.group',\n KONTAINER_DRIVER: 'management.cattle.io.kontainerdriver',\n MULTI_CLUSTER_APP: 'management.cattle.io.multiclusterapp',\n NODE: 'management.cattle.io.node',\n NODE_DRIVER: 'management.cattle.io.nodedriver',\n NODE_POOL: 'management.cattle.io.nodepool',\n NODE_TEMPLATE: 'management.cattle.io.nodetemplate',\n PROJECT: 'management.cattle.io.project',\n PROJECT_ROLE_TEMPLATE_BINDING: 'management.cattle.io.projectroletemplatebinding',\n ROLE_TEMPLATE: 'management.cattle.io.roletemplate',\n SETTING: 'management.cattle.io.setting',\n USER: 'management.cattle.io.user',\n TOKEN: 'management.cattle.io.token',\n GLOBAL_ROLE: 'management.cattle.io.globalrole',\n GLOBAL_ROLE_BINDING: 'management.cattle.io.globalrolebinding',\n PSA: 'management.cattle.io.podsecurityadmissionconfigurationtemplate',\n MANAGED_CHART: 'management.cattle.io.managedchart',\n USER_NOTIFICATION: 'management.cattle.io.rancherusernotification',\n GLOBAL_DNS_PROVIDER: 'management.cattle.io.globaldnsprovider',\n RKE_TEMPLATE: 'management.cattle.io.clustertemplate',\n RKE_TEMPLATE_REVISION: 'management.cattle.io.clustertemplaterevision',\n CLUSTER_PROXY_CONFIG: 'management.cattle.io.clusterproxyconfig'\n};\n\nexport const CAPI = {\n CAPI_CLUSTER: 'cluster.x-k8s.io.cluster',\n MACHINE_DEPLOYMENT: 'cluster.x-k8s.io.machinedeployment',\n MACHINE_SET: 'cluster.x-k8s.io.machineset',\n MACHINE: 'cluster.x-k8s.io.machine',\n RANCHER_CLUSTER: 'provisioning.cattle.io.cluster',\n MACHINE_CONFIG_GROUP: 'rke-machine-config.cattle.io',\n};\n\n// --------------------------------------\n// 3. Optional add-on packages in a cluster\n// --------------------------------------\n// Base: /k8s/clusters/<id>/v1/\n\nexport const FLEET = {\n BUNDLE: 'fleet.cattle.io.bundle',\n BUNDLE_DEPLOYMENT: 'fleet.cattle.io.bundledeployment',\n CLUSTER: 'fleet.cattle.io.cluster',\n CLUSTER_GROUP: 'fleet.cattle.io.clustergroup',\n DASHBOARD: 'fleet.cattle.io.dashboard',\n GIT_REPO: 'fleet.cattle.io.gitrepo',\n WORKSPACE: 'management.cattle.io.fleetworkspace',\n TOKEN: 'fleet.cattle.io.clusterregistrationtoken',\n BUNDLE_NAMESPACE_MAPPING: 'fleet.cattle.io.bundlenamespacemapping',\n GIT_REPO_RESTRICTION: 'fleet.cattle.io.gitreporestriction'\n};\n\nexport const GATEKEEPER = {\n CONSTRAINT_TEMPLATE: 'templates.gatekeeper.sh.constrainttemplate',\n SPOOFED: { CONSTRAINT: 'constraints.gatekeeper.sh.constraint' }\n};\n\nexport const ISTIO = {\n VIRTUAL_SERVICE: 'networking.istio.io.virtualservice',\n DESTINATION_RULE: 'networking.istio.io.destinationrule',\n GATEWAY: 'networking.istio.io.gateway'\n};\n\nexport const LOGGING = {\n // LOGGING: 'logging.banzaicloud.io.logging',\n CLUSTER_FLOW: 'logging.banzaicloud.io.clusterflow',\n CLUSTER_OUTPUT: 'logging.banzaicloud.io.clusteroutput',\n FLOW: 'logging.banzaicloud.io.flow',\n OUTPUT: 'logging.banzaicloud.io.output',\n SPOOFED: {\n FILTERS: 'logging.banzaicloud.io.output.filters',\n FILTER: 'logging.banzaicloud.io.output.filter',\n CONCAT: 'logging.banzaicloud.io.output.filters.concat',\n DEDOT: 'logging.banzaicloud.io.output.filters.dedot',\n DETECTEXCEPTIONS: 'logging.banzaicloud.io.output.filters.detectExceptions',\n GEOIP: 'logging.banzaicloud.io.output.filters.geoip',\n GREP: 'logging.banzaicloud.io.output.filters.grep',\n PARSER: 'logging.banzaicloud.io.output.filters.parser',\n PROMETHEUS: 'logging.banzaicloud.io.output.filters.prometheus',\n RECORD_MODIFIER: 'logging.banzaicloud.io.output.filters.record_modifier',\n RECORD_TRANSFORMER: 'logging.banzaicloud.io.output.filters.record_transformer',\n STDOUT: 'logging.banzaicloud.io.output.filters.stdout',\n SUMOLOGIC: 'logging.banzaicloud.io.output.filters.sumologic',\n TAG_NORMALISER: 'logging.banzaicloud.io.output.filters.tag_normaliser',\n THROTTLE: 'logging.banzaicloud.io.output.filters.throttle',\n RECORD: 'logging.banzaicloud.io.output.filters.record',\n REGEXPSECTION: 'logging.banzaicloud.io.output.filters.regexpsection',\n EXCLUDESECTION: 'logging.banzaicloud.io.output.filters.excludesection',\n ORSECTION: 'logging.banzaicloud.io.output.filters.orsection',\n ANDSECTION: 'logging.banzaicloud.io.output.filters.andsection',\n PARSESECTION: 'logging.banzaicloud.io.output.filters.parsesection',\n METRICSECTION: 'logging.banzaicloud.io.output.filters.metricsection',\n REPLACE: 'logging.banzaicloud.io.output.filters.replace',\n SINGLEPARSESECTION: 'logging.banzaicloud.io.output.filters.replace.singleparsesection'\n }\n};\n\nexport const BACKUP_RESTORE = {\n RESOURCE_SET: 'resources.cattle.io.resourceset',\n BACKUP: 'resources.cattle.io.backup',\n RESTORE: 'resources.cattle.io.restore',\n};\n\nexport const CIS = {\n CLUSTER_SCAN: 'cis.cattle.io.clusterscan',\n CLUSTER_SCAN_PROFILE: 'cis.cattle.io.clusterscanprofile',\n BENCHMARK: 'cis.cattle.io.clusterscanbenchmark',\n REPORT: 'cis.cattle.io.clusterscanreport'\n};\n\nexport const UI = { NAV_LINK: 'ui.cattle.io.navlink' };\n\nexport const VIRTUAL_TYPES = {\n CLUSTER_MEMBERS: 'cluster-members',\n PROJECT_NAMESPACES: 'projects-namespaces',\n NAMESPACES: 'namespaces',\n JWT_AUTHENTICATION: 'jwt.authentication'\n};\n\n// harvester\nexport const HCI = {\n CLUSTER: 'harvesterhci.io.management.cluster',\n DASHBOARD: 'harvesterhci.io.dashboard',\n IMAGE: 'harvesterhci.io.virtualmachineimage',\n VGPU_DEVICE: 'devices.harvesterhci.io.vgpudevice',\n SETTING: 'harvesterhci.io.setting',\n RESOURCE_QUOTA: 'harvesterhci.io.resourcequota',\n HARVESTER_CONFIG: 'rke-machine-config.cattle.io.harvesterconfig',\n};\n\nexport const VIRTUAL_HARVESTER_PROVIDER = 'harvester';\n\nexport const ADDRESSES = {\n HOSTNAME: 'Hostname',\n INTERNAL_IP: 'InternalIP',\n EXTERNAL_IP: 'ExternalIP'\n};\n\nexport const DEFAULT_WORKSPACE = 'fleet-default';\n\nexport const AUTH_TYPE = {\n _NONE: '_none',\n _BASIC: '_basic',\n _SSH: '_ssh',\n _S3: '_S3',\n _RKE: '_RKE',\n};\n\nexport const LOCAL_CLUSTER = 'local';\n\nexport const CLUSTER_REPO_TYPES = {\n HELM_URL: 'helm-url',\n GIT_REPO: 'git-repo',\n OCI_URL: 'oci-url'\n};\n\nexport const ZERO_TIME = '0001-01-01T00:00:00Z';\n\nexport const DEFAULT_GRAFANA_STORAGE_SIZE = '10Gi';\n\nexport const DEPRECATED = 'Deprecated';\nexport const EXPERIMENTAL = 'Experimental';\n","/**\n * Store version data retrieved from the backend /rancherversion API\n */\nlet _versionData = {\n Version: '',\n RancherPrime: 'false',\n GitCommit: '',\n};\nlet _kubeVersionData = {};\n\nexport function isRancherPrime() {\n return _versionData.RancherPrime?.toLowerCase() === 'true';\n}\n\nexport function getVersionData() {\n return _versionData;\n}\n\nexport function setVersionData(v) {\n // Remove any properties on 'v' we don't want\n _versionData = JSON.parse(JSON.stringify(v));\n}\n\nexport function getKubeVersionData() {\n return _kubeVersionData;\n}\n\nexport function setKubeVersionData(v) {\n // Remove any properties on 'v' we don't want\n _kubeVersionData = JSON.parse(JSON.stringify(v));\n}\n\nexport const CURRENT_RANCHER_VERSION = '2.10';\n","import { findBy } from '@shell/utils/array';\nimport { sortBy } from '@shell/utils/sort';\n\nlet NEXT_ID = 1;\n\nexport const BEFORE_SAVE_HOOKS = '_beforeSaveHooks';\nexport const AFTER_SAVE_HOOKS = '_afterSaveHooks';\n\nexport default {\n methods: {\n registerBeforeHook(boundFn, name, priority = 99, boundFnContext) {\n this._registerHook(BEFORE_SAVE_HOOKS, boundFn, name, priority, boundFnContext);\n },\n\n unregisterBeforeSaveHook(name) {\n this[BEFORE_SAVE_HOOKS] = this[BEFORE_SAVE_HOOKS].filter((hook) => {\n // BEFORE_SAVE_HOOKS is an array of objects with keys\n // fn, name and priority.\n return hook.name !== name;\n });\n },\n\n registerAfterHook(boundFn, name, priority = 99, boundFnContext) {\n this._registerHook(AFTER_SAVE_HOOKS, boundFn, name, priority, boundFnContext);\n },\n\n async applyHooks(key, ...args) {\n if (!key) {\n throw new Error('Must specify key');\n }\n\n const hooks = sortBy(this[key] || [], ['priority', 'name']);\n const out = {};\n\n for (const x of hooks) {\n console.debug('Applying hook', x.name); // eslint-disable-line no-console\n out[x.name] = await x.fn.apply(x.fnContext || this, args);\n }\n\n return out;\n },\n\n _registerHook(key, fn, name, priority, fnContext) {\n if ( !key ) {\n throw new Error('Must specify key');\n }\n\n if ( !name ) {\n name = `hook_${ NEXT_ID }`;\n NEXT_ID++;\n }\n\n if ( !priority ) {\n priority = 99;\n }\n\n let hooks = this[key];\n\n if ( !hooks ) {\n hooks = [];\n this[key] = hooks;\n }\n\n let entry = findBy(hooks, 'name', name);\n\n if ( entry ) {\n entry.priority = priority;\n entry.fn = fn;\n entry.fnContext = fnContext;\n } else {\n entry = {\n name,\n priority,\n fn,\n fnContext\n };\n\n hooks.push(entry);\n }\n },\n },\n};\n","export default {\n props: {\n pref: {\n type: String,\n default: null,\n },\n prefKey: {\n type: String,\n default: null,\n }\n },\n\n computed: {\n shown() {\n let shown = true;\n\n if (this.pref) {\n const prefData = this.$store.getters['prefs/get'](this.pref);\n\n if (this.prefKey) {\n shown = !prefData[this.prefKey];\n } else {\n shown = !prefData;\n }\n }\n\n return shown;\n }\n },\n\n methods: {\n async hide() {\n if (this.pref) {\n let value = this.$store.getters['prefs/get'](this.pref);\n\n // Set the preference to store that the panel is hidden\n if (this.prefKey) {\n if (value === true || value === false || value.length > 0) {\n value = {};\n }\n value[this.prefKey] = true;\n }\n await this.$store.dispatch('prefs/set', { key: this.pref, value });\n }\n }\n },\n};\n","import { _CREATE, _EDIT, _VIEW } from '@shell/config/query-params';\nimport { LAST_NAMESPACE } from '@shell/store/prefs';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport ChildHook, { BEFORE_SAVE_HOOKS, AFTER_SAVE_HOOKS } from '@shell/mixins/child-hook';\nimport { clear } from '@shell/utils/array';\nimport { DEFAULT_WORKSPACE } from '@shell/config/types';\nimport { handleConflict } from '@shell/plugins/dashboard-store/normalize';\n\nexport default {\n\n name: 'CreateEditView',\n\n mixins: [ChildHook],\n\n emits: ['done'],\n\n data() {\n // Keep label and annotation filters in data so each resource CRUD page can alter individually\n return { errors: [] };\n },\n\n computed: {\n isCreate() {\n return this.mode === _CREATE;\n },\n\n isEdit() {\n return this.mode === _EDIT;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n schema() {\n const inStore = this.storeOverride || this.$store.getters['currentStore'](this.value.type);\n\n return this.$store.getters[`${ inStore }/schemaFor`](this.value.type);\n },\n\n isNamespaced() {\n return this.schema?.attributes?.namespaced || false;\n },\n\n labels: {\n get() {\n return this.value?.labels;\n },\n set(neu) {\n this.value.setLabels(neu);\n }\n },\n\n annotations: {\n get() {\n return this.value?.annotations;\n },\n set(neu) {\n this.value.setAnnotations(neu);\n }\n },\n\n doneRoute() {\n if ( this.value?.doneRoute ) {\n return this.value.doneRoute;\n }\n\n let name = this.$route.name;\n\n if ( name?.endsWith('-id') ) {\n name = name.replace(/(-namespace)?-id$/, '');\n } else if ( name?.endsWith('-create') ) {\n name = name.replace(/-create$/, '');\n }\n\n return name;\n },\n\n doneParams() {\n if ( this.value?.doneParams ) {\n return this.value.doneParams;\n }\n\n const out = { ...this.$route.params };\n\n delete out.namespace;\n delete out.id;\n\n return out;\n },\n\n },\n\n methods: {\n done() {\n if ( this.doneEvent ) {\n this.$emit('done');\n\n return;\n }\n\n if ( this.doneLocationOverride) {\n return this.$router.replace(this.doneLocationOverride);\n }\n\n if ( !this.doneRoute ) {\n return;\n }\n\n this.$router.replace({\n name: this.doneRoute,\n params: this.doneParams || { resource: this.value.type }\n });\n },\n\n // Detect and resolve conflicts from a 409 response.\n // If they are resolved, return a false-y value\n // Else they can't be resolved, return an array of errors to show to the user.\n async conflict() {\n return await handleConflict(this.initialValue.toJSON(), this.value, this.liveValue, this.$store.getters, this.$store, this.storeOverride || this.$store.getters['currentStore'](this.value.type));\n },\n\n async save(buttonDone, url, depth = 0) {\n if ( this.errors ) {\n clear(this.errors);\n }\n\n try {\n await this.applyHooks(BEFORE_SAVE_HOOKS, this.value);\n\n // Remove the labels map if it's empty\n if ( this.value?.metadata?.labels && Object.keys(this.value.metadata.labels || {}).length === 0 ) {\n delete this.value.metadata.labels;\n }\n\n // Remove the annotations map if it's empty\n if ( this.value?.metadata?.annotations && Object.keys(this.value.metadata.annotations || {}).length === 0 ) {\n delete this.value.metadata.annotations;\n }\n\n if ( this.isCreate ) {\n const ns = this.value?.metadata?.namespace;\n\n // Don't remember fleet-default as a target since the user isn't usually picking it explicitly\n if ( ns && ns !== DEFAULT_WORKSPACE ) {\n this.value.$dispatch('prefs/set', { key: LAST_NAMESPACE, value: ns }, { root: true });\n }\n }\n\n await this.actuallySave(url);\n\n // If spoofed we need to reload the values as the server can't have watchers for them.\n if (this.$store.getters['type-map/isSpoofed'](this.value.type)) {\n await this.$store.dispatch('cluster/findAll', { type: this.value.type, opt: { force: true } }, { root: true });\n }\n\n await this.applyHooks(AFTER_SAVE_HOOKS, this.value);\n buttonDone && buttonDone(true);\n\n this.done();\n } catch (err) {\n // Conflict, the resource being edited has changed since starting editing\n if ( err.status === 409 && depth === 0 && this.isEdit) {\n const errors = await this.conflict();\n\n if ( errors === false ) {\n // It was automatically figured out, save again\n return this.save(buttonDone, url, depth + 1);\n } else {\n this.errors = errors;\n }\n } else {\n this.errors = exceptionToErrorsArray(err);\n }\n // Provide a stack trace for easier debugging of save errors\n console.error('CreateEditView mixin failed to save: ', err); // eslint-disable-line no-console\n buttonDone && buttonDone(false);\n }\n },\n\n async actuallySave(url) {\n if ( this.isCreate ) {\n url = url || this.schema.linkFor('collection');\n const res = await this.value.save({ url });\n\n if (res) {\n Object.assign(this.value, res);\n }\n } else {\n await this.value.save();\n }\n },\n\n setErrors(errors) {\n this.errors = errors;\n }\n },\n};\n","import { _EDIT, _YAML } from '@shell/config/query-params';\nimport { defineComponent } from 'vue';\n\nimport impl from './impl';\n\nexport default defineComponent({\n ...impl,\n\n props: {\n mode: {\n type: String,\n default: _EDIT,\n },\n\n realMode: {\n type: String,\n default: _EDIT,\n },\n\n as: {\n type: String,\n default: _YAML,\n },\n\n // The model to be manipulated by the form\n value: {\n type: Object,\n required: true,\n },\n\n // A clone of the model before it's been changed, for conflict resolution\n initialValue: {\n type: Object,\n default: null,\n },\n\n // The 'live' equivalent of this model in the store\n liveValue: {\n type: Object,\n default: null,\n },\n\n doneEvent: {\n type: Boolean,\n default: false,\n },\n },\n});\n","import { getAllValues } from '@shell/utils/object';\nimport formRulesGenerator from '@shell/utils/validators/formRules/index';\n\nexport default {\n data() {\n return {\n /**\n * Define the validation rules for the entire form.\n * These should almost always be overridden in the form-component using the mixin\n *\n * path (required): defines the path of the value to be tested against it's rules. Looks for the relevant path in `this.value` unless an is passed in via rootObject\n * rules (required): array of strings that match which validator functions to run against the value of the field defined by the path (and optionally the rulesets rootObject),\n * rootObject (optional): redirects the path to the object passed here,\n * translationKey (optional): defines the displaykey, overrides displaykeys that may otherwise be passed into the translation\n *\n * NOTE: path of type 'value.value' will be only 'value'\n *\n * Example:\n * {\n * path: 'container.image',\n * rules: ['noSpaces', 'noPeriods'],\n * rootObject: { container: { image: 'name' } },\n * translationKey: 'Image Name',\n * }\n */\n fvFormRuleSets: [],\n /**\n * An array of strings that track which ruleset paths have been bound to a field for error\n * reporting tracked in a separate array from the actual rulesets since we want the option\n * of keeping track of modelValidationRules without mutating the model itself you may place\n * a path in here manually as part of your form's data props or you may place a path in\n * here programmatically by using the \"fvGetAndReportPathRules\" method\n */\n fvReportedValidationPaths: []\n };\n },\n\n methods: {\n /**\n * Returns an array of validator functions based off path property of the ruleset, use this if you want\n * the array but you don't want the form to track that the rules have been bound to a field\n * @param {*} path\n * @returns\n */\n fvGetPathRules(path) {\n return this.fvRulesets.find((ruleset) => ruleset.path === path)?.rules || [];\n },\n\n /**\n * Returns an array of validator functions and pushes the path of the relevant ruleset into\n * fvReportedValidationPaths so that we know any error messages are handled by the field using it\n * @param {*} path\n * @returns\n */\n fvGetAndReportPathRules(path) {\n const rules = this.fvGetPathRules(path);\n\n if (rules.length > 0 && !this.fvReportedValidationPaths.includes(path)) {\n this.fvReportedValidationPaths = [...this.fvReportedValidationPaths, path];\n }\n\n return rules;\n },\n\n /**\n * Validates that the path is one that belongs to a ruleset (either a formRuleset or from the\n * modelValidationRules) and returns its value(s) in an array\n * @param {*} path\n * @returns\n */\n fvGetPathValues(path) { //\n // returns even single values as an array to simplify validation logic since\n // some fields may have multiple values\n const relevantRuleset = this.fvRulesets.find((ruleset) => ruleset.path === path);\n\n if (!relevantRuleset) {\n return [];\n }\n\n return getAllValues(relevantRuleset?.rootObject || this.value, relevantRuleset?.path);\n },\n\n fvGetValues(val, idx, arr) {\n return (arr.length > 1 &&\n typeof val === 'object' &&\n !Array.isArray(val) &&\n val !== null ? { ...val, idx } : val\n );\n },\n\n /**\n * Gets errors from multiple paths, usually used externally to check a single path but used\n * within the mixin to check all paths for errors\n * @param {*} paths\n * @returns\n */\n fvGetPathErrors(paths = []) {\n const messages = paths.reduce((acc, path) => {\n const pathErrors = [];\n const relevantRules = this.fvGetPathRules(path);\n const relevantValues = this.fvGetPathValues(path).map(this.fvGetValues);\n\n relevantRules.forEach((rule) => {\n relevantValues.forEach((value) => {\n pathErrors.push(rule(value));\n });\n });\n\n return [...acc, ...pathErrors].filter(Boolean);\n }, []);\n\n return messages;\n },\n },\n\n computed: {\n /**\n * fvExtraRules allows you to create rules that might be specific to a form inside of\n * that form component and pass them into the mixin's logic.\n * fvExtraRules needs to return an object with a validation rule function in each key.\n * This is a computed property as returning functions in the data props is not considered\n * a best practice\n * @returns\n */\n fvExtraRules() {\n return {};\n },\n\n /**\n * Rulesets is a combination of the rules defined in the fvFormRuleSets array and the\n * modelValidationRules in the model. Theoretically, a form could just use the rulesets\n * defined in the model however in practice this can be limiting\n * @returns\n */\n fvRulesets() {\n const nullValidator = () => undefined;\n\n return [\n ...this.fvFormRuleSets.map((ruleset) => {\n const formRules = {\n ...formRulesGenerator(\n this.$store.getters['i18n/t'],\n { displayKey: ruleset?.translationKey ? this.$store.getters['i18n/t'](ruleset.translationKey) : 'Value' }),\n ...this.fvExtraRules\n };\n\n return {\n ...ruleset,\n rules: ruleset.rules.map((rule) => formRules[rule] || nullValidator),\n formValidationRule: true\n };\n }),\n ...(this?.value?.modelValidationRules || []).map((rule) => ({\n ...rule,\n formValidationRule: false\n }))\n ];\n },\n\n /**\n * If either the fvFormRuleSets or the modelValidationRules throw an error and the associated path\n * isn't in the reportValidationPaths then it'll show up here.\n * Useful for throwing unreported errors into a generic banner\n * @returns\n */\n fvUnreportedValidationErrors() { //\n const paths = this.fvRulesets\n .filter((ruleset) => !!ruleset.formValidationRule && !this.fvReportedValidationPaths.includes(ruleset.path))\n .map((ruleset) => ruleset.path);\n\n const formErrors = this.fvGetPathErrors(paths);\n\n // the model already has a means of producing errors, not reinventing the wheel... yet...\n const modelErrors = this.value.customValidationErrors ? this.value.customValidationErrors(this.value, this.fvReportedValidationPaths) : [];\n\n return [...formErrors, ...modelErrors, ...(this.errors || [])];\n },\n\n /**\n * Checks for any and all errors, regardless of being bound, from the model, or from the form\n * @returns\n */\n fvValidationErrors() {\n const paths = this.fvRulesets.filter((ruleset) => !!ruleset.formValidationRule).map((ruleset) => ruleset.path);\n const formErrors = this.fvGetPathErrors(paths);\n\n // the model already has a means of producing errors, not reinventing the wheel... yet...\n const modelErrors = this.value.customValidationErrors ? this.value.customValidationErrors(this.value) : [];\n\n return [...formErrors, ...modelErrors];\n },\n\n fvFormIsValid() {\n return this.fvValidationErrors.length === 0;\n }\n }\n};\n","import { NAMESPACE_FILTER_NS_PREFIX, NAMESPACE_FILTER_P_PREFIX } from '@shell/utils/namespace-filter';\nimport { mapGetters } from 'vuex';\nimport { ResourceListComponentName } from '../components/ResourceList/resource-list.config';\nimport pAndNFiltering from '@shell/plugins/steve/projectAndNamespaceFiltering.utils';\n\n/**\n * Companion mixin used with `resource-fetch` for `ResourceList` to determine if the user needs to filter the list by a single namespace\n */\nexport default {\n\n data() {\n return { forceUpdateLiveAndDelayed: 0 };\n },\n\n computed: {\n ...mapGetters(['currentProduct', 'currentCluster', 'namespaceFilters']),\n\n /**\n * Does the user need to update the filter to supply a single namespace?\n */\n namespaceFilterRequired() {\n return this.__namespaceRequired && !this.__validFilter;\n },\n\n /**\n * Returns the namespace that requests should be filtered by\n */\n namespaceFilter() {\n return this.__namespaceRequired ? this.__validFilter : '';\n },\n\n /**\n * If the Project/Namespace filter from the header contains a valid ns / project filter ... return it\n */\n __validFilter() {\n const valid = this.namespaceFilters.length && this.namespaceFilters.every((f) => f.startsWith(NAMESPACE_FILTER_NS_PREFIX) || f.startsWith(NAMESPACE_FILTER_P_PREFIX));\n\n return valid ? this.namespaceFilters : null;\n },\n\n /**\n * Do we need to filter the list by a namespace? This will control whether the user is shown an error\n *\n * We shouldn't show an error on pages with resources that aren't namespaced\n */\n __namespaceRequired() {\n if (!pAndNFiltering.isEnabled(this.$store.getters)) {\n return false;\n }\n\n return this.__areResourcesNamespaced;\n },\n\n /**\n * Are all core list resources namespaced?\n */\n __areResourcesNamespaced() {\n // Only enable for the cluster store at the moment. In theory this should work in management as well, as they're both 'steve' stores\n if (this.currentProduct.inStore !== 'cluster') {\n return false;\n }\n\n return (this.loadResources || []).every((type) => {\n const schema = this.$store.getters['cluster/schemaFor'](type);\n\n return schema?.attributes?.namespaced;\n });\n },\n\n },\n\n watch: {\n async namespaceFilter(neu) {\n if (neu) {\n // When a NS filter is required and the user selects a different one, kick off a new set of API requests\n //\n // ResourceList has two modes\n // 1) ResourceList component handles API request to fetch resources\n // 2) Custom list component handles API request to fetch resources\n //\n // This covers case 2\n if (this.$options.name !== ResourceListComponentName && !!this.$fetch) {\n await this.$fetch();\n }\n // Ensure any live/delayed columns get updated\n this.forceUpdateLiveAndDelayed = new Date().getTime();\n }\n }\n }\n};\n","import { NAMESPACE_FILTER_NAMESPACED_YES, NAMESPACE_FILTER_NAMESPACED_NO, NAMESPACE_FILTER_ALL } from '@shell/utils/namespace-filter';\nimport { NAMESPACE } from '@shell/config/types';\nimport { ALL_NAMESPACES } from '@shell/store/prefs';\nimport { mapGetters } from 'vuex';\nimport { ResourceListComponentName } from '../components/ResourceList/resource-list.config';\nimport paginationUtils from '@shell/utils/pagination-utils';\nimport debounce from 'lodash/debounce';\nimport { PaginationParamFilter, PaginationFilterField, PaginationArgs } from '@shell/types/store/pagination.types';\nimport stevePaginationUtils from '@shell/plugins/steve/steve-pagination-utils';\n\n/**\n * Companion mixin used with `resource-fetch` for `ResourceList` to determine if the user needs to filter the list by a single namespace\n */\nexport default {\n\n props: {\n namespaced: {\n type: Boolean,\n default: null, // Automatic from schema\n },\n\n /**\n * Where in the ui this mixin is used. For instance the home page cluster list would be `home`\n */\n context: {\n type: String,\n default: null,\n },\n },\n\n data() {\n return {\n forceUpdateLiveAndDelayed: 0,\n /**\n * This of type `OptPagination`\n */\n pPagination: null,\n // Avoid scenarios where namespace is updated just before other pagination changes come in\n debouncedSetPagination: debounce(this.setPagination, 50),\n\n /**\n * Apply these additional filters given the ns / project header selection\n */\n requestFilters: {\n filters: [],\n projectsOrNamespaces: [],\n },\n };\n },\n\n methods: {\n /**\n * @param {PaginationArgs} pagination\n */\n setPagination(pagination) {\n if (pagination) {\n this.pPagination = pagination;\n }\n },\n\n paginationChanged(event) {\n const searchFilters = event.filter.searchQuery ? event.filter.searchFields.map((field) => new PaginationFilterField({\n field,\n value: event.filter.searchQuery,\n exact: false,\n })) : [];\n\n const pagination = new PaginationArgs({\n page: event.page,\n pageSize: event.perPage,\n sort: event.sort?.map((field) => ({\n field,\n asc: !event.descending\n })),\n projectsOrNamespaces: this.requestFilters.projectsOrNamespaces,\n filters: [\n new PaginationParamFilter({ fields: searchFilters }),\n ...this.requestFilters.filters, // Apply the additional filters. these aren't from the user but from ns filtering\n ]\n });\n\n this.debouncedSetPagination(pagination);\n },\n\n namespaceFilterChanged(neu) {\n if (!this.canPaginate || !this.isNamespaced) {\n return;\n }\n\n const {\n projectsOrNamespaces,\n filters\n } = stevePaginationUtils.createParamsFromNsFilter({\n allNamespaces: this.$store.getters[`${ this.currentProduct?.inStore }/all`](NAMESPACE),\n selection: neu,\n isAllNamespaces: this.isAllNamespaces,\n isLocalCluster: this.$store.getters['currentCluster'].isLocal,\n showDynamicRancherNamespaces: this.showDynamicRancherNamespaces,\n productHidesSystemNamespaces: this.productHidesSystemNamespaces,\n });\n\n this.requestFilters.filters = filters;\n this.requestFilters.projectsOrNamespaces = projectsOrNamespaces;\n\n // Kick off a change\n if (this.pPagination) {\n this.debouncedSetPagination({ ...this.pPagination });\n }\n },\n\n /**\n * @param {PaginationArgs} neu\n * @param {PaginationArgs} old\n */\n paginationEqual(neu, old) {\n if (!neu.page) {\n // Not valid, count as not equal\n return false;\n }\n\n if (paginationUtils.paginationEqual(neu, old)) {\n return true;\n }\n\n return false;\n }\n },\n\n computed: {\n ...mapGetters(['currentProduct', 'isAllNamespaces']),\n\n /**\n * Why is this a specific getter and not not in mapGetters?\n *\n * Adding it to mapGetters means the kubewarden unit tests fail as they don't mock it....\n */\n namespaceFilters() {\n return this.$store.getters['namespaceFilters'];\n },\n\n /**\n * Does the user need to update the filter to supply valid options?\n */\n paginationNsFilterRequired() {\n return this.canPaginate && !this.__validPaginationNsFilter;\n },\n\n /**\n * Check if the Project/Namespace filter from the header contains a valid ns / project filter\n */\n __validPaginationNsFilter() {\n return paginationUtils.validateNsProjectFilters(this.namespaceFilters);\n },\n\n /**\n * ResourceList imports resource-fetch --> this mixin\n * When there is no custom list this is fine (ResourceList with mixins --> ResourceTable)\n * When there is a custom list there are two instances of this mixin (ResourceList with mixins --> CustomList with mixins --> ResourceTable)\n * - In this scenario, reduce churn by exiting earlier if mixin is from parent ResourceList and leave work for CustomList mixins\n */\n isResourceList() {\n return !!this.hasListComponent;\n },\n\n /**\n * Is Pagination supported and has the table supplied pagination settings from the table?\n */\n pagination() {\n if (this.isResourceList) {\n return;\n }\n\n return this.canPaginate ? this.pPagination : '';\n },\n\n /**\n * Should this list be paginated via API?\n */\n canPaginate() {\n if (this.isResourceList) {\n return;\n }\n\n if (!this.resource) {\n return false;\n }\n\n const args = {\n id: this.resource.id || this.resource,\n context: this.context,\n };\n\n return this.resource && this.$store.getters[`${ this.inStore }/paginationEnabled`]?.(args);\n },\n\n paginationResult() {\n if (this.isResourceList || !this.canPaginate) {\n return;\n }\n\n return this.havePaginated?.result;\n },\n\n havePaginated() {\n if (this.isResourceList) {\n return;\n }\n\n return this.$store.getters[`${ this.inStore }/havePage`](this.resource);\n },\n\n /**\n * Links to ns.isSystem and covers things like ns with system annotation, hardcoded list, etc\n */\n productHidesSystemNamespaces() {\n return this.currentProduct?.hideSystemResources;\n },\n\n /**\n * Links to ns.isObscure and covers things like `c-`, `user-`, etc (see OBSCURE_NAMESPACE_PREFIX)\n */\n showDynamicRancherNamespaces() {\n return this.$store.getters['prefs/get'](ALL_NAMESPACES);\n },\n\n isNamespaced() {\n if (this.namespaced !== null) { // null is the default value\n // This is an override, but only if it's set\n return !!this.namespaced;\n }\n\n return this.schema?.attributes?.namespaced;\n }\n },\n\n watch: {\n /**\n * Monitor the rows to ensure deleting the last entry in a server-side paginated page doesn't\n * result in an empty page\n */\n rows(neu) {\n if (!this.canPaginate || !this.pagination || this.isResourceList) {\n return;\n }\n\n if (this.pagination.page > 1 && neu.length === 0) {\n this.setPagination({\n ...this.pagination,\n page: this.pagination.page - 1\n });\n }\n },\n\n namespaceFilters: {\n immediate: true,\n async handler(neu, old) {\n if (!this.canPaginate || !this.isNamespaced) {\n return;\n }\n\n if (this.isResourceList) {\n return;\n }\n\n // Transitioning from no ns filters to no ns filters should be avoided\n const neuEmpty = !neu || neu.length === 0 || neu[0] === NAMESPACE_FILTER_ALL;\n const oldEmpty = !old || old.length === 0 || old[0] === NAMESPACE_FILTER_ALL;\n\n if (neuEmpty && oldEmpty) {\n const allButHidingSystemResources = this.isAllNamespaces && (!this.showDynamicRancherNamespaces || this.productHidesSystemNamespaces);\n\n // If we're showing all... and not hiding system or obscure ns then don't go through filter process\n if (!allButHidingSystemResources) {\n return;\n }\n }\n\n // Transitioning to a ns filter that doesn't affect the list should be avoided\n if (neu.length === 1) {\n if ([NAMESPACE_FILTER_NAMESPACED_YES, NAMESPACE_FILTER_NAMESPACED_NO].includes(neu[0])) {\n return;\n }\n }\n\n this.namespaceFilterChanged(neu);\n }\n },\n\n /**\n * When a pagination is required and the user changes page / sort / filter, kick off a new set of API requests\n *\n * @param {StorePaginationResult} neu\n * @param {StorePaginationResult} old\n */\n async pagination(neu, old) {\n if (!this.canPaginate) {\n return;\n }\n\n // ResourceList has two modes\n // 1) ResourceList component handles API request to fetch resources\n // 2) Custom list component handles API request to fetch resources\n //\n // This covers case 2, so ignore case 1\n if (this.isResourceList) {\n return;\n }\n\n if (neu && this.$options.name !== ResourceListComponentName && !!this.$fetch && !this.paginationEqual(neu, old)) {\n await this.$fetch(false);\n // Ensure any live/delayed columns get updated\n this.forceUpdateLiveAndDelayed = new Date().getTime();\n }\n },\n\n /**\n * If the pagination result has changed fetch secondary resources\n *\n * Lists should implement fetchPageSecondaryResources to fetch them\n *\n * @param {StorePaginationResult} neu\n * @param {StorePaginationResult} old\n */\n async paginationResult(neu, old) {\n if (!this.fetchPageSecondaryResources || !neu ) { // || neu.timestamp === old?.timestamp\n return;\n }\n\n if (neu.timestamp === old?.timestamp) {\n // This occurs when the user returns to the page... and pagination hasn't actually changed\n return;\n }\n\n await this.fetchPageSecondaryResources({\n canPaginate: this.canPaginate, force: false, page: this.rows, pagResult: this.paginationResult\n });\n }\n },\n};\n","import { mapGetters } from 'vuex';\nimport { COUNT, MANAGEMENT } from '@shell/config/types';\nimport { SETTING, DEFAULT_PERF_SETTING } from '@shell/config/settings';\nimport ResourceFetchNamespaced from '@shell/mixins/resource-fetch-namespaced';\nimport ResourceFetchApiPagination from '@shell/mixins/resource-fetch-api-pagination';\n\n// Number of pages to fetch when loading incrementally\nconst PAGES = 4;\n\nexport default {\n\n mixins: [\n ResourceFetchNamespaced,\n ResourceFetchApiPagination\n ],\n\n inheritAttrs: false,\n\n data() {\n // fetching the settings related to manual refresh from global settings\n const perfSetting = this.$store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.UI_PERFORMANCE);\n let perfConfig = {};\n\n if (perfSetting && perfSetting.value) {\n try {\n perfConfig = JSON.parse(perfSetting.value);\n } catch (e) {\n console.warn('ui-performance setting contains invalid data'); // eslint-disable-line no-console\n }\n } else {\n perfConfig = DEFAULT_PERF_SETTING;\n }\n\n // Normally owner components supply `resource` and `inStore` as part of their data, however these are needed here before parent data runs\n // So set up both here\n const params = { ...this.$route.params };\n const resource = params.resource || this.schema?.id; // Resource can either be on a page showing single list, or a page of a resource showing a list of another resource\n const inStore = this.$store.getters['currentStore'](resource);\n\n return {\n inStore,\n perfConfig,\n init: false,\n multipleResources: [],\n loadResources: [resource],\n // manual refresh vars\n hasManualRefresh: false,\n watch: true,\n isTooManyItemsToAutoUpdate: false,\n force: false,\n // incremental loading vars\n incremental: false,\n fetchedResourceType: [],\n paginating: null,\n isFirstLoad: true,\n };\n },\n\n beforeUnmount() {\n // make sure this only runs once, for the initialized instance\n if (this.init) {\n // clear up the store to make sure we aren't storing anything that might interfere with the next rendered list view\n this.$store.dispatch('resource-fetch/clearData');\n\n this.fetchedResourceType.forEach((item) => {\n this.$store.dispatch(`${ item.currStore }/incrementLoadCounter`, item.type);\n });\n }\n },\n\n props: {\n /**\n * Add additional filtering to the rows\n *\n * Should only be used when we have all results, otherwise we're filtering a page which already has been filtered...\n */\n localFilter: {\n type: Function,\n default: null,\n },\n\n /**\n * Add additional filtering to the pagination api request\n */\n apiFilter: {\n type: Function,\n default: null,\n },\n },\n\n computed: {\n ...mapGetters({ refreshFlag: 'resource-fetch/refreshFlag' }),\n\n rows() {\n const currResource = this.fetchedResourceType.find((item) => item.type === this.resource);\n\n if (currResource) {\n const rows = this.$store.getters[`${ currResource.currStore }/all`](this.resource);\n\n if (this.canPaginate) {\n if (this.havePaginated) {\n return rows;\n }\n } else {\n return this.localFilter ? this.localFilter(rows) : rows;\n }\n }\n\n return [];\n },\n\n loading() {\n if (this.canPaginate) {\n return this.paginating === null ? true : this.paginating;\n }\n\n return this.rows.length ? false : this.$fetchState.pending;\n },\n },\n\n watch: {\n async refreshFlag(neu) {\n // this is where the data assignment will trigger the update of the list view...\n if (this.init && neu) {\n await this.$fetch();\n if (this.canPaginate && this.fetchPageSecondaryResources) {\n this.fetchPageSecondaryResources({\n canPaginate: this.canPaginate, force: true, page: this.rows, pagResult: this.paginationResult\n });\n }\n }\n },\n\n loading(newValue, oldValue) {\n if (oldValue && !newValue) {\n this.isFirstLoad = false;\n }\n }\n },\n\n methods: {\n // this defines all the flags needed for the mechanism\n // to work. They should be defined based on the main list view\n // resource that is to be displayed. The secondary resources\n // fetched should follow what was defined (if it is manual and/or incremental)\n $initializeFetchData(type, multipleResources = [], storeType) {\n if (!this.init) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n this.__gatherResourceFetchData(type, multipleResources, currStore);\n\n // make sure after init that, if we have a manual refresh, we always set the force = true\n if (!this.watch) {\n this.force = true;\n }\n\n if (this.isTooManyItemsToAutoUpdate) {\n this.hasManualRefresh = true;\n }\n }\n },\n // data fetching for the mechanism\n $fetchType(type, multipleResources = [], storeType) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n this.$initializeFetchData(type, multipleResources, currStore);\n\n if (!this.fetchedResourceType.find((item) => item.type === type)) {\n this.fetchedResourceType.push({\n type,\n currStore\n });\n }\n\n const schema = this.$store.getters[`${ currStore }/schemaFor`](type);\n\n if (this.canPaginate) {\n if (!this.pagination) {\n // This is the initial fetchType made when resource lists are created...\n // when pagination is enabled we want to wait for the correct set of initial pagination settings to make the call\n return;\n }\n const opt = {\n hasManualRefresh: this.hasManualRefresh,\n pagination: { ...this.pagination },\n force: this.paginating !== null // Fix for manual refresh (before ripped out).\n };\n\n if (this.apiFilter) {\n opt.paginating = this.apiFilter(opt.pagination);\n }\n\n this['paginating'] = true;\n\n const that = this;\n\n return this.$store.dispatch(`${ currStore }/findPage`, {\n type,\n opt\n })\n .finally(() => (that['paginating'] = false));\n }\n\n let incremental = 0;\n\n if (this.incremental) {\n const resourceCount = this.__getCountForResources([type], this.namespaceFilter, currStore);\n\n incremental = Math.ceil(resourceCount / PAGES);\n }\n\n const opt = {\n incremental,\n watch: this.watch,\n force: this.force,\n hasManualRefresh: this.hasManualRefresh\n };\n\n if (schema?.attributes?.namespaced) { // Is this specific resource namespaced (could be primary or secondary resource)?\n opt.namespaced = this.namespaceFilter; // namespaceFilter will only be populated if applicable for primary resource\n }\n\n return this.$store.dispatch(`${ currStore }/findAll`, {\n type,\n opt\n });\n },\n\n __getCountForResources(resourceNames, namespace, storeType) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n return resourceNames.reduce((res, type) => res + this.__getCountForResource(type, namespace, currStore), 0);\n },\n\n __getCountForResource(resourceName, namespace, storeType) {\n const resourceCounts = this.$store.getters[`${ storeType }/all`](COUNT)[0]?.counts[`${ resourceName }`]; // NB `rancher` store behaves differently, lacks counts but has resource\n const resourceCount = namespace && resourceCounts?.namespaces ? resourceCounts?.namespaces[namespace]?.count : resourceCounts?.summary?.count;\n\n return resourceCount || 0;\n },\n\n __gatherResourceFetchData(resourceName, multipleResources, currStore) {\n // flag to prevent a first data update being triggered from the requestData watcher\n this.init = true;\n\n // manual refresh settings config\n const manualDataRefreshEnabled = this.perfConfig?.manualRefresh?.enabled;\n const manualDataRefreshThreshold = parseInt(this.perfConfig?.manualRefresh?.threshold || '0', 10);\n\n // incremental loading settings config\n const incrementalLoadingEnabled = this.perfConfig?.incrementalLoading?.enabled;\n const incrementalLoadingThreshold = parseInt(this.perfConfig?.incrementalLoading?.threshold || '0', 10);\n\n // other vars\n this.multipleResources = multipleResources;\n let resourceCount = 0;\n\n // manual refresh vars\n let watch = true;\n let isTooManyItemsToAutoUpdate = false;\n\n // incremental loading vars\n let incremental = false;\n\n // get resource counts\n const resourcesForCount = this.multipleResources.length ? this.multipleResources : [resourceName];\n\n resourceCount = this.__getCountForResources(resourcesForCount, this.namespaceFilter, currStore);\n\n // manual refresh check\n if (manualDataRefreshEnabled && resourceCount >= manualDataRefreshThreshold) {\n watch = false;\n isTooManyItemsToAutoUpdate = true;\n } else if (this.canPaginate) {\n isTooManyItemsToAutoUpdate = true;\n }\n\n // incremental loading check\n incremental = incrementalLoadingEnabled && incrementalLoadingThreshold > 0 && resourceCount >= incrementalLoadingThreshold;\n\n // pass on the flag that controls the appearance of the manual refresh button on the sortable table\n this.$store.dispatch('resource-fetch/updateIsTooManyItems', isTooManyItemsToAutoUpdate);\n\n // set vars on mixin to be used on $fetchType\n this.watch = watch;\n this.isTooManyItemsToAutoUpdate = isTooManyItemsToAutoUpdate;\n this.incremental = incremental;\n },\n },\n};\n","\nexport default {\n data() {\n return { overridesMixinPreventDoubleTriggerKeysOpen: false };\n },\n methods: {\n mappedKeys(map, vm) {\n // Defaults found at - https://github.com/sagalbot/vue-select/blob/master/src/components/Select.vue#L947\n const out = { ...map };\n\n // tab\n (out[9] = (e) => {\n // user esc'd\n if (!vm.open) {\n return;\n }\n\n e.preventDefault();\n });\n\n // escape\n (out[27] = (e) => {\n vm.open = false;\n vm.search = '';\n\n this.$refs.select.focus();\n\n return false;\n });\n\n // enter\n (out[13] = (e, opt) => {\n if (!vm.open) {\n vm.open = true;\n\n return;\n }\n\n let option = vm.filteredOptions[vm.typeAheadPointer];\n\n vm.$emit('option:selecting', option);\n\n if (!vm.isOptionSelected(option)) {\n if (vm.taggable && !vm.optionExists(option)) {\n vm.$emit('option:created', option);\n }\n if (vm.multiple) {\n option = vm.selectedValue.concat(option);\n }\n vm.updateValue(option);\n vm.$emit('option:selected', option);\n\n if (vm.closeOnSelect) {\n // this ties in to the Select component implementation\n // so that the enter key handler doesn't open the dropdown again\n this.overridesMixinPreventDoubleTriggerKeysOpen = true;\n vm.open = false;\n vm.typeAheadPointer = -1;\n }\n\n if (vm.clearSearchOnSelect) {\n vm.search = '';\n }\n }\n });\n\n // up.prevent\n (out[38] = (e) => {\n e.preventDefault();\n\n if (!vm.open) {\n vm.open = true;\n }\n\n return vm.typeAheadUp();\n });\n\n // down.prevent\n (out[40] = (e) => {\n e.preventDefault();\n\n if (!vm.open) {\n vm.open = true;\n }\n\n return vm.typeAheadDown();\n });\n\n return out;\n },\n }\n};\n","const EXTERNAL_ID = {\n KIND_SEPARATOR: '://',\n GROUP_SEPARATOR: ':',\n BASE_SEPARATOR: '*',\n ID_SEPARATOR: ':',\n KIND_ALL: 'containers',\n SYSTEM_CATEGORIES: [\n 'Rancher services'\n ],\n CATALOG_DEFAULT_GROUP: 'library',\n};\n\n// Parses externalIds on services into\n// {\n// kind: what kind of id this is supposed to be\n// group: for catalog, what group it's in\n// id: the actual external id\nexport function parseExternalId(externalId) {\n let nameVersion;\n const out = {\n kind: null,\n group: null,\n base: null,\n id: null,\n name: null,\n version: null,\n };\n\n if (!externalId) {\n return out;\n }\n\n let idx = externalId.indexOf(EXTERNAL_ID.KIND_SEPARATOR);\n\n if (idx >= 0) {\n // New style kind://[group:]id\n out.kind = externalId.substr(0, idx);\n\n const rest = externalId.substr(idx + EXTERNAL_ID.KIND_SEPARATOR.length);\n\n idx = rest.indexOf(EXTERNAL_ID.GROUP_SEPARATOR);\n out.id = rest;\n if (idx >= 0) {\n // With group kind://group/id\n out.group = rest.substr(0, idx);\n nameVersion = rest.substr(idx + 1);\n } else {\n // Without group kind://id\n if (out.kind === EXTERNAL_ID.KIND_CATALOG) {\n // For catalog kinds, we have a default group\n out.group = EXTERNAL_ID.CATALOG_DEFAULT_GROUP;\n }\n\n nameVersion = rest;\n }\n } else {\n const dashedIdx = externalId.lastIndexOf('-');\n\n // Old style just an ID\n out.kind = EXTERNAL_ID.KIND_CATALOG;\n const group = EXTERNAL_ID.CATALOG_DEFAULT_GROUP;\n const name = externalId.substr(0, dashedIdx);\n const version = externalId.substr(dashedIdx + 1);\n\n nameVersion = `${ name }${ EXTERNAL_ID.ID_SEPARATOR }${ version }`;\n // defaultgroup:extid:version\n out.id = `${ group }${ EXTERNAL_ID.GROUP_SEPARATOR }${ nameVersion }`;\n out.group = group;\n }\n\n if ( nameVersion ) {\n idx = nameVersion.lastIndexOf(EXTERNAL_ID.ID_SEPARATOR);\n let nameBase;\n\n if ( idx > 0 ) {\n out.version = nameVersion.substr(idx + 1);\n nameBase = nameVersion.substr(0, idx);\n } else {\n nameBase = nameVersion;\n }\n\n out.templateId = `${ out.group }${ EXTERNAL_ID.GROUP_SEPARATOR }${ nameBase }`;\n\n idx = nameBase.lastIndexOf(EXTERNAL_ID.BASE_SEPARATOR);\n if ( idx > 0 ) {\n out.base = nameBase.substr(0, idx);\n out.name = nameBase.substr(idx + 1);\n } else {\n out.name = nameBase;\n }\n }\n\n return out;\n}\n\nexport function parseHelmExternalId(externalId) {\n const out = {\n kind: null,\n group: null,\n base: null,\n id: null,\n name: null,\n version: null,\n };\n\n if (!externalId) {\n return out;\n }\n\n const idx = externalId.indexOf(EXTERNAL_ID.KIND_SEPARATOR);\n\n // not very smart but maybe doesn't need to be?\n if (idx >= 0) {\n out.kind = externalId.substr(0, idx);\n\n let rest = externalId.substr(idx + EXTERNAL_ID.KIND_SEPARATOR.length + 1);\n\n out.id = externalId;\n rest = rest.split('&');\n rest.forEach((it) => {\n const [nm, vl] = it.split('=');\n\n out[nm] = vl;\n });\n }\n\n let catalog = out.catalog;\n\n if ( catalog.includes('/') ) {\n catalog = catalog.replace('/', ':');\n } else {\n catalog = `cattle-global-data:${ catalog }`;\n }\n\n out.templateId = `${ catalog }-${ out.template }`;\n out.templateVersionId = `${ catalog }-${ out.template }-${ out.version }`;\n\n return out;\n}\n","import { MODE, _EDIT } from '@shell/config/query-params';\nimport NormanModel from '@shell/plugins/steve/norman-class';\nimport { parseHelmExternalId } from '@shell/utils/parse-externalid';\n\nexport default class App extends NormanModel {\n get appEditUrl() {\n return this.detailLocation;\n }\n\n goToEdit(moreQuery = {}) {\n const location = this.appEditUrl;\n\n location.query = {\n ...location.query,\n [MODE]: _EDIT,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n get currentVersion() {\n return parseHelmExternalId(this.externalId).version;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class ControllerRevision extends SteveModel {\n get revisionNumber() {\n return this.revision;\n }\n}\n","import Workload from './workload';\n\nexport default class DaemonSet extends Workload {\n async rollBack(cluster, daemonSet, revision) {\n const body = [\n {\n op: 'replace',\n path: '/spec/template',\n value: {\n metadata: revision.data.spec.template.metadata,\n spec: revision.data.spec.template.spec\n }\n }, {\n op: 'replace',\n path: '/metadata/generation',\n value: revision.revision,\n }\n ];\n\n await this.rollBackWorkload(cluster, daemonSet, 'daemonsets', body);\n }\n}\n","import { WORKLOAD_TYPES } from '@shell/config/types';\nimport Workload from './workload';\n\nconst IGNORED_ANNOTATIONS = [\n 'kubectl.kubernetes.io/last-applied-configuration',\n 'deployment.kubernetes.io/revision',\n 'deployment.kubernetes.io/revision-history',\n 'deployment.kubernetes.io/desired-replicas',\n 'deployment.kubernetes.io/max-replicas',\n 'deprecated.deployment.rollback.to',\n];\n\nconst replicasRegEx = /Replicas: (\\d+)/;\n\nexport default class Deployment extends Workload {\n get replicaSetId() {\n const relationships = this.metadata?.relationships || [];\n\n // Find all relevant ReplicaSet relationships\n const replicaSetRelationships = relationships.filter((relationship) => relationship.rel === 'owner' && relationship.toType === WORKLOAD_TYPES.REPLICA_SET\n );\n\n // Filter the ReplicaSets based on replicas > 0\n const activeReplicaSet = replicaSetRelationships.find((relationship) => {\n const replicasMatch = relationship.message?.match(replicasRegEx);\n const replicas = replicasMatch ? parseInt(replicasMatch[1], 10) : 0;\n\n return replicas > 0;\n });\n\n // If no active ReplicaSet is found, fall back to the first one from the list\n const selectedReplicaSet = activeReplicaSet || replicaSetRelationships[0];\n\n return selectedReplicaSet?.toId?.replace(`${ this.namespace }/`, '');\n }\n\n async rollBack(cluster, deployment, revision) {\n const body = [\n {\n op: 'replace',\n path: '/spec/template',\n value: {\n metadata: {\n creationTimestamp: null,\n labels: Object.keys(revision.spec.template.metadata?.labels || {}).reduce((prev, key) => {\n if (key !== 'pod-template-hash') {\n prev[key] = revision.spec.template.metadata.labels[key];\n }\n\n return prev;\n }, {}),\n annotations: Object.keys(revision.spec.template.metadata?.annotations || {}).reduce((prev, key) => {\n if (!IGNORED_ANNOTATIONS.includes(key)) {\n prev[key] = revision.spec.template.metadata.annotations[key];\n }\n\n return prev;\n }, {}),\n },\n spec: revision.spec.template.spec\n }\n }, {\n op: 'replace',\n path: '/metadata/annotations',\n value: { 'deployment.kubernetes.io/revision': revision.metadata.annotations['deployment.kubernetes.io/revision'] }\n }\n ];\n\n await this.rollBackWorkload(cluster, deployment, 'deployments', body);\n }\n}\n","import Workload from './workload';\n\nexport default class ReplicaSet extends Workload {\n get revisionNumber() {\n if (!this.ownedByWorkload) {\n return undefined;\n }\n\n return this.metadata.annotations['deployment.kubernetes.io/revision'];\n }\n}\n","import Workload from './workload';\nimport { WORKLOAD_TYPES, POD, WORKLOAD_TYPE_TO_KIND_MAPPING } from '@shell/config/types';\n\nexport default class StatefulSet extends Workload {\n async rollBack(cluster, statefulSet, revision) {\n const body = [\n {\n op: 'replace',\n path: '/spec/template',\n value: {\n metadata: revision.data.spec.template.metadata,\n spec: revision.data.spec.template.spec\n }\n }, {\n op: 'replace',\n path: '/metadata/generation',\n value: revision.revision,\n }\n ];\n\n await this.rollBackWorkload(cluster, statefulSet, 'statefulsets', body);\n }\n\n // we need to provide a new pods getter for statefulsets because the relationship\n // done on the parent model \"workload\" is not correct\n get pods() {\n const relationships = this.metadata?.relationships || [];\n const podRelationship = relationships.filter((relationship) => relationship.toType === POD)[0];\n\n if (podRelationship) {\n const pods = this.$getters['podsByNamespace'](this.metadata.namespace);\n\n return pods.filter((pod) => {\n // a bit of a duplication of podRelationship, but always safe to check...\n if (pod.metadata?.ownerReferences?.length) {\n const ownerReferencesStatefulSet = pod.metadata?.ownerReferences?.find((own) => own.kind === WORKLOAD_TYPE_TO_KIND_MAPPING[WORKLOAD_TYPES.STATEFUL_SET]);\n\n if (ownerReferencesStatefulSet) {\n return `${ pod.metadata.namespace }/${ ownerReferencesStatefulSet.name }` === this.id;\n }\n }\n\n return false;\n });\n }\n\n return [];\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class HPA extends SteveModel {\n get customValidationRules() {\n return [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n translationKey: 'generic.name',\n type: 'dnsLabel',\n },\n ];\n }\n\n get details() {\n const { spec = {}, status } = this;\n const out = [\n {\n label: spec?.scaleTargetRef?.kind ?? this.t('hpa.tabs.workload'),\n content: spec?.scaleTargetRef?.name,\n },\n {\n label: this.t('hpa.workloadTab.min'),\n content: spec?.minReplicas,\n },\n {\n label: this.t('hpa.workloadTab.max'),\n content: spec?.maxReplicas,\n },\n {\n label: this.t('hpa.workloadTab.current'),\n content: status?.currentReplicas ?? 0,\n },\n {\n label: this.t('hpa.workloadTab.last'),\n content: status?.lastScaleTime,\n formatter: 'LiveDate',\n }\n ];\n\n return out;\n }\n}\n","import { insertAt } from '@shell/utils/array';\nimport { clone } from '@shell/utils/object';\nimport { WORKLOAD_TYPES, WORKLOAD_TYPE_TO_KIND_MAPPING } from '@shell/config/types';\nimport Workload from './workload';\n\nexport default class CronJob extends Workload {\n get state() {\n if ( this.spec?.suspend ) {\n return 'suspended';\n }\n\n return super.state;\n }\n\n get _availableActions() {\n const out = super._availableActions;\n const suspended = this.spec?.suspend || false;\n\n const jobSchema = this.$getters['schemaFor'](WORKLOAD_TYPES.JOB);\n const canRunNow = !!jobSchema?.collectionMethods.find((x) => ['blocked-post', 'post'].includes(x.toLowerCase()));\n\n insertAt(out, 0, {\n action: 'runNow',\n label: this.t('action.runNow'),\n icon: 'icon icon-spinner',\n enabled: canRunNow,\n bulkable: true,\n });\n\n insertAt(out, 1, {\n action: 'suspend',\n label: this.t('action.suspend'),\n icon: 'icon icon-pause',\n enabled: !suspended && this.canUpdate,\n bulkable: true,\n });\n\n insertAt(out, 2, {\n action: 'resume',\n label: this.t('action.resume'),\n icon: 'icon icon-play',\n enabled: suspended && this.canUpdate,\n bulkable: true,\n });\n\n return out;\n }\n\n async runNow() {\n const ownerRef = {\n apiVersion: this.apiVersion,\n controller: true,\n kind: this.kind,\n name: this.metadata.name,\n uid: this.metadata.uid\n };\n\n // Set type and kind to ensure the correct model is returned (via classify). This object will be persisted to the store\n const job = await this.$dispatch('create', {\n type: WORKLOAD_TYPES.JOB,\n kind: WORKLOAD_TYPE_TO_KIND_MAPPING[WORKLOAD_TYPES.JOB],\n ...clone(this.spec.jobTemplate)\n });\n\n job.metadata = job.metadata || {};\n job.metadata.namespace = this.metadata.namespace;\n // Can't use `generatedName` and no `name`... as this fails schema validation\n job.metadata.name = `${ this.metadata.name }-${ Date.now() }`;\n job.metadata.ownerReferences = [ownerRef];\n\n await job.save();\n\n job.goToDetail();\n }\n\n suspend() {\n this.spec.suspend = true;\n this.save();\n }\n\n resume() {\n this.spec.suspend = false;\n this.save();\n }\n}\n","import Workload from './workload';\nimport { getSecondsDiff } from '@shell/utils/time';\n\nexport default class Job extends Workload {\n get duration() {\n const schema = this.$getters['schemaFor'](this.type);\n const rowValueGetter = this.$rootGetters['type-map/rowValueGetter'];\n\n const { completionTime, startTime } = this.status;\n\n const staticValue = schema && rowValueGetter ? rowValueGetter(schema, 'Duration')(this) : null;\n const seconds = staticValue && startTime ? getSecondsDiff(startTime, completionTime || new Date()) : 0;\n\n return {\n value: completionTime ? { staticValue } : { startTime },\n seconds,\n };\n }\n}\n","import {\n NAMESPACE, NAME, REPO, REPO_TYPE, CHART, VERSION, _VIEW, FROM_TOOLS, _FLAGGED\n} from '@shell/config/query-params';\nimport { CATALOG as CATALOG_ANNOTATIONS, FLEET } from '@shell/config/labels-annotations';\nimport { compare, isPrerelease, sortable } from '@shell/utils/version';\nimport { filterBy } from '@shell/utils/array';\nimport { CATALOG, MANAGEMENT, NORMAN, SECRET } from '@shell/config/types';\nimport { SHOW_PRE_RELEASE } from '@shell/store/prefs';\nimport { set } from '@shell/utils/object';\n\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { compatibleVersionsFor } from '@shell/store/catalog';\n\nexport default class CatalogApp extends SteveModel {\n showMasthead(mode) {\n return mode === _VIEW;\n }\n\n applyDefaults() {\n set(this, 'disableOpenApiValidation', false);\n set(this, 'noHooks', false);\n set(this, 'skipCRDs', false);\n set(this, 'timeout', 300);\n set(this, 'wait', true);\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n const upgrade = {\n action: 'goToUpgrade',\n enabled: true,\n icon: 'icon icon-fw icon-edit',\n label: this.t('catalog.install.action.goToUpgrade'),\n };\n\n out.unshift(upgrade);\n\n return out;\n }\n\n get warnDeletionMessage() {\n if (this.upgradeAvailable === false) {\n const manager = this.spec?.chart?.metadata?.annotations?.[CATALOG_ANNOTATIONS.MANAGED] || 'Rancher';\n\n return this.t('catalog.delete.warning.managed', { manager: manager === 'true' ? 'Rancher' : manager, name: this.name });\n }\n\n return null;\n }\n\n matchingChart(includeHidden) {\n const chart = this.spec?.chart;\n\n if ( !chart ) {\n return;\n }\n\n const chartName = chart.metadata?.name;\n const repoName = chart.metadata?.annotations?.[CATALOG_ANNOTATIONS.SOURCE_REPO_NAME] || this.metadata?.labels?.[CATALOG_ANNOTATIONS.CLUSTER_REPO_NAME];\n const preferRepoType = chart.metadata?.annotations?.[CATALOG_ANNOTATIONS.SOURCE_REPO_TYPE] || 'cluster';\n\n const match = this.$rootGetters['catalog/chart']({\n chartName,\n repoName,\n preferRepoType,\n includeHidden\n });\n\n return match;\n }\n\n get currentVersion() {\n return this.spec?.chart?.metadata?.version;\n }\n\n get upgradeAvailable() {\n // false = does not apply (managed by fleet)\n // null = no upgrade found\n // object = version available to upgrade to\n\n if (\n this.spec?.chart?.metadata?.annotations?.[CATALOG_ANNOTATIONS.MANAGED] ||\n this.spec?.chart?.metadata?.annotations?.[FLEET.BUNDLE_ID]\n ) {\n // Things managed by fleet shouldn't show upgrade available even if there might be.\n return false;\n }\n const chart = this.matchingChart(false);\n\n if ( !chart ) {\n return null;\n }\n\n const workerOSs = this.$rootGetters['currentCluster'].workerOSs;\n\n const showPreRelease = this.$rootGetters['prefs/get'](SHOW_PRE_RELEASE);\n\n const thisVersion = this.spec?.chart?.metadata?.version;\n let versions = chart.versions;\n\n if (!showPreRelease) {\n versions = chart.versions.filter((v) => !isPrerelease(v.version));\n }\n\n versions = compatibleVersionsFor(chart, workerOSs, showPreRelease);\n\n const newestChart = versions?.[0];\n const newestVersion = newestChart?.version;\n\n if ( !thisVersion || !newestVersion ) {\n return null;\n }\n\n if ( compare(thisVersion, newestVersion) < 0 ) {\n return cleanupVersion(newestVersion);\n }\n\n return null;\n }\n\n get upgradeAvailableSort() {\n const version = this.upgradeAvailable;\n\n if ( !version ) {\n return '~'; // Tilde sorts after all numbers and letters\n }\n\n return sortable(version);\n }\n\n get currentVersionCompatible() {\n const workerOSs = this.$rootGetters['currentCluster'].workerOSs;\n\n const chart = this.matchingChart(false);\n const thisVersion = this.spec?.chart?.metadata?.version;\n\n if (!chart) {\n return true;\n }\n\n const versionInChart = chart.versions.find((version) => version.version === thisVersion);\n\n if (!versionInChart) {\n return true;\n }\n const compatibleVersions = compatibleVersionsFor(chart, workerOSs, true) || [];\n\n const thisVersionCompatible = !!compatibleVersions.find((version) => version.version === thisVersion);\n\n return thisVersionCompatible;\n }\n\n get stateDescription() {\n if (this.currentVersionCompatible) {\n return null;\n }\n if (this.upgradeAvailable) {\n return this.t('catalog.os.versionIncompatible');\n }\n\n return this.t('catalog.os.chartIncompatible');\n }\n\n goToUpgrade(forceVersion, fromTools) {\n const match = this.matchingChart(true);\n const versionName = this.spec?.chart?.metadata?.version;\n const query = {\n [NAMESPACE]: this.metadata.namespace,\n [NAME]: this.metadata.name,\n [VERSION]: forceVersion || versionName,\n };\n\n if ( match ) {\n query[REPO] = match.repoName;\n query[REPO_TYPE] = match.repoType;\n query[CHART] = match.chartName;\n }\n\n if ( fromTools ) {\n query[FROM_TOOLS] = _FLAGGED;\n }\n\n this.currentRouter().push({\n name: 'c-cluster-apps-charts-install',\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n },\n query,\n });\n }\n\n get details() {\n const t = this.$rootGetters['i18n/t'];\n\n const first = this.spec?.info?.firstDeployed;\n const last = this.spec?.info?.lastDeployed;\n\n if ( first && last && first !== last ) {\n return [\n {\n label: t('model.\"catalog.cattle.io.app\".lastDeployed'),\n formatter: 'LiveDate',\n content: last,\n },\n ];\n }\n\n return [];\n }\n\n get nameDisplay() {\n const out = this.spec?.name || this.metadata?.name || this.id || '';\n\n return out;\n }\n\n get chartDisplay() {\n const name = this.spec?.chart?.metadata?.name || '?';\n\n return `${ name }:${ this.versionDisplay }`;\n }\n\n get versionDisplay() {\n return cleanupVersion(this.spec?.chart?.metadata?.version);\n }\n\n get versionSort() {\n return sortable(this.versionDisplay);\n }\n\n async remove(opt = {}) {\n const res = await this.doAction('uninstall', opt);\n\n const operation = await this.$dispatch('find', {\n type: CATALOG.OPERATION,\n id: `${ res.operationNamespace }/${ res.operationName }`\n });\n\n try {\n await operation.waitForLink('logs');\n operation.openLogs();\n } catch (e) {\n // The wait times out eventually, move on...\n }\n }\n\n get relatedResourcesToRemove() {\n return async() => {\n const crd = this.spec.chart.metadata.annotations[CATALOG_ANNOTATIONS.AUTO_INSTALL].replace('=match', '');\n\n return await this.$dispatch('find', {\n type: CATALOG.APP,\n id: `${ this.metadata.namespace }/${ crd }`\n });\n };\n }\n\n get canDelete() {\n return this.hasAction('uninstall');\n }\n\n get deployedResources() {\n return filterBy(this.metadata?.relationships || [], 'rel', 'helmresource');\n }\n\n get deployedAsMultiCluster() {\n return async() => {\n try {\n const mcapps = await this.$dispatch('management/findAll', { type: MANAGEMENT.MULTI_CLUSTER_APP }, { root: true })\n .catch(() => {\n throw new Error(\"You don't have permission to list multi-cluster apps\");\n });\n\n if (mcapps) {\n return mcapps.find((mcapp) => mcapp.spec?.targets?.find((target) => target.appName === this.metadata?.name));\n }\n } catch (e) {}\n\n return false;\n };\n }\n\n async deployedAsLegacy() {\n await this.fetchValues();\n\n if (this.values?.global) {\n const { clusterName, projectName } = this.values.global;\n\n if (clusterName && projectName) {\n try {\n const legacyApp = await this.$dispatch('rancher/find', {\n type: NORMAN.APP,\n id: `${ projectName }:${ this.metadata?.name }`,\n opt: { url: `/v3/project/${ clusterName }:${ projectName }/apps/${ projectName }:${ this.metadata?.name }` }\n }, { root: true });\n\n if (legacyApp) {\n return legacyApp;\n }\n } catch (e) {}\n }\n }\n\n return false;\n }\n\n /**\n * User and Chart values live in a helm secret, so fetch it (with special param)\n */\n async fetchValues(force = false) {\n if (!this.secretId) {\n // If there's no secret id this isn't ever going to work, no need to carry on\n return;\n }\n\n const haveValues = !!this._values && !!this._chartValues;\n\n if (haveValues && !force) {\n // If we already have the required values and we're not forced to re-fetch, no need to carry on\n return;\n }\n\n try {\n await this.$dispatch('find', {\n type: SECRET,\n id: this.secretId,\n opt: {\n force: force || (!!this._secret && !haveValues), // force if explicitly requested or there's ean existing secret without the required values we have a secret without the values in (Secret has been fetched another way)\n watch: false, // Cannot watch with custom params (they are dropped on calls made when resyncing over socket)\n params: { includeHelmData: true }\n }\n });\n } catch (e) {\n console.error(`Cannot find values for ${ this.id } (unable to fetch)`, e); // eslint-disable-line no-console\n }\n }\n\n get secretId() {\n const metadata = this.metadata;\n const secretReference = metadata.ownerReferences?.find((ow) => ow.kind.toLowerCase() === SECRET);\n\n const secretId = secretReference?.name;\n const secretNamespace = metadata.namespace;\n\n if (!secretNamespace || !secretId) {\n console.warn(`Cannot find values for ${ this.id } (cannot find related secret namespace or id)`); // eslint-disable-line no-console\n\n return null;\n }\n\n return `${ secretNamespace }/${ secretId }`;\n }\n\n get _secret() {\n return this.secretId ? this.$getters['byId'](SECRET, this.secretId) : null;\n }\n\n _validateSecret(noun) {\n if (this._secret === undefined) {\n throw new Error(`Cannot find ${ noun } for ${ this.id } (chart secret has not been fetched via app \\`fetchValues\\`)`);\n }\n\n if (this._secret === null) {\n throw new Error(`Cannot find ${ noun } for ${ this.id } (chart secret cannot or has failed to fetch) `);\n }\n }\n\n /**\n * The user's helm values\n */\n get values() {\n this._validateSecret('values');\n\n return this._values;\n }\n\n get _values() {\n return this._secret?.data?.release?.config;\n }\n\n /**\n * The Charts default helm values\n */\n get chartValues() {\n this._validateSecret('chartValues');\n\n return this._chartValues;\n }\n\n get _chartValues() {\n return this._secret?.data?.release?.chart?.values;\n }\n}\n\nfunction cleanupVersion(version) {\n if ( !version ) {\n return '?';\n }\n\n if ( version.match(/^v/i) ) {\n version = version.substr(1);\n }\n\n const hash = version.match(/[0-9a-f]{32,}/);\n\n if ( hash ) {\n version = version.replace(hash[0], hash[0].substr(0, 7));\n }\n\n return version;\n}\n","import { parse } from '@shell/utils/url';\nimport { CATALOG } from '@shell/config/labels-annotations';\nimport { insertAt } from '@shell/utils/array';\nimport { CATALOG as CATALOG_TYPE } from '@shell/config/types';\nimport { colorForState, stateDisplay } from '@shell/plugins/dashboard-store/resource-class';\n\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class ClusterRepo extends SteveModel {\n applyDefaults() {\n if ( !this.spec ) {\n this['spec'] = { url: '' };\n }\n }\n\n get _isClusterRepoDisabled() {\n return this.spec?.enabled === false;\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n insertAt(out, 0, { divider: true });\n\n if (this._isClusterRepoDisabled) {\n insertAt(out, 1, {\n action: 'enableClusterRepo',\n label: this.t('action.enable'),\n icon: 'icon icon-play',\n enabled: true,\n bulkable: true,\n });\n } else {\n insertAt(out, 1, {\n action: 'disableClusterRepo',\n label: this.t('action.disable'),\n icon: 'icon icon-pause',\n enabled: true,\n bulkable: true,\n });\n\n insertAt(out, 0, {\n action: 'refresh',\n label: this.t('action.refresh'),\n icon: 'icon icon-refresh',\n enabled: !!this.links.update,\n bulkable: true,\n });\n }\n\n return out;\n }\n\n async refresh() {\n const now = (new Date()).toISOString().replace(/\\.\\d+Z$/, 'Z');\n\n this.spec.forceUpdate = now;\n await this.save();\n\n await this.waitForState('active', 10000, 1000);\n\n this.$dispatch('catalog/load', { force: true, reset: true }, { root: true });\n }\n\n async disableClusterRepo() {\n this.spec.enabled = false;\n await this.save();\n }\n\n async enableClusterRepo() {\n this.spec.enabled = true;\n await this.save();\n }\n\n get isGit() {\n return !!this.spec?.gitRepo;\n }\n\n get isOciType() {\n const hasExplicitOciUrl = this.spec.url?.split(':')[0] === 'oci';\n // insecurePlainHttp is only valid for OCI URL's and allows insecure connections to registries without enforcing TLS checks\n const hasInsecurePlainHttp = Object.prototype.hasOwnProperty.call(this.spec, ('insecurePlainHttp'));\n\n return hasExplicitOciUrl || hasInsecurePlainHttp;\n }\n\n get isRancherSource() {\n let parsed;\n\n if ( this.spec?.url && this.spec?.gitRepo ) {\n // Well that's suspicious...\n return false;\n }\n\n if ( this.spec?.url ) {\n parsed = parse(this.spec.url);\n if ( parsed && ok(parsed.host) ) {\n return true;\n }\n }\n\n if ( this.spec?.gitRepo ) {\n parsed = parse(this.spec.gitRepo);\n if ( parsed && ok(parsed.host) ) {\n return true;\n }\n }\n\n return false;\n\n function ok(host) {\n host = (host || '').toLowerCase();\n\n return host === 'rancher.io' || host.endsWith('.rancher.io');\n }\n }\n\n get isRancher() {\n return this.isRancherSource && this.metadata.name === 'rancher-charts';\n }\n\n get isPartner() {\n return this.isRancherSource && this.metadata.name === 'rancher-partner-charts';\n }\n\n get color() {\n if ( this.isRancher ) {\n return 'rancher';\n } else if ( this.isPartner ) {\n return 'partner';\n } else {\n const color = parseInt(this.metadata?.annotations?.[CATALOG.COLOR], 10);\n\n if ( isNaN(color) || color <= 0 || color > 8 ) {\n return null;\n }\n\n return `color${ color }`;\n }\n }\n\n get canLoad() {\n return this.metadata?.state?.name === 'active';\n }\n\n get typeDisplay() {\n if ( this.spec.gitRepo ) {\n return 'git';\n } else if ( this.spec.url ) {\n return this.isOciType ? 'oci' : 'http';\n } else {\n return '?';\n }\n }\n\n get nameDisplay() {\n const name = this.metadata?.name;\n const key = `catalog.repo.name.\"${ name }\"`;\n\n return this.$rootGetters['i18n/withFallback'](key, null, name);\n }\n\n get urlDisplay() {\n return this.status?.url || this.spec.gitRepo || this.spec.url;\n }\n\n get branchDisplay() {\n return this.spec?.gitBranch || '(default)';\n }\n\n get details() {\n return [\n {\n label: 'Type',\n content: this.typeDisplay,\n },\n {\n label: 'Downloaded',\n content: this.status.downloadTime,\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n },\n ];\n }\n\n get stateObj() {\n return this.metadata?.state ? {\n ...this.metadata.state,\n transitioning: this.metadata.generation > this.status?.observedGeneration ? false : this.metadata.state.transitioning\n } : undefined;\n }\n\n get stateDisplay() {\n if (this._isClusterRepoDisabled) {\n return this.t('generic.disabled');\n } else {\n return stateDisplay(this.state);\n }\n }\n\n get stateBackground() {\n if (this._isClusterRepoDisabled) {\n return 'badge-disabled';\n } else {\n return colorForState(this.state, this.stateObj?.error, this.stateObj?.transitioning).replace('text-', 'bg-');\n }\n }\n\n waitForOperation(operationId, timeout, interval = 2000) {\n return this.waitForTestFn(() => {\n if (!this.$getters['schemaFor'](CATALOG_TYPE.OPERATION)) {\n return false;\n }\n if (this.$getters['byId'](CATALOG_TYPE.OPERATION, operationId)) {\n return true;\n }\n this.$dispatch('find', {\n type: CATALOG_TYPE.OPERATION,\n id: operationId\n });\n }, `catalog operation fetch`, timeout, interval);\n }\n}\n","import { findBy, insertAt } from '@shell/utils/array';\nimport { ucFirst } from '@shell/utils/string';\n\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class CatalogOperation extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n const removeAction = findBy(out, 'altAction', ' remove');\n let idx = out.length - 1;\n\n if ( removeAction ) {\n idx = out.indexOf(removeAction);\n }\n\n const openLogs = {\n action: 'openLogs',\n enabled: true,\n icon: 'icon icon-fw icon-chevron-right',\n label: this.t('action.openLogs'),\n total: 1,\n };\n\n insertAt(out, idx + 1, openLogs);\n insertAt(out, idx + 2, { divider: true });\n\n return out;\n }\n\n openLogs() {\n this.$dispatch('wm/open', {\n id: `${ this.id }-logs`,\n label: `${ ucFirst(this.status.action) } ${ this.status.namespace }:${ this.status?.releaseName || 'chart' }`,\n icon: 'file',\n component: 'ContainerLogs',\n attrs: {\n pod: this, // Not quite a pod, but close enough\n url: this.links.logs,\n }\n }, { root: true });\n }\n}\n","import ClusterRepo from './catalog.cattle.io.clusterrepo';\n\nexport default class CatalogRepo extends ClusterRepo {\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nconst CACHE_STATE = Object.freeze({\n CACHED: 'cached',\n DISABLED: 'disabled',\n PENDING: 'pending',\n});\n\nexport default class UIPlugin extends SteveModel {\n get name() {\n return this.spec?.plugin?.name;\n }\n\n get description() {\n return this.spec?.plugin?.description;\n }\n\n get version() {\n return this.spec?.plugin?.version;\n }\n\n get isInitialized() {\n return this.status?.cacheState !== CACHE_STATE.PENDING;\n }\n\n get pluginMetadata() {\n return this.spec?.plugin?.metadata || {};\n }\n\n get isDeveloper() {\n return this.pluginMetadata?.developer === 'true';\n }\n\n get plugin() {\n return this.spec?.plugin || {};\n }\n}\n","import { compatibleVersionsFor } from '@shell/store/catalog';\nimport {\n REPO_TYPE, REPO, CHART, VERSION, _FLAGGED, HIDE_SIDE_NAV\n} from '@shell/config/query-params';\nimport { BLANK_CLUSTER } from '@shell/store/store-types.js';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class Chart extends SteveModel {\n queryParams(from, hideSideNav) {\n let version;\n const chartVersions = this.versions;\n const currentCluster = this.$rootGetters['currentCluster'];\n const workerOSs = currentCluster?.workerOSs;\n const compatibleVersions = compatibleVersionsFor(this, workerOSs);\n\n if (compatibleVersions.length) {\n version = compatibleVersions[0].version;\n } else {\n version = chartVersions[0].version;\n }\n\n const out = {\n [REPO_TYPE]: this.repoType,\n [REPO]: this.repoName,\n [CHART]: this.chartName,\n [VERSION]: version,\n };\n\n if ( from ) {\n out[from] = _FLAGGED;\n }\n\n if (hideSideNav) {\n out[HIDE_SIDE_NAV] = _FLAGGED;\n }\n\n return out;\n }\n\n goToInstall(from, clusterId, hideSideNav) {\n const query = this.queryParams(from, hideSideNav);\n const currentCluster = this.$rootGetters['currentCluster'];\n\n this.currentRouter().push({\n name: 'c-cluster-apps-charts-install',\n params: { cluster: clusterId || currentCluster?.id || BLANK_CLUSTER },\n query,\n });\n }\n}\n","import { _VIEW } from '@shell/config/query-params';\nimport { set } from '@shell/utils/object';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class ChartInstallAction extends SteveModel {\n showMasthead(mode) {\n return mode === _VIEW;\n }\n\n applyDefaults() {\n if ( !this.charts ) {\n set(this, 'charts', [\n {}\n ]);\n }\n }\n}\n","import { set } from '@shell/utils/object';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class ChartUpgradeAction extends SteveModel {\n applyDefaults() {\n if ( !this.charts ) {\n set(this, 'charts', [\n {}\n ]);\n }\n }\n}\n","import { NAME as PRODUCT_NAME } from '@shell/config/product/cis';\nimport { CIS } from '@shell/config/types';\nimport { findBy } from '@shell/utils/array';\nimport { downloadFile, generateZip } from '@shell/utils/download';\nimport { get, isEmpty } from '@shell/utils/object';\nimport { sortBy } from '@shell/utils/sort';\nimport day from 'dayjs';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\n// This could be removed and just replaced with schema.fetchResourceFields()... but there's some getters that use hasSpecsScheduledScanConfig before it runs\n/**\n * For the given schema, determine if the schema of it's associated scan's type has scheduledScanConfig\n *\n * This is resourceFields based, so we need to fetch schema definition\n */\nexport const fetchSpecsScheduledScanConfig = async(schema) => {\n await schema.fetchResourceFields();\n\n return hasSpecsScheduledScanConfig(schema);\n};\n\n/**\n * For the given schema, determine if the schema of it's associated scan's type has scheduledScanConfig\n *\n * Assumes schemaDefinitions have been fetched (see async fetchSpecsScheduledScanConfig above)\n */\nexport const hasSpecsScheduledScanConfig = (schema) => {\n const specSchemaId = get(schema, 'resourceFields.spec.type');\n const specSchema = schema.schemaDefinitions?.[specSchemaId];\n\n if (!specSchema) {\n return false;\n }\n\n return !!get(specSchema, 'resourceFields.scheduledScanConfig');\n};\n\nexport default class ClusterScan extends SteveModel {\n get _availableActions() {\n let out = super._availableActions;\n\n const toFilter = ['cloneYaml', 'goToEditYaml', 'download'];\n\n out = out.filter((action) => {\n if (!toFilter.includes(action.action)) {\n return action;\n }\n });\n\n const t = this.$rootGetters['i18n/t'];\n\n const downloadReport = {\n action: 'downloadLatestReport',\n enabled: this.hasReport,\n icon: 'icon icon-fw icon-download',\n label: t('cis.downloadReport'),\n total: 1,\n };\n\n const downloadAllReports = {\n action: 'downloadAllReports',\n enabled: this.hasReport,\n icon: 'icon icon-fw icon-download',\n label: t('cis.downloadAllReports'),\n total: 1,\n };\n\n if (this.hasReports) {\n out.unshift({ divider: true });\n if (this.spec?.scheduledScanConfig?.cronSchedule) {\n out.unshift(downloadAllReports);\n downloadReport.label = t('cis.downloadLatestReport');\n }\n out.unshift(downloadReport);\n }\n\n return out;\n }\n\n canBeScheduled() {\n return hasSpecsScheduledScanConfig(this.$getters['schemaFor'](this.type));\n }\n\n get isScheduled() {\n return !!get(this, 'spec.scheduledScanConfig.cronSchedule');\n }\n\n get canUpdate() {\n return this.hasLink('update') && this.isScheduled;\n }\n\n get hasReports() {\n const { relationships = [] } = this.metadata;\n\n const reportRel = findBy(relationships, 'toType', CIS.REPORT);\n\n return !!reportRel;\n }\n\n async getReports() {\n const owned = await this.findOwned();\n\n const reports = owned.filter((obj) => obj.type === CIS.REPORT) || [];\n\n return sortBy(reports, 'metadata.creationTimestamp', true);\n }\n\n async downloadLatestReport() {\n const reports = await this.getReports() || [];\n const report = sortBy(reports, 'metadata.creationTimestamp', true)[0];\n const Papa = await import(/* webpackChunkName: \"csv\" */'papaparse');\n\n try {\n const testResults = (report.aggregatedTests || []).map((result) => {\n delete result.actual_value_per_node;\n\n return result;\n });\n\n const csv = Papa.unparse(testResults);\n\n downloadFile(`${ labelFor(report) }.csv`, csv, 'application/csv');\n } catch (err) {\n this.$dispatch('growl/fromError', { title: 'Error downloading file', err }, { root: true });\n }\n }\n\n async downloadAllReports() {\n const toZip = {};\n const reports = await this.getReports() || [];\n\n const Papa = await import(/* webpackChunkName: \"csv\" */'papaparse');\n\n reports.forEach((report) => {\n try {\n const testResults = (report.aggregatedTests || []).map((result) => {\n delete result.actual_value_per_node;\n\n return result;\n });\n\n const csv = Papa.unparse(testResults);\n\n toZip[`${ labelFor(report) }.csv`] = csv;\n } catch (err) {\n this.$dispatch('growl/fromError', { title: 'Error downloading file', err }, { root: true });\n }\n });\n if (!isEmpty(toZip)) {\n generateZip(toZip).then((zip) => {\n downloadFile(`${ this.id }-reports`, zip, 'application/zip');\n });\n }\n }\n\n get scanProfileLink() {\n if (this.status?.lastRunScanProfileName) {\n return {\n name: 'c-cluster-product-resource-id',\n params: {\n resource: CIS.CLUSTER_SCAN_PROFILE,\n product: PRODUCT_NAME,\n id: this.status?.lastRunScanProfileName\n }\n };\n }\n\n return {};\n }\n}\n\nconst labelFor = (report) => {\n const { creationTimestamp } = report.metadata;\n\n const date = day(creationTimestamp).format('YYYY-MM-DD-HHmmss');\n const name = report.id.replace(/^scan-report-/, '');\n\n return `${ name }--${ date }`;\n};\n","import { CATALOG } from '@shell/config/types';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class ClusterScanBenchmark extends SteveModel {\n warnDeletionMessage(toRemove = []) {\n return this.$rootGetters['i18n/t']('cis.deleteBenchmarkWarning', { count: toRemove.length });\n }\n\n get isDefault() {\n const { relationships = [] } = this.metadata;\n\n if (!relationships) {\n return false;\n }\n\n return relationships.filter((rel) => rel.fromType === CATALOG.APP ).length > 0;\n }\n}\n","\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { NAME as PRODUCT_NAME } from '@shell/config/product/cis';\nimport { CIS } from '@shell/config/types';\n\nexport default class CISProfile extends SteveModel {\n warnDeletionMessage(toRemove = []) {\n return this.$rootGetters['i18n/t']('cis.deleteProfileWarning', { count: toRemove.length });\n }\n\n get numberTestsSkipped() {\n const { skipTests = [] } = this.spec;\n\n return skipTests.length;\n }\n\n get benchmarkVersionLink() {\n if (this.spec?.benchmarkVersion) {\n return {\n name: 'c-cluster-product-resource-id',\n params: {\n resource: CIS.BENCHMARK,\n product: PRODUCT_NAME,\n id: this.spec?.benchmarkVersion\n }\n };\n }\n\n return {};\n }\n}\n","import { compare } from '@shell/utils/sort';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class CISReport extends SteveModel {\n get aggregatedTests() {\n const json = this.parsedReport;\n const results = json?.results;\n\n const flattened = results ? results.reduce((all, each) => {\n if (each.checks) {\n all.push(...each.checks);\n }\n\n return all;\n }, []) : null;\n\n const sortableId = (id) => (id || '').split('.').map((n) => +n + 1000).join('.');\n const sortableState = (state) => {\n const SORT_ORDER = {\n other: 7,\n notApplicable: 6,\n skip: 5,\n pass: 4,\n warn: 3,\n mixed: 2,\n fail: 1,\n };\n\n return `${ SORT_ORDER[state] || SORT_ORDER['other'] } ${ state }`;\n };\n\n const sorted = flattened.slice().sort((a, b) => {\n const stateSort = compare(sortableState(a.state), sortableState(b.state));\n const idSort = compare(sortableId(a.id), sortableId(b.id));\n\n if (stateSort) {\n return stateSort;\n }\n\n return idSort;\n });\n\n return sorted;\n }\n\n get nodes() {\n return this.parsedReport ? this.parsedReport.nodes : {};\n }\n\n get parsedReport() {\n try {\n const json = this.spec?.reportJSON;\n\n const parsed = JSON.parse(json);\n\n return parsed;\n } catch (e) {\n }\n\n return null;\n }\n}\n","import { removeObjects } from '@shell/utils/array';\n\nexport function simplify(key) {\n return key.toLowerCase().replace(/[^a-z0-9]/ig, '');\n}\n\nconst credentialOptions = {\n aws: {\n publicKey: 'accessKey',\n publicMode: 'full',\n keys: ['region', 'accessKey', 'secretKey']\n },\n digitalocean: {\n publicKey: 'accessToken',\n publicMode: 'prefix',\n keys: 'accessToken'\n },\n azure: {\n publicKey: 'clientId',\n publicMode: 'full',\n keys: ['subscriptionId', 'tenantId', 'clientId', 'clientSecret']\n },\n linode: {\n publicKey: 'token',\n publicMode: 'prefix',\n keys: 'token'\n }\n};\n\n// Credential drivers that rke1 supports\nexport const rke1Supports = [\n 'aws',\n 'azure',\n 'digitalocean',\n 'gcp',\n 'harvester',\n 'linode',\n 'oracle',\n 'pnap',\n 'vmwarevsphere'\n];\n\n// Map a credential driver name to a component name\n// e.g. ec2 and eks both use the 'aws' driver to share the same pool of creds.\nconst driverMap = {\n aks: 'azure',\n amazonec2: 'aws',\n amazoneks: 'aws',\n amazonelasticcontainerservice: 'aws',\n azurekubernetesservice: 'azure',\n google: 'gcp',\n googlekubernetesengine: 'gcp',\n huaweicontainercloudengine: 'huawei',\n linodekubernetesengine: 'linode',\n oci: 'oracle',\n opentelekomcloudcontainerengine: 'otc',\n oraclecontainerengine: 'oracle',\n};\n\n// Map a driver component back to the cloud credential field name their data has to be stored in\nconst driverToFieldMap = {\n aws: 'amazonec2',\n gcp: 'google',\n oracle: 'oci',\n};\n\n// Machine driver fields that are probably a credential field\nexport const likelyFields = [\n 'username', 'password',\n 'accesskey', 'secretkey',\n 'accesskeyid', 'secretkeyid', 'accesskeysecret',\n 'token', 'apikey',\n 'secret',\n 'clientid', 'clientsecret', 'subscriptionid', 'tenantid',\n].map((x) => simplify(x));\n\n// Machine driver fields that are maaaaybe a credential field\nexport const iffyFields = [\n 'location', 'region',\n].map((x) => simplify(x));\n\n// Machine driver fields that are safe to display the whole value\nexport const fullFields = [\n 'username',\n 'accesskey',\n 'accesskeyid',\n 'clientid'\n].map((x) => simplify(x));\n\n// Machine driver fields that are safe to display the beginning of\nexport const prefixFields = [\n 'token',\n 'apikey',\n 'secret',\n].map((x) => simplify(x));\n\n// Machine driver fields that are safe to display the end of\nexport const suffixFields = [\n].map((x) => simplify(x));\n\n// Machine driver to cloud provider mapping\nconst driverToCloudProviderMap = {\n amazonec2: 'aws',\n azure: 'azure',\n digitalocean: '', // Show restricted options\n harvester: 'harvester',\n linode: '', // Show restricted options\n vmwarevsphere: 'rancher-vsphere',\n ovhcloudpubliccloud: '',\n\n custom: undefined // Show all options\n};\n\n// Dynamically loaded drivers can call this eventually to register their options\nexport function configureCredential(name, opt) {\n credentialOptions[name] = opt;\n}\n\n// Map a driver to a different credential name, e.g. amazonec2 and amazoneks both use the 'aws' credential type.\nexport function mapDriver(name, to) {\n driverMap[name] = to;\n}\n\nexport const state = function() {\n return {};\n};\n\nexport const getters = {\n credentialOptions() {\n return (name) => {\n name = (name || '').toLowerCase();\n\n return credentialOptions[name] || {};\n };\n },\n\n credentialDriverFor() {\n return (name) => {\n name = (name || '').toLowerCase();\n\n return driverMap[name] || name;\n };\n },\n\n credentialFieldForDriver() {\n return (name) => {\n name = (name || '').toLowerCase();\n\n return driverToFieldMap[name] || name;\n };\n },\n\n clusterDrivers() {\n // The subset of drivers supported by Vue components\n return [];\n },\n\n schemaForDriver(state, getters, rootState, rootGetters) {\n return (name) => {\n const id = `rke-machine-config.cattle.io.${ name }config`;\n const schema = rootGetters['management/schemaFor'](id);\n\n return schema;\n };\n },\n\n fieldNamesForDriver(state, getters) {\n return async(name) => {\n const schema = getters.schemaForDriver(name);\n\n await schema.fetchResourceFields();\n\n if ( !schema ) {\n // eslint-disable-next-line no-console\n console.error(`Machine Driver Config schema not found for ${ name }`);\n\n return [];\n }\n // This is used in places where `createPopulated` has been called, which has called fetchResourceFields to populate resourceFields\n const out = Object.keys(schema?.resourceFields || {});\n\n removeObjects(out, ['apiVersion', 'dockerPort', 'kind', 'metadata']);\n\n return out;\n };\n },\n\n fieldsForDriver(state, getters) {\n return async(name) => {\n const schema = getters.schemaForDriver(name);\n\n await schema.fetchResourceFields();\n const names = await getters.fieldNamesForDriver(name);\n\n const out = {};\n\n for ( const n of names ) {\n out[n] = schema.resourceFields[n];\n }\n\n return out;\n };\n },\n\n cloudProviderForDriver() {\n return (name) => {\n return driverToCloudProviderMap[name];\n };\n },\n};\n","import { CAPI, CLOUD_CREDENTIALS } from '@shell/config/labels-annotations';\nimport { fullFields, prefixFields, simplify, suffixFields } from '@shell/store/plugins';\nimport { isEmpty, set } from '@shell/utils/object';\nimport { MANAGEMENT, SECRET } from '@shell/config/types';\nimport { escapeHtml } from '@shell/utils/string';\nimport NormanModel from '@shell/plugins/steve/norman-class';\nimport { DATE_FORMAT, TIME_FORMAT } from '@shell/store/prefs';\nimport day from 'dayjs';\n\nconst harvesterProvider = 'harvester';\n\nconst renew = {\n [harvesterProvider]: {\n renew: ({ cloudCredential, $ctx }) => {\n return renew[harvesterProvider].renewBulk(\n { cloudCredentials: [cloudCredential], $ctx }\n );\n },\n renewBulk: async({ cloudCredentials, $ctx }) => {\n // A harvester cloud credential (at the moment) is a kubeconfig complete with expiring token\n // So to renew we just need to generate a new kubeconfig and save it to the cc (similar to shell/cloud-credential/harvester.vue)\n await Promise.all(cloudCredentials.map(async(cc) => {\n try {\n if (!cc.harvestercredentialConfig?.clusterId) {\n throw new Error(`credential has no matching harvester cluster`);\n }\n const mgmtCluster = $ctx.rootGetters['management/byId'](MANAGEMENT.CLUSTER, cc.harvestercredentialConfig.clusterId);\n\n if (!mgmtCluster) {\n throw new Error(`cannot find harvester cluster`);\n }\n\n const kubeconfigContent = await mgmtCluster.generateKubeConfig();\n\n cc.setData('kubeconfigContent', kubeconfigContent);\n\n await cc.save();\n } catch (error) {\n console.error(`Unable to refresh harvester cloud credential '${ cc.id }'`, error); // eslint-disable-line no-console\n }\n }));\n }\n }\n};\n\nexport default class CloudCredential extends NormanModel {\n get _availableActions() {\n const out = super._availableActions;\n\n out.splice(0, 0, { divider: true });\n out.splice(0, 0, {\n action: 'renew',\n enabled: this.canRenew,\n bulkable: this.canBulkRenew,\n bulkAction: 'renewBulk',\n icon: 'icon icon-fw icon-refresh',\n label: this.t('manager.cloudCredentials.renew'),\n });\n\n return out;\n }\n\n get hasSensitiveData() {\n return true;\n }\n\n get canCustomEdit() {\n return true;\n }\n\n get _detailLocation() {\n return {\n name: `c-cluster-manager-cloudCredential-id`,\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n id: this.id,\n }\n };\n }\n\n get parentLocationOverride() {\n return {\n name: `c-cluster-manager-cloudCredential`,\n params: { cluster: this.$rootGetters['clusterId'] }\n };\n }\n\n get secretName() {\n return this.id.replace(':', '/');\n }\n\n get secret() {\n return this.$rootGetters['management/byId'](SECRET, this.secretName);\n }\n\n async getSecret() {\n await this.$dispatch('management/find', { type: SECRET, id: this.secretName }, { root: true });\n }\n\n get configKey() {\n return Object.keys(this).find( (k) => k.endsWith('credentialConfig'));\n }\n\n get provider() {\n const annotation = this.annotations?.[CAPI.CREDENTIAL_DRIVER];\n\n if ( annotation ) {\n return annotation;\n }\n\n const configKey = this.configKey;\n\n // Call [amazoneks,amazonec2] -> aws\n if ( configKey ) {\n const out = this.$rootGetters['plugins/credentialDriverFor'](configKey.replace(/credentialConfig$/, ''));\n\n return out;\n }\n\n return null;\n }\n\n setProvider(neu) {\n this.setAnnotation(CAPI.CREDENTIAL_DRIVER, neu);\n\n Object.keys(this).forEach((k) => {\n k = k.toLowerCase();\n\n if ( k.endsWith('config') && k !== `${ neu }config` ) {\n set(this, k, null);\n }\n });\n\n if ( !this[`${ neu }credentialConfig`] ) {\n set(this, `${ neu }credentialConfig`, {});\n }\n }\n\n get decodedData() {\n const k = this.configKey;\n\n if ( k ) {\n return this[k];\n }\n\n return {};\n }\n\n setData(key, value) { // or (mapOfNewData)\n const isMap = key && typeof key === 'object';\n\n if ( !this[this.configKey] || isMap ) {\n set(this, this.configKey, {});\n }\n\n let neu;\n\n if ( isMap ) {\n neu = key;\n } else {\n neu = { [key]: value };\n }\n\n for ( const k in neu ) {\n // The key is quoted so that keys like '.dockerconfigjson' that contain dot don't get parsed into an object path\n set(this, `\"${ this.configKey }\".\"${ k }\"`, neu[k]);\n }\n }\n\n get providerDisplay() {\n const provider = (this.provider || '').toLowerCase();\n\n return this.$rootGetters['i18n/withFallback'](`cluster.provider.\"${ provider }\"`, null, provider);\n }\n\n get publicData() {\n let { publicKey, publicMode } = this.$rootGetters['plugins/credentialOptions'](this.provider);\n\n const options = {\n full: fullFields,\n prefix: prefixFields,\n suffix: suffixFields,\n };\n\n if ( !publicKey ) {\n for ( const k in this.decodedData || {} ) {\n if ( publicKey ) {\n break;\n }\n\n if ( isEmpty(this.decodedData[k]) ) {\n continue;\n }\n\n for ( const mode in options ) {\n if ( options[mode].includes( simplify(k) ) ) {\n publicKey = k;\n publicMode = mode;\n break;\n }\n }\n }\n }\n\n if ( !publicKey ) {\n return null;\n }\n\n let val = this.decodedData[publicKey];\n\n if ( !val ) {\n val = this.secret?.decodedData?.[`${ this.provider }credentialConfig-${ publicKey }`];\n }\n\n if ( !val ) {\n return null;\n }\n\n const maxLength = Math.min(8, Math.floor(val.length / 2));\n\n if ( publicMode === 'prefix' ) {\n return `${ escapeHtml(val.substr(0, maxLength)) }…`;\n } else if ( publicMode === 'suffix' ) {\n return `…${ escapeHtml(val.substr(-1 * maxLength)) }`;\n } else {\n return escapeHtml(val);\n }\n }\n\n get doneRoute() {\n return 'c-cluster-manager-secret';\n }\n\n get canRenew() {\n return !!renew[this.provider]?.renew && this.expires !== undefined && this.canUpdate;\n }\n\n get canBulkRenew() {\n return !!renew[this.provider]?.renewBulk;\n }\n\n get expiresForSort() {\n // Why not just `expires`? Ensures the correct sort order of expired --> expiring --> never expires\n // (instead of 'never expired' --> 'expired' --> 'expiring')\n return this.expires !== undefined ? this.expires : Number.MAX_SAFE_INTEGER;\n }\n\n get expires() {\n const expires = this.annotations[CLOUD_CREDENTIALS.EXPIRATION];\n\n if (typeof expires === 'string') {\n return parseInt(expires);\n } else if (typeof expires === 'number') {\n return expires;\n }\n\n return undefined; // Weird things happen if this isn't a number\n }\n\n get expireData() {\n if (typeof this.expiresIn !== 'number') {\n return null;\n }\n\n const sevenDays = 1000 * 60 * 60 * 24 * 7;\n\n if (this.expiresIn === 0) {\n return {\n expired: true,\n expiring: false,\n };\n } else if (this.expiresIn < sevenDays) {\n return {\n expired: false,\n expiring: true,\n };\n }\n\n return null;\n }\n\n get expiresString() {\n if (this.expires === undefined) {\n return '';\n }\n\n if (this.expireData.expired) {\n return this.t('manager.cloudCredentials.expired');\n }\n\n const dateFormat = escapeHtml( this.$rootGetters['prefs/get'](DATE_FORMAT));\n const timeFormat = escapeHtml( this.$rootGetters['prefs/get'](TIME_FORMAT));\n\n return day(this.expires).format(`${ dateFormat } ${ timeFormat }`);\n }\n\n get expiresIn() {\n if (this.expires === undefined) {\n return null;\n }\n\n const timeThen = this.expires;\n const timeNow = Date.now();\n\n const expiresIn = timeThen - timeNow;\n\n return expiresIn < 0 ? 0 : expiresIn;\n }\n\n renew() {\n const renewFn = renew[this.provider]?.renew;\n\n if (!renewFn) {\n console.error('No fn renew function for ', this.provider); // eslint-disable-line no-console\n }\n\n return renewFn({\n cloudCredential: this,\n $ctx: this.$ctx\n });\n }\n\n async renewBulk(cloudCredentials = []) {\n const renewBulkFn = renew[this.provider]?.renewBulk;\n\n if (!renewBulkFn) {\n console.error('No fn renew bulk function for ', this.provider); // eslint-disable-line no-console\n }\n\n return renewBulkFn({\n cloudCredentials,\n $ctx: this.$ctx\n });\n }\n}\n","import NormanModel from '@shell/plugins/steve/norman-class';\n\nexport const LABEL_CONTAINS_PROTECTED = [\n 'io.cattle.lifecycle',\n 'kubernetes.io',\n 'cattle.io',\n 'k3s.io',\n];\n\nexport const ANNOTATIONS_CONTAINS_PROTECTED = [\n 'coreos.com',\n 'cattle.io',\n 'k3s.io',\n 'kubernetes.io',\n 'k3s.io',\n];\nexport default class NormanCluster extends NormanModel {\n get systemLabels() {\n return Object.keys(this.labels || {}).filter((key) => LABEL_CONTAINS_PROTECTED.find((label) => key.includes(label)));\n }\n\n get systemAnnotations() {\n return Object.keys(this.annotations || {}).filter((key) => ANNOTATIONS_CONTAINS_PROTECTED.find((annotation) => key.includes(annotation)));\n }\n\n get hasSystemLabels() {\n return !!(this.systemLabels || []).length;\n }\n\n get hasSystemAnnotations() {\n return !!(this.systemAnnotations || []).length;\n }\n}\n","import { ADDRESSES, CAPI, NODE } from '@shell/config/types';\nimport { CAPI as CAPI_LABELS, MACHINE_ROLES } from '@shell/config/labels-annotations';\nimport { NAME as EXPLORER } from '@shell/config/product/explorer';\nimport { listNodeRoles } from '@shell/models/cluster/node';\nimport { escapeHtml } from '@shell/utils/string';\nimport { insertAt, findBy } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\nimport { downloadUrl } from '@shell/utils/download';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\n/**\n * Prevent scaling down control plane or etcd machines to zero\n *\n * @param {machine | machineDeployment} current\n * @param {machine[]} all\n * @returns\n */\nexport function notOnlyOfRole(current, all) {\n // This is a little overly optimised but avoids iterating over all machines every time\n\n const foundType = { };\n\n if (current.isControlPlane) {\n foundType.isControlPlane = false;\n }\n if (current.isEtcd) {\n foundType.isEtcd = false;\n }\n if (Object.keys(foundType).length === 0) {\n return true; // It's neither type, so can always scale down\n }\n\n // If we have more than one of the required types then it's not the last of that type and can be scaled down\n for (const m of all) {\n Object.keys(foundType).forEach((type) => {\n // Have we found this type?\n if (m[type]) {\n if (foundType[type]) {\n // Another of this type exists, we don't need to check for it further\n delete foundType[type];\n } else {\n // Record that we've found type\n foundType[type] = true;\n }\n }\n });\n\n // Are there no types left to look for?\n if (Object.keys(foundType).length === 0) {\n return true;\n }\n }\n\n return false;\n}\nexport default class CapiMachine extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n const openSsh = {\n action: 'openSsh',\n enabled: !!this.links.shell && this.isRunning,\n icon: 'icon icon-fw icon-chevron-right',\n label: 'SSH Shell',\n };\n const downloadKeys = {\n action: 'downloadKeys',\n enabled: !!this.links.sshkeys,\n icon: 'icon icon-fw icon-download',\n label: this.t('node.actions.downloadSSHKey'),\n };\n const forceRemove = {\n action: 'toggleForceRemoveModal',\n altAction: 'forceMachineRemove',\n enabled: !!this.isRemoveForceable,\n label: this.t('node.actions.forceDelete'),\n icon: 'icon icon-trash',\n };\n const scaleDown = {\n action: 'toggleScaleDownModal',\n bulkAction: 'toggleScaleDownModal',\n enabled: !!this.canScaleDown,\n icon: 'icon icon-minus icon-fw',\n label: this.t('node.actions.scaleDown'),\n bulkable: true\n };\n\n insertAt(out, 0, { divider: true });\n insertAt(out, 0, downloadKeys);\n insertAt(out, 0, openSsh);\n insertAt(out, 0, scaleDown);\n insertAt(out, 0, forceRemove);\n\n return out;\n }\n\n get canClone() {\n return false;\n }\n\n openSsh(name) {\n const label = name || this.nameDisplay;\n\n this.$dispatch('wm/open', {\n id: `${ this.id }-ssh`,\n label,\n icon: 'terminal',\n component: 'MachineSsh',\n attrs: { machine: this, pod: {} }\n }, { root: true });\n }\n\n downloadKeys() {\n downloadUrl(this.links.sshkeys);\n }\n\n toggleForceRemoveModal(resources = this) {\n this.$dispatch('promptModal', {\n componentProps: { machine: resources },\n component: 'ForceMachineRemoveDialog'\n });\n }\n\n async forceMachineRemove() {\n const machine = await this.machineRef();\n\n machine.setAnnotation(CAPI_LABELS.FORCE_MACHINE_REMOVE, 'true');\n await machine.save();\n }\n\n toggleScaleDownModal(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'ScaleMachineDownDialog',\n modalWidth: '450px'\n });\n }\n\n async machineRef() {\n const ref = this.spec.infrastructureRef;\n const id = `${ ref.namespace }/${ ref.name }`;\n const kind = `rke-machine.cattle.io.${ ref.kind.toLowerCase() }`;\n\n return await this.$dispatch('find', { type: kind, id });\n }\n\n get cluster() {\n if ( !this.spec.clusterName ) {\n return null;\n }\n\n const clusterId = `${ this.metadata.namespace }/${ this.spec.clusterName }`;\n\n const cluster = this.$rootGetters['management/byId'](CAPI.RANCHER_CLUSTER, clusterId);\n\n return cluster;\n }\n\n get poolName() {\n return this.metadata?.labels?.[ CAPI_LABELS.DEPLOYMENT_NAME ] || '';\n }\n\n get poolId() {\n const poolId = `${ this.metadata.namespace }/${ this.poolName }`;\n\n return poolId;\n }\n\n get pool() {\n return this.$rootGetters['management/byId'](CAPI.MACHINE_DEPLOYMENT, this.poolId);\n }\n\n get operatingSystem() {\n return this.metadata?.labels['cattle.io/os'] || 'linux';\n }\n\n get kubeNodeDetailLocation() {\n const kubeId = this.status?.nodeRef?.name;\n const cluster = this.cluster?.status?.clusterName;\n\n if ( kubeId && cluster ) {\n return {\n name: 'c-cluster-product-resource-id',\n params: {\n cluster: this.cluster.status.clusterName,\n product: EXPLORER,\n resource: NODE,\n id: kubeId\n }\n };\n }\n\n return kubeId;\n }\n\n get groupByLabel() {\n const name = this.cluster?.nameDisplay || this.spec.clusterName;\n\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.cluster', { name: escapeHtml(name) });\n }\n\n get labels() {\n return this.metadata?.labels || {};\n }\n\n get isWorker() {\n return `${ this.labels[MACHINE_ROLES.WORKER] }` === 'true';\n }\n\n get isControlPlane() {\n return `${ this.labels[MACHINE_ROLES.CONTROL_PLANE] }` === 'true';\n }\n\n get isEtcd() {\n return `${ this.labels[MACHINE_ROLES.ETCD] }` === 'true';\n }\n\n get isRemoveForceable() {\n const conditions = get(this, 'status.conditions');\n const reasonMessage = (findBy(conditions, 'type', 'InfrastructureReady') || {}).reason;\n\n if (reasonMessage === 'DeleteError') {\n return true;\n }\n\n return null;\n }\n\n get canScaleDown() {\n if (!this.canUpdate || !this.pool?.canUpdate) {\n return false;\n }\n\n return notOnlyOfRole(this, this.cluster?.machines);\n }\n\n get roles() {\n const { isControlPlane, isWorker, isEtcd } = this;\n\n return listNodeRoles(isControlPlane, isWorker, isEtcd, this.t('generic.all'));\n }\n\n get isRunning() {\n return this.status?.phase === 'Running';\n }\n\n get internalIp() {\n // This shows in the IP address column for RKE2 nodes in the\n // list of nodes in the cluster detail page of Cluster Management.\n const internal = this.status?.addresses?.find(({ type }) => {\n return type === ADDRESSES.INTERNAL_IP;\n })?.address;\n\n if (internal) {\n return internal;\n }\n\n return this.t('generic.none');\n }\n\n get externalIp() {\n const external = this.status?.addresses?.find(({ type }) => {\n return type === ADDRESSES.EXTERNAL_IP;\n })?.address;\n\n if (external) {\n return external;\n }\n\n return this.t('generic.none');\n }\n}\n","export const ELEMENTAL_PRODUCT_NAME = 'elemental';\nexport const ELEMENTAL_CLUSTER_PROVIDER = 'machineinventoryselectortemplate';\n\nexport const ELEMENTAL_SCHEMA_IDS = {\n MACHINE_INVENTORIES: 'elemental.cattle.io.machineinventory',\n MACHINE_INV_SELECTOR_TEMPLATES: 'elemental.cattle.io.machineinventoryselectortemplate',\n};\n\nexport const KIND = { MACHINE_INV_SELECTOR_TEMPLATES: 'MachineInventorySelectorTemplate' };\n","export const NAME = 'harvesterManager';\n\nexport const KIND = { MACHINE_TEMPLATE: 'HarvesterMachineTemplate' };\n","import { CAPI } from '@shell/config/types';\nimport { escapeHtml } from '@shell/utils/string';\nimport { sortBy } from '@shell/utils/sort';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { handleConflict } from '@shell/plugins/dashboard-store/normalize';\nimport { MACHINE_ROLES } from '@shell/config/labels-annotations';\nimport { notOnlyOfRole } from '@shell/models/cluster.x-k8s.io.machine';\nimport { KIND } from '../config/elemental-types';\nimport { KIND as HARVESTER_KIND } from '../config/harvester-manager-types';\n\nexport default class CapiMachineDeployment extends SteveModel {\n get cluster() {\n if ( !this.spec.clusterName ) {\n return null;\n }\n\n const clusterId = `${ this.metadata.namespace }/${ this.spec.clusterName }`;\n\n const cluster = this.$rootGetters['management/byId'](CAPI.RANCHER_CLUSTER, clusterId);\n\n return cluster;\n }\n\n get groupByLabel() {\n const name = this.cluster?.nameDisplay || this.spec.clusterName;\n\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.cluster', { name: escapeHtml(name) });\n }\n\n get groupByPoolLabel() {\n return `${ this.$rootGetters['i18n/t']('resourceTable.groupLabel.machinePool', { name: escapeHtml(this.nameDisplay) }) }`;\n }\n\n get groupByPoolShortLabel() {\n return `${ this.$rootGetters['i18n/t']('resourceTable.groupLabel.machinePool', { name: escapeHtml(this.nameDisplay) }) }`;\n }\n\n get infrastructureRefKind() {\n return this.spec?.template?.spec?.infrastructureRef?.kind;\n }\n\n get templateType() {\n return this.spec.template.spec.infrastructureRef.kind ? `rke-machine.cattle.io.${ this.spec.template.spec.infrastructureRef.kind.toLowerCase() }` : null;\n }\n\n get template() {\n const ref = this.spec.template.spec.infrastructureRef;\n const id = `${ ref.namespace }/${ ref.name }`;\n const template = this.$rootGetters['management/byId'](this.templateType, id);\n\n return template;\n }\n\n get providerName() {\n return this.template?.nameDisplay;\n }\n\n get providerDisplay() {\n const provider = (this.template?.provider || '').toLowerCase();\n\n return this.$rootGetters['i18n/withFallback'](`cluster.provider.\"${ provider }\"`, null, 'generic.unknown', true);\n }\n\n get providerLocation() {\n return this.template?.providerLocation || this.t('node.list.poolDescription.noLocation');\n }\n\n get providerSize() {\n return this.template?.providerSize || this.t('node.list.poolDescription.noSize');\n }\n\n get providerSummary() {\n if (this.template) {\n switch (this.infrastructureRefKind) {\n case HARVESTER_KIND.MACHINE_TEMPLATE:\n return null;\n default:\n return `${ this.providerDisplay } \\u2013 ${ this.providerLocation } / ${ this.providerSize } (${ this.providerName })`;\n }\n }\n\n return null;\n }\n\n get desired() {\n return this.spec?.replicas || 0;\n }\n\n get pending() {\n return Math.max(0, this.desired - (this.status?.replicas || 0));\n }\n\n get outdated() {\n return Math.max(0, (this.status?.replicas || 0) - (this.status?.updatedReplicas || 0));\n }\n\n get ready() {\n return Math.max(0, (this.status?.replicas || 0) - (this.status?.unavailableReplicas || 0));\n }\n\n get unavailable() {\n return this.status?.unavailableReplicas || 0;\n }\n\n get isControlPlane() {\n return `${ this.spec?.template?.metadata?.labels?.[MACHINE_ROLES.CONTROL_PLANE] }` === 'true';\n }\n\n get isEtcd() {\n return `${ this.spec?.template?.metadata?.labels?.[MACHINE_ROLES.ETCD] }` === 'true';\n }\n\n // use this pool's definition in the cluster's rkeConfig to scale, not this.spec.replicas\n get inClusterSpec() {\n const machineConfigName = this.template?.metadata?.annotations['rke.cattle.io/cloned-from-name'];\n const machinePools = this.cluster.spec.rkeConfig.machinePools;\n\n return machinePools.find((pool) => pool.machineConfigRef.name === machineConfigName);\n }\n\n scalePool(delta, save = true, depth = 0) {\n // This is used in different places with different scaling rules, so don't check if we can/cannot scale\n if (!this.inClusterSpec) {\n return;\n }\n\n const initialValue = this.cluster.toJSON();\n\n this.inClusterSpec.quantity += delta;\n\n if ( !save ) {\n return;\n }\n\n const value = this.cluster;\n const liveModel = this.$rootGetters['management/byId'](CAPI.RANCHER_CLUSTER, this.cluster.id);\n\n if ( this.scaleTimer ) {\n clearTimeout(this.scaleTimer);\n }\n\n this.scaleTimer = setTimeout(() => {\n this.cluster.save().catch(async(err) => {\n let errors = exceptionToErrorsArray(err);\n\n if ( err.status === 409 && depth < 2 ) {\n const conflicts = await handleConflict(initialValue, value, liveModel, this.$rootGetters, { dispatch: this.$dispatch }, 'management');\n\n if ( conflicts === false ) {\n // It was automatically figured out, save again\n // (pass in the delta again as `this.inClusterSpec.quantity` would have reset from the re-fetch done in `save`)\n return this.scalePool(delta, true, depth + 1);\n } else {\n errors = conflicts;\n }\n }\n\n this.$dispatch('growl/fromError', {\n title: 'Error scaling pool',\n err: errors\n }, { root: true });\n });\n }, 1000);\n }\n\n // prevent scaling pool to 0 if it would scale down the only etcd or control plane node\n canScaleDownPool() {\n if (!this.canUpdate || this.inClusterSpec?.quantity === 0 || this.infrastructureRefKind === KIND.MACHINE_INV_SELECTOR_TEMPLATES) {\n return false;\n }\n\n // scaling workers is always ok\n if (!this.isEtcd && !this.isControlPlane) {\n return true;\n }\n\n return notOnlyOfRole(this, this.cluster.machines);\n }\n\n // prevent scaling up pool for Elemental machines\n canScaleUpPool() {\n if (this.infrastructureRefKind === KIND.MACHINE_INV_SELECTOR_TEMPLATES) {\n return false;\n }\n\n return true;\n }\n\n get showScalePool() {\n return this.canScaleDownPool() || this.canScaleUpPool();\n }\n\n get stateParts() {\n const out = [\n {\n label: 'Pending',\n color: 'bg-info',\n textColor: 'text-info',\n value: this.pending,\n sort: 1,\n },\n {\n label: 'Outdated',\n color: 'bg-warning',\n textColor: 'text-warning',\n value: this.outdated,\n sort: 2,\n },\n {\n label: 'Unavailable',\n color: 'bg-error',\n textColor: 'text-error',\n value: this.unavailable,\n sort: 3,\n },\n {\n label: 'Ready',\n color: 'bg-success',\n textColor: 'text-success',\n value: this.ready,\n sort: 4,\n },\n ].filter((x) => x.value > 0);\n\n return sortBy(out, 'sort:desc');\n }\n}\n","import { CAPI } from '@shell/config/types';\nimport { escapeHtml } from '@shell/utils/string';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class CapiMachineSet extends SteveModel {\n get cluster() {\n if ( !this.spec.clusterName ) {\n return null;\n }\n\n const clusterId = `${ this.metadata.namespace }/${ this.spec.clusterName }`;\n\n const cluster = this.$rootGetters['management/byId'](CAPI.RANCHER_CLUSTER, clusterId);\n\n return cluster;\n }\n\n get groupByLabel() {\n const name = this.cluster?.nameDisplay || this.spec.clusterName;\n\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.cluster', { name: escapeHtml(name) });\n }\n}\n","import { formatPercent } from '@shell/utils/string';\nimport { CAPI as CAPI_ANNOTATIONS, NODE_ROLES, RKE, SYSTEM_LABELS } from '@shell/config/labels-annotations.js';\nimport {\n CAPI, MANAGEMENT, METRIC, NORMAN, POD\n} from '@shell/config/types';\nimport { parseSi } from '@shell/utils/units';\nimport findLast from 'lodash/findLast';\n\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { LOCAL } from '@shell/config/query-params';\n\nexport default class ClusterNode extends SteveModel {\n get _availableActions() {\n const normanAction = this.norman?.actions || {};\n\n const cordon = {\n action: 'cordon',\n enabled: !!normanAction.cordon,\n icon: 'icon icon-fw icon-pause',\n label: 'Cordon',\n total: 1,\n bulkable: true\n };\n\n const uncordon = {\n action: 'uncordon',\n enabled: !!normanAction.uncordon,\n icon: 'icon icon-fw icon-play',\n label: 'Uncordon',\n total: 1,\n bulkable: true\n };\n\n const drain = {\n action: 'drain',\n enabled: !!normanAction.drain,\n icon: 'icon icon-fw icon-dot-open',\n label: this.t('drainNode.action'),\n bulkable: true,\n bulkAction: 'drain'\n };\n\n const stopDrain = {\n action: 'stopDrain',\n enabled: !!normanAction.stopDrain,\n icon: 'icon icon-fw icon-x',\n label: this.t('drainNode.actionStop'),\n bulkable: true,\n };\n\n const openSsh = {\n action: 'openSsh',\n enabled: !!this.provisionedMachine?.links?.shell,\n icon: 'icon icon-fw icon-chevron-right',\n label: 'SSH Shell',\n };\n\n const downloadKeys = {\n action: 'downloadKeys',\n enabled: !!this.provisionedMachine?.links?.sshkeys,\n icon: 'icon icon-fw icon-download',\n label: this.t('node.actions.downloadSSHKey'),\n };\n\n return [\n openSsh,\n downloadKeys,\n { divider: true },\n cordon,\n uncordon,\n drain,\n stopDrain,\n { divider: true },\n ...super._availableActions\n ];\n }\n\n openSsh() {\n // Pass in the name of the node, so we display that rather than the name of the provisioned machine\n this.provisionedMachine.openSsh(this.nameDisplay);\n }\n\n downloadKeys() {\n this.provisionedMachine.downloadKeys();\n }\n\n get showDetailStateBadge() {\n return true;\n }\n\n get name() {\n return this.metadata.name;\n }\n\n get addresses() {\n return this.status?.addresses || [];\n }\n\n get internalIp() {\n return findLast(this.addresses, (address) => address.type === 'InternalIP')?.address;\n }\n\n get externalIp() {\n const annotationAddress = this.metadata.annotations[RKE.EXTERNAL_IP];\n const statusAddress = findLast(this.addresses, (address) => address.type === 'ExternalIP')?.address;\n\n return statusAddress || annotationAddress;\n }\n\n get labels() {\n return this.metadata?.labels || {};\n }\n\n get customLabelCount() {\n return this.customLabels.length;\n }\n\n get customLabels() {\n const parsedLabels = [];\n\n if (this.labels) {\n for (const k in this.labels) {\n const [prefix] = k.split('/');\n\n if (!SYSTEM_LABELS.includes(prefix)) {\n parsedLabels.push(`${ k }=${ this.labels[k] }`);\n }\n }\n }\n\n return parsedLabels;\n }\n\n get isWorker() {\n return this.managementNode ? this.managementNode.isWorker : `${ this.labels[NODE_ROLES.WORKER] }` === 'true';\n }\n\n get isControlPlane() {\n if (this.managementNode) {\n return this.managementNode.isControlPlane;\n } else if (\n `${ this.labels[NODE_ROLES.CONTROL_PLANE] }` === 'true' ||\n `${ this.labels[NODE_ROLES.CONTROL_PLANE_OLD] }` === 'true'\n ) {\n return true;\n }\n\n return false;\n }\n\n get isEtcd() {\n return this.managementNode ? this.managementNode.isEtcd : `${ this.labels[NODE_ROLES.ETCD] }` === 'true';\n }\n\n get hasARole() {\n const roleLabelKeys = Object.values(NODE_ROLES);\n\n return Object.keys(this.labels)\n .some((labelKey) => {\n const hasRoleLabel = roleLabelKeys.includes(labelKey);\n const isExpectedValue = `${ this.labels[labelKey] }` === 'true';\n\n return hasRoleLabel && isExpectedValue;\n });\n }\n\n get roles() {\n const { isControlPlane, isWorker, isEtcd } = this;\n\n return listNodeRoles(isControlPlane, isWorker, isEtcd, this.t('generic.all'));\n }\n\n get version() {\n return this.status.nodeInfo.kubeletVersion;\n }\n\n get cpuUsage() {\n /*\n With EKS nodes that have been migrated from norman,\n cpu/memory usage is by the annotation `management.cattle.io/pod-requests`\n */\n if ( this.isFromNorman && this.provider === 'eks' ) {\n return parseSi(this.podRequests.cpu || '0');\n }\n\n return parseSi(this.$rootGetters['cluster/byId'](METRIC.NODE, this.id)?.usage?.cpu || '0');\n }\n\n get cpuCapacity() {\n return parseSi(this.status.allocatable?.cpu);\n }\n\n get cpuUsagePercentage() {\n return ((this.cpuUsage * 100) / this.cpuCapacity).toString();\n }\n\n get ramUsage() {\n if ( this.isFromNorman && this.provider === 'eks' ) {\n return parseSi(this.podRequests.memory || '0');\n }\n\n return parseSi(this.$rootGetters['cluster/byId'](METRIC.NODE, this.id)?.usage?.memory || '0');\n }\n\n get ramCapacity() {\n return parseSi(this.status.capacity?.memory);\n }\n\n get ramUsagePercentage() {\n return ((this.ramUsage * 100) / this.ramCapacity).toString();\n }\n\n get ramReserved() {\n return parseSi(this.status?.allocatable?.memory);\n }\n\n get ramReservedPercentage() {\n return ((this.ramUsage * 100) / this.ramReserved).toString();\n }\n\n get podUsage() {\n return calculatePercentage(this.status.allocatable?.pods, this.status.capacity?.pods);\n }\n\n get podConsumedUsage() {\n return ((this.podConsumed / this.podCapacity) * 100).toString();\n }\n\n get podCapacity() {\n return Number.parseInt(this.status.capacity?.pods);\n }\n\n get podConsumed() {\n const runningPods = this.pods.filter((pod) => pod.state === 'running');\n\n return runningPods.length || 0;\n }\n\n get podRequests() {\n return JSON.parse(this.metadata.annotations['management.cattle.io/pod-requests'] || '{}');\n }\n\n get isPidPressureOk() {\n return this.isCondition('PIDPressure', 'False');\n }\n\n get isDiskPressureOk() {\n return this.isCondition('DiskPressure', 'False');\n }\n\n get isMemoryPressureOk() {\n return this.isCondition('MemoryPressure', 'False');\n }\n\n get isKubeletOk() {\n return this.isCondition('Ready');\n }\n\n get isCordoned() {\n return !!this.spec.unschedulable;\n }\n\n get drainedState() {\n const sNodeCondition = this.managementNode?.status.conditions.find((c) => c.type === 'Drained');\n\n if (sNodeCondition) {\n if (sNodeCondition.status === 'True') {\n return 'drained';\n }\n if (sNodeCondition.transitioning) {\n return 'draining';\n }\n }\n\n return null;\n }\n\n get containerRuntimeVersion() {\n return this.status.nodeInfo.containerRuntimeVersion.replace('docker://', '');\n }\n\n get containerRuntimeIcon() {\n if ( this.status.nodeInfo.containerRuntimeVersion.includes('docker') ) {\n return 'icon-docker';\n }\n\n return '';\n }\n\n async cordon(resources) {\n const safeResources = Array.isArray(resources) ? resources : [this];\n\n await Promise.all(safeResources.map((node) => {\n return node.norman?.doAction('cordon');\n }));\n }\n\n async uncordon(resources) {\n const safeResources = Array.isArray(resources) ? resources : [this];\n\n await Promise.all(safeResources.map((node) => {\n return node.norman?.doAction('uncordon');\n }));\n }\n\n /**\n *Find the node's cluster id from it's url\n */\n get clusterId() {\n const parts = this.links.self.split('/');\n\n // Local cluster url links omit `/k8s/clusters/<cluster id>`\n // `/v1/nodes` vs `k8s/clusters/c-m-274kcrc4/v1/nodes`\n // Be safe when determining this, so work back through the url from a known point\n if (parts.length > 6 && parts[parts.length - 6] === 'k8s' && parts[parts.length - 5] === 'clusters') {\n return parts[parts.length - 4];\n }\n\n return LOCAL;\n }\n\n get normanNodeId() {\n const managementNode = (this.$rootGetters['management/all'](MANAGEMENT.NODE) || []).find((n) => {\n return n.id.startsWith(this.clusterId) && n.status.nodeName === this.name;\n });\n\n if (managementNode) {\n return managementNode.id.replace('/', ':');\n }\n\n return null;\n }\n\n get norman() {\n return this.$rootGetters['rancher/byId'](NORMAN.NODE, this.normanNodeId);\n }\n\n get managementNode() {\n return this.$rootGetters['management/all'](MANAGEMENT.NODE).find((mNode) => {\n return mNode.id.startsWith(this.clusterId) && mNode.status.nodeName === this.id;\n });\n }\n\n drain(resources) {\n this.$dispatch('promptModal', {\n component: 'DrainNode',\n componentProps: {\n kubeNodes: resources || [this],\n normanNodeId: this.normanNodeId\n }\n });\n }\n\n async stopDrain(resources) {\n const safeResources = Array.isArray(resources) ? resources : [this];\n\n await Promise.all(safeResources.map((node) => {\n return node.norman?.doAction('stopDrain');\n }));\n }\n\n get state() {\n if (this.drainedState) {\n return this.drainedState;\n }\n\n if ( this.isCordoned ) {\n return 'cordoned';\n }\n\n return this.metadata?.state?.name || 'unknown';\n }\n\n get details() {\n const details = [\n {\n label: this.t('node.detail.detailTop.version'),\n content: this.version\n },\n {\n label: this.t('node.detail.detailTop.os'),\n content: this.status.nodeInfo.osImage\n },\n {\n label: this.t('node.detail.detailTop.containerRuntime'),\n formatter: 'IconText',\n formatterOpts: { iconClass: this.containerRuntimeIcon },\n content: this.containerRuntimeVersion\n }];\n\n if (this.internalIp) {\n details.unshift({\n label: this.t('node.detail.detailTop.internalIP'),\n formatter: 'CopyToClipboard',\n content: this.internalIp\n });\n }\n\n if (this.externalIp) {\n details.unshift({\n label: this.t('node.detail.detailTop.externalIP'),\n formatter: 'CopyToClipboard',\n content: this.externalIp\n });\n }\n\n return details;\n }\n\n get pods() {\n const allPods = this.$rootGetters['cluster/all'](POD);\n\n return allPods.filter((pod) => pod.spec.nodeName === this.name);\n }\n\n get confirmRemove() {\n return true;\n }\n\n get canClone() {\n return false;\n }\n\n get canDelete() {\n const cloudProviders = [\n 'aks', 'azureaks', 'azurekubernetesservice',\n 'eks', 'amazoneks',\n 'gke', 'googlegke'\n ];\n\n return !cloudProviders.includes(this.provider);\n }\n\n // You need to preload CAPI.MACHINEs to use this\n get provisionedMachine() {\n const namespace = this.metadata?.annotations?.[CAPI_ANNOTATIONS.CLUSTER_NAMESPACE];\n const name = this.metadata?.annotations?.[CAPI_ANNOTATIONS.MACHINE_NAME];\n\n if ( namespace && name ) {\n return this.$rootGetters['management/byId'](CAPI.MACHINE, `${ namespace }/${ name }`);\n }\n\n return null;\n }\n\n get isFromNorman() {\n return (this.$rootGetters['currentCluster'].metadata.labels || {})['cattle.io/creator'] === 'norman';\n }\n\n get provider() {\n return this.$rootGetters['currentCluster'].provisioner.toLowerCase();\n }\n\n get displayTaintsAndLabels() {\n return !!this.spec.taints?.length || !!this.customLabelCount;\n }\n}\n\nfunction calculatePercentage(allocatable, capacity) {\n const c = Number.parseFloat(capacity);\n const a = Number.parseFloat(allocatable);\n const percent = (((c - a) / c) * 100);\n\n return formatPercent(percent);\n}\n\nexport function listNodeRoles(isControlPlane, isWorker, isEtcd, allString) {\n const res = [];\n\n if (isControlPlane) {\n res.push('Control Plane');\n }\n\n if (isWorker) {\n res.push('Worker');\n }\n\n if (isEtcd) {\n res.push('Etcd');\n }\n\n if (res.length === 3 || res.length === 0) {\n return allString;\n }\n\n return res.join(', ');\n}\n","import SteveSchema from '../steve-schema';\n\n/**\n * This is the steve schema that's used for the cluster store\n */\nexport default class ClusterStoreSchema extends SteveSchema { }\n","import { MANAGEMENT } from '@shell/config/types';\nimport NormanModel from '@shell/plugins/steve/norman-class';\n\nexport default class CRTB extends NormanModel {\n get principalId() {\n return this.userPrincipalId || this.groupPrincipalId;\n }\n\n get roleDisplay() {\n return this.roleTemplate.nameDisplay;\n }\n\n get roleDescription() {\n return this.roleTemplate.description;\n }\n\n get roleTemplate() {\n return this.$rootGetters['management/byId'](MANAGEMENT.ROLE_TEMPLATE, this.roleTemplateId);\n }\n\n get clusterroletemplatebinding() {\n return this.$rootGetters[`management/byId`](MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING, this.id?.replace(':', '/'));\n }\n\n get steve() {\n return this.$dispatch(`management/find`, {\n type: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING,\n id: this.id?.replace(':', '/')\n }, { root: true });\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class ConfigMap extends SteveModel {\n get keysDisplay() {\n const keys = [\n ...Object.keys(this.data || []),\n ...Object.keys(this.binaryData || [])\n ];\n\n if ( !keys.length ) {\n return '(none)';\n }\n\n // if ( keys.length >= 4 ) {\n // return `${keys[0]}, ${keys[1]}, ${keys[2]} and ${keys.length - 3} more`;\n // }\n\n return keys.join(', ');\n }\n}\n","import jsyaml from 'js-yaml';\r\nimport SteveModel from '@shell/plugins/steve/steve-class';\r\nimport { downloadFile } from '@shell/utils/download';\r\n\r\nexport const ENFORCEMENT_ACTION_VALUES = {\r\n DENY: 'deny',\r\n DRYRUN: 'dryrun'\r\n};\r\n\r\nexport default class GateKeeperConstraint extends SteveModel {\r\n get _availableActions() {\r\n const out = super._availableActions;\r\n\r\n const t = this.$rootGetters['i18n/t'];\r\n\r\n const downloadViolations = {\r\n action: 'downloadViolations',\r\n icon: 'icon icon-fw icon-download',\r\n label: t('gatekeeperConstraint.downloadViolations'),\r\n total: 1,\r\n };\r\n\r\n out.unshift(downloadViolations);\r\n\r\n return out;\r\n }\r\n\r\n async save() {\r\n let constraint;\r\n let resourceVersion;\r\n\r\n if (this.constraint) {\r\n constraint = await this.findLatestConstraint();\r\n resourceVersion = constraint?.metadata?.resourceVersion;\r\n } else {\r\n constraint = await this.$dispatch('cluster/create', { type: `constraints.gatekeeper.sh.${ this.kind.toLowerCase() }` }, { root: true });\r\n }\r\n\r\n constraint.spec = this.spec;\r\n constraint.metadata = this.metadata;\r\n if (resourceVersion) {\r\n constraint.metadata.resourceVersion = resourceVersion;\r\n }\r\n\r\n await constraint.save();\r\n }\r\n\r\n async downloadViolations() {\r\n const Papa = await import(/* webpackChunkName: \"csv\" */'papaparse');\r\n\r\n try {\r\n const violations = (this.violations || []).map((violation) => {\r\n delete violation.resourceLink;\r\n delete violation.constraintLink;\r\n\r\n return violation;\r\n });\r\n\r\n const csv = Papa.unparse(violations);\r\n\r\n downloadFile(`violations-${ this.name }.csv`, csv, 'application/csv');\r\n } catch (err) {\r\n this.$dispatch('growl/fromError', { title: 'Error downloading file', err }, { root: true });\r\n }\r\n }\r\n\r\n cleanForNew() {\r\n this.$dispatch(`cleanForNew`, this);\r\n\r\n if (this.constraint) {\r\n delete this.constraint;\r\n }\r\n }\r\n\r\n saveYaml(yaml) {\r\n const parsed = jsyaml.load(yaml);\r\n\r\n Object.assign(this, parsed);\r\n\r\n return this.save();\r\n }\r\n\r\n async remove() {\r\n const constraint = await this.findLatestConstraint();\r\n\r\n return constraint.remove();\r\n }\r\n\r\n findLatestConstraint() {\r\n return this.$dispatch('cluster/find', {\r\n type: this.constraint.type, id: this.constraint.id, opt: { force: true }\r\n }, { root: true });\r\n }\r\n\r\n get totalViolations() {\r\n return this.status?.totalViolations || this.violations.length;\r\n }\r\n\r\n get violations() {\r\n const violations = this.status?.violations || [];\r\n\r\n return violations.map((violation) => {\r\n return {\r\n ...violation,\r\n resourceLink: {\r\n text: violation.name,\r\n to: {\r\n name: 'c-cluster-product-resource-id',\r\n params: {\r\n resource: violation.kind.toLowerCase(), id: violation.name, product: 'explorer'\r\n }\r\n }\r\n },\r\n constraintLink: {\r\n text: this.nameDisplay,\r\n to: this.detailLocation\r\n }\r\n };\r\n });\r\n }\r\n}\r\n","import { DESCRIPTION } from '@shell/config/labels-annotations';\nimport NormanModel from '@shell/plugins/steve/norman-class';\nimport { KONTAINER_TO_DRIVER } from './management.cattle.io.kontainerdriver';\nimport capitalize from 'lodash/capitalize';\n\nexport default class Driver extends NormanModel {\n get canViewYaml() {\n return false;\n }\n\n get driverName() {\n if (!this.builtIn) {\n // if the driver is not built in, there's a good change its a custom one\n // custom drivers have a random id, so shouldn't be used as the type\n // instead use the status.displayName. this will map to the name extracted from the binary\n const driverName = this.status?.displayName?.toLowerCase();\n\n if (driverName) {\n // some drivers are built in but don't have the builtIn flag. ensure we pass these through K_TO_D\n return KONTAINER_TO_DRIVER[driverName] || driverName;\n }\n }\n\n return KONTAINER_TO_DRIVER[this.id] || this.name || this.id;\n }\n\n get nameDisplay() {\n const path = `cluster.provider.${ this.driverName }`;\n const label = capitalize(this.driverName);\n\n return this.$rootGetters['i18n/withFallback'](path, label);\n }\n\n get description() {\n if (!!this.builtIn || !!this.builtin) {\n return this.$rootGetters['i18n/withFallback']('tableHeaders.builtIn');\n } else {\n return this.url;\n }\n }\n\n /**\n * Set description based on the type of model available with private fallback\n */\n set description(value) {\n if (this.annotations) {\n this.annotations[DESCRIPTION] = value;\n }\n\n this._description = value;\n }\n\n cleanForSave(data, forNew) {\n const val = super.cleanForSave(data, forNew);\n\n if (forNew) {\n val.active = true;\n }\n delete val.metadata;\n\n return val;\n }\n}\n","import NormanModel from '@shell/plugins/steve/norman-class';\nimport { STATES_ENUM } from '@shell/plugins/dashboard-store/resource-class';\n\nexport default class Rke1EtcdBackup extends NormanModel {\n get _availableActions() {\n const restore = {\n action: 'promptRestore',\n enabled: this.state === STATES_ENUM.ACTIVE,\n icon: 'icon icon-fw icon-backup-restore',\n label: 'Restore'\n };\n\n const baseActions = super._availableActions;\n const actions = [\n restore\n ];\n\n if (baseActions.length) {\n actions.push({ divider: true });\n actions.push(...baseActions);\n }\n\n return actions;\n }\n\n promptRestore() {\n this.$dispatch('promptRestore', [this]);\n }\n\n get createdAt() {\n return this.created;\n }\n\n get rke2() {\n return false;\n }\n\n get nameDisplay() {\n return this.name;\n }\n\n get backupLocation() {\n return !!this.backupConfig.s3BackupConfig ? this.t('cluster.snapshot.rke1.s3') : this.t('cluster.snapshot.rke1.local');\n }\n}\n","import isEmpty from 'lodash/isEmpty';\nimport { ucFirst } from '@shell/utils/string';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class K8sEvent extends SteveModel {\n get displayInvolvedObject() {\n const involvedObject = this.involvedObject;\n\n if (isEmpty(involvedObject)) {\n return 'N/A';\n }\n\n return `${ involvedObject.kind } ${ involvedObject.name }`;\n }\n\n get displayMessage() {\n return ucFirst(this.message);\n }\n\n get timestamp() {\n return this.lastTimestamp || this.metadata?.creationTimestamp;\n }\n\n get eventType() {\n return this._type;\n }\n\n get lastSeen() {\n const schema = this.$getters['schemaFor'](this.type);\n const rowValueGetter = this.$rootGetters['type-map/rowValueGetter'];\n\n return schema && rowValueGetter ? rowValueGetter(schema, 'Last Seen')(this) : null;\n }\n}\n","import { escapeHtml, ucFirst } from '@shell/utils/string';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport typeHelper from '@shell/utils/type-helpers';\nimport { addObject, addObjects, findBy } from '@shell/utils/array';\nimport { FLEET } from '@shell/config/types';\nimport { convertSelectorObj, matching } from '@shell/utils/selector';\n\nexport default class FleetBundle extends SteveModel {\n get lastUpdateTime() {\n return this.status?.conditions?.[0].lastUpdateTime;\n }\n\n get bundleType() {\n if (typeHelper.memberOfObject(this.spec, 'helm')) {\n return 'helm';\n }\n\n return '';\n }\n\n get repoName() {\n const labels = this.metadata?.labels || {};\n\n return labels['fleet.cattle.io/repo-name'];\n }\n\n get targetClusters() {\n const workspace = this.$getters['byId'](\n FLEET.WORKSPACE,\n this.metadata.namespace\n );\n const clusters = workspace?.clusters || [];\n const groups = workspace?.clusterGroups || [];\n const out = [];\n\n if (workspace.id === 'fleet-local') {\n const local = findBy(groups, 'id', 'fleet-local/default');\n\n if (local) {\n return local.targetClusters;\n }\n\n return [];\n }\n\n for (const tgt of this.spec.targets) {\n if (tgt.clusterName) {\n const cluster = findBy(clusters, 'metadata.name', tgt.clusterName);\n\n if (cluster) {\n addObject(out, cluster);\n }\n } else if (tgt.clusterGroup) {\n const group = findBy(groups, {\n 'metadata.namespace': this.metadata.namespace,\n 'metadata.name': tgt.clusterGroup\n });\n\n if (group) {\n addObjects(out, group.targetClusters);\n }\n } else if (tgt.clusterGroupSelector) {\n const expressions = convertSelectorObj(tgt.clusterGroupSelector);\n const matchingGroups = matching(groups, expressions);\n\n for (const group of matchingGroups) {\n addObjects(out, group.targetClusters);\n }\n } else if (tgt.clusterSelector) {\n const expressions = convertSelectorObj(tgt.clusterSelector);\n const matchingClusters = matching(clusters, expressions);\n\n addObjects(out, matchingClusters);\n }\n }\n\n return out;\n }\n\n get stateDescription() {\n const error = this.stateObj?.error || false;\n const message = this.stateObj?.message;\n\n return error ? ucFirst(message) : '';\n }\n\n get stateObj() {\n const errorState = this.status?.conditions?.find((item) => {\n const { error, message } = item;\n const errState = !!error;\n\n /**\n * error.trainsitioning = true when error applied. So checking non existance of tranistioning is not enough.\n * {\n * \"error\": true,\n * \"lastUpdateTime\": \"2022-03-03T08:28:15Z\",\n * \"message\": \"ErrApplied(1) [Cluster test-do/c-b5rsv: rendered manifests contain a resource that already exists. Unable to continue with install: Service \\\"frontend\\\" in namespace \\\"fleet-mc-helm-kustomize-example\\\" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key \\\"meta.helm.sh/release-name\\\" must equal \\\"sf-mchk-multi-cluster-helm-kustomize\\\": current value is \\\"test-bug-multi-cluster-helm-kustomize\\\"]; NotReady(1) [Cluster test-do/c-5fhtx]; deployment.apps fleet-mc-helm-kustomize-example/redis-master [progressing] Deployment does not have minimum availability., Available: 0/1; deployment.apps shavin/frontend extra; deployment.apps shavin/redis-master extra; deployment.apps shavin/redis-slave extra; service.v1 shavin/frontend extra\",\n * \"status\": \"False\",\n * \"transitioning\": true,\n * \"type\": \"Ready\"\n * },\n */\n const hasErrorMessage =\n message?.toLowerCase().includes('errapplied') ||\n message?.toLowerCase().includes('error');\n\n return errState && hasErrorMessage;\n });\n\n if (errorState) {\n errorState.name = errorState.message?.toLowerCase().includes('errapplied') ? 'errapplied' : 'error';\n\n return errorState;\n }\n\n return { ...this.metadata.state };\n }\n\n get groupByLabel() {\n const name = this.metadata.namespace;\n\n if (name) {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.workspace', { name: escapeHtml(name) });\n } else {\n return this.$rootGetters['i18n/t'](\n 'resourceTable.groupLabel.notInAWorkspace'\n );\n }\n }\n}\n","import { LOCAL_CLUSTER, MANAGEMENT, NORMAN } from '@shell/config/types';\nimport { CAPI, FLEET as FLEET_LABELS, SYSTEM_LABELS } from '@shell/config/labels-annotations';\nimport { _RKE2 } from '@shell/store/prefs';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { escapeHtml } from '@shell/utils/string';\nimport { insertAt } from '@shell/utils/array';\nimport jsyaml from 'js-yaml';\nimport { FLEET_WORKSPACE_BACK } from '@shell/store/features';\n\nexport default class FleetCluster extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n insertAt(out, 0, {\n action: 'pause',\n label: 'Pause',\n icon: 'icon icon-pause',\n bulkable: true,\n enabled: !!this.links.update && !this.spec?.paused\n });\n\n insertAt(out, 1, {\n action: 'unpause',\n label: 'Unpause',\n icon: 'icon icon-play',\n bulkable: true,\n enabled: !!this.links.update && this.spec?.paused === true\n });\n\n insertAt(out, 2, {\n action: 'forceUpdate',\n label: 'Force Update',\n icon: 'icon icon-refresh',\n bulkable: true,\n enabled: !!this.links.update\n });\n\n if (this.canChangeWorkspace) {\n insertAt(out, 3, {\n action: 'assignTo',\n label: 'Change workspace',\n icon: 'icon icon-copy',\n bulkable: true,\n bulkAction: 'assignToBulk',\n enabled: !!this.links.update && !!this.mgmt,\n });\n }\n\n insertAt(out, 4, { divider: true });\n\n return out;\n }\n\n pause() {\n this.spec.paused = true;\n this.save();\n }\n\n unpause() {\n this.spec.paused = false;\n this.save();\n }\n\n forceUpdate() {\n const now = this.spec.redeployAgentGeneration || 1;\n\n this.spec.redeployAgentGeneration = now + 1;\n this.save();\n }\n\n assignTo() {\n this.$dispatch('assignTo', [this]);\n }\n\n assignToBulk(items) {\n this.$dispatch('assignTo', items);\n }\n\n get canDelete() {\n return false;\n }\n\n get canChangeWorkspace() {\n // https://github.com/rancher/dashboard/issues/7745\n if (this.isLocal) {\n return false;\n }\n // https://github.com/rancher/dashboard/issues/9730\n if (this.isRke2) {\n return this.$rootGetters['features/get'](FLEET_WORKSPACE_BACK);\n }\n\n return true;\n }\n\n get isLocal() {\n return this.metadata.name === LOCAL_CLUSTER || this.metadata?.labels?.[FLEET_LABELS.CLUSTER_NAME] === LOCAL_CLUSTER;\n }\n\n get isRke2() {\n const provider = this?.metadata?.labels?.[CAPI.PROVIDER] || this?.status?.provider;\n\n return provider === _RKE2;\n }\n\n get nameDisplay() {\n return this.metadata?.labels?.[FLEET_LABELS.CLUSTER_DISPLAY_NAME] || this.metadata?.name || this.id;\n }\n\n get name() {\n return this.metadata?.name || this.metadata?.labels?.[FLEET_LABELS.CLUSTER_NAME];\n }\n\n get state() {\n if (this.spec?.paused === true) {\n return 'paused';\n }\n\n return this.metadata?.state?.name || 'unknown';\n }\n\n get repoInfo() {\n const ready = this.status?.readyGitRepos || 0;\n const total = this.status?.desiredReadyGitRepos || 0;\n\n return {\n ready,\n unready: total - ready,\n total,\n };\n }\n\n get bundleInfo() {\n const bundlesData = {\n ready: 0,\n total: 0\n };\n const readyBundles = this.status?.display?.readyBundles;\n\n if (readyBundles && readyBundles.includes('/')) {\n const dataArr = readyBundles.split('/');\n\n if (dataArr.length === 2 && parseInt(dataArr[0]) >= 0 && parseInt(dataArr[1]) >= 0) {\n bundlesData.ready = parseInt(dataArr[0]);\n bundlesData.total = parseInt(dataArr[1]);\n\n return bundlesData;\n }\n }\n\n bundlesData.noValidData = true;\n\n return bundlesData;\n }\n\n get mgmt() {\n const mgmt = this.$getters['byId'](MANAGEMENT.CLUSTER, this.metadata?.labels?.[FLEET_LABELS.CLUSTER_NAME]);\n\n return mgmt;\n }\n\n get basicNorman() {\n const norman = this.$rootGetters['rancher/byId'](NORMAN.CLUSTER, this.metadata?.labels?.[FLEET_LABELS.CLUSTER_NAME]);\n\n return norman;\n }\n\n get norman() {\n if (this.basicNorman) {\n return this.basicNorman;\n }\n\n // If navigate to YAML view directly, norman is not loaded yet\n return this.$dispatch('rancher/find', { type: NORMAN.CLUSTER, id: this.metadata.labels[FLEET_LABELS.CLUSTER_NAME] }, { root: true });\n }\n\n async normanClone() {\n const norman = await this.norman;\n\n return this.$dispatch('rancher/clone', { resource: norman }, { root: true });\n }\n\n get groupByLabel() {\n const name = this.metadata.namespace;\n\n if (name) {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.workspace', { name: escapeHtml(name) });\n } else {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.notInAWorkspace');\n }\n }\n\n get customLabels() {\n const parsedLabels = [];\n\n if (this.labels) {\n for (const k in this.labels) {\n const [prefix] = k.split('/');\n\n if (!SYSTEM_LABELS.includes(prefix) && k !== CAPI.PROVIDER) {\n parsedLabels.push(`${ k }=${ this.labels[k] }`);\n }\n }\n }\n\n return parsedLabels;\n }\n\n async saveYaml(yaml) {\n await this._saveYaml(yaml);\n\n const parsed = jsyaml.load(yaml);\n\n const norman = await this.normanClone();\n\n norman.setLabels(parsed.metadata.labels);\n norman.setAnnotations(parsed.metadata.annotations);\n\n await norman.save();\n }\n}\n","import { escapeHtml } from '@shell/utils/string';\nimport { matching, convert } from '@shell/utils/selector';\nimport { FLEET } from '@shell/config/types';\nimport { set } from '@shell/utils/object';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class FleetClusterGroup extends SteveModel {\n applyDefaults() {\n const spec = this.spec || {};\n\n spec.selector = spec.selector || {};\n spec.selector.matchExpressions = spec.selector.matchExpressions || [];\n\n set(this, 'spec', spec);\n }\n\n get targetClusters() {\n const workspace = this.$getters['byId'](FLEET.WORKSPACE, this.metadata.namespace);\n const expressions = convert(this.spec?.selector?.matchLabels || {}, this.spec?.selector?.matchExpressions || []);\n\n if ( !expressions.length ) {\n return workspace.clusters;\n }\n\n const match = matching(workspace.clusters, expressions);\n\n return match;\n }\n\n get groupByLabel() {\n const name = this.metadata.namespace;\n\n if ( name ) {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.workspace', { name: escapeHtml(name) });\n } else {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.notInAWorkspace');\n }\n }\n\n get clusterInfo() {\n const total = this.status?.clusterCount || 0;\n const unready = this.status?.nonReadyClusterCount || 0;\n const ready = total - unready;\n\n return {\n ready,\n unready,\n total,\n };\n }\n\n get details() {\n const out = [\n {\n label: 'Clusters Ready',\n content: `${ this.clusterInfo.ready } of ${ this.clusterInfo.total }`,\n },\n ];\n\n return out;\n }\n}\n","import { escapeHtml } from '@shell/utils/string';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class FleetToken extends SteveModel {\n get groupByLabel() {\n const name = this.metadata.namespace;\n\n if ( name ) {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.workspace', { name: escapeHtml(name) });\n } else {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.notInAWorkspace');\n }\n }\n}\n","import {\n BundleDeploymentResource,\n BundleResourceKey,\n BundleDeployment,\n BundleDeploymentStatus,\n BundleStatus,\n Condition,\n} from '@shell/types/resources/fleet';\nimport { STATES_ENUM } from '@shell/plugins/dashboard-store/resource-class';\nimport { FLEET as FLEET_LABELS } from '@shell/config/labels-annotations';\n\ninterface Resource extends BundleDeploymentResource {\n state: string,\n}\n\ntype Labels = {\n [key: string]: string,\n}\n\ninterface StatesCounter { [state: string]: number }\n\nfunction incr(counter: StatesCounter, state: string) {\n if (!counter[state]) {\n counter[state] = 0;\n }\n counter[state]++;\n}\n\nfunction resourceKey(r: BundleResourceKey): string {\n return `${ r.kind }/${ r.namespace }/${ r.name }`;\n}\n\nfunction conditionIsTrue(conditions: Condition[] | undefined, type: string): boolean {\n if (!conditions) {\n return false;\n }\n\n return !!conditions.find((c) => c.type === type && c.status.toLowerCase() === 'true');\n}\n\nclass Fleet {\n resourceId(r: BundleResourceKey): string {\n return r.namespace ? `${ r.namespace }/${ r.name }` : r.name;\n }\n\n /**\n * resourceType normalizes APIVersion and Kind from a Resources into a single string\n */\n resourceType(r: Resource): string {\n // ported from https://github.com/rancher/fleet/blob/v0.10.0/internal/cmd/controller/grutil/resourcekey.go#L116-L128\n const type = r.kind.toLowerCase();\n\n if (!r.apiVersion || r.apiVersion === 'v1') {\n return type;\n }\n\n return `${ r.apiVersion.split('/', 2)[0] }.${ type }`;\n }\n\n /**\n * resourcesFromBundleDeploymentStatus extracts the list of resources deployed by a BundleDeployment\n */\n resourcesFromBundleDeploymentStatus(status: BundleDeploymentStatus): Resource[] {\n // status.resources includes of resources that were deployed by Fleet *and still exist in the cluster*\n // Use a map to avoid `find` over and over again\n const resources = (status?.resources || []).reduce((res, r) => {\n res[resourceKey(r)] = Object.assign({ state: STATES_ENUM.READY }, r);\n\n return res;\n }, {} as { [resourceKey: string]: Resource });\n\n const modified: Resource[] = [];\n\n for (const r of status?.modifiedStatus || []) {\n const state = r.missing ? STATES_ENUM.MISSING : r.delete ? STATES_ENUM.ORPHANED : STATES_ENUM.MODIFIED;\n const found: Resource = resources[resourceKey(r)];\n\n // Depending on the state, the same resource can appear in both fields\n if (found) {\n found.state = state;\n } else {\n modified.push(Object.assign({ state }, r));\n }\n }\n for (const r of status?.nonReadyStatus || []) {\n const state = r.summary?.state || STATES_ENUM.UNKNOWN;\n const found: Resource = resources[resourceKey(r)];\n\n if (found) {\n found.state = state;\n }\n }\n\n return modified.concat(Object.values(resources));\n }\n\n /**\n * resourcesFromBundleStatus extracts the list of resources deployed by a Bundle\n */\n resourcesFromBundleStatus(status: BundleStatus): Resource[] {\n // The state of every resource is spread all over the bundle status.\n // resourceKey contains one entry per resource AND cluster (built by Fleet from all the child BundleDeployments).\n // However, those entries do not contain the cluster that they belong to, leading to duplicate entries\n\n // 1. Fold resourceKey by using a unique key, initializing counters for multiple occurrences of the same resource\n const resources = (status.resourceKey || []).reduce((res, r) => {\n const k = resourceKey(r);\n\n if (!res[k]) {\n res[k] = { r, count: {} };\n }\n incr(res[k].count, STATES_ENUM.READY);\n\n return res;\n }, {} as { [resourceKey: string]: { r: BundleResourceKey, count: StatesCounter } });\n\n // 2. Non-ready resources are counted differently and may also appear in resourceKey, depending on their state\n for (const bundle of status.summary?.nonReadyResources || []) {\n for (const r of bundle.modifiedStatus || []) {\n const k = resourceKey(r);\n\n if (!resources[k]) {\n resources[k] = { r, count: {} };\n }\n\n if (r.missing) {\n incr(resources[k].count, STATES_ENUM.MISSING);\n } else if (r.delete) {\n resources[k].count[STATES_ENUM.READY]--;\n incr(resources[k].count, STATES_ENUM.ORPHANED);\n } else {\n resources[k].count[STATES_ENUM.READY]--;\n incr(resources[k].count, STATES_ENUM.MODIFIED);\n }\n }\n for (const r of bundle.nonReadyStatus || []) {\n const k = resourceKey(r);\n const state = r.summary?.state || STATES_ENUM.UNKNOWN;\n\n resources[k].count[STATES_ENUM.READY]--;\n incr(resources[k].count, state);\n }\n }\n\n // 3. Unfold back to an array of resources for display\n return Object.values(resources).reduce((res, e) => {\n const { r, count } = e;\n\n for (const state in count) {\n for (let x = 0; x < count[state]; x++) {\n res.push(Object.assign({ state }, r));\n }\n }\n\n return res;\n }, [] as Resource[]);\n }\n\n clusterIdFromBundleDeploymentLabels(labels?: Labels): string {\n const clusterNamespace = labels?.[FLEET_LABELS.CLUSTER_NAMESPACE];\n const clusterName = labels?.[FLEET_LABELS.CLUSTER];\n\n return `${ clusterNamespace }/${ clusterName }`;\n }\n\n bundleIdFromBundleDeploymentLabels(labels?: Labels): string {\n const bundleNamespace = labels?.[FLEET_LABELS.BUNDLE_NAMESPACE];\n const bundleName = labels?.[FLEET_LABELS.BUNDLE_NAME];\n\n return `${ bundleNamespace }/${ bundleName }`;\n }\n\n bundleDeploymentState(bd: BundleDeployment): string {\n // Ported from https://github.com/rancher/fleet/blob/534dbfdd6f74caf97bccd4cf977e42c5009b2432/internal/cmd/controller/summary/summary.go#L89\n if (bd.status?.appliedDeploymentId !== bd.spec.deploymentId) {\n return conditionIsTrue(bd.status?.conditions, 'Deployed') ? STATES_ENUM.WAIT_APPLIED : STATES_ENUM.ERR_APPLIED;\n } else if (!bd.status?.ready) {\n return STATES_ENUM.NOT_READY;\n } else if (bd.spec.deploymentId !== bd.spec.stagedDeploymentId) {\n return STATES_ENUM.OUT_OF_SYNC;\n } else if (!bd.status?.nonModified) {\n return STATES_ENUM.MODIFIED;\n } else {\n return STATES_ENUM.READY;\n }\n }\n}\n\nconst instance = new Fleet();\n\nexport default instance;\n","import { convert, matching, convertSelectorObj } from '@shell/utils/selector';\nimport jsyaml from 'js-yaml';\nimport isEmpty from 'lodash/isEmpty';\nimport { escapeHtml } from '@shell/utils/string';\nimport { FLEET } from '@shell/config/types';\nimport { FLEET as FLEET_ANNOTATIONS } from '@shell/config/labels-annotations';\nimport { addObject, addObjects, findBy, insertAt } from '@shell/utils/array';\nimport { set } from '@shell/utils/object';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport {\n colorForState, mapStateToEnum, primaryDisplayStatusFromCount, stateDisplay, STATES_ENUM, stateSort,\n} from '@shell/plugins/dashboard-store/resource-class';\nimport { NAME } from '@shell/config/product/explorer';\nimport FleetUtils from '@shell/utils/fleet';\n\nfunction quacksLikeAHash(str) {\n if (str.match(/^[a-f0-9]{40,}$/i)) {\n return true;\n }\n\n return false;\n}\n\nfunction normalizeStateCounts(data) {\n if (isEmpty(data)) {\n return {\n total: 0,\n states: {},\n };\n }\n const { desiredReady, ...rest } = data ;\n const states = Object.entries(rest).reduce((res, [key, value]) => {\n res[mapStateToEnum(key)] = value;\n\n return res;\n }, {});\n\n return {\n total: desiredReady,\n states,\n };\n}\n\nexport default class GitRepo extends SteveModel {\n applyDefaults() {\n const spec = this.spec || {};\n const meta = this.metadata || {};\n\n meta.namespace = this.$rootGetters['workspace'];\n\n spec.repo = spec.repo || '';\n\n if (!spec.branch && !spec.revision) {\n spec.branch = 'master';\n }\n\n spec.paths = spec.paths || [];\n spec.clientSecretName = spec.clientSecretName || null;\n\n spec['correctDrift'] = { enabled: false };\n\n set(this, 'spec', spec);\n set(this, 'metadata', meta);\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n insertAt(out, 0, {\n action: 'pause',\n label: 'Pause',\n icon: 'icon icon-pause',\n bulkable: true,\n enabled: !!this.links.update && !this.spec?.paused\n });\n\n insertAt(out, 1, {\n action: 'unpause',\n label: 'Unpause',\n icon: 'icon icon-play',\n bulkable: true,\n enabled: !!this.links.update && this.spec?.paused === true\n });\n\n insertAt(out, 2, {\n action: 'forceUpdate',\n label: 'Force Update',\n icon: 'icon icon-refresh',\n bulkable: true,\n enabled: !!this.links.update\n });\n\n insertAt(out, 3, { divider: true });\n\n return out;\n }\n\n pause() {\n this.spec.paused = true;\n this.save();\n }\n\n unpause() {\n this.spec.paused = false;\n this.save();\n }\n\n forceUpdate() {\n const now = this.spec.forceSyncGeneration || 1;\n\n this.spec.forceSyncGeneration = now + 1;\n this.save();\n }\n\n get state() {\n if (this.spec?.paused === true) {\n return 'paused';\n }\n\n return this.metadata?.state?.name || 'unknown';\n }\n\n get targetClusters() {\n const workspace = this.$getters['byId'](FLEET.WORKSPACE, this.metadata.namespace);\n const clusters = workspace?.clusters || [];\n const groups = workspace?.clusterGroups || [];\n\n if (workspace?.id === 'fleet-local') {\n // should we be getting the clusters from workspace.clusters instead of having to rely on the groups,\n // which takes an additional request to be done on the Fleet dashboard screen?\n const local = findBy(groups, 'id', 'fleet-local/default');\n\n if (local) {\n return local.targetClusters;\n }\n\n return [];\n }\n\n if (!this.spec.targets) {\n return [];\n }\n\n const out = [];\n\n for (const tgt of this.spec.targets) {\n if (tgt.clusterName) {\n const cluster = findBy(clusters, 'metadata.name', tgt.clusterName);\n\n if (cluster) {\n addObject(out, cluster);\n }\n } else if (tgt.clusterGroup) {\n const group = findBy(groups, {\n 'metadata.namespace': this.metadata.namespace,\n 'metadata.name': tgt.clusterGroup,\n });\n\n if (group) {\n addObjects(out, group.targetClusters);\n }\n } else if (tgt.clusterGroupSelector) {\n const expressions = convertSelectorObj(tgt.clusterGroupSelector);\n const matchingGroups = matching(groups, expressions);\n\n for (const group of matchingGroups) {\n addObjects(out, group.targetClusters);\n }\n } else if (tgt.clusterSelector) {\n const expressions = convertSelectorObj(tgt.clusterSelector);\n const matchingClusters = matching(clusters, expressions);\n\n addObjects(out, matchingClusters);\n }\n }\n\n return out;\n }\n\n get github() {\n const match = this.spec.repo.match(/^https?:\\/\\/github\\.com\\/(.*?)(\\.git)?\\/*$/);\n\n if (match) {\n return match[1];\n }\n\n return false;\n }\n\n get repoIcon() {\n if (this.github) {\n return 'icon icon-github';\n }\n\n return '';\n }\n\n get repoDisplay() {\n let repo = this.spec.repo;\n\n if (!repo) {\n return null;\n }\n\n repo = repo.replace(/.git$/, '');\n repo = repo.replace(/^https:\\/\\//, '');\n repo = repo.replace(/\\/+$/, '');\n\n if (this.github) {\n return this.github;\n }\n\n return repo;\n }\n\n get commitDisplay() {\n const spec = this.spec;\n const hash = this.status?.commit?.substr(0, 7);\n\n if (!spec || !spec.repo) {\n return null;\n }\n\n if (spec.revision && quacksLikeAHash(spec.revision)) {\n return spec.revision.substr(0, 7);\n } else if (spec.revision) {\n return spec.revision;\n } else if (spec.branch) {\n return spec.branch + (hash ? ` @ ${ hash }` : '');\n }\n\n return hash;\n }\n\n get targetInfo() {\n let mode = null;\n let cluster = null;\n let clusterGroup = null;\n let advanced = null;\n\n const targets = this.spec.targets || [];\n\n advanced = jsyaml.dump(targets);\n\n if (advanced === '[]\\n') {\n advanced = `# - name:\n# clusterSelector:\n# matchLabels:\n# foo: bar\n# matchExpressions:\n# - key: foo\n# op: In\n# values: [bar, baz]\n# clusterGroup: foo\n# clusterGroupSelector:\n# matchLabels:\n# foo: bar\n# matchExpressions:\n# - key: foo\n# op: In\n# values: [bar, baz]\n`;\n }\n\n if (this.metadata.namespace === 'fleet-local') {\n mode = 'local';\n } else if (!targets.length) {\n mode = 'none';\n } else if (targets.length === 1) {\n const target = targets[0];\n\n if (Object.keys(target).length > 1) {\n // There are multiple properties in a single target, so use the 'advanced' mode\n // (otherwise any existing content is nuked for what we provide)\n mode = 'advanced';\n } else if (target.clusterGroup) {\n clusterGroup = target.clusterGroup;\n\n if (!mode) {\n mode = 'clusterGroup';\n }\n } else if (target.clusterName) {\n mode = 'cluster';\n cluster = target.clusterName;\n } else if (target.clusterSelector) {\n if (Object.keys(target.clusterSelector).length === 0) {\n mode = 'all';\n } else {\n const expressions = convert(target.clusterSelector.matchLabels, target.clusterSelector.matchExpressions);\n\n if (expressions.length === 1 &&\n expressions[0].key === FLEET_ANNOTATIONS.CLUSTER_NAME &&\n expressions[0].operator === 'In' &&\n expressions[0].values.length === 1\n ) {\n cluster = expressions[0].values[0];\n if (!mode) {\n mode = 'cluster';\n }\n }\n }\n }\n }\n\n if (!mode) {\n mode = 'advanced';\n }\n\n return {\n mode,\n modeDisplay: this.t(`fleet.gitRepo.targetDisplay.\"${ mode }\"`),\n cluster,\n clusterGroup,\n advanced\n };\n }\n\n get groupByLabel() {\n const name = this.metadata.namespace;\n\n if (name) {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.workspace', { name: escapeHtml(name) });\n } else {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.notInAWorkspace');\n }\n }\n\n get bundles() {\n return this.$getters['matching'](FLEET.BUNDLE, { 'fleet.cattle.io/repo-name': this.name }, this.namespace);\n }\n\n get bundleDeployments() {\n const bds = this.$getters['all'](FLEET.BUNDLE_DEPLOYMENT);\n\n return bds.filter((bd) => bd.metadata?.labels?.['fleet.cattle.io/repo-name'] === this.name);\n }\n\n get allBundlesStatuses() {\n const bundleDeploymentCountsPerBundle = this.bundleDeployments.reduce((acc, bd) => {\n const bundleId = FleetUtils.bundleIdFromBundleDeploymentLabels(bd.metadata?.labels);\n const state = mapStateToEnum(FleetUtils.bundleDeploymentState(bd));\n\n if (!acc[bundleId]) {\n acc[bundleId] = {\n total: 0,\n states: { [STATES_ENUM.READY]: 0 },\n };\n }\n acc[bundleId].total++;\n\n if (!acc[bundleId].states[state]) {\n acc[bundleId].states[state] = 0;\n }\n acc[bundleId].states[state]++;\n\n return acc;\n }, {});\n const bundleIds = Object.keys(bundleDeploymentCountsPerBundle);\n\n return bundleIds.reduce((acc, bundleId) => {\n const state = primaryDisplayStatusFromCount(bundleDeploymentCountsPerBundle[bundleId].states);\n\n if (!acc.states[state]) {\n acc.states[state] = 0;\n }\n acc.states[state]++;\n\n return acc;\n }, { total: bundleIds.length, states: { [STATES_ENUM.READY]: 0 } } );\n }\n\n get allResourceStatuses() {\n return normalizeStateCounts(this.status?.resourceCounts || {});\n }\n\n statusResourceCountsForCluster(clusterId) {\n if (!this.targetClusters.some((c) => c.id === clusterId)) {\n return {};\n }\n\n return this.bundleDeployments\n .filter((bd) => FleetUtils.clusterIdFromBundleDeploymentLabels(bd.metadata?.labels) === clusterId)\n .map((bd) => FleetUtils.resourcesFromBundleDeploymentStatus(bd.status))\n .flat()\n .map((r) => r.state)\n .reduce((prev, state) => {\n if (!prev[state]) {\n prev[state] = 0;\n }\n prev[state]++;\n prev.desiredReady++;\n\n return prev;\n }, { desiredReady: 0 });\n }\n\n get resourcesStatuses() {\n const bundleDeployments = this.bundleDeployments || [];\n const clusters = (this.targetClusters || []).reduce((res, c) => {\n res[c.id] = c;\n\n return res;\n }, {});\n\n const out = [];\n\n for (const bd of bundleDeployments) {\n const clusterId = FleetUtils.clusterIdFromBundleDeploymentLabels(bd.metadata?.labels);\n const c = clusters[clusterId];\n\n if (!c) {\n continue;\n }\n\n const resources = FleetUtils.resourcesFromBundleDeploymentStatus(bd.status);\n\n resources.forEach((r) => {\n const id = FleetUtils.resourceId(r);\n const type = FleetUtils.resourceType(r);\n const state = r.state;\n\n const color = colorForState(state).replace('text-', 'bg-');\n const display = stateDisplay(state);\n\n const detailLocation = {\n name: `c-cluster-product-resource${ r.namespace ? '-namespace' : '' }-id`,\n params: {\n product: NAME,\n cluster: c.metadata.labels[FLEET_ANNOTATIONS.CLUSTER_NAME], // explorer uses the \"management\" Cluster name, which differs from the Fleet Cluster name\n resource: type,\n namespace: r.namespace,\n id: r.name,\n }\n };\n\n const key = `${ c.id }-${ type }-${ r.namespace }-${ r.name }`;\n\n out.push({\n key,\n tableKey: key,\n\n // Needed?\n id,\n type,\n clusterId: c.id,\n\n // columns, see FleetResources.vue\n state: mapStateToEnum(state),\n clusterName: c.nameDisplay,\n apiVersion: r.apiVersion,\n kind: r.kind,\n name: r.name,\n namespace: r.namespace,\n creationTimestamp: r.createdAt,\n\n // other properties\n stateBackground: color,\n stateDisplay: display,\n stateSort: stateSort(color, display),\n detailLocation,\n });\n });\n }\n\n return out;\n }\n\n get clusterInfo() {\n const ready = this.status?.readyClusters || 0;\n const total = this.status?.desiredReadyClusters || 0;\n\n return {\n ready,\n unready: total - ready,\n total,\n };\n }\n\n clusterState(clusterId) {\n const resourceCounts = this.statusResourceCountsForCluster(clusterId);\n\n return primaryDisplayStatusFromCount(resourceCounts) || STATES_ENUM.ACTIVE;\n }\n\n get clustersList() {\n return this.$getters['all'](FLEET.CLUSTER);\n }\n}\n","import { MANAGEMENT, NORMAN } from '@shell/config/types';\nimport { clone } from '@shell/utils/object';\nimport Principal from './principal';\n\nexport default class Group extends Principal {\n get canViewInApi() {\n return false;\n }\n\n get nameDisplay() {\n return this.principalNameDisplay;\n }\n\n get principalNameDisplay() {\n const principal = this.$rootGetters['rancher/byId'](NORMAN.PRINCIPAL, this.id);\n\n return `${ principal.name } (${ principal.displayType })`;\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.id = this.id; // Base fn removes part of the id (`github_team://3375666` --> `3375666`)\n\n return detailLocation;\n }\n\n get globalRoleBindings() {\n return this.$rootGetters['management/all'](MANAGEMENT.GLOBAL_ROLE_BINDING)\n .filter((globalRoleBinding) => this.id === globalRoleBinding.groupPrincipalName);\n }\n\n get _availableActions() {\n return [\n {\n action: 'goToEdit',\n label: this.t('action.edit'),\n icon: 'icon icon-edit',\n enabled: true,\n },\n {\n action: 'promptUnassignGroupRoles',\n altAction: 'unassignGroupRoles',\n label: this.t('action.unassign'),\n icon: 'icon icon-trash',\n bulkable: true,\n enabled: !!this.globalRoleBindings.length,\n bulkAction: 'unassignGroupRoles',\n },\n ];\n }\n\n promptUnassignGroupRoles(resources = this) {\n const principals = Array.isArray(resources) ? resources : [resources];\n const globalRoleBindings = this.$rootGetters['management/all'](MANAGEMENT.GLOBAL_ROLE_BINDING)\n .filter((globalRoleBinding) => principals.find((principal) => principal.id === globalRoleBinding.groupPrincipalName));\n\n this.$dispatch('promptRemove', globalRoleBindings);\n }\n\n async unassignGroupRoles(resources = this) {\n const principals = Array.isArray(resources) ? resources : [resources];\n const globalRoleBindings = this.$rootGetters['management/all'](MANAGEMENT.GLOBAL_ROLE_BINDING)\n .filter((globalRoleBinding) => principals.find((principal) => principal.id === globalRoleBinding.groupPrincipalName));\n\n await Promise.all(globalRoleBindings.map((resource) => resource.remove()));\n\n // There is no dialog to close, but this can be watched and used to refresh the group principles\n this.$dispatch('promptRemove', null);\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { NAMESPACE, MANAGEMENT, HELM } from '@shell/config/types';\n\nexport default class ProjectHelmChart extends SteveModel {\n applyDefaults() {\n if ( !this.spec ) {\n this['spec'] = { helmApiVersion: 'monitoring.cattle.io/v1alpha1' };\n this['metadata'] = { name: 'project-monitoring' };\n }\n }\n\n get projectId() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const all = this.$rootGetters[`${ inStore }/all`](NAMESPACE);\n const { projectId } = all.find((namespace) => namespace.id === this.metadata.namespace);\n\n return projectId;\n }\n\n get projectDisplayName() {\n const clusterId = this.$rootGetters['currentCluster']?.id;\n const project = this.$rootGetters['management/byId'](MANAGEMENT.PROJECT, `${ clusterId }/${ this.projectId }`);\n\n return project?.spec.displayName;\n }\n\n get namespaces() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const all = this.$rootGetters[`${ inStore }/all`](NAMESPACE);\n const namespaces = all.filter((namespace) => namespace.projectId === this.projectId);\n\n return [...namespaces];\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HELM.PROJECTHELMCHART }\"`, { count: 1 })?.trim();\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { HCI } from '@shell/config/labels-annotations';\n\nexport default class NetworkAttachmentDef extends SteveModel {\n applyDefaults() {\n const spec = this.spec || {\n config: JSON.stringify({\n cniVersion: '0.3.1',\n name: '',\n type: 'bridge',\n bridge: '',\n promiscMode: true,\n vlan: '',\n ipam: {}\n })\n };\n\n this['spec'] = spec;\n }\n\n get parseConfig() {\n try {\n return JSON.parse(this.spec.config) || {};\n } catch (err) {\n return {};\n }\n }\n\n get isIpamStatic() {\n return this.parseConfig.ipam?.type === 'static';\n }\n\n get clusterNetwork() {\n return this?.metadata?.labels?.[HCI.CLUSTER_NETWORK];\n }\n\n get vlanType() {\n const labels = this.metadata?.labels || {};\n const type = labels[HCI.NETWORK_TYPE];\n\n return type;\n }\n\n get vlanId() {\n return this.vlanType === 'UntaggedNetwork' ? 'N/A' : this.parseConfig.vlan;\n }\n\n get customValidationRules() {\n const rules = [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n minLength: 1,\n maxLength: 63,\n translationKey: 'harvester.fields.name'\n }\n ];\n\n return rules;\n }\n\n get connectivity() {\n const annotations = this.metadata?.annotations || {};\n const route = annotations[HCI.NETWORK_ROUTE];\n let config = {};\n\n if (this.vlanType === 'UntaggedNetwork') {\n return 'N/A';\n }\n\n try {\n config = JSON.parse(route || '{}');\n } catch {\n return 'invalid';\n }\n\n const connectivity = config.connectivity;\n\n if (connectivity === 'false') {\n return 'inactive';\n } else if (connectivity === 'true') {\n return 'active';\n } else {\n return connectivity;\n }\n }\n}\n","import Driver from '@shell/models/driver';\n\nexport default class KontainerDriver extends Driver {\n get doneRoute() {\n return 'c-cluster-manager-driver-kontainerdriver';\n }\n\n get _availableActions() {\n const out = [\n {\n action: 'activate',\n label: this.t('action.activate'),\n icon: 'icon icon-play',\n bulkable: true,\n bulkAction: 'activateBulk',\n enabled: !!this.links.update && !this.active\n },\n {\n action: 'deactivate',\n label: this.t('action.deactivate'),\n icon: 'icon icon-pause',\n bulkable: true,\n bulkAction: 'deactivateBulk',\n enabled: !!this.links.update && !!this.active,\n weight: -1\n },\n { divider: true },\n {\n action: 'viewInApi',\n enabled: true,\n icon: 'icon icon-external-link',\n label: this.t('action.viewInApi'),\n },\n { divider: true },\n {\n action: 'goToEdit',\n label: this.t('action.edit'),\n icon: 'icon icon-edit',\n bulkable: false,\n enabled: !!this.links.update && !this.builtin,\n },\n {\n action: 'promptRemove',\n altAction: 'remove',\n bulkAction: 'promptRemove',\n label: this.t('action.remove'),\n bulkable: true,\n icon: 'icon icon-delete',\n enabled: !!this.links.remove,\n weight: -10,\n }\n ];\n\n return out;\n }\n\n deactivate(resources = [this]) {\n this.$dispatch('promptModal', {\n componentProps: { drivers: resources, driverType: 'kontainerDrivers' },\n component: 'DeactivateDriverDialog'\n });\n }\n\n deactivateBulk(resources) {\n this.$dispatch('promptModal', {\n componentProps: { drivers: resources, driverType: 'kontainerDrivers' },\n component: 'DeactivateDriverDialog'\n });\n }\n\n activate() {\n return this.$dispatch('rancher/request', {\n url: `v3/kontainerDrivers/${ escape(this.id) }?action=activate`,\n method: 'post',\n }, { root: true });\n }\n\n async activateBulk(resources) {\n await Promise.all(resources.map((resource) => this.$dispatch('rancher/request', {\n url: `v3/kontainerDrivers/${ escape(resource.id) }?action=activate`,\n method: 'post',\n }, { root: true }\n )));\n }\n}\n","import { LOGGING } from '@shell/config/types';\nimport uniq from 'lodash/uniq';\nimport Flow from './logging.banzaicloud.io.flow';\n\nexport default class LogClusterFlow extends Flow {\n get allOutputs() {\n return this.$rootGetters['cluster/all'](LOGGING.CLUSTER_OUTPUT) || [];\n }\n\n get outputs() {\n if (!this.allOutputs) {\n // Handle the case where the user doesn't have permission\n // to see Outputs\n return [];\n }\n const outputRefs = this?.spec?.globalOutputRefs || this?.spec?.outputRefs || [];\n\n return this.allOutputs.filter((output) => outputRefs.includes(output.name));\n }\n\n get outputProviders() {\n const duplicatedProviders = this.outputs\n .flatMap((output) => output.providers);\n\n return uniq(duplicatedProviders) || [];\n }\n\n get customValidationRules() {\n return [\n {\n path: 'spec',\n validators: ['flowOutput'],\n },\n ];\n }\n}\n","import LogOutput from '@shell/models/logging.banzaicloud.io.output';\n\nexport default class LogClusterOutput extends LogOutput {\n}\n","import { LOGGING } from '@shell/config/types';\nimport { set } from '@shell/utils/object';\nimport uniq from 'lodash/uniq';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport function matchRuleIsPopulated(rule) {\n if ( !rule ) {\n return false;\n }\n\n if ( rule.labels && Object.keys(rule.labels).length ) {\n return true;\n }\n\n if ( rule.hosts?.length ) {\n return true;\n }\n\n if ( rule.container_names?.length ) {\n return true;\n }\n\n if ( rule.namespaces?.length ) {\n return true;\n }\n\n return false;\n}\n\nexport default class LogFlow extends SteveModel {\n applyDefaults() {\n set(this, 'spec', this.spec || {});\n set(this.spec, 'match', this.spec.match || []);\n set(this.spec, 'filters', this.spec.filters || []);\n set(this.spec, 'localOutputRefs', this.spec.localOutputRefs || []);\n set(this.spec, 'globalOutputRefs', this.spec.globalOutputRefs || []);\n }\n\n get canCustomEdit() {\n if ( !this.spec?.match?.length ) {\n return true;\n }\n\n let out = true;\n\n for ( const match of this.spec.match ) {\n if ( matchRuleIsPopulated(match.select) && matchRuleIsPopulated(match.exclude) ) {\n out = false;\n break;\n }\n }\n\n return out;\n }\n\n get allOutputs() {\n return this.$rootGetters['cluster/all'](LOGGING.OUTPUT) || [];\n }\n\n get allClusterOutputs() {\n return this.$rootGetters['cluster/all'](LOGGING.CLUSTER_OUTPUT) || [];\n }\n\n get outputs() {\n const localOutputRefs = this.spec?.localOutputRefs || [];\n\n return this.allOutputs.filter((output) => localOutputRefs.includes(output.name));\n }\n\n get outputsSortable() {\n const displays = this.outputs.map((o) => o.nameDisplay);\n\n displays.sort();\n\n return displays.join('');\n }\n\n get clusterOutputs() {\n const globalOutputRefs = this.spec?.globalOutputRefs || [];\n\n if (this.allClusterOutputs) {\n return this.allClusterOutputs.filter((output) => globalOutputRefs.includes(output.name));\n } else {\n // Handle the case where the user doesn't have permission\n // to see ClusterOutputs\n return [];\n }\n }\n\n get clusterOutputsSortable() {\n const displays = this.clusterOutputs.map((o) => o.nameDisplay);\n\n displays.sort();\n\n return displays.join('');\n }\n\n get providersDisplay() {\n const combinedOutputs = [...this.outputs, ...this.clusterOutputs];\n const duplicatedProviders = combinedOutputs\n .flatMap((output) => output.providersDisplay);\n\n return uniq(duplicatedProviders) || [];\n }\n\n get customValidationRules() {\n return [\n {\n path: 'spec',\n validators: ['flowOutput:verifyLocal'],\n },\n ];\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport const PROVIDERS = [\n {\n name: 'awsElasticsearch',\n labelKey: 'logging.outputProviders.awsElasticsearch',\n default: { endpoint: {} },\n },\n {\n name: 'azurestorage',\n labelKey: 'logging.outputProviders.azurestorage',\n default: { },\n },\n {\n name: 'cloudwatch',\n labelKey: 'logging.outputProviders.cloudwatch',\n default: { },\n },\n {\n name: 'datadog',\n labelKey: 'logging.outputProviders.datadog',\n default: { },\n },\n {\n name: 'elasticsearch',\n labelKey: 'logging.outputProviders.elasticsearch',\n default: {},\n },\n {\n name: 'file',\n labelKey: 'logging.outputProviders.file',\n default: { },\n },\n {\n name: 'forward',\n labelKey: 'logging.outputProviders.forward',\n default: { servers: [{}] },\n },\n {\n name: 'gelf',\n labelKey: 'logging.outputProviders.gelf',\n default: { },\n },\n {\n name: 'gcs',\n labelKey: 'logging.outputProviders.gcs',\n default: { },\n },\n {\n name: 'kafka',\n labelKey: 'logging.outputProviders.kafka',\n default: { format: { type: 'json' } },\n },\n {\n name: 'kinesisStream',\n labelKey: 'logging.outputProviders.kinesisStream',\n default: { },\n },\n {\n name: 'logdna',\n labelKey: 'logging.outputProviders.logdna',\n default: { },\n },\n {\n name: 'logz',\n labelKey: 'logging.outputProviders.logz',\n default: { endpoint: {} },\n },\n {\n name: 'loki',\n labelKey: 'logging.outputProviders.loki',\n default: { configure_kubernetes_labels: true },\n },\n {\n name: 'newrelic',\n labelKey: 'logging.outputProviders.newrelic',\n default: { },\n },\n {\n name: 'opensearch',\n labelKey: 'logging.outputProviders.opensearch',\n default: {},\n },\n {\n name: 'redis',\n labelKey: 'logging.outputProviders.redis',\n default: {\n port: 6379, db_number: 0, ttl: 0\n },\n },\n {\n name: 'splunkHec',\n labelKey: 'logging.outputProviders.splunkHec',\n default: {},\n },\n {\n name: 'sumologic',\n labelKey: 'logging.outputProviders.sumologic',\n default: { },\n },\n {\n name: 'syslog',\n labelKey: 'logging.outputProviders.syslog',\n default: { },\n },\n {\n\n name: 's3',\n labelKey: 'logging.outputProviders.s3',\n default: { },\n },\n];\n\nexport default class LogOutput extends SteveModel {\n get canCustomEdit() {\n return this.allProvidersSupported;\n }\n\n get providers() {\n const spec = this.spec || {};\n\n return Object.keys(spec)\n .filter((provider) => provider !== 'loggingRef');\n }\n\n get providersDisplay() {\n return this.providers.map((p) => {\n const translation = this.t(`logging.outputProviders.${ p }`);\n\n return translation || this.t('logging.outputProviders.unknown');\n });\n }\n\n isSupportedProvider(provider) {\n return !!PROVIDERS.find((p) => p.name === provider);\n }\n\n get allProvidersSupported() {\n return this.providers.every(this.isSupportedProvider);\n }\n\n get providersSortable() {\n const copy = [...this.providersDisplay];\n\n copy.sort();\n\n return copy.join('');\n }\n\n get text() {\n return this.nameDisplay;\n }\n\n get url() {\n return {\n name: 'c-cluster-product-resource-namespace-id',\n params: {\n resource: this.type,\n id: this.name,\n namespace: this.namespace\n }\n };\n }\n\n get customValidationRules() {\n return [\n {\n path: 'spec.logdna',\n validators: ['logdna'],\n }\n ];\n }\n}\n","import { insertAt } from '@shell/utils/array';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport const configType = {\n activedirectory: 'ldap',\n azuread: 'oauth',\n openldap: 'ldap',\n freeipa: 'ldap',\n ping: 'saml',\n adfs: 'saml',\n keycloak: 'saml',\n okta: 'saml',\n shibboleth: 'saml',\n googleoauth: 'oauth',\n local: '',\n github: 'oauth',\n keycloakoidc: 'oidc',\n genericoidc: 'oidc',\n};\n\nconst imageOverrides = { keycloakoidc: 'keycloak', genericoidc: 'openid' };\n\nexport default class AuthConfig extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n insertAt(out, 0, {\n action: 'disable',\n label: 'Disable',\n icon: 'icon icon-spinner',\n enabled: this.enabled === true,\n });\n\n insertAt(out, 1, { divider: true });\n\n return out;\n }\n\n get nameDisplay() {\n return this.$rootGetters['i18n/withFallback'](`model.authConfig.name.\"${ this.id }\"`, null, this.provider);\n }\n\n get provider() {\n return this.$rootGetters['i18n/withFallback'](`model.authConfig.provider.\"${ this.id }\"`, null, this.id);\n }\n\n get configType() {\n return configType[this.id];\n }\n\n get sideLabel() {\n return this.$rootGetters['i18n/withFallback'](`model.authConfig.description.\"${ this.configType }\"`, null, this.configType);\n }\n\n get icon() {\n try {\n return require(`~shell/assets/images/vendor/${ imageOverrides[this.id] || this.id }.svg`);\n } catch (e) {\n return '';\n }\n }\n\n get state() {\n if ( this.enabled ) {\n return 'active';\n }\n\n return 'inactive';\n }\n}\n","import semver from 'semver';\nimport { camelToTitle } from '@shell/utils/string';\nimport { CAPI } from '@shell/config/labels-annotations';\nimport { MANAGEMENT, VIRTUAL_HARVESTER_PROVIDER } from '@shell/config/types';\nimport { SETTING } from '@shell/config/settings';\nimport { PaginationFilterField, PaginationParamFilter } from '@shell/types/store/pagination.types';\nimport { compare, sortable } from '@shell/utils/version';\nimport { sortBy } from '@shell/utils/sort';\n\n/**\n * Combination of paginationFilterHiddenLocalCluster and paginationFilterOnlyKubernetesClusters\n *\n * @param {*} store\n * @returns PaginationParam[]\n */\nexport function paginationFilterClusters(store, filterMgmtCluster = true) {\n const paginationRequestFilters = [];\n\n // Commenting out for the moment. This is broken for non-paginated world\n // filterOnlyKubernetesClusters expects a mgmt cluster, however in the home page it's given a prov cluster\n // note - filterHiddenLocalCluster works because it uses model isLocal which is on both cluster types\n // const pFilterOnlyKubernetesClusters = paginationFilterOnlyKubernetesClusters(store);\n // if (pFilterOnlyKubernetesClusters) {\n // paginationRequestFilters.push(pFilterOnlyKubernetesClusters);\n // }\n const pFilterHiddenLocalCluster = paginationFilterHiddenLocalCluster(store, filterMgmtCluster);\n\n if (pFilterHiddenLocalCluster) {\n paginationRequestFilters.push(pFilterHiddenLocalCluster);\n }\n\n return paginationRequestFilters;\n}\n\n/**\n * The vai backed api's `filter` equivalent of `filterHiddenLocalCluster`\n *\n * @export\n * @param {*} store\n * @returns PaginationParam | null\n */\nexport function paginationFilterHiddenLocalCluster(store, filterMgmtCluster = true) {\n const hideLocalSetting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.HIDE_LOCAL_CLUSTER) || {};\n const value = hideLocalSetting.value || hideLocalSetting.default || 'false';\n const hideLocal = value === 'true';\n\n if (!hideLocal) {\n return null;\n }\n\n const filter = filterMgmtCluster ? [\n new PaginationFilterField({\n field: `spec.internal`,\n value: false,\n })\n ] : [\n new PaginationFilterField({\n field: `id`,\n value: 'fleet-local/local',\n exact: true,\n equals: false,\n })\n ];\n\n return PaginationParamFilter.createMultipleFields(filter);\n}\n\n/**\n * The vai backed api's `filter` equivalent of `filterOnlyKubernetesClusters`\n *\n * @export\n * @param {*} store\n * @returns PaginationParam | null\n */\nexport function paginationFilterOnlyKubernetesClusters(store) {\n const openHarvesterContainerWorkload = store.getters['features/get']('harvester-baremetal-container-workload');\n\n if (!openHarvesterContainerWorkload) {\n return null;\n }\n\n return PaginationParamFilter.createMultipleFields([\n new PaginationFilterField({\n field: `metadata.labels.\"${ CAPI.PROVIDER }\"`,\n equals: false,\n value: VIRTUAL_HARVESTER_PROVIDER,\n exact: true\n }),\n new PaginationFilterField({\n field: `status.provider`,\n equals: false,\n value: VIRTUAL_HARVESTER_PROVIDER,\n exact: true\n }),\n ]);\n}\n\n/**\n * Filter out any clusters that are not Kubernetes Clusters\n **/\nexport function filterOnlyKubernetesClusters(mgmtClusters, store) {\n const openHarvesterContainerWorkload = store.getters['features/get']('harvester-baremetal-container-workload');\n\n return mgmtClusters?.filter((c) => {\n return openHarvesterContainerWorkload ? true : !isHarvesterCluster(c);\n });\n}\n\nexport function isHarvesterCluster(mgmtCluster) {\n // Use the provider if it is set otherwise use the label\n const provider = mgmtCluster?.metadata?.labels?.[CAPI.PROVIDER] || mgmtCluster?.status?.provider;\n\n return provider === VIRTUAL_HARVESTER_PROVIDER;\n}\n\nexport function isHarvesterSatisfiesVersion(version = '') {\n if (version.startsWith('v1.21.4+rke2r')) {\n const rkeVersion = version.replace(/.+rke2r/i, '');\n\n return Number(rkeVersion) >= 4;\n } else {\n return semver.satisfies(semver.coerce(version), '>=v1.21.4+rke2r4');\n }\n}\n\nexport function filterHiddenLocalCluster(mgmtClusters, store) {\n const hideLocalSetting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.HIDE_LOCAL_CLUSTER) || {};\n const value = hideLocalSetting.value || hideLocalSetting.default || 'false';\n const hideLocal = value === 'true';\n\n if (!hideLocal) {\n return mgmtClusters;\n }\n\n return mgmtClusters.filter((c) => {\n const target = c.mgmt || c;\n\n return !target.isLocal;\n });\n}\n\nconst clusterNameSegments = /([A-Za-z]+|\\d+)/g;\n\n/**\n * Shortens an input string based on the number of segments it contains.\n * @param {string} input - The input string to be shortened.\n * @returns {string} - The shortened string.\n * @example smallIdentifier('local') => 'lcl'\n * @example smallIdentifier('word-wide-web') => 'www'\n */\nexport function abbreviateClusterName(input) {\n if (!input) {\n return '';\n }\n\n if (input.length <= 3) {\n return input;\n }\n\n const segments = input.match(clusterNameSegments);\n\n if (!segments) return ''; // In case no valid segments are found\n\n let result = '';\n\n switch (segments.length) {\n case 1: {\n const word = segments[0];\n\n result = `${ word[0] }${ word[Math.floor(word.length / 2)] }${ word[word.length - 1] }`;\n break;\n }\n case 2: {\n const w1 = `${ segments[0][0] }`;\n const w2 = `${ segments[0].length >= 2 ? segments[0][segments[0].length - 1] : segments[1][0] }`;\n const w3 = `${ segments[1][segments[1].length - 1] }`;\n\n result = w1 + w2 + w3;\n break;\n }\n default:\n result = segments.slice(0, 2).map((segment) => segment[0]).join('') + segments.slice(-1)[0].slice(-1);\n }\n\n return result;\n}\n\nexport function labelForAddon(store, name, configuration = true) {\n const addon = camelToTitle(name.replace(/^(rke|rke2|rancher)-/, ''));\n const fallback = `${ configuration ? '' : 'Add-on: ' }${ addon }`;\n const key = `cluster.addonChart.\"${ name }\"${ configuration ? '.configuration' : '.label' }`;\n\n return store.getters['i18n/withFallback'](key, null, fallback);\n}\n\nfunction getMostRecentPatchVersions(sortedVersions) {\n // Get the most recent patch version for each Kubernetes minor version.\n const versionMap = {};\n\n sortedVersions.forEach((version) => {\n const majorMinor = `${ semver.major(version.value) }.${ semver.minor(version.value) }`;\n\n if (!versionMap[majorMinor]) {\n // Because we start with a sorted list of versions, we know the\n // highest patch version is first in the list, so we only keep the\n // first of each minor version in the list.\n versionMap[majorMinor] = version.value;\n }\n });\n\n return versionMap;\n}\n\nexport function filterOutDeprecatedPatchVersions(allVersions, currentVersion) {\n // Get the most recent patch version for each Kubernetes minor version.\n const mostRecentPatchVersions = getMostRecentPatchVersions(allVersions);\n\n const filteredVersions = allVersions.filter((version) => {\n // Always show pre-releases\n if (semver.prerelease(version.value)) {\n return true;\n }\n\n const majorMinor = `${ semver.major(version.value) }.${ semver.minor(version.value) }`;\n\n // Always show current version, else show if we haven't shown anything for this major.minor version yet\n if (version.value === currentVersion || mostRecentPatchVersions[majorMinor] === version.value) {\n return true;\n }\n\n return false;\n });\n\n return filteredVersions;\n}\n\nexport function getAllOptionsAfterCurrentVersion(store, versions, currentVersion, defaultVersion) {\n const out = (versions || []).filter((obj) => !!obj.serverArgs).map((obj) => {\n let disabled = false;\n let experimental = false;\n let isCurrentVersion = false;\n let label = obj.id;\n\n if (currentVersion) {\n disabled = compare(obj.id, currentVersion) < 0;\n isCurrentVersion = compare(obj.id, currentVersion) === 0;\n }\n\n if (defaultVersion) {\n experimental = compare(defaultVersion, obj.id) < 0;\n }\n\n if (isCurrentVersion) {\n label = `${ label } ${ store.getters['i18n/t']('cluster.kubernetesVersion.current') }`;\n }\n\n if (experimental) {\n label = `${ label } ${ store.getters['i18n/t']('cluster.kubernetesVersion.experimental') }`;\n }\n\n return {\n label,\n value: obj.id,\n sort: sortable(obj.id),\n serverArgs: obj.serverArgs,\n agentArgs: obj.agentArgs,\n charts: obj.charts,\n disabled,\n };\n });\n\n if (currentVersion && !out.find((obj) => obj.value === currentVersion)) {\n out.push({\n label: `${ currentVersion } ${ store.getters['i18n/t']('cluster.kubernetesVersion.current') }`,\n value: currentVersion,\n sort: sortable(currentVersion),\n });\n }\n\n const sorted = sortBy(out, 'sort:desc');\n\n const mostRecentPatchVersions = getMostRecentPatchVersions(sorted);\n\n const sortedWithDeprecatedLabel = sorted.map((optionData) => {\n const majorMinor = `${ semver.major(optionData.value) }.${ semver.minor(optionData.value) }`;\n\n if (mostRecentPatchVersions[majorMinor] === optionData.value) {\n return optionData;\n }\n\n return {\n ...optionData,\n label: `${ optionData.label } ${ store.getters['i18n/t']('cluster.kubernetesVersion.deprecated') }`\n };\n });\n\n return sortedWithDeprecatedLabel;\n}\n","import { CATALOG, CLUSTER_BADGE } from '@shell/config/labels-annotations';\nimport { NODE, FLEET, MANAGEMENT, CAPI } from '@shell/config/types';\nimport { insertAt, addObject, removeObject } from '@shell/utils/array';\nimport { downloadFile } from '@shell/utils/download';\nimport { parseSi } from '@shell/utils/units';\nimport { parseColor, textColor } from '@shell/utils/color';\nimport jsyaml from 'js-yaml';\nimport { eachLimit } from '@shell/utils/promise';\nimport { addParams } from '@shell/utils/url';\nimport { isEmpty } from '@shell/utils/object';\nimport { HARVESTER_NAME as HARVESTER } from '@shell/config/features';\nimport { isHarvesterCluster } from '@shell/utils/cluster';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { LINUX, WINDOWS } from '@shell/store/catalog';\nimport { KONTAINER_TO_DRIVER } from './management.cattle.io.kontainerdriver';\nimport { PINNED_CLUSTERS } from '@shell/store/prefs';\nimport { copyTextToClipboard } from '@shell/utils/clipboard';\n\nconst DEFAULT_BADGE_COLOR = '#707070';\n\n// See translation file cluster.providers for list of providers\n// If the logo is not named with the provider name, add an override here\nconst PROVIDER_LOGO_OVERRIDE = {};\n\nfunction findRelationship(verb, type, relationships = []) {\n const from = `${ verb }Type`;\n const id = `${ verb }Id`;\n\n return relationships.find((r) => r[from] === type)?.[id];\n}\n\nexport default class MgmtCluster extends SteveModel {\n get details() {\n const out = [\n {\n label: 'Provisioner',\n content: this.provisionerDisplay\n },\n {\n label: 'Machine Provider',\n content: this.machineProviderDisplay\n },\n {\n label: 'Kubernetes Version',\n content: this.kubernetesVersion,\n },\n ];\n\n return out;\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n insertAt(out, 0, {\n action: 'openShell',\n label: this.t('nav.shell'),\n icon: 'icon icon-terminal',\n enabled: !!this.links.shell,\n });\n\n insertAt(out, 1, {\n action: 'downloadKubeConfig',\n bulkAction: 'downloadKubeConfigBulk',\n label: this.t('nav.kubeconfig.download'),\n icon: 'icon icon-download',\n bulkable: true,\n enabled: this.$rootGetters['isRancher'] && this.hasAction('generateKubeconfig'),\n });\n\n insertAt(out, 2, {\n action: 'copyKubeConfig',\n label: this.t('cluster.copyConfig'),\n bulkable: false,\n enabled: this.$rootGetters['isRancher'] && this.hasAction('generateKubeconfig'),\n icon: 'icon icon-copy',\n });\n\n return out;\n }\n\n get canDelete() {\n return this.hasLink('remove') && !this?.spec?.internal;\n }\n\n get machinePools() {\n const pools = this.$getters['all'](MANAGEMENT.NODE_POOL);\n\n return pools.filter((x) => x.spec?.clusterName === this.id);\n }\n\n get provisioner() {\n // For imported K3s clusters, this.status.driver is 'k3s.'\n return this.status?.driver ? this.status.driver : 'imported';\n }\n\n get machineProvider() {\n const kind = this.machinePools?.[0]?.provider;\n\n if ( kind ) {\n return kind.replace(/config$/i, '').toLowerCase();\n } else if ( this.spec?.internal ) {\n return 'local';\n }\n\n return null;\n }\n\n get rkeTemplateVersion() {\n return this.spec?.clusterTemplateRevisionName;\n }\n\n get providerForEmberParam() {\n // Ember wants one word called provider to tell what component to show, but has much indirect mapping to figure out what it is.\n let provider;\n\n // provisioner is status.driver\n const provisioner = KONTAINER_TO_DRIVER[(this.provisioner || '').toLowerCase()] || this.provisioner;\n\n if ( provisioner === 'rancherKubernetesEngine') {\n // Look for a cloud provider in one of the node templates\n if ( this.machinePools?.[0] ) {\n provider = this.machinePools[0]?.nodeTemplate?.spec?.driver || null;\n } else {\n provider = 'custom';\n }\n } else if ( this.driver ) {\n provider = this.driver;\n } else if ( provisioner && provisioner.endsWith('v2') ) {\n provider = provisioner;\n } else {\n provider = 'import';\n }\n\n return provider;\n }\n\n get emberEditPath() {\n let clusterTemplateRevision;\n\n // If the RKE1 cluster is created from an RKE template, we need\n // to get the template version to pass into the Ember UI for\n // the iFramed edit cluster form\n if (this.rkeTemplateVersion) {\n clusterTemplateRevision = this.rkeTemplateVersion;\n }\n const provider = this.providerForEmberParam;\n\n // Avoid passing falsy values as query parameters\n const qp = { };\n\n if (provider) {\n qp['provider'] = provider;\n }\n\n if (clusterTemplateRevision) {\n qp['clusterTemplateRevision'] = clusterTemplateRevision;\n }\n\n // Copied out of https://github.com/rancher/ui/blob/20f56dc54c4fc09b5f911e533cb751c13609adaf/app/models/cluster.js#L844\n if ( provider === 'import' && isEmpty(this.eksConfig) && isEmpty(this.gkeConfig) ) {\n qp.importProvider = 'other';\n } else if (\n (provider === 'amazoneks' && !isEmpty(this.eksConfig) ) ||\n (provider === 'gke' && !isEmpty(this.gkeConfig) )\n // || something for aks v2\n ) {\n qp.importProvider = KONTAINER_TO_DRIVER[provider];\n }\n\n if ( this.clusterTemplateRevisionId ) {\n qp.clusterTemplateRevision = this.clusterTemplateRevisionId;\n }\n\n const path = addParams(`/c/${ escape(this.id) }/edit`, qp);\n\n return path;\n }\n\n get groupByLabel() {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.notInAWorkspace');\n }\n\n get isReady() {\n // If the Connected condition exists, use that (2.6+)\n if ( this.hasCondition('Connected') ) {\n return this.isCondition('Connected');\n }\n\n // Otherwise use Ready (older)\n return this.isCondition('Ready');\n }\n\n get kubernetesVersionRaw() {\n const fromStatus = this.status?.version?.gitVersion;\n const fromSpec = this.spec?.[`${ this.provisioner }Config`]?.kubernetesVersion;\n\n return fromStatus || fromSpec;\n }\n\n get kubernetesVersion() {\n return this.kubernetesVersionRaw || this.$rootGetters['i18n/t']('generic.provisioning');\n }\n\n get kubernetesVersionBase() {\n return this.kubernetesVersion.replace(/[+-].*$/, '');\n }\n\n get kubernetesVersionExtension() {\n if ( this.kubernetesVersion.match(/[+-]/) ) {\n return this.kubernetesVersion.replace(/^.*([+-])/, '$1');\n }\n\n return '';\n }\n\n get providerOs() {\n if ( this.status?.provider.endsWith('.windows')) {\n return 'windows';\n }\n\n return 'linux';\n }\n\n get providerOsLogo() {\n return require(`~shell/assets/images/vendor/${ this.providerOs }.svg`);\n }\n\n get workerOSs() {\n // rke1 clusters have windows support defined on create\n // rke2 clusters report linux workers in mgmt cluster status\n const rke2WindowsWorkers = this.status?.windowsWorkerCount;\n const rke2LinuxWorkers = this.status?.linuxWorkerCount;\n\n if (rke2WindowsWorkers || rke2LinuxWorkers ) {\n const out = [];\n\n if (rke2WindowsWorkers) {\n out.push(WINDOWS);\n }\n if (rke2LinuxWorkers) {\n out.push(LINUX);\n }\n\n return out;\n } else if (this.providerOs === WINDOWS) {\n return [WINDOWS];\n }\n\n return [LINUX];\n }\n\n get isLocal() {\n return this.spec?.internal === true;\n }\n\n get isHarvester() {\n return isHarvesterCluster(this);\n }\n\n get isHostedKubernetesProvider() {\n const providers = ['AKS', 'EKS', 'GKE'];\n\n return providers.includes(this.provisioner);\n }\n\n get providerLogo() {\n let provider = this.status?.provider || 'kubernetes';\n\n if (this.isHarvester) {\n provider = HARVESTER;\n }\n // Only interested in the part before the period\n const prv = provider.split('.')[0];\n // Allow overrides if needed\n const logo = PROVIDER_LOGO_OVERRIDE[prv] || prv;\n\n let icon;\n\n try {\n icon = require(`~shell/assets/images/providers/${ prv }.svg`);\n } catch (e) {\n console.warn(`Can not find provider logo for provider ${ logo }`); // eslint-disable-line no-console\n // Use fallback generic Kubernetes icon\n icon = require(`~shell/assets/images/providers/kubernetes.svg`);\n }\n\n return icon;\n }\n\n get providerMenuLogo() {\n return this.providerLogo;\n }\n\n get providerNavLogo() {\n return this.providerLogo;\n }\n\n // Color to use as the underline for the icon in the app bar\n get iconColor() {\n return this.metadata?.annotations[CLUSTER_BADGE.COLOR];\n }\n\n // Custom badge to show for the Cluster (if the appropriate annotations are set)\n get badge() {\n const icon = this.metadata?.annotations?.[CLUSTER_BADGE.ICON_TEXT];\n const comment = this.metadata?.annotations?.[CLUSTER_BADGE.TEXT];\n\n if (!icon && !comment) {\n return undefined;\n }\n\n let color = this.iconColor || DEFAULT_BADGE_COLOR;\n const iconText = this.metadata?.annotations[CLUSTER_BADGE.ICON_TEXT] || '';\n let foregroundColor;\n\n try {\n foregroundColor = textColor(parseColor(color.trim())); // Remove any whitespace\n } catch (_e) {\n // If we could not parse the badge color, use the defaults\n color = DEFAULT_BADGE_COLOR;\n foregroundColor = textColor(parseColor(color));\n }\n\n return {\n text: comment || undefined,\n color,\n textColor: foregroundColor,\n iconText: iconText.substr(0, 3)\n };\n }\n\n get scope() {\n return this.isLocal ? CATALOG._MANAGEMENT : CATALOG._DOWNSTREAM;\n }\n\n setClusterNameLabel(andSave) {\n if ( this.ownerReferences?.length || this.metadata?.labels?.[FLEET.CLUSTER_NAME] === this.id ) {\n return;\n }\n\n this.metadata = this.metadata || {};\n this.metadata.labels = this.metadata.labels || {};\n this.metadata.labels[FLEET.CLUSTER_NAME] = this.id;\n\n if ( andSave ) {\n return this.save();\n }\n }\n\n get availableCpu() {\n const reserved = parseSi(this.status.requested?.cpu);\n const allocatable = parseSi(this.status.allocatable?.cpu);\n\n if ( allocatable > 0 && reserved >= 0 ) {\n return Math.max(0, allocatable - reserved);\n } else {\n return null;\n }\n }\n\n get availableMemory() {\n const reserved = parseSi(this.status.requested?.memory);\n const allocatable = parseSi(this.status.allocatable?.memory);\n\n if ( allocatable > 0 && reserved >= 0 ) {\n return Math.max(0, allocatable - reserved);\n } else {\n return null;\n }\n }\n\n openShell() {\n this.$dispatch('wm/open', {\n id: `kubectl-${ this.id }`,\n label: this.$rootGetters['i18n/t']('wm.kubectlShell.title', { name: this.nameDisplay }),\n icon: 'terminal',\n component: 'KubectlShell',\n attrs: {\n cluster: this,\n pod: {}\n }\n }, { root: true });\n }\n\n async generateKubeConfig() {\n const res = await this.doAction('generateKubeconfig');\n\n return res.config;\n }\n\n async downloadKubeConfig() {\n const config = await this.generateKubeConfig();\n\n downloadFile(`${ this.nameDisplay }.yaml`, config, 'application/yaml');\n }\n\n async downloadKubeConfigBulk(items) {\n let obj = {};\n let first = true;\n\n await eachLimit(items, 10, (item, idx) => {\n return item.generateKubeConfig().then((config) => {\n const entry = jsyaml.load(config);\n\n if ( first ) {\n obj = entry;\n first = false;\n } else {\n obj.clusters.push(...entry.clusters);\n obj.users.push(...entry.users);\n obj.contexts.push(...entry.contexts);\n }\n });\n });\n\n delete obj['current-context'];\n\n const out = jsyaml.dump(obj);\n\n downloadFile('kubeconfig.yaml', out, 'application/yaml');\n }\n\n async copyKubeConfig() {\n try {\n const config = await this.generateKubeConfig();\n\n if (config) {\n await copyTextToClipboard(config);\n }\n } catch {}\n }\n\n async fetchNodeMetrics() {\n const nodes = await this.$dispatch('cluster/findAll', { type: NODE }, { root: true });\n const nodeMetrics = await this.$dispatch('cluster/findAll', { type: NODE }, { root: true });\n\n const someNonWorkerRoles = nodes.some((node) => node.hasARole && !node.isWorker);\n\n const metrics = nodeMetrics.filter((metric) => {\n const node = nodes.find((nd) => nd.id === metric.id);\n\n return node && (!someNonWorkerRoles || node.isWorker);\n });\n const initialAggregation = {\n cpu: 0,\n memory: 0\n };\n\n if (isEmpty(metrics)) {\n return null;\n }\n\n return metrics.reduce((agg, metric) => {\n agg.cpu += parseSi(metric?.usage?.cpu);\n agg.memory += parseSi(metric?.usage?.memory);\n\n return agg;\n }, initialAggregation);\n }\n\n get nodes() {\n return this.$getters['all'](MANAGEMENT.NODE).filter((node) => node.id.startsWith(this.id));\n }\n\n get provClusterId() {\n const isRKE1 = !!this.spec?.rancherKubernetesEngineConfig;\n // Note: RKE1 provisioning cluster IDs are in a different format. For example,\n // RKE2 cluster IDs include the name - fleet-default/cluster-name - whereas an RKE1\n // cluster has the less human readable management cluster ID in it: fleet-default/c-khk48\n\n const verb = this.isLocal || isRKE1 || this.isHostedKubernetesProvider ? 'to' : 'from';\n const res = findRelationship(verb, CAPI.RANCHER_CLUSTER, this.metadata?.relationships);\n\n if (res) {\n return res;\n }\n\n return findRelationship(verb === 'to' ? 'from' : 'to', CAPI.RANCHER_CLUSTER, this.metadata?.relationships);\n }\n\n get pinned() {\n return this.$rootGetters['prefs/get'](PINNED_CLUSTERS).includes(this.id);\n }\n\n pin() {\n const types = this.$rootGetters['prefs/get'](PINNED_CLUSTERS) || [];\n\n addObject(types, this.id);\n\n this.$dispatch('prefs/set', { key: PINNED_CLUSTERS, value: types }, { root: true });\n }\n\n unpin() {\n const types = this.$rootGetters['prefs/get'](PINNED_CLUSTERS) || [];\n\n removeObject(types, this.id);\n\n this.$dispatch('prefs/set', { key: PINNED_CLUSTERS, value: types }, { root: true });\n }\n}\n","import { CREATOR_ID } from '@shell/config/labels-annotations';\nimport { _CREATE } from '@shell/config/query-params';\nimport { MANAGEMENT, NORMAN } from '@shell/config/types';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\nimport { HARVESTER_NAME } from '@shell/config/features';\n\nexport default class CRTB extends HybridModel {\n detailPageHeaderActionOverride(realMode) {\n if (realMode === _CREATE) {\n return this.t('members.createActionLabel');\n }\n }\n\n get canCustomEdit() {\n return false;\n }\n\n get canYaml() {\n return false;\n }\n\n get canClone() {\n return false;\n }\n\n get user() {\n return this.$rootGetters['management/byId'](MANAGEMENT.USER, this.userName);\n }\n\n get principal() {\n const principalId = this.principalId.replace(/\\//g, '%2F');\n\n return this.$dispatch('rancher/find', {\n type: NORMAN.PRINCIPAL,\n id: this.principalId,\n opt: { url: `/v3/principals/${ principalId }` }\n }, { root: true });\n }\n\n get syncPrincipal() {\n return this.$rootGetters['rancher/byId'](NORMAN.PRINCIPAL, this.principalId);\n }\n\n get principalId() {\n // We've either set it ourselves or it's comes from native properties\n return this.principalName || this.userPrincipalName || this.groupPrincipalName || '';\n }\n\n get nameDisplay() {\n return this.user?.nameDisplay || this.userName || this.syncPrincipal?.nameDisplay || this.principalId;\n }\n\n get roleDisplay() {\n return this.roleTemplate?.nameDisplay;\n }\n\n get roleDescription() {\n return this.roleTemplate?.description;\n }\n\n get roleTemplate() {\n return this.$rootGetters['management/byId'](MANAGEMENT.ROLE_TEMPLATE, this.roleTemplateName);\n }\n\n get cluster() {\n return this.$rootGetters['management/byId'](MANAGEMENT.CLUSTER, this.clusterName);\n }\n\n get clusterDisplayName() {\n return this.cluster ? this.cluster.nameDisplay : this.clusterName;\n }\n\n /**\n * This is used in a table formatter on the management.cattle.io.user detail view which exists outside harvester so no override on this route as there is with listLocation\n */\n get clusterDetailLocation() {\n if (this.cluster) {\n return this.cluster.detailLocation;\n }\n\n const name = `c-cluster-product-resource-id`;\n\n const params = {\n resource: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING,\n id: this.clusterName,\n product: 'explorer',\n };\n\n return { name, params };\n }\n\n get listLocation() {\n // Harvester uses these resource directly... but has different routes\n if (this.$rootGetters['currentProduct'].inStore === HARVESTER_NAME) {\n return { name: `${ HARVESTER_NAME }-c-cluster-members` };\n }\n\n return { name: 'c-cluster-product-members' };\n }\n\n get doneOverride() {\n return this.listLocation;\n }\n\n get parentLocationOverride() {\n return this.listLocation;\n }\n\n get subSearch() {\n return [{ nameDisplay: this.nameDisplay }];\n }\n\n get isSystem() {\n return !this.metadata.annotations[CREATOR_ID];\n }\n\n get norman() {\n return (async() => {\n const principal = await this.principal;\n const principalProperty = principal?.principalType === 'group' ? 'groupPrincipalId' : 'userPrincipalId';\n\n return this.$dispatch(`rancher/create`, {\n type: NORMAN.CLUSTER_ROLE_TEMPLATE_BINDING,\n roleTemplateId: this.roleTemplateName,\n [principalProperty]: principal?.id,\n clusterId: this.clusterName,\n id: this.id?.replace('/', ':')\n }, { root: true });\n })();\n }\n\n async save() {\n const norman = await this.norman;\n\n return norman.save();\n }\n\n async remove() {\n const norman = await this.norman;\n\n await norman.remove({ url: `/v3/clusterRoleTemplateBindings/${ norman.id }` });\n }\n}\n","import { ONE_WAY } from '@shell/config/features';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\n\nexport default class Feature extends HybridModel {\n get state() {\n return this.enabled ? 'active' : 'off';\n }\n\n get enabled() {\n // If lockedValue is not null, then this is the value that the flag is locked to, so that should be used\n if (this.status.lockedValue !== null) {\n return this.status.lockedValue;\n }\n\n // Otherwise, use spec.value if set, otherwise fallback to status.default\n return (this.spec.value !== null) ? this.spec.value : this.status.default;\n }\n\n get restartRequired() {\n return !this.status.dynamic;\n }\n\n get canYaml() {\n return false;\n }\n\n get canDisable() {\n return this.canUpdate && !ONE_WAY.includes(this.id);\n }\n\n get _availableActions() {\n const out = super._availableActions;\n const state = this.enabled;\n\n // Prepend action to enable or disable this feature flag\n const enableAction = {\n action: 'toggleFeatureFlag',\n label: state ? this.t('action.deactivate') : this.t('action.activate'),\n icon: 'icon icon-edit',\n enabled: state ? this.canDisable : this.canUpdate,\n };\n\n // User can not disable or enable if the feature flag is locked\n // Note: lockedValue is the value that the feature flag is locked to, so it can be true or false\n // It can also be null, which indicates that the feature flag is not locked\n enableAction.enabled = enableAction.enabled && (this.status.lockedValue === null);\n\n out.unshift(enableAction);\n\n return out;\n }\n\n toggleFeatureFlag(resources = this) {\n this.$dispatch('promptUpdate', resources);\n }\n}\n","import { COUNT, FLEET, NORMAN } from '@shell/config/types';\nimport { filterBy } from '@shell/utils/array';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\n\nexport default class Workspace extends HybridModel {\n get isLocal() {\n return this.metadata.name === 'fleet-local';\n }\n\n get counts() {\n const summary = this.$rootGetters[`management/all`](COUNT)[0].counts || {};\n const name = this.metadata.name;\n\n const out = {\n clusterGroups: summary[FLEET.CLUSTER_GROUP]?.namespaces?.[name]?.count || 0,\n clusters: summary[FLEET.CLUSTER]?.namespaces?.[name]?.count || 0,\n gitRepos: summary[FLEET.GIT_REPO]?.namespaces?.[name]?.count || 0\n };\n\n return out;\n }\n\n get clusters() {\n const all = this.$getters['all'](FLEET.CLUSTER);\n const forWorkspace = filterBy(all, 'metadata.namespace', this.metadata.name);\n\n return forWorkspace;\n }\n\n get clusterGroups() {\n const all = this.$getters['all'](FLEET.CLUSTER_GROUP);\n const forWorkspace = filterBy(all, 'metadata.namespace', this.metadata.name);\n\n return forWorkspace;\n }\n\n get repos() {\n const all = this.$getters['all'](FLEET.GIT_REPO);\n const forWorkspace = filterBy(all, 'namespace', this.id);\n\n return forWorkspace;\n }\n\n get basicNorman() {\n if (this.id) {\n return this.$dispatch(`rancher/find`, { id: this.id, type: NORMAN.FLEET_WORKSPACES }, { root: true });\n }\n\n return this.$dispatch(`rancher/create`, { type: NORMAN.FLEET_WORKSPACES, name: this.metadata.name }, { root: true });\n }\n\n get norman() {\n return (async() => {\n const norman = await this.basicNorman;\n\n norman.annotations = this.metadata.annotations;\n norman.labels = this.metadata.labels;\n\n return norman;\n })();\n }\n\n async save() {\n const norman = await this.norman;\n\n await norman.save();\n }\n\n waitForWorkspaceSchema(timeout = 20000, schemaCallback) {\n return this.waitForTestFn(() => {\n const schema = this.$rootGetters['management/schemaFor'](FLEET.WORKSPACE);\n\n if (!schemaCallback) {\n return schema;\n }\n\n return schemaCallback(schema);\n }, this.$rootGetters['i18n/t']('fleet.workspaces.timeout'), timeout);\n }\n\n async remove() {\n const norman = await this.norman;\n\n await norman.remove();\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class GitRepoRestriction extends SteveModel {\n\n}\n","import { DESCRIPTION } from '@shell/config/labels-annotations';\nimport { SCHEMA, NORMAN } from '@shell/config/types';\nimport { CATTLE_API_GROUP, SUBTYPE_MAPPING, CREATE_VERBS } from '@shell/models/management.cattle.io.roletemplate';\nimport { uniq } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\nimport SteveDescriptionModel from '@shell/plugins/steve/steve-description-class';\nimport { AS, MODE, _CLONE, _UNFLAG } from '@shell/config/query-params';\n\nconst BASE = 'user-base';\nconst USER = 'user';\nconst ADMIN = 'admin';\nconst SPECIAL = [BASE, ADMIN, USER];\n\nconst GLOBAL = SUBTYPE_MAPPING.GLOBAL.key;\n\nexport default class GlobalRole extends SteveDescriptionModel {\n get customValidationRules() {\n return [\n {\n path: 'rules',\n validators: [`roleTemplateRules:${ this.type }`],\n nullable: false,\n type: 'array',\n },\n ];\n }\n\n get details() {\n const out = this._details;\n\n out.unshift({\n label: this.t('resourceDetail.detailTop.name'),\n content: get(this, 'name')\n });\n\n return out;\n }\n\n get nameDisplay() {\n // i18n-uses rbac.globalRoles.role.*.label\n const path = `rbac.globalRoles.role.${ this.id }.label`;\n const label = this.displayName || this.metadata?.name || this.id;\n\n return this.$rootGetters['i18n/withFallback'](path, label);\n }\n\n get descriptionDisplay() {\n return this.description ||\n this.metadata?.annotations?.[DESCRIPTION] ||\n // i18n-uses rbac.globalRoles.role.*.description\n this.$rootGetters['i18n/withFallback'](`rbac.globalRoles.role.${ this.id }.description`, this.t(`rbac.globalRoles.unknownRole.description`));\n }\n\n get isSpecial() {\n return SPECIAL.includes(this.id);\n }\n\n get subtype() {\n return GLOBAL;\n }\n\n get default() {\n return !!this.newUserDefault;\n }\n\n get allResources() {\n return this.$getters['all'](SCHEMA).filter((r) => r.attributes?.kind);\n }\n\n get globalResources() {\n return this.allResources.filter((r) => r.attributes.group.includes(CATTLE_API_GROUP));\n }\n\n get resources() {\n return uniq(this.globalResources.map((r) => r.attributes?.resource)).sort();\n }\n\n get listLocation() {\n return {\n name: `c-cluster-auth-roles`,\n hash: `#${ GLOBAL }`\n };\n }\n\n get detailLocation() {\n return {\n ...this._detailLocation,\n name: `c-cluster-auth-roles-resource-id`,\n };\n }\n\n get doneOverride() {\n return this.listLocation;\n }\n\n get parentLocationOverride() {\n return this.listLocation;\n }\n\n get basicNorman() {\n if (this.id) {\n return this.$dispatch(`rancher/find`, { id: this.id, type: NORMAN.GLOBAL_ROLE }, { root: true });\n }\n\n return this.$dispatch(`rancher/create`, { type: NORMAN.GLOBAL_ROLE, name: this.displayName }, { root: true });\n }\n\n /**\n * Due to issues in the Steve API, we need to switch to Norman API for handle and save this model\n */\n get norman() {\n return (async() => {\n const norman = await this.basicNorman;\n\n norman.rules = this.rules;\n norman.newUserDefault = this.newUserDefault;\n norman.id = this.id;\n norman.name = this.displayName;\n norman.description = this.description;\n norman.inheritedClusterRoles = this.inheritedClusterRoles;\n\n return norman;\n })();\n }\n\n get canCreate() {\n const schema = this.$getters['schemaFor'](this.type);\n\n return schema?.resourceMethods.find((verb) => CREATE_VERBS.has(verb));\n }\n\n /**\n * Resource action redirects to the detail page with a query parameter 'clone'\n * When the query parameter is present, the view will fetch the resource to clone define in the parameter\n * E.g.: /my-id?mode=clone\n * @param {*} moreQuery\n */\n goToClone(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _CLONE,\n [AS]: _UNFLAG,\n roleContext: GLOBAL,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n async save() {\n const norman = await this.norman;\n\n for (const rule of norman.rules) {\n if (rule.nonResourceURLs && rule.nonResourceURLs.length) {\n delete rule.resources;\n delete rule.apiGroups;\n } else {\n delete rule.nonResourceURLs;\n }\n }\n\n return norman.save();\n }\n\n async remove() {\n const norman = await this.norman;\n\n await norman.remove();\n }\n}\n","import { NORMAN, MANAGEMENT } from '@shell/config/types';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\n\nexport default class GRB extends HybridModel {\n get nameDisplay() {\n const role = this.$getters['byId'](MANAGEMENT.GLOBAL_ROLE, this.globalRoleName);\n\n if (!role) {\n return this.globalRoleName;\n }\n\n const ownersName = this.groupPrincipalName ? this._displayPrincipal : this._displayUser;\n\n return ownersName ? `${ role.displayName } (${ ownersName })` : role.displayName;\n }\n\n get _displayPrincipal() {\n const principal = this.$rootGetters['rancher/byId'](NORMAN.PRINCIPAL, this.groupPrincipalName);\n\n return principal ? `${ principal.name } - ${ principal.displayType }` : null;\n }\n\n get _displayUser() {\n return this.user;\n }\n\n get basicNorman() {\n if (this.id) {\n return this.$dispatch(`rancher/find`, { id: this.id, type: NORMAN.GLOBAL_ROLE_BINDING }, { root: true });\n }\n\n return this.$dispatch(`rancher/create`, { type: NORMAN.GLOBAL_ROLE_BINDING, name: this.displayName }, { root: true });\n }\n\n get norman() {\n return (async() => {\n const norman = await this.basicNorman;\n\n norman.globalRoleId = this.globalRoleName;\n norman.userId = this.userName;\n norman.newUserDefault = this.newUserDefault;\n norman.groupPrincipalId = this.groupPrincipalName;\n\n return norman;\n })();\n }\n\n async save() {\n const norman = await this.norman;\n\n return norman.save();\n }\n\n async remove() {\n const norman = await this.norman;\n\n await norman.remove();\n }\n}\n","import HybridModel from '@shell/plugins/steve/hybrid-class';\n\nconst HIDDEN = ['rke', 'rancherkubernetesengine'];\n\nconst V2 = ['amazoneks', 'googlegke', 'azureaks'];\nconst IMPORTABLE = ['amazoneks', 'googlegke', 'azureaks'];\n\n// The Ember create page has short names that don't match the full kontainer driver\nexport const KONTAINER_TO_DRIVER = {\n amazonelasticcontainerservice: 'amazoneks',\n azurekubernetesservice: 'azureaks',\n aks: 'azureaksv2', // Guessing it will be called this...\n eks: 'amazoneksv2',\n gke: 'googlegkev2',\n googlekubernetesengine: 'googlegke',\n huaweicontainercloudengine: 'huaweicce', // Does this actually exist?\n huaweiengine: 'huaweicce',\n linodekubernetesengine: 'linodelke', // Does this actually exist?\n lke: 'linodelke',\n lkeengine: 'linodelke',\n okeengine: 'oracleoke',\n oke: 'oracleoke',\n oraclecontainerengine: 'oracleoke', // Does this actually exist?\n rke2: 'rke2',\n tencentengine: 'tencenttke',\n tencentkubernetesengine: 'tencenttke', // Does this actually exist?\n aliyunkubernetescontainerservice: 'aliyun',\n baiducloudcontainerengine: 'baidu',\n opentelekomcloudcontainerengine: 'otccce',\n};\n\n// And the Import page has even shorter ones that don't match kontainer or create...\nexport const DRIVER_TO_IMPORT = {\n googlegke: 'gke',\n amazoneks: 'eks',\n azureaks: 'aks',\n};\n\nexport default class KontainerDriver extends HybridModel {\n get showCreate() {\n if ( HIDDEN.includes(this.driverName) ) {\n return false;\n }\n\n return !!this.spec.active;\n }\n\n get showImport() {\n return this.showCreate && IMPORTABLE.includes(this.driverName);\n }\n\n get emberCreatePath() {\n let driver = this.driverName;\n\n if ( V2.includes(driver) && !driver.endsWith('v2') ) {\n driver += 'v2';\n }\n\n return `/g/clusters/add/launch/${ driver }`;\n }\n\n get emberImportPath() {\n const provider = DRIVER_TO_IMPORT[this.driverName] || this.driverName;\n\n return `/g/clusters/add/launch/import?importProvider=${ provider }`;\n }\n\n get driverName() {\n if (!this.spec.builtIn) {\n // if the driver is not built in, there's a good change its a custom one\n // custom drivers have a random id, so shouldn't be used as the type\n // instead use the status.displayName. this will map to the name extracted from the binary\n const driverName = this.status?.displayName?.toLowerCase();\n\n if (driverName) {\n // some drivers are built in but don't have the builtIn flag. ensure we pass these through K_TO_D\n return KONTAINER_TO_DRIVER[driverName] || driverName;\n }\n }\n\n return KONTAINER_TO_DRIVER[this.id] || this.id;\n }\n}\n","import { MANAGEMENT_NODE } from '@shell/config/labels-annotations';\nimport {\n ADDRESSES, CAPI, MANAGEMENT, NODE, NORMAN\n} from '@shell/config/types';\nimport { NAME as EXPLORER } from '@shell/config/product/explorer';\nimport { listNodeRoles } from '@shell/models/cluster/node';\nimport { insertAt } from '@shell/utils/array';\nimport { downloadUrl } from '@shell/utils/download';\nimport findLast from 'lodash/findLast';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\nimport { notOnlyOfRole } from '@shell/models/cluster.x-k8s.io.machine';\n\nexport default class MgmtNode extends HybridModel {\n get _availableActions() {\n const out = super._availableActions;\n\n const downloadKeys = {\n action: 'downloadKeys',\n enabled: !!this.norman?.links?.nodeConfig,\n icon: 'icon icon-fw icon-download',\n label: this.t('node.actions.downloadNodeConfig'),\n };\n\n const scaleDown = {\n action: 'scaleDown',\n bulkAction: 'scaleDown',\n enabled: !!this.canScaleDown,\n icon: 'icon icon-minus icon-fw',\n label: this.t('node.actions.scaleDown'),\n bulkable: true,\n };\n\n insertAt(out, 0, { divider: true });\n insertAt(out, 0, downloadKeys);\n insertAt(out, 0, scaleDown);\n\n return out;\n }\n\n get kubeNodeName() {\n return this.metadata.labels[MANAGEMENT_NODE.NODE_NAME];\n }\n\n get mgmtClusterId() {\n return this.id.substring(0, this.id.indexOf('/'));\n }\n\n get kubeNodeDetailLocation() {\n return this.kubeNodeName ? {\n name: 'c-cluster-product-resource-id',\n params: {\n cluster: this.mgmtClusterId,\n product: EXPLORER,\n resource: NODE,\n id: this.kubeNodeName\n }\n } : null;\n }\n\n get isWorker() {\n return this.spec.worker;\n }\n\n get isControlPlane() {\n return this.spec.controlPlane;\n }\n\n get isEtcd() {\n return this.spec.etcd;\n }\n\n get roles() {\n const { isControlPlane, isWorker, isEtcd } = this;\n\n return listNodeRoles(isControlPlane, isWorker, isEtcd, this.t('generic.all'));\n }\n\n get pool() {\n const nodePoolID = this.spec.nodePoolName.replace(':', '/');\n\n return this.$rootGetters['management/byId'](MANAGEMENT.NODE_POOL, nodePoolID);\n }\n\n get norman() {\n const id = this.id.replace('/', ':');\n\n return this.$rootGetters['rancher/byId'](NORMAN.NODE, id);\n }\n\n get canDelete() {\n return this.norman?.hasLink('remove');\n }\n\n get canUpdate() {\n return this.hasLink('update') && this.norman?.hasLink('update');\n }\n\n remove() {\n return this.norman?.remove();\n }\n\n downloadKeys() {\n const url = this.norman?.links?.nodeConfig;\n\n if ( url ) {\n downloadUrl(url);\n }\n }\n\n async scaleDown(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'ScaleMachineDownDialog',\n modalWidth: '450px'\n });\n }\n\n get provisioningCluster() {\n return this.$getters['all'](CAPI.RANCHER_CLUSTER).find((c) => c.mgmtClusterId === this.mgmtClusterId);\n }\n\n get doneOverride() {\n return this.provisioningCluster?.detailLocation;\n }\n\n get canClone() {\n return false;\n }\n\n get addresses() {\n return this.status?.addresses || this.status?.internalNodeStatus?.addresses || [];\n }\n\n get internalIp() {\n // This shows in the IP address column for RKE1 nodes in the\n // list of nodes in the cluster detail page of Cluster Management.\n const internal = this.addresses.find(({ type }) => {\n return type === ADDRESSES.INTERNAL_IP;\n });\n\n if (internal) {\n return internal.address;\n }\n\n // For RKE1 clusters in EC2, node addresses are\n // under status.rkeNode.address and status.rkeNode.internalAddress\n if (!internal && this.status.rkeNode) {\n return this.status.rkeNode.internalAddress;\n }\n\n return this.t('generic.none');\n }\n\n get externalIp() {\n const statusAddress = findLast(this.addresses, (address) => address.type === 'ExternalIP')?.address;\n\n if (statusAddress) {\n return statusAddress;\n }\n\n // For RKE1 clusters in EC2, node addresses are\n // under status.rkeNode.address and status.rkeNode.internalAddress\n if (!statusAddress && this.status.rkeNode) {\n return this.status.rkeNode.address;\n }\n\n return this.t('generic.none');\n }\n\n get canScaleDown() {\n if (!this.isEtcd && !this.isControlPlane) {\n return true;\n }\n\n const hasAction = this.norman?.actions?.scaledown;\n\n return hasAction && notOnlyOfRole(this, this.provisioningCluster?.nodes);\n }\n}\n","import { CAPI, MANAGEMENT, NORMAN } from '@shell/config/types';\nimport { sortBy } from '@shell/utils/sort';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\nimport { notOnlyOfRole } from '@shell/models/cluster.x-k8s.io.machine';\n\nexport default class MgmtNodePool extends HybridModel {\n get nodeTemplateId() {\n return (this.spec?.nodeTemplateName || '').replace(/:/, '/');\n }\n\n get nodeTemplate() {\n return this.$getters['byId'](MANAGEMENT.NODE_TEMPLATE, this.nodeTemplateId);\n }\n\n get provider() {\n return this.nodeTemplate?.provider;\n }\n\n get providerName() {\n return this.nodeTemplate?.nameDisplay;\n }\n\n get providerDisplay() {\n return this.nodeTemplate?.providerDisplay;\n }\n\n get providerLocation() {\n return this.nodeTemplate?.providerLocation;\n }\n\n get providerSize() {\n return this.nodeTemplate?.providerSize;\n }\n\n get provisioningCluster() {\n return this.$getters['all'](CAPI.RANCHER_CLUSTER).find((c) => c.name === this.spec.clusterName);\n }\n\n get doneOverride() {\n return {\n name: 'c-cluster-product-resource-namespace-id',\n params: {\n resource: CAPI.RANCHER_CLUSTER,\n namespace: this.provisioningCluster?.namespace,\n id: this.spec.clusterName\n }\n };\n }\n\n get scale() {\n return this.norman.quantity;\n }\n\n scalePool(delta) {\n this.norman.quantity += delta;\n\n if ( this.scaleTimer ) {\n clearTimeout(this.scaleTimer);\n }\n\n this.scaleTimer = setTimeout(() => {\n try {\n this.norman.save();\n } catch (error) {\n this.$dispatch('growl/fromError', {\n title: 'Error scaling pool',\n error\n }, { root: true });\n }\n }, 1000);\n }\n\n get nodes() {\n const nodePoolName = this.id.replace('/', ':');\n\n return this.$getters['all'](MANAGEMENT.NODE).filter((node) => node.spec.nodePoolName === nodePoolName);\n }\n\n get nodeSummary() {\n // Use three buckets of states rather than actual states.\n // These are used in `stateParts` which is show in the same context as `stateParts` for machine deployments (rke2 pools))\n // Using actual states here would look strange when against bucket states for RKE2\n const res = {\n pending: 0,\n unavailable: 0,\n ready: 0,\n };\n\n if (!this.nodes) {\n return res;\n }\n\n return this.nodes.reduce((res, n) => {\n if (n.metadata.state.error ) {\n res.unavailable++;\n } else if (n.metadata.state.transitioning) {\n res.pending++;\n } else if (n.state !== 'active') {\n res.unavailable++;\n } else {\n res.ready++;\n }\n\n return res;\n }, { ...res });\n }\n\n get desired() {\n return this.spec?.quantity || 0;\n }\n\n get pending() {\n return this.nodeSummary.pending;\n }\n\n get ready() {\n return this.nodeSummary.ready;\n }\n\n get unavailable() {\n return this.nodeSummary.unavailable;\n }\n\n get stateParts() {\n const out = [\n {\n label: 'Pending',\n color: 'bg-info',\n textColor: 'text-info',\n value: this.pending,\n sort: 1,\n },\n {\n label: 'Unavailable',\n color: 'bg-error',\n textColor: 'text-error',\n value: this.unavailable,\n sort: 3,\n },\n {\n label: 'Ready',\n color: 'bg-success',\n textColor: 'text-success',\n value: this.ready,\n sort: 4,\n },\n ].filter((x) => x.value > 0);\n\n return sortBy(out, 'sort:desc');\n }\n\n get norman() {\n const id = this.id.replace('/', ':');\n\n return this.$rootGetters['rancher/byId'](NORMAN.NODE_POOL, id);\n }\n\n get canDelete() {\n return this.norman?.hasLink('remove');\n }\n\n get canUpdate() {\n return this.norman?.hasLink('update');\n }\n\n get isControlPlane() {\n return this.spec?.controlPlane === true;\n }\n\n get isEtcd() {\n return this.spec?.etcd === true;\n }\n\n canScaleDownPool() {\n if (!this.isEtcd && !this.isControlPlane) {\n return true;\n }\n\n return notOnlyOfRole(this, this?.provisioningCluster?.nodes);\n }\n\n remove() {\n return this.norman?.remove();\n }\n}\n","import { formatSi } from '@shell/utils/units';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\n\nconst CONFIG_KEYS = [\n {\n driver: 'aliyunecs',\n size: { key: 'instanceType' },\n location: {\n getDisplayProperty(that) {\n return `${ that.providerConfig?.region }${ that.providerConfig?.zone }`;\n }\n }\n },\n {\n driver: 'amazonec2',\n size: { key: 'instanceType' },\n location: {\n getDisplayProperty(that) {\n return `${ that.providerConfig?.region }${ that.providerConfig?.zone }`;\n }\n }\n },\n {\n driver: 'azure',\n size: { key: 'size' },\n location: { key: 'location' }\n },\n {\n driver: 'digitalocean',\n size: { key: 'size' },\n location: { key: 'region' }\n },\n {\n driver: 'exoscale',\n size: { key: 'instanceProfile' },\n location: { key: 'availabilityZone' }\n },\n {\n driver: 'linode',\n size: { key: 'instanceType' },\n location: { key: 'region' }\n },\n {\n driver: 'oci',\n size: { key: 'nodeShape' },\n location: {}\n },\n {\n driver: 'packet',\n size: { key: 'plan' },\n location: { key: 'facilityCode' }\n },\n {\n driver: 'pnap',\n size: { key: 'serverType' },\n location: { key: 'serverLocation' }\n },\n {\n driver: 'rackspace',\n size: { key: 'flavorId' },\n location: { key: 'region' }\n },\n {\n driver: 'vmwarevsphere',\n size: {\n getDisplayProperty(that) {\n const size = formatSi(that.providerConfig?.memorySize * 1048576, 1024, 'iB');\n\n return `${ size }, ${ that.providerConfig?.cpuCount } Core`;\n }\n },\n location: { key: null }\n\n },\n];\n\nexport default class NodeTemplate extends HybridModel {\n get provider() {\n const allKeys = Object.keys(this);\n\n const configKey = allKeys\n .filter((k) => this[k] !== null)\n .find((k) => k.endsWith('Config'));\n\n if ( configKey ) {\n return configKey.replace(/config$/i, '');\n }\n\n return null;\n }\n\n get providerConfig() {\n return this[`${ this.provider }Config`];\n }\n\n get providerDisplay() {\n const provider = (this.provider || '').toLowerCase();\n\n return this.$rootGetters['i18n/withFallback'](`cluster.provider.\"${ provider }\"`, null, 'generic.unknown', true);\n }\n\n get providerLocation() {\n if (this.provider) {\n const config = CONFIG_KEYS.find((k) => k.driver === this.provider);\n\n if (config?.location) {\n if (config.location.getDisplayProperty) {\n return config.location.getDisplayProperty(this);\n }\n const value = this.providerConfig?.[config.location.key];\n\n if (value) {\n return value;\n }\n }\n }\n\n return this.providerConfig?.region || this.t('node.list.poolDescription.noLocation');\n }\n\n get providerSize() {\n if (this.provider) {\n const config = CONFIG_KEYS.find((k) => k.driver === this.provider);\n\n if (config?.size) {\n if (config.size.getDisplayProperty) {\n return config.size.getDisplayProperty(this);\n }\n const value = this.providerConfig?.[config.size.key];\n\n if (value) {\n return value;\n }\n }\n }\n\n return this.providerConfig?.size || this.t('node.list.poolDescription.noSize');\n }\n}\n","import SteveDescriptionModel from '@shell/plugins/steve/steve-description-class';\n\nexport default class PodSecurityAdmissionTemplate extends SteveDescriptionModel { }\n","import { DEFAULT_PROJECT, SYSTEM_PROJECT } from '@shell/config/labels-annotations';\nimport { MANAGEMENT, NAMESPACE, NORMAN } from '@shell/config/types';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\nimport isEmpty from 'lodash/isEmpty';\nimport { HARVESTER_NAME as HARVESTER } from '@shell/config/features';\n\nfunction clearUnusedResourceQuotas(spec, types) {\n types.forEach((type) => {\n if (spec[type]?.limit && !isEmpty(spec[type].limit)) {\n Object.keys(spec[type].limit).forEach((key) => {\n if (!spec[type].limit[key]) {\n delete spec[type].limit[key];\n }\n });\n }\n\n if (spec[type]?.usedLimit && !isEmpty(spec[type].usedLimit)) {\n Object.keys(spec[type].usedLimit).forEach((key) => {\n if (!spec[type].usedLimit[key]) {\n delete spec[type].usedLimit[key];\n }\n });\n }\n\n if ( spec[type]?.limit && isEmpty(spec[type].limit) ) {\n spec[type].limit = null;\n }\n\n if ( spec[type]?.usedLimit && isEmpty(spec[type].usedLimit) ) {\n spec[type].usedLimit = null;\n }\n\n if ( spec[type] && !isEmpty(spec[type]) && Object.keys(spec[type]).every( (k) => spec[type][k] === null ) ) {\n spec[type] = null;\n }\n });\n\n return spec;\n}\n\nexport default class Project extends HybridModel {\n get isSystem() {\n return this.metadata?.labels?.[SYSTEM_PROJECT] === 'true';\n }\n\n get isDefault() {\n return this.metadata?.labels?.[DEFAULT_PROJECT] === 'true';\n }\n\n get namespaces() {\n // I don't know how you'd end up with a project outside of rancher, but just in case...\n if ( !this.$rootGetters['isRancher'] ) {\n return [];\n }\n\n const inStore = this.$rootGetters['currentProduct'].inStore;\n\n const all = this.$rootGetters[`${ inStore }/all`](NAMESPACE);\n\n return all.filter((ns) => {\n return ns.projectId === this.metadata.name;\n });\n }\n\n get description() {\n return this.spec?.description;\n }\n\n get doneOverride() {\n return this.listLocation;\n }\n\n get listLocation() {\n // Harvester uses these resource directly... but has different routes. listLocation covers routes leading back to route\n if (this.$rootGetters['currentProduct'].inStore === HARVESTER) {\n return { name: `${ HARVESTER }-c-cluster-projectsnamespaces` };\n }\n\n return { name: 'c-cluster-product-projectsnamespaces' };\n }\n\n get _detailLocation() {\n // Harvester uses these resource directly... but has different routes. detailLocation covers routes leading to resource (like edit)\n const _detailLocation = super._detailLocation;\n\n if (this.$rootGetters['currentProduct'].inStore === HARVESTER) {\n _detailLocation.name = `${ HARVESTER }-${ _detailLocation.name }`.replace('-product', '');\n }\n\n return _detailLocation;\n }\n\n get parentLocationOverride() {\n return this.listLocation;\n }\n\n async save(forceReplaceOnReq) {\n const norman = await this.norman;\n\n // PUT requests to Norman have trouble with nested objects due to the\n // merging strategy performed on the backend. Whenever a field is\n // removed, the resource should be replaced instead of merged,\n // and the PUT request should have a query param _replace=true.\n const newValue = await norman.save({ replace: forceReplaceOnReq });\n\n return newValue;\n }\n\n async remove() {\n const norman = await this.norman;\n\n await norman.remove(...arguments);\n await this.$dispatch('management/findAll', { type: MANAGEMENT.PROJECT, opt: { force: true } }, { root: true });\n }\n\n get norman() {\n return this.id ? this.normanEditProject : this.normanNewProject;\n }\n\n get normanNewProject() {\n return (async() => {\n const clearedResourceQuotas = clearUnusedResourceQuotas(this.spec, ['resourceQuota', 'namespaceDefaultResourceQuota']);\n\n const normanProject = await this.$dispatch('rancher/create', {\n type: NORMAN.PROJECT,\n name: this.spec.displayName,\n description: this.spec.description,\n annotations: this.metadata.annotations,\n labels: this.metadata.labels,\n clusterId: this.$rootGetters['currentCluster'].id,\n creatorId: this.$rootGetters['auth/principalId'],\n containerDefaultResourceLimit: this.spec.containerDefaultResourceLimit,\n }, { root: true });\n\n // The backend seemingly required both labels/annotation and metadata.labels/annotations or it doesn't save the labels and annotations\n normanProject.setAnnotations(this.metadata.annotations);\n normanProject.setLabels(this.metadata.labels);\n normanProject.setResourceQuotas(clearedResourceQuotas);\n\n return normanProject;\n })();\n }\n\n get normanEditProject() {\n return (async() => {\n const normanProject = await this.$dispatch('rancher/find', {\n type: NORMAN.PROJECT,\n id: this.id.replace('/', ':'),\n }, { root: true });\n\n const clearedResourceQuotas = clearUnusedResourceQuotas(this.spec, ['resourceQuota', 'namespaceDefaultResourceQuota']);\n\n normanProject.setAnnotations(this.metadata.annotations);\n normanProject.setLabels(this.metadata.labels);\n normanProject.setResourceQuotas(clearedResourceQuotas);\n normanProject.description = this.spec.description;\n normanProject.name = this.spec.displayName;\n normanProject.containerDefaultResourceLimit = this.spec.containerDefaultResourceLimit;\n\n return normanProject;\n })();\n }\n\n // users with permissions for projectroletemplatebindings should be able to manage members on projects\n get canUpdate() {\n return super.canUpdate || this.canUpdateProjectBindings;\n }\n\n get canUpdateProjectBindings() {\n const schema = this.$rootGetters[`rancher/schemaFor`](NORMAN.PROJECT_ROLE_TEMPLATE_BINDING);\n\n return schema?.collectionMethods.includes('POST');\n }\n\n get canEditYaml() {\n return this.schema?.resourceMethods?.find((x) => x === 'blocked-PUT') ? false : super.canUpdate;\n }\n\n get confirmRemove() {\n return true;\n }\n}\n","import { CREATOR_ID } from '@shell/config/labels-annotations';\nimport { MANAGEMENT, NORMAN } from '@shell/config/types';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\n\nexport default class PRTB extends HybridModel {\n get canCustomEdit() {\n return false;\n }\n\n get canYaml() {\n return false;\n }\n\n get canClone() {\n return false;\n }\n\n get user() {\n return this.$rootGetters['management/byId'](MANAGEMENT.USER, this.userName);\n }\n\n get principal() {\n const principalId = this.principalId.replace(/\\//g, '%2F');\n\n return this.$dispatch('rancher/find', {\n type: NORMAN.PRINCIPAL,\n id: this.principalId,\n opt: { url: `/v3/principals/${ principalId }` }\n }, { root: true });\n }\n\n get principalId() {\n // We've either set it ourselves or it's comes from native properties\n return this.principalName || this.userPrincipalName || this.groupPrincipalName || '';\n }\n\n get nameDisplay() {\n return this.user?.nameDisplay;\n }\n\n get projectId() {\n // projectName is in format `local:p-v679w`. project id's are in format `local/p-v679w`,\n return this.projectName?.replace(':', '/');\n }\n\n get clusterId() {\n // projectName is in format `local:p-v679w`,\n return this.projectName.substring(0, this.projectName.lastIndexOf(':'));\n }\n\n get project() {\n return this.$rootGetters['management/byId'](MANAGEMENT.PROJECT, this.projectId);\n }\n\n get cluster() {\n return this.$rootGetters['management/byId'](MANAGEMENT.CLUSTER, this.clusterId);\n }\n\n get projectDisplayName() {\n return this.project ? this.project.nameDisplay : this.projectName;\n }\n\n get clusterDisplayName() {\n return this.cluster ? this.cluster.nameDisplay : this.clusterId;\n }\n\n get userAvatar() {\n return {\n nameDisplay: this.nameDisplay,\n userName: this.user.username,\n avatarSrc: this.user.avatarSrc\n };\n }\n\n get projectDetailLocation() {\n if (this.project) {\n return this.project.detailLocation;\n }\n\n const name = `c-cluster-product-resource-id`;\n\n const params = {\n resource: MANAGEMENT.PROJECT,\n id: this.projectId,\n product: 'explorer',\n };\n\n return { name, params };\n }\n\n get clusterDetailLocation() {\n if (this.cluster) {\n return this.cluster.detailLocation;\n }\n\n const name = `c-cluster-product-resource-id`;\n\n const params = {\n resource: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING,\n id: this.clusterName,\n product: 'explorer',\n };\n\n return { name, params };\n }\n\n get roleTemplate() {\n return this.$rootGetters['management/byId'](MANAGEMENT.ROLE_TEMPLATE, this.roleTemplateName);\n }\n\n get roleDisplay() {\n return this.roleTemplate.nameDisplay;\n }\n\n get listLocation() {\n return { name: 'c-cluster-explorer-project-members' };\n }\n\n get isSystem() {\n return !this.metadata.annotations[CREATOR_ID];\n }\n\n get norman() {\n return (async() => {\n const principal = await this.principal;\n const principalProperty = principal?.principalType === 'group' ? 'groupPrincipalId' : 'userPrincipalId';\n\n return this.$dispatch(`rancher/create`, {\n type: NORMAN.PROJECT_ROLE_TEMPLATE_BINDING,\n roleTemplateId: this.roleTemplateName,\n [principalProperty]: principal?.id,\n projectId: this.projectName,\n projectRoleTemplateId: '',\n id: this.id?.replace('/', ':')\n }, { root: true });\n })();\n }\n\n async save() {\n const norman = await this.norman;\n\n return norman.save();\n }\n\n async remove() {\n const norman = await this.norman;\n\n await norman.remove({ url: `/v3/projectRoleTemplateBindings/${ norman.id }` });\n }\n}\n","import { get } from '@shell/utils/object';\nimport { DESCRIPTION } from '@shell/config/labels-annotations';\nimport { NORMAN } from '@shell/config/types';\nimport SteveDescriptionModel from '@shell/plugins/steve/steve-description-class';\nimport { AS, MODE, _CLONE, _UNFLAG } from '@shell/config/query-params';\n\nexport const CATTLE_API_GROUP = '.cattle.io';\n\nexport const SUBTYPE_MAPPING = {\n GLOBAL: {\n key: 'GLOBAL',\n type: 'management.cattle.io.globalrole',\n defaultKey: 'newUserDefault',\n id: 'GLOBAL',\n labelKey: 'rbac.roletemplate.subtypes.GLOBAL.label',\n },\n CLUSTER: {\n key: 'CLUSTER',\n type: 'management.cattle.io.roletemplate',\n context: 'cluster',\n defaultKey: 'clusterCreatorDefault',\n id: 'CLUSTER',\n labelKey: 'rbac.roletemplate.subtypes.CLUSTER.label',\n },\n NAMESPACE: {\n key: 'NAMESPACE',\n type: 'management.cattle.io.roletemplate',\n context: 'project',\n defaultKey: 'projectCreatorDefault',\n id: 'NAMESPACE',\n labelKey: 'rbac.roletemplate.subtypes.NAMESPACE.label',\n },\n RBAC_ROLE: {\n key: 'RBAC_ROLE',\n type: 'rbac.authorization.k8s.io.role',\n id: 'RBAC_ROLE',\n labelKey: 'rbac.roletemplate.subtypes.RBAC_ROLE.label',\n },\n RBAC_CLUSTER_ROLE: {\n key: 'RBAC_CLUSTER_ROLE',\n type: 'rbac.authorization.k8s.io.clusterrole',\n id: 'RBAC_CLUSTER_ROLE',\n labelKey: 'rbac.roletemplate.subtypes.RBAC_CLUSTER_ROLE.label',\n }\n};\n\nexport const VERBS = [\n 'create',\n 'delete',\n 'get',\n 'list',\n 'patch',\n 'update',\n 'watch',\n];\n\nexport const CREATE_VERBS = new Set(['PUT', 'blocked-PUT']);\n\nexport default class RoleTemplate extends SteveDescriptionModel {\n get customValidationRules() {\n return [\n {\n path: 'rules',\n validators: [`roleTemplateRules:${ this.type }`],\n nullable: false,\n type: 'array',\n },\n ];\n }\n\n get details() {\n const out = this._details;\n\n out.unshift({\n label: this.t('resourceDetail.detailTop.name'),\n content: get(this, 'name')\n },\n // API returns a blank description property, this overrides our own link to the description\n {\n label: this.t('resourceDetail.detailTop.description'),\n content: this.metadata?.annotations?.[DESCRIPTION]\n });\n\n return out;\n }\n\n get state() {\n return this.locked ? 'locked' : this.metadata?.state?.name || 'unknown';\n }\n\n get subtype() {\n if (this._subtype) {\n return this._subtype;\n }\n\n if (this.type === SUBTYPE_MAPPING.CLUSTER.type && this.context === SUBTYPE_MAPPING.CLUSTER.context) {\n return SUBTYPE_MAPPING.CLUSTER.key;\n }\n\n if (this.type === SUBTYPE_MAPPING.NAMESPACE.type && this.context === SUBTYPE_MAPPING.NAMESPACE.context) {\n return SUBTYPE_MAPPING.NAMESPACE.key;\n }\n\n return null;\n }\n\n updateSubtype(subtype) {\n this['_subtype'] = subtype;\n this.context = SUBTYPE_MAPPING[subtype].context;\n }\n\n get default() {\n const defaultKey = SUBTYPE_MAPPING[this.subtype]?.defaultKey;\n\n return !!this[defaultKey];\n }\n\n updateDefault(value) {\n const defaultKey = SUBTYPE_MAPPING[this.subtype].defaultKey;\n\n this[defaultKey] = value;\n }\n\n get listLocation() {\n return {\n name: `c-cluster-auth-roles`,\n hash: `#${ this.subtype }`\n };\n }\n\n get detailLocation() {\n return {\n ...this._detailLocation,\n name: `c-cluster-auth-roles-resource-id`,\n };\n }\n\n get doneOverride() {\n return this.listLocation;\n }\n\n get parentLocationOverride() {\n return this.listLocation;\n }\n\n get basicNorman() {\n if (this.id) {\n return this.$dispatch(`rancher/find`, { id: this.id, type: NORMAN.ROLE_TEMPLATE }, { root: true });\n }\n\n return this.$dispatch(`rancher/create`, { type: NORMAN.ROLE_TEMPLATE, name: this.displayName }, { root: true });\n }\n\n get norman() {\n return (async() => {\n const norman = await this.basicNorman;\n\n norman.rules = this.rules;\n norman.locked = this.locked;\n norman.clusterCreatorDefault = this.clusterCreatorDefault || false;\n norman.projectCreatorDefault = this.projectCreatorDefault || false;\n norman.context = this.context;\n norman.description = this.description;\n norman.roleTemplateIds = this.roleTemplateNames;\n\n return norman;\n })();\n }\n\n get canCreate() {\n const schema = this.$getters['schemaFor'](this.type);\n\n return schema?.resourceMethods.find((verb) => CREATE_VERBS.has(verb));\n }\n\n /**\n * Resource action redirects to the detail page with a query parameter 'clone'\n * When the query parameter is present, the view will fetch the resource to clone define in the parameter\n * E.g.: /my-id?mode=clone\n * @param {*} moreQuery\n */\n goToClone(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _CLONE,\n [AS]: _UNFLAG,\n roleContext: this.subtype,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n async save() {\n const norman = await this.norman;\n\n for (const rule of norman.rules) {\n if (rule.nonResourceURLs && rule.nonResourceURLs.length) {\n delete rule.resources;\n delete rule.apiGroups;\n } else {\n delete rule.nonResourceURLs;\n }\n }\n\n return norman.save();\n }\n\n async remove() {\n const norman = await this.norman;\n\n await norman.remove();\n }\n}\n","import { ALLOWED_SETTINGS } from '@shell/config/settings';\nimport HybridModel from '@shell/plugins/steve/hybrid-class';\nimport { isServerUrl } from '@shell/utils/validators/setting';\nimport { HARVESTER_NAME as HARVESTER } from '@shell/config/features';\nimport {\n _EDIT,\n _UNFLAG,\n AS,\n MODE\n} from '@shell/config/query-params';\n\nexport default class Setting extends HybridModel {\n get fromEnv() {\n return (this.source || '').toLowerCase() === 'env';\n }\n\n get _availableActions() {\n const toFilter = ['cloneYaml', 'download', 'goToEditYaml', 'goToViewYaml', 'goToViewConfig'];\n const settingMetadata = ALLOWED_SETTINGS[this.id];\n let out = super._availableActions;\n\n // Some settings are not editable\n if ( settingMetadata?.readOnly ) {\n toFilter.push('goToEdit');\n }\n\n out = out.filter((action) => {\n return (!toFilter.includes(action.action));\n });\n\n // Change the label on the first action (edit)\n const editAction = out.find((action) => action.action === 'goToEdit');\n\n if (editAction) {\n editAction.label = this.t('advancedSettings.edit.label');\n }\n\n return out;\n }\n\n get customValidationRules() {\n const out = [];\n\n if (isServerUrl(this.metadata.name)) {\n out.push({\n path: 'value',\n validators: ['required', 'https', 'url', 'trailingForwardSlash']\n });\n }\n\n return out;\n }\n\n goToEdit(moreQuery = {}) {\n if (this.$rootGetters['currentProduct'].inStore === HARVESTER) {\n location.name = `${ HARVESTER }-c-cluster-brand`;\n location.params = { cluster: this.$rootGetters['currentCluster'].id, product: HARVESTER };\n\n location.query = {\n ...location.query,\n [MODE]: _EDIT,\n [AS]: _UNFLAG,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n } else {\n super.goToEdit();\n }\n }\n}\n","import { NORMAN } from '@shell/config/types';\nimport HybridModel, { cleanHybridResources } from '@shell/plugins/steve/hybrid-class';\nimport day from 'dayjs';\n\nexport default class User extends HybridModel {\n // Preserve description\n constructor(data, ctx, rehydrateNamespace = null, setClone = false) {\n const _description = data.description;\n\n super(data, ctx, rehydrateNamespace, setClone);\n this.description = _description;\n }\n\n // Clean the Norman properties, but keep description\n cleanResource(data) {\n const desc = data.description;\n const clean = cleanHybridResources(data);\n\n clean._description = desc;\n\n return clean;\n }\n\n get isSystem() {\n for ( const p of this.principalIds || [] ) {\n if ( p.startsWith('system://') ) {\n return true;\n }\n }\n\n return false;\n }\n\n get isCurrentUser() {\n const currentPrincipal = this.$rootGetters['auth/principalId'];\n\n return !!(this.principalIds || []).find((p) => p === currentPrincipal);\n }\n\n get principals() {\n return this.principalIds\n .map((id) => this.$rootGetters['rancher/byId'](NORMAN.PRINCIPAL, id))\n .filter((p) => p);\n }\n\n get nameDisplay() {\n return this.displayName || this.username || this.id;\n }\n\n get labelForSelect() {\n const name = this.nameDisplay;\n const id = this.id;\n\n if ( name === id ) {\n return id;\n } else {\n return `${ name } (${ id })`;\n }\n }\n\n get provider() {\n const principals = this.principalIds || [];\n let isSystem = false;\n let isLocal = true;\n let provider = '';\n\n for ( const p of principals ) {\n const idx = p.indexOf(':');\n const driver = p.substr(0, idx).toLowerCase().split('_')[0];\n\n if ( driver === 'system' ) {\n isSystem = true;\n } else if ( driver === 'local' ) {\n // Do nothing, defaults to local\n } else {\n isLocal = false;\n\n if ( provider ) {\n provider = 'multiple';\n } else {\n provider = driver;\n }\n }\n }\n\n let key;\n\n if ( isSystem ) {\n key = 'system';\n } else if ( isLocal ) {\n key = 'local';\n } else {\n key = provider;\n }\n\n return key;\n }\n\n get providerDisplay() {\n return this.$rootGetters['i18n/withFallback'](`model.authConfig.provider.\"${ this.provider }\"`, null, this.provider);\n }\n\n /**\n * Gets the last-login label in milliseconds\n * @returns {number}\n */\n get userLastLogin() {\n return this.metadata?.labels?.['cattle.io/last-login'] * 1000 || 0;\n }\n\n /**\n * Gets the disabled-after label in milliseconds\n * @returns {number}\n */\n get userDisabledIn() {\n return this.metadata?.labels?.['cattle.io/disable-after'] * 1000 || 0;\n }\n\n /**\n * Provides a display value for the userDisabledIn date based on the user\n * state.\n */\n get userDisabledInDisplay() {\n return this.state === 'inactive' ? null : this.userDisabledIn;\n }\n\n /**\n * Gets the delete-after label in milliseconds\n * @returns {number}\n */\n get userDeletedIn() {\n return this.metadata?.labels?.['cattle.io/delete-after'] * 1000 || 0;\n }\n\n get state() {\n if ( this.enabled === false ) {\n return 'inactive';\n }\n\n return this.metadata?.state?.name || 'unknown';\n }\n\n get stateDisplay() {\n switch (this.state) {\n case 'inactive':\n return this.t('user.state.inactive');\n case 'active':\n return this.t('user.state.active');\n case 'unknown':\n return this.t('user.state.unknown');\n default:\n return this.state;\n }\n }\n\n get description() {\n return this._description;\n }\n\n set description(value) {\n this._description = value;\n }\n\n // Ensure when we clone that we preserve the description\n toJSON() {\n const data = super.toJSON();\n\n data.description = this._description;\n delete data._description;\n\n return data;\n }\n\n async save(opt) {\n const clone = await this.$dispatch('clone', { resource: this });\n\n // Remove local properties\n delete clone.canRefreshAccess;\n\n return clone._save(opt);\n }\n\n async setEnabled(enabled) {\n const clone = await this.$dispatch('rancher/clone', { resource: this.norman }, { root: true });\n\n clone.enabled = enabled;\n await clone.save();\n }\n\n async activate() {\n await this.setEnabled(true);\n }\n\n async activateBulk(items) {\n await Promise.all(items.map((item) => item.setEnabled(true)));\n }\n\n async deactivate() {\n await this.setEnabled(false);\n }\n\n async deactivateBulk(items) {\n await Promise.all(items.map((item) => item.setEnabled(false)));\n }\n\n async refreshGroupMembership() {\n const user = await this.$dispatch('rancher/find', {\n type: NORMAN.USER,\n id: this.id,\n }, { root: true });\n\n await user.doAction('refreshauthprovideraccess');\n }\n\n canActivate(state) {\n const stateOk = state ? this.state === 'inactive' : this.state === 'active';\n const permissionOk = this.hasLink('update'); // Not canUpdate, only gate on api not whether editable pages should be visible\n\n return stateOk && permissionOk && !this.isCurrentUser;\n }\n\n get _availableActions() {\n return [\n {\n action: 'activate',\n label: this.t('action.enable'),\n icon: 'icon icon-play',\n bulkable: true,\n bulkAction: 'activateBulk',\n enabled: this.canActivate(true),\n weight: 2\n },\n {\n action: 'deactivate',\n label: this.t('action.disable'),\n icon: 'icon icon-pause',\n bulkable: true,\n bulkAction: 'deactivateBulk',\n enabled: this.canActivate(false),\n weight: 1\n },\n {\n action: 'refreshGroupMembership',\n label: this.t('authGroups.actions.refresh'),\n icon: 'icon icon-refresh',\n enabled: this.canRefreshAccess\n },\n { divider: true },\n ...super._availableActions,\n ];\n }\n\n get details() {\n return [\n {\n label: this.t('user.detail.username'),\n formatter: 'CopyToClipboard',\n content: this.username\n },\n { separator: true },\n {\n label: this.t('tableHeaders.userLastLogin'),\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true, suffix: `${ this.t('suffix.ago') } (${ day(this.userLastLogin) })` },\n content: this.userLastLogin,\n },\n {\n label: this.t('tableHeaders.userDisabledIn'),\n formatter: 'LiveDate',\n formatterOpts: { isCountdown: true },\n content: this.userDisabledInDisplay,\n },\n {\n label: this.t('tableHeaders.userDeletedIn'),\n formatter: 'LiveDate',\n formatterOpts: { isCountdown: true },\n content: this.userDeletedIn,\n },\n ...this._details\n ];\n }\n\n get confirmRemove() {\n return true;\n }\n\n get norman() {\n return this.$rootGetters['rancher/byId'](NORMAN.USER, this.id);\n }\n\n get canDelete() {\n return this.norman?.hasLink('remove') && !this.isCurrentUser;\n }\n\n get canUpdate() {\n return this.norman?.hasLink('update');\n }\n\n remove() {\n return this.norman?.remove();\n }\n}\n","import SteveSchema from '../steve-schema';\n\n/**\n * This is the steve schema that's used for the management store\n */\nexport default class ManagementStoreSchema extends SteveSchema { }\n","import { NODE } from '@shell/config/types';\nimport { parseSi } from '@shell/utils/units';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class NodeMetric extends SteveModel {\n get cpuUsage() {\n return parseSi(this?.usage?.cpu || '0');\n }\n\n get cpuCapacity() {\n return parseSi(this.$rootGetters[`${ this.inStore }/byId`](NODE, this.id)?.status?.allocatable?.cpu || '0');\n }\n\n get cpuUsagePercentage() {\n return ((this.cpuUsage * 10000) / this.cpuCapacity).toString();\n }\n\n get memoryUsage() {\n return parseSi(this?.usage?.memory || '0');\n }\n\n get memoryCapacity() {\n return parseSi(this.$rootGetters[`${ this.inStore }/byId`](NODE, this.id)?.status?.capacity?.memory || '0');\n }\n\n get memoryUsagePercentage() {\n return ((this.ramUsage * 10000) / this.ramCapacity).toString();\n }\n\n get storageUsage() {\n return parseSi(this.$rootGetters[`${ this.inStore }/byId`](NODE, this.id)?.status?.capacity?.['ephemeral-storage']) - parseSi(this.$rootGetters[`${ this.inStore }/byId`](NODE, this.id)?.status?.allocatable?.['ephemeral-storage']);\n }\n\n get storageTotal() {\n return parseSi(this.$rootGetters[`${ this.inStore }/byId`](NODE, this.id)?.status?.capacity?.['ephemeral-storage']);\n }\n\n get inStore() {\n return this.$rootGetters['currentProduct'].inStore;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { MONITORING } from '@shell/config/types';\nimport { _YAML, _CREATE, _VIEW, _CONFIG } from '@shell/config/query-params';\nimport { set } from '@shell/utils/object';\n\nexport default class AlertmanagerConfig extends SteveModel {\n applyDefaults() {\n if (this.spec) {\n return this.spec;\n }\n const existingReceivers = this.spec?.route?.receivers || [];\n\n const defaultSpec = {\n receivers: [...existingReceivers],\n route: {\n receivers: this.spec?.route?.receivers || [],\n groupBy: this.spec?.route?.groupBy || [],\n groupWait: this.spec?.route?.groupWait || '30s',\n groupInterval: this.spec?.route?.groupInterval || '5m',\n repeatInterval: this.spec?.route?.repeatInterval || '4h',\n match: this.spec?.route?.match || {},\n matchRe: this.spec?.route?.matchRe || {}\n }\n };\n\n set(this, 'spec', defaultSpec);\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n return out;\n }\n\n getReceiverActions(alertmanagerConfigActions) {\n return alertmanagerConfigActions.filter((actionData) => {\n if (actionData.divider) {\n return true;\n }\n switch (actionData.action) {\n case 'goToEdit':\n return true;\n case 'goToEditYaml':\n return true;\n case 'promptRemove':\n return true;\n default:\n return false;\n }\n });\n }\n\n get alertmanagerConfigDoneRouteName() {\n return 'c-cluster-product-resource-namespace-id';\n }\n\n get _detailLocation() {\n return {\n name: this.alertmanagerConfigDoneRouteName,\n params: {\n cluster: this.$rootGetters['clusterId'],\n product: 'monitoring',\n resource: MONITORING.ALERTMANAGERCONFIG,\n namespace: this.metadata?.namespace,\n id: this.name,\n },\n hash: '#receivers',\n query: { as: 'config' }\n };\n }\n\n getCreateReceiverRoute() {\n return {\n name: 'c-cluster-monitoring-alertmanagerconfig-alertmanagerconfigid-receiver',\n params: {\n cluster: this.$rootGetters['clusterId'],\n alertmanagerconfigid: this.id\n },\n query: { mode: _CREATE, currentView: _CONFIG }\n };\n }\n\n getReceiverDetailLink(receiverName) {\n return {\n name: 'c-cluster-monitoring-alertmanagerconfig-alertmanagerconfigid-receiver',\n params: {\n cluster: this.$rootGetters['clusterId'],\n alertmanagerconfigid: this.id,\n receiverName\n },\n query: {\n mode: _VIEW, receiverName, currentView: _CONFIG\n }\n };\n }\n\n getEditReceiverYamlRoute(receiverName, queryMode) {\n return {\n name: 'c-cluster-monitoring-alertmanagerconfig-alertmanagerconfigid-receiver',\n params: {\n cluster: this.$rootGetters['clusterId'],\n alertmanagerconfigid: this.id\n },\n query: {\n mode: queryMode || _VIEW,\n receiverName,\n currentView: _YAML\n }\n };\n }\n\n getEditReceiverConfigRoute(receiverName, queryMode) {\n return {\n name: 'c-cluster-monitoring-alertmanagerconfig-alertmanagerconfigid-receiver',\n params: {\n cluster: this.$rootGetters['clusterId'],\n alertmanagerconfigid: this.id\n },\n query: {\n mode: queryMode || _VIEW,\n receiverName,\n currentView: _CONFIG\n }\n };\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class PodMonitor extends SteveModel {\n get _detailLocation() {\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: 'c-cluster-monitoring-monitor-namespace-id',\n params: {\n cluster: this.$rootGetters['clusterId'], id, namespace: this.metadata.namespace\n },\n query: { resource: this.type }\n };\n }\n\n get doneOverride() {\n return {\n name: 'c-cluster-monitoring-monitor',\n params: { cluster: this.$rootGetters['clusterId'] },\n query: { resource: this.type }\n };\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class PrometheusRule extends SteveModel {\n get _availableActions() {\n // the user cannot edit PrometheusRules with a \"period\" in the name because the name cannot be edited after creation and the backend will reject any name with a \"period\"\n const out = super._availableActions.filter((action) => {\n return !this.metadata.name.includes('.') || !['goToEdit', 'goToEditYaml', 'goToClone'].includes(action.action);\n });\n\n return out;\n }\n\n get customValidationRules() {\n return [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n translationKey: 'generic.name',\n type: 'dnsLabel',\n },\n {\n nullable: false,\n path: 'spec',\n required: true,\n type: 'array',\n validators: ['ruleGroups'],\n },\n {\n nullable: false,\n path: 'spec.groups',\n required: true,\n type: 'array',\n validators: ['groupsAreValid'],\n },\n ];\n }\n}\n","import { canCreate, updateConfig } from '@shell/utils/alertmanagerconfig';\nimport { isEmpty } from '@shell/utils/object';\nimport { MONITORING } from '@shell/config/types';\nimport jsyaml from 'js-yaml';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\n// i18n-uses monitoringReceiver.slack.*, monitoringReceiver.email.*, monitoringReceiver.pagerduty.*\n// i18n-uses monitoringReceiver.opsgenie.*, monitoringReceiver.webhook.*, monitoringReceiver.custom.*\nexport const RECEIVERS_TYPES = [\n {\n name: 'slack',\n label: 'monitoringReceiver.slack.label',\n title: 'monitoringReceiver.slack.title',\n info: 'monitoringReceiver.slack.info',\n key: 'slack_configs',\n logo: require(`~shell/assets/images/vendor/slack.svg`)\n },\n {\n name: 'email',\n label: 'monitoringReceiver.email.label',\n title: 'monitoringReceiver.email.title',\n key: 'email_configs',\n logo: require(`~shell/assets/images/vendor/email.svg`)\n },\n {\n name: 'pagerduty',\n label: 'monitoringReceiver.pagerduty.label',\n title: 'monitoringReceiver.pagerduty.title',\n info: 'monitoringReceiver.pagerduty.info',\n key: 'pagerduty_configs',\n logo: require(`~shell/assets/images/vendor/pagerduty.svg`)\n },\n {\n name: 'opsgenie',\n label: 'monitoringReceiver.opsgenie.label',\n title: 'monitoringReceiver.opsgenie.title',\n key: 'opsgenie_configs',\n logo: require(`~shell/assets/images/vendor/email.svg`)\n },\n {\n name: 'webhook',\n label: 'monitoringReceiver.webhook.label',\n title: 'monitoringReceiver.webhook.title',\n key: 'webhook_configs',\n logo: require(`~shell/assets/images/vendor/webhook.svg`),\n banner: 'webhook.banner',\n addButton: 'webhook.add'\n },\n {\n name: 'custom',\n label: 'monitoringReceiver.custom.label',\n title: 'monitoringReceiver.custom.title',\n info: 'monitoringReceiver.custom.info',\n key: 'webhook_configs',\n logo: require(`~shell/assets/images/vendor/custom.svg`)\n },\n];\n\nexport default class Receiver extends SteveModel {\n get removeSerially() {\n return true;\n }\n\n remove() {\n return this.updateReceivers((currentReceivers) => {\n return currentReceivers.filter((r) => r.name !== this.spec?.name);\n });\n }\n\n async save() {\n const errors = this.validationErrors(this);\n\n if (!isEmpty(errors)) {\n return Promise.reject(errors);\n }\n\n await this.updateReceivers((currentReceivers) => {\n const existingReceiver = currentReceivers.find((r) => r.name === this.spec?.name);\n\n if (existingReceiver) {\n Object.assign(existingReceiver, this.spec);\n } else {\n currentReceivers.push(this.spec);\n }\n\n return currentReceivers;\n });\n\n return {};\n }\n\n get canUpdate() {\n return this.secret.canUpdate;\n }\n\n get canCustomEdit() {\n return true;\n }\n\n get canCreate() {\n return canCreate(this.$rootGetters);\n }\n\n get canDelete() {\n return this.id !== 'null' && !this.spec.name !== 'null' && this.secret.canDelete;\n }\n\n get canViewInApi() {\n return false;\n }\n\n get canYaml() {\n return true;\n }\n\n get _detailLocation() {\n return {\n name: 'c-cluster-monitoring-route-receiver-id',\n params: { cluster: this.$rootGetters['clusterId'], id: this.id },\n query: { resource: this.type }\n };\n }\n\n get doneOverride() {\n return {\n name: 'c-cluster-monitoring-route-receiver',\n params: { cluster: this.$rootGetters['clusterId'] },\n query: { resource: this.type }\n };\n }\n\n get receiverTypes() {\n const types = RECEIVERS_TYPES\n .filter((type) => type.name !== 'custom' && this.spec[type.key]?.length > 0)\n .map((type) => this.t(type.label));\n\n const expectedKeys = RECEIVERS_TYPES.map((type) => type.key).filter((key) => key !== 'custom');\n\n expectedKeys.push('name');\n\n const customKeys = Object.keys(this.spec)\n .filter((key) => !expectedKeys.includes(key));\n\n if (customKeys.length > 0) {\n const customLabel = this.t(RECEIVERS_TYPES.find((type) => type.name === 'custom').label);\n\n types.push(customLabel);\n }\n\n return types;\n }\n\n get updateReceivers() {\n return (fn) => updateConfig(this.$dispatch, 'receivers', this.type, fn);\n }\n\n saveYaml(yaml) {\n const parsed = jsyaml.load(yaml);\n\n Object.assign(this, parsed);\n\n return this.save();\n }\n\n get customValidationRules() {\n const rules = [\n {\n nullable: false,\n path: 'spec.name',\n required: true,\n translationKey: 'monitoring.receiver.fields.name'\n },\n ];\n\n return rules;\n }\n\n get routes() {\n if (!this.$rootGetters['cluster/haveAll'](MONITORING.SPOOFED.ROUTE)) {\n throw new Error('The routes have not been loaded');\n }\n\n return this.$rootGetters['cluster/all'](MONITORING.SPOOFED.ROUTE);\n }\n\n get hasDependentRoutes() {\n return !!this.routes.find((route) => route.spec.receiver === this.id);\n }\n\n get preventDeletionMessage() {\n if (this.hasDependentRoutes) {\n return `There are still routes using this receiver. You cannot delete this receiver while it's in use.`;\n }\n\n return null;\n }\n}\n","import { DSL, IF_HAVE } from '@shell/store/type-map';\nimport { MONITORING, HELM } from '@shell/config/types';\nimport {\n STATE, NAME as NAME_COL, NAMESPACE as NAMESPACE_COL, AGE, RECEIVER_PROVIDERS, CONFIGURED_RECEIVER\n} from '@shell/config/table-headers';\nimport { getAllReceivers, getAllRoutes } from '@shell/utils/alertmanagerconfig';\n\nexport const NAME = 'monitoring';\nexport const CHART_NAME = 'rancher-monitoring';\n\nexport function init(store) {\n const {\n product,\n basicType,\n headers,\n mapType,\n spoofedType,\n virtualType,\n weightType,\n configureType,\n } = DSL(store, NAME);\n const { PROJECTHELMCHART } = HELM;\n const {\n ALERTMANAGER,\n ALERTMANAGERCONFIG,\n SERVICEMONITOR,\n PODMONITOR,\n PROMETHEUSRULE,\n PROMETHEUS,\n SPOOFED: {\n RECEIVER, RECEIVER_SPEC, RECEIVER_EMAIL, RECEIVER_SLACK, RECEIVER_WEBHOOK, RECEIVER_PAGERDUTY, RECEIVER_OPSGENIE, RECEIVER_HTTP_CONFIG, RESPONDER,\n ROUTE, ROUTE_SPEC\n }\n } = MONITORING;\n\n product({\n ifHave: IF_HAVE.V2_MONITORING, // possible RBAC issue here if mon turned on but user doesn't have view/read roles on pod monitors\n icon: 'monitoring',\n showNamespaceFilter: true,\n weight: 90,\n });\n\n virtualType({\n label: 'Monitoring',\n namespaced: false,\n name: 'monitoring-overview',\n weight: 105,\n route: { name: 'c-cluster-monitoring' },\n exact: true,\n overview: true,\n });\n\n spoofedType({\n label: 'Receivers',\n type: RECEIVER,\n schemas: [\n {\n id: RECEIVER,\n type: 'schema',\n collectionMethods: ['POST'],\n resourceFields: { spec: { type: RECEIVER_SPEC } }\n },\n {\n id: RECEIVER_SPEC,\n type: 'schema',\n resourceFields: {\n name: { type: 'string' },\n email_configs: { type: `array[${ RECEIVER_EMAIL }]` },\n slack_configs: { type: `array[${ RECEIVER_SLACK }]` },\n pagerduty_configs: { type: `array[${ RECEIVER_PAGERDUTY }]` },\n opsgenie_configs: { type: `array[${ RECEIVER_OPSGENIE }]` },\n webhook_configs: { type: `array[${ RECEIVER_WEBHOOK }]` }\n }\n },\n {\n id: RECEIVER_EMAIL,\n type: 'schema',\n resourceFields: {\n to: { type: 'string' },\n send_resolved: { type: 'boolean' },\n from: { type: 'string' },\n host: { type: 'string' },\n port: { type: 'string' },\n require_tls: { type: 'boolean' },\n auth_username: { type: 'string' },\n auth_password: { type: 'string' }\n }\n },\n {\n id: RECEIVER_SLACK,\n type: 'schema',\n resourceFields: {\n text: { type: 'string' },\n api_url: { type: 'string' },\n channel: { type: 'string' },\n http_config: { type: RECEIVER_HTTP_CONFIG },\n send_resolved: { type: 'boolean' }\n }\n },\n {\n id: RECEIVER_PAGERDUTY,\n type: 'schema',\n resourceFields: {\n routing_key: { type: 'string' },\n service_key: { type: 'string' },\n http_config: { type: RECEIVER_HTTP_CONFIG },\n send_resolved: { type: 'boolean' }\n }\n },\n {\n id: RECEIVER_OPSGENIE,\n type: 'schema',\n resourceFields: {\n api_key: { type: 'string' },\n http_config: { type: RECEIVER_HTTP_CONFIG },\n send_resolved: { type: 'boolean' },\n responders: { type: `array[${ RESPONDER }]` }\n }\n },\n {\n id: RECEIVER_WEBHOOK,\n type: 'schema',\n resourceFields: {\n url: { type: 'string' },\n http_config: { type: RECEIVER_HTTP_CONFIG },\n send_resolved: { type: 'boolean' }\n }\n },\n {\n id: RECEIVER_HTTP_CONFIG,\n type: 'schema',\n resourceFields: { proxy_url: { type: 'string' } }\n },\n {\n id: RESPONDER,\n type: 'schema',\n resourceFields: {\n type: { type: 'string' },\n id: { type: 'string' },\n name: { type: 'string' },\n username: { type: 'string' },\n\n }\n }\n ],\n getInstances: () => getAllReceivers(store.dispatch)\n });\n\n spoofedType({\n label: 'Routes',\n type: ROUTE,\n schemas: [\n {\n id: ROUTE,\n type: 'schema',\n collectionMethods: ['POST'],\n resourceFields: { spec: { type: ROUTE_SPEC } }\n },\n {\n id: ROUTE_SPEC,\n type: 'schema',\n resourceFields: {\n receiver: { type: 'string' },\n group_by: { type: 'array[string]' },\n group_wait: { type: 'string' },\n group_interval: { type: 'string' },\n repeat_interval: { type: 'string' },\n match: { type: 'map[string]' },\n match_re: { type: 'map[string]' },\n }\n },\n ],\n getInstances: () => getAllRoutes(store.dispatch)\n });\n\n virtualType({\n label: 'Routes and Receivers',\n group: 'monitoring',\n name: 'route-receiver',\n icon: 'globe',\n route: { name: 'c-cluster-monitoring-route-receiver' },\n weight: 1\n });\n\n virtualType({\n label: 'Monitors',\n group: 'monitoring',\n name: 'monitor',\n icon: 'globe',\n route: { name: 'c-cluster-monitoring-monitor' },\n weight: 1,\n });\n\n configureType('route-receiver', { showListMasthead: false });\n configureType('monitor', { showListMasthead: false });\n\n basicType([\n 'monitoring-overview',\n 'monitor',\n PROJECTHELMCHART,\n ]);\n\n basicType([\n ALERTMANAGERCONFIG,\n 'route-receiver',\n ], 'Alerting');\n\n basicType([\n PROMETHEUSRULE,\n PROMETHEUS\n ], 'Advanced');\n\n mapType(SERVICEMONITOR, store.getters['i18n/t'](`typeLabel.${ SERVICEMONITOR }`, { count: 2 }));\n mapType(PROJECTHELMCHART, store.getters['i18n/t'](`typeLabel.${ PROJECTHELMCHART }`, { count: 2 }));\n mapType(PODMONITOR, store.getters['i18n/t'](`typeLabel.${ PODMONITOR }`, { count: 2 }));\n mapType(PROMETHEUSRULE, store.getters['i18n/t'](`typeLabel.${ PROMETHEUSRULE }`, { count: 2 }));\n mapType(ALERTMANAGERCONFIG, store.getters['i18n/t'](`typeLabel.${ ALERTMANAGERCONFIG }`, { count: 2 }));\n mapType(RECEIVER, store.getters['i18n/t'](`typeLabel.${ RECEIVER }`, { count: 2 }));\n mapType(ROUTE, store.getters['i18n/t'](`typeLabel.${ ROUTE }`, { count: 2 }));\n\n configureType(PROJECTHELMCHART, { showListMasthead: false, showAge: false });\n\n weightType(ALERTMANAGERCONFIG, 2, true);\n weightType(SERVICEMONITOR, 105, true);\n weightType(PODMONITOR, 103, true);\n weightType(PROMETHEUSRULE, 102, true);\n\n headers(RECEIVER, [\n NAME_COL,\n RECEIVER_PROVIDERS\n ]);\n\n headers(ROUTE, [\n NAME_COL,\n CONFIGURED_RECEIVER\n ]);\n\n headers(ALERTMANAGER, [\n STATE,\n NAME_COL,\n {\n name: 'version',\n labelKey: 'tableHeaders.version',\n sort: 'spec.version',\n value: 'spec.version'\n },\n {\n name: 'replicas',\n labelKey: 'tableHeaders.replicas',\n value: 'spec.replicas',\n sort: 'spec.replicas',\n formatter: 'Number',\n },\n AGE\n ]);\n\n headers(ALERTMANAGERCONFIG, [\n STATE,\n NAME_COL,\n NAMESPACE_COL,\n {\n name: 'receivers',\n labelKey: 'tableHeaders.receivers',\n formatter: 'ReceiverIcons',\n value: 'name'\n },\n ]);\n\n headers(PROMETHEUS, [\n STATE,\n NAME_COL,\n {\n name: 'version',\n labelKey: 'tableHeaders.version',\n sort: 'spec.version',\n value: 'spec.version'\n },\n {\n name: 'replicas',\n labelKey: 'tableHeaders.replicas',\n value: 'spec.replicas',\n sort: 'spec.replicas',\n formatter: 'Number',\n },\n AGE\n ]);\n}\n","import { isEmpty, set } from '@shell/utils/object';\nimport { areRoutesSupportedFormat, canCreate, createDefaultRouteName, updateConfig } from '@shell/utils/alertmanagerconfig';\nimport { MONITORING } from '@shell/config/types';\nimport { NAME as MONITORING_PRODUCT } from '@shell/config/product/monitoring';\nimport jsyaml from 'js-yaml';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport const ROOT_NAME = 'root';\n\nexport default class Route extends SteveModel {\n applyDefaults() {\n const spec = this.spec || {};\n\n spec.group_by = spec.group_by || [];\n spec.group_wait = spec.group_wait || '30s';\n spec.group_interval = spec.group_interval || '5m';\n spec.repeat_interval = spec.repeat_interval || '4h';\n spec.match = spec.match || {};\n spec.match_re = spec.match || {};\n\n set(this, 'spec', spec);\n }\n\n get removeSerially() {\n return true;\n }\n\n remove() {\n return this.updateRoutes((currentRoutes) => {\n return currentRoutes.filter((route, i) => {\n return createDefaultRouteName(i) !== this.id;\n });\n });\n }\n\n async save() {\n const errors = this.validationErrors(this);\n\n if (!isEmpty(errors)) {\n return Promise.reject(errors);\n }\n\n await this.updateRoutes((currentRoutes) => {\n const existingRoute = currentRoutes.find((route, i) => {\n return createDefaultRouteName(i) === this.id;\n });\n\n if (existingRoute) {\n Object.assign(existingRoute, this.spec);\n } else {\n currentRoutes.push(this.spec);\n }\n\n return currentRoutes;\n });\n\n return {};\n }\n\n get canUpdate() {\n return this.secret.canUpdate;\n }\n\n get canCustomEdit() {\n return true;\n }\n\n get canCreate() {\n return canCreate(this.$rootGetters) && areRoutesSupportedFormat(this.secret);\n }\n\n get canDelete() {\n return !this.isRoot && this.secret.canDelete;\n }\n\n get canViewInApi() {\n return false;\n }\n\n get canYaml() {\n return areRoutesSupportedFormat(this.secret);\n }\n\n get _detailLocation() {\n return {\n name: 'c-cluster-monitoring-route-receiver-id',\n params: { cluster: this.$rootGetters['clusterId'], id: this.id },\n query: { resource: this.type }\n };\n }\n\n get doneOverride() {\n return {\n name: 'c-cluster-monitoring-route-receiver',\n params: { cluster: this.$rootGetters['clusterId'] },\n query: { resource: this.type }\n };\n }\n\n get customValidationRules() {\n const rules = [\n {\n nullable: false,\n path: 'spec.receiver',\n required: true,\n translationKey: 'monitoring.route.fields.receiver'\n },\n {\n path: 'spec.group_wait',\n validators: ['interval'],\n translationKey: 'monitoring.route.fields.groupWait'\n },\n {\n path: 'spec.group_interval',\n validators: ['interval'],\n translationKey: 'monitoring.route.fields.groupInterval'\n },\n {\n path: 'spec.repeat_interval',\n validators: ['interval'],\n translationKey: 'monitoring.route.fields.repeatInterval'\n }\n ];\n\n if (!this.isRoot) {\n rules.push({\n path: 'spec',\n validators: ['matching']\n });\n }\n\n return rules;\n }\n\n updateRoutes(fn) {\n return updateConfig(this.$dispatch, 'route.routes', this.type, fn);\n }\n\n get isRoot() {\n return this.id === ROOT_NAME;\n }\n\n saveYaml(yaml) {\n const parsed = jsyaml.load(yaml);\n\n Object.assign(this, parsed);\n\n return this.save();\n }\n\n get receiverLink() {\n return {\n text: this.spec.receiver,\n to: {\n name: 'c-cluster-product-resource-id',\n params: {\n resource: MONITORING.SPOOFED.RECEIVER, product: MONITORING_PRODUCT, id: this.spec.receiver\n }\n }\n };\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class ServiceMonitor extends SteveModel {\n get _detailLocation() {\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: 'c-cluster-monitoring-monitor-namespace-id',\n params: {\n cluster: this.$rootGetters['clusterId'], id, namespace: this.metadata.namespace\n },\n query: { resource: this.type }\n };\n }\n\n get doneOverride() {\n return {\n name: 'c-cluster-monitoring-monitor',\n params: { cluster: this.$rootGetters['clusterId'] },\n query: { resource: this.type }\n };\n }\n}\n","import { PSADimension, PSALevel, PSAMode } from '@shell/types/resources/pod-security-admission';\n\n/**\n * All the PSA labels are created with this prefix, so we can use this to identify them\n */\nexport const PSALabelPrefix = 'pod-security.kubernetes.io/';\n\n/**\n * Default modes of restrictions used for PSA\n */\nexport const PSAModes: PSAMode[] = ['enforce', 'audit', 'warn'];\n\n/**\n * Levels of restrictions for the PSA\n */\nexport const PSALevels: PSALevel[] = ['privileged', 'baseline', 'restricted'];\n\n/**\n * Used for restrictions in templates\n */\nexport const PSADimensions: PSADimension[] = ['usernames', 'runtimeClasses', 'namespaces'];\n\n/**\n * For the UI, we prefer use this value as default one\n */\nexport const PSADefaultLevel = PSALevels[0];\n\n/**\n * Default values for PSA should always be this one\n */\nexport const PSADefaultVersion = 'latest';\n\n/**\n * PSA labels for namespaces.\n * MODE must be one of `enforce`, `audit`, or `warn`.\n * LEVEL must be one of `privileged`, `baseline`, or `restricted`.\n * pod-security.kubernetes.io/<MODE>: <LEVEL>\n *\n * Optional: per-mode version label that can be used to pin the policy to the\n * version that shipped with a given Kubernetes minor version (for example v1.25).\n *\n * https://kubernetes.io/docs/concepts/security/pod-security-admission/#pod-security-admission-labels-for-namespaces\n */\nexport const PSALabelsNamespaceMode = PSAModes.reduce((acc, mode) => [\n ...acc,\n `${ PSALabelPrefix }${ mode }`,\n], [] as string[]);\n\n/**\n * PSA labels for namespaces.\n * MODE must be one of `enforce`, `audit`, or `warn`.\n * VERSION must be a valid Kubernetes minor version, or `latest`.\n * pod-security.kubernetes.io/<MODE>-version: <VERSION>\n *\n * https://kubernetes.io/docs/concepts/security/pod-security-admission/#pod-security-admission-labels-for-namespaces\n */\nexport const PSALabelsNamespaceVersion = PSAModes.reduce((acc, mode) => [\n ...acc,\n `${ PSALabelPrefix }${ mode }-version`\n], [] as string[]);\n\n/**\n * PSA labels for namespaces.\n * MODE must be one of `enforce`, `audit`, or `warn`.\n * LEVEL must be one of `privileged`, `baseline`, or `restricted`.\n * pod-security.kubernetes.io/<MODE>: <LEVEL>\n *\n * Optional: per-mode version label that can be used to pin the policy to the\n * version that shipped with a given Kubernetes minor version (for example v1.25).\n *\n * MODE must be one of `enforce`, `audit`, or `warn`.\n * VERSION must be a valid Kubernetes minor version, or `latest`.\n * pod-security.kubernetes.io/<MODE>-version: <VERSION>\n *\n * https://kubernetes.io/docs/concepts/security/pod-security-admission/#pod-security-admission-labels-for-namespaces\n */\nexport const PSALabelsNamespaces: string[] = [...PSALabelsNamespaceMode, ...PSALabelsNamespaceVersion];\n\n/**\n * Generated table of icons with or hardcoded generated PSA labels\n */\nexport const PSAIconsDisplay: Record<string, string> = Object.assign({}, ...PSALabelsNamespaces.map((psa) => ({ [psa]: 'icon-pod_security' })));\n","import { reduce, filter, keys } from 'lodash';\nimport { PSALabelPrefix, PSALabelsNamespaces } from '@shell/config/pod-security-admission';\nimport { camelToTitle } from '@shell/utils/string';\nimport { PSA } from '@shell/types/resources/pod-security-admission';\n\n/**\n * Return PSA labels present in the resource\n * @returns string[]\n */\nexport const getPSALabels = (resource: PSA): string[] => filter(keys(resource?.metadata?.labels), (key) => PSALabelsNamespaces.includes(key));\n\n/**\n * Return boolean value if the label is a PSA label\n * @returns Boolean\n */\nexport const hasPSALabels = (resource: PSA): boolean => getPSALabels(resource).length > 0;\n\n/**\n * Generate tooltips dictionary from a given PSA namespaced label pair of key and values\n */\nexport const getPSATooltipsDescription = (resource: PSA): Record<string, string> => reduce(\n resource?.metadata?.labels,\n (acc, value, key) => {\n const isPSA = PSALabelsNamespaces.includes(key);\n\n // Retrieve version from paired label ending with `-version`\n const suffix = '-version';\n const isVersionLabel = key.includes(suffix);\n const versionLabel = resource?.metadata?.labels[`${ key }${ suffix }`];\n const version = versionLabel || 'latest';\n\n // Add SPA labels and discard paired version label\n return isPSA && !isVersionLabel ? {\n ...acc,\n [key]: `${ camelToTitle(key.replace(PSALabelPrefix, '')) } ${ camelToTitle(value) } (${ version })`\n } : acc;\n },\n { }\n);\n","import SYSTEM_NAMESPACES from '@shell/config/system-namespaces';\nimport {\n PROJECT, SYSTEM_NAMESPACE, ISTIO as ISTIO_LABELS, FLEET, RESOURCE_QUOTA\n} from '@shell/config/labels-annotations';\nimport { ISTIO, MANAGEMENT } from '@shell/config/types';\n\nimport { get, set } from '@shell/utils/object';\nimport { escapeHtml } from '@shell/utils/string';\nimport { insertAt, isArray } from '@shell/utils/array';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { HARVESTER_NAME as HARVESTER } from '@shell/config/features';\nimport { hasPSALabels, getPSATooltipsDescription, getPSALabels } from '@shell/utils/pod-security-admission';\nimport { PSAIconsDisplay, PSALabelsNamespaceVersion } from '@shell/config/pod-security-admission';\n\nconst OBSCURE_NAMESPACE_PREFIX = [\n 'c-', // cluster namespace\n\n // Project namespace. When a user creates a project, Rancher creates\n // namespaces in the local cluster with the 'p-' prefix which are\n // used to manage RBAC for the project. If these namespaces are deleted,\n // role bindings can be lost and Rancher may need to be restored from\n // backup. Therefore we hide these namespaces unless the developer setting\n // is turned on from the user preferences.\n 'p-',\n\n 'user-', // user namespace\n 'local', // local namespace\n];\n\nexport default class Namespace extends SteveModel {\n applyDefaults() {\n set(this, 'disableOpenApiValidation', false);\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n insertAt(out, 0, { divider: true });\n if (this.istioInstalled) {\n insertAt(out, 0, {\n action: 'enableAutoInjection',\n label: this.t('namespace.enableAutoInjection'),\n bulkable: true,\n bulkAction: 'enableAutoInjection',\n enabled: !this.injectionEnabled,\n icon: 'icon icon-plus',\n weight: 2\n\n });\n insertAt(out, 0, {\n action: 'disableAutoInjection',\n label: this.t('namespace.disableAutoInjection'),\n bulkable: true,\n bulkAction: 'disableAutoInjection',\n enabled: this.injectionEnabled,\n icon: 'icon icon-minus',\n weight: 1,\n });\n }\n\n if (this.$rootGetters['isRancher'] && !this.$rootGetters['isSingleProduct']) {\n insertAt(out, 0, {\n action: 'move',\n label: this.t('namespace.move'),\n bulkable: true,\n bulkAction: 'move',\n enabled: true,\n icon: 'icon icon-fork',\n weight: 3,\n });\n }\n\n return out;\n }\n\n move(resources = this) {\n this.$dispatch('promptMove', resources);\n }\n\n get isSystem() {\n if ( this.metadata?.annotations?.[SYSTEM_NAMESPACE] === 'true' ) {\n return true;\n }\n\n if ( SYSTEM_NAMESPACES.includes(this.metadata.name) ) {\n return true;\n }\n\n if ( this.metadata.name.startsWith('cattle-') && this.metadata.name.endsWith('-system') ) {\n return true;\n }\n\n if ( this.project ) {\n return this.project.isSystem;\n }\n\n return false;\n }\n\n get isFleetManaged() {\n return get(this, `metadata.labels.\"${ FLEET.MANAGED }\"`) === 'true';\n }\n\n // These are namespaces that are created by rancher to serve purposes in the background but the user shouldn't have\n // to worry themselves about them.\n get isObscure() {\n return OBSCURE_NAMESPACE_PREFIX.some((prefix) => this.metadata.name.startsWith(prefix)) && this.isSystem;\n }\n\n get projectId() {\n const projectAnnotation = this.metadata?.annotations?.[PROJECT] || '';\n\n return projectAnnotation.split(':')[1] || null;\n }\n\n get project() {\n if ( !this.projectId || !this.$rootGetters['isRancher'] ) {\n return null;\n }\n\n const clusterId = this.$rootGetters['currentCluster']?.id;\n const project = this.$rootGetters['management/byId'](MANAGEMENT.PROJECT, `${ clusterId }/${ this.projectId }`);\n\n return project;\n }\n\n get groupByLabel() {\n const name = this.project?.nameDisplay;\n\n if ( name ) {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.project', { name: escapeHtml(name) });\n } else {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.notInAProject');\n }\n }\n\n get projectNameSort() {\n return this.project?.nameSort || '';\n }\n\n get istioInstalled() {\n const schema = this.$rootGetters['cluster/schemaFor'](ISTIO.GATEWAY);\n\n return !!schema;\n }\n\n get injectionEnabled() {\n return this.labels[ISTIO_LABELS.AUTO_INJECTION] === 'enabled';\n }\n\n enableAutoInjection(namespaces = this, enable = true) {\n if (!isArray(namespaces)) {\n namespaces = [namespaces];\n }\n namespaces.forEach((ns) => {\n if (!enable && ns?.metadata?.labels) {\n delete ns.metadata.labels[ISTIO_LABELS.AUTO_INJECTION];\n } else {\n if (!ns.metadata.labels) {\n ns.metadata.labels = {};\n }\n ns.metadata.labels[ISTIO_LABELS.AUTO_INJECTION] = 'enabled';\n }\n ns.save();\n });\n }\n\n disableAutoInjection(namespaces = this) {\n this.enableAutoInjection(namespaces, false);\n }\n\n get confirmRemove() {\n return true;\n }\n\n get listLocation() {\n const listLocation = { name: this.$rootGetters['isRancher'] ? 'c-cluster-product-projectsnamespaces' : 'c-cluster-product-resource' };\n\n // Harvester uses these resource directly... but has different routes. listLocation covers routes leading back to route\n if (this.$rootGetters['currentProduct'].inStore === HARVESTER) {\n listLocation.name = `${ HARVESTER }-${ listLocation.name }`.replace('-product', '');\n listLocation.params = { resource: 'namespace' };\n }\n\n return listLocation;\n }\n\n get _detailLocation() {\n const _detailLocation = super._detailLocation;\n\n return _detailLocation;\n }\n\n get parentLocationOverride() {\n return this.listLocation;\n }\n\n get doneOverride() {\n return this.listLocation;\n }\n\n get resourceQuota() {\n return JSON.parse(this.metadata.annotations[RESOURCE_QUOTA] || `{\"limit\":{}}`);\n }\n\n set resourceQuota(value) {\n this.metadata.annotations[RESOURCE_QUOTA] = JSON.stringify(value);\n }\n\n get detailTopTooltips() {\n return this.psaTooltipsDescription;\n }\n\n get detailTopIcons() {\n return PSAIconsDisplay;\n }\n\n /**\n * Check if resource contains PSA labels\n */\n get hasSystemLabels() {\n return hasPSALabels(this);\n }\n\n get filteredSystemLabels() {\n return Object.entries(this.labels).reduce((res, [key, value]) => {\n if (!PSALabelsNamespaceVersion.includes(key)) {\n res[key] = value;\n }\n\n return res;\n }, {});\n }\n\n /**\n * Generate list of present keys which can be filtered based on existing label keys and system keys\n */\n get systemLabels() {\n return getPSALabels(this);\n }\n\n get psaTooltipsDescription() {\n return getPSATooltipsDescription(this);\n }\n\n // Preserve the project label - ensures we preserve project when cloning a namespace\n cleanForNew() {\n const project = this.metadata?.labels?.[PROJECT];\n\n super.cleanForNew();\n\n if (project) {\n this.metadata = this.metadata || {};\n this.metadata.labels = this.metadata.labels || {};\n this.metadata.labels[PROJECT] = project;\n }\n }\n\n get hideDetailLocation() {\n return !!this.$rootGetters['currentProduct'].hideNamespaceLocation;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class DestinationRule extends SteveModel {\n applyDefaults() {\n this['spec'] = {\n host: '',\n subsets: [],\n trafficPolicy: {\n loadBalancer: { simple: 'ROUND_ROBIN' },\n connectionPool: {\n tcp: {},\n http: {},\n },\n outlierDetection: {},\n tls: {},\n }\n };\n }\n}\n","import { SECRET, SERVICE } from '@shell/config/types';\nimport isUrl from 'is-url';\nimport { get } from '@shell/utils/object';\nimport isEmpty from 'lodash/isEmpty';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nfunction tlsHosts(spec) {\n const tls = spec.tls || [];\n\n return tls.flatMap((tls) => tls.hosts || []);\n}\n\nfunction isTlsHost(spec, host) {\n return tlsHosts(spec).includes(host);\n}\n\nexport function ingressFullPath(resource, rule, path = {}) {\n const spec = resource.spec;\n const hostValue = rule.host || '';\n const pathValue = path.path || '';\n let protocol = '';\n\n if (hostValue) {\n protocol = isTlsHost(spec, hostValue) ? 'https://' : 'http://';\n }\n\n return `${ protocol }${ hostValue }${ pathValue }`;\n}\n\nexport default class Ingress extends SteveModel {\n get tlsHosts() {\n return tlsHosts(this.spec);\n }\n\n get isTlsHost() {\n return (host) => isTlsHost(this.spec, host);\n }\n\n targetTo(workloads, serviceName) {\n if (!serviceName) {\n return null;\n }\n\n const isTargetsWorkload = serviceName.startsWith('ingress-');\n const id = `${ this.namespace }/${ serviceName }`;\n\n if (isTargetsWorkload) {\n // Need to expose workloadId's and fetch specific ones in IngressTarget?\n const workload = workloads.find((w) => w.id === (id));\n\n return workload?.detailLocation || '';\n } else {\n return {\n name: 'c-cluster-product-resource-namespace-id',\n params: {\n resource: SERVICE,\n id: serviceName,\n namespace: this.namespace,\n }\n };\n }\n }\n\n createRulesForListPage(workloads, certificates) {\n const rules = this.spec.rules || [];\n\n return rules.flatMap((rule) => {\n const paths = rule?.http?.paths || [];\n\n return paths.map((path) => this.createPathForListPage(workloads, rule, path, certificates));\n });\n }\n\n createPathForListPage(workloads, rule, path, certificates) {\n const serviceName = get(path?.backend, this.serviceNamePath);\n const fullPath = this.fullPath(rule, path);\n\n return {\n // isUrl thinks urls which contain '*' are valid so I'm adding an additional check for '*'\n isUrl: isUrl(fullPath) && !fullPath.includes('*'),\n pathType: path.pathType,\n fullPath,\n serviceName,\n serviceTargetTo: this.targetTo(workloads, serviceName),\n certs: this.certLinks(rule, certificates),\n targetLink: this.targetLink(workloads, serviceName),\n port: get(path?.backend, this.servicePortPath)\n };\n }\n\n fullPath(rule, path) {\n return ingressFullPath(this, rule, path);\n }\n\n certLink(cert, certificates = []) {\n const secretName = cert.secretName || this.t('ingress.rulesAndCertificates.defaultCertificate');\n let to;\n\n if (cert.secretName && certificates.includes(secretName)) {\n to = {\n name: 'c-cluster-product-resource-namespace-id',\n params: {\n resource: SECRET,\n id: secretName\n }\n };\n }\n\n return {\n to,\n text: secretName,\n options: { internal: true }\n };\n }\n\n certLinks(rule, certificates) {\n const certs = this.spec.tls || [];\n const matchingCerts = certs.filter((cert) => {\n const hosts = cert.hosts || [];\n\n return hosts.includes(rule.host);\n });\n\n return matchingCerts.map((cert) => this.certLink(cert, certificates));\n }\n\n targetLink(workloads, serviceName) {\n return {\n to: this.targetTo(workloads, serviceName),\n text: serviceName,\n options: { internal: true }\n };\n }\n\n createDefaultService(workloads) {\n const backend = get(this.spec, this.defaultBackendPath);\n const serviceName = get(backend, this.serviceNamePath);\n\n if ( !serviceName ) {\n return null;\n }\n\n return {\n name: serviceName,\n targetTo: this.targetTo(workloads, serviceName)\n };\n }\n\n get cache() {\n if (!this.cacheObject) {\n this.cacheObject = {};\n }\n\n return this.cacheObject;\n }\n\n get showPathType() {\n if (!this.cache.showPathType) {\n this.cache.showPathType = this.$rootGetters['cluster/pathExistsInSchema'](this.type, 'spec.rules.http.paths.pathType');\n }\n\n return this.cache.showPathType;\n }\n\n get useNestedBackendField() {\n if (!this.cache.useNestedBackendField) {\n this.cache.useNestedBackendField = this.$rootGetters['cluster/pathExistsInSchema'](this.type, 'spec.rules.http.paths.backend.service.name');\n }\n\n return this.cache.useNestedBackendField;\n }\n\n get serviceNamePath() {\n const nestedPath = 'service.name';\n const flatPath = 'serviceName';\n\n return this.useNestedBackendField ? nestedPath : flatPath;\n }\n\n get servicePortPath() {\n const nestedPath = 'service.port.number';\n const flatPath = 'servicePort';\n\n return this.useNestedBackendField ? nestedPath : flatPath;\n }\n\n get defaultBackendPath() {\n const defaultBackend = this.$rootGetters['cluster/pathExistsInSchema'](this.type, 'spec.defaultBackend');\n\n return defaultBackend ? 'defaultBackend' : 'backend';\n }\n\n get hasDefaultBackend() {\n return !isEmpty(this.spec[this.defaultBackendPath]);\n }\n\n get details() {\n const out = this._details;\n\n if (this.spec?.ingressClassName) {\n out.push({\n label: this.t('ingress.ingressClass.label'),\n content: this.spec.ingressClassName,\n });\n }\n\n return out;\n }\n}\n","import Driver from '@shell/models/driver';\n\n/**\n * Overrides for spec.addCloudCredential\n */\nexport const CLOUD_CREDENTIAL_OVERRIDE = { nutanix: true };\n\nexport default class NodeDriver extends Driver {\n get doneRoute() {\n return 'c-cluster-manager-driver-nodedriver';\n }\n\n get _availableActions() {\n const out = [\n {\n action: 'activate',\n label: this.t('action.activate'),\n icon: 'icon icon-play',\n bulkable: true,\n bulkAction: 'activateBulk',\n enabled: !!this.actions?.activate && this.state === 'inactive',\n },\n {\n action: 'deactivate',\n label: this.t('action.deactivate'),\n icon: 'icon icon-pause',\n bulkable: true,\n bulkAction: 'deactivateBulk',\n enabled: !!this.actions?.deactivate && this.state === 'active',\n weight: -1,\n },\n { divider: true },\n {\n action: 'viewInApi',\n enabled: true,\n icon: 'icon icon-external-link',\n label: this.t('action.viewInApi'),\n },\n { divider: true },\n {\n action: 'goToEdit',\n label: this.t('action.edit'),\n icon: 'icon icon-edit',\n bulkable: false,\n enabled: !!this.links.update && !this.builtin,\n },\n {\n action: 'promptRemove',\n altAction: 'remove',\n bulkAction: 'promptRemove',\n label: this.t('action.remove'),\n bulkable: true,\n icon: 'icon icon-delete',\n enabled: !!this.links.update && !this.active,\n weight: -10,\n }\n ];\n\n return out;\n }\n\n deactivate(resources = [this]) {\n this.$dispatch('promptModal', {\n componentProps: { drivers: resources, driverType: 'nodeDrivers' },\n component: 'DeactivateDriverDialog'\n });\n }\n\n deactivateBulk(resources) {\n this.$dispatch('promptModal', {\n componentProps: { drivers: resources, driverType: 'nodeDrivers' },\n component: 'DeactivateDriverDialog'\n });\n }\n\n activate() {\n return this.$dispatch('rancher/request', {\n url: `v3/nodeDrivers/${ escape(this.id) }?action=activate`,\n method: 'post',\n }, { root: true });\n }\n\n async activateBulk(resources) {\n await Promise.all(resources.map((resource) => this.$dispatch('rancher/request', {\n url: `v3/nodeDrivers/${ escape(resource.id) }?action=activate`,\n method: 'post',\n }, { root: true }\n )));\n }\n}\n","export const VOLUME_PLUGINS = [\n {\n labelKey: 'persistentVolume.awsElasticBlockStore.label',\n value: 'awsElasticBlockStore',\n supported: true\n },\n {\n labelKey: 'persistentVolume.azureDisk.label',\n value: 'azureDisk',\n supported: true\n },\n {\n labelKey: 'persistentVolume.azureFile.label',\n value: 'azureFile',\n supported: true\n },\n {\n labelKey: 'persistentVolume.cephfs.label',\n value: 'cephfs',\n },\n {\n labelKey: 'persistentVolume.rbd.label',\n value: 'rbd',\n },\n {\n labelKey: 'persistentVolume.csi.label',\n value: 'csi',\n supported: true\n },\n {\n labelKey: 'persistentVolume.fc.label',\n value: 'fc',\n },\n {\n labelKey: 'persistentVolume.flexVolume.label',\n value: 'flexVolume',\n },\n {\n labelKey: 'persistentVolume.flocker.label',\n value: 'flocker',\n },\n {\n labelKey: 'persistentVolume.glusterfs.label',\n value: 'glusterfs',\n },\n {\n labelKey: 'persistentVolume.gcePersistentDisk.label',\n value: 'gcePersistentDisk',\n supported: true\n },\n {\n labelKey: 'persistentVolume.hostPath.label',\n value: 'hostPath',\n supported: true\n },\n {\n labelKey: 'persistentVolume.iscsi.label',\n value: 'iscsi',\n },\n {\n labelKey: 'persistentVolume.local.label',\n value: 'local',\n supported: true\n },\n {\n labelKey: 'persistentVolume.longhorn.label',\n value: 'longhorn',\n supported: true\n },\n {\n labelKey: 'persistentVolume.nfs.label',\n value: 'nfs',\n supported: true\n },\n {\n labelKey: 'persistentVolume.cinder.label',\n value: 'cinder',\n },\n {\n labelKey: 'persistentVolume.photonPersistentDisk.label',\n value: 'photonPersistentDisk',\n },\n {\n labelKey: 'persistentVolume.portworxVolume.label',\n value: 'portworxVolume',\n },\n\n {\n labelKey: 'persistentVolume.quobyte.label',\n value: 'quobyte',\n },\n\n {\n labelKey: 'persistentVolume.scaleIO.label',\n value: 'scaleIO',\n },\n {\n labelKey: 'persistentVolume.storageos.label',\n value: 'storageos',\n },\n {\n labelKey: 'persistentVolume.vsphereVolume.label',\n value: 'vsphereVolume',\n supported: true\n },\n];\n\nexport const LONGHORN_PLUGIN = VOLUME_PLUGINS.find((plugin) => plugin.value === 'longhorn');\n","import { PVC, LONGHORN_DRIVER } from '@shell/config/types';\r\nimport { VOLUME_PLUGINS } from '@shell/config/persistentVolume';\r\nimport SteveModel from '@shell/plugins/steve/steve-class';\r\n\r\nexport default class PV extends SteveModel {\r\n // plugin display value table\r\n get source() {\r\n const csiDriver = this.spec?.csi?.driver;\r\n const fallback = `${ csiDriver } ${ this.t('persistentVolume.csi.suffix') }`;\r\n\r\n if (csiDriver) {\r\n return this.$rootGetters['i18n/withFallback'](`persistentVolume.csi.drivers.${ csiDriver.replaceAll('.', '-') }`, null, fallback);\r\n }\r\n const pluginDef = VOLUME_PLUGINS.find((plugin) => this.spec[plugin.value]);\r\n\r\n if (pluginDef) {\r\n return this.t(pluginDef.labelKey);\r\n }\r\n\r\n // every source should be a csi driver or listed in VOLUME_PLUGIN but just in case..\r\n return this.t('generic.unknown');\r\n }\r\n\r\n get isLonghorn() {\r\n return this.spec.csi && this.spec.csi.driver === LONGHORN_DRIVER;\r\n }\r\n\r\n get claim() {\r\n if (!this.name) {\r\n return null;\r\n }\r\n\r\n return this.$getters['all'](PVC).find((claim) => claim.spec.volumeName === this.name);\r\n }\r\n\r\n get claimName() {\r\n return this.claim?.nameDisplay || this.t('generic.na');\r\n }\r\n\r\n get canDelete() {\r\n return this.state !== 'bound';\r\n }\r\n}\r\n","\nimport { insertAt } from '@shell/utils/array';\nimport {\n AS,\n _CLONE,\n FOCUS,\n MODE,\n _UNFLAG,\n _EDIT\n} from '@shell/config/query-params';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { STATES_ENUM } from '@shell/plugins/dashboard-store/resource-class';\nimport { STORAGE_CLASS } from '@shell/config/types';\n\nexport default class PVC extends SteveModel {\n applyDefaults(_, realMode) {\n const accessModes = realMode === _CLONE ? this.spec.accessModes : [];\n const storage = realMode === _CLONE ? this.spec.resources.requests.storage : null;\n\n this['spec'] = {\n accessModes,\n storageClassName: '',\n volumeName: '',\n resources: { requests: { storage } }\n };\n }\n\n get bound() {\n return this.state === STATES_ENUM.BOUND;\n }\n\n get expandable() {\n return !!this.$getters[`byId`](STORAGE_CLASS, this.spec?.storageClassName)?.allowVolumeExpansion;\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n // Add backwards, each one to the top\n insertAt(out, 0, { divider: true });\n insertAt(out, 0, {\n action: 'goToEditVolumeSize',\n enabled: this.expandable && this.bound,\n icon: 'icon icon-fw icon-plus',\n label: this.t('persistentVolumeClaim.expand.label'),\n });\n\n return out;\n }\n\n goToEditVolumeSize() {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _EDIT,\n [AS]: _UNFLAG,\n [FOCUS]: 'volumeclaim'\n };\n\n this.currentRouter().push(location);\n }\n}\n","import { insertAt } from '@shell/utils/array';\nimport { colorForState, stateDisplay } from '@shell/plugins/dashboard-store/resource-class';\nimport { NODE, WORKLOAD_TYPES } from '@shell/config/types';\nimport { escapeHtml, shortenedImage } from '@shell/utils/string';\nimport WorkloadService from '@shell/models/workload.service';\nimport { deleteProperty } from '@shell/utils/object';\n\nexport const WORKLOAD_PRIORITY = {\n [WORKLOAD_TYPES.DEPLOYMENT]: 1,\n [WORKLOAD_TYPES.CRON_JOB]: 2,\n [WORKLOAD_TYPES.DAEMON_SET]: 3,\n [WORKLOAD_TYPES.STATEFUL_SET]: 4,\n [WORKLOAD_TYPES.JOB]: 5,\n [WORKLOAD_TYPES.REPLICA_SET]: 6,\n [WORKLOAD_TYPES.REPLICATION_CONTROLLER]: 7,\n};\n\nexport default class Pod extends WorkloadService {\n _os = undefined;\n\n get inStore() {\n return this.$rootGetters['currentProduct'].inStore;\n }\n\n set os(operatingSystem) {\n this._os = operatingSystem;\n }\n\n get os() {\n if (this._os) {\n return this._os;\n }\n\n return this?.node?.status?.nodeInfo?.operatingSystem;\n }\n\n get node() {\n try {\n const schema = this.$store.getters[`cluster/schemaFor`](NODE);\n\n if (schema) {\n this.$dispatch(`find`, { type: NODE, id: this.spec.nodeName });\n }\n } catch {}\n\n return this.$getters['byId'](NODE, this.spec.nodeName);\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n // Add backwards, each one to the top\n insertAt(out, 0, { divider: true });\n insertAt(out, 0, this.openLogsMenuItem);\n insertAt(out, 0, this.openShellMenuItem);\n\n return out;\n }\n\n get openShellMenuItem() {\n return {\n action: 'openShell',\n enabled: !!this.links.view && this.isRunning,\n icon: 'icon icon-fw icon-chevron-right',\n label: 'Execute Shell',\n total: 1,\n };\n }\n\n get openLogsMenuItem() {\n return {\n action: 'openLogs',\n enabled: !!this.links.view,\n icon: 'icon icon-fw icon-chevron-right',\n label: 'View Logs',\n total: 1,\n };\n }\n\n get containerActions() {\n const out = [];\n\n insertAt(out, 0, this.openLogsMenuItem);\n insertAt(out, 0, this.openShellMenuItem);\n\n return out;\n }\n\n get defaultContainerName() {\n const containers = this.spec.containers;\n const desirable = containers.filter((c) => c.name !== 'istio-proxy');\n\n if ( desirable.length ) {\n return desirable[0].name;\n }\n\n return containers[0]?.name;\n }\n\n openShell(containerName = this.defaultContainerName) {\n this.$dispatch('wm/open', {\n id: `${ this.id }-shell`,\n label: this.nameDisplay,\n icon: 'terminal',\n component: 'ContainerShell',\n attrs: {\n pod: this,\n initialContainer: containerName\n }\n }, { root: true });\n }\n\n openLogs(containerName = this.defaultContainerName) {\n this.$dispatch('wm/open', {\n id: `${ this.id }-logs`,\n label: this.nameDisplay,\n icon: 'file',\n component: 'ContainerLogs',\n attrs: {\n pod: this,\n initialContainer: containerName\n }\n }, { root: true });\n }\n\n containerStateDisplay(status) {\n const state = Object.keys(status.state || {})[0];\n\n return stateDisplay(state);\n }\n\n containerStateColor(status) {\n const state = Object.keys(status.state || {})[0];\n\n return colorForState(state);\n }\n\n containerIsInit(container) {\n const { initContainers = [] } = this.spec;\n\n return initContainers.includes(container);\n }\n\n get imageNames() {\n return this.spec.containers.map((container) => shortenedImage(container.image));\n }\n\n get workloadRef() {\n const owners = this.getOwners() || [];\n const workloads = owners.filter((owner) => {\n return Object.values(WORKLOAD_TYPES).includes(owner.type);\n }).sort((a, b) => {\n // Prioritize types so that deployments come before replicasets and such.\n const ia = WORKLOAD_PRIORITY[a.type];\n const ib = WORKLOAD_PRIORITY[b.type];\n\n return ia - ib;\n });\n\n return workloads[0];\n }\n\n get ownedByWorkload() {\n return !!this.workloadRef;\n }\n\n get details() {\n const out = [\n {\n label: this.t('workload.detailTop.podIP'),\n content: this.status.podIP\n },\n ];\n\n if ( this.workloadRef ) {\n out.push({\n label: 'Workload',\n formatter: 'LinkName',\n formatterOpts: {\n value: this.workloadRef.name,\n type: this.workloadRef.type,\n namespace: this.workloadRef.namespace\n },\n content: this.workloadRef.name\n });\n }\n\n if ( this.spec.nodeName ) {\n out.push({\n label: 'Node',\n formatter: 'LinkName',\n formatterOpts: { type: NODE, value: this.spec.nodeName },\n content: this.spec.nodeName,\n });\n }\n\n return out;\n }\n\n get isRunning() {\n return this.status.phase === 'Running';\n }\n\n // Use by pod list to group the pods by node\n get groupByNode() {\n const name = this.spec?.nodeName || this.$rootGetters['i18n/t']('generic.none');\n\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.node', { name: escapeHtml(name) });\n }\n\n get restartCount() {\n if (this.status.containerStatuses) {\n return this.status?.containerStatuses[0].restartCount || 0;\n }\n\n return 0;\n }\n\n processSaveResponse(res) {\n if (res._headers && res._headers.warning) {\n const warnings = res._headers.warning.split('299') || [];\n const hasPsaWarnings = warnings.filter((warning) => warning.includes('violate PodSecurity')).length;\n\n if (hasPsaWarnings) {\n this.$dispatch('growl/warning', {\n title: this.$rootGetters['i18n/t']('growl.podSecurity.title'),\n message: this.$rootGetters['i18n/t']('growl.podSecurity.message'),\n timeout: 5000,\n }, { root: true });\n }\n }\n }\n\n save() {\n const prev = { ...this };\n\n const { metadata, spec } = this.spec.template;\n\n this.spec = {\n ...this.spec,\n ...spec\n };\n\n this.metadata = {\n ...this.metadata,\n ...metadata\n };\n\n delete this.spec.template;\n\n // IF there is an error POD world model get overwritten\n // For the workloads this need be reset back\n return this._save(...arguments).catch((e) => {\n this.spec = prev.spec;\n this.metadata = prev.metadata;\n\n return Promise.reject(e);\n });\n }\n\n cleanForSave(data) {\n const val = super.cleanForSave(data);\n\n // remove fields from containers\n val.spec?.containers?.forEach((container) => {\n this.cleanContainerForSave(container);\n });\n\n // remove fields from initContainers\n val.spec?.initContainers?.forEach((container) => {\n this.cleanContainerForSave(container);\n });\n\n // This is probably added by generic workload components that shouldn't be added to pods\n deleteProperty(val, 'spec.selector');\n\n return val;\n }\n}\n","import Identicon from 'identicon.js';\nimport { md5 } from '@shell/utils/crypto';\nimport { addParam } from '@shell/utils/url';\nimport { ucFirst } from '@shell/utils/string';\nimport NormanModel from '@shell/plugins/steve/norman-class';\n\nexport default class Principal extends NormanModel {\n get avatarSrc() {\n if ( this.provider === 'github' ) {\n return addParam(this.profilePicture, 's', 80); // Double the size it will be rendered, for @2x displays\n } else {\n let id = this.id || 'Unknown';\n\n id = id.replace(/[^:]+:\\/\\//, '');\n\n const hash = md5(id, 'hex');\n const out = `data:image/png;base64,${ new Identicon(hash, 80, 0.01).toString() }`;\n\n return out;\n }\n }\n\n get roundAvatar() {\n return this.provider === 'github';\n }\n\n get providerSpecificType() {\n const parts = this.id.replace(/:.*$/, '').split('_', 2);\n\n if ( parts.length === 2 ) {\n return parts[1];\n }\n\n return null;\n }\n\n get displayType() {\n const provider = this.$rootGetters['i18n/withFallback'](`model.authConfig.provider.\"${ this.provider }\"`, null, this.provider);\n\n return `${ provider } ${ ucFirst(this.providerSpecificType) }`;\n }\n}\n","import { MANAGEMENT, NORMAN } from '@shell/config/types';\nimport NormanModel from '@shell/plugins/steve/norman-class';\n\nexport default class PRTB extends NormanModel {\n get principalId() {\n return this.userPrincipalId || this.groupPrincipalId;\n }\n\n get roleDisplay() {\n return this.roleTemplate?.nameDisplay;\n }\n\n get roleDescription() {\n return this.roleTemplate?.description;\n }\n\n get roleTemplate() {\n return this.$rootGetters['management/byId'](MANAGEMENT.ROLE_TEMPLATE, this.roleTemplateId);\n }\n\n get steve() {\n return this.$dispatch(`management/find`, {\n type: MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING,\n id: this.id?.replace(':', '/')\n }, { root: true });\n }\n\n get syncPrincipal() {\n return this.$rootGetters['rancher/byId'](NORMAN.PRINCIPAL, this.principalId);\n }\n\n get nameDisplay() {\n return this.syncPrincipal?.nameDisplay || super.nameDisplay;\n }\n}\n","import {\n CAPI, MANAGEMENT, NAMESPACE, NORMAN, SNAPSHOT, HCI, LOCAL_CLUSTER\n} from '@shell/config/types';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { findBy } from '@shell/utils/array';\nimport { get, set } from '@shell/utils/object';\nimport { sortBy } from '@shell/utils/sort';\nimport { escapeHtml, ucFirst } from '@shell/utils/string';\nimport { compare } from '@shell/utils/version';\nimport { AS, MODE, _VIEW, _YAML } from '@shell/config/query-params';\nimport { HARVESTER_NAME as HARVESTER } from '@shell/config/features';\nimport { CAPI as CAPI_ANNOTATIONS, NODE_ARCHITECTURE } from '@shell/config/labels-annotations';\n\n/**\n * Class representing Cluster resource.\n * @extends SteveModel\n */\nexport default class ProvCluster extends SteveModel {\n get details() {\n const out = [\n {\n label: this.t('cluster.detail.provisioner'),\n content: this.provisionerDisplay || this.t('generic.none'),\n },\n {\n label: this.t('cluster.detail.machineProvider'),\n content: this.machineProvider ? this.machineProviderDisplay : null,\n },\n {\n label: this.t('cluster.detail.kubernetesVersion'),\n content: this.kubernetesVersion,\n },\n {\n label: this.t('cluster.detail.machinePools'),\n content: this.pools.length,\n },\n {\n label: this.t('cluster.detail.machines'),\n content: this.desired,\n },\n ].filter((x) => !!x.content);\n\n // RKE Template details\n const rkeTemplate = this.rkeTemplate;\n\n if (rkeTemplate) {\n out.push({\n label: this.t('cluster.detail.rkeTemplate'),\n formatter: 'RKETemplateName',\n content: rkeTemplate,\n });\n }\n\n if (!this.machineProvider) {\n out.splice(1, 1);\n\n return out;\n }\n\n return out;\n }\n\n // using this computed because on the provisioning cluster we are\n // displaying the oldest age between provisioning.cluster and management.cluster\n // so that on a version upgrade of Rancher (ex: 2.5.x to 2.6.x)\n // we can have the correct age of the cluster displayed on the UI side\n get creationTimestamp() {\n const provCreationTimestamp = Date.parse(this.metadata?.creationTimestamp);\n const mgmtCreationTimestamp = Date.parse(this.mgmt?.metadata?.creationTimestamp);\n\n if (mgmtCreationTimestamp && mgmtCreationTimestamp < provCreationTimestamp) {\n return this.mgmt?.metadata?.creationTimestamp;\n }\n\n return super.creationTimestamp;\n }\n\n // Models can specify a single action that will be shown as a button in the details masthead\n get detailsAction() {\n const canExplore = this.mgmt?.isReady && !this.hasError;\n\n return {\n action: 'explore',\n label: this.$rootGetters['i18n/t']('cluster.explore'),\n enabled: canExplore,\n };\n }\n\n get _availableActions() {\n const out = super._availableActions;\n const isLocal = this.mgmt?.isLocal;\n\n // Don't let the user delete the local cluster from the UI\n if (isLocal) {\n const remove = out.findIndex((a) => a.action === 'promptRemove');\n\n if (remove > -1) {\n out.splice(remove, 1);\n }\n }\n const ready = this.mgmt?.isReady;\n\n const canEditRKE2cluster = this.isRke2 && ready && this.canUpdate;\n\n const canSnapshot = ready && ((this.isRke2 && this.canUpdate) || (this.isRke1 && this.mgmt?.hasAction('backupEtcd')));\n\n const clusterTemplatesSchema = this.$getters['schemaFor']('management.cattle.io.clustertemplate');\n let canUpdateClusterTemplate = false;\n\n if (clusterTemplatesSchema && (clusterTemplatesSchema.resourceMethods?.includes('blocked-PUT') || clusterTemplatesSchema.resourceMethods?.includes('PUT'))) {\n canUpdateClusterTemplate = true;\n }\n\n const normanClusterSaveTemplateAction = !!this.normanCluster?.actions?.saveAsTemplate;\n\n const canSaveRKETemplate = this.isRke1 && this.mgmt?.status?.driver === 'rancherKubernetesEngine' && !this.mgmt?.spec?.clusterTemplateName && this.hasLink('update') && canUpdateClusterTemplate && normanClusterSaveTemplateAction;\n\n const actions = [\n // Note: Actions are not supported in the Steve API, so we check\n // available actions for RKE1 clusters, but not RKE2 clusters.\n {\n action: 'openShell',\n label: this.$rootGetters['i18n/t']('nav.shell'),\n icon: 'icon icon-terminal',\n enabled: !!this.mgmt?.links.shell && ready,\n }, {\n action: 'downloadKubeConfig',\n bulkAction: 'downloadKubeConfigBulk',\n label: this.$rootGetters['i18n/t']('nav.kubeconfig.download'),\n icon: 'icon icon-download',\n bulkable: true,\n enabled: this.mgmt?.hasAction('generateKubeconfig'),\n }, {\n action: 'copyKubeConfig',\n label: this.t('cluster.copyConfig'),\n bulkable: false,\n enabled: this.mgmt?.hasAction('generateKubeconfig'),\n icon: 'icon icon-copy',\n }, {\n action: 'snapshotAction',\n label: this.$rootGetters['i18n/t']('nav.takeSnapshot'),\n icon: 'icon icon-snapshot',\n bulkAction: 'snapshotBulk',\n bulkable: true,\n enabled: canSnapshot,\n }, {\n action: 'restoreSnapshotAction',\n label: this.$rootGetters['i18n/t']('nav.restoreSnapshot'),\n icon: 'icon icon-fw icon-backup-restore',\n enabled: canSnapshot,\n }, {\n action: 'rotateCertificates',\n label: this.$rootGetters['i18n/t']('nav.rotateCertificates'),\n icon: 'icon icon-backup',\n enabled: canEditRKE2cluster || (this.mgmt?.hasAction('rotateCertificates') && ready),\n }, {\n action: 'rotateEncryptionKey',\n label: this.$rootGetters['i18n/t']('nav.rotateEncryptionKeys'),\n icon: 'icon icon-refresh',\n enabled: canEditRKE2cluster || (this.isRke1 && this.mgmt?.hasAction('rotateEncryptionKey') && ready)\n }, {\n action: 'saveAsRKETemplate',\n label: this.$rootGetters['i18n/t']('nav.saveAsRKETemplate'),\n icon: 'icon icon-folder',\n enabled: canSaveRKETemplate,\n }, { divider: true }];\n\n // Harvester Cluster 1:1 Harvester Cloud Cred\n if (this.cloudCredential?.canRenew || this.cloudCredential?.canBulkRenew) {\n out.splice(0, 0, { divider: true });\n out.splice(0, 0, {\n action: 'renew',\n enabled: this.cloudCredential?.canRenew,\n bulkable: this.cloudCredential?.canBulkRenew,\n bulkAction: 'renewBulk',\n icon: 'icon icon-fw icon-refresh',\n label: this.$rootGetters['i18n/t']('cluster.cloudCredentials.renew'),\n });\n }\n\n const all = actions.concat(out);\n\n // If we have a helper that wants to modify the available actions, let it do it\n if (this.customProvisionerHelper?.availableActions) {\n // Provider can either modify the provided list or return one of its own\n return this.customProvisionerHelper?.availableActions(this, all) || all;\n }\n\n return all;\n }\n\n get normanCluster() {\n const name = this.status?.clusterName;\n\n if ( !name ) {\n return null;\n }\n\n const out = this.$rootGetters['rancher/byId'](NORMAN.CLUSTER, name);\n\n return out;\n }\n\n async findNormanCluster() {\n const name = this.status?.clusterName;\n\n if ( !name ) {\n return null;\n }\n\n return await this.$dispatch('rancher/find', { type: NORMAN.CLUSTER, id: name }, { root: true });\n }\n\n explore() {\n const location = {\n name: 'c-cluster',\n params: { cluster: this.mgmt.id }\n };\n\n this.currentRouter().push(location);\n }\n\n async goToHarvesterCluster() {\n const harvesterCluster = await this.$dispatch('create', {\n ...this,\n type: HCI.CLUSTER\n });\n\n try {\n await harvesterCluster.goToCluster();\n } catch {\n }\n }\n\n goToViewYaml() {\n let location;\n\n if ( !this.isRke2 ) {\n location = this.mgmt?.detailLocation;\n }\n\n if ( !location ) {\n location = this.detailLocation;\n }\n\n location.query = {\n ...location.query,\n [MODE]: _VIEW,\n [AS]: _YAML\n };\n\n this.currentRouter().push(location);\n }\n\n get canDelete() {\n return super.canDelete && this.stateObj?.name !== 'removing';\n }\n\n get canEditYaml() {\n if (!this.isRke2) {\n return false;\n }\n\n return super.canEditYaml;\n }\n\n get isHostedKubernetesProvider() {\n const providers = ['AKS', 'EKS', 'GKE'];\n\n return providers.includes(this.provisioner);\n }\n\n get isPrivateHostedProvider() {\n if (this.isHostedKubernetesProvider && this.mgmt && this.provisioner) {\n switch (this.provisioner.toLowerCase()) {\n case 'gke':\n return this.mgmt.spec?.gkeConfig?.privateClusterConfig?.enablePrivateEndpoint;\n case 'eks':\n return this.mgmt.spec?.eksConfig?.privateAccess;\n case 'aks':\n return this.mgmt.spec?.aksConfig?.privateCluster;\n }\n }\n\n return false;\n }\n\n get isLocal() {\n return this.mgmt?.isLocal;\n }\n\n get isImported() {\n if (this.isLocal) {\n return false;\n }\n\n // imported rke2 and k3s have status.driver === rke2 and k3s respectively\n // Provisioned rke2 and k3s have status.driver === imported\n if (this.mgmt?.status?.provider === 'k3s' || this.mgmt?.status?.provider === 'rke2') {\n return this.mgmt?.status?.driver === this.mgmt?.status?.provider;\n }\n\n // imported KEv2\n // we can't rely on this.provisioner to determine imported-ness for these clusters, as it will return 'aks' 'eks' 'gke' for both provisioned and imported clusters\n const kontainerConfigs = ['aksConfig', 'eksConfig', 'gkeConfig'];\n\n const isImportedKontainer = kontainerConfigs.filter((key) => {\n return this.mgmt?.spec?.[key]?.imported === true;\n }).length;\n\n if (isImportedKontainer) {\n return true;\n }\n\n return this.provisioner === 'imported';\n }\n\n get isCustom() {\n if ( this.isRke2 ) {\n return !(this.spec?.rkeConfig?.machinePools?.length);\n }\n\n if ( this.isRke1 ) {\n return !this.pools?.length;\n }\n\n return false;\n }\n\n get confirmRemove() {\n return true;\n }\n\n get isImportedK3s() {\n return this.isImported && this.isK3s;\n }\n\n get isImportedRke2() {\n return this.isImported && this.mgmt?.status?.provider?.startsWith('rke2');\n }\n\n get isK3s() {\n return this.mgmt?.status ? this.mgmt?.status.provider === 'k3s' : (this.spec?.kubernetesVersion || '').includes('k3s') ;\n }\n\n get isRke2() {\n return !!this.spec?.rkeConfig;\n }\n\n get isRke1() {\n // rancherKubernetesEngineConfig is not defined on imported RKE1 clusters\n return !!this.mgmt?.spec?.rancherKubernetesEngineConfig || this.mgmt?.labels['provider.cattle.io'] === 'rke';\n }\n\n get isHarvester() {\n return !!this.mgmt?.isHarvester;\n }\n\n get mgmtClusterId() {\n return this.status?.clusterName;\n }\n\n get mgmt() {\n return this.$rootGetters['management/byId'](MANAGEMENT.CLUSTER, this.mgmtClusterId);\n }\n\n get isReady() {\n return !!this.mgmt?.isReady;\n }\n\n // nodeGroups can be undefined for an EKS cluster that has just been created and has not\n // had any node groups added to it\n get eksNodeGroups() {\n return this.mgmt?.spec?.eksConfig?.nodeGroups || [];\n }\n\n waitForProvisioner(timeout, interval) {\n return this.waitForTestFn(() => {\n return !!this.provisioner;\n }, `set provisioner`, timeout, interval);\n }\n\n waitForMgmt(timeout = 60000, interval) {\n return this.waitForTestFn(() => {\n // `this` instance isn't getting updated with `status.clusterName`\n // Workaround - Get fresh copy from the store\n const pCluster = this.$rootGetters['management/byId'](CAPI.RANCHER_CLUSTER, this.id);\n const name = this.status?.clusterName || pCluster?.status?.clusterName;\n\n return name && !!this.$rootGetters['management/byId'](MANAGEMENT.CLUSTER, name);\n }, this.$rootGetters['i18n/t']('cluster.managementTimeout'), timeout, interval);\n }\n\n get provisioner() {\n if ( this.isRke2 ) {\n const allKeys = Object.keys(this.spec);\n const configKey = allKeys.find( (k) => k.endsWith('Config'));\n\n if ( configKey === 'rkeConfig') {\n return 'rke2';\n } else if ( configKey ) {\n return configKey.replace(/config$/i, '');\n }\n } else if ( this.mgmt ) {\n return this.mgmt.provisioner;\n }\n\n return null;\n }\n\n get provisionerDisplay() {\n // Allow a model extension to override the display of the provisioner\n if (this.customProvisionerHelper?.provisionerDisplay) {\n return this.customProvisionerHelper?.provisionerDisplay(this);\n }\n\n let provisioner = (this.provisioner || '').toLowerCase();\n\n // RKE provisioner can actually do K3s too...\n if ( provisioner === 'rke2' && this.spec?.kubernetesVersion?.includes('k3s') ) {\n provisioner = 'k3s';\n } else if ( this.isImportedK3s ) {\n provisioner = 'k3s';\n } else if ( this.isImportedRke2 ) {\n provisioner = 'rke2';\n } else if ((this.isImported || this.isLocal) && this.isRke1) {\n provisioner = 'rke';\n }\n\n return this.$rootGetters['i18n/withFallback'](`cluster.provider.\"${ provisioner }\"`, null, ucFirst(provisioner));\n }\n\n get providerLogo() {\n return this.mgmt?.providerLogo;\n }\n\n get nodesArchitecture() {\n const obj = {};\n\n this.nodes?.forEach((node) => {\n if (!node.metadata?.state?.transitioning) {\n const architecture = node.status?.nodeLabels?.[NODE_ARCHITECTURE];\n\n const key = architecture || this.t('cluster.architecture.label.unknown');\n\n obj[key] = (obj[key] || 0) + 1;\n }\n });\n\n return obj;\n }\n\n get architecture() {\n const keys = Object.keys(this.nodesArchitecture);\n\n switch (keys.length) {\n case 0:\n return { label: this.t('generic.provisioning') };\n case 1:\n return { label: keys[0] };\n default:\n return {\n label: this.t('cluster.architecture.label.mixed'),\n tooltip: keys.reduce((acc, k) => `${ acc }${ k }: ${ this.nodesArchitecture[k] }<br>`, '')\n };\n }\n }\n\n get kubernetesVersion() {\n const unknown = this.$rootGetters['i18n/t']('generic.unknown');\n\n if ( this.isRke2 ) {\n const fromStatus = this.status?.version?.gitVersion;\n const fromSpec = this.spec?.kubernetesVersion;\n\n return fromStatus || fromSpec || unknown;\n } else if ( this.mgmt ) {\n return this.mgmt.kubernetesVersion || unknown;\n } else {\n return unknown;\n }\n }\n\n get machineProvider() {\n // First check annotation - useful for clusters created by extension providers\n const fromAnnotation = this.annotations?.[CAPI_ANNOTATIONS.UI_CUSTOM_PROVIDER];\n\n if (fromAnnotation) {\n return fromAnnotation;\n }\n\n if (this.isHarvester) {\n return HARVESTER;\n } else if ( this.isImported ) {\n return null;\n } else if ( this.isRke2 ) {\n const kind = this.spec?.rkeConfig?.machinePools?.[0]?.machineConfigRef?.kind?.toLowerCase();\n\n if ( kind ) {\n return kind.replace(/config$/i, '').toLowerCase();\n }\n\n return null;\n } else if ( this.mgmt?.machineProvider ) {\n return this.mgmt.machineProvider.toLowerCase();\n }\n\n return null;\n }\n\n get machineProviderDisplay() {\n if (this.customProvisionerHelper?.machineProviderDisplay) {\n return this.customProvisionerHelper?.machineProviderDisplay(this);\n }\n\n if ( this.isImported ) {\n return null;\n }\n\n const provider = (this.machineProvider || '').toLowerCase();\n\n if ( provider ) {\n return this.$rootGetters['i18n/withFallback'](`cluster.provider.\"${ provider }\"`, null, provider);\n } else {\n return this.$rootGetters['i18n/t']('generic.unknown');\n }\n }\n\n get machinePoolDefaults() {\n return this.spec.rkeConfig?.machinePoolDefaults;\n }\n\n set defaultHostnameLengthLimit(value) {\n this.spec.rkeConfig = this.spec.rkeConfig || {};\n this.spec.rkeConfig.machinePoolDefaults = this.spec.rkeConfig.machinePoolDefaults || {};\n this.spec.rkeConfig.machinePoolDefaults.hostnameLengthLimit = value;\n }\n\n get defaultHostnameLengthLimit() {\n return this.spec.rkeConfig?.machinePoolDefaults?.hostnameLengthLimit;\n }\n\n removeDefaultHostnameLengthLimit() {\n if (this.machinePoolDefaults?.hostnameLengthLimit) {\n delete this.spec.rkeConfig.machinePoolDefaults.hostnameLengthLimit;\n\n if (Object.keys(this.spec?.rkeConfig?.machinePoolDefaults).length === 0) {\n delete this.spec.rkeConfig.machinePoolDefaults;\n }\n }\n }\n\n get nodes() {\n return this.$rootGetters['management/all'](MANAGEMENT.NODE).filter((node) => node.id.startsWith(this.mgmtClusterId));\n }\n\n get machines() {\n return this.$rootGetters['management/all'](CAPI.MACHINE).filter((machine) => {\n if ( machine.metadata?.namespace !== this.metadata.namespace ) {\n return false;\n }\n\n return machine.spec?.clusterName === this.metadata.name;\n });\n }\n\n get displayName() {\n if ( this.mgmt && !this.isRke2 ) {\n return this.mgmt.spec.displayName;\n }\n\n return null;\n }\n\n get pools() {\n const deployments = this.$rootGetters['management/all'](CAPI.MACHINE_DEPLOYMENT).filter((pool) => pool.spec?.clusterName === this.metadata.name);\n\n if (!!deployments.length) {\n return deployments;\n }\n\n return this.$rootGetters['management/all'](MANAGEMENT.NODE_POOL).filter((pool) => pool.spec.clusterName === this.status?.clusterName);\n }\n\n get desired() {\n return this.pools.reduce((acc, pool) => acc + (pool.desired || 0), 0);\n }\n\n get pending() {\n return this.pools.reduce((acc, pool) => acc + (pool.pending || 0), 0);\n }\n\n get outdated() {\n return this.pools.reduce((acc, pool) => acc + (pool.outdated || 0), 0);\n }\n\n get ready() {\n return this.pools.reduce((acc, pool) => acc + (pool.ready || 0), 0);\n }\n\n get unavailable() {\n return this.pools.reduce((acc, pool) => acc + (pool.unavailable || 0), 0);\n }\n\n get unavailableMachines() {\n if (this.isReady) {\n if (this.isRke1) {\n const names = this.nodes.filter((node) => {\n return node.status.conditions.find((c) => c.error && c.type === 'Ready');\n }).map((node) => {\n const name = node.status.nodeName || node.metadata.name;\n\n return this.t('cluster.availabilityWarnings.node', { name });\n });\n\n return names.join('<br>');\n } else {\n const names = this.machines.filter((machine) => {\n return machine.status?.conditions?.find((c) => c.error && c.type === 'NodeHealthy');\n }).map((machine) => {\n if (machine.status?.nodeRef?.name) {\n return this.t('cluster.availabilityWarnings.node', { name: machine.status.nodeRef.name });\n }\n\n return this.t('cluster.availabilityWarnings.machine', { name: machine.metadata.name });\n });\n\n return names.join('<br>');\n }\n }\n\n return '';\n }\n\n get stateParts() {\n const out = [\n {\n label: 'Pending',\n color: 'bg-info',\n textColor: 'text-info',\n value: this.pending,\n sort: 1,\n },\n {\n label: 'Outdated',\n color: 'bg-warning',\n textColor: 'text-warning',\n value: this.outdated,\n sort: 2,\n },\n {\n label: 'Unavailable',\n color: 'bg-error',\n textColor: 'text-error',\n value: this.unavailable,\n sort: 3,\n },\n {\n label: 'Ready',\n color: 'bg-success',\n textColor: 'text-success',\n value: this.ready,\n sort: 4,\n },\n ].filter((x) => x.value > 0);\n\n return sortBy(out, 'sort:desc');\n }\n\n async getOrCreateToken() {\n await this.waitForMgmt();\n\n if ( !this.mgmt ) {\n return;\n }\n\n const tokens = await this.$dispatch('rancher/findAll', { type: NORMAN.CLUSTER_TOKEN, force: true }, { root: true });\n\n let token = findBy(tokens, 'clusterId', this.mgmt.id);\n\n if ( token ) {\n return token;\n }\n\n if ( !this.links.update ) {\n return;\n }\n\n token = await this.$dispatch('rancher/create', {\n type: NORMAN.CLUSTER_TOKEN,\n clusterId: this.mgmt.id\n }, { root: true });\n\n return token.save();\n }\n\n openShell() {\n return this.mgmt?.openShell();\n }\n\n generateKubeConfig() {\n return this.mgmt?.generateKubeConfig();\n }\n\n async copyKubeConfig() {\n await this.mgmt?.copyKubeConfig();\n\n this.$dispatch('growl/success', {\n title: this.t('cluster.copiedConfig'),\n timeout: 3000,\n }, { root: true });\n }\n\n downloadKubeConfig() {\n return this.mgmt?.downloadKubeConfig();\n }\n\n downloadKubeConfigBulk(items) {\n return this.mgmt?.downloadKubeConfigBulk(items);\n }\n\n async snapshotAction() {\n try {\n await this.takeSnapshot();\n this.$dispatch('growl/success', {\n title: this.$rootGetters['i18n/t']('cluster.snapshot.successTitle', { name: this.nameDisplay }),\n message: this.$rootGetters['i18n/t']('cluster.snapshot.successMessage', { name: this.nameDisplay })\n }, { root: true });\n } catch (err) {\n this.$dispatch('growl/fromError', {\n title: this.$rootGetters['i18n/t']('cluster.snapshot.errorTitle', { name: this.nameDisplay }),\n err,\n }, { root: true });\n }\n }\n\n async snapshotBulk(items) {\n const res = await Promise.allSettled(items.map((row) => {\n return row.takeSnapshot();\n }));\n\n const successful = res.filter( (x) => x.status === 'fulfilled').length;\n\n if ( successful ) {\n this.$dispatch('growl/success', {\n title: this.$rootGetters['i18n/t']('cluster.snapshot.bulkSuccessTitle'),\n message: this.$rootGetters['i18n/t']('cluster.snapshot.bulkSuccessMessage', { count: successful })\n }, { root: true });\n }\n\n for ( let i = 0 ; i < res.length ; i++ ) {\n if ( res[i].status !== 'fulfilled' ) {\n this.$dispatch('growl/fromError', {\n title: this.$rootGetters['i18n/t']('cluster.snapshot.errorTitle', { name: items[i].nameDisplay }),\n err: res[i].value,\n }, { root: true });\n }\n }\n }\n\n takeSnapshot() {\n if ( this.isRke1 ) {\n return this.$dispatch('rancher/request', {\n url: `/v3/clusters/${ escape(this.mgmt.id) }?action=backupEtcd`,\n method: 'post',\n }, { root: true });\n } else {\n const now = this.spec?.rkeConfig?.etcdSnapshotCreate?.generation || 0;\n const args = { generation: now + 1 };\n\n if ( this.spec?.rkeConfig?.etcd?.s3 ) {\n args.s3 = this.spec.rkeConfig.etcd.s3;\n }\n\n set(this.spec.rkeConfig, 'etcdSnapshotCreate', args);\n\n return this.save();\n }\n }\n\n get etcdSnapshots() {\n const allSnapshots = this.$rootGetters['management/all']({ type: SNAPSHOT });\n\n return allSnapshots\n .filter((s) => s.metadata.namespace === this.namespace && s.clusterName === this.name );\n }\n\n restoreSnapshotAction(resource = this) {\n this.$dispatch('promptRestore', [resource]);\n }\n\n saveAsRKETemplate(cluster = this) {\n this.$dispatch('promptModal', {\n componentProps: { cluster },\n component: 'SaveAsRKETemplateDialog'\n });\n }\n\n rotateCertificates(cluster = this) {\n this.$dispatch('promptModal', {\n componentProps: { cluster },\n\n component: 'RotateCertificatesDialog'\n });\n }\n\n rotateEncryptionKey(cluster = this) {\n this.$dispatch('promptModal', {\n componentProps: { cluster },\n component: 'RotateEncryptionKeyDialog'\n });\n }\n\n get stateObj() {\n return this._stateObj;\n }\n\n get rkeTemplate() {\n if (!this.isRke1 || !this.mgmt) {\n // Not an RKE! cluster or no management cluster available\n return false;\n }\n\n if (!this.mgmt.spec?.clusterTemplateRevisionName) {\n // Cluster does not use an RKE template\n return false;\n }\n\n const clusterTemplateName = this.mgmt.spec.clusterTemplateName.replace(':', '/');\n const clusterTemplateRevisionName = this.mgmt.spec.clusterTemplateRevisionName.replace(':', '/');\n const template = this.$rootGetters['management/all'](MANAGEMENT.RKE_TEMPLATE).find((t) => t.id === clusterTemplateName);\n const revision = this.$rootGetters['management/all'](MANAGEMENT.RKE_TEMPLATE_REVISION).find((t) => t.spec.enabled && t.id === clusterTemplateRevisionName);\n\n if (!template || !revision) {\n return false;\n }\n\n return {\n displayName: `${ template.spec?.displayName }/${ revision.spec?.displayName }`,\n upgrade: this.rkeTemplateUpgrade,\n template,\n revision,\n };\n }\n\n get rkeTemplateUpgrade() {\n if (!this.isRke1 || !this.mgmt) {\n // Not an RKE! cluster or no management cluster available\n return false;\n }\n\n if (!this.mgmt.spec?.clusterTemplateRevisionName) {\n // Cluster does not use an RKE template\n return false;\n }\n\n const clusterTemplateRevisionName = this.mgmt.spec.clusterTemplateRevisionName.replace(':', '/');\n\n // Get all of the template revisions for this template\n const revisions = this.$rootGetters['management/all'](MANAGEMENT.RKE_TEMPLATE_REVISION).filter((t) => t.spec.enabled && t.spec.clusterTemplateName === this.mgmt.spec.clusterTemplateName);\n\n if (revisions.length <= 1) {\n // Only one template revision\n return false;\n }\n\n revisions.sort((a, b) => {\n return parseInt(a.metadata.resourceVersion, 10) - parseInt(b.metadata.resourceVersion, 10);\n }).reverse();\n\n return revisions[0].id !== clusterTemplateRevisionName ? revisions[0].spec?.displayName : false;\n }\n\n get _stateObj() {\n if (!this.isRke2) {\n return this.mgmt?.stateObj || this.metadata?.state;\n }\n\n return this.metadata?.state;\n }\n\n get supportsWindows() {\n if (this.isK3s || this.isImportedK3s) {\n return false;\n }\n\n if ( this.isRke1 ) {\n return this.mgmt?.spec?.windowsPreferedCluster || false;\n }\n\n if ( !this.isRke2 ) {\n return false;\n }\n\n if ( !this.kubernetesVersion || compare(this.kubernetesVersion, 'v1.21.0') < 0 ) {\n return false;\n }\n\n const cni = this.spec?.rkeConfig?.machineGlobalConfig?.cni;\n\n if ( cni && cni !== 'calico' ) {\n return false;\n }\n\n return true;\n }\n\n get customValidationRules() {\n return [\n {\n path: 'metadata.name',\n translationKey: 'cluster.name.label',\n validators: [`clusterName:${ this.isRke2 }`],\n maxLength: 63,\n },\n ];\n }\n\n get agentConfig() {\n // The one we want is the first one with no selector.\n // If there are multiple with no selector, that will fall under the unsupported message below.\n return this.spec.rkeConfig?.machineSelectorConfig\n ?.find((x) => !x.machineLabelSelector)?.config || { };\n }\n\n get cloudProvider() {\n return this.agentConfig?.['cloud-provider-name'];\n }\n\n get canClone() {\n return false;\n }\n\n async remove(opt = {}) {\n if ( !opt.url ) {\n opt.url = (this.links || {})['self'];\n }\n\n opt.method = 'delete';\n\n const res = await this.$dispatch('request', opt);\n\n const pool = (this.spec?.rkeConfig?.machinePools || [])[0];\n\n if (pool?.machineConfigRef?.kind === 'HarvesterConfig') {\n const cloudCredentialSecretName = this.spec.cloudCredentialSecretName;\n\n await this.$dispatch('rancher/findAll', { type: NORMAN.CLOUD_CREDENTIAL }, { root: true });\n\n const credential = this.$rootGetters['rancher/byId'](NORMAN.CLOUD_CREDENTIAL, cloudCredentialSecretName);\n\n if (credential) {\n const harvesterClusterId = get(credential, 'decodedData.clusterId');\n\n try {\n const poolConfig = await this.$dispatch('management/find', {\n type: `${ CAPI.MACHINE_CONFIG_GROUP }.${ (pool?.machineConfigRef?.kind || '').toLowerCase() }`,\n id: `${ this.metadata.namespace }/${ pool?.machineConfigRef?.name }`,\n }, { root: true });\n\n await this.$dispatch('management/request', {\n url: `/k8s/clusters/${ harvesterClusterId }/v1/harvester/serviceaccounts/${ poolConfig.vmNamespace }/${ this.metadata.name }`,\n method: 'DELETE',\n }, { root: true });\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n }\n\n if ( res?._status === 204 ) {\n await this.$dispatch('ws.resource.remove', { data: this });\n }\n\n // If this cluster has a custom provisioner, allow it to do custom deletion\n if (this.customProvisionerHelper?.postDelete) {\n return this.customProvisionerHelper?.postDelete(this);\n }\n }\n\n /**\n * Get the custom provisioner helper for this model\n */\n get customProvisionerHelper() {\n // Find the first model extension that says it can be used for this model\n return this.modelExtensions.find((modelExt) => modelExt.useFor ? modelExt.useFor(this) : false);\n }\n\n get groupByParent() {\n // Customer helper can report if the cluster has a parent cluster\n return this.customProvisionerHelper?.parentCluster?.(this);\n }\n\n get groupByLabel() {\n const name = this.groupByParent;\n\n if (name) {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.cluster', { name: escapeHtml(name) });\n } else {\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.notInACluster');\n }\n }\n\n get hasError() {\n // Before we were just checking for this.status?.conditions?.some((condition) => condition.error === true)\n // but this is wrong as an error might exist but it might not be meaningful in the context of readiness of a cluster\n // which is what this 'hasError' is used for.\n // We now check if there's a ready condition after an error, which helps dictate the readiness of a cluster\n // Based on the findings in https://github.com/rancher/dashboard/issues/10043\n if (this.status?.conditions && this.status?.conditions.length) {\n // if there are errors, we compare with how recent the \"Ready\" condition is compared to that error, otherwise we just move on\n if (this.status?.conditions.some((c) => c.error === true)) {\n // there's no ready condition and has an error, mark it\n if (!this.status?.conditions.some((c) => c.type === 'Ready')) {\n return true;\n }\n\n const filteredConditions = this.status?.conditions.filter((c) => c.error === true || c.type === 'Ready');\n const mostRecentCondition = filteredConditions.reduce((a, b) => ((a.lastUpdateTime > b.lastUpdateTime) ? a : b));\n\n return mostRecentCondition.error;\n }\n }\n\n return false;\n }\n\n get namespaceLocation() {\n const localCluster = this.$rootGetters['management/byId'](MANAGEMENT.CLUSTER, LOCAL_CLUSTER);\n\n if (localCluster) {\n return {\n name: 'c-cluster-product-resource-id',\n params: {\n cluster: localCluster.id,\n product: this.$rootGetters['productId'],\n resource: NAMESPACE,\n id: this.namespace\n }\n };\n }\n\n return null;\n }\n\n // JSON Paths that should be folded in the YAML editor by default\n get yamlFolding() {\n return [\n 'spec.rkeConfig.machinePools.dynamicSchemaSpec',\n ];\n }\n\n get description() {\n return super.description || this.mgmt?.description;\n }\n\n renew() {\n return this.cloudCredential?.renew();\n }\n\n renewBulk(clusters = []) {\n // In theory we don't need to filter by cloudCred, but do so for safety\n const cloudCredentials = clusters.filter((c) => c.cloudCredential).map((c) => c.cloudCredential);\n\n return this.cloudCredential?.renewBulk(cloudCredentials);\n }\n\n get cloudCredential() {\n return this.$rootGetters['rancher/all'](NORMAN.CLOUD_CREDENTIAL).find((cc) => cc.id === this.spec.cloudCredentialSecretName);\n }\n\n get cloudCredentialWarning() {\n const expireData = this.cloudCredential?.expireData;\n\n return expireData?.expired || expireData?.expiring;\n }\n}\n","import { CATTLE_API_GROUP, SUBTYPE_MAPPING } from '@shell/models/management.cattle.io.roletemplate';\nimport { uniq } from '@shell/utils/array';\nimport Role from './rbac.authorization.k8s.io.role';\n\nexport default class ClusterRole extends Role {\n get subtype() {\n return SUBTYPE_MAPPING.RBAC_CLUSTER_ROLE.key;\n }\n\n get namespaceResources() {\n return this.allResources.filter((r) => r.attributes.namespaced && !r.attributes.group.includes(CATTLE_API_GROUP));\n }\n\n get resources() {\n return uniq(this.namespaceResources.map((r) => r.attributes?.kind)).sort();\n }\n}\n","import HybridModel from '@shell/plugins/steve/hybrid-class';\nimport { GROUP, SERVICE_ACCOUNT, USER } from '@shell/config/types';\n\nexport default class ClusterRoleBinding extends HybridModel {\n get users() {\n return this.subjects?.filter(({ kind }) => kind?.toLowerCase() === USER);\n }\n\n get serviceAccounts() {\n return this.subjects?.filter(({ kind }) => kind?.toLowerCase() === SERVICE_ACCOUNT);\n }\n\n get groups() {\n return this.subjects?.filter(({ kind }) => kind?.toLowerCase() === GROUP);\n }\n}\n","import { SCHEMA } from '@shell/config/types';\nimport { CATTLE_API_GROUP, SUBTYPE_MAPPING } from '@shell/models/management.cattle.io.roletemplate';\nimport { uniq } from '@shell/utils/array';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class Role extends SteveModel {\n get customValidationRules() {\n return [\n {\n path: 'name',\n translationKey: 'nameNsDescription.name.label',\n required: true,\n nullable: false,\n type: 'string',\n },\n {\n path: 'rules',\n validators: [`roleTemplateRules:${ this.type }`],\n nullable: false,\n type: 'array',\n },\n ];\n }\n\n get nameWithinProduct() {\n return this.$rootGetters['i18n/withFallback'](`rbac.displayRole.${ this.name }`, this.name);\n }\n\n get subtype() {\n return SUBTYPE_MAPPING.RBAC_ROLE.key;\n }\n\n get allResources() {\n return this.$getters['all'](SCHEMA).filter((r) => r.attributes?.kind);\n }\n\n get clusterResources() {\n return this.allResources.filter((r) => !r.attributes.namespaced && !r.attributes.group.includes(CATTLE_API_GROUP));\n }\n\n get resources() {\n return uniq(this.clusterResources.map((r) => r.attributes?.kind)).sort();\n }\n\n set displayName(v) {\n this.metadata.name = v;\n }\n\n get displayName() {\n return this.metadata?.name;\n }\n}\n","import HybridModel from '@shell/plugins/steve/hybrid-class';\nimport { GROUP, SERVICE_ACCOUNT, USER } from '@shell/config/types';\n\nexport default class RoleBinding extends HybridModel {\n get users() {\n return this.subjects.filter(({ kind }) => kind?.toLowerCase() === USER);\n }\n\n get serviceAccounts() {\n return this.subjects.filter(({ kind }) => kind?.toLowerCase() === SERVICE_ACCOUNT);\n }\n\n get groups() {\n return this.subjects.filter(({ kind }) => kind?.toLowerCase() === GROUP);\n }\n}\n","import Workload from './workload';\n\nexport default class DaemonSet extends Workload {\n}\n","import { colorForState, stateDisplay } from '@shell/plugins/dashboard-store/resource-class';\nimport { findBy } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class Backup extends SteveModel {\n get readyMessage() {\n const conditions = get(this, 'status.conditions');\n const readyMessage = (findBy(conditions, 'type', 'Ready') || {}).message ;\n\n return readyMessage;\n }\n\n get colorForState() {\n if (this.readyMessage) {\n return colorForState(this.readyMessage);\n }\n\n return colorForState();\n }\n\n get stateDisplay() {\n if (this.readyMessage) {\n return stateDisplay(this.readyMessage);\n }\n\n return stateDisplay();\n }\n}\n","import { colorForState, stateDisplay } from '@shell/plugins/dashboard-store/resource-class';\nimport { findBy } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class Restore extends SteveModel {\n get canUpdate() {\n return this?.metadata?.state?.error;\n }\n\n get readyMessage() {\n const conditions = get(this, 'status.conditions');\n const readyMessage = (findBy(conditions, 'type', 'Ready') || {}).message ;\n\n return readyMessage;\n }\n\n get colorForState() {\n if (this.readyMessage) {\n return colorForState(this.readyMessage);\n }\n\n return colorForState();\n }\n\n get stateDisplay() {\n if (this.readyMessage) {\n return stateDisplay(this.readyMessage);\n }\n\n return stateDisplay();\n }\n}\n","import cloneDeep from 'lodash/cloneDeep';\nimport merge from 'lodash/merge';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class HciMachineConfig extends SteveModel {\n applyDefaults(idx, machinePools) {\n const _machinePools = cloneDeep(machinePools);\n\n if (_machinePools[idx]) {\n const copyConfig = _machinePools[idx]?.config;\n\n delete copyConfig.id;\n delete copyConfig.links;\n delete copyConfig.metadata;\n delete copyConfig.apiVersion;\n merge(this, copyConfig);\n }\n }\n}\n","import MachineTemplate from './rke-machine.cattle.io.machinetemplate';\n\nexport default class Amazonec2MachineTemplate extends MachineTemplate {\n get provider() {\n return 'amazonec2';\n }\n\n get providerLocation() {\n return `${ this.spec.template.spec.region }${ this.spec.template.spec.zone }`;\n }\n\n get providerSize() {\n return this.spec.template.spec.instanceType;\n }\n}\n","import MachineTemplate from './rke-machine.cattle.io.machinetemplate';\n\nexport default class AzureMachineTemplate extends MachineTemplate {\n get provider() {\n return 'azure';\n }\n\n get providerLocation() {\n return this.spec.template.spec.location;\n }\n\n get providerSize() {\n return this.spec.template.spec.size;\n }\n}\n","import MachineTemplate from './rke-machine.cattle.io.machinetemplate';\n\nexport default class DigitalOceanMachineTemplate extends MachineTemplate {\n get provider() {\n return 'digitalocean';\n }\n\n get providerLocation() {\n return this.spec.template.spec.region;\n }\n\n get providerSize() {\n return this.spec.template.spec.size;\n }\n}\n","import MachineTemplate from './rke-machine.cattle.io.machinetemplate';\n\nexport default class LinodeMachineTemplate extends MachineTemplate {\n get provider() {\n return 'linode';\n }\n\n get providerLocation() {\n return this.spec.template.spec.region;\n }\n\n get providerSize() {\n return this.spec.template.spec.instanceType;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class MachineTemplate extends SteveModel {\n get nameDisplay() {\n return this.name.replace(`${ this.metadata.annotations['objectset.rio.cattle.io/owner-name'] }-`, '');\n }\n\n get provider() {\n // Override in your child class\n return null;\n }\n\n get providerLocation() {\n // Override in your child class\n return null;\n }\n\n get providerSize() {\n // Override in your child class\n return null;\n }\n}\n","import MachineTemplate from './rke-machine.cattle.io.machinetemplate';\n\nexport default class PnapMachineTemplate extends MachineTemplate {\n get provider() {\n return 'pnap';\n }\n\n get providerLocation() {\n return this.spec.template.spec.serverLocation;\n }\n\n get providerSize() {\n return this.spec.template.spec.serverType;\n }\n}\n","import { formatSi } from '@shell/utils/units';\nimport MachineTemplate from './rke-machine.cattle.io.machinetemplate';\n\nexport default class VmwarevsphereMachineTemplate extends MachineTemplate {\n get provider() {\n return 'vmwarevsphere';\n }\n\n get providerSize() {\n const size = formatSi(this.spec.template.spec.memorySize * 1048576, 1024, 'iB');\n\n return `${ size }, ${ this.spec.template.spec.cpuCount } Core`;\n }\n}\n","import NormanModel from '@shell/plugins/steve/norman-class';\nimport { SNAPSHOT } from '@shell/config/labels-annotations';\nimport { CAPI } from '@shell/config/types';\nimport { findBy } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\nimport { base64Decode } from '@shell/utils/crypto';\nimport { ucFirst } from '@shell/utils/string';\nimport { STATES_ENUM } from '@shell/plugins/dashboard-store/resource-class';\n\nexport default class EtcdBackup extends NormanModel {\n /**\n * Restrict actions for snapshots to restore only\n */\n get _availableActions() {\n const enabled = this.snapshotFile?.status === STATES_ENUM.SUCCESSFUL;\n\n return [{\n action: 'promptRestore',\n enabled,\n icon: 'icon icon-fw icon-backup-restore',\n label: 'Restore'\n }];\n }\n\n promptRestore() {\n this.$dispatch('promptRestore', [this]);\n }\n\n get clusterName() {\n return this.metadata.labels[SNAPSHOT.CLUSTER_NAME];\n }\n\n get clusterId() {\n return this.cluster.id;\n }\n\n get name() {\n return this.metadata.name;\n }\n\n get cluster() {\n return findBy(this.$rootGetters['management/all'](CAPI.RANCHER_CLUSTER), 'metadata.name', this.clusterName);\n }\n\n get rke2() {\n return this.cluster?.isRke2;\n }\n\n get nameDisplay() {\n return this.snapshotFile?.name || this.name;\n }\n\n get errorMessage() {\n const inError = get(this, 'snapshotFile.status') === STATES_ENUM.FAILED;\n\n if (inError) {\n return base64Decode(this.snapshotFile?.message);\n } else {\n return null;\n }\n }\n\n get stateDescription() {\n const trans = this.stateObj?.transitioning || false;\n const error = this.stateObj?.error || this.snapshotFile?.status === STATES_ENUM.FAILED || false;\n const message = this.stateObj?.message;\n\n const fileMessage = this.snapshotFile?.status === STATES_ENUM.FAILED ? base64Decode(this.snapshotFile?.message) : null;\n\n return trans || error ? fileMessage || ucFirst(message) : '';\n }\n\n get backupLocation() {\n return this.metadata?.annotations?.['etcdsnapshot.rke.io/storage'];\n }\n}\n","import Resource from '@shell/plugins/dashboard-store/resource-class';\n\n/**\n * For types see schema.d.ts\n */\nexport default class Schema extends Resource {\n get groupName() {\n return this.attributes.namespaced ? 'ns' : 'cluster';\n }\n}\n\n/**\n * Handles\n * - no subtype { type: 'io.cattle.provisioning.v1.Cluster.status' }\n * - traditional map/array's with sub type in type e.g `{ type: array[io.cattle.provisioning.v1.Cluster.status] }`\n * - new schema definitions map/array's with sub type property e.g. `{ type: 'array', subtype: 'io.cattle.provisioning.v1.Cluster.status' }`\n */\nconst mapArrayTypeRegex = /([^[\\s]*)(\\[(.*)\\])?/;\n\n/**\n * For the given resourceField find the root type and, if a collection of types, it's subtype\n *\n * @param {String} str type, may contain sub type\n * @param {ResourceField} field resourceField entry, may contain sub type\n * @returns [type, subtype]\n */\nexport function parseType(str, field) {\n const regexRes = mapArrayTypeRegex.exec(str);\n\n const subtype = regexRes[3] || field?.subtype;\n const res = [regexRes[1]];\n\n if (subtype) {\n res.push(subtype);\n }\n\n return res;\n}\n","import r from 'jsrsasign';\nimport { CERTMANAGER, KUBERNETES } from '@shell/config/labels-annotations';\nimport { base64Decode, base64Encode } from '@shell/utils/crypto';\nimport { removeObjects } from '@shell/utils/array';\nimport { SERVICE_ACCOUNT } from '@shell/config/types';\nimport { set } from '@shell/utils/object';\nimport { NAME as MANAGER } from '@shell/config/product/manager';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { colorForState, stateDisplay, STATES_ENUM } from '@shell/plugins/dashboard-store/resource-class';\nimport { diffFrom } from '@shell/utils/time';\nimport day from 'dayjs';\nimport { steveCleanForDownload } from '@shell/plugins/steve/resource-utils';\n\nexport const TYPES = {\n OPAQUE: 'Opaque',\n SERVICE_ACCT: 'kubernetes.io/service-account-token',\n DOCKER: 'kubernetes.io/dockercfg',\n DOCKER_JSON: 'kubernetes.io/dockerconfigjson',\n BASIC: 'kubernetes.io/basic-auth',\n SSH: 'kubernetes.io/ssh-auth',\n TLS: 'kubernetes.io/tls',\n BOOTSTRAP: 'bootstrap.kubernetes.io/token',\n ISTIO_TLS: 'istio.io/key-and-cert',\n HELM_RELEASE: 'helm.sh/release.v1',\n FLEET_CLUSTER: 'fleet.cattle.io/cluster-registration-values',\n CLOUD_CREDENTIAL: 'provisioning.cattle.io/cloud-credential',\n RKE_AUTH_CONFIG: 'rke.cattle.io/auth-config'\n};\n\n/** Class a cert as expiring if in eight days */\nconst certExpiringPeriod = 1000 * 60 * 60 * 24 * 8;\n\nexport default class Secret extends SteveModel {\n _cachedCertInfo;\n\n get hasSensitiveData() {\n return true;\n }\n\n get isCertificate() {\n return this._type === TYPES.TLS;\n }\n\n get isRegistry() {\n return this._type === TYPES.DOCKER_JSON;\n }\n\n get isCloudCredential() {\n return this._type === TYPES.CLOUD_CREDENTIAL || (this.metadata.namespace === 'cattle-global-data' && this.metadata.generateName === 'cc-');\n }\n\n get issuer() {\n const { metadata:{ annotations = {} } } = this;\n\n if (annotations[CERTMANAGER.ISSUER]) {\n return annotations[CERTMANAGER.ISSUER];\n } else if (this.isCertificate) {\n return this.cachedCertInfo?.issuer;\n } else {\n return null;\n }\n }\n\n get notAfter() {\n if (this.isCertificate) {\n return this.cachedCertInfo?.notAfter;\n } else {\n return null;\n }\n }\n\n get cn() {\n if (this.isCertificate) {\n return this.cachedCertInfo?.cn;\n }\n\n return null;\n }\n\n // show plus n more for cert names\n get plusMoreNames() {\n if (this.isCertificate) {\n return this.unrepeatedSans.length;\n }\n\n return null;\n }\n\n // use text-warning' or 'text-error' if cert is expiring within 8 days or is expired\n get dateClass() {\n if (this.isCertificate) {\n switch (this.certState) {\n case STATES_ENUM.EXPIRING:\n return 'text-warning';\n case STATES_ENUM.EXPIRED:\n return 'text-error';\n default:\n return '';\n }\n }\n\n return null;\n }\n\n get details() {\n const out = [\n {\n label: this.t('secret.type'),\n content: this.typeDisplay\n }\n ];\n\n if ( this._type === TYPES.SERVICE_ACCT ) {\n const name = this.metadata?.annotations?.[KUBERNETES.SERVICE_ACCOUNT_NAME];\n\n if ( name ) {\n out.push({\n label: 'Service Account',\n formatter: 'LinkName',\n formatterOpts: {\n value: name,\n type: SERVICE_ACCOUNT,\n namespace: this.namespace,\n },\n content: name,\n });\n }\n }\n\n if (this.cn) {\n out.push({\n label: this.t('secret.certificate.cn'),\n content: this.plusMoreNames ? `${ this.cn } ${ this.t('secret.certificate.plusMore', { n: this.plusMoreNames }) }` : this.cn\n });\n }\n\n if (this.issuer) {\n out.push({\n label: this.t('secret.certificate.issuer'),\n content: this.issuer\n });\n }\n\n if (this.notAfter) {\n out.push({\n label: 'Expires',\n formatter: 'Date',\n formatterOpts: { class: this.dateClass },\n content: this.notAfter\n });\n }\n\n return out;\n }\n\n get canUpdate() {\n if ( !this.hasLink('update') ) {\n return false;\n }\n\n if ( this._type === TYPES.SERVICE_ACCT ) {\n return false;\n }\n\n return this.$rootGetters['type-map/optionsFor'](this.type).isEditable;\n }\n\n get keysDisplay() {\n const keys = [\n ...Object.keys(this.data || []),\n ...Object.keys(this.binaryData || [])\n ];\n\n if ( !keys.length ) {\n return '(none)';\n }\n\n // if ( keys.length >= 4 ) {\n // return `${keys[0]}, ${keys[1]}, ${keys[2]} and ${keys.length - 3} more`;\n // }\n\n return keys.join(', ');\n }\n\n // decode some secret data to show in list view\n get dataPreview() {\n if (this._type === TYPES.DOCKER_JSON) {\n const encodedJSON = this.data['.dockerconfigjson'];\n\n if (encodedJSON) {\n const decodedJSON = base64Decode(encodedJSON);\n\n try {\n const auths = JSON.parse(decodedJSON).auths;\n const out = [];\n\n for (const domain in auths) {\n out.push(domain);\n }\n\n return out.join(', ');\n } catch (e) {\n return decodedJSON;\n }\n }\n } else if (this._type === TYPES.TLS) {\n return this.certInfo || this.keysDisplay;\n } else if ( this._type === TYPES.BASIC ) {\n return base64Decode(this.data.username);\n } else if ( this._type === TYPES.SSH ) {\n return this.sshUser;\n } else if ( this._type === TYPES.SERVICE_ACCT ) {\n return this.metadata?.annotations?.['kubernetes.io/service-account.name'];\n }\n\n return this.keysDisplay;\n }\n\n get sshUser() {\n if ( this._type !== TYPES.SSH ) {\n return null;\n }\n\n const pub = base64Decode(this.data['ssh-publickey']);\n\n if ( !pub ) {\n return null;\n }\n\n if ( pub.startsWith('----') ) {\n // PEM format\n const match = pub.match(/from OpenSSH by ([^\"]+)\"/);\n\n if ( match ) {\n return match[1];\n }\n } else if ( pub.startsWith('ssh-') ) {\n // OpenSSH format\n const parts = pub.replace(/\\n/g, '').split(/\\s+/);\n\n if ( parts && parts.length === 3 ) {\n return parts[2];\n }\n }\n\n return null;\n }\n\n get subTypeDisplay() {\n const type = this._type || '';\n const fallback = type.replace(/^kubernetes.io\\//, '');\n\n return this.$rootGetters['i18n/withFallback'](`secret.types.\"${ type }\"`, null, fallback);\n }\n\n // parse TLS certs and return issuer, notAfter, cn, sans\n get certInfo() {\n const pem = base64Decode(this.data['tls.crt']);\n let issuer, notBefore, notAfter, cn, sans, x;\n const END_MARKER = '-----END CERTIFICATE-----';\n\n if (pem) {\n const certs = pem.split(END_MARKER);\n let first = pem;\n\n if (certs.length > 1) {\n first = `${ certs[0] }${ END_MARKER }`;\n }\n\n try {\n x = new r.X509();\n\n x.readCertPEM(first);\n const issuerString = x.getIssuerString();\n\n issuer = issuerString.slice(issuerString.indexOf('CN=') + 3);\n notBefore = r.zulutodate(x.getNotBefore());\n notAfter = r.zulutodate(x.getNotAfter());\n\n const cnString = x.getSubjectString();\n\n cn = cnString.slice(cnString.indexOf('CN=') + 3);\n } catch {\n return null;\n }\n\n try {\n sans = x.getExtSubjectAltName();\n } catch (e) {\n sans = [];\n }\n\n const certInfo = {\n issuer, notBefore, notAfter, cn, sans\n };\n\n return certInfo;\n }\n\n return null;\n }\n\n get cachedCertInfo() {\n if (!this._cachedCertInfo) {\n this._cachedCertInfo = this.certInfo;\n }\n\n return this._cachedCertInfo;\n }\n\n // use for + n more name display\n get unrepeatedSans() {\n if (this._type === TYPES.TLS ) {\n const certInfo = this.cachedCertInfo;\n\n if (certInfo?.sans?.filter) {\n const commonBases = certInfo?.sans\n .filter((name) => name.indexOf('*.') === 0 || name.indexOf('www.') === 0)\n .map((name) => name.substr(name.indexOf('.')));\n const displaySans = removeObjects(certInfo?.sans, commonBases);\n\n return displaySans;\n }\n\n return certInfo?.sans?.array || certInfo?.sans || [];\n }\n\n return null;\n }\n\n get timeTilExpiration() {\n if (this._type === TYPES.TLS) {\n const certInfo = this.cachedCertInfo;\n\n if (!certInfo?.notAfter) {\n return null;\n }\n\n const expiration = certInfo.notAfter;\n const timeThen = expiration.valueOf();\n const timeNow = Date.now();\n\n const timeTilExpiration = timeThen - timeNow;\n\n return timeTilExpiration < 0 ? 0 : timeTilExpiration;\n }\n\n return null;\n }\n\n get timeTilExpirationDate() {\n return this.timeTilExpiration > 0 ? this.cachedCertInfo?.notAfter?.valueOf() : null;\n }\n\n get decodedData() {\n const out = {};\n\n for ( const k in this.data || {} ) {\n out[k] = base64Decode(this.data[k]);\n }\n\n return out;\n }\n\n get setData() {\n return (key, value) => { // or (mapOfNewData)\n const isMap = key && typeof key === 'object';\n\n if ( !this.data || isMap ) {\n set(this, 'data', {});\n }\n\n let neu;\n\n if ( isMap ) {\n neu = key;\n } else {\n neu = { [key]: value };\n }\n\n for ( const k in neu ) {\n // The key is quoted so that keys like '.dockerconfigjson' that contain dot don't get parsed into an object path\n set(this.data, `\"${ k }\"`, base64Encode(neu[k]));\n }\n };\n }\n\n get doneRoute() {\n if ( this.$rootGetters['currentProduct'].name === MANAGER ) {\n return 'c-cluster-manager-secret';\n } else {\n return 'c-cluster-product-resource';\n }\n }\n\n get certLifetime() {\n if (this._type === TYPES.TLS) {\n const certInfo = this.cachedCertInfo;\n\n if (certInfo) {\n return diffFrom(day(certInfo.notBefore), day(certInfo.notAfter), (key, args) => this.t(key, args)).string;\n }\n }\n\n return null;\n }\n\n /**\n * Get the model `state` for secrets of type cert\n */\n get certState() {\n if (this._type !== TYPES.TLS) {\n return undefined;\n }\n\n if (typeof this.timeTilExpiration !== 'number' || this.timeTilExpiration > certExpiringPeriod ) {\n return '';\n } else if (this.timeTilExpiration > 0) {\n return STATES_ENUM.EXPIRING;\n } else {\n return STATES_ENUM.EXPIRED;\n }\n }\n\n /**\n * Get the model `state display` for secrets of type cert\n */\n get certStateDisplay() {\n if (this._type !== TYPES.TLS) {\n return undefined;\n }\n\n return stateDisplay(this.certState);\n }\n\n /**\n * Get the model `state background` for secrets of type cert\n */\n get certStateBackground() {\n if (this._type !== TYPES.TLS) {\n return undefined;\n }\n\n const color = colorForState(this.certState);\n\n return color.replace('text-', 'bg-');\n }\n\n cleanForSave(data, forNew) {\n const val = super.cleanForSave(data, forNew);\n\n // Secrets on create with _type will return validation error\n // Secrets on edit without _type will return http error\n if (forNew) {\n delete val._type;\n }\n\n return val;\n }\n\n async cleanForDownload(yaml) {\n // secret resource contains the type attribute\n // ref: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/secret-v1/\n // ref: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\n\n return steveCleanForDownload(yaml, { rootKeys: ['id', 'links', 'actions'] });\n }\n}\n","import find from 'lodash/find';\nimport { POD } from '@shell/config/types';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\n// i18n-uses servicesPage.serviceTypes.clusterIp.*, servicesPage.serviceTypes.externalName.*, servicesPage.serviceTypes.headless.*\n// i18n-uses servicesPage.serviceTypes.loadBalancer.*, servicesPage.serviceTypes.nodePort.*\nexport const DEFAULT_SERVICE_TYPES = [\n {\n id: 'ClusterIP',\n label: 'servicesPage.serviceTypes.clusterIp.label',\n description: 'servicesPage.serviceTypes.clusterIp.description',\n bannerAbbrv: 'servicesPage.serviceTypes.clusterIp.abbrv',\n },\n {\n id: 'ExternalName',\n label: 'servicesPage.serviceTypes.externalName.label',\n description: 'servicesPage.serviceTypes.externalName.description',\n bannerAbbrv: 'servicesPage.serviceTypes.externalName.abbrv',\n },\n {\n id: 'Headless',\n label: 'servicesPage.serviceTypes.headless.label',\n description: 'servicesPage.serviceTypes.headless.description',\n bannerAbbrv: 'servicesPage.serviceTypes.headless.abbrv',\n },\n {\n id: 'LoadBalancer',\n label: 'servicesPage.serviceTypes.loadBalancer.label',\n description: 'servicesPage.serviceTypes.loadBalancer.description',\n bannerAbbrv: 'servicesPage.serviceTypes.loadBalancer.abbrv',\n },\n {\n id: 'NodePort',\n label: 'servicesPage.serviceTypes.nodePort.label',\n description: 'servicesPage.serviceTypes.nodePort.description',\n bannerAbbrv: 'servicesPage.serviceTypes.nodePort.abbrv',\n },\n];\n\nexport const HEADLESS = (() => {\n const headless = find(DEFAULT_SERVICE_TYPES, ['id', 'Headless']);\n\n return headless.id;\n})();\n\nexport const CLUSTERIP = (() => {\n const clusterIp = find(DEFAULT_SERVICE_TYPES, ['id', 'ClusterIP']);\n\n return clusterIp.id;\n})();\n\nexport default class extends SteveModel {\n get customValidationRules() {\n return [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n translationKey: 'generic.name',\n type: 'dnsLabel',\n },\n {\n nullable: false,\n path: 'spec',\n required: true,\n type: 'array',\n validators: ['servicePort'],\n },\n {\n nullable: true,\n path: 'spec',\n required: true,\n type: 'string',\n validators: ['clusterIp'],\n },\n {\n nullable: true,\n path: 'spec',\n required: true,\n type: 'array',\n validators: ['externalName'],\n },\n ];\n }\n\n get details() {\n const out = [{\n label: this.t('generic.type'),\n content: this.serviceType?.id || this.serviceType,\n }];\n\n const {\n clusterIP, externalName, sessionAffinity, loadBalancerIP\n } = this.spec;\n\n if (clusterIP) {\n out.push({\n label: this.t('servicesPage.serviceTypes.clusterIp.label'),\n content: clusterIP,\n });\n }\n\n if (this.serviceType === 'LoadBalancer') {\n const statusIps = this.status.loadBalancer?.ingress?.map((ingress) => ingress.hostname || ingress.ip).join(', ');\n\n const loadbalancerInfo = loadBalancerIP || statusIps || '';\n\n if (loadbalancerInfo) {\n out.push({\n label: this.t('servicesPage.ips.loadBalancer.label'),\n content: loadbalancerInfo\n });\n }\n }\n\n if (externalName) {\n out.push({\n label: this.t('servicesPage.serviceTypes.externalName.label'),\n content: externalName,\n });\n }\n\n if (sessionAffinity) {\n out.push({\n label: this.t('servicesPage.affinity.label'),\n content: sessionAffinity,\n });\n }\n\n return out;\n }\n\n get podRelationship() {\n const { metadata:{ relationships = [] } } = this;\n\n return (relationships || []).filter((relationship) => relationship.toType === POD)[0];\n }\n\n async fetchPods() {\n if (this.podRelationship) {\n // Used in conjunction with `matches/match/label selectors`. Requires https://github.com/rancher/dashboard/issues/10417 to fix\n await this.$dispatch('cluster/findMatching', {\n type: POD,\n selector: this.podRelationship.selector,\n namespace: this.namespace\n }, { root: true });\n }\n }\n\n get pods() {\n return this.podRelationship ? this.$getters.matching( POD, this.podRelationship.selector, this.namespace ) : [];\n }\n\n get serviceType() {\n const serviceType = this.spec?.type;\n const clusterIp = this.spec?.clusterIP;\n const defaultService = find(DEFAULT_SERVICE_TYPES, ['id', CLUSTERIP]);\n\n if (serviceType) {\n if (serviceType === CLUSTERIP && clusterIp === 'None') {\n return HEADLESS;\n } else {\n return serviceType;\n }\n }\n\n return defaultService;\n }\n\n proxyUrl(scheme, port) {\n const view = this.linkFor('view');\n const idx = view.lastIndexOf(`/`);\n\n return proxyUrlFromBase(view.slice(0, idx), scheme, this.metadata.name, port);\n }\n}\n\nexport function proxyUrlFromParts(clusterId, namespace, name, scheme, port, path) {\n const base = `/k8s/clusters/${ escape(clusterId) }/api/v1/namespaces/${ escape(namespace) }/services`;\n\n return proxyUrlFromBase(base, scheme, name, port, path);\n}\n\nexport function proxyUrlFromBase(base, scheme, name, port, path) {\n const schemaNamePort = (scheme ? `${ escape(scheme) }:` : '') + escape(name) + (port ? `:${ escape(port) }` : '');\n\n const cleanPath = `/${ (path || '').replace(/^\\/+/g, '') }`;\n const cleanBase = base.replace(/\\/+$/g, '');\n\n const out = `${ cleanBase }/${ schemaNamePort }/proxy${ cleanPath }`;\n\n return out;\n}\n","import { STORAGE } from '@shell/config/labels-annotations';\r\nimport { STORAGE_CLASS } from '@shell/config/types';\r\nimport SteveModel from '@shell/plugins/steve/steve-class';\r\n\r\n// These are storage class drivers w/ custom components\r\n// all but longhorn are in-tree plugins\r\nexport const PROVISIONER_OPTIONS = [\r\n {\r\n labelKey: 'storageClass.aws-ebs.title',\r\n value: 'kubernetes.io/aws-ebs',\r\n supported: true,\r\n deprecated: true,\r\n },\r\n {\r\n labelKey: 'storageClass.azure-disk.title',\r\n value: 'kubernetes.io/azure-disk',\r\n supported: true,\r\n deprecated: true\r\n },\r\n {\r\n labelKey: 'storageClass.azure-file.title',\r\n value: 'kubernetes.io/azure-file',\r\n supported: true,\r\n deprecated: true,\r\n },\r\n {\r\n labelKey: 'storageClass.rbd.title',\r\n value: 'kubernetes.io/rbd',\r\n },\r\n {\r\n labelKey: 'storageClass.glusterfs.title',\r\n value: 'kubernetes.io/glusterfs',\r\n },\r\n {\r\n labelKey: 'storageClass.gce-pd.title',\r\n value: 'kubernetes.io/gce-pd',\r\n supported: true,\r\n deprecated: true,\r\n },\r\n {\r\n labelKey: 'storageClass.no-provisioner.title',\r\n value: 'kubernetes.io/no-provisioner',\r\n },\r\n {\r\n labelKey: 'storageClass.longhorn.title',\r\n value: 'driver.longhorn.io',\r\n supported: true\r\n },\r\n {\r\n labelKey: 'storageClass.cinder.title',\r\n value: 'kubernetes.io/cinder',\r\n deprecated: true,\r\n },\r\n {\r\n labelKey: 'storageClass.portworx-volume.title',\r\n value: 'kubernetes.io/portworx-volume',\r\n },\r\n {\r\n labelKey: 'storageClass.quobyte.title',\r\n value: 'kubernetes.io/quobyte',\r\n },\r\n {\r\n labelKey: 'storageClass.scaleio.title',\r\n value: 'kubernetes.io/scaleio',\r\n },\r\n {\r\n labelKey: 'storageClass.storageos.title',\r\n value: 'kubernetes.io/storageos',\r\n },\r\n {\r\n labelKey: 'storageClass.vsphere-volume.title',\r\n value: 'kubernetes.io/vsphere-volume',\r\n supported: true,\r\n deprecated: true\r\n },\r\n {\r\n labelKey: 'storageClass.harvesterhci.title',\r\n value: 'driver.harvesterhci.io',\r\n supported: true,\r\n hideCustomize: true,\r\n }\r\n];\r\n\r\nexport default class extends SteveModel {\r\n get provisionerListDisplay() {\r\n return `${ this.provisioner } (${ this.provisionerDisplay })`;\r\n }\r\n\r\n get provisionerDisplay() {\r\n const option = PROVISIONER_OPTIONS.find((o) => o.value === this.provisioner);\r\n const fallback = `${ this.provisioner } ${ this.t('persistentVolume.csi.suffix') }`;\r\n\r\n return option ? this.t(option.labelKey) : this.$rootGetters['i18n/withFallback'](`persistentVolume.csi.drivers.${ this.provisioner.replaceAll('.', '-') }`, null, fallback);\r\n }\r\n\r\n get isDefault() {\r\n return this.annotations[STORAGE.DEFAULT_STORAGE_CLASS] === 'true';\r\n }\r\n\r\n updateDefault(value) {\r\n // Update model so that the list reflects the change straight away\r\n this.setAnnotation(STORAGE.DEFAULT_STORAGE_CLASS, value.toString());\r\n this.setAnnotation(STORAGE.BETA_DEFAULT_STORAGE_CLASS, value.toString());\r\n\r\n // Patch the annotations rather than saving the whole object, as ssome storage classes\r\n // won't allow the complete object to be saved again\r\n const data = {\r\n metadata: {\r\n annotations: {\r\n [STORAGE.DEFAULT_STORAGE_CLASS]: value.toString(),\r\n [STORAGE.BETA_DEFAULT_STORAGE_CLASS]: value.toString()\r\n }\r\n }\r\n };\r\n\r\n return this.patch(data, {}, true, true);\r\n }\r\n\r\n async setDefault() {\r\n const inStore = this.$rootGetters['currentProduct'].inStore;\r\n const allStorageClasses = this.$rootGetters[`${ inStore }/all`](STORAGE_CLASS) || [];\r\n\r\n for (const storageClass of allStorageClasses) {\r\n await storageClass.resetDefault();\r\n }\r\n\r\n allStorageClasses.forEach((storageClass) => storageClass.resetDefault());\r\n this.updateDefault(true);\r\n }\r\n\r\n async resetDefault() {\r\n if (this.isDefault) {\r\n await this.updateDefault(false);\r\n }\r\n }\r\n\r\n get _availableActions() {\r\n const out = super._availableActions;\r\n\r\n if (this.isDefault) {\r\n out.unshift({\r\n action: 'resetDefault',\r\n enabled: true,\r\n icon: 'icon icon-fw icon-checkmark',\r\n label: this.t('storageClass.actions.resetDefault'),\r\n });\r\n } else {\r\n out.unshift({\r\n action: 'setDefault',\r\n enabled: true,\r\n icon: 'icon icon-fw icon-checkmark',\r\n label: this.t('storageClass.actions.setAsDefault'),\r\n });\r\n }\r\n\r\n return out;\r\n }\r\n\r\n cleanForNew() {\r\n this.$dispatch(`cleanForNew`, this);\r\n\r\n delete this?.metadata?.annotations?.[STORAGE.DEFAULT_STORAGE_CLASS];\r\n }\r\n}\r\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class extends SteveModel {\n get constraints() {\n const type = `constraints.gatekeeper.sh.${ this.id }`;\n\n if (!this.$rootGetters['cluster/haveAll'](type)) {\n throw new Error('The constraints have not been loaded');\n }\n\n return this.$rootGetters['cluster/all'](type);\n }\n\n get preventDeletionMessage() {\n const constraints = this.constraints;\n\n if ( constraints.length > 0 ) {\n return `There are still constraints using this template. You cannot delete this template while it's in use.`;\n }\n\n return null;\n }\n}\n","import day from 'dayjs';\nimport NormanModel from '@shell/plugins/steve/norman-class';\n\nexport default class extends NormanModel {\n get _availableActions() {\n return super._availableActions.filter((a) => ['viewInApi', 'promptRemove'].includes(a.action));\n }\n\n get state() {\n return this.isExpired ? 'expired' : 'active';\n }\n\n get isExpired() {\n // Keep this updated, don't trust `expired`\n const expiry = day(this.expiresAt);\n\n return expiry.isBefore(day());\n }\n}\n","import { proxyUrlFromParts } from '@shell/models/service';\nimport SteveModel from '@shell/plugins/steve/steve-class';\n\nexport default class extends SteveModel {\n get labelDisplay() {\n return this.spec?.label || this.metadata.name || '?';\n }\n\n get link() {\n if ( this.spec?.toURL ) {\n return this.spec.toURL;\n } else if ( this.spec?.toService ) {\n const s = this.spec.toService;\n\n return proxyUrlFromParts(this.$rootGetters['clusterId'], s.namespace, s.name, s.scheme, s.port, s.path);\n } else {\n return null;\n }\n }\n\n get normalizedGroup() {\n if ( !this.spec.group ) {\n return null;\n }\n\n return this.spec.group\n .toLowerCase()\n .trim()\n .replace(/[^a-z0-9]/g, '-')\n .replace(/-+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n }\n\n get actualTarget() {\n return (this.spec.target || '').trim() || '_blank';\n }\n}\n","export const SEPARATOR = { separator: true };\n","import { findBy, insertAt } from '@shell/utils/array';\nimport { TIMESTAMP, CATTLE_PUBLIC_ENDPOINTS } from '@shell/config/labels-annotations';\nimport { WORKLOAD_TYPES, SERVICE, POD } from '@shell/config/types';\nimport { get, set } from '@shell/utils/object';\nimport day from 'dayjs';\nimport { convertSelectorObj, matching, matches } from '@shell/utils/selector';\nimport { SEPARATOR } from '@shell/config/workload';\nimport WorkloadService from '@shell/models/workload.service';\n\nexport const defaultContainer = {\n imagePullPolicy: 'Always',\n name: 'container-0',\n securityContext: {\n runAsNonRoot: false,\n readOnlyRootFilesystem: false,\n privileged: false,\n allowPrivilegeEscalation: false,\n },\n volumeMounts: []\n};\nexport default class Workload extends WorkloadService {\n // remove clone as yaml/edit as yaml until API supported\n get _availableActions() {\n let out = super._availableActions;\n const type = this._type ? this._type : this.type;\n\n const editYaml = findBy(out, 'action', 'goToEditYaml');\n const index = editYaml ? out.indexOf(editYaml) : 0;\n\n insertAt(out, index, {\n action: 'addSidecar',\n label: this.t('action.addSidecar'),\n icon: 'icon icon-plus',\n enabled: !!this.links.update,\n });\n\n if (type !== WORKLOAD_TYPES.JOB && type !== WORKLOAD_TYPES.CRON_JOB) {\n insertAt(out, 0, {\n action: 'toggleRollbackModal',\n label: this.t('action.rollback'),\n icon: 'icon icon-history',\n enabled: !!this.links.update,\n });\n\n insertAt(out, 0, {\n action: 'redeploy',\n label: this.t('action.redeploy'),\n icon: 'icon icon-refresh',\n enabled: !!this.links.update,\n bulkable: true,\n });\n\n insertAt(out, 0, {\n action: 'pause',\n label: this.t('asyncButton.pause.action'),\n icon: 'icon icon-pause',\n enabled: !!this.links.update && !this.spec?.paused\n });\n\n insertAt(out, 0, {\n action: 'resume',\n label: this.t('asyncButton.resume.action'),\n icon: 'icon icon-play',\n enabled: !!this.links.update && this.spec?.paused === true\n });\n }\n\n insertAt(out, 0, { divider: true }) ;\n\n insertAt(out, 0, {\n action: 'openShell',\n enabled: !!this.links.view,\n icon: 'icon icon-fw icon-chevron-right',\n label: this.t('action.openShell'),\n total: 1,\n });\n\n const toFilter = ['cloneYaml'];\n\n out = out.filter((action) => {\n if (!toFilter.includes(action.action)) {\n return action;\n }\n });\n\n return out;\n }\n\n applyDefaults() {\n const { spec = {} } = this;\n\n if (this.type === WORKLOAD_TYPES.CRON_JOB) {\n if (!spec.jobTemplate) {\n spec.jobTemplate = {\n spec: {\n template: {\n spec: {\n restartPolicy: 'Never', containers: [{ imagePullPolicy: 'Always', name: 'container-0' }], initContainers: []\n }\n }\n }\n };\n }\n } else {\n if (!spec.replicas && spec.replicas !== 0) {\n spec.replicas = 1;\n }\n\n if (!spec.template) {\n spec.template = {\n spec: {\n restartPolicy: this.type === WORKLOAD_TYPES.JOB ? 'Never' : 'Always',\n containers: [{ ...structuredClone(defaultContainer) }],\n initContainers: []\n }\n };\n }\n if (!spec.selector) {\n spec.selector = {};\n }\n }\n this.spec = spec;\n }\n\n toggleRollbackModal( workload = this ) {\n this.$dispatch('promptModal', {\n componentProps: { workload },\n component: 'RollbackWorkloadDialog'\n });\n }\n\n async rollBackWorkload( cluster, workload, type, rollbackRequestData ) {\n const rollbackRequestBody = JSON.stringify(rollbackRequestData);\n\n if ( Array.isArray( workload ) ) {\n throw new TypeError(this.t('promptRollback.multipleWorkloadError'));\n }\n const namespace = workload.metadata.namespace;\n const workloadName = workload.metadata.name;\n\n /**\n * Ensure we go out to the correct cluster\n *\n * Build the request body in the same format that kubectl\n * uses to call the Kubernetes API to roll back a workload.\n * To see an example request body, run:\n * kubectl rollout undo deployment/[deployment name] --to-revision=[revision number] -v=8\n */\n await this.patch(rollbackRequestBody, { url: `/k8s/clusters/${ cluster.id }/apis/apps/v1/namespaces/${ namespace }/${ type }/${ workloadName }` });\n }\n\n pause() {\n set(this.spec, 'paused', true);\n this.save();\n }\n\n resume() {\n set(this.spec, 'paused', false);\n this.save();\n }\n\n async scaleDown() {\n const newScale = this.spec.replicas - 1;\n\n if (newScale >= 0) {\n set(this.spec, 'replicas', newScale);\n await this.save();\n }\n }\n\n async scaleUp() {\n set(this.spec, 'replicas', this.spec.replicas + 1);\n await this.save();\n }\n\n get state() {\n if ( this.spec?.paused === true ) {\n return 'paused';\n }\n\n return super.state;\n }\n\n async openShell() {\n const pods = await this.matchingPods();\n\n for ( const pod of pods ) {\n if ( pod.isRunning ) {\n pod.openShell();\n\n return;\n }\n }\n\n this.$dispatch('growl/error', {\n title: 'Unavailable',\n message: 'There are no running pods to execute a shell in.'\n }, { root: true });\n }\n\n addSidecar() {\n return this.goToEdit({ sidecar: true });\n }\n\n get showPodRestarts() {\n return true;\n }\n\n get restartCount() {\n const pods = this.pods;\n\n let sum = 0;\n\n pods.forEach((pod) => {\n if (pod.status.containerStatuses) {\n sum += pod.status?.containerStatuses[0].restartCount || 0;\n }\n });\n\n return sum;\n }\n\n get hasSidecars() {\n const podTemplateSpec = this.type === WORKLOAD_TYPES.CRON_JOB ? this?.spec?.jobTemplate?.spec?.template?.spec : this.spec?.template?.spec;\n\n const { containers = [], initContainers = [] } = podTemplateSpec;\n\n return containers.length > 1 || initContainers.length;\n }\n\n get customValidationRules() {\n const type = this._type ? this._type : this.type;\n\n const podSpecPath = type === WORKLOAD_TYPES.CRON_JOB ? 'spec.jobTemplate.spec.template.spec' : 'spec.template.spec';\n const out = [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n translationKey: 'generic.name',\n type: 'subDomain',\n },\n {\n nullable: false,\n path: 'spec',\n required: true,\n type: 'object',\n validators: ['containerImages'],\n },\n {\n nullable: true,\n path: `${ podSpecPath }.affinity`,\n type: 'object',\n validators: ['podAffinity'],\n }\n ];\n\n switch (type) {\n case WORKLOAD_TYPES.DEPLOYMENT:\n case WORKLOAD_TYPES.REPLICA_SET:\n out.push( {\n nullable: false,\n path: 'spec.replicas',\n required: true,\n type: 'number',\n translationKey: 'workload.replicas'\n });\n break;\n case WORKLOAD_TYPES.STATEFUL_SET:\n out.push({\n nullable: false,\n path: 'spec.replicas',\n required: true,\n type: 'number',\n translationKey: 'workload.replicas'\n });\n out.push({\n nullable: false,\n path: 'spec.serviceName',\n required: true,\n type: 'string',\n translationKey: 'workload.serviceName'\n });\n break;\n case WORKLOAD_TYPES.CRON_JOB:\n out.push( {\n nullable: false,\n path: 'spec.schedule',\n required: true,\n type: 'string',\n validators: ['cronSchedule'],\n translationKey: 'workload.cronSchedule'\n });\n }\n\n return out;\n }\n\n get endpoint() {\n return this?.metadata?.annotations?.[CATTLE_PUBLIC_ENDPOINTS];\n }\n\n get desired() {\n return this.spec?.replicas || 0;\n }\n\n get available() {\n return this.status?.readyReplicas || 0;\n }\n\n get ready() {\n const readyReplicas = Math.max(0, (this.status?.replicas || 0) - (this.status?.unavailableReplicas || 0));\n\n if (this.type === WORKLOAD_TYPES.DAEMON_SET) {\n return readyReplicas;\n }\n\n return `${ readyReplicas }/${ this.desired }`;\n }\n\n get unavailable() {\n return this.status?.unavailableReplicas || 0;\n }\n\n get upToDate() {\n return this.status?.updatedReplicas;\n }\n\n get details() {\n const out = [];\n const type = this._type ? this._type : this.type;\n\n const detailItem = {\n endpoint: {\n label: 'Endpoints',\n content: this.endpoint,\n formatter: 'WorkloadDetailEndpoints'\n },\n ready: {\n label: 'Ready',\n content: this.ready\n },\n upToDate: {\n label: 'Up-to-date',\n content: this.upToDate\n },\n available: {\n label: 'Available',\n content: this.available\n }\n };\n\n if (type === WORKLOAD_TYPES.JOB) {\n const { completionTime, startTime } = this.status;\n const FACTORS = [60, 60, 24];\n const LABELS = ['sec', 'min', 'hour', 'day'];\n\n if ( startTime ) {\n out.push({\n label: 'Started',\n content: startTime,\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n });\n }\n\n if (completionTime && startTime) {\n const end = day(completionTime);\n const start = day(startTime);\n let diff = end.diff(start) / 1000;\n\n let label;\n\n let i = 0;\n\n while ( diff >= FACTORS[i] && i < FACTORS.length ) {\n diff /= FACTORS[i];\n i++;\n }\n\n if ( diff < 5 ) {\n label = Math.floor(diff * 10) / 10;\n } else {\n label = Math.floor(diff);\n }\n\n label += ` ${ this.t(`unit.${ LABELS[i] }`, { count: label }) } `;\n label = label.trim();\n\n out.push({ label: 'Duration', content: label });\n }\n } else if ( type === WORKLOAD_TYPES.CRON_JOB ) {\n out.push({\n label: 'Last Scheduled Time',\n content: this?.status?.lastScheduleTime,\n formatter: 'LiveDate'\n });\n }\n\n out.push( {\n label: 'Image',\n content: this.imageNames,\n formatter: 'PodImages'\n });\n\n switch (type) {\n case WORKLOAD_TYPES.DEPLOYMENT:\n out.push(detailItem.ready, detailItem.upToDate, detailItem.available, SEPARATOR, detailItem.endpoint);\n break;\n case WORKLOAD_TYPES.DAEMON_SET:\n out.push(detailItem.ready, SEPARATOR, detailItem.endpoint);\n break;\n case WORKLOAD_TYPES.REPLICA_SET:\n out.push(detailItem.ready, SEPARATOR, detailItem.endpoint);\n break;\n case WORKLOAD_TYPES.STATEFUL_SET:\n out.push(detailItem.ready, SEPARATOR, detailItem.endpoint);\n break;\n case WORKLOAD_TYPES.REPLICATION_CONTROLLER:\n out.push(detailItem.ready, SEPARATOR, detailItem.endpoint);\n break;\n case WORKLOAD_TYPES.JOB:\n out.push(detailItem.endpoint);\n break;\n case WORKLOAD_TYPES.CRON_JOB:\n out.push(detailItem.endpoint);\n break;\n case POD:\n out.push(detailItem.ready);\n break;\n default: break;\n }\n\n return out;\n }\n\n redeploy() {\n const now = (new Date()).toISOString().replace(/\\.\\d+Z$/, 'Z');\n\n if ( !this.spec.template.metadata ) {\n set(this.spec.template, 'metadata', {});\n }\n\n const annotations = this.spec.template.metadata.annotations || {};\n\n annotations[TIMESTAMP] = now;\n set(this.spec.template.metadata, 'annotations', annotations);\n\n this.save();\n }\n\n // match existing container ports with services created for this workload\n async getPortsWithServiceType() {\n const ports = [];\n\n this.containers.forEach((container) => ports.push(...(container.ports || [])));\n (this.initContainers || []).forEach((container) => ports.push(...(container.ports || [])));\n\n // Only get services owned if we can access the service resource\n const canAccessServices = this.$getters['schemaFor'](SERVICE);\n const services = canAccessServices ? await this.getServicesOwned() : [];\n const clusterIPServicePorts = [];\n const loadBalancerServicePorts = [];\n const nodePortServicePorts = [];\n\n if (services.length) {\n services.forEach((svc) => {\n switch (svc.spec.type) {\n case 'ClusterIP':\n clusterIPServicePorts.push(...(svc?.spec?.ports || []));\n break;\n case 'LoadBalancer':\n loadBalancerServicePorts.push(...(svc?.spec?.ports || []));\n break;\n case 'NodePort':\n nodePortServicePorts.push(...(svc?.spec?.ports || []));\n break;\n default:\n break;\n }\n });\n }\n ports.forEach((port) => {\n const name = port.name ? port.name : `${ port.containerPort }${ port.protocol.toLowerCase() }${ port.hostPort || port._listeningPort || '' }`;\n\n port.name = name;\n\n if (port._serviceType && port._serviceType !== '') {\n return;\n }\n\n if (loadBalancerServicePorts.length) {\n const portSpec = findBy(loadBalancerServicePorts, 'name', name);\n\n if (portSpec) {\n port._listeningPort = portSpec.port;\n\n port._serviceType = 'LoadBalancer';\n\n return;\n }\n } if (nodePortServicePorts.length) {\n const portSpec = findBy(nodePortServicePorts, 'name', name);\n\n if (portSpec) {\n port._listeningPort = portSpec.nodePort;\n\n port._serviceType = 'NodePort';\n\n return;\n }\n } if (clusterIPServicePorts.length) {\n if (findBy(clusterIPServicePorts, 'name', name)) {\n port._serviceType = 'ClusterIP';\n }\n }\n });\n\n return ports;\n }\n\n get ownedByWorkload() {\n const types = Object.values(WORKLOAD_TYPES);\n\n if (this.metadata?.ownerReferences) {\n for (const owner of this.metadata.ownerReferences) {\n const have = (`${ owner.apiVersion.replace(/\\/.*/, '') }.${ owner.kind }`).toLowerCase();\n\n if ( types.includes(have) ) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n get isFromNorman() {\n return (this.metadata.labels || {})['cattle.io/creator'] === 'norman';\n }\n\n get warnDeletionMessage() {\n if (this.isFromNorman) {\n return this.t('workload.normanWarning');\n } else {\n return null;\n }\n }\n\n get pods() {\n const relationships = this.metadata?.relationships || [];\n const podRelationship = relationships.filter((relationship) => relationship.toType === POD)[0];\n\n if (podRelationship) {\n const pods = this.$getters['podsByNamespace'](this.metadata.namespace);\n\n // Used in conjunction with `matches/match/label selectors`. Requires https://github.com/rancher/dashboard/issues/10417 to fix\n return pods.filter((obj) => {\n return matches(obj, podRelationship.selector);\n });\n } else {\n return [];\n }\n }\n\n get podGauges() {\n const out = { };\n\n if (!this.pods) {\n return out;\n }\n\n this.pods.map((pod) => {\n const { stateColor, stateDisplay } = pod;\n\n if (out[stateDisplay]) {\n out[stateDisplay].count++;\n } else {\n out[stateDisplay] = {\n color: stateColor.replace('text-', ''),\n count: 1\n };\n }\n });\n\n return out;\n }\n\n // Job Specific\n get jobRelationships() {\n if (this.type !== WORKLOAD_TYPES.CRON_JOB) {\n return undefined;\n }\n\n return (get(this, 'metadata.relationships') || []).filter((relationship) => relationship.toType === WORKLOAD_TYPES.JOB);\n }\n\n /**\n * Ensure the store has all matching jobs\n */\n async matchingJobs() {\n if (this.type !== WORKLOAD_TYPES.CRON_JOB) {\n return undefined;\n }\n\n // This will be 1 request per relationship, though there's not likely to be many per cron job\n return Promise.all(this.jobRelationships.map((obj) => {\n return this.$dispatch('find', { type: WORKLOAD_TYPES.JOB, id: obj.toId });\n }));\n }\n\n /**\n * Expects all required pods are fetched upfront\n */\n get jobs() {\n if (this.type !== WORKLOAD_TYPES.CRON_JOB) {\n return undefined;\n }\n\n return this.jobRelationships.map((obj) => {\n return this.$getters['byId'](WORKLOAD_TYPES.JOB, obj.toId );\n }).filter((x) => !!x);\n }\n\n get jobGauges() {\n const out = {\n succeeded: { color: 'success', count: 0 }, running: { color: 'info', count: 0 }, failed: { color: 'error', count: 0 }\n };\n\n if (this.type === WORKLOAD_TYPES.CRON_JOB) {\n this.jobs.forEach((job) => {\n const { status = {} } = job;\n\n out.running.count += status.active || 0;\n out.succeeded.count += status.succeeded || 0;\n out.failed.count += status.failed || 0;\n });\n } else if (this.type === WORKLOAD_TYPES.JOB) {\n const { status = {} } = this;\n\n out.running.count = status.active || 0;\n out.succeeded.count = status.succeeded || 0;\n out.failed.count = status.failed || 0;\n } else {\n return null;\n }\n\n return out;\n }\n\n get currentRevisionNumber() {\n if (this.ownedByWorkload || this.kind === 'Job' || this.kind === 'CronJob') {\n return undefined;\n }\n if (this.kind === 'Deployment') {\n return this.metadata.annotations['deployment.kubernetes.io/revision'];\n }\n\n // 'DaemonSet', 'StatefulSet'\n return this.metadata.generation;\n }\n\n async matchingPods() {\n // Used in conjunction with `matches/match/label selectors`. Requires https://github.com/rancher/dashboard/issues/10417 to fix\n const all = await this.$dispatch('findAll', { type: POD });\n const allInNamespace = all.filter((pod) => pod.metadata.namespace === this.metadata.namespace);\n\n const selector = convertSelectorObj(this.spec.selector);\n\n return matching(allInNamespace, selector);\n }\n\n cleanForSave(data) {\n const val = super.cleanForSave(data);\n\n // remove fields from containers\n val.spec?.template?.spec?.containers?.forEach((container) => {\n this.cleanContainerForSave(container);\n });\n\n // remove fields from initContainers\n val.spec?.template?.spec?.initContainers?.forEach((container) => {\n this.cleanContainerForSave(container);\n });\n\n return val;\n }\n}\n","\nimport { findBy } from '@shell/utils/array';\nimport { TARGET_WORKLOADS, UI_MANAGED, HCI as HCI_LABELS_ANNOTATIONS } from '@shell/config/labels-annotations';\nimport { WORKLOAD_TYPES, SERVICE } from '@shell/config/types';\nimport { clone, get } from '@shell/utils/object';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { shortenedImage } from '@shell/utils/string';\n\nexport default class WorkloadService extends SteveModel {\n async getPortsWithServiceType() {\n const ports = [];\n\n this.containers.forEach((container) => ports.push(...(container.ports || [])));\n (this.initContainers || []).forEach((container) => ports.push(...(container.ports || [])));\n\n // Only get services owned if we can access the service resource\n const canAccessServices = this.$getters['schemaFor'](SERVICE);\n const services = canAccessServices ? await this.getServicesOwned() : [];\n const clusterIPServicePorts = [];\n const loadBalancerServicePorts = [];\n const nodePortServicePorts = [];\n\n if (services.length) {\n services.forEach((svc) => {\n switch (svc.spec.type) {\n case 'ClusterIP':\n clusterIPServicePorts.push(...(svc?.spec?.ports || []));\n break;\n case 'LoadBalancer':\n loadBalancerServicePorts.push(...(svc?.spec?.ports || []));\n break;\n case 'NodePort':\n nodePortServicePorts.push(...(svc?.spec?.ports || []));\n break;\n default:\n break;\n }\n });\n }\n ports.forEach((port) => {\n const name = port.name ? port.name : `${ port.containerPort }${ port.protocol.toLowerCase() }${ port.hostPort || port._listeningPort || '' }`;\n\n port.name = name;\n\n if (port._serviceType && port._serviceType !== '') {\n return;\n }\n\n if (loadBalancerServicePorts.length) {\n const portSpec = findBy(loadBalancerServicePorts, 'name', name);\n\n if (portSpec) {\n port._listeningPort = portSpec.port;\n\n port._serviceType = 'LoadBalancer';\n\n return;\n }\n } if (nodePortServicePorts.length) {\n const portSpec = findBy(nodePortServicePorts, 'name', name);\n\n if (portSpec) {\n port._listeningPort = portSpec.nodePort;\n\n port._serviceType = 'NodePort';\n\n return;\n }\n } if (clusterIPServicePorts.length) {\n if (findBy(clusterIPServicePorts, 'name', name)) {\n port._serviceType = 'ClusterIP';\n }\n }\n });\n\n return ports;\n }\n\n async getServicesOwned(force = false) {\n const normanTypes = {\n [WORKLOAD_TYPES.REPLICA_SET]: 'replicaSet',\n [WORKLOAD_TYPES.DEPLOYMENT]: 'deployment',\n [WORKLOAD_TYPES.STATEFUL_SET]: 'statefulSet',\n [WORKLOAD_TYPES.DAEMON_SET]: 'daemonSet',\n };\n const selectorKey = Object.keys(this.workloadSelector)[0];\n\n const normanSelectorValue =\n `${ normanTypes[this._type ? this._type : this.type] }-${\n this.metadata.namespace\n }-${ this.metadata.name }`;\n\n const steveSelectorValue = this.workloadSelector[selectorKey];\n const allSvc = await this.$dispatch('cluster/findAll', { type: SERVICE, opt: { force } }, { root: true });\n\n return (allSvc || []).filter((svc) => (svc.spec?.selector || {})[selectorKey] === steveSelectorValue || (svc.spec?.selector || {})[selectorKey] === normanSelectorValue );\n }\n\n get imageNames() {\n let containers;\n const images = [];\n\n if (this.type === WORKLOAD_TYPES.CRON_JOB) {\n containers = get(this, 'spec.jobTemplate.spec.template.spec.containers');\n } else {\n containers = get(this, 'spec.template.spec.containers');\n }\n if (containers) {\n containers.forEach((container) => {\n if (!images.includes(container.image)) {\n images.push(container.image);\n }\n });\n }\n\n return images.map(shortenedImage);\n }\n\n get containers() {\n if (this.type === WORKLOAD_TYPES.CRON_JOB) {\n // cronjob pod template is nested slightly different than other types\n const { spec: { jobTemplate: { spec: { template: { spec: { containers } } } } } } = this;\n\n return containers;\n }\n\n if ( this.spec.containers ) {\n return this.spec.containers;\n }\n\n const { spec:{ template:{ spec:{ containers } } } } = this;\n\n return containers;\n }\n\n get initContainers() {\n if (this.type === WORKLOAD_TYPES.CRON_JOB) {\n // cronjob pod template is nested slightly different than other types\n const { spec: { jobTemplate: { spec: { template: { spec: { initContainers } } } } } } = this;\n\n return initContainers;\n }\n\n if (this.spec.initContainers) {\n return this.spec.initContainers;\n }\n\n const { spec:{ template:{ spec:{ initContainers } } } } = this;\n\n return initContainers;\n }\n\n get workloadSelector() {\n return {\n 'workload.user.cattle.io/workloadselector': `${ this._type ? this._type : this.type }-${\n this.metadata.namespace\n }-${ this.metadata.name }`\n };\n }\n\n // create clusterip, nodeport, loadbalancer services from container port spec\n async servicesFromContainerPorts(mode, ports) {\n const ownerRef = {\n apiVersion: this.apiVersion,\n controller: true,\n kind: this.kind,\n name: this.metadata.name,\n uid: this.metadata.uid\n };\n\n const annotations = { [TARGET_WORKLOADS]: JSON.stringify([`${ this.metadata.namespace }/${ this.metadata.name }`]), [UI_MANAGED]: 'true' };\n\n let clusterIP = {\n type: SERVICE,\n spec: {\n ports: [],\n selector: this.workloadSelector,\n type: 'ClusterIP'\n },\n metadata: {\n name: this.metadata.name,\n namespace: this.metadata.namespace,\n annotations,\n ownerReferences: [ownerRef]\n },\n };\n\n let nodePort = {\n type: SERVICE,\n spec: {\n ports: [],\n selector: this.workloadSelector,\n type: 'NodePort'\n },\n metadata: {\n name: `${ this.metadata.name }-nodeport`,\n namespace: this.metadata.namespace,\n annotations,\n ownerReferences: [ownerRef]\n },\n };\n\n let loadBalancer = {\n type: SERVICE,\n spec: {\n ports: [],\n selector: this.workloadSelector,\n type: 'LoadBalancer',\n externalTrafficPolicy: 'Cluster'\n },\n metadata: {\n name: `${ this.metadata.name }-loadbalancer`,\n namespace: this.metadata.namespace,\n annotations,\n ownerReferences: [ownerRef]\n },\n };\n\n const existing = await this.getServicesOwned(this.isFromNorman);\n\n if (existing && existing.length) {\n existing.forEach((service) => {\n switch (service.spec.type) {\n case 'ClusterIP':\n clusterIP = service;\n clusterIP.spec.ports = [];\n break;\n case 'NodePort':\n nodePort = service;\n nodePort.spec.ports = [];\n break;\n case 'LoadBalancer':\n loadBalancer = service;\n loadBalancer.spec.ports = [];\n break;\n default:\n break;\n }\n });\n }\n ports.forEach((port) => {\n const portSpec = {\n name: port.name, protocol: port.protocol, port: port.containerPort, targetPort: port.containerPort\n };\n\n if (port._serviceType !== '') {\n clusterIP.spec.ports.push(portSpec);\n switch (port._serviceType) {\n case 'NodePort': {\n const npPort = clone(portSpec);\n\n if (port._listeningPort) {\n npPort.nodePort = port._listeningPort;\n }\n nodePort.spec.ports.push(npPort);\n break; }\n case 'LoadBalancer': {\n const lbPort = clone(portSpec);\n\n if (port._listeningPort) {\n lbPort.port = port._listeningPort;\n }\n loadBalancer.spec.ports.push(lbPort);\n break; }\n default:\n break;\n }\n }\n });\n\n const toSave = [];\n const toRemove = [];\n let clusterIPProxy;\n\n if (clusterIP.spec.ports.length > 0) {\n if (clusterIP.id) {\n clusterIPProxy = clusterIP;\n } else {\n clusterIPProxy = await this.$dispatch(`cluster/create`, clusterIP, { root: true });\n }\n toSave.push(clusterIPProxy);\n } else if (clusterIP.id) {\n toRemove.push(clusterIP);\n }\n\n if (nodePort.spec.ports.length > 0) {\n let nodePortProxy;\n\n // if id is defined it's a preexisting service\n if (nodePort.id) {\n nodePortProxy = nodePort;\n } else {\n nodePortProxy = await this.$dispatch(`cluster/create`, nodePort, { root: true });\n }\n toSave.push(nodePortProxy);\n // if id defined but no ports, the service already exists but should be removed (user has removed all container ports mapping to it)\n } else if (nodePort.id) {\n toRemove.push(nodePort);\n }\n\n if (loadBalancer.spec.ports.length > 0) {\n let loadBalancerProxy;\n\n if (loadBalancer.id) {\n loadBalancerProxy = loadBalancer;\n } else {\n loadBalancerProxy = await this.$dispatch(`cluster/create`, loadBalancer, { root: true });\n }\n\n const portsWithIpam = ports.filter((p) => p._ipam) || [];\n\n if (portsWithIpam.length > 0) {\n loadBalancerProxy.metadata.annotations[HCI_LABELS_ANNOTATIONS.CLOUD_PROVIDER_IPAM] = portsWithIpam[0]._ipam;\n }\n\n toSave.push(loadBalancerProxy);\n } else if (loadBalancer.id) {\n toRemove.push(loadBalancer);\n }\n\n return { toSave, toRemove };\n }\n\n cleanForSave(data) {\n const val = super.cleanForSave(data);\n\n delete val.__active;\n delete val.type;\n\n return val;\n }\n\n cleanContainerForSave(container) {\n delete container.__active;\n delete container.active;\n delete container._init;\n delete container.error;\n\n return container;\n }\n}\n","// We use this file when building libraries - we don't want the dynamic code from the shell\n// to be imported again, so we substitute this file which does not have any requires\n\nexport function importCloudCredential(name) {\n return () => undefined;\n}\n\nexport function importMachineConfig(name) {\n return () => undefined;\n}\n\nexport function importLogin(name) {\n return () => undefined;\n}\n\nexport function importChart(name) {\n return () => undefined;\n}\n\nexport function importList(name) {\n return () => undefined;\n}\n\nexport function importDetail(name) {\n return () => undefined;\n}\n\nexport function importEdit(name) {\n return () => undefined;\n}\n\nexport function importDialog(name) {\n return () => undefined;\n}\n\nexport function listProducts() {\n return [];\n}\n\nexport function loadProduct(name, $plugin) {\n return () => undefined;\n}\n\nexport function loadTranslation(name) {\n return () => undefined;\n}\n\nexport function importCustomPromptRemove(name) {\n return () => undefined;\n}\n\nexport function resolveList(key) {\n return undefined;\n}\n\nexport function resolveChart(key) {\n return undefined;\n}\n\nexport function resolveEdit(key) {\n return undefined;\n}\n\nexport function resolveDetail(key) {\n return undefined;\n}\n\nexport function importWindowComponent(name) {\n return () => undefined;\n}\n\nexport function resolveWindowComponent(key) {\n return undefined;\n}\n\nexport function resolveMachineConfigComponent(key) {\n return undefined;\n}\n\nexport function resolveCloudCredentialComponent(key) {\n return undefined;\n}\n","import merge from 'lodash/merge';\n\nimport { SCHEMA } from '@shell/config/types';\nimport { SPOOFED_API_PREFIX, SPOOFED_PREFIX } from '@shell/store/type-map';\nimport { createYaml } from '@shell/utils/create-yaml';\nimport { classify } from '@shell/plugins/dashboard-store/classify';\nimport { normalizeType } from './normalize';\nimport garbageCollect from '@shell/utils/gc/gc';\nimport { addSchemaIndexFields } from '@shell/plugins/steve/schema.utils';\nimport { addParam } from '@shell/utils/url';\nimport { conditionalDepaginate } from '@shell/store/type-map.utils';\n\nexport const _ALL = 'all';\nexport const _MERGE = 'merge';\nexport const _MULTI = 'multi';\nexport const _NONE = 'none';\n\nconst SCHEMA_CHECK_RETRIES = 15;\nconst HAVE_ALL_CHECK_RETRIES = 15;\nconst RETRY_LOG = 10;\n\nexport async function handleSpoofedRequest(rootGetters, schemaStore, opt, product) {\n // Handle spoofed types instead of making an actual request\n // Spoofing is handled here to ensure it's done for both yaml and form editing.\n // It became apparent that this was the only place that both intersected\n if (opt.url.includes(SPOOFED_PREFIX) || opt.url.includes(SPOOFED_API_PREFIX)) {\n const [empty, scheme, type, ...rest] = opt.url.split('/'); // eslint-disable-line no-unused-vars\n const id = rest.join('/'); // Cover case where id contains '/'\n const isApi = scheme === SPOOFED_API_PREFIX;\n const typemapGetter = id ? 'getSpoofedInstance' : 'getSpoofedInstances';\n\n const schemas = rootGetters[`${ schemaStore }/all`](SCHEMA);\n // getters return async getSpoofedInstance/getSpoofedInstances fn\n const instance = await rootGetters[`type-map/${ typemapGetter }`](type, product, id);\n const data = isApi ? createYaml(schemas, type, instance) : instance;\n\n return id && !isApi ? data : { data };\n }\n}\n\nexport async function loadSchemas(ctx, watch = true) {\n const {\n getters, dispatch, commit, rootGetters\n } = ctx;\n const res = await dispatch('findAll', { type: SCHEMA, opt: { url: 'schemas', load: false } });\n const spoofedTypes = rootGetters['type-map/allSpoofedSchemas'] ;\n\n if (Array.isArray(res.data)) {\n res.data = res.data.concat(spoofedTypes);\n } else if (Array.isArray(res)) {\n res.data = res.concat(spoofedTypes);\n }\n\n res.data.forEach(addSchemaIndexFields);\n\n commit('loadAll', {\n ctx,\n type: SCHEMA,\n data: res.data,\n revision: res.revision\n });\n\n if ( watch !== false ) {\n dispatch('watch', {\n type: SCHEMA,\n revision: res.revision\n });\n }\n\n const all = getters.all(SCHEMA);\n\n return all;\n}\n\nconst findAllGetter = (getters, type, opt) => {\n return opt.namespaced ? getters.matching(type, null, opt.namespaced, { skipSelector: true }) : getters.all(type);\n};\n\nexport default {\n request() {\n throw new Error('Not Implemented');\n },\n\n loadSchemas,\n\n // Load a page of data for a given type\n // Used for incremental loading when enabled\n async loadDataPage(ctx, { type, opt }) {\n const { getters, commit, dispatch } = ctx;\n\n type = getters.normalizeType(type);\n\n // if there's no registered type, then register it so\n // that we don't have issues on 'loadAdd' mutation\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n\n const loadCount = getters['loadCounter'](type);\n\n try {\n const res = await dispatch('request', { opt, type });\n\n const newLoadCount = getters['loadCounter'](type);\n\n // Load count changed, so we changed page or started a new load\n // after this page load was started, so don't continue with incremental load\n if (loadCount !== newLoadCount) {\n return;\n }\n\n commit('loadAdd', {\n ctx,\n type,\n data: res.data,\n });\n\n if (res.pagination?.next) {\n dispatch('loadDataPage', {\n type,\n opt: {\n ...opt,\n url: res.pagination?.next\n }\n });\n } else {\n // We have everything!\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n if (opt.namespaced) {\n commit('setHaveNamespace', { type, namespace: opt.namespaced });\n } else {\n commit('setHaveAll', { type });\n }\n }\n } catch (e) {\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n return Promise.reject(e);\n }\n },\n\n /**\n *\n * @param {*} ctx\n * @param { {type: string, opt: ActionFindAllArgs} } opt\n */\n async findAll(ctx, { type, opt }) {\n const {\n getters, commit, dispatch, rootGetters\n } = ctx;\n\n opt = opt || {};\n type = getters.normalizeType(type);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n\n // No need to request the resources if we have them already\n if (\n !opt.force &&\n (\n getters['haveAll'](type) ||\n getters['haveAllNamespace'](type, opt.namespaced)\n )\n ) {\n if (opt.watch !== false ) {\n const args = {\n type,\n revision: '',\n // watchNamespace - used sometimes when we haven't fetched the results of a single namespace\n // namespaced - used when we have fetched the result of a single namespace (see https://github.com/rancher/dashboard/pull/7329/files)\n namespace: opt.watchNamespace || opt.namespaced\n };\n\n dispatch('watch', args);\n }\n\n return findAllGetter(getters, type, opt);\n }\n\n let load = (opt.load === undefined ? _ALL : opt.load);\n\n if ( opt.load === false || opt.load === _NONE ) {\n load = _NONE;\n }\n\n const typeOptions = rootGetters['type-map/optionsFor'](type);\n\n console.log(`Find All: [${ ctx.state.config.namespace }] ${ type }`); // eslint-disable-line no-console\n opt = opt || {};\n opt.url = getters.urlFor(type, null, opt);\n opt.stream = opt.stream !== false && load !== _NONE;\n opt.depaginate = conditionalDepaginate(typeOptions?.depaginate, { ctx, args: { type, opt } });\n\n let skipHaveAll = false;\n\n // if it's incremental loading, we do two parallel requests\n // on for a limit of 100, to quickly show data\n // another one with 1st page of the subset of the resource we are fetching\n // the default is 4 pages, but it can be changed on mixin/resource-fetch.js\n let pageFetchOpts;\n\n if (opt.incremental) {\n commit('incrementLoadCounter', type);\n\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', true, { root: true });\n }\n\n pageFetchOpts = {\n ...opt,\n url: addParam(opt.url, 'limit', `${ opt.incremental }`),\n };\n\n // this is where we \"hijack\" the limit for the dispatch('request') some lines below\n // and therefore have 2 initial requests in parallel\n opt.url = addParam(opt.url, 'limit', '100');\n skipHaveAll = true;\n\n // since we are forcing a request, clear the haveAll\n // needed for the resource-fetch mixin, otherwise the incremental indicator\n // won't pop-up again when manual refreshing\n if (opt.force) {\n commit('forgetType', type);\n }\n }\n\n let streamStarted = false;\n let out;\n\n let queue = [];\n let streamCollection;\n\n opt.onData = function(data) {\n if ( streamStarted ) {\n // Batch loads into groups of 10 to reduce vuex overhead\n queue.push(data);\n\n if ( queue.length > 10 ) {\n const tmp = queue;\n\n queue = [];\n commit('loadMulti', { ctx, data: tmp });\n }\n } else {\n // The first line is the collection object (sans `data`)\n commit('forgetAll', { type });\n streamStarted = true;\n streamCollection = data;\n }\n };\n\n try {\n if (!opt.incremental && opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', true, { root: true });\n }\n\n const res = await dispatch('request', { opt, type });\n\n if ( streamStarted ) {\n // Flush any remaining entries left over that didn't get loaded by onData\n if ( queue.length ) {\n commit('loadMulti', { ctx, data: queue });\n queue = [];\n }\n commit('loadedAll', { type });\n const all = getters.all(type);\n\n res.finishDeferred(all);\n out = streamCollection;\n } else {\n out = res;\n }\n } catch (e) {\n if (!opt.incremental && opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n return Promise.reject(e);\n }\n\n if ( load === _NONE ) {\n if (!opt.incremental && opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n return out;\n } else if ( out.data ) {\n if ( load === _MULTI ) {\n // This has the effect of adding the response to the store,\n // without replacing all the existing content for that type,\n // and without marking that type as having 'all 'loaded.\n //\n // This is used e.g. to load a partial list of settings before login\n // while still knowing we need to load the full list later.\n commit('loadMulti', {\n ctx,\n data: out.data\n });\n } else if (load === _MERGE) {\n // This is like loadMulti (updates existing entries) but also removes entries that no longer exist\n // This allows changes to existing resources to be reflected in place in the UI\n // (normally not needed as Rancher updates come over socket and are handled individually)\n commit('loadMerge', {\n ctx,\n type,\n data: out.data,\n existing: true\n });\n } else {\n commit('loadAll', {\n ctx,\n type,\n data: out.data,\n revision: out.revision,\n skipHaveAll,\n namespace: opt.namespaced,\n pagination: opt.pagination ? {\n request: opt.pagination,\n result: {\n count: out.count,\n pages: out.pages,\n timestamp: new Date().getTime()\n }\n } : undefined,\n });\n }\n\n if (opt.incremental) {\n // This needs to come after the loadAll (which resets state) so supplements via loadDataPage aren't lost\n dispatch('loadDataPage', { type, opt: pageFetchOpts });\n }\n }\n\n // ToDo: SM if we start a \"bigger\" watch (such as watch without a namespace vs a watch with a namespace), we should stop the stop the \"smaller\" watch so we don't have duplicate events coming back\n if ( opt.watch !== false ) {\n const args = {\n type,\n revision: out.revision,\n namespace: opt.watchNamespace || opt.namespaced, // it could be either apparently\n // ToDo: SM namespaced is sometimes a boolean and sometimes a string, I don't see it as especially broken but we should refactor that in the future\n force: opt.forceWatch === true,\n };\n\n dispatch('watch', args);\n }\n\n const all = findAllGetter(getters, type, opt);\n\n if (!opt.incremental && opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n garbageCollect.gcUpdateLastAccessed(ctx, type);\n\n return all;\n },\n\n /**\n *\n * @param {*} ctx\n * @param { {type: string, opt: ActionFindPageArgs} } opt\n */\n async findPage(ctx, { type, opt }) {\n const { getters, commit, dispatch } = ctx;\n\n opt = opt || {};\n\n if (!opt.pagination) {\n console.error('Attempting to find a page for a resource but no pagination settings supplied', type); // eslint-disable-line no-console\n\n return;\n }\n\n type = getters.normalizeType(type);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n\n // No need to request the resources if we have them already\n if (!opt.transient && !opt.force && getters['havePaginatedPage'](type, opt)) {\n return findAllGetter(getters, type, opt);\n }\n\n console.log(`Find Page: [${ ctx.state.config.namespace }] ${ type }. Page: ${ opt.pagination.page }. Size: ${ opt.pagination.pageSize }`); // eslint-disable-line no-console\n opt = opt || {};\n opt.url = getters.urlFor(type, null, opt);\n\n let out;\n\n try {\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', true, { root: true });\n }\n\n out = await dispatch('request', { opt, type });\n } catch (e) {\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n return Promise.reject(e);\n }\n\n await dispatch('unwatch', {\n type,\n all: true,\n });\n\n const pagination = opt.pagination ? {\n request: {\n namespace: opt.namespaced,\n pagination: opt.pagination\n },\n result: {\n count: out.count,\n pages: out.pages || Math.ceil(out.count / (opt.pagination.pageSize || Number.MAX_SAFE_INTEGER)),\n timestamp: new Date().getTime()\n }\n } : undefined;\n\n if (!opt.transient) {\n commit('loadPage', {\n ctx,\n type,\n data: out.data,\n pagination,\n });\n }\n\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n garbageCollect.gcUpdateLastAccessed(ctx, type);\n\n return opt.transient ? {\n data: out.data,\n pagination\n } : findAllGetter(getters, type, opt);\n },\n\n async findMatching(ctx, {\n type,\n selector,\n opt,\n namespace\n }) {\n const {\n getters, commit, dispatch, rootGetters\n } = ctx;\n\n opt = opt || {};\n console.log(`Find Matching: [${ ctx.state.config.namespace }] ${ type }`, selector); // eslint-disable-line no-console\n type = getters.normalizeType(type);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n if ( opt.force !== true && getters['haveSelector'](type, selector) ) {\n return getters.matching( type, selector, namespace );\n }\n\n const typeOptions = rootGetters['type-map/optionsFor'](type);\n\n opt = opt || {};\n opt.labelSelector = selector;\n opt.url = getters.urlFor(type, null, opt);\n opt.depaginate = conditionalDepaginate(typeOptions?.depaginate, { ctx, args: { type, opt } });\n\n const res = await dispatch('request', { opt, type });\n\n if ( opt.load === false ) {\n return res.data;\n }\n\n commit('loadSelector', {\n ctx,\n type,\n entries: res.data,\n selector,\n revision: res.revision,\n });\n\n if ( opt.watch !== false ) {\n dispatch('watch', {\n type,\n selector,\n revision: res.revision,\n force: opt.forceWatch === true,\n });\n }\n\n garbageCollect.gcUpdateLastAccessed(ctx, type);\n\n return getters.matching( type, selector, namespace );\n },\n\n // opt:\n // filter: Filter by fields, e.g. {field: value, anotherField: anotherValue} (default: none)\n // limit: Number of records to return per page (default: 1000)\n // sortBy: Sort by field\n // sortOrder: asc or desc\n // url: Use this specific URL instead of looking up the URL for the type/id. This should only be used for bootstrapping schemas on startup.\n // @TODO depaginate: If the response is paginated, retrieve all the pages. (default: true)\n async find(ctx, { type, id, opt }) {\n if (!id) {\n console.error('Attempting to find a resource with no id', type, id); // eslint-disable-line no-console\n\n return;\n }\n\n const { getters, dispatch } = ctx;\n\n opt = opt || {};\n\n type = normalizeType(type);\n\n console.log(`Find: [${ ctx.state.config.namespace }] ${ type } ${ id }`); // eslint-disable-line no-console\n let out;\n\n if ( opt.force !== true ) {\n out = getters.byId(type, id);\n\n if ( out ) {\n return out;\n }\n }\n\n opt = opt || {};\n opt.url = getters.urlFor(type, id, opt);\n\n const res = await dispatch('request', { opt, type });\n\n await dispatch('load', { data: res });\n\n if ( opt.watch !== false ) {\n const watchMsg = {\n type,\n id,\n // Although not used by sockets, we need this for when resyncWatch calls find... which needs namespace to construct the url\n namespace: opt.namespaced,\n // Override the revision. Used in cases where we need to avoid using the resource's own revision which would be `too old`.\n // For the above case opt.revision will be `null`. If left as `undefined` the subscribe mechanism will try to determine a revision\n // from resources in store (which would be this one, with the too old revision)\n revision: typeof opt.revision !== 'undefined' ? opt.revision : res?.metadata?.resourceVersion,\n force: opt.forceWatch === true,\n };\n\n const idx = id.indexOf('/');\n\n if ( idx > 0 ) {\n watchMsg.namespace = id.substr(0, idx);\n watchMsg.id = id.substr(idx + 1);\n }\n\n dispatch('watch', watchMsg);\n }\n\n out = getters.byId(type, id);\n\n garbageCollect.gcUpdateLastAccessed(ctx, type);\n\n return out;\n },\n\n load(ctx, { data, existing }) {\n const { getters, commit } = ctx;\n\n let type = normalizeType(data.type);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n\n if ( data.baseType && data.baseType !== data.type ) {\n type = normalizeType(data.baseType);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n }\n // Inject special fields for indexing schemas\n if ( type === SCHEMA ) {\n addSchemaIndexFields(data);\n }\n\n const keyField = getters.keyFieldForType(type);\n const id = data?.[keyField] || existing?.[keyField];\n\n if ( !id ) {\n console.warn('Attempting to load a resource with no id', data, existing); // eslint-disable-line no-console\n\n return;\n }\n\n commit('load', {\n ctx,\n data,\n existing\n });\n\n if ( type === SCHEMA ) {\n commit('type-map/schemaChanged', null, { root: true });\n }\n\n return getters['byId'](type, id);\n },\n\n loadMulti(ctx, data) {\n const { commit } = ctx;\n\n commit('loadMulti', {\n data,\n ctx,\n });\n },\n\n batchChanges(ctx, batch) {\n const { commit } = ctx;\n\n commit('batchChanges', {\n ctx,\n batch\n });\n },\n\n loadAll(ctx, { type, data }) {\n const { commit } = ctx;\n\n commit('loadAll', {\n ctx,\n type,\n data\n });\n },\n\n create(ctx, data) {\n return classify(ctx, data);\n },\n\n createMany(ctx, data) {\n return data.map((d) => classify(ctx, d));\n },\n\n async createPopulated(ctx, userData) {\n let data = null;\n\n const schema = ctx.getters['schemaFor'](userData.type);\n\n if (schema) {\n if (schema.fetchResourceFields) {\n // fetch resourceFields for createYaml\n await schema.fetchResourceFields();\n }\n data = ctx.getters['defaultFor'](userData.type, schema);\n }\n\n merge(data, userData);\n\n return classify(ctx, data);\n },\n\n clone(ctx, { resource } = {}) {\n return classify(ctx, resource.toJSON(), true);\n },\n\n // Forget a type in the store\n // Remove all entries for that type and stop watching it\n forgetType({ commit, dispatch, state }, type) {\n state.started\n .filter((entry) => entry.type === type)\n .forEach((entry) => dispatch('unwatch', entry));\n\n commit('forgetType', type);\n },\n\n promptRemove({ commit, state }, resources ) {\n commit('action-menu/togglePromptRemove', resources, { root: true });\n },\n\n promptModal({ commit, state }, data ) {\n commit('action-menu/togglePromptModal', data, { root: true });\n },\n\n resourceAction({ getters, dispatch }, {\n resource, actionName, body, opt,\n }) {\n throw new Error('Not Implemented');\n },\n\n collectionAction({ getters, dispatch }, {\n type, actionName, body, opt\n }) {\n throw new Error('Not Implemented');\n },\n\n cleanForNew(ctx, resource) {\n throw new Error('Not Implemented');\n },\n\n createNamespace(ctx, resource) {\n throw new Error('Not Implemented');\n },\n\n cleanForDiff(ctx, resource) {\n throw new Error('Not Implemented');\n },\n\n // Clean a resource for the ResourceDetail page\n // This can ensure common, required properties exists that might have been removed\n cleanForDetail(ctx, resource) {\n return resource;\n },\n\n cleanForDownload(ctx, resource) {\n return resource;\n },\n\n // Wait for a schema that is expected to exist that may not have been loaded yet (for instance when loadCluster is still running).\n async waitForSchema({ getters, dispatch }, { type }) {\n let tries = SCHEMA_CHECK_RETRIES;\n let schema = null;\n\n while (!schema && tries > 0) {\n // Schemas may not have been loaded, so don't error out if they are not loaded yet\n // the wait here will wait for schemas to load and then for the desired schema to be available\n schema = getters['schemaFor'](type, false, false);\n\n if (!schema) {\n if (tries === RETRY_LOG) {\n console.warn(`Schema for ${ type } not available... retrying...`); // eslint-disable-line no-console\n }\n await new Promise((resolve) => setTimeout(resolve, 1000));\n tries--;\n }\n }\n\n if (tries === 0) {\n // Ran out of tries - fetch the schemas again\n console.warn(`Schema for ${ type } still unavailable... loading schemas again...`); // eslint-disable-line no-console\n await dispatch('loadSchemas', true);\n }\n },\n\n async waitForHaveAll({ getters }, { type, throwError = false, attempts = HAVE_ALL_CHECK_RETRIES }) {\n let tries = attempts;\n let haveAll = null;\n\n while (!haveAll && tries > 0) {\n haveAll = getters['haveAll'](type);\n\n if (!haveAll) {\n if (tries === RETRY_LOG) {\n console.warn(`wait for all of ${ type } continuing...`); // eslint-disable-line no-console\n }\n await new Promise((resolve) => setTimeout(resolve, 1000));\n tries--;\n }\n }\n\n if (tries === 0 && throwError) {\n throw new Error(`Failed to wait for all of ${ type }`);\n }\n },\n\n incrementLoadCounter({ commit }, resource) {\n commit('incrementLoadCounter', resource);\n },\n\n garbageCollect(ctx, ignoreTypes) {\n return garbageCollect.garbageCollect(ctx, ignoreTypes);\n },\n\n gcResetStore({ state }) {\n garbageCollect.gcResetStore(state);\n }\n};\n","\nimport Resource from './resource-class';\n\nexport const BY_TYPE = 'byType';\n\nexport const SELF = '__[[SELF]]__';\n\nexport function classify(ctx, obj, isClone = false) {\n if ( obj instanceof Resource ) {\n return obj;\n }\n\n const customModel = ctx.getters['classify'](obj);\n\n const out = new customModel(obj, ctx, null, isClone);\n\n return out;\n}\n","\nimport { SCHEMA, COUNT } from '@shell/config/types';\n\nimport { matches } from '@shell/utils/selector';\nimport { typeMunge, typeRef, SIMPLE_TYPES } from '@shell/utils/create-yaml';\nimport Resource from '@shell/plugins/dashboard-store/resource-class';\nimport mutations from './mutations';\nimport { keyFieldFor, normalizeType } from './normalize';\nimport { lookup } from './model-loader';\nimport garbageCollect from '@shell/utils/gc/gc';\nimport paginationUtils from '@shell/utils/pagination-utils';\n\nexport const urlFor = (state, getters) => (type, id, opt) => {\n opt = opt || {};\n type = getters.normalizeType(type);\n let url = opt.url;\n\n let schema;\n\n if ( !url ) {\n schema = getters.schemaFor(type);\n\n if ( !schema ) {\n throw new Error(`Unknown schema for type: ${ type }`);\n }\n\n url = schema.links.collection;\n\n if ( !url ) {\n throw new Error(`You don't have permission to list this type: ${ type }`);\n }\n\n if ( id ) {\n url += `/${ id }`;\n }\n }\n\n if ( !url.startsWith('/') && !url.startsWith('http') ) {\n const baseUrl = state.config.baseUrl.replace(/\\/$/, '');\n\n url = `${ baseUrl }/${ url }`;\n }\n\n url = getters.urlOptions(url, opt, schema);\n\n return url;\n};\n\n/**\n * Find the number of resources given\n * - if the type is namespaced\n * - if there are any counts per namespace\n * - if there are no namespaces\n * - if there is no total count\n */\nfunction matchingCounts(typeObj, namespaces) {\n // That was easy\n if ( !typeObj.namespaced || !typeObj.byNamespace || namespaces === null || typeObj.count === null) {\n return typeObj.count;\n }\n\n let out = 0;\n\n // Otherwise start with 0 and count up\n for ( const namespace of namespaces ) {\n out += typeObj.byNamespace[namespace]?.count || 0;\n }\n\n return out;\n}\n\nexport default {\n\n /**\n * Get all entries in the store. This might not mean all entries of this type\n */\n all: (state, getters, rootState) => (type) => {\n type = getters.normalizeType(type);\n\n if ( !getters.typeRegistered(type) ) {\n // Yes this is mutating state in a getter... it's not the end of the world..\n // throw new Error(`All of ${ type } is not loaded`);\n console.warn(`All of ${ type } is not loaded yet`); // eslint-disable-line no-console\n mutations.registerType(state, type);\n }\n\n garbageCollect.gcUpdateLastAccessed({\n state, getters, rootState\n }, type);\n\n return state.types[type].list;\n },\n\n matching: (state, getters, rootState) => (type, selector, namespace, config = { skipSelector: false }) => {\n let matching = getters['all'](type);\n\n // Filter first by namespace if one is provided, since this is efficient\n if (namespace && typeof namespace === 'string') {\n matching = matching.filter((obj) => obj.namespace === namespace);\n }\n\n garbageCollect.gcUpdateLastAccessed({\n state, getters, rootState\n }, type);\n\n // Looks like a falsy selector is a thing, so if we're not interested in filtering by the selector... explicitly avoid it\n if (config.skipSelector) {\n return matching;\n }\n\n return matching.filter((obj) => {\n return matches(obj, selector);\n });\n },\n\n byId: (state, getters, rootState) => (type, id) => {\n type = getters.normalizeType(type);\n const entry = state.types[type];\n\n if ( entry ) {\n garbageCollect.gcUpdateLastAccessed({\n state, getters, rootState\n }, type);\n\n return entry.map.get(id);\n }\n },\n\n /**\n * Checks a schema for the given path\n *\n * Given that schema are primarily a rancher thing most logic is in the `steve` store\n */\n pathExistsInSchema: (state, getters) => (type, path) => {\n return false;\n },\n\n // @TODO resolve difference between this and schemaFor and have only one of them.\n schema: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n const schemas = state.types[SCHEMA];\n const keyField = getters.keyFieldForType(SCHEMA);\n\n return schemas.list.find((x) => {\n const thisOne = getters.normalizeType(x[keyField]);\n\n return thisOne === type || thisOne.endsWith(`.${ type }`);\n });\n },\n\n // Fuzzy search to find a matching schema name for plugins/lookup\n schemaName: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n const schemas = state.types[SCHEMA];\n const keyField = getters.keyFieldForType(SCHEMA);\n const res = schemas.list.find((x) => {\n const thisOne = getters.normalizeType(x[keyField]);\n\n return thisOne === type || thisOne.endsWith(`.${ type }`);\n });\n\n if (!res) {\n return;\n }\n const arrayRes = Array.isArray(res) ? res : [res];\n const entries = arrayRes.map((x) => {\n return x[keyField];\n }).sort((a, b) => {\n return a.length - b.length;\n });\n\n if ( entries[0] ) {\n return entries[0];\n }\n\n return type;\n },\n\n // Fuzzy is only for plugins/lookup, do not use in real code\n schemaFor: (state, getters) => (type, fuzzy = false, allowThrow = true) => {\n const schemas = state.types[SCHEMA];\n\n type = getters.normalizeType(type);\n\n if ( !schemas ) {\n if ( allowThrow ) {\n throw new Error(\"Schemas aren't loaded yet\");\n } else {\n return null;\n }\n }\n\n const out = schemas.map.get(type);\n\n if ( !out && fuzzy ) {\n const close = getters.schemaName(type);\n\n if ( close ) {\n return getters.schemaFor(close);\n }\n }\n\n return out;\n },\n\n defaultFor: (state, getters) => (type, rootSchema, schemaDefinitions = null) => {\n let resourceFields;\n\n if (!schemaDefinitions) {\n // Depth 0. Get the schemaDefinitions that will contain the child schema resourceFields for recursive calls\n\n schemaDefinitions = rootSchema.schemaDefinitions || {}; // norman...\n resourceFields = rootSchema.resourceFields || {};\n } else {\n if (rootSchema.requiresResourceFields) {\n resourceFields = schemaDefinitions[type]?.resourceFields || {};\n } else {\n const schema = getters['schemaFor'](type);\n\n resourceFields = schema?.resourceFields || {};\n }\n }\n\n const out = {};\n\n for ( const key in resourceFields ) {\n const field = resourceFields[key];\n\n if ( !field ) {\n // Not much to do here...\n continue;\n }\n\n const type = typeMunge(field.type);\n const mapOf = typeRef('map', type, field);\n const arrayOf = typeRef('array', type, field);\n const referenceTo = typeRef('reference', type);\n\n if ( mapOf || type === 'map' || type === 'json' ) {\n out[key] = getters.defaultFor(type, rootSchema, schemaDefinitions);\n } else if ( arrayOf || type === 'array' ) {\n out[key] = [];\n } else if ( referenceTo ) {\n out[key] = undefined;\n } else if ( SIMPLE_TYPES.includes(type) ) {\n if ( typeof field['default'] === 'undefined' ) {\n out[key] = undefined;\n } else {\n out[key] = field['default'];\n }\n } else {\n out[key] = getters.defaultFor(type, rootSchema, schemaDefinitions);\n }\n }\n\n return out;\n },\n\n canList: (state, getters) => (type) => {\n const schema = getters.schemaFor(type);\n\n return schema && schema.hasLink('collection');\n },\n\n typeRegistered: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n\n return !!state.types[type];\n },\n\n typeEntry: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n\n return state.types[type];\n },\n\n haveAll: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n const entry = state.types[type];\n\n if ( entry ) {\n return entry.haveAll || false;\n }\n\n return false;\n },\n\n haveAllNamespace: (state, getters) => (type, namespace) => {\n if (!namespace) {\n return false;\n }\n\n type = getters.normalizeType(type);\n const entry = state.types[type];\n\n if ( entry ) {\n return entry.haveNamespace === namespace;\n }\n\n return false;\n },\n\n havePaginatedPage: (state, getters) => (type, opt) => {\n if (!opt.pagination) {\n return false;\n }\n\n type = getters.normalizeType(type);\n const entry = state.types[type];\n\n if ( entry?.havePage ) {\n const { namespace: aNamespace = undefined, pagination: aPagination } = entry.havePage.request;\n const { namespace: bNamespace = undefined, pagination: bPagination } = {\n namespace: opt.namespaced,\n pagination: opt.pagination\n };\n\n return entry.havePage && aNamespace === bNamespace && paginationUtils.paginationEqual(aPagination, bPagination);\n }\n\n return false;\n },\n\n haveNamespace: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n\n return state.types[type]?.haveNamespace || null;\n },\n\n havePage: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n\n return state.types[type]?.havePage || null;\n },\n\n haveSelector: (state, getters) => (type, selector) => {\n type = getters.normalizeType(type);\n const entry = state.types[type];\n\n if ( entry ) {\n return entry.haveSelector[selector] || false;\n }\n\n return false;\n },\n\n normalizeType: () => (type) => {\n return normalizeType(type);\n },\n\n keyFieldForType: () => (type) => {\n return keyFieldFor(type);\n },\n\n urlFor,\n\n urlOptions: () => (url, opt, schema) => {\n return url;\n },\n\n storeName: (state) => {\n return state.config.namespace;\n },\n\n defaultModel: () => () => {\n return undefined;\n },\n\n classify: (state, getters, rootState) => (obj) => {\n return lookup(state.config.namespace, obj?.type, obj?.metadata?.name, rootState) || Resource;\n },\n\n cleanResource: () => (existing, data) => {\n return data;\n },\n\n isClusterStore: (state) => {\n return state.config.isClusterStore;\n },\n\n // Increment the load counter for a resource type\n // This is used for incremental loading do detect when a page changes occur of the a reload happend\n // While a previous incremental loading operation is still in progress\n loadCounter: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n\n if (!!state.types[type]) {\n return state.types[type].loadCounter;\n }\n\n return 0;\n },\n\n gcIgnoreTypes: () => {\n return {};\n },\n\n /**\n * For the given type, and it's settings, find the number of resources associated with it\n *\n * This takes into account if the type is namespaced.\n *\n * Used in currently two places\n * - Type\n * - getTree\n *\n * @param typeObj see inners for properties. must have at least `name` (resource type)\n *\n */\n count: (state, getters, rootState, rootGetters) => (typeObj) => {\n let _typeObj = typeObj;\n const { name: type, count } = _typeObj;\n\n if (!type) {\n throw new Error(`Resource type required to calc count: ${ JSON.stringify(typeObj) }`);\n }\n\n if (!count) {\n const schema = getters.schemaFor(type);\n const counts = getters.all(COUNT)?.[0]?.counts || {};\n const count = counts[type];\n\n // This object aligns with `Type.vue` `type`\n _typeObj = {\n count: count ? count.summary.count || 0 : null,\n byNamespace: count ? count.namespaces : {},\n revision: count ? count.revision : null,\n namespaced: schema?.attributes?.namespaced\n };\n }\n\n const namespaces = _typeObj?.namespaced && !rootGetters.isAllNamespaces ? Object.keys(rootGetters.activeNamespaceCache || {}) : [];\n\n return matchingCounts(_typeObj, namespaces.length ? namespaces : null);\n },\n\n generation: (state, getters) => (type) => {\n type = getters.normalizeType(type);\n const entry = state.types[type];\n\n if ( entry ) {\n return entry.generation;\n }\n\n return undefined;\n },\n\n paginationEnabled: (state, getters, rootState, rootGetters) => (args) => {\n const id = typeof args === 'object' ? args.id : args;\n const context = typeof args === 'object' ? args.context : undefined;\n\n const store = state.config.namespace;\n const resource = id || context ? { id, context } : null;\n\n return paginationUtils.isEnabled({ rootGetters }, { store, resource });\n }\n};\n","import actions from './actions';\nimport getters from './getters';\nimport mutations from './mutations';\nimport { markRaw } from 'vue';\n\nexport const coreStoreModule = {\n strict: false,\n namespaced: true,\n\n state() {\n return { ...coreStoreState() };\n },\n\n getters: { ...getters },\n\n mutations: { ...mutations },\n actions: { ...actions },\n};\n\nexport const coreStoreState = (namespace, baseUrl, isClusterStore) => ({\n config: {\n baseUrl,\n namespace,\n isClusterStore\n },\n types: {},\n $ctx: markRaw({}),\n});\n\nexport default (vuexModule, config, init) => {\n const namespace = config.namespace || '';\n\n return function(store) {\n store.registerModule(namespace, vuexModule);\n store.commit(`${ namespace }/applyConfig`, config);\n\n const module = store._modules.root._children[namespace];\n\n const ctx = new Proxy(module.context, {\n get(obj, key) {\n if ( key === 'rootGetters' ) {\n return store.getters;\n }\n\n return obj[key];\n }\n });\n\n if (init) {\n init(store, ctx);\n }\n };\n};\n","// Import all shell models. We could try to be smart here and only pull in the one's that harvester uses... but there's a lot across a\n// number of stores\nexport default function modelLoaderRequire(type) {\n return require(`@shell/models/${ type }`);\n}\n","import { normalizeType } from './normalize';\nimport modelLoaderRequire from './model-loader-require';\n\nconst cache = {};\n\nfunction find(cache, type, rootState) {\n const impl = cache[type];\n\n if ( impl ) {\n return impl;\n } else if ( typeof impl !== 'undefined' ) {\n return null;\n }\n\n try {\n const pluginModel = rootState.$plugin.getDynamic('models', type);\n let base;\n\n if (!pluginModel) {\n // Model hasn't come from a plugin, fall back on something reasonable\n // by default this is the dashboard's local models folder\n base = modelLoaderRequire(type);\n } else if (typeof pluginModel === 'function') {\n // pluginModel could be an object in the case the plugin is built-in\n base = pluginModel();\n } else {\n base = pluginModel;\n }\n\n // New Class models\n if ( base?.default?.prototype ) {\n cache[type] = base.default;\n\n return base.default;\n }\n } catch (e) {\n if ( e?.code !== 'MODULE_NOT_FOUND' ) {\n // eslint-disable-next-line no-console\n console.error('Find error', type, e);\n }\n }\n\n cache[type] = null;\n\n return null;\n}\n\n/**\n * This will lookup and load a model based on the type\n *\n * @param {*} store the name of the store that the type comes from\n * @param {*} type the type we'd like to lookup\n */\nexport function lookup(store, type, _name, rootState) {\n type = normalizeType(type).replace(/\\//g, '');\n\n let out;\n const tries = [\n `${ store }/${ type }`,\n type\n ];\n\n for ( const t of tries ) {\n out = find(cache, t, rootState);\n if ( out ) {\n return out;\n }\n }\n\n return null;\n}\n\n// Delete a cached model\nexport function clearModelCache(type) {\n delete cache[type];\n}\n","import { reactive } from 'vue';\nimport { addObject, addObjects, clear, removeObject } from '@shell/utils/array';\nimport { SCHEMA, COUNT } from '@shell/config/types';\nimport { normalizeType, keyFieldFor } from '@shell/plugins/dashboard-store/normalize';\nimport { addSchemaIndexFields } from '@shell/plugins/steve/schema.utils';\nimport { classify } from '@shell/plugins/dashboard-store/classify';\nimport garbageCollect from '@shell/utils/gc/gc';\n\nfunction registerType(state, type) {\n let cache = state.types[type];\n\n if ( !cache ) {\n cache = {\n list: [],\n haveAll: false,\n haveSelector: {},\n /**\n * If the cached list only contains resources for a namespace, this will contain the ns name\n */\n haveNamespace: undefined,\n /**\n * If the cached list only contains resources from a pagination request, this will contain the pagination settings (`StorePagination`)\n */\n havePage: undefined,\n /**\n * The highest known resourceVersion from the server for this type\n */\n revision: 0,\n /**\n * Updated every time something is loaded for this type\n */\n generation: 0,\n /**\n * Used to cancel incremental loads if the page changes during load\n */\n loadCounter: 0,\n\n // Not enumerable so they don't get sent back to the client for SSR\n map: new Map(),\n };\n\n state.types[type] = cache;\n }\n\n return cache;\n}\n\nexport function replace(existing, data) {\n const existingPropertyMap = {};\n\n for ( const k of Object.keys(existing) ) {\n delete existing[k];\n existingPropertyMap[k] = true;\n }\n\n let newProperty = false;\n\n for ( const k of Object.keys(data) ) {\n if (!newProperty && !existingPropertyMap[k]) {\n newProperty = true;\n }\n\n existing[k] = data[k];\n }\n\n return newProperty ? reactive(existing) : existing;\n}\n\nfunction replaceResource(existing, data, getters) {\n data = getters.cleanResource(existing, data);\n\n return replace(existing, data);\n}\n\n/**\n * `load` can be called as part of a loop. to avoid common look ups create them up front and pass as `cachedArgs`\n */\nexport function createLoadArgs(ctx, dataType) {\n const { getters } = ctx;\n const type = normalizeType(dataType);\n const keyField = getters.keyFieldForType(type);\n const opts = ctx.rootGetters[`type-map/optionsFor`](type);\n\n return {\n type, keyField, opts\n };\n}\n\nexport function load(state, {\n data, ctx, existing, cachedArgs\n}) {\n const { getters } = ctx;\n // Optimisation. This can run once per resource loaded.., so pass in from parent\n const { type: cachedType, keyField, opts } = cachedArgs || createLoadArgs(ctx, data.type);\n let type = cachedType;\n\n const limit = opts?.limit;\n\n // Inject special fields for indexing schemas\n if ( type === SCHEMA ) {\n addSchemaIndexFields(data);\n }\n\n const id = data[keyField];\n\n let cache = registerType(state, type);\n\n cache.generation++;\n\n let entry = cache.map.get(id);\n const inMap = !!entry;\n\n //\n // Determine the `entry` that should be in the local map and list cache\n //\n if ( existing && !existing.id ) {\n // A specific proxy instance to use was passed in (for create -> save), use it instead of making a new proxy\n // `existing` is a classified resource created locally that is most probably not in the store (unless a slow connection means it's added by socket before the API responds)\n // Note - `existing` has no `id` because the resource was created locally and not supplied by Rancher API\n\n // Get the latest and greatest version of the resource\n const latestEntry = replaceResource(existing, data, getters);\n\n if (inMap) {\n // There's already an entry in the store, so merge changes into it. The list entry is a reference to the map (and vice versa)\n entry = replaceResource(entry, latestEntry, getters);\n } else {\n // There's no entry, using existing proxy\n entry = latestEntry;\n }\n } else {\n if (inMap) {\n // There's already an entry in the store, so merge changes into it. The list entry is a reference to the map (and vice versa)\n entry = replaceResource(entry, data, getters);\n } else {\n // There's no entry, make a new proxy\n entry = reactive(classify(ctx, data));\n }\n }\n\n //\n // Ensure the `entry` is in both both list and cache\n // Note - We should be safe assuming the two collections have parity (not in map means not in list)\n //\n if (!inMap) {\n cache.list.push(entry);\n cache.map.set(id, entry);\n }\n\n // If there is a limit to the number of resources we can store for this type then\n // remove the first one to keep the list size to that limit\n if (limit && cache.list.length > limit) {\n const rm = cache.list.shift();\n\n cache.map.delete(rm.id);\n }\n\n if ( data.baseType ) {\n type = normalizeType(data.baseType);\n cache = state.types[type];\n if ( cache ) {\n addObject(cache.list, entry);\n cache.map.set(id, entry);\n }\n }\n\n cache.havePage = false;\n\n return entry;\n}\n\nexport function forgetType(state, type) {\n const cache = state.types[type];\n\n if ( cache ) {\n cache.haveAll = false;\n cache.haveSelector = {};\n cache.haveNamespace = undefined;\n cache.havePage = undefined;\n cache.revision = 0;\n cache.generation = 0;\n clear(cache.list);\n cache.map.clear();\n delete state.types[type];\n\n garbageCollect.gcResetType(state, type);\n\n return true;\n }\n}\n\nexport function resetStore(state, commit) {\n // eslint-disable-next-line no-console\n console.log('Reset store: ', state.config.namespace);\n\n for ( const type of Object.keys(state.types) ) {\n commit(`${ state.config.namespace }/forgetType`, type);\n }\n\n garbageCollect.gcResetStore(state);\n}\n\nexport function remove(state, obj, getters) {\n if (obj) {\n let type = normalizeType(obj.type);\n const keyField = getters[`${ state.config.namespace }/keyFieldForType`](type);\n const id = obj[keyField];\n\n let entry = state.types[type];\n\n if ( entry ) {\n removeObject(entry.list, obj);\n entry.map.delete(id);\n }\n\n if ( obj.baseType ) {\n type = normalizeType(obj.baseType);\n entry = state.types[type];\n\n if ( entry ) {\n removeObject(entry.list, obj);\n entry.map.delete(id);\n }\n }\n }\n}\n\nexport function batchChanges(state, { ctx, batch }) {\n const batchTypes = Object.keys(batch);\n const combinedBatch = {};\n\n batchTypes.forEach((batchType) => {\n combinedBatch[batchType] = batch[batchType];\n const typeOption = ctx.rootGetters['type-map/optionsFor'](batchType);\n\n if (typeOption?.alias?.length > 0) {\n const alias = typeOption?.alias || [];\n\n alias.forEach((aliasType) => {\n combinedBatch[aliasType] = {};\n for (const [key, value] of Object.entries(batch[batchType])) {\n combinedBatch[aliasType][key] = {\n ...value,\n type: aliasType\n };\n }\n });\n }\n });\n\n const combinedBatchTypes = Object.keys(combinedBatch);\n\n combinedBatchTypes.forEach((type) => {\n const normalizedType = normalizeType(type === 'counts' ? COUNT : type);\n const keyField = keyFieldFor(normalizedType);\n const typeCache = registerType(state, normalizedType);\n\n // making a map for every resource's location in the list is gonna ensure we only have to loop through the big list once.\n const typeCacheIndexMap = {};\n\n typeCache.list.forEach((resource, index) => {\n typeCacheIndexMap[resource[keyField]] = index;\n });\n\n const removeAtIndexes = [];\n\n // looping through the batch, executing changes, deferring creates and removes since they change the array length\n Object.keys(combinedBatch[normalizedType]).forEach((id) => {\n const index = typeCacheIndexMap[id];\n const resource = combinedBatch[normalizedType][id];\n\n // an empty resource passed into batch changes is how we'll signal which ones to delete\n if (Object.keys(resource).length === 0 && index !== undefined) {\n typeCache.map.delete(id);\n removeAtIndexes.push(index);\n } else if (Object.keys(resource).length === 0) {\n // No op. We're removing it... but we don't have it in the cache\n } else {\n if (normalizedType === SCHEMA) {\n addSchemaIndexFields(resource);\n }\n const classyResource = reactive(classify(ctx, resource));\n\n if (index === undefined) {\n typeCache.list.push(classyResource);\n typeCache.map.set(id, classyResource);\n\n typeCacheIndexMap[classyResource[keyField]] = typeCache.list.length - 1;\n } else {\n replaceResource(typeCache.list[index], resource, ctx.getters);\n }\n }\n });\n\n // looping through the removeAtIndexes, making sure to offset by iteration so the array changing doesn't mess us up\n removeAtIndexes.sort().forEach((cacheIndex, loopIndex) => {\n typeCache.list.splice(cacheIndex - loopIndex, 1);\n });\n\n const opts = ctx.rootGetters[`type-map/optionsFor`](type);\n const limit = opts?.limit;\n\n // If there is a limit to the number of resources we can store for this type then\n // remove the first one to keep the list size to that limit\n if (limit && typeCache.list.length > limit) {\n const rm = typeCache.list.shift();\n\n typeCache.map.delete(rm.id);\n }\n\n typeCache.generation++;\n });\n}\n\nexport function loadAll(state, {\n type,\n data,\n ctx,\n skipHaveAll,\n namespace,\n revision\n}) {\n const { getters } = ctx;\n\n if (!data) {\n return;\n }\n\n const opts = ctx.rootGetters[`type-map/optionsFor`](type);\n const limit = opts?.limit;\n\n // If there is a limit, only store the last elements from the list to keep to that limit\n if (limit) {\n data = data.slice(-limit);\n }\n\n const keyField = getters.keyFieldForType(type);\n const proxies = reactive(data.map((x) => classify(ctx, x)));\n const cache = registerType(state, type);\n\n clear(cache.list);\n cache.map.clear();\n cache.revision = revision || 0;\n cache.generation++;\n\n addObjects(cache.list, proxies);\n\n for ( let i = 0 ; i < proxies.length ; i++ ) {\n cache.map.set(proxies[i][keyField], proxies[i]);\n }\n\n // Allow requester to skip setting that everything has loaded\n if (!skipHaveAll) {\n if (namespace) {\n cache.havePage = false;\n cache.haveNamespace = namespace;\n cache.haveAll = false;\n } else {\n cache.havePage = false;\n cache.haveNamespace = false;\n cache.haveAll = true;\n }\n }\n\n return proxies;\n}\n\n/**\n * Add a set of resources to the store for a given type\n *\n * Don't mark the 'haveAll' field - this is used for incremental loading\n */\nexport function loadAdd(state, { type, data: allLatest, ctx }) {\n const { getters } = ctx;\n const keyField = getters.keyFieldForType(type);\n const cachedArgs = createLoadArgs(ctx, allLatest?.[0]?.type);\n\n allLatest.forEach((entry) => {\n const existing = state.types[type].map.get(entry[keyField]);\n\n load(state, {\n data: entry, ctx, existing, cachedArgs\n });\n });\n}\n\nexport default {\n registerType,\n load,\n\n applyConfig(state, config) {\n if ( !state.config ) {\n state.config = {};\n }\n\n Object.assign(state.config, config);\n },\n\n /**\n * Load multiple different types of resources\n */\n loadMulti(state, { data, ctx }) {\n // console.log('### Mutation loadMulti', data?.length);\n\n for ( const entry of data ) {\n load(state, { data: entry, ctx });\n }\n },\n\n /**\n * Load the results of a request that used a selector (like label)\n */\n loadSelector(state, {\n type, entries, ctx, selector, revision\n }) {\n const cache = registerType(state, type);\n const cachedArgs = createLoadArgs(ctx, entries?.[0]?.type);\n\n for ( const data of entries ) {\n load(state, {\n data, ctx, cachedArgs\n });\n }\n\n cache.haveSelector[selector] = true;\n cache.revision = revision || 0;\n },\n\n /**\n * Load the results of a request to fetch all resources or all resources in a namespace\n */\n loadAll,\n\n /**\n * Handles changes (add, update, remove) to multiple resources for multiple types\n */\n batchChanges,\n\n loadMerge(state, { type, data: allLatest, ctx }) {\n const { commit, getters } = ctx;\n // const allLatest = await dispatch('findAll', { type, opt: { force: true, load, _NONE } });\n // const allExisting = getters.all({type});\n const keyField = getters.keyFieldForType(type);\n const cache = state.types[type];\n const cachedArgs = createLoadArgs(ctx, allLatest?.[0].type);\n\n allLatest.forEach((entry) => {\n const existing = state.types[type].map.get(entry[keyField]);\n\n load(state, {\n data: entry, ctx, existing, cachedArgs\n });\n });\n cache.list.forEach((entry) => {\n if (!allLatest.find((toLoadEntry) => toLoadEntry.id === entry.id)) {\n commit('remove', entry);\n }\n });\n },\n\n /**\n * Load resources, but don't set `haveAll`\n */\n loadAdd,\n\n /**\n * Load the results of a request for a page. Often used to exercise advanced filtering\n */\n loadPage(state, {\n type,\n data,\n ctx,\n pagination,\n }) {\n if (!data) {\n return;\n }\n\n const keyField = ctx.getters.keyFieldForType(type);\n const proxies = reactive(data.map((x) => classify(ctx, x)));\n const cache = registerType(state, type);\n\n clear(cache.list);\n cache.map.clear();\n cache.generation++;\n\n addObjects(cache.list, proxies);\n\n for ( let i = 0 ; i < proxies.length ; i++ ) {\n cache.map.set(proxies[i][keyField], proxies[i]);\n }\n\n // havePage is of type `StorePagination`\n cache.havePage = pagination;\n cache.haveNamespace = undefined;\n cache.haveAll = undefined;\n\n return proxies;\n },\n\n forgetAll(state, { type }) {\n const cache = registerType(state, type);\n\n clear(cache.list);\n cache.map.clear();\n cache.generation++;\n },\n\n setHaveAll(state, { type }) {\n const cache = registerType(state, type);\n\n cache.haveAll = true;\n },\n\n setHaveNamespace(state, { type, namespace }) {\n const cache = registerType(state, type);\n\n cache.haveNamespace = namespace;\n },\n\n loadedAll(state, { type }) {\n const cache = registerType(state, type);\n\n cache.generation++;\n cache.haveAll = true;\n },\n\n remove(state, obj) {\n if (obj) {\n remove(state, obj, this.getters);\n }\n },\n\n reset(state) {\n resetStore(state, this.commit);\n },\n\n forgetType,\n\n incrementLoadCounter(state, type) {\n const typeData = state.types[type];\n\n if (typeData) {\n typeData.loadCounter++;\n }\n },\n\n};\n","import { SCHEMA } from '@shell/config/types';\n\nimport { applyChangeset, changeset, changesetConflicts } from '@shell/utils/object';\n\nexport const KEY_FIELD_FOR = {\n [SCHEMA]: '_id',\n default: 'id',\n};\n\nexport function keyFieldFor(type) {\n return KEY_FIELD_FOR[type] || KEY_FIELD_FOR['default'];\n}\n\nexport function normalizeType(type) {\n type = (type?.type || type || '').toLowerCase();\n\n return type;\n}\n\n// Detect and resolve conflicts from a 409 response.\n// If they are resolved, return a false-y value\n// Else they can't be resolved, return an array of errors to show to the user.\nexport async function handleConflict(initialValueJSON, value, liveValue, rootGetters, store, storeNamespace) {\n const orig = await store.dispatch(`${ storeNamespace }/cleanForDiff`, initialValueJSON, { root: true });\n const user = await store.dispatch(`${ storeNamespace }/cleanForDiff`, value.toJSON(), { root: true });\n const cur = await store.dispatch(`${ storeNamespace }/cleanForDiff`, liveValue.toJSON(), { root: true });\n\n const bgChange = changeset(orig, cur);\n const userChange = changeset(orig, user);\n const actualConflicts = changesetConflicts(bgChange, userChange);\n\n console.log('Background Change', bgChange); // eslint-disable-line no-console\n console.log('User Change', userChange); // eslint-disable-line no-console\n console.log('Conflicts', actualConflicts); // eslint-disable-line no-console\n\n value.metadata.resourceVersion = liveValue.metadata.resourceVersion;\n applyChangeset(value, bgChange);\n\n if ( actualConflicts.length ) {\n // Stop the save and let the user inspect and continue editing\n const out = [rootGetters['i18n/t']('validation.conflict', { fields: actualConflicts.join(', '), fieldCount: actualConflicts.length })];\n\n return out;\n } else {\n // The save can continue\n return false;\n }\n}\n","import isEmpty from 'lodash/isEmpty';\n\nexport function flowOutput(spec, getters, errors, validatorArgs) {\n const verifyLocal = validatorArgs.includes('verifyLocal');\n const localOutputRefs = spec.localOutputRefs || [];\n const globalOutputRefs = spec.globalOutputRefs || [];\n\n if (verifyLocal) {\n if (isEmpty(localOutputRefs) && isEmpty(globalOutputRefs)) {\n errors.push(getters['i18n/t']('validation.flowOutput.both'));\n }\n } else if (isEmpty(globalOutputRefs)) {\n errors.push(getters['i18n/t']('validation.flowOutput.global'));\n }\n}\n","import isEmpty from 'lodash/isEmpty';\r\n\r\nexport function logdna(value, getters, errors, validatorArgs) {\r\n if (isEmpty(value)) {\r\n return;\r\n }\r\n\r\n if (isEmpty(value.api_key)) {\r\n errors.push(getters['i18n/t']('validation.output.logdna.apiKey'));\r\n }\r\n}\r\n","import isEmpty from 'lodash/isEmpty';\nimport { validateDnsLabel, validateHostname } from '@shell/utils/validators';\n\nexport function servicePort(spec, getters, errors, validatorArgs) {\n const { ports, type: serviceType } = spec;\n\n if (serviceType === 'ExternalName') {\n return errors;\n }\n\n if (isEmpty(ports)) {\n errors.push(getters['i18n/t']('validation.required', { key: 'Port Rules' }));\n\n return errors;\n }\n\n ports.forEach((port, ind, ary) => {\n const {\n name,\n nodePort,\n port: pPort,\n targetPort,\n } = port;\n const idx = ind + 1;\n\n if (ary.length > 1 && isEmpty(name)) {\n errors.push(getters['i18n/t']('validation.service.ports.name.required', { position: idx }));\n }\n\n if (!isEmpty(name)) {\n const nameErrors = validateDnsLabel(name, 'name', getters, undefined, errors);\n\n if (!isEmpty(nameErrors)) {\n if (errors.length && errors.length > 0) {\n errors = [...errors, ...nameErrors];\n } else {\n errors = nameErrors;\n }\n }\n }\n\n if (nodePort) {\n const np = parseInt(nodePort, 10);\n\n if (isNaN(np)) {\n errors.push(getters['i18n/t']('validation.service.ports.nodePort.requiredInt', { position: idx }));\n }\n }\n\n if (pPort) {\n const p = parseInt(pPort, 10);\n\n if (isNaN(p)) {\n errors.push(getters['i18n/t']('validation.service.ports.port.requiredInt', { position: idx }));\n }\n } else {\n errors.push(getters['i18n/t']('validation.service.ports.port.required', { position: idx }));\n }\n\n if (targetPort) {\n const tpIanaDisplayKey = getters['i18n/t']('validation.service.ports.targetPort.ianaAt', { position: idx });\n const tp = parseInt(targetPort, 10);\n const tpTest = new RegExp('^\\\\d+$');\n const targetPortIsNumber = tpTest.test(targetPort);\n\n if (!targetPortIsNumber) { // not a number\n /* [rfc6335](https://tools.ietf.org/rfc/rfc6335.txt) port name (IANA_SVC_NAME)\n An alphanumeric (a-z, and 0-9) string, with a maximum length of 15 characters,\n with the '-' character allowed anywhere except the first or the last character or adjacent to another '-' character,\n it must contain at least a(a - z) character\n validateChars(str, { validChars: 'A-Za-z0-9_.-' }, displayKey, intl, errors); */\n const opts = {\n ianaServiceName: true,\n maxLength: 15,\n validChars: 'A-Za-z0-9-',\n };\n const isIanaServiceNameErrors = validateDnsLabel(targetPort, tpIanaDisplayKey, getters, opts, errors);\n\n if (!isEmpty(isIanaServiceNameErrors)) {\n errors.push(...isIanaServiceNameErrors);\n }\n } else if (tp < 1 || tp > 65535) {\n errors.push(getters['i18n/t']('validation.service.ports.targetPort.between', { position: idx }));\n }\n } else {\n errors.push(getters['i18n/t']('validation.service.ports.targetPort.required', { position: idx }));\n }\n });\n\n return errors;\n}\n\nexport function clusterIp(spec, getters, errors, validatorArgs) {\n /*\n clusterIP is the IP address of the service and is usually assigned randomly by the master.\n If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail.\n This field can not be changed through updates.\n Valid values are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. \\\"None\\\" can be specified for headless services when proxying is not required.\n Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName.\n More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n */\n const typesToCheck = ['ClusterIP', 'NodePort', 'LoadBalancer'];\n const serviceType = spec?.type;\n\n if (!typesToCheck.includes(serviceType)) {\n // validation only applies to services in the types to check\n return errors;\n }\n\n return errors;\n}\n\nexport function externalName(spec, getters, errors, validatorArgs) {\n /*\n externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service.\n No proxying will be involved.\n Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.\n */\n if (spec?.type === 'ExternalName') {\n if (isEmpty(spec?.externalName)) {\n errors.push(getters['i18n/t']('validation.service.externalName.none'));\n } else {\n const hostNameErrors = validateHostname(spec.externalName, 'ExternalName', getters, undefined, errors);\n\n if (!isEmpty(hostNameErrors)) {\n if (errors.length && errors.length > 0) {\n errors = [...errors, ...hostNameErrors];\n } else {\n errors = hostNameErrors;\n }\n }\n }\n }\n\n return errors;\n}\n","import has from 'lodash/has';\nimport isEmpty from 'lodash/isEmpty';\n\nexport function ruleGroups(spec, getters, errors, validatorArgs) {\n if (isEmpty(spec?.groups)) {\n errors.push(getters['i18n/t']('validation.prometheusRule.groups.required'));\n }\n\n return errors;\n}\n\nexport function groupsAreValid(groups = [], getters, errors, validatorArgs) {\n groups.forEach((group, groupIndex) => {\n const readableGroupIndex = groupIndex + 1; // oh that ol zero based array index....\n\n if (isEmpty(group?.name)) {\n errors.push(\n getters['i18n/t']('validation.prometheusRule.groups.valid.name', { index: readableGroupIndex })\n );\n }\n\n if (isEmpty(group?.rules)) {\n errors.push(\n getters['i18n/t'](\n 'validation.prometheusRule.groups.valid.singleEntry',\n { index: readableGroupIndex }\n )\n );\n } else {\n group.rules.forEach((rule, ruleIndex) => {\n const readableRuleIndex = ruleIndex + 1; // oh that ol zero based array index....\n\n if (has(rule, 'alert') && isEmpty(rule?.alert)) {\n errors.push(\n getters['i18n/t'](\n 'validation.prometheusRule.groups.valid.rule.alertName',\n { groupIndex: readableGroupIndex, ruleIndex: readableRuleIndex }\n )\n );\n } else if (has(rule, 'record') && isEmpty(rule?.record)) {\n errors.push(\n getters['i18n/t'](\n 'validation.prometheusRule.groups.valid.rule.recordName',\n { groupIndex: readableGroupIndex, ruleIndex: readableRuleIndex }\n )\n );\n }\n\n if ((has(rule, 'expr') && isEmpty(rule.expr)) || !has(rule, 'expr')) {\n errors.push(\n getters['i18n/t'](\n 'validation.prometheusRule.groups.valid.rule.expr',\n { groupIndex: readableGroupIndex, ruleIndex: readableRuleIndex }\n )\n );\n }\n\n if (has(rule, 'alert')) {\n if (\n (has(rule, 'labels') && isEmpty(rule.labels)) ||\n !has(rule, 'labels')\n ) {\n errors.push(\n getters['i18n/t'](\n 'validation.prometheusRule.groups.valid.rule.labels',\n { groupIndex: readableGroupIndex, ruleIndex: readableRuleIndex }\n )\n );\n }\n }\n });\n }\n });\n\n return errors;\n}\n","import isEmpty from 'lodash/isEmpty';\n\nexport function matching(spec, getters, errors, validatorArgs) {\n if (isEmpty(spec?.match) && isEmpty(spec?.['match_re'])) {\n errors.push(getters['i18n/t']('validation.monitoring.route.match'));\n }\n}\n\nexport function interval(value, getters, errors, validatorArgs, displayKey) {\n if (!/^\\d+[hms]$/.test(value)) {\n errors.push(getters['i18n/t']('validation.monitoring.route.interval', { key: displayKey }));\n }\n}\n","import { get } from '@shell/utils/object';\n\nexport function containerImages(spec, getters, errors) {\n let podSpec;\n\n if (spec.jobTemplate) {\n // cronjob pod template is nested slightly different than other types\n podSpec = get(spec, 'jobTemplate.spec.template.spec');\n } else {\n podSpec = get(spec, 'template.spec');\n }\n\n if (!podSpec.containers || !podSpec.containers.length) {\n errors.push(getters['i18n/t']('validation.required', { key: getters['i18n/t']('workload.container.titles.containers') }));\n\n return;\n }\n\n podSpec.containers.forEach((container) => {\n if (container && !container.image) {\n errors.push(getters['i18n/t']('workload.validation.containerImage', { name: container.name }));\n }\n });\n}\n","import { isEmpty } from '@shell/utils/object';\n\n// spec = podSpec.affinity\nexport function podAffinity(spec, getters, errors) {\n if (!spec) {\n return;\n }\n const { podAffinity, podAntiAffinity } = spec;\n\n // pod affinity\n if (podAffinity && !isEmpty(podAffinity)) {\n const { preferredDuringSchedulingIgnoredDuringExecution = [], requiredDuringSchedulingIgnoredDuringExecution = [] } = podAffinity;\n\n preferredDuringSchedulingIgnoredDuringExecution.forEach((term, i) => {\n const errorOpts = {\n index: i,\n group: getters['i18n/t']('validation.podAffinity.affinityTitle'),\n rules: getters['i18n/t']('validation.podAffinity.preferredDuringSchedulingIgnoredDuringExecution')\n };\n\n validateTermWeight(term, errorOpts, getters, errors);\n\n const { podAffinityTerm = {} } = term;\n\n validateTopologyKey(podAffinityTerm, errorOpts, getters, errors);\n validateLabelSelector(podAffinityTerm, errorOpts, getters, errors);\n });\n\n requiredDuringSchedulingIgnoredDuringExecution.forEach((term, i) => {\n const errorOpts = {\n index: i,\n group: getters['i18n/t']('validation.podAffinity.affinityTitle'),\n rules: getters['i18n/t']('validation.podAffinity.requiredDuringSchedulingIgnoredDuringExecution')\n };\n\n validateTopologyKey(term, errorOpts, getters, errors);\n validateLabelSelector(term, errorOpts, getters, errors);\n });\n }\n\n // pod antiaffinity\n if (podAntiAffinity && !isEmpty(podAntiAffinity)) {\n const { preferredDuringSchedulingIgnoredDuringExecution = [], requiredDuringSchedulingIgnoredDuringExecution = [] } = podAntiAffinity;\n\n preferredDuringSchedulingIgnoredDuringExecution.forEach((term, i) => {\n const errorOpts = {\n index: i,\n group: getters['i18n/t']('validation.podAffinity.antiAffinityTitle'),\n rules: getters['i18n/t']('validation.podAffinity.preferredDuringSchedulingIgnoredDuringExecution')\n };\n\n validateTermWeight(term, errorOpts, getters, errors);\n\n const { podAffinityTerm = {} } = term;\n\n validateTopologyKey(podAffinityTerm, errorOpts, getters, errors);\n\n validateLabelSelector(podAffinityTerm, errorOpts, getters, errors);\n });\n\n requiredDuringSchedulingIgnoredDuringExecution.forEach((term, i) => {\n const errorOpts = {\n index: i,\n group: getters['i18n/t']('validation.podAffinity.antiAffinityTitle'),\n rules: getters['i18n/t']('validation.podAffinity.requiredDuringSchedulingIgnoredDuringExecution')\n };\n\n validateTopologyKey(term, errorOpts, getters, errors);\n\n validateLabelSelector(term, errorOpts, getters, errors);\n });\n }\n}\n\n// verify weight (if present) is integer 1-100\nfunction validateTermWeight(affinityTerm, errorOpts, getters, errors) {\n const { weight = 1 } = affinityTerm;\n\n if (typeof weight !== 'number' || weight > 100 || weight < 1 ) {\n errors.push(getters['i18n/t']('validation.number.between', {\n key: getters['i18n/t']('workload.scheduling.matchExpressions.weight'),\n min: 1,\n max: 100,\n ...errorOpts\n }));\n }\n}\n\n// verify topology key is present and matches regexp for labels\nfunction validateTopologyKey(affinityTerm, errorOpts, getters, errors) {\n const { topologyKey } = affinityTerm;\n const regexp = RegExp('([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]');\n\n if (!topologyKey || !regexp.test(topologyKey)) {\n errors.push(getters['i18n/t']('validation.podAffinity.topologyKey', errorOpts));\n }\n}\n\n/*\n verify that each matchExpression in labelSelector:\n operator is one of ['In', 'NotIn', 'Exists', 'DoesNotExist']\n values is defined if operator is In or NotIn\n values is empty if operator is Exists or DoesNotExist\n */\nfunction validateLabelSelector(affinityTerm, errorOpts, getters, errors) {\n const validOperators = ['In', 'NotIn', 'Exists', 'DoesNotExist'];\n\n const { labelSelector } = affinityTerm;\n\n if (labelSelector && !isEmpty(labelSelector)) {\n const { matchExpressions = [] } = labelSelector;\n\n matchExpressions.forEach((rule, i) => {\n const { operator, values } = rule;\n\n if (!validOperators.includes(operator)) {\n errors.push(getters['i18n/t']('validation.podAffinity.matchExpressions.operator', errorOpts));\n }\n if (operator === 'In' || operator === 'NotIn') {\n if (!values || !values.length) {\n errors.push(getters['i18n/t']('validation.podAffinity.matchExpressions.valuesMustBeDefined', errorOpts));\n }\n } else if (values && values.length) {\n errors.push(getters['i18n/t']('validation.podAffinity.matchExpressions.valueMustBeEmpty', errorOpts));\n }\n });\n }\n}\n","import { RBAC } from '@shell/config/types';\r\nimport isEmpty from 'lodash/isEmpty';\r\n\r\nexport function roleTemplateRules(rules = [], getters, errors, validatorArgs = []) {\r\n if (rules.some((rule) => isEmpty(rule.verbs))) {\r\n errors.push(getters['i18n/t']('validation.roleTemplate.roleTemplateRules.missingVerb'));\r\n }\r\n\r\n if (rules.some((rule) => rule.resources?.length && rule.nonResourceURLs?.length)) {\r\n errors.push(getters['i18n/t']('validation.roleTemplate.roleTemplateRules.noResourceAndNonResource'));\r\n }\r\n\r\n if (validatorArgs[0] === RBAC.ROLE) {\r\n if (rules.some((rule) => isEmpty(rule.resources))) {\r\n errors.push(getters['i18n/t']('validation.roleTemplate.roleTemplateRules.missingResource'));\r\n }\r\n if (rules.some((rule) => isEmpty(rule.apiGroups))) {\r\n errors.push(getters['i18n/t']('validation.roleTemplate.roleTemplateRules.missingApiGroup'));\r\n }\r\n } else if (rules.some((rule) => rule.resources?.length && rule.nonResourceUrls?.length)) {\r\n errors.push(getters['i18n/t']('validation.roleTemplate.roleTemplateRules.noResourceAndNonResource'));\r\n }\r\n\r\n if (rules.some((rule) => isEmpty(rule.resources) && isEmpty(rule.nonResourceURLs))) {\r\n errors.push(getters['i18n/t']('validation.roleTemplate.roleTemplateRules.missingOneResource'));\r\n }\r\n}\r\n","export function clusterName(pathValue, getters, errors, validatorArgs, displayKey) {\n const isRke2 = validatorArgs[0] === 'true'\n;\n\n if (isRke2) {\n if ((pathValue || '').match(/^(c-.{5}|local)$/i)) {\n errors.push(getters['i18n/t']('validation.cluster.name'));\n }\n }\n\n return errors;\n}\n","import { flowOutput } from '@shell/utils/validators/flow-output';\nimport { logdna } from '@shell/utils/validators/logging-outputs';\nimport { clusterIp, externalName, servicePort } from '@shell/utils/validators/service';\nimport { ruleGroups, groupsAreValid } from '@shell/utils/validators/prometheusrule';\nimport { interval, matching } from '@shell/utils/validators/monitoring-route';\nimport { containerImages } from '@shell/utils/validators/container-images';\nimport { cronSchedule } from '@shell/utils/validators/cron-schedule';\nimport { podAffinity } from '@shell/utils/validators/pod-affinity';\nimport { roleTemplateRules } from '@shell/utils/validators/role-template';\nimport { clusterName } from '@shell/utils/validators/cluster-name';\n\n/**\n* Custom validation functions beyond normal scalr types\n* Validator must export a function name should match the validator name on the customValidationRules rule\n* Exported function is used as a lookup key in resource-class:validationErrors:customValidationRules loop\n*/\nexport default {\n clusterName,\n clusterIp,\n externalName,\n flowOutput,\n groupsAreValid,\n logdna,\n ruleGroups,\n interval,\n servicePort,\n matching,\n containerImages,\n cronSchedule,\n podAffinity,\n roleTemplateRules,\n};\n","import { NORMAN_NAME } from '@shell/config/labels-annotations';\nimport {\n _CLONE,\n _CONFIG,\n _EDIT,\n _UNFLAG,\n _VIEW,\n _YAML,\n AS,\n MODE\n} from '@shell/config/query-params';\nimport { VIEW_IN_API, DEV } from '@shell/store/prefs';\nimport { addObject, addObjects, findBy, removeAt } from '@shell/utils/array';\nimport CustomValidators from '@shell/utils/custom-validators';\nimport { downloadFile, generateZip } from '@shell/utils/download';\nimport { clone, get } from '@shell/utils/object';\nimport { eachLimit } from '@shell/utils/promise';\nimport { sortableNumericSuffix } from '@shell/utils/sort';\nimport { escapeHtml, ucFirst } from '@shell/utils/string';\nimport {\n validateChars,\n validateDnsLikeTypes,\n validateLength,\n} from '@shell/utils/validators';\nimport formRulesGenerator from '@shell/utils/validators/formRules/index';\nimport { waitFor } from '@shell/utils/async';\nimport jsyaml from 'js-yaml';\nimport compact from 'lodash/compact';\nimport forIn from 'lodash/forIn';\nimport isEmpty from 'lodash/isEmpty';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport { markRaw } from 'vue';\n\nimport { ExtensionPoint, ActionLocation } from '@shell/core/types';\nimport { getApplicableExtensionEnhancements } from '@shell/core/plugin-helpers';\n\nexport const DNS_LIKE_TYPES = ['dnsLabel', 'dnsLabelRestricted', 'hostname'];\n\nconst REMAP_STATE = {\n disabled: 'inactive',\n notapplied: 'Not Applied',\n notready: 'Not Ready',\n waitapplied: 'Wait Applied',\n outofsync: 'Out of Sync',\n 'in-progress': 'In Progress',\n gitupdating: 'Git Updating',\n errapplied: 'Err Applied',\n waitcheckin: 'Wait Check-In',\n off: 'Disabled',\n waitingforinfrastructure: 'Waiting for Infra',\n waitingfornoderef: 'Waiting for Node Ref'\n};\n\nconst DEFAULT_COLOR = 'warning';\nconst DEFAULT_ICON = 'x';\n\nconst DEFAULT_WAIT_INTERVAL = 1000;\nconst DEFAULT_WAIT_TMIMEOUT = 30000;\n\nexport const STATES_ENUM = {\n IN_USE: 'in-use',\n IN_PROGRESS: 'in-progress',\n PENDING_ROLLBACK: 'pending-rollback',\n PENDING_UPGRADE: 'pending-upgrade',\n ABORTED: 'aborted',\n ACTIVATING: 'activating',\n ACTIVE: 'active',\n AVAILABLE: 'available',\n BACKED_UP: 'backedup',\n BOUND: 'bound',\n BUILDING: 'building',\n COMPLETED: 'completed',\n CORDONED: 'cordoned',\n COUNT: 'count',\n CREATED: 'created',\n CREATING: 'creating',\n DEACTIVATING: 'deactivating',\n DEGRADED: 'degraded',\n DENIED: 'denied',\n DEPLOYED: 'deployed',\n DEPLOYING: 'deploying',\n DISABLED: 'disabled',\n DISCONNECTED: 'disconnected',\n DRAINED: 'drained',\n DRAINING: 'draining',\n ENABLED: 'enabled',\n ERR_APPLIED: 'errapplied',\n ERROR: 'error',\n ERRORING: 'erroring',\n ERRORS: 'errors',\n EXPIRED: 'expired',\n EXPIRING: 'expiring',\n FAIL: 'fail',\n FAILED: 'failed',\n HEALTHY: 'healthy',\n INACTIVE: 'inactive',\n INFO: 'info',\n INITIALIZING: 'initializing',\n INPROGRESS: 'inprogress',\n LOCKED: 'locked',\n MIGRATING: 'migrating',\n MISSING: 'missing',\n MODIFIED: 'modified',\n NOT_APPLICABLE: 'notApplicable',\n NOT_APLLIED: 'notapplied',\n NOT_READY: 'notready',\n OFF: 'off',\n ORPHANED: 'orphaned',\n OTHER: 'other',\n OUT_OF_SYNC: 'outofsync',\n ON_GOING: 'on-going',\n PASS: 'pass',\n PASSED: 'passed',\n PAUSED: 'paused',\n PENDING: 'pending',\n PROVISIONING: 'provisioning',\n PROVISIONED: 'provisioned',\n PURGED: 'purged',\n PURGING: 'purging',\n READY: 'ready',\n RECONNECTING: 'reconnecting',\n REGISTERING: 'registering',\n REINITIALIZING: 'reinitializing',\n RELEASED: 'released',\n REMOVED: 'removed',\n REMOVING: 'removing',\n REQUESTED: 'requested',\n RESTARTING: 'restarting',\n RESTORING: 'restoring',\n RESIZING: 'resizing',\n RUNNING: 'running',\n SKIP: 'skip',\n SKIPPED: 'skipped',\n STARTING: 'starting',\n STOPPED: 'stopped',\n STOPPING: 'stopping',\n SUCCEEDED: 'succeeded',\n SUCCESS: 'success',\n SUCCESSFUL: 'successful',\n SUPERSEDED: 'superseded',\n SUSPENDED: 'suspended',\n UNAVAILABLE: 'unavailable',\n UNHEALTHY: 'unhealthy',\n UNINSTALLED: 'uninstalled',\n UNINSTALLING: 'uninstalling',\n UNKNOWN: 'unknown',\n UNTRIGGERED: 'untriggered',\n UPDATING: 'updating',\n WAIT_APPLIED: 'waitapplied',\n WAIT_CHECKIN: 'waitcheckin',\n WAITING: 'waiting',\n WARNING: 'warning',\n};\n\nexport function mapStateToEnum(statusString) {\n // e.g. in fleet Status is Capitalized. This function will map it to the enum\n return Object.values(STATES_ENUM).find((val) => {\n return val.toLowerCase() === statusString.toLocaleLowerCase();\n });\n}\n\nexport const STATES = {\n [STATES_ENUM.IN_USE]: {\n color: 'success', icon: 'dot-open', label: 'In Use', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.IN_PROGRESS]: {\n color: 'info', icon: 'tag', label: 'In Progress', compoundIcon: 'info'\n },\n [STATES_ENUM.PENDING_ROLLBACK]: {\n color: 'info', icon: 'dot-half', label: 'Pending Rollback', compoundIcon: 'info'\n },\n [STATES_ENUM.PENDING_UPGRADE]: {\n color: 'info', icon: 'dot-half', label: 'Pending Update', compoundIcon: 'info'\n },\n [STATES_ENUM.ABORTED]: {\n color: 'warning', icon: 'error', label: 'Aborted', compoundIcon: 'warning'\n },\n [STATES_ENUM.ACTIVATING]: {\n color: 'info', icon: 'tag', label: 'Activating', compoundIcon: 'info'\n },\n [STATES_ENUM.ACTIVE]: {\n color: 'success', icon: 'dot-open', label: 'Active', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.AVAILABLE]: {\n color: 'success', icon: 'dot-open', label: 'Available', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.BACKED_UP]: {\n color: 'success', icon: 'backup', label: 'Backed Up', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.BOUND]: {\n color: 'success', icon: 'dot', label: 'Bound', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.BUILDING]: {\n color: 'success', icon: 'dot-open', label: 'Building', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.COMPLETED]: {\n color: 'success', icon: 'dot', label: 'Completed', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.CORDONED]: {\n color: 'info', icon: 'tag', label: 'Cordoned', compoundIcon: 'info'\n },\n [STATES_ENUM.COUNT]: {\n color: 'success', icon: 'dot-open', label: 'Count', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.CREATED]: {\n color: 'info', icon: 'tag', label: 'Created', compoundIcon: 'info'\n },\n [STATES_ENUM.CREATING]: {\n color: 'info', icon: 'tag', label: 'Creating', compoundIcon: 'info'\n },\n [STATES_ENUM.DEACTIVATING]: {\n color: 'info', icon: 'adjust', label: 'Deactivating', compoundIcon: 'info'\n },\n [STATES_ENUM.DEGRADED]: {\n color: 'warning', icon: 'error', label: 'Degraded', compoundIcon: 'warning'\n },\n [STATES_ENUM.DENIED]: {\n color: 'error', icon: 'adjust', label: 'Denied', compoundIcon: 'error'\n },\n [STATES_ENUM.DEPLOYED]: {\n color: 'success', icon: 'dot-open', label: 'Deployed', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.DISABLED]: {\n color: 'warning', icon: 'error', label: 'Disabled', compoundIcon: 'warning'\n },\n [STATES_ENUM.DISCONNECTED]: {\n color: 'warning', icon: 'error', label: 'Disconnected', compoundIcon: 'warning'\n },\n [STATES_ENUM.DRAINED]: {\n color: 'info', icon: 'tag', label: 'Drained', compoundIcon: 'info'\n },\n [STATES_ENUM.DRAINING]: {\n color: 'warning', icon: 'tag', label: 'Draining', compoundIcon: 'warning'\n },\n [STATES_ENUM.ENABLED]: {\n color: 'success', icon: 'dot-open', label: 'Enabled', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.ERR_APPLIED]: {\n color: 'error', icon: 'error', label: 'Error Applied', compoundIcon: 'error'\n },\n [STATES_ENUM.ERROR]: {\n color: 'error', icon: 'error', label: 'Error', compoundIcon: 'error'\n },\n [STATES_ENUM.ERRORING]: {\n color: 'error', icon: 'error', label: 'Erroring', compoundIcon: 'error'\n },\n [STATES_ENUM.ERRORS]: {\n color: 'error', icon: 'error', label: 'Errors', compoundIcon: 'error'\n },\n [STATES_ENUM.EXPIRED]: {\n color: 'error', icon: 'error', label: 'Expired', compoundIcon: 'warning'\n },\n [STATES_ENUM.EXPIRING]: {\n color: 'warning', icon: 'error', label: 'Expiring', compoundIcon: 'error'\n },\n [STATES_ENUM.FAIL]: {\n color: 'error', icon: 'error', label: 'Fail', compoundIcon: 'error'\n },\n [STATES_ENUM.FAILED]: {\n color: 'error', icon: 'error', label: 'Failed', compoundIcon: 'error'\n },\n [STATES_ENUM.HEALTHY]: {\n color: 'success', icon: 'dot-open', label: 'Healthy', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.INACTIVE]: {\n color: 'error', icon: 'dot', label: 'Inactive', compoundIcon: 'error'\n },\n [STATES_ENUM.INITIALIZING]: {\n color: 'warning', icon: 'error', label: 'Initializing', compoundIcon: 'warning'\n },\n [STATES_ENUM.INPROGRESS]: {\n color: 'info', icon: 'spinner', label: 'In Progress', compoundIcon: 'info'\n },\n [STATES_ENUM.INFO]: {\n color: 'info', icon: 'info', label: 'Info', compoundIcon: 'info'\n },\n [STATES_ENUM.LOCKED]: {\n color: 'warning', icon: 'adjust', label: 'Locked', compoundIcon: 'warning'\n },\n [STATES_ENUM.MIGRATING]: {\n color: 'info', icon: 'info', label: 'Migrated', compoundIcon: 'info'\n },\n [STATES_ENUM.MISSING]: {\n color: 'warning', icon: 'adjust', label: 'Missing', compoundIcon: 'warning'\n },\n [STATES_ENUM.MODIFIED]: {\n color: 'warning', icon: 'edit', label: 'Modified', compoundIcon: 'warning'\n },\n [STATES_ENUM.NOT_APPLICABLE]: {\n color: 'warning', icon: 'tag', label: 'Not Applicable', compoundIcon: 'warning'\n },\n [STATES_ENUM.NOT_APLLIED]: {\n color: 'warning', icon: 'tag', label: 'Not Applied', compoundIcon: 'warning'\n },\n [STATES_ENUM.NOT_READY]: {\n color: 'warning', icon: 'tag', label: 'Not Ready', compoundIcon: 'warning'\n },\n [STATES_ENUM.OFF]: {\n color: 'darker', icon: 'error', label: 'Off'\n },\n [STATES_ENUM.ON_GOING]: {\n color: 'info', icon: 'info', label: 'Info', compoundIcon: 'info'\n },\n [STATES_ENUM.ORPHANED]: {\n color: 'warning', icon: 'tag', label: 'Orphaned', compoundIcon: 'warning'\n },\n [STATES_ENUM.OTHER]: {\n color: 'info', icon: 'info', label: 'Other', compoundIcon: 'info'\n },\n [STATES_ENUM.OUT_OF_SYNC]: {\n color: 'warning', icon: 'tag', label: 'Out Of Sync', compoundIcon: 'warning'\n },\n [STATES_ENUM.PASS]: {\n color: 'success', icon: 'dot-dotfill', label: 'Pass', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.PASSED]: {\n color: 'success', icon: 'dot-dotfill', label: 'Passed', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.PAUSED]: {\n color: 'info', icon: 'info', label: 'Paused', compoundIcon: 'info'\n },\n [STATES_ENUM.PENDING]: {\n color: 'info', icon: 'tag', label: 'Pending', compoundIcon: 'info'\n },\n [STATES_ENUM.PROVISIONING]: {\n color: 'info', icon: 'dot', label: 'Provisioning', compoundIcon: 'info'\n },\n [STATES_ENUM.PROVISIONED]: {\n color: 'success', icon: 'dot', label: 'Provisioned', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.PURGED]: {\n color: 'error', icon: 'purged', label: 'Purged', compoundIcon: 'error'\n },\n [STATES_ENUM.PURGING]: {\n color: 'info', icon: 'purged', label: 'Purging', compoundIcon: 'info'\n },\n [STATES_ENUM.READY]: {\n color: 'success', icon: 'dot-open', label: 'Ready', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.RECONNECTING]: {\n color: 'error', icon: 'error', label: 'Reconnecting', compoundIcon: 'error'\n },\n [STATES_ENUM.REGISTERING]: {\n color: 'info', icon: 'tag', label: 'Registering', compoundIcon: 'info'\n },\n [STATES_ENUM.REINITIALIZING]: {\n color: 'warning', icon: 'error', label: 'Reinitializing', compoundIcon: 'warning'\n },\n [STATES_ENUM.RELEASED]: {\n color: 'warning', icon: 'error', label: 'Released', compoundIcon: 'warning'\n },\n [STATES_ENUM.REMOVED]: {\n color: 'error', icon: 'trash', label: 'Removed', compoundIcon: 'error'\n },\n [STATES_ENUM.REMOVING]: {\n color: 'info', icon: 'trash', label: 'Removing', compoundIcon: 'info'\n },\n [STATES_ENUM.REQUESTED]: {\n color: 'info', icon: 'tag', label: 'Requested', compoundIcon: 'info'\n },\n [STATES_ENUM.RESTARTING]: {\n color: 'info', icon: 'adjust', label: 'Restarting', compoundIcon: 'info'\n },\n [STATES_ENUM.RESTORING]: {\n color: 'info', icon: 'medicalcross', label: 'Restoring', compoundIcon: 'info'\n },\n [STATES_ENUM.RESIZING]: {\n color: 'warning', icon: 'dot', label: 'Resizing', compoundIcon: 'warning'\n },\n [STATES_ENUM.RUNNING]: {\n color: 'success', icon: 'dot-open', label: 'Running', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.SKIP]: {\n color: 'info', icon: 'dot-open', label: 'Skip', compoundIcon: 'info'\n },\n [STATES_ENUM.SKIPPED]: {\n color: 'info', icon: 'dot-open', label: 'Skipped', compoundIcon: 'info'\n },\n [STATES_ENUM.STARTING]: {\n color: 'info', icon: 'adjust', label: 'Starting', compoundIcon: 'info'\n },\n [STATES_ENUM.STOPPED]: {\n color: 'error', icon: 'dot', label: 'Stopped', compoundIcon: 'error'\n },\n [STATES_ENUM.STOPPING]: {\n color: 'info', icon: 'adjust', label: 'Stopping', compoundIcon: 'info'\n },\n [STATES_ENUM.SUCCEEDED]: {\n color: 'success', icon: 'dot-dotfill', label: 'Succeeded', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.SUCCESS]: {\n color: 'success', icon: 'dot-open', label: 'Success', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.SUCCESSFUL]: {\n color: 'success', icon: 'dot-open', label: 'Successful'\n },\n [STATES_ENUM.SUPERSEDED]: {\n color: 'info', icon: 'dot-open', label: 'Superseded', compoundIcon: 'info'\n },\n [STATES_ENUM.SUSPENDED]: {\n color: 'info', icon: 'pause', label: 'Suspended', compoundIcon: 'info'\n },\n [STATES_ENUM.UNAVAILABLE]: {\n color: 'error', icon: 'error', label: 'Unavailable', compoundIcon: 'error'\n },\n [STATES_ENUM.UNHEALTHY]: {\n color: 'error', icon: 'error', label: 'Unhealthy', compoundIcon: 'error'\n },\n [STATES_ENUM.UNINSTALLED]: {\n color: 'info', icon: 'trash', label: 'Uninstalled', compoundIcon: 'info'\n },\n [STATES_ENUM.UNINSTALLING]: {\n color: 'info', icon: 'trash', label: 'Uninstalling', compoundIcon: 'info'\n },\n [STATES_ENUM.UNKNOWN]: {\n color: 'warning', icon: 'x', label: 'Unknown', compoundIcon: 'warning'\n },\n [STATES_ENUM.UNTRIGGERED]: {\n color: 'success', icon: 'tag', label: 'Untriggered', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.UPDATING]: {\n color: 'warning', icon: 'tag', label: 'Updating', compoundIcon: 'warning'\n },\n [STATES_ENUM.WAIT_APPLIED]: {\n color: 'info', icon: 'tag', label: 'Wait Applied', compoundIcon: 'info'\n },\n [STATES_ENUM.WAIT_CHECKIN]: {\n color: 'warning', icon: 'tag', label: 'Wait Checkin', compoundIcon: 'warning'\n },\n [STATES_ENUM.WAITING]: {\n color: 'info', icon: 'tag', label: 'Waiting', compoundIcon: 'info'\n },\n [STATES_ENUM.WARNING]: {\n color: 'warning', icon: 'error', label: 'Warning', compoundIcon: 'warning'\n },\n [STATES_ENUM.DEPLOYING]: {\n color: 'info', icon: 'info', label: 'Deploying', compoundIcon: 'info'\n },\n};\n\nexport function getStatesByType(type = 'info') {\n const out = {\n info: [],\n error: [],\n success: [],\n warning: [],\n unknown: [],\n };\n\n forIn(STATES, (state, stateKey) => {\n if (state.color) {\n if (out[state.color]) {\n out[state.color].push(stateKey);\n } else {\n out.unknown.push(stateKey);\n }\n }\n });\n\n return out;\n}\n\nconst SORT_ORDER = {\n error: 1,\n warning: 2,\n info: 3,\n success: 4,\n ready: 5,\n notready: 6,\n other: 7,\n};\n\nexport function getStateLabel(state) {\n const lowercaseState = state.toLowerCase();\n\n return STATES[lowercaseState] ? STATES[lowercaseState].label : STATES[STATES_ENUM.UNKNOWN].label;\n}\n\nexport function colorForState(state, isError, isTransitioning) {\n if ( isError ) {\n return 'text-error';\n }\n\n if ( isTransitioning ) {\n return 'text-info';\n }\n\n const key = (state || 'active').toLowerCase();\n let color;\n\n if ( STATES[key] && STATES[key].color ) {\n color = maybeFn.call(this, STATES[key].color);\n }\n\n if ( !color ) {\n color = DEFAULT_COLOR;\n }\n\n return `text-${ color }`;\n}\n\nexport function stateDisplay(state) {\n // @TODO use translations\n const key = (state || 'active').toLowerCase();\n\n if ( REMAP_STATE[key] ) {\n return REMAP_STATE[key];\n }\n\n return key.split(/-/).map(ucFirst).join('-');\n}\n\nexport function primaryDisplayStatusFromCount(status) {\n const statusOrder = [\n STATES_ENUM.ERROR,\n STATES_ENUM.FAILED,\n STATES_ENUM.WARNING,\n STATES_ENUM.MODIFIED,\n STATES_ENUM.WAIT_APPLIED,\n STATES_ENUM.ORPHANED,\n STATES_ENUM.MISSING,\n STATES_ENUM.UNKNOWN,\n STATES_ENUM.NOT_READY,\n STATES_ENUM.READY,\n ];\n\n // sort status by order of statusOrder\n const existingStatuses = Object.keys(status).filter((key) => {\n return status[key] > 0 && statusOrder.includes(key.toLowerCase());\n }).sort((a, b) => statusOrder.indexOf(a.toLowerCase()) - statusOrder.indexOf(b.toLowerCase()));\n\n return existingStatuses[0] ? existingStatuses[0] : STATES_ENUM.UNKNOWN;\n}\n\nexport function stateSort(color, display) {\n color = color.replace(/^(text|bg)-/, '');\n\n return `${ SORT_ORDER[color] || SORT_ORDER['other'] } ${ display }`;\n}\n\nexport function isConditionReadyAndWaiting(condition) {\n if (!condition) {\n return false;\n }\n\n return condition?.type?.toLowerCase() === 'ready' && condition?.reason?.toLowerCase() === 'waiting';\n}\n\nfunction maybeFn(val) {\n if ( isFunction(val) ) {\n return val(this);\n }\n\n return val;\n}\n\nexport default class Resource {\n constructor(data, ctx = {}, rehydrateNamespace = null, setClone = false) {\n for ( const k in data ) {\n this[k] = data[k];\n }\n\n Object.defineProperty(this, '$ctx', {\n value: markRaw(ctx),\n enumerable: false,\n });\n\n if ( rehydrateNamespace ) {\n Object.defineProperty(this, '__rehydrate', {\n value: rehydrateNamespace,\n enumerable: true,\n configurable: true\n });\n }\n\n if ( setClone ) {\n Object.defineProperty(this, '__clone', {\n value: true,\n enumerable: true,\n configurable: true,\n writable: true\n });\n }\n }\n\n get '$getters'() {\n return this.$ctx.getters;\n }\n\n get '$rootGetters'() {\n return this.$ctx.rootGetters;\n }\n\n get '$dispatch'() {\n return this.$ctx.dispatch;\n }\n\n get '$state'() {\n return this.$ctx.state;\n }\n\n get '$rootState'() {\n return this.$ctx.rootState;\n }\n\n get '$plugin'() {\n return this.$ctx.rootState?.$plugin;\n }\n\n get customValidationRules() {\n return [\n /**\n * Essentially a fake schema object with additional params to extend validation\n *\n * @param {nullable} Value is nullable\n * @param {path} Path on the resource to the value to validate\n * @param {required} Value required\n * @param {requiredIf} Value required if value at path not empty\n * @param {translationKey} Human readable display key for param in path e.g. metadata.name === Name\n * @param {type} Type of field to validate\n * @param {validators} array of strings where item is name of exported validator function in custom-validators, args can be passed by prepending args separated by colon. e.g maxLength:63\n */\n /* {\n nullable: false,\n path: 'spec.ports',\n required: true,\n type: 'array',\n validators: ['servicePort'],\n } */\n ];\n }\n\n get _key() {\n const m = this.metadata;\n\n if ( m ) {\n if ( m.uid ) {\n return m.uid;\n }\n\n if ( m.namespace ) {\n return `${ this.type }/${ m.namespace }/${ m.name }`;\n }\n }\n\n if ( this.id ) {\n return `${ this.type }/${ this.id }`;\n }\n\n return `${ this.type }/${ Math.random() }`;\n }\n\n get schema() {\n return this.$getters['schemaFor'](this.type);\n }\n\n toString() {\n return `[${ this.type }: ${ this.id }]`;\n }\n\n get typeDisplay() {\n const schema = this.schema;\n\n if ( schema ) {\n return this.$rootGetters['type-map/labelFor'](schema);\n }\n\n return '?';\n }\n\n get nameDisplay() {\n return this.displayName || this.spec?.displayName || this.metadata?.annotations?.[NORMAN_NAME] || this.name || this.metadata?.name || this.id;\n }\n\n get nameSort() {\n return sortableNumericSuffix(this.nameDisplay).toLowerCase();\n }\n\n get namespacedName() {\n const namespace = this.metadata?.namespace;\n const name = this.nameDisplay;\n\n if ( namespace ) {\n return `${ namespace }:${ name }`;\n }\n\n return name;\n }\n\n get namespacedNameSort() {\n return sortableNumericSuffix(this.namespacedName).toLowerCase();\n }\n\n get groupByLabel() {\n const name = this.metadata?.namespace;\n let out;\n\n if ( name ) {\n out = this.t('resourceTable.groupLabel.namespace', { name: escapeHtml(name) });\n } else {\n out = this.t('resourceTable.groupLabel.notInANamespace');\n }\n\n return out;\n }\n\n setLabels(/* val */) {\n throw new Error('Implement setLabels in subclass');\n }\n\n setLabel(/* key, val */) {\n throw new Error('Implement setLabel in subclass');\n }\n\n setAnnotations(val) {\n throw new Error('Implement setAnnotations in subclass');\n }\n\n setAnnotation(key, val) {\n throw new Error('Implement setAnnotation in subclass');\n }\n\n // You can override the displayed by providing your own stateDisplay (and possibly using the function exported above)\n get stateDisplay() {\n return stateDisplay(this.state);\n }\n\n get stateColor() {\n return colorForState.call(\n this,\n this.state,\n this.stateObj?.error,\n this.stateObj?.transitioning\n );\n }\n\n get stateBackground() {\n return this.stateColor.replace('text-', 'bg-');\n }\n\n get stateIcon() {\n let trans = false;\n let error = false;\n\n if ( this.metadata && this.metadata.state ) {\n trans = this.metadata.state.transitioning;\n error = this.metadata.state.error;\n }\n\n if ( trans ) {\n return 'icon icon-spinner icon-spin';\n }\n\n if ( error ) {\n return 'icon icon-error';\n }\n\n const key = (this.state || '').toLowerCase();\n let icon;\n\n if ( STATES[key] && STATES[key].icon ) {\n icon = maybeFn.call(this, STATES[key].icon);\n }\n\n if ( !icon ) {\n icon = DEFAULT_ICON;\n }\n\n return `icon icon-${ icon }`;\n }\n\n get stateSort() {\n return stateSort(this.stateColor, this.stateDisplay);\n }\n\n get stateDescription() {\n const trans = this.stateObj?.transitioning || false;\n const error = this.stateObj?.error || false;\n const message = this.stateObj?.message;\n\n return trans || error ? ucFirst(message) : '';\n }\n\n get stateObj() {\n return this.metadata?.state;\n }\n\n // ------------------------------------------------------------------\n\n waitForTestFn(fn, msg, timeoutMs, intervalMs) {\n return waitFor(() => fn.apply(this), msg, timeoutMs || DEFAULT_WAIT_TMIMEOUT, intervalMs || DEFAULT_WAIT_INTERVAL, true);\n }\n\n waitForState(state, timeout, interval) {\n return this.waitForTestFn(() => {\n return (this.state || '').toLowerCase() === state.toLowerCase();\n }, `state=${ state }`, timeout, interval);\n }\n\n waitForTransition() {\n return this.waitForTestFn(() => {\n return !this.transitioning;\n }, 'transition completion', undefined, undefined);\n }\n\n waitForAction(name) {\n return this.waitForTestFn(() => {\n return this.hasAction(name);\n }, `action=${ name }`, undefined, undefined);\n }\n\n waitForLink(name) {\n return this.waitForTestFn(() => {\n return this.hasLink(name);\n }, `link=${ name }`, undefined, undefined);\n }\n\n hasCondition(condition) {\n return this.isCondition(condition, null);\n }\n\n isCondition(condition, withStatus = 'True') {\n if ( !this.status || !this.status.conditions ) {\n return false;\n }\n\n const entry = findBy((this.status.conditions || []), 'type', condition);\n\n if ( !entry ) {\n return false;\n }\n\n if ( !withStatus ) {\n return true;\n }\n\n return (entry.status || '').toLowerCase() === `${ withStatus }`.toLowerCase();\n }\n\n waitForCondition(name, withStatus = 'True', timeoutMs = DEFAULT_WAIT_TMIMEOUT, intervalMs = DEFAULT_WAIT_INTERVAL) {\n return this.waitForTestFn(() => {\n return this.isCondition(name, withStatus);\n }, `condition ${ name }=${ withStatus }`, timeoutMs, intervalMs);\n }\n\n // ------------------------------------------------------------------\n\n get availableActions() {\n const all = this._availableActions;\n\n // Remove disabled items and consecutive dividers\n let last = null;\n const out = all.filter((item) => {\n if ( item.enabled === false ) {\n return false;\n }\n\n const cur = item.divider;\n const ok = !cur || (cur && !last);\n\n last = cur;\n\n return ok;\n });\n\n // Remove dividers at the beginning\n while ( out.length && out[0].divider ) {\n out.shift();\n }\n\n // Remove dividers at the end\n while ( out.length && out[out.length - 1].divider ) {\n out.pop();\n }\n\n // Remove consecutive dividers in the middle\n for ( let i = 1 ; i < out.length ; i++ ) {\n if ( out[i].divider && out[i - 1].divider ) {\n removeAt(out, i, 1);\n i--;\n }\n }\n\n return out;\n }\n\n // You can add custom actions by overriding your own availableActions (and probably reading super._availableActions)\n get _availableActions() {\n // get menu actions available by plugins configuration\n const currentRoute = this.currentRouter().currentRoute.value;\n const extensionMenuActions = getApplicableExtensionEnhancements(this.$rootState, ExtensionPoint.ACTION, ActionLocation.TABLE, currentRoute, this);\n\n const all = [\n { divider: true },\n {\n action: this.canUpdate ? 'goToEdit' : 'goToViewConfig',\n label: this.t(this.canUpdate ? 'action.edit' : 'action.view'),\n icon: 'icon icon-edit',\n enabled: this.canCustomEdit,\n },\n {\n action: this.canEditYaml ? 'goToEditYaml' : 'goToViewYaml',\n label: this.t(this.canEditYaml ? 'action.editYaml' : 'action.viewYaml'),\n icon: 'icon icon-file',\n enabled: this.canYaml,\n },\n {\n action: (this.canCustomEdit ? 'goToClone' : 'cloneYaml'),\n label: this.t('action.clone'),\n icon: 'icon icon-copy',\n enabled: this.canClone && this.canCreate && (this.canCustomEdit || this.canYaml),\n },\n { divider: true },\n {\n action: 'download',\n label: this.t('action.download'),\n icon: 'icon icon-download',\n bulkable: true,\n bulkAction: 'downloadBulk',\n enabled: this.canYaml,\n weight: -9,\n },\n {\n action: 'viewInApi',\n label: this.t('action.viewInApi'),\n icon: 'icon icon-external-link',\n enabled: this.canViewInApi,\n },\n {\n action: 'promptRemove',\n altAction: 'remove',\n label: this.t('action.remove'),\n icon: 'icon icon-trash',\n bulkable: true,\n enabled: this.canDelete,\n bulkAction: 'promptRemove',\n weight: -10, // Delete always goes last\n },\n ];\n\n // Extension actions get added to the end, so add a divider if there are any\n if (extensionMenuActions.length) {\n // Add a divider first\n all.push({ divider: true });\n\n extensionMenuActions.forEach((action) => {\n const newActionInstance = { ...action };\n\n const enabledFn = newActionInstance.enabled;\n const typeofEnabled = typeof enabledFn;\n\n switch (typeofEnabled) {\n case 'undefined':\n newActionInstance.enabled = true;\n break;\n case 'function':\n Object.defineProperty(newActionInstance, 'enabled', { get: () => enabledFn(this) });\n break;\n case 'boolean':\n // no op, just use it directly\n break;\n default:\n // unsupported value\n console.warn(`Unsupported 'enabled' property type for action: ${ action.label || action.labelKey }` ); // eslint-disable-line no-console\n delete newActionInstance.enabled;\n break;\n }\n\n all.push(newActionInstance);\n });\n }\n\n return all;\n }\n\n // ------------------------------------------------------------------\n\n get canDelete() {\n return this._canDelete;\n }\n\n get _canDelete() {\n return this.hasLink('remove') && this.$rootGetters['type-map/optionsFor'](this.type).isRemovable;\n }\n\n get canClone() {\n return true;\n }\n\n get canUpdate() {\n return this.hasLink('update') && this.$rootGetters['type-map/optionsFor'](this.type).isEditable;\n }\n\n get canCustomEdit() {\n return this.$rootGetters['type-map/hasCustomEdit'](this.type, this.id);\n }\n\n get canCreate() {\n if ( this.schema && !this.schema?.collectionMethods.find((x) => x.toLowerCase() === 'post') ) {\n return false;\n }\n\n return this.$rootGetters['type-map/optionsFor'](this.type).isCreatable;\n }\n\n get canViewInApi() {\n try {\n return this.hasLink('self') && this.$rootGetters['prefs/get'](VIEW_IN_API);\n } catch {\n return this.hasLink('self') && this.$rootGetters['prefs/get'](DEV);\n }\n }\n\n get canYaml() {\n return this.hasLink('view');\n }\n\n get canEditYaml() {\n return this.schema?.resourceMethods?.find((x) => x === 'blocked-PUT') ? false : this.canUpdate;\n }\n\n // ------------------------------------------------------------------\n\n hasLink(linkName) {\n return !!this.linkFor(linkName);\n }\n\n linkFor(linkName) {\n return (this.links || {})[linkName];\n }\n\n followLink(linkName, opt = {}) {\n if ( !opt.url ) {\n opt.url = (this.links || {})[linkName];\n }\n\n if ( opt.urlSuffix ) {\n opt.url += opt.urlSuffix;\n }\n\n if ( !opt.url ) {\n throw new Error(`Unknown link ${ linkName } on ${ this.type } ${ this.id }`);\n }\n\n return this.$dispatch('request', { opt, type: this.type } );\n }\n\n // ------------------------------------------------------------------\n\n hasAction(actionName) {\n return !!this.actionLinkFor(actionName);\n }\n\n actionLinkFor(actionName) {\n return (this.actions || this.actionLinks || {})[actionName];\n }\n\n doAction(actionName, body, opt = {}) {\n return this.$dispatch('resourceAction', {\n resource: this,\n actionName,\n body,\n opt,\n });\n }\n\n async doActionGrowl(actionName, body, opt = {}) {\n try {\n return await this.$dispatch('resourceAction', {\n resource: this,\n actionName,\n body,\n opt,\n });\n } catch (err) {\n this.$dispatch('growl/fromError', {\n title: this.$rootGetters['i18n/t']('generic.notification.title.error'),\n err: err.data || err,\n }, { root: true });\n }\n }\n\n // ------------------------------------------------------------------\n\n patch(data, opt = {}, merge = false, alertOnError = false) {\n if ( !opt.url ) {\n // Workaround for the links not being correct - view link is the only one that seems correct\n opt.url = this.linkFor('view') || this.linkFor('self');\n }\n\n opt.method = 'patch';\n opt.headers = opt.headers || {};\n\n if (!opt.headers['content-type']) {\n const contentType = merge ? 'application/strategic-merge-patch+json' : 'application/json-patch+json';\n\n opt.headers['content-type'] = contentType;\n }\n opt.data = data;\n\n const dispatch = this.$dispatch('request', { opt, type: this.type } );\n\n return !alertOnError ? dispatch : dispatch.catch((e) => {\n const title = this.t('resource.errors.update', { name: this.name });\n\n console.error(title, e); // eslint-disable-line no-console\n\n this.$dispatch('growl/error', {\n title,\n message: e?.message,\n timeout: 5000\n }, { root: true });\n });\n }\n\n save() {\n return this._save(...arguments);\n }\n\n /**\n * Remove any unwanted properties from the object that will be saved\n */\n cleanForSave(data, forNew) {\n delete data.__rehydrate;\n delete data.__clone;\n\n return data;\n }\n\n /**\n * Allow to handle the response of the save request\n * @param {*} res Full request response\n */\n processSaveResponse(res) { }\n\n async _save(opt = { }) {\n const forNew = !this.id;\n\n const errors = this.validationErrors(this, opt);\n\n if (!isEmpty(errors)) {\n return Promise.reject(errors);\n }\n\n if ( this.metadata?.resourceVersion ) {\n this.metadata.resourceVersion = `${ this.metadata.resourceVersion }`;\n }\n\n if ( !opt.url ) {\n if ( forNew ) {\n const schema = this.$getters['schemaFor'](this.type);\n let url = schema.linkFor('collection');\n\n if ( schema.attributes && schema.attributes.namespaced && this.metadata && this.metadata.namespace ) {\n url += `/${ this.metadata.namespace }`;\n }\n\n opt.url = url;\n } else {\n opt.url = this.linkFor('update') || this.linkFor('self');\n }\n }\n\n if ( !opt.method ) {\n opt.method = ( forNew ? 'post' : 'put' );\n }\n\n if ( !opt.headers ) {\n opt.headers = {};\n }\n\n if ( !opt.headers['content-type'] ) {\n opt.headers['content-type'] = 'application/json';\n }\n\n if ( !opt.headers['accept'] ) {\n opt.headers['accept'] = 'application/json';\n }\n\n // @TODO remove this once the API maps steve _type <-> k8s type in both directions\n opt.data = this.toSave() || { ...this };\n\n if (opt.data._type) {\n opt.data.type = opt.data._type;\n }\n\n if (opt.data._name) {\n opt.data.name = opt.data._name;\n }\n\n if (opt.data._labels) {\n opt.data.labels = opt.data._labels;\n }\n\n if (opt.data._annotations) {\n opt.data.annotations = opt.data._annotations;\n }\n\n opt.data = this.cleanForSave(opt.data, forNew);\n\n // handle \"replace\" opt as a query param _replace=true for norman PUT requests\n if (opt?.replace && opt.method === 'put') {\n const argParam = opt.url.includes('?') ? '&' : '?';\n\n opt.url = `${ opt.url }${ argParam }_replace=true`;\n delete opt.replace;\n }\n\n try {\n const res = await this.$dispatch('request', { opt, type: this.type } );\n\n // Allow to process response independently from the related models\n this.processSaveResponse(res);\n\n // Steve sometimes returns Table responses instead of the resource you just saved.. ignore\n if ( res && res.kind !== 'Table') {\n await this.$dispatch('load', { data: res, existing: (forNew ? this : undefined ) });\n }\n } catch (e) {\n if ( this.type && this.id && e?._status === 409) {\n // If there's a conflict, try to load the new version\n await this.$dispatch('find', {\n type: this.type,\n id: this.id,\n opt: { force: true }\n });\n }\n\n return Promise.reject(e);\n }\n\n return this;\n }\n\n remove() {\n return this._remove(...arguments);\n }\n\n async _remove(opt = {}) {\n if ( !opt.url ) {\n opt.url = this.linkFor('self');\n }\n\n opt.method = 'delete';\n\n const res = await this.$dispatch('request', { opt, type: this.type } );\n\n if ( res?._status === 204 ) {\n // If there's no body, assume the resource was immediately deleted\n // and drop it from the store as if a remove event happened.\n await this.$dispatch('ws.resource.remove', { data: this });\n }\n }\n\n // ------------------------------------------------------------------\n\n currentRoute() {\n return window.$globalApp.$route;\n }\n\n currentRouter() {\n return window.$globalApp.$router;\n }\n\n get listLocation() {\n return {\n name: `c-cluster-product-resource`,\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n }\n };\n }\n\n get _detailLocation() {\n const schema = this.$getters['schemaFor'](this.type);\n\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: `c-cluster-product-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`,\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n namespace: this.metadata?.namespace,\n id,\n }\n };\n }\n\n get detailLocation() {\n return this._detailLocation;\n }\n\n goToDetail() {\n this.currentRouter().push(this.detailLocation);\n }\n\n /**\n * Resource action redirects to the detail page with a query parameter 'clone'\n * When the query parameter is present, the view will fetch the resource to clone define in the parameter\n * E.g.: /my-id?mode=clone\n * @param {*} moreQuery\n */\n goToClone(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _CLONE,\n [AS]: _UNFLAG,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n goToEdit(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _EDIT,\n [AS]: _UNFLAG,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n goToViewConfig(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _VIEW,\n [AS]: _CONFIG,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n goToEditYaml() {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _EDIT,\n [AS]: _YAML\n };\n\n this.currentRouter().push(location);\n }\n\n goToViewYaml() {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _VIEW,\n [AS]: _YAML\n };\n\n this.currentRouter().push(location);\n }\n\n cloneYaml(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _CLONE,\n [AS]: _YAML,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n async download() {\n const value = await this.followLink('view', { headers: { accept: 'application/yaml' } });\n const data = await this.cleanForDownload(value.data);\n\n downloadFile(`${ this.nameDisplay }.yaml`, data, 'application/yaml');\n }\n\n async downloadBulk(items) {\n const files = {};\n const names = [];\n\n for ( const item of items ) {\n let name = `${ item.nameDisplay }.yaml`;\n let i = 2;\n\n while ( names.includes(name) ) {\n name = `${ item.nameDisplay }_${ i++ }.yaml`;\n }\n\n names.push(name);\n }\n\n await eachLimit(items, 10, (item, idx) => {\n return item.followLink('view', { headers: { accept: 'application/yaml' } } ).then(async(data) => {\n const yaml = data.data || data;\n const cleanedYaml = await this.cleanForDownload(yaml);\n\n files[`resources/${ names[idx] }`] = cleanedYaml;\n });\n });\n\n const zip = await generateZip(files);\n\n downloadFile('resources.zip', zip, 'application/zip');\n }\n\n viewInApi() {\n window.open(this.links.self, '_blank');\n }\n\n promptRemove(resources) {\n if ( !resources ) {\n resources = this;\n }\n\n this.$dispatch('promptRemove', resources);\n }\n\n get confirmRemove() {\n return false;\n }\n\n applyDefaults() {\n }\n\n get urlFromAttrs() {\n const schema = this.$getters['schemaFor'](this.type);\n const { metadata:{ namespace = 'default' } } = this;\n let url = schema.links.collection;\n\n const attributes = schema?.attributes;\n\n if (!attributes) {\n throw new Error('Attributes must be present on the schema');\n }\n const { group, resource } = attributes;\n\n url = `${ url.slice(0, url.indexOf('/v1')) }/apis/${ group }/namespaces/${ namespace }/${ resource }`;\n\n return url;\n }\n\n // convert yaml to object, clean for new if creating/cloning\n // map _type to type\n cleanYaml(yaml, mode = 'edit') {\n try {\n const obj = jsyaml.load(yaml);\n\n if (mode !== 'edit') {\n this.$dispatch(`cleanForNew`, obj);\n }\n\n if (obj._type) {\n obj.type = obj._type;\n delete obj._type;\n }\n const out = jsyaml.dump(obj, { skipInvalid: true });\n\n return out;\n } catch (e) {\n return null;\n }\n }\n\n cleanForNew() {\n this.$dispatch(`cleanForNew`, this);\n }\n\n cleanForDiff() {\n this.$dispatch(`cleanForDiff`, this.toJSON());\n }\n\n async cleanForDownload(yaml) {\n return this.$dispatch(`cleanForDownload`, yaml);\n }\n\n yamlForSave(yaml) {\n try {\n const obj = jsyaml.load(yaml);\n\n if (obj) {\n if (this._type) {\n obj._type = obj.type;\n }\n\n return jsyaml.dump(obj);\n }\n } catch (e) {\n return null;\n }\n }\n\n async saveYaml(yaml) {\n await this._saveYaml(yaml);\n }\n\n async _saveYaml(yaml) {\n /* Multipart support, but need to know the right cluster and work for management store\n and \"apply\" seems to only work for create, not update.\n\n const ary = jsyaml.loadAll(yaml); // will throw on invalid yaml, and return one or more documents (usually one)\n\n if ( ary.length > 1 ) {\n await this.$rootGetters['currentCluster'].doAction('apply', {\n yaml,\n defaultNamespace: this.metadata.namespace,\n });\n }\n\n const parsed = ary[0];\n */\n\n const parsed = jsyaml.load(yaml); // will throw on invalid yaml, and return one or more documents (usually one)\n\n if ( this.schema?.attributes?.namespaced && !parsed.metadata.namespace ) {\n const err = this.$rootGetters['i18n/t']('resourceYaml.errors.namespaceRequired');\n\n throw err;\n }\n\n let res;\n const isCreate = !this.id;\n const headers = {\n 'content-type': 'application/yaml',\n accept: 'application/json',\n };\n\n if ( isCreate ) {\n res = await this.schema.followLink('collection', {\n method: 'POST',\n headers,\n data: yaml\n });\n } else {\n res = await this.followLink('update', {\n method: 'PUT',\n headers,\n data: yaml\n });\n }\n\n await this.$dispatch(`load`, {\n data: res,\n existing: (isCreate ? this : undefined)\n });\n\n if (this.isSpoofed) {\n await this.$dispatch('cluster/findAll', { type: this.type, opt: { force: true } }, { root: true });\n }\n }\n\n get modelValidationRules() {\n const rules = [];\n\n const customValidationRulesets = this?.customValidationRules\n .filter((rule) => !!rule.validators || !!rule.required)\n .map((rule) => {\n const formRules = formRulesGenerator(this.t, { displayKey: rule?.translationKey ? this.t(rule.translationKey) : 'Value' });\n\n return {\n path: rule.path,\n rules: [\n ...(rule.validators || []),\n ...rule.required ? ['required'] : [],\n ...['dnsLabel', 'dnsLabelRestricted', 'hostname'].includes(rule.type) ? [rule.type] : []\n ]\n .map((rule) => {\n if (rule.includes(':')) {\n const [ruleKey, ruleArg] = rule.split(':');\n\n return formRules[ruleKey](ruleArg);\n }\n\n return formRules[rule];\n }\n )\n .filter((rule) => !!rule)\n };\n })\n .filter((ruleset) => ruleset.rules.length > 0);\n\n rules.push(...customValidationRulesets);\n\n return rules;\n }\n\n customValidationErrors(data, ignorePaths = []) {\n const errors = [];\n\n let { customValidationRules } = this;\n\n if (!isEmpty(customValidationRules)) {\n if (isFunction(customValidationRules)) {\n customValidationRules = customValidationRules();\n }\n\n customValidationRules.filter((rule) => !ignorePaths.includes(rule.path)).forEach((rule) => {\n const {\n path,\n requiredIf: requiredIfPath,\n validators = [],\n type: fieldType,\n } = rule;\n let pathValue = get(data, path);\n\n const parsedRules = compact((validators || []));\n let displayKey = path;\n\n if (rule.translationKey && this.$rootGetters['i18n/exists'](rule.translationKey)) {\n displayKey = this.t(rule.translationKey);\n }\n\n if (isString(pathValue)) {\n pathValue = pathValue.trim();\n }\n if (requiredIfPath) {\n const reqIfVal = get(data, requiredIfPath);\n\n if (!isEmpty(reqIfVal) && (isEmpty(pathValue) && pathValue !== 0)) {\n errors.push(this.t('validation.required', { key: displayKey }));\n }\n }\n\n validateLength(pathValue, rule, displayKey, this.$rootGetters, errors);\n validateChars(pathValue, rule, displayKey, this.$rootGetters, errors);\n\n if ( !isEmpty(pathValue) && DNS_LIKE_TYPES.includes(fieldType) ) {\n // DNS types should be lowercase\n const tolower = (pathValue || '').toLowerCase();\n\n if ( tolower !== pathValue ) {\n pathValue = tolower;\n\n data[path] = pathValue;\n }\n\n errors.push(...validateDnsLikeTypes(pathValue, fieldType, displayKey, this.$rootGetters, errors));\n }\n\n parsedRules.forEach((validator) => {\n const validatorAndArgs = validator.split(':');\n const validatorName = validatorAndArgs.slice(0, 1);\n const validatorArgs = validatorAndArgs.slice(1) || null;\n const validatorExists = Object.prototype.hasOwnProperty.call(CustomValidators, validatorName);\n\n if (!isEmpty(validatorName) && validatorExists) {\n CustomValidators[validatorName](pathValue, this.$rootGetters, errors, validatorArgs, displayKey, data);\n } else if (!isEmpty(validatorName) && !validatorExists) {\n // Check if validator is imported from plugin\n const pluginValidator = this.$rootState.$plugin?.getValidator(validatorName);\n\n if (pluginValidator) {\n pluginValidator(pathValue, this.$rootGetters, errors, validatorArgs, displayKey, data);\n } else {\n // eslint-disable-next-line\n console.warn(this.t('validation.custom.missing', { validatorName }));\n }\n }\n });\n });\n }\n\n return errors;\n }\n\n /**\n * Check this instance is valid against\n * - any custom dashboard validation\n *\n * Models can override this and call super.validationErrors\n */\n validationErrors(data = this, opts = { }) {\n return this.customValidationErrors(data);\n }\n\n get ownersByType() {\n const ownerReferences = this.metadata?.ownerReferences || [];\n const ownersByType = {};\n\n ownerReferences.forEach((owner) => {\n if (!ownersByType[owner.kind]) {\n ownersByType[owner.kind] = [owner];\n } else {\n ownersByType[owner.kind].push(owner);\n }\n });\n\n return ownersByType;\n }\n\n get owners() {\n const owners = [];\n\n for ( const kind in this.ownersByType) {\n const schema = this.$rootGetters['cluster/schema'](kind);\n\n if (schema) {\n const type = schema.id;\n const allOfResourceType = this.$rootGetters['cluster/all']( type );\n\n this.ownersByType[kind].forEach((resource, idx) => {\n const resourceInstance = allOfResourceType.find((resourceByType) => resourceByType?.metadata?.uid === resource.uid);\n\n if (resourceInstance) {\n owners.push(resourceInstance);\n }\n });\n }\n }\n\n return owners;\n }\n\n get details() {\n return this._details;\n }\n\n get _details() {\n const details = [];\n\n if (this.owners?.length > 0) {\n details.push({\n label: this.t('resourceDetail.detailTop.ownerReferences', { count: this.owners.length }),\n formatter: 'ListLinkDetail',\n content: this.owners.map((owner) => ({\n key: owner.id,\n row: owner,\n col: {},\n value: owner.metadata.name\n }))\n });\n }\n\n if (get(this, 'metadata.deletionTimestamp')) {\n details.push({\n label: this.t('resourceDetail.detailTop.deleted'),\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n content: get(this, 'metadata.deletionTimestamp')\n });\n }\n\n return details;\n }\n\n get t() {\n return this.$rootGetters['i18n/t'];\n }\n\n // Returns array of MODELS that own this resource (async, network call)\n findOwners() {\n return this._getRelationship('owner', 'from');\n }\n\n // Returns array of {type, namespace, id} objects that own this resource (sync)\n getOwners() {\n return this._getRelationship('owner', 'from');\n }\n\n findOwned() {\n return this._findRelationship('owner', 'to');\n }\n\n _relationshipsFor(rel, direction) {\n const out = { selectors: [], ids: [] };\n\n if ( !this.metadata?.relationships?.length ) {\n return out;\n }\n\n for ( const r of this.metadata.relationships ) {\n if ( rel !== 'any' && r.rel !== rel ) {\n continue;\n }\n\n if ( !r[`${ direction }Type`] ) {\n continue;\n }\n\n if ( r.selector ) {\n addObjects(out.selectors, {\n type: r.toType,\n namespace: r.toNamespace,\n selector: r.selector\n });\n } else {\n const type = r[`${ direction }Type`];\n let namespace = r[`${ direction }Namespace`];\n let name = r[`${ direction }Id`];\n\n if ( !namespace && name.includes('/') ) {\n const idx = name.indexOf('/');\n\n namespace = name.substr(0, idx);\n name = name.substr(idx + 1);\n }\n\n const id = (namespace ? `${ namespace }/` : '') + name;\n\n addObject(out.ids, {\n type,\n namespace,\n name,\n id,\n });\n }\n }\n\n return out;\n }\n\n _getRelationship(rel, direction) {\n const res = this._relationshipsFor(rel, direction);\n\n if ( res.selectors?.length ) {\n // eslint-disable-next-line no-console\n console.warn('Sync request for a relationship that is a selector');\n }\n\n return res.ids || [];\n }\n\n async _findRelationship(rel, direction) {\n const { selectors, ids } = this._relationshipsFor(rel, direction);\n const out = [];\n\n for ( const sel of selectors ) {\n const matching = await this.$dispatch('findMatching', sel);\n\n addObjects(out, matching.data);\n }\n\n for ( const obj of ids ) {\n const { type, id } = obj;\n let matching = this.$getters['byId'](type, id);\n\n if ( !matching ) {\n try {\n matching = await this.$dispatch('find', { type, id });\n } catch {\n }\n }\n if (matching) {\n addObject(out, matching);\n }\n }\n\n return out;\n }\n\n get shortId() {\n const splitId = this.id.split('/');\n\n return splitId.length > 1 ? splitId[1] : splitId[0];\n }\n\n toJSON() {\n const out = {};\n const keys = Object.keys(this);\n\n for ( const k of keys ) {\n if ( this[k]?.toJSON ) {\n out[k] = this[k].toJSON();\n } else {\n out[k] = clone(this[k]);\n }\n }\n\n return out;\n }\n\n /**\n * Allow models to override the object that is sent when saving this resource\n */\n toSave() {\n return undefined;\n }\n\n get creationTimestamp() {\n return this.metadata?.creationTimestamp;\n }\n\n /**\n * Allows model to specify JSON Paths that should be folded in the YAML editor by default\n */\n get yamlFolding() {\n return [];\n }\n}\n","import { ANNOTATIONS_TO_IGNORE_REGEX, LABELS_TO_IGNORE_REGEX } from '@shell/config/labels-annotations';\nimport omitBy from 'lodash/omitBy';\nimport pickBy from 'lodash/pickBy';\nimport { matchesSomeRegex } from '@shell/utils/string';\nimport Resource from '@shell/plugins/dashboard-store/resource-class';\n\n// these are defined elsewhere in Steve models and will cause the error \"Cannot set property <whatever> of [object Object] which has only a getter\" if defined at top-level\nexport function cleanHybridResources(data) {\n const potentialNormanHoldovers = ['state', 'name', 'description', 'labels', 'annotations'];\n\n potentialNormanHoldovers.forEach((key) => delete data[key]);\n\n return data;\n}\n\nexport default class HybridModel extends Resource {\n constructor(data, ctx, rehydrateNamespace = null, setClone = false) {\n const cleanedData = cleanHybridResources(data);\n\n super(cleanedData, ctx, rehydrateNamespace, setClone);\n }\n\n get labels() {\n const all = this.metadata?.labels || {};\n\n return omitBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n }\n\n setLabels(val) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n const all = this.metadata.labels || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n\n this.metadata['labels'] = { ...wasIgnored, ...val };\n }\n\n setLabel(key, val) {\n if ( val ) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n if ( !this.metadata.labels ) {\n this.metadata.labels = {};\n }\n\n this.metadata.labels[key] = val;\n } else if ( this.metadata?.labels ) {\n this.metadata.labels[key] = undefined;\n delete this.metadata.labels[key];\n }\n }\n\n get annotations() {\n const all = this.metadata?.annotations || {};\n\n return omitBy(all, (value, key) => {\n return matchesSomeRegex(key, ANNOTATIONS_TO_IGNORE_REGEX);\n });\n }\n\n setAnnotations(val) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n const all = this.metadata.annotations || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, ANNOTATIONS_TO_IGNORE_REGEX);\n });\n\n this.metadata['annotations'] = { ...wasIgnored, ...val };\n }\n\n setAnnotation(key, val) {\n if ( val ) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n if ( !this.metadata.annotations ) {\n this.metadata.annotations = {};\n }\n\n this.metadata.annotations[key] = val;\n } else if ( this.metadata?.annotations ) {\n this.metadata.annotations[key] = undefined;\n delete this.metadata.annotations[key];\n }\n }\n\n get state() {\n return this.stateObj?.name || 'unknown';\n }\n}\n","import { ANNOTATIONS_TO_IGNORE_REGEX, LABELS_TO_IGNORE_REGEX } from '@shell/config/labels-annotations';\nimport pickBy from 'lodash/pickBy';\nimport { findBy } from '@shell/utils/array';\nimport { matchesSomeRegex, coerceStringTypeToScalarType } from '@shell/utils/string';\nimport Resource, { DNS_LIKE_TYPES } from '@shell/plugins/dashboard-store/resource-class';\nimport { get } from '@shell/utils/object';\nimport {\n displayKeyFor,\n validateBoolean,\n validateChars,\n validateDnsLikeTypes,\n validateLength,\n} from '@shell/utils/validators';\nimport { normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport isString from 'lodash/isString';\nimport uniq from 'lodash/uniq';\n\nimport isEmpty from 'lodash/isEmpty';\n\nconst STRING_LIKE_TYPES = [\n 'string',\n 'date',\n 'blob',\n 'enum',\n 'multiline',\n 'masked',\n 'password',\n 'dnsLabel',\n 'hostname',\n];\n\nexport default class NormanModel extends Resource {\n setLabels(val) {\n const all = this.labels || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n\n this['labels'] = { ...wasIgnored, ...val };\n }\n\n setLabel(key, val) {\n if ( val ) {\n if ( !this.labels ) {\n this.labels = {};\n }\n\n this.labels[key] = val;\n } else if ( this.labels ) {\n this.labels[key] = undefined;\n delete this.labels[key];\n }\n }\n\n setAnnotations(val) {\n const all = this.annotations || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, ANNOTATIONS_TO_IGNORE_REGEX);\n });\n\n this['annotations'] = { ...wasIgnored, ...val };\n }\n\n setAnnotation(key, val) {\n if ( val ) {\n if ( !this.annotations ) {\n this.annotations = {};\n }\n\n this.annotations[key] = val;\n } else if ( this.annotations ) {\n this.annotations[key] = undefined;\n delete this.annotations[key];\n }\n }\n\n setResourceQuotas(spec) {\n const keys = ['resourceQuota', 'namespaceDefaultResourceQuota'];\n\n keys.forEach((key) => {\n this[key] = { ...spec[key] };\n });\n }\n\n isCondition(condition, withStatus = 'True') {\n if ( !this.conditions ) {\n return false;\n }\n\n const entry = findBy((this.conditions || []), 'type', condition);\n\n if ( !entry ) {\n return false;\n }\n\n if ( !withStatus ) {\n return true;\n }\n\n return (entry.status || '').toLowerCase() === `${ withStatus }`.toLowerCase();\n }\n\n /**\n * Check this instance is valid against\n * - the schema's resource fields\n * - also calls super.validationErrors\n */\n validationErrors(data = this, opt = { ignoreFields: undefined }) {\n const errors = [];\n const {\n type: originalType,\n schema\n } = data;\n const type = normalizeType(originalType);\n\n if ( !originalType ) {\n // eslint-disable-next-line\n console.warn(this.t('validation.noType'), data);\n\n return errors;\n }\n\n if ( !schema ) {\n // eslint-disable-next-line\n // console.warn(this.t('validation.noSchema'), originalType, data);\n\n return errors;\n }\n\n const fields = schema.resourceFields || {};\n const keys = Object.keys(fields);\n let field, key, val, displayKey;\n\n for ( let i = 0 ; i < keys.length ; i++ ) {\n const fieldErrors = [];\n\n key = keys[i];\n field = fields[key];\n val = get(data, key);\n displayKey = displayKeyFor(type, key, this.$rootGetters);\n\n const fieldType = field?.type ? normalizeType(field.type) : null;\n const valIsString = isString(val);\n\n if ( opt.ignoreFields && opt.ignoreFields.includes(key) ) {\n continue;\n }\n\n if ( val === undefined ) {\n val = null;\n }\n\n if (valIsString) {\n if (fieldType) {\n data[key] = coerceStringTypeToScalarType(val, fieldType);\n }\n\n // Empty strings on nullable string fields -> null\n if ( field.nullable && val.length === 0 && STRING_LIKE_TYPES.includes(fieldType)) {\n val = null;\n\n data[key] = val;\n }\n }\n if (fieldType === 'boolean') {\n validateBoolean(val, field, displayKey, this.$rootGetters, fieldErrors);\n } else {\n validateLength(val, field, displayKey, this.$rootGetters, fieldErrors);\n validateChars(val, field, displayKey, this.$rootGetters, fieldErrors);\n }\n\n if (fieldErrors.length > 0) {\n fieldErrors.push(this.t('validation.required', { key: displayKey }));\n errors.push(...fieldErrors);\n continue;\n }\n\n // IDs claim to be these but are lies...\n if ( key !== 'id' && !isEmpty(val) && DNS_LIKE_TYPES.includes(fieldType) ) {\n // DNS types should be lowercase\n const tolower = (val || '').toLowerCase();\n\n if ( tolower !== val ) {\n val = tolower;\n\n data[key] = val;\n }\n\n fieldErrors.push(...validateDnsLikeTypes(val, fieldType, displayKey, this.$rootGetters, fieldErrors));\n }\n errors.push(...fieldErrors);\n }\n\n const rootErrors = super.validationErrors(this, opt);\n\n return uniq([...errors, ...rootErrors]);\n }\n}\n","import { normalizeType } from '@shell/plugins/dashboard-store/normalize';\n\n/**\n * Inject special fields for indexing schemas\n *\n * Note\n * This mutates input in a function, which is bad...\n * but ensures the reference isn't broken, which is needed to maintain similar functionality as before\n */\nexport function addSchemaIndexFields(schema) {\n schema._id = normalizeType(schema.id);\n schema._group = normalizeType(schema.attributes?.group);\n}\n\n/**\n * Remove special fields for indexing schemas\n *\n * Note\n * This mutates input in a function, which is bad...\n * but ensures the reference isn't broken, which is needed to maintain similar functionality as before\n */\nexport function removeSchemaIndexFields(schema) {\n delete schema._id;\n delete schema._group;\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { RouteRecordRaw } from 'vue-router';\nimport { DSL as STORE_DSL } from '@shell/store/type-map';\nimport { _DETAIL } from '@shell/config/query-params';\nimport {\n CoreStoreInit,\n Action,\n Tab,\n Card,\n Panel,\n TableColumn,\n IPlugin,\n LocationConfig,\n ExtensionPoint,\n TabLocation,\n ModelExtensionConstructor,\n PluginRouteRecordRaw, RegisterStore, UnregisterStore, CoreStoreSpecifics, CoreStoreConfig, OnNavToPackage, OnNavAwayFromPackage, OnLogOut,\n ExtensionEnvironment\n} from './types';\nimport coreStore, { coreStoreModule, coreStoreState } from '@shell/plugins/dashboard-store';\nimport { defineAsyncComponent, markRaw, Component } from 'vue';\nimport { getVersionData, CURRENT_RANCHER_VERSION } from '@shell/config/version';\n\n// Registration IDs used for different extension points in the extensions catalog\nexport const EXT_IDS = {\n MODELS: 'models',\n MODEL_EXTENSION: 'model-extension',\n};\n\nexport type ProductFunction = (plugin: IPlugin, store: any) => void;\n\nexport class Plugin implements IPlugin {\n public id: string;\n public name: string;\n public types: any = {};\n public l10n: { [key: string]: Function[] } = {};\n public modelExtensions: { [key: string]: Function[] } = {};\n public locales: { locale: string, label: string}[] = [];\n public products: ProductFunction[] = [];\n public productNames: string[] = [];\n public routes: { parent?: string, route: RouteRecordRaw }[] = [];\n public stores: { storeName: string, register: RegisterStore, unregister: UnregisterStore }[] = [];\n public onEnter: OnNavToPackage = () => Promise.resolve();\n public onLeave: OnNavAwayFromPackage = () => Promise.resolve();\n public _onLogOut: OnLogOut = () => Promise.resolve();\n\n public uiConfig: { [key: string]: any } = {};\n\n // Plugin metadata (plugin package.json)\n public _metadata: any = {};\n\n public _validators: {[key:string]: Function } = {}\n\n // Is this a built-in plugin (bundled with the application)\n public builtin = false;\n\n // Uninstall hooks\n public uninstallHooks: Function[] = [];\n\n constructor(id: string) {\n this.id = id;\n this.name = id;\n\n // Initialize uiConfig for all of the possible enum values\n Object.values(ExtensionPoint).forEach((v) => {\n this.uiConfig[v] = {};\n });\n }\n\n get environment(): ExtensionEnvironment {\n const versionData = getVersionData();\n\n return {\n version: versionData.Version,\n commit: versionData.GitCommit,\n isPrime: versionData.RancherPrime === 'true',\n docsVersion: `v${ CURRENT_RANCHER_VERSION }`\n };\n }\n\n get metadata() {\n return this._metadata;\n }\n\n set metadata(value) {\n this._metadata = value;\n this.name = this._metadata.name || this.id;\n }\n\n get version() {\n return this._metadata.version;\n }\n\n get validators() {\n return this._validators;\n }\n\n set validators(vals: {[key:string]: Function }) {\n this._validators = vals;\n }\n\n // Track which products the plugin creates\n DSL(store: any, productName: string) {\n const storeDSL = STORE_DSL(store, productName);\n\n this.productNames.push(productName);\n\n return storeDSL;\n }\n\n addProduct(product: ProductFunction): void {\n this.products.push(product);\n }\n\n addLocale(locale: string, label: string): void {\n this.locales.push({ locale, label });\n }\n\n addL10n(locale: string, fn: Function) {\n this.register('l10n', locale, fn);\n }\n\n addRoutes(routes: PluginRouteRecordRaw[] | RouteRecordRaw[]) {\n routes.forEach((r: PluginRouteRecordRaw | RouteRecordRaw) => {\n if (Object.keys(r).includes('parent')) {\n const pConfig = r as PluginRouteRecordRaw;\n\n if (pConfig.parent) {\n this.addRoute(pConfig.parent, pConfig.route);\n } else {\n this.addRoute(pConfig.route);\n }\n } else {\n this.addRoute(r as RouteRecordRaw);\n }\n });\n }\n\n addRoute(parentOrRoute: RouteRecordRaw | string, optionalRoute?: RouteRecordRaw): void {\n // Always add the pkg name to the route metadata\n const hasParent = typeof (parentOrRoute) === 'string';\n const parent: string | undefined = hasParent ? parentOrRoute as string : undefined;\n const route: RouteRecordRaw = hasParent ? optionalRoute as RouteRecordRaw : parentOrRoute as RouteRecordRaw;\n\n let parentOverride;\n\n if (!parent) {\n // TODO: Inspecting the route object in the browser clearly indicates it's not a RouteRecordRaw. The type needs to be changed or at least extended.\n const typelessRoute: any = route;\n\n if (typelessRoute.component?.layout) {\n console.warn(`Layouts have been deprecated. We still have parent routes which use the same name and styling as the previous layouts. \\n\\nFound a component ${ typelessRoute.component.name } with the '${ typelessRoute.component.layout }' layout specified `); // eslint-disable-line no-console\n parentOverride = typelessRoute.component.layout.toLowerCase();\n } else {\n console.warn(`Layouts have been deprecated. We still have parent routes which use the same name and styling as the previous layouts. You should specify a parent, we're currently setting the parent to 'default'`); // eslint-disable-line no-console\n parentOverride = 'default';\n }\n }\n\n route.meta = {\n ...route?.meta,\n pkg: this.name,\n };\n\n this.routes.push({ parent: parentOverride || parent, route });\n }\n\n private _addUIConfig(type: string, where: string, when: LocationConfig | string, config: any) {\n // For convenience 'when' can be a string to indicate a resource, so convert it to the LocationConfig format\n const locationConfig = (typeof when === 'string') ? { resource: when } : when;\n\n this.uiConfig[type][where] = this.uiConfig[type][where] || [];\n this.uiConfig[type][where].push({ ...config, locationConfig });\n }\n\n /**\n * Adds an action/button to the UI\n */\n addAction(where: string, when: LocationConfig | string, action: Action): void {\n this._addUIConfig(ExtensionPoint.ACTION, where, when, action);\n }\n\n /**\n * Adds a tab to the UI\n */\n addTab(where: string, when: LocationConfig | string, tab: Tab): void {\n // tackling https://github.com/rancher/dashboard/issues/11122, we don't want the tab to added in _EDIT view, unless overriden\n // on extensions side we won't document the mode param for this extension point\n if (where === TabLocation.RESOURCE_DETAIL && (typeof when === 'object' && !when.mode)) {\n when.mode = [_DETAIL];\n }\n\n this._addUIConfig(ExtensionPoint.TAB, where, when, this._createAsyncComponent(tab));\n }\n\n /**\n * Adds a panel/component to the UI\n */\n addPanel(where: string, when: LocationConfig | string, panel: Panel): void {\n this._addUIConfig(ExtensionPoint.PANEL, where, when, this._createAsyncComponent(panel));\n }\n\n /**\n * Adds a card to the to the UI\n */\n addCard( where: string, when: LocationConfig | string, card: Card): void {\n this._addUIConfig(ExtensionPoint.CARD, where, when, this._createAsyncComponent(card));\n }\n\n /**\n * Adds a model extension\n * @experimental May change or be removed in the future\n *\n * @param type Model type\n * @param clz Class for the model extension (constructor)\n */\n addModelExtension(type: string, clz: ModelExtensionConstructor): void {\n this.register(EXT_IDS.MODEL_EXTENSION, type, clz);\n }\n\n /**\n * Wraps a component from an extensionConfig with defineAsyncComponent and\n * markRaw. This prepares the component to be loaded dynamically and prevents\n * Vue from making the component reactive.\n *\n * @param extensionConfig The extension configuration containing a component\n * to render.\n * @returns A new object with the same properties as the extension\n * configuration, but with the component property wrapped in\n * defineAsyncComponent and markRaw. If the extension configuration doesn't\n * have a component property, it returns the extension configuration\n * unchanged.\n */\n private _createAsyncComponent(extensionConfig: Card | Panel | Tab) {\n const { component } = extensionConfig;\n\n if (!component) {\n return extensionConfig;\n }\n\n return {\n ...extensionConfig,\n component: markRaw(defineAsyncComponent(component as () => Promise<Component>)),\n };\n }\n\n /**\n * Adds a new column to a table on the UI\n */\n addTableColumn(where: string, when: LocationConfig | string, column: TableColumn): void {\n this._addUIConfig(ExtensionPoint.TABLE_COL, where, when, column);\n }\n\n setHomePage(component: any) {\n this.addRoute({\n name: 'home',\n path: '/home',\n component\n });\n }\n\n addUninstallHook(hook: Function) {\n this.uninstallHooks.push(hook);\n }\n\n addStore(storeName: string, register: RegisterStore, unregister: UnregisterStore) {\n this.stores.push({\n storeName, register, unregister\n });\n }\n\n addDashboardStore(storeName: string, storeSpecifics: CoreStoreSpecifics, config: CoreStoreConfig, init?: CoreStoreInit) {\n this.stores.push({\n storeName,\n register: () => {\n return coreStore(\n this.storeFactory(storeSpecifics, config),\n config,\n init,\n );\n },\n unregister: (store: any) => {\n store.unregisterModule(storeName);\n }\n });\n }\n\n private storeFactory(storeSpecifics: CoreStoreSpecifics, config: CoreStoreConfig) {\n return {\n ...coreStoreModule,\n\n state() {\n return {\n ...coreStoreState(config.namespace, config.baseUrl, config.isClusterStore),\n ...storeSpecifics.state()\n };\n },\n\n getters: {\n ...coreStoreModule.getters,\n ...storeSpecifics.getters\n },\n\n mutations: {\n ...coreStoreModule.mutations,\n ...storeSpecifics.mutations\n },\n\n actions: {\n ...coreStoreModule.actions,\n ...storeSpecifics.actions\n },\n };\n }\n\n public addNavHooks(\n onEnter: OnNavToPackage = () => Promise.resolve(),\n onLeave: OnNavAwayFromPackage = () => Promise.resolve(),\n onLogOut: OnLogOut = () => Promise.resolve(),\n ): void {\n this.onEnter = onEnter;\n this.onLeave = onLeave;\n this._onLogOut = onLogOut;\n }\n\n public async onLogOut(store: any) {\n await Promise.all(this.stores.map((s: any) => store.dispatch(`${ s.storeName }/onLogout`)));\n\n await this._onLogOut(store);\n }\n\n public register(type: string, name: string, fn: Function) {\n const allowPaths = ['models', 'image'];\n const nparts = name.split('/');\n\n // Support components in a sub-folder - component_name/index.vue (and ignore other componnets in that folder)\n // Allow store-scoped models via sub-folder - pkgname/models/storename/type will be registered as storename/type to avoid overwriting shell/models/type\n if (nparts.length === 2 && !allowPaths.includes(type)) {\n if (nparts[1] !== 'index') {\n return;\n }\n name = nparts[0];\n }\n\n // Accumulate l10n resources rather than replace\n if (type === 'l10n') {\n if (!this.l10n[name]) {\n this.l10n[name] = [];\n }\n\n this.l10n[name].push(fn);\n\n // Accumulate model extensions\n } else if (type === EXT_IDS.MODEL_EXTENSION) {\n if (!this.modelExtensions[name]) {\n this.modelExtensions[name] = [];\n }\n this.modelExtensions[name].push(fn);\n } else {\n if (!this.types[type]) {\n this.types[type] = {};\n }\n\n this.types[type][name] = fn;\n }\n }\n}\n","import { DESCRIPTION } from '@shell/config/labels-annotations';\nimport HybridModel from './hybrid-class';\nimport { NEVER_ADD } from '@shell/utils/create-yaml';\nimport { deleteProperty } from '@shell/utils/object';\nimport { EXT_IDS } from '@shell/core/plugin';\n\n// Some fields that are removed for YAML (NEVER_ADD) are required via API\nconst STEVE_ADD = [\n 'metadata.resourceVersion',\n 'metadata.fields',\n 'metadata.clusterName',\n 'metadata.deletionGracePeriodSeconds',\n 'metadata.generateName',\n];\nconst STEVE_NEVER_SAVE = NEVER_ADD.filter((na) => !STEVE_ADD.includes(na));\n\nexport default class SteveModel extends HybridModel {\n get name() {\n return this.metadata?.name || this._name;\n }\n\n get namespace() {\n return this.metadata?.namespace;\n }\n\n get description() {\n return this.metadata?.annotations?.[DESCRIPTION] || this.spec?.description || this._description;\n }\n\n /**\n * Set description based on the type of model available with private fallback\n */\n set description(value) {\n if (this.metadata?.annotations) {\n this.metadata.annotations[DESCRIPTION] = value;\n }\n\n if (this.spec) {\n this.spec.description = value;\n }\n\n this._description = value;\n }\n\n /**\n * Get all model extensions for this model\n */\n get modelExtensions() {\n return this.$plugin.getDynamic(EXT_IDS.MODEL_EXTENSION, this.type) || [];\n }\n\n cleanForSave(data, forNew) {\n const val = super.cleanForSave(data);\n\n for (const field of STEVE_NEVER_SAVE) {\n deleteProperty(val, field);\n }\n\n return val;\n }\n}\n","import SteveModel from './steve-class';\n\n/**\n * SteveModel that supports the description being in the root 'description' property.\n */\nexport default class SteveDescriptionModel extends SteveModel {\n // Preserve description\n constructor(data, ctx, rehydrateNamespace = null, setClone = false) {\n const _description = data.description;\n\n super(data, ctx, rehydrateNamespace, setClone);\n this.description = _description;\n }\n\n get description() {\n return this._description;\n }\n\n set description(value) {\n this._description = value;\n }\n\n // Ensure when we clone that we preserve the description\n toJSON() {\n const data = super.toJSON();\n\n data.description = this.description;\n delete data._description;\n\n return data;\n }\n\n toSave() {\n return this.toJSON();\n }\n}\n","import { mapState, mapGetters } from 'vuex';\nimport { resourceNames } from '@shell/utils/string';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { SUBTYPE_MAPPING } from '@shell/models/management.cattle.io.roletemplate';\nconst CLUSTER = SUBTYPE_MAPPING.CLUSTER.key;\n\nexport default {\n data() {\n return {\n warning: '',\n info: '',\n };\n },\n\n computed: {\n ...mapState('action-menu', ['toRemove']),\n ...mapGetters({ t: 'i18n/t' }),\n\n names() {\n return this.toRemove.map((obj) => obj.nameDisplay).slice(0, 5);\n },\n\n plusMore() {\n const remaining = this.toRemove.length - this.names.length;\n\n return this.t('promptRemove.andOthers', { count: remaining });\n },\n },\n watch: {\n value: {\n handler(neu) {\n this.handleRoleDeletionCheck(neu, neu[0].type, this.$route.hash);\n },\n immediate: true\n }\n },\n methods: {\n resourceNames,\n async handleRoleDeletionCheck(rolesToRemove, resourceType, queryHash) {\n this.warning = '';\n let resourceToCheck;\n let propToMatch;\n let numberOfRolesWithBinds = 0;\n const uniqueUsersWithBinds = new Set();\n\n this.info = this.t('rbac.globalRoles.waiting', { count: rolesToRemove.length });\n\n switch (resourceType) {\n case MANAGEMENT.GLOBAL_ROLE:\n resourceToCheck = MANAGEMENT.GLOBAL_ROLE_BINDING;\n propToMatch = 'globalRoleName';\n break;\n default:\n if (queryHash.includes(CLUSTER)) {\n resourceToCheck = MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING;\n } else {\n resourceToCheck = MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING;\n }\n propToMatch = 'roleTemplateName';\n break;\n }\n\n try {\n const request = await this.$store.dispatch('management/request', {\n url: `/v1/${ resourceToCheck }`,\n method: 'get',\n }, { root: true });\n\n // We need to fetch the users here in order to get an accurate count when selecting global roles.\n const users = await this.$store.dispatch('management/request', {\n url: `/v1/${ MANAGEMENT.USER }`,\n method: 'get',\n }, { root: true });\n\n const userMap = users.data?.reduce((map, user) => {\n if ( user.username ) {\n map[user.id] = user;\n }\n\n return map;\n }, {});\n\n if (request.data && request.data.length) {\n rolesToRemove.forEach((toRemove) => {\n const usedRoles = request.data.filter((item) => item[propToMatch] === toRemove.id);\n\n if (usedRoles.length) {\n const uniqueUsers = [...new Set(usedRoles.map((item) => item.userName).filter((user) => userMap[user]))];\n\n if (uniqueUsers.length) {\n numberOfRolesWithBinds++;\n uniqueUsers.forEach((user) => uniqueUsersWithBinds.add(user));\n }\n }\n });\n\n if (numberOfRolesWithBinds && uniqueUsersWithBinds.size) {\n this.info = '';\n this.warning = this.t('rbac.globalRoles.usersBound', { count: uniqueUsersWithBinds.size });\n } else {\n this.info = this.t('rbac.globalRoles.notBound', null, true);\n }\n } else {\n this.info = this.t('rbac.globalRoles.notBound', null, true);\n }\n } catch (e) {\n this.info = this.t('rbac.globalRoles.unableToCheck');\n }\n },\n },\n};\n","import { CATALOG, EXPERIMENTAL, DEPRECATED } from '@shell/config/types';\nimport { CATALOG as CATALOG_ANNOTATIONS } from '@shell/config/labels-annotations';\nimport { addParams } from '@shell/utils/url';\nimport { allHash, allHashSettled } from '@shell/utils/promise';\nimport { clone } from '@shell/utils/object';\nimport { findBy, addObject, filterBy, isArray } from '@shell/utils/array';\nimport { stringify } from '@shell/utils/error';\nimport { classify } from '@shell/plugins/dashboard-store/classify';\nimport { sortBy } from '@shell/utils/sort';\nimport { ensureRegex } from '@shell/utils/string';\nimport { isPrerelease } from '@shell/utils/version';\nimport difference from 'lodash/difference';\nimport { lookup } from '@shell/plugins/dashboard-store/model-loader';\n\nconst ALLOWED_CATEGORIES = [\n 'Storage',\n 'Monitoring',\n 'Database',\n 'Repository',\n 'Security',\n 'Networking',\n 'PaaS',\n 'Infrastructure',\n 'Applications',\n];\n\nconst CERTIFIED_SORTS = {\n [CATALOG_ANNOTATIONS._RANCHER]: 1,\n [CATALOG_ANNOTATIONS._EXPERIMENTAL]: 1,\n [CATALOG_ANNOTATIONS._PARTNER]: 2,\n other: 3,\n};\n\nexport const WINDOWS = 'windows';\nexport const LINUX = 'linux';\n\nexport const state = function() {\n return {\n loaded: {},\n clusterRepos: [],\n namespacedRepos: [],\n charts: {},\n versionInfos: {},\n config: { namespace: 'catalog' },\n inStore: undefined,\n };\n};\n\nexport const getters = {\n isLoaded(state) {\n return (repo) => {\n return !!state.loaded[repo._key];\n };\n },\n\n repos(state) {\n const clustered = state.clusterRepos || [];\n const namespaced = state.namespacedRepos || [];\n\n return [...clustered, ...namespaced].filter((r) => r.spec?.enabled !== false);\n },\n\n // Raw charts\n rawCharts(state) {\n return state.charts;\n },\n\n repo(state, getters) {\n return ({ repoType, repoName }) => {\n const ary = (repoType === 'cluster' ? state.clusterRepos : state.namespacedRepos);\n\n return findBy(ary, 'metadata.name', repoName);\n };\n },\n\n charts(state, getters, rootState, rootGetters) {\n const repoKeys = getters.repos.map((x) => x._key);\n let cluster = rootGetters['currentCluster'];\n\n if ( rootGetters['currentProduct']?.inStore === 'management' ) {\n cluster = null;\n }\n\n // Filter out charts for repos that are no longer in the store, rather\n // than trying to clear them when a repo is removed.\n // And ones that are for the wrong kind of cluster\n const out = Object.values(state.charts).filter((chart) => {\n if ( !repoKeys.includes(chart.repoKey) ) {\n return false;\n }\n\n if ( cluster && chart.scope && chart.scope !== cluster.scope ) {\n return false;\n }\n\n return true;\n });\n\n return sortBy(out, ['certifiedSort', 'repoName', 'chartName']);\n },\n\n chart(state, getters) {\n return ({\n key, repoType, repoName, chartName, preferRepoType, preferRepoName, includeHidden, showDeprecated\n }) => {\n if ( key && !repoType && !repoName && !chartName) {\n const parsed = parseKey(key);\n\n repoType = parsed.repoType;\n repoName = parsed.repoName;\n chartName = parsed.chartName;\n }\n\n let matching = filterBy(getters.charts, {\n repoType,\n repoName,\n chartName,\n deprecated: !!showDeprecated,\n });\n\n if ( includeHidden === false ) {\n matching = matching.filter((x) => !x.hidden);\n }\n\n if ( !matching.length ) {\n return;\n }\n\n if ( preferRepoType && preferRepoName ) {\n preferSameRepo(matching, preferRepoType, preferRepoName);\n }\n\n return matching[0];\n };\n },\n\n isInstalled(state, getters, rootState, rootGetters) {\n return ({ gvr }) => {\n let name, version;\n const idx = gvr.indexOf('/');\n\n if ( idx > 0 ) {\n name = gvr.substr(0, idx);\n version = gvr.substr(idx + 1);\n } else {\n name = gvr;\n }\n\n const inStore = rootGetters['currentProduct'].inStore;\n const schema = rootGetters[`${ inStore }/schemaFor`](name);\n\n if ( schema && (!version || schema.attributes.version === version) ) {\n return true;\n }\n\n return false;\n };\n },\n\n versionSatisfying(state, getters) {\n return ({\n repoType, repoName, constraint, chartVersion\n }) => {\n let name, wantVersion;\n const idx = constraint.indexOf('=');\n\n if ( idx > 0 ) {\n name = constraint.substr(0, idx);\n wantVersion = normalizeVersion(constraint.substr(idx + 1));\n } else {\n name = constraint;\n wantVersion = 'latest';\n }\n\n name = name.toLowerCase().trim();\n chartVersion = normalizeVersion(chartVersion);\n\n const matching = getters.charts.filter((chart) => chart.chartName.toLowerCase().trim() === name);\n\n if ( !matching.length ) {\n return;\n }\n\n if ( repoType && repoName ) {\n preferSameRepo(matching, repoType, repoName);\n }\n\n const chart = matching[0];\n let version;\n\n if ( wantVersion === 'latest' ) {\n version = chart.versions[0];\n } else if ( wantVersion === 'match' || wantVersion === 'matching' ) {\n version = chart.versions.find((v) => normalizeVersion(v.version) === chartVersion);\n } else {\n version = chart.versions.find((v) => normalizeVersion(v.version) === wantVersion);\n }\n\n if ( version ) {\n return clone(version);\n }\n };\n },\n\n versionProviding(state, getters) {\n return ({ repoType, repoName, gvr }) => {\n const matching = getters.charts.filter((chart) => chart.provides.includes(gvr) );\n\n if ( !matching.length ) {\n return;\n }\n\n if ( repoType && repoName ) {\n preferSameRepo(matching, repoType, repoName);\n }\n\n const version = matching[0].versions.find((version) => version.annotations?.[CATALOG_ANNOTATIONS.PROVIDES] === gvr);\n\n if ( version ) {\n return clone(version);\n }\n };\n },\n\n version(state, getters) {\n return ({\n repoType, repoName, chartName, versionName\n }) => {\n const chart = getters['chart']({\n repoType, repoName, chartName\n });\n\n if ( !chart ) {\n return null;\n }\n\n let version;\n\n if ( versionName ) {\n version = findBy(chart.versions, 'version', versionName);\n } else {\n version = chart.versions[0];\n }\n\n if ( version ) {\n return clone(version);\n }\n };\n },\n\n errors(state) {\n return state.errors || [];\n },\n\n haveComponent() {\n return (name) => {\n return getters['type-map/hasCustomChart'](name);\n };\n },\n\n importComponent(state, getters) {\n return (name) => {\n return getters['type-map/importChart'](name);\n };\n },\n\n inStore(state) {\n return state.inStore;\n },\n\n classify: (state, getters, rootState) => (obj) => {\n return lookup(state.config.namespace, obj?.type, obj?.metadata?.name, rootState);\n },\n};\n\nexport const mutations = {\n reset(currentState) {\n const newState = state();\n\n Object.assign(currentState, newState);\n },\n\n setInStore(state, inStore) {\n state.inStore = inStore;\n },\n\n setRepos(state, { cluster, namespaced }) {\n state.clusterRepos = cluster;\n state.namespacedRepos = namespaced;\n },\n\n setCharts(state, { charts, errors = [], loaded = [] }) {\n state.charts = charts;\n state.errors = errors;\n\n for ( const repo of loaded ) {\n state.loaded[repo._key] = true;\n }\n },\n\n setVersions(state, versions) {\n state.versionInfos = versions;\n },\n\n cacheVersion(state, { key, info }) {\n state.versionInfos[key] = info;\n }\n};\n\nexport const actions = {\n /**\n * force: Always refresh catalog's helm repo by re-fetching index.yaml\n *\n * reset: clear existing charts and version cache\n */\n async load(ctx, { force, reset } = {}) {\n const {\n state, getters, rootGetters, commit, dispatch\n } = ctx;\n\n let promises = {};\n // Installing an app? This is fine (in cluster store)\n // Fetching list of cluster templates? This is fine (in management store)\n // Installing a cluster template? This isn't fine (in cluster store as per installing app, but if there is no cluster we need to default to management)\n\n const inStore = rootGetters['currentCluster'] ? rootGetters['currentProduct'].inStore : 'management';\n\n if ( rootGetters[`${ inStore }/schemaFor`](CATALOG.CLUSTER_REPO) ) {\n promises.cluster = dispatch(`${ inStore }/findAll`, { type: CATALOG.CLUSTER_REPO }, { root: true });\n }\n\n if ( rootGetters[`${ inStore }/schemaFor`](CATALOG.REPO) ) {\n promises.namespaced = dispatch(`${ inStore }/findAll`, { type: CATALOG.REPO }, { root: true });\n }\n\n const hash = await allHash(promises);\n\n // As per comment above, when there are no clusters this will be management. Store it such that it can be used for those cases\n commit('setInStore', inStore);\n hash.cluster = hash.cluster?.filter((repo) => !(repo?.metadata?.annotations?.[CATALOG_ANNOTATIONS.HIDDEN_REPO] === 'true'));\n\n commit('setRepos', hash);\n\n const repos = getters['repos'];\n const loaded = [];\n\n promises = {};\n\n for ( const repo of repos ) {\n if ( (force === true || !getters.isLoaded(repo)) && repo.canLoad ) {\n console.info('Loading index for repo', repo.name, `(${ repo._key })`); // eslint-disable-line no-console\n promises[repo._key] = repo.followLink('index');\n }\n }\n\n const res = await allHashSettled(promises);\n const charts = reset ? {} : state.charts;\n const errors = [];\n\n for ( const key of Object.keys(res) ) {\n const obj = res[key];\n const repo = findBy(repos, '_key', key);\n\n if ( obj.status === 'rejected' ) {\n errors.push(stringify(obj.reason));\n continue;\n }\n\n for ( const k in obj.value.entries ) {\n for ( const entry of obj.value.entries[k] ) {\n addChart(ctx, charts, entry, repo);\n }\n }\n\n loaded.push(repo);\n }\n\n commit('setCharts', {\n charts,\n errors,\n loaded,\n });\n\n if (reset) {\n commit('setVersions', {});\n }\n },\n\n async refresh({ getters, commit, dispatch }) {\n const promises = getters.repos.map((x) => x.refresh());\n\n // @TODO wait for repo state to indicate they're done once the API has that\n\n await Promise.allSettled(promises);\n\n await dispatch('load', { force: true, reset: true });\n },\n\n /*\n Fetch full information about a specific version of a Helm chart,\n including the standard values and README.\n */\n async getVersionInfo({ state, getters, commit }, {\n repoType, repoName, chartName, versionName\n }) {\n const key = `${ repoType }/${ repoName }/${ chartName }/${ versionName }`;\n let info = state.versionInfos[key];\n\n if ( !info ) {\n const repo = getters['repo']({ repoType, repoName });\n\n if ( !repo ) {\n throw new Error('Repo not found');\n }\n\n info = await repo.followLink('info', {\n url: addParams(repo.links.info, {\n chartName,\n version: versionName\n })\n });\n\n commit('cacheVersion', { key, info });\n }\n\n return info;\n },\n\n rehydrate(ctx) {\n const { state, commit } = ctx;\n const charts = state.charts || {};\n\n Object.entries(state.charts).forEach(([key, chart]) => {\n if (chart.__rehydrate) {\n charts[key] = classify(ctx, chart);\n }\n });\n commit('setCharts', {\n charts,\n errors: state.errors,\n });\n }\n};\n\nexport function generateKey(repoType, repoName, chartName) {\n return `${ repoType }/${ repoName }/${ chartName }`;\n}\n\nexport function parseKey(key) {\n const parts = key.split('/');\n\n return {\n repoType: parts[0],\n repoName: parts[1],\n chartName: parts[2],\n };\n}\n\nfunction addChart(ctx, map, chart, repo) {\n const repoType = (repo.type === CATALOG.CLUSTER_REPO ? 'cluster' : 'namespace');\n const repoName = repo.metadata.name;\n const key = generateKey(repoType, repoName, chart.name);\n let obj = map[key];\n\n const certifiedAnnotation = chart.annotations?.[CATALOG_ANNOTATIONS.CERTIFIED];\n\n let certified = null;\n let sideLabel = null;\n\n if ( repo.isRancher ) {\n certified = CATALOG_ANNOTATIONS._RANCHER;\n } else if ( repo.isPartner ) {\n certified = CATALOG_ANNOTATIONS._PARTNER;\n } else {\n certified = CATALOG_ANNOTATIONS._OTHER;\n }\n\n if ( chart.deprecated ) {\n sideLabel = DEPRECATED;\n } else if ( chart.annotations?.[CATALOG_ANNOTATIONS.EXPERIMENTAL] ) {\n sideLabel = EXPERIMENTAL;\n } else if (\n !repo.isRancherSource &&\n certifiedAnnotation &&\n certifiedAnnotation !== CATALOG_ANNOTATIONS._RANCHER &&\n certified === CATALOG_ANNOTATIONS._OTHER\n ) {\n // But anybody can set the side label\n sideLabel = certifiedAnnotation;\n }\n\n if ( !obj ) {\n if ( ctx ) { }\n obj = classify(ctx, {\n key,\n type: 'chart',\n id: key,\n certified,\n sideLabel,\n repoType,\n repoName,\n repoNameDisplay: ctx.rootGetters['i18n/withFallback'](`catalog.repo.name.\"${ repoName }\"`, null, repoName),\n certifiedSort: CERTIFIED_SORTS[certified] || 99,\n icon: chart.icon,\n color: repo.color,\n chartType: chart.annotations?.[CATALOG_ANNOTATIONS.TYPE] || CATALOG_ANNOTATIONS._APP,\n chartName: chart.name,\n chartNameDisplay: chart.annotations?.[CATALOG_ANNOTATIONS.DISPLAY_NAME] || chart.name,\n chartDescription: chart.description,\n featured: chart.annotations?.[CATALOG_ANNOTATIONS.FEATURED],\n repoKey: repo._key,\n versions: [],\n categories: filterCategories(chart.keywords),\n deprecated: !!chart.deprecated,\n experimental: !!chart.annotations?.[CATALOG_ANNOTATIONS.EXPERIMENTAL],\n hidden: !!chart.annotations?.[CATALOG_ANNOTATIONS.HIDDEN],\n targetNamespace: chart.annotations?.[CATALOG_ANNOTATIONS.NAMESPACE],\n targetName: chart.annotations?.[CATALOG_ANNOTATIONS.RELEASE_NAME],\n scope: chart.annotations?.[CATALOG_ANNOTATIONS.SCOPE],\n provides: [],\n windowsIncompatible: !(chart.annotations?.[CATALOG_ANNOTATIONS.PERMITTED_OS] || '').includes('windows'),\n deploysOnWindows: (chart.annotations?.[CATALOG_ANNOTATIONS.DEPLOYED_OS] || '').includes('windows')\n });\n\n map[key] = obj;\n }\n\n chart.key = `${ key }/${ chart.version }`;\n chart.repoType = repoType;\n chart.repoName = repoName;\n\n const provides = chart.annotations?.[CATALOG_ANNOTATIONS.PROVIDES];\n\n if ( provides ) {\n addObject(obj.provides, provides);\n }\n\n obj.versions.push(chart);\n}\n\nfunction preferSameRepo(matching, repoType, repoName) {\n matching.sort((a, b) => {\n const aSameRepo = a.repoType === repoType && a.repoName === repoName ? 1 : 0;\n const bSameRepo = b.repoType === repoType && b.repoName === repoName ? 1 : 0;\n\n if ( aSameRepo && !bSameRepo ) {\n return -1;\n } else if ( !aSameRepo && bSameRepo ) {\n return 1;\n }\n\n return 0;\n });\n}\n\nfunction normalizeVersion(v) {\n return v.replace(/^v/i, '').toLowerCase().trim();\n}\n\nfunction filterCategories(categories) {\n categories = (categories || []).map((x) => normalizeCategory(x));\n\n const out = [];\n\n for ( const c of ALLOWED_CATEGORIES ) {\n if ( categories.includes(normalizeCategory(c)) ) {\n addObject(out, c);\n }\n }\n\n return out;\n}\n\nfunction normalizeCategory(c) {\n return c.replace(/\\s+/g, '').toLowerCase();\n}\n\n/*\ncatalog.cattle.io/deplys-on-os: OS -> requires global.cattle.OS.enabled: true\n default: nothing\ncatalog.cattle.io/permits-os: OS -> will break on clusters containing nodes that are not OS\n default if not found: catalog.cattle.io/permits-os: linux\n*/\nexport function compatibleVersionsFor(chart, os, includePrerelease = true) {\n const versions = chart.versions;\n\n if (os && !isArray(os)) {\n os = [os];\n }\n\n return versions.filter((ver) => {\n const osPermitted = (ver?.annotations?.[CATALOG_ANNOTATIONS.PERMITTED_OS] || LINUX).split(',');\n\n if ( !includePrerelease && isPrerelease(ver.version) ) {\n return false;\n }\n\n if ( !os || difference(os, osPermitted).length === 0) {\n return true;\n }\n\n return false;\n });\n}\n\nexport function filterAndArrangeCharts(charts, {\n clusterProvider = '',\n operatingSystems,\n category,\n searchQuery,\n showDeprecated = false,\n showHidden = false,\n showPrerelease = true,\n hideRepos = [],\n showRepos = [],\n showTypes = [],\n hideTypes = [],\n} = {}) {\n const out = charts.filter((c) => {\n if (\n ( c.deprecated && !showDeprecated ) ||\n ( c.hidden && !showHidden ) ||\n ( hideRepos?.length && hideRepos.includes(c.repoKey) ) ||\n ( showRepos?.length && !showRepos.includes(c.repoKey) ) ||\n ( hideTypes?.length && hideTypes.includes(c.chartType) ) ||\n ( showTypes?.length && !showTypes.includes(c.chartType) ) ||\n (c.chartName === 'rancher-wins-upgrader' && clusterProvider === 'rke2')\n ) {\n return false;\n }\n\n if (compatibleVersionsFor(c, operatingSystems, showPrerelease).length <= 0) {\n // There's no versions compatible with the specified os\n return false;\n }\n\n if ( category && !c.categories.includes(category) ) {\n // The category filter doesn't match\n return false;\n }\n\n if ( searchQuery ) {\n // The search filter doesn't match\n const searchTokens = searchQuery.split(/\\s*[, ]\\s*/).map((x) => ensureRegex(x, false));\n\n for ( const token of searchTokens ) {\n const chartDescription = c.chartDescription || '';\n\n if ( !c.chartNameDisplay.match(token) && !chartDescription.match(token) ) {\n return false;\n }\n }\n }\n\n return true;\n });\n\n return sortBy(out, ['certifiedSort', 'repoName', 'chartNameDisplay']);\n}\n","import { MANAGEMENT } from '@shell/config/types';\n\nconst definitions = {};\n\nexport const create = function(name, defaultValue) {\n definitions[name] = { def: defaultValue };\n\n return name;\n};\n\nexport const mapFeature = function(name) {\n return {\n get() {\n return this.$store.getters['features/get'](name);\n },\n\n set(value) {\n throw new Error('The feature store only supports getting');\n }\n };\n};\n\n// --------------------\n// The default (2nd arg) is used only if the flag is missing entirely from the server.\n// This is mainly useful for development before the flag has been created in the API..\n\nexport const MULTI_CLUSTER = create('multi-cluster-management', true);\nexport const LEGACY = create('legacy', false);\nexport const RKE2 = create('rke2', true);\nexport const RKE1_UI = create('rke1-ui', true);\nexport const UNSUPPORTED_STORAGE_DRIVERS = create('unsupported-storage-drivers', false);\nexport const FLEET = create('continuous-delivery', true);\nexport const HARVESTER = create('harvester', true);\nexport const HARVESTER_CONTAINER = create('harvester-baremetal-container-workload', false);\nexport const FLEET_WORKSPACE_BACK = create('provisioningv2-fleet-workspace-back-population', false);\nexport const STEVE_CACHE = create('ui-sql-cache', false);\nexport const UIEXTENSION = create('uiextension', true);\nexport const PROVISIONING_PRE_BOOTSTRAP = create('provisioningprebootstrap', false);\n\n// Not currently used.. no point defining ones we don't use\n// export const EMBEDDED_CLUSTER_API = create('embedded-cluster-api', true);\n// export const ISTIO_VIRTUAL_SERVICE_UI = create('istio-virtual-service-ui', true);\n// export const PROVISIONINGV2 = create('provisioningv2', true);\n// export const AUTH = create('auth', true);\n\n// --------------------\n\nexport const getters = {\n get: (state, getters, rootState, rootGetters) => (name) => {\n const definition = definitions[name];\n\n if (!definition) {\n throw new Error(`Unknown feature: ${ name }`);\n }\n\n const entry = rootGetters['management/byId'](MANAGEMENT.FEATURE, name);\n\n if ( entry ) {\n return entry.enabled;\n }\n\n return definition.def;\n },\n};\n\nexport const actions = {\n async loadServer({ rootGetters, dispatch }) {\n if ( rootGetters['management/canList'](MANAGEMENT.FEATURE) ) {\n return await dispatch('management/findAll', { type: MANAGEMENT.FEATURE, opt: { watch: false } }, { root: true });\n }\n },\n};\n","import { SETTING } from '@shell/config/settings';\nimport { MANAGEMENT, STEVE } from '@shell/config/types';\nimport { clone } from '@shell/utils/object';\n\nconst definitions = {};\n/**\n * Key/value of prefrences are stored before login here and cookies due lack of access permission.\n * Once user is logged in while setting asUserPreference, update stored before login Key/value to the backend in loadServer function.\n */\nlet prefsBeforeLogin = {};\n\nexport const create = function(name, def, opt = {}) {\n const parseJSON = opt.parseJSON === true;\n const asCookie = opt.asCookie === true;\n const asUserPreference = opt.asUserPreference !== false;\n const options = opt.options;\n const inheritFrom = opt.inheritFrom;\n\n definitions[name] = {\n def,\n options,\n parseJSON,\n asCookie,\n asUserPreference,\n inheritFrom, // if value is not defined on server, we can default it to another pref\n mangleRead: opt.mangleRead, // Alter the value read from the API (to match old Rancher expectations)\n mangleWrite: opt.mangleWrite, // Alter the value written back to the API (ditto)\n };\n\n return name;\n};\n\nexport const mapPref = function(name) {\n return {\n get() {\n return this.$store.getters['prefs/get'](name);\n },\n\n set(value) {\n this.$store.dispatch('prefs/set', { key: name, value });\n }\n };\n};\n\n// --------------------\nconst parseJSON = true; // Shortcut for setting it below\nconst asCookie = true; // Store as a cookie so that it's available before auth + on server-side\n\n// Keys must be lowercase and valid dns label (a-z 0-9 -)\nexport const CLUSTER = create('cluster', '');\nexport const LAST_NAMESPACE = create('last-namespace', '');\nexport const NAMESPACE_FILTERS = create('ns-by-cluster', {}, { parseJSON });\nexport const WORKSPACE = create('workspace', '');\nexport const EXPANDED_GROUPS = create('open-groups', ['cluster', 'policy', 'rbac', 'serviceDiscovery', 'storage', 'workload'], { parseJSON });\nexport const FAVORITE_TYPES = create('fav-type', [], { parseJSON });\nexport const PINNED_CLUSTERS = create('pinned-clusters', [], { parseJSON });\nexport const GROUP_RESOURCES = create('group-by', 'namespace');\nexport const DIFF = create('diff', 'unified', { options: ['unified', 'split'] });\nexport const THEME = create('theme', 'auto', {\n options: ['light', 'auto', 'dark'],\n asCookie,\n parseJSON,\n mangleRead: (x) => x.replace(/^ui-/, ''),\n mangleWrite: (x) => `ui-${ x }`,\n});\nexport const PREFERS_SCHEME = create('pcs', '', { asCookie, asUserPreference: false });\nexport const LOCALE = create('locale', 'en-us', { asCookie });\nexport const KEYMAP = create('keymap', 'sublime', { options: ['sublime', 'emacs', 'vim'] });\nexport const ROWS_PER_PAGE = create('per-page', 100, { options: [10, 25, 50, 100], parseJSON });\nexport const LOGS_WRAP = create('logs-wrap', true, { parseJSON });\nexport const LOGS_TIME = create('logs-time', true, { parseJSON });\nexport const LOGS_RANGE = create('logs-range', '30 minutes', { parseJSON });\nexport const HIDE_REPOS = create('hide-repos', [], { parseJSON });\nexport const HIDE_DESC = create('hide-desc', [], { parseJSON });\nexport const HIDE_SENSITIVE = create('hide-sensitive', true, { options: [true, false], parseJSON });\nexport const SHOW_PRE_RELEASE = create('show-pre-release', false, { options: [false, true], parseJSON });\nexport const SHOW_CHART_MODE = create('chart-mode', 'featured', { parseJSON });\n\nexport const DATE_FORMAT = create('date-format', 'ddd, MMM D YYYY', {\n options: [\n 'ddd, MMM D YYYY',\n 'ddd, D MMM YYYY',\n 'D/M/YYYY',\n 'M/D/YYYY',\n 'YYYY-MM-DD'\n ]\n});\n\nexport const TIME_FORMAT = create('time-format', 'h:mm:ss a', {\n options: [\n 'h:mm:ss a',\n 'HH:mm:ss'\n ]\n});\n\nexport const TIME_ZONE = create('time-zone', 'local');\n// DEV will be deprecated on v2.7.0, but is needed so that we can grab the value for the new settings that derived from it\n// such as: VIEW_IN_API, ALL_NAMESPACES, THEME_SHORTCUT\nexport const DEV = create('dev', false, { parseJSON });\nexport const VIEW_IN_API = create('view-in-api', false, { parseJSON, inheritFrom: DEV });\nexport const ALL_NAMESPACES = create('all-namespaces', false, { parseJSON, inheritFrom: DEV });\nexport const THEME_SHORTCUT = create('theme-shortcut', false, { parseJSON, inheritFrom: DEV });\nexport const LAST_VISITED = create('last-visited', 'home', { parseJSON });\nexport const SEEN_WHATS_NEW = create('seen-whatsnew', '', { parseJSON });\nexport const READ_WHATS_NEW = create('read-whatsnew', '', { parseJSON });\nexport const AFTER_LOGIN_ROUTE = create('after-login-route', 'home', { parseJSON } );\nexport const HIDE_HOME_PAGE_CARDS = create('home-page-cards', {}, { parseJSON } );\nexport const PLUGIN_DEVELOPER = create('plugin-developer', false, { parseJSON, inheritFrom: DEV }); // Is the user a plugin developer?\n\nexport const _RKE1 = 'rke1';\nexport const _RKE2 = 'rke2';\nexport const PROVISIONER = create('provisioner', _RKE2, { options: [_RKE1, _RKE2] });\n\n// Maximum number of clusters to show in the slide-in menu\nexport const MENU_MAX_CLUSTERS = 10;\n// Prompt for confirm when scaling down node pool in GUI and save the pref\nexport const SCALE_POOL_PROMPT = create('scale-pool-prompt', null, { parseJSON });\n// --------------------\n\nconst cookiePrefix = 'R_';\nconst cookieOptions = {\n maxAge: 365 * 86400,\n path: '/',\n sameSite: true,\n secure: true,\n};\n\nexport const state = function() {\n return {\n cookiesLoaded: false,\n data: {},\n definitions,\n };\n};\n\nexport const getters = {\n get: (state) => (key) => {\n const definition = state.definitions[key];\n\n if (!definition) {\n throw new Error(`Unknown preference: ${ key }`);\n }\n\n const user = state.data[key];\n\n if (user !== undefined) {\n return clone(user);\n }\n\n const def = clone(definition.def);\n\n return def;\n },\n\n defaultValue: (state) => (key) => {\n const definition = state.definitions[key];\n\n if (!definition) {\n throw new Error(`Unknown preference: ${ key }`);\n }\n\n return clone(definition.def);\n },\n\n options: (state) => (key) => {\n const definition = state.definitions[key];\n\n if (!definition) {\n throw new Error(`Unknown preference: ${ key }`);\n }\n\n if (!definition.options) {\n throw new Error(`Preference does not have options: ${ key }`);\n }\n\n return definition.options.slice();\n },\n\n theme: (state, getters, rootState, rootGetters) => {\n const setting = rootGetters['management/byId'](MANAGEMENT.SETTING, SETTING.THEME);\n\n if (setting?.value) {\n return setting?.value;\n }\n\n let theme = getters['get'](THEME);\n const pcs = getters['get'](PREFERS_SCHEME);\n\n // console.log('Get Theme', theme, pcs);\n\n // Ember UI uses this prefix\n if ( theme.startsWith('ui-') ) {\n theme = theme.substr(3);\n }\n\n if ( theme === 'auto' ) {\n if ( pcs === 'light' || pcs === 'dark' ) {\n return pcs;\n }\n\n return 'dark';\n }\n\n return theme;\n },\n\n afterLoginRoute: (state, getters) => {\n const afterLoginRoutePref = getters['get'](AFTER_LOGIN_ROUTE);\n\n if (typeof afterLoginRoutePref !== 'string') {\n return afterLoginRoutePref;\n }\n\n switch (true) {\n case (afterLoginRoutePref === 'home'):\n return { name: 'home' };\n case (afterLoginRoutePref === 'last-visited'): {\n const lastVisitedPref = getters['get'](LAST_VISITED);\n\n if (lastVisitedPref) {\n return lastVisitedPref;\n }\n const clusterPref = getters['get'](CLUSTER);\n\n return { name: 'c-cluster-explorer', params: { product: 'explorer', cluster: clusterPref } };\n }\n case (!!afterLoginRoutePref.match(/.+-dashboard$/)):\n {\n const clusterId = afterLoginRoutePref.split('-dashboard')[0];\n\n return { name: 'c-cluster-explorer', params: { product: 'explorer', cluster: clusterId } };\n }\n default:\n return { name: afterLoginRoutePref };\n }\n },\n\n dev: (state, getters) => {\n try {\n return getters['get'](PLUGIN_DEVELOPER);\n } catch {\n return getters['get'](DEV);\n }\n }\n};\n\nexport const mutations = {\n load(state, { key, value }) {\n state.data[key] = value;\n },\n\n cookiesLoaded(state) {\n state.cookiesLoaded = true;\n },\n\n reset(state) {\n for (const key in state.definitions) {\n if ( state.definitions[key]?.asCookie ) {\n continue;\n }\n delete state.data[key];\n }\n },\n\n setDefinition(state, { name, definition = {} }) {\n state.definitions[name] = definition;\n },\n};\n\nexport const actions = {\n async set({\n dispatch, commit, rootGetters, state\n }, opt) {\n let { key, value } = opt; // eslint-disable-line prefer-const\n const definition = state.definitions[key];\n let server;\n\n if ( opt.val ) {\n throw new Error('Use value, not val');\n }\n\n commit('load', { key, value });\n\n if ( definition.asCookie ) {\n const opt = {\n ...cookieOptions,\n parseJSON: definition.parseJSON === true\n };\n\n this.$cookies.set(`${ cookiePrefix }${ key }`.toUpperCase(), value, opt);\n }\n\n if ( definition.asUserPreference ) {\n const checkLogin = rootGetters['auth/loggedIn'];\n\n // Check for login status\n if (!checkLogin) {\n prefsBeforeLogin[key] = value;\n\n return;\n }\n\n try {\n server = await dispatch('loadServer', key); // There's no watch on prefs, so get before set...\n\n if ( server?.data ) {\n if ( definition.mangleWrite ) {\n value = definition.mangleWrite(value);\n }\n\n if ( definition.parseJSON ) {\n server.data[key] = JSON.stringify(value);\n } else {\n server.data[key] = value;\n }\n\n await server.save({ redirectUnauthorized: false });\n }\n } catch (e) {\n // Well it failed, but not much to do about it...\n\n // Return the error\n return { type: e.type, status: e.status };\n }\n }\n },\n\n async setTheme({ dispatch }, val) {\n await dispatch('set', { key: THEME, value: val });\n },\n\n loadCookies({ state, commit }) {\n if ( state.cookiesLoaded ) {\n return;\n }\n\n for (const key in state.definitions) {\n const definition = state.definitions[key];\n\n if ( !definition.asCookie ) {\n continue;\n }\n\n const opt = { parseJSON: definition.parseJSON === true };\n const value = this.$cookies.get(`${ cookiePrefix }${ key }`.toUpperCase(), opt);\n\n if (value !== undefined) {\n commit('load', { key, value });\n }\n }\n\n commit('cookiesLoaded');\n },\n\n loadTheme({ dispatch }) {\n const watchDark = window.matchMedia('(prefers-color-scheme: dark)');\n const watchLight = window.matchMedia('(prefers-color-scheme: light)');\n const watchNone = window.matchMedia('(prefers-color-scheme: no-preference)');\n\n const interval = 30 * 60 * 1000;\n const nextHalfHour = interval - Math.round(new Date().getTime()) % interval;\n\n setTimeout(() => {\n dispatch('loadTheme');\n }, nextHalfHour);\n // console.log('Update theme in', nextHalfHour, 'ms');\n\n if ( watchDark.matches ) {\n changed('dark');\n } else if ( watchLight.matches ) {\n changed('light');\n } else {\n changed(fromClock());\n }\n\n watchDark.addListener((e) => {\n if ( e.matches ) {\n changed('dark');\n }\n });\n\n watchLight.addListener((e) => {\n if ( e.matches ) {\n changed('light');\n }\n });\n\n watchNone.addListener((e) => {\n if ( e.matches ) {\n changed(fromClock());\n }\n });\n\n function changed(value) {\n // console.log('Prefers Theme:', value);\n dispatch('set', { key: PREFERS_SCHEME, value });\n }\n\n function fromClock() {\n const hour = new Date().getHours();\n\n if ( hour < 7 || hour >= 18 ) {\n return 'dark';\n }\n\n return 'light';\n }\n },\n\n async loadServer( {\n state, dispatch, commit, rootState, rootGetters\n }, ignoreKey) {\n let server = { data: {} };\n\n try {\n const all = await dispatch('management/findAll', {\n type: STEVE.PREFERENCE,\n opt: {\n url: 'userpreferences',\n force: true,\n watch: false,\n redirectUnauthorized: false,\n stream: false,\n }\n }, { root: true });\n\n server = all?.[0];\n } catch (e) {\n console.error('Error loading preferences', e); // eslint-disable-line no-console\n\n return;\n }\n\n if ( !server?.data ) {\n return;\n }\n\n // if prefsBeforeLogin has values from login page, update the backend\n if (Object.keys(prefsBeforeLogin).length > 0) {\n Object.keys(prefsBeforeLogin).forEach((key) => {\n server.data[key] = prefsBeforeLogin[key];\n });\n\n await server.save({ redirectUnauthorized: false });\n\n // Clear prefsBeforeLogin, as we have now saved theses\n prefsBeforeLogin = {};\n }\n\n for (const key in state.definitions) {\n const definition = state.definitions[key];\n let value = clone(server.data[key]);\n\n if (value === undefined && definition.inheritFrom) {\n value = clone(server.data[definition.inheritFrom]);\n }\n\n if ( value === undefined || key === ignoreKey) {\n continue;\n }\n\n if ( definition.parseJSON ) {\n try {\n value = JSON.parse(value);\n } catch (err) {\n console.error('Error parsing server pref', key, value, err); // eslint-disable-line no-console\n continue;\n }\n }\n\n if ( definition.mangleRead ) {\n value = definition.mangleRead(value);\n }\n\n commit('load', { key, value });\n }\n\n return server;\n },\n\n setLastVisited({ state, dispatch, getters }, route) {\n if (!route) {\n return;\n }\n\n // Only save the last visited page if the user has that set as the login route preference\n const afterLoginRoutePref = getters['get'](AFTER_LOGIN_ROUTE);\n const doNotTrackLastVisited = typeof afterLoginRoutePref !== 'string' || afterLoginRoutePref !== 'last-visited';\n\n if (doNotTrackLastVisited) {\n return;\n }\n\n const toSave = getLoginRoute(route);\n\n return dispatch('set', { key: LAST_VISITED, value: toSave });\n },\n\n toggleTheme({ getters, dispatch }) {\n const value = getters[THEME] === 'light' ? 'dark' : 'light';\n\n return dispatch('set', { key: THEME, value });\n },\n\n setBrandStyle({ rootState, rootGetters }, dark = false) {\n if (rootState.managementReady) {\n try {\n const brandSetting = rootGetters['management/byId'](MANAGEMENT.SETTING, SETTING.BRAND);\n\n if (brandSetting && brandSetting.value && brandSetting.value !== '') {\n const brand = brandSetting.value;\n\n const brandMeta = require(`~shell/assets/brand/${ brand }/metadata.json`);\n const hasStylesheet = brandMeta.hasStylesheet === 'true';\n\n if (hasStylesheet) {\n document.body.classList.add(brand);\n } else {\n // TODO option apply color at runtime\n }\n }\n } catch {}\n }\n }\n};\n\nfunction getLoginRoute(route) {\n let parts = route.name?.split('-') || [];\n const params = {};\n const routeParams = route.params || {};\n\n // Find the 'resource' part of the route, if it is there\n const index = parts.findIndex((p) => p === 'resource');\n\n if (index >= 0) {\n parts = parts.slice(0, index);\n }\n\n // Just keep the params that are needed\n parts.forEach((param) => {\n if (routeParams[param]) {\n params[param] = routeParams[param];\n }\n });\n\n return {\n name: parts.join('-'),\n params\n };\n}\n","export const STORE = {\n CLUSTER: 'cluster',\n RANCHER: 'rancher',\n MANAGEMENT: 'management',\n};\n\nexport const BLANK_CLUSTER = '_';\n","// This file has 2 sections that control getting and using specializations of particular types\n// over the generic info that is specified or generated from schemas.\n//\n// 1) Getting info about types\n//\n// labelFor(schema, count) Get the display label for a schema. Count is (in English) 1 or not-1 for pluralizing\n// groupLabelFor(schema) Get the label for the API group of this schema's type\n// isIgnored(schema) Returns true if this type should be hidden from the tree\n// groupForBasicType(schema) Returns the group a type should be shown in basic view, or false-y if it shouldn't be shown.\n// typeWeightFor(type, forBasic) Get the weight value for a particular type label\n// groupWeightFor(group, forBasic) Get the weight value for a particular group\n// headersFor(schema) Returns the column definitions for a type to give to SortableTable\n// activeProducts() Returns the list of products that are installed and should be shown\n//\n// 2) Detecting and using custom list/detail/edit/header components\n//\n// hasCustomList(type) Does type have a custom list implementation?\n// hasCustomDetail(type[,subType]) Does type have a custom detail implementation?\n// hasCustomEdit(type[,subType]) Does type have a custom edit implementation?\n// importList(type) Returns a promise that resolves to the list component for type\n// importDetail(type[,subType]) Returns a promise that resolves to the detail component for type\n// importEdit(type[,subType]) Returns a promise that resolves to the edit component for type\n// optionsFor(schemaOrType) Return the configured options for a type (from configureType)\n//\n// 3) Changing specialization info about a type\n// For all:\n// let { thingYouWant } = DSL(instanceOfTheStore, 'product');\n//\n// product( Add a product into the nav\n// removable, -- Is the product removable (true) or built-in (false).\n// weight, -- Sort order and divider sections in the product menu. 3=global (fleet, ecm), 2=always on (apps, explorer) 1=other\n// showClusterSwitcher, -- Show the cluster switcher in the header (default true)\n// showNamespaceFilter, -- Show the namespace filter in the header (default false)\n// showWorkspaceSwitcher, -- Show the workspace switcher in the header (conflicts with namespace) (default false)\n// ifHave, -- Show this product only if the given capability is available\n// ifHaveGroup, -- Show this product only if the given group exists in the store [inStore]\n// ifHaveType, -- Show this product only if the given type exists in the store [inStore], This can also be specified as an object { type: TYPE, store: 'management' } if the type isn't in the current [inStore]\n// ifHaveVerb, -- In combination with ifHaveTYpe, show it only if the type also has this collectionMethod\n// inStore, -- Which store to look at for if* above and the left-nav, defaults to \"cluster\"\n// rootProduct, -- Optional root (parent) product - if set, used to optimize navigation when product changes stays within root product\n// inExplorer, -- Determines if the product is to be scoped to the explorer\n// public, -- If true, show to all users. If false, only show when the Developer Tools pref is on (default true)\n// category, -- Group to show the product in for the nav hamburger menu\n// typeStoreMap, -- An object mapping types to the store that should be used to retrieve information about the type\n// hideSystemResources -- Hide resources in namespaces where namespace.isSystem === true, or a namespace managed by fleet (per its annotation) and hide those namespaces from ns/project list and nsfilter (default false)\n// hideNamespaceLocation -- Hide the namespace link in the ResourceDetail masthead of namespaced resources and hide the ExplorerProjectsNamespaces namespace link (default false)\n// })\n//\n// externalLink(stringOrFn) The product has an external page (function gets context object\n//\n// virtualType(obj) Add an item to the tree that goes to a route instead of an actual type.\n// -- obj can contain anything in the objects getTree returns.\n// -- obj must have a `name` that is unique among all virtual types.\n// -- `cluster` is automatically added to route.params if it exists.\n//\n// spoofedType(obj) Create a fake type that can be treated like a normal type\n//\n// basicType( Mark type(s) as always shown in the top of the nav\n// type(s), -- Type name or array of type names\n// group -- Group to show the type(s) under; false-y for top-level.\n// )\n// basicType( Mark all types in group as always shown in the top of the nav\n// group, -- Group to show\n// asLabel -- Label to display the group as; false-y for top-level.\n// )\n// ignoreType(type) Never show type\n// weightType( Set the weight (sorting) order of one or more types\n// typeOrArrayOfTypes,\n// weight, -- Higher numbers are shown first/higher up on the nav tree\n// forBasic -- Apply to basic type instead of regular type tree\n// )\n// mapType( Remap a type id to a display name\n// matchRegexOrString, -- Type to match, or regex that matches types\n// replacementStringOrFn, -- String to replace the type with, or\n// -- sync function: (type, capturedString, schemaObj => { return 'new-type'; }\n// mapWeight, -- Priority for apply this mapping (higher numbers applied first)\n// continueOnMatch -- If true, continue applying to hit other rules that might match the new type.\n// )\n// moveType( Change the group a type is in\n// matchRegexOrString, -- Type to match, or regex that matches types\n// newGroup, -- Group to move the type into\n// mapWeight, -- Priority for apply this mapping (higher numbers applied first)\n// )\n// componentForType( Map matching types to a single component name\n// ( (this is helpful if multiple types should be rendered by a single component)\n// matchRegexOrString, -- Type to match, or regex that matches types\n// replacementString -- String to replace the type with\n// )\n// configureType( Display options for a particular type\n// type, -- Type to apply to\n// options -- Object of options. Defaults/Supported: {\n// isCreatable: true, -- If false, disable create even if schema says it's allowed\n// isEditable: true, -- Ditto, for edit\n// isRemovable: true, -- Ditto, for remove/delete\n// showState: true, -- If false, hide state in columns and masthead\n// showAge: true, -- If false, hide age in columns and masthead\n// showConfigView: true -- If false, hide masthead config button in view mode\n// showListMasthead: true, -- If false, hide masthead in list view\n// canYaml: true,\n// resource: undefined -- Use this resource in ResourceDetails instead\n// resourceDetail: undefined -- Use this resource specifically for ResourceDetail's detail component\n// resourceEdit: undefined -- Use this resource specifically for ResourceDetail's edit component\n// depaginate: undefined -- Use this to depaginate requests for this type\n// resourceEditMasthead: true -- Show the Masthead in the edit resource component\n// customRoute: undefined,\n// hasGraph: undefined -- If true, render ForceDirectedTreeChart graph (ATTENTION: option graphConfig is needed also!!!)\n// graphConfig: undefined -- Use this to pass along the graph configuration\n// notFilterNamespace: undefined -- Define namespaces that do not need to be filtered\n// localOnly: False -- Hide this type from the nav/search bar on downstream clusters\n// }\n// )\n// ignoreGroup(group): Never show group or any types in it\n// weightGroup( Set the weight (sorting) of one or more groups\n// groupOrArrayOfGroups, -- see weightType...\n// weight\n// )\n// setGroupDefaultType( Set the default child type to show when the group is expanded\n// groupOrArrayOfGroups, -- see setGroupDefaultType...\n// defaultType\n// )\n// mapGroup( Remap a group name to a display name\n// matchRegexOrString, -- see mapType...\n// replacementString,\n// mapWeight,\n// continueOnMatch\n// )\nimport { AGE, NAME, NAMESPACE as NAMESPACE_COL, STATE } from '@shell/config/table-headers';\nimport {\n CATALOG,\n COUNT,\n SCHEMA,\n MANAGEMENT,\n NAMESPACE\n} from '@shell/config/types';\nimport { VIEW_IN_API, EXPANDED_GROUPS, FAVORITE_TYPES } from '@shell/store/prefs';\nimport {\n addObject, findBy, isArray, removeObject, filterBy\n} from '@shell/utils/array';\nimport { clone, get } from '@shell/utils/object';\nimport {\n ensureRegex, escapeHtml, escapeRegex, ucFirst, pluralize\n} from '@shell/utils/string';\nimport {\n importChart, importList, importDetail, importEdit, listProducts, loadProduct, importCustomPromptRemove, resolveList, resolveEdit, resolveWindowComponent, importWindowComponent, importLogin, resolveChart, resolveDetail, importDialog, importMachineConfig, resolveMachineConfigComponent, resolveCloudCredentialComponent, importCloudCredential\n} from '@shell/utils/dynamic-importer';\n\nimport { NAME as EXPLORER } from '@shell/config/product/explorer';\nimport isObject from 'lodash/isObject';\nimport { normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport { sortBy } from '@shell/utils/sort';\n\nimport { haveV2Monitoring } from '@shell/utils/monitoring';\nimport { NEU_VECTOR_NAMESPACE } from '@shell/config/product/neuvector';\nimport { createHeaders, rowValueGetter } from '@shell/store/type-map.utils';\nimport { defineAsyncComponent } from 'vue';\n\nexport const NAMESPACED = 'namespaced';\nexport const CLUSTER_LEVEL = 'cluster';\nexport const BOTH = 'both';\n\nexport const TYPE_MODES = {\n /**\n * allTypes usage: All resource types\n *\n * getTree usage: Remove ignored schemas, resources not applicable to ns, etc\n */\n ALL: 'all',\n /**\n * Represents resource types that should be shown at the top of the side nav.\n *\n * For example all fixed resource types above `More Resources` in the cluster explorer\n *\n * These will always be shown in the side nav\n *\n * allTypes usage: Resources that are in a group\n *\n * getTree usage: Remove ignored schemas, resources not applicable to ns, etc\n */\n BASIC: 'basic',\n /**\n * Represents any type of resource type that has been favourited\n *\n * These will always be shown in the side nav.\n *\n * allTypes usage: Resource types that have been favorited\n *\n * getTree usage: Remove ignored schemas, resources not applicable to ns, etc\n */\n FAVORITE: 'favorite',\n /**\n * Represents no virtual or spoofed types that have a count.\n *\n * For example the `More Resource` in the cluster explorer\n *\n * These will be shown in the side nav if there are resources in the ns filter OR the resource is not namespaces\n *\n * allTypes usage: All resource types that are not virtual or spoofed\n *\n * getTree usage: Remove types with no counts. Remove ignored schemas, resources not applicable to ns, etc\n */\n USED: 'used',\n};\n\nexport const ROOT = 'root';\n\nexport const SPOOFED_PREFIX = '__[[spoofed]]__';\nexport const SPOOFED_API_PREFIX = '__[[spoofedapi]]__';\n\nconst instanceMethods = {};\nconst graphConfigMap = {};\n\nexport const IF_HAVE = {\n V2_MONITORING: 'v2-monitoring',\n PROJECT: 'project',\n NO_PROJECT: 'no-project',\n NOT_V1_ISTIO: 'not-v1-istio',\n MULTI_CLUSTER: 'multi-cluster',\n NEUVECTOR_NAMESPACE: 'neuvector-namespace',\n ADMIN: 'admin-user',\n MCM_DISABLED: 'mcm-disabled',\n NOT_STANDALONE_HARVESTER: 'not-standalone-harvester',\n};\n\nexport function DSL(store, product, module = 'type-map') {\n // store.commit(`${ module }/product`, { name: product });\n\n return {\n product(inOpt) {\n const opt = {\n name: product,\n weight: 1,\n inStore: 'cluster',\n inExplorer: false,\n removable: true,\n showClusterSwitcher: true,\n showNamespaceFilter: false,\n public: true,\n filterMode: 'namespaces',\n ...inOpt\n };\n\n // Convert strings to regex's - we do this once here for efficiency\n for ( const k of ['ifHaveGroup', 'ifHaveType'] ) {\n if ( opt[k] ) {\n if (Array.isArray(opt[k])) {\n opt[k] = opt[k].map((r) => regexToString(ensureRegex(r)));\n } else {\n opt[k] = regexToString(ensureRegex(opt[k]));\n }\n }\n }\n\n store.commit(`${ module }/product`, opt);\n },\n\n basicType(types, group) {\n // Support passing in a map of types and using just the values\n if ( !isArray(types) && types && isObject(types) ) {\n types = Object.values(types);\n }\n\n store.commit(`${ module }/basicType`, {\n product, types, group\n });\n },\n\n // Type- and Group-dependent\n groupBy(type, field) {\n store.commit(`${ module }/groupBy`, { type, field });\n },\n\n headers(type, headers, paginationHeaders = []) {\n headers.forEach((header) => {\n // If on the client, then use the value getter if there is one\n if (header.getValue) {\n // we need to store the .value prop for the advanced filtering\n header.valueProp = header.value;\n header.value = header.getValue;\n }\n\n delete header.getValue;\n });\n\n store.commit(`${ module }/headers`, { type, headers });\n store.commit(`${ module }/paginationHeaders`, { type, paginationHeaders });\n },\n\n hideBulkActions(type, field) {\n store.commit(`${ module }/hideBulkActions`, { type, field });\n },\n\n configureType(match, options) {\n if (options.graphConfig) {\n graphConfigMap[match] = options.graphConfig;\n delete options.graphConfig;\n }\n store.commit(`${ module }/configureType`, { ...options, match });\n },\n\n componentForType(match, replace) {\n store.commit(`${ module }/componentForType`, { match, replace });\n },\n\n ignoreType(regexOrString) {\n store.commit(`${ module }/ignoreType`, regexOrString);\n },\n\n ignoreGroup(regexOrString, cb) {\n store.commit(`${ module }/ignoreGroup`, { regexOrString, cb });\n },\n\n weightGroup(input, weight, forBasic) {\n if ( isArray(input) ) {\n store.commit(`${ module }/weightGroup`, {\n groups: input, weight, forBasic\n });\n } else {\n store.commit(`${ module }/weightGroup`, {\n group: input, weight, forBasic\n });\n }\n },\n\n setGroupDefaultType(input, defaultType) {\n if ( isArray(input) ) {\n store.commit(`${ module }/setGroupDefaultType`, { groups: input, defaultType });\n } else {\n store.commit(`${ module }/setGroupDefaultType`, { group: input, defaultType });\n }\n },\n\n weightType(input, weight, forBasic) {\n if ( isArray(input) ) {\n store.commit(`${ module }/weightType`, {\n types: input, weight, forBasic\n });\n } else {\n store.commit(`${ module }/weightType`, {\n type: input, weight, forBasic\n });\n }\n },\n\n mapGroup(match, replace, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/mapGroup`, {\n match, replace, weight, continueOnMatch\n });\n },\n\n mapType(match, replace, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/mapType`, {\n match, replace, weight, continueOnMatch\n });\n },\n\n moveType(match, group, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/moveType`, {\n match, group, weight,\n });\n },\n\n virtualType(obj) {\n store.commit(`${ module }/virtualType`, { product, obj });\n },\n\n spoofedType(obj) {\n store.commit(`${ module }/spoofedType`, { product, obj });\n }\n };\n}\n\nlet called = false;\n\nexport async function applyProducts(store, $plugin) {\n if (called) {\n return;\n }\n\n called = true;\n for ( const product of listProducts() ) {\n const impl = await loadProduct(product);\n\n if ( impl?.init ) {\n impl.init(store);\n }\n }\n // Load the products from all plugins\n $plugin.loadProducts();\n}\n\nexport function productsLoaded() {\n return called;\n}\n\nexport const state = function() {\n return {\n products: [],\n virtualTypes: {},\n spoofedTypes: {},\n basicTypes: {},\n groupIgnore: [],\n groupWeights: {},\n groupDefaultTypes: {},\n basicGroupWeights: { [ROOT]: 1000 },\n groupMappings: [],\n typeIgnore: [],\n basicTypeWeights: {},\n typeWeights: {},\n typeMappings: [],\n typeMoveMappings: [],\n typeToComponentMappings: [],\n typeOptions: [],\n groupBy: {},\n headers: {},\n paginationHeaders: {},\n hideBulkActions: {},\n schemaGeneration: 1,\n cache: {\n typeMove: {},\n groupLabel: {},\n ignore: {},\n list: {},\n chart: {},\n detail: {},\n edit: {},\n componentFor: {},\n promptRemove: {},\n windowComponents: {},\n 'machine-config': {},\n 'cloud-credential': {}\n\n },\n };\n};\n\nexport const getters = {\n // ----------------------------------------------------------------------------\n // 1 ) Getting info\n // ----------------------------------------------------------------------------\n // Turns a type name into a display label (e.g. management.cattle.io.cluster -> Cluster)\n labelFor(state, getters, rootState, rootGetters) {\n return (schema, count = 1, language = null) => {\n return _applyMapping(schema, state.typeMappings, 'id', false, () => {\n // i18n-uses typeLabel.*\n const key = `typeLabel.\"${ schema.id.toLowerCase() }\"`;\n\n if ( rootGetters['i18n/exists'](key, language) ) {\n return rootGetters['i18n/t'](key, { count }, language).trim();\n }\n\n const out = schema?.attributes?.kind || schema.id || '?';\n\n // Add spaces, but breaks typing names into jump menu naturally\n // out = ucFirst(out.replace(/([a-z])([A-Z])/g,'$1 $2'));\n\n if ( count === 1 ) {\n return out;\n }\n\n // This works for most things... if you don't like it, put in a typeLabel translation for above.\n return pluralize(out);\n });\n };\n },\n\n // Turns a group name into a display label (e.g. management.cattle.io.v3.cluster -> Cluster)\n groupLabelFor(state) {\n return (schemaOrName) => {\n let group = schemaOrName;\n\n if ( typeof schemaOrName === 'object' ) {\n let moved = false;\n\n for ( const rule of state.typeMoveMappings ) {\n const re = stringToRegex(rule.match);\n\n if ( schemaOrName.id.match(re) ) {\n moved = true;\n group = rule.replace;\n }\n }\n\n if ( !moved ) {\n group = group.attributes.group;\n }\n }\n\n if ( typeof group !== 'string' ) {\n return null;\n }\n\n const out = _applyMapping(group, state.groupMappings, null, state.cache.groupLabel, (group) => {\n const match = group.match(/^(.*)\\.k8s\\.io$/);\n\n if ( match ) {\n return match[1].split(/\\./).map((x) => ucFirst(x)).join('.');\n }\n\n return group;\n });\n\n return out;\n };\n },\n\n groupForBasicType(state) {\n return (product, schemaId) => {\n return state.basicTypes?.[product]?.[schemaId];\n };\n },\n\n optionsFor(state, getters, rootState, rootGetters) {\n const def = {\n isCreatable: true,\n isEditable: true,\n isRemovable: true,\n showState: true,\n showAge: true,\n canYaml: true,\n namespaced: null,\n listGroups: [],\n listGroupsWillOverride: false,\n listMandatorySort: null,\n depaginate: false,\n customRoute: undefined,\n resourceEditMasthead: true,\n };\n\n return (schemaOrType, pagination) => {\n // Note - This can run a LOT so needs to be performant\n\n if (!schemaOrType) {\n return {};\n }\n\n const type = (typeof schemaOrType === 'object' ? schemaOrType.id : schemaOrType);\n const found = state.typeOptions.find((entry) => {\n const re = stringToRegex(entry.match);\n\n return re.test(type);\n });\n\n const opts = Object.assign({}, def, found || {});\n\n // As this runs a lot, avoid anything we don't strictly need (like going out to another store)\n if (!pagination) {\n return opts;\n }\n\n const storeOptionsFor = schemaOrType?.$ctx?.getters?.['optionsFor'];\n const storeOpts = storeOptionsFor ? storeOptionsFor({ getters, state }, {\n schema: schemaOrType, pagination, opts\n }) : {};\n\n return {\n ...opts,\n ...storeOpts,\n };\n };\n },\n\n isFavorite(state, getters, rootState, rootGetters) {\n return (schemaId) => {\n return rootGetters['prefs/get'](FAVORITE_TYPES).includes(schemaId) || false;\n };\n },\n\n typeWeightFor(state) {\n return (type, forBasic) => {\n type = type?.toLowerCase();\n\n if ( forBasic ) {\n return state.basicTypeWeights[type] || 0;\n } else {\n return state.typeWeights[type] || 0;\n }\n };\n },\n\n groupWeightFor(state) {\n return (group, forBasic) => {\n group = group.toLowerCase();\n\n if ( forBasic ) {\n return state.basicGroupWeights[group] || 0;\n } else {\n return state.groupWeights[group] || 0;\n }\n };\n },\n\n groupDefaultTypeFor(state) {\n return (group) => {\n group = group.toLowerCase();\n\n return state.groupDefaultTypes[group];\n };\n },\n\n getTree(state, getters, rootState, rootGetters) {\n // Name the function so it's easily identifiable when performance tracing\n return function getTree(productId, mode, allTypes, clusterId, namespaceMode, currentType, search) {\n // getTree has four modes:\n // - `basic` matches data types that should always be shown (even if there are 0 of them).\n // - `used` matches the data types where there are more than 0 of them in the current set of namespaces.\n // - `all` matches all types.\n // - `favorite` matches starred types.\n // namespaceMode: 'namespaced', 'cluster', or 'both'\n // namespaces: null means all, otherwise it will be an array of specific namespaces to include\n const isBasic = mode === TYPE_MODES.BASIC;\n\n let searchRegex;\n\n if ( search ) {\n searchRegex = new RegExp(`^(.*)(${ escapeRegex(search) })(.*)$`, 'i');\n }\n\n const root = { children: [] };\n\n // Add types from shortest to longest so that parents\n // get added before children\n const keys = Object.keys(allTypes).sort((a, b) => a.length - b.length);\n\n // Set these for later\n const currentLocal = rootGetters['i18n/current']();\n const defaultLocal = rootGetters['i18n/default']();\n\n for ( const type of keys ) {\n const typeObj = allTypes[type];\n\n if ( typeObj.schema && getters.isIgnored(typeObj.schema) ) {\n // Skip ignored groups & types\n continue;\n }\n\n const namespaced = typeObj.namespaced;\n\n if ( (namespaceMode === NAMESPACED && !namespaced ) || (namespaceMode === CLUSTER_LEVEL && namespaced) ) {\n // Skip types that are not the right namespace mode\n continue;\n }\n\n const inStore = rootGetters.currentStore(typeObj.name);\n const count = rootGetters[`${ inStore }/count`](typeObj);\n const groupForBasicType = getters.groupForBasicType(productId, typeObj.name);\n\n if ( typeObj.id === currentType ) {\n // If this is the type currently being shown, always show it\n } else if ( isBasic && !groupForBasicType ) {\n // If we want the basic tree only return basic types;\n continue;\n } else if ( mode === TYPE_MODES.USED && count <= 0 ) {\n // If there's none of this type, ignore this entry when viewing only in-use types\n // Note: count is sometimes null, in js `null <= 0` is `true`.\n continue;\n }\n\n const label = typeObj.labelKey ? rootGetters['i18n/t'](typeObj.labelKey) || typeObj.label : typeObj.label;\n\n const labelDisplay = highlightLabel(label, count, typeObj.schema);\n\n if ( !labelDisplay ) {\n // Search happens in highlight and returns null if not found\n continue;\n }\n\n let group;\n\n if ( isBasic ) {\n group = _ensureGroup(root, groupForBasicType, true);\n } else if ( mode === TYPE_MODES.FAVORITE ) {\n group = _ensureGroup(root, 'starred');\n group.weight = 1000;\n } else if ( mode === TYPE_MODES.USED ) {\n group = _ensureGroup(root, `inUse::${ getters.groupLabelFor(typeObj.schema) }`);\n } else {\n group = _ensureGroup(root, typeObj.schema || typeObj.group || ROOT);\n }\n\n let route = typeObj.route;\n\n // Make the default route if one isn't set\n if (!route ) {\n route = {\n name: 'c-cluster-product-resource',\n params: {\n product: productId,\n cluster: clusterId,\n resource: typeObj.name,\n }\n };\n\n typeObj.route = route;\n }\n\n // Cluster ID and Product should always be set\n if ( route && typeof route === 'object' ) {\n route.params = route.params || {};\n route.params.cluster = clusterId;\n route.params.product = productId;\n }\n\n group.children.push({\n label,\n labelDisplay,\n mode: typeObj.mode,\n exact: typeObj.exact || false,\n 'exact-path': typeObj['exact-path'] || false,\n namespaced,\n route,\n name: typeObj.name,\n weight: typeObj.weight || getters.typeWeightFor(typeObj.schema?.id || label, isBasic),\n overview: !!typeObj.overview,\n });\n }\n\n // Recursively sort the groups\n _sortGroup(root, mode);\n\n return root.children;\n\n // ----------------------\n\n function _ensureGroup(tree, schemaOrName, forBasic = false) {\n let name = getters.groupLabelFor(schemaOrName);\n const isRoot = ( name === ROOT || name.startsWith(`${ ROOT }::`) );\n\n if ( name && name.includes('::') ) {\n let parent;\n\n [parent, name] = name.split('::', 2);\n tree = _ensureGroup(tree, parent);\n }\n\n // Translate if an entry exists\n let label = name;\n // i18n-uses nav.group.*\n const key = `nav.group.\"${ name }\"`;\n\n if ( rootGetters['i18n/exists'](key) ) {\n label = rootGetters['i18n/t'](key);\n }\n\n let group = findBy(tree.children, 'name', name);\n\n if ( !group ) {\n group = {\n name,\n label,\n weight: getters.groupWeightFor(name, forBasic),\n defaultType: getters.groupDefaultTypeFor(name),\n };\n\n tree.children.push(group);\n }\n\n if ( isRoot ) {\n group.isRoot = true;\n }\n\n if ( !group.children ) {\n group.children = [];\n }\n\n return group;\n }\n\n function highlightLabel(original, count, schema) {\n let label = escapeHtml(original);\n\n if ( searchRegex ) {\n let match = label.match(searchRegex);\n\n if (!match) {\n if ( currentLocal !== defaultLocal && schema ) {\n const defaultLabel = getters.labelFor(schema, count, defaultLocal);\n\n if (defaultLabel && defaultLabel !== label ) {\n label += ` (${ defaultLabel })`;\n match = label.match(searchRegex);\n }\n }\n }\n\n if ( match ) {\n label = `${ escapeHtml(match[1]) }<span class=\"highlight\">${ escapeHtml(match[2]) }</span>${ escapeHtml(match[3]) }`;\n } else {\n return null;\n }\n }\n\n return label;\n }\n };\n },\n\n isSpoofed(state, getters, rootState, rootGetters) {\n return (type, product) => {\n product = product || rootGetters['productId'];\n const productSpoofedTypes = state.spoofedTypes[product] || [];\n\n return productSpoofedTypes.some((st) => st.type === type);\n };\n },\n\n isVirtual(state, getters, rootState, rootGetters) {\n return (name, product) => {\n product = product || rootGetters['productId'];\n const productVirtualTypes = state.virtualTypes[product] || [];\n\n return productVirtualTypes.some((st) => st.name === name);\n };\n },\n\n getSpoofedInstances(state, getters, rootState, rootGetters) {\n return async(type, product) => {\n product = product || rootGetters['productId'];\n const getInstances = instanceMethods[product]?.[type] || (() => []);\n const instances = await getInstances();\n\n instances.forEach((instance) => {\n const type = instance.type;\n const id = instance.id;\n const link = `/${ SPOOFED_PREFIX }/${ type }/${ id }`;\n const apiLink = `/${ SPOOFED_API_PREFIX }/${ type }/${ id }`;\n\n instance.links = {\n remove: instance.links?.remove || link,\n self: instance.links?.self || link,\n update: instance.links?.update || link,\n view: instance.links?.view || apiLink,\n };\n instance.isSpoofed = true;\n });\n\n return instances;\n };\n },\n\n getSpoofedInstance(state, getters, rootState, rootGetters) {\n return async(type, product, id) => {\n const productInstances = await getters.getSpoofedInstances(type, product);\n\n return productInstances.find( (instance) => instance.id === id);\n };\n },\n\n allSpoofedTypes(state, getters, rootState, rootGetters) {\n return Object.values(state.spoofedTypes).flat();\n },\n\n spoofedSchemas(state, getters, rootState, rootGetters) {\n return (product) => {\n const types = state.spoofedTypes[product] || [];\n\n return types.flatMap((type) => {\n const schemas = type.schemas || [];\n\n return schemas.map((schema) => ({\n ...schema,\n isSpoofed: true\n }));\n });\n };\n },\n\n allSpoofedSchemas(state, getters, rootState, rootGetters) {\n return getters.allSpoofedTypes.flatMap((type) => {\n const schemas = type.schemas || [];\n\n return schemas.map((schema) => ({\n ...schema,\n isSpoofed: true\n }));\n });\n },\n\n /**\n * Given many things, create a list of menu items per schema given the mode\n */\n allTypes(state, getters, rootState, rootGetters) {\n // Name the function so it's easily identifiable when performance tracing\n return function allTypes(product, modes = [TYPE_MODES.ALL]) {\n const module = state.products.find((p) => p.name === product)?.inStore;\n const schemas = rootGetters[`${ module }/all`](SCHEMA);\n const isLocal = !rootGetters.currentCluster?.isLocal;\n const isRancher = rootGetters.isRancher;\n const counts = rootGetters[`${ module }/all`](COUNT)?.[0]?.counts || {};\n\n const out = {};\n\n // For performance reasons this must be super quick to iterate over.\n // For each schema...\n // 1) Determine if it's applicable given the mode\n // 2) For each applicable mode create a `Type` entry\n for ( const schema of schemas ) {\n let schemaModes = { };\n\n modes.forEach((m) => {\n schemaModes[m] = true;\n });\n\n const attrs = schema.attributes || {};\n const typeOptions = getters['optionsFor'](schema);\n\n schemaModes[TYPE_MODES.BASIC] = schemaModes[TYPE_MODES.BASIC] && getters.groupForBasicType(product, schema.id);\n\n if (Object.values(schemaModes).every((s) => !s)) {\n continue;\n }\n\n schemaModes[TYPE_MODES.FAVORITE] = schemaModes[TYPE_MODES.FAVORITE] && getters.isFavorite(schema.id);\n\n if (Object.values(schemaModes).every((s) => !s)) {\n continue;\n }\n\n const onlyBasic = schemaModes[TYPE_MODES.BASIC] && modes.length === 1;\n\n // This clause is only valid for non-basic modes. So if we have only basic... skip it\n if (!onlyBasic) {\n const invalidType = !attrs.kind ||\n (typeof typeOptions.ifRancherCluster !== 'undefined' && typeOptions.ifRancherCluster !== isRancher) ||\n (typeOptions.localOnly && isLocal);\n\n if (invalidType) {\n // Remove anything not basic\n schemaModes = { [TYPE_MODES.BASIC]: schemaModes[TYPE_MODES.BASIC] };\n }\n }\n\n // This is an expensive request to make, so only do it if we really need to\n let label;\n\n Object.entries(schemaModes).forEach(([mode, enabled]) => {\n if (!enabled) {\n return;\n }\n\n if (!out[mode]) {\n out[mode] = {};\n }\n\n if (!label) {\n label = getters.labelFor(schema, counts[schema.id]);\n }\n\n out[mode][schema.id] = {\n label,\n mode,\n weight: getters.typeWeightFor(schema?.id || label, mode === TYPE_MODES.BASIC),\n schema,\n name: schema.id,\n namespaced: typeOptions.namespaced === null ? attrs.namespaced : typeOptions.namespaced,\n route: typeOptions.customRoute\n };\n });\n }\n\n const nonUsedModes = modes.filter((m) => m !== TYPE_MODES.USED);\n const isDev = rootGetters['prefs/get'](VIEW_IN_API);\n\n // Add virtual and spoofed types\n if ( nonUsedModes.length ) {\n const virtualTypes = state.virtualTypes[product] || [];\n const spoofedTypes = state.spoofedTypes[product] || [];\n const allTypes = [...virtualTypes, ...spoofedTypes];\n\n for ( const type of allTypes ) {\n const item = clone(type);\n const id = item.name;\n const virtSpoofedModes = [...nonUsedModes];\n\n // Is there a virtual/spoofed type override for schema type?\n // Currently used by harvester, this should be investigated and removed if possible\n virtSpoofedModes.forEach((mode) => {\n if (out[mode]?.[id]) {\n delete out[mode][id];\n }\n });\n\n if ( item['public'] === false && !isDev ) {\n continue;\n }\n\n if (item.ifHave && !ifHave(rootGetters, item.ifHave)) {\n continue;\n }\n\n if ( item.ifHaveType ) {\n const ifHaveTypeArray = Array.isArray(item.ifHaveType) ? item.ifHaveType : [item.ifHaveType];\n let satisfiesIfHave = true;\n\n // Support an array of required types that the user must have access to\n for (let i = 0; i < ifHaveTypeArray.length; i++) {\n const ifHaveType = ifHaveTypeArray[i];\n const targetedSchemas = typeof ifHaveType === 'string' ? schemas : rootGetters[`${ ifHaveType.store }/all`](SCHEMA);\n const type = typeof ifHaveType === 'string' ? ifHaveType : ifHaveType?.type;\n\n const haveIds = filterBy(targetedSchemas, 'id', normalizeType(type)).map((s) => s.id);\n\n if (!haveIds.length) {\n satisfiesIfHave = false;\n break;\n }\n\n if (item.ifHaveVerb && !ifHaveVerb(rootGetters, module, item.ifHaveVerb, haveIds)) {\n satisfiesIfHave = false;\n break;\n }\n }\n\n if (!satisfiesIfHave) {\n continue;\n }\n }\n\n if ( item.ifHaveSubTypes ) {\n const hasSome = (item.ifHaveSubTypes || []).some((type) => {\n return !!findBy(schemas, 'id', normalizeType(type));\n });\n\n if (!hasSome) {\n continue;\n }\n }\n\n if ( typeof item.ifRancherCluster !== 'undefined' && item.ifRancherCluster !== rootGetters.isRancher ) {\n continue;\n }\n\n if (item.ifFeature) {\n if (item.ifFeature[0] === '!') {\n const feature = item.ifFeature.replace('!', '');\n\n if (rootGetters['features/get'](feature)) {\n continue;\n }\n } else {\n if (!rootGetters['features/get'](item.ifFeature)) {\n continue;\n }\n }\n }\n\n if (virtSpoofedModes.includes(TYPE_MODES.BASIC) && !getters.groupForBasicType(product, id) ) {\n virtSpoofedModes.splice(virtSpoofedModes.indexOf(TYPE_MODES.BASIC), 1);\n }\n\n if (virtSpoofedModes.includes(TYPE_MODES.FAVORITE) && !getters.isFavorite(id) ) { // mode === TYPE_MODES.FAVORITE &&\n virtSpoofedModes.splice(virtSpoofedModes.indexOf(TYPE_MODES.FAVORITE), 1);\n }\n\n // Ensure labelKey is taken into account... with a mock count\n // This is harmless if the translation doesn't require count\n if (item.labelKey && rootGetters['i18n/exists'](item.labelKey)) {\n item.label = rootGetters['i18n/t'](item.labelKey, { count: 2 }).trim();\n delete item.labelKey; // Label should really take precedence over labelKey, but it doesn't, so remove it\n } else {\n item.label = item.label || item.name;\n }\n\n virtSpoofedModes.forEach((mode) => {\n const isBasic = mode === TYPE_MODES.BASIC;\n const weight = type.weight || getters.typeWeightFor(item.label, isBasic);\n\n item.mode = mode;\n item.weight = weight;\n if (!out[mode]) {\n out[mode] = {};\n }\n out[mode][id] = item;\n });\n }\n }\n\n return out;\n };\n },\n\n groupByFor(state) {\n return (schema) => {\n return state.groupBy[schema?.id];\n };\n },\n\n hideBulkActionsFor(state) {\n return (schema) => {\n return state.hideBulkActions[schema.id];\n };\n },\n\n headersFor(state, getters, rootState, rootGetters) {\n return (schema, pagination) => {\n if (pagination) {\n const storeHeadersFor = schema?.$ctx?.getters?.['headersFor'];\n\n if (storeHeadersFor) {\n const res = storeHeadersFor({ getters, state }, { schema, pagination });\n\n if (res) {\n return res;\n }\n }\n }\n\n return createHeaders({ rootGetters }, {\n headers: state.headers,\n typeOptions: getters['optionsFor'](schema, false),\n schema,\n columns: {\n state: STATE,\n name: NAME,\n namespace: NAMESPACE_COL,\n age: AGE,\n },\n pagination\n });\n };\n },\n\n /**\n * Simple getter to fetch pre-configured headers used in pagination\n */\n configuredPaginationHeaders(state) {\n return (schemaOrType) => state.paginationHeaders?.[schemaOrType.id || schemaOrType];\n },\n\n /**\n * Simple getter to fetch pre-configured headers (not used in paginated lists)\n */\n configuredHeaders(state) {\n return (schemaOrType) => state.headers?.[schemaOrType.id || schemaOrType];\n },\n\n // ------------------------------------\n // Custom list/detail/edit/header component detection\n //\n // Note: you can't refactor these into one function that does `@/${kind}/${type}`,\n // because babel needs some hardcoded idea where to look for the dependency.\n //\n // Note 2: Yes these are editing state in a getter for caching... it's ok, probably.\n // ------------------------------------\n hasCustomList(state, getters, rootState) {\n return (rawType) => {\n const key = getters.componentFor(rawType);\n\n return hasCustom(state, rootState, 'list', key, (key) => resolveList(key));\n };\n },\n\n hasCustomChart(state, getters, rootState) {\n return (rawType) => {\n const key = getters.componentFor(rawType);\n\n return hasCustom(state, rootState, 'chart', key, (key) => resolveChart(key));\n };\n },\n\n hasCustomDetail(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'detail', key, (key) => resolveDetail(key));\n };\n },\n\n hasGraph(state, getters) {\n return (resource) => {\n const typeOptions = getters['optionsFor'](resource);\n\n if (typeOptions && typeOptions.hasGraph) {\n return graphConfigMap[resource];\n }\n\n return null;\n };\n },\n\n hasCustomEdit(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'edit', key, (key) => resolveEdit(key));\n };\n },\n\n hasComponent(state, getters, rootState) {\n return (path) => {\n return hasCustom(state, rootState, 'edit', path, (path) => resolveEdit(path));\n };\n },\n\n hasCustomPromptRemove(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'promptRemove', key, () => require.resolve(`@shell/promptRemove/${ key }`));\n };\n },\n\n hasCustomWindowComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'windowComponents', key, (key) => resolveWindowComponent(key));\n };\n },\n\n hasCustomMachineConfigComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'machine-config', key, (key) => resolveMachineConfigComponent(key));\n };\n },\n\n hasCustomCloudCredentialComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'cloud-credential', key, (key) => resolveCloudCredentialComponent(key));\n };\n },\n\n importComponent(state, getters) {\n return (path) => {\n return importEdit(path);\n };\n },\n\n importDialog(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'dialog', getters.componentFor(rawType, subType), importDialog);\n };\n },\n\n importList(state, getters, rootState) {\n return (rawType) => {\n return loadExtension(rootState, 'list', getters.componentFor(rawType), importList);\n };\n },\n\n importChart(state, getters, rootState) {\n return (rawType) => {\n return loadExtension(rootState, 'chart', getters.componentFor(rawType), importChart);\n };\n },\n\n importDetail(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'detail', getters.componentFor(rawType, subType), importDetail);\n };\n },\n\n importEdit(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'edit', getters.componentFor(rawType, subType), importEdit);\n };\n },\n\n importCustomPromptRemove(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'promptRemove', getters.componentFor(rawType, subType), importCustomPromptRemove);\n };\n },\n\n importWindowComponent(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'windowComponents', getters.componentFor(rawType, subType), importWindowComponent);\n };\n },\n\n importLogin(state, getters, rootState) {\n return (authType) => {\n return loadExtension(rootState, 'login', authType, importLogin);\n };\n },\n\n importMachineConfig(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'machine-config', getters.componentFor(rawType, subType), importMachineConfig);\n };\n },\n\n importCloudCredential(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'cloud-credential', getters.componentFor(rawType, subType), importCloudCredential);\n };\n },\n\n componentFor(state, getters) {\n return (type, subType) => {\n let key = type;\n\n if ( subType ) {\n key = `${ type }/${ subType }`;\n }\n\n if ( state.cache.componentFor[key] !== undefined ) {\n return state.cache.componentFor[key];\n }\n\n let out = type;\n\n const mapping = state.typeToComponentMappings.find((mapping) => {\n const re = stringToRegex(mapping.match);\n\n return re.test(key);\n });\n\n if ( mapping ) {\n out = mapping.replace;\n } else if ( subType ) {\n // Try again without the subType\n out = getters.componentFor(type);\n }\n\n state.cache.componentFor[key] = out;\n\n return out;\n };\n },\n\n isIgnored(state, getters, rootState, rootGetters) {\n return (schema) => {\n let out = false;\n\n for ( const rule of state.groupIgnore ) {\n const group = schema?.attributes?.group;\n\n if (group && group.match(stringToRegex(rule.type) && isObject(rule) && rule.type)) {\n out = rule.cb(rootGetters);\n break;\n }\n\n if ( group && typeof rule === 'string' && group.match(stringToRegex(rule)) ) {\n out = true;\n break;\n }\n }\n\n if ( !out ) {\n for ( const rule of state.typeIgnore ) {\n if ( schema.id.match(stringToRegex(rule)) ) {\n out = true;\n break;\n }\n }\n }\n\n state.cache.ignore[schema.id] = out;\n\n return out;\n };\n },\n\n activeProducts(state, getters, rootState, rootGetters) {\n const knownTypes = {};\n const knownGroups = {};\n const isDev = rootGetters['prefs/get'](VIEW_IN_API);\n\n if ( state.schemaGeneration < 0 ) {\n // This does nothing, but makes activeProducts depend on schemaGeneration\n // so that it can be used to update the product list on schema change.\n return;\n }\n\n return state.products.filter((p) => {\n const module = p.inStore;\n\n if ( p['public'] === false && !isDev ) {\n return false;\n }\n\n if ( p.ifGetter && !rootGetters[p.ifGetter] ) {\n return false;\n }\n\n if ( !knownTypes[module] ) {\n const schemas = rootGetters[`${ module }/all`](SCHEMA);\n\n knownTypes[module] = [];\n knownGroups[module] = [];\n\n for ( const s of schemas ) {\n knownTypes[module].push(s._id);\n\n if ( s._group ) {\n addObject(knownGroups[module], s._group);\n }\n }\n }\n\n if ( p.ifFeature) {\n const features = Array.isArray(p.ifFeature) ? p.ifFeature : [p.ifFeature];\n\n for (const f of features) {\n if (!rootGetters['features/get'](f)) {\n return false;\n }\n }\n }\n\n if ( p.ifHave && !ifHave(rootGetters, p.ifHave)) {\n return false;\n }\n\n if ( p.ifHaveType ) {\n const haveIds = knownTypes[module].filter((t) => t.match(stringToRegex(p.ifHaveType)) );\n\n if ( !haveIds.length ) {\n return false;\n }\n\n if ( p.ifHaveVerb && !ifHaveVerb(rootGetters, module, p.ifHaveVerb, haveIds)) {\n return false;\n }\n }\n\n if ( p.ifHaveGroup && !knownGroups[module].find((t) => t.match(stringToRegex(p.ifHaveGroup)) ) ) {\n return false;\n }\n\n return true;\n });\n },\n\n isProductActive(state, getters) {\n return (name) => {\n if ( findBy(getters['activeProducts'], 'name', name) ) {\n return true;\n }\n\n return false;\n };\n },\n\n rowValueGetter(state) {\n return (schema, colName) => {\n const col = _findColumnByName(schema, colName);\n\n return rowValueGetter(col);\n };\n },\n\n isProductRegistered(state) {\n return (productName) => {\n const prod = state.products.find((p) => p.name === productName);\n\n return !!prod;\n };\n },\n\n productByName(state) {\n return (productName) => state.products.find((p) => p.name === productName);\n }\n};\n\nexport const mutations = {\n schemaChanged(state) {\n state.schemaGeneration = state.schemaGeneration + 1;\n },\n\n // Remove the specified product\n remove(state, { product, plugin }) {\n const existing = state.products.findIndex((p) => p.name === product);\n\n // Remove the product\n if (existing !== -1) {\n state.products.splice(existing, 1);\n }\n\n // Go through the basic types and remove the headers\n if (state.virtualTypes[product]) {\n delete state.virtualTypes[product];\n }\n\n if (state.basicTypes[product]) {\n // Remove table header configuration\n Object.keys(state.basicTypes[product]).forEach((type) => {\n delete state.headers[type];\n delete state.basicTypeWeights[type];\n delete state.cache.ignore[type];\n // These track whether the type has a custom component\n delete state.cache.detail[type];\n delete state.cache.edit[type];\n delete state.cache.list[type];\n\n // Delete all of the entries from the componentFor cache where the valye is the type\n // Can do this more efficiently\n Object.keys(state.cache.componentFor).forEach((k) => {\n const v = state.cache.componentFor[k];\n\n if (v === type) {\n delete state.cache.componentFor[k];\n }\n });\n });\n\n delete state.basicTypes[product];\n }\n\n if (plugin) {\n // kind is list, edit, detail etc\n Object.keys(plugin.types).forEach((kind) => {\n if (state.cache[kind]) {\n Object.keys(plugin.types[kind]).forEach((type) => {\n delete state.cache[kind][type];\n });\n }\n });\n }\n },\n\n product(state, obj) {\n let existing = state.products.find((p) => p.name === obj.name);\n\n if ( existing ) {\n Object.assign(existing, obj);\n } else {\n addObject(state.products, obj);\n existing = state.products.find((p) => p.name === obj.name);\n }\n\n // Make sure deprecated `inExplorer` is synchronized with `rootProduct` (and vice-versa)\n if (existing?.inExplorer) {\n existing.rootProduct = EXPLORER;\n } else if (existing?.rootProduct === EXPLORER) {\n existing.inExplorer = true;\n }\n\n // We make an assumption that if the store for a product is 'cluster' it will be displayed within cluster explorer\n // Detect that here and set rootProduct and inExporer in this case\n if (!existing?.rootProduct && existing?.inStore === 'cluster') {\n existing.rootProduct = EXPLORER;\n existing.inExplorer = (existing.rootProduct === EXPLORER);\n }\n },\n\n virtualType(state, { product, obj }) {\n if ( !state.virtualTypes[product] ) {\n state.virtualTypes[product] = [];\n }\n\n const copy = clone(obj);\n\n copy.virtual = true;\n\n const existing = findBy(state.virtualTypes[product], 'name', copy.name);\n\n if ( existing ) {\n Object.assign(existing, copy);\n } else {\n addObject(state.virtualTypes[product], copy);\n }\n },\n\n spoofedType(state, { product, obj }) {\n if ( !state.spoofedTypes[product] ) {\n state.spoofedTypes[product] = [];\n }\n\n const copy = clone(obj);\n\n instanceMethods[product] = instanceMethods[product] || {};\n instanceMethods[product][copy.type] = copy.getInstances;\n delete copy.getInstances;\n\n copy.name = copy.type;\n copy.isSpoofed = true;\n copy.virtual = true;\n copy.schemas.forEach((schema) => {\n schema.links = {\n collection: `/${ SPOOFED_PREFIX }/${ schema.id }`,\n ...(schema.links || {})\n };\n });\n\n const existing = findBy(state.spoofedTypes[product], 'type', copy.type);\n\n if ( existing ) {\n Object.assign(existing, copy);\n } else {\n addObject(state.spoofedTypes[product], copy);\n }\n },\n\n basicType(state, { product, group, types }) {\n if ( !product ) {\n product = EXPLORER;\n }\n\n if ( !group ) {\n group = ROOT;\n }\n\n if ( !isArray(types) ) {\n types = [types];\n }\n\n if ( !state.basicTypes[product] ) {\n state.basicTypes[product] = {};\n }\n\n for ( const t of types ) {\n state.basicTypes[product][t] = group;\n }\n },\n\n ignoreGroup(state, { regexOrString: match, cb }) {\n match = ensureRegex(match);\n // State shouldn't contain actual RegExp objects, because they don't serialize\n cb ? state.groupIgnore.push({\n type: regexToString(match),\n cb\n }) : state.groupIgnore.push(regexToString(match));\n },\n\n ignoreType(state, match) {\n match = ensureRegex(match);\n state.typeIgnore.push(regexToString(match));\n },\n\n groupBy(state, { type, field }) {\n state.groupBy[type] = field;\n },\n\n headers(state, { type, headers }) {\n state.headers[type] = headers;\n },\n\n paginationHeaders(state, { type, paginationHeaders }) {\n state.paginationHeaders[type] = paginationHeaders;\n },\n\n hideBulkActions(state, { type, field }) {\n state.hideBulkActions[type] = field;\n },\n\n // weightGroup({group: 'core', weight: 99}); -- higher groups are shown first\n // These operate on group names *after* mapping but *before* translation\n weightGroup(state, {\n group, groups, weight, forBasic\n }) {\n if ( !groups ) {\n groups = [];\n }\n\n if ( group ) {\n groups.push(group);\n }\n\n const map = forBasic ? state.basicGroupWeights : state.groupWeights;\n\n for ( const g of groups ) {\n map[g.toLowerCase()] = weight;\n }\n },\n\n // setGroupDefaultType({group: 'core', defaultType: 'name'});\n // By default when a group is clicked, the first item is selected - this allows\n // this behaviour to be changed and a named child type can be chosen\n // These operate on group names *after* mapping but *before* translation\n setGroupDefaultType(state, { group, groups, defaultType }) {\n if ( !groups ) {\n groups = [];\n }\n\n if ( group ) {\n groups.push(group);\n }\n\n for ( const g of groups ) {\n state.groupDefaultTypes[g.toLowerCase()] = defaultType;\n }\n },\n\n // weightType('Cluster' 99); -- higher groups are shown first\n // These operate on *schema* type names, before mapping\n weightType(state, {\n type, types, weight, forBasic\n }) {\n if ( !types ) {\n types = [];\n }\n\n if ( type ) {\n types.push(type);\n }\n\n const map = forBasic ? state.basicTypeWeights : state.typeWeights;\n\n for ( const t of types ) {\n map[t.toLowerCase()] = weight;\n }\n },\n\n // mapGroup('ugly.thing', 'Nice Thing', 1);\n // mapGroup(/ugly.thing.(stuff)', '$1', 2);\n // mapGroup(/ugly.thing.(stuff)', function(groupStr, ruleObj, regexMatch, typeObj) { return ucFirst(group.id) } , 2);\n mapGroup(state, {\n match, replace, weight = 5, continueOnMatch = false\n }) {\n _addMapping(state.groupMappings, match, replace, weight, continueOnMatch);\n },\n\n mapType(state, {\n match, replace, weight = 5, continueOnMatch = false\n }) {\n _addMapping(state.typeMappings, match, replace, weight, continueOnMatch);\n },\n\n // moveType('apps.deployment', 'Core');\n moveType(state, { match, group, weight = 5 }) {\n _addMapping(state.typeMoveMappings, match, group, weight);\n },\n\n componentForType(state, { match, replace }) {\n match = ensureRegex(match);\n match = regexToString(match);\n state.typeToComponentMappings.push({ match, replace });\n },\n\n configureType(state, options) {\n const match = regexToString(ensureRegex(options.match));\n\n const idx = state.typeOptions.findIndex((obj) => obj.match === match);\n let obj = { ...options, match };\n\n if ( idx >= 0 ) {\n obj = Object.assign(state.typeOptions[idx], obj);\n state.typeOptions.splice(idx, 1, obj);\n } else {\n const obj = Object.assign({}, options, { match });\n\n state.typeOptions.push(obj);\n }\n },\n\n};\n\nexport const actions = {\n removeProduct({ commit }, metadata) {\n commit('remove', metadata);\n },\n\n addFavorite({ dispatch, rootGetters }, type) {\n const types = rootGetters['prefs/get'](FAVORITE_TYPES) || [];\n\n addObject(types, type);\n\n dispatch('prefs/set', { key: FAVORITE_TYPES, value: types }, { root: true });\n },\n\n removeFavorite({ dispatch, rootGetters }, type) {\n const types = rootGetters['prefs/get'](FAVORITE_TYPES) || [];\n\n removeObject(types, type);\n\n dispatch('prefs/set', { key: FAVORITE_TYPES, value: types }, { root: true });\n },\n\n toggleGroup({ dispatch, rootGetters }, { group, expanded }) {\n const groups = rootGetters['prefs/get'](EXPANDED_GROUPS);\n\n if ( expanded ) {\n addObject(groups, group);\n } else {\n removeObject(groups, group);\n }\n\n dispatch('prefs/set', { key: EXPANDED_GROUPS, value: groups }, { root: true });\n },\n\n configureType({ commit }, options) {\n commit('configureType', options);\n }\n};\n\nfunction _sortGroup(tree, mode) {\n const by = ['weight:desc', 'namespaced', 'label'];\n\n tree.children = sortBy(tree.children, by);\n\n for (const entry of tree.children ) {\n if ( entry.children ) {\n _sortGroup(entry, mode);\n }\n }\n}\n\nfunction _applyMapping(objOrValue, mappings, keyField, cache, defaultFn) {\n let key = objOrValue;\n let found = false;\n\n if ( keyField ) {\n if ( typeof objOrValue !== 'object' ) {\n return objOrValue;\n }\n\n key = get(objOrValue, keyField);\n\n if ( typeof key !== 'string' ) {\n return null;\n }\n }\n\n if ( key && cache && cache[key] ) {\n return cache[key];\n }\n\n let out = `${ key }`;\n\n for ( const rule of mappings ) {\n const re = stringToRegex(rule.match);\n const captured = out.match(re);\n\n if ( captured && rule.replace ) {\n out = out.replace(re, rule.replace);\n\n found = true;\n if ( !rule.continueOnMatch ) {\n break;\n }\n }\n }\n\n if ( !found && defaultFn ) {\n out = defaultFn(out, objOrValue);\n }\n\n if ( cache ) {\n cache[key] = out;\n }\n\n return out;\n}\n\nfunction _addMapping(mappings, match, replace, weight, continueOnMatch) {\n match = regexToString(ensureRegex(match));\n\n mappings.push({\n match,\n replace,\n weight,\n continueOnMatch,\n insertIndex: mappings.length,\n });\n\n // Re-sort the list by weight (highest first) and insert time (oldest first)\n mappings.sort((a, b) => {\n const pri = b.weight - a.weight;\n\n if ( pri ) {\n return pri;\n }\n\n return a.insertIndex - b.insertIndex;\n });\n}\n\n// Regexes can't be represented in state because they don't serialize to JSON..\nconst regexCache = {};\n\nfunction regexToString(regex) {\n return regex.source;\n}\n\nfunction stringToRegex(str) {\n let out = regexCache[str];\n\n if ( !out ) {\n out = new RegExp(str);\n regexCache[str] = out;\n }\n\n return out;\n}\n\nfunction ifHave(getters, option) {\n switch (option) {\n case IF_HAVE.V2_MONITORING: {\n return haveV2Monitoring(getters);\n }\n case IF_HAVE.PROJECT: {\n return !!project(getters);\n }\n case IF_HAVE.NO_PROJECT: {\n return !project(getters);\n }\n case IF_HAVE.NOT_V1_ISTIO: {\n return !isV1Istio(getters);\n }\n case IF_HAVE.MULTI_CLUSTER: {\n return getters.isMultiCluster;\n }\n case IF_HAVE.NEUVECTOR_NAMESPACE: {\n return getters[`cluster/all`](NAMESPACE).find((n) => n.metadata.name === NEU_VECTOR_NAMESPACE);\n }\n case IF_HAVE.ADMIN: {\n return isAdminUser(getters);\n }\n case IF_HAVE.MCM_DISABLED: {\n return !getters['isRancherInHarvester'];\n }\n case IF_HAVE.NOT_STANDALONE_HARVESTER: {\n return !getters['isStandaloneHarvester'];\n }\n default:\n return false;\n }\n}\n\n// Could list a larger set of resources that typically only an admin user would have\nexport function isAdminUser(getters) {\n const canEditSettings = (getters['management/schemaFor'](MANAGEMENT.SETTING)?.resourceMethods || []).includes('PUT');\n const canEditFeatureFlags = (getters['management/schemaFor'](MANAGEMENT.FEATURE)?.resourceMethods || []).includes('PUT');\n const canInstallApps = (getters['management/schemaFor'](CATALOG.APP)?.resourceMethods || []).includes('PUT');\n const canAddRepos = (getters['management/schemaFor'](CATALOG.CLUSTER_REPO)?.resourceMethods || []).includes('PUT');\n const canPutHelmOperations = (getters['management/schemaFor'](CATALOG.OPERATION)?.resourceMethods || []).includes('PUT');\n\n return canEditSettings && canEditFeatureFlags && canInstallApps && canAddRepos && canPutHelmOperations;\n}\n\nfunction _findColumnByName(schema, colName) {\n const attributes = schema.attributes || {};\n const columns = attributes.columns || [];\n\n return findBy(columns, 'name', colName);\n}\n\n// Is V1 Istio installed?\nfunction isV1Istio(getters) {\n const cluster = getters['currentCluster'];\n\n return !!cluster?.status?.istioEnabled;\n}\n\nfunction ifHaveVerb(rootGetters, module, verb, haveIds) {\n for ( const haveId of haveIds ) {\n const schema = rootGetters[`${ module }/schemaFor`](haveId);\n const want = verb.toLowerCase();\n const collectionMethods = schema.collectionMethods || [];\n const resourceMethods = schema.resourceMethods || [];\n const have = [...collectionMethods, ...resourceMethods].map((x) => x.toLowerCase());\n\n if ( !have.includes(want) && !have.includes(`blocked-${ want }`) ) {\n return false;\n }\n }\n\n return true;\n}\n\n// Look at the namespace filters to determine if a project is selected\nexport function project(getters) {\n const clusterId = getters['currentCluster']?.id;\n\n if ( !clusterId ) {\n return null;\n }\n\n const filters = getters['namespaceFilters'];\n const namespaces = [];\n let projectName = null;\n\n for (const filter of filters) {\n const [type, id] = filter.split('://', 2);\n\n if (type === 'project') {\n if (projectName !== null) {\n // More than one project selected\n return null;\n }\n projectName = id;\n } else if (type === 'ns') {\n namespaces.push(id);\n } else {\n // Something other than project or namespace\n return null;\n }\n }\n\n // No project found?\n if (!projectName) {\n return null;\n }\n\n // We have one project and a set of namespaces\n // Check that all of the namespaces belong to the project\n const project = getters['management/byId'](MANAGEMENT.PROJECT, `${ clusterId }/${ projectName }`);\n\n // No additional namespaces means just the project is selected\n if (namespaces.length === 0) {\n return project;\n }\n\n // Convert the project namespaces into a map so we can check existence easily\n const prjNamespaceMap = project.namespaces.reduce((m, ns) => {\n m[ns.metadata.name] = true;\n\n return m;\n }, {});\n\n // All of the namespace filters must belong to the project\n const found = namespaces.reduce((total, ns) => {\n return prjNamespaceMap[ns] ? total + 1 : 0;\n }, 0);\n\n if (found !== namespaces.length) {\n return null;\n }\n\n return project;\n}\n\nfunction hasCustom(state, rootState, kind, key, fallback) {\n const cache = state.cache[kind];\n\n if ( cache[key] !== undefined ) {\n return cache[key];\n }\n\n // Check to see if the custom kind is provided by a plugin (ignore booleans)\n const pluginComponent = rootState.$plugin.getDynamic(kind, key);\n\n if (typeof pluginComponent !== 'boolean' && !!pluginComponent) {\n cache[key] = true;\n\n return cache[key];\n }\n\n // Fallback\n try {\n fallback(key);\n cache[key] = true;\n } catch (e) {\n cache[key] = false;\n }\n\n return cache[key];\n}\n\nfunction loadExtension(rootState, kind, key, fallback) {\n const ext = rootState.$plugin.getDynamic(kind, key);\n\n if (ext) {\n if (typeof ext === 'function') {\n return defineAsyncComponent(ext);\n }\n\n return () => defineAsyncComponent(ext);\n }\n\n return fallback(key);\n}\n","import jsyaml from 'js-yaml';\nimport { base64Decode, base64Encode } from '@shell/utils/crypto';\nimport { MONITORING, SECRET } from '@shell/config/types';\nimport { get, set } from '@shell/utils/object';\nimport isEmpty from 'lodash/isEmpty';\nimport { ROOT_NAME } from '@shell/models/monitoring.coreos.com.route';\n\n/**\n * Find secondary schema's related to the primary `monitoring.coreos.com.alertmanagerconfig` schema\n */\nexport const fetchAlertManagerConfigSpecs = async($store) => {\n const schema = $store.getters['cluster/schemaFor'](MONITORING.ALERTMANAGERCONFIG);\n\n if (!schema) {\n return;\n }\n\n // Make the http request to fetch schema definitions for alertmanagerconfig\n await schema.fetchResourceFields();\n\n return {\n receiverSchema: schema.schemaDefinitions?.[`${ schema.schemaDefinition.id }.spec.receivers`],\n routeSchema: schema.schemaDefinitions?.[`${ schema.schemaDefinition.id }.spec.route`],\n };\n};\n\nconst DEFAULT_SECRET_ID = 'cattle-monitoring-system/alertmanager-rancher-monitoring-alertmanager';\nconst ALERTMANAGER_ID = 'cattle-monitoring-system/rancher-monitoring-alertmanager';\n\nexport const FILENAME = 'alertmanager.yaml';\n\nexport async function getSecretId(dispatch) {\n const alertManager = await dispatch('cluster/find', { type: MONITORING.ALERTMANAGER, id: ALERTMANAGER_ID }, { root: true });\n\n if (alertManager?.spec?.configSecret) {\n return `${ alertManager.namespace }/${ alertManager?.spec?.configSecret }`;\n }\n\n return DEFAULT_SECRET_ID;\n}\n\nexport async function getSecret(dispatch) {\n const secretId = await getSecretId(dispatch, false);\n\n try {\n return await dispatch('cluster/find', { type: SECRET, id: secretId }, { root: true });\n } catch (ex) {\n const [namespace, name] = secretId.split('/');\n const secret = await dispatch('cluster/create', { type: SECRET }, { root: true });\n\n secret.metadata = {\n namespace,\n name\n };\n\n return secret;\n }\n}\n\nfunction extractConfig(secret) {\n secret.data = secret.data || {};\n const file = secret.data[FILENAME];\n const decodedFile = file ? base64Decode(file) : '{}';\n const config = jsyaml.load(decodedFile);\n\n config.receivers = config.receivers || [];\n config.route = config.route || {};\n config.route.routes = config.route.routes || [];\n\n return config;\n}\n\nexport async function loadConfig(dispatch) {\n const secret = await getSecret(dispatch);\n\n return {\n config: extractConfig(secret),\n secret\n };\n}\n\nexport async function updateConfig(dispatch, path, type, updateFn) {\n const { config, secret } = await loadConfig(dispatch);\n\n set(config, path, get(config, path) || []);\n setDefaultRouteNames(config.route.routes);\n\n const newValue = updateFn(get(config, path));\n\n set(config, path, newValue);\n\n const routes = config.route.routes;\n const rootIndex = routes.findIndex((route) => route.name === ROOT_NAME);\n\n routes.forEach((route) => {\n if (route.name) {\n delete route.name;\n }\n });\n\n if (rootIndex >= 0) {\n const rootRoute = routes.splice(rootIndex, 1)[0];\n\n rootRoute.routes = routes;\n config.route = rootRoute;\n }\n\n const newFile = jsyaml.dump(config);\n const encodedFile = base64Encode(newFile);\n\n secret.data[FILENAME] = encodedFile;\n await secret.save();\n}\n\nexport async function getAllReceivers(dispatch) {\n try {\n const { config, secret } = await loadConfig(dispatch);\n const receivers = config.receivers || [];\n const receiversWithName = receivers.filter((receiver) => receiver.name);\n const mapped = receiversWithName.map((receiver) => dispatch('cluster/create', {\n id: receiver.name,\n spec: receiver,\n type: MONITORING.SPOOFED.RECEIVER,\n secret\n }, { root: true }));\n\n return Promise.all(mapped);\n } catch (ex) {\n return [];\n }\n}\n\nexport async function getAllRoutes(dispatch) {\n try {\n const { config, secret } = await loadConfig(dispatch);\n\n config.route = config.route || {};\n config.route.name = ROOT_NAME;\n const routes = config.route?.routes || [];\n\n setDefaultRouteNames(routes);\n\n routes.push(config.route);\n\n const mapped = routes.map((route) => dispatch('cluster/create', {\n id: route.name,\n spec: route,\n type: MONITORING.SPOOFED.ROUTE,\n secret\n }, { root: true }));\n\n return Promise.all(mapped);\n } catch (ex) {\n return [];\n }\n}\n\nfunction setDefaultRouteNames(routes) {\n routes.forEach((route, i) => {\n route.name = route.name || createDefaultRouteName(i);\n });\n}\n\nexport function createDefaultRouteName(index) {\n return `route-${ index }`;\n}\n\nexport function areRoutesSupportedFormat(secret) {\n try {\n const config = extractConfig(secret);\n const routes = config.route?.routes || [];\n\n return !routes.some(isEmpty);\n } catch (ex) {\n return false;\n }\n}\n\nexport function canCreate(rootGetters) {\n return rootGetters['type-map/optionsFor'](SECRET).isCreatable;\n}\n","// src/clipboard-polyfill/ClipboardItem/data-types.ts\nvar TEXT_PLAIN = \"text/plain\";\nvar TEXT_HTML = \"text/html\";\n\n// src/clipboard-polyfill/debug.ts\nvar debugLogImpl = (s) => {\n};\nfunction debugLog(s) {\n debugLogImpl(s);\n}\nfunction setDebugLog(logFn) {\n debugLogImpl = logFn;\n}\nvar showWarnings = true;\nfunction suppressWarnings() {\n showWarnings = false;\n}\nfunction shouldShowWarnings() {\n return showWarnings;\n}\nfunction warnOrLog() {\n (console.warn || console.log).apply(console, arguments);\n}\nvar warn = warnOrLog.bind(\"[clipboard-polyfill]\");\n\n// src/clipboard-polyfill/builtins/window-globalThis.ts\nvar originalWindow = typeof window === \"undefined\" ? void 0 : window;\nvar originalGlobalThis = typeof globalThis === \"undefined\" ? void 0 : globalThis;\n\n// src/clipboard-polyfill/builtins/promise-constructor.ts\nvar _a, _b, _c;\nvar promiseConstructorImpl = (_c = (_a = originalWindow) == null ? void 0 : _a.Promise) != null ? _c : (_b = originalGlobalThis) == null ? void 0 : _b.Promise;\nfunction getPromiseConstructor() {\n if (!promiseConstructorImpl) {\n throw new Error(\n \"No `Promise` implementation available for `clipboard-polyfill`. Consider using: https://github.com/lgarron/clipboard-polyfill#flat-file-version-with-promise-included\"\n );\n }\n return promiseConstructorImpl;\n}\n\n// src/clipboard-polyfill/builtins/builtin-globals.ts\nvar originalNavigator = typeof navigator === \"undefined\" ? void 0 : navigator;\nvar originalNavigatorClipboard = originalNavigator == null ? void 0 : originalNavigator.clipboard;\nvar _a2;\nvar originalNavigatorClipboardRead = (_a2 = originalNavigatorClipboard == null ? void 0 : originalNavigatorClipboard.read) == null ? void 0 : _a2.bind(\n originalNavigatorClipboard\n);\nvar _a3;\nvar originalNavigatorClipboardReadText = (_a3 = originalNavigatorClipboard == null ? void 0 : originalNavigatorClipboard.readText) == null ? void 0 : _a3.bind(\n originalNavigatorClipboard\n);\nvar _a4;\nvar originalNavigatorClipboardWrite = (_a4 = originalNavigatorClipboard == null ? void 0 : originalNavigatorClipboard.write) == null ? void 0 : _a4.bind(\n originalNavigatorClipboard\n);\nvar _a5;\nvar originalNavigatorClipboardWriteText = (_a5 = originalNavigatorClipboard == null ? void 0 : originalNavigatorClipboard.writeText) == null ? void 0 : _a5.bind(\n originalNavigatorClipboard\n);\nvar _a6;\nvar originalWindowClipboardItem = (_a6 = originalWindow) == null ? void 0 : _a6.ClipboardItem;\nvar promiseConstructor = getPromiseConstructor();\n\n// src/clipboard-polyfill/strategies/internet-explorer.ts\nvar ieWindow = originalWindow;\nfunction seemToBeInIE() {\n return typeof ClipboardEvent === \"undefined\" && typeof (ieWindow == null ? void 0 : ieWindow.clipboardData) !== \"undefined\" && typeof (ieWindow == null ? void 0 : ieWindow.clipboardData.setData) !== \"undefined\";\n}\nfunction writeTextIE(text) {\n if (!ieWindow.clipboardData) {\n return false;\n }\n var success = ieWindow.clipboardData.setData(\"Text\", text);\n if (success) {\n debugLog(\"writeTextIE worked\");\n }\n return success;\n}\nfunction readTextIE() {\n if (!ieWindow.clipboardData) {\n throw new Error(\"Cannot read IE clipboard Data \");\n }\n var text = ieWindow.clipboardData.getData(\"Text\");\n if (text === \"\") {\n throw new Error(\n \"Empty clipboard or could not read plain text from clipboard\"\n );\n }\n return text;\n}\n\n// src/clipboard-polyfill/strategies/dom.ts\nfunction copyListener(tracker, data, e) {\n debugLog(\"listener called\");\n tracker.success = true;\n for (var type in data) {\n var value = data[type];\n var clipboardData = e.clipboardData;\n clipboardData.setData(type, value);\n if (type === TEXT_PLAIN && clipboardData.getData(type) !== value) {\n debugLog(\"setting text/plain failed\");\n tracker.success = false;\n }\n }\n e.preventDefault();\n}\nfunction execCopy(data) {\n var tracker = { success: false };\n var listener = copyListener.bind(this, tracker, data);\n document.addEventListener(\"copy\", listener);\n try {\n document.execCommand(\"copy\");\n } finally {\n document.removeEventListener(\"copy\", listener);\n }\n return tracker.success;\n}\nfunction copyUsingTempSelection(e, data) {\n selectionSet(e);\n var success = execCopy(data);\n selectionClear();\n return success;\n}\nfunction copyUsingTempElem(data) {\n var tempElem = document.createElement(\"div\");\n tempElem.setAttribute(\"style\", \"-webkit-user-select: text !important\");\n tempElem.textContent = \"temporary element\";\n document.body.appendChild(tempElem);\n var success = copyUsingTempSelection(tempElem, data);\n document.body.removeChild(tempElem);\n return success;\n}\nfunction copyTextUsingDOM(str) {\n debugLog(\"copyTextUsingDOM\");\n var tempElem = document.createElement(\"div\");\n tempElem.setAttribute(\"style\", \"-webkit-user-select: text !important\");\n var spanParent = tempElem;\n if (tempElem.attachShadow) {\n debugLog(\"Using shadow DOM.\");\n spanParent = tempElem.attachShadow({ mode: \"open\" });\n }\n var span = document.createElement(\"span\");\n span.innerText = str;\n spanParent.appendChild(span);\n document.body.appendChild(tempElem);\n selectionSet(span);\n var result = document.execCommand(\"copy\");\n selectionClear();\n document.body.removeChild(tempElem);\n return result;\n}\nfunction selectionSet(elem) {\n var sel = document.getSelection();\n if (sel) {\n var range = document.createRange();\n range.selectNodeContents(elem);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n}\nfunction selectionClear() {\n var sel = document.getSelection();\n if (sel) {\n sel.removeAllRanges();\n }\n}\n\n// src/clipboard-polyfill/implementations/write-fallback.ts\nfunction writeFallback(stringItem) {\n var hasTextPlain = TEXT_PLAIN in stringItem;\n if (seemToBeInIE()) {\n if (!hasTextPlain) {\n throw new Error(\"No `text/plain` value was specified.\");\n }\n if (writeTextIE(stringItem[TEXT_PLAIN])) {\n return true;\n } else {\n throw new Error(\"Copying failed, possibly because the user rejected it.\");\n }\n }\n if (execCopy(stringItem)) {\n debugLog(\"regular execCopy worked\");\n return true;\n }\n if (navigator.userAgent.indexOf(\"Edge\") > -1) {\n debugLog('UA \"Edge\" => assuming success');\n return true;\n }\n if (copyUsingTempSelection(document.body, stringItem)) {\n debugLog(\"copyUsingTempSelection worked\");\n return true;\n }\n if (copyUsingTempElem(stringItem)) {\n debugLog(\"copyUsingTempElem worked\");\n return true;\n }\n if (copyTextUsingDOM(stringItem[TEXT_PLAIN])) {\n debugLog(\"copyTextUsingDOM worked\");\n return true;\n }\n return false;\n}\n\n// src/clipboard-polyfill/promise/promise-compat.ts\nfunction promiseRecordMap(keys, f) {\n var promiseList = [];\n for (var i in keys) {\n var key = keys[i];\n promiseList.push(f(key));\n }\n return promiseConstructor.all(promiseList).then((vList) => {\n var dataOut = {};\n for (var i2 = 0; i2 < keys.length; i2++) {\n dataOut[keys[i2]] = vList[i2];\n }\n return dataOut;\n });\n}\nvar voidPromise = promiseConstructor.resolve();\nvar truePromiseFn = () => promiseConstructor.resolve(true);\nvar falsePromise = promiseConstructor.resolve(false);\nfunction rejectThrownErrors(executor) {\n return new promiseConstructor((resolve, reject) => {\n try {\n resolve(executor());\n } catch (e) {\n reject(e);\n }\n });\n}\n\n// src/clipboard-polyfill/implementations/text.ts\nfunction stringToStringItem(s) {\n var stringItem = {};\n stringItem[TEXT_PLAIN] = s;\n return stringItem;\n}\nfunction writeText(s) {\n return rejectThrownErrors(() => {\n if (originalNavigatorClipboardWriteText) {\n debugLog(\"Using `navigator.clipboard.writeText()`.\");\n return originalNavigatorClipboardWriteText(s).catch(\n writeTextStringFallback\n );\n }\n return promiseConstructor.resolve(writeTextStringFallback(s));\n });\n}\nfunction writeTextStringFallback(s) {\n if (!writeFallback(stringToStringItem(s))) {\n throw new Error(\"writeText() failed\");\n }\n}\nfunction readText() {\n return rejectThrownErrors(() => {\n if (originalNavigatorClipboardReadText) {\n debugLog(\"Using `navigator.clipboard.readText()`.\");\n return originalNavigatorClipboardReadText();\n }\n if (seemToBeInIE()) {\n var result = readTextIE();\n return promiseConstructor.resolve(result);\n }\n throw new Error(\"Read is not supported in your browser.\");\n });\n}\n\n// src/clipboard-polyfill/ClipboardItem/check.ts\nfunction hasItemWithType(clipboardItems, typeName) {\n for (var i in clipboardItems) {\n var item = clipboardItems[i];\n if (item.types.indexOf(typeName) !== -1) {\n return true;\n }\n }\n return false;\n}\n\n// src/clipboard-polyfill/ClipboardItem/ClipboardItemPolyfill.ts\nfunction ClipboardItemPolyfillImpl(items, options) {\n var _a7;\n var types = Object.keys(items);\n var _items = {};\n for (var type in items) {\n var item = items[type];\n if (typeof item === \"string\") {\n _items[type] = stringToBlob(type, item);\n } else {\n _items[type] = item;\n }\n }\n var presentationStyle = (_a7 = options == null ? void 0 : options.presentationStyle) != null ? _a7 : \"unspecified\";\n function getType(type2) {\n return promiseConstructor.resolve(_items[type2]);\n }\n return {\n types,\n presentationStyle,\n getType\n };\n}\nvar ClipboardItemPolyfill = ClipboardItemPolyfillImpl;\n\n// src/clipboard-polyfill/ClipboardItem/convert.ts\nfunction stringToBlob(type, str) {\n return new Blob([str], {\n type\n });\n}\nfunction blobToString(blob) {\n return new promiseConstructor((resolve, reject) => {\n var fileReader = new FileReader();\n fileReader.addEventListener(\"load\", () => {\n var result = fileReader.result;\n if (typeof result === \"string\") {\n resolve(result);\n } else {\n reject(\"could not convert blob to string\");\n }\n });\n fileReader.readAsText(blob);\n });\n}\nfunction clipboardItemToGlobalClipboardItem(clipboardItem) {\n return promiseRecordMap(clipboardItem.types, function(type) {\n return clipboardItem.getType(type);\n }).then((items) => {\n return new Promise((resolve, reject) => {\n var options = {};\n if (clipboardItem.presentationStyle) {\n options.presentationStyle = clipboardItem.presentationStyle;\n }\n if (originalWindowClipboardItem) {\n resolve(new originalWindowClipboardItem(items, options));\n } else {\n reject(\"window.ClipboardItem is not defined\");\n }\n });\n });\n}\nfunction textToClipboardItem(text) {\n var items = {};\n items[TEXT_PLAIN] = stringToBlob(text, TEXT_PLAIN);\n return new ClipboardItemPolyfill(items);\n}\nfunction getTypeAsString(clipboardItem, type) {\n return clipboardItem.getType(type).then((text) => {\n return blobToString(text);\n });\n}\nfunction toStringItem(data) {\n return promiseRecordMap(data.types, function(type) {\n return getTypeAsString(data, type);\n });\n}\n\n// src/clipboard-polyfill/implementations/blob.ts\nfunction write(data) {\n return rejectThrownErrors(() => {\n if (originalNavigatorClipboardWrite && originalWindowClipboardItem) {\n var originalNavigatorClipboardWriteCached = originalNavigatorClipboardWrite;\n debugLog(\"Using `navigator.clipboard.write()`.\");\n return promiseConstructor.all(data.map(clipboardItemToGlobalClipboardItem)).then(\n (globalClipboardItems) => {\n return originalNavigatorClipboardWriteCached(globalClipboardItems).then(truePromiseFn).catch((e) => {\n if (!hasItemWithType(data, TEXT_PLAIN) && !hasItemWithType(data, TEXT_HTML)) {\n throw e;\n }\n return falsePromise;\n });\n }\n );\n }\n return falsePromise;\n }).then((success) => {\n if (success) {\n return voidPromise;\n }\n var hasTextPlain = hasItemWithType(data, TEXT_PLAIN);\n if (shouldShowWarnings() && !hasTextPlain) {\n debugLog(\n \"clipboard.write() was called without a `text/plain` data type. On some platforms, this may result in an empty clipboard. Call suppressWarnings() to suppress this warning.\"\n );\n }\n return toStringItem(data[0]).then((stringItem) => {\n if (!writeFallback(stringItem)) {\n throw new Error(\"write() failed\");\n }\n });\n });\n}\nfunction read() {\n return rejectThrownErrors(() => {\n if (originalNavigatorClipboardRead) {\n debugLog(\"Using `navigator.clipboard.read()`.\");\n return originalNavigatorClipboardRead();\n }\n return readText().then((text) => {\n return [textToClipboardItem(text)];\n });\n });\n}\nexport {\n ClipboardItemPolyfill as ClipboardItem,\n read,\n readText,\n setDebugLog,\n suppressWarnings,\n write,\n writeText\n};\n//# sourceMappingURL=clipboard-polyfill.es6.js.map\n","import * as Clipboard from 'clipboard-polyfill';\n\nexport async function copyTextToClipboard(text) {\n await Clipboard.writeText(text);\n}\n","/*\nPrimary color classes from _light.scss\n\n --primary : #{$primary};\n --primary-text : #{contrast-color($primary)};\n --primary-hover-bg : #{darken($primary, 10%)};\n --primary-hover-text : #{saturate($lightest, 20%)};\n --primary-active-bg : #{darken($primary, 25%)};\n --primary-active-text : #{contrast-color(darken($primary, 25%))};\n --primary-border : #($primary);\n --primary-banner-bg : #{rgba($primary, 0.15)};\n --primary-light-bg : #{rgba($primary, 0.05)};\n\n*/\n\nconst Color = require('color');\n\nexport function createCssVars(color, theme = 'light', name = 'primary') {\n const contrastOpts = theme === 'light' ? LIGHT_CONTRAST_COLORS : DARK_CONTRAST_COLORS;\n\n return {\n [`--${ name }`]: color,\n [`--${ name }-text `]: contrastColor(color, contrastOpts),\n [`--${ name }-hover-bg`]: lighten(color, -10),\n [`--${ name }-active-bg`]: lighten(color, -25),\n [`--${ name }-active-text`]: contrastColor(lighten(color, -25), contrastOpts),\n [`--${ name }-border`]: color,\n [`--${ name }-banner-bg`]: opacity(color, 0.15),\n [`--${ name }-light-bg`]: opacity(color, 0.05),\n };\n}\n\n// scss 'lighten(color, percent)' increases color's hsl lightness by percent amount, not scaled\nfunction lighten(color, amount) {\n const inHSL = Color(color)?.hsl()?.color;\n\n inHSL[2] -= amount;\n\n return Color.hsl(inHSL).rgb().string();\n}\n\nfunction opacity(color, val) {\n return Color(color).alpha(val).string();\n}\n\n/*\nlight theme\n$contrasted-dark: $darkest !default; #141419;\n$contrasted-light: $lightest !default; #FFFFFF\n\ndark theme\n$contrasted-dark: $lightest !default; #ffffff;\n$contrasted-light: $darkest !default; #141419\n*/\nconst LIGHT_CONTRAST_COLORS = {\n dark: 'rgb(20, 20, 25)',\n light: 'rgb(255, 255, 255)'\n};\n\nconst DARK_CONTRAST_COLORS = {\n dark: 'rgb(255, 255, 255)',\n light: 'rgb(20, 20, 25)',\n\n};\n\nconst STANDARD_COLORS = {\n black: '#000000',\n white: '#ffffff',\n};\n\n// contrastColor(color, {light, dark}) returns which of 2 options is higher contrast with color\nexport function contrastColor(color, contrastOptions = LIGHT_CONTRAST_COLORS) {\n let out = contrastOptions.light;\n const contrastDark = Color(color).contrast(Color(contrastOptions.dark));\n const contrastLight = Color(color).contrast(Color(contrastOptions.light));\n\n if (contrastDark > contrastLight) {\n out = contrastOptions.dark;\n }\n\n return out;\n}\n\nexport function parseColor(str) {\n return Color(str);\n}\n\nexport function textColor(color) {\n const rgb = color.rgb().array();\n\n // http://www.w3.org/TR/AERT#color-contrast\n const brightness = Math.round(((parseInt(rgb[0]) * 299) +\n (parseInt(rgb[1]) * 587) +\n (parseInt(rgb[2]) * 114)) / 1000);\n\n return (brightness > 125) ? 'black' : 'white';\n}\n\nexport function hexToRgb(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function mapStandardColors(color) {\n return STANDARD_COLORS[color] || color;\n}\n\nexport function rgbToRgb(rgb) {\n const result = /^rgb\\(([0-9]{1,3}),\\s*([0-9]{1,3}),\\s*([0-9]{1,3})\\)$/i.exec(rgb);\n\n return result ? {\n r: parseInt(result[1], 10),\n g: parseInt(result[2], 10),\n b: parseInt(result[3], 10)\n } : null;\n}\n\nexport function colorToRgb(color) {\n let value;\n\n if (color.startsWith('rgb(')) {\n value = rgbToRgb(color);\n } else if (color.startsWith('#')) {\n value = hexToRgb(color);\n } else {\n console.warn(`Unable to parse color: ${ color }`); // eslint-disable-line no-console\n }\n\n return value || {\n r: 0, g: 0, b: 0\n };\n}\n\nexport function normalizeHex(hex) {\n if (hex.includes('#') && hex.length === 4) {\n return `#${ hex[1] }${ hex[1] }${ hex[2] }${ hex[2] }${ hex[3] }${ hex[3] }`;\n } else if (!hex.includes('#') && hex.length === 3) {\n return `${ hex[0] }${ hex[0] }${ hex[1] }${ hex[1] }${ hex[2] }${ hex[2] }`;\n }\n\n return hex;\n}\n","import { indent as _indent } from '@shell/utils/string';\nimport { addObject, findBy, removeObject, removeObjects } from '@shell/utils/array';\nimport jsyaml from 'js-yaml';\nimport { cleanUp, isEmpty } from '@shell/utils/object';\nimport { parseType } from '@shell/models/schema';\n\nexport const SIMPLE_TYPES = [\n 'string',\n 'multiline',\n 'masked',\n 'password',\n 'float',\n 'int',\n 'date',\n 'blob',\n 'boolean',\n 'version'\n];\n\nconst ALWAYS_ADD = [\n 'apiVersion',\n 'kind',\n 'metadata',\n 'metadata.name',\n 'spec',\n 'spec.selector',\n 'spec.selector.matchLabels',\n 'spec.template',\n 'spec.template.metadata',\n 'spec.template.metadata.labels',\n 'spec.template.spec.containers.name',\n 'spec.template.spec.containers.image',\n];\n\nexport const NEVER_ADD = [\n 'metadata.clusterName',\n 'metadata.creationTimestamp',\n 'metadata.deletionGracePeriodSeconds',\n 'metadata.deletionTimestamp',\n 'metadata.finalizers',\n 'metadata.generateName',\n 'metadata.generation',\n 'metadata.initializers',\n 'metadata.managedFields',\n 'metadata.ownerReferences',\n 'metadata.resourceVersion',\n 'metadata.relationships',\n 'metadata.selfLink',\n 'metadata.state',\n 'metadata.uid',\n // CRD -> Schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource. If we allow processing we fall into inf loop on openAPIV3Schema.allOf which contains a cyclical ref of allOf props.\n 'spec.versions.schema',\n 'status',\n 'stringData',\n 'links',\n '_name',\n '_labels',\n '_annotations',\n];\n\nexport const ACTIVELY_REMOVE = [\n 'metadata.managedFields',\n 'metadata.relationships',\n 'metadata.state',\n 'status',\n 'links',\n 'type',\n 'id'\n];\n\nconst INDENT = 2;\n\nexport function createYamlWithOptions(schemas, type, data, options) {\n return createYaml(\n schemas,\n type,\n data,\n true, 0, '', null,\n options\n );\n}\n\nexport function createYaml(\n schemas,\n type,\n data,\n processAlwaysAdd = true,\n depth = 0,\n path = '',\n rootType = null,\n dataOptions = {},\n) {\n data = data || {};\n\n let schema, rootSchema, schemaDefinitions, schemaResourceFields;\n\n if (depth === 0) {\n // `type` is a schema id\n schema = findBy(schemas, 'id', type);\n\n if ( !schema ) { // schema is only needed at the root level.\n return `Error loading schema for ${ type }`;\n }\n\n rootSchema = schema;\n\n schemaDefinitions = rootSchema.schemaDefinitions;\n schemaResourceFields = rootSchema.resourceFields;\n\n const attr = schema.attributes || {};\n\n // Default to data.apiVersion/kind to accommodate spoofed types that aggregate multiple types\n data.apiVersion = (attr.group ? `${ attr.group }/${ attr.version }` : attr.version) || data.apiVersion;\n data.kind = attr.kind || data.kind;\n } else {\n rootSchema = findBy(schemas, 'id', rootType);\n\n if (rootSchema.requiresResourceFields) { // See `requiresResourceFields` definition\n schemaDefinitions = rootSchema.schemaDefinitions;\n schemaResourceFields = schemaDefinitions[type]?.resourceFields;\n } else {\n schema = findBy(schemas, 'id', type);\n if ( !schema ) { // schema is only needed at the root level.\n return `Error loading schema for ${ type }`;\n }\n schemaResourceFields = schema.resourceFields;\n }\n }\n\n if ( !rootType ) {\n rootType = type;\n }\n\n const regularFields = [];\n\n if (processAlwaysAdd) {\n // Add all the parents of each key so that spec.template.foo.blah\n // causes 'spec', 'template' and 'foo' keys to be created\n const always = ALWAYS_ADD.slice();\n\n for ( let i = always.length - 1 ; i >= 0 ; i-- ) {\n let entry = always[i].split(/\\./);\n\n while ( entry.length ) {\n addObject(always, entry.join('.'));\n entry = entry.slice(0, -1);\n }\n }\n\n // Mark always fields as regular so they're not commented out\n for ( const entry of always ) {\n const parts = entry.split(/\\./);\n const key = parts[parts.length - 1];\n const prefix = parts.slice(0, -1).join('.');\n\n if ( prefix === path && schemaResourceFields && schemaResourceFields[key] ) {\n addObject(regularFields, key);\n }\n }\n }\n\n // Include all fields in schema's resourceFields as comments\n const commentFields = Object.keys(schemaResourceFields || {});\n\n commentFields.forEach((key) => {\n if ( typeof data[key] !== 'undefined' || (depth === 0 && key === '_type') ) {\n addObject(regularFields, key);\n }\n });\n\n // add any fields defined in data as uncommented fields in yaml\n for ( const key in data ) {\n if ( typeof data[key] !== 'undefined' ) {\n addObject(regularFields, key);\n }\n }\n\n // ACTIVELY_REMOVE are fields that should be removed even if they are defined in data\n for ( const entry of (dataOptions.activelyRemove || ACTIVELY_REMOVE) ) {\n const parts = entry.split(/\\./);\n const key = parts[parts.length - 1];\n const prefix = parts.slice(0, -1).join('.');\n\n if ( prefix === path) {\n removeObject(regularFields, key);\n }\n }\n\n // NEVER_ADD are fields that should not be added as comments, but may added as regular fields if already defined in data\n for ( const entry of NEVER_ADD ) {\n const parts = entry.split(/\\./);\n const key = parts[parts.length - 1];\n const prefix = parts.slice(0, -1).join('.');\n\n if ( prefix === path && schemaResourceFields && schemaResourceFields[key] ) {\n removeObject(commentFields, key);\n }\n }\n\n // do not include commented fields if already defined in data\n removeObjects(commentFields, regularFields);\n\n const regular = regularFields.map((k) => stringifyField(k));\n const comments = commentFields.map((k) => {\n // Don't add a namespace comment for types that aren't namespaced.\n if ( path === 'metadata' && k === 'namespace' ) {\n if ( rootSchema && !rootSchema.attributes?.namespaced ) {\n return null;\n }\n }\n\n return comment(stringifyField(k));\n });\n\n const out = [...regular, ...comments]\n .filter((x) => x !== null)\n .join('\\n')\n .trim();\n\n return out;\n\n // ---------------\n\n function stringifyField(key) {\n const field = schemaResourceFields?.[key];\n let out = `${ key }:`;\n\n // '_type' in steve maps to kubernetes 'type' field; show 'type' field in yaml\n if (key === '_type') {\n out = 'type:';\n }\n\n // if a key on data is not listed in the schema's resourceFields, just convert it to yaml, add indents where needed, and return\n if ( !field ) {\n if (data[key]) {\n try {\n const cleaned = cleanUp(data);\n const parsedData = jsyaml.dump(cleaned[key]);\n\n if ( typeof data[key] === 'object' || Array.isArray(data[key]) ) {\n out += `\\n${ indent(parsedData.trim()) }`;\n } else {\n out += ` ${ parsedData.trim() }`;\n }\n\n return out;\n } catch (e) {\n console.error(`Error: Unable to parse map data for yaml key: ${ key }`, e); // eslint-disable-line no-console\n }\n }\n\n return null;\n }\n\n const type = typeMunge(field.type);\n const mapOf = typeRef('map', type, field);\n const arrayOf = typeRef('array', type, field);\n const referenceTo = typeRef('reference', type);\n\n // type == map[mapOf]\n if ( mapOf ) {\n // if key is defined in data, convert the value to yaml, add newline+indent and add to output yaml string\n if (data[key]) {\n try {\n const cleaned = cleanUp(data);\n const parsedData = dumpBlock(cleaned[key], dataOptions[key]);\n\n out += `\\n${ indent(parsedData) }`;\n } catch (e) {\n console.error(`Error: Unable to parse map data for yaml of type: ${ type }`, e); // eslint-disable-line no-console\n }\n }\n\n if ( SIMPLE_TYPES.includes(mapOf) ) {\n out += `# key: ${ mapOf }`;\n } else {\n // If not a simple type ie some sort of object/array, recursively build out commented fields (note data = null here) per the type's (mapOf's) schema\n const chunk = createYaml(schemas, mapOf, null, processAlwaysAdd, depth + 1, (path ? `${ path }.${ key }` : key), rootType, dataOptions);\n let indented = indent(chunk);\n\n // convert \"# foo\" to \"#foo\"\n indented = indented.replace(/^(#)?\\s\\s\\s\\s/, '$1');\n\n out += `${ indented }`;\n }\n\n return out;\n }\n\n // type == array[arrayOf]\n if ( arrayOf ) {\n if (data[key]) {\n try {\n const cleaned = cleanUp(data);\n\n if ( cleaned?.[key] ) {\n const parsedData = jsyaml.dump(cleaned[key]);\n\n out += `\\n${ indent(parsedData.trim()) }`;\n }\n } catch (e) {\n console.error(`Error: Unable to parse array data for yaml of type: ${ type }`, e); // eslint-disable-line no-console\n }\n }\n\n if ( SIMPLE_TYPES.includes(arrayOf) ) {\n out += `\\n# - ${ arrayOf }`;\n } else {\n const chunk = createYaml(schemas, arrayOf, null, false, depth + 1, (path ? `${ path }.${ key }` : key), rootType, dataOptions);\n let indented = indent(chunk, 2);\n\n // turn \"# foo\" into \"# - foo\"\n indented = indented.replace(/^(#)?\\s*\\s\\s([^\\s])/, '$1 - $2');\n\n out += `\\n${ indented }`;\n }\n\n return out;\n }\n\n if ( referenceTo ) {\n out += ` #${ referenceTo }`;\n\n return out;\n }\n\n if ( SIMPLE_TYPES.includes(type) ) {\n if (key === '_type' && typeof data[key] === 'undefined' && typeof data['type'] !== 'undefined') {\n out += ` ${ serializeSimpleValue(data['type']) }`;\n } else if ( typeof data[key] === 'undefined' ) {\n out += ` #${ serializeSimpleValue(type) }`;\n } else {\n out += ` ${ serializeSimpleValue(data[key]) }`;\n }\n\n return out;\n }\n\n /**\n * .spec is the type used for the Logging chart Output and ClusterOutput resource spec.\n * Without this Output and ClusterOutput specs are empty.\n */\n if ( type === 'json' || type === '.spec') {\n try {\n const parsedData = jsyaml.dump(data[key]);\n\n if (parsedData) {\n out += `\\n${ indent(parsedData.trim()) }`;\n } else {\n out += ` #${ type }`;\n }\n\n return out;\n } catch (e) {\n }\n }\n\n const subDef = schemaDefinitions?.[type] || findBy(schemas, 'id', type);\n\n if ( subDef) {\n let chunk;\n\n if (subDef?.resourceFields && !isEmpty(subDef?.resourceFields)) {\n chunk = createYaml(schemas, type, data[key], processAlwaysAdd, depth + 1, (path ? `${ path }.${ key }` : key), rootType, dataOptions);\n } else if (data[key]) {\n // if there are no fields defined on the schema but there are in the data, just format data as yaml and add to output yaml\n try {\n const parsed = jsyaml.dump(data[key]);\n\n chunk = parsed.trim();\n } catch (e) {\n console.error(`Error: Unale to parse data for yaml of type: ${ type }`, e); // eslint-disable-line no-console\n }\n }\n\n out += `\\n${ indent(chunk) }`;\n } else {\n out += ` #${ type }`;\n }\n\n return out;\n }\n}\n\nfunction comment(lines) {\n return (lines || '').split('\\n').map((x) => `#${ x.replace(/#/g, '') }`).join('\\n');\n}\n\nfunction indent(lines, depth = 1) {\n return _indent(lines, depth * INDENT, ' ', /^#/);\n}\n\nfunction serializeSimpleValue(data) {\n return jsyaml.dump(data).trim();\n}\n\nexport function getBlockDescriptor(value, key) {\n const header = getBlockHeader(value, key);\n\n return {\n header,\n indentation: getBlockIndentation(header),\n };\n}\n\n/**\n *\n * @param {string} value the block of text to be parsed\n * @param {*} blockKey the key of the block\n * @returns the key + the block scalar indicators, see https://yaml-multiline.info - Block Scalars\n */\nfunction getBlockHeader(value, blockKey) {\n const card = `(${ blockKey })[\\\\:][\\\\s|\\\\t]+[\\\\|\\\\>][\\\\d]*[\\\\-\\\\+]?`;\n const re = new RegExp(card, 'gi');\n\n const found = value.match(re);\n\n return found?.[0] || '';\n}\n\n/**\n *\n * @param {string} blockHeader the key + the block scalar indicators\n * @returns the indentation indicator from the block header, see https://yaml-multiline.info - Indentation\n */\nfunction getBlockIndentation(blockHeader) {\n const blockScalars = blockHeader.substr(blockHeader.indexOf(':') + 1);\n\n const indentation = blockScalars.match(/\\d+/);\n\n return indentation?.[0] || '';\n}\n\n/**\n * Check for a specific type and if valid return it's sub type or self\n * @param {string} type required type\n * @param {string} str actual type\n * @param {ResourceField} field resourceField entry to the actual type\n *\n * @returns the sub type, or if not found the type\n */\nexport function typeRef(type, str, field = null) {\n const [foundType, foundSubType] = parseType(str, field);\n\n if (type === foundType) {\n return typeMunge(foundSubType || foundType);\n }\n}\n\nexport function typeMunge(type) {\n if ( type === 'integer' ) {\n return 'int';\n }\n\n if ( type === 'io.k8s.apimachinery.pkg.api.resource.Quantity' ) {\n return 'string';\n }\n\n return type;\n}\n\nexport function saferDump(obj) {\n const out = jsyaml.dump(obj || {});\n\n if ( out === '{}\\n' ) {\n return '';\n }\n\n return out;\n}\n\n/**\n * Handles newlines indicators in the multiline blocks.\n *\n * this is required since jsyaml.dump doesn't support chomping and scalar style at the moment.\n * see: https://github.com/nodeca/js-yaml/issues/171\n\n * @typedef {Object} DumpBlockOptions\n * @property {('>' | '|')} [scalarStyle] - The scalar style.\n * @property {('-' | '+' | '' | null)} [chomping] - The chomping style.\n *\n * @param {*} data the multiline block\n * @param {Object} options - Serialization options for jsyaml.dump.\n * @param {number} options.lineWidth - Set max line width. Set -1 for unlimited width.\n * @param {DumpBlockOptions} [options.dynamicProperties] - Options for dynamic properties.\n * Developers can provide their own property names under `options`.\n *\n * @returns the result of jsyaml.dump with the addition of multiline indicators\n */\nexport function dumpBlock(data, options = { lineWidth: -1 }) {\n const parsed = jsyaml.dump(data, options);\n\n let out = parsed;\n\n const blockFields = Object.keys(data).filter((k) => {\n if (typeof data[k] === 'string') {\n return data[k].includes('\\n');\n }\n });\n\n if (blockFields.length) {\n for (const key of blockFields) {\n const { header, indentation } = getBlockDescriptor(out, key);\n\n const scalarStyle = options[key]?.scalarStyle ?? '|';\n const chomping = options[key]?.chomping ?? '';\n\n /**\n * Replace the original block indicators with the ones provided in the options param\n */\n if (header) {\n out = out.replace(header, `${ key }: ${ scalarStyle }${ chomping }${ indentation }`);\n }\n }\n }\n\n return out;\n}\n","import { Buffer } from 'buffer';\n\nfunction hashString(str) {\n let hash = 0;\n\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n\n hash = (hash << 5) - hash + char;\n hash &= hash;\n }\n\n return new Uint32Array([hash])[0].toString(36);\n}\n\n// Quick, simple hash function to generate hash for an object\nexport function hashObj(obj) {\n return hashString(JSON.stringify(obj, null, 2));\n}\n\n/**\n * @api private\n */\nexport function isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nexport function convertToBuffer(data) {\n if (typeof data === 'string') {\n // eslint-disable-next-line node/no-deprecated-api\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\nexport default {\n isEmptyData,\n convertToBuffer,\n};\n","import { Buffer } from 'buffer';\nimport { isEmptyData, convertToBuffer } from './browserHashUtils';\n\nconst BLOCK_SIZE = 64;\n\nconst DIGEST_LENGTH = 16;\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xEFCDAB89,\n 0x98BADCFE,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nexport default Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function(sourceData) {\n if (isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n const data = convertToBuffer(sourceData);\n let position = 0;\n let byteLength = data.byteLength;\n\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nMd5.prototype.digest = function(encoding) {\n if (!this.finished) {\n const _a = this; const buffer = _a.buffer; const undecoratedLength = _a.bufferLength; const bytesHashed = _a.bytesHashed;\n const bitsHashed = bytesHashed * 8;\n\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n const out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n\n for (let i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n\n // eslint-disable-next-line node/no-deprecated-api\n const buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.prototype.hashBuffer = function() {\n const _a = this; const buffer = _a.buffer; const state = _a.state;\n let a = state[0]; let b = state[1]; let c = state[2]; let d = state[3];\n\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xD76AA478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xE8C7B756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070DB);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xC1BDCEEE);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xF57C0FAF);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787C62A);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xA8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xFD469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098D8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8B44F7AF);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xFFFF5BB1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895CD7BE);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6B901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xFD987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xA679438E);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49B40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xF61E2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xC040B340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265E5A51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xE9B6C7AA);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xD62F105D);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xD8A1E681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xE7D3FBC8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21E1CDE6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xC33707D6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xF4D50D87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455A14ED);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xA9E3E905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xFCEFA3F8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676F02D9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8D2A4C8A);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xFFFA3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771F681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6D9D6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xFDE5380C);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xA4BEEA44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4BDECFA9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xF6BB4B60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xBEBFBC70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289B7EC6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xEAA127FA);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xD4EF3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881D05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xD9D4D039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xE6DB99E5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1FA27CF8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xC4AC5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xF4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432AFF97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xAB9423A7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xFC93A039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655B59C3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8F0CCC92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xFFEFF47D);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845DD1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6FA87E4F);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xFE2CE6E0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xA3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4E0811A1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xF7537E82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xBD3AF235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2AD7D2BB);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xEB86D391);\n state[0] = (a + state[0]) & 0xFFFFFFFF;\n state[1] = (b + state[1]) & 0xFFFFFFFF;\n state[2] = (c + state[2]) & 0xFFFFFFFF;\n state[3] = (d + state[3]) & 0xFFFFFFFF;\n};\n\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF;\n\n return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF;\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","/* eslint-disable camelcase */\nimport { Buffer } from 'buffer';\nimport { isEmptyData, convertToBuffer } from './browserHashUtils';\n\nconst BLOCK_SIZE = 64;\n\nconst DIGEST_LENGTH = 32;\n\nconst KEY = new Uint32Array([\n 0x428A2F98,\n 0x71374491,\n 0xB5C0FBCF,\n 0xE9B5DBA5,\n 0x3956C25B,\n 0x59F111F1,\n 0x923F82A4,\n 0xAB1C5ED5,\n 0xD807AA98,\n 0x12835B01,\n 0x243185BE,\n 0x550C7DC3,\n 0x72BE5D74,\n 0x80DEB1FE,\n 0x9BDC06A7,\n 0xC19BF174,\n 0xE49B69C1,\n 0xEFBE4786,\n 0x0FC19DC6,\n 0x240CA1CC,\n 0x2DE92C6F,\n 0x4A7484AA,\n 0x5CB0A9DC,\n 0x76F988DA,\n 0x983E5152,\n 0xA831C66D,\n 0xB00327C8,\n 0xBF597FC7,\n 0xC6E00BF3,\n 0xD5A79147,\n 0x06CA6351,\n 0x14292967,\n 0x27B70A85,\n 0x2E1B2138,\n 0x4D2C6DFC,\n 0x53380D13,\n 0x650A7354,\n 0x766A0ABB,\n 0x81C2C92E,\n 0x92722C85,\n 0xA2BFE8A1,\n 0xA81A664B,\n 0xC24B8B70,\n 0xC76C51A3,\n 0xD192E819,\n 0xD6990624,\n 0xF40E3585,\n 0x106AA070,\n 0x19A4C116,\n 0x1E376C08,\n 0x2748774C,\n 0x34B0BCB5,\n 0x391C0CB3,\n 0x4ED8AA4A,\n 0x5B9CCA4F,\n 0x682E6FF3,\n 0x748F82EE,\n 0x78A5636F,\n 0x84C87814,\n 0x8CC70208,\n 0x90BEFFFA,\n 0xA4506CEB,\n 0xBEF9A3F7,\n 0xC67178F2\n]);\n\nconst MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6A09E667,\n 0xBB67AE85,\n 0x3C6EF372,\n 0xA54FF53A,\n 0x510E527F,\n 0x9B05688C,\n 0x1F83D9AB,\n 0x5BE0CD19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nexport default Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function(data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (isEmptyData(data)) {\n return this;\n }\n\n data = convertToBuffer(data);\n\n let position = 0;\n let byteLength = data.byteLength;\n\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function(encoding) {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n const undecoratedLength = this.bufferLength;\n\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n // eslint-disable-next-line node/no-deprecated-api\n const out = new Buffer(DIGEST_LENGTH);\n\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xFF;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xFF;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xFF;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xFF;\n }\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function() {\n const _a = this;\n const buffer = _a.buffer;\n const state = _a.state;\n let state0 = state[0];\n let state1 = state[1];\n let state2 = state[2];\n let state3 = state[3];\n let state4 = state[4];\n let state5 = state[5];\n let state6 = state[6];\n let state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((buffer[i * 4] & 0xFF) << 24) |\n ((buffer[(i * 4) + 1] & 0xFF) << 16) |\n ((buffer[(i * 4) + 2] & 0xFF) << 8) |\n (buffer[(i * 4) + 3] & 0xFF));\n } else {\n let u = this.temp[i - 2];\n const t1_1 = (u >>> 17 | u << 15) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n\n u = this.temp[i - 15];\n const t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (t2_1 + this.temp[i - 16] | 0);\n }\n const t1 = (((((state4 >>> 6 | state4 << 26) ^\n (state4 >>> 11 | state4 << 21) ^\n (state4 >>> 25 | state4 << 7)) +\n ((state4 & state5) ^ (~state4 & state6))) | 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n const t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n};\n","import { Buffer } from 'buffer';\nimport { isEmptyData, convertToBuffer } from './browserHashUtils';\n\nconst BLOCK_SIZE = 64;\nconst DIGEST_LENGTH = 20;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nexport default Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function(data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (isEmptyData(data)) {\n return this;\n }\n\n data = convertToBuffer(data);\n\n const length = data.length;\n\n this.totalLength += length * 8;\n for (let i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xFF) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) {\n this.processBlock();\n }\n};\n\nSha1.prototype.digest = function(encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xFFFFFFFFFF ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xFFFFFFFF ? this.totalLength / 0x100000000 : 0x00);\n for (let s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n // eslint-disable-next-line node/no-deprecated-api\n const out = new Buffer(DIGEST_LENGTH);\n const outView = new DataView(out.buffer);\n\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (let i = 16; i < 80; i++) {\n const w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n let a = this.h0;\n let b = this.h1;\n let c = this.h2;\n let d = this.h3;\n let e = this.h4;\n let f, k;\n\n // Main loop:\n for (let i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n } else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n } else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n } else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n const temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i] | 0);\n\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (let i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","/* eslint-disable node/no-deprecated-api */\nimport { Buffer } from 'buffer';\nimport Md5 from './browserMd5';\nimport Sha256 from './browserSha256';\nimport Sha1 from './browserSha1';\n\n// lib/util.js\nconst NORMAL = 'normal';\nconst URL = 'url';\n\nexport function base64Encode(string, alphabet = NORMAL) {\n let buf;\n\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n\n if ( typeof Buffer.from === 'function' && Buffer.from !== Uint8Array.from ) {\n buf = Buffer.from(string);\n } else {\n buf = new Buffer(string);\n }\n if (alphabet === URL) {\n const m = {\n '+': '-',\n '/': '_',\n };\n\n return buf.toString('base64').replace(/[+/]|=+$/g, (char) => m[char] || '');\n }\n\n return buf.toString('base64');\n}\n\nexport function base64DecodeToBuffer(string) {\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n\n if ( typeof Buffer.from === 'function' && Buffer.from !== Uint8Array.from ) {\n return Buffer.from(string, 'base64');\n } else {\n return new Buffer(string, 'base64');\n }\n}\n\nexport function base64Decode(string) {\n return !string ? string : base64DecodeToBuffer(string.replace(/[-_]/g, (char) => char === '-' ? '+' : '/')).toString();\n}\n\nexport function md5(data, digest, callback) {\n return hash('md5', data, digest, callback);\n}\n\nexport function sha256(data, digest, callback) {\n return hash('sha256', data, digest, callback);\n}\n\nexport function binarySize(val) {\n const size = `${ val }`.length;\n\n // It is base64 encoded, so adjust size\n let realSize = (3 * size / 4) ;\n\n // Might be one or two padding characters\n if (val.length > 0 && val[val.length - 1] === '=') {\n realSize--;\n if (val.length > 1 && val[val.length - 2] === '=') {\n realSize--;\n }\n }\n\n return realSize;\n}\n\n// *****************************\n// Below here be dragons\n// *****************************\n\nfunction hash(algorithm, data, digest, callback) {\n const hash = createHash(algorithm);\n\n if ( !digest ) {\n digest = 'binary';\n }\n\n if ( digest === 'buffer' ) {\n digest = undefined;\n }\n\n if ( typeof data === 'string' ) {\n data = new Buffer(data);\n }\n\n const sliceFn = arraySliceFn(data);\n let isBuffer = Buffer.isBuffer(data);\n\n // Identifying objects with an ArrayBuffer as buffers\n if ( typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) {\n isBuffer = true;\n }\n\n if ( callback && typeof data === 'object' && typeof data.on === 'function' && !isBuffer ) {\n data.on('data', (chunk) => {\n hash.update(chunk);\n });\n\n data.on('error', (err) => {\n callback(err);\n });\n\n data.on('end', () => {\n callback(null, hash.digest(digest));\n });\n } else if (callback && sliceFn && !isBuffer && typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n let index = 0; const size = 1024 * 512;\n const reader = new FileReader();\n\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n\n reader.onload = function() {\n const buf = new Buffer(new Uint8Array(reader.result));\n\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n\n return;\n }\n\n let back = index + size;\n\n if (back > data.size) {\n back = data.size;\n }\n\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if ( typeof data === 'object' && !isBuffer ) {\n data = new Buffer(new Uint8Array(data));\n }\n\n const out = hash.update(data).digest(digest);\n\n if (callback) {\n callback(null, out);\n }\n\n return out;\n }\n}\n\nfunction createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error(`Hash algorithm ${ alg } is not supported`);\n}\n\nfunction arraySliceFn(obj) {\n const fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n\n return typeof fn === 'function' ? fn : null;\n}\n","import JSZip from 'jszip';\n\nexport async function downloadFile(fileName, content, contentType = 'text/plain;charset=utf-8') {\n const blob = new Blob([content], { type: contentType });\n const saveAs = (await import('file-saver')).default;\n\n return saveAs(blob, fileName);\n}\n\n// {[fileName1]:data1, [fileName2]:data2}\nexport function generateZip(files) {\n // Moving this to a dynamic const JSZip = import('jszip') didn't work... figure out later\n const zip = new JSZip();\n\n for ( const fileName in files) {\n zip.file(fileName, files[fileName]);\n }\n\n return zip.generateAsync({ type: 'blob' }).then((contents) => {\n return contents;\n });\n}\n\nexport function downloadUrl(url, id = '__downloadIframe') {\n let iframe = document.getElementById(id);\n\n if ( !iframe ) {\n iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.id = id;\n document.body.appendChild(iframe);\n }\n\n iframe.src = url;\n}\n","import { isArray } from '@shell/utils/array';\n\nexport class ClusterNotFoundError extends Error {\n static NAME = 'ClusterNotFoundError'\n\n constructor(message) {\n super(message);\n this.name = ClusterNotFoundError.NAME;\n }\n}\n\n/**\n * An error occurred and the user should be redirected to a certain location (where this is handled)\n */\nexport class RedirectToError extends Error {\n static NAME = 'RedirectToError'\n\n constructor(message, url) {\n super(message);\n this.url = url;\n this.name = RedirectToError.NAME;\n }\n}\n\nexport class ApiError extends Error {\n constructor(res) {\n super(stringify(res));\n this.status = res._status || 0;\n this.statusText = res._statusText;\n this.headers = res.headers;\n this.url = res._url;\n }\n\n toString() {\n return `[${ this.status } ${ this.statusText }]: ${ this.message }`;\n }\n\n toJSON() {\n return {\n type: 'error',\n status: this.status,\n statusText: this.statusText,\n message: this.statusMessage,\n url: this.url,\n };\n }\n}\n\nexport function stringify(err) {\n let str;\n\n if ( typeof err === 'string' ) {\n str = err;\n } else if ( err && typeof err === 'object' ) {\n if ( err.message ) {\n str = err.message;\n\n if (typeof str === 'string') {\n try {\n const data = JSON.parse(str).data;\n\n if (data) {\n return data;\n }\n } catch {}\n }\n\n if ( err.detail ) {\n if ( str ) {\n str += ` (${ err.detail })`;\n } else {\n str = err.detail;\n }\n }\n } else if ( err.detail ) {\n str = err.detail;\n } else if ( err.url ) {\n str = `from ${ err.url }`;\n }\n }\n\n if (!str) {\n // Good luck...\n str = JSON.stringify(err);\n }\n\n return str;\n}\n\nexport function exceptionToErrorsArray(err) {\n if ( err?.response?.data ) {\n const body = err.response.data;\n\n if ( body && body.message ) {\n return [body.message];\n } else {\n return [err];\n }\n } else if (err.status && err.message) {\n return [err.message];\n } else if ( isArray(err) ) {\n return err;\n } else {\n return [err];\n }\n}\n\n/**\n * Imported from path-to-regexp\n * @param {*} err\n * @returns\n */\nexport const normalizeError = (err) => {\n let message;\n\n if (!(err.message || typeof err === 'string')) {\n try {\n message = JSON.stringify(err, null, 2);\n } catch (e) {\n message = `[${ err.constructor.name }]`;\n }\n } else {\n message = err.message || err;\n }\n\n return {\n ...err,\n message,\n statusCode: (err.statusCode || err.status || (err.response && err.response.status) || 500)\n };\n};\n","// Helpers for determining if V2 or v1 Monitoring are installed\n\nimport { SCHEMA, MONITORING, ENDPOINTS } from '@shell/config/types';\nimport { normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport { findBy } from '@shell/utils/array';\nimport { isEmpty } from '@shell/utils/object';\n\n// Can be used inside a components' computed property\nexport function monitoringStatus() {\n return {\n monitoringStatus() {\n const status = { v2: haveV2Monitoring(this.$store.getters) };\n\n status.installed = status.v1 || status.v2;\n\n return status;\n }\n };\n}\n\nexport function haveV2Monitoring(getters) {\n const inStore = getters['getStoreNameByProductId'];\n\n // Just check for the pod monitors CRD\n const schemas = getters[`${ inStore }/all`](SCHEMA);\n const exists = findBy(schemas, 'id', normalizeType(MONITORING.PODMONITOR));\n\n return !!exists;\n}\n\nexport const CATTLE_MONITORING_NAMESPACE = 'cattle-monitoring-system';\n\nasync function hasEndpointSubsets(store, id) {\n if (store.getters['cluster/schemaFor'](ENDPOINTS)) {\n const endpoints = await store.dispatch('cluster/findAll', { type: ENDPOINTS }) || [];\n\n const endpoint = endpoints.find((ep) => ep.id === id);\n\n return endpoint && !isEmpty(endpoint) && !isEmpty(endpoint.subsets);\n }\n\n return false;\n}\n\nexport async function canViewGrafanaLink(store) {\n return await hasEndpointSubsets(store, `${ CATTLE_MONITORING_NAMESPACE }/rancher-monitoring-grafana`);\n}\n\nexport async function canViewAlertManagerLink(store) {\n return await hasEndpointSubsets(store, `${ CATTLE_MONITORING_NAMESPACE }/rancher-monitoring-alertmanager`);\n}\n\nexport async function canViewPrometheusLink(store) {\n return await hasEndpointSubsets(store, `${ CATTLE_MONITORING_NAMESPACE }/rancher-monitoring-prometheus`);\n}\n\n// Other ways we check for monitoring:\n\n// (1) Using counts (requires RBAC permissions)\n// return !!this.clusterCounts?.[0]?.counts?.[CATALOG.APP]?.namespaces?.['cattle-monitoring-system'];\n\n// (2) Retrieving all workloads and looking for containers with a given image\n// See chart/monitoring/index.vue\n","export const NAMESPACE_FILTER_ALL_PREFIX = 'all';\nexport const NAMESPACE_FILTER_NS_PREFIX = 'ns';\nexport const NAMESPACE_FILTER_P_PREFIX = 'project';\n\nexport const NAMESPACE_FILTER_NS_FULL_PREFIX = `${ NAMESPACE_FILTER_NS_PREFIX }://`;\nexport const NAMESPACE_FILTER_P_FULL_PREFIX = `${ NAMESPACE_FILTER_P_PREFIX }://`;\n\nexport const NAMESPACE_FILTER_ALL = NAMESPACE_FILTER_ALL_PREFIX;\nexport const NAMESPACE_FILTER_ALL_SYSTEM = `${ NAMESPACE_FILTER_ALL_PREFIX }://system`;\nexport const NAMESPACE_FILTER_ALL_USER = `${ NAMESPACE_FILTER_ALL_PREFIX }://user`;\nexport const NAMESPACE_FILTER_ALL_ORPHANS = `${ NAMESPACE_FILTER_ALL_PREFIX }://orphans`;\nexport const NAMESPACE_FILTER_NAMESPACED_PREFIX = 'namespaced://';\nexport const NAMESPACE_FILTER_NAMESPACED_YES = 'namespaced://true';\nexport const NAMESPACE_FILTER_NAMESPACED_NO = 'namespaced://false';\n\nexport const NAMESPACE_FILTER_KINDS = {\n DIVIDER: 'divider',\n PROJECT: 'project',\n NAMESPACE: 'namespace',\n SPECIAL: 'special'\n};\n\nconst SEPARATOR = '__%%__';\n\nexport const createNamespaceFilterKey = (clusterId, product) => {\n if (!product?.customNamespaceFilter) {\n return clusterId;\n }\n\n return createNamespaceFilterKeyWithId(clusterId, product.name);\n};\nexport const createNamespaceFilterKeyWithId = (clusterId, productId) => {\n return `${ clusterId }${ SEPARATOR }${ productId }`;\n};\n\nexport const splitNamespaceFilterKey = (key) => {\n const [clusterId, productId] = key.split(SEPARATOR);\n\n return {\n clusterId,\n productId\n };\n};\n","/**\n * @implements {IHooks}\n */\nclass Hooks {\n /**\n * @callback HookCallback\n * @this {*|Jsep} this\n * @param {Jsep} env\n * @returns: void\n */\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string|object} name The name of the hook, or an object of callbacks keyed by name\n * @param {HookCallback|boolean} callback The callback function which is given environment variables.\n * @param {?boolean} [first=false] Will add the hook to the top of the list (defaults to the bottom)\n * @public\n */\n add(name, callback, first) {\n if (typeof arguments[0] != 'string') {\n // Multiple hook callbacks, keyed by name\n for (let name in arguments[0]) {\n this.add(name, arguments[0][name], arguments[1]);\n }\n } else {\n (Array.isArray(name) ? name : [name]).forEach(function (name) {\n this[name] = this[name] || [];\n if (callback) {\n this[name][first ? 'unshift' : 'push'](callback);\n }\n }, this);\n }\n }\n\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run(name, env) {\n this[name] = this[name] || [];\n this[name].forEach(function (callback) {\n callback.call(env && env.context ? env.context : env, env);\n });\n }\n}\n\n/**\n * @implements {IPlugins}\n */\nclass Plugins {\n constructor(jsep) {\n this.jsep = jsep;\n this.registered = {};\n }\n\n /**\n * @callback PluginSetup\n * @this {Jsep} jsep\n * @returns: void\n */\n /**\n * Adds the given plugin(s) to the registry\n *\n * @param {object} plugins\n * @param {string} plugins.name The name of the plugin\n * @param {PluginSetup} plugins.init The init function\n * @public\n */\n register() {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n plugins.forEach(plugin => {\n if (typeof plugin !== 'object' || !plugin.name || !plugin.init) {\n throw new Error('Invalid JSEP plugin format');\n }\n if (this.registered[plugin.name]) {\n // already registered. Ignore.\n return;\n }\n plugin.init(this.jsep);\n this.registered[plugin.name] = plugin;\n });\n }\n}\n\n// JavaScript Expression Parser (JSEP) 1.3.9\n\nclass Jsep {\n /**\n * @returns {string}\n */\n static get version() {\n // To be filled in by the template\n return '1.3.9';\n }\n\n /**\n * @returns {string}\n */\n static toString() {\n return 'JavaScript Expression Parser (JSEP) v' + Jsep.version;\n }\n // ==================== CONFIG ================================\n /**\n * @method addUnaryOp\n * @param {string} op_name The name of the unary op to add\n * @returns {Jsep}\n */\n static addUnaryOp(op_name) {\n Jsep.max_unop_len = Math.max(op_name.length, Jsep.max_unop_len);\n Jsep.unary_ops[op_name] = 1;\n return Jsep;\n }\n\n /**\n * @method jsep.addBinaryOp\n * @param {string} op_name The name of the binary op to add\n * @param {number} precedence The precedence of the binary op (can be a float). Higher number = higher precedence\n * @param {boolean} [isRightAssociative=false] whether operator is right-associative\n * @returns {Jsep}\n */\n static addBinaryOp(op_name, precedence, isRightAssociative) {\n Jsep.max_binop_len = Math.max(op_name.length, Jsep.max_binop_len);\n Jsep.binary_ops[op_name] = precedence;\n if (isRightAssociative) {\n Jsep.right_associative.add(op_name);\n } else {\n Jsep.right_associative.delete(op_name);\n }\n return Jsep;\n }\n\n /**\n * @method addIdentifierChar\n * @param {string} char The additional character to treat as a valid part of an identifier\n * @returns {Jsep}\n */\n static addIdentifierChar(char) {\n Jsep.additional_identifier_chars.add(char);\n return Jsep;\n }\n\n /**\n * @method addLiteral\n * @param {string} literal_name The name of the literal to add\n * @param {*} literal_value The value of the literal\n * @returns {Jsep}\n */\n static addLiteral(literal_name, literal_value) {\n Jsep.literals[literal_name] = literal_value;\n return Jsep;\n }\n\n /**\n * @method removeUnaryOp\n * @param {string} op_name The name of the unary op to remove\n * @returns {Jsep}\n */\n static removeUnaryOp(op_name) {\n delete Jsep.unary_ops[op_name];\n if (op_name.length === Jsep.max_unop_len) {\n Jsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);\n }\n return Jsep;\n }\n\n /**\n * @method removeAllUnaryOps\n * @returns {Jsep}\n */\n static removeAllUnaryOps() {\n Jsep.unary_ops = {};\n Jsep.max_unop_len = 0;\n return Jsep;\n }\n\n /**\n * @method removeIdentifierChar\n * @param {string} char The additional character to stop treating as a valid part of an identifier\n * @returns {Jsep}\n */\n static removeIdentifierChar(char) {\n Jsep.additional_identifier_chars.delete(char);\n return Jsep;\n }\n\n /**\n * @method removeBinaryOp\n * @param {string} op_name The name of the binary op to remove\n * @returns {Jsep}\n */\n static removeBinaryOp(op_name) {\n delete Jsep.binary_ops[op_name];\n if (op_name.length === Jsep.max_binop_len) {\n Jsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);\n }\n Jsep.right_associative.delete(op_name);\n return Jsep;\n }\n\n /**\n * @method removeAllBinaryOps\n * @returns {Jsep}\n */\n static removeAllBinaryOps() {\n Jsep.binary_ops = {};\n Jsep.max_binop_len = 0;\n return Jsep;\n }\n\n /**\n * @method removeLiteral\n * @param {string} literal_name The name of the literal to remove\n * @returns {Jsep}\n */\n static removeLiteral(literal_name) {\n delete Jsep.literals[literal_name];\n return Jsep;\n }\n\n /**\n * @method removeAllLiterals\n * @returns {Jsep}\n */\n static removeAllLiterals() {\n Jsep.literals = {};\n return Jsep;\n }\n // ==================== END CONFIG ============================\n\n /**\n * @returns {string}\n */\n get char() {\n return this.expr.charAt(this.index);\n }\n\n /**\n * @returns {number}\n */\n get code() {\n return this.expr.charCodeAt(this.index);\n }\n /**\n * @param {string} expr a string with the passed in express\n * @returns Jsep\n */\n constructor(expr) {\n // `index` stores the character number we are currently at\n // All of the gobbles below will modify `index` as we move along\n this.expr = expr;\n this.index = 0;\n }\n\n /**\n * static top-level parser\n * @returns {jsep.Expression}\n */\n static parse(expr) {\n return new Jsep(expr).parse();\n }\n\n /**\n * Get the longest key length of any object\n * @param {object} obj\n * @returns {number}\n */\n static getMaxKeyLen(obj) {\n return Math.max(0, ...Object.keys(obj).map(k => k.length));\n }\n\n /**\n * `ch` is a character code in the next three functions\n * @param {number} ch\n * @returns {boolean}\n */\n static isDecimalDigit(ch) {\n return ch >= 48 && ch <= 57; // 0...9\n }\n\n /**\n * Returns the precedence of a binary operator or `0` if it isn't a binary operator. Can be float.\n * @param {string} op_val\n * @returns {number}\n */\n static binaryPrecedence(op_val) {\n return Jsep.binary_ops[op_val] || 0;\n }\n\n /**\n * Looks for start of identifier\n * @param {number} ch\n * @returns {boolean}\n */\n static isIdentifierStart(ch) {\n return ch >= 65 && ch <= 90 ||\n // A...Z\n ch >= 97 && ch <= 122 ||\n // a...z\n ch >= 128 && !Jsep.binary_ops[String.fromCharCode(ch)] ||\n // any non-ASCII that is not an operator\n Jsep.additional_identifier_chars.has(String.fromCharCode(ch)); // additional characters\n }\n\n /**\n * @param {number} ch\n * @returns {boolean}\n */\n static isIdentifierPart(ch) {\n return Jsep.isIdentifierStart(ch) || Jsep.isDecimalDigit(ch);\n }\n\n /**\n * throw error at index of the expression\n * @param {string} message\n * @throws\n */\n throwError(message) {\n const error = new Error(message + ' at character ' + this.index);\n error.index = this.index;\n error.description = message;\n throw error;\n }\n\n /**\n * Run a given hook\n * @param {string} name\n * @param {jsep.Expression|false} [node]\n * @returns {?jsep.Expression}\n */\n runHook(name, node) {\n if (Jsep.hooks[name]) {\n const env = {\n context: this,\n node\n };\n Jsep.hooks.run(name, env);\n return env.node;\n }\n return node;\n }\n\n /**\n * Runs a given hook until one returns a node\n * @param {string} name\n * @returns {?jsep.Expression}\n */\n searchHook(name) {\n if (Jsep.hooks[name]) {\n const env = {\n context: this\n };\n Jsep.hooks[name].find(function (callback) {\n callback.call(env.context, env);\n return env.node;\n });\n return env.node;\n }\n }\n\n /**\n * Push `index` up to the next non-space character\n */\n gobbleSpaces() {\n let ch = this.code;\n // Whitespace\n while (ch === Jsep.SPACE_CODE || ch === Jsep.TAB_CODE || ch === Jsep.LF_CODE || ch === Jsep.CR_CODE) {\n ch = this.expr.charCodeAt(++this.index);\n }\n this.runHook('gobble-spaces');\n }\n\n /**\n * Top-level method to parse all expressions and returns compound or single node\n * @returns {jsep.Expression}\n */\n parse() {\n this.runHook('before-all');\n const nodes = this.gobbleExpressions();\n\n // If there's only one expression just try returning the expression\n const node = nodes.length === 1 ? nodes[0] : {\n type: Jsep.COMPOUND,\n body: nodes\n };\n return this.runHook('after-all', node);\n }\n\n /**\n * top-level parser (but can be reused within as well)\n * @param {number} [untilICode]\n * @returns {jsep.Expression[]}\n */\n gobbleExpressions(untilICode) {\n let nodes = [],\n ch_i,\n node;\n while (this.index < this.expr.length) {\n ch_i = this.code;\n\n // Expressions can be separated by semicolons, commas, or just inferred without any\n // separators\n if (ch_i === Jsep.SEMCOL_CODE || ch_i === Jsep.COMMA_CODE) {\n this.index++; // ignore separators\n } else {\n // Try to gobble each expression individually\n if (node = this.gobbleExpression()) {\n nodes.push(node);\n // If we weren't able to find a binary expression and are out of room, then\n // the expression passed in probably has too much\n } else if (this.index < this.expr.length) {\n if (ch_i === untilICode) {\n break;\n }\n this.throwError('Unexpected \"' + this.char + '\"');\n }\n }\n }\n return nodes;\n }\n\n /**\n * The main parsing function.\n * @returns {?jsep.Expression}\n */\n gobbleExpression() {\n const node = this.searchHook('gobble-expression') || this.gobbleBinaryExpression();\n this.gobbleSpaces();\n return this.runHook('after-expression', node);\n }\n\n /**\n * Search for the operation portion of the string (e.g. `+`, `===`)\n * Start by taking the longest possible binary operations (3 characters: `===`, `!==`, `>>>`)\n * and move down from 3 to 2 to 1 character until a matching binary operation is found\n * then, return that binary operation\n * @returns {string|boolean}\n */\n gobbleBinaryOp() {\n this.gobbleSpaces();\n let to_check = this.expr.substr(this.index, Jsep.max_binop_len);\n let tc_len = to_check.length;\n while (tc_len > 0) {\n // Don't accept a binary op when it is an identifier.\n // Binary ops that start with a identifier-valid character must be followed\n // by a non identifier-part valid character\n if (Jsep.binary_ops.hasOwnProperty(to_check) && (!Jsep.isIdentifierStart(this.code) || this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))) {\n this.index += tc_len;\n return to_check;\n }\n to_check = to_check.substr(0, --tc_len);\n }\n return false;\n }\n\n /**\n * This function is responsible for gobbling an individual expression,\n * e.g. `1`, `1+2`, `a+(b*2)-Math.sqrt(2)`\n * @returns {?jsep.BinaryExpression}\n */\n gobbleBinaryExpression() {\n let node, biop, prec, stack, biop_info, left, right, i, cur_biop;\n\n // First, try to get the leftmost thing\n // Then, check to see if there's a binary operator operating on that leftmost thing\n // Don't gobbleBinaryOp without a left-hand-side\n left = this.gobbleToken();\n if (!left) {\n return left;\n }\n biop = this.gobbleBinaryOp();\n\n // If there wasn't a binary operator, just return the leftmost node\n if (!biop) {\n return left;\n }\n\n // Otherwise, we need to start a stack to properly place the binary operations in their\n // precedence structure\n biop_info = {\n value: biop,\n prec: Jsep.binaryPrecedence(biop),\n right_a: Jsep.right_associative.has(biop)\n };\n right = this.gobbleToken();\n if (!right) {\n this.throwError(\"Expected expression after \" + biop);\n }\n stack = [left, biop_info, right];\n\n // Properly deal with precedence using [recursive descent](http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm)\n while (biop = this.gobbleBinaryOp()) {\n prec = Jsep.binaryPrecedence(biop);\n if (prec === 0) {\n this.index -= biop.length;\n break;\n }\n biop_info = {\n value: biop,\n prec,\n right_a: Jsep.right_associative.has(biop)\n };\n cur_biop = biop;\n\n // Reduce: make a binary expression from the three topmost entries.\n const comparePrev = prev => biop_info.right_a && prev.right_a ? prec > prev.prec : prec <= prev.prec;\n while (stack.length > 2 && comparePrev(stack[stack.length - 2])) {\n right = stack.pop();\n biop = stack.pop().value;\n left = stack.pop();\n node = {\n type: Jsep.BINARY_EXP,\n operator: biop,\n left,\n right\n };\n stack.push(node);\n }\n node = this.gobbleToken();\n if (!node) {\n this.throwError(\"Expected expression after \" + cur_biop);\n }\n stack.push(biop_info, node);\n }\n i = stack.length - 1;\n node = stack[i];\n while (i > 1) {\n node = {\n type: Jsep.BINARY_EXP,\n operator: stack[i - 1].value,\n left: stack[i - 2],\n right: node\n };\n i -= 2;\n }\n return node;\n }\n\n /**\n * An individual part of a binary expression:\n * e.g. `foo.bar(baz)`, `1`, `\"abc\"`, `(a % 2)` (because it's in parenthesis)\n * @returns {boolean|jsep.Expression}\n */\n gobbleToken() {\n let ch, to_check, tc_len, node;\n this.gobbleSpaces();\n node = this.searchHook('gobble-token');\n if (node) {\n return this.runHook('after-token', node);\n }\n ch = this.code;\n if (Jsep.isDecimalDigit(ch) || ch === Jsep.PERIOD_CODE) {\n // Char code 46 is a dot `.` which can start off a numeric literal\n return this.gobbleNumericLiteral();\n }\n if (ch === Jsep.SQUOTE_CODE || ch === Jsep.DQUOTE_CODE) {\n // Single or double quotes\n node = this.gobbleStringLiteral();\n } else if (ch === Jsep.OBRACK_CODE) {\n node = this.gobbleArray();\n } else {\n to_check = this.expr.substr(this.index, Jsep.max_unop_len);\n tc_len = to_check.length;\n while (tc_len > 0) {\n // Don't accept an unary op when it is an identifier.\n // Unary ops that start with a identifier-valid character must be followed\n // by a non identifier-part valid character\n if (Jsep.unary_ops.hasOwnProperty(to_check) && (!Jsep.isIdentifierStart(this.code) || this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))) {\n this.index += tc_len;\n const argument = this.gobbleToken();\n if (!argument) {\n this.throwError('missing unaryOp argument');\n }\n return this.runHook('after-token', {\n type: Jsep.UNARY_EXP,\n operator: to_check,\n argument,\n prefix: true\n });\n }\n to_check = to_check.substr(0, --tc_len);\n }\n if (Jsep.isIdentifierStart(ch)) {\n node = this.gobbleIdentifier();\n if (Jsep.literals.hasOwnProperty(node.name)) {\n node = {\n type: Jsep.LITERAL,\n value: Jsep.literals[node.name],\n raw: node.name\n };\n } else if (node.name === Jsep.this_str) {\n node = {\n type: Jsep.THIS_EXP\n };\n }\n } else if (ch === Jsep.OPAREN_CODE) {\n // open parenthesis\n node = this.gobbleGroup();\n }\n }\n if (!node) {\n return this.runHook('after-token', false);\n }\n node = this.gobbleTokenProperty(node);\n return this.runHook('after-token', node);\n }\n\n /**\n * Gobble properties of of identifiers/strings/arrays/groups.\n * e.g. `foo`, `bar.baz`, `foo['bar'].baz`\n * It also gobbles function calls:\n * e.g. `Math.acos(obj.angle)`\n * @param {jsep.Expression} node\n * @returns {jsep.Expression}\n */\n gobbleTokenProperty(node) {\n this.gobbleSpaces();\n let ch = this.code;\n while (ch === Jsep.PERIOD_CODE || ch === Jsep.OBRACK_CODE || ch === Jsep.OPAREN_CODE || ch === Jsep.QUMARK_CODE) {\n let optional;\n if (ch === Jsep.QUMARK_CODE) {\n if (this.expr.charCodeAt(this.index + 1) !== Jsep.PERIOD_CODE) {\n break;\n }\n optional = true;\n this.index += 2;\n this.gobbleSpaces();\n ch = this.code;\n }\n this.index++;\n if (ch === Jsep.OBRACK_CODE) {\n node = {\n type: Jsep.MEMBER_EXP,\n computed: true,\n object: node,\n property: this.gobbleExpression()\n };\n if (!node.property) {\n this.throwError('Unexpected \"' + this.char + '\"');\n }\n this.gobbleSpaces();\n ch = this.code;\n if (ch !== Jsep.CBRACK_CODE) {\n this.throwError('Unclosed [');\n }\n this.index++;\n } else if (ch === Jsep.OPAREN_CODE) {\n // A function call is being made; gobble all the arguments\n node = {\n type: Jsep.CALL_EXP,\n 'arguments': this.gobbleArguments(Jsep.CPAREN_CODE),\n callee: node\n };\n } else if (ch === Jsep.PERIOD_CODE || optional) {\n if (optional) {\n this.index--;\n }\n this.gobbleSpaces();\n node = {\n type: Jsep.MEMBER_EXP,\n computed: false,\n object: node,\n property: this.gobbleIdentifier()\n };\n }\n if (optional) {\n node.optional = true;\n } // else leave undefined for compatibility with esprima\n\n this.gobbleSpaces();\n ch = this.code;\n }\n return node;\n }\n\n /**\n * Parse simple numeric literals: `12`, `3.4`, `.5`. Do this by using a string to\n * keep track of everything in the numeric literal and then calling `parseFloat` on that string\n * @returns {jsep.Literal}\n */\n gobbleNumericLiteral() {\n let number = '',\n ch,\n chCode;\n while (Jsep.isDecimalDigit(this.code)) {\n number += this.expr.charAt(this.index++);\n }\n if (this.code === Jsep.PERIOD_CODE) {\n // can start with a decimal marker\n number += this.expr.charAt(this.index++);\n while (Jsep.isDecimalDigit(this.code)) {\n number += this.expr.charAt(this.index++);\n }\n }\n ch = this.char;\n if (ch === 'e' || ch === 'E') {\n // exponent marker\n number += this.expr.charAt(this.index++);\n ch = this.char;\n if (ch === '+' || ch === '-') {\n // exponent sign\n number += this.expr.charAt(this.index++);\n }\n while (Jsep.isDecimalDigit(this.code)) {\n // exponent itself\n number += this.expr.charAt(this.index++);\n }\n if (!Jsep.isDecimalDigit(this.expr.charCodeAt(this.index - 1))) {\n this.throwError('Expected exponent (' + number + this.char + ')');\n }\n }\n chCode = this.code;\n\n // Check to make sure this isn't a variable name that start with a number (123abc)\n if (Jsep.isIdentifierStart(chCode)) {\n this.throwError('Variable names cannot start with a number (' + number + this.char + ')');\n } else if (chCode === Jsep.PERIOD_CODE || number.length === 1 && number.charCodeAt(0) === Jsep.PERIOD_CODE) {\n this.throwError('Unexpected period');\n }\n return {\n type: Jsep.LITERAL,\n value: parseFloat(number),\n raw: number\n };\n }\n\n /**\n * Parses a string literal, staring with single or double quotes with basic support for escape codes\n * e.g. `\"hello world\"`, `'this is\\nJSEP'`\n * @returns {jsep.Literal}\n */\n gobbleStringLiteral() {\n let str = '';\n const startIndex = this.index;\n const quote = this.expr.charAt(this.index++);\n let closed = false;\n while (this.index < this.expr.length) {\n let ch = this.expr.charAt(this.index++);\n if (ch === quote) {\n closed = true;\n break;\n } else if (ch === '\\\\') {\n // Check for all of the common escape codes\n ch = this.expr.charAt(this.index++);\n switch (ch) {\n case 'n':\n str += '\\n';\n break;\n case 'r':\n str += '\\r';\n break;\n case 't':\n str += '\\t';\n break;\n case 'b':\n str += '\\b';\n break;\n case 'f':\n str += '\\f';\n break;\n case 'v':\n str += '\\x0B';\n break;\n default:\n str += ch;\n }\n } else {\n str += ch;\n }\n }\n if (!closed) {\n this.throwError('Unclosed quote after \"' + str + '\"');\n }\n return {\n type: Jsep.LITERAL,\n value: str,\n raw: this.expr.substring(startIndex, this.index)\n };\n }\n\n /**\n * Gobbles only identifiers\n * e.g.: `foo`, `_value`, `$x1`\n * Also, this function checks if that identifier is a literal:\n * (e.g. `true`, `false`, `null`) or `this`\n * @returns {jsep.Identifier}\n */\n gobbleIdentifier() {\n let ch = this.code,\n start = this.index;\n if (Jsep.isIdentifierStart(ch)) {\n this.index++;\n } else {\n this.throwError('Unexpected ' + this.char);\n }\n while (this.index < this.expr.length) {\n ch = this.code;\n if (Jsep.isIdentifierPart(ch)) {\n this.index++;\n } else {\n break;\n }\n }\n return {\n type: Jsep.IDENTIFIER,\n name: this.expr.slice(start, this.index)\n };\n }\n\n /**\n * Gobbles a list of arguments within the context of a function call\n * or array literal. This function also assumes that the opening character\n * `(` or `[` has already been gobbled, and gobbles expressions and commas\n * until the terminator character `)` or `]` is encountered.\n * e.g. `foo(bar, baz)`, `my_func()`, or `[bar, baz]`\n * @param {number} termination\n * @returns {jsep.Expression[]}\n */\n gobbleArguments(termination) {\n const args = [];\n let closed = false;\n let separator_count = 0;\n while (this.index < this.expr.length) {\n this.gobbleSpaces();\n let ch_i = this.code;\n if (ch_i === termination) {\n // done parsing\n closed = true;\n this.index++;\n if (termination === Jsep.CPAREN_CODE && separator_count && separator_count >= args.length) {\n this.throwError('Unexpected token ' + String.fromCharCode(termination));\n }\n break;\n } else if (ch_i === Jsep.COMMA_CODE) {\n // between expressions\n this.index++;\n separator_count++;\n if (separator_count !== args.length) {\n // missing argument\n if (termination === Jsep.CPAREN_CODE) {\n this.throwError('Unexpected token ,');\n } else if (termination === Jsep.CBRACK_CODE) {\n for (let arg = args.length; arg < separator_count; arg++) {\n args.push(null);\n }\n }\n }\n } else if (args.length !== separator_count && separator_count !== 0) {\n // NOTE: `&& separator_count !== 0` allows for either all commas, or all spaces as arguments\n this.throwError('Expected comma');\n } else {\n const node = this.gobbleExpression();\n if (!node || node.type === Jsep.COMPOUND) {\n this.throwError('Expected comma');\n }\n args.push(node);\n }\n }\n if (!closed) {\n this.throwError('Expected ' + String.fromCharCode(termination));\n }\n return args;\n }\n\n /**\n * Responsible for parsing a group of things within parentheses `()`\n * that have no identifier in front (so not a function call)\n * This function assumes that it needs to gobble the opening parenthesis\n * and then tries to gobble everything within that parenthesis, assuming\n * that the next thing it should see is the close parenthesis. If not,\n * then the expression probably doesn't have a `)`\n * @returns {boolean|jsep.Expression}\n */\n gobbleGroup() {\n this.index++;\n let nodes = this.gobbleExpressions(Jsep.CPAREN_CODE);\n if (this.code === Jsep.CPAREN_CODE) {\n this.index++;\n if (nodes.length === 1) {\n return nodes[0];\n } else if (!nodes.length) {\n return false;\n } else {\n return {\n type: Jsep.SEQUENCE_EXP,\n expressions: nodes\n };\n }\n } else {\n this.throwError('Unclosed (');\n }\n }\n\n /**\n * Responsible for parsing Array literals `[1, 2, 3]`\n * This function assumes that it needs to gobble the opening bracket\n * and then tries to gobble the expressions as arguments.\n * @returns {jsep.ArrayExpression}\n */\n gobbleArray() {\n this.index++;\n return {\n type: Jsep.ARRAY_EXP,\n elements: this.gobbleArguments(Jsep.CBRACK_CODE)\n };\n }\n}\n\n// Static fields:\nconst hooks = new Hooks();\nObject.assign(Jsep, {\n hooks,\n plugins: new Plugins(Jsep),\n // Node Types\n // ----------\n // This is the full set of types that any JSEP node can be.\n // Store them here to save space when minified\n COMPOUND: 'Compound',\n SEQUENCE_EXP: 'SequenceExpression',\n IDENTIFIER: 'Identifier',\n MEMBER_EXP: 'MemberExpression',\n LITERAL: 'Literal',\n THIS_EXP: 'ThisExpression',\n CALL_EXP: 'CallExpression',\n UNARY_EXP: 'UnaryExpression',\n BINARY_EXP: 'BinaryExpression',\n ARRAY_EXP: 'ArrayExpression',\n TAB_CODE: 9,\n LF_CODE: 10,\n CR_CODE: 13,\n SPACE_CODE: 32,\n PERIOD_CODE: 46,\n // '.'\n COMMA_CODE: 44,\n // ','\n SQUOTE_CODE: 39,\n // single quote\n DQUOTE_CODE: 34,\n // double quotes\n OPAREN_CODE: 40,\n // (\n CPAREN_CODE: 41,\n // )\n OBRACK_CODE: 91,\n // [\n CBRACK_CODE: 93,\n // ]\n QUMARK_CODE: 63,\n // ?\n SEMCOL_CODE: 59,\n // ;\n COLON_CODE: 58,\n // :\n\n // Operations\n // ----------\n // Use a quickly-accessible map to store all of the unary operators\n // Values are set to `1` (it really doesn't matter)\n unary_ops: {\n '-': 1,\n '!': 1,\n '~': 1,\n '+': 1\n },\n // Also use a map for the binary operations but set their values to their\n // binary precedence for quick reference (higher number = higher precedence)\n // see [Order of operations](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)\n binary_ops: {\n '||': 1,\n '&&': 2,\n '|': 3,\n '^': 4,\n '&': 5,\n '==': 6,\n '!=': 6,\n '===': 6,\n '!==': 6,\n '<': 7,\n '>': 7,\n '<=': 7,\n '>=': 7,\n '<<': 8,\n '>>': 8,\n '>>>': 8,\n '+': 9,\n '-': 9,\n '*': 10,\n '/': 10,\n '%': 10\n },\n // sets specific binary_ops as right-associative\n right_associative: new Set(),\n // Additional valid identifier chars, apart from a-z, A-Z and 0-9 (except on the starting char)\n additional_identifier_chars: new Set(['$', '_']),\n // Literals\n // ----------\n // Store the values to return for the various literals we may encounter\n literals: {\n 'true': true,\n 'false': false,\n 'null': null\n },\n // Except for `this`, which is special. This could be changed to something like `'self'` as well\n this_str: 'this'\n});\nJsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);\nJsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);\n\n// Backward Compatibility:\nconst jsep = expr => new Jsep(expr).parse();\nconst stdClassProps = Object.getOwnPropertyNames(class Test {});\nObject.getOwnPropertyNames(Jsep).filter(prop => !stdClassProps.includes(prop) && jsep[prop] === undefined).forEach(m => {\n jsep[m] = Jsep[m];\n});\njsep.Jsep = Jsep; // allows for const { Jsep } = require('jsep');\n\nconst CONDITIONAL_EXP = 'ConditionalExpression';\nvar ternary = {\n name: 'ternary',\n init(jsep) {\n // Ternary expression: test ? consequent : alternate\n jsep.hooks.add('after-expression', function gobbleTernary(env) {\n if (env.node && this.code === jsep.QUMARK_CODE) {\n this.index++;\n const test = env.node;\n const consequent = this.gobbleExpression();\n if (!consequent) {\n this.throwError('Expected expression');\n }\n this.gobbleSpaces();\n if (this.code === jsep.COLON_CODE) {\n this.index++;\n const alternate = this.gobbleExpression();\n if (!alternate) {\n this.throwError('Expected expression');\n }\n env.node = {\n type: CONDITIONAL_EXP,\n test,\n consequent,\n alternate\n };\n\n // check for operators of higher priority than ternary (i.e. assignment)\n // jsep sets || at 1, and assignment at 0.9, and conditional should be between them\n if (test.operator && jsep.binary_ops[test.operator] <= 0.9) {\n let newTest = test;\n while (newTest.right.operator && jsep.binary_ops[newTest.right.operator] <= 0.9) {\n newTest = newTest.right;\n }\n env.node.test = newTest.right;\n newTest.right = env.node;\n env.node = test;\n }\n } else {\n this.throwError('Expected :');\n }\n }\n });\n }\n};\n\n// Add default plugins:\n\njsep.plugins.register(ternary);\n\nconst FSLASH_CODE = 47; // '/'\nconst BSLASH_CODE = 92; // '\\\\'\n\nvar index = {\n name: 'regex',\n init(jsep) {\n // Regex literal: /abc123/ig\n jsep.hooks.add('gobble-token', function gobbleRegexLiteral(env) {\n if (this.code === FSLASH_CODE) {\n const patternIndex = ++this.index;\n let inCharSet = false;\n while (this.index < this.expr.length) {\n if (this.code === FSLASH_CODE && !inCharSet) {\n const pattern = this.expr.slice(patternIndex, this.index);\n let flags = '';\n while (++this.index < this.expr.length) {\n const code = this.code;\n if (code >= 97 && code <= 122 // a...z\n || code >= 65 && code <= 90 // A...Z\n || code >= 48 && code <= 57) {\n // 0-9\n flags += this.char;\n } else {\n break;\n }\n }\n let value;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n this.throwError(e.message);\n }\n env.node = {\n type: jsep.LITERAL,\n value,\n raw: this.expr.slice(patternIndex - 1, this.index)\n };\n\n // allow . [] and () after regex: /regex/.test(a)\n env.node = this.gobbleTokenProperty(env.node);\n return env.node;\n }\n if (this.code === jsep.OBRACK_CODE) {\n inCharSet = true;\n } else if (inCharSet && this.code === jsep.CBRACK_CODE) {\n inCharSet = false;\n }\n this.index += this.code === BSLASH_CODE ? 2 : 1;\n }\n this.throwError('Unclosed Regex');\n }\n });\n }\n};\n\nconst PLUS_CODE = 43; // +\nconst MINUS_CODE = 45; // -\n\nconst plugin = {\n name: 'assignment',\n assignmentOperators: new Set(['=', '*=', '**=', '/=', '%=', '+=', '-=', '<<=', '>>=', '>>>=', '&=', '^=', '|=']),\n updateOperators: [PLUS_CODE, MINUS_CODE],\n assignmentPrecedence: 0.9,\n init(jsep) {\n const updateNodeTypes = [jsep.IDENTIFIER, jsep.MEMBER_EXP];\n plugin.assignmentOperators.forEach(op => jsep.addBinaryOp(op, plugin.assignmentPrecedence, true));\n jsep.hooks.add('gobble-token', function gobbleUpdatePrefix(env) {\n const code = this.code;\n if (plugin.updateOperators.some(c => c === code && c === this.expr.charCodeAt(this.index + 1))) {\n this.index += 2;\n env.node = {\n type: 'UpdateExpression',\n operator: code === PLUS_CODE ? '++' : '--',\n argument: this.gobbleTokenProperty(this.gobbleIdentifier()),\n prefix: true\n };\n if (!env.node.argument || !updateNodeTypes.includes(env.node.argument.type)) {\n this.throwError(`Unexpected ${env.node.operator}`);\n }\n }\n });\n jsep.hooks.add('after-token', function gobbleUpdatePostfix(env) {\n if (env.node) {\n const code = this.code;\n if (plugin.updateOperators.some(c => c === code && c === this.expr.charCodeAt(this.index + 1))) {\n if (!updateNodeTypes.includes(env.node.type)) {\n this.throwError(`Unexpected ${env.node.operator}`);\n }\n this.index += 2;\n env.node = {\n type: 'UpdateExpression',\n operator: code === PLUS_CODE ? '++' : '--',\n argument: env.node,\n prefix: false\n };\n }\n }\n });\n jsep.hooks.add('after-expression', function gobbleAssignment(env) {\n if (env.node) {\n // Note: Binaries can be chained in a single expression to respect\n // operator precedence (i.e. a = b = 1 + 2 + 3)\n // Update all binary assignment nodes in the tree\n updateBinariesToAssignments(env.node);\n }\n });\n function updateBinariesToAssignments(node) {\n if (plugin.assignmentOperators.has(node.operator)) {\n node.type = 'AssignmentExpression';\n updateBinariesToAssignments(node.left);\n updateBinariesToAssignments(node.right);\n } else if (!node.operator) {\n Object.values(node).forEach(val => {\n if (val && typeof val === 'object') {\n updateBinariesToAssignments(val);\n }\n });\n }\n }\n }\n};\n\n/* eslint-disable no-bitwise -- Convenient */\n\n// register plugins\njsep.plugins.register(index, plugin);\nconst SafeEval = {\n /**\n * @param {jsep.Expression} ast\n * @param {Record<string, any>} subs\n */\n evalAst(ast, subs) {\n switch (ast.type) {\n case 'BinaryExpression':\n case 'LogicalExpression':\n return SafeEval.evalBinaryExpression(ast, subs);\n case 'Compound':\n return SafeEval.evalCompound(ast, subs);\n case 'ConditionalExpression':\n return SafeEval.evalConditionalExpression(ast, subs);\n case 'Identifier':\n return SafeEval.evalIdentifier(ast, subs);\n case 'Literal':\n return SafeEval.evalLiteral(ast, subs);\n case 'MemberExpression':\n return SafeEval.evalMemberExpression(ast, subs);\n case 'UnaryExpression':\n return SafeEval.evalUnaryExpression(ast, subs);\n case 'ArrayExpression':\n return SafeEval.evalArrayExpression(ast, subs);\n case 'CallExpression':\n return SafeEval.evalCallExpression(ast, subs);\n case 'AssignmentExpression':\n return SafeEval.evalAssignmentExpression(ast, subs);\n default:\n throw SyntaxError('Unexpected expression', ast);\n }\n },\n evalBinaryExpression(ast, subs) {\n const result = {\n '||': (a, b) => a || b(),\n '&&': (a, b) => a && b(),\n '|': (a, b) => a | b(),\n '^': (a, b) => a ^ b(),\n '&': (a, b) => a & b(),\n // eslint-disable-next-line eqeqeq -- API\n '==': (a, b) => a == b(),\n // eslint-disable-next-line eqeqeq -- API\n '!=': (a, b) => a != b(),\n '===': (a, b) => a === b(),\n '!==': (a, b) => a !== b(),\n '<': (a, b) => a < b(),\n '>': (a, b) => a > b(),\n '<=': (a, b) => a <= b(),\n '>=': (a, b) => a >= b(),\n '<<': (a, b) => a << b(),\n '>>': (a, b) => a >> b(),\n '>>>': (a, b) => a >>> b(),\n '+': (a, b) => a + b(),\n '-': (a, b) => a - b(),\n '*': (a, b) => a * b(),\n '/': (a, b) => a / b(),\n '%': (a, b) => a % b()\n }[ast.operator](SafeEval.evalAst(ast.left, subs), () => SafeEval.evalAst(ast.right, subs));\n return result;\n },\n evalCompound(ast, subs) {\n let last;\n for (let i = 0; i < ast.body.length; i++) {\n if (ast.body[i].type === 'Identifier' && ['var', 'let', 'const'].includes(ast.body[i].name) && ast.body[i + 1] && ast.body[i + 1].type === 'AssignmentExpression') {\n // var x=2; is detected as\n // [{Identifier var}, {AssignmentExpression x=2}]\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line sonarjs/updated-loop-counter -- Convenient\n i += 1;\n }\n const expr = ast.body[i];\n last = SafeEval.evalAst(expr, subs);\n }\n return last;\n },\n evalConditionalExpression(ast, subs) {\n if (SafeEval.evalAst(ast.test, subs)) {\n return SafeEval.evalAst(ast.consequent, subs);\n }\n return SafeEval.evalAst(ast.alternate, subs);\n },\n evalIdentifier(ast, subs) {\n if (ast.name in subs) {\n return subs[ast.name];\n }\n throw ReferenceError(`${ast.name} is not defined`);\n },\n evalLiteral(ast) {\n return ast.value;\n },\n evalMemberExpression(ast, subs) {\n if (ast.property.type === 'Identifier' && ast.property.name === 'constructor' || ast.object.type === 'Identifier' && ast.object.name === 'constructor') {\n throw new Error(\"'constructor' property is disabled\");\n }\n const prop = ast.computed ? SafeEval.evalAst(ast.property) // `object[property]`\n : ast.property.name; // `object.property` property is Identifier\n const obj = SafeEval.evalAst(ast.object, subs);\n const result = obj[prop];\n if (typeof result === 'function') {\n if (obj === Function && prop === 'bind') {\n throw new Error('Function.prototype.bind is disabled');\n }\n if (obj === Function && (prop === 'call' || prop === 'apply')) {\n throw new Error('Function.prototype.call and ' + 'Function.prototype.apply are disabled');\n }\n if (result === Function) {\n return result; // Don't bind so can identify and throw later\n }\n return result.bind(obj); // arrow functions aren't affected by bind.\n }\n return result;\n },\n evalUnaryExpression(ast, subs) {\n const result = {\n '-': a => -SafeEval.evalAst(a, subs),\n '!': a => !SafeEval.evalAst(a, subs),\n '~': a => ~SafeEval.evalAst(a, subs),\n // eslint-disable-next-line no-implicit-coercion -- API\n '+': a => +SafeEval.evalAst(a, subs)\n }[ast.operator](ast.argument);\n return result;\n },\n evalArrayExpression(ast, subs) {\n return ast.elements.map(el => SafeEval.evalAst(el, subs));\n },\n evalCallExpression(ast, subs) {\n const args = ast.arguments.map(arg => SafeEval.evalAst(arg, subs));\n const func = SafeEval.evalAst(ast.callee, subs);\n if (func === Function) {\n throw new Error('Function constructor is disabled');\n }\n return func(...args);\n },\n evalAssignmentExpression(ast, subs) {\n if (ast.left.type !== 'Identifier') {\n throw SyntaxError('Invalid left-hand side in assignment');\n }\n const id = ast.left.name;\n if (id === '__proto__') {\n throw new Error('Assignment to __proto__ is disabled');\n }\n const value = SafeEval.evalAst(ast.right, subs);\n subs[id] = value;\n return subs[id];\n }\n};\n\n/**\n * A replacement for NodeJS' VM.Script which is also {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | Content Security Policy} friendly.\n */\nclass SafeScript {\n /**\n * @param {string} expr Expression to evaluate\n */\n constructor(expr) {\n this.code = expr;\n this.ast = jsep(this.code);\n }\n\n /**\n * @param {object} context Object whose items will be added\n * to evaluation\n * @returns {EvaluatedResult} Result of evaluated code\n */\n runInNewContext(context) {\n const keyMap = {\n ...context\n };\n return SafeEval.evalAst(this.ast, keyMap);\n }\n}\n\n/* eslint-disable camelcase -- Convenient for escaping */\n\n\n/**\n * @typedef {null|boolean|number|string|object|GenericArray} JSONObject\n */\n\n/**\n * @typedef {any} AnyItem\n */\n\n/**\n * @typedef {any} AnyResult\n */\n\n/**\n * Copies array and then pushes item into it.\n * @param {GenericArray} arr Array to copy and into which to push\n * @param {AnyItem} item Array item to add (to end)\n * @returns {GenericArray} Copy of the original array\n */\nfunction push(arr, item) {\n arr = arr.slice();\n arr.push(item);\n return arr;\n}\n/**\n * Copies array and then unshifts item into it.\n * @param {AnyItem} item Array item to add (to beginning)\n * @param {GenericArray} arr Array to copy and into which to unshift\n * @returns {GenericArray} Copy of the original array\n */\nfunction unshift(item, arr) {\n arr = arr.slice();\n arr.unshift(item);\n return arr;\n}\n\n/**\n * Caught when JSONPath is used without `new` but rethrown if with `new`\n * @extends Error\n */\nclass NewError extends Error {\n /**\n * @param {AnyResult} value The evaluated scalar value\n */\n constructor(value) {\n super('JSONPath should not be called with \"new\" (it prevents return ' + 'of (unwrapped) scalar values)');\n this.avoidNew = true;\n this.value = value;\n this.name = 'NewError';\n }\n}\n\n/**\n* @typedef {object} ReturnObject\n* @property {string} path\n* @property {JSONObject} value\n* @property {object|GenericArray} parent\n* @property {string} parentProperty\n*/\n\n/**\n* @callback JSONPathCallback\n* @param {string|object} preferredOutput\n* @param {\"value\"|\"property\"} type\n* @param {ReturnObject} fullRetObj\n* @returns {void}\n*/\n\n/**\n* @callback OtherTypeCallback\n* @param {JSONObject} val\n* @param {string} path\n* @param {object|GenericArray} parent\n* @param {string} parentPropName\n* @returns {boolean}\n*/\n\n/**\n * @typedef {any} ContextItem\n */\n\n/**\n * @typedef {any} EvaluatedResult\n */\n\n/**\n* @callback EvalCallback\n* @param {string} code\n* @param {ContextItem} context\n* @returns {EvaluatedResult}\n*/\n\n/**\n * @typedef {typeof SafeScript} EvalClass\n */\n\n/**\n * @typedef {object} JSONPathOptions\n * @property {JSON} json\n * @property {string|string[]} path\n * @property {\"value\"|\"path\"|\"pointer\"|\"parent\"|\"parentProperty\"|\n * \"all\"} [resultType=\"value\"]\n * @property {boolean} [flatten=false]\n * @property {boolean} [wrap=true]\n * @property {object} [sandbox={}]\n * @property {EvalCallback|EvalClass|'safe'|'native'|\n * boolean} [eval = 'safe']\n * @property {object|GenericArray|null} [parent=null]\n * @property {string|null} [parentProperty=null]\n * @property {JSONPathCallback} [callback]\n * @property {OtherTypeCallback} [otherTypeCallback] Defaults to\n * function which throws on encountering `@other`\n * @property {boolean} [autostart=true]\n */\n\n/**\n * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`\n * @param {string} [expr] JSON path to evaluate\n * @param {JSON} [obj] JSON object to evaluate against\n * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload\n * per `resultType`, 2) `\"value\"|\"property\"`, 3) Full returned object with\n * all payloads\n * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end\n * of one's query, this will be invoked with the value of the item, its\n * path, its parent, and its parent's property name, and it should return\n * a boolean indicating whether the supplied value belongs to the \"other\"\n * type or not (or it may handle transformations and return `false`).\n * @returns {JSONPath}\n * @class\n */\nfunction JSONPath(opts, expr, obj, callback, otherTypeCallback) {\n // eslint-disable-next-line no-restricted-syntax -- Allow for pseudo-class\n if (!(this instanceof JSONPath)) {\n try {\n return new JSONPath(opts, expr, obj, callback, otherTypeCallback);\n } catch (e) {\n if (!e.avoidNew) {\n throw e;\n }\n return e.value;\n }\n }\n if (typeof opts === 'string') {\n otherTypeCallback = callback;\n callback = obj;\n obj = expr;\n expr = opts;\n opts = null;\n }\n const optObj = opts && typeof opts === 'object';\n opts = opts || {};\n this.json = opts.json || obj;\n this.path = opts.path || expr;\n this.resultType = opts.resultType || 'value';\n this.flatten = opts.flatten || false;\n this.wrap = Object.hasOwn(opts, 'wrap') ? opts.wrap : true;\n this.sandbox = opts.sandbox || {};\n this.eval = opts.eval === undefined ? 'safe' : opts.eval;\n this.ignoreEvalErrors = typeof opts.ignoreEvalErrors === 'undefined' ? false : opts.ignoreEvalErrors;\n this.parent = opts.parent || null;\n this.parentProperty = opts.parentProperty || null;\n this.callback = opts.callback || callback || null;\n this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {\n throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');\n };\n if (opts.autostart !== false) {\n const args = {\n path: optObj ? opts.path : expr\n };\n if (!optObj) {\n args.json = obj;\n } else if ('json' in opts) {\n args.json = opts.json;\n }\n const ret = this.evaluate(args);\n if (!ret || typeof ret !== 'object') {\n throw new NewError(ret);\n }\n return ret;\n }\n}\n\n// PUBLIC METHODS\nJSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {\n let currParent = this.parent,\n currParentProperty = this.parentProperty;\n let {\n flatten,\n wrap\n } = this;\n this.currResultType = this.resultType;\n this.currEval = this.eval;\n this.currSandbox = this.sandbox;\n callback = callback || this.callback;\n this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;\n json = json || this.json;\n expr = expr || this.path;\n if (expr && typeof expr === 'object' && !Array.isArray(expr)) {\n if (!expr.path && expr.path !== '') {\n throw new TypeError('You must supply a \"path\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n if (!Object.hasOwn(expr, 'json')) {\n throw new TypeError('You must supply a \"json\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n ({\n json\n } = expr);\n flatten = Object.hasOwn(expr, 'flatten') ? expr.flatten : flatten;\n this.currResultType = Object.hasOwn(expr, 'resultType') ? expr.resultType : this.currResultType;\n this.currSandbox = Object.hasOwn(expr, 'sandbox') ? expr.sandbox : this.currSandbox;\n wrap = Object.hasOwn(expr, 'wrap') ? expr.wrap : wrap;\n this.currEval = Object.hasOwn(expr, 'eval') ? expr.eval : this.currEval;\n callback = Object.hasOwn(expr, 'callback') ? expr.callback : callback;\n this.currOtherTypeCallback = Object.hasOwn(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;\n currParent = Object.hasOwn(expr, 'parent') ? expr.parent : currParent;\n currParentProperty = Object.hasOwn(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;\n expr = expr.path;\n }\n currParent = currParent || null;\n currParentProperty = currParentProperty || null;\n if (Array.isArray(expr)) {\n expr = JSONPath.toPathString(expr);\n }\n if (!expr && expr !== '' || !json) {\n return undefined;\n }\n const exprList = JSONPath.toPathArray(expr);\n if (exprList[0] === '$' && exprList.length > 1) {\n exprList.shift();\n }\n this._hasParentSelector = null;\n const result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {\n return ea && !ea.isParentSelector;\n });\n if (!result.length) {\n return wrap ? [] : undefined;\n }\n if (!wrap && result.length === 1 && !result[0].hasArrExpr) {\n return this._getPreferredOutput(result[0]);\n }\n return result.reduce((rslt, ea) => {\n const valOrPath = this._getPreferredOutput(ea);\n if (flatten && Array.isArray(valOrPath)) {\n rslt = rslt.concat(valOrPath);\n } else {\n rslt.push(valOrPath);\n }\n return rslt;\n }, []);\n};\n\n// PRIVATE METHODS\n\nJSONPath.prototype._getPreferredOutput = function (ea) {\n const resultType = this.currResultType;\n switch (resultType) {\n case 'all':\n {\n const path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);\n ea.pointer = JSONPath.toPointer(path);\n ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);\n return ea;\n }\n case 'value':\n case 'parent':\n case 'parentProperty':\n return ea[resultType];\n case 'path':\n return JSONPath.toPathString(ea[resultType]);\n case 'pointer':\n return JSONPath.toPointer(ea.path);\n default:\n throw new TypeError('Unknown result type');\n }\n};\nJSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {\n if (callback) {\n const preferredOutput = this._getPreferredOutput(fullRetObj);\n fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path);\n // eslint-disable-next-line n/callback-return -- No need to return\n callback(preferredOutput, type, fullRetObj);\n }\n};\n\n/**\n *\n * @param {string} expr\n * @param {JSONObject} val\n * @param {string} path\n * @param {object|GenericArray} parent\n * @param {string} parentPropName\n * @param {JSONPathCallback} callback\n * @param {boolean} hasArrExpr\n * @param {boolean} literalPriority\n * @returns {ReturnObject|ReturnObject[]}\n */\nJSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {\n // No expr to follow? return path and value as the result of\n // this trace branch\n let retObj;\n if (!expr.length) {\n retObj = {\n path,\n value: val,\n parent,\n parentProperty: parentPropName,\n hasArrExpr\n };\n this._handleCallback(retObj, callback, 'value');\n return retObj;\n }\n const loc = expr[0],\n x = expr.slice(1);\n\n // We need to gather the return value of recursive trace calls in order to\n // do the parent sel computation.\n const ret = [];\n /**\n *\n * @param {ReturnObject|ReturnObject[]} elems\n * @returns {void}\n */\n function addRet(elems) {\n if (Array.isArray(elems)) {\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test:\n // `ret.push(...elems);`\n elems.forEach(t => {\n ret.push(t);\n });\n } else {\n ret.push(elems);\n }\n }\n if ((typeof loc !== 'string' || literalPriority) && val && Object.hasOwn(val, loc)) {\n // simple case--directly follow property\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr));\n // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`\n } else if (loc === '*') {\n // all child properties\n this._walk(val, m => {\n addRet(this._trace(x, val[m], push(path, m), val, m, callback, true, true));\n });\n } else if (loc === '..') {\n // all descendent parent properties\n // Check remaining expression with val's immediate children\n addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));\n this._walk(val, m => {\n // We don't join m and x here because we only want parents,\n // not scalar values\n if (typeof val[m] === 'object') {\n // Keep going with recursive descent on val's\n // object children\n addRet(this._trace(expr.slice(), val[m], push(path, m), val, m, callback, true));\n }\n });\n // The parent sel computation is handled in the frame above using the\n // ancestor object of val\n } else if (loc === '^') {\n // This is not a final endpoint, so we do not invoke the callback here\n this._hasParentSelector = true;\n return {\n path: path.slice(0, -1),\n expr: x,\n isParentSelector: true\n };\n } else if (loc === '~') {\n // property name\n retObj = {\n path: push(path, loc),\n value: parentPropName,\n parent,\n parentProperty: null\n };\n this._handleCallback(retObj, callback, 'property');\n return retObj;\n } else if (loc === '$') {\n // root only\n addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));\n } else if (/^(-?\\d*):(-?\\d*):?(\\d*)$/u.test(loc)) {\n // [start:end:step] Python slice syntax\n addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));\n } else if (loc.indexOf('?(') === 0) {\n // [?(expr)] (filtering)\n if (this.currEval === false) {\n throw new Error('Eval [?(expr)] prevented in JSONPath expression.');\n }\n const safeLoc = loc.replace(/^\\?\\((.*?)\\)$/u, '$1');\n // check for a nested filter expression\n const nested = /@.?([^?]*)[['](\\??\\(.*?\\))(?!.\\)\\])[\\]']/gu.exec(safeLoc);\n if (nested) {\n // find if there are matches in the nested expression\n // add them to the result set if there is at least one match\n this._walk(val, m => {\n const npath = [nested[2]];\n const nvalue = nested[1] ? val[m][nested[1]] : val[m];\n const filterResults = this._trace(npath, nvalue, path, parent, parentPropName, callback, true);\n if (filterResults.length > 0) {\n addRet(this._trace(x, val[m], push(path, m), val, m, callback, true));\n }\n });\n } else {\n this._walk(val, m => {\n if (this._eval(safeLoc, val[m], m, path, parent, parentPropName)) {\n addRet(this._trace(x, val[m], push(path, m), val, m, callback, true));\n }\n });\n }\n } else if (loc[0] === '(') {\n // [(expr)] (dynamic property/index)\n if (this.currEval === false) {\n throw new Error('Eval [(expr)] prevented in JSONPath expression.');\n }\n // As this will resolve to a property name (but we don't know it\n // yet), property and parent information is relative to the\n // parent of the property to which this expression will resolve\n addRet(this._trace(unshift(this._eval(loc, val, path.at(-1), path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));\n } else if (loc[0] === '@') {\n // value type: @boolean(), etc.\n let addType = false;\n const valueType = loc.slice(1, -2);\n switch (valueType) {\n case 'scalar':\n if (!val || !['object', 'function'].includes(typeof val)) {\n addType = true;\n }\n break;\n case 'boolean':\n case 'string':\n case 'undefined':\n case 'function':\n if (typeof val === valueType) {\n addType = true;\n }\n break;\n case 'integer':\n if (Number.isFinite(val) && !(val % 1)) {\n addType = true;\n }\n break;\n case 'number':\n if (Number.isFinite(val)) {\n addType = true;\n }\n break;\n case 'nonFinite':\n if (typeof val === 'number' && !Number.isFinite(val)) {\n addType = true;\n }\n break;\n case 'object':\n if (val && typeof val === valueType) {\n addType = true;\n }\n break;\n case 'array':\n if (Array.isArray(val)) {\n addType = true;\n }\n break;\n case 'other':\n addType = this.currOtherTypeCallback(val, path, parent, parentPropName);\n break;\n case 'null':\n if (val === null) {\n addType = true;\n }\n break;\n /* c8 ignore next 2 */\n default:\n throw new TypeError('Unknown value type ' + valueType);\n }\n if (addType) {\n retObj = {\n path,\n value: val,\n parent,\n parentProperty: parentPropName\n };\n this._handleCallback(retObj, callback, 'value');\n return retObj;\n }\n // `-escaped property\n } else if (loc[0] === '`' && val && Object.hasOwn(val, loc.slice(1))) {\n const locProp = loc.slice(1);\n addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));\n } else if (loc.includes(',')) {\n // [name1,name2,...]\n const parts = loc.split(',');\n for (const part of parts) {\n addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));\n }\n // simple case--directly follow property\n } else if (!literalPriority && val && Object.hasOwn(val, loc)) {\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));\n }\n\n // We check the resulting values for parent selections. For parent\n // selections we discard the value object and continue the trace with the\n // current val object\n if (this._hasParentSelector) {\n for (let t = 0; t < ret.length; t++) {\n const rett = ret[t];\n if (rett && rett.isParentSelector) {\n const tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);\n if (Array.isArray(tmp)) {\n ret[t] = tmp[0];\n const tl = tmp.length;\n for (let tt = 1; tt < tl; tt++) {\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line sonarjs/updated-loop-counter -- Convenient\n t++;\n ret.splice(t, 0, tmp[tt]);\n }\n } else {\n ret[t] = tmp;\n }\n }\n }\n }\n return ret;\n};\nJSONPath.prototype._walk = function (val, f) {\n if (Array.isArray(val)) {\n const n = val.length;\n for (let i = 0; i < n; i++) {\n f(i);\n }\n } else if (val && typeof val === 'object') {\n Object.keys(val).forEach(m => {\n f(m);\n });\n }\n};\nJSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {\n if (!Array.isArray(val)) {\n return undefined;\n }\n const len = val.length,\n parts = loc.split(':'),\n step = parts[2] && Number.parseInt(parts[2]) || 1;\n let start = parts[0] && Number.parseInt(parts[0]) || 0,\n end = parts[1] && Number.parseInt(parts[1]) || len;\n start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);\n end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);\n const ret = [];\n for (let i = start; i < end; i += step) {\n const tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true);\n // Should only be possible to be an array here since first part of\n // ``unshift(i, expr)` passed in above would not be empty, nor `~`,\n // nor begin with `@` (as could return objects)\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test: `ret.push(...tmp);`\n tmp.forEach(t => {\n ret.push(t);\n });\n }\n return ret;\n};\nJSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {\n this.currSandbox._$_parentProperty = parentPropName;\n this.currSandbox._$_parent = parent;\n this.currSandbox._$_property = _vname;\n this.currSandbox._$_root = this.json;\n this.currSandbox._$_v = _v;\n const containsPath = code.includes('@path');\n if (containsPath) {\n this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));\n }\n const scriptCacheKey = this.currEval + 'Script:' + code;\n if (!JSONPath.cache[scriptCacheKey]) {\n let script = code.replaceAll('@parentProperty', '_$_parentProperty').replaceAll('@parent', '_$_parent').replaceAll('@property', '_$_property').replaceAll('@root', '_$_root').replaceAll(/@([.\\s)[])/gu, '_$_v$1');\n if (containsPath) {\n script = script.replaceAll('@path', '_$_path');\n }\n if (this.currEval === 'safe' || this.currEval === true || this.currEval === undefined) {\n JSONPath.cache[scriptCacheKey] = new this.safeVm.Script(script);\n } else if (this.currEval === 'native') {\n JSONPath.cache[scriptCacheKey] = new this.vm.Script(script);\n } else if (typeof this.currEval === 'function' && this.currEval.prototype && Object.hasOwn(this.currEval.prototype, 'runInNewContext')) {\n const CurrEval = this.currEval;\n JSONPath.cache[scriptCacheKey] = new CurrEval(script);\n } else if (typeof this.currEval === 'function') {\n JSONPath.cache[scriptCacheKey] = {\n runInNewContext: context => this.currEval(script, context)\n };\n } else {\n throw new TypeError(`Unknown \"eval\" property \"${this.currEval}\"`);\n }\n }\n try {\n return JSONPath.cache[scriptCacheKey].runInNewContext(this.currSandbox);\n } catch (e) {\n if (this.ignoreEvalErrors) {\n return false;\n }\n throw new Error('jsonPath: ' + e.message + ': ' + code);\n }\n};\n\n// PUBLIC CLASS PROPERTIES AND METHODS\n\n// Could store the cache object itself\nJSONPath.cache = {};\n\n/**\n * @param {string[]} pathArr Array to convert\n * @returns {string} The path string\n */\nJSONPath.toPathString = function (pathArr) {\n const x = pathArr,\n n = x.length;\n let p = '$';\n for (let i = 1; i < n; i++) {\n if (!/^(~|\\^|@.*?\\(\\))$/u.test(x[i])) {\n p += /^[0-9*]+$/u.test(x[i]) ? '[' + x[i] + ']' : \"['\" + x[i] + \"']\";\n }\n }\n return p;\n};\n\n/**\n * @param {string} pointer JSON Path\n * @returns {string} JSON Pointer\n */\nJSONPath.toPointer = function (pointer) {\n const x = pointer,\n n = x.length;\n let p = '';\n for (let i = 1; i < n; i++) {\n if (!/^(~|\\^|@.*?\\(\\))$/u.test(x[i])) {\n p += '/' + x[i].toString().replaceAll('~', '~0').replaceAll('/', '~1');\n }\n }\n return p;\n};\n\n/**\n * @param {string} expr Expression to convert\n * @returns {string[]}\n */\nJSONPath.toPathArray = function (expr) {\n const {\n cache\n } = JSONPath;\n if (cache[expr]) {\n return cache[expr].concat();\n }\n const subx = [];\n const normalized = expr\n // Properties\n .replaceAll(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\\(\\)/gu, ';$&;')\n // Parenthetical evaluations (filtering and otherwise), directly\n // within brackets or single quotes\n .replaceAll(/[['](\\??\\(.*?\\))[\\]'](?!.\\])/gu, function ($0, $1) {\n return '[#' + (subx.push($1) - 1) + ']';\n })\n // Escape periods and tildes within properties\n .replaceAll(/\\[['\"]([^'\\]]*)['\"]\\]/gu, function ($0, prop) {\n return \"['\" + prop.replaceAll('.', '%@%').replaceAll('~', '%%@@%%') + \"']\";\n })\n // Properties operator\n .replaceAll('~', ';~;')\n // Split by property boundaries\n .replaceAll(/['\"]?\\.['\"]?(?![^[]*\\])|\\[['\"]?/gu, ';')\n // Reinsert periods within properties\n .replaceAll('%@%', '.')\n // Reinsert tildes within properties\n .replaceAll('%%@@%%', '~')\n // Parent\n .replaceAll(/(?:;)?(\\^+)(?:;)?/gu, function ($0, ups) {\n return ';' + ups.split('').join(';') + ';';\n })\n // Descendents\n .replaceAll(/;;;|;;/gu, ';..;')\n // Remove trailing\n .replaceAll(/;$|'?\\]|'$/gu, '');\n const exprList = normalized.split(';').map(function (exp) {\n const match = exp.match(/#(\\d+)/u);\n return !match || !match[1] ? exp : subx[match[1]];\n });\n cache[expr] = exprList;\n return cache[expr].concat();\n};\nJSONPath.prototype.safeVm = {\n Script: SafeScript\n};\n\n/**\n * @typedef {any} ContextItem\n */\n\n/**\n * @typedef {any} EvaluatedResult\n */\n\n/**\n * @callback ConditionCallback\n * @param {ContextItem} item\n * @returns {boolean}\n */\n\n/**\n * Copy items out of one array into another.\n * @param {GenericArray} source Array with items to copy\n * @param {GenericArray} target Array to which to copy\n * @param {ConditionCallback} conditionCb Callback passed the current item;\n * will move item if evaluates to `true`\n * @returns {void}\n */\nconst moveToAnotherArray = function (source, target, conditionCb) {\n const il = source.length;\n for (let i = 0; i < il; i++) {\n const item = source[i];\n if (conditionCb(item)) {\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line sonarjs/updated-loop-counter -- Convenient\n target.push(source.splice(i--, 1)[0]);\n }\n }\n};\n\n/**\n * In-browser replacement for NodeJS' VM.Script.\n */\nclass Script {\n /**\n * @param {string} expr Expression to evaluate\n */\n constructor(expr) {\n this.code = expr;\n }\n\n /**\n * @param {object} context Object whose items will be added\n * to evaluation\n * @returns {EvaluatedResult} Result of evaluated code\n */\n runInNewContext(context) {\n let expr = this.code;\n const keys = Object.keys(context);\n const funcs = [];\n moveToAnotherArray(keys, funcs, key => {\n return typeof context[key] === 'function';\n });\n const values = keys.map(vr => {\n return context[vr];\n });\n const funcString = funcs.reduce((s, func) => {\n let fString = context[func].toString();\n if (!/function/u.test(fString)) {\n fString = 'function ' + fString;\n }\n return 'var ' + func + '=' + fString + ';' + s;\n }, '');\n expr = funcString + expr;\n\n // Mitigate http://perfectionkills.com/global-eval-what-are-the-options/#new_function\n if (!/(['\"])use strict\\1/u.test(expr) && !keys.includes('arguments')) {\n expr = 'var arguments = undefined;' + expr;\n }\n\n // Remove last semi so `return` will be inserted before\n // the previous one instead, allowing for the return\n // of a bare ending expression\n expr = expr.replace(/;\\s*$/u, '');\n\n // Insert `return`\n const lastStatementEnd = expr.lastIndexOf(';');\n const code = lastStatementEnd > -1 ? expr.slice(0, lastStatementEnd + 1) + ' return ' + expr.slice(lastStatementEnd + 1) : ' return ' + expr;\n\n // eslint-disable-next-line no-new-func -- User's choice\n return new Function(...keys, code)(...values);\n }\n}\nJSONPath.prototype.vm = {\n Script\n};\n\nexport { JSONPath };\n","import { toRaw } from 'vue';\nimport cloneDeep from 'lodash/cloneDeep';\nimport flattenDeep from 'lodash/flattenDeep';\nimport compact from 'lodash/compact';\nimport { JSONPath } from 'jsonpath-plus';\nimport transform from 'lodash/transform';\nimport isObject from 'lodash/isObject';\nimport isArray from 'lodash/isArray';\nimport isEqual from 'lodash/isEqual';\nimport difference from 'lodash/difference';\nimport mergeWith from 'lodash/mergeWith';\nimport { splitObjectPath, joinObjectPath } from '@shell/utils/string';\nimport { addObject } from '@shell/utils/array';\n\nexport function set(obj, path, value) {\n let ptr = obj;\n\n if (!ptr) {\n return;\n }\n\n const parts = splitObjectPath(path);\n\n for (let i = 0; i < parts.length; i++) {\n const key = parts[i];\n\n if ( i === parts.length - 1 ) {\n ptr[key] = value;\n } else if ( !ptr[key] ) {\n // Make sure parent keys exist\n ptr[key] = {};\n }\n\n ptr = ptr[key];\n }\n\n return obj;\n}\n\nexport function getAllValues(obj, path) {\n const keysInOrder = path.split('.');\n let currentValue = [obj];\n\n keysInOrder.forEach((currentKey) => {\n currentValue = currentValue.map((indexValue) => {\n if (Array.isArray(indexValue)) {\n return indexValue.map((arr) => arr[currentKey]).flat();\n } else if (indexValue) {\n return indexValue[currentKey];\n } else {\n return null;\n }\n }).flat();\n });\n\n return currentValue.filter((val) => val !== null);\n}\n\nexport function get(obj, path) {\n if ( !path) {\n throw new Error('Cannot translate an empty input. The t function requires a string.');\n }\n if ( path.startsWith('$') ) {\n try {\n return JSONPath({\n path,\n json: obj,\n wrap: false,\n });\n } catch (e) {\n console.log('JSON Path error', e, path, obj); // eslint-disable-line no-console\n\n return '(JSON Path err)';\n }\n }\n if ( !path.includes('.') ) {\n return obj?.[path];\n }\n\n const parts = splitObjectPath(path);\n\n for (let i = 0; i < parts.length; i++) {\n if (!obj) {\n return;\n }\n\n obj = obj[parts[i]];\n }\n\n return obj;\n}\n\nexport function remove(obj, path) {\n const parentAry = splitObjectPath(path);\n\n // Remove the very last part of the path\n\n if (parentAry.length === 1) {\n obj[path] = undefined;\n delete obj[path];\n } else {\n const leafKey = parentAry.pop();\n const parent = get(obj, joinObjectPath(parentAry));\n\n if ( parent ) {\n parent[leafKey] = undefined;\n delete parent[leafKey];\n }\n }\n\n return obj;\n}\n\n/**\n * `delete` a property at the given path.\n *\n * This is similar to `remove` but doesn't need any fancy kube obj path splitting\n * and doesn't use `Vue.set` (avoids reactivity)\n */\nexport function deleteProperty(obj, path) {\n const pathAr = path.split('.');\n const propToDelete = pathAr.pop();\n\n // Walk down path until final prop, then delete final prop\n delete pathAr.reduce((o, k) => o[k] || {}, obj)[propToDelete];\n}\n\nexport function getter(path) {\n return function(obj) {\n return get(obj, path);\n };\n}\n\nexport function clone(obj) {\n return cloneDeep(obj);\n}\n\nexport function isEmpty(obj) {\n if ( !obj ) {\n return true;\n }\n\n return !Object.keys(obj).length;\n}\n\n/**\n * Checks to see if the object is a simple key value pair where all values are\n * just primitives.\n * @param {any} obj\n */\nexport function isSimpleKeyValue(obj) {\n return obj !== null &&\n !Array.isArray(obj) &&\n typeof obj === 'object' &&\n Object.values(obj || {}).every((v) => typeof v !== 'object');\n}\n\n/*\nreturns an object with no key/value pairs (including nested) where the value is:\n empty array\n empty object\n null\n undefined\n*/\nexport function cleanUp(obj) {\n Object.keys(obj).map((key) => {\n const val = obj[key];\n\n if ( Array.isArray(val) ) {\n obj[key] = val.map((each) => {\n if (each !== null && each !== undefined) {\n return cleanUp(each);\n }\n });\n if (obj[key].length === 0) {\n delete obj[key];\n }\n } else if (typeof val === 'undefined' || val === null) {\n delete obj[key];\n } else if ( isObject(val) ) {\n if (isEmpty(val)) {\n delete obj[key];\n }\n obj[key] = cleanUp(val);\n }\n });\n\n return obj;\n}\n\nexport function definedKeys(obj) {\n const keys = Object.keys(obj).map((key) => {\n const val = obj[key];\n\n if ( Array.isArray(val) ) {\n return `\"${ key }\"`;\n } else if ( isObject(val) ) {\n // no need for quotes around the subkey since the recursive call will fill that in via one of the other two statements in the if block\n return ( definedKeys(val) || [] ).map((subkey) => `\"${ key }\".${ subkey }`);\n } else {\n return `\"${ key }\"`;\n }\n });\n\n return compact(flattenDeep(keys));\n}\n\nexport function diff(from, to) {\n from = from || {};\n to = to || {};\n\n // Copy values in 'to' that are different than from\n const out = transform(to, (res, toVal, k) => {\n const fromVal = from[k];\n\n if ( isEqual(toVal, fromVal) ) {\n return;\n }\n\n if ( Array.isArray(toVal) || Array.isArray(fromVal) ) {\n // Don't diff arrays, just use the whole value\n res[k] = toVal;\n } else if ( isObject(toVal) && isObject(from[k]) ) {\n res[k] = diff(fromVal, toVal);\n } else {\n res[k] = toVal;\n }\n });\n\n const fromKeys = definedKeys(from);\n const toKeys = definedKeys(to);\n\n // Return keys that are in 'from' but not 'to.'\n const missing = difference(fromKeys, toKeys);\n\n for ( const k of missing ) {\n set(out, k, null);\n }\n\n return out;\n}\n\n/**\n * Super simple lodash isEqual equivalent.\n *\n * Only checks root properties for strict equality\n */\nfunction isEqualBasic(from, to) {\n const fromKeys = Object.keys(from || {});\n const toKeys = Object.keys(to || {});\n\n if (fromKeys.length !== toKeys.length) {\n return false;\n }\n\n for (let i = 0; i < fromKeys.length; i++) {\n const fromValue = from[fromKeys[i]];\n const toValue = to[fromKeys[i]];\n\n if (fromValue !== toValue) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { isEqualBasic as isEqual };\n\nexport function changeset(from, to, parentPath = []) {\n let out = {};\n\n if ( isEqual(from, to) ) {\n return out;\n }\n\n for ( const k in from ) {\n const path = joinObjectPath([...parentPath, k]);\n\n if ( !(k in to) ) {\n out[path] = { op: 'remove', path };\n } else if ( (isObject(from[k]) && isObject(to[k])) || (isArray(from[k]) && isArray(to[k])) ) {\n out = { ...out, ...changeset(from[k], to[k], [...parentPath, k]) };\n } else if ( !isEqual(from[k], to[k]) ) {\n out[path] = {\n op: 'change', from: from[k], value: to[k]\n };\n }\n }\n\n for ( const k in to ) {\n if ( !(k in from) ) {\n const path = joinObjectPath([...parentPath, k]);\n\n out[path] = { op: 'add', value: to[k] };\n }\n }\n\n return out;\n}\n\nexport function changesetConflicts(a, b) {\n let keys = Object.keys(a).sort();\n const out = [];\n const seen = {};\n\n for ( const k of keys ) {\n let ok = true;\n const aa = a[k];\n const bb = b[k];\n\n // If we've seen a change for a parent of this key before (e.g. looking at `spec.replicas` and there's already been a change to `spec`), assume they conflict\n for ( const parentKey of parentKeys(k) ) {\n if ( seen[parentKey] ) {\n ok = false;\n break;\n }\n }\n\n seen[k] = true;\n\n if ( ok && bb ) {\n switch ( `${ aa.op }-${ bb.op }` ) {\n case 'add-add':\n case 'add-change':\n case 'change-add':\n case 'change-change':\n ok = isEqual(aa.value, bb.value);\n break;\n\n case 'add-remove':\n case 'change-remove':\n case 'remove-add':\n case 'remove-change':\n ok = false;\n break;\n\n case 'remove-remove':\n default:\n ok = true;\n break;\n }\n }\n\n if ( !ok ) {\n addObject(out, k);\n }\n }\n\n // Check parent keys going the other way\n keys = Object.keys(b).sort();\n for ( const k of keys ) {\n let ok = true;\n\n for ( const parentKey of parentKeys(k) ) {\n if ( seen[parentKey] ) {\n ok = false;\n break;\n }\n }\n\n seen[k] = true;\n\n if ( !ok ) {\n addObject(out, k);\n }\n }\n\n return out.sort();\n\n function parentKeys(k) {\n const out = [];\n const parts = splitObjectPath(k);\n\n parts.pop();\n\n while ( parts.length ) {\n const path = joinObjectPath(parts);\n\n out.push(path);\n parts.pop();\n }\n\n return out;\n }\n}\n\nexport function applyChangeset(obj, changeset) {\n let entry;\n\n for ( const path in changeset ) {\n entry = changeset[path];\n\n if ( entry.op === 'add' || entry.op === 'change' ) {\n set(obj, path, entry.value);\n } else if ( entry.op === 'remove' ) {\n remove(obj, path);\n } else {\n throw new Error(`Unknown operation:${ entry.op }`);\n }\n }\n\n return obj;\n}\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n */\nexport function pickBy(obj = {}, predicate = (value, key) => false) {\n return Object.entries(obj)\n .reduce((res, [key, value]) => {\n if (predicate(value, key)) {\n res[key] = value;\n }\n\n return res;\n }, {});\n}\n\n/**\n * Convert list to dictionary from a given function\n * @param {*} array\n * @param {*} callback\n * @returns\n */\nexport const toDictionary = (array, callback) => Object.assign(\n {}, ...array.map((item) => ({ [item]: callback(item) }))\n);\n\nexport function dropKeys(obj, keys) {\n if ( !obj ) {\n return;\n }\n\n for ( const k of keys ) {\n delete obj[k];\n }\n}\n\n/**\n * Recursively convert a reactive object to a raw object\n * @param {*} obj\n * @param {*} cache\n * @returns\n */\nexport function deepToRaw(obj, cache = new WeakSet()) {\n if (obj === null || typeof obj !== 'object') {\n // If obj is null or a primitive, return it as is\n return obj;\n }\n\n // If the object has already been processed, return it to prevent circular references\n if (cache.has(obj)) {\n return obj;\n }\n cache.add(obj);\n\n if (Array.isArray(obj)) {\n return obj.map((item) => deepToRaw(item, cache));\n } else {\n const rawObj = toRaw(obj);\n const result = {};\n\n for (const key in rawObj) {\n if (typeof rawObj[key] === 'function' || typeof rawObj[key] === 'symbol') {\n result[key] = null;\n } else {\n result[key] = deepToRaw(rawObj[key], cache);\n }\n }\n\n return result;\n }\n}\n\n/**\n * Helper function to alter Lodash merge function default behaviour on merging arrays while updating machine pool configuration.\n *\n * In rke2.vue, the syncMachineConfigWithLatest function updates machine pool configuration by\n * merging the latest configuration received from the backend with the current configuration updated by the user.\n * However, Lodash's merge function treats arrays like object so index values are merged and not appended to arrays\n * resulting in undesired outcomes for us, Example:\n *\n * const lastSavedConfigFromBE = { a: [\"test\"] };\n * const currentConfigByUser = { a: [] };\n * merge(lastSavedConfigFromBE, currentConfigByUser); // returns { a: [\"test\"] }; but we expect { a: [] };\n *\n * More info: https://github.com/lodash/lodash/issues/1313\n *\n * This helper function addresses the issue by always replacing the old array with the new array during the merge process.\n *\n * This helper is used for another case in rke2.vue to handle merging addon chart default values with the user's current values.\n * It fixed https://github.com/rancher/dashboard/issues/12418\n */\nexport function mergeWithReplaceArrays(obj1 = {}, obj2 = {}) {\n return mergeWith(obj1, obj2, (obj1Value, obj2Value) => {\n if (Array.isArray(obj1Value) && Array.isArray(obj2Value)) {\n return obj2Value;\n }\n });\n}\n","export const platform = ( typeof window === 'undefined' ? 'server' : window.navigator.platform.toLowerCase() );\nexport const userAgent = ( typeof window === 'undefined' ? 'server' : window.navigator.userAgent );\n\nexport const isLinuxy = platform.includes('linux') || platform.includes('unix');\nexport const isMac = platform.includes('mac');\nexport const isWin = platform.includes('win');\n\nexport const alternateKey = (isMac ? 'metaKey' : 'ctrlKey');\nexport const alternateLabel = (isMac ? 'Command' : 'Control');\n\nexport const moreKey = alternateKey;\nexport const moreLabel = alternateLabel;\n\nexport const rangeKey = 'shiftKey';\nexport const rangeLabel = 'Shift';\n\nexport function isAlternate(event) {\n return !!event[alternateKey];\n}\n\nexport function isMore(event) {\n return !!event[moreKey];\n}\n\nexport function isRange(event) {\n return !!event[rangeKey];\n}\n\nexport function suppressContextMenu(event) {\n return event.ctrlKey && event.button === 2;\n}\n\n// Only intended to work for Mobile Safari at the moment...\nexport function version() {\n const match = userAgent.match(/\\s+Version\\/([0-9.]+)/);\n\n if ( match ) {\n return parseFloat(match[1]);\n }\n\n return null;\n}\n\nexport const isGecko = userAgent.includes('Gecko/');\nexport const isBlink = userAgent.includes('Chrome/');\nexport const isWebKit = !isBlink && userAgent.includes('AppleWebKit/');\nexport const isSafari = !isBlink && userAgent.includes('Safari/');\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|IEMobile/i.test(userAgent);\n\nexport const KEY = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n ESCAPE: 27,\n CR: 13,\n LF: 10,\n TAB: 9,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n HOME: 35,\n END: 36,\n};\n","// @TODO replace this with popper.js...\n\nexport const LEFT = 'left';\nexport const RIGHT = 'right';\nexport const TOP = 'top';\nexport const CENTER = 'center'; // These are both the same externally so you can use either,\nexport const MIDDLE = 'center'; // but have different meaning inside this file (center->left/right, middle->top/bottom)\nexport const BOTTOM = 'bottom';\nexport const AUTO = 'auto';\n\nexport function boundingRect(elem) {\n const pos = elem.getBoundingClientRect();\n const width = elem.offsetWidth;\n const height = elem.offsetHeight;\n\n return {\n top: pos.top,\n right: pos.left + width,\n bottom: pos.top + height,\n left: pos.left,\n width,\n height,\n };\n}\n\nexport function fakeRectFor(event) {\n return {\n top: event.clientY,\n left: event.clientX,\n bottom: event.clientY,\n right: event.clientX,\n width: 0,\n height: 0,\n };\n}\n\nexport function screenRect() {\n const width = window.innerWidth;\n const height = window.innerHeight;\n const top = window.pageYOffset;\n const left = window.pageXOffset;\n\n return {\n top,\n right: left + width,\n bottom: top + height,\n left,\n width,\n height,\n };\n}\n\nexport function fitOnScreen(contentElem, triggerElemOrEvent, opt, useDefaults) {\n let {\n positionX = AUTO, // Preferred horizontal position\n positionY = AUTO, // Preferred vertical position\n } = opt || {};\n\n const {\n fudgeX = 0,\n fudgeY = 0,\n overlapX = true, // Position on \"top\" of the trigger horizontally\n overlapY = false, // Position on \"top\" of the trigger vertically\n } = opt || {};\n\n const screen = screenRect();\n let trigger;\n\n if ( triggerElemOrEvent instanceof Event ) {\n trigger = fakeRectFor(triggerElemOrEvent);\n } else {\n trigger = boundingRect(triggerElemOrEvent);\n }\n\n let content = {};\n\n if (contentElem) {\n content = boundingRect(contentElem);\n }\n\n if (useDefaults) {\n content = {\n top: 0,\n right: 147,\n bottom: 163,\n left: 0,\n width: 147,\n height: 80\n };\n }\n\n // console.log('screen', screen);\n // console.log('trigger', trigger);\n // console.log('content', content);\n\n const style = { position: 'absolute' };\n\n const originFor = {\n left: (overlapX ? trigger.left : trigger.right ),\n center: (trigger.left + trigger.right ) / 2,\n right: (overlapX ? trigger.right : trigger.left ),\n top: (overlapY ? trigger.bottom : trigger.top ),\n middle: (trigger.top + trigger.bottom ) / 2,\n bottom: (overlapY ? trigger.top : trigger.bottom ),\n };\n\n // console.log('origin', originFor);\n\n const gapIf = {\n left: screen.right - content.width - originFor.left,\n center: Math.min(screen.right - (content.width / 2) - originFor.center, originFor.center - (content.width / 2) - screen.left),\n right: originFor.right - content.width - screen.left,\n top: originFor.bottom - content.height - screen.top,\n middle: Math.min(originFor.middle - (content.height / 2) - screen.top, screen.bottom - (content.height / 2) - originFor.middle),\n bottom: screen.bottom - content.height - originFor.top,\n };\n\n // console.log('gapIf', gapIf);\n\n if ( positionX === CENTER && gapIf.center < 0) {\n positionX = AUTO;\n }\n\n if ( positionX === AUTO ) {\n positionX = gapIf.left < 0 || gapIf.right * 1.5 > gapIf.left ? RIGHT : LEFT;\n } else if ( positionY === LEFT && gapIf.left < 0 ) {\n positionX = RIGHT;\n } else if ( positionY === RIGHT && gapIf.right < 0 ) {\n positionX = LEFT;\n }\n\n switch ( positionX ) {\n case LEFT:\n style.left = `${ originFor.left - fudgeX }px`;\n break;\n case CENTER:\n style.left = `${ ((originFor.left + originFor.right) / 2) - (content.width / 2) - fudgeX }px`;\n break;\n case RIGHT:\n style.left = `${ originFor.right + fudgeX - content.width }px`;\n // style.right = `${ screen.width - originFor.right - fudgeX }px`;\n break;\n }\n\n if ( positionY === MIDDLE && gapIf.middle < 0) {\n positionY = AUTO;\n }\n\n if ( positionY === AUTO ) {\n positionY = gapIf.top < 0 || gapIf.bottom * 1.5 > gapIf.top ? BOTTOM : TOP;\n } else if ( positionY === TOP && gapIf.top < 0 ) {\n positionY = BOTTOM;\n } else if ( positionY === BOTTOM && gapIf.bottom < 0 ) {\n positionY = TOP;\n }\n\n switch ( positionY ) {\n case TOP:\n style.top = `${ originFor.top + fudgeY - content.height }px`;\n break;\n case CENTER:\n style.top = `${ ((originFor.top + originFor.bottom) / 2) + fudgeY - content.height }px`;\n break;\n case BOTTOM:\n style.top = `${ originFor.bottom - fudgeY }px`;\n break;\n }\n\n // console.log(positionX, positionY, style);\n\n return style;\n}\n","/*\nQueue.js\nA function to represent a queue\n\nCreated by Stephen Morley - http://code.stephenmorley.org/ - and released under\nthe terms of the CC0 1.0 Universal legal code:\n\nhttp://creativecommons.org/publicdomain/zero/1.0/legalcode\n*/\n\n/* Creates a new queue. A queue is a first-in-first-out (FIFO) data structure -\n * items are added to the end of the queue and removed from the front.\n */\nexport default function Queue() {\n // initialise the queue and offset\n this.queue = [];\n this.offset = 0;\n\n // Returns the length of the queue.\n this.getLength = function() {\n return (this.queue.length - this.offset);\n };\n\n // Returns true if the queue is empty, and false otherwise.\n this.isEmpty = function() {\n return (this.queue.length === 0);\n };\n\n /* Enqueues the specified item. The parameter is:\n *\n * item - the item to enqueue\n */\n this.enqueue = function(item) {\n this.queue.push(item);\n };\n\n /* Dequeues an item and returns it. If the queue is empty, the value\n * 'undefined' is returned.\n */\n this.dequeue = function() {\n // if the queue is empty, return immediately\n if (this.queue.length === 0) {\n return undefined;\n }\n\n // store the item at the front of the queue\n const item = this.queue[this.offset];\n\n // increment the offset and remove the free space if necessary\n if (++this.offset * 2 >= this.queue.length) {\n this.queue = this.queue.slice(this.offset);\n this.offset = 0;\n }\n\n // return the dequeued item\n return item;\n };\n\n /* Returns the item at the front of the queue (without dequeuing it). If the\n * queue is empty then undefined is returned.\n */\n this.peek = function() {\n return (this.queue.length > 0 ? this.queue[this.offset] : undefined);\n };\n\n this.clear = function() {\n this.offset = 0;\n this.queue.length = 0;\n };\n}\n","import Queue from './queue';\n\nasync function _hash(hash, fnName) {\n const keys = Object.keys(hash);\n const promises = Object.values(hash);\n\n const res = await Promise[fnName](promises);\n const out = {};\n\n for ( let i = 0 ; i < keys.length ; i++ ) {\n out[keys[i]] = res[i];\n }\n\n return out;\n}\n\nexport function allHash(hash) {\n return _hash(hash, 'all');\n}\n\nexport function allHashSettled(hash) {\n return _hash(hash, 'allSettled');\n}\n\nexport function eachLimit(items, limit, iterator, debug = false) {\n if (debug) {\n console.log('eachLimit of', items.length, ' items', limit, 'at a time'); // eslint-disable-line no-console\n }\n\n return new Promise((resolve, reject) => {\n const queue = new Queue();\n let pending = 0;\n let failed = false;\n const out = [];\n\n for (let i = 0; i < items.length; i++) {\n queue.enqueue({ item: items[i], idx: i });\n }\n\n process();\n\n function process() {\n if (debug) {\n console.log(`process, queue=${ queue.getLength() }, pending=${ pending }, failed=${ failed }`); // eslint-disable-line no-console\n }\n\n if (failed) {\n return;\n }\n\n if (queue.isEmpty() && pending === 0) {\n return resolve(out);\n }\n\n while (!queue.isEmpty() && pending < limit && !failed) {\n const { item, idx } = queue.dequeue();\n\n if (debug) {\n console.log('Running', item); // eslint-disable-line no-console\n }\n\n pending++;\n\n iterator(item, idx).then((res) => {\n if (debug) {\n console.log('Done', item); // eslint-disable-line no-console\n }\n\n out[idx] = res;\n\n pending--;\n process();\n }).catch((err) => {\n if (debug) {\n console.log('Failed', err, item); // eslint-disable-line no-console\n }\n\n failed = true;\n reject(err);\n });\n }\n }\n });\n}\n\nexport function deferred(name) {\n const out = {};\n\n out.promise = new Promise((resolve, reject) => {\n out.resolve = resolve;\n out.reject = reject;\n }, name);\n\n return out;\n}\n\n/**\n * Apply the result of a promise to a given object's property\n *\n * This is a non-blocking method\n *\n * @param promise Promise to fetch result for\n * @param obj Object to set result of promise to\n * @param key Property in object to set result to\n * @param label Description of what promise is trying to do\n */\nexport function setPromiseResult(promise, obj, key, label) {\n promise\n .then((res) => {\n obj[key] = res;\n })\n .catch((e) => {\n console.warn('Failed to: ', label, e); // eslint-disable-line no-console\n });\n}\n","import { INSTALL_REDIRECT_META_KEY } from '@shell/config/router/navigation-guards/install-redirect';\n\nexport function queryParamsFor(current, qp, defaults = {}) {\n const query = Object.assign({}, current || {});\n\n for ( const key of Object.keys(qp) ) {\n const val = qp[key];\n\n if ( typeof defaults[key] === 'undefined' ) {\n // There is no default\n query[key] = qp[key];\n } else if ( defaults[key] === false ) {\n // Value-less boolean flags\n if ( val ) {\n query[key] = null;\n } else {\n delete query[key];\n }\n } else if ( val === defaults[key] ) {\n // The value is the default\n delete query[key];\n } else {\n // The value is not the default\n query[key] = val;\n }\n }\n\n return query;\n}\n\nexport function getClusterFromRoute(to) {\n let cluster = to.params?.cluster;\n\n if (!cluster) {\n cluster = findMeta(to, 'cluster');\n }\n\n return cluster;\n}\n\nexport function getProductFromRoute(to) {\n let product = to.params?.product;\n\n if ( !product ) {\n const match = to.name?.match(/^c-cluster-([^-]+)/);\n\n if ( match ) {\n product = match[1];\n }\n }\n\n // If still no product, see if the route indicates the product via route metadata\n if (!product) {\n product = findMeta(to, 'product');\n }\n\n return product;\n}\n\nexport const getPackageFromRoute = (route) => {\n if (!route?.meta) {\n return;\n }\n // Sometimes meta is an array... sometimes not\n const arraySafe = Array.isArray(route.meta) ? route.meta : [route.meta];\n\n return arraySafe.find((m) => !!m.pkg)?.pkg;\n};\n\nexport const getResourceFromRoute = (to) => {\n let resource = to.params?.resource;\n\n if (!resource) {\n resource = findMeta(to, 'resource');\n }\n\n return resource;\n};\n\n/**\n * Given a route it will look through the matching parent routes to see if any match the fn (predicate) criteria\n *\n * @param {*} to a VueRouter Route object\n * @param {*} fn fn is a predicate which is passed a matched route. It will return true to indicate there was a matching route and false otherwise\n * @returns true if a matching route was found, false otherwise\n */\nexport const routeMatched = (to, fn) => {\n const matched = to?.matched || [];\n\n return !!matched.find(fn);\n};\n\n/**\n * Checks to see if the route requires authentication by taking a look at the route and it's parents 'meta' to see if it\n * contains { requiresAuthentication: true }\n * @param {*} to a VueRouter Route object\n * @returns true if the route requires authentication, false otherwise\n */\nexport const routeRequiresAuthentication = (to) => {\n return routeMatched(to, (matched) => matched.meta?.requiresAuthentication);\n};\n\nexport const routeRequiresInstallRedirect = (to) => {\n return routeMatched(to, (matched) => matched.meta?.[INSTALL_REDIRECT_META_KEY]);\n};\n\nexport function findMeta(route, key) {\n if (route?.meta) {\n const meta = Array.isArray(route.meta) ? route.meta : [route.meta];\n\n for (let i = 0; i < meta.length; i++) {\n if (meta[i][key]) {\n return meta[i][key];\n }\n }\n }\n\n return undefined;\n}\n","export function onClickOption(option, e) {\r\n if (!this.$attrs.multiple) {\r\n return;\r\n }\r\n\r\n const getValue = (opt) => (this.optionKey ? this.get(opt, this.optionKey) : this.getOptionLabel(opt));\r\n const optionValue = getValue(option);\r\n const value = this.value || [];\r\n const optionIndex = value.findIndex((option) => getValue(option) === optionValue);\r\n\r\n if (optionIndex < 0) {\r\n return;\r\n }\r\n\r\n this.value.splice(optionIndex, 1);\r\n\r\n this.$emit('update:value', this.value);\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (this.closeOnSelect) {\r\n this.$refs['select-input'].closeSearchOptions();\r\n }\r\n}\r\n\r\n// This is a simpler positionner for the dropdown for a select control\r\n// We used to use popper for these, but it does not suppotr fractional pixel placements which\r\n// means the dropdown does not appear aligned to the control when placed in a column-based layout\r\nexport function calculatePosition(dropdownList, component, width, placement) {\r\n const selectEl = component.$parent.$el;\r\n const r = selectEl.getBoundingClientRect();\r\n const p = placement || 'bottom-start';\r\n const docHeight = document.body.offsetHeight;\r\n const bottom = docHeight - window.scrollY - r.y - 1;\r\n let top;\r\n\r\n // If placement is not at the top, then position if underneath\r\n if (!p.includes('top')) {\r\n // Position is bottom\r\n top = r.y + r.height - 1;\r\n\r\n // Check to see if the dropdown would fall off the screen, if so, try putting it above\r\n const end = top + dropdownList.offsetHeight;\r\n\r\n if (end > window.innerHeight) {\r\n top = undefined;\r\n } else {\r\n top += window.scrollY;\r\n }\r\n }\r\n\r\n if (!top) {\r\n dropdownList.style.bottom = `${ bottom }px`;\r\n dropdownList.classList.add('vs__dropdown-up');\r\n selectEl.classList.add('vs__dropdown-up');\r\n } else {\r\n dropdownList.style.top = `${ top }px`;\r\n dropdownList.classList.remove('vs__dropdown-up');\r\n selectEl.classList.remove('vs__dropdown-up');\r\n }\r\n\r\n dropdownList.style.left = `${ r.x }px`;\r\n dropdownList.style.width = 'min-content';\r\n dropdownList.style.minWidth = `${ r.width }px`;\r\n}\r\n","import { isArray, addObject, findBy } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\n\nconst parseCache = {};\n\nconst OP_MAP = {\n '=': 'In',\n '==': 'In',\n '!=': 'NotIn',\n '<': 'Lt',\n '>': 'Gt',\n};\n\n// Parse a labelSelector string\nexport function parse(labelSelector) {\n // matchLabels:\n // comma-separated list, all rules ANDed together\n // spaces may be encoded as +\n //\n // Equals: foo = bar\n // Not Equals: bar != baz\n // Key Exists: optional.prefix/just-some-key\n // Key Doesn't: !optional.prefix/just-some-key\n // In Set: environment in (production,qa)\n // Not in Set: environment notin (production,qa)\n\n // Convert into matchExpressions, which newer resources support\n // and express the same things\n //\n // Object of:\n // key: optional.prefix/some-key\n // operator: In, NotIn, Exists, or DoesNotExist\n // values: [array, of, values, even, if, only, one]\n\n labelSelector = labelSelector.replace(/\\+/g, ' ');\n\n if ( parseCache[labelSelector] ) {\n return parseCache[labelSelector];\n }\n\n let match;\n const out = [];\n const parens = [];\n\n // Substitute out all the parenthetical lists because they might have commas in them\n match = labelSelector.match(/\\([^)]+\\)/g);\n if ( match && match.length ) {\n for ( const str of match ) {\n const val = str.replace(/^\\s*\\(\\s*/, '').replace(/\\s*\\)\\s*$/, '').split(/\\s*,\\s*/);\n\n parens.push(val);\n labelSelector = labelSelector.replace(str, ` @${ parens.length - 1 } `);\n }\n }\n\n const parts = labelSelector.split(/\\s*,\\s*/).filter((x) => !!x);\n\n for ( let rule of parts ) {\n rule = rule.trim();\n\n match = rule.match(/^(.*?)\\s+((not\\s*)?in)\\s+@(\\d+)*$/i);\n\n if ( match ) {\n out.push({\n key: match[1].trim(),\n operator: match[2].toLowerCase().replace(/\\s/g, '') === 'notin' ? 'NotIn' : 'In',\n values: parens[match[4].trim()],\n });\n\n continue;\n }\n\n match = rule.match(/^([^!=]*)\\s*(\\!=|=|==|>|<)\\s*([^!=]*)$/);\n if ( match ) {\n out.push({\n key: match[1].trim(),\n operator: OP_MAP[match[2]],\n values: [match[3].trim()],\n });\n\n continue;\n }\n\n if ( rule.startsWith('!') ) {\n out.push({\n key: rule.substr(1).trim(),\n operator: 'DoesNotExist'\n });\n\n continue;\n }\n\n out.push({\n key: rule.trim(),\n operator: 'Exists'\n });\n }\n\n parseCache[labelSelector] = out;\n\n return out;\n}\n\n// Convert a Selector object to matchExpressions\nexport function convertSelectorObj(obj) {\n return convert(obj.matchLabels || {}, obj.matchExpressions || []);\n}\n\n// Convert matchLabels to matchExpressions\n// Optionally combining with an existing set of matchExpressions\nexport function convert(matchLabelsObj, matchExpressions) {\n const keys = Object.keys(matchLabelsObj || {});\n const out = matchExpressions || [];\n\n for ( const key of keys ) {\n const value = matchLabelsObj[key];\n const existing = findBy(out, { key, operator: 'In' });\n\n if ( existing ) {\n addObject(existing.values, value);\n } else {\n out.push({\n key,\n operator: 'In',\n values: isArray(value) ? value : [value],\n });\n }\n }\n\n return out;\n}\n\n// Convert matchExpressions to matchLabels when possible,\n// returning the simplest combination of them.\nexport function simplify(matchExpressionsInput) {\n const matchLabels = {};\n const matchExpressions = [];\n\n // Look for keys with more than one \"In\" expression and disqualify them from simplifying\n const impossible = [];\n const seen = {};\n\n for ( const expr of matchExpressionsInput ) {\n if ( expr.operator !== 'In' ) {\n continue;\n }\n\n if ( seen[expr.key] ) {\n addObject(impossible, expr.key);\n } else {\n seen[expr.key] = true;\n }\n }\n\n for ( const expr of matchExpressionsInput ) {\n if ( expr.operator === 'In' && expr.values.length === 1 && !impossible.includes(expr.key) ) {\n matchLabels[expr.key] = expr.values[0];\n } else {\n matchExpressions.push(Object.assign({}, expr));\n }\n }\n\n return { matchLabels, matchExpressions };\n}\n\nexport function matches(obj, selector, labelKey = 'metadata.labels') {\n let rules = [];\n\n if ( typeof selector === 'string' ) {\n // labelSelector string\n rules = parse(selector);\n } else if ( isArray(selector) ) {\n // Already matchExpression\n rules = selector;\n } else if ( typeof selector === 'object' && selector ) {\n // matchLabels object\n rules = convert(selector);\n } else {\n return false;\n }\n\n const labels = get(obj, labelKey) || {};\n\n for ( const rule of rules ) {\n const value = labels[rule.key];\n const asInt = parseInt(value, 10);\n const exists = typeof labels[rule.key] !== 'undefined';\n\n switch ( rule.operator ) {\n case 'Exists':\n if ( !exists ) {\n return false;\n }\n break;\n case 'DoesNotExist':\n if ( exists ) {\n return false;\n }\n break;\n case 'In':\n // we need to cater empty strings because when creating a label with value = null it's translated into a empty string value ''\n if ( !rule.values.length || !rule.values.includes(value) ) {\n return false;\n }\n break;\n case 'NotIn':\n if ( rule.values.includes(value) ) {\n return false;\n }\n break;\n case 'Lt':\n if ( isNaN(asInt) || asInt >= Math.min.apply(null, rule.values) ) {\n return false;\n }\n break;\n case 'Gt':\n if ( isNaN(asInt) || asInt <= Math.max.apply(null, rule.values) ) {\n return false;\n }\n break;\n }\n }\n\n return true;\n}\n\nexport function matching(ary, selector, labelKey) {\n return ary.filter((obj) => matches(obj, selector, labelKey));\n}\n","import { get } from './object';\nimport { strPad } from './string';\n\n// Based on https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/runtime/lib/type-of.js\n// and https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/runtime/lib/mixins/array.js\n/*\nCopyright (c) 2019 Yehuda Katz, Tom Dale and Ember.js contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n// ........................................\n// TYPING & ARRAY MESSAGING\n//\nconst TYPE_MAP = {\n '[object Boolean]': 'boolean',\n '[object Number]': 'number',\n '[object String]': 'string',\n '[object Function]': 'function',\n '[object Array]': 'array',\n '[object Date]': 'date',\n '[object RegExp]': 'regexp',\n '[object Object]': 'object',\n '[object FileList]': 'filelist',\n};\n\nconst { toString } = Object.prototype;\n\n/**\n Returns a consistent type for the passed object.\n\n Use this instead of the built-in `typeof` to get the type of an item.\n It will return the same result across all browsers and includes a bit\n more detail. Here is what will be returned:\n\n | Return Value | Meaning |\n |---------------|------------------------------------------------------|\n | 'string' | String primitive or String object. |\n | 'number' | Number primitive or Number object. |\n | 'boolean' | Boolean primitive or Boolean object. |\n | 'null' | Null value |\n | 'undefined' | Undefined value |\n | 'function' | A function |\n | 'array' | An instance of Array |\n | 'regexp' | An instance of RegExp |\n | 'date' | An instance of Date |\n | 'filelist' | An instance of FileList |\n | 'error' | An instance of the Error object |\n | 'object' | A JavaScript object |\n\n Examples:\n\n import { typeOf } from '@shell/utils/type-of';\n\n typeOf(); // 'undefined'\n typeOf(null); // 'null'\n typeOf(undefined); // 'undefined'\n typeOf('michael'); // 'string'\n typeOf(new String('michael')); // 'string'\n typeOf(101); // 'number'\n typeOf(new Number(101)); // 'number'\n typeOf(true); // 'boolean'\n typeOf(new Boolean(true)); // 'boolean'\n typeOf(A); // 'function'\n typeOf([1, 2, 90]); // 'array'\n typeOf(/abc/); // 'regexp'\n typeOf(new Date()); // 'date'\n typeOf(event.target.files); // 'filelist'\n typeOf(new Error('teamocil')); // 'error'\n\n // 'normal' JavaScript object\n typeOf({ a: 'b' }); // 'object'\n*/\nexport function typeOf(item) {\n if (item === null) {\n return 'null';\n }\n if (item === undefined) {\n return 'undefined';\n }\n let ret = TYPE_MAP[toString.call(item)] || 'object';\n\n if (ret === 'object') {\n if (item instanceof Error) {\n ret = 'error';\n } else if (item instanceof Date) {\n ret = 'date';\n }\n }\n\n return ret;\n}\n\nexport function spaceship(a, b) {\n const diff = a - b;\n\n return (diff > 0) - (diff < 0);\n}\n\nconst TYPE_ORDER = {\n undefined: 0,\n null: 1,\n boolean: 2,\n number: 3,\n string: 4,\n array: 5,\n object: 6,\n instance: 7,\n function: 8,\n class: 9,\n date: 10,\n};\n\nexport function compare(a, b) {\n const typeA = typeOf(a);\n const typeB = typeOf(b);\n\n const res = spaceship(TYPE_ORDER[typeA], TYPE_ORDER[typeB]);\n\n if ( res ) {\n return res;\n }\n\n switch (typeA) {\n case 'boolean':\n case 'number':\n return spaceship(a, b);\n\n case 'string':\n return spaceship(a.localeCompare(b), 0);\n\n case 'array': {\n const aLen = a.length;\n const bLen = b.length;\n const len = Math.min(aLen, bLen);\n\n for (let i = 0; i < len; i++) {\n const r = compare(a[i], b[i]);\n\n if (r !== 0) {\n return r;\n }\n }\n\n // all elements are equal now\n // shorter array should be ordered first\n return spaceship(aLen, bLen);\n }\n case 'date':\n return spaceship(a.getTime(), b.getTime());\n }\n\n return 0;\n}\n\nexport function parseField(str) {\n const parts = str.split(/:/);\n\n if ( parts.length === 2 && parts[1] === 'desc' ) {\n return { field: parts[0], reverse: true };\n } else {\n return { field: str, reverse: false };\n }\n}\n\nexport function sortBy(ary, keys, desc) {\n if ( !Array.isArray(keys) ) {\n keys = [keys];\n }\n\n return (ary || []).slice().sort((objA, objB) => {\n for ( let i = 0 ; i < keys.length ; i++ ) {\n const parsed = parseField(keys[i]);\n const a = get(objA, parsed.field);\n const b = get(objB, parsed.field);\n let res = compare(a, b);\n\n if ( res ) {\n if ( desc ) {\n res *= -1;\n }\n\n if ( parsed.reverse ) {\n res *= -1;\n }\n\n return res;\n }\n }\n\n return 0;\n });\n}\n\n// Turn foo1-bar2 into foo0000000001-bar0000000002 so that the numbers sort numerically\nconst splitRegex = /([^\\d]+)/;\nconst notNumericRegex = /^[0-9]+$/;\n\nexport function sortableNumericSuffix(str) {\n if ( typeof str !== 'string' ) {\n return str;\n }\n\n return str.split(splitRegex).map((x) => x.match(notNumericRegex) ? strPad(x, 10, '0') : x).join('').trim();\n}\n\nexport function isNumeric(num) {\n return !!`${ num }`.match(notNumericRegex);\n}\n","export function camelToTitle(str) {\n return dasherize((str || '')).split('-').map((str) => {\n return ucFirst(str);\n }).join(' ');\n}\n\nexport function ucFirst(str) {\n str = str || '';\n\n return str.substr(0, 1).toUpperCase() + str.substr(1);\n}\n\nexport function lcFirst(str) {\n str = str || '';\n\n return str.substr(0, 1).toLowerCase() + str.substr(1);\n}\n\nexport function strPad(str, toLength, padChars = ' ', right = false) {\n str = `${ str }`;\n\n if (str.length >= toLength) {\n return str;\n }\n\n const neededLen = toLength - str.length + 1;\n const padStr = (new Array(neededLen)).join(padChars).substr(0, neededLen);\n\n if (right) {\n return str + padStr;\n } else {\n return padStr + str;\n }\n}\n\n// Turn thing1 into thing00000001 so that the numbers sort numerically\nexport function sortableNumericSuffix(str) {\n str = str || '';\n const match = str.match(/^(.*[^0-9])([0-9]+)$/);\n\n if (match) {\n return match[1] + strPad(match[2], 8, '0');\n }\n\n return str;\n}\n\nconst entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\n\nexport function escapeHtml(html) {\n return String(html).replace(/[&<>\"']/g, (s) => {\n return entityMap[s];\n });\n}\n\n/**\n * Return HTML markup from escaped HTML string, allowing specific tags\n * @param text string\n * @returns string\n */\nexport function decodeHtml(text) {\n const div = document.createElement('div');\n\n div.innerHTML = text;\n\n return div.textContent || div.innerText || '';\n}\n\nexport function escapeRegex(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\nexport function random32(count) {\n count = Math.max(0, count || 1);\n\n const out = [];\n let i;\n\n if (window.crypto && window.crypto.getRandomValues) {\n const tmp = new Uint32Array(count);\n\n window.crypto.getRandomValues(tmp);\n for (i = 0; i < tmp.length; i++) {\n out[i] = tmp[i];\n }\n } else {\n for (i = 0; i < count; i++) {\n out[i] = Math.random() * 4294967296; // Math.pow(2,32);\n }\n }\n\n if (count === 1) {\n return out[0];\n } else {\n return out;\n }\n}\n\nconst alpha = 'abcdefghijklmnopqrstuvwxyz';\nconst num = '0123456789';\nconst sym = '!@#$%^&*()_+-=[]{};:,./<>?|';\n\nexport const CHARSET = {\n NUMERIC: num,\n NO_VOWELS: 'bcdfghjklmnpqrstvwxz2456789',\n ALPHA: alpha + alpha.toUpperCase(),\n ALPHA_NUM: alpha + alpha.toUpperCase() + num,\n ALPHA_LOWER: alpha,\n ALPHA_UPPER: alpha.toUpperCase(),\n HEX: `${ num }ABCDEF`,\n PASSWORD: alpha + alpha.toUpperCase() + num + alpha + alpha.toUpperCase() + num + sym,\n // ^-- includes alpha / ALPHA / num twice to reduce the occurrence of symbols\n};\n\nexport function randomStr(length = 16, chars = CHARSET.ALPHA_NUM) {\n if (!chars || !chars.length) {\n return null;\n }\n\n return random32(length).map((val) => {\n return chars[val % chars.length];\n }).join('');\n}\n\nexport function formatPercent(value, maxPrecision = 2) {\n if (value < 1 && maxPrecision >= 2) {\n return `${ Math.round(value * 100) / 100 }%`;\n } else if (value < 10 && maxPrecision >= 1) {\n return `${ Math.round(value * 10) / 10 }%`;\n } else {\n return `${ Math.round(value) }%`;\n }\n}\n\nexport function pluralize(str) {\n if ( str.match(/.*[^aeiou]y$/i) ) {\n return `${ str.substr(0, str.length - 1) }ies`;\n } else if ( str.endsWith('ics') ) {\n return str;\n } else if ( str.endsWith('s') ) {\n return `${ str }es`;\n } else {\n return `${ str }s`;\n }\n}\n\nexport function resourceNames(names, plusMore, t) {\n return names.reduce((res, name, i) => {\n if (i >= 5) {\n return res;\n }\n res += `<b>${ escapeHtml( name ) }</b>`;\n if (i === names.length - 1) {\n res += plusMore;\n } else {\n res += i === names.length - 2 ? t('generic.and') : t('generic.comma');\n }\n\n return res;\n }, '');\n}\n\nexport function indent(lines, count = 2, token = ' ', afterRegex = null) {\n if (typeof lines === 'string') {\n lines = lines.split(/\\n/);\n } else {\n lines = lines || [];\n }\n\n const padStr = (new Array(count + 1)).join(token);\n\n const out = lines.map((line) => {\n let prefix = '';\n let suffix = line;\n\n if (afterRegex) {\n const match = line.match(afterRegex);\n\n if (match) {\n prefix = match[match.length - 1];\n suffix = line.substr(match[0].length);\n }\n }\n\n return `${ prefix }${ padStr }${ suffix }`;\n });\n\n const str = out.join('\\n');\n\n return str;\n}\n\nconst decamelizeRegex = /([a-z\\d])([A-Z])/g;\n\nexport function decamelize(str) {\n return str.replace(decamelizeRegex, '$1_$2').toLowerCase();\n}\n\nconst dasherizeRegex = /[ _]/g;\n\nexport function dasherize(str) {\n return decamelize(str).replace(dasherizeRegex, '-');\n}\n\nexport function asciiLike(str) {\n str = str || '';\n\n if ( str.match(/[^\\r\\n\\t\\x20-\\x7F]/) ) {\n return false;\n }\n\n return true;\n}\n\nexport function coerceStringTypeToScalarType(val, type) {\n if ( type === 'float' ) {\n // Coerce strings to floats\n val = parseFloat(val) || null; // NaN becomes null\n } else if ( type === 'int' ) {\n // Coerce strings to ints\n val = parseInt(val, 10);\n\n if ( isNaN(val) ) {\n val = null;\n }\n } else if ( type === 'boolean') {\n // Coerce strings to boolean\n if (val.toLowerCase() === 'true') {\n val = true;\n } else if (val.toLowerCase() === 'false') {\n val = false;\n }\n }\n\n return val;\n}\n\nexport function matchesSomeRegex(stringRaw, regexes = []) {\n return regexes.some((regexRaw) => {\n const string = stringRaw || '';\n const regex = ensureRegex(regexRaw);\n\n return string.match(regex);\n });\n}\n\nexport function ensureRegex(strOrRegex, exact = true) {\n if ( typeof strOrRegex === 'string' ) {\n if ( exact ) {\n return new RegExp(`^${ escapeRegex(strOrRegex) }$`, 'i');\n } else {\n return new RegExp(`${ escapeRegex(strOrRegex) }`, 'i');\n }\n }\n\n return strOrRegex;\n}\n\nexport function nlToBr(value) {\n return escapeHtml(value || '').replace(/(\\r\\n|\\r|\\n)/g, '<br/>\\n');\n}\n\nconst quotedMatch = /[^.\"']+|\"([^\"]*)\"|'([^']*)'/g;\n\nexport function splitObjectPath(path) {\n if ( path.includes('\"') || path.includes(\"'\") ) {\n // Path with quoted section\n return path.match(quotedMatch).map((x) => x.replace(/['\"]/g, ''));\n }\n\n // Regular path\n return path.split('.');\n}\n\nexport function joinObjectPath(ary) {\n let out = '';\n\n for ( const p of ary ) {\n if ( p.includes('.') ) {\n out += `.\"${ p }\"`;\n } else {\n out += `.${ p }`;\n }\n }\n\n if ( out.startsWith('.') ) {\n out = out.substr(1);\n }\n\n return out;\n}\n\nexport function shortenedImage(image) {\n return (image || '')\n .replace(/^(index\\.)?docker.io\\/(library\\/)?/, '')\n .replace(/:latest$/, '')\n .replace(/^(.*@sha256:)([0-9a-f]{8})[0-9a-f]+$/i, '$1$2…');\n}\n\nexport function isIpv4(ip) {\n const reg = /^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\n\n return reg.test(ip);\n}\n\nexport function sanitizeKey(k) {\n return (k || '').replace(/[^a-z0-9./_-]/ig, '');\n}\n\nexport function sanitizeValue(v) {\n return (v || '').replace(/[^a-z0-9._-]/ig, '');\n}\n\nexport function sanitizeIP(v) {\n return (v || '').replace(/[^a-z0-9.:_-]/ig, '');\n}\n\n/**\n * Return the string `<x> / <y>`\n *\n * Each param should be a number, otherwise `?` is used\n */\nexport function xOfy(x, y) {\n return `${ typeof x === 'number' ? x : '?' }/${ typeof y === 'number' ? y : '?' }`;\n}\n\nexport function isBase64(value) {\n const base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n\n return base64regex.test(value);\n}\n","import day from 'dayjs';\n\nconst FACTORS = [60, 60, 24];\nconst LABELS = ['sec', 'min', 'hour', 'day'];\n\n// Diff two dates and return an object with values for presentation\n// If 't' is also passed, 'string' property is set on the return object with the diff formatted as a string\n// e.g. formats a date difference to return '1 day', '20 hours' etc\nexport function diffFrom(value, from, t) {\n const now = day();\n\n from = from || now;\n const diff = value.diff(from, 'seconds');\n\n let absDiff = Math.abs(diff);\n\n let next = 1;\n let label = '?';\n\n let i = 0;\n\n while ( absDiff >= FACTORS[i] && i < FACTORS.length ) {\n absDiff /= FACTORS[i];\n next *= Math.floor(FACTORS[i] / 10);\n i++;\n }\n\n if ( absDiff < 5 ) {\n label = Math.floor(absDiff * 10) / 10;\n } else {\n label = Math.floor(absDiff);\n }\n const ret = {\n diff,\n absDiff,\n label,\n // i18n-uses unit.day, unit.hour, unit.min, unit.sec\n unitsKey: `unit.${ LABELS[i] }`,\n units: LABELS[i],\n next,\n };\n\n if (!!t) {\n ret.string = `${ ret.label } ${ t(ret.unitsKey, { count: ret.label }) }`;\n }\n\n return ret;\n}\n\nexport function safeSetTimeout(timeout, callback, that) {\n if (timeout <= 2147483647) {\n // Max value setTimeout can take is max 32 bit int (about 24.9 days)\n return setTimeout(() => {\n callback.apply(that);\n }, timeout);\n }\n}\n\nexport function getSecondsDiff(startDate, endDate) {\n return Math.round(\n Math.abs(Date.parse(endDate) - Date.parse(startDate)) / 1000\n );\n}\n\n/**\n * return { diff: number; label: string }\n *\n * diff: update frequency in seconds\n * label: content of the cell's column\n */\nexport function elapsedTime(seconds) {\n if (!seconds) {\n return {};\n }\n\n if (seconds < 120) {\n return {\n diff: 1,\n label: `${ seconds }s`\n };\n }\n\n const minutes = Math.floor(seconds / 60);\n\n if (minutes < 10) {\n return {\n diff: 1,\n label: `${ minutes }m${ seconds - (minutes * 60) }s`\n };\n }\n\n const hours = Math.floor(seconds / 3600);\n\n if (hours < 3) {\n return {\n diff: 60,\n label: `${ minutes }m`,\n };\n }\n\n const days = Math.floor(seconds / (3600 * 24));\n\n if (days > 1) {\n return {\n diff: 60,\n label: `${ days }d${ hours - (days * 24) }h`,\n };\n }\n\n if (hours > 7) {\n return {\n diff: 60,\n label: `${ hours }h`,\n };\n }\n\n return {\n diff: 60,\n label: `${ hours }h${ minutes - (hours * 60) }m`,\n };\n}\n","export const UNITS = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\nexport const FRACTIONAL = ['', 'm', 'u', 'n', 'p', 'f', 'a', 'z', 'y']; // milli micro nano pico femto\n\nexport function formatSi(inValue, {\n increment = 1000,\n addSuffix = true,\n addSuffixSpace = true,\n suffix = '',\n firstSuffix = null,\n startingExponent = 0,\n minExponent = 0,\n maxExponent = 99,\n maxPrecision = 2,\n canRoundToZero = true,\n} = {}) {\n let val = inValue;\n let exp = startingExponent;\n const divide = maxExponent >= 0;\n\n // TODO More to think about re: min > max\n if (divide) {\n while ( ( val >= increment && exp + 1 < UNITS.length && exp < maxExponent ) || exp < minExponent ) {\n val = val / increment;\n exp++;\n }\n } else {\n while ( ( val < increment && exp + 1 < FRACTIONAL.length && exp < (maxExponent * -1) ) || exp < (minExponent * -1) ) {\n val = val * increment;\n exp++;\n }\n }\n\n let out = '';\n\n if ( val < 10 && maxPrecision >= 1 ) {\n out = `${ Math.round(val * (10 ** maxPrecision) ) / (10 ** maxPrecision) }`;\n } else {\n out = `${ Math.round(val) }`;\n }\n\n if (out === '0' && !canRoundToZero && inValue !== 0) {\n const exponent = exponentNeeded(inValue, increment);\n\n return formatSi(inValue, {\n increment,\n addSuffix,\n suffix,\n firstSuffix,\n startingExponent,\n minExponent: exponent,\n maxExponent: exponent,\n maxPrecision,\n canRoundToZero: true,\n });\n }\n\n if ( addSuffix ) {\n if (addSuffixSpace) {\n out += ` `;\n }\n\n if ( exp === 0 && firstSuffix !== null) {\n out += `${ firstSuffix }`;\n } else {\n out += `${ divide ? UNITS[exp] : FRACTIONAL[exp] }${ suffix }` || '';\n }\n }\n\n return out;\n}\n\nexport function exponentNeeded(val, increment = 1000) {\n let exp = 0;\n\n while ( val >= increment ) {\n val = val / increment;\n exp++;\n }\n\n return exp;\n}\n\nexport function parseSi(inValue, opt) {\n opt = opt || {};\n let increment = opt.increment;\n const allowFractional = opt.allowFractional !== false;\n\n if ( !inValue || typeof inValue !== 'string' || !inValue.length ) {\n return NaN;\n }\n\n inValue = inValue.replace(/,/g, '');\n\n // eslint-disable-next-line prefer-const\n let [, valStr, unit, incStr] = inValue.match(/^([0-9.-]+)\\s*([^0-9.-]?)([^0-9.-]?)/);\n const val = parseFloat(valStr);\n\n if ( !unit ) {\n return val;\n }\n\n // micro \"mu\" symbol -> u\n if ( unit.charCodeAt(0) === 181 ) {\n unit = 'u';\n }\n\n const divide = FRACTIONAL.includes(unit);\n const multiply = UNITS.includes(unit.toUpperCase());\n\n if ( !increment ) {\n // Automatically handle 1 KB = 1000B, 1 KiB = 1024B if no increment set\n if ( (multiply || divide) && incStr === 'i' ) {\n increment = 1024;\n } else {\n increment = 1000;\n }\n }\n\n if ( divide && allowFractional ) {\n const exp = FRACTIONAL.indexOf(unit);\n\n return val / (increment ** exp);\n }\n\n if ( multiply ) {\n const exp = UNITS.indexOf(unit.toUpperCase());\n\n return val * (increment ** exp);\n }\n\n // Unrecognized unit character\n return val;\n}\n\nexport const MEMORY_PARSE_RULES = {\n memory: {\n format: {\n addSuffix: true,\n firstSuffix: 'B',\n increment: 1024,\n maxExponent: 99,\n maxPrecision: 2,\n minExponent: 0,\n startingExponent: 0,\n suffix: 'iB',\n }\n }\n};\n\nexport function createMemoryFormat(n) {\n const exponent = exponentNeeded(n, MEMORY_PARSE_RULES.memory.format.increment);\n\n return {\n ...MEMORY_PARSE_RULES.memory.format,\n maxExponent: exponent,\n minExponent: exponent,\n };\n}\n\nfunction createMemoryUnits(n) {\n const exponent = exponentNeeded(n, MEMORY_PARSE_RULES.memory.format.increment);\n\n return `${ UNITS[exponent] }${ MEMORY_PARSE_RULES.memory.format.suffix }`;\n}\n\nexport function createMemoryValues(total, useful) {\n const parsedTotal = parseSi((total || '0').toString());\n const parsedUseful = parseSi((useful || '0').toString());\n const format = createMemoryFormat(parsedTotal);\n const formattedTotal = formatSi(parsedTotal, format);\n const formattedUseful = formatSi(parsedUseful, format);\n\n return {\n total: Number.parseFloat(formattedTotal),\n useful: Number.parseFloat(formattedUseful),\n units: createMemoryUnits(parsedTotal)\n };\n}\n\nexport default {\n exponentNeeded,\n formatSi,\n parseSi,\n};\n","import cronstrue from 'cronstrue';\n\nexport function cronSchedule(schedule = '', getters, errors) {\n try {\n cronScheduleRule.validation(schedule);\n } catch (e) {\n errors.push(getters['i18n/t'](cronScheduleRule.message));\n }\n}\n\nexport const cronScheduleRule = {\n validation: (text) => cronstrue.toString(text, { verbose: true }),\n message: 'validation.invalidCron'\n};\n","import { validateChars } from './index';\n\nexport function validateKubernetesName(label, displayKey, getters, opts, errors = []) {\n opts = opts || {};\n\n const {\n invalidChars,\n forHostname = false,\n errorKey = (forHostname ? 'hostname' : 'label'),\n maxLength = 63,\n minLength = 1,\n validChars = 'A-Za-z0-9-',\n } = opts;\n\n // Label must consist of a-z, 0-9 and hyphen\n validateChars(label, { validChars, invalidChars }, displayKey, getters, errors);\n\n // Label cannot begin with a hyphen\n if ( label.slice(0, 1) === '-' ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.startHyphen`, { key: displayKey }));\n }\n\n // Label cannot end with a hyphen\n if ( label.slice(-1) === '-' ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.endHyphen`, { key: displayKey }));\n }\n\n // Label must be 1-63 characters\n const min = minLength;\n const max = maxLength;\n\n if ( label.length < min ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.emptyLabel`, { key: displayKey, min }));\n } else if ( label.length > max ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.tooLongLabel`, { key: displayKey, max }));\n }\n\n return errors;\n}\n","import isEmpty from 'lodash/isEmpty';\nimport uniq from 'lodash/uniq';\nimport { get } from '@shell/utils/object';\nimport { camelToTitle } from '@shell/utils/string';\nimport { validateKubernetesName } from './kubernetes-name';\n\nexport function displayKeyFor(type, key, getters) {\n const intlPrefix = `model.${ type }.${ key }`;\n const intlPrefixLabel = `${ intlPrefix }.label`;\n\n if ( getters['i18n/exists'](`${ intlPrefix }.label`) ) {\n return getters['i18n/t'](intlPrefixLabel);\n }\n\n if ( getters['i18n/exists'](intlPrefix) ) {\n return getters['i18n/t'](intlPrefix);\n }\n\n if ( key.match(/.Id$/) ) {\n return camelToTitle(key.replace(/Id$/, ''));\n }\n\n return camelToTitle(key);\n}\n\nexport function validateLength(val, field, displayKey, getters, errors = []) {\n const {\n nullable,\n required,\n type = '',\n minLength,\n maxLength,\n min: fieldMin,\n max: fieldMax,\n } = field;\n const len = val ? get(val, 'length') : 0;\n\n if ( !nullable && required) {\n if ((typeof val === 'object' && isEmpty(val)) || (!val && val !== 0)) {\n errors.push(getters['i18n/t']('validation.required', { key: displayKey }));\n\n return errors;\n }\n }\n\n if ( val === null ) {\n return errors;\n }\n\n // i18n-uses validation.*.exactly, validation.*.between, validation.*.min, validation.*.max\n const lengthKey = (type.indexOf('array[') === 0 ? 'arrayLength' : 'stringLength');\n\n // String and array length:\n let min = minLength;\n let max = maxLength;\n\n if ( min && max ) {\n if ( (len < min) || (len > max) ) {\n if ( min === max ) {\n errors.push(getters['i18n/t'](`validation.${ lengthKey }.exactly`, { key: displayKey, count: min }));\n } else {\n errors.push(getters['i18n/t'](`validation.${ lengthKey }.between`, {\n key: displayKey, min, max\n }));\n }\n }\n } else if ( min && (len < min) ) {\n errors.push(getters['i18n/t'](`validation.${ lengthKey }.min`, { key: displayKey, count: min }));\n } else if ( max && (len > max) ) {\n errors.push(getters['i18n/t'](`validation.${ lengthKey }.max`, { key: displayKey, count: max }));\n }\n\n // Number min/max\n min = fieldMin;\n max = fieldMax;\n\n if ( val !== null && min && max ) {\n if ( (val < min) || (val > max) ) {\n if ( min === max ) {\n errors.push(getters['i18n/t']('validation.number.exactly', { key: displayKey, val: max }));\n } else {\n errors.push(getters['i18n/t']('validation.number.between', {\n key: displayKey, min, max\n }));\n }\n }\n } else if ( min && (val < min) ) {\n errors.push(getters['i18n/t']('validation.number.min', { key: displayKey, val: min }));\n } else if ( max && (val > max) ) {\n errors.push(getters['i18n/t']('validation.number.max', { key: displayKey, val: max }));\n }\n\n return errors;\n}\n\nexport function validateChars(val, field, displayKey, getters, errors = []) {\n const {\n validChars,\n invalidChars\n } = field;\n const test = [];\n\n if ( validChars ) {\n test.push(`[^${ field.validChars }]`);\n }\n\n if ( invalidChars ) {\n test.push(`[${ field.invalidChars }]`);\n }\n\n if ( test.length ) {\n const regex = new RegExp(`(${ test.join('|') })`, 'g');\n let match = val.match(regex);\n\n if ( match ) {\n match = uniq(match).map((chr) => {\n if ( chr === ' ' ) {\n return '[space]';\n } else {\n return chr;\n }\n });\n\n errors.push(getters['i18n/t']('validation.chars', {\n key: displayKey, count: match.length, chars: match.join(' ')\n }));\n }\n }\n\n return errors;\n}\n\nexport function validateHostname(val, displayKey, getters, opts, errors = []) {\n opts = opts || {};\n\n const {\n max = 253,\n restricted = false,\n } = opts;\n\n // Hostname can not start with a dot\n if (val.slice(0, 1) === '.') {\n errors.push(getters['i18n/t']('validation.dns.hostname.startDot', { key: displayKey }));\n }\n\n // Hostname can not end with a dot in restricted mode\n if ( restricted && val.length > 1 && val.slice(-1) === '.' ) {\n errors.push(getters['i18n/t']('validation.dns.hostname.endDot', { key: displayKey }));\n }\n\n // Hostname can not be empty string\n if (val.length === 0) {\n errors.push(getters['i18n/t']('validation.dns.hostname.empty', { key: displayKey }));\n }\n\n // Total length of the hostname can be at most 253 characters\n // (255 minus one for null-termination, and one for the trailing dot of a real FQDN)\n if (val.length > max) {\n errors.push(getters['i18n/t']('validation.dns.hostname.tooLong', { key: displayKey, max }));\n }\n\n // Split the hostname with the dot and validate the element as label\n const labels = val.split(/\\./);\n let label;\n\n for ( let i = 0 ; i < labels.length ; i++ ) {\n label = labels[i];\n\n // Already checked if Hostname starts with a dot\n if ( i === 0 && label === '' ) {\n continue;\n }\n\n // Hostname can end with a dot (this makes it an explicitly fully qualified domain name)\n // so the last element of the labels can be empty string.\n if (i === labels.length - 1 && label === '') {\n continue;\n }\n\n validateDnsLabel(label, displayKey, getters, { forHostname: true }, errors);\n }\n\n return errors;\n}\n\nexport function validateDnsLabel(label, displayKey, getters, opts, errors = []) {\n opts = opts || {};\n\n const {\n forHostname = false,\n errorKey = (forHostname ? 'hostname' : 'label'),\n ianaServiceName = false,\n restricted = false,\n } = opts;\n\n validateKubernetesName(label, displayKey, getters, opts, errors);\n\n // Restricted labels cannot begin with a number\n if ( restricted && label.slice(0, 1).match(/[0-9]/) ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.startNumber`, { key: displayKey }));\n }\n\n // Label cannot contain two consecutive hyphens at the 3rd & 4th characters, unless an IDN string\n // If is of type ianaServiceName can not contain two consecutive hyphens in any position\n if (\n ( label.substr(2, 2) === '--' && label.substr(0, 2) !== 'xn' ) ||\n ( ianaServiceName && label.includes('--') )\n ) {\n errors.push(getters['i18n/t'](`validation.dns.doubleHyphen`, { key: displayKey }));\n }\n\n return errors;\n}\n\nexport function validateDnsLikeTypes(val, type, displayKey, getters, opts, errors = []) {\n switch (type) {\n case 'dnsLabel':\n validateDnsLabel(val, displayKey, getters, { restricted: false }, errors);\n break;\n case 'dnsLabelRestricted':\n validateDnsLabel(val, displayKey, getters, { restricted: true }, errors);\n break;\n case 'hostname':\n validateHostname(val, displayKey, getters, { restricted: false }, errors);\n break;\n default:\n break;\n }\n\n return errors;\n}\n\nexport function validateBoolean(val, field, displayKey, getters, errors = []) {\n const { required } = field;\n\n if (required && !val && val !== false) {\n errors.push(getters['i18n/t']('validation.required', { key: displayKey }));\n\n return;\n }\n if (typeof val !== 'boolean' && !!val) {\n errors.push(getters['i18n/t']('validation.boolean', { key: displayKey }));\n }\n}\n","import isUrl from 'is-url';\n\nexport const isServerUrl = (value) => value === 'server-url';\n\nexport const isHttps = (value) => value.toLowerCase().startsWith('https://');\n\nexport const isLocalhost = (value) => (/^(?:https?:\\/\\/)?(?:localhost|127\\.0\\.0\\.1)/i).test(value);\n\nexport const hasTrailingForwardSlash = (value) => isUrl(value) && value?.toLowerCase().endsWith('/');\n","import { sortableNumericSuffix } from '@shell/utils/sort';\nimport semver from 'semver';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { READ_WHATS_NEW, SEEN_WHATS_NEW } from '@shell/store/prefs';\nimport { SETTING } from '@shell/config/settings';\n\nexport function parse(str) {\n str = `${ str }`;\n\n // Trim off leading 'v'\n if ( str.substr(0, 1).toLowerCase() === 'v' ) {\n str = str.substr(1);\n }\n\n const parts = str.split(/[.+-]/);\n\n return parts;\n}\n\nexport function sortable(str) {\n return parse(str).map((x) => sortableNumericSuffix(x)).join('.');\n}\n\nexport function compare(in1, in2) {\n if ( !in1 ) {\n return 1;\n }\n\n if ( !in2 ) {\n return -1;\n }\n\n const p1 = parse(in1);\n const p2 = parse(in2);\n\n const minLen = Math.min(p1.length, p2.length);\n\n for ( let i = 0 ; i < minLen ; i++ ) {\n const res = comparePart(p1[i], p2[i]);\n\n if ( res !== 0 ) {\n return res;\n }\n }\n\n return p1.length - p2.length;\n}\n\nfunction isNumeric(str) {\n return (`${ str }`).match(/^([0-9]+\\.)?[0-9]*$/);\n}\n\nfunction comparePart(in1, in2) {\n in1 = (`${ in1 }`).toLowerCase();\n in2 = (`${ in2 }`).toLowerCase();\n\n if ( isNumeric(in1) && isNumeric(in2) ) {\n const num1 = parseInt(in1, 10);\n const num2 = parseInt(in2, 10);\n\n if ( !isNaN(num1) && !isNaN(num2) ) {\n return num1 - num2;\n }\n }\n\n return in1.localeCompare(in2);\n}\n\nexport function isPrerelease(version = '') {\n if (!semver.valid(version)) {\n version = semver.clean(version, { loose: true });\n }\n\n return !!semver.prerelease(version);\n}\n\nexport function isDevBuild(version) {\n if ( ['dev', 'master', 'head'].includes(version) || version.endsWith('-head') || version.match(/-rc\\d+$/) || version.match(/-alpha\\d+$/) ) {\n return true;\n }\n\n return false;\n}\n\nexport function getVersionInfo(store) {\n const setting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.VERSION_RANCHER);\n const fullVersion = setting?.value || 'unknown';\n let displayVersion = fullVersion;\n\n const match = fullVersion.match(/^(.*)-([0-9a-f]{40})-(.*)$/);\n\n if ( match ) {\n displayVersion = match[2].substr(0, 7);\n }\n\n return {\n displayVersion,\n fullVersion\n };\n}\n\nexport function seenReleaseNotes(store) {\n const lastSeenNew = store.getters['prefs/get'](SEEN_WHATS_NEW) ;\n const fullVersion = getVersionInfo(store).fullVersion;\n\n return compare(lastSeenNew, fullVersion) >= 0 && !!lastSeenNew;\n}\n\n// Mark that the user has seen the release notes for this version if not already done\nexport async function markSeenReleaseNotes(store) {\n if (!seenReleaseNotes(store)) {\n await store.dispatch('prefs/set', { key: SEEN_WHATS_NEW, value: getVersionInfo(store).fullVersion });\n }\n}\n\nexport function readReleaseNotes(store) {\n const lastSeenNew = store.getters['prefs/get'](READ_WHATS_NEW) ;\n const fullVersion = getVersionInfo(store).fullVersion;\n\n return compare(lastSeenNew, fullVersion) >= 0 && !!lastSeenNew;\n}\n\n// Mark that the user has read the release notes for this version if not already done\nexport async function markReadReleaseNotes(store) {\n if (!readReleaseNotes(store)) {\n await store.dispatch('prefs/set', { key: READ_WHATS_NEW, value: getVersionInfo(store).fullVersion });\n }\n}\n","// suffix of doc link, see utils/feature-flags.js how to get complete doc link\nexport const DOC = {\n CONSOLE_URL: `/host/#remote-console`,\n RANCHER_INTEGRATION_URL: `/rancher/rancher-integration`,\n STORAGE_NETWORK_EXAMPLE: `/advanced/storagenetwork#configuration-example`,\n KSMTUNED_MODE: `/host/#ksmtuned-mode`,\n UPGRADE_URL: `/upgrade/index`\n};\n","import {\n NODE,\n CONFIG_MAP,\n NAMESPACE,\n VIRTUAL_TYPES,\n MANAGEMENT,\n PVC,\n NETWORK_ATTACHMENT,\n MONITORING,\n LOGGING,\n STORAGE_CLASS,\n SECRET,\n} from '@shell/config/types';\nimport { HCI, VOLUME_SNAPSHOT } from '../types';\nimport {\n STATE,\n NAME_UNLINKED,\n NAME as NAME_COL,\n AGE,\n NAMESPACE as NAMESPACE_COL,\n LOGGING_OUTPUT_PROVIDERS,\n OUTPUT,\n CLUSTER_OUTPUT,\n CONFIGURED_PROVIDERS,\n SUB_TYPE,\n ADDRESS,\n} from '@shell/config/table-headers';\nimport { IF_HAVE } from '@shell/store/type-map';\nimport {\n IMAGE_DOWNLOAD_SIZE,\n FINGERPRINT,\n IMAGE_PROGRESS,\n SNAPSHOT_TARGET_VOLUME,\n IMAGE_VIRTUAL_SIZE,\n IMAGE_STORAGE_CLASS\n} from './table-headers';\n\nconst TEMPLATE = HCI.VM_VERSION;\nconst MONITORING_GROUP = 'Monitoring & Logging::Monitoring';\nconst LOGGING_GROUP = 'Monitoring & Logging::Logging';\n\nexport const PRODUCT_NAME = 'harvester';\n\nexport const IP_POOL_HEADERS = [\n STATE,\n NAME_COL,\n {\n name: 'subnet',\n labelKey: 'harvester.ipPool.subnet.label',\n value: 'subnetDisplay',\n },\n {\n name: 'availableIP',\n labelKey: 'harvester.ipPool.availableIP.label',\n value: 'status.available',\n },\n AGE\n];\n\nexport function init($plugin, store) {\n const {\n product,\n basicType,\n headers,\n configureType,\n virtualType,\n weightGroup,\n weightType,\n } = $plugin.DSL(store, PRODUCT_NAME);\n\n const isSingleVirtualCluster = process.env.rancherEnv === PRODUCT_NAME;\n\n if (isSingleVirtualCluster) {\n const home = {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: {\n product: PRODUCT_NAME,\n resource: HCI.DASHBOARD\n }\n };\n\n store.dispatch('setIsSingleProduct', {\n productName: PRODUCT_NAME,\n logo: require(`@shell/assets/images/providers/harvester.svg`),\n productNameKey: 'harvester.productLabel',\n getVersionInfo: (store) => store.getters[`${ PRODUCT_NAME }/byId`]?.(HCI.SETTING, 'server-version')?.value || 'unknown',\n afterLoginRoute: home,\n logoRoute: home,\n supportCustomLogo: true\n });\n }\n\n product({\n inStore: 'harvester',\n removable: false,\n showNamespaceFilter: true,\n hideKubeShell: true,\n hideKubeConfig: true,\n showClusterSwitcher: true,\n hideCopyConfig: true,\n hideSystemResources: true,\n customNamespaceFilter: true,\n typeStoreMap: {\n [MANAGEMENT.PROJECT]: 'management',\n [MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING]: 'management',\n [MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING]: 'management'\n },\n supportRoute: { name: `${ PRODUCT_NAME }-c-cluster-support` },\n to: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: {\n product: PRODUCT_NAME,\n resource: HCI.DASHBOARD\n }\n },\n hideNamespaceLocation: true,\n });\n\n basicType([HCI.DASHBOARD]);\n virtualType({\n labelKey: 'harvester.dashboard.label',\n group: 'Root',\n name: HCI.DASHBOARD,\n weight: 500,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: {\n product: PRODUCT_NAME,\n resource: HCI.DASHBOARD\n }\n }\n });\n configureType(HCI.DASHBOARD, { showListMasthead: false });\n\n configureType(HCI.HOST, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.HOST }\n },\n resource: NODE,\n resourceDetail: HCI.HOST,\n resourceEdit: HCI.HOST,\n canYaml: false,\n });\n\n configureType(HCI.HOST, { isCreatable: false, isEditable: true });\n basicType([HCI.HOST]);\n\n virtualType({\n ifHaveType: NODE,\n labelKey: 'harvester.host.label',\n group: 'Root',\n name: HCI.HOST,\n namespaced: true,\n weight: 399,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.HOST }\n },\n exact: false\n });\n\n // multiVirtualCluster\n basicType(['cluster-members'], 'rbac');\n virtualType({\n ifHave: IF_HAVE.MULTI_CLUSTER,\n labelKey: 'members.clusterMembers',\n group: 'root',\n namespaced: false,\n name: VIRTUAL_TYPES.CLUSTER_MEMBERS,\n weight: 100,\n route: { name: `${ PRODUCT_NAME }-c-cluster-members` },\n exact: true,\n ifHaveType: {\n type: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING,\n store: 'management'\n }\n });\n\n basicType([HCI.VM]);\n configureType(HCI.VM, { canYaml: false });\n virtualType({\n labelKey: 'harvester.virtualMachine.label',\n group: 'root',\n name: HCI.VM,\n namespaced: true,\n weight: 299,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.VM }\n },\n exact: false\n });\n\n basicType([HCI.VOLUME]);\n configureType(HCI.VOLUME, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.VOLUME }\n },\n resource: PVC,\n resourceDetail: HCI.VOLUME,\n resourceEdit: HCI.VOLUME,\n canYaml: false,\n });\n virtualType({\n labelKey: 'harvester.volume.label',\n group: 'root',\n ifHaveType: PVC,\n name: HCI.VOLUME,\n namespaced: true,\n weight: 199,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.VOLUME }\n },\n exact: false\n });\n\n basicType([HCI.IMAGE]);\n headers(HCI.IMAGE, [\n STATE,\n NAME_COL,\n NAMESPACE_COL,\n IMAGE_STORAGE_CLASS,\n IMAGE_PROGRESS,\n IMAGE_DOWNLOAD_SIZE,\n IMAGE_VIRTUAL_SIZE,\n AGE\n ]);\n configureType(HCI.IMAGE, { canYaml: false });\n virtualType({\n labelKey: 'harvester.image.label',\n group: 'root',\n name: HCI.IMAGE,\n namespaced: true,\n weight: 198,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.IMAGE }\n },\n exact: false\n });\n\n basicType(['projects-namespaces']);\n virtualType({\n ifHave: IF_HAVE.MULTI_CLUSTER,\n labelKey: 'harvester.projectNamespace.label',\n group: 'root',\n namespaced: true,\n name: 'projects-namespaces',\n weight: 98,\n route: { name: `${ PRODUCT_NAME }-c-cluster-projectsnamespaces` },\n exact: true,\n });\n\n if (isSingleVirtualCluster) {\n headers(NAMESPACE, [STATE, NAME_UNLINKED, AGE]);\n basicType([NAMESPACE]);\n virtualType({\n labelKey: 'harvester.namespace.label',\n name: NAMESPACE,\n namespaced: true,\n weight: 89,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: NAMESPACE }\n },\n exact: false,\n });\n }\n\n basicType([\n HCI.ALERTMANAGERCONFIG\n ], MONITORING_GROUP);\n\n basicType([\n HCI.CLUSTER_FLOW,\n HCI.CLUSTER_OUTPUT,\n HCI.FLOW,\n HCI.OUTPUT,\n ], LOGGING_GROUP);\n\n weightGroup('Monitoring', 2, true);\n weightGroup('Logging', 1, true);\n\n headers(HCI.ALERTMANAGERCONFIG, [\n STATE,\n NAME_COL,\n NAMESPACE_COL,\n {\n name: 'receivers',\n labelKey: 'tableHeaders.receivers',\n formatter: 'ReceiverIcons',\n value: 'name'\n },\n ]);\n\n configureType(HCI.ALERTMANAGERCONFIG, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.ALERTMANAGERCONFIG },\n },\n resource: MONITORING.ALERTMANAGERCONFIG,\n resourceDetail: HCI.ALERTMANAGERCONFIG,\n resourceEdit: HCI.ALERTMANAGERCONFIG,\n canYaml: false\n });\n\n virtualType({\n ifHaveType: MONITORING.ALERTMANAGERCONFIG,\n labelKey: 'harvester.monitoring.alertmanagerConfig.label',\n name: HCI.ALERTMANAGERCONFIG,\n namespaced: true,\n weight: 87,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.ALERTMANAGERCONFIG }\n },\n exact: false,\n });\n\n configureType(HCI.CLUSTER_FLOW, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.CLUSTER_FLOW },\n },\n resource: LOGGING.CLUSTER_FLOW,\n resourceDetail: HCI.CLUSTER_FLOW,\n resourceEdit: HCI.CLUSTER_FLOW,\n canYaml: false,\n });\n\n virtualType({\n labelKey: 'harvester.logging.clusterFlow.label',\n name: HCI.CLUSTER_FLOW,\n namespaced: true,\n weight: 79,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.CLUSTER_FLOW }\n },\n exact: false,\n });\n\n configureType(HCI.CLUSTER_OUTPUT, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.CLUSTER_OUTPUT },\n },\n resource: LOGGING.CLUSTER_OUTPUT,\n resourceDetail: HCI.CLUSTER_OUTPUT,\n resourceEdit: HCI.CLUSTER_OUTPUT,\n canYaml: false,\n });\n\n virtualType({\n labelKey: 'harvester.logging.clusterOutput.label',\n name: HCI.CLUSTER_OUTPUT,\n namespaced: true,\n weight: 78,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.CLUSTER_OUTPUT }\n },\n exact: false,\n });\n\n configureType(HCI.FLOW, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.FLOW },\n },\n resource: LOGGING.FLOW,\n resourceDetail: HCI.FLOW,\n resourceEdit: HCI.FLOW,\n canYaml: false,\n });\n\n virtualType({\n labelKey: 'harvester.logging.flow.label',\n name: HCI.FLOW,\n namespaced: true,\n weight: 77,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.FLOW }\n },\n exact: false,\n });\n\n configureType(HCI.OUTPUT, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.OUTPUT },\n },\n resource: LOGGING.OUTPUT,\n resourceDetail: HCI.OUTPUT,\n resourceEdit: HCI.OUTPUT,\n canYaml: false,\n });\n\n virtualType({\n labelKey: 'harvester.logging.output.label',\n name: HCI.OUTPUT,\n namespaced: true,\n weight: 76,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.OUTPUT }\n },\n exact: false,\n });\n\n headers(HCI.FLOW, [STATE, NAME_COL, NAMESPACE_COL, OUTPUT, CLUSTER_OUTPUT, CONFIGURED_PROVIDERS, AGE]);\n headers(HCI.OUTPUT, [STATE, NAME_COL, NAMESPACE_COL, LOGGING_OUTPUT_PROVIDERS, AGE]);\n headers(HCI.CLUSTER_FLOW, [STATE, NAME_COL, NAMESPACE_COL, CLUSTER_OUTPUT, CONFIGURED_PROVIDERS, AGE]);\n headers(HCI.CLUSTER_OUTPUT, [STATE, NAME_COL, NAMESPACE_COL, LOGGING_OUTPUT_PROVIDERS, AGE]);\n\n basicType(\n [\n HCI.CLUSTER_NETWORK,\n HCI.NETWORK_ATTACHMENT,\n HCI.LB,\n HCI.IP_POOL,\n ],\n 'networks'\n );\n\n basicType(\n [\n HCI.SCHEDULE_VM_BACKUP,\n HCI.BACKUP,\n HCI.SNAPSHOT,\n HCI.VM_SNAPSHOT,\n ],\n 'backupAndSnapshot'\n );\n\n weightGroup('networks', 300, true);\n weightType(NAMESPACE, 299, true);\n weightGroup('backupAndSnapshot', 289, true);\n\n basicType(\n [\n TEMPLATE,\n HCI.SSH,\n HCI.CLOUD_TEMPLATE,\n HCI.STORAGE,\n HCI.SR_IOV,\n HCI.PCI_DEVICE,\n HCI.SR_IOVGPU_DEVICE,\n HCI.VGPU_DEVICE,\n HCI.USB_DEVICE,\n HCI.ADD_ONS,\n HCI.SECRET,\n HCI.SETTING\n ],\n 'advanced'\n );\n\n configureType(HCI.CLUSTER_NETWORK, {\n realResource: HCI.SETTING,\n showState: false,\n });\n\n virtualType({\n labelKey: 'harvester.vmTemplate.label',\n group: 'root',\n name: TEMPLATE,\n namespaced: true,\n weight: 289,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: TEMPLATE }\n },\n exact: false\n });\n configureType(TEMPLATE, { canYaml: false });\n\n configureType(HCI.SCHEDULE_VM_BACKUP, {\n showListMasthead: false, showConfigView: false, canYaml: false\n });\n virtualType({\n labelKey: 'harvester.schedule.label',\n name: HCI.SCHEDULE_VM_BACKUP,\n namespaced: true,\n weight: 201,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SCHEDULE_VM_BACKUP }\n },\n exact: false,\n ifHaveType: HCI.SCHEDULE_VM_BACKUP,\n });\n\n configureType(HCI.BACKUP, {\n showListMasthead: false, showConfigView: false, canYaml: false\n });\n virtualType({\n labelKey: 'harvester.backup.label',\n name: HCI.BACKUP,\n namespaced: true,\n weight: 200,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.BACKUP }\n },\n exact: false\n });\n\n configureType(HCI.VLAN_CONFIG, { hiddenNamespaceGroupButton: true, canYaml: false });\n\n configureType(HCI.CLUSTER_NETWORK, { showListMasthead: false, canYaml: false });\n virtualType({\n labelKey: 'harvester.clusterNetwork.title',\n name: HCI.CLUSTER_NETWORK,\n ifHaveType: HCI.CLUSTER_NETWORK,\n namespaced: false,\n weight: 189,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.CLUSTER_NETWORK }\n },\n exact: false,\n });\n\n configureType(HCI.NETWORK_ATTACHMENT, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.NETWORK_ATTACHMENT }\n },\n resource: NETWORK_ATTACHMENT,\n resourceDetail: HCI.NETWORK_ATTACHMENT,\n resourceEdit: HCI.NETWORK_ATTACHMENT\n });\n\n virtualType({\n labelKey: 'harvester.network.label',\n name: HCI.NETWORK_ATTACHMENT,\n namespaced: true,\n weight: 188,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.NETWORK_ATTACHMENT }\n },\n exact: false\n });\n\n configureType(HCI.SNAPSHOT, {\n isCreatable: false,\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SNAPSHOT },\n },\n resource: VOLUME_SNAPSHOT,\n resourceDetail: HCI.SNAPSHOT,\n resourceEdit: HCI.SNAPSHOT,\n canYaml: false\n });\n headers(HCI.SNAPSHOT, [STATE, NAME_COL, NAMESPACE_COL, SNAPSHOT_TARGET_VOLUME, AGE]);\n virtualType({\n labelKey: 'harvester.snapshot.label',\n name: HCI.SNAPSHOT,\n namespaced: true,\n weight: 190,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SNAPSHOT }\n },\n exact: false,\n });\n\n configureType(HCI.VM_SNAPSHOT, {\n showListMasthead: false,\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.VM_SNAPSHOT }\n },\n resource: HCI.BACKUP,\n resourceDetail: HCI.VM_SNAPSHOT,\n resourceEdit: HCI.VM_SNAPSHOT,\n canYaml: false\n });\n\n virtualType({\n labelKey: 'harvester.vmSnapshot.label',\n name: HCI.VM_SNAPSHOT,\n namespaced: true,\n weight: 191,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.VM_SNAPSHOT }\n },\n exact: false\n });\n\n headers(HCI.SSH, [STATE, NAME_COL, NAMESPACE_COL, FINGERPRINT, AGE]);\n virtualType({\n labelKey: 'harvester.sshKey.label',\n name: HCI.SSH,\n namespaced: true,\n weight: 170,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SSH }\n },\n exact: false\n });\n\n configureType(HCI.CLOUD_TEMPLATE, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.CLOUD_TEMPLATE }\n },\n resource: CONFIG_MAP,\n resourceDetail: HCI.CLOUD_TEMPLATE,\n resourceEdit: HCI.CLOUD_TEMPLATE,\n canYaml: false\n });\n\n virtualType({\n labelKey: 'harvester.cloudTemplate.label',\n name: HCI.CLOUD_TEMPLATE,\n namespaced: true,\n weight: 87,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.CLOUD_TEMPLATE }\n },\n exact: false\n });\n\n headers(HCI.SECRET, [\n STATE,\n NAME_COL,\n NAMESPACE_COL,\n SUB_TYPE,\n {\n name: 'data',\n labelKey: 'tableHeaders.data',\n value: 'dataPreview',\n formatter: 'SecretData'\n },\n AGE\n ]);\n\n configureType(HCI.SECRET, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SECRET }\n },\n resource: SECRET,\n resourceDetail: HCI.SECRET,\n resourceEdit: HCI.SECRET,\n canYaml: false,\n notFilterNamespace: ['cattle-monitoring-system', 'cattle-logging-system']\n });\n\n virtualType({\n labelKey: 'harvester.secret.label',\n name: HCI.SECRET,\n namespaced: true,\n weight: -999,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SECRET }\n },\n exact: false\n });\n\n // settings\n configureType(HCI.SETTING, { isCreatable: false });\n virtualType({\n ifHaveType: HCI.SETTING,\n ifHaveVerb: 'POST',\n labelKey: 'harvester.setting.label',\n name: HCI.SETTING,\n namespaced: true,\n weight: -1000,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SETTING }\n },\n exact: false\n });\n\n configureType(HCI.STORAGE, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.STORAGE }\n },\n resource: STORAGE_CLASS,\n resourceDetail: HCI.STORAGE,\n resourceEdit: HCI.STORAGE,\n isCreatable: true,\n canYaml: false,\n });\n virtualType({\n labelKey: 'harvester.storage.title',\n group: 'root',\n ifHaveType: STORAGE_CLASS,\n name: HCI.STORAGE,\n namespaced: false,\n weight: 79,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.STORAGE }\n },\n exact: false,\n });\n\n virtualType({\n label: 'PCI Devices',\n group: 'advanced',\n weight: 14,\n name: HCI.PCI_DEVICE,\n namespaced: false,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.PCI_DEVICE }\n },\n exact: false,\n });\n\n configureType(HCI.PCI_DEVICE, {\n isCreatable: false,\n hiddenNamespaceGroupButton: true,\n canYaml: true,\n listGroups: [\n {\n icon: 'icon-list-grouped',\n value: 'description',\n field: 'groupByDevice',\n hideColumn: 'description',\n tooltipKey: 'resourceTable.groupBy.device'\n },\n {\n icon: 'icon-cluster',\n value: 'node',\n field: 'groupByNode',\n hideColumn: 'node',\n tooltipKey: 'resourceTable.groupBy.node'\n }\n ]\n });\n\n virtualType({\n ifHaveType: HCI.SR_IOV,\n labelKey: 'harvester.sriov.label',\n group: 'advanced',\n weight: 15,\n name: HCI.SR_IOV,\n namespaced: false,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SR_IOV }\n },\n exact: false\n });\n\n configureType(HCI.SR_IOV, {\n isCreatable: false,\n hiddenNamespaceGroupButton: true,\n canYaml: false,\n });\n\n virtualType({\n ifHaveType: HCI.SR_IOVGPU_DEVICE,\n labelKey: 'harvester.sriovgpu.label',\n group: 'advanced',\n weight: 13,\n name: HCI.SR_IOVGPU_DEVICE,\n namespaced: false,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.SR_IOVGPU_DEVICE }\n },\n exact: false,\n });\n\n configureType(HCI.SR_IOVGPU_DEVICE, {\n isCreatable: false,\n hiddenNamespaceGroupButton: true,\n canYaml: false,\n });\n\n virtualType({\n labelKey: 'harvester.vgpu.label',\n group: 'advanced',\n weight: 12,\n name: HCI.VGPU_DEVICE,\n namespaced: false,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.VGPU_DEVICE }\n },\n exact: false,\n });\n\n configureType(HCI.VGPU_DEVICE, {\n isCreatable: false,\n hiddenNamespaceGroupButton: true,\n canYaml: false,\n listGroups: [\n {\n icon: 'icon-cluster',\n value: 'node',\n field: 'groupByNode',\n hideColumn: 'node',\n tooltipKey: 'resourceTable.groupBy.node'\n }\n ]\n });\n\n virtualType({\n labelKey: 'harvester.usb.label',\n group: 'advanced',\n weight: 11,\n name: HCI.USB_DEVICE,\n namespaced: false,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.USB_DEVICE }\n },\n exact: false,\n ifHaveType: HCI.USB_DEVICE,\n });\n\n configureType(HCI.USB_DEVICE, {\n isCreatable: false,\n hiddenNamespaceGroupButton: true,\n canYaml: false,\n listGroups: [\n {\n icon: 'icon-list-grouped',\n value: 'description',\n field: 'groupByDevice',\n hideColumn: 'description',\n tooltipKey: 'resourceTable.groupBy.device'\n },\n {\n icon: 'icon-cluster',\n value: 'node',\n field: 'groupByNode',\n hideColumn: 'node',\n tooltipKey: 'resourceTable.groupBy.node'\n }\n ]\n });\n\n configureType(HCI.ADD_ONS, {\n isCreatable: false,\n isRemovable: false,\n showState: false,\n canYaml: false,\n });\n\n virtualType({\n label: 'Add-ons',\n group: 'advanced',\n name: HCI.ADD_ONS,\n ifHaveType: HCI.ADD_ONS,\n weight: -900,\n namespaced: false,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.ADD_ONS }\n },\n exact: false,\n });\n\n configureType(HCI.LB, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.LB }\n },\n canYaml: false,\n });\n virtualType({\n labelKey: 'harvester.loadBalancer.label',\n name: HCI.LB,\n namespaced: true,\n weight: 185,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.LB }\n },\n exact: false,\n ifHaveType: HCI.LB,\n });\n headers(HCI.LB, [\n STATE,\n NAME_COL,\n {\n ...ADDRESS,\n formatter: 'HarvesterListener',\n },\n {\n name: 'workloadType',\n labelKey: 'harvester.loadBalancer.workloadType.label',\n value: 'workloadTypeDisplay',\n },\n {\n name: 'ipam',\n labelKey: 'harvester.loadBalancer.ipam.label',\n value: 'ipamDisplay',\n },\n AGE\n ]);\n\n configureType(HCI.IP_POOL, {\n location: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.IP_POOL }\n },\n canYaml: false,\n });\n virtualType({\n labelKey: 'harvester.ipPool.label',\n name: HCI.IP_POOL,\n namespaced: false,\n weight: 184,\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: { resource: HCI.IP_POOL }\n },\n exact: false,\n ifHaveType: HCI.IP_POOL,\n });\n headers(HCI.IP_POOL, IP_POOL_HEADERS);\n}\n","export const MemoryUnit = [{\n label: 'Mi',\n value: 'Mi'\n}, {\n label: 'Gi',\n value: 'Gi'\n},\n{\n label: 'TiB',\n value: 'Ti'\n}];\n\nexport const InterfaceOption = [{\n label: 'VirtIO',\n value: 'virtio'\n}, {\n label: 'SATA',\n value: 'sata'\n}, {\n label: 'SCSI',\n value: 'scsi'\n}];\n\nexport const SOURCE_TYPE = {\n NEW: 'New',\n IMAGE: 'Virtual Machine Image',\n ATTACH_VOLUME: 'Existing Volume',\n CONTAINER: 'Container'\n};\n\nexport const VOLUME_TYPE = [{\n label: 'disk',\n value: 'disk'\n}, {\n label: 'cd-rom',\n value: 'cd-rom'\n}];\n\nexport const ACCESS_CREDENTIALS = {\n RESET_PWD: 'userPassword',\n INJECT_SSH: 'sshPublicKey'\n};\n\nexport const runStrategies = ['Always', 'RerunOnFailure', 'Manual', 'Halted'];\n\nexport const maintenanceStrategies = [\n 'Migrate',\n 'ShutdownAndRestartAfterEnable',\n 'ShutdownAndRestartAfterDisable',\n 'Shutdown'\n];\n\nexport const VOLUME_DATA_SOURCE_KIND = {\n VolumeSnapshot: 'VolumeSnapshot',\n PersistentVolumeClaim: 'Volume'\n};\n\nexport const FLOW_TYPE = {\n LOGGING: 'Logging',\n AUDIT: 'Audit',\n EVENT: 'Event'\n};\n\nexport const ADD_ONS = {\n HARVESTER_SEEDER: 'harvester-seeder',\n PCI_DEVICE_CONTROLLER: 'pcidevices-controller',\n NVIDIA_DRIVER_TOOLKIT_CONTROLLER: 'nvidia-driver-toolkit',\n RANCHER_LOGGING: 'rancher-logging',\n RANCHER_MONITORING: 'rancher-monitoring',\n VM_IMPORT_CONTROLLER: 'vm-import-controller',\n LVM_DRIVER: 'lvm.driver.harvesterhci.io',\n};\n\nexport const CSI_SECRETS = {\n CSI_PROVISIONER_SECRET_NAME: 'csi.storage.k8s.io/provisioner-secret-name',\n CSI_PROVISIONER_SECRET_NAMESPACE: 'csi.storage.k8s.io/provisioner-secret-namespace',\n CSI_NODE_PUBLISH_SECRET_NAME: 'csi.storage.k8s.io/node-publish-secret-name',\n CSI_NODE_PUBLISH_SECRET_NAMESPACE: 'csi.storage.k8s.io/node-publish-secret-namespace',\n CSI_NODE_STAGE_SECRET_NAME: 'csi.storage.k8s.io/node-stage-secret-name',\n CSI_NODE_STAGE_SECRET_NAMESPACE: 'csi.storage.k8s.io/node-stage-secret-namespace',\n};\n","const CATTLE_REGEX = /cattle\\.io\\//;\nconst VM_MAINTENANCE_MODE_STRATEGY = /harvesterhci\\.io\\/maintain-mode-strategy/;\n\nexport const LABELS_TO_IGNORE_REGEX = [\n CATTLE_REGEX,\n VM_MAINTENANCE_MODE_STRATEGY\n];\n\nexport const HCI = {\n CLOUD_INIT: 'harvesterhci.io/cloud-init-template',\n CURRENT_IP: 'rke2.io/internal-ip',\n IMAGE_ID: 'harvesterhci.io/imageId',\n SSH_NAMES: 'harvesterhci.io/sshNames',\n NETWORK_IPS: 'network.harvesterhci.io/ips',\n TEMPLATE_VERSION_CUSTOM_NAME: 'template-version.harvesterhci.io/customName',\n CREATOR: 'harvesterhci.io/creator',\n OS: 'harvesterhci.io/os',\n GOLDEN_IMAGE: 'harvesterhci.io/goldenImage',\n NETWORK_TYPE: 'network.harvesterhci.io/type',\n VM_NAME: 'harvesterhci.io/vmName',\n VM_NAME_PREFIX: 'harvesterhci.io/vmNamePrefix',\n VM_RESERVED_MEMORY: 'harvesterhci.io/reservedMemory',\n MAINTENANCE_STATUS: 'harvesterhci.io/maintain-status',\n HOST_CUSTOM_NAME: 'harvesterhci.io/host-custom-name',\n HOST_CONSOLE_URL: 'harvesterhci.io/host-console-url',\n RESTORE_NAME: 'restore.harvesterhci.io/name',\n NODE_ROLE_MASTER: 'node-role.kubernetes.io/master',\n NODE_ROLE_CONTROL_PLANE: 'node-role.kubernetes.io/control-plane',\n NODE_ROLE_ETCD: 'node-role.harvesterhci.io/witness',\n PROMOTE_STATUS: 'harvesterhci.io/promote-status',\n MIGRATION_STATE: 'harvesterhci.io/migrationState',\n VOLUME_CLAIM_TEMPLATE: 'harvesterhci.io/volumeClaimTemplates',\n IMAGE_NAME: 'harvesterhci.io/image-name',\n INIT_IP: 'etcd.rke2.cattle.io/node-address',\n NODE_SCHEDULABLE: 'kubevirt.io/schedulable',\n NETWORK_ROUTE: 'network.harvesterhci.io/route',\n MATCHED_NODES: 'network.harvesterhci.io/matched-nodes',\n OS_UPGRADE_IMAGE: 'harvesterhci.io/os-upgrade-image',\n LATEST_UPGRADE: 'harvesterhci.io/latestUpgrade',\n UPGRADE_STATE: 'harvesterhci.io/upgradeState',\n REAY_MESSAGE: 'harvesterhci.io/read-message',\n DYNAMIC_SSHKEYS_NAMES: 'harvesterhci.io/dynamic-ssh-key-names',\n DYNAMIC_SSHKEYS_USERS: 'harvesterhci.io/dynamic-ssh-key-users',\n IMAGE_SUFFIX: 'harvesterhci.io/image-type',\n OS_TYPE: 'harvesterhci.io/os-type',\n STORAGE_PROVISIONER: 'harvesterhci.io/storageProvisioner',\n SKIP_SINGLE_REPLICA_DETACHED_VOL: 'harvesterhci.io/skipSingleReplicaDetachedVol',\n HOST_REQUEST: 'management.cattle.io/pod-requests',\n STORAGE_CLASS: 'harvesterhci.io/storageClassName',\n STORAGE_NETWORK: 'storage-network.settings.harvesterhci.io',\n ADDON_EXPERIMENTAL: 'addon.harvesterhci.io/experimental',\n VOLUME_ERROR: 'longhorn.io/volume-scheduling-error',\n KVM_AMD_CPU: 'cpu-feature.node.kubevirt.io/svm',\n KVM_INTEL_CPU: 'cpu-feature.node.kubevirt.io/vmx',\n NODE_MANUFACTURER: 'manufacturer',\n NODE_MODEL: 'model',\n NODE_SERIAL_NUMBER: 'serialNumber',\n VM_INSUFFICIENT: 'harvesterhci.io/insufficient-resource-quota',\n NODE_NTP_SYNC_STATUS: 'node.harvesterhci.io/ntp-service',\n PARENT_SRIOV: 'harvesterhci.io/parent-sriov-network-device',\n PARENT_SRIOV_GPU: 'harvesterhci.io/parentSRIOVGPUDevice',\n VM_MAINTENANCE_MODE_STRATEGY: 'harvesterhci.io/maintain-mode-strategy',\n NODE_CPU_MANAGER_UPDATE_STATUS: 'harvesterhci.io/cpu-manager-update-status',\n CPU_MANAGER: 'cpumanager',\n VM_DEVICE_ALLOCATION_DETAILS: 'harvesterhci.io/deviceAllocationDetails',\n SVM_BACKUP_ID: 'harvesterhci.io/svmbackupId',\n DISABLE_LONGHORN_V2_ENGINE: 'node.longhorn.io/disable-v2-data-engine',\n};\n","/**\n * Harvester\n */\n\n// image\nexport const IMAGE_DOWNLOAD_SIZE = {\n name: 'downloadedBytes',\n labelKey: 'tableHeaders.size',\n value: 'downSize',\n sort: 'status.size',\n};\n\nexport const IMAGE_VIRTUAL_SIZE = {\n name: 'virtualSize',\n labelKey: 'harvester.tableHeaders.virtualSize',\n value: 'virtualSize',\n sort: 'status.virtualSize',\n};\n\nexport const IMAGE_PROGRESS = {\n name: 'Uploaded',\n labelKey: 'tableHeaders.progress',\n value: 'status.progress',\n sort: 'status.progress',\n formatter: 'ImagePercentageBar',\n};\n\n// SSH keys\nexport const FINGERPRINT = {\n name: 'Fingerprint',\n labelKey: 'tableHeaders.fingerprint',\n value: 'status.fingerPrint',\n};\n\n// The column of target volume on snapshot list page\nexport const SNAPSHOT_TARGET_VOLUME = {\n name: 'TargetVolume',\n labelKey: 'harvester.tableHeaders.snapshotTargetVolume',\n value: 'spec.source.persistentVolumeClaimName',\n sort: 'spec.source.persistentVolumeClaimName',\n formatter: 'SnapshotTargetVolume',\n};\n\n// The column of cron expression volume on VM schedules list page\nexport const VM_SCHEDULE_CRON = {\n name: 'CronExpression',\n labelKey: 'harvester.tableHeaders.cronExpression',\n value: 'spec.cron',\n align: 'center',\n sort: 'spec.cron',\n formatter: 'HarvesterCronExpression',\n};\n\n// The column of retain on VM schedules list page\nexport const VM_SCHEDULE_RETAIN = {\n name: 'Retain',\n labelKey: 'harvester.tableHeaders.retain',\n value: 'spec.retain',\n sort: 'spec.retain',\n align: 'center',\n};\n\n// The column of maxFailure on VM schedules list page\nexport const VM_SCHEDULE_MAX_FAILURE = {\n name: 'MaxFailure',\n labelKey: 'harvester.tableHeaders.maxFailure',\n value: 'spec.maxFailure',\n sort: 'spec.maxFailure',\n align: 'center',\n};\n\n// The column of type on VM schedules list page\nexport const VM_SCHEDULE_TYPE = {\n name: 'Type',\n labelKey: 'harvester.tableHeaders.scheduleType',\n value: 'spec.vmbackup.type',\n sort: 'spec.vmbackup.type',\n align: 'center',\n};\n\n// The MACHINE_POOLS column in Virtualization Management list page\nexport const MACHINE_POOLS = {\n name: 'summary',\n labelKey: 'tableHeaders.machines',\n sort: false,\n search: false,\n value: 'nodes.length',\n align: 'center',\n width: 100,\n};\n\n// The STORAGE_CLASS column in VM image list page\nexport const IMAGE_STORAGE_CLASS = {\n name: 'imageStorageClass',\n labelKey: 'harvester.tableHeaders.storageClass',\n sort: 'imageStorageClass',\n value: 'imageStorageClass',\n align: 'left',\n width: 200,\n};\n","export const BACKUP_TYPE = {\n BACKUP: 'backup',\n SNAPSHOT: 'snapshot'\n};\n\nexport const NETWORK_TYPE = {\n L2VLAN: 'L2VlanNetwork',\n UNTAGGED: 'UntaggedNetwork'\n};\n","import { MANAGEMENT } from '@shell/config/types';\nimport NormanModel from '@shell/plugins/steve/norman-class';\n\nexport default class CRTB extends NormanModel {\n get clusterroletemplatebinding() {\n return this.$rootGetters[`management/byId`](MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING, this.id?.replace(':', '/'));\n }\n\n get principalId() {\n return this.userPrincipalId || this.groupPrincipalId;\n }\n\n get roleDisplay() {\n return this.roleTemplate.nameDisplay;\n }\n\n get roleDescription() {\n return this.roleTemplate.description;\n }\n\n get roleTemplate() {\n return this.$rootGetters['management/byId'](MANAGEMENT.ROLE_TEMPLATE, this.roleTemplateId);\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { escapeHtml } from '@shell/utils/string';\nimport { HCI } from '../types';\n\nconst STATUS_DISPLAY = {\n enabled: {\n displayKey: 'generic.enabled',\n color: 'bg-success'\n },\n pending: {\n displayKey: 'generic.inProgress',\n color: 'bg-info'\n },\n disabled: {\n displayKey: 'generic.disabled',\n color: 'bg-warning'\n },\n error: {\n displayKey: 'generic.disabled',\n color: 'bg-warning'\n }\n};\n\n/**\n * Class representing PCI Device resource.\n * @extends SteveModal\n */\nexport default class PCIDevice extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n out.push(\n {\n action: 'enablePassthroughBulk',\n enabled: !this.isEnabling,\n icon: 'icon icon-fw icon-dot',\n label: 'Enable Passthrough',\n bulkable: true,\n bulkAction: 'enablePassthroughBulk',\n weight: 1\n },\n {\n action: 'disablePassthrough',\n enabled: this.isEnabling && this.claimedByMe,\n icon: 'icon icon-fw icon-dot-open',\n label: 'Disable Passthrough',\n bulkable: true,\n weight: 0\n },\n );\n\n return out;\n }\n\n get canYaml() {\n return false;\n }\n\n get canDelete() {\n return false;\n }\n\n goToDetail() {\n return false;\n }\n\n goToEdit() {\n return false;\n }\n\n get passthroughClaim() {\n const passthroughClaims = this.$getters['all'](HCI.PCI_CLAIM) || [];\n\n return !!this.status && passthroughClaims.find((req) => req?.spec?.nodeName === this.status?.nodeName && req?.spec?.address === this.status?.address);\n }\n\n // this is an id for each 'type' of device - there may be multiple instances of device CRs\n get uniqueId() {\n return `${ this.status?.vendorId }:${ this.status?.deviceId }`;\n }\n\n get claimedBy() {\n return this.passthroughClaim?.spec?.userName;\n }\n\n get claimedByMe() {\n if (!this.passthroughClaim) {\n return false;\n }\n const isSingleProduct = this.$rootGetters['isSingleProduct'];\n let userName = 'admin';\n\n // if this is imported Harvester, there may be users other than admin\n if (!isSingleProduct) {\n const user = this.$rootGetters['auth/v3User'];\n\n userName = user?.username || user?.id;\n }\n\n return this.claimedBy === userName;\n }\n\n // isEnabled controls visibility in vm create page & ability to delete claim\n // isEnabling controls ability to add claim\n // there will be a brief period where isEnabling === true && isEnabled === false\n get isEnabled() {\n return !!this.passthroughClaim?.status?.passthroughEnabled;\n }\n\n get isEnabling() {\n return !!this.passthroughClaim;\n }\n\n // map status.passthroughEnabled to disabled/enabled & overwrite default dash colors\n get claimStatusDisplay() {\n if (!this.passthroughClaim) {\n return STATUS_DISPLAY.disabled;\n }\n if (this.isEnabled) {\n return STATUS_DISPLAY.enabled;\n }\n\n return STATUS_DISPLAY.pending;\n }\n\n get stateDisplay() {\n const t = this.$rootGetters['i18n/t'];\n\n return t(this.claimStatusDisplay.displayKey);\n }\n\n get stateBackground() {\n return this.claimStatusDisplay.color;\n }\n\n // 'enable' passthrough creates the passthrough claim CRD -\n enablePassthroughBulk(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'EnablePciPassthrough'\n });\n }\n\n // 'disable' passthrough deletes claim\n // backend should return error if device is in use\n async disablePassthrough() {\n try {\n if (!this.claimedByMe) {\n throw new Error(this.$rootGetters['i18n/t']('harvester.pci.cantUnclaim', { name: escapeHtml(this.metadata.name) }));\n } else {\n await this.passthroughClaim.remove();\n }\n } catch (err) {\n this.$dispatch('growl/fromError', {\n title: this.$rootGetters['i18n/t']('harvester.pci.unclaimError', { name: escapeHtml(this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n // group device list by node\n get groupByNode() {\n const name = this.status?.nodeName || this.$rootGetters['i18n/t']('generic.none');\n\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.node', { name: escapeHtml(name) });\n }\n\n // group device list by unique device (same vendorid and deviceid)\n get groupByDevice() {\n return this.status?.description;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { escapeHtml } from '@shell/utils/string';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { NODE } from '@shell/config/types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../types';\n\n/**\n * Class representing SR-IOV Device resource.\n * @extends SteveModal\n */\nexport default class SRIOVDevice extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n out.push(\n {\n action: 'enableDevice',\n enabled: !this.isEnabled,\n icon: 'icon icon-fw icon-dot',\n label: 'Enable',\n },\n {\n action: 'disableDevice',\n enabled: this.isEnabled,\n icon: 'icon icon-fw icon-dot-open',\n label: 'Disable',\n },\n );\n\n return out;\n }\n\n get canYaml() {\n return false;\n }\n\n get canDelete() {\n return false;\n }\n\n goToDetail() {\n return false;\n }\n\n goToEdit() {\n return false;\n }\n\n get actualState() {\n return this.isEnabled ? 'Enabled' : 'Disabled';\n }\n\n get stateDisplay() {\n return this.actualState;\n }\n\n get stateColor() {\n const state = this.actualState;\n\n return colorForState(state);\n }\n\n get isEnabled() {\n return this.spec.enabled && this.status?.vfAddresses?.length > 0 && this.status?.vGPUDevices?.length > 0;\n }\n\n async enableDevice() {\n try {\n this.spec.enabled = true;\n await this.save();\n } catch (err) {\n this.$dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n async disableDevice() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const schema = this.$rootGetters[`${ inStore }/schemaFor`](HCI.VGPU_DEVICE);\n\n if (!!schema) {\n const vGpuDevices = this.$rootGetters[`${ inStore }/all`](HCI.VGPU_DEVICE) || [];\n const vGpuDevicesEnabled = vGpuDevices\n .filter((f) => f.labels[HCI_ANNOTATIONS.PARENT_SRIOV_GPU] === this.id && f.spec?.enabled)\n .map((m) => m.id);\n\n if (vGpuDevicesEnabled.length > 0) {\n this.$dispatch('growl/error', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.metadata.name) }),\n message: `\n Cannot disable ${ this.metadata.name }, following vGPU devices are enabled:\n [${ vGpuDevicesEnabled.join(', ') }]\n `,\n }, { root: true });\n\n return;\n }\n }\n\n try {\n this.spec.enabled = false;\n await this.save();\n } catch (err) {\n this.$dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n get realNodeName() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const nodeName = this.spec?.nodeName;\n const nodes = this.$rootGetters[`${ inStore }/all`](NODE);\n const node = nodes.find((N) => N.id === nodeName);\n\n return node?.nameDisplay || '';\n }\n\n get numVFs() {\n return this.status?.vfAddresses?.length || 0;\n }\n\n get childDevice() {\n return HCI.VGPU_DEVICE;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { escapeHtml } from '@shell/utils/string';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { NODE } from '@shell/config/types';\nimport { HCI } from '../types';\n\n/**\n * Class representing SR-IOV Device resource.\n * @extends SteveModal\n */\nexport default class SRIOVGpuDevice extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n out.push(\n {\n action: 'enableDevice',\n enabled: !this.isEnabled,\n icon: 'icon icon-fw icon-dot',\n label: 'Enable',\n },\n {\n action: 'disableDevice',\n enabled: this.isEnabled,\n icon: 'icon icon-fw icon-dot-open',\n label: 'Disable',\n },\n );\n\n return out;\n }\n\n get canYaml() {\n return false;\n }\n\n get canDelete() {\n return false;\n }\n\n goToDetail() {\n return false;\n }\n\n goToEdit() {\n return false;\n }\n\n get actualState() {\n return this.isEnabled ? 'Enabled' : 'Disabled';\n }\n\n get stateDisplay() {\n return this.actualState;\n }\n\n get stateColor() {\n const state = this.actualState;\n\n return colorForState(state);\n }\n\n get isEnabled() {\n return this.status?.status === 'sriovNetworkDeviceEnabled' && this.spec?.numVFs > 0;\n }\n\n enableDevice(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'EnableSriovDevice'\n });\n }\n\n async disableDevice() {\n const numVFsHistory = this.spec.numVFs;\n\n try {\n this.spec.numVFs = 0;\n await this.save();\n } catch (err) {\n this.spec.numVFs = numVFsHistory;\n this.$dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n get realNodeName() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const nodeName = this.spec?.nodeName;\n const nodes = this.$rootGetters[`${ inStore }/all`](NODE);\n const node = nodes.find((N) => N.id === nodeName);\n\n return node?.nameDisplay || '';\n }\n\n get numVFs() {\n return this.spec?.numVFs;\n }\n\n get childDevice() {\n return HCI.PCI_DEVICE;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { escapeHtml } from '@shell/utils/string';\nimport { HCI } from '../types';\n\nconst STATUS_DISPLAY = {\n enabled: {\n displayKey: 'generic.enabled',\n color: 'bg-success'\n },\n pending: {\n displayKey: 'generic.inProgress',\n color: 'bg-info'\n },\n disabled: {\n displayKey: 'generic.disabled',\n color: 'bg-warning'\n },\n error: {\n displayKey: 'generic.disabled',\n color: 'bg-warning'\n }\n};\n\n/**\n * Class representing USB Device resource.\n * @extends SteveModal\n */\nexport default class USBDevice extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n out.push(\n {\n action: 'enablePassthroughBulk',\n enabled: !this.passthroughClaim && !this.status.enabled,\n icon: 'icon icon-fw icon-dot',\n label: 'Enable Passthrough',\n bulkable: true,\n bulkAction: 'enablePassthroughBulk',\n weight: 1\n },\n {\n action: 'disablePassthrough',\n enabled: this.status.enabled,\n icon: 'icon icon-fw icon-dot-open',\n label: 'Disable Passthrough',\n bulkable: true,\n weight: 0\n },\n );\n\n return out;\n }\n\n get canYaml() {\n return false;\n }\n\n get canDelete() {\n return false;\n }\n\n goToDetail() {\n return false;\n }\n\n goToEdit() {\n return false;\n }\n\n get passthroughClaim() {\n const passthroughClaims = this.$getters['all'](HCI.USB_CLAIM) || [];\n\n return !!this.status && passthroughClaims.find((req) => req?.status?.nodeName === this.status?.nodeName && req?.metadata?.name === this.metadata?.name);\n }\n\n // this is an id for each 'type' of device - there may be multiple instances of device CRs\n get uniqueId() {\n return `${ this.status?.vendorId }:${ this.status?.deviceId }`;\n }\n\n get claimedBy() {\n return this.passthroughClaim?.spec?.userName;\n }\n\n get claimedByMe() {\n if (!this.passthroughClaim) {\n return false;\n }\n const isSingleProduct = this.$rootGetters['isSingleProduct'];\n let userName = 'admin';\n\n // if this is imported Harvester, there may be users other than admin\n if (!isSingleProduct) {\n const user = this.$rootGetters['auth/v3User'];\n\n userName = user?.username || user?.id;\n }\n\n return this.claimedBy === userName;\n }\n\n // map status.passthroughEnabled to disabled/enabled & overwrite default dash colors\n get claimStatusDisplay() {\n if (!this.passthroughClaim) {\n return STATUS_DISPLAY.disabled;\n }\n if (this.status.enabled) {\n return STATUS_DISPLAY.enabled;\n }\n\n return STATUS_DISPLAY.pending;\n }\n\n get stateDisplay() {\n const t = this.$rootGetters['i18n/t'];\n\n return t(this.claimStatusDisplay.displayKey);\n }\n\n get stateBackground() {\n return this.claimStatusDisplay.color;\n }\n\n // 'enable' passthrough creates the passthrough claim CRD -\n enablePassthroughBulk(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'EnableUSBPassthrough'\n });\n }\n\n // 'disable' passthrough deletes claim\n // backend should return error if device is in use\n async disablePassthrough() {\n try {\n if (!this.claimedByMe) {\n throw new Error(this.$rootGetters['i18n/t']('harvester.usb.cantUnclaim', { name: escapeHtml(this.metadata.name) }));\n } else {\n await this.passthroughClaim.remove();\n }\n } catch (err) {\n this.$dispatch('growl/fromError', {\n title: this.$rootGetters['i18n/t']('harvester.usb.unclaimError', { name: escapeHtml(this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n // group device list by node\n get groupByNode() {\n const name = this.status?.nodeName || this.$rootGetters['i18n/t']('generic.none');\n\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.node', { name: escapeHtml(name) });\n }\n\n // group device list by unique device (same vendorid and deviceid)\n get groupByDevice() {\n return this.status?.description;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { escapeHtml } from '@shell/utils/string';\n\nconst STATUS_DISPLAY = {\n enabled: {\n displayKey: 'generic.enabled',\n color: 'bg-success'\n },\n pending: {\n displayKey: 'generic.inProgress',\n color: 'bg-info'\n },\n disabled: {\n displayKey: 'generic.disabled',\n color: 'bg-warning'\n },\n error: {\n displayKey: 'generic.disabled',\n color: 'bg-warning'\n }\n};\n\n/**\n * Class representing PCI Device resource.\n * @extends SteveModal\n */\nexport default class VGpuDevice extends SteveModel {\n get _availableActions() {\n const out = super._availableActions;\n\n out.push(\n {\n action: 'enableVGpu',\n enabled: !this.isEnabled,\n icon: 'icon icon-fw icon-dot',\n label: 'Enable',\n },\n {\n action: 'disableVGpu',\n enabled: this.isEnabled,\n icon: 'icon icon-fw icon-dot-open',\n label: 'Disable',\n bulkable: true,\n },\n );\n\n return out;\n }\n\n get canYaml() {\n return false;\n }\n\n get canDelete() {\n return false;\n }\n\n goToDetail() {\n return false;\n }\n\n goToEdit() {\n return false;\n }\n\n get isEnabled() {\n return this?.spec?.enabled === true;\n }\n\n get isEnabling() {\n return this.status?.vGPUStatus && this.status?.vGPUStatus !== 'vGPUConfigured';\n }\n\n get statusDisplay() {\n if (this.isEnabling) {\n return STATUS_DISPLAY.pending;\n }\n if (this.isEnabled) {\n return STATUS_DISPLAY.enabled;\n }\n\n return STATUS_DISPLAY.disabled;\n }\n\n get stateDisplay() {\n const t = this.$rootGetters['i18n/t'];\n\n return t(this.statusDisplay.displayKey);\n }\n\n get stateBackground() {\n return this.statusDisplay.color;\n }\n\n enableVGpu(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'EnableVGpuDevice'\n });\n }\n\n async disableVGpu() {\n const { vGPUTypeName, enabled } = this.spec;\n\n try {\n this.spec.vGPUTypeName = undefined;\n this.spec.enabled = false;\n await this.save();\n } catch (err) {\n this.spec.vGPUTypeName = vGPUTypeName;\n this.spec.enabled = enabled;\n\n this.$dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n get groupByNode() {\n const name = this.spec?.nodeName || this.$rootGetters['i18n/t']('generic.none');\n\n return this.$rootGetters['i18n/t']('resourceTable.groupLabel.node', { name: escapeHtml(name) });\n }\n\n get vGpuAvailableTypes() {\n return this.status?.availableTypes ? Object.keys(this.status.availableTypes) : [];\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { VIEW_IN_API, DEV } from '@shell/store/prefs';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\n\nexport default class HarvesterResource extends SteveModel {\n get listLocation() {\n const name = this.harvesterResourcesInExplorer ? 'c-cluster-product-resource' : `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return this.$rootGetters['type-map/optionsFor'](this.type).customRoute || {\n name,\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n },\n };\n }\n\n get parentLocationOverride() {\n return this.listLocation;\n }\n\n get doneRoute() {\n return this.listLocation.name;\n }\n\n get doneOverride() {\n return this.listLocation;\n }\n\n get harvesterResourcesInExplorer() {\n return this.$rootGetters['productId'] !== HARVESTER_PRODUCT;\n }\n\n get _detailLocation() {\n const schema = this.$getters['schemaFor'](this.type);\n const id = this.id?.replace(/.*\\//, '');\n const name = this.harvesterResourcesInExplorer ? `c-cluster-product-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id` : `${ HARVESTER_PRODUCT }-c-cluster-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`;\n\n const out = {\n name,\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n namespace: this.metadata?.namespace,\n id,\n },\n };\n\n if (this.harvesterResourcesInExplorer) {\n out.query = { as: 'yaml' };\n }\n\n return out;\n }\n\n get forceYaml() {\n return this.harvesterResourcesInExplorer;\n }\n\n get canViewInApi() {\n try {\n return this.hasLink('self') && this.$rootGetters['prefs/get'](VIEW_IN_API);\n } catch {\n return this.hasLink('self') && this.$rootGetters['prefs/get'](DEV);\n }\n }\n}\n","import { clone } from '@shell/utils/object';\nimport { HCI } from '../../types';\nimport HarvesterResource from '../harvester';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\n\nexport default class HciConfigMap extends HarvesterResource {\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.CLOUD_TEMPLATE;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.CLOUD_TEMPLATE;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.CLOUD_TEMPLATE }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n}\n","import { clone } from '@shell/utils/object';\nimport NetworkAttachmentDef from '@pkg/harvester/models/k8s.cni.cncf.io.networkattachmentdefinition';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\n\nconst NOT_READY = 'Not Ready';\n\nexport default class HarvesterNetworkAttachmentDef extends NetworkAttachmentDef {\n get listLocation() {\n return this.$rootGetters['type-map/optionsFor'](this.type).customRoute || {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: {\n product: HARVESTER_PRODUCT,\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n },\n };\n }\n\n get doneRoute() {\n return this.listLocation.name;\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.NETWORK_ATTACHMENT;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource-namespace-id`;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.NETWORK_ATTACHMENT;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.NETWORK_ATTACHMENT }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get inStore() {\n return this.$rootGetters['currentProduct'].inStore;\n }\n\n get clusterNetworkResource() {\n const clusterNetworks = this.$rootGetters[`${ this.inStore }/all`](HCI.CLUSTER_NETWORK);\n\n return clusterNetworks.find((c) => c.id === this.clusterNetwork);\n }\n\n get clusterNetworkErrorMessage() {\n if (!this.clusterNetworkResource) {\n return this.t('harvester.clusterNetwork.notExist', { clusterNetwork: this.clusterNetwork });\n } else if (!this.clusterNetworkResource.isReady) {\n return this.t('harvester.clusterNetwork.notReady', { clusterNetwork: this.clusterNetwork });\n } else {\n return '';\n }\n }\n\n get stateDisplay() {\n if (this.clusterNetworkErrorMessage) {\n return NOT_READY;\n }\n\n return super.stateDisplay;\n }\n\n get stateBackground() {\n if (this.stateDisplay === NOT_READY) {\n return 'bg-warning';\n }\n\n return super.stateBackground;\n }\n\n get isNotReady() {\n return this.clusterNetworkErrorMessage;\n }\n}\n","import { clone } from '@shell/utils/object';\nimport { LOGGING } from '@shell/config/types';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\nimport HarvesterFlow from './logging.banzaicloud.io.flow';\n\nexport default class HciClusterflow extends HarvesterFlow {\n get allOutputs() {\n return this.$rootGetters['harvester/all'](LOGGING.CLUSTER_OUTPUT) || [];\n }\n\n get _detailLocation() {\n const schema = this.$getters['schemaFor'](this.type);\n\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`,\n params: {\n product: HARVESTER_PRODUCT,\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n id,\n namespace: this.metadata.namespace,\n },\n };\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.CLUSTER_FLOW;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.CLUSTER_FLOW;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.CLUSTER_FLOW }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n}\n","import { clone } from '@shell/utils/object';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\nimport LogOutput from './logging.banzaicloud.io.output';\n\nexport default class HciClusteroutput extends LogOutput {\n get _detailLocation() {\n const schema = this.$getters['schemaFor'](this.type);\n\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`,\n params: {\n product: HARVESTER_PRODUCT,\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n id,\n namespace: this.metadata.namespace,\n },\n };\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.CLUSTER_OUTPUT;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.CLUSTER_OUTPUT;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.CLUSTER_OUTPUT }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n}\n","import { LOGGING } from '@shell/config/types';\nimport { clone } from '@shell/utils/object';\nimport Flow from '@shell/models/logging.banzaicloud.io.flow';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\nimport { FLOW_TYPE } from '../../config/harvester-map';\n\nexport default class HarvesterLogFlow extends Flow {\n get allOutputs() {\n return this.$rootGetters['harvester/all'](LOGGING.OUTPUT) || [];\n }\n\n get allClusterOutputs() {\n return this.$rootGetters['harvester/all'](LOGGING.CLUSTER_OUTPUT) || [];\n }\n\n get _detailLocation() {\n const schema = this.$getters['schemaFor'](this.type);\n\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`,\n params: {\n product: HARVESTER_PRODUCT,\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n id,\n namespace: this.metadata.namespace,\n },\n };\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.FLOW;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.FLOW;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.FLOW }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get loggingType() {\n if (this.spec.loggingRef === 'harvester-kube-audit-log-ref') {\n return FLOW_TYPE.AUDIT;\n }\n\n if ((this.spec.match || []).find((M) => !!M?.select?.labels?.['app.kubernetes.io/name'])) {\n return FLOW_TYPE.EVENT;\n }\n\n return FLOW_TYPE.LOGGING;\n }\n}\n","import { clone } from '@shell/utils/object';\nimport LogOutput from '@shell/models/logging.banzaicloud.io.output';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\nimport { FLOW_TYPE } from '../../config/harvester-map';\n\nexport default class HarvesterLogOutput extends LogOutput {\n get _detailLocation() {\n const schema = this.$getters['schemaFor'](this.type);\n\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`,\n params: {\n product: HARVESTER_PRODUCT,\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n id,\n namespace: this.metadata.namespace,\n },\n };\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.OUTPUT;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.OUTPUT;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.OUTPUT }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get url() {\n return this.detailLocation;\n }\n\n get loggingType() {\n if (this.spec.loggingRef === 'harvester-kube-audit-log-ref') {\n return FLOW_TYPE.AUDIT;\n }\n\n return FLOW_TYPE.LOGGING;\n }\n}\n","import { clone } from '@shell/utils/object';\nimport ManagementSetting from '@shell/models/management.cattle.io.setting';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\n\nexport default class HCIManagementSetting extends ManagementSetting {\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.SETTING;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.SETTING;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get doneRoute() {\n return null;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.SETTING }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get doneParams() {\n return {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n resource: HCI.SETTING,\n };\n }\n}\n","import { clone, set } from '@shell/utils/object';\nimport { _YAML, _CREATE, _VIEW, _CONFIG } from '@shell/config/query-params';\nimport SteveModel from '@shell/plugins/steve/steve-class';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\n\nexport default class HciAlertmanagerConfig extends SteveModel {\n get _detailLocation() {\n return {\n name: this.alertmanagerConfigDoneRouteName,\n params: {\n cluster: this.$rootGetters['clusterId'],\n resource: HCI.ALERTMANAGERCONFIG,\n namespace: this.metadata?.namespace,\n id: this.name,\n },\n hash: '#receivers',\n query: { as: 'config' }\n };\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.ALERTMANAGERCONFIG;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.ALERTMANAGERCONFIG }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n applyDefaults() {\n if (this.spec) {\n return this.spec;\n }\n const existingReceivers = this.spec?.route?.receivers || [];\n\n const defaultSpec = {\n receivers: [...existingReceivers],\n route: {\n receivers: this.spec?.route?.receivers || [],\n groupBy: this.spec?.route?.groupBy || [],\n groupWait: this.spec?.route?.groupWait || '30s',\n groupInterval: this.spec?.route?.groupInterval || '5m',\n repeatInterval: this.spec?.route?.repeatInterval || '4h',\n match: this.spec?.route?.match || {},\n matchRe: this.spec?.route?.matchRe || {}\n }\n };\n\n set(this, 'spec', defaultSpec);\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n return out;\n }\n\n getReceiverActions(alertmanagerConfigActions) {\n return alertmanagerConfigActions.filter((actionData) => {\n if (actionData.divider) {\n return true;\n }\n switch (actionData.action) {\n case 'goToEdit':\n return true;\n case 'goToEditYaml':\n return true;\n case 'promptRemove':\n return true;\n default:\n return false;\n }\n });\n }\n\n get alertmanagerConfigDoneRouteName() {\n return `${ HARVESTER_PRODUCT }-c-cluster-resource-namespace-id`;\n }\n\n getCreateReceiverRoute() {\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,\n params: { cluster: this.$rootGetters['clusterId'], alertmanagerconfigid: this.id },\n query: { mode: _CREATE, currentView: _CONFIG }\n };\n }\n\n getReceiverDetailLink(receiverName) {\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,\n params: {\n cluster: this.$rootGetters['clusterId'],\n alertmanagerconfigid: this.id,\n receiverName\n },\n query: {\n mode: _VIEW, receiverName, currentView: _CONFIG\n }\n };\n }\n\n getEditReceiverYamlRoute(receiverName, queryMode) {\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,\n params: {\n cluster: this.$rootGetters['clusterId'],\n alertmanagerconfigid: this.id\n },\n query: {\n mode: queryMode || _VIEW,\n receiverName,\n currentView: _YAML\n }\n };\n }\n\n getEditReceiverConfigRoute(receiverName, queryMode) {\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,\n params: {\n cluster: this.$rootGetters['clusterId'],\n alertmanagerconfigid: this.id\n },\n query: {\n mode: queryMode || _VIEW,\n receiverName,\n currentView: _CONFIG\n }\n };\n }\n}\n","import { insertAt } from '@shell/utils/array';\nimport namespace from '@shell/models/namespace';\nimport { SYSTEM_NAMESPACE, FLEET } from '@shell/config/labels-annotations';\nimport SYSTEM_NAMESPACES from '@shell/config/system-namespaces';\nimport { get } from '@shell/utils/object';\nimport { NAMESPACE } from '@shell/config/types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '@pkg/harvester/config/harvester';\nimport { HCI } from '../../types';\n\nconst OBSCURE_NAMESPACE_PREFIX = [\n 'c-', // cluster namespace\n\n // Project namespace. When a user creates a project, Rancher creates\n // namespaces in the local cluster with the 'p-' prefix which are\n // used to manage RBAC for the project. If these namespaces are deleted,\n // role bindings can be lost and Rancher may need to be restored from\n // backup. Therefore we hide these namespaces unless the developer setting\n // is turned on from the user preferences.\n 'p-',\n\n 'user-', // user namespace\n 'local', // local namespace\n];\n\nexport default class HciNamespace extends namespace {\n get _availableActions() {\n const out = super._availableActions;\n const remove = out.findIndex((a) => a.action === 'promptRemove');\n\n const promptRemove = {\n action: 'promptRemove',\n altAction: 'remove',\n label: this.t('action.remove'),\n icon: 'icon icon-trash',\n bulkable: true,\n enabled: this.canDelete,\n bulkAction: 'promptRemove',\n weight: -10,\n };\n\n const editQuotaAction = {\n action: 'editNSQuota',\n label: this.t('harvester.modal.quota.editQuota'),\n icon: 'icon icon-storage',\n enabled: !!this?.actions?.updateResourceQuota && !!this?.actions?.deleteResourceQuota,\n weight: -11,\n };\n\n if (remove > -1) {\n out.splice(remove, 1);\n }\n\n insertAt(out, out.length - 1, promptRemove);\n insertAt(out, out.length - 5, editQuotaAction);\n\n return out;\n }\n\n editNSQuota(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n snapshotSizeQuota: this.snapshotSizeQuota,\n component: 'HarvesterQuotaDialog'\n });\n }\n\n promptRemove(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n warningMessageKey: 'promptRemove.confirmRelatedResource',\n component: 'ConfirmRelatedToRemoveDialog'\n });\n }\n\n get nsResourceQuota() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const allResQuotas = this.$rootGetters[`${ inStore }/all`](HCI.RESOURCE_QUOTA);\n\n return allResQuotas.find( (RQ) => RQ.metadata.namespace === this.id);\n }\n\n get snapshotSizeQuota() {\n return this.nsResourceQuota?.spec?.snapshotLimit?.namespaceTotalSnapshotSizeQuota;\n }\n\n get isSystem() {\n const systemNamespaces = ['fleet-default'];\n\n if (systemNamespaces.includes(this.metadata.name)) {\n return true;\n }\n\n if ( this.metadata?.annotations?.[SYSTEM_NAMESPACE] === 'true' ) {\n return true;\n }\n\n if ( SYSTEM_NAMESPACES.includes(this.metadata.name) ) {\n return true;\n }\n\n if ( this.metadata.name.endsWith('-system') ) {\n return true;\n }\n\n if ( this.project ) {\n return this.project.isSystem;\n }\n\n if (get(this, `metadata.labels.\"${ FLEET.MANAGED }\"`) === 'true') {\n return true;\n }\n\n const isSettingSystemNamespace = this.$rootGetters['systemNamespaces'].includes(this.metadata.name);\n const isObscurePrefix = !!OBSCURE_NAMESPACE_PREFIX.some((prefix) => this.metadata.name.startsWith(prefix));\n\n return isSettingSystemNamespace || isObscurePrefix;\n }\n\n get detailLocation() {\n const id = this.id?.replace(/.*\\//, '');\n\n const detailLocation = {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-id`,\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n resource: NAMESPACE,\n namespace: this.metadata?.namespace,\n id,\n }\n };\n\n return detailLocation;\n }\n\n get hideDetailLocation() {\n return !!this.$rootGetters['currentProduct'].hideNamespaceLocation;\n }\n}\n","import pickBy from 'lodash/pickBy';\nimport { CAPI, LONGHORN, POD, NODE } from '@shell/config/types';\nimport { CAPI as CAPI_ANNOTATIONS } from '@shell/config/labels-annotations.js';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { clone } from '@shell/utils/object';\nimport findLast from 'lodash/findLast';\nimport {\n colorForState,\n stateDisplay,\n STATES_ENUM,\n} from '@shell/plugins/dashboard-store/resource-class';\nimport { parseSi } from '@shell/utils/units';\nimport { findBy, isArray } from '@shell/utils/array';\nimport { ucFirst } from '@shell/utils/string';\nimport HarvesterResource from '../harvester';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\nimport { HCI } from '../../types';\n\nconst ALLOW_SYSTEM_LABEL_KEYS = [\n 'topology.kubernetes.io/zone',\n 'topology.kubernetes.io/region',\n];\n\nconst HEALTHY = 'healthy';\nconst WARNING = 'warning';\n\nexport default class HciNode extends HarvesterResource {\n get _availableActions() {\n const cordon = {\n action: 'cordon',\n enabled: this.hasAction('cordon') && !this.isCordoned,\n icon: 'icon icon-fw icon-pause',\n label: this.t('harvester.action.cordon'),\n total: 1\n };\n\n const uncordon = {\n action: 'uncordon',\n enabled: this.hasAction('uncordon'),\n icon: 'icon icon-fw icon-play',\n label: this.t('harvester.action.uncordon'),\n total: 1\n };\n\n const enableMaintenance = {\n action: 'enableMaintenanceMode',\n enabled: this.hasAction('enableMaintenanceMode'),\n icon: 'icon icon-fw icon-unlock',\n label: this.t('harvester.action.enableMaintenance'),\n total: 1\n };\n\n const disableMaintenance = {\n action: 'disableMaintenanceMode',\n enabled: this.hasAction('disableMaintenanceMode'),\n icon: 'icon icon-fw icon-lock',\n label: this.t('harvester.action.disableMaintenance'),\n total: 1\n };\n\n const enableCPUManager = {\n action: 'enableCPUManager',\n enabled: this.cpuPinningFeatureEnabled && this.hasAction('enableCPUManager') && !this.isCPUManagerEnableInProgress && !this.isCPUManagerEnabled && !this.isEtcd, // witness node doesn't have CPU manager\n icon: 'icon icon-fw icon-os-management',\n label: this.t('harvester.action.enableCPUManager'),\n total: 1\n };\n\n const disableCPUManager = {\n action: 'disableCPUManager',\n enabled: this.cpuPinningFeatureEnabled && this.hasAction('disableCPUManager') && !this.isCPUManagerEnableInProgress && this.isCPUManagerEnabled && !this.isEtcd,\n icon: 'icon icon-fw icon-os-management',\n label: this.t('harvester.action.disableCPUManager'),\n total: 1\n };\n\n const shutDown = {\n action: 'shutDown',\n enabled: this.hasAction('powerActionPossible') && this.hasAction('powerAction') && !this.isStopped && !!this.inventory,\n icon: 'icon icon-fw icon-dot',\n label: this.t('harvester.action.shutdown'),\n total: 1\n };\n\n const powerOn = {\n action: 'powerOn',\n enabled: this.hasAction('powerActionPossible') && this.hasAction('powerAction') && this.isStopped && !!this.inventory,\n icon: 'icon icon-fw icon-play',\n label: this.t('harvester.action.powerOn'),\n total: 1\n };\n\n const reboot = {\n action: 'reboot',\n enabled: this.hasAction('powerActionPossible') && this.hasAction('powerAction') && !this.isStopped && !!this.inventory,\n icon: 'icon icon-fw icon-refresh',\n label: this.t('harvester.action.reboot'),\n total: 1\n };\n\n return [\n cordon,\n uncordon,\n enableMaintenance,\n disableMaintenance,\n enableCPUManager,\n disableCPUManager,\n shutDown,\n powerOn,\n reboot,\n ...super._availableActions\n ];\n }\n\n promptRemove(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n warningMessageKey: 'promptRemove.confirmRelatedResource',\n component: 'ConfirmRelatedToRemoveDialog'\n });\n }\n\n remove(resources = this) {\n const nodes = Array.isArray(resources) ? resources : [resources];\n\n nodes.forEach((node) => {\n if (node.capiMachine) {\n node.capiMachine.remove();\n } else {\n node.remove();\n }\n });\n }\n\n get capiMachine() {\n const namespace = this.annotations?.[CAPI_ANNOTATIONS.CLUSTER_NAMESPACE];\n const name = this.annotations?.[CAPI_ANNOTATIONS.MACHINE_NAME];\n\n if (namespace && name) {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n\n return this.$rootGetters[`${ inStore }/byId`](CAPI.MACHINE, `${ namespace }/${ name }`);\n }\n\n return null;\n }\n\n get confirmRemove() {\n return true;\n }\n\n get consoleUrl() {\n const url = this.metadata?.annotations?.[HCI_ANNOTATIONS.HOST_CONSOLE_URL];\n const validator = /^[a-z]+:\\/\\//;\n\n if (!url?.match(validator)) {\n return false;\n }\n\n return url;\n }\n\n get filteredSystemLabels() {\n const reg = /(k3s|kubernetes|kubevirt|harvesterhci|k3os)+\\.io/;\n\n const labels = pickBy(this.labels, (value, key) => {\n return !reg.test(key);\n });\n\n ALLOW_SYSTEM_LABEL_KEYS.map((key) => {\n const value = this?.metadata?.labels?.[key];\n\n if (value) {\n labels[key] = value;\n }\n });\n\n return labels;\n }\n\n get nameDisplay() {\n return (\n this.metadata?.annotations?.[HCI_ANNOTATIONS.HOST_CUSTOM_NAME] ||\n this.name\n );\n }\n\n get isKVMDisable() {\n const allNotExist = !this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_AMD_CPU] && !this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_INTEL_CPU];\n\n return this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_AMD_CPU] === 'false' || this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_INTEL_CPU] === 'false' || allNotExist;\n }\n\n get stateDisplay() {\n if (this.isEnteringMaintenance) {\n return 'Entering maintenance mode';\n }\n\n if (this.isStopping) {\n return ucFirst(STATES_ENUM.STOPPING);\n }\n\n if (this.isStarting) {\n return ucFirst(STATES_ENUM.STARTING);\n }\n\n if (this.isStopped) {\n return ucFirst(STATES_ENUM.OFF);\n }\n\n if (this.isRebooting) {\n return 'Rebooting';\n }\n\n if (this.isMaintenance) {\n return 'Maintenance';\n }\n\n if (this.isCordoned) {\n return 'Cordoned';\n }\n\n return stateDisplay(this.state);\n }\n\n get stateBackground() {\n if (this.isStopped || this.isStopping || this.isStarting || this.isRebooting) {\n return colorForState(\n this.stateDisplay,\n false,\n this.stateObj?.transitioning\n ).replace('text-', 'bg-');\n }\n\n return colorForState(\n this.stateDisplay,\n this.stateObj?.error,\n this.stateObj?.transitioning\n ).replace('text-', 'bg-');\n }\n\n get stateDescription() {\n const currentIP = this.metadata?.annotations?.[HCI_ANNOTATIONS.CURRENT_IP];\n const initIP = this.metadata?.annotations?.[HCI_ANNOTATIONS.INIT_IP];\n\n if (initIP && currentIP && currentIP !== initIP) {\n return this.t('harvester.host.inconsistentIP', { currentIP, initIP });\n }\n\n return super.stateDescription;\n }\n\n get stateObj() {\n const currentIP = this.metadata?.annotations?.[HCI_ANNOTATIONS.CURRENT_IP];\n const initIP = this.metadata?.annotations?.[HCI_ANNOTATIONS.INIT_IP];\n\n if (initIP && currentIP && currentIP !== initIP) {\n this.metadata.state.error = true;\n }\n\n return this.metadata?.state;\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.HOST;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.HOST;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.HOST }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get internalIp() {\n const addresses = this.status?.addresses || [];\n\n return findLast(addresses, (address) => address.type === 'InternalIP')\n ?.address;\n }\n\n get isMaster() {\n return (\n this.metadata?.labels?.[HCI_ANNOTATIONS.NODE_ROLE_MASTER] !== undefined ||\n this.metadata?.labels?.[HCI_ANNOTATIONS.NODE_ROLE_CONTROL_PLANE] !==\n undefined\n );\n }\n\n cordon() {\n this.doActionGrowl('cordon', {});\n }\n\n uncordon() {\n this.doAction('uncordon', {});\n }\n\n enableMaintenanceMode(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterMaintenanceDialog'\n });\n }\n\n disableMaintenanceMode() {\n this.doAction('disableMaintenanceMode', {});\n }\n\n enableCPUManager() {\n this.doActionGrowl('enableCPUManager', {});\n }\n\n disableCPUManager() {\n this.doActionGrowl('disableCPUManager', {});\n }\n\n get isUnSchedulable() {\n return (\n this.metadata?.labels?.[HCI_ANNOTATIONS.NODE_SCHEDULABLE] === 'false' ||\n this.spec.unschedulable\n );\n }\n\n get isMigratable() {\n const states = ['in-progress', 'unavailable'];\n\n return (\n !this.metadata?.annotations?.[HCI_ANNOTATIONS.MAINTENANCE_STATUS] &&\n !this.isUnSchedulable &&\n !states.includes(this.state)\n );\n }\n\n get isCordoned() {\n return (this.isUnSchedulable && !this.isEtcd) || this.hasAction('uncordon');\n }\n\n get isEtcd() {\n return this.metadata?.labels?.[HCI_ANNOTATIONS.NODE_ROLE_ETCD];\n }\n\n get isEnteringMaintenance() {\n return (\n this.metadata?.annotations?.[HCI_ANNOTATIONS.MAINTENANCE_STATUS] ===\n 'running'\n );\n }\n\n get isMaintenance() {\n return (\n this.metadata?.annotations?.[HCI_ANNOTATIONS.MAINTENANCE_STATUS] ===\n 'completed'\n );\n }\n\n get cpuPinningFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('cpuPinning');\n }\n\n get isCPUManagerEnabled() {\n return this.metadata?.labels?.[HCI_ANNOTATIONS.CPU_MANAGER] === 'true';\n }\n\n get isCPUManagerEnableInProgress() {\n return this.cpuManagerUpdateStatus === 'requested' || this.cpuManagerUpdateStatus === 'running';\n }\n\n get isCPUManagerEnableFailed() {\n return this.cpuManagerUpdateStatus === 'failed';\n }\n\n get cpuManagerUpdateStatus() {\n try {\n const cpuManagerUpdate = JSON.parse(this.metadata.annotations[HCI_ANNOTATIONS.NODE_CPU_MANAGER_UPDATE_STATUS] || '{}');\n\n return cpuManagerUpdate.status || '';\n } catch {\n return '';\n }\n }\n\n get longhornDisks() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const longhornNode = this.$rootGetters[`${ inStore }/byId`](\n LONGHORN.NODES,\n `longhorn-system/${ this.id }`\n );\n const diskStatus = longhornNode?.status?.diskStatus || {};\n const diskSpec = longhornNode?.spec?.disks || {};\n\n const longhornDisks = Object.keys(diskStatus).map((key) => {\n const conditions = diskStatus[key]?.conditions || [];\n let readyCondition = {};\n let schedulableCondition = {};\n\n if (isArray(conditions)) {\n readyCondition = findBy(conditions, 'type', 'Ready') || {};\n schedulableCondition = findBy(conditions, 'type', 'Schedulable') || {};\n } else {\n readyCondition = conditions.Ready;\n schedulableCondition = conditions.Schedulable;\n }\n\n let state;\n\n if (readyCondition?.status !== 'True' || schedulableCondition?.status !== 'True') {\n state = WARNING;\n } else {\n state = HEALTHY;\n }\n\n return {\n ...diskSpec[key],\n ...diskStatus[key],\n name: key,\n storageReserved: diskSpec[key]?.storageReserved,\n storageAvailable: diskStatus[key]?.storageAvailable,\n storageMaximum: diskStatus[key]?.storageMaximum,\n storageScheduled: diskStatus[key]?.storageScheduled,\n readyCondition,\n schedulableCondition,\n state,\n };\n });\n\n return longhornDisks;\n }\n\n get pods() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const pods = this.$rootGetters[`${ inStore }/all`](POD) || [];\n\n return pods.filter(\n (p) => p?.spec?.nodeName === this.id && p?.metadata?.name !== 'removing'\n );\n }\n\n get reserved() {\n try {\n return JSON.parse(this.metadata.annotations[HCI_ANNOTATIONS.HOST_REQUEST] || '{}');\n } catch {\n return {};\n }\n }\n\n get cpuReserved() {\n return parseSi(this.reserved.cpu || '0');\n }\n\n get memoryReserved() {\n return parseSi(this.reserved.memory || '0');\n }\n\n get canDelete() {\n const nodes = this.$rootGetters['harvester/all'](NODE) || [];\n\n return nodes.length > 1 && super.canDelete;\n }\n\n get vlanStatuses() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const nodeId = this.id;\n const vlanStatuses = this.$rootGetters[`${ inStore }/all`](HCI.VLAN_STATUS);\n\n return vlanStatuses.filter((s) => s?.status?.node === nodeId) || [];\n }\n\n get blockDevices() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const nodeId = this.id;\n const blockDevices = this.$rootGetters[`${ inStore }/all`](HCI.BLOCK_DEVICE);\n\n return blockDevices.filter((s) => s?.spec?.nodeName === nodeId) || [];\n }\n\n get unProvisionedDisks() {\n const blockDevices = this.blockDevices || [];\n\n return blockDevices.filter((d) => d?.isProvisioned && d?.status?.provisionPhase !== 'Provisioned');\n }\n\n get diskStatusCount() {\n const errorBlockDevices = this.unProvisionedDisks.filter((b) => b.metadata.state.error) || [];\n\n let errorCount = 0;\n\n this.longhornDisks.map((d) => {\n if (d.state === 'warning') {\n errorCount++;\n }\n });\n\n const total = this.longhornDisks.length + errorBlockDevices.length;\n\n return {\n total,\n errorCount: errorCount + errorBlockDevices.length,\n useful: total - errorCount,\n };\n }\n\n get manufacturer() {\n return this.metadata?.labels?.[HCI_ANNOTATIONS.NODE_MANUFACTURER];\n }\n\n get serialNumber() {\n return this.metadata?.labels?.[HCI_ANNOTATIONS.NODE_SERIAL_NUMBER];\n }\n\n get model() {\n return this.metadata?.labels?.[HCI_ANNOTATIONS.NODE_MODEL];\n }\n\n get isStopped() {\n const inventory = this.inventory || {};\n\n return inventory.spec?.powerActionRequested === 'shutdown' &&\n inventory.status?.powerAction?.actionStatus === 'complete';\n }\n\n get isStopping() {\n const inventory = this.inventory || {};\n\n if (!Object.prototype.hasOwnProperty.call(inventory?.status?.powerAction || {}, 'actionStatus')) {\n return inventory.spec?.powerActionRequested === 'shutdown';\n } else {\n return false;\n }\n }\n\n get isStarted() {\n const inventory = this.inventory || {};\n\n return inventory.spec?.powerActionRequested === 'poweron' &&\n inventory.status?.powerAction?.actionStatus === 'complete';\n }\n\n get isStarting() {\n const inventory = this.inventory || {};\n\n if (!Object.prototype.hasOwnProperty.call(inventory?.status?.powerAction || {}, 'actionStatus')) {\n return inventory.spec?.powerActionRequested === 'poweron';\n } else {\n return false;\n }\n }\n\n get isRebooting() {\n const inventory = this.inventory || {};\n\n if (!Object.prototype.hasOwnProperty.call(inventory?.status?.powerAction || {}, 'actionStatus')) {\n return inventory.spec?.powerActionRequested === 'reboot';\n } else {\n return false;\n }\n }\n\n async shutDown(resources = this) {\n try {\n await this.doAction('powerActionPossible', {});\n\n await this.doAction('powerAction', { operation: 'shutdown' });\n\n await this.$dispatch('growl/success', {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.host.powerAction.message.success', {\n name: this.name,\n operation: 'shut down'\n })\n }, { root: true });\n } catch (err) {\n await this.$dispatch('growl/error', {\n title: this.t('generic.notification.title.error'),\n message: err,\n }, { root: true });\n }\n }\n\n async powerOn(resources = this) {\n const operation = 'poweron';\n\n try {\n await this.doAction('powerActionPossible', {});\n\n await this.doAction('powerAction', { operation });\n\n await this.$dispatch('growl/success', {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.host.powerAction.message.success', {\n name: this.name,\n operation,\n })\n }, { root: true });\n } catch (err) {\n await this.$dispatch('growl/error', {\n title: this.t('generic.notification.title.error'),\n message: err,\n }, { root: true });\n }\n }\n\n async reboot(resources = this) {\n const operation = 'reboot';\n\n try {\n await this.doAction('powerActionPossible', {});\n\n await this.doAction('powerAction', { operation });\n\n await this.$dispatch('growl/success', {\n title: this.t('generic.notification.title.succeed'),\n message: this.t('harvester.host.powerAction.message.success', {\n name: this.name,\n operation,\n })\n }, { root: true });\n } catch (err) {\n await this.$dispatch('growl/error', {\n title: this.t('generic.notification.title.error'),\n message: err,\n }, { root: true });\n }\n }\n\n get inventory() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const inventories = this.$rootGetters[`${ inStore }/all`](HCI.INVENTORY) || [];\n\n return inventories.find((inv) => inv.id === `harvester-system/${ this.id }`);\n }\n\n get warningMessages() {\n let out = [];\n\n out = out.concat(this.inventory?.warningMessages || []);\n\n return out;\n }\n}\n","import { _CLONE } from '@shell/config/query-params';\nimport pick from 'lodash/pick';\nimport { PV, LONGHORN, STORAGE_CLASS, LONGHORN_DRIVER } from '@shell/config/types';\nimport { DESCRIPTION } from '@shell/config/labels-annotations';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { findBy } from '@shell/utils/array';\nimport { get, clone } from '@shell/utils/object';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { HCI, VOLUME_SNAPSHOT } from '../../types';\nimport HarvesterResource from '../harvester';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\nimport { LVM_DRIVER } from './storage.k8s.io.storageclass';\n\nconst DEGRADED_ERRORS = ['replica scheduling failed', 'precheck new replica failed'];\n\nexport const DATA_ENGINE_V1 = 'v1';\nexport const DATA_ENGINE_V2 = 'v2';\n\nexport default class HciPv extends HarvesterResource {\n applyDefaults(_, realMode) {\n const accessModes = realMode === _CLONE ? this.spec.accessModes : [];\n const storage =\n realMode === _CLONE ? this.spec.resources.requests.storage : null;\n const storageClassName =\n realMode === _CLONE ? this.spec.storageClassName : '';\n\n this['spec'] = {\n accessModes,\n storageClassName,\n volumeName: '',\n resources: { requests: { storage } }\n };\n }\n\n get availableActions() {\n let out = super._availableActions;\n\n // Longhorn V2 provisioner do not support volume clone feature yet\n if (this.isLonghornV2) {\n out = out.filter((action) => action.action !== 'goToClone');\n } else {\n const clone = out.find((action) => action.action === 'goToClone');\n\n if (clone) {\n clone.action = 'goToCloneVolume';\n }\n }\n\n const exportImageAction = {\n action: 'exportImage',\n enabled: this.hasAction('export') && !this.isEncrypted,\n icon: 'icon icon-copy',\n label: this.t('harvester.action.exportImage')\n };\n const takeSnapshotAction = {\n action: 'snapshot',\n enabled: this.hasAction('snapshot'),\n icon: 'icon icon-backup',\n label: this.t('harvester.action.snapshot'),\n };\n\n if (this.thirdPartyStorageFeatureEnabled) { // v1.5.0\n out = [\n exportImageAction,\n takeSnapshotAction,\n ...out\n ];\n // TODO: remove this block if Longhorn V2 engine supports restore volume snapshot\n if (this.isLonghornV2) {\n out = out.filter((action) => action.action !== takeSnapshotAction.action);\n }\n } else { // v1.4 / v1.3\n if (!this.isLonghorn || !this.isLonghornV2) {\n out = [\n exportImageAction,\n takeSnapshotAction,\n ...out\n ];\n }\n }\n\n return [\n {\n action: 'cancelExpand',\n enabled: this.hasAction('cancelExpand'),\n icon: 'icon icon-backup',\n label: this.t('harvester.action.cancelExpand')\n },\n ...out\n ];\n }\n\n exportImage(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterExportImageDialog'\n });\n }\n\n cancelExpand(resources = this) {\n this.doActionGrowl('cancelExpand', {});\n }\n\n snapshot(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'SnapshotDialog'\n });\n }\n\n goToCloneVolume(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'VolumeCloneDialog'\n });\n }\n\n cleanForNew() {\n this.$dispatch(`cleanForNew`, this);\n\n delete this.metadata.finalizers;\n const keys = [HCI_ANNOTATIONS.IMAGE_ID, DESCRIPTION];\n\n this.metadata.annotations = pick(this.metadata.annotations, keys);\n }\n\n get storageClass() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n\n return this.$rootGetters[`${ inStore }/all`](STORAGE_CLASS).find((sc) => sc.name === this.spec.storageClassName);\n }\n\n get canUpdate() {\n return this.hasLink('update');\n }\n\n get stateDisplay() {\n const volumeError = this.relatedPV?.metadata?.annotations?.[HCI_ANNOTATIONS.VOLUME_ERROR];\n const degradedVolume = DEGRADED_ERRORS.includes(volumeError);\n const status = this?.status?.phase === 'Bound' && !volumeError && this.isLonghornVolumeReady ? 'Ready' : 'Not Ready';\n\n const conditions = this?.status?.conditions || [];\n\n if (findBy(conditions, 'type', 'Resizing')?.status === 'True') {\n return 'Resizing';\n } else if (!!this.attachVM && !volumeError) {\n return 'In-use';\n } else if (degradedVolume) {\n return 'Degraded';\n } else {\n return status;\n }\n }\n\n // state is similar with stateDisplay, the reason we keep this property is the status of In-use should not be displayed on vm detail page\n get state() {\n const volumeError = this.relatedPV?.metadata?.annotations?.[HCI_ANNOTATIONS.VOLUME_ERROR];\n const degradedVolume = DEGRADED_ERRORS.includes(volumeError);\n let status = this?.status?.phase === 'Bound' && !volumeError ? 'Ready' : 'Not Ready';\n\n const conditions = this?.status?.conditions || [];\n\n if (degradedVolume) {\n status = 'Degraded';\n }\n\n if (findBy(conditions, 'type', 'Resizing')?.status === 'True') {\n status = 'Resizing';\n }\n\n return status;\n }\n\n get stateColor() {\n const state = this.stateDisplay;\n\n return colorForState(state);\n }\n\n get stateDescription() {\n return (\n super.stateDescription\n );\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.VOLUME;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.VOLUME;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.VOLUME }\"`, { count: 1 }).trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get phaseState() {\n return this.status?.phase || 'N/A';\n }\n\n get attachVM() {\n const allVMs = this.$rootGetters['harvester/all'](HCI.VM) || [];\n\n const findAttachVM = (vm) => {\n const attachVolumes = vm.spec.template?.spec?.volumes || [];\n\n if (vm.namespace === this.namespace && attachVolumes.length > 0) {\n return attachVolumes.find((vol) => vol.persistentVolumeClaim?.claimName === this.name);\n }\n\n return null;\n };\n\n return allVMs.find(findAttachVM);\n }\n\n get isAvailable() {\n const unAvailable = ['Resizing', 'Not Ready'];\n\n return !unAvailable.includes(this.stateDisplay);\n }\n\n get volumeSort() {\n const volume = this.spec?.resources?.requests?.storage || 0;\n\n return parseInt(volume);\n }\n\n get isSystemResource() {\n const systemNamespaces = this.$rootGetters['systemNamespaces'];\n\n if (systemNamespaces.includes(this.metadata?.namespace)) {\n return true;\n }\n\n return false;\n }\n\n get isEncrypted() {\n return this.relatedPV?.spec?.csi?.volumeAttributes?.encrypted === 'true';\n }\n\n get longhornVolume() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n\n return this.$rootGetters[`${ inStore }/all`](LONGHORN.VOLUMES).find((v) => v.metadata?.name === this.spec?.volumeName);\n }\n\n get longhornEngine() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n\n return this.$rootGetters[`${ inStore }/all`](LONGHORN.ENGINES).find((v) => v.spec?.volumeName === this.spec?.volumeName);\n }\n\n // https://github.com/longhorn/longhorn-manager/blob/master/api/model.go#L1151\n get isLonghornVolumeReady() {\n let ready = true;\n const longhornVolume = this.longhornVolume || {};\n\n const scheduledCondition = (longhornVolume?.status?.conditions || []).find((c) => c.type === 'Scheduled' || c.type === 'scheduled') || {};\n\n if ((longhornVolume?.spec?.nodeID === '' && longhornVolume?.status?.state !== 'detached') ||\n (longhornVolume?.status?.state === 'detached' && scheduledCondition.status !== 'True') ||\n longhornVolume?.status?.robustness === 'faulted' ||\n longhornVolume?.status?.restoreRequired ||\n longhornVolume?.status?.cloneStatus?.state === 'failed'\n ) {\n ready = false;\n }\n\n return ready;\n }\n\n get relatedVolumeSnapshotCounts() {\n const snapshots = this.$rootGetters['harvester/all'](VOLUME_SNAPSHOT);\n\n return snapshots.filter((snapshot) => {\n const volumeId = `${ snapshot.metadata?.namespace }/${ snapshot.spec?.source?.persistentVolumeClaimName }`;\n const kind = snapshot.metadata?.ownerReferences?.[0]?.kind;\n\n return volumeId === this.id && kind === 'PersistentVolumeClaim';\n });\n }\n\n get originalSnapshot() {\n if (this.spec?.dataSource) {\n return this.$rootGetters['harvester/all'](VOLUME_SNAPSHOT).find((V) => V.metadata?.name === this.spec.dataSource.name);\n } else {\n return null;\n }\n }\n\n get source() {\n const imageId = get(this, `metadata.annotations.\"${ HCI_ANNOTATIONS.IMAGE_ID }\"`);\n\n return imageId ? 'image' : 'data';\n }\n\n get warnDeletionMessage() {\n return this.t('harvester.volume.promptRemove.tips');\n }\n\n get relatedPV() {\n return this.$rootGetters['harvester/all'](PV).find((pv) => pv.metadata?.name === this.spec?.volumeName);\n }\n\n get volumeProvider() {\n return this.relatedPV?.spec.csi?.driver;\n }\n\n get dataEngine() {\n return this.relatedPV?.spec.csi?.volumeAttributes?.dataEngine;\n }\n\n get isLvm() {\n return this.volumeProvider === LVM_DRIVER;\n }\n\n get isLonghorn() {\n return this.volumeProvider === LONGHORN_DRIVER;\n }\n\n get isLonghornV2() {\n return this.dataEngine === DATA_ENGINE_V2;\n }\n\n get thirdPartyStorageFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('thirdPartyStorage');\n }\n\n get resourceExternalLink() {\n const host = window.location.host;\n const { params } = this.currentRoute();\n const volumeName = this.spec?.volumeName;\n\n if (!volumeName) {\n return null;\n }\n\n return {\n tipsKey: 'harvester.volume.externalLink.tips',\n url: `https://${ host }/k8s/clusters/${ params.cluster }/api/v1/namespaces/longhorn-system/services/http:longhorn-frontend:80/proxy/#/volume/${ volumeName }`\n };\n }\n\n get customValidationRules() {\n return [\n {\n nullable: false,\n path: 'spec.resources.requests.storage',\n required: true,\n validators: ['volumeSize']\n },\n ];\n }\n}\n","import includes from 'lodash/includes';\nimport { findBy } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\nimport { NODE } from '@shell/config/types';\nimport HarvesterResource from '../harvester';\n\nconst POD_STATUS_NOT_SCHEDULABLE = 'POD_NOT_SCHEDULABLE';\n\nconst POD_STATUS_FAILED = 'POD_FAILED';\nconst POD_STATUS_CRASHLOOP_BACKOFF = 'POD_CRASHLOOP_BACKOFF';\nconst POD_STATUS_UNKNOWN = 'POD_STATUS_UNKNOWN';\nconst POD_STATUS_CONTAINER_FAILING = 'POD_CONTAINER_FAILING';\nconst POD_STATUS_NOT_READY = 'POD_NOT_READY';\n\nconst POD_STATUS_PENDING = 'POD_STATUS_PENDING';\nconst POD_STATUS_COMPLETED = 'POD_STATUS_COMPLETED';\nconst POD_STATUS_SUCCEEDED = 'POD_STATUS_SUCCEEDED';\nconst POD_STATUS_RUNNING = 'POD_STATUS_RUNNING';\n\nconst failedWaitingContainerReasons = ['ImagePullBackOff', 'ErrImagePull', 'CrashLoopBackOff'];\nconst failedTerminationContainerReasons = ['Error'];\n\nconst errorStatusMapper = {\n Failed: POD_STATUS_FAILED,\n CrashLoopBackOff: POD_STATUS_CRASHLOOP_BACKOFF,\n Unknown: POD_STATUS_UNKNOWN,\n};\n\nconst okStatusMapper = {\n Pending: POD_STATUS_PENDING,\n Running: POD_STATUS_RUNNING,\n Completed: POD_STATUS_COMPLETED,\n Succeeded: POD_STATUS_SUCCEEDED,\n};\n\nconst stateReasonResolver = {\n terminated: ({ reason, exitCode }) => `Terminated with ${ reason }${ exitCode ? ` (exit code ${ exitCode }).` : '.' }`,\n waiting: ({ reason }) => `Waiting (${ reason }).`,\n};\n\nexport default class HciPod extends HarvesterResource {\n get inStore() {\n return this.$rootGetters['currentProduct'].inStore;\n }\n\n get nodes() {\n return this.$rootGetters[`${ this.inStore }/all`](NODE);\n }\n\n get node() {\n const { nodeName } = this.spec;\n\n return this.nodes.filter((node) => {\n return node?.metadata?.name === nodeName;\n })[0];\n }\n\n get getPodStatus() {\n return this.isNotSchedulable ||\n this.hasErrorStatus ||\n this.isContainerFailing ||\n this.isNotReady ||\n this.hasOkStatus || { status: POD_STATUS_UNKNOWN };\n }\n\n get isNotSchedulable() {\n if (!this.isPodSchedulable) {\n const conditions = get(this, 'status.conditions');\n const podScheduledCond = findBy(conditions, 'type', 'PodScheduled');\n\n return {\n status: POD_STATUS_NOT_SCHEDULABLE,\n message: podScheduledCond.message || 'Pod scheduling failed.',\n };\n }\n\n return null;\n }\n\n get hasErrorStatus() {\n const status = errorStatusMapper[this?.status?.phase];\n\n if (status) {\n return {\n status,\n message: this.getContainerStatusReason(this.findFailingContainerStatus),\n };\n }\n\n return null;\n }\n\n get isPodSchedulable() {\n const conditions = get(this, 'status.conditions');\n const podScheduledCond = findBy(conditions, 'type', 'PodScheduled');\n\n return !(\n podScheduledCond &&\n podScheduledCond.status !== 'True' &&\n podScheduledCond.reason === 'Unschedulable'\n );\n }\n\n get findFailingContainerStatus() {\n return (get(this, 'status.containerStatuses'), []).find((container) => {\n return !container.ready &&\n (includes(failedWaitingContainerReasons, get(container, 'state.waiting.reason')) ||\n includes(failedTerminationContainerReasons, get(container, 'state.terminated.reason')));\n });\n }\n\n get getContainerStatusReason() {\n return (containerStatus) => {\n if (containerStatus) {\n const stateName = Object.getOwnPropertyNames(containerStatus.state).find(\n (pn) => !!containerStatus.state[pn].reason,\n );\n\n if (stateName) {\n const state = containerStatus.state[stateName];\n\n return (\n state.message ||\n (stateReasonResolver[stateName] && stateReasonResolver[stateName](state)) ||\n stateName\n );\n }\n }\n\n return undefined;\n };\n }\n\n get isContainerFailing() {\n const failingContainer = this.findFailingContainerStatus;\n\n if (failingContainer) {\n return {\n status: POD_STATUS_CONTAINER_FAILING,\n message: this.getContainerStatusReason(failingContainer),\n };\n }\n\n return null;\n }\n\n get isNotReady() {\n const message = this.findPodFalseStatusConditionMessage;\n\n if (message) {\n return {\n status: POD_STATUS_NOT_READY,\n message,\n };\n }\n\n return null;\n }\n\n get hasOkStatus() {\n const status = okStatusMapper[this?.status?.phase];\n\n if (status) {\n return { status };\n }\n\n return null;\n }\n\n get findPodFalseStatusConditionMessage() {\n const notReadyConditions = this.getPodFalseStatusConditions;\n\n if (notReadyConditions.length > 0) {\n return notReadyConditions[0].message || `Step: ${ notReadyConditions[0].type }`;\n }\n\n return undefined;\n }\n\n get getPodFalseStatusConditions() {\n const conditions = get(this, 'status.conditions') || [];\n\n return conditions.filter((condition) => condition.status !== 'True');\n }\n}\n","import SteveSchema from '@shell/models/steve-schema';\n\n/**\n * This is the steve schema that's used for the harvester store\n */\nexport default class HarvesterStoreSchema extends SteveSchema {}\n","import { clone } from '@shell/utils/object';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\nimport Secret from '@shell/models/secret';\nimport { NAMESPACE } from '@shell/config/types';\n\nexport default class HciSecret extends Secret {\n get _detailLocation() {\n const schema = this.$getters['schemaFor'](this.type);\n\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`,\n params: {\n product: HARVESTER_PRODUCT,\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n id,\n namespace: this.metadata.namespace,\n },\n };\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.SECRET;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.SECRET;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get doneRoute() {\n return this.doneOverride.name;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.SECRET }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get isSystem() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n\n const systemNs = this.$rootGetters[`${ inStore }/all`](NAMESPACE).filter((ns) => ns.isSystem === true).map((ns) => ns.metadata.name);\n\n return systemNs.includes(this.metadata.namespace);\n }\n\n get details() {\n const out = [\n {\n label: this.t('secret.type'),\n content: this.typeDisplay\n }\n ];\n\n if (this.cn) {\n out.push({\n label: this.t('secret.certificate.cn'),\n content: this.plusMoreNames ? `${ this.cn } ${ this.t('secret.certificate.plusMore', { n: this.plusMoreNames }) }` : this.cn\n });\n }\n\n if (this.issuer) {\n out.push({\n label: this.t('secret.certificate.issuer'),\n content: this.issuer\n });\n }\n\n if (this.notAfter) {\n out.push({\n label: 'Expires',\n formatter: 'Date',\n formatterOpts: { class: this.dateClass },\n content: this.notAfter\n });\n }\n\n return out;\n }\n}\n","import { clone } from '@shell/utils/object';\nimport { PVC } from '@shell/config/types';\nimport { HCI } from '../../types';\nimport HarvesterResource from '../harvester';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\n\nexport default class HciSnapshot extends HarvesterResource {\n get availableActions() {\n return [\n {\n action: 'restoreSnapshot',\n enabled: this.hasAction('restore'),\n icon: 'icon icon-refresh',\n label: this.t('harvester.action.restore'),\n },\n ...super._availableActions\n ];\n }\n\n get canClone() {\n return false;\n }\n\n restoreSnapshot(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'RestoreSnapshotDialog'\n });\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.SNAPSHOT;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.SNAPSHOT;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.SNAPSHOT }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get volume() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const namespace = this?.metadata?.namespace;\n const pvc = this?.spec?.source?.persistentVolumeClaimName;\n\n const volume = this.$rootGetters[`${ inStore }/byId`](\n PVC,\n `${ namespace }/${ pvc }`\n );\n\n return volume;\n }\n}\n","import { clone } from '@shell/utils/object';\nimport StorageClass from '@shell/models/storage.k8s.io.storageclass';\nimport { HCI } from '../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';\nimport { LONGHORN_DRIVER } from '@shell/config/types';\nimport { DATA_ENGINE_V1, DATA_ENGINE_V2 } from '../../models/harvester/persistentvolumeclaim';\n\nexport const LVM_DRIVER = 'lvm.driver.harvesterhci.io';\n\nexport default class HciStorageClass extends StorageClass {\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.STORAGE;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource-id`;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = HCI.STORAGE;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.STORAGE }\"`, { count: 1 })?.trim();\n }\n\n get longhornVersion() {\n if (this.provisioner === LONGHORN_DRIVER) {\n return (this.parameters || {}).dataEngine || DATA_ENGINE_V1;\n }\n\n return null;\n }\n\n get provisionerDisplay() {\n let key = '';\n\n if (this.provisioner === LONGHORN_DRIVER) {\n key = `harvester.storage.storageClass.longhorn.${ this.longhornVersion }.label`;\n }\n\n if (this.provisioner === LVM_DRIVER) {\n key = `harvester.storage.storageClass.lvm.label`;\n }\n\n return key ? this.$rootGetters['i18n/t'](key) : this.provisioner;\n }\n\n get isEncrypted() {\n return this.parameters?.encrypted === 'true';\n }\n\n get isLonghornV1() {\n return this.provisioner === LONGHORN_DRIVER && this.longhornVersion === DATA_ENGINE_V1;\n }\n\n get isLonghornV2() {\n return this.provisioner === LONGHORN_DRIVER && this.longhornVersion === DATA_ENGINE_V2;\n }\n\n get longhornV2LVMSupport() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('longhornV2LVMSupport');\n }\n\n get volumeEncryptionFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('volumeEncryption');\n }\n\n get thirdPartyStorageFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('thirdPartyStorage');\n }\n}\n","import jsyaml from 'js-yaml';\nimport startCase from 'lodash/startCase';\nimport { HCI as HCI_ANNOTATIONS } from '../config/labels-annotations';\nimport HarvesterResource from './harvester';\nimport { HCI } from '../types';\n\nexport default class HciAddonConfig extends HarvesterResource {\n get availableActions() {\n const out = super._availableActions;\n\n if (this.id === 'harvester-system/rancher-vcluster') {\n const rancherDashboard = {\n action: 'goToRancher',\n enabled: this.spec.enabled,\n icon: 'icon icon-external-link',\n label: this.t('harvester.addons.rancherVcluster.accessRancher'),\n };\n\n out.push(rancherDashboard);\n }\n\n const toggleAddon = {\n action: 'toggleAddon',\n enabled: true,\n icon: this.spec.enabled ? 'icon icon-pause' : 'icon icon-play',\n label: this.spec.enabled ? this.t('generic.disable') : this.t('generic.enable'),\n };\n\n out.unshift(toggleAddon);\n\n return out;\n }\n\n async toggleAddon() {\n const enableHistory = this.spec.enabled;\n\n try {\n if (!this.spec.enabled && this.id === 'rancher-vcluster/rancher-vcluster') {\n const valuesContent = jsyaml.load(this.spec.valuesContent);\n\n if (!valuesContent.hostname || !valuesContent.bootstrapPassword) {\n this.goToEdit();\n\n return;\n }\n }\n\n this.spec.enabled = !this.spec.enabled;\n await this.save();\n } catch (err) {\n this.spec.enabled = enableHistory;\n this.$dispatch('growl/fromError', {\n title: this.t('harvester.addons.switchFailed', { action: enableHistory ? this.t('generic.disable') : this.t('generic.enable'), name: (this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n goToRancher() {\n const valuesContent = jsyaml.load(this.spec.valuesContent);\n\n window.open(\n `https://${ valuesContent.hostname }`,\n '_blank',\n );\n }\n\n get rancherHostname() {\n const valuesContent = jsyaml.load(this.spec.valuesContent);\n\n return `https://${ valuesContent.hostname }`;\n }\n\n get stateColor() {\n const state = this.stateDisplay;\n\n if (state?.toLowerCase().includes('enabled') || state?.toLowerCase().includes('success')) {\n return 'text-success';\n } else if (state === 'Disabled') {\n return 'text-darker';\n } else if (state?.toLowerCase().includes('ing')) {\n return 'text-info';\n } else if (state?.toLowerCase().includes('failed') || state?.toLowerCase().includes('error')) {\n return 'text-error';\n } else {\n return 'text-info';\n }\n }\n\n get stateDisplay() {\n const out = this?.status?.status;\n\n if (!out) {\n return 'Disabled';\n }\n\n if (out.startsWith('Addon')) {\n return startCase(out.replace('Addon', ''));\n }\n\n return out;\n }\n\n get stateDescription() {\n const failedCondition = (this.status?.conditions || []).find((C) => C.type === 'OperationFailed');\n\n return failedCondition?.message || super.stateDescription;\n }\n\n get parentNameOverride() {\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ HCI.ADD_ONS }\"`, { count: 1 })?.trim();\n }\n\n get displayName() {\n const isExperimental = this.metadata?.labels?.[HCI_ANNOTATIONS.ADDON_EXPERIMENTAL] === 'true';\n\n return isExperimental ? `${ this.metadata.name } (${ this.t('generic.experimental') })` : this.metadata.name;\n }\n\n get customValidationRules() {\n let rules = [];\n\n if (this.metadata.name === 'rancher-monitoring') {\n rules = [\n {\n nullable: false,\n path: 'spec.valuesContent',\n validators: ['rancherMonitoring'],\n },\n ];\n }\n\n if (this.metadata.name === 'rancher-logging') {\n rules = [\n {\n nullable: false,\n path: 'spec.valuesContent',\n validators: ['rancherLogging'],\n },\n ];\n }\n\n return rules;\n }\n}\n","import { HCI } from '../types';\nimport HarvesterResource from './harvester';\n\nexport default class HciBlockDevice extends HarvesterResource {\n get childParts() {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const bds = this.$rootGetters[`${ inStore }/all`](HCI.BLOCK_DEVICE);\n\n const parts = bds.filter((b) => {\n return b.status?.deviceStatus?.parentDevice === this.spec?.devPath &&\n b.spec.nodeName === this.spec.nodeName;\n });\n\n return parts;\n }\n\n get isChildPartProvisioned() {\n const parts = this.childParts.filter((p) => p.isProvisioned) || [];\n\n return parts.length > 0;\n }\n\n get provisionPhase() {\n const label = this?.status?.provisionPhase;\n let color = '';\n let icon = '';\n\n switch (label) {\n case 'Provisioned':\n color = 'bg-success';\n icon = 'icon-checkmark';\n break;\n case 'Unprovisioning':\n color = 'bg-warning';\n icon = 'icon-warning';\n break;\n case 'NotProvisioned':\n color = 'bg-error';\n icon = 'icon-warning';\n break;\n default:\n break;\n }\n\n return {\n label,\n color,\n icon,\n };\n }\n\n get displayName() {\n return this.status?.deviceStatus?.devPath || this?.metadata?.name;\n }\n\n get isFormatting() {\n const conditions = this?.status?.conditions || [];\n const formatting = conditions.find((c) => c.type === 'Formatting') || {};\n\n return formatting.status === 'True';\n }\n\n get isProvisioned() {\n // spec.fileSystem.provisioned is deprecated\n return this.spec?.fileSystem?.provisioned || this.spec?.provision;\n }\n\n // Overwrite cleanForSave() in shell/plugins/steve/steve-class.js as it deleted status object in harvesterhci.io.blockdevice CRD\n // but /v1/harvester/harvesterhci.io.blockdevices/longhorn-system/{id} API requires status object\n cleanForSave(data) {\n return data;\n }\n}\n","import { get } from '@shell/utils/object';\nimport { findBy } from '@shell/utils/array';\nimport HarvesterResource from './harvester';\n\nexport default class HciKeypair extends HarvesterResource {\n get stateDisplay() {\n const conditions = get(this, 'status.conditions');\n const status = (findBy(conditions, 'type', 'validated') || {}).status ;\n\n return status === 'True' ? 'Validated' : 'Not Validated';\n }\n}\n","import HarvesterResource from './harvester';\nimport { colorForState, stateDisplay, STATES } from '@shell/plugins/dashboard-store/resource-class';\nimport { _CREATE } from '@shell/config/query-params';\nimport { ucFirst, escapeHtml } from '@shell/utils/string';\n\nexport default class ScheduleVmBackup extends HarvesterResource {\n detailPageHeaderActionOverride(realMode) {\n if (realMode === _CREATE) {\n return this.t('harvester.schedule.createTitle');\n }\n }\n\n get _availableActions() {\n const toFilter = ['goToClone'];\n\n const out = super._availableActions.filter((action) => {\n if (!toFilter.includes(action.action)) {\n return action;\n }\n });\n\n return [\n {\n action: 'resumeSchedule',\n enabled: ucFirst(this.state) === STATES.suspended.label,\n icon: 'icons icon-play',\n label: this.t('harvester.action.resumeSchedule'),\n },\n {\n action: 'suspendSchedule',\n enabled: ucFirst(this.state) === STATES.active.label,\n icon: 'icons icon-pause',\n label: this.t('harvester.action.suspendSchedule'),\n },\n ...out\n ];\n }\n\n async suspendSchedule() {\n try {\n this.spec.suspend = true; // suspend schedule\n await this.save();\n } catch (err) {\n this.spec.suspend = false;\n\n this.$dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n async resumeSchedule() {\n try {\n this.spec.suspend = false; // resume schedule\n await this.save();\n } catch (err) {\n this.spec.suspend = true;\n\n this.$dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.metadata.name) }),\n err,\n }, { root: true });\n }\n }\n\n get stateObj() {\n return this?.metadata?.state || {};\n }\n\n get state() {\n return this.status?.suspended === true ? STATES.suspended.label : STATES.active.label;\n }\n\n get stateDescription() {\n const suspendedCondition = (this.status?.conditions || []).find((c) => c.type === 'BackupSuspend');\n\n return ucFirst(suspendedCondition?.message) || super.stateDescription;\n }\n\n get stateBackground() {\n return colorForState(this.stateDisplay).replace('text-', 'bg-');\n }\n\n get stateColor() {\n return colorForState(this.state);\n }\n\n get stateDisplay() {\n return stateDisplay(this.state);\n }\n}\n","import { findBy } from '@shell/utils/array';\nimport { HCI } from '../types';\nimport { HCI_ALLOWED_SETTINGS, HCI_SETTING } from '../config/settings';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\nimport HarvesterResource from './harvester';\n\nexport default class HciSetting extends HarvesterResource {\n get _availableActions() {\n const toFilter = ['cloneYaml', 'download', 'goToEditYaml', 'goToViewYaml', 'goToViewConfig', 'promptRemove'];\n const settingMetadata = HCI_ALLOWED_SETTINGS[this.id];\n\n let out = super._availableActions;\n\n // Some settings are not editable\n if ( settingMetadata?.readOnly || this.fromEnv ) {\n toFilter.push('goToEdit');\n }\n\n out = out.filter((action) => {\n return (!toFilter.includes(action.action));\n });\n\n // Change the label on the first action (edit)\n const editAction = out.find((action) => action.action === 'goToEdit');\n\n if (editAction) {\n editAction.label = this.t('advancedSettings.edit.label');\n }\n\n const schema = this.$getters['schemaFor'](HCI.UPGRADE);\n const hasUpgradeAccess = !!schema?.collectionMethods.find((x) => ['post'].includes(x.toLowerCase()));\n\n if (this.id === HCI_SETTING.SERVER_VERSION && hasUpgradeAccess) {\n const latestUpgrade = this.$getters['all'](HCI.UPGRADE).find((upgrade) => upgrade.isLatestUpgrade);\n\n out.unshift({\n action: 'goToAirgapUpgrade',\n enabled: true,\n icon: 'icon icon-refresh',\n label: this.t('harvester.upgradePage.upgrade'),\n disabled: !!latestUpgrade && !latestUpgrade?.isUpgradeSucceeded\n });\n }\n\n return out;\n }\n\n goToAirgapUpgrade() {\n const router = this.currentRouter();\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-airgapupgrade`,\n params: { cluster: this.$rootGetters['currentCluster'].id, product: 'harvester' },\n });\n }\n\n get customValue() {\n if (this.metadata.name === HCI_SETTING.STORAGE_NETWORK) {\n try {\n return JSON.stringify(JSON.parse(this.value), null, 2);\n } catch (e) {}\n }\n\n return false;\n }\n\n get customFormatter() {\n if (this.metadata.name === HCI_SETTING.STORAGE_NETWORK) {\n try {\n JSON.stringify(JSON.parse(this.value), null, 2);\n\n return 'json';\n } catch (e) {\n\n }\n }\n\n return false;\n }\n\n get backupTargetIsEmpty() {\n return !this.value;\n }\n\n get errMessage() {\n const configuredCondition = findBy((this?.status?.conditions || []), 'type', 'configured') || {};\n\n if (this.metadata?.state?.error === true) {\n return this.metadata.state.message;\n } else if (configuredCondition?.status === 'False') {\n return configuredCondition.message;\n } else {\n return false;\n }\n }\n\n get valueOrDefaultValue() {\n return this.value || this.default;\n }\n\n get currentVersion() {\n return this.value || '';\n }\n\n get displayValue() { // Select the field you want to display\n if (this.id === 'backup-target') {\n return this.parseValue?.endpoint || ' ';\n }\n\n return null;\n }\n\n get parseValue() {\n let parseDefaultValue = {};\n\n try {\n parseDefaultValue = JSON.parse(this.value);\n } catch (err) {\n parseDefaultValue = JSON.parse(this.default);\n }\n\n return parseDefaultValue;\n }\n\n get isS3() {\n return this.parseValue.type === 's3';\n }\n\n get isNFS() {\n return this.parseValue.type === 'nfs';\n }\n\n get customValidationRules() {\n const id = this.id;\n\n const out = [];\n\n switch (id) {\n case 'backup-target':\n out.push( {\n nullable: false,\n path: 'value',\n type: 'string',\n validators: ['backupTarget'],\n });\n break;\n case 'ntp-servers':\n out.push( {\n nullable: true,\n path: 'value',\n validators: ['ntpServers'],\n });\n break;\n }\n\n return out;\n }\n}\n","import HarvesterResource from './harvester';\n\nexport default class HciSupportBundle extends HarvesterResource {\n get bundleState() {\n const state = this?.status?.state;\n\n // ready、generating\n return state;\n }\n\n get bundleMessage() {\n const state = this?.metadata?.state;\n\n if (state.error) {\n return state?.message;\n }\n\n return false;\n }\n\n get precent() {\n return this?.status?.progress / 100 || 0;\n }\n\n get customValidationRules() {\n return [\n {\n nullable: false,\n path: 'spec.description',\n required: true,\n translationKey: 'harvester.modal.bundle.description',\n },\n ];\n }\n}\n","import jsyaml from 'js-yaml';\nimport { NODE } from '@shell/config/types';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { HCI } from '@pkg/harvester/config/labels-annotations';\nimport HarvesterResource from './harvester';\n\nexport default class HciUpgrade extends HarvesterResource {\n get isLatestUpgrade() {\n return this?.metadata?.labels?.[HCI.LATEST_UPGRADE] === 'true';\n }\n\n get isUpgradeFailed() {\n return this?.metadata?.labels?.[HCI.UPGRADE_STATE] === 'Failed';\n }\n\n get isUpgradeSucceeded() {\n return this?.metadata?.labels?.[HCI.UPGRADE_STATE] === 'Succeeded';\n }\n\n get hasReadMessage() {\n return this?.metadata?.labels?.[HCI.REAY_MESSAGE] === 'true';\n }\n\n get repoInfo() {\n const repoInfo = this?.status?.repoInfo;\n\n if (repoInfo) {\n try {\n return jsyaml.load(repoInfo);\n } catch (e) {\n return false;\n }\n }\n\n return false;\n }\n\n get stateDisplay() {\n const conditions = this?.status?.conditions || [];\n const completedCondition = conditions.find( (cond) => cond.type === 'Completed');\n const status = completedCondition?.status;\n\n if (status === 'True') {\n return 'Success';\n } else if (status === 'False') {\n return 'Fail';\n } else {\n return 'on-going';\n }\n }\n\n get stateColor() {\n return colorForState(this.stateDisplay);\n }\n\n get nodes() {\n return this.$rootGetters['harvester/all'](NODE);\n }\n\n get upgradeImage() {\n return this?.status?.imageID;\n }\n\n get upgradeMessage() {\n const upgradeMessage = [];\n const nodeStatuses = this?.status?.nodeStatuses || {};\n const conditions = this?.status?.conditions || [];\n\n for (const key in nodeStatuses) {\n const state = nodeStatuses[key]?.state;\n\n if (nodeStatuses[key] && state !== 'Succeeded' && state !== 'succeeded') {\n upgradeMessage.push({\n id: key,\n message: `The node ${ key } is ${ nodeStatuses[key]?.state }`\n });\n }\n }\n\n for (let i = 0; i < conditions.length; i++) {\n const type = conditions[i].type;\n\n if (type === 'systemServiceUpgraded' && conditions[i]?.status !== 'True') {\n upgradeMessage.push({\n id: 'systemService',\n message: `The systemService is upgrading`\n });\n }\n }\n\n if (this.metadata?.state?.message && this.metadata?.state?.error) {\n upgradeMessage.push({\n id: 'message',\n message: `${ this.metadata.state.message }`\n });\n }\n\n return upgradeMessage;\n }\n\n get createRepo() {\n const conditions = this?.status?.conditions || [];\n const repoCondition = conditions.find( (cond) => cond.type === 'RepoReady');\n const isReady = repoCondition?.status === 'True';\n\n return {\n isReady,\n message: repoCondition?.message || repoCondition?.reason\n };\n }\n\n get overallMessage() {\n const conditions = this?.status?.conditions || [];\n const completedCondition = conditions.find( (cond) => cond.type === 'Completed');\n const hasError = completedCondition?.status === 'False';\n const message = completedCondition?.message || completedCondition?.reason;\n\n return hasError ? message : '';\n }\n\n get upgradeImageMessage() {\n const conditions = this?.status?.conditions || [];\n const imageReady = conditions.find( (cond) => cond.type === 'ImageReady');\n const success = imageReady?.status === 'True';\n const message = imageReady?.message || imageReady?.reason;\n\n return success ? '' : message;\n }\n\n get nodeUpgradeMessage() {\n const message = [];\n const nodeStatuses = this?.status?.nodeStatuses || {};\n\n for (const key in nodeStatuses) {\n const state = nodeStatuses[key]?.state;\n const _message = nodeStatuses[key]?.message;\n\n let percent = 0;\n\n if (state === 'Upgrading') {\n percent = 50;\n } else if (state === 'Succeeded' || state === 'succeeded') {\n percent = 100;\n }\n\n message.push({\n name: key,\n state,\n percent,\n message: _message\n });\n }\n\n for (const node of this.nodes) {\n const hasNode = message.find( (O) => O.name === node.id);\n\n if (!hasNode) {\n message.push({\n name: node.id,\n state: 'Pending',\n percent: 0,\n });\n }\n }\n\n return message;\n }\n\n get nodeTotalPercent() {\n let out = 0;\n\n for (let i = 0; i < this.nodeUpgradeMessage.length; i++) {\n out += this.nodeUpgradeMessage[i].percent;\n }\n\n out = Math.floor(out / this.nodeUpgradeMessage.length);\n const conditions = this?.status?.conditions || [];\n const nodeUpgradedCondition = conditions.find( (cond) => cond.type === 'NodesUpgraded');\n\n if (out === 100 && !nodeUpgradedCondition) {\n out = 99;\n }\n\n return out;\n }\n\n get sysServiceUpgradeMessage() {\n let percent = 0;\n let state = 'Pending';\n const message = [];\n const conditions = this?.status?.conditions || [];\n\n for (let i = 0; i < conditions.length; i++) {\n const type = conditions[i].type;\n\n if (type === 'SystemServicesUpgraded') {\n if (conditions[i].status === 'True') {\n percent = 100;\n state = 'Succeeded';\n } else {\n percent = 50;\n }\n\n message.push({\n name: 'system services',\n state,\n percent,\n message: conditions[i]?.message\n });\n }\n }\n\n if (message.length === 0) {\n message.push({\n name: 'system services',\n state,\n percent,\n });\n }\n\n return message;\n }\n\n get totalPercent() {\n const nodePercent = this.nodeTotalPercent * this.nodeUpgradeMessage.length;\n const servicePercent = this.sysServiceUpgradeMessage?.[0].percent;\n\n return Math.floor((nodePercent + servicePercent) / (this.nodeUpgradeMessage.length + 1));\n }\n}\n","import { get } from '@shell/utils/object';\nimport Parse from 'url-parse';\nimport { findBy } from '@shell/utils/array';\nimport { HCI } from '../types';\nimport HarvesterResource from './harvester';\n\nexport default class HciUpgradeLog extends HarvesterResource {\n get canStartedDownload() {\n const conditions = get(this, 'status.conditions');\n const status = (findBy(conditions, 'type', 'DownloadReady') || {}).status ;\n\n return status === 'True';\n }\n\n downloadLog(filename) {\n const parse = Parse(window.history.href);\n const clusterId = this.$rootGetters['clusterId'];\n const prefix = `/k8s/clusters/${ clusterId }`;\n\n if (this.$rootGetters['isMultiCluster']) {\n window.location.href = `${ parse.origin }${ prefix }/v1/harvester/${ HCI.UPGRADE_LOG }s/${ this.id }/download?archiveName=${ filename }`;\n } else {\n window.location.href = `${ parse.origin }/v1/harvester/${ HCI.UPGRADE_LOG }s/${ this.id }/download?archiveName=${ filename }`;\n }\n }\n\n fileIsReady(filename) {\n const fileArchive = (this.status?.archives || {})[filename];\n\n return fileArchive?.ready === true || fileArchive?.reason;\n }\n\n downloadArchivesStatus(filename) {\n return (this.status?.archives || {})[filename]?.reason;\n }\n\n get latestArchivesFileName() {\n const archives = this.status?.archives || {};\n const fileNamePrefix = `${ this.metadata.name }-archive-`;\n const fileNames = Object.keys(archives).map((filename) => {\n return filename.replace(fileNamePrefix, '');\n });\n const latestFileName = fileNames.sort((a, b) => {\n const _a = a.replace(/(\\d{2})-(\\d{2})-(\\d{2})T(\\d{2})-(\\d{2})-(\\d{2})Z/, '$1-$2-$3T$4:$5:$6Z');\n const _b = b.replace(/(\\d{2})-(\\d{2})-(\\d{2})T(\\d{2})-(\\d{2})-(\\d{2})Z/, '$1-$2-$3T$4:$5:$6Z');\n\n return Date.parse(_b) - Date.parse(_a);\n }).map((filename) => {\n return `${ fileNamePrefix }${ filename }`;\n });\n\n return latestFileName[0];\n }\n}\n","import { get, clone } from '@shell/utils/object';\nimport { findBy } from '@shell/utils/array';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { _CREATE } from '@shell/config/query-params';\nimport { HCI } from '../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\nimport { BACKUP_TYPE } from '../config/types';\nimport HarvesterResource from './harvester';\n\nexport default class HciVmBackup extends HarvesterResource {\n detailPageHeaderActionOverride(realMode) {\n const route = this.currentRoute();\n\n if (realMode === _CREATE) {\n return route.params.resource === HCI.BACKUP ? this.t('harvester.backup.title') : this.t('harvester.vmSnapshot.title');\n }\n }\n\n get detailLocation() {\n const detailLocation = clone(this._detailLocation);\n\n detailLocation.params.resource = HCI.BACKUP;\n\n return detailLocation;\n }\n\n get doneOverride() {\n const route = this.currentRoute();\n const detailLocation = clone(this._detailLocation);\n\n delete detailLocation.params.namespace;\n delete detailLocation.params.id;\n detailLocation.params.resource = route.params.resource;\n detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n\n return detailLocation;\n }\n\n get parentNameOverride() {\n const route = this.currentRoute();\n\n return this.$rootGetters['i18n/t'](`typeLabel.\"${ route.params.resource }\"`, { count: 1 })?.trim();\n }\n\n get parentLocationOverride() {\n return this.doneOverride;\n }\n\n get _availableActions() {\n const toFilter = ['goToEdit', 'cloneYaml', 'goToClone', 'download'];\n\n const out = super._availableActions.filter((action) => {\n if (!toFilter.includes(action.action)) {\n return action;\n }\n });\n\n const schema = this.$getters['schemaFor'](HCI.VM);\n let canCreateVM = true;\n\n if ( schema && !schema?.collectionMethods.find((x) => ['post'].includes(x.toLowerCase())) ) {\n canCreateVM = false;\n }\n\n return [\n {\n action: 'restoreExistingVM',\n enabled: canCreateVM && this.attachVmExisting && this?.status?.readyToUse,\n icon: 'icons icon-refresh',\n label: this.t('harvester.action.restoreExistingVM'),\n },\n {\n action: 'restoreNewVM',\n enabled: canCreateVM && this?.status?.readyToUse,\n icon: 'icons icon-backup',\n label: this.t('harvester.action.restoreNewVM'),\n },\n ...out\n ];\n }\n\n restoreExistingVM(resource = this) {\n const router = this.currentRouter();\n const targetResource = resource.spec.type === BACKUP_TYPE.BACKUP ? HCI.BACKUP : HCI.VM_SNAPSHOT;\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: targetResource },\n query: {\n restoreMode: 'existing',\n resourceName: resource.name,\n }\n });\n }\n\n restoreNewVM(resource = this) {\n const router = this.currentRouter();\n const targetResource = resource.spec.type === BACKUP_TYPE.BACKUP ? HCI.BACKUP : HCI.VM_SNAPSHOT;\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: targetResource },\n query: {\n restoreMode: 'new',\n resourceName: resource.name,\n }\n });\n }\n\n get state() {\n let out = 'Pending';\n const conditions = get(this, 'status.conditions');\n const isProgress = findBy(conditions, 'type', 'InProgress')?.status === 'True';\n const isReady = findBy(conditions, 'type', 'Ready')?.status === 'True';\n\n if (this?.status?.readyToUse) {\n out = 'Ready';\n } else if (isProgress) {\n out = 'Progressing';\n } else if (!isReady) {\n out = 'error';\n }\n\n return out;\n }\n\n get stateColor() {\n const state = this.state;\n\n return colorForState(state);\n }\n\n get sourceSchedule() {\n return this.metadata?.annotations?.[HCI_ANNOTATIONS.SVM_BACKUP_ID];\n }\n\n get attachVM() {\n return this.spec.source.name;\n }\n\n get backupContentName() {\n return this?.status?.virtualMachineBackupContentName || '';\n }\n\n get backupProgress() {\n return {\n type: BACKUP_TYPE.BACKUP,\n percentage: this.status?.progress === undefined && !this.status?.readyToUse ? 0 : this.status?.progress,\n details: { volumes: this.status?.volumeBackups }\n };\n }\n\n get backupTarget() {\n return this?.status?.backupTarget?.endpoint || '';\n }\n\n get attachVmExisting() {\n const vmList = this.$rootGetters['harvester/all'](HCI.VM);\n\n return !!vmList.find( (V) => V.metadata.name === this.attachVM);\n }\n\n remove() {\n const opt = { ...arguments };\n\n opt.params = { propagationPolicy: 'Foreground' };\n\n return this._remove(opt);\n }\n}\n","import {\n DESCRIPTION,\n ANNOTATIONS_TO_IGNORE_REGEX,\n} from '@shell/config/labels-annotations';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { get, clone } from '@shell/utils/object';\nimport { formatSi } from '@shell/utils/units';\nimport { ucFirst } from '@shell/utils/string';\nimport { stateDisplay, colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { _CLONE } from '@shell/config/query-params';\nimport { HCI } from '../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\nimport HarvesterResource from './harvester';\nimport { CSI_SECRETS } from '@pkg/harvester/config/harvester-map';\n\nconst {\n CSI_PROVISIONER_SECRET_NAME,\n CSI_PROVISIONER_SECRET_NAMESPACE,\n} = CSI_SECRETS;\n\nfunction isReady() {\n function getStatusConditionOfType(type, defaultValue = []) {\n const conditions = Array.isArray(get(this, 'status.conditions')) ? this.status.conditions : defaultValue;\n\n return conditions.find( (cond) => cond.type === type);\n }\n\n const initialized = getStatusConditionOfType.call(this, 'Initialized');\n const imported = getStatusConditionOfType.call(this, 'Imported');\n const isCompleted = this.status?.progress === 100;\n\n if ([initialized?.status, imported?.status].includes('False')) {\n return false;\n } else {\n return isCompleted && true;\n }\n}\nexport default class HciVmImage extends HarvesterResource {\n get availableActions() {\n let out = super._availableActions;\n const toFilter = ['goToEditYaml'];\n\n out = out.filter( (A) => !toFilter.includes(A.action));\n\n const schema = this.$getters['schemaFor'](HCI.VM);\n let canCreateVM = true;\n\n if ( schema && !schema?.collectionMethods.find((x) => ['post'].includes(x.toLowerCase())) ) {\n canCreateVM = false;\n }\n\n return [\n {\n action: 'createFromImage',\n enabled: canCreateVM,\n icon: 'icon icon-circle-plus',\n label: this.t('harvester.action.createVM'),\n disabled: !this.isReady,\n },\n {\n action: 'encryptImage',\n enabled: this.volumeEncryptionFeatureEnabled && !this.isEncrypted,\n icon: 'icon icon-lock',\n label: this.t('harvester.action.encryptImage'),\n disabled: !this.isReady,\n },\n {\n action: 'decryptImage',\n enabled: this.volumeEncryptionFeatureEnabled && this.isEncrypted,\n icon: 'icon icon-unlock',\n label: this.t('harvester.action.decryptImage'),\n disabled: !this.isReady,\n },\n {\n action: 'download',\n enabled: this.links?.download,\n icon: 'icon icon-download',\n label: this.t('asyncButton.download.action'),\n },\n ...out\n ];\n }\n\n encryptImage() {\n const router = this.currentRouter();\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: HCI.IMAGE },\n query: {\n image: JSON.stringify({ metadata: { name: this.metadata.name, namespace: this.metadata.namespace } }),\n fromPage: HCI.IMAGE,\n sourceType: 'clone',\n cryptoOperation: 'encrypt'\n }\n });\n }\n\n decryptImage() {\n const router = this.currentRouter();\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: HCI.IMAGE },\n query: {\n image: JSON.stringify({ metadata: { name: this.metadata.name, namespace: this.metadata.namespace } }),\n fromPage: HCI.IMAGE,\n sourceType: 'clone',\n cryptoOperation: 'decrypt'\n }\n });\n }\n\n applyDefaults(resources = this, realMode) {\n if (realMode !== _CLONE) {\n this.metadata['labels'] = { [HCI_ANNOTATIONS.OS_TYPE]: '', [HCI_ANNOTATIONS.IMAGE_SUFFIX]: '' };\n this.metadata['annotations'] = { [HCI_ANNOTATIONS.STORAGE_CLASS]: '' };\n }\n }\n\n createFromImage() {\n const router = this.currentRouter();\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: HCI.VM },\n query: { image: this.id, fromPage: HCI.IMAGE }\n });\n }\n\n cleanForNew() {\n this.$dispatch(`cleanForNew`, this);\n\n delete this.spec.displayName;\n }\n\n get nameDisplay() {\n return this.spec?.displayName;\n }\n\n get isOSImage() {\n return this?.metadata?.annotations?.[HCI_ANNOTATIONS.OS_UPGRADE_IMAGE] === 'True';\n }\n\n get isReady() {\n return isReady.call(this);\n }\n\n get stateDisplay() {\n const initialized = this.getStatusConditionOfType('Initialized');\n const imported = this.getStatusConditionOfType('Imported');\n\n if (imported?.status === 'Unknown') {\n if (this.spec.sourceType === 'restore') {\n return 'Restoring';\n }\n\n if (this.spec.sourceType === 'download') {\n return 'Downloading';\n }\n\n if (this.spec.sourceType === 'upload') {\n if (this.uploadError) {\n return 'Failed';\n }\n\n return 'Uploading';\n }\n\n return 'Exporting';\n }\n\n if (initialized?.message || imported?.message) {\n return 'Failed';\n }\n\n return stateDisplay(this.metadata.state.name);\n }\n\n get encryptionSecret() {\n const secretNS = this.spec.storageClassParameters[CSI_PROVISIONER_SECRET_NAMESPACE];\n const secretName = this.spec.storageClassParameters[CSI_PROVISIONER_SECRET_NAME];\n\n if (secretNS && secretName) {\n return `${ secretNS }/${ secretName }`;\n }\n\n return '';\n }\n\n get isEncrypted() {\n return this.spec.sourceType === 'clone' &&\n this.spec.securityParameters?.cryptoOperation === 'encrypt' &&\n !!this.spec.securityParameters?.sourceImageName &&\n !!this.spec.securityParameters?.sourceImageNamespace;\n }\n\n get displayNameWithNamespace() {\n return `${ this.metadata.namespace }/${ this.spec.displayName }`;\n }\n\n get imageStorageClass() {\n return this?.metadata?.annotations[HCI_ANNOTATIONS.STORAGE_CLASS] || '';\n }\n\n get imageMessage() {\n if (this.uploadError) {\n return ucFirst(this.uploadError);\n }\n\n const conditions = this?.status?.conditions || [];\n const initialized = conditions.find( (cond) => cond.type === 'Initialized');\n const imported = conditions.find( (cond) => cond.type === 'Imported');\n const retryLimitExceeded = conditions.find( (cond) => cond.type === 'RetryLimitExceeded');\n const message = initialized?.message || imported?.message || retryLimitExceeded?.message;\n\n return ucFirst(message);\n }\n\n get stateBackground() {\n return colorForState(this.stateDisplay).replace('text-', 'bg-');\n }\n\n get imageSource() {\n return get(this, `spec.sourceType`) || 'download';\n }\n\n get progress() {\n return this?.status?.progress || 0;\n }\n\n get annotationsToIgnoreRegexes() {\n return [DESCRIPTION].concat(ANNOTATIONS_TO_IGNORE_REGEX);\n }\n\n get downSize() {\n const size = this.status?.size;\n\n if (!size) {\n return '-';\n }\n\n return formatSi(size, {\n increment: 1024,\n maxPrecision: 2,\n suffix: 'B',\n firstSuffix: 'B',\n });\n }\n\n get virtualSize() {\n const virtualSize = this.status?.virtualSize;\n\n if (!virtualSize) {\n return '-';\n }\n\n return formatSi(virtualSize, {\n increment: 1024,\n maxPrecision: 2,\n suffix: 'B',\n firstSuffix: 'B',\n });\n }\n\n getStatusConditionOfType(type, defaultValue = []) {\n const conditions = Array.isArray(get(this, 'status.conditions')) ? this.status.conditions : defaultValue;\n\n return conditions.find( (cond) => cond.type === type);\n }\n\n get stateObj() {\n const state = clone(this.metadata?.state);\n const initialized = this.getStatusConditionOfType('Initialized');\n const imported = this.getStatusConditionOfType('Imported');\n\n if ([initialized?.status, imported?.status].includes('False') || this.uploadError) {\n state.error = true;\n }\n\n return state;\n }\n\n get stateDescription() {\n return this.imageMessage;\n }\n\n get displayName() {\n return this.spec?.displayName;\n }\n\n get storageClassName() {\n return this.status?.storageClassName || '';\n }\n\n get uploadImage() {\n return async(file) => {\n const formData = new FormData();\n\n formData.append('chunk', file);\n\n try {\n this.$ctx.commit('harvester-common/uploadStart', this.metadata.name, { root: true });\n\n await this.doAction('upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n 'File-Size': file.size,\n },\n params: { size: file.size },\n });\n } catch (err) {\n this.$ctx.commit('harvester-common/uploadError', { name: this.name, message: err.message }, { root: true });\n\n this.$ctx.commit('harvester-common/uploadEnd', this.metadata.name, { root: true });\n\n return Promise.reject(err);\n }\n\n this.$ctx.commit('harvester-common/uploadEnd', this.metadata.name, { root: true });\n };\n }\n\n get uploadError() {\n return this.$rootGetters['harvester-common/uploadingImageError'](this.name);\n }\n\n get imageSuffix() {\n return this.metadata?.labels?.[HCI_ANNOTATIONS.IMAGE_SUFFIX];\n }\n\n get imageOSType() {\n return this.metadata?.labels?.[HCI_ANNOTATIONS.OS_TYPE];\n }\n\n get customValidationRules() {\n const out = [];\n\n if (this.imageSource === 'download') {\n const urlFormat = {\n nullable: false,\n path: 'spec.url',\n validators: ['imageUrl'],\n };\n\n const urlRequired = {\n nullable: false,\n path: 'spec.url',\n required: true,\n translationKey: 'harvester.image.url'\n };\n\n out.push(urlFormat, urlRequired);\n }\n\n if (this.imageSource === 'upload') {\n const fileRequired = {\n nullable: false,\n path: 'metadata.annotations',\n validators: ['fileRequired'],\n };\n\n out.push(fileRequired);\n }\n\n if (this.spec?.checksum?.length) {\n const checksumFormat = {\n path: 'spec.checksum',\n validators: ['hashSHA512'],\n };\n\n out.push(checksumFormat);\n }\n\n return [\n {\n nullable: false,\n path: 'spec.displayName',\n required: true,\n minLength: 1,\n maxLength: 63,\n translationKey: 'generic.name',\n },\n ...out\n ];\n }\n\n get volumeEncryptionFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('volumeEncryption');\n }\n\n get thirdPartyStorageFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('thirdPartyStorage');\n }\n\n download() {\n window.location.href = this.links.download;\n }\n}\n","import HarvesterResource from './harvester';\n\nexport default class HciVmRestore extends HarvesterResource {\n get isComplete() {\n return this?.status?.complete || false;\n }\n\n get pvcNames() {\n const restores = this?.status?.restores || [];\n const out = restores.map( (O) => O?.persistentVolumeClaimSpec?.name);\n\n return out;\n }\n\n get customValidationRules() {\n const isNew = this.spec?.newVM;\n\n const rules = [{\n nullable: false,\n path: 'spec.target.name',\n required: true,\n minLength: 1,\n maxLength: 63,\n translationKey: 'harvester.fields.virtualName',\n }, {\n nullable: false,\n path: 'spec.virtualMachineBackupName',\n required: true,\n translationKey: 'harvester.backup.restore.backup',\n }];\n\n if (!isNew) {\n rules.push({\n path: 'spec.deletionPolicy',\n required: true,\n type: 'string',\n translationKey: 'harvester.backup.restore.deletePreviousVolumes',\n });\n }\n\n return rules;\n }\n}\n","import { MODE, _CREATE } from '@shell/config/query-params';\nimport { HCI } from '../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\nimport HarvesterResource from './harvester';\n\nexport default class HciVmTemplate extends HarvesterResource {\n get availableActions() {\n const toFilter = ['goToEdit', 'cloneYaml', 'goToClone', 'goToEditYaml', 'download'];\n\n const out = super._availableActions.filter((action) => {\n if (action.altAction === 'remove') {\n action.bulkable = false;\n }\n\n if (!toFilter.includes(action.action)) {\n return action;\n }\n });\n\n const schema = this.$getters['schemaFor'](HCI.VM);\n let canCreateVM = true;\n\n if ( schema && !schema?.collectionMethods.find((x) => ['post'].includes(x.toLowerCase())) ) {\n canCreateVM = false;\n }\n\n return [\n {\n action: 'createFromTemplate',\n enabled: canCreateVM,\n icon: 'icon icon-spinner',\n label: this.t('harvester.action.createVM'),\n },\n {\n action: 'addVersion',\n enabled: this.canCreate,\n icon: 'icon icon-fw icon-circle-plus',\n label: this.t('harvester.action.addTemplateVersion'),\n },\n ...out\n ];\n }\n\n createFromTemplate() {\n const router = this.currentRouter();\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: HCI.VM },\n query: { templateId: this.id, versionId: this.spec.defaultVersionId }\n });\n }\n\n get cpuPinningFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('cpuPinning');\n }\n\n addVersion(moreQuery = {}) {\n const router = this.currentRouter();\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: HCI.VM_VERSION },\n query: {\n [MODE]: _CREATE,\n templateId: this.id\n }\n });\n }\n\n get defaultVersion() {\n return this.status?.defaultVersion;\n }\n}\n","import { find, pickBy, omitBy } from 'lodash';\nimport {\n AS, MODE, _VIEW, _CONFIG, _UNFLAG, _EDIT\n} from '@shell/config/query-params';\nimport { LABELS_TO_IGNORE_REGEX, HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { findBy } from '@shell/utils/array';\nimport { get, set } from '@shell/utils/object';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { matchesSomeRegex } from '@shell/utils/string';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\nimport { HCI } from '../types';\nimport HarvesterResource from './harvester';\n\nexport default class HciVmTemplateVersion extends HarvesterResource {\n get availableActions() {\n let out = super._availableActions;\n const toFilter = ['goToClone', 'cloneYaml', 'goToViewConfig', 'goToEditYaml', 'goToViewYaml'];\n\n out = out.filter((action) => {\n if (!toFilter.includes(action.action)) {\n return action;\n }\n });\n\n const schema = this.$getters['schemaFor'](HCI.VM);\n let canCreateVM = true;\n\n if ( schema && !schema?.collectionMethods.find((x) => ['post'].includes(x.toLowerCase())) ) {\n canCreateVM = false;\n }\n\n return [\n {\n action: 'launchFromTemplate',\n icon: 'icon icon-spinner',\n disabled: !canCreateVM || !this.isReady,\n label: this.t('harvester.action.launchFormTemplate'),\n },\n {\n action: 'cloneTemplate',\n enabled: this.currentTemplate?.canCreate,\n icon: 'icon icon-fw icon-edit',\n label: this.t('harvester.action.modifyTemplate'),\n },\n {\n action: 'setDefaultVersion',\n enabled: this.currentTemplate?.canCreate,\n icon: 'icon icon-fw icon-checkmark',\n label: this.t('harvester.action.setDefaultVersion'),\n },\n {\n action: 'goToViewConfig',\n label: this.t('action.view'),\n icon: 'icon icon-edit',\n },\n ...out\n ];\n }\n\n applyDefaults() {\n const spec = {\n vm: {\n metadata: { annotations: { [HCI_ANNOTATIONS.VOLUME_CLAIM_TEMPLATE]: '[]' } },\n spec: {\n runStrategy: 'RerunOnFailure',\n template: {\n metadata: { annotations: {} },\n spec: {\n domain: {\n machine: { type: '' },\n cpu: {\n cores: null,\n sockets: 1,\n threads: 1\n },\n devices: {\n inputs: [{\n bus: 'usb',\n name: 'tablet',\n type: 'tablet'\n }],\n interfaces: [{\n masquerade: {},\n model: 'virtio',\n name: 'default'\n }],\n disks: [],\n },\n resources: {\n limits: {\n memory: null,\n cpu: ''\n }\n },\n features: { acpi: { enabled: true } },\n },\n evictionStrategy: 'LiveMigrateIfPossible',\n hostname: '',\n networks: [{\n name: 'default',\n pod: {}\n }],\n volumes: [],\n affinity: {},\n }\n }\n }\n }\n };\n\n this['spec'] = spec;\n }\n\n get canDelete() {\n return this.hasLink('remove') && this.$rootGetters['type-map/optionsFor'](this.type).isRemovable && !this.isDefaultVersion;\n }\n\n get template() {\n return this.$rootGetters['harvester/all'](HCI.VM_TEMPLATE).find((T) => {\n return T.id === this.spec.templateId;\n });\n }\n\n get isReady() {\n const conditions = get(this, 'status.conditions');\n const readyCondition = findBy(conditions, 'type', 'ready');\n\n // Compatibility processing\n return readyCondition ? readyCondition?.status === 'True' : true;\n }\n\n get stateDisplay() {\n if (this.isReady) {\n return 'Active';\n } else {\n return 'Not Ready';\n }\n }\n\n get stateColor() {\n const state = this.stateDisplay;\n\n return colorForState(state);\n }\n\n get version() {\n return this?.status?.version;\n }\n\n get templates() {\n return this.$rootGetters['harvester/all'](HCI.VM_TEMPLATE);\n }\n\n get machineType() {\n return this.vm?.spec?.template?.spec?.domain?.machine?.type || '';\n }\n\n get templateId() {\n return this.spec.templateId;\n }\n\n launchFromTemplate() {\n const templateResource = this.currentTemplate;\n const templateId = templateResource.id;\n const launchVersion = this.id;\n const router = this.currentRouter();\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: HCI.VM },\n query: { templateId, versionId: launchVersion }\n });\n }\n\n cloneTemplate(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _EDIT,\n [AS]: _UNFLAG,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n goToViewConfig(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _VIEW,\n [AS]: _CONFIG,\n templateId: this.templateId,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n get currentTemplate() {\n return find(this.templates, (T) => T.id === this.templateId);\n }\n\n async setDefaultVersion(moreQuery = {}) {\n const templateResource = this.currentTemplate;\n\n templateResource.spec.defaultVersionId = this.id;\n await templateResource.save();\n }\n\n get cpuPinningFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('cpuPinning');\n }\n\n get defaultVersion() {\n const templates = this.$rootGetters['harvester/all'](HCI.VM_TEMPLATE);\n const template = templates.find((T) => this.templateId === T.id);\n\n return template?.status?.defaultVersion;\n }\n\n get isDefaultVersion() {\n return this.defaultVersion === this?.status?.version;\n }\n\n get customValidationRules() {\n const rules = [\n // {\n // nullable: false,\n // path: 'spec.vm.spec.template.spec.domain.cpu.cores',\n // min: 1,\n // max: 100,\n // required: true,\n // translationKey: 'harvester.fields.cpu',\n // },\n // {\n // nullable: false,\n // path: 'spec.vm.spec.template.spec.domain.resources.requests.memory',\n // required: false,\n // translationKey: 'harvester.fields.memory',\n // },\n // {\n // nullable: false,\n // path: 'spec.vm.spec.template.spec',\n // validators: ['vmNetworks'],\n // },\n // {\n // nullable: false,\n // path: 'spec.vm.spec',\n // validators: ['vmDisks:isVMTemplate'],\n // },\n ];\n\n return rules;\n }\n\n get instanceLabels() {\n const all = this.spec?.vm?.spec?.template?.metadata?.labels || {};\n\n return omitBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n }\n\n setInstanceLabels(val) {\n if ( !this.spec?.vm?.spec?.template?.metadata?.labels ) {\n set(this, 'spec.vm.spec.template.metadata.labels', {});\n }\n\n const all = this.spec.vm.spec.template.metadata.labels || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n\n this.spec.vm.spec.template.metadata['labels'] = { ...wasIgnored, ...val };\n }\n\n get tpmPersistentStateFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('tpmPersistentState');\n }\n\n get efiPersistentStateFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('efiPersistentState');\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\nimport { HCI } from '@shell/config/labels-annotations';\nimport { NETWORK_TYPE } from '../config/types';\n\nconst { UNTAGGED } = NETWORK_TYPE;\n\nexport default class NetworkAttachmentDef extends SteveModel {\n applyDefaults() {\n const spec = this.spec || {\n config: JSON.stringify({\n cniVersion: '0.3.1',\n name: '',\n type: 'bridge',\n bridge: '',\n promiscMode: true,\n vlan: '',\n ipam: {}\n })\n };\n\n this.spec = spec;\n }\n\n get parseConfig() {\n try {\n return JSON.parse(this.spec.config) || {};\n } catch (err) {\n return {};\n }\n }\n\n get isIpamStatic() {\n return this.parseConfig.ipam?.type === 'static';\n }\n\n get clusterNetwork() {\n return this?.metadata?.labels?.[HCI.CLUSTER_NETWORK];\n }\n\n get vlanType() {\n const labels = this.metadata?.labels || {};\n const type = labels[HCI.NETWORK_TYPE];\n\n return type;\n }\n\n get vlanId() {\n return this.vlanType === UNTAGGED ? 'N/A' : this.parseConfig.vlan;\n }\n\n get customValidationRules() {\n const rules = [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n minLength: 1,\n maxLength: 63,\n translationKey: 'harvester.fields.name'\n }\n ];\n\n return rules;\n }\n\n get connectivity() {\n const annotations = this.metadata?.annotations || {};\n const route = annotations[HCI.NETWORK_ROUTE];\n let config = {};\n\n if (this.vlanType === UNTAGGED) {\n return 'N/A';\n }\n\n try {\n config = JSON.parse(route || '{}');\n } catch {\n return 'invalid';\n }\n\n const connectivity = config.connectivity;\n\n if (connectivity === 'false') {\n return 'inactive';\n } else if (connectivity === 'true') {\n return 'active';\n } else {\n return connectivity;\n }\n }\n}\n","import { load } from 'js-yaml';\nimport { omitBy, pickBy } from 'lodash';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { POD, NODE, PVC } from '@shell/config/types';\nimport { findBy } from '@shell/utils/array';\nimport { parseSi } from '@shell/utils/units';\nimport { get, set } from '@shell/utils/object';\nimport { LABELS_TO_IGNORE_REGEX, HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { _CLONE } from '@shell/config/query-params';\nimport { matchesSomeRegex } from '@shell/utils/string';\nimport { parseVolumeClaimTemplates } from '@pkg/utils/vm';\nimport { BACKUP_TYPE } from '../config/types';\nimport { HCI } from '../types';\nimport HarvesterResource from './harvester';\n\nexport const OFF = 'Off';\n\nconst VMI_WAITING_MESSAGE =\n 'The virtual machine is waiting for resources to become available.';\nconst VM_ERROR = 'VM error';\nconst STOPPING = 'Stopping';\nconst UNSCHEDULABLE = 'Unschedulable';\nconst WAITING = 'Waiting';\nconst NOT_READY = 'Not Ready';\nconst AGENT_CONNECTED = 'AgentConnected';\n\nconst PAUSED = 'Paused';\nconst PAUSED_VM_MODAL_MESSAGE =\n 'This VM has been paused. If you wish to unpause it, please click the Unpause button below. For further details, please check with your system administrator.';\n\nconst POD_STATUS_NOT_SCHEDULABLE = 'POD_NOT_SCHEDULABLE';\nconst POD_STATUS_CONTAINER_FAILING = 'POD_CONTAINER_FAILING';\n// eslint-disable-next-line no-unused-vars\nconst POD_STATUS_NOT_READY = 'POD_NOT_READY';\n\nconst POD_STATUS_FAILED = 'POD_FAILED';\nconst POD_STATUS_CRASHLOOP_BACKOFF = 'POD_CRASHLOOP_BACKOFF';\nconst POD_STATUS_UNKNOWN = 'POD_STATUS_UNKNOWN';\n\nconst POD_STATUS_ALL_ERROR = [\n POD_STATUS_NOT_SCHEDULABLE,\n POD_STATUS_CONTAINER_FAILING,\n POD_STATUS_FAILED,\n POD_STATUS_CRASHLOOP_BACKOFF,\n POD_STATUS_UNKNOWN\n];\n\nconst POD_STATUS_COMPLETED = 'POD_STATUS_COMPLETED';\nconst POD_STATUS_SUCCEEDED = 'POD_STATUS_SUCCEEDED';\nconst POD_STATUS_RUNNING = 'POD_STATUS_RUNNING';\n\nconst POD_STATUS_ALL_READY = [\n POD_STATUS_RUNNING,\n POD_STATUS_COMPLETED,\n POD_STATUS_SUCCEEDED\n];\n\nconst RunStrategy = {\n Always: 'Always',\n RerunOnFailure: 'RerunOnFailure',\n Halted: 'Halted',\n Manual: 'Manual'\n};\n\nconst StateChangeRequest = {\n Start: 'Start',\n Stop: 'Stop'\n};\n\nconst STARTING_MESSAGE =\n 'This virtual machine will start shortly. Preparing storage, networking, and compute resources.';\n\nconst VMIPhase = {\n Pending: 'Pending',\n Scheduling: 'Scheduling',\n Scheduled: 'Scheduled',\n Running: 'Running',\n Succeeded: 'Succeeded',\n Failed: 'Failed',\n Unknown: 'Unknown'\n};\n\nlet productInStore;\n\nconst IgnoreMessages = ['pod has unbound immediate PersistentVolumeClaims'];\n\nexport default class VirtVm extends HarvesterResource {\n get availableActions() {\n let out = super._availableActions;\n\n // VM attached with Longhorn V2 volume doesn't support clone feature\n if (this.longhornV2Volumes.length > 0) {\n out = out.filter((action) => action.action !== 'goToClone');\n } else {\n const clone = out.find((action) => action.action === 'goToClone');\n\n if (clone) {\n clone.action = 'goToCloneVM';\n }\n }\n\n return [\n {\n action: 'stopVM',\n altAction: 'altStopVM',\n enabled: !!this.actions?.stop,\n icon: 'icon icon-close',\n label: this.t('harvester.action.stop'),\n bulkable: true,\n bulkAction: 'stopVM',\n },\n {\n action: 'forceStop',\n enabled: !!this.actions?.forceStop,\n icon: 'icon icon-close',\n label: this.t('harvester.action.forceStop'),\n bulkable: true\n },\n {\n action: 'pauseVM',\n altAction: 'altPauseVM',\n enabled: !!this.actions?.pause,\n icon: 'icon icon-pause',\n label: this.t('harvester.action.pause')\n },\n {\n action: 'unpauseVM',\n enabled: !!this.actions?.unpause,\n icon: 'icon icon-spinner',\n label: this.t('harvester.action.unpause')\n },\n {\n action: 'restartVM',\n enabled: !!this.actions?.restart,\n icon: 'icon icon-refresh',\n label: this.t('harvester.action.restart'),\n bulkable: true\n },\n {\n action: 'softrebootVM',\n enabled: !!this.actions?.softreboot,\n icon: 'icon icon-pipeline',\n label: this.t('harvester.action.softreboot')\n },\n {\n action: 'startVM',\n enabled: !!this.actions?.start,\n icon: 'icon icon-play',\n label: this.t('harvester.action.start'),\n bulkable: true\n },\n {\n action: 'backupVM',\n enabled: !!this.actions?.backup,\n icon: 'icon icon-backup',\n label: this.t('harvester.action.backup')\n },\n {\n action: 'takeVMSnapshot',\n enabled: !!this.actions?.backup && !this.longhornV2Volumes.length,\n icon: 'icon icon-snapshot',\n label: this.t('harvester.action.vmSnapshot')\n },\n {\n action: 'editVMQuota',\n enabled: !!this.actions?.updateResourceQuota && !!this.actions.deleteResourceQuota,\n icon: 'icon icon-storage',\n label: this.t('harvester.action.editVMQuota')\n },\n {\n action: 'createSchedule',\n enabled: this.schedulingVMBackupFeatureEnabled,\n icon: 'icon icon-history',\n label: this.t('harvester.action.createSchedule')\n },\n {\n action: 'restoreVM',\n enabled: !!this.actions?.restore,\n icon: 'icon icon-backup-restore',\n label: this.t('harvester.action.restore')\n },\n {\n action: 'ejectCDROM',\n enabled: !!this.actions?.ejectCdRom,\n icon: 'icon icon-delete',\n label: this.t('harvester.action.ejectCDROM')\n },\n {\n action: 'migrateVM',\n enabled: !!this.actions?.migrate,\n icon: 'icon icon-copy',\n label: this.t('harvester.action.migrate')\n },\n {\n action: 'abortMigrationVM',\n enabled: !!this.actions?.abortMigration,\n icon: 'icon icon-close',\n label: this.t('harvester.action.abortMigration')\n },\n {\n action: 'addHotplug',\n enabled: !!this.actions?.addVolume,\n icon: 'icon icon-plus',\n label: this.t('harvester.action.addHotplug')\n },\n {\n action: 'createTemplate',\n enabled: !!this.actions?.createTemplate,\n icon: 'icon icon-copy',\n label: this.t('harvester.action.createTemplate')\n },\n {\n action: 'openLogs',\n enabled: !!this.podResource,\n icon: 'icon icon-fw icon-chevron-right',\n label: this.t('harvester.action.viewlogs'),\n total: 1\n },\n ...out\n ];\n }\n\n get productInStore() {\n if (!productInStore) {\n productInStore = this.$rootGetters['currentProduct'].inStore;\n }\n\n return productInStore;\n }\n\n applyDefaults(resources = this, realMode) {\n const spec = {\n runStrategy: 'RerunOnFailure',\n template: {\n metadata: { annotations: {} },\n spec: {\n domain: {\n machine: { type: '' },\n cpu: {\n cores: null,\n sockets: 1,\n threads: 1\n },\n devices: {\n inputs: [\n {\n bus: 'usb',\n name: 'tablet',\n type: 'tablet'\n }\n ],\n interfaces: [\n {\n masquerade: {},\n model: 'virtio',\n name: 'default'\n }\n ],\n disks: []\n },\n resources: {\n limits: {\n memory: null,\n cpu: ''\n }\n },\n features: { acpi: { enabled: true } }\n },\n evictionStrategy: 'LiveMigrateIfPossible',\n hostname: '',\n networks: [\n {\n name: 'default',\n pod: {}\n }\n ],\n volumes: [],\n affinity: {},\n }\n }\n };\n\n if (realMode !== _CLONE) {\n this.metadata['annotations'] = { [HCI_ANNOTATIONS.VOLUME_CLAIM_TEMPLATE]: '[]' };\n this['spec'] = spec;\n }\n }\n\n cleanForNew() {\n this.$dispatch(`cleanForNew`, this);\n\n this.spec.template.spec.hostname = '';\n const interfaces = this.spec.template.spec.domain.devices?.interfaces || [];\n\n for (let i = 0; i < interfaces.length; i++) {\n if (interfaces[i].macAddress) {\n interfaces[i].macAddress = '';\n }\n }\n\n // delete, spec?.dataSource: The original data should not be saved when clone template\n const deleteDataSource = this.volumeClaimTemplates.map((volume) => {\n if (volume?.spec?.dataSource) {\n delete volume.spec.dataSource;\n }\n\n return volume;\n });\n\n this.metadata.annotations[HCI_ANNOTATIONS.VOLUME_CLAIM_TEMPLATE] = JSON.stringify(deleteDataSource);\n }\n\n restartVM() {\n this.doActionGrowl('restart', {});\n }\n\n softrebootVM() {\n this.doActionGrowl('softreboot', {});\n }\n\n openLogs() {\n this.$dispatch(\n 'wm/open',\n {\n id: `${ this.id }-logs`,\n label: this.nameDisplay,\n icon: 'file',\n component: 'ContainerLogs',\n attrs: {\n pod: this.podResource,\n initialContainer: this.podResource.metadata.annotations['kubectl.kubernetes.io/default-container']\n }\n },\n { root: true }\n );\n }\n\n createSchedule(resources = this) {\n const router = this.currentRouter();\n\n router.push({\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: { resource: HCI.SCHEDULE_VM_BACKUP },\n query: { vmNamespace: this.metadata.namespace, vmName: this.metadata.name }\n });\n }\n\n backupVM(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterBackupModal'\n });\n }\n\n takeVMSnapshot(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterVMSnapshotDialog'\n });\n }\n\n editVMQuota(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n snapshotSizeQuota: this.snapshotSizeQuota,\n component: 'HarvesterQuotaDialog'\n });\n }\n\n unplugVolume(diskName) {\n const resources = this;\n\n this.$dispatch('promptModal', {\n resources,\n diskName,\n component: 'HarvesterUnplugVolume'\n });\n }\n\n restoreVM(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterRestoreDialog'\n });\n }\n\n get machineType() {\n return this.spec?.template?.spec?.domain?.machine?.type || '';\n }\n\n get realAttachNodeName() {\n const vmi = this.$getters['byId'](HCI.VMI, this.id);\n const nodeName = vmi?.status?.nodeName;\n const node = this.$getters['byId'](NODE, nodeName);\n\n return node?.nameDisplay || '';\n }\n\n get nodeName() {\n const vmi = this.$getters['byId'](HCI.VMI, this.id);\n const nodeName = vmi?.status?.nodeName;\n const node = this.$getters['byId'](NODE, nodeName);\n\n return node?.id;\n }\n\n pauseVM(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n action: 'pause',\n warningMessageKey: 'dialog.confirmExecution.pause.message',\n component: 'ConfirmExecutionDialog'\n });\n }\n\n altPauseVM() {\n this.doActionGrowl('pause', {});\n }\n\n goToCloneVM(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'CloneVmDialog'\n });\n }\n\n unpauseVM() {\n this.doActionGrowl('unpause', {});\n }\n\n stopVM(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n action: 'stop',\n warningMessageKey: 'dialog.confirmExecution.stop.message',\n component: 'ConfirmExecutionDialog'\n });\n }\n\n altStopVM() {\n this.doActionGrowl('stop', {});\n }\n\n forceStop() {\n this.doActionGrowl('forceStop', {});\n }\n\n startVM() {\n this.doActionGrowl('start', {});\n }\n\n migrateVM(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterMigrationDialog'\n });\n }\n\n ejectCDROM(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterEjectCDROMDialog'\n });\n }\n\n abortMigrationVM() {\n this.doActionGrowl('abortMigration', {});\n }\n\n createTemplate(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterCloneTemplate'\n });\n }\n\n addHotplug(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterAddHotplugModal'\n });\n }\n\n get networksName() {\n const interfaces = this.spec.template.spec.domain.devices?.interfaces || [];\n\n return interfaces.map((I) => I.name);\n }\n\n get isOff() {\n return !this.isVMExpectedRunning ? { status: OFF } : null;\n }\n\n get isWaitingForVMI() {\n if (this && this.isVMExpectedRunning && !this.isVMCreated) {\n return { status: WAITING, message: VMI_WAITING_MESSAGE };\n }\n\n return null;\n }\n\n get cpuPinningFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('cpuPinning');\n }\n\n get isCpuPinning() {\n return this.spec?.template?.spec?.domain?.cpu?.dedicatedCpuPlacement === true;\n }\n\n get isVMExpectedRunning() {\n if (!this?.spec) {\n return false;\n }\n const { running = null, runStrategy = null } = this.spec;\n const conditions = this?.status?.conditions || [];\n\n if (running) {\n return true;\n }\n\n if (runStrategy !== null) {\n let changeRequests;\n\n switch (runStrategy) {\n case RunStrategy.Halted:\n return false;\n case RunStrategy.Always:\n return true;\n case RunStrategy.RerunOnFailure:\n if (\n this.status?.printableStatus === 'ErrorUnschedulable' &&\n conditions.find(\n (C) => C.message && C.message.includes(IgnoreMessages)\n )\n ) {\n return true;\n }\n\n return ['Starting', 'Running'].includes(this.status?.printableStatus);\n case RunStrategy.Manual:\n default:\n changeRequests = new Set(\n (this.status?.stateChangeRequests || []).map(\n (chRequest) => chRequest?.action\n )\n );\n\n if (changeRequests.has(StateChangeRequest.Stop)) {\n return false;\n }\n if (changeRequests.has(StateChangeRequest.Start)) {\n return true;\n }\n\n if (changeRequests.size === 0) {\n return ['Starting', 'Running'].includes(\n this.status?.printableStatus\n );\n }\n\n return this.isVMCreated; // if there is no change request we can assume created is representing running (current and expected)\n }\n }\n\n return false;\n }\n\n get podResource() {\n const inStore = this.productInStore;\n\n const vmiResource = this.$rootGetters[`${ inStore }/byId`](HCI.VMI, this.id);\n const podList = this.$rootGetters[`${ inStore }/all`](POD);\n\n return podList.find((P) => {\n return (\n vmiResource?.metadata?.name &&\n vmiResource?.metadata?.name === P.metadata?.ownerReferences?.[0].name\n );\n });\n }\n\n get isPaused() {\n const conditions = this.vmi?.status?.conditions || [];\n const isPause = conditions.filter((cond) => cond.type === PAUSED).length > 0;\n\n return isPause ? {\n status: PAUSED,\n message: PAUSED_VM_MODAL_MESSAGE\n } : null;\n }\n\n get isVMError() {\n const conditions = get(this, 'status.conditions');\n const vmFailureCond = findBy(conditions, 'type', 'Failure');\n\n if (vmFailureCond) {\n return {\n status: VM_ERROR,\n detailedMessage: vmFailureCond.message\n };\n }\n\n return null;\n }\n\n get nsResourceQuota() {\n const inStore = this.productInStore;\n const allResQuotas = this.$rootGetters[`${ inStore }/all`](HCI.RESOURCE_QUOTA);\n\n return allResQuotas.find( (RQ) => RQ.namespace === this.metadata.namespace);\n }\n\n get snapshotSizeQuota() {\n return this.nsResourceQuota?.spec?.snapshotLimit?.vmTotalSnapshotSizeQuota?.[this.metadata.name];\n }\n\n get vmi() {\n const inStore = this.productInStore;\n\n const vmis = this.$rootGetters[`${ inStore }/all`](HCI.VMI);\n\n return vmis.find((VMI) => VMI.id === this.id);\n }\n\n get volumes() {\n const pvcs = this.$rootGetters[`${ this.productInStore }/all`](PVC);\n\n const volumeClaimNames = this.spec.template.spec.volumes?.map((v) => v.persistentVolumeClaim?.claimName).filter((v) => !!v) || [];\n\n return pvcs.filter((pvc) => volumeClaimNames.includes(pvc.metadata.name));\n }\n\n get lvmVolumes() {\n return this.volumes.filter((volume) => volume?.isLvm);\n }\n\n get longhornV2Volumes() {\n return this.volumes.filter((volume) => volume?.isLonghornV2);\n }\n\n get encryptedVolumeType() {\n if (!this.volumes || this.volumes.length === 0) {\n return 'none';\n }\n\n if (this.volumes.every((vol) => vol.isEncrypted)) {\n return 'all';\n } else if (this.volumes.some((vol) => vol.isEncrypted)) {\n return 'partial';\n } else {\n return 'none';\n }\n }\n\n get isError() {\n const conditions = get(this.vmi, 'status.conditions');\n const vmiFailureCond = findBy(conditions, 'type', 'Failure');\n\n if (vmiFailureCond) {\n return { status: 'VMI error', detailedMessage: vmiFailureCond.message };\n }\n\n if ((this.vmi || this.isVMCreated) && this.podResource) {\n // const podStatus = this.podResource.getPodStatus;\n // if (POD_STATUS_ALL_ERROR.includes(podStatus?.status)) {\n // return {\n // ...podStatus,\n // status: 'LAUNCHER_POD_ERROR',\n // pod: this.podResource,\n // };\n // }\n }\n\n return this?.vmi?.status?.phase;\n }\n\n get isRunning() {\n const conditions = get(this.vmi, 'status.conditions');\n const isVMIReady = findBy(conditions, 'type', 'Ready')?.status === 'True';\n\n if (this.vmi?.status?.phase === VMIPhase.Running && isVMIReady) {\n return { status: VMIPhase.Running };\n }\n\n return null;\n }\n\n get isNotReady() {\n const conditions = get(this.vmi, 'status.conditions');\n const VMIReadyCondition = findBy(conditions, 'type', 'Ready');\n\n if (\n VMIReadyCondition?.status === 'False' &&\n this.vmi?.status?.phase === VMIPhase.Running\n ) {\n return { status: NOT_READY };\n }\n\n return null;\n }\n\n get isBeingStopped() {\n if (this && !this.isVMExpectedRunning && this.isVMCreated && this.vmi?.status?.phase !== VMIPhase.Succeeded) {\n return { status: STOPPING };\n }\n\n return null;\n }\n\n get isStarting() {\n if (this.isVMExpectedRunning && this.isVMCreated) {\n // created but not yet ready\n if (this.podResource) {\n const podStatus = this.podResource.getPodStatus;\n\n if (!POD_STATUS_ALL_READY.includes(podStatus?.status)) {\n return {\n ...podStatus,\n status: 'Starting',\n message: STARTING_MESSAGE,\n detailedMessage: podStatus?.message,\n pod: this.podResource\n };\n }\n }\n\n return {\n status: 'Starting',\n message: STARTING_MESSAGE,\n pod: this.podResource\n };\n }\n\n return null;\n }\n\n get isUnschedulable() {\n if (this.isBeingStopped || this.isStarting) {\n const condition = this.status?.conditions?.find((c) => c.reason === UNSCHEDULABLE);\n\n if (!!condition) {\n return {\n status: UNSCHEDULABLE,\n message: condition.message || 'VM is unschedulable',\n };\n }\n }\n\n return null;\n }\n\n get isTerminating() {\n return !!this?.metadata?.deletionTimestamp;\n }\n\n get otherState() {\n const state = (this.vmi &&\n [VMIPhase.Scheduling, VMIPhase.Scheduled].includes(\n this.vmi?.status?.phase\n ) && {\n status: 'Starting',\n message: STARTING_MESSAGE\n }) ||\n (this.vmi &&\n this.vmi.status?.phase === VMIPhase.Pending && {\n status: 'VMI_WAITING',\n message: VMI_WAITING_MESSAGE\n }) ||\n (this.vmi &&\n this.vmi?.status?.phase === VMIPhase.Failed && { status: 'VMI_ERROR' }) ||\n (this.isVMExpectedRunning &&\n !this.isVMCreated && { status: 'Pending' }) || { status: 'UNKNOWN' };\n\n return state;\n }\n\n get isVMCreated() {\n return !!this?.status?.created;\n }\n\n get getDataVolumeTemplates() {\n return get(this, 'spec.volumeClaimTemplates') === null ? [] : this.spec.volumeClaimTemplates;\n }\n\n get restoreResource() {\n const id = `${ this.metadata.namespace }/${ get(\n this,\n `metadata.annotations.\"${ HCI_ANNOTATIONS.RESTORE_NAME }\"`\n ) }`;\n\n const inStore = this.productInStore;\n\n const allRestore = this.$rootGetters[`${ inStore }/all`](HCI.RESTORE);\n\n const res = allRestore.find((O) => O.id === id);\n\n if (res) {\n const allBackups = this.$rootGetters[`${ inStore }/all`](HCI.BACKUP);\n\n res.fromSnapshot = !!allBackups\n .filter((b) => b.spec?.type !== BACKUP_TYPE.BACKUP)\n .find((s) => s.id === `${ res.spec?.virtualMachineBackupNamespace }/${ res.spec?.virtualMachineBackupName }`);\n }\n\n return res;\n }\n\n get restoreProgress() {\n if (this.isVMError || this.isTerminating) {\n return {};\n }\n\n const status = this.restoreResource?.status;\n\n if (status !== undefined) {\n return {\n type: 'restore',\n percentage: status?.progress || 0,\n details: { volumes: status?.restores || [] }\n };\n }\n\n return {};\n }\n\n get restoreState() {\n if (!this.restoreResource) {\n return true;\n }\n\n return this.restoreResource?.isComplete;\n }\n\n get actualState() {\n if (!this.restoreState) {\n return 'Restoring';\n }\n\n if (this.isTerminating) {\n return 'Terminating';\n }\n\n if (\n !!this?.vmi?.migrationState &&\n this.vmi.migrationState.status !== 'Failed'\n ) {\n return this.vmi.migrationState.status;\n }\n\n const state =\n this.isUnschedulable?.status ||\n this.isPaused?.status ||\n this.isVMError?.status ||\n this.isBeingStopped?.status ||\n this.isOff?.status ||\n this.isError?.status ||\n this.isRunning?.status ||\n this.isNotReady?.status ||\n this.isStarting?.status ||\n this.isWaitingForVMI?.state ||\n this.otherState?.status;\n\n return state;\n }\n\n get warningMessage() {\n if (this.metadata?.annotations[HCI_ANNOTATIONS.VM_INSUFFICIENT]) {\n return {\n message: this.metadata?.annotations[HCI_ANNOTATIONS.VM_INSUFFICIENT],\n canDismiss: true,\n };\n }\n\n const conditions = get(this, 'status.conditions');\n const vmFailureCond = findBy(conditions, 'type', 'Failure');\n\n if (vmFailureCond) {\n return {\n status: VM_ERROR,\n message: vmFailureCond.message\n };\n }\n\n const vmiConditions = get(this.vmi, 'status.conditions');\n const vmiFailureCond = findBy(vmiConditions, 'type', 'Failure');\n\n if (vmiFailureCond) {\n return { status: 'VMI error', detailedMessage: vmiFailureCond.message };\n }\n\n if ((this.vmi || this.isVMCreated) && this.podResource) {\n const podStatus = this.podResource.getPodStatus;\n\n if (POD_STATUS_ALL_ERROR.includes(podStatus?.status)) {\n return {\n ...podStatus,\n status: 'LAUNCHER_POD_ERROR',\n pod: this.podResource\n };\n }\n }\n\n return null;\n }\n\n get migrationMessage() {\n if (\n !!this?.vmi?.migrationState &&\n this.vmi.migrationState.status === 'Failed'\n ) {\n return {\n ...this.actualState,\n message: this.t('harvester.modal.migration.failedMessage')\n };\n }\n\n return null;\n }\n\n get stateDisplay() {\n return this.actualState;\n }\n\n get stateColor() {\n const state = this.actualState;\n\n return colorForState(state);\n }\n\n get networkIps() {\n let networkData = '';\n const out = [];\n const arrVolumes = this.spec.template?.spec?.volumes || [];\n\n arrVolumes.forEach((V) => {\n if (V.cloudInitNoCloud) {\n networkData = V.cloudInitNoCloud.networkData;\n }\n });\n\n try {\n const newInitScript = load(networkData);\n\n if (newInitScript?.config && Array.isArray(newInitScript.config)) {\n const config = newInitScript.config;\n\n config.forEach((O) => {\n if (O?.subnets && Array.isArray(O.subnets)) {\n const subnets = O.subnets;\n\n subnets.forEach((S) => {\n if (S.address) {\n out.push(S.address);\n }\n });\n }\n });\n }\n } catch (err) {}\n\n return out;\n }\n\n get warningCount() {\n return this.resourcesStatus.warningCount;\n }\n\n get errorCount() {\n return this.resourcesStatus.errorCount;\n }\n\n get resourcesStatus() {\n const inStore = this.productInStore;\n const vmList = this.$rootGetters[`${ inStore }/all`](HCI.VM);\n let warningCount = 0;\n let errorCount = 0;\n\n vmList.forEach((vm) => {\n const status = vm.actualState;\n\n if (status === VM_ERROR) {\n errorCount += 1;\n } else if (\n status === 'Stopping' ||\n status === 'Waiting' ||\n status === 'Pending' ||\n status === 'Starting' ||\n status === 'Terminating'\n ) {\n warningCount += 1;\n }\n });\n\n return {\n warningCount,\n errorCount\n };\n }\n\n get volumeClaimTemplates() {\n return parseVolumeClaimTemplates(this);\n }\n\n get persistentVolumeClaimName() {\n const volumes = this.spec.template.spec.volumes || [];\n\n return volumes\n .map((O) => {\n return O?.persistentVolumeClaim?.claimName;\n })\n .filter((name) => !!name);\n }\n\n get rootImageId() {\n let imageId = '';\n const inStore = this.productInStore;\n const pvcs = this.$rootGetters[`${ inStore }/all`](PVC) || [];\n\n const volumes = this.spec.template.spec.volumes || [];\n\n const firstVolumeName = volumes[0]?.persistentVolumeClaim?.claimName;\n const isNoExistingVolume = this.volumeClaimTemplates.find((volume) => {\n return firstVolumeName === volume?.metadata?.name;\n });\n\n if (!isNoExistingVolume) {\n const existingVolume = pvcs.find(\n (P) => P.id === `${ this.metadata.namespace }/${ firstVolumeName }`\n );\n\n if (existingVolume) {\n return existingVolume?.metadata?.annotations?.[\n 'harvesterhci.io/imageId'\n ];\n }\n }\n\n this.volumeClaimTemplates.find((volume) => {\n imageId = volume?.metadata?.annotations?.['harvesterhci.io/imageId'];\n\n return !!imageId;\n });\n\n return imageId;\n }\n\n get restoreName() {\n return (\n get(this, `metadata.annotations.\"${ HCI_ANNOTATIONS.RESTORE_NAME }\"`) || ''\n );\n }\n\n get customValidationRules() {\n const rules = [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n minLength: 1,\n maxLength: 63,\n translationKey: 'harvester.fields.name'\n },\n {\n nullable: false,\n path: 'spec.template.spec.domain.cpu.cores',\n min: 1,\n required: true,\n translationKey: 'harvester.fields.cpu'\n },\n {\n nullable: false,\n path: 'spec.template.spec.domain.resources.limits.memory',\n required: true,\n translationKey: 'harvester.fields.memory'\n },\n {\n nullable: false,\n path: 'spec.template.spec',\n validators: ['vmNetworks']\n },\n {\n nullable: false,\n path: 'spec',\n validators: [`vmDisks`]\n }\n ];\n\n return rules;\n }\n\n get attachNetwork() {\n const networks = this.spec?.template?.spec?.networks || [];\n const hasMultus = networks.find((N) => N.multus);\n\n return !!hasMultus;\n }\n\n get memorySort() {\n const memory =\n this?.spec?.template?.spec?.domain?.resources?.requests?.memory || 0;\n\n const formatSize = parseSi(memory);\n\n return parseInt(formatSize);\n }\n\n get ingoreVMMessage() {\n const ignoreConditions = [\n {\n name: 'unavailable',\n error: false,\n vmState: this.actualState === PAUSED\n }\n ];\n\n const state = this.metadata?.state;\n\n return (\n ignoreConditions.find(\n (condition) => condition.name === state?.name &&\n condition.error === state?.error &&\n condition.vmState\n ) ||\n IgnoreMessages.find((M) => super.stateDescription?.includes(M)) ||\n this.isOff\n );\n }\n\n get stateDescription() {\n return this.ingoreVMMessage ? '' : super.stateDescription;\n }\n\n get displayMemory() {\n return (\n this.spec.template.spec.domain.resources?.limits?.memory ||\n this.spec.template.spec.domain.resources?.requests?.memory\n );\n }\n\n get isQemuInstalled() {\n const conditions = this.vmi?.status?.conditions || [];\n const qemu = conditions.find((cond) => cond.type === AGENT_CONNECTED);\n\n return qemu?.status === 'True';\n }\n\n get instanceLabels() {\n const all = this.spec?.template?.metadata?.labels || {};\n\n return omitBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n }\n\n get hostDevices() {\n return this.spec?.template?.spec?.domain?.devices?.hostDevices || [];\n }\n\n get provisionedVGpus() {\n try {\n const deviceAllocationDetails = JSON.parse(this.metadata?.annotations[HCI_ANNOTATIONS.VM_DEVICE_ALLOCATION_DETAILS] || '{}');\n\n return deviceAllocationDetails?.gpus || {};\n } catch (error) {\n return {};\n }\n }\n\n get schedulingVMBackupFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('schedulingVMBackup');\n }\n\n get volumeEncryptionFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('volumeEncryption');\n }\n\n get tpmPersistentStateFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('tpmPersistentState');\n }\n\n get efiPersistentStateFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('efiPersistentState');\n }\n\n get thirdPartyStorageFeatureEnabled() {\n return this.$rootGetters['harvester-common/getFeatureEnabled']('thirdPartyStorage');\n }\n\n setInstanceLabels(val) {\n if ( !this.spec?.template?.metadata?.labels ) {\n set(this, 'spec.template.metadata.labels', {});\n }\n\n const all = this.spec.template.metadata.labels || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n\n this.spec.template.metadata['labels'] = { ...wasIgnored, ...val };\n }\n}\n","import { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport { NODE } from '@shell/config/types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../types';\nimport HarvesterResource from './harvester';\n\nconst PAUSED = 'Paused';\nconst PAUSED_VM_MODAL_MESSAGE = 'This VM has been paused. If you wish to unpause it, please click the Unpause button below. For further details, please check with your system administrator.';\nconst VMIPhase = {\n Pending: 'Pending',\n Scheduling: 'Scheduling',\n Scheduled: 'Scheduled',\n Running: 'Running',\n Succeeded: 'Succeeded',\n Failed: 'Failed',\n Unknown: 'Unknown',\n};\n\nexport default class VirtVmInstance extends HarvesterResource {\n get _availableActions() {\n const out = super._availableActions;\n\n const actions = out.find((O) => {\n return O.action === 'promptRemove';\n });\n\n return [actions];\n }\n\n get stateDisplay() {\n if (this?.metadata?.deletionTimestamp) {\n return 'Terminating';\n }\n\n return this?.status?.phase;\n }\n\n get stateBackground() {\n return colorForState(this.stateDisplay).replace('text-', 'bg-');\n }\n\n get stateColor() {\n const state = this.stateDisplay;\n\n return colorForState(state);\n }\n\n get vmimResource() {\n const all = this.$rootGetters['harvester/all'](HCI.VMIM) || [];\n const vmimList = all.filter((vmim) => vmim.spec?.vmiName === this.metadata?.name);\n\n if (vmimList.length === 0) {\n return [];\n }\n\n vmimList.sort((a, b) => {\n return a?.metadata?.creationTimestamp > b?.metadata?.creationTimestamp ? -1 : 1;\n });\n\n return vmimList[0];\n }\n\n get migrationState() {\n const state = this.metadata?.annotations?.[HCI_ANNOTATIONS.MIGRATION_STATE];\n\n if (this.vmimResource?.status?.phase === VMIPhase.Failed) {\n return {\n type: 'migration',\n status: VMIPhase.Failed\n };\n }\n\n if (this.vmimResource?.status?.phase && state) {\n return {\n type: 'migration',\n status: state\n };\n }\n\n return null;\n }\n\n get migrationStateBackground() {\n const state = this.migrationState.status;\n\n return colorForState(state).replace('text-', 'bg-');\n }\n\n get isPaused() {\n const conditions = this?.status?.conditions || [];\n const isPause = conditions.filter((cond) => cond.type === PAUSED).length > 0;\n\n return isPause ? {\n status: PAUSED,\n message: PAUSED_VM_MODAL_MESSAGE\n } : null;\n }\n\n get isRunning() {\n if (this?.status?.phase === VMIPhase.Running) {\n return { status: VMIPhase.Running };\n }\n\n return null;\n }\n\n get isTerminated() {\n const conditions = this?.status?.conditions || [];\n\n return conditions.find((cond) => cond.type === 'Ready')?.status === 'False';\n }\n\n get getVMIApiPath() {\n const clusterId = this.$rootGetters['clusterId'];\n\n if (this.$rootGetters['isMultiCluster']) {\n const prefix = `/k8s/clusters/${ clusterId }`;\n\n return `${ prefix }/apis/subresources.kubevirt.io/v1/namespaces/${ this.metadata.namespace }/virtualmachineinstances/${ this.name }/vnc`;\n } else {\n return `/apis/subresources.kubevirt.io/v1/namespaces/${ this.metadata.namespace }/virtualmachineinstances/${ this.name }/vnc`;\n }\n }\n\n get realAttachNodeName() {\n const nodeName = this?.status?.nodeName;\n const node = this.$getters['byId'](NODE, nodeName);\n\n return node?.nameDisplay || '';\n }\n\n get getSerialConsolePath() {\n const clusterId = this.$rootGetters['clusterId'];\n\n if (this.$rootGetters['isMultiCluster']) {\n const prefix = `/k8s/clusters/${ clusterId }`;\n\n return `${ prefix }/apis/subresources.kubevirt.io/v1/namespaces/${ this.metadata.namespace }/virtualmachineinstances/${ this.name }/console`;\n } else {\n return `/apis/subresources.kubevirt.io/v1/namespaces/${ this.metadata.namespace }/virtualmachineinstances/${ this.name }/console`;\n }\n }\n}\n","import { clone } from '@shell/utils/object';\nimport HarvesterResource from '@pkg/harvester/models/harvester';\nimport { HCI } from '@pkg/harvester/types';\n\nconst NOT_READY = 'Not Ready';\n\nexport default class HciLB extends HarvesterResource {\n applyDefaults() {\n const spec = this.spec || {};\n const meta = this.metadata || {};\n\n spec.ranges = spec.ranges || [];\n spec.selector = spec.selector || {};\n spec.selector.network = spec.selector.network || '';\n\n this['spec'] = spec;\n this['metadata'] = meta;\n }\n\n get customValidationRules() {\n return [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n translationKey: 'generic.name',\n type: 'dnsLabel',\n },\n {\n nullable: false,\n path: 'spec.ranges',\n type: 'array',\n validators: ['ranges'],\n }\n ];\n }\n\n get subnetDisplay() {\n const ranges = this.spec?.ranges || [];\n\n return ranges.map((r) => r.subnet).join(', ');\n }\n\n get startIPDisplay() {\n const ranges = this.spec?.ranges || [];\n\n return ranges.filter((r) => r.startIP).map((r) => r.startIP).join(', ');\n }\n\n get endIPDisplay() {\n const ranges = this.spec?.ranges || [];\n\n return ranges.filter((r) => r.endIP).map((r) => r.endIP).join(', ');\n }\n\n get details() {\n const out = [{\n label: this.t('harvester.ipPool.availableIP.label'),\n content: this.status?.available,\n }];\n\n return out;\n }\n\n get doneOverride() {\n const detailLocation = clone(this.listLocation);\n\n detailLocation.params.resource = HCI.IP_POOL;\n\n return detailLocation;\n }\n\n get parentLocationOverride() {\n return {\n ...this.listLocation,\n params: {\n ...this.listLocation.params,\n resource: HCI.IP_POOL,\n }\n };\n }\n\n get isReady() {\n const readyCondition = (this?.status?.conditions || []).find((c) => c.type === 'Ready') || {};\n\n return readyCondition?.status === 'True';\n }\n\n get stateDisplay() {\n if (!this.isReady) {\n return NOT_READY;\n }\n\n return super.stateDisplay;\n }\n\n get stateBackground() {\n if (!this.isReady) {\n return 'bg-warning';\n }\n\n return super.stateBackground;\n }\n}\n","import { set, clone } from '@shell/utils/object';\nimport HarvesterResource from '@pkg/harvester/models/harvester';\nimport { HCI } from '@pkg/harvester/types';\n\nconst WORKLOAD_TYPE_VM = 'vm';\nconst NOT_READY = 'Not Ready';\n\nexport default class HciLB extends HarvesterResource {\n applyDefaults() {\n const spec = this.spec || {};\n const meta = this.metadata || {};\n\n spec.workloadType = spec.workloadType || WORKLOAD_TYPE_VM;\n spec.ipam = spec.ipam || 'dhcp';\n spec.healthCheck = spec.healthCheck || {};\n spec.backendServerSelector = spec.backendServerSelector || {};\n\n set(this, 'spec', spec);\n set(this, 'metadata', meta);\n }\n\n get workloadTypeDisplay() {\n const workloadType = this.spec?.workloadType || 'cluster';\n\n return this.$rootGetters['i18n/t'](`harvester.loadBalancer.workloadType.options.${ workloadType }`);\n }\n\n get ipamDisplay() {\n const ipam = this.spec?.ipam;\n\n return this.$rootGetters['i18n/t'](`harvester.loadBalancer.ipam.options.${ ipam }`);\n }\n\n get customValidationRules() {\n return [\n {\n nullable: false,\n path: 'metadata.name',\n required: true,\n translationKey: 'generic.name',\n type: 'dnsLabel',\n },\n ];\n }\n\n get canCustomEdit() {\n return this.$rootGetters['type-map/hasCustomEdit'](this.type, this.id) && this.spec.workloadType === WORKLOAD_TYPE_VM;\n }\n\n get canUpdate() {\n return this.hasLink('update') && this.$rootGetters['type-map/optionsFor'](this.type).isEditable && this.spec.workloadType === WORKLOAD_TYPE_VM;\n }\n\n get canClone() {\n return this.spec.workloadType === WORKLOAD_TYPE_VM;\n }\n\n get details() {\n const out = [{\n label: this.t('harvester.loadBalancer.ipam.label'),\n content: this.ipamDisplay,\n }, {\n label: this.t('harvester.loadBalancer.workloadType.label'),\n content: this.workloadTypeDisplay,\n }, {\n label: this.t('tableHeaders.address'),\n content: this.status.address,\n }];\n\n return out;\n }\n\n get doneOverride() {\n const detailLocation = clone(this.listLocation);\n\n detailLocation.params.resource = HCI.LB;\n\n return detailLocation;\n }\n\n get parentLocationOverride() {\n return {\n ...this.listLocation,\n params: {\n ...this.listLocation.params,\n resource: HCI.LB,\n }\n };\n }\n\n get isReady() {\n const readyCondition = (this?.status?.conditions || []).find((c) => c.type === 'Ready') || {};\n\n return readyCondition?.status === 'True';\n }\n\n get stateDisplay() {\n if (!this.isReady) {\n return NOT_READY;\n }\n\n return super.stateDisplay;\n }\n\n get stateBackground() {\n if (!this.isReady) {\n return 'bg-warning';\n }\n\n return super.stateBackground;\n }\n}\n","import SteveModel from '@shell/plugins/steve/steve-class';\n\nconst HEALTHY = 'healthy';\nconst WARNING = 'warning';\n\nexport default class LonghornNode extends SteveModel {\n get used() {\n let out = 0;\n\n this.disks.filter((d) => d.allowScheduling).map((disk) => {\n if (disk?.storageAvailable && disk?.storageMaximum) {\n out += disk.storageMaximum - disk.storageAvailable;\n }\n });\n\n return out;\n }\n\n get disks() {\n const diskStatus = this?.status?.diskStatus || {};\n const diskSpec = this?.spec?.disks || {};\n\n return Object.keys(diskSpec).map((key) => {\n const conditions = diskStatus[key]?.conditions || [];\n const readyCondition = conditions.find((c) => c.type === 'Ready') || {};\n const schedulableCondition = conditions.find((c) => c.type === 'Schedulable') || {};\n\n let state;\n\n if (readyCondition?.status !== 'True' || schedulableCondition?.status !== 'True') {\n state = WARNING;\n } else {\n state = HEALTHY;\n }\n\n return {\n ...diskStatus[key],\n ...diskSpec[key],\n id: key,\n state,\n };\n }) || [];\n }\n}\n","import { set } from '@shell/utils/object';\nimport HarvesterResource from './harvester';\n\nexport default class HciInventory extends HarvesterResource {\n applyDefaults() {\n const defaultSpec = {\n baseboardSpec: {\n connection: {\n authSecretRef: {},\n insecureTLS: false,\n }\n },\n events: {\n enabled: true,\n pollingInterval: '1h',\n },\n primaryDisk: '',\n managementInterfaceMacAddress: '',\n };\n\n set(this, 'metadata.annotations', {});\n set(this, 'spec', this.spec || defaultSpec);\n set(this, 'spec.baseboardSpec', this.spec?.baseboardSpec || defaultSpec.baseboardSpec);\n set(this, 'spec.baseboardSpec.connection', this.spec?.baseboardSpec?.connection || defaultSpec.baseboardSpec.connection);\n set(this, 'spec.baseboardSpec.connection.authSecretRef', this.spec?.baseboardSpec?.connection?.authSecretRef || {});\n }\n\n get warningMessages() {\n const out = [];\n\n if (this.metadata?.state?.error) {\n out.push({ text: this.metadata?.state.message });\n }\n\n return out;\n }\n\n get customValidationRules() {\n return [\n {\n path: 'spec.events.pollingInterval',\n translationKey: 'harvester.seeder.inventory.pollingInterval.label',\n validators: ['interval'],\n },\n ];\n }\n}\n","import { clone } from '@shell/utils/object';\nimport { NODE } from '@shell/config/types';\nimport { HCI } from '../types';\nimport HarvesterResource from './harvester';\n\nexport default class HciClusterNetwork extends HarvesterResource {\n get doneOverride() {\n const detailLocation = clone(this.listLocation);\n\n detailLocation.params.resource = HCI.CLUSTER_NETWORK;\n\n return detailLocation;\n }\n\n get parentLocationOverride() {\n return {\n ...this.listLocation,\n params: {\n ...this.listLocation.params,\n resource: HCI.CLUSTER_NETWORK\n }\n };\n }\n\n get canDelete() {\n return this._canDelete && this.id !== 'mgmt';\n }\n\n get canUpdate() {\n return this.hasLink('update') && this.$rootGetters['type-map/optionsFor'](this.type).isEditable && this.id !== 'mgmt';\n }\n\n get isReady() {\n const readyCondition = (this?.status?.conditions || []).find((c) => c.type === 'ready') || {};\n\n return readyCondition?.status === 'True';\n }\n\n get inStore() {\n return this.$rootGetters['currentProduct'].inStore;\n }\n\n get nodes() {\n const nodes = this.$rootGetters[`${ this.inStore }/all`](NODE);\n\n // filter out witness nodes and unschedulable nodes\n return nodes.filter((n) => !n.isUnSchedulable && n.isEtcd !== 'true');\n }\n\n get vlanStatuses() {\n const vlanStatuses = this.$rootGetters[`${ this.inStore }/all`](HCI.VLAN_STATUS);\n const nodeIds = this.nodes.map((n) => n.id);\n\n return vlanStatuses.filter((s) => {\n return nodeIds.includes(s?.status?.node) &&\n this.id === s?.status?.clusterNetwork;\n }) || [];\n }\n\n get isReadyForStorageNetwork() {\n if (this.id === 'mgmt') {\n return true;\n } else {\n const readyStatuses = this.vlanStatuses.filter((s) => s.isReady) || [];\n\n return readyStatuses.length === this.nodes.length && this.isReady;\n }\n }\n}\n","import { findBy } from '@shell/utils/array';\nimport { get } from '@shell/utils/object';\nimport { HCI } from '../types';\nimport HarvesterResource from './harvester';\n\nexport default class HciNodeNetwork extends HarvesterResource {\n get message() {\n const conditions = get(this, 'status.conditions');\n\n return (findBy(conditions, 'type', 'Ready') || {}).message ;\n }\n\n get isReady() {\n const conditions = get(this, 'status.conditions');\n\n return (findBy(conditions, 'type', 'Ready') || {})?.status === 'True';\n }\n\n get nics() {\n return this?.status?.nics || [];\n }\n\n get attachNodeName() {\n return get(this, `metadata.labels.\"network.harvesterhci.io/nodename\"`) || '';\n }\n\n get linkMessage() {\n return {\n name: this.attachNodeName,\n message: this.message,\n to: `${ HCI.HOST }/${ this.attachNodeName }?mode=edit`\n };\n }\n}\n","import { isEmpty } from 'lodash';\n\nimport { set, clone } from '@shell/utils/object';\nimport { insertAt } from '@shell/utils/array';\nimport { HOSTNAME } from '@shell/config/labels-annotations';\nimport { matching } from '@shell/utils/selector';\nimport { NODE } from '@shell/config/types';\nimport { HCI } from '../types';\nimport HarvesterResource from './harvester';\n\nconst NOT_READY = 'Not Ready';\n\nexport default class HciVlanConfig extends HarvesterResource {\n applyDefaults() {\n const defaultSpec = {\n uplink: {\n nics: [],\n linkAttributes: {},\n bondOptions: { mode: 'active-backup' },\n },\n };\n\n set(this, 'spec', this.spec || defaultSpec);\n set(this, 'spec.uplink.linkAttributes', this.spec?.uplink?.linkAttributes || {});\n set(this, 'spec.uplink.bondOptions', this.spec?.uplink?.bondOptions || {});\n }\n\n get groupByClusterNetwork() {\n return this.spec?.clusterNetwork;\n }\n\n get doneOverride() {\n const detailLocation = clone(this.listLocation);\n\n detailLocation.params.resource = HCI.CLUSTER_NETWORK;\n\n return detailLocation;\n }\n\n get parentLocationOverride() {\n return {\n ...this.listLocation,\n params: {\n ...this.listLocation.params,\n resource: HCI.CLUSTER_NETWORK\n }\n };\n }\n\n get typeDisplay() {\n return 'VLAN';\n }\n\n get _availableActions() {\n const out = super._availableActions;\n\n insertAt(out, 0, this.migrateAction);\n\n return out;\n }\n\n get migrateAction() {\n return {\n action: 'migrate',\n icon: 'icon icon-copy',\n label: this.t('harvester.vlanConfig.action.migrate'),\n };\n }\n\n migrate(resources = this) {\n this.$dispatch('promptModal', {\n resources,\n component: 'HarvesterVlanConfigMigrateDialog',\n });\n }\n\n get inStore() {\n return this.$rootGetters['currentProduct'].inStore;\n }\n\n get vlanStatuses() {\n const nodes = this.nodes.map((n) => n.id) || [];\n const vlanStatuses = this.$rootGetters[`${ this.inStore }/all`](HCI.VLAN_STATUS);\n\n return vlanStatuses.filter((s) => {\n return nodes.includes(s?.status?.node) &&\n this.id === s?.status?.vlanConfig;\n }) || [];\n }\n\n get isReady() {\n if (this.nodes.length === 0 || (this.vlanStatuses.length !== this.nodes.length)) {\n return false;\n } else {\n const states = this.vlanStatuses.filter((s) => {\n return s.isReady;\n });\n\n return states.length === this.vlanStatuses.length;\n }\n }\n\n get selectedNodes() {\n const nodeSelector = this.spec?.nodeSelector || {};\n const nodes = this.$rootGetters[`${ this.inStore }/all`](NODE);\n\n if (isEmpty(nodeSelector)) {\n return nodes;\n } else if (nodeSelector[HOSTNAME] && Object.keys(nodeSelector).length === 1) {\n return nodes.filter((n) => n.id === nodeSelector[HOSTNAME]) || [];\n } else {\n const matchNodes = matching(nodes || [], nodeSelector).map((n) => n.id);\n\n return nodes.filter((n) => matchNodes.includes(n.id));\n }\n }\n\n get nodes() {\n return this.selectedNodes.filter((n) => !n.isUnSchedulable && n.isEtcd !== 'true');\n }\n\n get stateDisplay() {\n if (!this.isReady) {\n return NOT_READY;\n }\n\n return super.stateDisplay;\n }\n\n get stateBackground() {\n if (!this.isReady) {\n return 'bg-warning';\n }\n\n return super.stateBackground;\n }\n}\n","import { findBy } from '@shell/utils/array';\n\nimport HarvesterResource from './harvester';\n\nexport default class HciVlanStatus extends HarvesterResource {\n get isReady() {\n const conditions = this.status?.conditions || [];\n const readyCondition = findBy(conditions, 'type', 'ready') || {};\n\n return readyCondition.status === 'True';\n }\n}\n","// https://github.com/harvester/dashboard/releases/tag/v1.3.0\nconst featuresV130 = [\n 'supportHarvesterClusterVersion'\n];\n\n// https://github.com/harvester/dashboard/releases/tag/v1.3.1\nconst featuresV131 = [\n ...featuresV130,\n 'autoRotateRke2CertsSetting',\n 'supportBundleNodeCollectionTimeoutSetting'\n];\n\n// https://github.com/harvester/dashboard/releases/tag/v1.3.2\nconst featuresV132 = [\n ...featuresV131,\n 'kubeconfigDefaultTokenTTLMinutesSetting',\n 'improveMaintenanceMode',\n];\n\n// TODO: add v1.3.3 official release note\n// https://github.com/harvester/dashboard/releases/tag/v1.3.3-dev-20250105\nconst featuresV133 = [\n ...featuresV132,\n];\n\n// https://github.com/harvester/dashboard/releases/tag/v1.4.0\nconst featuresV140 = [\n ...featuresV133,\n 'cpuPinning',\n 'usbPassthrough',\n 'volumeEncryption',\n 'schedulingVMBackup',\n 'vmSnapshotQuota',\n 'longhornV2LVMSupport',\n 'improveMaintenanceMode',\n];\n\n// https://github.com/harvester/dashboard/releases/tag/v1.4.1\nconst featuresV141 = [\n ...featuresV140\n];\n\n// TODO: add v1.4.2 official release note\nconst featuresV142 = [\n ...featuresV141\n];\n\n// TODO: add v1.5.0 official release note\nconst featuresV150 = [\n ...featuresV142,\n 'tpmPersistentState',\n 'efiPersistentState',\n 'untaggedNetworkSetting',\n 'skipSingleReplicaDetachedVol',\n 'thirdPartyStorage'\n];\n\nexport const RELEASE_FEATURES = {\n 'v1.3.0': featuresV130,\n 'v1.3.1': featuresV131,\n 'v1.3.2': featuresV132,\n 'v1.3.3': featuresV133,\n 'v1.4.0': featuresV140,\n 'v1.4.1': featuresV141,\n 'v1.4.2': featuresV142,\n 'v1.5.0': featuresV150\n};\n","import semver from 'semver';\nimport { RELEASE_FEATURES } from '../config/feature-flags';\n\nexport const docLink = (suffix, version) => {\n const docVersion = `v${ semver.major(version) }.${ semver.minor(version) }`;\n\n return `https://docs.harvesterhci.io/${ docVersion }${ suffix }`;\n};\n\nexport function getVersion(v) {\n // e.g v1.4.0\n if (process.env.VUE_APP_SERVER_VERSION) {\n return process.env.VUE_APP_SERVER_VERSION;\n }\n\n try {\n // v1.4.1-rc.1 => v1.4.1, v1.4.1-dev-20241222 => v1.4.1\n return `v${ semver.major(v) }.${ semver.minor(v) }.${ semver.patch(v) }`;\n } catch (error) {\n // fallback to the latest version\n return latestVersion(Object.keys(RELEASE_FEATURES));\n }\n}\n\nfunction latestVersion(versions) {\n return versions.sort((a, b) => semver.compare(a, b)).pop();\n}\n\n// v1.3.3 => latest v1.3.x, v1.4.2 => latest v1.4.x\nfunction latestMinorVersion(v) {\n const minor = `v${ semver.major(v) }.${ semver.minor(v) }`;\n const minorVersions = Object.keys(RELEASE_FEATURES).filter((version) => version.startsWith(minor));\n\n return latestVersion(minorVersions);\n}\n\nexport const featureEnabled = (featureKey, serverVersion) => {\n const version = getVersion(serverVersion);\n let releasedFeatures = RELEASE_FEATURES[version];\n\n if (!releasedFeatures) {\n const fallback = latestMinorVersion(version);\n\n releasedFeatures = RELEASE_FEATURES[fallback];\n }\n\n return releasedFeatures.includes(featureKey);\n};\n","import { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\n\nexport function parseVolumeClaimTemplates(data) {\n let out = [];\n\n try {\n out = JSON.parse(data?.metadata?.annotations?.[HCI_ANNOTATIONS.VOLUME_CLAIM_TEMPLATE]) || [];\n } catch (e) {}\n\n return out;\n}\n","import { HCI } from '@pkg/harvester/config/labels-annotations';\n\nexport const VM_IMAGE_FILE_FORMAT = ['qcow', 'qcow2', 'raw', 'img', 'iso'];\n\nexport function imageUrl(url, getters, errors, validatorArgs, type) {\n const t = getters['i18n/t'];\n\n if (!url || url === '') {\n return errors;\n }\n\n const suffixName = url.split('/').pop();\n const fileSuffix = suffixName.split('.').pop().toLowerCase();\n\n if (!VM_IMAGE_FILE_FORMAT.includes(fileSuffix)) {\n const tipString = type === 'file' ? 'harvester.validation.image.ruleFileTip' : 'harvester.validation.image.ruleTip';\n\n errors.push(t(tipString));\n }\n\n return errors;\n}\n\nexport function fileRequired(annotations = {}, getters, errors, validatorArgs, type) {\n const t = getters['i18n/t'];\n\n if (!annotations[HCI.IMAGE_NAME]) {\n errors.push(t('validation.required', { key: t('harvester.image.fileName') }));\n }\n\n return errors;\n}\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode/');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query, {\n arrayFormat: 'repeat',\n addQueryPrefix: false\n });\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-13.use[3]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./LabeledInput.vue?vue&type=style&index=1&id=3954a5a8&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"965972b6\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!../../../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-13.use[3]!../../../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./vnc.vue?vue&type=style&index=0&id=ae3e3f90&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"407ab32e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ActionDropdown.vue?vue&type=style&index=0&id=2829f66d&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"695df0fd\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ActionMenu.vue?vue&type=style&index=0&id=3af780f6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"07ce45a4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./AppModal.vue?vue&type=style&index=0&id=61be4f05&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f609cf72\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./AsyncButton.vue?vue&type=style&index=0&id=799da077&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"29d48619\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./BannerGraphic.vue?vue&type=style&index=0&id=892b88ea&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"279cc0f9\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ButtonDropdown.vue?vue&type=style&index=0&id=2ab9ff7a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e65ca0d2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ButtonMultiAction.vue?vue&type=style&index=0&id=750b8386&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"27f3b74a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./CodeMirror.vue?vue&type=style&index=0&id=e761bafa&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8981980e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./CommunityLinks.vue?vue&type=style&index=0&id=05573032&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"74f20dca\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./CruResource.vue?vue&type=style&index=0&id=820bce44&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"12e49813\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./CruResourceFooter.vue?vue&type=style&index=0&id=21cdf96a&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"096eb12e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./DetailText.vue?vue&type=style&index=0&id=348d5cf1&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"cfd3f7e6\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./DetailTop.vue?vue&type=style&index=0&id=50af44aa&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"58c7ad54\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ExplorerProjectsNamespaces.vue?vue&type=style&index=0&id=4b76ed34&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"81c71f58\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ExplorerProjectsNamespaces.vue?vue&type=style&index=1&id=4b76ed34&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"33bcd240\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./FileDiff.vue?vue&type=style&index=0&id=639a852a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3df338b8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./FileDiff.vue?vue&type=style&index=1&id=639a852a&scoped=true&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0f55430e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./IconMessage.vue?vue&type=style&index=0&id=01996ade&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"017ed6a8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./IconOrSvg.vue?vue&type=style&index=0&id=373e6345&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"706580d6\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./IndentedPanel.vue?vue&type=style&index=0&id=16af4bc4&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ec2b28d2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./InfoBox.vue?vue&type=style&index=0&id=1c5683df&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0685007a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Loading.vue?vue&type=style&index=0&id=1d9696d1&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ae6b26d2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ModalWithCard.vue?vue&type=style&index=0&id=0430f766&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0ea71f4d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ModalWithCard.vue?vue&type=style&index=1&id=0430f766&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5ad21d3e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./MoveModal.vue?vue&type=style&index=0&id=840f5128&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5c03d4dc\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ResourceCancelModal.vue?vue&type=style&index=0&id=72d8b215&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"663a25c0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Masthead.vue?vue&type=style&index=0&id=81c48f58&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5630a546\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=3c03c7c6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6e4ad154\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Masthead.vue?vue&type=style&index=0&id=577fc9fa&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4b842c29\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ResourceLoadingIndicator.vue?vue&type=style&index=0&id=6457c305&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4cdee72e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=515e48d4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e52873ae\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ResourceYaml.vue?vue&type=style&index=0&id=49797251&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5bb18125\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ResourceYaml.vue?vue&type=style&index=1&id=49797251&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"517aab91\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./SimpleBox.vue?vue&type=style&index=0&id=48821e48&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"27072055\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./SimpleBox.vue?vue&type=style&index=1&id=48821e48&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"14dcb12e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./THead.vue?vue&type=style&index=0&id=d8d3445c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f1b413fc\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./THead.vue?vue&type=style&index=1&id=d8d3445c&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0c981c96\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=171d81ac&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4880fe8a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=1&id=171d81ac&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"65fd3062\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Tab.vue?vue&type=style&index=0&id=6f6df00a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a89edbbc\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=79e80ea7&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1983cda9\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Tag.vue?vue&type=style&index=0&id=0d281a35&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6a1f327e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Wizard.vue?vue&type=style&index=0&id=21be6a33&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"622bfed8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./YamlEditor.vue?vue&type=style&index=0&id=3f74996c&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0f89e9cf\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=0c2f9a28&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"78610f54\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ArrayList.vue?vue&type=style&index=0&id=d6b8fa5e&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3d6360d4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ArrayListGrouped.vue?vue&type=style&index=0&id=eb1084c8&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"18b320ff\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./ColorInput.vue?vue&type=style&index=0&id=4b3e7faa&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"079542f0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Footer.vue?vue&type=style&index=0&id=5743b8c9&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2053e0a7\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./InputWithSelect.vue?vue&type=style&index=0&id=035f9ce5&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0c4f3662\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./LabeledSelect.vue?vue&type=style&index=0&id=92b3990a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8a439548\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Select.vue?vue&type=style&index=0&id=fef44118&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"90496020\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./SimpleSecretSelector.vue?vue&type=style&index=0&id=cea7a3ca&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c32f2c50\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Circle.vue?vue&type=style&index=0&id=5f78e642&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8fa42958\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Favorite.vue?vue&type=style&index=0&id=f74a378a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0211f789\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./receiverConfig.vue?vue&type=style&index=0&id=0a3f1bba&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a9778ac2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./opsgenie.vue?vue&type=style&index=0&id=174af1a6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4eac63c4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./management.cattle.io.globalrole.vue?vue&type=style&index=0&id=06b0c427&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"65654eea\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./management.cattle.io.project.vue?vue&type=style&index=0&id=0b3eae82&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1e2446b7\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./management.cattle.io.roletemplate.vue?vue&type=style&index=0&id=e0c89e72&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3cdbc21c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../vue-loader/dist/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./pod.vue?vue&type=style&index=0&id=64ba45e0&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"29a1f1ec\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./BadgeState.vue?vue&type=style&index=0&id=64b26d7f&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c26d9ae8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./BadgeState.vue?vue&type=style&index=1&id=64b26d7f&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9a8631c0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Banner.vue?vue&type=style&index=0&id=1a4e45d4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d4f9953a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Card.vue?vue&type=style&index=0&id=11c9bbd2&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"643dfc2a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./Checkbox.vue?vue&type=style&index=0&id=b59125e4&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"73cb2994\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./LabeledInput.vue?vue&type=style&index=0&id=3954a5a8&scoped=true&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a745f270\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./RadioButton.vue?vue&type=style&index=0&id=1346032c&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"14d6db5f\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../vue-loader/dist/stylePostLoader.js!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./RadioGroup.vue?vue&type=style&index=0&id=452c5c93&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"721a2607\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../vue-loader/dist/stylePostLoader.js!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../vue-loader/dist/index.js??ruleSet[0].use[1]!./LabeledTooltip.vue?vue&type=style&index=0&id=cd538d50&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3138caa8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./Members.vue?vue&type=style&index=0&id=fa2c9f40&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"799fe399\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=2c8d60f2&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f12b7872\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./NovncConsole.vue?vue&type=style&index=0&id=56da10be&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"73d296b4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./NovncConsoleCustomKeys.vue?vue&type=style&index=0&id=7821dcb9&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9763166c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./NovncConsoleItem.vue?vue&type=style&index=0&id=11c334cb&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5e3edba4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./NovncConsoleWrapper.vue?vue&type=style&index=0&id=55ed4d1a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"70bf6176\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterSupportBundle.vue?vue&type=style&index=0&id=4369f8da&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1f56704d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=f88eec4a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5536bad8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./receiver.vue?vue&type=style&index=0&id=a0fecebc&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6ce52309\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=45ae37da&scoped=true&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c416a7e2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./serial.vue?vue&type=style&index=0&id=2efbfdaf&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"51f6978c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=74e3f663&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2715a0f6\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./index.vue?vue&type=style&index=0&id=140c2578&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7f55fbee\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","export function getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nexport function getTarget() {\n // @ts-expect-error navigator and windows are not available in all environments\n return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : {};\n}\nexport const isProxyAvailable = typeof Proxy === 'function';\n","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","let supported;\nlet perf;\nexport function isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof globalThis !== 'undefined' && ((_a = globalThis.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = globalThis.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nexport function now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const.js';\nimport { now } from './time.js';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n now() {\n return now();\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise((resolve) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n","import { getDevtoolsGlobalHook, getTarget, isProxyAvailable } from './env.js';\nimport { HOOK_SETUP } from './const.js';\nimport { ApiProxy } from './proxy.js';\nexport * from './api/index.js';\nexport * from './plugin.js';\nexport * from './time.js';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy,\n });\n if (proxy) {\n setupFn(proxy.proxiedTarget);\n }\n }\n}\n","/*!\n * vuex v4.1.0\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { inject, effectScope, reactive, watch, computed } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nvar storeKey = 'store';\n\nfunction useStore (key) {\n if ( key === void 0 ) key = null;\n\n return inject(key !== null ? key : storeKey)\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset state\n resetStoreState(store, state, hot);\n}\n\nfunction resetStoreState (store, state, hot) {\n var oldState = store._state;\n var oldScope = store._scope;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computedObj = {};\n var computedCache = {};\n\n // create a new effect scope and create computed object inside it to avoid\n // getters (computed) getting destroyed on component unmount.\n var scope = effectScope(true);\n\n scope.run(function () {\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldState.\n // using partial to return function with only arguments preserved in closure environment.\n computedObj[key] = partial(fn, store);\n computedCache[key] = computed(function () { return computedObj[key](); });\n Object.defineProperty(store.getters, key, {\n get: function () { return computedCache[key].value; },\n enumerable: true // for local getters\n });\n });\n });\n\n store._state = reactive({\n data: state\n });\n\n // register the newly created effect scope to the store so that we can\n // dispose the effects when this method runs again in the future.\n store._scope = scope;\n\n // enable strict mode for new state\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldState) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldState.data = null;\n });\n }\n }\n\n // dispose previously registered effect scope if there is one.\n if (oldScope) {\n oldScope.stop();\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n parentState[moduleName] = module.state;\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by state update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n watch(function () { return store._state.data; }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, flush: 'sync' });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nvar LABEL_VUEX_BINDINGS = 'vuex bindings';\nvar MUTATIONS_LAYER_ID = 'vuex:mutations';\nvar ACTIONS_LAYER_ID = 'vuex:actions';\nvar INSPECTOR_ID = 'vuex';\n\nvar actionId = 0;\n\nfunction addDevtools (app, store) {\n setupDevtoolsPlugin(\n {\n id: 'org.vuejs.vuex',\n app: app,\n label: 'Vuex',\n homepage: 'https://next.vuex.vuejs.org/',\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\n packageName: 'vuex',\n componentStateTypes: [LABEL_VUEX_BINDINGS]\n },\n function (api) {\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: 'Vuex Mutations',\n color: COLOR_LIME_500\n });\n\n api.addTimelineLayer({\n id: ACTIONS_LAYER_ID,\n label: 'Vuex Actions',\n color: COLOR_LIME_500\n });\n\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Vuex',\n icon: 'storage',\n treeFilterPlaceholder: 'Filter stores...'\n });\n\n api.on.getInspectorTree(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n if (payload.filter) {\n var nodes = [];\n flattenStoreForInspectorTree(nodes, store._modules.root, payload.filter, '');\n payload.rootNodes = nodes;\n } else {\n payload.rootNodes = [\n formatStoreForInspectorTree(store._modules.root, '')\n ];\n }\n }\n });\n\n api.on.getInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n makeLocalGetters(store, modulePath);\n payload.state = formatStoreForInspectorState(\n getStoreModule(store._modules, modulePath),\n modulePath === 'root' ? store.getters : store._makeLocalGettersCache,\n modulePath\n );\n }\n });\n\n api.on.editInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n var path = payload.path;\n if (modulePath !== 'root') {\n path = modulePath.split('/').filter(Boolean).concat( path);\n }\n store._withCommit(function () {\n payload.set(store._state.data, path, payload.state.value);\n });\n }\n });\n\n store.subscribe(function (mutation, state) {\n var data = {};\n\n if (mutation.payload) {\n data.payload = mutation.payload;\n }\n\n data.state = state;\n\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: mutation.type,\n data: data\n }\n });\n });\n\n store.subscribeAction({\n before: function (action, state) {\n var data = {};\n if (action.payload) {\n data.payload = action.payload;\n }\n action._id = actionId++;\n action._time = Date.now();\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: action._time,\n title: action.type,\n groupId: action._id,\n subtitle: 'start',\n data: data\n }\n });\n },\n after: function (action, state) {\n var data = {};\n var duration = Date.now() - action._time;\n data.duration = {\n _custom: {\n type: 'duration',\n display: (duration + \"ms\"),\n tooltip: 'Action duration',\n value: duration\n }\n };\n if (action.payload) {\n data.payload = action.payload;\n }\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: action.type,\n groupId: action._id,\n subtitle: 'end',\n data: data\n }\n });\n }\n });\n }\n );\n}\n\n// extracted from tailwind palette\nvar COLOR_LIME_500 = 0x84cc16;\nvar COLOR_DARK = 0x666666;\nvar COLOR_WHITE = 0xffffff;\n\nvar TAG_NAMESPACED = {\n label: 'namespaced',\n textColor: COLOR_WHITE,\n backgroundColor: COLOR_DARK\n};\n\n/**\n * @param {string} path\n */\nfunction extractNameFromPath (path) {\n return path && path !== 'root' ? path.split('/').slice(-2, -1)[0] : 'Root'\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorNode}\n */\nfunction formatStoreForInspectorTree (module, path) {\n return {\n id: path || 'root',\n // all modules end with a `/`, we want the last segment only\n // cart/ -> cart\n // nested/cart/ -> cart\n label: extractNameFromPath(path),\n tags: module.namespaced ? [TAG_NAMESPACED] : [],\n children: Object.keys(module._children).map(function (moduleName) { return formatStoreForInspectorTree(\n module._children[moduleName],\n path + moduleName + '/'\n ); }\n )\n }\n}\n\n/**\n * @param {import('@vue/devtools-api').CustomInspectorNode[]} result\n * @param {*} module\n * @param {string} filter\n * @param {string} path\n */\nfunction flattenStoreForInspectorTree (result, module, filter, path) {\n if (path.includes(filter)) {\n result.push({\n id: path || 'root',\n label: path.endsWith('/') ? path.slice(0, path.length - 1) : path || 'Root',\n tags: module.namespaced ? [TAG_NAMESPACED] : []\n });\n }\n Object.keys(module._children).forEach(function (moduleName) {\n flattenStoreForInspectorTree(result, module._children[moduleName], filter, path + moduleName + '/');\n });\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorState}\n */\nfunction formatStoreForInspectorState (module, getters, path) {\n getters = path === 'root' ? getters : getters[path];\n var gettersKeys = Object.keys(getters);\n var storeState = {\n state: Object.keys(module.state).map(function (key) { return ({\n key: key,\n editable: true,\n value: module.state[key]\n }); })\n };\n\n if (gettersKeys.length) {\n var tree = transformPathsToObjectTree(getters);\n storeState.getters = Object.keys(tree).map(function (key) { return ({\n key: key.endsWith('/') ? extractNameFromPath(key) : key,\n editable: false,\n value: canThrow(function () { return tree[key]; })\n }); });\n }\n\n return storeState\n}\n\nfunction transformPathsToObjectTree (getters) {\n var result = {};\n Object.keys(getters).forEach(function (key) {\n var path = key.split('/');\n if (path.length > 1) {\n var target = result;\n var leafKey = path.pop();\n path.forEach(function (p) {\n if (!target[p]) {\n target[p] = {\n _custom: {\n value: {},\n display: p,\n tooltip: 'Module',\n abstract: true\n }\n };\n }\n target = target[p]._custom.value;\n });\n target[leafKey] = canThrow(function () { return getters[key]; });\n } else {\n result[key] = canThrow(function () { return getters[key]; });\n }\n });\n return result\n}\n\nfunction getStoreModule (moduleMap, path) {\n var names = path.split('/').filter(function (n) { return n; });\n return names.reduce(\n function (module, moduleName, i) {\n var child = module[moduleName];\n if (!child) {\n throw new Error((\"Missing module \\\"\" + moduleName + \"\\\" for path \\\"\" + path + \"\\\".\"))\n }\n return i === names.length - 1 ? child : child._children\n },\n path === 'root' ? moduleMap : moduleMap.root._children\n )\n}\n\nfunction canThrow (cb) {\n try {\n return cb()\n } catch (e) {\n return e\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nfunction createStore (options) {\n return new Store(options)\n}\n\nvar Store = function Store (options) {\n var this$1$1 = this;\n if ( options === void 0 ) options = {};\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n var devtools = options.devtools;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._makeLocalGettersCache = Object.create(null);\n\n // EffectScope instance. when registering new getters, we wrap them inside\n // EffectScope so that getters (computed) would not be destroyed on\n // component unmount.\n this._scope = null;\n\n this._devtools = devtools;\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store state, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreState(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1$1); });\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nStore.prototype.install = function install (app, injectKey) {\n app.provide(injectKey || storeKey, this);\n app.config.globalProperties.$store = this;\n\n var useDevtools = this._devtools !== undefined\n ? this._devtools\n : (process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__;\n\n if (useDevtools) {\n addDevtools(app, this);\n }\n};\n\nprototypeAccessors.state.get = function () {\n return this._state.data\n};\n\nprototypeAccessors.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch$1 (getter, cb, options) {\n var this$1$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return watch(function () { return getter(this$1$1.state, this$1$1.getters); }, cb, Object.assign({}, options))\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1$1 = this;\n\n this._withCommit(function () {\n this$1$1._state.data = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreState(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1$1.state, path.slice(0, -1));\n delete parentState[path[path.length - 1]];\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n version: '4.1.0',\n Store: Store,\n storeKey: storeKey,\n createStore: createStore,\n useStore: useStore,\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, storeKey, useStore };\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\n/** @type {(O: object) => string} */\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\n/** @type {<T = unknown>(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {(receiver: import('.').TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call} Getter */\n/** @type {{ [k in `\\$${import('.').TypedArrayName}`]?: Getter } & { __proto__: null }} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType<typeof tryAllTypedArrays>} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType<typeof tryAllSlices>} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","var map = {\n\t\"./csp/dark/rancher-logo.svg\": 32195,\n\t\"./csp/favicon.png\": 31365,\n\t\"./csp/metadata\": 6471,\n\t\"./csp/metadata.json\": 6471,\n\t\"./csp/rancher-logo.svg\": 42850,\n\t\"./federal/dark/rancher-logo.svg\": 70266,\n\t\"./federal/metadata\": 91862,\n\t\"./federal/metadata.json\": 91862,\n\t\"./federal/rancher-logo.svg\": 18729,\n\t\"./harvester/favicon.png\": 23561,\n\t\"./harvester/metadata\": 51507,\n\t\"./harvester/metadata.json\": 51507,\n\t\"./rgs/dark/rancher-logo.svg\": 85501,\n\t\"./rgs/metadata\": 48401,\n\t\"./rgs/metadata.json\": 48401,\n\t\"./rgs/rancher-logo.svg\": 24548,\n\t\"./suse/dark/rancher-logo.svg\": 47629,\n\t\"./suse/favicon.png\": 17089,\n\t\"./suse/metadata\": 37259,\n\t\"./suse/metadata.json\": 37259,\n\t\"./suse/rancher-logo.svg\": 8084\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 96817;","var map = {\n\t\"./csp/dark/rancher-logo.svg\": 32195,\n\t\"./federal/dark/rancher-logo.svg\": 70266,\n\t\"./rgs/dark/rancher-logo.svg\": 85501,\n\t\"./suse/dark/rancher-logo.svg\": 47629\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4378;","var map = {\n\t\"./csp/metadata.json\": 6471,\n\t\"./federal/metadata.json\": 91862,\n\t\"./harvester/metadata.json\": 51507,\n\t\"./rgs/metadata.json\": 48401,\n\t\"./suse/metadata.json\": 37259\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 93558;","var map = {\n\t\"./banner.svg\": 95754,\n\t\"./dark/banner.svg\": 9273,\n\t\"./dark/login-landscape.svg\": 26458,\n\t\"./dark/rancher-logo.svg\": 55966,\n\t\"./decoration-cloud-big-white.svg\": 12531,\n\t\"./decoration-ground.svg\": 77430,\n\t\"./error-desert-landscape.svg\": 21492,\n\t\"./half-logo.svg\": 28225,\n\t\"./harvester.png\": 57074,\n\t\"./harvester.svg\": 27782,\n\t\"./login-landscape.svg\": 46751,\n\t\"./rancher-logo.svg\": 5669,\n\t\"./setup-step-one.svg\": 549,\n\t\"./sunglasses.svg\": 38566\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 74752;","var map = {\n\t\"./banner.svg\": 95754,\n\t\"./dark/banner.svg\": 9273,\n\t\"./dark/login-landscape.svg\": 26458,\n\t\"./dark/rancher-logo.svg\": 55966,\n\t\"./decoration-cloud-big-white.svg\": 12531,\n\t\"./decoration-ground.svg\": 77430,\n\t\"./error-desert-landscape.svg\": 21492,\n\t\"./half-logo.svg\": 28225,\n\t\"./harvester.png\": 57074,\n\t\"./harvester.svg\": 27782,\n\t\"./login-landscape.svg\": 46751,\n\t\"./rancher-logo.svg\": 5669,\n\t\"./setup-step-one.svg\": 549,\n\t\"./sunglasses.svg\": 38566\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 87900;","var map = {\n\t\"./aliyun-black.svg\": 87526,\n\t\"./aliyun.svg\": 17180,\n\t\"./aliyunecs-black.svg\": 75685,\n\t\"./aliyunecs.svg\": 38683,\n\t\"./amazonec2-black.svg\": 52212,\n\t\"./amazonec2.svg\": 16598,\n\t\"./amazoneks-black.svg\": 43881,\n\t\"./amazoneks.svg\": 90287,\n\t\"./aws.svg\": 59835,\n\t\"./azure-black.svg\": 80895,\n\t\"./azure.svg\": 60961,\n\t\"./azuread-black.svg\": 81392,\n\t\"./azuread.svg\": 45634,\n\t\"./azureaks-black.svg\": 35894,\n\t\"./azureaks.svg\": 40268,\n\t\"./baidu-black.svg\": 71351,\n\t\"./baidu.svg\": 47113,\n\t\"./cloudca-black.svg\": 50309,\n\t\"./cloudca.svg\": 23131,\n\t\"./cloudscale-black.svg\": 51773,\n\t\"./cloudscale.svg\": 86531,\n\t\"./custom.svg\": 29181,\n\t\"./digitalocean-black.svg\": 65988,\n\t\"./digitalocean.svg\": 19110,\n\t\"./equinix-black.svg\": 66335,\n\t\"./equinix.svg\": 60705,\n\t\"./exoscale.svg\": 12896,\n\t\"./gcp.svg\": 2054,\n\t\"./gke-black.svg\": 3405,\n\t\"./gke.svg\": 61939,\n\t\"./google.svg\": 32561,\n\t\"./googlegke-black.svg\": 73562,\n\t\"./googlegke.svg\": 97712,\n\t\"./harvester.svg\": 53938,\n\t\"./huaweicce-black.svg\": 91128,\n\t\"./huaweicce.svg\": 40634,\n\t\"./import.svg\": 28499,\n\t\"./k3s-black.svg\": 35671,\n\t\"./k3s.svg\": 85545,\n\t\"./kubernetes-black.svg\": 27442,\n\t\"./kubernetes.svg\": 9144,\n\t\"./linode.svg\": 75553,\n\t\"./linodelke-black.svg\": 96441,\n\t\"./linodelke.svg\": 3199,\n\t\"./local-cluster.svg\": 47600,\n\t\"./minikube-black.svg\": 18152,\n\t\"./minikube.svg\": 92746,\n\t\"./nutanix.svg\": 70079,\n\t\"./oci-black.svg\": 40097,\n\t\"./oci.svg\": 46487,\n\t\"./openstack-black.svg\": 57990,\n\t\"./openstack.svg\": 53116,\n\t\"./oracle.svg\": 88594,\n\t\"./oracleoke-black.svg\": 56347,\n\t\"./oracleoke.svg\": 9053,\n\t\"./otc-black.svg\": 67294,\n\t\"./otc.svg\": 69348,\n\t\"./otccce.svg\": 24079,\n\t\"./outscale.svg\": 72886,\n\t\"./ovhcloudmks.svg\": 49619,\n\t\"./ovhcloudpubliccloud.svg\": 54474,\n\t\"./packet-black.svg\": 90742,\n\t\"./packet.svg\": 48428,\n\t\"./pinganyunecs-black.svg\": 49880,\n\t\"./pinganyunecs.svg\": 58490,\n\t\"./pnap-black.svg\": 59931,\n\t\"./pnap.svg\": 31549,\n\t\"./rackspace-black.svg\": 41511,\n\t\"./rackspace.svg\": 65785,\n\t\"./rke.svg\": 38102,\n\t\"./rke2.svg\": 49560,\n\t\"./softlayer.svg\": 61883,\n\t\"./tencenttke-black.svg\": 70963,\n\t\"./tencenttke.svg\": 77701,\n\t\"./vmwarevsphere-black.svg\": 26791,\n\t\"./vmwarevsphere.svg\": 5337\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 53588;","var map = {\n\t\"./activedirectory.svg\": 6101,\n\t\"./adfs.svg\": 24872,\n\t\"./azuread.svg\": 14336,\n\t\"./custom.svg\": 98283,\n\t\"./email.svg\": 41778,\n\t\"./freeipa.svg\": 42496,\n\t\"./github.svg\": 52075,\n\t\"./googleoauth.svg\": 63104,\n\t\"./grafana.svg\": 59826,\n\t\"./jaeger.svg\": 36308,\n\t\"./keycloak.svg\": 5477,\n\t\"./kiali.svg\": 66234,\n\t\"./linux.svg\": 31456,\n\t\"./longhorn.svg\": 81199,\n\t\"./neuvector.svg\": 66763,\n\t\"./okta.svg\": 31545,\n\t\"./openid.svg\": 92877,\n\t\"./openldap.svg\": 7841,\n\t\"./pagerduty.svg\": 75495,\n\t\"./ping.svg\": 35646,\n\t\"./prometheus.svg\": 91258,\n\t\"./shibboleth.svg\": 23294,\n\t\"./slack.svg\": 69742,\n\t\"./webhook.svg\": 94569,\n\t\"./windows.svg\": 88381\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 82360;","var map = {\n\t\"./__tests__/apps.deployment.test\": 25192,\n\t\"./__tests__/apps.deployment.test.ts\": 25192,\n\t\"./__tests__/batch.cronjob.test\": 8432,\n\t\"./__tests__/batch.cronjob.test.ts\": 8432,\n\t\"./__tests__/cluster.test\": 13573,\n\t\"./__tests__/cluster.test.ts\": 13573,\n\t\"./__tests__/fleet.cattle.io.cluster.test\": 84264,\n\t\"./__tests__/fleet.cattle.io.cluster.test.ts\": 84264,\n\t\"./__tests__/management.cattle.io.cluster.test\": 58221,\n\t\"./__tests__/management.cattle.io.cluster.test.ts\": 58221,\n\t\"./__tests__/management.cattle.io.node\": 25529,\n\t\"./__tests__/management.cattle.io.node.ts\": 25529,\n\t\"./__tests__/management.cattle.io.nodepool\": 94479,\n\t\"./__tests__/management.cattle.io.nodepool.ts\": 94479,\n\t\"./__tests__/namespace.test\": 68882,\n\t\"./__tests__/namespace.test.ts\": 68882,\n\t\"./__tests__/node.test\": 4915,\n\t\"./__tests__/node.test.ts\": 4915,\n\t\"./__tests__/provisioning.cattle.io.cluster.test\": 29759,\n\t\"./__tests__/provisioning.cattle.io.cluster.test.ts\": 29759,\n\t\"./__tests__/schema.tests\": 81453,\n\t\"./__tests__/schema.tests.ts\": 81453,\n\t\"./__tests__/secret.test\": 19147,\n\t\"./__tests__/secret.test.ts\": 19147,\n\t\"./__tests__/steve-schema.test\": 66888,\n\t\"./__tests__/steve-schema.test.ts\": 66888,\n\t\"./__tests__/storage.k8s.io.storageclass.test\": 77107,\n\t\"./__tests__/storage.k8s.io.storageclass.test.ts\": 77107,\n\t\"./__tests__/workload.test\": 91624,\n\t\"./__tests__/workload.test.ts\": 91624,\n\t\"./app\": 426,\n\t\"./app.js\": 426,\n\t\"./apps.controllerrevision\": 54686,\n\t\"./apps.controllerrevision.js\": 54686,\n\t\"./apps.daemonset\": 89395,\n\t\"./apps.daemonset.js\": 89395,\n\t\"./apps.deployment\": 41212,\n\t\"./apps.deployment.js\": 41212,\n\t\"./apps.replicaset\": 77763,\n\t\"./apps.replicaset.js\": 77763,\n\t\"./apps.statefulset\": 86791,\n\t\"./apps.statefulset.js\": 86791,\n\t\"./autoscaling.horizontalpodautoscaler\": 20763,\n\t\"./autoscaling.horizontalpodautoscaler.js\": 20763,\n\t\"./batch.cronjob\": 43020,\n\t\"./batch.cronjob.js\": 43020,\n\t\"./batch.job\": 66184,\n\t\"./batch.job.js\": 66184,\n\t\"./catalog.cattle.io.app\": 65502,\n\t\"./catalog.cattle.io.app.js\": 65502,\n\t\"./catalog.cattle.io.clusterrepo\": 48723,\n\t\"./catalog.cattle.io.clusterrepo.js\": 48723,\n\t\"./catalog.cattle.io.operation\": 67784,\n\t\"./catalog.cattle.io.operation.js\": 67784,\n\t\"./catalog.cattle.io.repo\": 71029,\n\t\"./catalog.cattle.io.repo.js\": 71029,\n\t\"./catalog.cattle.io.uiplugin\": 97960,\n\t\"./catalog.cattle.io.uiplugin.js\": 97960,\n\t\"./chart\": 92737,\n\t\"./chart.js\": 92737,\n\t\"./chartinstallaction\": 91380,\n\t\"./chartinstallaction.js\": 91380,\n\t\"./chartupgradeaction\": 4451,\n\t\"./chartupgradeaction.js\": 4451,\n\t\"./cis.cattle.io.clusterscan\": 90960,\n\t\"./cis.cattle.io.clusterscan.js\": 90960,\n\t\"./cis.cattle.io.clusterscanbenchmark\": 20173,\n\t\"./cis.cattle.io.clusterscanbenchmark.js\": 20173,\n\t\"./cis.cattle.io.clusterscanprofile\": 29875,\n\t\"./cis.cattle.io.clusterscanprofile.js\": 29875,\n\t\"./cis.cattle.io.clusterscanreport\": 24574,\n\t\"./cis.cattle.io.clusterscanreport.js\": 24574,\n\t\"./cloudcredential\": 45231,\n\t\"./cloudcredential.js\": 45231,\n\t\"./cluster\": 16787,\n\t\"./cluster.js\": 16787,\n\t\"./cluster.x-k8s.io.machine\": 61843,\n\t\"./cluster.x-k8s.io.machine.js\": 61843,\n\t\"./cluster.x-k8s.io.machinedeployment\": 22456,\n\t\"./cluster.x-k8s.io.machinedeployment.js\": 22456,\n\t\"./cluster.x-k8s.io.machineset\": 5555,\n\t\"./cluster.x-k8s.io.machineset.js\": 5555,\n\t\"./cluster/node\": 44458,\n\t\"./cluster/node.js\": 44458,\n\t\"./cluster/schema\": 62973,\n\t\"./cluster/schema.js\": 62973,\n\t\"./clusterroletemplatebinding\": 40408,\n\t\"./clusterroletemplatebinding.js\": 40408,\n\t\"./configmap\": 79925,\n\t\"./configmap.js\": 79925,\n\t\"./constraints.gatekeeper.sh.constraint\": 40172,\n\t\"./constraints.gatekeeper.sh.constraint.js\": 40172,\n\t\"./driver\": 81147,\n\t\"./driver.js\": 81147,\n\t\"./etcdbackup\": 10501,\n\t\"./etcdbackup.js\": 10501,\n\t\"./event\": 28473,\n\t\"./event.js\": 28473,\n\t\"./fleet.cattle.io.bundle\": 5096,\n\t\"./fleet.cattle.io.bundle.js\": 5096,\n\t\"./fleet.cattle.io.cluster\": 5904,\n\t\"./fleet.cattle.io.cluster.js\": 5904,\n\t\"./fleet.cattle.io.clustergroup\": 11173,\n\t\"./fleet.cattle.io.clustergroup.js\": 11173,\n\t\"./fleet.cattle.io.clusterregistrationtoken\": 67424,\n\t\"./fleet.cattle.io.clusterregistrationtoken.js\": 67424,\n\t\"./fleet.cattle.io.gitrepo\": 65751,\n\t\"./fleet.cattle.io.gitrepo.js\": 65751,\n\t\"./group.principal\": 97030,\n\t\"./group.principal.js\": 97030,\n\t\"./helm.cattle.io.projecthelmchart\": 7899,\n\t\"./helm.cattle.io.projecthelmchart.js\": 7899,\n\t\"./k8s.cni.cncf.io.networkattachmentdefinition\": 72183,\n\t\"./k8s.cni.cncf.io.networkattachmentdefinition.js\": 72183,\n\t\"./kontainerdriver\": 83448,\n\t\"./kontainerdriver.js\": 83448,\n\t\"./logging.banzaicloud.io.clusterflow\": 78694,\n\t\"./logging.banzaicloud.io.clusterflow.js\": 78694,\n\t\"./logging.banzaicloud.io.clusteroutput\": 63331,\n\t\"./logging.banzaicloud.io.clusteroutput.js\": 63331,\n\t\"./logging.banzaicloud.io.flow\": 21766,\n\t\"./logging.banzaicloud.io.flow.js\": 21766,\n\t\"./logging.banzaicloud.io.output\": 44931,\n\t\"./logging.banzaicloud.io.output.js\": 44931,\n\t\"./management.cattle.io.authconfig\": 78277,\n\t\"./management.cattle.io.authconfig.js\": 78277,\n\t\"./management.cattle.io.cluster\": 16544,\n\t\"./management.cattle.io.cluster.js\": 16544,\n\t\"./management.cattle.io.clusterroletemplatebinding\": 54820,\n\t\"./management.cattle.io.clusterroletemplatebinding.js\": 54820,\n\t\"./management.cattle.io.feature\": 58975,\n\t\"./management.cattle.io.feature.js\": 58975,\n\t\"./management.cattle.io.fleetworkspace\": 61504,\n\t\"./management.cattle.io.fleetworkspace.js\": 61504,\n\t\"./management.cattle.io.gitreporestriction\": 33707,\n\t\"./management.cattle.io.gitreporestriction.js\": 33707,\n\t\"./management.cattle.io.globalrole\": 14606,\n\t\"./management.cattle.io.globalrole.js\": 14606,\n\t\"./management.cattle.io.globalrolebinding\": 97621,\n\t\"./management.cattle.io.globalrolebinding.js\": 97621,\n\t\"./management.cattle.io.kontainerdriver\": 44660,\n\t\"./management.cattle.io.kontainerdriver.js\": 44660,\n\t\"./management.cattle.io.node\": 77917,\n\t\"./management.cattle.io.node.js\": 77917,\n\t\"./management.cattle.io.nodepool\": 68959,\n\t\"./management.cattle.io.nodepool.js\": 68959,\n\t\"./management.cattle.io.nodetemplate\": 57075,\n\t\"./management.cattle.io.nodetemplate.js\": 57075,\n\t\"./management.cattle.io.podsecurityadmissionconfigurationtemplate\": 10311,\n\t\"./management.cattle.io.podsecurityadmissionconfigurationtemplate.js\": 10311,\n\t\"./management.cattle.io.project\": 24220,\n\t\"./management.cattle.io.project.js\": 24220,\n\t\"./management.cattle.io.projectroletemplatebinding\": 91673,\n\t\"./management.cattle.io.projectroletemplatebinding.js\": 91673,\n\t\"./management.cattle.io.roletemplate\": 4799,\n\t\"./management.cattle.io.roletemplate.js\": 4799,\n\t\"./management.cattle.io.setting\": 76061,\n\t\"./management.cattle.io.setting.js\": 76061,\n\t\"./management.cattle.io.user\": 69754,\n\t\"./management.cattle.io.user.js\": 69754,\n\t\"./management/schema\": 95694,\n\t\"./management/schema.js\": 95694,\n\t\"./metrics.k8s.io.nodemetrics\": 86465,\n\t\"./metrics.k8s.io.nodemetrics.js\": 86465,\n\t\"./monitoring.coreos.com.alertmanagerconfig\": 34858,\n\t\"./monitoring.coreos.com.alertmanagerconfig.js\": 34858,\n\t\"./monitoring.coreos.com.podmonitor\": 67750,\n\t\"./monitoring.coreos.com.podmonitor.js\": 67750,\n\t\"./monitoring.coreos.com.prometheusrule\": 61403,\n\t\"./monitoring.coreos.com.prometheusrule.js\": 61403,\n\t\"./monitoring.coreos.com.receiver\": 57000,\n\t\"./monitoring.coreos.com.receiver.js\": 57000,\n\t\"./monitoring.coreos.com.route\": 55162,\n\t\"./monitoring.coreos.com.route.js\": 55162,\n\t\"./monitoring.coreos.com.servicemonitor\": 906,\n\t\"./monitoring.coreos.com.servicemonitor.js\": 906,\n\t\"./namespace\": 67867,\n\t\"./namespace.js\": 67867,\n\t\"./networking.istio.io.destinationrule\": 1835,\n\t\"./networking.istio.io.destinationrule.js\": 1835,\n\t\"./networking.k8s.io.ingress\": 67462,\n\t\"./networking.k8s.io.ingress.js\": 67462,\n\t\"./nodedriver\": 80903,\n\t\"./nodedriver.js\": 80903,\n\t\"./persistentvolume\": 13070,\n\t\"./persistentvolume.js\": 13070,\n\t\"./persistentvolumeclaim\": 17544,\n\t\"./persistentvolumeclaim.js\": 17544,\n\t\"./pod\": 76006,\n\t\"./pod.js\": 76006,\n\t\"./principal\": 97219,\n\t\"./principal.js\": 97219,\n\t\"./projectroletemplatebinding\": 99493,\n\t\"./projectroletemplatebinding.js\": 99493,\n\t\"./provisioning.cattle.io.cluster\": 47685,\n\t\"./provisioning.cattle.io.cluster.js\": 47685,\n\t\"./rbac.authorization.k8s.io.clusterrole\": 8324,\n\t\"./rbac.authorization.k8s.io.clusterrole.js\": 8324,\n\t\"./rbac.authorization.k8s.io.clusterrolebinding\": 69791,\n\t\"./rbac.authorization.k8s.io.clusterrolebinding.js\": 69791,\n\t\"./rbac.authorization.k8s.io.role\": 51700,\n\t\"./rbac.authorization.k8s.io.role.js\": 51700,\n\t\"./rbac.authorization.k8s.io.rolebinding\": 559,\n\t\"./rbac.authorization.k8s.io.rolebinding.js\": 559,\n\t\"./replicationcontroller\": 12299,\n\t\"./replicationcontroller.js\": 12299,\n\t\"./resources.cattle.io.backup\": 89713,\n\t\"./resources.cattle.io.backup.js\": 89713,\n\t\"./resources.cattle.io.restore\": 23741,\n\t\"./resources.cattle.io.restore.js\": 23741,\n\t\"./rke-machine-config.cattle.io.harvesterconfig\": 81689,\n\t\"./rke-machine-config.cattle.io.harvesterconfig.js\": 81689,\n\t\"./rke-machine.cattle.io.amazonec2machinetemplate\": 39651,\n\t\"./rke-machine.cattle.io.amazonec2machinetemplate.js\": 39651,\n\t\"./rke-machine.cattle.io.azuremachinetemplate\": 79144,\n\t\"./rke-machine.cattle.io.azuremachinetemplate.js\": 79144,\n\t\"./rke-machine.cattle.io.digitaloceanmachinetemplate\": 81593,\n\t\"./rke-machine.cattle.io.digitaloceanmachinetemplate.js\": 81593,\n\t\"./rke-machine.cattle.io.linodemachinetemplate\": 69770,\n\t\"./rke-machine.cattle.io.linodemachinetemplate.js\": 69770,\n\t\"./rke-machine.cattle.io.machinetemplate\": 38799,\n\t\"./rke-machine.cattle.io.machinetemplate.js\": 38799,\n\t\"./rke-machine.cattle.io.pnapmachinetemplate\": 82186,\n\t\"./rke-machine.cattle.io.pnapmachinetemplate.js\": 82186,\n\t\"./rke-machine.cattle.io.vmwarevspheremachinetemplate\": 38816,\n\t\"./rke-machine.cattle.io.vmwarevspheremachinetemplate.js\": 38816,\n\t\"./rke.cattle.io.etcdsnapshot\": 7100,\n\t\"./rke.cattle.io.etcdsnapshot.js\": 7100,\n\t\"./schema\": 2334,\n\t\"./schema.js\": 2334,\n\t\"./secret\": 1133,\n\t\"./secret.js\": 1133,\n\t\"./service\": 96258,\n\t\"./service.js\": 96258,\n\t\"./steve-schema\": 45858,\n\t\"./steve-schema.ts\": 45858,\n\t\"./storage.k8s.io.storageclass\": 63809,\n\t\"./storage.k8s.io.storageclass.js\": 63809,\n\t\"./templates.gatekeeper.sh.constrainttemplate\": 66491,\n\t\"./templates.gatekeeper.sh.constrainttemplate.js\": 66491,\n\t\"./token\": 24364,\n\t\"./token.js\": 24364,\n\t\"./ui.cattle.io.navlink\": 51225,\n\t\"./ui.cattle.io.navlink.js\": 51225,\n\t\"./workload\": 70775,\n\t\"./workload.js\": 70775,\n\t\"./workload.service\": 2505,\n\t\"./workload.service.js\": 2505\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 93197;","var map = {\n\t\"./management.cattle.io.globalrole\": 88897,\n\t\"./management.cattle.io.globalrole.vue\": 88897,\n\t\"./management.cattle.io.project\": 90523,\n\t\"./management.cattle.io.project.vue\": 90523,\n\t\"./management.cattle.io.roletemplate\": 47627,\n\t\"./management.cattle.io.roletemplate.vue\": 47627,\n\t\"./mixin/roleDeletionCheck\": 55105,\n\t\"./mixin/roleDeletionCheck.js\": 55105,\n\t\"./pod\": 72164,\n\t\"./pod.vue\": 72164\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 39989;","module.exports = __WEBPACK_EXTERNAL_MODULE__20246__;","module.exports = __WEBPACK_EXTERNAL_MODULE__47008__;","module.exports = __WEBPACK_EXTERNAL_MODULE__9274__;","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType<typeof availableTypedArrays>} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope || (node.sublanguage && node.language);\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let className = \"\";\n if (node.sublanguage) {\n className = `language-${node.language}`;\n } else {\n className = scopeToCSSClass(node.scope, { prefix: this.classPrefix });\n }\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, scope)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(scope)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n addKeyword(text, scope) {\n if (text === \"\") { return; }\n\n this.openNode(scope);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.sublanguage = true;\n node.language = name;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record<number,boolean> */\n const emit = {};\n /** @type Record<number,string> */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.6.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6.exports(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","/*\nLanguage: Awk\nAuthor: Matthew Daly <matthewbdaly@gmail.com>\nWebsite: https://www.gnu.org/software/gawk/manual/gawk.html\nDescription: language definition for Awk scripts\n*/\n\n/** @type LanguageFn */\nfunction awk(hljs) {\n const VARIABLE = {\n className: 'variable',\n variants: [\n { begin: /\\$[\\w\\d#@][\\w\\d_]*/ },\n { begin: /\\$\\{(.*?)\\}/ }\n ]\n };\n const KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /(u|b)?r?'''/,\n end: /'''/,\n relevance: 10\n },\n {\n begin: /(u|b)?r?\"\"\"/,\n end: /\"\"\"/,\n relevance: 10\n },\n {\n begin: /(u|r|ur)'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /(u|r|ur)\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /(b|br)'/,\n end: /'/\n },\n {\n begin: /(b|br)\"/,\n end: /\"/\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n return {\n name: 'Awk',\n keywords: { keyword: KEYWORDS },\n contains: [\n VARIABLE,\n STRING,\n hljs.REGEXP_MODE,\n hljs.HASH_COMMENT_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = awk;\n","/*\nLanguage: Bash\nAuthor: vah <vahtenberg@gmail.com>\nContributrors: Benjamin Pannell <contact@sierrasoftworks.com>\nWebsite: https://www.gnu.org/software/bash/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n const regex = hljs.regex;\n const VAR = {};\n const BRACED_VAR = {\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [\n \"self\",\n {\n begin: /:-/,\n contains: [ VAR ]\n } // default values\n ]\n };\n Object.assign(VAR, {\n className: 'variable',\n variants: [\n { begin: regex.concat(/\\$[\\w\\d#@][\\w\\d_]*/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![\\\\w\\\\d])(?![$])`) },\n BRACED_VAR\n ]\n });\n\n const SUBST = {\n className: 'subst',\n begin: /\\$\\(/,\n end: /\\)/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n const HERE_DOC = {\n begin: /<<-?\\s*(?=\\w+)/,\n starts: { contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n className: 'string'\n })\n ] }\n };\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR,\n SUBST\n ]\n };\n SUBST.contains.push(QUOTE_STRING);\n const ESCAPED_QUOTE = {\n className: '',\n begin: /\\\\\"/\n\n };\n const APOS_STRING = {\n className: 'string',\n begin: /'/,\n end: /'/\n };\n const ARITHMETIC = {\n begin: /\\$\\(\\(/,\n end: /\\)\\)/,\n contains: [\n {\n begin: /\\d+#[0-9a-f]+/,\n className: \"number\"\n },\n hljs.NUMBER_MODE,\n VAR\n ]\n };\n const SH_LIKE_SHELLS = [\n \"fish\",\n \"bash\",\n \"zsh\",\n \"sh\",\n \"csh\",\n \"ksh\",\n \"tcsh\",\n \"dash\",\n \"scsh\",\n ];\n const KNOWN_SHEBANG = hljs.SHEBANG({\n binary: `(${SH_LIKE_SHELLS.join(\"|\")})`,\n relevance: 10\n });\n const FUNCTION = {\n className: 'function',\n begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n returnBegin: true,\n contains: [ hljs.inherit(hljs.TITLE_MODE, { begin: /\\w[\\w\\d_]*/ }) ],\n relevance: 0\n };\n\n const KEYWORDS = [\n \"if\",\n \"then\",\n \"else\",\n \"elif\",\n \"fi\",\n \"for\",\n \"while\",\n \"in\",\n \"do\",\n \"done\",\n \"case\",\n \"esac\",\n \"function\"\n ];\n\n const LITERALS = [\n \"true\",\n \"false\"\n ];\n\n // to consume paths to prevent keyword matches inside them\n const PATH_MODE = { match: /(\\/[a-z._-]+)+/ };\n\n // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n const SHELL_BUILT_INS = [\n \"break\",\n \"cd\",\n \"continue\",\n \"eval\",\n \"exec\",\n \"exit\",\n \"export\",\n \"getopts\",\n \"hash\",\n \"pwd\",\n \"readonly\",\n \"return\",\n \"shift\",\n \"test\",\n \"times\",\n \"trap\",\n \"umask\",\n \"unset\"\n ];\n\n const BASH_BUILT_INS = [\n \"alias\",\n \"bind\",\n \"builtin\",\n \"caller\",\n \"command\",\n \"declare\",\n \"echo\",\n \"enable\",\n \"help\",\n \"let\",\n \"local\",\n \"logout\",\n \"mapfile\",\n \"printf\",\n \"read\",\n \"readarray\",\n \"source\",\n \"type\",\n \"typeset\",\n \"ulimit\",\n \"unalias\"\n ];\n\n const ZSH_BUILT_INS = [\n \"autoload\",\n \"bg\",\n \"bindkey\",\n \"bye\",\n \"cap\",\n \"chdir\",\n \"clone\",\n \"comparguments\",\n \"compcall\",\n \"compctl\",\n \"compdescribe\",\n \"compfiles\",\n \"compgroups\",\n \"compquote\",\n \"comptags\",\n \"comptry\",\n \"compvalues\",\n \"dirs\",\n \"disable\",\n \"disown\",\n \"echotc\",\n \"echoti\",\n \"emulate\",\n \"fc\",\n \"fg\",\n \"float\",\n \"functions\",\n \"getcap\",\n \"getln\",\n \"history\",\n \"integer\",\n \"jobs\",\n \"kill\",\n \"limit\",\n \"log\",\n \"noglob\",\n \"popd\",\n \"print\",\n \"pushd\",\n \"pushln\",\n \"rehash\",\n \"sched\",\n \"setcap\",\n \"setopt\",\n \"stat\",\n \"suspend\",\n \"ttyctl\",\n \"unfunction\",\n \"unhash\",\n \"unlimit\",\n \"unsetopt\",\n \"vared\",\n \"wait\",\n \"whence\",\n \"where\",\n \"which\",\n \"zcompile\",\n \"zformat\",\n \"zftp\",\n \"zle\",\n \"zmodload\",\n \"zparseopts\",\n \"zprof\",\n \"zpty\",\n \"zregexparse\",\n \"zsocket\",\n \"zstyle\",\n \"ztcp\"\n ];\n\n const GNU_CORE_UTILS = [\n \"chcon\",\n \"chgrp\",\n \"chown\",\n \"chmod\",\n \"cp\",\n \"dd\",\n \"df\",\n \"dir\",\n \"dircolors\",\n \"ln\",\n \"ls\",\n \"mkdir\",\n \"mkfifo\",\n \"mknod\",\n \"mktemp\",\n \"mv\",\n \"realpath\",\n \"rm\",\n \"rmdir\",\n \"shred\",\n \"sync\",\n \"touch\",\n \"truncate\",\n \"vdir\",\n \"b2sum\",\n \"base32\",\n \"base64\",\n \"cat\",\n \"cksum\",\n \"comm\",\n \"csplit\",\n \"cut\",\n \"expand\",\n \"fmt\",\n \"fold\",\n \"head\",\n \"join\",\n \"md5sum\",\n \"nl\",\n \"numfmt\",\n \"od\",\n \"paste\",\n \"ptx\",\n \"pr\",\n \"sha1sum\",\n \"sha224sum\",\n \"sha256sum\",\n \"sha384sum\",\n \"sha512sum\",\n \"shuf\",\n \"sort\",\n \"split\",\n \"sum\",\n \"tac\",\n \"tail\",\n \"tr\",\n \"tsort\",\n \"unexpand\",\n \"uniq\",\n \"wc\",\n \"arch\",\n \"basename\",\n \"chroot\",\n \"date\",\n \"dirname\",\n \"du\",\n \"echo\",\n \"env\",\n \"expr\",\n \"factor\",\n // \"false\", // keyword literal already\n \"groups\",\n \"hostid\",\n \"id\",\n \"link\",\n \"logname\",\n \"nice\",\n \"nohup\",\n \"nproc\",\n \"pathchk\",\n \"pinky\",\n \"printenv\",\n \"printf\",\n \"pwd\",\n \"readlink\",\n \"runcon\",\n \"seq\",\n \"sleep\",\n \"stat\",\n \"stdbuf\",\n \"stty\",\n \"tee\",\n \"test\",\n \"timeout\",\n // \"true\", // keyword literal already\n \"tty\",\n \"uname\",\n \"unlink\",\n \"uptime\",\n \"users\",\n \"who\",\n \"whoami\",\n \"yes\"\n ];\n\n return {\n name: 'Bash',\n aliases: [ 'sh' ],\n keywords: {\n $pattern: /\\b[a-z][a-z0-9._-]+\\b/,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: [\n ...SHELL_BUILT_INS,\n ...BASH_BUILT_INS,\n // Shell modifiers\n \"set\",\n \"shopt\",\n ...ZSH_BUILT_INS,\n ...GNU_CORE_UTILS\n ]\n },\n contains: [\n KNOWN_SHEBANG, // to catch known shells and boost relevancy\n hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang\n FUNCTION,\n ARITHMETIC,\n hljs.HASH_COMMENT_MODE,\n HERE_DOC,\n PATH_MODE,\n QUOTE_STRING,\n ESCAPED_QUOTE,\n APOS_STRING,\n VAR\n ]\n };\n}\n\nmodule.exports = bash;\n","/*\nLanguage: C\nCategory: common, system\nWebsite: https://en.wikipedia.org/wiki/C_(programming_language)\n*/\n\n/** @type LanguageFn */\nfunction c(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n\n const TYPES = {\n className: 'type',\n variants: [\n { begin: '\\\\b[a-z\\\\d_]*_t\\\\b' },\n { match: /\\batomic_[a-z]{3,6}\\b/ }\n ]\n\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0b[01\\']+)' },\n { begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)' },\n { begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)' }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n const C_KEYWORDS = [\n \"asm\",\n \"auto\",\n \"break\",\n \"case\",\n \"continue\",\n \"default\",\n \"do\",\n \"else\",\n \"enum\",\n \"extern\",\n \"for\",\n \"fortran\",\n \"goto\",\n \"if\",\n \"inline\",\n \"register\",\n \"restrict\",\n \"return\",\n \"sizeof\",\n \"struct\",\n \"switch\",\n \"typedef\",\n \"union\",\n \"volatile\",\n \"while\",\n \"_Alignas\",\n \"_Alignof\",\n \"_Atomic\",\n \"_Generic\",\n \"_Noreturn\",\n \"_Static_assert\",\n \"_Thread_local\",\n // aliases\n \"alignas\",\n \"alignof\",\n \"noreturn\",\n \"static_assert\",\n \"thread_local\",\n // not a C keyword but is, for all intents and purposes, treated exactly like one.\n \"_Pragma\"\n ];\n\n const C_TYPES = [\n \"float\",\n \"double\",\n \"signed\",\n \"unsigned\",\n \"int\",\n \"short\",\n \"long\",\n \"char\",\n \"void\",\n \"_Bool\",\n \"_Complex\",\n \"_Imaginary\",\n \"_Decimal32\",\n \"_Decimal64\",\n \"_Decimal128\",\n // modifiers\n \"const\",\n \"static\",\n // aliases\n \"complex\",\n \"bool\",\n \"imaginary\"\n ];\n\n const KEYWORDS = {\n keyword: C_KEYWORDS,\n type: C_TYPES,\n literal: 'true false NULL',\n // TODO: apply hinting work similar to what was done in cpp.js\n built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream '\n + 'auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set '\n + 'unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos '\n + 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp '\n + 'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper '\n + 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow '\n + 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp '\n + 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan '\n + 'vfprintf vprintf vsprintf endl initializer_list unique_ptr',\n };\n\n const EXPRESSION_CONTAINS = [\n PREPROCESSOR,\n TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ hljs.inherit(TITLE_MODE, { className: \"title.function\" }) ],\n relevance: 0\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n TYPES\n ]\n }\n ]\n },\n TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: \"C\",\n aliases: [ 'h' ],\n keywords: KEYWORDS,\n // Until differentiations are added between `c` and `cpp`, `c` will\n // not be auto-detected to avoid auto-detect conflicts between C and C++\n disableAutodetect: true,\n illegal: '</',\n contains: [].concat(\n EXPRESSION_CONTEXT,\n FUNCTION_DECLARATION,\n EXPRESSION_CONTAINS,\n [\n PREPROCESSOR,\n {\n begin: hljs.IDENT_RE + '::',\n keywords: KEYWORDS\n },\n {\n className: 'class',\n beginKeywords: 'enum class struct union',\n end: /[{;:<>=]/,\n contains: [\n { beginKeywords: \"final class struct\" },\n hljs.TITLE_MODE\n ]\n }\n ]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: KEYWORDS\n }\n };\n}\n\nmodule.exports = c;\n","/*\nLanguage: Clojure\nDescription: Clojure syntax (based on lisp.js)\nAuthor: mfornos\nWebsite: https://clojure.org\nCategory: lisp\n*/\n\n/** @type LanguageFn */\nfunction clojure(hljs) {\n const SYMBOLSTART = 'a-zA-Z_\\\\-!.?+*=<>&\\'';\n const SYMBOL_RE = '[#]?[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:$#]*';\n const globals = 'def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord';\n const keywords = {\n $pattern: SYMBOL_RE,\n built_in:\n // Clojure keywords\n globals + ' '\n + 'cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem '\n + 'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? '\n + 'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? '\n + 'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? '\n + 'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . '\n + 'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last '\n + 'drop-while while intern condp case reduced cycle split-at split-with repeat replicate '\n + 'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext '\n + 'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends '\n + 'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler '\n + 'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter '\n + 'monitor-exit macroexpand macroexpand-1 for dosync and or '\n + 'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert '\n + 'peek pop doto proxy first rest cons cast coll last butlast '\n + 'sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import '\n + 'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! '\n + 'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger '\n + 'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline '\n + 'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking '\n + 'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! '\n + 'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! '\n + 'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty '\n + 'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list '\n + 'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer '\n + 'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate '\n + 'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta '\n + 'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'\n };\n\n const SYMBOL = {\n begin: SYMBOL_RE,\n relevance: 0\n };\n const NUMBER = {\n scope: 'number',\n relevance: 0,\n variants: [\n { match: /[-+]?0[xX][0-9a-fA-F]+N?/ }, // hexadecimal // 0x2a\n { match: /[-+]?0[0-7]+N?/ }, // octal // 052\n { match: /[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/ }, // variable radix from 2 to 36 // 2r101010, 8r52, 36r16\n { match: /[-+]?[0-9]+\\/[0-9]+N?/ }, // ratio // 1/2\n { match: /[-+]?[0-9]+((\\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/ }, // float // 0.42 4.2E-1M 42E1 42M\n { match: /[-+]?([1-9][0-9]*|0)N?/ }, // int (don't match leading 0) // 42 42N\n ]\n };\n const CHARACTER = {\n scope: 'character',\n variants: [\n { match: /\\\\o[0-3]?[0-7]{1,2}/ }, // Unicode Octal 0 - 377\n { match: /\\\\u[0-9a-fA-F]{4}/ }, // Unicode Hex 0000 - FFFF\n { match: /\\\\(newline|space|tab|formfeed|backspace|return)/ }, // special characters\n {\n match: /\\\\\\S/,\n relevance: 0\n } // any non-whitespace char\n ]\n };\n const REGEX = {\n scope: 'regex',\n begin: /#\"/,\n end: /\"/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, { illegal: null });\n const COMMA = {\n scope: 'punctuation',\n match: /,/,\n relevance: 0\n };\n const COMMENT = hljs.COMMENT(\n ';',\n '$',\n { relevance: 0 }\n );\n const LITERAL = {\n className: 'literal',\n begin: /\\b(true|false|nil)\\b/\n };\n const COLLECTION = {\n begin: \"\\\\[|(#::?\" + SYMBOL_RE + \")?\\\\{\",\n end: '[\\\\]\\\\}]',\n relevance: 0\n };\n const KEY = {\n className: 'symbol',\n begin: '[:]{1,2}' + SYMBOL_RE\n };\n const LIST = {\n begin: '\\\\(',\n end: '\\\\)'\n };\n const BODY = {\n endsWithParent: true,\n relevance: 0\n };\n const NAME = {\n keywords: keywords,\n className: 'name',\n begin: SYMBOL_RE,\n relevance: 0,\n starts: BODY\n };\n const DEFAULT_CONTAINS = [\n COMMA,\n LIST,\n CHARACTER,\n REGEX,\n STRING,\n COMMENT,\n KEY,\n COLLECTION,\n NUMBER,\n LITERAL,\n SYMBOL\n ];\n\n const GLOBAL = {\n beginKeywords: globals,\n keywords: {\n $pattern: SYMBOL_RE,\n keyword: globals\n },\n end: '(\\\\[|#|\\\\d|\"|:|\\\\{|\\\\)|\\\\(|$)',\n contains: [\n {\n className: 'title',\n begin: SYMBOL_RE,\n relevance: 0,\n excludeEnd: true,\n // we can only have a single title\n endsParent: true\n }\n ].concat(DEFAULT_CONTAINS)\n };\n\n LIST.contains = [\n GLOBAL,\n NAME,\n BODY\n ];\n BODY.contains = DEFAULT_CONTAINS;\n COLLECTION.contains = DEFAULT_CONTAINS;\n\n return {\n name: 'Clojure',\n aliases: [\n 'clj',\n 'edn'\n ],\n illegal: /\\S/,\n contains: [\n COMMA,\n LIST,\n CHARACTER,\n REGEX,\n STRING,\n COMMENT,\n KEY,\n COLLECTION,\n NUMBER,\n LITERAL\n ]\n };\n}\n\nmodule.exports = clojure;\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cpp(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0b[01\\']+)' },\n { begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)' },\n { begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)' }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [ '_Pragma' ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: '</',\n classNameAliases: { 'function.dispatch': 'built_in' },\n contains: [].concat(\n EXPRESSION_CONTEXT,\n FUNCTION_DECLARATION,\n FUNCTION_DISPATCH,\n EXPRESSION_CONTAINS,\n [\n PREPROCESSOR,\n { // containers: ie, `vector <int> rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\nmodule.exports = cpp;\n","/*\nLanguage: Crystal\nAuthor: TSUYUSATO Kitsune <make.just.on@gmail.com>\nWebsite: https://crystal-lang.org\n*/\n\n/** @type LanguageFn */\nfunction crystal(hljs) {\n const INT_SUFFIX = '(_?[ui](8|16|32|64|128))?';\n const FLOAT_SUFFIX = '(_?f(32|64))?';\n const CRYSTAL_IDENT_RE = '[a-zA-Z_]\\\\w*[!?=]?';\n const CRYSTAL_METHOD_RE = '[a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\\\*\\\\*|\\\\[\\\\][=?]?';\n const CRYSTAL_PATH_RE = '[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|!)?';\n const CRYSTAL_KEYWORDS = {\n $pattern: CRYSTAL_IDENT_RE,\n keyword:\n 'abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if '\n + 'include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? '\n + 'return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield '\n + '__DIR__ __END_LINE__ __FILE__ __LINE__',\n literal: 'false nil true'\n };\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: CRYSTAL_KEYWORDS\n };\n // borrowed from Ruby\n const VARIABLE = {\n // negative-look forward attemps to prevent false matches like:\n // @ident@ or $ident$ that might indicate this is not ruby at all\n className: \"variable\",\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + `(?![A-Za-z])(?![@$?'])`\n };\n const EXPANSION = {\n className: 'template-variable',\n variants: [\n {\n begin: '\\\\{\\\\{',\n end: '\\\\}\\\\}'\n },\n {\n begin: '\\\\{%',\n end: '%\\\\}'\n }\n ],\n keywords: CRYSTAL_KEYWORDS\n };\n\n function recursiveParen(begin, end) {\n const\n contains = [\n {\n begin: begin,\n end: end\n }\n ];\n contains[0].contains = contains;\n return contains;\n }\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /`/,\n end: /`/\n },\n {\n begin: '%[Qwi]?\\\\(',\n end: '\\\\)',\n contains: recursiveParen('\\\\(', '\\\\)')\n },\n {\n begin: '%[Qwi]?\\\\[',\n end: '\\\\]',\n contains: recursiveParen('\\\\[', '\\\\]')\n },\n {\n begin: '%[Qwi]?\\\\{',\n end: /\\}/,\n contains: recursiveParen(/\\{/, /\\}/)\n },\n {\n begin: '%[Qwi]?<',\n end: '>',\n contains: recursiveParen('<', '>')\n },\n {\n begin: '%[Qwi]?\\\\|',\n end: '\\\\|'\n },\n {\n begin: /<<-\\w+$/,\n end: /^\\s*\\w+$/\n }\n ],\n relevance: 0\n };\n const Q_STRING = {\n className: 'string',\n variants: [\n {\n begin: '%q\\\\(',\n end: '\\\\)',\n contains: recursiveParen('\\\\(', '\\\\)')\n },\n {\n begin: '%q\\\\[',\n end: '\\\\]',\n contains: recursiveParen('\\\\[', '\\\\]')\n },\n {\n begin: '%q\\\\{',\n end: /\\}/,\n contains: recursiveParen(/\\{/, /\\}/)\n },\n {\n begin: '%q<',\n end: '>',\n contains: recursiveParen('<', '>')\n },\n {\n begin: '%q\\\\|',\n end: '\\\\|'\n },\n {\n begin: /<<-'\\w+'$/,\n end: /^\\s*\\w+$/\n }\n ],\n relevance: 0\n };\n const REGEXP = {\n begin: '(?!%\\\\})(' + hljs.RE_STARTERS_RE + '|\\\\n|\\\\b(case|if|select|unless|until|when|while)\\\\b)\\\\s*',\n keywords: 'case if select unless until when while',\n contains: [\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: '//[a-z]*',\n relevance: 0\n },\n {\n begin: '/(?!\\\\/)',\n end: '/[a-z]*'\n }\n ]\n }\n ],\n relevance: 0\n };\n const REGEXP2 = {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: '%r\\\\(',\n end: '\\\\)',\n contains: recursiveParen('\\\\(', '\\\\)')\n },\n {\n begin: '%r\\\\[',\n end: '\\\\]',\n contains: recursiveParen('\\\\[', '\\\\]')\n },\n {\n begin: '%r\\\\{',\n end: /\\}/,\n contains: recursiveParen(/\\{/, /\\}/)\n },\n {\n begin: '%r<',\n end: '>',\n contains: recursiveParen('<', '>')\n },\n {\n begin: '%r\\\\|',\n end: '\\\\|'\n }\n ],\n relevance: 0\n };\n const ATTRIBUTE = {\n className: 'meta',\n begin: '@\\\\[',\n end: '\\\\]',\n contains: [ hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' }) ]\n };\n const CRYSTAL_DEFAULT_CONTAINS = [\n EXPANSION,\n STRING,\n Q_STRING,\n REGEXP2,\n REGEXP,\n ATTRIBUTE,\n VARIABLE,\n hljs.HASH_COMMENT_MODE,\n {\n className: 'class',\n beginKeywords: 'class module struct',\n end: '$|;',\n illegal: /=/,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.inherit(hljs.TITLE_MODE, { begin: CRYSTAL_PATH_RE }),\n { // relevance booster for inheritance\n begin: '<' }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'lib enum union',\n end: '$|;',\n illegal: /=/,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.inherit(hljs.TITLE_MODE, { begin: CRYSTAL_PATH_RE })\n ]\n },\n {\n beginKeywords: 'annotation',\n end: '$|;',\n illegal: /=/,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.inherit(hljs.TITLE_MODE, { begin: CRYSTAL_PATH_RE })\n ],\n relevance: 2\n },\n {\n className: 'function',\n beginKeywords: 'def',\n end: /\\B\\b/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: CRYSTAL_METHOD_RE,\n endsParent: true\n })\n ]\n },\n {\n className: 'function',\n beginKeywords: 'fun macro',\n end: /\\B\\b/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: CRYSTAL_METHOD_RE,\n endsParent: true\n })\n ],\n relevance: 2\n },\n {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ':',\n contains: [\n STRING,\n { begin: CRYSTAL_METHOD_RE }\n ],\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n { begin: '\\\\b0b([01_]+)' + INT_SUFFIX },\n { begin: '\\\\b0o([0-7_]+)' + INT_SUFFIX },\n { begin: '\\\\b0x([A-Fa-f0-9_]+)' + INT_SUFFIX },\n { begin: '\\\\b([1-9][0-9_]*[0-9]|[0-9])(\\\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?' + FLOAT_SUFFIX + '(?!_)' },\n { begin: '\\\\b([1-9][0-9_]*|0)' + INT_SUFFIX }\n ],\n relevance: 0\n }\n ];\n SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;\n EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION\n\n return {\n name: 'Crystal',\n aliases: [ 'cr' ],\n keywords: CRYSTAL_KEYWORDS,\n contains: CRYSTAL_DEFAULT_CONTAINS\n };\n}\n\nmodule.exports = crystal;\n","/*\nLanguage: C#\nAuthor: Jason Diamond <jason@diamond.name>\nContributor: Nicolas LLOBERA <nllobera@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>, David Pine <david.pine@microsoft.com>\nWebsite: https://docs.microsoft.com/dotnet/csharp/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction csharp(hljs) {\n const BUILT_IN_KEYWORDS = [\n 'bool',\n 'byte',\n 'char',\n 'decimal',\n 'delegate',\n 'double',\n 'dynamic',\n 'enum',\n 'float',\n 'int',\n 'long',\n 'nint',\n 'nuint',\n 'object',\n 'sbyte',\n 'short',\n 'string',\n 'ulong',\n 'uint',\n 'ushort'\n ];\n const FUNCTION_MODIFIERS = [\n 'public',\n 'private',\n 'protected',\n 'static',\n 'internal',\n 'protected',\n 'abstract',\n 'async',\n 'extern',\n 'override',\n 'unsafe',\n 'virtual',\n 'new',\n 'sealed',\n 'partial'\n ];\n const LITERAL_KEYWORDS = [\n 'default',\n 'false',\n 'null',\n 'true'\n ];\n const NORMAL_KEYWORDS = [\n 'abstract',\n 'as',\n 'base',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'const',\n 'continue',\n 'do',\n 'else',\n 'event',\n 'explicit',\n 'extern',\n 'finally',\n 'fixed',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'namespace',\n 'new',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'record',\n 'ref',\n 'return',\n 'scoped',\n 'sealed',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'typeof',\n 'unchecked',\n 'unsafe',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while'\n ];\n const CONTEXTUAL_KEYWORDS = [\n 'add',\n 'alias',\n 'and',\n 'ascending',\n 'async',\n 'await',\n 'by',\n 'descending',\n 'equals',\n 'from',\n 'get',\n 'global',\n 'group',\n 'init',\n 'into',\n 'join',\n 'let',\n 'nameof',\n 'not',\n 'notnull',\n 'on',\n 'or',\n 'orderby',\n 'partial',\n 'remove',\n 'select',\n 'set',\n 'unmanaged',\n 'value|0',\n 'var',\n 'when',\n 'where',\n 'with',\n 'yield'\n ];\n\n const KEYWORDS = {\n keyword: NORMAL_KEYWORDS.concat(CONTEXTUAL_KEYWORDS),\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n const TITLE_MODE = hljs.inherit(hljs.TITLE_MODE, { begin: '[a-zA-Z](\\\\.?\\\\w)*' });\n const NUMBERS = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0b[01\\']+)' },\n { begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)' },\n { begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)' }\n ],\n relevance: 0\n };\n const VERBATIM_STRING = {\n className: 'string',\n begin: '@\"',\n end: '\"',\n contains: [ { begin: '\"\"' } ]\n };\n const VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, { illegal: /\\n/ });\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS\n };\n const SUBST_NO_LF = hljs.inherit(SUBST, { illegal: /\\n/ });\n const INTERPOLATED_STRING = {\n className: 'string',\n begin: /\\$\"/,\n end: '\"',\n illegal: /\\n/,\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n hljs.BACKSLASH_ESCAPE,\n SUBST_NO_LF\n ]\n };\n const INTERPOLATED_VERBATIM_STRING = {\n className: 'string',\n begin: /\\$@\"/,\n end: '\"',\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n { begin: '\"\"' },\n SUBST\n ]\n };\n const INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {\n illegal: /\\n/,\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n { begin: '\"\"' },\n SUBST_NO_LF\n ]\n });\n SUBST.contains = [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ];\n SUBST_NO_LF.contains = [\n INTERPOLATED_VERBATIM_STRING_NO_LF,\n INTERPOLATED_STRING,\n VERBATIM_STRING_NO_LF,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, { illegal: /\\n/ })\n ];\n const STRING = { variants: [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ] };\n\n const GENERIC_MODIFIER = {\n begin: \"<\",\n end: \">\",\n contains: [\n { beginKeywords: \"in out\" },\n TITLE_MODE\n ]\n };\n const TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\\\s*,\\\\s*' + hljs.IDENT_RE + ')*>)?(\\\\[\\\\])?';\n const AT_IDENTIFIER = {\n // prevents expressions like `@class` from incorrect flagging\n // `class` as a keyword\n begin: \"@\" + hljs.IDENT_RE,\n relevance: 0\n };\n\n return {\n name: 'C#',\n aliases: [\n 'cs',\n 'c#'\n ],\n keywords: KEYWORDS,\n illegal: /::/,\n contains: [\n hljs.COMMENT(\n '///',\n '$',\n {\n returnBegin: true,\n contains: [\n {\n className: 'doctag',\n variants: [\n {\n begin: '///',\n relevance: 0\n },\n { begin: '<!--|-->' },\n {\n begin: '</?',\n end: '>'\n }\n ]\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: { keyword: 'if else elif endif define undef warning error line region endregion pragma checksum' }\n },\n STRING,\n NUMBERS,\n {\n beginKeywords: 'class interface',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:,]/,\n contains: [\n { beginKeywords: \"where class\" },\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'record',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // [Attributes(\"\")]\n className: 'meta',\n begin: '^\\\\s*\\\\[(?=[\\\\w])',\n excludeBegin: true,\n end: '\\\\]',\n excludeEnd: true,\n contains: [\n {\n className: 'string',\n begin: /\"/,\n end: /\"/\n }\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new return throw await else',\n relevance: 0\n },\n {\n className: 'function',\n begin: '(' + TYPE_IDENT_RE + '\\\\s+)+' + hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n end: /\\s*[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n // prevents these from being highlighted `title`\n {\n beginKeywords: FUNCTION_MODIFIERS.join(\" \"),\n relevance: 0\n },\n {\n begin: hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n contains: [\n hljs.TITLE_MODE,\n GENERIC_MODIFIER\n ],\n relevance: 0\n },\n { match: /\\(\\)/ },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n STRING,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n AT_IDENTIFIER\n ]\n };\n}\n\nmodule.exports = csharp;\n","/*\nLanguage: CSP\nDescription: Content Security Policy definition highlighting\nAuthor: Taras <oxdef@oxdef.info>\nWebsite: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP\n\nvim: ts=2 sw=2 st=2\n*/\n\n/** @type LanguageFn */\nfunction csp(hljs) {\n const KEYWORDS = [\n \"base-uri\",\n \"child-src\",\n \"connect-src\",\n \"default-src\",\n \"font-src\",\n \"form-action\",\n \"frame-ancestors\",\n \"frame-src\",\n \"img-src\",\n \"manifest-src\",\n \"media-src\",\n \"object-src\",\n \"plugin-types\",\n \"report-uri\",\n \"sandbox\",\n \"script-src\",\n \"style-src\",\n \"trusted-types\",\n \"unsafe-hashes\",\n \"worker-src\"\n ];\n return {\n name: 'CSP',\n case_insensitive: false,\n keywords: {\n $pattern: '[a-zA-Z][a-zA-Z0-9_-]*',\n keyword: KEYWORDS\n },\n contains: [\n {\n className: 'string',\n begin: \"'\",\n end: \"'\"\n },\n {\n className: 'attribute',\n begin: '^Content',\n end: ':',\n excludeEnd: true\n }\n ]\n };\n}\n\nmodule.exports = csp;\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'all',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-variant',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inline-size',\n 'isolation',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-break',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'row-gap',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: CSS\nCategory: common, css, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n/** @type LanguageFn */\nfunction css(hljs) {\n const regex = hljs.regex;\n const modes = MODES(hljs);\n const VENDOR_PREFIX = { begin: /-(webkit|moz|ms|o)-(?=[a-z])/ };\n const AT_MODIFIERS = \"and or not only\";\n const AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/; // @-webkit-keyframes\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const STRINGS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ];\n\n return {\n name: 'CSS',\n case_insensitive: true,\n illegal: /[=|'\\$]/,\n keywords: { keyframePosition: \"from to\" },\n classNameAliases: {\n // for visual continuity with `tag {}` and because we\n // don't have a great class for this?\n keyframePosition: \"selector-tag\" },\n contains: [\n modes.BLOCK_COMMENT,\n VENDOR_PREFIX,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: /#[A-Za-z0-9_-]+/,\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.' + IDENT_RE,\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n variants: [\n { begin: ':(' + PSEUDO_CLASSES.join('|') + ')' },\n { begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')' }\n ]\n },\n // we may actually need this (12/2020)\n // { // pseudo-selector params\n // begin: /\\(/,\n // end: /\\)/,\n // contains: [ hljs.CSS_NUMBER_MODE ]\n // },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n // attribute values\n {\n begin: /:/,\n end: /[;}{]/,\n contains: [\n modes.BLOCK_COMMENT,\n modes.HEXCOLOR,\n modes.IMPORTANT,\n modes.CSS_NUMBER_MODE,\n ...STRINGS,\n // needed to highlight these as strings and to avoid issues with\n // illegal characters that might be inside urls that would tigger the\n // languages illegal stack\n {\n begin: /(url|data-uri)\\(/,\n end: /\\)/,\n relevance: 0, // from keywords\n keywords: { built_in: \"url data-uri\" },\n contains: [\n ...STRINGS,\n {\n className: \"string\",\n // any character other than `)` as in `url()` will be the start\n // of a string, which ends with `)` (from the parent mode)\n begin: /[^)]/,\n endsWithParent: true,\n excludeEnd: true\n }\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n },\n {\n begin: regex.lookahead(/@/),\n end: '[{;]',\n relevance: 0,\n illegal: /:/, // break on Less variables @var: ...\n contains: [\n {\n className: 'keyword',\n begin: AT_PROPERTY_RE\n },\n {\n begin: /\\s/,\n endsWithParent: true,\n excludeEnd: true,\n relevance: 0,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n ...STRINGS,\n modes.CSS_NUMBER_MODE\n ]\n }\n ]\n },\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b'\n }\n ]\n };\n}\n\nmodule.exports = css;\n","/*\nLanguage: Dart\nRequires: markdown.js\nAuthor: Maxim Dikun <dikmax@gmail.com>\nDescription: Dart a modern, object-oriented language developed by Google. For more information see https://www.dartlang.org/\nWebsite: https://dart.dev\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction dart(hljs) {\n const SUBST = {\n className: 'subst',\n variants: [ { begin: '\\\\$[A-Za-z0-9_]+' } ]\n };\n\n const BRACED_SUBST = {\n className: 'subst',\n variants: [\n {\n begin: /\\$\\{/,\n end: /\\}/\n }\n ],\n keywords: 'true false null this is new super'\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: 'r\\'\\'\\'',\n end: '\\'\\'\\''\n },\n {\n begin: 'r\"\"\"',\n end: '\"\"\"'\n },\n {\n begin: 'r\\'',\n end: '\\'',\n illegal: '\\\\n'\n },\n {\n begin: 'r\"',\n end: '\"',\n illegal: '\\\\n'\n },\n {\n begin: '\\'\\'\\'',\n end: '\\'\\'\\'',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n BRACED_SUBST\n ]\n },\n {\n begin: '\"\"\"',\n end: '\"\"\"',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n BRACED_SUBST\n ]\n },\n {\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n BRACED_SUBST\n ]\n },\n {\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n BRACED_SUBST\n ]\n }\n ]\n };\n BRACED_SUBST.contains = [\n hljs.C_NUMBER_MODE,\n STRING\n ];\n\n const BUILT_IN_TYPES = [\n // dart:core\n 'Comparable',\n 'DateTime',\n 'Duration',\n 'Function',\n 'Iterable',\n 'Iterator',\n 'List',\n 'Map',\n 'Match',\n 'Object',\n 'Pattern',\n 'RegExp',\n 'Set',\n 'Stopwatch',\n 'String',\n 'StringBuffer',\n 'StringSink',\n 'Symbol',\n 'Type',\n 'Uri',\n 'bool',\n 'double',\n 'int',\n 'num',\n // dart:html\n 'Element',\n 'ElementList'\n ];\n const NULLABLE_BUILT_IN_TYPES = BUILT_IN_TYPES.map((e) => `${e}?`);\n\n const BASIC_KEYWORDS = [\n \"abstract\",\n \"as\",\n \"assert\",\n \"async\",\n \"await\",\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"covariant\",\n \"default\",\n \"deferred\",\n \"do\",\n \"dynamic\",\n \"else\",\n \"enum\",\n \"export\",\n \"extends\",\n \"extension\",\n \"external\",\n \"factory\",\n \"false\",\n \"final\",\n \"finally\",\n \"for\",\n \"Function\",\n \"get\",\n \"hide\",\n \"if\",\n \"implements\",\n \"import\",\n \"in\",\n \"inferface\",\n \"is\",\n \"late\",\n \"library\",\n \"mixin\",\n \"new\",\n \"null\",\n \"on\",\n \"operator\",\n \"part\",\n \"required\",\n \"rethrow\",\n \"return\",\n \"set\",\n \"show\",\n \"static\",\n \"super\",\n \"switch\",\n \"sync\",\n \"this\",\n \"throw\",\n \"true\",\n \"try\",\n \"typedef\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\"\n ];\n\n const KEYWORDS = {\n keyword: BASIC_KEYWORDS,\n built_in:\n BUILT_IN_TYPES\n .concat(NULLABLE_BUILT_IN_TYPES)\n .concat([\n // dart:core\n 'Never',\n 'Null',\n 'dynamic',\n 'print',\n // dart:html\n 'document',\n 'querySelector',\n 'querySelectorAll',\n 'window'\n ]),\n $pattern: /[A-Za-z][A-Za-z0-9_]*\\??/\n };\n\n return {\n name: 'Dart',\n keywords: KEYWORDS,\n contains: [\n STRING,\n hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n /\\*\\//,\n {\n subLanguage: 'markdown',\n relevance: 0\n }\n ),\n hljs.COMMENT(\n /\\/{3,} ?/,\n /$/, { contains: [\n {\n subLanguage: 'markdown',\n begin: '.',\n end: '$',\n relevance: 0\n }\n ] }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '@[A-Za-z]+'\n },\n { begin: '=>' // No markup, just a relevance booster\n }\n ]\n };\n}\n\nmodule.exports = dart;\n","/*\nLanguage: Diff\nDescription: Unified and context diff\nAuthor: Vasily Polovnyov <vast@whiteants.net>\nWebsite: https://www.gnu.org/software/diffutils/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction diff(hljs) {\n const regex = hljs.regex;\n return {\n name: 'Diff',\n aliases: [ 'patch' ],\n contains: [\n {\n className: 'meta',\n relevance: 10,\n match: regex.either(\n /^@@ +-\\d+,\\d+ +\\+\\d+,\\d+ +@@/,\n /^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/,\n /^--- +\\d+,\\d+ +----$/\n )\n },\n {\n className: 'comment',\n variants: [\n {\n begin: regex.either(\n /Index: /,\n /^index/,\n /={3,}/,\n /^-{3}/,\n /^\\*{3} /,\n /^\\+{3}/,\n /^diff --git/\n ),\n end: /$/\n },\n { match: /^\\*{15}$/ }\n ]\n },\n {\n className: 'addition',\n begin: /^\\+/,\n end: /$/\n },\n {\n className: 'deletion',\n begin: /^-/,\n end: /$/\n },\n {\n className: 'addition',\n begin: /^!/,\n end: /$/\n }\n ]\n };\n}\n\nmodule.exports = diff;\n","/*\nLanguage: Dockerfile\nRequires: bash.js\nAuthor: Alexis Hénaut <alexis@henaut.net>\nDescription: language definition for Dockerfile files\nWebsite: https://docs.docker.com/engine/reference/builder/\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction dockerfile(hljs) {\n const KEYWORDS = [\n \"from\",\n \"maintainer\",\n \"expose\",\n \"env\",\n \"arg\",\n \"user\",\n \"onbuild\",\n \"stopsignal\"\n ];\n return {\n name: 'Dockerfile',\n aliases: [ 'docker' ],\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n {\n beginKeywords: 'run cmd entrypoint volume add copy workdir label healthcheck shell',\n starts: {\n end: /[^\\\\]$/,\n subLanguage: 'bash'\n }\n }\n ],\n illegal: '</'\n };\n}\n\nmodule.exports = dockerfile;\n","/*\nLanguage: Elixir\nAuthor: Josh Adams <josh@isotope11.com>\nDescription: language definition for Elixir source code files (.ex and .exs). Based on ruby language support.\nCategory: functional\nWebsite: https://elixir-lang.org\n*/\n\n/** @type LanguageFn */\nfunction elixir(hljs) {\n const regex = hljs.regex;\n const ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*(!|\\\\?)?';\n const ELIXIR_METHOD_RE = '[a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?';\n const KEYWORDS = [\n \"after\",\n \"alias\",\n \"and\",\n \"case\",\n \"catch\",\n \"cond\",\n \"defstruct\",\n \"defguard\",\n \"do\",\n \"else\",\n \"end\",\n \"fn\",\n \"for\",\n \"if\",\n \"import\",\n \"in\",\n \"not\",\n \"or\",\n \"quote\",\n \"raise\",\n \"receive\",\n \"require\",\n \"reraise\",\n \"rescue\",\n \"try\",\n \"unless\",\n \"unquote\",\n \"unquote_splicing\",\n \"use\",\n \"when\",\n \"with|0\"\n ];\n const LITERALS = [\n \"false\",\n \"nil\",\n \"true\"\n ];\n const KWS = {\n $pattern: ELIXIR_IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS\n };\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: KWS\n };\n const NUMBER = {\n className: 'number',\n begin: '(\\\\b0o[0-7_]+)|(\\\\b0b[01_]+)|(\\\\b0x[0-9a-fA-F_]+)|(-?\\\\b[0-9][0-9_]*(\\\\.[0-9_]+([eE][-+]?[0-9]+)?)?)',\n relevance: 0\n };\n // TODO: could be tightened\n // https://elixir-lang.readthedocs.io/en/latest/intro/18.html\n // but you also need to include closing delemeters in the escape list per\n // individual sigil mode from what I can tell,\n // ie: \\} might or might not be an escape depending on the sigil used\n const ESCAPES_RE = /\\\\[\\s\\S]/;\n // const ESCAPES_RE = /\\\\[\"'\\\\abdefnrstv0]/;\n const BACKSLASH_ESCAPE = {\n match: ESCAPES_RE,\n scope: \"char.escape\",\n relevance: 0\n };\n const SIGIL_DELIMITERS = '[/|([{<\"\\']';\n const SIGIL_DELIMITER_MODES = [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\\//,\n end: /\\//\n },\n {\n begin: /\\|/,\n end: /\\|/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n begin: /\\[/,\n end: /\\]/\n },\n {\n begin: /\\{/,\n end: /\\}/\n },\n {\n begin: /</,\n end: />/\n }\n ];\n const escapeSigilEnd = (end) => {\n return {\n scope: \"char.escape\",\n begin: regex.concat(/\\\\/, end),\n relevance: 0\n };\n };\n const LOWERCASE_SIGIL = {\n className: 'string',\n begin: '~[a-z]' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: SIGIL_DELIMITER_MODES.map(x => hljs.inherit(x,\n { contains: [\n escapeSigilEnd(x.end),\n BACKSLASH_ESCAPE,\n SUBST\n ] }\n ))\n };\n\n const UPCASE_SIGIL = {\n className: 'string',\n begin: '~[A-Z]' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: SIGIL_DELIMITER_MODES.map(x => hljs.inherit(x,\n { contains: [ escapeSigilEnd(x.end) ] }\n ))\n };\n\n const REGEX_SIGIL = {\n className: 'regex',\n variants: [\n {\n begin: '~r' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: SIGIL_DELIMITER_MODES.map(x => hljs.inherit(x,\n {\n end: regex.concat(x.end, /[uismxfU]{0,7}/),\n contains: [\n escapeSigilEnd(x.end),\n BACKSLASH_ESCAPE,\n SUBST\n ]\n }\n ))\n },\n {\n begin: '~R' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: SIGIL_DELIMITER_MODES.map(x => hljs.inherit(x,\n {\n end: regex.concat(x.end, /[uismxfU]{0,7}/),\n contains: [ escapeSigilEnd(x.end) ]\n })\n )\n }\n ]\n };\n\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /\"\"\"/,\n end: /\"\"\"/\n },\n {\n begin: /'''/,\n end: /'''/\n },\n {\n begin: /~S\"\"\"/,\n end: /\"\"\"/,\n contains: [] // override default\n },\n {\n begin: /~S\"/,\n end: /\"/,\n contains: [] // override default\n },\n {\n begin: /~S'''/,\n end: /'''/,\n contains: [] // override default\n },\n {\n begin: /~S'/,\n end: /'/,\n contains: [] // override default\n },\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n }\n ]\n };\n const FUNCTION = {\n className: 'function',\n beginKeywords: 'def defp defmacro defmacrop',\n end: /\\B\\b/, // the mode is ended by the title\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: ELIXIR_IDENT_RE,\n endsParent: true\n })\n ]\n };\n const CLASS = hljs.inherit(FUNCTION, {\n className: 'class',\n beginKeywords: 'defimpl defmodule defprotocol defrecord',\n end: /\\bdo\\b|$|;/\n });\n const ELIXIR_DEFAULT_CONTAINS = [\n STRING,\n REGEX_SIGIL,\n UPCASE_SIGIL,\n LOWERCASE_SIGIL,\n hljs.HASH_COMMENT_MODE,\n CLASS,\n FUNCTION,\n { begin: '::' },\n {\n className: 'symbol',\n begin: ':(?![\\\\s:])',\n contains: [\n STRING,\n { begin: ELIXIR_METHOD_RE }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ELIXIR_IDENT_RE + ':(?!:)',\n relevance: 0\n },\n { // Usage of a module, struct, etc.\n className: 'title.class',\n begin: /(\\b[A-Z][a-zA-Z0-9_]+)/,\n relevance: 0\n },\n NUMBER,\n {\n className: 'variable',\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))'\n }\n // -> has been removed, capnproto always uses this grammar construct\n ];\n SUBST.contains = ELIXIR_DEFAULT_CONTAINS;\n\n return {\n name: 'Elixir',\n aliases: [\n 'ex',\n 'exs'\n ],\n keywords: KWS,\n contains: ELIXIR_DEFAULT_CONTAINS\n };\n}\n\nmodule.exports = elixir;\n","/*\nLanguage: Elm\nAuthor: Janis Voigtlaender <janis.voigtlaender@gmail.com>\nWebsite: https://elm-lang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction elm(hljs) {\n const COMMENT = { variants: [\n hljs.COMMENT('--', '$'),\n hljs.COMMENT(\n /\\{-/,\n /-\\}/,\n { contains: [ 'self' ] }\n )\n ] };\n\n const CONSTRUCTOR = {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (built-in, infix).\n relevance: 0\n };\n\n const LIST = {\n begin: '\\\\(',\n end: '\\\\)',\n illegal: '\"',\n contains: [\n {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n },\n COMMENT\n ]\n };\n\n const RECORD = {\n begin: /\\{/,\n end: /\\}/,\n contains: LIST.contains\n };\n\n const CHARACTER = {\n className: 'string',\n begin: '\\'\\\\\\\\?.',\n end: '\\'',\n illegal: '.'\n };\n\n const KEYWORDS = [\n \"let\",\n \"in\",\n \"if\",\n \"then\",\n \"else\",\n \"case\",\n \"of\",\n \"where\",\n \"module\",\n \"import\",\n \"exposing\",\n \"type\",\n \"alias\",\n \"as\",\n \"infix\",\n \"infixl\",\n \"infixr\",\n \"port\",\n \"effect\",\n \"command\",\n \"subscription\"\n ];\n\n return {\n name: 'Elm',\n keywords: KEYWORDS,\n contains: [\n\n // Top-level constructions.\n\n {\n beginKeywords: 'port effect module',\n end: 'exposing',\n keywords: 'port effect module where command subscription exposing',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: 'import',\n end: '$',\n keywords: 'import as exposing',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: 'type',\n end: '$',\n keywords: 'type alias',\n contains: [\n CONSTRUCTOR,\n LIST,\n RECORD,\n COMMENT\n ]\n },\n {\n beginKeywords: 'infix infixl infixr',\n end: '$',\n contains: [\n hljs.C_NUMBER_MODE,\n COMMENT\n ]\n },\n {\n begin: 'port',\n end: '$',\n keywords: 'port',\n contains: [ COMMENT ]\n },\n\n // Literals and names.\n CHARACTER,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n CONSTRUCTOR,\n hljs.inherit(hljs.TITLE_MODE, { begin: '^[_a-z][\\\\w\\']*' }),\n COMMENT,\n\n { // No markup, relevance booster\n begin: '->|<-' }\n ],\n illegal: /;/\n };\n}\n\nmodule.exports = elm;\n","/*\nLanguage: Erlang\nDescription: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.\nAuthor: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>\nWebsite: https://www.erlang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction erlang(hljs) {\n const BASIC_ATOM_RE = '[a-z\\'][a-zA-Z0-9_\\']*';\n const FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';\n const ERLANG_RESERVED = {\n keyword:\n 'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if '\n + 'let not of orelse|10 query receive rem try when xor',\n literal:\n 'false true'\n };\n\n const COMMENT = hljs.COMMENT('%', '$');\n const NUMBER = {\n className: 'number',\n begin: '\\\\b(\\\\d+(_\\\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\\\d+(_\\\\d+)*(\\\\.\\\\d+(_\\\\d+)*)?([eE][-+]?\\\\d+)?)',\n relevance: 0\n };\n const NAMED_FUN = { begin: 'fun\\\\s+' + BASIC_ATOM_RE + '/\\\\d+' };\n const FUNCTION_CALL = {\n begin: FUNCTION_NAME_RE + '\\\\(',\n end: '\\\\)',\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n begin: FUNCTION_NAME_RE,\n relevance: 0\n },\n {\n begin: '\\\\(',\n end: '\\\\)',\n endsWithParent: true,\n returnEnd: true,\n relevance: 0\n // \"contains\" defined later\n }\n ]\n };\n const TUPLE = {\n begin: /\\{/,\n end: /\\}/,\n relevance: 0\n // \"contains\" defined later\n };\n const VAR1 = {\n begin: '\\\\b_([A-Z][A-Za-z0-9_]*)?',\n relevance: 0\n };\n const VAR2 = {\n begin: '[A-Z][a-zA-Z0-9_]*',\n relevance: 0\n };\n const RECORD_ACCESS = {\n begin: '#' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0,\n returnBegin: true,\n contains: [\n {\n begin: '#' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n begin: /\\{/,\n end: /\\}/,\n relevance: 0\n // \"contains\" defined later\n }\n ]\n };\n\n const BLOCK_STATEMENTS = {\n beginKeywords: 'fun receive if try case',\n end: 'end',\n keywords: ERLANG_RESERVED\n };\n BLOCK_STATEMENTS.contains = [\n COMMENT,\n NAMED_FUN,\n hljs.inherit(hljs.APOS_STRING_MODE, { className: '' }),\n BLOCK_STATEMENTS,\n FUNCTION_CALL,\n hljs.QUOTE_STRING_MODE,\n NUMBER,\n TUPLE,\n VAR1,\n VAR2,\n RECORD_ACCESS\n ];\n\n const BASIC_MODES = [\n COMMENT,\n NAMED_FUN,\n BLOCK_STATEMENTS,\n FUNCTION_CALL,\n hljs.QUOTE_STRING_MODE,\n NUMBER,\n TUPLE,\n VAR1,\n VAR2,\n RECORD_ACCESS\n ];\n FUNCTION_CALL.contains[1].contains = BASIC_MODES;\n TUPLE.contains = BASIC_MODES;\n RECORD_ACCESS.contains[1].contains = BASIC_MODES;\n\n const DIRECTIVES = [\n \"-module\",\n \"-record\",\n \"-undef\",\n \"-export\",\n \"-ifdef\",\n \"-ifndef\",\n \"-author\",\n \"-copyright\",\n \"-doc\",\n \"-vsn\",\n \"-import\",\n \"-include\",\n \"-include_lib\",\n \"-compile\",\n \"-define\",\n \"-else\",\n \"-endif\",\n \"-file\",\n \"-behaviour\",\n \"-behavior\",\n \"-spec\"\n ];\n\n const PARAMS = {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n contains: BASIC_MODES\n };\n return {\n name: 'Erlang',\n aliases: [ 'erl' ],\n keywords: ERLANG_RESERVED,\n illegal: '(</|\\\\*=|\\\\+=|-=|/\\\\*|\\\\*/|\\\\(\\\\*|\\\\*\\\\))',\n contains: [\n {\n className: 'function',\n begin: '^' + BASIC_ATOM_RE + '\\\\s*\\\\(',\n end: '->',\n returnBegin: true,\n illegal: '\\\\(|#|//|/\\\\*|\\\\\\\\|:|;',\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: BASIC_ATOM_RE })\n ],\n starts: {\n end: ';|\\\\.',\n keywords: ERLANG_RESERVED,\n contains: BASIC_MODES\n }\n },\n COMMENT,\n {\n begin: '^-',\n end: '\\\\.',\n relevance: 0,\n excludeEnd: true,\n returnBegin: true,\n keywords: {\n $pattern: '-' + hljs.IDENT_RE,\n keyword: DIRECTIVES.map(x => `${x}|1.5`).join(\" \")\n },\n contains: [ PARAMS ]\n },\n NUMBER,\n hljs.QUOTE_STRING_MODE,\n RECORD_ACCESS,\n VAR1,\n VAR2,\n TUPLE,\n { begin: /\\.$/ } // relevance booster\n ]\n };\n}\n\nmodule.exports = erlang;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\nfunction escape(value) {\n return new RegExp(value.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'm');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: F#\nAuthor: Jonas Follesø <jonas@follesoe.no>\nContributors: Troy Kershaw <hello@troykershaw.com>, Henrik Feldt <henrik@haf.se>, Melvyn Laïly <melvyn.laily@gmail.com>\nWebsite: https://docs.microsoft.com/en-us/dotnet/fsharp/\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction fsharp(hljs) {\n const KEYWORDS = [\n \"abstract\",\n \"and\",\n \"as\",\n \"assert\",\n \"base\",\n \"begin\",\n \"class\",\n \"default\",\n \"delegate\",\n \"do\",\n \"done\",\n \"downcast\",\n \"downto\",\n \"elif\",\n \"else\",\n \"end\",\n \"exception\",\n \"extern\",\n // \"false\", // literal\n \"finally\",\n \"fixed\",\n \"for\",\n \"fun\",\n \"function\",\n \"global\",\n \"if\",\n \"in\",\n \"inherit\",\n \"inline\",\n \"interface\",\n \"internal\",\n \"lazy\",\n \"let\",\n \"match\",\n \"member\",\n \"module\",\n \"mutable\",\n \"namespace\",\n \"new\",\n // \"not\", // built_in\n // \"null\", // literal\n \"of\",\n \"open\",\n \"or\",\n \"override\",\n \"private\",\n \"public\",\n \"rec\",\n \"return\",\n \"static\",\n \"struct\",\n \"then\",\n \"to\",\n // \"true\", // literal\n \"try\",\n \"type\",\n \"upcast\",\n \"use\",\n \"val\",\n \"void\",\n \"when\",\n \"while\",\n \"with\",\n \"yield\"\n ];\n\n const BANG_KEYWORD_MODE = {\n // monad builder keywords (matches before non-bang keywords)\n scope: 'keyword',\n match: /\\b(yield|return|let|do|match|use)!/\n };\n\n const PREPROCESSOR_KEYWORDS = [\n \"if\",\n \"else\",\n \"endif\",\n \"line\",\n \"nowarn\",\n \"light\",\n \"r\",\n \"i\",\n \"I\",\n \"load\",\n \"time\",\n \"help\",\n \"quit\"\n ];\n\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"Some\",\n \"None\",\n \"Ok\",\n \"Error\",\n \"infinity\",\n \"infinityf\",\n \"nan\",\n \"nanf\"\n ];\n\n const SPECIAL_IDENTIFIERS = [\n \"__LINE__\",\n \"__SOURCE_DIRECTORY__\",\n \"__SOURCE_FILE__\"\n ];\n\n // Since it's possible to re-bind/shadow names (e.g. let char = 'c'),\n // these builtin types should only be matched when a type name is expected.\n const KNOWN_TYPES = [\n // basic types\n \"bool\",\n \"byte\",\n \"sbyte\",\n \"int8\",\n \"int16\",\n \"int32\",\n \"uint8\",\n \"uint16\",\n \"uint32\",\n \"int\",\n \"uint\",\n \"int64\",\n \"uint64\",\n \"nativeint\",\n \"unativeint\",\n \"decimal\",\n \"float\",\n \"double\",\n \"float32\",\n \"single\",\n \"char\",\n \"string\",\n \"unit\",\n \"bigint\",\n // other native types or lowercase aliases\n \"option\",\n \"voption\",\n \"list\",\n \"array\",\n \"seq\",\n \"byref\",\n \"exn\",\n \"inref\",\n \"nativeptr\",\n \"obj\",\n \"outref\",\n \"voidptr\",\n // other important FSharp types\n \"Result\"\n ];\n\n const BUILTINS = [\n // Somewhat arbitrary list of builtin functions and values.\n // Most of them are declared in Microsoft.FSharp.Core\n // I tried to stay relevant by adding only the most idiomatic\n // and most used symbols that are not already declared as types.\n \"not\",\n \"ref\",\n \"raise\",\n \"reraise\",\n \"dict\",\n \"readOnlyDict\",\n \"set\",\n \"get\",\n \"enum\",\n \"sizeof\",\n \"typeof\",\n \"typedefof\",\n \"nameof\",\n \"nullArg\",\n \"invalidArg\",\n \"invalidOp\",\n \"id\",\n \"fst\",\n \"snd\",\n \"ignore\",\n \"lock\",\n \"using\",\n \"box\",\n \"unbox\",\n \"tryUnbox\",\n \"printf\",\n \"printfn\",\n \"sprintf\",\n \"eprintf\",\n \"eprintfn\",\n \"fprintf\",\n \"fprintfn\",\n \"failwith\",\n \"failwithf\"\n ];\n\n const ALL_KEYWORDS = {\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILTINS,\n 'variable.constant': SPECIAL_IDENTIFIERS\n };\n\n // (* potentially multi-line Meta Language style comment *)\n const ML_COMMENT =\n hljs.COMMENT(/\\(\\*(?!\\))/, /\\*\\)/, {\n contains: [\"self\"]\n });\n // Either a multi-line (* Meta Language style comment *) or a single line // C style comment.\n const COMMENT = {\n variants: [\n ML_COMMENT,\n hljs.C_LINE_COMMENT_MODE,\n ]\n };\n\n // Most identifiers can contain apostrophes\n const IDENTIFIER_RE = /[a-zA-Z_](\\w|')*/;\n\n const QUOTED_IDENTIFIER = {\n scope: 'variable',\n begin: /``/,\n end: /``/\n };\n\n // 'a or ^a where a can be a ``quoted identifier``\n const BEGIN_GENERIC_TYPE_SYMBOL_RE = /\\B('|\\^)/;\n const GENERIC_TYPE_SYMBOL = {\n scope: 'symbol',\n variants: [\n // the type name is a quoted identifier:\n { match: concat(BEGIN_GENERIC_TYPE_SYMBOL_RE, /``.*?``/) },\n // the type name is a normal identifier (we don't use IDENTIFIER_RE because there cannot be another apostrophe here):\n { match: concat(BEGIN_GENERIC_TYPE_SYMBOL_RE, hljs.UNDERSCORE_IDENT_RE) }\n ],\n relevance: 0\n };\n\n const makeOperatorMode = function({ includeEqual }) {\n // List or symbolic operator characters from the FSharp Spec 4.1, minus the dot, and with `?` added, used for nullable operators.\n let allOperatorChars;\n if (includeEqual)\n allOperatorChars = \"!%&*+-/<=>@^|~?\";\n else\n allOperatorChars = \"!%&*+-/<>@^|~?\";\n const OPERATOR_CHARS = Array.from(allOperatorChars);\n const OPERATOR_CHAR_RE = concat('[', ...OPERATOR_CHARS.map(escape), ']');\n // The lone dot operator is special. It cannot be redefined, and we don't want to highlight it. It can be used as part of a multi-chars operator though.\n const OPERATOR_CHAR_OR_DOT_RE = either(OPERATOR_CHAR_RE, /\\./);\n // When a dot is present, it must be followed by another operator char:\n const OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE = concat(OPERATOR_CHAR_OR_DOT_RE, lookahead(OPERATOR_CHAR_OR_DOT_RE));\n const SYMBOLIC_OPERATOR_RE = either(\n concat(OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE, OPERATOR_CHAR_OR_DOT_RE, '*'), // Matches at least 2 chars operators\n concat(OPERATOR_CHAR_RE, '+'), // Matches at least one char operators\n );\n return {\n scope: 'operator',\n match: either(\n // symbolic operators:\n SYMBOLIC_OPERATOR_RE,\n // other symbolic keywords:\n // Type casting and conversion operators:\n /:\\?>/,\n /:\\?/,\n /:>/,\n /:=/, // Reference cell assignment\n /::?/, // : or ::\n /\\$/), // A single $ can be used as an operator\n relevance: 0\n };\n };\n\n const OPERATOR = makeOperatorMode({ includeEqual: true });\n // This variant is used when matching '=' should end a parent mode:\n const OPERATOR_WITHOUT_EQUAL = makeOperatorMode({ includeEqual: false });\n\n const makeTypeAnnotationMode = function(prefix, prefixScope) {\n return {\n begin: concat( // a type annotation is a\n prefix, // should be a colon or the 'of' keyword\n lookahead( // that has to be followed by\n concat(\n /\\s*/, // optional space\n either( // then either of:\n /\\w/, // word\n /'/, // generic type name\n /\\^/, // generic type name\n /#/, // flexible type name\n /``/, // quoted type name\n /\\(/, // parens type expression\n /{\\|/, // anonymous type annotation\n )))),\n beginScope: prefixScope,\n // BUG: because ending with \\n is necessary for some cases, multi-line type annotations are not properly supported.\n // Examples where \\n is required at the end:\n // - abstract member definitions in classes: abstract Property : int * string\n // - return type annotations: let f f' = f' () : returnTypeAnnotation\n // - record fields definitions: { A : int \\n B : string }\n end: lookahead(\n either(\n /\\n/,\n /=/)),\n relevance: 0,\n // we need the known types, and we need the type constraint keywords and literals. e.g.: when 'a : null\n keywords: hljs.inherit(ALL_KEYWORDS, { type: KNOWN_TYPES }),\n contains: [\n COMMENT,\n GENERIC_TYPE_SYMBOL,\n hljs.inherit(QUOTED_IDENTIFIER, { scope: null }), // match to avoid strange patterns inside that may break the parsing\n OPERATOR_WITHOUT_EQUAL\n ]\n };\n };\n\n const TYPE_ANNOTATION = makeTypeAnnotationMode(/:/, 'operator');\n const DISCRIMINATED_UNION_TYPE_ANNOTATION = makeTypeAnnotationMode(/\\bof\\b/, 'keyword');\n\n // type MyType<'a> = ...\n const TYPE_DECLARATION = {\n begin: [\n /(^|\\s+)/, // prevents matching the following: `match s.stype with`\n /type/,\n /\\s+/,\n IDENTIFIER_RE\n ],\n beginScope: {\n 2: 'keyword',\n 4: 'title.class'\n },\n end: lookahead(/\\(|=|$/),\n keywords: ALL_KEYWORDS, // match keywords in type constraints. e.g.: when 'a : null\n contains: [\n COMMENT,\n hljs.inherit(QUOTED_IDENTIFIER, { scope: null }), // match to avoid strange patterns inside that may break the parsing\n GENERIC_TYPE_SYMBOL,\n {\n // For visual consistency, highlight type brackets as operators.\n scope: 'operator',\n match: /<|>/\n },\n TYPE_ANNOTATION // generic types can have constraints, which are type annotations. e.g. type MyType<'T when 'T : delegate<obj * string>> =\n ]\n };\n\n const COMPUTATION_EXPRESSION = {\n // computation expressions:\n scope: 'computation-expression',\n // BUG: might conflict with record deconstruction. e.g. let f { Name = name } = name // will highlight f\n match: /\\b[_a-z]\\w*(?=\\s*\\{)/\n };\n\n const PREPROCESSOR = {\n // preprocessor directives and fsi commands:\n begin: [\n /^\\s*/,\n concat(/#/, either(...PREPROCESSOR_KEYWORDS)),\n /\\b/\n ],\n beginScope: { 2: 'meta' },\n end: lookahead(/\\s|$/)\n };\n\n // TODO: this definition is missing support for type suffixes and octal notation.\n // BUG: range operator without any space is wrongly interpreted as a single number (e.g. 1..10 )\n const NUMBER = {\n variants: [\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n\n // All the following string definitions are potentially multi-line.\n // BUG: these definitions are missing support for byte strings (suffixed with B)\n\n // \"...\"\n const QUOTED_STRING = {\n scope: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE\n ]\n };\n // @\"...\"\n const VERBATIM_STRING = {\n scope: 'string',\n begin: /@\"/,\n end: /\"/,\n contains: [\n {\n match: /\"\"/ // escaped \"\n },\n hljs.BACKSLASH_ESCAPE\n ]\n };\n // \"\"\"...\"\"\"\n const TRIPLE_QUOTED_STRING = {\n scope: 'string',\n begin: /\"\"\"/,\n end: /\"\"\"/,\n relevance: 2\n };\n const SUBST = {\n scope: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: ALL_KEYWORDS\n };\n // $\"...{1+1}...\"\n const INTERPOLATED_STRING = {\n scope: 'string',\n begin: /\\$\"/,\n end: /\"/,\n contains: [\n {\n match: /\\{\\{/ // escaped {\n },\n {\n match: /\\}\\}/ // escaped }\n },\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n // $@\"...{1+1}...\"\n const INTERPOLATED_VERBATIM_STRING = {\n scope: 'string',\n begin: /(\\$@|@\\$)\"/,\n end: /\"/,\n contains: [\n {\n match: /\\{\\{/ // escaped {\n },\n {\n match: /\\}\\}/ // escaped }\n },\n {\n match: /\"\"/\n },\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n // $\"\"\"...{1+1}...\"\"\"\n const INTERPOLATED_TRIPLE_QUOTED_STRING = {\n scope: 'string',\n begin: /\\$\"\"\"/,\n end: /\"\"\"/,\n contains: [\n {\n match: /\\{\\{/ // escaped {\n },\n {\n match: /\\}\\}/ // escaped }\n },\n SUBST\n ],\n relevance: 2\n };\n // '.'\n const CHAR_LITERAL = {\n scope: 'string',\n match: concat(\n /'/,\n either(\n /[^\\\\']/, // either a single non escaped char...\n /\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8})/ // ...or an escape sequence\n ),\n /'/\n )\n };\n // F# allows a lot of things inside string placeholders.\n // Things that don't currently seem allowed by the compiler: types definition, attributes usage.\n // (Strictly speaking, some of the followings are only allowed inside triple quoted interpolated strings...)\n SUBST.contains = [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n QUOTED_STRING,\n CHAR_LITERAL,\n BANG_KEYWORD_MODE,\n COMMENT,\n QUOTED_IDENTIFIER,\n TYPE_ANNOTATION,\n COMPUTATION_EXPRESSION,\n PREPROCESSOR,\n NUMBER,\n GENERIC_TYPE_SYMBOL,\n OPERATOR\n ];\n const STRING = {\n variants: [\n INTERPOLATED_TRIPLE_QUOTED_STRING,\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n TRIPLE_QUOTED_STRING,\n VERBATIM_STRING,\n QUOTED_STRING,\n CHAR_LITERAL\n ]\n };\n\n return {\n name: 'F#',\n aliases: [\n 'fs',\n 'f#'\n ],\n keywords: ALL_KEYWORDS,\n illegal: /\\/\\*/,\n classNameAliases: {\n 'computation-expression': 'keyword'\n },\n contains: [\n BANG_KEYWORD_MODE,\n STRING,\n COMMENT,\n QUOTED_IDENTIFIER,\n TYPE_DECLARATION,\n {\n // e.g. [<Attributes(\"\")>] or [<``module``: MyCustomAttributeThatWorksOnModules>]\n // or [<Sealed; NoEquality; NoComparison; CompiledName(\"FSharpAsync`1\")>]\n scope: 'meta',\n begin: /\\[</,\n end: />\\]/,\n relevance: 2,\n contains: [\n QUOTED_IDENTIFIER,\n // can contain any constant value\n TRIPLE_QUOTED_STRING,\n VERBATIM_STRING,\n QUOTED_STRING,\n CHAR_LITERAL,\n NUMBER\n ]\n },\n DISCRIMINATED_UNION_TYPE_ANNOTATION,\n TYPE_ANNOTATION,\n COMPUTATION_EXPRESSION,\n PREPROCESSOR,\n NUMBER,\n GENERIC_TYPE_SYMBOL,\n OPERATOR\n ]\n };\n}\n\nmodule.exports = fsharp;\n","/*\nLanguage: Go\nAuthor: Stephan Kountso aka StepLg <steplg@gmail.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>\nDescription: Google go language (golang). For info about language\nWebsite: http://golang.org/\nCategory: common, system\n*/\n\nfunction go(hljs) {\n const LITERALS = [\n \"true\",\n \"false\",\n \"iota\",\n \"nil\"\n ];\n const BUILT_INS = [\n \"append\",\n \"cap\",\n \"close\",\n \"complex\",\n \"copy\",\n \"imag\",\n \"len\",\n \"make\",\n \"new\",\n \"panic\",\n \"print\",\n \"println\",\n \"real\",\n \"recover\",\n \"delete\"\n ];\n const TYPES = [\n \"bool\",\n \"byte\",\n \"complex64\",\n \"complex128\",\n \"error\",\n \"float32\",\n \"float64\",\n \"int8\",\n \"int16\",\n \"int32\",\n \"int64\",\n \"string\",\n \"uint8\",\n \"uint16\",\n \"uint32\",\n \"uint64\",\n \"int\",\n \"uint\",\n \"uintptr\",\n \"rune\"\n ];\n const KWS = [\n \"break\",\n \"case\",\n \"chan\",\n \"const\",\n \"continue\",\n \"default\",\n \"defer\",\n \"else\",\n \"fallthrough\",\n \"for\",\n \"func\",\n \"go\",\n \"goto\",\n \"if\",\n \"import\",\n \"interface\",\n \"map\",\n \"package\",\n \"range\",\n \"return\",\n \"select\",\n \"struct\",\n \"switch\",\n \"type\",\n \"var\",\n ];\n const KEYWORDS = {\n keyword: KWS,\n type: TYPES,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n return {\n name: 'Go',\n aliases: [ 'golang' ],\n keywords: KEYWORDS,\n illegal: '</',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'string',\n variants: [\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n {\n begin: '`',\n end: '`'\n }\n ]\n },\n {\n className: 'number',\n variants: [\n {\n begin: hljs.C_NUMBER_RE + '[i]',\n relevance: 1\n },\n hljs.C_NUMBER_MODE\n ]\n },\n { begin: /:=/ // relevance booster\n },\n {\n className: 'function',\n beginKeywords: 'func',\n end: '\\\\s*(\\\\{|$)',\n excludeEnd: true,\n contains: [\n hljs.TITLE_MODE,\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n endsParent: true,\n keywords: KEYWORDS,\n illegal: /[\"']/\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = go;\n","/*\nLanguage: Gradle\nDescription: Gradle is an open-source build automation tool focused on flexibility and performance.\nWebsite: https://gradle.org\nAuthor: Damian Mee <mee.damian@gmail.com>\n*/\n\nfunction gradle(hljs) {\n const KEYWORDS = [\n \"task\",\n \"project\",\n \"allprojects\",\n \"subprojects\",\n \"artifacts\",\n \"buildscript\",\n \"configurations\",\n \"dependencies\",\n \"repositories\",\n \"sourceSets\",\n \"description\",\n \"delete\",\n \"from\",\n \"into\",\n \"include\",\n \"exclude\",\n \"source\",\n \"classpath\",\n \"destinationDir\",\n \"includes\",\n \"options\",\n \"sourceCompatibility\",\n \"targetCompatibility\",\n \"group\",\n \"flatDir\",\n \"doLast\",\n \"doFirst\",\n \"flatten\",\n \"todir\",\n \"fromdir\",\n \"ant\",\n \"def\",\n \"abstract\",\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"default\",\n \"do\",\n \"else\",\n \"extends\",\n \"final\",\n \"finally\",\n \"for\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"native\",\n \"new\",\n \"private\",\n \"protected\",\n \"public\",\n \"return\",\n \"static\",\n \"switch\",\n \"synchronized\",\n \"throw\",\n \"throws\",\n \"transient\",\n \"try\",\n \"volatile\",\n \"while\",\n \"strictfp\",\n \"package\",\n \"import\",\n \"false\",\n \"null\",\n \"super\",\n \"this\",\n \"true\",\n \"antlrtask\",\n \"checkstyle\",\n \"codenarc\",\n \"copy\",\n \"boolean\",\n \"byte\",\n \"char\",\n \"class\",\n \"double\",\n \"float\",\n \"int\",\n \"interface\",\n \"long\",\n \"short\",\n \"void\",\n \"compile\",\n \"runTime\",\n \"file\",\n \"fileTree\",\n \"abs\",\n \"any\",\n \"append\",\n \"asList\",\n \"asWritable\",\n \"call\",\n \"collect\",\n \"compareTo\",\n \"count\",\n \"div\",\n \"dump\",\n \"each\",\n \"eachByte\",\n \"eachFile\",\n \"eachLine\",\n \"every\",\n \"find\",\n \"findAll\",\n \"flatten\",\n \"getAt\",\n \"getErr\",\n \"getIn\",\n \"getOut\",\n \"getText\",\n \"grep\",\n \"immutable\",\n \"inject\",\n \"inspect\",\n \"intersect\",\n \"invokeMethods\",\n \"isCase\",\n \"join\",\n \"leftShift\",\n \"minus\",\n \"multiply\",\n \"newInputStream\",\n \"newOutputStream\",\n \"newPrintWriter\",\n \"newReader\",\n \"newWriter\",\n \"next\",\n \"plus\",\n \"pop\",\n \"power\",\n \"previous\",\n \"print\",\n \"println\",\n \"push\",\n \"putAt\",\n \"read\",\n \"readBytes\",\n \"readLines\",\n \"reverse\",\n \"reverseEach\",\n \"round\",\n \"size\",\n \"sort\",\n \"splitEachLine\",\n \"step\",\n \"subMap\",\n \"times\",\n \"toInteger\",\n \"toList\",\n \"tokenize\",\n \"upto\",\n \"waitForOrKill\",\n \"withPrintWriter\",\n \"withReader\",\n \"withStream\",\n \"withWriter\",\n \"withWriterAppend\",\n \"write\",\n \"writeLine\"\n ];\n return {\n name: 'Gradle',\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n hljs.REGEXP_MODE\n\n ]\n };\n}\n\nmodule.exports = gradle;\n","/*\n Language: Groovy\n Author: Guillaume Laforge <glaforge@gmail.com>\n Description: Groovy programming language implementation inspired from Vsevolod's Java mode\n Website: https://groovy-lang.org\n */\n\nfunction variants(variants, obj = {}) {\n obj.variants = variants;\n return obj;\n}\n\nfunction groovy(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = '[A-Za-z0-9_$]+';\n const COMMENT = variants([\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n )\n ]);\n const REGEXP = {\n className: 'regexp',\n begin: /~?\\/[^\\/\\n]+\\//,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n const NUMBER = variants([\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]);\n const STRING = variants([\n {\n begin: /\"\"\"/,\n end: /\"\"\"/\n },\n {\n begin: /'''/,\n end: /'''/\n },\n {\n begin: \"\\\\$/\",\n end: \"/\\\\$\",\n relevance: 10\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ],\n { className: \"string\" }\n );\n\n const CLASS_DEFINITION = {\n match: [\n /(class|interface|trait|enum|extends|implements)/,\n /\\s+/,\n hljs.UNDERSCORE_IDENT_RE\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n }\n };\n const TYPES = [\n \"byte\",\n \"short\",\n \"char\",\n \"int\",\n \"long\",\n \"boolean\",\n \"float\",\n \"double\",\n \"void\"\n ];\n const KEYWORDS = [\n // groovy specific keywords\n \"def\",\n \"as\",\n \"in\",\n \"assert\",\n \"trait\",\n // common keywords with Java\n \"abstract\",\n \"static\",\n \"volatile\",\n \"transient\",\n \"public\",\n \"private\",\n \"protected\",\n \"synchronized\",\n \"final\",\n \"class\",\n \"interface\",\n \"enum\",\n \"if\",\n \"else\",\n \"for\",\n \"while\",\n \"switch\",\n \"case\",\n \"break\",\n \"default\",\n \"continue\",\n \"throw\",\n \"throws\",\n \"try\",\n \"catch\",\n \"finally\",\n \"implements\",\n \"extends\",\n \"new\",\n \"import\",\n \"package\",\n \"return\",\n \"instanceof\"\n ];\n\n return {\n name: 'Groovy',\n keywords: {\n \"variable.language\": 'this super',\n literal: 'true false null',\n type: TYPES,\n keyword: KEYWORDS\n },\n contains: [\n hljs.SHEBANG({\n binary: \"groovy\",\n relevance: 10\n }),\n COMMENT,\n STRING,\n REGEXP,\n NUMBER,\n CLASS_DEFINITION,\n {\n className: 'meta',\n begin: '@[A-Za-z]+',\n relevance: 0\n },\n {\n // highlight map keys and named parameters as attrs\n className: 'attr',\n begin: IDENT_RE + '[ \\t]*:',\n relevance: 0\n },\n {\n // catch middle element of the ternary operator\n // to avoid highlight it as a label, named parameter, or map key\n begin: /\\?/,\n end: /:/,\n relevance: 0,\n contains: [\n COMMENT,\n STRING,\n REGEXP,\n NUMBER,\n 'self'\n ]\n },\n {\n // highlight labeled statements\n className: 'symbol',\n begin: '^[ \\t]*' + regex.lookahead(IDENT_RE + ':'),\n excludeBegin: true,\n end: IDENT_RE + ':',\n relevance: 0\n }\n ],\n illegal: /#|<\\//\n };\n}\n\nmodule.exports = groovy;\n","/*\nLanguage: Handlebars\nRequires: xml.js\nAuthor: Robin Ward <robin.ward@gmail.com>\nDescription: Matcher for Handlebars as well as EmberJS additions.\nWebsite: https://handlebarsjs.com\nCategory: template\n*/\n\nfunction handlebars(hljs) {\n const regex = hljs.regex;\n const BUILT_INS = {\n $pattern: /[\\w.\\/]+/,\n built_in: [\n 'action',\n 'bindattr',\n 'collection',\n 'component',\n 'concat',\n 'debugger',\n 'each',\n 'each-in',\n 'get',\n 'hash',\n 'if',\n 'in',\n 'input',\n 'link-to',\n 'loc',\n 'log',\n 'lookup',\n 'mut',\n 'outlet',\n 'partial',\n 'query-params',\n 'render',\n 'template',\n 'textarea',\n 'unbound',\n 'unless',\n 'view',\n 'with',\n 'yield'\n ]\n };\n\n const LITERALS = {\n $pattern: /[\\w.\\/]+/,\n literal: [\n 'true',\n 'false',\n 'undefined',\n 'null'\n ]\n };\n\n // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments\n // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths\n // like a/b, ./abc/cde, and abc.bcd\n\n const DOUBLE_QUOTED_ID_REGEX = /\"\"|\"[^\"]+\"/;\n const SINGLE_QUOTED_ID_REGEX = /''|'[^']+'/;\n const BRACKET_QUOTED_ID_REGEX = /\\[\\]|\\[[^\\]]+\\]/;\n const PLAIN_ID_REGEX = /[^\\s!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]+/;\n const PATH_DELIMITER_REGEX = /(\\.|\\/)/;\n const ANY_ID = regex.either(\n DOUBLE_QUOTED_ID_REGEX,\n SINGLE_QUOTED_ID_REGEX,\n BRACKET_QUOTED_ID_REGEX,\n PLAIN_ID_REGEX\n );\n\n const IDENTIFIER_REGEX = regex.concat(\n regex.optional(/\\.|\\.\\/|\\//), // relative or absolute path\n ANY_ID,\n regex.anyNumberOfTimes(regex.concat(\n PATH_DELIMITER_REGEX,\n ANY_ID\n ))\n );\n\n // identifier followed by a equal-sign (without the equal sign)\n const HASH_PARAM_REGEX = regex.concat(\n '(',\n BRACKET_QUOTED_ID_REGEX, '|',\n PLAIN_ID_REGEX,\n ')(?==)'\n );\n\n const HELPER_NAME_OR_PATH_EXPRESSION = { begin: IDENTIFIER_REGEX };\n\n const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, { keywords: LITERALS });\n\n const SUB_EXPRESSION = {\n begin: /\\(/,\n end: /\\)/\n // the \"contains\" is added below when all necessary sub-modes are defined\n };\n\n const HASH = {\n // fka \"attribute-assignment\", parameters of the form 'key=value'\n className: 'attr',\n begin: HASH_PARAM_REGEX,\n relevance: 0,\n starts: {\n begin: /=/,\n end: /=/,\n starts: { contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ] }\n }\n };\n\n const BLOCK_PARAMS = {\n // parameters of the form '{{#with x as | y |}}...{{/with}}'\n begin: /as\\s+\\|/,\n keywords: { keyword: 'as' },\n end: /\\|/,\n contains: [\n {\n // define sub-mode in order to prevent highlighting of block-parameter named \"as\"\n begin: /\\w+/ }\n ]\n };\n\n const HELPER_PARAMETERS = {\n contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n BLOCK_PARAMS,\n HASH,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ],\n returnEnd: true\n // the property \"end\" is defined through inheritance when the mode is used. If depends\n // on the surrounding mode, but \"endsWithParent\" does not work here (i.e. it includes the\n // end-token of the surrounding mode)\n };\n\n const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, { end: /\\)/ })\n });\n\n SUB_EXPRESSION.contains = [ SUB_EXPRESSION_CONTENTS ];\n\n const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name',\n starts: hljs.inherit(HELPER_PARAMETERS, { end: /\\}\\}/ })\n });\n\n const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name'\n });\n\n const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, { end: /\\}\\}/ })\n });\n\n const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {\n begin: /\\\\\\{\\{/,\n skip: true\n };\n const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {\n begin: /\\\\\\\\(?=\\{\\{)/,\n skip: true\n };\n\n return {\n name: 'Handlebars',\n aliases: [\n 'hbs',\n 'html.hbs',\n 'html.handlebars',\n 'htmlbars'\n ],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,\n PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,\n hljs.COMMENT(/\\{\\{!--/, /--\\}\\}/),\n hljs.COMMENT(/\\{\\{!/, /\\}\\}/),\n {\n // open raw block \"{{{{raw}}}} content not evaluated {{{{/raw}}}}\"\n className: 'template-tag',\n begin: /\\{\\{\\{\\{(?!\\/)/,\n end: /\\}\\}\\}\\}/,\n contains: [ OPENING_BLOCK_MUSTACHE_CONTENTS ],\n starts: {\n end: /\\{\\{\\{\\{\\//,\n returnEnd: true,\n subLanguage: 'xml'\n }\n },\n {\n // close raw block\n className: 'template-tag',\n begin: /\\{\\{\\{\\{\\//,\n end: /\\}\\}\\}\\}/,\n contains: [ CLOSING_BLOCK_MUSTACHE_CONTENTS ]\n },\n {\n // open block statement\n className: 'template-tag',\n begin: /\\{\\{#/,\n end: /\\}\\}/,\n contains: [ OPENING_BLOCK_MUSTACHE_CONTENTS ]\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else\\}\\})/,\n end: /\\}\\}/,\n keywords: 'else'\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else if)/,\n end: /\\}\\}/,\n keywords: 'else if'\n },\n {\n // closing block statement\n className: 'template-tag',\n begin: /\\{\\{\\//,\n end: /\\}\\}/,\n contains: [ CLOSING_BLOCK_MUSTACHE_CONTENTS ]\n },\n {\n // template variable or helper-call that is NOT html-escaped\n className: 'template-variable',\n begin: /\\{\\{\\{/,\n end: /\\}\\}\\}/,\n contains: [ BASIC_MUSTACHE_CONTENTS ]\n },\n {\n // template variable or helper-call that is html-escaped\n className: 'template-variable',\n begin: /\\{\\{/,\n end: /\\}\\}/,\n contains: [ BASIC_MUSTACHE_CONTENTS ]\n }\n ]\n };\n}\n\nmodule.exports = handlebars;\n","/*\nLanguage: Haskell\nAuthor: Jeremy Hull <sourdrums@gmail.com>\nContributors: Zena Treep <zena.treep@gmail.com>\nWebsite: https://www.haskell.org\nCategory: functional\n*/\n\nfunction haskell(hljs) {\n const COMMENT = { variants: [\n hljs.COMMENT('--', '$'),\n hljs.COMMENT(\n /\\{-/,\n /-\\}/,\n { contains: [ 'self' ] }\n )\n ] };\n\n const PRAGMA = {\n className: 'meta',\n begin: /\\{-#/,\n end: /#-\\}/\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: '^#',\n end: '$'\n };\n\n const CONSTRUCTOR = {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (build-in, infix).\n relevance: 0\n };\n\n const LIST = {\n begin: '\\\\(',\n end: '\\\\)',\n illegal: '\"',\n contains: [\n PRAGMA,\n PREPROCESSOR,\n {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n },\n hljs.inherit(hljs.TITLE_MODE, { begin: '[_a-z][\\\\w\\']*' }),\n COMMENT\n ]\n };\n\n const RECORD = {\n begin: /\\{/,\n end: /\\}/,\n contains: LIST.contains\n };\n\n /* See:\n\n - https://www.haskell.org/onlinereport/lexemes.html\n - https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/exts/binary_literals.html\n - https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/exts/numeric_underscores.html\n - https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/exts/hex_float_literals.html\n\n */\n const decimalDigits = '([0-9]_*)+';\n const hexDigits = '([0-9a-fA-F]_*)+';\n const binaryDigits = '([01]_*)+';\n const octalDigits = '([0-7]_*)+';\n\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal floating-point-literal (subsumes decimal-literal)\n { match: `\\\\b(${decimalDigits})(\\\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\\\b` },\n // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n { match: `\\\\b0[xX]_*(${hexDigits})(\\\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\\\b` },\n // octal-literal\n { match: `\\\\b0[oO](${octalDigits})\\\\b` },\n // binary-literal\n { match: `\\\\b0[bB](${binaryDigits})\\\\b` }\n ]\n };\n\n return {\n name: 'Haskell',\n aliases: [ 'hs' ],\n keywords:\n 'let in if then else case of where do module import hiding '\n + 'qualified type data newtype deriving class instance as default '\n + 'infix infixl infixr foreign export ccall stdcall cplusplus '\n + 'jvm dotnet safe unsafe family forall mdo proc rec',\n contains: [\n // Top-level constructions.\n {\n beginKeywords: 'module',\n end: 'where',\n keywords: 'module where',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: '\\\\bimport\\\\b',\n end: '$',\n keywords: 'import qualified as hiding',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n className: 'class',\n begin: '^(\\\\s*)?(class|instance)\\\\b',\n end: 'where',\n keywords: 'class family instance where',\n contains: [\n CONSTRUCTOR,\n LIST,\n COMMENT\n ]\n },\n {\n className: 'class',\n begin: '\\\\b(data|(new)?type)\\\\b',\n end: '$',\n keywords: 'data family type newtype deriving',\n contains: [\n PRAGMA,\n CONSTRUCTOR,\n LIST,\n RECORD,\n COMMENT\n ]\n },\n {\n beginKeywords: 'default',\n end: '$',\n contains: [\n CONSTRUCTOR,\n LIST,\n COMMENT\n ]\n },\n {\n beginKeywords: 'infix infixl infixr',\n end: '$',\n contains: [\n hljs.C_NUMBER_MODE,\n COMMENT\n ]\n },\n {\n begin: '\\\\bforeign\\\\b',\n end: '$',\n keywords: 'foreign import export ccall stdcall cplusplus jvm '\n + 'dotnet safe unsafe',\n contains: [\n CONSTRUCTOR,\n hljs.QUOTE_STRING_MODE,\n COMMENT\n ]\n },\n {\n className: 'meta',\n begin: '#!\\\\/usr\\\\/bin\\\\/env\\ runhaskell',\n end: '$'\n },\n // \"Whitespaces\".\n PRAGMA,\n PREPROCESSOR,\n\n // Literals and names.\n\n // TODO: characters.\n hljs.QUOTE_STRING_MODE,\n NUMBER,\n CONSTRUCTOR,\n hljs.inherit(hljs.TITLE_MODE, { begin: '^[_a-z][\\\\w\\']*' }),\n COMMENT,\n { // No markup, relevance booster\n begin: '->|<-' }\n ]\n };\n}\n\nmodule.exports = haskell;\n","/*\nLanguage: TOML, also INI\nDescription: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.\nContributors: Guillaume Gomez <guillaume1.gomez@gmail.com>\nCategory: common, config\nWebsite: https://github.com/toml-lang/toml\n*/\n\nfunction ini(hljs) {\n const regex = hljs.regex;\n const NUMBERS = {\n className: 'number',\n relevance: 0,\n variants: [\n { begin: /([+-]+)?[\\d]+_[\\d_]+/ },\n { begin: hljs.NUMBER_RE }\n ]\n };\n const COMMENTS = hljs.COMMENT();\n COMMENTS.variants = [\n {\n begin: /;/,\n end: /$/\n },\n {\n begin: /#/,\n end: /$/\n }\n ];\n const VARIABLES = {\n className: 'variable',\n variants: [\n { begin: /\\$[\\w\\d\"][\\w\\d_]*/ },\n { begin: /\\$\\{(.*?)\\}/ }\n ]\n };\n const LITERALS = {\n className: 'literal',\n begin: /\\bon|off|true|false|yes|no\\b/\n };\n const STRINGS = {\n className: \"string\",\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: \"'''\",\n end: \"'''\",\n relevance: 10\n },\n {\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 10\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: \"'\",\n end: \"'\"\n }\n ]\n };\n const ARRAY = {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n COMMENTS,\n LITERALS,\n VARIABLES,\n STRINGS,\n NUMBERS,\n 'self'\n ],\n relevance: 0\n };\n\n const BARE_KEY = /[A-Za-z0-9_-]+/;\n const QUOTED_KEY_DOUBLE_QUOTE = /\"(\\\\\"|[^\"])*\"/;\n const QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/;\n const ANY_KEY = regex.either(\n BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE\n );\n const DOTTED_KEY = regex.concat(\n ANY_KEY, '(\\\\s*\\\\.\\\\s*', ANY_KEY, ')*',\n regex.lookahead(/\\s*=\\s*[^#\\s]/)\n );\n\n return {\n name: 'TOML, also INI',\n aliases: [ 'toml' ],\n case_insensitive: true,\n illegal: /\\S/,\n contains: [\n COMMENTS,\n {\n className: 'section',\n begin: /\\[+/,\n end: /\\]+/\n },\n {\n begin: DOTTED_KEY,\n className: 'attr',\n starts: {\n end: /$/,\n contains: [\n COMMENTS,\n ARRAY,\n LITERALS,\n VARIABLES,\n STRINGS,\n NUMBERS\n ]\n }\n }\n ]\n };\n}\n\nmodule.exports = ini;\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\nLanguage: Java\nAuthor: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>\nCategory: common, enterprise\nWebsite: https://www.java.com/\n*/\n\n/**\n * Allows recursive regex expressions to a given depth\n *\n * ie: recurRegex(\"(abc~~~)\", /~~~/g, 2) becomes:\n * (abc(abc(abc)))\n *\n * @param {string} re\n * @param {RegExp} substitution (should be a g mode regex)\n * @param {number} depth\n * @returns {string}``\n */\nfunction recurRegex(re, substitution, depth) {\n if (depth === -1) return \"\";\n\n return re.replace(substitution, _ => {\n return recurRegex(re, substitution, depth - 1);\n });\n}\n\n/** @type LanguageFn */\nfunction java(hljs) {\n const regex = hljs.regex;\n const JAVA_IDENT_RE = '[\\u00C0-\\u02B8a-zA-Z_$][\\u00C0-\\u02B8a-zA-Z_$0-9]*';\n const GENERIC_IDENT_RE = JAVA_IDENT_RE\n + recurRegex('(?:<' + JAVA_IDENT_RE + '~~~(?:\\\\s*,\\\\s*' + JAVA_IDENT_RE + '~~~)*>)?', /~~~/g, 2);\n const MAIN_KEYWORDS = [\n 'synchronized',\n 'abstract',\n 'private',\n 'var',\n 'static',\n 'if',\n 'const ',\n 'for',\n 'while',\n 'strictfp',\n 'finally',\n 'protected',\n 'import',\n 'native',\n 'final',\n 'void',\n 'enum',\n 'else',\n 'break',\n 'transient',\n 'catch',\n 'instanceof',\n 'volatile',\n 'case',\n 'assert',\n 'package',\n 'default',\n 'public',\n 'try',\n 'switch',\n 'continue',\n 'throws',\n 'protected',\n 'public',\n 'private',\n 'module',\n 'requires',\n 'exports',\n 'do',\n 'sealed'\n ];\n\n const BUILT_INS = [\n 'super',\n 'this'\n ];\n\n const LITERALS = [\n 'false',\n 'true',\n 'null'\n ];\n\n const TYPES = [\n 'char',\n 'boolean',\n 'long',\n 'float',\n 'int',\n 'byte',\n 'short',\n 'double'\n ];\n\n const KEYWORDS = {\n keyword: MAIN_KEYWORDS,\n literal: LITERALS,\n type: TYPES,\n built_in: BUILT_INS\n };\n\n const ANNOTATION = {\n className: 'meta',\n begin: '@' + JAVA_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [ \"self\" ] // allow nested () inside our annotation\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [ hljs.C_BLOCK_COMMENT_MODE ],\n endsParent: true\n };\n\n return {\n name: 'Java',\n aliases: [ 'jsp' ],\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n // relevance boost\n {\n begin: /import java\\.[a-z]+\\./,\n keywords: \"import\",\n relevance: 2\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n begin: /\"\"\"/,\n end: /\"\"\"/,\n className: \"string\",\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n match: [\n /\\b(?:class|interface|enum|extends|implements|new)/,\n /\\s+/,\n JAVA_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n // Exceptions for hyphenated keywords\n match: /non-sealed/,\n scope: \"keyword\"\n },\n {\n begin: [\n regex.concat(/(?!else)/, JAVA_IDENT_RE),\n /\\s+/,\n JAVA_IDENT_RE,\n /\\s+/,\n /=(?!=)/\n ],\n className: {\n 1: \"type\",\n 3: \"variable\",\n 5: \"operator\"\n }\n },\n {\n begin: [\n /record/,\n /\\s+/,\n JAVA_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n },\n contains: [\n PARAMS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new throw return else',\n relevance: 0\n },\n {\n begin: [\n '(?:' + GENERIC_IDENT_RE + '\\\\s+)',\n hljs.UNDERSCORE_IDENT_RE,\n /\\s*(?=\\()/\n ],\n className: { 2: \"title.function\" },\n keywords: KEYWORDS,\n contains: [\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n ANNOTATION,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMERIC,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n NUMERIC,\n ANNOTATION\n ]\n };\n}\n\nmodule.exports = java;\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \"<Booger\" and checks to see\n * if we can find a matching \"</Booger\" later in the\n * content.\n * @param {RegExpMatchArray} match\n * @param {{after:number}} param1\n */\n const hasClosingTag = (match, { after }) => {\n const tag = \"</\" + match[0].slice(1);\n const pos = match.input.indexOf(tag, after);\n return pos !== -1;\n };\n\n const IDENT_RE$1 = IDENT_RE;\n const FRAGMENT = {\n begin: '<>',\n end: '</>'\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `<Array<Array<number>>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // `<T, A extends keyof T, V>`\n nextChar === \",\") {\n response.ignoreMatch();\n return;\n }\n\n // `<something>`\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `<blah />` (self-closing)\n // handled by simpleSelfClosing rule\n\n // `<From extends string>`\n // technically this could be HTML, but it smells like a type\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nmodule.exports = javascript;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\"\n ];\n // NOTE: normally we would rely on `keywords` for this but using a mode here allows us\n // - to use the very tight `illegal: \\S` rule later to flag any other character\n // - as illegal indicating that despite looking like JSON we do not truly have\n // - JSON and thus improve false-positively greatly since JSON will try and claim\n // - all sorts of JSON looking stuff\n const LITERALS_MODE = {\n scope: \"literal\",\n beginKeywords: LITERALS.join(\" \"),\n };\n\n return {\n name: 'JSON',\n keywords:{\n literal: LITERALS,\n },\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS_MODE,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nmodule.exports = json;\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\n Language: Kotlin\n Description: Kotlin is an OSS statically typed programming language that targets the JVM, Android, JavaScript and Native.\n Author: Sergey Mashkov <cy6erGn0m@gmail.com>\n Website: https://kotlinlang.org\n Category: common\n */\n\nfunction kotlin(hljs) {\n const KEYWORDS = {\n keyword:\n 'abstract as val var vararg get set class object open private protected public noinline '\n + 'crossinline dynamic final enum if else do while for when throw try catch finally '\n + 'import package is in fun override companion reified inline lateinit init '\n + 'interface annotation data sealed internal infix operator out by constructor super '\n + 'tailrec where const inner suspend typealias external expect actual',\n built_in:\n 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing',\n literal:\n 'true false null'\n };\n const KEYWORDS_WITH_LABEL = {\n className: 'keyword',\n begin: /\\b(break|continue|return|this)\\b/,\n starts: { contains: [\n {\n className: 'symbol',\n begin: /@\\w+/\n }\n ] }\n };\n const LABEL = {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '@'\n };\n\n // for string templates\n const SUBST = {\n className: 'subst',\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [ hljs.C_NUMBER_MODE ]\n };\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + hljs.UNDERSCORE_IDENT_RE\n };\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: '\"\"\"',\n end: '\"\"\"(?=[^\"])',\n contains: [\n VARIABLE,\n SUBST\n ]\n },\n // Can't use built-in modes easily, as we want to use STRING in the meta\n // context as 'meta-string' and there's no syntax to remove explicitly set\n // classNames in built-in modes.\n {\n begin: '\\'',\n end: '\\'',\n illegal: /\\n/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"',\n illegal: /\\n/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VARIABLE,\n SUBST\n ]\n }\n ]\n };\n SUBST.contains.push(STRING);\n\n const ANNOTATION_USE_SITE = {\n className: 'meta',\n begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?'\n };\n const ANNOTATION = {\n className: 'meta',\n begin: '@' + hljs.UNDERSCORE_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.inherit(STRING, { className: 'string' }),\n \"self\"\n ]\n }\n ]\n };\n\n // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals\n // According to the doc above, the number mode of kotlin is the same as java 8,\n // so the code below is copied from java.js\n const KOTLIN_NUMBER_MODE = NUMERIC;\n const KOTLIN_NESTED_COMMENT = hljs.COMMENT(\n '/\\\\*', '\\\\*/',\n { contains: [ hljs.C_BLOCK_COMMENT_MODE ] }\n );\n const KOTLIN_PAREN_TYPE = { variants: [\n {\n className: 'type',\n begin: hljs.UNDERSCORE_IDENT_RE\n },\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [] // defined later\n }\n ] };\n const KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;\n KOTLIN_PAREN_TYPE2.variants[1].contains = [ KOTLIN_PAREN_TYPE ];\n KOTLIN_PAREN_TYPE.variants[1].contains = [ KOTLIN_PAREN_TYPE2 ];\n\n return {\n name: 'Kotlin',\n aliases: [\n 'kt',\n 'kts'\n ],\n keywords: KEYWORDS,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT,\n KEYWORDS_WITH_LABEL,\n LABEL,\n ANNOTATION_USE_SITE,\n ANNOTATION,\n {\n className: 'function',\n beginKeywords: 'fun',\n end: '[(]|$',\n returnBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 5,\n contains: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n returnBegin: true,\n relevance: 0,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'type',\n begin: /</,\n end: />/,\n keywords: 'reified',\n relevance: 0\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n endsParent: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n {\n begin: /:/,\n end: /[=,\\/]/,\n endsWithParent: true,\n contains: [\n KOTLIN_PAREN_TYPE,\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT\n ],\n relevance: 0\n },\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT,\n ANNOTATION_USE_SITE,\n ANNOTATION,\n STRING,\n hljs.C_NUMBER_MODE\n ]\n },\n KOTLIN_NESTED_COMMENT\n ]\n },\n {\n begin: [\n /class|interface|trait/,\n /\\s+/,\n hljs.UNDERSCORE_IDENT_RE\n ],\n beginScope: {\n 3: \"title.class\"\n },\n keywords: 'class interface trait',\n end: /[:\\{(]|$/,\n excludeEnd: true,\n illegal: 'extends implements',\n contains: [\n { beginKeywords: 'public protected internal private constructor' },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n className: 'type',\n begin: /</,\n end: />/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n },\n {\n className: 'type',\n begin: /[,:]\\s*/,\n end: /[<\\(,){\\s]|$/,\n excludeBegin: true,\n returnEnd: true\n },\n ANNOTATION_USE_SITE,\n ANNOTATION\n ]\n },\n STRING,\n {\n className: 'meta',\n begin: \"^#!/usr/bin/env\",\n end: '$',\n illegal: '\\n'\n },\n KOTLIN_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = kotlin;\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'all',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-variant',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inline-size',\n 'isolation',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-break',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'row-gap',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n// some grammars use them all as a single group\nconst PSEUDO_SELECTORS = PSEUDO_CLASSES.concat(PSEUDO_ELEMENTS);\n\n/*\nLanguage: Less\nDescription: It's CSS, with just a little more.\nAuthor: Max Mikhailov <seven.phases.max@gmail.com>\nWebsite: http://lesscss.org\nCategory: common, css, web\n*/\n\n/** @type LanguageFn */\nfunction less(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_SELECTORS$1 = PSEUDO_SELECTORS;\n\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[\\\\w-]+'; // yes, Less identifiers may begin with a digit\n const INTERP_IDENT_RE = '(' + IDENT_RE + '|@\\\\{' + IDENT_RE + '\\\\})';\n\n /* Generic Modes */\n\n const RULES = []; const VALUE_MODES = []; // forward def. for recursive modes\n\n const STRING_MODE = function(c) {\n return {\n // Less strings are not multiline (also include '~' for more consistent coloring of \"escaped\" strings)\n className: 'string',\n begin: '~?' + c + '.*?' + c\n };\n };\n\n const IDENT_MODE = function(name, begin, relevance) {\n return {\n className: name,\n begin: begin,\n relevance: relevance\n };\n };\n\n const AT_KEYWORDS = {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n };\n\n const PARENS_MODE = {\n // used only to properly balance nested parens inside mixin call, def. arg list\n begin: '\\\\(',\n end: '\\\\)',\n contains: VALUE_MODES,\n keywords: AT_KEYWORDS,\n relevance: 0\n };\n\n // generic Less highlighter (used almost everywhere except selectors):\n VALUE_MODES.push(\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING_MODE(\"'\"),\n STRING_MODE('\"'),\n modes.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(\n {\n begin: '(url|data-uri)\\\\(',\n starts: {\n className: 'string',\n end: '[\\\\)\\\\n]',\n excludeEnd: true\n }\n },\n modes.HEXCOLOR,\n PARENS_MODE,\n IDENT_MODE('variable', '@@?' + IDENT_RE, 10),\n IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'),\n IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string\n { // @media features (it’s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):\n className: 'attribute',\n begin: IDENT_RE + '\\\\s*:',\n end: ':',\n returnBegin: true,\n excludeEnd: true\n },\n modes.IMPORTANT,\n { beginKeywords: 'and not' },\n modes.FUNCTION_DISPATCH\n );\n\n const VALUE_WITH_RULESETS = VALUE_MODES.concat({\n begin: /\\{/,\n end: /\\}/,\n contains: RULES\n });\n\n const MIXIN_GUARD_MODE = {\n beginKeywords: 'when',\n endsWithParent: true,\n contains: [ { beginKeywords: 'and not' } ].concat(VALUE_MODES) // using this form to override VALUE’s 'function' match\n };\n\n /* Rule-Level Modes */\n\n const RULE_MODE = {\n begin: INTERP_IDENT_RE + '\\\\s*:',\n returnBegin: true,\n end: /[;}]/,\n relevance: 0,\n contains: [\n { begin: /-(webkit|moz|ms|o)-/ },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b',\n end: /(?=:)/,\n starts: {\n endsWithParent: true,\n illegal: '[<=$]',\n relevance: 0,\n contains: VALUE_MODES\n }\n }\n ]\n };\n\n const AT_RULE_MODE = {\n className: 'keyword',\n begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b',\n starts: {\n end: '[;{}]',\n keywords: AT_KEYWORDS,\n returnEnd: true,\n contains: VALUE_MODES,\n relevance: 0\n }\n };\n\n // variable definitions and calls\n const VAR_RULE_MODE = {\n className: 'variable',\n variants: [\n // using more strict pattern for higher relevance to increase chances of Less detection.\n // this is *the only* Less specific statement used in most of the sources, so...\n // (we’ll still often loose to the css-parser unless there's '//' comment,\n // simply because 1 variable just can't beat 99 properties :)\n {\n begin: '@' + IDENT_RE + '\\\\s*:',\n relevance: 15\n },\n { begin: '@' + IDENT_RE }\n ],\n starts: {\n end: '[;}]',\n returnEnd: true,\n contains: VALUE_WITH_RULESETS\n }\n };\n\n const SELECTOR_MODE = {\n // first parse unambiguous selectors (i.e. those not starting with tag)\n // then fall into the scary lookahead-discriminator variant.\n // this mode also handles mixin definitions and calls\n variants: [\n {\n begin: '[\\\\.#:&\\\\[>]',\n end: '[;{}]' // mixin calls end with ';'\n },\n {\n begin: INTERP_IDENT_RE,\n end: /\\{/\n }\n ],\n returnBegin: true,\n returnEnd: true,\n illegal: '[<=\\'$\"]',\n relevance: 0,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n MIXIN_GUARD_MODE,\n IDENT_MODE('keyword', 'all\\\\b'),\n IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'), // otherwise it’s identified as tag\n \n {\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n className: 'selector-tag'\n },\n modes.CSS_NUMBER_MODE,\n IDENT_MODE('selector-tag', INTERP_IDENT_RE, 0),\n IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),\n IDENT_MODE('selector-class', '\\\\.' + INTERP_IDENT_RE, 0),\n IDENT_MODE('selector-tag', '&', 0),\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')'\n },\n {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n contains: VALUE_WITH_RULESETS\n }, // argument list of parametric mixins\n { begin: '!important' }, // eat !important after mixin call or it will be colored as tag\n modes.FUNCTION_DISPATCH\n ]\n };\n\n const PSEUDO_SELECTOR_MODE = {\n begin: IDENT_RE + ':(:)?' + `(${PSEUDO_SELECTORS$1.join('|')})`,\n returnBegin: true,\n contains: [ SELECTOR_MODE ]\n };\n\n RULES.push(\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AT_RULE_MODE,\n VAR_RULE_MODE,\n PSEUDO_SELECTOR_MODE,\n RULE_MODE,\n SELECTOR_MODE,\n MIXIN_GUARD_MODE,\n modes.FUNCTION_DISPATCH\n );\n\n return {\n name: 'Less',\n case_insensitive: true,\n illegal: '[=>\\'/<($\"]',\n contains: RULES\n };\n}\n\nmodule.exports = less;\n","/*\nLanguage: Lisp\nDescription: Generic lisp syntax\nAuthor: Vasily Polovnyov <vast@whiteants.net>\nCategory: lisp\n*/\n\nfunction lisp(hljs) {\n const LISP_IDENT_RE = '[a-zA-Z_\\\\-+\\\\*\\\\/<=>&#][a-zA-Z0-9_\\\\-+*\\\\/<=>&#!]*';\n const MEC_RE = '\\\\|[^]*?\\\\|';\n const LISP_SIMPLE_NUMBER_RE = '(-|\\\\+)?\\\\d+(\\\\.\\\\d+|\\\\/\\\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\\\+|-)?\\\\d+)?';\n const LITERAL = {\n className: 'literal',\n begin: '\\\\b(t{1}|nil)\\\\b'\n };\n const NUMBER = {\n className: 'number',\n variants: [\n {\n begin: LISP_SIMPLE_NUMBER_RE,\n relevance: 0\n },\n { begin: '#(b|B)[0-1]+(/[0-1]+)?' },\n { begin: '#(o|O)[0-7]+(/[0-7]+)?' },\n { begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?' },\n {\n begin: '#(c|C)\\\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE,\n end: '\\\\)'\n }\n ]\n };\n const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, { illegal: null });\n const COMMENT = hljs.COMMENT(\n ';', '$',\n { relevance: 0 }\n );\n const VARIABLE = {\n begin: '\\\\*',\n end: '\\\\*'\n };\n const KEYWORD = {\n className: 'symbol',\n begin: '[:&]' + LISP_IDENT_RE\n };\n const IDENT = {\n begin: LISP_IDENT_RE,\n relevance: 0\n };\n const MEC = { begin: MEC_RE };\n const QUOTED_LIST = {\n begin: '\\\\(',\n end: '\\\\)',\n contains: [\n 'self',\n LITERAL,\n STRING,\n NUMBER,\n IDENT\n ]\n };\n const QUOTED = {\n contains: [\n NUMBER,\n STRING,\n VARIABLE,\n KEYWORD,\n QUOTED_LIST,\n IDENT\n ],\n variants: [\n {\n begin: '[\\'`]\\\\(',\n end: '\\\\)'\n },\n {\n begin: '\\\\(quote ',\n end: '\\\\)',\n keywords: { name: 'quote' }\n },\n { begin: '\\'' + MEC_RE }\n ]\n };\n const QUOTED_ATOM = { variants: [\n { begin: '\\'' + LISP_IDENT_RE },\n { begin: '#\\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*' }\n ] };\n const LIST = {\n begin: '\\\\(\\\\s*',\n end: '\\\\)'\n };\n const BODY = {\n endsWithParent: true,\n relevance: 0\n };\n LIST.contains = [\n {\n className: 'name',\n variants: [\n {\n begin: LISP_IDENT_RE,\n relevance: 0,\n },\n { begin: MEC_RE }\n ]\n },\n BODY\n ];\n BODY.contains = [\n QUOTED,\n QUOTED_ATOM,\n LIST,\n LITERAL,\n NUMBER,\n STRING,\n COMMENT,\n VARIABLE,\n KEYWORD,\n MEC,\n IDENT\n ];\n\n return {\n name: 'Lisp',\n illegal: /\\S/,\n contains: [\n NUMBER,\n hljs.SHEBANG(),\n LITERAL,\n STRING,\n COMMENT,\n QUOTED,\n QUOTED_ATOM,\n LIST,\n IDENT\n ]\n };\n}\n\nmodule.exports = lisp;\n","/*\nLanguage: Lua\nDescription: Lua is a powerful, efficient, lightweight, embeddable scripting language.\nAuthor: Andrew Fedorov <dmmdrs@mail.ru>\nCategory: common, scripting\nWebsite: https://www.lua.org\n*/\n\nfunction lua(hljs) {\n const OPENING_LONG_BRACKET = '\\\\[=*\\\\[';\n const CLOSING_LONG_BRACKET = '\\\\]=*\\\\]';\n const LONG_BRACKETS = {\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [ 'self' ]\n };\n const COMMENTS = [\n hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),\n hljs.COMMENT(\n '--' + OPENING_LONG_BRACKET,\n CLOSING_LONG_BRACKET,\n {\n contains: [ LONG_BRACKETS ],\n relevance: 10\n }\n )\n ];\n return {\n name: 'Lua',\n keywords: {\n $pattern: hljs.UNDERSCORE_IDENT_RE,\n literal: \"true false nil\",\n keyword: \"and break do else elseif end for goto if in local not or repeat return then until while\",\n built_in:\n // Metatags and globals:\n '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len '\n + '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert '\n // Standard methods and properties:\n + 'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring '\n + 'module next pairs pcall print rawequal rawget rawset require select setfenv '\n + 'setmetatable tonumber tostring type unpack xpcall arg self '\n // Library methods and properties (one line per library):\n + 'coroutine resume yield status wrap create running debug getupvalue '\n + 'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv '\n + 'io lines write close flush open output type read stderr stdin input stdout popen tmpfile '\n + 'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan '\n + 'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall '\n + 'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower '\n + 'table setn insert getn foreachi maxn foreach concat sort remove'\n },\n contains: COMMENTS.concat([\n {\n className: 'function',\n beginKeywords: 'function',\n end: '\\\\)',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*' }),\n {\n className: 'params',\n begin: '\\\\(',\n endsWithParent: true,\n contains: COMMENTS\n }\n ].concat(COMMENTS)\n },\n hljs.C_NUMBER_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [ LONG_BRACKETS ],\n relevance: 5\n }\n ])\n };\n}\n\nmodule.exports = lua;\n","/*\nLanguage: Makefile\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nContributors: Joël Porquet <joel@porquet.org>\nWebsite: https://www.gnu.org/software/make/manual/html_node/Introduction.html\nCategory: common\n*/\n\nfunction makefile(hljs) {\n /* Variables: simple (eg $(var)) and special (eg $@) */\n const VARIABLE = {\n className: 'variable',\n variants: [\n {\n begin: '\\\\$\\\\(' + hljs.UNDERSCORE_IDENT_RE + '\\\\)',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n { begin: /\\$[@%<?\\^\\+\\*]/ }\n ]\n };\n /* Quoted string with variables inside */\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VARIABLE\n ]\n };\n /* Function: $(func arg,...) */\n const FUNC = {\n className: 'variable',\n begin: /\\$\\([\\w-]+\\s/,\n end: /\\)/,\n keywords: { built_in:\n 'subst patsubst strip findstring filter filter-out sort '\n + 'word wordlist firstword lastword dir notdir suffix basename '\n + 'addsuffix addprefix join wildcard realpath abspath error warning '\n + 'shell origin flavor foreach if or and call eval file value' },\n contains: [ VARIABLE ]\n };\n /* Variable assignment */\n const ASSIGNMENT = { begin: '^' + hljs.UNDERSCORE_IDENT_RE + '\\\\s*(?=[:+?]?=)' };\n /* Meta targets (.PHONY) */\n const META = {\n className: 'meta',\n begin: /^\\.PHONY:/,\n end: /$/,\n keywords: {\n $pattern: /[\\.\\w]+/,\n keyword: '.PHONY'\n }\n };\n /* Targets */\n const TARGET = {\n className: 'section',\n begin: /^[^\\s]+:/,\n end: /$/,\n contains: [ VARIABLE ]\n };\n return {\n name: 'Makefile',\n aliases: [\n 'mk',\n 'mak',\n 'make',\n ],\n keywords: {\n $pattern: /[\\w-]+/,\n keyword: 'define endef undefine ifdef ifndef ifeq ifneq else endif '\n + 'include -include sinclude override export unexport private vpath'\n },\n contains: [\n hljs.HASH_COMMENT_MODE,\n VARIABLE,\n QUOTE_STRING,\n FUNC,\n ASSIGNMENT,\n META,\n TARGET\n ]\n };\n}\n\nmodule.exports = makefile;\n","/*\nLanguage: Markdown\nRequires: xml.js\nAuthor: John Crepezzi <john.crepezzi@gmail.com>\nWebsite: https://daringfireball.net/projects/markdown/\nCategory: common, markup\n*/\n\nfunction markdown(hljs) {\n const regex = hljs.regex;\n const INLINE_HTML = {\n begin: /<\\/?[A-Za-z_]/,\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n };\n const HORIZONTAL_RULE = {\n begin: '^[-\\\\*]{3,}',\n end: '$'\n };\n const CODE = {\n className: 'code',\n variants: [\n // TODO: fix to allow these to work with sublanguage also\n { begin: '(`{3,})[^`](.|\\\\n)*?\\\\1`*[ ]*' },\n { begin: '(~{3,})[^~](.|\\\\n)*?\\\\1~*[ ]*' },\n // needed to allow markdown as a sublanguage to work\n {\n begin: '```',\n end: '```+[ ]*$'\n },\n {\n begin: '~~~',\n end: '~~~+[ ]*$'\n },\n { begin: '`.+?`' },\n {\n begin: '(?=^( {4}|\\\\t))',\n // use contains to gobble up multiple lines to allow the block to be whatever size\n // but only have a single open/close tag vs one per line\n contains: [\n {\n begin: '^( {4}|\\\\t)',\n end: '(\\\\n)$'\n }\n ],\n relevance: 0\n }\n ]\n };\n const LIST = {\n className: 'bullet',\n begin: '^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)',\n end: '\\\\s+',\n excludeEnd: true\n };\n const LINK_REFERENCE = {\n begin: /^\\[[^\\n]+\\]:/,\n returnBegin: true,\n contains: [\n {\n className: 'symbol',\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'link',\n begin: /:\\s*/,\n end: /$/,\n excludeBegin: true\n }\n ]\n };\n const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;\n const LINK = {\n variants: [\n // too much like nested array access in so many languages\n // to have any real relevance\n {\n begin: /\\[.+?\\]\\[.*?\\]/,\n relevance: 0\n },\n // popular internet URLs\n {\n begin: /\\[.+?\\]\\(((data|javascript|mailto):|(?:http|ftp)s?:\\/\\/).*?\\)/,\n relevance: 2\n },\n {\n begin: regex.concat(/\\[.+?\\]\\(/, URL_SCHEME, /:\\/\\/.*?\\)/),\n relevance: 2\n },\n // relative urls\n {\n begin: /\\[.+?\\]\\([./?&#].*?\\)/,\n relevance: 1\n },\n // whatever else, lower relevance (might not be a link at all)\n {\n begin: /\\[.*?\\]\\(.*?\\)/,\n relevance: 0\n }\n ],\n returnBegin: true,\n contains: [\n {\n // empty strings for alt or link text\n match: /\\[(?=\\])/ },\n {\n className: 'string',\n relevance: 0,\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n returnEnd: true\n },\n {\n className: 'link',\n relevance: 0,\n begin: '\\\\]\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'symbol',\n relevance: 0,\n begin: '\\\\]\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true\n }\n ]\n };\n const BOLD = {\n className: 'strong',\n contains: [], // defined later\n variants: [\n {\n begin: /_{2}/,\n end: /_{2}/\n },\n {\n begin: /\\*{2}/,\n end: /\\*{2}/\n }\n ]\n };\n const ITALIC = {\n className: 'emphasis',\n contains: [], // defined later\n variants: [\n {\n begin: /\\*(?!\\*)/,\n end: /\\*/\n },\n {\n begin: /_(?!_)/,\n end: /_/,\n relevance: 0\n }\n ]\n };\n\n // 3 level deep nesting is not allowed because it would create confusion\n // in cases like `***testing***` because where we don't know if the last\n // `***` is starting a new bold/italic or finishing the last one\n const BOLD_WITHOUT_ITALIC = hljs.inherit(BOLD, { contains: [] });\n const ITALIC_WITHOUT_BOLD = hljs.inherit(ITALIC, { contains: [] });\n BOLD.contains.push(ITALIC_WITHOUT_BOLD);\n ITALIC.contains.push(BOLD_WITHOUT_ITALIC);\n\n let CONTAINABLE = [\n INLINE_HTML,\n LINK\n ];\n\n [\n BOLD,\n ITALIC,\n BOLD_WITHOUT_ITALIC,\n ITALIC_WITHOUT_BOLD\n ].forEach(m => {\n m.contains = m.contains.concat(CONTAINABLE);\n });\n\n CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n\n const HEADER = {\n className: 'section',\n variants: [\n {\n begin: '^#{1,6}',\n end: '$',\n contains: CONTAINABLE\n },\n {\n begin: '(?=^.+?\\\\n[=-]{2,}$)',\n contains: [\n { begin: '^[=-]*$' },\n {\n begin: '^',\n end: \"\\\\n\",\n contains: CONTAINABLE\n }\n ]\n }\n ]\n };\n\n const BLOCKQUOTE = {\n className: 'quote',\n begin: '^>\\\\s+',\n contains: CONTAINABLE,\n end: '$'\n };\n\n return {\n name: 'Markdown',\n aliases: [\n 'md',\n 'mkdown',\n 'mkd'\n ],\n contains: [\n HEADER,\n INLINE_HTML,\n LIST,\n BOLD,\n ITALIC,\n BLOCKQUOTE,\n CODE,\n HORIZONTAL_RULE,\n LINK,\n LINK_REFERENCE\n ]\n };\n}\n\nmodule.exports = markdown;\n","/*\nLanguage: Nginx config\nAuthor: Peter Leonov <gojpeg@yandex.ru>\nContributors: Ivan Sagalaev <maniac@softwaremaniacs.org>\nCategory: config, web\nWebsite: https://www.nginx.com\n*/\n\n/** @type LanguageFn */\nfunction nginx(hljs) {\n const regex = hljs.regex;\n const VAR = {\n className: 'variable',\n variants: [\n { begin: /\\$\\d+/ },\n { begin: /\\$\\{\\w+\\}/ },\n { begin: regex.concat(/[$@]/, hljs.UNDERSCORE_IDENT_RE) }\n ]\n };\n const LITERALS = [\n \"on\",\n \"off\",\n \"yes\",\n \"no\",\n \"true\",\n \"false\",\n \"none\",\n \"blocked\",\n \"debug\",\n \"info\",\n \"notice\",\n \"warn\",\n \"error\",\n \"crit\",\n \"select\",\n \"break\",\n \"last\",\n \"permanent\",\n \"redirect\",\n \"kqueue\",\n \"rtsig\",\n \"epoll\",\n \"poll\",\n \"/dev/poll\"\n ];\n const DEFAULT = {\n endsWithParent: true,\n keywords: {\n $pattern: /[a-z_]{2,}|\\/dev\\/poll/,\n literal: LITERALS\n },\n relevance: 0,\n illegal: '=>',\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR\n ],\n variants: [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /'/,\n end: /'/\n }\n ]\n },\n // this swallows entire URLs to avoid detecting numbers within\n {\n begin: '([a-z]+):/',\n end: '\\\\s',\n endsWithParent: true,\n excludeEnd: true,\n contains: [ VAR ]\n },\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR\n ],\n variants: [\n {\n begin: \"\\\\s\\\\^\",\n end: \"\\\\s|\\\\{|;\",\n returnEnd: true\n },\n // regexp locations (~, ~*)\n {\n begin: \"~\\\\*?\\\\s+\",\n end: \"\\\\s|\\\\{|;\",\n returnEnd: true\n },\n // *.example.com\n { begin: \"\\\\*(\\\\.[a-z\\\\-]+)+\" },\n // sub.example.*\n { begin: \"([a-z\\\\-]+\\\\.)+\\\\*\" }\n ]\n },\n // IP\n {\n className: 'number',\n begin: '\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b'\n },\n // units\n {\n className: 'number',\n begin: '\\\\b\\\\d+[kKmMgGdshdwy]?\\\\b',\n relevance: 0\n },\n VAR\n ]\n };\n\n return {\n name: 'Nginx config',\n aliases: [ 'nginxconf' ],\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n beginKeywords: \"upstream location\",\n end: /;|\\{/,\n contains: DEFAULT.contains,\n keywords: { section: \"upstream location\" }\n },\n {\n className: 'section',\n begin: regex.concat(hljs.UNDERSCORE_IDENT_RE + regex.lookahead(/\\s+\\{/)),\n relevance: 0\n },\n {\n begin: regex.lookahead(hljs.UNDERSCORE_IDENT_RE + '\\\\s'),\n end: ';|\\\\{',\n contains: [\n {\n className: 'attribute',\n begin: hljs.UNDERSCORE_IDENT_RE,\n starts: DEFAULT\n }\n ],\n relevance: 0\n }\n ],\n illegal: '[^\\\\s\\\\}\\\\{]'\n };\n}\n\nmodule.exports = nginx;\n","/*\nLanguage: Objective-C\nAuthor: Valerii Hiora <valerii.hiora@gmail.com>\nContributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>, Matt Diephouse <matt@diephouse.com>, Andrew Farmer <ahfarmer@gmail.com>, Minh Nguyễn <mxn@1ec5.org>\nWebsite: https://developer.apple.com/documentation/objectivec\nCategory: common\n*/\n\nfunction objectivec(hljs) {\n const API_CLASS = {\n className: 'built_in',\n begin: '\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+'\n };\n const IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/;\n const TYPES = [\n \"int\",\n \"float\",\n \"char\",\n \"unsigned\",\n \"signed\",\n \"short\",\n \"long\",\n \"double\",\n \"wchar_t\",\n \"unichar\",\n \"void\",\n \"bool\",\n \"BOOL\",\n \"id|0\",\n \"_Bool\"\n ];\n const KWS = [\n \"while\",\n \"export\",\n \"sizeof\",\n \"typedef\",\n \"const\",\n \"struct\",\n \"for\",\n \"union\",\n \"volatile\",\n \"static\",\n \"mutable\",\n \"if\",\n \"do\",\n \"return\",\n \"goto\",\n \"enum\",\n \"else\",\n \"break\",\n \"extern\",\n \"asm\",\n \"case\",\n \"default\",\n \"register\",\n \"explicit\",\n \"typename\",\n \"switch\",\n \"continue\",\n \"inline\",\n \"readonly\",\n \"assign\",\n \"readwrite\",\n \"self\",\n \"@synchronized\",\n \"id\",\n \"typeof\",\n \"nonatomic\",\n \"IBOutlet\",\n \"IBAction\",\n \"strong\",\n \"weak\",\n \"copy\",\n \"in\",\n \"out\",\n \"inout\",\n \"bycopy\",\n \"byref\",\n \"oneway\",\n \"__strong\",\n \"__weak\",\n \"__block\",\n \"__autoreleasing\",\n \"@private\",\n \"@protected\",\n \"@public\",\n \"@try\",\n \"@property\",\n \"@end\",\n \"@throw\",\n \"@catch\",\n \"@finally\",\n \"@autoreleasepool\",\n \"@synthesize\",\n \"@dynamic\",\n \"@selector\",\n \"@optional\",\n \"@required\",\n \"@encode\",\n \"@package\",\n \"@import\",\n \"@defs\",\n \"@compatibility_alias\",\n \"__bridge\",\n \"__bridge_transfer\",\n \"__bridge_retained\",\n \"__bridge_retain\",\n \"__covariant\",\n \"__contravariant\",\n \"__kindof\",\n \"_Nonnull\",\n \"_Nullable\",\n \"_Null_unspecified\",\n \"__FUNCTION__\",\n \"__PRETTY_FUNCTION__\",\n \"__attribute__\",\n \"getter\",\n \"setter\",\n \"retain\",\n \"unsafe_unretained\",\n \"nonnull\",\n \"nullable\",\n \"null_unspecified\",\n \"null_resettable\",\n \"class\",\n \"instancetype\",\n \"NS_DESIGNATED_INITIALIZER\",\n \"NS_UNAVAILABLE\",\n \"NS_REQUIRES_SUPER\",\n \"NS_RETURNS_INNER_POINTER\",\n \"NS_INLINE\",\n \"NS_AVAILABLE\",\n \"NS_DEPRECATED\",\n \"NS_ENUM\",\n \"NS_OPTIONS\",\n \"NS_SWIFT_UNAVAILABLE\",\n \"NS_ASSUME_NONNULL_BEGIN\",\n \"NS_ASSUME_NONNULL_END\",\n \"NS_REFINED_FOR_SWIFT\",\n \"NS_SWIFT_NAME\",\n \"NS_SWIFT_NOTHROW\",\n \"NS_DURING\",\n \"NS_HANDLER\",\n \"NS_ENDHANDLER\",\n \"NS_VALUERETURN\",\n \"NS_VOIDRETURN\"\n ];\n const LITERALS = [\n \"false\",\n \"true\",\n \"FALSE\",\n \"TRUE\",\n \"nil\",\n \"YES\",\n \"NO\",\n \"NULL\"\n ];\n const BUILT_INS = [\n \"dispatch_once_t\",\n \"dispatch_queue_t\",\n \"dispatch_sync\",\n \"dispatch_async\",\n \"dispatch_once\"\n ];\n const KEYWORDS = {\n \"variable.language\": [\n \"this\",\n \"super\"\n ],\n $pattern: IDENTIFIER_RE,\n keyword: KWS,\n literal: LITERALS,\n built_in: BUILT_INS,\n type: TYPES\n };\n const CLASS_KEYWORDS = {\n $pattern: IDENTIFIER_RE,\n keyword: [\n \"@interface\",\n \"@class\",\n \"@protocol\",\n \"@implementation\"\n ]\n };\n return {\n name: 'Objective-C',\n aliases: [\n 'mm',\n 'objc',\n 'obj-c',\n 'obj-c++',\n 'objective-c++'\n ],\n keywords: KEYWORDS,\n illegal: '</',\n contains: [\n API_CLASS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n {\n className: 'string',\n variants: [\n {\n begin: '@\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n }\n ]\n },\n {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/,\n end: /$/,\n illegal: '\\\\n'\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n className: 'class',\n begin: '(' + CLASS_KEYWORDS.keyword.join('|') + ')\\\\b',\n end: /(\\{|$)/,\n excludeEnd: true,\n keywords: CLASS_KEYWORDS,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n begin: '\\\\.' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = objectivec;\n","/*\nLanguage: Perl\nAuthor: Peter Leonov <gojpeg@yandex.ru>\nWebsite: https://www.perl.org\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction perl(hljs) {\n const regex = hljs.regex;\n const KEYWORDS = [\n 'abs',\n 'accept',\n 'alarm',\n 'and',\n 'atan2',\n 'bind',\n 'binmode',\n 'bless',\n 'break',\n 'caller',\n 'chdir',\n 'chmod',\n 'chomp',\n 'chop',\n 'chown',\n 'chr',\n 'chroot',\n 'close',\n 'closedir',\n 'connect',\n 'continue',\n 'cos',\n 'crypt',\n 'dbmclose',\n 'dbmopen',\n 'defined',\n 'delete',\n 'die',\n 'do',\n 'dump',\n 'each',\n 'else',\n 'elsif',\n 'endgrent',\n 'endhostent',\n 'endnetent',\n 'endprotoent',\n 'endpwent',\n 'endservent',\n 'eof',\n 'eval',\n 'exec',\n 'exists',\n 'exit',\n 'exp',\n 'fcntl',\n 'fileno',\n 'flock',\n 'for',\n 'foreach',\n 'fork',\n 'format',\n 'formline',\n 'getc',\n 'getgrent',\n 'getgrgid',\n 'getgrnam',\n 'gethostbyaddr',\n 'gethostbyname',\n 'gethostent',\n 'getlogin',\n 'getnetbyaddr',\n 'getnetbyname',\n 'getnetent',\n 'getpeername',\n 'getpgrp',\n 'getpriority',\n 'getprotobyname',\n 'getprotobynumber',\n 'getprotoent',\n 'getpwent',\n 'getpwnam',\n 'getpwuid',\n 'getservbyname',\n 'getservbyport',\n 'getservent',\n 'getsockname',\n 'getsockopt',\n 'given',\n 'glob',\n 'gmtime',\n 'goto',\n 'grep',\n 'gt',\n 'hex',\n 'if',\n 'index',\n 'int',\n 'ioctl',\n 'join',\n 'keys',\n 'kill',\n 'last',\n 'lc',\n 'lcfirst',\n 'length',\n 'link',\n 'listen',\n 'local',\n 'localtime',\n 'log',\n 'lstat',\n 'lt',\n 'ma',\n 'map',\n 'mkdir',\n 'msgctl',\n 'msgget',\n 'msgrcv',\n 'msgsnd',\n 'my',\n 'ne',\n 'next',\n 'no',\n 'not',\n 'oct',\n 'open',\n 'opendir',\n 'or',\n 'ord',\n 'our',\n 'pack',\n 'package',\n 'pipe',\n 'pop',\n 'pos',\n 'print',\n 'printf',\n 'prototype',\n 'push',\n 'q|0',\n 'qq',\n 'quotemeta',\n 'qw',\n 'qx',\n 'rand',\n 'read',\n 'readdir',\n 'readline',\n 'readlink',\n 'readpipe',\n 'recv',\n 'redo',\n 'ref',\n 'rename',\n 'require',\n 'reset',\n 'return',\n 'reverse',\n 'rewinddir',\n 'rindex',\n 'rmdir',\n 'say',\n 'scalar',\n 'seek',\n 'seekdir',\n 'select',\n 'semctl',\n 'semget',\n 'semop',\n 'send',\n 'setgrent',\n 'sethostent',\n 'setnetent',\n 'setpgrp',\n 'setpriority',\n 'setprotoent',\n 'setpwent',\n 'setservent',\n 'setsockopt',\n 'shift',\n 'shmctl',\n 'shmget',\n 'shmread',\n 'shmwrite',\n 'shutdown',\n 'sin',\n 'sleep',\n 'socket',\n 'socketpair',\n 'sort',\n 'splice',\n 'split',\n 'sprintf',\n 'sqrt',\n 'srand',\n 'stat',\n 'state',\n 'study',\n 'sub',\n 'substr',\n 'symlink',\n 'syscall',\n 'sysopen',\n 'sysread',\n 'sysseek',\n 'system',\n 'syswrite',\n 'tell',\n 'telldir',\n 'tie',\n 'tied',\n 'time',\n 'times',\n 'tr',\n 'truncate',\n 'uc',\n 'ucfirst',\n 'umask',\n 'undef',\n 'unless',\n 'unlink',\n 'unpack',\n 'unshift',\n 'untie',\n 'until',\n 'use',\n 'utime',\n 'values',\n 'vec',\n 'wait',\n 'waitpid',\n 'wantarray',\n 'warn',\n 'when',\n 'while',\n 'write',\n 'x|0',\n 'xor',\n 'y|0'\n ];\n\n // https://perldoc.perl.org/perlre#Modifiers\n const REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/; // aa and xx are valid, making max length 12\n const PERL_KEYWORDS = {\n $pattern: /[\\w.]+/,\n keyword: KEYWORDS.join(\" \")\n };\n const SUBST = {\n className: 'subst',\n begin: '[$@]\\\\{',\n end: '\\\\}',\n keywords: PERL_KEYWORDS\n };\n const METHOD = {\n begin: /->\\{/,\n end: /\\}/\n // contains defined later\n };\n const VAR = { variants: [\n { begin: /\\$\\d/ },\n { begin: regex.concat(\n /[$%@](\\^\\w\\b|#\\w+(::\\w+)*|\\{\\w+\\}|\\w+(::\\w*)*)/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![A-Za-z])(?![@$%])`\n ) },\n {\n begin: /[$%@][^\\s\\w{]/,\n relevance: 0\n }\n ] };\n const STRING_CONTAINS = [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n VAR\n ];\n const REGEX_DELIMS = [\n /!/,\n /\\//,\n /\\|/,\n /\\?/,\n /'/,\n /\"/, // valid but infrequent and weird\n /#/ // valid but infrequent and weird\n ];\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_DOUBLE_RE = (prefix, open, close = '\\\\1') => {\n const middle = (close === '\\\\1')\n ? close\n : regex.concat(close, open);\n return regex.concat(\n regex.concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n middle,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_RE = (prefix, open, close) => {\n return regex.concat(\n regex.concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n const PERL_DEFAULT_CONTAINS = [\n VAR,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT(\n /^=\\w/,\n /=cut/,\n { endsWithParent: true }\n ),\n METHOD,\n {\n className: 'string',\n contains: STRING_CONTAINS,\n variants: [\n {\n begin: 'q[qwxr]?\\\\s*\\\\(',\n end: '\\\\)',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\[',\n end: '\\\\]',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\{',\n end: '\\\\}',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\|',\n end: '\\\\|',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*<',\n end: '>',\n relevance: 5\n },\n {\n begin: 'qw\\\\s+q',\n end: 'q',\n relevance: 5\n },\n {\n begin: '\\'',\n end: '\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: '`',\n end: '`',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: /\\{\\w+\\}/,\n relevance: 0\n },\n {\n begin: '-?\\\\w+\\\\s*=>',\n relevance: 0\n }\n ]\n },\n {\n className: 'number',\n begin: '(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',\n relevance: 0\n },\n { // regexp container\n begin: '(\\\\/\\\\/|' + hljs.RE_STARTERS_RE + '|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*',\n keywords: 'split return print reverse grep',\n relevance: 0,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'regexp',\n variants: [\n // allow matching common delimiters\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", regex.either(...REGEX_DELIMS, { capture: true })) },\n // and then paired delmis\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\(\", \"\\\\)\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\[\", \"\\\\]\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\{\", \"\\\\}\") }\n ],\n relevance: 2\n },\n {\n className: 'regexp',\n variants: [\n {\n // could be a comment in many languages so do not count\n // as relevant\n begin: /(m|qr)\\/\\//,\n relevance: 0\n },\n // prefix is optional with /regex/\n { begin: PAIRED_RE(\"(?:m|qr)?\", /\\//, /\\//) },\n // allow matching common delimiters\n { begin: PAIRED_RE(\"m|qr\", regex.either(...REGEX_DELIMS, { capture: true }), /\\1/) },\n // allow common paired delmins\n { begin: PAIRED_RE(\"m|qr\", /\\(/, /\\)/) },\n { begin: PAIRED_RE(\"m|qr\", /\\[/, /\\]/) },\n { begin: PAIRED_RE(\"m|qr\", /\\{/, /\\}/) }\n ]\n }\n ]\n },\n {\n className: 'function',\n beginKeywords: 'sub',\n end: '(\\\\s*\\\\(.*?\\\\))?[;{]',\n excludeEnd: true,\n relevance: 5,\n contains: [ hljs.TITLE_MODE ]\n },\n {\n begin: '-\\\\w\\\\b',\n relevance: 0\n },\n {\n begin: \"^__DATA__$\",\n end: \"^__END__$\",\n subLanguage: 'mojolicious',\n contains: [\n {\n begin: \"^@@.*\",\n end: \"$\",\n className: \"comment\"\n }\n ]\n }\n ];\n SUBST.contains = PERL_DEFAULT_CONTAINS;\n METHOD.contains = PERL_DEFAULT_CONTAINS;\n\n return {\n name: 'Perl',\n aliases: [\n 'pl',\n 'pm'\n ],\n keywords: PERL_KEYWORDS,\n contains: PERL_DEFAULT_CONTAINS\n };\n}\n\nmodule.exports = perl;\n","/*\nLanguage: PostgreSQL and PL/pgSQL\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nWebsite: https://www.postgresql.org/docs/11/sql.html\nDescription:\n This language incorporates both PostgreSQL SQL dialect and PL/pgSQL language.\n It is based on PostgreSQL version 11. Some notes:\n - Text in double-dollar-strings is _always_ interpreted as some programming code. Text\n in ordinary quotes is _never_ interpreted that way and highlighted just as a string.\n - There are quite a bit \"special cases\". That's because many keywords are not strictly\n they are keywords in some contexts and ordinary identifiers in others. Only some\n of such cases are handled; you still can get some of your identifiers highlighted\n wrong way.\n - Function names deliberately are not highlighted. There is no way to tell function\n call from other constructs, hence we can't highlight _all_ function names. And\n some names highlighted while others not looks ugly.\n*/\n\nfunction pgsql(hljs) {\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const UNQUOTED_IDENT = '[a-zA-Z_][a-zA-Z_0-9$]*';\n const DOLLAR_STRING = '\\\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\\\$';\n const LABEL = '<<\\\\s*' + UNQUOTED_IDENT + '\\\\s*>>';\n\n const SQL_KW =\n // https://www.postgresql.org/docs/11/static/sql-keywords-appendix.html\n // https://www.postgresql.org/docs/11/static/sql-commands.html\n // SQL commands (starting words)\n 'ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE '\n + 'DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY '\n + 'PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW '\n + 'START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES '\n // SQL commands (others)\n + 'AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN '\n + 'WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS '\n + 'FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM '\n + 'TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS '\n + 'METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION '\n + 'INDEX PROCEDURE ASSERTION '\n // additional reserved key words\n + 'ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK '\n + 'COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS '\n + 'DEFERRABLE RANGE '\n + 'DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING '\n + 'ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT '\n + 'NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY '\n + 'REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN '\n + 'TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH '\n // some of non-reserved (which are used in clauses or as PL/pgSQL keyword)\n + 'BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN '\n + 'BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT '\n + 'TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN '\n + 'EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH '\n + 'REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL '\n + 'ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED '\n + 'INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 '\n + 'INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE '\n + 'ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES '\n + 'RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS '\n + 'UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF '\n // some parameters of VACUUM/ANALYZE/EXPLAIN\n + 'FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING '\n //\n + 'RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED '\n + 'OF NOTHING NONE EXCLUDE ATTRIBUTE '\n // from GRANT (not keywords actually)\n + 'USAGE ROUTINES '\n // actually literals, but look better this way (due to IS TRUE, IS FALSE, ISNULL etc)\n + 'TRUE FALSE NAN INFINITY ';\n\n const ROLE_ATTRS = // only those not in keywrods already\n 'SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT '\n + 'LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ';\n\n const PLPGSQL_KW =\n 'ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS '\n + 'STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT '\n + 'OPEN ';\n\n const TYPES =\n // https://www.postgresql.org/docs/11/static/datatype.html\n 'BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR '\n + 'CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 '\n + 'MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 '\n + 'SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 '\n + 'TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR '\n + 'INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 '\n // pseudotypes\n + 'ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL '\n + 'RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR '\n // spec. type\n + 'NAME '\n // OID-types\n + 'OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 '\n + 'REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ';// +\n\n const TYPES_RE =\n TYPES.trim()\n .split(' ')\n .map(function(val) { return val.split('|')[0]; })\n .join('|');\n\n const SQL_BI =\n 'CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP '\n + 'CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC ';\n\n const PLPGSQL_BI =\n 'FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 '\n + 'TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 '\n // get diagnostics\n + 'ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME '\n + 'PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 '\n + 'PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 ';\n\n const PLPGSQL_EXCEPTIONS =\n // exceptions https://www.postgresql.org/docs/current/static/errcodes-appendix.html\n 'SQLSTATE SQLERRM|10 '\n + 'SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING '\n + 'NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED '\n + 'STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED '\n + 'SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE '\n + 'SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION '\n + 'TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED '\n + 'INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR '\n + 'INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION '\n + 'STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION '\n + 'DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW '\n + 'DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW '\n + 'INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION '\n + 'INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION '\n + 'INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST '\n + 'INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE '\n + 'NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE '\n + 'INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE '\n + 'INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT '\n + 'INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH '\n + 'NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE '\n + 'SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION '\n + 'SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING '\n + 'FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION '\n + 'BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT '\n + 'INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION '\n + 'INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION '\n + 'UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE '\n + 'INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE '\n + 'HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION '\n + 'INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION '\n + 'NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION '\n + 'SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION '\n + 'IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME '\n + 'TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD '\n + 'DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST '\n + 'INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT '\n + 'MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED '\n + 'READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION '\n + 'CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED '\n + 'PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED '\n + 'EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED '\n + 'TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED '\n + 'SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME '\n + 'INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION '\n + 'SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED '\n + 'SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE '\n + 'GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME '\n + 'NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH '\n + 'INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN '\n + 'UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT '\n + 'DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION '\n + 'DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS '\n + 'DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS '\n + 'INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION '\n + 'INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION '\n + 'INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION '\n + 'INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL '\n + 'OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED '\n + 'STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE '\n + 'OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION '\n + 'QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED '\n + 'SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR '\n + 'LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED '\n + 'FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION '\n + 'FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER '\n + 'FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS '\n + 'FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX '\n + 'FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH '\n + 'FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES '\n + 'FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE '\n + 'FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION '\n + 'FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR '\n + 'RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED '\n + 'INDEX_CORRUPTED ';\n\n const FUNCTIONS =\n // https://www.postgresql.org/docs/11/static/functions-aggregate.html\n 'ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG '\n + 'JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG '\n + 'CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE '\n + 'REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP '\n + 'PERCENTILE_CONT PERCENTILE_DISC '\n // https://www.postgresql.org/docs/11/static/functions-window.html\n + 'ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE '\n // https://www.postgresql.org/docs/11/static/functions-comparison.html\n + 'NUM_NONNULLS NUM_NULLS '\n // https://www.postgresql.org/docs/11/static/functions-math.html\n + 'ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT '\n + 'TRUNC WIDTH_BUCKET '\n + 'RANDOM SETSEED '\n + 'ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND '\n // https://www.postgresql.org/docs/11/static/functions-string.html\n + 'BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER '\n + 'ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP '\n + 'LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 '\n + 'QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY '\n + 'REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR '\n + 'TO_ASCII TO_HEX TRANSLATE '\n // https://www.postgresql.org/docs/11/static/functions-binarystring.html\n + 'OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE '\n // https://www.postgresql.org/docs/11/static/functions-formatting.html\n + 'TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP '\n // https://www.postgresql.org/docs/11/static/functions-datetime.html\n + 'AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL '\n + 'MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 '\n + 'TIMEOFDAY TRANSACTION_TIMESTAMP|10 '\n // https://www.postgresql.org/docs/11/static/functions-enum.html\n + 'ENUM_FIRST ENUM_LAST ENUM_RANGE '\n // https://www.postgresql.org/docs/11/static/functions-geometry.html\n + 'AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH '\n + 'BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON '\n // https://www.postgresql.org/docs/11/static/functions-net.html\n + 'ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY '\n + 'INET_MERGE MACADDR8_SET7BIT '\n // https://www.postgresql.org/docs/11/static/functions-textsearch.html\n + 'ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY '\n + 'QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE '\n + 'TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY '\n + 'TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN '\n // https://www.postgresql.org/docs/11/static/functions-xml.html\n + 'XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT '\n + 'XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT '\n + 'XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES '\n + 'TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA '\n + 'QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA '\n + 'CURSOR_TO_XML CURSOR_TO_XMLSCHEMA '\n + 'SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA '\n + 'DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA '\n + 'XMLATTRIBUTES '\n // https://www.postgresql.org/docs/11/static/functions-json.html\n + 'TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT '\n + 'JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH '\n + 'JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH '\n + 'JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET '\n + 'JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT '\n + 'JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET '\n + 'JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY '\n // https://www.postgresql.org/docs/11/static/functions-sequence.html\n + 'CURRVAL LASTVAL NEXTVAL SETVAL '\n // https://www.postgresql.org/docs/11/static/functions-conditional.html\n + 'COALESCE NULLIF GREATEST LEAST '\n // https://www.postgresql.org/docs/11/static/functions-array.html\n + 'ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION '\n + 'ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY '\n + 'STRING_TO_ARRAY UNNEST '\n // https://www.postgresql.org/docs/11/static/functions-range.html\n + 'ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE '\n // https://www.postgresql.org/docs/11/static/functions-srf.html\n + 'GENERATE_SERIES GENERATE_SUBSCRIPTS '\n // https://www.postgresql.org/docs/11/static/functions-info.html\n + 'CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT '\n + 'INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE '\n + 'TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE '\n + 'COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION '\n + 'TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX '\n + 'TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS '\n // https://www.postgresql.org/docs/11/static/functions-admin.html\n + 'CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE '\n + 'GIN_CLEAN_PENDING_LIST '\n // https://www.postgresql.org/docs/11/static/functions-trigger.html\n + 'SUPPRESS_REDUNDANT_UPDATES_TRIGGER '\n // ihttps://www.postgresql.org/docs/devel/static/lo-funcs.html\n + 'LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE '\n //\n + 'GROUPING CAST ';\n\n const FUNCTIONS_RE =\n FUNCTIONS.trim()\n .split(' ')\n .map(function(val) { return val.split('|')[0]; })\n .join('|');\n\n return {\n name: 'PostgreSQL',\n aliases: [\n 'postgres',\n 'postgresql'\n ],\n supersetOf: \"sql\",\n case_insensitive: true,\n keywords: {\n keyword:\n SQL_KW + PLPGSQL_KW + ROLE_ATTRS,\n built_in:\n SQL_BI + PLPGSQL_BI + PLPGSQL_EXCEPTIONS\n },\n // Forbid some cunstructs from other languages to improve autodetect. In fact\n // \"[a-z]:\" is legal (as part of array slice), but improbabal.\n illegal: /:==|\\W\\s*\\(\\*|(^|\\s)\\$[a-z]|\\{\\{|[a-z]:\\s*$|\\.\\.\\.|TO:|DO:/,\n contains: [\n // special handling of some words, which are reserved only in some contexts\n {\n className: 'keyword',\n variants: [\n { begin: /\\bTEXT\\s*SEARCH\\b/ },\n { begin: /\\b(PRIMARY|FOREIGN|FOR(\\s+NO)?)\\s+KEY\\b/ },\n { begin: /\\bPARALLEL\\s+(UNSAFE|RESTRICTED|SAFE)\\b/ },\n { begin: /\\bSTORAGE\\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\\b/ },\n { begin: /\\bMATCH\\s+(FULL|PARTIAL|SIMPLE)\\b/ },\n { begin: /\\bNULLS\\s+(FIRST|LAST)\\b/ },\n { begin: /\\bEVENT\\s+TRIGGER\\b/ },\n { begin: /\\b(MAPPING|OR)\\s+REPLACE\\b/ },\n { begin: /\\b(FROM|TO)\\s+(PROGRAM|STDIN|STDOUT)\\b/ },\n { begin: /\\b(SHARE|EXCLUSIVE)\\s+MODE\\b/ },\n { begin: /\\b(LEFT|RIGHT)\\s+(OUTER\\s+)?JOIN\\b/ },\n { begin: /\\b(FETCH|MOVE)\\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\\b/ },\n { begin: /\\bPRESERVE\\s+ROWS\\b/ },\n { begin: /\\bDISCARD\\s+PLANS\\b/ },\n { begin: /\\bREFERENCING\\s+(OLD|NEW)\\b/ },\n { begin: /\\bSKIP\\s+LOCKED\\b/ },\n { begin: /\\bGROUPING\\s+SETS\\b/ },\n { begin: /\\b(BINARY|INSENSITIVE|SCROLL|NO\\s+SCROLL)\\s+(CURSOR|FOR)\\b/ },\n { begin: /\\b(WITH|WITHOUT)\\s+HOLD\\b/ },\n { begin: /\\bWITH\\s+(CASCADED|LOCAL)\\s+CHECK\\s+OPTION\\b/ },\n { begin: /\\bEXCLUDE\\s+(TIES|NO\\s+OTHERS)\\b/ },\n { begin: /\\bFORMAT\\s+(TEXT|XML|JSON|YAML)\\b/ },\n { begin: /\\bSET\\s+((SESSION|LOCAL)\\s+)?NAMES\\b/ },\n { begin: /\\bIS\\s+(NOT\\s+)?UNKNOWN\\b/ },\n { begin: /\\bSECURITY\\s+LABEL\\b/ },\n { begin: /\\bSTANDALONE\\s+(YES|NO|NO\\s+VALUE)\\b/ },\n { begin: /\\bWITH\\s+(NO\\s+)?DATA\\b/ },\n { begin: /\\b(FOREIGN|SET)\\s+DATA\\b/ },\n { begin: /\\bSET\\s+(CATALOG|CONSTRAINTS)\\b/ },\n { begin: /\\b(WITH|FOR)\\s+ORDINALITY\\b/ },\n { begin: /\\bIS\\s+(NOT\\s+)?DOCUMENT\\b/ },\n { begin: /\\bXML\\s+OPTION\\s+(DOCUMENT|CONTENT)\\b/ },\n { begin: /\\b(STRIP|PRESERVE)\\s+WHITESPACE\\b/ },\n { begin: /\\bNO\\s+(ACTION|MAXVALUE|MINVALUE)\\b/ },\n { begin: /\\bPARTITION\\s+BY\\s+(RANGE|LIST|HASH)\\b/ },\n { begin: /\\bAT\\s+TIME\\s+ZONE\\b/ },\n { begin: /\\bGRANTED\\s+BY\\b/ },\n { begin: /\\bRETURN\\s+(QUERY|NEXT)\\b/ },\n { begin: /\\b(ATTACH|DETACH)\\s+PARTITION\\b/ },\n { begin: /\\bFORCE\\s+ROW\\s+LEVEL\\s+SECURITY\\b/ },\n { begin: /\\b(INCLUDING|EXCLUDING)\\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\\b/ },\n { begin: /\\bAS\\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\\b/ }\n ]\n },\n // functions named as keywords, followed by '('\n { begin: /\\b(FORMAT|FAMILY|VERSION)\\s*\\(/\n // keywords: { built_in: 'FORMAT FAMILY VERSION' }\n },\n // INCLUDE ( ... ) in index_parameters in CREATE TABLE\n {\n begin: /\\bINCLUDE\\s*\\(/,\n keywords: 'INCLUDE'\n },\n // not highlight RANGE if not in frame_clause (not 100% correct, but seems satisfactory)\n { begin: /\\bRANGE(?!\\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/ },\n // disable highlighting in commands CREATE AGGREGATE/COLLATION/DATABASE/OPERTOR/TEXT SEARCH .../TYPE\n // and in PL/pgSQL RAISE ... USING\n { begin: /\\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\\s*=/ },\n // PG_smth; HAS_some_PRIVILEGE\n {\n // className: 'built_in',\n begin: /\\b(PG_\\w+?|HAS_[A-Z_]+_PRIVILEGE)\\b/,\n relevance: 10\n },\n // extract\n {\n begin: /\\bEXTRACT\\s*\\(/,\n end: /\\bFROM\\b/,\n returnEnd: true,\n keywords: {\n // built_in: 'EXTRACT',\n type: 'CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS '\n + 'MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR '\n + 'TIMEZONE_MINUTE WEEK YEAR' }\n },\n // xmlelement, xmlpi - special NAME\n {\n begin: /\\b(XMLELEMENT|XMLPI)\\s*\\(\\s*NAME/,\n keywords: {\n // built_in: 'XMLELEMENT XMLPI',\n keyword: 'NAME' }\n },\n // xmlparse, xmlserialize\n {\n begin: /\\b(XMLPARSE|XMLSERIALIZE)\\s*\\(\\s*(DOCUMENT|CONTENT)/,\n keywords: {\n // built_in: 'XMLPARSE XMLSERIALIZE',\n keyword: 'DOCUMENT CONTENT' }\n },\n // Sequences. We actually skip everything between CACHE|INCREMENT|MAXVALUE|MINVALUE and\n // nearest following numeric constant. Without with trick we find a lot of \"keywords\"\n // in 'avrasm' autodetection test...\n {\n beginKeywords: 'CACHE INCREMENT MAXVALUE MINVALUE',\n end: hljs.C_NUMBER_RE,\n returnEnd: true,\n keywords: 'BY CACHE INCREMENT MAXVALUE MINVALUE'\n },\n // WITH|WITHOUT TIME ZONE as part of datatype\n {\n className: 'type',\n begin: /\\b(WITH|WITHOUT)\\s+TIME\\s+ZONE\\b/\n },\n // INTERVAL optional fields\n {\n className: 'type',\n begin: /\\bINTERVAL\\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\\s+TO\\s+(MONTH|HOUR|MINUTE|SECOND))?\\b/\n },\n // Pseudo-types which allowed only as return type\n {\n begin: /\\bRETURNS\\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\\b/,\n keywords: {\n keyword: 'RETURNS',\n type: 'LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER'\n }\n },\n // Known functions - only when followed by '('\n { begin: '\\\\b(' + FUNCTIONS_RE + ')\\\\s*\\\\('\n // keywords: { built_in: FUNCTIONS }\n },\n // Types\n { begin: '\\\\.(' + TYPES_RE + ')\\\\b' // prevent highlight as type, say, 'oid' in 'pgclass.oid'\n },\n {\n begin: '\\\\b(' + TYPES_RE + ')\\\\s+PATH\\\\b', // in XMLTABLE\n keywords: {\n keyword: 'PATH', // hopefully no one would use PATH type in XMLTABLE...\n type: TYPES.replace('PATH ', '')\n }\n },\n {\n className: 'type',\n begin: '\\\\b(' + TYPES_RE + ')\\\\b'\n },\n // Strings, see https://www.postgresql.org/docs/11/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS\n {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n contains: [ { begin: '\\'\\'' } ]\n },\n {\n className: 'string',\n begin: '(e|E|u&|U&)\\'',\n end: '\\'',\n contains: [ { begin: '\\\\\\\\.' } ],\n relevance: 10\n },\n hljs.END_SAME_AS_BEGIN({\n begin: DOLLAR_STRING,\n end: DOLLAR_STRING,\n contains: [\n {\n // actually we want them all except SQL; listed are those with known implementations\n // and XML + JSON just in case\n subLanguage: [\n 'pgsql',\n 'perl',\n 'python',\n 'tcl',\n 'r',\n 'lua',\n 'java',\n 'php',\n 'ruby',\n 'bash',\n 'scheme',\n 'xml',\n 'json'\n ],\n endsWithParent: true\n }\n ]\n }),\n // identifiers in quotes\n {\n begin: '\"',\n end: '\"',\n contains: [ { begin: '\"\"' } ]\n },\n // numbers\n hljs.C_NUMBER_MODE,\n // comments\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n // PL/pgSQL staff\n // %ROWTYPE, %TYPE, $n\n {\n className: 'meta',\n variants: [\n { // %TYPE, %ROWTYPE\n begin: '%(ROW)?TYPE',\n relevance: 10\n },\n { // $n\n begin: '\\\\$\\\\d+' },\n { // #compiler option\n begin: '^#\\\\w',\n end: '$'\n }\n ]\n },\n // <<labeles>>\n {\n className: 'symbol',\n begin: LABEL,\n relevance: 10\n }\n ]\n };\n}\n\nmodule.exports = pgsql;\n","/*\nLanguage: PHP\nAuthor: Victor Karamzin <Victor.Karamzin@enterra-inc.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n const IDENT_RE = regex.concat(\n /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n NOT_PERL_ETC);\n // Will not detect camelCase classes\n const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n NOT_PERL_ETC);\n const VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE,\n };\n const PREPROCESSOR = {\n scope: 'meta',\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?=/ },\n // less relevant per PSR-1 which says not to use short-tags\n { begin: /<\\?/, relevance: 0.1 },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n scope: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n {\n begin: /\\{\\$/,\n end: /\\}/\n }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n const HEREDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*(\\w+)\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n const WHITESPACE = '[ \\t\\n]';\n const STRING = {\n scope: 'string',\n variants: [\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC\n ]\n };\n const NUMBER = {\n scope: 'number',\n variants: [\n { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const LITERALS = [\n \"false\",\n \"null\",\n \"true\"\n ];\n const KWS = [\n // Magic constants:\n // <https://www.php.net/manual/en/language.constants.predefined.php>\n \"__CLASS__\",\n \"__DIR__\",\n \"__FILE__\",\n \"__FUNCTION__\",\n \"__COMPILER_HALT_OFFSET__\",\n \"__LINE__\",\n \"__METHOD__\",\n \"__NAMESPACE__\",\n \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\",\n \"echo\",\n \"exit\",\n \"include\",\n \"include_once\",\n \"print\",\n \"require\",\n \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // <https://www.php.net/manual/en/reserved.php>\n // <https://www.php.net/manual/en/language.types.type-juggling.php>\n \"array\",\n \"abstract\",\n \"and\",\n \"as\",\n \"binary\",\n \"bool\",\n \"boolean\",\n \"break\",\n \"callable\",\n \"case\",\n \"catch\",\n \"class\",\n \"clone\",\n \"const\",\n \"continue\",\n \"declare\",\n \"default\",\n \"do\",\n \"double\",\n \"else\",\n \"elseif\",\n \"empty\",\n \"enddeclare\",\n \"endfor\",\n \"endforeach\",\n \"endif\",\n \"endswitch\",\n \"endwhile\",\n \"enum\",\n \"eval\",\n \"extends\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"foreach\",\n \"from\",\n \"global\",\n \"goto\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"insteadof\",\n \"int\",\n \"integer\",\n \"interface\",\n \"isset\",\n \"iterable\",\n \"list\",\n \"match|0\",\n \"mixed\",\n \"new\",\n \"never\",\n \"object\",\n \"or\",\n \"private\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"real\",\n \"return\",\n \"string\",\n \"switch\",\n \"throw\",\n \"trait\",\n \"try\",\n \"unset\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"xor\",\n \"yield\"\n ];\n\n const BUILT_INS = [\n // Standard PHP library:\n // <https://www.php.net/manual/en/book.spl.php>\n \"Error|0\",\n \"AppendIterator\",\n \"ArgumentCountError\",\n \"ArithmeticError\",\n \"ArrayIterator\",\n \"ArrayObject\",\n \"AssertionError\",\n \"BadFunctionCallException\",\n \"BadMethodCallException\",\n \"CachingIterator\",\n \"CallbackFilterIterator\",\n \"CompileError\",\n \"Countable\",\n \"DirectoryIterator\",\n \"DivisionByZeroError\",\n \"DomainException\",\n \"EmptyIterator\",\n \"ErrorException\",\n \"Exception\",\n \"FilesystemIterator\",\n \"FilterIterator\",\n \"GlobIterator\",\n \"InfiniteIterator\",\n \"InvalidArgumentException\",\n \"IteratorIterator\",\n \"LengthException\",\n \"LimitIterator\",\n \"LogicException\",\n \"MultipleIterator\",\n \"NoRewindIterator\",\n \"OutOfBoundsException\",\n \"OutOfRangeException\",\n \"OuterIterator\",\n \"OverflowException\",\n \"ParentIterator\",\n \"ParseError\",\n \"RangeException\",\n \"RecursiveArrayIterator\",\n \"RecursiveCachingIterator\",\n \"RecursiveCallbackFilterIterator\",\n \"RecursiveDirectoryIterator\",\n \"RecursiveFilterIterator\",\n \"RecursiveIterator\",\n \"RecursiveIteratorIterator\",\n \"RecursiveRegexIterator\",\n \"RecursiveTreeIterator\",\n \"RegexIterator\",\n \"RuntimeException\",\n \"SeekableIterator\",\n \"SplDoublyLinkedList\",\n \"SplFileInfo\",\n \"SplFileObject\",\n \"SplFixedArray\",\n \"SplHeap\",\n \"SplMaxHeap\",\n \"SplMinHeap\",\n \"SplObjectStorage\",\n \"SplObserver\",\n \"SplPriorityQueue\",\n \"SplQueue\",\n \"SplStack\",\n \"SplSubject\",\n \"SplTempFileObject\",\n \"TypeError\",\n \"UnderflowException\",\n \"UnexpectedValueException\",\n \"UnhandledMatchError\",\n // Reserved interfaces:\n // <https://www.php.net/manual/en/reserved.interfaces.php>\n \"ArrayAccess\",\n \"BackedEnum\",\n \"Closure\",\n \"Fiber\",\n \"Generator\",\n \"Iterator\",\n \"IteratorAggregate\",\n \"Serializable\",\n \"Stringable\",\n \"Throwable\",\n \"Traversable\",\n \"UnitEnum\",\n \"WeakReference\",\n \"WeakMap\",\n // Reserved classes:\n // <https://www.php.net/manual/en/reserved.classes.php>\n \"Directory\",\n \"__PHP_Incomplete_Class\",\n \"parent\",\n \"php_user_filter\",\n \"self\",\n \"static\",\n \"stdClass\"\n ];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n const dualCase = (items) => {\n /** @type string[] */\n const result = [];\n items.forEach(item => {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n\n const KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS,\n };\n\n /**\n * @param {string[]} items */\n const normalizeKeywords = (items) => {\n return items.map(item => {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n\n const CONSTRUCTOR_CALL = { variants: [\n {\n match: [\n /new/,\n regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n PASCAL_CASE_CLASS_NAME_RE,\n ],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\",\n },\n }\n ] };\n\n const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n {\n match: [\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: { 2: \"variable.constant\", },\n },\n {\n match: [\n /::/,\n /class/,\n ],\n scope: { 2: \"variable.language\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\",\n },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n \"::\",\n regex.lookahead(/(?!class\\b)/)\n ),\n ],\n scope: { 1: \"title.class\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n /::/,\n /class/,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\",\n },\n }\n ] };\n\n const NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n };\n const PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n NAMED_ARGUMENT,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ],\n };\n const FUNCTION_INVOKE = {\n relevance: 0,\n match: [\n /\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n IDENT_RE,\n regex.concat(WHITESPACE, \"*\"),\n regex.lookahead(/(?=\\()/)\n ],\n scope: { 3: \"title.function.invoke\", },\n contains: [ PARAMS_MODE ]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n const ATTRIBUTE_CONTAINS = [\n NAMED_ARGUMENT,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ];\n\n const ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*/, PASCAL_CASE_CLASS_NAME_RE),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n {\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n 'self',\n ...ATTRIBUTE_CONTAINS,\n ]\n },\n ...ATTRIBUTE_CONTAINS,\n {\n scope: 'meta',\n match: PASCAL_CASE_CLASS_NAME_RE\n }\n ]\n };\n\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n ATTRIBUTES,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$'),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [\n {\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }\n ] }\n ),\n {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }\n ]\n }\n },\n PREPROCESSOR,\n {\n scope: 'variable.language',\n match: /\\$this\\b/\n },\n VARIABLE,\n FUNCTION_INVOKE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n {\n match: [\n /const/,\n /\\s/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\",\n },\n },\n CONSTRUCTOR_CALL,\n {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n { beginKeywords: 'use', },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n },\n ]\n },\n {\n scope: 'class',\n variants: [\n {\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n },\n {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n STRING,\n NUMBER,\n ]\n };\n}\n\nmodule.exports = php;\n","/*\nLanguage: Plain text\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nDescription: Plain text without any highlighting.\nCategory: common\n*/\n\nfunction plaintext(hljs) {\n return {\n name: 'Plain text',\n aliases: [\n 'text',\n 'txt'\n ],\n disableAutodetect: true\n };\n}\n\nmodule.exports = plaintext;\n","/*\nLanguage: PowerShell\nDescription: PowerShell is a task-based command-line shell and scripting language built on .NET.\nAuthor: David Mohundro <david@mohundro.com>\nContributors: Nicholas Blumhardt <nblumhardt@nblumhardt.com>, Victor Zhou <OiCMudkips@users.noreply.github.com>, Nicolas Le Gall <contact@nlegall.fr>\nWebsite: https://docs.microsoft.com/en-us/powershell/\n*/\n\nfunction powershell(hljs) {\n const TYPES = [\n \"string\",\n \"char\",\n \"byte\",\n \"int\",\n \"long\",\n \"bool\",\n \"decimal\",\n \"single\",\n \"double\",\n \"DateTime\",\n \"xml\",\n \"array\",\n \"hashtable\",\n \"void\"\n ];\n\n // https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands\n const VALID_VERBS =\n 'Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|'\n + 'Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|'\n + 'Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|'\n + 'Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|'\n + 'ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|'\n + 'Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|'\n + 'Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|'\n + 'Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|'\n + 'Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|'\n + 'Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|'\n + 'Unprotect|Use|ForEach|Sort|Tee|Where';\n\n const COMPARISON_OPERATORS =\n '-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|'\n + '-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|'\n + '-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|'\n + '-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|'\n + '-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|'\n + '-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|'\n + '-split|-wildcard|-xor';\n\n const KEYWORDS = {\n $pattern: /-?[A-z\\.\\-]+\\b/,\n keyword:\n 'if else foreach return do while until elseif begin for trap data dynamicparam '\n + 'end break throw param continue finally in switch exit filter try process catch '\n + 'hidden static parameter',\n // \"echo\" relevance has been set to 0 to avoid auto-detect conflicts with shell transcripts\n built_in:\n 'ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp '\n + 'cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx '\n + 'fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group '\n + 'gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi '\n + 'iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh '\n + 'popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp '\n + 'rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp '\n + 'spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write'\n // TODO: 'validate[A-Z]+' can't work in keywords\n };\n\n const TITLE_NAME_RE = /\\w[\\w\\d]*((-)[\\w\\d]+)*/;\n\n const BACKTICK_ESCAPE = {\n begin: '`[\\\\s\\\\S]',\n relevance: 0\n };\n\n const VAR = {\n className: 'variable',\n variants: [\n { begin: /\\$\\B/ },\n {\n className: 'keyword',\n begin: /\\$this/\n },\n { begin: /\\$[\\w\\d][\\w\\d_:]*/ }\n ]\n };\n\n const LITERAL = {\n className: 'literal',\n begin: /\\$(null|true|false)\\b/\n };\n\n const QUOTE_STRING = {\n className: \"string\",\n variants: [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /@\"/,\n end: /^\"@/\n }\n ],\n contains: [\n BACKTICK_ESCAPE,\n VAR,\n {\n className: 'variable',\n begin: /\\$[A-z]/,\n end: /[^A-z]/\n }\n ]\n };\n\n const APOS_STRING = {\n className: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /@'/,\n end: /^'@/\n }\n ]\n };\n\n const PS_HELPTAGS = {\n className: \"doctag\",\n variants: [\n /* no paramater help tags */\n { begin: /\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/ },\n /* one parameter help tags */\n { begin: /\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/ }\n ]\n };\n\n const PS_COMMENT = hljs.inherit(\n hljs.COMMENT(null, null),\n {\n variants: [\n /* single-line comment */\n {\n begin: /#/,\n end: /$/\n },\n /* multi-line comment */\n {\n begin: /<#/,\n end: /#>/\n }\n ],\n contains: [ PS_HELPTAGS ]\n }\n );\n\n const CMDLETS = {\n className: 'built_in',\n variants: [ { begin: '('.concat(VALID_VERBS, ')+(-)[\\\\w\\\\d]+') } ]\n };\n\n const PS_CLASS = {\n className: 'class',\n beginKeywords: 'class enum',\n end: /\\s*[{]/,\n excludeEnd: true,\n relevance: 0,\n contains: [ hljs.TITLE_MODE ]\n };\n\n const PS_FUNCTION = {\n className: 'function',\n begin: /function\\s+/,\n end: /\\s*\\{|$/,\n excludeEnd: true,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n begin: \"function\",\n relevance: 0,\n className: \"keyword\"\n },\n {\n className: \"title\",\n begin: TITLE_NAME_RE,\n relevance: 0\n },\n {\n begin: /\\(/,\n end: /\\)/,\n className: \"params\",\n relevance: 0,\n contains: [ VAR ]\n }\n // CMDLETS\n ]\n };\n\n // Using statment, plus type, plus assembly name.\n const PS_USING = {\n begin: /using\\s/,\n end: /$/,\n returnBegin: true,\n contains: [\n QUOTE_STRING,\n APOS_STRING,\n {\n className: 'keyword',\n begin: /(using|assembly|command|module|namespace|type)/\n }\n ]\n };\n\n // Comperison operators & function named parameters.\n const PS_ARGUMENTS = { variants: [\n // PS literals are pretty verbose so it's a good idea to accent them a bit.\n {\n className: 'operator',\n begin: '('.concat(COMPARISON_OPERATORS, ')\\\\b')\n },\n {\n className: 'literal',\n begin: /(-){1,2}[\\w\\d-]+/,\n relevance: 0\n }\n ] };\n\n const HASH_SIGNS = {\n className: 'selector-tag',\n begin: /@\\B/,\n relevance: 0\n };\n\n // It's a very general rule so I'll narrow it a bit with some strict boundaries\n // to avoid any possible false-positive collisions!\n const PS_METHODS = {\n className: 'function',\n begin: /\\[.*\\]\\s*[\\w]+[ ]??\\(/,\n end: /$/,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'keyword',\n begin: '('.concat(\n KEYWORDS.keyword.toString().replace(/\\s/g, '|'\n ), ')\\\\b'),\n endsParent: true,\n relevance: 0\n },\n hljs.inherit(hljs.TITLE_MODE, { endsParent: true })\n ]\n };\n\n const GENTLEMANS_SET = [\n // STATIC_MEMBER,\n PS_METHODS,\n PS_COMMENT,\n BACKTICK_ESCAPE,\n hljs.NUMBER_MODE,\n QUOTE_STRING,\n APOS_STRING,\n // PS_NEW_OBJECT_TYPE,\n CMDLETS,\n VAR,\n LITERAL,\n HASH_SIGNS\n ];\n\n const PS_TYPE = {\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [].concat(\n 'self',\n GENTLEMANS_SET,\n {\n begin: \"(\" + TYPES.join(\"|\") + \")\",\n className: \"built_in\",\n relevance: 0\n },\n {\n className: 'type',\n begin: /[\\.\\w\\d]+/,\n relevance: 0\n }\n )\n };\n\n PS_METHODS.contains.unshift(PS_TYPE);\n\n return {\n name: 'PowerShell',\n aliases: [\n \"pwsh\",\n \"ps\",\n \"ps1\"\n ],\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: GENTLEMANS_SET.concat(\n PS_CLASS,\n PS_FUNCTION,\n PS_USING,\n PS_ARGUMENTS,\n PS_TYPE\n )\n };\n}\n\nmodule.exports = powershell;\n","/*\nLanguage: .properties\nContributors: Valentin Aitken <valentin@nalisbg.com>, Egor Rogov <e.rogov@postgrespro.ru>\nWebsite: https://en.wikipedia.org/wiki/.properties\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction properties(hljs) {\n // whitespaces: space, tab, formfeed\n const WS0 = '[ \\\\t\\\\f]*';\n const WS1 = '[ \\\\t\\\\f]+';\n // delimiter\n const EQUAL_DELIM = WS0 + '[:=]' + WS0;\n const WS_DELIM = WS1;\n const DELIM = '(' + EQUAL_DELIM + '|' + WS_DELIM + ')';\n const KEY = '([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+';\n\n const DELIM_AND_VALUE = {\n // skip DELIM\n end: DELIM,\n relevance: 0,\n starts: {\n // value: everything until end of line (again, taking into account backslashes)\n className: 'string',\n end: /$/,\n relevance: 0,\n contains: [\n { begin: '\\\\\\\\\\\\\\\\' },\n { begin: '\\\\\\\\\\\\n' }\n ]\n }\n };\n\n return {\n name: '.properties',\n disableAutodetect: true,\n case_insensitive: true,\n illegal: /\\S/,\n contains: [\n hljs.COMMENT('^\\\\s*[!#]', '$'),\n // key: everything until whitespace or = or : (taking into account backslashes)\n // case of a key-value pair\n {\n returnBegin: true,\n variants: [\n { begin: KEY + EQUAL_DELIM },\n { begin: KEY + WS_DELIM }\n ],\n contains: [\n {\n className: 'attr',\n begin: KEY,\n endsParent: true\n }\n ],\n starts: DELIM_AND_VALUE\n },\n // case of an empty key\n {\n className: 'attr',\n begin: KEY + WS0 + '$'\n }\n ]\n };\n}\n\nmodule.exports = properties;\n","/*\nLanguage: Protocol Buffers\nAuthor: Dan Tao <daniel.tao@gmail.com>\nDescription: Protocol buffer message definition format\nWebsite: https://developers.google.com/protocol-buffers/docs/proto3\nCategory: protocols\n*/\n\nfunction protobuf(hljs) {\n const KEYWORDS = [\n \"package\",\n \"import\",\n \"option\",\n \"optional\",\n \"required\",\n \"repeated\",\n \"group\",\n \"oneof\"\n ];\n const TYPES = [\n \"double\",\n \"float\",\n \"int32\",\n \"int64\",\n \"uint32\",\n \"uint64\",\n \"sint32\",\n \"sint64\",\n \"fixed32\",\n \"fixed64\",\n \"sfixed32\",\n \"sfixed64\",\n \"bool\",\n \"string\",\n \"bytes\"\n ];\n const CLASS_DEFINITION = {\n match: [\n /(message|enum|service)\\s+/,\n hljs.IDENT_RE\n ],\n scope: {\n 1: \"keyword\",\n 2: \"title.class\"\n }\n };\n\n return {\n name: 'Protocol Buffers',\n keywords: {\n keyword: KEYWORDS,\n type: TYPES,\n literal: [\n 'true',\n 'false'\n ]\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n CLASS_DEFINITION,\n {\n className: 'function',\n beginKeywords: 'rpc',\n end: /[{;]/,\n excludeEnd: true,\n keywords: 'rpc returns'\n },\n { // match enum items (relevance)\n // BLAH = ...;\n begin: /^\\s*[A-Z_]+(?=\\s*=[^\\n]+;$)/ }\n ]\n };\n}\n\nmodule.exports = protobuf;\n","/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\n\nfunction python(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[\\p{XID_Start}_]\\p{XID_Continue}*/u;\n const RESERVED_WORDS = [\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'case',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'match',\n 'nonlocal|10',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield'\n ];\n\n const BUILT_INS = [\n '__import__',\n 'abs',\n 'all',\n 'any',\n 'ascii',\n 'bin',\n 'bool',\n 'breakpoint',\n 'bytearray',\n 'bytes',\n 'callable',\n 'chr',\n 'classmethod',\n 'compile',\n 'complex',\n 'delattr',\n 'dict',\n 'dir',\n 'divmod',\n 'enumerate',\n 'eval',\n 'exec',\n 'filter',\n 'float',\n 'format',\n 'frozenset',\n 'getattr',\n 'globals',\n 'hasattr',\n 'hash',\n 'help',\n 'hex',\n 'id',\n 'input',\n 'int',\n 'isinstance',\n 'issubclass',\n 'iter',\n 'len',\n 'list',\n 'locals',\n 'map',\n 'max',\n 'memoryview',\n 'min',\n 'next',\n 'object',\n 'oct',\n 'open',\n 'ord',\n 'pow',\n 'print',\n 'property',\n 'range',\n 'repr',\n 'reversed',\n 'round',\n 'set',\n 'setattr',\n 'slice',\n 'sorted',\n 'staticmethod',\n 'str',\n 'sum',\n 'super',\n 'tuple',\n 'type',\n 'vars',\n 'zip'\n ];\n\n const LITERALS = [\n '__debug__',\n 'Ellipsis',\n 'False',\n 'None',\n 'NotImplemented',\n 'True'\n ];\n\n // https://docs.python.org/3/library/typing.html\n // TODO: Could these be supplemented by a CamelCase matcher in certain\n // contexts, leaving these remaining only for relevance hinting?\n const TYPES = [\n \"Any\",\n \"Callable\",\n \"Coroutine\",\n \"Dict\",\n \"List\",\n \"Literal\",\n \"Generic\",\n \"Optional\",\n \"Sequence\",\n \"Set\",\n \"Tuple\",\n \"Type\",\n \"Union\"\n ];\n\n const KEYWORDS = {\n $pattern: /[A-Za-z]\\w+|__\\w+__/,\n keyword: RESERVED_WORDS,\n built_in: BUILT_INS,\n literal: LITERALS,\n type: TYPES\n };\n\n const PROMPT = {\n className: 'meta',\n begin: /^(>>>|\\.\\.\\.) /\n };\n\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS,\n illegal: /#/\n };\n\n const LITERAL_BRACKET = {\n begin: /\\{\\{/,\n relevance: 0\n };\n\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([uU]|[rR])'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /([uU]|[rR])\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])'/,\n end: /'/\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n end: /\"/\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'/,\n end: /'/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n const digitpart = '[0-9](_?[0-9])*';\n const pointfloat = `(\\\\b(${digitpart}))?\\\\.(${digitpart})|\\\\b(${digitpart})\\\\.`;\n // Whitespace after a number (or any lexical token) is needed only if its absence\n // would change the tokenization\n // https://docs.python.org/3.9/reference/lexical_analysis.html#whitespace-between-tokens\n // We deviate slightly, requiring a word boundary or a keyword\n // to avoid accidentally recognizing *prefixes* (e.g., `0` in `0x41` or `08` or `0__1`)\n const lookahead = `\\\\b|${RESERVED_WORDS.join('|')}`;\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // exponentfloat, pointfloat\n // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n // optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n // Note: no leading \\b because floats can start with a decimal point\n // and we don't want to mishandle e.g. `fn(.5)`,\n // no trailing \\b for pointfloat because it can end with a decimal point\n // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n // because both MUST contain a decimal point and so cannot be confused with\n // the interior part of an identifier\n {\n begin: `(\\\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?(?=${lookahead})`\n },\n {\n begin: `(${pointfloat})[jJ]?`\n },\n\n // decinteger, bininteger, octinteger, hexinteger\n // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n // optionally \"long\" in Python 2\n // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n // decinteger is optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[bB](_?[01])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[oO](_?[0-7])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${lookahead})`\n },\n\n // imagnumber (digitpart-based)\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b(${digitpart})[jJ](?=${lookahead})`\n }\n ]\n };\n const COMMENT_TYPE = {\n className: \"comment\",\n begin: regex.lookahead(/# type:/),\n end: /$/,\n keywords: KEYWORDS,\n contains: [\n { // prevent keywords from coloring `type`\n begin: /# type:/\n },\n // comment within a datatype comment includes no keywords\n {\n begin: /#/,\n end: /\\b\\B/,\n endsWithParent: true\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n variants: [\n // Exclude params in functions without params\n {\n className: \"\",\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n PROMPT,\n NUMBER,\n STRING,\n hljs.HASH_COMMENT_MODE\n ]\n }\n ]\n };\n SUBST.contains = [\n STRING,\n NUMBER,\n PROMPT\n ];\n\n return {\n name: 'Python',\n aliases: [\n 'py',\n 'gyp',\n 'ipython'\n ],\n unicodeRegex: true,\n keywords: KEYWORDS,\n illegal: /(<\\/|->|\\?)|=>/,\n contains: [\n PROMPT,\n NUMBER,\n {\n // very common convention\n begin: /\\bself\\b/\n },\n {\n // eat \"if\" prior to string so that it won't accidentally be\n // labeled as an f-string\n beginKeywords: \"if\",\n relevance: 0\n },\n STRING,\n COMMENT_TYPE,\n hljs.HASH_COMMENT_MODE,\n {\n match: [\n /\\bdef/, /\\s+/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [ PARAMS ]\n },\n {\n variants: [\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE, /\\s*/,\n /\\(\\s*/, IDENT_RE,/\\s*\\)/\n ],\n },\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE\n ],\n }\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 6: \"title.class.inherited\",\n }\n },\n {\n className: 'meta',\n begin: /^[\\t ]*@/,\n end: /(?=#)|$/,\n contains: [\n NUMBER,\n PARAMS,\n STRING\n ]\n }\n ]\n };\n}\n\nmodule.exports = python;\n","/*\nLanguage: Ruby\nDescription: Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.\nWebsite: https://www.ruby-lang.org/\nAuthor: Anton Kovalyov <anton@kovalyov.net>\nContributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>, Pascal Hurni <phi@ruby-reactive.org>, Cedric Sohrauer <sohrauer@googlemail.com>\nCategory: common\n*/\n\nfunction ruby(hljs) {\n const regex = hljs.regex;\n const RUBY_METHOD_RE = '([a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?)';\n // TODO: move concepts like CAMEL_CASE into `modes.js`\n const CLASS_NAME_RE = regex.either(\n /\\b([A-Z]+[a-z0-9]+)+/,\n // ends in caps\n /\\b([A-Z]+[a-z0-9]+)+[A-Z]+/,\n )\n ;\n const CLASS_NAME_WITH_NAMESPACE_RE = regex.concat(CLASS_NAME_RE, /(::\\w+)*/);\n const RUBY_KEYWORDS = {\n \"variable.constant\": [\n \"__FILE__\",\n \"__LINE__\"\n ],\n \"variable.language\": [\n \"self\",\n \"super\",\n ],\n keyword: [\n \"alias\",\n \"and\",\n \"attr_accessor\",\n \"attr_reader\",\n \"attr_writer\",\n \"begin\",\n \"BEGIN\",\n \"break\",\n \"case\",\n \"class\",\n \"defined\",\n \"do\",\n \"else\",\n \"elsif\",\n \"end\",\n \"END\",\n \"ensure\",\n \"for\",\n \"if\",\n \"in\",\n \"include\",\n \"module\",\n \"next\",\n \"not\",\n \"or\",\n \"redo\",\n \"require\",\n \"rescue\",\n \"retry\",\n \"return\",\n \"then\",\n \"undef\",\n \"unless\",\n \"until\",\n \"when\",\n \"while\",\n \"yield\",\n ],\n built_in: [\n \"proc\",\n \"lambda\"\n ],\n literal: [\n \"true\",\n \"false\",\n \"nil\"\n ]\n };\n const YARDOCTAG = {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n };\n const IRB_OBJECT = {\n begin: '#<',\n end: '>'\n };\n const COMMENT_MODES = [\n hljs.COMMENT(\n '#',\n '$',\n { contains: [ YARDOCTAG ] }\n ),\n hljs.COMMENT(\n '^=begin',\n '^=end',\n {\n contains: [ YARDOCTAG ],\n relevance: 10\n }\n ),\n hljs.COMMENT('^__END__', hljs.MATCH_NOTHING_RE)\n ];\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: RUBY_KEYWORDS\n };\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /`/,\n end: /`/\n },\n {\n begin: /%[qQwWx]?\\(/,\n end: /\\)/\n },\n {\n begin: /%[qQwWx]?\\[/,\n end: /\\]/\n },\n {\n begin: /%[qQwWx]?\\{/,\n end: /\\}/\n },\n {\n begin: /%[qQwWx]?</,\n end: />/\n },\n {\n begin: /%[qQwWx]?\\//,\n end: /\\//\n },\n {\n begin: /%[qQwWx]?%/,\n end: /%/\n },\n {\n begin: /%[qQwWx]?-/,\n end: /-/\n },\n {\n begin: /%[qQwWx]?\\|/,\n end: /\\|/\n },\n // in the following expressions, \\B in the beginning suppresses recognition of ?-sequences\n // where ? is the last character of a preceding identifier, as in: `func?4`\n { begin: /\\B\\?(\\\\\\d{1,3})/ },\n { begin: /\\B\\?(\\\\x[A-Fa-f0-9]{1,2})/ },\n { begin: /\\B\\?(\\\\u\\{?[A-Fa-f0-9]{1,6}\\}?)/ },\n { begin: /\\B\\?(\\\\M-\\\\C-|\\\\M-\\\\c|\\\\c\\\\M-|\\\\M-|\\\\C-\\\\M-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\(c|C-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\?\\S/ },\n // heredocs\n {\n // this guard makes sure that we have an entire heredoc and not a false\n // positive (auto-detect, etc.)\n begin: regex.concat(\n /<<[-~]?'?/,\n regex.lookahead(/(\\w+)(?=\\W)[^\\n]*\\n(?:[^\\n]*\\n)*?\\s*\\1\\b/)\n ),\n contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n })\n ]\n }\n ]\n };\n\n // Ruby syntax is underdocumented, but this grammar seems to be accurate\n // as of version 2.7.2 (confirmed with (irb and `Ripper.sexp(...)`)\n // https://docs.ruby-lang.org/en/2.7.0/doc/syntax/literals_rdoc.html#label-Numbers\n const decimal = '[1-9](_?[0-9])*|0';\n const digits = '[0-9](_?[0-9])*';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal integer/float, optionally exponential or rational, optionally imaginary\n { begin: `\\\\b(${decimal})(\\\\.(${digits}))?([eE][+-]?(${digits})|r)?i?\\\\b` },\n\n // explicit decimal/binary/octal/hexadecimal integer,\n // optionally rational and/or imaginary\n { begin: \"\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\b\" },\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\b\" },\n\n // 0-prefixed implicit octal integer, optionally rational and/or imaginary\n { begin: \"\\\\b0(_?[0-7])+r?i?\\\\b\" }\n ]\n };\n\n const PARAMS = {\n variants: [\n {\n match: /\\(\\)/,\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /(?=\\))/,\n excludeBegin: true,\n endsParent: true,\n keywords: RUBY_KEYWORDS,\n }\n ]\n };\n\n const CLASS_DEFINITION = {\n variants: [\n {\n match: [\n /class\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\s+<\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n },\n {\n match: [\n /class\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n }\n ],\n scope: {\n 2: \"title.class\",\n 4: \"title.class.inherited\"\n },\n keywords: RUBY_KEYWORDS\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n const METHOD_DEFINITION = {\n match: [\n /def/, /\\s+/,\n RUBY_METHOD_RE\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n const OBJECT_CREATION = {\n relevance: 0,\n match: [\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\.new[ (]/\n ],\n scope: {\n 1: \"title.class\"\n }\n };\n\n const RUBY_DEFAULT_CONTAINS = [\n STRING,\n CLASS_DEFINITION,\n OBJECT_CREATION,\n UPPER_CASE_CONSTANT,\n METHOD_DEFINITION,\n {\n // swallow namespace qualifiers before symbols\n begin: hljs.IDENT_RE + '::' },\n {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ':(?!\\\\s)',\n contains: [\n STRING,\n { begin: RUBY_METHOD_RE }\n ],\n relevance: 0\n },\n NUMBER,\n {\n // negative-look forward attempts to prevent false matches like:\n // @ident@ or $ident$ that might indicate this is not ruby at all\n className: \"variable\",\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + `(?![A-Za-z])(?![@$?'])`\n },\n {\n className: 'params',\n begin: /\\|/,\n end: /\\|/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0, // this could be a lot of things (in other languages) other than params\n keywords: RUBY_KEYWORDS\n },\n { // regexp container\n begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\\\s*',\n keywords: 'unless',\n contains: [\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n illegal: /\\n/,\n variants: [\n {\n begin: '/',\n end: '/[a-z]*'\n },\n {\n begin: /%r\\{/,\n end: /\\}[a-z]*/\n },\n {\n begin: '%r\\\\(',\n end: '\\\\)[a-z]*'\n },\n {\n begin: '%r!',\n end: '![a-z]*'\n },\n {\n begin: '%r\\\\[',\n end: '\\\\][a-z]*'\n }\n ]\n }\n ].concat(IRB_OBJECT, COMMENT_MODES),\n relevance: 0\n }\n ].concat(IRB_OBJECT, COMMENT_MODES);\n\n SUBST.contains = RUBY_DEFAULT_CONTAINS;\n PARAMS.contains = RUBY_DEFAULT_CONTAINS;\n\n // >>\n // ?>\n const SIMPLE_PROMPT = \"[>?]>\";\n // irb(main):001:0>\n const DEFAULT_PROMPT = \"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+[>*]\";\n const RVM_PROMPT = \"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d+(p\\\\d+)?[^\\\\d][^>]+>\";\n\n const IRB_DEFAULT = [\n {\n begin: /^\\s*=>/,\n starts: {\n end: '$',\n contains: RUBY_DEFAULT_CONTAINS\n }\n },\n {\n className: 'meta.prompt',\n begin: '^(' + SIMPLE_PROMPT + \"|\" + DEFAULT_PROMPT + '|' + RVM_PROMPT + ')(?=[ ])',\n starts: {\n end: '$',\n keywords: RUBY_KEYWORDS,\n contains: RUBY_DEFAULT_CONTAINS\n }\n }\n ];\n\n COMMENT_MODES.unshift(IRB_OBJECT);\n\n return {\n name: 'Ruby',\n aliases: [\n 'rb',\n 'gemspec',\n 'podspec',\n 'thor',\n 'irb'\n ],\n keywords: RUBY_KEYWORDS,\n illegal: /\\/\\*/,\n contains: [ hljs.SHEBANG({ binary: \"ruby\" }) ]\n .concat(IRB_DEFAULT)\n .concat(COMMENT_MODES)\n .concat(RUBY_DEFAULT_CONTAINS)\n };\n}\n\nmodule.exports = ruby;\n","/*\nLanguage: Rust\nAuthor: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>\nContributors: Roman Shmatov <romanshmatov@gmail.com>, Kasper Andersen <kma_untrusted@protonmail.com>\nWebsite: https://www.rust-lang.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\nfunction rust(hljs) {\n const regex = hljs.regex;\n const FUNCTION_INVOKE = {\n className: \"title.function.invoke\",\n relevance: 0,\n begin: regex.concat(\n /\\b/,\n /(?!let\\b)/,\n hljs.IDENT_RE,\n regex.lookahead(/\\s*\\(/))\n };\n const NUMBER_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\\?';\n const KEYWORDS = [\n \"abstract\",\n \"as\",\n \"async\",\n \"await\",\n \"become\",\n \"box\",\n \"break\",\n \"const\",\n \"continue\",\n \"crate\",\n \"do\",\n \"dyn\",\n \"else\",\n \"enum\",\n \"extern\",\n \"false\",\n \"final\",\n \"fn\",\n \"for\",\n \"if\",\n \"impl\",\n \"in\",\n \"let\",\n \"loop\",\n \"macro\",\n \"match\",\n \"mod\",\n \"move\",\n \"mut\",\n \"override\",\n \"priv\",\n \"pub\",\n \"ref\",\n \"return\",\n \"self\",\n \"Self\",\n \"static\",\n \"struct\",\n \"super\",\n \"trait\",\n \"true\",\n \"try\",\n \"type\",\n \"typeof\",\n \"unsafe\",\n \"unsized\",\n \"use\",\n \"virtual\",\n \"where\",\n \"while\",\n \"yield\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"Some\",\n \"None\",\n \"Ok\",\n \"Err\"\n ];\n const BUILTINS = [\n // functions\n 'drop ',\n // traits\n \"Copy\",\n \"Send\",\n \"Sized\",\n \"Sync\",\n \"Drop\",\n \"Fn\",\n \"FnMut\",\n \"FnOnce\",\n \"ToOwned\",\n \"Clone\",\n \"Debug\",\n \"PartialEq\",\n \"PartialOrd\",\n \"Eq\",\n \"Ord\",\n \"AsRef\",\n \"AsMut\",\n \"Into\",\n \"From\",\n \"Default\",\n \"Iterator\",\n \"Extend\",\n \"IntoIterator\",\n \"DoubleEndedIterator\",\n \"ExactSizeIterator\",\n \"SliceConcatExt\",\n \"ToString\",\n // macros\n \"assert!\",\n \"assert_eq!\",\n \"bitflags!\",\n \"bytes!\",\n \"cfg!\",\n \"col!\",\n \"concat!\",\n \"concat_idents!\",\n \"debug_assert!\",\n \"debug_assert_eq!\",\n \"env!\",\n \"panic!\",\n \"file!\",\n \"format!\",\n \"format_args!\",\n \"include_bytes!\",\n \"include_str!\",\n \"line!\",\n \"local_data_key!\",\n \"module_path!\",\n \"option_env!\",\n \"print!\",\n \"println!\",\n \"select!\",\n \"stringify!\",\n \"try!\",\n \"unimplemented!\",\n \"unreachable!\",\n \"vec!\",\n \"write!\",\n \"writeln!\",\n \"macro_rules!\",\n \"assert_ne!\",\n \"debug_assert_ne!\"\n ];\n const TYPES = [\n \"i8\",\n \"i16\",\n \"i32\",\n \"i64\",\n \"i128\",\n \"isize\",\n \"u8\",\n \"u16\",\n \"u32\",\n \"u64\",\n \"u128\",\n \"usize\",\n \"f32\",\n \"f64\",\n \"str\",\n \"char\",\n \"bool\",\n \"Box\",\n \"Option\",\n \"Result\",\n \"String\",\n \"Vec\"\n ];\n return {\n name: 'Rust',\n aliases: [ 'rs' ],\n keywords: {\n $pattern: hljs.IDENT_RE + '!?',\n type: TYPES,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILTINS\n },\n illegal: '</',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.COMMENT('/\\\\*', '\\\\*/', { contains: [ 'self' ] }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n begin: /b?\"/,\n illegal: null\n }),\n {\n className: 'string',\n variants: [\n { begin: /b?r(#*)\"(.|\\n)*?\"\\1(?!#)/ },\n { begin: /b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/ }\n ]\n },\n {\n className: 'symbol',\n begin: /'[a-zA-Z_][a-zA-Z0-9_]*/\n },\n {\n className: 'number',\n variants: [\n { begin: '\\\\b0b([01_]+)' + NUMBER_SUFFIX },\n { begin: '\\\\b0o([0-7_]+)' + NUMBER_SUFFIX },\n { begin: '\\\\b0x([A-Fa-f0-9_]+)' + NUMBER_SUFFIX },\n { begin: '\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)'\n + NUMBER_SUFFIX }\n ],\n relevance: 0\n },\n {\n begin: [\n /fn/,\n /\\s+/,\n hljs.UNDERSCORE_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n }\n },\n {\n className: 'meta',\n begin: '#!?\\\\[',\n end: '\\\\]',\n contains: [\n {\n className: 'string',\n begin: /\"/,\n end: /\"/\n }\n ]\n },\n {\n begin: [\n /let/,\n /\\s+/,\n /(?:mut\\s+)?/,\n hljs.UNDERSCORE_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"keyword\",\n 4: \"variable\"\n }\n },\n // must come before impl/for rule later\n {\n begin: [\n /for/,\n /\\s+/,\n hljs.UNDERSCORE_IDENT_RE,\n /\\s+/,\n /in/\n ],\n className: {\n 1: \"keyword\",\n 3: \"variable\",\n 5: \"keyword\"\n }\n },\n {\n begin: [\n /type/,\n /\\s+/,\n hljs.UNDERSCORE_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n begin: [\n /(?:trait|enum|struct|union|impl|for)/,\n /\\s+/,\n hljs.UNDERSCORE_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: {\n keyword: \"Self\",\n built_in: BUILTINS,\n type: TYPES\n }\n },\n {\n className: \"punctuation\",\n begin: '->'\n },\n FUNCTION_INVOKE\n ]\n };\n}\n\nmodule.exports = rust;\n","/*\nLanguage: Scala\nCategory: functional\nAuthor: Jan Berkel <jan.berkel@gmail.com>\nContributors: Erik Osheim <d_m@plastic-idolatry.com>\nWebsite: https://www.scala-lang.org\n*/\n\nfunction scala(hljs) {\n const regex = hljs.regex;\n const ANNOTATION = {\n className: 'meta',\n begin: '@[A-Za-z]+'\n };\n\n // used in strings for escaping/interpolation/substitution\n const SUBST = {\n className: 'subst',\n variants: [\n { begin: '\\\\$[A-Za-z0-9_]+' },\n {\n begin: /\\$\\{/,\n end: /\\}/\n }\n ]\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n {\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '[a-z]+\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n },\n {\n className: 'string',\n begin: '[a-z]+\"\"\"',\n end: '\"\"\"',\n contains: [ SUBST ],\n relevance: 10\n }\n ]\n\n };\n\n const TYPE = {\n className: 'type',\n begin: '\\\\b[A-Z][A-Za-z0-9_]*',\n relevance: 0\n };\n\n const NAME = {\n className: 'title',\n begin: /[^0-9\\n\\t \"'(),.`{}\\[\\]:;][^\\n\\t \"'(),.`{}\\[\\]:;]+|[^0-9\\n\\t \"'(),.`{}\\[\\]:;=]/,\n relevance: 0\n };\n\n const CLASS = {\n className: 'class',\n beginKeywords: 'class object trait type',\n end: /[:={\\[\\n;]/,\n excludeEnd: true,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n beginKeywords: 'extends with',\n relevance: 10\n },\n {\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [ TYPE ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [ TYPE ]\n },\n NAME\n ]\n };\n\n const METHOD = {\n className: 'function',\n beginKeywords: 'def',\n end: regex.lookahead(/[:={\\[(\\n;]/),\n contains: [ NAME ]\n };\n\n const EXTENSION = {\n begin: [\n /^\\s*/, // Is first token on the line\n 'extension',\n /\\s+(?=[[(])/, // followed by at least one space and `[` or `(`\n ],\n beginScope: { 2: \"keyword\", }\n };\n\n const END = {\n begin: [\n /^\\s*/, // Is first token on the line\n /end/,\n /\\s+/,\n /(extension\\b)?/, // `extension` is the only marker that follows an `end` that cannot be captured by another rule.\n ],\n beginScope: {\n 2: \"keyword\",\n 4: \"keyword\",\n }\n };\n\n // TODO: use negative look-behind in future\n // /(?<!\\.)\\binline(?=\\s)/\n const INLINE_MODES = [\n { match: /\\.inline\\b/ },\n {\n begin: /\\binline(?=\\s)/,\n keywords: 'inline'\n }\n ];\n\n const USING_PARAM_CLAUSE = {\n begin: [\n /\\(\\s*/, // Opening `(` of a parameter or argument list\n /using/,\n /\\s+(?!\\))/, // Spaces not followed by `)`\n ],\n beginScope: { 2: \"keyword\", }\n };\n\n return {\n name: 'Scala',\n keywords: {\n literal: 'true false null',\n keyword: 'type yield lazy override def with val var sealed abstract private trait object if then forSome for while do throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit export enum given transparent'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n TYPE,\n METHOD,\n CLASS,\n hljs.C_NUMBER_MODE,\n EXTENSION,\n END,\n ...INLINE_MODES,\n USING_PARAM_CLAUSE,\n ANNOTATION\n ]\n };\n}\n\nmodule.exports = scala;\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'all',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-variant',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inline-size',\n 'isolation',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-break',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'row-gap',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: SCSS\nDescription: Scss is an extension of the syntax of CSS.\nAuthor: Kurt Emch <kurt@kurtemch.com>\nWebsite: https://sass-lang.com\nCategory: common, css, web\n*/\n\n/** @type LanguageFn */\nfunction scss(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_ELEMENTS$1 = PSEUDO_ELEMENTS;\n const PSEUDO_CLASSES$1 = PSEUDO_CLASSES;\n\n const AT_IDENTIFIER = '@[a-z-]+'; // @font-face\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const VARIABLE = {\n className: 'variable',\n begin: '(\\\\$' + IDENT_RE + ')\\\\b',\n relevance: 0\n };\n\n return {\n name: 'SCSS',\n case_insensitive: true,\n illegal: '[=/|\\']',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: '#[A-Za-z0-9_-]+',\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.[A-Za-z0-9_-]+',\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n // was there, before, but why?\n relevance: 0\n },\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES$1.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS$1.join('|') + ')'\n },\n VARIABLE,\n { // pseudo-selector params\n begin: /\\(/,\n end: /\\)/,\n contains: [ modes.CSS_NUMBER_MODE ]\n },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n { begin: '\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b' },\n {\n begin: /:/,\n end: /[;}{]/,\n relevance: 0,\n contains: [\n modes.BLOCK_COMMENT,\n VARIABLE,\n modes.HEXCOLOR,\n modes.CSS_NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.IMPORTANT,\n modes.FUNCTION_DISPATCH\n ]\n },\n // matching these here allows us to treat them more like regular CSS\n // rules so everything between the {} gets regular rule highlighting,\n // which is what we want for page and font-face\n {\n begin: '@(page|font-face)',\n keywords: {\n $pattern: AT_IDENTIFIER,\n keyword: '@page @font-face'\n }\n },\n {\n begin: '@',\n end: '[{;]',\n returnBegin: true,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: AT_IDENTIFIER,\n className: \"keyword\"\n },\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n VARIABLE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.HEXCOLOR,\n modes.CSS_NUMBER_MODE\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n };\n}\n\nmodule.exports = scss;\n","/*\nLanguage: Shell Session\nRequires: bash.js\nAuthor: TSUYUSATO Kitsune <make.just.on@gmail.com>\nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction shell(hljs) {\n return {\n name: 'Shell Session',\n aliases: [\n 'console',\n 'shellsession'\n ],\n contains: [\n {\n className: 'meta.prompt',\n // We cannot add \\s (spaces) in the regular expression otherwise it will be too broad and produce unexpected result.\n // For instance, in the following example, it would match \"echo /path/to/home >\" as a prompt:\n // echo /path/to/home > t.exe\n begin: /^\\s{0,3}[/~\\w\\d[\\]()@-]*[>%$#][ ]?/,\n starts: {\n end: /[^\\\\](?=\\s*$)/,\n subLanguage: 'bash'\n }\n }\n ]\n };\n}\n\nmodule.exports = shell;\n","/*\n Language: SQL\n Website: https://en.wikipedia.org/wiki/SQL\n Category: common, database\n */\n\n/*\n\nGoals:\n\nSQL is intended to highlight basic/common SQL keywords and expressions\n\n- If pretty much every single SQL server includes supports, then it's a canidate.\n- It is NOT intended to include tons of vendor specific keywords (Oracle, MySQL,\n PostgreSQL) although the list of data types is purposely a bit more expansive.\n- For more specific SQL grammars please see:\n - PostgreSQL and PL/pgSQL - core\n - T-SQL - https://github.com/highlightjs/highlightjs-tsql\n - sql_more (core)\n\n */\n\nfunction sql(hljs) {\n const regex = hljs.regex;\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/,\n contains: [ { begin: /''/ } ]\n }\n ]\n };\n const QUOTED_IDENTIFIER = {\n begin: /\"/,\n end: /\"/,\n contains: [ { begin: /\"\"/ } ]\n };\n\n const LITERALS = [\n \"true\",\n \"false\",\n // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.\n // \"null\",\n \"unknown\"\n ];\n\n const MULTI_WORD_TYPES = [\n \"double precision\",\n \"large object\",\n \"with timezone\",\n \"without timezone\"\n ];\n\n const TYPES = [\n 'bigint',\n 'binary',\n 'blob',\n 'boolean',\n 'char',\n 'character',\n 'clob',\n 'date',\n 'dec',\n 'decfloat',\n 'decimal',\n 'float',\n 'int',\n 'integer',\n 'interval',\n 'nchar',\n 'nclob',\n 'national',\n 'numeric',\n 'real',\n 'row',\n 'smallint',\n 'time',\n 'timestamp',\n 'varchar',\n 'varying', // modifier (character varying)\n 'varbinary'\n ];\n\n const NON_RESERVED_WORDS = [\n \"add\",\n \"asc\",\n \"collation\",\n \"desc\",\n \"final\",\n \"first\",\n \"last\",\n \"view\"\n ];\n\n // https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#reserved-word\n const RESERVED_WORDS = [\n \"abs\",\n \"acos\",\n \"all\",\n \"allocate\",\n \"alter\",\n \"and\",\n \"any\",\n \"are\",\n \"array\",\n \"array_agg\",\n \"array_max_cardinality\",\n \"as\",\n \"asensitive\",\n \"asin\",\n \"asymmetric\",\n \"at\",\n \"atan\",\n \"atomic\",\n \"authorization\",\n \"avg\",\n \"begin\",\n \"begin_frame\",\n \"begin_partition\",\n \"between\",\n \"bigint\",\n \"binary\",\n \"blob\",\n \"boolean\",\n \"both\",\n \"by\",\n \"call\",\n \"called\",\n \"cardinality\",\n \"cascaded\",\n \"case\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"char\",\n \"char_length\",\n \"character\",\n \"character_length\",\n \"check\",\n \"classifier\",\n \"clob\",\n \"close\",\n \"coalesce\",\n \"collate\",\n \"collect\",\n \"column\",\n \"commit\",\n \"condition\",\n \"connect\",\n \"constraint\",\n \"contains\",\n \"convert\",\n \"copy\",\n \"corr\",\n \"corresponding\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"create\",\n \"cross\",\n \"cube\",\n \"cume_dist\",\n \"current\",\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_row\",\n \"current_schema\",\n \"current_time\",\n \"current_timestamp\",\n \"current_path\",\n \"current_role\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"cursor\",\n \"cycle\",\n \"date\",\n \"day\",\n \"deallocate\",\n \"dec\",\n \"decimal\",\n \"decfloat\",\n \"declare\",\n \"default\",\n \"define\",\n \"delete\",\n \"dense_rank\",\n \"deref\",\n \"describe\",\n \"deterministic\",\n \"disconnect\",\n \"distinct\",\n \"double\",\n \"drop\",\n \"dynamic\",\n \"each\",\n \"element\",\n \"else\",\n \"empty\",\n \"end\",\n \"end_frame\",\n \"end_partition\",\n \"end-exec\",\n \"equals\",\n \"escape\",\n \"every\",\n \"except\",\n \"exec\",\n \"execute\",\n \"exists\",\n \"exp\",\n \"external\",\n \"extract\",\n \"false\",\n \"fetch\",\n \"filter\",\n \"first_value\",\n \"float\",\n \"floor\",\n \"for\",\n \"foreign\",\n \"frame_row\",\n \"free\",\n \"from\",\n \"full\",\n \"function\",\n \"fusion\",\n \"get\",\n \"global\",\n \"grant\",\n \"group\",\n \"grouping\",\n \"groups\",\n \"having\",\n \"hold\",\n \"hour\",\n \"identity\",\n \"in\",\n \"indicator\",\n \"initial\",\n \"inner\",\n \"inout\",\n \"insensitive\",\n \"insert\",\n \"int\",\n \"integer\",\n \"intersect\",\n \"intersection\",\n \"interval\",\n \"into\",\n \"is\",\n \"join\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"language\",\n \"large\",\n \"last_value\",\n \"lateral\",\n \"lead\",\n \"leading\",\n \"left\",\n \"like\",\n \"like_regex\",\n \"listagg\",\n \"ln\",\n \"local\",\n \"localtime\",\n \"localtimestamp\",\n \"log\",\n \"log10\",\n \"lower\",\n \"match\",\n \"match_number\",\n \"match_recognize\",\n \"matches\",\n \"max\",\n \"member\",\n \"merge\",\n \"method\",\n \"min\",\n \"minute\",\n \"mod\",\n \"modifies\",\n \"module\",\n \"month\",\n \"multiset\",\n \"national\",\n \"natural\",\n \"nchar\",\n \"nclob\",\n \"new\",\n \"no\",\n \"none\",\n \"normalize\",\n \"not\",\n \"nth_value\",\n \"ntile\",\n \"null\",\n \"nullif\",\n \"numeric\",\n \"octet_length\",\n \"occurrences_regex\",\n \"of\",\n \"offset\",\n \"old\",\n \"omit\",\n \"on\",\n \"one\",\n \"only\",\n \"open\",\n \"or\",\n \"order\",\n \"out\",\n \"outer\",\n \"over\",\n \"overlaps\",\n \"overlay\",\n \"parameter\",\n \"partition\",\n \"pattern\",\n \"per\",\n \"percent\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"period\",\n \"portion\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"precedes\",\n \"precision\",\n \"prepare\",\n \"primary\",\n \"procedure\",\n \"ptf\",\n \"range\",\n \"rank\",\n \"reads\",\n \"real\",\n \"recursive\",\n \"ref\",\n \"references\",\n \"referencing\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"release\",\n \"result\",\n \"return\",\n \"returns\",\n \"revoke\",\n \"right\",\n \"rollback\",\n \"rollup\",\n \"row\",\n \"row_number\",\n \"rows\",\n \"running\",\n \"savepoint\",\n \"scope\",\n \"scroll\",\n \"search\",\n \"second\",\n \"seek\",\n \"select\",\n \"sensitive\",\n \"session_user\",\n \"set\",\n \"show\",\n \"similar\",\n \"sin\",\n \"sinh\",\n \"skip\",\n \"smallint\",\n \"some\",\n \"specific\",\n \"specifictype\",\n \"sql\",\n \"sqlexception\",\n \"sqlstate\",\n \"sqlwarning\",\n \"sqrt\",\n \"start\",\n \"static\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"submultiset\",\n \"subset\",\n \"substring\",\n \"substring_regex\",\n \"succeeds\",\n \"sum\",\n \"symmetric\",\n \"system\",\n \"system_time\",\n \"system_user\",\n \"table\",\n \"tablesample\",\n \"tan\",\n \"tanh\",\n \"then\",\n \"time\",\n \"timestamp\",\n \"timezone_hour\",\n \"timezone_minute\",\n \"to\",\n \"trailing\",\n \"translate\",\n \"translate_regex\",\n \"translation\",\n \"treat\",\n \"trigger\",\n \"trim\",\n \"trim_array\",\n \"true\",\n \"truncate\",\n \"uescape\",\n \"union\",\n \"unique\",\n \"unknown\",\n \"unnest\",\n \"update\",\n \"upper\",\n \"user\",\n \"using\",\n \"value\",\n \"values\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"varbinary\",\n \"varchar\",\n \"varying\",\n \"versioning\",\n \"when\",\n \"whenever\",\n \"where\",\n \"width_bucket\",\n \"window\",\n \"with\",\n \"within\",\n \"without\",\n \"year\",\n ];\n\n // these are reserved words we have identified to be functions\n // and should only be highlighted in a dispatch-like context\n // ie, array_agg(...), etc.\n const RESERVED_FUNCTIONS = [\n \"abs\",\n \"acos\",\n \"array_agg\",\n \"asin\",\n \"atan\",\n \"avg\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"coalesce\",\n \"corr\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"cume_dist\",\n \"dense_rank\",\n \"deref\",\n \"element\",\n \"exp\",\n \"extract\",\n \"first_value\",\n \"floor\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"last_value\",\n \"lead\",\n \"listagg\",\n \"ln\",\n \"log\",\n \"log10\",\n \"lower\",\n \"max\",\n \"min\",\n \"mod\",\n \"nth_value\",\n \"ntile\",\n \"nullif\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"rank\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"row_number\",\n \"sin\",\n \"sinh\",\n \"sqrt\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"substring\",\n \"substring_regex\",\n \"sum\",\n \"tan\",\n \"tanh\",\n \"translate\",\n \"translate_regex\",\n \"treat\",\n \"trim\",\n \"trim_array\",\n \"unnest\",\n \"upper\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"width_bucket\",\n ];\n\n // these functions can\n const POSSIBLE_WITHOUT_PARENS = [\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_schema\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"session_user\",\n \"system_time\",\n \"system_user\",\n \"current_time\",\n \"localtime\",\n \"current_timestamp\",\n \"localtimestamp\"\n ];\n\n // those exist to boost relevance making these very\n // \"SQL like\" keyword combos worth +1 extra relevance\n const COMBOS = [\n \"create table\",\n \"insert into\",\n \"primary key\",\n \"foreign key\",\n \"not null\",\n \"alter table\",\n \"add constraint\",\n \"grouping sets\",\n \"on overflow\",\n \"character set\",\n \"respect nulls\",\n \"ignore nulls\",\n \"nulls first\",\n \"nulls last\",\n \"depth first\",\n \"breadth first\"\n ];\n\n const FUNCTIONS = RESERVED_FUNCTIONS;\n\n const KEYWORDS = [\n ...RESERVED_WORDS,\n ...NON_RESERVED_WORDS\n ].filter((keyword) => {\n return !RESERVED_FUNCTIONS.includes(keyword);\n });\n\n const VARIABLE = {\n className: \"variable\",\n begin: /@[a-z0-9]+/,\n };\n\n const OPERATOR = {\n className: \"operator\",\n begin: /[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\n relevance: 0,\n };\n\n const FUNCTION_CALL = {\n begin: regex.concat(/\\b/, regex.either(...FUNCTIONS), /\\s*\\(/),\n relevance: 0,\n keywords: { built_in: FUNCTIONS }\n };\n\n // keywords with less than 3 letters are reduced in relevancy\n function reduceRelevancy(list, {\n exceptions, when\n } = {}) {\n const qualifyFn = when;\n exceptions = exceptions || [];\n return list.map((item) => {\n if (item.match(/\\|\\d+$/) || exceptions.includes(item)) {\n return item;\n } else if (qualifyFn(item)) {\n return `${item}|0`;\n } else {\n return item;\n }\n });\n }\n\n return {\n name: 'SQL',\n case_insensitive: true,\n // does not include {} or HTML tags `</`\n illegal: /[{}]|<\\//,\n keywords: {\n $pattern: /\\b[\\w\\.]+/,\n keyword:\n reduceRelevancy(KEYWORDS, { when: (x) => x.length < 3 }),\n literal: LITERALS,\n type: TYPES,\n built_in: POSSIBLE_WITHOUT_PARENS\n },\n contains: [\n {\n begin: regex.either(...COMBOS),\n relevance: 0,\n keywords: {\n $pattern: /[\\w\\.]+/,\n keyword: KEYWORDS.concat(COMBOS),\n literal: LITERALS,\n type: TYPES\n },\n },\n {\n className: \"type\",\n begin: regex.either(...MULTI_WORD_TYPES)\n },\n FUNCTION_CALL,\n VARIABLE,\n STRING,\n QUOTED_IDENTIFIER,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n OPERATOR\n ]\n };\n}\n\nmodule.exports = sql;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\nconst keywordWrapper = keyword => concat(\n /\\b/,\n keyword,\n /\\w$/.test(keyword) ? /\\b/ : /\\B/\n);\n\n// Keywords that require a leading dot.\nconst dotKeywords = [\n 'Protocol', // contextual\n 'Type' // contextual\n].map(keywordWrapper);\n\n// Keywords that may have a leading dot.\nconst optionalDotKeywords = [\n 'init',\n 'self'\n].map(keywordWrapper);\n\n// should register as keyword, not type\nconst keywordTypes = [\n 'Any',\n 'Self'\n];\n\n// Regular keywords and literals.\nconst keywords = [\n // strings below will be fed into the regular `keywords` engine while regex\n // will result in additional modes being created to scan for those keywords to\n // avoid conflicts with other rules\n 'actor',\n 'any', // contextual\n 'associatedtype',\n 'async',\n 'await',\n /as\\?/, // operator\n /as!/, // operator\n 'as', // operator\n 'break',\n 'case',\n 'catch',\n 'class',\n 'continue',\n 'convenience', // contextual\n 'default',\n 'defer',\n 'deinit',\n 'didSet', // contextual\n 'distributed',\n 'do',\n 'dynamic', // contextual\n 'else',\n 'enum',\n 'extension',\n 'fallthrough',\n /fileprivate\\(set\\)/,\n 'fileprivate',\n 'final', // contextual\n 'for',\n 'func',\n 'get', // contextual\n 'guard',\n 'if',\n 'import',\n 'indirect', // contextual\n 'infix', // contextual\n /init\\?/,\n /init!/,\n 'inout',\n /internal\\(set\\)/,\n 'internal',\n 'in',\n 'is', // operator\n 'isolated', // contextual\n 'nonisolated', // contextual\n 'lazy', // contextual\n 'let',\n 'mutating', // contextual\n 'nonmutating', // contextual\n /open\\(set\\)/, // contextual\n 'open', // contextual\n 'operator',\n 'optional', // contextual\n 'override', // contextual\n 'postfix', // contextual\n 'precedencegroup',\n 'prefix', // contextual\n /private\\(set\\)/,\n 'private',\n 'protocol',\n /public\\(set\\)/,\n 'public',\n 'repeat',\n 'required', // contextual\n 'rethrows',\n 'return',\n 'set', // contextual\n 'some', // contextual\n 'static',\n 'struct',\n 'subscript',\n 'super',\n 'switch',\n 'throws',\n 'throw',\n /try\\?/, // operator\n /try!/, // operator\n 'try', // operator\n 'typealias',\n /unowned\\(safe\\)/, // contextual\n /unowned\\(unsafe\\)/, // contextual\n 'unowned', // contextual\n 'var',\n 'weak', // contextual\n 'where',\n 'while',\n 'willSet' // contextual\n];\n\n// NOTE: Contextual keywords are reserved only in specific contexts.\n// Ideally, these should be matched using modes to avoid false positives.\n\n// Literals.\nconst literals = [\n 'false',\n 'nil',\n 'true'\n];\n\n// Keywords used in precedence groups.\nconst precedencegroupKeywords = [\n 'assignment',\n 'associativity',\n 'higherThan',\n 'left',\n 'lowerThan',\n 'none',\n 'right'\n];\n\n// Keywords that start with a number sign (#).\n// #(un)available is handled separately.\nconst numberSignKeywords = [\n '#colorLiteral',\n '#column',\n '#dsohandle',\n '#else',\n '#elseif',\n '#endif',\n '#error',\n '#file',\n '#fileID',\n '#fileLiteral',\n '#filePath',\n '#function',\n '#if',\n '#imageLiteral',\n '#keyPath',\n '#line',\n '#selector',\n '#sourceLocation',\n '#warn_unqualified_access',\n '#warning'\n];\n\n// Global functions in the Standard Library.\nconst builtIns = [\n 'abs',\n 'all',\n 'any',\n 'assert',\n 'assertionFailure',\n 'debugPrint',\n 'dump',\n 'fatalError',\n 'getVaList',\n 'isKnownUniquelyReferenced',\n 'max',\n 'min',\n 'numericCast',\n 'pointwiseMax',\n 'pointwiseMin',\n 'precondition',\n 'preconditionFailure',\n 'print',\n 'readLine',\n 'repeatElement',\n 'sequence',\n 'stride',\n 'swap',\n 'swift_unboxFromSwiftValueWithType',\n 'transcode',\n 'type',\n 'unsafeBitCast',\n 'unsafeDowncast',\n 'withExtendedLifetime',\n 'withUnsafeMutablePointer',\n 'withUnsafePointer',\n 'withVaList',\n 'withoutActuallyEscaping',\n 'zip'\n];\n\n// Valid first characters for operators.\nconst operatorHead = either(\n /[/=\\-+!*%<>&|^~?]/,\n /[\\u00A1-\\u00A7]/,\n /[\\u00A9\\u00AB]/,\n /[\\u00AC\\u00AE]/,\n /[\\u00B0\\u00B1]/,\n /[\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7]/,\n /[\\u2016-\\u2017]/,\n /[\\u2020-\\u2027]/,\n /[\\u2030-\\u203E]/,\n /[\\u2041-\\u2053]/,\n /[\\u2055-\\u205E]/,\n /[\\u2190-\\u23FF]/,\n /[\\u2500-\\u2775]/,\n /[\\u2794-\\u2BFF]/,\n /[\\u2E00-\\u2E7F]/,\n /[\\u3001-\\u3003]/,\n /[\\u3008-\\u3020]/,\n /[\\u3030]/\n);\n\n// Valid characters for operators.\nconst operatorCharacter = either(\n operatorHead,\n /[\\u0300-\\u036F]/,\n /[\\u1DC0-\\u1DFF]/,\n /[\\u20D0-\\u20FF]/,\n /[\\uFE00-\\uFE0F]/,\n /[\\uFE20-\\uFE2F]/\n // TODO: The following characters are also allowed, but the regex isn't supported yet.\n // /[\\u{E0100}-\\u{E01EF}]/u\n);\n\n// Valid operator.\nconst operator = concat(operatorHead, operatorCharacter, '*');\n\n// Valid first characters for identifiers.\nconst identifierHead = either(\n /[a-zA-Z_]/,\n /[\\u00A8\\u00AA\\u00AD\\u00AF\\u00B2-\\u00B5\\u00B7-\\u00BA]/,\n /[\\u00BC-\\u00BE\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]/,\n /[\\u0100-\\u02FF\\u0370-\\u167F\\u1681-\\u180D\\u180F-\\u1DBF]/,\n /[\\u1E00-\\u1FFF]/,\n /[\\u200B-\\u200D\\u202A-\\u202E\\u203F-\\u2040\\u2054\\u2060-\\u206F]/,\n /[\\u2070-\\u20CF\\u2100-\\u218F\\u2460-\\u24FF\\u2776-\\u2793]/,\n /[\\u2C00-\\u2DFF\\u2E80-\\u2FFF]/,\n /[\\u3004-\\u3007\\u3021-\\u302F\\u3031-\\u303F\\u3040-\\uD7FF]/,\n /[\\uF900-\\uFD3D\\uFD40-\\uFDCF\\uFDF0-\\uFE1F\\uFE30-\\uFE44]/,\n /[\\uFE47-\\uFEFE\\uFF00-\\uFFFD]/ // Should be /[\\uFE47-\\uFFFD]/, but we have to exclude FEFF.\n // The following characters are also allowed, but the regexes aren't supported yet.\n // /[\\u{10000}-\\u{1FFFD}\\u{20000-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}]/u,\n // /[\\u{50000}-\\u{5FFFD}\\u{60000-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}]/u,\n // /[\\u{90000}-\\u{9FFFD}\\u{A0000-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}]/u,\n // /[\\u{D0000}-\\u{DFFFD}\\u{E0000-\\u{EFFFD}]/u\n);\n\n// Valid characters for identifiers.\nconst identifierCharacter = either(\n identifierHead,\n /\\d/,\n /[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]/\n);\n\n// Valid identifier.\nconst identifier = concat(identifierHead, identifierCharacter, '*');\n\n// Valid type identifier.\nconst typeIdentifier = concat(/[A-Z]/, identifierCharacter, '*');\n\n// Built-in attributes, which are highlighted as keywords.\n// @available is handled separately.\nconst keywordAttributes = [\n 'autoclosure',\n concat(/convention\\(/, either('swift', 'block', 'c'), /\\)/),\n 'discardableResult',\n 'dynamicCallable',\n 'dynamicMemberLookup',\n 'escaping',\n 'frozen',\n 'GKInspectable',\n 'IBAction',\n 'IBDesignable',\n 'IBInspectable',\n 'IBOutlet',\n 'IBSegueAction',\n 'inlinable',\n 'main',\n 'nonobjc',\n 'NSApplicationMain',\n 'NSCopying',\n 'NSManaged',\n concat(/objc\\(/, identifier, /\\)/),\n 'objc',\n 'objcMembers',\n 'propertyWrapper',\n 'requires_stored_property_inits',\n 'resultBuilder',\n 'testable',\n 'UIApplicationMain',\n 'unknown',\n 'usableFromInline'\n];\n\n// Contextual keywords used in @available and #(un)available.\nconst availabilityKeywords = [\n 'iOS',\n 'iOSApplicationExtension',\n 'macOS',\n 'macOSApplicationExtension',\n 'macCatalyst',\n 'macCatalystApplicationExtension',\n 'watchOS',\n 'watchOSApplicationExtension',\n 'tvOS',\n 'tvOSApplicationExtension',\n 'swift'\n];\n\n/*\nLanguage: Swift\nDescription: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.\nAuthor: Steven Van Impe <steven.vanimpe@icloud.com>\nContributors: Chris Eidhof <chris@eidhof.nl>, Nate Cook <natecook@gmail.com>, Alexander Lichter <manniL@gmx.net>, Richard Gibson <gibson042@github>\nWebsite: https://swift.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\nfunction swift(hljs) {\n const WHITESPACE = {\n match: /\\s+/,\n relevance: 0\n };\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411\n const BLOCK_COMMENT = hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [ 'self' ] }\n );\n const COMMENTS = [\n hljs.C_LINE_COMMENT_MODE,\n BLOCK_COMMENT\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html\n const DOT_KEYWORD = {\n match: [\n /\\./,\n either(...dotKeywords, ...optionalDotKeywords)\n ],\n className: { 2: \"keyword\" }\n };\n const KEYWORD_GUARD = {\n // Consume .keyword to prevent highlighting properties and methods as keywords.\n match: concat(/\\./, either(...keywords)),\n relevance: 0\n };\n const PLAIN_KEYWORDS = keywords\n .filter(kw => typeof kw === 'string')\n .concat([ \"_|0\" ]); // seems common, so 0 relevance\n const REGEX_KEYWORDS = keywords\n .filter(kw => typeof kw !== 'string') // find regex\n .concat(keywordTypes)\n .map(keywordWrapper);\n const KEYWORD = { variants: [\n {\n className: 'keyword',\n match: either(...REGEX_KEYWORDS, ...optionalDotKeywords)\n }\n ] };\n // find all the regular keywords\n const KEYWORDS = {\n $pattern: either(\n /\\b\\w+/, // regular keywords\n /#\\w+/ // number keywords\n ),\n keyword: PLAIN_KEYWORDS\n .concat(numberSignKeywords),\n literal: literals\n };\n const KEYWORD_MODES = [\n DOT_KEYWORD,\n KEYWORD_GUARD,\n KEYWORD\n ];\n\n // https://github.com/apple/swift/tree/main/stdlib/public/core\n const BUILT_IN_GUARD = {\n // Consume .built_in to prevent highlighting properties and methods.\n match: concat(/\\./, either(...builtIns)),\n relevance: 0\n };\n const BUILT_IN = {\n className: 'built_in',\n match: concat(/\\b/, either(...builtIns), /(?=\\()/)\n };\n const BUILT_INS = [\n BUILT_IN_GUARD,\n BUILT_IN\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418\n const OPERATOR_GUARD = {\n // Prevent -> from being highlighting as an operator.\n match: /->/,\n relevance: 0\n };\n const OPERATOR = {\n className: 'operator',\n relevance: 0,\n variants: [\n { match: operator },\n {\n // dot-operator: only operators that start with a dot are allowed to use dots as\n // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more\n // characters that may also include dots.\n match: `\\\\.(\\\\.|${operatorCharacter})+` }\n ]\n };\n const OPERATORS = [\n OPERATOR_GUARD,\n OPERATOR\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal\n // TODO: Update for leading `-` after lookbehind is supported everywhere\n const decimalDigits = '([0-9]_*)+';\n const hexDigits = '([0-9a-fA-F]_*)+';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal floating-point-literal (subsumes decimal-literal)\n { match: `\\\\b(${decimalDigits})(\\\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\\\b` },\n // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n { match: `\\\\b0x(${hexDigits})(\\\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\\\b` },\n // octal-literal\n { match: /\\b0o([0-7]_*)+\\b/ },\n // binary-literal\n { match: /\\b0b([01]_*)+\\b/ }\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal\n const ESCAPED_CHARACTER = (rawDelimiter = \"\") => ({\n className: 'subst',\n variants: [\n { match: concat(/\\\\/, rawDelimiter, /[0\\\\tnr\"']/) },\n { match: concat(/\\\\/, rawDelimiter, /u\\{[0-9a-fA-F]{1,8}\\}/) }\n ]\n });\n const ESCAPED_NEWLINE = (rawDelimiter = \"\") => ({\n className: 'subst',\n match: concat(/\\\\/, rawDelimiter, /[\\t ]*(?:[\\r\\n]|\\r\\n)/)\n });\n const INTERPOLATION = (rawDelimiter = \"\") => ({\n className: 'subst',\n label: \"interpol\",\n begin: concat(/\\\\/, rawDelimiter, /\\(/),\n end: /\\)/\n });\n const MULTILINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"\"\"/),\n end: concat(/\"\"\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n ESCAPED_NEWLINE(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const SINGLE_LINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"/),\n end: concat(/\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const STRING = {\n className: 'string',\n variants: [\n MULTILINE_STRING(),\n MULTILINE_STRING(\"#\"),\n MULTILINE_STRING(\"##\"),\n MULTILINE_STRING(\"###\"),\n SINGLE_LINE_STRING(),\n SINGLE_LINE_STRING(\"#\"),\n SINGLE_LINE_STRING(\"##\"),\n SINGLE_LINE_STRING(\"###\")\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412\n const QUOTED_IDENTIFIER = { match: concat(/`/, identifier, /`/) };\n const IMPLICIT_PARAMETER = {\n className: 'variable',\n match: /\\$\\d+/\n };\n const PROPERTY_WRAPPER_PROJECTION = {\n className: 'variable',\n match: `\\\\$${identifierCharacter}+`\n };\n const IDENTIFIERS = [\n QUOTED_IDENTIFIER,\n IMPLICIT_PARAMETER,\n PROPERTY_WRAPPER_PROJECTION\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html\n const AVAILABLE_ATTRIBUTE = {\n match: /(@|#(un)?)available/,\n className: \"keyword\",\n starts: { contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: availabilityKeywords,\n contains: [\n ...OPERATORS,\n NUMBER,\n STRING\n ]\n }\n ] }\n };\n const KEYWORD_ATTRIBUTE = {\n className: 'keyword',\n match: concat(/@/, either(...keywordAttributes))\n };\n const USER_DEFINED_ATTRIBUTE = {\n className: 'meta',\n match: concat(/@/, identifier)\n };\n const ATTRIBUTES = [\n AVAILABLE_ATTRIBUTE,\n KEYWORD_ATTRIBUTE,\n USER_DEFINED_ATTRIBUTE\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Types.html\n const TYPE = {\n match: lookahead(/\\b[A-Z]/),\n relevance: 0,\n contains: [\n { // Common Apple frameworks, for relevance boost\n className: 'type',\n match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')\n },\n { // Type identifier\n className: 'type',\n match: typeIdentifier,\n relevance: 0\n },\n { // Optional type\n match: /[?!]+/,\n relevance: 0\n },\n { // Variadic parameter\n match: /\\.\\.\\./,\n relevance: 0\n },\n { // Protocol composition\n match: concat(/\\s+&\\s+/, lookahead(typeIdentifier)),\n relevance: 0\n }\n ]\n };\n const GENERIC_ARGUMENTS = {\n begin: /</,\n end: />/,\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...ATTRIBUTES,\n OPERATOR_GUARD,\n TYPE\n ]\n };\n TYPE.contains.push(GENERIC_ARGUMENTS);\n\n // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552\n // Prevents element names from being highlighted as keywords.\n const TUPLE_ELEMENT_NAME = {\n match: concat(identifier, /\\s*:/),\n keywords: \"_|0\",\n relevance: 0\n };\n // Matches tuples as well as the parameter list of a function type.\n const TUPLE = {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: [\n 'self',\n TUPLE_ELEMENT_NAME,\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE\n ]\n };\n\n const GENERIC_PARAMETERS = {\n begin: /</,\n end: />/,\n contains: [\n ...COMMENTS,\n TYPE\n ]\n };\n const FUNCTION_PARAMETER_NAME = {\n begin: either(\n lookahead(concat(identifier, /\\s*:/)),\n lookahead(concat(identifier, /\\s+/, identifier, /\\s*:/))\n ),\n end: /:/,\n relevance: 0,\n contains: [\n {\n className: 'keyword',\n match: /\\b_\\b/\n },\n {\n className: 'params',\n match: identifier\n }\n ]\n };\n const FUNCTION_PARAMETERS = {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n FUNCTION_PARAMETER_NAME,\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ],\n endsParent: true,\n illegal: /[\"']/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362\n const FUNCTION = {\n match: [\n /func/,\n /\\s+/,\n either(QUOTED_IDENTIFIER.match, identifier, operator)\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: [\n /\\[/,\n /%/\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379\n const INIT_SUBSCRIPT = {\n match: [\n /\\b(?:subscript|init[?!]?)/,\n /\\s*(?=[<(])/,\n ],\n className: { 1: \"keyword\" },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: /\\[|%/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380\n const OPERATOR_DECLARATION = {\n match: [\n /operator/,\n /\\s+/,\n operator\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n }\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550\n const PRECEDENCEGROUP = {\n begin: [\n /precedencegroup/,\n /\\s+/,\n typeIdentifier\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n },\n contains: [ TYPE ],\n keywords: [\n ...precedencegroupKeywords,\n ...literals\n ],\n end: /}/\n };\n\n // Add supported submodes to string interpolation.\n for (const variant of STRING.variants) {\n const interpolation = variant.contains.find(mode => mode.label === \"interpol\");\n // TODO: Interpolation can contain any expression, so there's room for improvement here.\n interpolation.keywords = KEYWORDS;\n const submodes = [\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS\n ];\n interpolation.contains = [\n ...submodes,\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n ...submodes\n ]\n }\n ];\n }\n\n return {\n name: 'Swift',\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n FUNCTION,\n INIT_SUBSCRIPT,\n {\n beginKeywords: 'struct protocol class extension enum actor',\n end: '\\\\{',\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n className: \"title.class\",\n begin: /[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/\n }),\n ...KEYWORD_MODES\n ]\n },\n OPERATOR_DECLARATION,\n PRECEDENCEGROUP,\n {\n beginKeywords: 'import',\n end: /$/,\n contains: [ ...COMMENTS ],\n relevance: 0\n },\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ]\n };\n}\n\nmodule.exports = swift;\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \"<Booger\" and checks to see\n * if we can find a matching \"</Booger\" later in the\n * content.\n * @param {RegExpMatchArray} match\n * @param {{after:number}} param1\n */\n const hasClosingTag = (match, { after }) => {\n const tag = \"</\" + match[0].slice(1);\n const pos = match.input.indexOf(tag, after);\n return pos !== -1;\n };\n\n const IDENT_RE$1 = IDENT_RE;\n const FRAGMENT = {\n begin: '<>',\n end: '</>'\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `<Array<Array<number>>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // `<T, A extends keyof T, V>`\n nextChar === \",\") {\n response.ignoreMatch();\n return;\n }\n\n // `<something>`\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `<blah />` (self-closing)\n // handled by simpleSelfClosing rule\n\n // `<From extends string>`\n // technically this could be HTML, but it smells like a type\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti <panu.horsmalahti@iki.fi>\nContributors: Ike Ku <dempfi@yahoo.com>\nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const tsLanguage = javascript(hljs);\n\n const IDENT_RE$1 = IDENT_RE;\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"symbol\",\n \"bigint\",\n \"unknown\"\n ];\n const NAMESPACE = {\n beginKeywords: 'namespace',\n end: /\\{/,\n excludeEnd: true,\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n \"namespace\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\",\n \"enum\",\n \"override\"\n ];\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n\n mode.contains.splice(indx, 1, replacement);\n };\n\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.label === \"func.def\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: [\n 'ts',\n 'tsx'\n ]\n });\n\n return tsLanguage;\n}\n\nmodule.exports = typescript;\n","/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /</,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: XML_IDENT_RE,\n relevance: 0\n },\n {\n begin: /=\\s*/,\n relevance: 0,\n contains: [\n {\n className: 'string',\n endsParent: true,\n variants: [\n {\n begin: /\"/,\n end: /\"/,\n contains: [ XML_ENTITIES ]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [ XML_ENTITIES ]\n },\n { begin: /[^\\s\"'=<>`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n /<!--/,\n /-->/,\n { relevance: 10 }\n ),\n {\n begin: /<!\\[CDATA\\[/,\n end: /\\]\\]>/,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n '<style' as a single word, followed by a whitespace or an\n ending bracket.\n */\n begin: /<style(?=\\s|>)/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the <style tag about the lookahead pattern\n begin: /<script(?=\\s|>)/,\n end: />/,\n keywords: { name: 'script' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/script>/,\n returnEnd: true,\n subLanguage: [\n 'javascript',\n 'handlebars',\n 'xml'\n ]\n }\n },\n // we need this for now for jSX\n {\n className: 'tag',\n begin: /<>|<\\/>/\n },\n // open tag\n {\n className: 'tag',\n begin: regex.concat(\n /</,\n regex.lookahead(regex.concat(\n TAG_NAME_RE,\n // <tag/>\n // <tag>\n // <tag ...\n regex.either(/\\/>/, />/, /\\s/)\n ))\n ),\n end: /\\/?>/,\n contains: [\n {\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0,\n starts: TAG_INTERNALS\n }\n ]\n },\n // close tag\n {\n className: 'tag',\n begin: regex.concat(\n /<\\//,\n regex.lookahead(regex.concat(\n TAG_NAME_RE, />/\n ))\n ),\n contains: [\n {\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0\n },\n {\n begin: />/,\n relevance: 0,\n endsParent: true\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = xml;\n","/*\nLanguage: YAML\nDescription: Yet Another Markdown Language\nAuthor: Stefan Wienert <stwienert@gmail.com>\nContributors: Carl Baxter <carl@cbax.tech>\nRequires: ruby.js\nWebsite: https://yaml.org\nCategory: common, config\n*/\nfunction yaml(hljs) {\n const LITERALS = 'true false yes no null';\n\n // YAML spec allows non-reserved URI characters in tags.\n const URI_CHARACTERS = '[\\\\w#;/?:@&=+$,.~*\\'()[\\\\]]+';\n\n // Define keys as starting with a word character\n // ...containing word chars, spaces, colons, forward-slashes, hyphens and periods\n // ...and ending with a colon followed immediately by a space, tab or newline.\n // The YAML spec allows for much more than this, but this covers most use-cases.\n const KEY = {\n className: 'attr',\n variants: [\n { begin: '\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)' },\n { // double quoted keys\n begin: '\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)' },\n { // single quoted keys\n begin: '\\'\\\\w[\\\\w :\\\\/.-]*\\':(?=[ \\t]|$)' }\n ]\n };\n\n const TEMPLATE_VARIABLES = {\n className: 'template-variable',\n variants: [\n { // jinja templates Ansible\n begin: /\\{\\{/,\n end: /\\}\\}/\n },\n { // Ruby i18n\n begin: /%\\{/,\n end: /\\}/\n }\n ]\n };\n const STRING = {\n className: 'string',\n relevance: 0,\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n { begin: /\\S+/ }\n ],\n contains: [\n hljs.BACKSLASH_ESCAPE,\n TEMPLATE_VARIABLES\n ]\n };\n\n // Strings inside of value containers (objects) can't contain braces,\n // brackets, or commas\n const CONTAINER_STRING = hljs.inherit(STRING, { variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n { begin: /[^\\s,{}[\\]]+/ }\n ] });\n\n const DATE_RE = '[0-9]{4}(-[0-9][0-9]){0,2}';\n const TIME_RE = '([Tt \\\\t][0-9][0-9]?(:[0-9][0-9]){2})?';\n const FRACTION_RE = '(\\\\.[0-9]*)?';\n const ZONE_RE = '([ \\\\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?';\n const TIMESTAMP = {\n className: 'number',\n begin: '\\\\b' + DATE_RE + TIME_RE + FRACTION_RE + ZONE_RE + '\\\\b'\n };\n\n const VALUE_CONTAINER = {\n end: ',',\n endsWithParent: true,\n excludeEnd: true,\n keywords: LITERALS,\n relevance: 0\n };\n const OBJECT = {\n begin: /\\{/,\n end: /\\}/,\n contains: [ VALUE_CONTAINER ],\n illegal: '\\\\n',\n relevance: 0\n };\n const ARRAY = {\n begin: '\\\\[',\n end: '\\\\]',\n contains: [ VALUE_CONTAINER ],\n illegal: '\\\\n',\n relevance: 0\n };\n\n const MODES = [\n KEY,\n {\n className: 'meta',\n begin: '^---\\\\s*$',\n relevance: 10\n },\n { // multi line string\n // Blocks start with a | or > followed by a newline\n //\n // Indentation of subsequent lines must be the same to\n // be considered part of the block\n className: 'string',\n begin: '[\\\\|>]([1-9]?[+-])?[ ]*\\\\n( +)[^ ][^\\\\n]*\\\\n(\\\\2[^\\\\n]+\\\\n?)*'\n },\n { // Ruby/Rails erb\n begin: '<%[%=-]?',\n end: '[%-]?%>',\n subLanguage: 'ruby',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n },\n { // named tags\n className: 'type',\n begin: '!\\\\w+!' + URI_CHARACTERS\n },\n // https://yaml.org/spec/1.2/spec.html#id2784064\n { // verbatim tags\n className: 'type',\n begin: '!<' + URI_CHARACTERS + \">\"\n },\n { // primary tags\n className: 'type',\n begin: '!' + URI_CHARACTERS\n },\n { // secondary tags\n className: 'type',\n begin: '!!' + URI_CHARACTERS\n },\n { // fragment id &ref\n className: 'meta',\n begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$'\n },\n { // fragment reference *ref\n className: 'meta',\n begin: '\\\\*' + hljs.UNDERSCORE_IDENT_RE + '$'\n },\n { // array listing\n className: 'bullet',\n // TODO: remove |$ hack when we have proper look-ahead support\n begin: '-(?=[ ]|$)',\n relevance: 0\n },\n hljs.HASH_COMMENT_MODE,\n {\n beginKeywords: LITERALS,\n keywords: { literal: LITERALS }\n },\n TIMESTAMP,\n // numbers are any valid C-style number that\n // sit isolated from other words\n {\n className: 'number',\n begin: hljs.C_NUMBER_RE + '\\\\b',\n relevance: 0\n },\n OBJECT,\n ARRAY,\n STRING\n ];\n\n const VALUE_MODES = [ ...MODES ];\n VALUE_MODES.pop();\n VALUE_MODES.push(CONTAINER_STRING);\n VALUE_CONTAINER.contains = VALUE_MODES;\n\n return {\n name: 'YAML',\n case_insensitive: true,\n aliases: [ 'yml' ],\n contains: MODES\n };\n}\n\nmodule.exports = yaml;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"harvester-1.5.0-dev.umd.min.\" + ({\"332\":\"detail\",\"715\":\"list\",\"739\":\"edit\",\"829\":\"csv\",\"902\":\"formatters\",\"907\":\"dialog\",\"935\":\"xterm\",\"973\":\"promptRemove\"}[chunkId] || chunkId) + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"harvester-1.5.0-dev:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t988: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = (typeof self !== 'undefined' ? self : this)[\"webpackChunkharvester_1_5_0_dev\"] = (typeof self !== 'undefined' ? self : this)[\"webpackChunkharvester_1_5_0_dev\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","export function importTypes($plugin) { \n $plugin.register('detail', 'harvesterhci.io.host', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/harvesterhci.io.host/index.vue'));\n $plugin.register('detail', 'harvesterhci.io.management.cluster', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/harvesterhci.io.management.cluster.vue'));\n $plugin.register('detail', 'harvesterhci.io.schedulevmbackup', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/harvesterhci.io.schedulevmbackup/index.vue'));\n $plugin.register('detail', 'harvesterhci.io.secret', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/harvesterhci.io.secret.vue'));\n $plugin.register('detail', 'harvesterhci.io.virtualmachinebackup', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/harvesterhci.io.virtualmachinebackup/index.vue'));\n $plugin.register('detail', 'harvesterhci.io.virtualmachineimage', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/harvesterhci.io.virtualmachineimage/index.vue'));\n $plugin.register('detail', 'harvesterhci.io.vmsnapshot', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/harvesterhci.io.vmsnapshot/index.vue'));\n $plugin.register('detail', 'kubevirt.io.virtualmachine', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/kubevirt.io.virtualmachine/index.vue'));\n $plugin.register('detail', 'loadbalancer.harvesterhci.io.ippool', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/loadbalancer.harvesterhci.io.ippool.vue'));\n $plugin.register('detail', 'loadbalancer.harvesterhci.io.loadbalancer', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/loadbalancer.harvesterhci.io.loadbalancer.vue'));\n $plugin.register('detail', 'network.harvesterhci.io.vlanconfig', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/network.harvesterhci.io.vlanconfig.vue'));\n $plugin.register('edit', 'harvesterhci.io.addon', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.addon/index.vue'));\n $plugin.register('edit', 'harvesterhci.io.cloudtemplate', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.cloudtemplate.vue'));\n $plugin.register('edit', 'harvesterhci.io.host', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.host/index.vue'));\n $plugin.register('edit', 'harvesterhci.io.keypair', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.keypair.vue'));\n $plugin.register('edit', 'harvesterhci.io.logging.clusterflow', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.logging.clusterflow.vue'));\n $plugin.register('edit', 'harvesterhci.io.logging.clusteroutput', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.logging.clusteroutput.vue'));\n $plugin.register('edit', 'harvesterhci.io.logging.flow', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.logging.flow.vue'));\n $plugin.register('edit', 'harvesterhci.io.logging.output', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.logging.output.vue'));\n $plugin.register('edit', 'harvesterhci.io.monitoring.alertmanagerconfig', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.monitoring.alertmanagerconfig/index.vue'));\n $plugin.register('edit', 'harvesterhci.io.networkattachmentdefinition', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.networkattachmentdefinition.vue'));\n $plugin.register('edit', 'harvesterhci.io.schedulevmbackup', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.schedulevmbackup.vue'));\n $plugin.register('edit', 'harvesterhci.io.secret', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.secret.vue'));\n $plugin.register('edit', 'harvesterhci.io.setting', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.setting.vue'));\n $plugin.register('edit', 'harvesterhci.io.storage', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.storage/index.vue'));\n $plugin.register('edit', 'harvesterhci.io.virtualmachinebackup', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.virtualmachinebackup.vue'));\n $plugin.register('edit', 'harvesterhci.io.virtualmachineimage', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.virtualmachineimage.vue'));\n $plugin.register('edit', 'harvesterhci.io.virtualmachinetemplateversion', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.virtualmachinetemplateversion.vue'));\n $plugin.register('edit', 'harvesterhci.io.vmsnapshot', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.vmsnapshot.vue'));\n $plugin.register('edit', 'harvesterhci.io.volume', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.volume.vue'));\n $plugin.register('edit', 'harvesterhci.io.volumesnapshot', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/harvesterhci.io.volumesnapshot.vue'));\n $plugin.register('edit', 'kubevirt.io.virtualmachine', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/kubevirt.io.virtualmachine/index.vue'));\n $plugin.register('edit', 'loadbalancer.harvesterhci.io.ippool', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/loadbalancer.harvesterhci.io.ippool/index.vue'));\n $plugin.register('edit', 'loadbalancer.harvesterhci.io.loadbalancer', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/loadbalancer.harvesterhci.io.loadbalancer/index.vue'));\n $plugin.register('edit', 'management.cattle.io.project', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/management.cattle.io.project.vue'));\n $plugin.register('edit', 'network.harvesterhci.io.clusternetwork', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/network.harvesterhci.io.clusternetwork/index.vue'));\n $plugin.register('edit', 'network.harvesterhci.io.vlanconfig', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/network.harvesterhci.io.vlanconfig/index.vue'));\n $plugin.register('list', 'devices.harvesterhci.io.pcidevice', () => import(/* webpackChunkName: \"list\" */'@pkg/list/devices.harvesterhci.io.pcidevice.vue'));\n $plugin.register('list', 'devices.harvesterhci.io.sriovgpudevice', () => import(/* webpackChunkName: \"list\" */'@pkg/list/devices.harvesterhci.io.sriovgpudevice.vue'));\n $plugin.register('list', 'devices.harvesterhci.io.sriovnetworkdevice', () => import(/* webpackChunkName: \"list\" */'@pkg/list/devices.harvesterhci.io.sriovnetworkdevice.vue'));\n $plugin.register('list', 'devices.harvesterhci.io.usbdevice', () => import(/* webpackChunkName: \"list\" */'@pkg/list/devices.harvesterhci.io.usbdevice.vue'));\n $plugin.register('list', 'devices.harvesterhci.io.vgpudevice', () => import(/* webpackChunkName: \"list\" */'@pkg/list/devices.harvesterhci.io.vgpudevice.vue'));\n $plugin.register('list', 'harvesterhci.io.addon', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.addon.vue'));\n $plugin.register('list', 'harvesterhci.io.cloudtemplate', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.cloudtemplate.vue'));\n $plugin.register('list', 'harvesterhci.io.dashboard', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.dashboard.vue'));\n $plugin.register('list', 'harvesterhci.io.host', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.host.vue'));\n $plugin.register('list', 'harvesterhci.io.logging.clusterflow', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.logging.clusterflow.vue'));\n $plugin.register('list', 'harvesterhci.io.logging.clusteroutput', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.logging.clusteroutput.vue'));\n $plugin.register('list', 'harvesterhci.io.logging.flow', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.logging.flow.vue'));\n $plugin.register('list', 'harvesterhci.io.logging.output', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.logging.output.vue'));\n $plugin.register('list', 'harvesterhci.io.monitoring.alertmanagerconfig', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.monitoring.alertmanagerconfig.vue'));\n $plugin.register('list', 'harvesterhci.io.networkattachmentdefinition', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.networkattachmentdefinition.vue'));\n $plugin.register('list', 'harvesterhci.io.schedulevmbackup', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.schedulevmbackup.vue'));\n $plugin.register('list', 'harvesterhci.io.secret', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.secret.vue'));\n $plugin.register('list', 'harvesterhci.io.setting', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.setting.vue'));\n $plugin.register('list', 'harvesterhci.io.storage', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.storage.vue'));\n $plugin.register('list', 'harvesterhci.io.virtualmachinebackup', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.virtualmachinebackup.vue'));\n $plugin.register('list', 'harvesterhci.io.virtualmachineimage', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.virtualmachineimage.vue'));\n $plugin.register('list', 'harvesterhci.io.virtualmachinetemplateversion', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.virtualmachinetemplateversion.vue'));\n $plugin.register('list', 'harvesterhci.io.vmsnapshot', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.vmsnapshot.vue'));\n $plugin.register('list', 'harvesterhci.io.volume', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.volume.vue'));\n $plugin.register('list', 'harvesterhci.io.volumesnapshot', () => import(/* webpackChunkName: \"list\" */'@pkg/list/harvesterhci.io.volumesnapshot.vue'));\n $plugin.register('list', 'kubevirt.io.virtualmachine', () => import(/* webpackChunkName: \"list\" */'@pkg/list/kubevirt.io.virtualmachine.vue'));\n $plugin.register('list', 'network.harvesterhci.io.clusternetwork', () => import(/* webpackChunkName: \"list\" */'@pkg/list/network.harvesterhci.io.clusternetwork.vue'));\n $plugin.register('models', 'clusterroletemplatebinding', () => require(/* webpackChunkName: \"models\" */'@pkg/models/clusterroletemplatebinding.js'));\n $plugin.register('models', 'devices.harvesterhci.io.pcidevice', () => require(/* webpackChunkName: \"models\" */'@pkg/models/devices.harvesterhci.io.pcidevice.js'));\n $plugin.register('models', 'devices.harvesterhci.io.sriovgpudevice', () => require(/* webpackChunkName: \"models\" */'@pkg/models/devices.harvesterhci.io.sriovgpudevice.js'));\n $plugin.register('models', 'devices.harvesterhci.io.sriovnetworkdevice', () => require(/* webpackChunkName: \"models\" */'@pkg/models/devices.harvesterhci.io.sriovnetworkdevice.js'));\n $plugin.register('models', 'devices.harvesterhci.io.usbdevice', () => require(/* webpackChunkName: \"models\" */'@pkg/models/devices.harvesterhci.io.usbdevice.js'));\n $plugin.register('models', 'devices.harvesterhci.io.vgpudevice', () => require(/* webpackChunkName: \"models\" */'@pkg/models/devices.harvesterhci.io.vgpudevice.js'));\n $plugin.register('models', 'harvester/configmap', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/configmap.js'));\n $plugin.register('models', 'harvester/k8s.cni.cncf.io.networkattachmentdefinition', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/k8s.cni.cncf.io.networkattachmentdefinition.js'));\n $plugin.register('models', 'harvester/logging.banzaicloud.io.clusterflow', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/logging.banzaicloud.io.clusterflow.js'));\n $plugin.register('models', 'harvester/logging.banzaicloud.io.clusteroutput', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/logging.banzaicloud.io.clusteroutput.js'));\n $plugin.register('models', 'harvester/logging.banzaicloud.io.flow', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/logging.banzaicloud.io.flow.js'));\n $plugin.register('models', 'harvester/logging.banzaicloud.io.output', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/logging.banzaicloud.io.output.js'));\n $plugin.register('models', 'harvester/management.cattle.io.setting', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/management.cattle.io.setting.js'));\n $plugin.register('models', 'harvester/monitoring.coreos.com.alertmanagerconfig', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/monitoring.coreos.com.alertmanagerconfig.js'));\n $plugin.register('models', 'harvester/namespace', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/namespace.js'));\n $plugin.register('models', 'harvester/node', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/node.js'));\n $plugin.register('models', 'harvester/persistentvolumeclaim', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/persistentvolumeclaim.js'));\n $plugin.register('models', 'harvester/pod', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/pod.js'));\n $plugin.register('models', 'harvester/schema', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/schema.js'));\n $plugin.register('models', 'harvester/secret', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/secret.js'));\n $plugin.register('models', 'harvester/snapshot.storage.k8s.io.volumesnapshot', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/snapshot.storage.k8s.io.volumesnapshot.js'));\n $plugin.register('models', 'harvester/storage.k8s.io.storageclass', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester/storage.k8s.io.storageclass.js'));\n $plugin.register('models', 'harvester', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvester.js'));\n $plugin.register('models', 'harvesterhci.io.addon', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.addon.js'));\n $plugin.register('models', 'harvesterhci.io.blockdevice', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.blockdevice.js'));\n $plugin.register('models', 'harvesterhci.io.keypair', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.keypair.js'));\n $plugin.register('models', 'harvesterhci.io.schedulevmbackup', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.schedulevmbackup.js'));\n $plugin.register('models', 'harvesterhci.io.setting', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.setting.js'));\n $plugin.register('models', 'harvesterhci.io.supportbundle', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.supportbundle.js'));\n $plugin.register('models', 'harvesterhci.io.upgrade', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.upgrade.js'));\n $plugin.register('models', 'harvesterhci.io.upgradelog', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.upgradelog.js'));\n $plugin.register('models', 'harvesterhci.io.virtualmachinebackup', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.virtualmachinebackup.js'));\n $plugin.register('models', 'harvesterhci.io.virtualmachineimage', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.virtualmachineimage.js'));\n $plugin.register('models', 'harvesterhci.io.virtualmachinerestore', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.virtualmachinerestore.js'));\n $plugin.register('models', 'harvesterhci.io.virtualmachinetemplate', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.virtualmachinetemplate.js'));\n $plugin.register('models', 'harvesterhci.io.virtualmachinetemplateversion', () => require(/* webpackChunkName: \"models\" */'@pkg/models/harvesterhci.io.virtualmachinetemplateversion.js'));\n $plugin.register('models', 'k8s.cni.cncf.io.networkattachmentdefinition', () => require(/* webpackChunkName: \"models\" */'@pkg/models/k8s.cni.cncf.io.networkattachmentdefinition.js'));\n $plugin.register('models', 'kubevirt.io.virtualmachine', () => require(/* webpackChunkName: \"models\" */'@pkg/models/kubevirt.io.virtualmachine.js'));\n $plugin.register('models', 'kubevirt.io.virtualmachineinstance', () => require(/* webpackChunkName: \"models\" */'@pkg/models/kubevirt.io.virtualmachineinstance.js'));\n $plugin.register('models', 'loadbalancer.harvesterhci.io.ippool', () => require(/* webpackChunkName: \"models\" */'@pkg/models/loadbalancer.harvesterhci.io.ippool.js'));\n $plugin.register('models', 'loadbalancer.harvesterhci.io.loadbalancer', () => require(/* webpackChunkName: \"models\" */'@pkg/models/loadbalancer.harvesterhci.io.loadbalancer.js'));\n $plugin.register('models', 'longhorn.io.node', () => require(/* webpackChunkName: \"models\" */'@pkg/models/longhorn.io.node.js'));\n $plugin.register('models', 'metal.harvesterhci.io.inventory', () => require(/* webpackChunkName: \"models\" */'@pkg/models/metal.harvesterhci.io.inventory.js'));\n $plugin.register('models', 'network.harvesterhci.io.clusternetwork', () => require(/* webpackChunkName: \"models\" */'@pkg/models/network.harvesterhci.io.clusternetwork.js'));\n $plugin.register('models', 'network.harvesterhci.io.nodenetwork', () => require(/* webpackChunkName: \"models\" */'@pkg/models/network.harvesterhci.io.nodenetwork.js'));\n $plugin.register('models', 'network.harvesterhci.io.vlanconfig', () => require(/* webpackChunkName: \"models\" */'@pkg/models/network.harvesterhci.io.vlanconfig.js'));\n $plugin.register('models', 'network.harvesterhci.io.vlanstatus', () => require(/* webpackChunkName: \"models\" */'@pkg/models/network.harvesterhci.io.vlanstatus.js'));\n $plugin.register('promptRemove', 'kubevirt.io.virtualmachine', () => import(/* webpackChunkName: \"promptRemove\" */'@pkg/promptRemove/kubevirt.io.virtualmachine.vue'));\n $plugin.register('l10n', 'en-us', () => import('@pkg/l10n/en-us.yaml'));\n $plugin.register('dialog', 'CloneVmDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/CloneVmDialog.vue'));\n $plugin.register('dialog', 'ConfirmExecutionDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/ConfirmExecutionDialog.vue'));\n $plugin.register('dialog', 'ConfirmRelatedToRemoveDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/ConfirmRelatedToRemoveDialog.vue'));\n $plugin.register('dialog', 'DeepCloneVmDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/DeepCloneVmDialog.vue'));\n $plugin.register('dialog', 'EnablePciPassthrough', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/EnablePciPassthrough.vue'));\n $plugin.register('dialog', 'EnableSriovDevice', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/EnableSriovDevice.vue'));\n $plugin.register('dialog', 'EnableUSBPassthrough', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/EnableUSBPassthrough.vue'));\n $plugin.register('dialog', 'EnableVGpuDevice', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/EnableVGpuDevice.vue'));\n $plugin.register('dialog', 'HarvesterAddHotplugModal', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterAddHotplugModal.vue'));\n $plugin.register('dialog', 'HarvesterBackupModal', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterBackupModal.vue'));\n $plugin.register('dialog', 'HarvesterCloneTemplate', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterCloneTemplate.vue'));\n $plugin.register('dialog', 'HarvesterEjectCDROMDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterEjectCDROMDialog.vue'));\n $plugin.register('dialog', 'HarvesterExportImageDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterExportImageDialog.vue'));\n $plugin.register('dialog', 'HarvesterMaintenanceDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterMaintenanceDialog.vue'));\n $plugin.register('dialog', 'HarvesterMigrationDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterMigrationDialog.vue'));\n $plugin.register('dialog', 'HarvesterQuotaDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterQuotaDialog.vue'));\n $plugin.register('dialog', 'HarvesterRestoreDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterRestoreDialog.vue'));\n $plugin.register('dialog', 'HarvesterSupportBundle', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterSupportBundle.vue'));\n $plugin.register('dialog', 'HarvesterUnplugVolume', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterUnplugVolume.vue'));\n $plugin.register('dialog', 'HarvesterVMSnapshotDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterVMSnapshotDialog.vue'));\n $plugin.register('dialog', 'HarvesterVlanConfigMigrateDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/HarvesterVlanConfigMigrateDialog.vue'));\n $plugin.register('dialog', 'MessageBox', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/MessageBox.vue'));\n $plugin.register('dialog', 'RestartVMDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/RestartVMDialog.vue'));\n $plugin.register('dialog', 'RestoreSnapshotDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/RestoreSnapshotDialog.vue'));\n $plugin.register('dialog', 'SnapshotDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/SnapshotDialog.vue'));\n $plugin.register('dialog', 'VolumeCloneDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/VolumeCloneDialog.vue'));\n $plugin.register('formatters', 'AttachVMWithName', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/AttachVMWithName.vue'));\n $plugin.register('formatters', 'BackupCreatedFrom', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/BackupCreatedFrom.vue'));\n $plugin.register('formatters', 'CloudInitType', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/CloudInitType.vue'));\n $plugin.register('formatters', 'HarvesterBackupProgressBar', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterBackupProgressBar.vue'));\n $plugin.register('formatters', 'HarvesterBackupTargetValidation', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterBackupTargetValidation.vue'));\n $plugin.register('formatters', 'HarvesterCPUPinning', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterCPUPinning.vue'));\n $plugin.register('formatters', 'HarvesterCPUUsed', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterCPUUsed.vue'));\n $plugin.register('formatters', 'HarvesterCronExpression', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterCronExpression.vue'));\n $plugin.register('formatters', 'HarvesterDiskState', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterDiskState.vue'));\n $plugin.register('formatters', 'HarvesterHost', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterHost.vue'));\n $plugin.register('formatters', 'HarvesterIpAddress', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterIpAddress.vue'));\n $plugin.register('formatters', 'HarvesterListener', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterListener.vue'));\n $plugin.register('formatters', 'HarvesterMemoryUsed', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterMemoryUsed.vue'));\n $plugin.register('formatters', 'HarvesterMigrationState', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterMigrationState.vue'));\n $plugin.register('formatters', 'HarvesterStorageUsed', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterStorageUsed.vue'));\n $plugin.register('formatters', 'HarvesterVFAddress', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterVFAddress.vue'));\n $plugin.register('formatters', 'HarvesterVFsNum', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterVFsNum.vue'));\n $plugin.register('formatters', 'HarvesterVGpuDevices', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterVGpuDevices.vue'));\n $plugin.register('formatters', 'HarvesterVmState', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterVmState.vue'));\n $plugin.register('formatters', 'HarvesterVolumeState', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/HarvesterVolumeState.vue'));\n $plugin.register('formatters', 'NetworkRouteConnectivity', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/NetworkRouteConnectivity.vue'));\n $plugin.register('formatters', 'RelatedVolumeSnapshotCounts', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/RelatedVolumeSnapshotCounts.vue'));\n $plugin.register('formatters', 'SnapshotTargetVolume', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/SnapshotTargetVolume.vue'));\n $plugin.register('formatters', 'StateWithPopover', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/StateWithPopover.vue'));\n};\n","<script>\nimport { PRODUCT_NAME } from '../../../config/harvester';\nimport { HCI } from '../../../types';\n\nexport default {\n beforeCreate() {\n this.$router.replace({\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n params: {\n ...this.$router.currentRoute.params,\n product: PRODUCT_NAME,\n resource: HCI.DASHBOARD\n }\n });\n }\n};\n</script>\n\n<template>\n <div>\n This is harvester Dashboard.\n </div>\n</template>\n","import { render } from \"./index.vue?vue&type=template&id=542a3d8b\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { PLUGIN_DEVELOPER, DEV } from '@shell/store/prefs';\nimport BannerGraphic from '@shell/components/BannerGraphic';\nimport IndentedPanel from '@shell/components/IndentedPanel';\nimport CommunityLinks from '@shell/components/CommunityLinks';\nimport { SCHEMA } from '@shell/config/types';\nimport HarvesterSupportBundle from '../../../../dialog/HarvesterSupportBundle';\nimport { HCI } from '../../../../types';\nimport { DOC } from '../../../../config/doc-links';\nimport { docLink } from '../../../../utils/feature-flags';\n\nexport default {\n components: {\n BannerGraphic,\n IndentedPanel,\n CommunityLinks,\n HarvesterSupportBundle\n },\n\n data() {\n return {\n options: {\n 'footer.docs': 'https://docs.harvesterhci.io',\n 'footer.forums': 'https://forums.rancher.com/c/harvester/',\n 'footer.slack': 'https://slack.rancher.io',\n 'footer.issue': 'https://github.com/harvester/harvester/issues/new/choose'\n }\n };\n },\n\n computed: {\n ...mapGetters(['currentCluster']),\n\n dev() {\n try {\n return this.$store.getters['prefs/get'](PLUGIN_DEVELOPER);\n } catch {\n return this.$store.getters['prefs/get'](DEV);\n }\n },\n\n title() {\n return 'harvester.support.title';\n },\n\n showSupportBundle() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return !!this.$store.getters[`${ inStore }/byId`](\n SCHEMA,\n HCI.SUPPORT_BUNDLE\n );\n },\n\n internalPrefix() {\n const host = window.location.host;\n const prefix = window.location.pathname.replace(this.$route.path, '');\n const params = this.$route?.params;\n\n return {\n host, prefix, params\n };\n },\n\n rancherLink() {\n const { host, prefix, params } = this.internalPrefix;\n\n return `https://${ host }${ prefix }/c/${ params.cluster }/explorer`;\n },\n\n longhornLink() {\n const { host, params } = this.internalPrefix;\n\n return `https://${ host }/k8s/clusters/${ params.cluster }/api/v1/namespaces/longhorn-system/services/http:longhorn-frontend:80/proxy/#/dashboard`;\n },\n\n rancherIntegrationLink() {\n const version = this.$store.getters['harvester-common/getServerVersion']();\n\n return docLink(DOC.RANCHER_INTEGRATION_URL, version);\n },\n },\n\n methods: {\n open() {\n this.$store.commit('harvester-common/toggleBundleModal', true);\n },\n\n }\n};\n</script>\n\n<template>\n <div>\n <BannerGraphic :title=\"t(title, {}, true)\" />\n\n <IndentedPanel>\n <div class=\"content mt-20\">\n <div class=\"promo\">\n <div\n v-if=\"showSupportBundle\"\n class=\"box mb-20 box-primary\"\n >\n <h2>\n {{ t('harvester.modal.bundle.title') }}\n </h2>\n <div>\n <p class=\"pb-10\">\n {{ t('harvester.modal.bundle.titleDescription') }}\n </p>\n <button\n class=\"btn role-secondary btn-sm\"\n type=\"button\"\n @click=\"open\"\n >\n {{ t('harvester.modal.bundle.title') }}\n </button>\n </div>\n </div>\n <div\n class=\"box box-primary\"\n :class=\"{'mb-20': dev }\"\n >\n <h2>\n {{ t('harvester.support.kubeconfig.title') }}\n </h2>\n <div>\n <p class=\"pb-10\">\n {{ t('harvester.support.kubeconfig.titleDescription') }}\n </p>\n <button\n class=\"btn role-secondary btn-sm\"\n type=\"button\"\n @click=\"currentCluster.downloadKubeConfig()\"\n >\n {{ t('harvester.support.kubeconfig.title') }}\n </button>\n </div>\n </div>\n <div\n v-if=\"dev\"\n class=\"row\"\n >\n <div class=\"col span-6 box box-primary\">\n <h2>\n <a\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n :href=\"rancherLink\"\n >{{ t('harvester.support.internal.rancher.title') }} <i class=\"icon icon-external-link\" /></a>\n </h2>\n <div>\n <p class=\"warning\">\n <t\n k=\"harvester.support.internal.rancher.titleDescription\"\n :raw=\"true\"\n :url=\"rancherIntegrationLink\"\n />\n </p>\n </div>\n </div>\n <div class=\"col span-6 box box-primary\">\n <h2>\n <a\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n :href=\"longhornLink\"\n >{{ t('harvester.support.internal.longhorn.title') }} <i class=\"icon icon-external-link\" /></a>\n </h2>\n <div>\n <p class=\"warning\">\n <t\n k=\"harvester.support.internal.longhorn.titleDescription\"\n :raw=\"true\"\n />\n </p>\n </div>\n </div>\n </div>\n </div>\n <div class=\"community\">\n <CommunityLinks :link-options=\"options\" />\n </div>\n <div class=\"external\">\n <a\n href=\"https://www.suse.com/suse-harvester/support-matrix/all-supported-versions\"\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n >{{ t('harvester.support.community.learnMore') }} <i class=\"icon icon-external-link\" /></a>\n or\n <a\n href=\"https://www.suse.com/products/harvester/\"\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n >{{ t('harvester.support.community.pricing') }} <i class=\"icon icon-external-link\" /></a>\n </div>\n </div>\n </IndentedPanel>\n <HarvesterSupportBundle v-if=\"showSupportBundle\" />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.content {\n display: grid;\n grid-column-gap: 20px;\n grid-row-gap: 20px;\n grid-template-columns: 70% 30%;\n}\n\n.only-community {\n display: grid;\n grid-template-columns: 100%;\n}\n\n.community {\n border-left: 1px solid var(--border);\n padding-left: 20px;\n > h2 {\n font-size: 18px;\n font-weight: 300;\n margin-bottom: 20px;\n }\n .support-link {\n margin: 10px 0;\n }\n}\n\n.box {\n padding: 20px;\n border: 1px solid var(--border);\n\n &.box-primary {\n border-color: var(--primary);\n }\n\n > h2 {\n font-size: 20px;\n font-weight: 300;\n }\n\n > div {\n font-weight: 300;\n line-height: 18px;\n opacity: 0.8;\n }\n}\n\n.role-secondary {\n &:focus {\n background-color: transparent;\n }\n}\n\n.warning {\n margin: 0 -5px 0 -5px;\n padding: 5px;\n background-color: var(--warning-banner-bg);\n}\n</style>\n","<script>\nimport Closeable from '@shell/mixins/closeable';\nimport BrandImage from '@shell/components/BrandImage';\n\nexport default {\n components: { BrandImage },\n mixins: [Closeable],\n\n props: {\n title: {\n type: String,\n default: null,\n },\n titleKey: {\n type: String,\n default: null,\n },\n\n small: {\n type: Boolean,\n default: false\n }\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"shown\"\n class=\"banner-graphic\"\n :class=\"{'small': small}\"\n >\n <div class=\"graphic\">\n <BrandImage\n class=\"banner\"\n data-testid=\"banner-brand__img\"\n file-name=\"banner.svg\"\n :draggable=\"false\"\n />\n </div>\n <div\n v-if=\"titleKey\"\n data-testid=\"banner-title-key\"\n class=\"title\"\n >\n <t :k=\"titleKey\" />\n </div>\n <h1\n v-else-if=\"title\"\n v-clean-html=\"title\"\n data-testid=\"banner-title\"\n class=\"title\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n $banner-height: 240px;\n $banner-height-small: 200px;\n\n .banner-graphic {\n position: relative;\n\n .graphic {\n display: flex;\n flex-direction: column;\n height: $banner-height;\n overflow: hidden;\n > img.banner {\n flex: 1;\n object-fit: cover;\n }\n }\n .title {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n text-align: center;\n top: 0;\n height: 100%;\n width: 100%;\n margin-top: -20px;\n }\n &.small {\n .graphic {\n height: $banner-height-small;\n img.banner {\n margin-top: math.div(($banner-height-small - $banner-height), 2);\n }\n }\n }\n }\n</style>\n","<script>\nimport { mapGetters } from 'vuex';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { SETTING } from '@shell/config/settings';\n\nexport default {\n props: {\n fileName: {\n type: String,\n required: true\n },\n dark: {\n type: Boolean,\n default: false\n },\n supportCustomLogo: {\n type: Boolean,\n default: false\n }\n },\n data() {\n const managementSettings = this.$store.getters['management/all'](MANAGEMENT.SETTING);\n\n const uiLoginBackgroundLight = managementSettings?.filter((setting) => setting.id === SETTING.LOGIN_BACKGROUND_LIGHT)?.[0]?.value;\n const uiLoginBackgroundDark = managementSettings?.filter((setting) => setting.id === SETTING.LOGIN_BACKGROUND_DARK)?.[0]?.value;\n\n return {\n managementSettings,\n\n /**\n * Login settings fields don't require reactivity; the correct value for those fields is the initial one.\n * This will avoid side effects after the management store is reset when landing on login page.\n */\n uiLoginBackgroundLight,\n uiLoginBackgroundDark,\n };\n },\n computed: {\n ...mapGetters({ theme: 'prefs/theme' }),\n\n brand() {\n const setting = this.managementSettings.filter((setting) => setting.id === SETTING.BRAND)[0] || {};\n\n return setting.value;\n },\n\n uiLogoLight() {\n const setting = this.managementSettings.filter((setting) => setting.id === SETTING.LOGO_LIGHT)[0] || {};\n\n return setting.value;\n },\n\n uiLogoDark() {\n const setting = this.managementSettings.filter((setting) => setting.id === SETTING.LOGO_DARK)[0] || {};\n\n return setting.value;\n },\n\n uiBannerLight() {\n const setting = this.managementSettings.filter((setting) => setting.id === SETTING.BANNER_LIGHT)[0] || {};\n\n return setting.value;\n },\n\n uiBannerDark() {\n const setting = this.managementSettings.filter((setting) => setting.id === SETTING.BANNER_DARK)[0] || {};\n\n return setting.value;\n },\n\n defaultPathToBrandedImage() {\n const themePrefix = this.theme === 'dark' ? 'dark/' : '';\n\n try {\n return require(`~shell/assets/images/pl/${ themePrefix }${ this.fileName }`);\n } catch {\n return require(`~shell/assets/images/pl/${ this.fileName }`);\n }\n },\n\n pathToBrandedImage() {\n if (this.fileName === 'rancher-logo.svg' || this.supportCustomLogo) {\n if (this.theme === 'dark' && this.uiLogoDark) {\n return this.uiLogoDark;\n }\n\n if (this.uiLogoLight) {\n return this.uiLogoLight;\n }\n }\n\n if (this.fileName === 'banner.svg') {\n if (this.theme === 'dark' && this.uiBannerDark) {\n return this.uiBannerDark;\n }\n\n if (this.uiBannerLight) {\n return this.uiBannerLight;\n }\n }\n\n if (this.fileName === 'login-landscape.svg') {\n if (this.theme === 'dark' && this.uiLoginBackgroundDark) {\n return this.uiLoginBackgroundDark;\n }\n\n if (this.uiLoginBackgroundLight) {\n return this.uiLoginBackgroundLight;\n }\n }\n\n if (!this.brand) {\n return this.defaultPathToBrandedImage;\n } else {\n if (this.theme === 'dark' || this.dark) {\n try {\n return require(`~shell/assets/brand/${ this.brand }/dark/${ this.fileName }`);\n } catch {}\n }\n try {\n return require(`~shell/assets/brand/${ this.brand }/${ this.fileName }`);\n } catch {}\n\n return this.defaultPathToBrandedImage;\n }\n },\n }\n};\n</script>\n<template>\n <img\n v-bind=\"$attrs\"\n :src=\"pathToBrandedImage\"\n >\n</template>\n","import { render } from \"./BrandImage.vue?vue&type=template&id=f4334faa\"\nimport script from \"./BrandImage.vue?vue&type=script&lang=js\"\nexport * from \"./BrandImage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./BannerGraphic.vue?vue&type=template&id=892b88ea\"\nimport script from \"./BannerGraphic.vue?vue&type=script&lang=js\"\nexport * from \"./BannerGraphic.vue?vue&type=script&lang=js\"\n\nimport \"./BannerGraphic.vue?vue&type=style&index=0&id=892b88ea&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nexport default {};\n</script>\n\n<template>\n <div\n class=\"indented-panel\"\n >\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n .indented-panel {\n height: 100%;\n width: 90%;\n margin-left: 5%;\n }\n\n @media only screen and (max-width: map-get($breakpoints, '--viewport-9')) {\n .indented-panel {\n margin: 0 20px;\n width: initial;\n }\n }\n</style>\n","import { render } from \"./IndentedPanel.vue?vue&type=template&id=16af4bc4\"\nimport script from \"./IndentedPanel.vue?vue&type=script&lang=js\"\nexport * from \"./IndentedPanel.vue?vue&type=script&lang=js\"\n\nimport \"./IndentedPanel.vue?vue&type=style&index=0&id=16af4bc4&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport SimpleBox from '@shell/components/SimpleBox';\nimport AppModal from '@shell/components/AppModal.vue';\nimport Closeable from '@shell/mixins/closeable';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { SETTING } from '@shell/config/settings';\nimport { mapGetters } from 'vuex';\nimport { isRancherPrime } from '@shell/config/version';\nimport { fetchLinks } from '@shell/config/home-links';\nimport { processLink } from '@shell/plugins/clean-html';\n\n// i18n-ignore footer.wechat.title, footer.wechat.modalText, footer.wechat.modalText2\nexport default {\n name: 'CommunityLinks',\n\n components: { SimpleBox, AppModal },\n\n props: {\n linkOptions: {\n type: Object,\n default: () => {\n return {};\n },\n },\n isSupportPage: {\n type: Boolean,\n default: false,\n },\n },\n\n mixins: [Closeable],\n\n async fetch() {\n this.links = await fetchLinks(this.$store, this.hasSupport, this.isSupportPage, (str) => this.t(str));\n },\n\n data() {\n return { links: {}, showWeChatModal: false };\n },\n\n computed: {\n ...mapGetters('i18n', [\n 'selectedLocaleLabel'\n ]),\n\n hasOptions() {\n return !!Object.keys(this.options).length || !!Object.keys(this.$slots).length;\n },\n\n hasSupport() {\n return isRancherPrime() || this.$store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.SUPPORTED )?.value === 'true';\n },\n\n options() {\n // Use linkOptions if provided - used by Harvester\n if (this.linkOptions && Object.keys(this.linkOptions).length) {\n const options = [];\n\n Object.keys(this.linkOptions).forEach((key) => {\n options.push({\n key,\n label: this.t(key),\n value: this.linkOptions[key]\n });\n });\n\n return options;\n }\n\n // Combine the links\n const all = [];\n\n if (this.links.custom) {\n all.push(...this.links.custom);\n }\n\n if (this.links.defaults) {\n all.push(...this.links.defaults.filter((link) => link.enabled));\n }\n\n // Process the links\n return all.map((item) => ({\n ...item,\n value: processLink(item.value)\n }));\n }\n },\n methods: {\n show() {\n this.showWeChatModal = true;\n },\n close() {\n this.showWeChatModal = false;\n }\n },\n};\n</script>\n\n<template>\n <div v-if=\"hasOptions\">\n <SimpleBox\n :pref=\"pref\"\n :pref-key=\"prefKey\"\n >\n <template #title>\n <h2>\n {{ t('customLinks.displayTitle') }}\n </h2>\n </template>\n <div\n v-for=\"(link, i) in options\"\n :key=\"i\"\n class=\"support-link\"\n >\n <router-link\n v-if=\"link.value.startsWith('/') \"\n :to=\"link.value\"\n role=\"link\"\n :aria-label=\"link.label\"\n >\n {{ link.label }}\n </router-link>\n <a\n v-else\n :href=\"link.value\"\n rel=\"noopener noreferrer nofollow\"\n target=\"_blank\"\n role=\"link\"\n :aria-label=\"link.label\"\n > {{ link.label }} </a>\n </div>\n <slot />\n <div\n v-if=\"selectedLocaleLabel === t('locale.zh-hans')\"\n class=\"support-link\"\n >\n <a\n class=\"link\"\n tabindex=\"0\"\n :aria-label=\"t('footer.wechat.title')\"\n role=\"link\"\n @click=\"show\"\n @keyup.enter=\"show\"\n >\n {{ t('footer.wechat.title') }}\n </a>\n </div>\n </SimpleBox>\n <app-modal\n v-if=\"showWeChatModal\"\n name=\"wechat-modal\"\n height=\"auto\"\n :width=\"640\"\n @close=\"close\"\n >\n <div class=\"wechat-modal\">\n <h1>{{ t('footer.wechat.modalText') }}</h1>\n <h1>{{ t('footer.wechat.modalText2') }}</h1>\n <div class=\"qr-img\" />\n <div>\n <button\n class=\"btn role-primary\"\n tabindex=\"0\"\n :aria-label=\"t('generic.close')\"\n role=\"button\"\n @click=\"close\"\n @keyup.enter=\"close\"\n @keyup.space=\"close\"\n >\n {{ t('generic.close') }}\n </button>\n </div>\n </div>\n </app-modal>\n </div>\n</template>\n\n<style lang='scss' scoped>\n h2 {\n display: flex;\n align-items: center;\n\n i {\n font-size: 12px;\n margin-left: 5px;\n }\n }\n .support-link:not(:last-child) {\n margin-bottom: 15px;\n }\n\n .wechat-modal {\n margin: 60px;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n .link {\n cursor: pointer;\n }\n\n .btn {\n margin: 20px auto 0;\n }\n\n .qr-img {\n background-image: url('../assets/images/wechat-qr-code.jpg');\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center center;\n height: 128px;\n width: 128px;\n margin: 15px auto 10px;\n }\n</style>\n","import { DOCS_BASE } from '@shell/config/private-label';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { SETTING } from '@shell/config/settings';\nimport { allHash } from '@shell/utils/promise';\nimport { isRancherPrime } from '@shell/config/version';\n\n// i18n-uses customLinks.defaults.*\nconst DEFAULT_LINKS = [\n {\n key: 'docs',\n value: DOCS_BASE,\n enabled: true,\n },\n {\n key: 'forums',\n value: 'https://forums.rancher.com/',\n enabled: true,\n },\n {\n key: 'slack',\n value: 'https://slack.rancher.io/',\n enabled: true,\n },\n {\n key: 'issues',\n value: 'https://github.com/rancher/dashboard/issues/new/choose',\n enabled: true,\n },\n {\n key: 'getStarted',\n value: `${ DOCS_BASE }/getting-started/overview`,\n enabled: true,\n },\n];\n\nconst COLLECTIVE_LINK_ID = 'suseCollective';\n\nconst APP_COLLECTION_LINK = {\n key: 'appCo',\n value: 'https://apps.rancher.io/',\n enabled: true,\n};\n\nconst SUPPORT_LINK = {\n key: 'commercialSupport',\n value: '/support',\n enabled: true,\n readonly: true\n};\n\nconst CN_FORUMS_LINK = {\n key: 'cnforums',\n value: 'https://forums.rancher.cn/',\n enabled: true,\n};\n\n// We add a version attribute to the setting so we know what has been migrated and which version of the setting we have\nexport const CUSTOM_LINKS_VERSION = 'v1';\n\n// Version with SUSE Collective link added (Prime)\nexport const CUSTOM_LINKS_COLLECTIVE_VERSION = 'v1.1';\n\n// Version with Application Collective added (Prime)\nexport const CUSTOM_LINKS_APP_CO_VERSION = 'v1.2';\n\n// Fetch the settings required for the links, taking into account legacy settings if we have not migrated\nexport async function fetchLinks(store, hasSupport, isSupportPage, t) {\n let uiLinks = {};\n\n try {\n const uiLinksSetting = await store.dispatch('management/find', { type: MANAGEMENT.SETTING, id: SETTING.UI_CUSTOM_LINKS });\n\n // Don't try and parse empty string\n if (uiLinksSetting.value) {\n uiLinks = JSON.parse(uiLinksSetting.value);\n }\n } catch (e) {\n console.warn('Could not parse custom link settings', e); // eslint-disable-line no-console\n }\n\n // If uiLinks is set and has the correct version, then we are okay, otherwise we need to migrate from the old settings\n if (uiLinks?.version?.startsWith(CUSTOM_LINKS_VERSION)) {\n // v1 or v1.1 > v1.2 migration\n if (uiLinks?.version === CUSTOM_LINKS_VERSION || uiLinks?.version === CUSTOM_LINKS_COLLECTIVE_VERSION) {\n uiLinks.version = CUSTOM_LINKS_APP_CO_VERSION;\n\n // Add collective link so that it is enabled by default\n if (!uiLinks.defaults.includes(APP_COLLECTION_LINK.key)) {\n uiLinks.defaults.push(APP_COLLECTION_LINK.key);\n }\n\n // Delete the SUSE Collective link if it is there since it has been removed\n uiLinks.defaults = uiLinks.defaults.filter((link) => link !== COLLECTIVE_LINK_ID);\n }\n\n // Map out the default settings, as we only store keys of the ones to show\n if (uiLinks.defaults) {\n const defaults = [...DEFAULT_LINKS];\n\n // Add Prime link if necessary\n if (isRancherPrime()) {\n defaults.push(APP_COLLECTION_LINK);\n }\n\n // Map the link name stored to the default link, if it exists\n defaults.forEach((link) => {\n const enabled = uiLinks.defaults.find((linkName) => linkName === link.key);\n\n link.enabled = !!enabled;\n });\n\n uiLinks.defaults = defaults;\n }\n\n return ensureSupportLink(uiLinks, hasSupport, isSupportPage, t, store);\n }\n\n // No new setting, so return the required structure\n // We don't migrate here, as we may not have permissions to create the setting\n const links = {\n version: CUSTOM_LINKS_VERSION,\n defaults: [...DEFAULT_LINKS],\n custom: []\n };\n\n // Add prime link (application collection) if necessary\n if (isRancherPrime()) {\n links.defaults.push(APP_COLLECTION_LINK);\n }\n\n // There are two legacy settings:\n // SETTING.ISSUES - can specify a custom link to use for 'File an issue'\n // SETTING.COMMUNITY_LINKS - can specify whether to hide all of the default links (other than 'File an issue')\n try {\n const { uiIssuesSetting, uiCommunitySetting } = await allHash({\n uiIssuesSetting: store.dispatch('management/find', { type: MANAGEMENT.SETTING, id: SETTING.ISSUES }),\n uiCommunitySetting: store.dispatch('management/find', { type: MANAGEMENT.SETTING, id: SETTING.COMMUNITY_LINKS })\n });\n\n // Should we show the default set of links?\n if (uiCommunitySetting?.value === 'false') {\n // Hide all of the default links\n links.defaults.forEach((link) => (link.enabled = false));\n }\n\n // Do we have a custom 'File an issue' link ?\n if (uiIssuesSetting?.value) {\n links.custom.push({\n label: t ? t('customLinks.defaults.issues') : 'Issues',\n value: uiIssuesSetting.value\n });\n\n // Hide the default 'File an issue' link\n const issueLink = links.defaults?.find((link) => link.key === 'issues');\n\n if (issueLink) {\n issueLink.enabled = false;\n issueLink.readOnly = true;\n }\n }\n } catch (e) {\n console.warn('Could not parse legacy link settings', e); // eslint-disable-line no-console\n }\n\n return ensureSupportLink(links, hasSupport, isSupportPage, t, store);\n}\n\n// Ensure the support link is added if needed\nexport function ensureSupportLink(links, hasSupport, isSupportPage, t, store) {\n if (!hasSupport && !isSupportPage) {\n const supportLink = links.defaults?.find((link) => link.key === 'commercialSupport');\n\n if (!supportLink) {\n links.defaults.push(SUPPORT_LINK);\n }\n }\n\n const selectedLocaleLabel = store.getters['i18n/selectedLocaleLabel'];\n\n if (selectedLocaleLabel === t('locale.zh-hans')) {\n links.defaults.push(CN_FORUMS_LINK);\n }\n\n // Localise the default links\n links.defaults = links.defaults.map((link) => {\n return {\n ...link,\n label: t(`'customLinks.defaults.${ link.key }`)\n };\n });\n\n // Ensure that if any custom links have the same name as a default link, we use the custom link\n const customNamesMap = links.custom.reduce((linkMap, link) => {\n linkMap[link.label] = link;\n\n return linkMap;\n }, {});\n\n // If any custom links have the same name as a default link, then hide and mark readonly the default link\n // Main use case if the 'File an Issue' link when migrating the old settings\n links.defaults.forEach((link) => {\n if (customNamesMap[link.label]) {\n link.enabled = false;\n link.readonly = true;\n }\n });\n\n return links;\n}\n","import DOMPurify from 'dompurify';\nimport { uniq } from '@shell/utils/array';\n\nconst ALLOWED_TAGS = [\n 'code',\n 'li',\n 'a',\n 'p',\n 'b',\n 'br',\n 'ul',\n 'pre',\n 'span',\n 'div',\n 'i',\n 'em',\n 'strong',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'table',\n 'thead',\n 'tr',\n 'th',\n 'tbody',\n 'td',\n 'blockquote'\n];\n\nlet linkInterceptors = [];\n\n// Allow 'A' tags to keep the target=_blank attribute if they have it\nDOMPurify.addHook('uponSanitizeAttribute', (node, data) => {\n if (node.tagName === 'A' && data.attrName === 'target' && data.attrValue === '_blank') {\n data.forceKeepAttr = true;\n }\n});\n\n// Ensure if an 'A' tag has target=_blank that we add noopener, noreferrer and nofollow to the 'rel' attribute\nDOMPurify.addHook('afterSanitizeAttributes', (node) => {\n if (node.tagName === 'A' && node?.target === '_blank') {\n const rel = ['noopener', 'noreferrer', 'nofollow'];\n const existingRel = node.rel?.length ? node.rel.split(' ') : [];\n const combined = uniq([...rel, ...existingRel]);\n\n node.setAttribute('rel', combined.join(' '));\n }\n\n if (node.tagName === 'A' && linkInterceptors.length) {\n let link = node.href;\n\n // Allow each interceptor to modify the link href\n link = processLink(link);\n\n // If the link is different from the original update the href\n if (link !== node.href) {\n node.href = link;\n }\n }\n});\n\nexport const purifyHTML = (value, options = { ALLOWED_TAGS }) => {\n return DOMPurify.sanitize(value, options);\n};\n\n// Link Interceptors are typically used to allow different doc links to be used\n\nexport function addLinkInterceptor(fn, name) {\n // Check the arg is not undefined and is a function\n if (fn && typeof fn === 'function') {\n linkInterceptors.push(fn);\n } else {\n if (name) {\n console.error(`Invalid link interceptor function for ${ name }`); // eslint-disable-line no-console\n } else {\n console.error('Invalid link interceptor function'); // eslint-disable-line no-console\n }\n }\n}\n\nexport function removeLinkInterceptor(fn) {\n linkInterceptors = linkInterceptors.filter((item) => item !== fn);\n}\n\n/**\n * Process a link through all of the link interceptors\n */\nexport function processLink(link) {\n // Allow each interceptor to modify the link href\n for (let i = 0; i < linkInterceptors.length; i++) {\n const updated = linkInterceptors[i](link);\n\n // If a value if returned, use that in place of the original value\n if (updated) {\n link = updated;\n }\n }\n\n return link;\n}\n","import { render } from \"./CommunityLinks.vue?vue&type=template&id=05573032&scoped=true\"\nimport script from \"./CommunityLinks.vue?vue&type=script&lang=js\"\nexport * from \"./CommunityLinks.vue?vue&type=script&lang=js\"\n\nimport \"./CommunityLinks.vue?vue&type=style&index=0&id=05573032&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-05573032\"]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=74e3f663&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=74e3f663&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-74e3f663\"]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport { HCI } from '../../../../../types';\nimport SerialConsole from '../../../../../components/SerialConsole';\n\nexport default {\n components: { SerialConsole, Loading },\n\n async fetch() {\n this.rows = await this.$store.dispatch('harvester/findAll', { type: HCI.VMI });\n },\n\n data() {\n return { uid: this.$route.params.uid };\n },\n\n computed: {\n vmi() {\n const vmiList = this.$store.getters['harvester/all'](HCI.VMI) || [];\n const vmi = vmiList.find( (VMI) => {\n return VMI?.metadata?.ownerReferences?.[0]?.uid === this.uid;\n });\n\n return vmi;\n },\n },\n\n mounted() {\n window.addEventListener('beforeunload', () => {\n this.$refs.serialConsole.close();\n });\n },\n\n head() {\n return { title: this.vmi?.metadata?.name };\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <SerialConsole\n v-else\n ref=\"serialConsole\"\n v-model:value=\"vmi\"\n />\n</template>\n\n<style lang=\"scss\" scoped>\n body, #__nuxt, #__layout, main {\n height: 100%;\n }\n</style>\n","<script>\nimport { allHash } from '@shell/utils/promise';\nimport debounce from 'lodash/debounce';\n\nimport Socket, {\n EVENT_CONNECTED,\n EVENT_CONNECTING,\n EVENT_DISCONNECTED,\n EVENT_MESSAGE,\n EVENT_CONNECT_ERROR,\n} from '@shell/utils/socket';\n\nexport default {\n emits: ['close'],\n\n props: {\n value: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n return {\n socket: null,\n terminal: null,\n fitAddon: null,\n searchAddon: null,\n webglAddon: null,\n isOpen: false,\n isOpening: false,\n backlog: [],\n firstTime: true,\n queue: []\n };\n },\n\n computed: {\n xtermConfig() {\n return {\n allowProposedApi: true,\n cursorBlink: true,\n useStyle: true,\n fontSize: 12,\n };\n },\n },\n\n watch: {\n queue: {\n handler: debounce(async function(neu) {\n if (neu.length === 0) {\n return;\n }\n\n const msg = await Promise.all(neu);\n\n (msg || []).forEach((m) => {\n this.terminal.write(m);\n });\n\n this.queue = [];\n }, 10),\n deep: true\n }\n },\n\n beforeUnmount() {\n this.close();\n },\n\n async mounted() {\n await this.setupTerminal();\n await this.connect();\n },\n\n methods: {\n async setupTerminal() {\n const docStyle = getComputedStyle(document.querySelector('body'));\n const xterm = await import(/* webpackChunkName: \"xterm\" */ 'xterm');\n\n const addons = await allHash({\n fit: import(/* webpackChunkName: \"xterm\" */ 'xterm-addon-fit'),\n webgl: import(/* webpackChunkName: \"xterm\" */ 'xterm-addon-webgl'),\n weblinks: import(/* webpackChunkName: \"xterm\" */ 'xterm-addon-web-links'),\n search: import(/* webpackChunkName: \"xterm\" */ 'xterm-addon-search'),\n });\n\n const terminal = new xterm.Terminal({\n theme: {\n background: docStyle.getPropertyValue('--terminal-bg').trim(),\n cursor: docStyle.getPropertyValue('--terminal-cursor').trim(),\n foreground: docStyle.getPropertyValue('--terminal-text').trim()\n },\n ...this.xtermConfig,\n });\n\n this.fitAddon = new addons.fit.FitAddon();\n this.searchAddon = new addons.search.SearchAddon();\n\n try {\n this.webglAddon = new addons.webgl.WebGlAddon();\n } catch (e) {\n // Some browsers (Safari) don't support the webgl renderer, so don't use it.\n this.webglAddon = null;\n }\n\n terminal.loadAddon(this.fitAddon);\n terminal.loadAddon(this.searchAddon);\n terminal.loadAddon(new addons.weblinks.WebLinksAddon());\n terminal.open(this.$refs.xterm);\n\n if ( this.webglAddon ) {\n terminal.loadAddon(this.webglAddon);\n }\n\n this.fit();\n this.flush();\n\n terminal.onData((input) => {\n const msg = this.str2ab(input);\n\n this.write(msg);\n });\n\n this.terminal = terminal;\n },\n\n str2ab(str) {\n const enc = new TextEncoder();\n\n return enc.encode(str);\n },\n\n write(msg) {\n if ( this.isOpen ) {\n this.socket.send(msg);\n } else {\n this.backlog.push(msg);\n }\n },\n\n clear() {\n this.terminal.clear();\n },\n\n getSocketUrl() {\n return `${ this.value?.getSerialConsolePath }`;\n },\n\n async connect() {\n if ( this.socket ) {\n await this.socket.disconnect();\n this.socket = null;\n this.terminal.reset();\n }\n\n const url = this.getSocketUrl();\n\n if ( !url ) {\n return;\n }\n\n this.socket = new Socket(url);\n\n this.socket.addEventListener(EVENT_CONNECTING, (e) => {\n this.isOpen = false;\n this.isOpening = true;\n });\n\n this.socket.addEventListener(EVENT_CONNECT_ERROR, (e) => {\n this.isOpen = false;\n this.isOpening = false;\n console.error('Connect Error', e); // eslint-disable-line no-console\n });\n\n this.socket.addEventListener(EVENT_CONNECTED, (e) => {\n this.isOpen = true;\n this.isOpening = false;\n if (this.show) {\n this.fit();\n this.flush();\n }\n\n if (this.firstTime) {\n this.socket.send(this.str2ab('\\n'));\n this.firstTime = false;\n }\n });\n\n this.socket.addEventListener(EVENT_DISCONNECTED, (e) => {\n this.isOpen = false;\n this.isOpening = false;\n this.$emit('close');\n });\n\n this.socket.addEventListener(EVENT_MESSAGE, (e) => {\n this.queue.push(e.detail.data.text());\n });\n\n this.socket.connect();\n this.terminal.focus();\n },\n\n flush() {\n const backlog = this.backlog.slice();\n\n this.backlog = [];\n\n for ( const data of backlog ) {\n this.socket.send(data);\n }\n },\n\n fit(arg) {\n if ( !this.fitAddon ) {\n return;\n }\n\n this.fitAddon.fit();\n\n const { rows, cols } = this.fitAddon.proposeDimensions();\n\n if ( !this.isOpen ) {\n return;\n }\n\n const message = JSON.stringify({\n Width: cols,\n Height: rows\n });\n\n this.socket.send(this.str2ab(message));\n },\n\n close() {\n if ( this.socket ) {\n this.socket.disconnect();\n }\n\n if ( this.terminal ) {\n this.terminal.dispose();\n }\n },\n }\n};\n</script>\n\n<template>\n <div class=\"harvester-shell-container\">\n <div\n ref=\"xterm\"\n class=\"shell-body\"\n />\n <resize-observer @notify=\"fit\" />\n </div>\n</template>\n\n<style lang=\"scss\">\n @import '../../../../node_modules/xterm/css/xterm.css';\n\n body, #__nuxt, #__layout, MAIN {\n height: 100%;\n }\n\n .harvester-shell-container {\n height: 100%;\n overflow: hidden;\n\n .shell-body, .terminal.xterm {\n height: 100%;\n }\n }\n</style>\n","/**\n * @author Toru Nagashima <https://github.com/mysticatea>\n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap<Event, PrivateData>}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap<Object, Function>}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap<object, Map<string, ListenerNode>>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map<string, ListenerNode>} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexport default EventTarget;\nexport { defineEventAttribute, EventTarget };\n//# sourceMappingURL=event-target-shim.mjs.map\n","import { EventTarget } from 'event-target-shim';\nimport { isSafari } from '@shell/utils/platform';\nimport { addParam } from '@shell/utils/url';\n\nlet sockId = 1;\nlet warningShown = false;\nlet wasConnected = false;\n\nconst INSECURE = 'ws://';\nconst SECURE = 'wss://';\n\nconst STATE_DISCONNECTED = 'disconnected';\n\nexport const addEventListener = EventTarget.addEventListener;\nexport const STATE_CONNECTING = 'connecting';\nexport const STATE_CONNECTED = 'connected';\nconst STATE_CLOSING = 'closing';\nconst STATE_RECONNECTING = 'reconnecting';\n\nexport const EVENT_CONNECTING = STATE_CONNECTING;\nexport const EVENT_CONNECTED = STATE_CONNECTED;\nexport const EVENT_DISCONNECTED = STATE_DISCONNECTED;\nexport const EVENT_MESSAGE = 'message';\nexport const EVENT_FRAME_TIMEOUT = 'frame_timeout';\nexport const EVENT_CONNECT_ERROR = 'connect_error';\nexport const EVENT_DISCONNECT_ERROR = 'disconnect_error';\n\nexport const NO_WATCH = 'NO_WATCH';\nexport const NO_SCHEMA = 'NO_SCHEMA';\nexport const NO_PERMS = 'NO_PERMS';\nexport const REVISION_TOO_OLD = 'TOO_OLD';\n\nexport default class Socket extends EventTarget {\n url;\n autoReconnect = true;\n frameTimeout = 35000;\n metadata = {};\n hasBeenOpen = false;\n hasReconnected = false;\n protocol = null;\n maxTries = null;\n tries = 0;\n idAsTimestamp = false;\n\n // \"Private\"\n socket = null;\n state = STATE_DISCONNECTED;\n framesReceived = 0;\n frameTimer;\n reconnectTimer;\n disconnectCallBacks = [];\n disconnectedAt = 0;\n closingId = 0;\n autoReconnectUrl = null;\n\n constructor(url, autoReconnect = true, frameTimeout = null, protocol = null, maxTries = null, idAsTimestamp = false) {\n super();\n\n this.setUrl(url);\n this.autoReconnect = autoReconnect;\n this.protocol = protocol;\n // maxTries = null === never stop trying to reconnect\n // allow maxTries to be defined on individual sockets bc not all will clearly warn the user that we've stopped trying\n this.maxTries = maxTries;\n this.idAsTimestamp = idAsTimestamp;\n\n if ( frameTimeout !== null ) {\n this.frameTimeout = frameTimeout;\n }\n }\n\n setUrl(url) {\n if ( !url.match(/wss?:\\/\\//) ) {\n url = self.location.origin.replace(/^http/, 'ws') + url;\n }\n\n if ( self.location.protocol === 'https:' && url.startsWith(INSECURE) ) {\n url = SECURE + url.substr(INSECURE.length);\n }\n\n this.url = url;\n }\n\n connect(metadata = {}) {\n if ( this.socket ) {\n console.error('Socket refusing to connect while another socket exists'); // eslint-disable-line no-console\n\n return;\n }\n\n if (this.state !== STATE_RECONNECTING) {\n this.state = STATE_CONNECTING;\n }\n\n Object.assign(this.metadata, metadata);\n\n const id = this.idAsTimestamp ? new Date().getTime() : sockId++;\n const url = addParam(this.url, 'sockId', id);\n\n this._baseLog('connecting', { id, url: url.replace(/\\?.*/, '') });\n\n let socket;\n\n this.tries++;\n\n if ( this.protocol ) {\n socket = new WebSocket(url, this.protocol);\n } else {\n socket = new WebSocket(url);\n }\n\n socket.sockId = id;\n socket.metadata = this.metadata;\n socket.onmessage = this._onmessage.bind(this);\n socket.onopen = this._opened.bind(this);\n socket.onerror = this._error.bind(this);\n socket.onclose = this._closed.bind(this);\n\n this.socket = socket;\n this.state = STATE_CONNECTING;\n\n this.dispatchEvent(new CustomEvent(EVENT_CONNECTING));\n }\n\n send(data) {\n if ( this.socket && this.state === STATE_CONNECTED ) {\n this.socket.send(data);\n\n return true;\n }\n\n return false;\n }\n\n disconnect(callBack) {\n if ( callBack ) {\n this.disconnectCallBacks.push(callBack);\n }\n\n const self = this;\n const promise = new Promise((resolve, reject) => {\n if ( this.state === STATE_DISCONNECTED ) {\n resolve();\n }\n\n function onError(e) {\n reject(e);\n self.removeEventListener(EVENT_CONNECT_ERROR, onError);\n }\n\n this.addEventListener(EVENT_CONNECT_ERROR, onError);\n\n this.disconnectCallBacks.push(() => {\n this.removeEventListener(EVENT_CONNECT_ERROR, onError);\n resolve();\n });\n });\n\n this.autoReconnect = false;\n this._close();\n\n return promise;\n }\n\n reconnect(metadata = {}) {\n Object.assign(this.metadata, metadata);\n\n if ( this.state === STATE_CONNECTING ) {\n this._log('Ignoring reconnect for socket in connecting');\n\n return;\n }\n\n if ( this.socket ) {\n this._close();\n } else {\n this.connect(metadata);\n }\n }\n\n getMetadata() {\n if ( this.socket ) {\n return this.socket.metadata;\n } else {\n return {};\n }\n }\n\n getId() {\n if ( this.socket ) {\n return this.socket.sockId;\n } else {\n return 0;\n }\n }\n\n isConnected() {\n return this.state === STATE_CONNECTED;\n }\n\n setAutoReconnect(autoReconnect) {\n this.autoReconnect = autoReconnect;\n }\n\n /**\n * Supply an async fn that will provide a new url to reconnect to\n */\n setAutoReconnectUrl(autoReconnectUrl) {\n this.autoReconnectUrl = autoReconnectUrl;\n }\n\n // \"Private\"\n _close() {\n const socket = this.socket;\n\n if ( !socket ) {\n return;\n }\n\n try {\n this._log('closing');\n this.closingId = socket.sockId;\n socket.onopen = null;\n socket.onerror = null;\n socket.onmessage = null;\n socket.close();\n } catch (e) {\n this._log('exception', { e: e.toString() });\n // Continue anyway...\n }\n\n this.state = STATE_CLOSING;\n }\n\n _opened() {\n this._log('opened');\n const now = (new Date()).getTime();\n\n const atTime = this.disconnectedAt;\n let afterMilliseconds = 0;\n\n if ( atTime ) {\n afterMilliseconds = now - atTime;\n }\n\n if ( this.hasBeenOpen ) {\n this.hasReconnected = true;\n }\n\n this.hasBeenOpen = true;\n this.state = STATE_CONNECTED;\n this.framesReceived = 0;\n this.disconnectedAt = 0;\n\n this.dispatchEvent(new CustomEvent(EVENT_CONNECTED, { detail: { tries: this.tries, afterMilliseconds } }));\n this.tries = 0;\n this._resetWatchdog();\n clearTimeout(this.reconnectTimer);\n }\n\n _onmessage(event) {\n this._resetWatchdog();\n this.tries = 0;\n this.framesReceived++;\n\n this.dispatchEvent(new CustomEvent(EVENT_MESSAGE, { detail: event }));\n }\n\n _resetWatchdog() {\n clearTimeout(this.frameTimer);\n\n const timeout = this.frameTimeout;\n\n if ( timeout && this.state === STATE_CONNECTED) {\n this.frameTimer = setTimeout(() => {\n this._log(`watchdog expired after${ timeout }. Closing`);\n this._close();\n this.dispatchEvent(new CustomEvent(EVENT_FRAME_TIMEOUT));\n }, timeout);\n }\n }\n\n _error() {\n this.closingId = (this.socket ? this.socket.sockId : 0);\n this._log('error');\n }\n\n _closed(event) {\n const { code, reason, wasClean } = event;\n\n this._baseLog('closed', {\n id: this.closingId || this.socket?.sockId || 'unknown', code, reason, clean: wasClean\n });\n\n this.closingId = 0;\n this.socket = null;\n clearTimeout(this.reconnectTimer);\n clearTimeout(this.frameTimer);\n\n const callBacks = this.disconnectCallBacks;\n\n while ( callBacks.length ) {\n const fn = callBacks.pop();\n\n if ( fn ) {\n fn.apply(this);\n }\n }\n\n if ( [STATE_CONNECTED, STATE_CLOSING].includes(this.state) ) {\n wasConnected = true;\n }\n\n if ( !this.disconnectedAt ) {\n this.disconnectedAt = (new Date()).getTime();\n }\n\n if ( !warningShown && !wasConnected ) {\n this.autoReconnect = false;\n this.state = STATE_DISCONNECTED;\n\n const e = new CustomEvent(EVENT_CONNECT_ERROR, { detail: { isSafari } });\n\n this.dispatchEvent(e);\n warningShown = true;\n } else if ( this.autoReconnect ) {\n this.state = STATE_RECONNECTING;\n\n if (this.maxTries && this.tries > 1 && this.tries <= this.maxTries) {\n // dispatch an event which will trigger a growl from steve-plugin sockets warning users that we've lost connection and are attempting to reconnect\n const e = new CustomEvent(EVENT_CONNECT_ERROR);\n\n this.dispatchEvent(e);\n }\n\n if (this.maxTries && this.tries > this.maxTries) {\n this._log('closed. Will not reconnect (hit max attempts)');\n this.state = STATE_DISCONNECTED;\n // dispatch an event which will trigger a growl from steve-plugin sockets warning users that we've given up trying to reconnect\n this.dispatchEvent(new CustomEvent(EVENT_DISCONNECT_ERROR));\n } else {\n const reconnect = () => {\n this._log('closed. Attempting to reconnect');\n const delay = Math.max(1000, Math.min(1000 * this.tries, 30000));\n\n this.reconnectTimer = setTimeout(() => {\n this.connect();\n }, delay);\n };\n\n if (this.autoReconnectUrl) {\n this.autoReconnectUrl()\n .then((url) => {\n this.setUrl(url);\n\n reconnect();\n })\n .catch((e) => {\n console.error('Failed to fetch socket auto reconnect url', e); // eslint-disable-line no-console\n });\n } else {\n reconnect();\n }\n }\n } else {\n this.state = STATE_DISCONNECTED;\n }\n\n if ( this.state === STATE_DISCONNECTED ) {\n this.dispatchEvent(new CustomEvent(EVENT_DISCONNECTED));\n } else if ( this.state === STATE_RECONNECTING ) {\n this.dispatchEvent(new CustomEvent(EVENT_CONNECTING));\n }\n }\n\n /**\n * `console.log` the provided summary statement, with default information to identify the socket and the provided props\n */\n _log(summary, props) {\n this._baseLog(summary, {\n state: this.state, id: this.socket?.sockId || 0, ...props\n });\n }\n\n /**\n * `console.log` the provided summary statement and props\n *\n * This does not contain information to identify the socket and can be used in scenarios where it's not known or default\n */\n _baseLog(summary, props) {\n const message = [summary];\n const values = Object.entries(props || {});\n\n message.unshift('Socket ');\n\n if (values.length) {\n message.push(' (');\n values.forEach(([key, value], index) => {\n if (index !== 0) {\n message.push(`, `);\n }\n message.push(`${ key }=${ value }`);\n });\n message.push(')');\n }\n\n console.log(message.join('')); // eslint-disable-line no-console\n }\n}\n","import { render } from \"./index.vue?vue&type=template&id=2c8d60f2\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=2c8d60f2&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./serial.vue?vue&type=template&id=2efbfdaf&scoped=true\"\nimport script from \"./serial.vue?vue&type=script&lang=js\"\nexport * from \"./serial.vue?vue&type=script&lang=js\"\n\nimport \"./serial.vue?vue&type=style&index=0&id=2efbfdaf&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2efbfdaf\"]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport { HCI } from '../../../../../types';\nimport NovncConsoleWrapper from '../../../../../components/novnc/NovncConsoleWrapper.vue';\n\nexport default {\n components: { NovncConsoleWrapper, Loading },\n\n async fetch() {\n this.rows = await this.$store.dispatch('harvester/findAll', { type: HCI.VMI });\n },\n\n data() {\n return { uid: this.$route.params.uid };\n },\n\n computed: {\n vmi() {\n const vmiList = this.$store.getters['harvester/all'](HCI.VMI) || [];\n\n const vmi = vmiList.find( (VMI) => {\n return VMI?.metadata?.ownerReferences?.[0]?.uid === this.uid;\n });\n\n return vmi;\n },\n },\n\n mounted() {\n window.addEventListener('beforeunload', () => {\n this.$refs.console.close();\n });\n },\n\n head() {\n return { title: this.vmi?.metadata?.name };\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <NovncConsoleWrapper\n v-else\n ref=\"console\"\n v-model:value=\"vmi\"\n class=\"novnc-wrapper\"\n />\n</template>\n\n<style>\nHTML, BODY, MAIN, #__nuxt, #__layout, #app, .vm-console, .vm-console > DIV, .vm-console > DIV > DIV {\n height: 100%;\n}\n</style>\n","<script>\nimport { STEVE } from '@shell/config/types';\nimport { escapeHtml } from '@shell/utils/string';\nimport { allHash } from '@shell/utils/promise';\nimport KeyTable from '@novnc/novnc/core/input/keysym';\nimport * as KeyboardUtil from '@novnc/novnc/core/input/util';\nimport { HCI } from '../../types';\nimport NovncConsole from './NovncConsole';\nimport NovncConsoleItem from './NovncConsoleItem';\nimport NovncConsoleCustomKeys from './NovncConsoleCustomKeys';\n\nconst PREFERED_SHORTCUT_KEYS = 'prefered-shortcut-keys';\n\nconst SHORT_KEYS = {\n ControlLeft: {\n label: 'Ctrl',\n value: KeyTable.XK_Control_L,\n },\n AltLeft: {\n label: 'Alt',\n value: KeyTable.XK_Alt_L,\n }\n};\n\nconst FUNCTION_KEYS = {\n Delete: {\n label: 'Del',\n value: KeyTable.XK_Delete,\n },\n PrintScreen: {\n label: 'Print Screen',\n value: KeyTable.XK_Print,\n },\n};\n\nconst NORMAL_KEYS = {\n KeyN: {\n label: 'N',\n value: KeyTable.XK_n,\n },\n KeyT: {\n label: 'T',\n value: KeyTable.XK_t,\n },\n KeyW: {\n label: 'W',\n value: KeyTable.XK_w,\n },\n KeyY: {\n label: 'Y',\n value: KeyTable.XK_y,\n },\n};\n\nconst F_KEYS = {\n F1: {\n label: 'F1',\n value: KeyTable.XK_F1,\n },\n F2: {\n label: 'F2',\n value: KeyTable.XK_F2,\n },\n F3: {\n label: 'F3',\n value: KeyTable.XK_F3,\n },\n F4: {\n label: 'F4',\n value: KeyTable.XK_F4,\n },\n F5: {\n label: 'F5',\n value: KeyTable.XK_F5,\n },\n F6: {\n label: 'F6',\n value: KeyTable.XK_F6,\n },\n F7: {\n label: 'F7',\n value: KeyTable.XK_F7,\n },\n F8: {\n label: 'F8',\n value: KeyTable.XK_F8,\n },\n F9: {\n label: 'F9',\n value: KeyTable.XK_F9,\n },\n F10: {\n label: 'F10',\n value: KeyTable.XK_F10,\n },\n F11: {\n label: 'F11',\n value: KeyTable.XK_F11,\n },\n F12: {\n label: 'F12',\n value: KeyTable.XK_F12,\n },\n};\n\nexport default {\n name: 'NovncConsoleWrapper',\n components: {\n NovncConsole, NovncConsoleItem, NovncConsoleCustomKeys\n },\n\n async fetch() {\n const _hash = { vmResource: this.$store.dispatch('harvester/find', { type: HCI.VM, id: this.value.id }) };\n\n const hash = await allHash(_hash);\n\n this.vmResource = hash.vmResource;\n },\n\n props: {\n value: {\n type: Object,\n required: true,\n default: () => {\n return {};\n }\n }\n },\n\n data() {\n return {\n keysRecord: [],\n vmResource: {},\n renderKeysModal: false,\n currentUser: null,\n hideCustomKeysBar: false,\n };\n },\n\n computed: {\n savedShortcutKeys() {\n const preference = this.$store.getters['management/all'](STEVE.PREFERENCE);\n const preferedShortcutKeys = preference?.[0]?.data?.[PREFERED_SHORTCUT_KEYS];\n let out = [];\n\n if (!preference?.[0]?.data) {\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n this.hideCustomKeysBar = true;\n\n return out;\n }\n\n if (!preferedShortcutKeys) {\n return out;\n }\n\n try {\n out = JSON.parse(preferedShortcutKeys);\n } catch (err) {\n this.$store.dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: escapeHtml(this.value.metadata.name) }),\n err,\n }, { root: true });\n }\n\n return out;\n },\n\n isDown() {\n return this.isEmpty(this.value);\n },\n\n url() {\n const ip = `${ window.location.hostname }:${ window.location.port }`;\n\n return `wss://${ ip }${ this.value?.getVMIApiPath }`;\n },\n\n allKeys() {\n return {\n ...SHORT_KEYS,\n ...FUNCTION_KEYS,\n ...NORMAL_KEYS,\n ...F_KEYS,\n };\n },\n\n keymap() {\n const out = {\n ...SHORT_KEYS,\n PrintScreen: FUNCTION_KEYS.PrintScreen,\n ...F_KEYS,\n };\n\n out.AltLeft.keys = { PrintScreen: FUNCTION_KEYS.PrintScreen, ...F_KEYS };\n out.ControlLeft.keys = {\n AltLeft: {\n ...Object.assign(SHORT_KEYS.AltLeft, {}),\n keys: { Delete: FUNCTION_KEYS.Delete }\n },\n ...NORMAL_KEYS,\n };\n\n return out;\n },\n\n hasSoftRebootAction() {\n return !!this.vmResource?.actions?.softreboot;\n },\n\n preferredShortcutKeys() {\n return (this.savedShortcutKeys || []).map((item) => {\n return {\n label: item.map((K) => K.key.charAt(0).toUpperCase() + K.key.slice(1)).join('+'),\n value: item\n };\n });\n },\n },\n\n methods: {\n isEmpty(o) {\n return o !== undefined && Object.keys(o).length === 0;\n },\n\n close() {\n this.$refs.novncConsole.disconnect();\n },\n\n update({ key, pos }) {\n this.keysRecord.splice(pos, this.keysRecord.length - pos, key);\n },\n\n // Send function key, e.g. ALT + F\n sendKeys() {\n this.keysRecord.forEach((key) => {\n this.$refs.novncConsole.sendKey(this.allKeys[key].value, key, true);\n });\n\n this.keysRecord.reverse().forEach((key) => {\n this.$refs.novncConsole.sendKey(this.allKeys[key].value, key, false);\n });\n\n this.$refs.popover.isOpen = false;\n this.keysRecord = [];\n },\n\n sendCustomKeys(keys) {\n const keyList = [].concat(keys);\n\n keyList.forEach((K) => {\n this.$refs.novncConsole.sendKey(KeyboardUtil.getKeysym(K), KeyboardUtil.getKeycode(K), true);\n });\n\n keyList.reverse().forEach((K) => {\n this.$refs.novncConsole.sendKey(KeyboardUtil.getKeysym(K), KeyboardUtil.getKeycode(K), false);\n });\n },\n\n softReboot() {\n this.vmResource.softrebootVM();\n },\n\n showKeysModal() {\n this.renderKeysModal = true;\n },\n\n hideKeysModal() {\n this.renderKeysModal = false;\n },\n }\n};\n</script>\n\n<template>\n <div id=\"app\">\n <div class=\"vm-console\">\n <div class=\"combination-keys\">\n <v-dropdown\n ref=\"popover\"\n placement=\"top\"\n trigger=\"click\"\n :container=\"false\"\n @auto-hide=\"keysRecord = []\"\n >\n <button class=\"btn btn-sm bg-primary\">\n {{ t(\"harvester.virtualMachine.detail.console.shortcutKeys\") }}\n </button>\n\n <template #popper>\n <novnc-console-item\n :items=\"keymap\"\n :path=\"keysRecord\"\n :pos=\"0\"\n @update=\"update\"\n @send-keys=\"sendKeys\"\n />\n </template>\n </v-dropdown>\n\n <button\n v-if=\"hasSoftRebootAction\"\n class=\"btn btn-sm bg-primary\"\n @click=\"softReboot\"\n >\n {{ t(\"harvester.action.softreboot\") }}\n </button>\n\n <v-dropdown\n v-if=\"!hideCustomKeysBar\"\n ref=\"customKeyPopover\"\n placement=\"top\"\n trigger=\"click\"\n :container=\"false\"\n >\n <button class=\"btn btn-sm bg-primary\">\n {{ t(\"harvester.virtualMachine.detail.console.customShortcutKeys\") }}\n </button>\n\n <template #popper>\n <div>\n <button\n class=\"btn btn-sm bg-primary\"\n @click=\"showKeysModal\"\n >\n {{ t(\"harvester.virtualMachine.detail.console.management\") }}\n </button>\n </div>\n\n <hr>\n\n <div\n v-for=\"(keys, index) in preferredShortcutKeys\"\n :key=\"index\"\n >\n <button\n class=\"btn btn-sm bg-primary\"\n @click=\"sendCustomKeys(keys.value)\"\n >\n {{ keys.label }}\n </button>\n </div>\n </template>\n </v-dropdown>\n\n <NovncConsoleCustomKeys\n v-if=\"renderKeysModal\"\n :current-user=\"currentUser\"\n @close=\"hideKeysModal\"\n />\n </div>\n <NovncConsole\n v-if=\"url && !isDown\"\n ref=\"novncConsole\"\n :url=\"url\"\n />\n <p v-if=\"isDown\">\n {{ t(\"harvester.virtualMachine.detail.console.down\") }}\n </p>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .vm-console {\n height: 100%;\n display: grid;\n grid-template-rows: 30px auto;\n }\n\n .combination-keys {\n background: rgb(40, 40, 40);\n }\n</style>\n","/* eslint-disable key-spacing */\n\nexport default {\n XK_VoidSymbol: 0xffffff, /* Void symbol */\n\n XK_BackSpace: 0xff08, /* Back space, back char */\n XK_Tab: 0xff09,\n XK_Linefeed: 0xff0a, /* Linefeed, LF */\n XK_Clear: 0xff0b,\n XK_Return: 0xff0d, /* Return, enter */\n XK_Pause: 0xff13, /* Pause, hold */\n XK_Scroll_Lock: 0xff14,\n XK_Sys_Req: 0xff15,\n XK_Escape: 0xff1b,\n XK_Delete: 0xffff, /* Delete, rubout */\n\n /* International & multi-key character composition */\n\n XK_Multi_key: 0xff20, /* Multi-key character compose */\n XK_Codeinput: 0xff37,\n XK_SingleCandidate: 0xff3c,\n XK_MultipleCandidate: 0xff3d,\n XK_PreviousCandidate: 0xff3e,\n\n /* Japanese keyboard support */\n\n XK_Kanji: 0xff21, /* Kanji, Kanji convert */\n XK_Muhenkan: 0xff22, /* Cancel Conversion */\n XK_Henkan_Mode: 0xff23, /* Start/Stop Conversion */\n XK_Henkan: 0xff23, /* Alias for Henkan_Mode */\n XK_Romaji: 0xff24, /* to Romaji */\n XK_Hiragana: 0xff25, /* to Hiragana */\n XK_Katakana: 0xff26, /* to Katakana */\n XK_Hiragana_Katakana: 0xff27, /* Hiragana/Katakana toggle */\n XK_Zenkaku: 0xff28, /* to Zenkaku */\n XK_Hankaku: 0xff29, /* to Hankaku */\n XK_Zenkaku_Hankaku: 0xff2a, /* Zenkaku/Hankaku toggle */\n XK_Touroku: 0xff2b, /* Add to Dictionary */\n XK_Massyo: 0xff2c, /* Delete from Dictionary */\n XK_Kana_Lock: 0xff2d, /* Kana Lock */\n XK_Kana_Shift: 0xff2e, /* Kana Shift */\n XK_Eisu_Shift: 0xff2f, /* Alphanumeric Shift */\n XK_Eisu_toggle: 0xff30, /* Alphanumeric toggle */\n XK_Kanji_Bangou: 0xff37, /* Codeinput */\n XK_Zen_Koho: 0xff3d, /* Multiple/All Candidate(s) */\n XK_Mae_Koho: 0xff3e, /* Previous Candidate */\n\n /* Cursor control & motion */\n\n XK_Home: 0xff50,\n XK_Left: 0xff51, /* Move left, left arrow */\n XK_Up: 0xff52, /* Move up, up arrow */\n XK_Right: 0xff53, /* Move right, right arrow */\n XK_Down: 0xff54, /* Move down, down arrow */\n XK_Prior: 0xff55, /* Prior, previous */\n XK_Page_Up: 0xff55,\n XK_Next: 0xff56, /* Next */\n XK_Page_Down: 0xff56,\n XK_End: 0xff57, /* EOL */\n XK_Begin: 0xff58, /* BOL */\n\n\n /* Misc functions */\n\n XK_Select: 0xff60, /* Select, mark */\n XK_Print: 0xff61,\n XK_Execute: 0xff62, /* Execute, run, do */\n XK_Insert: 0xff63, /* Insert, insert here */\n XK_Undo: 0xff65,\n XK_Redo: 0xff66, /* Redo, again */\n XK_Menu: 0xff67,\n XK_Find: 0xff68, /* Find, search */\n XK_Cancel: 0xff69, /* Cancel, stop, abort, exit */\n XK_Help: 0xff6a, /* Help */\n XK_Break: 0xff6b,\n XK_Mode_switch: 0xff7e, /* Character set switch */\n XK_script_switch: 0xff7e, /* Alias for mode_switch */\n XK_Num_Lock: 0xff7f,\n\n /* Keypad functions, keypad numbers cleverly chosen to map to ASCII */\n\n XK_KP_Space: 0xff80, /* Space */\n XK_KP_Tab: 0xff89,\n XK_KP_Enter: 0xff8d, /* Enter */\n XK_KP_F1: 0xff91, /* PF1, KP_A, ... */\n XK_KP_F2: 0xff92,\n XK_KP_F3: 0xff93,\n XK_KP_F4: 0xff94,\n XK_KP_Home: 0xff95,\n XK_KP_Left: 0xff96,\n XK_KP_Up: 0xff97,\n XK_KP_Right: 0xff98,\n XK_KP_Down: 0xff99,\n XK_KP_Prior: 0xff9a,\n XK_KP_Page_Up: 0xff9a,\n XK_KP_Next: 0xff9b,\n XK_KP_Page_Down: 0xff9b,\n XK_KP_End: 0xff9c,\n XK_KP_Begin: 0xff9d,\n XK_KP_Insert: 0xff9e,\n XK_KP_Delete: 0xff9f,\n XK_KP_Equal: 0xffbd, /* Equals */\n XK_KP_Multiply: 0xffaa,\n XK_KP_Add: 0xffab,\n XK_KP_Separator: 0xffac, /* Separator, often comma */\n XK_KP_Subtract: 0xffad,\n XK_KP_Decimal: 0xffae,\n XK_KP_Divide: 0xffaf,\n\n XK_KP_0: 0xffb0,\n XK_KP_1: 0xffb1,\n XK_KP_2: 0xffb2,\n XK_KP_3: 0xffb3,\n XK_KP_4: 0xffb4,\n XK_KP_5: 0xffb5,\n XK_KP_6: 0xffb6,\n XK_KP_7: 0xffb7,\n XK_KP_8: 0xffb8,\n XK_KP_9: 0xffb9,\n\n /*\n * Auxiliary functions; note the duplicate definitions for left and right\n * function keys; Sun keyboards and a few other manufacturers have such\n * function key groups on the left and/or right sides of the keyboard.\n * We've not found a keyboard with more than 35 function keys total.\n */\n\n XK_F1: 0xffbe,\n XK_F2: 0xffbf,\n XK_F3: 0xffc0,\n XK_F4: 0xffc1,\n XK_F5: 0xffc2,\n XK_F6: 0xffc3,\n XK_F7: 0xffc4,\n XK_F8: 0xffc5,\n XK_F9: 0xffc6,\n XK_F10: 0xffc7,\n XK_F11: 0xffc8,\n XK_L1: 0xffc8,\n XK_F12: 0xffc9,\n XK_L2: 0xffc9,\n XK_F13: 0xffca,\n XK_L3: 0xffca,\n XK_F14: 0xffcb,\n XK_L4: 0xffcb,\n XK_F15: 0xffcc,\n XK_L5: 0xffcc,\n XK_F16: 0xffcd,\n XK_L6: 0xffcd,\n XK_F17: 0xffce,\n XK_L7: 0xffce,\n XK_F18: 0xffcf,\n XK_L8: 0xffcf,\n XK_F19: 0xffd0,\n XK_L9: 0xffd0,\n XK_F20: 0xffd1,\n XK_L10: 0xffd1,\n XK_F21: 0xffd2,\n XK_R1: 0xffd2,\n XK_F22: 0xffd3,\n XK_R2: 0xffd3,\n XK_F23: 0xffd4,\n XK_R3: 0xffd4,\n XK_F24: 0xffd5,\n XK_R4: 0xffd5,\n XK_F25: 0xffd6,\n XK_R5: 0xffd6,\n XK_F26: 0xffd7,\n XK_R6: 0xffd7,\n XK_F27: 0xffd8,\n XK_R7: 0xffd8,\n XK_F28: 0xffd9,\n XK_R8: 0xffd9,\n XK_F29: 0xffda,\n XK_R9: 0xffda,\n XK_F30: 0xffdb,\n XK_R10: 0xffdb,\n XK_F31: 0xffdc,\n XK_R11: 0xffdc,\n XK_F32: 0xffdd,\n XK_R12: 0xffdd,\n XK_F33: 0xffde,\n XK_R13: 0xffde,\n XK_F34: 0xffdf,\n XK_R14: 0xffdf,\n XK_F35: 0xffe0,\n XK_R15: 0xffe0,\n\n /* Modifiers */\n\n XK_Shift_L: 0xffe1, /* Left shift */\n XK_Shift_R: 0xffe2, /* Right shift */\n XK_Control_L: 0xffe3, /* Left control */\n XK_Control_R: 0xffe4, /* Right control */\n XK_Caps_Lock: 0xffe5, /* Caps lock */\n XK_Shift_Lock: 0xffe6, /* Shift lock */\n\n XK_Meta_L: 0xffe7, /* Left meta */\n XK_Meta_R: 0xffe8, /* Right meta */\n XK_Alt_L: 0xffe9, /* Left alt */\n XK_Alt_R: 0xffea, /* Right alt */\n XK_Super_L: 0xffeb, /* Left super */\n XK_Super_R: 0xffec, /* Right super */\n XK_Hyper_L: 0xffed, /* Left hyper */\n XK_Hyper_R: 0xffee, /* Right hyper */\n\n /*\n * Keyboard (XKB) Extension function and modifier keys\n * (from Appendix C of \"The X Keyboard Extension: Protocol Specification\")\n * Byte 3 = 0xfe\n */\n\n XK_ISO_Level3_Shift: 0xfe03, /* AltGr */\n XK_ISO_Next_Group: 0xfe08,\n XK_ISO_Prev_Group: 0xfe0a,\n XK_ISO_First_Group: 0xfe0c,\n XK_ISO_Last_Group: 0xfe0e,\n\n /*\n * Latin 1\n * (ISO/IEC 8859-1: Unicode U+0020..U+00FF)\n * Byte 3: 0\n */\n\n XK_space: 0x0020, /* U+0020 SPACE */\n XK_exclam: 0x0021, /* U+0021 EXCLAMATION MARK */\n XK_quotedbl: 0x0022, /* U+0022 QUOTATION MARK */\n XK_numbersign: 0x0023, /* U+0023 NUMBER SIGN */\n XK_dollar: 0x0024, /* U+0024 DOLLAR SIGN */\n XK_percent: 0x0025, /* U+0025 PERCENT SIGN */\n XK_ampersand: 0x0026, /* U+0026 AMPERSAND */\n XK_apostrophe: 0x0027, /* U+0027 APOSTROPHE */\n XK_quoteright: 0x0027, /* deprecated */\n XK_parenleft: 0x0028, /* U+0028 LEFT PARENTHESIS */\n XK_parenright: 0x0029, /* U+0029 RIGHT PARENTHESIS */\n XK_asterisk: 0x002a, /* U+002A ASTERISK */\n XK_plus: 0x002b, /* U+002B PLUS SIGN */\n XK_comma: 0x002c, /* U+002C COMMA */\n XK_minus: 0x002d, /* U+002D HYPHEN-MINUS */\n XK_period: 0x002e, /* U+002E FULL STOP */\n XK_slash: 0x002f, /* U+002F SOLIDUS */\n XK_0: 0x0030, /* U+0030 DIGIT ZERO */\n XK_1: 0x0031, /* U+0031 DIGIT ONE */\n XK_2: 0x0032, /* U+0032 DIGIT TWO */\n XK_3: 0x0033, /* U+0033 DIGIT THREE */\n XK_4: 0x0034, /* U+0034 DIGIT FOUR */\n XK_5: 0x0035, /* U+0035 DIGIT FIVE */\n XK_6: 0x0036, /* U+0036 DIGIT SIX */\n XK_7: 0x0037, /* U+0037 DIGIT SEVEN */\n XK_8: 0x0038, /* U+0038 DIGIT EIGHT */\n XK_9: 0x0039, /* U+0039 DIGIT NINE */\n XK_colon: 0x003a, /* U+003A COLON */\n XK_semicolon: 0x003b, /* U+003B SEMICOLON */\n XK_less: 0x003c, /* U+003C LESS-THAN SIGN */\n XK_equal: 0x003d, /* U+003D EQUALS SIGN */\n XK_greater: 0x003e, /* U+003E GREATER-THAN SIGN */\n XK_question: 0x003f, /* U+003F QUESTION MARK */\n XK_at: 0x0040, /* U+0040 COMMERCIAL AT */\n XK_A: 0x0041, /* U+0041 LATIN CAPITAL LETTER A */\n XK_B: 0x0042, /* U+0042 LATIN CAPITAL LETTER B */\n XK_C: 0x0043, /* U+0043 LATIN CAPITAL LETTER C */\n XK_D: 0x0044, /* U+0044 LATIN CAPITAL LETTER D */\n XK_E: 0x0045, /* U+0045 LATIN CAPITAL LETTER E */\n XK_F: 0x0046, /* U+0046 LATIN CAPITAL LETTER F */\n XK_G: 0x0047, /* U+0047 LATIN CAPITAL LETTER G */\n XK_H: 0x0048, /* U+0048 LATIN CAPITAL LETTER H */\n XK_I: 0x0049, /* U+0049 LATIN CAPITAL LETTER I */\n XK_J: 0x004a, /* U+004A LATIN CAPITAL LETTER J */\n XK_K: 0x004b, /* U+004B LATIN CAPITAL LETTER K */\n XK_L: 0x004c, /* U+004C LATIN CAPITAL LETTER L */\n XK_M: 0x004d, /* U+004D LATIN CAPITAL LETTER M */\n XK_N: 0x004e, /* U+004E LATIN CAPITAL LETTER N */\n XK_O: 0x004f, /* U+004F LATIN CAPITAL LETTER O */\n XK_P: 0x0050, /* U+0050 LATIN CAPITAL LETTER P */\n XK_Q: 0x0051, /* U+0051 LATIN CAPITAL LETTER Q */\n XK_R: 0x0052, /* U+0052 LATIN CAPITAL LETTER R */\n XK_S: 0x0053, /* U+0053 LATIN CAPITAL LETTER S */\n XK_T: 0x0054, /* U+0054 LATIN CAPITAL LETTER T */\n XK_U: 0x0055, /* U+0055 LATIN CAPITAL LETTER U */\n XK_V: 0x0056, /* U+0056 LATIN CAPITAL LETTER V */\n XK_W: 0x0057, /* U+0057 LATIN CAPITAL LETTER W */\n XK_X: 0x0058, /* U+0058 LATIN CAPITAL LETTER X */\n XK_Y: 0x0059, /* U+0059 LATIN CAPITAL LETTER Y */\n XK_Z: 0x005a, /* U+005A LATIN CAPITAL LETTER Z */\n XK_bracketleft: 0x005b, /* U+005B LEFT SQUARE BRACKET */\n XK_backslash: 0x005c, /* U+005C REVERSE SOLIDUS */\n XK_bracketright: 0x005d, /* U+005D RIGHT SQUARE BRACKET */\n XK_asciicircum: 0x005e, /* U+005E CIRCUMFLEX ACCENT */\n XK_underscore: 0x005f, /* U+005F LOW LINE */\n XK_grave: 0x0060, /* U+0060 GRAVE ACCENT */\n XK_quoteleft: 0x0060, /* deprecated */\n XK_a: 0x0061, /* U+0061 LATIN SMALL LETTER A */\n XK_b: 0x0062, /* U+0062 LATIN SMALL LETTER B */\n XK_c: 0x0063, /* U+0063 LATIN SMALL LETTER C */\n XK_d: 0x0064, /* U+0064 LATIN SMALL LETTER D */\n XK_e: 0x0065, /* U+0065 LATIN SMALL LETTER E */\n XK_f: 0x0066, /* U+0066 LATIN SMALL LETTER F */\n XK_g: 0x0067, /* U+0067 LATIN SMALL LETTER G */\n XK_h: 0x0068, /* U+0068 LATIN SMALL LETTER H */\n XK_i: 0x0069, /* U+0069 LATIN SMALL LETTER I */\n XK_j: 0x006a, /* U+006A LATIN SMALL LETTER J */\n XK_k: 0x006b, /* U+006B LATIN SMALL LETTER K */\n XK_l: 0x006c, /* U+006C LATIN SMALL LETTER L */\n XK_m: 0x006d, /* U+006D LATIN SMALL LETTER M */\n XK_n: 0x006e, /* U+006E LATIN SMALL LETTER N */\n XK_o: 0x006f, /* U+006F LATIN SMALL LETTER O */\n XK_p: 0x0070, /* U+0070 LATIN SMALL LETTER P */\n XK_q: 0x0071, /* U+0071 LATIN SMALL LETTER Q */\n XK_r: 0x0072, /* U+0072 LATIN SMALL LETTER R */\n XK_s: 0x0073, /* U+0073 LATIN SMALL LETTER S */\n XK_t: 0x0074, /* U+0074 LATIN SMALL LETTER T */\n XK_u: 0x0075, /* U+0075 LATIN SMALL LETTER U */\n XK_v: 0x0076, /* U+0076 LATIN SMALL LETTER V */\n XK_w: 0x0077, /* U+0077 LATIN SMALL LETTER W */\n XK_x: 0x0078, /* U+0078 LATIN SMALL LETTER X */\n XK_y: 0x0079, /* U+0079 LATIN SMALL LETTER Y */\n XK_z: 0x007a, /* U+007A LATIN SMALL LETTER Z */\n XK_braceleft: 0x007b, /* U+007B LEFT CURLY BRACKET */\n XK_bar: 0x007c, /* U+007C VERTICAL LINE */\n XK_braceright: 0x007d, /* U+007D RIGHT CURLY BRACKET */\n XK_asciitilde: 0x007e, /* U+007E TILDE */\n\n XK_nobreakspace: 0x00a0, /* U+00A0 NO-BREAK SPACE */\n XK_exclamdown: 0x00a1, /* U+00A1 INVERTED EXCLAMATION MARK */\n XK_cent: 0x00a2, /* U+00A2 CENT SIGN */\n XK_sterling: 0x00a3, /* U+00A3 POUND SIGN */\n XK_currency: 0x00a4, /* U+00A4 CURRENCY SIGN */\n XK_yen: 0x00a5, /* U+00A5 YEN SIGN */\n XK_brokenbar: 0x00a6, /* U+00A6 BROKEN BAR */\n XK_section: 0x00a7, /* U+00A7 SECTION SIGN */\n XK_diaeresis: 0x00a8, /* U+00A8 DIAERESIS */\n XK_copyright: 0x00a9, /* U+00A9 COPYRIGHT SIGN */\n XK_ordfeminine: 0x00aa, /* U+00AA FEMININE ORDINAL INDICATOR */\n XK_guillemotleft: 0x00ab, /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */\n XK_notsign: 0x00ac, /* U+00AC NOT SIGN */\n XK_hyphen: 0x00ad, /* U+00AD SOFT HYPHEN */\n XK_registered: 0x00ae, /* U+00AE REGISTERED SIGN */\n XK_macron: 0x00af, /* U+00AF MACRON */\n XK_degree: 0x00b0, /* U+00B0 DEGREE SIGN */\n XK_plusminus: 0x00b1, /* U+00B1 PLUS-MINUS SIGN */\n XK_twosuperior: 0x00b2, /* U+00B2 SUPERSCRIPT TWO */\n XK_threesuperior: 0x00b3, /* U+00B3 SUPERSCRIPT THREE */\n XK_acute: 0x00b4, /* U+00B4 ACUTE ACCENT */\n XK_mu: 0x00b5, /* U+00B5 MICRO SIGN */\n XK_paragraph: 0x00b6, /* U+00B6 PILCROW SIGN */\n XK_periodcentered: 0x00b7, /* U+00B7 MIDDLE DOT */\n XK_cedilla: 0x00b8, /* U+00B8 CEDILLA */\n XK_onesuperior: 0x00b9, /* U+00B9 SUPERSCRIPT ONE */\n XK_masculine: 0x00ba, /* U+00BA MASCULINE ORDINAL INDICATOR */\n XK_guillemotright: 0x00bb, /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */\n XK_onequarter: 0x00bc, /* U+00BC VULGAR FRACTION ONE QUARTER */\n XK_onehalf: 0x00bd, /* U+00BD VULGAR FRACTION ONE HALF */\n XK_threequarters: 0x00be, /* U+00BE VULGAR FRACTION THREE QUARTERS */\n XK_questiondown: 0x00bf, /* U+00BF INVERTED QUESTION MARK */\n XK_Agrave: 0x00c0, /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */\n XK_Aacute: 0x00c1, /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */\n XK_Acircumflex: 0x00c2, /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */\n XK_Atilde: 0x00c3, /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */\n XK_Adiaeresis: 0x00c4, /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */\n XK_Aring: 0x00c5, /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */\n XK_AE: 0x00c6, /* U+00C6 LATIN CAPITAL LETTER AE */\n XK_Ccedilla: 0x00c7, /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */\n XK_Egrave: 0x00c8, /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */\n XK_Eacute: 0x00c9, /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */\n XK_Ecircumflex: 0x00ca, /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */\n XK_Ediaeresis: 0x00cb, /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */\n XK_Igrave: 0x00cc, /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */\n XK_Iacute: 0x00cd, /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */\n XK_Icircumflex: 0x00ce, /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */\n XK_Idiaeresis: 0x00cf, /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */\n XK_ETH: 0x00d0, /* U+00D0 LATIN CAPITAL LETTER ETH */\n XK_Eth: 0x00d0, /* deprecated */\n XK_Ntilde: 0x00d1, /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */\n XK_Ograve: 0x00d2, /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */\n XK_Oacute: 0x00d3, /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */\n XK_Ocircumflex: 0x00d4, /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */\n XK_Otilde: 0x00d5, /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */\n XK_Odiaeresis: 0x00d6, /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */\n XK_multiply: 0x00d7, /* U+00D7 MULTIPLICATION SIGN */\n XK_Oslash: 0x00d8, /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */\n XK_Ooblique: 0x00d8, /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */\n XK_Ugrave: 0x00d9, /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */\n XK_Uacute: 0x00da, /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */\n XK_Ucircumflex: 0x00db, /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */\n XK_Udiaeresis: 0x00dc, /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */\n XK_Yacute: 0x00dd, /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */\n XK_THORN: 0x00de, /* U+00DE LATIN CAPITAL LETTER THORN */\n XK_Thorn: 0x00de, /* deprecated */\n XK_ssharp: 0x00df, /* U+00DF LATIN SMALL LETTER SHARP S */\n XK_agrave: 0x00e0, /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */\n XK_aacute: 0x00e1, /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */\n XK_acircumflex: 0x00e2, /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */\n XK_atilde: 0x00e3, /* U+00E3 LATIN SMALL LETTER A WITH TILDE */\n XK_adiaeresis: 0x00e4, /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */\n XK_aring: 0x00e5, /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */\n XK_ae: 0x00e6, /* U+00E6 LATIN SMALL LETTER AE */\n XK_ccedilla: 0x00e7, /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */\n XK_egrave: 0x00e8, /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */\n XK_eacute: 0x00e9, /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */\n XK_ecircumflex: 0x00ea, /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */\n XK_ediaeresis: 0x00eb, /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */\n XK_igrave: 0x00ec, /* U+00EC LATIN SMALL LETTER I WITH GRAVE */\n XK_iacute: 0x00ed, /* U+00ED LATIN SMALL LETTER I WITH ACUTE */\n XK_icircumflex: 0x00ee, /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */\n XK_idiaeresis: 0x00ef, /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */\n XK_eth: 0x00f0, /* U+00F0 LATIN SMALL LETTER ETH */\n XK_ntilde: 0x00f1, /* U+00F1 LATIN SMALL LETTER N WITH TILDE */\n XK_ograve: 0x00f2, /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */\n XK_oacute: 0x00f3, /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */\n XK_ocircumflex: 0x00f4, /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */\n XK_otilde: 0x00f5, /* U+00F5 LATIN SMALL LETTER O WITH TILDE */\n XK_odiaeresis: 0x00f6, /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */\n XK_division: 0x00f7, /* U+00F7 DIVISION SIGN */\n XK_oslash: 0x00f8, /* U+00F8 LATIN SMALL LETTER O WITH STROKE */\n XK_ooblique: 0x00f8, /* U+00F8 LATIN SMALL LETTER O WITH STROKE */\n XK_ugrave: 0x00f9, /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */\n XK_uacute: 0x00fa, /* U+00FA LATIN SMALL LETTER U WITH ACUTE */\n XK_ucircumflex: 0x00fb, /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */\n XK_udiaeresis: 0x00fc, /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */\n XK_yacute: 0x00fd, /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */\n XK_thorn: 0x00fe, /* U+00FE LATIN SMALL LETTER THORN */\n XK_ydiaeresis: 0x00ff, /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */\n\n /*\n * Korean\n * Byte 3 = 0x0e\n */\n\n XK_Hangul: 0xff31, /* Hangul start/stop(toggle) */\n XK_Hangul_Hanja: 0xff34, /* Start Hangul->Hanja Conversion */\n XK_Hangul_Jeonja: 0xff38, /* Jeonja mode */\n\n /*\n * XFree86 vendor specific keysyms.\n *\n * The XFree86 keysym range is 0x10080001 - 0x1008FFFF.\n */\n\n XF86XK_ModeLock: 0x1008FF01,\n XF86XK_MonBrightnessUp: 0x1008FF02,\n XF86XK_MonBrightnessDown: 0x1008FF03,\n XF86XK_KbdLightOnOff: 0x1008FF04,\n XF86XK_KbdBrightnessUp: 0x1008FF05,\n XF86XK_KbdBrightnessDown: 0x1008FF06,\n XF86XK_Standby: 0x1008FF10,\n XF86XK_AudioLowerVolume: 0x1008FF11,\n XF86XK_AudioMute: 0x1008FF12,\n XF86XK_AudioRaiseVolume: 0x1008FF13,\n XF86XK_AudioPlay: 0x1008FF14,\n XF86XK_AudioStop: 0x1008FF15,\n XF86XK_AudioPrev: 0x1008FF16,\n XF86XK_AudioNext: 0x1008FF17,\n XF86XK_HomePage: 0x1008FF18,\n XF86XK_Mail: 0x1008FF19,\n XF86XK_Start: 0x1008FF1A,\n XF86XK_Search: 0x1008FF1B,\n XF86XK_AudioRecord: 0x1008FF1C,\n XF86XK_Calculator: 0x1008FF1D,\n XF86XK_Memo: 0x1008FF1E,\n XF86XK_ToDoList: 0x1008FF1F,\n XF86XK_Calendar: 0x1008FF20,\n XF86XK_PowerDown: 0x1008FF21,\n XF86XK_ContrastAdjust: 0x1008FF22,\n XF86XK_RockerUp: 0x1008FF23,\n XF86XK_RockerDown: 0x1008FF24,\n XF86XK_RockerEnter: 0x1008FF25,\n XF86XK_Back: 0x1008FF26,\n XF86XK_Forward: 0x1008FF27,\n XF86XK_Stop: 0x1008FF28,\n XF86XK_Refresh: 0x1008FF29,\n XF86XK_PowerOff: 0x1008FF2A,\n XF86XK_WakeUp: 0x1008FF2B,\n XF86XK_Eject: 0x1008FF2C,\n XF86XK_ScreenSaver: 0x1008FF2D,\n XF86XK_WWW: 0x1008FF2E,\n XF86XK_Sleep: 0x1008FF2F,\n XF86XK_Favorites: 0x1008FF30,\n XF86XK_AudioPause: 0x1008FF31,\n XF86XK_AudioMedia: 0x1008FF32,\n XF86XK_MyComputer: 0x1008FF33,\n XF86XK_VendorHome: 0x1008FF34,\n XF86XK_LightBulb: 0x1008FF35,\n XF86XK_Shop: 0x1008FF36,\n XF86XK_History: 0x1008FF37,\n XF86XK_OpenURL: 0x1008FF38,\n XF86XK_AddFavorite: 0x1008FF39,\n XF86XK_HotLinks: 0x1008FF3A,\n XF86XK_BrightnessAdjust: 0x1008FF3B,\n XF86XK_Finance: 0x1008FF3C,\n XF86XK_Community: 0x1008FF3D,\n XF86XK_AudioRewind: 0x1008FF3E,\n XF86XK_BackForward: 0x1008FF3F,\n XF86XK_Launch0: 0x1008FF40,\n XF86XK_Launch1: 0x1008FF41,\n XF86XK_Launch2: 0x1008FF42,\n XF86XK_Launch3: 0x1008FF43,\n XF86XK_Launch4: 0x1008FF44,\n XF86XK_Launch5: 0x1008FF45,\n XF86XK_Launch6: 0x1008FF46,\n XF86XK_Launch7: 0x1008FF47,\n XF86XK_Launch8: 0x1008FF48,\n XF86XK_Launch9: 0x1008FF49,\n XF86XK_LaunchA: 0x1008FF4A,\n XF86XK_LaunchB: 0x1008FF4B,\n XF86XK_LaunchC: 0x1008FF4C,\n XF86XK_LaunchD: 0x1008FF4D,\n XF86XK_LaunchE: 0x1008FF4E,\n XF86XK_LaunchF: 0x1008FF4F,\n XF86XK_ApplicationLeft: 0x1008FF50,\n XF86XK_ApplicationRight: 0x1008FF51,\n XF86XK_Book: 0x1008FF52,\n XF86XK_CD: 0x1008FF53,\n XF86XK_Calculater: 0x1008FF54,\n XF86XK_Clear: 0x1008FF55,\n XF86XK_Close: 0x1008FF56,\n XF86XK_Copy: 0x1008FF57,\n XF86XK_Cut: 0x1008FF58,\n XF86XK_Display: 0x1008FF59,\n XF86XK_DOS: 0x1008FF5A,\n XF86XK_Documents: 0x1008FF5B,\n XF86XK_Excel: 0x1008FF5C,\n XF86XK_Explorer: 0x1008FF5D,\n XF86XK_Game: 0x1008FF5E,\n XF86XK_Go: 0x1008FF5F,\n XF86XK_iTouch: 0x1008FF60,\n XF86XK_LogOff: 0x1008FF61,\n XF86XK_Market: 0x1008FF62,\n XF86XK_Meeting: 0x1008FF63,\n XF86XK_MenuKB: 0x1008FF65,\n XF86XK_MenuPB: 0x1008FF66,\n XF86XK_MySites: 0x1008FF67,\n XF86XK_New: 0x1008FF68,\n XF86XK_News: 0x1008FF69,\n XF86XK_OfficeHome: 0x1008FF6A,\n XF86XK_Open: 0x1008FF6B,\n XF86XK_Option: 0x1008FF6C,\n XF86XK_Paste: 0x1008FF6D,\n XF86XK_Phone: 0x1008FF6E,\n XF86XK_Q: 0x1008FF70,\n XF86XK_Reply: 0x1008FF72,\n XF86XK_Reload: 0x1008FF73,\n XF86XK_RotateWindows: 0x1008FF74,\n XF86XK_RotationPB: 0x1008FF75,\n XF86XK_RotationKB: 0x1008FF76,\n XF86XK_Save: 0x1008FF77,\n XF86XK_ScrollUp: 0x1008FF78,\n XF86XK_ScrollDown: 0x1008FF79,\n XF86XK_ScrollClick: 0x1008FF7A,\n XF86XK_Send: 0x1008FF7B,\n XF86XK_Spell: 0x1008FF7C,\n XF86XK_SplitScreen: 0x1008FF7D,\n XF86XK_Support: 0x1008FF7E,\n XF86XK_TaskPane: 0x1008FF7F,\n XF86XK_Terminal: 0x1008FF80,\n XF86XK_Tools: 0x1008FF81,\n XF86XK_Travel: 0x1008FF82,\n XF86XK_UserPB: 0x1008FF84,\n XF86XK_User1KB: 0x1008FF85,\n XF86XK_User2KB: 0x1008FF86,\n XF86XK_Video: 0x1008FF87,\n XF86XK_WheelButton: 0x1008FF88,\n XF86XK_Word: 0x1008FF89,\n XF86XK_Xfer: 0x1008FF8A,\n XF86XK_ZoomIn: 0x1008FF8B,\n XF86XK_ZoomOut: 0x1008FF8C,\n XF86XK_Away: 0x1008FF8D,\n XF86XK_Messenger: 0x1008FF8E,\n XF86XK_WebCam: 0x1008FF8F,\n XF86XK_MailForward: 0x1008FF90,\n XF86XK_Pictures: 0x1008FF91,\n XF86XK_Music: 0x1008FF92,\n XF86XK_Battery: 0x1008FF93,\n XF86XK_Bluetooth: 0x1008FF94,\n XF86XK_WLAN: 0x1008FF95,\n XF86XK_UWB: 0x1008FF96,\n XF86XK_AudioForward: 0x1008FF97,\n XF86XK_AudioRepeat: 0x1008FF98,\n XF86XK_AudioRandomPlay: 0x1008FF99,\n XF86XK_Subtitle: 0x1008FF9A,\n XF86XK_AudioCycleTrack: 0x1008FF9B,\n XF86XK_CycleAngle: 0x1008FF9C,\n XF86XK_FrameBack: 0x1008FF9D,\n XF86XK_FrameForward: 0x1008FF9E,\n XF86XK_Time: 0x1008FF9F,\n XF86XK_Select: 0x1008FFA0,\n XF86XK_View: 0x1008FFA1,\n XF86XK_TopMenu: 0x1008FFA2,\n XF86XK_Red: 0x1008FFA3,\n XF86XK_Green: 0x1008FFA4,\n XF86XK_Yellow: 0x1008FFA5,\n XF86XK_Blue: 0x1008FFA6,\n XF86XK_Suspend: 0x1008FFA7,\n XF86XK_Hibernate: 0x1008FFA8,\n XF86XK_TouchpadToggle: 0x1008FFA9,\n XF86XK_TouchpadOn: 0x1008FFB0,\n XF86XK_TouchpadOff: 0x1008FFB1,\n XF86XK_AudioMicMute: 0x1008FFB2,\n XF86XK_Switch_VT_1: 0x1008FE01,\n XF86XK_Switch_VT_2: 0x1008FE02,\n XF86XK_Switch_VT_3: 0x1008FE03,\n XF86XK_Switch_VT_4: 0x1008FE04,\n XF86XK_Switch_VT_5: 0x1008FE05,\n XF86XK_Switch_VT_6: 0x1008FE06,\n XF86XK_Switch_VT_7: 0x1008FE07,\n XF86XK_Switch_VT_8: 0x1008FE08,\n XF86XK_Switch_VT_9: 0x1008FE09,\n XF86XK_Switch_VT_10: 0x1008FE0A,\n XF86XK_Switch_VT_11: 0x1008FE0B,\n XF86XK_Switch_VT_12: 0x1008FE0C,\n XF86XK_Ungrab: 0x1008FE20,\n XF86XK_ClearGrab: 0x1008FE21,\n XF86XK_Next_VMode: 0x1008FE22,\n XF86XK_Prev_VMode: 0x1008FE23,\n XF86XK_LogWindowTree: 0x1008FE24,\n XF86XK_LogGrabInfo: 0x1008FE25,\n};\n","/*\n * Mapping from Unicode codepoints to X11/RFB keysyms\n *\n * This file was automatically generated from keysymdef.h\n * DO NOT EDIT!\n */\n\n/* Functions at the bottom */\n\nconst codepoints = {\n 0x0100: 0x03c0, // XK_Amacron\n 0x0101: 0x03e0, // XK_amacron\n 0x0102: 0x01c3, // XK_Abreve\n 0x0103: 0x01e3, // XK_abreve\n 0x0104: 0x01a1, // XK_Aogonek\n 0x0105: 0x01b1, // XK_aogonek\n 0x0106: 0x01c6, // XK_Cacute\n 0x0107: 0x01e6, // XK_cacute\n 0x0108: 0x02c6, // XK_Ccircumflex\n 0x0109: 0x02e6, // XK_ccircumflex\n 0x010a: 0x02c5, // XK_Cabovedot\n 0x010b: 0x02e5, // XK_cabovedot\n 0x010c: 0x01c8, // XK_Ccaron\n 0x010d: 0x01e8, // XK_ccaron\n 0x010e: 0x01cf, // XK_Dcaron\n 0x010f: 0x01ef, // XK_dcaron\n 0x0110: 0x01d0, // XK_Dstroke\n 0x0111: 0x01f0, // XK_dstroke\n 0x0112: 0x03aa, // XK_Emacron\n 0x0113: 0x03ba, // XK_emacron\n 0x0116: 0x03cc, // XK_Eabovedot\n 0x0117: 0x03ec, // XK_eabovedot\n 0x0118: 0x01ca, // XK_Eogonek\n 0x0119: 0x01ea, // XK_eogonek\n 0x011a: 0x01cc, // XK_Ecaron\n 0x011b: 0x01ec, // XK_ecaron\n 0x011c: 0x02d8, // XK_Gcircumflex\n 0x011d: 0x02f8, // XK_gcircumflex\n 0x011e: 0x02ab, // XK_Gbreve\n 0x011f: 0x02bb, // XK_gbreve\n 0x0120: 0x02d5, // XK_Gabovedot\n 0x0121: 0x02f5, // XK_gabovedot\n 0x0122: 0x03ab, // XK_Gcedilla\n 0x0123: 0x03bb, // XK_gcedilla\n 0x0124: 0x02a6, // XK_Hcircumflex\n 0x0125: 0x02b6, // XK_hcircumflex\n 0x0126: 0x02a1, // XK_Hstroke\n 0x0127: 0x02b1, // XK_hstroke\n 0x0128: 0x03a5, // XK_Itilde\n 0x0129: 0x03b5, // XK_itilde\n 0x012a: 0x03cf, // XK_Imacron\n 0x012b: 0x03ef, // XK_imacron\n 0x012e: 0x03c7, // XK_Iogonek\n 0x012f: 0x03e7, // XK_iogonek\n 0x0130: 0x02a9, // XK_Iabovedot\n 0x0131: 0x02b9, // XK_idotless\n 0x0134: 0x02ac, // XK_Jcircumflex\n 0x0135: 0x02bc, // XK_jcircumflex\n 0x0136: 0x03d3, // XK_Kcedilla\n 0x0137: 0x03f3, // XK_kcedilla\n 0x0138: 0x03a2, // XK_kra\n 0x0139: 0x01c5, // XK_Lacute\n 0x013a: 0x01e5, // XK_lacute\n 0x013b: 0x03a6, // XK_Lcedilla\n 0x013c: 0x03b6, // XK_lcedilla\n 0x013d: 0x01a5, // XK_Lcaron\n 0x013e: 0x01b5, // XK_lcaron\n 0x0141: 0x01a3, // XK_Lstroke\n 0x0142: 0x01b3, // XK_lstroke\n 0x0143: 0x01d1, // XK_Nacute\n 0x0144: 0x01f1, // XK_nacute\n 0x0145: 0x03d1, // XK_Ncedilla\n 0x0146: 0x03f1, // XK_ncedilla\n 0x0147: 0x01d2, // XK_Ncaron\n 0x0148: 0x01f2, // XK_ncaron\n 0x014a: 0x03bd, // XK_ENG\n 0x014b: 0x03bf, // XK_eng\n 0x014c: 0x03d2, // XK_Omacron\n 0x014d: 0x03f2, // XK_omacron\n 0x0150: 0x01d5, // XK_Odoubleacute\n 0x0151: 0x01f5, // XK_odoubleacute\n 0x0152: 0x13bc, // XK_OE\n 0x0153: 0x13bd, // XK_oe\n 0x0154: 0x01c0, // XK_Racute\n 0x0155: 0x01e0, // XK_racute\n 0x0156: 0x03a3, // XK_Rcedilla\n 0x0157: 0x03b3, // XK_rcedilla\n 0x0158: 0x01d8, // XK_Rcaron\n 0x0159: 0x01f8, // XK_rcaron\n 0x015a: 0x01a6, // XK_Sacute\n 0x015b: 0x01b6, // XK_sacute\n 0x015c: 0x02de, // XK_Scircumflex\n 0x015d: 0x02fe, // XK_scircumflex\n 0x015e: 0x01aa, // XK_Scedilla\n 0x015f: 0x01ba, // XK_scedilla\n 0x0160: 0x01a9, // XK_Scaron\n 0x0161: 0x01b9, // XK_scaron\n 0x0162: 0x01de, // XK_Tcedilla\n 0x0163: 0x01fe, // XK_tcedilla\n 0x0164: 0x01ab, // XK_Tcaron\n 0x0165: 0x01bb, // XK_tcaron\n 0x0166: 0x03ac, // XK_Tslash\n 0x0167: 0x03bc, // XK_tslash\n 0x0168: 0x03dd, // XK_Utilde\n 0x0169: 0x03fd, // XK_utilde\n 0x016a: 0x03de, // XK_Umacron\n 0x016b: 0x03fe, // XK_umacron\n 0x016c: 0x02dd, // XK_Ubreve\n 0x016d: 0x02fd, // XK_ubreve\n 0x016e: 0x01d9, // XK_Uring\n 0x016f: 0x01f9, // XK_uring\n 0x0170: 0x01db, // XK_Udoubleacute\n 0x0171: 0x01fb, // XK_udoubleacute\n 0x0172: 0x03d9, // XK_Uogonek\n 0x0173: 0x03f9, // XK_uogonek\n 0x0178: 0x13be, // XK_Ydiaeresis\n 0x0179: 0x01ac, // XK_Zacute\n 0x017a: 0x01bc, // XK_zacute\n 0x017b: 0x01af, // XK_Zabovedot\n 0x017c: 0x01bf, // XK_zabovedot\n 0x017d: 0x01ae, // XK_Zcaron\n 0x017e: 0x01be, // XK_zcaron\n 0x0192: 0x08f6, // XK_function\n 0x01d2: 0x10001d1, // XK_Ocaron\n 0x02c7: 0x01b7, // XK_caron\n 0x02d8: 0x01a2, // XK_breve\n 0x02d9: 0x01ff, // XK_abovedot\n 0x02db: 0x01b2, // XK_ogonek\n 0x02dd: 0x01bd, // XK_doubleacute\n 0x0385: 0x07ae, // XK_Greek_accentdieresis\n 0x0386: 0x07a1, // XK_Greek_ALPHAaccent\n 0x0388: 0x07a2, // XK_Greek_EPSILONaccent\n 0x0389: 0x07a3, // XK_Greek_ETAaccent\n 0x038a: 0x07a4, // XK_Greek_IOTAaccent\n 0x038c: 0x07a7, // XK_Greek_OMICRONaccent\n 0x038e: 0x07a8, // XK_Greek_UPSILONaccent\n 0x038f: 0x07ab, // XK_Greek_OMEGAaccent\n 0x0390: 0x07b6, // XK_Greek_iotaaccentdieresis\n 0x0391: 0x07c1, // XK_Greek_ALPHA\n 0x0392: 0x07c2, // XK_Greek_BETA\n 0x0393: 0x07c3, // XK_Greek_GAMMA\n 0x0394: 0x07c4, // XK_Greek_DELTA\n 0x0395: 0x07c5, // XK_Greek_EPSILON\n 0x0396: 0x07c6, // XK_Greek_ZETA\n 0x0397: 0x07c7, // XK_Greek_ETA\n 0x0398: 0x07c8, // XK_Greek_THETA\n 0x0399: 0x07c9, // XK_Greek_IOTA\n 0x039a: 0x07ca, // XK_Greek_KAPPA\n 0x039b: 0x07cb, // XK_Greek_LAMDA\n 0x039c: 0x07cc, // XK_Greek_MU\n 0x039d: 0x07cd, // XK_Greek_NU\n 0x039e: 0x07ce, // XK_Greek_XI\n 0x039f: 0x07cf, // XK_Greek_OMICRON\n 0x03a0: 0x07d0, // XK_Greek_PI\n 0x03a1: 0x07d1, // XK_Greek_RHO\n 0x03a3: 0x07d2, // XK_Greek_SIGMA\n 0x03a4: 0x07d4, // XK_Greek_TAU\n 0x03a5: 0x07d5, // XK_Greek_UPSILON\n 0x03a6: 0x07d6, // XK_Greek_PHI\n 0x03a7: 0x07d7, // XK_Greek_CHI\n 0x03a8: 0x07d8, // XK_Greek_PSI\n 0x03a9: 0x07d9, // XK_Greek_OMEGA\n 0x03aa: 0x07a5, // XK_Greek_IOTAdieresis\n 0x03ab: 0x07a9, // XK_Greek_UPSILONdieresis\n 0x03ac: 0x07b1, // XK_Greek_alphaaccent\n 0x03ad: 0x07b2, // XK_Greek_epsilonaccent\n 0x03ae: 0x07b3, // XK_Greek_etaaccent\n 0x03af: 0x07b4, // XK_Greek_iotaaccent\n 0x03b0: 0x07ba, // XK_Greek_upsilonaccentdieresis\n 0x03b1: 0x07e1, // XK_Greek_alpha\n 0x03b2: 0x07e2, // XK_Greek_beta\n 0x03b3: 0x07e3, // XK_Greek_gamma\n 0x03b4: 0x07e4, // XK_Greek_delta\n 0x03b5: 0x07e5, // XK_Greek_epsilon\n 0x03b6: 0x07e6, // XK_Greek_zeta\n 0x03b7: 0x07e7, // XK_Greek_eta\n 0x03b8: 0x07e8, // XK_Greek_theta\n 0x03b9: 0x07e9, // XK_Greek_iota\n 0x03ba: 0x07ea, // XK_Greek_kappa\n 0x03bb: 0x07eb, // XK_Greek_lamda\n 0x03bc: 0x07ec, // XK_Greek_mu\n 0x03bd: 0x07ed, // XK_Greek_nu\n 0x03be: 0x07ee, // XK_Greek_xi\n 0x03bf: 0x07ef, // XK_Greek_omicron\n 0x03c0: 0x07f0, // XK_Greek_pi\n 0x03c1: 0x07f1, // XK_Greek_rho\n 0x03c2: 0x07f3, // XK_Greek_finalsmallsigma\n 0x03c3: 0x07f2, // XK_Greek_sigma\n 0x03c4: 0x07f4, // XK_Greek_tau\n 0x03c5: 0x07f5, // XK_Greek_upsilon\n 0x03c6: 0x07f6, // XK_Greek_phi\n 0x03c7: 0x07f7, // XK_Greek_chi\n 0x03c8: 0x07f8, // XK_Greek_psi\n 0x03c9: 0x07f9, // XK_Greek_omega\n 0x03ca: 0x07b5, // XK_Greek_iotadieresis\n 0x03cb: 0x07b9, // XK_Greek_upsilondieresis\n 0x03cc: 0x07b7, // XK_Greek_omicronaccent\n 0x03cd: 0x07b8, // XK_Greek_upsilonaccent\n 0x03ce: 0x07bb, // XK_Greek_omegaaccent\n 0x0401: 0x06b3, // XK_Cyrillic_IO\n 0x0402: 0x06b1, // XK_Serbian_DJE\n 0x0403: 0x06b2, // XK_Macedonia_GJE\n 0x0404: 0x06b4, // XK_Ukrainian_IE\n 0x0405: 0x06b5, // XK_Macedonia_DSE\n 0x0406: 0x06b6, // XK_Ukrainian_I\n 0x0407: 0x06b7, // XK_Ukrainian_YI\n 0x0408: 0x06b8, // XK_Cyrillic_JE\n 0x0409: 0x06b9, // XK_Cyrillic_LJE\n 0x040a: 0x06ba, // XK_Cyrillic_NJE\n 0x040b: 0x06bb, // XK_Serbian_TSHE\n 0x040c: 0x06bc, // XK_Macedonia_KJE\n 0x040e: 0x06be, // XK_Byelorussian_SHORTU\n 0x040f: 0x06bf, // XK_Cyrillic_DZHE\n 0x0410: 0x06e1, // XK_Cyrillic_A\n 0x0411: 0x06e2, // XK_Cyrillic_BE\n 0x0412: 0x06f7, // XK_Cyrillic_VE\n 0x0413: 0x06e7, // XK_Cyrillic_GHE\n 0x0414: 0x06e4, // XK_Cyrillic_DE\n 0x0415: 0x06e5, // XK_Cyrillic_IE\n 0x0416: 0x06f6, // XK_Cyrillic_ZHE\n 0x0417: 0x06fa, // XK_Cyrillic_ZE\n 0x0418: 0x06e9, // XK_Cyrillic_I\n 0x0419: 0x06ea, // XK_Cyrillic_SHORTI\n 0x041a: 0x06eb, // XK_Cyrillic_KA\n 0x041b: 0x06ec, // XK_Cyrillic_EL\n 0x041c: 0x06ed, // XK_Cyrillic_EM\n 0x041d: 0x06ee, // XK_Cyrillic_EN\n 0x041e: 0x06ef, // XK_Cyrillic_O\n 0x041f: 0x06f0, // XK_Cyrillic_PE\n 0x0420: 0x06f2, // XK_Cyrillic_ER\n 0x0421: 0x06f3, // XK_Cyrillic_ES\n 0x0422: 0x06f4, // XK_Cyrillic_TE\n 0x0423: 0x06f5, // XK_Cyrillic_U\n 0x0424: 0x06e6, // XK_Cyrillic_EF\n 0x0425: 0x06e8, // XK_Cyrillic_HA\n 0x0426: 0x06e3, // XK_Cyrillic_TSE\n 0x0427: 0x06fe, // XK_Cyrillic_CHE\n 0x0428: 0x06fb, // XK_Cyrillic_SHA\n 0x0429: 0x06fd, // XK_Cyrillic_SHCHA\n 0x042a: 0x06ff, // XK_Cyrillic_HARDSIGN\n 0x042b: 0x06f9, // XK_Cyrillic_YERU\n 0x042c: 0x06f8, // XK_Cyrillic_SOFTSIGN\n 0x042d: 0x06fc, // XK_Cyrillic_E\n 0x042e: 0x06e0, // XK_Cyrillic_YU\n 0x042f: 0x06f1, // XK_Cyrillic_YA\n 0x0430: 0x06c1, // XK_Cyrillic_a\n 0x0431: 0x06c2, // XK_Cyrillic_be\n 0x0432: 0x06d7, // XK_Cyrillic_ve\n 0x0433: 0x06c7, // XK_Cyrillic_ghe\n 0x0434: 0x06c4, // XK_Cyrillic_de\n 0x0435: 0x06c5, // XK_Cyrillic_ie\n 0x0436: 0x06d6, // XK_Cyrillic_zhe\n 0x0437: 0x06da, // XK_Cyrillic_ze\n 0x0438: 0x06c9, // XK_Cyrillic_i\n 0x0439: 0x06ca, // XK_Cyrillic_shorti\n 0x043a: 0x06cb, // XK_Cyrillic_ka\n 0x043b: 0x06cc, // XK_Cyrillic_el\n 0x043c: 0x06cd, // XK_Cyrillic_em\n 0x043d: 0x06ce, // XK_Cyrillic_en\n 0x043e: 0x06cf, // XK_Cyrillic_o\n 0x043f: 0x06d0, // XK_Cyrillic_pe\n 0x0440: 0x06d2, // XK_Cyrillic_er\n 0x0441: 0x06d3, // XK_Cyrillic_es\n 0x0442: 0x06d4, // XK_Cyrillic_te\n 0x0443: 0x06d5, // XK_Cyrillic_u\n 0x0444: 0x06c6, // XK_Cyrillic_ef\n 0x0445: 0x06c8, // XK_Cyrillic_ha\n 0x0446: 0x06c3, // XK_Cyrillic_tse\n 0x0447: 0x06de, // XK_Cyrillic_che\n 0x0448: 0x06db, // XK_Cyrillic_sha\n 0x0449: 0x06dd, // XK_Cyrillic_shcha\n 0x044a: 0x06df, // XK_Cyrillic_hardsign\n 0x044b: 0x06d9, // XK_Cyrillic_yeru\n 0x044c: 0x06d8, // XK_Cyrillic_softsign\n 0x044d: 0x06dc, // XK_Cyrillic_e\n 0x044e: 0x06c0, // XK_Cyrillic_yu\n 0x044f: 0x06d1, // XK_Cyrillic_ya\n 0x0451: 0x06a3, // XK_Cyrillic_io\n 0x0452: 0x06a1, // XK_Serbian_dje\n 0x0453: 0x06a2, // XK_Macedonia_gje\n 0x0454: 0x06a4, // XK_Ukrainian_ie\n 0x0455: 0x06a5, // XK_Macedonia_dse\n 0x0456: 0x06a6, // XK_Ukrainian_i\n 0x0457: 0x06a7, // XK_Ukrainian_yi\n 0x0458: 0x06a8, // XK_Cyrillic_je\n 0x0459: 0x06a9, // XK_Cyrillic_lje\n 0x045a: 0x06aa, // XK_Cyrillic_nje\n 0x045b: 0x06ab, // XK_Serbian_tshe\n 0x045c: 0x06ac, // XK_Macedonia_kje\n 0x045e: 0x06ae, // XK_Byelorussian_shortu\n 0x045f: 0x06af, // XK_Cyrillic_dzhe\n 0x0490: 0x06bd, // XK_Ukrainian_GHE_WITH_UPTURN\n 0x0491: 0x06ad, // XK_Ukrainian_ghe_with_upturn\n 0x05d0: 0x0ce0, // XK_hebrew_aleph\n 0x05d1: 0x0ce1, // XK_hebrew_bet\n 0x05d2: 0x0ce2, // XK_hebrew_gimel\n 0x05d3: 0x0ce3, // XK_hebrew_dalet\n 0x05d4: 0x0ce4, // XK_hebrew_he\n 0x05d5: 0x0ce5, // XK_hebrew_waw\n 0x05d6: 0x0ce6, // XK_hebrew_zain\n 0x05d7: 0x0ce7, // XK_hebrew_chet\n 0x05d8: 0x0ce8, // XK_hebrew_tet\n 0x05d9: 0x0ce9, // XK_hebrew_yod\n 0x05da: 0x0cea, // XK_hebrew_finalkaph\n 0x05db: 0x0ceb, // XK_hebrew_kaph\n 0x05dc: 0x0cec, // XK_hebrew_lamed\n 0x05dd: 0x0ced, // XK_hebrew_finalmem\n 0x05de: 0x0cee, // XK_hebrew_mem\n 0x05df: 0x0cef, // XK_hebrew_finalnun\n 0x05e0: 0x0cf0, // XK_hebrew_nun\n 0x05e1: 0x0cf1, // XK_hebrew_samech\n 0x05e2: 0x0cf2, // XK_hebrew_ayin\n 0x05e3: 0x0cf3, // XK_hebrew_finalpe\n 0x05e4: 0x0cf4, // XK_hebrew_pe\n 0x05e5: 0x0cf5, // XK_hebrew_finalzade\n 0x05e6: 0x0cf6, // XK_hebrew_zade\n 0x05e7: 0x0cf7, // XK_hebrew_qoph\n 0x05e8: 0x0cf8, // XK_hebrew_resh\n 0x05e9: 0x0cf9, // XK_hebrew_shin\n 0x05ea: 0x0cfa, // XK_hebrew_taw\n 0x060c: 0x05ac, // XK_Arabic_comma\n 0x061b: 0x05bb, // XK_Arabic_semicolon\n 0x061f: 0x05bf, // XK_Arabic_question_mark\n 0x0621: 0x05c1, // XK_Arabic_hamza\n 0x0622: 0x05c2, // XK_Arabic_maddaonalef\n 0x0623: 0x05c3, // XK_Arabic_hamzaonalef\n 0x0624: 0x05c4, // XK_Arabic_hamzaonwaw\n 0x0625: 0x05c5, // XK_Arabic_hamzaunderalef\n 0x0626: 0x05c6, // XK_Arabic_hamzaonyeh\n 0x0627: 0x05c7, // XK_Arabic_alef\n 0x0628: 0x05c8, // XK_Arabic_beh\n 0x0629: 0x05c9, // XK_Arabic_tehmarbuta\n 0x062a: 0x05ca, // XK_Arabic_teh\n 0x062b: 0x05cb, // XK_Arabic_theh\n 0x062c: 0x05cc, // XK_Arabic_jeem\n 0x062d: 0x05cd, // XK_Arabic_hah\n 0x062e: 0x05ce, // XK_Arabic_khah\n 0x062f: 0x05cf, // XK_Arabic_dal\n 0x0630: 0x05d0, // XK_Arabic_thal\n 0x0631: 0x05d1, // XK_Arabic_ra\n 0x0632: 0x05d2, // XK_Arabic_zain\n 0x0633: 0x05d3, // XK_Arabic_seen\n 0x0634: 0x05d4, // XK_Arabic_sheen\n 0x0635: 0x05d5, // XK_Arabic_sad\n 0x0636: 0x05d6, // XK_Arabic_dad\n 0x0637: 0x05d7, // XK_Arabic_tah\n 0x0638: 0x05d8, // XK_Arabic_zah\n 0x0639: 0x05d9, // XK_Arabic_ain\n 0x063a: 0x05da, // XK_Arabic_ghain\n 0x0640: 0x05e0, // XK_Arabic_tatweel\n 0x0641: 0x05e1, // XK_Arabic_feh\n 0x0642: 0x05e2, // XK_Arabic_qaf\n 0x0643: 0x05e3, // XK_Arabic_kaf\n 0x0644: 0x05e4, // XK_Arabic_lam\n 0x0645: 0x05e5, // XK_Arabic_meem\n 0x0646: 0x05e6, // XK_Arabic_noon\n 0x0647: 0x05e7, // XK_Arabic_ha\n 0x0648: 0x05e8, // XK_Arabic_waw\n 0x0649: 0x05e9, // XK_Arabic_alefmaksura\n 0x064a: 0x05ea, // XK_Arabic_yeh\n 0x064b: 0x05eb, // XK_Arabic_fathatan\n 0x064c: 0x05ec, // XK_Arabic_dammatan\n 0x064d: 0x05ed, // XK_Arabic_kasratan\n 0x064e: 0x05ee, // XK_Arabic_fatha\n 0x064f: 0x05ef, // XK_Arabic_damma\n 0x0650: 0x05f0, // XK_Arabic_kasra\n 0x0651: 0x05f1, // XK_Arabic_shadda\n 0x0652: 0x05f2, // XK_Arabic_sukun\n 0x0e01: 0x0da1, // XK_Thai_kokai\n 0x0e02: 0x0da2, // XK_Thai_khokhai\n 0x0e03: 0x0da3, // XK_Thai_khokhuat\n 0x0e04: 0x0da4, // XK_Thai_khokhwai\n 0x0e05: 0x0da5, // XK_Thai_khokhon\n 0x0e06: 0x0da6, // XK_Thai_khorakhang\n 0x0e07: 0x0da7, // XK_Thai_ngongu\n 0x0e08: 0x0da8, // XK_Thai_chochan\n 0x0e09: 0x0da9, // XK_Thai_choching\n 0x0e0a: 0x0daa, // XK_Thai_chochang\n 0x0e0b: 0x0dab, // XK_Thai_soso\n 0x0e0c: 0x0dac, // XK_Thai_chochoe\n 0x0e0d: 0x0dad, // XK_Thai_yoying\n 0x0e0e: 0x0dae, // XK_Thai_dochada\n 0x0e0f: 0x0daf, // XK_Thai_topatak\n 0x0e10: 0x0db0, // XK_Thai_thothan\n 0x0e11: 0x0db1, // XK_Thai_thonangmontho\n 0x0e12: 0x0db2, // XK_Thai_thophuthao\n 0x0e13: 0x0db3, // XK_Thai_nonen\n 0x0e14: 0x0db4, // XK_Thai_dodek\n 0x0e15: 0x0db5, // XK_Thai_totao\n 0x0e16: 0x0db6, // XK_Thai_thothung\n 0x0e17: 0x0db7, // XK_Thai_thothahan\n 0x0e18: 0x0db8, // XK_Thai_thothong\n 0x0e19: 0x0db9, // XK_Thai_nonu\n 0x0e1a: 0x0dba, // XK_Thai_bobaimai\n 0x0e1b: 0x0dbb, // XK_Thai_popla\n 0x0e1c: 0x0dbc, // XK_Thai_phophung\n 0x0e1d: 0x0dbd, // XK_Thai_fofa\n 0x0e1e: 0x0dbe, // XK_Thai_phophan\n 0x0e1f: 0x0dbf, // XK_Thai_fofan\n 0x0e20: 0x0dc0, // XK_Thai_phosamphao\n 0x0e21: 0x0dc1, // XK_Thai_moma\n 0x0e22: 0x0dc2, // XK_Thai_yoyak\n 0x0e23: 0x0dc3, // XK_Thai_rorua\n 0x0e24: 0x0dc4, // XK_Thai_ru\n 0x0e25: 0x0dc5, // XK_Thai_loling\n 0x0e26: 0x0dc6, // XK_Thai_lu\n 0x0e27: 0x0dc7, // XK_Thai_wowaen\n 0x0e28: 0x0dc8, // XK_Thai_sosala\n 0x0e29: 0x0dc9, // XK_Thai_sorusi\n 0x0e2a: 0x0dca, // XK_Thai_sosua\n 0x0e2b: 0x0dcb, // XK_Thai_hohip\n 0x0e2c: 0x0dcc, // XK_Thai_lochula\n 0x0e2d: 0x0dcd, // XK_Thai_oang\n 0x0e2e: 0x0dce, // XK_Thai_honokhuk\n 0x0e2f: 0x0dcf, // XK_Thai_paiyannoi\n 0x0e30: 0x0dd0, // XK_Thai_saraa\n 0x0e31: 0x0dd1, // XK_Thai_maihanakat\n 0x0e32: 0x0dd2, // XK_Thai_saraaa\n 0x0e33: 0x0dd3, // XK_Thai_saraam\n 0x0e34: 0x0dd4, // XK_Thai_sarai\n 0x0e35: 0x0dd5, // XK_Thai_saraii\n 0x0e36: 0x0dd6, // XK_Thai_saraue\n 0x0e37: 0x0dd7, // XK_Thai_sarauee\n 0x0e38: 0x0dd8, // XK_Thai_sarau\n 0x0e39: 0x0dd9, // XK_Thai_sarauu\n 0x0e3a: 0x0dda, // XK_Thai_phinthu\n 0x0e3f: 0x0ddf, // XK_Thai_baht\n 0x0e40: 0x0de0, // XK_Thai_sarae\n 0x0e41: 0x0de1, // XK_Thai_saraae\n 0x0e42: 0x0de2, // XK_Thai_sarao\n 0x0e43: 0x0de3, // XK_Thai_saraaimaimuan\n 0x0e44: 0x0de4, // XK_Thai_saraaimaimalai\n 0x0e45: 0x0de5, // XK_Thai_lakkhangyao\n 0x0e46: 0x0de6, // XK_Thai_maiyamok\n 0x0e47: 0x0de7, // XK_Thai_maitaikhu\n 0x0e48: 0x0de8, // XK_Thai_maiek\n 0x0e49: 0x0de9, // XK_Thai_maitho\n 0x0e4a: 0x0dea, // XK_Thai_maitri\n 0x0e4b: 0x0deb, // XK_Thai_maichattawa\n 0x0e4c: 0x0dec, // XK_Thai_thanthakhat\n 0x0e4d: 0x0ded, // XK_Thai_nikhahit\n 0x0e50: 0x0df0, // XK_Thai_leksun\n 0x0e51: 0x0df1, // XK_Thai_leknung\n 0x0e52: 0x0df2, // XK_Thai_leksong\n 0x0e53: 0x0df3, // XK_Thai_leksam\n 0x0e54: 0x0df4, // XK_Thai_leksi\n 0x0e55: 0x0df5, // XK_Thai_lekha\n 0x0e56: 0x0df6, // XK_Thai_lekhok\n 0x0e57: 0x0df7, // XK_Thai_lekchet\n 0x0e58: 0x0df8, // XK_Thai_lekpaet\n 0x0e59: 0x0df9, // XK_Thai_lekkao\n 0x2002: 0x0aa2, // XK_enspace\n 0x2003: 0x0aa1, // XK_emspace\n 0x2004: 0x0aa3, // XK_em3space\n 0x2005: 0x0aa4, // XK_em4space\n 0x2007: 0x0aa5, // XK_digitspace\n 0x2008: 0x0aa6, // XK_punctspace\n 0x2009: 0x0aa7, // XK_thinspace\n 0x200a: 0x0aa8, // XK_hairspace\n 0x2012: 0x0abb, // XK_figdash\n 0x2013: 0x0aaa, // XK_endash\n 0x2014: 0x0aa9, // XK_emdash\n 0x2015: 0x07af, // XK_Greek_horizbar\n 0x2017: 0x0cdf, // XK_hebrew_doublelowline\n 0x2018: 0x0ad0, // XK_leftsinglequotemark\n 0x2019: 0x0ad1, // XK_rightsinglequotemark\n 0x201a: 0x0afd, // XK_singlelowquotemark\n 0x201c: 0x0ad2, // XK_leftdoublequotemark\n 0x201d: 0x0ad3, // XK_rightdoublequotemark\n 0x201e: 0x0afe, // XK_doublelowquotemark\n 0x2020: 0x0af1, // XK_dagger\n 0x2021: 0x0af2, // XK_doubledagger\n 0x2022: 0x0ae6, // XK_enfilledcircbullet\n 0x2025: 0x0aaf, // XK_doubbaselinedot\n 0x2026: 0x0aae, // XK_ellipsis\n 0x2030: 0x0ad5, // XK_permille\n 0x2032: 0x0ad6, // XK_minutes\n 0x2033: 0x0ad7, // XK_seconds\n 0x2038: 0x0afc, // XK_caret\n 0x203e: 0x047e, // XK_overline\n 0x20a9: 0x0eff, // XK_Korean_Won\n 0x20ac: 0x20ac, // XK_EuroSign\n 0x2105: 0x0ab8, // XK_careof\n 0x2116: 0x06b0, // XK_numerosign\n 0x2117: 0x0afb, // XK_phonographcopyright\n 0x211e: 0x0ad4, // XK_prescription\n 0x2122: 0x0ac9, // XK_trademark\n 0x2153: 0x0ab0, // XK_onethird\n 0x2154: 0x0ab1, // XK_twothirds\n 0x2155: 0x0ab2, // XK_onefifth\n 0x2156: 0x0ab3, // XK_twofifths\n 0x2157: 0x0ab4, // XK_threefifths\n 0x2158: 0x0ab5, // XK_fourfifths\n 0x2159: 0x0ab6, // XK_onesixth\n 0x215a: 0x0ab7, // XK_fivesixths\n 0x215b: 0x0ac3, // XK_oneeighth\n 0x215c: 0x0ac4, // XK_threeeighths\n 0x215d: 0x0ac5, // XK_fiveeighths\n 0x215e: 0x0ac6, // XK_seveneighths\n 0x2190: 0x08fb, // XK_leftarrow\n 0x2191: 0x08fc, // XK_uparrow\n 0x2192: 0x08fd, // XK_rightarrow\n 0x2193: 0x08fe, // XK_downarrow\n 0x21d2: 0x08ce, // XK_implies\n 0x21d4: 0x08cd, // XK_ifonlyif\n 0x2202: 0x08ef, // XK_partialderivative\n 0x2207: 0x08c5, // XK_nabla\n 0x2218: 0x0bca, // XK_jot\n 0x221a: 0x08d6, // XK_radical\n 0x221d: 0x08c1, // XK_variation\n 0x221e: 0x08c2, // XK_infinity\n 0x2227: 0x08de, // XK_logicaland\n 0x2228: 0x08df, // XK_logicalor\n 0x2229: 0x08dc, // XK_intersection\n 0x222a: 0x08dd, // XK_union\n 0x222b: 0x08bf, // XK_integral\n 0x2234: 0x08c0, // XK_therefore\n 0x223c: 0x08c8, // XK_approximate\n 0x2243: 0x08c9, // XK_similarequal\n 0x2245: 0x1002248, // XK_approxeq\n 0x2260: 0x08bd, // XK_notequal\n 0x2261: 0x08cf, // XK_identical\n 0x2264: 0x08bc, // XK_lessthanequal\n 0x2265: 0x08be, // XK_greaterthanequal\n 0x2282: 0x08da, // XK_includedin\n 0x2283: 0x08db, // XK_includes\n 0x22a2: 0x0bfc, // XK_righttack\n 0x22a3: 0x0bdc, // XK_lefttack\n 0x22a4: 0x0bc2, // XK_downtack\n 0x22a5: 0x0bce, // XK_uptack\n 0x2308: 0x0bd3, // XK_upstile\n 0x230a: 0x0bc4, // XK_downstile\n 0x2315: 0x0afa, // XK_telephonerecorder\n 0x2320: 0x08a4, // XK_topintegral\n 0x2321: 0x08a5, // XK_botintegral\n 0x2395: 0x0bcc, // XK_quad\n 0x239b: 0x08ab, // XK_topleftparens\n 0x239d: 0x08ac, // XK_botleftparens\n 0x239e: 0x08ad, // XK_toprightparens\n 0x23a0: 0x08ae, // XK_botrightparens\n 0x23a1: 0x08a7, // XK_topleftsqbracket\n 0x23a3: 0x08a8, // XK_botleftsqbracket\n 0x23a4: 0x08a9, // XK_toprightsqbracket\n 0x23a6: 0x08aa, // XK_botrightsqbracket\n 0x23a8: 0x08af, // XK_leftmiddlecurlybrace\n 0x23ac: 0x08b0, // XK_rightmiddlecurlybrace\n 0x23b7: 0x08a1, // XK_leftradical\n 0x23ba: 0x09ef, // XK_horizlinescan1\n 0x23bb: 0x09f0, // XK_horizlinescan3\n 0x23bc: 0x09f2, // XK_horizlinescan7\n 0x23bd: 0x09f3, // XK_horizlinescan9\n 0x2409: 0x09e2, // XK_ht\n 0x240a: 0x09e5, // XK_lf\n 0x240b: 0x09e9, // XK_vt\n 0x240c: 0x09e3, // XK_ff\n 0x240d: 0x09e4, // XK_cr\n 0x2423: 0x0aac, // XK_signifblank\n 0x2424: 0x09e8, // XK_nl\n 0x2500: 0x08a3, // XK_horizconnector\n 0x2502: 0x08a6, // XK_vertconnector\n 0x250c: 0x08a2, // XK_topleftradical\n 0x2510: 0x09eb, // XK_uprightcorner\n 0x2514: 0x09ed, // XK_lowleftcorner\n 0x2518: 0x09ea, // XK_lowrightcorner\n 0x251c: 0x09f4, // XK_leftt\n 0x2524: 0x09f5, // XK_rightt\n 0x252c: 0x09f7, // XK_topt\n 0x2534: 0x09f6, // XK_bott\n 0x253c: 0x09ee, // XK_crossinglines\n 0x2592: 0x09e1, // XK_checkerboard\n 0x25aa: 0x0ae7, // XK_enfilledsqbullet\n 0x25ab: 0x0ae1, // XK_enopensquarebullet\n 0x25ac: 0x0adb, // XK_filledrectbullet\n 0x25ad: 0x0ae2, // XK_openrectbullet\n 0x25ae: 0x0adf, // XK_emfilledrect\n 0x25af: 0x0acf, // XK_emopenrectangle\n 0x25b2: 0x0ae8, // XK_filledtribulletup\n 0x25b3: 0x0ae3, // XK_opentribulletup\n 0x25b6: 0x0add, // XK_filledrighttribullet\n 0x25b7: 0x0acd, // XK_rightopentriangle\n 0x25bc: 0x0ae9, // XK_filledtribulletdown\n 0x25bd: 0x0ae4, // XK_opentribulletdown\n 0x25c0: 0x0adc, // XK_filledlefttribullet\n 0x25c1: 0x0acc, // XK_leftopentriangle\n 0x25c6: 0x09e0, // XK_soliddiamond\n 0x25cb: 0x0ace, // XK_emopencircle\n 0x25cf: 0x0ade, // XK_emfilledcircle\n 0x25e6: 0x0ae0, // XK_enopencircbullet\n 0x2606: 0x0ae5, // XK_openstar\n 0x260e: 0x0af9, // XK_telephone\n 0x2613: 0x0aca, // XK_signaturemark\n 0x261c: 0x0aea, // XK_leftpointer\n 0x261e: 0x0aeb, // XK_rightpointer\n 0x2640: 0x0af8, // XK_femalesymbol\n 0x2642: 0x0af7, // XK_malesymbol\n 0x2663: 0x0aec, // XK_club\n 0x2665: 0x0aee, // XK_heart\n 0x2666: 0x0aed, // XK_diamond\n 0x266d: 0x0af6, // XK_musicalflat\n 0x266f: 0x0af5, // XK_musicalsharp\n 0x2713: 0x0af3, // XK_checkmark\n 0x2717: 0x0af4, // XK_ballotcross\n 0x271d: 0x0ad9, // XK_latincross\n 0x2720: 0x0af0, // XK_maltesecross\n 0x27e8: 0x0abc, // XK_leftanglebracket\n 0x27e9: 0x0abe, // XK_rightanglebracket\n 0x3001: 0x04a4, // XK_kana_comma\n 0x3002: 0x04a1, // XK_kana_fullstop\n 0x300c: 0x04a2, // XK_kana_openingbracket\n 0x300d: 0x04a3, // XK_kana_closingbracket\n 0x309b: 0x04de, // XK_voicedsound\n 0x309c: 0x04df, // XK_semivoicedsound\n 0x30a1: 0x04a7, // XK_kana_a\n 0x30a2: 0x04b1, // XK_kana_A\n 0x30a3: 0x04a8, // XK_kana_i\n 0x30a4: 0x04b2, // XK_kana_I\n 0x30a5: 0x04a9, // XK_kana_u\n 0x30a6: 0x04b3, // XK_kana_U\n 0x30a7: 0x04aa, // XK_kana_e\n 0x30a8: 0x04b4, // XK_kana_E\n 0x30a9: 0x04ab, // XK_kana_o\n 0x30aa: 0x04b5, // XK_kana_O\n 0x30ab: 0x04b6, // XK_kana_KA\n 0x30ad: 0x04b7, // XK_kana_KI\n 0x30af: 0x04b8, // XK_kana_KU\n 0x30b1: 0x04b9, // XK_kana_KE\n 0x30b3: 0x04ba, // XK_kana_KO\n 0x30b5: 0x04bb, // XK_kana_SA\n 0x30b7: 0x04bc, // XK_kana_SHI\n 0x30b9: 0x04bd, // XK_kana_SU\n 0x30bb: 0x04be, // XK_kana_SE\n 0x30bd: 0x04bf, // XK_kana_SO\n 0x30bf: 0x04c0, // XK_kana_TA\n 0x30c1: 0x04c1, // XK_kana_CHI\n 0x30c3: 0x04af, // XK_kana_tsu\n 0x30c4: 0x04c2, // XK_kana_TSU\n 0x30c6: 0x04c3, // XK_kana_TE\n 0x30c8: 0x04c4, // XK_kana_TO\n 0x30ca: 0x04c5, // XK_kana_NA\n 0x30cb: 0x04c6, // XK_kana_NI\n 0x30cc: 0x04c7, // XK_kana_NU\n 0x30cd: 0x04c8, // XK_kana_NE\n 0x30ce: 0x04c9, // XK_kana_NO\n 0x30cf: 0x04ca, // XK_kana_HA\n 0x30d2: 0x04cb, // XK_kana_HI\n 0x30d5: 0x04cc, // XK_kana_FU\n 0x30d8: 0x04cd, // XK_kana_HE\n 0x30db: 0x04ce, // XK_kana_HO\n 0x30de: 0x04cf, // XK_kana_MA\n 0x30df: 0x04d0, // XK_kana_MI\n 0x30e0: 0x04d1, // XK_kana_MU\n 0x30e1: 0x04d2, // XK_kana_ME\n 0x30e2: 0x04d3, // XK_kana_MO\n 0x30e3: 0x04ac, // XK_kana_ya\n 0x30e4: 0x04d4, // XK_kana_YA\n 0x30e5: 0x04ad, // XK_kana_yu\n 0x30e6: 0x04d5, // XK_kana_YU\n 0x30e7: 0x04ae, // XK_kana_yo\n 0x30e8: 0x04d6, // XK_kana_YO\n 0x30e9: 0x04d7, // XK_kana_RA\n 0x30ea: 0x04d8, // XK_kana_RI\n 0x30eb: 0x04d9, // XK_kana_RU\n 0x30ec: 0x04da, // XK_kana_RE\n 0x30ed: 0x04db, // XK_kana_RO\n 0x30ef: 0x04dc, // XK_kana_WA\n 0x30f2: 0x04a6, // XK_kana_WO\n 0x30f3: 0x04dd, // XK_kana_N\n 0x30fb: 0x04a5, // XK_kana_conjunctive\n 0x30fc: 0x04b0, // XK_prolongedsound\n};\n\nexport default {\n lookup(u) {\n // Latin-1 is one-to-one mapping\n if ((u >= 0x20) && (u <= 0xff)) {\n return u;\n }\n\n // Lookup table (fairly random)\n const keysym = codepoints[u];\n if (keysym !== undefined) {\n return keysym;\n }\n\n // General mapping as final fallback\n return 0x01000000 | u;\n },\n};\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/*\n * Mapping between Microsoft® Windows® Virtual-Key codes and\n * HTML key codes.\n */\n\nexport default {\n 0x08: 'Backspace',\n 0x09: 'Tab',\n 0x0a: 'NumpadClear',\n 0x0c: 'Numpad5', // IE11 sends evt.keyCode: 12 when numlock is off\n 0x0d: 'Enter',\n 0x10: 'ShiftLeft',\n 0x11: 'ControlLeft',\n 0x12: 'AltLeft',\n 0x13: 'Pause',\n 0x14: 'CapsLock',\n 0x15: 'Lang1',\n 0x19: 'Lang2',\n 0x1b: 'Escape',\n 0x1c: 'Convert',\n 0x1d: 'NonConvert',\n 0x20: 'Space',\n 0x21: 'PageUp',\n 0x22: 'PageDown',\n 0x23: 'End',\n 0x24: 'Home',\n 0x25: 'ArrowLeft',\n 0x26: 'ArrowUp',\n 0x27: 'ArrowRight',\n 0x28: 'ArrowDown',\n 0x29: 'Select',\n 0x2c: 'PrintScreen',\n 0x2d: 'Insert',\n 0x2e: 'Delete',\n 0x2f: 'Help',\n 0x30: 'Digit0',\n 0x31: 'Digit1',\n 0x32: 'Digit2',\n 0x33: 'Digit3',\n 0x34: 'Digit4',\n 0x35: 'Digit5',\n 0x36: 'Digit6',\n 0x37: 'Digit7',\n 0x38: 'Digit8',\n 0x39: 'Digit9',\n 0x5b: 'MetaLeft',\n 0x5c: 'MetaRight',\n 0x5d: 'ContextMenu',\n 0x5f: 'Sleep',\n 0x60: 'Numpad0',\n 0x61: 'Numpad1',\n 0x62: 'Numpad2',\n 0x63: 'Numpad3',\n 0x64: 'Numpad4',\n 0x65: 'Numpad5',\n 0x66: 'Numpad6',\n 0x67: 'Numpad7',\n 0x68: 'Numpad8',\n 0x69: 'Numpad9',\n 0x6a: 'NumpadMultiply',\n 0x6b: 'NumpadAdd',\n 0x6c: 'NumpadDecimal',\n 0x6d: 'NumpadSubtract',\n 0x6e: 'NumpadDecimal', // Duplicate, because buggy on Windows\n 0x6f: 'NumpadDivide',\n 0x70: 'F1',\n 0x71: 'F2',\n 0x72: 'F3',\n 0x73: 'F4',\n 0x74: 'F5',\n 0x75: 'F6',\n 0x76: 'F7',\n 0x77: 'F8',\n 0x78: 'F9',\n 0x79: 'F10',\n 0x7a: 'F11',\n 0x7b: 'F12',\n 0x7c: 'F13',\n 0x7d: 'F14',\n 0x7e: 'F15',\n 0x7f: 'F16',\n 0x80: 'F17',\n 0x81: 'F18',\n 0x82: 'F19',\n 0x83: 'F20',\n 0x84: 'F21',\n 0x85: 'F22',\n 0x86: 'F23',\n 0x87: 'F24',\n 0x90: 'NumLock',\n 0x91: 'ScrollLock',\n 0xa6: 'BrowserBack',\n 0xa7: 'BrowserForward',\n 0xa8: 'BrowserRefresh',\n 0xa9: 'BrowserStop',\n 0xaa: 'BrowserSearch',\n 0xab: 'BrowserFavorites',\n 0xac: 'BrowserHome',\n 0xad: 'AudioVolumeMute',\n 0xae: 'AudioVolumeDown',\n 0xaf: 'AudioVolumeUp',\n 0xb0: 'MediaTrackNext',\n 0xb1: 'MediaTrackPrevious',\n 0xb2: 'MediaStop',\n 0xb3: 'MediaPlayPause',\n 0xb4: 'LaunchMail',\n 0xb5: 'MediaSelect',\n 0xb6: 'LaunchApp1',\n 0xb7: 'LaunchApp2',\n 0xe1: 'AltRight', // Only when it is AltGraph\n};\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/*\n * Fallback mapping between HTML key codes (physical keys) and\n * HTML key values. This only works for keys that don't vary\n * between layouts. We also omit those who manage fine by mapping the\n * Unicode representation.\n *\n * See https://www.w3.org/TR/uievents-code/ for possible codes.\n * See https://www.w3.org/TR/uievents-key/ for possible values.\n */\n\n/* eslint-disable key-spacing */\n\nexport default {\n\n// 3.1.1.1. Writing System Keys\n\n 'Backspace': 'Backspace',\n\n// 3.1.1.2. Functional Keys\n\n 'AltLeft': 'Alt',\n 'AltRight': 'Alt', // This could also be 'AltGraph'\n 'CapsLock': 'CapsLock',\n 'ContextMenu': 'ContextMenu',\n 'ControlLeft': 'Control',\n 'ControlRight': 'Control',\n 'Enter': 'Enter',\n 'MetaLeft': 'Meta',\n 'MetaRight': 'Meta',\n 'ShiftLeft': 'Shift',\n 'ShiftRight': 'Shift',\n 'Tab': 'Tab',\n // FIXME: Japanese/Korean keys\n\n// 3.1.2. Control Pad Section\n\n 'Delete': 'Delete',\n 'End': 'End',\n 'Help': 'Help',\n 'Home': 'Home',\n 'Insert': 'Insert',\n 'PageDown': 'PageDown',\n 'PageUp': 'PageUp',\n\n// 3.1.3. Arrow Pad Section\n\n 'ArrowDown': 'ArrowDown',\n 'ArrowLeft': 'ArrowLeft',\n 'ArrowRight': 'ArrowRight',\n 'ArrowUp': 'ArrowUp',\n\n// 3.1.4. Numpad Section\n\n 'NumLock': 'NumLock',\n 'NumpadBackspace': 'Backspace',\n 'NumpadClear': 'Clear',\n\n// 3.1.5. Function Section\n\n 'Escape': 'Escape',\n 'F1': 'F1',\n 'F2': 'F2',\n 'F3': 'F3',\n 'F4': 'F4',\n 'F5': 'F5',\n 'F6': 'F6',\n 'F7': 'F7',\n 'F8': 'F8',\n 'F9': 'F9',\n 'F10': 'F10',\n 'F11': 'F11',\n 'F12': 'F12',\n 'F13': 'F13',\n 'F14': 'F14',\n 'F15': 'F15',\n 'F16': 'F16',\n 'F17': 'F17',\n 'F18': 'F18',\n 'F19': 'F19',\n 'F20': 'F20',\n 'F21': 'F21',\n 'F22': 'F22',\n 'F23': 'F23',\n 'F24': 'F24',\n 'F25': 'F25',\n 'F26': 'F26',\n 'F27': 'F27',\n 'F28': 'F28',\n 'F29': 'F29',\n 'F30': 'F30',\n 'F31': 'F31',\n 'F32': 'F32',\n 'F33': 'F33',\n 'F34': 'F34',\n 'F35': 'F35',\n 'PrintScreen': 'PrintScreen',\n 'ScrollLock': 'ScrollLock',\n 'Pause': 'Pause',\n\n// 3.1.6. Media Keys\n\n 'BrowserBack': 'BrowserBack',\n 'BrowserFavorites': 'BrowserFavorites',\n 'BrowserForward': 'BrowserForward',\n 'BrowserHome': 'BrowserHome',\n 'BrowserRefresh': 'BrowserRefresh',\n 'BrowserSearch': 'BrowserSearch',\n 'BrowserStop': 'BrowserStop',\n 'Eject': 'Eject',\n 'LaunchApp1': 'LaunchMyComputer',\n 'LaunchApp2': 'LaunchCalendar',\n 'LaunchMail': 'LaunchMail',\n 'MediaPlayPause': 'MediaPlay',\n 'MediaStop': 'MediaStop',\n 'MediaTrackNext': 'MediaTrackNext',\n 'MediaTrackPrevious': 'MediaTrackPrevious',\n 'Power': 'Power',\n 'Sleep': 'Sleep',\n 'AudioVolumeDown': 'AudioVolumeDown',\n 'AudioVolumeMute': 'AudioVolumeMute',\n 'AudioVolumeUp': 'AudioVolumeUp',\n 'WakeUp': 'WakeUp',\n};\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\nimport KeyTable from \"./keysym.js\";\n\n/*\n * Mapping between HTML key values and VNC/X11 keysyms for \"special\"\n * keys that cannot be handled via their Unicode codepoint.\n *\n * See https://www.w3.org/TR/uievents-key/ for possible values.\n */\n\nconst DOMKeyTable = {};\n\nfunction addStandard(key, standard) {\n if (standard === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [standard, standard, standard, standard];\n}\n\nfunction addLeftRight(key, left, right) {\n if (left === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (right === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [left, left, right, left];\n}\n\nfunction addNumpad(key, standard, numpad) {\n if (standard === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (numpad === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [standard, standard, standard, numpad];\n}\n\n// 2.2. Modifier Keys\n\naddLeftRight(\"Alt\", KeyTable.XK_Alt_L, KeyTable.XK_Alt_R);\naddStandard(\"AltGraph\", KeyTable.XK_ISO_Level3_Shift);\naddStandard(\"CapsLock\", KeyTable.XK_Caps_Lock);\naddLeftRight(\"Control\", KeyTable.XK_Control_L, KeyTable.XK_Control_R);\n// - Fn\n// - FnLock\naddLeftRight(\"Meta\", KeyTable.XK_Super_L, KeyTable.XK_Super_R);\naddStandard(\"NumLock\", KeyTable.XK_Num_Lock);\naddStandard(\"ScrollLock\", KeyTable.XK_Scroll_Lock);\naddLeftRight(\"Shift\", KeyTable.XK_Shift_L, KeyTable.XK_Shift_R);\n// - Symbol\n// - SymbolLock\n\n// 2.3. Whitespace Keys\n\naddNumpad(\"Enter\", KeyTable.XK_Return, KeyTable.XK_KP_Enter);\naddStandard(\"Tab\", KeyTable.XK_Tab);\naddNumpad(\" \", KeyTable.XK_space, KeyTable.XK_KP_Space);\n\n// 2.4. Navigation Keys\n\naddNumpad(\"ArrowDown\", KeyTable.XK_Down, KeyTable.XK_KP_Down);\naddNumpad(\"ArrowUp\", KeyTable.XK_Up, KeyTable.XK_KP_Up);\naddNumpad(\"ArrowLeft\", KeyTable.XK_Left, KeyTable.XK_KP_Left);\naddNumpad(\"ArrowRight\", KeyTable.XK_Right, KeyTable.XK_KP_Right);\naddNumpad(\"End\", KeyTable.XK_End, KeyTable.XK_KP_End);\naddNumpad(\"Home\", KeyTable.XK_Home, KeyTable.XK_KP_Home);\naddNumpad(\"PageDown\", KeyTable.XK_Next, KeyTable.XK_KP_Next);\naddNumpad(\"PageUp\", KeyTable.XK_Prior, KeyTable.XK_KP_Prior);\n\n// 2.5. Editing Keys\n\naddStandard(\"Backspace\", KeyTable.XK_BackSpace);\n// Browsers send \"Clear\" for the numpad 5 without NumLock because\n// Windows uses VK_Clear for that key. But Unix expects KP_Begin for\n// that scenario.\naddNumpad(\"Clear\", KeyTable.XK_Clear, KeyTable.XK_KP_Begin);\naddStandard(\"Copy\", KeyTable.XF86XK_Copy);\n// - CrSel\naddStandard(\"Cut\", KeyTable.XF86XK_Cut);\naddNumpad(\"Delete\", KeyTable.XK_Delete, KeyTable.XK_KP_Delete);\n// - EraseEof\n// - ExSel\naddNumpad(\"Insert\", KeyTable.XK_Insert, KeyTable.XK_KP_Insert);\naddStandard(\"Paste\", KeyTable.XF86XK_Paste);\naddStandard(\"Redo\", KeyTable.XK_Redo);\naddStandard(\"Undo\", KeyTable.XK_Undo);\n\n// 2.6. UI Keys\n\n// - Accept\n// - Again (could just be XK_Redo)\n// - Attn\naddStandard(\"Cancel\", KeyTable.XK_Cancel);\naddStandard(\"ContextMenu\", KeyTable.XK_Menu);\naddStandard(\"Escape\", KeyTable.XK_Escape);\naddStandard(\"Execute\", KeyTable.XK_Execute);\naddStandard(\"Find\", KeyTable.XK_Find);\naddStandard(\"Help\", KeyTable.XK_Help);\naddStandard(\"Pause\", KeyTable.XK_Pause);\n// - Play\n// - Props\naddStandard(\"Select\", KeyTable.XK_Select);\naddStandard(\"ZoomIn\", KeyTable.XF86XK_ZoomIn);\naddStandard(\"ZoomOut\", KeyTable.XF86XK_ZoomOut);\n\n// 2.7. Device Keys\n\naddStandard(\"BrightnessDown\", KeyTable.XF86XK_MonBrightnessDown);\naddStandard(\"BrightnessUp\", KeyTable.XF86XK_MonBrightnessUp);\naddStandard(\"Eject\", KeyTable.XF86XK_Eject);\naddStandard(\"LogOff\", KeyTable.XF86XK_LogOff);\naddStandard(\"Power\", KeyTable.XF86XK_PowerOff);\naddStandard(\"PowerOff\", KeyTable.XF86XK_PowerDown);\naddStandard(\"PrintScreen\", KeyTable.XK_Print);\naddStandard(\"Hibernate\", KeyTable.XF86XK_Hibernate);\naddStandard(\"Standby\", KeyTable.XF86XK_Standby);\naddStandard(\"WakeUp\", KeyTable.XF86XK_WakeUp);\n\n// 2.8. IME and Composition Keys\n\naddStandard(\"AllCandidates\", KeyTable.XK_MultipleCandidate);\naddStandard(\"Alphanumeric\", KeyTable.XK_Eisu_Shift); // could also be _Eisu_Toggle\naddStandard(\"CodeInput\", KeyTable.XK_Codeinput);\naddStandard(\"Compose\", KeyTable.XK_Multi_key);\naddStandard(\"Convert\", KeyTable.XK_Henkan);\n// - Dead\n// - FinalMode\naddStandard(\"GroupFirst\", KeyTable.XK_ISO_First_Group);\naddStandard(\"GroupLast\", KeyTable.XK_ISO_Last_Group);\naddStandard(\"GroupNext\", KeyTable.XK_ISO_Next_Group);\naddStandard(\"GroupPrevious\", KeyTable.XK_ISO_Prev_Group);\n// - ModeChange (XK_Mode_switch is often used for AltGr)\n// - NextCandidate\naddStandard(\"NonConvert\", KeyTable.XK_Muhenkan);\naddStandard(\"PreviousCandidate\", KeyTable.XK_PreviousCandidate);\n// - Process\naddStandard(\"SingleCandidate\", KeyTable.XK_SingleCandidate);\naddStandard(\"HangulMode\", KeyTable.XK_Hangul);\naddStandard(\"HanjaMode\", KeyTable.XK_Hangul_Hanja);\naddStandard(\"JunjuaMode\", KeyTable.XK_Hangul_Jeonja);\naddStandard(\"Eisu\", KeyTable.XK_Eisu_toggle);\naddStandard(\"Hankaku\", KeyTable.XK_Hankaku);\naddStandard(\"Hiragana\", KeyTable.XK_Hiragana);\naddStandard(\"HiraganaKatakana\", KeyTable.XK_Hiragana_Katakana);\naddStandard(\"KanaMode\", KeyTable.XK_Kana_Shift); // could also be _Kana_Lock\naddStandard(\"KanjiMode\", KeyTable.XK_Kanji);\naddStandard(\"Katakana\", KeyTable.XK_Katakana);\naddStandard(\"Romaji\", KeyTable.XK_Romaji);\naddStandard(\"Zenkaku\", KeyTable.XK_Zenkaku);\naddStandard(\"ZenkakuHanaku\", KeyTable.XK_Zenkaku_Hankaku);\n\n// 2.9. General-Purpose Function Keys\n\naddStandard(\"F1\", KeyTable.XK_F1);\naddStandard(\"F2\", KeyTable.XK_F2);\naddStandard(\"F3\", KeyTable.XK_F3);\naddStandard(\"F4\", KeyTable.XK_F4);\naddStandard(\"F5\", KeyTable.XK_F5);\naddStandard(\"F6\", KeyTable.XK_F6);\naddStandard(\"F7\", KeyTable.XK_F7);\naddStandard(\"F8\", KeyTable.XK_F8);\naddStandard(\"F9\", KeyTable.XK_F9);\naddStandard(\"F10\", KeyTable.XK_F10);\naddStandard(\"F11\", KeyTable.XK_F11);\naddStandard(\"F12\", KeyTable.XK_F12);\naddStandard(\"F13\", KeyTable.XK_F13);\naddStandard(\"F14\", KeyTable.XK_F14);\naddStandard(\"F15\", KeyTable.XK_F15);\naddStandard(\"F16\", KeyTable.XK_F16);\naddStandard(\"F17\", KeyTable.XK_F17);\naddStandard(\"F18\", KeyTable.XK_F18);\naddStandard(\"F19\", KeyTable.XK_F19);\naddStandard(\"F20\", KeyTable.XK_F20);\naddStandard(\"F21\", KeyTable.XK_F21);\naddStandard(\"F22\", KeyTable.XK_F22);\naddStandard(\"F23\", KeyTable.XK_F23);\naddStandard(\"F24\", KeyTable.XK_F24);\naddStandard(\"F25\", KeyTable.XK_F25);\naddStandard(\"F26\", KeyTable.XK_F26);\naddStandard(\"F27\", KeyTable.XK_F27);\naddStandard(\"F28\", KeyTable.XK_F28);\naddStandard(\"F29\", KeyTable.XK_F29);\naddStandard(\"F30\", KeyTable.XK_F30);\naddStandard(\"F31\", KeyTable.XK_F31);\naddStandard(\"F32\", KeyTable.XK_F32);\naddStandard(\"F33\", KeyTable.XK_F33);\naddStandard(\"F34\", KeyTable.XK_F34);\naddStandard(\"F35\", KeyTable.XK_F35);\n// - Soft1...\n\n// 2.10. Multimedia Keys\n\n// - ChannelDown\n// - ChannelUp\naddStandard(\"Close\", KeyTable.XF86XK_Close);\naddStandard(\"MailForward\", KeyTable.XF86XK_MailForward);\naddStandard(\"MailReply\", KeyTable.XF86XK_Reply);\naddStandard(\"MailSend\", KeyTable.XF86XK_Send);\n// - MediaClose\naddStandard(\"MediaFastForward\", KeyTable.XF86XK_AudioForward);\naddStandard(\"MediaPause\", KeyTable.XF86XK_AudioPause);\naddStandard(\"MediaPlay\", KeyTable.XF86XK_AudioPlay);\naddStandard(\"MediaRecord\", KeyTable.XF86XK_AudioRecord);\naddStandard(\"MediaRewind\", KeyTable.XF86XK_AudioRewind);\naddStandard(\"MediaStop\", KeyTable.XF86XK_AudioStop);\naddStandard(\"MediaTrackNext\", KeyTable.XF86XK_AudioNext);\naddStandard(\"MediaTrackPrevious\", KeyTable.XF86XK_AudioPrev);\naddStandard(\"New\", KeyTable.XF86XK_New);\naddStandard(\"Open\", KeyTable.XF86XK_Open);\naddStandard(\"Print\", KeyTable.XK_Print);\naddStandard(\"Save\", KeyTable.XF86XK_Save);\naddStandard(\"SpellCheck\", KeyTable.XF86XK_Spell);\n\n// 2.11. Multimedia Numpad Keys\n\n// - Key11\n// - Key12\n\n// 2.12. Audio Keys\n\n// - AudioBalanceLeft\n// - AudioBalanceRight\n// - AudioBassBoostDown\n// - AudioBassBoostToggle\n// - AudioBassBoostUp\n// - AudioFaderFront\n// - AudioFaderRear\n// - AudioSurroundModeNext\n// - AudioTrebleDown\n// - AudioTrebleUp\naddStandard(\"AudioVolumeDown\", KeyTable.XF86XK_AudioLowerVolume);\naddStandard(\"AudioVolumeUp\", KeyTable.XF86XK_AudioRaiseVolume);\naddStandard(\"AudioVolumeMute\", KeyTable.XF86XK_AudioMute);\n// - MicrophoneToggle\n// - MicrophoneVolumeDown\n// - MicrophoneVolumeUp\naddStandard(\"MicrophoneVolumeMute\", KeyTable.XF86XK_AudioMicMute);\n\n// 2.13. Speech Keys\n\n// - SpeechCorrectionList\n// - SpeechInputToggle\n\n// 2.14. Application Keys\n\naddStandard(\"LaunchApplication1\", KeyTable.XF86XK_MyComputer);\naddStandard(\"LaunchApplication2\", KeyTable.XF86XK_Calculator);\naddStandard(\"LaunchCalendar\", KeyTable.XF86XK_Calendar);\naddStandard(\"LaunchMail\", KeyTable.XF86XK_Mail);\naddStandard(\"LaunchMediaPlayer\", KeyTable.XF86XK_AudioMedia);\naddStandard(\"LaunchMusicPlayer\", KeyTable.XF86XK_Music);\naddStandard(\"LaunchPhone\", KeyTable.XF86XK_Phone);\naddStandard(\"LaunchScreenSaver\", KeyTable.XF86XK_ScreenSaver);\naddStandard(\"LaunchSpreadsheet\", KeyTable.XF86XK_Excel);\naddStandard(\"LaunchWebBrowser\", KeyTable.XF86XK_WWW);\naddStandard(\"LaunchWebCam\", KeyTable.XF86XK_WebCam);\naddStandard(\"LaunchWordProcessor\", KeyTable.XF86XK_Word);\n\n// 2.15. Browser Keys\n\naddStandard(\"BrowserBack\", KeyTable.XF86XK_Back);\naddStandard(\"BrowserFavorites\", KeyTable.XF86XK_Favorites);\naddStandard(\"BrowserForward\", KeyTable.XF86XK_Forward);\naddStandard(\"BrowserHome\", KeyTable.XF86XK_HomePage);\naddStandard(\"BrowserRefresh\", KeyTable.XF86XK_Refresh);\naddStandard(\"BrowserSearch\", KeyTable.XF86XK_Search);\naddStandard(\"BrowserStop\", KeyTable.XF86XK_Stop);\n\n// 2.16. Mobile Phone Keys\n\n// - A whole bunch...\n\n// 2.17. TV Keys\n\n// - A whole bunch...\n\n// 2.18. Media Controller Keys\n\n// - A whole bunch...\naddStandard(\"Dimmer\", KeyTable.XF86XK_BrightnessAdjust);\naddStandard(\"MediaAudioTrack\", KeyTable.XF86XK_AudioCycleTrack);\naddStandard(\"RandomToggle\", KeyTable.XF86XK_AudioRandomPlay);\naddStandard(\"SplitScreenToggle\", KeyTable.XF86XK_SplitScreen);\naddStandard(\"Subtitle\", KeyTable.XF86XK_Subtitle);\naddStandard(\"VideoModeNext\", KeyTable.XF86XK_Next_VMode);\n\n// Extra: Numpad\n\naddNumpad(\"=\", KeyTable.XK_equal, KeyTable.XK_KP_Equal);\naddNumpad(\"+\", KeyTable.XK_plus, KeyTable.XK_KP_Add);\naddNumpad(\"-\", KeyTable.XK_minus, KeyTable.XK_KP_Subtract);\naddNumpad(\"*\", KeyTable.XK_asterisk, KeyTable.XK_KP_Multiply);\naddNumpad(\"/\", KeyTable.XK_slash, KeyTable.XK_KP_Divide);\naddNumpad(\".\", KeyTable.XK_period, KeyTable.XK_KP_Decimal);\naddNumpad(\",\", KeyTable.XK_comma, KeyTable.XK_KP_Separator);\naddNumpad(\"0\", KeyTable.XK_0, KeyTable.XK_KP_0);\naddNumpad(\"1\", KeyTable.XK_1, KeyTable.XK_KP_1);\naddNumpad(\"2\", KeyTable.XK_2, KeyTable.XK_KP_2);\naddNumpad(\"3\", KeyTable.XK_3, KeyTable.XK_KP_3);\naddNumpad(\"4\", KeyTable.XK_4, KeyTable.XK_KP_4);\naddNumpad(\"5\", KeyTable.XK_5, KeyTable.XK_KP_5);\naddNumpad(\"6\", KeyTable.XK_6, KeyTable.XK_KP_6);\naddNumpad(\"7\", KeyTable.XK_7, KeyTable.XK_KP_7);\naddNumpad(\"8\", KeyTable.XK_8, KeyTable.XK_KP_8);\naddNumpad(\"9\", KeyTable.XK_9, KeyTable.XK_KP_9);\n\nexport default DOMKeyTable;\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * Logging/debug routines\n */\n\nlet _logLevel = 'warn';\n\nlet Debug = () => {};\nlet Info = () => {};\nlet Warn = () => {};\nlet Error = () => {};\n\nexport function initLogging(level) {\n if (typeof level === 'undefined') {\n level = _logLevel;\n } else {\n _logLevel = level;\n }\n\n Debug = Info = Warn = Error = () => {};\n\n if (typeof window.console !== \"undefined\") {\n /* eslint-disable no-console, no-fallthrough */\n switch (level) {\n case 'debug':\n Debug = console.debug.bind(window.console);\n case 'info':\n Info = console.info.bind(window.console);\n case 'warn':\n Warn = console.warn.bind(window.console);\n case 'error':\n Error = console.error.bind(window.console);\n case 'none':\n break;\n default:\n throw new window.Error(\"invalid logging type '\" + level + \"'\");\n }\n /* eslint-enable no-console, no-fallthrough */\n }\n}\n\nexport function getLogging() {\n return _logLevel;\n}\n\nexport { Debug, Info, Warn, Error };\n\n// Initialize logging level\ninitLogging();\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n * Browser feature support detection\n */\n\nimport * as Log from './logging.js';\n\n// Touch detection\nexport let isTouchDevice = ('ontouchstart' in document.documentElement) ||\n // requried for Chrome debugger\n (document.ontouchstart !== undefined) ||\n // required for MS Surface\n (navigator.maxTouchPoints > 0) ||\n (navigator.msMaxTouchPoints > 0);\nwindow.addEventListener('touchstart', function onFirstTouch() {\n isTouchDevice = true;\n window.removeEventListener('touchstart', onFirstTouch, false);\n}, false);\n\n\n// The goal is to find a certain physical width, the devicePixelRatio\n// brings us a bit closer but is not optimal.\nexport let dragThreshold = 10 * (window.devicePixelRatio || 1);\n\nlet _supportsCursorURIs = false;\n\ntry {\n const target = document.createElement('canvas');\n target.style.cursor = 'url(\"data:image/x-icon;base64,AAACAAEACAgAAAIAAgA4AQAAFgAAACgAAAAIAAAAEAAAAAEAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAA==\") 2 2, default';\n\n if (target.style.cursor.indexOf(\"url\") === 0) {\n Log.Info(\"Data URI scheme cursor supported\");\n _supportsCursorURIs = true;\n } else {\n Log.Warn(\"Data URI scheme cursor not supported\");\n }\n} catch (exc) {\n Log.Error(\"Data URI scheme cursor test exception: \" + exc);\n}\n\nexport const supportsCursorURIs = _supportsCursorURIs;\n\nlet _supportsImageMetadata = false;\ntry {\n new ImageData(new Uint8ClampedArray(4), 1, 1);\n _supportsImageMetadata = true;\n} catch (ex) {\n // ignore failure\n}\nexport const supportsImageMetadata = _supportsImageMetadata;\n\nlet _hasScrollbarGutter = true;\ntry {\n // Create invisible container\n const container = document.createElement('div');\n container.style.visibility = 'hidden';\n container.style.overflow = 'scroll'; // forcing scrollbars\n document.body.appendChild(container);\n\n // Create a div and place it in the container\n const child = document.createElement('div');\n container.appendChild(child);\n\n // Calculate the difference between the container's full width\n // and the child's width - the difference is the scrollbars\n const scrollbarWidth = (container.offsetWidth - child.offsetWidth);\n\n // Clean up\n container.parentNode.removeChild(container);\n\n _hasScrollbarGutter = scrollbarWidth != 0;\n} catch (exc) {\n Log.Error(\"Scrollbar test exception: \" + exc);\n}\nexport const hasScrollbarGutter = _hasScrollbarGutter;\n\n/*\n * The functions for detection of platforms and browsers below are exported\n * but the use of these should be minimized as much as possible.\n *\n * It's better to use feature detection than platform detection.\n */\n\nexport function isMac() {\n return navigator && !!(/mac/i).exec(navigator.platform);\n}\n\nexport function isWindows() {\n return navigator && !!(/win/i).exec(navigator.platform);\n}\n\nexport function isIOS() {\n return navigator &&\n (!!(/ipad/i).exec(navigator.platform) ||\n !!(/iphone/i).exec(navigator.platform) ||\n !!(/ipod/i).exec(navigator.platform));\n}\n\nexport function isSafari() {\n return navigator && (navigator.userAgent.indexOf('Safari') !== -1 &&\n navigator.userAgent.indexOf('Chrome') === -1);\n}\n\nexport function isIE() {\n return navigator && !!(/trident/i).exec(navigator.userAgent);\n}\n\nexport function isEdge() {\n return navigator && !!(/edge/i).exec(navigator.userAgent);\n}\n\nexport function isFirefox() {\n return navigator && !!(/firefox/i).exec(navigator.userAgent);\n}\n\n","import KeyTable from \"./keysym.js\";\nimport keysyms from \"./keysymdef.js\";\nimport vkeys from \"./vkeys.js\";\nimport fixedkeys from \"./fixedkeys.js\";\nimport DOMKeyTable from \"./domkeytable.js\";\nimport * as browser from \"../util/browser.js\";\n\n// Get 'KeyboardEvent.code', handling legacy browsers\nexport function getKeycode(evt) {\n // Are we getting proper key identifiers?\n // (unfortunately Firefox and Chrome are crappy here and gives\n // us an empty string on some platforms, rather than leaving it\n // undefined)\n if (evt.code) {\n // Mozilla isn't fully in sync with the spec yet\n switch (evt.code) {\n case 'OSLeft': return 'MetaLeft';\n case 'OSRight': return 'MetaRight';\n }\n\n return evt.code;\n }\n\n // The de-facto standard is to use Windows Virtual-Key codes\n // in the 'keyCode' field for non-printable characters. However\n // Webkit sets it to the same as charCode in 'keypress' events.\n if ((evt.type !== 'keypress') && (evt.keyCode in vkeys)) {\n let code = vkeys[evt.keyCode];\n\n // macOS has messed up this code for some reason\n if (browser.isMac() && (code === 'ContextMenu')) {\n code = 'MetaRight';\n }\n\n // The keyCode doesn't distinguish between left and right\n // for the standard modifiers\n if (evt.location === 2) {\n switch (code) {\n case 'ShiftLeft': return 'ShiftRight';\n case 'ControlLeft': return 'ControlRight';\n case 'AltLeft': return 'AltRight';\n }\n }\n\n // Nor a bunch of the numpad keys\n if (evt.location === 3) {\n switch (code) {\n case 'Delete': return 'NumpadDecimal';\n case 'Insert': return 'Numpad0';\n case 'End': return 'Numpad1';\n case 'ArrowDown': return 'Numpad2';\n case 'PageDown': return 'Numpad3';\n case 'ArrowLeft': return 'Numpad4';\n case 'ArrowRight': return 'Numpad6';\n case 'Home': return 'Numpad7';\n case 'ArrowUp': return 'Numpad8';\n case 'PageUp': return 'Numpad9';\n case 'Enter': return 'NumpadEnter';\n }\n }\n\n return code;\n }\n\n return 'Unidentified';\n}\n\n// Get 'KeyboardEvent.key', handling legacy browsers\nexport function getKey(evt) {\n // Are we getting a proper key value?\n if (evt.key !== undefined) {\n // IE and Edge use some ancient version of the spec\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/\n switch (evt.key) {\n case 'Spacebar': return ' ';\n case 'Esc': return 'Escape';\n case 'Scroll': return 'ScrollLock';\n case 'Win': return 'Meta';\n case 'Apps': return 'ContextMenu';\n case 'Up': return 'ArrowUp';\n case 'Left': return 'ArrowLeft';\n case 'Right': return 'ArrowRight';\n case 'Down': return 'ArrowDown';\n case 'Del': return 'Delete';\n case 'Divide': return '/';\n case 'Multiply': return '*';\n case 'Subtract': return '-';\n case 'Add': return '+';\n case 'Decimal': return evt.char;\n }\n\n // Mozilla isn't fully in sync with the spec yet\n switch (evt.key) {\n case 'OS': return 'Meta';\n case 'LaunchMyComputer': return 'LaunchApplication1';\n case 'LaunchCalculator': return 'LaunchApplication2';\n }\n\n // iOS leaks some OS names\n switch (evt.key) {\n case 'UIKeyInputUpArrow': return 'ArrowUp';\n case 'UIKeyInputDownArrow': return 'ArrowDown';\n case 'UIKeyInputLeftArrow': return 'ArrowLeft';\n case 'UIKeyInputRightArrow': return 'ArrowRight';\n case 'UIKeyInputEscape': return 'Escape';\n }\n\n // Broken behaviour in Chrome\n if ((evt.key === '\\x00') && (evt.code === 'NumpadDecimal')) {\n return 'Delete';\n }\n\n // IE and Edge need special handling, but for everyone else we\n // can trust the value provided\n if (!browser.isIE() && !browser.isEdge()) {\n return evt.key;\n }\n\n // IE and Edge have broken handling of AltGraph so we can only\n // trust them for non-printable characters (and unfortunately\n // they also specify 'Unidentified' for some problem keys)\n if ((evt.key.length !== 1) && (evt.key !== 'Unidentified')) {\n return evt.key;\n }\n }\n\n // Try to deduce it based on the physical key\n const code = getKeycode(evt);\n if (code in fixedkeys) {\n return fixedkeys[code];\n }\n\n // If that failed, then see if we have a printable character\n if (evt.charCode) {\n return String.fromCharCode(evt.charCode);\n }\n\n // At this point we have nothing left to go on\n return 'Unidentified';\n}\n\n// Get the most reliable keysym value we can get from a key event\nexport function getKeysym(evt) {\n const key = getKey(evt);\n\n if (key === 'Unidentified') {\n return null;\n }\n\n // First look up special keys\n if (key in DOMKeyTable) {\n let location = evt.location;\n\n // Safari screws up location for the right cmd key\n if ((key === 'Meta') && (location === 0)) {\n location = 2;\n }\n\n // And for Clear\n if ((key === 'Clear') && (location === 3)) {\n let code = getKeycode(evt);\n if (code === 'NumLock') {\n location = 0;\n }\n }\n\n if ((location === undefined) || (location > 3)) {\n location = 0;\n }\n\n // The original Meta key now gets confused with the Windows key\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1020141\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1232918\n if (key === 'Meta') {\n let code = getKeycode(evt);\n if (code === 'AltLeft') {\n return KeyTable.XK_Meta_L;\n } else if (code === 'AltRight') {\n return KeyTable.XK_Meta_R;\n }\n }\n\n // macOS has Clear instead of NumLock, but the remote system is\n // probably not macOS, so lying here is probably best...\n if (key === 'Clear') {\n let code = getKeycode(evt);\n if (code === 'NumLock') {\n return KeyTable.XK_Num_Lock;\n }\n }\n\n return DOMKeyTable[key][location];\n }\n\n // Now we need to look at the Unicode symbol instead\n\n // Special key? (FIXME: Should have been caught earlier)\n if (key.length !== 1) {\n return null;\n }\n\n const codepoint = key.charCodeAt();\n if (codepoint) {\n return keysyms.lookup(codepoint);\n }\n\n return null;\n}\n","<template>\n <div>\n <div v-if=\"connected && disconnected\">\n <main class=\"main-layout error\">\n <div class=\"text-center\">\n <BrandImage\n file-name=\"error-desert-landscape.svg\"\n width=\"900\"\n height=\"300\"\n />\n <h1>\n {{ t('generic.notification.title.warning') }}\n </h1>\n <h2 class=\"text-secondary mt-20\">\n {{ t('vncConsole.error.message') }}\n </h2>\n </div>\n </main>\n </div>\n <div v-if=\"reconnecting\">\n <main class=\"main-layout\">\n <div class=\"text-center\">\n <h2 class=\"text-secondary mt-20\">\n {{ t('vncConsole.reconnecting.message') }}:{{ retryTimes }} of {{ maximumRetryTimes }}\n </h2>\n </div>\n </main>\n </div>\n <div\n ref=\"view\"\n />\n </div>\n</template>\n\n<script>\nimport RFB from '@novnc/novnc/core/rfb';\nimport BrandImage from '@shell/components/BrandImage';\n\nexport default {\n props: {\n url: {\n type: String,\n default: ''\n }\n },\n\n components: { BrandImage },\n\n data() {\n return {\n rfb: null,\n connected: false,\n disconnected: false,\n reconnectDelay: 3000,\n reconnecting: false,\n maximumRetryTimes: 10,\n retryTimes: 0,\n setTimeout: null,\n };\n },\n\n mounted() {\n this.$nextTick(() => {\n this.connect();\n });\n },\n\n beforeUnmount() {\n this.clearTimeout();\n },\n\n methods: {\n connect() {\n const rfb = new RFB(this.$refs.view, this.url);\n\n rfb.addEventListener('connect', () => {\n this.clearTimeout();\n\n this.connected = true;\n this.retryTimes = 0;\n this.reconnecting = false;\n });\n\n rfb.addEventListener('disconnect', (e) => {\n this.clearTimeout();\n\n this.disconnected = true;\n this.rfb = null;\n this.reconnect();\n });\n\n this.rfb = rfb;\n },\n\n reconnect() {\n if (this.retryTimes >= this.maximumRetryTimes) {\n this.reconnecting = false;\n this.connected = true;\n this.disconnected = true;\n\n return;\n }\n\n this.retryTimes += 1;\n this.reconnecting = true;\n this.connected = false;\n this.disconnected = false;\n\n this.setTimeout = setTimeout(() => {\n this.connect();\n }, this.reconnectDelay);\n },\n\n clearTimeout() {\n if (this.setTimeout) {\n clearTimeout(this.setTimeout);\n }\n },\n\n disconnect() {\n this.rfb.disconnect();\n },\n\n ctrlAltDelete() {\n this.rfb.sendCtrlAltDel();\n },\n\n sendKey(keysym, code, down) {\n this.rfb.sendKey(keysym, code, down);\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n .error {\n overflow: hidden;\n\n .row {\n align-items: center;\n }\n\n h1 {\n font-size: 5rem;\n }\n\n .desert-landscape {\n img {\n max-width: 100%;\n }\n }\n }\n</style>\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\nexport function toUnsigned32bit(toConvert) {\n return toConvert >>> 0;\n}\n\nexport function toSigned32bit(toConvert) {\n return toConvert | 0;\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n// Decode from UTF-8\nexport function decodeUTF8(utf8string, allowLatin1=false) {\n try {\n return decodeURIComponent(escape(utf8string));\n } catch (e) {\n if (e instanceof URIError) {\n if (allowLatin1) {\n // If we allow Latin1 we can ignore any decoding fails\n // and in these cases return the original string\n return utf8string;\n }\n }\n throw e;\n }\n}\n\n// Encode to UTF-8\nexport function encodeUTF8(DOMString) {\n return unescape(encodeURIComponent(DOMString));\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * HTML element utility functions\n */\n\nexport function clientToElement(x, y, elem) {\n const bounds = elem.getBoundingClientRect();\n let pos = { x: 0, y: 0 };\n // Clip to target bounds\n if (x < bounds.left) {\n pos.x = 0;\n } else if (x >= bounds.right) {\n pos.x = bounds.width - 1;\n } else {\n pos.x = x - bounds.left;\n }\n if (y < bounds.top) {\n pos.y = 0;\n } else if (y >= bounds.bottom) {\n pos.y = bounds.height - 1;\n } else {\n pos.y = y - bounds.top;\n }\n return pos;\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * Cross-browser event and position routines\n */\n\nexport function getPointerEvent(e) {\n return e.changedTouches ? e.changedTouches[0] : e.touches ? e.touches[0] : e;\n}\n\nexport function stopEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\n\n// Emulate Element.setCapture() when not supported\nlet _captureRecursion = false;\nlet _elementForUnflushedEvents = null;\ndocument.captureElement = null;\nfunction _captureProxy(e) {\n // Recursion protection as we'll see our own event\n if (_captureRecursion) return;\n\n // Clone the event as we cannot dispatch an already dispatched event\n const newEv = new e.constructor(e.type, e);\n\n _captureRecursion = true;\n if (document.captureElement) {\n document.captureElement.dispatchEvent(newEv);\n } else {\n _elementForUnflushedEvents.dispatchEvent(newEv);\n }\n _captureRecursion = false;\n\n // Avoid double events\n e.stopPropagation();\n\n // Respect the wishes of the redirected event handlers\n if (newEv.defaultPrevented) {\n e.preventDefault();\n }\n\n // Implicitly release the capture on button release\n if (e.type === \"mouseup\") {\n releaseCapture();\n }\n}\n\n// Follow cursor style of target element\nfunction _capturedElemChanged() {\n const proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n proxyElem.style.cursor = window.getComputedStyle(document.captureElement).cursor;\n}\n\nconst _captureObserver = new MutationObserver(_capturedElemChanged);\n\nexport function setCapture(target) {\n if (target.setCapture) {\n\n target.setCapture();\n document.captureElement = target;\n\n // IE releases capture on 'click' events which might not trigger\n target.addEventListener('mouseup', releaseCapture);\n\n } else {\n // Release any existing capture in case this method is\n // called multiple times without coordination\n releaseCapture();\n\n let proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n\n if (proxyElem === null) {\n proxyElem = document.createElement(\"div\");\n proxyElem.id = \"noVNC_mouse_capture_elem\";\n proxyElem.style.position = \"fixed\";\n proxyElem.style.top = \"0px\";\n proxyElem.style.left = \"0px\";\n proxyElem.style.width = \"100%\";\n proxyElem.style.height = \"100%\";\n proxyElem.style.zIndex = 10000;\n proxyElem.style.display = \"none\";\n document.body.appendChild(proxyElem);\n\n // This is to make sure callers don't get confused by having\n // our blocking element as the target\n proxyElem.addEventListener('contextmenu', _captureProxy);\n\n proxyElem.addEventListener('mousemove', _captureProxy);\n proxyElem.addEventListener('mouseup', _captureProxy);\n }\n\n document.captureElement = target;\n\n // Track cursor and get initial cursor\n _captureObserver.observe(target, {attributes: true});\n _capturedElemChanged();\n\n proxyElem.style.display = \"\";\n\n // We listen to events on window in order to keep tracking if it\n // happens to leave the viewport\n window.addEventListener('mousemove', _captureProxy);\n window.addEventListener('mouseup', _captureProxy);\n }\n}\n\nexport function releaseCapture() {\n if (document.releaseCapture) {\n\n document.releaseCapture();\n document.captureElement = null;\n\n } else {\n if (!document.captureElement) {\n return;\n }\n\n // There might be events already queued. The event proxy needs\n // access to the captured element for these queued events.\n // E.g. contextmenu (right-click) in Microsoft Edge\n //\n // Before removing the capturedElem pointer we save it to a\n // temporary variable that the unflushed events can use.\n _elementForUnflushedEvents = document.captureElement;\n document.captureElement = null;\n\n _captureObserver.disconnect();\n\n const proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n proxyElem.style.display = \"none\";\n\n window.removeEventListener('mousemove', _captureProxy);\n window.removeEventListener('mouseup', _captureProxy);\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\nexport default class EventTargetMixin {\n constructor() {\n this._listeners = new Map();\n }\n\n addEventListener(type, callback) {\n if (!this._listeners.has(type)) {\n this._listeners.set(type, new Set());\n }\n this._listeners.get(type).add(callback);\n }\n\n removeEventListener(type, callback) {\n if (this._listeners.has(type)) {\n this._listeners.get(type).delete(callback);\n }\n }\n\n dispatchEvent(event) {\n if (!this._listeners.has(event.type)) {\n return true;\n }\n this._listeners.get(event.type)\n .forEach(callback => callback.call(this, event));\n return !event.defaultPrevented;\n }\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n// From: http://hg.mozilla.org/mozilla-central/raw-file/ec10630b1a54/js/src/devtools/jint/sunspider/string-base64.js\n\nimport * as Log from './util/logging.js';\n\nexport default {\n /* Convert data (an array of integers) to a Base64 string. */\n toBase64Table: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.split(''),\n base64Pad: '=',\n\n encode(data) {\n \"use strict\";\n let result = '';\n const length = data.length;\n const lengthpad = (length % 3);\n // Convert every three bytes to 4 ascii characters.\n\n for (let i = 0; i < (length - 2); i += 3) {\n result += this.toBase64Table[data[i] >> 2];\n result += this.toBase64Table[((data[i] & 0x03) << 4) + (data[i + 1] >> 4)];\n result += this.toBase64Table[((data[i + 1] & 0x0f) << 2) + (data[i + 2] >> 6)];\n result += this.toBase64Table[data[i + 2] & 0x3f];\n }\n\n // Convert the remaining 1 or 2 bytes, pad out to 4 characters.\n const j = length - lengthpad;\n if (lengthpad === 2) {\n result += this.toBase64Table[data[j] >> 2];\n result += this.toBase64Table[((data[j] & 0x03) << 4) + (data[j + 1] >> 4)];\n result += this.toBase64Table[(data[j + 1] & 0x0f) << 2];\n result += this.toBase64Table[64];\n } else if (lengthpad === 1) {\n result += this.toBase64Table[data[j] >> 2];\n result += this.toBase64Table[(data[j] & 0x03) << 4];\n result += this.toBase64Table[64];\n result += this.toBase64Table[64];\n }\n\n return result;\n },\n\n /* Convert Base64 data to a string */\n /* eslint-disable comma-spacing */\n toBinaryTable: [\n -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,\n -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,\n -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,\n 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,\n -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,\n 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,\n -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,\n 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1\n ],\n /* eslint-enable comma-spacing */\n\n decode(data, offset = 0) {\n let dataLength = data.indexOf('=') - offset;\n if (dataLength < 0) { dataLength = data.length - offset; }\n\n /* Every four characters is 3 resulting numbers */\n const resultLength = (dataLength >> 2) * 3 + Math.floor((dataLength % 4) / 1.5);\n const result = new Array(resultLength);\n\n // Convert one by one.\n\n let leftbits = 0; // number of bits decoded, but yet to be appended\n let leftdata = 0; // bits decoded, but yet to be appended\n for (let idx = 0, i = offset; i < data.length; i++) {\n const c = this.toBinaryTable[data.charCodeAt(i) & 0x7f];\n const padding = (data.charAt(i) === this.base64Pad);\n // Skip illegal characters and whitespace\n if (c === -1) {\n Log.Error(\"Illegal character code \" + data.charCodeAt(i) + \" at position \" + i);\n continue;\n }\n\n // Collect data into leftdata, update bitcount\n leftdata = (leftdata << 6) | c;\n leftbits += 6;\n\n // If we have 8 or more bits, append 8 bits to the result\n if (leftbits >= 8) {\n leftbits -= 8;\n // Append if not padding.\n if (!padding) {\n result[idx++] = (leftdata >> leftbits) & 0xff;\n }\n leftdata &= (1 << leftbits) - 1;\n }\n }\n\n // If there are any bits left, the base64 string was corrupted\n if (leftbits) {\n const err = new Error('Corrupted base64 string');\n err.name = 'Base64-Error';\n throw err;\n }\n\n return result;\n }\n}; /* End of Base64 namespace */\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\nimport * as Log from './util/logging.js';\nimport Base64 from \"./base64.js\";\nimport { supportsImageMetadata } from './util/browser.js';\nimport { toSigned32bit } from './util/int.js';\n\nexport default class Display {\n constructor(target) {\n this._drawCtx = null;\n\n this._renderQ = []; // queue drawing actions for in-oder rendering\n this._flushing = false;\n\n // the full frame buffer (logical canvas) size\n this._fbWidth = 0;\n this._fbHeight = 0;\n\n this._prevDrawStyle = \"\";\n this._tile = null;\n this._tile16x16 = null;\n this._tileX = 0;\n this._tileY = 0;\n\n Log.Debug(\">> Display.constructor\");\n\n // The visible canvas\n this._target = target;\n\n if (!this._target) {\n throw new Error(\"Target must be set\");\n }\n\n if (typeof this._target === 'string') {\n throw new Error('target must be a DOM element');\n }\n\n if (!this._target.getContext) {\n throw new Error(\"no getContext method\");\n }\n\n this._targetCtx = this._target.getContext('2d');\n\n // the visible canvas viewport (i.e. what actually gets seen)\n this._viewportLoc = { 'x': 0, 'y': 0, 'w': this._target.width, 'h': this._target.height };\n\n // The hidden canvas, where we do the actual rendering\n this._backbuffer = document.createElement('canvas');\n this._drawCtx = this._backbuffer.getContext('2d');\n\n this._damageBounds = { left: 0, top: 0,\n right: this._backbuffer.width,\n bottom: this._backbuffer.height };\n\n Log.Debug(\"User Agent: \" + navigator.userAgent);\n\n // Check canvas features\n if (!('createImageData' in this._drawCtx)) {\n throw new Error(\"Canvas does not support createImageData\");\n }\n\n this._tile16x16 = this._drawCtx.createImageData(16, 16);\n Log.Debug(\"<< Display.constructor\");\n\n // ===== PROPERTIES =====\n\n this._scale = 1.0;\n this._clipViewport = false;\n\n // ===== EVENT HANDLERS =====\n\n this.onflush = () => {}; // A flush request has finished\n }\n\n // ===== PROPERTIES =====\n\n get scale() { return this._scale; }\n set scale(scale) {\n this._rescale(scale);\n }\n\n get clipViewport() { return this._clipViewport; }\n set clipViewport(viewport) {\n this._clipViewport = viewport;\n // May need to readjust the viewport dimensions\n const vp = this._viewportLoc;\n this.viewportChangeSize(vp.w, vp.h);\n this.viewportChangePos(0, 0);\n }\n\n get width() {\n return this._fbWidth;\n }\n\n get height() {\n return this._fbHeight;\n }\n\n // ===== PUBLIC METHODS =====\n\n viewportChangePos(deltaX, deltaY) {\n const vp = this._viewportLoc;\n deltaX = Math.floor(deltaX);\n deltaY = Math.floor(deltaY);\n\n if (!this._clipViewport) {\n deltaX = -vp.w; // clamped later of out of bounds\n deltaY = -vp.h;\n }\n\n const vx2 = vp.x + vp.w - 1;\n const vy2 = vp.y + vp.h - 1;\n\n // Position change\n\n if (deltaX < 0 && vp.x + deltaX < 0) {\n deltaX = -vp.x;\n }\n if (vx2 + deltaX >= this._fbWidth) {\n deltaX -= vx2 + deltaX - this._fbWidth + 1;\n }\n\n if (vp.y + deltaY < 0) {\n deltaY = -vp.y;\n }\n if (vy2 + deltaY >= this._fbHeight) {\n deltaY -= (vy2 + deltaY - this._fbHeight + 1);\n }\n\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n Log.Debug(\"viewportChange deltaX: \" + deltaX + \", deltaY: \" + deltaY);\n\n vp.x += deltaX;\n vp.y += deltaY;\n\n this._damage(vp.x, vp.y, vp.w, vp.h);\n\n this.flip();\n }\n\n viewportChangeSize(width, height) {\n\n if (!this._clipViewport ||\n typeof(width) === \"undefined\" ||\n typeof(height) === \"undefined\") {\n\n Log.Debug(\"Setting viewport to full display region\");\n width = this._fbWidth;\n height = this._fbHeight;\n }\n\n width = Math.floor(width);\n height = Math.floor(height);\n\n if (width > this._fbWidth) {\n width = this._fbWidth;\n }\n if (height > this._fbHeight) {\n height = this._fbHeight;\n }\n\n const vp = this._viewportLoc;\n if (vp.w !== width || vp.h !== height) {\n vp.w = width;\n vp.h = height;\n\n const canvas = this._target;\n canvas.width = width;\n canvas.height = height;\n\n // The position might need to be updated if we've grown\n this.viewportChangePos(0, 0);\n\n this._damage(vp.x, vp.y, vp.w, vp.h);\n this.flip();\n\n // Update the visible size of the target canvas\n this._rescale(this._scale);\n }\n }\n\n absX(x) {\n if (this._scale === 0) {\n return 0;\n }\n return toSigned32bit(x / this._scale + this._viewportLoc.x);\n }\n\n absY(y) {\n if (this._scale === 0) {\n return 0;\n }\n return toSigned32bit(y / this._scale + this._viewportLoc.y);\n }\n\n resize(width, height) {\n this._prevDrawStyle = \"\";\n\n this._fbWidth = width;\n this._fbHeight = height;\n\n const canvas = this._backbuffer;\n if (canvas.width !== width || canvas.height !== height) {\n\n // We have to save the canvas data since changing the size will clear it\n let saveImg = null;\n if (canvas.width > 0 && canvas.height > 0) {\n saveImg = this._drawCtx.getImageData(0, 0, canvas.width, canvas.height);\n }\n\n if (canvas.width !== width) {\n canvas.width = width;\n }\n if (canvas.height !== height) {\n canvas.height = height;\n }\n\n if (saveImg) {\n this._drawCtx.putImageData(saveImg, 0, 0);\n }\n }\n\n // Readjust the viewport as it may be incorrectly sized\n // and positioned\n const vp = this._viewportLoc;\n this.viewportChangeSize(vp.w, vp.h);\n this.viewportChangePos(0, 0);\n }\n\n // Track what parts of the visible canvas that need updating\n _damage(x, y, w, h) {\n if (x < this._damageBounds.left) {\n this._damageBounds.left = x;\n }\n if (y < this._damageBounds.top) {\n this._damageBounds.top = y;\n }\n if ((x + w) > this._damageBounds.right) {\n this._damageBounds.right = x + w;\n }\n if ((y + h) > this._damageBounds.bottom) {\n this._damageBounds.bottom = y + h;\n }\n }\n\n // Update the visible canvas with the contents of the\n // rendering canvas\n flip(fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'flip'\n });\n } else {\n let x = this._damageBounds.left;\n let y = this._damageBounds.top;\n let w = this._damageBounds.right - x;\n let h = this._damageBounds.bottom - y;\n\n let vx = x - this._viewportLoc.x;\n let vy = y - this._viewportLoc.y;\n\n if (vx < 0) {\n w += vx;\n x -= vx;\n vx = 0;\n }\n if (vy < 0) {\n h += vy;\n y -= vy;\n vy = 0;\n }\n\n if ((vx + w) > this._viewportLoc.w) {\n w = this._viewportLoc.w - vx;\n }\n if ((vy + h) > this._viewportLoc.h) {\n h = this._viewportLoc.h - vy;\n }\n\n if ((w > 0) && (h > 0)) {\n // FIXME: We may need to disable image smoothing here\n // as well (see copyImage()), but we haven't\n // noticed any problem yet.\n this._targetCtx.drawImage(this._backbuffer,\n x, y, w, h,\n vx, vy, w, h);\n }\n\n this._damageBounds.left = this._damageBounds.top = 65535;\n this._damageBounds.right = this._damageBounds.bottom = 0;\n }\n }\n\n pending() {\n return this._renderQ.length > 0;\n }\n\n flush() {\n if (this._renderQ.length === 0) {\n this.onflush();\n } else {\n this._flushing = true;\n }\n }\n\n fillRect(x, y, width, height, color, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'fill',\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height,\n 'color': color\n });\n } else {\n this._setFillColor(color);\n this._drawCtx.fillRect(x, y, width, height);\n this._damage(x, y, width, height);\n }\n }\n\n copyImage(oldX, oldY, newX, newY, w, h, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'copy',\n 'oldX': oldX,\n 'oldY': oldY,\n 'x': newX,\n 'y': newY,\n 'width': w,\n 'height': h,\n });\n } else {\n // Due to this bug among others [1] we need to disable the image-smoothing to\n // avoid getting a blur effect when copying data.\n //\n // 1. https://bugzilla.mozilla.org/show_bug.cgi?id=1194719\n //\n // We need to set these every time since all properties are reset\n // when the the size is changed\n this._drawCtx.mozImageSmoothingEnabled = false;\n this._drawCtx.webkitImageSmoothingEnabled = false;\n this._drawCtx.msImageSmoothingEnabled = false;\n this._drawCtx.imageSmoothingEnabled = false;\n\n this._drawCtx.drawImage(this._backbuffer,\n oldX, oldY, w, h,\n newX, newY, w, h);\n this._damage(newX, newY, w, h);\n }\n }\n\n imageRect(x, y, width, height, mime, arr) {\n /* The internal logic cannot handle empty images, so bail early */\n if ((width === 0) || (height === 0)) {\n return;\n }\n\n const img = new Image();\n img.src = \"data: \" + mime + \";base64,\" + Base64.encode(arr);\n\n this._renderQPush({\n 'type': 'img',\n 'img': img,\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height\n });\n }\n\n // start updating a tile\n startTile(x, y, width, height, color) {\n this._tileX = x;\n this._tileY = y;\n if (width === 16 && height === 16) {\n this._tile = this._tile16x16;\n } else {\n this._tile = this._drawCtx.createImageData(width, height);\n }\n\n const red = color[2];\n const green = color[1];\n const blue = color[0];\n\n const data = this._tile.data;\n for (let i = 0; i < width * height * 4; i += 4) {\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = 255;\n }\n }\n\n // update sub-rectangle of the current tile\n subTile(x, y, w, h, color) {\n const red = color[2];\n const green = color[1];\n const blue = color[0];\n const xend = x + w;\n const yend = y + h;\n\n const data = this._tile.data;\n const width = this._tile.width;\n for (let j = y; j < yend; j++) {\n for (let i = x; i < xend; i++) {\n const p = (i + (j * width)) * 4;\n data[p] = red;\n data[p + 1] = green;\n data[p + 2] = blue;\n data[p + 3] = 255;\n }\n }\n }\n\n // draw the current tile to the screen\n finishTile() {\n this._drawCtx.putImageData(this._tile, this._tileX, this._tileY);\n this._damage(this._tileX, this._tileY,\n this._tile.width, this._tile.height);\n }\n\n blitImage(x, y, width, height, arr, offset, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n // NB(directxman12): it's technically more performant here to use preallocated arrays,\n // but it's a lot of extra work for not a lot of payoff -- if we're using the render queue,\n // this probably isn't getting called *nearly* as much\n const newArr = new Uint8Array(width * height * 4);\n newArr.set(new Uint8Array(arr.buffer, 0, newArr.length));\n this._renderQPush({\n 'type': 'blit',\n 'data': newArr,\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height,\n });\n } else {\n this._bgrxImageData(x, y, width, height, arr, offset);\n }\n }\n\n blitRgbImage(x, y, width, height, arr, offset, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n // NB(directxman12): it's technically more performant here to use preallocated arrays,\n // but it's a lot of extra work for not a lot of payoff -- if we're using the render queue,\n // this probably isn't getting called *nearly* as much\n const newArr = new Uint8Array(width * height * 3);\n newArr.set(new Uint8Array(arr.buffer, 0, newArr.length));\n this._renderQPush({\n 'type': 'blitRgb',\n 'data': newArr,\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height,\n });\n } else {\n this._rgbImageData(x, y, width, height, arr, offset);\n }\n }\n\n blitRgbxImage(x, y, width, height, arr, offset, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n // NB(directxman12): it's technically more performant here to use preallocated arrays,\n // but it's a lot of extra work for not a lot of payoff -- if we're using the render queue,\n // this probably isn't getting called *nearly* as much\n const newArr = new Uint8Array(width * height * 4);\n newArr.set(new Uint8Array(arr.buffer, 0, newArr.length));\n this._renderQPush({\n 'type': 'blitRgbx',\n 'data': newArr,\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height,\n });\n } else {\n this._rgbxImageData(x, y, width, height, arr, offset);\n }\n }\n\n drawImage(img, x, y) {\n this._drawCtx.drawImage(img, x, y);\n this._damage(x, y, img.width, img.height);\n }\n\n autoscale(containerWidth, containerHeight) {\n let scaleRatio;\n\n if (containerWidth === 0 || containerHeight === 0) {\n scaleRatio = 0;\n\n } else {\n\n const vp = this._viewportLoc;\n const targetAspectRatio = containerWidth / containerHeight;\n const fbAspectRatio = vp.w / vp.h;\n\n if (fbAspectRatio >= targetAspectRatio) {\n scaleRatio = containerWidth / vp.w;\n } else {\n scaleRatio = containerHeight / vp.h;\n }\n }\n\n this._rescale(scaleRatio);\n }\n\n // ===== PRIVATE METHODS =====\n\n _rescale(factor) {\n this._scale = factor;\n const vp = this._viewportLoc;\n\n // NB(directxman12): If you set the width directly, or set the\n // style width to a number, the canvas is cleared.\n // However, if you set the style width to a string\n // ('NNNpx'), the canvas is scaled without clearing.\n const width = factor * vp.w + 'px';\n const height = factor * vp.h + 'px';\n\n if ((this._target.style.width !== width) ||\n (this._target.style.height !== height)) {\n this._target.style.width = width;\n this._target.style.height = height;\n }\n }\n\n _setFillColor(color) {\n const newStyle = 'rgb(' + color[2] + ',' + color[1] + ',' + color[0] + ')';\n if (newStyle !== this._prevDrawStyle) {\n this._drawCtx.fillStyle = newStyle;\n this._prevDrawStyle = newStyle;\n }\n }\n\n _rgbImageData(x, y, width, height, arr, offset) {\n const img = this._drawCtx.createImageData(width, height);\n const data = img.data;\n for (let i = 0, j = offset; i < width * height * 4; i += 4, j += 3) {\n data[i] = arr[j];\n data[i + 1] = arr[j + 1];\n data[i + 2] = arr[j + 2];\n data[i + 3] = 255; // Alpha\n }\n this._drawCtx.putImageData(img, x, y);\n this._damage(x, y, img.width, img.height);\n }\n\n _bgrxImageData(x, y, width, height, arr, offset) {\n const img = this._drawCtx.createImageData(width, height);\n const data = img.data;\n for (let i = 0, j = offset; i < width * height * 4; i += 4, j += 4) {\n data[i] = arr[j + 2];\n data[i + 1] = arr[j + 1];\n data[i + 2] = arr[j];\n data[i + 3] = 255; // Alpha\n }\n this._drawCtx.putImageData(img, x, y);\n this._damage(x, y, img.width, img.height);\n }\n\n _rgbxImageData(x, y, width, height, arr, offset) {\n // NB(directxman12): arr must be an Type Array view\n let img;\n if (supportsImageMetadata) {\n img = new ImageData(new Uint8ClampedArray(arr.buffer, arr.byteOffset, width * height * 4), width, height);\n } else {\n img = this._drawCtx.createImageData(width, height);\n img.data.set(new Uint8ClampedArray(arr.buffer, arr.byteOffset, width * height * 4));\n }\n this._drawCtx.putImageData(img, x, y);\n this._damage(x, y, img.width, img.height);\n }\n\n _renderQPush(action) {\n this._renderQ.push(action);\n if (this._renderQ.length === 1) {\n // If this can be rendered immediately it will be, otherwise\n // the scanner will wait for the relevant event\n this._scanRenderQ();\n }\n }\n\n _resumeRenderQ() {\n // \"this\" is the object that is ready, not the\n // display object\n this.removeEventListener('load', this._noVNCDisplay._resumeRenderQ);\n this._noVNCDisplay._scanRenderQ();\n }\n\n _scanRenderQ() {\n let ready = true;\n while (ready && this._renderQ.length > 0) {\n const a = this._renderQ[0];\n switch (a.type) {\n case 'flip':\n this.flip(true);\n break;\n case 'copy':\n this.copyImage(a.oldX, a.oldY, a.x, a.y, a.width, a.height, true);\n break;\n case 'fill':\n this.fillRect(a.x, a.y, a.width, a.height, a.color, true);\n break;\n case 'blit':\n this.blitImage(a.x, a.y, a.width, a.height, a.data, 0, true);\n break;\n case 'blitRgb':\n this.blitRgbImage(a.x, a.y, a.width, a.height, a.data, 0, true);\n break;\n case 'blitRgbx':\n this.blitRgbxImage(a.x, a.y, a.width, a.height, a.data, 0, true);\n break;\n case 'img':\n /* IE tends to set \"complete\" prematurely, so check dimensions */\n if (a.img.complete && (a.img.width !== 0) && (a.img.height !== 0)) {\n if (a.img.width !== a.width || a.img.height !== a.height) {\n Log.Error(\"Decoded image has incorrect dimensions. Got \" +\n a.img.width + \"x\" + a.img.height + \". Expected \" +\n a.width + \"x\" + a.height + \".\");\n return;\n }\n this.drawImage(a.img, a.x, a.y);\n } else {\n a.img._noVNCDisplay = this;\n a.img.addEventListener('load', this._resumeRenderQ);\n // We need to wait for this image to 'load'\n // to keep things in-order\n ready = false;\n }\n break;\n }\n\n if (ready) {\n this._renderQ.shift();\n }\n }\n\n if (this._renderQ.length === 0 && this._flushing) {\n this._flushing = false;\n this.onflush();\n }\n }\n}\n","// reduce buffer size, avoiding mem copy\nexport function shrinkBuf (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nexport function arraySet (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n}\n\n// Join array of chunks to single array.\nexport function flattenChunks (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n}\n\nexport var Buf8 = Uint8Array;\nexport var Buf16 = Uint16Array;\nexport var Buf32 = Int32Array;\n","// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\n\nexport default function adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n","// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n\n// Use ordinary array, since untyped makes no boost here\nexport default function makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n","// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nexport default function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","import * as utils from \"../utils/common.js\";\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nexport default function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n","import * as utils from \"../utils/common.js\";\nimport adler32 from \"./adler32.js\";\nimport crc32 from \"./crc32.js\";\nimport inflate_fast from \"./inffast.js\";\nimport inflate_table from \"./inftrees.js\";\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//export const Z_NO_FLUSH = 0;\n//export const Z_PARTIAL_FLUSH = 1;\n//export const Z_SYNC_FLUSH = 2;\n//export const Z_FULL_FLUSH = 3;\nexport const Z_FINISH = 4;\nexport const Z_BLOCK = 5;\nexport const Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nexport const Z_OK = 0;\nexport const Z_STREAM_END = 1;\nexport const Z_NEED_DICT = 2;\n//export const Z_ERRNO = -1;\nexport const Z_STREAM_ERROR = -2;\nexport const Z_DATA_ERROR = -3;\nexport const Z_MEM_ERROR = -4;\nexport const Z_BUF_ERROR = -5;\n//export const Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nexport const Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' insdead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n}\n\nexport { inflateReset, inflateReset2, inflateResetKeep, inflateInit, inflateInit2, inflate, inflateEnd, inflateGetHeader, inflateSetDictionary };\nexport var inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n","export default function ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\nimport { inflateInit, inflate, inflateReset } from \"../vendor/pako/lib/zlib/inflate.js\";\nimport ZStream from \"../vendor/pako/lib/zlib/zstream.js\";\n\nexport default class Inflate {\n constructor() {\n this.strm = new ZStream();\n this.chunkSize = 1024 * 10 * 10;\n this.strm.output = new Uint8Array(this.chunkSize);\n this.windowBits = 5;\n\n inflateInit(this.strm, this.windowBits);\n }\n\n setInput(data) {\n if (!data) {\n //FIXME: flush remaining data.\n /* eslint-disable camelcase */\n this.strm.input = null;\n this.strm.avail_in = 0;\n this.strm.next_in = 0;\n } else {\n this.strm.input = data;\n this.strm.avail_in = this.strm.input.length;\n this.strm.next_in = 0;\n /* eslint-enable camelcase */\n }\n }\n\n inflate(expected) {\n // resize our output buffer if it's too small\n // (we could just use multiple chunks, but that would cause an extra\n // allocation each time to flatten the chunks)\n if (expected > this.chunkSize) {\n this.chunkSize = expected;\n this.strm.output = new Uint8Array(this.chunkSize);\n }\n\n /* eslint-disable camelcase */\n this.strm.next_out = 0;\n this.strm.avail_out = expected;\n /* eslint-enable camelcase */\n\n let ret = inflate(this.strm, 0); // Flush argument not used.\n if (ret < 0) {\n throw new Error(\"zlib inflate failed\");\n }\n\n if (this.strm.next_out != expected) {\n throw new Error(\"Incomplete zlib block\");\n }\n\n return new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n }\n\n reset() {\n inflateReset(this.strm);\n }\n}\n","import * as utils from \"../utils/common.js\";\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n var len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n}\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nfunction tr_static_init() {\n var n; /* iterates over tree elements */\n var bits; /* bit counter */\n var length; /* length value */\n var code; /* code value */\n var dist; /* distance index */\n var bl_count = new Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexport { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align };\n","export default {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","import * as utils from \"../utils/common.js\";\nimport * as trees from \"./trees.js\";\nimport adler32 from \"./adler32.js\";\nimport crc32 from \"./crc32.js\";\nimport msg from \"./messages.js\";\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nexport const Z_NO_FLUSH = 0;\nexport const Z_PARTIAL_FLUSH = 1;\n//export const Z_SYNC_FLUSH = 2;\nexport const Z_FULL_FLUSH = 3;\nexport const Z_FINISH = 4;\nexport const Z_BLOCK = 5;\n//export const Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nexport const Z_OK = 0;\nexport const Z_STREAM_END = 1;\n//export const Z_NEED_DICT = 2;\n//export const Z_ERRNO = -1;\nexport const Z_STREAM_ERROR = -2;\nexport const Z_DATA_ERROR = -3;\n//export const Z_MEM_ERROR = -4;\nexport const Z_BUF_ERROR = -5;\n//export const Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//export const Z_NO_COMPRESSION = 0;\n//export const Z_BEST_SPEED = 1;\n//export const Z_BEST_COMPRESSION = 9;\nexport const Z_DEFAULT_COMPRESSION = -1;\n\n\nexport const Z_FILTERED = 1;\nexport const Z_HUFFMAN_ONLY = 2;\nexport const Z_RLE = 3;\nexport const Z_FIXED = 4;\nexport const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//export const Z_BINARY = 0;\n//export const Z_TEXT = 1;\n//export const Z_ASCII = 1; // = Z_TEXT\nexport const Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nexport const Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n // Do nothing\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n // Do nothing\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\n\nexport { deflateInit, deflateInit2, deflateReset, deflateResetKeep, deflateSetHeader, deflate, deflateEnd, deflateSetDictionary };\nexport var deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\nimport { deflateInit, deflate } from \"../vendor/pako/lib/zlib/deflate.js\";\nimport { Z_FULL_FLUSH } from \"../vendor/pako/lib/zlib/deflate.js\";\nimport ZStream from \"../vendor/pako/lib/zlib/zstream.js\";\n\nexport default class Deflator {\n constructor() {\n this.strm = new ZStream();\n this.chunkSize = 1024 * 10 * 10;\n this.outputBuffer = new Uint8Array(this.chunkSize);\n this.windowBits = 5;\n\n deflateInit(this.strm, this.windowBits);\n }\n\n deflate(inData) {\n /* eslint-disable camelcase */\n this.strm.input = inData;\n this.strm.avail_in = this.strm.input.length;\n this.strm.next_in = 0;\n this.strm.output = this.outputBuffer;\n this.strm.avail_out = this.chunkSize;\n this.strm.next_out = 0;\n /* eslint-enable camelcase */\n\n let lastRet = deflate(this.strm, Z_FULL_FLUSH);\n let outData = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n\n if (lastRet < 0) {\n throw new Error(\"zlib deflate failed\");\n }\n\n if (this.strm.avail_in > 0) {\n // Read chunks until done\n\n let chunks = [outData];\n let totalLen = outData.length;\n do {\n /* eslint-disable camelcase */\n this.strm.output = new Uint8Array(this.chunkSize);\n this.strm.next_out = 0;\n this.strm.avail_out = this.chunkSize;\n /* eslint-enable camelcase */\n\n lastRet = deflate(this.strm, Z_FULL_FLUSH);\n\n if (lastRet < 0) {\n throw new Error(\"zlib deflate failed\");\n }\n\n let chunk = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n totalLen += chunk.length;\n chunks.push(chunk);\n } while (this.strm.avail_in > 0);\n\n // Combine chunks into a single data\n\n let newData = new Uint8Array(totalLen);\n let offset = 0;\n\n for (let i = 0; i < chunks.length; i++) {\n newData.set(chunks[i], offset);\n offset += chunks[i].length;\n }\n\n outData = newData;\n }\n\n /* eslint-disable camelcase */\n this.strm.input = null;\n this.strm.avail_in = 0;\n this.strm.next_in = 0;\n /* eslint-enable camelcase */\n\n return outData;\n }\n\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\nimport * as Log from '../util/logging.js';\nimport { stopEvent } from '../util/events.js';\nimport * as KeyboardUtil from \"./util.js\";\nimport KeyTable from \"./keysym.js\";\nimport * as browser from \"../util/browser.js\";\n\n//\n// Keyboard event handler\n//\n\nexport default class Keyboard {\n constructor(target) {\n this._target = target || null;\n\n this._keyDownList = {}; // List of depressed keys\n // (even if they are happy)\n this._pendingKey = null; // Key waiting for keypress\n this._altGrArmed = false; // Windows AltGr detection\n\n // keep these here so we can refer to them later\n this._eventHandlers = {\n 'keyup': this._handleKeyUp.bind(this),\n 'keydown': this._handleKeyDown.bind(this),\n 'keypress': this._handleKeyPress.bind(this),\n 'blur': this._allKeysUp.bind(this),\n 'checkalt': this._checkAlt.bind(this),\n };\n\n // ===== EVENT HANDLERS =====\n\n this.onkeyevent = () => {}; // Handler for key press/release\n }\n\n // ===== PRIVATE METHODS =====\n\n _sendKeyEvent(keysym, code, down) {\n if (down) {\n this._keyDownList[code] = keysym;\n } else {\n // Do we really think this key is down?\n if (!(code in this._keyDownList)) {\n return;\n }\n delete this._keyDownList[code];\n }\n\n Log.Debug(\"onkeyevent \" + (down ? \"down\" : \"up\") +\n \", keysym: \" + keysym, \", code: \" + code);\n this.onkeyevent(keysym, code, down);\n }\n\n _getKeyCode(e) {\n const code = KeyboardUtil.getKeycode(e);\n if (code !== 'Unidentified') {\n return code;\n }\n\n // Unstable, but we don't have anything else to go on\n // (don't use it for 'keypress' events thought since\n // WebKit sets it to the same as charCode)\n if (e.keyCode && (e.type !== 'keypress')) {\n // 229 is used for composition events\n if (e.keyCode !== 229) {\n return 'Platform' + e.keyCode;\n }\n }\n\n // A precursor to the final DOM3 standard. Unfortunately it\n // is not layout independent, so it is as bad as using keyCode\n if (e.keyIdentifier) {\n // Non-character key?\n if (e.keyIdentifier.substr(0, 2) !== 'U+') {\n return e.keyIdentifier;\n }\n\n const codepoint = parseInt(e.keyIdentifier.substr(2), 16);\n const char = String.fromCharCode(codepoint).toUpperCase();\n\n return 'Platform' + char.charCodeAt();\n }\n\n return 'Unidentified';\n }\n\n _handleKeyDown(e) {\n const code = this._getKeyCode(e);\n let keysym = KeyboardUtil.getKeysym(e);\n\n // Windows doesn't have a proper AltGr, but handles it using\n // fake Ctrl+Alt. However the remote end might not be Windows,\n // so we need to merge those in to a single AltGr event. We\n // detect this case by seeing the two key events directly after\n // each other with a very short time between them (<50ms).\n if (this._altGrArmed) {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n\n if ((code === \"AltRight\") &&\n ((e.timeStamp - this._altGrCtrlTime) < 50)) {\n // FIXME: We fail to detect this if either Ctrl key is\n // first manually pressed as Windows then no\n // longer sends the fake Ctrl down event. It\n // does however happily send real Ctrl events\n // even when AltGr is already down. Some\n // browsers detect this for us though and set the\n // key to \"AltGraph\".\n keysym = KeyTable.XK_ISO_Level3_Shift;\n } else {\n this._sendKeyEvent(KeyTable.XK_Control_L, \"ControlLeft\", true);\n }\n }\n\n // We cannot handle keys we cannot track, but we also need\n // to deal with virtual keyboards which omit key info\n if (code === 'Unidentified') {\n if (keysym) {\n // If it's a virtual keyboard then it should be\n // sufficient to just send press and release right\n // after each other\n this._sendKeyEvent(keysym, code, true);\n this._sendKeyEvent(keysym, code, false);\n }\n\n stopEvent(e);\n return;\n }\n\n // Alt behaves more like AltGraph on macOS, so shuffle the\n // keys around a bit to make things more sane for the remote\n // server. This method is used by RealVNC and TigerVNC (and\n // possibly others).\n if (browser.isMac() || browser.isIOS()) {\n switch (keysym) {\n case KeyTable.XK_Super_L:\n keysym = KeyTable.XK_Alt_L;\n break;\n case KeyTable.XK_Super_R:\n keysym = KeyTable.XK_Super_L;\n break;\n case KeyTable.XK_Alt_L:\n keysym = KeyTable.XK_Mode_switch;\n break;\n case KeyTable.XK_Alt_R:\n keysym = KeyTable.XK_ISO_Level3_Shift;\n break;\n }\n }\n\n // Is this key already pressed? If so, then we must use the\n // same keysym or we'll confuse the server\n if (code in this._keyDownList) {\n keysym = this._keyDownList[code];\n }\n\n // macOS doesn't send proper key events for modifiers, only\n // state change events. That gets extra confusing for CapsLock\n // which toggles on each press, but not on release. So pretend\n // it was a quick press and release of the button.\n if ((browser.isMac() || browser.isIOS()) && (code === 'CapsLock')) {\n this._sendKeyEvent(KeyTable.XK_Caps_Lock, 'CapsLock', true);\n this._sendKeyEvent(KeyTable.XK_Caps_Lock, 'CapsLock', false);\n stopEvent(e);\n return;\n }\n\n // If this is a legacy browser then we'll need to wait for\n // a keypress event as well\n // (IE and Edge has a broken KeyboardEvent.key, so we can't\n // just check for the presence of that field)\n if (!keysym && (!e.key || browser.isIE() || browser.isEdge())) {\n this._pendingKey = code;\n // However we might not get a keypress event if the key\n // is non-printable, which needs some special fallback\n // handling\n setTimeout(this._handleKeyPressTimeout.bind(this), 10, e);\n return;\n }\n\n this._pendingKey = null;\n stopEvent(e);\n\n // Possible start of AltGr sequence? (see above)\n if ((code === \"ControlLeft\") && browser.isWindows() &&\n !(\"ControlLeft\" in this._keyDownList)) {\n this._altGrArmed = true;\n this._altGrTimeout = setTimeout(this._handleAltGrTimeout.bind(this), 100);\n this._altGrCtrlTime = e.timeStamp;\n return;\n }\n\n this._sendKeyEvent(keysym, code, true);\n }\n\n // Legacy event for browsers without code/key\n _handleKeyPress(e) {\n stopEvent(e);\n\n // Are we expecting a keypress?\n if (this._pendingKey === null) {\n return;\n }\n\n let code = this._getKeyCode(e);\n const keysym = KeyboardUtil.getKeysym(e);\n\n // The key we were waiting for?\n if ((code !== 'Unidentified') && (code != this._pendingKey)) {\n return;\n }\n\n code = this._pendingKey;\n this._pendingKey = null;\n\n if (!keysym) {\n Log.Info('keypress with no keysym:', e);\n return;\n }\n\n this._sendKeyEvent(keysym, code, true);\n }\n\n _handleKeyPressTimeout(e) {\n // Did someone manage to sort out the key already?\n if (this._pendingKey === null) {\n return;\n }\n\n let keysym;\n\n const code = this._pendingKey;\n this._pendingKey = null;\n\n // We have no way of knowing the proper keysym with the\n // information given, but the following are true for most\n // layouts\n if ((e.keyCode >= 0x30) && (e.keyCode <= 0x39)) {\n // Digit\n keysym = e.keyCode;\n } else if ((e.keyCode >= 0x41) && (e.keyCode <= 0x5a)) {\n // Character (A-Z)\n let char = String.fromCharCode(e.keyCode);\n // A feeble attempt at the correct case\n if (e.shiftKey) {\n char = char.toUpperCase();\n } else {\n char = char.toLowerCase();\n }\n keysym = char.charCodeAt();\n } else {\n // Unknown, give up\n keysym = 0;\n }\n\n this._sendKeyEvent(keysym, code, true);\n }\n\n _handleKeyUp(e) {\n stopEvent(e);\n\n const code = this._getKeyCode(e);\n\n // We can't get a release in the middle of an AltGr sequence, so\n // abort that detection\n if (this._altGrArmed) {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n this._sendKeyEvent(KeyTable.XK_Control_L, \"ControlLeft\", true);\n }\n\n // See comment in _handleKeyDown()\n if ((browser.isMac() || browser.isIOS()) && (code === 'CapsLock')) {\n this._sendKeyEvent(KeyTable.XK_Caps_Lock, 'CapsLock', true);\n this._sendKeyEvent(KeyTable.XK_Caps_Lock, 'CapsLock', false);\n return;\n }\n\n this._sendKeyEvent(this._keyDownList[code], code, false);\n\n // Windows has a rather nasty bug where it won't send key\n // release events for a Shift button if the other Shift is still\n // pressed\n if (browser.isWindows() && ((code === 'ShiftLeft') ||\n (code === 'ShiftRight'))) {\n if ('ShiftRight' in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList['ShiftRight'],\n 'ShiftRight', false);\n }\n if ('ShiftLeft' in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList['ShiftLeft'],\n 'ShiftLeft', false);\n }\n }\n }\n\n _handleAltGrTimeout() {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n this._sendKeyEvent(KeyTable.XK_Control_L, \"ControlLeft\", true);\n }\n\n _allKeysUp() {\n Log.Debug(\">> Keyboard.allKeysUp\");\n for (let code in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList[code], code, false);\n }\n Log.Debug(\"<< Keyboard.allKeysUp\");\n }\n\n // Alt workaround for Firefox on Windows, see below\n _checkAlt(e) {\n if (e.skipCheckAlt) {\n return;\n }\n if (e.altKey) {\n return;\n }\n\n const target = this._target;\n const downList = this._keyDownList;\n ['AltLeft', 'AltRight'].forEach((code) => {\n if (!(code in downList)) {\n return;\n }\n\n const event = new KeyboardEvent('keyup',\n { key: downList[code],\n code: code });\n event.skipCheckAlt = true;\n target.dispatchEvent(event);\n });\n }\n\n // ===== PUBLIC METHODS =====\n\n grab() {\n //Log.Debug(\">> Keyboard.grab\");\n\n this._target.addEventListener('keydown', this._eventHandlers.keydown);\n this._target.addEventListener('keyup', this._eventHandlers.keyup);\n this._target.addEventListener('keypress', this._eventHandlers.keypress);\n\n // Release (key up) if window loses focus\n window.addEventListener('blur', this._eventHandlers.blur);\n\n // Firefox on Windows has broken handling of Alt, so we need to\n // poll as best we can for releases (still doesn't prevent the\n // menu from popping up though as we can't call\n // preventDefault())\n if (browser.isWindows() && browser.isFirefox()) {\n const handler = this._eventHandlers.checkalt;\n ['mousedown', 'mouseup', 'mousemove', 'wheel',\n 'touchstart', 'touchend', 'touchmove',\n 'keydown', 'keyup'].forEach(type =>\n document.addEventListener(type, handler,\n { capture: true,\n passive: true }));\n }\n\n //Log.Debug(\"<< Keyboard.grab\");\n }\n\n ungrab() {\n //Log.Debug(\">> Keyboard.ungrab\");\n\n if (browser.isWindows() && browser.isFirefox()) {\n const handler = this._eventHandlers.checkalt;\n ['mousedown', 'mouseup', 'mousemove', 'wheel',\n 'touchstart', 'touchend', 'touchmove',\n 'keydown', 'keyup'].forEach(type => document.removeEventListener(type, handler));\n }\n\n this._target.removeEventListener('keydown', this._eventHandlers.keydown);\n this._target.removeEventListener('keyup', this._eventHandlers.keyup);\n this._target.removeEventListener('keypress', this._eventHandlers.keypress);\n window.removeEventListener('blur', this._eventHandlers.blur);\n\n // Release (key up) all keys that are in a down state\n this._allKeysUp();\n\n //Log.Debug(\">> Keyboard.ungrab\");\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\n\nconst GH_NOGESTURE = 0;\nconst GH_ONETAP = 1;\nconst GH_TWOTAP = 2;\nconst GH_THREETAP = 4;\nconst GH_DRAG = 8;\nconst GH_LONGPRESS = 16;\nconst GH_TWODRAG = 32;\nconst GH_PINCH = 64;\n\nconst GH_INITSTATE = 127;\n\nconst GH_MOVE_THRESHOLD = 50;\nconst GH_ANGLE_THRESHOLD = 90; // Degrees\n\n// Timeout when waiting for gestures (ms)\nconst GH_MULTITOUCH_TIMEOUT = 250;\n\n// Maximum time between press and release for a tap (ms)\nconst GH_TAP_TIMEOUT = 1000;\n\n// Timeout when waiting for longpress (ms)\nconst GH_LONGPRESS_TIMEOUT = 1000;\n\n// Timeout when waiting to decide between PINCH and TWODRAG (ms)\nconst GH_TWOTOUCH_TIMEOUT = 50;\n\nexport default class GestureHandler {\n constructor() {\n this._target = null;\n\n this._state = GH_INITSTATE;\n\n this._tracked = [];\n this._ignored = [];\n\n this._waitingRelease = false;\n this._releaseStart = 0.0;\n\n this._longpressTimeoutId = null;\n this._twoTouchTimeoutId = null;\n\n this._boundEventHandler = this._eventHandler.bind(this);\n }\n\n attach(target) {\n this.detach();\n\n this._target = target;\n this._target.addEventListener('touchstart',\n this._boundEventHandler);\n this._target.addEventListener('touchmove',\n this._boundEventHandler);\n this._target.addEventListener('touchend',\n this._boundEventHandler);\n this._target.addEventListener('touchcancel',\n this._boundEventHandler);\n }\n\n detach() {\n if (!this._target) {\n return;\n }\n\n this._stopLongpressTimeout();\n this._stopTwoTouchTimeout();\n\n this._target.removeEventListener('touchstart',\n this._boundEventHandler);\n this._target.removeEventListener('touchmove',\n this._boundEventHandler);\n this._target.removeEventListener('touchend',\n this._boundEventHandler);\n this._target.removeEventListener('touchcancel',\n this._boundEventHandler);\n this._target = null;\n }\n\n _eventHandler(e) {\n let fn;\n\n e.stopPropagation();\n e.preventDefault();\n\n switch (e.type) {\n case 'touchstart':\n fn = this._touchStart;\n break;\n case 'touchmove':\n fn = this._touchMove;\n break;\n case 'touchend':\n case 'touchcancel':\n fn = this._touchEnd;\n break;\n }\n\n for (let i = 0; i < e.changedTouches.length; i++) {\n let touch = e.changedTouches[i];\n fn.call(this, touch.identifier, touch.clientX, touch.clientY);\n }\n }\n\n _touchStart(id, x, y) {\n // Ignore any new touches if there is already an active gesture,\n // or we're in a cleanup state\n if (this._hasDetectedGesture() || (this._state === GH_NOGESTURE)) {\n this._ignored.push(id);\n return;\n }\n\n // Did it take too long between touches that we should no longer\n // consider this a single gesture?\n if ((this._tracked.length > 0) &&\n ((Date.now() - this._tracked[0].started) > GH_MULTITOUCH_TIMEOUT)) {\n this._state = GH_NOGESTURE;\n this._ignored.push(id);\n return;\n }\n\n // If we're waiting for fingers to release then we should no longer\n // recognize new touches\n if (this._waitingRelease) {\n this._state = GH_NOGESTURE;\n this._ignored.push(id);\n return;\n }\n\n this._tracked.push({\n id: id,\n started: Date.now(),\n active: true,\n firstX: x,\n firstY: y,\n lastX: x,\n lastY: y,\n angle: 0\n });\n\n switch (this._tracked.length) {\n case 1:\n this._startLongpressTimeout();\n break;\n\n case 2:\n this._state &= ~(GH_ONETAP | GH_DRAG | GH_LONGPRESS);\n this._stopLongpressTimeout();\n break;\n\n case 3:\n this._state &= ~(GH_TWOTAP | GH_TWODRAG | GH_PINCH);\n break;\n\n default:\n this._state = GH_NOGESTURE;\n }\n }\n\n _touchMove(id, x, y) {\n let touch = this._tracked.find(t => t.id === id);\n\n // If this is an update for a touch we're not tracking, ignore it\n if (touch === undefined) {\n return;\n }\n\n // Update the touches last position with the event coordinates\n touch.lastX = x;\n touch.lastY = y;\n\n let deltaX = x - touch.firstX;\n let deltaY = y - touch.firstY;\n\n // Update angle when the touch has moved\n if ((touch.firstX !== touch.lastX) ||\n (touch.firstY !== touch.lastY)) {\n touch.angle = Math.atan2(deltaY, deltaX) * 180 / Math.PI;\n }\n\n if (!this._hasDetectedGesture()) {\n // Ignore moves smaller than the minimum threshold\n if (Math.hypot(deltaX, deltaY) < GH_MOVE_THRESHOLD) {\n return;\n }\n\n // Can't be a tap or long press as we've seen movement\n this._state &= ~(GH_ONETAP | GH_TWOTAP | GH_THREETAP | GH_LONGPRESS);\n this._stopLongpressTimeout();\n\n if (this._tracked.length !== 1) {\n this._state &= ~(GH_DRAG);\n }\n if (this._tracked.length !== 2) {\n this._state &= ~(GH_TWODRAG | GH_PINCH);\n }\n\n // We need to figure out which of our different two touch gestures\n // this might be\n if (this._tracked.length === 2) {\n\n // The other touch is the one where the id doesn't match\n let prevTouch = this._tracked.find(t => t.id !== id);\n\n // How far the previous touch point has moved since start\n let prevDeltaMove = Math.hypot(prevTouch.firstX - prevTouch.lastX,\n prevTouch.firstY - prevTouch.lastY);\n\n // We know that the current touch moved far enough,\n // but unless both touches moved further than their\n // threshold we don't want to disqualify any gestures\n if (prevDeltaMove > GH_MOVE_THRESHOLD) {\n\n // The angle difference between the direction of the touch points\n let deltaAngle = Math.abs(touch.angle - prevTouch.angle);\n deltaAngle = Math.abs(((deltaAngle + 180) % 360) - 180);\n\n // PINCH or TWODRAG can be eliminated depending on the angle\n if (deltaAngle > GH_ANGLE_THRESHOLD) {\n this._state &= ~GH_TWODRAG;\n } else {\n this._state &= ~GH_PINCH;\n }\n\n if (this._isTwoTouchTimeoutRunning()) {\n this._stopTwoTouchTimeout();\n }\n } else if (!this._isTwoTouchTimeoutRunning()) {\n // We can't determine the gesture right now, let's\n // wait and see if more events are on their way\n this._startTwoTouchTimeout();\n }\n }\n\n if (!this._hasDetectedGesture()) {\n return;\n }\n\n this._pushEvent('gesturestart');\n }\n\n this._pushEvent('gesturemove');\n }\n\n _touchEnd(id, x, y) {\n // Check if this is an ignored touch\n if (this._ignored.indexOf(id) !== -1) {\n // Remove this touch from ignored\n this._ignored.splice(this._ignored.indexOf(id), 1);\n\n // And reset the state if there are no more touches\n if ((this._ignored.length === 0) &&\n (this._tracked.length === 0)) {\n this._state = GH_INITSTATE;\n this._waitingRelease = false;\n }\n return;\n }\n\n // We got a touchend before the timer triggered,\n // this cannot result in a gesture anymore.\n if (!this._hasDetectedGesture() &&\n this._isTwoTouchTimeoutRunning()) {\n this._stopTwoTouchTimeout();\n this._state = GH_NOGESTURE;\n }\n\n // Some gestures don't trigger until a touch is released\n if (!this._hasDetectedGesture()) {\n // Can't be a gesture that relies on movement\n this._state &= ~(GH_DRAG | GH_TWODRAG | GH_PINCH);\n // Or something that relies on more time\n this._state &= ~GH_LONGPRESS;\n this._stopLongpressTimeout();\n\n if (!this._waitingRelease) {\n this._releaseStart = Date.now();\n this._waitingRelease = true;\n\n // Can't be a tap that requires more touches than we current have\n switch (this._tracked.length) {\n case 1:\n this._state &= ~(GH_TWOTAP | GH_THREETAP);\n break;\n\n case 2:\n this._state &= ~(GH_ONETAP | GH_THREETAP);\n break;\n }\n }\n }\n\n // Waiting for all touches to release? (i.e. some tap)\n if (this._waitingRelease) {\n // Were all touches released at roughly the same time?\n if ((Date.now() - this._releaseStart) > GH_MULTITOUCH_TIMEOUT) {\n this._state = GH_NOGESTURE;\n }\n\n // Did too long time pass between press and release?\n if (this._tracked.some(t => (Date.now() - t.started) > GH_TAP_TIMEOUT)) {\n this._state = GH_NOGESTURE;\n }\n\n let touch = this._tracked.find(t => t.id === id);\n touch.active = false;\n\n // Are we still waiting for more releases?\n if (this._hasDetectedGesture()) {\n this._pushEvent('gesturestart');\n } else {\n // Have we reached a dead end?\n if (this._state !== GH_NOGESTURE) {\n return;\n }\n }\n }\n\n if (this._hasDetectedGesture()) {\n this._pushEvent('gestureend');\n }\n\n // Ignore any remaining touches until they are ended\n for (let i = 0; i < this._tracked.length; i++) {\n if (this._tracked[i].active) {\n this._ignored.push(this._tracked[i].id);\n }\n }\n this._tracked = [];\n\n this._state = GH_NOGESTURE;\n\n // Remove this touch from ignored if it's in there\n if (this._ignored.indexOf(id) !== -1) {\n this._ignored.splice(this._ignored.indexOf(id), 1);\n }\n\n // We reset the state if ignored is empty\n if ((this._ignored.length === 0)) {\n this._state = GH_INITSTATE;\n this._waitingRelease = false;\n }\n }\n\n _hasDetectedGesture() {\n if (this._state === GH_NOGESTURE) {\n return false;\n }\n // Check to see if the bitmask value is a power of 2\n // (i.e. only one bit set). If it is, we have a state.\n if (this._state & (this._state - 1)) {\n return false;\n }\n\n // For taps we also need to have all touches released\n // before we've fully detected the gesture\n if (this._state & (GH_ONETAP | GH_TWOTAP | GH_THREETAP)) {\n if (this._tracked.some(t => t.active)) {\n return false;\n }\n }\n\n return true;\n }\n\n _startLongpressTimeout() {\n this._stopLongpressTimeout();\n this._longpressTimeoutId = setTimeout(() => this._longpressTimeout(),\n GH_LONGPRESS_TIMEOUT);\n }\n\n _stopLongpressTimeout() {\n clearTimeout(this._longpressTimeoutId);\n this._longpressTimeoutId = null;\n }\n\n _longpressTimeout() {\n if (this._hasDetectedGesture()) {\n throw new Error(\"A longpress gesture failed, conflict with a different gesture\");\n }\n\n this._state = GH_LONGPRESS;\n this._pushEvent('gesturestart');\n }\n\n _startTwoTouchTimeout() {\n this._stopTwoTouchTimeout();\n this._twoTouchTimeoutId = setTimeout(() => this._twoTouchTimeout(),\n GH_TWOTOUCH_TIMEOUT);\n }\n\n _stopTwoTouchTimeout() {\n clearTimeout(this._twoTouchTimeoutId);\n this._twoTouchTimeoutId = null;\n }\n\n _isTwoTouchTimeoutRunning() {\n return this._twoTouchTimeoutId !== null;\n }\n\n _twoTouchTimeout() {\n if (this._tracked.length === 0) {\n throw new Error(\"A pinch or two drag gesture failed, no tracked touches\");\n }\n\n // How far each touch point has moved since start\n let avgM = this._getAverageMovement();\n let avgMoveH = Math.abs(avgM.x);\n let avgMoveV = Math.abs(avgM.y);\n\n // The difference in the distance between where\n // the touch points started and where they are now\n let avgD = this._getAverageDistance();\n let deltaTouchDistance = Math.abs(Math.hypot(avgD.first.x, avgD.first.y) -\n Math.hypot(avgD.last.x, avgD.last.y));\n\n if ((avgMoveV < deltaTouchDistance) &&\n (avgMoveH < deltaTouchDistance)) {\n this._state = GH_PINCH;\n } else {\n this._state = GH_TWODRAG;\n }\n\n this._pushEvent('gesturestart');\n this._pushEvent('gesturemove');\n }\n\n _pushEvent(type) {\n let detail = { type: this._stateToGesture(this._state) };\n\n // For most gesture events the current (average) position is the\n // most useful\n let avg = this._getPosition();\n let pos = avg.last;\n\n // However we have a slight distance to detect gestures, so for the\n // first gesture event we want to use the first positions we saw\n if (type === 'gesturestart') {\n pos = avg.first;\n }\n\n // For these gestures, we always want the event coordinates\n // to be where the gesture began, not the current touch location.\n switch (this._state) {\n case GH_TWODRAG:\n case GH_PINCH:\n pos = avg.first;\n break;\n }\n\n detail['clientX'] = pos.x;\n detail['clientY'] = pos.y;\n\n // FIXME: other coordinates?\n\n // Some gestures also have a magnitude\n if (this._state === GH_PINCH) {\n let distance = this._getAverageDistance();\n if (type === 'gesturestart') {\n detail['magnitudeX'] = distance.first.x;\n detail['magnitudeY'] = distance.first.y;\n } else {\n detail['magnitudeX'] = distance.last.x;\n detail['magnitudeY'] = distance.last.y;\n }\n } else if (this._state === GH_TWODRAG) {\n if (type === 'gesturestart') {\n detail['magnitudeX'] = 0.0;\n detail['magnitudeY'] = 0.0;\n } else {\n let movement = this._getAverageMovement();\n detail['magnitudeX'] = movement.x;\n detail['magnitudeY'] = movement.y;\n }\n }\n\n let gev = new CustomEvent(type, { detail: detail });\n this._target.dispatchEvent(gev);\n }\n\n _stateToGesture(state) {\n switch (state) {\n case GH_ONETAP:\n return 'onetap';\n case GH_TWOTAP:\n return 'twotap';\n case GH_THREETAP:\n return 'threetap';\n case GH_DRAG:\n return 'drag';\n case GH_LONGPRESS:\n return 'longpress';\n case GH_TWODRAG:\n return 'twodrag';\n case GH_PINCH:\n return 'pinch';\n }\n\n throw new Error(\"Unknown gesture state: \" + state);\n }\n\n _getPosition() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture position, no tracked touches\");\n }\n\n let size = this._tracked.length;\n let fx = 0, fy = 0, lx = 0, ly = 0;\n\n for (let i = 0; i < this._tracked.length; i++) {\n fx += this._tracked[i].firstX;\n fy += this._tracked[i].firstY;\n lx += this._tracked[i].lastX;\n ly += this._tracked[i].lastY;\n }\n\n return { first: { x: fx / size,\n y: fy / size },\n last: { x: lx / size,\n y: ly / size } };\n }\n\n _getAverageMovement() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture movement, no tracked touches\");\n }\n\n let totalH, totalV;\n totalH = totalV = 0;\n let size = this._tracked.length;\n\n for (let i = 0; i < this._tracked.length; i++) {\n totalH += this._tracked[i].lastX - this._tracked[i].firstX;\n totalV += this._tracked[i].lastY - this._tracked[i].firstY;\n }\n\n return { x: totalH / size,\n y: totalV / size };\n }\n\n _getAverageDistance() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture distance, no tracked touches\");\n }\n\n // Distance between the first and last tracked touches\n\n let first = this._tracked[0];\n let last = this._tracked[this._tracked.length - 1];\n\n let fdx = Math.abs(last.firstX - first.firstX);\n let fdy = Math.abs(last.firstY - first.firstY);\n\n let ldx = Math.abs(last.lastX - first.lastX);\n let ldy = Math.abs(last.lastY - first.lastY);\n\n return { first: { x: fdx, y: fdy },\n last: { x: ldx, y: ldy } };\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\nimport { supportsCursorURIs, isTouchDevice } from './browser.js';\n\nconst useFallback = !supportsCursorURIs || isTouchDevice;\n\nexport default class Cursor {\n constructor() {\n this._target = null;\n\n this._canvas = document.createElement('canvas');\n\n if (useFallback) {\n this._canvas.style.position = 'fixed';\n this._canvas.style.zIndex = '65535';\n this._canvas.style.pointerEvents = 'none';\n // Can't use \"display\" because of Firefox bug #1445997\n this._canvas.style.visibility = 'hidden';\n }\n\n this._position = { x: 0, y: 0 };\n this._hotSpot = { x: 0, y: 0 };\n\n this._eventHandlers = {\n 'mouseover': this._handleMouseOver.bind(this),\n 'mouseleave': this._handleMouseLeave.bind(this),\n 'mousemove': this._handleMouseMove.bind(this),\n 'mouseup': this._handleMouseUp.bind(this),\n };\n }\n\n attach(target) {\n if (this._target) {\n this.detach();\n }\n\n this._target = target;\n\n if (useFallback) {\n document.body.appendChild(this._canvas);\n\n // FIXME: These don't fire properly except for mouse\n /// movement in IE. We want to also capture element\n // movement, size changes, visibility, etc.\n const options = { capture: true, passive: true };\n this._target.addEventListener('mouseover', this._eventHandlers.mouseover, options);\n this._target.addEventListener('mouseleave', this._eventHandlers.mouseleave, options);\n this._target.addEventListener('mousemove', this._eventHandlers.mousemove, options);\n this._target.addEventListener('mouseup', this._eventHandlers.mouseup, options);\n }\n\n this.clear();\n }\n\n detach() {\n if (!this._target) {\n return;\n }\n\n if (useFallback) {\n const options = { capture: true, passive: true };\n this._target.removeEventListener('mouseover', this._eventHandlers.mouseover, options);\n this._target.removeEventListener('mouseleave', this._eventHandlers.mouseleave, options);\n this._target.removeEventListener('mousemove', this._eventHandlers.mousemove, options);\n this._target.removeEventListener('mouseup', this._eventHandlers.mouseup, options);\n\n document.body.removeChild(this._canvas);\n }\n\n this._target = null;\n }\n\n change(rgba, hotx, hoty, w, h) {\n if ((w === 0) || (h === 0)) {\n this.clear();\n return;\n }\n\n this._position.x = this._position.x + this._hotSpot.x - hotx;\n this._position.y = this._position.y + this._hotSpot.y - hoty;\n this._hotSpot.x = hotx;\n this._hotSpot.y = hoty;\n\n let ctx = this._canvas.getContext('2d');\n\n this._canvas.width = w;\n this._canvas.height = h;\n\n let img;\n try {\n // IE doesn't support this\n img = new ImageData(new Uint8ClampedArray(rgba), w, h);\n } catch (ex) {\n img = ctx.createImageData(w, h);\n img.data.set(new Uint8ClampedArray(rgba));\n }\n ctx.clearRect(0, 0, w, h);\n ctx.putImageData(img, 0, 0);\n\n if (useFallback) {\n this._updatePosition();\n } else {\n let url = this._canvas.toDataURL();\n this._target.style.cursor = 'url(' + url + ')' + hotx + ' ' + hoty + ', default';\n }\n }\n\n clear() {\n this._target.style.cursor = 'none';\n this._canvas.width = 0;\n this._canvas.height = 0;\n this._position.x = this._position.x + this._hotSpot.x;\n this._position.y = this._position.y + this._hotSpot.y;\n this._hotSpot.x = 0;\n this._hotSpot.y = 0;\n }\n\n // Mouse events might be emulated, this allows\n // moving the cursor in such cases\n move(clientX, clientY) {\n if (!useFallback) {\n return;\n }\n // clientX/clientY are relative the _visual viewport_,\n // but our position is relative the _layout viewport_,\n // so try to compensate when we can\n if (window.visualViewport) {\n this._position.x = clientX + window.visualViewport.offsetLeft;\n this._position.y = clientY + window.visualViewport.offsetTop;\n } else {\n this._position.x = clientX;\n this._position.y = clientY;\n }\n this._updatePosition();\n let target = document.elementFromPoint(clientX, clientY);\n this._updateVisibility(target);\n }\n\n _handleMouseOver(event) {\n // This event could be because we're entering the target, or\n // moving around amongst its sub elements. Let the move handler\n // sort things out.\n this._handleMouseMove(event);\n }\n\n _handleMouseLeave(event) {\n // Check if we should show the cursor on the element we are leaving to\n this._updateVisibility(event.relatedTarget);\n }\n\n _handleMouseMove(event) {\n this._updateVisibility(event.target);\n\n this._position.x = event.clientX - this._hotSpot.x;\n this._position.y = event.clientY - this._hotSpot.y;\n\n this._updatePosition();\n }\n\n _handleMouseUp(event) {\n // We might get this event because of a drag operation that\n // moved outside of the target. Check what's under the cursor\n // now and adjust visibility based on that.\n let target = document.elementFromPoint(event.clientX, event.clientY);\n this._updateVisibility(target);\n\n // Captures end with a mouseup but we can't know the event order of\n // mouseup vs releaseCapture.\n //\n // In the cases when releaseCapture comes first, the code above is\n // enough.\n //\n // In the cases when the mouseup comes first, we need wait for the\n // browser to flush all events and then check again if the cursor\n // should be visible.\n if (this._captureIsActive()) {\n window.setTimeout(() => {\n // We might have detached at this point\n if (!this._target) {\n return;\n }\n // Refresh the target from elementFromPoint since queued events\n // might have altered the DOM\n target = document.elementFromPoint(event.clientX,\n event.clientY);\n this._updateVisibility(target);\n }, 0);\n }\n }\n\n _showCursor() {\n if (this._canvas.style.visibility === 'hidden') {\n this._canvas.style.visibility = '';\n }\n }\n\n _hideCursor() {\n if (this._canvas.style.visibility !== 'hidden') {\n this._canvas.style.visibility = 'hidden';\n }\n }\n\n // Should we currently display the cursor?\n // (i.e. are we over the target, or a child of the target without a\n // different cursor set)\n _shouldShowCursor(target) {\n if (!target) {\n return false;\n }\n // Easy case\n if (target === this._target) {\n return true;\n }\n // Other part of the DOM?\n if (!this._target.contains(target)) {\n return false;\n }\n // Has the child its own cursor?\n // FIXME: How can we tell that a sub element has an\n // explicit \"cursor: none;\"?\n if (window.getComputedStyle(target).cursor !== 'none') {\n return false;\n }\n return true;\n }\n\n _updateVisibility(target) {\n // When the cursor target has capture we want to show the cursor.\n // So, if a capture is active - look at the captured element instead.\n if (this._captureIsActive()) {\n target = document.captureElement;\n }\n if (this._shouldShowCursor(target)) {\n this._showCursor();\n } else {\n this._hideCursor();\n }\n }\n\n _updatePosition() {\n this._canvas.style.left = this._position.x + \"px\";\n this._canvas.style.top = this._position.y + \"px\";\n }\n\n _captureIsActive() {\n return document.captureElement &&\n document.documentElement.contains(document.captureElement);\n }\n}\n","/*\n * Websock: high-performance binary WebSockets\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * Websock is similar to the standard WebSocket object but with extra\n * buffer handling.\n *\n * Websock has built-in receive queue buffering; the message event\n * does not contain actual data but is simply a notification that\n * there is new data available. Several rQ* methods are available to\n * read binary data off of the receive queue.\n */\n\nimport * as Log from './util/logging.js';\n\n// this has performance issues in some versions Chromium, and\n// doesn't gain a tremendous amount of performance increase in Firefox\n// at the moment. It may be valuable to turn it on in the future.\n// Also copyWithin() for TypedArrays is not supported in IE 11 or\n// Safari 13 (at the moment we want to support Safari 11).\nconst ENABLE_COPYWITHIN = false;\nconst MAX_RQ_GROW_SIZE = 40 * 1024 * 1024; // 40 MiB\n\nexport default class Websock {\n constructor() {\n this._websocket = null; // WebSocket object\n\n this._rQi = 0; // Receive queue index\n this._rQlen = 0; // Next write position in the receive queue\n this._rQbufferSize = 1024 * 1024 * 4; // Receive queue buffer size (4 MiB)\n // called in init: this._rQ = new Uint8Array(this._rQbufferSize);\n this._rQ = null; // Receive queue\n\n this._sQbufferSize = 1024 * 10; // 10 KiB\n // called in init: this._sQ = new Uint8Array(this._sQbufferSize);\n this._sQlen = 0;\n this._sQ = null; // Send queue\n\n this._eventHandlers = {\n message: () => {},\n open: () => {},\n close: () => {},\n error: () => {}\n };\n }\n\n // Getters and Setters\n get sQ() {\n return this._sQ;\n }\n\n get rQ() {\n return this._rQ;\n }\n\n get rQi() {\n return this._rQi;\n }\n\n set rQi(val) {\n this._rQi = val;\n }\n\n // Receive Queue\n get rQlen() {\n return this._rQlen - this._rQi;\n }\n\n rQpeek8() {\n return this._rQ[this._rQi];\n }\n\n rQskipBytes(bytes) {\n this._rQi += bytes;\n }\n\n rQshift8() {\n return this._rQshift(1);\n }\n\n rQshift16() {\n return this._rQshift(2);\n }\n\n rQshift32() {\n return this._rQshift(4);\n }\n\n // TODO(directxman12): test performance with these vs a DataView\n _rQshift(bytes) {\n let res = 0;\n for (let byte = bytes - 1; byte >= 0; byte--) {\n res += this._rQ[this._rQi++] << (byte * 8);\n }\n return res;\n }\n\n rQshiftStr(len) {\n if (typeof(len) === 'undefined') { len = this.rQlen; }\n let str = \"\";\n // Handle large arrays in steps to avoid long strings on the stack\n for (let i = 0; i < len; i += 4096) {\n let part = this.rQshiftBytes(Math.min(4096, len - i));\n str += String.fromCharCode.apply(null, part);\n }\n return str;\n }\n\n rQshiftBytes(len) {\n if (typeof(len) === 'undefined') { len = this.rQlen; }\n this._rQi += len;\n return new Uint8Array(this._rQ.buffer, this._rQi - len, len);\n }\n\n rQshiftTo(target, len) {\n if (len === undefined) { len = this.rQlen; }\n // TODO: make this just use set with views when using a ArrayBuffer to store the rQ\n target.set(new Uint8Array(this._rQ.buffer, this._rQi, len));\n this._rQi += len;\n }\n\n rQslice(start, end = this.rQlen) {\n return new Uint8Array(this._rQ.buffer, this._rQi + start, end - start);\n }\n\n // Check to see if we must wait for 'num' bytes (default to FBU.bytes)\n // to be available in the receive queue. Return true if we need to\n // wait (and possibly print a debug message), otherwise false.\n rQwait(msg, num, goback) {\n if (this.rQlen < num) {\n if (goback) {\n if (this._rQi < goback) {\n throw new Error(\"rQwait cannot backup \" + goback + \" bytes\");\n }\n this._rQi -= goback;\n }\n return true; // true means need more data\n }\n return false;\n }\n\n // Send Queue\n\n flush() {\n if (this._sQlen > 0 && this._websocket.readyState === WebSocket.OPEN) {\n this._websocket.send(this._encodeMessage());\n this._sQlen = 0;\n }\n }\n\n send(arr) {\n this._sQ.set(arr, this._sQlen);\n this._sQlen += arr.length;\n this.flush();\n }\n\n sendString(str) {\n this.send(str.split('').map(chr => chr.charCodeAt(0)));\n }\n\n // Event Handlers\n off(evt) {\n this._eventHandlers[evt] = () => {};\n }\n\n on(evt, handler) {\n this._eventHandlers[evt] = handler;\n }\n\n _allocateBuffers() {\n this._rQ = new Uint8Array(this._rQbufferSize);\n this._sQ = new Uint8Array(this._sQbufferSize);\n }\n\n init() {\n this._allocateBuffers();\n this._rQi = 0;\n this._websocket = null;\n }\n\n open(uri, protocols) {\n this.init();\n\n this._websocket = new WebSocket(uri, protocols);\n this._websocket.binaryType = 'arraybuffer';\n\n this._websocket.onmessage = this._recvMessage.bind(this);\n this._websocket.onopen = () => {\n Log.Debug('>> WebSock.onopen');\n if (this._websocket.protocol) {\n Log.Info(\"Server choose sub-protocol: \" + this._websocket.protocol);\n }\n\n this._eventHandlers.open();\n Log.Debug(\"<< WebSock.onopen\");\n };\n this._websocket.onclose = (e) => {\n Log.Debug(\">> WebSock.onclose\");\n this._eventHandlers.close(e);\n Log.Debug(\"<< WebSock.onclose\");\n };\n this._websocket.onerror = (e) => {\n Log.Debug(\">> WebSock.onerror: \" + e);\n this._eventHandlers.error(e);\n Log.Debug(\"<< WebSock.onerror: \" + e);\n };\n }\n\n close() {\n if (this._websocket) {\n if ((this._websocket.readyState === WebSocket.OPEN) ||\n (this._websocket.readyState === WebSocket.CONNECTING)) {\n Log.Info(\"Closing WebSocket connection\");\n this._websocket.close();\n }\n\n this._websocket.onmessage = () => {};\n }\n }\n\n // private methods\n _encodeMessage() {\n // Put in a binary arraybuffer\n // according to the spec, you can send ArrayBufferViews with the send method\n return new Uint8Array(this._sQ.buffer, 0, this._sQlen);\n }\n\n // We want to move all the unread data to the start of the queue,\n // e.g. compacting.\n // The function also expands the receive que if needed, and for\n // performance reasons we combine these two actions to avoid\n // unneccessary copying.\n _expandCompactRQ(minFit) {\n // if we're using less than 1/8th of the buffer even with the incoming bytes, compact in place\n // instead of resizing\n const requiredBufferSize = (this._rQlen - this._rQi + minFit) * 8;\n const resizeNeeded = this._rQbufferSize < requiredBufferSize;\n\n if (resizeNeeded) {\n // Make sure we always *at least* double the buffer size, and have at least space for 8x\n // the current amount of data\n this._rQbufferSize = Math.max(this._rQbufferSize * 2, requiredBufferSize);\n }\n\n // we don't want to grow unboundedly\n if (this._rQbufferSize > MAX_RQ_GROW_SIZE) {\n this._rQbufferSize = MAX_RQ_GROW_SIZE;\n if (this._rQbufferSize - this.rQlen < minFit) {\n throw new Error(\"Receive Queue buffer exceeded \" + MAX_RQ_GROW_SIZE + \" bytes, and the new message could not fit\");\n }\n }\n\n if (resizeNeeded) {\n const oldRQbuffer = this._rQ.buffer;\n this._rQ = new Uint8Array(this._rQbufferSize);\n this._rQ.set(new Uint8Array(oldRQbuffer, this._rQi, this._rQlen - this._rQi));\n } else {\n if (ENABLE_COPYWITHIN) {\n this._rQ.copyWithin(0, this._rQi, this._rQlen);\n } else {\n this._rQ.set(new Uint8Array(this._rQ.buffer, this._rQi, this._rQlen - this._rQi));\n }\n }\n\n this._rQlen = this._rQlen - this._rQi;\n this._rQi = 0;\n }\n\n // push arraybuffer values onto the end of the receive que\n _DecodeMessage(data) {\n const u8 = new Uint8Array(data);\n if (u8.length > this._rQbufferSize - this._rQlen) {\n this._expandCompactRQ(u8.length);\n }\n this._rQ.set(u8, this._rQlen);\n this._rQlen += u8.length;\n }\n\n _recvMessage(e) {\n this._DecodeMessage(e.data);\n if (this.rQlen > 0) {\n this._eventHandlers.message();\n if (this._rQlen == this._rQi) {\n // All data has now been processed, this means we\n // can reset the receive queue.\n this._rQlen = 0;\n this._rQi = 0;\n }\n } else {\n Log.Debug(\"Ignoring empty message\");\n }\n }\n}\n","/*\n * Ported from Flashlight VNC ActionScript implementation:\n * http://www.wizhelp.com/flashlight-vnc/\n *\n * Full attribution follows:\n *\n * -------------------------------------------------------------------------\n *\n * This DES class has been extracted from package Acme.Crypto for use in VNC.\n * The unnecessary odd parity code has been removed.\n *\n * These changes are:\n * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n *\n\n * DesCipher - the DES encryption method\n *\n * The meat of this code is by Dave Zimmerman <dzimm@widget.com>, and is:\n *\n * Copyright (c) 1996 Widget Workshop, Inc. All Rights Reserved.\n *\n * Permission to use, copy, modify, and distribute this software\n * and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and\n * without fee is hereby granted, provided that this copyright notice is kept\n * intact.\n *\n * WIDGET WORKSHOP MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY\n * OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED\n * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WIDGET WORKSHOP SHALL NOT BE LIABLE\n * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR\n * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.\n *\n * THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE\n * CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE\n * PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT\n * NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE\n * SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE\n * SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE\n * PHYSICAL OR ENVIRONMENTAL DAMAGE (\"HIGH RISK ACTIVITIES\"). WIDGET WORKSHOP\n * SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR\n * HIGH RISK ACTIVITIES.\n *\n *\n * The rest is:\n *\n * Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * Visit the ACME Labs Java page for up-to-date versions of this and other\n * fine Java utilities: http://www.acme.com/java/\n */\n\n/* eslint-disable comma-spacing */\n\n// Tables, permutations, S-boxes, etc.\nconst PC2 = [13,16,10,23, 0, 4, 2,27,14, 5,20, 9,22,18,11, 3,\n 25, 7,15, 6,26,19,12, 1,40,51,30,36,46,54,29,39,\n 50,44,32,47,43,48,38,55,33,52,45,41,49,35,28,31 ],\n totrot = [ 1, 2, 4, 6, 8,10,12,14,15,17,19,21,23,25,27,28];\n\nconst z = 0x0;\nlet a,b,c,d,e,f;\na=1<<16; b=1<<24; c=a|b; d=1<<2; e=1<<10; f=d|e;\nconst SP1 = [c|e,z|z,a|z,c|f,c|d,a|f,z|d,a|z,z|e,c|e,c|f,z|e,b|f,c|d,b|z,z|d,\n z|f,b|e,b|e,a|e,a|e,c|z,c|z,b|f,a|d,b|d,b|d,a|d,z|z,z|f,a|f,b|z,\n a|z,c|f,z|d,c|z,c|e,b|z,b|z,z|e,c|d,a|z,a|e,b|d,z|e,z|d,b|f,a|f,\n c|f,a|d,c|z,b|f,b|d,z|f,a|f,c|e,z|f,b|e,b|e,z|z,a|d,a|e,z|z,c|d];\na=1<<20; b=1<<31; c=a|b; d=1<<5; e=1<<15; f=d|e;\nconst SP2 = [c|f,b|e,z|e,a|f,a|z,z|d,c|d,b|f,b|d,c|f,c|e,b|z,b|e,a|z,z|d,c|d,\n a|e,a|d,b|f,z|z,b|z,z|e,a|f,c|z,a|d,b|d,z|z,a|e,z|f,c|e,c|z,z|f,\n z|z,a|f,c|d,a|z,b|f,c|z,c|e,z|e,c|z,b|e,z|d,c|f,a|f,z|d,z|e,b|z,\n z|f,c|e,a|z,b|d,a|d,b|f,b|d,a|d,a|e,z|z,b|e,z|f,b|z,c|d,c|f,a|e];\na=1<<17; b=1<<27; c=a|b; d=1<<3; e=1<<9; f=d|e;\nconst SP3 = [z|f,c|e,z|z,c|d,b|e,z|z,a|f,b|e,a|d,b|d,b|d,a|z,c|f,a|d,c|z,z|f,\n b|z,z|d,c|e,z|e,a|e,c|z,c|d,a|f,b|f,a|e,a|z,b|f,z|d,c|f,z|e,b|z,\n c|e,b|z,a|d,z|f,a|z,c|e,b|e,z|z,z|e,a|d,c|f,b|e,b|d,z|e,z|z,c|d,\n b|f,a|z,b|z,c|f,z|d,a|f,a|e,b|d,c|z,b|f,z|f,c|z,a|f,z|d,c|d,a|e];\na=1<<13; b=1<<23; c=a|b; d=1<<0; e=1<<7; f=d|e;\nconst SP4 = [c|d,a|f,a|f,z|e,c|e,b|f,b|d,a|d,z|z,c|z,c|z,c|f,z|f,z|z,b|e,b|d,\n z|d,a|z,b|z,c|d,z|e,b|z,a|d,a|e,b|f,z|d,a|e,b|e,a|z,c|e,c|f,z|f,\n b|e,b|d,c|z,c|f,z|f,z|z,z|z,c|z,a|e,b|e,b|f,z|d,c|d,a|f,a|f,z|e,\n c|f,z|f,z|d,a|z,b|d,a|d,c|e,b|f,a|d,a|e,b|z,c|d,z|e,b|z,a|z,c|e];\na=1<<25; b=1<<30; c=a|b; d=1<<8; e=1<<19; f=d|e;\nconst SP5 = [z|d,a|f,a|e,c|d,z|e,z|d,b|z,a|e,b|f,z|e,a|d,b|f,c|d,c|e,z|f,b|z,\n a|z,b|e,b|e,z|z,b|d,c|f,c|f,a|d,c|e,b|d,z|z,c|z,a|f,a|z,c|z,z|f,\n z|e,c|d,z|d,a|z,b|z,a|e,c|d,b|f,a|d,b|z,c|e,a|f,b|f,z|d,a|z,c|e,\n c|f,z|f,c|z,c|f,a|e,z|z,b|e,c|z,z|f,a|d,b|d,z|e,z|z,b|e,a|f,b|d];\na=1<<22; b=1<<29; c=a|b; d=1<<4; e=1<<14; f=d|e;\nconst SP6 = [b|d,c|z,z|e,c|f,c|z,z|d,c|f,a|z,b|e,a|f,a|z,b|d,a|d,b|e,b|z,z|f,\n z|z,a|d,b|f,z|e,a|e,b|f,z|d,c|d,c|d,z|z,a|f,c|e,z|f,a|e,c|e,b|z,\n b|e,z|d,c|d,a|e,c|f,a|z,z|f,b|d,a|z,b|e,b|z,z|f,b|d,c|f,a|e,c|z,\n a|f,c|e,z|z,c|d,z|d,z|e,c|z,a|f,z|e,a|d,b|f,z|z,c|e,b|z,a|d,b|f];\na=1<<21; b=1<<26; c=a|b; d=1<<1; e=1<<11; f=d|e;\nconst SP7 = [a|z,c|d,b|f,z|z,z|e,b|f,a|f,c|e,c|f,a|z,z|z,b|d,z|d,b|z,c|d,z|f,\n b|e,a|f,a|d,b|e,b|d,c|z,c|e,a|d,c|z,z|e,z|f,c|f,a|e,z|d,b|z,a|e,\n b|z,a|e,a|z,b|f,b|f,c|d,c|d,z|d,a|d,b|z,b|e,a|z,c|e,z|f,a|f,c|e,\n z|f,b|d,c|f,c|z,a|e,z|z,z|d,c|f,z|z,a|f,c|z,z|e,b|d,b|e,z|e,a|d];\na=1<<18; b=1<<28; c=a|b; d=1<<6; e=1<<12; f=d|e;\nconst SP8 = [b|f,z|e,a|z,c|f,b|z,b|f,z|d,b|z,a|d,c|z,c|f,a|e,c|e,a|f,z|e,z|d,\n c|z,b|d,b|e,z|f,a|e,a|d,c|d,c|e,z|f,z|z,z|z,c|d,b|d,b|e,a|f,a|z,\n a|f,a|z,c|e,z|e,z|d,c|d,z|e,a|f,b|e,z|d,b|d,c|z,c|d,b|z,a|z,b|f,\n z|z,c|f,a|d,b|d,c|z,b|e,b|f,z|z,c|f,a|e,a|e,z|f,z|f,a|d,b|z,c|e];\n\n/* eslint-enable comma-spacing */\n\nexport default class DES {\n constructor(password) {\n this.keys = [];\n\n // Set the key.\n const pc1m = [], pcr = [], kn = [];\n\n for (let j = 0, l = 56; j < 56; ++j, l -= 8) {\n l += l < -5 ? 65 : l < -3 ? 31 : l < -1 ? 63 : l === 27 ? 35 : 0; // PC1\n const m = l & 0x7;\n pc1m[j] = ((password[l >>> 3] & (1<<m)) !== 0) ? 1: 0;\n }\n\n for (let i = 0; i < 16; ++i) {\n const m = i << 1;\n const n = m + 1;\n kn[m] = kn[n] = 0;\n for (let o = 28; o < 59; o += 28) {\n for (let j = o - 28; j < o; ++j) {\n const l = j + totrot[i];\n pcr[j] = l < o ? pc1m[l] : pc1m[l - 28];\n }\n }\n for (let j = 0; j < 24; ++j) {\n if (pcr[PC2[j]] !== 0) {\n kn[m] |= 1 << (23 - j);\n }\n if (pcr[PC2[j + 24]] !== 0) {\n kn[n] |= 1 << (23 - j);\n }\n }\n }\n\n // cookey\n for (let i = 0, rawi = 0, KnLi = 0; i < 16; ++i) {\n const raw0 = kn[rawi++];\n const raw1 = kn[rawi++];\n this.keys[KnLi] = (raw0 & 0x00fc0000) << 6;\n this.keys[KnLi] |= (raw0 & 0x00000fc0) << 10;\n this.keys[KnLi] |= (raw1 & 0x00fc0000) >>> 10;\n this.keys[KnLi] |= (raw1 & 0x00000fc0) >>> 6;\n ++KnLi;\n this.keys[KnLi] = (raw0 & 0x0003f000) << 12;\n this.keys[KnLi] |= (raw0 & 0x0000003f) << 16;\n this.keys[KnLi] |= (raw1 & 0x0003f000) >>> 4;\n this.keys[KnLi] |= (raw1 & 0x0000003f);\n ++KnLi;\n }\n }\n\n // Encrypt 8 bytes of text\n enc8(text) {\n const b = text.slice();\n let i = 0, l, r, x; // left, right, accumulator\n\n // Squash 8 bytes to 2 ints\n l = b[i++]<<24 | b[i++]<<16 | b[i++]<<8 | b[i++];\n r = b[i++]<<24 | b[i++]<<16 | b[i++]<<8 | b[i++];\n\n x = ((l >>> 4) ^ r) & 0x0f0f0f0f;\n r ^= x;\n l ^= (x << 4);\n x = ((l >>> 16) ^ r) & 0x0000ffff;\n r ^= x;\n l ^= (x << 16);\n x = ((r >>> 2) ^ l) & 0x33333333;\n l ^= x;\n r ^= (x << 2);\n x = ((r >>> 8) ^ l) & 0x00ff00ff;\n l ^= x;\n r ^= (x << 8);\n r = (r << 1) | ((r >>> 31) & 1);\n x = (l ^ r) & 0xaaaaaaaa;\n l ^= x;\n r ^= x;\n l = (l << 1) | ((l >>> 31) & 1);\n\n for (let i = 0, keysi = 0; i < 8; ++i) {\n x = (r << 28) | (r >>> 4);\n x ^= this.keys[keysi++];\n let fval = SP7[x & 0x3f];\n fval |= SP5[(x >>> 8) & 0x3f];\n fval |= SP3[(x >>> 16) & 0x3f];\n fval |= SP1[(x >>> 24) & 0x3f];\n x = r ^ this.keys[keysi++];\n fval |= SP8[x & 0x3f];\n fval |= SP6[(x >>> 8) & 0x3f];\n fval |= SP4[(x >>> 16) & 0x3f];\n fval |= SP2[(x >>> 24) & 0x3f];\n l ^= fval;\n x = (l << 28) | (l >>> 4);\n x ^= this.keys[keysi++];\n fval = SP7[x & 0x3f];\n fval |= SP5[(x >>> 8) & 0x3f];\n fval |= SP3[(x >>> 16) & 0x3f];\n fval |= SP1[(x >>> 24) & 0x3f];\n x = l ^ this.keys[keysi++];\n fval |= SP8[x & 0x0000003f];\n fval |= SP6[(x >>> 8) & 0x3f];\n fval |= SP4[(x >>> 16) & 0x3f];\n fval |= SP2[(x >>> 24) & 0x3f];\n r ^= fval;\n }\n\n r = (r << 31) | (r >>> 1);\n x = (l ^ r) & 0xaaaaaaaa;\n l ^= x;\n r ^= x;\n l = (l << 31) | (l >>> 1);\n x = ((l >>> 8) ^ r) & 0x00ff00ff;\n r ^= x;\n l ^= (x << 8);\n x = ((l >>> 2) ^ r) & 0x33333333;\n r ^= x;\n l ^= (x << 2);\n x = ((r >>> 16) ^ l) & 0x0000ffff;\n l ^= x;\n r ^= (x << 16);\n x = ((r >>> 4) ^ l) & 0x0f0f0f0f;\n l ^= x;\n r ^= (x << 4);\n\n // Spread ints to bytes\n x = [r, l];\n for (i = 0; i < 8; i++) {\n b[i] = (x[i>>>2] >>> (8 * (3 - (i % 4)))) % 256;\n if (b[i] < 0) { b[i] += 256; } // unsigned\n }\n return b;\n }\n\n // Encrypt 16 bytes of text using passwd as key\n encrypt(t) {\n return this.enc8(t.slice(0, 8)).concat(this.enc8(t.slice(8, 16)));\n }\n}\n","/*\n * This file is auto-generated from keymaps.csv on 2017-05-31 16:20\n * Database checksum sha256(92fd165507f2a3b8c5b3fa56e425d45788dbcb98cf067a307527d91ce22cab94)\n * To re-generate, run:\n * keymap-gen --lang=js code-map keymaps.csv html atset1\n*/\nexport default {\n \"Again\": 0xe005, /* html:Again (Again) -> linux:129 (KEY_AGAIN) -> atset1:57349 */\n \"AltLeft\": 0x38, /* html:AltLeft (AltLeft) -> linux:56 (KEY_LEFTALT) -> atset1:56 */\n \"AltRight\": 0xe038, /* html:AltRight (AltRight) -> linux:100 (KEY_RIGHTALT) -> atset1:57400 */\n \"ArrowDown\": 0xe050, /* html:ArrowDown (ArrowDown) -> linux:108 (KEY_DOWN) -> atset1:57424 */\n \"ArrowLeft\": 0xe04b, /* html:ArrowLeft (ArrowLeft) -> linux:105 (KEY_LEFT) -> atset1:57419 */\n \"ArrowRight\": 0xe04d, /* html:ArrowRight (ArrowRight) -> linux:106 (KEY_RIGHT) -> atset1:57421 */\n \"ArrowUp\": 0xe048, /* html:ArrowUp (ArrowUp) -> linux:103 (KEY_UP) -> atset1:57416 */\n \"AudioVolumeDown\": 0xe02e, /* html:AudioVolumeDown (AudioVolumeDown) -> linux:114 (KEY_VOLUMEDOWN) -> atset1:57390 */\n \"AudioVolumeMute\": 0xe020, /* html:AudioVolumeMute (AudioVolumeMute) -> linux:113 (KEY_MUTE) -> atset1:57376 */\n \"AudioVolumeUp\": 0xe030, /* html:AudioVolumeUp (AudioVolumeUp) -> linux:115 (KEY_VOLUMEUP) -> atset1:57392 */\n \"Backquote\": 0x29, /* html:Backquote (Backquote) -> linux:41 (KEY_GRAVE) -> atset1:41 */\n \"Backslash\": 0x2b, /* html:Backslash (Backslash) -> linux:43 (KEY_BACKSLASH) -> atset1:43 */\n \"Backspace\": 0xe, /* html:Backspace (Backspace) -> linux:14 (KEY_BACKSPACE) -> atset1:14 */\n \"BracketLeft\": 0x1a, /* html:BracketLeft (BracketLeft) -> linux:26 (KEY_LEFTBRACE) -> atset1:26 */\n \"BracketRight\": 0x1b, /* html:BracketRight (BracketRight) -> linux:27 (KEY_RIGHTBRACE) -> atset1:27 */\n \"BrowserBack\": 0xe06a, /* html:BrowserBack (BrowserBack) -> linux:158 (KEY_BACK) -> atset1:57450 */\n \"BrowserFavorites\": 0xe066, /* html:BrowserFavorites (BrowserFavorites) -> linux:156 (KEY_BOOKMARKS) -> atset1:57446 */\n \"BrowserForward\": 0xe069, /* html:BrowserForward (BrowserForward) -> linux:159 (KEY_FORWARD) -> atset1:57449 */\n \"BrowserHome\": 0xe032, /* html:BrowserHome (BrowserHome) -> linux:172 (KEY_HOMEPAGE) -> atset1:57394 */\n \"BrowserRefresh\": 0xe067, /* html:BrowserRefresh (BrowserRefresh) -> linux:173 (KEY_REFRESH) -> atset1:57447 */\n \"BrowserSearch\": 0xe065, /* html:BrowserSearch (BrowserSearch) -> linux:217 (KEY_SEARCH) -> atset1:57445 */\n \"BrowserStop\": 0xe068, /* html:BrowserStop (BrowserStop) -> linux:128 (KEY_STOP) -> atset1:57448 */\n \"CapsLock\": 0x3a, /* html:CapsLock (CapsLock) -> linux:58 (KEY_CAPSLOCK) -> atset1:58 */\n \"Comma\": 0x33, /* html:Comma (Comma) -> linux:51 (KEY_COMMA) -> atset1:51 */\n \"ContextMenu\": 0xe05d, /* html:ContextMenu (ContextMenu) -> linux:127 (KEY_COMPOSE) -> atset1:57437 */\n \"ControlLeft\": 0x1d, /* html:ControlLeft (ControlLeft) -> linux:29 (KEY_LEFTCTRL) -> atset1:29 */\n \"ControlRight\": 0xe01d, /* html:ControlRight (ControlRight) -> linux:97 (KEY_RIGHTCTRL) -> atset1:57373 */\n \"Convert\": 0x79, /* html:Convert (Convert) -> linux:92 (KEY_HENKAN) -> atset1:121 */\n \"Copy\": 0xe078, /* html:Copy (Copy) -> linux:133 (KEY_COPY) -> atset1:57464 */\n \"Cut\": 0xe03c, /* html:Cut (Cut) -> linux:137 (KEY_CUT) -> atset1:57404 */\n \"Delete\": 0xe053, /* html:Delete (Delete) -> linux:111 (KEY_DELETE) -> atset1:57427 */\n \"Digit0\": 0xb, /* html:Digit0 (Digit0) -> linux:11 (KEY_0) -> atset1:11 */\n \"Digit1\": 0x2, /* html:Digit1 (Digit1) -> linux:2 (KEY_1) -> atset1:2 */\n \"Digit2\": 0x3, /* html:Digit2 (Digit2) -> linux:3 (KEY_2) -> atset1:3 */\n \"Digit3\": 0x4, /* html:Digit3 (Digit3) -> linux:4 (KEY_3) -> atset1:4 */\n \"Digit4\": 0x5, /* html:Digit4 (Digit4) -> linux:5 (KEY_4) -> atset1:5 */\n \"Digit5\": 0x6, /* html:Digit5 (Digit5) -> linux:6 (KEY_5) -> atset1:6 */\n \"Digit6\": 0x7, /* html:Digit6 (Digit6) -> linux:7 (KEY_6) -> atset1:7 */\n \"Digit7\": 0x8, /* html:Digit7 (Digit7) -> linux:8 (KEY_7) -> atset1:8 */\n \"Digit8\": 0x9, /* html:Digit8 (Digit8) -> linux:9 (KEY_8) -> atset1:9 */\n \"Digit9\": 0xa, /* html:Digit9 (Digit9) -> linux:10 (KEY_9) -> atset1:10 */\n \"Eject\": 0xe07d, /* html:Eject (Eject) -> linux:162 (KEY_EJECTCLOSECD) -> atset1:57469 */\n \"End\": 0xe04f, /* html:End (End) -> linux:107 (KEY_END) -> atset1:57423 */\n \"Enter\": 0x1c, /* html:Enter (Enter) -> linux:28 (KEY_ENTER) -> atset1:28 */\n \"Equal\": 0xd, /* html:Equal (Equal) -> linux:13 (KEY_EQUAL) -> atset1:13 */\n \"Escape\": 0x1, /* html:Escape (Escape) -> linux:1 (KEY_ESC) -> atset1:1 */\n \"F1\": 0x3b, /* html:F1 (F1) -> linux:59 (KEY_F1) -> atset1:59 */\n \"F10\": 0x44, /* html:F10 (F10) -> linux:68 (KEY_F10) -> atset1:68 */\n \"F11\": 0x57, /* html:F11 (F11) -> linux:87 (KEY_F11) -> atset1:87 */\n \"F12\": 0x58, /* html:F12 (F12) -> linux:88 (KEY_F12) -> atset1:88 */\n \"F13\": 0x5d, /* html:F13 (F13) -> linux:183 (KEY_F13) -> atset1:93 */\n \"F14\": 0x5e, /* html:F14 (F14) -> linux:184 (KEY_F14) -> atset1:94 */\n \"F15\": 0x5f, /* html:F15 (F15) -> linux:185 (KEY_F15) -> atset1:95 */\n \"F16\": 0x55, /* html:F16 (F16) -> linux:186 (KEY_F16) -> atset1:85 */\n \"F17\": 0xe003, /* html:F17 (F17) -> linux:187 (KEY_F17) -> atset1:57347 */\n \"F18\": 0xe077, /* html:F18 (F18) -> linux:188 (KEY_F18) -> atset1:57463 */\n \"F19\": 0xe004, /* html:F19 (F19) -> linux:189 (KEY_F19) -> atset1:57348 */\n \"F2\": 0x3c, /* html:F2 (F2) -> linux:60 (KEY_F2) -> atset1:60 */\n \"F20\": 0x5a, /* html:F20 (F20) -> linux:190 (KEY_F20) -> atset1:90 */\n \"F21\": 0x74, /* html:F21 (F21) -> linux:191 (KEY_F21) -> atset1:116 */\n \"F22\": 0xe079, /* html:F22 (F22) -> linux:192 (KEY_F22) -> atset1:57465 */\n \"F23\": 0x6d, /* html:F23 (F23) -> linux:193 (KEY_F23) -> atset1:109 */\n \"F24\": 0x6f, /* html:F24 (F24) -> linux:194 (KEY_F24) -> atset1:111 */\n \"F3\": 0x3d, /* html:F3 (F3) -> linux:61 (KEY_F3) -> atset1:61 */\n \"F4\": 0x3e, /* html:F4 (F4) -> linux:62 (KEY_F4) -> atset1:62 */\n \"F5\": 0x3f, /* html:F5 (F5) -> linux:63 (KEY_F5) -> atset1:63 */\n \"F6\": 0x40, /* html:F6 (F6) -> linux:64 (KEY_F6) -> atset1:64 */\n \"F7\": 0x41, /* html:F7 (F7) -> linux:65 (KEY_F7) -> atset1:65 */\n \"F8\": 0x42, /* html:F8 (F8) -> linux:66 (KEY_F8) -> atset1:66 */\n \"F9\": 0x43, /* html:F9 (F9) -> linux:67 (KEY_F9) -> atset1:67 */\n \"Find\": 0xe041, /* html:Find (Find) -> linux:136 (KEY_FIND) -> atset1:57409 */\n \"Help\": 0xe075, /* html:Help (Help) -> linux:138 (KEY_HELP) -> atset1:57461 */\n \"Hiragana\": 0x77, /* html:Hiragana (Lang4) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */\n \"Home\": 0xe047, /* html:Home (Home) -> linux:102 (KEY_HOME) -> atset1:57415 */\n \"Insert\": 0xe052, /* html:Insert (Insert) -> linux:110 (KEY_INSERT) -> atset1:57426 */\n \"IntlBackslash\": 0x56, /* html:IntlBackslash (IntlBackslash) -> linux:86 (KEY_102ND) -> atset1:86 */\n \"IntlRo\": 0x73, /* html:IntlRo (IntlRo) -> linux:89 (KEY_RO) -> atset1:115 */\n \"IntlYen\": 0x7d, /* html:IntlYen (IntlYen) -> linux:124 (KEY_YEN) -> atset1:125 */\n \"KanaMode\": 0x70, /* html:KanaMode (KanaMode) -> linux:93 (KEY_KATAKANAHIRAGANA) -> atset1:112 */\n \"Katakana\": 0x78, /* html:Katakana (Lang3) -> linux:90 (KEY_KATAKANA) -> atset1:120 */\n \"KeyA\": 0x1e, /* html:KeyA (KeyA) -> linux:30 (KEY_A) -> atset1:30 */\n \"KeyB\": 0x30, /* html:KeyB (KeyB) -> linux:48 (KEY_B) -> atset1:48 */\n \"KeyC\": 0x2e, /* html:KeyC (KeyC) -> linux:46 (KEY_C) -> atset1:46 */\n \"KeyD\": 0x20, /* html:KeyD (KeyD) -> linux:32 (KEY_D) -> atset1:32 */\n \"KeyE\": 0x12, /* html:KeyE (KeyE) -> linux:18 (KEY_E) -> atset1:18 */\n \"KeyF\": 0x21, /* html:KeyF (KeyF) -> linux:33 (KEY_F) -> atset1:33 */\n \"KeyG\": 0x22, /* html:KeyG (KeyG) -> linux:34 (KEY_G) -> atset1:34 */\n \"KeyH\": 0x23, /* html:KeyH (KeyH) -> linux:35 (KEY_H) -> atset1:35 */\n \"KeyI\": 0x17, /* html:KeyI (KeyI) -> linux:23 (KEY_I) -> atset1:23 */\n \"KeyJ\": 0x24, /* html:KeyJ (KeyJ) -> linux:36 (KEY_J) -> atset1:36 */\n \"KeyK\": 0x25, /* html:KeyK (KeyK) -> linux:37 (KEY_K) -> atset1:37 */\n \"KeyL\": 0x26, /* html:KeyL (KeyL) -> linux:38 (KEY_L) -> atset1:38 */\n \"KeyM\": 0x32, /* html:KeyM (KeyM) -> linux:50 (KEY_M) -> atset1:50 */\n \"KeyN\": 0x31, /* html:KeyN (KeyN) -> linux:49 (KEY_N) -> atset1:49 */\n \"KeyO\": 0x18, /* html:KeyO (KeyO) -> linux:24 (KEY_O) -> atset1:24 */\n \"KeyP\": 0x19, /* html:KeyP (KeyP) -> linux:25 (KEY_P) -> atset1:25 */\n \"KeyQ\": 0x10, /* html:KeyQ (KeyQ) -> linux:16 (KEY_Q) -> atset1:16 */\n \"KeyR\": 0x13, /* html:KeyR (KeyR) -> linux:19 (KEY_R) -> atset1:19 */\n \"KeyS\": 0x1f, /* html:KeyS (KeyS) -> linux:31 (KEY_S) -> atset1:31 */\n \"KeyT\": 0x14, /* html:KeyT (KeyT) -> linux:20 (KEY_T) -> atset1:20 */\n \"KeyU\": 0x16, /* html:KeyU (KeyU) -> linux:22 (KEY_U) -> atset1:22 */\n \"KeyV\": 0x2f, /* html:KeyV (KeyV) -> linux:47 (KEY_V) -> atset1:47 */\n \"KeyW\": 0x11, /* html:KeyW (KeyW) -> linux:17 (KEY_W) -> atset1:17 */\n \"KeyX\": 0x2d, /* html:KeyX (KeyX) -> linux:45 (KEY_X) -> atset1:45 */\n \"KeyY\": 0x15, /* html:KeyY (KeyY) -> linux:21 (KEY_Y) -> atset1:21 */\n \"KeyZ\": 0x2c, /* html:KeyZ (KeyZ) -> linux:44 (KEY_Z) -> atset1:44 */\n \"Lang3\": 0x78, /* html:Lang3 (Lang3) -> linux:90 (KEY_KATAKANA) -> atset1:120 */\n \"Lang4\": 0x77, /* html:Lang4 (Lang4) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */\n \"Lang5\": 0x76, /* html:Lang5 (Lang5) -> linux:85 (KEY_ZENKAKUHANKAKU) -> atset1:118 */\n \"LaunchApp1\": 0xe06b, /* html:LaunchApp1 (LaunchApp1) -> linux:157 (KEY_COMPUTER) -> atset1:57451 */\n \"LaunchApp2\": 0xe021, /* html:LaunchApp2 (LaunchApp2) -> linux:140 (KEY_CALC) -> atset1:57377 */\n \"LaunchMail\": 0xe06c, /* html:LaunchMail (LaunchMail) -> linux:155 (KEY_MAIL) -> atset1:57452 */\n \"MediaPlayPause\": 0xe022, /* html:MediaPlayPause (MediaPlayPause) -> linux:164 (KEY_PLAYPAUSE) -> atset1:57378 */\n \"MediaSelect\": 0xe06d, /* html:MediaSelect (MediaSelect) -> linux:226 (KEY_MEDIA) -> atset1:57453 */\n \"MediaStop\": 0xe024, /* html:MediaStop (MediaStop) -> linux:166 (KEY_STOPCD) -> atset1:57380 */\n \"MediaTrackNext\": 0xe019, /* html:MediaTrackNext (MediaTrackNext) -> linux:163 (KEY_NEXTSONG) -> atset1:57369 */\n \"MediaTrackPrevious\": 0xe010, /* html:MediaTrackPrevious (MediaTrackPrevious) -> linux:165 (KEY_PREVIOUSSONG) -> atset1:57360 */\n \"MetaLeft\": 0xe05b, /* html:MetaLeft (MetaLeft) -> linux:125 (KEY_LEFTMETA) -> atset1:57435 */\n \"MetaRight\": 0xe05c, /* html:MetaRight (MetaRight) -> linux:126 (KEY_RIGHTMETA) -> atset1:57436 */\n \"Minus\": 0xc, /* html:Minus (Minus) -> linux:12 (KEY_MINUS) -> atset1:12 */\n \"NonConvert\": 0x7b, /* html:NonConvert (NonConvert) -> linux:94 (KEY_MUHENKAN) -> atset1:123 */\n \"NumLock\": 0x45, /* html:NumLock (NumLock) -> linux:69 (KEY_NUMLOCK) -> atset1:69 */\n \"Numpad0\": 0x52, /* html:Numpad0 (Numpad0) -> linux:82 (KEY_KP0) -> atset1:82 */\n \"Numpad1\": 0x4f, /* html:Numpad1 (Numpad1) -> linux:79 (KEY_KP1) -> atset1:79 */\n \"Numpad2\": 0x50, /* html:Numpad2 (Numpad2) -> linux:80 (KEY_KP2) -> atset1:80 */\n \"Numpad3\": 0x51, /* html:Numpad3 (Numpad3) -> linux:81 (KEY_KP3) -> atset1:81 */\n \"Numpad4\": 0x4b, /* html:Numpad4 (Numpad4) -> linux:75 (KEY_KP4) -> atset1:75 */\n \"Numpad5\": 0x4c, /* html:Numpad5 (Numpad5) -> linux:76 (KEY_KP5) -> atset1:76 */\n \"Numpad6\": 0x4d, /* html:Numpad6 (Numpad6) -> linux:77 (KEY_KP6) -> atset1:77 */\n \"Numpad7\": 0x47, /* html:Numpad7 (Numpad7) -> linux:71 (KEY_KP7) -> atset1:71 */\n \"Numpad8\": 0x48, /* html:Numpad8 (Numpad8) -> linux:72 (KEY_KP8) -> atset1:72 */\n \"Numpad9\": 0x49, /* html:Numpad9 (Numpad9) -> linux:73 (KEY_KP9) -> atset1:73 */\n \"NumpadAdd\": 0x4e, /* html:NumpadAdd (NumpadAdd) -> linux:78 (KEY_KPPLUS) -> atset1:78 */\n \"NumpadComma\": 0x7e, /* html:NumpadComma (NumpadComma) -> linux:121 (KEY_KPCOMMA) -> atset1:126 */\n \"NumpadDecimal\": 0x53, /* html:NumpadDecimal (NumpadDecimal) -> linux:83 (KEY_KPDOT) -> atset1:83 */\n \"NumpadDivide\": 0xe035, /* html:NumpadDivide (NumpadDivide) -> linux:98 (KEY_KPSLASH) -> atset1:57397 */\n \"NumpadEnter\": 0xe01c, /* html:NumpadEnter (NumpadEnter) -> linux:96 (KEY_KPENTER) -> atset1:57372 */\n \"NumpadEqual\": 0x59, /* html:NumpadEqual (NumpadEqual) -> linux:117 (KEY_KPEQUAL) -> atset1:89 */\n \"NumpadMultiply\": 0x37, /* html:NumpadMultiply (NumpadMultiply) -> linux:55 (KEY_KPASTERISK) -> atset1:55 */\n \"NumpadParenLeft\": 0xe076, /* html:NumpadParenLeft (NumpadParenLeft) -> linux:179 (KEY_KPLEFTPAREN) -> atset1:57462 */\n \"NumpadParenRight\": 0xe07b, /* html:NumpadParenRight (NumpadParenRight) -> linux:180 (KEY_KPRIGHTPAREN) -> atset1:57467 */\n \"NumpadSubtract\": 0x4a, /* html:NumpadSubtract (NumpadSubtract) -> linux:74 (KEY_KPMINUS) -> atset1:74 */\n \"Open\": 0x64, /* html:Open (Open) -> linux:134 (KEY_OPEN) -> atset1:100 */\n \"PageDown\": 0xe051, /* html:PageDown (PageDown) -> linux:109 (KEY_PAGEDOWN) -> atset1:57425 */\n \"PageUp\": 0xe049, /* html:PageUp (PageUp) -> linux:104 (KEY_PAGEUP) -> atset1:57417 */\n \"Paste\": 0x65, /* html:Paste (Paste) -> linux:135 (KEY_PASTE) -> atset1:101 */\n \"Pause\": 0xe046, /* html:Pause (Pause) -> linux:119 (KEY_PAUSE) -> atset1:57414 */\n \"Period\": 0x34, /* html:Period (Period) -> linux:52 (KEY_DOT) -> atset1:52 */\n \"Power\": 0xe05e, /* html:Power (Power) -> linux:116 (KEY_POWER) -> atset1:57438 */\n \"PrintScreen\": 0x54, /* html:PrintScreen (PrintScreen) -> linux:99 (KEY_SYSRQ) -> atset1:84 */\n \"Props\": 0xe006, /* html:Props (Props) -> linux:130 (KEY_PROPS) -> atset1:57350 */\n \"Quote\": 0x28, /* html:Quote (Quote) -> linux:40 (KEY_APOSTROPHE) -> atset1:40 */\n \"ScrollLock\": 0x46, /* html:ScrollLock (ScrollLock) -> linux:70 (KEY_SCROLLLOCK) -> atset1:70 */\n \"Semicolon\": 0x27, /* html:Semicolon (Semicolon) -> linux:39 (KEY_SEMICOLON) -> atset1:39 */\n \"ShiftLeft\": 0x2a, /* html:ShiftLeft (ShiftLeft) -> linux:42 (KEY_LEFTSHIFT) -> atset1:42 */\n \"ShiftRight\": 0x36, /* html:ShiftRight (ShiftRight) -> linux:54 (KEY_RIGHTSHIFT) -> atset1:54 */\n \"Slash\": 0x35, /* html:Slash (Slash) -> linux:53 (KEY_SLASH) -> atset1:53 */\n \"Sleep\": 0xe05f, /* html:Sleep (Sleep) -> linux:142 (KEY_SLEEP) -> atset1:57439 */\n \"Space\": 0x39, /* html:Space (Space) -> linux:57 (KEY_SPACE) -> atset1:57 */\n \"Suspend\": 0xe025, /* html:Suspend (Suspend) -> linux:205 (KEY_SUSPEND) -> atset1:57381 */\n \"Tab\": 0xf, /* html:Tab (Tab) -> linux:15 (KEY_TAB) -> atset1:15 */\n \"Undo\": 0xe007, /* html:Undo (Undo) -> linux:131 (KEY_UNDO) -> atset1:57351 */\n \"WakeUp\": 0xe063, /* html:WakeUp (WakeUp) -> linux:143 (KEY_WAKEUP) -> atset1:57443 */\n};\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\nexport const encodings = {\n encodingRaw: 0,\n encodingCopyRect: 1,\n encodingRRE: 2,\n encodingHextile: 5,\n encodingTight: 7,\n encodingTightPNG: -260,\n\n pseudoEncodingQualityLevel9: -23,\n pseudoEncodingQualityLevel0: -32,\n pseudoEncodingDesktopSize: -223,\n pseudoEncodingLastRect: -224,\n pseudoEncodingCursor: -239,\n pseudoEncodingQEMUExtendedKeyEvent: -258,\n pseudoEncodingDesktopName: -307,\n pseudoEncodingExtendedDesktopSize: -308,\n pseudoEncodingXvp: -309,\n pseudoEncodingFence: -312,\n pseudoEncodingContinuousUpdates: -313,\n pseudoEncodingCompressLevel9: -247,\n pseudoEncodingCompressLevel0: -256,\n pseudoEncodingVMwareCursor: 0x574d5664,\n pseudoEncodingExtendedClipboard: 0xc0a1e5ce\n};\n\nexport function encodingName(num) {\n switch (num) {\n case encodings.encodingRaw: return \"Raw\";\n case encodings.encodingCopyRect: return \"CopyRect\";\n case encodings.encodingRRE: return \"RRE\";\n case encodings.encodingHextile: return \"Hextile\";\n case encodings.encodingTight: return \"Tight\";\n case encodings.encodingTightPNG: return \"TightPNG\";\n default: return \"[unknown encoding \" + num + \"]\";\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\n\nexport default class RawDecoder {\n constructor() {\n this._lines = 0;\n }\n\n decodeRect(x, y, width, height, sock, display, depth) {\n if (this._lines === 0) {\n this._lines = height;\n }\n\n const pixelSize = depth == 8 ? 1 : 4;\n const bytesPerLine = width * pixelSize;\n\n if (sock.rQwait(\"RAW\", bytesPerLine)) {\n return false;\n }\n\n const curY = y + (height - this._lines);\n const currHeight = Math.min(this._lines,\n Math.floor(sock.rQlen / bytesPerLine));\n let data = sock.rQ;\n let index = sock.rQi;\n\n // Convert data if needed\n if (depth == 8) {\n const pixels = width * currHeight;\n const newdata = new Uint8Array(pixels * 4);\n for (let i = 0; i < pixels; i++) {\n newdata[i * 4 + 0] = ((data[index + i] >> 0) & 0x3) * 255 / 3;\n newdata[i * 4 + 1] = ((data[index + i] >> 2) & 0x3) * 255 / 3;\n newdata[i * 4 + 2] = ((data[index + i] >> 4) & 0x3) * 255 / 3;\n newdata[i * 4 + 4] = 0;\n }\n data = newdata;\n index = 0;\n }\n\n display.blitImage(x, curY, width, currHeight, data, index);\n sock.rQskipBytes(currHeight * bytesPerLine);\n this._lines -= currHeight;\n if (this._lines > 0) {\n return false;\n }\n\n return true;\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\n\nexport default class CopyRectDecoder {\n decodeRect(x, y, width, height, sock, display, depth) {\n if (sock.rQwait(\"COPYRECT\", 4)) {\n return false;\n }\n\n let deltaX = sock.rQshift16();\n let deltaY = sock.rQshift16();\n display.copyImage(deltaX, deltaY, x, y, width, height);\n\n return true;\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\n\nexport default class RREDecoder {\n constructor() {\n this._subrects = 0;\n }\n\n decodeRect(x, y, width, height, sock, display, depth) {\n if (this._subrects === 0) {\n if (sock.rQwait(\"RRE\", 4 + 4)) {\n return false;\n }\n\n this._subrects = sock.rQshift32();\n\n let color = sock.rQshiftBytes(4); // Background\n display.fillRect(x, y, width, height, color);\n }\n\n while (this._subrects > 0) {\n if (sock.rQwait(\"RRE\", 4 + 8)) {\n return false;\n }\n\n let color = sock.rQshiftBytes(4);\n let sx = sock.rQshift16();\n let sy = sock.rQshift16();\n let swidth = sock.rQshift16();\n let sheight = sock.rQshift16();\n display.fillRect(x + sx, y + sy, swidth, sheight, color);\n\n this._subrects--;\n }\n\n return true;\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\n\nimport * as Log from '../util/logging.js';\n\nexport default class HextileDecoder {\n constructor() {\n this._tiles = 0;\n this._lastsubencoding = 0;\n }\n\n decodeRect(x, y, width, height, sock, display, depth) {\n if (this._tiles === 0) {\n this._tilesX = Math.ceil(width / 16);\n this._tilesY = Math.ceil(height / 16);\n this._totalTiles = this._tilesX * this._tilesY;\n this._tiles = this._totalTiles;\n }\n\n while (this._tiles > 0) {\n let bytes = 1;\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n }\n\n let rQ = sock.rQ;\n let rQi = sock.rQi;\n\n let subencoding = rQ[rQi]; // Peek\n if (subencoding > 30) { // Raw\n throw new Error(\"Illegal hextile subencoding (subencoding: \" +\n subencoding + \")\");\n }\n\n const currTile = this._totalTiles - this._tiles;\n const tileX = currTile % this._tilesX;\n const tileY = Math.floor(currTile / this._tilesX);\n const tx = x + tileX * 16;\n const ty = y + tileY * 16;\n const tw = Math.min(16, (x + width) - tx);\n const th = Math.min(16, (y + height) - ty);\n\n // Figure out how much we are expecting\n if (subencoding & 0x01) { // Raw\n bytes += tw * th * 4;\n } else {\n if (subencoding & 0x02) { // Background\n bytes += 4;\n }\n if (subencoding & 0x04) { // Foreground\n bytes += 4;\n }\n if (subencoding & 0x08) { // AnySubrects\n bytes++; // Since we aren't shifting it off\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n }\n\n let subrects = rQ[rQi + bytes - 1]; // Peek\n if (subencoding & 0x10) { // SubrectsColoured\n bytes += subrects * (4 + 2);\n } else {\n bytes += subrects * 2;\n }\n }\n }\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n }\n\n // We know the encoding and have a whole tile\n rQi++;\n if (subencoding === 0) {\n if (this._lastsubencoding & 0x01) {\n // Weird: ignore blanks are RAW\n Log.Debug(\" Ignoring blank after RAW\");\n } else {\n display.fillRect(tx, ty, tw, th, this._background);\n }\n } else if (subencoding & 0x01) { // Raw\n display.blitImage(tx, ty, tw, th, rQ, rQi);\n rQi += bytes - 1;\n } else {\n if (subencoding & 0x02) { // Background\n this._background = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n }\n if (subencoding & 0x04) { // Foreground\n this._foreground = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n }\n\n display.startTile(tx, ty, tw, th, this._background);\n if (subencoding & 0x08) { // AnySubrects\n let subrects = rQ[rQi];\n rQi++;\n\n for (let s = 0; s < subrects; s++) {\n let color;\n if (subencoding & 0x10) { // SubrectsColoured\n color = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n } else {\n color = this._foreground;\n }\n const xy = rQ[rQi];\n rQi++;\n const sx = (xy >> 4);\n const sy = (xy & 0x0f);\n\n const wh = rQ[rQi];\n rQi++;\n const sw = (wh >> 4) + 1;\n const sh = (wh & 0x0f) + 1;\n\n display.subTile(sx, sy, sw, sh, color);\n }\n }\n display.finishTile();\n }\n sock.rQi = rQi;\n this._lastsubencoding = subencoding;\n this._tiles--;\n }\n\n return true;\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * (c) 2012 Michael Tinglof, Joe Balaz, Les Piech (Mercuri.ca)\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\n\nimport * as Log from '../util/logging.js';\nimport Inflator from \"../inflator.js\";\n\nexport default class TightDecoder {\n constructor() {\n this._ctl = null;\n this._filter = null;\n this._numColors = 0;\n this._palette = new Uint8Array(1024); // 256 * 4 (max palette size * max bytes-per-pixel)\n this._len = 0;\n\n this._zlibs = [];\n for (let i = 0; i < 4; i++) {\n this._zlibs[i] = new Inflator();\n }\n }\n\n decodeRect(x, y, width, height, sock, display, depth) {\n if (this._ctl === null) {\n if (sock.rQwait(\"TIGHT compression-control\", 1)) {\n return false;\n }\n\n this._ctl = sock.rQshift8();\n\n // Reset streams if the server requests it\n for (let i = 0; i < 4; i++) {\n if ((this._ctl >> i) & 1) {\n this._zlibs[i].reset();\n Log.Info(\"Reset zlib stream \" + i);\n }\n }\n\n // Figure out filter\n this._ctl = this._ctl >> 4;\n }\n\n let ret;\n\n if (this._ctl === 0x08) {\n ret = this._fillRect(x, y, width, height,\n sock, display, depth);\n } else if (this._ctl === 0x09) {\n ret = this._jpegRect(x, y, width, height,\n sock, display, depth);\n } else if (this._ctl === 0x0A) {\n ret = this._pngRect(x, y, width, height,\n sock, display, depth);\n } else if ((this._ctl & 0x80) == 0) {\n ret = this._basicRect(this._ctl, x, y, width, height,\n sock, display, depth);\n } else {\n throw new Error(\"Illegal tight compression received (ctl: \" +\n this._ctl + \")\");\n }\n\n if (ret) {\n this._ctl = null;\n }\n\n return ret;\n }\n\n _fillRect(x, y, width, height, sock, display, depth) {\n if (sock.rQwait(\"TIGHT\", 3)) {\n return false;\n }\n\n const rQi = sock.rQi;\n const rQ = sock.rQ;\n\n display.fillRect(x, y, width, height,\n [rQ[rQi + 2], rQ[rQi + 1], rQ[rQi]], false);\n sock.rQskipBytes(3);\n\n return true;\n }\n\n _jpegRect(x, y, width, height, sock, display, depth) {\n let data = this._readData(sock);\n if (data === null) {\n return false;\n }\n\n display.imageRect(x, y, width, height, \"image/jpeg\", data);\n\n return true;\n }\n\n _pngRect(x, y, width, height, sock, display, depth) {\n throw new Error(\"PNG received in standard Tight rect\");\n }\n\n _basicRect(ctl, x, y, width, height, sock, display, depth) {\n if (this._filter === null) {\n if (ctl & 0x4) {\n if (sock.rQwait(\"TIGHT\", 1)) {\n return false;\n }\n\n this._filter = sock.rQshift8();\n } else {\n // Implicit CopyFilter\n this._filter = 0;\n }\n }\n\n let streamId = ctl & 0x3;\n\n let ret;\n\n switch (this._filter) {\n case 0: // CopyFilter\n ret = this._copyFilter(streamId, x, y, width, height,\n sock, display, depth);\n break;\n case 1: // PaletteFilter\n ret = this._paletteFilter(streamId, x, y, width, height,\n sock, display, depth);\n break;\n case 2: // GradientFilter\n ret = this._gradientFilter(streamId, x, y, width, height,\n sock, display, depth);\n break;\n default:\n throw new Error(\"Illegal tight filter received (ctl: \" +\n this._filter + \")\");\n }\n\n if (ret) {\n this._filter = null;\n }\n\n return ret;\n }\n\n _copyFilter(streamId, x, y, width, height, sock, display, depth) {\n const uncompressedSize = width * height * 3;\n let data;\n\n if (uncompressedSize < 12) {\n if (sock.rQwait(\"TIGHT\", uncompressedSize)) {\n return false;\n }\n\n data = sock.rQshiftBytes(uncompressedSize);\n } else {\n data = this._readData(sock);\n if (data === null) {\n return false;\n }\n\n this._zlibs[streamId].setInput(data);\n data = this._zlibs[streamId].inflate(uncompressedSize);\n this._zlibs[streamId].setInput(null);\n }\n\n display.blitRgbImage(x, y, width, height, data, 0, false);\n\n return true;\n }\n\n _paletteFilter(streamId, x, y, width, height, sock, display, depth) {\n if (this._numColors === 0) {\n if (sock.rQwait(\"TIGHT palette\", 1)) {\n return false;\n }\n\n const numColors = sock.rQpeek8() + 1;\n const paletteSize = numColors * 3;\n\n if (sock.rQwait(\"TIGHT palette\", 1 + paletteSize)) {\n return false;\n }\n\n this._numColors = numColors;\n sock.rQskipBytes(1);\n\n sock.rQshiftTo(this._palette, paletteSize);\n }\n\n const bpp = (this._numColors <= 2) ? 1 : 8;\n const rowSize = Math.floor((width * bpp + 7) / 8);\n const uncompressedSize = rowSize * height;\n\n let data;\n\n if (uncompressedSize < 12) {\n if (sock.rQwait(\"TIGHT\", uncompressedSize)) {\n return false;\n }\n\n data = sock.rQshiftBytes(uncompressedSize);\n } else {\n data = this._readData(sock);\n if (data === null) {\n return false;\n }\n\n this._zlibs[streamId].setInput(data);\n data = this._zlibs[streamId].inflate(uncompressedSize);\n this._zlibs[streamId].setInput(null);\n }\n\n // Convert indexed (palette based) image data to RGB\n if (this._numColors == 2) {\n this._monoRect(x, y, width, height, data, this._palette, display);\n } else {\n this._paletteRect(x, y, width, height, data, this._palette, display);\n }\n\n this._numColors = 0;\n\n return true;\n }\n\n _monoRect(x, y, width, height, data, palette, display) {\n // Convert indexed (palette based) image data to RGB\n // TODO: reduce number of calculations inside loop\n const dest = this._getScratchBuffer(width * height * 4);\n const w = Math.floor((width + 7) / 8);\n const w1 = Math.floor(width / 8);\n\n for (let y = 0; y < height; y++) {\n let dp, sp, x;\n for (x = 0; x < w1; x++) {\n for (let b = 7; b >= 0; b--) {\n dp = (y * width + x * 8 + 7 - b) * 4;\n sp = (data[y * w + x] >> b & 1) * 3;\n dest[dp] = palette[sp];\n dest[dp + 1] = palette[sp + 1];\n dest[dp + 2] = palette[sp + 2];\n dest[dp + 3] = 255;\n }\n }\n\n for (let b = 7; b >= 8 - width % 8; b--) {\n dp = (y * width + x * 8 + 7 - b) * 4;\n sp = (data[y * w + x] >> b & 1) * 3;\n dest[dp] = palette[sp];\n dest[dp + 1] = palette[sp + 1];\n dest[dp + 2] = palette[sp + 2];\n dest[dp + 3] = 255;\n }\n }\n\n display.blitRgbxImage(x, y, width, height, dest, 0, false);\n }\n\n _paletteRect(x, y, width, height, data, palette, display) {\n // Convert indexed (palette based) image data to RGB\n const dest = this._getScratchBuffer(width * height * 4);\n const total = width * height * 4;\n for (let i = 0, j = 0; i < total; i += 4, j++) {\n const sp = data[j] * 3;\n dest[i] = palette[sp];\n dest[i + 1] = palette[sp + 1];\n dest[i + 2] = palette[sp + 2];\n dest[i + 3] = 255;\n }\n\n display.blitRgbxImage(x, y, width, height, dest, 0, false);\n }\n\n _gradientFilter(streamId, x, y, width, height, sock, display, depth) {\n throw new Error(\"Gradient filter not implemented\");\n }\n\n _readData(sock) {\n if (this._len === 0) {\n if (sock.rQwait(\"TIGHT\", 3)) {\n return null;\n }\n\n let byte;\n\n byte = sock.rQshift8();\n this._len = byte & 0x7f;\n if (byte & 0x80) {\n byte = sock.rQshift8();\n this._len |= (byte & 0x7f) << 7;\n if (byte & 0x80) {\n byte = sock.rQshift8();\n this._len |= byte << 14;\n }\n }\n }\n\n if (sock.rQwait(\"TIGHT\", this._len)) {\n return null;\n }\n\n let data = sock.rQshiftBytes(this._len);\n this._len = 0;\n\n return data;\n }\n\n _getScratchBuffer(size) {\n if (!this._scratchBuffer || (this._scratchBuffer.length < size)) {\n this._scratchBuffer = new Uint8Array(size);\n }\n return this._scratchBuffer;\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\n\nimport TightDecoder from './tight.js';\n\nexport default class TightPNGDecoder extends TightDecoder {\n _pngRect(x, y, width, height, sock, display, depth) {\n let data = this._readData(sock);\n if (data === null) {\n return false;\n }\n\n display.imageRect(x, y, width, height, \"image/png\", data);\n\n return true;\n }\n\n _basicRect(ctl, x, y, width, height, sock, display, depth) {\n throw new Error(\"BasicCompression received in TightPNG rect\");\n }\n}\n","/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\n\nimport { toUnsigned32bit, toSigned32bit } from './util/int.js';\nimport * as Log from './util/logging.js';\nimport { encodeUTF8, decodeUTF8 } from './util/strings.js';\nimport { dragThreshold } from './util/browser.js';\nimport { clientToElement } from './util/element.js';\nimport { setCapture } from './util/events.js';\nimport EventTargetMixin from './util/eventtarget.js';\nimport Display from \"./display.js\";\nimport Inflator from \"./inflator.js\";\nimport Deflator from \"./deflator.js\";\nimport Keyboard from \"./input/keyboard.js\";\nimport GestureHandler from \"./input/gesturehandler.js\";\nimport Cursor from \"./util/cursor.js\";\nimport Websock from \"./websock.js\";\nimport DES from \"./des.js\";\nimport KeyTable from \"./input/keysym.js\";\nimport XtScancode from \"./input/xtscancodes.js\";\nimport { encodings } from \"./encodings.js\";\nimport \"./util/polyfill.js\";\n\nimport RawDecoder from \"./decoders/raw.js\";\nimport CopyRectDecoder from \"./decoders/copyrect.js\";\nimport RREDecoder from \"./decoders/rre.js\";\nimport HextileDecoder from \"./decoders/hextile.js\";\nimport TightDecoder from \"./decoders/tight.js\";\nimport TightPNGDecoder from \"./decoders/tightpng.js\";\n\n// How many seconds to wait for a disconnect to finish\nconst DISCONNECT_TIMEOUT = 3;\nconst DEFAULT_BACKGROUND = 'rgb(40, 40, 40)';\n\n// Minimum wait (ms) between two mouse moves\nconst MOUSE_MOVE_DELAY = 17;\n\n// Wheel thresholds\nconst WHEEL_STEP = 50; // Pixels needed for one step\nconst WHEEL_LINE_HEIGHT = 19; // Assumed pixels for one line step\n\n// Gesture thresholds\nconst GESTURE_ZOOMSENS = 75;\nconst GESTURE_SCRLSENS = 50;\nconst DOUBLE_TAP_TIMEOUT = 1000;\nconst DOUBLE_TAP_THRESHOLD = 50;\n\n// Extended clipboard pseudo-encoding formats\nconst extendedClipboardFormatText = 1;\n/*eslint-disable no-unused-vars */\nconst extendedClipboardFormatRtf = 1 << 1;\nconst extendedClipboardFormatHtml = 1 << 2;\nconst extendedClipboardFormatDib = 1 << 3;\nconst extendedClipboardFormatFiles = 1 << 4;\n/*eslint-enable */\n\n// Extended clipboard pseudo-encoding actions\nconst extendedClipboardActionCaps = 1 << 24;\nconst extendedClipboardActionRequest = 1 << 25;\nconst extendedClipboardActionPeek = 1 << 26;\nconst extendedClipboardActionNotify = 1 << 27;\nconst extendedClipboardActionProvide = 1 << 28;\n\n\nexport default class RFB extends EventTargetMixin {\n constructor(target, url, options) {\n if (!target) {\n throw new Error(\"Must specify target\");\n }\n if (!url) {\n throw new Error(\"Must specify URL\");\n }\n\n super();\n\n this._target = target;\n this._url = url;\n\n // Connection details\n options = options || {};\n this._rfbCredentials = options.credentials || {};\n this._shared = 'shared' in options ? !!options.shared : true;\n this._repeaterID = options.repeaterID || '';\n this._wsProtocols = options.wsProtocols || [];\n\n // Internal state\n this._rfbConnectionState = '';\n this._rfbInitState = '';\n this._rfbAuthScheme = -1;\n this._rfbCleanDisconnect = true;\n\n // Server capabilities\n this._rfbVersion = 0;\n this._rfbMaxVersion = 3.8;\n this._rfbTightVNC = false;\n this._rfbVeNCryptState = 0;\n this._rfbXvpVer = 0;\n\n this._fbWidth = 0;\n this._fbHeight = 0;\n\n this._fbName = \"\";\n\n this._capabilities = { power: false };\n\n this._supportsFence = false;\n\n this._supportsContinuousUpdates = false;\n this._enabledContinuousUpdates = false;\n\n this._supportsSetDesktopSize = false;\n this._screenID = 0;\n this._screenFlags = 0;\n\n this._qemuExtKeyEventSupported = false;\n\n this._clipboardText = null;\n this._clipboardServerCapabilitiesActions = {};\n this._clipboardServerCapabilitiesFormats = {};\n\n // Internal objects\n this._sock = null; // Websock object\n this._display = null; // Display object\n this._flushing = false; // Display flushing state\n this._keyboard = null; // Keyboard input handler object\n this._gestures = null; // Gesture input handler object\n\n // Timers\n this._disconnTimer = null; // disconnection timer\n this._resizeTimeout = null; // resize rate limiting\n this._mouseMoveTimer = null;\n\n // Decoder states\n this._decoders = {};\n\n this._FBU = {\n rects: 0,\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n encoding: null,\n };\n\n // Mouse state\n this._mousePos = {};\n this._mouseButtonMask = 0;\n this._mouseLastMoveTime = 0;\n this._viewportDragging = false;\n this._viewportDragPos = {};\n this._viewportHasMoved = false;\n this._accumulatedWheelDeltaX = 0;\n this._accumulatedWheelDeltaY = 0;\n\n // Gesture state\n this._gestureLastTapTime = null;\n this._gestureFirstDoubleTapEv = null;\n this._gestureLastMagnitudeX = 0;\n this._gestureLastMagnitudeY = 0;\n\n // Bound event handlers\n this._eventHandlers = {\n focusCanvas: this._focusCanvas.bind(this),\n windowResize: this._windowResize.bind(this),\n handleMouse: this._handleMouse.bind(this),\n handleWheel: this._handleWheel.bind(this),\n handleGesture: this._handleGesture.bind(this),\n };\n\n // main setup\n Log.Debug(\">> RFB.constructor\");\n\n // Create DOM elements\n this._screen = document.createElement('div');\n this._screen.style.display = 'flex';\n this._screen.style.width = '100%';\n this._screen.style.height = '100%';\n this._screen.style.overflow = 'auto';\n this._screen.style.background = DEFAULT_BACKGROUND;\n this._canvas = document.createElement('canvas');\n this._canvas.style.margin = 'auto';\n // Some browsers add an outline on focus\n this._canvas.style.outline = 'none';\n // IE miscalculates width without this :(\n this._canvas.style.flexShrink = '0';\n this._canvas.width = 0;\n this._canvas.height = 0;\n this._canvas.tabIndex = -1;\n this._screen.appendChild(this._canvas);\n\n // Cursor\n this._cursor = new Cursor();\n\n // XXX: TightVNC 2.8.11 sends no cursor at all until Windows changes\n // it. Result: no cursor at all until a window border or an edit field\n // is hit blindly. But there are also VNC servers that draw the cursor\n // in the framebuffer and don't send the empty local cursor. There is\n // no way to satisfy both sides.\n //\n // The spec is unclear on this \"initial cursor\" issue. Many other\n // viewers (TigerVNC, RealVNC, Remmina) display an arrow as the\n // initial cursor instead.\n this._cursorImage = RFB.cursors.none;\n\n // populate decoder array with objects\n this._decoders[encodings.encodingRaw] = new RawDecoder();\n this._decoders[encodings.encodingCopyRect] = new CopyRectDecoder();\n this._decoders[encodings.encodingRRE] = new RREDecoder();\n this._decoders[encodings.encodingHextile] = new HextileDecoder();\n this._decoders[encodings.encodingTight] = new TightDecoder();\n this._decoders[encodings.encodingTightPNG] = new TightPNGDecoder();\n\n // NB: nothing that needs explicit teardown should be done\n // before this point, since this can throw an exception\n try {\n this._display = new Display(this._canvas);\n } catch (exc) {\n Log.Error(\"Display exception: \" + exc);\n throw exc;\n }\n this._display.onflush = this._onFlush.bind(this);\n\n this._keyboard = new Keyboard(this._canvas);\n this._keyboard.onkeyevent = this._handleKeyEvent.bind(this);\n\n this._gestures = new GestureHandler();\n\n this._sock = new Websock();\n this._sock.on('message', () => {\n this._handleMessage();\n });\n this._sock.on('open', () => {\n if ((this._rfbConnectionState === 'connecting') &&\n (this._rfbInitState === '')) {\n this._rfbInitState = 'ProtocolVersion';\n Log.Debug(\"Starting VNC handshake\");\n } else {\n this._fail(\"Unexpected server connection while \" +\n this._rfbConnectionState);\n }\n });\n this._sock.on('close', (e) => {\n Log.Debug(\"WebSocket on-close event\");\n let msg = \"\";\n if (e.code) {\n msg = \"(code: \" + e.code;\n if (e.reason) {\n msg += \", reason: \" + e.reason;\n }\n msg += \")\";\n }\n switch (this._rfbConnectionState) {\n case 'connecting':\n this._fail(\"Connection closed \" + msg);\n break;\n case 'connected':\n // Handle disconnects that were initiated server-side\n this._updateConnectionState('disconnecting');\n this._updateConnectionState('disconnected');\n break;\n case 'disconnecting':\n // Normal disconnection path\n this._updateConnectionState('disconnected');\n break;\n case 'disconnected':\n this._fail(\"Unexpected server disconnect \" +\n \"when already disconnected \" + msg);\n break;\n default:\n this._fail(\"Unexpected server disconnect before connecting \" +\n msg);\n break;\n }\n this._sock.off('close');\n });\n this._sock.on('error', e => Log.Warn(\"WebSocket on-error event\"));\n\n // Slight delay of the actual connection so that the caller has\n // time to set up callbacks\n setTimeout(this._updateConnectionState.bind(this, 'connecting'));\n\n Log.Debug(\"<< RFB.constructor\");\n\n // ===== PROPERTIES =====\n\n this.dragViewport = false;\n this.focusOnClick = true;\n\n this._viewOnly = false;\n this._clipViewport = false;\n this._scaleViewport = false;\n this._resizeSession = false;\n\n this._showDotCursor = false;\n if (options.showDotCursor !== undefined) {\n Log.Warn(\"Specifying showDotCursor as a RFB constructor argument is deprecated\");\n this._showDotCursor = options.showDotCursor;\n }\n\n this._qualityLevel = 6;\n this._compressionLevel = 2;\n }\n\n // ===== PROPERTIES =====\n\n get viewOnly() { return this._viewOnly; }\n set viewOnly(viewOnly) {\n this._viewOnly = viewOnly;\n\n if (this._rfbConnectionState === \"connecting\" ||\n this._rfbConnectionState === \"connected\") {\n if (viewOnly) {\n this._keyboard.ungrab();\n } else {\n this._keyboard.grab();\n }\n }\n }\n\n get capabilities() { return this._capabilities; }\n\n get touchButton() { return 0; }\n set touchButton(button) { Log.Warn(\"Using old API!\"); }\n\n get clipViewport() { return this._clipViewport; }\n set clipViewport(viewport) {\n this._clipViewport = viewport;\n this._updateClip();\n }\n\n get scaleViewport() { return this._scaleViewport; }\n set scaleViewport(scale) {\n this._scaleViewport = scale;\n // Scaling trumps clipping, so we may need to adjust\n // clipping when enabling or disabling scaling\n if (scale && this._clipViewport) {\n this._updateClip();\n }\n this._updateScale();\n if (!scale && this._clipViewport) {\n this._updateClip();\n }\n }\n\n get resizeSession() { return this._resizeSession; }\n set resizeSession(resize) {\n this._resizeSession = resize;\n if (resize) {\n this._requestRemoteResize();\n }\n }\n\n get showDotCursor() { return this._showDotCursor; }\n set showDotCursor(show) {\n this._showDotCursor = show;\n this._refreshCursor();\n }\n\n get background() { return this._screen.style.background; }\n set background(cssValue) { this._screen.style.background = cssValue; }\n\n get qualityLevel() {\n return this._qualityLevel;\n }\n set qualityLevel(qualityLevel) {\n if (!Number.isInteger(qualityLevel) || qualityLevel < 0 || qualityLevel > 9) {\n Log.Error(\"qualityLevel must be an integer between 0 and 9\");\n return;\n }\n\n if (this._qualityLevel === qualityLevel) {\n return;\n }\n\n this._qualityLevel = qualityLevel;\n\n if (this._rfbConnectionState === 'connected') {\n this._sendEncodings();\n }\n }\n\n get compressionLevel() {\n return this._compressionLevel;\n }\n set compressionLevel(compressionLevel) {\n if (!Number.isInteger(compressionLevel) || compressionLevel < 0 || compressionLevel > 9) {\n Log.Error(\"compressionLevel must be an integer between 0 and 9\");\n return;\n }\n\n if (this._compressionLevel === compressionLevel) {\n return;\n }\n\n this._compressionLevel = compressionLevel;\n\n if (this._rfbConnectionState === 'connected') {\n this._sendEncodings();\n }\n }\n\n // ===== PUBLIC METHODS =====\n\n disconnect() {\n this._updateConnectionState('disconnecting');\n this._sock.off('error');\n this._sock.off('message');\n this._sock.off('open');\n }\n\n sendCredentials(creds) {\n this._rfbCredentials = creds;\n setTimeout(this._initMsg.bind(this), 0);\n }\n\n sendCtrlAltDel() {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) { return; }\n Log.Info(\"Sending Ctrl-Alt-Del\");\n\n this.sendKey(KeyTable.XK_Control_L, \"ControlLeft\", true);\n this.sendKey(KeyTable.XK_Alt_L, \"AltLeft\", true);\n this.sendKey(KeyTable.XK_Delete, \"Delete\", true);\n this.sendKey(KeyTable.XK_Delete, \"Delete\", false);\n this.sendKey(KeyTable.XK_Alt_L, \"AltLeft\", false);\n this.sendKey(KeyTable.XK_Control_L, \"ControlLeft\", false);\n }\n\n machineShutdown() {\n this._xvpOp(1, 2);\n }\n\n machineReboot() {\n this._xvpOp(1, 3);\n }\n\n machineReset() {\n this._xvpOp(1, 4);\n }\n\n // Send a key press. If 'down' is not specified then send a down key\n // followed by an up key.\n sendKey(keysym, code, down) {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) { return; }\n\n if (down === undefined) {\n this.sendKey(keysym, code, true);\n this.sendKey(keysym, code, false);\n return;\n }\n\n const scancode = XtScancode[code];\n\n if (this._qemuExtKeyEventSupported && scancode) {\n // 0 is NoSymbol\n keysym = keysym || 0;\n\n Log.Info(\"Sending key (\" + (down ? \"down\" : \"up\") + \"): keysym \" + keysym + \", scancode \" + scancode);\n\n RFB.messages.QEMUExtendedKeyEvent(this._sock, keysym, down, scancode);\n } else {\n if (!keysym) {\n return;\n }\n Log.Info(\"Sending keysym (\" + (down ? \"down\" : \"up\") + \"): \" + keysym);\n RFB.messages.keyEvent(this._sock, keysym, down ? 1 : 0);\n }\n }\n\n focus() {\n this._canvas.focus();\n }\n\n blur() {\n this._canvas.blur();\n }\n\n clipboardPasteFrom(text) {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) { return; }\n\n if (this._clipboardServerCapabilitiesFormats[extendedClipboardFormatText] &&\n this._clipboardServerCapabilitiesActions[extendedClipboardActionNotify]) {\n\n this._clipboardText = text;\n RFB.messages.extendedClipboardNotify(this._sock, [extendedClipboardFormatText]);\n } else {\n let data = new Uint8Array(text.length);\n for (let i = 0; i < text.length; i++) {\n // FIXME: text can have values outside of Latin1/Uint8\n data[i] = text.charCodeAt(i);\n }\n\n RFB.messages.clientCutText(this._sock, data);\n }\n }\n\n // ===== PRIVATE METHODS =====\n\n _connect() {\n Log.Debug(\">> RFB.connect\");\n\n Log.Info(\"connecting to \" + this._url);\n\n try {\n // WebSocket.onopen transitions to the RFB init states\n this._sock.open(this._url, this._wsProtocols);\n } catch (e) {\n if (e.name === 'SyntaxError') {\n this._fail(\"Invalid host or port (\" + e + \")\");\n } else {\n this._fail(\"Error when opening socket (\" + e + \")\");\n }\n }\n\n // Make our elements part of the page\n this._target.appendChild(this._screen);\n\n this._gestures.attach(this._canvas);\n\n this._cursor.attach(this._canvas);\n this._refreshCursor();\n\n // Monitor size changes of the screen\n // FIXME: Use ResizeObserver, or hidden overflow\n window.addEventListener('resize', this._eventHandlers.windowResize);\n\n // Always grab focus on some kind of click event\n this._canvas.addEventListener(\"mousedown\", this._eventHandlers.focusCanvas);\n this._canvas.addEventListener(\"touchstart\", this._eventHandlers.focusCanvas);\n\n // Mouse events\n this._canvas.addEventListener('mousedown', this._eventHandlers.handleMouse);\n this._canvas.addEventListener('mouseup', this._eventHandlers.handleMouse);\n this._canvas.addEventListener('mousemove', this._eventHandlers.handleMouse);\n // Prevent middle-click pasting (see handler for why we bind to document)\n this._canvas.addEventListener('click', this._eventHandlers.handleMouse);\n // preventDefault() on mousedown doesn't stop this event for some\n // reason so we have to explicitly block it\n this._canvas.addEventListener('contextmenu', this._eventHandlers.handleMouse);\n\n // Wheel events\n this._canvas.addEventListener(\"wheel\", this._eventHandlers.handleWheel);\n\n // Gesture events\n this._canvas.addEventListener(\"gesturestart\", this._eventHandlers.handleGesture);\n this._canvas.addEventListener(\"gesturemove\", this._eventHandlers.handleGesture);\n this._canvas.addEventListener(\"gestureend\", this._eventHandlers.handleGesture);\n\n Log.Debug(\"<< RFB.connect\");\n }\n\n _disconnect() {\n Log.Debug(\">> RFB.disconnect\");\n this._cursor.detach();\n this._canvas.removeEventListener(\"gesturestart\", this._eventHandlers.handleGesture);\n this._canvas.removeEventListener(\"gesturemove\", this._eventHandlers.handleGesture);\n this._canvas.removeEventListener(\"gestureend\", this._eventHandlers.handleGesture);\n this._canvas.removeEventListener(\"wheel\", this._eventHandlers.handleWheel);\n this._canvas.removeEventListener('mousedown', this._eventHandlers.handleMouse);\n this._canvas.removeEventListener('mouseup', this._eventHandlers.handleMouse);\n this._canvas.removeEventListener('mousemove', this._eventHandlers.handleMouse);\n this._canvas.removeEventListener('click', this._eventHandlers.handleMouse);\n this._canvas.removeEventListener('contextmenu', this._eventHandlers.handleMouse);\n this._canvas.removeEventListener(\"mousedown\", this._eventHandlers.focusCanvas);\n this._canvas.removeEventListener(\"touchstart\", this._eventHandlers.focusCanvas);\n window.removeEventListener('resize', this._eventHandlers.windowResize);\n this._keyboard.ungrab();\n this._gestures.detach();\n this._sock.close();\n try {\n this._target.removeChild(this._screen);\n } catch (e) {\n if (e.name === 'NotFoundError') {\n // Some cases where the initial connection fails\n // can disconnect before the _screen is created\n } else {\n throw e;\n }\n }\n clearTimeout(this._resizeTimeout);\n clearTimeout(this._mouseMoveTimer);\n Log.Debug(\"<< RFB.disconnect\");\n }\n\n _focusCanvas(event) {\n if (!this.focusOnClick) {\n return;\n }\n\n this.focus();\n }\n\n _setDesktopName(name) {\n this._fbName = name;\n this.dispatchEvent(new CustomEvent(\n \"desktopname\",\n { detail: { name: this._fbName } }));\n }\n\n _windowResize(event) {\n // If the window resized then our screen element might have\n // as well. Update the viewport dimensions.\n window.requestAnimationFrame(() => {\n this._updateClip();\n this._updateScale();\n });\n\n if (this._resizeSession) {\n // Request changing the resolution of the remote display to\n // the size of the local browser viewport.\n\n // In order to not send multiple requests before the browser-resize\n // is finished we wait 0.5 seconds before sending the request.\n clearTimeout(this._resizeTimeout);\n this._resizeTimeout = setTimeout(this._requestRemoteResize.bind(this), 500);\n }\n }\n\n // Update state of clipping in Display object, and make sure the\n // configured viewport matches the current screen size\n _updateClip() {\n const curClip = this._display.clipViewport;\n let newClip = this._clipViewport;\n\n if (this._scaleViewport) {\n // Disable viewport clipping if we are scaling\n newClip = false;\n }\n\n if (curClip !== newClip) {\n this._display.clipViewport = newClip;\n }\n\n if (newClip) {\n // When clipping is enabled, the screen is limited to\n // the size of the container.\n const size = this._screenSize();\n this._display.viewportChangeSize(size.w, size.h);\n this._fixScrollbars();\n }\n }\n\n _updateScale() {\n if (!this._scaleViewport) {\n this._display.scale = 1.0;\n } else {\n const size = this._screenSize();\n this._display.autoscale(size.w, size.h);\n }\n this._fixScrollbars();\n }\n\n // Requests a change of remote desktop size. This message is an extension\n // and may only be sent if we have received an ExtendedDesktopSize message\n _requestRemoteResize() {\n clearTimeout(this._resizeTimeout);\n this._resizeTimeout = null;\n\n if (!this._resizeSession || this._viewOnly ||\n !this._supportsSetDesktopSize) {\n return;\n }\n\n const size = this._screenSize();\n RFB.messages.setDesktopSize(this._sock,\n Math.floor(size.w), Math.floor(size.h),\n this._screenID, this._screenFlags);\n\n Log.Debug('Requested new desktop size: ' +\n size.w + 'x' + size.h);\n }\n\n // Gets the the size of the available screen\n _screenSize() {\n let r = this._screen.getBoundingClientRect();\n return { w: r.width, h: r.height };\n }\n\n _fixScrollbars() {\n // This is a hack because Chrome screws up the calculation\n // for when scrollbars are needed. So to fix it we temporarily\n // toggle them off and on.\n const orig = this._screen.style.overflow;\n this._screen.style.overflow = 'hidden';\n // Force Chrome to recalculate the layout by asking for\n // an element's dimensions\n this._screen.getBoundingClientRect();\n this._screen.style.overflow = orig;\n }\n\n /*\n * Connection states:\n * connecting\n * connected\n * disconnecting\n * disconnected - permanent state\n */\n _updateConnectionState(state) {\n const oldstate = this._rfbConnectionState;\n\n if (state === oldstate) {\n Log.Debug(\"Already in state '\" + state + \"', ignoring\");\n return;\n }\n\n // The 'disconnected' state is permanent for each RFB object\n if (oldstate === 'disconnected') {\n Log.Error(\"Tried changing state of a disconnected RFB object\");\n return;\n }\n\n // Ensure proper transitions before doing anything\n switch (state) {\n case 'connected':\n if (oldstate !== 'connecting') {\n Log.Error(\"Bad transition to connected state, \" +\n \"previous connection state: \" + oldstate);\n return;\n }\n break;\n\n case 'disconnected':\n if (oldstate !== 'disconnecting') {\n Log.Error(\"Bad transition to disconnected state, \" +\n \"previous connection state: \" + oldstate);\n return;\n }\n break;\n\n case 'connecting':\n if (oldstate !== '') {\n Log.Error(\"Bad transition to connecting state, \" +\n \"previous connection state: \" + oldstate);\n return;\n }\n break;\n\n case 'disconnecting':\n if (oldstate !== 'connected' && oldstate !== 'connecting') {\n Log.Error(\"Bad transition to disconnecting state, \" +\n \"previous connection state: \" + oldstate);\n return;\n }\n break;\n\n default:\n Log.Error(\"Unknown connection state: \" + state);\n return;\n }\n\n // State change actions\n\n this._rfbConnectionState = state;\n\n Log.Debug(\"New state '\" + state + \"', was '\" + oldstate + \"'.\");\n\n if (this._disconnTimer && state !== 'disconnecting') {\n Log.Debug(\"Clearing disconnect timer\");\n clearTimeout(this._disconnTimer);\n this._disconnTimer = null;\n\n // make sure we don't get a double event\n this._sock.off('close');\n }\n\n switch (state) {\n case 'connecting':\n this._connect();\n break;\n\n case 'connected':\n this.dispatchEvent(new CustomEvent(\"connect\", { detail: {} }));\n break;\n\n case 'disconnecting':\n this._disconnect();\n\n this._disconnTimer = setTimeout(() => {\n Log.Error(\"Disconnection timed out.\");\n this._updateConnectionState('disconnected');\n }, DISCONNECT_TIMEOUT * 1000);\n break;\n\n case 'disconnected':\n this.dispatchEvent(new CustomEvent(\n \"disconnect\", { detail:\n { clean: this._rfbCleanDisconnect } }));\n break;\n }\n }\n\n /* Print errors and disconnect\n *\n * The parameter 'details' is used for information that\n * should be logged but not sent to the user interface.\n */\n _fail(details) {\n switch (this._rfbConnectionState) {\n case 'disconnecting':\n Log.Error(\"Failed when disconnecting: \" + details);\n break;\n case 'connected':\n Log.Error(\"Failed while connected: \" + details);\n break;\n case 'connecting':\n Log.Error(\"Failed when connecting: \" + details);\n break;\n default:\n Log.Error(\"RFB failure: \" + details);\n break;\n }\n this._rfbCleanDisconnect = false; //This is sent to the UI\n\n // Transition to disconnected without waiting for socket to close\n this._updateConnectionState('disconnecting');\n this._updateConnectionState('disconnected');\n\n return false;\n }\n\n _setCapability(cap, val) {\n this._capabilities[cap] = val;\n this.dispatchEvent(new CustomEvent(\"capabilities\",\n { detail: { capabilities: this._capabilities } }));\n }\n\n _handleMessage() {\n if (this._sock.rQlen === 0) {\n Log.Warn(\"handleMessage called on an empty receive queue\");\n return;\n }\n\n switch (this._rfbConnectionState) {\n case 'disconnected':\n Log.Error(\"Got data while disconnected\");\n break;\n case 'connected':\n while (true) {\n if (this._flushing) {\n break;\n }\n if (!this._normalMsg()) {\n break;\n }\n if (this._sock.rQlen === 0) {\n break;\n }\n }\n break;\n default:\n this._initMsg();\n break;\n }\n }\n\n _handleKeyEvent(keysym, code, down) {\n this.sendKey(keysym, code, down);\n }\n\n _handleMouse(ev) {\n /*\n * We don't check connection status or viewOnly here as the\n * mouse events might be used to control the viewport\n */\n\n if (ev.type === 'click') {\n /*\n * Note: This is only needed for the 'click' event as it fails\n * to fire properly for the target element so we have\n * to listen on the document element instead.\n */\n if (ev.target !== this._canvas) {\n return;\n }\n }\n\n // FIXME: if we're in view-only and not dragging,\n // should we stop events?\n ev.stopPropagation();\n ev.preventDefault();\n\n if ((ev.type === 'click') || (ev.type === 'contextmenu')) {\n return;\n }\n\n let pos = clientToElement(ev.clientX, ev.clientY,\n this._canvas);\n\n switch (ev.type) {\n case 'mousedown':\n setCapture(this._canvas);\n this._handleMouseButton(pos.x, pos.y,\n true, 1 << ev.button);\n break;\n case 'mouseup':\n this._handleMouseButton(pos.x, pos.y,\n false, 1 << ev.button);\n break;\n case 'mousemove':\n this._handleMouseMove(pos.x, pos.y);\n break;\n }\n }\n\n _handleMouseButton(x, y, down, bmask) {\n if (this.dragViewport) {\n if (down && !this._viewportDragging) {\n this._viewportDragging = true;\n this._viewportDragPos = {'x': x, 'y': y};\n this._viewportHasMoved = false;\n\n // Skip sending mouse events\n return;\n } else {\n this._viewportDragging = false;\n\n // If we actually performed a drag then we are done\n // here and should not send any mouse events\n if (this._viewportHasMoved) {\n return;\n }\n\n // Otherwise we treat this as a mouse click event.\n // Send the button down event here, as the button up\n // event is sent at the end of this function.\n this._sendMouse(x, y, bmask);\n }\n }\n\n // Flush waiting move event first\n if (this._mouseMoveTimer !== null) {\n clearTimeout(this._mouseMoveTimer);\n this._mouseMoveTimer = null;\n this._sendMouse(x, y, this._mouseButtonMask);\n }\n\n if (down) {\n this._mouseButtonMask |= bmask;\n } else {\n this._mouseButtonMask &= ~bmask;\n }\n\n this._sendMouse(x, y, this._mouseButtonMask);\n }\n\n _handleMouseMove(x, y) {\n if (this._viewportDragging) {\n const deltaX = this._viewportDragPos.x - x;\n const deltaY = this._viewportDragPos.y - y;\n\n if (this._viewportHasMoved || (Math.abs(deltaX) > dragThreshold ||\n Math.abs(deltaY) > dragThreshold)) {\n this._viewportHasMoved = true;\n\n this._viewportDragPos = {'x': x, 'y': y};\n this._display.viewportChangePos(deltaX, deltaY);\n }\n\n // Skip sending mouse events\n return;\n }\n\n this._mousePos = { 'x': x, 'y': y };\n\n // Limit many mouse move events to one every MOUSE_MOVE_DELAY ms\n if (this._mouseMoveTimer == null) {\n\n const timeSinceLastMove = Date.now() - this._mouseLastMoveTime;\n if (timeSinceLastMove > MOUSE_MOVE_DELAY) {\n this._sendMouse(x, y, this._mouseButtonMask);\n this._mouseLastMoveTime = Date.now();\n } else {\n // Too soon since the latest move, wait the remaining time\n this._mouseMoveTimer = setTimeout(() => {\n this._handleDelayedMouseMove();\n }, MOUSE_MOVE_DELAY - timeSinceLastMove);\n }\n }\n }\n\n _handleDelayedMouseMove() {\n this._mouseMoveTimer = null;\n this._sendMouse(this._mousePos.x, this._mousePos.y,\n this._mouseButtonMask);\n this._mouseLastMoveTime = Date.now();\n }\n\n _sendMouse(x, y, mask) {\n if (this._rfbConnectionState !== 'connected') { return; }\n if (this._viewOnly) { return; } // View only, skip mouse events\n\n RFB.messages.pointerEvent(this._sock, this._display.absX(x),\n this._display.absY(y), mask);\n }\n\n _handleWheel(ev) {\n if (this._rfbConnectionState !== 'connected') { return; }\n if (this._viewOnly) { return; } // View only, skip mouse events\n\n ev.stopPropagation();\n ev.preventDefault();\n\n let pos = clientToElement(ev.clientX, ev.clientY,\n this._canvas);\n\n let dX = ev.deltaX;\n let dY = ev.deltaY;\n\n // Pixel units unless it's non-zero.\n // Note that if deltamode is line or page won't matter since we aren't\n // sending the mouse wheel delta to the server anyway.\n // The difference between pixel and line can be important however since\n // we have a threshold that can be smaller than the line height.\n if (ev.deltaMode !== 0) {\n dX *= WHEEL_LINE_HEIGHT;\n dY *= WHEEL_LINE_HEIGHT;\n }\n\n // Mouse wheel events are sent in steps over VNC. This means that the VNC\n // protocol can't handle a wheel event with specific distance or speed.\n // Therefor, if we get a lot of small mouse wheel events we combine them.\n this._accumulatedWheelDeltaX += dX;\n this._accumulatedWheelDeltaY += dY;\n\n // Generate a mouse wheel step event when the accumulated delta\n // for one of the axes is large enough.\n if (Math.abs(this._accumulatedWheelDeltaX) >= WHEEL_STEP) {\n if (this._accumulatedWheelDeltaX < 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 5);\n this._handleMouseButton(pos.x, pos.y, false, 1 << 5);\n } else if (this._accumulatedWheelDeltaX > 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 6);\n this._handleMouseButton(pos.x, pos.y, false, 1 << 6);\n }\n\n this._accumulatedWheelDeltaX = 0;\n }\n if (Math.abs(this._accumulatedWheelDeltaY) >= WHEEL_STEP) {\n if (this._accumulatedWheelDeltaY < 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 3);\n this._handleMouseButton(pos.x, pos.y, false, 1 << 3);\n } else if (this._accumulatedWheelDeltaY > 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 4);\n this._handleMouseButton(pos.x, pos.y, false, 1 << 4);\n }\n\n this._accumulatedWheelDeltaY = 0;\n }\n }\n\n _fakeMouseMove(ev, elementX, elementY) {\n this._handleMouseMove(elementX, elementY);\n this._cursor.move(ev.detail.clientX, ev.detail.clientY);\n }\n\n _handleTapEvent(ev, bmask) {\n let pos = clientToElement(ev.detail.clientX, ev.detail.clientY,\n this._canvas);\n\n // If the user quickly taps multiple times we assume they meant to\n // hit the same spot, so slightly adjust coordinates\n\n if ((this._gestureLastTapTime !== null) &&\n ((Date.now() - this._gestureLastTapTime) < DOUBLE_TAP_TIMEOUT) &&\n (this._gestureFirstDoubleTapEv.detail.type === ev.detail.type)) {\n let dx = this._gestureFirstDoubleTapEv.detail.clientX - ev.detail.clientX;\n let dy = this._gestureFirstDoubleTapEv.detail.clientY - ev.detail.clientY;\n let distance = Math.hypot(dx, dy);\n\n if (distance < DOUBLE_TAP_THRESHOLD) {\n pos = clientToElement(this._gestureFirstDoubleTapEv.detail.clientX,\n this._gestureFirstDoubleTapEv.detail.clientY,\n this._canvas);\n } else {\n this._gestureFirstDoubleTapEv = ev;\n }\n } else {\n this._gestureFirstDoubleTapEv = ev;\n }\n this._gestureLastTapTime = Date.now();\n\n this._fakeMouseMove(this._gestureFirstDoubleTapEv, pos.x, pos.y);\n this._handleMouseButton(pos.x, pos.y, true, bmask);\n this._handleMouseButton(pos.x, pos.y, false, bmask);\n }\n\n _handleGesture(ev) {\n let magnitude;\n\n let pos = clientToElement(ev.detail.clientX, ev.detail.clientY,\n this._canvas);\n switch (ev.type) {\n case 'gesturestart':\n switch (ev.detail.type) {\n case 'onetap':\n this._handleTapEvent(ev, 0x1);\n break;\n case 'twotap':\n this._handleTapEvent(ev, 0x4);\n break;\n case 'threetap':\n this._handleTapEvent(ev, 0x2);\n break;\n case 'drag':\n this._fakeMouseMove(ev, pos.x, pos.y);\n this._handleMouseButton(pos.x, pos.y, true, 0x1);\n break;\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n this._handleMouseButton(pos.x, pos.y, true, 0x4);\n break;\n\n case 'twodrag':\n this._gestureLastMagnitudeX = ev.detail.magnitudeX;\n this._gestureLastMagnitudeY = ev.detail.magnitudeY;\n this._fakeMouseMove(ev, pos.x, pos.y);\n break;\n case 'pinch':\n this._gestureLastMagnitudeX = Math.hypot(ev.detail.magnitudeX,\n ev.detail.magnitudeY);\n this._fakeMouseMove(ev, pos.x, pos.y);\n break;\n }\n break;\n\n case 'gesturemove':\n switch (ev.detail.type) {\n case 'onetap':\n case 'twotap':\n case 'threetap':\n break;\n case 'drag':\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n break;\n case 'twodrag':\n // Always scroll in the same position.\n // We don't know if the mouse was moved so we need to move it\n // every update.\n this._fakeMouseMove(ev, pos.x, pos.y);\n while ((ev.detail.magnitudeY - this._gestureLastMagnitudeY) > GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x8);\n this._handleMouseButton(pos.x, pos.y, false, 0x8);\n this._gestureLastMagnitudeY += GESTURE_SCRLSENS;\n }\n while ((ev.detail.magnitudeY - this._gestureLastMagnitudeY) < -GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x10);\n this._handleMouseButton(pos.x, pos.y, false, 0x10);\n this._gestureLastMagnitudeY -= GESTURE_SCRLSENS;\n }\n while ((ev.detail.magnitudeX - this._gestureLastMagnitudeX) > GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x20);\n this._handleMouseButton(pos.x, pos.y, false, 0x20);\n this._gestureLastMagnitudeX += GESTURE_SCRLSENS;\n }\n while ((ev.detail.magnitudeX - this._gestureLastMagnitudeX) < -GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x40);\n this._handleMouseButton(pos.x, pos.y, false, 0x40);\n this._gestureLastMagnitudeX -= GESTURE_SCRLSENS;\n }\n break;\n case 'pinch':\n // Always scroll in the same position.\n // We don't know if the mouse was moved so we need to move it\n // every update.\n this._fakeMouseMove(ev, pos.x, pos.y);\n magnitude = Math.hypot(ev.detail.magnitudeX, ev.detail.magnitudeY);\n if (Math.abs(magnitude - this._gestureLastMagnitudeX) > GESTURE_ZOOMSENS) {\n this._handleKeyEvent(KeyTable.XK_Control_L, \"ControlLeft\", true);\n while ((magnitude - this._gestureLastMagnitudeX) > GESTURE_ZOOMSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x8);\n this._handleMouseButton(pos.x, pos.y, false, 0x8);\n this._gestureLastMagnitudeX += GESTURE_ZOOMSENS;\n }\n while ((magnitude - this._gestureLastMagnitudeX) < -GESTURE_ZOOMSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x10);\n this._handleMouseButton(pos.x, pos.y, false, 0x10);\n this._gestureLastMagnitudeX -= GESTURE_ZOOMSENS;\n }\n }\n this._handleKeyEvent(KeyTable.XK_Control_L, \"ControlLeft\", false);\n break;\n }\n break;\n\n case 'gestureend':\n switch (ev.detail.type) {\n case 'onetap':\n case 'twotap':\n case 'threetap':\n case 'pinch':\n case 'twodrag':\n break;\n case 'drag':\n this._fakeMouseMove(ev, pos.x, pos.y);\n this._handleMouseButton(pos.x, pos.y, false, 0x1);\n break;\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n this._handleMouseButton(pos.x, pos.y, false, 0x4);\n break;\n }\n break;\n }\n }\n\n // Message Handlers\n\n _negotiateProtocolVersion() {\n if (this._sock.rQwait(\"version\", 12)) {\n return false;\n }\n\n const sversion = this._sock.rQshiftStr(12).substr(4, 7);\n Log.Info(\"Server ProtocolVersion: \" + sversion);\n let isRepeater = 0;\n switch (sversion) {\n case \"000.000\": // UltraVNC repeater\n isRepeater = 1;\n break;\n case \"003.003\":\n case \"003.006\": // UltraVNC\n case \"003.889\": // Apple Remote Desktop\n this._rfbVersion = 3.3;\n break;\n case \"003.007\":\n this._rfbVersion = 3.7;\n break;\n case \"003.008\":\n case \"004.000\": // Intel AMT KVM\n case \"004.001\": // RealVNC 4.6\n case \"005.000\": // RealVNC 5.3\n this._rfbVersion = 3.8;\n break;\n default:\n return this._fail(\"Invalid server version \" + sversion);\n }\n\n if (isRepeater) {\n let repeaterID = \"ID:\" + this._repeaterID;\n while (repeaterID.length < 250) {\n repeaterID += \"\\0\";\n }\n this._sock.sendString(repeaterID);\n return true;\n }\n\n if (this._rfbVersion > this._rfbMaxVersion) {\n this._rfbVersion = this._rfbMaxVersion;\n }\n\n const cversion = \"00\" + parseInt(this._rfbVersion, 10) +\n \".00\" + ((this._rfbVersion * 10) % 10);\n this._sock.sendString(\"RFB \" + cversion + \"\\n\");\n Log.Debug('Sent ProtocolVersion: ' + cversion);\n\n this._rfbInitState = 'Security';\n }\n\n _negotiateSecurity() {\n // Polyfill since IE and PhantomJS doesn't have\n // TypedArray.includes()\n function includes(item, array) {\n for (let i = 0; i < array.length; i++) {\n if (array[i] === item) {\n return true;\n }\n }\n return false;\n }\n\n if (this._rfbVersion >= 3.7) {\n // Server sends supported list, client decides\n const numTypes = this._sock.rQshift8();\n if (this._sock.rQwait(\"security type\", numTypes, 1)) { return false; }\n\n if (numTypes === 0) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"no security types\";\n this._securityStatus = 1;\n return this._initMsg();\n }\n\n const types = this._sock.rQshiftBytes(numTypes);\n Log.Debug(\"Server security types: \" + types);\n\n // Look for each auth in preferred order\n if (includes(1, types)) {\n this._rfbAuthScheme = 1; // None\n } else if (includes(22, types)) {\n this._rfbAuthScheme = 22; // XVP\n } else if (includes(16, types)) {\n this._rfbAuthScheme = 16; // Tight\n } else if (includes(2, types)) {\n this._rfbAuthScheme = 2; // VNC Auth\n } else if (includes(19, types)) {\n this._rfbAuthScheme = 19; // VeNCrypt Auth\n } else {\n return this._fail(\"Unsupported security types (types: \" + types + \")\");\n }\n\n this._sock.send([this._rfbAuthScheme]);\n } else {\n // Server decides\n if (this._sock.rQwait(\"security scheme\", 4)) { return false; }\n this._rfbAuthScheme = this._sock.rQshift32();\n\n if (this._rfbAuthScheme == 0) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"authentication scheme\";\n this._securityStatus = 1;\n return this._initMsg();\n }\n }\n\n this._rfbInitState = 'Authentication';\n Log.Debug('Authenticating using scheme: ' + this._rfbAuthScheme);\n\n return this._initMsg(); // jump to authentication\n }\n\n _handleSecurityReason() {\n if (this._sock.rQwait(\"reason length\", 4)) {\n return false;\n }\n const strlen = this._sock.rQshift32();\n let reason = \"\";\n\n if (strlen > 0) {\n if (this._sock.rQwait(\"reason\", strlen, 4)) { return false; }\n reason = this._sock.rQshiftStr(strlen);\n }\n\n if (reason !== \"\") {\n this.dispatchEvent(new CustomEvent(\n \"securityfailure\",\n { detail: { status: this._securityStatus,\n reason: reason } }));\n\n return this._fail(\"Security negotiation failed on \" +\n this._securityContext +\n \" (reason: \" + reason + \")\");\n } else {\n this.dispatchEvent(new CustomEvent(\n \"securityfailure\",\n { detail: { status: this._securityStatus } }));\n\n return this._fail(\"Security negotiation failed on \" +\n this._securityContext);\n }\n }\n\n // authentication\n _negotiateXvpAuth() {\n if (this._rfbCredentials.username === undefined ||\n this._rfbCredentials.password === undefined ||\n this._rfbCredentials.target === undefined) {\n this.dispatchEvent(new CustomEvent(\n \"credentialsrequired\",\n { detail: { types: [\"username\", \"password\", \"target\"] } }));\n return false;\n }\n\n const xvpAuthStr = String.fromCharCode(this._rfbCredentials.username.length) +\n String.fromCharCode(this._rfbCredentials.target.length) +\n this._rfbCredentials.username +\n this._rfbCredentials.target;\n this._sock.sendString(xvpAuthStr);\n this._rfbAuthScheme = 2;\n return this._negotiateAuthentication();\n }\n\n // VeNCrypt authentication, currently only supports version 0.2 and only Plain subtype\n _negotiateVeNCryptAuth() {\n\n // waiting for VeNCrypt version\n if (this._rfbVeNCryptState == 0) {\n if (this._sock.rQwait(\"vencrypt version\", 2)) { return false; }\n\n const major = this._sock.rQshift8();\n const minor = this._sock.rQshift8();\n\n if (!(major == 0 && minor == 2)) {\n return this._fail(\"Unsupported VeNCrypt version \" + major + \".\" + minor);\n }\n\n this._sock.send([0, 2]);\n this._rfbVeNCryptState = 1;\n }\n\n // waiting for ACK\n if (this._rfbVeNCryptState == 1) {\n if (this._sock.rQwait(\"vencrypt ack\", 1)) { return false; }\n\n const res = this._sock.rQshift8();\n\n if (res != 0) {\n return this._fail(\"VeNCrypt failure \" + res);\n }\n\n this._rfbVeNCryptState = 2;\n }\n // must fall through here (i.e. no \"else if\"), beacause we may have already received\n // the subtypes length and won't be called again\n\n if (this._rfbVeNCryptState == 2) { // waiting for subtypes length\n if (this._sock.rQwait(\"vencrypt subtypes length\", 1)) { return false; }\n\n const subtypesLength = this._sock.rQshift8();\n if (subtypesLength < 1) {\n return this._fail(\"VeNCrypt subtypes empty\");\n }\n\n this._rfbVeNCryptSubtypesLength = subtypesLength;\n this._rfbVeNCryptState = 3;\n }\n\n // waiting for subtypes list\n if (this._rfbVeNCryptState == 3) {\n if (this._sock.rQwait(\"vencrypt subtypes\", 4 * this._rfbVeNCryptSubtypesLength)) { return false; }\n\n const subtypes = [];\n for (let i = 0; i < this._rfbVeNCryptSubtypesLength; i++) {\n subtypes.push(this._sock.rQshift32());\n }\n\n // 256 = Plain subtype\n if (subtypes.indexOf(256) != -1) {\n // 0x100 = 256\n this._sock.send([0, 0, 1, 0]);\n this._rfbVeNCryptState = 4;\n } else {\n return this._fail(\"VeNCrypt Plain subtype not offered by server\");\n }\n }\n\n // negotiated Plain subtype, server waits for password\n if (this._rfbVeNCryptState == 4) {\n if (!this._rfbCredentials.username ||\n !this._rfbCredentials.password) {\n this.dispatchEvent(new CustomEvent(\n \"credentialsrequired\",\n { detail: { types: [\"username\", \"password\"] } }));\n return false;\n }\n\n const user = encodeUTF8(this._rfbCredentials.username);\n const pass = encodeUTF8(this._rfbCredentials.password);\n\n // XXX we assume lengths are <= 255 (should not be an issue in the real world)\n this._sock.send([0, 0, 0, user.length]);\n this._sock.send([0, 0, 0, pass.length]);\n this._sock.sendString(user);\n this._sock.sendString(pass);\n\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n }\n\n _negotiateStdVNCAuth() {\n if (this._sock.rQwait(\"auth challenge\", 16)) { return false; }\n\n if (this._rfbCredentials.password === undefined) {\n this.dispatchEvent(new CustomEvent(\n \"credentialsrequired\",\n { detail: { types: [\"password\"] } }));\n return false;\n }\n\n // TODO(directxman12): make genDES not require an Array\n const challenge = Array.prototype.slice.call(this._sock.rQshiftBytes(16));\n const response = RFB.genDES(this._rfbCredentials.password, challenge);\n this._sock.send(response);\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n\n _negotiateTightUnixAuth() {\n if (this._rfbCredentials.username === undefined ||\n this._rfbCredentials.password === undefined) {\n this.dispatchEvent(new CustomEvent(\n \"credentialsrequired\",\n { detail: { types: [\"username\", \"password\"] } }));\n return false;\n }\n\n this._sock.send([0, 0, 0, this._rfbCredentials.username.length]);\n this._sock.send([0, 0, 0, this._rfbCredentials.password.length]);\n this._sock.sendString(this._rfbCredentials.username);\n this._sock.sendString(this._rfbCredentials.password);\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n\n _negotiateTightTunnels(numTunnels) {\n const clientSupportedTunnelTypes = {\n 0: { vendor: 'TGHT', signature: 'NOTUNNEL' }\n };\n const serverSupportedTunnelTypes = {};\n // receive tunnel capabilities\n for (let i = 0; i < numTunnels; i++) {\n const capCode = this._sock.rQshift32();\n const capVendor = this._sock.rQshiftStr(4);\n const capSignature = this._sock.rQshiftStr(8);\n serverSupportedTunnelTypes[capCode] = { vendor: capVendor, signature: capSignature };\n }\n\n Log.Debug(\"Server Tight tunnel types: \" + serverSupportedTunnelTypes);\n\n // Siemens touch panels have a VNC server that supports NOTUNNEL,\n // but forgets to advertise it. Try to detect such servers by\n // looking for their custom tunnel type.\n if (serverSupportedTunnelTypes[1] &&\n (serverSupportedTunnelTypes[1].vendor === \"SICR\") &&\n (serverSupportedTunnelTypes[1].signature === \"SCHANNEL\")) {\n Log.Debug(\"Detected Siemens server. Assuming NOTUNNEL support.\");\n serverSupportedTunnelTypes[0] = { vendor: 'TGHT', signature: 'NOTUNNEL' };\n }\n\n // choose the notunnel type\n if (serverSupportedTunnelTypes[0]) {\n if (serverSupportedTunnelTypes[0].vendor != clientSupportedTunnelTypes[0].vendor ||\n serverSupportedTunnelTypes[0].signature != clientSupportedTunnelTypes[0].signature) {\n return this._fail(\"Client's tunnel type had the incorrect \" +\n \"vendor or signature\");\n }\n Log.Debug(\"Selected tunnel type: \" + clientSupportedTunnelTypes[0]);\n this._sock.send([0, 0, 0, 0]); // use NOTUNNEL\n return false; // wait until we receive the sub auth count to continue\n } else {\n return this._fail(\"Server wanted tunnels, but doesn't support \" +\n \"the notunnel type\");\n }\n }\n\n _negotiateTightAuth() {\n if (!this._rfbTightVNC) { // first pass, do the tunnel negotiation\n if (this._sock.rQwait(\"num tunnels\", 4)) { return false; }\n const numTunnels = this._sock.rQshift32();\n if (numTunnels > 0 && this._sock.rQwait(\"tunnel capabilities\", 16 * numTunnels, 4)) { return false; }\n\n this._rfbTightVNC = true;\n\n if (numTunnels > 0) {\n this._negotiateTightTunnels(numTunnels);\n return false; // wait until we receive the sub auth to continue\n }\n }\n\n // second pass, do the sub-auth negotiation\n if (this._sock.rQwait(\"sub auth count\", 4)) { return false; }\n const subAuthCount = this._sock.rQshift32();\n if (subAuthCount === 0) { // empty sub-auth list received means 'no auth' subtype selected\n this._rfbInitState = 'SecurityResult';\n return true;\n }\n\n if (this._sock.rQwait(\"sub auth capabilities\", 16 * subAuthCount, 4)) { return false; }\n\n const clientSupportedTypes = {\n 'STDVNOAUTH__': 1,\n 'STDVVNCAUTH_': 2,\n 'TGHTULGNAUTH': 129\n };\n\n const serverSupportedTypes = [];\n\n for (let i = 0; i < subAuthCount; i++) {\n this._sock.rQshift32(); // capNum\n const capabilities = this._sock.rQshiftStr(12);\n serverSupportedTypes.push(capabilities);\n }\n\n Log.Debug(\"Server Tight authentication types: \" + serverSupportedTypes);\n\n for (let authType in clientSupportedTypes) {\n if (serverSupportedTypes.indexOf(authType) != -1) {\n this._sock.send([0, 0, 0, clientSupportedTypes[authType]]);\n Log.Debug(\"Selected authentication type: \" + authType);\n\n switch (authType) {\n case 'STDVNOAUTH__': // no auth\n this._rfbInitState = 'SecurityResult';\n return true;\n case 'STDVVNCAUTH_': // VNC auth\n this._rfbAuthScheme = 2;\n return this._initMsg();\n case 'TGHTULGNAUTH': // UNIX auth\n this._rfbAuthScheme = 129;\n return this._initMsg();\n default:\n return this._fail(\"Unsupported tiny auth scheme \" +\n \"(scheme: \" + authType + \")\");\n }\n }\n }\n\n return this._fail(\"No supported sub-auth types!\");\n }\n\n _negotiateAuthentication() {\n switch (this._rfbAuthScheme) {\n case 1: // no auth\n if (this._rfbVersion >= 3.8) {\n this._rfbInitState = 'SecurityResult';\n return true;\n }\n this._rfbInitState = 'ClientInitialisation';\n return this._initMsg();\n\n case 22: // XVP auth\n return this._negotiateXvpAuth();\n\n case 2: // VNC authentication\n return this._negotiateStdVNCAuth();\n\n case 16: // TightVNC Security Type\n return this._negotiateTightAuth();\n\n case 19: // VeNCrypt Security Type\n return this._negotiateVeNCryptAuth();\n\n case 129: // TightVNC UNIX Security Type\n return this._negotiateTightUnixAuth();\n\n default:\n return this._fail(\"Unsupported auth scheme (scheme: \" +\n this._rfbAuthScheme + \")\");\n }\n }\n\n _handleSecurityResult() {\n if (this._sock.rQwait('VNC auth response ', 4)) { return false; }\n\n const status = this._sock.rQshift32();\n\n if (status === 0) { // OK\n this._rfbInitState = 'ClientInitialisation';\n Log.Debug('Authentication OK');\n return this._initMsg();\n } else {\n if (this._rfbVersion >= 3.8) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"security result\";\n this._securityStatus = status;\n return this._initMsg();\n } else {\n this.dispatchEvent(new CustomEvent(\n \"securityfailure\",\n { detail: { status: status } }));\n\n return this._fail(\"Security handshake failed\");\n }\n }\n }\n\n _negotiateServerInit() {\n if (this._sock.rQwait(\"server initialization\", 24)) { return false; }\n\n /* Screen size */\n const width = this._sock.rQshift16();\n const height = this._sock.rQshift16();\n\n /* PIXEL_FORMAT */\n const bpp = this._sock.rQshift8();\n const depth = this._sock.rQshift8();\n const bigEndian = this._sock.rQshift8();\n const trueColor = this._sock.rQshift8();\n\n const redMax = this._sock.rQshift16();\n const greenMax = this._sock.rQshift16();\n const blueMax = this._sock.rQshift16();\n const redShift = this._sock.rQshift8();\n const greenShift = this._sock.rQshift8();\n const blueShift = this._sock.rQshift8();\n this._sock.rQskipBytes(3); // padding\n\n // NB(directxman12): we don't want to call any callbacks or print messages until\n // *after* we're past the point where we could backtrack\n\n /* Connection name/title */\n const nameLength = this._sock.rQshift32();\n if (this._sock.rQwait('server init name', nameLength, 24)) { return false; }\n let name = this._sock.rQshiftStr(nameLength);\n name = decodeUTF8(name, true);\n\n if (this._rfbTightVNC) {\n if (this._sock.rQwait('TightVNC extended server init header', 8, 24 + nameLength)) { return false; }\n // In TightVNC mode, ServerInit message is extended\n const numServerMessages = this._sock.rQshift16();\n const numClientMessages = this._sock.rQshift16();\n const numEncodings = this._sock.rQshift16();\n this._sock.rQskipBytes(2); // padding\n\n const totalMessagesLength = (numServerMessages + numClientMessages + numEncodings) * 16;\n if (this._sock.rQwait('TightVNC extended server init header', totalMessagesLength, 32 + nameLength)) { return false; }\n\n // we don't actually do anything with the capability information that TIGHT sends,\n // so we just skip the all of this.\n\n // TIGHT server message capabilities\n this._sock.rQskipBytes(16 * numServerMessages);\n\n // TIGHT client message capabilities\n this._sock.rQskipBytes(16 * numClientMessages);\n\n // TIGHT encoding capabilities\n this._sock.rQskipBytes(16 * numEncodings);\n }\n\n // NB(directxman12): these are down here so that we don't run them multiple times\n // if we backtrack\n Log.Info(\"Screen: \" + width + \"x\" + height +\n \", bpp: \" + bpp + \", depth: \" + depth +\n \", bigEndian: \" + bigEndian +\n \", trueColor: \" + trueColor +\n \", redMax: \" + redMax +\n \", greenMax: \" + greenMax +\n \", blueMax: \" + blueMax +\n \", redShift: \" + redShift +\n \", greenShift: \" + greenShift +\n \", blueShift: \" + blueShift);\n\n // we're past the point where we could backtrack, so it's safe to call this\n this._setDesktopName(name);\n this._resize(width, height);\n\n if (!this._viewOnly) { this._keyboard.grab(); }\n\n this._fbDepth = 24;\n\n if (this._fbName === \"Intel(r) AMT KVM\") {\n Log.Warn(\"Intel AMT KVM only supports 8/16 bit depths. Using low color mode.\");\n this._fbDepth = 8;\n }\n\n RFB.messages.pixelFormat(this._sock, this._fbDepth, true);\n this._sendEncodings();\n RFB.messages.fbUpdateRequest(this._sock, false, 0, 0, this._fbWidth, this._fbHeight);\n\n this._updateConnectionState('connected');\n return true;\n }\n\n _sendEncodings() {\n const encs = [];\n\n // In preference order\n encs.push(encodings.encodingCopyRect);\n // Only supported with full depth support\n if (this._fbDepth == 24) {\n encs.push(encodings.encodingTight);\n encs.push(encodings.encodingTightPNG);\n encs.push(encodings.encodingHextile);\n encs.push(encodings.encodingRRE);\n }\n encs.push(encodings.encodingRaw);\n\n // Psuedo-encoding settings\n encs.push(encodings.pseudoEncodingQualityLevel0 + this._qualityLevel);\n encs.push(encodings.pseudoEncodingCompressLevel0 + this._compressionLevel);\n\n encs.push(encodings.pseudoEncodingDesktopSize);\n encs.push(encodings.pseudoEncodingLastRect);\n encs.push(encodings.pseudoEncodingQEMUExtendedKeyEvent);\n encs.push(encodings.pseudoEncodingExtendedDesktopSize);\n encs.push(encodings.pseudoEncodingXvp);\n encs.push(encodings.pseudoEncodingFence);\n encs.push(encodings.pseudoEncodingContinuousUpdates);\n encs.push(encodings.pseudoEncodingDesktopName);\n encs.push(encodings.pseudoEncodingExtendedClipboard);\n\n if (this._fbDepth == 24) {\n encs.push(encodings.pseudoEncodingVMwareCursor);\n encs.push(encodings.pseudoEncodingCursor);\n }\n\n RFB.messages.clientEncodings(this._sock, encs);\n }\n\n /* RFB protocol initialization states:\n * ProtocolVersion\n * Security\n * Authentication\n * SecurityResult\n * ClientInitialization - not triggered by server message\n * ServerInitialization\n */\n _initMsg() {\n switch (this._rfbInitState) {\n case 'ProtocolVersion':\n return this._negotiateProtocolVersion();\n\n case 'Security':\n return this._negotiateSecurity();\n\n case 'Authentication':\n return this._negotiateAuthentication();\n\n case 'SecurityResult':\n return this._handleSecurityResult();\n\n case 'SecurityReason':\n return this._handleSecurityReason();\n\n case 'ClientInitialisation':\n this._sock.send([this._shared ? 1 : 0]); // ClientInitialisation\n this._rfbInitState = 'ServerInitialisation';\n return true;\n\n case 'ServerInitialisation':\n return this._negotiateServerInit();\n\n default:\n return this._fail(\"Unknown init state (state: \" +\n this._rfbInitState + \")\");\n }\n }\n\n _handleSetColourMapMsg() {\n Log.Debug(\"SetColorMapEntries\");\n\n return this._fail(\"Unexpected SetColorMapEntries message\");\n }\n\n _handleServerCutText() {\n Log.Debug(\"ServerCutText\");\n\n if (this._sock.rQwait(\"ServerCutText header\", 7, 1)) { return false; }\n\n this._sock.rQskipBytes(3); // Padding\n\n let length = this._sock.rQshift32();\n length = toSigned32bit(length);\n\n if (this._sock.rQwait(\"ServerCutText content\", Math.abs(length), 8)) { return false; }\n\n if (length >= 0) {\n //Standard msg\n const text = this._sock.rQshiftStr(length);\n if (this._viewOnly) {\n return true;\n }\n\n this.dispatchEvent(new CustomEvent(\n \"clipboard\",\n { detail: { text: text } }));\n\n } else {\n //Extended msg.\n length = Math.abs(length);\n const flags = this._sock.rQshift32();\n let formats = flags & 0x0000FFFF;\n let actions = flags & 0xFF000000;\n\n let isCaps = (!!(actions & extendedClipboardActionCaps));\n if (isCaps) {\n this._clipboardServerCapabilitiesFormats = {};\n this._clipboardServerCapabilitiesActions = {};\n\n // Update our server capabilities for Formats\n for (let i = 0; i <= 15; i++) {\n let index = 1 << i;\n\n // Check if format flag is set.\n if ((formats & index)) {\n this._clipboardServerCapabilitiesFormats[index] = true;\n // We don't send unsolicited clipboard, so we\n // ignore the size\n this._sock.rQshift32();\n }\n }\n\n // Update our server capabilities for Actions\n for (let i = 24; i <= 31; i++) {\n let index = 1 << i;\n this._clipboardServerCapabilitiesActions[index] = !!(actions & index);\n }\n\n /* Caps handling done, send caps with the clients\n capabilities set as a response */\n let clientActions = [\n extendedClipboardActionCaps,\n extendedClipboardActionRequest,\n extendedClipboardActionPeek,\n extendedClipboardActionNotify,\n extendedClipboardActionProvide\n ];\n RFB.messages.extendedClipboardCaps(this._sock, clientActions, {extendedClipboardFormatText: 0});\n\n } else if (actions === extendedClipboardActionRequest) {\n if (this._viewOnly) {\n return true;\n }\n\n // Check if server has told us it can handle Provide and there is clipboard data to send.\n if (this._clipboardText != null &&\n this._clipboardServerCapabilitiesActions[extendedClipboardActionProvide]) {\n\n if (formats & extendedClipboardFormatText) {\n RFB.messages.extendedClipboardProvide(this._sock, [extendedClipboardFormatText], [this._clipboardText]);\n }\n }\n\n } else if (actions === extendedClipboardActionPeek) {\n if (this._viewOnly) {\n return true;\n }\n\n if (this._clipboardServerCapabilitiesActions[extendedClipboardActionNotify]) {\n\n if (this._clipboardText != null) {\n RFB.messages.extendedClipboardNotify(this._sock, [extendedClipboardFormatText]);\n } else {\n RFB.messages.extendedClipboardNotify(this._sock, []);\n }\n }\n\n } else if (actions === extendedClipboardActionNotify) {\n if (this._viewOnly) {\n return true;\n }\n\n if (this._clipboardServerCapabilitiesActions[extendedClipboardActionRequest]) {\n\n if (formats & extendedClipboardFormatText) {\n RFB.messages.extendedClipboardRequest(this._sock, [extendedClipboardFormatText]);\n }\n }\n\n } else if (actions === extendedClipboardActionProvide) {\n if (this._viewOnly) {\n return true;\n }\n\n if (!(formats & extendedClipboardFormatText)) {\n return true;\n }\n // Ignore what we had in our clipboard client side.\n this._clipboardText = null;\n\n // FIXME: Should probably verify that this data was actually requested\n let zlibStream = this._sock.rQshiftBytes(length - 4);\n let streamInflator = new Inflator();\n let textData = null;\n\n streamInflator.setInput(zlibStream);\n for (let i = 0; i <= 15; i++) {\n let format = 1 << i;\n\n if (formats & format) {\n\n let size = 0x00;\n let sizeArray = streamInflator.inflate(4);\n\n size |= (sizeArray[0] << 24);\n size |= (sizeArray[1] << 16);\n size |= (sizeArray[2] << 8);\n size |= (sizeArray[3]);\n let chunk = streamInflator.inflate(size);\n\n if (format === extendedClipboardFormatText) {\n textData = chunk;\n }\n }\n }\n streamInflator.setInput(null);\n\n if (textData !== null) {\n let tmpText = \"\";\n for (let i = 0; i < textData.length; i++) {\n tmpText += String.fromCharCode(textData[i]);\n }\n textData = tmpText;\n\n textData = decodeUTF8(textData);\n if ((textData.length > 0) && \"\\0\" === textData.charAt(textData.length - 1)) {\n textData = textData.slice(0, -1);\n }\n\n textData = textData.replace(\"\\r\\n\", \"\\n\");\n\n this.dispatchEvent(new CustomEvent(\n \"clipboard\",\n { detail: { text: textData } }));\n }\n } else {\n return this._fail(\"Unexpected action in extended clipboard message: \" + actions);\n }\n }\n return true;\n }\n\n _handleServerFenceMsg() {\n if (this._sock.rQwait(\"ServerFence header\", 8, 1)) { return false; }\n this._sock.rQskipBytes(3); // Padding\n let flags = this._sock.rQshift32();\n let length = this._sock.rQshift8();\n\n if (this._sock.rQwait(\"ServerFence payload\", length, 9)) { return false; }\n\n if (length > 64) {\n Log.Warn(\"Bad payload length (\" + length + \") in fence response\");\n length = 64;\n }\n\n const payload = this._sock.rQshiftStr(length);\n\n this._supportsFence = true;\n\n /*\n * Fence flags\n *\n * (1<<0) - BlockBefore\n * (1<<1) - BlockAfter\n * (1<<2) - SyncNext\n * (1<<31) - Request\n */\n\n if (!(flags & (1<<31))) {\n return this._fail(\"Unexpected fence response\");\n }\n\n // Filter out unsupported flags\n // FIXME: support syncNext\n flags &= (1<<0) | (1<<1);\n\n // BlockBefore and BlockAfter are automatically handled by\n // the fact that we process each incoming message\n // synchronuosly.\n RFB.messages.clientFence(this._sock, flags, payload);\n\n return true;\n }\n\n _handleXvpMsg() {\n if (this._sock.rQwait(\"XVP version and message\", 3, 1)) { return false; }\n this._sock.rQskipBytes(1); // Padding\n const xvpVer = this._sock.rQshift8();\n const xvpMsg = this._sock.rQshift8();\n\n switch (xvpMsg) {\n case 0: // XVP_FAIL\n Log.Error(\"XVP Operation Failed\");\n break;\n case 1: // XVP_INIT\n this._rfbXvpVer = xvpVer;\n Log.Info(\"XVP extensions enabled (version \" + this._rfbXvpVer + \")\");\n this._setCapability(\"power\", true);\n break;\n default:\n this._fail(\"Illegal server XVP message (msg: \" + xvpMsg + \")\");\n break;\n }\n\n return true;\n }\n\n _normalMsg() {\n let msgType;\n if (this._FBU.rects > 0) {\n msgType = 0;\n } else {\n msgType = this._sock.rQshift8();\n }\n\n let first, ret;\n switch (msgType) {\n case 0: // FramebufferUpdate\n ret = this._framebufferUpdate();\n if (ret && !this._enabledContinuousUpdates) {\n RFB.messages.fbUpdateRequest(this._sock, true, 0, 0,\n this._fbWidth, this._fbHeight);\n }\n return ret;\n\n case 1: // SetColorMapEntries\n return this._handleSetColourMapMsg();\n\n case 2: // Bell\n Log.Debug(\"Bell\");\n this.dispatchEvent(new CustomEvent(\n \"bell\",\n { detail: {} }));\n return true;\n\n case 3: // ServerCutText\n return this._handleServerCutText();\n\n case 150: // EndOfContinuousUpdates\n first = !this._supportsContinuousUpdates;\n this._supportsContinuousUpdates = true;\n this._enabledContinuousUpdates = false;\n if (first) {\n this._enabledContinuousUpdates = true;\n this._updateContinuousUpdates();\n Log.Info(\"Enabling continuous updates.\");\n } else {\n // FIXME: We need to send a framebufferupdaterequest here\n // if we add support for turning off continuous updates\n }\n return true;\n\n case 248: // ServerFence\n return this._handleServerFenceMsg();\n\n case 250: // XVP\n return this._handleXvpMsg();\n\n default:\n this._fail(\"Unexpected server message (type \" + msgType + \")\");\n Log.Debug(\"sock.rQslice(0, 30): \" + this._sock.rQslice(0, 30));\n return true;\n }\n }\n\n _onFlush() {\n this._flushing = false;\n // Resume processing\n if (this._sock.rQlen > 0) {\n this._handleMessage();\n }\n }\n\n _framebufferUpdate() {\n if (this._FBU.rects === 0) {\n if (this._sock.rQwait(\"FBU header\", 3, 1)) { return false; }\n this._sock.rQskipBytes(1); // Padding\n this._FBU.rects = this._sock.rQshift16();\n\n // Make sure the previous frame is fully rendered first\n // to avoid building up an excessive queue\n if (this._display.pending()) {\n this._flushing = true;\n this._display.flush();\n return false;\n }\n }\n\n while (this._FBU.rects > 0) {\n if (this._FBU.encoding === null) {\n if (this._sock.rQwait(\"rect header\", 12)) { return false; }\n /* New FramebufferUpdate */\n\n const hdr = this._sock.rQshiftBytes(12);\n this._FBU.x = (hdr[0] << 8) + hdr[1];\n this._FBU.y = (hdr[2] << 8) + hdr[3];\n this._FBU.width = (hdr[4] << 8) + hdr[5];\n this._FBU.height = (hdr[6] << 8) + hdr[7];\n this._FBU.encoding = parseInt((hdr[8] << 24) + (hdr[9] << 16) +\n (hdr[10] << 8) + hdr[11], 10);\n }\n\n if (!this._handleRect()) {\n return false;\n }\n\n this._FBU.rects--;\n this._FBU.encoding = null;\n }\n\n this._display.flip();\n\n return true; // We finished this FBU\n }\n\n _handleRect() {\n switch (this._FBU.encoding) {\n case encodings.pseudoEncodingLastRect:\n this._FBU.rects = 1; // Will be decreased when we return\n return true;\n\n case encodings.pseudoEncodingVMwareCursor:\n return this._handleVMwareCursor();\n\n case encodings.pseudoEncodingCursor:\n return this._handleCursor();\n\n case encodings.pseudoEncodingQEMUExtendedKeyEvent:\n // Old Safari doesn't support creating keyboard events\n try {\n const keyboardEvent = document.createEvent(\"keyboardEvent\");\n if (keyboardEvent.code !== undefined) {\n this._qemuExtKeyEventSupported = true;\n }\n } catch (err) {\n // Do nothing\n }\n return true;\n\n case encodings.pseudoEncodingDesktopName:\n return this._handleDesktopName();\n\n case encodings.pseudoEncodingDesktopSize:\n this._resize(this._FBU.width, this._FBU.height);\n return true;\n\n case encodings.pseudoEncodingExtendedDesktopSize:\n return this._handleExtendedDesktopSize();\n\n default:\n return this._handleDataRect();\n }\n }\n\n _handleVMwareCursor() {\n const hotx = this._FBU.x; // hotspot-x\n const hoty = this._FBU.y; // hotspot-y\n const w = this._FBU.width;\n const h = this._FBU.height;\n if (this._sock.rQwait(\"VMware cursor encoding\", 1)) {\n return false;\n }\n\n const cursorType = this._sock.rQshift8();\n\n this._sock.rQshift8(); //Padding\n\n let rgba;\n const bytesPerPixel = 4;\n\n //Classic cursor\n if (cursorType == 0) {\n //Used to filter away unimportant bits.\n //OR is used for correct conversion in js.\n const PIXEL_MASK = 0xffffff00 | 0;\n rgba = new Array(w * h * bytesPerPixel);\n\n if (this._sock.rQwait(\"VMware cursor classic encoding\",\n (w * h * bytesPerPixel) * 2, 2)) {\n return false;\n }\n\n let andMask = new Array(w * h);\n for (let pixel = 0; pixel < (w * h); pixel++) {\n andMask[pixel] = this._sock.rQshift32();\n }\n\n let xorMask = new Array(w * h);\n for (let pixel = 0; pixel < (w * h); pixel++) {\n xorMask[pixel] = this._sock.rQshift32();\n }\n\n for (let pixel = 0; pixel < (w * h); pixel++) {\n if (andMask[pixel] == 0) {\n //Fully opaque pixel\n let bgr = xorMask[pixel];\n let r = bgr >> 8 & 0xff;\n let g = bgr >> 16 & 0xff;\n let b = bgr >> 24 & 0xff;\n\n rgba[(pixel * bytesPerPixel) ] = r; //r\n rgba[(pixel * bytesPerPixel) + 1 ] = g; //g\n rgba[(pixel * bytesPerPixel) + 2 ] = b; //b\n rgba[(pixel * bytesPerPixel) + 3 ] = 0xff; //a\n\n } else if ((andMask[pixel] & PIXEL_MASK) ==\n PIXEL_MASK) {\n //Only screen value matters, no mouse colouring\n if (xorMask[pixel] == 0) {\n //Transparent pixel\n rgba[(pixel * bytesPerPixel) ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 1 ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 2 ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 3 ] = 0x00;\n\n } else if ((xorMask[pixel] & PIXEL_MASK) ==\n PIXEL_MASK) {\n //Inverted pixel, not supported in browsers.\n //Fully opaque instead.\n rgba[(pixel * bytesPerPixel) ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 1 ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 2 ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 3 ] = 0xff;\n\n } else {\n //Unhandled xorMask\n rgba[(pixel * bytesPerPixel) ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 1 ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 2 ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 3 ] = 0xff;\n }\n\n } else {\n //Unhandled andMask\n rgba[(pixel * bytesPerPixel) ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 1 ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 2 ] = 0x00;\n rgba[(pixel * bytesPerPixel) + 3 ] = 0xff;\n }\n }\n\n //Alpha cursor.\n } else if (cursorType == 1) {\n if (this._sock.rQwait(\"VMware cursor alpha encoding\",\n (w * h * 4), 2)) {\n return false;\n }\n\n rgba = new Array(w * h * bytesPerPixel);\n\n for (let pixel = 0; pixel < (w * h); pixel++) {\n let data = this._sock.rQshift32();\n\n rgba[(pixel * 4) ] = data >> 24 & 0xff; //r\n rgba[(pixel * 4) + 1 ] = data >> 16 & 0xff; //g\n rgba[(pixel * 4) + 2 ] = data >> 8 & 0xff; //b\n rgba[(pixel * 4) + 3 ] = data & 0xff; //a\n }\n\n } else {\n Log.Warn(\"The given cursor type is not supported: \"\n + cursorType + \" given.\");\n return false;\n }\n\n this._updateCursor(rgba, hotx, hoty, w, h);\n\n return true;\n }\n\n _handleCursor() {\n const hotx = this._FBU.x; // hotspot-x\n const hoty = this._FBU.y; // hotspot-y\n const w = this._FBU.width;\n const h = this._FBU.height;\n\n const pixelslength = w * h * 4;\n const masklength = Math.ceil(w / 8) * h;\n\n let bytes = pixelslength + masklength;\n if (this._sock.rQwait(\"cursor encoding\", bytes)) {\n return false;\n }\n\n // Decode from BGRX pixels + bit mask to RGBA\n const pixels = this._sock.rQshiftBytes(pixelslength);\n const mask = this._sock.rQshiftBytes(masklength);\n let rgba = new Uint8Array(w * h * 4);\n\n let pixIdx = 0;\n for (let y = 0; y < h; y++) {\n for (let x = 0; x < w; x++) {\n let maskIdx = y * Math.ceil(w / 8) + Math.floor(x / 8);\n let alpha = (mask[maskIdx] << (x % 8)) & 0x80 ? 255 : 0;\n rgba[pixIdx ] = pixels[pixIdx + 2];\n rgba[pixIdx + 1] = pixels[pixIdx + 1];\n rgba[pixIdx + 2] = pixels[pixIdx];\n rgba[pixIdx + 3] = alpha;\n pixIdx += 4;\n }\n }\n\n this._updateCursor(rgba, hotx, hoty, w, h);\n\n return true;\n }\n\n _handleDesktopName() {\n if (this._sock.rQwait(\"DesktopName\", 4)) {\n return false;\n }\n\n let length = this._sock.rQshift32();\n\n if (this._sock.rQwait(\"DesktopName\", length, 4)) {\n return false;\n }\n\n let name = this._sock.rQshiftStr(length);\n name = decodeUTF8(name, true);\n\n this._setDesktopName(name);\n\n return true;\n }\n\n _handleExtendedDesktopSize() {\n if (this._sock.rQwait(\"ExtendedDesktopSize\", 4)) {\n return false;\n }\n\n const numberOfScreens = this._sock.rQpeek8();\n\n let bytes = 4 + (numberOfScreens * 16);\n if (this._sock.rQwait(\"ExtendedDesktopSize\", bytes)) {\n return false;\n }\n\n const firstUpdate = !this._supportsSetDesktopSize;\n this._supportsSetDesktopSize = true;\n\n // Normally we only apply the current resize mode after a\n // window resize event. However there is no such trigger on the\n // initial connect. And we don't know if the server supports\n // resizing until we've gotten here.\n if (firstUpdate) {\n this._requestRemoteResize();\n }\n\n this._sock.rQskipBytes(1); // number-of-screens\n this._sock.rQskipBytes(3); // padding\n\n for (let i = 0; i < numberOfScreens; i += 1) {\n // Save the id and flags of the first screen\n if (i === 0) {\n this._screenID = this._sock.rQshiftBytes(4); // id\n this._sock.rQskipBytes(2); // x-position\n this._sock.rQskipBytes(2); // y-position\n this._sock.rQskipBytes(2); // width\n this._sock.rQskipBytes(2); // height\n this._screenFlags = this._sock.rQshiftBytes(4); // flags\n } else {\n this._sock.rQskipBytes(16);\n }\n }\n\n /*\n * The x-position indicates the reason for the change:\n *\n * 0 - server resized on its own\n * 1 - this client requested the resize\n * 2 - another client requested the resize\n */\n\n // We need to handle errors when we requested the resize.\n if (this._FBU.x === 1 && this._FBU.y !== 0) {\n let msg = \"\";\n // The y-position indicates the status code from the server\n switch (this._FBU.y) {\n case 1:\n msg = \"Resize is administratively prohibited\";\n break;\n case 2:\n msg = \"Out of resources\";\n break;\n case 3:\n msg = \"Invalid screen layout\";\n break;\n default:\n msg = \"Unknown reason\";\n break;\n }\n Log.Warn(\"Server did not accept the resize request: \"\n + msg);\n } else {\n this._resize(this._FBU.width, this._FBU.height);\n }\n\n return true;\n }\n\n _handleDataRect() {\n let decoder = this._decoders[this._FBU.encoding];\n if (!decoder) {\n this._fail(\"Unsupported encoding (encoding: \" +\n this._FBU.encoding + \")\");\n return false;\n }\n\n try {\n return decoder.decodeRect(this._FBU.x, this._FBU.y,\n this._FBU.width, this._FBU.height,\n this._sock, this._display,\n this._fbDepth);\n } catch (err) {\n this._fail(\"Error decoding rect: \" + err);\n return false;\n }\n }\n\n _updateContinuousUpdates() {\n if (!this._enabledContinuousUpdates) { return; }\n\n RFB.messages.enableContinuousUpdates(this._sock, true, 0, 0,\n this._fbWidth, this._fbHeight);\n }\n\n _resize(width, height) {\n this._fbWidth = width;\n this._fbHeight = height;\n\n this._display.resize(this._fbWidth, this._fbHeight);\n\n // Adjust the visible viewport based on the new dimensions\n this._updateClip();\n this._updateScale();\n\n this._updateContinuousUpdates();\n }\n\n _xvpOp(ver, op) {\n if (this._rfbXvpVer < ver) { return; }\n Log.Info(\"Sending XVP operation \" + op + \" (version \" + ver + \")\");\n RFB.messages.xvpOp(this._sock, ver, op);\n }\n\n _updateCursor(rgba, hotx, hoty, w, h) {\n this._cursorImage = {\n rgbaPixels: rgba,\n hotx: hotx, hoty: hoty, w: w, h: h,\n };\n this._refreshCursor();\n }\n\n _shouldShowDotCursor() {\n // Called when this._cursorImage is updated\n if (!this._showDotCursor) {\n // User does not want to see the dot, so...\n return false;\n }\n\n // The dot should not be shown if the cursor is already visible,\n // i.e. contains at least one not-fully-transparent pixel.\n // So iterate through all alpha bytes in rgba and stop at the\n // first non-zero.\n for (let i = 3; i < this._cursorImage.rgbaPixels.length; i += 4) {\n if (this._cursorImage.rgbaPixels[i]) {\n return false;\n }\n }\n\n // At this point, we know that the cursor is fully transparent, and\n // the user wants to see the dot instead of this.\n return true;\n }\n\n _refreshCursor() {\n if (this._rfbConnectionState !== \"connecting\" &&\n this._rfbConnectionState !== \"connected\") {\n return;\n }\n const image = this._shouldShowDotCursor() ? RFB.cursors.dot : this._cursorImage;\n this._cursor.change(image.rgbaPixels,\n image.hotx, image.hoty,\n image.w, image.h\n );\n }\n\n static genDES(password, challenge) {\n const passwordChars = password.split('').map(c => c.charCodeAt(0));\n return (new DES(passwordChars)).encrypt(challenge);\n }\n}\n\n// Class Methods\nRFB.messages = {\n keyEvent(sock, keysym, down) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 4; // msg-type\n buff[offset + 1] = down;\n\n buff[offset + 2] = 0;\n buff[offset + 3] = 0;\n\n buff[offset + 4] = (keysym >> 24);\n buff[offset + 5] = (keysym >> 16);\n buff[offset + 6] = (keysym >> 8);\n buff[offset + 7] = keysym;\n\n sock._sQlen += 8;\n sock.flush();\n },\n\n QEMUExtendedKeyEvent(sock, keysym, down, keycode) {\n function getRFBkeycode(xtScanCode) {\n const upperByte = (keycode >> 8);\n const lowerByte = (keycode & 0x00ff);\n if (upperByte === 0xe0 && lowerByte < 0x7f) {\n return lowerByte | 0x80;\n }\n return xtScanCode;\n }\n\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 255; // msg-type\n buff[offset + 1] = 0; // sub msg-type\n\n buff[offset + 2] = (down >> 8);\n buff[offset + 3] = down;\n\n buff[offset + 4] = (keysym >> 24);\n buff[offset + 5] = (keysym >> 16);\n buff[offset + 6] = (keysym >> 8);\n buff[offset + 7] = keysym;\n\n const RFBkeycode = getRFBkeycode(keycode);\n\n buff[offset + 8] = (RFBkeycode >> 24);\n buff[offset + 9] = (RFBkeycode >> 16);\n buff[offset + 10] = (RFBkeycode >> 8);\n buff[offset + 11] = RFBkeycode;\n\n sock._sQlen += 12;\n sock.flush();\n },\n\n pointerEvent(sock, x, y, mask) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 5; // msg-type\n\n buff[offset + 1] = mask;\n\n buff[offset + 2] = x >> 8;\n buff[offset + 3] = x;\n\n buff[offset + 4] = y >> 8;\n buff[offset + 5] = y;\n\n sock._sQlen += 6;\n sock.flush();\n },\n\n // Used to build Notify and Request data.\n _buildExtendedClipboardFlags(actions, formats) {\n let data = new Uint8Array(4);\n let formatFlag = 0x00000000;\n let actionFlag = 0x00000000;\n\n for (let i = 0; i < actions.length; i++) {\n actionFlag |= actions[i];\n }\n\n for (let i = 0; i < formats.length; i++) {\n formatFlag |= formats[i];\n }\n\n data[0] = actionFlag >> 24; // Actions\n data[1] = 0x00; // Reserved\n data[2] = 0x00; // Reserved\n data[3] = formatFlag; // Formats\n\n return data;\n },\n\n extendedClipboardProvide(sock, formats, inData) {\n // Deflate incomming data and their sizes\n let deflator = new Deflator();\n let dataToDeflate = [];\n\n for (let i = 0; i < formats.length; i++) {\n // We only support the format Text at this time\n if (formats[i] != extendedClipboardFormatText) {\n throw new Error(\"Unsupported extended clipboard format for Provide message.\");\n }\n\n // Change lone \\r or \\n into \\r\\n as defined in rfbproto\n inData[i] = inData[i].replace(/\\r\\n|\\r|\\n/gm, \"\\r\\n\");\n\n // Check if it already has \\0\n let text = encodeUTF8(inData[i] + \"\\0\");\n\n dataToDeflate.push( (text.length >> 24) & 0xFF,\n (text.length >> 16) & 0xFF,\n (text.length >> 8) & 0xFF,\n (text.length & 0xFF));\n\n for (let j = 0; j < text.length; j++) {\n dataToDeflate.push(text.charCodeAt(j));\n }\n }\n\n let deflatedData = deflator.deflate(new Uint8Array(dataToDeflate));\n\n // Build data to send\n let data = new Uint8Array(4 + deflatedData.length);\n data.set(RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionProvide],\n formats));\n data.set(deflatedData, 4);\n\n RFB.messages.clientCutText(sock, data, true);\n },\n\n extendedClipboardNotify(sock, formats) {\n let flags = RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionNotify],\n formats);\n RFB.messages.clientCutText(sock, flags, true);\n },\n\n extendedClipboardRequest(sock, formats) {\n let flags = RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionRequest],\n formats);\n RFB.messages.clientCutText(sock, flags, true);\n },\n\n extendedClipboardCaps(sock, actions, formats) {\n let formatKeys = Object.keys(formats);\n let data = new Uint8Array(4 + (4 * formatKeys.length));\n\n formatKeys.map(x => parseInt(x));\n formatKeys.sort((a, b) => a - b);\n\n data.set(RFB.messages._buildExtendedClipboardFlags(actions, []));\n\n let loopOffset = 4;\n for (let i = 0; i < formatKeys.length; i++) {\n data[loopOffset] = formats[formatKeys[i]] >> 24;\n data[loopOffset + 1] = formats[formatKeys[i]] >> 16;\n data[loopOffset + 2] = formats[formatKeys[i]] >> 8;\n data[loopOffset + 3] = formats[formatKeys[i]] >> 0;\n\n loopOffset += 4;\n data[3] |= (1 << formatKeys[i]); // Update our format flags\n }\n\n RFB.messages.clientCutText(sock, data, true);\n },\n\n clientCutText(sock, data, extended = false) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 6; // msg-type\n\n buff[offset + 1] = 0; // padding\n buff[offset + 2] = 0; // padding\n buff[offset + 3] = 0; // padding\n\n let length;\n if (extended) {\n length = toUnsigned32bit(-data.length);\n } else {\n length = data.length;\n }\n\n buff[offset + 4] = length >> 24;\n buff[offset + 5] = length >> 16;\n buff[offset + 6] = length >> 8;\n buff[offset + 7] = length;\n\n sock._sQlen += 8;\n\n // We have to keep track of from where in the data we begin creating the\n // buffer for the flush in the next iteration.\n let dataOffset = 0;\n\n let remaining = data.length;\n while (remaining > 0) {\n\n let flushSize = Math.min(remaining, (sock._sQbufferSize - sock._sQlen));\n for (let i = 0; i < flushSize; i++) {\n buff[sock._sQlen + i] = data[dataOffset + i];\n }\n\n sock._sQlen += flushSize;\n sock.flush();\n\n remaining -= flushSize;\n dataOffset += flushSize;\n }\n\n },\n\n setDesktopSize(sock, width, height, id, flags) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 251; // msg-type\n buff[offset + 1] = 0; // padding\n buff[offset + 2] = width >> 8; // width\n buff[offset + 3] = width;\n buff[offset + 4] = height >> 8; // height\n buff[offset + 5] = height;\n\n buff[offset + 6] = 1; // number-of-screens\n buff[offset + 7] = 0; // padding\n\n // screen array\n buff[offset + 8] = id >> 24; // id\n buff[offset + 9] = id >> 16;\n buff[offset + 10] = id >> 8;\n buff[offset + 11] = id;\n buff[offset + 12] = 0; // x-position\n buff[offset + 13] = 0;\n buff[offset + 14] = 0; // y-position\n buff[offset + 15] = 0;\n buff[offset + 16] = width >> 8; // width\n buff[offset + 17] = width;\n buff[offset + 18] = height >> 8; // height\n buff[offset + 19] = height;\n buff[offset + 20] = flags >> 24; // flags\n buff[offset + 21] = flags >> 16;\n buff[offset + 22] = flags >> 8;\n buff[offset + 23] = flags;\n\n sock._sQlen += 24;\n sock.flush();\n },\n\n clientFence(sock, flags, payload) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 248; // msg-type\n\n buff[offset + 1] = 0; // padding\n buff[offset + 2] = 0; // padding\n buff[offset + 3] = 0; // padding\n\n buff[offset + 4] = flags >> 24; // flags\n buff[offset + 5] = flags >> 16;\n buff[offset + 6] = flags >> 8;\n buff[offset + 7] = flags;\n\n const n = payload.length;\n\n buff[offset + 8] = n; // length\n\n for (let i = 0; i < n; i++) {\n buff[offset + 9 + i] = payload.charCodeAt(i);\n }\n\n sock._sQlen += 9 + n;\n sock.flush();\n },\n\n enableContinuousUpdates(sock, enable, x, y, width, height) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 150; // msg-type\n buff[offset + 1] = enable; // enable-flag\n\n buff[offset + 2] = x >> 8; // x\n buff[offset + 3] = x;\n buff[offset + 4] = y >> 8; // y\n buff[offset + 5] = y;\n buff[offset + 6] = width >> 8; // width\n buff[offset + 7] = width;\n buff[offset + 8] = height >> 8; // height\n buff[offset + 9] = height;\n\n sock._sQlen += 10;\n sock.flush();\n },\n\n pixelFormat(sock, depth, trueColor) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n let bpp;\n\n if (depth > 16) {\n bpp = 32;\n } else if (depth > 8) {\n bpp = 16;\n } else {\n bpp = 8;\n }\n\n const bits = Math.floor(depth/3);\n\n buff[offset] = 0; // msg-type\n\n buff[offset + 1] = 0; // padding\n buff[offset + 2] = 0; // padding\n buff[offset + 3] = 0; // padding\n\n buff[offset + 4] = bpp; // bits-per-pixel\n buff[offset + 5] = depth; // depth\n buff[offset + 6] = 0; // little-endian\n buff[offset + 7] = trueColor ? 1 : 0; // true-color\n\n buff[offset + 8] = 0; // red-max\n buff[offset + 9] = (1 << bits) - 1; // red-max\n\n buff[offset + 10] = 0; // green-max\n buff[offset + 11] = (1 << bits) - 1; // green-max\n\n buff[offset + 12] = 0; // blue-max\n buff[offset + 13] = (1 << bits) - 1; // blue-max\n\n buff[offset + 14] = bits * 2; // red-shift\n buff[offset + 15] = bits * 1; // green-shift\n buff[offset + 16] = bits * 0; // blue-shift\n\n buff[offset + 17] = 0; // padding\n buff[offset + 18] = 0; // padding\n buff[offset + 19] = 0; // padding\n\n sock._sQlen += 20;\n sock.flush();\n },\n\n clientEncodings(sock, encodings) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 2; // msg-type\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = encodings.length >> 8;\n buff[offset + 3] = encodings.length;\n\n let j = offset + 4;\n for (let i = 0; i < encodings.length; i++) {\n const enc = encodings[i];\n buff[j] = enc >> 24;\n buff[j + 1] = enc >> 16;\n buff[j + 2] = enc >> 8;\n buff[j + 3] = enc;\n\n j += 4;\n }\n\n sock._sQlen += j - offset;\n sock.flush();\n },\n\n fbUpdateRequest(sock, incremental, x, y, w, h) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n if (typeof(x) === \"undefined\") { x = 0; }\n if (typeof(y) === \"undefined\") { y = 0; }\n\n buff[offset] = 3; // msg-type\n buff[offset + 1] = incremental ? 1 : 0;\n\n buff[offset + 2] = (x >> 8) & 0xFF;\n buff[offset + 3] = x & 0xFF;\n\n buff[offset + 4] = (y >> 8) & 0xFF;\n buff[offset + 5] = y & 0xFF;\n\n buff[offset + 6] = (w >> 8) & 0xFF;\n buff[offset + 7] = w & 0xFF;\n\n buff[offset + 8] = (h >> 8) & 0xFF;\n buff[offset + 9] = h & 0xFF;\n\n sock._sQlen += 10;\n sock.flush();\n },\n\n xvpOp(sock, ver, op) {\n const buff = sock._sQ;\n const offset = sock._sQlen;\n\n buff[offset] = 250; // msg-type\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = ver;\n buff[offset + 3] = op;\n\n sock._sQlen += 4;\n sock.flush();\n }\n};\n\nRFB.cursors = {\n none: {\n rgbaPixels: new Uint8Array(),\n w: 0, h: 0,\n hotx: 0, hoty: 0,\n },\n\n dot: {\n /* eslint-disable indent */\n rgbaPixels: new Uint8Array([\n 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255,\n 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255,\n 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255,\n ]),\n /* eslint-enable indent */\n w: 3, h: 3,\n hotx: 1, hoty: 1,\n }\n};\n","import { render } from \"./NovncConsole.vue?vue&type=template&id=56da10be&scoped=true\"\nimport script from \"./NovncConsole.vue?vue&type=script&lang=js\"\nexport * from \"./NovncConsole.vue?vue&type=script&lang=js\"\n\nimport \"./NovncConsole.vue?vue&type=style&index=0&id=56da10be&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-56da10be\"]])\n\nexport default __exports__","<script>\nexport default {\n name: 'NovncConsoleItem',\n\n emits: ['send-keys', 'update'],\n\n props: {\n items: {\n type: Object,\n required: true,\n default: () => {\n return {};\n }\n },\n\n path: {\n type: Array,\n required: true,\n default: () => {\n return [];\n }\n },\n\n pos: {\n type: Number,\n required: true,\n default: 0,\n }\n },\n\n methods: {\n keysDown(key, pos) {\n this.addKeys({ key, pos });\n this.$emit('send-keys');\n },\n\n addKeys({ key, pos }) {\n this.$emit('update', { key, pos });\n },\n\n sendKeys() {\n this.$emit('send-keys');\n },\n\n getOpenStatus(key, pos) {\n return this.path[pos] === key;\n }\n }\n};\n</script>\n\n<template>\n <ul class=\"list-unstyled dropdown combination-keys__container\">\n <li\n v-for=\"(item, key) in items\"\n :key=\"key\"\n >\n <v-dropdown\n v-if=\"!!item.keys\"\n placement=\"right-start\"\n trigger=\"click\"\n :container=\"false\"\n >\n <span\n :class=\"{ open: getOpenStatus(key, pos) }\"\n class=\"p-10 hand\"\n @click=\"addKeys({ key, pos })\"\n >{{ item.label }}</span>\n\n <template #popper>\n <novnc-console-item\n :items=\"item.keys\"\n :path=\"path\"\n :pos=\"pos+1\"\n @update=\"addKeys\"\n @send-keys=\"sendKeys\"\n />\n </template>\n </v-dropdown>\n\n <span\n v-else\n class=\"p-10 hand\"\n @click=\"keysDown(key, pos)\"\n >{{ item.label }}</span>\n </li>\n </ul>\n</template>\n\n<style lang=\"scss\" scoped>\n .combination-keys__container {\n max-width: 60px;\n\n DIV, SPAN {\n display: block;\n text-align: center;\n }\n\n SPAN {\n border-radius: 3px;\n\n &:hover, &.open {\n color: var(--primary-hover-text);\n background: var(--primary-hover-bg);\n }\n }\n }\n</style>\n","import { render } from \"./NovncConsoleItem.vue?vue&type=template&id=11c334cb&scoped=true\"\nimport script from \"./NovncConsoleItem.vue?vue&type=script&lang=js\"\nexport * from \"./NovncConsoleItem.vue?vue&type=script&lang=js\"\n\nimport \"./NovncConsoleItem.vue?vue&type=style&index=0&id=11c334cb&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-11c334cb\"]])\n\nexport default __exports__","<script>\nimport { STEVE } from '@shell/config/types';\nimport Banner from '@components/Banner/Banner.vue';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport ModalWithCard from '@shell/components/ModalWithCard';\n\nconst PREFERED_SHORTCUT_KEYS = 'prefered-shortcut-keys';\n\nexport default {\n name: 'NovncConsoleCustomKeys',\n\n emits: ['close'],\n\n components: {\n ModalWithCard, Banner, AsyncButton\n },\n\n data() {\n return {\n keysRecord: [],\n addedShortcutKeys: [],\n preferredShortcutKeys: [],\n isRecording: false,\n };\n },\n\n computed: {\n savedShortcutKeys() {\n const preference = this.$store.getters['management/all'](STEVE.PREFERENCE);\n const preferedShortcutKeys = preference?.[0]?.data?.[PREFERED_SHORTCUT_KEYS];\n let out = [];\n\n if (!preferedShortcutKeys) {\n return out;\n }\n\n try {\n out = JSON.parse(preferedShortcutKeys);\n } catch (err) {\n this.$store.dispatch('growl/fromError', {\n title: this.t('generic.notification.title.error', { name: this.t('harvester.virtualMachine.detail.console.customShortcutKeys') }),\n err,\n }, { root: true });\n }\n\n return out;\n },\n\n displayedKeys() {\n const out = this.addedShortcutKeys.concat(this.preferredShortcutKeys).map((item) => {\n const out = item.map((K) => ` <code>${ K.key.charAt(0).toUpperCase() + K.key.slice(1) }</code>`);\n\n return out.join(',');\n });\n\n return out;\n },\n\n recordButton() {\n if (this.isRecording) {\n return 'harvester.virtualMachine.detail.console.record.stop';\n }\n\n return 'harvester.virtualMachine.detail.console.record.start';\n },\n\n keysRecordFormat() {\n if (!this.isRecording && this.keysRecord.length === 0) {\n return this.t('harvester.virtualMachine.detail.console.record.tips');\n }\n\n const out = this.keysRecord.map((item) => ` <code>${ item.key.charAt(0).toUpperCase() + item.key.slice(1) }</code>`);\n\n return `Keys: ${ out.join(',') }`;\n },\n\n canAdd() {\n const hasRecord = this.keysRecord.length > 0;\n let validationList = [].concat(this.preferredShortcutKeys, this.addedShortcutKeys);\n\n if (!hasRecord) {\n return false;\n }\n\n validationList.push(this.keysRecord);\n\n validationList = validationList.map((item) => {\n const out = item.map((K) => K.key);\n\n return out.join(',');\n });\n\n return validationList.length === new Set(validationList).size;\n },\n },\n\n watch: {\n savedShortcutKeys: {\n handler() {\n this.preferredShortcutKeys = [].concat(this.savedShortcutKeys) || [];\n },\n immediate: true\n },\n },\n\n methods: {\n closeRecordingModal() {\n window.removeEventListener('keydown', this.handleShortcut);\n this.$emit('close');\n },\n\n toggleRecording() {\n this.isRecording = !this.isRecording;\n\n if (this.isRecording) {\n this.keysRecord = [];\n window.addEventListener('keydown', this.handleShortcut);\n } else {\n window.removeEventListener('keydown', this.handleShortcut);\n }\n },\n\n handleShortcut(event) {\n event.preventDefault();\n\n const {\n key, keyCode, code, location, charCode\n } = event;\n\n this.keysRecord.push({\n key, keyCode, code, location, charCode\n });\n },\n\n addShortcutKey() {\n this.addedShortcutKeys.push([].concat(this.keysRecord));\n },\n\n removeKey(keys) {\n const key = keys.replace(/(\\s*)<code>|<\\/code>/g, '').replace(/\\s*,\\s*/g, ',');\n\n this.addedShortcutKeys = this.addedShortcutKeys.filter((item) => {\n const formatkey = item.map((K) => K.key.charAt(0).toUpperCase() + K.key.slice(1)).join(',');\n\n return formatkey !== key;\n });\n\n this.preferredShortcutKeys = this.preferredShortcutKeys.filter((item) => {\n const formatkey = item.map((K) => K.key.charAt(0).toUpperCase() + K.key.slice(1)).join(',');\n\n return formatkey !== key;\n });\n },\n\n async saveKeys(buttonCb) {\n const out = [].concat(this.preferredShortcutKeys, this.addedShortcutKeys);\n const preference = this.$store.getters['management/all'](STEVE.PREFERENCE)?.[0];\n\n try {\n preference.data[PREFERED_SHORTCUT_KEYS] = JSON.stringify(out);\n await preference.save();\n this.closeRecordingModal();\n buttonCb(true);\n } catch (err) {\n buttonCb(false);\n }\n },\n }\n};\n</script>\n\n<template>\n <ModalWithCard\n name=\"recordShortcutKeys\"\n :width=\"550\"\n >\n <template #title>\n <t k=\"harvester.virtualMachine.detail.console.customShortcutKeys\" />\n </template>\n\n <template #content>\n <div class=\"row\">\n <div class=\"col span-12\">\n <Banner color=\"info\">\n <span v-clean-html=\"keysRecordFormat\"></span>\n </Banner>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col span-12\">\n <button\n class=\"btn bg-primary\"\n @click=\"toggleRecording\"\n >\n <t :k=\"recordButton\" />\n <i\n class=\"icon icon-fw\"\n :class=\"isRecording ? 'icon-dot-open' : 'icon-dot'\"\n />\n </button>\n <button\n :disabled=\"!canAdd\"\n class=\"btn bg-primary\"\n @click=\"addShortcutKey\"\n >\n <t k=\"generic.add\" />\n </button>\n </div>\n </div>\n\n <hr>\n\n <div class=\"displayed-keys mt-20\">\n <h4\n v-clean-html=\"t('harvester.virtualMachine.detail.console.record.preferredKeys')\"\n class=\"text-default-text\"\n />\n\n <div class=\"displayed-banners\">\n <Banner\n v-for=\"(keys,index) in displayedKeys\"\n :key=\"index\"\n >\n <span v-clean-html=\"keys\"></span>\n </Banner>\n </div>\n </div>\n </template>\n\n <template #footer>\n <div class=\"actions\">\n <button\n class=\"btn role-secondary mr-20\"\n @click.prevent=\"closeRecordingModal\"\n >\n <t k=\"generic.close\" />\n </button>\n <AsyncButton\n mode=\"done\"\n @click=\"saveKeys\"\n />\n </div>\n </template>\n </ModalWithCard>\n</template>\n\n<style lang=\"scss\" scoped>\n .displayed-keys {\n .banner {\n margin: 0;\n }\n }\n\n .displayed-banners {\n max-height: 155px;\n overflow: auto;\n }\n\n .actions {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n }\n</style>\n","import { render } from \"./NovncConsoleCustomKeys.vue?vue&type=template&id=7821dcb9&scoped=true\"\nimport script from \"./NovncConsoleCustomKeys.vue?vue&type=script&lang=js\"\nexport * from \"./NovncConsoleCustomKeys.vue?vue&type=script&lang=js\"\n\nimport \"./NovncConsoleCustomKeys.vue?vue&type=style&index=0&id=7821dcb9&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7821dcb9\"]])\n\nexport default __exports__","import { render } from \"./NovncConsoleWrapper.vue?vue&type=template&id=55ed4d1a&scoped=true\"\nimport script from \"./NovncConsoleWrapper.vue?vue&type=script&lang=js\"\nexport * from \"./NovncConsoleWrapper.vue?vue&type=script&lang=js\"\n\nimport \"./NovncConsoleWrapper.vue?vue&type=style&index=0&id=55ed4d1a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-55ed4d1a\"]])\n\nexport default __exports__","import { render } from \"./vnc.vue?vue&type=template&id=ae3e3f90\"\nimport script from \"./vnc.vue?vue&type=script&lang=js\"\nexport * from \"./vnc.vue?vue&type=script&lang=js\"\n\nimport \"./vnc.vue?vue&type=style&index=0&id=ae3e3f90&lang=css\"\n\nimport exportComponent from \"../../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceList from '@shell/components/ResourceList/index.vue';\n\nexport default {\n name: 'HarvesterResourcedList',\n components: { ResourceList },\n};\n</script>\n\n<template>\n <ResourceList />\n</template>\n","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Loading from '@shell/components/Loading';\nimport Masthead from './Masthead';\nimport ResourceLoadingIndicator from './ResourceLoadingIndicator';\nimport ResourceFetch from '@shell/mixins/resource-fetch';\nimport IconMessage from '@shell/components/IconMessage.vue';\nimport { ResourceListComponentName } from './resource-list.config';\nimport { PanelLocation, ExtensionPoint } from '@shell/core/types';\nimport ExtensionPanel from '@shell/components/ExtensionPanel';\nimport { sameContents } from '@shell/utils/array';\n\nexport default {\n name: ResourceListComponentName,\n\n components: {\n Loading,\n ResourceTable,\n Masthead,\n ResourceLoadingIndicator,\n IconMessage,\n ExtensionPanel\n },\n mixins: [ResourceFetch],\n\n props: {\n hasAdvancedFiltering: {\n type: Boolean,\n default: false\n },\n advFilterHideLabelsAsCols: {\n type: Boolean,\n default: false\n },\n advFilterPreventFilteringLabels: {\n type: Boolean,\n default: false\n },\n },\n\n async fetch() {\n const store = this.$store;\n const resource = this.resource;\n\n const schema = this.schema;\n\n if ( this.hasListComponent ) {\n // If you provide your own list then call its fetch\n const importer = this.listComponent;\n\n const component = await importer.__asyncLoader();\n\n if ( component?.typeDisplay ) {\n this.customTypeDisplay = component.typeDisplay.apply(this);\n }\n\n // Is the custom component responsible fetching the resources?\n // - Component has a fetch method - legacy method. fetch will handle the requests\n // - Component contains the PaginatedResourceTable component - go forward method. PaginatedResourceTable owns fetching the resources\n if ( component?.fetch || component?.components?.['PaginatedResourceTable']) {\n this.componentWillFetch = true;\n }\n\n // If the custom component supports it, ask it what resources it loads, so we can\n // use the incremental loading indicator when enabled\n if (component?.$loadingResources) {\n const { loadResources, loadIndeterminate } = component?.$loadingResources(this.$route, this.$store);\n\n this.loadResources = loadResources || [resource];\n this.loadIndeterminate = loadIndeterminate || false;\n }\n }\n\n if ( !this.componentWillFetch ) {\n if ( !schema ) {\n store.dispatch('loadingError', new Error(this.t('nav.failWhale.resourceListNotFound', { resource }, true)));\n\n return;\n }\n\n // See comment for `namespaceFilter` and `pagination` watchers, skip fetch if we're not ready yet... and something is going to call fetch later on\n if (!this.namespaceFilterRequired && (!this.canPaginate || this.refreshFlag)) {\n await this.$fetchType(resource);\n }\n }\n },\n\n data() {\n const getters = this.$store.getters;\n const params = { ...this.$route.params };\n const resource = params.resource;\n\n const hasListComponent = getters['type-map/hasCustomList'](resource);\n\n const inStore = getters['currentStore'](resource);\n const schema = getters[`${ inStore }/schemaFor`](resource);\n\n const showMasthead = getters[`type-map/optionsFor`](resource).showListMasthead;\n\n return {\n schema,\n hasListComponent,\n showMasthead: showMasthead === undefined ? true : showMasthead,\n resource,\n extensionType: ExtensionPoint.PANEL,\n extensionLocation: PanelLocation.RESOURCE_LIST,\n loadResources: [resource], // List of resources that will be loaded, this could be many (`Workloads`)\n /**\n * Will the custom component handle the fetch of resources....\n * or will this instance fetch resources\n */\n componentWillFetch: false,\n // manual refresh\n manualRefreshInit: false,\n watch: false,\n force: false,\n // Provided by fetch later\n customTypeDisplay: null,\n // incremental loading\n loadIndeterminate: false,\n // query param for simple filtering\n useQueryParamsForSimpleFiltering: true,\n };\n },\n\n computed: {\n headers() {\n if ( this.hasListComponent || !this.schema ) {\n // Custom lists figure out their own headers\n return [];\n }\n\n return this.$store.getters['type-map/headersFor'](this.schema, this.canPaginate);\n },\n\n groupBy() {\n return this.$store.getters['type-map/groupByFor'](this.schema);\n },\n\n showIncrementalLoadingIndicator() {\n return this.perfConfig?.incrementalLoading?.enabled;\n },\n\n },\n\n watch: {\n\n /**\n * When a NS filter is required and the user selects a different one, kick off a new set of API requests\n *\n * ResourceList has two modes\n * 1) ResourceList component handles API request to fetch resources\n * 2) Custom list component handles API request to fetch resources\n *\n * This covers case 1\n */\n namespaceFilter(neu, old) {\n if (neu && !this.componentWillFetch) {\n if (sameContents(neu, old)) {\n return;\n }\n\n this.$fetchType(this.resource);\n }\n },\n\n /**\n * When a pagination is required and the user changes page / sort / filter, kick off a new set of API requests\n *\n * ResourceList has two modes\n * 1) ResourceList component handles API request to fetch resources\n * 2) Custom list component handles API request to fetch resources\n *\n * This covers case 1\n */\n pagination(neu, old) {\n if (neu && !this.componentWillFetch && !this.paginationEqual(neu, old)) {\n this.$fetchType(this.resource);\n }\n },\n\n /**\n * Monitor the rows to ensure deleting the last entry in a server-side paginated page doesn't\n * result in an empty page\n */\n rows(neu) {\n if (!this.pagination) {\n return;\n }\n\n if (this.pagination.page > 1 && neu.length === 0) {\n this.setPagination({\n ...this.pagination,\n page: this.pagination.page - 1\n });\n }\n },\n },\n\n created() {\n let listComponent = false;\n\n const resource = this.$route.params.resource;\n const hasListComponent = this.$store.getters['type-map/hasCustomList'](resource);\n\n if ( hasListComponent ) {\n listComponent = this.$store.getters['type-map/importList'](resource);\n }\n\n this.listComponent = listComponent;\n },\n};\n</script>\n\n<template>\n <IconMessage\n v-if=\"namespaceFilterRequired\"\n :vertical=\"true\"\n :subtle=\"false\"\n icon=\"icon-filter_alt\"\n >\n <template #message>\n {{ t('resourceList.nsFiltering') }}\n </template>\n </IconMessage>\n <IconMessage\n v-else-if=\"paginationNsFilterRequired\"\n :vertical=\"true\"\n :subtle=\"false\"\n icon=\"icon-filter_alt\"\n >\n <template #message>\n {{ t('resourceList.nsFilteringGeneric') }}\n </template>\n </IconMessage>\n <div\n v-else\n class=\"outlet\"\n >\n <Masthead\n v-if=\"showMasthead\"\n :type-display=\"customTypeDisplay\"\n :schema=\"schema\"\n :resource=\"resource\"\n :show-incremental-loading-indicator=\"showIncrementalLoadingIndicator\"\n :load-resources=\"loadResources\"\n :load-indeterminate=\"loadIndeterminate\"\n >\n <template #extraActions>\n <slot name=\"extraActions\" />\n </template>\n </Masthead>\n <!-- Extensions area -->\n <ExtensionPanel\n :resource=\"{}\"\n :type=\"extensionType\"\n :location=\"extensionLocation\"\n />\n\n <div\n v-if=\"hasListComponent\"\n >\n <component\n :is=\"listComponent\"\n :incremental-loading-indicator=\"showIncrementalLoadingIndicator\"\n :rows=\"rows\"\n v-bind=\"$data\"\n />\n </div>\n <ResourceTable\n v-else\n :schema=\"schema\"\n :rows=\"rows\"\n :alt-loading=\"canPaginate && !isFirstLoad\"\n :loading=\"loading\"\n :headers=\"headers\"\n :group-by=\"groupBy\"\n :has-advanced-filtering=\"hasAdvancedFiltering\"\n :adv-filter-hide-labels-as-cols=\"advFilterHideLabelsAsCols\"\n :adv-filter-prevent-filtering-labels=\"advFilterPreventFilteringLabels\"\n :use-query-params-for-simple-filtering=\"useQueryParamsForSimpleFiltering\"\n :force-update-live-and-delayed=\"forceUpdateLiveAndDelayed\"\n :external-pagination-enabled=\"canPaginate\"\n :external-pagination-result=\"paginationResult\"\n @pagination-changed=\"paginationChanged\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .header {\n position: relative;\n }\n H2 {\n position: relative;\n margin: 0 0 20px 0;\n }\n .filter{\n line-height: 45px;\n }\n .right-action {\n position: absolute;\n top: 10px;\n right: 10px;\n }\n</style>\n","<script>\nexport default {\n props: {\n vertical: {\n type: Boolean,\n default: false,\n },\n icon: {\n type: String,\n required: true,\n },\n iconState: {\n type: String,\n default: null\n },\n message: {\n type: String,\n default: null\n },\n messageKey: {\n type: String,\n default: null\n },\n subtle: {\n type: Boolean,\n default: false,\n }\n },\n};\n</script>\n\n<template>\n <div\n class=\"message-icon\"\n :class=\"{'vertical': vertical, 'subtle': subtle}\"\n >\n <i\n class=\"icon\"\n :class=\"{ [icon]: true, [iconState]: !!iconState}\"\n />\n <div class=\"message\">\n <slot name=\"message\">\n <template v-if=\"messageKey\">\n {{ t(messageKey) }}\n </template>\n <template v-else>\n {{ message }}\n </template>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .vertical {\n flex-direction: column;\n width: 100%;\n }\n\n .subtle {\n opacity: 0.7;\n }\n\n .message-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n flex-direction: column;\n\n > I {\n font-size: 64px;\n margin-bottom: 20px;\n\n &.info {\n color: var(--primary);\n }\n\n &.error {\n color: var(--error);\n }\n\n &.warning {\n color: var(--warning);\n }\n\n &.success {\n color: var(--success);\n }\n }\n\n > .message {\n font-size: 20px;\n margin-bottom: 40px;\n max-width: 60%;\n text-align: center;\n line-height: 30px;\n }\n\n }\n</style>\n","import { render } from \"./IconMessage.vue?vue&type=template&id=01996ade&scoped=true\"\nimport script from \"./IconMessage.vue?vue&type=script&lang=js\"\nexport * from \"./IconMessage.vue?vue&type=script&lang=js\"\n\nimport \"./IconMessage.vue?vue&type=style&index=0&id=01996ade&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-01996ade\"]])\n\nexport default __exports__","<script>\nimport { getApplicableExtensionEnhancements } from '@shell/core/plugin-helpers';\n\nexport default {\n name: 'ExtensionPanel',\n props: {\n resource: {\n type: Object,\n default: () => {\n return {};\n }\n },\n type: {\n type: String,\n default: ''\n },\n location: {\n type: String,\n default: ''\n },\n },\n data() {\n return { extensionData: getApplicableExtensionEnhancements(this, this.type, this.location, this.$route) };\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"extensionData.length\"\n >\n <div\n v-for=\"item, i in extensionData\"\n :key=\"`extensionData${location}${i}`\"\n >\n <component\n :is=\"item.component\"\n :resource=\"resource\"\n />\n </div>\n </div>\n</template>\n","import { render } from \"./ExtensionPanel.vue?vue&type=template&id=1a394d3c\"\nimport script from \"./ExtensionPanel.vue?vue&type=script&lang=js\"\nexport * from \"./ExtensionPanel.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=515e48d4&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=515e48d4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-515e48d4\"]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=014bdcf8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport ColorInput from '@shell/components/form/ColorInput';\nimport TypeDescription from '@shell/components/TypeDescription';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport FileSelector from '@shell/components/form/FileSelector';\nimport SimpleBox from '@shell/components/SimpleBox';\nimport Loading from '@shell/components/Loading';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { Banner } from '@components/Banner';\nimport { allHash } from '@shell/utils/promise';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { getVendor, setVendor } from '@shell/config/private-label';\nimport { fetchOrCreateSetting } from '@shell/utils/settings';\nimport { SETTING } from '@shell/config/settings';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { setFavIcon } from '@shell/utils/favicon';\nconst Color = require('color');\n\nexport default {\n components: {\n LabeledInput, Checkbox, FileSelector, Loading, SimpleBox, AsyncButton, Banner, ColorInput, TypeDescription\n },\n async fetch() {\n const hash = await allHash({\n uiPLSetting: this.$store.dispatch('management/find', { type: MANAGEMENT.SETTING, id: SETTING.PL }),\n uiLogoDarkSetting: fetchOrCreateSetting(this.$store, SETTING.LOGO_DARK, ''),\n uiLogoLightSetting: fetchOrCreateSetting(this.$store, SETTING.LOGO_LIGHT, ''),\n uiColorSetting: fetchOrCreateSetting(this.$store, SETTING.PRIMARY_COLOR, ''),\n uiLinkColorSetting: fetchOrCreateSetting(this.$store, SETTING.LINK_COLOR, ''),\n uiFaviconSetting: fetchOrCreateSetting(this.$store, SETTING.FAVICON, ''),\n });\n\n Object.assign(this, hash);\n if (hash.uiLogoDarkSetting.value) {\n try {\n this.uiLogoDark = hash.uiLogoDarkSetting.value;\n this.customizeLogo = true;\n } catch {}\n }\n if (hash.uiLogoLightSetting.value) {\n try {\n this.uiLogoLight = hash.uiLogoLightSetting.value;\n this.customizeLogo = true;\n } catch {}\n }\n if (hash.uiFaviconSetting.value) {\n try {\n this.uiFavicon = hash.uiFaviconSetting.value;\n this.customizeFavicon = true;\n } catch {}\n }\n if (hash.uiColorSetting.value) {\n this.uiColor = Color(hash.uiColorSetting.value).hex();\n this.customizeColor = true;\n }\n if (hash.uiLinkColorSetting.value) {\n this.uiLinkColor = Color(hash.uiLinkColorSetting.value).hex();\n this.customizeLinkColor = true;\n }\n },\n data() {\n return {\n vendor: getVendor(),\n uiPLSetting: {},\n uiLogoDarkSetting: {},\n uiLogoDark: '',\n uiLogoLightSetting: {},\n uiLogoLight: '',\n customizeLogo: false,\n uiFaviconSetting: {},\n uiFavicon: '',\n customizeFavicon: false,\n uiColorSetting: {},\n uiColor: null,\n customizeColor: false,\n uiLinkColorSetting: {},\n uiLinkColor: null,\n customizeLinkColor: false,\n errors: [],\n };\n },\n computed: {\n mode() {\n const schema = this.$store.getters[`management/schemaFor`](MANAGEMENT.SETTING);\n\n return schema?.resourceMethods?.includes('PUT') ? _EDIT : _VIEW;\n },\n customLinkColor() {\n return { color: this.uiLinkColor };\n }\n },\n mounted() {\n let uiColor = getComputedStyle(document.body).getPropertyValue('--primary');\n let uiLinkColor = getComputedStyle(document.body).getPropertyValue('--link');\n const suse = document.querySelector('.suse');\n\n if (suse) {\n uiColor = getComputedStyle(suse).getPropertyValue('--primary');\n uiLinkColor = getComputedStyle(suse).getPropertyValue('--link');\n }\n // Only set the color to the default if not already set from the custom color\n this.uiColor = this.uiColor || uiColor.trim();\n this.uiLinkColor = this.uiLinkColor || uiLinkColor.trim();\n },\n methods: {\n updateLogo(img, key) {\n this[key] = img;\n },\n setError(e) {\n this.errors = [];\n this.errors.push(e);\n },\n async save(btnCB) {\n this.uiPLSetting.value = this.uiPLSetting.value.replaceAll(/[\\<>&=#()\"]/gm, '');\n if (this.customizeLogo) {\n this.uiLogoLightSetting.value = this.uiLogoLight;\n this.uiLogoDarkSetting.value = this.uiLogoDark;\n } else {\n this.uiLogoLightSetting.value = '';\n this.uiLogoDarkSetting.value = '';\n }\n if (this.customizeFavicon) {\n this.uiFaviconSetting.value = this.uiFavicon;\n } else {\n this.uiFaviconSetting.value = '';\n }\n if (this.customizeColor) {\n this.uiColorSetting.value = Color(this.uiColor).rgb().string();\n } else {\n this.uiColorSetting.value = null;\n }\n if (this.customizeLinkColor) {\n this.uiLinkColorSetting.value = Color(this.uiLinkColor).rgb().string();\n } else {\n this.uiLinkColorSetting.value = null;\n }\n this.errors = [];\n try {\n await Promise.all([\n this.uiPLSetting.save(),\n this.uiLogoDarkSetting.save(),\n this.uiLogoLightSetting.save(),\n this.uiColorSetting.save(),\n this.uiLinkColorSetting.save(),\n this.uiFaviconSetting.save()\n ]);\n if (this.uiPLSetting.value !== this.vendor) {\n setVendor(this.uiPLSetting.value);\n }\n setFavIcon(this.$store);\n btnCB(true);\n } catch (err) {\n this.errors.push(err);\n btnCB(false);\n }\n },\n }\n};\n</script>\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <h1 class=\"mb-20\">\n {{ t('branding.label') }}\n </h1>\n <TypeDescription resource=\"harvester\" />\n <div>\n <div class=\"row mb-20\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"uiPLSetting.value\"\n :label=\"t('branding.uiPL.label')\"\n :mode=\"mode\"\n :maxlength=\"100\"\n />\n </div>\n </div>\n <h3 class=\"mt-20 mb-5 pb-5\">\n {{ t('branding.logos.label') }}\n </h3>\n <label class=\"text-label\">\n {{ t('harvester.branding.logos.tip', {}, true) }}\n </label>\n <div class=\"row mt-10 mb-20\">\n <Checkbox\n v-model:value=\"customizeLogo\"\n :label=\"t('branding.logos.useCustom')\"\n :mode=\"mode\"\n />\n </div>\n <div\n v-if=\"customizeLogo\"\n class=\"row mb-20\"\n >\n <div class=\"col logo-container span-6\">\n <div class=\"mb-10\">\n <FileSelector\n :byte-limit=\"20000\"\n :read-as-data-url=\"true\"\n class=\"role-secondary\"\n :label=\"t('branding.logos.uploadLight')\"\n :mode=\"mode\"\n @error=\"setError\"\n @selected=\"updateLogo($event, 'uiLogoLight')\"\n />\n </div>\n <SimpleBox\n v-if=\"uiLogoLight || uiLogoDark\"\n class=\"theme-light mb-10\"\n >\n <label class=\"text-muted\">{{ t('branding.logos.lightPreview') }}</label>\n <img\n class=\"logo-preview\"\n :src=\"uiLogoLight ? uiLogoLight : uiLogoDark\"\n >\n </SimpleBox>\n </div>\n <div class=\"col logo-container span-6\">\n <div class=\"mb-10\">\n <FileSelector\n :byte-limit=\"20000\"\n :read-as-data-url=\"true\"\n class=\"role-secondary\"\n :label=\"t('branding.logos.uploadDark')\"\n :mode=\"mode\"\n @error=\"setError\"\n @selected=\"updateLogo($event, 'uiLogoDark')\"\n />\n </div>\n <SimpleBox\n v-if=\"uiLogoDark || uiLogoLight\"\n class=\"theme-dark mb-10\"\n >\n <label class=\"text-muted\">{{ t('branding.logos.darkPreview') }}</label>\n <img\n class=\"logo-preview\"\n :src=\"uiLogoDark ? uiLogoDark : uiLogoLight\"\n >\n </SimpleBox>\n </div>\n </div>\n <h3 class=\"mt-20 mb-5 pb-5\">\n {{ t('branding.favicon.label') }}\n </h3>\n <label class=\"text-label\">\n {{ t('harvester.branding.favicon.tip', {}, true) }}\n </label>\n <div class=\"row mt-10 mb-20\">\n <Checkbox\n v-model:value=\"customizeFavicon\"\n :label=\"t('branding.favicon.useCustom')\"\n :mode=\"mode\"\n />\n </div>\n <div\n v-if=\"customizeFavicon\"\n class=\"row mb-20\"\n >\n <div class=\"col logo-container span-12\">\n <div class=\"mb-10\">\n <FileSelector\n :byte-limit=\"20000\"\n :read-as-data-url=\"true\"\n class=\"role-secondary\"\n :label=\"t('branding.favicon.upload')\"\n :mode=\"mode\"\n @error=\"setError\"\n @selected=\"updateLogo($event, 'uiFavicon')\"\n />\n </div>\n <SimpleBox v-if=\"uiFavicon\">\n <label class=\"text-muted\">{{ t('branding.favicon.preview') }}</label>\n <img\n class=\"logo-preview\"\n :src=\"uiFavicon\"\n >\n </SimpleBox>\n </div>\n </div>\n <h3 class=\"mt-40 mb-5 pb-0\">\n {{ t('branding.color.label') }}\n </h3>\n <label class=\"text-label\">\n {{ t('branding.color.tip', {}, true) }}\n </label>\n <div class=\"row mt-20\">\n <Checkbox\n v-model:value=\"customizeColor\"\n :label=\"t('branding.color.useCustom')\"\n :mode=\"mode\"\n />\n </div>\n <div\n v-if=\"customizeColor\"\n class=\"row mt-20 mb-20\"\n >\n <ColorInput\n v-model:value=\"uiColor\"\n component-testid=\"primary\"\n />\n </div>\n <h3 class=\"mt-40 mb-5 pb-0\">\n {{ t('branding.linkColor.label') }}\n </h3>\n <label class=\"text-label\">\n {{ t('branding.linkColor.tip', {}, true) }}\n </label>\n <div class=\"row mt-20\">\n <Checkbox\n v-model:value=\"customizeLinkColor\"\n :label=\"t('branding.linkColor.useCustom')\"\n :mode=\"mode\"\n />\n </div>\n <div\n v-if=\"customizeLinkColor\"\n class=\"row mt-20 mb-20\"\n >\n <ColorInput\n v-model:value=\"uiLinkColor\"\n class=\"col\"\n component-testid=\"link\"\n />\n <span class=\"col link-example\">\n <a :style=\"customLinkColor\">\n {{ t('branding.linkColor.example') }}\n </a>\n </span>\n </div>\n </div>\n <template\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n >\n <Banner\n color=\"error\"\n :label=\"err\"\n />\n </template>\n <div v-if=\"mode === 'edit'\">\n <AsyncButton\n component-testid=\"branding-apply\"\n class=\"pull-right mt-20\"\n mode=\"apply\"\n @click=\"save\"\n />\n </div>\n </div>\n</template>\n\n <style scoped lang='scss'>\n .link-example {\n display: flex;\n align-content: center;\n a {\n margin: auto;\n }\n }\n .logo-container {\n display: flex;\n flex-direction: column;\n :deep().simple-box {\n position: relative;\n flex: 1;\n max-height: 120px;\n .content {\n height: 100%;\n display: flex;\n }\n .logo-preview {\n max-width: 100%;\n }\n }\n & LABEL {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n }\n </style>\n","<script>\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\n\nexport default {\n emits: ['update:value'],\n\n props: {\n value: {\n type: String,\n default: ''\n },\n\n defaultValue: {\n type: String,\n default: ''\n },\n\n label: {\n type: String,\n default: null\n },\n\n labelKey: {\n type: String,\n default: null\n },\n\n mode: {\n type: String,\n validator(value) {\n return [_EDIT, _VIEW].includes(value);\n },\n default: _EDIT,\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'color-input'\n },\n\n disabled: {\n type: Boolean,\n default: false,\n }\n },\n\n data() {\n return {\n viewMode: _VIEW,\n editMode: _EDIT\n };\n },\n\n computed: {\n /**\n * Allow UI to set a default value.\n */\n inputValue() {\n return this.value ? this.value : this.defaultValue;\n },\n\n isDisabled() {\n const disabled = this.disabled;\n\n return this.mode !== this.editMode || disabled;\n }\n },\n\n mounted() {\n // Ensures that if the default value is used, the model is updated with it\n this.$emit('update:value', this.inputValue);\n },\n\n methods: {\n handleKeyup(ev) {\n if (this.isDisabled) {\n return '';\n }\n\n return this.$refs.input.click(ev);\n }\n },\n\n // according to https://www.w3.org/TR/html-aria/\n // input type=\"color\" has no applicable role\n // and only aria-label and aria-disabled\n};\n</script>\n\n<template>\n <div\n class=\"color-input\"\n :class=\"{[mode]:mode, disabled: isDisabled}\"\n :data-testid=\"componentTestid + '-color-input'\"\n :tabindex=\"isDisabled ? -1 : 0\"\n @keyup.enter.space.stop=\"handleKeyup($event)\"\n >\n <label class=\"text-label\"><t\n v-if=\"labelKey\"\n :k=\"labelKey\"\n :raw=\"true\"\n />{{ label }}</label>\n <div\n :data-testid=\"componentTestid + '-color-input_preview-container'\"\n class=\"preview-container\"\n @click.stop=\"$refs.input.click($event)\"\n >\n <span\n :style=\"{'background-color': inputValue}\"\n class=\"color-display\"\n >\n <input\n ref=\"input\"\n :aria-disabled=\"isDisabled ? 'true' : 'false'\"\n :aria-label=\"t('generic.colorPicker')\"\n type=\"color\"\n :disabled=\"isDisabled\"\n tabindex=\"-1\"\n :value=\"inputValue\"\n @input=\"$emit('update:value', $event.target.value)\"\n >\n </span>\n <span class=\"text-muted color-value\">{{ inputValue }}</span>\n </div>\n </div>\n</template>\n\n<style lang='scss' scoped>\n.color-input {\n border: 1px solid var(--border);\n border-radius: var(--border-radius);\n padding: 10px;\n\n &:focus-visible {\n @include focus-outline;\n }\n\n &.disabled, &.disabled .selected, &[disabled], &[disabled]:hover {\n color: var(--input-disabled-text);\n background-color: var(--input-disabled-bg);\n outline-width: 0;\n border-color: var(--input-disabled-border);\n cursor: not-allowed;\n\n label, span, div, input {\n cursor: not-allowed !important;\n }\n\n label {\n color: var(--input-disabled-label);\n display: inline-block;\n z-index: 1;\n }\n &::placeholder {\n color: var(--input-disabled-placeholder);\n }\n }\n\n LABEL{\n display: block;\n }\n\n .preview-container{\n &:hover {\n cursor: pointer;\n }\n\n .color-value {\n margin-left: 4px;\n }\n }\n\n .color-display{\n border: 1px solid var(--border);\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 var(--outline-width) var(--outline);\n background: var(--input-focus-bg);\n }\n }\n\n INPUT{\n border: none;\n padding: 0;\n width: 23px;\n height: 23px;\n -webkit-appearance: none;\n opacity: 0;\n &:hover {\n cursor: pointer;\n }\n }\n}\n</style>\n","import { render } from \"./ColorInput.vue?vue&type=template&id=4b3e7faa&scoped=true\"\nimport script from \"./ColorInput.vue?vue&type=script&lang=js\"\nexport * from \"./ColorInput.vue?vue&type=script&lang=js\"\n\nimport \"./ColorInput.vue?vue&type=style&index=0&id=4b3e7faa&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b3e7faa\"]])\n\nexport default __exports__","import { SETTING } from '@shell/config/settings';\nimport { MANAGEMENT } from '@shell/config/types';\n\nlet favIconSet = false;\n\nexport function haveSetFavIcon() {\n return favIconSet;\n}\n\nexport function setFavIcon(store) {\n const res = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.FAVICON);\n const brandSetting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.BRAND);\n const link = findIconLink(document.head.getElementsByTagName('link'));\n\n if (link) {\n let brandImage;\n\n if (brandSetting?.value === 'suse') {\n brandImage = require('~shell/assets/brand/suse/favicon.png');\n } else if (brandSetting?.value === 'csp') {\n brandImage = require('~shell/assets/brand/csp/favicon.png');\n } else if (brandSetting?.value === 'harvester') {\n brandImage = require('~shell/assets/brand/harvester/favicon.png');\n }\n\n link.href = res?.value || brandImage || defaultFavIcon;\n favIconSet = true;\n }\n}\n\nfunction getCurrentFavIcon() {\n const link = findIconLink(document.head.getElementsByTagName('link'));\n\n return link ? link.href : '';\n}\n\nfunction findIconLink(links) {\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n\n if (link.rel?.includes('icon')) {\n return link;\n }\n }\n\n return undefined;\n}\n\nconst defaultFavIcon = getCurrentFavIcon();\n","import { render } from \"./index.vue?vue&type=template&id=45ae37da&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=45ae37da&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-45ae37da\"]])\n\nexport default __exports__","<script>\nimport ResourceDetail from '@shell/components/ResourceDetail/index.vue';\n\nexport default {\n name: 'HarvesterResourceCreate',\n components: { ResourceDetail },\n};\n</script>\n\n<template>\n <ResourceDetail />\n</template>\n","<script>\nimport CreateEditView from '@shell/mixins/create-edit-view/impl';\nimport Loading from '@shell/components/Loading';\nimport ResourceYaml from '@shell/components/ResourceYaml';\nimport {\n _VIEW, _EDIT, _CLONE, _IMPORT, _STAGE, _CREATE,\n AS, _YAML, _DETAIL, _CONFIG, _GRAPH, PREVIEW, MODE,\n} from '@shell/config/query-params';\nimport { FLEET, SCHEMA } from '@shell/config/types';\nimport { createYaml } from '@shell/utils/create-yaml';\nimport Masthead from '@shell/components/ResourceDetail/Masthead';\nimport DetailTop from '@shell/components/DetailTop';\nimport { clone, diff } from '@shell/utils/object';\nimport IconMessage from '@shell/components/IconMessage';\nimport ForceDirectedTreeChart from '@shell/components/fleet/ForceDirectedTreeChart';\nimport { checkSchemasForFindAllHash } from '@shell/utils/auth';\nimport { stringify } from '@shell/utils/error';\nimport { Banner } from '@components/Banner';\n\nfunction modeFor(route) {\n if ( route.query?.mode === _IMPORT ) {\n return _IMPORT;\n }\n\n if ( route.params?.id ) {\n return route.query.mode || _VIEW;\n } else {\n return _CREATE;\n }\n}\n\nasync function getYaml(store, model) {\n let yaml;\n const opt = { headers: { accept: 'application/yaml' } };\n\n if ( model.hasLink('view') ) {\n yaml = (await model.followLink('view', opt)).data;\n }\n\n return model.cleanForDownload(yaml);\n}\n\nexport default {\n emits: ['input'],\n\n components: {\n Loading,\n DetailTop,\n ForceDirectedTreeChart,\n ResourceYaml,\n Masthead,\n IconMessage,\n Banner\n },\n\n mixins: [CreateEditView],\n\n props: {\n storeOverride: {\n type: String,\n default: null,\n },\n\n resourceOverride: {\n type: String,\n default: null,\n },\n\n parentRouteOverride: {\n type: String,\n default: null,\n },\n\n /**\n * Inherited global identifier prefix for tests\n * Define a term based on the parent component to avoid conflicts on multiple components\n */\n componentTestid: {\n type: String,\n default: 'resource-details'\n },\n errorsMap: {\n type: Object,\n default: null\n },\n },\n\n async fetch() {\n const store = this.$store;\n const route = this.$route;\n const params = route.params;\n let resourceType = this.resourceOverride || params.resource;\n\n const inStore = this.storeOverride || store.getters['currentStore'](resourceType);\n const realMode = this.realMode;\n\n // eslint-disable-next-line prefer-const\n let { namespace, id } = params;\n\n // There are 6 \"real\" modes that can be put into the query string\n // These are mapped down to the 3 regular page \"mode\"s that create-edit-view components\n // know about: view, edit, create (stage, import and clone become \"create\")\n const mode = ([_CLONE, _IMPORT, _STAGE].includes(realMode) ? _CREATE : realMode);\n\n const getGraphConfig = store.getters['type-map/hasGraph'](resourceType);\n const hasGraph = !!getGraphConfig;\n const hasCustomDetail = store.getters['type-map/hasCustomDetail'](resourceType, id);\n const hasCustomEdit = store.getters['type-map/hasCustomEdit'](resourceType, id);\n\n const schemas = store.getters[`${ inStore }/all`](SCHEMA);\n\n // As determines what component will be rendered\n const requested = route.query[AS];\n let as;\n let notFound = false;\n\n if ( mode === _VIEW && hasCustomDetail && (!requested || requested === _DETAIL) ) {\n as = _DETAIL;\n } else if ( mode === _VIEW && hasGraph && requested === _GRAPH) {\n as = _GRAPH;\n } else if ( hasCustomEdit && (!requested || requested === _CONFIG) ) {\n as = _CONFIG;\n } else {\n as = _YAML;\n }\n\n this.as = as;\n\n const options = store.getters[`type-map/optionsFor`](resourceType);\n\n this.showMasthead = [_CREATE, _EDIT].includes(mode) ? options.resourceEditMasthead : true;\n const canViewYaml = options.canYaml;\n\n if ( options.resource ) {\n resourceType = options.resource;\n }\n\n const schema = store.getters[`${ inStore }/schemaFor`](resourceType);\n let model, initialModel, liveModel, yaml;\n\n if ( realMode === _CREATE || realMode === _IMPORT ) {\n if ( !namespace ) {\n namespace = store.getters['defaultNamespace'];\n }\n\n const data = { type: resourceType };\n\n if ( schema?.attributes?.namespaced ) {\n data.metadata = { namespace };\n }\n\n liveModel = await store.dispatch(`${ inStore }/create`, data);\n initialModel = await store.dispatch(`${ inStore }/clone`, { resource: liveModel });\n model = await store.dispatch(`${ inStore }/clone`, { resource: liveModel });\n\n if (model.forceYaml === true) {\n as = _YAML;\n this.as = as;\n }\n\n if ( as === _YAML ) {\n if (schema?.fetchResourceFields) {\n // fetch resourceFields for createYaml\n await schema.fetchResourceFields();\n }\n\n yaml = createYaml(schemas, resourceType, data);\n }\n } else {\n if ( as === _GRAPH ) {\n const graphSchema = await checkSchemasForFindAllHash({\n cluster: {\n inStoreType: 'management',\n type: FLEET.CLUSTER\n },\n bundle: {\n inStoreType: 'management',\n type: FLEET.BUNDLE,\n opt: { excludeFields: ['metadata.managedFields', 'spec.resources'] },\n },\n\n bundleDeployment: {\n inStoreType: 'management',\n type: FLEET.BUNDLE_DEPLOYMENT\n }\n\n }, this.$store);\n\n this.canViewChart = graphSchema.cluster && graphSchema.bundle && graphSchema.bundleDeployment;\n }\n\n let fqid = id;\n\n if ( schema.attributes?.namespaced && namespace ) {\n fqid = `${ namespace }/${ fqid }`;\n }\n\n try {\n liveModel = await store.dispatch(`${ inStore }/find`, {\n type: resourceType,\n id: fqid,\n opt: { watch: true }\n });\n } catch (e) {\n if (e.status === 404 || e.status === 403) {\n store.dispatch('loadingError', new Error(this.t('nav.failWhale.resourceIdNotFound', { resource: resourceType, fqid }, true)));\n }\n liveModel = {};\n notFound = fqid;\n }\n\n try {\n if (realMode === _VIEW) {\n model = liveModel;\n } else {\n model = await store.dispatch(`${ inStore }/clone`, { resource: liveModel });\n }\n initialModel = await store.dispatch(`${ inStore }/clone`, { resource: liveModel });\n\n if ( as === _YAML ) {\n yaml = await getYaml(this.$store, liveModel);\n }\n } catch (e) {\n this.errors.push(e);\n }\n if ( as === _YAML ) {\n try {\n yaml = await getYaml(this.$store, liveModel);\n } catch (e) {\n this.errors.push(e);\n }\n }\n\n if ( as === _GRAPH ) {\n this.chartData = liveModel;\n }\n\n if ( [_CLONE, _IMPORT, _STAGE].includes(realMode) ) {\n model.cleanForNew();\n yaml = model.cleanYaml(yaml, realMode);\n }\n }\n\n // Ensure common properties exists\n try {\n model = await store.dispatch(`${ inStore }/cleanForDetail`, model);\n } catch (e) {\n this.errors.push(e);\n }\n\n const out = {\n hasGraph,\n getGraphConfig,\n hasCustomDetail,\n hasCustomEdit,\n canViewYaml,\n resourceType,\n as,\n yaml,\n initialModel,\n liveModel,\n mode,\n value: model,\n notFound,\n };\n\n for ( const key in out ) {\n this[key] = out[key];\n }\n\n if ( this.mode === _CREATE ) {\n this.value.applyDefaults(this, realMode);\n }\n },\n data() {\n return {\n chartData: null,\n resourceSubtype: null,\n\n // Set by fetch\n hasGraph: null,\n hasCustomDetail: null,\n hasCustomEdit: null,\n resourceType: null,\n asYaml: null,\n yaml: null,\n liveModel: null,\n initialModel: null,\n mode: null,\n as: null,\n value: null,\n model: null,\n notFound: null,\n canViewChart: true,\n canViewYaml: null,\n errors: []\n };\n },\n\n computed: {\n realMode() {\n // There are 5 \"real\" modes that you can start in: view, edit, create, stage, clone\n const realMode = modeFor(this.$route);\n\n return realMode;\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isYaml() {\n return this.as === _YAML;\n },\n\n isDetail() {\n return this.as === _DETAIL;\n },\n\n isGraph() {\n return this.as === _GRAPH;\n },\n\n offerPreview() {\n return this.as === _YAML && [_EDIT, _CLONE, _IMPORT, _STAGE].includes(this.mode);\n },\n\n showComponent() {\n switch ( this.as ) {\n case _DETAIL: return this.detailComponent;\n case _CONFIG: return this.editComponent;\n }\n\n return null;\n },\n hasErrors() {\n return this.errors?.length && Array.isArray(this.errors);\n },\n mappedErrors() {\n return !this.errors ? {} : this.errorsMap || this.errors.reduce((acc, error) => ({\n ...acc,\n [error]: {\n message: error?.data?.message || error,\n icon: null\n }\n }), {});\n },\n },\n\n watch: {\n '$route'(current, prev) {\n if (current.name !== prev.name) {\n return;\n }\n const neu = clone(current.query);\n const old = clone(prev.query);\n\n delete neu[PREVIEW];\n delete old[PREVIEW];\n\n if ( !this.isView ) {\n delete neu[AS];\n delete old[AS];\n }\n\n const queryDiff = Object.keys(diff(neu, old));\n\n if (queryDiff.includes(MODE) || queryDiff.includes(AS)) {\n this.$fetch();\n }\n },\n\n // Auto refresh YAML when the model changes\n async 'value.metadata.resourceVersion'(a, b) {\n if ( this.mode === _VIEW && this.as === _YAML && a && b && a !== b) {\n this.yaml = await getYaml(this.$store, this.liveModel);\n }\n }\n },\n\n created() {\n // eslint-disable-next-line prefer-const\n const id = this.$route.params.id;\n const resource = this.resourceOverride || this.$route.params.resource;\n const options = this.$store.getters[`type-map/optionsFor`](resource);\n\n const detailResource = options.resourceDetail || options.resource || resource;\n const editResource = options.resourceEdit || options.resource || resource;\n\n // FIXME: These aren't right... signature is (rawType, subType).. not (rawType, resourceId)\n // Remove id? How does subtype get in (cluster/node)\n this.detailComponent = this.$store.getters['type-map/importDetail'](detailResource, id);\n this.editComponent = this.$store.getters['type-map/importEdit'](editResource, id);\n },\n\n methods: {\n stringify,\n setSubtype(subtype) {\n this.resourceSubtype = subtype;\n },\n\n keyAction(act) {\n const m = this.liveModel;\n\n if ( m?.[act] ) {\n m[act]();\n }\n },\n closeError(index) {\n this.errors = this.errors.filter((_, i) => i !== index);\n },\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending || notFound\" />\n <div v-else>\n <Masthead\n v-if=\"showMasthead\"\n :resource=\"resourceType\"\n :value=\"liveModel\"\n :mode=\"mode\"\n :real-mode=\"realMode\"\n :as=\"as\"\n :has-graph=\"hasGraph\"\n :has-detail=\"hasCustomDetail\"\n :has-edit=\"hasCustomEdit\"\n :can-view-yaml=\"canViewYaml\"\n :resource-subtype=\"resourceSubtype\"\n :parent-route-override=\"parentRouteOverride\"\n :store-override=\"storeOverride\"\n >\n <DetailTop\n v-if=\"isView && isDetail\"\n :value=\"liveModel\"\n />\n </Masthead>\n <div\n v-if=\"hasErrors\"\n id=\"cru-errors\"\n class=\"cru__errors\"\n >\n <Banner\n v-for=\"(err, i) in errors\"\n :key=\"i\"\n color=\"error\"\n :data-testid=\"`error-banner${i}`\"\n :label=\"stringify(mappedErrors[err].message)\"\n :icon=\"mappedErrors[err].icon\"\n :closable=\"true\"\n @close=\"closeError(i)\"\n />\n </div>\n\n <ForceDirectedTreeChart\n v-if=\"isGraph && canViewChart\"\n :data=\"chartData\"\n :fdc-config=\"getGraphConfig\"\n />\n\n <ResourceYaml\n v-else-if=\"isYaml\"\n ref=\"resourceyaml\"\n :value=\"value\"\n :mode=\"mode\"\n :yaml=\"yaml\"\n :offer-preview=\"offerPreview\"\n :done-route=\"doneRoute\"\n :done-override=\"value ? value.doneOverride : null\"\n @update:value=\"$emit('input', $event)\"\n @error=\"e=>errors.push(e)\"\n />\n\n <component\n :is=\"showComponent\"\n v-else\n ref=\"comp\"\n v-model:value=\"value\"\n v-bind=\"$data\"\n :done-params=\"doneParams\"\n :done-route=\"doneRoute\"\n :mode=\"mode\"\n :initial-value=\"initialModel\"\n :live-value=\"liveModel\"\n :real-mode=\"realMode\"\n @update:value=\"$emit('input', $event)\"\n @set-subtype=\"setSubtype\"\n />\n\n <button\n v-if=\"isView\"\n v-shortkey.once=\"['shift','d']\"\n :data-testid=\"componentTestid + '-detail'\"\n class=\"hide\"\n @shortkey=\"keyAction('goToDetail')\"\n />\n <button\n v-if=\"isView\"\n v-shortkey.once=\"['shift','c']\"\n :data-testid=\"componentTestid + '-config'\"\n class=\"hide\"\n @shortkey=\"keyAction('goToViewConfig')\"\n />\n <button\n v-if=\"isView\"\n v-shortkey.once=\"['shift','y']\"\n :data-testid=\"componentTestid + '-yaml'\"\n class=\"hide\"\n @shortkey=\"keyAction('goToViewYaml')\"\n />\n <button\n v-if=\"isView\"\n v-shortkey.once=\"['shift','e']\"\n :data-testid=\"componentTestid + '-edit'\"\n class=\"hide\"\n @shortkey=\"keyAction('goToEdit')\"\n />\n </div>\n</template>\n\n<style lang='scss' scoped>\n.flex-content {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n</style>\n","<script>\nimport { KUBERNETES, PROJECT } from '@shell/config/labels-annotations';\nimport { FLEET, NAMESPACE, MANAGEMENT, HELM } from '@shell/config/types';\nimport ButtonGroup from '@shell/components/ButtonGroup';\nimport { BadgeState } from '@components/BadgeState';\nimport { Banner } from '@components/Banner';\nimport { get } from '@shell/utils/object';\nimport { NAME as FLEET_NAME } from '@shell/config/product/fleet';\nimport { HIDE_SENSITIVE } from '@shell/store/prefs';\nimport {\n AS, _DETAIL, _CONFIG, _YAML, MODE, _CREATE, _EDIT, _VIEW, _UNFLAG, _GRAPH\n} from '@shell/config/query-params';\nimport { ExtensionPoint, PanelLocation } from '@shell/core/types';\nimport ExtensionPanel from '@shell/components/ExtensionPanel';\nimport TabTitle from '@shell/components/TabTitle';\n\n// i18n-uses resourceDetail.header.*\n\n/**\n * Resource Detail Masthead component.\n *\n * ToDo: this component seem to be picking up a lot of logic from special cases, could be simplified down to parameters and then customized per use-case via wrapper component\n */\nexport default {\n\n name: 'MastheadResourceDetail',\n\n components: {\n BadgeState, Banner, ButtonGroup, ExtensionPanel, TabTitle\n },\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n mode: {\n type: String,\n default: 'create'\n },\n\n realMode: {\n type: String,\n default: 'create'\n },\n\n as: {\n type: String,\n default: _YAML,\n },\n\n hasGraph: {\n type: Boolean,\n default: false\n },\n\n hasDetail: {\n type: Boolean,\n default: false\n },\n\n hasEdit: {\n type: Boolean,\n default: false\n },\n\n storeOverride: {\n type: String,\n default: null,\n },\n\n resource: {\n type: String,\n default: null,\n },\n\n resourceSubtype: {\n type: String,\n default: null,\n },\n\n parentRouteOverride: {\n type: String,\n default: null,\n },\n\n canViewYaml: {\n type: Boolean,\n default: false,\n }\n },\n\n data() {\n return {\n DETAIL_VIEW: _DETAIL,\n extensionType: ExtensionPoint.PANEL,\n extensionLocation: PanelLocation.DETAILS_MASTHEAD,\n };\n },\n\n computed: {\n dev() {\n return this.$store.getters['prefs/dev'];\n },\n\n schema() {\n const inStore = this.storeOverride || this.$store.getters['currentStore'](this.resource);\n\n return this.$store.getters[`${ inStore }/schemaFor`]( this.resource );\n },\n\n isView() {\n return this.mode === _VIEW;\n },\n\n isEdit() {\n return this.mode === _EDIT;\n },\n\n isCreate() {\n return this.mode === _CREATE;\n },\n\n isNamespace() {\n return this.schema?.id === NAMESPACE;\n },\n\n isProject() {\n return this.schema?.id === MANAGEMENT.PROJECT;\n },\n\n isProjectHelmChart() {\n return this.schema?.id === HELM.PROJECTHELMCHART;\n },\n\n hasMultipleNamespaces() {\n return !!this.value.namespaces;\n },\n\n namespace() {\n if (this.value?.metadata?.namespace) {\n return this.value?.metadata?.namespace;\n }\n\n return null;\n },\n\n detailsAction() {\n return this.value?.detailsAction;\n },\n\n shouldHifenize() {\n return (this.mode === 'view' || this.mode === 'edit') && this.resourceSubtype?.length && this.value?.nameDisplay?.length;\n },\n\n namespaceLocation() {\n if (!this.isNamespace) {\n return this.value.namespaceLocation || {\n name: 'c-cluster-product-resource-id',\n params: {\n cluster: this.$route.params.cluster,\n product: this.$store.getters['productId'],\n resource: NAMESPACE,\n id: this.$route.params.namespace\n }\n };\n }\n\n return null;\n },\n\n isWorkspace() {\n return this.$store.getters['productId'] === FLEET_NAME && !!this.value?.metadata?.namespace;\n },\n\n workspaceLocation() {\n return {\n name: 'c-cluster-product-resource-id',\n params: {\n cluster: this.$route.params.cluster,\n product: this.$store.getters['productId'],\n resource: FLEET.WORKSPACE,\n id: this.$route.params.namespace\n }\n };\n },\n\n project() {\n if (this.isNamespace) {\n const cluster = this.$store.getters['currentCluster'];\n\n if (cluster) {\n const id = (this.value?.metadata?.labels || {})[PROJECT];\n\n return this.$store.getters['management/byId'](MANAGEMENT.PROJECT, `${ cluster.id }/${ id }`);\n }\n }\n\n return null;\n },\n\n banner() {\n if (this.value?.stateObj?.error) {\n const defaultErrorMessage = this.t('resourceDetail.masthead.defaultBannerMessage.error', undefined, true);\n\n return {\n color: 'error',\n message: this.value.stateObj.message || defaultErrorMessage\n };\n }\n\n if (this.value?.spec?.paused) {\n return {\n color: 'info',\n message: this.t('asyncButton.pause.description')\n };\n }\n\n if (this.value?.stateObj?.transitioning) {\n const defaultTransitioningMessage = this.t('resourceDetail.masthead.defaultBannerMessage.transitioning', undefined, true);\n\n return {\n color: 'info',\n message: this.value.stateObj.message || defaultTransitioningMessage\n };\n }\n\n return null;\n },\n\n parent() {\n const displayName = this.value?.parentNameOverride || this.$store.getters['type-map/labelFor'](this.schema);\n const product = this.$store.getters['currentProduct'].name;\n\n const defaultLocation = {\n name: 'c-cluster-product-resource',\n params: {\n resource: this.resource,\n product,\n }\n };\n\n const location = this.value?.parentLocationOverride || defaultLocation;\n\n if (this.parentRouteOverride) {\n location.name = this.parentRouteOverride;\n }\n\n const typeOptions = this.$store.getters[`type-map/optionsFor`]( this.resource );\n const out = {\n displayName, location, ...typeOptions\n };\n\n return out;\n },\n\n hideSensitiveData() {\n return this.$store.getters['prefs/get'](HIDE_SENSITIVE);\n },\n\n sensitiveOptions() {\n return [\n {\n tooltipKey: 'resourceDetail.masthead.sensitive.hide',\n icon: 'icon-hide',\n value: true,\n },\n {\n tooltipKey: 'resourceDetail.masthead.sensitive.show',\n icon: 'icon-show',\n value: false\n }\n ];\n },\n\n viewOptions() {\n const out = [];\n\n if ( this.hasDetail ) {\n out.push({\n labelKey: 'resourceDetail.masthead.detail',\n value: _DETAIL,\n });\n }\n\n if ( this.hasEdit && this.parent?.showConfigView !== false) {\n out.push({\n labelKey: 'resourceDetail.masthead.config',\n value: _CONFIG,\n });\n }\n\n if ( this.hasGraph ) {\n out.push({\n labelKey: 'resourceDetail.masthead.graph',\n value: _GRAPH,\n });\n }\n\n if ( this.canViewYaml ) {\n out.push({\n labelKey: 'resourceDetail.masthead.yaml',\n value: _YAML,\n });\n }\n\n if ( out.length < 2 ) {\n return null;\n }\n\n return out;\n },\n\n currentView: {\n get() {\n return this.as;\n },\n\n set(val) {\n switch ( val ) {\n case _DETAIL:\n this.$router.applyQuery({\n [MODE]: _UNFLAG,\n [AS]: _UNFLAG,\n });\n break;\n case _CONFIG:\n this.$router.applyQuery({\n [MODE]: _UNFLAG,\n [AS]: _CONFIG,\n });\n break;\n case _GRAPH:\n this.$router.applyQuery({\n [MODE]: _UNFLAG,\n [AS]: _GRAPH,\n });\n break;\n case _YAML:\n this.$router.applyQuery({\n [MODE]: _UNFLAG,\n [AS]: _YAML,\n });\n break;\n }\n },\n },\n\n showSensitiveToggle() {\n return !!this.value.hasSensitiveData && this.mode === _VIEW && this.as !== _YAML;\n },\n\n managedWarning() {\n const { value } = this;\n const labels = value?.metadata?.labels || {};\n\n const managedBy = labels[KUBERNETES.MANAGED_BY] || '';\n const appName = labels[KUBERNETES.MANAGED_NAME] || labels[KUBERNETES.INSTANCE] || '';\n\n return {\n show: this.mode === _EDIT && !!managedBy,\n type: value?.kind || '',\n hasName: appName ? 'yes' : 'no',\n appName,\n managedBy,\n };\n },\n\n displayName() {\n let displayName = this.value.nameDisplay;\n\n if (this.isProjectHelmChart) {\n displayName = this.value.projectDisplayName;\n }\n\n return this.shouldHifenize ? ` - ${ displayName }` : displayName;\n },\n\n location() {\n const { parent } = this;\n\n return parent?.location;\n },\n\n hideNamespaceLocation() {\n return this.$store.getters['currentProduct'].hideNamespaceLocation || this.value.namespaceLocation === null;\n },\n\n resourceExternalLink() {\n return this.value.resourceExternalLink;\n },\n },\n\n methods: {\n get,\n\n showActions() {\n this.$store.commit('action-menu/show', {\n resources: this.value,\n elem: this.$refs.actions,\n });\n },\n\n toggleSensitiveData(e) {\n this.$store.dispatch('prefs/set', { key: HIDE_SENSITIVE, value: !!e });\n },\n\n invokeDetailsAction() {\n const action = this.detailsAction;\n\n if (action) {\n const fn = this.value[action.action];\n\n if (fn) {\n fn.apply(this.value, []);\n }\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"masthead\">\n <header>\n <div class=\"title\">\n <div class=\"primaryheader\">\n <h1>\n <TabTitle\n v-if=\"isCreate\"\n :showChild=\"false\"\n >\n {{ parent.displayName }}\n </TabTitle>\n <TabTitle\n v-else\n :showChild=\"false\"\n >\n {{ displayName }}\n </TabTitle>\n <router-link\n v-if=\"location\"\n :to=\"location\"\n role=\"link\"\n class=\"masthead-resource-list-link\"\n :aria-label=\"parent.displayName\"\n >\n {{ parent.displayName }}:\n </router-link>\n <span v-else>{{ parent.displayName }}:</span>\n <span v-if=\"value?.detailPageHeaderActionOverride && value?.detailPageHeaderActionOverride(realMode)\">{{ value?.detailPageHeaderActionOverride(realMode) }}</span>\n <t\n v-else\n class=\"masthead-resource-title\"\n :k=\"'resourceDetail.header.' + realMode\"\n :subtype=\"resourceSubtype\"\n :name=\"displayName\"\n :escapehtml=\"false\"\n />\n <BadgeState\n v-if=\"!isCreate && parent.showState\"\n class=\"masthead-state\"\n :value=\"value\"\n />\n <span\n v-if=\"!isCreate && value.injectionEnabled\"\n class=\"masthead-istio\"\n >\n <i\n v-clean-tooltip=\"t('projectNamespaces.isIstioInjectionEnabled')\"\n class=\"icon icon-sm icon-istio\"\n />\n </span>\n <a\n v-if=\"dev && !!resourceExternalLink\"\n v-clean-tooltip=\"t(resourceExternalLink.tipsKey || 'generic.resourceExternalLinkTips')\"\n class=\"resource-external\"\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n :href=\"resourceExternalLink.url\"\n >\n <i class=\"icon icon-external-link\" />\n </a>\n </h1>\n </div>\n <div\n v-if=\"!isCreate\"\n class=\"subheader\"\n >\n <span v-if=\"isNamespace && project\">{{ t(\"resourceDetail.masthead.project\") }}: <router-link :to=\"project.detailLocation\">{{ project.nameDisplay }}</router-link></span>\n <span v-else-if=\"isWorkspace\">{{ t(\"resourceDetail.masthead.workspace\") }}: <router-link :to=\"workspaceLocation\">{{ namespace }}</router-link></span>\n <span v-else-if=\"namespace && !hasMultipleNamespaces\">\n {{ t(\"resourceDetail.masthead.namespace\") }}:\n <router-link\n v-if=\"!hideNamespaceLocation\"\n :to=\"namespaceLocation\"\n data-testid=\"masthead-subheader-namespace\"\n >\n {{ namespace }}\n </router-link>\n <span v-else>\n {{ namespace }}\n </span>\n </span>\n <span v-if=\"parent.showAge\">{{ t(\"resourceDetail.masthead.age\") }}: <LiveDate\n class=\"live-date\"\n :value=\"value.creationTimestamp\"\n /></span>\n <span v-if=\"value.showPodRestarts\">{{ t(\"resourceDetail.masthead.restartCount\") }}:<span class=\"live-data\"> {{ value.restartCount }}</span></span>\n </div>\n </div>\n <slot name=\"right\">\n <div class=\"actions-container align-start\">\n <div class=\"actions\">\n <button\n v-if=\"detailsAction && currentView === DETAIL_VIEW && isView\"\n type=\"button\"\n class=\"btn role-primary actions mr-10\"\n :disabled=\"!detailsAction.enabled\"\n @click=\"invokeDetailsAction\"\n >\n {{ detailsAction.label }}\n </button>\n <ButtonGroup\n v-if=\"showSensitiveToggle\"\n :value=\"!!hideSensitiveData\"\n icon-size=\"lg\"\n :options=\"sensitiveOptions\"\n class=\"mr-10\"\n @update:value=\"toggleSensitiveData\"\n />\n\n <ButtonGroup\n v-if=\"viewOptions && isView\"\n v-model:value=\"currentView\"\n :options=\"viewOptions\"\n class=\"mr-10\"\n />\n\n <button\n v-if=\"isView\"\n ref=\"actions\"\n data-testid=\"masthead-action-menu\"\n aria-haspopup=\"true\"\n type=\"button\"\n class=\"btn role-multi-action actions\"\n @click=\"showActions\"\n >\n <i class=\"icon icon-actions\" />\n </button>\n </div>\n </div>\n </slot>\n </header>\n\n <!-- Extension area -->\n <ExtensionPanel\n :resource=\"value\"\n :type=\"extensionType\"\n :location=\"extensionLocation\"\n />\n\n <Banner\n v-if=\"banner && isView && !parent.hideBanner\"\n class=\"state-banner mb-10\"\n :color=\"banner.color\"\n :label=\"banner.message\"\n />\n <Banner\n v-if=\"managedWarning.show\"\n color=\"warning\"\n class=\"mb-20\"\n :label=\"t('resourceDetail.masthead.managedWarning', managedWarning)\"\n />\n\n <slot />\n </div>\n</template>\n\n<style lang='scss' scoped>\n .masthead {\n padding-bottom: 10px;\n border-bottom: 1px solid var(--border);\n margin-bottom: 10px;\n }\n\n HEADER {\n margin: 0 0 0 -5px;\n\n .title {\n overflow-x: hidden;\n }\n }\n\n .primaryheader {\n display: flex;\n flex-direction: row;\n align-items: center;\n\n h1 {\n margin: 0;\n overflow-x: hidden;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n .masthead-resource-title {\n padding: 0 8px;\n text-overflow: ellipsis;\n overflow-x: hidden;\n white-space: nowrap;\n }\n\n .masthead-resource-list-link {\n margin: 5px;\n }\n }\n }\n\n .subheader{\n display: flex;\n flex-direction: row;\n color: var(--input-label);\n & > * {\n margin: 5px 20px 5px 0px;\n }\n\n .live-data {\n color: var(--body-text);\n margin-left: 3px;\n }\n }\n\n .state-banner {\n margin: 3px 0 0 0;\n }\n\n .masthead-state {\n font-size: initial;\n }\n\n .masthead-istio {\n .icon {\n vertical-align: middle;\n color: var(--primary);\n }\n }\n\n .left-right-split {\n display: grid;\n align-items: center;\n\n .left-half {\n grid-column: 1;\n }\n\n .right-half {\n grid-column: 2;\n }\n }\n\n div.actions-container > div.actions {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n }\n\n .resource-external {\n font-size: 18px;\n }\n</style>\n","import { DSL } from '@shell/store/type-map';\nimport { FLEET } from '@shell/config/types';\nimport { STATE, NAME as NAME_COL, AGE } from '@shell/config/table-headers';\nimport { FLEET as FLEET_FEATURE } from '@shell/store/features';\nimport { gitRepoGraphConfig } from '@shell/pages/c/_cluster/fleet/GitRepoGraphConfig';\nimport { BLANK_CLUSTER } from '@shell/store/store-types.js';\n\nexport const NAME = 'fleet';\nexport const CHART_NAME = 'fleet';\n\nexport function init(store) {\n const {\n product,\n basicType,\n weightType,\n configureType,\n headers,\n // mapType,\n virtualType,\n } = DSL(store, NAME);\n\n product({\n ifHaveType: FLEET.GIT_REPO,\n ifFeature: FLEET_FEATURE,\n icon: 'fleet',\n inStore: 'management',\n removable: false,\n showClusterSwitcher: false,\n showWorkspaceSwitcher: true,\n to: {\n name: 'c-cluster-fleet',\n params: { resource: FLEET.DASHBOARD, cluster: BLANK_CLUSTER }\n },\n });\n\n virtualType({\n labelKey: 'fleet.dashboard.menuLabel',\n icon: 'folder',\n group: 'Root',\n namespaced: false,\n name: FLEET.DASHBOARD,\n weight: 110,\n route: {\n name: 'c-cluster-fleet',\n params: { resource: FLEET.DASHBOARD, cluster: BLANK_CLUSTER }\n },\n exact: true,\n });\n\n basicType([\n FLEET.DASHBOARD,\n FLEET.CLUSTER,\n FLEET.CLUSTER_GROUP,\n FLEET.GIT_REPO,\n ]);\n\n configureType(FLEET.CLUSTER, { isCreatable: false });\n configureType(FLEET.GIT_REPO, {\n showListMasthead: false, hasGraph: true, graphConfig: gitRepoGraphConfig\n });\n\n weightType(FLEET.GIT_REPO, 109, true);\n weightType(FLEET.CLUSTER, 108, true);\n weightType(FLEET.CLUSTER_GROUP, 107, true);\n\n basicType([\n FLEET.WORKSPACE,\n FLEET.BUNDLE,\n FLEET.TOKEN,\n FLEET.BUNDLE_NAMESPACE_MAPPING,\n FLEET.GIT_REPO_RESTRICTION\n ], 'advanced');\n\n headers(FLEET.WORKSPACE, [\n STATE,\n NAME_COL,\n {\n name: 'gitRepos',\n labelKey: 'tableHeaders.gitRepos',\n value: 'counts.gitRepos',\n sort: 'counts.gitRepos',\n formatter: 'Number',\n },\n {\n name: 'clusters',\n labelKey: 'tableHeaders.clusters',\n value: 'counts.clusters',\n sort: 'counts.clusters',\n formatter: 'Number',\n },\n {\n name: 'clusterGroups',\n labelKey: 'tableHeaders.clusterGroups',\n value: 'counts.clusterGroups',\n sort: 'counts.clusterGroups',\n formatter: 'Number',\n },\n AGE\n ]);\n}\n","import { render } from \"./Masthead.vue?vue&type=template&id=81c48f58&scoped=true\"\nimport script from \"./Masthead.vue?vue&type=script&lang=js\"\nexport * from \"./Masthead.vue?vue&type=script&lang=js\"\n\nimport \"./Masthead.vue?vue&type=style&index=0&id=81c48f58&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-81c48f58\"]])\n\nexport default __exports__","<script>\nimport Tag from '@shell/components/Tag';\nimport isEmpty from 'lodash/isEmpty';\nimport DetailText from '@shell/components/DetailText';\nimport { _VIEW } from '@shell/config/query-params';\nimport { ExtensionPoint, PanelLocation } from '@shell/core/types';\nimport ExtensionPanel from '@shell/components/ExtensionPanel';\n\nexport default {\n components: {\n DetailText, Tag, ExtensionPanel\n },\n\n props: {\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n moreDetails: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n /**\n * Optionally replace key/value and display tooltips for the tab\n * Dictionary key based\n */\n tooltips: {\n type: Object,\n default: () => {\n return {};\n }\n },\n\n /**\n * Optionally display icons next to the tab\n * Dictionary key based\n */\n icons: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n\n data() {\n return {\n extensionType: ExtensionPoint.PANEL,\n extensionLocation: PanelLocation.DETAIL_TOP,\n annotationsVisible: false,\n showAllLabels: false,\n view: _VIEW\n };\n },\n\n computed: {\n namespaces() {\n return (this.value?.namespaces || []).map((namespace) => {\n return {\n name: namespace?.metadata?.name,\n detailLocation: namespace.detailLocation\n };\n });\n },\n details() {\n const items = [\n ...(this.moreDetails || []),\n ...(this.value?.details || []),\n ].filter((x) => x.separator || (!!`${ x.content }` && x.content !== undefined && x.content !== null));\n\n const groups = [];\n let currentGroup = [];\n\n items.forEach((i) => {\n if (i.separator) {\n groups.push(currentGroup);\n currentGroup = [];\n } else {\n currentGroup.push(i);\n }\n });\n\n if (currentGroup.length) {\n groups.push(currentGroup);\n }\n\n return groups;\n },\n\n labels() {\n if (this.showAllLabels || !this.showFilteredSystemLabels) {\n return this.value?.labels || {};\n }\n\n return this.value?.filteredSystemLabels;\n },\n\n internalTooltips() {\n return this.value?.detailTopTooltips || this.tooltips;\n },\n\n internalIcons() {\n return this.value?.detailTopIcons || this.icons;\n },\n\n annotations() {\n return this.value?.annotations || {};\n },\n\n description() {\n return this.value?.description;\n },\n\n hasDetails() {\n return !isEmpty(this.details);\n },\n\n hasLabels() {\n return !isEmpty(this.labels);\n },\n\n hasAnnotations() {\n return !isEmpty(this.annotations);\n },\n\n hasDescription() {\n return !isEmpty(this.description);\n },\n\n hasNamespaces() {\n return !isEmpty(this.namespaces);\n },\n\n annotationCount() {\n return Object.keys(this.annotations || {}).length;\n },\n\n isEmpty() {\n const hasAnything = this.hasDetails || this.hasLabels || this.hasAnnotations || this.hasDescription || this.hasNamespaces;\n\n return !hasAnything;\n },\n\n showFilteredSystemLabels() {\n // It would be nicer to use hasSystemLabels here, but not all places have implemented it\n // Instead check that there's a discrepancy between all labels and all labels without system ones\n if (this.value?.labels && this.value?.filteredSystemLabels) {\n const labelCount = Object.keys(this.value.labels).length;\n const filteredSystemLabelsCount = Object.keys(this.value.filteredSystemLabels).length;\n\n return labelCount !== filteredSystemLabelsCount;\n }\n\n return false;\n },\n },\n methods: {\n toggleLabels() {\n this.showAllLabels = !this.showAllLabels;\n },\n\n toggleAnnotations(ev) {\n this.annotationsVisible = !this.annotationsVisible;\n }\n }\n};\n</script>\n\n<template>\n <div\n class=\"detail-top\"\n :class=\"{empty: isEmpty}\"\n >\n <div\n v-if=\"hasNamespaces\"\n class=\"labels\"\n >\n <span class=\"label\">\n {{ t('resourceDetail.detailTop.namespaces') }}:\n </span>\n <span>\n <router-link\n v-for=\"namespace in namespaces\"\n :key=\"namespace.name\"\n :to=\"namespace.detailLocation\"\n class=\"namespaceLinkList\"\n >\n {{ namespace.name }}\n </router-link>\n </span>\n </div>\n\n <div\n v-if=\"description\"\n class=\"description\"\n >\n <span class=\"label\">\n {{ t('resourceDetail.detailTop.description') }}:\n </span>\n <span class=\"content\">{{ description }}</span>\n </div>\n\n <div v-if=\"hasDetails\">\n <div\n v-for=\"group, index in details\"\n :key=\"index\"\n class=\"details\"\n >\n <div\n v-for=\"(detail, i) in group\"\n :key=\"i\"\n class=\"detail\"\n >\n <span class=\"label\">\n {{ detail.label }}:\n </span>\n <component\n :is=\"detail.formatter\"\n v-if=\"detail.formatter\"\n :value=\"detail.content\"\n v-bind=\"detail.formatterOpts\"\n />\n <span v-else>{{ detail.content }}</span>\n </div>\n </div>\n </div>\n\n <div\n v-if=\"hasLabels\"\n class=\"labels\"\n >\n <div class=\"tags\">\n <span class=\"label\">\n {{ t('resourceDetail.detailTop.labels') }}:\n </span>\n <Tag\n v-for=\"(prop, key) in labels\"\n :key=\"key\"\n >\n <i\n v-if=\"internalIcons[key]\"\n class=\"icon\"\n :class=\"internalIcons[key]\"\n />\n <span\n v-if=\"internalTooltips[key]\"\n v-clean-tooltip=\"prop ? `${key} : ${prop}` : key\"\n >\n <span>{{ internalTooltips[key] ? internalTooltips[key] : key }}</span>\n <span v-if=\"showAllLabels\">: {{ key }}</span>\n </span>\n <span v-else>{{ prop ? `${key} : ${prop}` : key }}</span>\n </Tag>\n <a\n v-if=\"showFilteredSystemLabels\"\n href=\"#\"\n class=\"detail-top__label-button\"\n @click.prevent=\"toggleLabels\"\n >\n {{ t(`resourceDetail.detailTop.${showAllLabels? 'hideLabels' : 'showLabels'}`) }}\n </a>\n </div>\n </div>\n\n <div\n v-if=\"hasAnnotations\"\n class=\"annotations\"\n >\n <span class=\"label\">\n {{ t('resourceDetail.detailTop.annotations') }}:\n </span>\n <a\n href=\"#\"\n @click.prevent=\"toggleAnnotations\"\n >\n {{ t(`resourceDetail.detailTop.${annotationsVisible? 'hideAnnotations' : 'showAnnotations'}`, {annotations: annotationCount}) }}\n </a>\n <div v-if=\"annotationsVisible\">\n <DetailText\n v-for=\"(val, key) in annotations\"\n :key=\"key\"\n class=\"annotation\"\n :value=\"val\"\n :label=\"key\"\n />\n </div>\n </div>\n\n <!-- Extensions area -->\n <ExtensionPanel\n :resource=\"value\"\n :type=\"extensionType\"\n :location=\"extensionLocation\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n .detail-top {\n $spacing: 4px;\n\n &:not(.empty) {\n // Flip of .masthead padding/margin\n padding-top: 10px;\n border-top: 1px solid var(--border);\n margin-top: 10px;\n }\n\n .namespaceLinkList:not(:first-child):before {\n content: \", \";\n }\n\n .tags {\n display: inline-flex;\n flex-direction: row;\n flex-wrap: wrap;\n position: relative;\n top: $spacing * math.div(-1, 2);\n\n .label {\n position: relative;\n top: $spacing;\n }\n\n .tag {\n margin: math.div($spacing, 2) $spacing 0 math.div($spacing, 2);\n font-size: 12px;\n }\n }\n\n .annotation {\n margin-top: 10px;\n }\n\n .label {\n color: var(--input-label);\n margin: 0 4px 0 0;\n }\n\n &__label-button {\n padding: 4px;\n }\n\n .details {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n .detail {\n margin-right: 20px;\n margin-bottom: 3px;\n }\n &:not(:first-of-type) {\n margin-top: 3px;\n }\n }\n\n & > div {\n &:not(:last-of-type) {\n margin-bottom: $spacing;\n }\n }\n\n .icon {\n vertical-align: top;\n }\n }\n</style>\n","import { render } from \"./DetailTop.vue?vue&type=template&id=50af44aa\"\nimport script from \"./DetailTop.vue?vue&type=script&lang=js\"\nexport * from \"./DetailTop.vue?vue&type=script&lang=js\"\n\nimport \"./DetailTop.vue?vue&type=style&index=0&id=50af44aa&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport * as d3 from 'd3';\nimport { STATES } from '@shell/plugins/dashboard-store/resource-class';\nimport { BadgeState } from '@components/BadgeState';\nimport { getChartIcon } from './chartIcons.js';\n\nexport default {\n name: 'ForceDirectedTreeChart',\n components: { BadgeState },\n props: {\n data: {\n type: [Array, Object],\n required: true\n },\n fdcConfig: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n dataWatcher: undefined,\n parsedInfo: undefined,\n root: undefined,\n allNodesData: undefined,\n allLinks: undefined,\n rootNode: undefined,\n node: undefined,\n link: undefined,\n svg: undefined,\n zoom: undefined,\n simulation: undefined,\n isChartFirstRendered: false,\n isChartFirstRenderAnimationFinished: false,\n moreInfo: {}\n };\n },\n methods: {\n watcherFunction(newValue) {\n if (newValue.length) {\n if (!this.isChartFirstRendered) {\n this.parsedInfo = this.fdcConfig.parseData(this.data);\n\n // set details info and set active state for node\n this.setDetailsInfo(this.parsedInfo, false);\n this.parsedInfo.active = true;\n\n // render and update chart\n this.renderChart();\n this.updateChart(true, true);\n this.isChartFirstRendered = true;\n\n // here we just look for changes in the status of the nodes and update them accordingly\n } else {\n const parsedInfo = this.fdcConfig.parseData(this.data);\n const flattenedData = this.flatten(parsedInfo);\n let hasStatusChange = false;\n\n flattenedData.forEach((item) => {\n const index = this.allNodesData.findIndex((nodeData) => item.matchingId === nodeData.data.matchingId);\n\n // apply status change to each node\n if (index > -1 && this.allNodesData[index].data.state !== item.state) {\n this.allNodesData[index].data.state = item.state;\n this.allNodesData[index].data.stateLabel = item.stateLabel;\n this.allNodesData[index].data.stateColor = item.stateColor;\n hasStatusChange = true;\n\n // if node is selected (active), update details info\n if (this.allNodesData[index].data.active) {\n this.setDetailsInfo(this.allNodesData[index].data, false);\n }\n }\n });\n\n if (hasStatusChange) {\n this.updateChart(false, false);\n }\n }\n }\n },\n renderChart() {\n this.zoom = d3.zoom().scaleExtent([1 / 8, 16]).on('zoom', this.zoomed);\n const transform = d3.zoomIdentity.scale(1).translate(0, 0);\n\n this.rootNode = this.svg.append('g')\n .attr('class', 'root-node');\n\n this.svg.call(this.zoom);\n this.svg.call(this.zoom.transform, transform);\n\n this.simulation = d3.forceSimulation()\n .force('charge', d3.forceManyBody().strength(this.fdcConfig.simulationParams.fdcStrength).distanceMax(this.fdcConfig.simulationParams.fdcDistanceMax))\n .force('collision', d3.forceCollide(this.fdcConfig.simulationParams.fdcForceCollide))\n .force('center', d3.forceCenter( this.fdcConfig.chartWidth / 2, this.fdcConfig.chartHeight / 2 ))\n .alphaDecay(this.fdcConfig.simulationParams.fdcAlphaDecay)\n .on('tick', this.ticked)\n .on('end', () => {\n if (!this.isChartFirstRenderAnimationFinished) {\n this.zoomFit();\n this.isChartFirstRenderAnimationFinished = true;\n }\n });\n },\n updateChart(isStartingData, isSettingNodesAndLinks) {\n if (isStartingData) {\n this.root = d3.hierarchy(this.parsedInfo);\n }\n\n if (isSettingNodesAndLinks) {\n this.allNodesData = this.flatten(this.root);\n this.allLinks = this.root.links();\n }\n\n this.link = this.rootNode\n .selectAll('.link')\n .data(this.allLinks, (d) => {\n return d.target.id;\n });\n\n this.link.exit().remove();\n\n const linkEnter = this.link\n .enter()\n .append('line')\n .attr('class', 'link')\n .style('opacity', '0.2')\n .style('stroke-width', 4);\n\n this.link = linkEnter.merge(this.link);\n\n this.node = this.rootNode\n .selectAll('.node')\n .data(this.allNodesData, (d) => {\n return d.id;\n })\n // this is where we define which prop changes with any data update (status color)\n .attr('class', this.mainNodeClass);\n\n this.node.exit().remove();\n\n // define the node styling and function\n const nodeEnter = this.node\n .enter()\n .append('g')\n .attr('class', this.mainNodeClass)\n .style('opacity', 1)\n .on('click', (ev, d) => {\n this.setDetailsInfo(d.data, true);\n })\n .call(d3.drag()\n .on('start', this.dragStarted)\n .on('drag', this.dragging)\n .on('end', this.dragEnded));\n\n // draw status circle (inherits color from main node)\n nodeEnter.append('circle')\n .attr('r', this.setNodeRadius);\n\n nodeEnter.append('circle')\n .attr('r', (d) => {\n return this.setNodeRadius(d) - 5;\n })\n .attr('class', 'node-hover-layer');\n\n nodeEnter.append('svg').html((d) => {\n const icon = this.fdcConfig.fetchNodeIcon(d);\n\n return getChartIcon(icon);\n })\n .attr('x', this.nodeImagePosition)\n .attr('y', this.nodeImagePosition)\n .attr('height', this.nodeImageSize)\n .attr('width', this.nodeImageSize);\n\n this.node = nodeEnter.merge(this.node);\n\n this.simulation.nodes(this.allNodesData);\n this.simulation.force('link', d3.forceLink()\n .id((d) => {\n return d.id;\n })\n .distance(100)\n .links(this.allLinks)\n );\n },\n mainNodeClass(d) {\n const lowerCaseStatus = d.data?.state ? d.data.state.toLowerCase() : 'unkown_status';\n const defaultClassArray = ['node'];\n\n if (STATES[lowerCaseStatus] && STATES[lowerCaseStatus].color) {\n defaultClassArray.push(`node-${ STATES[lowerCaseStatus].color }`);\n } else {\n defaultClassArray.push(`node-default-fill`);\n }\n\n // node active (clicked)\n if (d.data?.active) {\n defaultClassArray.push('active');\n }\n\n // here we extend the node classes (different chart types)\n const extendedClassArray = this.fdcConfig.extendNodeClass(d).concat(defaultClassArray);\n\n return extendedClassArray.join(' ');\n },\n setNodeRadius(d) {\n const { radius } = this.fdcConfig.nodeDimensions(d);\n\n return radius;\n },\n nodeImageSize(d) {\n const { size } = this.fdcConfig.nodeDimensions(d);\n\n return size;\n },\n nodeImagePosition(d) {\n const { position } = this.fdcConfig.nodeDimensions(d);\n\n return position;\n },\n setDetailsInfo(data, toUpdate) {\n // get the data to be displayed on info box, per each different chart\n this.moreInfo = Object.assign([], this.fdcConfig.infoDetails(data));\n\n // update to the chart is needed when active state changes\n if (toUpdate) {\n this.allNodesData.forEach((item, i) => {\n if (item.data.matchingId === data.matchingId) {\n this.allNodesData[i].data.active = true;\n } else {\n this.allNodesData[i].data.active = false;\n }\n });\n\n this.updateChart(false, false);\n }\n },\n zoomFit() {\n const rootNode = d3.select('.root-node');\n const paddingBuffer = 30;\n\n const chartDimentions = rootNode.node().getBoundingClientRect();\n const chartCoordinates = rootNode.node().getBBox();\n const parent = rootNode.node().parentElement;\n const fullWidth = parent.clientWidth;\n const fullHeight = parent.clientHeight;\n const width = chartDimentions.width;\n const height = chartDimentions.height;\n const midX = chartCoordinates.x + width / 2;\n const midY = chartCoordinates.y + height / 2;\n\n if (width === 0 || height === 0) {\n return;\n } // nothing to fit\n\n const scale = 1 / Math.max(width / (fullWidth - paddingBuffer), height / (fullHeight - paddingBuffer));\n const translate = [fullWidth / 2 - scale * midX, fullHeight / 2 - scale * midY];\n\n const transform = d3.zoomIdentity\n .translate(translate[0], translate[1])\n .scale(scale);\n\n // this update the cached zoom state!!!!! very important so that any transforms from user interaction keep this base!\n this.svg.call(this.zoom.transform, transform);\n },\n ticked() {\n this.link\n .attr('x1', (d) => {\n return d.source.x;\n })\n .attr('y1', (d) => {\n return d.source.y;\n })\n .attr('x2', (d) => {\n return d.target.x;\n })\n .attr('y2', (d) => {\n return d.target.y;\n });\n\n this.node\n .attr('transform', (d) => {\n return `translate(${ d.x }, ${ d.y })`;\n });\n },\n dragStarted(ev, d) {\n if (!ev.active) {\n this.simulation.alphaTarget(0.3).restart();\n }\n d.fx = d.x;\n d.fy = d.y;\n },\n dragging(ev, d) {\n d.fx = ev.x;\n d.fy = ev.y;\n },\n dragEnded(ev, d) {\n if (!ev.active) {\n this.simulation.alphaTarget(0);\n }\n d.fx = undefined;\n d.fy = undefined;\n },\n zoomed(ev) {\n this.rootNode.attr('transform', ev.transform);\n },\n flatten(root) {\n const nodes = [];\n let i = 0;\n\n function recurse(node) {\n if (node.children) {\n node.children.forEach(recurse);\n }\n if (!node.id) {\n node.id = ++i;\n } else {\n ++i;\n }\n nodes.push(node);\n }\n recurse(root);\n\n return nodes;\n }\n },\n mounted() {\n // start by appending SVG to define height of chart area\n this.svg = d3.select('#tree').append('svg')\n .attr('viewBox', `0 0 ${ this.fdcConfig.chartWidth } ${ this.fdcConfig.chartHeight }`)\n .attr('preserveAspectRatio', 'none');\n\n // set watcher for the chart data\n this.dataWatcher = this.$watch(this.fdcConfig.watcherProp, function(newValue) {\n this.watcherFunction(newValue);\n }, {\n deep: true,\n immediate: true\n });\n },\n unmounted() {\n this.dataWatcher();\n },\n};\n</script>\n\n<template>\n <div>\n <div\n class=\"chart-container\"\n data-testid=\"gitrepo_graph\"\n >\n <!-- loading status container -->\n <div\n v-if=\"!isChartFirstRenderAnimationFinished\"\n class=\"loading-container\"\n >\n <p v-show=\"!isChartFirstRendered\">\n {{ t('fleet.fdc.loadingChart') }}\n </p>\n <p v-show=\"isChartFirstRendered && !isChartFirstRenderAnimationFinished\">\n {{ t('fleet.fdc.renderingChart') }}\n </p>\n <i class=\"mt-10 icon-spinner icon-spin\" />\n </div>\n <!-- main div for svg container -->\n <div id=\"tree\" />\n <!-- info box -->\n <div class=\"more-info-container\">\n <div class=\"more-info\">\n <table>\n <tr\n v-for=\"(item, i) in moreInfo\"\n :key=\"i\"\n >\n <td\n v-if=\"item.type !== 'single-error'\"\n :class=\"{'align-middle': item.type === 'state-badge'}\"\n >\n <span class=\"more-info-item-label\">{{ t(item.labelKey) }}:</span>\n </td>\n <!-- title template -->\n <td v-if=\"item.type === 'title-link'\">\n <span v-if=\"item.valueObj.detailLocation\">\n <router-link\n :to=\"item.valueObj.detailLocation\"\n >\n {{ item.valueObj.label }}\n </router-link>\n </span>\n <span v-else>{{ item.valueObj.label }}</span>\n </td>\n <!-- state-badge template -->\n <td\n v-else-if=\"item.type === 'state-badge'\"\n class=\"align-middle\"\n >\n <span>\n <BadgeState\n :color=\"`bg-${item.valueObj.stateColor}`\"\n :label=\"item.valueObj.stateLabel\"\n class=\"state-bagde\"\n />\n </span>\n </td>\n <!-- single-error template -->\n <td\n v-if=\"item.type === 'single-error'\"\n class=\"single-error\"\n colspan=\"2\"\n >\n <p>{{ item.value }}</p>\n </td>\n <!-- default template -->\n <td v-else>\n {{ item.value }}\n </td>\n </tr>\n </table>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.chart-container {\n display: flex;\n background-color: var(--body-bg);\n position: relative;\n border: 1px solid var(--border);\n border-radius: var(--border-radius);\n min-height: 100px;\n\n .loading-container {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: var(--border-radius);\n background-color: var(--body-bg);\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n i {\n font-size: 24px;\n }\n }\n\n #tree {\n width: 70%;\n height: fit-content;\n\n svg {\n margin-top: 3px;\n }\n\n .link {\n stroke: var(--darker);\n }\n\n .node {\n cursor: pointer;\n\n &.active {\n .node-hover-layer {\n display: block;\n }\n }\n\n &.repo.active > circle {\n transform: scale(1.2);\n }\n\n &.bundle.active > circle {\n transform: scale(1.35);\n }\n\n &.bundle-deployment.active > circle {\n transform: scale(1.6);\n }\n\n &.node-default-fill > circle,\n &.repo > circle {\n fill: var(--muted);\n }\n &:not(.repo).node-success > circle {\n fill: var(--success);\n }\n &:not(.repo).node-info > circle {\n fill: var(--info);\n }\n &:not(.repo).node-warning > circle {\n fill: var(--warning);\n }\n &:not(.repo).node-error > circle {\n fill: var(--error);\n }\n\n .node-hover-layer {\n stroke: var(--body-bg);\n stroke-width: 2;\n display: none;\n }\n }\n }\n\n .more-info-container {\n width: 30%;\n position: relative;\n border-left: 1px solid var(--border);\n background-color: var(--body-bg);\n border-top-right-radius: var(--border-radius);\n border-bottom-right-radius: var(--border-radius);\n overflow: hidden;\n\n .more-info {\n position: absolute;\n top: 0;\n left: 0;\n right:0;\n bottom:0;\n width: 100%;\n padding: 20px;\n border-top-right-radius: var(--border-radius);\n border-bottom-right-radius: var(--border-radius);\n overflow-y: auto;\n\n table {\n td {\n vertical-align: top;\n padding-bottom: 10px;\n\n &.align-middle {\n vertical-align: middle;\n }\n }\n\n .more-info-item-label {\n color: var(--darker);\n margin-right: 8px;\n }\n\n .single-error {\n color: var(--error);\n }\n\n p {\n line-height: 1.5em;\n }\n }\n }\n }\n}\n</style>\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function(x, y) {\n var nodes, strength = 1;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n return force;\n}\n","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n random,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"node not found: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n random,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle(random);\n y = target.y + target.vy - source.y - source.vy || jiggle(random);\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.forEach(function(force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes, random);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\nimport {x, y} from \"./simulation.js\";\n\nexport default function() {\n var nodes,\n node,\n random,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","// This is to mitigate an issue where the SVG icons being imported from the project weren't being rendered on Firefox\n// To know more about this technique, check this doc: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs\nexport const getChartIcon = (type) => `<defs>\n<!-- GIT REPO ICON -->\n<svg id=\"git\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\" style=\"enable-background:new 0 0 96 96\" xml:space=\"preserve\"><path class=\"st0\" d=\"M92.138 43.888 52.018 3.77a5.918 5.918 0 0 0-8.369 0l-8.33 8.332L45.887 22.67a7.025 7.025 0 0 1 7.23 1.684 7.031 7.031 0 0 1 1.67 7.275l10.185 10.185a7.03 7.03 0 0 1 7.275 1.67 7.04 7.04 0 0 1 0 9.958 7.042 7.042 0 0 1-11.492-7.658l-9.5-9.499v24.997a7.09 7.09 0 0 1 1.861 1.331 7.042 7.042 0 1 1-7.65-1.537V35.849a7.04 7.04 0 0 1-3.822-9.234l-10.418-10.42-27.51 27.508a5.921 5.921 0 0 0 0 8.371l40.121 40.118a5.919 5.919 0 0 0 8.37 0l39.93-39.932a5.92 5.92 0 0 0 0-8.37z\"/></svg>\n<!-- GENERIC BUNDLE ICON -->\n<svg id=\"bundle\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" fill=\"#FFF\"><path d=\"M16 3.2C8.931 3.2 3.2 8.931 3.2 16S8.931 28.8 16 28.8 28.8 23.069 28.8 16 23.069 3.2 16 3.2zm0 22.4c-5.302 0-9.6-4.298-9.6-9.6s4.298-9.6 9.6-9.6 9.6 4.298 9.6 9.6a9.6 9.6 0 0 1-9.6 9.6z\"/><path d=\"m24.086 16-6.232-1.348.917-1.424-1.424.917-1.348-6.232-1.348 6.232-1.424-.917.917 1.424L7.912 16l6.232 1.348-.917 1.424 1.424-.917 1.348 6.232 1.348-6.232 1.424.917-.917-1.424L24.086 16zM16 16.814a.814.814 0 1 1 0-1.628.814.814 0 0 1 0 1.628z\"/></svg>\n<!-- HELM BUNDLE ICON -->\n<svg id=\"helm\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 500 500\"><defs><style>.cls-1{fill:#fff}</style></defs><path class=\"cls-1\" d=\"M136.53 121.135c-.573-.543-1.195-1.127-1.81-1.718-12.617-12.121-22.382-26.136-28.28-42.702-1.65-4.636-2.897-9.365-2.675-14.359.02-.473.02-.949.052-1.422.445-6.446 4.759-9.703 11.058-8.176a27.325 27.325 0 0 1 5.732 2.196c6.89 3.456 12.506 8.564 17.67 14.166A112.527 112.527 0 0 1 160 102.55a8.296 8.296 0 0 0 .39.86c.07.13.222.213.559.52a176.357 176.357 0 0 1 81.02-24.861c-.177-.876-.282-1.546-.448-2.2a112.494 112.494 0 0 1-2.653-36.957 84.075 84.075 0 0 1 4.445-21.764 31.326 31.326 0 0 1 5.476-10.17 15.687 15.687 0 0 1 3.164-2.822 7.026 7.026 0 0 1 8.032-.056 17.279 17.279 0 0 1 5.84 6.731 53.054 53.054 0 0 1 5.263 14.677 112.505 112.505 0 0 1 2.122 33.004 95.598 95.598 0 0 1-3.49 19.91c7.121 1.312 14.21 2.33 21.147 3.978a186.38 186.38 0 0 1 20.44 6.003 188.317 188.317 0 0 1 19.77 8.57c6.346 3.163 12.386 6.94 18.718 10.537.206-.433.505-.95.706-1.502a108.66 108.66 0 0 1 32.901-46.762 37.758 37.758 0 0 1 11.822-6.883 17.246 17.246 0 0 1 3.679-.845c6.264-.717 8.893 3.224 9.356 7.932a29.944 29.944 0 0 1-.774 10.354 87.906 87.906 0 0 1-10.73 24.688c-6.79 10.972-14.85 20.855-25.093 28.83-.302.236-.568.519-1.08.99a177.78 177.78 0 0 1 26.593 30.883 10.962 10.962 0 0 1-1.689.298c-10.595.015-21.19-.019-31.786.046a4.004 4.004 0 0 1-3.172-1.69 147.875 147.875 0 0 0-88.178-46.549 143.359 143.359 0 0 0-30.28-1.169 146.407 146.407 0 0 0-82.537 31.81 140.067 140.067 0 0 0-16.976 15.843 4.728 4.728 0 0 1-3.863 1.757c-10.121-.07-20.242-.035-30.363-.035h-2.152c.618-2.408 6.84-10.938 13.883-18.553 5.252-5.679 10.817-11.07 16.468-16.818ZM394.53 347.912a176.639 176.639 0 0 1-23.974 27.164l1.862 1.55a108.315 108.315 0 0 1 33.683 48.146 34.618 34.618 0 0 1 2.202 14.42 14.885 14.885 0 0 1-.748 3.692 7.208 7.208 0 0 1-8.157 5.023 22.233 22.233 0 0 1-6.763-2.006 51.232 51.232 0 0 1-9.182-5.815 107.592 107.592 0 0 1-32.936-46.707c-.187-.514-.392-1.02-.722-1.877a194.65 194.65 0 0 1-25.012 14.008 181.67 181.67 0 0 1-26.687 9.724 187.556 187.556 0 0 1-28.305 5.388c.168.84.265 1.51.438 2.16a109.172 109.172 0 0 1 2.97 36.442 80.804 80.804 0 0 1-4.422 22.478 78.25 78.25 0 0 1-4.165 8.744 13.39 13.39 0 0 1-2.339 2.971c-3.98 4.11-8.732 4.144-12.611-.074a27.28 27.28 0 0 1-3.907-5.617c-3.077-5.776-4.66-12.056-5.791-18.46a116.863 116.863 0 0 1-1.36-26.465 94.48 94.48 0 0 1 2.885-19.186c.14-.532.268-1.07.372-1.61.026-.137-.064-.297-.171-.738a176.121 176.121 0 0 1-80.969-24.994c-.41.91-.762 1.675-1.101 2.446a110.477 110.477 0 0 1-30.901 41.42 38.16 38.16 0 0 1-12.047 6.96 12.09 12.09 0 0 1-6.516.7 7.119 7.119 0 0 1-5.403-4.49c-1.416-3.424-1.165-6.985-.684-10.517a55.453 55.453 0 0 1 4.307-14.25 112.5 112.5 0 0 1 26.512-37.763c.459-.435.93-.857 1.38-1.3a3.76 3.76 0 0 0 .366-.655 178.905 178.905 0 0 1-28.47-31.317c.985-.08 1.644-.18 2.303-.18 10.514-.01 21.029.027 31.543-.044a4.706 4.706 0 0 1 3.703 1.626 146.946 146.946 0 0 0 39.403 28.885 139.947 139.947 0 0 0 49.704 14.774q70.68 6.87 121.6-42.854a7.646 7.646 0 0 1 5.992-2.444c9.802.121 19.605.05 29.408.05h2.534ZM350.736 197.762c2.787 0 5.47.189 8.115-.05 2.995-.271 5.139.8 7.323 2.813 12.613 11.622 25.357 23.1 38.059 34.627.638.58 1.29 1.144 2.11 1.87.764-.657 1.481-1.243 2.165-1.865q19.638-17.878 39.248-35.787a5.448 5.448 0 0 1 4.204-1.646c3.218.13 6.446.038 9.84.038V303.13c-1.722.504-24.875.604-27.638.061V249.83l-.537-.254-27.238 24.841-27.458-24.736-.524.192c-.023 4.454-.008 8.908-.01 13.362q-.005 6.64-.001 13.28v26.871h-27.428c-.514-1.773-.753-99.662-.23-105.623ZM97.634 197.882h27.264c.55 1.753.658 102.972.094 105.525H97.705c-.15-6.703-.048-13.384-.067-20.061-.018-6.623-.004-13.245-.004-20.04H63.847v39.741c-2.06.615-25.334.674-27.648.123V197.894h27.538v37.19c1.968.568 30.924.673 33.872.129.009-2.978.02-6.027.024-9.076q.007-4.744.001-9.487v-18.768ZM157.576 303.368V198.195c1.617-.53 61.545-.736 65.462-.205v22.414c-.879.063-1.786.184-2.693.185q-16.008.02-32.017.009h-2.968v17.433h33.347v23.192h-33.049c-.553 1.985-.705 15.817-.256 19.646.845.057 1.75.17 2.655.17q16.01.019 32.018.009h2.97v22.32ZM254.283 303.409c-.5-2.823-.4-103.602.097-105.518h27.162v77.765c1.172.06 2.092.149 3.011.15q16.128.014 32.256.006h2.908v27.597Z\"/></svg>\n<!-- RESOURCE DEPLOYMENT ICON -->\n<svg id=\"deployment\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M24.01 20.027v2h-24v-2h4v-1a2.006 2.006 0 0 1-2-2v-10a2.006 2.006 0 0 1 2-2h1.996v2H4.01v10h16v-10h-2.004v-2h2.004a2.006 2.006 0 0 1 2 2l-.01 10a1.997 1.997 0 0 1-1.99 2v1Zm-9-6.012-3-3-3 3h2v2.01h2v-2.01Zm.995-7.991a4 4 0 1 1-4-4 4.001 4.001 0 0 1 4 4Zm-4.4 2.96v-.56a.802.802 0 0 1-.8-.8v-.4L9.06 5.479a2.958 2.958 0 0 0 2.545 3.505Zm2.658-1.007a2.977 2.977 0 0 0-1.068-4.704.797.797 0 0 1-.79.75h-.8v.8a.401.401 0 0 1-.4.4h-.8v.8h2.4a.401.401 0 0 1 .4.4v1.2h.4a.787.787 0 0 1 .658.354Z\" fill=\"#fff\"/></svg>\n<!-- NODE ICON -->\n<svg id=\"node\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g fill=\"#fff\"><circle cx=\"12\" cy=\"3\" r=\"1\"/><circle cx=\"20\" cy=\"8\" r=\"1\"/><circle cx=\"20\" cy=\"16\" r=\"1\"/><circle cx=\"4\" cy=\"8\" r=\"1\"/><circle cx=\"4\" cy=\"16\" r=\"1\"/><path d=\"M20 14v-4a1.992 1.992 0 0 1-1.481-3.333l-4.783-2.69a1.983 1.983 0 0 1-3.472 0l-4.783 2.69A1.992 1.992 0 0 1 4 10v4a1.992 1.992 0 0 1 1.481 3.333l4.783 2.69a1.991 1.991 0 0 1 1.236-.952v-5.142a2 2 0 1 1 1 0v5.142a1.991 1.991 0 0 1 1.236.953l4.783-2.69A1.992 1.992 0 0 1 20 14Z\"/><circle cx=\"12\" cy=\"21\" r=\"1\"/><circle cx=\"12\" cy=\"12\" r=\"1\"/></g></svg>\n<!-- RESOURCE OTHER ICON -->\n<svg id=\"other\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"#FFF\"><path d=\"M27.476 10.22H14.83l-1.558-3.115a1.327 1.327 0 0 0-1.184-.732H4.522c-.731 0-1.324.593-1.324 1.324v16.606c0 .731.593 1.324 1.324 1.324h22.953c.731 0 1.324-.593 1.324-1.324v-12.76c0-.731-.593-1.324-1.324-1.324z\"/></svg>\n</defs>\n<use id=\"customIcon\" href=\"#${ type }\" fill=\"#fff\" />`;\n","import { render } from \"./index.vue?vue&type=template&id=0c2f9a28\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=0c2f9a28&lang=scss\"\n\nimport exportComponent from \"../../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Popup, popupWindowOptions } from '@shell/utils/window';\r\nimport { parse as parseUrl, addParam } from '@shell/utils/url';\r\nimport {\r\n BACK_TO, SPA, _EDIT, _FLAGGED, TIMED_OUT, IS_SLO, LOGGED_OUT\r\n} from '@shell/config/query-params';\r\nimport { MANAGEMENT, NORMAN } from '@shell/config/types';\r\nimport { allHash } from '@shell/utils/promise';\r\nimport { getProductFromRoute, getResourceFromRoute } from '@shell/utils/router';\r\nimport { NAME as EXPLORER } from '@shell/config/product/explorer';\r\nimport { findBy } from '@shell/utils/array';\r\n\r\nexport function openAuthPopup(url, provider) {\r\n const popup = new Popup(() => {\r\n popup.promise = new Promise((resolve, reject) => {\r\n popup.resolve = resolve;\r\n popup.reject = reject;\r\n });\r\n\r\n window.onAuthTest = (error, code) => {\r\n if (error) {\r\n popup.reject(error);\r\n }\r\n\r\n delete window.onAuthTest;\r\n popup.resolve(code);\r\n };\r\n }, () => {\r\n popup.reject(new Error('Access was not authorized'));\r\n });\r\n\r\n popup.open(url, 'auth-test', popupWindowOptions());\r\n\r\n return popup.promise;\r\n}\r\n\r\nexport function returnTo(opt, vm) {\r\n let { route = `/auth/verify` } = opt;\r\n\r\n if ( vm.$router.options && vm.$router.options.base ) {\r\n const routerBase = vm.$router.options.base;\r\n\r\n if ( routerBase !== '/' ) {\r\n route = `${ routerBase.replace(/\\/+$/, '') }/${ route.replace(/^\\/+/, '') }`;\r\n }\r\n }\r\n\r\n let returnToUrl = `${ window.location.origin }${ route }`;\r\n\r\n const parsed = parseUrl(window.location.href);\r\n\r\n if ( parsed.query.spa !== undefined ) {\r\n returnToUrl = addParam(returnToUrl, SPA, _FLAGGED);\r\n }\r\n\r\n if ( opt.backTo ) {\r\n returnToUrl = addParam(returnToUrl, BACK_TO, opt.backTo);\r\n }\r\n\r\n if (opt.config) {\r\n returnToUrl = addParam(returnToUrl, 'config', opt.config);\r\n }\r\n\r\n if (opt.isSlo) {\r\n returnToUrl = addParam(returnToUrl, IS_SLO, _FLAGGED);\r\n returnToUrl = addParam(returnToUrl, LOGGED_OUT, _FLAGGED);\r\n }\r\n\r\n return returnToUrl;\r\n}\r\n\r\n/**\r\n * Determines common auth provider info as those that are available (non-local) and the location of the enabled provider\r\n */\r\nexport const authProvidersInfo = async(store) => {\r\n try {\r\n const rows = await store.dispatch(`management/findAll`, { type: MANAGEMENT.AUTH_CONFIG });\r\n\r\n return parseAuthProvidersInfo(rows);\r\n } catch (error) {\r\n return {};\r\n }\r\n};\r\n\r\n/**\r\n * Parses auth provider's info to return if there's an auth provider enabled\r\n */\r\nexport function parseAuthProvidersInfo(rows) {\r\n const nonLocal = rows.filter((x) => x.name !== 'local');\r\n const enabled = nonLocal.filter((x) => x.enabled === true );\r\n\r\n const supportedNonLocal = nonLocal.filter((x) => x.id !== 'oidc');\r\n\r\n const enabledLocation = enabled.length === 1 ? {\r\n name: 'c-cluster-auth-config-id',\r\n params: { id: enabled[0].id },\r\n query: { mode: _EDIT }\r\n } : null;\r\n\r\n return {\r\n nonLocal: supportedNonLocal,\r\n enabledLocation,\r\n enabled\r\n };\r\n}\r\n\r\nexport const checkSchemasForFindAllHash = (types, store) => {\r\n const hash = {};\r\n\r\n for (const [key, value] of Object.entries(types)) {\r\n const schema = store.getters[`${ value.inStoreType }/schemaFor`](value.type);\r\n\r\n // It could be that user has permissions for GET but not list\r\n // e.g. Standard user with GitRepo permissions try to fetch list of fleetworkspaces\r\n // user has ability to GET but not fleet workspaces\r\n // so optionally define a function that require it to pass before /findAll\r\n const validSchema = value.schemaValidator ? value.schemaValidator(schema) : !!schema;\r\n\r\n if (validSchema) {\r\n const res = store.dispatch(`${ value.inStoreType }/findAll`, { type: value.type, opt: value.opt } );\r\n\r\n if (!value.skipWait) {\r\n hash[key] = res;\r\n }\r\n }\r\n }\r\n\r\n return allHash(hash);\r\n};\r\n\r\nexport const checkPermissions = (types, getters) => {\r\n const hash = {};\r\n\r\n for (const [key, value] of Object.entries(types)) {\r\n const schema = getters['management/schemaFor'](value.type);\r\n\r\n if (!schema) {\r\n hash[key] = false;\r\n\r\n continue;\r\n }\r\n\r\n // It could be that user has permissions for GET but not list\r\n // e.g. Standard user with GitRepo permissions try to fetch list of fleetworkspaces\r\n // user has ability to GET but not fleet workspaces\r\n // so optionally define a function that require it to pass before /findAll\r\n if (value.schemaValidator) {\r\n hash[key] = value.schemaValidator(schema);\r\n\r\n continue;\r\n }\r\n\r\n if (value.resourceMethods && schema) {\r\n hash[key] = value.resourceMethods.every((method) => {\r\n return (schema.resourceMethods || []).includes(method);\r\n });\r\n\r\n continue;\r\n }\r\n\r\n if (value.collectionMethods && schema) {\r\n hash[key] = value.collectionMethods.every((method) => {\r\n return (schema.collectionMethods || []).includes(method);\r\n });\r\n\r\n continue;\r\n }\r\n\r\n hash[key] = !!schema;\r\n }\r\n\r\n return allHash(hash);\r\n};\r\n\r\nexport const canViewResource = (store, resource) => {\r\n // Note - don't use the current products store... because products can override stores for resources with `typeStoreMap`\r\n const inStore = store.getters['currentStore'](resource);\r\n // There's a chance we're in an extension's product who's store could be anything, so confirm schemaFor exists\r\n const schemaFor = store.getters[`${ inStore }/schemaFor`];\r\n\r\n // In order to check a resource is valid we need these\r\n if (!inStore || !schemaFor) {\r\n return false;\r\n }\r\n\r\n // Resource is valid if a schema exists for it (standard resource, spoofed resource) or it's a virtual resource\r\n const validResource = schemaFor(resource) || store.getters['type-map/isVirtual'](resource);\r\n\r\n return !!validResource;\r\n};\r\n\r\n// ************************************************************\r\n//\r\n// BELOW ARE METHODS THAT ARE A PART OF THE AUTHENTICATED MIDDLEWARE REMOVAL. THIS IS A TEMPORARY HOME FOR THESE UTILS AND SHOULD BE REWRITTEN, MOVED OR DELETED.\r\n//\r\n// TODO: Remove and refactor everything below for more clarity and better organization. https://github.com/rancher/dashboard/issues/11111\r\n//\r\n// ************************************************************\r\n\r\n/**\r\n * Attempt to set the product in our datastore if the route matches a known product. Otherwise show an error page instead.\r\n */\r\nexport function setProduct(store, to) {\r\n let product = getProductFromRoute(to);\r\n\r\n // since all products are hardcoded as routes (ex: c-local-explorer), if we match the wildcard route it means that the product does not exist\r\n if ((product && (!to.matched.length || (to.matched.length && to.matched[0].path === '/c/:cluster/:product'))) ||\r\n // if the product grabbed from the route is not registered, then we don't have it!\r\n (product && !store.getters['type-map/isProductRegistered'](product))) {\r\n const error = new Error(store.getters['i18n/t']('nav.failWhale.productNotFound', { productNotFound: product }, true));\r\n\r\n return store.dispatch('loadingError', error);\r\n }\r\n\r\n if ( !product ) {\r\n product = EXPLORER;\r\n }\r\n\r\n const oldProduct = store.getters['productId'];\r\n const oldStore = store.getters['currentProduct']?.inStore;\r\n\r\n if ( product !== oldProduct ) {\r\n store.commit('setProduct', product);\r\n }\r\n\r\n const neuStore = store.getters['currentProduct']?.inStore;\r\n\r\n if ( neuStore !== oldStore ) {\r\n // If the product store changes, clear the catalog.\r\n // There might be management catalog items in it vs cluster.\r\n store.commit('catalog/reset');\r\n }\r\n}\r\n\r\n/**\r\n * Check that the resource is valid, if not redirect to fail whale\r\n *\r\n * This requires that\r\n * - product is set\r\n * - product's store is set and setup (so we can check schema's within it)\r\n * - product's store has the schemaFor getter (extension stores might not have it)\r\n * - there's a resource associated with route (meta or param)\r\n */\r\nexport function validateResource(store, to) {\r\n const product = store.getters['currentProduct'];\r\n const resource = getResourceFromRoute(to);\r\n\r\n // In order to check a resource is valid we need these\r\n if (!product || !resource) {\r\n return false;\r\n }\r\n\r\n if (canViewResource(store, resource)) {\r\n return false;\r\n }\r\n\r\n // Unknown resource, redirect to fail whale\r\n\r\n const error = new Error(store.getters['i18n/t']('nav.failWhale.resourceNotFound', { resource }, true));\r\n\r\n store.dispatch('loadingError', error);\r\n\r\n throw error;\r\n}\r\n\r\n/**\r\n * Attempt to load the current user's principal\r\n */\r\nexport async function findMe(store) {\r\n // First thing we do in loadManagement is fetch principals anyway.... so don't ?me=true here\r\n const principals = await store.dispatch('rancher/findAll', {\r\n type: NORMAN.PRINCIPAL,\r\n opt: {\r\n url: '/v3/principals',\r\n redirectUnauthorized: false,\r\n }\r\n });\r\n\r\n const me = findBy(principals, 'me', true);\r\n\r\n return me;\r\n}\r\n\r\n/**\r\n * Attempt to login with default credentials. Note: I think that this may actually be outdated since we don't use these default credentials anymore on setup.\r\n */\r\nexport async function tryInitialSetup(store, password = 'admin') {\r\n try {\r\n const res = await store.dispatch('auth/login', {\r\n provider: 'local',\r\n body: {\r\n username: 'admin',\r\n password\r\n },\r\n });\r\n\r\n return res._status === 200;\r\n } catch (e) {\r\n console.error('Error trying initial setup', e); // eslint-disable-line no-console\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Record in our state management that we're indeed logged in\r\n */\r\nexport function isLoggedIn(store, me) {\r\n store.commit('auth/hasAuth', true);\r\n store.commit('auth/loggedInAs', me.id);\r\n}\r\n\r\n/**\r\n * Record in our state management that we're not logged in and then redirect to the login page\r\n */\r\nexport function notLoggedIn(store, redirect, route) {\r\n store.commit('auth/hasAuth', true);\r\n\r\n if ( route.name === 'index' ) {\r\n return redirect('/auth/login');\r\n } else {\r\n return redirect(`/auth/login?${ TIMED_OUT }`);\r\n }\r\n}\r\n\r\n/**\r\n * Record in our state management that we don't have any auth providers\r\n */\r\nexport function noAuth(store) {\r\n store.commit('auth/hasAuth', false);\r\n}\r\n","import { render } from \"./index.vue?vue&type=template&id=3c03c7c6&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3c03c7c6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3c03c7c6\"]])\n\nexport default __exports__","import { render } from \"./create.vue?vue&type=template&id=491c8202\"\nimport script from \"./create.vue?vue&type=script&lang=js\"\nexport * from \"./create.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceDetail from '@shell/components/ResourceDetail/index.vue';\n\nexport default {\n name: 'HarvesterResourcedId',\n components: { ResourceDetail },\n};\n</script>\n\n<template>\n <ResourceDetail />\n</template>\n","import { render } from \"./_id.vue?vue&type=template&id=12c7baf9\"\nimport script from \"./_id.vue?vue&type=script&lang=js\"\nexport * from \"./_id.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceDetail from '@shell/components/ResourceDetail/index.vue';\n\nexport default {\n name: 'HarvesterResourcedNamespaceId',\n components: { ResourceDetail },\n};\n</script>\n\n<template>\n <ResourceDetail />\n</template>\n","import { render } from \"./_id.vue?vue&type=template&id=30eb7d52\"\nimport script from \"./_id.vue?vue&type=script&lang=js\"\nexport * from \"./_id.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport CruResource from '@shell/components/CruResource';\nimport { RadioGroup } from '@components/Form/Radio';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { exceptionToErrorsArray } from '@shell/utils/error';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport UpgradeInfo from '../../../../components/UpgradeInfo';\n\nimport { HCI } from '../../../../types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../../../config/harvester';\n\nconst IMAGE_METHOD = {\n NEW: 'new',\n EXIST: 'exist'\n};\n\nconst DOWNLOAD = 'download';\nconst UPLOAD = 'upload';\n\nexport default {\n name: 'HarvesterAirgapUpgrade',\n components: {\n Checkbox, CruResource, LabeledSelect, LabeledInput, RadioGroup, UpgradeInfo\n },\n\n inheritAttrs: false,\n\n async fetch() {\n await this.$store.dispatch('harvester/findAll', { type: HCI.IMAGE });\n\n const value = await this.$store.dispatch('harvester/create', {\n type: HCI.UPGRADE,\n metadata: {\n generateName: 'hvst-upgrade-',\n namespace: 'harvester-system',\n },\n spec: { image: '' }\n });\n\n const imageValue = await this.$store.dispatch('harvester/create', {\n type: HCI.IMAGE,\n metadata: {\n name: '',\n namespace: 'harvester-system',\n generateName: 'image-',\n annotations: {}\n },\n spec: {\n sourceType: UPLOAD,\n displayName: '',\n checksum: ''\n },\n });\n\n this.value = value;\n this.imageValue = imageValue;\n },\n\n data() {\n return {\n value: null,\n file: {},\n imageId: '',\n imageSource: IMAGE_METHOD.NEW,\n sourceType: UPLOAD,\n imageValue: null,\n errors: [],\n enableLogging: true,\n IMAGE_METHOD\n };\n },\n\n computed: {\n doneRoute() {\n return `${ HARVESTER_PRODUCT }-c-cluster-resource`;\n },\n\n osImageOptions() {\n return this.$store.getters['harvester/all'](HCI.IMAGE)\n .filter((I) => I.isOSImage)\n .map((I) => {\n return {\n label: I.spec.displayName,\n value: I.id,\n disabled: !I.isReady\n };\n });\n },\n\n uploadImage() {\n return this.imageSource === IMAGE_METHOD.NEW;\n },\n\n fileName() {\n return this.file?.name || '';\n },\n\n canEnableLogging() {\n return this.$store.getters['harvester/schemaFor'](HCI.UPGRADE_LOG);\n },\n },\n\n methods: {\n done() {\n this.$router.push({\n name: this.doneRoute,\n params: { resource: HCI.SETTING, product: 'harvester' }\n });\n },\n\n async save(buttonCb) {\n let res = null;\n\n this.errors = [];\n if (!this.imageValue.spec.displayName && this.uploadImage) {\n this.errors.push(this.$store.getters['i18n/t']('validation.required', { key: this.t('generic.name') }));\n buttonCb(false);\n\n return;\n }\n\n try {\n if (this.imageSource === IMAGE_METHOD.NEW) {\n this.imageValue.metadata.annotations[HCI_ANNOTATIONS.OS_UPGRADE_IMAGE] = 'True';\n\n if (this.sourceType === UPLOAD) {\n this.imageValue.spec.sourceType = UPLOAD;\n const file = this.file;\n\n if (!file.name) {\n this.errors.push(this.$store.getters['i18n/t']('harvester.setting.upgrade.selectExitImage'));\n buttonCb(false);\n\n return;\n }\n\n this.imageValue.spec.url = '';\n\n this.imageValue.metadata.annotations[HCI_ANNOTATIONS.IMAGE_NAME] = file.name;\n\n res = await this.imageValue.save();\n\n res.uploadImage(file);\n } else if (this.sourceType === DOWNLOAD) {\n this.imageValue.spec.sourceType = DOWNLOAD;\n if (!this.imageValue.spec.url) {\n this.errors.push(this.$store.getters['i18n/t']('harvester.setting.upgrade.imageUrl'));\n buttonCb(false);\n\n return;\n }\n\n res = await this.imageValue.save();\n }\n\n this.value.spec.image = res.id;\n } else if (this.imageSource === IMAGE_METHOD.EXIST) {\n if (!this.imageId) {\n this.errors.push(this.$store.getters['i18n/t']('harvester.setting.upgrade.chooseFile'));\n\n return;\n }\n\n this.value.spec.image = this.imageId;\n }\n\n if (this.canEnableLogging) {\n this.value.spec.logEnabled = this.enableLogging;\n }\n\n await this.value.save();\n this.done();\n buttonCb(true);\n } catch (e) {\n this.errors = exceptionToErrorsArray(e);\n buttonCb(false);\n }\n },\n\n handleFileUpload() {\n this.file = this.$refs.file.files[0];\n },\n\n selectFile() {\n this.$refs.file.value = null;\n this.$refs.file.click();\n },\n },\n\n watch: {\n 'imageValue.spec.url': {\n handler(neu) {\n const suffixName = neu?.split('/')?.pop();\n const splitName = suffixName?.split('.') || [];\n const fileSuffix = splitName?.pop()?.toLowerCase();\n\n if (splitName.length > 1 && fileSuffix === 'iso' && !this.imageValue.spec.displayName) {\n this.imageValue.spec.displayName = suffixName;\n }\n },\n deep: true\n },\n\n file(neu) {\n if (!this.imageValue.spec.displayName && neu.name) {\n this.imageValue.spec.displayName = neu.name;\n }\n }\n }\n};\n</script>\n\n<template>\n <div\n v-if=\"value\"\n id=\"air-gap\"\n >\n <h3 class=\"mb-20\">\n {{ t('harvester.upgradePage.osUpgrade') }}\n </h3>\n <CruResource\n :done-route=\"doneRoute\"\n :resource=\"value\"\n mode=\"create\"\n :errors=\"errors\"\n :can-yaml=\"false\"\n finish-button-mode=\"upgrade\"\n :cancel-event=\"true\"\n @finish=\"save\"\n @cancel=\"done\"\n >\n <RadioGroup\n v-model:value=\"imageSource\"\n class=\"image-group\"\n name=\"image\"\n :options=\"[\n IMAGE_METHOD.NEW,\n IMAGE_METHOD.EXIST,\n ]\"\n :labels=\"[\n t('harvester.upgradePage.uploadNew'),\n t('harvester.upgradePage.selectExisting'),\n ]\"\n />\n\n <UpgradeInfo />\n\n <div v-if=\"uploadImage\">\n <LabeledInput\n v-model.trim=\"imageValue.spec.displayName\"\n class=\"mb-20\"\n label-key=\"harvester.fields.name\"\n required\n />\n\n <LabeledInput\n v-model:value=\"imageValue.spec.checksum\"\n class=\"mb-10\"\n label-key=\"harvester.setting.upgrade.checksum\"\n />\n\n <Checkbox\n v-if=\"canEnableLogging\"\n v-model:value=\"enableLogging\"\n class=\"check mb-20\"\n type=\"checkbox\"\n :label=\"t('harvester.upgradePage.enableLogging')\"\n />\n\n <RadioGroup\n v-model:value=\"sourceType\"\n class=\"mb-20 image-group\"\n name=\"sourceType\"\n :options=\"[\n 'upload',\n 'download',\n ]\"\n :labels=\"[\n t('harvester.image.sourceType.upload'),\n t('harvester.image.sourceType.download')\n ]\"\n />\n\n <LabeledInput\n v-if=\"sourceType === 'download'\"\n v-model.trim=\"imageValue.spec.url\"\n class=\"labeled-input--tooltip\"\n required\n label-key=\"harvester.image.url\"\n />\n\n <div\n v-else\n class=\"chooseFile\"\n >\n <button\n type=\"button\"\n class=\"btn role-primary\"\n @click=\"selectFile\"\n >\n {{ t('harvester.image.uploadFile') }}\n <input\n v-show=\"false\"\n id=\"file\"\n ref=\"file\"\n type=\"file\"\n accept=\".iso\"\n @change=\"handleFileUpload()\"\n />\n </button>\n\n <span\n :class=\"{ 'text-muted': !fileName }\"\n class=\"ml-20\"\n >\n {{ fileName ? fileName : t('harvester.generic.noFileChosen') }}\n </span>\n </div>\n </div>\n\n <LabeledSelect\n v-else\n v-model:value=\"imageId\"\n :options=\"osImageOptions\"\n required\n class=\"mb-20\"\n label-key=\"harvester.fields.image\"\n />\n </CruResource>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n#air-gap {\n :deep() .image-group .radio-group {\n display: flex;\n .radio-container {\n margin-right: 30px;\n }\n }\n .chooseFile {\n display: flex;\n align-items: center;\n }\n}\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=f88eec4a&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f88eec4a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f88eec4a\"]])\n\nexport default __exports__","<script>\nimport Members from '@pkg/components/Members';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../../../config/harvester';\nexport default {\n components: { Members },\n inheritAttrs: false,\n computed: {\n createLocationOverride() {\n return {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: {\n product: HARVESTER_PRODUCT,\n cluster: this.$store.getters['currentCluster']?.id,\n resource: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING\n }\n };\n }\n }\n};\n</script>\n\n<template>\n <Members\n :create-location-override=\"createLocationOverride\"\n v-bind=\"$attrs\"\n />\n</template>\n","<script>\nimport { MANAGEMENT, NORMAN, VIRTUAL_TYPES } from '@shell/config/types';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Masthead from '@shell/components/ResourceList/Masthead';\nimport { AGE, ROLE, STATE, PRINCIPAL } from '@shell/config/table-headers';\nimport Banner from '@components/Banner/Banner.vue';\nimport Tabbed from '@shell/components/Tabbed/index.vue';\nimport Tab from '@shell/components/Tabbed/Tab.vue';\nimport { mapGetters } from 'vuex';\nimport { allHash } from '@shell/utils/promise';\n\nexport default {\n name: 'Members',\n\n components: {\n Banner,\n Masthead,\n ResourceTable,\n Tabbed,\n Tab,\n },\n\n props: {\n // Cluster tole template binding create route - defaults to the explorer route\n createLocationOverride: {\n type: Object,\n default: () => {\n return {\n name: 'c-cluster-product-resource-create',\n params: { resource: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING }\n };\n }\n }\n },\n\n async fetch() {\n const clusterRoleTemplateBindingSchema = this.$store.getters[\n `rancher/schemaFor`\n ](NORMAN.CLUSTER_ROLE_TEMPLATE_BINDING);\n\n const projectRoleTemplateBindingSchema = this.$store.getters['rancher/schemaFor'](NORMAN.PROJECT_ROLE_TEMPLATE_BINDING);\n\n this['normanClusterRTBSchema'] = clusterRoleTemplateBindingSchema;\n this['normanProjectRTBSchema'] = projectRoleTemplateBindingSchema;\n\n if (clusterRoleTemplateBindingSchema) {\n Promise.all([\n this.$store.dispatch(`rancher/findAll`, { type: NORMAN.CLUSTER_ROLE_TEMPLATE_BINDING }, { root: true }),\n this.$store.dispatch(`management/findAll`, { type: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING })\n ]).then(([normanBindings]) => {\n this['normanClusterRoleTemplateBindings'] = normanBindings;\n this.loadingClusterBindings = false;\n });\n }\n\n if (projectRoleTemplateBindingSchema) {\n this.$store.dispatch('rancher/findAll', { type: NORMAN.PROJECT_ROLE_TEMPLATE_BINDING }, { root: true })\n .then((bindings) => {\n this['projectRoleTemplateBindings'] = bindings;\n this.loadingProjectBindings = false;\n });\n }\n\n const hydration = {\n normanPrincipals: this.$store.dispatch('rancher/findAll', { type: NORMAN.PRINCIPAL }),\n mgmt: this.$store.dispatch(`management/findAll`, { type: MANAGEMENT.USER }),\n mgmtRoleTemplates: this.$store.dispatch(`management/findAll`, { type: MANAGEMENT.ROLE_TEMPLATE }),\n };\n\n await allHash(hydration);\n },\n\n data() {\n return {\n schema: this.$store.getters[`management/schemaFor`](\n MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING\n ),\n headers: [STATE, PRINCIPAL, ROLE, AGE],\n createLocation: {\n ...this.createLocationOverride,\n params: {\n ...this.createLocationOverride.params,\n cluster: this.$store.getters['currentCluster'].id\n }\n },\n resource: MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING,\n normanClusterRTBSchema: null,\n normanProjectRTBSchema: null,\n normanClusterRoleTemplateBindings: [],\n projectRoleTemplateBindings: [],\n VIRTUAL_TYPES,\n projectRoleTemplateColumns: [\n STATE,\n {\n name: 'member',\n labeKey: 'generic.name',\n value: 'principalId',\n formatter: 'Principal'\n },\n {\n name: 'role',\n labelKey: 'tableHeaders.role',\n value: 'roleTemplate.nameDisplay'\n },\n ],\n loadingProjectBindings: true,\n loadingClusterBindings: true\n };\n },\n\n computed: {\n ...mapGetters(['currentCluster']),\n clusterRoleTemplateBindings() {\n return this.normanClusterRoleTemplateBindings.map((b) => b.clusterroletemplatebinding) ;\n },\n filteredClusterRoleTemplateBindings() {\n return this.clusterRoleTemplateBindings.filter(\n (b) => b?.clusterName === this.$store.getters['currentCluster'].id\n );\n },\n isLocal() {\n return this.$store.getters['currentCluster'].isLocal;\n },\n canEditClusterMembers() {\n return this.normanClusterRTBSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post');\n },\n },\n};\n</script>\n\n<template>\n <div class=\"project-members\">\n <Masthead\n :schema=\"schema\"\n :resource=\"resource\"\n :favorite-resource=\"VIRTUAL_TYPES.CLUSTER_MEMBERS\"\n :create-location=\"createLocation\"\n :create-button-label=\"t('members.createActionLabel')\"\n :is-creatable=\"false\"\n :type-display=\"t('members.clusterAndProject')\"\n />\n <Banner\n v-if=\"isLocal\"\n color=\"error\"\n :label=\"t('members.localClusterWarning')\"\n />\n <Tabbed>\n <Tab\n name=\"cluster-membership\"\n :label=\"t('members.clusterMembership')\"\n >\n <div\n v-if=\"canEditClusterMembers\"\n class=\"row mb-10 cluster-add\"\n >\n <router-link\n :to=\"createLocation\"\n class=\"btn role-primary pull-right\"\n >\n {{ t('members.createActionLabel') }}\n </router-link>\n </div>\n <ResourceTable\n :schema=\"schema\"\n :headers=\"headers\"\n :rows=\"filteredClusterRoleTemplateBindings\"\n :groupable=\"true\"\n :show-grouping=\"true\"\n :namespaced=\"false\"\n :loading=\"$fetchState.pending || !currentCluster || loadingClusterBindings\"\n sub-search=\"subSearch\"\n :sub-fields=\"['nameDisplay']\"\n />\n </Tab>\n </Tabbed>\n </div>\n</template>\n\n<style lang='scss' scoped>\n\n.role {\n align-items: center;\n background-color: rgba(0, 0, 0, 0.05);\n border: 1px solid var(--header-border);\n border-radius: 5px;\n color: var(--tag-text);\n line-height: 20px;\n padding: 2px 5px;\n white-space: nowrap;\n display: inline-flex;\n margin-right: 3px;\n}\n\n.role-value {\n &.text-link-enabled {\n cursor: pointer;\n &:hover {\n color: var(--primary);\n }\n }\n + .icon-close {\n margin-left: 3px;\n cursor: pointer;\n &:hover {\n color: var(--primary);\n }\n }\n}\n\n.project-members {\n & :deep() .group-bar{\n display: flex;\n justify-content: space-between;\n }\n}\n.cluster-add {\n justify-content: flex-end;\n}\n</style>\n","import { render } from \"./Members.vue?vue&type=template&id=fa2c9f40&scoped=true\"\nimport script from \"./Members.vue?vue&type=script&lang=js\"\nexport * from \"./Members.vue?vue&type=script&lang=js\"\n\nimport \"./Members.vue?vue&type=style&index=0&id=fa2c9f40&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fa2c9f40\"]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=51498f8c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ExplorerProjectsNamespaces from '@shell/components/ExplorerProjectsNamespaces.vue';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../../config/harvester';\nimport { MANAGEMENT, NAMESPACE } from '@shell/config/types';\n\nexport default {\n components: { ExplorerProjectsNamespaces },\n data() {\n return {\n createProjectLocation: {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: {\n product: HARVESTER_PRODUCT,\n cluster: this.$store.getters['currentCluster']?.id,\n resource: MANAGEMENT.PROJECT\n },\n },\n createNamespaceLocation: {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: {\n product: HARVESTER_PRODUCT,\n resource: NAMESPACE\n },\n }\n };\n }\n};\n</script>\n\n<template>\n <ExplorerProjectsNamespaces\n v-bind=\"$attrs\"\n :create-project-location-override=\"createProjectLocation\"\n :create-namespace-location-override=\"createNamespaceLocation\"\n />\n</template>\n","<script>\r\nimport { mapGetters } from 'vuex';\r\nimport ResourceTable, { defaultTableSortGenerationFn } from '@shell/components/ResourceTable';\r\nimport { STATE, AGE, NAME, NS_SNAPSHOT_QUOTA } from '@shell/config/table-headers';\r\nimport { uniq } from '@shell/utils/array';\r\nimport { MANAGEMENT, NAMESPACE, VIRTUAL_TYPES, HCI } from '@shell/config/types';\r\nimport { PROJECT_ID, FLAT_VIEW } from '@shell/config/query-params';\r\nimport { PanelLocation, ExtensionPoint } from '@shell/core/types';\r\nimport ExtensionPanel from '@shell/components/ExtensionPanel';\r\nimport Masthead from '@shell/components/ResourceList/Masthead';\r\nimport { mapPref, GROUP_RESOURCES, ALL_NAMESPACES, DEV } from '@shell/store/prefs';\r\nimport MoveModal from '@shell/components/MoveModal';\r\nimport ButtonMultiAction from '@shell/components/ButtonMultiAction.vue';\r\n\r\nimport { NAMESPACE_FILTER_ALL_ORPHANS } from '@shell/utils/namespace-filter';\r\nimport ResourceFetch from '@shell/mixins/resource-fetch';\r\nimport DOMPurify from 'dompurify';\r\nimport { HARVESTER_NAME as HARVESTER } from '@shell/config/features';\r\n\r\nexport default {\r\n name: 'ListProjectNamespace',\r\n components: {\r\n ExtensionPanel,\r\n Masthead,\r\n MoveModal,\r\n ResourceTable,\r\n ButtonMultiAction,\r\n },\r\n mixins: [ResourceFetch],\r\n\r\n props: {\r\n createProjectLocationOverride: {\r\n type: Object,\r\n default: () => null\r\n },\r\n\r\n createNamespaceLocationOverride: {\r\n type: Object,\r\n default: () => null\r\n }\r\n },\r\n\r\n async fetch() {\r\n const inStore = this.$store.getters['currentStore'](NAMESPACE);\r\n\r\n this.harvesterResourceQuotaSchema = this.$store.getters[`${ inStore }/schemaFor`](HCI.RESOURCE_QUOTA);\r\n this.schema = this.$store.getters[`${ inStore }/schemaFor`](NAMESPACE);\r\n this.projectSchema = this.$store.getters[`management/schemaFor`](MANAGEMENT.PROJECT);\r\n\r\n if ( !this.schema ) {\r\n // clusterReady: When switching routes, it will cause clusterReady to change, causing itself to repeat rendering。\r\n // this.$store.dispatch('loadingError', `Type ${ NAMESPACE } not found`);\r\n\r\n return;\r\n }\r\n\r\n await this.$fetchType(NAMESPACE);\r\n this.projects = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.PROJECT, opt: { force: true } });\r\n },\r\n\r\n data() {\r\n return {\r\n loadResources: [NAMESPACE],\r\n loadIndeterminate: true,\r\n harvesterResourceQuotaSchema: null,\r\n schema: null,\r\n projects: [],\r\n projectSchema: null,\r\n extensionType: ExtensionPoint.PANEL,\r\n extensionLocation: PanelLocation.RESOURCE_LIST,\r\n MANAGEMENT,\r\n VIRTUAL_TYPES,\r\n defaultCreateProjectLocation: {\r\n name: 'c-cluster-product-resource-create',\r\n params: {\r\n product: this.$store.getters['currentProduct'].name,\r\n resource: MANAGEMENT.PROJECT\r\n },\r\n }\r\n };\r\n },\r\n\r\n computed: {\r\n ...mapGetters(['currentCluster', 'currentProduct']),\r\n namespaces() {\r\n const inStore = this.$store.getters['currentStore'](NAMESPACE);\r\n\r\n return this.$store.getters[`${ inStore }/all`](NAMESPACE);\r\n },\r\n loading() {\r\n return !this.currentCluster || this.namespaces.length ? false : this.$fetchState.pending;\r\n },\r\n showIncrementalLoadingIndicator() {\r\n return this.perfConfig?.incrementalLoading?.enabled;\r\n },\r\n isNamespaceCreatable() {\r\n return (this.schema?.collectionMethods || []).includes('POST');\r\n },\r\n isHarvester() {\r\n return this.$store.getters['currentProduct'].inStore === HARVESTER;\r\n },\r\n headers() {\r\n const headers = [\r\n STATE,\r\n NAME,\r\n ];\r\n\r\n if (this.groupPreference === 'none') {\r\n const projectHeader = {\r\n name: 'project',\r\n label: this.t('tableHeaders.project'),\r\n value: 'project.nameDisplay',\r\n sort: ['projectNameSort', 'nameSort'],\r\n };\r\n\r\n headers.push(projectHeader);\r\n }\r\n\r\n if (this.isHarvester && this.harvesterResourceQuotaSchema) {\r\n headers.push(NS_SNAPSHOT_QUOTA);\r\n }\r\n\r\n headers.push(AGE);\r\n\r\n return headers;\r\n },\r\n projectIdsWithNamespaces() {\r\n const ids = this.rows\r\n .map((row) => row.projectId)\r\n .filter((id) => id);\r\n\r\n return uniq(ids);\r\n },\r\n clusterProjects() {\r\n const clusterId = this.currentCluster.id;\r\n\r\n // Get the list of projects from the store so that the list\r\n // is updated if a new project is created or removed.\r\n const projectsInAllClusters = this.$store.getters['management/all'](MANAGEMENT.PROJECT);\r\n\r\n if (this.currentProduct?.customNamespaceFilter && this.currentProduct?.inStore && this.$store.getters[`${ this.currentProduct.inStore }/filterProject`]) {\r\n return this.$store.getters[`${ this.currentProduct.inStore }/filterProject`];\r\n }\r\n\r\n const clustersInProjects = projectsInAllClusters.filter((project) => project.spec.clusterName === clusterId);\r\n\r\n return clustersInProjects;\r\n },\r\n projectsWithoutNamespaces() {\r\n return this.activeProjects.filter((project) => {\r\n return !this.projectIdsWithNamespaces.find((item) => project?.id?.endsWith(`/${ item }`));\r\n });\r\n },\r\n // We're using this because we need to show projects as groups even if the project doesn't have any namespaces.\r\n rowsWithFakeNamespaces() {\r\n const fakeRows = this.projectsWithoutNamespaces.map((project) => {\r\n return {\r\n groupByLabel: `${ ('resourceTable.groupLabel.notInAProject') }-${ project.id }`,\r\n isFake: true,\r\n mainRowKey: project.id,\r\n nameDisplay: project.spec?.displayName, // Enable filtering by the project name\r\n project,\r\n availableActions: []\r\n };\r\n });\r\n\r\n if (this.showMockNotInProjectGroup) {\r\n fakeRows.push( {\r\n groupByLabel: this.t('resourceTable.groupLabel.notInAProject'), // Same as the groupByLabel for the namespace model\r\n mainRowKey: 'fake-empty',\r\n });\r\n }\r\n\r\n return [...this.rows, ...fakeRows];\r\n },\r\n createProjectLocation() {\r\n return this.createProjectLocationOverride || this.defaultCreateProjectLocation;\r\n },\r\n groupPreference: mapPref(GROUP_RESOURCES),\r\n activeNamespaceFilters() {\r\n return this.$store.getters['activeNamespaceFilters'];\r\n },\r\n activeProjectFilters() {\r\n const activeProjects = {};\r\n\r\n for (const filter of this.activeNamespaceFilters) {\r\n const [type, id] = filter.split('://', 2);\r\n\r\n if (type === 'project') {\r\n activeProjects[id] = true;\r\n }\r\n }\r\n\r\n return activeProjects;\r\n },\r\n activeProjects() {\r\n const namespaceFilters = this.$store.getters['activeNamespaceFilters'];\r\n\r\n if (namespaceFilters.includes(NAMESPACE_FILTER_ALL_ORPHANS) && Object.keys(this.activeProjectFilters).length === 0) {\r\n // If the user wants to only see namespaces that are not\r\n // in a project, don't show any projects.\r\n return [];\r\n }\r\n\r\n // If the user is not filtering by any projects or namespaces, return\r\n // all projects in the cluster.\r\n if (!this.userIsFilteringForSpecificNamespaceOrProject()) {\r\n return this.clusterProjects;\r\n }\r\n\r\n // Filter out projects that are not selected in the top nav.\r\n return this.clusterProjects.filter((projectData) => {\r\n const projectId = projectData.id.split('/')[1];\r\n\r\n return !!this.activeProjectFilters[projectId];\r\n });\r\n },\r\n activeNamespaces() {\r\n // Apply namespace filters from the top nav.\r\n const activeNamespaces = this.$store.getters['namespaces']();\r\n\r\n return this.namespaces.filter((namespaceData) => {\r\n return !!activeNamespaces[namespaceData.metadata.name];\r\n });\r\n },\r\n filteredRows() {\r\n return this.groupPreference === 'none' ? this.rows : this.rowsWithFakeNamespaces;\r\n },\r\n rows() {\r\n let isDev;\r\n\r\n try {\r\n isDev = this.$store.getters['prefs/get'](ALL_NAMESPACES);\r\n } catch {\r\n isDev = this.$store.getters['prefs/get'](DEV);\r\n }\r\n\r\n if (isDev) {\r\n // If all namespaces options are turned on in the user preferences,\r\n // return all namespaces including system namespaces and RBAC\r\n // management namespaces.\r\n return this.activeNamespaces;\r\n }\r\n\r\n return this.activeNamespaces.filter((namespace) => {\r\n const isSettingSystemNamespace = this.$store.getters['systemNamespaces'].includes(namespace.metadata.name);\r\n const systemNS = namespace.isSystem || namespace.isFleetManaged || isSettingSystemNamespace;\r\n\r\n return this.currentProduct?.hideSystemResources ? !systemNS : true;\r\n });\r\n },\r\n\r\n canSeeProjectlessNamespaces() {\r\n return this.currentCluster.canUpdate;\r\n },\r\n\r\n showMockNotInProjectGroup() {\r\n if (!this.canSeeProjectlessNamespaces) {\r\n return false;\r\n }\r\n\r\n const someNamespacesAreNotInProject = !this.rows.some((row) => !row.project);\r\n\r\n // Hide the \"Not in a Project\" group if the user is filtering\r\n // for specific namespaces or projects.\r\n const usingSpecificFilter = this.userIsFilteringForSpecificNamespaceOrProject();\r\n\r\n return !usingSpecificFilter && someNamespacesAreNotInProject;\r\n },\r\n\r\n notInProjectKey() {\r\n return this.$store.getters['i18n/t']('resourceTable.groupLabel.notInAProject');\r\n },\r\n showCreateNsButton() {\r\n return this.groupPreference !== 'namespace';\r\n }\r\n },\r\n methods: {\r\n /**\r\n * Get PSA HTML to be displayed in the tooltips\r\n */\r\n getPsaTooltip(row) {\r\n const dictionary = row.psaTooltipsDescription;\r\n const list = Object.values(dictionary)\r\n .sort()\r\n .map((text) => `<li>${ text }</li>`).join('');\r\n const title = `<p>${ this.t('podSecurityAdmission.name') }: </p>`;\r\n\r\n return `${ title }<ul class=\"psa-tooltip\">${ list }</ul>`;\r\n },\r\n\r\n userIsFilteringForSpecificNamespaceOrProject() {\r\n const activeFilters = this.$store.getters['namespaceFilters'];\r\n\r\n for (let i = 0; i < activeFilters.length; i++) {\r\n const filter = activeFilters[i];\r\n const filterType = filter.split('://')[0];\r\n\r\n if (filterType === 'ns' || filterType === 'project') {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n slotName(project) {\r\n return `main-row:${ project.id }`;\r\n },\r\n createNamespaceLocation(group) {\r\n const project = group.rows[0].project;\r\n\r\n const location = this.createNamespaceLocationOverride ? { ...this.createNamespaceLocationOverride } : {\r\n name: 'c-cluster-product-resource-create',\r\n params: {\r\n product: this.$store.getters['currentProduct'].name,\r\n resource: NAMESPACE\r\n },\r\n };\r\n\r\n location.query = { [PROJECT_ID]: project?.metadata.name };\r\n\r\n return location;\r\n },\r\n\r\n createNamespaceLocationFlatList() {\r\n const location = this.createNamespaceLocationOverride ? { ...this.createNamespaceLocationOverride } : {\r\n name: 'c-cluster-product-resource-create',\r\n params: {\r\n product: this.$store.getters['currentProduct']?.name,\r\n resource: NAMESPACE\r\n },\r\n };\r\n\r\n location.query = { [FLAT_VIEW]: true };\r\n\r\n return location;\r\n },\r\n\r\n showProjectAction(event, group) {\r\n const project = group.rows[0].project;\r\n\r\n this.$store.commit(`action-menu/show`, {\r\n resources: [project],\r\n elem: event.target\r\n });\r\n },\r\n showProjectActionButton(group) {\r\n const project = group.rows[0].project;\r\n\r\n return !!project;\r\n },\r\n projectLabel(group) {\r\n const row = group.rows[0];\r\n\r\n if (row.isFake) {\r\n return DOMPurify.sanitize(\r\n this.t('resourceTable.groupLabel.project', { name: row.project?.nameDisplay }, true),\r\n { ALLOWED_TAGS: ['span'] }\r\n );\r\n }\r\n\r\n return row.groupByLabel;\r\n },\r\n\r\n projectDescription(group) {\r\n const project = group.rows[0].project;\r\n\r\n return project?.description;\r\n },\r\n\r\n clearSelection() {\r\n this.$refs.table.clearSelection();\r\n },\r\n\r\n sortGenerationFn() {\r\n // The sort generation function creates a unique value and is used to create a key including sort details.\r\n // The unique key determines if the list is redrawn or a cached version is shown.\r\n // Because we ensure the 'not in a project' group is there via a row, and timing issues, the unqiue key doesn't change\r\n // after a namespace is removed... so the list won't update... so we need to inject a string to ensure the key is fresh\r\n const base = defaultTableSortGenerationFn(this.schema, this.$store);\r\n\r\n return base + (this.showMockNotInProjectGroup ? '-mock' : '');\r\n },\r\n\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <div class=\"project-namespaces outlet\">\r\n <Masthead\r\n :schema=\"projectSchema\"\r\n :type-display=\"t('projectNamespaces.label')\"\r\n :resource=\"MANAGEMENT.PROJECT\"\r\n :favorite-resource=\"VIRTUAL_TYPES.PROJECT_NAMESPACES\"\r\n :create-location=\"createProjectLocation\"\r\n :create-button-label=\"t('projectNamespaces.createProject')\"\r\n :show-incremental-loading-indicator=\"showIncrementalLoadingIndicator\"\r\n :load-resources=\"loadResources\"\r\n :load-indeterminate=\"loadIndeterminate\"\r\n >\r\n <template\r\n v-if=\"showCreateNsButton\"\r\n #extraActions\r\n >\r\n <router-link\r\n :to=\"createNamespaceLocationFlatList()\"\r\n class=\"btn role-primary mr-10\"\r\n data-testid=\"create_project_namespaces\"\r\n >\r\n {{ t('projectNamespaces.createNamespace') }}\r\n </router-link>\r\n </template>\r\n </Masthead>\r\n <!-- Extensions area -->\r\n <ExtensionPanel\r\n :resource=\"{}\"\r\n :type=\"extensionType\"\r\n :location=\"extensionLocation\"\r\n />\r\n <ResourceTable\r\n ref=\"table\"\r\n v-bind=\"{...$attrs, class: null }\"\r\n class=\"table project-namespaces-table\"\r\n :schema=\"schema\"\r\n :headers=\"headers\"\r\n :rows=\"filteredRows\"\r\n :groupable=\"true\"\r\n :sort-generation-fn=\"sortGenerationFn\"\r\n :loading=\"loading\"\r\n group-tooltip=\"resourceTable.groupBy.project\"\r\n key-field=\"_key\"\r\n >\r\n <template #group-by=\"group\">\r\n <div\r\n class=\"project-bar\"\r\n :class=\"{'has-description': projectDescription(group.group)}\"\r\n >\r\n <div\r\n v-trim-whitespace\r\n class=\"group-tab\"\r\n >\r\n <div\r\n v-clean-html=\"projectLabel(group.group)\"\r\n class=\"project-name\"\r\n />\r\n <div\r\n v-if=\"projectDescription(group.group)\"\r\n class=\"description text-muted text-small\"\r\n >\r\n {{ projectDescription(group.group) }}\r\n </div>\r\n </div>\r\n <div class=\"right\">\r\n <router-link\r\n v-if=\"isNamespaceCreatable && (canSeeProjectlessNamespaces || group.group.key !== notInProjectKey)\"\r\n class=\"create-namespace btn btn-sm role-secondary mr-5\"\r\n :to=\"createNamespaceLocation(group.group)\"\r\n >\r\n {{ t('projectNamespaces.createNamespace') }}\r\n </router-link>\r\n <ButtonMultiAction\r\n class=\"project-action mr-10\"\r\n :borderless=\"true\"\r\n :invisible=\"!showProjectActionButton(group.group)\"\r\n @click=\"showProjectAction($event, group.group)\"\r\n />\r\n </div>\r\n </div>\r\n </template>\r\n <template #cell:project=\"{row}\">\r\n <span v-if=\"row.project\">{{ row.project.nameDisplay }}</span>\r\n <span\r\n v-else\r\n class=\"text-muted\"\r\n >–</span>\r\n </template>\r\n <template #cell:name=\"{row}\">\r\n <div class=\"namespace-name\">\r\n <router-link\r\n v-if=\"row.detailLocation && !row.hideDetailLocation\"\r\n :to=\"row.detailLocation\"\r\n >\r\n {{ row.name }}\r\n </router-link>\r\n <span v-else>\r\n {{ row.name }}\r\n </span>\r\n <i\r\n v-if=\"row.injectionEnabled\"\r\n v-clean-tooltip=\"t('projectNamespaces.isIstioInjectionEnabled')\"\r\n class=\"icon icon-istio ml-5\"\r\n />\r\n <i\r\n v-if=\"row.hasSystemLabels\"\r\n v-clean-tooltip=\"getPsaTooltip(row)\"\r\n class=\"icon icon-lock ml-5\"\r\n />\r\n </div>\r\n </template>\r\n <template\r\n v-for=\"(project, i) in projectsWithoutNamespaces\"\r\n :key=\"i\"\r\n #[slotName(project)]=\"{ fullColspan }\"\r\n >\r\n <tr\r\n class=\"main-row\"\r\n >\r\n <td\r\n class=\"empty text-center\"\r\n :colspan=\"fullColspan\"\r\n >\r\n {{ t('projectNamespaces.noNamespaces') }}\r\n </td>\r\n </tr>\r\n </template>\r\n <template #main-row:fake-empty=\"{ fullColspan }\">\r\n <tr class=\"main-row\">\r\n <td\r\n class=\"empty text-center\"\r\n :colspan=\"fullColspan\"\r\n >\r\n {{ t('projectNamespaces.noProjectNoNamespaces') }}\r\n </td>\r\n </tr>\r\n </template>\r\n </ResourceTable>\r\n <MoveModal @moving=\"clearSelection\" />\r\n </div>\r\n</template>\r\n<style lang=\"scss\" scoped>\r\n.project-namespaces {\r\n & :deep() {\r\n .project-namespaces-table table {\r\n table-layout: fixed;\r\n }\r\n\r\n .project-name {\r\n line-height: 30px;\r\n }\r\n\r\n .project-bar {\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n\r\n .group-tab {\r\n max-width: calc(100% - 230px);\r\n }\r\n\r\n .project-name {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n\r\n span:first-child {\r\n padding-right: 8px;\r\n }\r\n\r\n span:last-child {\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n &.has-description {\r\n .right {\r\n margin-top: 5px;\r\n }\r\n .group-tab {\r\n &, &::after {\r\n height: 50px;\r\n }\r\n\r\n &::after {\r\n right: -20px;\r\n }\r\n\r\n .description {\r\n margin-top: -20px;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .namespace-name {\r\n display: flex;\r\n align-items: center;\r\n\r\n .icon-istio {\r\n color: var(--primary);\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n .psa-tooltip {\r\n // These could pop up a lot as the mouse moves around, keep them as small and unintrusive as possible\r\n // (easier to test with v-clean-tooltip=\"{ content: getPSA(row), autoHide: false, show: true }\")\r\n margin: 3px 0;\r\n padding: 0 8px 0 22px;\r\n }\r\n</style>\r\n","<script>\r\nimport { mapState, mapGetters } from 'vuex';\r\nimport { Card } from '@components/Card';\r\nimport AsyncButton from '@shell/components/AsyncButton';\r\nimport AppModal from '@shell/components/AppModal.vue';\r\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\r\nimport { MANAGEMENT } from '@shell/config/types';\r\nimport Loading from '@shell/components/Loading';\r\nimport { PROJECT } from '@shell/config/labels-annotations';\r\n\r\nexport default {\r\n emits: ['moving'],\r\n\r\n components: {\r\n AsyncButton, Card, LabeledSelect, Loading, AppModal\r\n },\r\n\r\n async fetch() {\r\n this.projects = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.PROJECT });\r\n },\r\n\r\n data() {\r\n return {\r\n modalName: 'move-modal', projects: [], targetProject: null, showModal: false\r\n };\r\n },\r\n\r\n computed: {\r\n ...mapState('action-menu', ['showPromptMove', 'toMove']),\r\n ...mapGetters(['currentCluster']),\r\n\r\n excludedProjects() {\r\n return this.toMove.filter((namespace) => !!namespace.project).map((namespace) => namespace.project.shortId);\r\n },\r\n\r\n projectOptions() {\r\n return this.projects.reduce((inCluster, project) => {\r\n if (!this.excludedProjects.includes(project.shortId) && project.spec?.clusterName === this.currentCluster.id) {\r\n inCluster.push({\r\n value: project.shortId,\r\n label: project.nameDisplay\r\n });\r\n }\r\n\r\n return inCluster;\r\n }, []);\r\n }\r\n },\r\n\r\n watch: {\r\n showPromptMove(show) {\r\n if (show) {\r\n this.showModal = true;\r\n } else {\r\n this.showModal = false;\r\n }\r\n }\r\n },\r\n\r\n methods: {\r\n close() {\r\n this.$store.commit('action-menu/togglePromptMove');\r\n },\r\n\r\n async move(finish) {\r\n const cluster = this.$store.getters['currentCluster'];\r\n const clusterWithProjectId = `${ cluster.id }:${ this.targetProject }`;\r\n\r\n const promises = this.toMove.map((namespace) => {\r\n namespace.setLabel(PROJECT, this.targetProject);\r\n namespace.setAnnotation(PROJECT, clusterWithProjectId);\r\n\r\n return namespace.save();\r\n });\r\n\r\n try {\r\n this.$emit('moving');\r\n await Promise.all(promises);\r\n finish(true);\r\n this.targetProject = null;\r\n this.close();\r\n } catch (ex) {\r\n finish(false);\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n<template>\r\n <app-modal\r\n v-if=\"showModal\"\r\n class=\"move-modal\"\r\n :name=\"modalName\"\r\n :width=\"440\"\r\n height=\"auto\"\r\n @close=\"close\"\r\n >\r\n <Loading v-if=\"$fetchState.pending\" />\r\n <Card\r\n v-else\r\n class=\"move-modal-card\"\r\n :show-highlight-border=\"false\"\r\n >\r\n <template #title>\r\n <h4 class=\"text-default-text\">\r\n {{ t('moveModal.title') }}\r\n </h4>\r\n </template>\r\n <template #body>\r\n <div>\r\n {{ t('moveModal.description') }}\r\n <ul class=\"namespaces\">\r\n <li\r\n v-for=\"(namespace, i) in toMove\"\r\n :key=\"i\"\r\n >\r\n {{ namespace.nameDisplay }}\r\n </li>\r\n </ul>\r\n </div>\r\n <LabeledSelect\r\n v-model:value=\"targetProject\"\r\n :options=\"projectOptions\"\r\n :label=\"t('moveModal.targetProject')\"\r\n />\r\n </template>\r\n <template #actions>\r\n <button\r\n class=\"btn role-secondary\"\r\n @click=\"close\"\r\n >\r\n {{ t('generic.cancel') }}\r\n </button>\r\n <AsyncButton\r\n :action-label=\"t('moveModal.moveButtonLabel')\"\r\n class=\"btn bg-primary ml-10\"\r\n :disabled=\"!targetProject\"\r\n @click=\"move\"\r\n />\r\n </template>\r\n </Card>\r\n </app-modal>\r\n</template>\r\n\r\n<style lang='scss'>\r\n .move-modal {\r\n .namespaces {\r\n max-height: 200px;\r\n overflow-y: scroll;\r\n }\r\n\r\n .move-modal-card {\r\n box-shadow: none;\r\n\r\n border-radius: var(--border-radius);\r\n }\r\n\r\n .actions {\r\n text-align: right;\r\n }\r\n .card-actions {\r\n display: flex;\r\n justify-content: center;\r\n }\r\n }\r\n</style>\r\n","import { render } from \"./MoveModal.vue?vue&type=template&id=840f5128\"\nimport script from \"./MoveModal.vue?vue&type=script&lang=js\"\nexport * from \"./MoveModal.vue?vue&type=script&lang=js\"\n\nimport \"./MoveModal.vue?vue&type=style&index=0&id=840f5128&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ExplorerProjectsNamespaces.vue?vue&type=template&id=4b76ed34&scoped=true\"\nimport script from \"./ExplorerProjectsNamespaces.vue?vue&type=script&lang=js\"\nexport * from \"./ExplorerProjectsNamespaces.vue?vue&type=script&lang=js\"\n\nimport \"./ExplorerProjectsNamespaces.vue?vue&type=style&index=0&id=4b76ed34&lang=scss&scoped=true\"\nimport \"./ExplorerProjectsNamespaces.vue?vue&type=style&index=1&id=4b76ed34&lang=scss\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b76ed34\"]])\n\nexport default __exports__","import { render } from \"./projectsnamespaces.vue?vue&type=template&id=4f006d72\"\nimport script from \"./projectsnamespaces.vue?vue&type=script&lang=js\"\nexport * from \"./projectsnamespaces.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ActionMenu from '@shell/components/ActionMenu';\nimport ReceiverConfig from '@shell/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig';\nimport ButtonGroup from '@shell/components/ButtonGroup';\nimport ResourceYaml from '@shell/components/ResourceYaml';\nimport { createYaml } from '@shell/utils/create-yaml';\nimport { EDITOR_MODES } from '@shell/components/YamlEditor';\nimport { MONITORING, SCHEMA } from '@shell/config/types';\nimport {\n _CREATE, _EDIT, _VIEW, _CONFIG, _YAML, _DETAIL\n} from '@shell/config/query-params';\n\nimport { clone } from '@shell/utils/object';\n\nexport default {\n name: 'AlertmanagerConfigReceiverCreateEdit',\n components: {\n ActionMenu,\n ButtonGroup,\n ReceiverConfig,\n ResourceYaml\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.receiverName = this.$route.query.receiverName;\n\n const alertmanagerConfigId = this.$route.params.alertmanagerconfigid;\n const originalAlertmanagerConfigResource = await this.$store.dispatch(`${ inStore }/find`, { type: MONITORING.ALERTMANAGERCONFIG, id: alertmanagerConfigId });\n const alertmanagerConfigResource = await this.$store.dispatch(`${ inStore }/clone`, { resource: originalAlertmanagerConfigResource });\n const mode = this.$route.query.mode;\n\n if (mode !== _CREATE) {\n const existingReceiverData = (alertmanagerConfigResource.spec.receivers || []).find((receiverData) => {\n return receiverData.name === this.receiverName;\n });\n\n if (existingReceiverData) {\n this.receiverValue = existingReceiverData;\n }\n }\n\n this.alertmanagerConfigId = alertmanagerConfigResource.id;\n this.alertmanagerConfigResource = alertmanagerConfigResource;\n this.alertmanagerConfigDetailRoute = alertmanagerConfigResource._detailLocation;\n },\n\n // take edit link and edit request from AlertmanagerConfig resource\n // and pass it to ReceiverConfig as a prop\n\n data() {\n return {\n actionMenuTargetElement: null,\n actionMenuTargetEvent: null,\n alertmanagerConfigId: '',\n alertmanagerConfigResource: null,\n alertmanagerConfigDetailRoute: null,\n config: _CONFIG,\n create: _CREATE,\n detail: _DETAIL,\n edit: _EDIT,\n receiverActionMenuIsOpen: false,\n receiverName: '',\n receiverValue: {},\n showPreview: false,\n view: _VIEW,\n viewOptions: [\n {\n labelKey: 'resourceDetail.masthead.config',\n value: 'config',\n }, {\n labelKey: 'resourceDetail.masthead.yaml',\n value: _YAML,\n }\n ],\n yaml: _YAML\n };\n },\n\n computed: {\n currentView() {\n return this.$route.query.currentView;\n },\n receiverActions() {\n const alertmanagerConfigActions = this.alertmanagerConfigResource?.availableActions;\n\n if (!alertmanagerConfigActions) {\n return [];\n }\n\n // Receivers are not a separate resource, so they\n // should only have a subset of the AlertmanagerConfig\n // actions. So we take AlertmanagerConfig's actions and filter\n // out any that don't apply.\n // Example action data:\n // {\n // \"action\": \"goToEdit\",\n // \"label\": \"Edit Config\",\n // \"icon\": \"icon icon-edit\",\n // \"enabled\": true\n // },\n return this.alertmanagerConfigResource.getReceiverActions(alertmanagerConfigActions);\n },\n resourceYaml() {\n const resource = this.alertmanagerConfigResource;\n\n const inStore = this.$store.getters['currentStore'](resource);\n const schemas = this.$store.getters[`${ inStore }/all`](SCHEMA);\n const clonedResource = clone(resource);\n\n const out = createYaml(schemas, MONITORING.ALERTMANAGERCONFIG, clonedResource);\n\n return out;\n },\n mode() {\n // Use the route as a dependency of the\n // computed property so that the component\n // updates when you navigate between edit\n // and view.\n return this.$route.query.mode;\n },\n editorMode() {\n if ( this.mode === this.view ) {\n return EDITOR_MODES.VIEW_CODE;\n } else if ( this.showPreview ) {\n return EDITOR_MODES.DIFF_CODE;\n }\n\n return EDITOR_MODES.EDIT_CODE;\n },\n heading() {\n switch (this.$route.query.mode) {\n case this.create:\n return this.t('monitoring.alertmanagerConfig.receiverFormNames.create');\n case this.edit:\n if (this.currentView === this.yaml || this.$route.query.as === this.yaml) {\n // When you edit as YAML, you edit the whole AlertmanagerConfig\n // at once, so the header is just \"Edit AlertmanagerConfig\"\n return this.t('monitoring.alertmanagerConfig.receiverFormNames.editYaml');\n }\n\n // When you edit as a form, you edit only the receiver,\n // so the form header is \"Edit Receiver in AlertmanagerConfig\"\n return this.t('monitoring.alertmanagerConfig.receiverFormNames.edit');\n\n default:\n return this.t('monitoring.alertmanagerConfig.receiverFormNames.detail');\n }\n },\n },\n\n methods: {\n // When creating or editing a receiver, in both cases\n // it is actually the one existing AlertmanagerConfig\n // being saved. Therefore we take the save from the\n // AlertmanagerConfig resource and pass it into the\n // receiver config form.\n saveOverride(buttonDone) {\n if (this.alertmanagerConfigResource.yamlError) {\n this.alertmanagerConfigResource.errors = this.alertmanagerConfigResource.errors || [];\n this.alertmanagerConfigResource.errors.push(this.alertmanagerConfigResource.yamlError);\n\n buttonDone(false);\n\n return;\n }\n\n this.alertmanagerConfigResource.save(...arguments);\n this.redirectToAlertmanagerConfigDetail();\n },\n handleButtonGroupClick(event) {\n if (event === this.yaml) {\n this.goToEditYaml(this.view);\n }\n if (event === this.config) {\n this.goToEdit(this.view);\n }\n },\n toggleReceiverActionMenu() {\n this.receiverActionMenuIsOpen = !this.receiverActionMenuIsOpen;\n },\n handleReceiverActionMenuClick(event) {\n this.actionMenuTargetElement = this.$refs.actions;\n this.actionMenuTargetEvent = event;\n this.toggleReceiverActionMenu();\n },\n goToEdit() {\n // 'goToEdit' is the exact name of an action for AlertmanagerConfig\n // and this method executes the action.\n this.$router.push(this.alertmanagerConfigResource.getEditReceiverConfigRoute(this.receiverValue.name, _EDIT));\n },\n goToEditYaml() {\n // 'goToEditYaml' is the exact name of an action for AlertmanagerConfig\n // and this method executes the action.\n this.$router.push(this.alertmanagerConfigResource.getEditReceiverYamlRoute(this.receiverValue.name, _EDIT));\n },\n promptRemove(actionData) {\n // 'promptRemove' is the exact name of an action for AlertmanagerConfig\n // and this method executes the action.\n // Get the name of the receiver to delete from the action info.\n const nameOfReceiverToDelete = actionData.route.query.receiverName;\n // Remove it from the configuration of the parent AlertmanagerConfig\n // resource.\n const existingReceivers = this.alertmanagerConfigResource.spec.receivers || [];\n const receiversMinusDeletedItem = existingReceivers.filter((receiver) => {\n return receiver.name !== nameOfReceiverToDelete;\n });\n\n this.alertmanagerConfigResource.spec.receivers = receiversMinusDeletedItem;\n // After saving the AlertmanagerConfig, the resource has been deleted.\n this.alertmanagerConfigResource.save(...arguments);\n this.$router.push(this.alertmanagerConfigResource._detailLocation);\n },\n redirectToReceiverDetail(receiverName) {\n return this.alertmanagerConfigResource.getReceiverDetailLink(receiverName);\n },\n redirectToAlertmanagerConfigDetail() {\n const route = this.alertmanagerConfigResource._detailLocation;\n\n this.$router.push(route);\n }\n }\n};\n</script>\n\n<template>\n <div>\n <header class=\"header\">\n <div class=\"title\">\n <div class=\"primaryheader\">\n <h1>\n {{ heading }}\n </h1>\n </div>\n </div>\n <div class=\"actions-container\">\n <div class=\"actions\">\n <ButtonGroup\n v-if=\"viewOptions && mode === view\"\n :value=\"currentView\"\n :options=\"viewOptions\"\n @update:value=\"handleButtonGroupClick\"\n />\n\n <button\n v-if=\"mode === view\"\n ref=\"actions\"\n aria-haspopup=\"true\"\n type=\"button\"\n class=\"btn role-multi-action actions\"\n @click=\"handleReceiverActionMenuClick\"\n >\n <i class=\"icon icon-actions\" />\n </button>\n </div>\n </div>\n </header>\n <ResourceYaml\n v-if=\"currentView === yaml && alertmanagerConfigResource\"\n ref=\"resourceyaml\"\n :value=\"alertmanagerConfigResource\"\n :mode=\"mode\"\n :initial-yaml-for-diff=\"null\"\n :yaml=\"resourceYaml\"\n :offer-preview=\"mode === edit\"\n :done-route=\"JSON.stringify(redirectToReceiverDetail(receiverName))\"\n :done-override=\"alertmanagerConfigDetailRoute\"\n :apply-hooks=\"alertmanagerConfigResource.applyHooks\"\n @error=\"e=>$emit('error', e)\"\n />\n <ReceiverConfig\n v-if=\"(currentView === config || currentView === detail) && alertmanagerConfigResource\"\n :value=\"receiverValue\"\n :mode=\"mode\"\n :alertmanager-config-id=\"alertmanagerConfigId\"\n :alertmanager-config-resource=\"alertmanagerConfigResource\"\n :save-override=\"saveOverride\"\n />\n <ActionMenu\n :custom-actions=\"receiverActions\"\n :open=\"receiverActionMenuIsOpen\"\n :use-custom-target-element=\"true\"\n :custom-target-element=\"actionMenuTargetElement\"\n :custom-target-event=\"actionMenuTargetEvent\"\n @close=\"receiverActionMenuIsOpen = false\"\n @goToEdit=\"goToEdit\"\n @goToEditYaml=\"goToEditYaml\"\n @promptRemove=\"promptRemove\"\n />\n </div>\n</template>\n\n<style lang='scss' scoped>\n.header{\n H1{\n flex: 1;\n }\n border-bottom: 1px solid var(--border);\n margin-bottom: 0;\n padding-bottom: 20px;\n}\n\n</style>\n","<script>\nimport ArrayListGrouped from '@shell/components/form/ArrayListGrouped';\nimport Loading from '@shell/components/Loading';\nimport { Banner } from '@components/Banner';\nimport CruResource from '@shell/components/CruResource';\nimport { LabeledInput } from '@components/Form/LabeledInput';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport YamlEditor, { EDITOR_MODES } from '@shell/components/YamlEditor';\nimport CreateEditView from '@shell/mixins/create-edit-view';\nimport jsyaml from 'js-yaml';\nimport ButtonDropdown from '@shell/components/ButtonDropdown';\nimport { _CREATE, _VIEW } from '@shell/config/query-params';\nimport FormValidation from '@shell/mixins/form-validation';\nimport { fetchAlertManagerConfigSpecs } from '@shell/utils/alertmanagerconfig';\n\n// i18n-uses monitoringReceiver.slack.*, monitoringReceiver.email.*, monitoringReceiver.pagerduty.*\n// i18n-uses monitoringReceiver.opsgenie.*, monitoringReceiver.webhook.*, monitoringReceiver.custom.*\nexport const RECEIVERS_TYPES = [\n {\n name: 'slack',\n label: 'monitoringReceiver.slack.label',\n title: 'monitoringReceiver.slack.title',\n info: 'monitoringReceiver.slack.info',\n key: 'slackConfigs',\n logo: require(`@shell/assets/images/vendor/slack.svg`)\n },\n {\n name: 'email',\n label: 'monitoringReceiver.email.label',\n title: 'monitoringReceiver.email.title',\n key: 'emailConfigs',\n logo: require(`@shell/assets/images/vendor/email.svg`)\n },\n {\n name: 'pagerduty',\n label: 'monitoringReceiver.pagerduty.label',\n title: 'monitoringReceiver.pagerduty.title',\n info: 'monitoringReceiver.pagerduty.info',\n key: 'pagerdutyConfigs',\n logo: require(`@shell/assets/images/vendor/pagerduty.svg`)\n },\n {\n name: 'opsgenie',\n label: 'monitoringReceiver.opsgenie.label',\n title: 'monitoringReceiver.opsgenie.title',\n key: 'opsgenieConfigs',\n logo: require(`@shell/assets/images/vendor/email.svg`)\n },\n {\n name: 'webhook',\n label: 'monitoringReceiver.webhook.label',\n title: 'monitoringReceiver.webhook.title',\n key: 'webhookConfigs',\n logo: require(`@shell/assets/images/vendor/webhook.svg`),\n },\n {\n name: 'custom',\n label: 'monitoringReceiver.custom.label',\n title: 'monitoringReceiver.custom.title',\n info: 'monitoringReceiver.custom.info',\n key: 'webhookConfigs',\n logo: require(`@shell/assets/images/vendor/custom.svg`)\n },\n];\n\nexport default {\n components: {\n ArrayListGrouped,\n Banner,\n ButtonDropdown,\n CruResource,\n LabeledInput,\n Loading,\n Tabbed,\n Tab,\n YamlEditor\n },\n\n props: {\n\n value: {\n type: Object,\n default: () => {\n return {};\n }\n },\n mode: {\n type: String,\n default: ''\n },\n alertmanagerConfigResource: {\n type: Object,\n required: true\n },\n alertmanagerConfigId: {\n type: String,\n required: true\n },\n saveOverride: {\n type: Function,\n required: true\n },\n },\n\n mixins: [CreateEditView, FormValidation],\n\n inheritAttrs: false,\n\n async fetch() {\n /**\n * example receiver value:\n * {\n * name: 'name',\n * slackConfigs: [...]\n * }\n */\n const { receiverSchema } = await fetchAlertManagerConfigSpecs(this.$store);\n\n if (!receiverSchema) {\n throw new Error(\"Can't render the form because the AlertmanagerConfig schema, or it's definitions, is not loaded yet.\");\n }\n\n const expectedFields = Object.keys(receiverSchema.resourceFields);\n const suffix = {};\n\n Object.keys(this.value).forEach((key) => {\n if (!expectedFields.includes(key)) {\n suffix[key] = this.value[key];\n }\n });\n\n let suffixYaml = jsyaml.dump(suffix);\n\n if (suffixYaml.trim() === '{}') {\n suffixYaml = '';\n }\n\n this.expectedFields = expectedFields;\n this.suffixYaml = suffixYaml;\n },\n\n data(props) {\n const currentReceiver = {};\n const mode = this.$route.query.mode;\n\n if (mode === _CREATE) {\n RECEIVERS_TYPES.forEach((receiverType) => {\n currentReceiver[receiverType.key] = currentReceiver[receiverType.key] || [];\n });\n }\n\n return {\n create: _CREATE,\n EDITOR_MODES,\n fileFound: false,\n receiverTypes: RECEIVERS_TYPES,\n view: _VIEW,\n yamlError: '',\n fvFormRuleSets: [\n { path: 'name', rules: ['required', 'duplicateName'] }\n ],\n fvReportedValidationPaths: ['value']\n };\n },\n\n mounted() {\n if (this.mode === this.create) {\n if (!this.alertmanagerConfigResource.spec.receivers) {\n this.alertmanagerConfigResource.spec.receivers = [];\n }\n this.alertmanagerConfigResource.spec.receivers.push(this.value);\n }\n },\n\n computed: {\n editorMode() {\n if ( this.$route.query.mode === _VIEW ) {\n return EDITOR_MODES.VIEW_CODE;\n }\n\n return EDITOR_MODES.EDIT_CODE;\n },\n alertmanagerConfigNamespace() {\n return this.alertmanagerConfigResource?.metadata?.namespace || '';\n },\n receiverNameDisabled() {\n return this.$route.query.mode === _VIEW;\n },\n fvExtraRules() {\n return {\n duplicateName: () => {\n const receiversArray = this.alertmanagerConfigResource.spec.receivers;\n const receiverNamesArray = receiversArray.map((R) => R.name);\n const receiversSet = new Set(receiverNamesArray);\n\n if (receiversArray.length !== receiversSet.size) {\n return this.$store.getters['i18n/t']('monitoring.alerting.validation.duplicatedReceiverName', { name: this.value.name });\n }\n }\n };\n }\n },\n\n watch: {\n suffixYaml(value) {\n try {\n // We need this step so we don't just keep adding new keys when modifying the custom field\n Object.keys(this.value).forEach((key) => {\n if (!this.expectedFields.includes(key)) {\n delete this.value[key];\n }\n });\n\n const suffix = jsyaml.load(value);\n\n Object.assign(this.value, suffix);\n this.yamlError = '';\n } catch (ex) {\n this.yamlError = `There was a problem parsing the Custom Config: ${ ex }`;\n }\n },\n },\n\n methods: {\n getComponent(name) {\n return require(`./types/${ name }`).default;\n },\n\n navigateTo(receiverType) {\n this.$refs.tabbed.select(receiverType.name);\n },\n\n getCount(receiverType) {\n const found = this.value?.[receiverType.key] || [];\n\n return found.length;\n },\n\n tabChanged({ tab }) {\n window.scrollTop = 0;\n if ( tab.name === 'custom' ) {\n this.$nextTick(() => {\n if ( this.$refs.customEditor ) {\n this.$refs.customEditor[0].refresh();\n this.$refs.customEditor[0].focus();\n }\n });\n }\n },\n\n redirectAfterCancel() {\n this.$router.push(this.alertmanagerConfigResource._detailLocation);\n },\n\n createAddOptions(receiverType) {\n return receiverType.addOptions.map();\n },\n\n setError(err) {\n if (!err) {\n this.errors = [];\n } else {\n this.errors = [err];\n }\n }\n }\n};\n</script>\n\n<template>\n <CruResource\n class=\"receiver\"\n :done-route=\"alertmanagerConfigResource._detailLocation\"\n :mode=\"mode\"\n :resource=\"alertmanagerConfigResource\"\n :subtypes=\"[]\"\n :can-yaml=\"true\"\n :errors=\"errors\"\n :cancel-event=\"true\"\n :validation-passed=\"fvFormIsValid\"\n @error=\"e=>errors = e\"\n @finish=\"saveOverride\"\n @cancel=\"redirectAfterCancel\"\n >\n <div class=\"row mb-10\">\n <div class=\"col span-6\">\n <LabeledInput\n v-model:value=\"value.name\"\n :is-disabled=\"receiverNameDisabled\"\n :label=\"t('generic.name')\"\n :required=\"true\"\n :mode=\"mode\"\n :rules=\"fvGetAndReportPathRules('name')\"\n data-testid=\"v2-monitoring-receiver-name\"\n />\n </div>\n </div>\n <Tabbed\n ref=\"tabbed\"\n :side-tabs=\"true\"\n default-tab=\"overview\"\n @changed=\"tabChanged\"\n >\n <Tab\n :label=\"t('generic.overview')\"\n :weight=\"receiverTypes.length\"\n name=\"overview\"\n >\n <div class=\"box-container create-resource-container \">\n <div\n v-for=\"(receiverType, i) in receiverTypes\"\n :key=\"i\"\n class=\"mb-10 subtype-banner\"\n primary-color-var=\"--primary-color\"\n @click=\"navigateTo(receiverType)\"\n >\n <div class=\"left\">\n <div class=\"logo\">\n <img :src=\"receiverType.logo\">\n </div>\n <h4 class=\"name ml-10\">\n <t :k=\"receiverType.label\" />\n </h4>\n </div>\n <div\n v-if=\"receiverType.name !== 'custom'\"\n class=\"right\"\n >\n {{ getCount(receiverType) }}\n </div>\n </div>\n </div>\n </Tab>\n <Tab\n v-for=\"(receiverType, i) in receiverTypes\"\n :key=\"i\"\n :label=\"t(receiverType.label)\"\n :name=\"receiverType.name\"\n :weight=\"receiverTypes.length - i\"\n >\n <YamlEditor\n v-if=\"receiverType.name === 'custom'\"\n ref=\"customEditor\"\n v-model:value=\"suffixYaml\"\n :scrolling=\"false\"\n :editor-mode=\"editorMode\"\n />\n <div v-else>\n <ArrayListGrouped\n v-model:value=\"value[receiverType.key]\"\n class=\"namespace-list\"\n :mode=\"mode\"\n :default-add-value=\"{}\"\n :add-label=\"t('monitoringReceiver.addButton', { type: t(receiverType.label) })\"\n >\n <template #default=\"props\">\n <component\n :is=\"getComponent(receiverType.name)\"\n :value=\"props.row.value\"\n :mode=\"mode\"\n :namespace=\"alertmanagerConfigNamespace\"\n />\n </template>\n </ArrayListGrouped>\n </div>\n </Tab>\n </Tabbed>\n </CruResource>\n</template>\n\n<style lang=\"scss\">\n .receiver {\n $margin: 10px;\n $logo: 60px;\n\n .box-container.create-resource-container {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin: 0 -1*$margin;\n\n .subtype-banner{\n justify-content: space-between;\n align-items: center;\n flex-direction: row;\n }\n }\n\n .right {\n padding: 30px;\n border-left: 1px solid var(--border);\n }\n\n .logo {\n text-align: center;\n width: $logo;\n height: $logo;\n border-radius: calc(2 * var(--border-radius));\n overflow: hidden;\n background-color: white;\n display: inline-block;\n vertical-align: middle;\n\n img {\n width: $logo - 4px;\n height: $logo - 4px;\n object-fit: contain;\n position: relative;\n top: 2px;\n }\n }\n\n .name {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 0;\n display: inline-block;\n vertical-align: middle;\n }\n }\n</style>\n","import { render } from \"./receiverConfig.vue?vue&type=template&id=0a3f1bba\"\nimport script from \"./receiverConfig.vue?vue&type=script&lang=js\"\nexport * from \"./receiverConfig.vue?vue&type=script&lang=js\"\n\nimport \"./receiverConfig.vue?vue&type=style&index=0&id=0a3f1bba&lang=scss\"\n\nimport exportComponent from \"../../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./receiver.vue?vue&type=template&id=a0fecebc&scoped=true\"\nimport script from \"./receiver.vue?vue&type=script&lang=js\"\nexport * from \"./receiver.vue?vue&type=script&lang=js\"\n\nimport \"./receiver.vue?vue&type=style&index=0&id=a0fecebc&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a0fecebc\"]])\n\nexport default __exports__","<script>\nimport BrandImage from '@shell/components/BrandImage';\n\nexport default {\n components: { BrandImage },\n\n computed: {\n serverVersion() {\n const version = this.$store.getters['harvester-common/getServerVersion']() || '';\n\n return version.replace('v', '');\n }\n }\n};\n</script>\n\n<template>\n <div class=\"dashboard-root\">\n <div class=\"dashboard-content\">\n <main class=\"main-layout\">\n <div class=\"logo\">\n <BrandImage\n file-name=\"harvester.png\"\n height=\"64\"\n />\n </div>\n <div class=\"tagline\">\n <div class=\"description\">\n {{ t('unsupported.description') }}\n </div>\n </div>\n <div class=\"tagline\">\n <div v-clean-html=\"t('unsupported.serverVersion', { serverVersion }, true)\" />\n </div>\n <div class=\"tagline\">\n <div v-clean-html=\"t('unsupported.learnMore', {}, true)\" />\n </div>\n </main>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .dashboard-root {\n display: flex;\n flex-direction: column;\n height: 100vh;\n }\n\n .dashboard-content {\n display: grid;\n flex-grow:1;\n\n grid-template-areas:\n \"main\";\n\n grid-template-columns: auto;\n grid-template-rows: auto;\n }\n\n .logo {\n display: flex;\n justify-content: center;\n margin: 200px 0 40px 0;\n }\n\n .tagline {\n display: flex;\n justify-content: center;\n margin-top: 30px;\n\n > div {\n font-size: 16px;\n line-height: 22px;\n max-width: 80%;\n text-align: center;\n }\n }\n\n .description {\n font-size: 24px !important;\n font-weight: 400;\n }\n\n</style>\n","import { render } from \"./index.vue?vue&type=template&id=140c2578&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=140c2578&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-140c2578\"]])\n\nexport default __exports__","// eslint-disable-next-line import/named\n// import { RouteRecordRaw } from 'vue-router';\nimport { PRODUCT_NAME } from '../config/harvester';\n\nimport Root from '../pages/c/_cluster/index.vue';\nimport HarvesterSupport from '../pages/c/_cluster/support/index.vue';\nimport HarvesterConsoleSerial from '../pages/c/_cluster/console/_uid/serial.vue';\nimport HarvesterConsoleVnc from '../pages/c/_cluster/console/_uid/vnc.vue';\nimport ListHarvesterResource from '../pages/c/_cluster/_resource/index.vue';\nimport HarvesterBrand from '../pages/c/_cluster/brand/index.vue';\nimport CreateHarvesterResource from '../pages/c/_cluster/_resource/create.vue';\nimport ViewHarvesterResource from '../pages/c/_cluster/_resource/_id.vue';\nimport ViewHarvesterNsResource from '../pages/c/_cluster/_resource/_namespace/_id.vue';\nimport HarvesterAirgapUpdgrade from '../pages/c/_cluster/airgapupgrade/index.vue';\nimport HarvesterMembers from '../pages/c/_cluster/members/index.vue';\nimport ProjectNamespaces from '../pages/c/_cluster/projectsnamespaces.vue';\nimport HarvesterAlertmanagerReceiver from '../pages/c/_cluster/alertmanagerconfig/_alertmanagerconfigid/receiver.vue';\nimport HarvesterUnsupported from '../pages/c/_cluster/unsupported/index.vue';\n\nconst routes = [\n {\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-unsupported-standalone`,\n path: `/:product`,\n component: HarvesterUnsupported\n },\n parent: 'blank'\n },\n {\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-unsupported`,\n path: `/:product`,\n component: HarvesterUnsupported\n },\n parent: 'plain'\n },\n {\n name: `${ PRODUCT_NAME }-c-cluster-support`,\n path: `/:product/c/:cluster/support`,\n component: HarvesterSupport,\n },\n {\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-console-uid-serial`,\n path: `/:product/c/:cluster/console/:uid/serial`,\n component: HarvesterConsoleSerial,\n },\n parent: 'blank'\n },\n {\n route: {\n name: `${ PRODUCT_NAME }-c-cluster-console-uid-vnc`,\n path: `/:product/c/:cluster/console/:uid/vnc`,\n component: HarvesterConsoleVnc,\n },\n parent: 'blank'\n },\n {\n name: `${ PRODUCT_NAME }-c-cluster-airgapupgrade`,\n path: `/:product/c/:cluster/airgapupgrade`,\n component: HarvesterAirgapUpdgrade,\n },\n {\n name: `${ PRODUCT_NAME }-c-cluster-brand`,\n path: `/:product/c/:cluster/brand`,\n component: HarvesterBrand,\n },\n {\n name: `${ PRODUCT_NAME }-c-cluster-alertmanagerconfig-alertmanagerconfigid-receiver`,\n path: `/:product/c/:cluster/alertmanagerconfig/:alertmanagerconfigid/receiver`,\n component: HarvesterAlertmanagerReceiver,\n },\n {\n name: `${ PRODUCT_NAME }-c-cluster-members`,\n path: `/:product/c/:cluster/members`,\n component: HarvesterMembers,\n },\n {\n name: `${ PRODUCT_NAME }-c-cluster`,\n path: `/:product/c/:cluster`,\n component: Root,\n }, {\n name: `${ PRODUCT_NAME }-c-cluster-projectsnamespaces`,\n path: `/:product/c/:cluster/projectsnamespaces`,\n component: ProjectNamespaces,\n }, {\n name: `${ PRODUCT_NAME }-c-cluster-resource`,\n path: `/:product/c/:cluster/:resource`,\n component: ListHarvesterResource,\n }, {\n name: `${ PRODUCT_NAME }-c-cluster-resource-create`,\n path: `/:product/c/:cluster/:resource/create`,\n component: CreateHarvesterResource,\n }, {\n name: `${ PRODUCT_NAME }-c-cluster-resource-id`,\n path: `/:product/c/:cluster/:resource/:id`,\n component: ViewHarvesterResource,\n }, {\n name: `${ PRODUCT_NAME }-c-cluster-resource-namespace-id`,\n path: `/:product/c/:cluster/:resource/:namespace/:id`,\n component: ViewHarvesterNsResource,\n },\n\n];\n\nexport default routes;\n","import Parse from 'url-parse';\nimport { HCI } from '../types';\nimport { PRODUCT_NAME } from '../config/harvester';\nimport { featureEnabled, getVersion } from '../utils/feature-flags';\n\nconst state = function() {\n return {\n latestBundleId: '',\n bundlePending: false,\n showBundleModal: false,\n bundlePercentage: 0,\n uploadingImages: [],\n uploadingImageError: {},\n };\n};\n\nconst mutations = {\n setLatestBundleId(state, bundleId) {\n state.latestBundleId = bundleId;\n },\n\n setBundlePending(state, value) {\n state.bundlePending = value;\n },\n\n toggleBundleModal(state, value) {\n state.showBundleModal = value;\n },\n\n setBundlePercentage(state, value) {\n state.bundlePercentage = value;\n },\n\n uploadStart(state, value) {\n state.uploadingImages.push(value);\n },\n\n uploadError(state, { name, message }) {\n state.uploadingImageError[name] = message;\n },\n\n uploadEnd(state, value) {\n const filtered = state.uploadingImages.filter((l) => l !== value);\n\n state['uploadingImages'] = filtered;\n }\n};\n\nconst getters = {\n getBundleId(state) {\n return state.latestBundleId;\n },\n\n isBundlePending(state) {\n return state.bundlePending;\n },\n\n isShowBundleModal(state) {\n return state.showBundleModal;\n },\n\n getBundlePercentage(state) {\n return state.bundlePercentage;\n },\n\n uploadingImages(state) {\n return state.uploadingImages;\n },\n\n uploadingImageError(state) {\n return (name) => state.uploadingImageError[name];\n },\n\n getServerVersion: (_state, _getters, _rootState, rootGetters) => () => {\n const serverVersion = rootGetters['harvester/byId'](HCI.SETTING, 'server-version')?.value;\n\n return getVersion(serverVersion);\n },\n\n getFeatureEnabled: (_state, _getters, _rootState, rootGetters) => (feature, version) => {\n const serverVersion = version || rootGetters['harvester/byId'](HCI.SETTING, 'server-version')?.value;\n\n return featureEnabled(feature, serverVersion);\n },\n\n getHarvesterClusterUrl: (state, getters, rootState, rootGetters) => (url) => {\n // returns in multiple clusters: /k8s/clusters/${ clusterId }/${url}\n // Directly return the passed url in a single cluster\n if (rootGetters['isMultiCluster']) {\n const clusterId = rootGetters['clusterId'];\n const multipleClusterUrl = `/k8s/clusters/${ clusterId }/${ url }`;\n\n return `${ multipleClusterUrl }`;\n } else {\n return url;\n }\n }\n};\n\nconst actions = {\n async bundleProgress({\n state, dispatch, commit, rootGetters\n }) {\n const parse = Parse(window.history.href);\n\n const id = state.latestBundleId;\n let bundleCrd = await dispatch(\n 'harvester/find',\n { type: HCI.SUPPORT_BUNDLE, id },\n { root: true }\n );\n const t = rootGetters['i18n/t'];\n\n let count = 0;\n\n await commit('setBundlePending', true);\n const timer = setInterval(async() => {\n count = count + 1;\n if (count % 3 === 0) {\n // ws mayby disconnect\n bundleCrd = await dispatch(\n 'harvester/find',\n {\n type: HCI.SUPPORT_BUNDLE,\n id,\n opt: { force: true }\n },\n { root: true }\n );\n }\n\n if (bundleCrd.bundleState !== 'ready') {\n bundleCrd = rootGetters['harvester/byId'](HCI.SUPPORT_BUNDLE, id);\n const percentage = bundleCrd.precent;\n\n commit('setBundlePercentage', percentage);\n\n if (bundleCrd?.bundleMessage) {\n const err = bundleCrd?.bundleMessage;\n\n dispatch(\n 'growl/fromError',\n { title: t('generic.notification.title.error'), err },\n { root: true }\n );\n clearInterval(timer);\n commit('setBundlePending', false);\n commit('toggleBundleModal', false);\n }\n } else {\n const name = id.split('/')[1];\n\n commit('setBundlePercentage', 1);\n\n setTimeout(() => {\n commit('toggleBundleModal', false);\n commit('setBundlePending', false);\n commit('setBundlePercentage', 0);\n }, 600);\n\n if (rootGetters['isMultiCluster']) {\n const clusterId = rootGetters['clusterId'];\n const prefix = `/k8s/clusters/${ clusterId }`;\n\n window.location.href = `${ parse.origin }${ prefix }/v1/harvester/supportbundles/${ name }/download`;\n } else {\n window.location.href = `${ parse.origin }/v1/harvester/supportbundles/${ name }/download`;\n }\n\n clearInterval(timer);\n }\n }, 1000);\n }\n};\n\nconst harvesterFactory = () => {\n return {\n state,\n\n getters: { ...getters },\n\n mutations: { ...mutations },\n\n actions: { ...actions }\n };\n};\nconst config = {\n namespace: `${ PRODUCT_NAME }-common`,\n isClusterStore: false\n};\n\nexport default {\n specifics: harvesterFactory(),\n config\n};\n","export const CSRF = 'CSRF';\nexport const USERNAME = 'R_USERNAME';\nexport const LOCALE = 'R_LOCALE';\nexport const REDIRECTED = 'R_REDIRECTED';\n","/**\n * Imports in a worker cannot include exports from the file invoking the worker or from files importing the invoking file.\n */\n\nimport Socket, {\n NO_WATCH,\n NO_SCHEMA,\n EVENT_CONNECTED,\n REVISION_TOO_OLD\n} from '@shell/utils/socket';\n\nexport const WATCH_STATUSES = {\n /**\n * watch has been asked for this resource but not request has not successfully been sent\n */\n WATCH_PENDING: 'pending',\n /**\n * requested but not confirmed by the socket yet\n */\n WATCH_REQUESTED: 'requested',\n /**\n * confirmed as active by the socket\n */\n WATCHING: 'watching',\n /**\n * temporarily stopped via message from the socket, a watch should immediately be triggered but the maintenance cycle will pick it up if that doesn't happen.\n */\n STOPPED: 'stopped',\n /**\n * stop has been asked for this resource, but request has not successfully been sent\n */\n REMOVE_PENDING: 'removed_pending',\n /**\n * stop request has been sent to the socket or it's been stopped by the socket itself and is now awaiting a resource.stop message\n */\n REMOVE_REQUESTED: 'removed_requested'\n};\n\nexport const keyForSubscribe = ({\n resourceType, type, namespace, id, selector\n} = {}) => {\n return [(resourceType || type), namespace, id, selector] // each watch param in an array\n .filter((param) => !!param) // filter out all the empty ones // the filter makes these keys neater\n .join('/'); // join into a string so we can use it as an object key\n};\n\nexport const watchKeyFromMessage = (msg) => {\n const {\n resourceType,\n namespace,\n id,\n selector\n } = msg;\n\n const watchObject = {\n resourceType,\n id,\n namespace,\n selector\n };\n\n return keyForSubscribe(watchObject);\n};\n\nconst {\n WATCH_PENDING, WATCH_REQUESTED, WATCHING, REMOVE_PENDING, REQUESTED_REMOVE\n} = WATCH_STATUSES;\n\nexport default class ResourceWatcher extends Socket {\n watches = {};\n status = '';\n debugWatcher = false;\n csrf;\n\n constructor(url, autoReconnect = true, frameTimeout = null, protocol = null, maxTries = null, csrf) {\n super(url, autoReconnect, frameTimeout, protocol, maxTries, true);\n this.baseUrl = self.location.origin + url.replace('subscribe', '');\n this.csrf = csrf;\n\n this.addEventListener(EVENT_CONNECTED, (e) => {\n this.trace(EVENT_CONNECTED, ': processing previously requested or watched resources');\n\n Object.values(this.watches).forEach((watch) => {\n const { status, error } = watch;\n const watchKey = keyForSubscribe(watch);\n\n if ([WATCH_PENDING, WATCH_REQUESTED, WATCHING].includes(status) && !error) {\n this.trace(EVENT_CONNECTED, ': re-watching previously required resource', watchKey, status);\n this.watches[watchKey].status = WATCH_PENDING;\n this.watch(watchKey);\n } else if ([REMOVE_PENDING].includes(status)) {\n this.trace(EVENT_CONNECTED, ': un-watching previously watched resource', watchKey, status);\n this.watches[watchKey].status = REMOVE_PENDING;\n this.unwatch(watchKey);\n }\n });\n });\n }\n\n trace(...args) {\n this.debugWatcher && console.info('Resource Watcher:', ...args); // eslint-disable-line no-console\n }\n\n setDebug(on) {\n this.debugWatcher = !!on;\n }\n\n watchExists(watchKey) {\n return !!this.watches?.[watchKey];\n }\n\n watch(watchKey, providedResourceVersion, providedResourceVersionTime, providedKeyParts = {}, providedSkipResourceVersion) {\n const {\n resourceType: providedResourceType,\n id: providedId,\n namespace: providedNamespace,\n selector: providedSelector,\n force: providedForce,\n } = providedKeyParts;\n\n this.trace('watch:', 'requested', watchKey);\n\n if ([WATCH_REQUESTED, WATCHING].includes(this.watches?.[watchKey]?.status)) {\n this.trace('watch:', 'already requested or watching, aborting', watchKey);\n\n return;\n }\n\n if (!providedForce && this.watches?.[watchKey]?.error) {\n if (this.watches?.[watchKey]?.error.reason !== REVISION_TOO_OLD) {\n this.trace('watch:', 'in error, aborting', watchKey);\n }\n\n return;\n }\n\n const resourceType = providedResourceType || this.watches?.[watchKey]?.resourceType;\n const id = providedId || this.watches?.[watchKey]?.id;\n const namespace = providedNamespace || this.watches?.[watchKey]?.namespace;\n const selector = providedSelector || this.watches?.[watchKey]?.selector;\n const skipResourceVersion = this.watches?.[watchKey]?.skipResourceVersion || providedSkipResourceVersion;\n\n const watchObject = {\n resourceType,\n id,\n namespace,\n selector\n };\n\n const resourceVersionTime = providedResourceVersionTime || this.watches?.[watchKey]?.resourceVersionTime;\n const resourceVersion = providedResourceVersion || this.watches?.[watchKey]?.resourceVersion;\n\n const success = this.send(JSON.stringify({\n ...watchObject,\n resourceVersion: !skipResourceVersion ? resourceVersion : undefined\n }));\n\n this.watches[watchKey] = {\n ...watchObject,\n status: success ? WATCH_STATUSES.WATCH_REQUESTED : WATCH_STATUSES.WATCH_PENDING,\n resourceVersion,\n resourceVersionTime,\n skipResourceVersion\n };\n }\n\n unwatch(watchKey) {\n const watch = this.watches?.[watchKey] || {};\n const {\n resourceType, id, namespace, selector\n } = watch;\n const watchObject = {\n resourceType,\n id,\n namespace,\n selector\n };\n\n if (resourceType && this.watches[watchKey].status !== REQUESTED_REMOVE) {\n const success = this.send(JSON.stringify({\n ...watchObject,\n stop: true\n }));\n\n this.watches[watchKey].status = success ? REQUESTED_REMOVE : REMOVE_PENDING;\n }\n }\n\n /**\n * Handles message from Backend to UI\n */\n _onmessage(event) {\n const {\n name: eventName, resourceType, data: { type }, id, namespace, selector, data\n } = JSON.parse(event.data);\n const watchKey = keyForSubscribe({\n resourceType,\n type,\n id,\n namespace,\n selector\n });\n\n if (eventName === 'resource.start' && this.watches?.[watchKey]?.status === WATCH_REQUESTED) {\n this.watches[watchKey].status = WATCHING;\n delete this.watches[watchKey].error;\n } else if (eventName === 'resource.stop' && this.watches?.[watchKey]) {\n // Find some way to resolve the correct resourceVersion from within the resourceWatcher until then:\n // reset the watch in the resourceWatcher, we'll handle recovery up the chain. For now\n // dispatch the event to the host process which should have a handler for resource.stop\n\n // if (this.watches?.[watchKey]?.status === REQUESTED_REMOVE) {\n this.watches[watchKey] = { error: this.watches[watchKey]?.error };\n // } else {\n // this.watches[watchKey].status = STOPPED;\n // delete this.watches[watchKey].resourceVersion;\n // delete this.watches[watchKey].resourceVersionTime;\n // this.watch(watchKey);\n // this.dispatchEvent(new CustomEvent(EVENT_MESSAGE, { detail: event }));\n // }\n } else if (eventName === 'resource.error') {\n const err = data?.error?.toLowerCase();\n\n if ( this.watches[watchKey] && err.includes('watch not allowed') ) {\n this.watches[watchKey].error = { type: resourceType, reason: NO_WATCH };\n } else if ( this.watches[watchKey] && err.includes('failed to find schema') ) {\n // This can happen when the cattle-cluster-agent goes down (redeploy deployment, kill pod, etc)\n // The previous method was just to track the error and block any further attempts to watch (canWatch)\n // This method means we can retry on the next findX (should be safe, unless there are other use cases...)\n\n this.watches[watchKey].error = { type: resourceType, reason: NO_SCHEMA };\n } else if ( err.includes('too old') ) {\n delete this.watches[watchKey].resourceVersion;\n delete this.watches[watchKey].resourceVersionTime;\n delete this.watches[watchKey].skipResourceVersion;\n this.watches[watchKey].error = { type: resourceType, reason: REVISION_TOO_OLD };\n // Needs to match sub resyncWatch params\n this.dispatchEvent(new CustomEvent('resync', {\n detail: {\n data: {\n resourceType, id, namespace, selector\n }\n }\n }));\n }\n this.trace('_onmessage:', 'new error', this.watches[watchKey].error);\n }\n\n super._onmessage(event);\n }\n}\n","import { SCHEMA } from '@shell/config/types';\nimport { hashObj } from '@shell/utils/crypto/browserHashUtils';\nimport { removeSchemaIndexFields } from '@shell/plugins/steve/schema.utils';\n\nconst SCHEMA_FLUSH_TIMEOUT = 2500;\n\nconst state = {\n store: '', // Store name\n flushTimer: undefined, // Timer to flush the schema change queue\n queue: [], // Schema change queue\n schemas: {} // Map of schema id to hash to track when a schema actually changes\n};\n\nfunction flush() {\n state.queue.forEach((schema) => {\n const hash = hashObj(schema);\n const existing = state.schemas[schema.id];\n\n if (!existing || (existing && existing !== hash)) {\n // console.log(`${ schema.id } CHANGED ${ hash } > ${ existing }`);\n state.schemas[schema.id] = hash;\n\n const msg = {\n data: schema,\n resourceType: SCHEMA,\n type: 'resource.change'\n };\n\n load(msg);\n }\n });\n\n state.queue = [];\n\n state.flushTimer = setTimeout(flush, SCHEMA_FLUSH_TIMEOUT);\n}\n\nstate.flushTimer = setTimeout(flush, SCHEMA_FLUSH_TIMEOUT);\n\n// Callback to the store's load function (in the main thread) to process a load\nfunction load(data) {\n self.postMessage({ load: data });\n}\n\n// used for dispatching a function in the worker, primarily for redirecting messages intended for the advanced worker back to the UI thread\nfunction redispatch(msg) {\n self.postMessage({ redispatch: msg });\n}\n\n/**\n * These actions aren't applicable to the basic worker, so bounce back to ui thread\n *\n * These are called when a queue of actions is flushed. Queue is populated from requests made before we know if worker is basic or advanced.\n */\nconst advancedWorkerActions = {\n watch: (msg) => {\n redispatch({ send: msg });\n },\n createWatcher: (msg) => {\n redispatch({ subscribe: msg });\n }\n};\n\nconst workerActions = {\n onmessage: (e) => {\n /* on the off chance there's more than key in the message, we handle them in the order that they \"keys\" method provides which is\n // good enough for now considering that we never send more than one message action at a time right now */\n const messageActions = Object.keys(e?.data);\n\n messageActions.forEach((action) => {\n if (workerActions[action]) {\n workerActions[action](e?.data[action]);\n } else {\n console.warn('no associated action for:', action); // eslint-disable-line no-console\n }\n });\n },\n initWorker: ({ storeName }) => {\n state.store = storeName;\n },\n\n destroyWorker: () => {\n clearTimeout(state.flushTimer);\n\n self.postMessage({ destroyWorker: true }); // we're only passing the boolean here because the key needs to be something truthy to ensure it's passed on the object.\n },\n\n // Called to load schema\n loadSchemas: (schemas) => {\n schemas.forEach((schema) => {\n // These properties are added to the object, but aren't on the raw object, so remove them\n // otherwise our comparison will show changes when there aren't any\n removeSchemaIndexFields(schema);\n\n state.schemas[schema.id] = hashObj(schema);\n });\n },\n\n // Called when schema is updated\n updateSchema: (schema) => {\n // Add the schema to the queue to be checked to see if the schema really changed\n state.queue.push(schema);\n },\n\n // Remove the cached schema\n removeSchema: (id) => {\n // Remove anything in the queue related to the schema - we don't want to send any pending updates later for a schema that has been removed\n state.queue = state.queue.filter((schema) => schema.id !== id);\n\n // Delete the schema from the map, so if it comes back we don't ignore it if the hash is the same\n delete state.schemas[id];\n },\n ...advancedWorkerActions\n};\n\nself.onmessage = workerActions.onmessage; // bind everything to the worker's onmessage handler via the workerAction\n","import { SCHEMA, COUNT } from '@shell/config/types';\nimport { keyFieldFor, normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport { addSchemaIndexFields } from '@shell/plugins/steve/schema.utils';\nimport { hashObj } from '@shell/utils/crypto/browserHashUtils';\n\nexport default class ResourceCache {\n resources = {};\n type;\n keyField;\n constructor(type) {\n this.type = normalizeType(type === 'counts' ? COUNT : type);\n this.keyField = keyFieldFor(this.type);\n }\n\n load(collection = []) {\n // console.time('startSchemaLoads!!!');\n for (let i = 0; i < collection.length; i++) {\n const resource = collection[i];\n\n if ( this.type === SCHEMA ) {\n addSchemaIndexFields(resource);\n }\n const id = resource[this.keyField];\n\n // Store the hash instead of the whole object. This means longer load time be reduces memory footprint\n // Perf Note: 3.328125 ms to load ~2500 schemas as objects into cache\n // Perf Note: 67.450927734375 ms to load ~2500 schemas as hashes into cache\n this.resources[id] = hashObj(resource);\n }\n // console.timeEnd('startSchemaLoads!!!');\n\n return this;\n }\n\n change(resource, callback) {\n if ( this.type === SCHEMA ) {\n addSchemaIndexFields(resource);\n }\n\n const existingResourceHash = this.resources[resource[this.keyField]] || {};\n const newResourceHash = hashObj(resource);\n\n if (existingResourceHash !== newResourceHash) {\n this.resources[resource[this.keyField]] = resource;\n callback();\n }\n }\n\n create(resource, callback) {\n // ToDo: the logic for create is identical to change in these caches but the worker doesn't know that\n this.change(resource, callback);\n }\n\n remove(id, callback) {\n if (this.resources[id]) {\n delete this.resources[id];\n callback();\n }\n }\n}\n","/**\n * Advanced Worker is enabled by performance setting\n * relocates cluster resource sockets off the UI thread and into a webworker\n */\n\nimport { SCHEMA, COUNT } from '@shell/config/types';\nimport ResourceWatcher, { watchKeyFromMessage } from '@shell/plugins/steve/resourceWatcher';\nimport ResourceCache from '@shell/plugins/steve/caches/resourceCache';\nimport { EVENT_MESSAGE, EVENT_CONNECT_ERROR, EVENT_DISCONNECT_ERROR } from '@shell/utils/socket';\nimport { normalizeType, keyFieldFor } from '@shell/plugins/dashboard-store/normalize';\nimport { addSchemaIndexFields } from '@shell/plugins/steve/schema.utils';\n\nconst caches = {};\n\nconst state = {\n watcher: undefined,\n store: '', // Store name\n /**\n * Store `watch`/`unwatch` events to process when the socket is created\n */\n workerQueue: [],\n batchChanges: {},\n debugWorker: false\n};\n\nconst trace = (...args) => {\n state.debugWorker && console.info('Advanced Worker:', ...args); // eslint-disable-line no-console\n};\n\ntrace('created');\n\nconst maintenanceInterval = setInterval(() => {\n if (Object.keys(state.batchChanges).length) {\n self.postMessage({ batchChanges: state.batchChanges });\n state.batchChanges = {};\n }\n}, 5000); // 5 seconds\n\nconst makeResourceProps = (msg) => {\n const { resourceType, data: { type }, data } = msg;\n const rawType = resourceType || type;\n const normalizedType = normalizeType(rawType === 'counts' ? COUNT : rawType);\n const keyField = keyFieldFor(normalizedType);\n\n if ( normalizedType === SCHEMA ) {\n addSchemaIndexFields(data);\n }\n\n return {\n type: normalizedType,\n id: data[keyField],\n data\n };\n};\n\n/**\n * Pass the EVENT_CONNECT_ERROR / EVENT_DISCONNECT_ERROR back to the UI thread\n */\nconst handleConnectionError = (eventType, event, watcher) => {\n trace('createWatcher', eventType, event);\n self.postMessage({\n [eventType]: {\n type: event.type,\n detail: event.detail,\n srcElement: {\n disconnectedAt: watcher.disconnectedAt,\n url: watcher.url,\n }\n }\n });\n};\n\n/**\n * Remove any pending messages related to this resource from the queue\n */\nconst removeFromWorkerQueue = (watchKey) => {\n state.workerQueue = state.workerQueue.filter((workerMessage) => {\n const [, msg] = Object.entries(workerMessage)[0];\n const workerMessageWatchKey = watchKeyFromMessage(msg);\n\n return watchKey !== workerMessageWatchKey;\n });\n};\n\n/**\n * These are things that we do when we get a message from the UI thread\n */\nconst workerActions = {\n // ToDo: SM we'll make a generic loader for all resource types when we need it but it'll be pretty similar to this\n loadSchemas: (collection) => {\n if (!caches[SCHEMA]) {\n caches[SCHEMA] = new ResourceCache(SCHEMA);\n }\n caches[SCHEMA].load(collection);\n },\n createWatcher: (opt) => {\n trace('createWatcher', opt);\n\n const {\n metadata, maxTries, url, csrf\n } = opt;\n\n if (!state.watcher) {\n state.watcher = new ResourceWatcher(url, true, null, null, maxTries, csrf);\n\n state.watcher.addEventListener(EVENT_MESSAGE, (e) => {\n const event = e.detail;\n\n if (event.data) {\n const msg = JSON.parse(event.data);\n\n if (msg.name) {\n if (resourceWatcherActions[msg.name]) {\n resourceWatcherActions[msg.name](msg);\n } else {\n resourceWatcherActions.dispatch(msg);\n }\n }\n }\n });\n\n state.watcher.addEventListener('resync', (e) => {\n self.postMessage({ redispatch: { resyncWatch: e.detail.data } });\n });\n\n state.watcher.addEventListener(EVENT_CONNECT_ERROR, (e) => {\n handleConnectionError(EVENT_CONNECT_ERROR, e, state.watcher);\n });\n\n state.watcher.addEventListener(EVENT_DISCONNECT_ERROR, (e) => {\n handleConnectionError(EVENT_DISCONNECT_ERROR, e, state.watcher);\n });\n\n state.watcher.setDebug(state.debugWorker);\n\n state.watcher.connect(metadata);\n\n // Flush the workerQueue\n while (state.workerQueue.length > 0) {\n trace('createWatcher', 'flushing workerQueue', state.workerQueue);\n\n const workerMessage = state.workerQueue.shift();\n const [action, msg] = Object.entries(workerMessage)[0];\n\n if (workerActions[action]) {\n workerActions[action](msg);\n } else {\n console.warn('no associated action for:', action); // eslint-disable-line no-console\n }\n }\n }\n },\n watch: (msg) => {\n trace('watch', msg);\n\n const watchKey = watchKeyFromMessage(msg);\n\n if (msg.stop) {\n workerActions.unwatch(watchKey);\n\n return;\n }\n\n // If socket is in error don't try to watch.... unless we `force` it\n if (!msg.force && !!state.watcher?.watches[watchKey]?.error) {\n return;\n }\n\n if (!state.watcher) {\n state.workerQueue.push({ watch: msg });\n\n return;\n }\n\n const {\n resourceType,\n namespace,\n id,\n selector,\n resourceVersion\n } = msg;\n\n const resourceVersionTime = resourceVersion ? Date.now() : undefined;\n const skipResourceVersion = [SCHEMA, COUNT].includes(resourceType);\n\n const watchObject = {\n resourceType,\n id,\n namespace,\n selector,\n force: msg.force,\n };\n\n state.watcher.watch(watchKey, resourceVersion, resourceVersionTime, watchObject, skipResourceVersion);\n },\n unwatch: (watchKey) => {\n trace('unwatch', watchKey);\n\n removeFromWorkerQueue(watchKey);\n\n if (!state.watcher) {\n return;\n }\n\n state.watcher.unwatch(watchKey);\n },\n initWorker: ({ storeName }) => {\n trace('initWorker', storeName);\n\n state.store = storeName;\n },\n destroyWorker: () => {\n trace('destroyWorker');\n\n clearInterval(maintenanceInterval);\n\n function destroyWorkerComplete() {\n delete self.onmessage;\n self.postMessage({ destroyWorker: true }); // we're only passing the boolean here because the key needs to be something truthy to ensure it's passed on the object.\n }\n\n // disconnect takes a callback which we'll use to close the webworker\n if (state.watcher) {\n state.watcher?.disconnect().then(destroyWorkerComplete);\n } else {\n destroyWorkerComplete();\n }\n },\n\n toggleDebug: ({ on }) => {\n state.debugWorker = !!on;\n state.watcher.setDebug(!!on);\n },\n updateBatch(type, id, change) {\n if (!state.batchChanges[type]) {\n state.batchChanges[type] = {};\n }\n state.batchChanges[type][id] = change;\n }\n};\n\n/**\n * These are things that we do when we get a message from the resourceWatcher\n */\nconst resourceWatcherActions = {\n 'resource.change': (msg) => {\n const { type, id, data } = makeResourceProps(msg);\n\n if (caches[type]) {\n caches[type].change(data, () => workerActions.updateBatch(type, id, data));\n } else {\n workerActions.updateBatch(type, id, data);\n }\n },\n // ToDo: SM create is functionally identical to change in the cache but the worker isn't supposed to know that hence the near-duplicate code\n 'resource.create': (msg) => {\n const { type, id, data } = makeResourceProps(msg);\n\n if (caches[type]) {\n caches[type].create(data, () => workerActions.updateBatch(type, id, data));\n } else {\n workerActions.updateBatch(type, id, data);\n }\n },\n 'resource.start': (msg) => {\n // State is handled in the resourceWatcher, no need to bubble out to UI thread\n },\n 'resource.remove': (msg) => {\n const { type, id } = makeResourceProps(msg);\n\n if (caches[type]) {\n caches[type].remove(id, () => workerActions.updateBatch(type, id, {}));\n } else {\n workerActions.updateBatch(type, id, {});\n }\n },\n 'resource.stop': (msg) => {\n trace('resource.stop', msg);\n\n // State is handled in the resourceWatcher....\n const watchKey = watchKeyFromMessage(msg);\n\n removeFromWorkerQueue(watchKey);\n\n // ... however we still want to bubble out to UI thread\n // We'll save some hassle and ignore any resource.stop bubble if we're in error. the only thing that will clear that is a resync\n if (!state.watcher?.watches[watchKey]?.error) {\n // See comment in resourceWatcher 'resource.stop' handler, until we can resolve the resourceVersion within the resourceWatcher\n // internally, we'll want to bubble this out to the UI thread. When that's resolved this won't be needed\n resourceWatcherActions.dispatch({\n ...msg,\n advancedWorker: true,\n });\n }\n },\n 'resource.error': (msg) => {\n // State is handled in the resourceWatcher, no need to bubble out to UI thread\n console.warn(`Resource error [${ state.store }]`, msg.resourceType, ':', msg.data.error); // eslint-disable-line no-console\n },\n dispatch: (msg) => {\n self.postMessage({ dispatch: msg });\n }\n};\n\n/**\n * Covers message from UI Thread to Worker\n */\nself.onmessage = (e) => {\n /* on the off chance there's more than key in the message, we handle them in the order that they \"keys\" method provides which is\n // good enough for now considering that we never send more than one message action at a time right now */\n const messageActions = Object.keys(e?.data);\n\n messageActions.forEach((action) => {\n if (workerActions[action]) {\n workerActions[action](e?.data[action]);\n } else {\n console.warn('no associated action for:', action); // eslint-disable-line no-console\n }\n });\n}; // bind everything to the worker's onmessage handler via the workerActions\n","// eslint-disable-next-line no-unused-vars\nimport basicWorkerConstructor from '@shell/plugins/steve/worker/web-worker.basic.js';\n// eslint-disable-next-line no-unused-vars\nimport advancedWorkerConstructor from '@shell/plugins/steve/worker/web-worker.advanced.js';\n\nexport const WORKER_MODES = {\n WAITING: 'waiting',\n DESTROY_MOCK: 'destroy',\n BASIC: 'basic',\n ADVANCED: 'advanced'\n};\n\nexport default function storeWorker(mode, options = {}, closures = {}) {\n let worker;\n\n if (mode === WORKER_MODES.ADVANCED) {\n worker = new advancedWorkerConstructor();\n } else {\n worker = new basicWorkerConstructor();\n }\n worker.mode = mode;\n\n return worker;\n}\n","import pAndNFiltering from '@shell/plugins/steve/projectAndNamespaceFiltering.utils';\n\ntype TypeIsCached = { [type: string]: boolean }\n\n/**\n * There are scenarios where we can't subscribe to subsets of a resource type\n * - Multiple namespaces or projects\n * - Result of Pagination (a single page of resources that have been sorted / filtered)\n *\n * For those scenarios we subscribe to allll changes BUT ignore changes that are not applicable to that subset\n */\nclass AcceptOrRejectSocketMessage {\n typeIsNamespaced({ getters }: any, type: string): boolean {\n return getters.haveNamespace(type)?.length > 0;\n }\n\n typeIsPaginated({ getters }: any, type: string): boolean {\n return !!getters.havePage(type);\n }\n\n filteredNamespaces({ rootGetters }: any) {\n // Note - activeNamespaceCache should be accurate for both namespace/project filtering and pagination namespace/project filtering\n return rootGetters.activeNamespaceCache;\n }\n\n /**\n * Note - namespace can be a list of projects or namespaces\n */\n subscribeNamespace(namespace: string[]) {\n if (pAndNFiltering.isApplicable({ namespaced: namespace, type: 'n/a' }) && namespace.length) {\n return undefined; // AKA sub to everything\n }\n\n return namespace;\n }\n\n validChange({ getters, rootGetters }: any, type: string, data: any) {\n // If the resource is in namespace outside of the one's we have selected in the header... ignore the change\n if (this.typeIsNamespaced({ getters }, type)) {\n const namespaces = this.filteredNamespaces({ rootGetters });\n\n if (!namespaces[data.metadata.namespace]) {\n return false;\n }\n }\n\n // If the resource does not meet the previously fetched paginated resource... ignore the change\n if (this.typeIsPaginated({ getters }, type)) {\n const page = getters['all'](type);\n\n return !!page.find((pR: any) => pR.id === data.id);\n }\n\n return true;\n }\n\n validateBatchChange({ getters, rootGetters }: any, batch: { [key: string]: any}) {\n const namespaces = this.filteredNamespaces({ rootGetters });\n\n const typeIs: { namespaced: TypeIsCached, paginated: TypeIsCached} = {\n namespaced: {},\n paginated: {},\n };\n\n Object.entries(batch).forEach(([type, entries]) => {\n if (typeIs.namespaced[type] === undefined) {\n typeIs.namespaced[type] = this.typeIsNamespaced({ getters }, type);\n }\n if (typeIs.namespaced[type]) {\n const schema = getters.schemaFor(type);\n\n if (!schema?.attributes?.namespaced) {\n return;\n }\n\n Object.keys(entries).forEach((id) => {\n const namespace = id.split('/')[0];\n\n if (!namespace || !namespaces[namespace]) {\n delete entries[id];\n }\n });\n }\n\n if (typeIs.paginated[type] === undefined) {\n typeIs.paginated[type] = this.typeIsPaginated({ getters }, type);\n }\n if (typeIs.paginated[type]) {\n const page = getters['all'](type);\n\n Object.keys(entries).forEach((id) => {\n if (!page.find((pR: any) => pR.id === id)) {\n delete entries[id];\n }\n });\n }\n });\n\n return batch;\n }\n}\n\nexport default new AcceptOrRejectSocketMessage();\n","/**\n * Handles subscriptions to websockets which receive updates to resources\n *\n * Covers three use cases\n * 1) Handles subscription within this file\n * 2) Handles `cluster` subscriptions for some basic types in a web worker (SETTING.UI_PERFORMANCE advancedWorker = false)\n * 2) Handles `cluster` subscriptions and optimisations in an advanced worker (SETTING.UI_PERFORMANCE advancedWorker = true)\n */\n\nimport { addObject, clear, removeObject } from '@shell/utils/array';\nimport { get, deepToRaw } from '@shell/utils/object';\nimport { SCHEMA, MANAGEMENT } from '@shell/config/types';\nimport { SETTING } from '@shell/config/settings';\nimport { CSRF } from '@shell/config/cookies';\nimport { getPerformanceSetting } from '@shell/utils/settings';\nimport Socket, {\n EVENT_CONNECTED,\n EVENT_DISCONNECTED,\n EVENT_MESSAGE,\n // EVENT_FRAME_TIMEOUT,\n EVENT_CONNECT_ERROR,\n EVENT_DISCONNECT_ERROR,\n NO_WATCH,\n NO_SCHEMA,\n REVISION_TOO_OLD,\n NO_PERMS\n} from '@shell/utils/socket';\nimport { normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport day from 'dayjs';\nimport { DATE_FORMAT, TIME_FORMAT } from '@shell/store/prefs';\nimport { escapeHtml } from '@shell/utils/string';\nimport { keyForSubscribe } from '@shell/plugins/steve/resourceWatcher';\nimport { waitFor } from '@shell/utils/async';\nimport { WORKER_MODES } from './worker';\nimport acceptOrRejectSocketMessage from './accept-or-reject-socket-message';\nimport { BLANK_CLUSTER, STORE } from '@shell/store/store-types.js';\nimport paginationUtils from '@shell/utils/pagination-utils';\n\n// minimum length of time a disconnect notification is shown\nconst MINIMUM_TIME_NOTIFIED = 3000;\n\nconst workerQueues = {};\n\nconst supportedStores = [STORE.CLUSTER, STORE.RANCHER, STORE.MANAGEMENT];\n\nconst isWaitingForDestroy = (storeName, store) => {\n return store.$workers[storeName]?.waitingForDestroy && store.$workers[storeName].waitingForDestroy();\n};\n\nconst waitForSettingsSchema = (storeName, store) => {\n return waitFor(() => isWaitingForDestroy(storeName, store) || !!store.getters['management/byId'](SCHEMA, MANAGEMENT.SETTING));\n};\n\nconst waitForSettings = (storeName, store) => {\n return waitFor(() => isWaitingForDestroy(storeName, store) || !!store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.UI_PERFORMANCE));\n};\n\nconst isAdvancedWorker = (ctx) => {\n const { rootGetters, getters } = ctx;\n const storeName = getters.storeName;\n const clusterId = rootGetters.clusterId;\n\n if (!supportedStores.includes(storeName) || (clusterId === BLANK_CLUSTER && storeName === STORE.CLUSTER)) {\n return false;\n }\n\n const perfSetting = getPerformanceSetting(rootGetters);\n\n return perfSetting?.advancedWorker.enabled;\n};\n\nexport async function createWorker(store, ctx) {\n const { getters, dispatch } = ctx;\n const storeName = getters.storeName;\n\n store.$workers = store.$workers || {};\n\n if (!supportedStores.includes(storeName)) {\n return;\n }\n\n if (!store.$workers[storeName]) {\n // we know we need a worker at this point but we don't know which one so we're creating a mock interface\n // it will simply queue up any messages for the real worker to process when it loads up\n store.$workers[storeName] = {\n postMessage: (msg) => {\n if (Object.keys(msg)?.[0] === 'destroyWorker') {\n // The worker has been destroyed before it's been set up. Flag this so we stop waiting for mgmt settings and then can destroy worker.\n // This can occurr when the user is redirected to the log in page\n // - workers created (but waiting)\n // - logout is called\n // - <store>/unsubscribe is dispatched\n // - wait for worker object to be destroyed <-- requires initial wait to be unblocked\n store.$workers[storeName].mode = WORKER_MODES.DESTROY_MOCK;\n\n return;\n }\n if (workerQueues[storeName]) {\n workerQueues[storeName].push(msg);\n } else {\n workerQueues[storeName] = [msg];\n }\n },\n mode: WORKER_MODES.WAITING,\n waitingForDestroy: () => {\n return store.$workers[storeName]?.mode === WORKER_MODES.DESTROY_MOCK;\n },\n destroy: () => {\n // Similar to workerActions.destroyWorker\n delete store.$workers[storeName];\n }\n };\n }\n\n await waitForSettingsSchema(storeName, store);\n await waitForSettings(storeName, store);\n if (store.$workers[storeName].waitingForDestroy()) {\n store.$workers[storeName].destroy();\n\n return;\n }\n const advancedWorker = isAdvancedWorker(ctx);\n\n const workerActions = {\n load: (resource) => {\n queueChange(ctx, resource, true, 'Change');\n },\n destroyWorker: () => {\n if (store.$workers) {\n store.$workers[storeName].terminate();\n delete store.$workers[storeName];\n }\n },\n batchChanges: (batch) => {\n dispatch('batchChanges', acceptOrRejectSocketMessage.validateBatchChange(ctx, batch));\n },\n dispatch: (msg) => {\n dispatch(`ws.${ msg.name }`, msg);\n },\n redispatch: (msg) => {\n /**\n * because we had to queue up some messages prior to loading the worker:\n * the basic worker will need to redispatch some of the queued messages back to the UI thread\n */\n Object.entries(msg).forEach(([action, params]) => {\n dispatch(action, params);\n });\n },\n [EVENT_CONNECT_ERROR]: (e) => {\n dispatch('error', e );\n },\n [EVENT_DISCONNECT_ERROR]: (e) => {\n dispatch('error', e );\n },\n };\n\n if (!store.$workers[storeName] || store.$workers[storeName].mode === WORKER_MODES.WAITING) {\n const workerMode = advancedWorker ? WORKER_MODES.ADVANCED : WORKER_MODES.BASIC;\n const worker = store.steveCreateWorker(workerMode);\n\n store.$workers[storeName] = worker;\n\n worker.postMessage({ initWorker: { storeName } });\n\n /**\n * Covers message from Worker to UI thread\n */\n store.$workers[storeName].onmessage = (e) => {\n /* on the off chance there's more than key in the message, we handle them in the order that they \"keys\" method provides which is\n // good enough for now considering that we never send more than one message action at a time right now */\n const messageActions = Object.keys(e?.data);\n\n messageActions.forEach((action) => {\n workerActions[action](e?.data[action]);\n });\n };\n }\n\n while (workerQueues[storeName]?.length) {\n const message = workerQueues[storeName].shift();\n const safeMessage = deepToRaw(message);\n\n store.$workers[storeName].postMessage(safeMessage);\n }\n}\n\nexport function equivalentWatch(a, b) {\n const aresourceType = a.resourceType || a.type;\n const bresourceType = b.resourceType || b.type;\n\n if ( aresourceType !== bresourceType ) {\n return false;\n }\n\n if ( a.id !== b.id && (a.id || b.id) ) {\n return false;\n }\n\n if ( a.namespace !== b.namespace && (a.namespace || b.namespace) ) {\n return false;\n }\n\n if ( a.selector !== b.selector && (a.selector || b.selector) ) {\n return false;\n }\n\n return true;\n}\n\nfunction queueChange({ getters, state, rootGetters }, { data, revision }, load, label) {\n const type = getters.normalizeType(data.type);\n\n const entry = getters.typeEntry(type);\n\n if ( entry ) {\n entry.revision = Math.max(entry.revision, parseInt(revision, 10));\n } else {\n return;\n }\n\n // console.log(`${ label } Event [${ state.config.namespace }]`, data.type, data.id); // eslint-disable-line no-console\n\n if (!acceptOrRejectSocketMessage.validChange({ getters, rootGetters }, type, data)) {\n return;\n }\n\n if ( load ) {\n state.queue.push({\n action: 'dispatch',\n event: 'load',\n body: data\n });\n } else {\n const obj = getters.byId(data.type, data.id);\n\n if ( obj ) {\n state.queue.push({\n action: 'commit',\n event: 'remove',\n body: obj\n });\n }\n\n if ( type === SCHEMA ) {\n // Clear the current records in the store when a type disappears\n state.queue.push({\n action: 'commit',\n event: 'forgetType',\n body: data.id\n });\n }\n }\n}\n\nfunction growlsDisabled(rootGetters) {\n return getPerformanceSetting(rootGetters)?.disableWebsocketNotification;\n}\n\n/**\n * Actions that cover all cases (see file description)\n */\nconst sharedActions = {\n async subscribe(ctx, opt) {\n const {\n state, commit, dispatch, getters, rootGetters\n } = ctx;\n\n // ToDo: need to keep the worker up to date on CSRF cookie\n\n if (rootGetters['isSingleProduct']?.disableSteveSockets) {\n return;\n }\n\n let socket = state.socket;\n\n commit('setWantSocket', true);\n\n state.debugSocket && console.info(`Subscribe [${ getters.storeName }]`); // eslint-disable-line no-console\n\n const url = `${ state.config.baseUrl }/subscribe`;\n const maxTries = growlsDisabled(rootGetters) ? null : 3;\n const metadata = get(opt, 'metadata');\n\n if (isAdvancedWorker(ctx)) {\n if (!this.$workers[getters.storeName]) {\n await createWorker(this, ctx);\n }\n\n // if the worker is in advanced mode then it'll contain it's own socket which it calls a 'watcher'\n this.$workers[getters.storeName].postMessage({\n createWatcher: {\n metadata,\n url: `${ state.config.baseUrl }/subscribe`,\n csrf: this.$cookies.get(CSRF, { parseJSON: false }),\n maxTries\n }\n });\n } else if ( socket ) {\n socket.setAutoReconnect(true);\n socket.setUrl(url);\n socket.connect(metadata);\n } else {\n socket = new Socket(`${ state.config.baseUrl }/subscribe`, true, null, null, maxTries);\n\n commit('setSocket', socket);\n socket.addEventListener(EVENT_CONNECTED, (e) => {\n dispatch('opened', e);\n });\n\n socket.addEventListener(EVENT_DISCONNECTED, (e) => {\n dispatch('closed', e);\n });\n\n socket.addEventListener(EVENT_CONNECT_ERROR, (e) => {\n dispatch('error', e );\n });\n\n socket.addEventListener(EVENT_DISCONNECT_ERROR, (e) => {\n dispatch('error', e );\n });\n\n socket.addEventListener(EVENT_MESSAGE, (e) => {\n const event = e.detail;\n\n if ( event.data) {\n const msg = JSON.parse(event.data);\n\n if (msg.name) {\n dispatch(`ws.${ msg.name }`, msg);\n }\n }\n });\n socket.connect(metadata);\n }\n },\n\n unsubscribe({ commit, getters, state }) {\n const socket = state.socket;\n\n commit('setWantSocket', false);\n const cleanupTasks = [];\n\n const worker = (this.$workers || {})[getters.storeName];\n\n if (worker) {\n worker.postMessage({ destroyWorker: true }); // we're only passing the boolean here because the key needs to be something truthy to ensure it's passed on the object.\n cleanupTasks.push(waitFor(() => !this.$workers[getters.storeName], 'Worker is destroyed'));\n }\n\n if ( socket ) {\n cleanupTasks.push(socket.disconnect());\n }\n\n return Promise.all(cleanupTasks);\n },\n\n watch({\n state, dispatch, getters, rootGetters\n }, params) {\n state.debugSocket && console.info(`Watch Request [${ getters.storeName }]`, JSON.stringify(params)); // eslint-disable-line no-console\n\n let {\n // eslint-disable-next-line prefer-const\n type, selector, id, revision, namespace, stop, force\n } = params;\n\n namespace = acceptOrRejectSocketMessage.subscribeNamespace(namespace);\n type = getters.normalizeType(type);\n\n if (rootGetters['type-map/isSpoofed'](type)) {\n state.debugSocket && console.info('Will not Watch (type is spoofed)', JSON.stringify(params)); // eslint-disable-line no-console\n\n return;\n }\n\n const schema = getters.schemaFor(type, false, false);\n\n if (!!schema?.attributes?.verbs?.includes && !schema.attributes.verbs.includes('watch')) {\n state.debugSocket && console.info('Will not Watch (type does not have watch verb)', JSON.stringify(params)); // eslint-disable-line no-console\n\n return;\n }\n\n // If socket is in error don't try to watch.... unless we `force` it\n const inError = getters.inError(params);\n\n if ( !stop && !force && inError ) {\n // REVISION_TOO_OLD is a temporary state and will be handled when `resyncWatch` completes\n if (inError !== REVISION_TOO_OLD) {\n console.error(`Aborting Watch Request [${ getters.storeName }]. Watcher in error (${ inError })`, JSON.stringify(params)); // eslint-disable-line no-console\n }\n\n return;\n }\n\n if ( !stop && getters.watchStarted({\n type, id, selector, namespace\n }) ) {\n // eslint-disable-next-line no-console\n state.debugSocket && console.debug(`Already Watching [${ getters.storeName }]`, {\n type, id, selector, namespace\n });\n\n return;\n }\n\n // isSteveCacheEnabled check is temporary and will be removed once Part 3 of https://github.com/rancher/dashboard/pull/10349 is resolved by backend\n // Steve cache backed api does not return a revision, so `revision` here is always undefined\n // Which means we find a revision within a resource itself and use it in the watch\n // That revision is probably too old and results in a watch error\n // Watch errors mean we make a http request to get latest revision (which is still missing) and try to re-watch with it...\n // etc\n if (typeof revision === 'undefined' && !paginationUtils.isSteveCacheEnabled({ rootGetters })) {\n revision = getters.nextResourceVersion(type, id);\n }\n\n const msg = { resourceType: type };\n\n if ( revision ) {\n msg.resourceVersion = `${ revision }`;\n }\n\n if ( namespace ) {\n msg.namespace = namespace;\n }\n\n if ( stop ) {\n msg.stop = true;\n }\n\n if ( id ) {\n msg.id = id;\n }\n\n if ( selector ) {\n msg.selector = selector;\n }\n\n const worker = this.$workers?.[getters.storeName] || {};\n\n if (worker.mode === WORKER_MODES.ADVANCED || worker.mode === WORKER_MODES.WAITING) {\n if ( force ) {\n msg.force = true;\n }\n\n worker.postMessage({ watch: msg });\n\n return;\n }\n\n return dispatch('send', msg);\n },\n\n unwatch(ctx, {\n type, id, namespace, selector, all\n }) {\n const { commit, getters, dispatch } = ctx;\n\n if (getters['schemaFor'](type)) {\n namespace = acceptOrRejectSocketMessage.subscribeNamespace(namespace);\n\n const obj = {\n type,\n id,\n namespace,\n selector,\n stop: true, // Stops the watch on a type\n };\n\n const unwatch = (obj) => {\n if (getters['watchStarted'](obj)) {\n // Set that we don't want to watch this type\n // Otherwise, the dispatch to unwatch below will just cause a re-watch when we\n // detect the stop message from the backend over the web socket\n commit('setWatchStopped', obj);\n dispatch('watch', obj); // Ask the backend to stop watching the type\n // Make sure anything in the pending queue for the type is removed, since we've now removed the type\n commit('clearFromQueue', type);\n }\n };\n\n if (isAdvancedWorker(ctx)) {\n dispatch('watch', obj); // Ask the backend to stop watching the type\n } else if (all) {\n getters['watchesOfType'](type).forEach((obj) => {\n unwatch(obj);\n });\n } else if (getters['watchStarted'](obj)) {\n unwatch(obj);\n }\n }\n },\n\n 'ws.ping'({ getters, dispatch }, msg) {\n if ( getters.storeName === 'management' ) {\n const version = msg?.data?.version || null;\n\n dispatch('updateServerVersion', version, { root: true });\n console.info(`Ping [${ getters.storeName }] from ${ version || 'unknown version' }`); // eslint-disable-line no-console\n }\n },\n};\n\n/**\n * Mutations that cover all cases (both subscriptions here and in advanced worker)\n */\nconst sharedMutations = {\n debug(state, on, store) {\n state.debugSocket = on !== false;\n if (store && this.$workers[store]) {\n this.$workers[store].postMessage({ toggleDebug: on !== false });\n }\n },\n};\n\n/**\n * Actions that cover cases 1 & 2 (see file description)\n */\nconst defaultActions = {\n\n async flush({\n state, commit, dispatch, getters\n }) {\n const queue = state.queue;\n let toLoad = [];\n\n if ( !queue.length ) {\n return;\n }\n\n const started = new Date().getTime();\n\n state.queue = [];\n\n state.debugSocket && console.debug(`Subscribe Flush [${ getters.storeName }]`, queue.length, 'items'); // eslint-disable-line no-console\n\n for ( const { action, event, body } of queue ) {\n if ( action === 'dispatch' && event === 'load' ) {\n // Group loads into one loadMulti when possible\n toLoad.push(body);\n } else {\n // When we hit a different kind of event, process all the previous loads, then the other event.\n if ( toLoad.length ) {\n await dispatch('loadMulti', toLoad);\n toLoad = [];\n }\n\n if ( action === 'dispatch' ) {\n await dispatch(event, body);\n } else if ( action === 'commit' ) {\n commit(event, body);\n } else {\n throw new Error('Invalid queued action');\n }\n }\n }\n\n // Process any remaining loads\n if ( toLoad.length ) {\n await dispatch('loadMulti', toLoad);\n }\n\n state.debugSocket && console.debug(`Subscribe Flush [${ getters.storeName }] finished`, (new Date().getTime()) - started, 'ms'); // eslint-disable-line no-console\n },\n\n rehydrateSubscribe({ state, dispatch }) {\n if ( state.wantSocket && !state.socket ) {\n dispatch('subscribe');\n }\n },\n\n reconnectWatches({\n state, getters, commit, dispatch\n }) {\n const promises = [];\n\n for ( const entry of state.started.slice() ) {\n console.info(`Reconnect [${ getters.storeName }]`, JSON.stringify(entry)); // eslint-disable-line no-console\n\n if ( getters.schemaFor(entry.type) ) {\n commit('setWatchStopped', entry);\n delete entry.revision;\n promises.push(dispatch('watch', entry));\n }\n }\n\n return Promise.all(promises);\n },\n\n async resyncWatch({\n state, getters, dispatch, commit\n }, params) {\n const {\n resourceType, namespace, id, selector\n } = params;\n\n console.info(`Resync [${ getters.storeName }]`, params); // eslint-disable-line no-console\n\n const opt = { force: true, forceWatch: true };\n\n if ( id ) {\n await dispatch('find', {\n type: resourceType,\n id,\n opt: {\n ...opt,\n // Pass the namespace so `find` can construct the url correctly\n namespaced: namespace,\n // Ensure that find calls watch with no revision (otherwise it'll use the revision from the resource which is probably stale)\n revision: null\n },\n });\n\n return;\n }\n let have, want;\n\n if ( selector ) {\n have = getters['matching'](resourceType, selector).slice();\n want = await dispatch('findMatching', {\n type: resourceType,\n selector,\n opt,\n });\n } else {\n have = getters['all'](resourceType).slice();\n\n if ( namespace ) {\n have = have.filter((x) => x.metadata?.namespace === namespace);\n }\n\n want = await dispatch('findAll', {\n type: resourceType,\n watchNamespace: namespace,\n opt\n });\n }\n\n const wantMap = {};\n\n for ( const obj of want ) {\n wantMap[obj.id] = true;\n }\n\n for ( const obj of have ) {\n if ( !wantMap[obj.id] ) {\n state.debugSocket && console.info(`Remove stale [${ getters.storeName }]`, resourceType, obj.id); // eslint-disable-line no-console\n\n commit('remove', obj);\n }\n }\n },\n\n async opened({\n commit, dispatch, state, getters, rootGetters\n }, event) {\n state.debugSocket && console.info(`WebSocket Opened [${ getters.storeName }]`); // eslint-disable-line no-console\n const socket = event.currentTarget;\n const tries = event?.detail?.tries; // have to pull it off of the event because the socket's tries is already reset to 0\n const t = rootGetters['i18n/t'];\n const disableGrowl = growlsDisabled(rootGetters);\n\n this.$socket = socket;\n\n if ( !state.queue ) {\n state.queue = [];\n }\n\n if ( !state.queueTimer ) {\n state.flushQueue = async() => {\n if ( state.queue.length ) {\n await dispatch('flush');\n }\n\n state.queueTimer = setTimeout(state.flushQueue, 1000);\n };\n\n state.flushQueue();\n }\n\n if ( socket.hasReconnected ) {\n await dispatch('reconnectWatches');\n // Check for disconnect notifications and clear them\n const growlErr = rootGetters['growl/find']({ key: 'url', val: socket.url });\n\n if (growlErr) {\n dispatch('growl/remove', growlErr.id, { root: true });\n }\n if (tries > 1 && !disableGrowl) {\n dispatch('growl/success', {\n title: t('growl.reconnected.title'),\n message: t('growl.reconnected.message', { url: this.$socket.url, tries }),\n }, { root: true });\n }\n }\n\n // Try resending any frames that were attempted to be sent while the socket was down, once.\n for ( const obj of state.pendingFrames.slice() ) {\n commit('dequeuePendingFrame', obj);\n dispatch('sendImmediate', obj);\n }\n },\n\n closed({ state, getters }) {\n state.debugSocket && console.info(`WebSocket Closed [${ getters.storeName }]`); // eslint-disable-line no-console\n clearTimeout(state.queueTimer);\n state.queueTimer = null;\n },\n\n error({\n getters, state, dispatch, rootGetters\n }, e) {\n clearTimeout(state.queueTimer);\n state.queueTimer = null;\n\n // determine if websocket notifications are disabled\n const disableGrowl = growlsDisabled(rootGetters);\n\n if (!disableGrowl) {\n const dateFormat = escapeHtml( rootGetters['prefs/get'](DATE_FORMAT));\n const timeFormat = escapeHtml( rootGetters['prefs/get'](TIME_FORMAT));\n const time = e?.srcElement?.disconnectedAt || Date.now();\n\n const timeFormatted = `${ day(time).format(`${ dateFormat } ${ timeFormat }`) }`;\n const url = e?.srcElement?.url;\n const tries = state?.socket?.tries;\n\n const t = rootGetters['i18n/t'];\n\n const growlErr = rootGetters['growl/find']({ key: 'url', val: url });\n\n if (e.type === EVENT_CONNECT_ERROR) { // if this occurs, then we're at least retrying to connect\n if (growlErr) {\n dispatch('growl/remove', growlErr.id, { root: true });\n }\n dispatch('growl/error', {\n title: t('growl.connectError.title'),\n message: t('growl.connectError.message', {\n url, time: timeFormatted, tries\n }, { raw: true }),\n icon: 'error',\n earliestClose: time + MINIMUM_TIME_NOTIFIED,\n url\n }, { root: true });\n } else if (e.type === EVENT_DISCONNECT_ERROR) { // if this occurs, we've given up on trying to reconnect\n if (growlErr) {\n dispatch('growl/remove', growlErr.id, { root: true });\n }\n dispatch('growl/error', {\n title: t('growl.disconnectError.title'),\n message: t('growl.disconnectError.message', {\n url, time: timeFormatted, tries\n }, { raw: true }),\n icon: 'error',\n earliestClose: time + MINIMUM_TIME_NOTIFIED,\n url\n }, { root: true });\n } else {\n // if the error is not a connect error or disconnect error, the socket never worked: log whether the current browser is safari\n console.error(`WebSocket Connection Error [${ getters.storeName }]`, e.detail); // eslint-disable-line no-console\n }\n }\n },\n\n send({ state, commit }, obj) {\n if ( state.socket ) {\n const ok = state.socket.send(JSON.stringify(obj));\n\n if ( ok ) {\n return;\n }\n }\n\n commit('enqueuePendingFrame', obj);\n },\n\n sendImmediate({ state }, obj) {\n if ( state.socket ) {\n return state.socket.send(JSON.stringify(obj));\n }\n },\n\n /**\n * Steve only event\n */\n 'ws.resource.start'({\n state, getters, commit, dispatch\n }, msg) {\n state.debugSocket && console.info(`Resource start: [${ getters.storeName }]`, msg); // eslint-disable-line no-console\n\n const newWatch = {\n type: msg.resourceType,\n namespace: msg.namespace,\n id: msg.id,\n selector: msg.selector\n };\n\n state.started.filter((entry) => {\n if (\n entry.type === newWatch.type &&\n entry.namespace !== newWatch.namespace\n ) {\n return true;\n }\n }).forEach((entry) => {\n dispatch('unwatch', entry);\n });\n\n commit('setWatchStarted', newWatch);\n },\n\n 'ws.resource.error'({ getters, commit, dispatch }, msg) {\n console.warn(`Resource error [${ getters.storeName }]`, msg.resourceType, ':', msg.data.error); // eslint-disable-line no-console\n\n const err = msg.data?.error?.toLowerCase();\n\n if ( err.includes('watch not allowed') ) {\n commit('setInError', { msg, reason: NO_WATCH });\n } else if ( err.includes('failed to find schema') ) {\n commit('setInError', { msg, reason: NO_SCHEMA });\n } else if ( err.includes('too old') ) {\n // Set an error for (all) subs of this type. This..\n // 1) blocks attempts by resource.stop to resub (as type is in error)\n // 2) will be cleared when resyncWatch --> watch (with force) --> resource.start completes\n commit('setInError', { msg, reason: REVISION_TOO_OLD });\n dispatch('resyncWatch', msg);\n } else if ( err.includes('the server does not allow this method on the requested resource')) {\n commit('setInError', { msg, reason: NO_PERMS });\n }\n },\n\n /**\n * Steve only event\n *\n * Steve has stopped watching this resource. This happens for a couple of reasons\n * - We have requested that the resource watch should be stopped (and we receive this event as confirmation)\n * - Steve tells us that the resource watch has been stopped. Possible reasons\n * - The rancher <--> k8s socket closed (happens every ~30 mins on mgmt socket)\n * - Permissions has changed for the subscribed resource, so rancher closes socket\n */\n 'ws.resource.stop'({\n state, getters, commit, dispatch\n }, msg) {\n const type = msg.resourceType;\n const obj = {\n type,\n id: msg.id,\n namespace: msg.namespace,\n selector: msg.selector\n };\n\n state.debugSocket && console.info(`Resource Stop [${ getters.storeName }]`, type, msg); // eslint-disable-line no-console\n\n if (!type) {\n console.error(`Resource Stop [${ getters.storeName }]. Received resource.stop with an empty resourceType, aborting`, msg); // eslint-disable-line no-console\n\n return;\n }\n\n // If we're trying to watch this event, attempt to re-watch\n //\n // To make life easier in the advanced worker `resource.stop` --> `watch` is handled here (basically for access to getters.nextResourceVersion)\n // This means the concept of resource sub watch state needs massaging\n const advancedWorker = msg.advancedWorker;\n const localState = !advancedWorker;\n const watchStarted = localState ? getters['watchStarted'](obj) : advancedWorker;\n\n if ( getters['schemaFor'](type) && watchStarted) {\n if (localState) {\n commit('setWatchStopped', obj);\n }\n\n dispatch('watch', obj);\n }\n },\n\n 'ws.resource.create'(ctx, msg) {\n ctx.state.debugSocket && console.info(`Resource Create [${ ctx.getters.storeName }]`, msg.resourceType, msg); // eslint-disable-line no-console\n queueChange(ctx, msg, true, 'Create');\n },\n\n 'ws.resource.change'(ctx, msg) {\n const data = msg.data;\n const type = data.type;\n\n // Work-around for ws.error messages being sent as change events\n // These have no id (or other metadata) which breaks lots if they are processed as change events\n if (data.message && !data.id) {\n return;\n }\n\n // Web worker can process schemas to check that they are actually changing and\n // only load updates if the schema did actually change\n if (type === SCHEMA) {\n const worker = (this.$workers || {})[ctx.getters.storeName];\n\n if (worker) {\n worker.postMessage({ updateSchema: data });\n\n // No further processing - let the web worker check the schema updates\n return;\n }\n }\n\n queueChange(ctx, msg, true, 'Change');\n\n const typeOption = ctx.rootGetters['type-map/optionsFor'](type);\n\n if (typeOption?.alias?.length > 0) {\n const alias = typeOption?.alias || [];\n\n alias.map((type) => {\n ctx.state.queue.push({\n action: 'dispatch',\n event: 'load',\n body: {\n ...data,\n type,\n },\n });\n });\n }\n },\n\n 'ws.resource.remove'(ctx, msg) {\n const data = msg.data;\n const type = data.type;\n\n ctx.state.debugSocket && console.info(`Resource Remove [${ ctx.getters.storeName }]`, type, msg); // eslint-disable-line no-console\n\n if (type === SCHEMA) {\n const worker = (this.$workers || {})[ctx.getters.storeName];\n\n if (worker) {\n worker.postMessage({ removeSchema: data.id });\n }\n }\n\n queueChange(ctx, msg, false, 'Remove');\n\n const typeOption = ctx.rootGetters['type-map/optionsFor'](type);\n\n if (typeOption?.alias?.length > 0) {\n const alias = typeOption?.alias || [];\n\n alias.map((type) => {\n const obj = ctx.getters.byId(type, data.id);\n\n ctx.state.queue.push({\n action: 'commit',\n event: 'remove',\n body: obj,\n });\n });\n }\n },\n};\n\n/**\n * Mutations that cover cases 1 & 2 (see file description)\n */\nconst defaultMutations = {\n setSocket(state, socket) {\n state.socket = socket;\n },\n\n setWantSocket(state, want) {\n state.wantSocket = want;\n },\n\n enqueuePendingFrame(state, obj) {\n state.pendingFrames.push(obj);\n },\n\n dequeuePendingFrame(state, obj) {\n removeObject(state.pendingFrames, obj);\n },\n\n setWatchStarted(state, obj) {\n const existing = state.started.find((entry) => equivalentWatch(obj, entry));\n\n if ( !existing ) {\n addObject(state.started, obj);\n }\n\n delete state.inError[keyForSubscribe(obj)];\n },\n\n setWatchStopped(state, obj) {\n const existing = state.started.find((entry) => equivalentWatch(obj, entry));\n\n if ( existing ) {\n removeObject(state.started, existing);\n } else {\n console.warn(\"Tried to remove a watch that doesn't exist\", obj); // eslint-disable-line no-console\n }\n },\n\n setInError(state, { msg, reason }) {\n const key = keyForSubscribe(msg);\n\n state.inError[key] = reason;\n },\n\n clearInError(state, msg) {\n const key = keyForSubscribe(msg);\n\n delete state.inError[key];\n },\n\n resetSubscriptions(state) {\n // Clear out socket state. This is only ever called from reset... which is always called after we `disconnect` above.\n // This could probably be folded in to there\n clear(state.started);\n clear(state.pendingFrames);\n clear(state.queue);\n clearTimeout(state.queueTimer);\n state.deferredRequests = {};\n state.queueTimer = null;\n },\n\n clearFromQueue(state, type) {\n // Remove anything in the queue that is a resource update for the given type\n state.queue = state.queue.filter((item) => {\n return item.body?.type !== type;\n });\n },\n};\n\n/**\n * Getters that cover cases 1 & 2 (see file description)\n */\nconst defaultGetters = {\n inError: (state) => (obj) => {\n return state.inError[keyForSubscribe(obj)];\n },\n\n watchesOfType: (state) => (type) => {\n return state.started.filter((entry) => type === (entry.resourceType || entry.type));\n },\n\n watchStarted: (state) => (obj) => {\n return !!state.started.find((entry) => equivalentWatch(obj, entry));\n },\n\n nextResourceVersion: (state, getters) => (type, id) => {\n type = normalizeType(type);\n let revision = 0;\n\n if ( id ) {\n const existing = getters['byId'](type, id);\n\n revision = parseInt(existing?.metadata?.resourceVersion, 10);\n }\n\n if ( !revision ) {\n const cache = state.types[type];\n\n if ( !cache ) {\n return null;\n }\n\n revision = cache.revision; // This is always zero.....\n\n for ( const obj of cache.list ) {\n if ( obj && obj.metadata ) {\n const neu = parseInt(obj.metadata.resourceVersion, 10);\n\n revision = Math.max(revision, neu);\n }\n }\n }\n\n if ( revision ) {\n return revision;\n }\n\n return null;\n },\n};\n\nexport const actions = {\n ...sharedActions,\n ...defaultActions,\n};\n\nexport const mutations = {\n ...sharedMutations,\n ...defaultMutations,\n};\n\nexport const getters = { ...defaultGetters };\n","import { isArray } from '@shell/utils/array';\nimport { BY_TYPE } from '@shell/plugins/dashboard-store/classify';\nimport { lookup } from '@shell/plugins/dashboard-store/model-loader';\nimport { NAMESPACE, SCHEMA, COUNT, UI } from '@shell/config/types';\n\nimport SteveModel from './steve-class';\nimport HybridModel, { cleanHybridResources } from './hybrid-class';\nimport NormanModel from './norman-class';\nimport { urlFor } from '@shell/plugins/dashboard-store/getters';\nimport { normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport pAndNFiltering from '@shell/plugins/steve/projectAndNamespaceFiltering.utils';\nimport stevePaginationUtils from '@shell/plugins/steve/steve-pagination-utils';\nimport { parse } from '@shell/utils/url';\nimport { splitObjectPath } from '@shell/utils/string';\nimport { parseType } from '@shell/models/schema';\nimport {\n STEVE_AGE_COL,\n STEVE_ID_COL, STEVE_LIST_GROUPS, STEVE_NAMESPACE_COL, STEVE_STATE_COL\n} from '@shell/config/pagination-table-headers';\nimport { createHeaders } from '@shell/store/type-map.utils';\n\nexport const STEVE_MODEL_TYPES = {\n NORMAN: 'norman',\n STEVE: 'steve',\n BY_TYPE: 'byType'\n};\n\nconst GC_IGNORE_TYPES = {\n [COUNT]: true,\n [NAMESPACE]: true,\n [SCHEMA]: true,\n [UI.NAV_LINK]: true,\n};\n\n// Include calls to /v1 AND /k8s/clusters/<cluster id>/v1\nconst steveRegEx = new RegExp('(/v1)|(\\/k8s\\/clusters\\/[a-z0-9-]+\\/v1)');\n\nexport default {\n urlOptions: () => (url, opt, schema) => {\n opt = opt || {};\n const parsedUrl = parse(url);\n const isSteve = steveRegEx.test(parsedUrl.path);\n\n const stevePagination = stevePaginationUtils.createParamsForPagination(schema, opt);\n\n if (stevePagination) {\n url += `${ (url.includes('?') ? '&' : '?') + stevePagination }`;\n } else {\n // labelSelector\n if ( opt.labelSelector ) {\n url += `${ url.includes('?') ? '&' : '?' }labelSelector=${ opt.labelSelector }`;\n }\n // End: labelSelector\n\n // Filter\n if ( opt.filter ) {\n url += `${ (url.includes('?') ? '&' : '?') }`;\n const keys = Object.keys(opt.filter);\n\n keys.forEach((key) => {\n let vals = opt.filter[key];\n\n if ( !isArray(vals) ) {\n vals = [vals];\n }\n\n // Steve's filter options now support more complex filtering not yet implemented here #9341\n if (isSteve) {\n url += `${ (url.includes('filter=') ? '&' : 'filter=') }`;\n }\n\n const filterStrings = vals.map((val) => {\n return `${ encodeURI(key) }=${ encodeURI(val) }`;\n });\n const urlEnding = url.charAt(url.length - 1);\n const nextStringConnector = ['&', '?', '='].includes(urlEnding) ? '' : '&';\n\n url += `${ nextStringConnector }${ filterStrings.join('&') }`;\n });\n }\n\n // `opt.namespaced` is either\n // - a string representing a single namespace - add restriction to the url\n // - an array of namespaces or projects - add restriction as a param\n const namespaceProjectFilter = pAndNFiltering.checkAndCreateParam(opt);\n\n if (namespaceProjectFilter) {\n url += `${ (url.includes('?') ? '&' : '?') + namespaceProjectFilter }`;\n }\n // End: Filter\n\n // Limit\n const limit = opt.limit;\n\n if ( limit ) {\n url += `${ url.includes('?') ? '&' : '?' }limit=${ limit }`;\n }\n // End: Limit\n\n // Sort\n // Steve's sort options supports multi-column sorting and column specific sort orders, not implemented yet #9341\n const sortBy = opt.sortBy;\n const orderBy = opt.sortOrder;\n\n if ( sortBy ) {\n if (isSteve) {\n url += `${ url.includes('?') ? '&' : '?' }sort=${ (orderBy === 'desc' ? '-' : '') + encodeURI(sortBy) }`;\n } else {\n url += `${ url.includes('?') ? '&' : '?' }sort=${ encodeURI(sortBy) }`;\n if ( orderBy ) {\n url += `${ url.includes('?') ? '&' : '?' }order=${ encodeURI(orderBy) }`;\n }\n }\n }\n // End: Sort\n }\n\n // Exclude\n // excludeFields should be an array of strings representing the paths of the fields to exclude\n // only works on Steve but is ignored without error by Norman\n if (isSteve) {\n if (!Array.isArray(opt?.excludeFields)) {\n const excludeFields = ['metadata.managedFields'];\n\n // for some resources, we might want to include fields, excluded by default.\n opt.excludeFields = Array.isArray(opt?.omitExcludeFields) ? excludeFields.filter((f) => !f.includes(opt.omitExcludeFields)) : excludeFields;\n }\n\n const excludeParamsString = opt.excludeFields.map((field) => `exclude=${ field }`).join('&');\n\n url += `${ url.includes('?') ? '&' : '?' }${ excludeParamsString }`;\n }\n // End: Exclude\n\n return url;\n },\n\n urlFor: (state, getters) => (type, id, opt) => {\n let url = urlFor(state, getters)(type, id, opt);\n\n // `namespaced` is either\n // - a string representing a single namespace - add restriction to the url\n // - an array of namespaces or projects - add restriction as a param\n if (!opt?.url && opt?.namespaced && !pAndNFiltering.isApplicable(opt)) {\n // Update path to include `namespace`, but take into account\n // - if there is an id\n // - if there are query params\n\n // Construct a url so query params / fragments are avoided\n const urlObj = new URL(url);\n const path = urlObj.pathname;\n\n if (!!path?.length && path[path.length - 1] === '/') {\n urlObj.pathname = path.substring(0, path.length - 1);\n }\n const parts = urlObj.pathname.split('/');\n\n if (id) {\n // namespace should go before the id in the path\n parts.splice(parts.length - 1, 0, opt.namespaced);\n urlObj.pathname = parts.join('/');\n } else {\n // namespace should go at the end of the path\n urlObj.pathname = `${ urlObj.pathname.split('/').join('/') }/${ opt.namespaced }`;\n }\n\n url = urlObj.toString();\n }\n\n return url;\n },\n\n defaultModel: (state) => (obj) => {\n const which = state.config.modelBaseClass || STEVE_MODEL_TYPES.BY_TYPE.STEVE;\n\n if ( which === STEVE_MODEL_TYPES.BY_TYPE ) {\n if ( obj?.type?.startsWith('management.cattle.io.') || obj?.type?.startsWith('project.cattle.io.')) {\n return HybridModel;\n } else {\n return SteveModel;\n }\n } else if ( which === STEVE_MODEL_TYPES.NORMAN ) {\n return NormanModel;\n } else {\n return SteveModel;\n }\n },\n\n classify: (state, getters, rootState) => (obj) => {\n const customModel = lookup(state.config.namespace, obj?.type, obj?.metadata?.name, rootState);\n\n if (customModel) {\n return customModel;\n }\n\n const which = state.config.modelBaseClass || BY_TYPE;\n\n if ( which === BY_TYPE ) {\n if ( obj?.type?.startsWith('management.cattle.io.') || obj?.type?.startsWith('project.cattle.io.')) {\n return HybridModel;\n } else {\n return SteveModel;\n }\n } else if ( which === STEVE_MODEL_TYPES.NORMAN ) {\n return NormanModel;\n } else {\n return SteveModel;\n }\n },\n\n cleanResource: () => (existing, data) => {\n /**\n * Resource counts are contained within a single 'count' resource with a 'counts' field that is a map of resource types\n * When counts are updated through the websocket, only the resources that changed are sent so we can't load the new 'count' resource into the store as we would another resource\n */\n if (data?.type === COUNT && existing) {\n data.counts = { ...existing.counts, ...data.counts };\n\n return data;\n }\n\n // If the existing model has a cleanResource method, use it\n if (existing?.cleanResource && typeof existing.cleanResource === 'function') {\n return existing.cleanResource(data);\n }\n\n const typeSuperClass = Object.getPrototypeOf(Object.getPrototypeOf(existing))?.constructor;\n\n return typeSuperClass === HybridModel ? cleanHybridResources(data) : data;\n },\n\n // Return all the pods for a given namespace\n podsByNamespace: (state) => (namespace) => {\n const map = state.podsByNamespace[namespace];\n\n return map?.list || [];\n },\n\n gcIgnoreTypes: () => {\n return GC_IGNORE_TYPES;\n },\n\n currentGeneration: (state) => (type) => {\n type = normalizeType(type);\n\n const cache = state.types[type];\n\n if ( !cache ) {\n return null;\n }\n\n return cache.generation;\n },\n\n /**\n * Checks the norman or steve schema resourceFields for the given path\n */\n pathExistsInSchema: (state, getters) => (type, path) => {\n const schema = getters.schemaFor(type);\n\n if (schema.requiresResourceFields && !schema.hasResourceFields) {\n console.warn(`pathExistsInSchema requires schema ${ schema.id } to have resources fields via schema definition but none were found. has the schema 'fetchResourceFields' been called?`); // eslint-disable-line no-console\n\n return false;\n }\n\n const schemaDefinitions = schema.requiresResourceFields ? schema.schemaDefinitions : null;\n const parts = splitObjectPath(path);\n let schemaOrSchemaDefinition = schema;\n\n // Iterate down the parts (properties) until there are no parts left (success) or the path cannot be found (failure)\n while ( parts.length ) {\n const key = parts.shift();\n\n const field = schemaOrSchemaDefinition.resourceFields?.[key];\n\n type = field?.type;\n\n if ( !type ) {\n return false;\n }\n\n if ( parts.length ) {\n type = parseType(type, field).pop(); // Get the main part of array[map[something]] => something\n\n schemaOrSchemaDefinition = schemaDefinitions ? schemaDefinitions?.[type] : getters.schemaFor(type);\n\n if ( !schema ) {\n return false;\n }\n }\n }\n\n return true;\n },\n\n /*\n * Override the vanilla type-map headersFor. This allows custom columns\n */\n headersFor: (state, getters, rootState, rootGetters) => ({\n getters: typeMapGetters,\n state: typeMapState,\n }, { schema, pagination }) => {\n if (!pagination ) {\n return;\n }\n\n return createHeaders({\n state: typeMapState, getters: typeMapGetters, rootGetters\n }, {\n headers: typeMapState.paginationHeaders,\n typeOptions: typeMapGetters['optionsFor'](schema, true),\n schema,\n columns: {\n state: STEVE_STATE_COL,\n namespace: STEVE_NAMESPACE_COL,\n age: STEVE_AGE_COL,\n id: STEVE_ID_COL\n }\n });\n },\n\n /**\n * Override the vanilla type-map optionsFor. This allows custom list values\n */\n optionsFor: () => (ctx, { schema, pagination, opts }) => {\n if (pagination) {\n // As headers are hardcoded each list should have specific default sort option\n // This avoids the sortable table adding both name and id (which when combined with group would result in 3 sort args, which isn't supported)\n const steveOpts = { listMandatorySort: [] };\n\n if (!opts.listGroupsWillOverride && schema.attributes.namespaced) {\n // There's no pre-configured settings... and we're paginating... so use pagination specific groups\n steveOpts.listGroups = STEVE_LIST_GROUPS;\n steveOpts.listGroupsWillOverride = true;\n }\n\n return steveOpts;\n }\n },\n\n};\n","import day from 'dayjs';\n\n// This code should not be included in a production build\n// This allows you to simulate large numbers of resources\n\n// Fake extra resources to simulate scale\nconst PERF_DATA = {\n node: {\n count: 800,\n statusRow: 2,\n },\n 'apps.deployment': {\n count: 4000,\n statusRow: 5\n },\n pod: {\n count: 4000,\n statusRow: 10\n },\n};\n\n// Log a warning when performance data simulation is enabled\nif (!!process.env.perfTest && process.env.dev ) {\n console.warn('Performance Testing data enabled', PERF_DATA); // eslint-disable-line no-console\n}\n\nconst DEFAULTS = {\n count: 1, // One copy of each resource\n statusRow: 0, // Don't add any status rows (0 = None, 1 = All, N = 1 out of N)\n custom: null // Custom function that can modify each row = takes node and index - e.g. (node, index) => { node.metadata.state.error = true; }\n};\n\nexport function perfLoadAll(type, data) {\n // console.log(`${ type }`);\n if (data.length === 0) {\n return data;\n }\n\n const n = data[0];\n\n if (!n.apiVersion) {\n return data;\n }\n\n let config = PERF_DATA[type];\n\n if (!config) {\n return data;\n }\n\n if (typeof config === 'number') {\n config = { count: config };\n }\n\n config = {\n ...DEFAULTS,\n ...config\n };\n\n return replicate(data, config);\n}\n\nfunction randNum(max) {\n return Math.floor(Math.random() * max);\n}\n\nfunction replicate(data, config) {\n if (data.length === 0) {\n return data;\n }\n\n // Pretend there are none of the resource type\n if (config.count === 0) {\n return [];\n }\n\n if (config.count <= data.length) {\n return data.slice(0, config.count);\n }\n\n const templates = [];\n let j = 0;\n\n data.forEach((d) => templates.push(JSON.stringify(d)));\n\n const newData = [...data];\n\n // We already have the elemnts in data... just need to pad out\n const remaining = config.count - data.length;\n\n for (let i = 0; i < remaining; i++) {\n const newNode = JSON.parse(templates[j]);\n\n newNode.id = `${ newNode.id }_${ i }`;\n newNode.metadata.uid = `uid_${ i }_${ Math.random() * 1000 }`;\n newNode.metadata.name = `${ newNode.metadata?.name }_${ i }`;\n newNode.metadata.creationTimestamp = day().format();\n newData.push(newNode);\n\n if (config.statusRow > 0) {\n // Fake a status row one in N times, where N is the statusRow setting\n const addStatusRow = config.statusRow === 1 ? true : randNum(config.statusRow) === 0;\n\n if (addStatusRow) {\n newNode.metadata.state = newNode.metadata.state || {};\n const isError = randNum(2) === 0;\n\n if (isError) {\n newNode.metadata.state.error = true;\n } else {\n newNode.metadata.state.transitioning = true;\n }\n newNode.metadata.state.message = `Test state description for ${ newNode.metadata.name }`;\n }\n }\n\n if (config.custom) {\n config.custom(newNode, i);\n }\n\n j++;\n if (j === templates.length) {\n j = 0;\n }\n }\n\n return newData;\n}\n","import { addObject } from '@shell/utils/array';\nimport { NAMESPACE, POD, SCHEMA } from '@shell/config/types';\nimport {\n forgetType,\n resetStore,\n loadAll,\n load,\n remove,\n batchChanges,\n replace,\n loadAdd\n} from '@shell/plugins/dashboard-store/mutations';\nimport { perfLoadAll } from '@shell/plugins/steve/performanceTesting';\nimport { classify } from '@shell/plugins/dashboard-store/classify';\nimport SteveSchema from '@shell/models/steve-schema';\nimport { deepToRaw } from '@shell/utils/object';\n\nfunction registerNamespace(state, namespace) {\n let cache = state.podsByNamespace[namespace];\n\n if (!cache) {\n cache = {\n list: [],\n map: new Map()\n };\n\n state.podsByNamespace[namespace] = cache;\n }\n\n return cache;\n}\n\n/**\n * update the podsByNamespace cache with new or changed pods.\n */\nfunction updatePodsByNamespaceCache(state, ctx, pods, loadAll) {\n if (loadAll) {\n // Clear the entire cache - this is a fresh load\n Object.keys(state.podsByNamespace).forEach((ns) => {\n delete state.podsByNamespace[ns];\n });\n }\n\n // Go through all of the pods and populate cache by namespace\n pods.forEach((entry) => {\n const classyResource = state.types[POD].map.get(entry.id) || classify(ctx, entry);\n\n const cache = registerNamespace(state, classyResource.namespace); // Raw entry.namespace doesn't exist, so use classy\n const existing = cache.map.get(entry.id);\n\n if (existing) {\n // CANNOT BE THE SAME REFERENCE\n replace(existing, entry);\n } else {\n addObject(cache.list, classyResource);\n cache.map.set(entry.id, classyResource);\n }\n });\n}\n\n/**\n * clean the podsByNamespace cache of removed pods\n */\nfunction cleanPodsByNamespaceCache(state, resource) {\n if (resource && resource.type === POD) {\n const cache = state.podsByNamespace[resource.namespace];\n\n // Extra defensive check that the cache exists for the namespace being removed\n if (cache) {\n const inList = cache.list.findIndex((p) => p.id === resource.id);\n\n if ( inList >= 0 ) {\n cache.list.splice(inList, 1);\n }\n cache.map.delete(resource.id);\n }\n } else if (resource && resource.type === NAMESPACE) {\n // Namespace deleted\n delete state.podsByNamespace[resource.id];\n }\n}\n\nexport default {\n batchChanges(state, { ctx, batch }) {\n batchChanges(state, { ctx, batch });\n\n if (batch[POD]) {\n const newAndChangedPods = Object.entries(batch[POD]).reduce((pods, [id, pod]) => {\n if (pod.id) {\n // resource.create and resource.change\n pods.push(pod);// must NOT be same reference from store\n } else {\n // resource.remove (note - we've already lost the resource in the store, so pass through mocked one)\n cleanPodsByNamespaceCache(state, {\n id,\n type: POD,\n namespace: id.substring(0, id.indexOf('/'))\n });\n }\n\n return pods;\n }, []);\n\n updatePodsByNamespaceCache(state, ctx, newAndChangedPods, false);\n }\n\n if (batch[NAMESPACE]) {\n Object.entries(batch[NAMESPACE]).forEach(([id, namespace]) => {\n if (!namespace.id) {\n // resource.remove (note - we've already lost the resource in the store, so pass through mocked one)\n cleanPodsByNamespaceCache(state, {\n id,\n type: NAMESPACE,\n });\n }\n });\n }\n },\n\n loadAll(state, {\n type,\n data,\n ctx,\n skipHaveAll,\n namespace,\n revision,\n pagination\n }) {\n // Performance testing in dev and when env var is set\n if (process.env.dev && !!process.env.perfTest) {\n data = perfLoadAll(type, data);\n }\n\n const proxies = loadAll(state, {\n type, data, ctx, skipHaveAll, namespace, revision, pagination\n });\n\n // If we loaded a set of pods, then update the podsByNamespace cache\n if (type === POD) {\n updatePodsByNamespaceCache(state, ctx, proxies, true);\n }\n\n // Notify the web worker of the initial load of schemas\n if (type === SCHEMA) {\n const worker = (this.$workers || {})[ctx.getters.storeName];\n\n if (worker) {\n // Store raw json objects, not the proxies\n const rawData = deepToRaw(data);\n\n worker.postMessage({ loadSchemas: rawData });\n }\n }\n },\n\n forgetType(state, type) {\n if ( forgetType(state, type) ) {\n Object.keys(state.inError).forEach((key) => {\n if (key.startsWith(type)) {\n delete state.inError[key];\n }\n });\n }\n },\n\n reset(state) {\n // Reset generic store things.... then steve specific things\n\n resetStore(state, this.commit);\n\n this.commit(`${ state.config.namespace }/resetSubscriptions`);\n\n // Clear the podsByNamespace cache\n state.podsByNamespace = {};\n\n SteveSchema.reset(state.config.namespace);\n },\n\n /**\n * Load multiple different types of resources\n */\n loadMulti(state, { data, ctx }) {\n for (const entry of data) {\n const resource = load(state, { data: entry, ctx });\n\n if (resource.type === POD && resource.metadata) {\n const cache = registerNamespace(state, resource.namespace);\n\n addObject(cache.list, resource);\n cache.map.set(resource.id, resource);\n }\n }\n },\n\n loadAdd(state, { type, data: allLatest, ctx }) {\n loadAdd(state, {\n type, data: allLatest, ctx\n });\n\n if (allLatest.length && allLatest[0].type === POD) {\n updatePodsByNamespaceCache(state, ctx, allLatest, false);\n }\n },\n\n remove(state, obj) {\n remove(state, obj, this.getters);\n\n cleanPodsByNamespaceCache(state, obj);\n }\n};\n","export function streamJson(url, opt, onData) {\n opt = opt || {};\n opt.method = opt.method || 'get';\n opt.headers = opt.headers || {};\n opt.headers.accept = 'application/jsonl';\n\n const decoder = new TextDecoder();\n let buf = '';\n\n return fetch(url, opt)\n .then((res) => {\n if ( res.status >= 400 ) {\n // eslint-disable-next-line no-console\n console.error('Error Streaming', res);\n\n const out = { message: 'Error Streaming' };\n\n out.response = res;\n\n return Promise.reject(out);\n } else {\n return res.body.getReader();\n }\n }).then((reader) => {\n return reader.read().then(function process({ value, done }) {\n if (done) {\n onData(JSON.parse(buf));\n\n return;\n }\n\n buf += decoder.decode(value, { stream: true });\n const lines = buf.split(/[\\r\\n](?=.)/);\n\n buf = lines.pop();\n lines.map(JSON.parse).forEach(onData);\n\n return reader.read().then(process);\n });\n });\n}\n\nexport function streamingSupported() {\n const supported = typeof TextDecoder !== 'undefined';\n\n // console.log('Streaming Supported: ', supported);\n\n return supported;\n}\n","import { PerfSettingsWarningHeaders } from '@shell/config/settings';\nimport { getPerformanceSetting } from '@shell/utils/settings';\n\ninterface HttpResponse {\n headers?: { [key: string]: string},\n data?: any,\n config: {\n url: string,\n }\n}\n\n/**\n * Cache the kube api warning header settings that will determine if they are growled or not\n */\nlet warningHeaderSettings: PerfSettingsWarningHeaders;\n\n/**\n * Extract sanitised warnings from the warnings header string\n */\nfunction kubeApiHeaderWarnings(allWarnings: string): string[] {\n // Find each warning.\n // Each warning is separated by `,`... however... this can appear within the warning itself so can't `split` on it\n // Instead provide a configurable way to split (default 299 - )\n const warnings = allWarnings.split(warningHeaderSettings.separator) || [];\n\n // Trim and remove effects of split\n return warnings.reduce((res, warning) => {\n const trimmedWarning = warning.trim();\n\n if (!trimmedWarning) {\n return res;\n }\n\n const fixedWarning = trimmedWarning.endsWith(',') ? trimmedWarning.slice(0, -1) : trimmedWarning;\n\n // Why add the separator again? It's almost certainly `299 - ` which is important info to include\n res.push(warningHeaderSettings.separator + fixedWarning);\n\n return res;\n }, [] as string[]);\n}\n\n/**\n * Take action given the `warnings` in the response header of a kube api request\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function handleKubeApiHeaderWarnings(res: HttpResponse, dispatch: any, rootGetters: any, method: string, refreshCache = false): void {\n const safeMethod = method?.toLowerCase(); // Some requests have this as uppercase\n\n // Exit early if there's no warnings\n if ((safeMethod !== 'post' && safeMethod !== 'put') || !res.headers?.warning) {\n return;\n }\n\n // Grab the required settings\n if (!warningHeaderSettings || refreshCache) {\n const settings = getPerformanceSetting(rootGetters);\n\n // Cache this, we don't need to react to changes within the same session\n warningHeaderSettings = settings?.kubeAPI.warningHeader;\n }\n\n // Determine each warning\n const sanitisedWarnings = kubeApiHeaderWarnings(res.headers?.warning);\n\n if (!sanitisedWarnings.length) {\n return;\n }\n\n // Shows warnings as growls\n const growlWarnings = sanitisedWarnings.filter((w) => !warningHeaderSettings.notificationBlockList.find((blocked) => w.startsWith(blocked)));\n\n if (growlWarnings.length) {\n const resourceType = res.data?.type || res.data?.kind || rootGetters['i18n/t']('generic.resource', { count: 1 });\n\n dispatch('growl/warning', {\n title: method === 'put' ? rootGetters['i18n/t']('growl.kubeApiHeaderWarning.titleUpdate', { resourceType }) : rootGetters['i18n/t']('growl.kubeApiHeaderWarning.titleCreate', { resourceType }),\n message: growlWarnings.join(', '),\n timeout: 0,\n }, { root: true });\n }\n\n // Print warnings to console\n const message = `Validation Warnings for ${ res.config.url }\\n\\n${ sanitisedWarnings.join('\\n') }`;\n\n if (process.env.dev) {\n console.warn(`${ message }\\n\\n`, res.data); // eslint-disable-line no-console\n } else {\n console.debug(message); // eslint-disable-line no-console\n }\n}\n","import https from 'https';\nimport { addParam, parse as parseUrl, stringify as unParseUrl } from '@shell/utils/url';\nimport { handleSpoofedRequest, loadSchemas } from '@shell/plugins/dashboard-store/actions';\nimport { dropKeys, set } from '@shell/utils/object';\nimport { deferred } from '@shell/utils/promise';\nimport { streamJson, streamingSupported } from '@shell/utils/stream';\nimport isObject from 'lodash/isObject';\nimport { classify } from '@shell/plugins/dashboard-store/classify';\nimport { NAMESPACE } from '@shell/config/types';\nimport { handleKubeApiHeaderWarnings } from '@shell/plugins/steve/header-warnings';\nimport { steveCleanForDownload } from '@shell/plugins/steve/resource-utils';\n\nexport default {\n\n // Need to override this, so that the 'this' context is correct (this class not the base class)\n async loadSchemas(ctx, watch = true) {\n return await loadSchemas(ctx, watch);\n },\n\n async request({ state, dispatch, rootGetters }, pOpt ) {\n const opt = pOpt.opt || pOpt;\n const spoofedRes = await handleSpoofedRequest(rootGetters, 'cluster', opt);\n\n if (spoofedRes) {\n return spoofedRes;\n }\n\n opt.url = opt.url.replace(/\\/*$/g, '');\n\n // FIXME: RC Standalone - Tech Debt move this to steve store get/set prependPath\n // Cover cases where the steve store isn't actually going out to steve (epinio standalone)\n const prependPath = this.$config.rancherEnv === 'epinio' ? `/pp/v1/epinio/rancher` : '';\n\n if (prependPath) {\n if (opt.url.startsWith('/')) {\n opt.url = prependPath + opt.url;\n } else {\n const url = parseUrl(opt.url);\n\n if (!url.path.startsWith(prependPath)) {\n url.path = prependPath + url.path;\n opt.url = unParseUrl(url);\n }\n }\n }\n\n opt.httpsAgent = new https.Agent({ rejectUnauthorized: false });\n\n const method = (opt.method || 'get').toLowerCase();\n const headers = (opt.headers || {});\n const key = JSON.stringify(headers) + method + opt.url;\n let waiting;\n\n if ( (method === 'get') ) {\n waiting = state.deferredRequests[key];\n\n if ( waiting ) {\n const later = deferred();\n\n waiting.push(later);\n\n // console.log('Deferred request for', key, waiting.length);\n\n return later.promise;\n } else {\n // Set it to something so that future requests know to defer.\n waiting = [];\n state.deferredRequests[key] = waiting;\n }\n }\n\n if ( opt.stream && state.allowStreaming && state.config.supportsStream && streamingSupported() ) {\n // console.log('Using Streaming for', opt.url);\n\n return streamJson(opt.url, opt, opt.onData).then(() => {\n return { finishDeferred: finishDeferred.bind(null, key, 'resolve') };\n }).catch((err) => {\n return onError(err);\n });\n } else {\n // console.log('NOT Using Streaming for', opt.url);\n }\n\n let paginatedResult;\n\n while (true) {\n try {\n const out = await makeRequest(this, opt, rootGetters);\n\n if (!opt.depaginate) {\n return out;\n }\n\n if (!paginatedResult) {\n // First result, so store it\n paginatedResult = out;\n } else {\n // Subsequent request, so add to it\n paginatedResult.data = paginatedResult.data.concat(out.data);\n }\n\n if (out?.pagination?.next) {\n // More results to come, update options\n opt.url = out.pagination.next;\n } else {\n // No more results, so clear out the pagination section (which will be stale from the first request)\n delete paginatedResult.pagination?.first;\n delete paginatedResult.pagination?.last;\n delete paginatedResult.pagination?.next;\n delete paginatedResult.pagination?.partial;\n\n return paginatedResult;\n }\n } catch (err) {\n return onError(err);\n }\n }\n\n function makeRequest(that, opt, rootGetters) {\n return that.$axios(opt).then((res) => {\n let out;\n\n if ( opt.responseType ) {\n out = res;\n } else {\n out = responseObject(res);\n }\n\n finishDeferred(key, 'resolve', out);\n\n handleKubeApiHeaderWarnings(res, dispatch, rootGetters, opt.method);\n\n return out;\n });\n }\n\n function finishDeferred(key, action = 'resolve', res) {\n const waiting = state.deferredRequests[key] || [];\n\n // console.log('Resolving deferred for', key, waiting.length);\n\n while ( waiting.length ) {\n waiting.pop()[action](res);\n }\n\n delete state.deferredRequests[key];\n }\n\n function responseObject(res) {\n let out = res.data;\n\n const fromHeader = res.headers['x-api-cattle-auth'];\n\n if ( fromHeader && fromHeader !== rootGetters['auth/fromHeader'] ) {\n dispatch('auth/gotHeader', fromHeader, { root: true });\n }\n\n if ( res.status === 204 || out === null ) {\n out = {};\n }\n\n if ( typeof out !== 'object' ) {\n out = { data: out };\n }\n\n Object.defineProperties(out, {\n _status: { value: res.status },\n _statusText: { value: res.statusText },\n _headers: { value: res.headers },\n _req: { value: res.request },\n _url: { value: opt.url },\n });\n\n return out;\n }\n\n function onError(err) {\n let out = err;\n\n if ( err?.response ) {\n const res = err.response;\n\n // Go to the logout page for 401s, unless redirectUnauthorized specifically disables (for the login page)\n if ( opt.redirectUnauthorized !== false && res.status === 401 ) {\n dispatch('auth/logout', opt.logoutOnError, { root: true });\n }\n\n if ( typeof res.data !== 'undefined' ) {\n out = responseObject(res);\n }\n }\n\n finishDeferred(key, 'reject', out);\n\n return Promise.reject(out);\n }\n },\n\n promptMove({ commit, state }, resources) {\n commit('action-menu/togglePromptMove', resources, { root: true });\n },\n\n promptRestore({ commit, state }, resources ) {\n commit('action-menu/togglePromptRestore', resources, { root: true });\n },\n\n assignTo({ commit, state }, resources = []) {\n commit('action-menu/toggleAssignTo', resources, { root: true });\n },\n\n async resourceAction({ getters, dispatch }, {\n resource, actionName, body, opt,\n }) {\n opt = opt || {};\n\n if ( !opt.url ) {\n opt.url = resource.actionLinkFor(actionName);\n // opt.url = (resource.actions || resource.actionLinks)[actionName];\n }\n\n opt.method = 'post';\n opt.data = body;\n\n const res = await dispatch('request', { opt });\n\n if ( opt.load !== false && res.type === 'collection' ) {\n await dispatch('loadMulti', res.data);\n\n return res.data.map((x) => getters.byId(x.type, x.id) || x);\n } else if ( opt.load !== false && res.type && res.id ) {\n return dispatch('load', { data: res });\n } else {\n return res;\n }\n },\n\n promptUpdate({ commit, state }, resources = []) {\n commit('action-menu/togglePromptUpdate', resources, { root: true });\n },\n\n async collectionAction({ getters, dispatch }, {\n type, actionName, body, opt\n }) {\n opt = opt || {};\n\n if ( !opt.url ) {\n // Cheating, but cheaper than loading the whole collection...\n const schema = getters['schemaFor'](type);\n\n opt.url = addParam(schema.links.collection, 'action', actionName);\n }\n\n opt.method = 'post';\n opt.data = body;\n\n const res = await dispatch('request', { opt });\n\n if ( opt.load !== false && res.type === 'collection' ) {\n await dispatch('loadMulti', res.data);\n\n return res.data.map((x) => getters.byId(x.type, x.id) || x);\n } else if ( opt.load !== false && res.type && res.id ) {\n return dispatch('load', { data: res });\n } else {\n return res;\n }\n },\n\n createNamespace(ctx, obj) {\n return classify(ctx, {\n type: NAMESPACE,\n metadata: { name: obj.name }\n });\n },\n\n cleanForNew(ctx, obj) {\n const m = obj.metadata || {};\n\n dropKeys(obj, newRootKeys);\n dropKeys(m, newMetadataKeys);\n dropCattleKeys(m.annotations);\n dropCattleKeys(m.labels);\n\n m.name = '';\n\n if ( obj?.spec?.crd?.spec?.names?.kind ) {\n obj.spec.crd.spec.names.kind = '';\n }\n\n return obj;\n },\n\n cleanForDiff(ctx, obj) {\n const m = obj.metadata || {};\n\n if ( !m.labels ) {\n m.labels = {};\n }\n\n if ( !m.annotations ) {\n m.annotations = {};\n }\n\n dropUnderscores(obj);\n dropKeys(obj, diffRootKeys);\n dropKeys(m, diffMetadataKeys);\n dropCattleKeys(m.annotations);\n dropCattleKeys(m.labels);\n\n return obj;\n },\n\n cleanForDetail(ctx, resource) {\n // Ensure labels & annotations exists, since lots of things need them\n if ( !resource.metadata ) {\n set(resource, 'metadata', {});\n }\n\n if ( !resource.metadata.annotations ) {\n set(resource, 'metadata.annotations', {});\n }\n\n if ( !resource.metadata.labels ) {\n set(resource, 'metadata.labels', {});\n }\n\n return resource;\n },\n\n // remove fields added by steve before showing/downloading yamls\n cleanForDownload(ctx, yaml) {\n return steveCleanForDownload(yaml);\n }\n};\n\nconst diffRootKeys = [\n 'actions', 'links', 'status', '__rehydrate', '__clone'\n];\n\nconst diffMetadataKeys = [\n 'ownerReferences',\n 'selfLink',\n 'creationTimestamp',\n 'deletionTimestamp',\n 'state',\n 'fields',\n 'relationships',\n 'generation',\n 'managedFields',\n 'resourceVersion',\n];\n\nconst newRootKeys = [\n 'actions', 'links', 'status', 'id'\n];\n\nconst newMetadataKeys = [\n ...diffMetadataKeys,\n 'uid',\n];\n\nfunction dropUnderscores(obj) {\n for ( const k in obj ) {\n if ( k.startsWith('__') ) {\n delete obj[k];\n } else {\n const v = obj[k];\n\n if ( isObject(v) ) {\n dropUnderscores(v);\n }\n }\n }\n}\n\nfunction dropCattleKeys(obj) {\n if ( !obj ) {\n return;\n }\n\n Object.keys(obj).forEach((key) => {\n if ( !!key.match(/(^|field\\.)cattle\\.io(\\/.*|$)/) ) {\n delete obj[key];\n }\n });\n}\n","import coreStore, { coreStoreModule, coreStoreState } from '@shell/plugins/dashboard-store/index';\nimport {\n createWorker,\n mutations as subscribeMutations,\n actions as subscribeActions,\n getters as subscribeGetters\n} from './subscribe';\n\nimport getters, { STEVE_MODEL_TYPES } from './getters';\nimport mutations from './mutations';\nimport actions from './actions';\n\nexport function SteveFactory(namespace, baseUrl) {\n return {\n ...coreStoreModule,\n\n state() {\n return {\n ...coreStoreState(namespace, baseUrl),\n socket: null,\n queue: [], // For change event coalescing\n wantSocket: false,\n debugSocket: false,\n allowStreaming: true,\n pendingFrames: [],\n deferredRequests: {},\n started: [],\n inError: {},\n podsByNamespace: {}, // Cache of pods by namespace\n };\n },\n\n getters: {\n ...coreStoreModule.getters,\n ...getters,\n ...subscribeGetters\n },\n\n mutations: {\n ...coreStoreModule.mutations,\n ...mutations,\n ...subscribeMutations,\n },\n\n actions: {\n ...coreStoreModule.actions,\n ...actions,\n ...subscribeActions\n },\n };\n}\n\nexport const steveStoreInit = (store, ctx) => {\n createWorker(store, ctx);\n};\n\nexport default (config) => {\n config.namespace = config.namespace || '';\n\n config.baseUrl = config.baseUrl || `/${ config.namespace }`;\n\n switch (config.namespace) {\n case 'management':\n config.modelBaseClass = STEVE_MODEL_TYPES.BY_TYPE;\n break;\n case 'rancher':\n config.modelBaseClass = STEVE_MODEL_TYPES.NORMAN;\n break;\n }\n\n return coreStore(\n SteveFactory(config.namespace, config.baseUrl),\n config,\n steveStoreInit\n );\n};\n","//@ts-nocheck\nimport {\n NAMESPACE_FILTER_KINDS,\n NAMESPACE_FILTER_ALL as ALL,\n NAMESPACE_FILTER_ALL_ORPHANS as ALL_ORPHANS,\n} from '@shell/utils/namespace-filter';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { sortBy } from '@shell/utils/sort';\nimport { filterBy } from '@shell/utils/array';\n\nexport default {\n namespaceFilterOptions: (state: any, getters: any, rootState: any, rootGetters: any) => ({\n addNamespace,\n divider,\n notFilterNamespaces\n }: any) => {\n const out = [{\n id: ALL,\n kind: NAMESPACE_FILTER_KINDS.SPECIAL,\n label: rootGetters['i18n/t']('nav.ns.all'),\n }];\n\n divider(out);\n\n const namespaces = getters.filterNamespace(notFilterNamespaces);\n\n if (!rootGetters['isStandaloneHarvester'] && rootGetters['currentCluster'] && rootGetters['currentCluster']?.id !== '_') {\n const cluster = rootGetters['currentCluster'];\n let projects = rootGetters['management/all'](\n MANAGEMENT.PROJECT\n );\n\n projects = sortBy(filterBy(projects, 'spec.clusterName', cluster.id), [\n 'nameDisplay',\n ]).filter((project: any) => project.nameDisplay !== 'System');\n\n const projectsById: any = {};\n const namespacesByProject: any = {};\n let firstProject = true;\n\n namespacesByProject['null'] = []; // For namespaces not in a project\n for (const project of projects) {\n projectsById[project.metadata.name] = project;\n }\n\n for (const namespace of namespaces) {\n let projectId = namespace.projectId;\n\n if (!projectId || !projectsById[projectId]) {\n // If there's a projectId but that project doesn't exist, treat it like no project\n projectId = 'null';\n }\n\n let entry = namespacesByProject[projectId];\n\n if (!entry) {\n entry = [];\n namespacesByProject[namespace.projectId] = entry;\n }\n entry.push(namespace);\n }\n\n for (const project of projects) {\n const id = project.metadata.name;\n\n if (firstProject) {\n firstProject = false;\n } else {\n divider(out);\n }\n\n out.push({\n id: `project://${ id }`,\n kind: 'project',\n label: project.nameDisplay,\n });\n\n const forThisProject = namespacesByProject[id] || [];\n\n addNamespace(out, forThisProject);\n }\n\n const orphans = namespacesByProject['null'];\n\n if (orphans.length) {\n if (!firstProject) {\n divider(out);\n }\n\n out.push({\n id: ALL_ORPHANS,\n kind: 'project',\n label: rootGetters['i18n/t']('nav.ns.orphan'),\n });\n\n addNamespace(out, orphans);\n }\n } else {\n addNamespace(out, namespaces);\n }\n\n return out;\n },\n\n /**\n * filter system/fleet/cattle namespace\n */\n filterNamespace(state: any, getters: any, rootState: any, rootGetters: any, action: any) {\n const allNamespaces = getters.all('namespace');\n\n return (notFilterNamespaces: any = []) => {\n return allNamespaces.filter((namespace: any) => {\n return !namespace.isSystem || notFilterNamespaces.includes(namespace.id);\n });\n };\n },\n\n filterProject(state: any, getters: any, rootState: any, rootGetters: any) {\n const projectsInAllClusters = rootGetters['management/all'](\n MANAGEMENT.PROJECT\n );\n const currentCluster = rootGetters['currentCluster'];\n const clusterId = currentCluster.id;\n\n return projectsInAllClusters.filter((project: any) => project.spec.clusterName === clusterId && project.nameDisplay !== 'System');\n }\n};\n","export default {};\n","//@ts-nocheck\nimport { ClusterNotFoundError } from '@shell/utils/error';\nimport { SETTING } from '@shell/config/settings';\nimport { COUNT, NAMESPACE, MANAGEMENT } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport { DEV } from '@shell/store/prefs';\nimport { HCI } from '../../types';\n\nexport default {\n async loadCluster({\n state, commit, dispatch, getters, rootGetters, rootState\n }: any, { id }: any) {\n // This is a workaround for a timing issue where the mgmt cluster schema may not be available\n // Try and wait until the schema exists before proceeding\n await dispatch('management/waitForSchema', { type: MANAGEMENT.CLUSTER }, { root: true });\n\n // See if it really exists\n const cluster = await dispatch('management/find', {\n type: MANAGEMENT.CLUSTER,\n id,\n opt: { url: `${ MANAGEMENT.CLUSTER }s/${ escape(id) }` }\n }, { root: true });\n\n let virtualBase = `/k8s/clusters/${ escape(id) }/v1/harvester`;\n\n if (id === 'local') {\n virtualBase = `/v1/harvester`;\n }\n\n if ( !cluster ) {\n commit('clusterId', null, { root: true });\n commit('applyConfig', { baseUrl: null });\n throw new ClusterNotFoundError(id);\n }\n\n // Update the Steve client URLs\n commit('applyConfig', { baseUrl: virtualBase });\n\n await Promise.all([\n dispatch('loadSchemas', true),\n ]);\n\n dispatch('subscribe');\n\n const projectArgs = {\n type: MANAGEMENT.PROJECT,\n opt: {\n url: `${ MANAGEMENT.PROJECT }/${ escape(id) }`,\n watchNamespace: id\n }\n };\n\n const fetchProjects = async() => {\n let limit = 30000;\n const sleep = 100;\n\n while ( limit > 0 && !rootState.managementReady ) {\n await setTimeout(() => {}, sleep);\n limit -= sleep;\n }\n\n if ( rootGetters['management/schemaFor'](MANAGEMENT.PROJECT) ) {\n return dispatch('management/findAll', projectArgs, { root: true });\n }\n };\n\n if (id !== 'local' && getters['schemaFor'](MANAGEMENT.SETTING)) { // multi-cluster\n const settings = await dispatch('findAll', {\n type: MANAGEMENT.SETTING,\n id: SETTING.SYSTEM_NAMESPACES,\n opt: { url: `${ virtualBase }/${ MANAGEMENT.SETTING }s/`, force: true }\n });\n\n const systemNamespaces = settings?.find((x: any) => x.id === SETTING.SYSTEM_NAMESPACES);\n\n if (systemNamespaces) {\n const namespace = (systemNamespaces.value || systemNamespaces.default)?.split(',');\n\n commit('setSystemNamespaces', namespace, { root: true });\n }\n }\n\n const hash: { [key: string]: Promise<any>} = {\n projects: fetchProjects(),\n virtualCount: dispatch('findAll', { type: COUNT }),\n virtualNamespaces: dispatch('findAll', { type: NAMESPACE }),\n settings: dispatch('findAll', { type: HCI.SETTING }),\n clusters: dispatch('management/findAll', {\n type: MANAGEMENT.CLUSTER,\n opt: { force: true }\n }, { root: true }),\n };\n\n if (getters['schemaFor'](HCI.RESOURCE_QUOTA)) {\n hash.resourceQuota = dispatch('findAll', { type: HCI.RESOURCE_QUOTA });\n }\n\n if (getters['schemaFor'](HCI.UPGRADE)) {\n hash.upgrades = dispatch('findAll', { type: HCI.UPGRADE });\n }\n\n const res: any = await allHash(hash);\n\n const isHarvesterVersionSupported = rootGetters['harvester-common/getFeatureEnabled']('supportHarvesterClusterVersion');\n\n if (!isHarvesterVersionSupported) {\n const product = rootGetters['productId'];\n\n this.$router?.push({\n name: `${ product }-c-cluster-unsupported${ id === 'local' ? '-standalone' : '' }`,\n params: { product }\n });\n\n return;\n }\n\n await dispatch('cleanNamespaces', null, { root: true });\n\n commit('updateNamespaces', {\n filters: [],\n all: getters.filterNamespace(),\n getters\n }, { root: true });\n\n // Solve compatibility with Rancher v2.6.x, fell remove these codes after not support v2.6.x\n const definition = {\n def: false,\n parseJSON: true,\n inheritFrom: DEV,\n asUserPreference: true,\n };\n\n commit('prefs/setDefinition', {\n name: 'view-in-api',\n definition,\n }, { root: true });\n commit('prefs/setDefinition', {\n name: 'all-namespaces',\n definition,\n }, { root: true });\n commit('prefs/setDefinition', {\n name: 'theme-shortcut',\n definition,\n }, { root: true });\n commit('prefs/setDefinition', {\n name: 'plugin-developer',\n definition,\n }, { root: true });\n\n const isMultiCluster = !(res.clusters.length === 1 && res.clusters[0].metadata?.name === 'local');\n\n if (isMultiCluster) {\n commit('managementChanged', {\n ready: true,\n isMultiCluster: true,\n isRancher: true,\n }, { root: true });\n }\n },\n};\n","//@ts-nocheck\nimport { CoreStoreSpecifics, CoreStoreConfig } from '@shell/core/types';\n\nimport { SteveFactory, steveStoreInit } from '@shell/plugins/steve/index';\nimport { PRODUCT_NAME } from '../../config/harvester';\nimport getters from './getters';\nimport mutations from './mutations';\nimport actions from './actions';\n\nconst harvesterFactory = (): CoreStoreSpecifics => {\n const steveFactory = SteveFactory(null, null);\n\n steveFactory.getters = {\n ...steveFactory.getters,\n ...getters,\n };\n\n steveFactory.mutations = {\n ...steveFactory.mutations,\n ...mutations,\n };\n\n steveFactory.actions = {\n ...steveFactory.actions,\n ...actions,\n };\n\n return steveFactory;\n};\nconst config: CoreStoreConfig = {\n namespace: PRODUCT_NAME,\n isClusterStore: true\n};\n\nexport default {\n specifics: harvesterFactory(),\n config,\n init: steveStoreInit\n};\n","\nexport function isValidMac(value) {\n return /^[A-Fa-f0-9]{2}(-[A-Fa-f0-9]{2}){5}$|^[A-Fa-f0-9]{2}(:[A-Fa-f0-9]{2}){5}$/.test(value);\n}\n\n/**\n * RFC 1123\n * https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names\n */\nexport function isValidDNSLabelName(str) {\n const reg = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;\n\n return reg.test(str);\n}\n","import { PVC } from '@shell/config/types';\nimport { isValidMac, isValidDNSLabelName } from '@pkg/utils/regular';\nimport { SOURCE_TYPE } from '@pkg/config/harvester-map';\nimport { parseVolumeClaimTemplates } from '@pkg/utils/vm';\n\nconst maxNameLength = 63;\n\nexport function vmNetworks(spec, getters, errors, validatorArgs) {\n const { domain: { devices: { interfaces } }, networks } = spec;\n\n const networkNames = [];\n\n interfaces.map( (I, index) => {\n const N = networks.find( (N) => I.name === N.name);\n const prefix = (I.name || N.name) || `Network ${ index + 1 }`;\n\n const type = getters['i18n/t']('harvester.fields.network');\n\n const lowerType = getters['i18n/t']('harvester.validation.vm.network.lowerType');\n const upperType = getters['i18n/t']('harvester.validation.vm.network.upperType');\n\n validName(getters, errors, I.name, networkNames, prefix, type, lowerType, upperType);\n\n if (N.multus) {\n if (!N.multus.networkName) {\n const key = getters['i18n/t']('harvester.fields.network');\n const message = getters['i18n/t']('validation.required', { key });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n }\n\n if (I.macAddress && !isValidMac(I.macAddress) && !N.pod) {\n const message = getters['i18n/t']('harvester.validation.vm.network.macFormat');\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n });\n\n return errors;\n}\n\nexport function vmDisks(spec, getters, errors, validatorArgs, displayKey, value) {\n const isVMTemplate = validatorArgs.includes('isVMTemplate');\n const data = isVMTemplate ? this.value.spec.vm : value;\n\n const _volumeClaimTemplates = parseVolumeClaimTemplates(data);\n\n const _volumes = spec.template.spec.volumes || [];\n const _disks = spec.template.spec.domain.devices.disks || [];\n\n const diskNames = [];\n\n _disks.forEach((D, idx) => {\n const prefix = D.name || _volumes[idx]?.name || `Volume ${ idx + 1 }`;\n\n if (!D.disk && !D.cdrom) {\n const key = getters['i18n/t']('harvester.fields.type');\n const message = getters['i18n/t']('validation.required', { key });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n\n const type = getters['i18n/t']('harvester.fields.volume');\n const lowerType = getters['i18n/t']('harvester.validation.vm.volume.lowerType');\n const upperType = getters['i18n/t']('harvester.validation.vm.volume.upperType');\n\n validName(getters, errors, D.name, diskNames, prefix, type, lowerType, upperType);\n });\n\n let requiredVolume = false;\n\n _volumes.forEach((V, idx) => {\n const { type, typeValue } = getVolumeType(getters, V, _volumeClaimTemplates, value);\n\n const prefix = V.name || idx + 1;\n\n if ([SOURCE_TYPE.IMAGE, SOURCE_TYPE.ATTACH_VOLUME, SOURCE_TYPE.CONTAINER].includes(type)) {\n requiredVolume = true;\n }\n\n if (type === SOURCE_TYPE.NEW || type === SOURCE_TYPE.IMAGE) {\n if (!/([1-9]|[1-9][0-9]+)[a-zA-Z]+/.test(typeValue?.spec?.resources?.requests?.storage)) {\n const key = getters['i18n/t']('harvester.fields.size');\n const message = getters['i18n/t']('validation.required', { key });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n\n if (typeValue?.spec?.resources?.requests?.storage && !/^([0-9][0-9]{0,8})[a-zA-Z]+$/.test(typeValue?.spec?.resources?.requests?.storage)) {\n const message = getters['i18n/t']('harvester.validation.generic.maximumSize', { max: '999999999 GiB' });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n\n if (type === SOURCE_TYPE.IMAGE && !typeValue?.spec?.storageClassName && !isVMTemplate) { // type === SOURCE_TYPE.IMAGE\n const key = getters['i18n/t']('harvester.fields.image');\n const message = getters['i18n/t']('validation.required', { key });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n\n if (!typeValue?.spec?.storageClassName && V?.persistentVolumeClaim?.claimName && type !== SOURCE_TYPE.IMAGE) {\n const key = getters['i18n/t']('harvester.fields.storageClass');\n const message = getters['i18n/t']('validation.required', { key });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n }\n\n if (type === SOURCE_TYPE.ATTACH_VOLUME) {\n const allPVCs = getters['harvester/all'](PVC);\n\n const selectedVolumeName = V?.persistentVolumeClaim?.claimName;\n const hasExistingVolume = allPVCs.find((P) => P.id === `${ value.metadata.namespace }/${ selectedVolumeName }`);\n\n if (!hasExistingVolume && selectedVolumeName) { // selected volume may have been deleted. e.g: use template\n const type = getters['i18n/t']('harvester.fields.volume');\n\n errors.push(getters['i18n/t']('harvester.validation.generic.hasDelete', { type, name: selectedVolumeName }));\n }\n\n if (!selectedVolumeName) { // volume is not selected.\n const key = getters['i18n/t']('harvester.virtualMachine.volume.volume');\n\n errors.push(getters['i18n/t']('validation.required', { key }));\n }\n }\n\n if (type === SOURCE_TYPE.CONTAINER && !V.containerDisk.image) {\n const key = getters['i18n/t']('harvester.fields.dockerImage');\n const message = getters['i18n/t']('validation.required', { key });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n });\n\n /**\n * At least one volume must be create. (Verify only when create.)\n */\n if ((!requiredVolume || _volumes.length === 0) && !value.links) {\n errors.push(getters['i18n/t']('harvester.validation.vm.volume.needImageOrExisting'));\n }\n\n return errors;\n}\n\nfunction getVolumeType(getters, V, DVTS, value) {\n let outValue = null;\n const allPVCs = getters['harvester/all'](PVC);\n\n if (V.persistentVolumeClaim) {\n const selectedVolumeName = V?.persistentVolumeClaim?.claimName;\n const hasExistingVolume = allPVCs.find((P) => P.id === `${ value.metadata.namespace }/${ selectedVolumeName }`);\n\n if (hasExistingVolume) {\n // In other cases, claimName will not be empty, so we can judge whether this is an exiting volume based on this attribute\n return {\n type: SOURCE_TYPE.ATTACH_VOLUME,\n typeValue: null\n };\n }\n\n outValue = DVTS.find((DVT) => {\n return V.persistentVolumeClaim.claimName === DVT.metadata.name && DVT.metadata?.annotations && Object.prototype.hasOwnProperty.call(DVT.metadata.annotations, 'harvesterhci.io/imageId');\n });\n\n if (outValue) {\n return {\n type: SOURCE_TYPE.IMAGE,\n typeValue: outValue\n };\n }\n\n // new type\n outValue = DVTS.find((DVT) => V.persistentVolumeClaim.claimName === DVT.metadata.name);\n\n if (outValue) {\n return {\n type: SOURCE_TYPE.NEW,\n typeValue: outValue\n };\n }\n }\n\n if (V.containerDisk) {\n return {\n type: SOURCE_TYPE.CONTAINER,\n typeValue: null\n };\n }\n\n return {};\n}\n\nfunction validName(getters, errors, name, names = [], prefix, type, lowerType, upperType) {\n // Verify that the name is duplicate\n if (names.findIndex( (N) => name === N) !== -1) {\n errors.push(getters['i18n/t']('harvester.validation.vm.duplicatedName', { type, name }));\n }\n\n names.push(name);\n\n // The maximum length of volume name is 63 characters.\n if (name && name?.length > maxNameLength) {\n const key = getters['i18n/t']('harvester.fields.name');\n const message = getters['i18n/t']('harvester.validation.generic.maxLength', { key, max: maxNameLength });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n\n // name required\n if (!name) {\n const key = getters['i18n/t']('harvester.fields.name');\n const message = getters['i18n/t']('validation.required', { key });\n\n errors.push(getters['i18n/t']('harvester.validation.generic.tabError', { prefix, message }));\n }\n\n // valid RFC 1123\n if (!isValidDNSLabelName(name)) {\n const regex = '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$';\n\n errors.push(getters['i18n/t']('harvester.validation.generic.regex', {\n lowerType, name, regex, upperType\n }));\n }\n}\n","import { formatSi, parseSi } from '@shell/utils/units';\n\nexport function dataVolumeSize(storage, getters, errors, validatorArgs) {\n const t = getters['i18n/t'];\n\n if (!storage || storage === '') {\n const key = t('harvester.volume.size');\n\n errors.push(t('validation.required', { key }));\n\n return errors;\n }\n\n const size = getSize(storage);\n const max = 999999;\n const integerRegex = /^[1-9]\\d*$/;\n\n if (!integerRegex.test(size) || size > max) {\n errors.push(t('harvester.validation.volume.sizeRange'));\n }\n\n return errors;\n}\n\nfunction getSize(storage) {\n if (!storage) {\n return null;\n }\n\n const kibUnitSize = parseSi(storage);\n\n return formatSi(kibUnitSize, {\n addSuffix: false,\n increment: 1024,\n minExponent: 3,\n maxExponent: 3\n });\n}\n","export function backupTarget(value, getters, errors, validatorArgs) {\n const t = getters['i18n/t'];\n\n if (!value) {\n return errors;\n }\n\n const parseValue = JSON.parse(value);\n const type = parseValue.type;\n\n if (!type) {\n return errors;\n }\n\n if (type === 's3') {\n if (!parseValue.accessKeyId) {\n errors.push(t('validation.required', { key: 'accessKeyId' }));\n }\n\n if (!parseValue.secretAccessKey) {\n errors.push(t('validation.required', { key: 'secretAccessKey' }));\n }\n\n if (!parseValue.bucketRegion) {\n errors.push(t('validation.required', { key: 'bucketRegion' }));\n }\n\n if (!parseValue.bucketName) {\n errors.push(t('validation.required', { key: 'bucketName' }));\n }\n }\n\n if (!parseValue.endpoint && type !== 's3') {\n errors.push(t('validation.required', { key: 'endpoint' }));\n }\n\n return errors;\n}\n\nexport function ntpServers(value, getters, errors, validatorArgs) {\n const { ntpServers } = JSON.parse(value);\n const t = getters['i18n/t'];\n const ipv4Regex = /^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$/;\n const hostRegex = /^(?!:\\/\\/)(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}$/;\n\n if (!ntpServers) {\n return errors;\n }\n\n const ntpServersSet = new Set(ntpServers);\n\n if (ntpServers.length !== ntpServersSet.size) {\n errors.push(t('harvester.setting.ntpServers.isDuplicate'));\n }\n\n if (ntpServers.find((V) => !ipv4Regex.test(V) && !hostRegex.test(V))) {\n errors.push(t('harvester.setting.ntpServers.isNotIPV4'));\n }\n\n return errors;\n}\n","export function volumeSize(size, getters, errors, validatorArgs, displayKey, value) {\n if (!size) {\n const key = getters['i18n/t']('harvester.volume.size');\n\n errors.push(getters['i18n/t']('validation.required', { key }));\n }\n\n if (size && !/^([0-9][0-9]{0,8})[a-zA-Z]+$/.test(size)) {\n const message = getters['i18n/t']('harvester.validation.generic.maximumSize', { max: '999999999 GiB' });\n\n errors.push(message);\n }\n\n return errors;\n}\n","import jsyaml from 'js-yaml';\nimport { get } from '@shell/utils/object';\n\nexport function rancherMonitoring(valuesContent, getters, errors, validatorArgs) {\n const valueJson = jsyaml.load(valuesContent);\n const requiredFields = [\n {\n path: 'prometheus.prometheusSpec.scrapeInterval',\n translationKey: 'monitoring.prometheus.config.scrape'\n },\n {\n path: 'prometheus.prometheusSpec.evaluationInterval',\n translationKey: 'monitoring.prometheus.config.evaluation'\n },\n {\n path: 'prometheus.prometheusSpec.retention',\n translationKey: 'monitoring.prometheus.config.retention'\n },\n {\n path: 'prometheus.prometheusSpec.retentionSize',\n translationKey: 'monitoring.prometheus.config.retentionSize'\n },\n {\n path: 'prometheus.prometheusSpec.resources.requests.cpu',\n translationKey: 'monitoring.prometheus.config.requests.cpu'\n },\n {\n path: 'prometheus.prometheusSpec.resources.requests.memory',\n translationKey: 'monitoring.prometheus.config.requests.memory'\n },\n {\n path: 'prometheus.prometheusSpec.resources.limits.cpu',\n translationKey: 'monitoring.prometheus.config.limits.cpu'\n },\n {\n path: 'prometheus.prometheusSpec.resources.limits.memory',\n translationKey: 'monitoring.prometheus.config.limits.memory'\n },\n {\n path: 'prometheus-node-exporter.resources.requests.cpu',\n translationKey: 'monitoring.prometheus.config.requests.cpu'\n },\n {\n path: 'prometheus-node-exporter.resources.requests.memory',\n translationKey: 'monitoring.prometheus.config.requests.memory'\n },\n {\n path: 'prometheus-node-exporter.resources.limits.cpu',\n translationKey: 'monitoring.prometheus.config.limits.cpu'\n },\n {\n path: 'prometheus-node-exporter.resources.limits.memory',\n translationKey: 'monitoring.prometheus.config.limits.memory'\n },\n {\n path: 'grafana.resources.requests.cpu',\n translationKey: 'monitoring.prometheus.config.requests.cpu'\n },\n {\n path: 'grafana.resources.requests.memory',\n translationKey: 'monitoring.prometheus.config.requests.memory'\n },\n {\n path: 'grafana.resources.limits.cpu',\n translationKey: 'monitoring.prometheus.config.limits.cpu'\n },\n {\n path: 'grafana.resources.limits.memory',\n translationKey: 'monitoring.prometheus.config.limits.memory'\n },\n {\n path: 'alertmanager.alertmanagerSpec.retention',\n translationKey: 'monitoring.prometheus.config.retention'\n },\n {\n path: 'alertmanager.alertmanagerSpec.resources.requests.cpu',\n translationKey: 'monitoring.prometheus.config.requests.cpu'\n },\n {\n path: 'alertmanager.alertmanagerSpec.resources.requests.memory',\n translationKey: 'monitoring.prometheus.config.requests.memory'\n },\n {\n path: 'alertmanager.alertmanagerSpec.resources.limits.cpu',\n translationKey: 'monitoring.prometheus.config.limits.cpu'\n },\n {\n path: 'alertmanager.alertmanagerSpec.resources.limits.memory',\n translationKey: 'monitoring.prometheus.config.limits.memory'\n },\n ];\n\n requiredFields.forEach((rule) => {\n if (!get(valueJson, rule.path)) {\n errors.push(getters['i18n/t']('validation.required', { key: getters['i18n/t'](rule.translationKey) }));\n }\n });\n\n return errors;\n}\n\nexport function rancherLogging(valuesContent, getters, errors, validatorArgs) {\n const valueJson = jsyaml.load(valuesContent);\n const requiredFields = [\n {\n path: 'fluentbit.resources.requests.cpu',\n translationKey: 'monitoring.prometheus.config.requests.cpu'\n },\n {\n path: 'fluentbit.resources.requests.memory',\n translationKey: 'monitoring.prometheus.config.requests.memory'\n },\n {\n path: 'fluentbit.resources.limits.cpu',\n translationKey: 'monitoring.prometheus.config.limits.cpu'\n },\n {\n path: 'fluentbit.resources.limits.memory',\n translationKey: 'monitoring.prometheus.config.limits.memory'\n },\n {\n path: 'fluentd.resources.requests.cpu',\n translationKey: 'monitoring.prometheus.config.requests.cpu'\n },\n {\n path: 'fluentd.resources.requests.memory',\n translationKey: 'monitoring.prometheus.config.requests.memory'\n },\n {\n path: 'fluentd.resources.limits.cpu',\n translationKey: 'monitoring.prometheus.config.limits.cpu'\n },\n {\n path: 'fluentd.resources.limits.memory',\n translationKey: 'monitoring.prometheus.config.limits.memory'\n },\n ];\n\n requiredFields.forEach((rule) => {\n if (!get(valueJson, rule.path)) {\n errors.push(getters['i18n/t']('validation.required', { key: getters['i18n/t'](rule.translationKey) }));\n }\n });\n\n return errors;\n}\n","export function ranges(ranges = [], getters, errors, validatorArgs) {\n const t = getters['i18n/t'];\n\n if (ranges.length === 0) {\n errors.push(t('validation.required', { key: t('harvester.ipPool.tabs.range') }, true));\n }\n\n ranges.map((r) => {\n if (!r.subnet) {\n errors.push(t('validation.required', { key: t('harvester.ipPool.subnet.label') }, true));\n }\n });\n\n return errors;\n}\n","export function hashSHA512(value, getters, errors, validatorArgs, displayKey) {\n if (!/^[a-f0-9]{128}$/i.test(value)) {\n errors.push(getters['i18n/t']('harvester.validation.hash.sha512'));\n }\n\n return errors;\n}\n","import { imageUrl, fileRequired } from './vm-image';\nimport { vmNetworks, vmDisks } from './vm';\nimport { dataVolumeSize } from './vm-datavolumes';\nimport { backupTarget, ntpServers } from './setting';\nimport { volumeSize } from './volume';\nimport { rancherMonitoring, rancherLogging } from './monitoringAndLogging';\nimport { ranges } from './network';\nimport { hashSHA512 } from './hash';\n\nexport default {\n imageUrl,\n dataVolumeSize,\n vmNetworks,\n vmDisks,\n fileRequired,\n backupTarget,\n ntpServers,\n volumeSize,\n rancherMonitoring,\n rancherLogging,\n ranges,\n hashSHA512,\n};\n","//@ts-nocheck\nimport { importTypes } from '@rancher/auto-import';\nimport { IPlugin } from '@shell/core/types';\nimport extensionRoutes from './routing/harvester-routing';\nimport harvesterCommonStore from './store/harvester-common';\nimport harvesterStore from './store/harvester-store';\nimport customValidators from './validators';\nimport { PRODUCT_NAME } from './config/harvester';\nimport { defineAsyncComponent } from 'vue';\n\n// Init the package\nexport default function (plugin: IPlugin) {\n const isDev = process.env.NODE_ENV !== 'production';\n const isSingleVirtualCluster = process.env.rancherEnv === PRODUCT_NAME;\n\n // Auto-import model, detail, edit from the folders\n importTypes(plugin);\n\n // Provide plugin metadata from package.json\n plugin.metadata = require('./package.json');\n\n // Built-in icon\n plugin.metadata.icon = require('./icon.svg');\n\n plugin.addProduct(require('./config/harvester-cluster'));\n\n plugin.addDashboardStore(harvesterCommonStore.config.namespace, harvesterCommonStore.specifics, harvesterCommonStore.config);\n plugin.addDashboardStore(harvesterStore.config.namespace, harvesterStore.specifics, harvesterStore.config, harvesterStore.init);\n plugin.validators = customValidators;\n\n plugin.addRoutes(extensionRoutes);\n\n plugin.register('component', 'NavHeaderRight', defineAsyncComponent(() =>\n import('./components/HarvesterUpgradeHeader.vue')\n ));\n}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__9274__","__WEBPACK_EXTERNAL_MODULE__47008__","__WEBPACK_EXTERNAL_MODULE__20246__","Object","assign","defineProperty","value","target","varArgs","TypeError","to","index","arguments","length","nextSource","nextKey","prototype","hasOwnProperty","call","writable","configurable","CustomEvent","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","window","Event","Number","isInteger","isFinite","Math","floor","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","resolve","_typeof","Symbol","iterator","constructor","_defineProperties","props","i","descriptor","enumerable","_toPropertyKey","key","_createClass","Constructor","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","res","_classCallCheck","instance","isDeepEqual","isDeepStrictEqual","_require","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","_require2","inspect","_require$types","isPromise","isRegExp","objectAssign","objectIs","RegExpPrototypeTest","Map","lazyLoadComparison","comparison","warned","assert","ok","NO_EXCEPTION_SENTINEL","innerFail","obj","message","fail","actual","expected","operator","stackStartFn","internalMessage","argsLen","warn","process","emitWarning","console","bind","errArgs","err","generatedMessage","innerOk","fn","argLen","_len","args","Array","_key","apply","concat","notDeepStrictEqual","equal","notEqual","deepEqual","notDeepEqual","deepStrictEqual","strictEqual","notStrictEqual","Comparison","_this","forEach","compareExceptionKey","a","b","name","expectedException","msg","push","isPrototypeOf","getActual","checkIsPromise","then","catch","waitForActual","promiseFn","Promise","resultPromise","expectsError","error","details","fnType","expectsNoError","internalMatch","string","regexp","fnName","match","strict","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","result","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","split","shift","tmp1","pos","indexOf","slice","join","doesNotMatch","ownKeys","r","t","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","_isNativeFunction","has","get","set","Wrapper","_construct","Parent","Function","sham","Proxy","Boolean","valueOf","toString","p","setPrototypeOf","__proto__","getPrototypeOf","endsWith","str","search","this_len","substring","repeat","count","maxCount","log","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","kMaxShortLength","copyError","source","inspectValue","val","compact","customInspect","depth","maxArrayLength","Infinity","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","other","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","maxLength","stderr","isTTY","columns","pop","maxLines","max","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","_Error","_inspect$custom","_super","options","limit","stackTraceLimit","getColorDepth","base","_res","knownOperators","captureStackTrace","recurseTimes","ctx","custom","util","createErrorType","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","oneOf","thing","isArray","len","startsWith","substr","includes","start","determiner","replace","type","reason","inspected","RangeError","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","n","from","test","arr2","l","u","f","next","done","return","regexFlagsSupported","flags","arrayFromSet","array","arrayFromMap","is","objectGetOwnPropertySymbols","numberIsNaN","isNaN","uncurryThis","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","charCodeAt","pow","getOwnNonIndexProperties","compare","x","y","min","ONLY_ENUMERABLE","kStrict","kLoose","kNoIterator","kIsArray","kIsSet","kIsMap","areSimilarRegExps","RegExp","areSimilarFloatArrays","byteLength","offset","areSimilarTypedArrays","Uint8Array","buffer","byteOffset","areEqualArrayBuffers","buf1","buf2","isEqualBoxedPrimitive","val1","val2","BigInt","innerDeepEqual","memos","val1Tag","val2Tag","keys1","keys2","keyCheck","Date","getTime","_keys","_keys2","size","getEnumerables","k","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","objEquiv","delete","setHasEqualElement","memo","setValues","findLooseMatchingPrimitives","setMightHaveLoosePrim","altValue","mapMightHaveLoosePrim","item","curB","setEquiv","aValues","Set","add","bValues","_i","_val","mapHasEqualEntry","key1","item1","key2","mapEquiv","aEntries","_aEntries$i","item2","bEntries","_i2","_bEntries$_i","keysA","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","curByte","tripletToBase64","num","encodeChunk","uint8","output","extraBytes","parts","maxChunkLength","len2","base64","ieee754","customInspectSymbol","Buffer","SlowBuffer","INSPECT_MAX_BYTES","K_MAX_LENGTH","typedArraySupport","proto","foo","createBuffer","buf","encodingOrOffset","allocUnsafe","fromString","ArrayBuffer","isView","fromArrayView","isInstance","fromArrayBuffer","SharedArrayBuffer","fromObject","assertSize","alloc","fill","encoding","checked","isEncoding","write","fromArrayLike","arrayView","copy","isBuffer","data","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","j","hexWrite","remaining","strLen","parsed","parseInt","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","poolSize","allocUnsafeSlow","_isBuffer","list","swap16","swap32","swap64","toLocaleString","equals","trim","thisStart","thisEnd","thisCopy","targetCopy","toJSON","_arr","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","maxBytes","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","c","hi","lo","src","dst","alphabet","table","i16","SETTING","VERSION_RANCHER","VERSION_CLI","VERSION_MACHINE","VERSION_HELM","CLI_URL","DARWIN","WINDOWS","LINUX","API_HOST","CA_CERTS","HIDE_LOCAL_CLUSTER","AUTH_TOKEN_MAX_TTL_MINUTES","KUBECONFIG_GENERATE_TOKEN","KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES","ENGINE_URL","ENGINE_ISO_URL","FIRST_LOGIN","INGRESS_IP_DOMAIN","SERVER_URL","RKE_METADATA_CONFIG","EULA_AGREED","AUTH_USER_INFO_MAX_AGE_SECONDS","AUTH_USER_SESSION_TTL_MINUTES","AUTH_USER_INFO_RESYNC_CRON","AUTH_LOCAL_VALIDATE_DESC","PASSWORD_MIN_LENGTH","CLUSTER_TEMPLATE_ENFORCEMENT","UI_INDEX","UI_DASHBOARD_INDEX","UI_DASHBOARD_HARVESTER_LEGACY_PLUGIN","UI_OFFLINE_PREFERRED","SYSTEM_DEFAULT_REGISTRY","UI_ISSUES","PL","PL_RANCHER_VALUE","SUPPORTED","BANNERS","ISSUES","BRAND","LOGO_LIGHT","LOGO_DARK","BANNER_LIGHT","BANNER_DARK","LOGIN_BACKGROUND_LIGHT","LOGIN_BACKGROUND_DARK","PRIMARY_COLOR","LINK_COLOR","COMMUNITY_LINKS","FAVICON","UI_PERFORMANCE","UI_CUSTOM_LINKS","UI_SUPPORTED_K8S_VERSIONS","THEME","SYSTEM_NAMESPACES","CLUSTER_AGENT_DEFAULT_AFFINITY","FLEET_AGENT_DEFAULT_AFFINITY","ADD_EXTENSION_REPOS_BANNER_DISPLAY","AGENT_TLS_MODE","USER_RETENTION_CRON","USER_RETENTION_DRY_RUN","USER_LAST_LOGIN_DEFAULT","DISABLE_INACTIVE_USER_AFTER","DELETE_INACTIVE_USER_AFTER","K3S_UPGRADER_UNINSTALL_CONCURRENCY","ALLOWED_SETTINGS","kind","readOnly","ruleSet","factoryArg","canReset","warning","DEFAULT_PERF_SETTING","inactivity","enabled","threshold","incrementalLoading","manualRefresh","disableWebsocketNotification","garbageCollection","GC_DEFAULTS","forceNsFilterV2","advancedWorker","kubeAPI","warningHeader","separator","notificationBlockList","serverPagination","stores","cluster","resources","enableAll","enableSome","NODE","EVENT","WORKLOAD_TYPES","CRON_JOB","DAEMON_SET","DEPLOYMENT","JOB","STATEFUL_SET","POD","CATALOG","APP","CLUSTER_REPO","OPERATION","HPA","INGRESS","SERVICE","PV","CONFIG_MAP","STORAGE_CLASS","PVC","SECRET","REPLICA_SET","REPLICATION_CONTROLLER","generic","management","resource","CAPI","RANCHER_CLUSTER","context","MANAGEMENT","CLUSTER","LocationConfigParams","checkRouteProduct","$route","locationConfigParam","product","getProductFromRoute","checkRouteMode","query","_EDIT","mode","as","_CONFIG","_DETAIL","_LIST","_CREATE","checkExtensionRouteBinding","locationConfig","paramsToCheck","param","asArray","hash","isEqual","urlPath","path","exact","getApplicableExtensionEnhancements","pluginCtx","actionType","uiArea","currRoute","translationCtx","extensionEnhancements","$plugin","getUIConfig","actions","action","ExtensionPoint","CARD","CardLocation","CLUSTER_DASHBOARD_CARD","labelKey","label","ACTION","ActionLocation","TABLE","bulkable","multiple","randomStr","HEADER","shortcut","shortcutLabel","isMac","toUpperCase","shortcutKey","windows","mac","keyboardCombo","scLabel","ucFirst","PanelLocation","TabLocation","TableColumnLocation","setWidth","el","style","width","getWidth","parseFloat","getComputedStyle","inheritAttrs","emits","default","placeholderKey","tooltip","hoverTooltip","tooltipKey","required","disabled","placeholder","searchable","filterable","rules","validator","every","rule","requireDirty","raised","_VIEW","focused","blurred","computed","requiredField","some","empty","isDisabled","isSearchable","canPaginate","isFilterable","validationMessage","requiredRule","find","ruleMessages","$emit","methods","resizeHandler","$nextTick","DD","$refs","select","querySelector","selectWidth","dropWidth","onFocus","onFocusLabeled","onBlur","onBlurLabeled","now","describe","it","each","relationships","rel","toType","toId","deploymentData","metadata","namespace","uid","deployment","Deployment","expect","replicaSetId","toStrictEqual","cronJobData","apiVersion","spec","jobTemplate","expectation","cronjob","Cronjob","async","jobData","date","ownerReferences","controller","dispatcher","save","jest","goToDetail","dispatch","useFakeTimers","setSystemTime","spyOn","mockImplementation","runNow","callback","toHaveBeenCalledWith","rootGetters","NormanCluster","systemLabels","systemAnnotations","testAnnotations","annotations","annotation","toBeUndefined","testLabels","labels","fleetCluster","FleetCluster","status","display","readyBundles","bundleInfo","ready","toBe","total","getOwnPropertyNames","not","toContain","mock","copyTextToClipboard","testCases","provider","driver","clusterData","MgmtCluster","provisioner","bar","resetMocks","clearAllMocks","mgmtNode","MgmtNode","addresses","internalNodeStatus","address","internalAddress","internalIp","rkeNode","externalIp","toHaveBeenCalledTimes","mgmtClusterId","nodeId","specs","worker","etcd","controlPlane","etcdAndControlPlane","all","workerNode","isWorker","isControlPlane","isEtcd","etcdNode","controlPlaneNode","etcdAndControlPlaneNode","allNode","baseCtx","rancher/byId","scaledown","nodes","canScaleDown","MgmtNodePool","canScaleDownPool","SYSTEM_NAMESPACE","Namespace","isSystem","assertionsArr","ns","todo","isObscure","projectId","enableAutoInjection","isRancher","mockReturnValue","currentProduct","inStore","listLocation","node","Node","gkeClusterWithPrivateEndpoint","clusterName","rkeConfig","mgmt","gkeConfig","privateClusterConfig","enablePrivateEndpoint","eksClusterWithPrivateEndpoint","eksConfig","privateAccess","aksClusterWithPrivateEndpoint","aksConfig","privateCluster","ProvCluster","isRke2","isHostedKubernetesProvider","isPrivateHostedProvider","conditionsWithoutError","lastUpdateTime","transitioning","conditionsWithoutReady","noConditions","conditionsWithReadyLatest","conditionsWithErrorLatest","conditionsWithProblemInLastUpdateTimeProp","testName","conditions","hasError","subtype","field","parseType","secret","Secret","yaml","cleanYaml","cleanForDownload","expectedYamlStr","part","store","schemaName","SteveSchema","reset","testSchema","resourceFields","links","testSchemaDefinition","testSecondarySchemaDefinitions","schemaModel","opts","url","definitionType","definitions","state","config","schemaDefinition","toBeNull","schemaDefinitions","requiresResourceFields","toBeTruthy","hasResourceFields","toBeFalsy","fetchResourceFields","storageClass","StorageClass","PROVISIONER_OPTIONS","opt","customType","resourceClassJunkObject","__rehydrate","__clone","steveClassJunkObject","creationTimestamp","deletionGracePeriodSeconds","deletionTimestamp","fields","finalizers","generateName","generation","initializers","managedFields","selfLink","resourceVersion","versions","schema","stringData","customContainerImage","customContainer","image","__active","active","_init","customWorkload","template","containers","initContainers","workload","Workload","schemaFor","linkFor","i18n/exists","headers","accept","method","SchemaDefinitionCache","Schema","rehydrateNamespace","setClone","super","ids","_resourceFields","schemaDefinitionsIds","schemaDefinitionUrl","$dispatch","STEVE","SCHEMA_DEFINITION","_status","wait","cacheSchemaDefinitionResponse","others","entries","sd","reduce","d","$ctx","ProjectAndNamespaceFiltering","isApplicable","namespaced","isEnabled","showWorkspaceSwitcher","perfConfig","getPerformanceSetting","checkAndCreateParam","createParam","namespaceFilter","namespaces","NAMESPACE_FILTER_NS_FULL_PREFIX","NAMESPACE_FILTER_P_FULL_PREFIX","exclude","include","_ProjectAndNamespaceFiltering","steveCleanForDownload","rootKeys","metadataKeys","conditionKeys","jsyaml","dropKeys","condition","NamespaceProjectFilters","handlePrefAndSettingFilter","allNamespaces","showDynamicRancherNamespaces","productHidesSystemNamespaces","hideObscure","hideSystem","PaginationParamFilter","createSingleField","handleSystemOrUserFilter","isAllSystem","isAllUser","allSystem","createMultipleFields","PaginationFilterField","handleSelectionFilter","neu","isLocalCluster","projectsOrNamespaces","PaginationParamProjectOrNamespace","projectOrNamespace","filters","selection","projects","StevePaginationUtils","convertArrayPath","createSortForPagination","sortByPath","createParamsFromNsFilter","isAllNamespaces","NAMESPACE_FILTER_ALL_SYSTEM","NAMESPACE_FILTER_ALL_USER","createParamsForPagination","pagination","namespaceParam","convertPaginationParams","page","pageSize","sort","validateFields","invalid","joined","s","validateField","asc","uniq","attributes","at","filterStrings","encodeURIComponent","exactPartial","unique","_StevePaginationUtils","VALID_FIELDS","NODE_POOL","NODE_TEMPLATE","CAPI_LABELS","PROVIDER","NAMESPACE","MACHINE","CATTLE_PUBLIC_ENDPOINTS","render","_ctx","$props","$setup","$data","$options","_openBlock","_createElementBlock","class","_normalizeClass","bg","icon","_createCommentVNode","_createTextVNode","_toDisplayString","defineComponent","color","stateBackground","stateDisplay","__exports__","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","ref","showHighlightBorder","sticky","_createElementVNode","_renderSlot","$slots","title","content","showActions","onClick","buttonAction","buttonText","candidateSelectors","candidateSelector","NoElement","Element","matches","msMatchesSelector","webkitMatchesSelector","getRootNode","element","_element$getRootNode","ownerDocument","isInert","lookUp","_node$getAttribute","inertAtt","getAttribute","inert","parentNode","isContentEditable","_node$getAttribute2","attValue","getCandidates","includeContainer","candidates","querySelectorAll","unshift","getCandidatesIteratively","elements","elementsToCheck","tagName","assigned","assignedElements","children","nestedCandidates","flatten","scopeParent","validCandidate","shadowRoot","getShadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","hasTabIndex","getTabIndex","tabIndex","getSortOrderTabIndex","isScope","sortOrderedTabbables","documentOrder","isInput","isHiddenInput","isDetailsWithSummary","child","getCheckedRadio","form","isTabbableRadio","radioSet","radioScope","queryRadios","CSS","escape","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","host","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","contains","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","getBoundingClientRect","height","isHidden","_ref","displayCheck","visibility","isDirectSummary","nodeUnderDetails","parentElement","originalNode","rootNode","assignedSlot","getClientRects","isDisabledFromFieldset","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","acc","sortable","tabbable","container","focusable","isTabbable","focusableCandidateSelector","isFocusable","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_objectSpread2","_toConsumableArray","activeFocusTraps","activateTrap","trapStack","trap","activeTrap","pause","trapIndex","splice","deactivateTrap","unpause","isSelectableInput","isEscapeEvent","keyCode","isTabEvent","isKeyForward","shiftKey","isKeyBackward","delay","setTimeout","valueOrHandler","getActualTarget","composedPath","internalTrapStack","createFocusTrap","userOptions","doc","returnFocusOnDeactivate","escapeDeactivates","delayInitialFocus","containerGroups","tabbableGroups","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","paused","delayInitialFocusTimer","recentNavEvent","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","findIndex","tabbableNodes","getNodeForOption","_ref2","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","getInitialFocusNode","tabbableOptions","activeElement","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","reverse","posTabIndexesFound","nextTabbableNode","forward","nodeIdx","group","g","_getActiveElement","_tryFocus","focus","preventScroll","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","clickOutsideDeactivates","deactivate","returnFocus","allowOutsideClick","preventDefault","checkFocusIn","targetContained","Document","nextNode","stopImmediatePropagation","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","addListeners","addEventListener","capture","passive","removeListeners","removeEventListener","checkDomRemoval","mutations","isFocusedNodeRemoved","mutation","removedNodes","mutationObserver","MutationObserver","updateObservedNodes","disconnect","observe","subtree","childList","activate","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","clearTimeout","finishDeactivation","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","updateContainerElements","containerElements","elementsAsArray","triggerFocusTrap","focusTrapInstance","mounted","cardContainer","beforeUnmount","FIELD_REGEX","createHeaders","typeOptions","stateColumn","nameColumn","namespaceColumn","idColumn","age","ageColumn","showState","columnsFromSchema","entry","col","findBy","headerFromSchemaCol","hasName","format","insertAt","ageColumnActual","toLocaleLowerCase","removeObject","showAge","headerFromSchemaColString","colName","formatter","formatterOpts","multiline","word","charAt","exists","description","rowValueGetter","altPath","asFn","fieldIndex","row","conditionalDepaginate","depaginate","depaginateArgs","LABEL_SELECT_KINDS","GROUP","DIVIDER","NONE","LABEL_SELECT_NOT_OPTION_KINDS","PaginationParam","safeFields","PaginationArgs","COLUMN_BREAKPOINTS","TABLET","LAPTOP","DESKTOP","ary","idx","removeObjects","objs","indexes","ranges","first","last","addObject","addObjects","removeAt","clear","findOrFilterBy","keyOrObj","want","have","filterBy","sameContents","aryA","aryB","xor","sameArrayObjects","positionAgnostic","consumedB","_","validA","arB","getUniqueLabelKeys","aryResources","uniqueObj","waitFor","testFn","timeoutMs","intervalMs","gatedLog","reject","timeout","clearInterval","interval","setInterval","milliseconds","enabledInterval","enabledOnNavigate","ageThreshold","countThreshold","GarbageCollect","cachedGcPrefs","cachedGcPrefsStamp","debugLog","ENABLE_DEBUG_LOGGING","debug","gcLastRun","getUiPerfGarbageCollection","rootState","uiPerfSetting","types","stamp","uiPerfSettingParsed","JSON","parse","lastAccessedCache","lastRouteChange","gcEnabledAll","pseudoCtx","gcEnabledForStore","gcEnabledSetting","gcEnabledForType","uiPerfGarbageCollection","supportsGc","gcIgnoreTypes","gcEnabledInterval","gcEnabledRoute","garbageCollect","ignoreTypes","GC_RE_RUN_GAP","gcd","clusterReady","maxAge","lastAccessed","countFromResource","COUNT","counts","summary","currentCount","info","gcUpdateLastAccessed","gcUpdateRouteChanged","gcResetStore","gcResetType","_GarbageCollect","gc","PaginationUtils","validNsProjectFilters","ALL","ALL_SYSTEM","ALL_USER","NAMESPACE_FILTER_KINDS","PROJECT","NAMESPACED_YES","NAMESPACED_NO","getSettings","perf","isSteveCacheEnabled","STEVE_CACHE","enabledFor","settings","storeSettings","isGeneric","setting","validateNsProjectFilters","nsProjectFilters","validateNsProjectFilter","nsProjectFilter","paginationFilterEqual","paginationFiltersEqual","paginationEqual","aFilter","aSort","aPN","aPrimitiveTypes","bFilter","bSort","bPN","bPrimitiveTypes","fetchOrCreateSetting","perfSettingResource","perfSetting","safeDefaults","memberOfObject","memberOfComponent","addParam","v","addParams","isMaybeSecure","port","protocol","portMatch","ports","suffix","portStr","parser","strictMode","exec","uri","queryStr","q","$1","$2","stringify","user","password","anchor","loose","Port","int","isNumber","isInt","runValidators","validators","startDot","endDot","startNumber","startHyphen","endHyphen","minValue","maxValue","betweenValues","minLength","betweenLengths","requiredInt","isPositive","isOctal","valueString","isValid","portNumber","dnsChars","matchedChars","chars","char","dnsDoubleDash","dnsIanaServiceNameDoubleDash","dnsEmpty","dnsTooLong","hostnameTooLong","absolutePath","noUpperCase","cronSchedule","cronScheduleRule","validation","https","isHttps","localhost","isLocalhost","trailingForwardSlash","hasTrailingForwardSlash","isUrl","gitRepository","alphanumeric","containerImage","containerImages","containerError","dnsLabel","dnsLabelIanaServiceName","dnsLabelRestricted","hostname","hostNameMessage","labelValidators","labelMessage","wildcardHostname","externalName","isEmpty","testRule","ruleGroups","groups","servicePort","nodePort","listeningPort","targetPort","ianaServiceNameErrors","groupIsValid","readableIndex","returnMessage","readableRuleIndex","alert","groupIndex","ruleIndex","record","expr","groupsAreValid","matching","roleTemplateRules","verbs","nonResourceURLs","RBAC","ROLE","apiGroups","clusterIp","backupTarget","parseValue","accessKeyId","secretAccessKey","bucketRegion","bucketName","imageUrl","VM_IMAGE_FILE_FORMAT","urlSlug","fileExtension","fileRequired","HCI","IMAGE_NAME","subDomain","PRODUCT_NAME","HCI_SETTING","BACKUP_TARGET","CONTAINERD_REGISTRY","LOG_LEVEL","SERVER_VERSION","UI_PLUGIN_INDEX","UPGRADE_CHECKER_ENABLED","UPGRADE_CHECKER_URL","VLAN","UI_SOURCE","UI_PL","HTTP_PROXY","ADDITIONAL_CA","OVERCOMMIT_CONFIG","CLUSTER_REGISTRATION_URL","DEFAULT_STORAGE_CLASS","SUPPORT_BUNDLE_TIMEOUT","SUPPORT_BUNDLE_EXPIRATION","SUPPORT_BUNDLE_IMAGE","SUPPORT_BUNDLE_NODE_COLLECTION_TIMEOUT","STORAGE_NETWORK","VM_FORCE_RESET_POLICY","SSL_CERTIFICATES","SSL_PARAMETERS","SUPPORT_BUNDLE_NAMESPACES","AUTO_DISK_PROVISION_PATHS","RELEASE_DOWNLOAD_URL","CCM_CSI_VERSION","CSI_DRIVER_CONFIG","VM_TERMINATION_PERIOD","NTP_SERVERS","AUTO_ROTATE_RKE2_CERTS","LONGHORN_V2_DATA_ENGINE_ENABLED","ADDITIONAL_GUEST_MEMORY_OVERHEAD_RATIO","HCI_ALLOWED_SETTINGS","alias","featureFlag","experimental","HCI_SINGLE_CLUSTER_ALLOWED_SETTING","VM","VMI","VMIM","VM_TEMPLATE","VM_VERSION","IMAGE","SSH","VOLUME","USER","UPGRADE","UPGRADE_LOG","SCHEDULE_VM_BACKUP","BACKUP","RESTORE","NODE_NETWORK","CLUSTER_NETWORK","SUPPORT_BUNDLE","NETWORK_ATTACHMENT","DASHBOARD","BLOCK_DEVICE","CLOUD_TEMPLATE","HOST","VERSION","SNAPSHOT","VM_SNAPSHOT","ALERTMANAGERCONFIG","CLUSTER_FLOW","CLUSTER_OUTPUT","FLOW","OUTPUT","STORAGE","RESOURCE_QUOTA","KSTUNED","PCI_DEVICE","PCI_CLAIM","SR_IOV","VGPU_DEVICE","SR_IOVGPU_DEVICE","USB_DEVICE","USB_CLAIM","VLAN_CONFIG","VLAN_STATUS","ADD_ONS","LINK_MONITOR","INVENTORY","LB","IP_POOL","HARVESTER_CONFIG","LVM_VOLUME_GROUP","VOLUME_SNAPSHOT","CSI_DRIVER","VOLUME_SNAPSHOT_CLASS","showing","open","hide","onContextmenu","_withModifiers","_normalizeStyle","_Fragment","_renderList","menuOptions","divider","componentTestid","tabindex","$event","execute","onKeyup","_withKeys","svg","_createBlock","_component_IconOrSvg","hasOptions","className","Color","round","clamp","hueRotate","angle","PI","sin","cos","multiply","grayscale","sepia","saturate","matrix","newR","newG","newB","brightness","linear","contrast","slope","intercept","invert","hsl","h","Solver","rgb","targetHSL","reusedColor","solve","solveNarrow","solveWide","values","loss","css","A","best","initial","spsa","wide","A1","iters","alpha","gamma","bestLoss","deltas","highArgs","lowArgs","ck","random","lossDiff","ak","fix","colorHSL","abs","fmt","multiplier","filterCache","cssCache","colors","header","hover","primary","created","setColor","currTheme","$store","uiColor","hoverColor","styleSheets","stylesheet","cssRules","selectorText","cssText","mapStandardColors","getPropertyValue","normalizeHex","uiColorRGB","colorToRgb","hoverColorRGB","uiColorStr","hoverColorStr","hoverFilter","solver","mainFilter","styles","styleSheet","createElement","innerText","head","appendChild","HIDDEN","CALC","SHOW","components","IconOrSvg","customActions","useCustomTargetElement","customTargetElement","HTMLElement","customTargetEvent","PointerEvent","MouseEvent","phase","mapGetters","targetElem","targetEvent","shouldShow","watch","handler","show","updateStyle","old","commit","menu","$el","elem","fitOnScreen","overlapX","fudgeX","fudgeY","positionX","AUTO","CENTER","positionY","invoke","isAlt","isAlternate","route","alt","_Teleport","_createVNode","_Transition","appear","_withCtx","handleClickOutside","_mergeProps","$attrs","customClass","modalStyles","clickToClose","modalWidth","isValidWidth","uom","stylesPropToObj","line","lines","handleEscapeKey","modalRef","_directive_clean_tooltip","_resolveDirective","_directive_clean_html","classes","clicked","isManualRefresh","displayIcon","_withDirectives","labelAs","displayLabel","ASYNC_BUTTON_STATES","WAITING","SUCCESS","ERROR","TEXT","TOOLTIP","provideProps","timer","actionColor","waitingColor","successColor","errorColor","actionLabel","waitingLabel","successLabel","errorLabel","currentPhase","manual","setup","inject","typeHelper","btn","defaultKey","isSpinning","override","hideOnTargetClick","cb","success","timerDone","_component_v_select","withPopper","clearable","closeOnSelect","modelValue","buttonLabel","dropdownOptions","mappedKeys","optionKey","getOptionLabel","selectable","_createSlots","option","ddButtonAction","focusSearch","slot","scope","_normalizeProps","getWindow","defaultView","isElement","OwnElement","isHTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","navigator","userAgentData","brands","brand","version","userAgent","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","left","offsetLeft","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","getDocumentElement","documentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","isElementScaled","rect","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","getParentNode","getScrollParent","body","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","transform","perspective","contain","willChange","getOffsetParent","auto","basePlacements","clippingParents","viewport","popper","reference","variationPlacements","placement","beforeRead","afterRead","beforeMain","main","afterMain","beforeWrite","afterWrite","modifierPhases","order","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","orderModifiers","orderedModifiers","debounce","pending","mergeByName","merged","current","existing","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","modifiersData","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","runModifierEffects","update","forceUpdate","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","_options","destroy","_ref$options","effect","cleanupFn","noopFn","onFirstUpdate","_options$scroll","_options$resize","resize","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","popperOffsets","unsetSides","roundOffsetsByDPR","dpr","devicePixelRatio","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","_Object$assign","commonStyles","computeStyles","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","applyStyles","removeAttribute","setAttribute","initialStyles","margin","styleProperties","property","attribute","distanceAndSkiddingToXY","invertDistance","skidding","distance","_options$offset","_data$state$placement","getOppositePlacement","matched","getOppositeVariationPlacement","getViewportRect","html","clientWidth","clientHeight","layoutViewport","getDocumentRect","winScroll","scrollWidth","scrollHeight","direction","parent","isSameNode","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","axis","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","placements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","fittingPlacement","_ret","getAltAxis","within","withinMaxClamp","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","toPaddingObject","_state$modifiersData$","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","eventListeners","mixins","VueSelectOverrides","optionLabel","loading","dropdownList","component","componentWidth","createPopper","toggle","isString","localizedLabel","searchEl","optionObjects","role","change","iconSize","_component_t","inactiveClass","activeClass","_defineComponent","__name","borderless","invisible","__props","buttonClass","asTextArea","loaded","showKeyMapBox","removeKeyMapBox","keyMapTooltip","isNonDefaultKeyMap","closeKeyMapInfo","_component_Codemirror","combinedOptions","onReady","onInput","onChanges","codeMirrorRef","hasLintErrors","theme","keymap","KEYMAP","tabSize","indentWithTabs","keyMap","lineNumbers","styleActiveLine","lineWrapping","foldGutter","styleSelectedText","showCursorWhenSelecting","autocorrect","extraKeys","Tab","lint","onUpdateLinting","handleLintErrors","__codeMirrorLoader","diagnostics","severity","cminstance","refresh","newCode","changes","updateValue","setValue","_resolveDynamicComponent","onSubmit","onKeydown","onPressEnter","hasErrors","errors","_component_Banner","mappedErrors","closable","onClose","closeError","showSubtypeSelection","subtypes","selected","_selectedSubtype","selectType","_hoisted_6","_hoisted_7","bannerImage","_hoisted_8","_hoisted_9","bannerAbbrv","_hoisted_10","_hoisted_11","fontSize","abbrSizes","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","docLink","href","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_5","showAsForm","steps","_hoisted_21","_component_Wizard","stepsOptions","editFirstStep","finishMode","onError","stepContainer","activeStep","step","hidden","controlsContainer","showPrevious","back","canNext","activeStepIndex","visibleSteps","_component_CruResourceFooter","showCancel","onCancelConfirmed","confirmCancel","_hoisted_22","showYaml","showPreviewYaml","_hoisted_23","_component_AsyncButton","finishButtonMode","_hoisted_24","shouldProvideSlot","minHeight","_hoisted_25","canSave","clickSave","_hoisted_26","_component_ResourceYaml","initialYaml","resourceYaml","isEdit","doneRoute","doneOverride","applyHooks","yamlFooter","yamlSave","showPreview","yamlPreview","yamlUnpreview","canDiff","checkCancel","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","confirmCancelRequired","_component_ResourceCancelModal","isCancelModal","isForm","onConfirmCancel","showModal","_component_app_modal","cancelCancel","AppModal","AsyncButton","ResourceCancelModal","confirmBackRequired","isCancel","cancelModal","stepsLoaded","_component_Loading","showBanner","bannerTitle","_component_LazyImage","bannerTitleSubtext","initialTitle","showSteps","headerMode","number","subtext","selectNext","isAvailable","goToStep","errorStrings","finish","cancel","canPrevious","nextButtonStyle","nextButtonLabel","Banner","Loading","LazyImage","initStepIndex","stepIndex","previousButton","disable","readySteps","nextButton","wizard","fromNav","CONTEXT_HOOK_EDIT_YAML","CruResourceFooter","ResourceYaml","Wizard","cancelEvent","selectedSubtype","validationPassed","errorsMap","canYaml","generateYaml","preventEnterSubmit","namespaceKey","yamlModifiers","AS","_YAML","initialResource","clone","canEditYaml","resourceMethods","SUB_TYPE","mapState","mapActions","isCancelNotBack","emitOrRoute","$router","applyQuery","_UNFLAG","doneDefault","createResourceYaml","schemas","SCHEMA","clonedResource","createYamlWithOptions","BEFORE_SAVE_HOOKS","srcElement","buttonDone","createNamespaceIfNeeded","exceptionToErrorsArray","newNamespaceName","namespaceAlreadyExists","createNamespace","newNamespace","applyDefaults","isBinary","jsonStr","_component_CodeMirror","json","concealed","monospace","bodyHtml","isLong","expanded","expand","plusMore","_component_CopyToClipboard","text","showLabel","buttonCb","CopyToClipboard","CodeMirror","binary","conceal","asciiLike","binarySize","nlToBr","more","hideSensitiveData","HIDE_SENSITIVE","initialSrc","errorSrc","loadImage","img","boundError","showMessage","raw","noDelay","_component_Card","closeText","saveText","Card","_component_TypeDescription","_component_TabTitle","_typeDisplay","isExplorer","_component_Favorite","favoriteResource","showIncrementalLoadingIndicator","_component_ResourceLoadingIndicator","loadResources","indeterminate","loadIndeterminate","hasEditComponent","_isCreatable","_component_router_link","_createLocation","_createButtonlabel","_isYamlCreatable","_yamlCreateLocation","isFavorite","Favorite","TypeDescription","ResourceLoadingIndicator","TabTitle","typeDisplay","isCreatable","isYamlCreatable","createLocation","yamlCreateLocation","createButtonLabel","formRoute","yamlRoute","resourceName","collectionMethods","haveAll","rowsCount","existingData","clusterCounts","resourceCounts","resourceCount","progress","ceil","_component_SortableTable","_headers","rows","filteredRows","altLoading","computedGroupBy","groupOptions","paging","parsedPagingParams","pagingLabel","rowsPerPage","rowActions","_showBulkActions","getCustomDetailLink","hasAdvancedFiltering","advFilterHideLabelsAsCols","advFilterPreventFilteringLabels","keyField","sortGeneration","safeSortGenerationFn","useQueryParamsForSimpleFiltering","forceUpdateLiveAndDelayed","externalPaginationEnabled","externalPaginationResult","_mandatorySort","onClickedActionButton","handleActionButtonClick","onGroupValueChange","thisGroup","shortkeys","onShortkey","keyAction","once","showGrouping","_component_ButtonGroup","_guardReactiveProps","DEFAULT_GROUP","defaultTableSortGenerationFn","sortKey","nsFilterKey","ButtonGroup","SortableTable","groupBy","tableActions","pagingParams","groupable","groupTooltip","sortGenerationFn","ignoreFilter","handleEnterKeyPress","immediate","_listGroupMapped","listGroups","grp","listMandatorySort","isNamespaced","showNamespaceColumn","groupNamespaces","hideTableActions","showNamespace","extensionCols","TABLE_COL","RESOURCE","insertPosition","ageColIndex","AGE","lastViableColIndex","getValue","hideColumn","isAll","hideSystemResources","includedNamespaces","haveAllNamespace","isSystemResource","_group","mapPref","GROUP_RESOURCES","namespaceGroupable","customGroupable","listGroupsWillOverride","standard","hiddenNamespaceGroupButton","singularLabel","pluralLabel","selectedRows","goToEdit","goToViewYaml","act","availableActions","setBulkActionOfInterest","applyTableAction","clearSelection","_component_YamlEditor","currentYaml","editorMode","onOnReady","preview","unpreview","showFooter","_component_Footer","onSave","onDone","_component_FileSelector","onSelected","onFileSelected","offerPreview","Footer","FileSelector","YamlEditor","initialYamlForDiff","parentParams","PREVIEW","cm","initialReady","isCreate","EDITOR_MODES","VIEW_CODE","DIFF_CODE","EDIT_CODE","foldLinesMatching","regexes","ANNOTATIONS_TO_FOLD","ensureRegex","foldAnnotations","regex","yamlFolding","foldYaml","saved","getMode","fold","execCommand","yamleditor","_FLAGGED","yamlForSave","saveYaml","AFTER_SAVE_HOOKS","response","typeOf","shown","canClose","pref","closeBox","Closeable","align","showHeaderRow","button","bulkActionsClass","bulkActionClass","onMouseover","onMouseleave","actionTooltip","_component_ActionDropdown","bulkActionsDropdownClass","hiddenActions","selectedRowsText","bulkActionAvailabilityClass","isTooManyItemsToAutoUpdate","advancedFilteringValues","clearAdvancedFilter","manualRefreshButtonSize","refreshButtonPhase","debouncedRefreshTableData","advancedFilteringVisibility","advFilterSearchTerm","_component_LabeledSelect","advFilterSelectedProp","advFilterSelectOptions","taggable","onSelecting","advFilterSelectedLabel","clearAllAdvancedFilters","addAdvancedFilter","eventualSearchQuery","classObject","showHeaders","_component_THead","labelFor","advGroupOptions","columnOptions","subExpandColumn","rowActionsWidth","howMuchSelected","sortBy","_defaultSortBy","descending","noRows","isLoading","loadingDelay","noResults","onOnToggleAll","onToggleAll","onOnSortChange","changeSort","onColVisibilityChange","changeColVisibility","onUpdateColsOptions","updateColsOptions","colspan","fullColspan","showNoRows","noRowsKey","noDataKey","displayRows","groupedRows","mainRowKey","showSubRow","actionOfInterest","canRunBulkActionOfInterest","_hoisted_32","_component_Checkbox","_hoisted_33","toggleExpand","_hoisted_34","dt","rowKey","dasherize","breakpoint","skipSelect","needRef","ref_for","formatted","dashIfEmpty","_hoisted_36","_hoisted_35","isColVisible","_hoisted_37","_component_ButtonMultiAction","subMatches","onRowMouseEnter","onRowMouseLeave","stateDescription","onMouseenter","_hoisted_39","stateObj","_hoisted_40","_hoisted_38","showPaging","_hoisted_41","goToPage","_hoisted_42","_hoisted_43","pagingDisplay","totalPages","_hoisted_44","_hoisted_45","focusNext","focusPrevious","dualAction","buttonSize","disableButton","_component_v_dropdown","hasSlot","togglePopover","hasColumnWithSubLabel","checkWidth","isIndeterminate","expandWidth","ariaSort","isFilter","subLabel","isCurrent","tableColsOptions","tableColsOptionsClick","tableColsMenuPosition","hasAdvGrouping","advGroup","preventColToggle","tableOptionsCheckbox","isTableOption","tableColsOptionsVisibility","getParent","parentSelector","matchFn","matchesSelector","SOME","_onRowClickBound","onRowClick","_onRowMousedownBound","onRowMousedown","_onRowContextBound","onRowContext","pagedRows","bulkActionsForSelection","disableAll","allRows","arrangedRows","firstNode","_add","_filter","bulkAction","actionEnabledForSomeSelected","weight","prevNode","toRemove","isRange","isSelectionCheckbox","tr","closest","classList","trMainRow","previousElementSibling","remove","nodeForEvent","tgt","actionElement","tgtRow","nodeForRow","dataset","td","isCheckbox","isExpand","mangleActionResources","isSelected","isMore","toToggle","nodesBetween","suppressContextMenu","stopPropagation","keySelectRow","grouped","groupIdx","items","toAdd","updateInput","on","nextElementSibling","dispatchEvent","executableSelection","matchingResourceAction","_execute","anon","incrementCounts","allEnabled","anyEnabled","available","actionOpts","promises","altAction","Checkbox","LabeledSelect","defaultSortBy","watcherUpdateLiveAndDelayed","onClickOutside","desc","ev","tableOpts","ADV_FILTER_ALL_COLS_VALUE","ADV_FILTER_ALL_COLS_LABEL","LABEL_IDENTIFIER","searchQuery","previousFilter","previousResult","searchFields","columnsToSearchField","extraSearchFields","handleAdvancedFiltering","handleFiltering","prop","allCols","isLabel","handleStringSearch","searchText","searchTokens","subSearch","subFields","hits","mainFound","subRows","subFound","debouncedPaginationChanged","column","ipLike","token","tokenMayBeIp","re","DEFAULT_MANDATORY_SORT","sortFields","fromGroup","groupSort","fromColumn","mandatorySort","sortGenerationKey","cacheKey","cachedRows","markedColumn","defaultSort","setPage","totalRows","indexFrom","perPage","indexTo","havePages","pages","getPerPage","ROWS_PER_PAGE","which","getPageByRow","rowId","getRowId","selectedGroupOption","go","groupKey","refKey","groupRef","groupLabelKey","displayType","updateHiddenBulkActions","protectedUpdateHiddenBulkActions","onWindowResize","keyedAvailableActions","external","aa","actionable","runnableTotal","onScroll","actionsContainer","actionsDropdown","actionsContainerWidth","actionsHTMLCollection","selectedRowsTextWidth","cumulativeWidth","showActionsDropdown","totalAvailableWidth","ba","actionWidth","getNamedItem","DEFAULT_ADV_FILTER_COLS_VALUE","colOptionsWatcher","preventFiltering","handleColsVisibilyAndFiltering","cols","advCol","setColsOptions","rowLabels","headerProps","filteredHeaders","maxPageSize","sortVal","valueProp","colOpt","advFilterBox","colData","FORMATTERS","THead","ActionDropdown","ButtonMultiAction","filtering","sorting","grouping","AdvancedFiltering","subRowsDescription","subExpandable","topDivider","bodyDividers","_loadingDelayTimer","$main","_onScroll","_scrollTimer","_altLoadingDelayTimer","_liveColumnsTimer","_delayedColumnsTimer","manualRefreshTimer","initalLoad","_didinit","updateLiveAndDelayed","manualRefreshLoadingFinished","refreshTableData","paginationChanged","isManualRefreshLoading","span","missingWidth","variable","canBeVariable","hasLiveColumns","liveColumns","liveUpdates","hasDelayedColumns","delaeydColumns","delayLoading","columnFormmatterIDs","columnsIds","rowData","valueFor","pluginFormatter","getDynamic","defineAsyncComponent","delayed","live","updateLiveColumns","updateDelayedColumns","delayedColumns","startDelayedLoading","__delayedLoading","innerHeight","scheduled","dc","liveUpdate","day","MAX_SAFE_INTEGER","diff","isExpanded","nearestCheckbox","focusAdjacent","throttle","hasInjectedSubRows","hasStateDescription","targetElement","updatePageTitle","breadcrumb","includeVendor","showChild","computeTitle","currentCluster","isHarvester","nameDisplay","productName","getVendor","shouldShowHeader","labelDisplay","showHeader","displayAlertIcon","badge","sideTabs","addTab","removeTab","tabsOnly","hideTabs","sortedTabs","tab","hasIcon","showTabsAddRemove","tabAddClicked","tabRemoveClicked","tabs","noContent","flat","extensionTabs","_component_Tab","defaultTab","hideSingleTab","scrollOnChange","useHash","provide","TAB","RESOURCE_DETAIL","extensionParams","parsedExtTabs","activeTabName","activeTab","windowHash","windowHashTabMatch","firstTab","hashChange","unmounted","scrollable","getElementsByTagName","hashName","currentRoute","_value","routeHash","kurrentRoute","selectedName","currentIdx","nextIdx","getCyclicalIdx","nextName","tabsLength","nxt","tablist","activeTabIndex","typeDescriptionKey","hideTypeDescription","hideDescriptions","HIDE_DESC","isLocal","isPreview","hidePreviewButtons","diffMode","showCodeEditor","scrolling","curValue","codeMirrorOptions","onOnInput","onOnChanges","onValidationChanged","_component_FileDiff","filename","orig","original","_component_resize_observer","onNotify","fit","sideBySide","autoResize","footerSpace","draw","getElementById","patch","createPatch","configuration","synchronisedScroll","outputFormat","drawFileList","diff2htmlUi","Diff2HtmlUI","desired","FileDiff","asObject","initialYamlValues","saferDump","gutters","cursorBlinkRate","somethingSelected","indentSelection","screenReaderLabel","DIFF","showUploadPrompt","yamluploader","click","ex","showProtip","protip","valueLabel","queueUpdate","valueMultiline","_component_TextAreaAutoGrow","valuePlaceholder","onPaste","_component_LabeledInput","showRemove","_removeLabel","showAdd","disableAdd","_addLabel","DEFAULT_PROTIP","TextAreaAutoGrow","LabeledInput","initialEmptyRow","addLabel","addAllowed","addDisabled","removeLabel","removeAllowed","defaultAddValue","lastUpdateWasFromValue","isDefaultProtip","deep","newValue","oldValue","inputs","clipboardData","getData","_component_ArrayList","canAdd","onAdd","onRemove","_component_InfoBox","canRemoveRow","ArrayList","InfoBox","canRemove","selectFile","webkitdirectory","directory","onChange","fileChange","createOnSelected","contents","includeFileName","showGrowlError","byteLimit","readAsDataUrl","rawData","uploader","files","file","unboxedContents","asyncFileContents","getFileContents","fileContents","reader","FileReader","onload","onerror","readAsDataURL","readAsText","_resolveComponent","disableSave","isCompact","hasLabel","border","filteredAttrs","appendToBody","positionDropdown","getOptionKey","dropdownShouldOpen","onSearch","onOpen","showTagPrompts","hasGroupIcon","onMousedown","onClickOption","totalResults","paginating","canLoadMore","loadMore","optionCounts","searching","noOptionsLabelKey","_component_LabeledTooltip","paginate","resourceType","currentPage","debouncedRequestPagination","requestPagination","optionsInPage","totalCount","setPaginationFilter","resetPage","pageContent","LabeledTooltip","CompactInput","LabeledFormElement","LabeledSelectPagination","selectedVisibility","shouldOpen","_class","rest","overridesMixinPreventDoubleTriggerKeysOpen","calculatePosition","forceOpen","noDrop","mutableLoading","closeSearchOptions","newSearchString","labelSelectAttributes","$fetchState","allOfType","paginateType","RESOURCE_LABEL_SELECT_MODE","labelSelectPaginationFunction","groupByNamespace","classify","resPage","paginateMode","DYNAMIC","allResourcesSettings","paginatedResourceSettings","fetch","ALL_RESOURCES","allAttrs","labelSelectOptions","updateResources","overrideRequest","requestSettings","deClassedAttrs","autoscroll","handleDropdownOpen","getKeyForOption","popperOverride","report","_component_ResourceLabeledSelect","secretNameLabel","paginateSecretsSetting","allSecretsSettings","updateSecretName","isKeyDisabled","keyNameLabel","updateSecretKey","ResourceLabeledSelect","initialName","initialKey","TYPES","secrets","none","mapResult","allSecretsInNamespace","_type","mappedSecrets","mapSecrets","localeCompare","paginatePageOptions","_component_SimpleSecretSelector","initialCaSecretKey","initialCaSecretName","view","onUpdateSecretName","updateCaSecretName","onUpdateSecretKey","updateCaSecretKey","initialClientCertSecretKey","initialClientCertSecretName","updateClientCertSecretName","updateClientCertSecretKey","initialClientKeySecretKey","initialClientKeySecretName","updateClientKeySecretName","updateClientKeySecretKey","tlsConfig","serverName","SimpleSecretSelector","ca","cert","keySecret","existingKey","existingName","sendResolved","smarthost","requireTLS","authUsername","initialAuthPasswordSecretKey","initialAuthPasswordSecretName","updateAuthPasswordSecretName","updateAuthPasswordSecretKey","_component_TLS","TLS","authPassword","initialApiKeySecretKey","initialApiKeySecretName","updateApiKeySecretName","updateApiKeySecretKey","httpConfig","proxyURL","responders","defaultResponder","typeLabel","_component_Select","targetLabel","_component_InputWithSelect","TARGETS","updateResponder","selectBeforeText","selectLabel","selectRules","textLabel","textRules","textDisabled","textRequired","autocomplete","Select","labeledFormElement","selectValue","textValue","comp","InputWithSelect","send_resolved","responder","apiKey","integrationType","integrationTypeOptions","initialRoutingKeySecretKey","initialRoutingKeySecretName","updateRoutingKeySecretName","updateRoutingKeySecretKey","initialServiceKeySecretKey","initialServiceKeySecretName","updateServiceKeySecretName","updateServiceKeySecretKey","integrationMapping","Prometheus","serviceKey","routingKey","initialSecretKey","initialSecretName","channel","apiURL","selectedWebhookType","updateWebhookType","webhookOptons","showNamespaceBanner","initialUrlSecretKey","initialUrlSecretName","updateUrlSecretName","updateUrlSecretKey","_component_Auth","authType","initializeType","authOptions","initialBasicAuthUsernameSecretKey","initialBasicAuthUsernameSecretName","updateBasicAuthUsernameSecretName","updateBasicAuthUsernameSecretKey","initialBasicAuthPasswordSecretKey","initialBasicAuthPasswordSecretName","updateBasicAuthPasswordSecretName","updateBasicAuthPasswordSecretKey","initialBearerTokenSecretKey","initialBearerTokenSecretName","updateBearerTokenSecretName","updateBearerTokenSecretKey","basicAuth","authTypes","bearerTokenSecret","username","authOption","MS_TEAMS_URL","ALIBABA_CLOUD_SMS_URL","WEBHOOK_TYPES","ALIBABA_CLOUD_SMS","GENERIC","MS_TEAMS","Auth","isDriverUrl","urlSecret","msTeamsUrl","alibabaCloudSmsUrl","getTypeFromUrl","updateWebhookUrl","resourceNames","names","RoleDeletionCheck","displayName","canSeeProjectlessNamespaces","filteredNamespaces","deleteProjectNamespaces","allProjects","currentProject","canUpdate","podNames","forceDelete","close","doneLocation","confirm","goTo","removePod","currentRouter","pod","gracePeriod","force","stacked","messageLabel","hasTooltip","for","isChecked","valueWhenTrue","triggers","descriptionKey","isMulti","findTrueValues","customEvent","altKey","ctrlKey","metaKey","cloneDeep","hasSuffix","hideArrows","maxlength","_maxlength","_placeholder","autocapitalize","ignorePasswordManagers","tooltipValue","cronHint","labeledFormElementProps","useLabeledFormElement","defineEmits","emit","useCompactInput","updated","validationErrors","predefined","isPredefined","isValidCron","allowBlankDay","allowSevenAsSunday","cronstrue","verbose","delayInput","escapeHtml","randomString","muteLabel","hasLabelSlot","hasDescriptionSlot","_component_RadioButton","radioGroupLabel","clickNext","normalizedOptions","vBind","RadioButton","newIndex","spellcheck","queueResize","maxHeight","curHeight","autoSize","ta","hoverable","iconClass","isObject","popperClass","upgradeLink","releaseVersion","DOC","UPGRADE_URL","isOpen","bundlePending","_component_GraphCircle","percentage","viewBox","primaryStrokeColorId","x1","y1","x2","y2","primaryStrokeGradientColor","primaryStrokeColor","secondaryStrokeColorId","secondaryStrokeGradientColor","secondaryStrokeColor","radius","cy","cx","strokeWidth","stroke","circumference","showText","parsePercentage","rotate","viewportSize","outerRadius","halfStrokeWidth","strokeDasharray","strokeDashoffset","GraphCircle","isShowBundleModal","backUpName","bundleCrd","issueURL","bundleValue","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","setFunctionLength","$TypeError","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","func","applyBind","cssKeywords","reverseKeywords","convert","channels","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","comparativeDistance","delta","rdif","gdif","bdif","diffc","w","reversed","currentClosestKeyword","currentClosestDistance","z","t2","t3","t1","smin","lmin","sv","vmin","sl","wh","bl","ratio","z2","hr","atan2","sqrt","saturation","ansi","mult","rem","integer","colorString","chroma","hue","pure","mg","conversions","models","wrapRaw","wrappedFn","arg0","conversion","wrapRounded","fromModel","routes","routeModels","toModel","buildGraph","graph","deriveBFS","queue","adjacents","adjacent","link","wrapConversion","colorNames","swizzle","reverseNames","cs","hexDouble","prefix","hexAlpha","abbr","rgba","per","i2","percent","hsla","hwba","skippedModels","hashedModelKeys","limiters","object","valpha","newArray","zeroArray","hashedKeys","freeze","places","percentString","unitArray","unitObject","roundToPlace","getset","maxfn","saturationl","lightness","saturationv","wblack","cyan","magenta","yellow","black","hexa","rgbArray","alphaHex","rgbNumber","luminosity","lum","chan","color2","lum1","lum2","level","contrastRatio","isDark","yiq","isLight","negate","lighten","darken","desaturate","whiten","blacken","fade","opaquer","degrees","mix","mixinColor","color1","w1","w2","assertArray","roundTo","toFixed","times","functions","time","timeEnd","trace","consoleAssert","tuple","duration","expression","__assign","safeParseInt","NaN","isWildcard","isQuestionMark","isInRange","stop","isValidRange","sides","_a","small","big","isValidStep","validateForRange","splits","hasValidSeconds","seconds","hasValidMinutes","minutes","hasValidHours","hours","hasValidDays","days","monthAlias","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","hasValidMonths","months","remappedMonths","weekdaysAlias","sun","mon","tue","wed","thu","fri","sat","hasValidWeekdays","weekdays","remappedWeekdays","hasCompatibleDayFormat","cron","globalThis","__webpack_modules__","__unused_webpack_module","CronParser","rangeValidator_1","dayOfWeekStartIndexZero","monthStartIndexZero","special","parseSpecial","extractParts","normalize","validate","specialExpressions","arrayElement","isYearWithNoSecondsPart","expressionParts","dowDigits","dowDigitsAdjusted","SUN","MON","TUE","WED","THU","FRI","SAT","JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC","month","stepRangeThrough","assertNoInvalidCharacters","validateRange","secondRange","minuteRange","hourRange","dayOfMonthRange","monthRange","dayOfWeekRange","partDescription","invalidChars","ExpressionDescriptor","stringUtilities_1","cronParser_1","locale","defaultLocale","locales","fallBackLocale","i18n","use24HourTimeFormat","use24HourTimeFormatByDefault","_b","_c","throwExceptionOnParseError","_d","_e","_f","_g","_h","tzOffset","descripter","getFullDescription","initialize","localesLoader","specialCharacters","load","timeSegment","getTimeOfDayDescription","dayOfMonthDesc","getDayOfMonthDescription","monthDesc","getMonthDescription","dayOfWeekDesc","getDayOfWeekDescription","yearDesc","getYearDescription","transformVerbosity","toLocaleUpperCase","anErrorOccuredWhenGeneratingTheExpressionD","secondsExpression","minuteExpression","hourExpression","StringUtilities","containsAny","hourParts","formatTime","spaceAnd","secondsDescription","getSecondsDescription","minutesDescription","getMinutesDescription","hoursDescription","getHoursDescription","minuteParts","everyMinuteBetweenX0AndX1","atSpace","getSegmentDescription","everySecond","everyX0Seconds","secondsX0ThroughX1PastTheMinute","atX0SecondsPastTheMinute","atX0SecondsPastTheMinuteGt20","everyMinute","everyX0Minutes","minutesX0ThroughX1PastTheHour","everyHour","atX0MinutesPastTheHour","atX0MinutesPastTheHourGt20","everyX0Hours","betweenX0AndX1","atX0","atTheHourMatches","matchAll","lastAtTheHourMatchIndex","daysOfWeekNames","daysOfTheWeek","commaEveryDay","exp","parsedExp","hour","daysOfTheWeekInCase","dayOfWeekOfMonthDescription","dayOfWeekOfMonthNumber","dayOfWeekNumber","second","third","fourth","fifth","commaEveryX0DaysOfTheWeek","beginFrom","domSpecified","commaAndX0ThroughX1","commaX0ThroughX1","commaOnThe","spaceX0OfTheMonth","commaOnTheLastX0OfTheMonth","commaAndOnX0","commaOnlyOnX0","monthNames","monthsOfTheYear","monthsOfTheYearInCase","commaEveryX0Months","commaMonthX0ThroughMonthX1","commaOnlyInMonthX0","commaOnlyInX0","commaOnTheLastDayOfTheMonth","commaOnTheLastWeekdayOfTheMonth","weekDayNumberMatches","dayNumber","dayString","firstWeekday","weekdayNearestDayX0","commaOnTheX0OfTheMonth","lastDayOffSetMatches","offSetDays","commaDaysBeforeTheLastDayOfTheMonth","lastDay","dayX0","commaEveryX0Days","commaBetweenDayX0AndX1OfTheMonth","commaOnDayX0OfTheMonth","getFullYear","commaEveryX0Years","commaYearX0ThroughYearX1","commaOnlyInYearX0","allDescription","getSingleItemDescription","getIncrementDescriptionFormat","getRangeDescriptionFormat","getDescriptionFormat","doesExpressionContainIncrement","doesExpressionContainRange","doesExpressionContainMultipleValues","segments","descriptionContent","isSegmentRangeWithoutIncrement","currentDescriptionContent","rangeSegmentDescription","generateRangeSegmentDescription","rangeItemDescription","commaStartingX0","rangeExpression","rangeSegments","rangeSegment1Description","rangeSegment2Description","rangeDescriptionFormat","secondExpression","hourOffset","minuteOffset","minute","period","setPeriodBeforeTime","getPeriod","useVerboseFormat","pm","am","enLocaleLoader","en_1","availableLocales","en","commaEveryHour","RangeValidator","dayOfMonth","dayOfWeek","searchStrings","__webpack_module_cache__","moduleId","cachedModule","expressionDescriptor_1","enLocaleLoader_1","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","cssWithMappingToString","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","_k","__esModule","needQuotes","utcOffset","year","M","D","ms","Q","$","$L","utc","$u","$offset","$d","UTC","init","$y","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isSame","startOf","endOf","isAfter","isBefore","$g","millisecond","unix","toDate","$locale","weekStart","$set","daysInMonth","subtract","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","mm","ss","SSS","Z","getTimezoneOffset","toISOString","toUTCString","extend","isDayjs","Ls","$SyntaxError","gopd","nonEnumerable","nonWritable","nonConfigurable","hasSymbols","toStr","defineDataProperty","isFunction","supportsDescriptors","predicate","predicates","global","Diff","buildValues","newString","oldString","useLongestToken","componentPos","componentLen","newPos","oldPos","removed","added","lastComponent","clonePath","castInput","removeEmpty","tokenize","newLen","oldLen","editLength","maxEditLength","bestPath","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","_oldPos","pushComponent","commonCount","comparator","ignoreCase","characterDiff","diffChars","oldStr","newStr","generateOptions","defaults","extendedWordChars","reWhitespace","wordDiff","diffWords","ignoreWhitespace","diffWordsWithSpace","tokens","lineDiff","diffLines","diffTrimmedLines","retLines","linesAndNewlines","newlineIsToken","sentenceDiff","diffSentences","cssDiff","diffCss","iter","objectPrototypeToString","jsonDiff","diffJson","oldObj","newObj","canonicalize","replacementStack","replacer","canonicalizedObj","sortedKeys","_this$options","undefinedReplacement","_this$options$stringi","stringifyReplacer","arrayDiff","diffArrays","oldArr","newArr","parsePatch","uniDiff","diffstr","delimiters","parseIndex","parseFileHeader","hunks","_line","parseHunk","fileHeader","keyPrefix","fileName","chunkHeaderIndex","chunkHeaderLine","chunkHeader","hunk","oldStart","oldLines","newStart","newLines","linedelimiters","addCount","removeCount","operation","distanceIterator","minLine","maxLine","wantForward","backwardExhausted","forwardExhausted","localOffset","applyPatch","removeEOFNL","addEOFNL","compareLine","lineNumber","patchContent","errorCount","fuzzFactor","hunkFits","toPos","diffOffset","_hunk","_toPos","delimiter","previousOperation","applyPatches","currentIndex","processIndex","complete","loadFile","updatedContent","patched","structuredPatch","oldFileName","newFileName","oldHeader","newHeader","contextLines","oldRangeStart","newRangeStart","curRange","oldLine","newLine","_curRange","prev","_curRange2","_curRange3","contextSize","oldEOFNewline","newEOFNewline","noNlBeforeAdds","createTwoFilesPatch","arrayEqual","arrayStartsWith","calcLineCount","_calcOldNewLineCount","calcOldNewLineCount","merge","mine","theirs","loadPatch","fileNameChanged","selectField","mineIndex","theirsIndex","mineOffset","theirsOffset","mineCurrent","theirsCurrent","hunkBefore","cloneHunk","mergedHunk","mergeLines","conflict","mineLines","theirOffset","theirLines","their","insertLeading","theirCurrent","_hunk$lines","collectChange","_hunk$lines2","removal","mutualChange","insertTrailing","myChanges","theirChanges","allRemoves","_hunk$lines3","_hunk$lines4","skipRemoveSuperset","_hunk$lines5","_hunk$lines6","collectContext","insert","matchChanges","matchIndex","contextChanges","conflicted","removeChanges","changeContent","myCount","theirCount","convertChangesToDMP","convertChangesToXML","escapeHTML","__spreadArray","pack","ar","types_1","utils_1","getExtension","language","filenameParts","startsWithAny","prefixes","baseDiffFilenamePrefixes","getFilename","linePrefix","extraPrefix","FilenameRegExp","escapeForRegExp","matchingPrefix","fnameWithoutPrefix","getSrcFilename","srcPrefix","getDstFilename","dstPrefix","diffInput","currentFile","currentBlock","oldLine2","possibleOldName","possibleNewName","oldFileNameHeader","newFileNameHeader","hunkHeaderPrefix","oldMode","newMode","deletedFileMode","newFileMode","copyFrom","copyTo","renameFrom","renameTo","similarityIndex","dissimilarityIndex","binaryFiles","binaryDiff","combinedIndex","combinedMode","combinedNewFile","combinedDeletedFile","saveBlock","blocks","saveFile","oldName","newName","startFile","deletedLines","addedLines","startBlock","isCombined","oldStartLine","oldStartLine2","newStartLine","createLine","currentLine","addedPrefixes","deletedPrefixes","LineType","INSERT","oldNumber","newNumber","DELETE","CONTEXT","existHunkHeader","lineIdx","lineIndex","prevLine","nxtLine","afterNxtLine","gitDiffStart","isGitDiff","isTooBig","diffMaxChanges","diffMaxLineLength","diffTooBigMessage","doesNotExistHunkHeader","isDeleted","isNew","isCopy","isRename","unchangedPercentage","changedPercentage","checksumBefore","checksumAfter","__createBinding","k2","__setModuleDefault","__importStar","mod","defaultTemplates","Hogan","Template","rp","fl","partials","subs","rs","__importDefault","defaultDiff2HtmlConfig","DiffParser","fileListPrinter","line_by_line_renderer_1","side_by_side_renderer_1","hoganjs_utils_1","hoganUtils","fileList","diffOutput","defaultLineByLineRendererConfig","defaultSideBySideRendererConfig","OutputFormatType","LINE_BY_LINE","renderUtils","baseTemplatesPath","iconsBaseTemplatesPath","diffFiles","fileHtmlId","getHtmlId","filenameDiff","fileIcon","getFileIcon","filesNumber","diff2html_templates_1","HoganJsUtils","compiledTemplates","rawTemplates","compiledRawTemplates","previousTemplates","templateString","compiledTemplate","compile","asString","preCompiledTemplates","indent","templateKey","Rematch","defaultRenderConfig","renderNothingWhenEmpty","matchingMaxComparisons","maxLineSizeInBlockForComparison","genericTemplatesPath","tagsBaseTemplatesPath","LineByLineRenderer","diffsHtml","diffs","generateFileHtml","generateEmptyDiff","makeFileDiffHtml","fileDiffTemplate","filePathTemplate","fileIconTemplate","fileTagTemplate","filePath","fileDiffName","fileTag","contentClass","CSSLineClass","matcher","newMatcherFn","newDistanceFn","deconstructLine","block","blockHeader","escapeForHtml","lineClass","applyLineGroupping","applyRematchMatching","processChangedLines","generateSingleLineHtml","blockLinesGroups","diffLine","comparisons","maxLineSizeInBlock","doMatching","fileHtml","maxLinesNumber","diffHighlight","preparedOldLine","DELETE_CHANGES","toCSSClass","preparedNewLine","INSERT_CHANGES","generateLineHtml","lineNumberHtml","levenshtein","xValue","yValue","lev","findBestMatch","cache","bestMatch","bestMatchDist","md","indexA","indexB","score","bm","a1","b1","aMatch","bMatch","tailA","tailB","a2","b2","group1","groupMatch","group2","jsDiff","rematch","INSERTS","DELETES","INFO","LineMatchingType","matchWordsThreshold","maxLineLengthHighlight","diffStyle","DiffStyleType","WORD","isDevNullName","removeInsElements","removeDelElements","lineType","prefixLength","indexToSplit","oldFilename","unifyPath","newFilename","prefixPaths","suffixPaths","oldFilenameParts","newFilenameParts","oldFilenamePartsSize","newFilenamePartsSize","finalPrefix","finalSuffix","oldRemainingPath","newRemainingPath","hashCode","templateName","diffLine1","diffLine2","line1","line2","changedWords","chunks","chunk","dist","highlightedLine","elemType","addClass","escapedValue","SideBySideRenderer","makeHeaderHtml","accomulated","generateSingleHtml","SIDE_BY_SIDE","LINES","WORDS","CHAR","defaultDiff2HtmlUIConfig","highlight_js_helpers_1","diff2html_1","highlight","fileListToggle","fileListStartVisible","highlightLanguages","smartSelection","fileContentToggle","stickyFileHeaders","hljs","currentSelectionColumnId","diffHtml","innerHTML","highlightCode","wrapper","startVisible","showBtn","hideBtn","hashTag","getHashTag","fileContentToggleBtn","toggleFileContents","selector","toggleHandler","hljsLanguage","getLanguage","codeLines","textContent","lineParent","closeTags","ignoreIllegals","originalStream","nodeStream","resultNode","createElementNS","mergeStreams","docUrl","hashTagIndex","__extends","extendStatics","__","highlight_js_slim_1","diff2html_ui_base_1","tag","firstChild","nextSibling","nodeType","nodeValue","highlighted","processed","nodeStack","selectStream","attr","stream","tokenStack","prepend","append","languagesToExt","abnf","accesslog","adb","ada","ads","angelscript","apache","applescript","scpt","arcade","cpp","hpp","arduino","ino","armasm","arm","xml","xhtml","rss","atom","xjb","xsd","xsl","plist","asciidoc","adoc","aspectj","ahk","ahkl","au3","avrasm","awk","axapta","bash","sh","zsh","bnf","bf","cats","idc","cal","capnproto","capnp","ceylon","clean","clj","boot","cl2","cljc","cljs","cljscm","cljx","hic","cmake","coffee","_coffee","cake","cjsx","iced","cson","coq","cls","crmsh","crm","pcmk","cr","csx","csp","di","markdown","mdown","mdwn","mkd","mkdn","mkdown","ronn","workbook","dart","dfm","pas","pascal","django","jinja","dns","zone","dockerfile","docker","dos","bat","cmd","dsconfig","dts","dust","ebnf","exs","elm","rb","builder","eye","gemspec","god","jbuilder","mspec","pluginspec","podspec","rabl","rake","rbuild","rbw","rbx","ru","ruby","thor","watchr","erb","erl","escript","hrl","xrl","yrl","excel","xls","xlsx","flix","f90","f03","f08","f77","f95","fpp","fs","fsx","gams","gms","gauss","gss","gcode","nc","gherkin","glsl","fp","frag","frg","fsh","fshader","geo","geom","glslv","gshader","shader","tesc","tese","vert","vrx","vsh","vshader","gml","bal","golo","gololang","gradle","groovy","grt","gtpl","gvy","haml","handlebars","hbs","hs","hsc","idr","purs","hx","hxsl","hsp","htmlbars","http","hy","inform7","i7","ini","toml","cfg","prefs","irpf90","isbl","java","jsp","js","jsx","_js","bones","es","es6","gs","jake","jsb","jscad","jsfl","jsm","jss","mjs","njs","pac","sjs","ssjs","xsjs","xsjslib","cfc","avsc","geojson","gltf","jsonl","tfstate","topojson","webapp","webmanifest","jl","kt","ktm","kts","lasso","lassoscript","tex","ldif","leaf","less","lisp","factor","livecodeserver","ls","_ls","llvm","lsl","lua","nse","p8","pd_lua","rbxs","wlua","mak","make","mk","mkfile","mathematica","mma","wl","matlab","maxima","mel","mercury","mipsasm","miz","voc","al","cgi","fcgi","perl","ph","plx","pl","psgi","mojolicious","monkey","monkey2","moonscript","moon","n1ql","nginxconf","nim","nimrod","nix","nsi","nsh","objc","fun","sig","ml","mli","eliom","eliomi","ml4","mll","mly","openscad","oxygene","parser3","pf","pgsql","postgres","postgresql","php","aw","ctp","inc","php3","php4","php5","phps","phpt","plaintext","txt","pony","ps","ps1","psd1","psm1","pde","profile","pro","prolog","yap","properties","puppet","pp","purebasic","py","bzl","gyp","gypi","lmi","py3","pyde","pyi","pyp","pyt","pyw","rpy","tac","wsgi","xpy","pycon","kdb","qml","rd","rsx","reasonml","rib","roboconf","instances","routeros","rsl","ruleslanguage","sas","scala","kojo","sbt","sc","scm","sch","sld","sls","sps","rkt","scilab","scss","shell","smali","st","sml","sqf","sql","cql","ddl","mysql","prc","udf","viw","stan","stanfuncs","stata","step21","stp","styl","subunit","swift","taggerscript","yml","mir","reek","rviz","syntax","tap","tcl","adp","tm","thrift","tp","twig","craftcms","ts","tsx","vala","vbnet","vb","vbscript","vbs","veo","vhdl","vhd","vhf","vhi","vho","vhs","vht","vhw","vim","x86asm","xl","xquery","xpath","xq","zephir","zep","core_1","cpp_1","xml_1","awk_1","bash_1","c_1","clojure_1","crystal_1","csharp_1","csp_1","css_1","markdown_1","dart_1","diff_1","dockerfile_1","elixir_1","elm_1","ruby_1","erlang_1","fsharp_1","go_1","gradle_1","groovy_1","handlebars_1","haskell_1","ini_1","java_1","javascript_1","json_1","kotlin_1","less_1","lisp_1","lua_1","makefile_1","perl_1","nginx_1","objectivec_1","pgsql_1","php_1","plaintext_1","powershell_1","properties_1","protobuf_1","python_1","rust_1","scala_1","scss_1","shell_1","sql_1","swift_1","yaml_1","typescript_1","registerLanguage","specials","chr","_base","_interopRequireDefault","_params","_character","_word","_sentence","_css","_json","_array","_apply","_parse","_merge","_create","_dmp","_xml","_distanceIterator","formatPatch","_default","isFrozen","seal","thisValue","Func","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","typeErrorCreate","unconstruct","thisArg","addToSet","transformCaseFunc","_transformCaseFunc","lcElement","newObject","lookupGetter","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","mathMl","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","ATTR_NAME","currentScript","hasAttribute","policyName","createHTML","createScriptURL","scriptUrl","createDOMPurify","DOMPurify","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","createDocumentFragment","importNode","documentMode","hooks","createHTMLDocument","PARSER_MEDIA_TYPE","MUSTACHE_EXPR$1","ERB_EXPR$1","TMPLIT_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","CUSTOM_ELEMENT$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","MAX_NESTING_DEPTH","formElement","isRegexOrFunction","testValue","_parseConfig","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","namespaceURI","parentTagName","_forceRemove","removeChild","outerHTML","_removeAttribute","getAttributeNode","_initDocument","dirty","leadingWhitespace","dirtyPayload","parseFromString","createDocument","insertBefore","createTextNode","childNodes","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","__depth","__removalCount","hasChildNodes","_isNode","_executeHook","entryPoint","hook","_sanitizeElements","allowedTags","firstElementChild","_basicCustomElementTest","childCount","childClone","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","sanitize","importedNode","oldNode","returnNode","toStaticHTML","nodeIterator","shadowroot","shadowrootmod","serializedHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","purify","EvalError","SyntaxError","URIError","ReflectOwnKeys","R","ReflectApply","receiver","ProcessEmitWarning","NumberIsNaN","EventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","events","newListener","emitter","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","wrapListener","setMaxListeners","getMaxListeners","doError","er","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","isCallable","forEachArray","forEachString","forEachObject","ERROR_MESSAGE","funcType","concatty","slicy","arrLike","joiny","joiner","bound","binder","boundLength","boundArgs","Empty","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","DataView","decodeURI","decodeURIComponent","encodeURI","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","hasPropertyDescriptors","hasArrayLengthDefineBug","$Object","origSymbol","hasSymbolSham","sym","symObj","symVal","syms","toStringTag","$hasOwn","rIsWhitespace","rQuot","rNewline","rCr","rSlash","rLineSep","rParagraphSep","cleanTripleStache","tagChange","tags","scan","IN_TEXT","IN_TAG_TYPE","IN_TAG","tagType","seenTag","lineStart","otag","ctag","addBuf","lineIsWhitespace","isAllWhitespace","filterLine","haveSeenTag","noNewLine","changeDelimiters","closeIndex","allowedInSuper","buildTree","customTags","instructions","opener","tail","isOpener","isCloser","stringifySubstitutions","esc","stringifyPartials","codeObj","wrapMain","serialNo","chooseMethod","createPartial","tripleStache","generate","tree","walk","makeTemplate","makePartials","codegen","inPartial","nodelist","sectionTags","disableLambda","modelGet","findInScope","doModelGet","createSpecializedPartial","stackSubs","stackPartials","stackText","PartialTemplate","Substitutions","partial","subsText","compiler","hoganEscape","coerceToString","ri","ep","symbol","activeSub","section","inverted","pass","returnFound","mv","oldTags","ct","textSource","rAmp","rLt","rGt","rApos","hChars","validateParams","request","PNGlib","Identicon","background","foreground","hsl2rgb","isSvg","Svg","baseMargin","cell","fg","rectangle","rectangles","getDump","getBase64","btoa","offs","byte2","byte4","byte2lsb","pix_size","data_size","ihdr_offs","ihdr_size","plte_offs","plte_size","trns_offs","trns_size","idat_offs","idat_size","iend_offs","iend_size","buffer_size","palette","pindex","_crc32","bits","ndx","c1","c2","c3","e1","e2","e3","e4","ch","BASE","NMAX","s1","s2","crc32","png","crc","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","ctor","superCtor","super_","TempCtor","hasToStringTag","callBound","$toString","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","objectClass","fnClass","genClass","ddaClass","ddaClass2","ddaClass3","isIE68","isDDA","strClass","GeneratorFunction","isFnRegex","getGeneratorFunc","generatorFunc","getPolyfill","shim","polyfill","whichTypedArray","protocolAndDomainRE","localhostDomainRE","nonLocalhostDomainRE","everythingAfterProtocol","VERSION_FULL","CryptoJS","lib","mixIn","$super","WordArray","words","sigBytes","enc","Hex","Latin1","Utf8","unescape","BufferedBlockAlgorithm","_data","_nDataBytes","_append","_process","blockSize","_minBufferSize","_doProcessBlock","Hasher","_doReset","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","x64","Word","high","low","toX32","Cipher","Base64","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","keySize","ivSize","encrypt","decrypt","StreamCipher","_iv","_prevBlock","BlockCipherMode","Encryptor","Decryptor","_cipher","processBlock","encryptBlock","decryptBlock","CBC","pad","Pkcs7","unpad","BlockCipher","iv","_mode","CipherParams","OpenSSL","ciphertext","salt","SerializableCipher","algorithm","kdf","compute","PasswordBasedCipher","B","C","E","F","AES","_nRounds","_keySchedule","_invKeySchedule","_doCryptBlock","_lBlock","_rBlock","DES","_subKeys","_invSubKeys","TripleDES","_des1","_des2","_des3","_map","MD5","_hash","HmacMD5","SHA1","HmacSHA1","SHA256","HmacSHA256","SHA224","HmacSHA224","T","ea","SHA512","G","I","J","X","K","Y","L","N","O","P","U","S","V","W","fa","da","HmacSHA512","SHA384","HmacSHA384","RIPEMD160","HmacRIPEMD160","_hasher","_oKey","_iKey","PBKDF2","hasher","iterations","dbits","b64map","b64pad","hex2b64","b64tohex","int2char","b64toBA","canary","j_lm","BigInteger","fromNumber","nbi","am1","am2","am3","appName","DB","DM","DV","BI_FP","FV","F1","F2","rr","vv","BI_RM","BI_RC","intAt","bnpCopyTo","bnpFromInt","nbv","fromInt","bnpFromString","fromRadix","ZERO","subTo","bnpClamp","bnToString","toRadix","bnNegate","bnAbs","bnCompareTo","nbits","bnBitLength","bnpDLShiftTo","bnpDRShiftTo","bnpLShiftTo","bnpRShiftTo","bnpSubTo","bnpMultiplyTo","bnpSquareTo","bnpDivRemTo","lShiftTo","dlShiftTo","compareTo","ONE","drShiftTo","rShiftTo","bnMod","divRemTo","Classic","cConvert","cRevert","cReduce","cMulTo","multiplyTo","cSqrTo","squareTo","bnpInvDigit","Montgomery","mp","invDigit","mpl","mph","um","mt2","montConvert","montRevert","montReduce","montSqrTo","montMulTo","bnpIsEven","bnpExp","sqrTo","mulTo","revert","bnModPowInt","isEven","bnClone","bnIntValue","bnByteValue","bnShortValue","bnpChunkSize","bnSigNum","bnpToRadix","signum","chunkSize","intValue","bnpFromRadix","dMultiply","dAddOffset","bnpFromNumber","testBit","bitwiseTo","shiftLeft","op_or","isProbablePrime","bitLength","nextBytes","bnToByteArray","bnEquals","bnMin","bnMax","bnpBitwiseTo","op_and","bnAnd","bnOr","op_xor","bnXor","op_andnot","bnAndNot","bnNot","bnShiftLeft","bnShiftRight","lbit","bnGetLowestSetBit","cbit","bnBitCount","bnTestBit","bnpChangeBit","bnSetBit","changeBit","bnClearBit","bnFlipBit","bnpAddTo","bnAdd","addTo","bnSubtract","bnMultiply","bnSquare","bnDivide","bnRemainder","bnDivideAndRemainder","bnpDMultiply","bnpDAddOffset","NullExp","nNop","nMulTo","nSqrTo","bnPow","bnpMultiplyLowerTo","bnpMultiplyUpperTo","Barrett","r2","q3","mu","divide","barrettConvert","barrettRevert","barrettReduce","multiplyUpperTo","multiplyLowerTo","barrettSqrTo","barrettMulTo","bnModPow","bnGCD","getLowestSetBit","bnpModInt","bnModInverse","modPowInt","lowprimes","lplim","bnIsProbablePrime","modInt","millerRabin","bnpMillerRabin","shiftRight","modPow","Arcfour","ARC4init","ARC4next","prng_newstate","byteValue","shortValue","and","or","andNot","bitCount","setBit","clearBit","flipBit","remainder","divideAndRemainder","modInverse","square","rng_state","rng_pool","rng_pptr","rng_psize","rng_seed_int","rng_seed_time","crypto","msCrypto","getRandomValues","ua","appVersion","rng_get_byte","rng_get_bytes","SecureRandom","parseBigInt","RSAKey","dmp1","dmq1","coeff","RSASetPublic","isPublic","isPrivate","RSADoPublic","RSASetPrivate","RSASetPrivateEx","RSAGenerate","RSADoPrivate","ECFieldElementFp","feFpEquals","feFpToBigInteger","feFpNegate","feFpAdd","toBigInteger","feFpSubtract","feFpMultiply","feFpSquare","feFpDivide","ECPointFp","curve","zinv","pointFpGetX","fromBigInteger","pointFpGetY","pointFpEquals","isInfinity","pointFpIsInfinity","pointFpNegate","pointFpAdd","twice","getInfinity","pointFpTwice","pointFpMultiply","pointFpMultiplyTwo","ECCurveFp","infinity","curveFpGetQ","curveFpGetA","curveFpGetB","curveFpEquals","curveFpGetInfinity","curveFpFromBigInteger","curveFpDecodePointHex","getA","getB","doPublic","setPublic","doPrivate","setPrivate","setPrivateEx","getX","getY","multiplyTwo","getQ","decodePointHex","getByteLength","getEncoded","toByteArrayUnsigned","decodeFrom","decodeFromHex","add2D","twice2D","multiply2D","isOnCurve","jsonParse","KJUR","asn1","ASN1Util","integerToByteHex","bigIntToMinTwosComplementsHex","twoscompl","getPEMStringFromHex","hextopem","ASN1Object","DERBoolean","DERInteger","DERBitString","DEROctetString","DERNull","DERObjectIdentifier","DEREnumerated","DERUTF8String","DERNumericString","DERPrintableString","DERTeletexString","DERIA5String","DERUTCTime","DERGeneralizedTime","DERVisibleString","DERBMPString","DERSequence","DERSet","DERTaggedObject","explicit","jsonToASN1HEX","tohex","oidHexToInt","oidIntToHex","getLengthHexFromValue","hV","hTLV","isModified","getFreshValueHex","hL","hT","getEncodedHex","getValueHex","setByParam","tlv","DERAbstractString","superclass","getString","setString","utf8tohex","setStringHex","extendClass","DERAbstractTime","localDateToUTC","formatDate","zeroPadding","setByDate","setByDateValue","DERAbstractStructured","setByASN1ObjectArray","asn1Array","appendASN1Object","setByBigInteger","bigint","setByInteger","setValueHex","setHexValueIncludingUnusedBits","setUnusedBitsAndHexValue","setByBinaryString","setByBooleanArray","newFalseArray","bin","setValueOidString","oidtohex","setValueName","x509","OID","name2oid","setValueNameOrOid","oid","stohex","millis","sortFlag","sortflag","ASN1HEX","getV","isASN1HEX","isExplicit","asn1Object","setASN1Object","tage","tagi","utf8tob64u","b64utoutf8","stoBA","BAtos","BAtohex","stob64","stob64u","b64tob64u","b64utos","b64utob64","hextob64u","b64utohex","utf8tob64","uricmptohex","encodeURIComponentAll","b64toutf8","hextouricmp","hextoutf8","iso88591hextoutf8","iso88591hextoutf8hex","hextorstr","rstrtohex","hextob64","hextob64nl","foldnl","b64nltohex","b64topem","pemtohex","pemtob64","hextoArrayBuffer","setUint8","ArrayBuffertohex","getUint8","zulutomsec","timetogen","msectozulu","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","zulutosec","zulutodate","datetozulu","ipv6tohex","hextoipv6","hextoip","ipprefixlen","iptohex","ipnetmask","ucs2hextoutf8","newline_toUnix","newline_toDos","ishex","isBase64URLDot","hextoposhex","intarystrtohex","getLblen","getL","getVblen","getVidx","getTLV","getTLVblen","getNextSiblingIdx","getChildIdx","getNthChildIdx","getIdxbyList","getIdxbyListEx","isContextTag","getTLVbyList","getTLVbyListEx","getVbyList","getVbyListEx","getInt","bitstrtoint","getOID","hextooid","getOIDName","oid2name","hextooidstr","dump","ommit_long_octet","oidname","x509ExtName","bool","bitstr","bitstrtobinstr","octstr","checkStrictDER","lang","isHex","Certificate","TBSCertificate","AlgorithmIdentifier","sign","sigalg","tbsobj","Signature","alg","cakey","updateHex","sighex","getPEM","Time","X500Name","Extensions","SubjectPublicKeyInfo","serial","issuer","notbefore","notafter","subject","KEYUTIL","getKey","sbjpubkey","aParam","extname","extn","PrivateExtension","SubjectKeyIdentifier","KeyUsage","SubjectAltName","IssuerAltName","BasicConstraints","NameConstraints","CRLDistributionPoints","CertificatePolicies","PolicyMappings","PolicyConstraints","InhibitAnyPolicy","AuthorityKeyIdentifier","ExtKeyUsage","AuthorityInfoAccess","CRLNumber","CRLReason","OCSPNonce","OCSPNoCheck","AdobeTimeStamp","SubjectDirectoryAttributes","Extension","getExtnValueHex","critical","digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly","getBinValue","asn1ExtnValue","namearraytobinstr","cA","pathLen","setByDPArray","DistributionPoint","setByOneURI","fulluri","DistributionPointName","asn1DP","dpobj","dpname","full","asn1Obj","asn1V","GeneralNames","PolicyInformation","PolicyQualifierInfo","policyoid","UserNotice","cps","unotice","DisplayText","NoticeReference","noticeref","exptext","org","noticenum","seq","reqexp","inhibit","skip","GeneralSubtree","permit","GeneralName","setPurposeArray","Util","isKey","asn1KID","asn1CertIssuer","asn1CertSN","dn","setKIDByParam","getKeyID","setCertIssuerByParam","ldapstr","certsubject","certissuer","setCertSNByParam","X509","readCertPEM","getSerialNumberHex","kid","sn","issuersn","setAccessDescriptionArray","ocsp","caissuer","setNameArray","utf8str","gentime","prnstr","CRL","TBSCertList","getRevCertSequence","revcert","thisupdate","nextupdate","CRLEntry","setCertSerial","setRevocationDate","TLV","reqauth","paramArray","sRule","RDN","setByString","setByLdapString","ldapToCompat","setByObject","getIssuerHex","getSubjectHex","compatToLDAP","onelineToLDAP","ldapToOneline","AttributeTypeAndValue","addByMultiValuedString","addByString","parseString","sType","sValue","dsType","isMail","isPrintable","ds","attrTypeAndValueStr","setByAttrTypeAndValueStr","_getDsType","getValueObj","atype2obj","ECDSA","DSA","getASN1Object","asn1AlgId","asn1SubjPKey","setPubKey","curveName","asn1params","pubKeyHex","setTimeParams","timeParams","getType","Time_bak","nameAlg","asn1Alg","asn1Params","paramEmpty","PSSNAME2ASN1TLV","name2obj","paramempty","SHAwithRSAandMGF1","SHA256withRSAandMGF1","SHA384withRSAandMGF1","SHA512withRSAandMGF1","OtherName","rfc822","ldapdn","certsubj","ip","setByParamArray","name2oidList","sha1","sha256","sha384","sha512","sha224","md5","md2","ripemd160","hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512","MD2withRSA","MD4withRSA","MD5withRSA","SHA1withRSA","rsaPSS","SHA224withRSA","SHA256withRSA","SHA384withRSA","SHA512withRSA","SHA1withECDSA","SHA224withECDSA","SHA256withECDSA","SHA384withECDSA","SHA512withECDSA","dsa","SHA1withDSA","SHA224withDSA","SHA256withDSA","rsaEncryption","commonName","countryName","localityName","stateOrProvinceName","streetAddress","organizationName","organizationalUnitName","domainComponent","userId","surname","givenName","distinguishedName","emailAddress","businessCategory","postalCode","uniqueIdentifier","organizationIdentifier","jurisdictionOfIncorporationL","jurisdictionOfIncorporationSP","jurisdictionOfIncorporationC","subjectDirectoryAttributes","subjectKeyIdentifier","keyUsage","subjectAltName","issuerAltName","basicConstraints","cRLNumber","cRLReason","nameConstraints","cRLDistributionPoints","certificatePolicies","anyPolicy","policyMappings","authorityKeyIdentifier","policyConstraints","extKeyUsage","inhibitAnyPolicy","authorityInfoAccess","ocspBasic","ocspNonce","ocspNoCheck","caIssuers","anyExtendedKeyUsage","serverAuth","clientAuth","codeSigning","emailProtection","timeStamping","ocspSigning","smtpUTF8Mailbox","dateOfBirth","placeOfBirth","gender","countryOfCitizenship","countryOfResidence","ecPublicKey","secp256r1","secp256k1","secp384r1","secp521r1","pkcs5PBES2","pkcs5PBKDF2","tstinfo","signingCertificate","timeStampToken","signaturePolicyIdentifier","etsArchiveTimeStamp","signingCertificateV2","etsArchiveTimeStampV2","extensionRequest","contentType","messageDigest","signingTime","counterSignature","archiveTimeStampV3","pdfRevocationInfoArchival","adobeTimeStamp","smimeMailboxLegacy","smimeMailboxMulti","smimeMailboxStrict","smimeOrganizationLegacy","smimeOrganizationMulti","smimeOrganizationStrict","smimeSponsorLegacy","smimeSponsorMulti","smimeSponsorStrict","smimeIndividualLegacy","smimeIndividualMulti","smimeIndividualStrict","atype2oidList","CN","ST","OU","STREET","DC","UID","SN","GN","DN","serialNumber","objCache","registerOIDs","checkOIDs","oid2atype","X509Util","newCertPEM","cms","Attribute","typeOid","getValueArray","ContentType","MessageDigest","SigningTime","SigningCertificate","ESSCertID","hasis","IssuerSerial","getCertHash","hashHex","SigningCertificateV2","ESSCertIDv2","getIssuer","SignerIdentifier","IssuerAndSerialNumber","IssuerAndSerialName","skid","getExtSubjectKeyIdentifier","AttributeList","cades","SignaturePolicyIdentifier","SignatureTimeStamp","SignerInfo","EncapsulatedContentInfo","SignedData","sattrs","signkey","hashalg","sigalgfield","uattrs","isDetached","ContentInfo","CertificateSet","RevocationInfoChoices","checkAndFixParam","_setDigestAlgs","_setContentTypeByEContent","_setMessageDigestByEContent","_setSignerInfoVersion","_setSignedDataVersion","sinfos","hashalgs","econtent","_getAttrParamByName","_getSignedDataVersion","revinfos","getEncodedHexPrepare","fixed","certs","getContentInfo","getContentInfoEncodedHex","RevocationInfoChoice","crl","OtherRevocationFormat","CMSUtil","newSignedData","verifySignedData","certsIdx","revinfosIdx","signerinfosIdx","signerInfoIdxList","signerInfos","signerid_issuer1","signerid_serial1","idxSignedAttrs","sigval","signedAttrIdxList","saSigningTime","saMessageDigest","cmsType","certkeys","readCertHex","getPublicKey","cccc","cccci","certkey_idx","verifyDetail","validMessageDigest","validSignatureValue","signedattrshex","verify","validSignatureValue_isValid","CMSParser","getCMSSignedData","getSignedData","getHashAlgArray","getEContent","getCertificateSet","getSignerInfos","getAlgorithmIdentifierName","getSignerInfo","getIssuerAndSerialNumber","getAttributeList","getSignerIdentifier","getX500Name","valhex","setContentType","setMessageDigest","setSigningTime","setSigningCertificate","setSigningCertificateV2","setSignaturePolicyIdentifier","getESSCertID","polhex","getESSCertIDv2","getIssuerSerial","getGeneralNames","tsp","TimeStampToken","TSTInfo","MessageImprint","Accuracy","dVersion","dPolicy","dMessageImprint","dSerial","dGenTime","dAccuracy","dOrdering","dNonce","dTsa","policy","messageImprint","genTime","accuracy","ordering","nonce","tsa","micros","TimeStampReq","certreq","TimeStampResp","PKIStatusInfo","tst","statusinfo","PKIStatus","PKIFreeText","PKIFailureInfo","statusstr","failinfo","granted","grantedWithMods","rejection","waiting","revocationWarning","revocationNotification","badAlg","badRequest","badDataFormat","timeNotAvailable","unacceptedPolicy","unacceptedExtension","addInfoNotAvailable","systemFailure","AbstractTSAAdapter","getTSTHex","SimpleTSAAdapter","FixedTSAAdapter","TSPUtil","newTimeStampToken","parseTimeStampReq","TSPParser","getTimeStampReq","parseMessageImprint","getMessageImprint","getResponse","getPKIStatusInfo","getToken","setTSTInfo","getTSTInfo","getAccuracy","pGeneralNames","getExtParamArray","getPKIFreeText","getPKIFailureInfo","SignaturePolicyId","OtherHashAlgAndValue","OtherHashValue","CompleteCertificateRefs","OtherCertID","_isHex","OtherHash","CAdESUtil","parseSignedDataForAddingUnsigned","parseSignerInfoForAddingUnsigned","si","digalg","dCMSVersion","dSignerIdentifier","dDigestAlgorithm","dSignedAttrs","dSigAlg","dSig","dUnsignedAttrs","csr","CertificationRequest","CertificationRequestInfo","sbjprvkey","attrs","extreq","CSRUtil","newCSRPEM","getParam","tbs","verifySignature","DEFAULT_HASH","OCSPResponse","ResponseBytes","_getStatusCode","resstatus","BasicOCSPResponse","restype","ResponderID","_SingleResponseList","SingleResponseList","_ResponseData","ResponseData","tbsresp","reskey","respid","prodat","getSubject","SingleResponse","CertID","CertStatus","certid","setByValue","issname","isskey","sbjsn","setByCert","issuerCert","subjectCert","getParamByCerts","getPublicKeyHex","Request","dReqCert","dExt","TBSRequest","dRequestorName","dRequestList","dRequestExt","setRequestListByParam","reqList","OCSPRequest","dTbsRequest","dOptionalSignature","OCSPUtil","getRequestHex","getOCSPResponseInfo","responseStatus","certStatus","revocationTime","thisUpdate","nextUpdate","OCSPParser","getOCSPRequest","getTBSRequest","getRequestList","getRequest","getCertID","getOCSPResponse","getResponseBytes","getBasicOCSPResponse","getResponseData","getResponderID","getSingleResponseList","getSingleResponse","getCertStatus","isBase64","isBase64URL","isIntegerArray","isIA5","strdiffidx","strpad","inttohex","inttobitstr","binstrtobitstr","aryval","DIGESTINFOHEAD","DEFAULTPROVIDER","hmacmd5","hmacsha1","hmacsha224","hmacsha256","hmacsha384","hmacsha512","hmacripemd160","RIPEMD160withRSA","MD5withECDSA","RIPEMD160withECDSA","MD5withRSAandMGF1","SHA1withRSAandMGF1","SHA224withRSAandMGF1","RIPEMD160withRSAandMGF1","CRYPTOJSMESSAGEDIGESTNAME","getDigestInfoHex","getPaddedDigestInfoHex","hashString","digestString","digestHex","sha256Hex","sha512Hex","prov","SECURERANDOMGEN","getRandomHexOfNbytes","getRandomBigIntegerOfNbytes","getRandomHexOfNbits","getRandomBigIntegerOfNbits","getRandomBigIntegerZeroToMax","getRandomBigIntegerMinToMax","setAlgAndProvider","getCanonicalAlgName","updateString","digest","sjcl","codec","toBits","fromBits","algName","provName","getHashLength","HASHLENGTH","Mac","algProv","doFinal","doFinalString","doFinalHex","setPassword","utf8","rstr","b64u","_setAlgNames","mdAlgName","pubkeyAlgName","_zeroPaddingOfSignature","prvKey","pubKey","sHashHex","ecprvhex","eccurvename","prv","hSign","signWithMessageHashPSS","pssSaltLen","signWithMessageHash","signString","signHex","ecpubhex","pub","verifyWithMessageHashPSS","verifyWithMessageHash","algProvName","initParams","psssaltlen","prvkeypem","prvkeypas","oidhex2name","ECParameterDB","getName","getBigRandom","setNamedCurve","ecparams","getByName","prvKeyHex","setPrivateKeyHex","setPublicKeyHex","getPublicKeyXYHex","keycharlen","getShortNISTPCurveName","generateKeyPairHex","generatePublicKeyHex","biRSSigToASN1Sig","fromByteArrayUnsigned","serializeSig","verifyHex","parseSigHex","verifyRaw","Bitcoin","parseSig","toByteArraySigned","parseSigCompact","readPKCS5PrvKeyHex","readPKCS8PrvKeyHex","readPKCS8PubKeyHex","readCertPubKeyHex","parseSigHexInHexRS","asn1SigToConcatSig","concatSigToASN1Sig","hexRSSigToASN1Sig","regist","setPrivateHex","setPublicHex","parseASN1Signature","proc","eproc","keylen","ivlen","cipher","ivsalt","keyhex","ivhex","parsePKCS5PEM","getKeyAndUnusedIvByPasscodeAndIvsalt","decryptKeyB64","getDecryptedKeyHex","getEncryptedPKCS5PEMFromPrvKeyHex","getEncryptedPKCS8PEM","getEncryptedPKCS8Hex","plain","initPBES2Param","encryptPBES2Param","generatePBES2ASN1Param","encalg","prf","enciv","getDKFromPBES2Param","parseHexOfEncryptedPKCS8","encryptionSchemeAlg","encryptionSchemeIV","pbkdf2Salt","pbkdf2Iter","getPBKDF2KeyHexFromParam","_getPlainPKCS8HexFromEncryptedPKCS8PEM","parsePBES2","getPlainHexFromEncryptedPKCS8PEM","getKeyFromEncryptedPKCS8PEM","getKeyFromPlainPrivatePKCS8Hex","parsePlainPrivatePKCS8Hex","algoid","algparam","keyidx","getKeyFromPlainPrivatePKCS8PEM","_getKeyFromPublicPKCS8Hex","parsePublicRawRSAKeyHex","parsePublicPKCS8Hex","xy","kty","dp","dq","co","qi","crv","getPublicKeyFromCertHex","getPublicKeyFromCertPEM","generateKeypair","prvKeyObj","pubKeyObj","passcode","getKeyFromCSRPEM","getKeyFromCSRHex","parseCSRHex","p8pubkeyhex","getJWK","jws","JWS","getJWKthumbprint","x5c","x5t","getJWKFromKey","getPosArrayOfChildrenFromHex","getHexValueArrayOfChildrenFromHex","readPrivateKeyFromPEMString","readPKCS5PubKeyHex","pss_mgf1_str","_rsasign_getAlgNameAndHashFromHexDisgestInfo","HEX2STAG","foffset","aExtInfo","getVersion","getSignatureAlgorithmField","getIssuerString","getSubjectString","getNotBefore","getNotAfter","getSPKI","getSPKIValue","getPublicKeyIdx","getPublicKeyContentIdx","getSignatureAlgorithmName","getSignatureValueHex","parseExt","vidx","getExtInfo","getCriticalExtV","getExtBasicConstraints","getExtNameConstraints","getGeneralSubtree","getGeneralName","getExtKeyUsage","getExtKeyUsageString","getExtKeyUsageBin","KEYUSAGE_NAME","getExtAuthorityKeyIdentifier","getExtExtKeyUsage","getExtExtKeyUsageName","getExtSubjectAltName","getExtIssuerAltName","getOtherName","getExtSubjectAltName2","hex2dn","getExtCRLDistributionPoints","getDistributionPoint","getDistributionPointName","getExtCRLDistributionPointsURI","getExtAIAInfo","getExtAuthorityInfoAccess","getExtCertificatePolicies","getPolicyInformation","getPolicyQualifierInfo","getUserNotice","_asn1ToUnotice","_asn1ToNoticeRef","asn1ToDisplayText","_asn1ToNoticeNum","getDisplayText","ia5str","visstr","bmpstr","getExtPolicyMappings","getExtPolicyConstraints","getExtInhibitAnyPolicy","getExtCRLNumber","getExtCRLReason","getExtOcspNonce","getExtOcspNoCheck","getExtAdobeTimeStamp","getExtSubjectDirectoryAttributes","numstr","telstr","Erorr","getX500NameRule","getAttrTypeAndValue","getRDN","getX500NameArray","dnarraytostr","canon","c14nRDNArray","dncanon","dnhex","tbshex","nodnarray","getExtParam","EXT_PARSER","findExt","updateExtCDPFullURI","updateExtAIAOCSP","updateExtAIACAIssuer","setCanonicalizedDN","getInfo","ac","ab","dname","signPSS","verifyPSS","SALT_LEN_HLEN","SALT_LEN_MAX","SALT_LEN_RECOVER","registExtParser","hex2rdn","hex2attrTypeValue","getPublicKeyInfoPropOfCertPEM","X509CRL","posSigAlg","posRevCert","_setPos","getThisUpdate","getNextUpdate","getRevCertArray","getRevCert","findRevCert","findRevCertBySN","isSafeJSONString","parseJWS","parsedJWS","sigvalH","headB64U","payloadB64U","sigvalB64U","sigvalBI","headS","payloadS","readSafeJSONString","jwsalg2sigalg","headerObj","payloadObj","headerPP","payloadPP","sigHex","verifyJWT","inArray","includedArray","iss","aud","IntDate","getNow","verifyAt","nbf","iat","jti","HS256","HS384","HS512","RS256","RS384","RS512","ES256","ES384","ES512","PS256","PS384","PS512","getEncodedSignatureValueFromJWS","getZulu","intDate2UTCString","intDate2Zulu","JWSJS","aHeader","sPayload","aSignature","initWithJWS","addSignature","verifyAll","verifyNth","readJWSJS","payload","signatures","getJSON","timeogen","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","arrayEach","iteratee","arrayFilter","resIndex","baseIndexOf","arrayIncludes","arrayIncludesWith","baseTimes","isArguments","isIndex","isTypedArray","objectProto","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","arrayMap","arrayReduce","accumulator","initAccum","arraySome","asciiToArray","reAsciiWord","asciiWords","baseAssignValue","eq","assignMergeValue","assignValue","objValue","assocIndexOf","copyObject","baseAssign","keysIn","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","isFull","isFunc","subValue","keysFunc","objectCreate","baseCreate","baseUnary","cacheHas","LARGE_ARRAY_SIZE","baseDifference","isCommon","valuesLength","outer","valuesIndex","baseFindIndex","fromIndex","fromRight","isFlattenable","baseFlatten","isStrict","createBaseFor","baseFor","baseForOwn","castPath","toKey","baseGet","baseGetAllKeys","symbolsFunc","getRawTag","nullTag","undefinedTag","symToStringTag","baseGetTag","baseHas","baseHasIn","baseIsNaN","strictIndexOf","isObjectLike","baseIsArguments","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","COMPARE_PARTIAL_FLAG","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsMap","COMPARE_UNORDERED_FLAG","baseIsMatch","matchData","noCustomizer","srcValue","isMasked","toSource","reRegExpChar","reIsHostCtor","funcProto","funcToString","reIsNative","baseIsNative","pattern","baseIsSet","isLength","typedArrayTags","baseIsTypedArray","baseMatches","baseMatchesProperty","identity","baseIteratee","isPrototype","nativeKeys","baseKeys","nativeKeysIn","baseKeysIn","isProto","getMatchData","matchesStrictComparable","hasIn","isStrictComparable","baseMergeDeep","safeGet","baseMerge","srcIndex","cloneTypedArray","isArrayLikeObject","isPlainObject","toPlainObject","mergeFunc","isTyped","basePickBy","basePick","paths","baseSet","baseProperty","basePropertyDeep","basePropertyOf","overRest","setToString","baseRest","lastIndex","nested","constant","baseSetToString","baseSlice","isSymbol","INFINITY","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","baseTrim","createSet","setToArray","baseUniq","seen","seenIndex","baseValues","baseXor","arrays","othIndex","castFunction","castSlice","cloneArrayBuffer","arrayBuffer","freeExports","freeModule","moduleExports","cloneDataView","dataView","reFlags","cloneRegExp","symbolValueOf","cloneSymbol","typedArray","getSymbols","getSymbolsIn","coreJsData","isIterateeCall","createAssigner","assigner","sources","guard","iterable","hasUnicode","stringToArray","createCaseFirst","methodName","strSymbols","trailing","deburr","rsApos","reApos","createCompounder","isArrayLike","createFind","findIndexFunc","collection","noop","deburredLetters","deburrLetter","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","mapToArray","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","flatRest","freeGlobal","isKeyable","getMapData","overArg","getPrototype","nativeObjectToString","unmasked","stubArray","nativeGetSymbols","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasPath","hasFunc","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","reHasUnicodeWord","hasUnicodeWord","nativeCreate","HASH_UNDEFINED","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","IE_PROTO","arrayProto","memoize","MAX_MEMOIZE_SIZE","memoizeCapped","freeProcess","nodeUtil","binding","nativeMax","otherArgs","freeSelf","shortOut","HOT_COUNT","HOT_SPAN","nativeNow","lastCalled","pairs","unicodeToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsBreakRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsOrdLower","rsOrdUpper","rsEmoji","reUnicodeWord","unicodeWords","upperFirst","capitalize","toNumber","FUNC_ERROR_TEXT","nativeMin","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","flush","debounced","isInvoking","reLatin","reComboMark","difference","toInteger","findLastIndex","findLast","flattenDeep","forIn","defaultValue","stubFalse","nativeIsBuffer","asyncTag","proxyTag","nodeIsMap","objectCtorString","nodeIsSet","nodeIsTypedArray","CORE_ERROR_TEXT","INVALID_TEMPL_VAR_ERROR_TEXT","PLACEHOLDER","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","MAX_INTEGER","NAN","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","domExcTag","weakSetTag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reHasRegExpChar","reWrapComment","reWrapDetails","reSplitDetails","reForbiddenIdentifierChars","reEsTemplate","reIsBadHex","reIsBinary","reIsOctal","reNoMatch","reUnescapedString","contextProps","templateCounter","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeParseInt","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","nodeIsRegExp","arrayAggregator","setter","arrayEachRight","arrayEvery","arrayReduceRight","asciiSize","baseFindKey","eachFunc","baseIndexOfWith","baseMean","baseSum","baseReduce","baseSortBy","comparer","baseToPairs","charsStartIndex","chrSymbols","charsEndIndex","countHolders","escapeHtmlChar","escapeStringChar","iteratorToArray","replaceHolders","setToPairs","strictLastIndexOf","stringSize","unicodeSize","unescapeHtmlChar","runInContext","pick","idCounter","oldDash","symIterator","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeIsFinite","nativeJoin","nativeParseInt","nativeRandom","nativeReverse","metaMap","realNames","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","lazyClone","lazyReverse","lazyValue","isRight","getView","iteratees","iterLength","takeCount","baseWrapperValue","iterIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","baseAggregator","baseEach","baseAt","lower","upper","baseConforms","baseConformsTo","baseDelay","templateSettings","createBaseEach","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","baseFill","toLength","baseFilter","baseForRight","baseFunctions","baseGt","baseInRange","baseIntersection","caches","baseInverter","baseInvoke","baseIsArrayBuffer","baseIsDate","baseIsRegExp","baseLt","baseMap","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePullAll","basePullAt","previous","baseUnset","baseRange","baseRepeat","baseSample","baseSampleSize","baseSetData","baseShuffle","baseSome","baseSortedIndex","retHighest","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseUpdate","updater","baseWhile","isDrop","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castRest","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","composeArgs","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","createAggregator","initializer","createBind","isBind","createCtor","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFlow","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","partialsRight","holdersRight","argPos","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","createOver","arrayFunc","createPadding","charsLength","createRange","toFinite","createRelationalOperation","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","newData","setData","setWrapToString","createRound","precision","pair","createToPairs","createWrap","mergeData","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","otherFunc","transforms","getWrapDetails","insertWrapDetails","isMaskable","srcBitmask","newBitmask","isCombo","oldArray","updateWrapDetails","rand","differenceBy","differenceWith","drop","dropRight","dropRightWhile","dropWhile","flattenDepth","fromPairs","intersection","mapped","intersectionBy","intersectionWith","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniqBy","uniqWith","unzip","unzipWith","without","xorBy","xorWith","zip","zipObject","zipObjectDeep","zipWith","chain","interceptor","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","toArray","wrapperToIterator","wrapperPlant","wrapperReverse","wrapperValue","countBy","flatMap","flatMapDeep","flatMapDepth","forEachRight","invokeMap","keyBy","orderBy","partition","reduceRight","sample","sampleSize","shuffle","after","before","bindKey","curry","curryRight","defer","memoized","Cache","overArgs","funcsLength","partialRight","rearg","spread","unary","wrap","castArray","cloneWith","cloneDeepWith","conformsTo","gt","gte","isBoolean","isEqualWith","isError","isMatch","isMatchWith","isNative","isNull","isNil","isSafeInteger","isUndefined","isWeakMap","isWeakSet","lt","lte","toSafeInteger","assignIn","assignInWith","assignWith","propsIndex","propsLength","defaultsDeep","mergeWith","findKey","findLastKey","forInRight","forOwn","forOwnRight","functionsIn","invertBy","mapKeys","mapValues","omit","omitBy","pickBy","setWith","toPairs","toPairsIn","isArrLike","unset","updateWith","valuesIn","inRange","floating","temp","camelCase","escapeRegExp","kebabCase","lowerCase","lowerFirst","strLength","padEnd","padStart","radix","snakeCase","startCase","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","evaluate","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","attempt","toLower","toUpper","trimEnd","trimStart","truncate","omission","newEnd","upperCase","bindAll","methodNames","cond","conforms","defaultTo","flow","flowRight","matchesProperty","methodOf","mixin","noConflict","nthArg","over","overEvery","overSome","propertyOf","range","rangeRight","stubObject","stubString","stubTrue","toPath","uniqueId","augend","addend","dividend","divisor","maxBy","mean","meanBy","minBy","multiplicand","minuend","subtrahend","sum","sumBy","entriesIn","extendWith","eachRight","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","Yallist","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","LRUCache","lc","stale","dispose","noDisposeOnSet","updateAgeOnGet","mL","allowStale","mA","lengthCalculator","lC","hit","itemCount","rforEach","thisp","walker","forEachStep","isStale","dumpLru","del","Entry","peek","expiresAt","prune","doUse","unshiftNode","removeNode","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readBigInt64LE","readBigInt64BE","writeBigUInt64LE","writeBigUInt64BE","writeBigInt64LE","writeBigInt64BE","addNumericalSeparator","checkBounds","ERR_OUT_OF_RANGE","ERR_BUFFER_OUT_OF_BOUNDS","received","BufferBigIntNotDefined","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","theKeys","skipProto","skipConstructor","origKeys","originalKeys","keysWorksWithArguments","objectKeys","toObject","$push","$propIsEnumerable","originalGetSymbols","source1","propValue","lacksProperEnumerationOrder","letters","assignHasPendingExceptions","preventExtensions","thrower","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","Item","nextTick","browser","env","argv","cwd","chdir","umask","percentTwenties","Format","RFC1738","RFC3986","formatters","formats","utils","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decoder","decode","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","$0","numberStr","parseArrayValue","isoSentinel","parseValues","cleanStr","skipIndex","bracketEqualsPos","maybeMap","encodedVal","combine","parseObject","valuesParsed","cleanRoot","parseKeys","givenKey","brackets","segment","normalizeParseOptions","tempObj","getSideChannel","arrayPrefixGenerators","indices","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","encode","encoder","encodeValuesOnly","serializeDate","skipNulls","isNonNullishPrimitive","sentinel","generateArrayPrefix","commaRoundTrip","sideChannel","tmpSc","findFlag","keyValue","objKeys","adjustedPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","hexTable","compactQueue","compacted","arrayToObject","mergeTarget","targetItem","strWithoutPlus","defaultEncoder","refs","undef","querystring","querystringify","_inheritsLoose","Duplex","Readable","Writable","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","ReadableState","EElistenerCount","Stream","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","_read","_destroy","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","_undestroy","undestroy","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","maybeReadMore_","pipeOnDrain","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","finished","xs","nOrig","doRead","pipe","dest","pipeOpts","doEnd","stdout","endFn","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","onclose","onfinish","ondata","needDrain","dests","asyncIterator","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writecb","writechunk","needTransform","writeencoding","_flush","prefinish","_write","err2","CorkedRequest","onCorkedFinish","WritableState","internalUtil","deprecate","realHasInstance","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","onwriteDrain","holder","allBuffers","callFinal","need","rState","endWritable","corkReq","hasInstance","cork","uncork","setDefaultEncoding","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","wrapForNext","lastPromise","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","promise","_this2","_Object$create","enumerableOnly","symbols","copyBuffer","hasStrings","_getString","_getBuffer","nb","readableDestroyed","writableDestroyed","emitErrorNT","emitCloseNT","emitErrorAndCloseNT","ERR_STREAM_PREMATURE_CLOSE","called","isRequest","setHeader","abort","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","destroyer","closed","popCallback","streams","pipeline","destroys","ERR_INVALID_OPT_VALUE","highWaterMarkFrom","duplexKey","hwm","copyProps","SafeBuffer","ANY","Comparator","parseOptions","semver","COMPARATORLOOSE","COMPARATOR","SemVer","cmp","intersects","Range","includePrerelease","safeRe","parseRange","isNullSet","isAny","comps","memoOpts","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","memoKey","cached","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","rangeList","parseComparator","replaceGTE0","rangeMap","comparators","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","testSet","LRU","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","pr","replaceCaret","CARETLOOSE","CARET","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","fM","fm","fpr","fb","tM","tpr","tb","prerelease","allowed","major","minor","MAX_LENGTH","compareIdentifiers","LOOSE","FULL","build","compareMain","comparePre","compareBuild","release","identifier","identifierBase","neq","op","coerce","rtl","COERCERTL","COERCE","versionA","versionB","compareLoose","version1","version2","v1","v2","v1Higher","highVersion","lowVersion","highHasPre","lowHasPre","throwErrors","rcompare","rsort","satisfies","valid","internalRe","constants","identifiers","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","SEMVER_SPEC_VERSION","RELEASE_TYPES","rcompareIdentifiers","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","NODE_DEBUG","numeric","anum","bnum","looseOption","emptyOpts","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","createToken","isGlobal","safe","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","LONETILDE","LONECARET","r1","maxSV","rangeObj","minSV","minver","setMin","compver","hilo","gtfn","ltefn","ltfn","ecomp","included","simplified","dom","sawNonNull","OUTER","simpleSub","simpleDom","isSub","simpleSubset","minimumVersionWithPreRelease","minimumVersion","eqSet","gtltComp","higher","hasDomLT","hasDomGT","higherGT","lowerLT","needDomLTPre","needDomGTPre","hasDescriptors","gOPD","$floor","functionLengthIsConfigurable","functionLengthIsWritable","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","curr","listGet","objects","listSet","listHas","$wm","$o","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","hasWeakMap","weakMapHas","hasWeakSet","weakSetHas","hasWeakRef","weakRefDeref","deref","booleanValueOf","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","bigIntValueOf","gOPS","symToString","hasShammedSymbols","gPO","addNumericSeparator","sepRegex","intStr","utilInspect","inspectCustom","inspectSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","isBigInt","inspect_","maxStringLength","numericSeparator","inspectString","bigIntStr","maxDepth","getIndent","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","singleLineValues","indentedJoin","cause","mapParts","collectionOf","setParts","weakCollectionOf","isWeakRef","ys","protoTag","constructorTag","trailer","lowbyte","joinedEntries","baseIndent","lineJoiner","symMap","isArrayish","results","ClientRequest","statusCodes","defaultProtocol","location","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","xhr","getXHR","XMLHttpRequest","XDomainRequest","checkTypeSupport","responseType","ReadableStream","writableStream","WritableStream","abortController","AbortController","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","capability","inherits","rStates","readyStates","decideMode","preferBinary","useFetch","_opts","_body","auth","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","statusValid","lowerName","unsafeHeaders","getHeader","removeHeader","_destroyed","headersObj","Blob","headersList","keyName","signal","_fetchAbortController","requestTimeout","credentials","withCredentials","_fetchResponse","_resetTimers","_connect","_xhr","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","send","flushHeaders","setNoDelay","setSocketKeepAlive","UNSENT","OPENED","HEADERS_RECEIVED","resetTimers","rawHeaders","trailers","rawTrailers","statusCode","statusMessage","statusText","_resumeFetch","pipeTo","getReader","_pos","responseURL","getAllResponseHeaders","_charset","mimeType","charsetMatch","responseText","MSStreamReader","readAsArrayBuffer","_normalizeEncoding","retried","normalizeEncoding","nenc","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","utf8End","ResourceListComponentName","ONE_WAY","HARVESTER_NAME","NORMAN_NAME","DESCRIPTION","HOSTNAME","TIMESTAMP","DEFAULT_PROJECT","SYSTEM_PROJECT","CONTAINER_DEFAULT_RESOURCE_LIMIT","TARGET_WORKLOADS","UI_MANAGED","CREATOR_ID","NODE_ARCHITECTURE","KUBERNETES","SERVICE_ACCOUNT_UID","SERVICE_ACCOUNT_NAME","MANAGED_BY","MANAGED_NAME","INSTANCE","CERTMANAGER","ISSUER","BETA_DEFAULT_STORAGE_CLASS","MANAGEMENT_NODE","NODE_NAME","NODE_ROLES","CONTROL_PLANE_OLD","CONTROL_PLANE","WORKER","ETCD","MACHINE_ROLES","DEPLOYMENT_NAME","CREDENTIAL_DRIVER","CLUSTER_NAMESPACE","FORCE_MACHINE_REMOVE","MACHINE_NAME","DELETE_MACHINE","SECRET_AUTH","SECRET_WILL_DELETE","UI_CUSTOM_PROVIDER","CERTIFIED","_RANCHER","_PARTNER","_OTHER","EXPERIMENTAL","RELEASE_NAME","FEATURED","REQUIRES_GVK","PROVIDES","AUTO_INSTALL_GVK","AUTO_INSTALL","REQUESTS_CPU","REQUESTS_MEMORY","SCOPE","_MANAGEMENT","_DOWNSTREAM","TYPE","_APP","_CLUSTER_TPL","_CLUSTER_TOOL","COMPONENT","SOURCE_REPO_TYPE","SOURCE_REPO_NAME","COLOR","DISPLAY_NAME","CLUSTER_REPO_NAME","SUPPORTED_OS","PERMITTED_OS","DEPLOYED_OS","MIGRATED","MANAGED","HIDDEN_REPO","FLEET","CLUSTER_DISPLAY_NAME","CLUSTER_NAME","BUNDLE_ID","BUNDLE_NAME","BUNDLE_NAMESPACE","RKE","EXTERNAL_IP","ISTIO","AUTO_INJECTION","CATTLE_REGEX","LABELS_TO_IGNORE_REGEX","ANNOTATIONS_TO_IGNORE_REGEX","CLOUD_INIT","CLOUD_PROVIDER_IPAM","NETWORK_ROUTE","NETWORK_TYPE","PRIMARY_SERVICE","CLUSTER_BADGE","ICON_TEXT","SYSTEM_LABELS","CLOUD_CREDENTIALS","EXPIRATION","STEVE_NAME_COL","NAME_COL","STEVE_ID_COL","STEVE_STATE_COL","STATE","STEVE_AGE_COL","STEVE_NAMESPACE_COL","NAMESPACE_COL","STEVE_EVENT_LAST_SEEN","OBJECT","EVENT_LAST_SEEN_TIME","STEVE_EVENT_TYPE","EVENT_TYPE","STEVE_LIST_GROUPS","DOCS_BASE","CURRENT_RANCHER_VERSION","STANDARD_VENDOR","CUSTOM_VENDOR","suse","vendor","setVendor","setTitle","ico","hid","hrefv","NAME","LOCAL","MODE","_CLONE","_STAGE","_IMPORT","_GRAPH","FOCUS","REPO_TYPE","REPO","CHART","FROM_TOOLS","HIDE_SIDE_NAV","CLOUD_CREDENTIAL","PROJECT_ID","FLAT_VIEW","LOGGING_OUTPUT_PROVIDERS","SIMPLE_NAME","STORAGE_CLASS_PROVISIONER","STORAGE_CLASS_DEFAULT","internal","CONFIGURED_PROVIDERS","NAME_UNLINKED","PRINCIPAL","NODE_TYPE","NS_SNAPSHOT_QUOTA","increment","addSuffix","needParseSi","POD_IMAGES","imageNames","ADDRESS","LAST_SEEN_TIME","REASON","MESSAGE","KEY","VALUE","PREFERENCE","NORMAN","AUTH_CONFIG","ETCD_BACKUP","CLUSTER_TOKEN","CLUSTER_ROLE_TEMPLATE_BINDING","FLEET_WORKSPACES","GLOBAL_ROLE","GLOBAL_ROLE_BINDING","PROJECT_ROLE_TEMPLATE_BINDING","SPOOFED","GROUP_PRINCIPAL","ROLE_TEMPLATE","TOKEN","KONTAINER_DRIVER","NODE_DRIVER","ENDPOINTS","SERVICE_ACCOUNT","CLUSTER_ROLE","ROLE_BINDING","CLUSTER_ROLE_BINDING","WORKLOAD_TYPE_TO_KIND_MAPPING","scalableWorkloads","METRIC","HELM","PROJECTHELMCHART","MONITORING","ALERTMANAGER","PODMONITOR","PROMETHEUS","PROMETHEUSRULE","SERVICEMONITOR","THANOSRULER","RECEIVER","RECEIVER_SPEC","RECEIVER_EMAIL","RECEIVER_SLACK","RECEIVER_WEBHOOK","RECEIVER_PAGERDUTY","RECEIVER_OPSGENIE","RECEIVER_HTTP_CONFIG","RESPONDER","ROUTE","ROUTE_SPEC","LONGHORN","ENGINES","ENGINE_IMAGES","NODES","REPLICAS","SETTINGS","VOLUMES","LONGHORN_DRIVER","LONGHORN_VERSION_V1","LONGHORN_VERSION_V2","CATALOG_TEMPLATE","FEATURE","MULTI_CLUSTER_APP","PSA","MANAGED_CHART","USER_NOTIFICATION","GLOBAL_DNS_PROVIDER","RKE_TEMPLATE","RKE_TEMPLATE_REVISION","CLUSTER_PROXY_CONFIG","CAPI_CLUSTER","MACHINE_DEPLOYMENT","MACHINE_SET","MACHINE_CONFIG_GROUP","BUNDLE","BUNDLE_DEPLOYMENT","CLUSTER_GROUP","GIT_REPO","WORKSPACE","BUNDLE_NAMESPACE_MAPPING","GIT_REPO_RESTRICTION","VIRTUAL_SERVICE","DESTINATION_RULE","GATEWAY","LOGGING","FILTERS","FILTER","CONCAT","DEDOT","DETECTEXCEPTIONS","GEOIP","GREP","PARSER","RECORD_MODIFIER","RECORD_TRANSFORMER","STDOUT","SUMOLOGIC","TAG_NORMALISER","THROTTLE","RECORD","REGEXPSECTION","EXCLUDESECTION","ORSECTION","ANDSECTION","PARSESECTION","METRICSECTION","REPLACE","SINGLEPARSESECTION","CIS","CLUSTER_SCAN","CLUSTER_SCAN_PROFILE","BENCHMARK","REPORT","UI","NAV_LINK","VIRTUAL_TYPES","CLUSTER_MEMBERS","PROJECT_NAMESPACES","NAMESPACES","JWT_AUTHENTICATION","VIRTUAL_HARVESTER_PROVIDER","ADDRESSES","INTERNAL_IP","DEFAULT_WORKSPACE","LOCAL_CLUSTER","DEPRECATED","_versionData","Version","RancherPrime","GitCommit","isRancherPrime","NEXT_ID","registerBeforeHook","boundFn","priority","boundFnContext","_registerHook","unregisterBeforeSaveHook","registerAfterHook","fnContext","prefKey","prefData","ChildHook","storeOverride","setLabels","setAnnotations","doneParams","doneEvent","doneLocationOverride","handleConflict","initialValue","liveValue","LAST_NAMESPACE","actuallySave","setErrors","impl","realMode","fvFormRuleSets","fvReportedValidationPaths","fvGetPathRules","fvRulesets","ruleset","fvGetAndReportPathRules","fvGetPathValues","relevantRuleset","getAllValues","rootObject","fvGetValues","fvGetPathErrors","messages","pathErrors","relevantRules","relevantValues","fvExtraRules","nullValidator","formRules","formRulesGenerator","displayKey","translationKey","formValidationRule","modelValidationRules","fvUnreportedValidationErrors","formErrors","modelErrors","customValidationErrors","fvValidationErrors","fvFormIsValid","namespaceFilterRequired","__namespaceRequired","__validFilter","namespaceFilters","NAMESPACE_FILTER_NS_PREFIX","NAMESPACE_FILTER_P_PREFIX","pAndNFiltering","__areResourcesNamespaced","$fetch","pPagination","debouncedSetPagination","setPagination","requestFilters","searchFilters","namespaceFilterChanged","stevePaginationUtils","paginationUtils","paginationNsFilterRequired","__validPaginationNsFilter","isResourceList","hasListComponent","paginationResult","havePaginated","ALL_NAMESPACES","neuEmpty","NAMESPACE_FILTER_ALL","oldEmpty","allButHidingSystemResources","NAMESPACE_FILTER_NAMESPACED_YES","NAMESPACE_FILTER_NAMESPACED_NO","fetchPageSecondaryResources","timestamp","pagResult","PAGES","ResourceFetchNamespaced","ResourceFetchApiPagination","multipleResources","hasManualRefresh","incremental","fetchedResourceType","isFirstLoad","currStore","localFilter","apiFilter","refreshFlag","currResource","$initializeFetchData","storeType","__gatherResourceFetchData","$fetchType","finally","__getCountForResources","__getCountForResource","manualDataRefreshEnabled","manualDataRefreshThreshold","incrementalLoadingEnabled","incrementalLoadingThreshold","resourcesForCount","vm","filteredOptions","typeAheadPointer","isOptionSelected","optionExists","selectedValue","clearSearchOnSelect","typeAheadUp","typeAheadDown","EXTERNAL_ID","KIND_SEPARATOR","GROUP_SEPARATOR","BASE_SEPARATOR","ID_SEPARATOR","KIND_ALL","SYSTEM_CATEGORIES","CATALOG_DEFAULT_GROUP","parseHelmExternalId","externalId","nm","vl","catalog","templateId","templateVersionId","App","NormanModel","appEditUrl","detailLocation","moreQuery","currentVersion","ControllerRevision","SteveModel","revisionNumber","revision","DaemonSet","rollBack","daemonSet","rollBackWorkload","IGNORED_ANNOTATIONS","replicasRegEx","replicaSetRelationships","relationship","activeReplicaSet","replicasMatch","replicas","selectedReplicaSet","ReplicaSet","ownedByWorkload","StatefulSet","statefulSet","pods","podRelationship","$getters","ownerReferencesStatefulSet","own","customValidationRules","nullable","scaleTargetRef","minReplicas","maxReplicas","currentReplicas","lastScaleTime","CronJob","suspend","_availableActions","suspended","jobSchema","canRunNow","ownerRef","job","Job","$rootGetters","completionTime","startTime","staticValue","getSecondsDiff","CatalogApp","showMasthead","upgrade","warnDeletionMessage","upgradeAvailable","manager","chart","CATALOG_ANNOTATIONS","matchingChart","includeHidden","chartName","repoName","preferRepoType","workerOSs","showPreRelease","SHOW_PRE_RELEASE","thisVersion","isPrerelease","compatibleVersionsFor","newestChart","newestVersion","cleanupVersion","upgradeAvailableSort","currentVersionCompatible","versionInChart","compatibleVersions","thisVersionCompatible","goToUpgrade","forceVersion","fromTools","versionName","repoType","firstDeployed","lastDeployed","chartDisplay","versionDisplay","versionSort","doAction","operationNamespace","operationName","waitForLink","openLogs","relatedResourcesToRemove","crd","canDelete","hasAction","deployedResources","deployedAsMultiCluster","mcapps","mcapp","targets","deployedAsLegacy","fetchValues","projectName","legacyApp","secretId","haveValues","_values","_chartValues","_secret","includeHelmData","secretReference","ow","secretNamespace","_validateSecret","noun","chartValues","ClusterRepo","_isClusterRepoDisabled","waitForState","disableClusterRepo","enableClusterRepo","isGit","gitRepo","isOciType","hasExplicitOciUrl","hasInsecurePlainHttp","isRancherSource","isPartner","canLoad","urlDisplay","branchDisplay","gitBranch","downloadTime","observedGeneration","colorForState","waitForOperation","operationId","waitForTestFn","CATALOG_TYPE","CatalogOperation","removeAction","releaseName","logs","CatalogRepo","CACHE_STATE","CACHED","DISABLED","PENDING","UIPlugin","plugin","isInitialized","cacheState","pluginMetadata","isDeveloper","developer","Chart","queryParams","hideSideNav","chartVersions","goToInstall","clusterId","BLANK_CLUSTER","ChartInstallAction","charts","ChartUpgradeAction","fetchSpecsScheduledScanConfig","hasSpecsScheduledScanConfig","specSchemaId","specSchema","ClusterScan","toFilter","downloadReport","hasReport","downloadAllReports","hasReports","scheduledScanConfig","canBeScheduled","isScheduled","hasLink","reportRel","getReports","owned","findOwned","reports","downloadLatestReport","Papa","testResults","aggregatedTests","actual_value_per_node","csv","unparse","downloadFile","toZip","generateZip","scanProfileLink","lastRunScanProfileName","ClusterScanBenchmark","isDefault","fromType","CISProfile","numberTestsSkipped","skipTests","benchmarkVersionLink","benchmarkVersion","CISReport","parsedReport","flattened","sortableId","sortableState","SORT_ORDER","notApplicable","mixed","stateSort","idSort","reportJSON","simplify","fullFields","prefixFields","suffixFields","harvesterProvider","renew","cloudCredential","renewBulk","cloudCredentials","cc","harvestercredentialConfig","mgmtCluster","kubeconfigContent","generateKubeConfig","CloudCredential","canRenew","canBulkRenew","hasSensitiveData","canCustomEdit","_detailLocation","parentLocationOverride","secretName","getSecret","configKey","setProvider","setAnnotation","decodedData","providerDisplay","publicData","publicKey","publicMode","expires","expiresForSort","expireData","expiresIn","sevenDays","expired","expiring","expiresString","dateFormat","DATE_FORMAT","timeFormat","TIME_FORMAT","timeThen","timeNow","renewFn","renewBulkFn","LABEL_CONTAINS_PROTECTED","ANNOTATIONS_CONTAINS_PROTECTED","hasSystemLabels","hasSystemAnnotations","notOnlyOfRole","foundType","CapiMachine","openSsh","isRunning","downloadKeys","sshkeys","forceRemove","isRemoveForceable","scaleDown","canClone","machine","downloadUrl","toggleForceRemoveModal","componentProps","forceMachineRemove","machineRef","toggleScaleDownModal","infrastructureRef","poolName","poolId","pool","operatingSystem","kubeNodeDetailLocation","kubeId","nodeRef","EXPLORER","groupByLabel","reasonMessage","machines","roles","listNodeRoles","KIND","MACHINE_INV_SELECTOR_TEMPLATES","MACHINE_TEMPLATE","CapiMachineDeployment","groupByPoolLabel","groupByPoolShortLabel","infrastructureRefKind","templateType","providerName","providerLocation","providerSize","providerSummary","HARVESTER_KIND","outdated","updatedReplicas","unavailableReplicas","unavailable","inClusterSpec","machineConfigName","machinePools","machineConfigRef","scalePool","quantity","liveModel","scaleTimer","conflicts","canScaleUpPool","showScalePool","stateParts","textColor","CapiMachineSet","ClusterNode","normanAction","norman","cordon","uncordon","drain","stopDrain","provisionedMachine","showDetailStateBadge","annotationAddress","statusAddress","customLabelCount","customLabels","parsedLabels","managementNode","hasARole","roleLabelKeys","hasRoleLabel","isExpectedValue","nodeInfo","kubeletVersion","cpuUsage","isFromNorman","parseSi","podRequests","cpu","usage","cpuCapacity","allocatable","cpuUsagePercentage","ramUsage","memory","ramCapacity","capacity","ramUsagePercentage","ramReserved","ramReservedPercentage","podUsage","calculatePercentage","podConsumedUsage","podConsumed","podCapacity","runningPods","isPidPressureOk","isCondition","isDiskPressureOk","isMemoryPressureOk","isKubeletOk","isCordoned","unschedulable","drainedState","sNodeCondition","containerRuntimeVersion","containerRuntimeIcon","safeResources","normanNodeId","mNode","kubeNodes","osImage","allPods","confirmRemove","cloudProviders","CAPI_ANNOTATIONS","displayTaintsAndLabels","taints","formatPercent","allString","ClusterStoreSchema","CRTB","principalId","userPrincipalId","groupPrincipalId","roleDisplay","roleTemplate","roleDescription","roleTemplateId","clusterroletemplatebinding","steve","ConfigMap","keysDisplay","binaryData","ENFORCEMENT_ACTION_VALUES","DENY","DRYRUN","GateKeeperConstraint","downloadViolations","constraint","findLatestConstraint","violations","violation","resourceLink","constraintLink","cleanForNew","totalViolations","Driver","canViewYaml","driverName","builtIn","KONTAINER_TO_DRIVER","builtin","_description","cleanForSave","forNew","Rke1EtcdBackup","restore","STATES_ENUM","ACTIVE","baseActions","promptRestore","createdAt","rke2","backupLocation","backupConfig","s3BackupConfig","K8sEvent","displayInvolvedObject","involvedObject","displayMessage","lastTimestamp","eventType","lastSeen","FleetBundle","bundleType","targetClusters","workspace","clusters","clusterGroups","local","clusterGroup","clusterGroupSelector","expressions","convertSelectorObj","matchingGroups","clusterSelector","matchingClusters","errorState","errState","hasErrorMessage","canChangeWorkspace","redeployAgentGeneration","assignTo","assignToBulk","FLEET_WORKSPACE_BACK","FLEET_LABELS","_RKE2","repoInfo","readyGitRepos","desiredReadyGitRepos","unready","bundlesData","dataArr","noValidData","basicNorman","normanClone","_saveYaml","FleetClusterGroup","matchExpressions","matchLabels","clusterInfo","clusterCount","nonReadyClusterCount","FleetToken","incr","counter","resourceKey","conditionIsTrue","Fleet","resourceId","resourcesFromBundleDeploymentStatus","READY","modified","modifiedStatus","missing","MISSING","ORPHANED","MODIFIED","nonReadyStatus","UNKNOWN","resourcesFromBundleStatus","bundle","nonReadyResources","clusterIdFromBundleDeploymentLabels","clusterNamespace","bundleIdFromBundleDeploymentLabels","bundleNamespace","bundleName","bundleDeploymentState","bd","appliedDeploymentId","deploymentId","WAIT_APPLIED","ERR_APPLIED","stagedDeploymentId","OUT_OF_SYNC","nonModified","NOT_READY","quacksLikeAHash","normalizeStateCounts","states","desiredReady","mapStateToEnum","GitRepo","meta","repo","branch","clientSecretName","forceSyncGeneration","github","repoIcon","repoDisplay","commitDisplay","targetInfo","advanced","FLEET_ANNOTATIONS","modeDisplay","bundles","bundleDeployments","bds","allBundlesStatuses","bundleDeploymentCountsPerBundle","bundleId","FleetUtils","bundleIds","primaryDisplayStatusFromCount","allResourceStatuses","statusResourceCountsForCluster","resourcesStatuses","tableKey","readyClusters","desiredReadyClusters","clusterState","clustersList","Group","Principal","canViewInApi","principalNameDisplay","principal","globalRoleBindings","globalRoleBinding","groupPrincipalName","promptUnassignGroupRoles","principals","unassignGroupRoles","ProjectHelmChart","helmApiVersion","projectDisplayName","project","parentNameOverride","NetworkAttachmentDef","cniVersion","bridge","promiscMode","vlan","ipam","parseConfig","isIpamStatic","clusterNetwork","vlanType","vlanId","connectivity","KontainerDriver","drivers","driverType","deactivateBulk","activateBulk","LogClusterFlow","Flow","allOutputs","outputs","outputRefs","globalOutputRefs","outputProviders","duplicatedProviders","providers","LogClusterOutput","LogOutput","matchRuleIsPopulated","hosts","container_names","LogFlow","localOutputRefs","allClusterOutputs","outputsSortable","displays","clusterOutputs","clusterOutputsSortable","providersDisplay","combinedOutputs","PROVIDERS","endpoint","servers","configure_kubernetes_labels","db_number","ttl","allProvidersSupported","translation","isSupportedProvider","providersSortable","configType","activedirectory","azuread","openldap","freeipa","ping","adfs","keycloak","okta","shibboleth","googleoauth","keycloakoidc","genericoidc","imageOverrides","AuthConfig","sideLabel","isHarvesterCluster","DEFAULT_BADGE_COLOR","PROVIDER_LOGO_OVERRIDE","findRelationship","verb","provisionerDisplay","machineProviderDisplay","kubernetesVersion","pools","machineProvider","rkeTemplateVersion","clusterTemplateRevisionName","providerForEmberParam","nodeTemplate","emberEditPath","clusterTemplateRevision","qp","importProvider","clusterTemplateRevisionId","isReady","hasCondition","kubernetesVersionRaw","fromStatus","gitVersion","fromSpec","kubernetesVersionBase","kubernetesVersionExtension","providerOs","providerOsLogo","rke2WindowsWorkers","windowsWorkerCount","rke2LinuxWorkers","linuxWorkerCount","providerLogo","HARVESTER","logo","providerMenuLogo","providerNavLogo","iconColor","comment","iconText","foregroundColor","parseColor","setClusterNameLabel","andSave","availableCpu","reserved","requested","availableMemory","openShell","downloadKubeConfig","downloadKubeConfigBulk","eachLimit","users","contexts","copyKubeConfig","fetchNodeMetrics","nodeMetrics","someNonWorkerRoles","metrics","metric","nd","initialAggregation","agg","provClusterId","isRKE1","rancherKubernetesEngineConfig","pinned","PINNED_CLUSTERS","pin","unpin","HybridModel","detailPageHeaderActionOverride","userName","syncPrincipal","principalName","userPrincipalName","roleTemplateName","clusterDisplayName","clusterDetailLocation","principalProperty","principalType","Feature","lockedValue","restartRequired","dynamic","canDisable","enableAction","toggleFeatureFlag","Workspace","gitRepos","forWorkspace","repos","waitForWorkspaceSchema","schemaCallback","GitRepoRestriction","ADMIN","SPECIAL","GLOBAL","SUBTYPE_MAPPING","GlobalRole","SteveDescriptionModel","_details","descriptionDisplay","isSpecial","newUserDefault","allResources","globalResources","CATTLE_API_GROUP","inheritedClusterRoles","canCreate","CREATE_VERBS","goToClone","roleContext","GRB","globalRoleName","ownersName","_displayPrincipal","_displayUser","globalRoleId","V2","IMPORTABLE","amazonelasticcontainerservice","azurekubernetesservice","aks","eks","gke","googlekubernetesengine","huaweicontainercloudengine","huaweiengine","linodekubernetesengine","lke","lkeengine","okeengine","oke","oraclecontainerengine","tencentengine","tencentkubernetesengine","aliyunkubernetescontainerservice","baiducloudcontainerengine","opentelekomcloudcontainerengine","DRIVER_TO_IMPORT","googlegke","amazoneks","azureaks","showCreate","showImport","emberCreatePath","emberImportPath","nodeConfig","kubeNodeName","nodePoolID","nodePoolName","provisioningCluster","nodeTemplateId","nodeTemplateName","scale","nodeSummary","CONFIG_KEYS","getDisplayProperty","providerConfig","region","formatSi","memorySize","cpuCount","NodeTemplate","allKeys","PodSecurityAdmissionTemplate","clearUnusedResourceQuotas","usedLimit","Project","forceReplaceOnReq","normanEditProject","normanNewProject","clearedResourceQuotas","normanProject","creatorId","containerDefaultResourceLimit","setResourceQuotas","canUpdateProjectBindings","PRTB","userAvatar","avatarSrc","projectDetailLocation","projectRoleTemplateId","RBAC_ROLE","RBAC_CLUSTER_ROLE","VERBS","RoleTemplate","locked","_subtype","updateSubtype","updateDefault","clusterCreatorDefault","projectCreatorDefault","roleTemplateIds","roleTemplateNames","Setting","fromEnv","settingMetadata","editAction","isServerUrl","User","cleanResource","cleanHybridResources","principalIds","isCurrentUser","currentPrincipal","labelForSelect","userLastLogin","userDisabledIn","userDisabledInDisplay","userDeletedIn","canRefreshAccess","_save","setEnabled","refreshGroupMembership","canActivate","stateOk","permissionOk","isCountdown","ManagementStoreSchema","NodeMetric","memoryUsage","memoryCapacity","memoryUsagePercentage","storageUsage","storageTotal","AlertmanagerConfig","existingReceivers","receivers","defaultSpec","groupWait","groupInterval","repeatInterval","matchRe","getReceiverActions","alertmanagerConfigActions","actionData","alertmanagerConfigDoneRouteName","getCreateReceiverRoute","alertmanagerconfigid","currentView","getReceiverDetailLink","receiverName","getEditReceiverYamlRoute","queryMode","getEditReceiverConfigRoute","PodMonitor","PrometheusRule","RECEIVERS_TYPES","banner","addButton","Receiver","removeSerially","updateReceivers","currentReceivers","existingReceiver","receiverTypes","expectedKeys","customKeys","customLabel","updateConfig","hasDependentRoutes","preventDeletionMessage","ROOT_NAME","Route","group_by","group_wait","group_interval","repeat_interval","match_re","updateRoutes","currentRoutes","createDefaultRouteName","existingRoute","areRoutesSupportedFormat","isRoot","receiverLink","MONITORING_PRODUCT","ServiceMonitor","PSALabelPrefix","PSAModes","PSALevels","PSALabelsNamespaceMode","PSALabelsNamespaceVersion","PSALabelsNamespaces","PSAIconsDisplay","psa","getPSALabels","hasPSALabels","getPSATooltipsDescription","isPSA","isVersionLabel","versionLabel","camelToTitle","OBSCURE_NAMESPACE_PREFIX","istioInstalled","injectionEnabled","move","isFleetManaged","projectAnnotation","projectNameSort","nameSort","ISTIO_LABELS","enable","disableAutoInjection","resourceQuota","detailTopTooltips","psaTooltipsDescription","detailTopIcons","filteredSystemLabels","hideDetailLocation","hideNamespaceLocation","DestinationRule","subsets","trafficPolicy","loadBalancer","simple","connectionPool","tcp","outlierDetection","tls","tlsHosts","isTlsHost","ingressFullPath","hostValue","pathValue","Ingress","targetTo","workloads","serviceName","isTargetsWorkload","createRulesForListPage","certificates","createPathForListPage","backend","serviceNamePath","fullPath","pathType","serviceTargetTo","certLinks","targetLink","servicePortPath","certLink","matchingCerts","createDefaultService","defaultBackendPath","cacheObject","showPathType","useNestedBackendField","nestedPath","flatPath","defaultBackend","hasDefaultBackend","ingressClassName","CLOUD_CREDENTIAL_OVERRIDE","nutanix","NodeDriver","VOLUME_PLUGINS","supported","csiDriver","csi","fallback","replaceAll","pluginDef","isLonghorn","claim","volumeName","claimName","accessModes","storage","requests","storageClassName","BOUND","expandable","allowVolumeExpansion","goToEditVolumeSize","WORKLOAD_PRIORITY","Pod","WorkloadService","os","_os","openLogsMenuItem","openShellMenuItem","containerActions","defaultContainerName","desirable","containerName","initialContainer","containerStateDisplay","containerStateColor","containerIsInit","shortenedImage","workloadRef","owners","getOwners","owner","ia","ib","podIP","groupByNode","restartCount","containerStatuses","processSaveResponse","warnings","hasPsaWarnings","cleanContainerForSave","deleteProperty","profilePicture","roundAvatar","providerSpecificType","rkeTemplate","provCreationTimestamp","mgmtCreationTimestamp","detailsAction","canExplore","canEditRKE2cluster","canSnapshot","isRke1","clusterTemplatesSchema","canUpdateClusterTemplate","normanClusterSaveTemplateAction","normanCluster","saveAsTemplate","canSaveRKETemplate","clusterTemplateName","customProvisionerHelper","findNormanCluster","explore","goToHarvesterCluster","harvesterCluster","goToCluster","isImported","kontainerConfigs","isImportedKontainer","imported","isCustom","isImportedK3s","isK3s","isImportedRke2","eksNodeGroups","nodeGroups","waitForProvisioner","waitForMgmt","pCluster","nodesArchitecture","architecture","nodeLabels","unknown","fromAnnotation","machinePoolDefaults","defaultHostnameLengthLimit","hostnameLengthLimit","removeDefaultHostnameLengthLimit","deployments","unavailableMachines","getOrCreateToken","snapshotAction","takeSnapshot","snapshotBulk","allSettled","successful","etcdSnapshotCreate","s3","etcdSnapshots","allSnapshots","restoreSnapshotAction","saveAsRKETemplate","rotateCertificates","rotateEncryptionKey","_stateObj","rkeTemplateUpgrade","revisions","supportsWindows","windowsPreferedCluster","cni","machineGlobalConfig","agentConfig","machineSelectorConfig","machineLabelSelector","cloudProvider","cloudCredentialSecretName","credential","harvesterClusterId","poolConfig","vmNamespace","postDelete","modelExtensions","modelExt","useFor","groupByParent","parentCluster","filteredConditions","mostRecentCondition","namespaceLocation","localCluster","cloudCredentialWarning","ClusterRole","Role","namespaceResources","ClusterRoleBinding","subjects","serviceAccounts","nameWithinProduct","clusterResources","RoleBinding","Backup","readyMessage","Restore","HciMachineConfig","_machinePools","copyConfig","Amazonec2MachineTemplate","MachineTemplate","instanceType","AzureMachineTemplate","DigitalOceanMachineTemplate","LinodeMachineTemplate","PnapMachineTemplate","serverLocation","serverType","VmwarevsphereMachineTemplate","EtcdBackup","snapshotFile","SUCCESSFUL","errorMessage","inError","FAILED","base64Decode","trans","fileMessage","Resource","groupName","mapArrayTypeRegex","regexRes","OPAQUE","SERVICE_ACCT","DOCKER","DOCKER_JSON","BASIC","BOOTSTRAP","ISTIO_TLS","HELM_RELEASE","FLEET_CLUSTER","RKE_AUTH_CONFIG","certExpiringPeriod","isCertificate","isRegistry","isCloudCredential","cachedCertInfo","notAfter","cn","plusMoreNames","unrepeatedSans","dateClass","certState","EXPIRING","EXPIRED","isEditable","dataPreview","encodedJSON","decodedJSON","auths","domain","certInfo","sshUser","subTypeDisplay","pem","notBefore","sans","END_MARKER","issuerString","cnString","_cachedCertInfo","commonBases","displaySans","timeTilExpiration","expiration","timeTilExpirationDate","base64Encode","MANAGER","certLifetime","diffFrom","certStateDisplay","certStateBackground","DEFAULT_SERVICE_TYPES","HEADLESS","headless","CLUSTERIP","proxyUrlFromParts","scheme","proxyUrlFromBase","schemaNamePort","cleanPath","cleanBase","serviceType","clusterIP","sessionAffinity","loadBalancerIP","statusIps","ingress","loadbalancerInfo","fetchPods","defaultService","proxyUrl","deprecated","hideCustomize","provisionerListDisplay","setDefault","allStorageClasses","resetDefault","constraints","isExpired","expiry","toURL","toService","normalizedGroup","actualTarget","SEPARATOR","defaultContainer","imagePullPolicy","securityContext","runAsNonRoot","readOnlyRootFilesystem","privileged","allowPrivilegeEscalation","volumeMounts","editYaml","restartPolicy","structuredClone","toggleRollbackModal","rollbackRequestData","rollbackRequestBody","workloadName","newScale","scaleUp","matchingPods","addSidecar","sidecar","showPodRestarts","hasSidecars","podTemplateSpec","podSpecPath","readyReplicas","upToDate","detailItem","FACTORS","LABELS","lastScheduleTime","redeploy","getPortsWithServiceType","canAccessServices","services","getServicesOwned","clusterIPServicePorts","loadBalancerServicePorts","nodePortServicePorts","svc","containerPort","hostPort","_listeningPort","_serviceType","portSpec","podGauges","stateColor","jobRelationships","matchingJobs","jobs","jobGauges","succeeded","running","failed","currentRevisionNumber","allInNamespace","normanTypes","selectorKey","workloadSelector","normanSelectorValue","steveSelectorValue","allSvc","images","servicesFromContainerPorts","externalTrafficPolicy","service","npPort","lbPort","toSave","clusterIPProxy","nodePortProxy","loadBalancerProxy","portsWithIpam","_ipam","HCI_LABELS_ANNOTATIONS","importCloudCredential","importMachineConfig","importLogin","importChart","importList","importDetail","importEdit","importDialog","importCustomPromptRemove","resolveList","resolveChart","resolveEdit","resolveDetail","importWindowComponent","resolveWindowComponent","resolveMachineConfigComponent","resolveCloudCredentialComponent","_ALL","_MERGE","_MULTI","_NONE","SCHEMA_CHECK_RETRIES","HAVE_ALL_CHECK_RETRIES","RETRY_LOG","handleSpoofedRequest","schemaStore","SPOOFED_PREFIX","SPOOFED_API_PREFIX","isApi","typemapGetter","createYaml","loadSchemas","spoofedTypes","addSchemaIndexFields","findAllGetter","skipSelector","loadDataPage","normalizeType","typeRegistered","loadCount","newLoadCount","findAll","watchNamespace","urlFor","pageFetchOpts","skipHaveAll","streamCollection","streamStarted","onData","finishDeferred","forceWatch","findPage","transient","findMatching","labelSelector","byId","watchMsg","baseType","keyFieldForType","loadMulti","batchChanges","batch","loadAll","createMany","createPopulated","userData","forgetType","started","promptRemove","promptModal","resourceAction","actionName","collectionAction","cleanForDiff","cleanForDetail","waitForSchema","tries","waitForHaveAll","throwError","attempts","incrementLoadCounter","BY_TYPE","isClone","customModel","baseUrl","urlOptions","matchingCounts","typeObj","byNamespace","registerType","pathExistsInSchema","thisOne","arrayRes","fuzzy","allowThrow","defaultFor","rootSchema","typeMunge","mapOf","typeRef","arrayOf","referenceTo","SIMPLE_TYPES","canList","typeEntry","haveNamespace","havePaginatedPage","havePage","aNamespace","aPagination","bNamespace","bPagination","haveSelector","keyFieldFor","storeName","defaultModel","isClusterStore","loadCounter","_typeObj","activeNamespaceCache","paginationEnabled","coreStoreModule","coreStoreState","markRaw","modelLoaderRequire","pluginModel","_name","existingPropertyMap","newProperty","reactive","replaceResource","createLoadArgs","dataType","cachedArgs","cachedType","inMap","latestEntry","rm","resetStore","batchTypes","combinedBatch","batchType","typeOption","aliasType","combinedBatchTypes","normalizedType","typeCache","typeCacheIndexMap","removeAtIndexes","classyResource","cacheIndex","loopIndex","proxies","loadAdd","allLatest","applyConfig","loadSelector","loadMerge","toLoadEntry","loadPage","forgetAll","setHaveAll","setHaveNamespace","loadedAll","typeData","KEY_FIELD_FOR","initialValueJSON","storeNamespace","bgChange","changeset","userChange","actualConflicts","changesetConflicts","applyChangeset","fieldCount","flowOutput","validatorArgs","verifyLocal","logdna","api_key","ind","pPort","nameErrors","validateDnsLabel","np","tpIanaDisplayKey","tpTest","targetPortIsNumber","ianaServiceName","validChars","isIanaServiceNameErrors","typesToCheck","hostNameErrors","validateHostname","readableGroupIndex","podSpec","podAffinity","podAntiAffinity","preferredDuringSchedulingIgnoredDuringExecution","requiredDuringSchedulingIgnoredDuringExecution","term","errorOpts","validateTermWeight","podAffinityTerm","validateTopologyKey","validateLabelSelector","affinityTerm","topologyKey","validOperators","nonResourceUrls","DNS_LIKE_TYPES","REMAP_STATE","notapplied","notready","waitapplied","outofsync","gitupdating","errapplied","waitcheckin","waitingforinfrastructure","waitingfornoderef","DEFAULT_COLOR","DEFAULT_ICON","DEFAULT_WAIT_INTERVAL","DEFAULT_WAIT_TMIMEOUT","IN_USE","IN_PROGRESS","PENDING_ROLLBACK","PENDING_UPGRADE","ABORTED","ACTIVATING","AVAILABLE","BACKED_UP","BUILDING","COMPLETED","CORDONED","CREATED","CREATING","DEACTIVATING","DEGRADED","DENIED","DEPLOYED","DEPLOYING","DISCONNECTED","DRAINED","DRAINING","ENABLED","ERRORING","ERRORS","FAIL","HEALTHY","INACTIVE","INITIALIZING","INPROGRESS","LOCKED","MIGRATING","NOT_APPLICABLE","NOT_APLLIED","OFF","OTHER","ON_GOING","PASS","PASSED","PAUSED","PROVISIONING","PROVISIONED","PURGED","PURGING","RECONNECTING","REGISTERING","REINITIALIZING","RELEASED","REMOVED","REMOVING","REQUESTED","RESTARTING","RESTORING","RESIZING","RUNNING","SKIP","SKIPPED","STARTING","STOPPED","STOPPING","SUCCEEDED","SUPERSEDED","SUSPENDED","UNAVAILABLE","UNHEALTHY","UNINSTALLED","UNINSTALLING","UNTRIGGERED","UPDATING","WAIT_CHECKIN","WARNING","statusString","STATES","compoundIcon","isTransitioning","maybeFn","statusOrder","existingStatuses","isConditionReadyAndWaiting","sortableNumericSuffix","namespacedName","namespacedNameSort","setLabel","stateIcon","waitForTransition","waitForAction","withStatus","waitForCondition","extensionMenuActions","$rootState","newActionInstance","enabledFn","typeofEnabled","_canDelete","isRemovable","VIEW_IN_API","DEV","linkName","followLink","urlSuffix","actionLinkFor","actionLinks","doActionGrowl","alertOnError","_labels","_annotations","argParam","_remove","$globalApp","goToViewConfig","goToEditYaml","cloneYaml","download","downloadBulk","cleanedYaml","viewInApi","urlFromAttrs","skipInvalid","isSpoofed","customValidationRulesets","ruleKey","ruleArg","ignorePaths","requiredIf","requiredIfPath","fieldType","parsedRules","reqIfVal","validateLength","validateChars","tolower","validateDnsLikeTypes","validatorAndArgs","validatorName","validatorExists","CustomValidators","pluginValidator","getValidator","ownersByType","allOfResourceType","resourceInstance","resourceByType","findOwners","_getRelationship","_findRelationship","_relationshipsFor","selectors","toNamespace","sel","shortId","splitId","potentialNormanHoldovers","cleanedData","matchesSomeRegex","wasIgnored","STRING_LIKE_TYPES","ignoreFields","originalType","fieldErrors","displayKeyFor","valIsString","coerceStringTypeToScalarType","validateBoolean","rootErrors","_id","removeSchemaIndexFields","EXT_IDS","MODELS","MODEL_EXTENSION","STEVE_ADD","STEVE_NEVER_SAVE","NEVER_ADD","na","handleRoleDeletionCheck","rolesToRemove","queryHash","resourceToCheck","propToMatch","numberOfRolesWithBinds","uniqueUsersWithBinds","userMap","usedRoles","uniqueUsers","_EXPERIMENTAL","ver","osPermitted","def","mapFeature","UNSUPPORTED_STORAGE_DRIVERS","parseJSON","asCookie","asUserPreference","inheritFrom","mangleRead","mangleWrite","EXPANDED_GROUPS","FAVORITE_TYPES","PLUGIN_DEVELOPER","_RKE1","STORE","RANCHER","IF_HAVE","V2_MONITORING","NO_PROJECT","NOT_V1_ISTIO","MULTI_CLUSTER","NEUVECTOR_NAMESPACE","MCM_DISABLED","NOT_STANDALONE_HARVESTER","fetchAlertManagerConfigSpecs","receiverSchema","routeSchema","DEFAULT_SECRET_ID","ALERTMANAGER_ID","FILENAME","getSecretId","alertManager","configSecret","extractConfig","decodedFile","loadConfig","updateFn","setDefaultRouteNames","rootIndex","rootRoute","newFile","encodedFile","TEXT_PLAIN","debugLogImpl","warnOrLog","originalWindow","originalGlobalThis","promiseConstructorImpl","getPromiseConstructor","_a2","_a3","_a4","_a5","_a6","originalNavigator","originalNavigatorClipboard","clipboard","originalNavigatorClipboardWriteText","readText","writeText","promiseConstructor","ClipboardItem","ieWindow","seemToBeInIE","ClipboardEvent","writeTextIE","copyListener","tracker","execCopy","copyUsingTempSelection","selectionSet","selectionClear","copyUsingTempElem","tempElem","copyTextUsingDOM","spanParent","attachShadow","getSelection","selectNodeContents","removeAllRanges","addRange","writeFallback","stringItem","hasTextPlain","rejectThrownErrors","executor","stringToStringItem","writeTextStringFallback","Clipboard","STANDARD_COLORS","hexToRgb","rgbToRgb","ALWAYS_ADD","ACTIVELY_REMOVE","INDENT","processAlwaysAdd","rootType","dataOptions","schemaResourceFields","regularFields","always","commentFields","activelyRemove","regular","stringifyField","comments","cleaned","cleanUp","parsedData","dumpBlock","indented","serializeSimpleValue","subDef","_indent","getBlockDescriptor","getBlockHeader","indentation","getBlockIndentation","blockKey","card","blockScalars","foundSubType","lineWidth","blockFields","scalarStyle","chomping","hashObj","isEmptyData","convertToBuffer","BYTES_PER_ELEMENT","BLOCK_SIZE","DIGEST_LENGTH","Md5","bufferLength","bytesHashed","cmn","ff","gg","ii","sourceData","hashBuffer","undecoratedLength","bitsHashed","setUint32","buff","getUint32","MAX_HASHABLE_LENGTH","Sha256","bufferView","state0","state1","state2","state3","state4","state5","state6","state7","t1_1","t2_1","Sha1","h0","h1","h2","h3","h4","totalLength","outView","NORMAL","base64DecodeToBuffer","realSize","createHash","sliceFn","arraySliceFn","_continueReading","webkitSlice","mozSlice","blob","saveAs","JSZip","generateAsync","iframe","ClusterNotFoundError","RedirectToError","haveV2Monitoring","NAMESPACE_FILTER_ALL_PREFIX","NAMESPACE_FILTER_ALL_ORPHANS","Hooks","Plugins","jsep","registered","register","plugins","Jsep","addUnaryOp","op_name","max_unop_len","unary_ops","addBinaryOp","precedence","isRightAssociative","max_binop_len","binary_ops","right_associative","addIdentifierChar","additional_identifier_chars","addLiteral","literal_name","literal_value","literals","removeUnaryOp","getMaxKeyLen","removeAllUnaryOps","removeIdentifierChar","removeBinaryOp","removeAllBinaryOps","removeLiteral","removeAllLiterals","isDecimalDigit","binaryPrecedence","op_val","isIdentifierStart","isIdentifierPart","runHook","searchHook","gobbleSpaces","SPACE_CODE","TAB_CODE","LF_CODE","CR_CODE","gobbleExpressions","COMPOUND","untilICode","ch_i","SEMCOL_CODE","COMMA_CODE","gobbleExpression","gobbleBinaryExpression","gobbleBinaryOp","to_check","tc_len","biop","prec","biop_info","cur_biop","gobbleToken","right_a","comparePrev","BINARY_EXP","PERIOD_CODE","gobbleNumericLiteral","SQUOTE_CODE","DQUOTE_CODE","gobbleStringLiteral","OBRACK_CODE","gobbleArray","argument","UNARY_EXP","gobbleIdentifier","LITERAL","this_str","THIS_EXP","OPAREN_CODE","gobbleGroup","gobbleTokenProperty","QUMARK_CODE","optional","MEMBER_EXP","CBRACK_CODE","CALL_EXP","gobbleArguments","CPAREN_CODE","chCode","startIndex","IDENTIFIER","termination","separator_count","SEQUENCE_EXP","ARRAY_EXP","COLON_CODE","stdClassProps","CONDITIONAL_EXP","ternary","consequent","alternate","newTest","FSLASH_CODE","BSLASH_CODE","patternIndex","inCharSet","PLUS_CODE","MINUS_CODE","assignmentOperators","updateOperators","assignmentPrecedence","updateNodeTypes","updateBinariesToAssignments","SafeEval","evalAst","ast","evalBinaryExpression","evalCompound","evalConditionalExpression","evalIdentifier","evalLiteral","evalMemberExpression","evalUnaryExpression","evalArrayExpression","evalCallExpression","evalAssignmentExpression","SafeScript","runInNewContext","NewError","avoidNew","JSONPath","otherTypeCallback","optObj","resultType","sandbox","ignoreEvalErrors","parentProperty","autostart","currParent","currParentProperty","currResultType","currEval","currSandbox","currOtherTypeCallback","toPathString","exprList","toPathArray","_hasParentSelector","_trace","isParentSelector","hasArrExpr","rslt","valOrPath","_getPreferredOutput","pointer","toPointer","_handleCallback","fullRetObj","preferredOutput","parentPropName","literalPriority","retObj","loc","addRet","elems","_walk","_slice","safeLoc","npath","nvalue","filterResults","_eval","addType","valueType","locProp","rett","tl","tt","_v","_vname","_$_parentProperty","_$_parent","_$_property","_$_root","_$_v","containsPath","_$_path","scriptCacheKey","script","safeVm","Script","CurrEval","pathArr","subx","normalized","ups","moveToAnotherArray","conditionCb","il","vr","funcString","fString","lastStatementEnd","ptr","splitObjectPath","keysInOrder","currentValue","currentKey","indexValue","parentAry","leafKey","joinObjectPath","pathAr","propToDelete","definedKeys","subkey","toVal","fromVal","fromKeys","toKeys","isEqualBasic","fromValue","toValue","parentPath","bb","parentKey","parentKeys","deepToRaw","rawObj","toRaw","platform","alternateKey","alternateLabel","moreKey","rangeKey","isBlink","isSafari","LEFT","RIGHT","TOP","MIDDLE","BOTTOM","boundingRect","fakeRectFor","clientY","clientX","screenRect","innerWidth","contentElem","triggerElemOrEvent","useDefaults","overlapY","screen","trigger","originFor","middle","gapIf","Queue","getLength","enqueue","dequeue","allHash","allHashSettled","deferred","setPromiseResult","findMeta","optionIndex","selectEl","docHeight","scrollY","minWidth","parseCache","OP_MAP","parens","matchLabelsObj","matchExpressionsInput","impossible","asInt","TYPE_MAP","spaceship","TYPE_ORDER","null","boolean","function","typeA","typeB","aLen","bLen","parseField","objA","objB","splitRegex","notNumericRegex","strPad","padChars","neededLen","padStr","entityMap","escapeRegex","random32","CHARSET","NUMERIC","NO_VOWELS","ALPHA","ALPHA_NUM","ALPHA_LOWER","ALPHA_UPPER","HEX","PASSWORD","maxPrecision","pluralize","afterRegex","decamelizeRegex","decamelize","dasherizeRegex","stringRaw","regexRaw","strOrRegex","quotedMatch","isIpv4","reg","absDiff","unitsKey","startDate","endDate","UNITS","FRACTIONAL","inValue","addSuffixSpace","firstSuffix","startingExponent","minExponent","maxExponent","canRoundToZero","exponent","exponentNeeded","allowFractional","valStr","unit","incStr","MEMORY_PARSE_RULES","createMemoryFormat","createMemoryUnits","createMemoryValues","useful","parsedTotal","parsedUseful","formattedTotal","formattedUseful","schedule","validateKubernetesName","forHostname","errorKey","intlPrefix","intlPrefixLabel","fieldMin","fieldMax","lengthKey","restricted","in1","in2","p1","p2","comparePart","isNumeric","num1","num2","CONSOLE_URL","RANCHER_INTEGRATION_URL","STORAGE_NETWORK_EXAMPLE","KSMTUNED_MODE","TEMPLATE","MONITORING_GROUP","LOGGING_GROUP","IP_POOL_HEADERS","basicType","configureType","virtualType","weightGroup","weightType","DSL","isSingleVirtualCluster","rancherEnv","home","productNameKey","getVersionInfo","afterLoginRoute","logoRoute","supportCustomLogo","removable","showNamespaceFilter","hideKubeShell","hideKubeConfig","showClusterSwitcher","hideCopyConfig","customNamespaceFilter","typeStoreMap","supportRoute","showListMasthead","resourceDetail","resourceEdit","ifHaveType","ifHave","IMAGE_STORAGE_CLASS","IMAGE_PROGRESS","IMAGE_DOWNLOAD_SIZE","IMAGE_VIRTUAL_SIZE","realResource","showConfigView","SNAPSHOT_TARGET_VOLUME","FINGERPRINT","notFilterNamespace","ifHaveVerb","InterfaceOption","SOURCE_TYPE","NEW","ATTACH_VOLUME","CONTAINER","VOLUME_TYPE","ACCESS_CREDENTIALS","RESET_PWD","INJECT_SSH","runStrategies","maintenanceStrategies","VOLUME_DATA_SOURCE_KIND","VolumeSnapshot","PersistentVolumeClaim","FLOW_TYPE","AUDIT","HARVESTER_SEEDER","PCI_DEVICE_CONTROLLER","NVIDIA_DRIVER_TOOLKIT_CONTROLLER","RANCHER_LOGGING","RANCHER_MONITORING","VM_IMPORT_CONTROLLER","LVM_DRIVER","CSI_SECRETS","CSI_PROVISIONER_SECRET_NAME","CSI_PROVISIONER_SECRET_NAMESPACE","CSI_NODE_PUBLISH_SECRET_NAME","CSI_NODE_PUBLISH_SECRET_NAMESPACE","CSI_NODE_STAGE_SECRET_NAME","CSI_NODE_STAGE_SECRET_NAMESPACE","VM_MAINTENANCE_MODE_STRATEGY","CURRENT_IP","IMAGE_ID","SSH_NAMES","NETWORK_IPS","TEMPLATE_VERSION_CUSTOM_NAME","CREATOR","OS","GOLDEN_IMAGE","VM_NAME","VM_NAME_PREFIX","VM_RESERVED_MEMORY","MAINTENANCE_STATUS","HOST_CUSTOM_NAME","HOST_CONSOLE_URL","RESTORE_NAME","NODE_ROLE_MASTER","NODE_ROLE_CONTROL_PLANE","NODE_ROLE_ETCD","PROMOTE_STATUS","MIGRATION_STATE","VOLUME_CLAIM_TEMPLATE","INIT_IP","NODE_SCHEDULABLE","MATCHED_NODES","OS_UPGRADE_IMAGE","LATEST_UPGRADE","UPGRADE_STATE","REAY_MESSAGE","DYNAMIC_SSHKEYS_NAMES","DYNAMIC_SSHKEYS_USERS","IMAGE_SUFFIX","OS_TYPE","STORAGE_PROVISIONER","SKIP_SINGLE_REPLICA_DETACHED_VOL","HOST_REQUEST","ADDON_EXPERIMENTAL","VOLUME_ERROR","KVM_AMD_CPU","KVM_INTEL_CPU","NODE_MANUFACTURER","NODE_MODEL","NODE_SERIAL_NUMBER","VM_INSUFFICIENT","NODE_NTP_SYNC_STATUS","PARENT_SRIOV","PARENT_SRIOV_GPU","NODE_CPU_MANAGER_UPDATE_STATUS","CPU_MANAGER","VM_DEVICE_ALLOCATION_DETAILS","SVM_BACKUP_ID","DISABLE_LONGHORN_V2_ENGINE","VM_SCHEDULE_CRON","VM_SCHEDULE_RETAIN","VM_SCHEDULE_MAX_FAILURE","VM_SCHEDULE_TYPE","BACKUP_TYPE","L2VLAN","UNTAGGED","STATUS_DISPLAY","PCIDevice","isEnabling","claimedByMe","passthroughClaim","passthroughClaims","vendorId","deviceId","claimedBy","isSingleProduct","passthroughEnabled","claimStatusDisplay","enablePassthroughBulk","disablePassthrough","groupByDevice","SRIOVDevice","actualState","vfAddresses","vGPUDevices","enableDevice","disableDevice","vGpuDevices","vGpuDevicesEnabled","HCI_ANNOTATIONS","realNodeName","numVFs","childDevice","SRIOVGpuDevice","numVFsHistory","USBDevice","VGpuDevice","vGPUStatus","statusDisplay","enableVGpu","disableVGpu","vGPUTypeName","vGpuAvailableTypes","availableTypes","HarvesterResource","harvesterResourcesInExplorer","HARVESTER_PRODUCT","customRoute","forceYaml","HciConfigMap","HarvesterNetworkAttachmentDef","clusterNetworkResource","clusterNetworks","clusterNetworkErrorMessage","isNotReady","HciClusterflow","HarvesterFlow","HciClusteroutput","HarvesterLogFlow","loggingType","loggingRef","HarvesterLogOutput","HCIManagementSetting","ManagementSetting","HciAlertmanagerConfig","HciNamespace","editQuotaAction","updateResourceQuota","deleteResourceQuota","editNSQuota","snapshotSizeQuota","warningMessageKey","nsResourceQuota","allResQuotas","RQ","snapshotLimit","namespaceTotalSnapshotSizeQuota","systemNamespaces","isSettingSystemNamespace","isObscurePrefix","ALLOW_SYSTEM_LABEL_KEYS","HciNode","enableMaintenance","disableMaintenance","enableCPUManager","cpuPinningFeatureEnabled","isCPUManagerEnableInProgress","isCPUManagerEnabled","disableCPUManager","shutDown","isStopped","inventory","powerOn","reboot","capiMachine","consoleUrl","isKVMDisable","allNotExist","isEnteringMaintenance","isStopping","isStarting","isRebooting","isMaintenance","currentIP","initIP","isMaster","enableMaintenanceMode","disableMaintenanceMode","isUnSchedulable","isMigratable","cpuManagerUpdateStatus","isCPUManagerEnableFailed","cpuManagerUpdate","longhornDisks","longhornNode","diskStatus","diskSpec","disks","readyCondition","schedulableCondition","Ready","Schedulable","storageReserved","storageAvailable","storageMaximum","storageScheduled","cpuReserved","memoryReserved","vlanStatuses","blockDevices","unProvisionedDisks","isProvisioned","provisionPhase","diskStatusCount","errorBlockDevices","manufacturer","powerActionRequested","powerAction","actionStatus","isStarted","inventories","inv","warningMessages","DEGRADED_ERRORS","DATA_ENGINE_V1","DATA_ENGINE_V2","HciPv","isLonghornV2","exportImageAction","isEncrypted","takeSnapshotAction","thirdPartyStorageFeatureEnabled","exportImage","cancelExpand","snapshot","goToCloneVolume","volumeError","relatedPV","degradedVolume","isLonghornVolumeReady","attachVM","phaseState","allVMs","findAttachVM","attachVolumes","volumes","vol","persistentVolumeClaim","unAvailable","volumeSort","volume","volumeAttributes","encrypted","longhornVolume","longhornEngine","scheduledCondition","nodeID","robustness","restoreRequired","cloneStatus","relatedVolumeSnapshotCounts","snapshots","volumeId","persistentVolumeClaimName","originalSnapshot","dataSource","imageId","pv","volumeProvider","dataEngine","isLvm","resourceExternalLink","tipsKey","POD_STATUS_NOT_SCHEDULABLE","POD_STATUS_FAILED","POD_STATUS_CRASHLOOP_BACKOFF","POD_STATUS_UNKNOWN","POD_STATUS_CONTAINER_FAILING","POD_STATUS_NOT_READY","POD_STATUS_PENDING","POD_STATUS_COMPLETED","POD_STATUS_SUCCEEDED","POD_STATUS_RUNNING","failedWaitingContainerReasons","failedTerminationContainerReasons","errorStatusMapper","Failed","CrashLoopBackOff","Unknown","okStatusMapper","Pending","Running","Completed","Succeeded","stateReasonResolver","terminated","exitCode","HciPod","getPodStatus","isNotSchedulable","hasErrorStatus","isContainerFailing","hasOkStatus","isPodSchedulable","podScheduledCond","getContainerStatusReason","findFailingContainerStatus","containerStatus","stateName","pn","failingContainer","findPodFalseStatusConditionMessage","notReadyConditions","getPodFalseStatusConditions","HarvesterStoreSchema","HciSecret","systemNs","HciSnapshot","restoreSnapshot","pvc","HciStorageClass","longhornVersion","parameters","isLonghornV1","longhornV2LVMSupport","volumeEncryptionFeatureEnabled","HciAddonConfig","rancherDashboard","toggleAddon","enableHistory","valuesContent","bootstrapPassword","goToRancher","rancherHostname","failedCondition","isExperimental","HciBlockDevice","childParts","deviceStatus","parentDevice","devPath","isChildPartProvisioned","isFormatting","formatting","fileSystem","provisioned","provision","HciKeypair","ScheduleVmBackup","suspendSchedule","resumeSchedule","suspendedCondition","HciSetting","hasUpgradeAccess","latestUpgrade","isLatestUpgrade","isUpgradeSucceeded","goToAirgapUpgrade","router","customValue","customFormatter","backupTargetIsEmpty","errMessage","configuredCondition","valueOrDefaultValue","displayValue","parseDefaultValue","isS3","isNFS","HciSupportBundle","bundleState","bundleMessage","precent","HciUpgrade","isUpgradeFailed","hasReadMessage","completedCondition","upgradeImage","imageID","upgradeMessage","nodeStatuses","createRepo","repoCondition","overallMessage","upgradeImageMessage","imageReady","nodeUpgradeMessage","_message","hasNode","nodeTotalPercent","nodeUpgradedCondition","sysServiceUpgradeMessage","totalPercent","nodePercent","servicePercent","HciUpgradeLog","canStartedDownload","downloadLog","Parse","history","origin","fileIsReady","fileArchive","archives","downloadArchivesStatus","latestArchivesFileName","fileNamePrefix","fileNames","latestFileName","HciVmBackup","canCreateVM","attachVmExisting","readyToUse","restoreExistingVM","targetResource","restoreMode","restoreNewVM","isProgress","sourceSchedule","backupContentName","virtualMachineBackupContentName","backupProgress","volumeBackups","vmList","propagationPolicy","getStatusConditionOfType","initialized","isCompleted","HciVmImage","encryptImage","fromPage","sourceType","cryptoOperation","decryptImage","createFromImage","isOSImage","uploadError","encryptionSecret","secretNS","storageClassParameters","securityParameters","sourceImageName","sourceImageNamespace","displayNameWithNamespace","imageStorageClass","imageMessage","retryLimitExceeded","imageSource","annotationsToIgnoreRegexes","downSize","virtualSize","uploadImage","formData","FormData","imageSuffix","imageOSType","urlFormat","urlRequired","checksum","checksumFormat","HciVmRestore","isComplete","pvcNames","restores","persistentVolumeClaimSpec","newVM","HciVmTemplate","createFromTemplate","versionId","defaultVersionId","addVersion","defaultVersion","HciVmTemplateVersion","currentTemplate","runStrategy","cores","sockets","threads","devices","bus","interfaces","masquerade","limits","features","acpi","evictionStrategy","networks","affinity","isDefaultVersion","templates","machineType","launchFromTemplate","templateResource","launchVersion","cloneTemplate","setDefaultVersion","instanceLabels","setInstanceLabels","tpmPersistentStateFeatureEnabled","efiPersistentStateFeatureEnabled","VMI_WAITING_MESSAGE","VM_ERROR","UNSCHEDULABLE","AGENT_CONNECTED","PAUSED_VM_MODAL_MESSAGE","POD_STATUS_ALL_ERROR","POD_STATUS_ALL_READY","RunStrategy","Always","RerunOnFailure","Halted","Manual","StateChangeRequest","Start","Stop","STARTING_MESSAGE","VMIPhase","Scheduling","Scheduled","productInStore","IgnoreMessages","VirtVm","longhornV2Volumes","forceStop","restart","softreboot","backup","schedulingVMBackupFeatureEnabled","ejectCdRom","migrate","abortMigration","addVolume","createTemplate","podResource","macAddress","deleteDataSource","volumeClaimTemplates","restartVM","softrebootVM","createSchedule","vmName","backupVM","takeVMSnapshot","editVMQuota","unplugVolume","diskName","restoreVM","realAttachNodeName","vmi","pauseVM","altPauseVM","goToCloneVM","unpauseVM","stopVM","altStopVM","startVM","migrateVM","ejectCDROM","abortMigrationVM","addHotplug","networksName","isOff","isVMExpectedRunning","isWaitingForVMI","isVMCreated","isCpuPinning","dedicatedCpuPlacement","changeRequests","printableStatus","stateChangeRequests","chRequest","vmiResource","podList","isPause","isVMError","vmFailureCond","detailedMessage","vmTotalSnapshotSizeQuota","vmis","pvcs","volumeClaimNames","lvmVolumes","encryptedVolumeType","vmiFailureCond","isVMIReady","VMIReadyCondition","isBeingStopped","podStatus","isUnschedulable","isTerminating","otherState","getDataVolumeTemplates","restoreResource","allRestore","allBackups","fromSnapshot","virtualMachineBackupNamespace","virtualMachineBackupName","restoreProgress","restoreState","migrationState","warningMessage","canDismiss","vmiConditions","migrationMessage","networkIps","networkData","arrVolumes","cloudInitNoCloud","newInitScript","subnets","warningCount","resourcesStatus","parseVolumeClaimTemplates","rootImageId","firstVolumeName","isNoExistingVolume","existingVolume","restoreName","attachNetwork","hasMultus","multus","memorySort","formatSize","ingoreVMMessage","ignoreConditions","vmState","displayMemory","isQemuInstalled","qemu","hostDevices","provisionedVGpus","deviceAllocationDetails","gpus","VirtVmInstance","vmimResource","vmimList","vmim","vmiName","migrationStateBackground","isTerminated","getVMIApiPath","getSerialConsolePath","HciLB","network","subnetDisplay","subnet","startIPDisplay","startIP","endIPDisplay","endIP","WORKLOAD_TYPE_VM","workloadType","healthCheck","backendServerSelector","workloadTypeDisplay","ipamDisplay","LonghornNode","used","allowScheduling","disk","HciInventory","baseboardSpec","connection","authSecretRef","insecureTLS","pollingInterval","primaryDisk","managementInterfaceMacAddress","HciClusterNetwork","nodeIds","isReadyForStorageNetwork","readyStatuses","HciNodeNetwork","nics","attachNodeName","linkMessage","HciVlanConfig","uplink","linkAttributes","bondOptions","groupByClusterNetwork","migrateAction","vlanConfig","selectedNodes","nodeSelector","matchNodes","HciVlanStatus","featuresV130","featuresV131","featuresV132","featuresV133","featuresV140","featuresV141","featuresV142","featuresV150","RELEASE_FEATURES","docVersion","VUE_APP_SERVER_VERSION","latestVersion","latestMinorVersion","minorVersions","featureEnabled","featureKey","serverVersion","releasedFeatures","suffixName","fileSuffix","tipString","qs","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","ignore","lolcation","globalVar","finaldestination","Url","pathname","extractProtocol","forwardSlashes","otherSlashes","slashesCount","relative","up","extracted","instruction","ins","punycode","maxInt","tMin","tMax","skew","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","mapDomain","encoded","ucs2decode","extra","ucs2encode","basicToDigit","digitToBasic","digit","flag","adapt","numPoints","firstTime","basic","oldi","baseMinusT","bias","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","toUnicode","toASCII","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","ftp","gopher","urlParse","parseQueryString","slashesDenoteHost","urlResolve","urlResolveObject","resolveObject","queryIndex","splitter","uSplit","slashRegex","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","ae","qm","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","isAbsolute","localStorage","isArgumentsObject","isGeneratorFunction","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isMapToString","working","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isDataViewToString","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","descriptors","formatRegExp","noDeprecation","throwDeprecation","traceDeprecation","debugs","debugEnvRegex","debugEnv","stylize","stylizeNoColor","_extend","stylizeWithColor","formatValue","styleType","arrayToHash","primitive","formatPrimitive","visibleKeys","formatError","braces","formatArray","formatProperty","reduceToSingleString","numLinesEst","isNullOrUndefined","isPrimitive","pid","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","callbackify","callbackified","maybeCb","rej","promisify","promiseResolve","promiseReject","sfc","__vccOpts","locals","listToStyles","parentId","newStyles","sourceMap","hasDocument","DEBUG","stylesInDom","singletonElement","singletonCounter","isProduction","ssrIdKey","isOldIE","addStylesClient","_isProduction","addStylesToDom","newList","mayRemove","domStyle","addStyle","createStyleElement","styleElement","styleIndex","applyToSingletonTag","applyToTag","replaceText","textStore","replacement","cssNode","ssrId","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","isProxyAvailable","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","isPerformanceSupported","performance","perf_hooks","ApiProxy","targetQueue","onQueue","defaultSettings","localSettingsSaveId","currentSettings","getItem","fallbacks","setSettings","setItem","pluginId","proxiedOn","_target","proxiedTarget","setRealTarget","setupDevtoolsPlugin","pluginDescriptor","setupFn","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","proxy","__VUE_DEVTOOLS_PLUGINS__","storeKey","forEachValue","genericSubscribe","hot","_actions","_mutations","_wrappedGetters","_modulesNamespaceMap","installModule","_modules","resetStoreState","oldState","_state","oldScope","_scope","_makeLocalGettersCache","wrappedGetters","computedObj","computedCache","effectScope","enableStrictMode","_withCommit","getNamespace","parentState","getNestedState","moduleName","makeLocalContext","forEachMutation","namespacedType","registerMutation","forEachAction","registerAction","forEachGetter","getter","registerGetter","forEachChild","noNamespace","_payload","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","_devtoolHook","rawGetter","LABEL_VUEX_BINDINGS","MUTATIONS_LAYER_ID","ACTIONS_LAYER_ID","INSPECTOR_ID","actionId","addDevtools","app","homepage","packageName","componentStateTypes","api","addTimelineLayer","COLOR_LIME_500","addInspector","treeFilterPlaceholder","getInspectorTree","inspectorId","flattenStoreForInspectorTree","rootNodes","formatStoreForInspectorTree","getInspectorState","modulePath","formatStoreForInspectorState","getStoreModule","editInspectorState","subscribe","notifyComponentUpdate","sendInspectorTree","sendInspectorState","addTimelineEvent","layerId","subscribeAction","_time","groupId","subtitle","_custom","COLOR_DARK","COLOR_WHITE","TAG_NAMESPACED","backgroundColor","extractNameFromPath","_children","gettersKeys","storeState","editable","transformPathsToObjectTree","canThrow","abstract","moduleMap","Module","rawModule","runtime","_rawModule","rawState","prototypeAccessors$1","addChild","getChild","hasChild","ModuleCollection","rawRootModule","targetModule","newModule","this$1$1","rawChildModule","unregister","isRegistered","Store","devtools","_committing","_actionSubscribers","_subscribers","_devtools","prototypeAccessors","install","injectKey","globalProperties","useDevtools","replaceState","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","normalizeNamespace","normalizeMap","getModuleByNamespace","vuex","isValidMap","helper","availableTypedArrays","typedArrays","superProto","tryTypedArrays","trySlices","inserted","pushNode","forEachReverse","getReverse","mapReverse","reduceReverse","toArrayReverse","sliceReverse","deleteCount","possibleNames","deepFreezeEs6","deepFreeze","Response","isMatchIgnored","ignoreMatch","inherit$1","SPAN_CLOSE","emitsWrappingTags","sublanguage","scopeToCSSClass","pieces","HTMLRenderer","parseTree","classPrefix","addText","openNode","closeNode","newNode","TokenTree","closeAllNodes","_collapse","TokenTreeEmitter","addKeyword","addSublanguage","toHTML","renderer","lookahead","anyNumberOfTimes","stripOptionsFromArgs","either","countMatchGroups","lexeme","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","MATCH_NOTHING_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","beginShebang","begin","relevance","resp","BACKSLASH_ESCAPE","APOS_STRING_MODE","illegal","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","excludeBegin","ENGLISH_WORD","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","END_SAME_AS_BEGIN","_beginMatch","MODES","skipIfHasPrecedingDot","scopeClassName","_parent","beginKeywords","__beforeBegin","keywords","compileIllegal","compileMatch","compileRelevance","beforeMatchExt","beforeMatch","starts","originalMode","endsParent","COMMON_KEYWORDS","DEFAULT_KEYWORD_SCOPE","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","compileList","keywordList","scoreForKeyword","providedScore","commonKeyword","seenDeprecations","MultiClassError","remapScopeNames","scopeNames","positions","_emit","_multi","beginMultiClass","returnBegin","beginScope","endMultiClass","excludeEnd","returnEnd","endScope","scopeSugar","MultiClass","_wrap","compileLanguage","langRe","case_insensitive","unicodeRegex","MultiRegex","matchIndexes","matchAt","addRule","terminators","matcherRe","ResumableMultiRegex","multiRegexes","regexIndex","getMatcher","resumingScanAtSamePosition","considerAll","m2","buildModeRegex","terminatorEnd","compileMode","cmode","isCompiled","compilerExtensions","keywordPattern","$pattern","keywordPatternRe","beginRe","endsWithParent","endRe","illegalRe","expandOrCloneMode","classNameAliases","dependencyOnParent","variants","cachedVariants","variant","HTMLInjectionError","inherit","NO_MATCH","MAX_KEYWORD_HITS","HLJS","languages","aliases","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","ignoreUnescapedHTML","throwUnescapedHTML","noHighlightRe","languageDetectRe","cssSelector","__emitter","shouldNotHighlight","languageName","blockLanguage","codeOrLanguageName","optionsOrCode","fire","_highlight","codeToHighlight","continuation","keywordHits","keywordData","matchText","processKeywords","modeBuffer","keywordRelevance","cssClass","processSubLanguage","subLanguage","continuations","highlightAuto","_emitter","processBuffer","emitMultiClass","klass","startNewMode","endOfMode","matchPlusRemainder","doIgnore","resumeScanAtSamePosition","doBeginMatch","beforeCallbacks","doEndMatch","endMode","processContinuations","lastMatch","processLexeme","textBeforeMatch","badRule","processedCount","_top","_illegalBy","resultSoFar","errorRaised","justTextHighlightResult","languageSubset","autoDetection","supersetOf","secondBest","updateClassName","currentLang","resultLang","highlightElement","configure","initHighlighting","highlightAll","initHighlightingOnLoad","wantsHighlight","languageDefinition","error$1","rawDefinition","registerAliases","unregisterLanguage","listLanguages","aliasList","upgradePluginAPI","addPlugin","deprecateHighlightBlock","highlightBlock","debugMode","safeMode","versionString","HighlightJS","VARIABLE","KEYWORDS","STRING","VAR","BRACED_VAR","SUBST","HERE_DOC","QUOTE_STRING","ESCAPED_QUOTE","APOS_STRING","ARITHMETIC","SH_LIKE_SHELLS","KNOWN_SHEBANG","FUNCTION","LITERALS","PATH_MODE","SHELL_BUILT_INS","BASH_BUILT_INS","ZSH_BUILT_INS","GNU_CORE_UTILS","literal","built_in","DECLTYPE_AUTO_RE","NAMESPACE_RE","TEMPLATE_ARGUMENT_RE","FUNCTION_TYPE_RE","CHARACTER_ESCAPES","STRINGS","NUMBERS","PREPROCESSOR","FUNCTION_TITLE","C_KEYWORDS","C_TYPES","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","preprocessor","strings","clojure","SYMBOLSTART","SYMBOL_RE","globals","SYMBOL","NUMBER","CHARACTER","REGEX","COMMA","COLLECTION","LIST","BODY","DEFAULT_CONTAINS","CPP_PRIMITIVE_TYPES","RESERVED_KEYWORDS","RESERVED_TYPES","TYPE_HINTS","FUNCTION_HINTS","BUILT_IN","CPP_KEYWORDS","_type_hints","FUNCTION_DISPATCH","_hint","crystal","INT_SUFFIX","FLOAT_SUFFIX","CRYSTAL_IDENT_RE","CRYSTAL_METHOD_RE","CRYSTAL_PATH_RE","CRYSTAL_KEYWORDS","EXPANSION","recursiveParen","Q_STRING","REGEXP","REGEXP2","ATTRIBUTE","CRYSTAL_DEFAULT_CONTAINS","csharp","BUILT_IN_KEYWORDS","FUNCTION_MODIFIERS","LITERAL_KEYWORDS","NORMAL_KEYWORDS","CONTEXTUAL_KEYWORDS","VERBATIM_STRING","VERBATIM_STRING_NO_LF","SUBST_NO_LF","INTERPOLATED_STRING","INTERPOLATED_VERBATIM_STRING","INTERPOLATED_VERBATIM_STRING_NO_LF","GENERIC_MODIFIER","TYPE_IDENT_RE","AT_IDENTIFIER","IMPORTANT","BLOCK_COMMENT","HEXCOLOR","ATTRIBUTE_SELECTOR_MODE","CSS_NUMBER_MODE","CSS_VARIABLE","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","modes","VENDOR_PREFIX","AT_MODIFIERS","AT_PROPERTY_RE","keyframePosition","BRACED_SUBST","BUILT_IN_TYPES","NULLABLE_BUILT_IN_TYPES","BASIC_KEYWORDS","elixir","ELIXIR_IDENT_RE","ELIXIR_METHOD_RE","KWS","ESCAPES_RE","SIGIL_DELIMITERS","SIGIL_DELIMITER_MODES","escapeSigilEnd","LOWERCASE_SIGIL","UPCASE_SIGIL","REGEX_SIGIL","CLASS","ELIXIR_DEFAULT_CONTAINS","CONSTRUCTOR","erlang","BASIC_ATOM_RE","FUNCTION_NAME_RE","ERLANG_RESERVED","NAMED_FUN","FUNCTION_CALL","TUPLE","VAR1","VAR2","RECORD_ACCESS","BLOCK_STATEMENTS","BASIC_MODES","DIRECTIVES","PARAMS","fsharp","BANG_KEYWORD_MODE","PREPROCESSOR_KEYWORDS","SPECIAL_IDENTIFIERS","KNOWN_TYPES","BUILTINS","ALL_KEYWORDS","ML_COMMENT","IDENTIFIER_RE","QUOTED_IDENTIFIER","BEGIN_GENERIC_TYPE_SYMBOL_RE","GENERIC_TYPE_SYMBOL","makeOperatorMode","includeEqual","allOperatorChars","OPERATOR_CHARS","OPERATOR_CHAR_RE","OPERATOR_CHAR_OR_DOT_RE","OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE","SYMBOLIC_OPERATOR_RE","OPERATOR","OPERATOR_WITHOUT_EQUAL","makeTypeAnnotationMode","prefixScope","TYPE_ANNOTATION","DISCRIMINATED_UNION_TYPE_ANNOTATION","TYPE_DECLARATION","COMPUTATION_EXPRESSION","QUOTED_STRING","TRIPLE_QUOTED_STRING","INTERPOLATED_TRIPLE_QUOTED_STRING","CHAR_LITERAL","BUILT_INS","CLASS_DEFINITION","DOUBLE_QUOTED_ID_REGEX","SINGLE_QUOTED_ID_REGEX","BRACKET_QUOTED_ID_REGEX","PLAIN_ID_REGEX","PATH_DELIMITER_REGEX","ANY_ID","IDENTIFIER_REGEX","HASH_PARAM_REGEX","HELPER_NAME_OR_PATH_EXPRESSION","HELPER_PARAMETER","SUB_EXPRESSION","HASH","BLOCK_PARAMS","HELPER_PARAMETERS","SUB_EXPRESSION_CONTENTS","OPENING_BLOCK_MUSTACHE_CONTENTS","CLOSING_BLOCK_MUSTACHE_CONTENTS","BASIC_MUSTACHE_CONTENTS","ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH","PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH","haskell","PRAGMA","decimalDigits","hexDigits","binaryDigits","octalDigits","COMMENTS","VARIABLES","ARRAY","BARE_KEY","QUOTED_KEY_DOUBLE_QUOTE","QUOTED_KEY_SINGLE_QUOTE","ANY_KEY","DOTTED_KEY","frac","recurRegex","substitution","JAVA_IDENT_RE","GENERIC_IDENT_RE","MAIN_KEYWORDS","ANNOTATION","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","hasClosingTag","IDENT_RE$1","FRAGMENT","XML_SELF_CLOSING","XML_TAG","isTrulyOpeningTag","afterMatchIndex","nextChar","afterMatch","KEYWORDS$1","decimalInteger","HTML_TEMPLATE","CSS_TEMPLATE","TEMPLATE_STRING","JSDOC_COMMENT","SUBST_INTERNALS","SUBST_AND_COMMENTS","PARAMS_CONTAINS","CLASS_OR_EXTENDS","CLASS_REFERENCE","USE_STRICT","FUNCTION_DEFINITION","UPPER_CASE_CONSTANT","noneOf","PROPERTY_ACCESS","GETTER_OR_SETTER","FUNC_LEAD_IN_RE","FUNCTION_VARIABLE","PUNCTUATION","LITERALS_MODE","kotlin","KEYWORDS_WITH_LABEL","LABEL","ANNOTATION_USE_SITE","KOTLIN_NUMBER_MODE","KOTLIN_NESTED_COMMENT","KOTLIN_PAREN_TYPE","KOTLIN_PAREN_TYPE2","PSEUDO_SELECTORS","PSEUDO_SELECTORS$1","INTERP_IDENT_RE","RULES","VALUE_MODES","STRING_MODE","IDENT_MODE","AT_KEYWORDS","PARENS_MODE","VALUE_WITH_RULESETS","MIXIN_GUARD_MODE","RULE_MODE","AT_RULE_MODE","VAR_RULE_MODE","SELECTOR_MODE","PSEUDO_SELECTOR_MODE","LISP_IDENT_RE","MEC_RE","LISP_SIMPLE_NUMBER_RE","KEYWORD","IDENT","MEC","QUOTED_LIST","QUOTED","QUOTED_ATOM","OPENING_LONG_BRACKET","CLOSING_LONG_BRACKET","LONG_BRACKETS","makefile","FUNC","ASSIGNMENT","META","TARGET","INLINE_HTML","HORIZONTAL_RULE","CODE","LINK_REFERENCE","URL_SCHEME","LINK","BOLD","ITALIC","BOLD_WITHOUT_ITALIC","ITALIC_WITHOUT_BOLD","CONTAINABLE","BLOCKQUOTE","nginx","DEFAULT","objectivec","API_CLASS","CLASS_KEYWORDS","REGEX_MODIFIERS","PERL_KEYWORDS","METHOD","STRING_CONTAINS","REGEX_DELIMS","PAIRED_DOUBLE_RE","PAIRED_RE","PERL_DEFAULT_CONTAINS","COMMENT_MODE","UNQUOTED_IDENT","DOLLAR_STRING","SQL_KW","ROLE_ATTRS","PLPGSQL_KW","TYPES_RE","SQL_BI","PLPGSQL_BI","PLPGSQL_EXCEPTIONS","FUNCTIONS","FUNCTIONS_RE","NOT_PERL_ETC","PASCAL_CASE_CLASS_NAME_RE","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","WHITESPACE","dualCase","normalizeKeywords","CONSTRUCTOR_CALL","CONSTANT_REFERENCE","LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON","NAMED_ARGUMENT","PARAMS_MODE","FUNCTION_INVOKE","ATTRIBUTE_CONTAINS","powershell","VALID_VERBS","COMPARISON_OPERATORS","TITLE_NAME_RE","BACKTICK_ESCAPE","PS_HELPTAGS","PS_COMMENT","CMDLETS","PS_CLASS","PS_FUNCTION","PS_USING","PS_ARGUMENTS","HASH_SIGNS","PS_METHODS","GENTLEMANS_SET","PS_TYPE","WS0","WS1","EQUAL_DELIM","WS_DELIM","DELIM","DELIM_AND_VALUE","protobuf","python","RESERVED_WORDS","PROMPT","LITERAL_BRACKET","digitpart","pointfloat","COMMENT_TYPE","RUBY_METHOD_RE","CLASS_NAME_RE","CLASS_NAME_WITH_NAMESPACE_RE","RUBY_KEYWORDS","YARDOCTAG","IRB_OBJECT","COMMENT_MODES","decimal","digits","METHOD_DEFINITION","OBJECT_CREATION","RUBY_DEFAULT_CONTAINS","SIMPLE_PROMPT","DEFAULT_PROMPT","RVM_PROMPT","IRB_DEFAULT","rust","NUMBER_SUFFIX","EXTENSION","END","INLINE_MODES","USING_PARAM_CLAUSE","PSEUDO_ELEMENTS$1","PSEUDO_CLASSES$1","MULTI_WORD_TYPES","NON_RESERVED_WORDS","RESERVED_FUNCTIONS","POSSIBLE_WITHOUT_PARENS","COMBOS","reduceRelevancy","exceptions","when","qualifyFn","keywordWrapper","dotKeywords","optionalDotKeywords","keywordTypes","precedencegroupKeywords","numberSignKeywords","builtIns","operatorHead","operatorCharacter","identifierHead","identifierCharacter","typeIdentifier","keywordAttributes","availabilityKeywords","DOT_KEYWORD","KEYWORD_GUARD","PLAIN_KEYWORDS","kw","REGEX_KEYWORDS","KEYWORD_MODES","BUILT_IN_GUARD","OPERATOR_GUARD","OPERATORS","ESCAPED_CHARACTER","rawDelimiter","ESCAPED_NEWLINE","INTERPOLATION","MULTILINE_STRING","SINGLE_LINE_STRING","IMPLICIT_PARAMETER","PROPERTY_WRAPPER_PROJECTION","IDENTIFIERS","AVAILABLE_ATTRIBUTE","KEYWORD_ATTRIBUTE","USER_DEFINED_ATTRIBUTE","GENERIC_ARGUMENTS","TUPLE_ELEMENT_NAME","GENERIC_PARAMETERS","FUNCTION_PARAMETER_NAME","FUNCTION_PARAMETERS","INIT_SUBSCRIPT","OPERATOR_DECLARATION","PRECEDENCEGROUP","interpolation","submodes","typescript","tsLanguage","INTERFACE","TS_SPECIFIC_KEYWORDS","DECORATOR","swapMode","indx","functionDeclaration","TAG_NAME_RE","XML_IDENT_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","URI_CHARACTERS","TEMPLATE_VARIABLES","CONTAINER_STRING","DATE_RE","TIME_RE","FRACTION_RE","ZONE_RE","VALUE_CONTAINER","leafPrototypes","definition","chunkId","inProgress","dataWebpackPrefix","needAttach","scripts","onScriptComplete","doneFns","nmd","baseURI","installedChunks","installedChunkData","loadingEnded","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","importTypes","beforeCreate","_component_BannerGraphic","_component_IndentedPanel","showSupportBundle","dev","rancherLink","rancherIntegrationLink","longhornLink","_component_CommunityLinks","_component_HarvesterSupportBundle","_component_BrandImage","draggable","titleKey","pathToBrandedImage","dark","managementSettings","uiLoginBackgroundLight","uiLoginBackgroundDark","uiLogoLight","uiLogoDark","uiBannerLight","uiBannerDark","defaultPathToBrandedImage","themePrefix","BrandImage","_component_SimpleBox","selectedLocaleLabel","showWeChatModal","DEFAULT_LINKS","COLLECTIVE_LINK_ID","APP_COLLECTION_LINK","SUPPORT_LINK","readonly","CN_FORUMS_LINK","CUSTOM_LINKS_VERSION","CUSTOM_LINKS_COLLECTIVE_VERSION","CUSTOM_LINKS_APP_CO_VERSION","fetchLinks","hasSupport","isSupportPage","uiLinks","uiLinksSetting","ensureSupportLink","uiIssuesSetting","uiCommunitySetting","issueLink","supportLink","customNamesMap","linkMap","linkInterceptors","existingRel","combined","processLink","SimpleBox","linkOptions","BannerGraphic","IndentedPanel","CommunityLinks","HarvesterSupportBundle","internalPrefix","_component_SerialConsole","privateData","wrappers","pd","retv","setCancelFlag","passiveListener","canceled","eventTarget","eventPhase","currentTarget","stopped","immediateStopped","timeStamp","defineRedirectDescriptor","defineCallDescriptor","defineWrapper","BaseEvent","getWrapper","wrapEvent","setEventPhase","setCurrentTarget","setPassiveListener","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","defaultPrevented","composed","cancelBubble","returnValue","initEvent","listenersMap","CAPTURE","BUBBLE","getListeners","defineEventAttributeDescriptor","eventName","listenerType","defineEventAttribute","eventTargetPrototype","defineCustomEventTarget","CustomEventTarget","EventTarget","optionsIsObj","wrappedEvent","handleEvent","sockId","warningShown","wasConnected","INSECURE","SECURE","STATE_DISCONNECTED","STATE_CONNECTING","STATE_CONNECTED","STATE_CLOSING","STATE_RECONNECTING","EVENT_CONNECTING","EVENT_CONNECTED","EVENT_DISCONNECTED","EVENT_MESSAGE","EVENT_FRAME_TIMEOUT","EVENT_CONNECT_ERROR","EVENT_DISCONNECT_ERROR","NO_WATCH","NO_SCHEMA","NO_PERMS","REVISION_TOO_OLD","Socket","autoReconnect","frameTimeout","maxTries","idAsTimestamp","setUrl","connect","socket","_baseLog","WebSocket","onmessage","_onmessage","onopen","_opened","_error","_closed","callBack","disconnectCallBacks","_close","reconnect","_log","getMetadata","getId","isConnected","setAutoReconnect","setAutoReconnectUrl","autoReconnectUrl","closingId","atTime","disconnectedAt","afterMilliseconds","hasBeenOpen","hasReconnected","framesReceived","_resetWatchdog","reconnectTimer","frameTimer","wasClean","callBacks","terminal","fitAddon","searchAddon","webglAddon","isOpening","backlog","xtermConfig","allowProposedApi","cursorBlink","useStyle","setupTerminal","docStyle","xterm","addons","webgl","weblinks","Terminal","cursor","FitAddon","SearchAddon","WebGlAddon","loadAddon","WebLinksAddon","str2ab","TextEncoder","getSocketUrl","proposeDimensions","Width","Height","SerialConsole","vmiList","serialConsole","_component_NovncConsoleWrapper","onAutoHide","keysRecord","_component_novnc_console_item","onUpdate","onSendKeys","sendKeys","hasSoftRebootAction","softReboot","hideCustomKeysBar","showKeysModal","preferredShortcutKeys","sendCustomKeys","renderKeysModal","_component_NovncConsoleCustomKeys","currentUser","hideKeysModal","isDown","_component_NovncConsole","XK_VoidSymbol","XK_BackSpace","XK_Tab","XK_Linefeed","XK_Clear","XK_Return","XK_Pause","XK_Scroll_Lock","XK_Sys_Req","XK_Escape","XK_Delete","XK_Multi_key","XK_Codeinput","XK_SingleCandidate","XK_MultipleCandidate","XK_PreviousCandidate","XK_Kanji","XK_Muhenkan","XK_Henkan_Mode","XK_Henkan","XK_Romaji","XK_Hiragana","XK_Katakana","XK_Hiragana_Katakana","XK_Zenkaku","XK_Hankaku","XK_Zenkaku_Hankaku","XK_Touroku","XK_Massyo","XK_Kana_Lock","XK_Kana_Shift","XK_Eisu_Shift","XK_Eisu_toggle","XK_Kanji_Bangou","XK_Zen_Koho","XK_Mae_Koho","XK_Home","XK_Left","XK_Up","XK_Right","XK_Down","XK_Prior","XK_Page_Up","XK_Next","XK_Page_Down","XK_End","XK_Begin","XK_Select","XK_Print","XK_Execute","XK_Insert","XK_Undo","XK_Redo","XK_Menu","XK_Find","XK_Cancel","XK_Help","XK_Break","XK_Mode_switch","XK_script_switch","XK_Num_Lock","XK_KP_Space","XK_KP_Tab","XK_KP_Enter","XK_KP_F1","XK_KP_F2","XK_KP_F3","XK_KP_F4","XK_KP_Home","XK_KP_Left","XK_KP_Up","XK_KP_Right","XK_KP_Down","XK_KP_Prior","XK_KP_Page_Up","XK_KP_Next","XK_KP_Page_Down","XK_KP_End","XK_KP_Begin","XK_KP_Insert","XK_KP_Delete","XK_KP_Equal","XK_KP_Multiply","XK_KP_Add","XK_KP_Separator","XK_KP_Subtract","XK_KP_Decimal","XK_KP_Divide","XK_KP_0","XK_KP_1","XK_KP_2","XK_KP_3","XK_KP_4","XK_KP_5","XK_KP_6","XK_KP_7","XK_KP_8","XK_KP_9","XK_F1","XK_F2","XK_F3","XK_F4","XK_F5","XK_F6","XK_F7","XK_F8","XK_F9","XK_F10","XK_F11","XK_L1","XK_F12","XK_L2","XK_F13","XK_L3","XK_F14","XK_L4","XK_F15","XK_L5","XK_F16","XK_L6","XK_F17","XK_L7","XK_F18","XK_L8","XK_F19","XK_L9","XK_F20","XK_L10","XK_F21","XK_R1","XK_F22","XK_R2","XK_F23","XK_R3","XK_F24","XK_R4","XK_F25","XK_R5","XK_F26","XK_R6","XK_F27","XK_R7","XK_F28","XK_R8","XK_F29","XK_R9","XK_F30","XK_R10","XK_F31","XK_R11","XK_F32","XK_R12","XK_F33","XK_R13","XK_F34","XK_R14","XK_F35","XK_R15","XK_Shift_L","XK_Shift_R","XK_Control_L","XK_Control_R","XK_Caps_Lock","XK_Shift_Lock","XK_Meta_L","XK_Meta_R","XK_Alt_L","XK_Alt_R","XK_Super_L","XK_Super_R","XK_Hyper_L","XK_Hyper_R","XK_ISO_Level3_Shift","XK_ISO_Next_Group","XK_ISO_Prev_Group","XK_ISO_First_Group","XK_ISO_Last_Group","XK_space","XK_exclam","XK_quotedbl","XK_numbersign","XK_dollar","XK_percent","XK_ampersand","XK_apostrophe","XK_quoteright","XK_parenleft","XK_parenright","XK_asterisk","XK_plus","XK_comma","XK_minus","XK_period","XK_slash","XK_0","XK_1","XK_2","XK_3","XK_4","XK_5","XK_6","XK_7","XK_8","XK_9","XK_colon","XK_semicolon","XK_less","XK_equal","XK_greater","XK_question","XK_at","XK_A","XK_B","XK_C","XK_D","XK_E","XK_F","XK_G","XK_H","XK_I","XK_J","XK_K","XK_L","XK_M","XK_N","XK_O","XK_P","XK_Q","XK_R","XK_S","XK_T","XK_U","XK_V","XK_W","XK_X","XK_Y","XK_Z","XK_bracketleft","XK_backslash","XK_bracketright","XK_asciicircum","XK_underscore","XK_grave","XK_quoteleft","XK_a","XK_b","XK_c","XK_d","XK_e","XK_f","XK_g","XK_h","XK_i","XK_j","XK_k","XK_l","XK_m","XK_n","XK_o","XK_p","XK_q","XK_r","XK_s","XK_t","XK_u","XK_v","XK_w","XK_x","XK_y","XK_z","XK_braceleft","XK_bar","XK_braceright","XK_asciitilde","XK_nobreakspace","XK_exclamdown","XK_cent","XK_sterling","XK_currency","XK_yen","XK_brokenbar","XK_section","XK_diaeresis","XK_copyright","XK_ordfeminine","XK_guillemotleft","XK_notsign","XK_hyphen","XK_registered","XK_macron","XK_degree","XK_plusminus","XK_twosuperior","XK_threesuperior","XK_acute","XK_mu","XK_paragraph","XK_periodcentered","XK_cedilla","XK_onesuperior","XK_masculine","XK_guillemotright","XK_onequarter","XK_onehalf","XK_threequarters","XK_questiondown","XK_Agrave","XK_Aacute","XK_Acircumflex","XK_Atilde","XK_Adiaeresis","XK_Aring","XK_AE","XK_Ccedilla","XK_Egrave","XK_Eacute","XK_Ecircumflex","XK_Ediaeresis","XK_Igrave","XK_Iacute","XK_Icircumflex","XK_Idiaeresis","XK_ETH","XK_Eth","XK_Ntilde","XK_Ograve","XK_Oacute","XK_Ocircumflex","XK_Otilde","XK_Odiaeresis","XK_multiply","XK_Oslash","XK_Ooblique","XK_Ugrave","XK_Uacute","XK_Ucircumflex","XK_Udiaeresis","XK_Yacute","XK_THORN","XK_Thorn","XK_ssharp","XK_agrave","XK_aacute","XK_acircumflex","XK_atilde","XK_adiaeresis","XK_aring","XK_ae","XK_ccedilla","XK_egrave","XK_eacute","XK_ecircumflex","XK_ediaeresis","XK_igrave","XK_iacute","XK_icircumflex","XK_idiaeresis","XK_eth","XK_ntilde","XK_ograve","XK_oacute","XK_ocircumflex","XK_otilde","XK_odiaeresis","XK_division","XK_oslash","XK_ooblique","XK_ugrave","XK_uacute","XK_ucircumflex","XK_udiaeresis","XK_yacute","XK_thorn","XK_ydiaeresis","XK_Hangul","XK_Hangul_Hanja","XK_Hangul_Jeonja","XF86XK_ModeLock","XF86XK_MonBrightnessUp","XF86XK_MonBrightnessDown","XF86XK_KbdLightOnOff","XF86XK_KbdBrightnessUp","XF86XK_KbdBrightnessDown","XF86XK_Standby","XF86XK_AudioLowerVolume","XF86XK_AudioMute","XF86XK_AudioRaiseVolume","XF86XK_AudioPlay","XF86XK_AudioStop","XF86XK_AudioPrev","XF86XK_AudioNext","XF86XK_HomePage","XF86XK_Mail","XF86XK_Start","XF86XK_Search","XF86XK_AudioRecord","XF86XK_Calculator","XF86XK_Memo","XF86XK_ToDoList","XF86XK_Calendar","XF86XK_PowerDown","XF86XK_ContrastAdjust","XF86XK_RockerUp","XF86XK_RockerDown","XF86XK_RockerEnter","XF86XK_Back","XF86XK_Forward","XF86XK_Stop","XF86XK_Refresh","XF86XK_PowerOff","XF86XK_WakeUp","XF86XK_Eject","XF86XK_ScreenSaver","XF86XK_WWW","XF86XK_Sleep","XF86XK_Favorites","XF86XK_AudioPause","XF86XK_AudioMedia","XF86XK_MyComputer","XF86XK_VendorHome","XF86XK_LightBulb","XF86XK_Shop","XF86XK_History","XF86XK_OpenURL","XF86XK_AddFavorite","XF86XK_HotLinks","XF86XK_BrightnessAdjust","XF86XK_Finance","XF86XK_Community","XF86XK_AudioRewind","XF86XK_BackForward","XF86XK_Launch0","XF86XK_Launch1","XF86XK_Launch2","XF86XK_Launch3","XF86XK_Launch4","XF86XK_Launch5","XF86XK_Launch6","XF86XK_Launch7","XF86XK_Launch8","XF86XK_Launch9","XF86XK_LaunchA","XF86XK_LaunchB","XF86XK_LaunchC","XF86XK_LaunchD","XF86XK_LaunchE","XF86XK_LaunchF","XF86XK_ApplicationLeft","XF86XK_ApplicationRight","XF86XK_Book","XF86XK_CD","XF86XK_Calculater","XF86XK_Clear","XF86XK_Close","XF86XK_Copy","XF86XK_Cut","XF86XK_Display","XF86XK_DOS","XF86XK_Documents","XF86XK_Excel","XF86XK_Explorer","XF86XK_Game","XF86XK_Go","XF86XK_iTouch","XF86XK_LogOff","XF86XK_Market","XF86XK_Meeting","XF86XK_MenuKB","XF86XK_MenuPB","XF86XK_MySites","XF86XK_New","XF86XK_News","XF86XK_OfficeHome","XF86XK_Open","XF86XK_Option","XF86XK_Paste","XF86XK_Phone","XF86XK_Q","XF86XK_Reply","XF86XK_Reload","XF86XK_RotateWindows","XF86XK_RotationPB","XF86XK_RotationKB","XF86XK_Save","XF86XK_ScrollUp","XF86XK_ScrollDown","XF86XK_ScrollClick","XF86XK_Send","XF86XK_Spell","XF86XK_SplitScreen","XF86XK_Support","XF86XK_TaskPane","XF86XK_Terminal","XF86XK_Tools","XF86XK_Travel","XF86XK_UserPB","XF86XK_User1KB","XF86XK_User2KB","XF86XK_Video","XF86XK_WheelButton","XF86XK_Word","XF86XK_Xfer","XF86XK_ZoomIn","XF86XK_ZoomOut","XF86XK_Away","XF86XK_Messenger","XF86XK_WebCam","XF86XK_MailForward","XF86XK_Pictures","XF86XK_Music","XF86XK_Battery","XF86XK_Bluetooth","XF86XK_WLAN","XF86XK_UWB","XF86XK_AudioForward","XF86XK_AudioRepeat","XF86XK_AudioRandomPlay","XF86XK_Subtitle","XF86XK_AudioCycleTrack","XF86XK_CycleAngle","XF86XK_FrameBack","XF86XK_FrameForward","XF86XK_Time","XF86XK_Select","XF86XK_View","XF86XK_TopMenu","XF86XK_Red","XF86XK_Green","XF86XK_Yellow","XF86XK_Blue","XF86XK_Suspend","XF86XK_Hibernate","XF86XK_TouchpadToggle","XF86XK_TouchpadOn","XF86XK_TouchpadOff","XF86XK_AudioMicMute","XF86XK_Switch_VT_1","XF86XK_Switch_VT_2","XF86XK_Switch_VT_3","XF86XK_Switch_VT_4","XF86XK_Switch_VT_5","XF86XK_Switch_VT_6","XF86XK_Switch_VT_7","XF86XK_Switch_VT_8","XF86XK_Switch_VT_9","XF86XK_Switch_VT_10","XF86XK_Switch_VT_11","XF86XK_Switch_VT_12","XF86XK_Ungrab","XF86XK_ClearGrab","XF86XK_Next_VMode","XF86XK_Prev_VMode","XF86XK_LogWindowTree","XF86XK_LogGrabInfo","codepoints","keysym","DOMKeyTable","addStandard","addLeftRight","addNumpad","numpad","_logLevel","Debug","Info","Warn","initLogging","isTouchDevice","ontouchstart","maxTouchPoints","msMaxTouchPoints","onFirstTouch","dragThreshold","_supportsCursorURIs","exc","supportsCursorURIs","_supportsImageMetadata","ImageData","supportsImageMetadata","_hasScrollbarGutter","scrollbarWidth","isWindows","isIOS","isEdge","getKeycode","vkeys","fixedkeys","charCode","getKeysym","codepoint","connected","disconnected","reconnecting","retryTimes","maximumRetryTimes","toUnsigned32bit","toConvert","toSigned32bit","decodeUTF8","utf8string","allowLatin1","encodeUTF8","DOMString","clientToElement","bounds","stopEvent","_captureRecursion","_elementForUnflushedEvents","_captureProxy","newEv","captureElement","releaseCapture","_capturedElemChanged","proxyElem","_captureObserver","setCapture","zIndex","EventTargetMixin","toBase64Table","base64Pad","lengthpad","toBinaryTable","dataLength","resultLength","leftbits","leftdata","Display","_drawCtx","_renderQ","_flushing","_fbWidth","_fbHeight","_prevDrawStyle","_tile","_tile16x16","_tileX","_tileY","getContext","_targetCtx","_viewportLoc","_backbuffer","_damageBounds","createImageData","_scale","_clipViewport","onflush","_rescale","clipViewport","vp","viewportChangeSize","viewportChangePos","deltaX","deltaY","vx2","vy2","_damage","canvas","absX","absY","saveImg","getImageData","putImageData","fromQueue","vx","vy","drawImage","_renderQPush","fillRect","_setFillColor","copyImage","oldX","oldY","newX","newY","mozImageSmoothingEnabled","webkitImageSmoothingEnabled","msImageSmoothingEnabled","imageSmoothingEnabled","imageRect","mime","Image","startTile","subTile","xend","yend","finishTile","blitImage","_bgrxImageData","blitRgbImage","_rgbImageData","blitRgbxImage","_rgbxImageData","autoscale","containerWidth","containerHeight","scaleRatio","targetAspectRatio","fbAspectRatio","newStyle","fillStyle","_scanRenderQ","_resumeRenderQ","_noVNCDisplay","arraySet","src_offs","dest_offs","Buf8","Buf16","Buf32","adler","makeTable","BAD","inflate_fast","strm","_in","_out","beg","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","from_source","next_in","avail_in","next_out","avail_out","lencode","distcode","lenbits","distbits","dolen","dodist","sane","MAXBITS","ENOUGH_LENS","ENOUGH_DISTS","CODES","LENS","DISTS","lbase","lext","dbase","dext","inflate_table","lens_index","table_index","work","mask","here_bits","here_op","here_val","huff","base_index","extra_index","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_DEFLATED","HEAD","FLAGS","TIME","EXLEN","EXTRA","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","MEM","SYNC","MAX_WBITS","DEF_WBITS","zswap32","InflateState","havedict","wbits","ncode","nlen","ndist","lendyn","distdyn","was","inflateResetKeep","total_in","total_out","inflateReset","inflateReset2","windowBits","inflateInit2","inflateInit","lenfix","distfix","virgin","fixedtables","updatewindow","inflate","put","last_bits","last_op","last_val","hbuf","inf_leave","xflags","extra_len","hcrc","data_type","ZStream","Inflate","setInput","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","zero","STORED_BLOCK","STATIC_TREES","DYN_TREES","MIN_MATCH","MAX_MATCH","LENGTH_CODES","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","pending_buf","send_bits","bi_valid","bi_buf","send_code","bi_reverse","bi_flush","gen_bitlen","xbits","stree","bl_count","heap","heap_max","opt_len","static_len","gen_codes","next_code","tr_static_init","init_block","dyn_ltree","dyn_dtree","bl_tree","last_lit","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","heap_len","compress_block","ltree","dtree","lx","d_buf","l_buf","build_tree","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","l_desc","d_desc","bl_desc","send_all_trees","lcodes","dcodes","blcodes","rank","detect_data_type","black_mask","static_init_done","_tr_init","_tr_stored_block","stored_len","_tr_align","_tr_flush_block","opt_lenb","static_lenb","_tr_tally","lit_bufsize","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_DEFAULT_STRATEGY","configuration_table","MAX_MEM_LEVEL","DEF_MEM_LEVEL","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","flush_pending","pending_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","match_start","fill_window","_w_size","window_size","hash_size","ins_h","hash_shift","hash_mask","deflate_stored","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","max_lazy_match","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","deflateResetKeep","deflateReset","deflateInit2","memLevel","deflateInit","deflate","old_flush","level_flags","bstate","Deflator","outputBuffer","inData","lastRet","outData","totalLen","Keyboard","_keyDownList","_pendingKey","_altGrArmed","_eventHandlers","_handleKeyUp","_handleKeyDown","_handleKeyPress","_allKeysUp","_checkAlt","onkeyevent","_sendKeyEvent","down","_getKeyCode","keyIdentifier","_altGrTimeout","_altGrCtrlTime","_handleAltGrTimeout","_handleKeyPressTimeout","skipCheckAlt","downList","KeyboardEvent","grab","keydown","keyup","keypress","blur","checkalt","ungrab","GH_NOGESTURE","GH_ONETAP","GH_TWOTAP","GH_THREETAP","GH_DRAG","GH_LONGPRESS","GH_TWODRAG","GH_PINCH","GH_INITSTATE","GH_MOVE_THRESHOLD","GH_ANGLE_THRESHOLD","GH_MULTITOUCH_TIMEOUT","GH_TAP_TIMEOUT","GH_LONGPRESS_TIMEOUT","GH_TWOTOUCH_TIMEOUT","GestureHandler","_tracked","_ignored","_waitingRelease","_releaseStart","_longpressTimeoutId","_twoTouchTimeoutId","_boundEventHandler","_eventHandler","attach","detach","_stopLongpressTimeout","_stopTwoTouchTimeout","_touchStart","_touchMove","_touchEnd","changedTouches","touch","_hasDetectedGesture","firstX","firstY","lastX","lastY","_startLongpressTimeout","hypot","prevTouch","prevDeltaMove","deltaAngle","_isTwoTouchTimeoutRunning","_startTwoTouchTimeout","_pushEvent","_longpressTimeout","_twoTouchTimeout","avgM","_getAverageMovement","avgMoveH","avgMoveV","avgD","_getAverageDistance","deltaTouchDistance","_stateToGesture","avg","_getPosition","movement","gev","fx","fy","ly","totalH","totalV","fdx","fdy","ldx","ldy","useFallback","Cursor","_canvas","pointerEvents","_position","_hotSpot","_handleMouseOver","_handleMouseLeave","_handleMouseMove","_handleMouseUp","mouseover","mouseleave","mousemove","mouseup","hotx","hoty","clearRect","_updatePosition","toDataURL","elementFromPoint","_updateVisibility","relatedTarget","_captureIsActive","_showCursor","_hideCursor","_shouldShowCursor","ENABLE_COPYWITHIN","MAX_RQ_GROW_SIZE","Websock","_websocket","_rQi","_rQlen","_rQbufferSize","_rQ","_sQbufferSize","_sQlen","_sQ","sQ","rQ","rQi","rQlen","rQpeek8","rQskipBytes","rQshift8","_rQshift","rQshift16","rQshift32","rQshiftStr","rQshiftBytes","rQshiftTo","rQslice","rQwait","goback","OPEN","_encodeMessage","sendString","_allocateBuffers","protocols","binaryType","_recvMessage","CONNECTING","_expandCompactRQ","minFit","requiredBufferSize","resizeNeeded","oldRQbuffer","_DecodeMessage","u8","PC2","totrot","SP1","SP2","SP3","SP4","SP5","SP6","SP7","SP8","pc1m","pcr","kn","rawi","KnLi","raw0","raw1","enc8","keysi","fval","encodings","encodingRaw","encodingCopyRect","encodingRRE","encodingHextile","encodingTight","encodingTightPNG","pseudoEncodingQualityLevel9","pseudoEncodingQualityLevel0","pseudoEncodingDesktopSize","pseudoEncodingLastRect","pseudoEncodingCursor","pseudoEncodingQEMUExtendedKeyEvent","pseudoEncodingDesktopName","pseudoEncodingExtendedDesktopSize","pseudoEncodingXvp","pseudoEncodingFence","pseudoEncodingContinuousUpdates","pseudoEncodingCompressLevel9","pseudoEncodingCompressLevel0","pseudoEncodingVMwareCursor","pseudoEncodingExtendedClipboard","RawDecoder","_lines","decodeRect","sock","pixelSize","bytesPerLine","curY","currHeight","pixels","newdata","CopyRectDecoder","RREDecoder","_subrects","sx","sy","swidth","sheight","HextileDecoder","_tiles","_lastsubencoding","_tilesX","_tilesY","_totalTiles","subencoding","currTile","tileX","tileY","tx","ty","tw","th","subrects","_background","_foreground","sw","TightDecoder","_ctl","_numColors","_palette","_zlibs","_fillRect","_jpegRect","_pngRect","_basicRect","_readData","ctl","streamId","_copyFilter","_paletteFilter","_gradientFilter","uncompressedSize","numColors","paletteSize","bpp","rowSize","_monoRect","_paletteRect","_getScratchBuffer","sp","_scratchBuffer","TightPNGDecoder","DISCONNECT_TIMEOUT","DEFAULT_BACKGROUND","MOUSE_MOVE_DELAY","WHEEL_STEP","WHEEL_LINE_HEIGHT","GESTURE_ZOOMSENS","GESTURE_SCRLSENS","DOUBLE_TAP_TIMEOUT","DOUBLE_TAP_THRESHOLD","extendedClipboardFormatText","extendedClipboardActionCaps","extendedClipboardActionRequest","extendedClipboardActionPeek","extendedClipboardActionNotify","extendedClipboardActionProvide","RFB","_url","_rfbCredentials","_shared","shared","_repeaterID","repeaterID","_wsProtocols","wsProtocols","_rfbConnectionState","_rfbInitState","_rfbAuthScheme","_rfbCleanDisconnect","_rfbVersion","_rfbMaxVersion","_rfbTightVNC","_rfbVeNCryptState","_rfbXvpVer","_fbName","_capabilities","power","_supportsFence","_supportsContinuousUpdates","_enabledContinuousUpdates","_supportsSetDesktopSize","_screenID","_screenFlags","_qemuExtKeyEventSupported","_clipboardText","_clipboardServerCapabilitiesActions","_clipboardServerCapabilitiesFormats","_sock","_display","_keyboard","_gestures","_disconnTimer","_resizeTimeout","_mouseMoveTimer","_decoders","_FBU","_mousePos","_mouseButtonMask","_mouseLastMoveTime","_viewportDragging","_viewportDragPos","_viewportHasMoved","_accumulatedWheelDeltaX","_accumulatedWheelDeltaY","_gestureLastTapTime","_gestureFirstDoubleTapEv","_gestureLastMagnitudeX","_gestureLastMagnitudeY","focusCanvas","_focusCanvas","windowResize","_windowResize","handleMouse","_handleMouse","handleWheel","_handleWheel","handleGesture","_handleGesture","_screen","outline","flexShrink","_cursor","_cursorImage","cursors","_onFlush","_handleKeyEvent","_handleMessage","_fail","_updateConnectionState","dragViewport","focusOnClick","_viewOnly","_scaleViewport","_resizeSession","_showDotCursor","showDotCursor","_qualityLevel","_compressionLevel","viewOnly","capabilities","touchButton","_updateClip","scaleViewport","_updateScale","resizeSession","_requestRemoteResize","_refreshCursor","cssValue","qualityLevel","_sendEncodings","compressionLevel","sendCredentials","creds","_initMsg","sendCtrlAltDel","sendKey","machineShutdown","_xvpOp","machineReboot","machineReset","scancode","QEMUExtendedKeyEvent","keyEvent","clipboardPasteFrom","extendedClipboardNotify","clientCutText","_disconnect","_setDesktopName","requestAnimationFrame","curClip","newClip","_screenSize","_fixScrollbars","setDesktopSize","oldstate","_setCapability","cap","_normalMsg","_handleMouseButton","bmask","_sendMouse","timeSinceLastMove","_handleDelayedMouseMove","pointerEvent","dX","dY","deltaMode","_fakeMouseMove","elementX","elementY","_handleTapEvent","dx","dy","magnitude","magnitudeX","magnitudeY","_negotiateProtocolVersion","sversion","isRepeater","cversion","_negotiateSecurity","numTypes","_securityContext","_securityStatus","_handleSecurityReason","strlen","_negotiateXvpAuth","xvpAuthStr","_negotiateAuthentication","_negotiateVeNCryptAuth","subtypesLength","_rfbVeNCryptSubtypesLength","_negotiateStdVNCAuth","challenge","genDES","_negotiateTightUnixAuth","_negotiateTightTunnels","numTunnels","clientSupportedTunnelTypes","signature","serverSupportedTunnelTypes","capCode","capVendor","capSignature","_negotiateTightAuth","subAuthCount","clientSupportedTypes","serverSupportedTypes","_handleSecurityResult","_negotiateServerInit","bigEndian","trueColor","redMax","greenMax","blueMax","redShift","greenShift","blueShift","nameLength","numServerMessages","numClientMessages","numEncodings","totalMessagesLength","_resize","_fbDepth","pixelFormat","fbUpdateRequest","encs","clientEncodings","_handleSetColourMapMsg","_handleServerCutText","isCaps","clientActions","extendedClipboardCaps","extendedClipboardProvide","extendedClipboardRequest","zlibStream","streamInflator","textData","sizeArray","tmpText","_handleServerFenceMsg","clientFence","_handleXvpMsg","xvpVer","xvpMsg","msgType","_framebufferUpdate","_updateContinuousUpdates","hdr","_handleRect","_handleVMwareCursor","_handleCursor","keyboardEvent","_handleDesktopName","_handleExtendedDesktopSize","_handleDataRect","cursorType","bytesPerPixel","PIXEL_MASK","andMask","pixel","xorMask","bgr","_updateCursor","pixelslength","masklength","pixIdx","maskIdx","numberOfScreens","firstUpdate","enableContinuousUpdates","xvpOp","rgbaPixels","_shouldShowDotCursor","dot","passwordChars","keycode","getRFBkeycode","xtScanCode","upperByte","lowerByte","RFBkeycode","_buildExtendedClipboardFlags","formatFlag","actionFlag","deflator","dataToDeflate","deflatedData","formatKeys","loopOffset","extended","dataOffset","flushSize","rfb","reconnectDelay","ctrlAltDelete","addKeys","getOpenStatus","keysDown","_component_ModalWithCard","keysRecordFormat","toggleRecording","recordButton","isRecording","addShortcutKey","displayedKeys","footer","closeRecordingModal","saveKeys","PREFERED_SHORTCUT_KEYS","ModalWithCard","addedShortcutKeys","savedShortcutKeys","preference","preferedShortcutKeys","hasRecord","validationList","handleShortcut","removeKey","formatkey","SHORT_KEYS","ControlLeft","KeyTable","AltLeft","FUNCTION_KEYS","Delete","PrintScreen","NORMAL_KEYS","KeyN","KeyT","KeyW","KeyY","F_KEYS","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NovncConsole","NovncConsoleItem","NovncConsoleCustomKeys","vmResource","novncConsole","popover","keyList","KeyboardUtil","NovncConsoleWrapper","_component_ResourceList","_component_IconMessage","vertical","subtle","_component_Masthead","customTypeDisplay","extraActions","_component_ExtensionPanel","extensionType","extensionLocation","listComponent","_component_ResourceTable","onPaginationChanged","iconState","messageKey","extensionData","ResourceTable","Masthead","IconMessage","ExtensionPanel","ResourceFetch","importer","__asyncLoader","componentWillFetch","$loadingResources","PANEL","RESOURCE_LIST","manualRefreshInit","ResourceList","uiPLSetting","customizeLogo","setError","updateLogo","customizeFavicon","uiFavicon","customizeColor","_component_ColorInput","customizeLinkColor","uiLinkColor","customLinkColor","handleKeyup","inputValue","viewMode","editMode","favIconSet","setFavIcon","brandSetting","findIconLink","brandImage","defaultFavIcon","getCurrentFavIcon","ColorInput","uiLogoDarkSetting","uiLogoLightSetting","uiColorSetting","uiLinkColorSetting","uiFaviconSetting","btnCB","_component_ResourceDetail","notFound","hasGraph","hasCustomDetail","hasCustomEdit","resourceSubtype","parentRouteOverride","isDetail","_component_DetailTop","isGraph","canViewChart","_component_ForceDirectedTreeChart","chartData","getGraphConfig","isYaml","showComponent","initialModel","onSetSubtype","setSubtype","escapehtml","_component_BadgeState","isNamespace","isWorkspace","workspaceLocation","hasMultipleNamespaces","_component_LiveDate","DETAIL_VIEW","invokeDetailsAction","showSensitiveToggle","sensitiveOptions","toggleSensitiveData","viewOptions","hideBanner","managedWarning","BadgeState","hasDetail","hasEdit","DETAILS_MASTHEAD","isProject","isProjectHelmChart","shouldHifenize","FLEET_NAME","defaultErrorMessage","defaultTransitioningMessage","defaultLocation","managedBy","hasNamespaces","hasDetails","hasLabels","_component_Tag","internalIcons","internalTooltips","showAllLabels","showFilteredSystemLabels","toggleLabels","hasAnnotations","toggleAnnotations","annotationsVisible","annotationCount","_component_DetailText","DetailText","Tag","moreDetails","tooltips","icons","DETAIL_TOP","currentGroup","hasDescription","hasAnything","labelCount","filteredSystemLabelsCount","isChartFirstRenderAnimationFinished","isChartFirstRendered","moreInfo","valueObj","stateLabel","_groups","subgroups","subnode","subgroup","Selection","_parents","arrayAll","selectorAll","parents","childMatcher","childFind","childFirst","childrenFilter","selectAll","_enter","sparse","EnterNode","datum","_next","bindIndex","enter","exit","groupLength","nodeByKeyValue","keyValues","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","_exit","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","compareDocumentPosition","compareNode","ascending","sortgroups","sortgroup","xlink","xmlns","space","attrRemove","attrRemoveNS","fullname","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","getAttributeNS","styleRemove","removeProperty","styleConstant","setProperty","styleFunction","styleValue","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_node","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","previousSibling","creatorInherit","creatorFixed","creator","constantNull","selection_cloneShallow","selection_cloneDeep","contextListener","parseTypenames","typenames","typename","__on","dispatchConstant","dispatchFunction","selection_selection","selection_select","selectChild","selectChildren","selection_filter","selection_empty","classed","selection_text","selection_raise","selection_lower","selection_remove","selection_datum","selection_dispatch","Dispatch","taskHead","taskTail","pokeDelay","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","timerFlush","wake","nap","poke","t0","sleep","elapsed","emptyOn","emptyTween","SCHEDULED","STARTED","ENDING","ENDED","timing","schedules","__transition","tween","ease","tick","svgNode","translateX","translateY","skewX","atan","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","baseVal","consolidate","interpolateTransform","pxComma","pxParen","degParen","translate","xa","ya","xb","yb","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","color_formatHex","formatHex","color_formatHex8","formatHex8","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","opacity","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","clampa","clampi","Hsl","clamph","clampt","basis","v0","v3","displayable","exponential","nogamma","rgbGamma","rgbSpline","spline","basisClosed","reA","reB","one","bs","bi","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","onFunction","on0","on1","sit","removeFunction","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","interrupt","selection_prototype","cubicInOut","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_easeVarying","defaultTiming","selection_interrupt","selection_transition","number1","number2","sourceEvent","ownerSVGElement","createSVGPoint","point","matrixTransform","getScreenCTM","inverse","pageX","pageY","nonpassive","nonpassivecapture","__noselect","MozUserSelect","yesdrag","noclick","DragEvent","defaultSubject","mousedownx","mousedowny","mousemoving","touchending","touchable","gestures","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","nodrag","mouse","touches","p0","clickDistance","strength","_x","_y","cover","ym","yp","_root","x0","_x0","y0","_y0","_x1","_y1","addAll","xz","yz","visit","x3","y3","quads","d2","retainer","removeAll","defaultX","defaultY","quadtree","Quadtree","leaf_copy","treeProto","radii","xi","yi","ri2","visitAfter","prepare","quad","rj","jiggle","_nodes","_random","nodeById","strengths","distances","defaultStrength","initializeStrength","initializeDistance","extent","initialRadius","initialAngle","simulation","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","lcg","initializeNodes","initializeForce","randomSource","distanceMin2","distanceMax2","theta2","accumulate","distanceMin","distanceMax","theta","eachAfter","eachBefore","ancestor","leastCommonAncestor","aNodes","ancestors","bNodes","leaves","hierarchy","mapChildren","objectChildren","childs","computeHeight","node_copy","copyData","descendants","epsilon2","cosh","sinh","tanh","zoomRho","rho","rho2","rho4","zoom","ux0","uy0","w0","ux1","uy1","d1","b0","r0","coshr0","SQRT2","_1","_2","_4","ZoomEvent","applyX","applyY","invertX","invertY","rescaleX","rescaleY","__zoom","SVGElement","defaultTransform","defaultWheelDelta","defaultConstrain","translateExtent","dx0","dx1","dy0","dy1","touchstarting","touchfirst","constrain","wheelDelta","scaleExtent","touchDelay","wheelDelay","tapDistance","wheeled","dblclicked","centroid","__zooming","Gesture","taps","wheel","wheelidled","moved","k1","touch0","touch1","l0","l1","dl","scaleBy","scaleTo","k0","translateBy","translateTo","getChartIcon","fdcConfig","dataWatcher","parsedInfo","allNodesData","allLinks","watcherFunction","parseData","flattenedData","hasStatusChange","nodeData","matchingId","setDetailsInfo","updateChart","renderChart","d3","zoomed","simulationParams","fdcStrength","fdcDistanceMax","fdcForceCollide","chartWidth","chartHeight","fdcAlphaDecay","ticked","zoomFit","isStartingData","isSettingNodesAndLinks","linkEnter","mainNodeClass","nodeEnter","dragStarted","dragging","dragEnded","setNodeRadius","fetchNodeIcon","nodeImagePosition","nodeImageSize","lowerCaseStatus","defaultClassArray","extendedClassArray","extendNodeClass","nodeDimensions","toUpdate","infoDetails","paddingBuffer","chartDimentions","chartCoordinates","getBBox","fullWidth","fullHeight","midX","midY","recurse","$watch","watcherProp","checkSchemasForFindAllHash","inStoreType","validSchema","schemaValidator","skipWait","modeFor","getYaml","DetailTop","ForceDirectedTreeChart","CreateEditView","resourceOverride","resourceEditMasthead","graphSchema","excludeFields","bundleDeployment","fqid","asYaml","detailComponent","editComponent","queryDiff","detailResource","editResource","ResourceDetail","_component_CruResource","onFinish","onCancel","_component_RadioGroup","IMAGE_METHOD","EXIST","_component_UpgradeInfo","imageValue","modelModifiers","canEnableLogging","enableLogging","handleFileUpload","osImageOptions","DOWNLOAD","UPLOAD","CruResource","RadioGroup","UpgradeInfo","logEnabled","splitName","_component_Members","createLocationOverride","_component_Tabbed","canEditClusterMembers","filteredClusterRoleTemplateBindings","loadingClusterBindings","Tabbed","clusterRoleTemplateBindingSchema","projectRoleTemplateBindingSchema","normanBindings","bindings","loadingProjectBindings","hydration","normanPrincipals","mgmtRoleTemplates","normanClusterRTBSchema","normanProjectRTBSchema","normanClusterRoleTemplateBindings","projectRoleTemplateBindings","projectRoleTemplateColumns","labeKey","clusterRoleTemplateBindings","Members","_component_ExplorerProjectsNamespaces","createProjectLocation","createNamespaceLocation","projectSchema","showCreateNsButton","createNamespaceLocationFlatList","projectDescription","projectLabel","isNamespaceCreatable","notInProjectKey","showProjectActionButton","showProjectAction","getPsaTooltip","projectsWithoutNamespaces","slotName","_component_MoveModal","onMoving","modalName","toMove","targetProject","projectOptions","excludedProjects","inCluster","showPromptMove","clusterWithProjectId","MoveModal","createProjectLocationOverride","createNamespaceLocationOverride","harvesterResourceQuotaSchema","defaultCreateProjectLocation","groupPreference","projectHeader","projectIdsWithNamespaces","clusterProjects","projectsInAllClusters","clustersInProjects","activeProjects","rowsWithFakeNamespaces","fakeRows","isFake","showMockNotInProjectGroup","activeNamespaceFilters","activeProjectFilters","userIsFilteringForSpecificNamespaceOrProject","projectData","activeNamespaces","namespaceData","isDev","systemNS","someNamespacesAreNotInProject","usingSpecificFilter","dictionary","activeFilters","filterType","ExplorerProjectsNamespaces","heading","handleButtonGroupClick","handleReceiverActionMenuClick","alertmanagerConfigResource","edit","redirectToReceiverDetail","alertmanagerConfigDetailRoute","_component_ReceiverConfig","receiverValue","alertmanagerConfigId","saveOverride","_component_ActionMenu","receiverActions","receiverActionMenuIsOpen","actionMenuTargetElement","actionMenuTargetEvent","onGoToEdit","onGoToEditYaml","onPromptRemove","redirectAfterCancel","receiverNameDisabled","onChanged","tabChanged","receiverType","navigateTo","getCount","suffixYaml","_component_ArrayListGrouped","getComponent","alertmanagerConfigNamespace","ArrayListGrouped","ButtonDropdown","FormValidation","expectedFields","currentReceiver","fileFound","yamlError","duplicateName","receiversArray","receiverNamesArray","receiversSet","tabbed","customEditor","createAddOptions","addOptions","ActionMenu","ReceiverConfig","originalAlertmanagerConfigResource","existingReceiverData","receiverData","redirectToAlertmanagerConfigDetail","toggleReceiverActionMenu","nameOfReceiverToDelete","receiversMinusDeletedItem","HarvesterUnsupported","HarvesterSupport","HarvesterConsoleSerial","HarvesterConsoleVnc","HarvesterAirgapUpdgrade","HarvesterBrand","HarvesterAlertmanagerReceiver","HarvesterMembers","Root","ProjectNamespaces","ListHarvesterResource","CreateHarvesterResource","ViewHarvesterResource","ViewHarvesterNsResource","latestBundleId","showBundleModal","bundlePercentage","uploadingImages","uploadingImageError","setLatestBundleId","setBundlePending","toggleBundleModal","setBundlePercentage","uploadStart","uploadEnd","filtered","getBundleId","isBundlePending","getBundlePercentage","getServerVersion","_getters","_rootState","getFeatureEnabled","feature","getHarvesterClusterUrl","multipleClusterUrl","bundleProgress","harvesterFactory","specifics","CSRF","WATCH_STATUSES","WATCH_PENDING","WATCH_REQUESTED","WATCHING","REMOVE_PENDING","REMOVE_REQUESTED","keyForSubscribe","watchKeyFromMessage","watchObject","REQUESTED_REMOVE","ResourceWatcher","csrf","watches","watchKey","unwatch","debugWatcher","setDebug","watchExists","providedResourceVersion","providedResourceVersionTime","providedKeyParts","providedSkipResourceVersion","providedResourceType","providedId","providedNamespace","providedSelector","providedForce","skipResourceVersion","resourceVersionTime","SCHEMA_FLUSH_TIMEOUT","flushTimer","postMessage","redispatch","advancedWorkerActions","createWatcher","workerActions","messageActions","initWorker","destroyWorker","updateSchema","removeSchema","ResourceCache","existingResourceHash","newResourceHash","watcher","workerQueue","debugWorker","maintenanceInterval","makeResourceProps","rawType","handleConnectionError","removeFromWorkerQueue","workerMessage","workerMessageWatchKey","resourceWatcherActions","resyncWatch","destroyWorkerComplete","toggleDebug","updateBatch","WORKER_MODES","DESTROY_MOCK","ADVANCED","AcceptOrRejectSocketMessage","typeIsNamespaced","typeIsPaginated","subscribeNamespace","validChange","pR","validateBatchChange","typeIs","paginated","MINIMUM_TIME_NOTIFIED","workerQueues","supportedStores","isWaitingForDestroy","$workers","waitingForDestroy","waitForSettingsSchema","waitForSettings","isAdvancedWorker","createWorker","queueChange","terminate","acceptOrRejectSocketMessage","workerMode","steveCreateWorker","safeMessage","equivalentWatch","aresourceType","bresourceType","growlsDisabled","sharedActions","disableSteveSockets","debugSocket","$cookies","unsubscribe","cleanupTasks","watchStarted","nextResourceVersion","sharedMutations","defaultActions","toLoad","rehydrateSubscribe","wantSocket","reconnectWatches","wantMap","opened","disableGrowl","$socket","queueTimer","flushQueue","growlErr","pendingFrames","timeFormatted","earliestClose","sendImmediate","newWatch","localState","defaultMutations","setSocket","setWantSocket","enqueuePendingFrame","dequeuePendingFrame","setWatchStarted","setWatchStopped","setInError","clearInError","resetSubscriptions","deferredRequests","clearFromQueue","defaultGetters","watchesOfType","STEVE_MODEL_TYPES","GC_IGNORE_TYPES","steveRegEx","parsedUrl","isSteve","stevePagination","vals","urlEnding","nextStringConnector","namespaceProjectFilter","sortOrder","omitExcludeFields","excludeParamsString","urlObj","modelBaseClass","typeSuperClass","podsByNamespace","currentGeneration","schemaOrSchemaDefinition","headersFor","typeMapGetters","typeMapState","paginationHeaders","optionsFor","steveOpts","PERF_DATA","statusRow","perfTest","DEFAULTS","perfLoadAll","replicate","randNum","addStatusRow","registerNamespace","updatePodsByNamespaceCache","cleanPodsByNamespaceCache","inList","newAndChangedPods","streamJson","TextDecoder","streamingSupported","warningHeaderSettings","kubeApiHeaderWarnings","allWarnings","trimmedWarning","fixedWarning","handleKubeApiHeaderWarnings","refreshCache","safeMethod","sanitisedWarnings","growlWarnings","blocked","pOpt","spoofedRes","prependPath","$config","parseUrl","unParseUrl","httpsAgent","rejectUnauthorized","paginatedResult","later","allowStreaming","supportsStream","makeRequest","$axios","responseObject","fromHeader","_statusText","_req","redirectUnauthorized","logoutOnError","promptMove","promptUpdate","newRootKeys","newMetadataKeys","dropCattleKeys","dropUnderscores","diffRootKeys","diffMetadataKeys","SteveFactory","subscribeGetters","subscribeMutations","subscribeActions","steveStoreInit","namespaceFilterOptions","addNamespace","notFilterNamespaces","filterNamespace","projectsById","namespacesByProject","firstProject","forThisProject","orphans","ALL_ORPHANS","filterProject","loadCluster","virtualBase","projectArgs","fetchProjects","managementReady","virtualCount","virtualNamespaces","upgrades","isHarvesterVersionSupported","isMultiCluster","steveFactory","isValidMac","isValidDNSLabelName","maxNameLength","vmNetworks","networkNames","lowerType","upperType","validName","networkName","vmDisks","isVMTemplate","_volumeClaimTemplates","_volumes","_disks","diskNames","cdrom","requiredVolume","typeValue","getVolumeType","allPVCs","selectedVolumeName","hasExistingVolume","containerDisk","DVTS","outValue","DVT","dataVolumeSize","getSize","integerRegex","kibUnitSize","ntpServers","ipv4Regex","hostRegex","ntpServersSet","volumeSize","rancherMonitoring","valueJson","requiredFields","rancherLogging","hashSHA512","addProduct","addDashboardStore","harvesterCommonStore","harvesterStore","customValidators","addRoutes","extensionRoutes"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.list.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.list.js new file mode 100644 index 00000000..60422efe --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.list.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[715],{5538:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return h}});var a=r(9274);const s={class:"state"},o={class:"warning-message"};function n(e,t,r,n,i,l){const c=(0,a.resolveComponent)("ProgressBarMulti"),d=(0,a.resolveComponent)("VolumeState"),u=(0,a.resolveComponent)("v-dropdown"),p=(0,a.resolveDirective)("clean-tooltip");return(0,a.openBlock)(),(0,a.createElementBlock)("span",null,[(0,a.createElementVNode)("div",null,[l.isRebuilding?(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createBlock)(c,{key:0,values:l.percentage,min:0,max:100,class:"mb-10"},null,8,["values"])),[[p,l.rebuildingMessage]]):(0,a.createCommentVNode)("",!0)]),(0,a.createElementVNode)("div",s,[(0,a.createVNode)(d,{row:r.row},null,8,["row"]),l.warningMessage?((0,a.openBlock)(),(0,a.createBlock)(u,{key:0,trigger:"hover",offset:"16"},{popper:(0,a.withCtx)((()=>[(0,a.createElementVNode)("p",o,(0,a.toDisplayString)(l.warningMessage),1)])),default:(0,a.withCtx)((()=>[t[0]||(t[0]=(0,a.createElementVNode)("span",{class:"tooltip-target"},[(0,a.createElementVNode)("i",{class:"icon icon-warning icon-lg text-warning"})],-1))])),_:1})):(0,a.createCommentVNode)("",!0)])])}var i=r(15503),l=r(2602),c=r(74562),d={components:{VolumeState:c.A,ProgressBarMulti:i.A},props:{row:{type:Object,required:!0}},computed:{warningMessage(){return this.row.relatedPV?.metadata?.annotations?.[l.r.VOLUME_ERROR]},rebuildStatus(){return this.row.longhornEngine?.status?.rebuildStatus},isRebuilding(){return this.rebuildStatus&&Object.keys(this.rebuildStatus).length>0},percentage(){if(!this.isRebuilding)return;const e=Object.values(this.rebuildStatus)?.[0],t=e?.progress;return[{value:t,color:"bg-warning"}]},rebuildingMessage(){return this.$store.getters["i18n/t"]("harvester.volume.rebuildingMessage",{percentage:this.percentage[0].value})}}},u=(r(77726),r(47433));const p=(0,u.A)(d,[["render",n],["__scopeId","data-v-e0f7fbca"]]);var h=p},11590:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return y}});var a=r(9274);const s={key:1},o={key:3};function n(e,t,r,n,i,l){const c=(0,a.resolveComponent)("Loading"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("DeviceList"),p=(0,a.resolveComponent)("MessageLink");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(c,{key:0})):e.hasAddonSchema?i.hasSchema&&i.enabledPCI?((0,a.openBlock)(),(0,a.createBlock)(u,{key:2,devices:l.rows,schema:l.schema},null,8,["devices","schema"])):((0,a.openBlock)(),(0,a.createElementBlock)("div",o,[(0,a.createVNode)(d,{color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(p,{to:i.to,"prefix-label":"harvester.pci.goSetting.prefix","middle-label":"harvester.pci.goSetting.middle","suffix-label":"harvester.pci.goSetting.suffix"},null,8,["to"])])),_:1})])):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(d,{color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.pci.noPCIPermission")),1)])),_:1})]))}var i=r(35664),l=r(88339),c=r(56943),d=r(84409),u=r(96413),p=r(32766),h=r(79428),m=r(66905);const g={id:p.rk.PCI_DEVICE,type:i.yx,attributes:{kind:p.rk.PCI_DEVICE,namespaced:!1},metadata:{name:p.rk.PCI_DEVICE}};var v={name:"ListPciDevicePage",components:{Banner:c.A,DeviceList:h["default"],Loading:d.A,MessageLink:u.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore;if(this.hasSchema=this.$store.getters[`${e}/schemaFor`](p.rk.PCI_DEVICE),this.hasAddonSchema=this.$store.getters[`${e}/schemaFor`](p.rk.ADD_ONS),this.hasSchema)try{const e=this.$store.getters["currentProduct"].inStore,t=await(0,l.kR)({pcidevice:this.$store.dispatch(`${e}/findAll`,{type:p.rk.PCI_DEVICE}),addons:this.$store.dispatch(`${e}/findAll`,{type:p.rk.ADD_ONS})});this.enabledPCI=!0===t.addons.find((e=>e.name===m.Jo.PCI_DEVICE_CONTROLLER))?.spec?.enabled,this.$store.dispatch("type-map/configureType",{match:p.rk.PCI_DEVICE,isCreatable:this.enabledPCI})}catch(t){}},data(){return{enabledPCI:!1,hasSchema:!1,to:`${p.rk.ADD_ONS}/harvester-system/${m.Jo.PCI_DEVICE_CONTROLLER}?mode=edit`}},computed:{schema(){return g},rows(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](p.rk.PCI_DEVICE);return t}},typeDisplay(){return this.$store.getters["type-map/labelFor"](g,99)}},f=r(47433);const k=(0,f.A)(v,[["render",n]]);var y=k},40190:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return y}});var a=r(9274);const s={key:1},o={key:2};function n(e,t,r,n,i,l){const c=(0,a.resolveComponent)("Loading"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("MessageLink"),p=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(c,{key:0})):i.hasAddonSchema?i.hasSriovgpuAddon&&i.hasPCIAddon?l.hasSchema?((0,a.openBlock)(),(0,a.createBlock)(p,(0,a.mergeProps)({key:3},e.$attrs,{groupable:!1,namespaced:!1,headers:l.headers,schema:i.schema,rows:l.rows,"key-field":"_key"}),null,16,["headers","schema","rows"])):(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("div",o,[i.hasSriovgpuAddon?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createBlock)(d,{key:0,color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(u,{to:i.toVGpuAddon,"prefix-label":"harvester.sriovgpu.goSetting.prefix","middle-label":"harvester.sriovgpu.goSetting.middle","suffix-label":"harvester.sriovgpu.goSetting.suffix"},null,8,["to"])])),_:1})),i.hasPCIAddon?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createBlock)(d,{key:1,color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(u,{to:i.toPciAddon,"prefix-label":"harvester.pci.goSetting.prefix","middle-label":"harvester.pci.goSetting.middle","suffix-label":"harvester.pci.goSetting.suffix"},null,8,["to"])])),_:1}))])):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(d,{color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.sriovgpu.noPermission")),1)])),_:1})]))}var i=r(35664),l=r(68774),c=r(88339),d=r(56943),u=r(84409),p=r(96413),h=r(53500),m=r(66905),g=r(32766),v={name:"ListSriovGpuDevices",inheritAttrs:!1,components:{Banner:d.A,Loading:u.A,MessageLink:p.A,ResourceTable:h.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore;if(this.schema=this.$store.getters[`${e}/schemaFor`](g.rk.SR_IOVGPU_DEVICE),this.hasAddonSchema=this.$store.getters[`${e}/schemaFor`](g.rk.ADD_ONS),this.hasSchema)try{const t=await(0,c.kR)({sriovgpus:this.$store.dispatch(`${e}/findAll`,{type:g.rk.SR_IOVGPU_DEVICE}),vGpuDevices:this.$store.dispatch(`${e}/findAll`,{type:g.rk.VGPU_DEVICE}),addons:this.$store.dispatch(`${e}/findAll`,{type:g.rk.ADD_ONS})});this.hasPCIAddon=!0===t.addons.find((e=>e.name===m.Jo.PCI_DEVICE_CONTROLLER))?.spec?.enabled,this.hasSriovgpuAddon=!0===t.addons.find((e=>e.name===m.Jo.NVIDIA_DRIVER_TOOLKIT_CONTROLLER))?.spec?.enabled}catch(t){}},data(){const e=this.$store.getters["currentProduct"].inStore;return{hasAddonSchema:!1,hasPCIAddon:!1,hasSriovgpuAddon:!1,schema:null,hasNode:this.$store.getters[`${e}/schemaFor`](i.NW),toVGpuAddon:`${g.rk.ADD_ONS}/harvester-system/${m.Jo.NVIDIA_DRIVER_TOOLKIT_CONTROLLER}?mode=edit`,toPciAddon:`${g.rk.ADD_ONS}/harvester-system/${m.Jo.PCI_DEVICE_CONTROLLER}?mode=edit`}},computed:{hasSchema(){return!!this.schema},rows(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](g.rk.SR_IOVGPU_DEVICE);return t},headers(){const e={name:"node",label:"Node",value:"realNodeName",sort:["realNodeName"],formatter:"CopyToClipboard",labelKey:"tableHeaders.node"},t=[l.c4,l.X0,{name:"address",label:"Address",value:"spec.address",sort:["spec.address"]},{name:"vfAddresses",label:"VF Addresses",labelKey:"harvester.sriovgpu.vfAddresses",sort:["status.vfAddresses"],value:"status.vfAddresses",formatter:"HarvesterVFAddress",align:"center",dashIfEmpty:!0},{name:"vGpuDevices",label:"vGPU Devices",labelKey:"harvester.sriovgpu.vGpuDevices",sort:["status.vGPUDevices"],value:"status.vGPUDevices",formatter:"HarvesterVGpuDevices",align:"center",dashIfEmpty:!0},{...l.K,sort:"metadata.creationTimestamp:desc"}];return this.hasNode&&t.splice(-1,0,e),t}}},f=r(47433);const k=(0,f.A)(v,[["render",n]]);var y=k},88426:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var a=r(9274);function s(e,t,r,s,o,n){const i=(0,a.resolveComponent)("ResourceTable");return(0,a.openBlock)(),(0,a.createBlock)(i,(0,a.mergeProps)(e.$attrs,{groupable:!1,namespaced:!1,headers:n.headers,schema:r.schema,rows:r.rows,"key-field":"_key"}),null,16,["headers","schema","rows"])}var o=r(68774),n=r(35664),i=r(53500),l={name:"ListHarvesterSRIOV",components:{ResourceTable:i.A},props:{schema:{type:Object,required:!0},rows:{type:Array,required:!0}},data(){const e=this.$store.getters["currentProduct"].inStore;return{hasNode:this.$store.getters[`${e}/schemaFor`](n.NW)}},computed:{headers(){const e={name:"node",label:"Node",value:"realNodeName",sort:["realNodeName"],formatter:"CopyToClipboard",labelKey:"tableHeaders.node"},t=[o.c4,o.X0,{name:"numVFs",label:"Num VFs",sort:["numVFs"],value:"numVFs",formatter:"HarvesterVFsNum",align:"center",labelKey:"harvester.sriov.numVFs",dashIfEmpty:!0},{name:"vfAddresses",label:"VF Addresses",labelKey:"harvester.sriov.vfAddresses",sort:["status.vfAddresses"],value:"status.vfAddresses",formatter:"HarvesterVFAddress",align:"center",dashIfEmpty:!0},{...o.K,sort:"metadata.creationTimestamp:desc"}];return this.hasNode&&t.splice(-1,0,e),t}}},c=r(47433);const d=(0,c.A)(l,[["render",s]]);var u=d},92217:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return f}});var a=r(9274);const s={key:1},o={key:2};function n(e,t,r,n,i,l){const c=(0,a.resolveComponent)("Loading"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("MessageLink"),p=(0,a.resolveComponent)("DeviceList");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(c,{key:0})):i.hasAddonSchema?i.hasPCIAddon?l.hasSchema?((0,a.openBlock)(),(0,a.createBlock)(p,{key:3,devices:l.devices,schema:i.schema},null,8,["devices","schema"])):(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("div",o,[(0,a.createVNode)(d,{color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(u,{to:i.toPciAddon,"prefix-label":"harvester.usb.goSetting.prefix","middle-label":"harvester.usb.goSetting.middle","suffix-label":"harvester.usb.goSetting.suffix"},null,8,["to"])])),_:1})])):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(d,{color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.usb.noPermission")),1)])),_:1})]))}var i=r(32766),l=r(88339),c=r(56943),d=r(84409),u=r(96413),p=r(66905),h=r(34529),m={name:"ListUsbDevicePage",inheritAttrs:!1,components:{Banner:c.A,DeviceList:h["default"],Loading:d.A,MessageLink:u.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore;if(this.schema=this.$store.getters[`${e}/schemaFor`](i.rk.USB_DEVICE),this.hasAddonSchema=this.$store.getters[`${e}/schemaFor`](i.rk.ADD_ONS),this.hasSchema)try{const t=await(0,l.kR)({usbDevices:this.$store.dispatch(`${e}/findAll`,{type:i.rk.USB_DEVICE}),addons:this.$store.dispatch(`${e}/findAll`,{type:i.rk.ADD_ONS})});this.hasPCIAddon=!0===t.addons.find((e=>e.name===p.Jo.PCI_DEVICE_CONTROLLER))?.spec?.enabled}catch(t){}},data(){return{hasAddonSchema:!1,hasPCIAddon:!1,schema:null,toPciAddon:`${i.rk.ADD_ONS}/harvester-system/${p.Jo.PCI_DEVICE_CONTROLLER}?mode=edit`}},computed:{hasSchema(){return!!this.schema},devices(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/all`](i.rk.USB_DEVICE)||[]}},typeDisplay(){return this.t("harvester.usb.label")}},g=r(47433);const v=(0,g.A)(m,[["render",n]]);var f=v},53774:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return f}});var a=r(9274);const s={key:1},o={key:2};function n(e,t,r,n,i,l){const c=(0,a.resolveComponent)("Loading"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("MessageLink"),p=(0,a.resolveComponent)("VGpuDeviceList");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(c,{key:0})):i.hasAddonSchema?i.hasSriovgpuAddon&&i.hasPCIAddon?l.hasSchema?((0,a.openBlock)(),(0,a.createBlock)(p,{key:3,devices:l.rows,schema:i.schema},null,8,["devices","schema"])):(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("div",o,[i.hasSriovgpuAddon?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createBlock)(d,{key:0,color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(u,{to:i.toVGpuAddon,"prefix-label":"harvester.vgpu.goSetting.prefix","middle-label":"harvester.vgpu.goSetting.middle","suffix-label":"harvester.vgpu.goSetting.suffix"},null,8,["to"])])),_:1})),i.hasPCIAddon?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createBlock)(d,{key:1,color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(u,{to:i.toPciAddon,"prefix-label":"harvester.pci.goSetting.prefix","middle-label":"harvester.pci.goSetting.middle","suffix-label":"harvester.pci.goSetting.suffix"},null,8,["to"])])),_:1}))])):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(d,{color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.vgpu.noPermission")),1)])),_:1})]))}var i=r(88339),l=r(56943),c=r(84409),d=r(96413),u=r(32766),p=r(33212),h=r(66905),m={name:"ListVGpuDevices",inheritAttrs:!1,components:{Banner:l.A,Loading:c.A,MessageLink:d.A,VGpuDeviceList:p["default"]},async fetch(){const e=this.$store.getters["currentProduct"].inStore;if(this.schema=this.$store.getters[`${e}/schemaFor`](u.rk.VGPU_DEVICE),this.hasAddonSchema=this.$store.getters[`${e}/schemaFor`](u.rk.ADD_ONS),this.hasSchema)try{const t=await(0,i.kR)({vGpuDevices:this.$store.dispatch(`${e}/findAll`,{type:u.rk.VGPU_DEVICE}),addons:this.$store.dispatch(`${e}/findAll`,{type:u.rk.ADD_ONS})});this.hasPCIAddon=!0===t.addons.find((e=>e.name===h.Jo.PCI_DEVICE_CONTROLLER))?.spec?.enabled,this.hasSriovgpuAddon=!0===t.addons.find((e=>e.name===h.Jo.NVIDIA_DRIVER_TOOLKIT_CONTROLLER))?.spec?.enabled,this.hasSRIOVGPUSchema=!!this.$store.getters[`${e}/schemaFor`](u.rk.SR_IOVGPU_DEVICE),this.hasSRIOVGPUSchema&&await this.$store.dispatch(`${e}/findAll`,{type:u.rk.SR_IOVGPU_DEVICE})}catch(t){}},data(){return{hasAddonSchema:!1,hasPCIAddon:!1,hasSriovgpuAddon:!1,hasSRIOVGPUSchema:!1,schema:null,toVGpuAddon:`${u.rk.ADD_ONS}/harvester-system/${h.Jo.NVIDIA_DRIVER_TOOLKIT_CONTROLLER}?mode=edit`,toPciAddon:`${u.rk.ADD_ONS}/harvester-system/${h.Jo.PCI_DEVICE_CONTROLLER}?mode=edit`}},computed:{hasSchema(){return!!this.schema},rows(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](u.rk.VGPU_DEVICE)||[],r=this.$store.getters[`${e}/all`](u.rk.SR_IOVGPU_DEVICE)||[];return this.hasSRIOVGPUSchema?t.filter((e=>!!r.find((t=>t.isEnabled&&t.spec?.nodeName===e.spec?.nodeName)))):t}},typeDisplay(){return this.t("harvester.vgpu.label")}},g=r(47433);const v=(0,g.A)(m,[["render",n]]);var f=v},33699:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return g}});var a=r(9274);const s={class:"cell-name"},o=["href"];function n(e,t,r,n,i,l){const c=(0,a.resolveComponent)("Loading"),d=(0,a.resolveComponent)("LinkDetail"),u=(0,a.resolveComponent)("ResourceTable"),p=(0,a.resolveDirective)("tooltip");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(c,{key:0})):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(u,{rows:l.rows,groupable:!1,namespaced:!1,schema:l.schema,headers:l.headers},{"cell:name":(0,a.withCtx)((r=>[(0,a.createElementVNode)("div",s,[(0,a.createVNode)(d,{value:r.row.displayName,"onUpdate:value":e=>r.row.displayName=e,row:r.row},null,8,["value","onUpdate:value","row"]),"rancher-vcluster"===r.row.metadata.name&&r.row.spec.enabled?(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("a",{key:0,class:"ml-5",rel:"nofollow noopener noreferrer",target:"_blank",href:r.row.rancherHostname},t[0]||(t[0]=[(0,a.createElementVNode)("i",{class:"icon icon-external-link"},null,-1)]),8,o)),[[p,e.t("harvester.addons.rancherVcluster.accessRancher")]]):(0,a.createCommentVNode)("",!0)])])),_:1},8,["rows","schema","headers"])])}var i=r(84409),l=r(53500),c=r(88339),d=r(68774),u=r(32766),p={name:"ListHarvesterAddons",components:{ResourceTable:l.A,Loading:i.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await(0,c.kR)({addons:this.$store.dispatch(`${e}/findAll`,{type:u.rk.ADD_ONS})})},computed:{rows(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](u.rk.ADD_ONS);return t},headers(){return[d.c4,d.o_,{name:"description",labelKey:"tableHeaders.description",value:"metadata.name",align:"left",sort:["status.description"],formatter:"Translate",formatterOpts:{prefix:"harvester.addons.descriptions"}}]},schema(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/schemaFor`](u.rk.ADD_ONS)}}},h=(r(12122),r(47433));const m=(0,h.A)(p,[["render",n],["__scopeId","data-v-32e4b7cb"]]);var g=m},34317:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return g}});var a=r(9274);function s(e,t,r,s,o,n){const i=(0,a.resolveComponent)("Loading"),l=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(i,{key:0})):((0,a.openBlock)(),(0,a.createBlock)(l,(0,a.mergeProps)({key:1},e.$attrs,{headers:n.headers,groupable:!0,schema:n.schema,rows:n.filteredRows,"key-field":"_key"}),null,16,["headers","schema","rows"]))}var o=r(53500),n=r(84409),i=r(35664),l=r(68774),c=r(2602),d=r(32766);const u={id:d.rk.CLOUD_TEMPLATE,type:i.yx,attributes:{kind:d.rk.CLOUD_TEMPLATE,namespaced:!0},metadata:{name:d.rk.CLOUD_TEMPLATE}};var p={name:"HarvesterListCloudTemplate",components:{ResourceTable:o.A,Loading:n.A},inheritAttrs:!1,async fetch(){const e=this.$store.getters["currentProduct"].inStore;this.rows=await this.$store.dispatch(`${e}/findAll`,{type:i.K5});const t=this.$store.getters[`${e}/schemaFor`](i.K5);t?.collectionMethods.find((e=>"post"===e.toLowerCase()))||this.$store.dispatch("type-map/configureType",{match:d.rk.CLOUD_TEMPLATE,isCreatable:!1})},data(){return{rows:[]}},computed:{headers(){return[l.o_,l.CU,{name:"type",labelKey:"tableHeaders.type",value:"metadata.labels",formatter:"CloudInitType"},l.K]},filteredRows(){return this.rows.filter((e=>!!e.metadata?.labels?.[c.r.CLOUD_INIT]))},schema(){return u}},typeDisplay(){return this.$store.getters["type-map/labelFor"](u,99)}},h=r(47433);const m=(0,h.A)(p,[["render",s]]);var g=m},36270:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return we}});var a=r(9274);const s={key:1},o={class:"cluster-dashboard-glance"},n={key:0},i={class:"resource-gauges"},l={class:"mt-40"},c={class:"mb-40 mt-40"},d={class:"text-info"},u={key:0},p={class:"text-info"},h={key:0},m={class:"text-info"},g={key:0},v={class:"text-info"},f={key:0};function k(e,t,r,k,y,b){const C=(0,a.resolveComponent)("Loading"),w=(0,a.resolveComponent)("HarvesterUpgrade"),S=(0,a.resolveComponent)("LiveDate"),N=(0,a.resolveComponent)("MessageLink"),E=(0,a.resolveComponent)("Banner"),V=(0,a.resolveComponent)("ResourceSummary"),A=(0,a.resolveComponent)("HardwareResourceGauge"),$=(0,a.resolveComponent)("DashboardMetrics"),B=(0,a.resolveComponent)("Tab"),x=(0,a.resolveComponent)("Tabbed"),T=(0,a.resolveComponent)("SortableTable"),_=(0,a.resolveDirective)("clean-tooltip");return e.$fetchState.pending||!e.currentCluster?((0,a.openBlock)(),(0,a.createBlock)(C,{key:0})):((0,a.openBlock)(),(0,a.createElementBlock)("section",s,[(0,a.createVNode)(w),(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",null,[(0,a.createElementVNode)("label",null,(0,a.toDisplayString)(e.t("harvester.dashboard.version"))+": ",1),(0,a.createElementVNode)("span",null,[(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("span",null,[(0,a.createTextVNode)((0,a.toDisplayString)(b.currentVersion),1)])),[[_,{content:b.currentVersion}]])])]),(0,a.createElementVNode)("div",null,[(0,a.createElementVNode)("label",null,(0,a.toDisplayString)(e.t("glance.created"))+": ",1),(0,a.createElementVNode)("span",null,[(0,a.createVNode)(S,{value:b.firstNodeCreationTimestamp,"add-suffix":!0,"show-tooltip":!0},null,8,["value"])])])]),!y.enabledMonitoringAddon&&b.canEnableMonitoringAddon?((0,a.openBlock)(),(0,a.createElementBlock)("div",n,[(0,a.createVNode)(E,{color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(N,{to:b.toEnableMonitoringAddon,"prefix-label":"harvester.monitoring.alertmanagerConfig.disabledAddon.prefix","middle-label":"harvester.monitoring.alertmanagerConfig.disabledAddon.middle","suffix-label":"harvester.monitoring.alertmanagerConfig.disabledAddon.suffix"},null,8,["to"])])),_:1})])):(0,a.createCommentVNode)("",!0),(0,a.createElementVNode)("div",i,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(b.totalCountGaugeInput,((e,t)=>((0,a.openBlock)(),(0,a.createBlock)(V,{key:t,"spoofed-counts":e.isSpoofed?e:null,resource:e.resource},null,8,["spoofed-counts","resource"])))),128))]),y.nodes.length&&b.hasMetricNodeSchema?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createElementVNode)("h3",l,(0,a.toDisplayString)(e.t("clusterIndexPage.sections.capacity.label")),1),(0,a.createElementVNode)("div",{class:(0,a.normalizeClass)(["hardware-resource-gauges",{live:!y.hasLonghornSchema}])},[(0,a.createVNode)(A,{name:e.t("harvester.dashboard.hardwareResourceGauge.cpu"),reserved:b.cpuReserved,used:b.cpuUsed},null,8,["name","reserved","used"]),(0,a.createVNode)(A,{name:e.t("harvester.dashboard.hardwareResourceGauge.memory"),reserved:b.ramReserved,used:b.ramUsed},null,8,["name","reserved","used"]),y.hasLonghornSchema?((0,a.openBlock)(),(0,a.createBlock)(A,{key:0,name:e.t("harvester.dashboard.hardwareResourceGauge.storage"),used:b.storageUsed,reserved:b.storageAllocated,"reserved-title":e.t("harvester.dashboard.hardwareResourceGauge.allocated")},null,8,["name","used","reserved","reserved-title"])):(0,a.createCommentVNode)("",!0)],2)],64)):(0,a.createCommentVNode)("",!0),b.hasMetricsTabs&&y.enabledMonitoringAddon?((0,a.openBlock)(),(0,a.createBlock)(x,{key:2,class:"mt-30"},{default:(0,a.withCtx)((()=>[y.showClusterMetrics?((0,a.openBlock)(),(0,a.createBlock)(B,{key:0,name:"cluster-metrics",label:e.t("clusterIndexPage.sections.clusterMetrics.label"),weight:99},{default:(0,a.withCtx)((e=>[e.active?((0,a.openBlock)(),(0,a.createBlock)($,{key:0,"detail-url":y.CLUSTER_METRICS_DETAIL_URL,"summary-url":y.CLUSTER_METRICS_SUMMARY_URL,"graph-height":"825px"},null,8,["detail-url","summary-url"])):(0,a.createCommentVNode)("",!0)])),_:1},8,["label"])):(0,a.createCommentVNode)("",!0),y.showVmMetrics?((0,a.openBlock)(),(0,a.createBlock)(B,{key:1,name:"vm-metric",label:e.t("harvester.dashboard.sections.vmMetrics.label"),weight:98},{default:(0,a.withCtx)((e=>[e.active?((0,a.openBlock)(),(0,a.createBlock)($,{key:0,"detail-url":y.VM_DASHBOARD_METRICS_URL,"graph-height":"825px","has-summary-and-detail":!1},null,8,["detail-url"])):(0,a.createCommentVNode)("",!0)])),_:1},8,["label"])):(0,a.createCommentVNode)("",!0)])),_:1})):(0,a.createCommentVNode)("",!0),(0,a.createElementVNode)("div",c,[(0,a.createElementVNode)("h3",null,(0,a.toDisplayString)(e.t("clusterIndexPage.sections.events.label")),1),(0,a.createVNode)(x,{class:"mt-20"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(B,{name:"host",label:"Hosts",weight:98},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(T,{rows:b.hostEvents,headers:y.eventHeaders,"key-field":"id",search:!1,"table-actions":!1,"row-actions":!1,paging:!0,"rows-per-page":10,"default-sort-by":"date"},{"cell:resource":(0,a.withCtx)((({row:e,value:t})=>[(0,a.createElementVNode)("div",d,(0,a.toDisplayString)(t),1),e.message?((0,a.openBlock)(),(0,a.createElementBlock)("div",u,(0,a.toDisplayString)(e.displayMessage),1)):(0,a.createCommentVNode)("",!0)])),_:1},8,["rows","headers"])])),_:1}),(0,a.createVNode)(B,{name:"vm",label:"VMs",weight:99},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(T,{rows:b.vmEvents,headers:y.eventHeaders,"key-field":"id",search:!1,"table-actions":!1,"row-actions":!1,paging:!0,"rows-per-page":10,"default-sort-by":"date"},{"cell:resource":(0,a.withCtx)((({row:e,value:t})=>[(0,a.createElementVNode)("div",p,(0,a.toDisplayString)(t),1),e.message?((0,a.openBlock)(),(0,a.createElementBlock)("div",h,(0,a.toDisplayString)(e.displayMessage),1)):(0,a.createCommentVNode)("",!0)])),_:1},8,["rows","headers"])])),_:1}),(0,a.createVNode)(B,{name:"volume",label:"Volumes",weight:97},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(T,{rows:b.volumeEvents,headers:y.eventHeaders,"key-field":"id",search:!1,"table-actions":!1,"row-actions":!1,paging:!0,"rows-per-page":10,"default-sort-by":"date"},{"cell:resource":(0,a.withCtx)((({row:e,value:t})=>[(0,a.createElementVNode)("div",m,(0,a.toDisplayString)(t),1),e.message?((0,a.openBlock)(),(0,a.createElementBlock)("div",g,(0,a.toDisplayString)(e.displayMessage),1)):(0,a.createCommentVNode)("",!0)])),_:1},8,["rows","headers"])])),_:1}),(0,a.createVNode)(B,{name:"image",label:"Images",weight:96},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(T,{rows:b.imageEvents,headers:y.eventHeaders,"key-field":"id",search:!1,"table-actions":!1,"row-actions":!1,paging:!0,"rows-per-page":10,"default-sort-by":"date"},{"cell:resource":(0,a.withCtx)((({row:e,value:t})=>[(0,a.createElementVNode)("div",v,(0,a.toDisplayString)(t),1),e.message?((0,a.openBlock)(),(0,a.createElementBlock)("div",f,(0,a.toDisplayString)(e.displayMessage),1)):(0,a.createCommentVNode)("",!0)])),_:1},8,["rows","headers"])])),_:1})])),_:1})])]))}var y=r(23464),b=r.n(y),C=r(3221),w=r.n(C),S=r(57657),N=r.n(S),E=r(65359),V=r(84409),A=r(56943),$=r(96413),B=r(81345),x=r(88339),T=r(95799),_=r(68774),L=r(35664),D=r(31855),R=r(73883),O=r(13539),M=r(59808),I=r(49584),P=r(83030),U=r(52799),F=r(97348),H=r(76978),G=r(32766);const K={key:0},W={class:"header-layout header mb-0"},j={class:"currentVersion mb-15"},q={class:"version"},J={key:0,class:"mb-5"},z={key:1,class:"mb-5"},Y={key:2,class:"divider"},X={key:3},Q={class:"mb-10"},Z={class:"footer"},ee=["disabled"];function te(e,t,r,s,o,n){const i=(0,a.resolveComponent)("t"),l=(0,a.resolveComponent)("UpgradeInfo"),c=(0,a.resolveComponent)("LabeledSelect"),d=(0,a.resolveComponent)("Checkbox"),u=(0,a.resolveComponent)("Banner"),p=(0,a.resolveComponent)("ModalWithCard"),h=(0,a.resolveDirective)("clean-html");return e.currentCluster?((0,a.openBlock)(),(0,a.createElementBlock)("div",K,[(0,a.createElementVNode)("header",W,[(0,a.createElementVNode)("h1",null,[(0,a.createVNode)(i,{k:"harvester.dashboard.header",cluster:e.currentCluster.nameDisplay},null,8,["cluster"])]),n.versionOptions.length&&!n.isUpgradeInProgress?((0,a.openBlock)(),(0,a.createElementBlock)("button",{key:0,type:"button",class:"btn bg-warning btn-sm",onClick:t[0]||(t[0]=(...e)=>n.open&&n.open(...e))},[(0,a.createVNode)(i,{k:"harvester.upgradePage.upgrade"})])):(0,a.createCommentVNode)("",!0)]),o.isOpen?((0,a.openBlock)(),(0,a.createBlock)(p,{key:0,name:"deleteTip",width:850},{title:(0,a.withCtx)((()=>[(0,a.createVNode)(i,{k:"harvester.upgradePage.upgradeApp"})])),content:(0,a.withCtx)((()=>[(0,a.createVNode)(l,{version:o.version},null,8,["version"]),(0,a.createElementVNode)("div",j,[(0,a.createElementVNode)("span",null,[(0,a.createVNode)(i,{k:"harvester.upgradePage.currentVersion"})]),(0,a.createElementVNode)("span",q,(0,a.toDisplayString)(n.currentVersion),1)]),(0,a.createElementVNode)("div",null,[(0,a.createVNode)(c,{value:o.version,"onUpdate:value":t[1]||(t[1]=e=>o.version=e),class:"mb-10",label:e.t("harvester.upgradePage.versionLabel"),options:n.versionOptions,clearable:!0},null,8,["value","label","options"]),n.canEnableLogging?((0,a.openBlock)(),(0,a.createElementBlock)("div",J,[(0,a.createVNode)(d,{value:o.enableLogging,"onUpdate:value":t[2]||(t[2]=e=>o.enableLogging=e),class:"check",type:"checkbox",label:e.t("harvester.upgradePage.enableLogging")},null,8,["value","label"])])):(0,a.createCommentVNode)("",!0),n.skipSingleReplicaDetachedVolFeatureEnabled?((0,a.openBlock)(),(0,a.createElementBlock)("div",z,[(0,a.createVNode)(d,{value:o.skipSingleReplicaDetachedVol,"onUpdate:value":t[3]||(t[3]=e=>o.skipSingleReplicaDetachedVol=e),class:"check",type:"checkbox",label:e.t("harvester.upgradePage.skipSingleReplicaDetachedVol")},null,8,["value","label"])])):(0,a.createCommentVNode)("",!0),o.version?((0,a.openBlock)(),(0,a.createElementBlock)("hr",Y)):(0,a.createCommentVNode)("",!0),o.version?((0,a.openBlock)(),(0,a.createElementBlock)("div",X,[(0,a.withDirectives)((0,a.createElementVNode)("p",Q,null,512),[[h,e.t("harvester.upgradePage.releaseTip",{url:n.releaseLink},!0)]]),(0,a.createVNode)(d,{value:o.readyReleaseNote,"onUpdate:value":t[4]||(t[4]=e=>o.readyReleaseNote=e),class:"check",type:"checkbox","label-key":"harvester.upgradePage.checkReady"},null,8,["value"])])):(0,a.createCommentVNode)("",!0),o.errors.length?((0,a.openBlock)(),(0,a.createBlock)(u,{key:4,color:"error"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(o.errors),1)])),_:1})):(0,a.createCommentVNode)("",!0)])])),footer:(0,a.withCtx)((()=>[(0,a.createElementVNode)("div",Z,[(0,a.createElementVNode)("button",{class:"btn role-secondary mr-20",onClick:t[5]||(t[5]=(0,a.withModifiers)(((...e)=>n.cancel&&n.cancel(...e)),["prevent"]))},[(0,a.createVNode)(i,{k:"generic.close"})]),(0,a.createElementVNode)("button",{disabled:!o.readyReleaseNote,class:"btn role-tertiary bg-primary",onClick:t[6]||(t[6]=(0,a.withModifiers)(((...e)=>n.handleUpgrade&&n.handleUpgrade(...e)),["prevent"]))},[(0,a.createVNode)(i,{k:"harvester.upgradePage.upgrade"})],8,ee)])])),_:1})):(0,a.createCommentVNode)("",!0)])):(0,a.createCommentVNode)("",!0)}var re=r(42200),ae=r(40973),se=r(77988),oe=r(9980),ne=r(2602),ie=r(91806),le={name:"HarvesterUpgrade",components:{Checkbox:re.S,ModalWithCard:ae.A,LabeledSelect:se.A,Banner:oe.l,UpgradeInfo:ie.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await(0,x.kR)({upgradeVersion:this.$store.dispatch(`${e}/findAll`,{type:G.rk.SETTING}),versions:this.$store.dispatch(`${e}/findAll`,{type:G.rk.VERSION}),upgrade:this.$store.dispatch(`${e}/findAll`,{type:G.rk.UPGRADE})});this.upgrade=t.upgrade},data(){return{upgrade:[],upgradeMessage:[],errors:"",selectMode:!0,version:"",enableLogging:!0,skipSingleReplicaDetachedVol:!1,readyReleaseNote:!1,isOpen:!1}},computed:{...(0,E.L8)(["currentCluster"]),latestUpgrade(){return this.upgrade?.find((e=>e.isLatestUpgrade))},isUpgradeInProgress(){return this.latestUpgrade&&!this.latestUpgrade.isUpgradeSucceeded&&!this.latestUpgrade.isUpgradeFailed},versionOptions(){const e=this.$store.getters["harvester/all"](G.rk.VERSION);return e.map((e=>e.metadata.name))},currentVersion(){const e=this.$store.getters["harvester/byId"](G.rk.SETTING,"server-version");return e.currentVersion||""},canEnableLogging(){return this.$store.getters["harvester/schemaFor"](G.rk.UPGRADE_LOG)},skipSingleReplicaDetachedVolFeatureEnabled(){return this.$store.getters["harvester-common/getFeatureEnabled"]("skipSingleReplicaDetachedVol")},releaseLink(){return`https://github.com/harvester/harvester/releases/tag/${this.version}`}},watch:{upgrade:{handler(e){let t=[];const r=e||[],a=r.find((e=>!!e.isLatestUpgrade));t=a?a.upgradeMessage:[],this["upgradeMessage"]=t},deep:!0},version(){this.readyReleaseNote=!1}},methods:{async handleUpgrade(){const e={type:G.rk.UPGRADE,metadata:{generateName:"hvst-upgrade-",namespace:"harvester-system"},spec:{version:this.version}};this.skipSingleReplicaDetachedVolFeatureEnabled&&this.skipSingleReplicaDetachedVol&&(e.metadata.annotations={[ne.r.SKIP_SINGLE_REPLICA_DETACHED_VOL]:JSON.stringify(this.skipSingleReplicaDetachedVol)}),this.canEnableLogging&&(e.spec.logEnabled=this.enableLogging);const t=await this.$store.dispatch("harvester/create",e);try{await t.save(),this.cancel()}catch(r){""!==r?.message&&(this.errors=r.message)}},cancel(){this.isOpen=!1,this.errors=""},open(){this.isOpen=!0}}},ce=(r(54434),r(47433));const de=(0,ce.A)(le,[["render",te],["__scopeId","data-v-0254dd74"]]);var ue=de,pe=r(20652),he=r(4364);b().extend(N()),b().extend(w());const me={memory:{format:{addSuffix:!0,firstSuffix:"B",increment:1024,maxExponent:99,maxPrecision:2,minExponent:0,startingExponent:0,suffix:"iB"}}},ge=[{type:L.NW,spoofed:{location:{name:`${pe.KR}-c-cluster-resource`,params:{resource:G.rk.HOST}},name:G.rk.HOST}},{type:G.rk.VM,spoofed:{location:{name:`${pe.KR}-c-cluster-resource`,params:{resource:G.rk.VM}},name:G.rk.VM}},{type:L.XG,spoofed:{location:{name:`${pe.KR}-c-cluster-resource`,params:{resource:G.rk.NETWORK_ATTACHMENT}},name:G.rk.NETWORK_ATTACHMENT,filterNamespace:["harvester-system"]}},{type:G.rk.IMAGE,spoofed:{location:{name:`${pe.KR}-c-cluster-resource`,params:{resource:G.rk.IMAGE}},name:G.rk.IMAGE}},{type:L.YH,spoofed:{location:{name:`${pe.KR}-c-cluster-resource`,params:{resource:G.rk.VOLUME}},name:G.rk.VOLUME,filterNamespace:["cattle-monitoring-system"]}},{type:G.rk.BLOCK_DEVICE,spoofed:{location:{name:`${pe.KR}-c-cluster-resource`,params:{resource:G.rk.HOST}},name:G.rk.BLOCK_DEVICE}}],ve="/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/rancher-cluster-nodes-1/rancher-cluster-nodes?orgId=1",fe="/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/rancher-cluster-1/rancher-cluster?orgId=1",ke="/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/harvester-vm-dashboard-1/vm-dashboard?orgId=1",ye="cattle-monitoring-system/rancher-monitoring";var be={mixins:[U.A],components:{Loading:V.A,HardwareResourceGauge:O.A,SortableTable:B.A,HarvesterUpgrade:ue,ResourceSummary:D.Ay,Tabbed:M.A,Tab:I.A,DashboardMetrics:P.A,Banner:A.A,MessageLink:$.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={vms:this.fetchClusterResources(G.rk.VM),nodes:this.fetchClusterResources(L.NW),events:this.fetchClusterResources(L.ll),metricNodes:this.fetchClusterResources(L.$v.NODE),settings:this.fetchClusterResources(G.rk.SETTING),services:this.fetchClusterResources(L.YV),metric:this.fetchClusterResources(L.$v.NODE),longhornNodes:this.fetchClusterResources(L.oe.NODES),longhornSettings:this.fetchClusterResources(L.oe.SETTINGS),_pods:this.$store.dispatch("harvester/findAll",{type:L.Sm})};(this.accessibleResources||[]).map((r=>(t[r.type]=this.$store.dispatch(`${e}/findAll`,{type:r.type}),null))),this.$store.getters[`${e}/schemaFor`](G.rk.ADD_ONS)&&(t.addons=this.$store.dispatch(`${e}/findAll`,{type:G.rk.ADD_ONS})),this.$store.getters[`${e}/schemaFor`](L.oe.NODES)&&(this.hasLonghornSchema=!0);const r=await(0,x.kR)(t);for(const s in r)this[s]=r[s];(0,x.DD)((0,F.Qr)(this.$store,this.currentCluster.id,[ve,fe],"harvester"),this,"showClusterMetrics","Determine cluster metrics"),(0,x.DD)((0,F.Qr)(this.$store,this.currentCluster.id,[ke],"harvester"),this,"showVmMetrics","Determine vm metrics");const a=this.$store.getters[`${e}/all`](G.rk.ADD_ONS);this.monitoring=a.find((e=>e.id===ye)),this.enabledMonitoringAddon=this.monitoring?.spec?.enabled},data(){const e={..._.rh,canBeVariable:!0,width:130},t=[e,{name:"resource",label:"Resource",labelKey:"clusterIndexPage.sections.events.resource.label",value:"displayInvolvedObject",sort:["involvedObject.kind","involvedObject.name"],canBeVariable:!0},{align:"right",name:"date",label:"Date",labelKey:"clusterIndexPage.sections.events.date.label",value:"lastTimestamp",sort:"lastTimestamp:desc",formatter:"LiveDate",formatterOpts:{addSuffix:!0},width:125,defaultSort:!0}];return{eventHeaders:t,constraints:[],events:[],nodeMetrics:[],nodes:[],metricNodes:[],vms:[],monitoring:{},VM_DASHBOARD_METRICS_URL:ke,CLUSTER_METRICS_SUMMARY_URL:fe,CLUSTER_METRICS_DETAIL_URL:ve,showClusterMetrics:!1,showVmMetrics:!1,enabledMonitoringAddon:!1,hasLonghornSchema:!1}},computed:{...(0,E.L8)(["currentCluster"]),accessibleResources(){const e=this.$store.getters["currentProduct"].inStore;return ge.filter((t=>this.$store.getters[`${e}/schemaFor`](t.type)))},totalCountGaugeInput(){const e={};return this.accessibleResources.forEach((t=>{const r=(0,D.xS)(this.$store,t.type);if(e[t.type]={resource:t.type},Object.entries(r).forEach((r=>{e[t.type][r[0]]=r[1]})),t.spoofed){if(t.spoofed?.filterNamespace&&Array.isArray(t.spoofed.filterNamespace)){const r=this.$store.getters["harvester/all"](L.i2)[0].counts,a=r[t.type]||{};for(let s=0;s<t.spoofed.filterNamespace.length;s++){const r=a?.namespaces?.[t.spoofed.filterNamespace[s]]||{};r.count&&(e[t.type]["useful"]-=r.count,e[t.type]["total"]-=r.count),Object.entries(r?.states||{}).forEach((r=>{const a=(0,R.uU)(r[0]),s=r[1],o=(0,D.dD)(a);e[t.type]["useful"]-=s,e[t.type][o]+=s}))}}e[t.type]={...e[t.type],...t.spoofed,isSpoofed:!0},e[t.type].name=this.t(`typeLabel."${t.spoofed.name}"`,{count:e[t.type].total})}if(t.type===G.rk.BLOCK_DEVICE){let r=0,a=0;(this.nodes||[]).map((e=>{r+=e.diskStatusCount.total,a+=e.diskStatusCount.errorCount})),e[t.type]={...e[t.type],total:r,errorCount:a,useful:r-a}}})),e},currentVersion(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/byId`](G.rk.SETTING,"server-version");return t?.value||t?.default},firstNodeCreationTimestamp(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](L.NW).map((e=>b()(e.metadata.creationTimestamp)));return t.length?b().min(t).utc().format():b()().utc().format()},cpusTotal(){let e=0;return this.metricNodes.forEach((t=>{e+=t.cpuCapacity})),e},cpusUsageTotal(){let e=0;return this.metricNodes.forEach((t=>{e+=t.cpuUsage})),e},memoryTotal(){let e=0;return this.metricNodes.forEach((t=>{e+=t.memoryCapacity})),e},memoryUsageTotal(){let e=0;return this.metricNodes.forEach((t=>{e+=t.memoryUsage})),e},storageStats(){const e=this.longhornSettings.find((e=>"longhorn-system/storage-over-provisioning-percentage"===e.id)),t=this.longhornNodes.reduce(((e,t)=>{const r=t?.spec?.disks||{},a=t?.status?.diskStatus||{};return e.used+=t?.spec?.allowScheduling?t.used:0,Object.keys(r).map((s=>{e.scheduled+=t?.spec?.allowScheduling&&a[s]?.storageScheduled||0,e.reserved+=r[s]?.storageReserved||0})),Object.values(a).map((t=>{e.maximum+=t?.storageMaximum||0})),e}),{used:0,scheduled:0,maximum:0,reserved:0,total:0});return t.total=(t.maximum-t.reserved)*Number(e?.value??0)/100,t},storageUsed(){const e=this.storageStats;return this.createMemoryValues(e.maximum,e.used)},storageAllocated(){const e=this.storageStats;return this.createMemoryValues(e.total,e.scheduled)},vmEvents(){return this.events.filter((e=>["VirtualMachineInstance","VirtualMachine"].includes(e.involvedObject.kind)))},volumeEvents(){return this.events.filter((e=>["PersistentVolumeClaim"].includes(e.involvedObject.kind)))},hostEvents(){return this.events.filter((e=>["Node"].includes(e.involvedObject.kind)))},imageEvents(){return this.events.filter((e=>["VirtualMachineImage"].includes(e.involvedObject.kind)))},hasMetricsTabs(){return this.showClusterMetrics||this.showVmMetrics},pods(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](L.Sm)||[];return t.filter((e=>"removing"!==e?.metadata?.name))},cpuReserved(){const e=this.nodes.reduce(((e,t)=>e+t.cpuReserved),0);return{total:this.cpusTotal,useful:e}},ramReserved(){const e=this.nodes.reduce(((e,t)=>e+t.memoryReserved),0);return(0,T.S0)(this.memoryTotal,e)},availableNodes(){return(this.metricNodes||[]).map((e=>e.id))},metricAggregations(){const e=this.nodes,t=this.nodes.some((e=>e.hasARole&&!e.isWorker)),r=this.nodeMetrics.filter((r=>{const a=e.find((e=>e.id===r.id));return a&&(!t||a.isWorker)})),a={cpu:0,memory:0};return(0,H.Im)(r)?null:r.reduce(((e,t)=>(e.cpu+=(0,T.ao)(t.usage.cpu),e.memory+=(0,T.ao)(t.usage.memory),e)),a)},cpuUsed(){return{total:this.cpusTotal,useful:this.metricAggregations?.cpu}},ramUsed(){return(0,T.S0)(this.memoryTotal,this.metricAggregations?.memory)},hasMetricNodeSchema(){const e=this.$store.getters["currentProduct"].inStore;return!!this.$store.getters[`${e}/schemaFor`](L.$v.NODE)},toEnableMonitoringAddon(){return`${G.rk.ADD_ONS}/cattle-monitoring-system/rancher-monitoring?mode=edit#alertmanager`},canEnableMonitoringAddon(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/schemaFor`](G.rk.ADD_ONS);return t&&this.monitoring}},methods:{createMemoryValues(e,t){const r=(0,T.ao)((e||"0").toString()),a=(0,T.ao)((t||"0").toString()),s=this.createMemoryFormat(r),o=(0,T.Mo)(r,s);let n=(0,T.Mo)(a,{...s,addSuffix:!1});return!Number.parseFloat(n)>0&&(n=(0,T.Mo)(a,{...s,canRoundToZero:!1})),{total:Number(r),useful:Number(a),formattedTotal:o,formattedUseful:n,units:this.createMemoryUnits(r)}},createMemoryFormat(e){const t=(0,T.$W)(e,me.memory.format.increment);return{...me.memory.format,maxExponent:t,minExponent:t}},createMemoryUnits(e){const t=(0,T.$W)(e,me.memory.format.increment);return`${T.QN[t]}${me.memory.format.suffix}`},async fetchClusterResources(e,t={},r){const a=r||this.$store.getters["currentProduct"].inStore,s=this.$store.getters[`${a}/schemaFor`](e);if(s)try{const r=await this.$store.dispatch(`${a}/findAll`,{type:e,opt:t});return r}catch(o){return he.error(`Failed fetching cluster resource ${e} with error:`,o),[]}return[]},async loadMetrics(){this.nodeMetrics=await this.fetchClusterResources(L.$v.NODE,{force:!0})}}};r(57756);const Ce=(0,ce.A)(be,[["render",k],["__scopeId","data-v-69bd7a3f"]]);var we=Ce},97341:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return w}});var a=r(9274);const s={key:1},o={class:"console-button"},n=["disabled","onClick"],i=["href"];function l(e,t,r,l,c,d){const u=(0,a.resolveComponent)("Loading"),p=(0,a.resolveComponent)("ResourceTable"),h=(0,a.resolveDirective)("clean-tooltip");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(u,{key:0})):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(p,(0,a.mergeProps)(e.$attrs,{schema:d.schema,groupable:!1,headers:d.headers,rows:[...c.rows],namespaced:!1,"key-field":"_key"}),{"cell:console":(0,a.withCtx)((({row:r})=>[(0,a.createElementVNode)("div",o,[(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("button",{type:"button",class:"mr-5 btn btn-sm role-primary",disabled:!r.consoleUrl,onClick:e=>d.goto(r)},[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.host.console")),1)],8,n)),[[h,d.consoleTooltip(r)]]),r.consoleUrl?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("a",{key:0,href:d.consoleDocLink,target:"_blank"},t[0]||(t[0]=[(0,a.createElementVNode)("i",{class:"icon icon-info"},null,-1)]),8,i))])])),_:1},16,["schema","headers","rows"])]))}var c=r(53500),d=r(84409),u=r(68774),p=r(35664),h=r(88339),m=r(52799),g=r(32766),v=r(66242),f=r(3791);const k={id:g.rk.HOST,type:p.yx,attributes:{kind:g.rk.HOST,namespaced:!0},metadata:{name:g.rk.HOST}};var y={name:"HarvesterListHost",components:{ResourceTable:c.A,Loading:d.A},mixins:[m.A],async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={nodes:this.$store.dispatch(`${e}/findAll`,{type:p.NW}),pods:this.$store.dispatch(`${e}/findAll`,{type:p.Sm})};this.$store.getters[`${e}/schemaFor`](p.$v.NODE)?t.metric=this.$store.dispatch(`${e}/findAll`,{type:p.$v.NODE}):this.hasMetricSchema=!1,this.$store.getters[`${e}/schemaFor`](p.oe.NODES)?t.longhornNodes=this.$store.dispatch(`${e}/findAll`,{type:p.oe.NODES}):this.hasLonghornSchema=!1,this.$store.getters[`${e}/schemaFor`](g.rk.BLOCK_DEVICE)&&(t.blockDevices=this.$store.dispatch(`${e}/findAll`,{type:g.rk.BLOCK_DEVICE})),this.$store.getters[`${e}/schemaFor`](g.rk.INVENTORY)&&(t.inventories=this.$store.dispatch(`${e}/findAll`,{type:g.rk.INVENTORY})),this.$store.getters[`${e}/schemaFor`](p.qt.MACHINE)&&(t.machines=this.$store.dispatch(`${e}/findAll`,{type:p.qt.MACHINE}));const r=await(0,h.kR)(t);this.rows=r.nodes},data(){return{rows:[],hasMetricSchema:!0,hasLonghornSchema:!0}},computed:{headers(){const e=[{...u.c4,formatter:"StateWithPopover"},{...u.o_,width:130},{name:"host-ip",labelKey:"tableHeaders.hostIp",search:["internalIp"],value:"internalIp",formatter:"CopyToClipboard",sort:["internalIp"],align:"center"}];if(this.hasMetricSchema){const t=[{name:"cpu",labelKey:"node.detail.glance.consumptionGauge.cpu",value:"id",formatter:"HarvesterCPUUsed",formatterOpts:{showUsed:!0}},{name:"memory",labelKey:"node.detail.glance.consumptionGauge.memory",value:"id",formatter:"HarvesterMemoryUsed",formatterOpts:{showUsed:!0}}];e.splice(-1,0,...t)}if(this.hasLonghornSchema){const t={name:"storage",labelKey:"tableHeaders.storage",value:"id",formatter:"HarvesterStorageUsed",formatterOpts:{showAllocated:!0}};e.splice(-1,0,t)}return this.rows.every((e=>e.cpuPinningFeatureEnabled))&&e.push({name:"cpuManager",labelKey:"harvester.tableHeaders.cpuManager",value:"id",formatter:"HarvesterCPUPinning",formatterOpts:{rows:this.rows},width:150,align:"center"}),this.hasLonghornSchema&&e.push({name:"diskState",labelKey:"tableHeaders.diskState",value:"diskState",formatter:"HarvesterDiskState",width:130}),e.push(u.K),e.push({name:"console",label:" ",align:"right",width:80}),e},schema(){return k},consoleDocLink(){const e=this.$store.getters["harvester-common/getServerVersion"]();return(0,f.nn)(v.d.CONSOLE_URL,e)}},methods:{async loadMetrics(){const e=this.$store.getters["harvester/schemaFor"](p.$v.NODE);e&&(await this.$store.dispatch("harvester/findAll",{type:p.$v.NODE,opt:{force:!0}}),this.$forceUpdate())},goto(e){window.open(e.consoleUrl,"_blank")},consoleTooltip(e){return e.consoleUrl?"":this.t("harvester.host.noConsoleUrl")}},typeDisplay(){const{params:{resource:e}}=this.$route;let t=k;return e!==k.id&&(t=this.$store.getters["harvester/schemaFor"](e)),this.$store.getters["type-map/labelFor"](t,99)}},b=(r(59211),r(47433));const C=(0,b.A)(y,[["render",l],["__scopeId","data-v-748b0729"]]);var w=C},78646:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return k}});var a=r(9274);const s={key:1};function o(e,t,r,o,n,i){const l=(0,a.resolveComponent)("Loading"),c=(0,a.resolveComponent)("MessageLink"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0})):n.listSchema?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[!1===i.loggingEnabled?((0,a.openBlock)(),(0,a.createBlock)(d,{key:0,color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(c,{to:i.to,"prefix-label":"harvester.logging.diabledTips.prefix","middle-label":"harvester.logging.diabledTips.middle","suffix-label":"harvester.logging.diabledTips.suffix"},null,8,["to"])])),_:1})):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(u,{schema:i.schema,rows:n.rows,"ignore-filter":!0,groupable:!1},null,8,["schema","rows"])])):((0,a.openBlock)(),(0,a.createBlock)(d,{key:2,color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.generic.noSchema",{schema:i.schema.id})),1)])),_:1}))}var n=r(88339),i=r(53500),l=r(56943),c=r(96413),d=r(84409),u=r(35664),p=r(32766);const h={id:p.rk.CLUSTER_FLOW,type:u.yx,attributes:{kind:p.rk.CLUSTER_FLOW,namespaced:!0},metadata:{name:p.rk.CLUSTER_FLOW}},m="cattle-logging-system/rancher-logging";var g={name:"ListApps",components:{Loading:d.A,ResourceTable:i.A,Banner:l.A,MessageLink:c.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={};this.listSchema=this.$store.getters[`${e}/schemaFor`](u.cm.CLUSTER_FLOW),this.listSchema&&(t.clusteroutput=this.$store.dispatch(`${e}/findAll`,{type:u.cm.CLUSTER_OUTPUT}),t.rows=this.$store.dispatch(`${e}/findAll`,{type:u.cm.CLUSTER_FLOW})),this.$store.getters[`${e}/schemaFor`](p.rk.ADD_ONS)&&(t.loggingAddon=this.$store.dispatch(`${e}/find`,{type:p.rk.ADD_ONS,id:m}));const r=await(0,n.kR)(t);this.rows=r.rows,this.loggingAddon=r.loggingAddon,this.$store.dispatch("type-map/configureType",{match:p.rk.CLUSTER_FLOW,isCreatable:this.listSchema&&this.listSchema?.collectionMethods.find((e=>"post"===e.toLowerCase()))})},data(){return{rows:[],listSchema:null,loggingAddon:null}},computed:{schema(){return h},to(){return`${p.rk.ADD_ONS}/cattle-logging-system/rancher-logging?mode=edit#basic`},loggingEnabled(){return this.loggingAddon?.spec?.enabled}},typeDisplay(){return this.$store.getters["type-map/labelFor"](h,99)}},v=r(47433);const f=(0,v.A)(g,[["render",o]]);var k=f},56497:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return k}});var a=r(9274);const s={key:1};function o(e,t,r,o,n,i){const l=(0,a.resolveComponent)("Loading"),c=(0,a.resolveComponent)("MessageLink"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0})):n.listSchema?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[!1===i.loggingEnabled?((0,a.openBlock)(),(0,a.createBlock)(d,{key:0,color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(c,{to:i.to,"prefix-label":"harvester.logging.diabledTips.prefix","middle-label":"harvester.logging.diabledTips.middle","suffix-label":"harvester.logging.diabledTips.suffix"},null,8,["to"])])),_:1})):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(u,{schema:i.schema,rows:n.rows,"ignore-filter":!0,groupable:!1},null,8,["schema","rows"])])):((0,a.openBlock)(),(0,a.createBlock)(d,{key:2,color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.generic.noSchema",{schema:i.schema.id})),1)])),_:1}))}var n=r(88339),i=r(53500),l=r(56943),c=r(96413),d=r(84409),u=r(35664),p=r(32766);const h={id:p.rk.CLUSTER_OUTPUT,type:u.yx,attributes:{kind:p.rk.CLUSTER_OUTPUT,namespaced:!0},metadata:{name:p.rk.CLUSTER_OUTPUT}},m="cattle-logging-system/rancher-logging";var g={name:"ListApps",components:{Loading:d.A,ResourceTable:i.A,Banner:l.A,MessageLink:c.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={};this.listSchema=this.$store.getters[`${e}/schemaFor`](u.cm.CLUSTER_OUTPUT),this.listSchema&&(t.rows=this.$store.dispatch(`${e}/findAll`,{type:u.cm.CLUSTER_OUTPUT})),this.$store.getters[`${e}/schemaFor`](p.rk.ADD_ONS)&&(t.loggingAddon=this.$store.dispatch(`${e}/find`,{type:p.rk.ADD_ONS,id:m}));const r=await(0,n.kR)(t);this.rows=r.rows,this.loggingAddon=r.loggingAddon,this.$store.dispatch("type-map/configureType",{match:p.rk.CLUSTER_OUTPUT,isCreatable:this.listSchema&&this.listSchema?.collectionMethods.find((e=>"post"===e.toLowerCase()))})},data(){return{rows:[],listSchema:null,loggingAddon:null}},computed:{schema(){return h},to(){return`${p.rk.ADD_ONS}/cattle-logging-system/rancher-logging?mode=edit#basic`},loggingEnabled(){return this.loggingAddon?.spec?.enabled}},typeDisplay(){return this.$store.getters["type-map/labelFor"](h,99)}},v=r(47433);const f=(0,v.A)(g,[["render",o]]);var k=f},81342:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return k}});var a=r(9274);const s={key:1};function o(e,t,r,o,n,i){const l=(0,a.resolveComponent)("Loading"),c=(0,a.resolveComponent)("MessageLink"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0})):n.listSchema?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[!1===i.loggingEnabled?((0,a.openBlock)(),(0,a.createBlock)(d,{key:0,color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(c,{to:i.to,"prefix-label":"harvester.logging.diabledTips.prefix","middle-label":"harvester.logging.diabledTips.middle","suffix-label":"harvester.logging.diabledTips.suffix"},null,8,["to"])])),_:1})):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(u,{schema:i.schema,rows:n.rows,"ignore-filter":!0,groupable:!1},null,8,["schema","rows"])])):((0,a.openBlock)(),(0,a.createBlock)(d,{key:2,color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.generic.noSchema",{schema:i.schema.id})),1)])),_:1}))}var n=r(88339),i=r(53500),l=r(56943),c=r(96413),d=r(84409),u=r(35664),p=r(32766);const h={id:p.rk.FLOW,type:u.yx,attributes:{kind:p.rk.FLOW,namespaced:!0},metadata:{name:p.rk.FLOW}},m="cattle-logging-system/rancher-logging";var g={name:"ListApps",components:{Loading:d.A,ResourceTable:i.A,Banner:l.A,MessageLink:c.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={};this.listSchema=this.$store.getters[`${e}/schemaFor`](u.cm.FLOW),this.clusteroutputSchema=this.$store.getters[`${e}/schemaFor`](u.cm.CLUSTER_OUTPUT),this.listSchema&&(t.output=this.$store.dispatch(`${e}/findAll`,{type:u.cm.OUTPUT}),t.rows=this.$store.dispatch(`${e}/findAll`,{type:u.cm.FLOW})),this.clusteroutputSchema&&(t.clusteroutput=this.$store.dispatch(`${e}/findAll`,{type:u.cm.CLUSTER_OUTPUT})),this.$store.getters[`${e}/schemaFor`](p.rk.ADD_ONS)&&(t.loggingAddon=this.$store.dispatch(`${e}/find`,{type:p.rk.ADD_ONS,id:m}));const r=await(0,n.kR)(t);this.rows=r.rows,this.loggingAddon=r.loggingAddon,this.$store.dispatch("type-map/configureType",{match:p.rk.FLOW,isCreatable:this.listSchema&&this.listSchema?.collectionMethods.find((e=>"post"===e.toLowerCase()))})},data(){return{rows:[],listSchema:null,loggingAddon:null}},computed:{schema(){return h},to(){return`${p.rk.ADD_ONS}/cattle-logging-system/rancher-logging?mode=edit#basic`},loggingEnabled(){return this.loggingAddon?.spec?.enabled}},typeDisplay(){return this.$store.getters["type-map/labelFor"](h,99)}},v=r(47433);const f=(0,v.A)(g,[["render",o]]);var k=f},65391:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return k}});var a=r(9274);const s={key:1};function o(e,t,r,o,n,i){const l=(0,a.resolveComponent)("Loading"),c=(0,a.resolveComponent)("MessageLink"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0})):n.listSchema?((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[!1===i.loggingEnabled?((0,a.openBlock)(),(0,a.createBlock)(d,{key:0,color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(c,{to:i.to,"prefix-label":"harvester.logging.diabledTips.prefix","middle-label":"harvester.logging.diabledTips.middle","suffix-label":"harvester.logging.diabledTips.suffix"},null,8,["to"])])),_:1})):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(u,{schema:i.schema,rows:n.rows,"ignore-filter":!0,groupable:!1},null,8,["schema","rows"])])):((0,a.openBlock)(),(0,a.createBlock)(d,{key:2,color:"warning"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.generic.noSchema",{schema:i.schema.id})),1)])),_:1}))}var n=r(88339),i=r(53500),l=r(56943),c=r(96413),d=r(84409),u=r(35664),p=r(32766);const h={id:p.rk.OUTPUT,type:u.yx,attributes:{kind:p.rk.OUTPUT,namespaced:!0},metadata:{name:p.rk.OUTPUT}},m="cattle-logging-system/rancher-logging";var g={name:"ListApps",components:{Loading:d.A,ResourceTable:i.A,Banner:l.A,MessageLink:c.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={};this.listSchema=this.$store.getters[`${e}/schemaFor`](u.cm.OUTPUT),this.listSchema&&(t.rows=this.$store.dispatch(`${e}/findAll`,{type:u.cm.OUTPUT})),this.$store.getters[`${e}/schemaFor`](p.rk.ADD_ONS)&&(t.loggingAddon=this.$store.dispatch(`${e}/find`,{type:p.rk.ADD_ONS,id:m}));const r=await(0,n.kR)(t);this.rows=r.rows,this.loggingAddon=r.loggingAddon,this.$store.dispatch("type-map/configureType",{match:p.rk.OUTPUT,isCreatable:this.listSchema&&this.listSchema?.collectionMethods.find((e=>"post"===e.toLowerCase()))})},data(){return{rows:[],listSchema:null,loggingAddon:null}},computed:{schema(){return h},to(){return`${p.rk.ADD_ONS}/cattle-logging-system/rancher-logging?mode=edit#basic`},loggingEnabled(){return this.loggingAddon?.spec?.enabled}},typeDisplay(){return this.$store.getters["type-map/labelFor"](h,99)}},v=r(47433);const f=(0,v.A)(g,[["render",o]]);var k=f},49610:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return b}});var a=r(9274);const s={key:1};function o(e,t,r,o,n,i){const l=(0,a.resolveComponent)("Loading"),c=(0,a.resolveComponent)("MessageLink"),d=(0,a.resolveComponent)("Banner"),u=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0})):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[!1===i.monitoringEnabled?((0,a.openBlock)(),(0,a.createBlock)(d,{key:0,color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(c,{to:i.to,"prefix-label":"harvester.monitoring.alertmanagerConfig.diabledMonitoringTips.prefix","middle-label":"harvester.monitoring.alertmanagerConfig.diabledMonitoringTips.middle","suffix-label":"harvester.monitoring.alertmanagerConfig.diabledMonitoringTips.suffix"},null,8,["to"])])),_:1})):(0,a.createCommentVNode)("",!0),!1===i.alertingEnabled?((0,a.openBlock)(),(0,a.createBlock)(d,{key:1,color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(c,{to:i.to,"prefix-label":"harvester.monitoring.alertmanagerConfig.diabledAlertingTips.prefix","middle-label":"harvester.monitoring.alertmanagerConfig.diabledAlertingTips.middle","suffix-label":"harvester.monitoring.alertmanagerConfig.diabledAlertingTips.suffix"},null,8,["to"])])),_:1})):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(d,{color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("monitoring.alertmanagerConfig.description")),1)])),_:1}),(0,a.createVNode)(u,(0,a.mergeProps)(e.$attrs,{groupable:!0,schema:i.schema,rows:n.rows,"key-field":"_key"}),null,16,["schema","rows"])]))}var n=r(20246),i=r.n(n),l=r(88339),c=r(9980),d=r(96413),u=r(53500),p=r(84409),h=r(35664),m=r(32766);const g={id:m.rk.ALERTMANAGERCONFIG,type:h.yx,attributes:{kind:m.rk.ALERTMANAGERCONFIG,namespaced:!0},metadata:{name:m.rk.ALERTMANAGERCONFIG}},v="cattle-monitoring-system/rancher-monitoring";var f={name:"ListAlertManagerConfigs",components:{Banner:c.l,Loading:p.A,ResourceTable:u.A,MessageLink:d.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={rows:this.$store.dispatch(`${e}/findAll`,{type:h.Rp.ALERTMANAGERCONFIG})};this.$store.getters[`${e}/schemaFor`](m.rk.ADD_ONS)&&(t.monitoring=this.$store.dispatch(`${e}/find`,{type:m.rk.ADD_ONS,id:v}));const r=await(0,l.kR)(t);this.rows=r.rows,this.monitoringAddon=r.monitoring;const a=this.$store.getters[`${e}/schemaFor`](h.Rp.ALERTMANAGERCONFIG);this.$store.dispatch("type-map/configureType",{match:m.rk.ALERTMANAGERCONFIG,isCreatable:a?.collectionMethods.find((e=>"post"===e.toLowerCase()))})},data(){return{rows:null,monitoringAddon:null}},computed:{schema(){return g},to(){return`${m.rk.ADD_ONS}/cattle-monitoring-system/rancher-monitoring?mode=edit#alertmanager`},monitoringEnabled(){return this.monitoringAddon?.spec?.enabled},alertingEnabled(){const e=i().load(this.monitoringAddon?.spec?.valuesContent);return e?.alertmanager?.enabled}},typeDisplay(){return this.$store.getters["type-map/labelFor"](g,99)}},k=(r(14614),r(47433));const y=(0,k.A)(f,[["render",o],["__scopeId","data-v-a0eea6e4"]]);var b=y},42148:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return k}});var a=r(9274);const s={key:1},o={key:1};function n(e,t,r,n,i,l){const c=(0,a.resolveComponent)("Loading"),d=(0,a.resolveComponent)("Masthead"),u=(0,a.resolveComponent)("router-link"),p=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(c,{key:0})):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(d,{schema:r.schema,resource:i.resource,"type-display":l.typeDisplay,"parent-name-override":"Virtual Machine schedule","create-button-label":e.t("harvester.schedule.createButtonText")},null,8,["schema","resource","type-display","create-button-label"]),(0,a.createVNode)(p,(0,a.mergeProps)(e.$attrs,{headers:l.headers,groupable:!0,rows:l.filteredRows,schema:r.schema,"key-field":"_key","default-sort-by":"age"}),{"col:name":(0,a.withCtx)((({row:e})=>[(0,a.createElementVNode)("td",null,[(0,a.createElementVNode)("span",null,[l.getRow(e)?((0,a.openBlock)(),(0,a.createBlock)(u,{key:0,to:e.detailLocation},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.nameDisplay),1)])),_:2},1032,["to"])):((0,a.openBlock)(),(0,a.createElementBlock)("span",o,(0,a.toDisplayString)(e.nameDisplay),1))])])])),_:1},16,["headers","rows","schema"])]))}var i=r(84409),l=r(66656),c=r(53500),d=r(32766),u=r(5662),p=r(68774),h=r(1371),m=r(41837),g={name:"HarvesterListSchedule",components:{ResourceTable:c.A,Loading:i.A,Masthead:l.A},props:{schema:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await(0,u.v)({vms:this.$store.dispatch(`${e}/findAll`,{type:d.rk.VM}),rows:this.$store.dispatch(`${e}/findAll`,{type:d.rk.SCHEDULE_VM_BACKUP})});this.rows=t.rows},data(){const e={...this.$route.params},t=e.resource;return{rows:[],settings:[],resource:t,to:`${d.rk.SETTING}/backup-target?mode=edit`}},computed:{headers(){const e=[p.c4,p.o_,p.CU,{name:"sourceVm",labelKey:"harvester.tableHeaders.sourceVm",value:"spec.vmbackup.source.name",sort:"sourceVm",align:"center",formatter:"AttachVMWithName"},h.lA,h.tC,h.KG,h.iu,p.K];return e},filteredRows(){return this.rows.filter((e=>e.spec?.type!==m.a.SNAPSHOT))},typeDisplay(){return this.t("harvester.schedule.label")}},methods:{getRow(e){return e.spec?.vmbackup?.source?.name}}},v=r(47433);const f=(0,v.A)(g,[["render",n]]);var k=f},60633:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return h}});var a=r(9274);function s(e,t,r,s,o,n){const i=(0,a.resolveComponent)("Loading"),l=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(i,{key:0})):((0,a.openBlock)(),(0,a.createBlock)(l,(0,a.mergeProps)({key:1},e.$attrs,{groupable:!0,schema:n.schema,rows:o.rows,"key-field":"_key"}),null,16,["schema","rows"]))}var o=r(53500),n=r(84409),i=r(35664),l=r(32766);const c={id:l.rk.SECRET,type:i.yx,attributes:{kind:l.rk.SECRET,namespaced:!0},metadata:{name:l.rk.SECRET}};var d={name:"HarvesterSecret",components:{ResourceTable:o.A,Loading:n.A},inheritAttrs:!1,async fetch(){const e=this.$store.getters["currentProduct"].inStore;this.rows=await this.$store.dispatch(`${e}/findAll`,{type:i.bB});const t=this.$store.getters[`${e}/schemaFor`](i.bB);t?.collectionMethods.find((e=>"post"===e.toLowerCase()))||this.$store.dispatch("type-map/configureType",{match:l.rk.SECRET,isCreatable:!1})},data(){return{rows:[]}},computed:{schema(){return c}},typeDisplay(){return this.$store.getters["type-map/labelFor"](c,99)}},u=r(47433);const p=(0,u.A)(d,[["render",s]]);var h=p},36441:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return G}});var a=r(9274);const s={key:1};function o(e,t,r,o,n,i){const l=(0,a.resolveComponent)("Loading"),c=(0,a.resolveComponent)("Banner"),d=(0,a.resolveComponent)("Settings"),u=(0,a.resolveComponent)("Tab"),p=(0,a.resolveComponent)("Tabbed");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0})):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(c,{color:"warning",class:"settings-banner"},{default:(0,a.withCtx)((()=>[(0,a.createElementVNode)("div",null,(0,a.toDisplayString)(e.t("harvester.setting.modifiedMessage")),1)])),_:1}),(0,a.createVNode)(p,{class:"mt-30"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(u,{name:"advanced",label:e.t("harvester.setting.tabs.advanced"),weight:99},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(d,{settings:i.settings,category:"advanced"},null,8,["settings"])])),_:1},8,["label"]),(0,a.createVNode)(u,{name:"ui",label:e.t("harvester.setting.tabs.ui"),weight:89},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(d,{settings:i.settings,category:"ui"},null,8,["settings"])])),_:1},8,["label"])])),_:1})]))}var n=r(65359),i=r(9980),l=r(84409),c=r(91462),d=r(35664),u=r(88339),p=r(59808),h=r(49584);const m={class:"header"},g={class:"title"},v={key:0,class:"modified"},f={key:1,class:"experimental"},k=["id"],y=["onClick"],b={value:""},C={key:0,class:"settings-value"},w={key:0},S={key:1},N={key:2},E={key:3},V={key:4},A={key:5,class:"text-muted"},$={class:"mt-5"},B=["onClick"],x=["onClick"];function T(e,t,r,s,o,n){const i=(0,a.resolveComponent)("AsyncButton"),l=(0,a.resolveComponent)("Banner"),c=(0,a.resolveDirective)("clean-tooltip"),d=(0,a.resolveDirective)("clean-html");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(o.categorySettings,((r,s)=>((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:s,class:"advanced-setting mb-20"},[(0,a.createElementVNode)("div",m,[(0,a.createElementVNode)("div",g,[(0,a.createElementVNode)("h1",null,[(0,a.createTextVNode)((0,a.toDisplayString)(r.id)+" ",1),r.customized?((0,a.openBlock)(),(0,a.createElementBlock)("span",v," Modified ")):(0,a.createCommentVNode)("",!0),r.experimental?(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("span",f,t[0]||(t[0]=[(0,a.createTextVNode)(" Experimental ")]))),[[c,e.t("advancedSettings.experimental")]]):(0,a.createCommentVNode)("",!0)]),(0,a.withDirectives)((0,a.createElementVNode)("h2",null,null,512),[[d,e.t(r.description,{},!0)]])]),r.hasActions?((0,a.openBlock)(),(0,a.createElementBlock)("div",{key:0,id:r.id,class:"action"},[(0,a.createElementVNode)("button",{"aria-haspopup":"true","aria-expanded":"false",type:"button",class:"btn btn-sm role-multi-action actions",onClick:e=>n.showActionMenu(e,r)},t[1]||(t[1]=[(0,a.createElementVNode)("i",{class:"icon icon-actions"},null,-1)]),8,y)],8,k)):(0,a.createCommentVNode)("",!0)]),(0,a.createElementVNode)("div",b,[r.hide?(0,a.createCommentVNode)("",!0):((0,a.openBlock)(),(0,a.createElementBlock)("div",C,["json"===r.kind?((0,a.openBlock)(),(0,a.createElementBlock)("pre",w,(0,a.toDisplayString)(r.json),1)):"multiline"===r.kind?((0,a.openBlock)(),(0,a.createElementBlock)("pre",S,(0,a.toDisplayString)(r.data.value||r.data.default),1)):"enum"===r.kind?((0,a.openBlock)(),(0,a.createElementBlock)("pre",N,(0,a.toDisplayString)(e.t(r.enum)),1)):"custom"===r.kind&&r.custom?((0,a.openBlock)(),(0,a.createElementBlock)("pre",E,(0,a.toDisplayString)(r.custom),1)):r.data.value||r.data.default?((0,a.openBlock)(),(0,a.createElementBlock)("pre",V,(0,a.toDisplayString)(r.data.value||r.data.default),1)):((0,a.openBlock)(),(0,a.createElementBlock)("pre",A,"<"+(0,a.toDisplayString)(e.t("advancedSettings.none"))+">",1))])),(0,a.createElementVNode)("div",$,[r.hide?((0,a.openBlock)(),(0,a.createElementBlock)("button",{key:0,class:"btn btn-sm role-primary",onClick:e=>n.toggleHide(r)},(0,a.toDisplayString)(e.t("advancedSettings.show"))+" "+(0,a.toDisplayString)(r.id),9,B)):(0,a.createCommentVNode)("",!0),r.canHide&&!r.hide?((0,a.openBlock)(),(0,a.createElementBlock)("button",{key:1,class:"btn btn-sm role-primary",onClick:e=>n.toggleHide(r)},(0,a.toDisplayString)(e.t("advancedSettings.hide"))+" "+(0,a.toDisplayString)(r.id),9,x)):(0,a.createCommentVNode)("",!0),r.id===o.HCI_SETTING.BACKUP_TARGET?((0,a.openBlock)(),(0,a.createBlock)(i,{key:2,class:"backupButton ml-5",mode:"apply",size:"sm",delay:0,"action-label":e.t("harvester.backup.message.testConnect.actionLabel"),"waiting-label":e.t("harvester.backup.message.testConnect.waitingLabel"),"success-label":e.t("harvester.backup.message.testConnect.successLabel"),onClick:e=>n.testConnect(e,r.data.value)},null,8,["action-label","waiting-label","success-label","onClick"])):(0,a.createCommentVNode)("",!0)])]),r.data.errMessage?((0,a.openBlock)(),(0,a.createBlock)(l,{key:0,color:"error mt-5",class:"settings-banner"},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(r.data.errMessage),1)])),_:2},1024)):(0,a.createCommentVNode)("",!0)])))),128))])}var _=r(88857),L=r(50889);const D={ui:["branding","ui-source","ui-plugin-index","ui-index"]};var R={name:"SettingLists",components:{AsyncButton:_.A,Banner:i.l},props:{settings:{type:Array,required:!0},category:{type:String,required:!0}},data(){const e=this.filterCategorySettings();return{HCI_SETTING:L.EP,categorySettings:e}},computed:{...(0,n.L8)({t:"i18n/t"})},watch:{settings:{deep:!0,handler(){this["categorySettings"]=this.filterCategorySettings()}}},methods:{filterCategorySettings(){return this.settings.filter((e=>{if(!this.getFeatureEnabled(e.featureFlag))return!1;if("advanced"!==this.category)return(D[this.category]||[]).find((t=>t===e.id));if("advanced"===this.category){const t=Object.keys(D);return!t.some((t=>(D[t]||[]).find((t=>t===e.id))))}}))||[]},getFeatureEnabled(e){return!e||this.$store.getters["harvester-common/getFeatureEnabled"](e)},showActionMenu(e,t){const r=e.srcElement;this.$store.commit("action-menu/show",{resources:t.data,elem:r})},getSettingOption(e){return L.gh.find((t=>t.id===e))},toggleHide(e){this.categorySettings.find((t=>{t.id===e.id&&(t.hide=!t.hide)}))},async testConnect(e,t){try{const r=this.$store.getters["harvester-common/getHarvesterClusterUrl"]("v1/harvester/backuptarget/healthz"),a=await this.$store.dispatch("harvester/request",{url:r}),s=JSON.parse(t);200===a?._status&&this.$store.dispatch("growl/success",{title:this.t("harvester.notification.title.succeed"),message:this.t("harvester.backup.message.testConnect.successMessage",{endpoint:s?.endpoint})},{root:!0}),e(!0)}catch(r){400!==r?._status&&503!==r?._status||this.$store.dispatch("growl/error",{title:this.t("harvester.notification.title.error"),message:r?.errors[0]},{root:!0}),e(!1)}}}},O=(r(88493),r(47433));const M=(0,O.A)(R,[["render",T],["__scopeId","data-v-5b7931f6"]]);var I=M,P=r(32766),U=r(4364),F={components:{Banner:i.l,Loading:l.A,Tabbed:p.A,Tab:h.A,Settings:I},async fetch(){let e;try{e=this.$store.getters["prefs/get"](c.HZ)}catch{e=this.$store.getters["prefs/get"](c.IJ)}const t=!!this.$store.getters["isSingleProduct"],r=this.$store.getters["currentProduct"].inStore,a={harvesterSettings:this.$store.dispatch(`${r}/findAll`,{type:P.rk.SETTING})};t&&(a.settings=this.$store.dispatch("management/findAll",{type:d.Mc.SETTING}));const s=await(0,u.kR)(a);let o=[];o.push(...s.harvesterSettings),t&&(o=[...s.settings,...o]);const n=o.reduce(((e,t)=>(e[t.id]=t,e)),{}),i=[];let l=L.gh;this.isStandaloneHarvester&&(l={...l,...L.LP}),Object.keys(l).forEach((t=>{if(!n[t])return;const r=l[t]?.alias||t,a={...l[t],id:r,data:n[t]};a.hide=a.canHide="json"===a.kind||"multiline"===a.kind||"json"===a.customFormatter||"json"===a.data.customFormatter,a.hasActions=!a.readOnly||e,i.push(a)})),this.initSettings=i.sort(((e,t)=>e.id<t.id?-1:e.id>t.id?1:0))},data(){return{initSettings:[]}},computed:{...(0,n.L8)({t:"i18n/t"}),...(0,n.L8)(["isStandaloneHarvester"]),settings(){return this.initSettings.map((e=>{const t=e,r=t.data?.type?.includes("harvesterhci");if("json"===t.kind)try{t.json=JSON.stringify(JSON.parse(t.data.value||t.data.default||"{}"),null,2)}catch(a){U.error(`${t.data.id}: wrong format`),t.json={}}else if("enum"===t.kind){const e=t.data.value||t.data.default;t.enum=r?`advancedSettings.enum.harv-${t.id}.${e}`:`advancedSettings.enum.${t.id}.${e}`}else"custom"===t.kind&&(t.custom=t.data.customValue);return{...t,description:r?`advancedSettings.descriptions.harv-${t.id}`:`advancedSettings.descriptions.${t.id}`,customized:!t.readOnly&&t.data.value&&t.data.value!==t.data.default||t.data.hasCustomized}}))}}};r(88288);const H=(0,O.A)(F,[["render",o],["__scopeId","data-v-3fea1646"]]);var G=H},51086:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return g}});var a=r(9274);function s(e,t,r,s,o,n){const i=(0,a.resolveComponent)("Loading"),l=(0,a.resolveComponent)("ResourceTable");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(i,{key:0})):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(l,{rows:n.rows,schema:o.schema,headers:n.headers},null,8,["rows","schema","headers"])])}var o=r(84409),n=r(53500),i=r(88339),l=r(35664),c=r(68774),d=r(32766);const u={id:d.rk.STORAGE,type:l.yx,attributes:{kind:d.rk.STORAGE,namespaced:!1},metadata:{name:d.rk.STORAGE}};var p={name:"ListHarvesterStorages",components:{ResourceTable:n.A,Loading:o.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await(0,i.kR)({storages:this.$store.dispatch(`${e}/findAll`,{type:l.fJ})});const t=this.$store.getters[`${e}/schemaFor`](l.fJ);t&&!t?.collectionMethods.find((e=>["blocked-post","post"].includes(e.toLowerCase())))&&this.$store.dispatch("type-map/configureType",{match:d.rk.STORAGE,isCreatable:!1})},data(){return{schema:u}},computed:{rows(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](l.fJ);return t.filter((e=>!e.parameters?.backingImage))},headers(){return[c.c4,c.o_,c.wS,c.X,{name:"numberOfReplicas",labelKey:"harvester.storage.numberOfReplicas.label",value:"parameters.numberOfReplicas",sort:["parameters.numberOfReplicas"],align:"center"},c.K]}},typeDisplay(){return this.$store.getters["type-map/labelFor"](u,99)}},h=r(47433);const m=(0,h.A)(p,[["render",s]]);var g=m},69164:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return C}});var a=r(9274);const s={key:1},o={key:1},n={key:1};function i(e,t,r,i,l,c){const d=(0,a.resolveComponent)("Loading"),u=(0,a.resolveComponent)("Masthead"),p=(0,a.resolveComponent)("MessageLink"),h=(0,a.resolveComponent)("Banner"),m=(0,a.resolveComponent)("FilterVMSchedule"),g=(0,a.resolveComponent)("router-link"),v=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(d,{key:0})):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(u,{schema:r.schema,resource:l.resource,"create-button-label":e.t("harvester.backup.createText")},null,8,["schema","resource","create-button-label"]),(c.errorMessage||c.isEmptyValue)&&c.canUpdate?((0,a.openBlock)(),(0,a.createBlock)(h,{key:0,color:"error"},{default:(0,a.withCtx)((()=>[c.isEmptyValue?((0,a.openBlock)(),(0,a.createBlock)(p,{key:0,to:l.to,"prefix-label":"harvester.backup.message.noSetting.prefix","middle-label":"harvester.backup.message.noSetting.middle","suffix-label":"harvester.backup.message.noSetting.suffix"},null,8,["to"])):((0,a.openBlock)(),(0,a.createBlock)(p,{key:1,to:l.to,"prefix-label":"harvester.backup.message.errorTip.prefix","middle-label":"harvester.backup.message.errorTip.middle"},{suffix:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.backup.message.errorTip.suffix"))+" "+(0,a.toDisplayString)(c.errorMessage),1)])),_:1},8,["to"]))])),_:1})):c.canUpdate?((0,a.openBlock)(),(0,a.createElementBlock)("div",o,[(0,a.createVNode)(h,{color:"info"},{default:(0,a.withCtx)((()=>[(0,a.createVNode)(p,{to:l.to,"prefix-label":"harvester.backup.message.viewSetting.prefix","middle-label":"harvester.backup.message.viewSetting.middle","suffix-label":"harvester.backup.message.viewSetting.suffix"},null,8,["to"])])),_:1})])):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(v,(0,a.mergeProps)(e.$attrs,{headers:c.headers,groupable:!0,rows:c.filteredRows,"sort-generation-fn":c.sortGenerationFn,schema:r.schema,"key-field":"_key","default-sort-by":"age"}),(0,a.createSlots)({"col:name":(0,a.withCtx)((({row:e})=>[(0,a.createElementVNode)("td",null,[(0,a.createElementVNode)("span",null,[c.getRow(e)?((0,a.openBlock)(),(0,a.createBlock)(g,{key:0,to:e.detailLocation},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.nameDisplay),1)])),_:2},1032,["to"])):((0,a.openBlock)(),(0,a.createElementBlock)("span",n,(0,a.toDisplayString)(e.nameDisplay),1))])])])),_:2},[c.schedulingVMBackupFeatureEnabled?{name:"more-header-middle",fn:(0,a.withCtx)((()=>[(0,a.createVNode)(m,{rows:c.getRawRows,onChangeRows:c.changeRows},null,8,["rows","onChangeRows"])])),key:"0"}:void 0]),1040,["headers","rows","sort-generation-fn","schema"])]))}var l=r(9980),c=r(84409),d=r(96413),u=r(66656),p=r(53500),h=r(68774),m=r(55423),g=r(32766),v=r(5662),f=r(41837),k={name:"HarvesterListBackup",components:{ResourceTable:p.A,Banner:l.l,Loading:c.A,Masthead:u.A,MessageLink:d.A,FilterVMSchedule:m.A},props:{schema:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await(0,v.v)({vms:this.$store.dispatch(`${e}/findAll`,{type:g.rk.VM}),settings:this.$store.dispatch(`${e}/findAll`,{type:g.rk.SETTING}),backups:this.$store.dispatch(`${e}/findAll`,{type:g.rk.BACKUP}),scheduleList:this.$store.dispatch(`${e}/findAll`,{type:g.rk.SCHEDULE_VM_BACKUP})});if(this.backups=t.backups,this.rows=t.backups,this.settings=t.settings,this.$store.getters[`${e}/schemaFor`](g.rk.SETTING)){const e=t.settings.find((e=>"backup-target"===e.id)),r=this.getBackupTargetValueIsEmpty(e);e&&!r&&this.testConnect()}},data(){const e={...this.$route.params},t=e.resource;return{rows:[],backups:[],settings:[],resource:t,to:`${g.rk.SETTING}/backup-target?mode=edit`,searchSchedule:""}},methods:{async testConnect(){try{const e=this.$store.getters["harvester-common/getHarvesterClusterUrl"]("v1/harvester/backuptarget/healthz");await this.$store.dispatch("harvester/request",{url:e})}catch(e){400!==e?._status&&503!==e?._status||this.$store.dispatch("growl/error",{title:this.t("harvester.notification.title.error"),message:e.errors[0]},{root:!0})}},getBackupTargetValueIsEmpty(e){let t=!0;if(e?.value)try{const r=JSON.parse(e?.value);t=!r.type}catch(r){}return t},getRow(e){return e.status&&e.status.source},changeRows(e,t){this["searchSchedule"]=t,this["backups"]=e},sortGenerationFn(){let e=(0,p.S)(this.schema,this.$store);return e+=this.searchSchedule,e}},computed:{headers(){const e=[h.c4,h.o_,h.CU,{name:"targetVM",labelKey:"harvester.tableHeaders.targetVm",value:"attachVM",align:"left",formatter:"AttachVMWithName"}];return this.schedulingVMBackupFeatureEnabled&&e.push({name:"backupCreatedFrom",labelKey:"harvester.tableHeaders.vmSchedule",value:"sourceSchedule",formatter:"BackupCreatedFrom"}),e.push({name:"backupTarget",labelKey:"tableHeaders.backupTarget",value:"backupTarget",align:"left",formatter:"HarvesterBackupTargetValidation"},{name:"readyToUse",labelKey:"tableHeaders.readyToUse",value:"status.readyToUse",align:"center",formatter:"Checked"}),this.hasBackupProgresses&&e.push({name:"backupProgress",labelKey:"tableHeaders.progress",value:"backupProgress",align:"left",formatter:"HarvesterBackupProgressBar"}),e.push(h.K),e},schedulingVMBackupFeatureEnabled(){return this.$store.getters["harvester-common/getFeatureEnabled"]("schedulingVMBackup")},hasBackupProgresses(){return!!this.backups.find((e=>void 0!==e.status?.progress))},filteredRows(){return this.backups.filter((e=>e.spec?.type!==f.a.SNAPSHOT))},getRawRows(){return this.rows.filter((e=>e.spec?.type===f.a.BACKUP))},backupTargetResource(){return this.settings.find((e=>"backup-target"===e.id))},isEmptyValue(){return this.getBackupTargetValueIsEmpty(this.backupTargetResource)},canUpdate(){return this?.backupTargetResource?.canUpdate},errorMessage(){return this.backupTargetResource?.errMessage}}},y=r(47433);const b=(0,y.A)(k,[["render",i]]);var C=b},95115:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return B}});var a=r(9274);const s={key:0,class:"icon icon-lock"},o={key:1};function n(e,t,r,n,i,l){const c=(0,a.resolveComponent)("Banner"),d=(0,a.resolveComponent)("FilterLabel"),u=(0,a.resolveComponent)("router-link"),p=(0,a.resolveComponent)("ResourceTable");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[l.uploadingImages.length>0?((0,a.openBlock)(),(0,a.createBlock)(c,{key:0,color:"warning",label:e.t("harvester.image.warning.uploading",{count:l.uploadingImages.length})},null,8,["label"])):(0,a.createCommentVNode)("",!0),(0,a.createVNode)(p,(0,a.mergeProps)(e.$attrs,{rows:i.filterRows,schema:r.schema,"sort-generation-fn":l.sortGenerationFn,"key-field":"_key"}),{"more-header-middle":(0,a.withCtx)((()=>[(0,a.createVNode)(d,{ref:"filterLabel",rows:r.rows,onChangeRows:l.changeRows},null,8,["rows","onChangeRows"])])),"col:name":(0,a.withCtx)((({row:e})=>[(0,a.createElementVNode)("td",null,[(0,a.createElementVNode)("span",null,[e?.detailLocation?((0,a.openBlock)(),(0,a.createBlock)(u,{key:0,to:e.detailLocation},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.nameDisplay)+" ",1),e.isEncrypted?((0,a.openBlock)(),(0,a.createElementBlock)("i",s)):(0,a.createCommentVNode)("",!0)])),_:2},1032,["to"])):((0,a.openBlock)(),(0,a.createElementBlock)("span",o,(0,a.toDisplayString)(e.nameDisplay),1))])])])),_:1},16,["rows","schema","sort-generation-fn"])])}var i=r(53500),l=r(9980);const c={class:"filter"},d=["onClick"],u={ref:"actionDropDown",class:"btn bg-primary mr-10"},p={class:"filter-popup"},h={class:"box"},m={class:"key"},g={class:"value"},v={class:"key"},f={class:"value"},k=["onClick"];function y(e,t,r,s,o,n){const i=(0,a.resolveComponent)("Select"),l=(0,a.resolveComponent)("LabeledInput"),y=(0,a.resolveComponent)("ArrayList"),b=(0,a.resolveComponent)("v-dropdown");return(0,a.openBlock)(),(0,a.createElementBlock)("div",c,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(o.searchLabels,((e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.key?((0,a.openBlock)(),(0,a.createElementBlock)("span",{key:`${e.key}${t}`,class:"banner-item bg-warning"},[(0,a.createTextVNode)((0,a.toDisplayString)(e.key)+(0,a.toDisplayString)(e.value?"=":"")+(0,a.toDisplayString)(e.value),1),(0,a.createElementVNode)("i",{class:"icon icon-close",onClick:t=>n.remove(e)},null,8,d)])):(0,a.createCommentVNode)("",!0)],64)))),128)),(0,a.createVNode)(b,{"popper-class":"filter-label",trigger:"click",placement:"bottom-end",distance:20},{popper:(0,a.withCtx)((()=>[(0,a.createElementVNode)("div",p,[(0,a.createElementVNode)("div",null,[(0,a.createVNode)(y,{value:o.searchLabels,"onUpdate:value":[t[1]||(t[1]=e=>o.searchLabels=e),n.filterRows],"show-header":!0,"default-add-value":o.defaultAddValue,"initial-empty-row":!0},{"column-headers":(0,a.withCtx)((()=>[(0,a.createElementVNode)("div",h,[(0,a.createElementVNode)("div",m,[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("generic.key"))+" ",1),t[2]||(t[2]=(0,a.createElementVNode)("span",{class:"required"},"*",-1))]),(0,a.createElementVNode)("div",g,(0,a.toDisplayString)(e.t("generic.value")),1),t[3]||(t[3]=(0,a.createElementVNode)("div",null,null,-1))])])),columns:(0,a.withCtx)((e=>[(0,a.createElementVNode)("div",v,[(0,a.createVNode)(i,{ref:"select",key:"label",value:e.row.value.key,"onUpdate:value":[t=>e.row.value.key=t,n.filterRows],"append-to-body":!1,searchable:!0,options:n.optionLabels},null,8,["value","onUpdate:value","options"])]),(0,a.createElementVNode)("div",f,[n.calcValueOptions(e.row.value.key).length>0?((0,a.openBlock)(),(0,a.createBlock)(i,{ref:"select",key:"value",value:e.row.value.value,"onUpdate:value":[t=>e.row.value.value=t,n.filterRows],"append-to-body":!1,searchable:!0,options:n.calcValueOptions(e.row.value.key)},null,8,["value","onUpdate:value","options"])):((0,a.openBlock)(),(0,a.createBlock)(l,{key:1,value:e.row.value.value,"onUpdate:value":[t=>e.row.value.value=t,n.filterRows]},null,8,["value","onUpdate:value"]))])])),add:(0,a.withCtx)((({add:r})=>[(0,a.createElementVNode)("div",null,[(0,a.createElementVNode)("button",{type:"button",class:"btn role-tertiary add","data-testid":"add-item",onClick:e=>r()},(0,a.toDisplayString)(e.t("generic.add")),9,k),(0,a.createElementVNode)("button",{type:"button",class:"btn role-tertiary add","data-testid":"remove-all-item",onClick:t[0]||(t[0]=e=>n.removeAll())},(0,a.toDisplayString)(e.t("generic.clearAll")),1)])])),_:1},8,["value","default-add-value","onUpdate:value"])])])])),default:(0,a.withCtx)((()=>[(0,a.renderSlot)(e.$slots,"header",{},(()=>[(0,a.createElementVNode)("button",u,[(0,a.renderSlot)(e.$slots,"title",{},(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.fields.filterLabels")),1)]),!0)],512)]),!0)])),_:3})])}var b=r(22133),C=r(18918),w=r(98752),S={name:"HarvesterFilterLabel",emits:["changeRows"],components:{Select:C.A,ArrayList:b.A,LabeledInput:w.A},props:{rows:{type:Array,required:!0}},data(){return{searchLabels:[],defaultAddValue:{key:"",value:""}}},computed:{optionLabels(){const e=this.rows.map((e=>Object.keys(e.labels)));return Array.from(new Set(e.flat()))}},methods:{calcValueOptions(e){const t=[];return this.rows.map((r=>{const a=t.find((t=>t.label===r.labels[e]));Object.keys(r.labels).includes(e)&&e&&r.labels[e]&&!a&&t.push({value:r.labels[e],label:r.labels[e]})})),t},removeAll(){this["searchLabels"]=[],this.filterRows()},remove(e){this.searchLabels.find(((t,r)=>{if(t.key===e.key&&t.value===e.value)return this.searchLabels.splice(r,1),this.filterRows(),!0}))},filterRows(){const e=this.rows.filter((e=>{const t=this.searchLabels.find((e=>e.key));if(!t)return this.rows;const r=e.labels,a=Object.keys(r);return this.searchLabels.find((e=>!(!e.key||!a.includes(e.key))&&(!e.value||(e.value===r[e.key]||e.value===r[e.key]&&void 0))))}));this.$emit("changeRows",e,this.searchLabels)}},watch:{rows:{deep:!0,immediate:!0,handler(){this.filterRows()}}}},N=(r(15716),r(3286),r(47433));const E=(0,N.A)(S,[["render",y],["__scopeId","data-v-99256476"]]);var V=E,A={name:"ListHarvesterImage",components:{ResourceTable:i.A,Banner:l.l,FilterLabel:V},props:{schema:{type:Object,required:!0},rows:{type:Array,required:!0}},data(){return{searchLabels:[],filterRows:[]}},computed:{uploadingImages(){return this.$store.getters["harvester-common/uploadingImages"]||[]}},methods:{changeRows(e,t){this["filterRows"]=e,this["searchLabels"]=t},sortGenerationFn(){let e=(0,i.S)(this.schema,this.$store);return this.searchLabels.map((t=>{e+=t.key,e+=t.value})),e}}};const $=(0,N.A)(A,[["render",n]]);var B=$},81959:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return w}});var a=r(9274);const s={class:"group-bar"},o={class:"group-tab"},n={class:"project-name"},i={class:"right"},l={class:"age"},c=["onClick"],d={key:0},u={key:1};function p(e,t,r,p,h,m){const g=(0,a.resolveComponent)("Loading"),v=(0,a.resolveComponent)("LiveData"),f=(0,a.resolveComponent)("ResourceTable"),k=(0,a.resolveDirective)("clean-html");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(g,{key:0})):((0,a.openBlock)(),(0,a.createBlock)(f,(0,a.mergeProps)({key:1},e.$attrs,{headers:m.headers,"sub-rows":!0,groupable:!0,rows:m.rows,"group-title-by":m.groupTitleBy,"group-by":m.groupBy,schema:r.schema,"group-can-action":!0,"key-field":"_key"}),{"group-by":(0,a.withCtx)((e=>[(0,a.createElementVNode)("div",s,[(0,a.createElementVNode)("div",o,[(0,a.withDirectives)((0,a.createElementVNode)("div",n,null,512),[[k,m.templateLabel(e.group)]])]),(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",l,[(0,a.createVNode)(v,{value:m.valueFor(e.group),row:m.templateResource(e.group)},null,8,["value","row"])]),(0,a.createElementVNode)("button",{type:"button",class:"btn btn-sm actions mr-10 role-multi-action",onClick:t=>m.showActions(t,e.group)},t[0]||(t[0]=[(0,a.createElementVNode)("i",{class:"icon icon-actions"},null,-1)]),8,c)])])])),"col:defaultVersion":(0,a.withCtx)((({row:e})=>[e.isDefaultVersion?((0,a.openBlock)(),(0,a.createElementBlock)("td",d,t[1]||(t[1]=[(0,a.createElementVNode)("i",{class:"icon icon-checkmark"},null,-1)]))):((0,a.openBlock)(),(0,a.createElementBlock)("td",u))])),_:1},16,["headers","rows","group-title-by","group-by","schema"]))}var h=r(84409),m=r(27536),g=r(53500),v=r(88339),f=r(68774),k=r(32766),y={name:"HarvesterListTemplate",components:{ResourceTable:g.A,LiveData:m.A,Loading:h.A},inheritAttrs:!1,props:{schema:{type:Object,required:!0}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await(0,v.kR)({template:this.$store.dispatch(`${e}/findAll`,{type:k.rk.VM_TEMPLATE}),templateVersion:this.$store.dispatch(`${e}/findAll`,{type:k.rk.VM_VERSION})});this.template=t.template,this.templateVersion=t.templateVersion},data(){return{template:[],templateVersion:[]}},computed:{headers(){return[f.c4,f.o_,f.CU,{name:"defaultVersion",value:"id",labelKey:"tableHeaders.defaultVersion"},f.K]},rows(){return[...this.templateVersion]},groupBy(){return"spec.templateId"},groupTitleBy(){return k.rk.VM_TEMPLATE}},methods:{showActions(e,t){const r=t.rows[0].template;this.$store.commit("action-menu/show",{resources:[r],elem:e.target})},valueFor(e){const t=e?.rows?.[0].template;return t?.metadata?.creationTimestamp},templateLabel(e){return e.key},templateResource(e){return e?.rows?.[0].template}}},b=(r(68125),r(47433));const C=(0,b.A)(y,[["render",p],["__scopeId","data-v-a26b23da"]]);var w=C},95895:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return b}});var a=r(9274);const s={class:"state"},o={key:0,class:"icon icon-lock"},n={key:1};function i(e,t,r,i,l,c){const d=(0,a.resolveComponent)("Loading"),u=(0,a.resolveComponent)("HarvesterVolumeState"),p=(0,a.resolveComponent)("router-link"),h=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(d,{key:0})):((0,a.openBlock)(),(0,a.createBlock)(h,(0,a.mergeProps)({key:1},e.$attrs,{headers:c.headers,groupable:!0,"default-sort-by":"age",namespaced:!0,rows:l.rows,schema:c.schema,"key-field":"_key"}),{"cell:state":(0,a.withCtx)((({row:e})=>[(0,a.createElementVNode)("div",s,[(0,a.createVNode)(u,{class:"vmstate",row:e},null,8,["row"])])])),"cell:AttachedVM":(0,a.withCtx)((({row:e})=>[(0,a.createElementVNode)("div",null,[c.getVMName(e)?((0,a.openBlock)(),(0,a.createBlock)(p,{key:0,to:c.goTo(e)},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(c.getVMName(e)),1)])),_:2},1032,["to"])):(0,a.createCommentVNode)("",!0)])])),"col:name":(0,a.withCtx)((({row:e})=>[(0,a.createElementVNode)("td",null,[(0,a.createElementVNode)("span",null,[e?.detailLocation?((0,a.openBlock)(),(0,a.createBlock)(p,{key:0,to:e.detailLocation},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.nameDisplay)+" ",1),e.isEncrypted?((0,a.openBlock)(),(0,a.createElementBlock)("i",o)):(0,a.createCommentVNode)("",!0)])),_:2},1032,["to"])):((0,a.openBlock)(),(0,a.createElementBlock)("span",n,(0,a.toDisplayString)(e.nameDisplay),1))])])])),_:1},16,["headers","rows","schema"]))}var l=r(84409),c=r(53500),d=r(35664),u=r(68774),p=r(5538),h=r(5662),m=r(32766),g=r(2602);const v={id:m.rk.VOLUME,type:d.yx,attributes:{kind:m.rk.VOLUME,namespaced:!0},metadata:{name:m.rk.VOLUME}};var f={name:"HarvesterListVolume",components:{Loading:l.A,ResourceTable:c.A,HarvesterVolumeState:p["default"]},inheritAttrs:!1,async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={pvcs:this.$store.dispatch(`${e}/findAll`,{type:d.YH}),pvs:this.$store.dispatch(`${e}/findAll`,{type:d.PV}),vms:this.$store.dispatch(`${e}/findAll`,{type:m.rk.VM}),scs:this.$store.dispatch(`${e}/findAll`,{type:d.fJ})},r=this.$store.getters[`${e}/schemaFor`](m.qY);r&&(t.snapshots=this.$store.dispatch(`${e}/findAll`,{type:m.qY})),this.$store.getters[`${e}/schemaFor`](d.oe.VOLUMES)&&(t.longhornVolumes=this.$store.dispatch(`${e}/findAll`,{type:d.oe.VOLUMES})),this.$store.getters[`${e}/schemaFor`](d.oe.ENGINES)&&(t.longhornEngines=this.$store.dispatch(`${e}/findAll`,{type:d.oe.ENGINES}));const a=await(0,h.v)(t),s=this.$store.getters[`${e}/schemaFor`](d.YH);s?.collectionMethods.find((e=>"post"===e.toLowerCase()))||this.$store.dispatch("type-map/configureType",{match:m.rk.VOLUME,isCreatable:!1});const o=a.pvcs.filter((e=>"true"!==e.metadata.annotations[g.r.GOLDEN_IMAGE]));this.rows=o},data(){return{rows:[]}},computed:{schema(){return v},headers(){return[u.c4,u.o_,u.CU,{name:"size",labelKey:"tableHeaders.size",value:"spec.resources.requests.storage",sort:"volumeSort",formatter:"Si",formatterOpts:{opts:{increment:1024,addSuffix:!0,maxExponent:3,minExponent:3,suffix:"i"},needParseSi:!0}},{name:"storageClass",labelKey:"tableHeaders.storageClass",value:"spec.storageClassName",sort:"spec.storageClassName"},{name:"AttachedVM",labelKey:"tableHeaders.attachedVM",type:"attached",value:"spec.claimRef",sort:"name"},{name:"VolumeSnapshotCounts",labelKey:"harvester.tableHeaders.volumeSnapshotCounts",value:"relatedVolumeSnapshotCounts",formatter:"RelatedVolumeSnapshotCounts",sort:"name",align:"center"},{...u.c4,name:"phase",labelKey:"tableHeaders.phase",formatterOpts:{arbitrary:!0},value:"phaseState"},u.K]}},methods:{goTo(e){return e?.attachVM?.detailLocation},getVMName(e){return e.attachVM?.metadata?.name||""}},typeDisplay(){return this.$store.getters["type-map/labelFor"](v,99)}},k=(r(72236),r(47433));const y=(0,k.A)(f,[["render",i],["__scopeId","data-v-121473ec"]]);var b=y},32776:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return m}});var a=r(9274);function s(e,t,r,s,o,n){const i=(0,a.resolveComponent)("Loading"),l=(0,a.resolveComponent)("ResourceTable");return e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(i,{key:0})):((0,a.openBlock)(),(0,a.createBlock)(l,(0,a.mergeProps)({key:1},e.$attrs,{groupable:!0,schema:n.schema,rows:n.filteredRows,"key-field":"_key"}),null,16,["schema","rows"]))}var o=r(53500),n=r(84409),i=r(35664),l=r(88339),c=r(32766);const d={id:c.rk.SNAPSHOT,type:i.yx,attributes:{kind:c.rk.SNAPSHOT,namespaced:!0},metadata:{name:c.rk.SNAPSHOT}};var u={name:"HarvesterListSnapshot",components:{ResourceTable:o.A,Loading:n.A},inheritAttrs:!1,async fetch(){const e=this.$store.getters["currentProduct"].inStore,t={volumes:this.$store.dispatch(`${e}/findAll`,{type:i.YH}),snapshots:this.$store.dispatch(`${e}/findAll`,{type:c.qY})},r=await(0,l.kR)(t);this.rows=r.snapshots;const a=this.$store.getters[`${e}/schemaFor`](c.qY);a?.collectionMethods.find((e=>"post"===e.toLowerCase()))||this.$store.dispatch("type-map/configureType",{match:c.rk.SNAPSHOT,isCreatable:!1})},data(){return{rows:[]}},computed:{filteredRows(){return this.rows.filter((e=>"PersistentVolumeClaim"===e.metadata?.ownerReferences?.[0]?.kind))},schema(){return d}},typeDisplay(){return this.$store.getters["type-map/labelFor"](d,99)}},p=r(47433);const h=(0,p.A)(u,[["render",s]]);var m=h},18144:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return N}});var a=r(9274);const s={key:1},o={class:"group-bar"},n={class:"group-tab"},i={class:"right"},l=["onClick"],c={class:"empty text-center",colspan:"12"};function d(e,t,r,d,u,p){const h=(0,a.resolveComponent)("Loading"),m=(0,a.resolveComponent)("Masthead"),g=(0,a.resolveComponent)("router-link"),v=(0,a.resolveComponent)("ResourceTable");return(0,a.openBlock)(),(0,a.createElementBlock)("div",null,[e.$fetchState.pending?((0,a.openBlock)(),(0,a.createBlock)(h,{key:0})):((0,a.openBlock)(),(0,a.createElementBlock)("div",s,[(0,a.createVNode)(m,{schema:p.clusterNetworkSchema,"type-display":e.t("harvester.clusterNetwork.title"),resource:u.HCI.CLUSTER_NETWORK,"create-location":p.createClusterNetworkLocation,"create-button-label":e.t("harvester.clusterNetwork.create.button.label")},null,8,["schema","type-display","resource","create-location","create-button-label"]),(0,a.createVNode)(v,{rows:p.rowsWithFakeClusterNetworks,headers:p.headers,groupable:!0,schema:p.vlanConfigSchema,"group-by":"groupByClusterNetwork"},(0,a.createSlots)({"header-middle":(0,a.withCtx)((()=>[t[0]||(t[0]=(0,a.createElementVNode)("div",null,null,-1))])),"group-by":(0,a.withCtx)((({group:r})=>[(0,a.createElementVNode)("div",o,[(0,a.createElementVNode)("div",n,[(0,a.createElementVNode)("span",null,(0,a.toDisplayString)(p.groupLabel(r)),1)]),(0,a.createElementVNode)("div",i,[p.isClusterNetworkCreatable&&"mgmt"!==r.key?((0,a.openBlock)(),(0,a.createBlock)(g,{key:0,class:"btn btn-sm role-secondary mr-5",to:p.createVlanConfigLocation(r)},{default:(0,a.withCtx)((()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.t("harvester.vlanConfig.createNetworkConfig")),1)])),_:2},1032,["to"])):(0,a.createCommentVNode)("",!0),(0,a.createElementVNode)("button",{type:"button",class:(0,a.normalizeClass)(["btn btn-sm role-multi-action actions mr-10",{invisible:!p.showClusterNetworkActionButton(r)}]),onClick:e=>p.showClusterNetworkAction(e,r)},t[1]||(t[1]=[(0,a.createElementVNode)("i",{class:"icon icon-actions"},null,-1)]),10,l)])])])),_:2},[(0,a.renderList)(p.clusterNetworkWithoutConfigs,((t,r)=>({name:p.slotName(t.id),fn:(0,a.withCtx)((()=>[(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)("tr",{key:t.id,class:"main-row"},[(0,a.createElementVNode)("td",c,(0,a.toDisplayString)("mgmt"===t.id?e.t("harvester.clusterNetwork.mgmt"):e.t("harvester.clusterNetwork.clusterNetwork")),1)])),[[a.vShow,!t.hasChild]])]))})))]),1032,["rows","headers","schema"])]))])}var u=r(84409),p=r(53500),h=r(66656),m=r(88339),g=r(68774),v=r(91462),f=r(35664),k=r(20652);const y="clusterNetwork";var b=r(32766),C={name:"ListHarvesterVLANConfigs",components:{ResourceTable:p.A,Loading:u.A,Masthead:h.A},async fetch(){const e=this.$store.getters["currentProduct"].inStore;await(0,m.kR)({configs:this.$store.dispatch(`${e}/findAll`,{type:b.rk.VLAN_CONFIG}),clusterNetworks:this.$store.dispatch(`${e}/findAll`,{type:b.rk.CLUSTER_NETWORK}),vlanStatuses:this.$store.dispatch(`${e}/findAll`,{type:b.rk.VLAN_STATUS}),nodes:this.$store.dispatch(`${e}/findAll`,{type:f.NW})})},data(){return{HCI:b.rk}},computed:{groupPreference:(0,v.AN)(v.EI),headers(){return[g.c4,{...g.o_,width:300},{name:"type",labelKey:"tableHeaders.type",value:"typeDisplay",getValue:e=>e.typeDisplay,sort:["typeDisplay"]},g.K]},rows(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](b.rk.VLAN_CONFIG);return t},vlanConfigSchema(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/schemaFor`](b.rk.VLAN_CONFIG)},clusterNetworkSchema(){const e=this.$store.getters["currentProduct"].inStore;return this.$store.getters[`${e}/schemaFor`](b.rk.CLUSTER_NETWORK)},isClusterNetworkCreatable(){return(this.clusterNetworkSchema?.collectionMethods||[]).includes("POST")},createClusterNetworkLocation(){const e={name:`${k.KR}-c-cluster-resource-create`,params:{product:k.KR,resource:b.rk.CLUSTER_NETWORK}};return e},clusterNetworkWithoutConfigs(){const e=this.$store.getters["currentProduct"].inStore,t=this.$store.getters[`${e}/all`](b.rk.CLUSTER_NETWORK),r=t.map((e=>{const t=!!this.rows.find((t=>t?.spec?.clusterNetwork===e.id));return{...e,hasChild:t}}));return r},rowsWithFakeClusterNetworks(){const e=this.clusterNetworkWithoutConfigs.map((e=>({groupByLabel:e.id,isFake:!0,mainRowKey:e.id,nameDisplay:e.id,groupByClusterNetwork:e.id,availableActions:[]})));return[...this.rows,...e]}},methods:{showClusterNetworkActionButton(e){const t=this.$store.getters["currentProduct"].inStore,r=e.key,a=this.$store.getters[`${t}/byId`](b.rk.CLUSTER_NETWORK,r);return!!a},showClusterNetworkAction(e,t){const r=this.$store.getters["currentProduct"].inStore,a=t.key,s=this.$store.getters[`${r}/byId`](b.rk.CLUSTER_NETWORK,a);this.$store.commit("action-menu/show",{resources:[s],elem:e.target})},createVlanConfigLocation(e){const t=e.key,r={name:`${k.KR}-c-cluster-resource-create`,params:{product:k.KR,resource:b.rk.VLAN_CONFIG}};return r.query={[y]:t},r},slotName(e){return`main-row:${e}`},groupLabel(e){const t=e.rows[0];return t.isFake?`${this.t("harvester.network.clusterNetwork.label")}: ${t.nameDisplay}`:`${this.t("harvester.network.clusterNetwork.label")}: ${e.key}`}}},w=(r(585),r(89247),r(47433));const S=(0,w.A)(C,[["render",d],["__scopeId","data-v-651d7143"]]);var N=S},76868:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".filter[data-v-99256476]{display:inline-block}.filter .banner-item[data-v-99256476]{display:inline-block;font-size:16px;margin-right:10px;padding:6px;border-radius:2px}.filter .banner-item i[data-v-99256476]{cursor:pointer;vertical-align:middle}.filter-popup[data-v-99256476]{width:600px}[data-v-99256476] .box{display:grid;grid-template-columns:40% 40% 10%;-moz-column-gap:1.75%;column-gap:1.75%;margin-bottom:10px}.required[data-v-99256476]{color:var(--error)}",""]),t["default"]=i},95574:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".filter-label .v-popper__arrow-container{display:none}",""]),t["default"]=i},72834:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".header[data-v-0254dd74]{display:flex;justify-content:space-between;align-items:center}.footer[data-v-0254dd74]{width:100%;display:flex;justify-content:flex-end}.banner-icon[data-v-0254dd74]{display:flex;align-items:center}.banner-content[data-v-0254dd74]{display:flex}.banner-message[data-v-0254dd74]{display:flex;flex-direction:column;justify-content:center;padding:0 15px}.icon[data-v-0254dd74]{font-size:20px;width:20px;line-height:23px}.currentVersion[data-v-0254dd74]{margin-top:10px;display:flex;justify-content:space-between}.currentVersion .version[data-v-0254dd74]{font-size:16px;font-weight:700}",""]),t["default"]=i},83853:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".settings-banner[data-v-5b7931f6]{margin-top:0}.advanced-setting[data-v-5b7931f6]{border:1px solid var(--border);padding:20px;border-radius:var(--border-radius)}.advanced-setting h1[data-v-5b7931f6]{font-size:14px}.advanced-setting h2[data-v-5b7931f6]{font-size:12px;margin-bottom:0;opacity:.8}.settings-value pre[data-v-5b7931f6]{margin:0}.header[data-v-5b7931f6]{display:flex;margin-bottom:20px}.title[data-v-5b7931f6]{flex:1}.modified[data-v-5b7931f6]{border:1px solid var(--primary);border-radius:5px}.experimental[data-v-5b7931f6],.modified[data-v-5b7931f6]{margin-left:10px;padding:2px 10px;font-size:12px}.experimental[data-v-5b7931f6]{border:1px solid var(--error);border-radius:5px}",""]),t["default"]=i},11966:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".state[data-v-e0f7fbca]{display:flex}.state .icon-warning[data-v-e0f7fbca]{margin-top:2px}.warning-message[data-v-e0f7fbca]:first-letter{text-transform:uppercase}",""]),t["default"]=i},28954:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,"[data-v-32e4b7cb] .sortable-table TD .badge-state{max-width:250px;text-overflow:clip}[data-v-32e4b7cb] .cell-name{white-space:nowrap}",""]),t["default"]=i},16956:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".cluster-dashboard-glance[data-v-69bd7a3f]{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0;display:flex}.cluster-dashboard-glance[data-v-69bd7a3f]>*{margin-right:40px}.cluster-dashboard-glance>* SPAN[data-v-69bd7a3f]{font-weight:700}.events[data-v-69bd7a3f]{margin-top:30px}",""]),t["default"]=i},16587:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".console-button[data-v-748b0729]{display:flex}",""]),t["default"]=i},98198:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".empty[data-v-a0eea6e4]{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-top:6em;min-height:100%}i[data-v-a0eea6e4]{font-size:10em;opacity:50%}h2[data-v-a0eea6e4],i[data-v-a0eea6e4]{margin:0}h3[data-v-a0eea6e4]{margin-top:2em}",""]),t["default"]=i},93408:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".settings-banner[data-v-3fea1646]{margin-top:0}",""]),t["default"]=i},43517:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,"[data-v-a26b23da] .group-name{line-height:30px}[data-v-a26b23da] .group-bar{display:flex;flex-direction:row;justify-content:space-between}[data-v-a26b23da] .group-bar .right{display:flex;align-items:center}[data-v-a26b23da] .group-bar .right .age{width:100px}[data-v-a26b23da] .group-bar .right .actions{padding-right:7px}[data-v-a26b23da] .group-bar.has-description .right{margin-top:5px}[data-v-a26b23da] .group-bar.has-description .group-tab,[data-v-a26b23da] .group-bar.has-description .group-tab:after{height:50px}[data-v-a26b23da] .group-bar.has-description .group-tab:after{right:-20px}[data-v-a26b23da] .group-bar.has-description .group-tab .description{margin-top:-20px}",""]),t["default"]=i},33388:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".state[data-v-121473ec]{display:flex}.state .vmstate[data-v-121473ec]{margin-right:6px}",""]),t["default"]=i},83497:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".group-bar[data-v-651d7143]{display:flex;flex-direction:row;justify-content:space-between}.group-bar .right[data-v-651d7143]{margin-top:5px;margin-bottom:3px}.group-bar .group-tab[data-v-651d7143],.group-bar .group-tab[data-v-651d7143]:after{height:50px}.group-bar .group-tab[data-v-651d7143]:after{right:-20px}.group-bar .group-tab SPAN[data-v-651d7143]{color:var(--body-text)!important}",""]),t["default"]=i},64351:function(e,t,r){"use strict";r.r(t);var a=r(36758),s=r.n(a),o=r(40935),n=r.n(o),i=n()(s());i.push([e.id,".col-link-detail{min-width:200px}.group-bar .right{display:flex;margin-left:50px}.group-bar .right a{height:30px}",""]),t["default"]=i},15716:function(e,t,r){var a=r(76868);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("4cc1b774",a,!0,{sourceMap:!1,shadowMode:!1})},3286:function(e,t,r){var a=r(95574);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("5a29acf0",a,!0,{sourceMap:!1,shadowMode:!1})},54434:function(e,t,r){var a=r(72834);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("02588a8c",a,!0,{sourceMap:!1,shadowMode:!1})},88493:function(e,t,r){var a=r(83853);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("11d68e9b",a,!0,{sourceMap:!1,shadowMode:!1})},77726:function(e,t,r){var a=r(11966);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("1c23f151",a,!0,{sourceMap:!1,shadowMode:!1})},12122:function(e,t,r){var a=r(28954);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("667b73de",a,!0,{sourceMap:!1,shadowMode:!1})},57756:function(e,t,r){var a=r(16956);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("7cbf0c66",a,!0,{sourceMap:!1,shadowMode:!1})},59211:function(e,t,r){var a=r(16587);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("532f48ca",a,!0,{sourceMap:!1,shadowMode:!1})},14614:function(e,t,r){var a=r(98198);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("43e0813f",a,!0,{sourceMap:!1,shadowMode:!1})},88288:function(e,t,r){var a=r(93408);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("dd1aafac",a,!0,{sourceMap:!1,shadowMode:!1})},68125:function(e,t,r){var a=r(43517);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("828f32ae",a,!0,{sourceMap:!1,shadowMode:!1})},72236:function(e,t,r){var a=r(33388);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("92730e78",a,!0,{sourceMap:!1,shadowMode:!1})},585:function(e,t,r){var a=r(83497);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("39e02b71",a,!0,{sourceMap:!1,shadowMode:!1})},89247:function(e,t,r){var a=r(64351);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=r(74825).A;s("231d2e5d",a,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.list.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.list.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.list.js.map new file mode 100644 index 00000000..71ce45c3 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.list.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.list.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./formatters/HarvesterVolumeState.vue","webpack://harvester-1.5.0-dev/./formatters/HarvesterVolumeState.vue?625a","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.pcidevice.vue","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.pcidevice.vue?d93f","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.sriovgpudevice.vue","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.sriovgpudevice.vue?a3d6","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.sriovnetworkdevice.vue","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.sriovnetworkdevice.vue?8ba8","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.usbdevice.vue","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.usbdevice.vue?cce1","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.vgpudevice.vue","webpack://harvester-1.5.0-dev/./list/devices.harvesterhci.io.vgpudevice.vue?82f9","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.addon.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.addon.vue?f446","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.cloudtemplate.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.cloudtemplate.vue?da5e","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.dashboard.vue","webpack://harvester-1.5.0-dev/./components/HarvesterUpgrade.vue","webpack://harvester-1.5.0-dev/./components/HarvesterUpgrade.vue?377e","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.dashboard.vue?1744","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.host.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.host.vue?7f16","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.logging.clusterflow.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.logging.clusterflow.vue?8d4c","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.logging.clusteroutput.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.logging.clusteroutput.vue?a1e5","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.logging.flow.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.logging.flow.vue?39e1","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.logging.output.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.logging.output.vue?a3f9","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.monitoring.alertmanagerconfig.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.monitoring.alertmanagerconfig.vue?c6c9","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.schedulevmbackup.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.schedulevmbackup.vue?16d9","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.secret.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.secret.vue?52bf","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.setting.vue","webpack://harvester-1.5.0-dev/./components/SettingList.vue","webpack://harvester-1.5.0-dev/./components/SettingList.vue?1816","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.setting.vue?d9ad","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.storage.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.storage.vue?a1aa","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.virtualmachinebackup.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.virtualmachinebackup.vue?e241","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.virtualmachineimage.vue","webpack://harvester-1.5.0-dev/./components/FilterLabel.vue","webpack://harvester-1.5.0-dev/./components/FilterLabel.vue?df51","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.virtualmachineimage.vue?d34c","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.virtualmachinetemplateversion.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.virtualmachinetemplateversion.vue?de3a","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.volume.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.volume.vue?f49c","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.volumesnapshot.vue","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.volumesnapshot.vue?4d3c","webpack://harvester-1.5.0-dev/./list/network.harvesterhci.io.clusternetwork.vue","webpack://harvester-1.5.0-dev/./config/query-params.js","webpack://harvester-1.5.0-dev/./list/network.harvesterhci.io.clusternetwork.vue?bbb7","webpack://harvester-1.5.0-dev/./components/FilterLabel.vue?00a3","webpack://harvester-1.5.0-dev/./components/FilterLabel.vue?2044","webpack://harvester-1.5.0-dev/./components/HarvesterUpgrade.vue?f7aa","webpack://harvester-1.5.0-dev/./components/SettingList.vue?af23","webpack://harvester-1.5.0-dev/./formatters/HarvesterVolumeState.vue?e18b","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.addon.vue?3040","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.dashboard.vue?617a","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.host.vue?2ef2","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.monitoring.alertmanagerconfig.vue?c2da","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.setting.vue?f6a9","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.virtualmachinetemplateversion.vue?26bb","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.volume.vue?07c7","webpack://harvester-1.5.0-dev/./list/network.harvesterhci.io.clusternetwork.vue?355b","webpack://harvester-1.5.0-dev/./list/network.harvesterhci.io.clusternetwork.vue?29e6","webpack://harvester-1.5.0-dev/./components/FilterLabel.vue?cb2d","webpack://harvester-1.5.0-dev/./components/FilterLabel.vue?72e5","webpack://harvester-1.5.0-dev/./components/HarvesterUpgrade.vue?83d8","webpack://harvester-1.5.0-dev/./components/SettingList.vue?17ad","webpack://harvester-1.5.0-dev/./formatters/HarvesterVolumeState.vue?b9f3","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.addon.vue?c408","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.dashboard.vue?50e7","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.host.vue?0d0f","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.monitoring.alertmanagerconfig.vue?4da2","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.setting.vue?b3b6","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.virtualmachinetemplateversion.vue?b62c","webpack://harvester-1.5.0-dev/./list/harvesterhci.io.volume.vue?0f95","webpack://harvester-1.5.0-dev/./list/network.harvesterhci.io.clusternetwork.vue?b767","webpack://harvester-1.5.0-dev/./list/network.harvesterhci.io.clusternetwork.vue?5d77"],"sourcesContent":["<script>\nimport ProgressBarMulti from '@shell/components/ProgressBarMulti';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport VolumeState from '@shell/components/formatter/BadgeStateFormatter';\n\nexport default {\n components: { VolumeState, ProgressBarMulti },\n props: {\n row: {\n type: Object,\n required: true\n },\n },\n\n computed: {\n warningMessage() {\n return this.row.relatedPV?.metadata?.annotations?.[HCI_ANNOTATIONS.VOLUME_ERROR];\n },\n\n rebuildStatus() {\n return this.row.longhornEngine?.status?.rebuildStatus;\n },\n\n isRebuilding() {\n return this.rebuildStatus && Object.keys(this.rebuildStatus).length > 0;\n },\n\n percentage() {\n if (!this.isRebuilding) {\n return;\n }\n\n const rebuildStatus = Object.values(this.rebuildStatus)?.[0];\n const value = rebuildStatus?.progress;\n\n return [{\n value,\n color: 'bg-warning'\n }];\n },\n\n rebuildingMessage() {\n return this.$store.getters['i18n/t']('harvester.volume.rebuildingMessage', { percentage: this.percentage[0].value });\n }\n },\n};\n</script>\n\n<template>\n <span>\n <div>\n <ProgressBarMulti\n v-if=\"isRebuilding\"\n v-clean-tooltip=\"rebuildingMessage\"\n :values=\"percentage\"\n :min=\"0\"\n :max=\"100\"\n class=\"mb-10\"\n />\n </div>\n <div class=\"state\">\n <VolumeState :row=\"row\" />\n <v-dropdown\n v-if=\"!!warningMessage\"\n trigger=\"hover\"\n offset=\"16\"\n >\n <span class=\"tooltip-target\">\n <i class=\"icon icon-warning icon-lg text-warning\" />\n </span>\n\n <template #popper>\n <p class=\"warning-message\">\n {{ warningMessage }}\n </p>\n </template>\n </v-dropdown>\n </div>\n </span>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n\n .icon-warning {\n margin-top: 2px;\n }\n}\n.warning-message:first-letter {\n text-transform: uppercase;\n}\n\n</style>\n","import { render } from \"./HarvesterVolumeState.vue?vue&type=template&id=e0f7fbca&scoped=true\"\nimport script from \"./HarvesterVolumeState.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterVolumeState.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterVolumeState.vue?vue&type=style&index=0&id=e0f7fbca&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e0f7fbca\"]])\n\nexport default __exports__","<script>\nimport { SCHEMA } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport Banner from '@components/Banner/Banner.vue';\nimport Loading from '@shell/components/Loading';\nimport MessageLink from '@shell/components/MessageLink';\nimport { HCI } from '../types';\nimport DeviceList from '../edit/kubevirt.io.virtualmachine/VirtualMachinePciDevices/DeviceList';\nimport { ADD_ONS } from '../config/harvester-map';\n\nconst schema = {\n id: HCI.PCI_DEVICE,\n type: SCHEMA,\n attributes: {\n kind: HCI.PCI_DEVICE,\n namespaced: false\n },\n metadata: { name: HCI.PCI_DEVICE },\n};\n\nexport default {\n name: 'ListPciDevicePage',\n\n components: {\n Banner, DeviceList, Loading, MessageLink\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.hasSchema = this.$store.getters[`${ inStore }/schemaFor`](HCI.PCI_DEVICE);\n this.hasAddonSchema = this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS);\n\n if (this.hasSchema) {\n try {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = await allHash({\n pcidevice: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.PCI_DEVICE }),\n addons: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS }),\n });\n\n this.enabledPCI = hash.addons.find((addon) => addon.name === ADD_ONS.PCI_DEVICE_CONTROLLER)?.spec?.enabled === true;\n\n this.$store.dispatch('type-map/configureType', { match: HCI.PCI_DEVICE, isCreatable: this.enabledPCI });\n } catch (e) {}\n }\n },\n\n data() {\n return {\n enabledPCI: false,\n hasSchema: false,\n to: `${ HCI.ADD_ONS }/harvester-system/${ ADD_ONS.PCI_DEVICE_CONTROLLER }?mode=edit`\n };\n },\n\n computed: {\n schema() {\n return schema;\n },\n\n rows() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const rows = this.$store.getters[`${ inStore }/all`](HCI.PCI_DEVICE);\n\n return rows;\n }\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else-if=\"!hasAddonSchema\">\n <Banner color=\"warning\">\n {{ t('harvester.pci.noPCIPermission') }}\n </Banner>\n </div>\n <DeviceList\n v-else-if=\"hasSchema && enabledPCI\"\n :devices=\"rows\"\n :schema=\"schema\"\n />\n <div v-else>\n <Banner color=\"warning\">\n <MessageLink\n :to=\"to\"\n prefix-label=\"harvester.pci.goSetting.prefix\"\n middle-label=\"harvester.pci.goSetting.middle\"\n suffix-label=\"harvester.pci.goSetting.suffix\"\n />\n </Banner>\n </div>\n</template>\n","import { render } from \"./devices.harvesterhci.io.pcidevice.vue?vue&type=template&id=55c59536\"\nimport script from \"./devices.harvesterhci.io.pcidevice.vue?vue&type=script&lang=js\"\nexport * from \"./devices.harvesterhci.io.pcidevice.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { NODE } from '@shell/config/types';\nimport { STATE, AGE, SIMPLE_NAME } from '@shell/config/table-headers';\nimport { allHash } from '@shell/utils/promise';\nimport Banner from '@components/Banner/Banner.vue';\nimport Loading from '@shell/components/Loading';\nimport MessageLink from '@shell/components/MessageLink';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { ADD_ONS } from '../config/harvester-map';\nimport { HCI } from '../types';\n\nexport default {\n name: 'ListSriovGpuDevices',\n\n inheritAttrs: false,\n\n components: {\n Banner,\n Loading,\n MessageLink,\n ResourceTable,\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.schema = this.$store.getters[`${ inStore }/schemaFor`](HCI.SR_IOVGPU_DEVICE);\n this.hasAddonSchema = this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS);\n\n if (this.hasSchema) {\n try {\n const hash = await allHash({\n sriovgpus: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SR_IOVGPU_DEVICE }),\n vGpuDevices: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VGPU_DEVICE }),\n addons: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS }),\n });\n\n this.hasPCIAddon = hash.addons.find((addon) => addon.name === ADD_ONS.PCI_DEVICE_CONTROLLER)?.spec?.enabled === true;\n this.hasSriovgpuAddon = hash.addons.find((addon) => addon.name === ADD_ONS.NVIDIA_DRIVER_TOOLKIT_CONTROLLER)?.spec?.enabled === true;\n } catch (e) {}\n }\n },\n\n data() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return {\n hasAddonSchema: false,\n hasPCIAddon: false,\n hasSriovgpuAddon: false,\n schema: null,\n hasNode: this.$store.getters[`${ inStore }/schemaFor`](NODE),\n toVGpuAddon: `${ HCI.ADD_ONS }/harvester-system/${ ADD_ONS.NVIDIA_DRIVER_TOOLKIT_CONTROLLER }?mode=edit`,\n toPciAddon: `${ HCI.ADD_ONS }/harvester-system/${ ADD_ONS.PCI_DEVICE_CONTROLLER }?mode=edit`\n };\n },\n\n computed: {\n hasSchema() {\n return !!this.schema;\n },\n\n rows() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const rows = this.$store.getters[`${ inStore }/all`](HCI.SR_IOVGPU_DEVICE);\n\n return rows;\n },\n\n headers() {\n const nodeCol = {\n name: 'node',\n label: 'Node',\n value: 'realNodeName',\n sort: ['realNodeName'],\n formatter: 'CopyToClipboard',\n labelKey: 'tableHeaders.node'\n };\n\n const cols = [\n STATE,\n SIMPLE_NAME,\n {\n name: 'address',\n label: 'Address',\n value: 'spec.address',\n sort: ['spec.address']\n },\n {\n name: 'vfAddresses',\n label: 'VF Addresses',\n labelKey: 'harvester.sriovgpu.vfAddresses',\n sort: ['status.vfAddresses'],\n value: 'status.vfAddresses',\n formatter: 'HarvesterVFAddress',\n align: 'center',\n dashIfEmpty: true,\n },\n {\n name: 'vGpuDevices',\n label: 'vGPU Devices',\n labelKey: 'harvester.sriovgpu.vGpuDevices',\n sort: ['status.vGPUDevices'],\n value: 'status.vGPUDevices',\n formatter: 'HarvesterVGpuDevices',\n align: 'center',\n dashIfEmpty: true,\n },\n {\n ...AGE,\n sort: 'metadata.creationTimestamp:desc',\n }\n ];\n\n if (this.hasNode) {\n cols.splice(-1, 0, nodeCol);\n }\n\n return cols;\n },\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else-if=\"!hasAddonSchema\">\n <Banner color=\"warning\">\n {{ t('harvester.sriovgpu.noPermission') }}\n </Banner>\n </div>\n <div v-else-if=\"!hasSriovgpuAddon || !hasPCIAddon\">\n <Banner\n v-if=\"!hasSriovgpuAddon\"\n color=\"warning\"\n >\n <MessageLink\n :to=\"toVGpuAddon\"\n prefix-label=\"harvester.sriovgpu.goSetting.prefix\"\n middle-label=\"harvester.sriovgpu.goSetting.middle\"\n suffix-label=\"harvester.sriovgpu.goSetting.suffix\"\n />\n </Banner>\n <Banner\n v-if=\"!hasPCIAddon\"\n color=\"warning\"\n >\n <MessageLink\n :to=\"toPciAddon\"\n prefix-label=\"harvester.pci.goSetting.prefix\"\n middle-label=\"harvester.pci.goSetting.middle\"\n suffix-label=\"harvester.pci.goSetting.suffix\"\n />\n </Banner>\n </div>\n <ResourceTable\n v-else-if=\"hasSchema\"\n v-bind=\"$attrs\"\n :groupable=\"false\"\n :namespaced=\"false\"\n :headers=\"headers\"\n :schema=\"schema\"\n :rows=\"rows\"\n key-field=\"_key\"\n />\n</template>\n","import { render } from \"./devices.harvesterhci.io.sriovgpudevice.vue?vue&type=template&id=0ad80430\"\nimport script from \"./devices.harvesterhci.io.sriovgpudevice.vue?vue&type=script&lang=js\"\nexport * from \"./devices.harvesterhci.io.sriovgpudevice.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { STATE, AGE, SIMPLE_NAME } from '@shell/config/table-headers';\nimport { NODE } from '@shell/config/types';\nimport ResourceTable from '@shell/components/ResourceTable';\n\nexport default {\n name: 'ListHarvesterSRIOV',\n\n components: { ResourceTable },\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n rows: {\n type: Array,\n required: true,\n },\n },\n\n data() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return { hasNode: this.$store.getters[`${ inStore }/schemaFor`](NODE) };\n },\n\n computed: {\n headers() {\n const nodeCol = {\n name: 'node',\n label: 'Node',\n value: 'realNodeName',\n sort: ['realNodeName'],\n formatter: 'CopyToClipboard',\n labelKey: 'tableHeaders.node'\n };\n\n const cols = [\n STATE,\n SIMPLE_NAME,\n {\n name: 'numVFs',\n label: 'Num VFs',\n sort: ['numVFs'],\n value: 'numVFs',\n formatter: 'HarvesterVFsNum',\n align: 'center',\n labelKey: 'harvester.sriov.numVFs',\n dashIfEmpty: true,\n },\n {\n name: 'vfAddresses',\n label: 'VF Addresses',\n labelKey: 'harvester.sriov.vfAddresses',\n sort: ['status.vfAddresses'],\n value: 'status.vfAddresses',\n formatter: 'HarvesterVFAddress',\n align: 'center',\n dashIfEmpty: true,\n },\n {\n ...AGE,\n sort: 'metadata.creationTimestamp:desc',\n }\n ];\n\n if (this.hasNode) {\n cols.splice(-1, 0, nodeCol);\n }\n\n return cols;\n },\n }\n};\n</script>\n\n<template>\n <ResourceTable\n v-bind=\"$attrs\"\n :groupable=\"false\"\n :namespaced=\"false\"\n :headers=\"headers\"\n :schema=\"schema\"\n :rows=\"rows\"\n key-field=\"_key\"\n />\n</template>\n","import { render } from \"./devices.harvesterhci.io.sriovnetworkdevice.vue?vue&type=template&id=6e0b78c8\"\nimport script from \"./devices.harvesterhci.io.sriovnetworkdevice.vue?vue&type=script&lang=js\"\nexport * from \"./devices.harvesterhci.io.sriovnetworkdevice.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { HCI } from '../types';\nimport { allHash } from '@shell/utils/promise';\nimport Banner from '@components/Banner/Banner.vue';\nimport Loading from '@shell/components/Loading';\nimport MessageLink from '@shell/components/MessageLink';\nimport { ADD_ONS } from '../config/harvester-map';\nimport DeviceList from '../edit/kubevirt.io.virtualmachine/VirtualMachineUSBDevices/DeviceList';\n\nexport default {\n name: 'ListUsbDevicePage',\n\n inheritAttrs: false,\n\n components: {\n Banner,\n DeviceList,\n Loading,\n MessageLink,\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.schema = this.$store.getters[`${ inStore }/schemaFor`](HCI.USB_DEVICE);\n this.hasAddonSchema = this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS);\n\n if (this.hasSchema) {\n try {\n const hash = await allHash({\n usbDevices: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.USB_DEVICE }),\n addons: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS }),\n });\n\n this.hasPCIAddon = hash.addons.find((addon) => addon.name === ADD_ONS.PCI_DEVICE_CONTROLLER)?.spec?.enabled === true;\n } catch (e) {}\n }\n },\n\n data() {\n return {\n hasAddonSchema: false,\n hasPCIAddon: false,\n schema: null,\n toPciAddon: `${ HCI.ADD_ONS }/harvester-system/${ ADD_ONS.PCI_DEVICE_CONTROLLER }?mode=edit`,\n };\n },\n\n computed: {\n hasSchema() {\n return !!this.schema;\n },\n\n devices() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/all`](HCI.USB_DEVICE) || [];\n }\n },\n\n typeDisplay() {\n return this.t('harvester.usb.label');\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else-if=\"!hasAddonSchema\">\n <Banner color=\"warning\">\n {{ t('harvester.usb.noPermission') }}\n </Banner>\n </div>\n <div v-else-if=\"!hasPCIAddon\">\n <Banner color=\"warning\">\n <MessageLink\n :to=\"toPciAddon\"\n prefix-label=\"harvester.usb.goSetting.prefix\"\n middle-label=\"harvester.usb.goSetting.middle\"\n suffix-label=\"harvester.usb.goSetting.suffix\"\n />\n </Banner>\n </div>\n <DeviceList\n v-else-if=\"hasSchema\"\n :devices=\"devices\"\n :schema=\"schema\"\n />\n</template>\n","import { render } from \"./devices.harvesterhci.io.usbdevice.vue?vue&type=template&id=eb2ad0bc\"\nimport script from \"./devices.harvesterhci.io.usbdevice.vue?vue&type=script&lang=js\"\nexport * from \"./devices.harvesterhci.io.usbdevice.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { allHash } from '@shell/utils/promise';\nimport Banner from '@components/Banner/Banner.vue';\nimport Loading from '@shell/components/Loading';\nimport MessageLink from '@shell/components/MessageLink';\nimport { HCI } from '../types';\nimport VGpuDeviceList from '../edit/kubevirt.io.virtualmachine/VirtualMachineVGpuDevices/VGpuDeviceList';\nimport { ADD_ONS } from '../config/harvester-map';\n\nexport default {\n name: 'ListVGpuDevices',\n\n inheritAttrs: false,\n\n components: {\n Banner,\n Loading,\n MessageLink,\n VGpuDeviceList\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.schema = this.$store.getters[`${ inStore }/schemaFor`](HCI.VGPU_DEVICE);\n this.hasAddonSchema = this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS);\n\n if (this.hasSchema) {\n try {\n const hash = await allHash({\n vGpuDevices: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VGPU_DEVICE }),\n addons: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS }),\n });\n\n this.hasPCIAddon = hash.addons.find((addon) => addon.name === ADD_ONS.PCI_DEVICE_CONTROLLER)?.spec?.enabled === true;\n this.hasSriovgpuAddon = hash.addons.find((addon) => addon.name === ADD_ONS.NVIDIA_DRIVER_TOOLKIT_CONTROLLER)?.spec?.enabled === true;\n\n this.hasSRIOVGPUSchema = !!this.$store.getters[`${ inStore }/schemaFor`](HCI.SR_IOVGPU_DEVICE);\n if (this.hasSRIOVGPUSchema) {\n await this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SR_IOVGPU_DEVICE });\n }\n } catch (e) {}\n }\n },\n\n data() {\n return {\n hasAddonSchema: false,\n hasPCIAddon: false,\n hasSriovgpuAddon: false,\n hasSRIOVGPUSchema: false,\n schema: null,\n toVGpuAddon: `${ HCI.ADD_ONS }/harvester-system/${ ADD_ONS.NVIDIA_DRIVER_TOOLKIT_CONTROLLER }?mode=edit`,\n toPciAddon: `${ HCI.ADD_ONS }/harvester-system/${ ADD_ONS.PCI_DEVICE_CONTROLLER }?mode=edit`\n };\n },\n\n computed: {\n hasSchema() {\n return !!this.schema;\n },\n\n rows() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const vGpuDevices = this.$store.getters[`${ inStore }/all`](HCI.VGPU_DEVICE) || [];\n const srioVGpuDevices = this.$store.getters[`${ inStore }/all`](HCI.SR_IOVGPU_DEVICE) || [];\n\n if (this.hasSRIOVGPUSchema) {\n return vGpuDevices.filter((device) => !!srioVGpuDevices.find((s) => s.isEnabled && s.spec?.nodeName === device.spec?.nodeName));\n }\n\n return vGpuDevices;\n }\n },\n\n typeDisplay() {\n return this.t('harvester.vgpu.label');\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else-if=\"!hasAddonSchema\">\n <Banner color=\"warning\">\n {{ t('harvester.vgpu.noPermission') }}\n </Banner>\n </div>\n <div v-else-if=\"!hasSriovgpuAddon || !hasPCIAddon\">\n <Banner\n v-if=\"!hasSriovgpuAddon\"\n color=\"warning\"\n >\n <MessageLink\n :to=\"toVGpuAddon\"\n prefix-label=\"harvester.vgpu.goSetting.prefix\"\n middle-label=\"harvester.vgpu.goSetting.middle\"\n suffix-label=\"harvester.vgpu.goSetting.suffix\"\n />\n </Banner>\n <Banner\n v-if=\"!hasPCIAddon\"\n color=\"warning\"\n >\n <MessageLink\n :to=\"toPciAddon\"\n prefix-label=\"harvester.pci.goSetting.prefix\"\n middle-label=\"harvester.pci.goSetting.middle\"\n suffix-label=\"harvester.pci.goSetting.suffix\"\n />\n </Banner>\n </div>\n <VGpuDeviceList\n v-else-if=\"hasSchema\"\n :devices=\"rows\"\n :schema=\"schema\"\n />\n</template>\n","import { render } from \"./devices.harvesterhci.io.vgpudevice.vue?vue&type=template&id=6f33fc35\"\nimport script from \"./devices.harvesterhci.io.vgpudevice.vue?vue&type=script&lang=js\"\nexport * from \"./devices.harvesterhci.io.vgpudevice.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport ResourceTable from '@shell/components/ResourceTable';\n\nimport { allHash } from '@shell/utils/promise';\nimport { STATE, NAME } from '@shell/config/table-headers';\nimport { HCI } from '../types';\n\nexport default {\n name: 'ListHarvesterAddons',\n\n components: {\n ResourceTable,\n Loading,\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n await allHash({ addons: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS }) });\n },\n\n computed: {\n rows() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const addons = this.$store.getters[`${ inStore }/all`](HCI.ADD_ONS);\n\n return addons;\n },\n\n headers() {\n return [\n STATE,\n NAME,\n {\n name: 'description',\n labelKey: 'tableHeaders.description',\n value: 'metadata.name',\n align: 'left',\n sort: ['status.description'],\n formatter: 'Translate',\n formatterOpts: { prefix: 'harvester.addons.descriptions' },\n },\n ];\n },\n\n schema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS);\n },\n },\n};\n</script>\n\n<template>\n <div>\n <Loading v-if=\"$fetchState.pending\" />\n <ResourceTable\n :rows=\"rows\"\n :groupable=\"false\"\n :namespaced=\"false\"\n :schema=\"schema\"\n :headers=\"headers\"\n >\n <template #cell:name=\"scope\">\n <div class=\"cell-name\">\n <LinkDetail\n v-model:value=\"scope.row.displayName\"\n :row=\"scope.row\"\n />\n\n <a\n v-if=\"scope.row.metadata.name === 'rancher-vcluster' && scope.row.spec.enabled\"\n v-tooltip=\"t('harvester.addons.rancherVcluster.accessRancher')\"\n class=\"ml-5\"\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n :href=\"scope.row.rancherHostname\"\n >\n <i class=\"icon icon-external-link\" />\n </a>\n </div>\n </template>\n </ResourceTable>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n:deep() .sortable-table TD .badge-state {\n max-width: 250px;\n text-overflow: clip;\n }\n\n:deep() .cell-name {\n white-space: nowrap;\n}\n</style>\n","import { render } from \"./harvesterhci.io.addon.vue?vue&type=template&id=32e4b7cb&scoped=true\"\nimport script from \"./harvesterhci.io.addon.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.addon.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.addon.vue?vue&type=style&index=0&id=32e4b7cb&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-32e4b7cb\"]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Loading from '@shell/components/Loading';\nimport { CONFIG_MAP, SCHEMA } from '@shell/config/types';\nimport { NAME, AGE, NAMESPACE } from '@shell/config/table-headers';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.CLOUD_TEMPLATE,\n type: SCHEMA,\n attributes: {\n kind: HCI.CLOUD_TEMPLATE,\n namespaced: true\n },\n metadata: { name: HCI.CLOUD_TEMPLATE },\n};\n\nexport default {\n name: 'HarvesterListCloudTemplate',\n components: { ResourceTable, Loading },\n\n inheritAttrs: false,\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.rows = await this.$store.dispatch(`${ inStore }/findAll`, { type: CONFIG_MAP });\n\n const configSchema = this.$store.getters[`${ inStore }/schemaFor`](CONFIG_MAP);\n\n if (!configSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post')) {\n this.$store.dispatch('type-map/configureType', { match: HCI.CLOUD_TEMPLATE, isCreatable: false });\n }\n },\n\n data() {\n return { rows: [] };\n },\n\n computed: {\n headers() {\n return [\n NAME,\n NAMESPACE,\n {\n name: 'type',\n labelKey: 'tableHeaders.type',\n value: 'metadata.labels',\n formatter: 'CloudInitType',\n },\n AGE\n ];\n },\n\n filteredRows() {\n return this.rows.filter((r) => !!r.metadata?.labels?.[HCI_ANNOTATIONS.CLOUD_INIT]);\n },\n\n schema() {\n return schema;\n }\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <ResourceTable\n v-else\n v-bind=\"$attrs\"\n :headers=\"headers\"\n :groupable=\"true\"\n :schema=\"schema\"\n :rows=\"filteredRows\"\n key-field=\"_key\"\n />\n</template>\n","import { render } from \"./harvesterhci.io.cloudtemplate.vue?vue&type=template&id=f61f0d02\"\nimport script from \"./harvesterhci.io.cloudtemplate.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.cloudtemplate.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport dayjs from 'dayjs';\nimport minMax from 'dayjs/plugin/minMax';\nimport utc from 'dayjs/plugin/utc';\nimport { mapGetters } from 'vuex';\nimport Loading from '@shell/components/Loading';\nimport Banner from '@components/Banner/Banner.vue';\nimport MessageLink from '@shell/components/MessageLink';\nimport SortableTable from '@shell/components/SortableTable';\nimport { allHash, setPromiseResult } from '@shell/utils/promise';\nimport {\n parseSi, formatSi, exponentNeeded, UNITS, createMemoryValues\n} from '@shell/utils/units';\nimport { REASON } from '@shell/config/table-headers';\nimport {\n EVENT, METRIC, NODE, SERVICE, PVC, LONGHORN, POD, COUNT, NETWORK_ATTACHMENT\n} from '@shell/config/types';\nimport ResourceSummary, { resourceCounts, colorToCountName } from '@shell/components/ResourceSummary';\nimport { colorForState } from '@shell/plugins/dashboard-store/resource-class';\nimport HardwareResourceGauge from '@shell/components/HardwareResourceGauge';\nimport Tabbed from '@shell/components/Tabbed';\nimport Tab from '@shell/components/Tabbed/Tab';\nimport DashboardMetrics from '@shell/components/DashboardMetrics';\nimport metricPoller from '@shell/mixins/metric-poller';\nimport { allDashboardsExist } from '@shell/utils/grafana';\nimport { isEmpty } from '@shell/utils/object';\nimport { HCI } from '../types';\nimport HarvesterUpgrade from '../components/HarvesterUpgrade';\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\n\ndayjs.extend(utc);\ndayjs.extend(minMax);\n\nconst PARSE_RULES = {\n memory: {\n format: {\n addSuffix: true,\n firstSuffix: 'B',\n increment: 1024,\n maxExponent: 99,\n maxPrecision: 2,\n minExponent: 0,\n startingExponent: 0,\n suffix: 'iB',\n }\n }\n};\n\nconst RESOURCES = [{\n type: NODE,\n spoofed: {\n location: {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { resource: HCI.HOST }\n },\n name: HCI.HOST,\n }\n},\n{\n type: HCI.VM,\n spoofed: {\n location: {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { resource: HCI.VM }\n },\n name: HCI.VM,\n }\n},\n{\n type: NETWORK_ATTACHMENT,\n spoofed: {\n location: {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { resource: HCI.NETWORK_ATTACHMENT }\n },\n name: HCI.NETWORK_ATTACHMENT,\n filterNamespace: ['harvester-system']\n }\n},\n{\n type: HCI.IMAGE,\n spoofed: {\n location: {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { resource: HCI.IMAGE }\n },\n name: HCI.IMAGE,\n }\n},\n{\n type: PVC,\n spoofed: {\n location: {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { resource: HCI.VOLUME }\n },\n name: HCI.VOLUME,\n filterNamespace: ['cattle-monitoring-system']\n }\n},\n{\n type: HCI.BLOCK_DEVICE,\n spoofed: {\n location: {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource`,\n params: { resource: HCI.HOST }\n },\n name: HCI.BLOCK_DEVICE,\n },\n}];\n\nconst CLUSTER_METRICS_DETAIL_URL = '/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/rancher-cluster-nodes-1/rancher-cluster-nodes?orgId=1';\nconst CLUSTER_METRICS_SUMMARY_URL = '/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/rancher-cluster-1/rancher-cluster?orgId=1';\nconst VM_DASHBOARD_METRICS_URL = '/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/harvester-vm-dashboard-1/vm-dashboard?orgId=1';\n\nconst MONITORING_ID = 'cattle-monitoring-system/rancher-monitoring';\n\nexport default {\n mixins: [metricPoller],\n components: {\n Loading,\n HardwareResourceGauge,\n SortableTable,\n HarvesterUpgrade,\n ResourceSummary,\n Tabbed,\n Tab,\n DashboardMetrics,\n Banner,\n MessageLink,\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = {\n vms: this.fetchClusterResources(HCI.VM),\n nodes: this.fetchClusterResources(NODE),\n events: this.fetchClusterResources(EVENT),\n metricNodes: this.fetchClusterResources(METRIC.NODE),\n settings: this.fetchClusterResources(HCI.SETTING),\n services: this.fetchClusterResources(SERVICE),\n metric: this.fetchClusterResources(METRIC.NODE),\n longhornNodes: this.fetchClusterResources(LONGHORN.NODES),\n longhornSettings: this.fetchClusterResources(LONGHORN.SETTINGS),\n _pods: this.$store.dispatch('harvester/findAll', { type: POD }),\n };\n\n (this.accessibleResources || []).map((a) => {\n hash[a.type] = this.$store.dispatch(`${ inStore }/findAll`, { type: a.type });\n\n return null;\n });\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS)) {\n hash.addons = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.ADD_ONS });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](LONGHORN.NODES)) {\n this.hasLonghornSchema = true;\n }\n\n const res = await allHash(hash);\n\n for ( const k in res ) {\n this[k] = res[k];\n }\n\n setPromiseResult(\n allDashboardsExist(this.$store, this.currentCluster.id, [CLUSTER_METRICS_DETAIL_URL, CLUSTER_METRICS_SUMMARY_URL], 'harvester'),\n this,\n 'showClusterMetrics',\n 'Determine cluster metrics'\n );\n setPromiseResult(\n allDashboardsExist(this.$store, this.currentCluster.id, [VM_DASHBOARD_METRICS_URL], 'harvester'),\n this,\n 'showVmMetrics',\n 'Determine vm metrics'\n );\n\n const addons = this.$store.getters[`${ inStore }/all`](HCI.ADD_ONS);\n\n this.monitoring = addons.find((addon) => addon.id === MONITORING_ID);\n this.enabledMonitoringAddon = this.monitoring?.spec?.enabled;\n },\n\n data() {\n const reason = {\n ...REASON,\n ...{ canBeVariable: true },\n width: 130\n };\n\n const eventHeaders = [\n reason,\n {\n name: 'resource',\n label: 'Resource',\n labelKey: 'clusterIndexPage.sections.events.resource.label',\n value: 'displayInvolvedObject',\n sort: ['involvedObject.kind', 'involvedObject.name'],\n canBeVariable: true,\n },\n {\n align: 'right',\n name: 'date',\n label: 'Date',\n labelKey: 'clusterIndexPage.sections.events.date.label',\n value: 'lastTimestamp',\n sort: 'lastTimestamp:desc',\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n width: 125,\n defaultSort: true,\n },\n ];\n\n return {\n eventHeaders,\n constraints: [],\n events: [],\n nodeMetrics: [],\n nodes: [],\n metricNodes: [],\n vms: [],\n monitoring: {},\n VM_DASHBOARD_METRICS_URL,\n CLUSTER_METRICS_SUMMARY_URL,\n CLUSTER_METRICS_DETAIL_URL,\n showClusterMetrics: false,\n showVmMetrics: false,\n enabledMonitoringAddon: false,\n hasLonghornSchema: false,\n };\n },\n\n computed: {\n ...mapGetters(['currentCluster']),\n\n accessibleResources() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return RESOURCES.filter((resource) => this.$store.getters[`${ inStore }/schemaFor`](resource.type));\n },\n\n totalCountGaugeInput() {\n const out = {};\n\n this.accessibleResources.forEach((resource) => {\n const counts = resourceCounts(this.$store, resource.type);\n\n out[resource.type] = { resource: resource.type };\n\n Object.entries(counts).forEach((entry) => {\n out[resource.type][entry[0]] = entry[1];\n });\n\n if (resource.spoofed) {\n if (resource.spoofed?.filterNamespace && Array.isArray(resource.spoofed.filterNamespace)) {\n const clusterCounts = this.$store.getters['harvester/all'](COUNT)[0].counts;\n const statistics = clusterCounts[resource.type] || {};\n\n for (let i = 0; i < resource.spoofed.filterNamespace.length; i++) {\n const nsStatistics = statistics?.namespaces?.[resource.spoofed.filterNamespace[i]] || {};\n\n if (nsStatistics.count) {\n out[resource.type]['useful'] -= nsStatistics.count;\n out[resource.type]['total'] -= nsStatistics.count;\n }\n Object.entries(nsStatistics?.states || {}).forEach((entry) => {\n const color = colorForState(entry[0]);\n const count = entry[1];\n const countName = colorToCountName(color);\n\n out[resource.type]['useful'] -= count;\n out[resource.type][countName] += count;\n });\n }\n }\n\n out[resource.type] = {\n ...out[resource.type],\n ...resource.spoofed,\n isSpoofed: true\n };\n\n out[resource.type].name = this.t(`typeLabel.\"${ resource.spoofed.name }\"`, { count: out[resource.type].total });\n }\n\n if (resource.type === HCI.BLOCK_DEVICE) {\n let total = 0;\n let errorCount = 0;\n\n (this.nodes || []).map((node) => {\n total += node.diskStatusCount.total;\n errorCount += node.diskStatusCount.errorCount;\n });\n\n out[resource.type] = {\n ...out[resource.type],\n total,\n errorCount,\n useful: total - errorCount,\n };\n }\n });\n\n return out;\n },\n\n currentVersion() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const setting = this.$store.getters[`${ inStore }/byId`](HCI.SETTING, 'server-version');\n\n return setting?.value || setting?.default;\n },\n\n firstNodeCreationTimestamp() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const days = this.$store.getters[`${ inStore }/all`](NODE).map( (N) => {\n return dayjs(N.metadata.creationTimestamp);\n });\n\n if (!days.length) {\n return dayjs().utc().format();\n }\n\n return dayjs.min(days).utc().format();\n },\n\n cpusTotal() {\n let out = 0;\n\n this.metricNodes.forEach((node) => {\n out += node.cpuCapacity;\n });\n\n return out;\n },\n\n cpusUsageTotal() {\n let out = 0;\n\n this.metricNodes.forEach((node) => {\n out += node.cpuUsage;\n });\n\n return out;\n },\n\n memoryTotal() {\n let out = 0;\n\n this.metricNodes.forEach((node) => {\n out += node.memoryCapacity;\n });\n\n return out;\n },\n\n memoryUsageTotal() {\n let out = 0;\n\n this.metricNodes.forEach((node) => {\n out += node.memoryUsage;\n });\n\n return out;\n },\n\n storageStats() {\n const storageOverProvisioningPercentageSetting = this.longhornSettings.find((s) => s.id === 'longhorn-system/storage-over-provisioning-percentage');\n const stats = this.longhornNodes.reduce((total, node) => {\n const disks = node?.spec?.disks || {};\n const diskStatus = node?.status?.diskStatus || {};\n\n total.used += node?.spec?.allowScheduling ? node.used : 0;\n\n Object.keys(disks).map((key) => {\n total.scheduled += node?.spec?.allowScheduling ? (diskStatus[key]?.storageScheduled || 0) : 0;\n total.reserved += disks[key]?.storageReserved || 0;\n });\n Object.values(diskStatus).map((diskStat) => {\n total.maximum += diskStat?.storageMaximum || 0;\n });\n\n return total;\n }, {\n used: 0,\n scheduled: 0,\n maximum: 0,\n reserved: 0,\n total: 0\n });\n\n stats.total = ((stats.maximum - stats.reserved) * Number(storageOverProvisioningPercentageSetting?.value ?? 0)) / 100;\n\n return stats;\n },\n\n storageUsed() {\n const stats = this.storageStats;\n\n return this.createMemoryValues(stats.maximum, stats.used);\n },\n\n storageAllocated() {\n const stats = this.storageStats;\n\n return this.createMemoryValues(stats.total, stats.scheduled);\n },\n\n vmEvents() {\n return this.events.filter( (E) => ['VirtualMachineInstance', 'VirtualMachine'].includes(E.involvedObject.kind));\n },\n\n volumeEvents() {\n return this.events.filter( (E) => ['PersistentVolumeClaim'].includes(E.involvedObject.kind));\n },\n\n hostEvents() {\n return this.events.filter( (E) => ['Node'].includes(E.involvedObject.kind));\n },\n\n imageEvents() {\n return this.events.filter( (E) => ['VirtualMachineImage'].includes(E.involvedObject.kind));\n },\n\n hasMetricsTabs() {\n return this.showClusterMetrics || this.showVmMetrics;\n },\n\n pods() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const pods = this.$store.getters[`${ inStore }/all`](POD) || [];\n\n return pods.filter((p) => p?.metadata?.name !== 'removing');\n },\n\n cpuReserved() {\n const useful = this.nodes.reduce((total, node) => {\n return total + node.cpuReserved;\n }, 0);\n\n return {\n total: this.cpusTotal,\n useful,\n };\n },\n\n ramReserved() {\n const useful = this.nodes.reduce((total, node) => {\n return total + node.memoryReserved;\n }, 0);\n\n return createMemoryValues(this.memoryTotal, useful);\n },\n\n availableNodes() {\n return (this.metricNodes || []).map((node) => node.id);\n },\n\n metricAggregations() {\n const nodes = this.nodes;\n const someNonWorkerRoles = this.nodes.some((node) => node.hasARole && !node.isWorker);\n const metrics = this.nodeMetrics.filter((nodeMetrics) => {\n const node = nodes.find((nd) => nd.id === nodeMetrics.id);\n\n return node && (!someNonWorkerRoles || node.isWorker);\n });\n const initialAggregation = {\n cpu: 0,\n memory: 0\n };\n\n if (isEmpty(metrics)) {\n return null;\n }\n\n return metrics.reduce((agg, metric) => {\n agg.cpu += parseSi(metric.usage.cpu);\n agg.memory += parseSi(metric.usage.memory);\n\n return agg;\n }, initialAggregation);\n },\n\n cpuUsed() {\n return {\n total: this.cpusTotal,\n useful: this.metricAggregations?.cpu,\n };\n },\n\n ramUsed() {\n return createMemoryValues(this.memoryTotal, this.metricAggregations?.memory);\n },\n\n hasMetricNodeSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return !!this.$store.getters[`${ inStore }/schemaFor`](METRIC.NODE);\n },\n\n toEnableMonitoringAddon() {\n return `${ HCI.ADD_ONS }/cattle-monitoring-system/rancher-monitoring?mode=edit#alertmanager`;\n },\n\n canEnableMonitoringAddon() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hasSchema = this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS);\n\n return hasSchema && this.monitoring;\n },\n },\n\n methods: {\n createMemoryValues(total, useful) {\n const parsedTotal = parseSi((total || '0').toString());\n const parsedUseful = parseSi((useful || '0').toString());\n const format = this.createMemoryFormat(parsedTotal);\n const formattedTotal = formatSi(parsedTotal, format);\n let formattedUseful = formatSi(parsedUseful, {\n ...format,\n addSuffix: false,\n });\n\n if (!Number.parseFloat(formattedUseful) > 0) {\n formattedUseful = formatSi(parsedUseful, {\n ...format,\n canRoundToZero: false,\n });\n }\n\n return {\n total: Number(parsedTotal),\n useful: Number(parsedUseful),\n formattedTotal,\n formattedUseful,\n units: this.createMemoryUnits(parsedTotal),\n };\n },\n\n createMemoryFormat(n) {\n const exponent = exponentNeeded(n, PARSE_RULES.memory.format.increment);\n\n return {\n ...PARSE_RULES.memory.format,\n maxExponent: exponent,\n minExponent: exponent,\n };\n },\n\n createMemoryUnits(n) {\n const exponent = exponentNeeded(n, PARSE_RULES.memory.format.increment);\n\n return `${ UNITS[exponent] }${ PARSE_RULES.memory.format.suffix }`;\n },\n\n async fetchClusterResources(type, opt = {}, store) {\n const inStore = store || this.$store.getters['currentProduct'].inStore;\n\n const schema = this.$store.getters[`${ inStore }/schemaFor`](type);\n\n if (schema) {\n try {\n const resources = await this.$store.dispatch(`${ inStore }/findAll`, { type, opt });\n\n return resources;\n } catch (err) {\n console.error(`Failed fetching cluster resource ${ type } with error:`, err); // eslint-disable-line no-console\n\n return [];\n }\n }\n\n return [];\n },\n\n async loadMetrics() {\n this.nodeMetrics = await this.fetchClusterResources(METRIC.NODE, { force: true } );\n },\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending || !currentCluster\" />\n <section v-else>\n <HarvesterUpgrade />\n\n <div\n class=\"cluster-dashboard-glance\"\n >\n <div>\n <label>\n {{ t('harvester.dashboard.version') }}:\n </label>\n <span>\n <span v-clean-tooltip=\"{content: currentVersion}\">\n {{ currentVersion }}\n </span>\n </span>\n </div>\n <div>\n <label>\n {{ t('glance.created') }}:\n </label>\n <span>\n <LiveDate\n :value=\"firstNodeCreationTimestamp\"\n :add-suffix=\"true\"\n :show-tooltip=\"true\"\n />\n </span>\n </div>\n </div>\n\n <div v-if=\"!enabledMonitoringAddon && canEnableMonitoringAddon\">\n <Banner color=\"info\">\n <MessageLink\n :to=\"toEnableMonitoringAddon\"\n prefix-label=\"harvester.monitoring.alertmanagerConfig.disabledAddon.prefix\"\n middle-label=\"harvester.monitoring.alertmanagerConfig.disabledAddon.middle\"\n suffix-label=\"harvester.monitoring.alertmanagerConfig.disabledAddon.suffix\"\n />\n </Banner>\n </div>\n\n <div class=\"resource-gauges\">\n <ResourceSummary\n v-for=\"(resource, i) in totalCountGaugeInput\"\n :key=\"i\"\n :spoofed-counts=\"resource.isSpoofed ? resource : null\"\n :resource=\"resource.resource\"\n />\n </div>\n\n <template v-if=\"nodes.length && hasMetricNodeSchema\">\n <h3 class=\"mt-40\">\n {{ t('clusterIndexPage.sections.capacity.label') }}\n </h3>\n <div\n class=\"hardware-resource-gauges\"\n :class=\"{\n live: !hasLonghornSchema,\n }\"\n >\n <HardwareResourceGauge\n :name=\"t('harvester.dashboard.hardwareResourceGauge.cpu')\"\n :reserved=\"cpuReserved\"\n :used=\"cpuUsed\"\n />\n <HardwareResourceGauge\n :name=\"t('harvester.dashboard.hardwareResourceGauge.memory')\"\n :reserved=\"ramReserved\"\n :used=\"ramUsed\"\n />\n <HardwareResourceGauge\n v-if=\"hasLonghornSchema\"\n :name=\"t('harvester.dashboard.hardwareResourceGauge.storage')\"\n :used=\"storageUsed\"\n :reserved=\"storageAllocated\"\n :reserved-title=\"t('harvester.dashboard.hardwareResourceGauge.allocated')\"\n />\n </div>\n </template>\n\n <Tabbed\n v-if=\"hasMetricsTabs && enabledMonitoringAddon\"\n class=\"mt-30\"\n >\n <Tab\n v-if=\"showClusterMetrics\"\n name=\"cluster-metrics\"\n :label=\"t('clusterIndexPage.sections.clusterMetrics.label')\"\n :weight=\"99\"\n >\n <template #default=\"props\">\n <DashboardMetrics\n v-if=\"props.active\"\n :detail-url=\"CLUSTER_METRICS_DETAIL_URL\"\n :summary-url=\"CLUSTER_METRICS_SUMMARY_URL\"\n graph-height=\"825px\"\n />\n </template>\n </Tab>\n <Tab\n v-if=\"showVmMetrics\"\n name=\"vm-metric\"\n :label=\"t('harvester.dashboard.sections.vmMetrics.label')\"\n :weight=\"98\"\n >\n <template #default=\"props\">\n <DashboardMetrics\n v-if=\"props.active\"\n :detail-url=\"VM_DASHBOARD_METRICS_URL\"\n graph-height=\"825px\"\n :has-summary-and-detail=\"false\"\n />\n </template>\n </Tab>\n </Tabbed>\n\n <div class=\"mb-40 mt-40\">\n <h3>\n {{ t('clusterIndexPage.sections.events.label') }}\n </h3>\n <Tabbed class=\"mt-20\">\n <Tab\n name=\"host\"\n label=\"Hosts\"\n :weight=\"98\"\n >\n <SortableTable\n :rows=\"hostEvents\"\n :headers=\"eventHeaders\"\n key-field=\"id\"\n :search=\"false\"\n :table-actions=\"false\"\n :row-actions=\"false\"\n :paging=\"true\"\n :rows-per-page=\"10\"\n default-sort-by=\"date\"\n >\n <template #cell:resource=\"{row, value}\">\n <div class=\"text-info\">\n {{ value }}\n </div>\n <div v-if=\"row.message\">\n {{ row.displayMessage }}\n </div>\n </template>\n </SortableTable>\n </Tab>\n <Tab\n name=\"vm\"\n label=\"VMs\"\n :weight=\"99\"\n >\n <SortableTable\n :rows=\"vmEvents\"\n :headers=\"eventHeaders\"\n key-field=\"id\"\n :search=\"false\"\n :table-actions=\"false\"\n :row-actions=\"false\"\n :paging=\"true\"\n :rows-per-page=\"10\"\n default-sort-by=\"date\"\n >\n <template #cell:resource=\"{row, value}\">\n <div class=\"text-info\">\n {{ value }}\n </div>\n <div v-if=\"row.message\">\n {{ row.displayMessage }}\n </div>\n </template>\n </SortableTable>\n </Tab>\n <Tab\n name=\"volume\"\n label=\"Volumes\"\n :weight=\"97\"\n >\n <SortableTable\n :rows=\"volumeEvents\"\n :headers=\"eventHeaders\"\n key-field=\"id\"\n :search=\"false\"\n :table-actions=\"false\"\n :row-actions=\"false\"\n :paging=\"true\"\n :rows-per-page=\"10\"\n default-sort-by=\"date\"\n >\n <template #cell:resource=\"{row, value}\">\n <div class=\"text-info\">\n {{ value }}\n </div>\n <div v-if=\"row.message\">\n {{ row.displayMessage }}\n </div>\n </template>\n </SortableTable>\n </Tab>\n <Tab\n name=\"image\"\n label=\"Images\"\n :weight=\"96\"\n >\n <SortableTable\n :rows=\"imageEvents\"\n :headers=\"eventHeaders\"\n key-field=\"id\"\n :search=\"false\"\n :table-actions=\"false\"\n :row-actions=\"false\"\n :paging=\"true\"\n :rows-per-page=\"10\"\n default-sort-by=\"date\"\n >\n <template #cell:resource=\"{row, value}\">\n <div class=\"text-info\">\n {{ value }}\n </div>\n <div v-if=\"row.message\">\n {{ row.displayMessage }}\n </div>\n </template>\n </SortableTable>\n </Tab>\n </Tabbed>\n </div>\n </section>\n</template>\n\n<style lang=\"scss\" scoped>\n .cluster-dashboard-glance {\n border-top: 1px solid var(--border);\n border-bottom: 1px solid var(--border);\n padding: 20px 0px;\n display: flex;\n\n &>*{\n margin-right: 40px;\n\n & SPAN {\n font-weight: bold\n }\n }\n }\n\n .events {\n margin-top: 30px;\n }\n</style>\n","<script>\nimport { mapGetters } from 'vuex';\nimport { allHash } from '@shell/utils/promise';\nimport { Checkbox } from '@components/Form/Checkbox';\nimport ModalWithCard from '@shell/components/ModalWithCard';\nimport LabeledSelect from '@shell/components/form/LabeledSelect';\nimport { Banner } from '@components/Banner';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\nimport { HCI } from '../types';\nimport UpgradeInfo from './UpgradeInfo';\n\nexport default {\n name: 'HarvesterUpgrade',\n\n components: {\n Checkbox, ModalWithCard, LabeledSelect, Banner, UpgradeInfo\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const res = await allHash({\n upgradeVersion: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SETTING }),\n versions: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VERSION }),\n upgrade: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.UPGRADE }),\n });\n\n this.upgrade = res.upgrade;\n },\n\n data() {\n return {\n upgrade: [],\n upgradeMessage: [],\n errors: '',\n selectMode: true,\n version: '',\n enableLogging: true,\n skipSingleReplicaDetachedVol: false,\n readyReleaseNote: false,\n isOpen: false\n };\n },\n\n computed: {\n ...mapGetters(['currentCluster']),\n\n latestUpgrade() {\n return this.upgrade?.find((u) => u.isLatestUpgrade);\n },\n\n isUpgradeInProgress() {\n return this.latestUpgrade &&\n !this.latestUpgrade.isUpgradeSucceeded &&\n !this.latestUpgrade.isUpgradeFailed;\n },\n\n versionOptions() {\n const versions = this.$store.getters['harvester/all'](HCI.VERSION);\n\n return versions.map((V) => V.metadata.name);\n },\n\n currentVersion() {\n const serverVersion = this.$store.getters['harvester/byId'](HCI.SETTING, 'server-version');\n\n return serverVersion.currentVersion || '';\n },\n\n canEnableLogging() {\n return this.$store.getters['harvester/schemaFor'](HCI.UPGRADE_LOG);\n },\n\n skipSingleReplicaDetachedVolFeatureEnabled() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('skipSingleReplicaDetachedVol');\n },\n\n releaseLink() {\n return `https://github.com/harvester/harvester/releases/tag/${ this.version }`;\n }\n },\n\n watch: {\n upgrade: {\n handler(neu) {\n let upgradeMessage = [];\n const list = neu || [];\n\n const currentResource = list.find( (O) => !!O.isLatestUpgrade);\n\n upgradeMessage = currentResource ? currentResource.upgradeMessage : [];\n\n this['upgradeMessage'] = upgradeMessage;\n },\n deep: true\n },\n\n version() {\n this.readyReleaseNote = false;\n }\n },\n\n methods: {\n async handleUpgrade() {\n const upgradeValue = {\n type: HCI.UPGRADE,\n metadata: {\n generateName: 'hvst-upgrade-',\n namespace: 'harvester-system'\n },\n spec: { version: this.version }\n };\n\n if (this.skipSingleReplicaDetachedVolFeatureEnabled && this.skipSingleReplicaDetachedVol) {\n upgradeValue.metadata.annotations =\n { [HCI_ANNOTATIONS.SKIP_SINGLE_REPLICA_DETACHED_VOL]: JSON.stringify(this.skipSingleReplicaDetachedVol) };\n }\n\n if (this.canEnableLogging) {\n upgradeValue.spec.logEnabled = this.enableLogging;\n }\n\n const proxyResource = await this.$store.dispatch('harvester/create', upgradeValue);\n\n try {\n await proxyResource.save();\n\n this.cancel();\n } catch (err) {\n if (err?.message !== '') {\n this.errors = err.message;\n }\n }\n },\n\n cancel() {\n this.isOpen = false;\n this.errors = '';\n },\n\n open() {\n this.isOpen = true;\n },\n }\n};\n</script>\n\n<template>\n <div v-if=\"currentCluster\">\n <header class=\"header-layout header mb-0\">\n <h1>\n <t\n k=\"harvester.dashboard.header\"\n :cluster=\"currentCluster.nameDisplay\"\n />\n </h1>\n <button\n v-if=\"versionOptions.length && !isUpgradeInProgress\"\n type=\"button\"\n class=\"btn bg-warning btn-sm\"\n @click=\"open\"\n >\n <t k=\"harvester.upgradePage.upgrade\" />\n </button>\n </header>\n\n <ModalWithCard\n v-if=\"isOpen\"\n name=\"deleteTip\"\n :width=\"850\"\n >\n <template #title>\n <t k=\"harvester.upgradePage.upgradeApp\" />\n </template>\n\n <template #content>\n <UpgradeInfo :version=\"version\" />\n\n <div class=\"currentVersion mb-15\">\n <span> <t k=\"harvester.upgradePage.currentVersion\" /> </span>\n <span class=\"version\">{{ currentVersion }}</span>\n </div>\n\n <div>\n <LabeledSelect\n v-model:value=\"version\"\n class=\"mb-10\"\n :label=\"t('harvester.upgradePage.versionLabel')\"\n :options=\"versionOptions\"\n :clearable=\"true\"\n />\n\n <div\n v-if=\"canEnableLogging\"\n class=\"mb-5\"\n >\n <Checkbox\n v-model:value=\"enableLogging\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.upgradePage.enableLogging')\"\n />\n </div>\n\n <div\n v-if=\"skipSingleReplicaDetachedVolFeatureEnabled\"\n class=\"mb-5\"\n >\n <Checkbox\n v-model:value=\"skipSingleReplicaDetachedVol\"\n class=\"check\"\n type=\"checkbox\"\n :label=\"t('harvester.upgradePage.skipSingleReplicaDetachedVol')\"\n />\n </div>\n <hr\n v-if=\"version\"\n class=\"divider\"\n />\n <div v-if=\"version\">\n <p\n v-clean-html=\"t('harvester.upgradePage.releaseTip', {url: releaseLink}, true)\"\n class=\"mb-10\"\n ></p>\n\n <Checkbox\n v-model:value=\"readyReleaseNote\"\n class=\"check\"\n type=\"checkbox\"\n label-key=\"harvester.upgradePage.checkReady\"\n />\n </div>\n\n <Banner\n v-if=\"errors.length\"\n color=\"error\"\n >\n {{ errors }}\n </Banner>\n </div>\n </template>\n\n <template #footer>\n <div class=\"footer\">\n <button\n class=\"btn role-secondary mr-20\"\n @click.prevent=\"cancel\"\n >\n <t k=\"generic.close\" />\n </button>\n <button\n :disabled=\"!readyReleaseNote\"\n class=\"btn role-tertiary bg-primary\"\n @click.prevent=\"handleUpgrade\"\n >\n <t k=\"harvester.upgradePage.upgrade\" />\n </button>\n </div>\n </template>\n </ModalWithCard>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .footer {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n }\n\n .banner-icon {\n display: flex;\n align-items: center;\n }\n\n .banner-content {\n display: flex;\n }\n\n .banner-message {\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0 15px;\n }\n\n .icon {\n font-size: 20px;\n width: 20px;\n line-height: 23px;\n }\n\n .currentVersion {\n margin-top: 10px;\n display: flex;\n justify-content: space-between;\n .version {\n font-size: 16px;\n font-weight: bold;\n }\n }\n</style>\n","import { render } from \"./HarvesterUpgrade.vue?vue&type=template&id=0254dd74&scoped=true\"\nimport script from \"./HarvesterUpgrade.vue?vue&type=script&lang=js\"\nexport * from \"./HarvesterUpgrade.vue?vue&type=script&lang=js\"\n\nimport \"./HarvesterUpgrade.vue?vue&type=style&index=0&id=0254dd74&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0254dd74\"]])\n\nexport default __exports__","import { render } from \"./harvesterhci.io.dashboard.vue?vue&type=template&id=69bd7a3f&scoped=true\"\nimport script from \"./harvesterhci.io.dashboard.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.dashboard.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.dashboard.vue?vue&type=style&index=0&id=69bd7a3f&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-69bd7a3f\"]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Loading from '@shell/components/Loading';\nimport { STATE, NAME, AGE } from '@shell/config/table-headers';\nimport {\n CAPI, METRIC, NODE, SCHEMA, LONGHORN, POD\n} from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport metricPoller from '@shell/mixins/metric-poller';\nimport { HCI } from '../types';\nimport { DOC } from '../config/doc-links';\nimport { docLink } from '../utils/feature-flags';\n\nconst schema = {\n id: HCI.HOST,\n type: SCHEMA,\n attributes: {\n kind: HCI.HOST,\n namespaced: true\n },\n metadata: { name: HCI.HOST },\n};\n\nexport default {\n name: 'HarvesterListHost',\n\n components: {\n ResourceTable,\n Loading,\n },\n\n mixins: [metricPoller],\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {\n nodes: this.$store.dispatch(`${ inStore }/findAll`, { type: NODE }),\n pods: this.$store.dispatch(`${ inStore }/findAll`, { type: POD }),\n };\n\n if (this.$store.getters[`${ inStore }/schemaFor`](METRIC.NODE)) {\n _hash.metric = this.$store.dispatch(`${ inStore }/findAll`, { type: METRIC.NODE });\n } else {\n this.hasMetricSchema = false;\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](LONGHORN.NODES)) {\n _hash.longhornNodes = this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.NODES });\n } else {\n this.hasLonghornSchema = false;\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.BLOCK_DEVICE)) {\n _hash.blockDevices = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.BLOCK_DEVICE });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.INVENTORY)) {\n _hash.inventories = this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.INVENTORY });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](CAPI.MACHINE)) {\n _hash.machines = this.$store.dispatch(`${ inStore }/findAll`, { type: CAPI.MACHINE });\n }\n\n const hash = await allHash(_hash);\n\n this.rows = hash.nodes;\n },\n\n data() {\n return {\n rows: [],\n hasMetricSchema: true,\n hasLonghornSchema: true,\n };\n },\n\n computed: {\n headers() {\n const out = [\n {\n ...STATE,\n formatter: 'StateWithPopover',\n },\n {\n ...NAME,\n width: 130,\n },\n {\n name: 'host-ip',\n labelKey: 'tableHeaders.hostIp',\n search: ['internalIp'],\n value: 'internalIp',\n formatter: 'CopyToClipboard',\n sort: ['internalIp'],\n align: 'center',\n },\n ];\n\n if (this.hasMetricSchema) {\n const metricCol = [\n {\n name: 'cpu',\n labelKey: 'node.detail.glance.consumptionGauge.cpu',\n value: 'id',\n formatter: 'HarvesterCPUUsed',\n formatterOpts: { showUsed: true },\n },\n {\n name: 'memory',\n labelKey: 'node.detail.glance.consumptionGauge.memory',\n value: 'id',\n formatter: 'HarvesterMemoryUsed',\n formatterOpts: { showUsed: true },\n },\n ];\n\n out.splice(-1, 0, ...metricCol);\n }\n\n if (this.hasLonghornSchema) {\n const storageHeader = {\n name: 'storage',\n labelKey: 'tableHeaders.storage',\n value: 'id',\n formatter: 'HarvesterStorageUsed',\n formatterOpts: { showAllocated: true },\n };\n\n out.splice(-1, 0, storageHeader);\n }\n if (this.rows.every((node) => node.cpuPinningFeatureEnabled)) {\n out.push({\n name: 'cpuManager',\n labelKey: 'harvester.tableHeaders.cpuManager',\n value: 'id',\n formatter: 'HarvesterCPUPinning',\n formatterOpts: { rows: this.rows },\n width: 150,\n align: 'center',\n });\n }\n if (this.hasLonghornSchema) {\n out.push({\n name: 'diskState',\n labelKey: 'tableHeaders.diskState',\n value: 'diskState',\n formatter: 'HarvesterDiskState',\n width: 130,\n });\n }\n\n out.push(AGE);\n\n out.push({\n name: 'console',\n label: ' ',\n align: 'right',\n width: 80,\n });\n\n return out;\n },\n\n schema() {\n return schema;\n },\n\n consoleDocLink() {\n const version = this.$store.getters['harvester-common/getServerVersion']();\n\n return docLink(DOC.CONSOLE_URL, version);\n }\n },\n methods: {\n async loadMetrics() {\n const schema = this.$store.getters['harvester/schemaFor'](METRIC.NODE);\n\n if (schema) {\n await this.$store.dispatch('harvester/findAll', {\n type: METRIC.NODE,\n opt: { force: true }\n });\n\n this.$forceUpdate();\n }\n },\n\n goto(row) {\n window.open(row.consoleUrl, '_blank');\n },\n\n consoleTooltip(row) {\n if (!row.consoleUrl) {\n return this.t('harvester.host.noConsoleUrl');\n }\n\n return '';\n },\n },\n\n typeDisplay() {\n const { params:{ resource: type } } = this.$route;\n let paramSchema = schema;\n\n if (type !== schema.id) {\n paramSchema = this.$store.getters['harvester/schemaFor'](type);\n }\n\n return this.$store.getters['type-map/labelFor'](paramSchema, 99);\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <ResourceTable\n v-bind=\"$attrs\"\n :schema=\"schema\"\n :groupable=\"false\"\n :headers=\"headers\"\n :rows=\"[...rows]\"\n :namespaced=\"false\"\n key-field=\"_key\"\n >\n <template #cell:console=\"{row}\">\n <div class=\"console-button\">\n <button\n v-clean-tooltip=\"consoleTooltip(row)\"\n type=\"button\"\n class=\"mr-5 btn btn-sm role-primary\"\n :disabled=\"!row.consoleUrl\"\n @click=\"goto(row)\"\n >\n {{ t('harvester.host.console') }}\n </button>\n <a\n v-if=\"!row.consoleUrl\"\n :href=\"consoleDocLink\"\n target=\"_blank\"\n ><i class=\"icon icon-info\" /></a>\n </div>\n </template>\n </ResourceTable>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n .console-button {\n display: flex;\n }\n</style>\n","import { render } from \"./harvesterhci.io.host.vue?vue&type=template&id=748b0729&scoped=true\"\nimport script from \"./harvesterhci.io.host.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.host.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.host.vue?vue&type=style&index=0&id=748b0729&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-748b0729\"]])\n\nexport default __exports__","<script>\nimport { allHash } from '@shell/utils/promise';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Banner from '@components/Banner/Banner.vue';\nimport MessageLink from '@shell/components/MessageLink';\nimport Loading from '@shell/components/Loading';\nimport { SCHEMA, LOGGING } from '@shell/config/types';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.CLUSTER_FLOW,\n type: SCHEMA,\n attributes: {\n kind: HCI.CLUSTER_FLOW,\n namespaced: true\n },\n metadata: { name: HCI.CLUSTER_FLOW },\n};\n\nconst LOGGING_ID = 'cattle-logging-system/rancher-logging';\n\nexport default {\n name: 'ListApps',\n components: {\n Loading, ResourceTable, Banner, MessageLink\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {};\n\n this.listSchema = this.$store.getters[`${ inStore }/schemaFor`](LOGGING.CLUSTER_FLOW);\n\n if (this.listSchema) {\n _hash.clusteroutput = this.$store.dispatch(`${ inStore }/findAll`, { type: LOGGING.CLUSTER_OUTPUT });\n _hash.rows = this.$store.dispatch(`${ inStore }/findAll`, { type: LOGGING.CLUSTER_FLOW });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS )) {\n _hash.loggingAddon = this.$store.dispatch(`${ inStore }/find`, { type: HCI.ADD_ONS, id: LOGGING_ID });\n }\n\n const hash = await allHash(_hash);\n\n this.rows = hash.rows;\n this.loggingAddon = hash.loggingAddon;\n\n this.$store.dispatch('type-map/configureType', { match: HCI.CLUSTER_FLOW, isCreatable: this.listSchema && this.listSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post') });\n },\n\n data() {\n return {\n rows: [], listSchema: null, loggingAddon: null\n };\n },\n\n computed: {\n schema() {\n return schema;\n },\n\n to() {\n return `${ HCI.ADD_ONS }/cattle-logging-system/rancher-logging?mode=edit#basic`;\n },\n\n loggingEnabled() {\n return this.loggingAddon?.spec?.enabled;\n },\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else-if=\"listSchema\">\n <Banner\n v-if=\"loggingEnabled === false\"\n color=\"info\"\n >\n <MessageLink\n :to=\"to\"\n prefix-label=\"harvester.logging.diabledTips.prefix\"\n middle-label=\"harvester.logging.diabledTips.middle\"\n suffix-label=\"harvester.logging.diabledTips.suffix\"\n />\n </Banner>\n\n <ResourceTable\n :schema=\"schema\"\n :rows=\"rows\"\n :ignore-filter=\"true\"\n :groupable=\"false\"\n />\n </div>\n <Banner\n v-else\n color=\"warning\"\n >\n {{ t('harvester.generic.noSchema', {schema: schema.id}) }}\n </Banner>\n</template>\n","import { render } from \"./harvesterhci.io.logging.clusterflow.vue?vue&type=template&id=46d9dbf2\"\nimport script from \"./harvesterhci.io.logging.clusterflow.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.logging.clusterflow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { allHash } from '@shell/utils/promise';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Banner from '@components/Banner/Banner.vue';\nimport MessageLink from '@shell/components/MessageLink';\nimport Loading from '@shell/components/Loading';\nimport { SCHEMA, LOGGING } from '@shell/config/types';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.CLUSTER_OUTPUT,\n type: SCHEMA,\n attributes: {\n kind: HCI.CLUSTER_OUTPUT,\n namespaced: true\n },\n metadata: { name: HCI.CLUSTER_OUTPUT },\n};\n\nconst LOGGING_ID = 'cattle-logging-system/rancher-logging';\n\nexport default {\n name: 'ListApps',\n components: {\n Loading, ResourceTable, Banner, MessageLink\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {};\n\n this.listSchema = this.$store.getters[`${ inStore }/schemaFor`](LOGGING.CLUSTER_OUTPUT);\n\n if (this.listSchema) {\n _hash.rows = this.$store.dispatch(`${ inStore }/findAll`, { type: LOGGING.CLUSTER_OUTPUT });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS )) {\n _hash.loggingAddon = this.$store.dispatch(`${ inStore }/find`, { type: HCI.ADD_ONS, id: LOGGING_ID });\n }\n\n const hash = await allHash(_hash);\n\n this.rows = hash.rows;\n this.loggingAddon = hash.loggingAddon;\n\n this.$store.dispatch('type-map/configureType', { match: HCI.CLUSTER_OUTPUT, isCreatable: this.listSchema && this.listSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post') });\n },\n\n data() {\n return {\n rows: [], listSchema: null, loggingAddon: null\n };\n },\n\n computed: {\n schema() {\n return schema;\n },\n\n to() {\n return `${ HCI.ADD_ONS }/cattle-logging-system/rancher-logging?mode=edit#basic`;\n },\n\n loggingEnabled() {\n return this.loggingAddon?.spec?.enabled;\n },\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else-if=\"listSchema\">\n <Banner\n v-if=\"loggingEnabled === false\"\n color=\"info\"\n >\n <MessageLink\n :to=\"to\"\n prefix-label=\"harvester.logging.diabledTips.prefix\"\n middle-label=\"harvester.logging.diabledTips.middle\"\n suffix-label=\"harvester.logging.diabledTips.suffix\"\n />\n </Banner>\n\n <ResourceTable\n :schema=\"schema\"\n :rows=\"rows\"\n :ignore-filter=\"true\"\n :groupable=\"false\"\n />\n </div>\n <Banner\n v-else\n color=\"warning\"\n >\n {{ t('harvester.generic.noSchema', {schema: schema.id}) }}\n </Banner>\n</template>\n","import { render } from \"./harvesterhci.io.logging.clusteroutput.vue?vue&type=template&id=4f7cfadc\"\nimport script from \"./harvesterhci.io.logging.clusteroutput.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.logging.clusteroutput.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { allHash } from '@shell/utils/promise';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Banner from '@components/Banner/Banner.vue';\nimport MessageLink from '@shell/components/MessageLink';\nimport Loading from '@shell/components/Loading';\nimport { SCHEMA, LOGGING } from '@shell/config/types';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.FLOW,\n type: SCHEMA,\n attributes: {\n kind: HCI.FLOW,\n namespaced: true\n },\n metadata: { name: HCI.FLOW },\n};\n\nconst LOGGING_ID = 'cattle-logging-system/rancher-logging';\n\nexport default {\n name: 'ListApps',\n components: {\n Loading, ResourceTable, Banner, MessageLink\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {};\n\n this.listSchema = this.$store.getters[`${ inStore }/schemaFor`](LOGGING.FLOW);\n this.clusteroutputSchema = this.$store.getters[`${ inStore }/schemaFor`](LOGGING.CLUSTER_OUTPUT);\n\n if (this.listSchema) {\n _hash.output = this.$store.dispatch(`${ inStore }/findAll`, { type: LOGGING.OUTPUT });\n _hash.rows = this.$store.dispatch(`${ inStore }/findAll`, { type: LOGGING.FLOW });\n }\n\n if (this.clusteroutputSchema) {\n _hash.clusteroutput = this.$store.dispatch(`${ inStore }/findAll`, { type: LOGGING.CLUSTER_OUTPUT });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS )) {\n _hash.loggingAddon = this.$store.dispatch(`${ inStore }/find`, { type: HCI.ADD_ONS, id: LOGGING_ID });\n }\n\n const hash = await allHash(_hash);\n\n this.rows = hash.rows;\n this.loggingAddon = hash.loggingAddon;\n\n this.$store.dispatch('type-map/configureType', { match: HCI.FLOW, isCreatable: this.listSchema && this.listSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post') });\n },\n\n data() {\n return {\n rows: [], listSchema: null, loggingAddon: null\n };\n },\n\n computed: {\n schema() {\n return schema;\n },\n\n to() {\n return `${ HCI.ADD_ONS }/cattle-logging-system/rancher-logging?mode=edit#basic`;\n },\n\n loggingEnabled() {\n return this.loggingAddon?.spec?.enabled;\n },\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else-if=\"listSchema\">\n <Banner\n v-if=\"loggingEnabled === false\"\n color=\"info\"\n >\n <MessageLink\n :to=\"to\"\n prefix-label=\"harvester.logging.diabledTips.prefix\"\n middle-label=\"harvester.logging.diabledTips.middle\"\n suffix-label=\"harvester.logging.diabledTips.suffix\"\n />\n </Banner>\n\n <ResourceTable\n :schema=\"schema\"\n :rows=\"rows\"\n :ignore-filter=\"true\"\n :groupable=\"false\"\n />\n </div>\n <Banner\n v-else\n color=\"warning\"\n >\n {{ t('harvester.generic.noSchema', {schema: schema.id}) }}\n </Banner>\n</template>\n","import { render } from \"./harvesterhci.io.logging.flow.vue?vue&type=template&id=954fcad0\"\nimport script from \"./harvesterhci.io.logging.flow.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.logging.flow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { allHash } from '@shell/utils/promise';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Banner from '@components/Banner/Banner.vue';\nimport MessageLink from '@shell/components/MessageLink';\nimport Loading from '@shell/components/Loading';\nimport { SCHEMA, LOGGING } from '@shell/config/types';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.OUTPUT,\n type: SCHEMA,\n attributes: {\n kind: HCI.OUTPUT,\n namespaced: true\n },\n metadata: { name: HCI.OUTPUT },\n};\n\nconst LOGGING_ID = 'cattle-logging-system/rancher-logging';\n\nexport default {\n name: 'ListApps',\n components: {\n Loading, ResourceTable, Banner, MessageLink\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {};\n\n this.listSchema = this.$store.getters[`${ inStore }/schemaFor`](LOGGING.OUTPUT);\n\n if (this.listSchema) {\n _hash.rows = this.$store.dispatch(`${ inStore }/findAll`, { type: LOGGING.OUTPUT });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS )) {\n _hash.loggingAddon = this.$store.dispatch(`${ inStore }/find`, { type: HCI.ADD_ONS, id: LOGGING_ID });\n }\n\n const hash = await allHash(_hash);\n\n this.rows = hash.rows;\n this.loggingAddon = hash.loggingAddon;\n\n this.$store.dispatch('type-map/configureType', { match: HCI.OUTPUT, isCreatable: this.listSchema && this.listSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post') });\n },\n\n data() {\n return {\n rows: [], listSchema: null, loggingAddon: null\n };\n },\n\n computed: {\n schema() {\n return schema;\n },\n\n to() {\n return `${ HCI.ADD_ONS }/cattle-logging-system/rancher-logging?mode=edit#basic`;\n },\n\n loggingEnabled() {\n return this.loggingAddon?.spec?.enabled;\n },\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else-if=\"listSchema\">\n <Banner\n v-if=\"loggingEnabled === false\"\n color=\"info\"\n >\n <MessageLink\n :to=\"to\"\n prefix-label=\"harvester.logging.diabledTips.prefix\"\n middle-label=\"harvester.logging.diabledTips.middle\"\n suffix-label=\"harvester.logging.diabledTips.suffix\"\n />\n </Banner>\n\n <ResourceTable\n :schema=\"schema\"\n :rows=\"rows\"\n :ignore-filter=\"true\"\n :groupable=\"false\"\n />\n </div>\n <Banner\n v-else\n color=\"warning\"\n >\n {{ t('harvester.generic.noSchema', {schema: schema.id}) }}\n </Banner>\n</template>\n","import { render } from \"./harvesterhci.io.logging.output.vue?vue&type=template&id=274c41c6\"\nimport script from \"./harvesterhci.io.logging.output.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.logging.output.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport jsyaml from 'js-yaml';\nimport { allHash } from '@shell/utils/promise';\nimport { Banner } from '@components/Banner';\nimport MessageLink from '@shell/components/MessageLink';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Loading from '@shell/components/Loading';\n\nimport { SCHEMA, MONITORING } from '@shell/config/types';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.ALERTMANAGERCONFIG,\n type: SCHEMA,\n attributes: {\n kind: HCI.ALERTMANAGERCONFIG,\n namespaced: true\n },\n metadata: { name: HCI.ALERTMANAGERCONFIG },\n};\n\nconst MONITORING_ID = 'cattle-monitoring-system/rancher-monitoring';\n\nexport default {\n name: 'ListAlertManagerConfigs',\n components: {\n Banner, Loading, ResourceTable, MessageLink\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = { rows: this.$store.dispatch(`${ inStore }/findAll`, { type: MONITORING.ALERTMANAGERCONFIG }) };\n\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.ADD_ONS )) {\n _hash.monitoring = this.$store.dispatch(`${ inStore }/find`, { type: HCI.ADD_ONS, id: MONITORING_ID });\n }\n\n const hash = await allHash(_hash);\n\n this.rows = hash.rows;\n this.monitoringAddon = hash.monitoring;\n\n const configSchema = this.$store.getters[`${ inStore }/schemaFor`](MONITORING.ALERTMANAGERCONFIG);\n\n this.$store.dispatch('type-map/configureType', { match: HCI.ALERTMANAGERCONFIG, isCreatable: configSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post') });\n },\n\n data() {\n return { rows: null, monitoringAddon: null };\n },\n\n computed: {\n schema() {\n return schema;\n },\n\n to() {\n return `${ HCI.ADD_ONS }/cattle-monitoring-system/rancher-monitoring?mode=edit#alertmanager`;\n },\n\n monitoringEnabled() {\n return this.monitoringAddon?.spec?.enabled;\n },\n\n alertingEnabled() {\n const valueJson = jsyaml.load(this.monitoringAddon?.spec?.valuesContent);\n\n return valueJson?.alertmanager?.enabled;\n },\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <Banner\n v-if=\"monitoringEnabled === false\"\n color=\"info\"\n >\n <MessageLink\n :to=\"to\"\n prefix-label=\"harvester.monitoring.alertmanagerConfig.diabledMonitoringTips.prefix\"\n middle-label=\"harvester.monitoring.alertmanagerConfig.diabledMonitoringTips.middle\"\n suffix-label=\"harvester.monitoring.alertmanagerConfig.diabledMonitoringTips.suffix\"\n />\n </Banner>\n <Banner\n v-if=\"alertingEnabled === false\"\n color=\"info\"\n >\n <MessageLink\n :to=\"to\"\n prefix-label=\"harvester.monitoring.alertmanagerConfig.diabledAlertingTips.prefix\"\n middle-label=\"harvester.monitoring.alertmanagerConfig.diabledAlertingTips.middle\"\n suffix-label=\"harvester.monitoring.alertmanagerConfig.diabledAlertingTips.suffix\"\n />\n </Banner>\n <Banner color=\"info\">\n {{ t('monitoring.alertmanagerConfig.description') }}\n </Banner>\n <ResourceTable\n v-bind=\"$attrs\"\n :groupable=\"true\"\n :schema=\"schema\"\n :rows=\"rows\"\n key-field=\"_key\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.empty {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n margin-top: 6em;\n min-height: 100%;\n}\n\ni {\n font-size: 10em;\n opacity: 50%;\n margin: 0;\n}\n\nh2 {\n margin: 0;\n}\n\nh3 {\n margin-top: 2em;\n}\n\n</style>\n","import { render } from \"./harvesterhci.io.monitoring.alertmanagerconfig.vue?vue&type=template&id=a0eea6e4&scoped=true\"\nimport script from \"./harvesterhci.io.monitoring.alertmanagerconfig.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.monitoring.alertmanagerconfig.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.monitoring.alertmanagerconfig.vue?vue&type=style&index=0&id=a0eea6e4&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a0eea6e4\"]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport Masthead from '@shell/components/ResourceList/Masthead';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { HCI } from '../types';\nimport { allSettled } from '../utils/promise';\nimport { STATE, AGE, NAME, NAMESPACE } from '@shell/config/table-headers';\nimport { VM_SCHEDULE_CRON, VM_SCHEDULE_RETAIN, VM_SCHEDULE_TYPE, VM_SCHEDULE_MAX_FAILURE } from '../config/table-headers';\nimport { BACKUP_TYPE } from '../config/types';\n\nexport default {\n name: 'HarvesterListSchedule',\n components: {\n ResourceTable, Loading, Masthead,\n },\n\n props: {\n schema: {\n type: Object,\n required: true,\n }\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hash = await allSettled({\n vms: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM }),\n rows: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SCHEDULE_VM_BACKUP }),\n });\n\n this.rows = hash.rows;\n },\n\n data() {\n const params = { ...this.$route.params };\n const resource = params.resource;\n\n return {\n rows: [],\n settings: [],\n resource,\n to: `${ HCI.SETTING }/backup-target?mode=edit`,\n };\n },\n\n computed: {\n headers() {\n const cols = [\n STATE,\n NAME,\n NAMESPACE,\n {\n name: 'sourceVm',\n labelKey: 'harvester.tableHeaders.sourceVm',\n value: 'spec.vmbackup.source.name',\n sort: 'sourceVm',\n align: 'center',\n formatter: 'AttachVMWithName'\n },\n VM_SCHEDULE_TYPE,\n VM_SCHEDULE_CRON,\n VM_SCHEDULE_RETAIN,\n VM_SCHEDULE_MAX_FAILURE,\n AGE,\n ];\n\n return cols;\n },\n\n filteredRows() {\n return this.rows.filter((R) => R.spec?.type !== BACKUP_TYPE.SNAPSHOT);\n },\n\n typeDisplay() {\n return this.t('harvester.schedule.label');\n }\n },\n\n methods: {\n getRow(row) {\n return row.spec?.vmbackup?.source?.name;\n }\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <Masthead\n :schema=\"schema\"\n :resource=\"resource\"\n :type-display=\"typeDisplay\"\n :parent-name-override=\"'Virtual Machine schedule'\"\n :create-button-label=\"t('harvester.schedule.createButtonText')\"\n />\n <ResourceTable\n v-bind=\"$attrs\"\n :headers=\"headers\"\n :groupable=\"true\"\n :rows=\"filteredRows\"\n :schema=\"schema\"\n key-field=\"_key\"\n default-sort-by=\"age\"\n >\n <template #col:name=\"{row}\">\n <td>\n <span>\n <router-link\n v-if=\"getRow(row)\"\n :to=\"row.detailLocation\"\n >\n {{ row.nameDisplay }}\n </router-link>\n <span v-else>\n {{ row.nameDisplay }}\n </span>\n </span>\n </td>\n </template>\n </ResourceTable>\n </div>\n</template>\n","import { render } from \"./harvesterhci.io.schedulevmbackup.vue?vue&type=template&id=eb345246\"\nimport script from \"./harvesterhci.io.schedulevmbackup.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.schedulevmbackup.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Loading from '@shell/components/Loading';\nimport { SECRET, SCHEMA } from '@shell/config/types';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.SECRET,\n type: SCHEMA,\n attributes: {\n kind: HCI.SECRET,\n namespaced: true\n },\n metadata: { name: HCI.SECRET },\n};\n\nexport default {\n name: 'HarvesterSecret',\n components: { ResourceTable, Loading },\n inheritAttrs: false,\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n this.rows = await this.$store.dispatch(`${ inStore }/findAll`, { type: SECRET });\n\n const configSchema = this.$store.getters[`${ inStore }/schemaFor`](SECRET);\n\n if (!configSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post')) {\n this.$store.dispatch('type-map/configureType', { match: HCI.SECRET, isCreatable: false });\n }\n },\n\n data() {\n return { rows: [] };\n },\n\n computed: {\n schema() {\n return schema;\n }\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <ResourceTable\n v-else\n v-bind=\"$attrs\"\n :groupable=\"true\"\n :schema=\"schema\"\n :rows=\"rows\"\n key-field=\"_key\"\n />\n</template>\n","import { render } from \"./harvesterhci.io.secret.vue?vue&type=template&id=0b3a4d30\"\nimport script from \"./harvesterhci.io.secret.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.secret.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { mapGetters } from 'vuex';\nimport { Banner } from '@components/Banner';\nimport Loading from '@shell/components/Loading';\nimport { VIEW_IN_API, DEV } from '@shell/store/prefs';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport Tabbed from '@shell/components/Tabbed/index.vue';\nimport Tab from '@shell/components/Tabbed/Tab.vue';\nimport Settings from '@pkg/harvester/components/SettingList.vue';\nimport { HCI_ALLOWED_SETTINGS, HCI_SINGLE_CLUSTER_ALLOWED_SETTING } from '../config/settings';\nimport { HCI } from '../types';\n\nexport default {\n components: {\n Banner,\n Loading,\n Tabbed,\n Tab,\n Settings,\n },\n\n async fetch() {\n let isDev;\n\n try {\n isDev = this.$store.getters['prefs/get'](VIEW_IN_API);\n } catch {\n isDev = this.$store.getters['prefs/get'](DEV);\n }\n\n const isSingleProduct = !!this.$store.getters['isSingleProduct'];\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const hash = { harvesterSettings: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SETTING }) };\n\n if (isSingleProduct) {\n hash.settings = this.$store.dispatch('management/findAll', { type: MANAGEMENT.SETTING });\n }\n\n const rows = await allHash(hash);\n\n let allRows = [];\n\n allRows.push(...rows.harvesterSettings);\n\n if (isSingleProduct) {\n allRows = [...rows.settings, ...allRows];\n }\n\n // Map settings from array to object keyed by id\n const settingsMap = allRows.reduce((res, s) => {\n res[s.id] = s;\n\n return res;\n }, {});\n\n const initSettings = [];\n let SETTINGS = HCI_ALLOWED_SETTINGS;\n\n if (this.isStandaloneHarvester) {\n SETTINGS = {\n ...SETTINGS,\n ...HCI_SINGLE_CLUSTER_ALLOWED_SETTING,\n };\n }\n\n Object.keys(SETTINGS).forEach((setting) => {\n if (!settingsMap[setting]) {\n return;\n }\n const realSetting = SETTINGS[setting]?.alias || setting;\n const s = {\n ...SETTINGS[setting],\n id: realSetting,\n data: settingsMap[setting],\n };\n\n s.hide = s.canHide = (s.kind === 'json' || s.kind === 'multiline' || s.customFormatter === 'json' || s.data.customFormatter === 'json');\n s.hasActions = !s.readOnly || isDev;\n initSettings.push(s);\n });\n\n this.initSettings = initSettings.sort((a, b) => {\n if (a.id < b.id) {\n return -1;\n }\n if (a.id > b.id) {\n return 1;\n }\n\n return 0;\n });\n },\n\n data() {\n return { initSettings: [] };\n },\n\n computed: {\n ...mapGetters({ t: 'i18n/t' }),\n ...mapGetters(['isStandaloneHarvester']),\n\n settings() {\n return this.initSettings.map((setting) => {\n const s = setting;\n\n const isHarvester = s.data?.type?.includes('harvesterhci');\n\n if (s.kind === 'json') {\n try {\n s.json = JSON.stringify(JSON.parse(s.data.value || s.data.default || '{}'), null, 2);\n } catch (e) {\n console.error(`${ s.data.id }: wrong format`); // eslint-disable-line no-console\n s.json = {};\n }\n } else if (s.kind === 'enum') {\n const v = s.data.value || s.data.default;\n\n s.enum = isHarvester ? `advancedSettings.enum.harv-${ s.id }.${ v }` : `advancedSettings.enum.${ s.id }.${ v }`;\n } else if (s.kind === 'custom') {\n s.custom = s.data.customValue;\n }\n\n return {\n ...s,\n description: isHarvester ? `advancedSettings.descriptions.harv-${ s.id }` : `advancedSettings.descriptions.${ s.id }`,\n customized: (!s.readOnly && s.data.value && s.data.value !== s.data.default) || s.data.hasCustomized\n };\n });\n }\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <Banner\n color=\"warning\"\n class=\"settings-banner\"\n >\n <div>\n {{ t('harvester.setting.modifiedMessage') }}\n </div>\n </Banner>\n\n <Tabbed\n class=\"mt-30\"\n >\n <Tab\n name=\"advanced\"\n :label=\"t('harvester.setting.tabs.advanced')\"\n :weight=\"99\"\n >\n <Settings\n :settings=\"settings\"\n category=\"advanced\"\n />\n </Tab>\n <Tab\n name=\"ui\"\n :label=\"t('harvester.setting.tabs.ui')\"\n :weight=\"89\"\n >\n <Settings\n :settings=\"settings\"\n category=\"ui\"\n />\n </Tab>\n </Tabbed>\n </div>\n</template>\n\n<style lang='scss' scoped>\n.settings-banner {\n margin-top: 0;\n}\n</style>\n","<script>\nimport { mapGetters } from 'vuex';\nimport { Banner } from '@components/Banner';\nimport AsyncButton from '@shell/components/AsyncButton';\nimport { HCI_ALLOWED_SETTINGS, HCI_SETTING } from '../config/settings';\n\nconst CATEGORY = {\n ui: [\n 'branding',\n 'ui-source',\n 'ui-plugin-index',\n 'ui-index',\n ]\n};\n\nexport default {\n name: 'SettingLists',\n\n components: {\n AsyncButton,\n Banner,\n },\n\n props: {\n settings: {\n type: Array,\n required: true,\n },\n\n category: {\n type: String,\n required: true,\n }\n },\n\n data() {\n const categorySettings = this.filterCategorySettings();\n\n return {\n HCI_SETTING,\n categorySettings,\n };\n },\n\n computed: { ...mapGetters({ t: 'i18n/t' }) },\n\n watch: {\n settings: {\n deep: true,\n handler() {\n this['categorySettings'] = this.filterCategorySettings();\n }\n }\n },\n\n methods: {\n filterCategorySettings() {\n return this.settings.filter((s) => {\n if (!this.getFeatureEnabled(s.featureFlag)) {\n return false;\n }\n\n if (this.category !== 'advanced') {\n return (CATEGORY[this.category] || []).find((item) => item === s.id);\n } else if (this.category === 'advanced') {\n const allCategory = Object.keys(CATEGORY);\n\n return !allCategory.some((category) => (CATEGORY[category] || []).find((item) => item === s.id));\n }\n }) || [];\n },\n\n getFeatureEnabled(id) {\n return id ? this.$store.getters['harvester-common/getFeatureEnabled'](id) : true;\n },\n\n showActionMenu(e, setting) {\n const actionElement = e.srcElement;\n\n this.$store.commit(`action-menu/show`, {\n resources: setting.data,\n elem: actionElement\n });\n },\n\n getSettingOption(id) {\n return HCI_ALLOWED_SETTINGS.find((setting) => setting.id === id);\n },\n\n toggleHide(s) {\n this.categorySettings.find((setting) => {\n if (setting.id === s.id) {\n setting.hide = !setting.hide;\n }\n });\n },\n\n async testConnect(buttonDone, value) {\n try {\n const url = this.$store.getters['harvester-common/getHarvesterClusterUrl']('v1/harvester/backuptarget/healthz');\n\n const health = await this.$store.dispatch('harvester/request', { url });\n const settingValue = JSON.parse(value);\n\n if (health?._status === 200) {\n this.$store.dispatch('growl/success', {\n title: this.t('harvester.notification.title.succeed'),\n message: this.t('harvester.backup.message.testConnect.successMessage', { endpoint: settingValue?.endpoint })\n }, { root: true });\n }\n buttonDone(true);\n } catch (err) {\n if (err?._status === 400 || err?._status === 503) {\n this.$store.dispatch('growl/error', {\n title: this.t('harvester.notification.title.error'),\n message: err?.errors[0]\n }, { root: true });\n }\n buttonDone(false);\n }\n }\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-for=\"(setting, i) in categorySettings\"\n :key=\"i\"\n class=\"advanced-setting mb-20\"\n >\n <div class=\"header\">\n <div class=\"title\">\n <h1>\n {{ setting.id }}\n <span\n v-if=\"setting.customized\"\n class=\"modified\"\n >\n Modified\n </span>\n <span\n v-if=\"setting.experimental\"\n v-clean-tooltip=\"t('advancedSettings.experimental')\"\n class=\"experimental\"\n >\n Experimental\n </span>\n </h1>\n <h2 v-clean-html=\"t(setting.description, {}, true)\">\n </h2>\n </div>\n <div\n v-if=\"setting.hasActions\"\n :id=\"setting.id\"\n class=\"action\"\n >\n <button\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n type=\"button\"\n class=\"btn btn-sm role-multi-action actions\"\n @click=\"showActionMenu($event, setting)\"\n >\n <i class=\"icon icon-actions\" />\n </button>\n </div>\n </div>\n <div value>\n <div\n v-if=\"!setting.hide\"\n class=\"settings-value\"\n >\n <pre v-if=\"setting.kind === 'json'\">{{ setting.json }}</pre>\n <pre v-else-if=\"setting.kind === 'multiline'\">{{ setting.data.value || setting.data.default }}</pre>\n <pre v-else-if=\"setting.kind === 'enum'\">{{ t(setting.enum) }}</pre>\n <pre v-else-if=\"setting.kind === 'custom' && setting.custom\">{{ setting.custom }}</pre>\n <pre v-else-if=\"setting.data.value || setting.data.default\">{{ setting.data.value || setting.data.default }}</pre>\n <pre\n v-else\n class=\"text-muted\"\n ><{{ t('advancedSettings.none') }}></pre>\n </div>\n\n <div class=\"mt-5\">\n <button\n v-if=\"setting.hide\"\n class=\"btn btn-sm role-primary\"\n @click=\"toggleHide(setting)\"\n >\n {{ t('advancedSettings.show') }} {{ setting.id }}\n </button>\n\n <button\n v-if=\"setting.canHide && !setting.hide\"\n class=\"btn btn-sm role-primary\"\n @click=\"toggleHide(setting)\"\n >\n {{ t('advancedSettings.hide') }} {{ setting.id }}\n </button>\n\n <AsyncButton\n v-if=\"setting.id === HCI_SETTING.BACKUP_TARGET\"\n class=\"backupButton ml-5\"\n mode=\"apply\"\n size=\"sm\"\n :delay=\"0\"\n :action-label=\"t('harvester.backup.message.testConnect.actionLabel')\"\n :waiting-label=\"t('harvester.backup.message.testConnect.waitingLabel')\"\n :success-label=\"t('harvester.backup.message.testConnect.successLabel')\"\n @click=\"(buttonCb) => testConnect(buttonCb, setting.data.value)\"\n />\n </div>\n </div>\n <Banner\n v-if=\"setting.data.errMessage\"\n color=\"error mt-5\"\n class=\"settings-banner\"\n >\n {{ setting.data.errMessage }}\n </Banner>\n </div>\n </div>\n</template>\n\n<style lang='scss' scoped>\n.settings-banner {\n margin-top: 0;\n}\n.advanced-setting {\n border: 1px solid var(--border);\n padding: 20px;\n border-radius: var(--border-radius);\n\n h1 {\n font-size: 14px;\n }\n h2 {\n font-size: 12px;\n margin-bottom: 0;\n opacity: 0.8;\n }\n}\n\n.settings-value pre {\n margin: 0;\n}\n\n.header {\n display: flex;\n margin-bottom: 20px;\n}\n\n.title {\n flex: 1;\n}\n\n.modified {\n margin-left: 10px;\n border: 1px solid var(--primary);\n border-radius: 5px;\n padding: 2px 10px;\n font-size: 12px;\n}\n\n.experimental {\n margin-left: 10px;\n border: 1px solid var(--error);\n border-radius: 5px;\n padding: 2px 10px;\n font-size: 12px;\n}\n</style>\n","import { render } from \"./SettingList.vue?vue&type=template&id=5b7931f6&scoped=true\"\nimport script from \"./SettingList.vue?vue&type=script&lang=js\"\nexport * from \"./SettingList.vue?vue&type=script&lang=js\"\n\nimport \"./SettingList.vue?vue&type=style&index=0&id=5b7931f6&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5b7931f6\"]])\n\nexport default __exports__","import { render } from \"./harvesterhci.io.setting.vue?vue&type=template&id=3fea1646&scoped=true\"\nimport script from \"./harvesterhci.io.setting.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.setting.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.setting.vue?vue&type=style&index=0&id=3fea1646&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3fea1646\"]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport ResourceTable from '@shell/components/ResourceTable';\n\nimport { allHash } from '@shell/utils/promise';\nimport { SCHEMA, STORAGE_CLASS } from '@shell/config/types';\nimport {\n STATE, AGE, NAME, STORAGE_CLASS_PROVISIONER, STORAGE_CLASS_DEFAULT\n} from '@shell/config/table-headers';\nimport { HCI } from '../types';\n\nconst schema = {\n id: HCI.STORAGE,\n type: SCHEMA,\n attributes: {\n kind: HCI.STORAGE,\n namespaced: false\n },\n metadata: { name: HCI.STORAGE },\n};\n\nexport default {\n name: 'ListHarvesterStorages',\n\n components: {\n ResourceTable,\n Loading,\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n await allHash({ storages: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }) });\n\n const storageSchema = this.$store.getters[`${ inStore }/schemaFor`](STORAGE_CLASS);\n\n if ( storageSchema && !storageSchema?.collectionMethods.find((x) => ['blocked-post', 'post'].includes(x.toLowerCase())) ) {\n this.$store.dispatch('type-map/configureType', { match: HCI.STORAGE, isCreatable: false });\n }\n },\n\n data() {\n return { schema };\n },\n\n computed: {\n rows() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const storages = this.$store.getters[`${ inStore }/all`](STORAGE_CLASS);\n\n return storages.filter((s) => !s.parameters?.backingImage);\n },\n\n headers() {\n return [\n STATE,\n NAME,\n STORAGE_CLASS_PROVISIONER,\n STORAGE_CLASS_DEFAULT,\n {\n name: 'numberOfReplicas',\n labelKey: 'harvester.storage.numberOfReplicas.label',\n value: 'parameters.numberOfReplicas',\n sort: ['parameters.numberOfReplicas'],\n align: 'center'\n },\n AGE,\n ];\n },\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n },\n};\n</script>\n\n<template>\n <div>\n <Loading v-if=\"$fetchState.pending\" />\n <ResourceTable\n :rows=\"rows\"\n :schema=\"schema\"\n :headers=\"headers\"\n />\n </div>\n</template>\n","import { render } from \"./harvesterhci.io.storage.vue?vue&type=template&id=ddda4582\"\nimport script from \"./harvesterhci.io.storage.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.storage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport { Banner } from '@components/Banner';\nimport Loading from '@shell/components/Loading';\nimport MessageLink from '@shell/components/MessageLink';\nimport Masthead from '@shell/components/ResourceList/Masthead';\nimport ResourceTable from '@shell/components/ResourceTable';\n\nimport { STATE, AGE, NAME, NAMESPACE } from '@shell/config/table-headers';\nimport FilterVMSchedule from '../components/FilterVMSchedule';\nimport { HCI } from '../types';\nimport { allSettled } from '../utils/promise';\nimport { BACKUP_TYPE } from '../config/types';\nimport { defaultTableSortGenerationFn } from '@shell/components/ResourceTable.vue';\n\nexport default {\n name: 'HarvesterListBackup',\n components: {\n ResourceTable, Banner, Loading, Masthead, MessageLink, FilterVMSchedule\n },\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hash = await allSettled({\n vms: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM }),\n settings: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SETTING }),\n backups: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.BACKUP }),\n scheduleList: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.SCHEDULE_VM_BACKUP }),\n });\n\n this.backups = hash.backups;\n this.rows = hash.backups;\n this.settings = hash.settings;\n if (this.$store.getters[`${ inStore }/schemaFor`](HCI.SETTING)) {\n const backupTargetResource = hash.settings.find( (O) => O.id === 'backup-target');\n const isEmpty = this.getBackupTargetValueIsEmpty(backupTargetResource);\n\n if (backupTargetResource && !isEmpty) {\n this.testConnect();\n }\n }\n },\n\n data() {\n const params = { ...this.$route.params };\n\n const resource = params.resource;\n\n return {\n rows: [],\n backups: [],\n settings: [],\n resource,\n to: `${ HCI.SETTING }/backup-target?mode=edit`,\n searchSchedule: ''\n };\n },\n\n methods: {\n async testConnect() {\n try {\n const url = this.$store.getters['harvester-common/getHarvesterClusterUrl']('v1/harvester/backuptarget/healthz');\n\n await this.$store.dispatch('harvester/request', { url });\n } catch (err) {\n if (err?._status === 400 || err?._status === 503) {\n this.$store.dispatch('growl/error', {\n title: this.t('harvester.notification.title.error'),\n message: err.errors[0]\n }, { root: true });\n }\n }\n },\n\n getBackupTargetValueIsEmpty(resource) {\n let out = true;\n\n if (resource?.value) {\n try {\n const valueJson = JSON.parse(resource?.value);\n\n out = !valueJson.type;\n } catch (e) {}\n }\n\n return out;\n },\n\n getRow(row) {\n return row.status && row.status.source;\n },\n\n changeRows(filteredRows, searchSchedule) {\n this['searchSchedule'] = searchSchedule;\n this['backups'] = filteredRows;\n },\n\n sortGenerationFn() {\n let base = defaultTableSortGenerationFn(this.schema, this.$store);\n\n base += this.searchSchedule;\n\n return base;\n },\n\n },\n\n computed: {\n headers() {\n const cols = [\n STATE,\n NAME,\n NAMESPACE,\n {\n name: 'targetVM',\n labelKey: 'harvester.tableHeaders.targetVm',\n value: 'attachVM',\n align: 'left',\n formatter: 'AttachVMWithName'\n },\n ];\n\n if (this.schedulingVMBackupFeatureEnabled) {\n cols.push({\n name: 'backupCreatedFrom',\n labelKey: 'harvester.tableHeaders.vmSchedule',\n value: 'sourceSchedule',\n formatter: 'BackupCreatedFrom',\n });\n }\n\n cols.push(...[\n {\n name: 'backupTarget',\n labelKey: 'tableHeaders.backupTarget',\n value: 'backupTarget',\n align: 'left',\n formatter: 'HarvesterBackupTargetValidation'\n },\n {\n name: 'readyToUse',\n labelKey: 'tableHeaders.readyToUse',\n value: 'status.readyToUse',\n align: 'center',\n formatter: 'Checked',\n },\n ]);\n\n if (this.hasBackupProgresses) {\n cols.push({\n name: 'backupProgress',\n labelKey: 'tableHeaders.progress',\n value: 'backupProgress',\n align: 'left',\n formatter: 'HarvesterBackupProgressBar',\n });\n }\n\n cols.push(AGE);\n\n return cols;\n },\n\n schedulingVMBackupFeatureEnabled() {\n return this.$store.getters['harvester-common/getFeatureEnabled']('schedulingVMBackup');\n },\n\n hasBackupProgresses() {\n return !!this.backups.find((r) => r.status?.progress !== undefined);\n },\n filteredRows() {\n return this.backups.filter((r) => r.spec?.type !== BACKUP_TYPE.SNAPSHOT);\n },\n getRawRows() {\n return this.rows.filter((r) => r.spec?.type === BACKUP_TYPE.BACKUP);\n },\n backupTargetResource() {\n return this.settings.find((O) => O.id === 'backup-target');\n },\n\n isEmptyValue() {\n return this.getBackupTargetValueIsEmpty(this.backupTargetResource);\n },\n\n canUpdate() {\n return this?.backupTargetResource?.canUpdate;\n },\n\n errorMessage() {\n return this.backupTargetResource?.errMessage;\n },\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <Masthead\n :schema=\"schema\"\n :resource=\"resource\"\n :create-button-label=\"t('harvester.backup.createText')\"\n />\n\n <Banner\n v-if=\"(errorMessage || isEmptyValue) && canUpdate\"\n color=\"error\"\n >\n <MessageLink\n v-if=\"isEmptyValue\"\n :to=\"to\"\n prefix-label=\"harvester.backup.message.noSetting.prefix\"\n middle-label=\"harvester.backup.message.noSetting.middle\"\n suffix-label=\"harvester.backup.message.noSetting.suffix\"\n />\n\n <MessageLink\n v-else\n :to=\"to\"\n prefix-label=\"harvester.backup.message.errorTip.prefix\"\n middle-label=\"harvester.backup.message.errorTip.middle\"\n >\n <template #suffix>\n {{ t('harvester.backup.message.errorTip.suffix') }} {{ errorMessage }}\n </template>\n </MessageLink>\n </Banner>\n\n <div v-else-if=\"canUpdate\">\n <Banner\n color=\"info\"\n >\n <MessageLink\n :to=\"to\"\n prefix-label=\"harvester.backup.message.viewSetting.prefix\"\n middle-label=\"harvester.backup.message.viewSetting.middle\"\n suffix-label=\"harvester.backup.message.viewSetting.suffix\"\n />\n </Banner>\n </div>\n\n <ResourceTable\n v-bind=\"$attrs\"\n :headers=\"headers\"\n :groupable=\"true\"\n :rows=\"filteredRows\"\n :sort-generation-fn=\"sortGenerationFn\"\n :schema=\"schema\"\n key-field=\"_key\"\n default-sort-by=\"age\"\n >\n <template\n v-if=\"schedulingVMBackupFeatureEnabled\"\n #more-header-middle\n >\n <FilterVMSchedule\n :rows=\"getRawRows\"\n @change-rows=\"changeRows\"\n />\n </template>\n <template #col:name=\"{row}\">\n <td>\n <span>\n <router-link\n v-if=\"getRow(row)\"\n :to=\"row.detailLocation\"\n >\n {{ row.nameDisplay }}\n </router-link>\n <span v-else>\n {{ row.nameDisplay }}\n </span>\n </span>\n </td>\n </template>\n </ResourceTable>\n </div>\n</template>\n","import { render } from \"./harvesterhci.io.virtualmachinebackup.vue?vue&type=template&id=c2837234\"\nimport script from \"./harvesterhci.io.virtualmachinebackup.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.virtualmachinebackup.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport { Banner } from '@components/Banner';\nimport { defaultTableSortGenerationFn } from '@shell/components/ResourceTable.vue';\nimport FilterLabel from '../components/FilterLabel';\n\nexport default {\n name: 'ListHarvesterImage',\n\n components: {\n ResourceTable,\n Banner,\n FilterLabel\n },\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n rows: {\n type: Array,\n required: true,\n },\n },\n\n data() {\n return {\n searchLabels: [],\n filterRows: []\n };\n },\n\n computed: {\n uploadingImages() {\n return this.$store.getters['harvester-common/uploadingImages'] || [];\n },\n },\n\n methods: {\n changeRows(filterRows, searchLabels) {\n this['filterRows'] = filterRows;\n this['searchLabels'] = searchLabels;\n },\n\n sortGenerationFn() {\n let base = defaultTableSortGenerationFn(this.schema, this.$store);\n\n this.searchLabels.map((label) => {\n base += label.key;\n base += label.value;\n });\n\n return base;\n },\n }\n};\n</script>\n\n<template>\n <div>\n <Banner\n v-if=\"uploadingImages.length > 0\"\n color=\"warning\"\n :label=\"t('harvester.image.warning.uploading', {count: uploadingImages.length} )\"\n />\n <ResourceTable\n v-bind=\"$attrs\"\n :rows=\"filterRows\"\n :schema=\"schema\"\n :sort-generation-fn=\"sortGenerationFn\"\n key-field=\"_key\"\n >\n <template #more-header-middle>\n <FilterLabel\n ref=\"filterLabel\"\n :rows=\"rows\"\n @changeRows=\"changeRows\"\n />\n </template>\n <template #col:name=\"{row}\">\n <td>\n <span>\n <router-link\n v-if=\"row?.detailLocation\"\n :to=\"row.detailLocation\"\n >\n {{ row.nameDisplay }}\n <i\n v-if=\"row.isEncrypted\"\n class=\"icon icon-lock\"\n />\n </router-link>\n <span v-else>\n {{ row.nameDisplay }}\n </span>\n </span>\n </td>\n </template>\n </ResourceTable>\n </div>\n</template>\n","<script>\nimport ArrayList from '@shell/components/form/ArrayList';\nimport Select from '@shell/components/form/Select';\nimport LabeledInput from '@components/Form/LabeledInput/LabeledInput.vue';\n\nexport default {\n name: 'HarvesterFilterLabel',\n\n emits: ['changeRows'],\n\n components: {\n Select,\n ArrayList,\n LabeledInput\n },\n\n props: {\n rows: {\n type: Array,\n required: true,\n },\n },\n\n data() {\n return {\n searchLabels: [],\n defaultAddValue: {\n key: '',\n value: '',\n }\n };\n },\n\n computed: {\n optionLabels() {\n const labels = this.rows.map((row) => {\n return Object.keys(row.labels);\n });\n\n return Array.from(new Set(labels.flat()));\n },\n },\n\n methods: {\n calcValueOptions(key) {\n const valueOptions = [];\n\n this.rows.map((row) => {\n const isExistValue = valueOptions.find((value) => value.label === row.labels[key]);\n\n if (Object.keys(row.labels).includes(key) && key && row.labels[key] && !isExistValue) {\n valueOptions.push({\n value: row.labels[key],\n label: row.labels[key]\n });\n }\n });\n\n return valueOptions;\n },\n\n removeAll() {\n this['searchLabels'] = [];\n this.filterRows();\n },\n\n remove(label) {\n this.searchLabels.find((L, index) => {\n if (L.key === label.key && L.value === label.value) {\n this.searchLabels.splice(index, 1);\n this.filterRows();\n\n return true;\n }\n });\n },\n\n filterRows() {\n const rows = this.rows.filter((row) => {\n const hasSearch = this.searchLabels.find((search) => search.key);\n\n if (!hasSearch) {\n return this.rows;\n }\n\n const labels = row.labels;\n const keys = Object.keys(labels);\n\n return this.searchLabels.find((search) => {\n if (search.key && keys.includes(search.key)) {\n if (!search.value) { // If value is empty, all data containing the key is retained\n return true;\n } else if (search.value === labels[search.key]) {\n return true;\n } else if (search.value !== labels[search.key]) {\n return false;\n }\n } else {\n return false;\n }\n });\n });\n\n this.$emit('changeRows', rows, this.searchLabels);\n }\n },\n\n watch: {\n rows: {\n deep: true,\n immediate: true,\n handler() {\n this.filterRows();\n }\n }\n }\n};\n</script>\n\n<template>\n <div class=\"filter\">\n <template\n v-for=\"(label, index) in searchLabels\"\n :key=\"index\"\n >\n <span\n v-if=\"label.key\"\n :key=\"`${label.key}${index}`\"\n class=\"banner-item bg-warning\"\n >\n {{ label.key }}{{ label.value ? \"=\" : '' }}{{ label.value }}<i\n class=\"icon icon-close\"\n @click=\"remove(label)\"\n />\n </span>\n </template>\n\n <v-dropdown\n popper-class=\"filter-label\"\n trigger=\"click\"\n placement=\"bottom-end\"\n :distance=\"20\"\n >\n <slot name=\"header\">\n <button\n ref=\"actionDropDown\"\n class=\"btn bg-primary mr-10\"\n >\n <slot name=\"title\">\n {{ t('harvester.fields.filterLabels') }}\n </slot>\n </button>\n </slot>\n\n <template #popper>\n <div class=\"filter-popup\">\n <div>\n <ArrayList\n v-model:value=\"searchLabels\"\n :show-header=\"true\"\n :default-add-value=\"defaultAddValue\"\n :initial-empty-row=\"true\"\n @update:value=\"filterRows\"\n >\n <template #column-headers>\n <div class=\"box\">\n <div class=\"key\">\n {{ t('generic.key') }}\n <span class=\"required\">*</span>\n </div>\n <div class=\"value\">\n {{ t('generic.value') }}\n </div>\n <div />\n </div>\n </template>\n <template #columns=\"scope\">\n <div class=\"key\">\n <Select\n ref=\"select\"\n key=\"label\"\n v-model:value=\"scope.row.value.key\"\n :append-to-body=\"false\"\n :searchable=\"true\"\n :options=\"optionLabels\"\n @update:value=\"filterRows\"\n />\n </div>\n <div class=\"value\">\n <Select\n v-if=\"calcValueOptions(scope.row.value.key).length > 0\"\n ref=\"select\"\n key=\"value\"\n v-model:value=\"scope.row.value.value\"\n :append-to-body=\"false\"\n :searchable=\"true\"\n :options=\"calcValueOptions(scope.row.value.key)\"\n @update:value=\"filterRows\"\n />\n <LabeledInput\n v-else\n v-model:value=\"scope.row.value.value\"\n @update:value=\"filterRows\"\n />\n </div>\n </template>\n\n <template #add=\"{add}\">\n <div>\n <button\n type=\"button\"\n class=\"btn role-tertiary add\"\n data-testid=\"add-item\"\n @click=\"add()\"\n >\n {{ t('generic.add') }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn role-tertiary add\"\n data-testid=\"remove-all-item\"\n @click=\"removeAll()\"\n >\n {{ t('generic.clearAll') }}\n </button>\n </div>\n </template>\n </ArrayList>\n </div>\n </div>\n </template>\n </v-dropdown>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.filter {\n display: inline-block;\n\n .banner-item {\n display: inline-block;\n font-size: 16px;\n margin-right: 10px;\n padding: 6px;\n border-radius: 2px;\n\n i {\n cursor: pointer;\n vertical-align: middle;\n }\n }\n}\n.filter-popup {\n width: 600px;\n}\n\n:deep() .box {\n display: grid;\n grid-template-columns: 40% 40% 10%;\n column-gap: 1.75%;\n margin-bottom: 10px;\n}\n\n.required {\n color: var(--error);\n}\n</style>\n\n<style lang=\"scss\">\n.filter-label .v-popper__arrow-container {\n display: none;\n}\n</style>\n","import { render } from \"./FilterLabel.vue?vue&type=template&id=99256476&scoped=true\"\nimport script from \"./FilterLabel.vue?vue&type=script&lang=js\"\nexport * from \"./FilterLabel.vue?vue&type=script&lang=js\"\n\nimport \"./FilterLabel.vue?vue&type=style&index=0&id=99256476&lang=scss&scoped=true\"\nimport \"./FilterLabel.vue?vue&type=style&index=1&id=99256476&lang=scss\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-99256476\"]])\n\nexport default __exports__","import { render } from \"./harvesterhci.io.virtualmachineimage.vue?vue&type=template&id=1c40a151\"\nimport script from \"./harvesterhci.io.virtualmachineimage.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.virtualmachineimage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport LiveData from '@shell/components/formatter/LiveDate';\nimport ResourceTable from '@shell/components/ResourceTable';\n\nimport { allHash } from '@shell/utils/promise';\nimport { STATE, AGE, NAME, NAMESPACE } from '@shell/config/table-headers';\nimport { HCI } from '../types';\n\nexport default {\n name: 'HarvesterListTemplate',\n components: {\n ResourceTable, LiveData, Loading\n },\n inheritAttrs: false,\n\n props: {\n schema: {\n type: Object,\n required: true,\n },\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hash = await allHash({\n template: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM_TEMPLATE }),\n templateVersion: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM_VERSION }),\n });\n\n this.template = hash.template;\n this.templateVersion = hash.templateVersion;\n },\n\n data() {\n return {\n template: [],\n templateVersion: [],\n };\n },\n\n computed: {\n headers() {\n return [\n STATE,\n NAME,\n NAMESPACE,\n {\n name: 'defaultVersion',\n value: 'id',\n labelKey: 'tableHeaders.defaultVersion'\n },\n AGE\n ];\n },\n\n rows() {\n return [...this.templateVersion];\n },\n\n groupBy() {\n return 'spec.templateId';\n },\n\n groupTitleBy() {\n return HCI.VM_TEMPLATE;\n },\n },\n\n methods: {\n showActions(e, group) {\n const template = group.rows[0].template;\n\n this.$store.commit(`action-menu/show`, {\n resources: [template],\n elem: e.target\n });\n },\n\n valueFor(group) {\n const resource = group?.rows?.[0].template;\n\n return resource?.metadata?.creationTimestamp;\n },\n\n templateLabel(group) {\n return group.key;\n },\n\n templateResource(group) {\n return group?.rows?.[0].template;\n }\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <ResourceTable\n v-else\n v-bind=\"$attrs\"\n :headers=\"headers\"\n :sub-rows=\"true\"\n :groupable=\"true\"\n :rows=\"rows\"\n :group-title-by=\"groupTitleBy\"\n :group-by=\"groupBy\"\n :schema=\"schema\"\n :group-can-action=\"true\"\n key-field=\"_key\"\n >\n <template #group-by=\"group\">\n <div class=\"group-bar\">\n <div class=\"group-tab\">\n <div\n v-clean-html=\"templateLabel(group.group)\"\n class=\"project-name\"\n />\n </div>\n\n <div class=\"right\">\n <div class=\"age\">\n <LiveData\n :value=\"valueFor(group.group)\"\n :row=\"templateResource(group.group)\"\n />\n </div>\n\n <button\n type=\"button\"\n class=\"btn btn-sm actions mr-10 role-multi-action\"\n @click=\"showActions($event, group.group)\"\n >\n <i class=\"icon icon-actions\" />\n </button>\n </div>\n </div>\n </template>\n\n <template #col:defaultVersion=\"{row}\">\n <td v-if=\"row.isDefaultVersion\">\n <i class=\"icon icon-checkmark\" />\n </td>\n <td v-else></td>\n </template>\n </ResourceTable>\n</template>\n\n<style lang=\"scss\" scoped>\n:deep() {\n .group-name {\n line-height: 30px;\n }\n\n .group-bar {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n .right {\n display: flex;\n align-items: center;\n .age {\n width: 100px;\n }\n\n .actions {\n padding-right: 7px;\n }\n }\n\n &.has-description {\n .right {\n margin-top: 5px;\n }\n .group-tab {\n &, &::after {\n height: 50px;\n }\n\n &::after {\n right: -20px;\n }\n\n .description {\n margin-top: -20px;\n }\n }\n }\n }\n}\n</style>\n","import { render } from \"./harvesterhci.io.virtualmachinetemplateversion.vue?vue&type=template&id=a26b23da&scoped=true\"\nimport script from \"./harvesterhci.io.virtualmachinetemplateversion.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.virtualmachinetemplateversion.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.virtualmachinetemplateversion.vue?vue&type=style&index=0&id=a26b23da&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a26b23da\"]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport {\n PV, PVC, SCHEMA, LONGHORN, STORAGE_CLASS\n} from '@shell/config/types';\nimport { STATE, AGE, NAME, NAMESPACE } from '@shell/config/table-headers';\nimport HarvesterVolumeState from '../formatters/HarvesterVolumeState';\n\nimport { allSettled } from '../utils/promise';\nimport { HCI, VOLUME_SNAPSHOT } from '../types';\nimport { HCI as HCI_ANNOTATIONS } from '@pkg/harvester/config/labels-annotations';\n\nconst schema = {\n id: HCI.VOLUME,\n type: SCHEMA,\n attributes: {\n kind: HCI.VOLUME,\n namespaced: true\n },\n metadata: { name: HCI.VOLUME },\n};\n\nexport default {\n name: 'HarvesterListVolume',\n components: {\n Loading, ResourceTable, HarvesterVolumeState\n },\n\n inheritAttrs: false,\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const _hash = {\n pvcs: this.$store.dispatch(`${ inStore }/findAll`, { type: PVC }),\n pvs: this.$store.dispatch(`${ inStore }/findAll`, { type: PV }),\n vms: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VM }),\n scs: this.$store.dispatch(`${ inStore }/findAll`, { type: STORAGE_CLASS }),\n };\n\n const volumeSnapshotSchema = this.$store.getters[`${ inStore }/schemaFor`](VOLUME_SNAPSHOT);\n\n if (volumeSnapshotSchema) {\n _hash.snapshots = this.$store.dispatch(`${ inStore }/findAll`, { type: VOLUME_SNAPSHOT });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](LONGHORN.VOLUMES)) {\n _hash.longhornVolumes = this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.VOLUMES });\n }\n\n if (this.$store.getters[`${ inStore }/schemaFor`](LONGHORN.ENGINES)) {\n _hash.longhornEngines = this.$store.dispatch(`${ inStore }/findAll`, { type: LONGHORN.ENGINES });\n }\n\n const hash = await allSettled(_hash);\n\n const pvcSchema = this.$store.getters[`${ inStore }/schemaFor`](PVC);\n\n if (!pvcSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post')) {\n this.$store.dispatch('type-map/configureType', { match: HCI.VOLUME, isCreatable: false });\n }\n // we only show the non golden image PVCs in the list\n const pvcs = hash.pvcs.filter((pvc) => pvc.metadata.annotations[HCI_ANNOTATIONS.GOLDEN_IMAGE] !== 'true');\n\n this.rows = pvcs;\n },\n\n data() {\n return { rows: [] };\n },\n\n computed: {\n schema() {\n return schema;\n },\n\n headers() {\n return [\n STATE,\n NAME,\n NAMESPACE,\n {\n name: 'size',\n labelKey: 'tableHeaders.size',\n value: 'spec.resources.requests.storage',\n sort: 'volumeSort',\n formatter: 'Si',\n formatterOpts: {\n opts: {\n increment: 1024, addSuffix: true, maxExponent: 3, minExponent: 3, suffix: 'i',\n },\n needParseSi: true\n },\n },\n {\n name: 'storageClass',\n labelKey: 'tableHeaders.storageClass',\n value: 'spec.storageClassName',\n sort: 'spec.storageClassName'\n },\n {\n name: 'AttachedVM',\n labelKey: 'tableHeaders.attachedVM',\n type: 'attached',\n value: 'spec.claimRef',\n sort: 'name',\n },\n {\n name: 'VolumeSnapshotCounts',\n labelKey: 'harvester.tableHeaders.volumeSnapshotCounts',\n value: 'relatedVolumeSnapshotCounts',\n formatter: 'RelatedVolumeSnapshotCounts',\n sort: 'name',\n align: 'center',\n },\n {\n ...STATE,\n name: 'phase',\n labelKey: 'tableHeaders.phase',\n formatterOpts: { arbitrary: true },\n value: 'phaseState',\n },\n AGE,\n ];\n },\n },\n\n methods: {\n goTo(row) {\n return row?.attachVM?.detailLocation;\n },\n\n getVMName(row) {\n return row.attachVM?.metadata?.name || '';\n }\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n },\n};\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <ResourceTable\n v-else\n v-bind=\"$attrs\"\n :headers=\"headers\"\n :groupable=\"true\"\n default-sort-by=\"age\"\n :namespaced=\"true\"\n :rows=\"rows\"\n :schema=\"schema\"\n key-field=\"_key\"\n >\n <template #cell:state=\"{row}\">\n <div class=\"state\">\n <HarvesterVolumeState\n class=\"vmstate\"\n :row=\"row\"\n />\n </div>\n </template>\n <template #cell:AttachedVM=\"{row}\">\n <div>\n <router-link\n v-if=\"getVMName(row)\"\n :to=\"goTo(row)\"\n >\n {{ getVMName(row) }}\n </router-link>\n </div>\n </template>\n <template #col:name=\"{row}\">\n <td>\n <span>\n <router-link\n v-if=\"row?.detailLocation\"\n :to=\"row.detailLocation\"\n >\n {{ row.nameDisplay }}\n <i\n v-if=\"row.isEncrypted\"\n class=\"icon icon-lock\"\n />\n </router-link>\n <span v-else>\n {{ row.nameDisplay }}\n </span>\n </span>\n </td>\n </template>\n </ResourceTable>\n</template>\n\n<style lang=\"scss\" scoped>\n.state {\n display: flex;\n\n .vmstate {\n margin-right: 6px;\n }\n}\n</style>\n","import { render } from \"./harvesterhci.io.volume.vue?vue&type=template&id=121473ec&scoped=true\"\nimport script from \"./harvesterhci.io.volume.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.volume.vue?vue&type=script&lang=js\"\n\nimport \"./harvesterhci.io.volume.vue?vue&type=style&index=0&id=121473ec&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-121473ec\"]])\n\nexport default __exports__","<script>\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Loading from '@shell/components/Loading';\nimport { SCHEMA, PVC } from '@shell/config/types';\nimport { allHash } from '@shell/utils/promise';\nimport { VOLUME_SNAPSHOT, HCI } from '../types';\n\nconst schema = {\n id: HCI.SNAPSHOT,\n type: SCHEMA,\n attributes: {\n kind: HCI.SNAPSHOT,\n namespaced: true\n },\n metadata: { name: HCI.SNAPSHOT },\n};\n\nexport default {\n name: 'HarvesterListSnapshot',\n\n components: { ResourceTable, Loading },\n\n inheritAttrs: false,\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const hash = {\n volumes: this.$store.dispatch(`${ inStore }/findAll`, { type: PVC }),\n snapshots: this.$store.dispatch(`${ inStore }/findAll`, { type: VOLUME_SNAPSHOT }),\n };\n\n const res = await allHash(hash);\n\n this.rows = res.snapshots;\n\n const snapShotSchema = this.$store.getters[`${ inStore }/schemaFor`](VOLUME_SNAPSHOT);\n\n if (!snapShotSchema?.collectionMethods.find((x) => x.toLowerCase() === 'post')) {\n this.$store.dispatch('type-map/configureType', { match: HCI.SNAPSHOT, isCreatable: false });\n }\n },\n\n data() {\n return { rows: [] };\n },\n\n computed: {\n filteredRows() {\n return this.rows.filter((R) => {\n return R.metadata?.ownerReferences?.[0]?.kind === 'PersistentVolumeClaim';\n });\n },\n\n schema() {\n return schema;\n }\n },\n\n typeDisplay() {\n return this.$store.getters['type-map/labelFor'](schema, 99);\n }\n\n};\n\n</script>\n\n<template>\n <Loading v-if=\"$fetchState.pending\" />\n <ResourceTable\n v-else\n v-bind=\"$attrs\"\n :groupable=\"true\"\n :schema=\"schema\"\n :rows=\"filteredRows\"\n key-field=\"_key\"\n />\n</template>\n","import { render } from \"./harvesterhci.io.volumesnapshot.vue?vue&type=template&id=7caa0da6\"\nimport script from \"./harvesterhci.io.volumesnapshot.vue?vue&type=script&lang=js\"\nexport * from \"./harvesterhci.io.volumesnapshot.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<script>\nimport Loading from '@shell/components/Loading';\nimport ResourceTable from '@shell/components/ResourceTable';\nimport Masthead from '@shell/components/ResourceList/Masthead';\n\nimport { allHash } from '@shell/utils/promise';\nimport { STATE, AGE, NAME } from '@shell/config/table-headers';\nimport { mapPref, GROUP_RESOURCES } from '@shell/store/prefs';\nimport { NODE } from '@shell/config/types';\n\nimport { PRODUCT_NAME as HARVESTER_PRODUCT } from '../config/harvester';\nimport { CLUSTER_NETWORK } from '../config/query-params';\nimport { HCI } from '../types';\n\nexport default {\n name: 'ListHarvesterVLANConfigs',\n\n components: {\n ResourceTable,\n Loading,\n Masthead,\n },\n\n async fetch() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n await allHash({\n configs: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VLAN_CONFIG }),\n clusterNetworks: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.CLUSTER_NETWORK }),\n vlanStatuses: this.$store.dispatch(`${ inStore }/findAll`, { type: HCI.VLAN_STATUS }),\n nodes: this.$store.dispatch(`${ inStore }/findAll`, { type: NODE })\n });\n },\n\n data() {\n return { HCI };\n },\n\n computed: {\n groupPreference: mapPref(GROUP_RESOURCES),\n\n headers() {\n return [\n STATE,\n {\n ...NAME,\n width: 300,\n },\n {\n name: 'type',\n labelKey: 'tableHeaders.type',\n value: 'typeDisplay',\n getValue: (row) => row.typeDisplay,\n sort: ['typeDisplay'],\n },\n AGE,\n ];\n },\n\n rows() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const configs = this.$store.getters[`${ inStore }/all`](HCI.VLAN_CONFIG);\n\n return configs;\n },\n\n vlanConfigSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/schemaFor`](HCI.VLAN_CONFIG);\n },\n\n clusterNetworkSchema() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n return this.$store.getters[`${ inStore }/schemaFor`](HCI.CLUSTER_NETWORK);\n },\n\n isClusterNetworkCreatable() {\n return (this.clusterNetworkSchema?.collectionMethods || []).includes('POST');\n },\n\n createClusterNetworkLocation() {\n const location = {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: {\n product: HARVESTER_PRODUCT,\n resource: HCI.CLUSTER_NETWORK,\n },\n };\n\n return location;\n },\n\n clusterNetworkWithoutConfigs() {\n const inStore = this.$store.getters['currentProduct'].inStore;\n\n const clusterNetworks = this.$store.getters[`${ inStore }/all`](HCI.CLUSTER_NETWORK);\n\n const out = clusterNetworks.map((network) => {\n const hasChild = !!this.rows.find((config) => config?.spec?.clusterNetwork === network.id);\n\n return {\n ...network,\n hasChild\n };\n });\n\n return out;\n },\n\n rowsWithFakeClusterNetworks() {\n const fakeRows = this.clusterNetworkWithoutConfigs.map((network) => {\n return {\n groupByLabel: network.id,\n isFake: true,\n mainRowKey: network.id,\n nameDisplay: network.id,\n groupByClusterNetwork: network.id,\n availableActions: []\n };\n });\n\n return [...this.rows, ...fakeRows];\n },\n },\n\n methods: {\n showClusterNetworkActionButton(group) {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const clusterNetwork = group.key;\n\n const resource = this.$store.getters[`${ inStore }/byId`](HCI.CLUSTER_NETWORK, clusterNetwork);\n\n return !!resource;\n },\n\n showClusterNetworkAction(event, group) {\n const inStore = this.$store.getters['currentProduct'].inStore;\n const clusterNetwork = group.key;\n\n const resource = this.$store.getters[`${ inStore }/byId`](HCI.CLUSTER_NETWORK, clusterNetwork);\n\n this.$store.commit(`action-menu/show`, {\n resources: [resource],\n elem: event.target\n });\n },\n\n createVlanConfigLocation(group) {\n const clusterNetwork = group.key;\n\n const location = {\n name: `${ HARVESTER_PRODUCT }-c-cluster-resource-create`,\n params: {\n product: HARVESTER_PRODUCT,\n resource: HCI.VLAN_CONFIG,\n },\n };\n\n location.query = { [CLUSTER_NETWORK]: clusterNetwork };\n\n return location;\n },\n\n slotName(clusterNetwork) {\n return `main-row:${ clusterNetwork }`;\n },\n\n groupLabel(group) {\n const row = group.rows[0];\n\n if (row.isFake) {\n return `${ this.t('harvester.network.clusterNetwork.label') }: ${ row.nameDisplay }`;\n }\n\n return `${ this.t('harvester.network.clusterNetwork.label') }: ${ group.key }`;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <Loading v-if=\"$fetchState.pending\" />\n <div v-else>\n <Masthead\n :schema=\"clusterNetworkSchema\"\n :type-display=\"t('harvester.clusterNetwork.title')\"\n :resource=\"HCI.CLUSTER_NETWORK\"\n :create-location=\"createClusterNetworkLocation\"\n :create-button-label=\"t('harvester.clusterNetwork.create.button.label')\"\n />\n <ResourceTable\n :rows=\"rowsWithFakeClusterNetworks\"\n :headers=\"headers\"\n :groupable=\"true\"\n :schema=\"vlanConfigSchema\"\n group-by=\"groupByClusterNetwork\"\n >\n <template #header-middle>\n <div />\n </template>\n <template #group-by=\"{group}\">\n <div class=\"group-bar\">\n <div class=\"group-tab\">\n <span>\n {{ groupLabel(group) }}\n </span>\n </div>\n\n <div class=\"right\">\n <router-link\n v-if=\"isClusterNetworkCreatable && group.key !== 'mgmt'\"\n class=\"btn btn-sm role-secondary mr-5\"\n :to=\"createVlanConfigLocation(group)\"\n >\n {{ t('harvester.vlanConfig.createNetworkConfig') }}\n </router-link>\n <button\n type=\"button\"\n class=\"btn btn-sm role-multi-action actions mr-10\"\n :class=\"{invisible: !showClusterNetworkActionButton(group)}\"\n @click=\"showClusterNetworkAction($event, group)\"\n >\n <i class=\"icon icon-actions\" />\n </button>\n </div>\n </div>\n </template>\n <template\n v-for=\"(clusterNetwork, i) in clusterNetworkWithoutConfigs\"\n :key=\"i\"\n v-slot:[slotName(clusterNetwork.id)]\n >\n <tr\n v-show=\"!clusterNetwork.hasChild\"\n :key=\"clusterNetwork.id\"\n class=\"main-row\"\n >\n <td\n class=\"empty text-center\"\n colspan=\"12\"\n >\n {{ clusterNetwork.id === 'mgmt' ? t('harvester.clusterNetwork.mgmt') : t('harvester.clusterNetwork.clusterNetwork') }}\n </td>\n </tr>\n </template>\n </ResourceTable>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.group-bar {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n .right {\n margin-top: 5px;\n margin-bottom: 3px;\n }\n\n .group-tab {\n &, &::after {\n height: 50px;\n }\n\n &::after {\n right: -20px;\n }\n\n SPAN {\n color: var(--body-text) !important;\n }\n }\n}\n</style>\n\n<style lang=\"scss\">\n .col-link-detail {\n // Avoid 'Create Network Config' button to overlap the namespace tab when resize table to min length\n min-width: 200px;\n }\n\n .group-bar .right {\n display: flex;\n margin-left: 50px;\n a {\n height: 30px;\n }\n }\n</style>\n","export const CLUSTER_NETWORK = 'clusterNetwork';\n","import { render } from \"./network.harvesterhci.io.clusternetwork.vue?vue&type=template&id=651d7143&scoped=true\"\nimport script from \"./network.harvesterhci.io.clusternetwork.vue?vue&type=script&lang=js\"\nexport * from \"./network.harvesterhci.io.clusternetwork.vue?vue&type=script&lang=js\"\n\nimport \"./network.harvesterhci.io.clusternetwork.vue?vue&type=style&index=0&id=651d7143&lang=scss&scoped=true\"\nimport \"./network.harvesterhci.io.clusternetwork.vue?vue&type=style&index=1&id=651d7143&lang=scss\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-651d7143\"]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".filter[data-v-99256476]{display:inline-block}.filter .banner-item[data-v-99256476]{display:inline-block;font-size:16px;margin-right:10px;padding:6px;border-radius:2px}.filter .banner-item i[data-v-99256476]{cursor:pointer;vertical-align:middle}.filter-popup[data-v-99256476]{width:600px}[data-v-99256476] .box{display:grid;grid-template-columns:40% 40% 10%;-moz-column-gap:1.75%;column-gap:1.75%;margin-bottom:10px}.required[data-v-99256476]{color:var(--error)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".filter-label .v-popper__arrow-container{display:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".header[data-v-0254dd74]{display:flex;justify-content:space-between;align-items:center}.footer[data-v-0254dd74]{width:100%;display:flex;justify-content:flex-end}.banner-icon[data-v-0254dd74]{display:flex;align-items:center}.banner-content[data-v-0254dd74]{display:flex}.banner-message[data-v-0254dd74]{display:flex;flex-direction:column;justify-content:center;padding:0 15px}.icon[data-v-0254dd74]{font-size:20px;width:20px;line-height:23px}.currentVersion[data-v-0254dd74]{margin-top:10px;display:flex;justify-content:space-between}.currentVersion .version[data-v-0254dd74]{font-size:16px;font-weight:700}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".settings-banner[data-v-5b7931f6]{margin-top:0}.advanced-setting[data-v-5b7931f6]{border:1px solid var(--border);padding:20px;border-radius:var(--border-radius)}.advanced-setting h1[data-v-5b7931f6]{font-size:14px}.advanced-setting h2[data-v-5b7931f6]{font-size:12px;margin-bottom:0;opacity:.8}.settings-value pre[data-v-5b7931f6]{margin:0}.header[data-v-5b7931f6]{display:flex;margin-bottom:20px}.title[data-v-5b7931f6]{flex:1}.modified[data-v-5b7931f6]{border:1px solid var(--primary);border-radius:5px}.experimental[data-v-5b7931f6],.modified[data-v-5b7931f6]{margin-left:10px;padding:2px 10px;font-size:12px}.experimental[data-v-5b7931f6]{border:1px solid var(--error);border-radius:5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-e0f7fbca]{display:flex}.state .icon-warning[data-v-e0f7fbca]{margin-top:2px}.warning-message[data-v-e0f7fbca]:first-letter{text-transform:uppercase}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-32e4b7cb] .sortable-table TD .badge-state{max-width:250px;text-overflow:clip}[data-v-32e4b7cb] .cell-name{white-space:nowrap}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cluster-dashboard-glance[data-v-69bd7a3f]{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0;display:flex}.cluster-dashboard-glance[data-v-69bd7a3f]>*{margin-right:40px}.cluster-dashboard-glance>* SPAN[data-v-69bd7a3f]{font-weight:700}.events[data-v-69bd7a3f]{margin-top:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".console-button[data-v-748b0729]{display:flex}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".empty[data-v-a0eea6e4]{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-top:6em;min-height:100%}i[data-v-a0eea6e4]{font-size:10em;opacity:50%}h2[data-v-a0eea6e4],i[data-v-a0eea6e4]{margin:0}h3[data-v-a0eea6e4]{margin-top:2em}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".settings-banner[data-v-3fea1646]{margin-top:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-a26b23da] .group-name{line-height:30px}[data-v-a26b23da] .group-bar{display:flex;flex-direction:row;justify-content:space-between}[data-v-a26b23da] .group-bar .right{display:flex;align-items:center}[data-v-a26b23da] .group-bar .right .age{width:100px}[data-v-a26b23da] .group-bar .right .actions{padding-right:7px}[data-v-a26b23da] .group-bar.has-description .right{margin-top:5px}[data-v-a26b23da] .group-bar.has-description .group-tab,[data-v-a26b23da] .group-bar.has-description .group-tab:after{height:50px}[data-v-a26b23da] .group-bar.has-description .group-tab:after{right:-20px}[data-v-a26b23da] .group-bar.has-description .group-tab .description{margin-top:-20px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".state[data-v-121473ec]{display:flex}.state .vmstate[data-v-121473ec]{margin-right:6px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".group-bar[data-v-651d7143]{display:flex;flex-direction:row;justify-content:space-between}.group-bar .right[data-v-651d7143]{margin-top:5px;margin-bottom:3px}.group-bar .group-tab[data-v-651d7143],.group-bar .group-tab[data-v-651d7143]:after{height:50px}.group-bar .group-tab[data-v-651d7143]:after{right:-20px}.group-bar .group-tab SPAN[data-v-651d7143]{color:var(--body-text)!important}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".col-link-detail{min-width:200px}.group-bar .right{display:flex;margin-left:50px}.group-bar .right a{height:30px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./FilterLabel.vue?vue&type=style&index=0&id=99256476&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4cc1b774\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./FilterLabel.vue?vue&type=style&index=1&id=99256476&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5a29acf0\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterUpgrade.vue?vue&type=style&index=0&id=0254dd74&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"02588a8c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./SettingList.vue?vue&type=style&index=0&id=5b7931f6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"11d68e9b\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./HarvesterVolumeState.vue?vue&type=style&index=0&id=e0f7fbca&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1c23f151\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.addon.vue?vue&type=style&index=0&id=32e4b7cb&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"667b73de\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.dashboard.vue?vue&type=style&index=0&id=69bd7a3f&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7cbf0c66\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.host.vue?vue&type=style&index=0&id=748b0729&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"532f48ca\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.monitoring.alertmanagerconfig.vue?vue&type=style&index=0&id=a0eea6e4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"43e0813f\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.setting.vue?vue&type=style&index=0&id=3fea1646&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"dd1aafac\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.virtualmachinetemplateversion.vue?vue&type=style&index=0&id=a26b23da&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"828f32ae\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./harvesterhci.io.volume.vue?vue&type=style&index=0&id=121473ec&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"92730e78\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./network.harvesterhci.io.clusternetwork.vue?vue&type=style&index=0&id=651d7143&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"39e02b71\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-23.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-23.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-23.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./network.harvesterhci.io.clusternetwork.vue?vue&type=style&index=1&id=651d7143&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"231d2e5d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["class","_createElementBlock","_createElementVNode","$options","isRebuilding","_createBlock","_component_ProgressBarMulti","key","values","percentage","min","max","rebuildingMessage","_createCommentVNode","_hoisted_1","_createVNode","_component_VolumeState","row","$props","warningMessage","_component_v_dropdown","trigger","offset","popper","_withCtx","_hoisted_2","_toDisplayString","default","_","components","VolumeState","ProgressBarMulti","props","type","Object","required","computed","this","relatedPV","metadata","annotations","HCI_ANNOTATIONS","VOLUME_ERROR","rebuildStatus","longhornEngine","status","keys","length","value","progress","color","$store","getters","__exports__","render","_ctx","$fetchState","pending","_component_Loading","hasAddonSchema","$data","hasSchema","enabledPCI","_component_DeviceList","devices","rows","schema","_component_Banner","_component_MessageLink","to","_createTextVNode","t","id","HCI","PCI_DEVICE","SCHEMA","attributes","kind","namespaced","name","Banner","DeviceList","Loading","MessageLink","fetch","inStore","ADD_ONS","hash","allHash","pcidevice","dispatch","addons","find","addon","PCI_DEVICE_CONTROLLER","spec","enabled","match","isCreatable","e","data","typeDisplay","hasSriovgpuAddon","hasPCIAddon","_component_ResourceTable","_mergeProps","$attrs","groupable","headers","toVGpuAddon","toPciAddon","inheritAttrs","ResourceTable","SR_IOVGPU_DEVICE","sriovgpus","vGpuDevices","VGPU_DEVICE","NVIDIA_DRIVER_TOOLKIT_CONTROLLER","hasNode","NODE","nodeCol","label","sort","formatter","labelKey","cols","STATE","SIMPLE_NAME","align","dashIfEmpty","AGE","splice","Array","USB_DEVICE","usbDevices","_component_VGpuDeviceList","VGpuDeviceList","hasSRIOVGPUSchema","srioVGpuDevices","filter","device","s","isEnabled","nodeName","scope","_component_LinkDetail","displayName","$event","rel","target","href","rancherHostname","NAME","formatterOpts","prefix","filteredRows","CLOUD_TEMPLATE","CONFIG_MAP","configSchema","collectionMethods","x","toLowerCase","NAMESPACE","r","labels","CLOUD_INIT","currentCluster","_component_HarvesterUpgrade","currentVersion","_component_LiveDate","firstNodeCreationTimestamp","enabledMonitoringAddon","canEnableMonitoringAddon","_hoisted_3","toEnableMonitoringAddon","_hoisted_4","_Fragment","_renderList","totalCountGaugeInput","resource","i","_component_ResourceSummary","isSpoofed","nodes","hasMetricNodeSchema","_hoisted_5","_normalizeClass","hasLonghornSchema","_component_HardwareResourceGauge","reserved","cpuReserved","used","cpuUsed","ramReserved","ramUsed","storageUsed","storageAllocated","hasMetricsTabs","_component_Tabbed","showClusterMetrics","_component_Tab","weight","active","_component_DashboardMetrics","CLUSTER_METRICS_DETAIL_URL","CLUSTER_METRICS_SUMMARY_URL","showVmMetrics","VM_DASHBOARD_METRICS_URL","_hoisted_6","_component_SortableTable","hostEvents","eventHeaders","search","paging","_hoisted_7","message","_hoisted_8","displayMessage","vmEvents","_hoisted_9","_hoisted_10","volumeEvents","_hoisted_11","_hoisted_12","imageEvents","_hoisted_13","_hoisted_14","_component_t","k","cluster","nameDisplay","versionOptions","isUpgradeInProgress","onClick","_cache","args","open","isOpen","_component_ModalWithCard","width","title","content","_component_UpgradeInfo","version","_component_LabeledSelect","options","clearable","canEnableLogging","_component_Checkbox","enableLogging","skipSingleReplicaDetachedVolFeatureEnabled","skipSingleReplicaDetachedVol","url","releaseLink","readyReleaseNote","errors","footer","_withModifiers","cancel","disabled","handleUpgrade","Checkbox","ModalWithCard","LabeledSelect","UpgradeInfo","res","upgradeVersion","SETTING","versions","VERSION","upgrade","UPGRADE","upgradeMessage","selectMode","mapGetters","latestUpgrade","u","isLatestUpgrade","isUpgradeSucceeded","isUpgradeFailed","map","V","serverVersion","UPGRADE_LOG","watch","handler","neu","list","currentResource","O","deep","methods","upgradeValue","generateName","namespace","SKIP_SINGLE_REPLICA_DETACHED_VOL","JSON","stringify","logEnabled","proxyResource","save","err","dayjs","utc","minMax","PARSE_RULES","memory","format","addSuffix","firstSuffix","increment","maxExponent","maxPrecision","minExponent","startingExponent","suffix","RESOURCES","spoofed","location","HARVESTER_PRODUCT","params","HOST","VM","NETWORK_ATTACHMENT","filterNamespace","IMAGE","PVC","VOLUME","BLOCK_DEVICE","MONITORING_ID","mixins","metricPoller","HardwareResourceGauge","SortableTable","HarvesterUpgrade","ResourceSummary","Tabbed","Tab","DashboardMetrics","vms","fetchClusterResources","events","EVENT","metricNodes","METRIC","settings","services","SERVICE","metric","longhornNodes","LONGHORN","NODES","longhornSettings","SETTINGS","_pods","POD","accessibleResources","a","setPromiseResult","allDashboardsExist","monitoring","reason","REASON","canBeVariable","defaultSort","constraints","nodeMetrics","out","forEach","counts","resourceCounts","entries","entry","isArray","clusterCounts","COUNT","statistics","nsStatistics","namespaces","count","states","colorForState","countName","colorToCountName","total","errorCount","node","diskStatusCount","useful","setting","days","N","creationTimestamp","cpusTotal","cpuCapacity","cpusUsageTotal","cpuUsage","memoryTotal","memoryCapacity","memoryUsageTotal","memoryUsage","storageStats","storageOverProvisioningPercentageSetting","stats","reduce","disks","diskStatus","allowScheduling","scheduled","storageScheduled","storageReserved","diskStat","maximum","storageMaximum","Number","createMemoryValues","E","includes","involvedObject","pods","p","memoryReserved","availableNodes","metricAggregations","someNonWorkerRoles","some","hasARole","isWorker","metrics","nd","initialAggregation","cpu","isEmpty","agg","parseSi","usage","parsedTotal","toString","parsedUseful","createMemoryFormat","formattedTotal","formatSi","formattedUseful","parseFloat","canRoundToZero","units","createMemoryUnits","n","exponent","exponentNeeded","UNITS","opt","store","resources","console","error","loadMetrics","force","consoleUrl","goto","consoleTooltip","consoleDocLink","_hash","hasMetricSchema","blockDevices","INVENTORY","inventories","CAPI","MACHINE","machines","metricCol","showUsed","storageHeader","showAllocated","every","cpuPinningFeatureEnabled","push","docLink","DOC","CONSOLE_URL","$forceUpdate","window","$route","paramSchema","listSchema","loggingEnabled","CLUSTER_FLOW","LOGGING_ID","LOGGING","clusteroutput","CLUSTER_OUTPUT","loggingAddon","FLOW","clusteroutputSchema","output","OUTPUT","monitoringEnabled","alertingEnabled","ALERTMANAGERCONFIG","MONITORING","monitoringAddon","valueJson","jsyaml","valuesContent","alertmanager","_component_Masthead","getRow","_component_router_link","detailLocation","Masthead","allSettled","SCHEDULE_VM_BACKUP","VM_SCHEDULE_TYPE","VM_SCHEDULE_CRON","VM_SCHEDULE_RETAIN","VM_SCHEDULE_MAX_FAILURE","R","BACKUP_TYPE","SNAPSHOT","vmbackup","source","SECRET","_component_Settings","category","categorySettings","customized","experimental","description","hasActions","showActionMenu","hide","json","enum","custom","_hoisted_15","toggleHide","_hoisted_16","canHide","_hoisted_17","HCI_SETTING","BACKUP_TARGET","_component_AsyncButton","mode","size","delay","buttonCb","testConnect","errMessage","CATEGORY","ui","AsyncButton","String","filterCategorySettings","getFeatureEnabled","featureFlag","item","allCategory","actionElement","srcElement","commit","elem","getSettingOption","HCI_ALLOWED_SETTINGS","buttonDone","health","settingValue","parse","_status","endpoint","root","Settings","isDev","VIEW_IN_API","DEV","isSingleProduct","harvesterSettings","MANAGEMENT","allRows","settingsMap","initSettings","isStandaloneHarvester","HCI_SINGLE_CLUSTER_ALLOWED_SETTING","realSetting","alias","customFormatter","readOnly","b","isHarvester","v","customValue","hasCustomized","STORAGE","storages","STORAGE_CLASS","storageSchema","parameters","backingImage","STORAGE_CLASS_PROVISIONER","STORAGE_CLASS_DEFAULT","errorMessage","isEmptyValue","canUpdate","sortGenerationFn","_createSlots","schedulingVMBackupFeatureEnabled","fn","_component_FilterVMSchedule","getRawRows","onChangeRows","changeRows","undefined","FilterVMSchedule","backups","BACKUP","scheduleList","backupTargetResource","getBackupTargetValueIsEmpty","searchSchedule","base","defaultTableSortGenerationFn","hasBackupProgresses","uploadingImages","filterRows","_component_FilterLabel","ref","isEncrypted","searchLabels","index","remove","placement","distance","_component_ArrayList","defaultAddValue","columns","_component_Select","searchable","optionLabels","calcValueOptions","_component_LabeledInput","add","removeAll","_renderSlot","$slots","emits","Select","ArrayList","LabeledInput","from","Set","flat","valueOptions","isExistValue","L","hasSearch","$emit","immediate","FilterLabel","groupTitleBy","groupBy","group","templateLabel","_component_LiveData","valueFor","templateResource","showActions","isDefaultVersion","LiveData","template","VM_TEMPLATE","templateVersion","VM_VERSION","_component_HarvesterVolumeState","getVMName","goTo","HarvesterVolumeState","pvcs","pvs","PV","scs","volumeSnapshotSchema","VOLUME_SNAPSHOT","snapshots","VOLUMES","longhornVolumes","ENGINES","longhornEngines","pvcSchema","pvc","GOLDEN_IMAGE","opts","needParseSi","arbitrary","attachVM","volumes","snapShotSchema","ownerReferences","colspan","clusterNetworkSchema","CLUSTER_NETWORK","createClusterNetworkLocation","rowsWithFakeClusterNetworks","vlanConfigSchema","groupLabel","isClusterNetworkCreatable","createVlanConfigLocation","invisible","showClusterNetworkActionButton","showClusterNetworkAction","clusterNetworkWithoutConfigs","clusterNetwork","slotName","hasChild","configs","VLAN_CONFIG","clusterNetworks","vlanStatuses","VLAN_STATUS","groupPreference","mapPref","GROUP_RESOURCES","getValue","product","network","config","fakeRows","groupByLabel","isFake","mainRowKey","groupByClusterNetwork","availableActions","event","query","___CSS_LOADER_EXPORT___","module","__esModule","locals","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.promptRemove.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.promptRemove.js new file mode 100644 index 00000000..cf07aef0 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.promptRemove.js @@ -0,0 +1,2 @@ +"use strict";(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[973],{29799:function(e,t,r){r.r(t),r.d(t,{default:function(){return x}});var l=r(9274);const o={class:"mt-10"},a={class:"mt-10"},n={key:0},c={class:"checkbox-container mr-15"},s=["label","value"],i={key:1},m={class:"checkbox-container mr-15"},p={class:"text-warning mb-10 mt-10"},h={class:"text-info mt-20"};function u(e,t,r,u,d,v){const k=(0,l.resolveDirective)("clean-html");return(0,l.openBlock)(),(0,l.createElementBlock)("div",null,[(0,l.createElementVNode)("div",o,[(0,l.createTextVNode)((0,l.toDisplayString)(e.t("promptRemove.attemptingToRemove",{type:r.type}))+" ",1),(0,l.withDirectives)((0,l.createElementVNode)("span",null,null,512),[[k,v.resourceNames(r.names,v.plusMore,e.t)]]),(0,l.createElementVNode)("div",a,(0,l.toDisplayString)(e.t("harvester.virtualMachine.promptRemove.title")),1),1===r.value.length?((0,l.openBlock)(),(0,l.createElementBlock)("div",n,[((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(v.removeNameArr[r.value[0].id],((e,r)=>((0,l.openBlock)(),(0,l.createElementBlock)("span",{key:r},[(0,l.createElementVNode)("label",c,[(0,l.withDirectives)((0,l.createElementVNode)("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>d.checkedList=e),type:"checkbox",label:e,value:e},null,8,s),[[l.vModelCheckbox,d.checkedList]]),t[2]||(t[2]=(0,l.createElementVNode)("span",{class:"checkbox-custom mr-5",role:"checkbox"},null,-1)),(0,l.createTextVNode)(" "+(0,l.toDisplayString)(e),1)])])))),128))])):((0,l.openBlock)(),(0,l.createElementBlock)("div",i,[(0,l.createElementVNode)("label",m,[(0,l.withDirectives)((0,l.createElementVNode)("input",{"onUpdate:modelValue":t[1]||(t[1]=e=>d.checkedList=e),type:"checkbox"},null,512),[[l.vModelCheckbox,d.checkedList]]),t[3]||(t[3]=(0,l.createElementVNode)("span",{class:"checkbox-custom mr-5",role:"checkbox"},null,-1)),(0,l.createTextVNode)(" "+(0,l.toDisplayString)(e.t("harvester.virtualMachine.promptRemove.deleteAll")),1)])]))]),(0,l.createElementVNode)("div",p,(0,l.toDisplayString)(e.t("harvester.virtualMachine.promptRemove.tips")),1),(0,l.createElementVNode)("div",h,(0,l.toDisplayString)(e.t("promptRemove.protip",{alternateLabel:d.alternateLabel})),1)])}var d=r(65359),v=r(76978),k=r(52225),f=r.n(k),y=r(92043),b=r(32766),N=r(35881),V={name:"HarvesterPromptRemove",props:{value:{type:Array,default:()=>[]},names:{type:Array,default:()=>[]},type:{type:String,required:!0},close:{type:Function,required:!0},doneLocation:{type:Object,default:()=>{}}},data(){return{checkedList:[],checkAll:!0,alternateLabel:N.ZA}},computed:{...(0,d.aH)("action-menu",["toRemove"]),...(0,d.L8)({t:"i18n/t"}),removeNameArr(){const e={};return this.value.forEach((t=>{if(t.type!==b.rk.VM)return;const r=t.spec.template.spec?.volumes||[],l=r.filter((e=>e.persistentVolumeClaim)).map((e=>{if(e.persistentVolumeClaim)return e.name}));e[t.id]=l})),e},plusMore(){const e=this.toRemove.length-this.names.length;return this.t("promptRemove.andOthers",{count:e})}},watch:{removeNameArr:{handler(e){if(1===this.value.length){const t=Object.values(e[this.value[0].id]);this.checkedList.unshift(t[0])}},deep:!0,immediate:!0}},methods:{resourceNames:y.Nr,remove(){let e;this.doneLocation&&(e={...this.doneLocation}),Promise.all(this.value.map((e=>{if(e.type!==b.rk.VM)return void e.remove();let t="";this.value.length>1?this.checkAll&&this.removeNameArr[e.id].forEach((e=>{t+=`removedDisks=${e}&`})):(this.checkedList.forEach((e=>{t+=`removedDisks=${e}&`})),t.replace(/&$/,""));const r=f()(e.links.self);e.remove({url:`${r.pathname}?${t}propagationPolicy=Foreground`})}))).then((t=>{e&&!(0,v.Im)(e)&&this.value?.[0]?.currentRouter().push(e),this.close()})).catch((e=>{this.$emit("errors",e)}))}}},E=r(47433);const g=(0,E.A)(V,[["render",u]]);var x=g}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.promptRemove.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.promptRemove.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.promptRemove.js.map new file mode 100644 index 00000000..2fff2e8b --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.promptRemove.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.promptRemove.js","mappings":"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","sources":["webpack://harvester-1.5.0-dev/./promptRemove/kubevirt.io.virtualmachine.vue","webpack://harvester-1.5.0-dev/./promptRemove/kubevirt.io.virtualmachine.vue?8f77"],"sourcesContent":["<script>\nimport { mapState, mapGetters } from 'vuex';\nimport { isEmpty } from '@shell/utils/object';\nimport Parse from 'url-parse';\nimport { resourceNames } from '@shell/utils/string';\nimport { HCI } from '../types';\nimport { alternateLabel as alternateLabelButton } from '@shell/utils/platform';\n\nexport default {\n name: 'HarvesterPromptRemove',\n\n props: {\n value: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n names: {\n type: Array,\n default: () => {\n return [];\n }\n },\n\n type: {\n type: String,\n required: true\n },\n close: {\n type: Function,\n required: true\n },\n doneLocation: {\n type: Object,\n default: () => {}\n }\n },\n\n data() {\n return {\n checkedList: [],\n checkAll: true,\n alternateLabel: alternateLabelButton\n };\n },\n\n computed: {\n ...mapState('action-menu', ['toRemove']),\n ...mapGetters({ t: 'i18n/t' }),\n\n removeNameArr() {\n const out = {};\n\n this.value.forEach((crd) => {\n if (crd.type !== HCI.VM) {\n return;\n }\n const volumes = crd.spec.template.spec?.volumes || [];\n const names = volumes.filter((volume) => volume.persistentVolumeClaim ).map((volume) => {\n if (volume.persistentVolumeClaim) {\n return volume.name;\n }\n });\n\n out[crd.id] = names;\n });\n\n return out;\n },\n\n plusMore() {\n const remaining = this.toRemove.length - this.names.length;\n\n return this.t('promptRemove.andOthers', { count: remaining });\n },\n },\n\n watch: {\n removeNameArr: {\n handler(neu) {\n if (this.value.length === 1) {\n const keys = Object.values(neu[this.value[0].id]);\n\n this.checkedList.unshift(keys[0]);\n }\n },\n deep: true,\n immediate: true\n }\n },\n\n methods: {\n resourceNames,\n remove() {\n let goTo;\n\n if (this.doneLocation) {\n // doneLocation will recompute to undefined when delete request completes\n goTo = { ...this.doneLocation };\n }\n\n Promise.all(this.value.map((resource) => {\n if (resource.type !== HCI.VM) { // maybe is VMI\n resource.remove();\n\n return;\n }\n\n let removedDisks = '';\n\n if (this.value.length > 1) {\n if (this.checkAll) {\n this.removeNameArr[resource.id].forEach((item) => {\n removedDisks += `removedDisks=${ item }&`;\n });\n }\n } else {\n this.checkedList.forEach((item) => {\n removedDisks += `removedDisks=${ item }&`;\n });\n removedDisks.replace(/&$/, '');\n }\n\n const parsed = Parse(resource.links.self);\n\n resource.remove({ url: `${ parsed.pathname }?${ removedDisks }propagationPolicy=Foreground` });\n })).then((_results) => {\n if ( goTo && !isEmpty(goTo) ) {\n this.value?.[0]?.currentRouter().push(goTo);\n }\n this.close();\n }).catch((err) => {\n this.$emit('errors', err);\n });\n }\n }\n};\n</script>\n\n<template>\n <div>\n <div class=\"mt-10\">\n {{ t('promptRemove.attemptingToRemove', {type}) }}\n <span v-clean-html=\"resourceNames(names, plusMore, t)\"></span>\n\n <div class=\"mt-10\">\n {{ t('harvester.virtualMachine.promptRemove.title') }}\n </div>\n <div v-if=\"value.length === 1\">\n <span\n v-for=\"(name, i) in removeNameArr[value[0].id]\"\n :key=\"i\"\n >\n <label class=\"checkbox-container mr-15\">\n <input\n v-model=\"checkedList\"\n type=\"checkbox\"\n :label=\"name\"\n :value=\"name\"\n />\n <span\n class=\"checkbox-custom mr-5\"\n role=\"checkbox\"\n />\n {{ name }}\n </label>\n </span>\n </div>\n <div v-else>\n <label class=\"checkbox-container mr-15\">\n <input\n v-model=\"checkedList\"\n type=\"checkbox\"\n />\n <span\n class=\"checkbox-custom mr-5\"\n role=\"checkbox\"\n />\n {{ t('harvester.virtualMachine.promptRemove.deleteAll') }}\n </label>\n </div>\n </div>\n <div class=\"text-warning mb-10 mt-10\">\n {{ t('harvester.virtualMachine.promptRemove.tips') }}\n </div>\n <div class=\"text-info mt-20\">\n {{ t('promptRemove.protip', { alternateLabel }) }}\n </div>\n </div>\n</template>\n","import { render } from \"./kubevirt.io.virtualmachine.vue?vue&type=template&id=695ba7fe\"\nimport script from \"./kubevirt.io.virtualmachine.vue?vue&type=script&lang=js\"\nexport * from \"./kubevirt.io.virtualmachine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","key","_createElementBlock","_createElementVNode","_hoisted_1","_createTextVNode","_toDisplayString","_ctx","t","type","$props","$options","resourceNames","names","plusMore","_hoisted_2","value","length","_hoisted_3","_Fragment","_renderList","removeNameArr","id","name","i","_hoisted_4","_cache","$event","$data","checkedList","label","_hoisted_5","role","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","alternateLabel","props","Array","default","String","required","close","Function","doneLocation","Object","data","checkAll","alternateLabelButton","computed","mapState","mapGetters","out","this","forEach","crd","HCI","VM","volumes","spec","template","filter","volume","persistentVolumeClaim","map","remaining","toRemove","count","watch","handler","neu","keys","values","unshift","deep","immediate","methods","remove","goTo","Promise","all","resource","removedDisks","item","replace","parsed","Parse","links","self","url","pathname","then","_results","isEmpty","currentRouter","push","catch","err","$emit","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.xterm.js b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.xterm.js new file mode 100644 index 00000000..12336f41 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.xterm.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]=("undefined"!==typeof self?self:this)["webpackChunkharvester_1_5_0_dev"]||[]).push([[935],{34462:function(e){!function(t,i){e.exports=i()}(self,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal)return;if(!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core,t=e._renderService.dimensions;if(0===t.css.cell.width||0===t.css.cell.height)return;const i=0===this._terminal.options.scrollback?0:e.viewport.scrollBarWidth,s=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(s.getPropertyValue("height")),n=Math.max(0,parseInt(s.getPropertyValue("width"))),o=window.getComputedStyle(this._terminal.element),a=r-(parseInt(o.getPropertyValue("padding-top"))+parseInt(o.getPropertyValue("padding-bottom"))),h=n-(parseInt(o.getPropertyValue("padding-right"))+parseInt(o.getPropertyValue("padding-left")))-i;return{cols:Math.max(2,Math.floor(h/t.css.cell.width)),rows:Math.max(1,Math.floor(a/t.css.cell.height))}}}})(),e})()))},720:function(e){!function(t,i){e.exports=i()}(self,(()=>(()=>{"use strict";var e={345:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let s=0;s<this._listeners.length;s++)i.push(this._listeners[s]);for(let s=0;s<i.length;s++)i[s].call(void 0,e,t)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))}},859:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||(null===(t=this._value)||void 0===t||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,null===(e=this._value)||void 0===e||e.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s](n,n.exports,i),n.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,"__esModule",{value:!0}),e.SearchAddon=void 0;const t=i(345),r=i(859),n=" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?";class o extends r.Disposable{constructor(e){var i;super(),this._highlightedLines=new Set,this._highlightDecorations=[],this._selectedDecoration=this.register(new r.MutableDisposable),this._linesCacheTimeoutId=0,this._onDidChangeResults=this.register(new t.EventEmitter),this.onDidChangeResults=this._onDidChangeResults.event,this._highlightLimit=null!==(i=null==e?void 0:e.highlightLimit)&&void 0!==i?i:1e3}activate(e){this._terminal=e,this.register(this._terminal.onWriteParsed((()=>this._updateMatches()))),this.register(this._terminal.onResize((()=>this._updateMatches()))),this.register((0,r.toDisposable)((()=>this.clearDecorations())))}_updateMatches(){var e;this._highlightTimeout&&window.clearTimeout(this._highlightTimeout),this._cachedSearchTerm&&(null===(e=this._lastSearchOptions)||void 0===e?void 0:e.decorations)&&(this._highlightTimeout=setTimeout((()=>{const e=this._cachedSearchTerm;this._cachedSearchTerm=void 0,this.findPrevious(e,Object.assign(Object.assign({},this._lastSearchOptions),{incremental:!0,noScroll:!0}))}),200))}clearDecorations(e){this._selectedDecoration.clear(),(0,r.disposeArray)(this._highlightDecorations),this._highlightDecorations=[],this._highlightedLines.clear(),e||(this._cachedSearchTerm=void 0)}findNext(e,t){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");this._lastSearchOptions=t,(null==t?void 0:t.decorations)&&(void 0!==this._cachedSearchTerm&&e===this._cachedSearchTerm||this._highlightAllMatches(e,t));const i=this._findNextAndSelect(e,t);return this._fireResults(t),this._cachedSearchTerm=e,i}_highlightAllMatches(e,t){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");if(!e||0===e.length)return void this.clearDecorations();t=t||{},this.clearDecorations(!0);const i=[];let s,r=this._find(e,0,0,t);for(;r&&((null==s?void 0:s.row)!==r.row||(null==s?void 0:s.col)!==r.col)&&!(i.length>=this._highlightLimit);)s=r,i.push(s),r=this._find(e,s.col+s.term.length>=this._terminal.cols?s.row+1:s.row,s.col+s.term.length>=this._terminal.cols?0:s.col+1,t);for(const n of i){const e=this._createResultDecoration(n,t.decorations);e&&(this._highlightedLines.add(e.marker.line),this._highlightDecorations.push({decoration:e,match:n,dispose(){e.dispose()}}))}}_find(e,t,i,s){var r;if(!this._terminal||!e||0===e.length)return null===(r=this._terminal)||void 0===r||r.clearSelection(),void this.clearDecorations();if(i>this._terminal.cols)throw new Error(`Invalid col: ${i} to search in terminal of ${this._terminal.cols} cols`);let n;this._initLinesCache();const o={startRow:t,startCol:i};if(n=this._findInLine(e,o,s),!n)for(let a=t+1;a<this._terminal.buffer.active.baseY+this._terminal.rows&&(o.startRow=a,o.startCol=0,n=this._findInLine(e,o,s),!n);a++);return n}_findNextAndSelect(e,t){var i;if(!this._terminal||!e||0===e.length)return null===(i=this._terminal)||void 0===i||i.clearSelection(),this.clearDecorations(),!1;const s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let r=0,n=0;s&&(this._cachedSearchTerm===e?(r=s.end.x,n=s.end.y):(r=s.start.x,n=s.start.y)),this._initLinesCache();const o={startRow:n,startCol:r};let a=this._findInLine(e,o,t);if(!a)for(let h=n+1;h<this._terminal.buffer.active.baseY+this._terminal.rows&&(o.startRow=h,o.startCol=0,a=this._findInLine(e,o,t),!a);h++);if(!a&&0!==n)for(let h=0;h<n&&(o.startRow=h,o.startCol=0,a=this._findInLine(e,o,t),!a);h++);return!a&&s&&(o.startRow=s.start.y,o.startCol=0,a=this._findInLine(e,o,t)),this._selectResult(a,null==t?void 0:t.decorations,null==t?void 0:t.noScroll)}findPrevious(e,t){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");this._lastSearchOptions=t,(null==t?void 0:t.decorations)&&(void 0!==this._cachedSearchTerm&&e===this._cachedSearchTerm||this._highlightAllMatches(e,t));const i=this._findPreviousAndSelect(e,t);return this._fireResults(t),this._cachedSearchTerm=e,i}_fireResults(e){if(null==e?void 0:e.decorations){let e=-1;if(this._selectedDecoration.value){const t=this._selectedDecoration.value.match;for(let i=0;i<this._highlightDecorations.length;i++){const s=this._highlightDecorations[i].match;if(s.row===t.row&&s.col===t.col&&s.size===t.size){e=i;break}}}this._onDidChangeResults.fire({resultIndex:e,resultCount:this._highlightDecorations.length})}}_findPreviousAndSelect(e,t){var i;if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");if(!this._terminal||!e||0===e.length)return null===(i=this._terminal)||void 0===i||i.clearSelection(),this.clearDecorations(),!1;const s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let r=this._terminal.buffer.active.baseY+this._terminal.rows-1,n=this._terminal.cols;const o=!0;this._initLinesCache();const a={startRow:r,startCol:n};let h;if(s&&(a.startRow=r=s.start.y,a.startCol=n=s.start.x,this._cachedSearchTerm!==e&&(h=this._findInLine(e,a,t,!1),h||(a.startRow=r=s.end.y,a.startCol=n=s.end.x))),h||(h=this._findInLine(e,a,t,o)),!h){a.startCol=Math.max(a.startCol,this._terminal.cols);for(let i=r-1;i>=0&&(a.startRow=i,h=this._findInLine(e,a,t,o),!h);i--);}if(!h&&r!==this._terminal.buffer.active.baseY+this._terminal.rows-1)for(let l=this._terminal.buffer.active.baseY+this._terminal.rows-1;l>=r&&(a.startRow=l,h=this._findInLine(e,a,t,o),!h);l--);return this._selectResult(h,null==t?void 0:t.decorations,null==t?void 0:t.noScroll)}_initLinesCache(){const e=this._terminal;this._linesCache||(this._linesCache=new Array(e.buffer.active.length),this._cursorMoveListener=e.onCursorMove((()=>this._destroyLinesCache())),this._resizeListener=e.onResize((()=>this._destroyLinesCache()))),window.clearTimeout(this._linesCacheTimeoutId),this._linesCacheTimeoutId=window.setTimeout((()=>this._destroyLinesCache()),15e3)}_destroyLinesCache(){this._linesCache=void 0,this._cursorMoveListener&&(this._cursorMoveListener.dispose(),this._cursorMoveListener=void 0),this._resizeListener&&(this._resizeListener.dispose(),this._resizeListener=void 0),this._linesCacheTimeoutId&&(window.clearTimeout(this._linesCacheTimeoutId),this._linesCacheTimeoutId=0)}_isWholeWord(e,t,i){return(0===e||n.includes(t[e-1]))&&(e+i.length===t.length||n.includes(t[e+i.length]))}_findInLine(e,t,i={},s=!1){var r;const n=this._terminal,o=t.startRow,a=t.startCol,h=n.buffer.active.getLine(o);if(null==h?void 0:h.isWrapped)return s?void(t.startCol+=n.cols):(t.startRow--,t.startCol+=n.cols,this._findInLine(e,t,i));let l=null===(r=this._linesCache)||void 0===r?void 0:r[o];l||(l=this._translateBufferLineToStringWithWrap(o,!0),this._linesCache&&(this._linesCache[o]=l));const[c,d]=l,_=this._bufferColsToStringOffset(o,a),u=i.caseSensitive?e:e.toLowerCase(),f=i.caseSensitive?c:c.toLowerCase();let v=-1;if(i.regex){const t=RegExp(u,"g");let i;if(s)for(;i=t.exec(f.slice(0,_));)v=t.lastIndex-i[0].length,e=i[0],t.lastIndex-=e.length-1;else i=t.exec(f.slice(_)),i&&i[0].length>0&&(v=_+(t.lastIndex-i[0].length),e=i[0])}else s?_-u.length>=0&&(v=f.lastIndexOf(u,_-u.length)):v=f.indexOf(u,_);if(v>=0){if(i.wholeWord&&!this._isWholeWord(v,f,e))return;let t=0;for(;t<d.length-1&&v>=d[t+1];)t++;let s=t;for(;s<d.length-1&&v+e.length>=d[s+1];)s++;const r=v-d[t],a=v+e.length-d[s],h=this._stringLengthToBufferSize(o+t,r);return{term:e,col:h,row:o+t,size:this._stringLengthToBufferSize(o+s,a)-h+n.cols*(s-t)}}}_stringLengthToBufferSize(e,t){const i=this._terminal.buffer.active.getLine(e);if(!i)return 0;for(let s=0;s<t;s++){const e=i.getCell(s);if(!e)break;const r=e.getChars();r.length>1&&(t-=r.length-1);const n=i.getCell(s+1);n&&0===n.getWidth()&&t++}return t}_bufferColsToStringOffset(e,t){const i=this._terminal;let s=e,r=0,n=i.buffer.active.getLine(s);for(;t>0&&n;){for(let e=0;e<t&&e<i.cols;e++){const t=n.getCell(e);if(!t)break;t.getWidth()&&(r+=0===t.getCode()?1:t.getChars().length)}if(s++,n=i.buffer.active.getLine(s),n&&!n.isWrapped)break;t-=i.cols}return r}_translateBufferLineToStringWithWrap(e,t){var i;const s=this._terminal,r=[],n=[0];let o=s.buffer.active.getLine(e);for(;o;){const a=s.buffer.active.getLine(e+1),h=!!a&&a.isWrapped;let l=o.translateToString(!h&&t);if(h&&a){const e=o.getCell(o.length-1);e&&0===e.getCode()&&1===e.getWidth()&&2===(null===(i=a.getCell(0))||void 0===i?void 0:i.getWidth())&&(l=l.slice(0,-1))}if(r.push(l),!h)break;n.push(n[n.length-1]+l.length),e++,o=a}return[r.join(""),n]}_selectResult(e,t,i){const s=this._terminal;if(this._selectedDecoration.clear(),!e)return s.clearSelection(),!1;if(s.select(e.col,e.row,e.size),t){const i=s.registerMarker(-s.buffer.active.baseY-s.buffer.active.cursorY+e.row);if(i){const n=s.registerDecoration({marker:i,x:e.col,width:e.size,backgroundColor:t.activeMatchBackground,layer:"top",overviewRulerOptions:{color:t.activeMatchColorOverviewRuler}});if(n){const s=[];s.push(i),s.push(n.onRender((e=>this._applyStyles(e,t.activeMatchBorder,!0)))),s.push(n.onDispose((()=>(0,r.disposeArray)(s)))),this._selectedDecoration.value={decoration:n,match:e,dispose(){n.dispose()}}}}}if(!i&&(e.row>=s.buffer.active.viewportY+s.rows||e.row<s.buffer.active.viewportY)){let t=e.row-s.buffer.active.viewportY;t-=Math.floor(s.rows/2),s.scrollLines(t)}return!0}_applyStyles(e,t,i){e.classList.contains("xterm-find-result-decoration")||(e.classList.add("xterm-find-result-decoration"),t&&(e.style.outline=`1px solid ${t}`)),i&&e.classList.add("xterm-find-active-result-decoration")}_createResultDecoration(e,t){const i=this._terminal,s=i.registerMarker(-i.buffer.active.baseY-i.buffer.active.cursorY+e.row);if(!s)return;const n=i.registerDecoration({marker:s,x:e.col,width:e.size,backgroundColor:t.matchBackground,overviewRulerOptions:this._highlightedLines.has(s.line)?void 0:{color:t.matchOverviewRuler,position:"center"}});if(n){const e=[];e.push(s),e.push(n.onRender((e=>this._applyStyles(e,t.matchBorder,!1)))),e.push(n.onDispose((()=>(0,r.disposeArray)(e))))}return n}}e.SearchAddon=o})(),s})()))},72338:function(e,t,i){var s=i(4364);!function(t,i){e.exports=i()}(self,(()=>(()=>{"use strict";var e={6:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkComputer=t.WebLinkProvider=void 0,t.WebLinkProvider=class{constructor(e,t,i,s={}){this._terminal=e,this._regex=t,this._handler=i,this._options=s}provideLinks(e,t){const s=i.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(s))}_addCallbacks(e){return e.map((e=>(e.leave=this._options.leave,e.hover=(t,i)=>{if(this._options.hover){const{range:s}=e;this._options.hover(t,i,s)}},e)))}};class i{static computeLink(e,t,s,r){const n=new RegExp(t.source,(t.flags||"")+"g"),[o,a]=i._getWindowedLineStrings(e-1,s),h=o.join("");let l;const c=[];for(;l=n.exec(h);){const t=l[0];try{const e=new URL(t),i=decodeURI(e.toString());if(t!==i&&t+"/"!==i)continue}catch(e){continue}const[n,o]=i._mapStrIdx(s,a,0,l.index),[h,d]=i._mapStrIdx(s,n,o,t.length);if(-1===n||-1===o||-1===h||-1===d)continue;const _={start:{x:o+1,y:n+1},end:{x:d,y:h+1}};c.push({range:_,text:t,activate:r})}return c}static _getWindowedLineStrings(e,t){let i,s=e,r=e,n=0,o="";const a=[];if(i=t.buffer.active.getLine(e)){const e=i.translateToString(!0);if(i.isWrapped&&" "!==e[0]){for(n=0;(i=t.buffer.active.getLine(--s))&&n<2048&&(o=i.translateToString(!0),n+=o.length,a.push(o),i.isWrapped&&-1===o.indexOf(" ")););a.reverse()}for(a.push(e),n=0;(i=t.buffer.active.getLine(++r))&&i.isWrapped&&n<2048&&(o=i.translateToString(!0),n+=o.length,a.push(o),-1===o.indexOf(" ")););}return[a,s]}static _mapStrIdx(e,t,i,s){const r=e.buffer.active,n=r.getNullCell();let o=i;for(;s;){const e=r.getLine(t);if(!e)return[-1,-1];for(let i=o;i<e.length;++i){e.getCell(i,n);const o=n.getChars();if(n.getWidth()&&(s-=o.length||1,i===e.length-1&&""===o)){const e=r.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,n),2===n.getWidth()&&(s+=1))}if(s<0)return[t,i]}t++,o=0}return[t,o]}}t.LinkComputer=i}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s](n,n.exports,i),n.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.WebLinksAddon=void 0;const t=i(6),n=/https?:[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function o(e,t){const i=window.open();if(i){try{i.opener=null}catch(e){}i.location.href=t}else s.warn("Opening link blocked as opener could not be cleared")}e.WebLinksAddon=class{constructor(e=o,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;const i=this._options,s=i.urlRegex||n;this._linkProvider=this._terminal.registerLinkProvider(new t.WebLinkProvider(this._terminal,s,this._handler,i))}dispose(){var e;null===(e=this._linkProvider)||void 0===e||e.dispose()}}})(),r})()))},90382:function(e,t,i){var s=i(4364);!function(t,i){e.exports=i()}(self,(()=>(()=>{"use strict";var e={965:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.GlyphRenderer=void 0;const r=i(374),n=i(509),o=i(855),a=i(859),h=i(776),l=i(381),c=11,d=c*Float32Array.BYTES_PER_ELEMENT;let _,u=0,f=0,v=0;class g extends a.Disposable{constructor(e,t,i){super(),this._terminal=e,this._gl=t,this._dimensions=i,this._activeBuffer=0,this._vertices={count:0,attributes:new Float32Array(0),attributesBuffers:[new Float32Array(0),new Float32Array(0)]};const s=this._gl;void 0===n.TextureAtlas.maxAtlasPages&&(n.TextureAtlas.maxAtlasPages=Math.min(32,(0,r.throwIfFalsy)(s.getParameter(s.MAX_TEXTURE_IMAGE_UNITS))),n.TextureAtlas.maxTextureSize=(0,r.throwIfFalsy)(s.getParameter(s.MAX_TEXTURE_SIZE))),this._program=(0,r.throwIfFalsy)((0,l.createProgram)(s,"#version 300 es\nlayout (location = 0) in vec2 a_unitquad;\nlayout (location = 1) in vec2 a_cellpos;\nlayout (location = 2) in vec2 a_offset;\nlayout (location = 3) in vec2 a_size;\nlayout (location = 4) in float a_texpage;\nlayout (location = 5) in vec2 a_texcoord;\nlayout (location = 6) in vec2 a_texsize;\n\nuniform mat4 u_projection;\nuniform vec2 u_resolution;\n\nout vec2 v_texcoord;\nflat out int v_texpage;\n\nvoid main() {\n vec2 zeroToOne = (a_offset / u_resolution) + a_cellpos + (a_unitquad * a_size);\n gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);\n v_texpage = int(a_texpage);\n v_texcoord = a_texcoord + a_unitquad * a_texsize;\n}",function(e){let t="";for(let i=1;i<e;i++)t+=` else if (v_texpage == ${i}) { outColor = texture(u_texture[${i}], v_texcoord); }`;return`#version 300 es\nprecision lowp float;\n\nin vec2 v_texcoord;\nflat in int v_texpage;\n\nuniform sampler2D u_texture[${e}];\n\nout vec4 outColor;\n\nvoid main() {\n if (v_texpage == 0) {\n outColor = texture(u_texture[0], v_texcoord);\n } ${t}\n}`}(n.TextureAtlas.maxAtlasPages))),this.register((0,a.toDisposable)((()=>s.deleteProgram(this._program)))),this._projectionLocation=(0,r.throwIfFalsy)(s.getUniformLocation(this._program,"u_projection")),this._resolutionLocation=(0,r.throwIfFalsy)(s.getUniformLocation(this._program,"u_resolution")),this._textureLocation=(0,r.throwIfFalsy)(s.getUniformLocation(this._program,"u_texture")),this._vertexArrayObject=s.createVertexArray(),s.bindVertexArray(this._vertexArrayObject);const o=new Float32Array([0,0,1,0,0,1,1,1]),h=s.createBuffer();this.register((0,a.toDisposable)((()=>s.deleteBuffer(h)))),s.bindBuffer(s.ARRAY_BUFFER,h),s.bufferData(s.ARRAY_BUFFER,o,s.STATIC_DRAW),s.enableVertexAttribArray(0),s.vertexAttribPointer(0,2,this._gl.FLOAT,!1,0,0);const c=new Uint8Array([0,1,2,3]),_=s.createBuffer();this.register((0,a.toDisposable)((()=>s.deleteBuffer(_)))),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,_),s.bufferData(s.ELEMENT_ARRAY_BUFFER,c,s.STATIC_DRAW),this._attributesBuffer=(0,r.throwIfFalsy)(s.createBuffer()),this.register((0,a.toDisposable)((()=>s.deleteBuffer(this._attributesBuffer)))),s.bindBuffer(s.ARRAY_BUFFER,this._attributesBuffer),s.enableVertexAttribArray(2),s.vertexAttribPointer(2,2,s.FLOAT,!1,d,0),s.vertexAttribDivisor(2,1),s.enableVertexAttribArray(3),s.vertexAttribPointer(3,2,s.FLOAT,!1,d,2*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(3,1),s.enableVertexAttribArray(4),s.vertexAttribPointer(4,1,s.FLOAT,!1,d,4*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(4,1),s.enableVertexAttribArray(5),s.vertexAttribPointer(5,2,s.FLOAT,!1,d,5*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(5,1),s.enableVertexAttribArray(6),s.vertexAttribPointer(6,2,s.FLOAT,!1,d,7*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(6,1),s.enableVertexAttribArray(1),s.vertexAttribPointer(1,2,s.FLOAT,!1,d,9*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(1,1),s.useProgram(this._program);const u=new Int32Array(n.TextureAtlas.maxAtlasPages);for(let r=0;r<n.TextureAtlas.maxAtlasPages;r++)u[r]=r;s.uniform1iv(this._textureLocation,u),s.uniformMatrix4fv(this._projectionLocation,!1,l.PROJECTION_MATRIX),this._atlasTextures=[];for(let d=0;d<n.TextureAtlas.maxAtlasPages;d++){const e=new l.GLTexture((0,r.throwIfFalsy)(s.createTexture()));this.register((0,a.toDisposable)((()=>s.deleteTexture(e.texture)))),s.activeTexture(s.TEXTURE0+d),s.bindTexture(s.TEXTURE_2D,e.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,1,1,0,s.RGBA,s.UNSIGNED_BYTE,new Uint8Array([255,0,0,255])),this._atlasTextures[d]=e}s.enable(s.BLEND),s.blendFunc(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA),this.handleResize()}beginFrame(){return!this._atlas||this._atlas.beginFrame()}updateCell(e,t,i,s,r,n,o,a){this._updateCell(this._vertices.attributes,e,t,i,s,r,n,o,a)}_updateCell(e,t,i,s,r,n,a,h,l){u=(i*this._terminal.cols+t)*c,s!==o.NULL_CELL_CODE&&void 0!==s?this._atlas&&(_=h&&h.length>1?this._atlas.getRasterizedGlyphCombinedChar(h,r,n,a,!1):this._atlas.getRasterizedGlyph(s,r,n,a,!1),f=Math.floor((this._dimensions.device.cell.width-this._dimensions.device.char.width)/2),r!==l&&_.offset.x>f?(v=_.offset.x-f,e[u]=-(_.offset.x-v)+this._dimensions.device.char.left,e[u+1]=-_.offset.y+this._dimensions.device.char.top,e[u+2]=(_.size.x-v)/this._dimensions.device.canvas.width,e[u+3]=_.size.y/this._dimensions.device.canvas.height,e[u+4]=_.texturePage,e[u+5]=_.texturePositionClipSpace.x+v/this._atlas.pages[_.texturePage].canvas.width,e[u+6]=_.texturePositionClipSpace.y,e[u+7]=_.sizeClipSpace.x-v/this._atlas.pages[_.texturePage].canvas.width,e[u+8]=_.sizeClipSpace.y):(e[u]=-_.offset.x+this._dimensions.device.char.left,e[u+1]=-_.offset.y+this._dimensions.device.char.top,e[u+2]=_.size.x/this._dimensions.device.canvas.width,e[u+3]=_.size.y/this._dimensions.device.canvas.height,e[u+4]=_.texturePage,e[u+5]=_.texturePositionClipSpace.x,e[u+6]=_.texturePositionClipSpace.y,e[u+7]=_.sizeClipSpace.x,e[u+8]=_.sizeClipSpace.y)):e.fill(0,u,u+c-1-2)}clear(){const e=this._terminal,t=e.cols*e.rows*c;this._vertices.count!==t?this._vertices.attributes=new Float32Array(t):this._vertices.attributes.fill(0);let i=0;for(;i<this._vertices.attributesBuffers.length;i++)this._vertices.count!==t?this._vertices.attributesBuffers[i]=new Float32Array(t):this._vertices.attributesBuffers[i].fill(0);this._vertices.count=t,i=0;for(let s=0;s<e.rows;s++)for(let t=0;t<e.cols;t++)this._vertices.attributes[i+9]=t/e.cols,this._vertices.attributes[i+10]=s/e.rows,i+=c}handleResize(){const e=this._gl;e.useProgram(this._program),e.viewport(0,0,e.canvas.width,e.canvas.height),e.uniform2f(this._resolutionLocation,e.canvas.width,e.canvas.height),this.clear()}render(e){if(!this._atlas)return;const t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),this._activeBuffer=(this._activeBuffer+1)%2;const i=this._vertices.attributesBuffers[this._activeBuffer];let s=0;for(let r=0;r<e.lineLengths.length;r++){const t=r*this._terminal.cols*c,n=this._vertices.attributes.subarray(t,t+e.lineLengths[r]*c);i.set(n,s),s+=n.length}t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,i.subarray(0,s),t.STREAM_DRAW);for(let r=0;r<this._atlas.pages.length;r++)this._atlas.pages[r].version!==this._atlasTextures[r].version&&this._bindAtlasPageTexture(t,this._atlas,r);t.drawElementsInstanced(t.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,s/c)}setAtlas(e){this._atlas=e;for(const t of this._atlasTextures)t.version=-1}_bindAtlasPageTexture(e,t,i){e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,this._atlasTextures[i].texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.pages[i].canvas),e.generateMipmap(e.TEXTURE_2D),this._atlasTextures[i].version=t.pages[i].version}setDimensions(e){this._dimensions=e}}t.GlyphRenderer=g,s([h.traceCall],g.prototype,"updateCell",null)},742:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RectangleRenderer=void 0;const s=i(374),r=i(859),n=i(310),o=i(381),a=8*Float32Array.BYTES_PER_ELEMENT;class h{constructor(){this.attributes=new Float32Array(160),this.count=0}}let l=0,c=0,d=0,_=0,u=0,f=0,v=0;class g extends r.Disposable{constructor(e,t,i,n){super(),this._terminal=e,this._gl=t,this._dimensions=i,this._themeService=n,this._vertices=new h,this._verticesCursor=new h;const l=this._gl;this._program=(0,s.throwIfFalsy)((0,o.createProgram)(l,"#version 300 es\nlayout (location = 0) in vec2 a_position;\nlayout (location = 1) in vec2 a_size;\nlayout (location = 2) in vec4 a_color;\nlayout (location = 3) in vec2 a_unitquad;\n\nuniform mat4 u_projection;\n\nout vec4 v_color;\n\nvoid main() {\n vec2 zeroToOne = a_position + (a_unitquad * a_size);\n gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);\n v_color = a_color;\n}","#version 300 es\nprecision lowp float;\n\nin vec4 v_color;\n\nout vec4 outColor;\n\nvoid main() {\n outColor = v_color;\n}")),this.register((0,r.toDisposable)((()=>l.deleteProgram(this._program)))),this._projectionLocation=(0,s.throwIfFalsy)(l.getUniformLocation(this._program,"u_projection")),this._vertexArrayObject=l.createVertexArray(),l.bindVertexArray(this._vertexArrayObject);const c=new Float32Array([0,0,1,0,0,1,1,1]),d=l.createBuffer();this.register((0,r.toDisposable)((()=>l.deleteBuffer(d)))),l.bindBuffer(l.ARRAY_BUFFER,d),l.bufferData(l.ARRAY_BUFFER,c,l.STATIC_DRAW),l.enableVertexAttribArray(3),l.vertexAttribPointer(3,2,this._gl.FLOAT,!1,0,0);const _=new Uint8Array([0,1,2,3]),u=l.createBuffer();this.register((0,r.toDisposable)((()=>l.deleteBuffer(u)))),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,u),l.bufferData(l.ELEMENT_ARRAY_BUFFER,_,l.STATIC_DRAW),this._attributesBuffer=(0,s.throwIfFalsy)(l.createBuffer()),this.register((0,r.toDisposable)((()=>l.deleteBuffer(this._attributesBuffer)))),l.bindBuffer(l.ARRAY_BUFFER,this._attributesBuffer),l.enableVertexAttribArray(0),l.vertexAttribPointer(0,2,l.FLOAT,!1,a,0),l.vertexAttribDivisor(0,1),l.enableVertexAttribArray(1),l.vertexAttribPointer(1,2,l.FLOAT,!1,a,2*Float32Array.BYTES_PER_ELEMENT),l.vertexAttribDivisor(1,1),l.enableVertexAttribArray(2),l.vertexAttribPointer(2,4,l.FLOAT,!1,a,4*Float32Array.BYTES_PER_ELEMENT),l.vertexAttribDivisor(2,1),this._updateCachedColors(n.colors),this.register(this._themeService.onChangeColors((e=>{this._updateCachedColors(e),this._updateViewportRectangle()})))}renderBackgrounds(){this._renderVertices(this._vertices)}renderCursor(){this._renderVertices(this._verticesCursor)}_renderVertices(e){const t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),t.uniformMatrix4fv(this._projectionLocation,!1,o.PROJECTION_MATRIX),t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,e.attributes,t.DYNAMIC_DRAW),t.drawElementsInstanced(this._gl.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,e.count)}handleResize(){this._updateViewportRectangle()}setDimensions(e){this._dimensions=e}_updateCachedColors(e){this._bgFloat=this._colorToFloat32Array(e.background),this._cursorFloat=this._colorToFloat32Array(e.cursor)}_updateViewportRectangle(){this._addRectangleFloat(this._vertices.attributes,0,0,0,this._terminal.cols*this._dimensions.device.cell.width,this._terminal.rows*this._dimensions.device.cell.height,this._bgFloat)}updateBackgrounds(e){const t=this._terminal,i=this._vertices;let s,r,o,a,h,l,c,d,_,u,f,v=1;for(s=0;s<t.rows;s++){for(o=-1,a=0,h=0,l=!1,r=0;r<t.cols;r++)c=(s*t.cols+r)*n.RENDER_MODEL_INDICIES_PER_CELL,d=e.cells[c+n.RENDER_MODEL_BG_OFFSET],_=e.cells[c+n.RENDER_MODEL_FG_OFFSET],u=!!(67108864&_),(d!==a||_!==h&&(l||u))&&((0!==a||l&&0!==h)&&(f=8*v++,this._updateRectangle(i,f,h,a,o,r,s)),o=r,a=d,h=_,l=u);(0!==a||l&&0!==h)&&(f=8*v++,this._updateRectangle(i,f,h,a,o,t.cols,s))}i.count=v}updateCursor(e){const t=this._verticesCursor,i=e.cursor;if(!i||"block"===i.style)return void(t.count=0);let s,r=0;"bar"!==i.style&&"outline"!==i.style||(s=8*r++,this._addRectangleFloat(t.attributes,s,i.x*this._dimensions.device.cell.width,i.y*this._dimensions.device.cell.height,"bar"===i.style?i.dpr*i.cursorWidth:i.dpr,this._dimensions.device.cell.height,this._cursorFloat)),"underline"!==i.style&&"outline"!==i.style||(s=8*r++,this._addRectangleFloat(t.attributes,s,i.x*this._dimensions.device.cell.width,(i.y+1)*this._dimensions.device.cell.height-i.dpr,i.width*this._dimensions.device.cell.width,i.dpr,this._cursorFloat)),"outline"===i.style&&(s=8*r++,this._addRectangleFloat(t.attributes,s,i.x*this._dimensions.device.cell.width,i.y*this._dimensions.device.cell.height,i.width*this._dimensions.device.cell.width,i.dpr,this._cursorFloat),s=8*r++,this._addRectangleFloat(t.attributes,s,(i.x+i.width)*this._dimensions.device.cell.width-i.dpr,i.y*this._dimensions.device.cell.height,i.dpr,this._dimensions.device.cell.height,this._cursorFloat)),t.count=r}_updateRectangle(e,t,i,s,r,n,a){if(67108864&i)switch(50331648&i){case 16777216:case 33554432:l=this._themeService.colors.ansi[255&i].rgba;break;case 50331648:l=(16777215&i)<<8;break;default:l=this._themeService.colors.foreground.rgba}else switch(50331648&s){case 16777216:case 33554432:l=this._themeService.colors.ansi[255&s].rgba;break;case 50331648:l=(16777215&s)<<8;break;default:l=this._themeService.colors.background.rgba}e.attributes.length<t+4&&(e.attributes=(0,o.expandFloat32Array)(e.attributes,this._terminal.rows*this._terminal.cols*8)),c=r*this._dimensions.device.cell.width,d=a*this._dimensions.device.cell.height,_=(l>>24&255)/255,u=(l>>16&255)/255,f=(l>>8&255)/255,v=1,this._addRectangle(e.attributes,t,c,d,(n-r)*this._dimensions.device.cell.width,this._dimensions.device.cell.height,_,u,f,v)}_addRectangle(e,t,i,s,r,n,o,a,h,l){e[t]=i/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=r/this._dimensions.device.canvas.width,e[t+3]=n/this._dimensions.device.canvas.height,e[t+4]=o,e[t+5]=a,e[t+6]=h,e[t+7]=l}_addRectangleFloat(e,t,i,s,r,n,o){e[t]=i/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=r/this._dimensions.device.canvas.width,e[t+3]=n/this._dimensions.device.canvas.height,e[t+4]=o[0],e[t+5]=o[1],e[t+6]=o[2],e[t+7]=o[3]}_colorToFloat32Array(e){return new Float32Array([(e.rgba>>24&255)/255,(e.rgba>>16&255)/255,(e.rgba>>8&255)/255,(255&e.rgba)/255])}}t.RectangleRenderer=g},310:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderModel=t.COMBINED_CHAR_BIT_MASK=t.RENDER_MODEL_EXT_OFFSET=t.RENDER_MODEL_FG_OFFSET=t.RENDER_MODEL_BG_OFFSET=t.RENDER_MODEL_INDICIES_PER_CELL=void 0;const s=i(296);t.RENDER_MODEL_INDICIES_PER_CELL=4,t.RENDER_MODEL_BG_OFFSET=1,t.RENDER_MODEL_FG_OFFSET=2,t.RENDER_MODEL_EXT_OFFSET=3,t.COMBINED_CHAR_BIT_MASK=2147483648,t.RenderModel=class{constructor(){this.cells=new Uint32Array(0),this.lineLengths=new Uint32Array(0),this.selection=(0,s.createSelectionRenderModel)()}resize(e,i){const s=e*i*t.RENDER_MODEL_INDICIES_PER_CELL;s!==this.cells.length&&(this.cells=new Uint32Array(s),this.lineLengths=new Uint32Array(i))}clear(){this.cells.fill(0,0),this.lineLengths.fill(0,0)}}},666:function(e,t,i){var r=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.JoinedCellData=t.WebglRenderer=void 0;const n=i(820),o=i(274),a=i(627),h=i(457),l=i(56),c=i(374),d=i(345),_=i(859),u=i(147),f=i(782),v=i(855),g=i(776),p=i(965),m=i(742),C=i(310),S=i(733);class b extends _.Disposable{constructor(e,t,i,r,h,u,v,g,p){super(),this._terminal=e,this._characterJoinerService=t,this._charSizeService=i,this._coreBrowserService=r,this._coreService=h,this._decorationService=u,this._optionsService=v,this._themeService=g,this._cursorBlinkStateManager=new _.MutableDisposable,this._charAtlasDisposable=this.register(new _.MutableDisposable),this._model=new C.RenderModel,this._workCell=new f.CellData,this._rectangleRenderer=this.register(new _.MutableDisposable),this._glyphRenderer=this.register(new _.MutableDisposable),this._onChangeTextureAtlas=this.register(new d.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new d.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new d.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onRequestRedraw=this.register(new d.EventEmitter),this.onRequestRedraw=this._onRequestRedraw.event,this._onContextLoss=this.register(new d.EventEmitter),this.onContextLoss=this._onContextLoss.event,this.register(this._themeService.onChangeColors((()=>this._handleColorChange()))),this._cellColorResolver=new o.CellColorResolver(this._terminal,this._model.selection,this._decorationService,this._coreBrowserService,this._themeService),this._core=this._terminal._core,this._renderLayers=[new S.LinkRenderLayer(this._core.screenElement,2,this._terminal,this._core.linkifier2,this._coreBrowserService,v,this._themeService)],this.dimensions=(0,c.createRenderDimensions)(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._updateCursorBlink(),this.register(v.onOptionChange((()=>this._handleOptionsChanged()))),this._canvas=document.createElement("canvas");const m={antialias:!1,depth:!1,preserveDrawingBuffer:p};if(this._gl=this._canvas.getContext("webgl2",m),!this._gl)throw new Error("WebGL2 not supported "+this._gl);this.register((0,n.addDisposableDomListener)(this._canvas,"webglcontextlost",(e=>{s.log("webglcontextlost event received"),e.preventDefault(),this._contextRestorationTimeout=setTimeout((()=>{this._contextRestorationTimeout=void 0,s.warn("webgl context not restored; firing onContextLoss"),this._onContextLoss.fire(e)}),3e3)}))),this.register((0,n.addDisposableDomListener)(this._canvas,"webglcontextrestored",(e=>{s.warn("webglcontextrestored event received"),clearTimeout(this._contextRestorationTimeout),this._contextRestorationTimeout=void 0,(0,a.removeTerminalFromCache)(this._terminal),this._initializeWebGLState(),this._requestRedrawViewport()}))),this.register((0,l.observeDevicePixelDimensions)(this._canvas,this._coreBrowserService.window,((e,t)=>this._setCanvasDevicePixelDimensions(e,t)))),this._core.screenElement.appendChild(this._canvas),[this._rectangleRenderer.value,this._glyphRenderer.value]=this._initializeWebGLState(),this._isAttached=this._coreBrowserService.window.document.body.contains(this._core.screenElement),this.register((0,_.toDisposable)((()=>{var e;for(const t of this._renderLayers)t.dispose();null===(e=this._canvas.parentElement)||void 0===e||e.removeChild(this._canvas),(0,a.removeTerminalFromCache)(this._terminal)})))}get textureAtlas(){var e;return null===(e=this._charAtlas)||void 0===e?void 0:e.pages[0].canvas}_handleColorChange(){this._refreshCharAtlas(),this._clearModel(!0)}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._terminal.cols,this._terminal.rows))}handleResize(e,t){var i,s,r,n;this._updateDimensions(),this._model.resize(this._terminal.cols,this._terminal.rows);for(const o of this._renderLayers)o.resize(this._terminal,this.dimensions);this._canvas.width=this.dimensions.device.canvas.width,this._canvas.height=this.dimensions.device.canvas.height,this._canvas.style.width=`${this.dimensions.css.canvas.width}px`,this._canvas.style.height=`${this.dimensions.css.canvas.height}px`,this._core.screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._core.screenElement.style.height=`${this.dimensions.css.canvas.height}px`,null===(i=this._rectangleRenderer.value)||void 0===i||i.setDimensions(this.dimensions),null===(s=this._rectangleRenderer.value)||void 0===s||s.handleResize(),null===(r=this._glyphRenderer.value)||void 0===r||r.setDimensions(this.dimensions),null===(n=this._glyphRenderer.value)||void 0===n||n.handleResize(),this._refreshCharAtlas(),this._clearModel(!1)}handleCharSizeChanged(){this.handleResize(this._terminal.cols,this._terminal.rows)}handleBlur(){var e;for(const t of this._renderLayers)t.handleBlur(this._terminal);null===(e=this._cursorBlinkStateManager.value)||void 0===e||e.pause(),this._requestRedrawViewport()}handleFocus(){var e;for(const t of this._renderLayers)t.handleFocus(this._terminal);null===(e=this._cursorBlinkStateManager.value)||void 0===e||e.resume(),this._requestRedrawViewport()}handleSelectionChanged(e,t,i){for(const s of this._renderLayers)s.handleSelectionChanged(this._terminal,e,t,i);this._model.selection.update(this._terminal,e,t,i),this._requestRedrawViewport()}handleCursorMove(){var e;for(const t of this._renderLayers)t.handleCursorMove(this._terminal);null===(e=this._cursorBlinkStateManager.value)||void 0===e||e.restartBlinkAnimation()}_handleOptionsChanged(){this._updateDimensions(),this._refreshCharAtlas(),this._updateCursorBlink()}_initializeWebGLState(){return this._rectangleRenderer.value=new m.RectangleRenderer(this._terminal,this._gl,this.dimensions,this._themeService),this._glyphRenderer.value=new p.GlyphRenderer(this._terminal,this._gl,this.dimensions),this.handleCharSizeChanged(),[this._rectangleRenderer.value,this._glyphRenderer.value]}_refreshCharAtlas(){var e;if(this.dimensions.device.char.width<=0&&this.dimensions.device.char.height<=0)return void(this._isAttached=!1);const t=(0,a.acquireTextureAtlas)(this._terminal,this._optionsService.rawOptions,this._themeService.colors,this.dimensions.device.cell.width,this.dimensions.device.cell.height,this.dimensions.device.char.width,this.dimensions.device.char.height,this._coreBrowserService.dpr);this._charAtlas!==t&&(this._onChangeTextureAtlas.fire(t.pages[0].canvas),this._charAtlasDisposable.value=(0,_.getDisposeArrayDisposable)([(0,d.forwardEvent)(t.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),(0,d.forwardEvent)(t.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)])),this._charAtlas=t,this._charAtlas.warmUp(),null===(e=this._glyphRenderer.value)||void 0===e||e.setAtlas(this._charAtlas)}_clearModel(e){var t;this._model.clear(),e&&(null===(t=this._glyphRenderer.value)||void 0===t||t.clear())}clearTextureAtlas(){var e;null===(e=this._charAtlas)||void 0===e||e.clearTexture(),this._clearModel(!0),this._requestRedrawViewport()}clear(){var e;this._clearModel(!0);for(const t of this._renderLayers)t.reset(this._terminal);null===(e=this._cursorBlinkStateManager.value)||void 0===e||e.restartBlinkAnimation(),this._updateCursorBlink()}registerCharacterJoiner(e){return-1}deregisterCharacterJoiner(e){return!1}renderRows(e,t){if(!this._isAttached){if(!(this._coreBrowserService.window.document.body.contains(this._core.screenElement)&&this._charSizeService.width&&this._charSizeService.height))return;this._updateDimensions(),this._refreshCharAtlas(),this._isAttached=!0}for(const i of this._renderLayers)i.handleGridChanged(this._terminal,e,t);this._glyphRenderer.value&&this._rectangleRenderer.value&&(this._glyphRenderer.value.beginFrame()?(this._clearModel(!0),this._updateModel(0,this._terminal.rows-1)):this._updateModel(e,t),this._rectangleRenderer.value.renderBackgrounds(),this._glyphRenderer.value.render(this._model),this._cursorBlinkStateManager.value&&!this._cursorBlinkStateManager.value.isCursorVisible||this._rectangleRenderer.value.renderCursor())}_updateCursorBlink(){this._terminal.options.cursorBlink?this._cursorBlinkStateManager.value=new h.CursorBlinkStateManager((()=>{this._requestRedrawCursor()}),this._coreBrowserService):this._cursorBlinkStateManager.clear(),this._requestRedrawCursor()}_updateModel(e,t){const i=this._core;let s,r,n,o,a,h,l,c,d,_,u,f,g,p=this._workCell;e=y(e,i.rows-1,0),t=y(t,i.rows-1,0);const m=this._terminal.buffer.active.baseY+this._terminal.buffer.active.cursorY,S=Math.min(this._terminal.buffer.active.cursorX,i.cols-1);let b=-1;const L=this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden&&(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible);this._model.cursor=void 0;let E=!1;for(r=e;r<=t;r++)for(n=r+i.buffer.ydisp,o=i.buffer.lines.get(n),this._model.lineLengths[r]=0,a=this._characterJoinerService.getJoinedCharacters(n),f=0;f<i.cols;f++)if(s=this._cellColorResolver.result.bg,o.loadCell(f,p),0===f&&(s=this._cellColorResolver.result.bg),h=!1,l=f,a.length>0&&f===a[0][0]&&(h=!0,c=a.shift(),p=new w(p,o.translateToString(!0,c[0],c[1]),c[1]-c[0]),l=c[1]-1),d=p.getChars(),_=p.getCode(),u=(r*i.cols+f)*C.RENDER_MODEL_INDICIES_PER_CELL,this._cellColorResolver.resolve(p,f,n),L&&n===m&&(f===S&&(this._model.cursor={x:S,y:this._terminal.buffer.active.cursorY,width:p.getWidth(),style:this._coreBrowserService.isFocused?i.options.cursorStyle||"block":i.options.cursorInactiveStyle,cursorWidth:i.options.cursorWidth,dpr:this._devicePixelRatio},b=S+p.getWidth()-1),f>=S&&f<=b&&(this._coreBrowserService.isFocused&&"block"===(i.options.cursorStyle||"block")||!1===this._coreBrowserService.isFocused&&"block"===i.options.cursorInactiveStyle)&&(this._cellColorResolver.result.fg=50331648|this._themeService.colors.cursorAccent.rgba>>8&16777215,this._cellColorResolver.result.bg=50331648|this._themeService.colors.cursor.rgba>>8&16777215)),_!==v.NULL_CELL_CODE&&(this._model.lineLengths[r]=f+1),(this._model.cells[u]!==_||this._model.cells[u+C.RENDER_MODEL_BG_OFFSET]!==this._cellColorResolver.result.bg||this._model.cells[u+C.RENDER_MODEL_FG_OFFSET]!==this._cellColorResolver.result.fg||this._model.cells[u+C.RENDER_MODEL_EXT_OFFSET]!==this._cellColorResolver.result.ext)&&(E=!0,d.length>1&&(_|=C.COMBINED_CHAR_BIT_MASK),this._model.cells[u]=_,this._model.cells[u+C.RENDER_MODEL_BG_OFFSET]=this._cellColorResolver.result.bg,this._model.cells[u+C.RENDER_MODEL_FG_OFFSET]=this._cellColorResolver.result.fg,this._model.cells[u+C.RENDER_MODEL_EXT_OFFSET]=this._cellColorResolver.result.ext,this._glyphRenderer.value.updateCell(f,r,_,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,d,s),h))for(p=this._workCell,f++;f<l;f++)g=(r*i.cols+f)*C.RENDER_MODEL_INDICIES_PER_CELL,this._glyphRenderer.value.updateCell(f,r,v.NULL_CELL_CODE,0,0,0,v.NULL_CELL_CHAR,0),this._model.cells[g]=v.NULL_CELL_CODE,this._model.cells[g+C.RENDER_MODEL_BG_OFFSET]=this._cellColorResolver.result.bg,this._model.cells[g+C.RENDER_MODEL_FG_OFFSET]=this._cellColorResolver.result.fg,this._model.cells[g+C.RENDER_MODEL_EXT_OFFSET]=this._cellColorResolver.result.ext;E&&this._rectangleRenderer.value.updateBackgrounds(this._model),this._rectangleRenderer.value.updateCursor(this._model)}_updateDimensions(){this._charSizeService.width&&this._charSizeService.height&&(this.dimensions.device.char.width=Math.floor(this._charSizeService.width*this._devicePixelRatio),this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*this._devicePixelRatio),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.top=1===this._optionsService.rawOptions.lineHeight?0:Math.round((this.dimensions.device.cell.height-this.dimensions.device.char.height)/2),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.char.left=Math.floor(this._optionsService.rawOptions.letterSpacing/2),this.dimensions.device.canvas.height=this._terminal.rows*this.dimensions.device.cell.height,this.dimensions.device.canvas.width=this._terminal.cols*this.dimensions.device.cell.width,this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/this._devicePixelRatio),this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/this._devicePixelRatio),this.dimensions.css.cell.height=this.dimensions.device.cell.height/this._devicePixelRatio,this.dimensions.css.cell.width=this.dimensions.device.cell.width/this._devicePixelRatio)}_setCanvasDevicePixelDimensions(e,t){this._canvas.width===e&&this._canvas.height===t||(this._canvas.width=e,this._canvas.height=t,this._requestRedrawViewport())}_requestRedrawViewport(){this._onRequestRedraw.fire({start:0,end:this._terminal.rows-1})}_requestRedrawCursor(){const e=this._terminal.buffer.active.cursorY;this._onRequestRedraw.fire({start:e,end:e})}}t.WebglRenderer=b,r([g.traceCall],b.prototype,"renderRows",null);class w extends u.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData="",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}function y(e,t,i=0){return Math.max(Math.min(e,t),i)}t.JoinedCellData=w},381:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GLTexture=t.expandFloat32Array=t.createShader=t.createProgram=t.PROJECTION_MATRIX=void 0;const r=i(374);function n(e,t,i){const n=(0,r.throwIfFalsy)(e.createShader(t));if(e.shaderSource(n,i),e.compileShader(n),e.getShaderParameter(n,e.COMPILE_STATUS))return n;s.error(e.getShaderInfoLog(n)),e.deleteShader(n)}t.PROJECTION_MATRIX=new Float32Array([2,0,0,0,0,-2,0,0,0,0,1,0,-1,1,0,1]),t.createProgram=function(e,t,i){const o=(0,r.throwIfFalsy)(e.createProgram());if(e.attachShader(o,(0,r.throwIfFalsy)(n(e,e.VERTEX_SHADER,t))),e.attachShader(o,(0,r.throwIfFalsy)(n(e,e.FRAGMENT_SHADER,i))),e.linkProgram(o),e.getProgramParameter(o,e.LINK_STATUS))return o;s.error(e.getProgramInfoLog(o)),e.deleteProgram(o)},t.createShader=n,t.expandFloat32Array=function(e,t){const i=Math.min(2*e.length,t),s=new Float32Array(i);for(let r=0;r<e.length;r++)s[r]=e[r];return s},t.GLTexture=class{constructor(e){this.texture=e,this.version=-1}}},592:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRenderLayer=void 0;const s=i(627),r=i(237),n=i(374),o=i(859);class a extends o.Disposable{constructor(e,t,i,s,r,n,a,h){super(),this._container=t,this._alpha=r,this._coreBrowserService=n,this._optionsService=a,this._themeService=h,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._canvas=document.createElement("canvas"),this._canvas.classList.add(`xterm-${i}-layer`),this._canvas.style.zIndex=s.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this.register(this._themeService.onChangeColors((t=>{this._refreshCharAtlas(e,t),this.reset(e)}))),this.register((0,o.toDisposable)((()=>{this._canvas.remove()})))}_initCanvas(){this._ctx=(0,n.throwIfFalsy)(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(e){}handleFocus(e){}handleCursorMove(e){}handleGridChanged(e,t,i){}handleSelectionChanged(e,t,i,s=!1){}_setTransparency(e,t){if(t===this._alpha)return;const i=this._canvas;this._alpha=t,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,i),this._refreshCharAtlas(e,this._themeService.colors),this.handleGridChanged(e,0,e.rows-1)}_refreshCharAtlas(e,t){this._deviceCharWidth<=0&&this._deviceCharHeight<=0||(this._charAtlas=(0,s.acquireTextureAtlas)(e,this._optionsService.rawOptions,t,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr),this._charAtlas.warmUp())}resize(e,t){this._deviceCellWidth=t.device.cell.width,this._deviceCellHeight=t.device.cell.height,this._deviceCharWidth=t.device.char.width,this._deviceCharHeight=t.device.char.height,this._deviceCharLeft=t.device.char.left,this._deviceCharTop=t.device.char.top,this._canvas.width=t.device.canvas.width,this._canvas.height=t.device.canvas.height,this._canvas.style.width=`${t.css.canvas.width}px`,this._canvas.style.height=`${t.css.canvas.height}px`,this._alpha||this._clearAll(),this._refreshCharAtlas(e,this._themeService.colors)}_fillBottomLineAtCells(e,t,i=1){this._ctx.fillRect(e*this._deviceCellWidth,(t+1)*this._deviceCellHeight-this._coreBrowserService.dpr-1,i*this._deviceCellWidth,this._coreBrowserService.dpr)}_clearAll(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))}_clearCells(e,t,i,s){this._alpha?this._ctx.clearRect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,s*this._deviceCellHeight):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,s*this._deviceCellHeight))}_fillCharTrueColor(e,t,i,s){this._ctx.font=this._getFont(e,!1,!1),this._ctx.textBaseline=r.TEXT_BASELINE,this._clipCell(i,s,t.getWidth()),this._ctx.fillText(t.getChars(),i*this._deviceCellWidth+this._deviceCharLeft,s*this._deviceCellHeight+this._deviceCharTop+this._deviceCharHeight)}_clipCell(e,t,i){this._ctx.beginPath(),this._ctx.rect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(e,t,i){return`${i?"italic":""} ${t?e.options.fontWeightBold:e.options.fontWeight} ${e.options.fontSize*this._coreBrowserService.dpr}px ${e.options.fontFamily}`}}t.BaseRenderLayer=a},733:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkRenderLayer=void 0;const s=i(197),r=i(237),n=i(592);class o extends n.BaseRenderLayer{constructor(e,t,i,s,r,n,o){super(i,e,"link",t,!0,r,n,o),this.register(s.onShowLinkUnderline((e=>this._handleShowLinkUnderline(e)))),this.register(s.onHideLinkUnderline((e=>this._handleHideLinkUnderline(e))))}resize(e,t){super.resize(e,t),this._state=void 0}reset(e){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);const e=this._state.y2-this._state.y1-1;e>0&&this._clearCells(0,this._state.y1+1,this._state.cols,e),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(e){if(e.fg===r.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._themeService.colors.background.css:void 0!==e.fg&&(0,s.is256Color)(e.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[e.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,e.y1===e.y2)this._fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this._fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(let t=e.y1+1;t<e.y2;t++)this._fillBottomLineAtCells(0,t,e.cols);this._fillBottomLineAtCells(0,e.y2,e.x2)}this._state=e}_handleHideLinkUnderline(e){this._clearCurrentLink()}}t.LinkRenderLayer=o},820:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},274:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellColorResolver=void 0;let i,s=0,r=0,n=!1,o=!1,a=!1;t.CellColorResolver=class{constructor(e,t,i,s,r){this._terminal=e,this._selectionRenderModel=t,this._decorationService=i,this._coreBrowserService=s,this._themeService=r,this.result={fg:0,bg:0,ext:0}}resolve(e,t,h){this.result.bg=e.bg,this.result.fg=e.fg,this.result.ext=268435456&e.bg?e.extended.ext:0,r=0,s=0,o=!1,n=!1,a=!1,i=this._themeService.colors,this._decorationService.forEachDecorationAtCell(t,h,"bottom",(e=>{e.backgroundColorRGB&&(r=e.backgroundColorRGB.rgba>>8&16777215,o=!0),e.foregroundColorRGB&&(s=e.foregroundColorRGB.rgba>>8&16777215,n=!0)})),a=this._selectionRenderModel.isCellSelected(this._terminal,t,h),a&&(r=(this._coreBrowserService.isFocused?i.selectionBackgroundOpaque:i.selectionInactiveBackgroundOpaque).rgba>>8&16777215,o=!0,i.selectionForeground&&(s=i.selectionForeground.rgba>>8&16777215,n=!0)),this._decorationService.forEachDecorationAtCell(t,h,"top",(e=>{e.backgroundColorRGB&&(r=e.backgroundColorRGB.rgba>>8&16777215,o=!0),e.foregroundColorRGB&&(s=e.foregroundColorRGB.rgba>>8&16777215,n=!0)})),o&&(r=a?-16777216&e.bg&-134217729|r|50331648:-16777216&e.bg|r|50331648),n&&(s=-16777216&e.fg&-67108865|s|50331648),67108864&this.result.fg&&(o&&!n&&(s=0==(50331648&this.result.bg)?-134217728&this.result.fg|16777215&i.background.rgba>>8|50331648:-134217728&this.result.fg|67108863&this.result.bg,n=!0),!o&&n&&(r=0==(50331648&this.result.fg)?-67108864&this.result.bg|16777215&i.foreground.rgba>>8|50331648:-67108864&this.result.bg|67108863&this.result.fg,o=!0)),i=void 0,this.result.bg=o?r:this.result.bg,this.result.fg=n?s:this.result.fg}}},627:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.removeTerminalFromCache=t.acquireTextureAtlas=void 0;const s=i(509),r=i(197),n=[];t.acquireTextureAtlas=function(e,t,i,o,a,h,l,c){const d=(0,r.generateConfig)(o,a,h,l,t,i,c);for(let s=0;s<n.length;s++){const t=n[s],i=t.ownedBy.indexOf(e);if(i>=0){if((0,r.configEquals)(t.config,d))return t.atlas;1===t.ownedBy.length?(t.atlas.dispose(),n.splice(s,1)):t.ownedBy.splice(i,1);break}}for(let s=0;s<n.length;s++){const t=n[s];if((0,r.configEquals)(t.config,d))return t.ownedBy.push(e),t.atlas}const _=e._core,u={atlas:new s.TextureAtlas(document,d,_.unicodeService),config:d,ownedBy:[e]};return n.push(u),u.atlas},t.removeTerminalFromCache=function(e){for(let t=0;t<n.length;t++){const i=n[t].ownedBy.indexOf(e);if(-1!==i){1===n[t].ownedBy.length?(n[t].atlas.dispose(),n.splice(t,1)):n[t].ownedBy.splice(i,1);break}}}},197:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.is256Color=t.configEquals=t.generateConfig=void 0;const s=i(160);t.generateConfig=function(e,t,i,r,n,o,a){const h={foreground:o.foreground,background:o.background,cursor:s.NULL_COLOR,cursorAccent:s.NULL_COLOR,selectionForeground:s.NULL_COLOR,selectionBackgroundTransparent:s.NULL_COLOR,selectionBackgroundOpaque:s.NULL_COLOR,selectionInactiveBackgroundTransparent:s.NULL_COLOR,selectionInactiveBackgroundOpaque:s.NULL_COLOR,ansi:o.ansi.slice(),contrastCache:o.contrastCache,halfContrastCache:o.halfContrastCache};return{customGlyphs:n.customGlyphs,devicePixelRatio:a,letterSpacing:n.letterSpacing,lineHeight:n.lineHeight,deviceCellWidth:e,deviceCellHeight:t,deviceCharWidth:i,deviceCharHeight:r,fontFamily:n.fontFamily,fontSize:n.fontSize,fontWeight:n.fontWeight,fontWeightBold:n.fontWeightBold,allowTransparency:n.allowTransparency,drawBoldTextInBrightColors:n.drawBoldTextInBrightColors,minimumContrastRatio:n.minimumContrastRatio,colors:h}},t.configEquals=function(e,t){for(let i=0;i<e.colors.ansi.length;i++)if(e.colors.ansi[i].rgba!==t.colors.ansi[i].rgba)return!1;return e.devicePixelRatio===t.devicePixelRatio&&e.customGlyphs===t.customGlyphs&&e.lineHeight===t.lineHeight&&e.letterSpacing===t.letterSpacing&&e.fontFamily===t.fontFamily&&e.fontSize===t.fontSize&&e.fontWeight===t.fontWeight&&e.fontWeightBold===t.fontWeightBold&&e.allowTransparency===t.allowTransparency&&e.deviceCharWidth===t.deviceCharWidth&&e.deviceCharHeight===t.deviceCharHeight&&e.drawBoldTextInBrightColors===t.drawBoldTextInBrightColors&&e.minimumContrastRatio===t.minimumContrastRatio&&e.colors.foreground.rgba===t.colors.foreground.rgba&&e.colors.background.rgba===t.colors.background.rgba},t.is256Color=function(e){return 16777216==(50331648&e)||33554432==(50331648&e)}},237:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(399);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?"bottom":"ideographic"},457:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CursorBlinkStateManager=void 0,t.CursorBlinkStateManager=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0}))))}_restartInterval(e=600){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout((()=>{if(this._animationTimeRestarted){const e=600-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,e>0)return void this._restartInterval(e)}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0})),this._blinkInterval=this._coreBrowserService.window.setInterval((()=>{if(this._animationTimeRestarted){const e=600-(Date.now()-this._animationTimeRestarted);return this._animationTimeRestarted=void 0,void this._restartInterval(e)}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0}))}),600)}),e)}pause(){this.isCursorVisible=!0,this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}}},860:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tryDrawCustomChar=t.powerlineDefinitions=t.boxDrawingDefinitions=t.blockElementDefinitions=void 0;const r=i(374);t.blockElementDefinitions={"▀":[{x:0,y:0,w:8,h:4}],"▁":[{x:0,y:7,w:8,h:1}],"▂":[{x:0,y:6,w:8,h:2}],"▃":[{x:0,y:5,w:8,h:3}],"▄":[{x:0,y:4,w:8,h:4}],"▅":[{x:0,y:3,w:8,h:5}],"▆":[{x:0,y:2,w:8,h:6}],"▇":[{x:0,y:1,w:8,h:7}],"█":[{x:0,y:0,w:8,h:8}],"▉":[{x:0,y:0,w:7,h:8}],"▊":[{x:0,y:0,w:6,h:8}],"▋":[{x:0,y:0,w:5,h:8}],"▌":[{x:0,y:0,w:4,h:8}],"▍":[{x:0,y:0,w:3,h:8}],"▎":[{x:0,y:0,w:2,h:8}],"▏":[{x:0,y:0,w:1,h:8}],"▐":[{x:4,y:0,w:4,h:8}],"▔":[{x:0,y:0,w:8,h:1}],"▕":[{x:7,y:0,w:1,h:8}],"▖":[{x:0,y:4,w:4,h:4}],"▗":[{x:4,y:4,w:4,h:4}],"▘":[{x:0,y:0,w:4,h:4}],"▙":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"▚":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],"▛":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],"▜":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],"▝":[{x:4,y:0,w:4,h:4}],"▞":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],"▟":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"🭰":[{x:1,y:0,w:1,h:8}],"🭱":[{x:2,y:0,w:1,h:8}],"🭲":[{x:3,y:0,w:1,h:8}],"🭳":[{x:4,y:0,w:1,h:8}],"🭴":[{x:5,y:0,w:1,h:8}],"🭵":[{x:6,y:0,w:1,h:8}],"🭶":[{x:0,y:1,w:8,h:1}],"🭷":[{x:0,y:2,w:8,h:1}],"🭸":[{x:0,y:3,w:8,h:1}],"🭹":[{x:0,y:4,w:8,h:1}],"🭺":[{x:0,y:5,w:8,h:1}],"🭻":[{x:0,y:6,w:8,h:1}],"🭼":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"🭽":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"🭾":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"🭿":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"🮀":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],"🮁":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],"🮂":[{x:0,y:0,w:8,h:2}],"🮃":[{x:0,y:0,w:8,h:3}],"🮄":[{x:0,y:0,w:8,h:5}],"🮅":[{x:0,y:0,w:8,h:6}],"🮆":[{x:0,y:0,w:8,h:7}],"🮇":[{x:6,y:0,w:2,h:8}],"🮈":[{x:5,y:0,w:3,h:8}],"🮉":[{x:3,y:0,w:5,h:8}],"🮊":[{x:2,y:0,w:6,h:8}],"🮋":[{x:1,y:0,w:7,h:8}],"🮕":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],"🮖":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],"🮗":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]};const n={"░":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],"▒":[[1,0],[0,0],[0,1],[0,0]],"▓":[[0,1],[1,1],[1,0],[1,1]]};t.boxDrawingDefinitions={"─":{1:"M0,.5 L1,.5"},"━":{3:"M0,.5 L1,.5"},"│":{1:"M.5,0 L.5,1"},"┃":{3:"M.5,0 L.5,1"},"┌":{1:"M0.5,1 L.5,.5 L1,.5"},"┏":{3:"M0.5,1 L.5,.5 L1,.5"},"┐":{1:"M0,.5 L.5,.5 L.5,1"},"┓":{3:"M0,.5 L.5,.5 L.5,1"},"└":{1:"M.5,0 L.5,.5 L1,.5"},"┗":{3:"M.5,0 L.5,.5 L1,.5"},"┘":{1:"M.5,0 L.5,.5 L0,.5"},"┛":{3:"M.5,0 L.5,.5 L0,.5"},"├":{1:"M.5,0 L.5,1 M.5,.5 L1,.5"},"┣":{3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"┤":{1:"M.5,0 L.5,1 M.5,.5 L0,.5"},"┫":{3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"┬":{1:"M0,.5 L1,.5 M.5,.5 L.5,1"},"┳":{3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"┴":{1:"M0,.5 L1,.5 M.5,.5 L.5,0"},"┻":{3:"M0,.5 L1,.5 M.5,.5 L.5,0"},"┼":{1:"M0,.5 L1,.5 M.5,0 L.5,1"},"╋":{3:"M0,.5 L1,.5 M.5,0 L.5,1"},"╴":{1:"M.5,.5 L0,.5"},"╸":{3:"M.5,.5 L0,.5"},"╵":{1:"M.5,.5 L.5,0"},"╹":{3:"M.5,.5 L.5,0"},"╶":{1:"M.5,.5 L1,.5"},"╺":{3:"M.5,.5 L1,.5"},"╷":{1:"M.5,.5 L.5,1"},"╻":{3:"M.5,.5 L.5,1"},"═":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"║":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╒":{1:(e,t)=>`M.5,1 L.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"╓":{1:(e,t)=>`M${.5-e},1 L${.5-e},.5 L1,.5 M${.5+e},.5 L${.5+e},1`},"╔":{1:(e,t)=>`M1,${.5-t} L${.5-e},${.5-t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"╕":{1:(e,t)=>`M0,${.5-t} L.5,${.5-t} L.5,1 M0,${.5+t} L.5,${.5+t}`},"╖":{1:(e,t)=>`M${.5+e},1 L${.5+e},.5 L0,.5 M${.5-e},.5 L${.5-e},1`},"╗":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5+e},${.5-t} L${.5+e},1`},"╘":{1:(e,t)=>`M.5,0 L.5,${.5+t} L1,${.5+t} M.5,${.5-t} L1,${.5-t}`},"╙":{1:(e,t)=>`M1,.5 L${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"╚":{1:(e,t)=>`M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0 M1,${.5+t} L${.5-e},${.5+t} L${.5-e},0`},"╛":{1:(e,t)=>`M0,${.5+t} L.5,${.5+t} L.5,0 M0,${.5-t} L.5,${.5-t}`},"╜":{1:(e,t)=>`M0,.5 L${.5+e},.5 L${.5+e},0 M${.5-e},.5 L${.5-e},0`},"╝":{1:(e,t)=>`M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M0,${.5+t} L${.5+e},${.5+t} L${.5+e},0`},"╞":{1:(e,t)=>`M.5,0 L.5,1 M.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"╟":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1 M${.5+e},.5 L1,.5`},"╠":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╡":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L.5,${.5-t} M0,${.5+t} L.5,${.5+t}`},"╢":{1:(e,t)=>`M0,.5 L${.5-e},.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╣":{1:(e,t)=>`M${.5+e},0 L${.5+e},1 M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0`},"╤":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t} M.5,${.5+t} L.5,1`},"╥":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},1 M${.5+e},.5 L${.5+e},1`},"╦":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"╧":{1:(e,t)=>`M.5,0 L.5,${.5-t} M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"╨":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"╩":{1:(e,t)=>`M0,${.5+t} L1,${.5+t} M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╪":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"╫":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╬":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╱":{1:"M1,0 L0,1"},"╲":{1:"M0,0 L1,1"},"╳":{1:"M1,0 L0,1 M0,0 L1,1"},"╼":{1:"M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"╽":{1:"M.5,.5 L.5,0",3:"M.5,.5 L.5,1"},"╾":{1:"M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"╿":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"┍":{1:"M.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"┎":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"┑":{1:"M.5,.5 L.5,1",3:"M.5,.5 L0,.5"},"┒":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"┕":{1:"M.5,.5 L.5,0",3:"M.5,.5 L1,.5"},"┖":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"┙":{1:"M.5,.5 L.5,0",3:"M.5,.5 L0,.5"},"┚":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,0"},"┝":{1:"M.5,0 L.5,1",3:"M.5,.5 L1,.5"},"┞":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"┟":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"┠":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1"},"┡":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"┢":{1:"M.5,.5 L.5,0",3:"M0.5,1 L.5,.5 L1,.5"},"┥":{1:"M.5,0 L.5,1",3:"M.5,.5 L0,.5"},"┦":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"┧":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"┨":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1"},"┩":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L0,.5"},"┪":{1:"M.5,.5 L.5,0",3:"M0,.5 L.5,.5 L.5,1"},"┭":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┮":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"┯":{1:"M.5,.5 L.5,1",3:"M0,.5 L1,.5"},"┰":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"┱":{1:"M.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"┲":{1:"M.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"┵":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┶":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"┷":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5"},"┸":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,0"},"┹":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"┺":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,.5 L1,.5"},"┽":{1:"M.5,0 L.5,1 M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┾":{1:"M.5,0 L.5,1 M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"┿":{1:"M.5,0 L.5,1",3:"M0,.5 L1,.5"},"╀":{1:"M0,.5 L1,.5 M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"╁":{1:"M.5,.5 L.5,0 M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"╂":{1:"M0,.5 L1,.5",3:"M.5,0 L.5,1"},"╃":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"╄":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"╅":{1:"M.5,0 L.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"╆":{1:"M.5,0 L.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"╇":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0 M0,.5 L1,.5"},"╈":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"╉":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"╊":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"╌":{1:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"╍":{3:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"┄":{1:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"┅":{3:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"┈":{1:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"┉":{3:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"╎":{1:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"╏":{3:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"┆":{1:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"┇":{3:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"┊":{1:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"┋":{3:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"╭":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,1,.5`},"╮":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,0,.5`},"╯":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,0,.5`},"╰":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,1,.5`}},t.powerlineDefinitions={"":{d:"M0,0 L1,.5 L0,1",type:0,rightPadding:2},"":{d:"M-1,-.5 L1,.5 L-1,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M1,0 L0,.5 L1,1",type:0,leftPadding:2},"":{d:"M2,-.5 L0,.5 L2,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0",type:0,rightPadding:1},"":{d:"M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0",type:1,rightPadding:1},"":{d:"M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0",type:0,leftPadding:1},"":{d:"M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0",type:1,leftPadding:1},"":{d:"M-.5,-.5 L1.5,1.5 L-.5,1.5",type:0},"":{d:"M-.5,-.5 L1.5,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M1.5,-.5 L-.5,1.5 L1.5,1.5",type:0},"":{d:"M1.5,-.5 L-.5,1.5 L-.5,-.5",type:0},"":{d:"M1.5,-.5 L-.5,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M-.5,-.5 L1.5,1.5 L1.5,-.5",type:0}},t.powerlineDefinitions[""]=t.powerlineDefinitions[""],t.powerlineDefinitions[""]=t.powerlineDefinitions[""],t.tryDrawCustomChar=function(e,i,a,c,d,_,u,f){const v=t.blockElementDefinitions[i];if(v)return function(e,t,i,s,r,n){for(let o=0;o<t.length;o++){const a=t[o],h=r/8,l=n/8;e.fillRect(i+a.x*h,s+a.y*l,a.w*h,a.h*l)}}(e,v,a,c,d,_),!0;const g=n[i];if(g)return function(e,t,i,s,n,a){let h=o.get(t);h||(h=new Map,o.set(t,h));const l=e.fillStyle;if("string"!=typeof l)throw new Error(`Unexpected fillStyle type "${l}"`);let c=h.get(l);if(!c){const i=t[0].length,s=t.length,n=document.createElement("canvas");n.width=i,n.height=s;const o=(0,r.throwIfFalsy)(n.getContext("2d")),a=new ImageData(i,s);let d,_,u,f;if(l.startsWith("#"))d=parseInt(l.slice(1,3),16),_=parseInt(l.slice(3,5),16),u=parseInt(l.slice(5,7),16),f=l.length>7&&parseInt(l.slice(7,9),16)||1;else{if(!l.startsWith("rgba"))throw new Error(`Unexpected fillStyle color format "${l}" when drawing pattern glyph`);[d,_,u,f]=l.substring(5,l.length-1).split(",").map((e=>parseFloat(e)))}for(let e=0;e<s;e++)for(let s=0;s<i;s++)a.data[4*(e*i+s)]=d,a.data[4*(e*i+s)+1]=_,a.data[4*(e*i+s)+2]=u,a.data[4*(e*i+s)+3]=t[e][s]*(255*f);o.putImageData(a,0,0),c=(0,r.throwIfFalsy)(e.createPattern(n,null)),h.set(l,c)}e.fillStyle=c,e.fillRect(i,s,n,a)}(e,g,a,c,d,_),!0;const p=t.boxDrawingDefinitions[i];if(p)return function(e,t,i,r,n,o,a){e.strokeStyle=e.fillStyle;for(const[c,d]of Object.entries(t)){let t;e.beginPath(),e.lineWidth=a*Number.parseInt(c),t="function"==typeof d?d(.15,.15/o*n):d;for(const c of t.split(" ")){const t=c[0],d=h[t];if(!d){s.error(`Could not find drawing instructions for "${t}"`);continue}const _=c.substring(1).split(",");_[0]&&_[1]&&d(e,l(_,n,o,i,r,!0,a))}e.stroke(),e.closePath()}}(e,p,a,c,d,_,f),!0;const m=t.powerlineDefinitions[i];return!!m&&(function(e,t,i,r,n,o,a,c){var d,_;const u=new Path2D;u.rect(i,r,n,o),e.clip(u),e.beginPath();const f=a/12;e.lineWidth=c*f;for(const v of t.d.split(" ")){const a=v[0],u=h[a];if(!u){s.error(`Could not find drawing instructions for "${a}"`);continue}const g=v.substring(1).split(",");g[0]&&g[1]&&u(e,l(g,n,o,i,r,!1,c,(null!==(d=t.leftPadding)&&void 0!==d?d:0)*(f/2),(null!==(_=t.rightPadding)&&void 0!==_?_:0)*(f/2)))}1===t.type?(e.strokeStyle=e.fillStyle,e.stroke()):e.fill(),e.closePath()}(e,m,a,c,d,_,u,f),!0)};const o=new Map;function a(e,t,i=0){return Math.max(Math.min(e,t),i)}const h={C:(e,t)=>e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]),L:(e,t)=>e.lineTo(t[0],t[1]),M:(e,t)=>e.moveTo(t[0],t[1])};function l(e,t,i,s,r,n,o,h=0,l=0){const c=e.map((e=>parseFloat(e)||parseInt(e)));if(c.length<2)throw new Error("Too few arguments for instruction");for(let d=0;d<c.length;d+=2)c[d]*=t-h*o-l*o,n&&0!==c[d]&&(c[d]=a(Math.round(c[d]+.5)-.5,t,0)),c[d]+=s+h*o;for(let d=1;d<c.length;d+=2)c[d]*=i,n&&0!==c[d]&&(c[d]=a(Math.round(c[d]+.5)-.5,i,0)),c[d]+=r;return c}},56:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.observeDevicePixelDimensions=void 0;const s=i(859);t.observeDevicePixelDimensions=function(e,t,i){let r=new t.ResizeObserver((t=>{const s=t.find((t=>t.target===e));if(!s)return;if(!("devicePixelContentBoxSize"in s))return null==r||r.disconnect(),void(r=void 0);const n=s.devicePixelContentBoxSize[0].inlineSize,o=s.devicePixelContentBoxSize[0].blockSize;n>0&&o>0&&i(n,o)}));try{r.observe(e,{box:["device-pixel-content-box"]})}catch(e){r.disconnect(),r=void 0}return(0,s.toDisposable)((()=>null==r?void 0:r.disconnect()))}},374:(e,t)=>{function i(e){return 57508<=e&&e<=57558}Object.defineProperty(t,"__esModule",{value:!0}),t.createRenderDimensions=t.excludeFromContrastRatioDemands=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.excludeFromContrastRatioDemands=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}}},296:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=t[1]-e.buffer.active.viewportY,n=i[1]-e.buffer.active.viewportY,o=Math.max(r,0),a=Math.min(n,e.rows-1);o>=e.rows||a<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=r,this.viewportEndRow=n,this.viewportCappedStartRow=o,this.viewportCappedEndRow=a,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t<this.endCol&&i<=this.viewportCappedEndRow:t<this.startCol&&i>=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&i===this.viewportStartRow&&t>=this.startCol&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportEndRow&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportStartRow&&t>=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},509:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.TextureAtlas=void 0;const r=i(237),n=i(860),o=i(374),a=i(160),h=i(345),l=i(485),c=i(385),d=i(147),_=i(855),u=i(776),f={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}};let v;class g{get pages(){return this._pages}constructor(e,t,i){this._document=e,this._config=t,this._unicodeService=i,this._didWarmUp=!1,this._cacheMap=new l.FourKeyMap,this._cacheMapCombined=new l.FourKeyMap,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new d.AttributeData,this._textureSize=512,this._onAddTextureAtlasCanvas=new h.EventEmitter,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new h.EventEmitter,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=C(e,4*this._config.deviceCellWidth+4,this._config.deviceCellHeight+4),this._tmpCtx=(0,o.throwIfFalsy)(this._tmpCanvas.getContext("2d",{alpha:this._config.allowTransparency,willReadFrequently:!0}))}dispose(){for(const e of this.pages)e.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)}_doWarmUp(){const e=new c.IdleTaskQueue;for(let t=33;t<126;t++)e.enqueue((()=>{if(!this._cacheMap.get(t,_.DEFAULT_COLOR,_.DEFAULT_COLOR,_.DEFAULT_EXT)){const e=this._drawToCache(t,_.DEFAULT_COLOR,_.DEFAULT_COLOR,_.DEFAULT_EXT);this._cacheMap.set(t,_.DEFAULT_COLOR,_.DEFAULT_COLOR,_.DEFAULT_EXT,e)}}))}beginFrame(){return this._requestClearModel}clearTexture(){if(0!==this._pages[0].currentRow.x||0!==this._pages[0].currentRow.y){for(const e of this._pages)e.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(g.maxAtlasPages&&this._pages.length>=Math.max(4,g.maxAtlasPages)){const e=this._pages.filter((e=>2*e.canvas.width<=(g.maxTextureSize||4096))).sort(((e,t)=>t.canvas.width!==e.canvas.width?t.canvas.width-e.canvas.width:t.percentageUsed-e.percentageUsed));let t=-1,i=0;for(let a=0;a<e.length;a++)if(e[a].canvas.width!==i)t=a,i=e[a].canvas.width;else if(a-t==3)break;const s=e.slice(t,t+4),r=s.map((e=>e.glyphs[0].texturePage)).sort(((e,t)=>e>t?1:-1)),n=this.pages.length-s.length,o=this._mergePages(s,n);o.version++;for(let a=r.length-1;a>=0;a--)this._deletePage(r[a]);this.pages.push(o),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(o.canvas)}const e=new p(this._document,this._textureSize);return this._pages.push(e),this._activePages.push(e),this._onAddTextureAtlasCanvas.fire(e.canvas),e}_mergePages(e,t){const i=2*e[0].canvas.width,s=new p(this._document,i,e);for(const[r,n]of e.entries()){const e=r*n.canvas.width%i,o=Math.floor(r/2)*n.canvas.height;s.ctx.drawImage(n.canvas,e,o);for(const s of n.glyphs)s.texturePage=t,s.sizeClipSpace.x=s.size.x/i,s.sizeClipSpace.y=s.size.y/i,s.texturePosition.x+=e,s.texturePosition.y+=o,s.texturePositionClipSpace.x=s.texturePosition.x/i,s.texturePositionClipSpace.y=s.texturePosition.y/i;this._onRemoveTextureAtlasCanvas.fire(n.canvas);const a=this._activePages.indexOf(n);-1!==a&&this._activePages.splice(a,1)}return s}_deletePage(e){this._pages.splice(e,1);for(let t=e;t<this._pages.length;t++){const e=this._pages[t];for(const t of e.glyphs)t.texturePage--;e.version++}}getRasterizedGlyphCombinedChar(e,t,i,s,r){return this._getFromCacheMap(this._cacheMapCombined,e,t,i,s,r)}getRasterizedGlyph(e,t,i,s,r){return this._getFromCacheMap(this._cacheMap,e,t,i,s,r)}_getFromCacheMap(e,t,i,s,r,n=!1){return v=e.get(t,i,s,r),v||(v=this._drawToCache(t,i,s,r,n),e.set(t,i,s,r,v)),v}_getColorFromAnsiIndex(e){if(e>=this._config.colors.ansi.length)throw new Error("No color found for idx "+e);return this._config.colors.ansi[e]}_getBackgroundColor(e,t,i,s){if(this._config.allowTransparency)return a.NULL_COLOR;let r;switch(e){case 16777216:case 33554432:r=this._getColorFromAnsiIndex(t);break;case 50331648:const e=d.AttributeData.toColorRGB(t);r=a.rgba.toColor(e[0],e[1],e[2]);break;default:r=i?a.color.opaque(this._config.colors.foreground):this._config.colors.background}return r}_getForegroundColor(e,t,i,s,n,o,h,l,c,_){const u=this._getMinimumContrastColor(e,t,i,s,n,o,!1,c,l,_);if(u)return u;let f;switch(n){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&c&&o<8&&(o+=8),f=this._getColorFromAnsiIndex(o);break;case 50331648:const e=d.AttributeData.toColorRGB(o);f=a.rgba.toColor(e[0],e[1],e[2]);break;default:f=h?this._config.colors.background:this._config.colors.foreground}return this._config.allowTransparency&&(f=a.color.opaque(f)),l&&(f=a.color.multiplyOpacity(f,r.DIM_OPACITY)),f}_resolveBackgroundRgba(e,t,i){switch(e){case 16777216:case 33554432:return this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return i?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(e,t,i,s){switch(e){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&s&&t<8&&(t+=8),this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return i?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(e,t,i,s,r,n,o,h,l,c){if(1===this._config.minimumContrastRatio||c)return;const d=this._getContrastCache(l),_=d.getColor(e,s);if(void 0!==_)return _||void 0;const u=this._resolveBackgroundRgba(t,i,o),f=this._resolveForegroundRgba(r,n,o,h),v=a.rgba.ensureContrastRatio(u,f,this._config.minimumContrastRatio/(l?2:1));if(!v)return void d.setColor(e,s,null);const g=a.rgba.toColor(v>>24&255,v>>16&255,v>>8&255);return d.setColor(e,s,g),g}_getContrastCache(e){return e?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(e,t,i,s,a=!1){const h="number"==typeof e?String.fromCharCode(e):e,l=Math.min(this._config.deviceCellWidth*Math.max(h.length,2)+4,this._textureSize);this._tmpCanvas.width<l&&(this._tmpCanvas.width=l);const c=Math.min(this._config.deviceCellHeight+8,this._textureSize);if(this._tmpCanvas.height<c&&(this._tmpCanvas.height=c),this._tmpCtx.save(),this._workAttributeData.fg=i,this._workAttributeData.bg=t,this._workAttributeData.extended.ext=s,this._workAttributeData.isInvisible())return f;const _=!!this._workAttributeData.isBold(),u=!!this._workAttributeData.isInverse(),v=!!this._workAttributeData.isDim(),p=!!this._workAttributeData.isItalic(),C=!!this._workAttributeData.isUnderline(),S=!!this._workAttributeData.isStrikethrough(),b=!!this._workAttributeData.isOverline();let w=this._workAttributeData.getFgColor(),y=this._workAttributeData.getFgColorMode(),L=this._workAttributeData.getBgColor(),E=this._workAttributeData.getBgColorMode();if(u){const e=w;w=L,L=e;const t=y;y=E,E=t}const x=this._getBackgroundColor(E,L,u,v);this._tmpCtx.globalCompositeOperation="copy",this._tmpCtx.fillStyle=x.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.globalCompositeOperation="source-over";const R=_?this._config.fontWeightBold:this._config.fontWeight,A=p?"italic":"";this._tmpCtx.font=`${A} ${R} ${this._config.fontSize*this._config.devicePixelRatio}px ${this._config.fontFamily}`,this._tmpCtx.textBaseline=r.TEXT_BASELINE;const D=1===h.length&&(0,o.isPowerlineGlyph)(h.charCodeAt(0)),M=1===h.length&&(0,o.isRestrictedPowerlineGlyph)(h.charCodeAt(0)),k=this._getForegroundColor(t,E,L,i,y,w,u,v,_,(0,o.excludeFromContrastRatioDemands)(h.charCodeAt(0)));this._tmpCtx.fillStyle=k.css;const T=M?0:4;let B=!1;!1!==this._config.customGlyphs&&(B=(0,n.tryDrawCustomChar)(this._tmpCtx,h,T,T,this._config.deviceCellWidth,this._config.deviceCellHeight,this._config.fontSize,this._config.devicePixelRatio));let O,P=!D;if(O="number"==typeof e?this._unicodeService.wcwidth(e):this._unicodeService.getStringCellWidth(e),C){this._tmpCtx.save();const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),t=e%2==1?.5:0;if(this._tmpCtx.lineWidth=e,this._workAttributeData.isUnderlineColorDefault())this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle;else if(this._workAttributeData.isUnderlineColorRGB())P=!1,this._tmpCtx.strokeStyle=`rgb(${d.AttributeData.toColorRGB(this._workAttributeData.getUnderlineColor()).join(",")})`;else{P=!1;let e=this._workAttributeData.getUnderlineColor();this._config.drawBoldTextInBrightColors&&this._workAttributeData.isBold()&&e<8&&(e+=8),this._tmpCtx.strokeStyle=this._getColorFromAnsiIndex(e).css}this._tmpCtx.beginPath();const i=T,s=Math.ceil(T+this._config.deviceCharHeight)-t-(a?2*e:0),r=s+e,n=s+2*e;for(let o=0;o<O;o++){this._tmpCtx.save();const a=i+o*this._config.deviceCellWidth,h=i+(o+1)*this._config.deviceCellWidth,l=a+this._config.deviceCellWidth/2;switch(this._workAttributeData.extended.underlineStyle){case 2:this._tmpCtx.moveTo(a,s),this._tmpCtx.lineTo(h,s),this._tmpCtx.moveTo(a,n),this._tmpCtx.lineTo(h,n);break;case 3:const i=e<=1?n:Math.ceil(T+this._config.deviceCharHeight-e/2)-t,o=e<=1?s:Math.ceil(T+this._config.deviceCharHeight+e/2)-t,c=new Path2D;c.rect(a,s,this._config.deviceCellWidth,n-s),this._tmpCtx.clip(c),this._tmpCtx.moveTo(a-this._config.deviceCellWidth/2,r),this._tmpCtx.bezierCurveTo(a-this._config.deviceCellWidth/2,o,a,o,a,r),this._tmpCtx.bezierCurveTo(a,i,l,i,l,r),this._tmpCtx.bezierCurveTo(l,o,h,o,h,r),this._tmpCtx.bezierCurveTo(h,i,h+this._config.deviceCellWidth/2,i,h+this._config.deviceCellWidth/2,r);break;case 4:this._tmpCtx.setLineDash([Math.round(e),Math.round(e)]),this._tmpCtx.moveTo(a,s),this._tmpCtx.lineTo(h,s);break;case 5:this._tmpCtx.setLineDash([4*this._config.devicePixelRatio,3*this._config.devicePixelRatio]),this._tmpCtx.moveTo(a,s),this._tmpCtx.lineTo(h,s);break;default:this._tmpCtx.moveTo(a,s),this._tmpCtx.lineTo(h,s)}this._tmpCtx.stroke(),this._tmpCtx.restore()}if(this._tmpCtx.restore(),!B&&this._config.fontSize>=12&&!this._config.allowTransparency&&" "!==h){this._tmpCtx.save(),this._tmpCtx.textBaseline="alphabetic";const t=this._tmpCtx.measureText(h);if(this._tmpCtx.restore(),"actualBoundingBoxDescent"in t&&t.actualBoundingBoxDescent>0){this._tmpCtx.save();const t=new Path2D;t.rect(i,s-Math.ceil(e/2),this._config.deviceCellWidth*O,n-s+Math.ceil(e/2)),this._tmpCtx.clip(t),this._tmpCtx.lineWidth=3*this._config.devicePixelRatio,this._tmpCtx.strokeStyle=x.css,this._tmpCtx.strokeText(h,T,T+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if(b){const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),t=e%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(T,T+t),this._tmpCtx.lineTo(T+this._config.deviceCharWidth*O,T+t),this._tmpCtx.stroke()}if(B||this._tmpCtx.fillText(h,T,T+this._config.deviceCharHeight),"_"===h&&!this._config.allowTransparency){let e=m(this._tmpCtx.getImageData(T,T,this._config.deviceCellWidth,this._config.deviceCellHeight),x,k,P);if(e)for(let t=1;t<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=x.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(h,T,T+this._config.deviceCharHeight-t),e=m(this._tmpCtx.getImageData(T,T,this._config.deviceCellWidth,this._config.deviceCellHeight),x,k,P),e);t++);}if(S){const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),t=this._tmpCtx.lineWidth%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(T,T+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.lineTo(T+this._config.deviceCharWidth*O,T+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.stroke()}this._tmpCtx.restore();const I=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height);let F;if(F=this._config.allowTransparency?function(e){for(let t=0;t<e.data.length;t+=4)if(e.data[t+3]>0)return!1;return!0}(I):m(I,x,k,P),F)return f;const H=this._findGlyphBoundingBox(I,this._workBoundingBox,l,M,B,T);let U,W;for(;;){if(0===this._activePages.length){const e=this._createNewPage();U=e,W=e.currentRow,W.height=H.size.y;break}U=this._activePages[this._activePages.length-1],W=U.currentRow;for(const e of this._activePages)H.size.y<=e.currentRow.height&&(U=e,W=e.currentRow);for(let e=this._activePages.length-1;e>=0;e--)for(const t of this._activePages[e].fixedRows)t.height<=W.height&&H.size.y<=t.height&&(U=this._activePages[e],W=t);if(W.y+H.size.y>=U.canvas.height||W.height>H.size.y+2){let e=!1;if(U.currentRow.y+U.currentRow.height+H.size.y>=U.canvas.height){let t;for(const e of this._activePages)if(e.currentRow.y+e.currentRow.height+H.size.y<e.canvas.height){t=e;break}if(t)U=t;else if(g.maxAtlasPages&&this._pages.length>=g.maxAtlasPages&&W.y+H.size.y<=U.canvas.height&&W.height>=H.size.y&&W.x+H.size.x<=U.canvas.width)e=!0;else{const t=this._createNewPage();U=t,W=t.currentRow,W.height=H.size.y,e=!0}}e||(U.currentRow.height>0&&U.fixedRows.push(U.currentRow),W={x:0,y:U.currentRow.y+U.currentRow.height,height:H.size.y},U.fixedRows.push(W),U.currentRow={x:0,y:W.y+W.height,height:0})}if(W.x+H.size.x<=U.canvas.width)break;W===U.currentRow?(W.x=0,W.y+=W.height,W.height=0):U.fixedRows.splice(U.fixedRows.indexOf(W),1)}return H.texturePage=this._pages.indexOf(U),H.texturePosition.x=W.x,H.texturePosition.y=W.y,H.texturePositionClipSpace.x=W.x/U.canvas.width,H.texturePositionClipSpace.y=W.y/U.canvas.height,H.sizeClipSpace.x/=U.canvas.width,H.sizeClipSpace.y/=U.canvas.height,W.height=Math.max(W.height,H.size.y),W.x+=H.size.x,U.ctx.putImageData(I,H.texturePosition.x-this._workBoundingBox.left,H.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,H.size.x,H.size.y),U.addGlyph(H),U.version++,H}_findGlyphBoundingBox(e,t,i,s,r,n){t.top=0;const o=s?this._config.deviceCellHeight:this._tmpCanvas.height,a=s?this._config.deviceCellWidth:i;let h=!1;for(let l=0;l<o;l++){for(let i=0;i<a;i++){const s=l*this._tmpCanvas.width*4+4*i+3;if(0!==e.data[s]){t.top=l,h=!0;break}}if(h)break}t.left=0,h=!1;for(let l=0;l<n+a;l++){for(let i=0;i<o;i++){const s=i*this._tmpCanvas.width*4+4*l+3;if(0!==e.data[s]){t.left=l,h=!0;break}}if(h)break}t.right=a,h=!1;for(let l=n+a-1;l>=n;l--){for(let i=0;i<o;i++){const s=i*this._tmpCanvas.width*4+4*l+3;if(0!==e.data[s]){t.right=l,h=!0;break}}if(h)break}t.bottom=o,h=!1;for(let l=o-1;l>=0;l--){for(let i=0;i<a;i++){const s=l*this._tmpCanvas.width*4+4*i+3;if(0!==e.data[s]){t.bottom=l,h=!0;break}}if(h)break}return{texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},size:{x:t.right-t.left+1,y:t.bottom-t.top+1},sizeClipSpace:{x:t.right-t.left+1,y:t.bottom-t.top+1},offset:{x:-t.left+n+(s||r?Math.floor((this._config.deviceCellWidth-this._config.deviceCharWidth)/2):0),y:-t.top+n+(s||r?1===this._config.lineHeight?0:Math.round((this._config.deviceCellHeight-this._config.deviceCharHeight)/2):0)}}}}t.TextureAtlas=g,s([u.traceCall],g.prototype,"_drawToCache",null);class p{get percentageUsed(){return this._usedPixels/(this.canvas.width*this.canvas.height)}get glyphs(){return this._glyphs}addGlyph(e){this._glyphs.push(e),this._usedPixels+=e.size.x*e.size.y}constructor(e,t,i){if(this._usedPixels=0,this._glyphs=[],this.version=0,this.currentRow={x:0,y:0,height:0},this.fixedRows=[],i)for(const s of i)this._glyphs.push(...s.glyphs),this._usedPixels+=s._usedPixels;this.canvas=C(e,t,t),this.ctx=(0,o.throwIfFalsy)(this.canvas.getContext("2d",{alpha:!0}))}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.currentRow.x=0,this.currentRow.y=0,this.currentRow.height=0,this.fixedRows.length=0,this.version++}}function m(e,t,i,s){const r=t.rgba>>>24,n=t.rgba>>>16&255,o=t.rgba>>>8&255,a=i.rgba>>>24,h=i.rgba>>>16&255,l=i.rgba>>>8&255,c=Math.floor((Math.abs(r-a)+Math.abs(n-h)+Math.abs(o-l))/12);let d=!0;for(let _=0;_<e.data.length;_+=4)e.data[_]===r&&e.data[_+1]===n&&e.data[_+2]===o||s&&Math.abs(e.data[_]-r)+Math.abs(e.data[_+1]-n)+Math.abs(e.data[_+2]-o)<c?e.data[_+3]=0:d=!1;return d}function C(e,t,i){const s=e.createElement("canvas");return s.width=t,s.height=i,s}},160:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;const s=i(399);let r=0,n=0,o=0,a=0;var h,l,c,d,_;function u(e){const t=e.toString(16);return t.length<2?"0"+t:t}function f(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}t.NULL_COLOR={css:"#00000000",rgba:0},function(e){e.toCss=function(e,t,i,s){return void 0!==s?`#${u(e)}${u(t)}${u(i)}${u(s)}`:`#${u(e)}${u(t)}${u(i)}`},e.toRgba=function(e,t,i,s=255){return(e<<24|t<<16|i<<8|s)>>>0}}(h||(t.channels=h={})),function(e){function t(e,t){return a=Math.round(255*t),[r,n,o]=_.toChannels(e.rgba),{css:h.toCss(r,n,o,a),rgba:h.toRgba(r,n,o,a)}}e.blend=function(e,t){if(a=(255&t.rgba)/255,1===a)return{css:t.css,rgba:t.rgba};const i=t.rgba>>24&255,s=t.rgba>>16&255,l=t.rgba>>8&255,c=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return r=c+Math.round((i-c)*a),n=d+Math.round((s-d)*a),o=_+Math.round((l-_)*a),{css:h.toCss(r,n,o),rgba:h.toRgba(r,n,o)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=_.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return _.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[r,n,o]=_.toChannels(t),{css:h.toCss(r,n,o),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return a=255&e.rgba,t(e,a*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(l||(t.color=l={})),function(e){let t,i;if(!s.isNode){const e=document.createElement("canvas");e.width=1,e.height=1;const s=e.getContext("2d",{willReadFrequently:!0});s&&(t=s,t.globalCompositeOperation="copy",i=t.createLinearGradient(0,0,1,1))}e.toColor=function(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return r=parseInt(e.slice(1,2).repeat(2),16),n=parseInt(e.slice(2,3).repeat(2),16),o=parseInt(e.slice(3,4).repeat(2),16),_.toColor(r,n,o);case 5:return r=parseInt(e.slice(1,2).repeat(2),16),n=parseInt(e.slice(2,3).repeat(2),16),o=parseInt(e.slice(3,4).repeat(2),16),a=parseInt(e.slice(4,5).repeat(2),16),_.toColor(r,n,o,a);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const s=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(s)return r=parseInt(s[1]),n=parseInt(s[2]),o=parseInt(s[3]),a=Math.round(255*(void 0===s[5]?1:parseFloat(s[5]))),_.toColor(r,n,o,a);if(!t||!i)throw new Error("css.toColor: Unsupported css format");if(t.fillStyle=i,t.fillStyle=e,"string"!=typeof t.fillStyle)throw new Error("css.toColor: Unsupported css format");if(t.fillRect(0,0,1,1),[r,n,o,a]=t.getImageData(0,0,1,1).data,255!==a)throw new Error("css.toColor: Unsupported css format");return{rgba:h.toRgba(r,n,o,a),css:e}}}(c||(t.css=c={})),function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(d||(t.rgb=d={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=f(d.relativeLuminance2(o,a,h),d.relativeLuminance2(s,r,n));for(;l<i&&(o>0||a>0||h>0);)o-=Math.max(0,Math.ceil(.1*o)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),l=f(d.relativeLuminance2(o,a,h),d.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}function i(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=f(d.relativeLuminance2(o,a,h),d.relativeLuminance2(s,r,n));for(;l<i&&(o<255||a<255||h<255);)o=Math.min(255,o+Math.ceil(.1*(255-o))),a=Math.min(255,a+Math.ceil(.1*(255-a))),h=Math.min(255,h+Math.ceil(.1*(255-h))),l=f(d.relativeLuminance2(o,a,h),d.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}e.ensureContrastRatio=function(e,s,r){const n=d.relativeLuminance(e>>8),o=d.relativeLuminance(s>>8);if(f(n,o)<r){if(o<n){const o=t(e,s,r),a=f(n,d.relativeLuminance(o>>8));if(a<r){const t=i(e,s,r);return a>f(n,d.relativeLuminance(t>>8))?o:t}return o}const a=i(e,s,r),h=f(n,d.relativeLuminance(a>>8));if(h<r){const i=t(e,s,r);return h>f(n,d.relativeLuminance(i>>8))?a:i}return a}},e.reduceLuminance=t,e.increaseLuminance=i,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},e.toColor=function(e,t,i,s){return{css:h.toCss(e,t,i,s),rgba:h.toRgba(e,t,i,s)}}}(_||(t.rgba=_={})),t.toPaddedHex=u,t.contrastRatio=f},345:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let s=0;s<this._listeners.length;s++)i.push(this._listeners[s]);for(let s=0;s<i.length;s++)i[s].call(void 0,e,t)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))}},859:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||(null===(t=this._value)||void 0===t||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,null===(e=this._value)||void 0===e||e.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},485:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){var r;return null===(r=this._data.get(e,t))||void 0===r?void 0:r.get(i,s)}clear(){this._data.clear()}}},399:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode="undefined"==typeof navigator;const i=t.isNode?"node":navigator.userAgent,s=t.isNode?"node":navigator.platform;t.isFirefox=i.includes("Firefox"),t.isLegacyEdge=i.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\/(\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(s),t.isIpad="iPad"===s,t.isIphone="iPhone"===s,t.isWindows=["Windows","Win16","Win32","WinCE"].includes(s),t.isLinux=s.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(i)},385:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const r=i(399);class n{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,i=0,r=e.timeRemaining(),n=0;for(;this._i<this._tasks.length;){if(t=Date.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,Date.now()-t),i=Math.max(t,i),n=e.timeRemaining(),1.5*i>n)return r-t<-20&&s.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(r-t))}ms`),void this._start();r=n}this.clear()}}class o extends n{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=o,t.IdleTaskQueue=!r.isNode&&"requestIdleCallback"in window?class extends n{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:o,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},147:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},782:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;const s=i(133),r=i(855),n=i(147);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=""}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},855:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},133:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s="";for(let r=t;r<i;++r){let t=e[r];t>65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n<i;++n){const r=e.charCodeAt(n);if(55296<=r&&r<=56319){if(++n>=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,l=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,c=h-o;for(;l<c;){if(l>=i)return 0;if(n=e[l++],128!=(192&n)){l--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?l--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const c=i-4;let d=l;for(;d<i;){for(;!(!(d<c)||128&(s=e[d])||128&(r=e[d+1])||128&(n=e[d+2])||128&(o=e[d+3]));)t[a++]=s,t[a++]=r,t[a++]=n,t[a++]=o,d+=4;if(s=e[d++],s<128)t[a++]=s;else if(192==(224&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},776:function(e,t,i){var r=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const o=i(859),a=i(97),h={trace:a.LogLevelEnum.TRACE,debug:a.LogLevelEnum.DEBUG,info:a.LogLevelEnum.INFO,warn:a.LogLevelEnum.WARN,error:a.LogLevelEnum.ERROR,off:a.LogLevelEnum.OFF};let l,c=t.LogService=class extends o.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=a.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel()))),l=this}_updateLogLevel(){this._logLevel=h[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)"function"==typeof e[t]&&(e[t]=e[t]())}_log(e,t,i){this._evalLazyOptionalParams(i),e.call(s,(this._optionsService.options.logger?"":"xterm.js: ")+t,...i)}trace(e,...t){var i,r;this._logLevel<=a.LogLevelEnum.TRACE&&this._log(null!==(r=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.trace.bind(this._optionsService.options.logger))&&void 0!==r?r:s.log,e,t)}debug(e,...t){var i,r;this._logLevel<=a.LogLevelEnum.DEBUG&&this._log(null!==(r=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.debug.bind(this._optionsService.options.logger))&&void 0!==r?r:s.log,e,t)}info(e,...t){var i,r;this._logLevel<=a.LogLevelEnum.INFO&&this._log(null!==(r=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.info.bind(this._optionsService.options.logger))&&void 0!==r?r:s.info,e,t)}warn(e,...t){var i,r;this._logLevel<=a.LogLevelEnum.WARN&&this._log(null!==(r=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.warn.bind(this._optionsService.options.logger))&&void 0!==r?r:s.warn,e,t)}error(e,...t){var i,r;this._logLevel<=a.LogLevelEnum.ERROR&&this._log(null!==(r=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.error.bind(this._optionsService.options.logger))&&void 0!==r?r:s.error,e,t)}};t.LogService=c=r([n(0,a.IOptionsService)],c),t.setTraceLogger=function(e){l=e},t.traceCall=function(e,t,i){if("function"!=typeof i.value)throw new Error("not supported");const s=i.value;i.value=function(...e){if(l.logLevel!==a.LogLevelEnum.TRACE)return s.apply(this,e);l.trace(`GlyphRenderer#${s.name}(${e.map((e=>JSON.stringify(e))).join(", ")})`);const t=s.apply(this,e);return l.trace(`GlyphRenderer#${s.name} return`,t),t}}},726:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i="di$target",s="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,n){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,n)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},97:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(726);var r;t.IBufferService=(0,s.createDecorator)("BufferService"),t.ICoreMouseService=(0,s.createDecorator)("CoreMouseService"),t.ICoreService=(0,s.createDecorator)("CoreService"),t.ICharsetService=(0,s.createDecorator)("CharsetService"),t.IInstantiationService=(0,s.createDecorator)("InstantiationService"),function(e){e[e.TRACE=0]="TRACE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.OFF=5]="OFF"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)("LogService"),t.IOptionsService=(0,s.createDecorator)("OptionsService"),t.IOscLinkService=(0,s.createDecorator)("OscLinkService"),t.IUnicodeService=(0,s.createDecorator)("UnicodeService"),t.IDecorationService=(0,s.createDecorator)("DecorationService")}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.WebglAddon=void 0;const t=i(345),s=i(859),n=i(399),o=i(666),a=i(776);class h extends s.Disposable{constructor(e){if(n.isSafari&&(0,n.getSafariVersion)()<16)throw new Error("Webgl2 is only supported on Safari 16 and above");super(),this._preserveDrawingBuffer=e,this._onChangeTextureAtlas=this.register(new t.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new t.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new t.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onContextLoss=this.register(new t.EventEmitter),this.onContextLoss=this._onContextLoss.event}activate(e){const i=e._core;if(!e.element)return void this.register(i.onWillOpen((()=>this.activate(e))));this._terminal=e;const r=i.coreService,n=i.optionsService,h=i,l=h._renderService,c=h._characterJoinerService,d=h._charSizeService,_=h._coreBrowserService,u=h._decorationService,f=h._logService,v=h._themeService;(0,a.setTraceLogger)(f),this._renderer=this.register(new o.WebglRenderer(e,c,d,_,r,u,n,v,this._preserveDrawingBuffer)),this.register((0,t.forwardEvent)(this._renderer.onContextLoss,this._onContextLoss)),this.register((0,t.forwardEvent)(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this.register((0,t.forwardEvent)(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),this.register((0,t.forwardEvent)(this._renderer.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)),l.setRenderer(this._renderer),this.register((0,s.toDisposable)((()=>{const t=this._terminal._core._renderService;t.setRenderer(this._terminal._core._createRenderer()),t.handleResize(e.cols,e.rows)})))}get textureAtlas(){var e;return null===(e=this._renderer)||void 0===e?void 0:e.textureAtlas}clearTextureAtlas(){var e;null===(e=this._renderer)||void 0===e||e.clearTextureAtlas()}}e.WebglAddon=h})(),r})()))},62213:function(e,t,i){var s=i(4364);!function(t,i){e.exports=i()}(self,(()=>(()=>{"use strict";var e={4567:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityManager=void 0;const n=i(9042),o=i(6114),a=i(9924),h=i(844),l=i(5596),c=i(4725),d=i(3656);let _=class extends h.Disposable{constructor(e,t){super(),this._terminal=e,this._renderService=t,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=document.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=document.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let i=0;i<this._terminal.rows;i++)this._rowElements[i]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[i]);if(this._topBoundaryFocusListener=e=>this._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=document.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new a.TimeBasedDebouncer(this._announceCharacters.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._liveRegionDebouncer),this.register(this._terminal.onResize((e=>this._handleResize(e.rows)))),this.register(this._terminal.onRender((e=>this._refreshRows(e.start,e.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((e=>this._handleChar(e)))),this.register(this._terminal.onLineFeed((()=>this._handleChar("\n")))),this.register(this._terminal.onA11yTab((e=>this._handleTab(e)))),this.register(this._terminal.onKey((e=>this._handleKey(e.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this._screenDprMonitor=new l.ScreenDprMonitor(window),this.register(this._screenDprMonitor),this._screenDprMonitor.setListener((()=>this._refreshRowsDimensions())),this.register((0,d.addDisposableDomListener)(window,"resize",(()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,h.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(" ")}_handleChar(e){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,"\n"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=n.tooMuchOutput)),o.isMac&&this._liveRegion.textContent&&this._liveRegion.textContent.length>0&&!this._liveRegion.parentNode&&setTimeout((()=>{this._accessibilityContainer.appendChild(this._liveRegion)}),0))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0,o.isMac&&this._liveRegion.remove()}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(e,t){const i=e.target,s=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute("aria-posinset")===(0===t?"1":`${this._terminal.buffer.lines.length}`))return;if(e.relatedTarget!==s)return;let r,n;if(0===t?(r=i,n=this._rowElements.pop(),this._rowContainer.removeChild(n)):(r=this._rowElements.shift(),n=i,this._rowContainer.removeChild(r)),r.removeEventListener("focus",this._topBoundaryFocusListener),n.removeEventListener("focus",this._bottomBoundaryFocusListener),0===t){const e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement("afterbegin",e)}else{const e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let t=this._rowContainer.children.length;t<this._terminal.rows;t++)this._rowElements[t]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[t]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=document.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}};_=s([r(1,c.IRenderService)],_),t.AccessibilityManager=_},3614:(e,t)=>{function i(e){return e.replace(/\r?\n/g,"\r")}function s(e,t){return t?"[200~"+e+"[201~":e}function r(e,t,r){e=s(e=i(e),r.decPrivateModes.bracketedPasteMode),r.triggerDataEvent(e,!0),t.value=""}function n(e,t,i){const s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width="20px",t.style.height="20px",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex="1000",t.focus()}Object.defineProperty(t,"__esModule",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=i,t.bracketTextForPaste=s,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i){e.stopPropagation(),e.clipboardData&&r(e.clipboardData.getData("text/plain"),t,i)},t.paste=r,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,i,s,r){n(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}},7239:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorContrastCache=void 0;const s=i(1505);t.ColorContrastCache=class{constructor(){this._color=new s.TwoKeyMap,this._css=new s.TwoKeyMap}setCss(e,t,i){this._css.set(e,t,i)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,i){this._color.set(e,t,i)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}}},3656:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},6465:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Linkifier2=void 0;const n=i(2585),o=i(8460),a=i(844),h=i(3656);let l=class extends a.Disposable{constructor(e){super(),this._bufferService=e,this._linkProviders=[],this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new o.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new o.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,a.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,a.toDisposable)((()=>{this._lastMouseEvent=void 0}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0})))}get currentLink(){return this._currentLink}registerLinkProvider(e){return this._linkProviders.push(e),{dispose:()=>{const t=this._linkProviders.indexOf(e);-1!==t&&this._linkProviders.splice(t,1)}}}attachToDom(e,t,i){this._element=e,this._mouseService=t,this._renderService=i,this.register((0,h.addDisposableDomListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,h.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,h.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,h.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(e){if(this._lastMouseEvent=e,!this._element||!this._mouseService)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;const i=e.composedPath();for(let s=0;s<i.length;s++){const e=i[s];if(e.classList.contains("xterm"))break;if(e.classList.contains("xterm-hover"))return}this._lastBufferCell&&t.x===this._lastBufferCell.x&&t.y===this._lastBufferCell.y||(this._handleHover(t),this._lastBufferCell=t)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(e,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,t){var i,s;this._activeProviderReplies&&t||(null===(i=this._activeProviderReplies)||void 0===i||i.forEach((e=>{null==e||e.forEach((e=>{e.link.dispose&&e.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=e.y);let r=!1;for(const[n,o]of this._linkProviders.entries())t?(null===(s=this._activeProviderReplies)||void 0===s?void 0:s.get(n))&&(r=this._checkLinkProviderResult(n,e,r)):o.provideLinks(e.y,(t=>{var i,s;if(this._isMouseOut)return;const o=null==t?void 0:t.map((e=>({link:e})));null===(i=this._activeProviderReplies)||void 0===i||i.set(n,o),r=this._checkLinkProviderResult(n,e,r),(null===(s=this._activeProviderReplies)||void 0===s?void 0:s.size)===this._linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)}))}_removeIntersectingLinks(e,t){const i=new Set;for(let s=0;s<t.size;s++){const r=t.get(s);if(r)for(let t=0;t<r.length;t++){const s=r[t],n=s.link.range.start.y<e?0:s.link.range.start.x,o=s.link.range.end.y>e?this._bufferService.cols:s.link.range.end.x;for(let e=n;e<=o;e++){if(i.has(e)){r.splice(t--,1);break}i.add(e)}}}}_checkLinkProviderResult(e,t,i){var s;if(!this._activeProviderReplies)return i;const r=this._activeProviderReplies.get(e);let n=!1;for(let o=0;o<e;o++)this._activeProviderReplies.has(o)&&!this._activeProviderReplies.get(o)||(n=!0);if(!n&&r){const e=r.find((e=>this._linkAtPosition(e.link,t)));e&&(i=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviders.length&&!i)for(let o=0;o<this._activeProviderReplies.size;o++){const e=null===(s=this._activeProviderReplies.get(o))||void 0===s?void 0:s.find((e=>this._linkAtPosition(e.link,t)));if(e){i=!0,this._handleNewLink(e);break}}return i}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._element||!this._mouseService||!this._currentLink)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){this._element&&this._currentLink&&this._lastMouseEvent&&(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,a.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._element||!this._lastMouseEvent||!this._mouseService)return;const t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>{var e,t;return null===(t=null===(e=this._currentLink)||void 0===e?void 0:e.state)||void 0===t?void 0:t.decorations.pointerCursor},set:e=>{var t,i;(null===(t=this._currentLink)||void 0===t?void 0:t.state)&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&(null===(i=this._element)||void 0===i||i.classList.toggle("xterm-cursor-pointer",e)))}},underline:{get:()=>{var e,t;return null===(t=null===(e=this._currentLink)||void 0===e?void 0:e.state)||void 0===t?void 0:t.decorations.underline},set:t=>{var i,s,r;(null===(i=this._currentLink)||void 0===i?void 0:i.state)&&(null===(r=null===(s=this._currentLink)||void 0===s?void 0:s.state)||void 0===r?void 0:r.decorations.underline)!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._renderService&&this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{if(!this._currentLink)return;const t=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(t,i),this._lastMouseEvent&&this._element)){const e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}}))))}_linkHover(e,t,i){var s;(null===(s=this._currentLink)||void 0===s?void 0:s.state)&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add("xterm-cursor-pointer")),t.hover&&t.hover(i,t.text)}_fireUnderlineEvent(e,t){const i=e.range,s=this._bufferService.buffer.ydisp,r=this._createLinkUnderlineEvent(i.start.x-1,i.start.y-s-1,i.end.x,i.end.y-s-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(r)}_linkLeave(e,t,i){var s;(null===(s=this._currentLink)||void 0===s?void 0:s.state)&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove("xterm-cursor-pointer")),t.leave&&t.leave(i,t.text)}_linkAtPosition(e,t){const i=e.range.start.y*this._bufferService.cols+e.range.start.x,s=e.range.end.y*this._bufferService.cols+e.range.end.x,r=t.y*this._bufferService.cols+t.x;return i<=r&&r<=s}_positionFromMouseEvent(e,t,i){const s=i.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(s)return{x:s[0],y:s[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,i,s,r){return{x1:e,y1:t,x2:i,y2:s,cols:this._bufferService.cols,fg:r}}};l=s([r(0,n.IBufferService)],l),t.Linkifier2=l},9042:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel="Terminal input",t.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(e,t,i){var r=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkProvider=void 0;const o=i(511),a=i(2585);let h=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){var i;const s=this._bufferService.buffer.lines.get(e-1);if(!s)return void t(void 0);const r=[],n=this._optionsService.rawOptions.linkHandler,a=new o.CellData,h=s.getTrimmedLength();let c=-1,d=-1,_=!1;for(let o=0;o<h;o++)if(-1!==d||s.hasContent(o)){if(s.loadCell(o,a),a.hasExtendedAttrs()&&a.extended.urlId){if(-1===d){d=o,c=a.extended.urlId;continue}_=a.extended.urlId!==c}else-1!==d&&(_=!0);if(_||-1!==d&&o===h-1){const t=null===(i=this._oscLinkService.getLinkData(c))||void 0===i?void 0:i.uri;if(t){const i={start:{x:d+1,y:e},end:{x:o+(_||o!==h-1?0:1),y:e}};let s=!1;if(!(null==n?void 0:n.allowNonHttpProtocols))try{const e=new URL(t);["http:","https:"].includes(e.protocol)||(s=!0)}catch(e){s=!0}s||r.push({text:t,range:i,activate:(e,t)=>n?n.activate(e,t,i):l(0,t),hover:(e,t)=>{var s;return null===(s=null==n?void 0:n.hover)||void 0===s?void 0:s.call(n,e,t,i)},leave:(e,t)=>{var s;return null===(s=null==n?void 0:n.leave)||void 0===s?void 0:s.call(n,e,t,i)}})}_=!1,a.hasExtendedAttrs()&&a.extended.urlId?(d=o,c=a.extended.urlId):(d=-1,c=-1)}}t(r)}};function l(e,t){if(confirm(`Do you want to navigate to ${t}?\n\nWARNING: This link could potentially be dangerous`)){const i=window.open();if(i){try{i.opener=null}catch(e){}i.location.href=t}else s.warn("Opening link blocked as opener could not be cleared")}}h=r([n(0,a.IBufferService),n(1,a.IOptionsService),n(2,a.IOscLinkService)],h),t.OscLinkProvider=h},6193:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(e,t){this._parentWindow=e,this._renderCallback=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._parentWindow.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}}},5596:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ScreenDprMonitor=void 0;const s=i(844);class r extends s.Disposable{constructor(e){super(),this._parentWindow=e,this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this.register((0,s.toDisposable)((()=>{this.clearListener()})))}setListener(e){this._listener&&this.clearListener(),this._listener=e,this._outerListener=()=>{this._listener&&(this._listener(this._parentWindow.devicePixelRatio,this._currentDevicePixelRatio),this._updateDpr())},this._updateDpr()}_updateDpr(){var e;this._outerListener&&(null===(e=this._resolutionMediaMatchList)||void 0===e||e.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._listener&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._listener=void 0,this._outerListener=void 0)}}t.ScreenDprMonitor=r},3236:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Terminal=void 0;const s=i(2950),r=i(1680),n=i(3614),o=i(2584),a=i(5435),h=i(9312),l=i(6114),c=i(3656),d=i(9042),_=i(4567),u=i(1296),f=i(7399),v=i(8460),g=i(8437),p=i(3230),m=i(4725),C=i(428),S=i(8934),b=i(6465),w=i(5114),y=i(8969),L=i(8055),E=i(4269),x=i(5941),R=i(3107),A=i(5744),D=i(9074),M=i(2585),k=i(3730),T=i(844),B=i(6731),O="undefined"!=typeof window?window.document:null;class P extends y.CoreTerminal{constructor(e={}){super(e),this.browser=l,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._onCursorMove=this.register(new v.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new v.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new v.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new v.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new v.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new v.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new v.EventEmitter),this._onBlur=this.register(new v.EventEmitter),this._onA11yCharEmitter=this.register(new v.EventEmitter),this._onA11yTabEmitter=this.register(new v.EventEmitter),this._onWillOpen=this.register(new v.EventEmitter),this._setup(),this.linkifier2=this.register(this._instantiationService.createInstance(b.Linkifier2)),this.linkifier2.registerLinkProvider(this._instantiationService.createInstance(k.OscLinkProvider)),this._decorationService=this._instantiationService.createInstance(D.DecorationService),this._instantiationService.setService(M.IDecorationService,this._decorationService),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((e,t)=>this.refresh(e,t)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((e=>this._reportWindowsOptions(e)))),this.register(this._inputHandler.onColor((e=>this._handleColorEvent(e)))),this.register((0,v.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,v.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,v.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,v.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((e=>this._afterResize(e.cols,e.rows)))),this.register((0,T.toDisposable)((()=>{var e,t;this._customKeyEventHandler=void 0,null===(t=null===(e=this.element)||void 0===e?void 0:e.parentNode)||void 0===t||t.removeChild(this.element)})))}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}_handleColorEvent(e){if(this._themeService)for(const t of e){let e,i="";switch(t.index){case 256:e="foreground",i="10";break;case 257:e="background",i="11";break;case 258:e="cursor",i="12";break;default:e="ansi",i="4;"+t.index}switch(t.type){case 0:const s=L.color.toColorRGB("ansi"===e?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${o.C0.ESC}]${i};${(0,x.toRgbString)(s)}${o.C1_ESCAPED.ST}`);break;case 1:if("ansi"===e)this._themeService.modifyColors((e=>e.ansi[t.index]=L.rgba.toColor(...t.color)));else{const i=e;this._themeService.modifyColors((e=>e[i]=L.rgba.toColor(...t.color)))}break;case 2:this._themeService.restoreColor(t.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){var t;e?!this._accessibilityManager&&this._renderService&&(this._accessibilityManager=this._instantiationService.createInstance(_.AccessibilityManager,this)):(null===(t=this._accessibilityManager)||void 0===t||t.dispose(),this._accessibilityManager=void 0)}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(o.C0.ESC+"[I"),this.updateCursorStyle(e),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){var e;return null===(e=this.textarea)||void 0===e?void 0:e.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(o.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;const i=Math.min(this.buffer.x,this.cols-1),s=this._renderService.dimensions.css.cell.height,r=t.getWidth(i),n=this._renderService.dimensions.css.cell.width*r,o=this.buffer.y*this._renderService.dimensions.css.cell.height,a=i*this._renderService.dimensions.css.cell.width;this.textarea.style.left=a+"px",this.textarea.style.top=o+"px",this.textarea.style.width=n+"px",this.textarea.style.height=s+"px",this.textarea.style.lineHeight=s+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,c.addDisposableDomListener)(this.element,"copy",(e=>{this.hasSelection()&&(0,n.copyHandler)(e,this._selectionService)})));const e=e=>(0,n.handlePasteEvent)(e,this.textarea,this.coreService);this.register((0,c.addDisposableDomListener)(this.textarea,"paste",e)),this.register((0,c.addDisposableDomListener)(this.element,"paste",e)),l.isFirefox?this.register((0,c.addDisposableDomListener)(this.element,"mousedown",(e=>{2===e.button&&(0,n.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,c.addDisposableDomListener)(this.element,"contextmenu",(e=>{(0,n.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),l.isLinux&&this.register((0,c.addDisposableDomListener)(this.element,"auxclick",(e=>{1===e.button&&(0,n.moveTextAreaUnderMouseCursor)(e,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,c.addDisposableDomListener)(this.textarea,"keyup",(e=>this._keyUp(e)),!0)),this.register((0,c.addDisposableDomListener)(this.textarea,"keydown",(e=>this._keyDown(e)),!0)),this.register((0,c.addDisposableDomListener)(this.textarea,"keypress",(e=>this._keyPress(e)),!0)),this.register((0,c.addDisposableDomListener)(this.textarea,"compositionstart",(()=>this._compositionHelper.compositionstart()))),this.register((0,c.addDisposableDomListener)(this.textarea,"compositionupdate",(e=>this._compositionHelper.compositionupdate(e)))),this.register((0,c.addDisposableDomListener)(this.textarea,"compositionend",(()=>this._compositionHelper.compositionend()))),this.register((0,c.addDisposableDomListener)(this.textarea,"input",(e=>this._inputEvent(e)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(e){var t;if(!e)throw new Error("Terminal requires a parent element.");e.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this._document=e.ownerDocument,this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),e.appendChild(this.element);const i=O.createDocumentFragment();this._viewportElement=O.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),i.appendChild(this._viewportElement),this._viewportScrollArea=O.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=O.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._helperContainer=O.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),i.appendChild(this.screenElement),this.textarea=O.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",d.promptLabel),l.isChromeOS||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._coreBrowserService=this._instantiationService.createInstance(w.CoreBrowserService,this.textarea,null!==(t=this._document.defaultView)&&void 0!==t?t:window),this._instantiationService.setService(m.ICoreBrowserService,this._coreBrowserService),this.register((0,c.addDisposableDomListener)(this.textarea,"focus",(e=>this._handleTextAreaFocus(e)))),this.register((0,c.addDisposableDomListener)(this.textarea,"blur",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(C.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(m.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(B.ThemeService),this._instantiationService.setService(m.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(E.CharacterJoinerService),this._instantiationService.setService(m.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(p.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(m.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((e=>this._onRender.fire(e)))),this.onResize((e=>this._renderService.resize(e.cols,e.rows))),this._compositionView=O.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(s.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this.element.appendChild(i);try{this._onWillOpen.fire(this.element)}catch(e){}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._mouseService=this._instantiationService.createInstance(S.MouseService),this._instantiationService.setService(m.IMouseService,this._mouseService),this.viewport=this._instantiationService.createInstance(r.Viewport,(e=>this.scrollLines(e,!0,1)),this._viewportElement,this._viewportScrollArea),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(h.SelectionService,this.element,this.screenElement,this.linkifier2)),this._instantiationService.setService(m.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((e=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,c.addDisposableDomListener)(this._viewportElement,"scroll",(()=>this._selectionService.refresh()))),this.linkifier2.attachToDom(this.screenElement,this._mouseService,this._renderService),this.register(this._instantiationService.createInstance(R.BufferDecorationRenderer,this.screenElement)),this.register((0,c.addDisposableDomListener)(this.element,"mousedown",(e=>this._selectionService.handleMouseDown(e)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager=this._instantiationService.createInstance(_.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange("screenReaderMode",(e=>this._handleScreenReaderModeOptionChange(e)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(A.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRulerWidth",(e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(A.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(u.DomRenderer,this.element,this.screenElement,this._viewportElement,this.linkifier2)}bindMouse(){const e=this,t=this.element;function i(t){const i=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!i)return!1;let s,r;switch(t.overrideType||t.type){case"mousemove":r=32,void 0===t.buttons?(s=3,void 0!==t.button&&(s=t.button<3?t.button:3)):s=1&t.buttons?0:4&t.buttons?1:2&t.buttons?2:3;break;case"mouseup":r=0,s=t.button<3?t.button:3;break;case"mousedown":r=1,s=t.button<3?t.button:3;break;case"wheel":if(0===e.viewport.getLinesScrolled(t))return!1;r=t.deltaY<0?0:1,s=4;break;default:return!1}return!(void 0===r||void 0===s||s>4)&&e.coreMouseService.triggerMouseEvent({col:i.col,row:i.row,x:i.x,y:i.y,button:s,action:r,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}const s={mouseup:null,wheel:null,mousedrag:null,mousemove:null},r={mouseup:e=>(i(e),e.buttons||(this._document.removeEventListener("mouseup",s.mouseup),s.mousedrag&&this._document.removeEventListener("mousemove",s.mousedrag)),this.cancel(e)),wheel:e=>(i(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&i(e)},mousemove:e=>{e.buttons||i(e)}};this.register(this.coreMouseService.onProtocolChange((e=>{e?("debug"===this.optionsService.rawOptions.logLevel&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(e)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&e?s.mousemove||(t.addEventListener("mousemove",r.mousemove),s.mousemove=r.mousemove):(t.removeEventListener("mousemove",s.mousemove),s.mousemove=null),16&e?s.wheel||(t.addEventListener("wheel",r.wheel,{passive:!1}),s.wheel=r.wheel):(t.removeEventListener("wheel",s.wheel),s.wheel=null),2&e?s.mouseup||(s.mouseup=r.mouseup):(this._document.removeEventListener("mouseup",s.mouseup),s.mouseup=null),4&e?s.mousedrag||(s.mousedrag=r.mousedrag):(this._document.removeEventListener("mousemove",s.mousedrag),s.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,c.addDisposableDomListener)(t,"mousedown",(e=>{if(e.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(e))return i(e),s.mouseup&&this._document.addEventListener("mouseup",s.mouseup),s.mousedrag&&this._document.addEventListener("mousemove",s.mousedrag),this.cancel(e)}))),this.register((0,c.addDisposableDomListener)(t,"wheel",(e=>{if(!s.wheel){if(!this.buffer.hasScrollback){const t=this.viewport.getLinesScrolled(e);if(0===t)return;const i=o.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(e.deltaY<0?"A":"B");let s="";for(let e=0;e<Math.abs(t);e++)s+=i;return this.coreService.triggerDataEvent(s,!0),this.cancel(e,!0)}return this.viewport.handleWheel(e)?this.cancel(e):void 0}}),{passive:!1})),this.register((0,c.addDisposableDomListener)(t,"touchstart",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(e),this.cancel(e)}),{passive:!0})),this.register((0,c.addDisposableDomListener)(t,"touchmove",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(e)?void 0:this.cancel(e)}),{passive:!1}))}refresh(e,t){var i;null===(i=this._renderService)||void 0===i||i.refreshRows(e,t)}updateCursorStyle(e){var t;(null===(t=this._selectionService)||void 0===t?void 0:t.shouldColumnSelect(e))?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t,i=0){super.scrollLines(e,t,i),this.refresh(0,this.rows-1)}paste(e){(0,n.paste)(e,this.textarea,this.coreService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}registerLinkProvider(e){return this.linkifier2.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");const t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}addMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(e,t,i){this._selectionService.setSelection(e,t,i)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){var e;null===(e=this._selectionService)||void 0===e||e.clearSelection()}selectAll(){var e;null===(e=this._selectionService)||void 0===e||e.selectAll()}selectLines(e,t){var i;null===(i=this._selectionService)||void 0===i||i.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;const t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this._bufferService.scrollToBottom(),!1;t||"Dead"!==e.key&&"AltGraph"!==e.key||(this._unprocessedDeadKey=!0);const i=(0,f.evaluateKeyboardEvent)(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===i.type||2===i.type){const t=this.rows-1;return this.scrollLines(2===i.type?-t:t),this.cancel(e,!0)}return 1===i.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(i.cancel&&this.cancel(e,!0),!i.key||!!(e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(i.key!==o.C0.ETX&&i.key!==o.C0.CR||(this.textarea.value=""),this._onKey.fire({key:i.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey?this.cancel(e,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(e,t){const i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState("AltGraph");return"keypress"===t.type?i:i&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)||(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(e){if(e.data&&"insertText"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){e!==this.cols||t!==this.rows?super.resize(e,t):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(e,t){var i,s;null===(i=this._charSizeService)||void 0===i||i.measure(),null===(s=this.viewport)||void 0===s||s.syncScrollArea(!0)}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(g.DEFAULT_ATTR_DATA));this.refresh(0,this.rows-1),this._onScroll.fire({position:this.buffer.ydisp,source:0})}}reset(){var e,t;this.options.rows=this.rows,this.options.cols=this.cols;const i=this._customKeyEventHandler;this._setup(),super.reset(),null===(e=this._selectionService)||void 0===e||e.reset(),this._decorationService.reset(),this._customKeyEventHandler=i,this.refresh(0,this.rows-1),null===(t=this.viewport)||void 0===t||t.syncScrollArea()}clearTextureAtlas(){var e;null===(e=this._renderService)||void 0===e||e.clearTextureAtlas()}_reportFocus(){var e;(null===(e=this.element)||void 0===e?void 0:e.classList.contains("focus"))?this.coreService.triggerDataEvent(o.C0.ESC+"[I"):this.coreService.triggerDataEvent(o.C0.ESC+"[O")}_reportWindowsOptions(e){if(this._renderService)switch(e){case a.WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:const e=this._renderService.dimensions.css.canvas.width.toFixed(0),t=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${o.C0.ESC}[4;${t};${e}t`);break;case a.WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:const i=this._renderService.dimensions.css.cell.width.toFixed(0),s=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${o.C0.ESC}[6;${s};${i}t`)}}cancel(e,t){if(this.options.cancelEvents||t)return e.preventDefault(),e.stopPropagation(),!1}}t.Terminal=P},9924:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(e,t=1e3){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t;const s=Date.now();if(s-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=s,this._innerRefresh();else if(!this._additionalRefreshRequested){const e=s-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),t)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}}},1680:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Viewport=void 0;const n=i(844),o=i(3656),a=i(4725),h=i(2585);let l=class extends n.Disposable{constructor(e,t,i,s,r,n,a,h,l){super(),this._scrollLines=e,this._viewportElement=t,this._scrollArea=i,this._bufferService=s,this._optionsService=r,this._charSizeService=n,this._renderService=a,this._coreBrowserService=h,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,o.addDisposableDomListener)(this._viewportElement,"scroll",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((e=>this._renderDimensions=e))),this._handleThemeChange(l.colors),this.register(l.onChangeColors((e=>this._handleThemeChange(e)))),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()),0)}_handleThemeChange(e){this._viewportElement.style.backgroundColor=e.background.css}_refresh(e){if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderService.dimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderService.dimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;const e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderService.dimensions.css.canvas.height);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}const e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=e),this._refreshAnimationFrame=null}syncScrollArea(e=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(e)}_handleScroll(e){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._scrollLines(0);const t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._scrollLines(t)}_smoothScroll(){if(this._isDisposed||-1===this._smoothScrollState.origin||-1===this._smoothScrollState.target)return;const e=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(e*(this._smoothScrollState.target-this._smoothScrollState.origin)),e<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(e,t){const i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i<this._lastRecordedBufferHeight)||(e.cancelable&&e.preventDefault(),!1)}handleWheel(e){const t=this._getPixelsScrolled(e);return 0!==t&&(this._optionsService.rawOptions.smoothScrollDuration?(this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,-1===this._smoothScrollState.target?this._smoothScrollState.target=this._viewportElement.scrollTop+t:this._smoothScrollState.target+=t,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()):this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}_getPixelsScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=this._currentRowHeight:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._currentRowHeight*this._bufferService.rows),t}getBufferElements(e,t){var i;let s,r="";const n=[],o=null!=t?t:this._bufferService.buffer.lines.length,a=this._bufferService.buffer.lines;for(let h=e;h<o;h++){const e=a.get(h);if(!e)continue;const t=null===(i=a.get(h+1))||void 0===i?void 0:i.isWrapped;if(r+=e.translateToString(!t),!t||h===a.length-1){const e=document.createElement("div");e.textContent=r,n.push(e),r.length>0&&(s=e),r=""}}return{bufferElements:n,cursorElement:s}}getLinesScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t}_applyScrollModifier(e,t){const i=this._optionsService.rawOptions.fastScrollModifier;return"alt"===i&&t.altKey||"ctrl"===i&&t.ctrlKey||"shift"===i&&t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(e){this._lastTouchY=e.touches[0].pageY}handleTouchMove(e){const t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}};l=s([r(3,h.IBufferService),r(4,h.IOptionsService),r(5,a.ICharSizeService),r(6,a.IRenderService),r(7,a.ICoreBrowserService),r(8,a.IThemeService)],l),t.Viewport=l},3107:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferDecorationRenderer=void 0;const n=i(3656),o=i(4725),a=i(844),h=i(2585);let l=class extends a.Disposable{constructor(e,t,i,s){super(),this._screenElement=e,this._bufferService=t,this._decorationService=i,this._renderService=s,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register((0,n.addDisposableDomListener)(window,"resize",(()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((e=>this._removeDecoration(e)))),this.register((0,a.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(const e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){var t,i;const s=document.createElement("div");s.classList.add("xterm-decoration"),s.classList.toggle("xterm-decoration-top-layer","top"===(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.layer)),s.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,s.style.height=(e.options.height||1)*this._renderService.dimensions.css.cell.height+"px",s.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",s.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const r=null!==(i=e.options.x)&&void 0!==i?i:0;return r&&r>this._bufferService.cols&&(s.style.display="none"),this._refreshXPosition(e,s),s}_refreshStyle(e){const t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display="none",e.onRenderEmitter.fire(e.element));else{let i=this._decorationElements.get(e);i||(i=this._createElement(e),e.element=i,this._decorationElements.set(e,i),this._container.appendChild(i)),i.style.top=t*this._renderService.dimensions.css.cell.height+"px",i.style.display=this._altBufferIsActive?"none":"block",e.onRenderEmitter.fire(i)}}_refreshXPosition(e,t=e.element){var i;if(!t)return;const s=null!==(i=e.options.x)&&void 0!==i?i:0;"right"===(e.options.anchor||"left")?t.style.right=s?s*this._renderService.dimensions.css.cell.width+"px":"":t.style.left=s?s*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(e){var t;null===(t=this._decorationElements.get(e))||void 0===t||t.remove(),this._decorationElements.delete(e),e.dispose()}};l=s([r(1,h.IBufferService),r(2,h.IDecorationService),r(3,o.IRenderService)],l),t.BufferDecorationRenderer=l},5871:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(const t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position))return void this._addLineToZone(t,e.marker.line)}if(this._zonePoolIndex<this._zonePool.length)return this._zonePool[this._zonePoolIndex].color=e.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=e.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=e.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=e.marker.line,void this._zones.push(this._zonePool[this._zonePoolIndex++]);this._zones.push({color:e.options.overviewRulerOptions.color,position:e.options.overviewRulerOptions.position,startBufferLine:e.marker.line,endBufferLine:e.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(e){this._linePadding=e}_lineIntersectsZone(e,t){return t>=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,i){return t>=e.startBufferLine-this._linePadding[i||"full"]&&t<=e.endBufferLine+this._linePadding[i||"full"]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}}},5744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OverviewRulerRenderer=void 0;const n=i(5871),o=i(3656),a=i(4725),h=i(844),l=i(2585),c={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0},_={full:0,left:0,center:0,right:0};let u=class extends h.Disposable{constructor(e,t,i,s,r,o,a){var l;super(),this._viewportElement=e,this._screenElement=t,this._bufferService=i,this._decorationService=s,this._renderService=r,this._optionsService=o,this._coreBrowseService=a,this._colorZoneStore=new n.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=document.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),null===(l=this._viewportElement.parentElement)||void 0===l||l.insertBefore(this._canvas,this._viewportElement);const c=this._canvas.getContext("2d");if(!c)throw new Error("Ctx cannot be null");this._ctx=c,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,h.toDisposable)((()=>{var e;null===(e=this._canvas)||void 0===e||e.remove()})))}get _width(){return this._optionsService.options.overviewRulerWidth||0}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange("overviewRulerWidth",(()=>this._queueRefresh(!0)))),this.register((0,o.addDisposableDomListener)(this._coreBrowseService.window,"resize",(()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){const e=Math.floor(this._canvas.width/3),t=Math.ceil(this._canvas.width/3);d.full=this._canvas.width,d.left=e,d.center=t,d.right=e,this._refreshDrawHeightConstants(),_.full=0,_.left=0,_.center=d.left,_.right=d.left+d.center}_refreshDrawHeightConstants(){c.full=Math.round(2*this._coreBrowseService.dpr);const e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowseService.dpr);c.left=t,c.center=t,c.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowseService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowseService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(const t of this._decorationService.decorations)this._colorZoneStore.addDecoration(t);this._ctx.lineWidth=1;const e=this._colorZoneStore.zones;for(const t of e)"full"!==t.position&&this._renderColorZone(t);for(const t of e)"full"===t.position&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(_[e.position||"full"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-c[e.position||"full"]/2),d[e.position||"full"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+c[e.position||"full"]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowseService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};u=s([r(2,l.IBufferService),r(3,l.IDecorationService),r(4,a.IRenderService),r(5,l.IOptionsService),r(6,a.ICoreBrowserService)],u),t.OverviewRulerRenderer=u},2950:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompositionHelper=void 0;const n=i(4725),o=i(2585),a=i(2584);let h=class{constructor(e,t,i,s,r,n){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=s,this._coreService=r,this._renderService=n,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}get isComposing(){return this._isComposing}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove("active"),this._isComposing=!1,e){const e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let t;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}}),0)}else{this._isSendingComposition=!1;const e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){const e=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const t=this._textarea.value,i=t.replace(e,"");this._dataAlreadySent=i,t.length>e.length?this._coreService.triggerDataEvent(i,!0):t.length<e.length?this._coreService.triggerDataEvent(`${a.C0.DEL}`,!0):t.length===e.length&&t!==e&&this._coreService.triggerDataEvent(t,!0)}}),0)}updateCompositionElements(e){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){const e=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),t=this._renderService.dimensions.css.cell.height,i=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,s=e*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=s+"px",this._compositionView.style.top=i+"px",this._compositionView.style.height=t+"px",this._compositionView.style.lineHeight=t+"px",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+"px";const r=this._compositionView.getBoundingClientRect();this._textarea.style.left=s+"px",this._textarea.style.top=i+"px",this._textarea.style.width=Math.max(r.width,1)+"px",this._textarea.style.height=Math.max(r.height,1)+"px",this._textarea.style.lineHeight=r.height+"px"}e||setTimeout((()=>this.updateCompositionElements(!0)),0)}}};h=s([r(2,o.IBufferService),r(3,o.IOptionsService),r(4,o.ICoreService),r(5,n.IRenderService)],h),t.CompositionHelper=h},9806:(e,t)=>{function i(e,t,i){const s=i.getBoundingClientRect(),r=e.getComputedStyle(i),n=parseInt(r.getPropertyValue("padding-left")),o=parseInt(r.getPropertyValue("padding-top"));return[t.clientX-s.left-n,t.clientY-s.top-o]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,s,r,n,o,a,h,l){if(!o)return;const c=i(e,t,s);return c?(c[0]=Math.ceil((c[0]+(l?a/2:0))/a),c[1]=Math.ceil(c[1]/h),c[0]=Math.min(Math.max(c[0],1),r+(l?1:0)),c[1]=Math.min(Math.max(c[1],1),n),c):void 0}},9504:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.moveToCellSequence=void 0;const s=i(2584);function r(e,t,i,s){const r=e-n(e,i),a=t-n(t,i),c=Math.abs(r-a)-function(e,t,i){let s=0;const r=e-n(e,i),a=t-n(t,i);for(let n=0;n<Math.abs(r-a);n++){const a="A"===o(e,t)?-1:1,h=i.buffer.lines.get(r+a*n);(null==h?void 0:h.isWrapped)&&s++}return s}(e,t,i);return l(c,h(o(e,t),s))}function n(e,t){let i=0,s=t.buffer.lines.get(e),r=null==s?void 0:s.isWrapped;for(;r&&e>=0&&e<t.rows;)i++,s=t.buffer.lines.get(--e),r=null==s?void 0:s.isWrapped;return i}function o(e,t){return e>t?"A":"B"}function a(e,t,i,s,r,n){let o=e,a=t,h="";for(;o!==i||a!==s;)o+=r?1:-1,r&&o>n.cols-1?(h+=n.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!r&&o<0&&(h+=n.buffer.translateBufferLineToString(a,!1,0,e+1),o=n.cols-1,e=o,a--);return h+n.buffer.translateBufferLineToString(a,!1,e,o)}function h(e,t){const i=t?"O":"[";return s.C0.ESC+i+e}function l(e,t){e=Math.floor(e);let i="";for(let s=0;s<e;s++)i+=t;return i}t.moveToCellSequence=function(e,t,i,s){const o=i.buffer.x,c=i.buffer.y;if(!i.buffer.hasScrollback)return function(e,t,i,s,o,c){return 0===r(t,s,o,c).length?"":l(a(e,t,e,t-n(t,o),!1,o).length,h("D",c))}(o,c,0,t,i,s)+r(c,t,i,s)+function(e,t,i,s,o,c){let d;d=r(t,s,o,c).length>0?s-n(s,o):t;const _=s,u=function(e,t,i,s,o,a){let h;return h=r(i,s,o,a).length>0?s-n(s,o):t,e<i&&h<=s||e>=i&&h<s?"C":"D"}(e,t,i,s,o,c);return l(a(e,d,i,_,"C"===u,o).length,h(u,c))}(o,c,e,t,i,s);let d;if(c===t)return d=o>e?"D":"C",l(Math.abs(o-e),h(d,s));d=c>t?"D":"C";const _=Math.abs(c-t);return l(function(e,t){return t.cols-e}(c>t?e:o,i)+(_-1)*i.cols+1+((c>t?o:e)-1),h(d,s))}},1296:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRenderer=void 0;const n=i(3787),o=i(2223),a=i(6171),h=i(4725),l=i(8055),c=i(8460),d=i(844),_=i(2585),u="xterm-dom-renderer-owner-",f="xterm-focus";let v=1,g=class extends d.Disposable{constructor(e,t,i,s,r,o,h,l,_,f){super(),this._element=e,this._screenElement=t,this._viewportElement=i,this._linkifier2=s,this._charSizeService=o,this._optionsService=h,this._bufferService=l,this._coreBrowserService=_,this._themeService=f,this._terminalClass=v++,this._rowElements=[],this._cellToRowElements=[],this.onRequestRedraw=this.register(new c.EventEmitter).event,this._rowContainer=document.createElement("div"),this._rowContainer.classList.add("xterm-rows"),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=document.createElement("div"),this._selectionContainer.classList.add("xterm-selection"),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,a.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((e=>this._injectCss(e)))),this._injectCss(this._themeService.colors),this._rowFactory=r.createInstance(n.DomRendererRowFactory,document),this._element.classList.add(u+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((e=>this._handleLinkHover(e)))),this.register(this._linkifier2.onHideLinkUnderline((e=>this._handleLinkLeave(e)))),this.register((0,d.toDisposable)((()=>{this._element.classList.remove(u+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})))}_updateDimensions(){const e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(const i of this._rowElements)i.style.width=`${this.dimensions.css.canvas.width}px`,i.style.height=`${this.dimensions.css.cell.height}px`,i.style.lineHeight=`${this.dimensions.css.cell.height}px`,i.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));const t=`${this._terminalSelector} .xterm-rows span { display: inline-block; height: 100%; vertical-align: top; width: ${this.dimensions.css.cell.width}px}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .xterm-rows { color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px;}`;t+=`${this._terminalSelector} .xterm-rows .xterm-dim { color: ${l.color.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.${n.BOLD_CLASS}) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.${n.BOLD_CLASS} { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.${n.ITALIC_CLASS} { font-style: italic;}`,t+="@keyframes blink_box_shadow_"+this._terminalClass+" { 50% { box-shadow: none; }}",t+="@keyframes blink_block_"+this._terminalClass+" { 0% {"+` background-color: ${e.cursor.css};`+` color: ${e.cursorAccent.css}; } 50% {`+` background-color: ${e.cursorAccent.css};`+` color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .xterm-rows:not(.xterm-focus) .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} ,${this._terminalSelector} .xterm-rows:not(.xterm-focus) .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BAR_CLASS} ,${this._terminalSelector} .xterm-rows:not(.xterm-focus) .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_UNDERLINE_CLASS} { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_BLINK_CLASS}:not(.${n.CURSOR_STYLE_BLOCK_CLASS}) { animation: blink_box_shadow_`+this._terminalClass+" 1s step-end infinite;}"+`${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_BLINK_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} { animation: blink_block_`+this._terminalClass+" 1s step-end infinite;}"+`${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} {`+` background-color: ${e.cursor.css};`+` color: ${e.cursorAccent.css};}`+`${this._terminalSelector} .xterm-rows .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BAR_CLASS} {`+` box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}`+`${this._terminalSelector} .xterm-rows .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_UNDERLINE_CLASS} {`+` box-shadow: 0 -1px 0 ${e.cursor.css} inset;}`,t+=`${this._terminalSelector} .xterm-selection { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .xterm-selection div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .xterm-selection div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(const[i,s]of e.ansi.entries())t+=`${this._terminalSelector} .xterm-fg-${i} { color: ${s.css}; }${this._terminalSelector} .xterm-fg-${i}.${n.DIM_CLASS} { color: ${l.color.multiplyOpacity(s,.5).css}; }${this._terminalSelector} .xterm-bg-${i} { background-color: ${s.css}; }`;t+=`${this._terminalSelector} .xterm-fg-${o.INVERTED_DEFAULT_COLOR} { color: ${l.color.opaque(e.background).css}; }${this._terminalSelector} .xterm-fg-${o.INVERTED_DEFAULT_COLOR}.${n.DIM_CLASS} { color: ${l.color.multiplyOpacity(l.color.opaque(e.background),.5).css}; }${this._terminalSelector} .xterm-bg-${o.INVERTED_DEFAULT_COLOR} { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}handleDevicePixelRatioChange(){this._updateDimensions()}_refreshRowElements(e,t){for(let i=this._rowElements.length;i<=t;i++){const e=document.createElement("div");this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions()}handleCharSizeChanged(){this._updateDimensions()}handleBlur(){this._rowContainer.classList.remove(f)}handleFocus(){this._rowContainer.classList.add(f)}handleSelectionChanged(e,t,i){for(;this._selectionContainer.children.length;)this._selectionContainer.removeChild(this._selectionContainer.children[0]);if(this._rowFactory.handleSelectionChanged(e,t,i),this.renderRows(0,this._bufferService.rows-1),!e||!t)return;const s=e[1]-this._bufferService.buffer.ydisp,r=t[1]-this._bufferService.buffer.ydisp,n=Math.max(s,0),o=Math.min(r,this._bufferService.rows-1);if(n>=this._bufferService.rows||o<0)return;const a=document.createDocumentFragment();if(i){const i=e[0]>t[0];a.appendChild(this._createSelectionElement(n,i?t[0]:e[0],i?e[0]:t[0],o-n+1))}else{const i=s===n?e[0]:0,h=n===r?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(n,i,h));const l=o-n-1;if(a.appendChild(this._createSelectionElement(n+1,0,this._bufferService.cols,l)),n!==o){const e=r===o?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(a)}_createSelectionElement(e,t,i,s=1){const r=document.createElement("div");return r.style.height=s*this.dimensions.css.cell.height+"px",r.style.top=e*this.dimensions.css.cell.height+"px",r.style.left=t*this.dimensions.css.cell.width+"px",r.style.width=this.dimensions.css.cell.width*(i-t)+"px",r}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors)}clear(){for(const e of this._rowElements)e.replaceChildren()}renderRows(e,t){const i=this._bufferService.buffer.ybase+this._bufferService.buffer.y,s=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),r=this._optionsService.rawOptions.cursorBlink;for(let n=e;n<=t;n++){const e=this._rowElements[n],t=n+this._bufferService.buffer.ydisp,o=this._bufferService.buffer.lines.get(t),a=this._optionsService.rawOptions.cursorStyle;this._cellToRowElements[n]&&this._cellToRowElements[n].length===this._bufferService.cols||(this._cellToRowElements[n]=new Int16Array(this._bufferService.cols)),e.replaceChildren(this._rowFactory.createRow(o,t,t===i,a,s,r,this.dimensions.css.cell.width,this._bufferService.cols,this._cellToRowElements[n]))}}get _terminalSelector(){return`.${u}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,i,s,r,n){i<0&&(e=0),s<0&&(t=0);const o=this._cellToRowElements.length-1;i=Math.max(Math.min(i,o),0),s=Math.max(Math.min(s,o),0);const a=this._cellToRowElements[i],h=this._cellToRowElements[s];if(!(e>=a.length||t>=h.length)&&(e=a[e],t=h[t],-1!==e&&-1!==t))for(;e!==t||i!==s;){const t=this._rowElements[i];if(!t)return;const s=t.children[e];s&&(s.style.textDecoration=n?"underline":"none"),++e>=r&&(e=0,i++)}}};g=s([r(4,_.IInstantiationService),r(5,h.ICharSizeService),r(6,_.IOptionsService),r(7,_.IBufferService),r(8,h.ICoreBrowserService),r(9,h.IThemeService)],g),t.DomRenderer=g},3787:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRendererRowFactory=t.CURSOR_STYLE_UNDERLINE_CLASS=t.CURSOR_STYLE_BAR_CLASS=t.CURSOR_STYLE_BLOCK_CLASS=t.CURSOR_BLINK_CLASS=t.CURSOR_CLASS=t.STRIKETHROUGH_CLASS=t.OVERLINE_CLASS=t.UNDERLINE_CLASS=t.ITALIC_CLASS=t.DIM_CLASS=t.BOLD_CLASS=void 0;const n=i(2223),o=i(643),a=i(511),h=i(2585),l=i(8055),c=i(4725),d=i(4269),_=i(6171),u=i(3734);t.BOLD_CLASS="xterm-bold",t.DIM_CLASS="xterm-dim",t.ITALIC_CLASS="xterm-italic",t.UNDERLINE_CLASS="xterm-underline",t.OVERLINE_CLASS="xterm-overline",t.STRIKETHROUGH_CLASS="xterm-strikethrough",t.CURSOR_CLASS="xterm-cursor",t.CURSOR_BLINK_CLASS="xterm-cursor-blink",t.CURSOR_STYLE_BLOCK_CLASS="xterm-cursor-block",t.CURSOR_STYLE_BAR_CLASS="xterm-cursor-bar",t.CURSOR_STYLE_UNDERLINE_CLASS="xterm-cursor-underline";let f=class{constructor(e,t,i,s,r,n,o){this._document=e,this._characterJoinerService=t,this._optionsService=i,this._coreBrowserService=s,this._coreService=r,this._decorationService=n,this._themeService=o,this._workCell=new a.CellData,this._columnSelectMode=!1}handleSelectionChanged(e,t,i){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=i}createRow(e,i,s,r,a,h,c,_,f){const g=this._document.createDocumentFragment(),p=this._characterJoinerService.getJoinedCharacters(i);let m=0;for(let t=Math.min(e.length,_)-1;t>=0;t--)if(e.loadCell(t,this._workCell).getCode()!==o.NULL_CELL_CODE||s&&t===a){m=t+1;break}const C=this._themeService.colors;let S=-1,b=0;for(;b<m;b++){e.loadCell(b,this._workCell);let _=this._workCell.getWidth();if(0===_){f[b]=S;continue}let m=!1,w=b,y=this._workCell;if(p.length>0&&b===p[0][0]){m=!0;const t=p.shift();y=new d.JoinedCellData(this._workCell,e.translateToString(!0,t[0],t[1]),t[1]-t[0]),w=t[1]-1,_=y.getWidth()}const L=this._document.createElement("span");if(_>1&&(L.style.width=c*_+"px"),m&&(L.style.display="inline",a>=b&&a<=w&&(a=b)),!this._coreService.isCursorHidden&&s&&b===a)switch(L.classList.add(t.CURSOR_CLASS),h&&L.classList.add(t.CURSOR_BLINK_CLASS),r){case"bar":L.classList.add(t.CURSOR_STYLE_BAR_CLASS);break;case"underline":L.classList.add(t.CURSOR_STYLE_UNDERLINE_CLASS);break;default:L.classList.add(t.CURSOR_STYLE_BLOCK_CLASS)}if(y.isBold()&&L.classList.add(t.BOLD_CLASS),y.isItalic()&&L.classList.add(t.ITALIC_CLASS),y.isDim()&&L.classList.add(t.DIM_CLASS),y.isInvisible()?L.textContent=o.WHITESPACE_CELL_CHAR:L.textContent=y.getChars()||o.WHITESPACE_CELL_CHAR,y.isUnderline()&&(L.classList.add(`${t.UNDERLINE_CLASS}-${y.extended.underlineStyle}`)," "===L.textContent&&(L.textContent=" "),!y.isUnderlineColorDefault()))if(y.isUnderlineColorRGB())L.style.textDecorationColor=`rgb(${u.AttributeData.toColorRGB(y.getUnderlineColor()).join(",")})`;else{let e=y.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&y.isBold()&&e<8&&(e+=8),L.style.textDecorationColor=C.ansi[e].css}y.isOverline()&&(L.classList.add(t.OVERLINE_CLASS)," "===L.textContent&&(L.textContent=" ")),y.isStrikethrough()&&L.classList.add(t.STRIKETHROUGH_CLASS);let E=y.getFgColor(),x=y.getFgColorMode(),R=y.getBgColor(),A=y.getBgColorMode();const D=!!y.isInverse();if(D){const e=E;E=R,R=e;const t=x;x=A,A=t}let M,k,T=!1;this._decorationService.forEachDecorationAtCell(b,i,void 0,(e=>{"top"!==e.options.layer&&T||(e.backgroundColorRGB&&(A=50331648,R=e.backgroundColorRGB.rgba>>8&16777215,M=e.backgroundColorRGB),e.foregroundColorRGB&&(x=50331648,E=e.foregroundColorRGB.rgba>>8&16777215,k=e.foregroundColorRGB),T="top"===e.options.layer)}));const B=this._isCellInSelection(b,i);let O;switch(T||C.selectionForeground&&B&&(x=50331648,E=C.selectionForeground.rgba>>8&16777215,k=C.selectionForeground),B&&(M=this._coreBrowserService.isFocused?C.selectionBackgroundOpaque:C.selectionInactiveBackgroundOpaque,T=!0),T&&L.classList.add("xterm-decoration-top"),A){case 16777216:case 33554432:O=C.ansi[R],L.classList.add(`xterm-bg-${R}`);break;case 50331648:O=l.rgba.toColor(R>>16,R>>8&255,255&R),this._addStyle(L,`background-color:#${v((R>>>0).toString(16),"0",6)}`);break;default:D?(O=C.foreground,L.classList.add(`xterm-bg-${n.INVERTED_DEFAULT_COLOR}`)):O=C.background}switch(M||y.isDim()&&(M=l.color.multiplyOpacity(O,.5)),x){case 16777216:case 33554432:y.isBold()&&E<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(E+=8),this._applyMinimumContrast(L,O,C.ansi[E],y,M,void 0)||L.classList.add(`xterm-fg-${E}`);break;case 50331648:const e=l.rgba.toColor(E>>16&255,E>>8&255,255&E);this._applyMinimumContrast(L,O,e,y,M,k)||this._addStyle(L,`color:#${v(E.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(L,O,C.foreground,y,M,void 0)||D&&L.classList.add(`xterm-fg-${n.INVERTED_DEFAULT_COLOR}`)}g.appendChild(L),f[b]=++S,b=w}return b<_-1&&f.subarray(b).fill(++S),g}_applyMinimumContrast(e,t,i,s,r,n){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,_.excludeFromContrastRatioDemands)(s.getCode()))return!1;let o;return r||n||(o=this._themeService.colors.contrastCache.getColor(t.rgba,i.rgba)),void 0===o&&(o=l.color.ensureContrastRatio(r||t,n||i,this._optionsService.rawOptions.minimumContrastRatio),this._themeService.colors.contrastCache.setColor((r||t).rgba,(n||i).rgba,null!=o?o:null)),!!o&&(this._addStyle(e,`color:${o.css}`),!0)}_addStyle(e,t){e.setAttribute("style",`${e.getAttribute("style")||""}${t};`)}_isCellInSelection(e,t){const i=this._selectionStart,s=this._selectionEnd;return!(!i||!s)&&(this._columnSelectMode?i[0]<=s[0]?e>=i[0]&&t>=i[1]&&e<s[0]&&t<=s[1]:e<i[0]&&t>=i[1]&&e>=s[0]&&t<=s[1]:t>i[1]&&t<s[1]||i[1]===s[1]&&t===i[1]&&e>=i[0]&&e<s[0]||i[1]<s[1]&&t===s[1]&&e<s[0]||i[1]<s[1]&&t===i[1]&&e>=i[0])}};function v(e,t,i){for(;e.length<i;)e=t+e;return e}f=s([r(1,c.ICharacterJoinerService),r(2,h.IOptionsService),r(3,c.ICoreBrowserService),r(4,h.ICoreService),r(5,h.IDecorationService),r(6,c.IThemeService)],f),t.DomRendererRowFactory=f},2223:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?"bottom":"ideographic"},6171:(e,t)=>{function i(e){return 57508<=e&&e<=57558}Object.defineProperty(t,"__esModule",{value:!0}),t.createRenderDimensions=t.excludeFromContrastRatioDemands=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.excludeFromContrastRatioDemands=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}}},456:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharSizeService=void 0;const n=i(2585),o=i(8460),a=i(844);let h=class extends a.Disposable{constructor(e,t,i){super(),this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=this.register(new o.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event,this._measureStrategy=new l(e,t,this._optionsService),this.register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],(()=>this.measure())))}get hasValidSize(){return this.width>0&&this.height>0}measure(){const e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};h=s([r(2,n.IOptionsService)],h),t.CharSizeService=h;class l{constructor(e,t,i){this._document=e,this._parentElement=t,this._optionsService=i,this._result={width:0,height:0},this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W",this._measureElement.setAttribute("aria-hidden","true"),this._parentElement.appendChild(this._measureElement)}measure(){this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`;const e=this._measureElement.getBoundingClientRect();return 0!==e.width&&0!==e.height&&(this._result.width=e.width,this._result.height=Math.ceil(e.height)),this._result}}},4269:function(e,t,i){var r=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const o=i(3734),a=i(643),h=i(511),l=i(2585);class c extends o.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData="",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=c;let d=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new h.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t<this._characterJoiners.length;t++)if(this._characterJoiners[t].id===e)return this._characterJoiners.splice(t,1),!0;return!1}getJoinedCharacters(e){if(0===this._characterJoiners.length)return[];const t=this._bufferService.buffer.lines.get(e);if(!t||0===t.length)return[];const i=[],s=t.translateToString(!0);let r=0,n=0,o=0,h=t.getFg(0),l=t.getBg(0);for(let c=0;c<t.getTrimmedLength();c++)if(t.loadCell(c,this._workCell),0!==this._workCell.getWidth()){if(this._workCell.fg!==h||this._workCell.bg!==l){if(c-r>1){const e=this._getJoinedRanges(s,o,n,t,r);for(let t=0;t<e.length;t++)i.push(e[t])}r=c,o=n,h=this._workCell.fg,l=this._workCell.bg}n+=this._workCell.getChars().length||a.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-r>1){const e=this._getJoinedRanges(s,o,n,t,r);for(let t=0;t<e.length;t++)i.push(e[t])}return i}_getJoinedRanges(t,i,r,n,o){const a=t.substring(i,r);let h=[];try{h=this._characterJoiners[0].handler(a)}catch(e){s.error(e)}for(let l=1;l<this._characterJoiners.length;l++)try{const t=this._characterJoiners[l].handler(a);for(let i=0;i<t.length;i++)e._mergeRanges(h,t[i])}catch(e){s.error(e)}return this._stringRangesToCellRanges(h,n,o),h}_stringRangesToCellRanges(e,t,i){let s=0,r=!1,n=0,o=e[s];if(o){for(let h=i;h<this._bufferService.cols;h++){const i=t.getWidth(h),l=t.getString(h).length||a.WHITESPACE_CELL_CHAR.length;if(0!==i){if(!r&&o[0]<=n&&(o[0]=h,r=!0),o[1]<=n){if(o[1]=h,o=e[++s],!o)break;o[0]<=n?(o[0]=h,r=!0):r=!1}n+=l}}o&&(o[1]=this._bufferService.cols)}}static _mergeRanges(e,t){let i=!1;for(let s=0;s<e.length;s++){const r=e[s];if(i){if(t[1]<=r[0])return e[s-1][1]=t[1],e;if(t[1]<=r[1])return e[s-1][1]=Math.max(t[1],r[1]),e.splice(s,1),e;e.splice(s,1),s--}else{if(t[1]<=r[0])return e.splice(s,0,t),e;if(t[1]<=r[1])return r[0]=Math.min(t[0],r[0]),e;t[0]<r[1]&&(r[0]=Math.min(t[0],r[0]),i=!0)}}return i?e[e.length-1][1]=t[1]:e.push(t),e}};d=r([n(0,l.IBufferService)],d),t.CharacterJoinerService=d},5114:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreBrowserService=void 0,t.CoreBrowserService=class{constructor(e,t){this._textarea=e,this.window=t,this._isFocused=!1,this._cachedIsFocused=void 0,this._textarea.addEventListener("focus",(()=>this._isFocused=!0)),this._textarea.addEventListener("blur",(()=>this._isFocused=!1))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return void 0===this._cachedIsFocused&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}},8934:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MouseService=void 0;const n=i(4725),o=i(9806);let a=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,i,s,r){return(0,o.getCoords)(window,e,t,i,s,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,r)}getMouseReportCoords(e,t){const i=(0,o.getCoordsRelativeToElement)(window,e,t);if(!(!this._charSizeService.hasValidSize||i[0]<0||i[1]<0||i[0]>=this._renderService.dimensions.css.canvas.width||i[1]>=this._renderService.dimensions.css.canvas.height))return{col:Math.floor(i[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(i[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(i[0]),y:Math.floor(i[1])}}};a=s([r(0,n.IRenderService),r(1,n.ICharSizeService)],a),t.MouseService=a},3230:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenderService=void 0;const n=i(6193),o=i(8460),a=i(844),h=i(5596),l=i(3656),c=i(2585),d=i(4725),_=i(7226);let u=class extends a.Disposable{constructor(e,t,i,s,r,a,c,d){if(super(),this._rowCount=e,this._charSizeService=s,this._pausedResizeTask=new _.DebouncedIdleTask,this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new o.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new o.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new o.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new o.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this.register({dispose:()=>{var e;return null===(e=this._renderer)||void 0===e?void 0:e.dispose()}}),this._renderDebouncer=new n.RenderDebouncer(c.window,((e,t)=>this._renderRows(e,t))),this.register(this._renderDebouncer),this._screenDprMonitor=new h.ScreenDprMonitor(c.window),this._screenDprMonitor.setListener((()=>this.handleDevicePixelRatioChange())),this.register(this._screenDprMonitor),this.register(a.onResize((()=>this._fullRefresh()))),this.register(a.buffers.onBufferActivate((()=>{var e;return null===(e=this._renderer)||void 0===e?void 0:e.clear()}))),this.register(i.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(r.onDecorationRegistered((()=>this._fullRefresh()))),this.register(r.onDecorationRemoved((()=>this._fullRefresh()))),this.register(i.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio"],(()=>{this.clear(),this.handleResize(a.cols,a.rows),this._fullRefresh()}))),this.register(i.onMultipleOptionChange(["cursorBlink","cursorStyle"],(()=>this.refreshRows(a.buffer.y,a.buffer.y,!0)))),this.register((0,l.addDisposableDomListener)(c.window,"resize",(()=>this.handleDevicePixelRatioChange()))),this.register(d.onChangeColors((()=>this._fullRefresh()))),"IntersectionObserver"in c.window){const e=new c.window.IntersectionObserver((e=>this._handleIntersectionChange(e[e.length-1])),{threshold:0});e.observe(t),this.register({dispose:()=>e.disconnect()})}}get dimensions(){return this._renderer.dimensions}_handleIntersectionChange(e){this._isPaused=void 0===e.isIntersecting?0===e.intersectionRatio:!e.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,i=!1){this._isPaused?this._needsFullRefresh=!0:(i||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount))}_renderRows(e,t){this._renderer&&(e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.renderRows(e,t),this._needsSelectionRefresh&&(this._renderer.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0)}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer&&(this._renderer.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.dimensions))}hasRenderer(){return!!this._renderer}setRenderer(e){var t;null===(t=this._renderer)||void 0===t||t.dispose(),this._renderer=e,this._renderer.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh()}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){var e,t;this._renderer&&(null===(t=(e=this._renderer).clearTextureAtlas)||void 0===t||t.call(e),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer&&(this._renderer.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.handleResize(e,t))):this._renderer.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){var e;null===(e=this._renderer)||void 0===e||e.handleCharSizeChanged()}handleBlur(){var e;null===(e=this._renderer)||void 0===e||e.handleBlur()}handleFocus(){var e;null===(e=this._renderer)||void 0===e||e.handleFocus()}handleSelectionChanged(e,t,i){var s;this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=i,null===(s=this._renderer)||void 0===s||s.handleSelectionChanged(e,t,i)}handleCursorMove(){var e;null===(e=this._renderer)||void 0===e||e.handleCursorMove()}clear(){var e;null===(e=this._renderer)||void 0===e||e.clear()}};u=s([r(2,c.IOptionsService),r(3,d.ICharSizeService),r(4,c.IDecorationService),r(5,c.IBufferService),r(6,d.ICoreBrowserService),r(7,d.IThemeService)],u),t.RenderService=u},9312:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionService=void 0;const n=i(6114),o=i(456),a=i(511),h=i(8460),l=i(4725),c=i(2585),d=i(9806),_=i(9504),u=i(844),f=i(4841),v=String.fromCharCode(160),g=new RegExp(v,"g");let p=class extends u.Disposable{constructor(e,t,i,s,r,n,l,c,d){super(),this._element=e,this._screenElement=t,this._linkifier=i,this._bufferService=s,this._coreService=r,this._mouseService=n,this._optionsService=l,this._renderService=c,this._coreBrowserService=d,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new a.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new h.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new h.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new h.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new h.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((e=>this._handleTrim(e))),this.register(this._bufferService.buffers.onBufferActivate((e=>this._handleBufferActivate(e)))),this.enable(),this._model=new o.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,u.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t||e[0]===t[0]&&e[1]===t[1])}get selectionText(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return"";const i=this._bufferService.buffer,s=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return"";const r=e[0]<t[0]?e[0]:t[0],n=e[0]<t[0]?t[0]:e[0];for(let o=e[1];o<=t[1];o++){const e=i.translateBufferLineToString(o,!0,r,n);s.push(e)}}else{const r=e[1]===t[1]?t[0]:void 0;s.push(i.translateBufferLineToString(e[1],!0,e[0],r));for(let n=e[1]+1;n<=t[1]-1;n++){const e=i.lines.get(n),t=i.translateBufferLineToString(n,!0);(null==e?void 0:e.isWrapped)?s[s.length-1]+=t:s.push(t)}if(e[1]!==t[1]){const e=i.lines.get(t[1]),r=i.translateBufferLineToString(t[1],!0,0,t[0]);e&&e.isWrapped?s[s.length-1]+=r:s.push(r)}}return s.map((e=>e.replace(g," "))).join(n.isWindows?"\r\n":"\n")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),n.isLinux&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){const t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!!(i&&s&&t)&&this._areCoordsInSelection(t,i,s)}isCellInSelection(e,t){const i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!(!i||!s)&&this._areCoordsInSelection([e,t],i,s)}_areCoordsInSelection(e,t,i){return e[1]>t[1]&&e[1]<i[1]||t[1]===i[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<i[0]||t[1]<i[1]&&e[1]===i[1]&&e[0]<i[0]||t[1]<i[1]&&e[1]===t[1]&&e[0]>=t[0]}_selectWordAtCursor(e,t){var i,s;const r=null===(s=null===(i=this._linkifier.currentLink)||void 0===i?void 0:i.link)||void 0===s?void 0:s.range;if(r)return this._model.selectionStart=[r.start.x-1,r.start.y-1],this._model.selectionStartLength=(0,f.getRangeLength)(r,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const n=this._getMouseBufferCoords(e);return!!n&&(this._selectWordAt(n,t),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){const t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=(0,d.getCoordsRelativeToElement)(this._coreBrowserService.window,e,this._screenElement)[1];const i=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),t/=50,t/Math.abs(t)+Math.round(14*t))}shouldForceSelection(e){return n.isMac?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):1===e.detail?this._handleSingleClick(e):2===e.detail?this._handleDoubleClick(e):3===e.detail&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){const t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(n.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;const t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:1===this._activeSelectionMode&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),3!==this._activeSelectionMode&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const i=this._bufferService.buffer;if(this._model.selectionEnd[1]<i.lines.length){const e=i.lines.get(this._model.selectionEnd[1]);e&&0===e.hasWidth(this._model.selectionEnd[0])&&this._model.selectionEnd[0]++}t&&t[0]===this._model.selectionEnd[0]&&t[1]===this._model.selectionEnd[1]||this.refresh(!0)}_dragScroll(){if(this._model.selectionEnd&&this._model.selectionStart&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});const e=this._bufferService.buffer;this._dragScrollAmount>0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){const t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&void 0!==t[0]&&void 0!==t[1]){const e=(0,_.moveToCellSequence)(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,i=!(!e||!t||e[0]===t[0]&&e[1]===t[1]);i?e&&t&&(this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&t[0]===this._oldSelectionEnd[0]&&t[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,t,i)):this._oldHasSelection&&this._fireOnSelectionChange(e,t,i)}_fireOnSelectionChange(e,t,i){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=i,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim((e=>this._handleTrim(e)))}_convertViewportColToCharacterIndex(e,t){let i=t;for(let s=0;t>=s;s++){const r=e.loadCell(s,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:r>1&&t!==s&&(i+=r-1)}return i}setSelection(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,i=!0,s=!0){if(e[0]>=this._bufferService.cols)return;const r=this._bufferService.buffer,n=r.lines.get(e[1]);if(!n)return;const o=r.translateBufferLineToString(e[1],!1);let a=this._convertViewportColToCharacterIndex(n,e[0]),h=a;const l=e[0]-a;let c=0,d=0,_=0,u=0;if(" "===o.charAt(a)){for(;a>0&&" "===o.charAt(a-1);)a--;for(;h<o.length&&" "===o.charAt(h+1);)h++}else{let t=e[0],i=e[0];0===n.getWidth(t)&&(c++,t--),2===n.getWidth(i)&&(d++,i++);const s=n.getString(i).length;for(s>1&&(u+=s-1,h+=s-1);t>0&&a>0&&!this._isCharWordSeparator(n.loadCell(t-1,this._workCell));){n.loadCell(t-1,this._workCell);const e=this._workCell.getChars().length;0===this._workCell.getWidth()?(c++,t--):e>1&&(_+=e-1,a-=e-1),a--,t--}for(;i<n.length&&h+1<o.length&&!this._isCharWordSeparator(n.loadCell(i+1,this._workCell));){n.loadCell(i+1,this._workCell);const e=this._workCell.getChars().length;2===this._workCell.getWidth()?(d++,i++):e>1&&(u+=e-1,h+=e-1),h++,i++}}h++;let f=a+l-c+_,v=Math.min(this._bufferService.cols,h-a+c+d-_-u);if(t||""!==o.slice(a,h).trim()){if(i&&0===f&&32!==n.getCodePoint(0)){const t=r.lines.get(e[1]-1);if(t&&n.isWrapped&&32!==t.getCodePoint(this._bufferService.cols-1)){const t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){const e=this._bufferService.cols-t.start;f-=e,v+=e}}}if(s&&f+v===this._bufferService.cols&&32!==n.getCodePoint(this._bufferService.cols-1)){const t=r.lines.get(e[1]+1);if((null==t?void 0:t.isWrapped)&&32!==t.getCodePoint(0)){const t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(v+=t.length)}}return{start:f,length:v}}}_selectWordAt(e,t){const i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}}_selectToWordAt(e){const t=this._getWordAt(e,!0);if(t){let i=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){const t=this._bufferService.buffer.getWrappedRangeForLine(e),i={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,f.getRangeLength)(i,this._bufferService.cols)}};p=s([r(3,c.IBufferService),r(4,c.ICoreService),r(5,l.IMouseService),r(6,c.IOptionsService),r(7,l.IRenderService),r(8,l.ICoreBrowserService)],p),t.SelectionService=p},4725:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;const s=i(8343);t.ICharSizeService=(0,s.createDecorator)("CharSizeService"),t.ICoreBrowserService=(0,s.createDecorator)("CoreBrowserService"),t.IMouseService=(0,s.createDecorator)("MouseService"),t.IRenderService=(0,s.createDecorator)("RenderService"),t.ISelectionService=(0,s.createDecorator)("SelectionService"),t.ICharacterJoinerService=(0,s.createDecorator)("CharacterJoinerService"),t.IThemeService=(0,s.createDecorator)("ThemeService")},6731:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;const n=i(7239),o=i(8055),a=i(8460),h=i(844),l=i(2585),c=o.css.toColor("#ffffff"),d=o.css.toColor("#000000"),_=o.css.toColor("#ffffff"),u=o.css.toColor("#000000"),f={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const e=[o.css.toColor("#2e3436"),o.css.toColor("#cc0000"),o.css.toColor("#4e9a06"),o.css.toColor("#c4a000"),o.css.toColor("#3465a4"),o.css.toColor("#75507b"),o.css.toColor("#06989a"),o.css.toColor("#d3d7cf"),o.css.toColor("#555753"),o.css.toColor("#ef2929"),o.css.toColor("#8ae234"),o.css.toColor("#fce94f"),o.css.toColor("#729fcf"),o.css.toColor("#ad7fa8"),o.css.toColor("#34e2e2"),o.css.toColor("#eeeeec")],t=[0,95,135,175,215,255];for(let i=0;i<216;i++){const s=t[i/36%6|0],r=t[i/6%6|0],n=t[i%6];e.push({css:o.channels.toCss(s,r,n),rgba:o.channels.toRgba(s,r,n)})}for(let i=0;i<24;i++){const t=8+10*i;e.push({css:o.channels.toCss(t,t,t),rgba:o.channels.toRgba(t,t,t)})}return e})());let v=class extends h.Disposable{constructor(e){super(),this._optionsService=e,this._onChangeColors=this.register(new a.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._contrastCache=new n.ColorContrastCache,this._colors={foreground:c,background:d,cursor:_,cursorAccent:u,selectionForeground:void 0,selectionBackgroundTransparent:f,selectionBackgroundOpaque:o.color.blend(d,f),selectionInactiveBackgroundTransparent:f,selectionInactiveBackgroundOpaque:o.color.blend(d,f),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange("theme",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}get colors(){return this._colors}_setTheme(e={}){const i=this._colors;if(i.foreground=g(e.foreground,c),i.background=g(e.background,d),i.cursor=g(e.cursor,_),i.cursorAccent=g(e.cursorAccent,u),i.selectionBackgroundTransparent=g(e.selectionBackground,f),i.selectionBackgroundOpaque=o.color.blend(i.background,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundTransparent=g(e.selectionInactiveBackground,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundOpaque=o.color.blend(i.background,i.selectionInactiveBackgroundTransparent),i.selectionForeground=e.selectionForeground?g(e.selectionForeground,o.NULL_COLOR):void 0,i.selectionForeground===o.NULL_COLOR&&(i.selectionForeground=void 0),o.color.isOpaque(i.selectionBackgroundTransparent)){const e=.3;i.selectionBackgroundTransparent=o.color.opacity(i.selectionBackgroundTransparent,e)}if(o.color.isOpaque(i.selectionInactiveBackgroundTransparent)){const e=.3;i.selectionInactiveBackgroundTransparent=o.color.opacity(i.selectionInactiveBackgroundTransparent,e)}if(i.ansi=t.DEFAULT_ANSI_COLORS.slice(),i.ansi[0]=g(e.black,t.DEFAULT_ANSI_COLORS[0]),i.ansi[1]=g(e.red,t.DEFAULT_ANSI_COLORS[1]),i.ansi[2]=g(e.green,t.DEFAULT_ANSI_COLORS[2]),i.ansi[3]=g(e.yellow,t.DEFAULT_ANSI_COLORS[3]),i.ansi[4]=g(e.blue,t.DEFAULT_ANSI_COLORS[4]),i.ansi[5]=g(e.magenta,t.DEFAULT_ANSI_COLORS[5]),i.ansi[6]=g(e.cyan,t.DEFAULT_ANSI_COLORS[6]),i.ansi[7]=g(e.white,t.DEFAULT_ANSI_COLORS[7]),i.ansi[8]=g(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),i.ansi[9]=g(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),i.ansi[10]=g(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),i.ansi[11]=g(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),i.ansi[12]=g(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),i.ansi[13]=g(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),i.ansi[14]=g(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),i.ansi[15]=g(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),e.extendedAnsi){const s=Math.min(i.ansi.length-16,e.extendedAnsi.length);for(let r=0;r<s;r++)i.ansi[r+16]=g(e.extendedAnsi[r],t.DEFAULT_ANSI_COLORS[r+16])}this._contrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(e){this._restoreColor(e),this._onChangeColors.fire(this.colors)}_restoreColor(e){if(void 0!==e)switch(e){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[e]=this._restoreColors.ansi[e]}else for(let t=0;t<this._restoreColors.ansi.length;++t)this._colors.ansi[t]=this._restoreColors.ansi[t]}modifyColors(e){e(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};function g(e,t){if(void 0!==e)try{return o.css.toColor(e)}catch(e){}return t}v=s([r(0,l.IOptionsService)],v),t.ThemeService=v},6349:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CircularList=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this.register(new s.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new s.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new s.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;const t=new Array(e);for(let i=0;i<Math.min(e,this.length);i++)t[i]=this._array[this._getCyclicIndex(i)];this._array=t,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let t=this._length;t<e;t++)this._array[t]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,t){this._array[this._getCyclicIndex(e)]=t}push(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw new Error("Can only recycle when the buffer is full");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(e,t,...i){if(t){for(let i=e;i<this._length-t;i++)this._array[this._getCyclicIndex(i)]=this._array[this._getCyclicIndex(i+t)];this._length-=t,this.onDeleteEmitter.fire({index:e,amount:t})}for(let s=this._length-1;s>=e;s--)this._array[this._getCyclicIndex(s+i.length)]=this._array[this._getCyclicIndex(s)];for(let s=0;s<i.length;s++)this._array[this._getCyclicIndex(e+s)]=i[s];if(i.length&&this.onInsertEmitter.fire({index:e,amount:i.length}),this._length+i.length>this._maxLength){const e=this._length+i.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=i.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+i<0)throw new Error("Cannot shift elements in list beyond index 0");if(i>0){for(let r=t-1;r>=0;r--)this.set(e+r+i,this.get(e+r));const s=e+t+i-this._length;if(s>0)for(this._length+=s;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let s=0;s<t;s++)this.set(e+s+i,this.get(e+s))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}}t.CircularList=n},1439:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clone=void 0,t.clone=function e(t,i=5){if("object"!=typeof t)return t;const s=Array.isArray(t)?[]:{};for(const r in t)s[r]=i<=1?t[r]:t[r]&&e(t[r],i-1);return s}},8055:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;const s=i(6114);let r=0,n=0,o=0,a=0;var h,l,c;function d(e){const t=e.toString(16);return t.length<2?"0"+t:t}function _(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}t.NULL_COLOR={css:"#00000000",rgba:0},function(e){e.toCss=function(e,t,i,s){return void 0!==s?`#${d(e)}${d(t)}${d(i)}${d(s)}`:`#${d(e)}${d(t)}${d(i)}`},e.toRgba=function(e,t,i,s=255){return(e<<24|t<<16|i<<8|s)>>>0}}(h=t.channels||(t.channels={})),function(e){function t(e,t){return a=Math.round(255*t),[r,n,o]=c.toChannels(e.rgba),{css:h.toCss(r,n,o,a),rgba:h.toRgba(r,n,o,a)}}e.blend=function(e,t){if(a=(255&t.rgba)/255,1===a)return{css:t.css,rgba:t.rgba};const i=t.rgba>>24&255,s=t.rgba>>16&255,l=t.rgba>>8&255,c=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return r=c+Math.round((i-c)*a),n=d+Math.round((s-d)*a),o=_+Math.round((l-_)*a),{css:h.toCss(r,n,o),rgba:h.toRgba(r,n,o)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=c.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return c.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[r,n,o]=c.toChannels(t),{css:h.toCss(r,n,o),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return a=255&e.rgba,t(e,a*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(t.color||(t.color={})),function(e){let t,i;if(!s.isNode){const e=document.createElement("canvas");e.width=1,e.height=1;const s=e.getContext("2d",{willReadFrequently:!0});s&&(t=s,t.globalCompositeOperation="copy",i=t.createLinearGradient(0,0,1,1))}e.toColor=function(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return r=parseInt(e.slice(1,2).repeat(2),16),n=parseInt(e.slice(2,3).repeat(2),16),o=parseInt(e.slice(3,4).repeat(2),16),c.toColor(r,n,o);case 5:return r=parseInt(e.slice(1,2).repeat(2),16),n=parseInt(e.slice(2,3).repeat(2),16),o=parseInt(e.slice(3,4).repeat(2),16),a=parseInt(e.slice(4,5).repeat(2),16),c.toColor(r,n,o,a);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const s=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(s)return r=parseInt(s[1]),n=parseInt(s[2]),o=parseInt(s[3]),a=Math.round(255*(void 0===s[5]?1:parseFloat(s[5]))),c.toColor(r,n,o,a);if(!t||!i)throw new Error("css.toColor: Unsupported css format");if(t.fillStyle=i,t.fillStyle=e,"string"!=typeof t.fillStyle)throw new Error("css.toColor: Unsupported css format");if(t.fillRect(0,0,1,1),[r,n,o,a]=t.getImageData(0,0,1,1).data,255!==a)throw new Error("css.toColor: Unsupported css format");return{rgba:h.toRgba(r,n,o,a),css:e}}}(t.css||(t.css={})),function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(l=t.rgb||(t.rgb={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,c=_(l.relativeLuminance2(o,a,h),l.relativeLuminance2(s,r,n));for(;c<i&&(o>0||a>0||h>0);)o-=Math.max(0,Math.ceil(.1*o)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),c=_(l.relativeLuminance2(o,a,h),l.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}function i(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,c=_(l.relativeLuminance2(o,a,h),l.relativeLuminance2(s,r,n));for(;c<i&&(o<255||a<255||h<255);)o=Math.min(255,o+Math.ceil(.1*(255-o))),a=Math.min(255,a+Math.ceil(.1*(255-a))),h=Math.min(255,h+Math.ceil(.1*(255-h))),c=_(l.relativeLuminance2(o,a,h),l.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}e.ensureContrastRatio=function(e,s,r){const n=l.relativeLuminance(e>>8),o=l.relativeLuminance(s>>8);if(_(n,o)<r){if(o<n){const o=t(e,s,r),a=_(n,l.relativeLuminance(o>>8));if(a<r){const t=i(e,s,r);return a>_(n,l.relativeLuminance(t>>8))?o:t}return o}const a=i(e,s,r),h=_(n,l.relativeLuminance(a>>8));if(h<r){const i=t(e,s,r);return h>_(n,l.relativeLuminance(i>>8))?a:i}return a}},e.reduceLuminance=t,e.increaseLuminance=i,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},e.toColor=function(e,t,i,s){return{css:h.toCss(e,t,i,s),rgba:h.toRgba(e,t,i,s)}}}(c=t.rgba||(t.rgba={})),t.toPaddedHex=d,t.contrastRatio=_},8969:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreTerminal=void 0;const s=i(844),r=i(2585),n=i(4348),o=i(7866),a=i(744),h=i(7302),l=i(6975),c=i(8460),d=i(1753),_=i(1480),u=i(7994),f=i(9282),v=i(5435),g=i(5981),p=i(2660);let m=!1;class C extends s.Disposable{constructor(e){super(),this._onBinary=this.register(new c.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new c.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new c.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new c.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new c.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new c.EventEmitter),this._instantiationService=new n.InstantiationService,this.optionsService=this.register(new h.OptionsService(e)),this._instantiationService.setService(r.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(a.BufferService)),this._instantiationService.setService(r.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(o.LogService)),this._instantiationService.setService(r.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(l.CoreService)),this._instantiationService.setService(r.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(r.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(_.UnicodeService)),this._instantiationService.setService(r.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(u.CharsetService),this._instantiationService.setService(r.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(p.OscLinkService),this._instantiationService.setService(r.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new v.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,c.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,c.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,c.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,c.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new g.WriteBuffer(((e,t)=>this._inputHandler.parse(e,t)))),this.register((0,c.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed)),this.register((0,s.toDisposable)((()=>{var e;null===(e=this._windowsWrappingHeuristics)||void 0===e||e.dispose(),this._windowsWrappingHeuristics=void 0})))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new c.EventEmitter),this._onScroll.event((e=>{var t;null===(t=this._onScrollApi)||void 0===t||t.fire(e.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(const t in e)this.optionsService.options[t]=e[t]}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=r.LogLevelEnum.WARN&&!m&&(this._logService.warn("writeSync is unreliable and will be removed soon."),m=!0),this._writeBuffer.writeSync(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,a.MINIMUM_COLS),t=Math.max(t,a.MINIMUM_ROWS),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t,i){this._bufferService.scrollLines(e,t,i)}scrollPages(e){this._bufferService.scrollPages(e)}scrollToTop(){this._bufferService.scrollToTop()}scrollToBottom(){this._bufferService.scrollToBottom()}scrollToLine(e){this._bufferService.scrollToLine(e)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){var e;let t=!1;const i=this.optionsService.rawOptions.windowsPty;i&&void 0!==i.buildNumber&&void 0!==i.buildNumber?t=!!("conpty"===i.backend&&i.buildNumber<21376):this.optionsService.rawOptions.windowsMode&&(t=!0),t?this._enableWindowsWrappingHeuristics():(null===(e=this._windowsWrappingHeuristics)||void 0===e||e.dispose(),this._windowsWrappingHeuristics=void 0)}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics){const e=[];e.push(this.onLineFeed(f.updateWindowsModeWrappedState.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:"H"},(()=>((0,f.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics=(0,s.toDisposable)((()=>{for(const t of e)t.dispose()}))}}}t.CoreTerminal=C},8460:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let s=0;s<this._listeners.length;s++)i.push(this._listeners[s]);for(let s=0;s<i.length;s++)i[s].call(void 0,e,t)}dispose(){this._listeners&&(this._listeners.length=0),this._disposed=!0}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))}},5435:function(e,t,i){var r=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;const o=i(2584),a=i(7116),h=i(2015),l=i(844),c=i(482),d=i(8437),_=i(8460),u=i(643),f=i(511),v=i(3734),g=i(2585),p=i(6242),m=i(6351),C=i(5941),S={"(":0,")":1,"*":2,"+":3,"-":1,".":2},b=131072;function w(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var y;!function(e){e[e.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",e[e.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"}(y=t.WindowsOptionsReportType||(t.WindowsOptionsReportType={}));let L=0;class E extends l.Disposable{constructor(e,t,i,s,r,n,l,u,v=new h.EscapeSequenceParser){super(),this._bufferService=e,this._charsetService=t,this._coreService=i,this._logService=s,this._optionsService=r,this._oscLinkService=n,this._coreMouseService=l,this._unicodeService=u,this._parser=v,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new c.StringToUtf32,this._utf8Decoder=new c.Utf8ToUtf32,this._workCell=new f.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=d.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=d.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new _.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new _.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new _.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new _.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new _.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new _.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new _.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new _.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new _.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new _.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new _.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new _.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new _.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new x(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._parser.setCsiHandlerFallback(((e,t)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(e),params:t.toArray()})})),this._parser.setEscHandlerFallback((e=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(e)})})),this._parser.setExecuteHandlerFallback((e=>{this._logService.debug("Unknown EXECUTE code: ",{code:e})})),this._parser.setOscHandlerFallback(((e,t,i)=>{this._logService.debug("Unknown OSC code: ",{identifier:e,action:t,data:i})})),this._parser.setDcsHandlerFallback(((e,t,i)=>{"HOOK"===t&&(i=i.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(e),action:t,payload:i})})),this._parser.setPrintHandler(((e,t,i)=>this.print(e,t,i))),this._parser.registerCsiHandler({final:"@"},(e=>this.insertChars(e))),this._parser.registerCsiHandler({intermediates:" ",final:"@"},(e=>this.scrollLeft(e))),this._parser.registerCsiHandler({final:"A"},(e=>this.cursorUp(e))),this._parser.registerCsiHandler({intermediates:" ",final:"A"},(e=>this.scrollRight(e))),this._parser.registerCsiHandler({final:"B"},(e=>this.cursorDown(e))),this._parser.registerCsiHandler({final:"C"},(e=>this.cursorForward(e))),this._parser.registerCsiHandler({final:"D"},(e=>this.cursorBackward(e))),this._parser.registerCsiHandler({final:"E"},(e=>this.cursorNextLine(e))),this._parser.registerCsiHandler({final:"F"},(e=>this.cursorPrecedingLine(e))),this._parser.registerCsiHandler({final:"G"},(e=>this.cursorCharAbsolute(e))),this._parser.registerCsiHandler({final:"H"},(e=>this.cursorPosition(e))),this._parser.registerCsiHandler({final:"I"},(e=>this.cursorForwardTab(e))),this._parser.registerCsiHandler({final:"J"},(e=>this.eraseInDisplay(e,!1))),this._parser.registerCsiHandler({prefix:"?",final:"J"},(e=>this.eraseInDisplay(e,!0))),this._parser.registerCsiHandler({final:"K"},(e=>this.eraseInLine(e,!1))),this._parser.registerCsiHandler({prefix:"?",final:"K"},(e=>this.eraseInLine(e,!0))),this._parser.registerCsiHandler({final:"L"},(e=>this.insertLines(e))),this._parser.registerCsiHandler({final:"M"},(e=>this.deleteLines(e))),this._parser.registerCsiHandler({final:"P"},(e=>this.deleteChars(e))),this._parser.registerCsiHandler({final:"S"},(e=>this.scrollUp(e))),this._parser.registerCsiHandler({final:"T"},(e=>this.scrollDown(e))),this._parser.registerCsiHandler({final:"X"},(e=>this.eraseChars(e))),this._parser.registerCsiHandler({final:"Z"},(e=>this.cursorBackwardTab(e))),this._parser.registerCsiHandler({final:"`"},(e=>this.charPosAbsolute(e))),this._parser.registerCsiHandler({final:"a"},(e=>this.hPositionRelative(e))),this._parser.registerCsiHandler({final:"b"},(e=>this.repeatPrecedingCharacter(e))),this._parser.registerCsiHandler({final:"c"},(e=>this.sendDeviceAttributesPrimary(e))),this._parser.registerCsiHandler({prefix:">",final:"c"},(e=>this.sendDeviceAttributesSecondary(e))),this._parser.registerCsiHandler({final:"d"},(e=>this.linePosAbsolute(e))),this._parser.registerCsiHandler({final:"e"},(e=>this.vPositionRelative(e))),this._parser.registerCsiHandler({final:"f"},(e=>this.hVPosition(e))),this._parser.registerCsiHandler({final:"g"},(e=>this.tabClear(e))),this._parser.registerCsiHandler({final:"h"},(e=>this.setMode(e))),this._parser.registerCsiHandler({prefix:"?",final:"h"},(e=>this.setModePrivate(e))),this._parser.registerCsiHandler({final:"l"},(e=>this.resetMode(e))),this._parser.registerCsiHandler({prefix:"?",final:"l"},(e=>this.resetModePrivate(e))),this._parser.registerCsiHandler({final:"m"},(e=>this.charAttributes(e))),this._parser.registerCsiHandler({final:"n"},(e=>this.deviceStatus(e))),this._parser.registerCsiHandler({prefix:"?",final:"n"},(e=>this.deviceStatusPrivate(e))),this._parser.registerCsiHandler({intermediates:"!",final:"p"},(e=>this.softReset(e))),this._parser.registerCsiHandler({intermediates:" ",final:"q"},(e=>this.setCursorStyle(e))),this._parser.registerCsiHandler({final:"r"},(e=>this.setScrollRegion(e))),this._parser.registerCsiHandler({final:"s"},(e=>this.saveCursor(e))),this._parser.registerCsiHandler({final:"t"},(e=>this.windowOptions(e))),this._parser.registerCsiHandler({final:"u"},(e=>this.restoreCursor(e))),this._parser.registerCsiHandler({intermediates:"'",final:"}"},(e=>this.insertColumns(e))),this._parser.registerCsiHandler({intermediates:"'",final:"~"},(e=>this.deleteColumns(e))),this._parser.registerCsiHandler({intermediates:'"',final:"q"},(e=>this.selectProtected(e))),this._parser.registerCsiHandler({intermediates:"$",final:"p"},(e=>this.requestMode(e,!0))),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},(e=>this.requestMode(e,!1))),this._parser.setExecuteHandler(o.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(o.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(o.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(o.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(o.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(o.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(o.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(o.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(o.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(o.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(o.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(o.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new p.OscHandler((e=>(this.setTitle(e),this.setIconName(e),!0)))),this._parser.registerOscHandler(1,new p.OscHandler((e=>this.setIconName(e)))),this._parser.registerOscHandler(2,new p.OscHandler((e=>this.setTitle(e)))),this._parser.registerOscHandler(4,new p.OscHandler((e=>this.setOrReportIndexedColor(e)))),this._parser.registerOscHandler(8,new p.OscHandler((e=>this.setHyperlink(e)))),this._parser.registerOscHandler(10,new p.OscHandler((e=>this.setOrReportFgColor(e)))),this._parser.registerOscHandler(11,new p.OscHandler((e=>this.setOrReportBgColor(e)))),this._parser.registerOscHandler(12,new p.OscHandler((e=>this.setOrReportCursorColor(e)))),this._parser.registerOscHandler(104,new p.OscHandler((e=>this.restoreIndexedColor(e)))),this._parser.registerOscHandler(110,new p.OscHandler((e=>this.restoreFgColor(e)))),this._parser.registerOscHandler(111,new p.OscHandler((e=>this.restoreBgColor(e)))),this._parser.registerOscHandler(112,new p.OscHandler((e=>this.restoreCursorColor(e)))),this._parser.registerEscHandler({final:"7"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:"8"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:"D"},(()=>this.index())),this._parser.registerEscHandler({final:"E"},(()=>this.nextLine())),this._parser.registerEscHandler({final:"H"},(()=>this.tabSet())),this._parser.registerEscHandler({final:"M"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:"="},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:">"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:"c"},(()=>this.fullReset())),this._parser.registerEscHandler({final:"n"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"o"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"|"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"}"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"~"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:"%",final:"@"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:"%",final:"G"},(()=>this.selectDefaultCharset()));for(const o in a.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:o},(()=>this.selectCharset("("+o))),this._parser.registerEscHandler({intermediates:")",final:o},(()=>this.selectCharset(")"+o))),this._parser.registerEscHandler({intermediates:"*",final:o},(()=>this.selectCharset("*"+o))),this._parser.registerEscHandler({intermediates:"+",final:o},(()=>this.selectCharset("+"+o))),this._parser.registerEscHandler({intermediates:"-",final:o},(()=>this.selectCharset("-"+o))),this._parser.registerEscHandler({intermediates:".",final:o},(()=>this.selectCharset("."+o))),this._parser.registerEscHandler({intermediates:"/",final:o},(()=>this.selectCharset("/"+o)));this._parser.registerEscHandler({intermediates:"#",final:"8"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((e=>(this._logService.error("Parsing error: ",e),e))),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new m.DcsHandler(((e,t)=>this.requestStatusString(e,t))))}getAttrData(){return this._curAttrData}_preserveStack(e,t,i,s){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=i,this._parseStack.position=s}_logSlowResolvingAsync(e){this._logService.logLevel<=g.LogLevelEnum.WARN&&Promise.race([e,new Promise(((e,t)=>setTimeout((()=>t("#SLOW_TIMEOUT")),5e3)))]).catch((e=>{if("#SLOW_TIMEOUT"!==e)throw e;s.warn("async parser handler taking longer than 5000 ms")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let i,s=this._activeBuffer.x,r=this._activeBuffer.y,n=0;const o=this._parseStack.paused;if(o){if(i=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(i),i;s=this._parseStack.cursorStartX,r=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>b&&(n=this._parseStack.position+b)}if(this._logService.logLevel<=g.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+("string"==typeof e?` "${e}"`:` "${Array.prototype.map.call(e,(e=>String.fromCharCode(e))).join("")}"`),"string"==typeof e?e.split("").map((e=>e.charCodeAt(0))):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<b&&(this._parseBuffer=new Uint32Array(Math.min(e.length,b))),o||this._dirtyRowTracker.clearRange(),e.length>b)for(let a=n;a<e.length;a+=b){const t=a+b<e.length?a+b:e.length,n="string"==typeof e?this._stringDecoder.decode(e.substring(a,t),this._parseBuffer):this._utf8Decoder.decode(e.subarray(a,t),this._parseBuffer);if(i=this._parser.parse(this._parseBuffer,n))return this._preserveStack(s,r,n,a),this._logSlowResolvingAsync(i),i}else if(!o){const t="string"==typeof e?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(i=this._parser.parse(this._parseBuffer,t))return this._preserveStack(s,r,t,0),this._logSlowResolvingAsync(i),i}this._activeBuffer.x===s&&this._activeBuffer.y===r||this._onCursorMove.fire(),this._onRequestRefreshRows.fire(this._dirtyRowTracker.start,this._dirtyRowTracker.end)}print(e,t,i){let s,r;const n=this._charsetService.charset,o=this._optionsService.rawOptions.screenReaderMode,a=this._bufferService.cols,h=this._coreService.decPrivateModes.wraparound,l=this._coreService.modes.insertMode,d=this._curAttrData;let _=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&i-t>0&&2===_.getWidth(this._activeBuffer.x-1)&&_.setCellFromCodePoint(this._activeBuffer.x-1,0,1,d.fg,d.bg,d.extended);for(let f=t;f<i;++f){if(s=e[f],r=this._unicodeService.wcwidth(s),s<127&&n){const e=n[String.fromCharCode(s)];e&&(s=e.charCodeAt(0))}if(o&&this._onA11yChar.fire((0,c.stringFromCodePoint)(s)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),r||!this._activeBuffer.x){if(this._activeBuffer.x+r-1>=a)if(h){for(;this._activeBuffer.x<a;)_.setCellFromCodePoint(this._activeBuffer.x++,0,1,d.fg,d.bg,d.extended);this._activeBuffer.x=0,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),_=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)}else if(this._activeBuffer.x=a-1,2===r)continue;if(l&&(_.insertCells(this._activeBuffer.x,r,this._activeBuffer.getNullCell(d),d),2===_.getWidth(a-1)&&_.setCellFromCodePoint(a-1,u.NULL_CELL_CODE,u.NULL_CELL_WIDTH,d.fg,d.bg,d.extended)),_.setCellFromCodePoint(this._activeBuffer.x++,s,r,d.fg,d.bg,d.extended),r>0)for(;--r;)_.setCellFromCodePoint(this._activeBuffer.x++,0,0,d.fg,d.bg,d.extended)}else _.getWidth(this._activeBuffer.x-1)?_.addCodepointToCell(this._activeBuffer.x-1,s):_.addCodepointToCell(this._activeBuffer.x-2,s)}i-t>0&&(_.loadCell(this._activeBuffer.x-1,this._workCell),2===this._workCell.getWidth()||this._workCell.getCode()>65535?this._parser.precedingCodepoint=0:this._workCell.isCombined()?this._parser.precedingCodepoint=this._workCell.getChars().charCodeAt(0):this._parser.precedingCodepoint=this._workCell.content),this._activeBuffer.x<a&&i-t>0&&0===_.getWidth(this._activeBuffer.x)&&!_.hasContent(this._activeBuffer.x)&&_.setCellFromCodePoint(this._activeBuffer.x,0,1,d.fg,d.bg,d.extended),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return"t"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,t):this._parser.registerCsiHandler(e,(e=>!w(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)))}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new m.DcsHandler(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new p.OscHandler(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){var e;if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&(null===(e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y))||void 0===e?void 0:e.isWrapped)){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){const t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){const t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){const t=e.params[0];return 0===t?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===t&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){const t=e.params[0];return 1===t&&(this._curAttrData.bg|=536870912),2!==t&&0!==t||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,i,s=!1,r=!1){const n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.replaceCells(t,i,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData(),r),s&&(n.isWrapped=!1)}_resetBufferLine(e,t=!1){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i&&(i.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),i.isWrapped=!1)}eraseInDisplay(e,t=!1){let i;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);i<this._bufferService.rows;i++)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(i);break;case 1:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i,0,this._activeBuffer.x+1,!0,t),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(i+1).isWrapped=!1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 2:for(i=this._bufferService.rows,this._dirtyRowTracker.markDirty(i-1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 3:const e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const i=this._activeBuffer.ybase+this._activeBuffer.y,s=this._bufferService.rows-1-this._activeBuffer.scrollBottom,r=this._bufferService.rows-1+this._activeBuffer.ybase-s+1;for(;t--;)this._activeBuffer.lines.splice(r-1,1),this._activeBuffer.lines.splice(i,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const i=this._activeBuffer.ybase+this._activeBuffer.y;let s;for(s=this._bufferService.rows-1-this._activeBuffer.scrollBottom,s=this._bufferService.rows-1+this._activeBuffer.ybase-s;t--;)this._activeBuffer.lines.splice(i,1),this._activeBuffer.lines.splice(s,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.insertCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(d.DEFAULT_ATTR_DATA));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let i=this._activeBuffer.scrollTop;i<=this._activeBuffer.scrollBottom;++i){const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+i);e.deleteCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),e.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let i=this._activeBuffer.scrollTop;i<=this._activeBuffer.scrollBottom;++i){const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+i);e.insertCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),e.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let i=this._activeBuffer.scrollTop;i<=this._activeBuffer.scrollBottom;++i){const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+i);e.insertCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),e.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let i=this._activeBuffer.scrollTop;i<=this._activeBuffer.scrollBottom;++i){const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+i);e.deleteCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),e.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(e.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(e){if(!this._parser.precedingCodepoint)return!0;const t=e.params[0]||1,i=new Uint32Array(t);for(let s=0;s<t;++s)i[s]=this._parser.precedingCodepoint;return this.print(i,0,i.length),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(o.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(o.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(o.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(o.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(o.C0.ESC+"[>83;40003;0c")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+"").indexOf(e)}setMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,a.DEFAULT_CHARSET),this._charsetService.setgCharset(1,a.DEFAULT_CHARSET),this._charsetService.setgCharset(2,a.DEFAULT_CHARSET),this._charsetService.setgCharset(3,a.DEFAULT_CHARSET);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug("Serial port requested application keypad."),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol="X10";break;case 1e3:this._coreMouseService.activeProtocol="VT200";break;case 1002:this._coreMouseService.activeProtocol="DRAG";break;case 1003:this._coreMouseService.activeProtocol="ANY";break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug("DECSET 1005 not supported (see #2507)");break;case 1006:this._coreMouseService.activeEncoding="SGR";break;case 1015:this._logService.debug("DECSET 1015 not supported (see #2507)");break;case 1016:this._coreMouseService.activeEncoding="SGR_PIXELS";break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0}return!0}resetMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug("Switching back to normal keypad."),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol="NONE";break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug("DECRST 1005 not supported (see #2507)");break;case 1006:case 1016:this._coreMouseService.activeEncoding="DEFAULT";break;case 1015:this._logService.debug("DECRST 1015 not supported (see #2507)");break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),1049===e.params[t]&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1}return!0}requestMode(e,t){const i=this._coreService.decPrivateModes,{activeProtocol:s,activeEncoding:r}=this._coreMouseService,n=this._coreService,{buffers:a,cols:h}=this._bufferService,{active:l,alt:c}=a,d=this._optionsService.rawOptions,_=e=>e?1:2,u=e.params[0];return f=u,v=t?2===u?4:4===u?_(n.modes.insertMode):12===u?3:20===u?_(d.convertEol):0:1===u?_(i.applicationCursorKeys):3===u?d.windowOptions.setWinLines?80===h?2:132===h?1:0:0:6===u?_(i.origin):7===u?_(i.wraparound):8===u?3:9===u?_("X10"===s):12===u?_(d.cursorBlink):25===u?_(!n.isCursorHidden):45===u?_(i.reverseWraparound):66===u?_(i.applicationKeypad):67===u?4:1e3===u?_("VT200"===s):1002===u?_("DRAG"===s):1003===u?_("ANY"===s):1004===u?_(i.sendFocus):1005===u?4:1006===u?_("SGR"===r):1015===u?4:1016===u?_("SGR_PIXELS"===r):1048===u?1:47===u||1047===u||1049===u?_(l===c):2004===u?_(i.bracketedPasteMode):0,n.triggerDataEvent(`${o.C0.ESC}[${t?"":"?"}${f};${v}$y`),!0;var f,v}_updateAttrColor(e,t,i,s,r){return 2===t?(e|=50331648,e&=-16777216,e|=v.AttributeData.fromColorRGB([i,s,r])):5===t&&(e&=-50331904,e|=33554432|255&i),e}_extractColor(e,t,i){const s=[0,0,-1,0,0,0];let r=0,n=0;do{if(s[n+r]=e.params[t+n],e.hasSubParams(t+n)){const i=e.getSubParams(t+n);let o=0;do{5===s[1]&&(r=1),s[n+o+1+r]=i[o]}while(++o<i.length&&o+n+1+r<s.length);break}if(5===s[1]&&n+r>=2||2===s[1]&&n+r>=5)break;s[1]&&(r=1)}while(++n+t<e.length&&n+r<s.length);for(let o=2;o<s.length;++o)-1===s[o]&&(s[o]=0);switch(s[0]){case 38:i.fg=this._updateAttrColor(i.fg,s[1],s[3],s[4],s[5]);break;case 48:i.bg=this._updateAttrColor(i.bg,s[1],s[3],s[4],s[5]);break;case 58:i.extended=i.extended.clone(),i.extended.underlineColor=this._updateAttrColor(i.extended.underlineColor,s[1],s[3],s[4],s[5])}return n}_processUnderline(e,t){t.extended=t.extended.clone(),(!~e||e>5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,0===e&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=d.DEFAULT_ATTR_DATA.fg,e.bg=d.DEFAULT_ATTR_DATA.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._processSGR0(this._curAttrData),!0;const t=e.length;let i;const s=this._curAttrData;for(let r=0;r<t;r++)i=e.params[r],i>=30&&i<=37?(s.fg&=-50331904,s.fg|=16777216|i-30):i>=40&&i<=47?(s.bg&=-50331904,s.bg|=16777216|i-40):i>=90&&i<=97?(s.fg&=-50331904,s.fg|=16777224|i-90):i>=100&&i<=107?(s.bg&=-50331904,s.bg|=16777224|i-100):0===i?this._processSGR0(s):1===i?s.fg|=134217728:3===i?s.bg|=67108864:4===i?(s.fg|=268435456,this._processUnderline(e.hasSubParams(r)?e.getSubParams(r)[0]:1,s)):5===i?s.fg|=536870912:7===i?s.fg|=67108864:8===i?s.fg|=1073741824:9===i?s.fg|=2147483648:2===i?s.bg|=134217728:21===i?this._processUnderline(2,s):22===i?(s.fg&=-134217729,s.bg&=-134217729):23===i?s.bg&=-67108865:24===i?(s.fg&=-268435457,this._processUnderline(0,s)):25===i?s.fg&=-536870913:27===i?s.fg&=-67108865:28===i?s.fg&=-1073741825:29===i?s.fg&=2147483647:39===i?(s.fg&=-67108864,s.fg|=16777215&d.DEFAULT_ATTR_DATA.fg):49===i?(s.bg&=-67108864,s.bg|=16777215&d.DEFAULT_ATTR_DATA.bg):38===i||48===i||58===i?r+=this._extractColor(e,r,s):53===i?s.bg|=1073741824:55===i?s.bg&=-1073741825:59===i?(s.extended=s.extended.clone(),s.extended.underlineColor=-1,s.updateExtended()):100===i?(s.fg&=-67108864,s.fg|=16777215&d.DEFAULT_ATTR_DATA.fg,s.bg&=-67108864,s.bg|=16777215&d.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",i);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${o.C0.ESC}[0n`);break;case 6:const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${o.C0.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${o.C0.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=d.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){const t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}const i=t%2==1;return this._optionsService.options.cursorBlink=i,!0}setScrollRegion(e){const t=e.params[0]||1;let i;return(e.length<2||(i=e.params[1])>this._bufferService.rows||0===i)&&(i=this._bufferService.rows),i>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=i-1,this._setCursor(0,0)),!0}windowOptions(e){if(!w(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;const t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==t&&this._onRequestWindowsOptionsReport.fire(y.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(y.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${o.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==t&&2!==t||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==t&&1!==t||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==t&&2!==t||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==t&&1!==t||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){const t=[],i=e.split(";");for(;i.length>1;){const e=i.shift(),s=i.shift();if(/^\d+$/.exec(e)){const i=parseInt(e);if(0<=i&&i<256)if("?"===s)t.push({type:0,index:i});else{const e=(0,C.parseColor)(s);e&&t.push({type:1,index:i,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){const t=e.split(";");return!(t.length<2)&&(t[1]?this._createHyperlink(t[0],t[1]):!t[0]&&this._finishHyperlink())}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();const i=e.split(":");let s;const r=i.findIndex((e=>e.startsWith("id=")));return-1!==r&&(s=i[r].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:s,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){const i=e.split(";");for(let s=0;s<i.length&&!(t>=this._specialColors.length);++s,++t)if("?"===i[s])this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{const e=(0,C.parseColor)(i[s]);e&&this._onColor.fire([{type:1,index:this._specialColors[t],color:e}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;const t=[],i=e.split(";");for(let s=0;s<i.length;++s)if(/^\d+$/.exec(i[s])){const e=parseInt(i[s]);0<=e&&e<256&&t.push({type:2,index:e})}return t.length&&this._onColor.fire(t),!0}restoreFgColor(e){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(e){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(e){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug("Serial port requested application keypad."),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug("Switching back to normal keypad."),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,a.DEFAULT_CHARSET),!0}selectCharset(e){return 2!==e.length?(this.selectDefaultCharset(),!0):("/"===e[0]||this._charsetService.setgCharset(S[e[0]],a.CHARSETS[e[1]]||a.DEFAULT_CHARSET),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){const e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=d.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=d.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){const e=new f.CellData;e.content=1<<22|"E".charCodeAt(0),e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t<this._bufferService.rows;++t){const i=this._activeBuffer.ybase+this._activeBuffer.y+t,s=this._activeBuffer.lines.get(i);s&&(s.fill(e),s.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,t){const i=this._bufferService.buffer,s=this._optionsService.rawOptions;return(e=>(this._coreService.triggerDataEvent(`${o.C0.ESC}${e}${o.C0.ESC}\\`),!0))('"q'===e?`P1$r${this._curAttrData.isProtected()?1:0}"q`:'"p'===e?'P1$r61;1"p':"r"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:"m"===e?"P1$r0m":" q"===e?`P1$r${{block:2,underline:4,bar:6}[s.cursorStyle]-(s.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}}t.InputHandler=E;let x=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){e<this.start?this.start=e:e>this.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(L=e,e=t,t=L),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};x=r([n(0,g.IBufferService)],x)},844:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},1505:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){var r;return null===(r=this._data.get(e,t))||void 0===r?void 0:r.get(i,s)}clear(){this._data.clear()}}},6114:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode="undefined"==typeof navigator;const i=t.isNode?"node":navigator.userAgent,s=t.isNode?"node":navigator.platform;t.isFirefox=i.includes("Firefox"),t.isLegacyEdge=i.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\/(\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(s),t.isIpad="iPad"===s,t.isIphone="iPhone"===s,t.isWindows=["Windows","Win16","Win32","WinCE"].includes(s),t.isLinux=s.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(i)},6106:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SortedList=void 0;let i=0;t.SortedList=class{constructor(e){this._getKey=e,this._array=[]}clear(){this._array.length=0}insert(e){0!==this._array.length?(i=this._search(this._getKey(e),0,this._array.length-1),this._array.splice(i,0,e)):this._array.push(e)}delete(e){if(0===this._array.length)return!1;const t=this._getKey(e);if(void 0===t)return!1;if(i=this._search(t,0,this._array.length-1),-1===i)return!1;if(this._getKey(this._array[i])!==t)return!1;do{if(this._array[i]===e)return this._array.splice(i,1),!0}while(++i<this._array.length&&this._getKey(this._array[i])===t);return!1}*getKeyIterator(e){if(0!==this._array.length&&(i=this._search(e,0,this._array.length-1),!(i<0||i>=this._array.length)&&this._getKey(this._array[i])===e))do{yield this._array[i]}while(++i<this._array.length&&this._getKey(this._array[i])===e)}forEachByKey(e,t){if(0!==this._array.length&&(i=this._search(e,0,this._array.length-1),!(i<0||i>=this._array.length)&&this._getKey(this._array[i])===e))do{t(this._array[i])}while(++i<this._array.length&&this._getKey(this._array[i])===e)}values(){return this._array.values()}_search(e,t,i){if(i<t)return t;let s=Math.floor((t+i)/2);const r=this._getKey(this._array[s]);if(r>e)return this._search(e,t,s-1);if(r<e)return this._search(e,s+1,i);for(;s>0&&this._getKey(this._array[s-1])===e;)s--;return s}}},7226:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const r=i(6114);class n{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,i=0,r=e.timeRemaining(),n=0;for(;this._i<this._tasks.length;){if(t=Date.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,Date.now()-t),i=Math.max(t,i),n=e.timeRemaining(),1.5*i>n)return r-t<-20&&s.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(r-t))}ms`),void this._start();r=n}this.clear()}}class o extends n{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=o,t.IdleTaskQueue=!r.isNode&&"requestIdleCallback"in window?class extends n{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:o,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},9282:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.updateWindowsModeWrappedState=void 0;const s=i(643);t.updateWindowsModeWrappedState=function(e){const t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1),i=null==t?void 0:t.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&i&&(r.isWrapped=i[s.CHAR_DATA_CODE_INDEX]!==s.NULL_CELL_CODE&&i[s.CHAR_DATA_CODE_INDEX]!==s.WHITESPACE_CELL_CODE)}},3734:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}t.AttributeData=i;class s{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},9092:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;const s=i(6349),r=i(8437),n=i(511),o=i(643),a=i(4634),h=i(4863),l=i(7116),c=i(3734),d=i(7226);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=r.DEFAULT_ATTR_DATA.clone(),this.savedCharset=l.DEFAULT_CHARSET,this.markers=[],this._nullCell=n.CellData.fromCharData([0,o.NULL_CELL_CHAR,o.NULL_CELL_WIDTH,o.NULL_CELL_CODE]),this._whitespaceCell=n.CellData.fromCharData([0,o.WHITESPACE_CELL_CHAR,o.WHITESPACE_CELL_WIDTH,o.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new d.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new c.ExtendedAttrs),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new c.ExtendedAttrs),this._whitespaceCell}getBlankLine(e,t){return new r.BufferLine(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows}_getCorrectBufferLength(e){if(!this._hasScrollback)return e;const i=e+this._optionsService.rawOptions.scrollback;return i>t.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=r.DEFAULT_ATTR_DATA);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){const i=this.getNullCell(r.DEFAULT_ATTR_DATA);let s=0;const n=this._getCorrectBufferLength(t);if(n>this.lines.maxLength&&(this.lines.maxLength=n),this.lines.length>0){if(this._cols<e)for(let t=0;t<this.lines.length;t++)s+=+this.lines.get(t).resize(e,i);let o=0;if(this._rows<t)for(let s=this._rows;s<t;s++)this.lines.length<t+this.ybase&&(this._optionsService.rawOptions.windowsMode||void 0!==this._optionsService.rawOptions.windowsPty.backend||void 0!==this._optionsService.rawOptions.windowsPty.buildNumber?this.lines.push(new r.BufferLine(e,i)):this.ybase>0&&this.lines.length<=this.ybase+this.y+o+1?(this.ybase--,o++,this.ydisp>0&&this.ydisp--):this.lines.push(new r.BufferLine(e,i)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(n<this.lines.maxLength){const e=this.lines.length-n;e>0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=n}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),o&&(this.y+=o),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let r=0;r<this.lines.length;r++)s+=+this.lines.get(r).resize(e,i);this._cols=e,this._rows=t,this._memoryCleanupQueue.clear(),s>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition<this.lines.length;)if(t+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),t>100)return!0;return e}get _isReflowEnabled(){const e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&"conpty"===e.backend&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){const i=(0,a.reflowLargerGetLinesToRemove)(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(r.DEFAULT_ATTR_DATA));if(i.length>0){const s=(0,a.reflowLargerCreateNewLayout)(this.lines,i);(0,a.reflowLargerApplyNewLayout)(this.lines,s.layout),this._reflowLargerAdjustViewport(e,t,s.countRemoved)}}_reflowLargerAdjustViewport(e,t,i){const s=this.getNullCell(r.DEFAULT_ATTR_DATA);let n=i;for(;n-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new r.BufferLine(e,s))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-i,0)}_reflowSmaller(e,t){const i=this.getNullCell(r.DEFAULT_ATTR_DATA),s=[];let n=0;for(let o=this.lines.length-1;o>=0;o--){let h=this.lines.get(o);if(!h||!h.isWrapped&&h.getTrimmedLength()<=e)continue;const l=[h];for(;h.isWrapped&&o>0;)h=this.lines.get(--o),l.unshift(h);const c=this.ybase+this.y;if(c>=o&&c<o+l.length)continue;const d=l[l.length-1].getTrimmedLength(),_=(0,a.reflowSmallerGetNewLineLengths)(l,this._cols,e),u=_.length-l.length;let f;f=0===this.ybase&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+u):Math.max(0,this.lines.length-this.lines.maxLength+u);const v=[];for(let e=0;e<u;e++){const e=this.getBlankLine(r.DEFAULT_ATTR_DATA,!0);v.push(e)}v.length>0&&(s.push({start:o+l.length+n,newLines:v}),n+=v.length),l.push(...v);let g=_.length-1,p=_[g];0===p&&(g--,p=_[g]);let m=l.length-u-1,C=d;for(;m>=0;){const e=Math.min(C,p);if(void 0===l[g])break;if(l[g].copyCellsFrom(l[m],C-e,p-e,e,!0),p-=e,0===p&&(g--,p=_[g]),C-=e,0===C){m--;const e=Math.max(m,0);C=(0,a.getWrappedLineTrimmedLength)(l,e,this._cols)}}for(let t=0;t<l.length;t++)_[t]<e&&l[t].setCell(_[t],i);let S=u-f;for(;S-- >0;)0===this.ybase?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+n)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+u,this.ybase+t-1)}if(s.length>0){const e=[],t=[];for(let s=0;s<this.lines.length;s++)t.push(this.lines.get(s));const i=this.lines.length;let r=i-1,o=0,a=s[o];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+n);let h=0;for(let d=Math.min(this.lines.maxLength-1,i+n-1);d>=0;d--)if(a&&a.start>r+h){for(let e=a.newLines.length-1;e>=0;e--)this.lines.set(d--,a.newLines[e]);d++,e.push({index:r+1,amount:a.newLines.length}),h+=a.newLines.length,a=s[++o]}else this.lines.set(d,t[r--]);let l=0;for(let s=e.length-1;s>=0;s--)e[s].index+=l,this.lines.onInsertEmitter.fire(e[s]),l+=e[s].amount;const c=Math.max(0,i+n-this.lines.maxLength);c>0&&this.lines.onTrimEmitter.fire(c)}}translateBufferLineToString(e,t,i=0,s){const r=this.lines.get(e);return r?r.translateToString(t,i,s):""}getWrappedRangeForLine(e){let t=e,i=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;i+1<this.lines.length&&this.lines.get(i+1).isWrapped;)i++;return{first:t,last:i}}setupTabStops(e){for(null!=e?this.tabs[e]||(e=this.prevStop(e)):(this.tabs={},e=0);e<this._cols;e+=this._optionsService.rawOptions.tabStopWidth)this.tabs[e]=!0}prevStop(e){for(null==e&&(e=this.x);!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t<this.markers.length;t++)this.markers[t].line===e&&(this.markers[t].dispose(),this.markers.splice(t--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let e=0;e<this.markers.length;e++)this.markers[e].dispose(),this.markers.splice(e--,1);this._isClearing=!1}addMarker(e){const t=new h.Marker(e);return this.markers.push(t),t.register(this.lines.onTrim((e=>{t.line-=e,t.line<0&&t.dispose()}))),t.register(this.lines.onInsert((e=>{t.line>=e.index&&(t.line+=e.amount)}))),t.register(this.lines.onDelete((e=>{t.line>=e.index&&t.line<e.index+e.amount&&t.dispose(),t.line>e.index&&(t.line-=e.amount)}))),t.register(t.onDispose((()=>this._removeMarker(t)))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}}},8437:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;const s=i(482),r=i(643),n=i(511),o=i(3734);t.DEFAULT_ATTR_DATA=Object.freeze(new o.AttributeData);let a=0;class h{constructor(e,t,i=!1){this.isWrapped=i,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);const s=t||n.CellData.fromCharData([0,r.NULL_CELL_CHAR,r.NULL_CELL_WIDTH,r.NULL_CELL_CODE]);for(let r=0;r<e;++r)this.setCell(r,s);this.length=e}get(e){const t=this._data[3*e+0],i=2097151&t;return[this._data[3*e+1],2097152&t?this._combined[e]:i?(0,s.stringFromCodePoint)(i):"",t>>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]}set(e,t){this._data[3*e+1]=t[r.CHAR_DATA_ATTR_INDEX],t[r.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[3*e+0]=2097152|e|t[r.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=t[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[r.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e]:2097151&t?(0,s.stringFromCodePoint)(2097151&t):""}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,t){return a=3*e,t.content=this._data[a+0],t.fg=this._data[a+1],t.bg=this._data[a+2],2097152&t.content&&(t.combinedData=this._combined[e]),268435456&t.bg&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),268435456&t.bg&&(this._extendedAttrs[e]=t.extended),this._data[3*e+0]=t.content,this._data[3*e+1]=t.fg,this._data[3*e+2]=t.bg}setCellFromCodePoint(e,t,i,s,r,n){268435456&r&&(this._extendedAttrs[e]=n),this._data[3*e+0]=t|i<<22,this._data[3*e+1]=s,this._data[3*e+2]=r}addCodepointToCell(e,t){let i=this._data[3*e+0];2097152&i?this._combined[e]+=(0,s.stringFromCodePoint)(t):(2097151&i?(this._combined[e]=(0,s.stringFromCodePoint)(2097151&i)+(0,s.stringFromCodePoint)(t),i&=-2097152,i|=2097152):i=t|1<<22,this._data[3*e+0]=i)}insertCells(e,t,i,s){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),t<this.length-e){const s=new n.CellData;for(let i=this.length-e-t-1;i>=0;--i)this.setCell(e+t+i,this.loadCell(e+i,s));for(let r=0;r<t;++r)this.setCell(e+r,i)}else for(let r=e;r<this.length;++r)this.setCell(r,i);2===this.getWidth(this.length-1)&&this.setCellFromCodePoint(this.length-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs)}deleteCells(e,t,i,s){if(e%=this.length,t<this.length-e){const s=new n.CellData;for(let i=0;i<this.length-e-t;++i)this.setCell(e+i,this.loadCell(e+t+i,s));for(let e=this.length-t;e<this.length;++e)this.setCell(e,i)}else for(let r=e;r<this.length;++r)this.setCell(r,i);e&&2===this.getWidth(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),0!==this.getWidth(e)||this.hasContent(e)||this.setCellFromCodePoint(e,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs)}replaceCells(e,t,i,s,r=!1){if(r)for(e&&2===this.getWidth(e-1)&&!this.isProtected(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),t<this.length&&2===this.getWidth(t-1)&&!this.isProtected(t)&&this.setCellFromCodePoint(t,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs);e<t&&e<this.length;)this.isProtected(e)||this.setCell(e,i),e++;else for(e&&2===this.getWidth(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),t<this.length&&2===this.getWidth(t-1)&&this.setCellFromCodePoint(t,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs);e<t&&e<this.length;)this.setCell(e++,i)}resize(e,t){if(e===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;const i=3*e;if(e>this.length){if(this._data.buffer.byteLength>=4*i)this._data=new Uint32Array(this._data.buffer,0,i);else{const e=new Uint32Array(i);e.set(this._data),this._data=e}for(let i=this.length;i<e;++i)this.setCell(i,t)}else{this._data=this._data.subarray(0,i);const t=Object.keys(this._combined);for(let i=0;i<t.length;i++){const s=parseInt(t[i],10);s>=e&&delete this._combined[s]}const s=Object.keys(this._extendedAttrs);for(let i=0;i<s.length;i++){const t=parseInt(s[i],10);t>=e&&delete this._extendedAttrs[t]}}return this.length=e,4*i*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){const e=new Uint32Array(this._data.length);return e.set(this._data),this._data=e,1}return 0}fill(e,t=!1){if(t)for(let i=0;i<this.length;++i)this.isProtected(i)||this.setCell(i,e);else{this._combined={},this._extendedAttrs={};for(let t=0;t<this.length;++t)this.setCell(t,e)}}copyFrom(e){this.length!==e.length?this._data=new Uint32Array(e._data):this._data.set(e._data),this.length=e.length,this._combined={};for(const t in e._combined)this._combined[t]=e._combined[t];this._extendedAttrs={};for(const t in e._extendedAttrs)this._extendedAttrs[t]=e._extendedAttrs[t];this.isWrapped=e.isWrapped}clone(){const e=new h(0);e._data=new Uint32Array(this._data),e.length=this.length;for(const t in this._combined)e._combined[t]=this._combined[t];for(const t in this._extendedAttrs)e._extendedAttrs[t]=this._extendedAttrs[t];return e.isWrapped=this.isWrapped,e}getTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,t,i,s,r){const n=e._data;if(r)for(let a=s-1;a>=0;a--){for(let e=0;e<3;e++)this._data[3*(i+a)+e]=n[3*(t+a)+e];268435456&n[3*(t+a)+2]&&(this._extendedAttrs[i+a]=e._extendedAttrs[t+a])}else for(let a=0;a<s;a++){for(let e=0;e<3;e++)this._data[3*(i+a)+e]=n[3*(t+a)+e];268435456&n[3*(t+a)+2]&&(this._extendedAttrs[i+a]=e._extendedAttrs[t+a])}const o=Object.keys(e._combined);for(let a=0;a<o.length;a++){const s=parseInt(o[a],10);s>=t&&(this._combined[s-t+i]=e._combined[s])}}translateToString(e=!1,t=0,i=this.length){e&&(i=Math.min(i,this.getTrimmedLength()));let n="";for(;t<i;){const e=this._data[3*t+0],i=2097151&e;n+=2097152&e?this._combined[t]:i?(0,s.stringFromCodePoint)(i):r.WHITESPACE_CELL_CHAR,t+=e>>22||1}return n}}t.BufferLine=h},4841:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(e,t){if(e.start.y>e.end.y)throw new Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}},4634:(e,t)=>{function i(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();const s=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),r=2===e[t+1].getWidth(0);return s&&r?i-1:i}Object.defineProperty(t,"__esModule",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(e,t,s,r,n){const o=[];for(let a=0;a<e.length-1;a++){let h=a,l=e.get(++h);if(!l.isWrapped)continue;const c=[e.get(a)];for(;h<e.length&&l.isWrapped;)c.push(l),l=e.get(++h);if(r>=a&&r<h){a+=c.length-1;continue}let d=0,_=i(c,d,t),u=1,f=0;for(;u<c.length;){const e=i(c,u,t),r=e-f,o=s-_,a=Math.min(r,o);c[d].copyCellsFrom(c[u],f,_,a,!1),_+=a,_===s&&(d++,_=0),f+=a,f===e&&(u++,f=0),0===_&&0!==d&&2===c[d-1].getWidth(s-1)&&(c[d].copyCellsFrom(c[d-1],s-1,_++,1,!1),c[d-1].setCell(s-1,n))}c[d].replaceCells(_,s,n);let v=0;for(let e=c.length-1;e>0&&(e>d||0===c[e].getTrimmedLength());e--)v++;v>0&&(o.push(a+c.length-v),o.push(v)),a+=c.length-1}return o},t.reflowLargerCreateNewLayout=function(e,t){const i=[];let s=0,r=t[s],n=0;for(let o=0;o<e.length;o++)if(r===o){const i=t[++s];e.onDeleteEmitter.fire({index:o-n,amount:i}),o+=i-1,n+=i,r=t[++s]}else i.push(o);return{layout:i,countRemoved:n}},t.reflowLargerApplyNewLayout=function(e,t){const i=[];for(let s=0;s<t.length;s++)i.push(e.get(t[s]));for(let s=0;s<i.length;s++)e.set(s,i[s]);e.length=t.length},t.reflowSmallerGetNewLineLengths=function(e,t,s){const r=[],n=e.map(((s,r)=>i(e,r,t))).reduce(((e,t)=>e+t));let o=0,a=0,h=0;for(;h<n;){if(n-h<s){r.push(n-h);break}o+=s;const l=i(e,a,t);o>l&&(o-=l,a++);const c=2===e[a].getWidth(o-1);c&&o--;const d=c?s-1:s;r.push(d),h+=d}return r},t.getWrappedLineTrimmedLength=i},5295:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferSet=void 0;const s=i(9092),r=i(8460),n=i(844);class o extends n.Disposable{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this.register(new r.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange("tabStopWidth",(()=>this.setupTabStops())))}reset(){this._normal=new s.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new s.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}}t.BufferSet=o},511:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;const s=i(482),r=i(643),n=i(3734);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=""}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},643:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Marker=void 0;const s=i(8460),r=i(844);class n{constructor(e){this.line=e,this.isDisposed=!1,this._disposables=[],this._id=n._nextId++,this._onDispose=this.register(new s.EventEmitter),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,r.disposeArray)(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}}t.Marker=n,n._nextId=1},7116:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"◆",a:"▒",b:"␉",c:"␌",d:"␍",e:"␊",f:"°",g:"±",h:"␤",i:"␋",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},t.CHARSETS.A={"#":"£"},t.CHARSETS.B=void 0,t.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},t.CHARSETS.C=t.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},t.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},t.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},t.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},t.CHARSETS.E=t.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},t.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},t.CHARSETS.H=t.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},2584:(e,t)=>{var i,s;Object.defineProperty(t,"__esModule",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(e){e.NUL="\0",e.SOH="",e.STX="",e.ETX="",e.EOT="",e.ENQ="",e.ACK="",e.BEL="",e.BS="\b",e.HT="\t",e.LF="\n",e.VT="\v",e.FF="\f",e.CR="\r",e.SO="",e.SI="",e.DLE="",e.DC1="",e.DC2="",e.DC3="",e.DC4="",e.NAK="",e.SYN="",e.ETB="",e.CAN="",e.EM="",e.SUB="",e.ESC="",e.FS="",e.GS="",e.RS="",e.US="",e.SP=" ",e.DEL=""}(i=t.C0||(t.C0={})),(s=t.C1||(t.C1={})).PAD="€",s.HOP="",s.BPH="‚",s.NBH="ƒ",s.IND="„",s.NEL="…",s.SSA="†",s.ESA="‡",s.HTS="ˆ",s.HTJ="‰",s.VTS="Š",s.PLD="‹",s.PLU="Œ",s.RI="",s.SS2="Ž",s.SS3="",s.DCS="",s.PU1="‘",s.PU2="’",s.STS="“",s.CCH="”",s.MW="•",s.SPA="–",s.EPA="—",s.SOS="˜",s.SGCI="™",s.SCI="š",s.CSI="›",s.ST="œ",s.OSC="",s.PM="ž",s.APC="Ÿ",(t.C1_ESCAPED||(t.C1_ESCAPED={})).ST=`${i.ESC}\\`},7399:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.evaluateKeyboardEvent=void 0;const s=i(2584),r={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(e,t,i,n){const o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?o.key=t?s.C0.ESC+"OA":s.C0.ESC+"[A":"UIKeyInputLeftArrow"===e.key?o.key=t?s.C0.ESC+"OD":s.C0.ESC+"[D":"UIKeyInputRightArrow"===e.key?o.key=t?s.C0.ESC+"OC":s.C0.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(o.key=t?s.C0.ESC+"OB":s.C0.ESC+"[B");break;case 8:if(e.altKey){o.key=s.C0.ESC+s.C0.DEL;break}o.key=s.C0.DEL;break;case 9:if(e.shiftKey){o.key=s.C0.ESC+"[Z";break}o.key=s.C0.HT,o.cancel=!0;break;case 13:o.key=e.altKey?s.C0.ESC+s.C0.CR:s.C0.CR,o.cancel=!0;break;case 27:o.key=s.C0.ESC,e.altKey&&(o.key=s.C0.ESC+s.C0.ESC),o.cancel=!0;break;case 37:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"D",o.key===s.C0.ESC+"[1;3D"&&(o.key=s.C0.ESC+(i?"b":"[1;5D"))):o.key=t?s.C0.ESC+"OD":s.C0.ESC+"[D";break;case 39:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"C",o.key===s.C0.ESC+"[1;3C"&&(o.key=s.C0.ESC+(i?"f":"[1;5C"))):o.key=t?s.C0.ESC+"OC":s.C0.ESC+"[C";break;case 38:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"A",i||o.key!==s.C0.ESC+"[1;3A"||(o.key=s.C0.ESC+"[1;5A")):o.key=t?s.C0.ESC+"OA":s.C0.ESC+"[A";break;case 40:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"B",i||o.key!==s.C0.ESC+"[1;3B"||(o.key=s.C0.ESC+"[1;5B")):o.key=t?s.C0.ESC+"OB":s.C0.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(o.key=s.C0.ESC+"[2~");break;case 46:o.key=a?s.C0.ESC+"[3;"+(a+1)+"~":s.C0.ESC+"[3~";break;case 36:o.key=a?s.C0.ESC+"[1;"+(a+1)+"H":t?s.C0.ESC+"OH":s.C0.ESC+"[H";break;case 35:o.key=a?s.C0.ESC+"[1;"+(a+1)+"F":t?s.C0.ESC+"OF":s.C0.ESC+"[F";break;case 33:e.shiftKey?o.type=2:e.ctrlKey?o.key=s.C0.ESC+"[5;"+(a+1)+"~":o.key=s.C0.ESC+"[5~";break;case 34:e.shiftKey?o.type=3:e.ctrlKey?o.key=s.C0.ESC+"[6;"+(a+1)+"~":o.key=s.C0.ESC+"[6~";break;case 112:o.key=a?s.C0.ESC+"[1;"+(a+1)+"P":s.C0.ESC+"OP";break;case 113:o.key=a?s.C0.ESC+"[1;"+(a+1)+"Q":s.C0.ESC+"OQ";break;case 114:o.key=a?s.C0.ESC+"[1;"+(a+1)+"R":s.C0.ESC+"OR";break;case 115:o.key=a?s.C0.ESC+"[1;"+(a+1)+"S":s.C0.ESC+"OS";break;case 116:o.key=a?s.C0.ESC+"[15;"+(a+1)+"~":s.C0.ESC+"[15~";break;case 117:o.key=a?s.C0.ESC+"[17;"+(a+1)+"~":s.C0.ESC+"[17~";break;case 118:o.key=a?s.C0.ESC+"[18;"+(a+1)+"~":s.C0.ESC+"[18~";break;case 119:o.key=a?s.C0.ESC+"[19;"+(a+1)+"~":s.C0.ESC+"[19~";break;case 120:o.key=a?s.C0.ESC+"[20;"+(a+1)+"~":s.C0.ESC+"[20~";break;case 121:o.key=a?s.C0.ESC+"[21;"+(a+1)+"~":s.C0.ESC+"[21~";break;case 122:o.key=a?s.C0.ESC+"[23;"+(a+1)+"~":s.C0.ESC+"[23~";break;case 123:o.key=a?s.C0.ESC+"[24;"+(a+1)+"~":s.C0.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!n||!e.altKey||e.metaKey)!i||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&("_"===e.key&&(o.key=s.C0.US),"@"===e.key&&(o.key=s.C0.NUL)):65===e.keyCode&&(o.type=1);else{const t=r[e.keyCode],i=null==t?void 0:t[e.shiftKey?1:0];if(i)o.key=s.C0.ESC+i;else if(e.keyCode>=65&&e.keyCode<=90){const t=e.ctrlKey?e.keyCode-64:e.keyCode+32;let i=String.fromCharCode(t);e.shiftKey&&(i=i.toUpperCase()),o.key=s.C0.ESC+i}else if(32===e.keyCode)o.key=s.C0.ESC+(e.ctrlKey?s.C0.NUL:" ");else if("Dead"===e.key&&e.code.startsWith("Key")){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),o.key=s.C0.ESC+t,o.cancel=!0}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=s.C0.NUL:e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=s.C0.DEL:219===e.keyCode?o.key=s.C0.ESC:220===e.keyCode?o.key=s.C0.FS:221===e.keyCode&&(o.key=s.C0.GS)}return o}},482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s="";for(let r=t;r<i;++r){let t=e[r];t>65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n<i;++n){const r=e.charCodeAt(n);if(55296<=r&&r<=56319){if(++n>=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,l=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,c=h-o;for(;l<c;){if(l>=i)return 0;if(n=e[l++],128!=(192&n)){l--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?l--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const c=i-4;let d=l;for(;d<i;){for(;!(!(d<c)||128&(s=e[d])||128&(r=e[d+1])||128&(n=e[d+2])||128&(o=e[d+3]));)t[a++]=s,t[a++]=r,t[a++]=n,t[a++]=o,d+=4;if(s=e[d++],s<128)t[a++]=s;else if(192==(224&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;const i=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],s=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let r;t.UnicodeV6=class{constructor(){if(this.version="6",!r){r=new Uint8Array(65536),r.fill(1),r[0]=0,r.fill(0,1,32),r.fill(0,127,160),r.fill(2,4352,4448),r[9001]=2,r[9002]=2,r.fill(2,11904,42192),r[12351]=1,r.fill(2,44032,55204),r.fill(2,63744,64256),r.fill(2,65040,65050),r.fill(2,65072,65136),r.fill(2,65280,65377),r.fill(2,65504,65511);for(let e=0;e<i.length;++e)r.fill(0,i[e][0],i[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?r[e]:function(e,t){let i,s=0,r=t.length-1;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=s;)if(i=s+r>>1,e>t[i][1])s=i+1;else{if(!(e<t[i][0]))return!0;r=i-1}return!1}(e,s)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}}},5981:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WriteBuffer=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new s.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(void 0!==t&&this._syncCalls>t)return void(this._syncCalls=0);if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let i;for(this._isSyncWriting=!0;i=this._writeBuffer.shift();){this._action(i);const e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){const i=e||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const e=this._writeBuffer[this._bufferOffset],s=this._action(e,t);if(s){const e=e=>Date.now()-i>=12?setTimeout((()=>this._innerWrite(0,e))):this._innerWrite(i,e);return void s.catch((e=>(queueMicrotask((()=>{throw e})),Promise.resolve(!1)))).then(e)}const r=this._callbacks[this._bufferOffset];if(r&&r(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-i>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=n},5941:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toRgbString=t.parseColor=void 0;const i=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,s=/^[\da-f]+$/;function r(e,t){const i=e.toString(16),s=i.length<2?"0"+i:i;switch(t){case 4:return i[0];case 8:return s;case 12:return(s+s).slice(0,3);default:return s+s}}t.parseColor=function(e){if(!e)return;let t=e.toLowerCase();if(0===t.indexOf("rgb:")){t=t.slice(4);const e=i.exec(t);if(e){const t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(0===t.indexOf("#")&&(t=t.slice(1),s.exec(t)&&[3,6,9,12].includes(t.length))){const e=t.length/3,i=[0,0,0];for(let s=0;s<3;++s){const r=parseInt(t.slice(e*s,e*s+e),16);i[s]=1===e?r<<4:2===e?r:3===e?r>>4:r>>8}return i}},t.toRgbString=function(e,t=16){const[i,s,n]=e;return`rgb:${r(i,t)}/${r(s,t)}/${r(n,t)}`}},5770:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DcsHandler=t.DcsParser=void 0;const s=i(482),r=i(8742),n=i(5770),o=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=o}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=o,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(let i=this._active.length-1;i>=0;i--)this._active[i].hook(t);else this._handlerFb(this._ident,"HOOK",t)}put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._ident,"PUT",(0,s.utf32ToString)(e,t,i))}unhook(e,t=!0){if(this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].unhook(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._ident,"UNHOOK",e);this._active=o,this._ident=0}};const a=new r.Params;a.addParam(0),t.DcsHandler=class{constructor(e){this._handler=e,this._data="",this._params=a,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():a,this._data="",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,s.utf32ToString)(e,t,i),this._data.length>n.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then((e=>(this._params=a,this._data="",this._hitLimit=!1,e)));return this._params=a,this._data="",this._hitLimit=!1,t}}},2015:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;const s=i(844),r=i(8742),n=i(6242),o=i(6351);class a{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,i,s){this.table[t<<8|e]=i<<4|s}addMany(e,t,i,s){for(let r=0;r<e.length;r++)this.table[t<<8|e[r]]=i<<4|s}}t.TransitionTable=a;const h=160;t.VT500_TRANSITION_TABLE=function(){const e=new a(4095),t=Array.apply(null,Array(256)).map(((e,t)=>t)),i=(e,i)=>t.slice(e,i),s=i(32,127),r=i(0,24);r.push(25),r.push.apply(r,i(28,32));const n=i(0,14);let o;for(o in e.setDefault(1,0),e.addMany(s,0,2,0),n)e.addMany([24,26,153,154],o,3,0),e.addMany(i(128,144),o,3,0),e.addMany(i(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(r,0,3,0),e.addMany(r,1,3,1),e.add(127,1,0,1),e.addMany(r,8,0,8),e.addMany(r,3,3,3),e.add(127,3,0,3),e.addMany(r,4,3,4),e.add(127,4,0,4),e.addMany(r,6,3,6),e.addMany(r,5,3,5),e.add(127,5,0,5),e.addMany(r,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(s,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(s,7,0,7),e.addMany(r,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(r,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(r,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(r,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(r,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(r,13,13,13),e.addMany(s,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(h,0,2,0),e.add(h,8,5,8),e.add(h,6,0,6),e.add(h,11,0,11),e.add(h,13,13,13),e}();class l extends s.Disposable{constructor(e=t.VT500_TRANSITION_TABLE){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new r.Params,this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,this._printHandlerFb=(e,t,i)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,s.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new n.OscParser),this._dcsParser=this.register(new o.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},(()=>!0))}_identifier(e,t=[64,126]){let i=0;if(e.prefix){if(e.prefix.length>1)throw new Error("only one byte as prefix supported");if(i=e.prefix.charCodeAt(0),i&&60>i||i>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(e.intermediates){if(e.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let t=0;t<e.intermediates.length;++t){const s=e.intermediates.charCodeAt(t);if(32>s||s>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");i<<=8,i|=s}}if(1!==e.final.length)throw new Error("final must be a single byte");const s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return i<<=8,i|=s,i}identToString(e){const t=[];for(;e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join("")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){const i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);const s=this._escHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){const i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);const s=this._csiHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,i,s,r){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=i,this._parseStack.transition=s,this._parseStack.chunkPos=r}parse(e,t,i){let s,r=0,n=0,o=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,o=this._parseStack.chunkPos+1;else{if(void 0===i||1===this._parseStack.state)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");const t=this._parseStack.handlers;let n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](this._params),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 4:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],s=this._dcsParser.unhook(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],s=this._oscParser.end(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,o=this._parseStack.chunkPos+1,this.precedingCodepoint=0,this.currentState=15&this._parseStack.transition}for(let a=o;a<t;++a){switch(r=e[a],n=this._transitions.table[this.currentState<<8|(r<160?r:h)],n>>4){case 2:for(let s=a+1;;++s){if(s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,a,s),a=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,a,s),a=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,a,s),a=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,a,s),a=s-1;break}}break;case 3:this._executeHandlers[r]?this._executeHandlers[r]():this._executeHandlerFb(r),this.precedingCodepoint=0;break;case 0:break;case 1:if(this._errorHandler({position:a,code:r,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:const i=this._csiHandlers[this._collect<<8|r];let o=i?i.length-1:-1;for(;o>=0&&(s=i[o](this._params),!0!==s);o--)if(s instanceof Promise)return this._preserveStack(3,i,o,n,a),s;o<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingCodepoint=0;break;case 8:do{switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}}while(++a<t&&(r=e[a])>47&&r<60);a--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:const l=this._escHandlers[this._collect<<8|r];let c=l?l.length-1:-1;for(;c>=0&&(s=l[c](),!0!==s);c--)if(s instanceof Promise)return this._preserveStack(4,l,c,n,a),s;c<0&&this._escHandlerFb(this._collect<<8|r),this.precedingCodepoint=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let s=a+1;;++s)if(s>=t||24===(r=e[s])||26===r||27===r||r>127&&r<h){this._dcsParser.put(e,a,s),a=s-1;break}break;case 14:if(s=this._dcsParser.unhook(24!==r&&26!==r),s)return this._preserveStack(6,[],0,n,a),s;27===r&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0;break;case 4:this._oscParser.start();break;case 5:for(let s=a+1;;s++)if(s>=t||(r=e[s])<32||r>127&&r<h){this._oscParser.put(e,a,s),a=s-1;break}break;case 6:if(s=this._oscParser.end(24!==r&&26!==r),s)return this._preserveStack(5,[],0,n,a),s;27===r&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0}this.currentState=15&n}}}t.EscapeSequenceParser=l},6242:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OscHandler=t.OscParser=void 0;const s=i(5770),r=i(482),n=[];t.OscParser=class{constructor(){this._state=0,this._active=n,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=n}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=n,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||n,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,"START")}_put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._id,"PUT",(0,r.utf32ToString)(e,t,i))}start(){this.reset(),this._state=1}put(e,t,i){if(3!==this._state){if(1===this._state)for(;t<i;){const i=e[t++];if(59===i){this._state=2,this._start();break}if(i<48||57<i)return void(this._state=3);-1===this._id&&(this._id=0),this._id=10*this._id+i-48}2===this._state&&i-t>0&&this._put(e,t,i)}}end(e,t=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].end(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._id,"END",e);this._active=n,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(e){this._handler=e,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,r.utf32ToString)(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then((e=>(this._data="",this._hitLimit=!1,e)));return this._data="",this._hitLimit=!1,t}}},8742:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;const i=2147483647;class s{constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(e){const t=new s;if(!e.length)return t;for(let i=Array.isArray(e[0])?1:0;i<e.length;++i){const s=e[i];if(Array.isArray(s))for(let e=0;e<s.length;++e)t.addSubParam(s[e]);else t.addParam(s)}return t}clone(){const e=new s(this.maxLength,this.maxSubParamsLength);return e.params.set(this.params),e.length=this.length,e._subParams.set(this._subParams),e._subParamsLength=this._subParamsLength,e._subParamsIdx.set(this._subParamsIdx),e._rejectDigits=this._rejectDigits,e._rejectSubDigits=this._rejectSubDigits,e._digitIsSub=this._digitIsSub,e}toArray(){const e=[];for(let t=0;t<this.length;++t){e.push(this.params[t]);const i=this._subParamsIdx[t]>>8,s=255&this._subParamsIdx[t];s-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,s))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>i?i:e}}addSubParam(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=e>i?i:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){const t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null}getSubParamsAll(){const e={};for(let t=0;t<this.length;++t){const i=this._subParamsIdx[t]>>8,s=255&this._subParamsIdx[t];s-i>0&&(e[t]=this._subParams.slice(i,s))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const s=this._digitIsSub?this._subParams:this.params,r=s[t-1];s[t-1]=~r?Math.min(10*r+e,i):e}}t.Params=s},5741:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){const i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=()=>this._wrappedAddonDispose(i),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let i=0;i<this._addons.length;i++)if(this._addons[i]===e){t=i;break}if(-1===t)throw new Error("Could not dispose an addon that has not been loaded");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}}},8771:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferApiView=void 0;const s=i(3785),r=i(511);t.BufferApiView=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){const t=this._buffer.lines.get(e);if(t)return new s.BufferLineApiView(t)}getNullCell(){return new r.CellData}}},3785:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLineApiView=void 0;const s=i(511);t.BufferLineApiView=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new s.CellData)}translateToString(e,t,i){return this._line.translateToString(e,t,i)}}},8285:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferNamespaceApi=void 0;const s=i(8771),r=i(8460);t.BufferNamespaceApi=class{constructor(e){this._core=e,this._onBufferChange=new r.EventEmitter,this.onBufferChange=this._onBufferChange.event,this._normal=new s.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new s.BufferApiView(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}},7975:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,(e=>t(e.toArray())))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,((e,i)=>t(e,i.toArray())))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}}},7090:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}}},744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;const n=i(2585),o=i(5295),a=i(8460),h=i(844);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let l=class extends h.Disposable{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this.register(new a.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new a.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new o.BufferSet(e,this))}get buffer(){return this.buffers.active}resize(e,t){this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){const i=this.buffer;let s;s=this._cachedBlankLine,s&&s.length===this.cols&&s.getFg(0)===e.fg&&s.getBg(0)===e.bg||(s=i.getBlankLine(e,t),this._cachedBlankLine=s),s.isWrapped=t;const r=i.ybase+i.scrollTop,n=i.ybase+i.scrollBottom;if(0===i.scrollTop){const e=i.lines.isFull;n===i.lines.length-1?e?i.lines.recycle().copyFrom(s):i.lines.push(s.clone()):i.lines.splice(n+1,0,s.clone()),e?this.isUserScrolling&&(i.ydisp=Math.max(i.ydisp-1,0)):(i.ybase++,this.isUserScrolling||i.ydisp++)}else{const e=n-r+1;i.lines.shiftElements(r+1,e-1,-1),i.lines.set(n,s.clone())}this.isUserScrolling||(i.ydisp=i.ybase),this._onScroll.fire(i.ydisp)}scrollLines(e,t,i){const s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);const r=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),r!==s.ydisp&&(t||this._onScroll.fire(s.ydisp))}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this.buffer.ydisp)}scrollToBottom(){this.scrollLines(this.buffer.ybase-this.buffer.ydisp)}scrollToLine(e){const t=e-this.buffer.ydisp;0!==t&&this.scrollLines(t)}};l=s([r(0,n.IOptionsService)],l),t.BufferService=l},7994:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}}},1753:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreMouseService=void 0;const n=i(2585),o=i(8460),a=i(844),h={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function l(e,t){let i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}const c=String.fromCharCode,d={DEFAULT:e=>{const t=[l(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?"":`${c(t[0])}${c(t[1])}${c(t[2])}`},SGR:e=>{const t=0===e.action&&4!==e.button?"m":"M";return`[<${l(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{const t=0===e.action&&4!==e.button?"m":"M";return`[<${l(e,!0)};${e.x};${e.y}${t}`}};let _=class extends a.Disposable{constructor(e,t){super(),this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this.register(new o.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(const i of Object.keys(h))this.addProtocol(i,h[i]);for(const i of Object.keys(d))this.addEncoding(i,d[i]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol "${e}"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,"SGR_PIXELS"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;const t=this._encodings[this._activeEncoding](e);return t&&("DEFAULT"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,t,i){if(i){if(e.x!==t.x)return!1;if(e.y!==t.y)return!1}else{if(e.col!==t.col)return!1;if(e.row!==t.row)return!1}return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};_=s([r(0,n.IBufferService),r(1,n.ICoreService)],_),t.CoreMouseService=_},6975:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreService=void 0;const n=i(2585),o=i(8460),a=i(1439),h=i(844),l=Object.freeze({insertMode:!1}),c=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=class extends h.Disposable{constructor(e,t,i){super(),this._bufferService=e,this._logService=t,this._optionsService=i,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new o.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new o.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new o.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new o.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,a.clone)(l),this.decPrivateModes=(0,a.clone)(c)}reset(){this.modes=(0,a.clone)(l),this.decPrivateModes=(0,a.clone)(c)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;const i=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&i.ybase!==i.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`,(()=>e.split("").map((e=>e.charCodeAt(0))))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${e}"`,(()=>e.split("").map((e=>e.charCodeAt(0))))),this._onBinary.fire(e))}};d=s([r(0,n.IBufferService),r(1,n.ILogService),r(2,n.IOptionsService)],d),t.CoreService=d},9074:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DecorationService=void 0;const s=i(8055),r=i(8460),n=i(844),o=i(6106);let a=0,h=0;class l extends n.Disposable{constructor(){super(),this._decorations=new o.SortedList((e=>null==e?void 0:e.marker.line)),this._onDecorationRegistered=this.register(new r.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new r.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,n.toDisposable)((()=>{for(const e of this._decorations.values())this._onDecorationRemoved.fire(e);this.reset()})))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;const t=new c(e);if(t){const e=t.marker.onDispose((()=>t.dispose()));t.onDispose((()=>{t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())})),this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(const e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,i){var s,r,n;let o=0,a=0;for(const h of this._decorations.getKeyIterator(t))o=null!==(s=h.options.x)&&void 0!==s?s:0,a=o+(null!==(r=h.options.width)&&void 0!==r?r:1),e>=o&&e<a&&(!i||(null!==(n=h.options.layer)&&void 0!==n?n:"bottom")===i)&&(yield h)}forEachDecorationAtCell(e,t,i,s){this._decorations.forEachByKey(t,(t=>{var r,n,o;a=null!==(r=t.options.x)&&void 0!==r?r:0,h=a+(null!==(n=t.options.width)&&void 0!==n?n:1),e>=a&&e<h&&(!i||(null!==(o=t.options.layer)&&void 0!==o?o:"bottom")===i)&&s(t)}))}dispose(){for(const e of this._decorations.values())this._onDecorationRemoved.fire(e);this.reset()}}t.DecorationService=l;class c extends n.Disposable{constructor(e){super(),this.options=e,this.onRenderEmitter=this.register(new r.EventEmitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.register(new r.EventEmitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=e.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position="full")}get isDisposed(){return this._isDisposed}get backgroundColorRGB(){return null===this._cachedBg&&(this.options.backgroundColor?this._cachedBg=s.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return null===this._cachedFg&&(this.options.foregroundColor?this._cachedFg=s.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}}},4348:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;const s=i(2585),r=i(8343);class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}forEach(e){for(const[t,i]of this._entries.entries())e(t,i)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}t.ServiceCollection=n,t.InstantiationService=class{constructor(){this._services=new n,this._services.set(s.IInstantiationService,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){const i=(0,r.getServiceDependencies)(e).sort(((e,t)=>e.index-t.index)),s=[];for(const r of i){const t=this._services.get(r.id);if(!t)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${r.id}.`);s.push(t)}const n=i.length>0?i[0].index:t.length;if(t.length!==n)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${t.length} static arguments`);return new e(...[...t,...s])}}},7866:function(e,t,i){var r=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogService=void 0;const o=i(844),a=i(2585),h={debug:a.LogLevelEnum.DEBUG,info:a.LogLevelEnum.INFO,warn:a.LogLevelEnum.WARN,error:a.LogLevelEnum.ERROR,off:a.LogLevelEnum.OFF};let l=class extends o.Disposable{constructor(e){super(),this._optionsService=e,this.logLevel=a.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel())))}_updateLogLevel(){this.logLevel=h[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)"function"==typeof e[t]&&(e[t]=e[t]())}_log(e,t,i){this._evalLazyOptionalParams(i),e.call(s,"xterm.js: "+t,...i)}debug(e,...t){this.logLevel<=a.LogLevelEnum.DEBUG&&this._log(s.log,e,t)}info(e,...t){this.logLevel<=a.LogLevelEnum.INFO&&this._log(s.info,e,t)}warn(e,...t){this.logLevel<=a.LogLevelEnum.WARN&&this._log(s.warn,e,t)}error(e,...t){this.logLevel<=a.LogLevelEnum.ERROR&&this._log(s.error,e,t)}};l=r([n(0,a.IOptionsService)],l),t.LogService=l},7302:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;const r=i(8460),n=i(6114),o=i(844);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,customGlyphs:!0,drawBoldTextInBrightColors:!0,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rightClickSelectsWord:n.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};const a=["normal","bold","100","200","300","400","500","600","700","800","900"];class h extends o.Disposable{constructor(e){super(),this._onOptionChange=this.register(new r.EventEmitter),this.onOptionChange=this._onOptionChange.event;const i=Object.assign({},t.DEFAULT_OPTIONS);for(const t in e)if(t in i)try{const s=e[t];i[t]=this._sanitizeAndValidateOption(t,s)}catch(e){s.error(e)}this.rawOptions=i,this.options=Object.assign({},i),this._setupOptions()}onSpecificOptionChange(e,t){return this.onOptionChange((i=>{i===e&&t(this.rawOptions[e])}))}onMultipleOptionChange(e,t){return this.onOptionChange((i=>{-1!==e.indexOf(i)&&t()}))}_setupOptions(){const e=e=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${e}"`);return this.rawOptions[e]},i=(e,i)=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${e}"`);i=this._sanitizeAndValidateOption(e,i),this.rawOptions[e]!==i&&(this.rawOptions[e]=i,this._onOptionChange.fire(e))};for(const t in this.rawOptions){const s={get:e.bind(this,t),set:i.bind(this,t)};Object.defineProperty(this.options,t,s)}}_sanitizeAndValidateOption(e,i){switch(e){case"cursorStyle":if(i||(i=t.DEFAULT_OPTIONS[e]),!function(e){return"block"===e||"underline"===e||"bar"===e}(i))throw new Error(`"${i}" is not a valid value for ${e}`);break;case"wordSeparator":i||(i=t.DEFAULT_OPTIONS[e]);break;case"fontWeight":case"fontWeightBold":if("number"==typeof i&&1<=i&&i<=1e3)break;i=a.includes(i)?i:t.DEFAULT_OPTIONS[e];break;case"cursorWidth":i=Math.floor(i);case"lineHeight":case"tabStopWidth":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case"minimumContrastRatio":i=Math.max(1,Math.min(21,Math.round(10*i)/10));break;case"scrollback":if((i=Math.min(i,4294967295))<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);break;case"rows":case"cols":if(!i&&0!==i)throw new Error(`${e} must be numeric, value: ${i}`);break;case"windowsPty":i=null!=i?i:{}}return i}}t.OptionsService=h},2660:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkService=void 0;const n=i(2585);let o=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){const t=this._bufferService.buffer;if(void 0===e.id){const i=t.addMarker(t.ybase+t.y),s={data:e,id:this._nextId++,lines:[i]};return i.onDispose((()=>this._removeMarkerFromLink(s,i))),this._dataByLinkId.set(s.id,s),s.id}const i=e,s=this._getEntryIdKey(i),r=this._entriesWithId.get(s);if(r)return this.addLineToLink(r.id,t.ybase+t.y),r.id;const n=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[n]};return n.onDispose((()=>this._removeMarkerFromLink(o,n))),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){const i=this._dataByLinkId.get(e);if(i&&i.lines.every((e=>e.line!==t))){const e=this._bufferService.buffer.addMarker(t);i.lines.push(e),e.onDispose((()=>this._removeMarkerFromLink(i,e)))}}getLinkData(e){var t;return null===(t=this._dataByLinkId.get(e))||void 0===t?void 0:t.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){const i=e.lines.indexOf(t);-1!==i&&(e.lines.splice(i,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};o=s([r(0,n.IBufferService)],o),t.OscLinkService=o},8343:(e,t)=>{function i(e,t,i){t.di$target===t?t.di$dependencies.push({id:e,index:i}):(t.di$dependencies=[{id:e,index:i}],t.di$target=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0,t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e.di$dependencies||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const s=function(e,t,r){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");i(s,e,r)};return s.toString=()=>e,t.serviceRegistry.set(e,s),s}},2585:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(8343);var r;t.IBufferService=(0,s.createDecorator)("BufferService"),t.ICoreMouseService=(0,s.createDecorator)("CoreMouseService"),t.ICoreService=(0,s.createDecorator)("CoreService"),t.ICharsetService=(0,s.createDecorator)("CharsetService"),t.IInstantiationService=(0,s.createDecorator)("InstantiationService"),(r=t.LogLevelEnum||(t.LogLevelEnum={}))[r.DEBUG=0]="DEBUG",r[r.INFO=1]="INFO",r[r.WARN=2]="WARN",r[r.ERROR=3]="ERROR",r[r.OFF=4]="OFF",t.ILogService=(0,s.createDecorator)("LogService"),t.IOptionsService=(0,s.createDecorator)("OptionsService"),t.IOscLinkService=(0,s.createDecorator)("OscLinkService"),t.IUnicodeService=(0,s.createDecorator)("UnicodeService"),t.IDecorationService=(0,s.createDecorator)("DecorationService")},1480:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;const s=i(8460),r=i(225);t.UnicodeService=class{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new s.EventEmitter,this.onChange=this._onChange.event;const e=new r.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0;const i=e.length;for(let s=0;s<i;++s){let r=e.charCodeAt(s);if(55296<=r&&r<=56319){if(++s>=i)return t+this.wcwidth(r);const n=e.charCodeAt(s);56320<=n&&n<=57343?r=1024*(r-55296)+n-56320+65536:t+=this.wcwidth(n)}t+=this.wcwidth(r)}return t}}}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.Terminal=void 0;const t=i(3236),s=i(9042),n=i(7975),o=i(7090),a=i(5741),h=i(8285),l=["cols","rows"];e.Terminal=class{constructor(e){this._core=new t.Terminal(e),this._addonManager=new a.AddonManager,this._publicOptions=Object.assign({},this._core.options);const i=e=>this._core.options[e],s=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(const t in this._core.options){const e={get:i.bind(this,t),set:s.bind(this,t)};Object.defineProperty(this._publicOptions,t,e)}}_checkReadonlyOptions(e){if(l.includes(e))throw new Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new n.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new o.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=new h.BufferNamespaceApi(this._core)),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const e=this._core.coreService.decPrivateModes;let t="none";switch(this._core.coreMouseService.activeProtocol){case"X10":t="x10";break;case"VT200":t="vt200";break;case"DRAG":t="drag";break;case"ANY":t="any"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(const t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.addMarker(e)}registerDecoration(e){var t,i,s;return this._checkProposedApi(),this._verifyPositiveIntegers(null!==(t=e.x)&&void 0!==t?t:0,null!==(i=e.width)&&void 0!==i?i:0,null!==(s=e.height)&&void 0!==s?s:0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){this._addonManager.dispose(),this._core.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write("\r\n",t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){return this._addonManager.loadAddon(this,e)}static get strings(){return s}_verifyIntegers(...e){for(const t of e)if(t===1/0||isNaN(t)||t%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(const t of e)if(t&&(t===1/0||isNaN(t)||t%1!=0||t<0))throw new Error("This API only accepts positive integers")}}})(),r})()))}}]); +//# sourceMappingURL=harvester-1.5.0-dev.umd.min.xterm.js.map \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.xterm.js.map b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.xterm.js.map new file mode 100644 index 00000000..7b007cd4 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/harvester-1.5.0-dev.umd.min.xterm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"harvester-1.5.0-dev.umd.min.xterm.js","mappings":"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AAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,IAAI,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,IAAI,KAAK,CAAC,CAACR,EAAE,EAAEC,EAAE,EAAE+U,EAAE,EAAExU,EAAE,GAAG,CAACR,E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KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,QAAQM,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,QAAQ,CAAC,OAAO,QAAQ,CAAC,OAAO,QAAQ,CAAC,OAAO,QAAQ,CAAC,OAAO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","sources":["webpack://harvester-1.5.0-dev/../../node_modules/xterm-addon-fit/lib/xterm-addon-fit.js","webpack://harvester-1.5.0-dev/../../node_modules/xterm-addon-search/lib/xterm-addon-search.js","webpack://harvester-1.5.0-dev/../../node_modules/xterm-addon-web-links/lib/xterm-addon-web-links.js","webpack://harvester-1.5.0-dev/../../node_modules/xterm-addon-webgl/lib/xterm-addon-webgl.js","webpack://harvester-1.5.0-dev/../../node_modules/xterm/lib/xterm.js"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.FitAddon=t():e.FitAddon=t()}(self,(()=>(()=>{\"use strict\";var e={};return(()=>{var t=e;Object.defineProperty(t,\"__esModule\",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal)return;if(!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core,t=e._renderService.dimensions;if(0===t.css.cell.width||0===t.css.cell.height)return;const r=0===this._terminal.options.scrollback?0:e.viewport.scrollBarWidth,i=window.getComputedStyle(this._terminal.element.parentElement),o=parseInt(i.getPropertyValue(\"height\")),s=Math.max(0,parseInt(i.getPropertyValue(\"width\"))),n=window.getComputedStyle(this._terminal.element),l=o-(parseInt(n.getPropertyValue(\"padding-top\"))+parseInt(n.getPropertyValue(\"padding-bottom\"))),a=s-(parseInt(n.getPropertyValue(\"padding-right\"))+parseInt(n.getPropertyValue(\"padding-left\")))-r;return{cols:Math.max(2,Math.floor(a/t.css.cell.width)),rows:Math.max(1,Math.floor(l/t.css.cell.height))}}}})(),e})()));\n//# sourceMappingURL=xterm-addon-fit.js.map","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.SearchAddon=t():e.SearchAddon=t()}(self,(()=>(()=>{\"use strict\";var e={345:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let e=0;e<this._listeners.length;e++)i.push(this._listeners[e]);for(let s=0;s<i.length;s++)i[s].call(void 0,e,t)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))}},859:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||(null===(t=this._value)||void 0===t||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,null===(e=this._value)||void 0===e||e.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var o=t[s]={exports:{}};return e[s](o,o.exports,i),o.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,\"__esModule\",{value:!0}),e.SearchAddon=void 0;const t=i(345),r=i(859),o=\" ~!@#$%^&*()+`-=[]{}|\\\\;:\\\"',./<>?\";class n extends r.Disposable{constructor(e){var i;super(),this._highlightedLines=new Set,this._highlightDecorations=[],this._selectedDecoration=this.register(new r.MutableDisposable),this._linesCacheTimeoutId=0,this._onDidChangeResults=this.register(new t.EventEmitter),this.onDidChangeResults=this._onDidChangeResults.event,this._highlightLimit=null!==(i=null==e?void 0:e.highlightLimit)&&void 0!==i?i:1e3}activate(e){this._terminal=e,this.register(this._terminal.onWriteParsed((()=>this._updateMatches()))),this.register(this._terminal.onResize((()=>this._updateMatches()))),this.register((0,r.toDisposable)((()=>this.clearDecorations())))}_updateMatches(){var e;this._highlightTimeout&&window.clearTimeout(this._highlightTimeout),this._cachedSearchTerm&&(null===(e=this._lastSearchOptions)||void 0===e?void 0:e.decorations)&&(this._highlightTimeout=setTimeout((()=>{const e=this._cachedSearchTerm;this._cachedSearchTerm=void 0,this.findPrevious(e,Object.assign(Object.assign({},this._lastSearchOptions),{incremental:!0,noScroll:!0}))}),200))}clearDecorations(e){this._selectedDecoration.clear(),(0,r.disposeArray)(this._highlightDecorations),this._highlightDecorations=[],this._highlightedLines.clear(),e||(this._cachedSearchTerm=void 0)}findNext(e,t){if(!this._terminal)throw new Error(\"Cannot use addon until it has been loaded\");this._lastSearchOptions=t,(null==t?void 0:t.decorations)&&(void 0!==this._cachedSearchTerm&&e===this._cachedSearchTerm||this._highlightAllMatches(e,t));const i=this._findNextAndSelect(e,t);return this._fireResults(t),this._cachedSearchTerm=e,i}_highlightAllMatches(e,t){if(!this._terminal)throw new Error(\"Cannot use addon until it has been loaded\");if(!e||0===e.length)return void this.clearDecorations();t=t||{},this.clearDecorations(!0);const i=[];let s,r=this._find(e,0,0,t);for(;r&&((null==s?void 0:s.row)!==r.row||(null==s?void 0:s.col)!==r.col)&&!(i.length>=this._highlightLimit);)s=r,i.push(s),r=this._find(e,s.col+s.term.length>=this._terminal.cols?s.row+1:s.row,s.col+s.term.length>=this._terminal.cols?0:s.col+1,t);for(const e of i){const i=this._createResultDecoration(e,t.decorations);i&&(this._highlightedLines.add(i.marker.line),this._highlightDecorations.push({decoration:i,match:e,dispose(){i.dispose()}}))}}_find(e,t,i,s){var r;if(!this._terminal||!e||0===e.length)return null===(r=this._terminal)||void 0===r||r.clearSelection(),void this.clearDecorations();if(i>this._terminal.cols)throw new Error(`Invalid col: ${i} to search in terminal of ${this._terminal.cols} cols`);let o;this._initLinesCache();const n={startRow:t,startCol:i};if(o=this._findInLine(e,n,s),!o)for(let i=t+1;i<this._terminal.buffer.active.baseY+this._terminal.rows&&(n.startRow=i,n.startCol=0,o=this._findInLine(e,n,s),!o);i++);return o}_findNextAndSelect(e,t){var i;if(!this._terminal||!e||0===e.length)return null===(i=this._terminal)||void 0===i||i.clearSelection(),this.clearDecorations(),!1;const s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let r=0,o=0;s&&(this._cachedSearchTerm===e?(r=s.end.x,o=s.end.y):(r=s.start.x,o=s.start.y)),this._initLinesCache();const n={startRow:o,startCol:r};let l=this._findInLine(e,n,t);if(!l)for(let i=o+1;i<this._terminal.buffer.active.baseY+this._terminal.rows&&(n.startRow=i,n.startCol=0,l=this._findInLine(e,n,t),!l);i++);if(!l&&0!==o)for(let i=0;i<o&&(n.startRow=i,n.startCol=0,l=this._findInLine(e,n,t),!l);i++);return!l&&s&&(n.startRow=s.start.y,n.startCol=0,l=this._findInLine(e,n,t)),this._selectResult(l,null==t?void 0:t.decorations,null==t?void 0:t.noScroll)}findPrevious(e,t){if(!this._terminal)throw new Error(\"Cannot use addon until it has been loaded\");this._lastSearchOptions=t,(null==t?void 0:t.decorations)&&(void 0!==this._cachedSearchTerm&&e===this._cachedSearchTerm||this._highlightAllMatches(e,t));const i=this._findPreviousAndSelect(e,t);return this._fireResults(t),this._cachedSearchTerm=e,i}_fireResults(e){if(null==e?void 0:e.decorations){let e=-1;if(this._selectedDecoration.value){const t=this._selectedDecoration.value.match;for(let i=0;i<this._highlightDecorations.length;i++){const s=this._highlightDecorations[i].match;if(s.row===t.row&&s.col===t.col&&s.size===t.size){e=i;break}}}this._onDidChangeResults.fire({resultIndex:e,resultCount:this._highlightDecorations.length})}}_findPreviousAndSelect(e,t){var i;if(!this._terminal)throw new Error(\"Cannot use addon until it has been loaded\");if(!this._terminal||!e||0===e.length)return null===(i=this._terminal)||void 0===i||i.clearSelection(),this.clearDecorations(),!1;const s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let r=this._terminal.buffer.active.baseY+this._terminal.rows-1,o=this._terminal.cols;const n=!0;this._initLinesCache();const l={startRow:r,startCol:o};let h;if(s&&(l.startRow=r=s.start.y,l.startCol=o=s.start.x,this._cachedSearchTerm!==e&&(h=this._findInLine(e,l,t,!1),h||(l.startRow=r=s.end.y,l.startCol=o=s.end.x))),h||(h=this._findInLine(e,l,t,n)),!h){l.startCol=Math.max(l.startCol,this._terminal.cols);for(let i=r-1;i>=0&&(l.startRow=i,h=this._findInLine(e,l,t,n),!h);i--);}if(!h&&r!==this._terminal.buffer.active.baseY+this._terminal.rows-1)for(let i=this._terminal.buffer.active.baseY+this._terminal.rows-1;i>=r&&(l.startRow=i,h=this._findInLine(e,l,t,n),!h);i--);return this._selectResult(h,null==t?void 0:t.decorations,null==t?void 0:t.noScroll)}_initLinesCache(){const e=this._terminal;this._linesCache||(this._linesCache=new Array(e.buffer.active.length),this._cursorMoveListener=e.onCursorMove((()=>this._destroyLinesCache())),this._resizeListener=e.onResize((()=>this._destroyLinesCache()))),window.clearTimeout(this._linesCacheTimeoutId),this._linesCacheTimeoutId=window.setTimeout((()=>this._destroyLinesCache()),15e3)}_destroyLinesCache(){this._linesCache=void 0,this._cursorMoveListener&&(this._cursorMoveListener.dispose(),this._cursorMoveListener=void 0),this._resizeListener&&(this._resizeListener.dispose(),this._resizeListener=void 0),this._linesCacheTimeoutId&&(window.clearTimeout(this._linesCacheTimeoutId),this._linesCacheTimeoutId=0)}_isWholeWord(e,t,i){return(0===e||o.includes(t[e-1]))&&(e+i.length===t.length||o.includes(t[e+i.length]))}_findInLine(e,t,i={},s=!1){var r;const o=this._terminal,n=t.startRow,l=t.startCol,h=o.buffer.active.getLine(n);if(null==h?void 0:h.isWrapped)return s?void(t.startCol+=o.cols):(t.startRow--,t.startCol+=o.cols,this._findInLine(e,t,i));let a=null===(r=this._linesCache)||void 0===r?void 0:r[n];a||(a=this._translateBufferLineToStringWithWrap(n,!0),this._linesCache&&(this._linesCache[n]=a));const[c,d]=a,_=this._bufferColsToStringOffset(n,l),u=i.caseSensitive?e:e.toLowerCase(),f=i.caseSensitive?c:c.toLowerCase();let g=-1;if(i.regex){const t=RegExp(u,\"g\");let i;if(s)for(;i=t.exec(f.slice(0,_));)g=t.lastIndex-i[0].length,e=i[0],t.lastIndex-=e.length-1;else i=t.exec(f.slice(_)),i&&i[0].length>0&&(g=_+(t.lastIndex-i[0].length),e=i[0])}else s?_-u.length>=0&&(g=f.lastIndexOf(u,_-u.length)):g=f.indexOf(u,_);if(g>=0){if(i.wholeWord&&!this._isWholeWord(g,f,e))return;let t=0;for(;t<d.length-1&&g>=d[t+1];)t++;let s=t;for(;s<d.length-1&&g+e.length>=d[s+1];)s++;const r=g-d[t],l=g+e.length-d[s],h=this._stringLengthToBufferSize(n+t,r);return{term:e,col:h,row:n+t,size:this._stringLengthToBufferSize(n+s,l)-h+o.cols*(s-t)}}}_stringLengthToBufferSize(e,t){const i=this._terminal.buffer.active.getLine(e);if(!i)return 0;for(let e=0;e<t;e++){const s=i.getCell(e);if(!s)break;const r=s.getChars();r.length>1&&(t-=r.length-1);const o=i.getCell(e+1);o&&0===o.getWidth()&&t++}return t}_bufferColsToStringOffset(e,t){const i=this._terminal;let s=e,r=0,o=i.buffer.active.getLine(s);for(;t>0&&o;){for(let e=0;e<t&&e<i.cols;e++){const t=o.getCell(e);if(!t)break;t.getWidth()&&(r+=0===t.getCode()?1:t.getChars().length)}if(s++,o=i.buffer.active.getLine(s),o&&!o.isWrapped)break;t-=i.cols}return r}_translateBufferLineToStringWithWrap(e,t){var i;const s=this._terminal,r=[],o=[0];let n=s.buffer.active.getLine(e);for(;n;){const l=s.buffer.active.getLine(e+1),h=!!l&&l.isWrapped;let a=n.translateToString(!h&&t);if(h&&l){const e=n.getCell(n.length-1);e&&0===e.getCode()&&1===e.getWidth()&&2===(null===(i=l.getCell(0))||void 0===i?void 0:i.getWidth())&&(a=a.slice(0,-1))}if(r.push(a),!h)break;o.push(o[o.length-1]+a.length),e++,n=l}return[r.join(\"\"),o]}_selectResult(e,t,i){const s=this._terminal;if(this._selectedDecoration.clear(),!e)return s.clearSelection(),!1;if(s.select(e.col,e.row,e.size),t){const i=s.registerMarker(-s.buffer.active.baseY-s.buffer.active.cursorY+e.row);if(i){const o=s.registerDecoration({marker:i,x:e.col,width:e.size,backgroundColor:t.activeMatchBackground,layer:\"top\",overviewRulerOptions:{color:t.activeMatchColorOverviewRuler}});if(o){const s=[];s.push(i),s.push(o.onRender((e=>this._applyStyles(e,t.activeMatchBorder,!0)))),s.push(o.onDispose((()=>(0,r.disposeArray)(s)))),this._selectedDecoration.value={decoration:o,match:e,dispose(){o.dispose()}}}}}if(!i&&(e.row>=s.buffer.active.viewportY+s.rows||e.row<s.buffer.active.viewportY)){let t=e.row-s.buffer.active.viewportY;t-=Math.floor(s.rows/2),s.scrollLines(t)}return!0}_applyStyles(e,t,i){e.classList.contains(\"xterm-find-result-decoration\")||(e.classList.add(\"xterm-find-result-decoration\"),t&&(e.style.outline=`1px solid ${t}`)),i&&e.classList.add(\"xterm-find-active-result-decoration\")}_createResultDecoration(e,t){const i=this._terminal,s=i.registerMarker(-i.buffer.active.baseY-i.buffer.active.cursorY+e.row);if(!s)return;const o=i.registerDecoration({marker:s,x:e.col,width:e.size,backgroundColor:t.matchBackground,overviewRulerOptions:this._highlightedLines.has(s.line)?void 0:{color:t.matchOverviewRuler,position:\"center\"}});if(o){const e=[];e.push(s),e.push(o.onRender((e=>this._applyStyles(e,t.matchBorder,!1)))),e.push(o.onDispose((()=>(0,r.disposeArray)(e))))}return o}}e.SearchAddon=n})(),s})()));\n//# sourceMappingURL=xterm-addon-search.js.map","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.WebLinksAddon=t():e.WebLinksAddon=t()}(self,(()=>(()=>{\"use strict\";var e={6:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.LinkComputer=t.WebLinkProvider=void 0,t.WebLinkProvider=class{constructor(e,t,n,i={}){this._terminal=e,this._regex=t,this._handler=n,this._options=i}provideLinks(e,t){const i=n.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(i))}_addCallbacks(e){return e.map((e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){const{range:i}=e;this._options.hover(t,n,i)}},e)))}};class n{static computeLink(e,t,i,r){const o=new RegExp(t.source,(t.flags||\"\")+\"g\"),[s,a]=n._getWindowedLineStrings(e-1,i),c=s.join(\"\");let d;const l=[];for(;d=o.exec(c);){const e=d[0];try{const t=new URL(e),n=decodeURI(t.toString());if(e!==n&&e+\"/\"!==n)continue}catch(e){continue}const[t,o]=n._mapStrIdx(i,a,0,d.index),[s,c]=n._mapStrIdx(i,t,o,e.length);if(-1===t||-1===o||-1===s||-1===c)continue;const p={start:{x:o+1,y:t+1},end:{x:c,y:s+1}};l.push({range:p,text:e,activate:r})}return l}static _getWindowedLineStrings(e,t){let n,i=e,r=e,o=0,s=\"\";const a=[];if(n=t.buffer.active.getLine(e)){const e=n.translateToString(!0);if(n.isWrapped&&\" \"!==e[0]){for(o=0;(n=t.buffer.active.getLine(--i))&&o<2048&&(s=n.translateToString(!0),o+=s.length,a.push(s),n.isWrapped&&-1===s.indexOf(\" \")););a.reverse()}for(a.push(e),o=0;(n=t.buffer.active.getLine(++r))&&n.isWrapped&&o<2048&&(s=n.translateToString(!0),o+=s.length,a.push(s),-1===s.indexOf(\" \")););}return[a,i]}static _mapStrIdx(e,t,n,i){const r=e.buffer.active,o=r.getNullCell();let s=n;for(;i;){const e=r.getLine(t);if(!e)return[-1,-1];for(let n=s;n<e.length;++n){e.getCell(n,o);const s=o.getChars();if(o.getWidth()&&(i-=s.length||1,n===e.length-1&&\"\"===s)){const e=r.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,o),2===o.getWidth()&&(i+=1))}if(i<0)return[t,n]}t++,s=0}return[t,s]}}t.LinkComputer=n}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return e[i](o,o.exports,n),o.exports}var i={};return(()=>{var e=i;Object.defineProperty(e,\"__esModule\",{value:!0}),e.WebLinksAddon=void 0;const t=n(6),r=/https?:[/]{2}[^\\s\"'!*(){}|\\\\\\^<>`]*[^\\s\"':,.!?{}|\\\\\\^~\\[\\]`()<>]/;function o(e,t){const n=window.open();if(n){try{n.opener=null}catch(e){}n.location.href=t}else console.warn(\"Opening link blocked as opener could not be cleared\")}e.WebLinksAddon=class{constructor(e=o,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;const n=this._options,i=n.urlRegex||r;this._linkProvider=this._terminal.registerLinkProvider(new t.WebLinkProvider(this._terminal,i,this._handler,n))}dispose(){var e;null===(e=this._linkProvider)||void 0===e||e.dispose()}}})(),i})()));\n//# sourceMappingURL=xterm-addon-web-links.js.map","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.WebglAddon=t():e.WebglAddon=t()}(self,(()=>(()=>{\"use strict\";var e={965:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,o=arguments.length,n=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(n=(o<3?r(n):o>3?r(t,i,n):r(t,i))||n);return o>3&&n&&Object.defineProperty(t,i,n),n};Object.defineProperty(t,\"__esModule\",{value:!0}),t.GlyphRenderer=void 0;const r=i(374),o=i(509),n=i(855),a=i(859),h=i(776),l=i(381),c=11,d=c*Float32Array.BYTES_PER_ELEMENT;let _,u=0,g=0,v=0;class f extends a.Disposable{constructor(e,t,i){super(),this._terminal=e,this._gl=t,this._dimensions=i,this._activeBuffer=0,this._vertices={count:0,attributes:new Float32Array(0),attributesBuffers:[new Float32Array(0),new Float32Array(0)]};const s=this._gl;void 0===o.TextureAtlas.maxAtlasPages&&(o.TextureAtlas.maxAtlasPages=Math.min(32,(0,r.throwIfFalsy)(s.getParameter(s.MAX_TEXTURE_IMAGE_UNITS))),o.TextureAtlas.maxTextureSize=(0,r.throwIfFalsy)(s.getParameter(s.MAX_TEXTURE_SIZE))),this._program=(0,r.throwIfFalsy)((0,l.createProgram)(s,\"#version 300 es\\nlayout (location = 0) in vec2 a_unitquad;\\nlayout (location = 1) in vec2 a_cellpos;\\nlayout (location = 2) in vec2 a_offset;\\nlayout (location = 3) in vec2 a_size;\\nlayout (location = 4) in float a_texpage;\\nlayout (location = 5) in vec2 a_texcoord;\\nlayout (location = 6) in vec2 a_texsize;\\n\\nuniform mat4 u_projection;\\nuniform vec2 u_resolution;\\n\\nout vec2 v_texcoord;\\nflat out int v_texpage;\\n\\nvoid main() {\\n vec2 zeroToOne = (a_offset / u_resolution) + a_cellpos + (a_unitquad * a_size);\\n gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);\\n v_texpage = int(a_texpage);\\n v_texcoord = a_texcoord + a_unitquad * a_texsize;\\n}\",function(e){let t=\"\";for(let i=1;i<e;i++)t+=` else if (v_texpage == ${i}) { outColor = texture(u_texture[${i}], v_texcoord); }`;return`#version 300 es\\nprecision lowp float;\\n\\nin vec2 v_texcoord;\\nflat in int v_texpage;\\n\\nuniform sampler2D u_texture[${e}];\\n\\nout vec4 outColor;\\n\\nvoid main() {\\n if (v_texpage == 0) {\\n outColor = texture(u_texture[0], v_texcoord);\\n } ${t}\\n}`}(o.TextureAtlas.maxAtlasPages))),this.register((0,a.toDisposable)((()=>s.deleteProgram(this._program)))),this._projectionLocation=(0,r.throwIfFalsy)(s.getUniformLocation(this._program,\"u_projection\")),this._resolutionLocation=(0,r.throwIfFalsy)(s.getUniformLocation(this._program,\"u_resolution\")),this._textureLocation=(0,r.throwIfFalsy)(s.getUniformLocation(this._program,\"u_texture\")),this._vertexArrayObject=s.createVertexArray(),s.bindVertexArray(this._vertexArrayObject);const n=new Float32Array([0,0,1,0,0,1,1,1]),h=s.createBuffer();this.register((0,a.toDisposable)((()=>s.deleteBuffer(h)))),s.bindBuffer(s.ARRAY_BUFFER,h),s.bufferData(s.ARRAY_BUFFER,n,s.STATIC_DRAW),s.enableVertexAttribArray(0),s.vertexAttribPointer(0,2,this._gl.FLOAT,!1,0,0);const c=new Uint8Array([0,1,2,3]),_=s.createBuffer();this.register((0,a.toDisposable)((()=>s.deleteBuffer(_)))),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,_),s.bufferData(s.ELEMENT_ARRAY_BUFFER,c,s.STATIC_DRAW),this._attributesBuffer=(0,r.throwIfFalsy)(s.createBuffer()),this.register((0,a.toDisposable)((()=>s.deleteBuffer(this._attributesBuffer)))),s.bindBuffer(s.ARRAY_BUFFER,this._attributesBuffer),s.enableVertexAttribArray(2),s.vertexAttribPointer(2,2,s.FLOAT,!1,d,0),s.vertexAttribDivisor(2,1),s.enableVertexAttribArray(3),s.vertexAttribPointer(3,2,s.FLOAT,!1,d,2*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(3,1),s.enableVertexAttribArray(4),s.vertexAttribPointer(4,1,s.FLOAT,!1,d,4*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(4,1),s.enableVertexAttribArray(5),s.vertexAttribPointer(5,2,s.FLOAT,!1,d,5*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(5,1),s.enableVertexAttribArray(6),s.vertexAttribPointer(6,2,s.FLOAT,!1,d,7*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(6,1),s.enableVertexAttribArray(1),s.vertexAttribPointer(1,2,s.FLOAT,!1,d,9*Float32Array.BYTES_PER_ELEMENT),s.vertexAttribDivisor(1,1),s.useProgram(this._program);const u=new Int32Array(o.TextureAtlas.maxAtlasPages);for(let e=0;e<o.TextureAtlas.maxAtlasPages;e++)u[e]=e;s.uniform1iv(this._textureLocation,u),s.uniformMatrix4fv(this._projectionLocation,!1,l.PROJECTION_MATRIX),this._atlasTextures=[];for(let e=0;e<o.TextureAtlas.maxAtlasPages;e++){const t=new l.GLTexture((0,r.throwIfFalsy)(s.createTexture()));this.register((0,a.toDisposable)((()=>s.deleteTexture(t.texture)))),s.activeTexture(s.TEXTURE0+e),s.bindTexture(s.TEXTURE_2D,t.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,1,1,0,s.RGBA,s.UNSIGNED_BYTE,new Uint8Array([255,0,0,255])),this._atlasTextures[e]=t}s.enable(s.BLEND),s.blendFunc(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA),this.handleResize()}beginFrame(){return!this._atlas||this._atlas.beginFrame()}updateCell(e,t,i,s,r,o,n,a){this._updateCell(this._vertices.attributes,e,t,i,s,r,o,n,a)}_updateCell(e,t,i,s,r,o,a,h,l){u=(i*this._terminal.cols+t)*c,s!==n.NULL_CELL_CODE&&void 0!==s?this._atlas&&(_=h&&h.length>1?this._atlas.getRasterizedGlyphCombinedChar(h,r,o,a,!1):this._atlas.getRasterizedGlyph(s,r,o,a,!1),g=Math.floor((this._dimensions.device.cell.width-this._dimensions.device.char.width)/2),r!==l&&_.offset.x>g?(v=_.offset.x-g,e[u]=-(_.offset.x-v)+this._dimensions.device.char.left,e[u+1]=-_.offset.y+this._dimensions.device.char.top,e[u+2]=(_.size.x-v)/this._dimensions.device.canvas.width,e[u+3]=_.size.y/this._dimensions.device.canvas.height,e[u+4]=_.texturePage,e[u+5]=_.texturePositionClipSpace.x+v/this._atlas.pages[_.texturePage].canvas.width,e[u+6]=_.texturePositionClipSpace.y,e[u+7]=_.sizeClipSpace.x-v/this._atlas.pages[_.texturePage].canvas.width,e[u+8]=_.sizeClipSpace.y):(e[u]=-_.offset.x+this._dimensions.device.char.left,e[u+1]=-_.offset.y+this._dimensions.device.char.top,e[u+2]=_.size.x/this._dimensions.device.canvas.width,e[u+3]=_.size.y/this._dimensions.device.canvas.height,e[u+4]=_.texturePage,e[u+5]=_.texturePositionClipSpace.x,e[u+6]=_.texturePositionClipSpace.y,e[u+7]=_.sizeClipSpace.x,e[u+8]=_.sizeClipSpace.y)):e.fill(0,u,u+c-1-2)}clear(){const e=this._terminal,t=e.cols*e.rows*c;this._vertices.count!==t?this._vertices.attributes=new Float32Array(t):this._vertices.attributes.fill(0);let i=0;for(;i<this._vertices.attributesBuffers.length;i++)this._vertices.count!==t?this._vertices.attributesBuffers[i]=new Float32Array(t):this._vertices.attributesBuffers[i].fill(0);this._vertices.count=t,i=0;for(let t=0;t<e.rows;t++)for(let s=0;s<e.cols;s++)this._vertices.attributes[i+9]=s/e.cols,this._vertices.attributes[i+10]=t/e.rows,i+=c}handleResize(){const e=this._gl;e.useProgram(this._program),e.viewport(0,0,e.canvas.width,e.canvas.height),e.uniform2f(this._resolutionLocation,e.canvas.width,e.canvas.height),this.clear()}render(e){if(!this._atlas)return;const t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),this._activeBuffer=(this._activeBuffer+1)%2;const i=this._vertices.attributesBuffers[this._activeBuffer];let s=0;for(let t=0;t<e.lineLengths.length;t++){const r=t*this._terminal.cols*c,o=this._vertices.attributes.subarray(r,r+e.lineLengths[t]*c);i.set(o,s),s+=o.length}t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,i.subarray(0,s),t.STREAM_DRAW);for(let e=0;e<this._atlas.pages.length;e++)this._atlas.pages[e].version!==this._atlasTextures[e].version&&this._bindAtlasPageTexture(t,this._atlas,e);t.drawElementsInstanced(t.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,s/c)}setAtlas(e){this._atlas=e;for(const e of this._atlasTextures)e.version=-1}_bindAtlasPageTexture(e,t,i){e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,this._atlasTextures[i].texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.pages[i].canvas),e.generateMipmap(e.TEXTURE_2D),this._atlasTextures[i].version=t.pages[i].version}setDimensions(e){this._dimensions=e}}t.GlyphRenderer=f,s([h.traceCall],f.prototype,\"updateCell\",null)},742:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RectangleRenderer=void 0;const s=i(374),r=i(859),o=i(310),n=i(381),a=8*Float32Array.BYTES_PER_ELEMENT;class h{constructor(){this.attributes=new Float32Array(160),this.count=0}}let l=0,c=0,d=0,_=0,u=0,g=0,v=0;class f extends r.Disposable{constructor(e,t,i,o){super(),this._terminal=e,this._gl=t,this._dimensions=i,this._themeService=o,this._vertices=new h,this._verticesCursor=new h;const l=this._gl;this._program=(0,s.throwIfFalsy)((0,n.createProgram)(l,\"#version 300 es\\nlayout (location = 0) in vec2 a_position;\\nlayout (location = 1) in vec2 a_size;\\nlayout (location = 2) in vec4 a_color;\\nlayout (location = 3) in vec2 a_unitquad;\\n\\nuniform mat4 u_projection;\\n\\nout vec4 v_color;\\n\\nvoid main() {\\n vec2 zeroToOne = a_position + (a_unitquad * a_size);\\n gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);\\n v_color = a_color;\\n}\",\"#version 300 es\\nprecision lowp float;\\n\\nin vec4 v_color;\\n\\nout vec4 outColor;\\n\\nvoid main() {\\n outColor = v_color;\\n}\")),this.register((0,r.toDisposable)((()=>l.deleteProgram(this._program)))),this._projectionLocation=(0,s.throwIfFalsy)(l.getUniformLocation(this._program,\"u_projection\")),this._vertexArrayObject=l.createVertexArray(),l.bindVertexArray(this._vertexArrayObject);const c=new Float32Array([0,0,1,0,0,1,1,1]),d=l.createBuffer();this.register((0,r.toDisposable)((()=>l.deleteBuffer(d)))),l.bindBuffer(l.ARRAY_BUFFER,d),l.bufferData(l.ARRAY_BUFFER,c,l.STATIC_DRAW),l.enableVertexAttribArray(3),l.vertexAttribPointer(3,2,this._gl.FLOAT,!1,0,0);const _=new Uint8Array([0,1,2,3]),u=l.createBuffer();this.register((0,r.toDisposable)((()=>l.deleteBuffer(u)))),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,u),l.bufferData(l.ELEMENT_ARRAY_BUFFER,_,l.STATIC_DRAW),this._attributesBuffer=(0,s.throwIfFalsy)(l.createBuffer()),this.register((0,r.toDisposable)((()=>l.deleteBuffer(this._attributesBuffer)))),l.bindBuffer(l.ARRAY_BUFFER,this._attributesBuffer),l.enableVertexAttribArray(0),l.vertexAttribPointer(0,2,l.FLOAT,!1,a,0),l.vertexAttribDivisor(0,1),l.enableVertexAttribArray(1),l.vertexAttribPointer(1,2,l.FLOAT,!1,a,2*Float32Array.BYTES_PER_ELEMENT),l.vertexAttribDivisor(1,1),l.enableVertexAttribArray(2),l.vertexAttribPointer(2,4,l.FLOAT,!1,a,4*Float32Array.BYTES_PER_ELEMENT),l.vertexAttribDivisor(2,1),this._updateCachedColors(o.colors),this.register(this._themeService.onChangeColors((e=>{this._updateCachedColors(e),this._updateViewportRectangle()})))}renderBackgrounds(){this._renderVertices(this._vertices)}renderCursor(){this._renderVertices(this._verticesCursor)}_renderVertices(e){const t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),t.uniformMatrix4fv(this._projectionLocation,!1,n.PROJECTION_MATRIX),t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,e.attributes,t.DYNAMIC_DRAW),t.drawElementsInstanced(this._gl.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,e.count)}handleResize(){this._updateViewportRectangle()}setDimensions(e){this._dimensions=e}_updateCachedColors(e){this._bgFloat=this._colorToFloat32Array(e.background),this._cursorFloat=this._colorToFloat32Array(e.cursor)}_updateViewportRectangle(){this._addRectangleFloat(this._vertices.attributes,0,0,0,this._terminal.cols*this._dimensions.device.cell.width,this._terminal.rows*this._dimensions.device.cell.height,this._bgFloat)}updateBackgrounds(e){const t=this._terminal,i=this._vertices;let s,r,n,a,h,l,c,d,_,u,g,v=1;for(s=0;s<t.rows;s++){for(n=-1,a=0,h=0,l=!1,r=0;r<t.cols;r++)c=(s*t.cols+r)*o.RENDER_MODEL_INDICIES_PER_CELL,d=e.cells[c+o.RENDER_MODEL_BG_OFFSET],_=e.cells[c+o.RENDER_MODEL_FG_OFFSET],u=!!(67108864&_),(d!==a||_!==h&&(l||u))&&((0!==a||l&&0!==h)&&(g=8*v++,this._updateRectangle(i,g,h,a,n,r,s)),n=r,a=d,h=_,l=u);(0!==a||l&&0!==h)&&(g=8*v++,this._updateRectangle(i,g,h,a,n,t.cols,s))}i.count=v}updateCursor(e){const t=this._verticesCursor,i=e.cursor;if(!i||\"block\"===i.style)return void(t.count=0);let s,r=0;\"bar\"!==i.style&&\"outline\"!==i.style||(s=8*r++,this._addRectangleFloat(t.attributes,s,i.x*this._dimensions.device.cell.width,i.y*this._dimensions.device.cell.height,\"bar\"===i.style?i.dpr*i.cursorWidth:i.dpr,this._dimensions.device.cell.height,this._cursorFloat)),\"underline\"!==i.style&&\"outline\"!==i.style||(s=8*r++,this._addRectangleFloat(t.attributes,s,i.x*this._dimensions.device.cell.width,(i.y+1)*this._dimensions.device.cell.height-i.dpr,i.width*this._dimensions.device.cell.width,i.dpr,this._cursorFloat)),\"outline\"===i.style&&(s=8*r++,this._addRectangleFloat(t.attributes,s,i.x*this._dimensions.device.cell.width,i.y*this._dimensions.device.cell.height,i.width*this._dimensions.device.cell.width,i.dpr,this._cursorFloat),s=8*r++,this._addRectangleFloat(t.attributes,s,(i.x+i.width)*this._dimensions.device.cell.width-i.dpr,i.y*this._dimensions.device.cell.height,i.dpr,this._dimensions.device.cell.height,this._cursorFloat)),t.count=r}_updateRectangle(e,t,i,s,r,o,a){if(67108864&i)switch(50331648&i){case 16777216:case 33554432:l=this._themeService.colors.ansi[255&i].rgba;break;case 50331648:l=(16777215&i)<<8;break;default:l=this._themeService.colors.foreground.rgba}else switch(50331648&s){case 16777216:case 33554432:l=this._themeService.colors.ansi[255&s].rgba;break;case 50331648:l=(16777215&s)<<8;break;default:l=this._themeService.colors.background.rgba}e.attributes.length<t+4&&(e.attributes=(0,n.expandFloat32Array)(e.attributes,this._terminal.rows*this._terminal.cols*8)),c=r*this._dimensions.device.cell.width,d=a*this._dimensions.device.cell.height,_=(l>>24&255)/255,u=(l>>16&255)/255,g=(l>>8&255)/255,v=1,this._addRectangle(e.attributes,t,c,d,(o-r)*this._dimensions.device.cell.width,this._dimensions.device.cell.height,_,u,g,v)}_addRectangle(e,t,i,s,r,o,n,a,h,l){e[t]=i/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=r/this._dimensions.device.canvas.width,e[t+3]=o/this._dimensions.device.canvas.height,e[t+4]=n,e[t+5]=a,e[t+6]=h,e[t+7]=l}_addRectangleFloat(e,t,i,s,r,o,n){e[t]=i/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=r/this._dimensions.device.canvas.width,e[t+3]=o/this._dimensions.device.canvas.height,e[t+4]=n[0],e[t+5]=n[1],e[t+6]=n[2],e[t+7]=n[3]}_colorToFloat32Array(e){return new Float32Array([(e.rgba>>24&255)/255,(e.rgba>>16&255)/255,(e.rgba>>8&255)/255,(255&e.rgba)/255])}}t.RectangleRenderer=f},310:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderModel=t.COMBINED_CHAR_BIT_MASK=t.RENDER_MODEL_EXT_OFFSET=t.RENDER_MODEL_FG_OFFSET=t.RENDER_MODEL_BG_OFFSET=t.RENDER_MODEL_INDICIES_PER_CELL=void 0;const s=i(296);t.RENDER_MODEL_INDICIES_PER_CELL=4,t.RENDER_MODEL_BG_OFFSET=1,t.RENDER_MODEL_FG_OFFSET=2,t.RENDER_MODEL_EXT_OFFSET=3,t.COMBINED_CHAR_BIT_MASK=2147483648,t.RenderModel=class{constructor(){this.cells=new Uint32Array(0),this.lineLengths=new Uint32Array(0),this.selection=(0,s.createSelectionRenderModel)()}resize(e,i){const s=e*i*t.RENDER_MODEL_INDICIES_PER_CELL;s!==this.cells.length&&(this.cells=new Uint32Array(s),this.lineLengths=new Uint32Array(i))}clear(){this.cells.fill(0,0),this.lineLengths.fill(0,0)}}},666:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,o=arguments.length,n=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(n=(o<3?r(n):o>3?r(t,i,n):r(t,i))||n);return o>3&&n&&Object.defineProperty(t,i,n),n};Object.defineProperty(t,\"__esModule\",{value:!0}),t.JoinedCellData=t.WebglRenderer=void 0;const r=i(820),o=i(274),n=i(627),a=i(457),h=i(56),l=i(374),c=i(345),d=i(859),_=i(147),u=i(782),g=i(855),v=i(776),f=i(965),p=i(742),C=i(310),m=i(733);class L extends d.Disposable{constructor(e,t,i,s,a,_,g,v,f){super(),this._terminal=e,this._characterJoinerService=t,this._charSizeService=i,this._coreBrowserService=s,this._coreService=a,this._decorationService=_,this._optionsService=g,this._themeService=v,this._cursorBlinkStateManager=new d.MutableDisposable,this._charAtlasDisposable=this.register(new d.MutableDisposable),this._model=new C.RenderModel,this._workCell=new u.CellData,this._rectangleRenderer=this.register(new d.MutableDisposable),this._glyphRenderer=this.register(new d.MutableDisposable),this._onChangeTextureAtlas=this.register(new c.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new c.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new c.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onRequestRedraw=this.register(new c.EventEmitter),this.onRequestRedraw=this._onRequestRedraw.event,this._onContextLoss=this.register(new c.EventEmitter),this.onContextLoss=this._onContextLoss.event,this.register(this._themeService.onChangeColors((()=>this._handleColorChange()))),this._cellColorResolver=new o.CellColorResolver(this._terminal,this._model.selection,this._decorationService,this._coreBrowserService,this._themeService),this._core=this._terminal._core,this._renderLayers=[new m.LinkRenderLayer(this._core.screenElement,2,this._terminal,this._core.linkifier2,this._coreBrowserService,g,this._themeService)],this.dimensions=(0,l.createRenderDimensions)(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._updateCursorBlink(),this.register(g.onOptionChange((()=>this._handleOptionsChanged()))),this._canvas=document.createElement(\"canvas\");const p={antialias:!1,depth:!1,preserveDrawingBuffer:f};if(this._gl=this._canvas.getContext(\"webgl2\",p),!this._gl)throw new Error(\"WebGL2 not supported \"+this._gl);this.register((0,r.addDisposableDomListener)(this._canvas,\"webglcontextlost\",(e=>{console.log(\"webglcontextlost event received\"),e.preventDefault(),this._contextRestorationTimeout=setTimeout((()=>{this._contextRestorationTimeout=void 0,console.warn(\"webgl context not restored; firing onContextLoss\"),this._onContextLoss.fire(e)}),3e3)}))),this.register((0,r.addDisposableDomListener)(this._canvas,\"webglcontextrestored\",(e=>{console.warn(\"webglcontextrestored event received\"),clearTimeout(this._contextRestorationTimeout),this._contextRestorationTimeout=void 0,(0,n.removeTerminalFromCache)(this._terminal),this._initializeWebGLState(),this._requestRedrawViewport()}))),this.register((0,h.observeDevicePixelDimensions)(this._canvas,this._coreBrowserService.window,((e,t)=>this._setCanvasDevicePixelDimensions(e,t)))),this._core.screenElement.appendChild(this._canvas),[this._rectangleRenderer.value,this._glyphRenderer.value]=this._initializeWebGLState(),this._isAttached=this._coreBrowserService.window.document.body.contains(this._core.screenElement),this.register((0,d.toDisposable)((()=>{var e;for(const e of this._renderLayers)e.dispose();null===(e=this._canvas.parentElement)||void 0===e||e.removeChild(this._canvas),(0,n.removeTerminalFromCache)(this._terminal)})))}get textureAtlas(){var e;return null===(e=this._charAtlas)||void 0===e?void 0:e.pages[0].canvas}_handleColorChange(){this._refreshCharAtlas(),this._clearModel(!0)}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._terminal.cols,this._terminal.rows))}handleResize(e,t){var i,s,r,o;this._updateDimensions(),this._model.resize(this._terminal.cols,this._terminal.rows);for(const e of this._renderLayers)e.resize(this._terminal,this.dimensions);this._canvas.width=this.dimensions.device.canvas.width,this._canvas.height=this.dimensions.device.canvas.height,this._canvas.style.width=`${this.dimensions.css.canvas.width}px`,this._canvas.style.height=`${this.dimensions.css.canvas.height}px`,this._core.screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._core.screenElement.style.height=`${this.dimensions.css.canvas.height}px`,null===(i=this._rectangleRenderer.value)||void 0===i||i.setDimensions(this.dimensions),null===(s=this._rectangleRenderer.value)||void 0===s||s.handleResize(),null===(r=this._glyphRenderer.value)||void 0===r||r.setDimensions(this.dimensions),null===(o=this._glyphRenderer.value)||void 0===o||o.handleResize(),this._refreshCharAtlas(),this._clearModel(!1)}handleCharSizeChanged(){this.handleResize(this._terminal.cols,this._terminal.rows)}handleBlur(){var e;for(const e of this._renderLayers)e.handleBlur(this._terminal);null===(e=this._cursorBlinkStateManager.value)||void 0===e||e.pause(),this._requestRedrawViewport()}handleFocus(){var e;for(const e of this._renderLayers)e.handleFocus(this._terminal);null===(e=this._cursorBlinkStateManager.value)||void 0===e||e.resume(),this._requestRedrawViewport()}handleSelectionChanged(e,t,i){for(const s of this._renderLayers)s.handleSelectionChanged(this._terminal,e,t,i);this._model.selection.update(this._terminal,e,t,i),this._requestRedrawViewport()}handleCursorMove(){var e;for(const e of this._renderLayers)e.handleCursorMove(this._terminal);null===(e=this._cursorBlinkStateManager.value)||void 0===e||e.restartBlinkAnimation()}_handleOptionsChanged(){this._updateDimensions(),this._refreshCharAtlas(),this._updateCursorBlink()}_initializeWebGLState(){return this._rectangleRenderer.value=new p.RectangleRenderer(this._terminal,this._gl,this.dimensions,this._themeService),this._glyphRenderer.value=new f.GlyphRenderer(this._terminal,this._gl,this.dimensions),this.handleCharSizeChanged(),[this._rectangleRenderer.value,this._glyphRenderer.value]}_refreshCharAtlas(){var e;if(this.dimensions.device.char.width<=0&&this.dimensions.device.char.height<=0)return void(this._isAttached=!1);const t=(0,n.acquireTextureAtlas)(this._terminal,this._optionsService.rawOptions,this._themeService.colors,this.dimensions.device.cell.width,this.dimensions.device.cell.height,this.dimensions.device.char.width,this.dimensions.device.char.height,this._coreBrowserService.dpr);this._charAtlas!==t&&(this._onChangeTextureAtlas.fire(t.pages[0].canvas),this._charAtlasDisposable.value=(0,d.getDisposeArrayDisposable)([(0,c.forwardEvent)(t.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),(0,c.forwardEvent)(t.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)])),this._charAtlas=t,this._charAtlas.warmUp(),null===(e=this._glyphRenderer.value)||void 0===e||e.setAtlas(this._charAtlas)}_clearModel(e){var t;this._model.clear(),e&&(null===(t=this._glyphRenderer.value)||void 0===t||t.clear())}clearTextureAtlas(){var e;null===(e=this._charAtlas)||void 0===e||e.clearTexture(),this._clearModel(!0),this._requestRedrawViewport()}clear(){var e;this._clearModel(!0);for(const e of this._renderLayers)e.reset(this._terminal);null===(e=this._cursorBlinkStateManager.value)||void 0===e||e.restartBlinkAnimation(),this._updateCursorBlink()}registerCharacterJoiner(e){return-1}deregisterCharacterJoiner(e){return!1}renderRows(e,t){if(!this._isAttached){if(!(this._coreBrowserService.window.document.body.contains(this._core.screenElement)&&this._charSizeService.width&&this._charSizeService.height))return;this._updateDimensions(),this._refreshCharAtlas(),this._isAttached=!0}for(const i of this._renderLayers)i.handleGridChanged(this._terminal,e,t);this._glyphRenderer.value&&this._rectangleRenderer.value&&(this._glyphRenderer.value.beginFrame()?(this._clearModel(!0),this._updateModel(0,this._terminal.rows-1)):this._updateModel(e,t),this._rectangleRenderer.value.renderBackgrounds(),this._glyphRenderer.value.render(this._model),this._cursorBlinkStateManager.value&&!this._cursorBlinkStateManager.value.isCursorVisible||this._rectangleRenderer.value.renderCursor())}_updateCursorBlink(){this._terminal.options.cursorBlink?this._cursorBlinkStateManager.value=new a.CursorBlinkStateManager((()=>{this._requestRedrawCursor()}),this._coreBrowserService):this._cursorBlinkStateManager.clear(),this._requestRedrawCursor()}_updateModel(e,t){const i=this._core;let s,r,o,n,a,h,l,c,d,_,u,v,f,p=this._workCell;e=w(e,i.rows-1,0),t=w(t,i.rows-1,0);const m=this._terminal.buffer.active.baseY+this._terminal.buffer.active.cursorY,L=Math.min(this._terminal.buffer.active.cursorX,i.cols-1);let b=-1;const R=this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden&&(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible);this._model.cursor=void 0;let M=!1;for(r=e;r<=t;r++)for(o=r+i.buffer.ydisp,n=i.buffer.lines.get(o),this._model.lineLengths[r]=0,a=this._characterJoinerService.getJoinedCharacters(o),v=0;v<i.cols;v++)if(s=this._cellColorResolver.result.bg,n.loadCell(v,p),0===v&&(s=this._cellColorResolver.result.bg),h=!1,l=v,a.length>0&&v===a[0][0]&&(h=!0,c=a.shift(),p=new x(p,n.translateToString(!0,c[0],c[1]),c[1]-c[0]),l=c[1]-1),d=p.getChars(),_=p.getCode(),u=(r*i.cols+v)*C.RENDER_MODEL_INDICIES_PER_CELL,this._cellColorResolver.resolve(p,v,o),R&&o===m&&(v===L&&(this._model.cursor={x:L,y:this._terminal.buffer.active.cursorY,width:p.getWidth(),style:this._coreBrowserService.isFocused?i.options.cursorStyle||\"block\":i.options.cursorInactiveStyle,cursorWidth:i.options.cursorWidth,dpr:this._devicePixelRatio},b=L+p.getWidth()-1),v>=L&&v<=b&&(this._coreBrowserService.isFocused&&\"block\"===(i.options.cursorStyle||\"block\")||!1===this._coreBrowserService.isFocused&&\"block\"===i.options.cursorInactiveStyle)&&(this._cellColorResolver.result.fg=50331648|this._themeService.colors.cursorAccent.rgba>>8&16777215,this._cellColorResolver.result.bg=50331648|this._themeService.colors.cursor.rgba>>8&16777215)),_!==g.NULL_CELL_CODE&&(this._model.lineLengths[r]=v+1),(this._model.cells[u]!==_||this._model.cells[u+C.RENDER_MODEL_BG_OFFSET]!==this._cellColorResolver.result.bg||this._model.cells[u+C.RENDER_MODEL_FG_OFFSET]!==this._cellColorResolver.result.fg||this._model.cells[u+C.RENDER_MODEL_EXT_OFFSET]!==this._cellColorResolver.result.ext)&&(M=!0,d.length>1&&(_|=C.COMBINED_CHAR_BIT_MASK),this._model.cells[u]=_,this._model.cells[u+C.RENDER_MODEL_BG_OFFSET]=this._cellColorResolver.result.bg,this._model.cells[u+C.RENDER_MODEL_FG_OFFSET]=this._cellColorResolver.result.fg,this._model.cells[u+C.RENDER_MODEL_EXT_OFFSET]=this._cellColorResolver.result.ext,this._glyphRenderer.value.updateCell(v,r,_,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,d,s),h))for(p=this._workCell,v++;v<l;v++)f=(r*i.cols+v)*C.RENDER_MODEL_INDICIES_PER_CELL,this._glyphRenderer.value.updateCell(v,r,g.NULL_CELL_CODE,0,0,0,g.NULL_CELL_CHAR,0),this._model.cells[f]=g.NULL_CELL_CODE,this._model.cells[f+C.RENDER_MODEL_BG_OFFSET]=this._cellColorResolver.result.bg,this._model.cells[f+C.RENDER_MODEL_FG_OFFSET]=this._cellColorResolver.result.fg,this._model.cells[f+C.RENDER_MODEL_EXT_OFFSET]=this._cellColorResolver.result.ext;M&&this._rectangleRenderer.value.updateBackgrounds(this._model),this._rectangleRenderer.value.updateCursor(this._model)}_updateDimensions(){this._charSizeService.width&&this._charSizeService.height&&(this.dimensions.device.char.width=Math.floor(this._charSizeService.width*this._devicePixelRatio),this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*this._devicePixelRatio),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.top=1===this._optionsService.rawOptions.lineHeight?0:Math.round((this.dimensions.device.cell.height-this.dimensions.device.char.height)/2),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.char.left=Math.floor(this._optionsService.rawOptions.letterSpacing/2),this.dimensions.device.canvas.height=this._terminal.rows*this.dimensions.device.cell.height,this.dimensions.device.canvas.width=this._terminal.cols*this.dimensions.device.cell.width,this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/this._devicePixelRatio),this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/this._devicePixelRatio),this.dimensions.css.cell.height=this.dimensions.device.cell.height/this._devicePixelRatio,this.dimensions.css.cell.width=this.dimensions.device.cell.width/this._devicePixelRatio)}_setCanvasDevicePixelDimensions(e,t){this._canvas.width===e&&this._canvas.height===t||(this._canvas.width=e,this._canvas.height=t,this._requestRedrawViewport())}_requestRedrawViewport(){this._onRequestRedraw.fire({start:0,end:this._terminal.rows-1})}_requestRedrawCursor(){const e=this._terminal.buffer.active.cursorY;this._onRequestRedraw.fire({start:e,end:e})}}t.WebglRenderer=L,s([v.traceCall],L.prototype,\"renderRows\",null);class x extends _.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData=\"\",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error(\"not implemented\")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}function w(e,t,i=0){return Math.max(Math.min(e,t),i)}t.JoinedCellData=x},381:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GLTexture=t.expandFloat32Array=t.createShader=t.createProgram=t.PROJECTION_MATRIX=void 0;const s=i(374);function r(e,t,i){const r=(0,s.throwIfFalsy)(e.createShader(t));if(e.shaderSource(r,i),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.error(e.getShaderInfoLog(r)),e.deleteShader(r)}t.PROJECTION_MATRIX=new Float32Array([2,0,0,0,0,-2,0,0,0,0,1,0,-1,1,0,1]),t.createProgram=function(e,t,i){const o=(0,s.throwIfFalsy)(e.createProgram());if(e.attachShader(o,(0,s.throwIfFalsy)(r(e,e.VERTEX_SHADER,t))),e.attachShader(o,(0,s.throwIfFalsy)(r(e,e.FRAGMENT_SHADER,i))),e.linkProgram(o),e.getProgramParameter(o,e.LINK_STATUS))return o;console.error(e.getProgramInfoLog(o)),e.deleteProgram(o)},t.createShader=r,t.expandFloat32Array=function(e,t){const i=Math.min(2*e.length,t),s=new Float32Array(i);for(let t=0;t<e.length;t++)s[t]=e[t];return s},t.GLTexture=class{constructor(e){this.texture=e,this.version=-1}}},592:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BaseRenderLayer=void 0;const s=i(627),r=i(237),o=i(374),n=i(859);class a extends n.Disposable{constructor(e,t,i,s,r,o,a,h){super(),this._container=t,this._alpha=r,this._coreBrowserService=o,this._optionsService=a,this._themeService=h,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._canvas=document.createElement(\"canvas\"),this._canvas.classList.add(`xterm-${i}-layer`),this._canvas.style.zIndex=s.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this.register(this._themeService.onChangeColors((t=>{this._refreshCharAtlas(e,t),this.reset(e)}))),this.register((0,n.toDisposable)((()=>{this._canvas.remove()})))}_initCanvas(){this._ctx=(0,o.throwIfFalsy)(this._canvas.getContext(\"2d\",{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(e){}handleFocus(e){}handleCursorMove(e){}handleGridChanged(e,t,i){}handleSelectionChanged(e,t,i,s=!1){}_setTransparency(e,t){if(t===this._alpha)return;const i=this._canvas;this._alpha=t,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,i),this._refreshCharAtlas(e,this._themeService.colors),this.handleGridChanged(e,0,e.rows-1)}_refreshCharAtlas(e,t){this._deviceCharWidth<=0&&this._deviceCharHeight<=0||(this._charAtlas=(0,s.acquireTextureAtlas)(e,this._optionsService.rawOptions,t,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr),this._charAtlas.warmUp())}resize(e,t){this._deviceCellWidth=t.device.cell.width,this._deviceCellHeight=t.device.cell.height,this._deviceCharWidth=t.device.char.width,this._deviceCharHeight=t.device.char.height,this._deviceCharLeft=t.device.char.left,this._deviceCharTop=t.device.char.top,this._canvas.width=t.device.canvas.width,this._canvas.height=t.device.canvas.height,this._canvas.style.width=`${t.css.canvas.width}px`,this._canvas.style.height=`${t.css.canvas.height}px`,this._alpha||this._clearAll(),this._refreshCharAtlas(e,this._themeService.colors)}_fillBottomLineAtCells(e,t,i=1){this._ctx.fillRect(e*this._deviceCellWidth,(t+1)*this._deviceCellHeight-this._coreBrowserService.dpr-1,i*this._deviceCellWidth,this._coreBrowserService.dpr)}_clearAll(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))}_clearCells(e,t,i,s){this._alpha?this._ctx.clearRect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,s*this._deviceCellHeight):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,s*this._deviceCellHeight))}_fillCharTrueColor(e,t,i,s){this._ctx.font=this._getFont(e,!1,!1),this._ctx.textBaseline=r.TEXT_BASELINE,this._clipCell(i,s,t.getWidth()),this._ctx.fillText(t.getChars(),i*this._deviceCellWidth+this._deviceCharLeft,s*this._deviceCellHeight+this._deviceCharTop+this._deviceCharHeight)}_clipCell(e,t,i){this._ctx.beginPath(),this._ctx.rect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(e,t,i){return`${i?\"italic\":\"\"} ${t?e.options.fontWeightBold:e.options.fontWeight} ${e.options.fontSize*this._coreBrowserService.dpr}px ${e.options.fontFamily}`}}t.BaseRenderLayer=a},733:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.LinkRenderLayer=void 0;const s=i(197),r=i(237),o=i(592);class n extends o.BaseRenderLayer{constructor(e,t,i,s,r,o,n){super(i,e,\"link\",t,!0,r,o,n),this.register(s.onShowLinkUnderline((e=>this._handleShowLinkUnderline(e)))),this.register(s.onHideLinkUnderline((e=>this._handleHideLinkUnderline(e))))}resize(e,t){super.resize(e,t),this._state=void 0}reset(e){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);const e=this._state.y2-this._state.y1-1;e>0&&this._clearCells(0,this._state.y1+1,this._state.cols,e),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(e){if(e.fg===r.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._themeService.colors.background.css:void 0!==e.fg&&(0,s.is256Color)(e.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[e.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,e.y1===e.y2)this._fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this._fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(let t=e.y1+1;t<e.y2;t++)this._fillBottomLineAtCells(0,t,e.cols);this._fillBottomLineAtCells(0,e.y2,e.x2)}this._state=e}_handleHideLinkUnderline(e){this._clearCurrentLink()}}t.LinkRenderLayer=n},820:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},274:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CellColorResolver=void 0;let i,s=0,r=0,o=!1,n=!1,a=!1;t.CellColorResolver=class{constructor(e,t,i,s,r){this._terminal=e,this._selectionRenderModel=t,this._decorationService=i,this._coreBrowserService=s,this._themeService=r,this.result={fg:0,bg:0,ext:0}}resolve(e,t,h){this.result.bg=e.bg,this.result.fg=e.fg,this.result.ext=268435456&e.bg?e.extended.ext:0,r=0,s=0,n=!1,o=!1,a=!1,i=this._themeService.colors,this._decorationService.forEachDecorationAtCell(t,h,\"bottom\",(e=>{e.backgroundColorRGB&&(r=e.backgroundColorRGB.rgba>>8&16777215,n=!0),e.foregroundColorRGB&&(s=e.foregroundColorRGB.rgba>>8&16777215,o=!0)})),a=this._selectionRenderModel.isCellSelected(this._terminal,t,h),a&&(r=(this._coreBrowserService.isFocused?i.selectionBackgroundOpaque:i.selectionInactiveBackgroundOpaque).rgba>>8&16777215,n=!0,i.selectionForeground&&(s=i.selectionForeground.rgba>>8&16777215,o=!0)),this._decorationService.forEachDecorationAtCell(t,h,\"top\",(e=>{e.backgroundColorRGB&&(r=e.backgroundColorRGB.rgba>>8&16777215,n=!0),e.foregroundColorRGB&&(s=e.foregroundColorRGB.rgba>>8&16777215,o=!0)})),n&&(r=a?-16777216&e.bg&-134217729|r|50331648:-16777216&e.bg|r|50331648),o&&(s=-16777216&e.fg&-67108865|s|50331648),67108864&this.result.fg&&(n&&!o&&(s=0==(50331648&this.result.bg)?-134217728&this.result.fg|16777215&i.background.rgba>>8|50331648:-134217728&this.result.fg|67108863&this.result.bg,o=!0),!n&&o&&(r=0==(50331648&this.result.fg)?-67108864&this.result.bg|16777215&i.foreground.rgba>>8|50331648:-67108864&this.result.bg|67108863&this.result.fg,n=!0)),i=void 0,this.result.bg=n?r:this.result.bg,this.result.fg=o?s:this.result.fg}}},627:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.removeTerminalFromCache=t.acquireTextureAtlas=void 0;const s=i(509),r=i(197),o=[];t.acquireTextureAtlas=function(e,t,i,n,a,h,l,c){const d=(0,r.generateConfig)(n,a,h,l,t,i,c);for(let t=0;t<o.length;t++){const i=o[t],s=i.ownedBy.indexOf(e);if(s>=0){if((0,r.configEquals)(i.config,d))return i.atlas;1===i.ownedBy.length?(i.atlas.dispose(),o.splice(t,1)):i.ownedBy.splice(s,1);break}}for(let t=0;t<o.length;t++){const i=o[t];if((0,r.configEquals)(i.config,d))return i.ownedBy.push(e),i.atlas}const _=e._core,u={atlas:new s.TextureAtlas(document,d,_.unicodeService),config:d,ownedBy:[e]};return o.push(u),u.atlas},t.removeTerminalFromCache=function(e){for(let t=0;t<o.length;t++){const i=o[t].ownedBy.indexOf(e);if(-1!==i){1===o[t].ownedBy.length?(o[t].atlas.dispose(),o.splice(t,1)):o[t].ownedBy.splice(i,1);break}}}},197:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.is256Color=t.configEquals=t.generateConfig=void 0;const s=i(160);t.generateConfig=function(e,t,i,r,o,n,a){const h={foreground:n.foreground,background:n.background,cursor:s.NULL_COLOR,cursorAccent:s.NULL_COLOR,selectionForeground:s.NULL_COLOR,selectionBackgroundTransparent:s.NULL_COLOR,selectionBackgroundOpaque:s.NULL_COLOR,selectionInactiveBackgroundTransparent:s.NULL_COLOR,selectionInactiveBackgroundOpaque:s.NULL_COLOR,ansi:n.ansi.slice(),contrastCache:n.contrastCache,halfContrastCache:n.halfContrastCache};return{customGlyphs:o.customGlyphs,devicePixelRatio:a,letterSpacing:o.letterSpacing,lineHeight:o.lineHeight,deviceCellWidth:e,deviceCellHeight:t,deviceCharWidth:i,deviceCharHeight:r,fontFamily:o.fontFamily,fontSize:o.fontSize,fontWeight:o.fontWeight,fontWeightBold:o.fontWeightBold,allowTransparency:o.allowTransparency,drawBoldTextInBrightColors:o.drawBoldTextInBrightColors,minimumContrastRatio:o.minimumContrastRatio,colors:h}},t.configEquals=function(e,t){for(let i=0;i<e.colors.ansi.length;i++)if(e.colors.ansi[i].rgba!==t.colors.ansi[i].rgba)return!1;return e.devicePixelRatio===t.devicePixelRatio&&e.customGlyphs===t.customGlyphs&&e.lineHeight===t.lineHeight&&e.letterSpacing===t.letterSpacing&&e.fontFamily===t.fontFamily&&e.fontSize===t.fontSize&&e.fontWeight===t.fontWeight&&e.fontWeightBold===t.fontWeightBold&&e.allowTransparency===t.allowTransparency&&e.deviceCharWidth===t.deviceCharWidth&&e.deviceCharHeight===t.deviceCharHeight&&e.drawBoldTextInBrightColors===t.drawBoldTextInBrightColors&&e.minimumContrastRatio===t.minimumContrastRatio&&e.colors.foreground.rgba===t.colors.foreground.rgba&&e.colors.background.rgba===t.colors.background.rgba},t.is256Color=function(e){return 16777216==(50331648&e)||33554432==(50331648&e)}},237:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(399);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?\"bottom\":\"ideographic\"},457:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CursorBlinkStateManager=void 0;t.CursorBlinkStateManager=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0}))))}_restartInterval(e=600){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout((()=>{if(this._animationTimeRestarted){const e=600-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,e>0)return void this._restartInterval(e)}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0})),this._blinkInterval=this._coreBrowserService.window.setInterval((()=>{if(this._animationTimeRestarted){const e=600-(Date.now()-this._animationTimeRestarted);return this._animationTimeRestarted=void 0,void this._restartInterval(e)}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0}))}),600)}),e)}pause(){this.isCursorVisible=!0,this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}}},860:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.tryDrawCustomChar=t.powerlineDefinitions=t.boxDrawingDefinitions=t.blockElementDefinitions=void 0;const s=i(374);t.blockElementDefinitions={\"▀\":[{x:0,y:0,w:8,h:4}],\"▁\":[{x:0,y:7,w:8,h:1}],\"▂\":[{x:0,y:6,w:8,h:2}],\"▃\":[{x:0,y:5,w:8,h:3}],\"▄\":[{x:0,y:4,w:8,h:4}],\"▅\":[{x:0,y:3,w:8,h:5}],\"▆\":[{x:0,y:2,w:8,h:6}],\"▇\":[{x:0,y:1,w:8,h:7}],\"█\":[{x:0,y:0,w:8,h:8}],\"▉\":[{x:0,y:0,w:7,h:8}],\"▊\":[{x:0,y:0,w:6,h:8}],\"▋\":[{x:0,y:0,w:5,h:8}],\"▌\":[{x:0,y:0,w:4,h:8}],\"▍\":[{x:0,y:0,w:3,h:8}],\"▎\":[{x:0,y:0,w:2,h:8}],\"▏\":[{x:0,y:0,w:1,h:8}],\"▐\":[{x:4,y:0,w:4,h:8}],\"▔\":[{x:0,y:0,w:8,h:1}],\"▕\":[{x:7,y:0,w:1,h:8}],\"▖\":[{x:0,y:4,w:4,h:4}],\"▗\":[{x:4,y:4,w:4,h:4}],\"▘\":[{x:0,y:0,w:4,h:4}],\"▙\":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],\"▚\":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],\"▛\":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],\"▜\":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],\"▝\":[{x:4,y:0,w:4,h:4}],\"▞\":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],\"▟\":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],\"🭰\":[{x:1,y:0,w:1,h:8}],\"🭱\":[{x:2,y:0,w:1,h:8}],\"🭲\":[{x:3,y:0,w:1,h:8}],\"🭳\":[{x:4,y:0,w:1,h:8}],\"🭴\":[{x:5,y:0,w:1,h:8}],\"🭵\":[{x:6,y:0,w:1,h:8}],\"🭶\":[{x:0,y:1,w:8,h:1}],\"🭷\":[{x:0,y:2,w:8,h:1}],\"🭸\":[{x:0,y:3,w:8,h:1}],\"🭹\":[{x:0,y:4,w:8,h:1}],\"🭺\":[{x:0,y:5,w:8,h:1}],\"🭻\":[{x:0,y:6,w:8,h:1}],\"🭼\":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],\"🭽\":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],\"🭾\":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],\"🭿\":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],\"🮀\":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],\"🮁\":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],\"🮂\":[{x:0,y:0,w:8,h:2}],\"🮃\":[{x:0,y:0,w:8,h:3}],\"🮄\":[{x:0,y:0,w:8,h:5}],\"🮅\":[{x:0,y:0,w:8,h:6}],\"🮆\":[{x:0,y:0,w:8,h:7}],\"🮇\":[{x:6,y:0,w:2,h:8}],\"🮈\":[{x:5,y:0,w:3,h:8}],\"🮉\":[{x:3,y:0,w:5,h:8}],\"🮊\":[{x:2,y:0,w:6,h:8}],\"🮋\":[{x:1,y:0,w:7,h:8}],\"🮕\":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],\"🮖\":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],\"🮗\":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]};const r={\"░\":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],\"▒\":[[1,0],[0,0],[0,1],[0,0]],\"▓\":[[0,1],[1,1],[1,0],[1,1]]};t.boxDrawingDefinitions={\"─\":{1:\"M0,.5 L1,.5\"},\"━\":{3:\"M0,.5 L1,.5\"},\"│\":{1:\"M.5,0 L.5,1\"},\"┃\":{3:\"M.5,0 L.5,1\"},\"┌\":{1:\"M0.5,1 L.5,.5 L1,.5\"},\"┏\":{3:\"M0.5,1 L.5,.5 L1,.5\"},\"┐\":{1:\"M0,.5 L.5,.5 L.5,1\"},\"┓\":{3:\"M0,.5 L.5,.5 L.5,1\"},\"└\":{1:\"M.5,0 L.5,.5 L1,.5\"},\"┗\":{3:\"M.5,0 L.5,.5 L1,.5\"},\"┘\":{1:\"M.5,0 L.5,.5 L0,.5\"},\"┛\":{3:\"M.5,0 L.5,.5 L0,.5\"},\"├\":{1:\"M.5,0 L.5,1 M.5,.5 L1,.5\"},\"┣\":{3:\"M.5,0 L.5,1 M.5,.5 L1,.5\"},\"┤\":{1:\"M.5,0 L.5,1 M.5,.5 L0,.5\"},\"┫\":{3:\"M.5,0 L.5,1 M.5,.5 L0,.5\"},\"┬\":{1:\"M0,.5 L1,.5 M.5,.5 L.5,1\"},\"┳\":{3:\"M0,.5 L1,.5 M.5,.5 L.5,1\"},\"┴\":{1:\"M0,.5 L1,.5 M.5,.5 L.5,0\"},\"┻\":{3:\"M0,.5 L1,.5 M.5,.5 L.5,0\"},\"┼\":{1:\"M0,.5 L1,.5 M.5,0 L.5,1\"},\"╋\":{3:\"M0,.5 L1,.5 M.5,0 L.5,1\"},\"╴\":{1:\"M.5,.5 L0,.5\"},\"╸\":{3:\"M.5,.5 L0,.5\"},\"╵\":{1:\"M.5,.5 L.5,0\"},\"╹\":{3:\"M.5,.5 L.5,0\"},\"╶\":{1:\"M.5,.5 L1,.5\"},\"╺\":{3:\"M.5,.5 L1,.5\"},\"╷\":{1:\"M.5,.5 L.5,1\"},\"╻\":{3:\"M.5,.5 L.5,1\"},\"═\":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},\"║\":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},\"╒\":{1:(e,t)=>`M.5,1 L.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},\"╓\":{1:(e,t)=>`M${.5-e},1 L${.5-e},.5 L1,.5 M${.5+e},.5 L${.5+e},1`},\"╔\":{1:(e,t)=>`M1,${.5-t} L${.5-e},${.5-t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},\"╕\":{1:(e,t)=>`M0,${.5-t} L.5,${.5-t} L.5,1 M0,${.5+t} L.5,${.5+t}`},\"╖\":{1:(e,t)=>`M${.5+e},1 L${.5+e},.5 L0,.5 M${.5-e},.5 L${.5-e},1`},\"╗\":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5+e},${.5-t} L${.5+e},1`},\"╘\":{1:(e,t)=>`M.5,0 L.5,${.5+t} L1,${.5+t} M.5,${.5-t} L1,${.5-t}`},\"╙\":{1:(e,t)=>`M1,.5 L${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},\"╚\":{1:(e,t)=>`M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0 M1,${.5+t} L${.5-e},${.5+t} L${.5-e},0`},\"╛\":{1:(e,t)=>`M0,${.5+t} L.5,${.5+t} L.5,0 M0,${.5-t} L.5,${.5-t}`},\"╜\":{1:(e,t)=>`M0,.5 L${.5+e},.5 L${.5+e},0 M${.5-e},.5 L${.5-e},0`},\"╝\":{1:(e,t)=>`M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M0,${.5+t} L${.5+e},${.5+t} L${.5+e},0`},\"╞\":{1:(e,t)=>`M.5,0 L.5,1 M.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},\"╟\":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1 M${.5+e},.5 L1,.5`},\"╠\":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},\"╡\":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L.5,${.5-t} M0,${.5+t} L.5,${.5+t}`},\"╢\":{1:(e,t)=>`M0,.5 L${.5-e},.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},\"╣\":{1:(e,t)=>`M${.5+e},0 L${.5+e},1 M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0`},\"╤\":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t} M.5,${.5+t} L.5,1`},\"╥\":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},1 M${.5+e},.5 L${.5+e},1`},\"╦\":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},\"╧\":{1:(e,t)=>`M.5,0 L.5,${.5-t} M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},\"╨\":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},\"╩\":{1:(e,t)=>`M0,${.5+t} L1,${.5+t} M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},\"╪\":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},\"╫\":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},\"╬\":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},\"╱\":{1:\"M1,0 L0,1\"},\"╲\":{1:\"M0,0 L1,1\"},\"╳\":{1:\"M1,0 L0,1 M0,0 L1,1\"},\"╼\":{1:\"M.5,.5 L0,.5\",3:\"M.5,.5 L1,.5\"},\"╽\":{1:\"M.5,.5 L.5,0\",3:\"M.5,.5 L.5,1\"},\"╾\":{1:\"M.5,.5 L1,.5\",3:\"M.5,.5 L0,.5\"},\"╿\":{1:\"M.5,.5 L.5,1\",3:\"M.5,.5 L.5,0\"},\"┍\":{1:\"M.5,.5 L.5,1\",3:\"M.5,.5 L1,.5\"},\"┎\":{1:\"M.5,.5 L1,.5\",3:\"M.5,.5 L.5,1\"},\"┑\":{1:\"M.5,.5 L.5,1\",3:\"M.5,.5 L0,.5\"},\"┒\":{1:\"M.5,.5 L0,.5\",3:\"M.5,.5 L.5,1\"},\"┕\":{1:\"M.5,.5 L.5,0\",3:\"M.5,.5 L1,.5\"},\"┖\":{1:\"M.5,.5 L1,.5\",3:\"M.5,.5 L.5,0\"},\"┙\":{1:\"M.5,.5 L.5,0\",3:\"M.5,.5 L0,.5\"},\"┚\":{1:\"M.5,.5 L0,.5\",3:\"M.5,.5 L.5,0\"},\"┝\":{1:\"M.5,0 L.5,1\",3:\"M.5,.5 L1,.5\"},\"┞\":{1:\"M0.5,1 L.5,.5 L1,.5\",3:\"M.5,.5 L.5,0\"},\"┟\":{1:\"M.5,0 L.5,.5 L1,.5\",3:\"M.5,.5 L.5,1\"},\"┠\":{1:\"M.5,.5 L1,.5\",3:\"M.5,0 L.5,1\"},\"┡\":{1:\"M.5,.5 L.5,1\",3:\"M.5,0 L.5,.5 L1,.5\"},\"┢\":{1:\"M.5,.5 L.5,0\",3:\"M0.5,1 L.5,.5 L1,.5\"},\"┥\":{1:\"M.5,0 L.5,1\",3:\"M.5,.5 L0,.5\"},\"┦\":{1:\"M0,.5 L.5,.5 L.5,1\",3:\"M.5,.5 L.5,0\"},\"┧\":{1:\"M.5,0 L.5,.5 L0,.5\",3:\"M.5,.5 L.5,1\"},\"┨\":{1:\"M.5,.5 L0,.5\",3:\"M.5,0 L.5,1\"},\"┩\":{1:\"M.5,.5 L.5,1\",3:\"M.5,0 L.5,.5 L0,.5\"},\"┪\":{1:\"M.5,.5 L.5,0\",3:\"M0,.5 L.5,.5 L.5,1\"},\"┭\":{1:\"M0.5,1 L.5,.5 L1,.5\",3:\"M.5,.5 L0,.5\"},\"┮\":{1:\"M0,.5 L.5,.5 L.5,1\",3:\"M.5,.5 L1,.5\"},\"┯\":{1:\"M.5,.5 L.5,1\",3:\"M0,.5 L1,.5\"},\"┰\":{1:\"M0,.5 L1,.5\",3:\"M.5,.5 L.5,1\"},\"┱\":{1:\"M.5,.5 L1,.5\",3:\"M0,.5 L.5,.5 L.5,1\"},\"┲\":{1:\"M.5,.5 L0,.5\",3:\"M0.5,1 L.5,.5 L1,.5\"},\"┵\":{1:\"M.5,0 L.5,.5 L1,.5\",3:\"M.5,.5 L0,.5\"},\"┶\":{1:\"M.5,0 L.5,.5 L0,.5\",3:\"M.5,.5 L1,.5\"},\"┷\":{1:\"M.5,.5 L.5,0\",3:\"M0,.5 L1,.5\"},\"┸\":{1:\"M0,.5 L1,.5\",3:\"M.5,.5 L.5,0\"},\"┹\":{1:\"M.5,.5 L1,.5\",3:\"M.5,0 L.5,.5 L0,.5\"},\"┺\":{1:\"M.5,.5 L0,.5\",3:\"M.5,0 L.5,.5 L1,.5\"},\"┽\":{1:\"M.5,0 L.5,1 M.5,.5 L1,.5\",3:\"M.5,.5 L0,.5\"},\"┾\":{1:\"M.5,0 L.5,1 M.5,.5 L0,.5\",3:\"M.5,.5 L1,.5\"},\"┿\":{1:\"M.5,0 L.5,1\",3:\"M0,.5 L1,.5\"},\"╀\":{1:\"M0,.5 L1,.5 M.5,.5 L.5,1\",3:\"M.5,.5 L.5,0\"},\"╁\":{1:\"M.5,.5 L.5,0 M0,.5 L1,.5\",3:\"M.5,.5 L.5,1\"},\"╂\":{1:\"M0,.5 L1,.5\",3:\"M.5,0 L.5,1\"},\"╃\":{1:\"M0.5,1 L.5,.5 L1,.5\",3:\"M.5,0 L.5,.5 L0,.5\"},\"╄\":{1:\"M0,.5 L.5,.5 L.5,1\",3:\"M.5,0 L.5,.5 L1,.5\"},\"╅\":{1:\"M.5,0 L.5,.5 L1,.5\",3:\"M0,.5 L.5,.5 L.5,1\"},\"╆\":{1:\"M.5,0 L.5,.5 L0,.5\",3:\"M0.5,1 L.5,.5 L1,.5\"},\"╇\":{1:\"M.5,.5 L.5,1\",3:\"M.5,.5 L.5,0 M0,.5 L1,.5\"},\"╈\":{1:\"M.5,.5 L.5,0\",3:\"M0,.5 L1,.5 M.5,.5 L.5,1\"},\"╉\":{1:\"M.5,.5 L1,.5\",3:\"M.5,0 L.5,1 M.5,.5 L0,.5\"},\"╊\":{1:\"M.5,.5 L0,.5\",3:\"M.5,0 L.5,1 M.5,.5 L1,.5\"},\"╌\":{1:\"M.1,.5 L.4,.5 M.6,.5 L.9,.5\"},\"╍\":{3:\"M.1,.5 L.4,.5 M.6,.5 L.9,.5\"},\"┄\":{1:\"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5\"},\"┅\":{3:\"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5\"},\"┈\":{1:\"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5\"},\"┉\":{3:\"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5\"},\"╎\":{1:\"M.5,.1 L.5,.4 M.5,.6 L.5,.9\"},\"╏\":{3:\"M.5,.1 L.5,.4 M.5,.6 L.5,.9\"},\"┆\":{1:\"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333\"},\"┇\":{3:\"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333\"},\"┊\":{1:\"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95\"},\"┋\":{3:\"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95\"},\"╭\":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,1,.5`},\"╮\":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,0,.5`},\"╯\":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,0,.5`},\"╰\":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,1,.5`}},t.powerlineDefinitions={\"\":{d:\"M0,0 L1,.5 L0,1\",type:0,rightPadding:2},\"\":{d:\"M-1,-.5 L1,.5 L-1,1.5\",type:1,leftPadding:1,rightPadding:1},\"\":{d:\"M1,0 L0,.5 L1,1\",type:0,leftPadding:2},\"\":{d:\"M2,-.5 L0,.5 L2,1.5\",type:1,leftPadding:1,rightPadding:1},\"\":{d:\"M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0\",type:0,rightPadding:1},\"\":{d:\"M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0\",type:1,rightPadding:1},\"\":{d:\"M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0\",type:0,leftPadding:1},\"\":{d:\"M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0\",type:1,leftPadding:1},\"\":{d:\"M-.5,-.5 L1.5,1.5 L-.5,1.5\",type:0},\"\":{d:\"M-.5,-.5 L1.5,1.5\",type:1,leftPadding:1,rightPadding:1},\"\":{d:\"M1.5,-.5 L-.5,1.5 L1.5,1.5\",type:0},\"\":{d:\"M1.5,-.5 L-.5,1.5 L-.5,-.5\",type:0},\"\":{d:\"M1.5,-.5 L-.5,1.5\",type:1,leftPadding:1,rightPadding:1},\"\":{d:\"M-.5,-.5 L1.5,1.5 L1.5,-.5\",type:0}},t.powerlineDefinitions[\"\"]=t.powerlineDefinitions[\"\"],t.powerlineDefinitions[\"\"]=t.powerlineDefinitions[\"\"],t.tryDrawCustomChar=function(e,i,n,l,c,d,_,u){const g=t.blockElementDefinitions[i];if(g)return function(e,t,i,s,r,o){for(let n=0;n<t.length;n++){const a=t[n],h=r/8,l=o/8;e.fillRect(i+a.x*h,s+a.y*l,a.w*h,a.h*l)}}(e,g,n,l,c,d),!0;const v=r[i];if(v)return function(e,t,i,r,n,a){let h=o.get(t);h||(h=new Map,o.set(t,h));const l=e.fillStyle;if(\"string\"!=typeof l)throw new Error(`Unexpected fillStyle type \"${l}\"`);let c=h.get(l);if(!c){const i=t[0].length,r=t.length,o=document.createElement(\"canvas\");o.width=i,o.height=r;const n=(0,s.throwIfFalsy)(o.getContext(\"2d\")),a=new ImageData(i,r);let d,_,u,g;if(l.startsWith(\"#\"))d=parseInt(l.slice(1,3),16),_=parseInt(l.slice(3,5),16),u=parseInt(l.slice(5,7),16),g=l.length>7&&parseInt(l.slice(7,9),16)||1;else{if(!l.startsWith(\"rgba\"))throw new Error(`Unexpected fillStyle color format \"${l}\" when drawing pattern glyph`);[d,_,u,g]=l.substring(5,l.length-1).split(\",\").map((e=>parseFloat(e)))}for(let e=0;e<r;e++)for(let s=0;s<i;s++)a.data[4*(e*i+s)]=d,a.data[4*(e*i+s)+1]=_,a.data[4*(e*i+s)+2]=u,a.data[4*(e*i+s)+3]=t[e][s]*(255*g);n.putImageData(a,0,0),c=(0,s.throwIfFalsy)(e.createPattern(o,null)),h.set(l,c)}e.fillStyle=c,e.fillRect(i,r,n,a)}(e,v,n,l,c,d),!0;const f=t.boxDrawingDefinitions[i];if(f)return function(e,t,i,s,r,o,n){e.strokeStyle=e.fillStyle;for(const[l,c]of Object.entries(t)){let t;e.beginPath(),e.lineWidth=n*Number.parseInt(l),t=\"function\"==typeof c?c(.15,.15/o*r):c;for(const l of t.split(\" \")){const t=l[0],c=a[t];if(!c){console.error(`Could not find drawing instructions for \"${t}\"`);continue}const d=l.substring(1).split(\",\");d[0]&&d[1]&&c(e,h(d,r,o,i,s,!0,n))}e.stroke(),e.closePath()}}(e,f,n,l,c,d,u),!0;const p=t.powerlineDefinitions[i];return!!p&&(function(e,t,i,s,r,o,n,l){var c,d;const _=new Path2D;_.rect(i,s,r,o),e.clip(_),e.beginPath();const u=n/12;e.lineWidth=l*u;for(const n of t.d.split(\" \")){const _=n[0],g=a[_];if(!g){console.error(`Could not find drawing instructions for \"${_}\"`);continue}const v=n.substring(1).split(\",\");v[0]&&v[1]&&g(e,h(v,r,o,i,s,!1,l,(null!==(c=t.leftPadding)&&void 0!==c?c:0)*(u/2),(null!==(d=t.rightPadding)&&void 0!==d?d:0)*(u/2)))}1===t.type?(e.strokeStyle=e.fillStyle,e.stroke()):e.fill(),e.closePath()}(e,p,n,l,c,d,_,u),!0)};const o=new Map;function n(e,t,i=0){return Math.max(Math.min(e,t),i)}const a={C:(e,t)=>e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]),L:(e,t)=>e.lineTo(t[0],t[1]),M:(e,t)=>e.moveTo(t[0],t[1])};function h(e,t,i,s,r,o,a,h=0,l=0){const c=e.map((e=>parseFloat(e)||parseInt(e)));if(c.length<2)throw new Error(\"Too few arguments for instruction\");for(let e=0;e<c.length;e+=2)c[e]*=t-h*a-l*a,o&&0!==c[e]&&(c[e]=n(Math.round(c[e]+.5)-.5,t,0)),c[e]+=s+h*a;for(let e=1;e<c.length;e+=2)c[e]*=i,o&&0!==c[e]&&(c[e]=n(Math.round(c[e]+.5)-.5,i,0)),c[e]+=r;return c}},56:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.observeDevicePixelDimensions=void 0;const s=i(859);t.observeDevicePixelDimensions=function(e,t,i){let r=new t.ResizeObserver((t=>{const s=t.find((t=>t.target===e));if(!s)return;if(!(\"devicePixelContentBoxSize\"in s))return null==r||r.disconnect(),void(r=void 0);const o=s.devicePixelContentBoxSize[0].inlineSize,n=s.devicePixelContentBoxSize[0].blockSize;o>0&&n>0&&i(o,n)}));try{r.observe(e,{box:[\"device-pixel-content-box\"]})}catch(e){r.disconnect(),r=void 0}return(0,s.toDisposable)((()=>null==r?void 0:r.disconnect()))}},374:(e,t)=>{function i(e){return 57508<=e&&e<=57558}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createRenderDimensions=t.excludeFromContrastRatioDemands=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error(\"value must not be falsy\");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.excludeFromContrastRatioDemands=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}}},296:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=t[1]-e.buffer.active.viewportY,o=i[1]-e.buffer.active.viewportY,n=Math.max(r,0),a=Math.min(o,e.rows-1);n>=e.rows||a<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=r,this.viewportEndRow=o,this.viewportCappedStartRow=n,this.viewportCappedEndRow=a,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t<this.endCol&&i<=this.viewportCappedEndRow:t<this.startCol&&i>=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&i===this.viewportStartRow&&t>=this.startCol&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportEndRow&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportStartRow&&t>=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},509:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,o=arguments.length,n=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(n=(o<3?r(n):o>3?r(t,i,n):r(t,i))||n);return o>3&&n&&Object.defineProperty(t,i,n),n};Object.defineProperty(t,\"__esModule\",{value:!0}),t.TextureAtlas=void 0;const r=i(237),o=i(860),n=i(374),a=i(160),h=i(345),l=i(485),c=i(385),d=i(147),_=i(855),u=i(776),g={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}};let v;class f{get pages(){return this._pages}constructor(e,t,i){this._document=e,this._config=t,this._unicodeService=i,this._didWarmUp=!1,this._cacheMap=new l.FourKeyMap,this._cacheMapCombined=new l.FourKeyMap,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new d.AttributeData,this._textureSize=512,this._onAddTextureAtlasCanvas=new h.EventEmitter,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new h.EventEmitter,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=m(e,4*this._config.deviceCellWidth+4,this._config.deviceCellHeight+4),this._tmpCtx=(0,n.throwIfFalsy)(this._tmpCanvas.getContext(\"2d\",{alpha:this._config.allowTransparency,willReadFrequently:!0}))}dispose(){for(const e of this.pages)e.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)}_doWarmUp(){const e=new c.IdleTaskQueue;for(let t=33;t<126;t++)e.enqueue((()=>{if(!this._cacheMap.get(t,_.DEFAULT_COLOR,_.DEFAULT_COLOR,_.DEFAULT_EXT)){const e=this._drawToCache(t,_.DEFAULT_COLOR,_.DEFAULT_COLOR,_.DEFAULT_EXT);this._cacheMap.set(t,_.DEFAULT_COLOR,_.DEFAULT_COLOR,_.DEFAULT_EXT,e)}}))}beginFrame(){return this._requestClearModel}clearTexture(){if(0!==this._pages[0].currentRow.x||0!==this._pages[0].currentRow.y){for(const e of this._pages)e.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(f.maxAtlasPages&&this._pages.length>=Math.max(4,f.maxAtlasPages)){const e=this._pages.filter((e=>2*e.canvas.width<=(f.maxTextureSize||4096))).sort(((e,t)=>t.canvas.width!==e.canvas.width?t.canvas.width-e.canvas.width:t.percentageUsed-e.percentageUsed));let t=-1,i=0;for(let s=0;s<e.length;s++)if(e[s].canvas.width!==i)t=s,i=e[s].canvas.width;else if(s-t==3)break;const s=e.slice(t,t+4),r=s.map((e=>e.glyphs[0].texturePage)).sort(((e,t)=>e>t?1:-1)),o=this.pages.length-s.length,n=this._mergePages(s,o);n.version++;for(let e=r.length-1;e>=0;e--)this._deletePage(r[e]);this.pages.push(n),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(n.canvas)}const e=new p(this._document,this._textureSize);return this._pages.push(e),this._activePages.push(e),this._onAddTextureAtlasCanvas.fire(e.canvas),e}_mergePages(e,t){const i=2*e[0].canvas.width,s=new p(this._document,i,e);for(const[r,o]of e.entries()){const e=r*o.canvas.width%i,n=Math.floor(r/2)*o.canvas.height;s.ctx.drawImage(o.canvas,e,n);for(const s of o.glyphs)s.texturePage=t,s.sizeClipSpace.x=s.size.x/i,s.sizeClipSpace.y=s.size.y/i,s.texturePosition.x+=e,s.texturePosition.y+=n,s.texturePositionClipSpace.x=s.texturePosition.x/i,s.texturePositionClipSpace.y=s.texturePosition.y/i;this._onRemoveTextureAtlasCanvas.fire(o.canvas);const a=this._activePages.indexOf(o);-1!==a&&this._activePages.splice(a,1)}return s}_deletePage(e){this._pages.splice(e,1);for(let t=e;t<this._pages.length;t++){const e=this._pages[t];for(const t of e.glyphs)t.texturePage--;e.version++}}getRasterizedGlyphCombinedChar(e,t,i,s,r){return this._getFromCacheMap(this._cacheMapCombined,e,t,i,s,r)}getRasterizedGlyph(e,t,i,s,r){return this._getFromCacheMap(this._cacheMap,e,t,i,s,r)}_getFromCacheMap(e,t,i,s,r,o=!1){return v=e.get(t,i,s,r),v||(v=this._drawToCache(t,i,s,r,o),e.set(t,i,s,r,v)),v}_getColorFromAnsiIndex(e){if(e>=this._config.colors.ansi.length)throw new Error(\"No color found for idx \"+e);return this._config.colors.ansi[e]}_getBackgroundColor(e,t,i,s){if(this._config.allowTransparency)return a.NULL_COLOR;let r;switch(e){case 16777216:case 33554432:r=this._getColorFromAnsiIndex(t);break;case 50331648:const e=d.AttributeData.toColorRGB(t);r=a.rgba.toColor(e[0],e[1],e[2]);break;default:r=i?a.color.opaque(this._config.colors.foreground):this._config.colors.background}return r}_getForegroundColor(e,t,i,s,o,n,h,l,c,_){const u=this._getMinimumContrastColor(e,t,i,s,o,n,!1,c,l,_);if(u)return u;let g;switch(o){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&c&&n<8&&(n+=8),g=this._getColorFromAnsiIndex(n);break;case 50331648:const e=d.AttributeData.toColorRGB(n);g=a.rgba.toColor(e[0],e[1],e[2]);break;default:g=h?this._config.colors.background:this._config.colors.foreground}return this._config.allowTransparency&&(g=a.color.opaque(g)),l&&(g=a.color.multiplyOpacity(g,r.DIM_OPACITY)),g}_resolveBackgroundRgba(e,t,i){switch(e){case 16777216:case 33554432:return this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return i?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(e,t,i,s){switch(e){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&s&&t<8&&(t+=8),this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return i?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(e,t,i,s,r,o,n,h,l,c){if(1===this._config.minimumContrastRatio||c)return;const d=this._getContrastCache(l),_=d.getColor(e,s);if(void 0!==_)return _||void 0;const u=this._resolveBackgroundRgba(t,i,n),g=this._resolveForegroundRgba(r,o,n,h),v=a.rgba.ensureContrastRatio(u,g,this._config.minimumContrastRatio/(l?2:1));if(!v)return void d.setColor(e,s,null);const f=a.rgba.toColor(v>>24&255,v>>16&255,v>>8&255);return d.setColor(e,s,f),f}_getContrastCache(e){return e?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(e,t,i,s,a=!1){const h=\"number\"==typeof e?String.fromCharCode(e):e,l=Math.min(this._config.deviceCellWidth*Math.max(h.length,2)+4,this._textureSize);this._tmpCanvas.width<l&&(this._tmpCanvas.width=l);const c=Math.min(this._config.deviceCellHeight+8,this._textureSize);if(this._tmpCanvas.height<c&&(this._tmpCanvas.height=c),this._tmpCtx.save(),this._workAttributeData.fg=i,this._workAttributeData.bg=t,this._workAttributeData.extended.ext=s,this._workAttributeData.isInvisible())return g;const _=!!this._workAttributeData.isBold(),u=!!this._workAttributeData.isInverse(),v=!!this._workAttributeData.isDim(),p=!!this._workAttributeData.isItalic(),m=!!this._workAttributeData.isUnderline(),L=!!this._workAttributeData.isStrikethrough(),x=!!this._workAttributeData.isOverline();let w=this._workAttributeData.getFgColor(),b=this._workAttributeData.getFgColorMode(),R=this._workAttributeData.getBgColor(),M=this._workAttributeData.getBgColorMode();if(u){const e=w;w=R,R=e;const t=b;b=M,M=t}const y=this._getBackgroundColor(M,R,u,v);this._tmpCtx.globalCompositeOperation=\"copy\",this._tmpCtx.fillStyle=y.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.globalCompositeOperation=\"source-over\";const A=_?this._config.fontWeightBold:this._config.fontWeight,E=p?\"italic\":\"\";this._tmpCtx.font=`${E} ${A} ${this._config.fontSize*this._config.devicePixelRatio}px ${this._config.fontFamily}`,this._tmpCtx.textBaseline=r.TEXT_BASELINE;const S=1===h.length&&(0,n.isPowerlineGlyph)(h.charCodeAt(0)),T=1===h.length&&(0,n.isRestrictedPowerlineGlyph)(h.charCodeAt(0)),D=this._getForegroundColor(t,M,R,i,b,w,u,v,_,(0,n.excludeFromContrastRatioDemands)(h.charCodeAt(0)));this._tmpCtx.fillStyle=D.css;const P=T?0:4;let F=!1;!1!==this._config.customGlyphs&&(F=(0,o.tryDrawCustomChar)(this._tmpCtx,h,P,P,this._config.deviceCellWidth,this._config.deviceCellHeight,this._config.fontSize,this._config.devicePixelRatio));let B,I=!S;if(B=\"number\"==typeof e?this._unicodeService.wcwidth(e):this._unicodeService.getStringCellWidth(e),m){this._tmpCtx.save();const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),t=e%2==1?.5:0;if(this._tmpCtx.lineWidth=e,this._workAttributeData.isUnderlineColorDefault())this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle;else if(this._workAttributeData.isUnderlineColorRGB())I=!1,this._tmpCtx.strokeStyle=`rgb(${d.AttributeData.toColorRGB(this._workAttributeData.getUnderlineColor()).join(\",\")})`;else{I=!1;let e=this._workAttributeData.getUnderlineColor();this._config.drawBoldTextInBrightColors&&this._workAttributeData.isBold()&&e<8&&(e+=8),this._tmpCtx.strokeStyle=this._getColorFromAnsiIndex(e).css}this._tmpCtx.beginPath();const i=P,s=Math.ceil(P+this._config.deviceCharHeight)-t-(a?2*e:0),r=s+e,o=s+2*e;for(let n=0;n<B;n++){this._tmpCtx.save();const a=i+n*this._config.deviceCellWidth,h=i+(n+1)*this._config.deviceCellWidth,l=a+this._config.deviceCellWidth/2;switch(this._workAttributeData.extended.underlineStyle){case 2:this._tmpCtx.moveTo(a,s),this._tmpCtx.lineTo(h,s),this._tmpCtx.moveTo(a,o),this._tmpCtx.lineTo(h,o);break;case 3:const i=e<=1?o:Math.ceil(P+this._config.deviceCharHeight-e/2)-t,n=e<=1?s:Math.ceil(P+this._config.deviceCharHeight+e/2)-t,c=new Path2D;c.rect(a,s,this._config.deviceCellWidth,o-s),this._tmpCtx.clip(c),this._tmpCtx.moveTo(a-this._config.deviceCellWidth/2,r),this._tmpCtx.bezierCurveTo(a-this._config.deviceCellWidth/2,n,a,n,a,r),this._tmpCtx.bezierCurveTo(a,i,l,i,l,r),this._tmpCtx.bezierCurveTo(l,n,h,n,h,r),this._tmpCtx.bezierCurveTo(h,i,h+this._config.deviceCellWidth/2,i,h+this._config.deviceCellWidth/2,r);break;case 4:this._tmpCtx.setLineDash([Math.round(e),Math.round(e)]),this._tmpCtx.moveTo(a,s),this._tmpCtx.lineTo(h,s);break;case 5:this._tmpCtx.setLineDash([4*this._config.devicePixelRatio,3*this._config.devicePixelRatio]),this._tmpCtx.moveTo(a,s),this._tmpCtx.lineTo(h,s);break;default:this._tmpCtx.moveTo(a,s),this._tmpCtx.lineTo(h,s)}this._tmpCtx.stroke(),this._tmpCtx.restore()}if(this._tmpCtx.restore(),!F&&this._config.fontSize>=12&&!this._config.allowTransparency&&\" \"!==h){this._tmpCtx.save(),this._tmpCtx.textBaseline=\"alphabetic\";const t=this._tmpCtx.measureText(h);if(this._tmpCtx.restore(),\"actualBoundingBoxDescent\"in t&&t.actualBoundingBoxDescent>0){this._tmpCtx.save();const t=new Path2D;t.rect(i,s-Math.ceil(e/2),this._config.deviceCellWidth*B,o-s+Math.ceil(e/2)),this._tmpCtx.clip(t),this._tmpCtx.lineWidth=3*this._config.devicePixelRatio,this._tmpCtx.strokeStyle=y.css,this._tmpCtx.strokeText(h,P,P+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if(x){const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),t=e%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(P,P+t),this._tmpCtx.lineTo(P+this._config.deviceCharWidth*B,P+t),this._tmpCtx.stroke()}if(F||this._tmpCtx.fillText(h,P,P+this._config.deviceCharHeight),\"_\"===h&&!this._config.allowTransparency){let e=C(this._tmpCtx.getImageData(P,P,this._config.deviceCellWidth,this._config.deviceCellHeight),y,D,I);if(e)for(let t=1;t<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=y.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(h,P,P+this._config.deviceCharHeight-t),e=C(this._tmpCtx.getImageData(P,P,this._config.deviceCellWidth,this._config.deviceCellHeight),y,D,I),e);t++);}if(L){const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),t=this._tmpCtx.lineWidth%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(P,P+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.lineTo(P+this._config.deviceCharWidth*B,P+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.stroke()}this._tmpCtx.restore();const O=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height);let $;if($=this._config.allowTransparency?function(e){for(let t=0;t<e.data.length;t+=4)if(e.data[t+3]>0)return!1;return!0}(O):C(O,y,D,I),$)return g;const k=this._findGlyphBoundingBox(O,this._workBoundingBox,l,T,F,P);let U,N;for(;;){if(0===this._activePages.length){const e=this._createNewPage();U=e,N=e.currentRow,N.height=k.size.y;break}U=this._activePages[this._activePages.length-1],N=U.currentRow;for(const e of this._activePages)k.size.y<=e.currentRow.height&&(U=e,N=e.currentRow);for(let e=this._activePages.length-1;e>=0;e--)for(const t of this._activePages[e].fixedRows)t.height<=N.height&&k.size.y<=t.height&&(U=this._activePages[e],N=t);if(N.y+k.size.y>=U.canvas.height||N.height>k.size.y+2){let e=!1;if(U.currentRow.y+U.currentRow.height+k.size.y>=U.canvas.height){let t;for(const e of this._activePages)if(e.currentRow.y+e.currentRow.height+k.size.y<e.canvas.height){t=e;break}if(t)U=t;else if(f.maxAtlasPages&&this._pages.length>=f.maxAtlasPages&&N.y+k.size.y<=U.canvas.height&&N.height>=k.size.y&&N.x+k.size.x<=U.canvas.width)e=!0;else{const t=this._createNewPage();U=t,N=t.currentRow,N.height=k.size.y,e=!0}}e||(U.currentRow.height>0&&U.fixedRows.push(U.currentRow),N={x:0,y:U.currentRow.y+U.currentRow.height,height:k.size.y},U.fixedRows.push(N),U.currentRow={x:0,y:N.y+N.height,height:0})}if(N.x+k.size.x<=U.canvas.width)break;N===U.currentRow?(N.x=0,N.y+=N.height,N.height=0):U.fixedRows.splice(U.fixedRows.indexOf(N),1)}return k.texturePage=this._pages.indexOf(U),k.texturePosition.x=N.x,k.texturePosition.y=N.y,k.texturePositionClipSpace.x=N.x/U.canvas.width,k.texturePositionClipSpace.y=N.y/U.canvas.height,k.sizeClipSpace.x/=U.canvas.width,k.sizeClipSpace.y/=U.canvas.height,N.height=Math.max(N.height,k.size.y),N.x+=k.size.x,U.ctx.putImageData(O,k.texturePosition.x-this._workBoundingBox.left,k.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,k.size.x,k.size.y),U.addGlyph(k),U.version++,k}_findGlyphBoundingBox(e,t,i,s,r,o){t.top=0;const n=s?this._config.deviceCellHeight:this._tmpCanvas.height,a=s?this._config.deviceCellWidth:i;let h=!1;for(let i=0;i<n;i++){for(let s=0;s<a;s++){const r=i*this._tmpCanvas.width*4+4*s+3;if(0!==e.data[r]){t.top=i,h=!0;break}}if(h)break}t.left=0,h=!1;for(let i=0;i<o+a;i++){for(let s=0;s<n;s++){const r=s*this._tmpCanvas.width*4+4*i+3;if(0!==e.data[r]){t.left=i,h=!0;break}}if(h)break}t.right=a,h=!1;for(let i=o+a-1;i>=o;i--){for(let s=0;s<n;s++){const r=s*this._tmpCanvas.width*4+4*i+3;if(0!==e.data[r]){t.right=i,h=!0;break}}if(h)break}t.bottom=n,h=!1;for(let i=n-1;i>=0;i--){for(let s=0;s<a;s++){const r=i*this._tmpCanvas.width*4+4*s+3;if(0!==e.data[r]){t.bottom=i,h=!0;break}}if(h)break}return{texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},size:{x:t.right-t.left+1,y:t.bottom-t.top+1},sizeClipSpace:{x:t.right-t.left+1,y:t.bottom-t.top+1},offset:{x:-t.left+o+(s||r?Math.floor((this._config.deviceCellWidth-this._config.deviceCharWidth)/2):0),y:-t.top+o+(s||r?1===this._config.lineHeight?0:Math.round((this._config.deviceCellHeight-this._config.deviceCharHeight)/2):0)}}}}t.TextureAtlas=f,s([u.traceCall],f.prototype,\"_drawToCache\",null);class p{get percentageUsed(){return this._usedPixels/(this.canvas.width*this.canvas.height)}get glyphs(){return this._glyphs}addGlyph(e){this._glyphs.push(e),this._usedPixels+=e.size.x*e.size.y}constructor(e,t,i){if(this._usedPixels=0,this._glyphs=[],this.version=0,this.currentRow={x:0,y:0,height:0},this.fixedRows=[],i)for(const e of i)this._glyphs.push(...e.glyphs),this._usedPixels+=e._usedPixels;this.canvas=m(e,t,t),this.ctx=(0,n.throwIfFalsy)(this.canvas.getContext(\"2d\",{alpha:!0}))}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.currentRow.x=0,this.currentRow.y=0,this.currentRow.height=0,this.fixedRows.length=0,this.version++}}function C(e,t,i,s){const r=t.rgba>>>24,o=t.rgba>>>16&255,n=t.rgba>>>8&255,a=i.rgba>>>24,h=i.rgba>>>16&255,l=i.rgba>>>8&255,c=Math.floor((Math.abs(r-a)+Math.abs(o-h)+Math.abs(n-l))/12);let d=!0;for(let t=0;t<e.data.length;t+=4)e.data[t]===r&&e.data[t+1]===o&&e.data[t+2]===n||s&&Math.abs(e.data[t]-r)+Math.abs(e.data[t+1]-o)+Math.abs(e.data[t+2]-n)<c?e.data[t+3]=0:d=!1;return d}function m(e,t,i){const s=e.createElement(\"canvas\");return s.width=t,s.height=i,s}},160:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;const s=i(399);let r=0,o=0,n=0,a=0;var h,l,c,d,_;function u(e){const t=e.toString(16);return t.length<2?\"0\"+t:t}function g(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}t.NULL_COLOR={css:\"#00000000\",rgba:0},function(e){e.toCss=function(e,t,i,s){return void 0!==s?`#${u(e)}${u(t)}${u(i)}${u(s)}`:`#${u(e)}${u(t)}${u(i)}`},e.toRgba=function(e,t,i,s=255){return(e<<24|t<<16|i<<8|s)>>>0}}(h||(t.channels=h={})),function(e){function t(e,t){return a=Math.round(255*t),[r,o,n]=_.toChannels(e.rgba),{css:h.toCss(r,o,n,a),rgba:h.toRgba(r,o,n,a)}}e.blend=function(e,t){if(a=(255&t.rgba)/255,1===a)return{css:t.css,rgba:t.rgba};const i=t.rgba>>24&255,s=t.rgba>>16&255,l=t.rgba>>8&255,c=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return r=c+Math.round((i-c)*a),o=d+Math.round((s-d)*a),n=_+Math.round((l-_)*a),{css:h.toCss(r,o,n),rgba:h.toRgba(r,o,n)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=_.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return _.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[r,o,n]=_.toChannels(t),{css:h.toCss(r,o,n),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return a=255&e.rgba,t(e,a*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(l||(t.color=l={})),function(e){let t,i;if(!s.isNode){const e=document.createElement(\"canvas\");e.width=1,e.height=1;const s=e.getContext(\"2d\",{willReadFrequently:!0});s&&(t=s,t.globalCompositeOperation=\"copy\",i=t.createLinearGradient(0,0,1,1))}e.toColor=function(e){if(e.match(/#[\\da-f]{3,8}/i))switch(e.length){case 4:return r=parseInt(e.slice(1,2).repeat(2),16),o=parseInt(e.slice(2,3).repeat(2),16),n=parseInt(e.slice(3,4).repeat(2),16),_.toColor(r,o,n);case 5:return r=parseInt(e.slice(1,2).repeat(2),16),o=parseInt(e.slice(2,3).repeat(2),16),n=parseInt(e.slice(3,4).repeat(2),16),a=parseInt(e.slice(4,5).repeat(2),16),_.toColor(r,o,n,a);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const s=e.match(/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(,\\s*(0|1|\\d?\\.(\\d+))\\s*)?\\)/);if(s)return r=parseInt(s[1]),o=parseInt(s[2]),n=parseInt(s[3]),a=Math.round(255*(void 0===s[5]?1:parseFloat(s[5]))),_.toColor(r,o,n,a);if(!t||!i)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillStyle=i,t.fillStyle=e,\"string\"!=typeof t.fillStyle)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillRect(0,0,1,1),[r,o,n,a]=t.getImageData(0,0,1,1).data,255!==a)throw new Error(\"css.toColor: Unsupported css format\");return{rgba:h.toRgba(r,o,n,a),css:e}}}(c||(t.css=c={})),function(e){function t(e,t,i){const s=e/255,r=t/255,o=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(d||(t.rgb=d={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,o=e>>8&255;let n=t>>24&255,a=t>>16&255,h=t>>8&255,l=g(d.relativeLuminance2(n,a,h),d.relativeLuminance2(s,r,o));for(;l<i&&(n>0||a>0||h>0);)n-=Math.max(0,Math.ceil(.1*n)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),l=g(d.relativeLuminance2(n,a,h),d.relativeLuminance2(s,r,o));return(n<<24|a<<16|h<<8|255)>>>0}function i(e,t,i){const s=e>>24&255,r=e>>16&255,o=e>>8&255;let n=t>>24&255,a=t>>16&255,h=t>>8&255,l=g(d.relativeLuminance2(n,a,h),d.relativeLuminance2(s,r,o));for(;l<i&&(n<255||a<255||h<255);)n=Math.min(255,n+Math.ceil(.1*(255-n))),a=Math.min(255,a+Math.ceil(.1*(255-a))),h=Math.min(255,h+Math.ceil(.1*(255-h))),l=g(d.relativeLuminance2(n,a,h),d.relativeLuminance2(s,r,o));return(n<<24|a<<16|h<<8|255)>>>0}e.ensureContrastRatio=function(e,s,r){const o=d.relativeLuminance(e>>8),n=d.relativeLuminance(s>>8);if(g(o,n)<r){if(n<o){const n=t(e,s,r),a=g(o,d.relativeLuminance(n>>8));if(a<r){const t=i(e,s,r);return a>g(o,d.relativeLuminance(t>>8))?n:t}return n}const a=i(e,s,r),h=g(o,d.relativeLuminance(a>>8));if(h<r){const i=t(e,s,r);return h>g(o,d.relativeLuminance(i>>8))?a:i}return a}},e.reduceLuminance=t,e.increaseLuminance=i,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},e.toColor=function(e,t,i,s){return{css:h.toCss(e,t,i,s),rgba:h.toRgba(e,t,i,s)}}}(_||(t.rgba=_={})),t.toPaddedHex=u,t.contrastRatio=g},345:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let e=0;e<this._listeners.length;e++)i.push(this._listeners[e]);for(let s=0;s<i.length;s++)i[s].call(void 0,e,t)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))}},859:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||(null===(t=this._value)||void 0===t||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,null===(e=this._value)||void 0===e||e.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},485:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,o){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,o)}get(e,t,i,s){var r;return null===(r=this._data.get(e,t))||void 0===r?void 0:r.get(i,s)}clear(){this._data.clear()}}},399:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=\"undefined\"==typeof navigator;const i=t.isNode?\"node\":navigator.userAgent,s=t.isNode?\"node\":navigator.platform;t.isFirefox=i.includes(\"Firefox\"),t.isLegacyEdge=i.includes(\"Edge\"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\\/(\\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=[\"Macintosh\",\"MacIntel\",\"MacPPC\",\"Mac68K\"].includes(s),t.isIpad=\"iPad\"===s,t.isIphone=\"iPhone\"===s,t.isWindows=[\"Windows\",\"Win16\",\"Win32\",\"WinCE\"].includes(s),t.isLinux=s.indexOf(\"Linux\")>=0,t.isChromeOS=/\\bCrOS\\b/.test(i)},385:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(399);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,i=0,s=e.timeRemaining(),r=0;for(;this._i<this._tasks.length;){if(t=Date.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,Date.now()-t),i=Math.max(t,i),r=e.timeRemaining(),1.5*i>r)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class o extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=o,t.IdleTaskQueue=!s.isNode&&\"requestIdleCallback\"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:o,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},147:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},782:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CellData=void 0;const s=i(133),r=i(855),o=i(147);class n extends o.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new o.ExtendedAttrs,this.combinedData=\"\"}static fromCharData(e){const t=new n;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):\"\"}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=n},855:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR=\"\",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=\" \",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},133:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s=\"\";for(let r=t;r<i;++r){let t=e[r];t>65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let o=r;o<i;++o){const r=e.charCodeAt(o);if(55296<=r&&r<=56319){if(++o>=i)return this._interim=r,s;const n=e.charCodeAt(o);56320<=n&&n<=57343?t[s++]=1024*(r-55296)+n-56320+65536:(t[s++]=r,t[s++]=n)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,o,n,a=0,h=0,l=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let o,n=0;for(;(o=63&this.interim[++n])&&n<4;)r<<=6,r|=o;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,c=h-n;for(;l<c;){if(l>=i)return 0;if(o=e[l++],128!=(192&o)){l--,s=!0;break}this.interim[n++]=o,r<<=6,r|=63&o}s||(2===h?r<128?l--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const c=i-4;let d=l;for(;d<i;){for(;!(!(d<c)||128&(s=e[d])||128&(r=e[d+1])||128&(o=e[d+2])||128&(n=e[d+3]));)t[a++]=s,t[a++]=r,t[a++]=o,t[a++]=n,d+=4;if(s=e[d++],s<128)t[a++]=s;else if(192==(224&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&o,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(o=e[d++],128!=(192&o)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=o,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&o)<<6|63&n,h<65536||h>1114111)continue;t[a++]=h}}return a}}},776:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,o=arguments.length,n=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(n=(o<3?r(n):o>3?r(t,i,n):r(t,i))||n);return o>3&&n&&Object.defineProperty(t,i,n),n},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const o=i(859),n=i(97),a={trace:n.LogLevelEnum.TRACE,debug:n.LogLevelEnum.DEBUG,info:n.LogLevelEnum.INFO,warn:n.LogLevelEnum.WARN,error:n.LogLevelEnum.ERROR,off:n.LogLevelEnum.OFF};let h,l=t.LogService=class extends o.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=n.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange(\"logLevel\",(()=>this._updateLogLevel()))),h=this}_updateLogLevel(){this._logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)\"function\"==typeof e[t]&&(e[t]=e[t]())}_log(e,t,i){this._evalLazyOptionalParams(i),e.call(console,(this._optionsService.options.logger?\"\":\"xterm.js: \")+t,...i)}trace(e,...t){var i,s;this._logLevel<=n.LogLevelEnum.TRACE&&this._log(null!==(s=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.trace.bind(this._optionsService.options.logger))&&void 0!==s?s:console.log,e,t)}debug(e,...t){var i,s;this._logLevel<=n.LogLevelEnum.DEBUG&&this._log(null!==(s=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.debug.bind(this._optionsService.options.logger))&&void 0!==s?s:console.log,e,t)}info(e,...t){var i,s;this._logLevel<=n.LogLevelEnum.INFO&&this._log(null!==(s=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.info.bind(this._optionsService.options.logger))&&void 0!==s?s:console.info,e,t)}warn(e,...t){var i,s;this._logLevel<=n.LogLevelEnum.WARN&&this._log(null!==(s=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.warn.bind(this._optionsService.options.logger))&&void 0!==s?s:console.warn,e,t)}error(e,...t){var i,s;this._logLevel<=n.LogLevelEnum.ERROR&&this._log(null!==(s=null===(i=this._optionsService.options.logger)||void 0===i?void 0:i.error.bind(this._optionsService.options.logger))&&void 0!==s?s:console.error,e,t)}};t.LogService=l=s([r(0,n.IOptionsService)],l),t.setTraceLogger=function(e){h=e},t.traceCall=function(e,t,i){if(\"function\"!=typeof i.value)throw new Error(\"not supported\");const s=i.value;i.value=function(...e){if(h.logLevel!==n.LogLevelEnum.TRACE)return s.apply(this,e);h.trace(`GlyphRenderer#${s.name}(${e.map((e=>JSON.stringify(e))).join(\", \")})`);const t=s.apply(this,e);return h.trace(`GlyphRenderer#${s.name} return`,t),t}}},726:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i=\"di$target\",s=\"di$dependencies\";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,o){if(3!==arguments.length)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,o)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},97:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(726);var r;t.IBufferService=(0,s.createDecorator)(\"BufferService\"),t.ICoreMouseService=(0,s.createDecorator)(\"CoreMouseService\"),t.ICoreService=(0,s.createDecorator)(\"CoreService\"),t.ICharsetService=(0,s.createDecorator)(\"CharsetService\"),t.IInstantiationService=(0,s.createDecorator)(\"InstantiationService\"),function(e){e[e.TRACE=0]=\"TRACE\",e[e.DEBUG=1]=\"DEBUG\",e[e.INFO=2]=\"INFO\",e[e.WARN=3]=\"WARN\",e[e.ERROR=4]=\"ERROR\",e[e.OFF=5]=\"OFF\"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)(\"LogService\"),t.IOptionsService=(0,s.createDecorator)(\"OptionsService\"),t.IOscLinkService=(0,s.createDecorator)(\"OscLinkService\"),t.IUnicodeService=(0,s.createDecorator)(\"UnicodeService\"),t.IDecorationService=(0,s.createDecorator)(\"DecorationService\")}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var o=t[s]={exports:{}};return e[s].call(o.exports,o,o.exports,i),o.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,\"__esModule\",{value:!0}),e.WebglAddon=void 0;const t=i(345),r=i(859),o=i(399),n=i(666),a=i(776);class h extends r.Disposable{constructor(e){if(o.isSafari&&(0,o.getSafariVersion)()<16)throw new Error(\"Webgl2 is only supported on Safari 16 and above\");super(),this._preserveDrawingBuffer=e,this._onChangeTextureAtlas=this.register(new t.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new t.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new t.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onContextLoss=this.register(new t.EventEmitter),this.onContextLoss=this._onContextLoss.event}activate(e){const i=e._core;if(!e.element)return void this.register(i.onWillOpen((()=>this.activate(e))));this._terminal=e;const s=i.coreService,o=i.optionsService,h=i,l=h._renderService,c=h._characterJoinerService,d=h._charSizeService,_=h._coreBrowserService,u=h._decorationService,g=h._logService,v=h._themeService;(0,a.setTraceLogger)(g),this._renderer=this.register(new n.WebglRenderer(e,c,d,_,s,u,o,v,this._preserveDrawingBuffer)),this.register((0,t.forwardEvent)(this._renderer.onContextLoss,this._onContextLoss)),this.register((0,t.forwardEvent)(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this.register((0,t.forwardEvent)(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),this.register((0,t.forwardEvent)(this._renderer.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)),l.setRenderer(this._renderer),this.register((0,r.toDisposable)((()=>{const t=this._terminal._core._renderService;t.setRenderer(this._terminal._core._createRenderer()),t.handleResize(e.cols,e.rows)})))}get textureAtlas(){var e;return null===(e=this._renderer)||void 0===e?void 0:e.textureAtlas}clearTextureAtlas(){var e;null===(e=this._renderer)||void 0===e||e.clearTextureAtlas()}}e.WebglAddon=h})(),s})()));\n//# sourceMappingURL=xterm-addon-webgl.js.map","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var i=t();for(var s in i)(\"object\"==typeof exports?exports:e)[s]=i[s]}}(self,(()=>(()=>{\"use strict\";var e={4567:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.AccessibilityManager=void 0;const n=i(9042),o=i(6114),a=i(9924),h=i(844),c=i(5596),l=i(4725),d=i(3656);let _=class extends h.Disposable{constructor(e,t){super(),this._terminal=e,this._renderService=t,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce=\"\",this._accessibilityContainer=document.createElement(\"div\"),this._accessibilityContainer.classList.add(\"xterm-accessibility\"),this._rowContainer=document.createElement(\"div\"),this._rowContainer.setAttribute(\"role\",\"list\"),this._rowContainer.classList.add(\"xterm-accessibility-tree\"),this._rowElements=[];for(let e=0;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);if(this._topBoundaryFocusListener=e=>this._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=document.createElement(\"div\"),this._liveRegion.classList.add(\"live-region\"),this._liveRegion.setAttribute(\"aria-live\",\"assertive\"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new a.TimeBasedDebouncer(this._announceCharacters.bind(this))),!this._terminal.element)throw new Error(\"Cannot enable accessibility before Terminal.open\");this._terminal.element.insertAdjacentElement(\"afterbegin\",this._accessibilityContainer),this.register(this._liveRegionDebouncer),this.register(this._terminal.onResize((e=>this._handleResize(e.rows)))),this.register(this._terminal.onRender((e=>this._refreshRows(e.start,e.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((e=>this._handleChar(e)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(\"\\n\")))),this.register(this._terminal.onA11yTab((e=>this._handleTab(e)))),this.register(this._terminal.onKey((e=>this._handleKey(e.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this._screenDprMonitor=new c.ScreenDprMonitor(window),this.register(this._screenDprMonitor),this._screenDprMonitor.setListener((()=>this._refreshRowsDimensions())),this.register((0,d.addDisposableDomListener)(window,\"resize\",(()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,h.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(\" \")}_handleChar(e){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,\"\\n\"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=n.tooMuchOutput)),o.isMac&&this._liveRegion.textContent&&this._liveRegion.textContent.length>0&&!this._liveRegion.parentNode&&setTimeout((()=>{this._accessibilityContainer.appendChild(this._liveRegion)}),0))}_clearLiveRegion(){this._liveRegion.textContent=\"\",this._liveRegionLineCount=0,o.isMac&&this._liveRegion.remove()}_handleKey(e){this._clearLiveRegion(),/\\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce=\"\")}_handleBoundaryFocus(e,t){const i=e.target,s=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute(\"aria-posinset\")===(0===t?\"1\":`${this._terminal.buffer.lines.length}`))return;if(e.relatedTarget!==s)return;let r,n;if(0===t?(r=i,n=this._rowElements.pop(),this._rowContainer.removeChild(n)):(r=this._rowElements.shift(),n=i,this._rowContainer.removeChild(r)),r.removeEventListener(\"focus\",this._topBoundaryFocusListener),n.removeEventListener(\"focus\",this._bottomBoundaryFocusListener),0===t){const e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement(\"afterbegin\",e)}else{const e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener(\"focus\",this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=document.createElement(\"div\");return e.setAttribute(\"role\",\"listitem\"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}};_=s([r(1,l.IRenderService)],_),t.AccessibilityManager=_},3614:(e,t)=>{function i(e){return e.replace(/\\r?\\n/g,\"\\r\")}function s(e,t){return t?\"\u001b[200~\"+e+\"\u001b[201~\":e}function r(e,t,r){e=s(e=i(e),r.decPrivateModes.bracketedPasteMode),r.triggerDataEvent(e,!0),t.value=\"\"}function n(e,t,i){const s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width=\"20px\",t.style.height=\"20px\",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex=\"1000\",t.focus()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=i,t.bracketTextForPaste=s,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData(\"text/plain\",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i){e.stopPropagation(),e.clipboardData&&r(e.clipboardData.getData(\"text/plain\"),t,i)},t.paste=r,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,i,s,r){n(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}},7239:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ColorContrastCache=void 0;const s=i(1505);t.ColorContrastCache=class{constructor(){this._color=new s.TwoKeyMap,this._css=new s.TwoKeyMap}setCss(e,t,i){this._css.set(e,t,i)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,i){this._color.set(e,t,i)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}}},3656:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},6465:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Linkifier2=void 0;const n=i(2585),o=i(8460),a=i(844),h=i(3656);let c=class extends a.Disposable{constructor(e){super(),this._bufferService=e,this._linkProviders=[],this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new o.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new o.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,a.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,a.toDisposable)((()=>{this._lastMouseEvent=void 0}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0})))}get currentLink(){return this._currentLink}registerLinkProvider(e){return this._linkProviders.push(e),{dispose:()=>{const t=this._linkProviders.indexOf(e);-1!==t&&this._linkProviders.splice(t,1)}}}attachToDom(e,t,i){this._element=e,this._mouseService=t,this._renderService=i,this.register((0,h.addDisposableDomListener)(this._element,\"mouseleave\",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,h.addDisposableDomListener)(this._element,\"mousemove\",this._handleMouseMove.bind(this))),this.register((0,h.addDisposableDomListener)(this._element,\"mousedown\",this._handleMouseDown.bind(this))),this.register((0,h.addDisposableDomListener)(this._element,\"mouseup\",this._handleMouseUp.bind(this)))}_handleMouseMove(e){if(this._lastMouseEvent=e,!this._element||!this._mouseService)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;const i=e.composedPath();for(let e=0;e<i.length;e++){const t=i[e];if(t.classList.contains(\"xterm\"))break;if(t.classList.contains(\"xterm-hover\"))return}this._lastBufferCell&&t.x===this._lastBufferCell.x&&t.y===this._lastBufferCell.y||(this._handleHover(t),this._lastBufferCell=t)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(e,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,t){var i,s;this._activeProviderReplies&&t||(null===(i=this._activeProviderReplies)||void 0===i||i.forEach((e=>{null==e||e.forEach((e=>{e.link.dispose&&e.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=e.y);let r=!1;for(const[i,n]of this._linkProviders.entries())t?(null===(s=this._activeProviderReplies)||void 0===s?void 0:s.get(i))&&(r=this._checkLinkProviderResult(i,e,r)):n.provideLinks(e.y,(t=>{var s,n;if(this._isMouseOut)return;const o=null==t?void 0:t.map((e=>({link:e})));null===(s=this._activeProviderReplies)||void 0===s||s.set(i,o),r=this._checkLinkProviderResult(i,e,r),(null===(n=this._activeProviderReplies)||void 0===n?void 0:n.size)===this._linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)}))}_removeIntersectingLinks(e,t){const i=new Set;for(let s=0;s<t.size;s++){const r=t.get(s);if(r)for(let t=0;t<r.length;t++){const s=r[t],n=s.link.range.start.y<e?0:s.link.range.start.x,o=s.link.range.end.y>e?this._bufferService.cols:s.link.range.end.x;for(let e=n;e<=o;e++){if(i.has(e)){r.splice(t--,1);break}i.add(e)}}}}_checkLinkProviderResult(e,t,i){var s;if(!this._activeProviderReplies)return i;const r=this._activeProviderReplies.get(e);let n=!1;for(let t=0;t<e;t++)this._activeProviderReplies.has(t)&&!this._activeProviderReplies.get(t)||(n=!0);if(!n&&r){const e=r.find((e=>this._linkAtPosition(e.link,t)));e&&(i=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviders.length&&!i)for(let e=0;e<this._activeProviderReplies.size;e++){const r=null===(s=this._activeProviderReplies.get(e))||void 0===s?void 0:s.find((e=>this._linkAtPosition(e.link,t)));if(r){i=!0,this._handleNewLink(r);break}}return i}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._element||!this._mouseService||!this._currentLink)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){this._element&&this._currentLink&&this._lastMouseEvent&&(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,a.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._element||!this._lastMouseEvent||!this._mouseService)return;const t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>{var e,t;return null===(t=null===(e=this._currentLink)||void 0===e?void 0:e.state)||void 0===t?void 0:t.decorations.pointerCursor},set:e=>{var t,i;(null===(t=this._currentLink)||void 0===t?void 0:t.state)&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&(null===(i=this._element)||void 0===i||i.classList.toggle(\"xterm-cursor-pointer\",e)))}},underline:{get:()=>{var e,t;return null===(t=null===(e=this._currentLink)||void 0===e?void 0:e.state)||void 0===t?void 0:t.decorations.underline},set:t=>{var i,s,r;(null===(i=this._currentLink)||void 0===i?void 0:i.state)&&(null===(r=null===(s=this._currentLink)||void 0===s?void 0:s.state)||void 0===r?void 0:r.decorations.underline)!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._renderService&&this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{if(!this._currentLink)return;const t=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(t,i),this._lastMouseEvent&&this._element)){const e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}}))))}_linkHover(e,t,i){var s;(null===(s=this._currentLink)||void 0===s?void 0:s.state)&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add(\"xterm-cursor-pointer\")),t.hover&&t.hover(i,t.text)}_fireUnderlineEvent(e,t){const i=e.range,s=this._bufferService.buffer.ydisp,r=this._createLinkUnderlineEvent(i.start.x-1,i.start.y-s-1,i.end.x,i.end.y-s-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(r)}_linkLeave(e,t,i){var s;(null===(s=this._currentLink)||void 0===s?void 0:s.state)&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove(\"xterm-cursor-pointer\")),t.leave&&t.leave(i,t.text)}_linkAtPosition(e,t){const i=e.range.start.y*this._bufferService.cols+e.range.start.x,s=e.range.end.y*this._bufferService.cols+e.range.end.x,r=t.y*this._bufferService.cols+t.x;return i<=r&&r<=s}_positionFromMouseEvent(e,t,i){const s=i.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(s)return{x:s[0],y:s[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,i,s,r){return{x1:e,y1:t,x2:i,y2:s,cols:this._bufferService.cols,fg:r}}};c=s([r(0,n.IBufferService)],c),t.Linkifier2=c},9042:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel=\"Terminal input\",t.tooMuchOutput=\"Too much output to announce, navigate to rows manually to read\"},3730:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscLinkProvider=void 0;const n=i(511),o=i(2585);let a=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){var i;const s=this._bufferService.buffer.lines.get(e-1);if(!s)return void t(void 0);const r=[],o=this._optionsService.rawOptions.linkHandler,a=new n.CellData,c=s.getTrimmedLength();let l=-1,d=-1,_=!1;for(let t=0;t<c;t++)if(-1!==d||s.hasContent(t)){if(s.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(-1===d){d=t,l=a.extended.urlId;continue}_=a.extended.urlId!==l}else-1!==d&&(_=!0);if(_||-1!==d&&t===c-1){const s=null===(i=this._oscLinkService.getLinkData(l))||void 0===i?void 0:i.uri;if(s){const i={start:{x:d+1,y:e},end:{x:t+(_||t!==c-1?0:1),y:e}};let n=!1;if(!(null==o?void 0:o.allowNonHttpProtocols))try{const e=new URL(s);[\"http:\",\"https:\"].includes(e.protocol)||(n=!0)}catch(e){n=!0}n||r.push({text:s,range:i,activate:(e,t)=>o?o.activate(e,t,i):h(0,t),hover:(e,t)=>{var s;return null===(s=null==o?void 0:o.hover)||void 0===s?void 0:s.call(o,e,t,i)},leave:(e,t)=>{var s;return null===(s=null==o?void 0:o.leave)||void 0===s?void 0:s.call(o,e,t,i)}})}_=!1,a.hasExtendedAttrs()&&a.extended.urlId?(d=t,l=a.extended.urlId):(d=-1,l=-1)}}t(r)}};function h(e,t){if(confirm(`Do you want to navigate to ${t}?\\n\\nWARNING: This link could potentially be dangerous`)){const e=window.open();if(e){try{e.opener=null}catch(e){}e.location.href=t}else console.warn(\"Opening link blocked as opener could not be cleared\")}}a=s([r(0,o.IBufferService),r(1,o.IOptionsService),r(2,o.IOscLinkService)],a),t.OscLinkProvider=a},6193:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(e,t){this._parentWindow=e,this._renderCallback=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._parentWindow.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}}},5596:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ScreenDprMonitor=void 0;const s=i(844);class r extends s.Disposable{constructor(e){super(),this._parentWindow=e,this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this.register((0,s.toDisposable)((()=>{this.clearListener()})))}setListener(e){this._listener&&this.clearListener(),this._listener=e,this._outerListener=()=>{this._listener&&(this._listener(this._parentWindow.devicePixelRatio,this._currentDevicePixelRatio),this._updateDpr())},this._updateDpr()}_updateDpr(){var e;this._outerListener&&(null===(e=this._resolutionMediaMatchList)||void 0===e||e.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._listener&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._listener=void 0,this._outerListener=void 0)}}t.ScreenDprMonitor=r},3236:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Terminal=void 0;const s=i(2950),r=i(1680),n=i(3614),o=i(2584),a=i(5435),h=i(9312),c=i(6114),l=i(3656),d=i(9042),_=i(4567),u=i(1296),f=i(7399),v=i(8460),g=i(8437),p=i(3230),S=i(4725),m=i(428),C=i(8934),b=i(6465),y=i(5114),w=i(8969),E=i(8055),L=i(4269),k=i(5941),R=i(3107),D=i(5744),A=i(9074),x=i(2585),B=i(3730),T=i(844),M=i(6731),O=\"undefined\"!=typeof window?window.document:null;class I extends w.CoreTerminal{constructor(e={}){super(e),this.browser=c,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._onCursorMove=this.register(new v.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new v.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new v.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new v.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new v.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new v.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new v.EventEmitter),this._onBlur=this.register(new v.EventEmitter),this._onA11yCharEmitter=this.register(new v.EventEmitter),this._onA11yTabEmitter=this.register(new v.EventEmitter),this._onWillOpen=this.register(new v.EventEmitter),this._setup(),this.linkifier2=this.register(this._instantiationService.createInstance(b.Linkifier2)),this.linkifier2.registerLinkProvider(this._instantiationService.createInstance(B.OscLinkProvider)),this._decorationService=this._instantiationService.createInstance(A.DecorationService),this._instantiationService.setService(x.IDecorationService,this._decorationService),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((e,t)=>this.refresh(e,t)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((e=>this._reportWindowsOptions(e)))),this.register(this._inputHandler.onColor((e=>this._handleColorEvent(e)))),this.register((0,v.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,v.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,v.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,v.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((e=>this._afterResize(e.cols,e.rows)))),this.register((0,T.toDisposable)((()=>{var e,t;this._customKeyEventHandler=void 0,null===(t=null===(e=this.element)||void 0===e?void 0:e.parentNode)||void 0===t||t.removeChild(this.element)})))}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}_handleColorEvent(e){if(this._themeService)for(const t of e){let e,i=\"\";switch(t.index){case 256:e=\"foreground\",i=\"10\";break;case 257:e=\"background\",i=\"11\";break;case 258:e=\"cursor\",i=\"12\";break;default:e=\"ansi\",i=\"4;\"+t.index}switch(t.type){case 0:const s=E.color.toColorRGB(\"ansi\"===e?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${o.C0.ESC}]${i};${(0,k.toRgbString)(s)}${o.C1_ESCAPED.ST}`);break;case 1:if(\"ansi\"===e)this._themeService.modifyColors((e=>e.ansi[t.index]=E.rgba.toColor(...t.color)));else{const i=e;this._themeService.modifyColors((e=>e[i]=E.rgba.toColor(...t.color)))}break;case 2:this._themeService.restoreColor(t.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){var t;e?!this._accessibilityManager&&this._renderService&&(this._accessibilityManager=this._instantiationService.createInstance(_.AccessibilityManager,this)):(null===(t=this._accessibilityManager)||void 0===t||t.dispose(),this._accessibilityManager=void 0)}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(o.C0.ESC+\"[I\"),this.updateCursorStyle(e),this.element.classList.add(\"focus\"),this._showCursor(),this._onFocus.fire()}blur(){var e;return null===(e=this.textarea)||void 0===e?void 0:e.blur()}_handleTextAreaBlur(){this.textarea.value=\"\",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(o.C0.ESC+\"[O\"),this.element.classList.remove(\"focus\"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;const i=Math.min(this.buffer.x,this.cols-1),s=this._renderService.dimensions.css.cell.height,r=t.getWidth(i),n=this._renderService.dimensions.css.cell.width*r,o=this.buffer.y*this._renderService.dimensions.css.cell.height,a=i*this._renderService.dimensions.css.cell.width;this.textarea.style.left=a+\"px\",this.textarea.style.top=o+\"px\",this.textarea.style.width=n+\"px\",this.textarea.style.height=s+\"px\",this.textarea.style.lineHeight=s+\"px\",this.textarea.style.zIndex=\"-5\"}_initGlobal(){this._bindKeys(),this.register((0,l.addDisposableDomListener)(this.element,\"copy\",(e=>{this.hasSelection()&&(0,n.copyHandler)(e,this._selectionService)})));const e=e=>(0,n.handlePasteEvent)(e,this.textarea,this.coreService);this.register((0,l.addDisposableDomListener)(this.textarea,\"paste\",e)),this.register((0,l.addDisposableDomListener)(this.element,\"paste\",e)),c.isFirefox?this.register((0,l.addDisposableDomListener)(this.element,\"mousedown\",(e=>{2===e.button&&(0,n.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,l.addDisposableDomListener)(this.element,\"contextmenu\",(e=>{(0,n.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),c.isLinux&&this.register((0,l.addDisposableDomListener)(this.element,\"auxclick\",(e=>{1===e.button&&(0,n.moveTextAreaUnderMouseCursor)(e,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,l.addDisposableDomListener)(this.textarea,\"keyup\",(e=>this._keyUp(e)),!0)),this.register((0,l.addDisposableDomListener)(this.textarea,\"keydown\",(e=>this._keyDown(e)),!0)),this.register((0,l.addDisposableDomListener)(this.textarea,\"keypress\",(e=>this._keyPress(e)),!0)),this.register((0,l.addDisposableDomListener)(this.textarea,\"compositionstart\",(()=>this._compositionHelper.compositionstart()))),this.register((0,l.addDisposableDomListener)(this.textarea,\"compositionupdate\",(e=>this._compositionHelper.compositionupdate(e)))),this.register((0,l.addDisposableDomListener)(this.textarea,\"compositionend\",(()=>this._compositionHelper.compositionend()))),this.register((0,l.addDisposableDomListener)(this.textarea,\"input\",(e=>this._inputEvent(e)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(e){var t;if(!e)throw new Error(\"Terminal requires a parent element.\");e.isConnected||this._logService.debug(\"Terminal.open was called on an element that was not attached to the DOM\"),this._document=e.ownerDocument,this.element=this._document.createElement(\"div\"),this.element.dir=\"ltr\",this.element.classList.add(\"terminal\"),this.element.classList.add(\"xterm\"),e.appendChild(this.element);const i=O.createDocumentFragment();this._viewportElement=O.createElement(\"div\"),this._viewportElement.classList.add(\"xterm-viewport\"),i.appendChild(this._viewportElement),this._viewportScrollArea=O.createElement(\"div\"),this._viewportScrollArea.classList.add(\"xterm-scroll-area\"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=O.createElement(\"div\"),this.screenElement.classList.add(\"xterm-screen\"),this._helperContainer=O.createElement(\"div\"),this._helperContainer.classList.add(\"xterm-helpers\"),this.screenElement.appendChild(this._helperContainer),i.appendChild(this.screenElement),this.textarea=O.createElement(\"textarea\"),this.textarea.classList.add(\"xterm-helper-textarea\"),this.textarea.setAttribute(\"aria-label\",d.promptLabel),c.isChromeOS||this.textarea.setAttribute(\"aria-multiline\",\"false\"),this.textarea.setAttribute(\"autocorrect\",\"off\"),this.textarea.setAttribute(\"autocapitalize\",\"off\"),this.textarea.setAttribute(\"spellcheck\",\"false\"),this.textarea.tabIndex=0,this._coreBrowserService=this._instantiationService.createInstance(y.CoreBrowserService,this.textarea,null!==(t=this._document.defaultView)&&void 0!==t?t:window),this._instantiationService.setService(S.ICoreBrowserService,this._coreBrowserService),this.register((0,l.addDisposableDomListener)(this.textarea,\"focus\",(e=>this._handleTextAreaFocus(e)))),this.register((0,l.addDisposableDomListener)(this.textarea,\"blur\",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(m.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(S.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(M.ThemeService),this._instantiationService.setService(S.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(L.CharacterJoinerService),this._instantiationService.setService(S.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(p.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(S.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((e=>this._onRender.fire(e)))),this.onResize((e=>this._renderService.resize(e.cols,e.rows))),this._compositionView=O.createElement(\"div\"),this._compositionView.classList.add(\"composition-view\"),this._compositionHelper=this._instantiationService.createInstance(s.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this.element.appendChild(i);try{this._onWillOpen.fire(this.element)}catch(e){}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._mouseService=this._instantiationService.createInstance(C.MouseService),this._instantiationService.setService(S.IMouseService,this._mouseService),this.viewport=this._instantiationService.createInstance(r.Viewport,(e=>this.scrollLines(e,!0,1)),this._viewportElement,this._viewportScrollArea),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(h.SelectionService,this.element,this.screenElement,this.linkifier2)),this._instantiationService.setService(S.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((e=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,l.addDisposableDomListener)(this._viewportElement,\"scroll\",(()=>this._selectionService.refresh()))),this.linkifier2.attachToDom(this.screenElement,this._mouseService,this._renderService),this.register(this._instantiationService.createInstance(R.BufferDecorationRenderer,this.screenElement)),this.register((0,l.addDisposableDomListener)(this.element,\"mousedown\",(e=>this._selectionService.handleMouseDown(e)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add(\"enable-mouse-events\")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager=this._instantiationService.createInstance(_.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange(\"screenReaderMode\",(e=>this._handleScreenReaderModeOptionChange(e)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(D.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(\"overviewRulerWidth\",(e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(D.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(u.DomRenderer,this.element,this.screenElement,this._viewportElement,this.linkifier2)}bindMouse(){const e=this,t=this.element;function i(t){const i=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!i)return!1;let s,r;switch(t.overrideType||t.type){case\"mousemove\":r=32,void 0===t.buttons?(s=3,void 0!==t.button&&(s=t.button<3?t.button:3)):s=1&t.buttons?0:4&t.buttons?1:2&t.buttons?2:3;break;case\"mouseup\":r=0,s=t.button<3?t.button:3;break;case\"mousedown\":r=1,s=t.button<3?t.button:3;break;case\"wheel\":if(0===e.viewport.getLinesScrolled(t))return!1;r=t.deltaY<0?0:1,s=4;break;default:return!1}return!(void 0===r||void 0===s||s>4)&&e.coreMouseService.triggerMouseEvent({col:i.col,row:i.row,x:i.x,y:i.y,button:s,action:r,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}const s={mouseup:null,wheel:null,mousedrag:null,mousemove:null},r={mouseup:e=>(i(e),e.buttons||(this._document.removeEventListener(\"mouseup\",s.mouseup),s.mousedrag&&this._document.removeEventListener(\"mousemove\",s.mousedrag)),this.cancel(e)),wheel:e=>(i(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&i(e)},mousemove:e=>{e.buttons||i(e)}};this.register(this.coreMouseService.onProtocolChange((e=>{e?(\"debug\"===this.optionsService.rawOptions.logLevel&&this._logService.debug(\"Binding to mouse events:\",this.coreMouseService.explainEvents(e)),this.element.classList.add(\"enable-mouse-events\"),this._selectionService.disable()):(this._logService.debug(\"Unbinding from mouse events.\"),this.element.classList.remove(\"enable-mouse-events\"),this._selectionService.enable()),8&e?s.mousemove||(t.addEventListener(\"mousemove\",r.mousemove),s.mousemove=r.mousemove):(t.removeEventListener(\"mousemove\",s.mousemove),s.mousemove=null),16&e?s.wheel||(t.addEventListener(\"wheel\",r.wheel,{passive:!1}),s.wheel=r.wheel):(t.removeEventListener(\"wheel\",s.wheel),s.wheel=null),2&e?s.mouseup||(s.mouseup=r.mouseup):(this._document.removeEventListener(\"mouseup\",s.mouseup),s.mouseup=null),4&e?s.mousedrag||(s.mousedrag=r.mousedrag):(this._document.removeEventListener(\"mousemove\",s.mousedrag),s.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,l.addDisposableDomListener)(t,\"mousedown\",(e=>{if(e.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(e))return i(e),s.mouseup&&this._document.addEventListener(\"mouseup\",s.mouseup),s.mousedrag&&this._document.addEventListener(\"mousemove\",s.mousedrag),this.cancel(e)}))),this.register((0,l.addDisposableDomListener)(t,\"wheel\",(e=>{if(!s.wheel){if(!this.buffer.hasScrollback){const t=this.viewport.getLinesScrolled(e);if(0===t)return;const i=o.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?\"O\":\"[\")+(e.deltaY<0?\"A\":\"B\");let s=\"\";for(let e=0;e<Math.abs(t);e++)s+=i;return this.coreService.triggerDataEvent(s,!0),this.cancel(e,!0)}return this.viewport.handleWheel(e)?this.cancel(e):void 0}}),{passive:!1})),this.register((0,l.addDisposableDomListener)(t,\"touchstart\",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(e),this.cancel(e)}),{passive:!0})),this.register((0,l.addDisposableDomListener)(t,\"touchmove\",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(e)?void 0:this.cancel(e)}),{passive:!1}))}refresh(e,t){var i;null===(i=this._renderService)||void 0===i||i.refreshRows(e,t)}updateCursorStyle(e){var t;(null===(t=this._selectionService)||void 0===t?void 0:t.shouldColumnSelect(e))?this.element.classList.add(\"column-select\"):this.element.classList.remove(\"column-select\")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t,i=0){super.scrollLines(e,t,i),this.refresh(0,this.rows-1)}paste(e){(0,n.paste)(e,this.textarea,this.coreService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}registerLinkProvider(e){return this.linkifier2.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");const t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}addMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(e,t,i){this._selectionService.setSelection(e,t,i)}getSelection(){return this._selectionService?this._selectionService.selectionText:\"\"}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){var e;null===(e=this._selectionService)||void 0===e||e.clearSelection()}selectAll(){var e;null===(e=this._selectionService)||void 0===e||e.selectAll()}selectLines(e,t){var i;null===(i=this._selectionService)||void 0===i||i.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;const t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this._bufferService.scrollToBottom(),!1;t||\"Dead\"!==e.key&&\"AltGraph\"!==e.key||(this._unprocessedDeadKey=!0);const i=(0,f.evaluateKeyboardEvent)(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===i.type||2===i.type){const t=this.rows-1;return this.scrollLines(2===i.type?-t:t),this.cancel(e,!0)}return 1===i.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(i.cancel&&this.cancel(e,!0),!i.key||!!(e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(i.key!==o.C0.ETX&&i.key!==o.C0.CR||(this.textarea.value=\"\"),this._onKey.fire({key:i.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey?this.cancel(e,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(e,t){const i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState(\"AltGraph\");return\"keypress\"===t.type?i:i&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)||(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(e){if(e.data&&\"insertText\"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){e!==this.cols||t!==this.rows?super.resize(e,t):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(e,t){var i,s;null===(i=this._charSizeService)||void 0===i||i.measure(),null===(s=this.viewport)||void 0===s||s.syncScrollArea(!0)}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(g.DEFAULT_ATTR_DATA));this.refresh(0,this.rows-1),this._onScroll.fire({position:this.buffer.ydisp,source:0})}}reset(){var e,t;this.options.rows=this.rows,this.options.cols=this.cols;const i=this._customKeyEventHandler;this._setup(),super.reset(),null===(e=this._selectionService)||void 0===e||e.reset(),this._decorationService.reset(),this._customKeyEventHandler=i,this.refresh(0,this.rows-1),null===(t=this.viewport)||void 0===t||t.syncScrollArea()}clearTextureAtlas(){var e;null===(e=this._renderService)||void 0===e||e.clearTextureAtlas()}_reportFocus(){var e;(null===(e=this.element)||void 0===e?void 0:e.classList.contains(\"focus\"))?this.coreService.triggerDataEvent(o.C0.ESC+\"[I\"):this.coreService.triggerDataEvent(o.C0.ESC+\"[O\")}_reportWindowsOptions(e){if(this._renderService)switch(e){case a.WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:const e=this._renderService.dimensions.css.canvas.width.toFixed(0),t=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${o.C0.ESC}[4;${t};${e}t`);break;case a.WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:const i=this._renderService.dimensions.css.cell.width.toFixed(0),s=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${o.C0.ESC}[6;${s};${i}t`)}}cancel(e,t){if(this.options.cancelEvents||t)return e.preventDefault(),e.stopPropagation(),!1}}t.Terminal=I},9924:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(e,t=1e3){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t;const s=Date.now();if(s-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=s,this._innerRefresh();else if(!this._additionalRefreshRequested){const e=s-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),t)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}}},1680:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Viewport=void 0;const n=i(844),o=i(3656),a=i(4725),h=i(2585);let c=class extends n.Disposable{constructor(e,t,i,s,r,n,a,h,c){super(),this._scrollLines=e,this._viewportElement=t,this._scrollArea=i,this._bufferService=s,this._optionsService=r,this._charSizeService=n,this._renderService=a,this._coreBrowserService=h,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,o.addDisposableDomListener)(this._viewportElement,\"scroll\",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((e=>this._renderDimensions=e))),this._handleThemeChange(c.colors),this.register(c.onChangeColors((e=>this._handleThemeChange(e)))),this.register(this._optionsService.onSpecificOptionChange(\"scrollback\",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()),0)}_handleThemeChange(e){this._viewportElement.style.backgroundColor=e.background.css}_refresh(e){if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderService.dimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderService.dimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;const e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderService.dimensions.css.canvas.height);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+\"px\")}const e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=e),this._refreshAnimationFrame=null}syncScrollArea(e=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(e)}_handleScroll(e){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._scrollLines(0);const t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._scrollLines(t)}_smoothScroll(){if(this._isDisposed||-1===this._smoothScrollState.origin||-1===this._smoothScrollState.target)return;const e=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(e*(this._smoothScrollState.target-this._smoothScrollState.origin)),e<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(e,t){const i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i<this._lastRecordedBufferHeight)||(e.cancelable&&e.preventDefault(),!1)}handleWheel(e){const t=this._getPixelsScrolled(e);return 0!==t&&(this._optionsService.rawOptions.smoothScrollDuration?(this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,-1===this._smoothScrollState.target?this._smoothScrollState.target=this._viewportElement.scrollTop+t:this._smoothScrollState.target+=t,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()):this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}_getPixelsScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=this._currentRowHeight:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._currentRowHeight*this._bufferService.rows),t}getBufferElements(e,t){var i;let s,r=\"\";const n=[],o=null!=t?t:this._bufferService.buffer.lines.length,a=this._bufferService.buffer.lines;for(let t=e;t<o;t++){const e=a.get(t);if(!e)continue;const o=null===(i=a.get(t+1))||void 0===i?void 0:i.isWrapped;if(r+=e.translateToString(!o),!o||t===a.length-1){const e=document.createElement(\"div\");e.textContent=r,n.push(e),r.length>0&&(s=e),r=\"\"}}return{bufferElements:n,cursorElement:s}}getLinesScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t}_applyScrollModifier(e,t){const i=this._optionsService.rawOptions.fastScrollModifier;return\"alt\"===i&&t.altKey||\"ctrl\"===i&&t.ctrlKey||\"shift\"===i&&t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(e){this._lastTouchY=e.touches[0].pageY}handleTouchMove(e){const t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}};c=s([r(3,h.IBufferService),r(4,h.IOptionsService),r(5,a.ICharSizeService),r(6,a.IRenderService),r(7,a.ICoreBrowserService),r(8,a.IThemeService)],c),t.Viewport=c},3107:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferDecorationRenderer=void 0;const n=i(3656),o=i(4725),a=i(844),h=i(2585);let c=class extends a.Disposable{constructor(e,t,i,s){super(),this._screenElement=e,this._bufferService=t,this._decorationService=i,this._renderService=s,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement(\"div\"),this._container.classList.add(\"xterm-decoration-container\"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register((0,n.addDisposableDomListener)(window,\"resize\",(()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((e=>this._removeDecoration(e)))),this.register((0,a.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(const e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){var t,i;const s=document.createElement(\"div\");s.classList.add(\"xterm-decoration\"),s.classList.toggle(\"xterm-decoration-top-layer\",\"top\"===(null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.layer)),s.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,s.style.height=(e.options.height||1)*this._renderService.dimensions.css.cell.height+\"px\",s.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+\"px\",s.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const r=null!==(i=e.options.x)&&void 0!==i?i:0;return r&&r>this._bufferService.cols&&(s.style.display=\"none\"),this._refreshXPosition(e,s),s}_refreshStyle(e){const t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display=\"none\",e.onRenderEmitter.fire(e.element));else{let i=this._decorationElements.get(e);i||(i=this._createElement(e),e.element=i,this._decorationElements.set(e,i),this._container.appendChild(i)),i.style.top=t*this._renderService.dimensions.css.cell.height+\"px\",i.style.display=this._altBufferIsActive?\"none\":\"block\",e.onRenderEmitter.fire(i)}}_refreshXPosition(e,t=e.element){var i;if(!t)return;const s=null!==(i=e.options.x)&&void 0!==i?i:0;\"right\"===(e.options.anchor||\"left\")?t.style.right=s?s*this._renderService.dimensions.css.cell.width+\"px\":\"\":t.style.left=s?s*this._renderService.dimensions.css.cell.width+\"px\":\"\"}_removeDecoration(e){var t;null===(t=this._decorationElements.get(e))||void 0===t||t.remove(),this._decorationElements.delete(e),e.dispose()}};c=s([r(1,h.IBufferService),r(2,h.IDecorationService),r(3,o.IRenderService)],c),t.BufferDecorationRenderer=c},5871:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(const t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position))return void this._addLineToZone(t,e.marker.line)}if(this._zonePoolIndex<this._zonePool.length)return this._zonePool[this._zonePoolIndex].color=e.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=e.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=e.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=e.marker.line,void this._zones.push(this._zonePool[this._zonePoolIndex++]);this._zones.push({color:e.options.overviewRulerOptions.color,position:e.options.overviewRulerOptions.position,startBufferLine:e.marker.line,endBufferLine:e.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(e){this._linePadding=e}_lineIntersectsZone(e,t){return t>=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,i){return t>=e.startBufferLine-this._linePadding[i||\"full\"]&&t<=e.endBufferLine+this._linePadding[i||\"full\"]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}}},5744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OverviewRulerRenderer=void 0;const n=i(5871),o=i(3656),a=i(4725),h=i(844),c=i(2585),l={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0},_={full:0,left:0,center:0,right:0};let u=class extends h.Disposable{constructor(e,t,i,s,r,o,a){var c;super(),this._viewportElement=e,this._screenElement=t,this._bufferService=i,this._decorationService=s,this._renderService=r,this._optionsService=o,this._coreBrowseService=a,this._colorZoneStore=new n.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=document.createElement(\"canvas\"),this._canvas.classList.add(\"xterm-decoration-overview-ruler\"),this._refreshCanvasDimensions(),null===(c=this._viewportElement.parentElement)||void 0===c||c.insertBefore(this._canvas,this._viewportElement);const l=this._canvas.getContext(\"2d\");if(!l)throw new Error(\"Ctx cannot be null\");this._ctx=l,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,h.toDisposable)((()=>{var e;null===(e=this._canvas)||void 0===e||e.remove()})))}get _width(){return this._optionsService.options.overviewRulerWidth||0}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?\"none\":\"block\"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange(\"overviewRulerWidth\",(()=>this._queueRefresh(!0)))),this.register((0,o.addDisposableDomListener)(this._coreBrowseService.window,\"resize\",(()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){const e=Math.floor(this._canvas.width/3),t=Math.ceil(this._canvas.width/3);d.full=this._canvas.width,d.left=e,d.center=t,d.right=e,this._refreshDrawHeightConstants(),_.full=0,_.left=0,_.center=d.left,_.right=d.left+d.center}_refreshDrawHeightConstants(){l.full=Math.round(2*this._coreBrowseService.dpr);const e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowseService.dpr);l.left=t,l.center=t,l.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*l.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*l.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*l.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*l.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowseService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowseService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(const e of this._decorationService.decorations)this._colorZoneStore.addDecoration(e);this._ctx.lineWidth=1;const e=this._colorZoneStore.zones;for(const t of e)\"full\"!==t.position&&this._renderColorZone(t);for(const t of e)\"full\"===t.position&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(_[e.position||\"full\"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-l[e.position||\"full\"]/2),d[e.position||\"full\"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+l[e.position||\"full\"]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowseService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};u=s([r(2,c.IBufferService),r(3,c.IDecorationService),r(4,a.IRenderService),r(5,c.IOptionsService),r(6,a.ICoreBrowserService)],u),t.OverviewRulerRenderer=u},2950:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CompositionHelper=void 0;const n=i(4725),o=i(2585),a=i(2584);let h=class{constructor(e,t,i,s,r,n){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=s,this._coreService=r,this._renderService=n,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=\"\"}get isComposing(){return this._isComposing}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent=\"\",this._dataAlreadySent=\"\",this._compositionView.classList.add(\"active\")}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove(\"active\"),this._isComposing=!1,e){const e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let t;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}}),0)}else{this._isSendingComposition=!1;const e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){const e=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const t=this._textarea.value,i=t.replace(e,\"\");this._dataAlreadySent=i,t.length>e.length?this._coreService.triggerDataEvent(i,!0):t.length<e.length?this._coreService.triggerDataEvent(`${a.C0.DEL}`,!0):t.length===e.length&&t!==e&&this._coreService.triggerDataEvent(t,!0)}}),0)}updateCompositionElements(e){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){const e=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),t=this._renderService.dimensions.css.cell.height,i=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,s=e*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=s+\"px\",this._compositionView.style.top=i+\"px\",this._compositionView.style.height=t+\"px\",this._compositionView.style.lineHeight=t+\"px\",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+\"px\";const r=this._compositionView.getBoundingClientRect();this._textarea.style.left=s+\"px\",this._textarea.style.top=i+\"px\",this._textarea.style.width=Math.max(r.width,1)+\"px\",this._textarea.style.height=Math.max(r.height,1)+\"px\",this._textarea.style.lineHeight=r.height+\"px\"}e||setTimeout((()=>this.updateCompositionElements(!0)),0)}}};h=s([r(2,o.IBufferService),r(3,o.IOptionsService),r(4,o.ICoreService),r(5,n.IRenderService)],h),t.CompositionHelper=h},9806:(e,t)=>{function i(e,t,i){const s=i.getBoundingClientRect(),r=e.getComputedStyle(i),n=parseInt(r.getPropertyValue(\"padding-left\")),o=parseInt(r.getPropertyValue(\"padding-top\"));return[t.clientX-s.left-n,t.clientY-s.top-o]}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,s,r,n,o,a,h,c){if(!o)return;const l=i(e,t,s);return l?(l[0]=Math.ceil((l[0]+(c?a/2:0))/a),l[1]=Math.ceil(l[1]/h),l[0]=Math.min(Math.max(l[0],1),r+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l):void 0}},9504:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.moveToCellSequence=void 0;const s=i(2584);function r(e,t,i,s){const r=e-n(e,i),a=t-n(t,i),l=Math.abs(r-a)-function(e,t,i){let s=0;const r=e-n(e,i),a=t-n(t,i);for(let n=0;n<Math.abs(r-a);n++){const a=\"A\"===o(e,t)?-1:1,h=i.buffer.lines.get(r+a*n);(null==h?void 0:h.isWrapped)&&s++}return s}(e,t,i);return c(l,h(o(e,t),s))}function n(e,t){let i=0,s=t.buffer.lines.get(e),r=null==s?void 0:s.isWrapped;for(;r&&e>=0&&e<t.rows;)i++,s=t.buffer.lines.get(--e),r=null==s?void 0:s.isWrapped;return i}function o(e,t){return e>t?\"A\":\"B\"}function a(e,t,i,s,r,n){let o=e,a=t,h=\"\";for(;o!==i||a!==s;)o+=r?1:-1,r&&o>n.cols-1?(h+=n.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!r&&o<0&&(h+=n.buffer.translateBufferLineToString(a,!1,0,e+1),o=n.cols-1,e=o,a--);return h+n.buffer.translateBufferLineToString(a,!1,e,o)}function h(e,t){const i=t?\"O\":\"[\";return s.C0.ESC+i+e}function c(e,t){e=Math.floor(e);let i=\"\";for(let s=0;s<e;s++)i+=t;return i}t.moveToCellSequence=function(e,t,i,s){const o=i.buffer.x,l=i.buffer.y;if(!i.buffer.hasScrollback)return function(e,t,i,s,o,l){return 0===r(t,s,o,l).length?\"\":c(a(e,t,e,t-n(t,o),!1,o).length,h(\"D\",l))}(o,l,0,t,i,s)+r(l,t,i,s)+function(e,t,i,s,o,l){let d;d=r(t,s,o,l).length>0?s-n(s,o):t;const _=s,u=function(e,t,i,s,o,a){let h;return h=r(i,s,o,a).length>0?s-n(s,o):t,e<i&&h<=s||e>=i&&h<s?\"C\":\"D\"}(e,t,i,s,o,l);return c(a(e,d,i,_,\"C\"===u,o).length,h(u,l))}(o,l,e,t,i,s);let d;if(l===t)return d=o>e?\"D\":\"C\",c(Math.abs(o-e),h(d,s));d=l>t?\"D\":\"C\";const _=Math.abs(l-t);return c(function(e,t){return t.cols-e}(l>t?e:o,i)+(_-1)*i.cols+1+((l>t?o:e)-1),h(d,s))}},1296:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomRenderer=void 0;const n=i(3787),o=i(2223),a=i(6171),h=i(4725),c=i(8055),l=i(8460),d=i(844),_=i(2585),u=\"xterm-dom-renderer-owner-\",f=\"xterm-focus\";let v=1,g=class extends d.Disposable{constructor(e,t,i,s,r,o,h,c,_,f){super(),this._element=e,this._screenElement=t,this._viewportElement=i,this._linkifier2=s,this._charSizeService=o,this._optionsService=h,this._bufferService=c,this._coreBrowserService=_,this._themeService=f,this._terminalClass=v++,this._rowElements=[],this._cellToRowElements=[],this.onRequestRedraw=this.register(new l.EventEmitter).event,this._rowContainer=document.createElement(\"div\"),this._rowContainer.classList.add(\"xterm-rows\"),this._rowContainer.style.lineHeight=\"normal\",this._rowContainer.setAttribute(\"aria-hidden\",\"true\"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=document.createElement(\"div\"),this._selectionContainer.classList.add(\"xterm-selection\"),this._selectionContainer.setAttribute(\"aria-hidden\",\"true\"),this.dimensions=(0,a.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((e=>this._injectCss(e)))),this._injectCss(this._themeService.colors),this._rowFactory=r.createInstance(n.DomRendererRowFactory,document),this._element.classList.add(u+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((e=>this._handleLinkHover(e)))),this.register(this._linkifier2.onHideLinkUnderline((e=>this._handleLinkLeave(e)))),this.register((0,d.toDisposable)((()=>{this._element.classList.remove(u+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})))}_updateDimensions(){const e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(const e of this._rowElements)e.style.width=`${this.dimensions.css.canvas.width}px`,e.style.height=`${this.dimensions.css.cell.height}px`,e.style.lineHeight=`${this.dimensions.css.cell.height}px`,e.style.overflow=\"hidden\";this._dimensionsStyleElement||(this._dimensionsStyleElement=document.createElement(\"style\"),this._screenElement.appendChild(this._dimensionsStyleElement));const t=`${this._terminalSelector} .xterm-rows span { display: inline-block; height: 100%; vertical-align: top; width: ${this.dimensions.css.cell.width}px}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=document.createElement(\"style\"),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .xterm-rows { color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px;}`;t+=`${this._terminalSelector} .xterm-rows .xterm-dim { color: ${c.color.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.${n.BOLD_CLASS}) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.${n.BOLD_CLASS} { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.${n.ITALIC_CLASS} { font-style: italic;}`,t+=\"@keyframes blink_box_shadow_\"+this._terminalClass+\" { 50% { box-shadow: none; }}\",t+=\"@keyframes blink_block_\"+this._terminalClass+\" { 0% {\"+` background-color: ${e.cursor.css};`+` color: ${e.cursorAccent.css}; } 50% {`+` background-color: ${e.cursorAccent.css};`+` color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .xterm-rows:not(.xterm-focus) .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} ,${this._terminalSelector} .xterm-rows:not(.xterm-focus) .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BAR_CLASS} ,${this._terminalSelector} .xterm-rows:not(.xterm-focus) .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_UNDERLINE_CLASS} { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_BLINK_CLASS}:not(.${n.CURSOR_STYLE_BLOCK_CLASS}) { animation: blink_box_shadow_`+this._terminalClass+\" 1s step-end infinite;}\"+`${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_BLINK_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} { animation: blink_block_`+this._terminalClass+\" 1s step-end infinite;}\"+`${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} {`+` background-color: ${e.cursor.css};`+` color: ${e.cursorAccent.css};}`+`${this._terminalSelector} .xterm-rows .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BAR_CLASS} {`+` box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}`+`${this._terminalSelector} .xterm-rows .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_UNDERLINE_CLASS} {`+` box-shadow: 0 -1px 0 ${e.cursor.css} inset;}`,t+=`${this._terminalSelector} .xterm-selection { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .xterm-selection div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .xterm-selection div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(const[i,s]of e.ansi.entries())t+=`${this._terminalSelector} .xterm-fg-${i} { color: ${s.css}; }${this._terminalSelector} .xterm-fg-${i}.${n.DIM_CLASS} { color: ${c.color.multiplyOpacity(s,.5).css}; }${this._terminalSelector} .xterm-bg-${i} { background-color: ${s.css}; }`;t+=`${this._terminalSelector} .xterm-fg-${o.INVERTED_DEFAULT_COLOR} { color: ${c.color.opaque(e.background).css}; }${this._terminalSelector} .xterm-fg-${o.INVERTED_DEFAULT_COLOR}.${n.DIM_CLASS} { color: ${c.color.multiplyOpacity(c.color.opaque(e.background),.5).css}; }${this._terminalSelector} .xterm-bg-${o.INVERTED_DEFAULT_COLOR} { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}handleDevicePixelRatioChange(){this._updateDimensions()}_refreshRowElements(e,t){for(let e=this._rowElements.length;e<=t;e++){const e=document.createElement(\"div\");this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions()}handleCharSizeChanged(){this._updateDimensions()}handleBlur(){this._rowContainer.classList.remove(f)}handleFocus(){this._rowContainer.classList.add(f)}handleSelectionChanged(e,t,i){for(;this._selectionContainer.children.length;)this._selectionContainer.removeChild(this._selectionContainer.children[0]);if(this._rowFactory.handleSelectionChanged(e,t,i),this.renderRows(0,this._bufferService.rows-1),!e||!t)return;const s=e[1]-this._bufferService.buffer.ydisp,r=t[1]-this._bufferService.buffer.ydisp,n=Math.max(s,0),o=Math.min(r,this._bufferService.rows-1);if(n>=this._bufferService.rows||o<0)return;const a=document.createDocumentFragment();if(i){const i=e[0]>t[0];a.appendChild(this._createSelectionElement(n,i?t[0]:e[0],i?e[0]:t[0],o-n+1))}else{const i=s===n?e[0]:0,h=n===r?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(n,i,h));const c=o-n-1;if(a.appendChild(this._createSelectionElement(n+1,0,this._bufferService.cols,c)),n!==o){const e=r===o?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(a)}_createSelectionElement(e,t,i,s=1){const r=document.createElement(\"div\");return r.style.height=s*this.dimensions.css.cell.height+\"px\",r.style.top=e*this.dimensions.css.cell.height+\"px\",r.style.left=t*this.dimensions.css.cell.width+\"px\",r.style.width=this.dimensions.css.cell.width*(i-t)+\"px\",r}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors)}clear(){for(const e of this._rowElements)e.replaceChildren()}renderRows(e,t){const i=this._bufferService.buffer.ybase+this._bufferService.buffer.y,s=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),r=this._optionsService.rawOptions.cursorBlink;for(let n=e;n<=t;n++){const e=this._rowElements[n],t=n+this._bufferService.buffer.ydisp,o=this._bufferService.buffer.lines.get(t),a=this._optionsService.rawOptions.cursorStyle;this._cellToRowElements[n]&&this._cellToRowElements[n].length===this._bufferService.cols||(this._cellToRowElements[n]=new Int16Array(this._bufferService.cols)),e.replaceChildren(this._rowFactory.createRow(o,t,t===i,a,s,r,this.dimensions.css.cell.width,this._bufferService.cols,this._cellToRowElements[n]))}}get _terminalSelector(){return`.${u}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,i,s,r,n){i<0&&(e=0),s<0&&(t=0);const o=this._cellToRowElements.length-1;i=Math.max(Math.min(i,o),0),s=Math.max(Math.min(s,o),0);const a=this._cellToRowElements[i],h=this._cellToRowElements[s];if(!(e>=a.length||t>=h.length)&&(e=a[e],t=h[t],-1!==e&&-1!==t))for(;e!==t||i!==s;){const t=this._rowElements[i];if(!t)return;const s=t.children[e];s&&(s.style.textDecoration=n?\"underline\":\"none\"),++e>=r&&(e=0,i++)}}};g=s([r(4,_.IInstantiationService),r(5,h.ICharSizeService),r(6,_.IOptionsService),r(7,_.IBufferService),r(8,h.ICoreBrowserService),r(9,h.IThemeService)],g),t.DomRenderer=g},3787:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomRendererRowFactory=t.CURSOR_STYLE_UNDERLINE_CLASS=t.CURSOR_STYLE_BAR_CLASS=t.CURSOR_STYLE_BLOCK_CLASS=t.CURSOR_BLINK_CLASS=t.CURSOR_CLASS=t.STRIKETHROUGH_CLASS=t.OVERLINE_CLASS=t.UNDERLINE_CLASS=t.ITALIC_CLASS=t.DIM_CLASS=t.BOLD_CLASS=void 0;const n=i(2223),o=i(643),a=i(511),h=i(2585),c=i(8055),l=i(4725),d=i(4269),_=i(6171),u=i(3734);t.BOLD_CLASS=\"xterm-bold\",t.DIM_CLASS=\"xterm-dim\",t.ITALIC_CLASS=\"xterm-italic\",t.UNDERLINE_CLASS=\"xterm-underline\",t.OVERLINE_CLASS=\"xterm-overline\",t.STRIKETHROUGH_CLASS=\"xterm-strikethrough\",t.CURSOR_CLASS=\"xterm-cursor\",t.CURSOR_BLINK_CLASS=\"xterm-cursor-blink\",t.CURSOR_STYLE_BLOCK_CLASS=\"xterm-cursor-block\",t.CURSOR_STYLE_BAR_CLASS=\"xterm-cursor-bar\",t.CURSOR_STYLE_UNDERLINE_CLASS=\"xterm-cursor-underline\";let f=class{constructor(e,t,i,s,r,n,o){this._document=e,this._characterJoinerService=t,this._optionsService=i,this._coreBrowserService=s,this._coreService=r,this._decorationService=n,this._themeService=o,this._workCell=new a.CellData,this._columnSelectMode=!1}handleSelectionChanged(e,t,i){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=i}createRow(e,i,s,r,a,h,l,_,f){const g=this._document.createDocumentFragment(),p=this._characterJoinerService.getJoinedCharacters(i);let S=0;for(let t=Math.min(e.length,_)-1;t>=0;t--)if(e.loadCell(t,this._workCell).getCode()!==o.NULL_CELL_CODE||s&&t===a){S=t+1;break}const m=this._themeService.colors;let C=-1,b=0;for(;b<S;b++){e.loadCell(b,this._workCell);let _=this._workCell.getWidth();if(0===_){f[b]=C;continue}let S=!1,y=b,w=this._workCell;if(p.length>0&&b===p[0][0]){S=!0;const t=p.shift();w=new d.JoinedCellData(this._workCell,e.translateToString(!0,t[0],t[1]),t[1]-t[0]),y=t[1]-1,_=w.getWidth()}const E=this._document.createElement(\"span\");if(_>1&&(E.style.width=l*_+\"px\"),S&&(E.style.display=\"inline\",a>=b&&a<=y&&(a=b)),!this._coreService.isCursorHidden&&s&&b===a)switch(E.classList.add(t.CURSOR_CLASS),h&&E.classList.add(t.CURSOR_BLINK_CLASS),r){case\"bar\":E.classList.add(t.CURSOR_STYLE_BAR_CLASS);break;case\"underline\":E.classList.add(t.CURSOR_STYLE_UNDERLINE_CLASS);break;default:E.classList.add(t.CURSOR_STYLE_BLOCK_CLASS)}if(w.isBold()&&E.classList.add(t.BOLD_CLASS),w.isItalic()&&E.classList.add(t.ITALIC_CLASS),w.isDim()&&E.classList.add(t.DIM_CLASS),w.isInvisible()?E.textContent=o.WHITESPACE_CELL_CHAR:E.textContent=w.getChars()||o.WHITESPACE_CELL_CHAR,w.isUnderline()&&(E.classList.add(`${t.UNDERLINE_CLASS}-${w.extended.underlineStyle}`),\" \"===E.textContent&&(E.textContent=\" \"),!w.isUnderlineColorDefault()))if(w.isUnderlineColorRGB())E.style.textDecorationColor=`rgb(${u.AttributeData.toColorRGB(w.getUnderlineColor()).join(\",\")})`;else{let e=w.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&w.isBold()&&e<8&&(e+=8),E.style.textDecorationColor=m.ansi[e].css}w.isOverline()&&(E.classList.add(t.OVERLINE_CLASS),\" \"===E.textContent&&(E.textContent=\" \")),w.isStrikethrough()&&E.classList.add(t.STRIKETHROUGH_CLASS);let L=w.getFgColor(),k=w.getFgColorMode(),R=w.getBgColor(),D=w.getBgColorMode();const A=!!w.isInverse();if(A){const e=L;L=R,R=e;const t=k;k=D,D=t}let x,B,T=!1;this._decorationService.forEachDecorationAtCell(b,i,void 0,(e=>{\"top\"!==e.options.layer&&T||(e.backgroundColorRGB&&(D=50331648,R=e.backgroundColorRGB.rgba>>8&16777215,x=e.backgroundColorRGB),e.foregroundColorRGB&&(k=50331648,L=e.foregroundColorRGB.rgba>>8&16777215,B=e.foregroundColorRGB),T=\"top\"===e.options.layer)}));const M=this._isCellInSelection(b,i);let O;switch(T||m.selectionForeground&&M&&(k=50331648,L=m.selectionForeground.rgba>>8&16777215,B=m.selectionForeground),M&&(x=this._coreBrowserService.isFocused?m.selectionBackgroundOpaque:m.selectionInactiveBackgroundOpaque,T=!0),T&&E.classList.add(\"xterm-decoration-top\"),D){case 16777216:case 33554432:O=m.ansi[R],E.classList.add(`xterm-bg-${R}`);break;case 50331648:O=c.rgba.toColor(R>>16,R>>8&255,255&R),this._addStyle(E,`background-color:#${v((R>>>0).toString(16),\"0\",6)}`);break;default:A?(O=m.foreground,E.classList.add(`xterm-bg-${n.INVERTED_DEFAULT_COLOR}`)):O=m.background}switch(x||w.isDim()&&(x=c.color.multiplyOpacity(O,.5)),k){case 16777216:case 33554432:w.isBold()&&L<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(L+=8),this._applyMinimumContrast(E,O,m.ansi[L],w,x,void 0)||E.classList.add(`xterm-fg-${L}`);break;case 50331648:const e=c.rgba.toColor(L>>16&255,L>>8&255,255&L);this._applyMinimumContrast(E,O,e,w,x,B)||this._addStyle(E,`color:#${v(L.toString(16),\"0\",6)}`);break;default:this._applyMinimumContrast(E,O,m.foreground,w,x,void 0)||A&&E.classList.add(`xterm-fg-${n.INVERTED_DEFAULT_COLOR}`)}g.appendChild(E),f[b]=++C,b=y}return b<_-1&&f.subarray(b).fill(++C),g}_applyMinimumContrast(e,t,i,s,r,n){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,_.excludeFromContrastRatioDemands)(s.getCode()))return!1;let o;return r||n||(o=this._themeService.colors.contrastCache.getColor(t.rgba,i.rgba)),void 0===o&&(o=c.color.ensureContrastRatio(r||t,n||i,this._optionsService.rawOptions.minimumContrastRatio),this._themeService.colors.contrastCache.setColor((r||t).rgba,(n||i).rgba,null!=o?o:null)),!!o&&(this._addStyle(e,`color:${o.css}`),!0)}_addStyle(e,t){e.setAttribute(\"style\",`${e.getAttribute(\"style\")||\"\"}${t};`)}_isCellInSelection(e,t){const i=this._selectionStart,s=this._selectionEnd;return!(!i||!s)&&(this._columnSelectMode?i[0]<=s[0]?e>=i[0]&&t>=i[1]&&e<s[0]&&t<=s[1]:e<i[0]&&t>=i[1]&&e>=s[0]&&t<=s[1]:t>i[1]&&t<s[1]||i[1]===s[1]&&t===i[1]&&e>=i[0]&&e<s[0]||i[1]<s[1]&&t===s[1]&&e<s[0]||i[1]<s[1]&&t===i[1]&&e>=i[0])}};function v(e,t,i){for(;e.length<i;)e=t+e;return e}f=s([r(1,l.ICharacterJoinerService),r(2,h.IOptionsService),r(3,l.ICoreBrowserService),r(4,h.ICoreService),r(5,h.IDecorationService),r(6,l.IThemeService)],f),t.DomRendererRowFactory=f},2223:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?\"bottom\":\"ideographic\"},6171:(e,t)=>{function i(e){return 57508<=e&&e<=57558}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createRenderDimensions=t.excludeFromContrastRatioDemands=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error(\"value must not be falsy\");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.excludeFromContrastRatioDemands=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}}},456:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharSizeService=void 0;const n=i(2585),o=i(8460),a=i(844);let h=class extends a.Disposable{constructor(e,t,i){super(),this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=this.register(new o.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event,this._measureStrategy=new c(e,t,this._optionsService),this.register(this._optionsService.onMultipleOptionChange([\"fontFamily\",\"fontSize\"],(()=>this.measure())))}get hasValidSize(){return this.width>0&&this.height>0}measure(){const e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};h=s([r(2,n.IOptionsService)],h),t.CharSizeService=h;class c{constructor(e,t,i){this._document=e,this._parentElement=t,this._optionsService=i,this._result={width:0,height:0},this._measureElement=this._document.createElement(\"span\"),this._measureElement.classList.add(\"xterm-char-measure-element\"),this._measureElement.textContent=\"W\",this._measureElement.setAttribute(\"aria-hidden\",\"true\"),this._parentElement.appendChild(this._measureElement)}measure(){this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`;const e=this._measureElement.getBoundingClientRect();return 0!==e.width&&0!==e.height&&(this._result.width=e.width,this._result.height=Math.ceil(e.height)),this._result}}},4269:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const n=i(3734),o=i(643),a=i(511),h=i(2585);class c extends n.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData=\"\",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error(\"not implemented\")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=c;let l=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t<this._characterJoiners.length;t++)if(this._characterJoiners[t].id===e)return this._characterJoiners.splice(t,1),!0;return!1}getJoinedCharacters(e){if(0===this._characterJoiners.length)return[];const t=this._bufferService.buffer.lines.get(e);if(!t||0===t.length)return[];const i=[],s=t.translateToString(!0);let r=0,n=0,a=0,h=t.getFg(0),c=t.getBg(0);for(let e=0;e<t.getTrimmedLength();e++)if(t.loadCell(e,this._workCell),0!==this._workCell.getWidth()){if(this._workCell.fg!==h||this._workCell.bg!==c){if(e-r>1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t<e.length;t++)i.push(e[t])}r=e,a=n,h=this._workCell.fg,c=this._workCell.bg}n+=this._workCell.getChars().length||o.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-r>1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t<e.length;t++)i.push(e[t])}return i}_getJoinedRanges(t,i,s,r,n){const o=t.substring(i,s);let a=[];try{a=this._characterJoiners[0].handler(o)}catch(e){console.error(e)}for(let t=1;t<this._characterJoiners.length;t++)try{const i=this._characterJoiners[t].handler(o);for(let t=0;t<i.length;t++)e._mergeRanges(a,i[t])}catch(e){console.error(e)}return this._stringRangesToCellRanges(a,r,n),a}_stringRangesToCellRanges(e,t,i){let s=0,r=!1,n=0,a=e[s];if(a){for(let h=i;h<this._bufferService.cols;h++){const i=t.getWidth(h),c=t.getString(h).length||o.WHITESPACE_CELL_CHAR.length;if(0!==i){if(!r&&a[0]<=n&&(a[0]=h,r=!0),a[1]<=n){if(a[1]=h,a=e[++s],!a)break;a[0]<=n?(a[0]=h,r=!0):r=!1}n+=c}}a&&(a[1]=this._bufferService.cols)}}static _mergeRanges(e,t){let i=!1;for(let s=0;s<e.length;s++){const r=e[s];if(i){if(t[1]<=r[0])return e[s-1][1]=t[1],e;if(t[1]<=r[1])return e[s-1][1]=Math.max(t[1],r[1]),e.splice(s,1),e;e.splice(s,1),s--}else{if(t[1]<=r[0])return e.splice(s,0,t),e;if(t[1]<=r[1])return r[0]=Math.min(t[0],r[0]),e;t[0]<r[1]&&(r[0]=Math.min(t[0],r[0]),i=!0)}}return i?e[e.length-1][1]=t[1]:e.push(t),e}};l=s([r(0,h.IBufferService)],l),t.CharacterJoinerService=l},5114:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreBrowserService=void 0,t.CoreBrowserService=class{constructor(e,t){this._textarea=e,this.window=t,this._isFocused=!1,this._cachedIsFocused=void 0,this._textarea.addEventListener(\"focus\",(()=>this._isFocused=!0)),this._textarea.addEventListener(\"blur\",(()=>this._isFocused=!1))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return void 0===this._cachedIsFocused&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}},8934:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.MouseService=void 0;const n=i(4725),o=i(9806);let a=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,i,s,r){return(0,o.getCoords)(window,e,t,i,s,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,r)}getMouseReportCoords(e,t){const i=(0,o.getCoordsRelativeToElement)(window,e,t);if(!(!this._charSizeService.hasValidSize||i[0]<0||i[1]<0||i[0]>=this._renderService.dimensions.css.canvas.width||i[1]>=this._renderService.dimensions.css.canvas.height))return{col:Math.floor(i[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(i[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(i[0]),y:Math.floor(i[1])}}};a=s([r(0,n.IRenderService),r(1,n.ICharSizeService)],a),t.MouseService=a},3230:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderService=void 0;const n=i(6193),o=i(8460),a=i(844),h=i(5596),c=i(3656),l=i(2585),d=i(4725),_=i(7226);let u=class extends a.Disposable{constructor(e,t,i,s,r,a,l,d){if(super(),this._rowCount=e,this._charSizeService=s,this._pausedResizeTask=new _.DebouncedIdleTask,this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new o.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new o.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new o.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new o.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this.register({dispose:()=>{var e;return null===(e=this._renderer)||void 0===e?void 0:e.dispose()}}),this._renderDebouncer=new n.RenderDebouncer(l.window,((e,t)=>this._renderRows(e,t))),this.register(this._renderDebouncer),this._screenDprMonitor=new h.ScreenDprMonitor(l.window),this._screenDprMonitor.setListener((()=>this.handleDevicePixelRatioChange())),this.register(this._screenDprMonitor),this.register(a.onResize((()=>this._fullRefresh()))),this.register(a.buffers.onBufferActivate((()=>{var e;return null===(e=this._renderer)||void 0===e?void 0:e.clear()}))),this.register(i.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(r.onDecorationRegistered((()=>this._fullRefresh()))),this.register(r.onDecorationRemoved((()=>this._fullRefresh()))),this.register(i.onMultipleOptionChange([\"customGlyphs\",\"drawBoldTextInBrightColors\",\"letterSpacing\",\"lineHeight\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"fontWeightBold\",\"minimumContrastRatio\"],(()=>{this.clear(),this.handleResize(a.cols,a.rows),this._fullRefresh()}))),this.register(i.onMultipleOptionChange([\"cursorBlink\",\"cursorStyle\"],(()=>this.refreshRows(a.buffer.y,a.buffer.y,!0)))),this.register((0,c.addDisposableDomListener)(l.window,\"resize\",(()=>this.handleDevicePixelRatioChange()))),this.register(d.onChangeColors((()=>this._fullRefresh()))),\"IntersectionObserver\"in l.window){const e=new l.window.IntersectionObserver((e=>this._handleIntersectionChange(e[e.length-1])),{threshold:0});e.observe(t),this.register({dispose:()=>e.disconnect()})}}get dimensions(){return this._renderer.dimensions}_handleIntersectionChange(e){this._isPaused=void 0===e.isIntersecting?0===e.intersectionRatio:!e.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,i=!1){this._isPaused?this._needsFullRefresh=!0:(i||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount))}_renderRows(e,t){this._renderer&&(e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.renderRows(e,t),this._needsSelectionRefresh&&(this._renderer.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0)}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer&&(this._renderer.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.dimensions))}hasRenderer(){return!!this._renderer}setRenderer(e){var t;null===(t=this._renderer)||void 0===t||t.dispose(),this._renderer=e,this._renderer.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh()}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){var e,t;this._renderer&&(null===(t=(e=this._renderer).clearTextureAtlas)||void 0===t||t.call(e),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer&&(this._renderer.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.handleResize(e,t))):this._renderer.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){var e;null===(e=this._renderer)||void 0===e||e.handleCharSizeChanged()}handleBlur(){var e;null===(e=this._renderer)||void 0===e||e.handleBlur()}handleFocus(){var e;null===(e=this._renderer)||void 0===e||e.handleFocus()}handleSelectionChanged(e,t,i){var s;this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=i,null===(s=this._renderer)||void 0===s||s.handleSelectionChanged(e,t,i)}handleCursorMove(){var e;null===(e=this._renderer)||void 0===e||e.handleCursorMove()}clear(){var e;null===(e=this._renderer)||void 0===e||e.clear()}};u=s([r(2,l.IOptionsService),r(3,d.ICharSizeService),r(4,l.IDecorationService),r(5,l.IBufferService),r(6,d.ICoreBrowserService),r(7,d.IThemeService)],u),t.RenderService=u},9312:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.SelectionService=void 0;const n=i(6114),o=i(456),a=i(511),h=i(8460),c=i(4725),l=i(2585),d=i(9806),_=i(9504),u=i(844),f=i(4841),v=String.fromCharCode(160),g=new RegExp(v,\"g\");let p=class extends u.Disposable{constructor(e,t,i,s,r,n,c,l,d){super(),this._element=e,this._screenElement=t,this._linkifier=i,this._bufferService=s,this._coreService=r,this._mouseService=n,this._optionsService=c,this._renderService=l,this._coreBrowserService=d,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new a.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new h.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new h.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new h.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new h.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((e=>this._handleTrim(e))),this.register(this._bufferService.buffers.onBufferActivate((e=>this._handleBufferActivate(e)))),this.enable(),this._model=new o.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,u.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t||e[0]===t[0]&&e[1]===t[1])}get selectionText(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return\"\";const i=this._bufferService.buffer,s=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return\"\";const r=e[0]<t[0]?e[0]:t[0],n=e[0]<t[0]?t[0]:e[0];for(let o=e[1];o<=t[1];o++){const e=i.translateBufferLineToString(o,!0,r,n);s.push(e)}}else{const r=e[1]===t[1]?t[0]:void 0;s.push(i.translateBufferLineToString(e[1],!0,e[0],r));for(let r=e[1]+1;r<=t[1]-1;r++){const e=i.lines.get(r),t=i.translateBufferLineToString(r,!0);(null==e?void 0:e.isWrapped)?s[s.length-1]+=t:s.push(t)}if(e[1]!==t[1]){const e=i.lines.get(t[1]),r=i.translateBufferLineToString(t[1],!0,0,t[0]);e&&e.isWrapped?s[s.length-1]+=r:s.push(r)}}return s.map((e=>e.replace(g,\" \"))).join(n.isWindows?\"\\r\\n\":\"\\n\")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),n.isLinux&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){const t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!!(i&&s&&t)&&this._areCoordsInSelection(t,i,s)}isCellInSelection(e,t){const i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!(!i||!s)&&this._areCoordsInSelection([e,t],i,s)}_areCoordsInSelection(e,t,i){return e[1]>t[1]&&e[1]<i[1]||t[1]===i[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<i[0]||t[1]<i[1]&&e[1]===i[1]&&e[0]<i[0]||t[1]<i[1]&&e[1]===t[1]&&e[0]>=t[0]}_selectWordAtCursor(e,t){var i,s;const r=null===(s=null===(i=this._linkifier.currentLink)||void 0===i?void 0:i.link)||void 0===s?void 0:s.range;if(r)return this._model.selectionStart=[r.start.x-1,r.start.y-1],this._model.selectionStartLength=(0,f.getRangeLength)(r,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const n=this._getMouseBufferCoords(e);return!!n&&(this._selectWordAt(n,t),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){const t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=(0,d.getCoordsRelativeToElement)(this._coreBrowserService.window,e,this._screenElement)[1];const i=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),t/=50,t/Math.abs(t)+Math.round(14*t))}shouldForceSelection(e){return n.isMac?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):1===e.detail?this._handleSingleClick(e):2===e.detail?this._handleDoubleClick(e):3===e.detail&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener(\"mouseup\",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener(\"mouseup\",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){const t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(n.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;const t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:1===this._activeSelectionMode&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),3!==this._activeSelectionMode&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const i=this._bufferService.buffer;if(this._model.selectionEnd[1]<i.lines.length){const e=i.lines.get(this._model.selectionEnd[1]);e&&0===e.hasWidth(this._model.selectionEnd[0])&&this._model.selectionEnd[0]++}t&&t[0]===this._model.selectionEnd[0]&&t[1]===this._model.selectionEnd[1]||this.refresh(!0)}_dragScroll(){if(this._model.selectionEnd&&this._model.selectionStart&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});const e=this._bufferService.buffer;this._dragScrollAmount>0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){const t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&void 0!==t[0]&&void 0!==t[1]){const e=(0,_.moveToCellSequence)(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,i=!(!e||!t||e[0]===t[0]&&e[1]===t[1]);i?e&&t&&(this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&t[0]===this._oldSelectionEnd[0]&&t[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,t,i)):this._oldHasSelection&&this._fireOnSelectionChange(e,t,i)}_fireOnSelectionChange(e,t,i){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=i,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim((e=>this._handleTrim(e)))}_convertViewportColToCharacterIndex(e,t){let i=t;for(let s=0;t>=s;s++){const r=e.loadCell(s,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:r>1&&t!==s&&(i+=r-1)}return i}setSelection(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,i=!0,s=!0){if(e[0]>=this._bufferService.cols)return;const r=this._bufferService.buffer,n=r.lines.get(e[1]);if(!n)return;const o=r.translateBufferLineToString(e[1],!1);let a=this._convertViewportColToCharacterIndex(n,e[0]),h=a;const c=e[0]-a;let l=0,d=0,_=0,u=0;if(\" \"===o.charAt(a)){for(;a>0&&\" \"===o.charAt(a-1);)a--;for(;h<o.length&&\" \"===o.charAt(h+1);)h++}else{let t=e[0],i=e[0];0===n.getWidth(t)&&(l++,t--),2===n.getWidth(i)&&(d++,i++);const s=n.getString(i).length;for(s>1&&(u+=s-1,h+=s-1);t>0&&a>0&&!this._isCharWordSeparator(n.loadCell(t-1,this._workCell));){n.loadCell(t-1,this._workCell);const e=this._workCell.getChars().length;0===this._workCell.getWidth()?(l++,t--):e>1&&(_+=e-1,a-=e-1),a--,t--}for(;i<n.length&&h+1<o.length&&!this._isCharWordSeparator(n.loadCell(i+1,this._workCell));){n.loadCell(i+1,this._workCell);const e=this._workCell.getChars().length;2===this._workCell.getWidth()?(d++,i++):e>1&&(u+=e-1,h+=e-1),h++,i++}}h++;let f=a+c-l+_,v=Math.min(this._bufferService.cols,h-a+l+d-_-u);if(t||\"\"!==o.slice(a,h).trim()){if(i&&0===f&&32!==n.getCodePoint(0)){const t=r.lines.get(e[1]-1);if(t&&n.isWrapped&&32!==t.getCodePoint(this._bufferService.cols-1)){const t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){const e=this._bufferService.cols-t.start;f-=e,v+=e}}}if(s&&f+v===this._bufferService.cols&&32!==n.getCodePoint(this._bufferService.cols-1)){const t=r.lines.get(e[1]+1);if((null==t?void 0:t.isWrapped)&&32!==t.getCodePoint(0)){const t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(v+=t.length)}}return{start:f,length:v}}}_selectWordAt(e,t){const i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}}_selectToWordAt(e){const t=this._getWordAt(e,!0);if(t){let i=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){const t=this._bufferService.buffer.getWrappedRangeForLine(e),i={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,f.getRangeLength)(i,this._bufferService.cols)}};p=s([r(3,l.IBufferService),r(4,l.ICoreService),r(5,c.IMouseService),r(6,l.IOptionsService),r(7,c.IRenderService),r(8,c.ICoreBrowserService)],p),t.SelectionService=p},4725:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;const s=i(8343);t.ICharSizeService=(0,s.createDecorator)(\"CharSizeService\"),t.ICoreBrowserService=(0,s.createDecorator)(\"CoreBrowserService\"),t.IMouseService=(0,s.createDecorator)(\"MouseService\"),t.IRenderService=(0,s.createDecorator)(\"RenderService\"),t.ISelectionService=(0,s.createDecorator)(\"SelectionService\"),t.ICharacterJoinerService=(0,s.createDecorator)(\"CharacterJoinerService\"),t.IThemeService=(0,s.createDecorator)(\"ThemeService\")},6731:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;const n=i(7239),o=i(8055),a=i(8460),h=i(844),c=i(2585),l=o.css.toColor(\"#ffffff\"),d=o.css.toColor(\"#000000\"),_=o.css.toColor(\"#ffffff\"),u=o.css.toColor(\"#000000\"),f={css:\"rgba(255, 255, 255, 0.3)\",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const e=[o.css.toColor(\"#2e3436\"),o.css.toColor(\"#cc0000\"),o.css.toColor(\"#4e9a06\"),o.css.toColor(\"#c4a000\"),o.css.toColor(\"#3465a4\"),o.css.toColor(\"#75507b\"),o.css.toColor(\"#06989a\"),o.css.toColor(\"#d3d7cf\"),o.css.toColor(\"#555753\"),o.css.toColor(\"#ef2929\"),o.css.toColor(\"#8ae234\"),o.css.toColor(\"#fce94f\"),o.css.toColor(\"#729fcf\"),o.css.toColor(\"#ad7fa8\"),o.css.toColor(\"#34e2e2\"),o.css.toColor(\"#eeeeec\")],t=[0,95,135,175,215,255];for(let i=0;i<216;i++){const s=t[i/36%6|0],r=t[i/6%6|0],n=t[i%6];e.push({css:o.channels.toCss(s,r,n),rgba:o.channels.toRgba(s,r,n)})}for(let t=0;t<24;t++){const i=8+10*t;e.push({css:o.channels.toCss(i,i,i),rgba:o.channels.toRgba(i,i,i)})}return e})());let v=class extends h.Disposable{constructor(e){super(),this._optionsService=e,this._onChangeColors=this.register(new a.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._contrastCache=new n.ColorContrastCache,this._colors={foreground:l,background:d,cursor:_,cursorAccent:u,selectionForeground:void 0,selectionBackgroundTransparent:f,selectionBackgroundOpaque:o.color.blend(d,f),selectionInactiveBackgroundTransparent:f,selectionInactiveBackgroundOpaque:o.color.blend(d,f),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange(\"minimumContrastRatio\",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange(\"theme\",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}get colors(){return this._colors}_setTheme(e={}){const i=this._colors;if(i.foreground=g(e.foreground,l),i.background=g(e.background,d),i.cursor=g(e.cursor,_),i.cursorAccent=g(e.cursorAccent,u),i.selectionBackgroundTransparent=g(e.selectionBackground,f),i.selectionBackgroundOpaque=o.color.blend(i.background,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundTransparent=g(e.selectionInactiveBackground,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundOpaque=o.color.blend(i.background,i.selectionInactiveBackgroundTransparent),i.selectionForeground=e.selectionForeground?g(e.selectionForeground,o.NULL_COLOR):void 0,i.selectionForeground===o.NULL_COLOR&&(i.selectionForeground=void 0),o.color.isOpaque(i.selectionBackgroundTransparent)){const e=.3;i.selectionBackgroundTransparent=o.color.opacity(i.selectionBackgroundTransparent,e)}if(o.color.isOpaque(i.selectionInactiveBackgroundTransparent)){const e=.3;i.selectionInactiveBackgroundTransparent=o.color.opacity(i.selectionInactiveBackgroundTransparent,e)}if(i.ansi=t.DEFAULT_ANSI_COLORS.slice(),i.ansi[0]=g(e.black,t.DEFAULT_ANSI_COLORS[0]),i.ansi[1]=g(e.red,t.DEFAULT_ANSI_COLORS[1]),i.ansi[2]=g(e.green,t.DEFAULT_ANSI_COLORS[2]),i.ansi[3]=g(e.yellow,t.DEFAULT_ANSI_COLORS[3]),i.ansi[4]=g(e.blue,t.DEFAULT_ANSI_COLORS[4]),i.ansi[5]=g(e.magenta,t.DEFAULT_ANSI_COLORS[5]),i.ansi[6]=g(e.cyan,t.DEFAULT_ANSI_COLORS[6]),i.ansi[7]=g(e.white,t.DEFAULT_ANSI_COLORS[7]),i.ansi[8]=g(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),i.ansi[9]=g(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),i.ansi[10]=g(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),i.ansi[11]=g(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),i.ansi[12]=g(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),i.ansi[13]=g(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),i.ansi[14]=g(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),i.ansi[15]=g(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),e.extendedAnsi){const s=Math.min(i.ansi.length-16,e.extendedAnsi.length);for(let r=0;r<s;r++)i.ansi[r+16]=g(e.extendedAnsi[r],t.DEFAULT_ANSI_COLORS[r+16])}this._contrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(e){this._restoreColor(e),this._onChangeColors.fire(this.colors)}_restoreColor(e){if(void 0!==e)switch(e){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[e]=this._restoreColors.ansi[e]}else for(let e=0;e<this._restoreColors.ansi.length;++e)this._colors.ansi[e]=this._restoreColors.ansi[e]}modifyColors(e){e(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};function g(e,t){if(void 0!==e)try{return o.css.toColor(e)}catch(e){}return t}v=s([r(0,c.IOptionsService)],v),t.ThemeService=v},6349:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CircularList=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this.register(new s.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new s.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new s.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;const t=new Array(e);for(let i=0;i<Math.min(e,this.length);i++)t[i]=this._array[this._getCyclicIndex(i)];this._array=t,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let t=this._length;t<e;t++)this._array[t]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,t){this._array[this._getCyclicIndex(e)]=t}push(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw new Error(\"Can only recycle when the buffer is full\");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(e,t,...i){if(t){for(let i=e;i<this._length-t;i++)this._array[this._getCyclicIndex(i)]=this._array[this._getCyclicIndex(i+t)];this._length-=t,this.onDeleteEmitter.fire({index:e,amount:t})}for(let t=this._length-1;t>=e;t--)this._array[this._getCyclicIndex(t+i.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;t<i.length;t++)this._array[this._getCyclicIndex(e+t)]=i[t];if(i.length&&this.onInsertEmitter.fire({index:e,amount:i.length}),this._length+i.length>this._maxLength){const e=this._length+i.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=i.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error(\"start argument out of range\");if(e+i<0)throw new Error(\"Cannot shift elements in list beyond index 0\");if(i>0){for(let s=t-1;s>=0;s--)this.set(e+s+i,this.get(e+s));const s=e+t+i-this._length;if(s>0)for(this._length+=s;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let s=0;s<t;s++)this.set(e+s+i,this.get(e+s))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}}t.CircularList=n},1439:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.clone=void 0,t.clone=function e(t,i=5){if(\"object\"!=typeof t)return t;const s=Array.isArray(t)?[]:{};for(const r in t)s[r]=i<=1?t[r]:t[r]&&e(t[r],i-1);return s}},8055:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;const s=i(6114);let r=0,n=0,o=0,a=0;var h,c,l;function d(e){const t=e.toString(16);return t.length<2?\"0\"+t:t}function _(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}t.NULL_COLOR={css:\"#00000000\",rgba:0},function(e){e.toCss=function(e,t,i,s){return void 0!==s?`#${d(e)}${d(t)}${d(i)}${d(s)}`:`#${d(e)}${d(t)}${d(i)}`},e.toRgba=function(e,t,i,s=255){return(e<<24|t<<16|i<<8|s)>>>0}}(h=t.channels||(t.channels={})),function(e){function t(e,t){return a=Math.round(255*t),[r,n,o]=l.toChannels(e.rgba),{css:h.toCss(r,n,o,a),rgba:h.toRgba(r,n,o,a)}}e.blend=function(e,t){if(a=(255&t.rgba)/255,1===a)return{css:t.css,rgba:t.rgba};const i=t.rgba>>24&255,s=t.rgba>>16&255,c=t.rgba>>8&255,l=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return r=l+Math.round((i-l)*a),n=d+Math.round((s-d)*a),o=_+Math.round((c-_)*a),{css:h.toCss(r,n,o),rgba:h.toRgba(r,n,o)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=l.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return l.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[r,n,o]=l.toChannels(t),{css:h.toCss(r,n,o),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return a=255&e.rgba,t(e,a*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(t.color||(t.color={})),function(e){let t,i;if(!s.isNode){const e=document.createElement(\"canvas\");e.width=1,e.height=1;const s=e.getContext(\"2d\",{willReadFrequently:!0});s&&(t=s,t.globalCompositeOperation=\"copy\",i=t.createLinearGradient(0,0,1,1))}e.toColor=function(e){if(e.match(/#[\\da-f]{3,8}/i))switch(e.length){case 4:return r=parseInt(e.slice(1,2).repeat(2),16),n=parseInt(e.slice(2,3).repeat(2),16),o=parseInt(e.slice(3,4).repeat(2),16),l.toColor(r,n,o);case 5:return r=parseInt(e.slice(1,2).repeat(2),16),n=parseInt(e.slice(2,3).repeat(2),16),o=parseInt(e.slice(3,4).repeat(2),16),a=parseInt(e.slice(4,5).repeat(2),16),l.toColor(r,n,o,a);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const s=e.match(/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(,\\s*(0|1|\\d?\\.(\\d+))\\s*)?\\)/);if(s)return r=parseInt(s[1]),n=parseInt(s[2]),o=parseInt(s[3]),a=Math.round(255*(void 0===s[5]?1:parseFloat(s[5]))),l.toColor(r,n,o,a);if(!t||!i)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillStyle=i,t.fillStyle=e,\"string\"!=typeof t.fillStyle)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillRect(0,0,1,1),[r,n,o,a]=t.getImageData(0,0,1,1).data,255!==a)throw new Error(\"css.toColor: Unsupported css format\");return{rgba:h.toRgba(r,n,o,a),css:e}}}(t.css||(t.css={})),function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(c=t.rgb||(t.rgb={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l<i&&(o>0||a>0||h>0);)o-=Math.max(0,Math.ceil(.1*o)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}function i(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l<i&&(o<255||a<255||h<255);)o=Math.min(255,o+Math.ceil(.1*(255-o))),a=Math.min(255,a+Math.ceil(.1*(255-a))),h=Math.min(255,h+Math.ceil(.1*(255-h))),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}e.ensureContrastRatio=function(e,s,r){const n=c.relativeLuminance(e>>8),o=c.relativeLuminance(s>>8);if(_(n,o)<r){if(o<n){const o=t(e,s,r),a=_(n,c.relativeLuminance(o>>8));if(a<r){const t=i(e,s,r);return a>_(n,c.relativeLuminance(t>>8))?o:t}return o}const a=i(e,s,r),h=_(n,c.relativeLuminance(a>>8));if(h<r){const i=t(e,s,r);return h>_(n,c.relativeLuminance(i>>8))?a:i}return a}},e.reduceLuminance=t,e.increaseLuminance=i,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},e.toColor=function(e,t,i,s){return{css:h.toCss(e,t,i,s),rgba:h.toRgba(e,t,i,s)}}}(l=t.rgba||(t.rgba={})),t.toPaddedHex=d,t.contrastRatio=_},8969:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreTerminal=void 0;const s=i(844),r=i(2585),n=i(4348),o=i(7866),a=i(744),h=i(7302),c=i(6975),l=i(8460),d=i(1753),_=i(1480),u=i(7994),f=i(9282),v=i(5435),g=i(5981),p=i(2660);let S=!1;class m extends s.Disposable{constructor(e){super(),this._onBinary=this.register(new l.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new l.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new l.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new l.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new l.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new l.EventEmitter),this._instantiationService=new n.InstantiationService,this.optionsService=this.register(new h.OptionsService(e)),this._instantiationService.setService(r.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(a.BufferService)),this._instantiationService.setService(r.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(o.LogService)),this._instantiationService.setService(r.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(c.CoreService)),this._instantiationService.setService(r.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(r.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(_.UnicodeService)),this._instantiationService.setService(r.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(u.CharsetService),this._instantiationService.setService(r.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(p.OscLinkService),this._instantiationService.setService(r.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new v.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,l.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,l.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,l.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,l.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange([\"windowsMode\",\"windowsPty\"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new g.WriteBuffer(((e,t)=>this._inputHandler.parse(e,t)))),this.register((0,l.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed)),this.register((0,s.toDisposable)((()=>{var e;null===(e=this._windowsWrappingHeuristics)||void 0===e||e.dispose(),this._windowsWrappingHeuristics=void 0})))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new l.EventEmitter),this._onScroll.event((e=>{var t;null===(t=this._onScrollApi)||void 0===t||t.fire(e.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(const t in e)this.optionsService.options[t]=e[t]}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=r.LogLevelEnum.WARN&&!S&&(this._logService.warn(\"writeSync is unreliable and will be removed soon.\"),S=!0),this._writeBuffer.writeSync(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,a.MINIMUM_COLS),t=Math.max(t,a.MINIMUM_ROWS),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t,i){this._bufferService.scrollLines(e,t,i)}scrollPages(e){this._bufferService.scrollPages(e)}scrollToTop(){this._bufferService.scrollToTop()}scrollToBottom(){this._bufferService.scrollToBottom()}scrollToLine(e){this._bufferService.scrollToLine(e)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){var e;let t=!1;const i=this.optionsService.rawOptions.windowsPty;i&&void 0!==i.buildNumber&&void 0!==i.buildNumber?t=!!(\"conpty\"===i.backend&&i.buildNumber<21376):this.optionsService.rawOptions.windowsMode&&(t=!0),t?this._enableWindowsWrappingHeuristics():(null===(e=this._windowsWrappingHeuristics)||void 0===e||e.dispose(),this._windowsWrappingHeuristics=void 0)}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics){const e=[];e.push(this.onLineFeed(f.updateWindowsModeWrappedState.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:\"H\"},(()=>((0,f.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics=(0,s.toDisposable)((()=>{for(const t of e)t.dispose()}))}}}t.CoreTerminal=m},8460:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let e=0;e<this._listeners.length;e++)i.push(this._listeners[e]);for(let s=0;s<i.length;s++)i[s].call(void 0,e,t)}dispose(){this._listeners&&(this._listeners.length=0),this._disposed=!0}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))}},5435:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;const n=i(2584),o=i(7116),a=i(2015),h=i(844),c=i(482),l=i(8437),d=i(8460),_=i(643),u=i(511),f=i(3734),v=i(2585),g=i(6242),p=i(6351),S=i(5941),m={\"(\":0,\")\":1,\"*\":2,\"+\":3,\"-\":1,\".\":2},C=131072;function b(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var y;!function(e){e[e.GET_WIN_SIZE_PIXELS=0]=\"GET_WIN_SIZE_PIXELS\",e[e.GET_CELL_SIZE_PIXELS=1]=\"GET_CELL_SIZE_PIXELS\"}(y=t.WindowsOptionsReportType||(t.WindowsOptionsReportType={}));let w=0;class E extends h.Disposable{constructor(e,t,i,s,r,h,_,f,v=new a.EscapeSequenceParser){super(),this._bufferService=e,this._charsetService=t,this._coreService=i,this._logService=s,this._optionsService=r,this._oscLinkService=h,this._coreMouseService=_,this._unicodeService=f,this._parser=v,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new c.StringToUtf32,this._utf8Decoder=new c.Utf8ToUtf32,this._workCell=new u.CellData,this._windowTitle=\"\",this._iconName=\"\",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new L(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._parser.setCsiHandlerFallback(((e,t)=>{this._logService.debug(\"Unknown CSI code: \",{identifier:this._parser.identToString(e),params:t.toArray()})})),this._parser.setEscHandlerFallback((e=>{this._logService.debug(\"Unknown ESC code: \",{identifier:this._parser.identToString(e)})})),this._parser.setExecuteHandlerFallback((e=>{this._logService.debug(\"Unknown EXECUTE code: \",{code:e})})),this._parser.setOscHandlerFallback(((e,t,i)=>{this._logService.debug(\"Unknown OSC code: \",{identifier:e,action:t,data:i})})),this._parser.setDcsHandlerFallback(((e,t,i)=>{\"HOOK\"===t&&(i=i.toArray()),this._logService.debug(\"Unknown DCS code: \",{identifier:this._parser.identToString(e),action:t,payload:i})})),this._parser.setPrintHandler(((e,t,i)=>this.print(e,t,i))),this._parser.registerCsiHandler({final:\"@\"},(e=>this.insertChars(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"@\"},(e=>this.scrollLeft(e))),this._parser.registerCsiHandler({final:\"A\"},(e=>this.cursorUp(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"A\"},(e=>this.scrollRight(e))),this._parser.registerCsiHandler({final:\"B\"},(e=>this.cursorDown(e))),this._parser.registerCsiHandler({final:\"C\"},(e=>this.cursorForward(e))),this._parser.registerCsiHandler({final:\"D\"},(e=>this.cursorBackward(e))),this._parser.registerCsiHandler({final:\"E\"},(e=>this.cursorNextLine(e))),this._parser.registerCsiHandler({final:\"F\"},(e=>this.cursorPrecedingLine(e))),this._parser.registerCsiHandler({final:\"G\"},(e=>this.cursorCharAbsolute(e))),this._parser.registerCsiHandler({final:\"H\"},(e=>this.cursorPosition(e))),this._parser.registerCsiHandler({final:\"I\"},(e=>this.cursorForwardTab(e))),this._parser.registerCsiHandler({final:\"J\"},(e=>this.eraseInDisplay(e,!1))),this._parser.registerCsiHandler({prefix:\"?\",final:\"J\"},(e=>this.eraseInDisplay(e,!0))),this._parser.registerCsiHandler({final:\"K\"},(e=>this.eraseInLine(e,!1))),this._parser.registerCsiHandler({prefix:\"?\",final:\"K\"},(e=>this.eraseInLine(e,!0))),this._parser.registerCsiHandler({final:\"L\"},(e=>this.insertLines(e))),this._parser.registerCsiHandler({final:\"M\"},(e=>this.deleteLines(e))),this._parser.registerCsiHandler({final:\"P\"},(e=>this.deleteChars(e))),this._parser.registerCsiHandler({final:\"S\"},(e=>this.scrollUp(e))),this._parser.registerCsiHandler({final:\"T\"},(e=>this.scrollDown(e))),this._parser.registerCsiHandler({final:\"X\"},(e=>this.eraseChars(e))),this._parser.registerCsiHandler({final:\"Z\"},(e=>this.cursorBackwardTab(e))),this._parser.registerCsiHandler({final:\"`\"},(e=>this.charPosAbsolute(e))),this._parser.registerCsiHandler({final:\"a\"},(e=>this.hPositionRelative(e))),this._parser.registerCsiHandler({final:\"b\"},(e=>this.repeatPrecedingCharacter(e))),this._parser.registerCsiHandler({final:\"c\"},(e=>this.sendDeviceAttributesPrimary(e))),this._parser.registerCsiHandler({prefix:\">\",final:\"c\"},(e=>this.sendDeviceAttributesSecondary(e))),this._parser.registerCsiHandler({final:\"d\"},(e=>this.linePosAbsolute(e))),this._parser.registerCsiHandler({final:\"e\"},(e=>this.vPositionRelative(e))),this._parser.registerCsiHandler({final:\"f\"},(e=>this.hVPosition(e))),this._parser.registerCsiHandler({final:\"g\"},(e=>this.tabClear(e))),this._parser.registerCsiHandler({final:\"h\"},(e=>this.setMode(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"h\"},(e=>this.setModePrivate(e))),this._parser.registerCsiHandler({final:\"l\"},(e=>this.resetMode(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"l\"},(e=>this.resetModePrivate(e))),this._parser.registerCsiHandler({final:\"m\"},(e=>this.charAttributes(e))),this._parser.registerCsiHandler({final:\"n\"},(e=>this.deviceStatus(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"n\"},(e=>this.deviceStatusPrivate(e))),this._parser.registerCsiHandler({intermediates:\"!\",final:\"p\"},(e=>this.softReset(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"q\"},(e=>this.setCursorStyle(e))),this._parser.registerCsiHandler({final:\"r\"},(e=>this.setScrollRegion(e))),this._parser.registerCsiHandler({final:\"s\"},(e=>this.saveCursor(e))),this._parser.registerCsiHandler({final:\"t\"},(e=>this.windowOptions(e))),this._parser.registerCsiHandler({final:\"u\"},(e=>this.restoreCursor(e))),this._parser.registerCsiHandler({intermediates:\"'\",final:\"}\"},(e=>this.insertColumns(e))),this._parser.registerCsiHandler({intermediates:\"'\",final:\"~\"},(e=>this.deleteColumns(e))),this._parser.registerCsiHandler({intermediates:'\"',final:\"q\"},(e=>this.selectProtected(e))),this._parser.registerCsiHandler({intermediates:\"$\",final:\"p\"},(e=>this.requestMode(e,!0))),this._parser.registerCsiHandler({prefix:\"?\",intermediates:\"$\",final:\"p\"},(e=>this.requestMode(e,!1))),this._parser.setExecuteHandler(n.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(n.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(n.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(n.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(n.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(n.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(n.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(n.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(n.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new g.OscHandler((e=>(this.setTitle(e),this.setIconName(e),!0)))),this._parser.registerOscHandler(1,new g.OscHandler((e=>this.setIconName(e)))),this._parser.registerOscHandler(2,new g.OscHandler((e=>this.setTitle(e)))),this._parser.registerOscHandler(4,new g.OscHandler((e=>this.setOrReportIndexedColor(e)))),this._parser.registerOscHandler(8,new g.OscHandler((e=>this.setHyperlink(e)))),this._parser.registerOscHandler(10,new g.OscHandler((e=>this.setOrReportFgColor(e)))),this._parser.registerOscHandler(11,new g.OscHandler((e=>this.setOrReportBgColor(e)))),this._parser.registerOscHandler(12,new g.OscHandler((e=>this.setOrReportCursorColor(e)))),this._parser.registerOscHandler(104,new g.OscHandler((e=>this.restoreIndexedColor(e)))),this._parser.registerOscHandler(110,new g.OscHandler((e=>this.restoreFgColor(e)))),this._parser.registerOscHandler(111,new g.OscHandler((e=>this.restoreBgColor(e)))),this._parser.registerOscHandler(112,new g.OscHandler((e=>this.restoreCursorColor(e)))),this._parser.registerEscHandler({final:\"7\"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:\"8\"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:\"D\"},(()=>this.index())),this._parser.registerEscHandler({final:\"E\"},(()=>this.nextLine())),this._parser.registerEscHandler({final:\"H\"},(()=>this.tabSet())),this._parser.registerEscHandler({final:\"M\"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:\"=\"},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:\">\"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:\"c\"},(()=>this.fullReset())),this._parser.registerEscHandler({final:\"n\"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:\"o\"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:\"|\"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:\"}\"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:\"~\"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:\"%\",final:\"@\"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:\"%\",final:\"G\"},(()=>this.selectDefaultCharset()));for(const e in o.CHARSETS)this._parser.registerEscHandler({intermediates:\"(\",final:e},(()=>this.selectCharset(\"(\"+e))),this._parser.registerEscHandler({intermediates:\")\",final:e},(()=>this.selectCharset(\")\"+e))),this._parser.registerEscHandler({intermediates:\"*\",final:e},(()=>this.selectCharset(\"*\"+e))),this._parser.registerEscHandler({intermediates:\"+\",final:e},(()=>this.selectCharset(\"+\"+e))),this._parser.registerEscHandler({intermediates:\"-\",final:e},(()=>this.selectCharset(\"-\"+e))),this._parser.registerEscHandler({intermediates:\".\",final:e},(()=>this.selectCharset(\".\"+e))),this._parser.registerEscHandler({intermediates:\"/\",final:e},(()=>this.selectCharset(\"/\"+e)));this._parser.registerEscHandler({intermediates:\"#\",final:\"8\"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((e=>(this._logService.error(\"Parsing error: \",e),e))),this._parser.registerDcsHandler({intermediates:\"$\",final:\"q\"},new p.DcsHandler(((e,t)=>this.requestStatusString(e,t))))}getAttrData(){return this._curAttrData}_preserveStack(e,t,i,s){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=i,this._parseStack.position=s}_logSlowResolvingAsync(e){this._logService.logLevel<=v.LogLevelEnum.WARN&&Promise.race([e,new Promise(((e,t)=>setTimeout((()=>t(\"#SLOW_TIMEOUT\")),5e3)))]).catch((e=>{if(\"#SLOW_TIMEOUT\"!==e)throw e;console.warn(\"async parser handler taking longer than 5000 ms\")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let i,s=this._activeBuffer.x,r=this._activeBuffer.y,n=0;const o=this._parseStack.paused;if(o){if(i=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(i),i;s=this._parseStack.cursorStartX,r=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>C&&(n=this._parseStack.position+C)}if(this._logService.logLevel<=v.LogLevelEnum.DEBUG&&this._logService.debug(\"parsing data\"+(\"string\"==typeof e?` \"${e}\"`:` \"${Array.prototype.map.call(e,(e=>String.fromCharCode(e))).join(\"\")}\"`),\"string\"==typeof e?e.split(\"\").map((e=>e.charCodeAt(0))):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<C&&(this._parseBuffer=new Uint32Array(Math.min(e.length,C))),o||this._dirtyRowTracker.clearRange(),e.length>C)for(let t=n;t<e.length;t+=C){const n=t+C<e.length?t+C:e.length,o=\"string\"==typeof e?this._stringDecoder.decode(e.substring(t,n),this._parseBuffer):this._utf8Decoder.decode(e.subarray(t,n),this._parseBuffer);if(i=this._parser.parse(this._parseBuffer,o))return this._preserveStack(s,r,o,t),this._logSlowResolvingAsync(i),i}else if(!o){const t=\"string\"==typeof e?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(i=this._parser.parse(this._parseBuffer,t))return this._preserveStack(s,r,t,0),this._logSlowResolvingAsync(i),i}this._activeBuffer.x===s&&this._activeBuffer.y===r||this._onCursorMove.fire(),this._onRequestRefreshRows.fire(this._dirtyRowTracker.start,this._dirtyRowTracker.end)}print(e,t,i){let s,r;const n=this._charsetService.charset,o=this._optionsService.rawOptions.screenReaderMode,a=this._bufferService.cols,h=this._coreService.decPrivateModes.wraparound,l=this._coreService.modes.insertMode,d=this._curAttrData;let u=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&i-t>0&&2===u.getWidth(this._activeBuffer.x-1)&&u.setCellFromCodePoint(this._activeBuffer.x-1,0,1,d.fg,d.bg,d.extended);for(let f=t;f<i;++f){if(s=e[f],r=this._unicodeService.wcwidth(s),s<127&&n){const e=n[String.fromCharCode(s)];e&&(s=e.charCodeAt(0))}if(o&&this._onA11yChar.fire((0,c.stringFromCodePoint)(s)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),r||!this._activeBuffer.x){if(this._activeBuffer.x+r-1>=a)if(h){for(;this._activeBuffer.x<a;)u.setCellFromCodePoint(this._activeBuffer.x++,0,1,d.fg,d.bg,d.extended);this._activeBuffer.x=0,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),u=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)}else if(this._activeBuffer.x=a-1,2===r)continue;if(l&&(u.insertCells(this._activeBuffer.x,r,this._activeBuffer.getNullCell(d),d),2===u.getWidth(a-1)&&u.setCellFromCodePoint(a-1,_.NULL_CELL_CODE,_.NULL_CELL_WIDTH,d.fg,d.bg,d.extended)),u.setCellFromCodePoint(this._activeBuffer.x++,s,r,d.fg,d.bg,d.extended),r>0)for(;--r;)u.setCellFromCodePoint(this._activeBuffer.x++,0,0,d.fg,d.bg,d.extended)}else u.getWidth(this._activeBuffer.x-1)?u.addCodepointToCell(this._activeBuffer.x-1,s):u.addCodepointToCell(this._activeBuffer.x-2,s)}i-t>0&&(u.loadCell(this._activeBuffer.x-1,this._workCell),2===this._workCell.getWidth()||this._workCell.getCode()>65535?this._parser.precedingCodepoint=0:this._workCell.isCombined()?this._parser.precedingCodepoint=this._workCell.getChars().charCodeAt(0):this._parser.precedingCodepoint=this._workCell.content),this._activeBuffer.x<a&&i-t>0&&0===u.getWidth(this._activeBuffer.x)&&!u.hasContent(this._activeBuffer.x)&&u.setCellFromCodePoint(this._activeBuffer.x,0,1,d.fg,d.bg,d.extended),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return\"t\"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,t):this._parser.registerCsiHandler(e,(e=>!b(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)))}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new p.DcsHandler(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new g.OscHandler(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){var e;if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&(null===(e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y))||void 0===e?void 0:e.isWrapped)){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){const t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){const t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){const t=e.params[0];return 0===t?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===t&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){const t=e.params[0];return 1===t&&(this._curAttrData.bg|=536870912),2!==t&&0!==t||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,i,s=!1,r=!1){const n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.replaceCells(t,i,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData(),r),s&&(n.isWrapped=!1)}_resetBufferLine(e,t=!1){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i&&(i.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),i.isWrapped=!1)}eraseInDisplay(e,t=!1){let i;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);i<this._bufferService.rows;i++)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(i);break;case 1:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i,0,this._activeBuffer.x+1,!0,t),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(i+1).isWrapped=!1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 2:for(i=this._bufferService.rows,this._dirtyRowTracker.markDirty(i-1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 3:const e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const i=this._activeBuffer.ybase+this._activeBuffer.y,s=this._bufferService.rows-1-this._activeBuffer.scrollBottom,r=this._bufferService.rows-1+this._activeBuffer.ybase-s+1;for(;t--;)this._activeBuffer.lines.splice(r-1,1),this._activeBuffer.lines.splice(i,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const i=this._activeBuffer.ybase+this._activeBuffer.y;let s;for(s=this._bufferService.rows-1-this._activeBuffer.scrollBottom,s=this._bufferService.rows-1+this._activeBuffer.ybase-s;t--;)this._activeBuffer.lines.splice(i,1),this._activeBuffer.lines.splice(s,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.insertCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(l.DEFAULT_ATTR_DATA));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.deleteCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.insertCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.insertCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.deleteCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(e.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(e){if(!this._parser.precedingCodepoint)return!0;const t=e.params[0]||1,i=new Uint32Array(t);for(let e=0;e<t;++e)i[e]=this._parser.precedingCodepoint;return this.print(i,0,i.length),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is(\"xterm\")||this._is(\"rxvt-unicode\")||this._is(\"screen\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[?1;2c\"):this._is(\"linux\")&&this._coreService.triggerDataEvent(n.C0.ESC+\"[?6c\")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is(\"xterm\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[>0;276;0c\"):this._is(\"rxvt-unicode\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[>85;95;0c\"):this._is(\"linux\")?this._coreService.triggerDataEvent(e.params[0]+\"c\"):this._is(\"screen\")&&this._coreService.triggerDataEvent(n.C0.ESC+\"[>83;40003;0c\")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+\"\").indexOf(e)}setMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,o.DEFAULT_CHARSET),this._charsetService.setgCharset(1,o.DEFAULT_CHARSET),this._charsetService.setgCharset(2,o.DEFAULT_CHARSET),this._charsetService.setgCharset(3,o.DEFAULT_CHARSET);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug(\"Serial port requested application keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol=\"X10\";break;case 1e3:this._coreMouseService.activeProtocol=\"VT200\";break;case 1002:this._coreMouseService.activeProtocol=\"DRAG\";break;case 1003:this._coreMouseService.activeProtocol=\"ANY\";break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug(\"DECSET 1005 not supported (see #2507)\");break;case 1006:this._coreMouseService.activeEncoding=\"SGR\";break;case 1015:this._logService.debug(\"DECSET 1015 not supported (see #2507)\");break;case 1016:this._coreMouseService.activeEncoding=\"SGR_PIXELS\";break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0}return!0}resetMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug(\"Switching back to normal keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol=\"NONE\";break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug(\"DECRST 1005 not supported (see #2507)\");break;case 1006:case 1016:this._coreMouseService.activeEncoding=\"DEFAULT\";break;case 1015:this._logService.debug(\"DECRST 1015 not supported (see #2507)\");break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),1049===e.params[t]&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1}return!0}requestMode(e,t){const i=this._coreService.decPrivateModes,{activeProtocol:s,activeEncoding:r}=this._coreMouseService,o=this._coreService,{buffers:a,cols:h}=this._bufferService,{active:c,alt:l}=a,d=this._optionsService.rawOptions,_=e=>e?1:2,u=e.params[0];return f=u,v=t?2===u?4:4===u?_(o.modes.insertMode):12===u?3:20===u?_(d.convertEol):0:1===u?_(i.applicationCursorKeys):3===u?d.windowOptions.setWinLines?80===h?2:132===h?1:0:0:6===u?_(i.origin):7===u?_(i.wraparound):8===u?3:9===u?_(\"X10\"===s):12===u?_(d.cursorBlink):25===u?_(!o.isCursorHidden):45===u?_(i.reverseWraparound):66===u?_(i.applicationKeypad):67===u?4:1e3===u?_(\"VT200\"===s):1002===u?_(\"DRAG\"===s):1003===u?_(\"ANY\"===s):1004===u?_(i.sendFocus):1005===u?4:1006===u?_(\"SGR\"===r):1015===u?4:1016===u?_(\"SGR_PIXELS\"===r):1048===u?1:47===u||1047===u||1049===u?_(c===l):2004===u?_(i.bracketedPasteMode):0,o.triggerDataEvent(`${n.C0.ESC}[${t?\"\":\"?\"}${f};${v}$y`),!0;var f,v}_updateAttrColor(e,t,i,s,r){return 2===t?(e|=50331648,e&=-16777216,e|=f.AttributeData.fromColorRGB([i,s,r])):5===t&&(e&=-50331904,e|=33554432|255&i),e}_extractColor(e,t,i){const s=[0,0,-1,0,0,0];let r=0,n=0;do{if(s[n+r]=e.params[t+n],e.hasSubParams(t+n)){const i=e.getSubParams(t+n);let o=0;do{5===s[1]&&(r=1),s[n+o+1+r]=i[o]}while(++o<i.length&&o+n+1+r<s.length);break}if(5===s[1]&&n+r>=2||2===s[1]&&n+r>=5)break;s[1]&&(r=1)}while(++n+t<e.length&&n+r<s.length);for(let e=2;e<s.length;++e)-1===s[e]&&(s[e]=0);switch(s[0]){case 38:i.fg=this._updateAttrColor(i.fg,s[1],s[3],s[4],s[5]);break;case 48:i.bg=this._updateAttrColor(i.bg,s[1],s[3],s[4],s[5]);break;case 58:i.extended=i.extended.clone(),i.extended.underlineColor=this._updateAttrColor(i.extended.underlineColor,s[1],s[3],s[4],s[5])}return n}_processUnderline(e,t){t.extended=t.extended.clone(),(!~e||e>5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,0===e&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=l.DEFAULT_ATTR_DATA.fg,e.bg=l.DEFAULT_ATTR_DATA.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._processSGR0(this._curAttrData),!0;const t=e.length;let i;const s=this._curAttrData;for(let r=0;r<t;r++)i=e.params[r],i>=30&&i<=37?(s.fg&=-50331904,s.fg|=16777216|i-30):i>=40&&i<=47?(s.bg&=-50331904,s.bg|=16777216|i-40):i>=90&&i<=97?(s.fg&=-50331904,s.fg|=16777224|i-90):i>=100&&i<=107?(s.bg&=-50331904,s.bg|=16777224|i-100):0===i?this._processSGR0(s):1===i?s.fg|=134217728:3===i?s.bg|=67108864:4===i?(s.fg|=268435456,this._processUnderline(e.hasSubParams(r)?e.getSubParams(r)[0]:1,s)):5===i?s.fg|=536870912:7===i?s.fg|=67108864:8===i?s.fg|=1073741824:9===i?s.fg|=2147483648:2===i?s.bg|=134217728:21===i?this._processUnderline(2,s):22===i?(s.fg&=-134217729,s.bg&=-134217729):23===i?s.bg&=-67108865:24===i?(s.fg&=-268435457,this._processUnderline(0,s)):25===i?s.fg&=-536870913:27===i?s.fg&=-67108865:28===i?s.fg&=-1073741825:29===i?s.fg&=2147483647:39===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg):49===i?(s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):38===i||48===i||58===i?r+=this._extractColor(e,r,s):53===i?s.bg|=1073741824:55===i?s.bg&=-1073741825:59===i?(s.extended=s.extended.clone(),s.extended.underlineColor=-1,s.updateExtended()):100===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg,s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):this._logService.debug(\"Unknown SGR attribute: %d.\",i);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${n.C0.ESC}[0n`);break;case 6:const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){const t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle=\"block\";break;case 3:case 4:this._optionsService.options.cursorStyle=\"underline\";break;case 5:case 6:this._optionsService.options.cursorStyle=\"bar\"}const i=t%2==1;return this._optionsService.options.cursorBlink=i,!0}setScrollRegion(e){const t=e.params[0]||1;let i;return(e.length<2||(i=e.params[1])>this._bufferService.rows||0===i)&&(i=this._bufferService.rows),i>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=i-1,this._setCursor(0,0)),!0}windowOptions(e){if(!b(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;const t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==t&&this._onRequestWindowsOptionsReport.fire(y.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(y.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${n.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==t&&2!==t||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==t&&1!==t||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==t&&2!==t||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==t&&1!==t||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){const t=[],i=e.split(\";\");for(;i.length>1;){const e=i.shift(),s=i.shift();if(/^\\d+$/.exec(e)){const i=parseInt(e);if(0<=i&&i<256)if(\"?\"===s)t.push({type:0,index:i});else{const e=(0,S.parseColor)(s);e&&t.push({type:1,index:i,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){const t=e.split(\";\");return!(t.length<2)&&(t[1]?this._createHyperlink(t[0],t[1]):!t[0]&&this._finishHyperlink())}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();const i=e.split(\":\");let s;const r=i.findIndex((e=>e.startsWith(\"id=\")));return-1!==r&&(s=i[r].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:s,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){const i=e.split(\";\");for(let e=0;e<i.length&&!(t>=this._specialColors.length);++e,++t)if(\"?\"===i[e])this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{const s=(0,S.parseColor)(i[e]);s&&this._onColor.fire([{type:1,index:this._specialColors[t],color:s}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;const t=[],i=e.split(\";\");for(let e=0;e<i.length;++e)if(/^\\d+$/.exec(i[e])){const s=parseInt(i[e]);0<=s&&s<256&&t.push({type:2,index:s})}return t.length&&this._onColor.fire(t),!0}restoreFgColor(e){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(e){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(e){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug(\"Serial port requested application keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug(\"Switching back to normal keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,o.DEFAULT_CHARSET),!0}selectCharset(e){return 2!==e.length?(this.selectDefaultCharset(),!0):(\"/\"===e[0]||this._charsetService.setgCharset(m[e[0]],o.CHARSETS[e[1]]||o.DEFAULT_CHARSET),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){const e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){const e=new u.CellData;e.content=1<<22|\"E\".charCodeAt(0),e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t<this._bufferService.rows;++t){const i=this._activeBuffer.ybase+this._activeBuffer.y+t,s=this._activeBuffer.lines.get(i);s&&(s.fill(e),s.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,t){const i=this._bufferService.buffer,s=this._optionsService.rawOptions;return(e=>(this._coreService.triggerDataEvent(`${n.C0.ESC}${e}${n.C0.ESC}\\\\`),!0))('\"q'===e?`P1$r${this._curAttrData.isProtected()?1:0}\"q`:'\"p'===e?'P1$r61;1\"p':\"r\"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:\"m\"===e?\"P1$r0m\":\" q\"===e?`P1$r${{block:2,underline:4,bar:6}[s.cursorStyle]-(s.cursorBlink?1:0)} q`:\"P0$r\")}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}}t.InputHandler=E;let L=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){e<this.start?this.start=e:e>this.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(w=e,e=t,t=w),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};L=s([r(0,v.IBufferService)],L)},844:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},1505:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){var r;return null===(r=this._data.get(e,t))||void 0===r?void 0:r.get(i,s)}clear(){this._data.clear()}}},6114:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=\"undefined\"==typeof navigator;const i=t.isNode?\"node\":navigator.userAgent,s=t.isNode?\"node\":navigator.platform;t.isFirefox=i.includes(\"Firefox\"),t.isLegacyEdge=i.includes(\"Edge\"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\\/(\\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=[\"Macintosh\",\"MacIntel\",\"MacPPC\",\"Mac68K\"].includes(s),t.isIpad=\"iPad\"===s,t.isIphone=\"iPhone\"===s,t.isWindows=[\"Windows\",\"Win16\",\"Win32\",\"WinCE\"].includes(s),t.isLinux=s.indexOf(\"Linux\")>=0,t.isChromeOS=/\\bCrOS\\b/.test(i)},6106:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SortedList=void 0;let i=0;t.SortedList=class{constructor(e){this._getKey=e,this._array=[]}clear(){this._array.length=0}insert(e){0!==this._array.length?(i=this._search(this._getKey(e),0,this._array.length-1),this._array.splice(i,0,e)):this._array.push(e)}delete(e){if(0===this._array.length)return!1;const t=this._getKey(e);if(void 0===t)return!1;if(i=this._search(t,0,this._array.length-1),-1===i)return!1;if(this._getKey(this._array[i])!==t)return!1;do{if(this._array[i]===e)return this._array.splice(i,1),!0}while(++i<this._array.length&&this._getKey(this._array[i])===t);return!1}*getKeyIterator(e){if(0!==this._array.length&&(i=this._search(e,0,this._array.length-1),!(i<0||i>=this._array.length)&&this._getKey(this._array[i])===e))do{yield this._array[i]}while(++i<this._array.length&&this._getKey(this._array[i])===e)}forEachByKey(e,t){if(0!==this._array.length&&(i=this._search(e,0,this._array.length-1),!(i<0||i>=this._array.length)&&this._getKey(this._array[i])===e))do{t(this._array[i])}while(++i<this._array.length&&this._getKey(this._array[i])===e)}values(){return this._array.values()}_search(e,t,i){if(i<t)return t;let s=Math.floor((t+i)/2);const r=this._getKey(this._array[s]);if(r>e)return this._search(e,t,s-1);if(r<e)return this._search(e,s+1,i);for(;s>0&&this._getKey(this._array[s-1])===e;)s--;return s}}},7226:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(6114);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,i=0,s=e.timeRemaining(),r=0;for(;this._i<this._tasks.length;){if(t=Date.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,Date.now()-t),i=Math.max(t,i),r=e.timeRemaining(),1.5*i>r)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class n extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=n,t.IdleTaskQueue=!s.isNode&&\"requestIdleCallback\"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:n,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},9282:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.updateWindowsModeWrappedState=void 0;const s=i(643);t.updateWindowsModeWrappedState=function(e){const t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1),i=null==t?void 0:t.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&i&&(r.isWrapped=i[s.CHAR_DATA_CODE_INDEX]!==s.NULL_CELL_CODE&&i[s.CHAR_DATA_CODE_INDEX]!==s.WHITESPACE_CELL_CODE)}},3734:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}t.AttributeData=i;class s{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},9092:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;const s=i(6349),r=i(8437),n=i(511),o=i(643),a=i(4634),h=i(4863),c=i(7116),l=i(3734),d=i(7226);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=r.DEFAULT_ATTR_DATA.clone(),this.savedCharset=c.DEFAULT_CHARSET,this.markers=[],this._nullCell=n.CellData.fromCharData([0,o.NULL_CELL_CHAR,o.NULL_CELL_WIDTH,o.NULL_CELL_CODE]),this._whitespaceCell=n.CellData.fromCharData([0,o.WHITESPACE_CELL_CHAR,o.WHITESPACE_CELL_WIDTH,o.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new d.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new l.ExtendedAttrs),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new l.ExtendedAttrs),this._whitespaceCell}getBlankLine(e,t){return new r.BufferLine(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows}_getCorrectBufferLength(e){if(!this._hasScrollback)return e;const i=e+this._optionsService.rawOptions.scrollback;return i>t.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=r.DEFAULT_ATTR_DATA);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){const i=this.getNullCell(r.DEFAULT_ATTR_DATA);let s=0;const n=this._getCorrectBufferLength(t);if(n>this.lines.maxLength&&(this.lines.maxLength=n),this.lines.length>0){if(this._cols<e)for(let t=0;t<this.lines.length;t++)s+=+this.lines.get(t).resize(e,i);let o=0;if(this._rows<t)for(let s=this._rows;s<t;s++)this.lines.length<t+this.ybase&&(this._optionsService.rawOptions.windowsMode||void 0!==this._optionsService.rawOptions.windowsPty.backend||void 0!==this._optionsService.rawOptions.windowsPty.buildNumber?this.lines.push(new r.BufferLine(e,i)):this.ybase>0&&this.lines.length<=this.ybase+this.y+o+1?(this.ybase--,o++,this.ydisp>0&&this.ydisp--):this.lines.push(new r.BufferLine(e,i)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(n<this.lines.maxLength){const e=this.lines.length-n;e>0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=n}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),o&&(this.y+=o),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;t<this.lines.length;t++)s+=+this.lines.get(t).resize(e,i);this._cols=e,this._rows=t,this._memoryCleanupQueue.clear(),s>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition<this.lines.length;)if(t+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),t>100)return!0;return e}get _isReflowEnabled(){const e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&\"conpty\"===e.backend&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){const i=(0,a.reflowLargerGetLinesToRemove)(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(r.DEFAULT_ATTR_DATA));if(i.length>0){const s=(0,a.reflowLargerCreateNewLayout)(this.lines,i);(0,a.reflowLargerApplyNewLayout)(this.lines,s.layout),this._reflowLargerAdjustViewport(e,t,s.countRemoved)}}_reflowLargerAdjustViewport(e,t,i){const s=this.getNullCell(r.DEFAULT_ATTR_DATA);let n=i;for(;n-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new r.BufferLine(e,s))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-i,0)}_reflowSmaller(e,t){const i=this.getNullCell(r.DEFAULT_ATTR_DATA),s=[];let n=0;for(let o=this.lines.length-1;o>=0;o--){let h=this.lines.get(o);if(!h||!h.isWrapped&&h.getTrimmedLength()<=e)continue;const c=[h];for(;h.isWrapped&&o>0;)h=this.lines.get(--o),c.unshift(h);const l=this.ybase+this.y;if(l>=o&&l<o+c.length)continue;const d=c[c.length-1].getTrimmedLength(),_=(0,a.reflowSmallerGetNewLineLengths)(c,this._cols,e),u=_.length-c.length;let f;f=0===this.ybase&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+u):Math.max(0,this.lines.length-this.lines.maxLength+u);const v=[];for(let e=0;e<u;e++){const e=this.getBlankLine(r.DEFAULT_ATTR_DATA,!0);v.push(e)}v.length>0&&(s.push({start:o+c.length+n,newLines:v}),n+=v.length),c.push(...v);let g=_.length-1,p=_[g];0===p&&(g--,p=_[g]);let S=c.length-u-1,m=d;for(;S>=0;){const e=Math.min(m,p);if(void 0===c[g])break;if(c[g].copyCellsFrom(c[S],m-e,p-e,e,!0),p-=e,0===p&&(g--,p=_[g]),m-=e,0===m){S--;const e=Math.max(S,0);m=(0,a.getWrappedLineTrimmedLength)(c,e,this._cols)}}for(let t=0;t<c.length;t++)_[t]<e&&c[t].setCell(_[t],i);let C=u-f;for(;C-- >0;)0===this.ybase?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+n)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+u,this.ybase+t-1)}if(s.length>0){const e=[],t=[];for(let e=0;e<this.lines.length;e++)t.push(this.lines.get(e));const i=this.lines.length;let r=i-1,o=0,a=s[o];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+n);let h=0;for(let c=Math.min(this.lines.maxLength-1,i+n-1);c>=0;c--)if(a&&a.start>r+h){for(let e=a.newLines.length-1;e>=0;e--)this.lines.set(c--,a.newLines[e]);c++,e.push({index:r+1,amount:a.newLines.length}),h+=a.newLines.length,a=s[++o]}else this.lines.set(c,t[r--]);let c=0;for(let t=e.length-1;t>=0;t--)e[t].index+=c,this.lines.onInsertEmitter.fire(e[t]),c+=e[t].amount;const l=Math.max(0,i+n-this.lines.maxLength);l>0&&this.lines.onTrimEmitter.fire(l)}}translateBufferLineToString(e,t,i=0,s){const r=this.lines.get(e);return r?r.translateToString(t,i,s):\"\"}getWrappedRangeForLine(e){let t=e,i=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;i+1<this.lines.length&&this.lines.get(i+1).isWrapped;)i++;return{first:t,last:i}}setupTabStops(e){for(null!=e?this.tabs[e]||(e=this.prevStop(e)):(this.tabs={},e=0);e<this._cols;e+=this._optionsService.rawOptions.tabStopWidth)this.tabs[e]=!0}prevStop(e){for(null==e&&(e=this.x);!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t<this.markers.length;t++)this.markers[t].line===e&&(this.markers[t].dispose(),this.markers.splice(t--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let e=0;e<this.markers.length;e++)this.markers[e].dispose(),this.markers.splice(e--,1);this._isClearing=!1}addMarker(e){const t=new h.Marker(e);return this.markers.push(t),t.register(this.lines.onTrim((e=>{t.line-=e,t.line<0&&t.dispose()}))),t.register(this.lines.onInsert((e=>{t.line>=e.index&&(t.line+=e.amount)}))),t.register(this.lines.onDelete((e=>{t.line>=e.index&&t.line<e.index+e.amount&&t.dispose(),t.line>e.index&&(t.line-=e.amount)}))),t.register(t.onDispose((()=>this._removeMarker(t)))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}}},8437:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;const s=i(482),r=i(643),n=i(511),o=i(3734);t.DEFAULT_ATTR_DATA=Object.freeze(new o.AttributeData);let a=0;class h{constructor(e,t,i=!1){this.isWrapped=i,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);const s=t||n.CellData.fromCharData([0,r.NULL_CELL_CHAR,r.NULL_CELL_WIDTH,r.NULL_CELL_CODE]);for(let t=0;t<e;++t)this.setCell(t,s);this.length=e}get(e){const t=this._data[3*e+0],i=2097151&t;return[this._data[3*e+1],2097152&t?this._combined[e]:i?(0,s.stringFromCodePoint)(i):\"\",t>>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]}set(e,t){this._data[3*e+1]=t[r.CHAR_DATA_ATTR_INDEX],t[r.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[3*e+0]=2097152|e|t[r.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=t[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[r.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e]:2097151&t?(0,s.stringFromCodePoint)(2097151&t):\"\"}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,t){return a=3*e,t.content=this._data[a+0],t.fg=this._data[a+1],t.bg=this._data[a+2],2097152&t.content&&(t.combinedData=this._combined[e]),268435456&t.bg&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),268435456&t.bg&&(this._extendedAttrs[e]=t.extended),this._data[3*e+0]=t.content,this._data[3*e+1]=t.fg,this._data[3*e+2]=t.bg}setCellFromCodePoint(e,t,i,s,r,n){268435456&r&&(this._extendedAttrs[e]=n),this._data[3*e+0]=t|i<<22,this._data[3*e+1]=s,this._data[3*e+2]=r}addCodepointToCell(e,t){let i=this._data[3*e+0];2097152&i?this._combined[e]+=(0,s.stringFromCodePoint)(t):(2097151&i?(this._combined[e]=(0,s.stringFromCodePoint)(2097151&i)+(0,s.stringFromCodePoint)(t),i&=-2097152,i|=2097152):i=t|1<<22,this._data[3*e+0]=i)}insertCells(e,t,i,s){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),t<this.length-e){const s=new n.CellData;for(let i=this.length-e-t-1;i>=0;--i)this.setCell(e+t+i,this.loadCell(e+i,s));for(let s=0;s<t;++s)this.setCell(e+s,i)}else for(let t=e;t<this.length;++t)this.setCell(t,i);2===this.getWidth(this.length-1)&&this.setCellFromCodePoint(this.length-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs)}deleteCells(e,t,i,s){if(e%=this.length,t<this.length-e){const s=new n.CellData;for(let i=0;i<this.length-e-t;++i)this.setCell(e+i,this.loadCell(e+t+i,s));for(let e=this.length-t;e<this.length;++e)this.setCell(e,i)}else for(let t=e;t<this.length;++t)this.setCell(t,i);e&&2===this.getWidth(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),0!==this.getWidth(e)||this.hasContent(e)||this.setCellFromCodePoint(e,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs)}replaceCells(e,t,i,s,r=!1){if(r)for(e&&2===this.getWidth(e-1)&&!this.isProtected(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),t<this.length&&2===this.getWidth(t-1)&&!this.isProtected(t)&&this.setCellFromCodePoint(t,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs);e<t&&e<this.length;)this.isProtected(e)||this.setCell(e,i),e++;else for(e&&2===this.getWidth(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),t<this.length&&2===this.getWidth(t-1)&&this.setCellFromCodePoint(t,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs);e<t&&e<this.length;)this.setCell(e++,i)}resize(e,t){if(e===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;const i=3*e;if(e>this.length){if(this._data.buffer.byteLength>=4*i)this._data=new Uint32Array(this._data.buffer,0,i);else{const e=new Uint32Array(i);e.set(this._data),this._data=e}for(let i=this.length;i<e;++i)this.setCell(i,t)}else{this._data=this._data.subarray(0,i);const t=Object.keys(this._combined);for(let i=0;i<t.length;i++){const s=parseInt(t[i],10);s>=e&&delete this._combined[s]}const s=Object.keys(this._extendedAttrs);for(let t=0;t<s.length;t++){const i=parseInt(s[t],10);i>=e&&delete this._extendedAttrs[i]}}return this.length=e,4*i*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){const e=new Uint32Array(this._data.length);return e.set(this._data),this._data=e,1}return 0}fill(e,t=!1){if(t)for(let t=0;t<this.length;++t)this.isProtected(t)||this.setCell(t,e);else{this._combined={},this._extendedAttrs={};for(let t=0;t<this.length;++t)this.setCell(t,e)}}copyFrom(e){this.length!==e.length?this._data=new Uint32Array(e._data):this._data.set(e._data),this.length=e.length,this._combined={};for(const t in e._combined)this._combined[t]=e._combined[t];this._extendedAttrs={};for(const t in e._extendedAttrs)this._extendedAttrs[t]=e._extendedAttrs[t];this.isWrapped=e.isWrapped}clone(){const e=new h(0);e._data=new Uint32Array(this._data),e.length=this.length;for(const t in this._combined)e._combined[t]=this._combined[t];for(const t in this._extendedAttrs)e._extendedAttrs[t]=this._extendedAttrs[t];return e.isWrapped=this.isWrapped,e}getTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,t,i,s,r){const n=e._data;if(r)for(let r=s-1;r>=0;r--){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}else for(let r=0;r<s;r++){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}const o=Object.keys(e._combined);for(let s=0;s<o.length;s++){const r=parseInt(o[s],10);r>=t&&(this._combined[r-t+i]=e._combined[r])}}translateToString(e=!1,t=0,i=this.length){e&&(i=Math.min(i,this.getTrimmedLength()));let n=\"\";for(;t<i;){const e=this._data[3*t+0],i=2097151&e;n+=2097152&e?this._combined[t]:i?(0,s.stringFromCodePoint)(i):r.WHITESPACE_CELL_CHAR,t+=e>>22||1}return n}}t.BufferLine=h},4841:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(e,t){if(e.start.y>e.end.y)throw new Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}},4634:(e,t)=>{function i(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();const s=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),r=2===e[t+1].getWidth(0);return s&&r?i-1:i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(e,t,s,r,n){const o=[];for(let a=0;a<e.length-1;a++){let h=a,c=e.get(++h);if(!c.isWrapped)continue;const l=[e.get(a)];for(;h<e.length&&c.isWrapped;)l.push(c),c=e.get(++h);if(r>=a&&r<h){a+=l.length-1;continue}let d=0,_=i(l,d,t),u=1,f=0;for(;u<l.length;){const e=i(l,u,t),r=e-f,o=s-_,a=Math.min(r,o);l[d].copyCellsFrom(l[u],f,_,a,!1),_+=a,_===s&&(d++,_=0),f+=a,f===e&&(u++,f=0),0===_&&0!==d&&2===l[d-1].getWidth(s-1)&&(l[d].copyCellsFrom(l[d-1],s-1,_++,1,!1),l[d-1].setCell(s-1,n))}l[d].replaceCells(_,s,n);let v=0;for(let e=l.length-1;e>0&&(e>d||0===l[e].getTrimmedLength());e--)v++;v>0&&(o.push(a+l.length-v),o.push(v)),a+=l.length-1}return o},t.reflowLargerCreateNewLayout=function(e,t){const i=[];let s=0,r=t[s],n=0;for(let o=0;o<e.length;o++)if(r===o){const i=t[++s];e.onDeleteEmitter.fire({index:o-n,amount:i}),o+=i-1,n+=i,r=t[++s]}else i.push(o);return{layout:i,countRemoved:n}},t.reflowLargerApplyNewLayout=function(e,t){const i=[];for(let s=0;s<t.length;s++)i.push(e.get(t[s]));for(let t=0;t<i.length;t++)e.set(t,i[t]);e.length=t.length},t.reflowSmallerGetNewLineLengths=function(e,t,s){const r=[],n=e.map(((s,r)=>i(e,r,t))).reduce(((e,t)=>e+t));let o=0,a=0,h=0;for(;h<n;){if(n-h<s){r.push(n-h);break}o+=s;const c=i(e,a,t);o>c&&(o-=c,a++);const l=2===e[a].getWidth(o-1);l&&o--;const d=l?s-1:s;r.push(d),h+=d}return r},t.getWrappedLineTrimmedLength=i},5295:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferSet=void 0;const s=i(9092),r=i(8460),n=i(844);class o extends n.Disposable{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this.register(new r.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange(\"scrollback\",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange(\"tabStopWidth\",(()=>this.setupTabStops())))}reset(){this._normal=new s.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new s.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}}t.BufferSet=o},511:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CellData=void 0;const s=i(482),r=i(643),n=i(3734);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=\"\"}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):\"\"}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},643:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR=\"\",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=\" \",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Marker=void 0;const s=i(8460),r=i(844);class n{constructor(e){this.line=e,this.isDisposed=!1,this._disposables=[],this._id=n._nextId++,this._onDispose=this.register(new s.EventEmitter),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,r.disposeArray)(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}}t.Marker=n,n._nextId=1},7116:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={\"`\":\"◆\",a:\"▒\",b:\"␉\",c:\"␌\",d:\"␍\",e:\"␊\",f:\"°\",g:\"±\",h:\"␤\",i:\"␋\",j:\"┘\",k:\"┐\",l:\"┌\",m:\"└\",n:\"┼\",o:\"⎺\",p:\"⎻\",q:\"─\",r:\"⎼\",s:\"⎽\",t:\"├\",u:\"┤\",v:\"┴\",w:\"┬\",x:\"│\",y:\"≤\",z:\"≥\",\"{\":\"π\",\"|\":\"≠\",\"}\":\"£\",\"~\":\"·\"},t.CHARSETS.A={\"#\":\"£\"},t.CHARSETS.B=void 0,t.CHARSETS[4]={\"#\":\"£\",\"@\":\"¾\",\"[\":\"ij\",\"\\\\\":\"½\",\"]\":\"|\",\"{\":\"¨\",\"|\":\"f\",\"}\":\"¼\",\"~\":\"´\"},t.CHARSETS.C=t.CHARSETS[5]={\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"é\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS.R={\"#\":\"£\",\"@\":\"à\",\"[\":\"°\",\"\\\\\":\"ç\",\"]\":\"§\",\"{\":\"é\",\"|\":\"ù\",\"}\":\"è\",\"~\":\"¨\"},t.CHARSETS.Q={\"@\":\"à\",\"[\":\"â\",\"\\\\\":\"ç\",\"]\":\"ê\",\"^\":\"î\",\"`\":\"ô\",\"{\":\"é\",\"|\":\"ù\",\"}\":\"è\",\"~\":\"û\"},t.CHARSETS.K={\"@\":\"§\",\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Ü\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"ü\",\"~\":\"ß\"},t.CHARSETS.Y={\"#\":\"£\",\"@\":\"§\",\"[\":\"°\",\"\\\\\":\"ç\",\"]\":\"é\",\"`\":\"ù\",\"{\":\"à\",\"|\":\"ò\",\"}\":\"è\",\"~\":\"ì\"},t.CHARSETS.E=t.CHARSETS[6]={\"@\":\"Ä\",\"[\":\"Æ\",\"\\\\\":\"Ø\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"ä\",\"{\":\"æ\",\"|\":\"ø\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS.Z={\"#\":\"£\",\"@\":\"§\",\"[\":\"¡\",\"\\\\\":\"Ñ\",\"]\":\"¿\",\"{\":\"°\",\"|\":\"ñ\",\"}\":\"ç\"},t.CHARSETS.H=t.CHARSETS[7]={\"@\":\"É\",\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"é\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS[\"=\"]={\"#\":\"ù\",\"@\":\"à\",\"[\":\"é\",\"\\\\\":\"ç\",\"]\":\"ê\",\"^\":\"î\",_:\"è\",\"`\":\"ô\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"ü\",\"~\":\"û\"}},2584:(e,t)=>{var i,s;Object.defineProperty(t,\"__esModule\",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(e){e.NUL=\"\\0\",e.SOH=\"\u0001\",e.STX=\"\u0002\",e.ETX=\"\u0003\",e.EOT=\"\u0004\",e.ENQ=\"\u0005\",e.ACK=\"\u0006\",e.BEL=\"\u0007\",e.BS=\"\\b\",e.HT=\"\\t\",e.LF=\"\\n\",e.VT=\"\\v\",e.FF=\"\\f\",e.CR=\"\\r\",e.SO=\"\u000e\",e.SI=\"\u000f\",e.DLE=\"\u0010\",e.DC1=\"\u0011\",e.DC2=\"\u0012\",e.DC3=\"\u0013\",e.DC4=\"\u0014\",e.NAK=\"\u0015\",e.SYN=\"\u0016\",e.ETB=\"\u0017\",e.CAN=\"\u0018\",e.EM=\"\u0019\",e.SUB=\"\u001a\",e.ESC=\"\u001b\",e.FS=\"\u001c\",e.GS=\"\u001d\",e.RS=\"\u001e\",e.US=\"\u001f\",e.SP=\" \",e.DEL=\"\"}(i=t.C0||(t.C0={})),(s=t.C1||(t.C1={})).PAD=\"€\",s.HOP=\"\",s.BPH=\"‚\",s.NBH=\"ƒ\",s.IND=\"„\",s.NEL=\"…\",s.SSA=\"†\",s.ESA=\"‡\",s.HTS=\"ˆ\",s.HTJ=\"‰\",s.VTS=\"Š\",s.PLD=\"‹\",s.PLU=\"Œ\",s.RI=\"\",s.SS2=\"Ž\",s.SS3=\"\",s.DCS=\"\",s.PU1=\"‘\",s.PU2=\"’\",s.STS=\"“\",s.CCH=\"”\",s.MW=\"•\",s.SPA=\"–\",s.EPA=\"—\",s.SOS=\"˜\",s.SGCI=\"™\",s.SCI=\"š\",s.CSI=\"›\",s.ST=\"œ\",s.OSC=\"\",s.PM=\"ž\",s.APC=\"Ÿ\",(t.C1_ESCAPED||(t.C1_ESCAPED={})).ST=`${i.ESC}\\\\`},7399:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.evaluateKeyboardEvent=void 0;const s=i(2584),r={48:[\"0\",\")\"],49:[\"1\",\"!\"],50:[\"2\",\"@\"],51:[\"3\",\"#\"],52:[\"4\",\"$\"],53:[\"5\",\"%\"],54:[\"6\",\"^\"],55:[\"7\",\"&\"],56:[\"8\",\"*\"],57:[\"9\",\"(\"],186:[\";\",\":\"],187:[\"=\",\"+\"],188:[\",\",\"<\"],189:[\"-\",\"_\"],190:[\".\",\">\"],191:[\"/\",\"?\"],192:[\"`\",\"~\"],219:[\"[\",\"{\"],220:[\"\\\\\",\"|\"],221:[\"]\",\"}\"],222:[\"'\",'\"']};t.evaluateKeyboardEvent=function(e,t,i,n){const o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:\"UIKeyInputUpArrow\"===e.key?o.key=t?s.C0.ESC+\"OA\":s.C0.ESC+\"[A\":\"UIKeyInputLeftArrow\"===e.key?o.key=t?s.C0.ESC+\"OD\":s.C0.ESC+\"[D\":\"UIKeyInputRightArrow\"===e.key?o.key=t?s.C0.ESC+\"OC\":s.C0.ESC+\"[C\":\"UIKeyInputDownArrow\"===e.key&&(o.key=t?s.C0.ESC+\"OB\":s.C0.ESC+\"[B\");break;case 8:if(e.altKey){o.key=s.C0.ESC+s.C0.DEL;break}o.key=s.C0.DEL;break;case 9:if(e.shiftKey){o.key=s.C0.ESC+\"[Z\";break}o.key=s.C0.HT,o.cancel=!0;break;case 13:o.key=e.altKey?s.C0.ESC+s.C0.CR:s.C0.CR,o.cancel=!0;break;case 27:o.key=s.C0.ESC,e.altKey&&(o.key=s.C0.ESC+s.C0.ESC),o.cancel=!0;break;case 37:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"D\",o.key===s.C0.ESC+\"[1;3D\"&&(o.key=s.C0.ESC+(i?\"b\":\"[1;5D\"))):o.key=t?s.C0.ESC+\"OD\":s.C0.ESC+\"[D\";break;case 39:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"C\",o.key===s.C0.ESC+\"[1;3C\"&&(o.key=s.C0.ESC+(i?\"f\":\"[1;5C\"))):o.key=t?s.C0.ESC+\"OC\":s.C0.ESC+\"[C\";break;case 38:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"A\",i||o.key!==s.C0.ESC+\"[1;3A\"||(o.key=s.C0.ESC+\"[1;5A\")):o.key=t?s.C0.ESC+\"OA\":s.C0.ESC+\"[A\";break;case 40:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"B\",i||o.key!==s.C0.ESC+\"[1;3B\"||(o.key=s.C0.ESC+\"[1;5B\")):o.key=t?s.C0.ESC+\"OB\":s.C0.ESC+\"[B\";break;case 45:e.shiftKey||e.ctrlKey||(o.key=s.C0.ESC+\"[2~\");break;case 46:o.key=a?s.C0.ESC+\"[3;\"+(a+1)+\"~\":s.C0.ESC+\"[3~\";break;case 36:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"H\":t?s.C0.ESC+\"OH\":s.C0.ESC+\"[H\";break;case 35:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"F\":t?s.C0.ESC+\"OF\":s.C0.ESC+\"[F\";break;case 33:e.shiftKey?o.type=2:e.ctrlKey?o.key=s.C0.ESC+\"[5;\"+(a+1)+\"~\":o.key=s.C0.ESC+\"[5~\";break;case 34:e.shiftKey?o.type=3:e.ctrlKey?o.key=s.C0.ESC+\"[6;\"+(a+1)+\"~\":o.key=s.C0.ESC+\"[6~\";break;case 112:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"P\":s.C0.ESC+\"OP\";break;case 113:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"Q\":s.C0.ESC+\"OQ\";break;case 114:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"R\":s.C0.ESC+\"OR\";break;case 115:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"S\":s.C0.ESC+\"OS\";break;case 116:o.key=a?s.C0.ESC+\"[15;\"+(a+1)+\"~\":s.C0.ESC+\"[15~\";break;case 117:o.key=a?s.C0.ESC+\"[17;\"+(a+1)+\"~\":s.C0.ESC+\"[17~\";break;case 118:o.key=a?s.C0.ESC+\"[18;\"+(a+1)+\"~\":s.C0.ESC+\"[18~\";break;case 119:o.key=a?s.C0.ESC+\"[19;\"+(a+1)+\"~\":s.C0.ESC+\"[19~\";break;case 120:o.key=a?s.C0.ESC+\"[20;\"+(a+1)+\"~\":s.C0.ESC+\"[20~\";break;case 121:o.key=a?s.C0.ESC+\"[21;\"+(a+1)+\"~\":s.C0.ESC+\"[21~\";break;case 122:o.key=a?s.C0.ESC+\"[23;\"+(a+1)+\"~\":s.C0.ESC+\"[23~\";break;case 123:o.key=a?s.C0.ESC+\"[24;\"+(a+1)+\"~\":s.C0.ESC+\"[24~\";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!n||!e.altKey||e.metaKey)!i||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&(\"_\"===e.key&&(o.key=s.C0.US),\"@\"===e.key&&(o.key=s.C0.NUL)):65===e.keyCode&&(o.type=1);else{const t=r[e.keyCode],i=null==t?void 0:t[e.shiftKey?1:0];if(i)o.key=s.C0.ESC+i;else if(e.keyCode>=65&&e.keyCode<=90){const t=e.ctrlKey?e.keyCode-64:e.keyCode+32;let i=String.fromCharCode(t);e.shiftKey&&(i=i.toUpperCase()),o.key=s.C0.ESC+i}else if(32===e.keyCode)o.key=s.C0.ESC+(e.ctrlKey?s.C0.NUL:\" \");else if(\"Dead\"===e.key&&e.code.startsWith(\"Key\")){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),o.key=s.C0.ESC+t,o.cancel=!0}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=s.C0.NUL:e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=s.C0.DEL:219===e.keyCode?o.key=s.C0.ESC:220===e.keyCode?o.key=s.C0.FS:221===e.keyCode&&(o.key=s.C0.GS)}return o}},482:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s=\"\";for(let r=t;r<i;++r){let t=e[r];t>65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n<i;++n){const r=e.charCodeAt(n);if(55296<=r&&r<=56319){if(++n>=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,c=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,l=h-o;for(;c<l;){if(c>=i)return 0;if(n=e[c++],128!=(192&n)){c--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?c--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const l=i-4;let d=c;for(;d<i;){for(;!(!(d<l)||128&(s=e[d])||128&(r=e[d+1])||128&(n=e[d+2])||128&(o=e[d+3]));)t[a++]=s,t[a++]=r,t[a++]=n,t[a++]=o,d+=4;if(s=e[d++],s<128)t[a++]=s;else if(192==(224&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},225:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeV6=void 0;const i=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],s=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let r;t.UnicodeV6=class{constructor(){if(this.version=\"6\",!r){r=new Uint8Array(65536),r.fill(1),r[0]=0,r.fill(0,1,32),r.fill(0,127,160),r.fill(2,4352,4448),r[9001]=2,r[9002]=2,r.fill(2,11904,42192),r[12351]=1,r.fill(2,44032,55204),r.fill(2,63744,64256),r.fill(2,65040,65050),r.fill(2,65072,65136),r.fill(2,65280,65377),r.fill(2,65504,65511);for(let e=0;e<i.length;++e)r.fill(0,i[e][0],i[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?r[e]:function(e,t){let i,s=0,r=t.length-1;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=s;)if(i=s+r>>1,e>t[i][1])s=i+1;else{if(!(e<t[i][0]))return!0;r=i-1}return!1}(e,s)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}}},5981:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WriteBuffer=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new s.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(void 0!==t&&this._syncCalls>t)return void(this._syncCalls=0);if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let i;for(this._isSyncWriting=!0;i=this._writeBuffer.shift();){this._action(i);const e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>5e7)throw new Error(\"write data discarded, use flow control to avoid losing data\");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){const i=e||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const e=this._writeBuffer[this._bufferOffset],s=this._action(e,t);if(s){const e=e=>Date.now()-i>=12?setTimeout((()=>this._innerWrite(0,e))):this._innerWrite(i,e);return void s.catch((e=>(queueMicrotask((()=>{throw e})),Promise.resolve(!1)))).then(e)}const r=this._callbacks[this._bufferOffset];if(r&&r(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-i>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=n},5941:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.toRgbString=t.parseColor=void 0;const i=/^([\\da-f])\\/([\\da-f])\\/([\\da-f])$|^([\\da-f]{2})\\/([\\da-f]{2})\\/([\\da-f]{2})$|^([\\da-f]{3})\\/([\\da-f]{3})\\/([\\da-f]{3})$|^([\\da-f]{4})\\/([\\da-f]{4})\\/([\\da-f]{4})$/,s=/^[\\da-f]+$/;function r(e,t){const i=e.toString(16),s=i.length<2?\"0\"+i:i;switch(t){case 4:return i[0];case 8:return s;case 12:return(s+s).slice(0,3);default:return s+s}}t.parseColor=function(e){if(!e)return;let t=e.toLowerCase();if(0===t.indexOf(\"rgb:\")){t=t.slice(4);const e=i.exec(t);if(e){const t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(0===t.indexOf(\"#\")&&(t=t.slice(1),s.exec(t)&&[3,6,9,12].includes(t.length))){const e=t.length/3,i=[0,0,0];for(let s=0;s<3;++s){const r=parseInt(t.slice(e*s,e*s+e),16);i[s]=1===e?r<<4:2===e?r:3===e?r>>4:r>>8}return i}},t.toRgbString=function(e,t=16){const[i,s,n]=e;return`rgb:${r(i,t)}/${r(s,t)}/${r(n,t)}`}},5770:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DcsHandler=t.DcsParser=void 0;const s=i(482),r=i(8742),n=i(5770),o=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=o}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=o,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t);else this._handlerFb(this._ident,\"HOOK\",t)}put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._ident,\"PUT\",(0,s.utf32ToString)(e,t,i))}unhook(e,t=!0){if(this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].unhook(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._ident,\"UNHOOK\",e);this._active=o,this._ident=0}};const a=new r.Params;a.addParam(0),t.DcsHandler=class{constructor(e){this._handler=e,this._data=\"\",this._params=a,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():a,this._data=\"\",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,s.utf32ToString)(e,t,i),this._data.length>n.PAYLOAD_LIMIT&&(this._data=\"\",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then((e=>(this._params=a,this._data=\"\",this._hitLimit=!1,e)));return this._params=a,this._data=\"\",this._hitLimit=!1,t}}},2015:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;const s=i(844),r=i(8742),n=i(6242),o=i(6351);class a{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,i,s){this.table[t<<8|e]=i<<4|s}addMany(e,t,i,s){for(let r=0;r<e.length;r++)this.table[t<<8|e[r]]=i<<4|s}}t.TransitionTable=a;const h=160;t.VT500_TRANSITION_TABLE=function(){const e=new a(4095),t=Array.apply(null,Array(256)).map(((e,t)=>t)),i=(e,i)=>t.slice(e,i),s=i(32,127),r=i(0,24);r.push(25),r.push.apply(r,i(28,32));const n=i(0,14);let o;for(o in e.setDefault(1,0),e.addMany(s,0,2,0),n)e.addMany([24,26,153,154],o,3,0),e.addMany(i(128,144),o,3,0),e.addMany(i(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(r,0,3,0),e.addMany(r,1,3,1),e.add(127,1,0,1),e.addMany(r,8,0,8),e.addMany(r,3,3,3),e.add(127,3,0,3),e.addMany(r,4,3,4),e.add(127,4,0,4),e.addMany(r,6,3,6),e.addMany(r,5,3,5),e.add(127,5,0,5),e.addMany(r,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(s,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(s,7,0,7),e.addMany(r,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(r,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(r,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(r,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(r,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(r,13,13,13),e.addMany(s,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(h,0,2,0),e.add(h,8,5,8),e.add(h,6,0,6),e.add(h,11,0,11),e.add(h,13,13,13),e}();class c extends s.Disposable{constructor(e=t.VT500_TRANSITION_TABLE){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new r.Params,this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,this._printHandlerFb=(e,t,i)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,s.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new n.OscParser),this._dcsParser=this.register(new o.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:\"\\\\\"},(()=>!0))}_identifier(e,t=[64,126]){let i=0;if(e.prefix){if(e.prefix.length>1)throw new Error(\"only one byte as prefix supported\");if(i=e.prefix.charCodeAt(0),i&&60>i||i>63)throw new Error(\"prefix must be in range 0x3c .. 0x3f\")}if(e.intermediates){if(e.intermediates.length>2)throw new Error(\"only two bytes as intermediates are supported\");for(let t=0;t<e.intermediates.length;++t){const s=e.intermediates.charCodeAt(t);if(32>s||s>47)throw new Error(\"intermediate must be in range 0x20 .. 0x2f\");i<<=8,i|=s}}if(1!==e.final.length)throw new Error(\"final must be a single byte\");const s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return i<<=8,i|=s,i}identToString(e){const t=[];for(;e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join(\"\")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){const i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);const s=this._escHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){const i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);const s=this._csiHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,i,s,r){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=i,this._parseStack.transition=s,this._parseStack.chunkPos=r}parse(e,t,i){let s,r=0,n=0,o=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,o=this._parseStack.chunkPos+1;else{if(void 0===i||1===this._parseStack.state)throw this._parseStack.state=1,new Error(\"improper continuation due to previous async handler, giving up parsing\");const t=this._parseStack.handlers;let n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](this._params),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 4:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],s=this._dcsParser.unhook(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],s=this._oscParser.end(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,o=this._parseStack.chunkPos+1,this.precedingCodepoint=0,this.currentState=15&this._parseStack.transition}for(let i=o;i<t;++i){switch(r=e[i],n=this._transitions.table[this.currentState<<8|(r<160?r:h)],n>>4){case 2:for(let s=i+1;;++s){if(s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}}break;case 3:this._executeHandlers[r]?this._executeHandlers[r]():this._executeHandlerFb(r),this.precedingCodepoint=0;break;case 0:break;case 1:if(this._errorHandler({position:i,code:r,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:const o=this._csiHandlers[this._collect<<8|r];let a=o?o.length-1:-1;for(;a>=0&&(s=o[a](this._params),!0!==s);a--)if(s instanceof Promise)return this._preserveStack(3,o,a,n,i),s;a<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingCodepoint=0;break;case 8:do{switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}}while(++i<t&&(r=e[i])>47&&r<60);i--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:const c=this._escHandlers[this._collect<<8|r];let l=c?c.length-1:-1;for(;l>=0&&(s=c[l](),!0!==s);l--)if(s instanceof Promise)return this._preserveStack(4,c,l,n,i),s;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingCodepoint=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let s=i+1;;++s)if(s>=t||24===(r=e[s])||26===r||27===r||r>127&&r<h){this._dcsParser.put(e,i,s),i=s-1;break}break;case 14:if(s=this._dcsParser.unhook(24!==r&&26!==r),s)return this._preserveStack(6,[],0,n,i),s;27===r&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0;break;case 4:this._oscParser.start();break;case 5:for(let s=i+1;;s++)if(s>=t||(r=e[s])<32||r>127&&r<h){this._oscParser.put(e,i,s),i=s-1;break}break;case 6:if(s=this._oscParser.end(24!==r&&26!==r),s)return this._preserveStack(5,[],0,n,i),s;27===r&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0}this.currentState=15&n}}}t.EscapeSequenceParser=c},6242:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscHandler=t.OscParser=void 0;const s=i(5770),r=i(482),n=[];t.OscParser=class{constructor(){this._state=0,this._active=n,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=n}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=n,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||n,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,\"START\")}_put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._id,\"PUT\",(0,r.utf32ToString)(e,t,i))}start(){this.reset(),this._state=1}put(e,t,i){if(3!==this._state){if(1===this._state)for(;t<i;){const i=e[t++];if(59===i){this._state=2,this._start();break}if(i<48||57<i)return void(this._state=3);-1===this._id&&(this._id=0),this._id=10*this._id+i-48}2===this._state&&i-t>0&&this._put(e,t,i)}}end(e,t=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].end(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._id,\"END\",e);this._active=n,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(e){this._handler=e,this._data=\"\",this._hitLimit=!1}start(){this._data=\"\",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,r.utf32ToString)(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data=\"\",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then((e=>(this._data=\"\",this._hitLimit=!1,e)));return this._data=\"\",this._hitLimit=!1,t}}},8742:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Params=void 0;const i=2147483647;class s{constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>256)throw new Error(\"maxSubParamsLength must not be greater than 256\");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(e){const t=new s;if(!e.length)return t;for(let i=Array.isArray(e[0])?1:0;i<e.length;++i){const s=e[i];if(Array.isArray(s))for(let e=0;e<s.length;++e)t.addSubParam(s[e]);else t.addParam(s)}return t}clone(){const e=new s(this.maxLength,this.maxSubParamsLength);return e.params.set(this.params),e.length=this.length,e._subParams.set(this._subParams),e._subParamsLength=this._subParamsLength,e._subParamsIdx.set(this._subParamsIdx),e._rejectDigits=this._rejectDigits,e._rejectSubDigits=this._rejectSubDigits,e._digitIsSub=this._digitIsSub,e}toArray(){const e=[];for(let t=0;t<this.length;++t){e.push(this.params[t]);const i=this._subParamsIdx[t]>>8,s=255&this._subParamsIdx[t];s-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,s))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>i?i:e}}addSubParam(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParams[this._subParamsLength++]=e>i?i:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){const t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null}getSubParamsAll(){const e={};for(let t=0;t<this.length;++t){const i=this._subParamsIdx[t]>>8,s=255&this._subParamsIdx[t];s-i>0&&(e[t]=this._subParams.slice(i,s))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const s=this._digitIsSub?this._subParams:this.params,r=s[t-1];s[t-1]=~r?Math.min(10*r+e,i):e}}t.Params=s},5741:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){const i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=()=>this._wrappedAddonDispose(i),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let i=0;i<this._addons.length;i++)if(this._addons[i]===e){t=i;break}if(-1===t)throw new Error(\"Could not dispose an addon that has not been loaded\");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}}},8771:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferApiView=void 0;const s=i(3785),r=i(511);t.BufferApiView=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){const t=this._buffer.lines.get(e);if(t)return new s.BufferLineApiView(t)}getNullCell(){return new r.CellData}}},3785:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferLineApiView=void 0;const s=i(511);t.BufferLineApiView=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new s.CellData)}translateToString(e,t,i){return this._line.translateToString(e,t,i)}}},8285:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferNamespaceApi=void 0;const s=i(8771),r=i(8460);t.BufferNamespaceApi=class{constructor(e){this._core=e,this._onBufferChange=new r.EventEmitter,this.onBufferChange=this._onBufferChange.event,this._normal=new s.BufferApiView(this._core.buffers.normal,\"normal\"),this._alternate=new s.BufferApiView(this._core.buffers.alt,\"alternate\"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error(\"Active buffer is neither normal nor alternate\")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}},7975:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,(e=>t(e.toArray())))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,((e,i)=>t(e,i.toArray())))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}}},7090:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}}},744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;const n=i(2585),o=i(5295),a=i(8460),h=i(844);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let c=class extends h.Disposable{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this.register(new a.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new a.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new o.BufferSet(e,this))}get buffer(){return this.buffers.active}resize(e,t){this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){const i=this.buffer;let s;s=this._cachedBlankLine,s&&s.length===this.cols&&s.getFg(0)===e.fg&&s.getBg(0)===e.bg||(s=i.getBlankLine(e,t),this._cachedBlankLine=s),s.isWrapped=t;const r=i.ybase+i.scrollTop,n=i.ybase+i.scrollBottom;if(0===i.scrollTop){const e=i.lines.isFull;n===i.lines.length-1?e?i.lines.recycle().copyFrom(s):i.lines.push(s.clone()):i.lines.splice(n+1,0,s.clone()),e?this.isUserScrolling&&(i.ydisp=Math.max(i.ydisp-1,0)):(i.ybase++,this.isUserScrolling||i.ydisp++)}else{const e=n-r+1;i.lines.shiftElements(r+1,e-1,-1),i.lines.set(n,s.clone())}this.isUserScrolling||(i.ydisp=i.ybase),this._onScroll.fire(i.ydisp)}scrollLines(e,t,i){const s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);const r=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),r!==s.ydisp&&(t||this._onScroll.fire(s.ydisp))}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this.buffer.ydisp)}scrollToBottom(){this.scrollLines(this.buffer.ybase-this.buffer.ydisp)}scrollToLine(e){const t=e-this.buffer.ydisp;0!==t&&this.scrollLines(t)}};c=s([r(0,n.IOptionsService)],c),t.BufferService=c},7994:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}}},1753:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreMouseService=void 0;const n=i(2585),o=i(8460),a=i(844),h={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function c(e,t){let i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}const l=String.fromCharCode,d={DEFAULT:e=>{const t=[c(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?\"\":`\u001b[M${l(t[0])}${l(t[1])}${l(t[2])}`},SGR:e=>{const t=0===e.action&&4!==e.button?\"m\":\"M\";return`\u001b[<${c(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{const t=0===e.action&&4!==e.button?\"m\":\"M\";return`\u001b[<${c(e,!0)};${e.x};${e.y}${t}`}};let _=class extends a.Disposable{constructor(e,t){super(),this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol=\"\",this._activeEncoding=\"\",this._lastEvent=null,this._onProtocolChange=this.register(new o.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(const e of Object.keys(h))this.addProtocol(e,h[e]);for(const e of Object.keys(d))this.addEncoding(e,d[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol \"${e}\"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding \"${e}\"`);this._activeEncoding=e}reset(){this.activeProtocol=\"NONE\",this.activeEncoding=\"DEFAULT\",this._lastEvent=null}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,\"SGR_PIXELS\"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;const t=this._encodings[this._activeEncoding](e);return t&&(\"DEFAULT\"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,t,i){if(i){if(e.x!==t.x)return!1;if(e.y!==t.y)return!1}else{if(e.col!==t.col)return!1;if(e.row!==t.row)return!1}return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};_=s([r(0,n.IBufferService),r(1,n.ICoreService)],_),t.CoreMouseService=_},6975:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreService=void 0;const n=i(2585),o=i(8460),a=i(1439),h=i(844),c=Object.freeze({insertMode:!1}),l=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=class extends h.Disposable{constructor(e,t,i){super(),this._bufferService=e,this._logService=t,this._optionsService=i,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new o.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new o.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new o.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new o.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,a.clone)(c),this.decPrivateModes=(0,a.clone)(l)}reset(){this.modes=(0,a.clone)(c),this.decPrivateModes=(0,a.clone)(l)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;const i=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&i.ybase!==i.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data \"${e}\"`,(()=>e.split(\"\").map((e=>e.charCodeAt(0))))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary \"${e}\"`,(()=>e.split(\"\").map((e=>e.charCodeAt(0))))),this._onBinary.fire(e))}};d=s([r(0,n.IBufferService),r(1,n.ILogService),r(2,n.IOptionsService)],d),t.CoreService=d},9074:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DecorationService=void 0;const s=i(8055),r=i(8460),n=i(844),o=i(6106);let a=0,h=0;class c extends n.Disposable{constructor(){super(),this._decorations=new o.SortedList((e=>null==e?void 0:e.marker.line)),this._onDecorationRegistered=this.register(new r.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new r.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,n.toDisposable)((()=>{for(const e of this._decorations.values())this._onDecorationRemoved.fire(e);this.reset()})))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;const t=new l(e);if(t){const e=t.marker.onDispose((()=>t.dispose()));t.onDispose((()=>{t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())})),this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(const e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,i){var s,r,n;let o=0,a=0;for(const h of this._decorations.getKeyIterator(t))o=null!==(s=h.options.x)&&void 0!==s?s:0,a=o+(null!==(r=h.options.width)&&void 0!==r?r:1),e>=o&&e<a&&(!i||(null!==(n=h.options.layer)&&void 0!==n?n:\"bottom\")===i)&&(yield h)}forEachDecorationAtCell(e,t,i,s){this._decorations.forEachByKey(t,(t=>{var r,n,o;a=null!==(r=t.options.x)&&void 0!==r?r:0,h=a+(null!==(n=t.options.width)&&void 0!==n?n:1),e>=a&&e<h&&(!i||(null!==(o=t.options.layer)&&void 0!==o?o:\"bottom\")===i)&&s(t)}))}dispose(){for(const e of this._decorations.values())this._onDecorationRemoved.fire(e);this.reset()}}t.DecorationService=c;class l extends n.Disposable{constructor(e){super(),this.options=e,this.onRenderEmitter=this.register(new r.EventEmitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.register(new r.EventEmitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=e.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position=\"full\")}get isDisposed(){return this._isDisposed}get backgroundColorRGB(){return null===this._cachedBg&&(this.options.backgroundColor?this._cachedBg=s.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return null===this._cachedFg&&(this.options.foregroundColor?this._cachedFg=s.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}}},4348:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;const s=i(2585),r=i(8343);class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}forEach(e){for(const[t,i]of this._entries.entries())e(t,i)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}t.ServiceCollection=n,t.InstantiationService=class{constructor(){this._services=new n,this._services.set(s.IInstantiationService,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){const i=(0,r.getServiceDependencies)(e).sort(((e,t)=>e.index-t.index)),s=[];for(const t of i){const i=this._services.get(t.id);if(!i)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);s.push(i)}const n=i.length>0?i[0].index:t.length;if(t.length!==n)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${t.length} static arguments`);return new e(...[...t,...s])}}},7866:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.LogService=void 0;const n=i(844),o=i(2585),a={debug:o.LogLevelEnum.DEBUG,info:o.LogLevelEnum.INFO,warn:o.LogLevelEnum.WARN,error:o.LogLevelEnum.ERROR,off:o.LogLevelEnum.OFF};let h=class extends n.Disposable{constructor(e){super(),this._optionsService=e,this.logLevel=o.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange(\"logLevel\",(()=>this._updateLogLevel())))}_updateLogLevel(){this.logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)\"function\"==typeof e[t]&&(e[t]=e[t]())}_log(e,t,i){this._evalLazyOptionalParams(i),e.call(console,\"xterm.js: \"+t,...i)}debug(e,...t){this.logLevel<=o.LogLevelEnum.DEBUG&&this._log(console.log,e,t)}info(e,...t){this.logLevel<=o.LogLevelEnum.INFO&&this._log(console.info,e,t)}warn(e,...t){this.logLevel<=o.LogLevelEnum.WARN&&this._log(console.warn,e,t)}error(e,...t){this.logLevel<=o.LogLevelEnum.ERROR&&this._log(console.error,e,t)}};h=s([r(0,o.IOptionsService)],h),t.LogService=h},7302:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;const s=i(8460),r=i(6114),n=i(844);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:\"block\",cursorWidth:1,customGlyphs:!0,drawBoldTextInBrightColors:!0,fastScrollModifier:\"alt\",fastScrollSensitivity:5,fontFamily:\"courier-new, courier, monospace\",fontSize:15,fontWeight:\"normal\",fontWeightBold:\"bold\",lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:\"info\",scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rightClickSelectsWord:r.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:\" ()[]{}',\\\"`\",altClickMovesCursor:!0,convertEol:!1,termName:\"xterm\",cancelEvents:!1,overviewRulerWidth:0};const o=[\"normal\",\"bold\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"];class a extends n.Disposable{constructor(e){super(),this._onOptionChange=this.register(new s.EventEmitter),this.onOptionChange=this._onOptionChange.event;const i=Object.assign({},t.DEFAULT_OPTIONS);for(const t in e)if(t in i)try{const s=e[t];i[t]=this._sanitizeAndValidateOption(t,s)}catch(e){console.error(e)}this.rawOptions=i,this.options=Object.assign({},i),this._setupOptions()}onSpecificOptionChange(e,t){return this.onOptionChange((i=>{i===e&&t(this.rawOptions[e])}))}onMultipleOptionChange(e,t){return this.onOptionChange((i=>{-1!==e.indexOf(i)&&t()}))}_setupOptions(){const e=e=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key \"${e}\"`);return this.rawOptions[e]},i=(e,i)=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key \"${e}\"`);i=this._sanitizeAndValidateOption(e,i),this.rawOptions[e]!==i&&(this.rawOptions[e]=i,this._onOptionChange.fire(e))};for(const t in this.rawOptions){const s={get:e.bind(this,t),set:i.bind(this,t)};Object.defineProperty(this.options,t,s)}}_sanitizeAndValidateOption(e,i){switch(e){case\"cursorStyle\":if(i||(i=t.DEFAULT_OPTIONS[e]),!function(e){return\"block\"===e||\"underline\"===e||\"bar\"===e}(i))throw new Error(`\"${i}\" is not a valid value for ${e}`);break;case\"wordSeparator\":i||(i=t.DEFAULT_OPTIONS[e]);break;case\"fontWeight\":case\"fontWeightBold\":if(\"number\"==typeof i&&1<=i&&i<=1e3)break;i=o.includes(i)?i:t.DEFAULT_OPTIONS[e];break;case\"cursorWidth\":i=Math.floor(i);case\"lineHeight\":case\"tabStopWidth\":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case\"minimumContrastRatio\":i=Math.max(1,Math.min(21,Math.round(10*i)/10));break;case\"scrollback\":if((i=Math.min(i,4294967295))<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case\"fastScrollSensitivity\":case\"scrollSensitivity\":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);break;case\"rows\":case\"cols\":if(!i&&0!==i)throw new Error(`${e} must be numeric, value: ${i}`);break;case\"windowsPty\":i=null!=i?i:{}}return i}}t.OptionsService=a},2660:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscLinkService=void 0;const n=i(2585);let o=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){const t=this._bufferService.buffer;if(void 0===e.id){const i=t.addMarker(t.ybase+t.y),s={data:e,id:this._nextId++,lines:[i]};return i.onDispose((()=>this._removeMarkerFromLink(s,i))),this._dataByLinkId.set(s.id,s),s.id}const i=e,s=this._getEntryIdKey(i),r=this._entriesWithId.get(s);if(r)return this.addLineToLink(r.id,t.ybase+t.y),r.id;const n=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[n]};return n.onDispose((()=>this._removeMarkerFromLink(o,n))),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){const i=this._dataByLinkId.get(e);if(i&&i.lines.every((e=>e.line!==t))){const e=this._bufferService.buffer.addMarker(t);i.lines.push(e),e.onDispose((()=>this._removeMarkerFromLink(i,e)))}}getLinkData(e){var t;return null===(t=this._dataByLinkId.get(e))||void 0===t?void 0:t.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){const i=e.lines.indexOf(t);-1!==i&&(e.lines.splice(i,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};o=s([r(0,n.IBufferService)],o),t.OscLinkService=o},8343:(e,t)=>{function i(e,t,i){t.di$target===t?t.di$dependencies.push({id:e,index:i}):(t.di$dependencies=[{id:e,index:i}],t.di$target=t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0,t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e.di$dependencies||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const s=function(e,t,r){if(3!==arguments.length)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");i(s,e,r)};return s.toString=()=>e,t.serviceRegistry.set(e,s),s}},2585:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(8343);var r;t.IBufferService=(0,s.createDecorator)(\"BufferService\"),t.ICoreMouseService=(0,s.createDecorator)(\"CoreMouseService\"),t.ICoreService=(0,s.createDecorator)(\"CoreService\"),t.ICharsetService=(0,s.createDecorator)(\"CharsetService\"),t.IInstantiationService=(0,s.createDecorator)(\"InstantiationService\"),(r=t.LogLevelEnum||(t.LogLevelEnum={}))[r.DEBUG=0]=\"DEBUG\",r[r.INFO=1]=\"INFO\",r[r.WARN=2]=\"WARN\",r[r.ERROR=3]=\"ERROR\",r[r.OFF=4]=\"OFF\",t.ILogService=(0,s.createDecorator)(\"LogService\"),t.IOptionsService=(0,s.createDecorator)(\"OptionsService\"),t.IOscLinkService=(0,s.createDecorator)(\"OscLinkService\"),t.IUnicodeService=(0,s.createDecorator)(\"UnicodeService\"),t.IDecorationService=(0,s.createDecorator)(\"DecorationService\")},1480:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeService=void 0;const s=i(8460),r=i(225);t.UnicodeService=class{constructor(){this._providers=Object.create(null),this._active=\"\",this._onChange=new s.EventEmitter,this.onChange=this._onChange.event;const e=new r.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version \"${e}\"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0;const i=e.length;for(let s=0;s<i;++s){let r=e.charCodeAt(s);if(55296<=r&&r<=56319){if(++s>=i)return t+this.wcwidth(r);const n=e.charCodeAt(s);56320<=n&&n<=57343?r=1024*(r-55296)+n-56320+65536:t+=this.wcwidth(n)}t+=this.wcwidth(r)}return t}}}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,\"__esModule\",{value:!0}),e.Terminal=void 0;const t=i(3236),r=i(9042),n=i(7975),o=i(7090),a=i(5741),h=i(8285),c=[\"cols\",\"rows\"];e.Terminal=class{constructor(e){this._core=new t.Terminal(e),this._addonManager=new a.AddonManager,this._publicOptions=Object.assign({},this._core.options);const i=e=>this._core.options[e],s=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(const e in this._core.options){const t={get:i.bind(this,e),set:s.bind(this,e)};Object.defineProperty(this._publicOptions,e,t)}}_checkReadonlyOptions(e){if(c.includes(e))throw new Error(`Option \"${e}\" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error(\"You must set the allowProposedApi option to true to use proposed API\")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new n.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new o.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=new h.BufferNamespaceApi(this._core)),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const e=this._core.coreService.decPrivateModes;let t=\"none\";switch(this._core.coreMouseService.activeProtocol){case\"X10\":t=\"x10\";break;case\"VT200\":t=\"vt200\";break;case\"DRAG\":t=\"drag\";break;case\"ANY\":t=\"any\"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(const t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.addMarker(e)}registerDecoration(e){var t,i,s;return this._checkProposedApi(),this._verifyPositiveIntegers(null!==(t=e.x)&&void 0!==t?t:0,null!==(i=e.width)&&void 0!==i?i:0,null!==(s=e.height)&&void 0!==s?s:0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){this._addonManager.dispose(),this._core.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(\"\\r\\n\",t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){return this._addonManager.loadAddon(this,e)}static get strings(){return r}_verifyIntegers(...e){for(const t of e)if(t===1/0||isNaN(t)||t%1!=0)throw new Error(\"This API only accepts integers\")}_verifyPositiveIntegers(...e){for(const t of e)if(t&&(t===1/0||isNaN(t)||t%1!=0||t<0))throw new Error(\"This API only accepts positive integers\")}}})(),s})()));\n//# sourceMappingURL=xterm.js.map"],"names":["e","t","module","exports","self","Object","defineProperty","value","FitAddon","activate","this","_terminal","dispose","fit","proposeDimensions","isNaN","cols","rows","_core","_renderService","clear","resize","element","parentElement","dimensions","css","cell","width","height","r","options","scrollback","viewport","scrollBarWidth","i","window","getComputedStyle","o","parseInt","getPropertyValue","s","Math","max","n","l","a","floor","forwardEvent","EventEmitter","constructor","_listeners","_disposed","event","_event","push","length","splice","fire","call","clearListeners","getDisposeArrayDisposable","disposeArray","toDisposable","MutableDisposable","Disposable","_disposables","_isDisposed","register","unregister","indexOf","_value","SearchAddon","super","_highlightedLines","Set","_highlightDecorations","_selectedDecoration","_linesCacheTimeoutId","_onDidChangeResults","onDidChangeResults","_highlightLimit","highlightLimit","onWriteParsed","_updateMatches","onResize","clearDecorations","_highlightTimeout","clearTimeout","_cachedSearchTerm","_lastSearchOptions","decorations","setTimeout","findPrevious","assign","incremental","noScroll","findNext","Error","_highlightAllMatches","_findNextAndSelect","_fireResults","_find","row","col","term","_createResultDecoration","add","marker","line","decoration","match","clearSelection","_initLinesCache","startRow","startCol","_findInLine","buffer","active","baseY","getSelectionPosition","end","x","y","start","_selectResult","_findPreviousAndSelect","size","resultIndex","resultCount","h","_linesCache","Array","_cursorMoveListener","onCursorMove","_destroyLinesCache","_resizeListener","_isWholeWord","includes","getLine","isWrapped","_translateBufferLineToStringWithWrap","c","d","_","_bufferColsToStringOffset","u","caseSensitive","toLowerCase","f","g","regex","RegExp","exec","slice","lastIndex","lastIndexOf","wholeWord","_stringLengthToBufferSize","getCell","getChars","getWidth","getCode","translateToString","join","select","registerMarker","cursorY","registerDecoration","backgroundColor","activeMatchBackground","layer","overviewRulerOptions","color","activeMatchColorOverviewRuler","onRender","_applyStyles","activeMatchBorder","onDispose","viewportY","scrollLines","classList","contains","style","outline","matchBackground","has","matchOverviewRuler","position","matchBorder","LinkComputer","WebLinkProvider","_regex","_handler","_options","provideLinks","computeLink","_addCallbacks","map","leave","hover","range","source","flags","_getWindowedLineStrings","URL","decodeURI","toString","_mapStrIdx","index","p","text","reverse","getNullCell","WebLinksAddon","open","opener","location","href","console","warn","urlRegex","_linkProvider","registerLinkProvider","__decorate","arguments","getOwnPropertyDescriptor","Reflect","decorate","GlyphRenderer","Float32Array","BYTES_PER_ELEMENT","v","_gl","_dimensions","_activeBuffer","_vertices","count","attributes","attributesBuffers","TextureAtlas","maxAtlasPages","min","throwIfFalsy","getParameter","MAX_TEXTURE_IMAGE_UNITS","maxTextureSize","MAX_TEXTURE_SIZE","_program","createProgram","deleteProgram","_projectionLocation","getUniformLocation","_resolutionLocation","_textureLocation","_vertexArrayObject","createVertexArray","bindVertexArray","createBuffer","deleteBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","Uint8Array","ELEMENT_ARRAY_BUFFER","_attributesBuffer","vertexAttribDivisor","useProgram","Int32Array","uniform1iv","uniformMatrix4fv","PROJECTION_MATRIX","_atlasTextures","GLTexture","createTexture","deleteTexture","texture","activeTexture","TEXTURE0","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","texImage2D","RGBA","UNSIGNED_BYTE","enable","BLEND","blendFunc","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","handleResize","beginFrame","_atlas","updateCell","_updateCell","NULL_CELL_CODE","getRasterizedGlyphCombinedChar","getRasterizedGlyph","device","char","offset","left","top","canvas","texturePage","texturePositionClipSpace","pages","sizeClipSpace","fill","uniform2f","render","lineLengths","subarray","set","STREAM_DRAW","version","_bindAtlasPageTexture","drawElementsInstanced","TRIANGLE_STRIP","setAtlas","generateMipmap","setDimensions","traceCall","prototype","RectangleRenderer","_themeService","_verticesCursor","_updateCachedColors","colors","onChangeColors","_updateViewportRectangle","renderBackgrounds","_renderVertices","renderCursor","DYNAMIC_DRAW","_bgFloat","_colorToFloat32Array","background","_cursorFloat","cursor","_addRectangleFloat","updateBackgrounds","RENDER_MODEL_INDICIES_PER_CELL","cells","RENDER_MODEL_BG_OFFSET","RENDER_MODEL_FG_OFFSET","_updateRectangle","updateCursor","dpr","cursorWidth","ansi","rgba","foreground","expandFloat32Array","_addRectangle","RenderModel","COMBINED_CHAR_BIT_MASK","RENDER_MODEL_EXT_OFFSET","Uint32Array","selection","createSelectionRenderModel","JoinedCellData","WebglRenderer","C","m","L","_characterJoinerService","_charSizeService","_coreBrowserService","_coreService","_decorationService","_optionsService","_cursorBlinkStateManager","_charAtlasDisposable","_model","_workCell","CellData","_rectangleRenderer","_glyphRenderer","_onChangeTextureAtlas","onChangeTextureAtlas","_onAddTextureAtlasCanvas","onAddTextureAtlasCanvas","_onRemoveTextureAtlasCanvas","onRemoveTextureAtlasCanvas","_onRequestRedraw","onRequestRedraw","_onContextLoss","onContextLoss","_handleColorChange","_cellColorResolver","CellColorResolver","_renderLayers","LinkRenderLayer","screenElement","linkifier2","createRenderDimensions","_devicePixelRatio","_updateDimensions","_updateCursorBlink","onOptionChange","_handleOptionsChanged","_canvas","document","createElement","antialias","depth","preserveDrawingBuffer","getContext","addDisposableDomListener","log","preventDefault","_contextRestorationTimeout","removeTerminalFromCache","_initializeWebGLState","_requestRedrawViewport","observeDevicePixelDimensions","_setCanvasDevicePixelDimensions","appendChild","_isAttached","body","removeChild","textureAtlas","_charAtlas","_refreshCharAtlas","_clearModel","handleDevicePixelRatioChange","handleCharSizeChanged","handleBlur","pause","handleFocus","resume","handleSelectionChanged","update","handleCursorMove","restartBlinkAnimation","acquireTextureAtlas","rawOptions","warmUp","clearTextureAtlas","clearTexture","reset","registerCharacterJoiner","deregisterCharacterJoiner","renderRows","handleGridChanged","_updateModel","isCursorVisible","cursorBlink","CursorBlinkStateManager","_requestRedrawCursor","w","cursorX","b","R","isCursorInitialized","isCursorHidden","M","ydisp","lines","get","getJoinedCharacters","result","bg","loadCell","shift","resolve","isFocused","cursorStyle","cursorInactiveStyle","fg","cursorAccent","ext","NULL_CELL_CHAR","ceil","lineHeight","round","letterSpacing","AttributeData","content","combinedData","_width","isCombined","setFromCharData","getAsCharData","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","error","getShaderInfoLog","deleteShader","attachShader","VERTEX_SHADER","FRAGMENT_SHADER","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","BaseRenderLayer","_container","_alpha","_deviceCharWidth","_deviceCharHeight","_deviceCellWidth","_deviceCellHeight","_deviceCharLeft","_deviceCharTop","zIndex","_initCanvas","remove","_ctx","alpha","_clearAll","_setTransparency","cloneNode","replaceChild","_fillBottomLineAtCells","fillRect","clearRect","fillStyle","_clearCells","_fillCharTrueColor","font","_getFont","textBaseline","TEXT_BASELINE","_clipCell","fillText","beginPath","rect","clip","fontWeightBold","fontWeight","fontSize","fontFamily","onShowLinkUnderline","_handleShowLinkUnderline","onHideLinkUnderline","_handleHideLinkUnderline","_state","_clearCurrentLink","x1","y1","y2","x2","INVERTED_DEFAULT_COLOR","is256Color","addEventListener","removeEventListener","_selectionRenderModel","extended","forEachDecorationAtCell","backgroundColorRGB","foregroundColorRGB","isCellSelected","selectionBackgroundOpaque","selectionInactiveBackgroundOpaque","selectionForeground","generateConfig","ownedBy","configEquals","config","atlas","unicodeService","NULL_COLOR","selectionBackgroundTransparent","selectionInactiveBackgroundTransparent","contrastCache","halfContrastCache","customGlyphs","devicePixelRatio","deviceCellWidth","deviceCellHeight","deviceCharWidth","deviceCharHeight","allowTransparency","drawBoldTextInBrightColors","minimumContrastRatio","DIM_OPACITY","isFirefox","isLegacyEdge","_renderCallback","_restartInterval","isPaused","_blinkStartTimeout","_blinkInterval","clearInterval","_animationFrame","cancelAnimationFrame","_animationTimeRestarted","Date","now","requestAnimationFrame","setInterval","tryDrawCustomChar","powerlineDefinitions","boxDrawingDefinitions","blockElementDefinitions","type","rightPadding","leftPadding","Map","ImageData","startsWith","substring","split","parseFloat","data","putImageData","createPattern","strokeStyle","entries","lineWidth","Number","stroke","closePath","Path2D","bezierCurveTo","lineTo","moveTo","ResizeObserver","find","target","disconnect","devicePixelContentBoxSize","inlineSize","blockSize","observe","box","excludeFromContrastRatioDemands","isRestrictedPowerlineGlyph","isPowerlineGlyph","hasSelection","columnSelectMode","viewportStartRow","viewportEndRow","viewportCappedStartRow","viewportCappedEndRow","endCol","selectionStart","selectionEnd","texturePosition","_pages","_document","_config","_unicodeService","_didWarmUp","_cacheMap","FourKeyMap","_cacheMapCombined","_activePages","_workBoundingBox","bottom","right","_workAttributeData","_textureSize","_requestClearModel","_createNewPage","_tmpCanvas","_tmpCtx","willReadFrequently","_doWarmUp","IdleTaskQueue","enqueue","DEFAULT_COLOR","DEFAULT_EXT","_drawToCache","currentRow","filter","sort","percentageUsed","glyphs","_mergePages","_deletePage","ctx","drawImage","_getFromCacheMap","_getColorFromAnsiIndex","_getBackgroundColor","toColorRGB","toColor","opaque","_getForegroundColor","_getMinimumContrastColor","multiplyOpacity","_resolveBackgroundRgba","_resolveForegroundRgba","_getContrastCache","getColor","ensureContrastRatio","setColor","String","fromCharCode","save","isInvisible","isBold","isInverse","isDim","isItalic","isUnderline","isStrikethrough","isOverline","getFgColor","getFgColorMode","getBgColor","getBgColorMode","globalCompositeOperation","A","E","S","charCodeAt","T","D","P","F","B","I","wcwidth","getStringCellWidth","isUnderlineColorDefault","isUnderlineColorRGB","getUnderlineColor","underlineStyle","setLineDash","restore","measureText","actualBoundingBoxDescent","strokeText","getImageData","O","$","k","_findGlyphBoundingBox","U","N","fixedRows","addGlyph","_usedPixels","_glyphs","abs","contrastRatio","toPaddedHex","rgb","channels","toCss","toRgba","toChannels","blend","isOpaque","opacity","isNode","createLinearGradient","repeat","pow","relativeLuminance","relativeLuminance2","reduceLuminance","increaseLuminance","TwoKeyMap","_data","isChromeOS","isLinux","isWindows","isIphone","isIpad","isMac","getSafariVersion","isSafari","navigator","userAgent","platform","test","DebouncedIdleTask","PriorityTaskQueue","_tasks","_i","_start","flush","_idleCallback","_cancelCallback","_requestCallback","_process","bind","timeRemaining","_createDeadline","requestIdleCallback","cancelIdleCallback","_queue","ExtendedAttrs","fromColorRGB","clone","hasExtendedAttrs","isBlink","isProtected","isFgRGB","isBgRGB","isFgPalette","isBgPalette","isFgDefault","isBgDefault","isAttributeDefault","updateExtended","isEmpty","underlineColor","getUnderlineColorMode","isUnderlineColorPalette","getUnderlineStyle","_urlId","_ext","urlId","fromCharData","stringFromCodePoint","CHAR_DATA_ATTR_INDEX","CHAR_DATA_CHAR_INDEX","CHAR_DATA_WIDTH_INDEX","WHITESPACE_CELL_CODE","WHITESPACE_CELL_WIDTH","WHITESPACE_CELL_CHAR","NULL_CELL_WIDTH","CHAR_DATA_CODE_INDEX","DEFAULT_ATTR","Utf8ToUtf32","StringToUtf32","utf32ToString","_interim","decode","interim","__param","setTraceLogger","LogService","trace","LogLevelEnum","TRACE","debug","DEBUG","info","INFO","WARN","ERROR","off","OFF","logLevel","_logLevel","_updateLogLevel","onSpecificOptionChange","_evalLazyOptionalParams","_log","logger","IOptionsService","apply","name","JSON","stringify","createDecorator","getServiceDependencies","serviceRegistry","id","IDecorationService","IUnicodeService","IOscLinkService","ILogService","IInstantiationService","ICharsetService","ICoreService","ICoreMouseService","IBufferService","WebglAddon","_preserveDrawingBuffer","onWillOpen","coreService","optionsService","_logService","_renderer","setRenderer","_createRenderer","AccessibilityManager","_liveRegionLineCount","_charsToConsume","_charsToAnnounce","_accessibilityContainer","_rowContainer","setAttribute","_rowElements","_createAccessibilityTreeNode","_topBoundaryFocusListener","_handleBoundaryFocus","_bottomBoundaryFocusListener","_refreshRowsDimensions","_liveRegion","_liveRegionDebouncer","TimeBasedDebouncer","_announceCharacters","insertAdjacentElement","_handleResize","_refreshRows","onScroll","onA11yChar","_handleChar","onLineFeed","onA11yTab","_handleTab","onKey","_handleKey","key","onBlur","_clearLiveRegion","onDimensionsChange","_screenDprMonitor","ScreenDprMonitor","setListener","textContent","tooMuchOutput","parentNode","refresh","getAttribute","relatedTarget","pop","unshift","focus","stopImmediatePropagation","children","tabIndex","_refreshRowDimensions","IRenderService","replace","decPrivateModes","bracketedPasteMode","triggerDataEvent","getBoundingClientRect","clientX","clientY","rightClickHandler","moveTextAreaUnderMouseCursor","paste","handlePasteEvent","copyHandler","bracketTextForPaste","prepareTextForTerminal","clipboardData","setData","selectionText","stopPropagation","getData","rightClickSelect","ColorContrastCache","_color","_css","setCss","getCss","Linkifier2","_bufferService","_linkProviders","_linkCacheDisposables","_isMouseOut","_wasResized","_activeLine","_onShowLinkUnderline","_onHideLinkUnderline","_lastMouseEvent","currentLink","_currentLink","attachToDom","_element","_mouseService","_handleMouseMove","_handleMouseDown","_handleMouseUp","_positionFromMouseEvent","composedPath","_lastBufferCell","_handleHover","_askForLink","_linkAtPosition","link","_activeProviderReplies","forEach","_checkLinkProviderResult","_removeIntersectingLinks","_handleNewLink","_mouseDownLink","_linkLeave","state","underline","pointerCursor","isHovered","_linkHover","defineProperties","toggle","_fireUnderlineEvent","onRenderedViewportChange","_createLinkUnderlineEvent","getCoords","promptLabel","OscLinkProvider","_oscLinkService","linkHandler","getTrimmedLength","hasContent","getLinkData","uri","allowNonHttpProtocols","protocol","confirm","RenderDebouncer","_parentWindow","_refreshCallbacks","addRefreshCallback","_innerRefresh","_rowCount","_rowStart","_rowEnd","_runRefreshCallbacks","_currentDevicePixelRatio","clearListener","_listener","_outerListener","_updateDpr","_resolutionMediaMatchList","removeListener","matchMedia","addListener","Terminal","CoreTerminal","browser","_keyDownHandled","_keyDownSeen","_keyPressHandled","_unprocessedDeadKey","_onCursorMove","_onKey","_onRender","_onSelectionChange","onSelectionChange","_onTitleChange","onTitleChange","_onBell","onBell","_onFocus","_onBlur","_onA11yCharEmitter","_onA11yTabEmitter","_onWillOpen","_setup","_instantiationService","createInstance","DecorationService","setService","_inputHandler","onRequestBell","onRequestRefreshRows","onRequestSendFocus","_reportFocus","onRequestReset","onRequestWindowsOptionsReport","_reportWindowsOptions","onColor","_handleColorEvent","_afterResize","_customKeyEventHandler","onFocus","C0","ESC","toRgbString","C1_ESCAPED","ST","modifyColors","restoreColor","buffers","textarea","preventScroll","_handleScreenReaderModeOptionChange","_accessibilityManager","_handleTextAreaFocus","sendFocus","updateCursorStyle","_showCursor","blur","_handleTextAreaBlur","_syncTextArea","isCursorInViewport","_compositionHelper","isComposing","ybase","_initGlobal","_bindKeys","_selectionService","button","rightClickSelectsWord","_keyUp","_keyDown","_keyPress","compositionstart","compositionupdate","compositionend","_inputEvent","updateCompositionElements","isConnected","ownerDocument","dir","createDocumentFragment","_viewportElement","_viewportScrollArea","_helperContainer","CoreBrowserService","defaultView","ICoreBrowserService","CharSizeService","ICharSizeService","ThemeService","IThemeService","CharacterJoinerService","ICharacterJoinerService","RenderService","_compositionView","CompositionHelper","hasRenderer","MouseService","IMouseService","Viewport","onRequestSyncScrollBar","syncScrollArea","SelectionService","ISelectionService","onRequestScrollLines","amount","suppressScrollEvent","onLinuxMouseSelection","_onScroll","BufferDecorationRenderer","handleMouseDown","coreMouseService","areMouseEventsActive","disable","screenReaderMode","overviewRulerWidth","_overviewRulerRenderer","OverviewRulerRenderer","measure","bindMouse","DomRenderer","getMouseReportCoords","overrideType","buttons","getLinesScrolled","deltaY","triggerMouseEvent","action","ctrl","ctrlKey","alt","altKey","shiftKey","mouseup","wheel","mousedrag","mousemove","cancel","onProtocolChange","explainEvents","passive","activeProtocol","shouldForceSelection","hasScrollback","applicationCursorKeys","handleWheel","handleTouchStart","handleTouchMove","refreshRows","shouldColumnSelect","attachCustomKeyEventHandler","deregister","markers","addMarker","setSelection","getSelection","selectAll","selectLines","macOptionIsMeta","keydown","scrollOnUserInput","scrollToBottom","evaluateKeyboardEvent","_isThirdLevelShift","metaKey","ETX","CR","domEvent","getModifierState","keyCode","charCode","which","inputType","composed","hasValidSize","clearAllMarkers","getBlankLine","DEFAULT_ATTR_DATA","WindowsOptionsReportType","GET_WIN_SIZE_PIXELS","toFixed","GET_CELL_SIZE_PIXELS","cancelEvents","_debounceThresholdMS","_lastRefreshMs","_additionalRefreshRequested","_refreshTimeoutID","_scrollLines","_scrollArea","_currentRowHeight","_currentDeviceCellHeight","_lastRecordedBufferLength","_lastRecordedViewportHeight","_lastRecordedBufferHeight","_lastTouchY","_lastScrollTop","_wheelPartialScroll","_refreshAnimationFrame","_ignoreNextScrollEvent","_smoothScrollState","startTime","origin","offsetWidth","_handleScroll","onBufferActivate","activeBuffer","_renderDimensions","_handleThemeChange","_refresh","offsetHeight","scrollTop","offsetParent","_smoothScroll","_smoothScrollPercent","_clearSmoothScrollState","smoothScrollDuration","_bubbleScroll","cancelable","_getPixelsScrolled","scrollHeight","_applyScrollModifier","deltaMode","WheelEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","getBufferElements","bufferElements","cursorElement","DOM_DELTA_PIXEL","fastScrollModifier","fastScrollSensitivity","scrollSensitivity","touches","pageY","_screenElement","_decorationElements","_altBufferIsActive","_dimensionsChanged","_doRefreshDecorations","_queueRefresh","onDecorationRegistered","onDecorationRemoved","_removeDecoration","_renderDecoration","_refreshStyle","_refreshXPosition","_createElement","display","onRenderEmitter","anchor","delete","ColorZoneStore","_zones","_zonePool","_zonePoolIndex","_linePadding","full","center","zones","addDecoration","_lineIntersectsZone","_lineAdjacentToZone","_addLineToZone","startBufferLine","endBufferLine","setPadding","_coreBrowseService","_colorZoneStore","_shouldUpdateDimensions","_shouldUpdateAnchor","_lastKnownBufferLength","_refreshCanvasDimensions","insertBefore","_registerDecorationListeners","_registerBufferChangeListeners","_registerDimensionChangeListeners","normal","_refreshDrawHeightConstants","_refreshColorZonePadding","_containerHeight","clientHeight","_refreshDrawConstants","_refreshDecorations","_renderColorZone","_textarea","_isComposing","_isSendingComposition","_compositionPosition","_dataAlreadySent","_finalizeComposition","_handleAnyTextareaChanges","DEL","getCoordsRelativeToElement","moveToCellSequence","translateBufferLineToString","_linkifier2","_terminalClass","_cellToRowElements","_refreshRowElements","_selectionContainer","_injectCss","_rowFactory","DomRendererRowFactory","_handleLinkHover","_handleLinkLeave","_themeStyleElement","_dimensionsStyleElement","overflow","_terminalSelector","BOLD_CLASS","ITALIC_CLASS","CURSOR_CLASS","CURSOR_STYLE_BLOCK_CLASS","CURSOR_STYLE_BAR_CLASS","CURSOR_STYLE_UNDERLINE_CLASS","CURSOR_BLINK_CLASS","DIM_CLASS","_createSelectionElement","replaceChildren","Int16Array","createRow","_setCellUnderline","textDecoration","STRIKETHROUGH_CLASS","OVERLINE_CLASS","UNDERLINE_CLASS","_columnSelectMode","_selectionStart","_selectionEnd","textDecorationColor","_isCellInSelection","_addStyle","_applyMinimumContrast","SelectionModel","isSelectAllActive","selectionStartLength","finalSelectionStart","areSelectionValuesReversed","finalSelectionEnd","handleTrim","_onCharSizeChange","onCharSizeChange","_measureStrategy","onMultipleOptionChange","_parentElement","_result","_measureElement","_characterJoiners","_nextCharacterJoinerId","handler","getFg","getBg","_getJoinedRanges","_mergeRanges","_stringRangesToCellRanges","getString","_isFocused","_cachedIsFocused","hasFocus","queueMicrotask","_pausedResizeTask","_isPaused","_needsFullRefresh","_isNextRenderRedrawOnly","_needsSelectionRefresh","_canvasWidth","_canvasHeight","_selectionState","_onDimensionsChange","_onRenderedViewportChange","_onRefreshRequest","onRefreshRequest","_renderDebouncer","_renderRows","_fullRefresh","IntersectionObserver","_handleIntersectionChange","threshold","isIntersecting","intersectionRatio","_fireOnCanvasResize","_linkifier","_dragScrollAmount","_enabled","_mouseDownTimeStamp","_oldHasSelection","_oldSelectionStart","_oldSelectionEnd","_onLinuxMouseSelection","_onRedrawRequest","_onRequestScrollLines","_mouseMoveListener","_mouseUpListener","onUserInput","_trimListener","onTrim","_handleTrim","_handleBufferActivate","_activeSelectionMode","_removeMouseDownListeners","_isClickInSelection","_getMouseBufferCoords","_areCoordsInSelection","isCellInSelection","_selectWordAtCursor","getRangeLength","_selectWordAt","_getMouseEventScrollAmount","macOptionClickForcesSelection","timeStamp","_handleIncrementalClick","detail","_handleSingleClick","_handleDoubleClick","_handleTripleClick","_addMouseDownListeners","_dragScrollIntervalTimer","_dragScroll","hasWidth","_selectLineAt","_selectToWordAt","altClickMovesCursor","_fireEventIfSelectionChanged","_fireOnSelectionChange","_convertViewportColToCharacterIndex","_getWordAt","charAt","_isCharWordSeparator","trim","getCodePoint","wordSeparator","getWrappedRangeForLine","first","last","DEFAULT_ANSI_COLORS","freeze","_onChangeColors","_contrastCache","_colors","_updateRestoreColors","_setTheme","theme","selectionBackground","selectionInactiveBackground","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","extendedAnsi","_restoreColor","_restoreColors","CircularList","_maxLength","onDeleteEmitter","onDelete","onInsertEmitter","onInsert","onTrimEmitter","_array","_startIndex","_length","maxLength","_getCyclicIndex","recycle","isFull","trimStart","shiftElements","isArray","_onBinary","onBinary","_onData","onData","_onLineFeed","_onResize","_onWriteParsed","InstantiationService","OptionsService","BufferService","CoreService","CoreMouseService","UnicodeService","_charsetService","CharsetService","OscLinkService","InputHandler","onRequestScrollToBottom","_writeBuffer","handleUserInput","_handleWindowsPtyOptionChange","markRangeDirty","scrollBottom","WriteBuffer","parse","_windowsWrappingHeuristics","_onScrollApi","write","writeSync","MINIMUM_COLS","MINIMUM_ROWS","scroll","scrollPages","scrollToTop","scrollToLine","registerEscHandler","registerDcsHandler","registerCsiHandler","registerOscHandler","windowsPty","buildNumber","backend","windowsMode","_enableWindowsWrappingHeuristics","updateWindowsModeWrappedState","final","setWinLines","restoreWin","minimizeWin","setWinPosition","setWinSizePixels","raiseWin","lowerWin","refreshWin","setWinSizeChars","maximizeWin","fullscreenWin","getWinState","getWinPosition","getWinSizePixels","getScreenSizePixels","getCellSizePixels","getWinSizeChars","getScreenSizeChars","getIconTitle","getWinTitle","pushTitle","popTitle","EscapeSequenceParser","_coreMouseService","_parser","_parseBuffer","_stringDecoder","_utf8Decoder","_windowTitle","_iconName","_windowTitleStack","_iconNameStack","_curAttrData","_eraseAttrDataInternal","_onRequestBell","_onRequestRefreshRows","_onRequestReset","_onRequestSendFocus","_onRequestSyncScrollBar","_onRequestWindowsOptionsReport","_onA11yChar","_onA11yTab","_onColor","_parseStack","paused","cursorStartX","cursorStartY","decodedLength","_specialColors","_dirtyRowTracker","setCsiHandlerFallback","identifier","identToString","params","toArray","setEscHandlerFallback","setExecuteHandlerFallback","code","setOscHandlerFallback","setDcsHandlerFallback","payload","setPrintHandler","print","insertChars","intermediates","scrollLeft","cursorUp","scrollRight","cursorDown","cursorForward","cursorBackward","cursorNextLine","cursorPrecedingLine","cursorCharAbsolute","cursorPosition","cursorForwardTab","eraseInDisplay","prefix","eraseInLine","insertLines","deleteLines","deleteChars","scrollUp","scrollDown","eraseChars","cursorBackwardTab","charPosAbsolute","hPositionRelative","repeatPrecedingCharacter","sendDeviceAttributesPrimary","sendDeviceAttributesSecondary","linePosAbsolute","vPositionRelative","hVPosition","tabClear","setMode","setModePrivate","resetMode","resetModePrivate","charAttributes","deviceStatus","deviceStatusPrivate","softReset","setCursorStyle","setScrollRegion","saveCursor","windowOptions","restoreCursor","insertColumns","deleteColumns","selectProtected","requestMode","setExecuteHandler","BEL","bell","LF","lineFeed","VT","FF","carriageReturn","BS","backspace","HT","tab","SO","shiftOut","SI","shiftIn","C1","IND","NEL","nextLine","HTS","tabSet","OscHandler","setTitle","setIconName","setOrReportIndexedColor","setHyperlink","setOrReportFgColor","setOrReportBgColor","setOrReportCursorColor","restoreIndexedColor","restoreFgColor","restoreBgColor","restoreCursorColor","reverseIndex","keypadApplicationMode","keypadNumericMode","fullReset","setgLevel","selectDefaultCharset","CHARSETS","selectCharset","screenAlignmentPattern","setErrorHandler","DcsHandler","requestStatusString","getAttrData","_preserveStack","_logSlowResolvingAsync","Promise","race","catch","_getCurrentLinkId","clearRange","charset","wraparound","modes","insertMode","markDirty","setCellFromCodePoint","addLineToLink","_eraseAttrData","insertCells","addCodepointToCell","precedingCodepoint","convertEol","reverseWraparound","_restrictCursor","nextStop","_setCursor","_moveCursor","tabs","prevStop","_eraseInBufferLine","replaceCells","_resetBufferLine","clearMarkers","deleteCells","_is","termName","setgCharset","DEFAULT_CHARSET","applicationKeypad","activeEncoding","activateAltBuffer","activateNormalBuffer","_updateAttrColor","_extractColor","hasSubParams","getSubParams","_processUnderline","_processSGR0","savedX","savedY","savedCurAttrData","savedCharset","_savedCharset","parseColor","_createHyperlink","_finishHyperlink","findIndex","registerLink","_setOrReportSpecialColor","markAllDirty","block","bar","SortedList","_getKey","insert","_search","getKeyIterator","forEachByKey","values","Buffer","MAX_BUFFER_SIZE","_hasScrollback","_nullCell","_whitespaceCell","_isClearing","_memoryCleanupQueue","_memoryCleanupPosition","_cols","_rows","_getCorrectBufferLength","setupTabStops","getWhitespaceCell","BufferLine","fillViewportRows","_isReflowEnabled","_reflow","_batchedMemoryCleanup","cleanupMemory","_reflowLarger","_reflowSmaller","reflowLargerGetLinesToRemove","reflowLargerCreateNewLayout","reflowLargerApplyNewLayout","layout","_reflowLargerAdjustViewport","countRemoved","reflowSmallerGetNewLineLengths","newLines","copyCellsFrom","getWrappedLineTrimmedLength","setCell","tabStopWidth","Marker","_removeMarker","_combined","_extendedAttrs","byteLength","keys","copyFrom","reduce","BufferSet","_onBufferActivate","_normal","_alt","inactiveBuffer","isDisposed","_id","_nextId","_onDispose","j","q","z","Q","K","Y","Z","H","NUL","SOH","STX","EOT","ENQ","ACK","DLE","DC1","DC2","DC3","DC4","NAK","SYN","ETB","CAN","EM","SUB","FS","GS","RS","US","SP","PAD","HOP","BPH","NBH","SSA","ESA","HTJ","VTS","PLD","PLU","RI","SS2","SS3","DCS","PU1","PU2","STS","CCH","MW","SPA","EPA","SOS","SGCI","SCI","CSI","OSC","PM","APC","toUpperCase","UnicodeV6","_action","_callbacks","_pendingData","_bufferOffset","_isSyncWriting","_syncCalls","_didUserInput","_innerWrite","then","PAYLOAD_LIMIT","DcsParser","_handlers","create","_active","_ident","_handlerFb","_stack","loopPosition","fallThrough","registerHandler","clearHandler","setHandlerFallback","unhook","hook","put","Params","addParam","_params","_hitLimit","VT500_TRANSITION_TABLE","TransitionTable","table","setDefault","addMany","_transitions","handlers","handlerPos","transition","chunkPos","initialState","currentState","_collect","_printHandlerFb","_executeHandlerFb","_csiHandlerFb","_escHandlerFb","_errorHandlerFb","_printHandler","_executeHandlers","_csiHandlers","_escHandlers","_oscParser","OscParser","_dcsParser","_errorHandler","_identifier","clearPrintHandler","clearEscHandler","clearExecuteHandler","clearCsiHandler","clearDcsHandler","clearOscHandler","clearErrorHandler","collect","abort","addSubParam","addDigit","_put","maxSubParamsLength","_subParams","_subParamsLength","_subParamsIdx","Uint16Array","_rejectDigits","_rejectSubDigits","_digitIsSub","fromArray","getSubParamsAll","AddonManager","_addons","instance","loadAddon","_wrappedAddonDispose","BufferApiView","_buffer","init","BufferLineApiView","_line","BufferNamespaceApi","_onBufferChange","onBufferChange","_alternate","alternate","ParserApi","addCsiHandler","addDcsHandler","addEscHandler","addOscHandler","UnicodeApi","versions","activeVersion","isUserScrolling","_cachedBlankLine","glevel","_charsets","NONE","events","restrict","X10","VT200","DRAG","ANY","DEFAULT","SGR","SGR_PIXELS","_protocols","_encodings","_activeProtocol","_activeEncoding","_lastEvent","_onProtocolChange","addProtocol","addEncoding","_equalEvents","triggerBinaryEvent","down","up","drag","move","_onUserInput","_onRequestScrollToBottom","disableStdin","_decorations","_onDecorationRegistered","_onDecorationRemoved","getDecorationsAtCell","_cachedBg","_cachedFg","foregroundColor","ServiceCollection","_entries","_services","getService","DEFAULT_OPTIONS","allowProposedApi","_onOptionChange","_sanitizeAndValidateOption","_setupOptions","_entriesWithId","_dataByLinkId","_removeMarkerFromLink","_getEntryIdKey","every","di$target","di$dependencies","_providers","_onChange","onChange","_activeProvider","_addonManager","_publicOptions","_checkReadonlyOptions","_checkProposedApi","parser","unicode","applicationCursorKeysMode","applicationKeypadMode","mouseTrackingMode","originMode","reverseWraparoundMode","sendFocusMode","wraparoundMode","_verifyIntegers","_verifyPositiveIntegers","writeln","strings"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/activedirectory.0baa2998.svg b/extensions/harvester/1.5.0-dev/plugin/img/activedirectory.0baa2998.svg new file mode 100644 index 00000000..773e697e --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/activedirectory.0baa2998.svg @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#00AAF2;} +</style> +<g> + <path class="st0" d="M55,43.1c0,3.5,0,7,0,10.5c0,1.2-0.4,1.5-1.5,1.3c-7.9-1.2-15.7-2.3-23.6-3.3c-1.4-0.2-1.9-0.7-1.9-2.2 + c0.1-5.6,0.1-11.2,0-16.8c0-1.2,0.4-1.6,1.6-1.6c8,0,15.9,0,23.9,0c1.3,0,1.6,0.5,1.6,1.6C55,36.1,55,39.6,55,43.1z"/> + <path class="st0" d="M41.6,28.9c-4,0-8,0-11.9,0c-1.2,0-1.7-0.3-1.7-1.7c0.1-5.7,0.1-11.3,0-17c-0.2-0.7,0.3-1.5,1.1-1.6 + c0.1,0,0.3,0,0.4,0c8.1-1.1,16.3-2.3,24.4-3.5c1.4-0.2,1.2,0.8,1.2,1.5c0,5.1,0,10.2,0,15.3c0,1.9,0,3.7,0,5.6 + c0,1.1-0.4,1.5-1.5,1.5C49.5,28.9,45.6,28.9,41.6,28.9z"/> + <path class="st0" d="M15.3,31c3,0,6,0,8.9,0c0.6-0.2,1.2,0.2,1.4,0.8c0,0.2,0.1,0.4,0,0.5c0,5.8,0,11.7,0,17.5c0,1-0.5,1.1-1.3,1 + c-5.9-0.9-11.8-1.7-17.7-2.5c-0.8,0.1-1.5-0.6-1.6-1.4c0-0.1,0-0.3,0-0.4c0.1-4.7,0.1-9.3,0-14C5,31.4,5.3,31,6.5,31 + C9.4,31.1,12.4,31,15.3,31z"/> + <path class="st0" d="M15.3,28.9c-2.9,0-5.8,0-8.8,0c-1.1,0-1.5-0.4-1.5-1.5c0-4.6,0-9.2,0-13.8c-0.2-0.7,0.3-1.5,1-1.6 + c0.1,0,0.3,0,0.4,0c5.9-0.8,11.8-1.6,17.7-2.6c1.4-0.2,1.5,0.3,1.5,1.3c0,5.6,0,11.2,0,16.8c0,1.2-0.5,1.4-1.6,1.4H15.3z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/adfs.6e70726e.svg b/extensions/harvester/1.5.0-dev/plugin/img/adfs.6e70726e.svg new file mode 100644 index 00000000..b8d1dbfc --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/adfs.6e70726e.svg @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#F25022;} + .st1{fill:#80BA01;} + .st2{fill:#02A4EF;} + .st3{fill:#FFB902;} +</style> +<g> + <g> + <path class="st0" d="M5,5h23.8c0,7.9,0,15.9,0,23.8c-7.9,0-15.9,0-23.8,0V5L5,5z"/> + <path class="st1" d="M31.2,5H55c0,7.9,0,15.9,0,23.8c-7.9,0-15.9,0-23.8,0C31.2,20.7,31.2,12.7,31.2,5L31.2,5z"/> + <path class="st2" d="M5,31.2c7.9,0,15.9,0,23.8,0c0,7.9,0,15.9,0,23.8H5V31.2L5,31.2z"/> + <path class="st3" d="M31.2,31.2c7.9,0,15.9,0,23.8,0c0,7.9,0,15.9,0,23.8H31.2C31.2,46.8,31.2,38.9,31.2,31.2L31.2,31.2z"/> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/aliyun-black.a9967561.svg b/extensions/harvester/1.5.0-dev/plugin/img/aliyun-black.a9967561.svg new file mode 100644 index 00000000..29fd241f --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/aliyun-black.a9967561.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<path d="M18.4243984,67.0989532c-2.0441589-0.4743652-3.6163034-2.2131424-3.6163034-4.426281V38.327774 + c0.1572266-2.213253,1.5723696-3.9520264,3.6163034-4.4263954l22.4841671-4.900425l2.3586082-9.6431732H17.1665936 + C7.8899436,19.3577805,0.5,26.7875862,0.5,35.9566231v28.7712898c0,9.168808,7.5471687,16.7568512,16.6665936,16.7568512h26.1005802 + l-2.3584976-9.6431732C40.9086761,71.8415909,18.4243984,67.0989456,18.4243984,67.0989532z M83.8334122,19.3575611h-26.258255 + l2.3586121,9.6430607l22.484726,4.9005394c2.0440445,0.4744759,3.6156235,2.213253,3.6156235,4.426281v24.3451157 + c-0.1567764,2.2131386-1.5716934,3.9519157-3.6156235,4.426281l-22.4847336,4.90065l-2.3586082,9.642952h26.2582512 + c9.1195374,0,16.6665955-7.4298096,16.6665955-16.7567444V35.9562912 + C100.3421021,26.7873688,92.9529495,19.3575611,83.8334122,19.3575611z M40.9085655,49.2355843h19.1822014v2.3711548H40.9085655 + V49.2355843z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/aliyun.d05bff3f.svg b/extensions/harvester/1.5.0-dev/plugin/img/aliyun.d05bff3f.svg new file mode 100644 index 00000000..78f5b74a --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/aliyun.d05bff3f.svg @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#333333;} +</style> +<path class="st0" d="M18.4243984,67.0989532c-2.0441589-0.4743652-3.6163034-2.2131424-3.6163034-4.426281V38.327774 + c0.1572266-2.213253,1.5723696-3.9520264,3.6163034-4.4263954l22.4841671-4.900425l2.3586082-9.6431732H17.1665936 + C7.8899436,19.3577805,0.5,26.7875862,0.5,35.9566231v28.7712898c0,9.168808,7.5471687,16.7568512,16.6665936,16.7568512h26.1005802 + l-2.3584976-9.6431732C40.9086761,71.8415909,18.4243984,67.0989456,18.4243984,67.0989532z M83.8334122,19.3575611h-26.258255 + l2.3586121,9.6430607l22.484726,4.9005394c2.0440445,0.4744759,3.6156235,2.213253,3.6156235,4.426281v24.3451157 + c-0.1567764,2.2131386-1.5716934,3.9519157-3.6156235,4.426281l-22.4847336,4.90065l-2.3586082,9.642952h26.2582512 + c9.1195374,0,16.6665955-7.4298096,16.6665955-16.7567444V35.9562912 + C100.3421021,26.7873688,92.9529495,19.3575611,83.8334122,19.3575611z M40.9085655,49.2355843h19.1822014v2.3711548H40.9085655 + V49.2355843z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/aliyunecs-black.93dd5b27.svg b/extensions/harvester/1.5.0-dev/plugin/img/aliyunecs-black.93dd5b27.svg new file mode 100644 index 00000000..f38e205c --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/aliyunecs-black.93dd5b27.svg @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<path d="M94.9,15.4C93.3,10.8,89.5,6.8,84.5,5c-22.4-6.6-46.4-6.6-69,0c-4.8,1.8-8.6,5.6-10.4,10.6C-1.7,38-1.7,62,5.1,84.4 + c1.8,4.8,5.6,8.6,10.4,10.4c22.4,6.8,46.4,6.8,69,0c4.8-1.8,8.6-5.6,10.4-10.4C101.7,62,101.7,38,94.9,15.4z M25.1,18.4 + c2.4-4.8,8.4-6.8,13.2-4.4c4.8,2,9.2,6.4,12.4,6.4S56.9,16,61.3,14c1.2-0.6,2.4-1,3.8-1h0.6c5.4,0,9.8,4.4,9.8,9.8 + c0,5.4-4.4,9.8-9.8,9.8h-0.6c-8-0.2-7.4-7-14.6-7s-8.2,6.6-15.8,7h-0.6c-1.6,0-3-0.2-4.6-1C24.7,29.2,22.7,23.2,25.1,18.4z + M71.5,85.8c-4.6,2.4-10.6,0.6-13-4.2c-1-2-1.8-4.4-2-6.8c-3.8-3.6-21.4,19.6-30.8,6.6c-9.4-13,20.6-20,17.6-27.4 + c-2-4.4-9.4-3.2-15.8,1.4c-0.4,0.6-0.8,1-1.4,1.6c-3.8,3.8-10,3.8-13.8,0s-3.8-10,0-13.8s10-3.8,13.8,0C40.9,54,46.7,34,55.9,45 + c8.8,10.6-14.2,17.6-14.2,24.8c0,5.6,13.2,1.4,14.6,1c0.2-4.8,1.4-8.8,2.4-9.2c1.8-1,13.2,4,17,11.2C78.1,77.4,76.3,83.4,71.5,85.8z + M81.7,59.4c-8.2,0-16.8-9.2-16.8-9.2S74.1,41,81.7,41c5,0,9.2,4.2,9.2,9.2S86.7,59.4,81.7,59.4z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/aliyunecs.b57b715b.svg b/extensions/harvester/1.5.0-dev/plugin/img/aliyunecs.b57b715b.svg new file mode 100644 index 00000000..d7520292 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/aliyunecs.b57b715b.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#F8982A;} + .st1{fill:#FFFFFF;} +</style> +<g> + <path class="st0" d="M84.5,5c-22.4-6.6-46.4-6.6-69,0c-4.8,1.8-8.6,5.6-10.4,10.6C-1.7,38-1.7,62,5.1,84.4 + c1.8,4.8,5.6,8.6,10.4,10.4c22.4,6.8,46.4,6.8,69,0c4.8-1.8,8.6-5.6,10.4-10.4c6.8-22.4,6.8-46.4,0-69C93.3,10.8,89.5,6.8,84.5,5z" + /> + <path class="st1" d="M81.7,41c-7.6,0-16.8,9.2-16.8,9.2s8.6,9.2,16.8,9.2c5,0,9.2-4.2,9.2-9.2S86.7,41,81.7,41L81.7,41z"/> + <path class="st1" d="M58.7,61.6c-1,0.4-2.2,4.4-2.4,9.2c-1.4,0.4-14.6,4.6-14.6-1c0-7.2,23-14.2,14.2-24.8c-9.2-11-15,9-29.8-1.8 + l0,0c-3.8-3.8-10-3.8-13.8,0s-3.8,10,0,13.8s10,3.8,13.8,0c0.6-0.6,1-1,1.4-1.6c6.4-4.6,13.8-5.8,15.8-1.4c3,7.4-27,14.4-17.6,27.4 + s27-10.2,30.8-6.6l0,0c0.2,2.4,1,4.8,2,6.8c2.4,4.8,8.4,6.6,13,4.2c4.8-2.4,6.6-8.4,4.2-13C71.9,65.6,60.5,60.6,58.7,61.6z"/> + <path class="st1" d="M34.1,32.6h0.6c7.6-0.4,8.6-7,15.8-7s6.6,6.8,14.6,7h0.6c5.4,0,9.8-4.4,9.8-9.8S71.1,13,65.7,13h-0.6 + c-1.4,0-2.6,0.4-3.8,1c-4.4,2-7.4,6.4-10.6,6.4S43.1,16,38.3,14c-4.8-2.4-10.8-0.4-13.2,4.4s-0.4,10.8,4.4,13.2 + C31.1,32.4,32.5,32.6,34.1,32.6z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/amazonec2-black.5d49a518.svg b/extensions/harvester/1.5.0-dev/plugin/img/amazonec2-black.5d49a518.svg new file mode 100644 index 00000000..a0625801 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/amazonec2-black.5d49a518.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<path d="M50,0l-8.2,4.2v6.2l-7.2-2.6L28.2,11v4.4l-5.8-1.6l-5,2.6v3.3l-4.6-1.1l-4.2,2.2v58.4l4.2,2.2v-0.2l4.6-1v3.4l5,2.6l5.8-1.6 + V89l6.4,3.2l7.2-2.6v6.2L50,100l41.4-20.8V20.8L50,0z M14.8,78.7V21.1l2.6,0.6v56.5L14.8,78.7z M24.4,83.6V16.4l3.8,1.1v65 + L24.4,83.6z M36.6,89.3V10.7l5.2,1.9v74.9L36.6,89.3z M89.4,78L52,96.8V3.2L89.4,22V78z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/amazonec2.259f7435.svg b/extensions/harvester/1.5.0-dev/plugin/img/amazonec2.259f7435.svg new file mode 100644 index 00000000..f68995be --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/amazonec2.259f7435.svg @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#F58536;} + .st1{fill:#9D5025;} +</style> +<g id="Layer_1-2"> + <polygon class="st0" points="22.4,79.2 12.8,81.2 12.8,18.6 22.4,20.8 "/> + <polygon class="st0" points="34.6,82.8 22.4,86.2 22.4,13.8 34.6,17.2 "/> + <polygon class="st0" points="50,86.6 34.6,92.2 34.6,7.8 50,13.4 "/> + <polygon class="st0" points="91.4,79.2 50,100 50,0 91.4,20.8 "/> + <polygon class="st1" points="41.8,4.2 50,0 50,100 41.8,95.8 "/> + <polygon class="st1" points="28.2,11 34.6,7.8 34.6,92.2 28.2,89 "/> + <polygon class="st1" points="17.4,16.4 22.4,13.8 22.4,86.2 17.4,83.6 "/> + <polygon class="st1" points="12.8,18.6 8.6,20.8 8.6,79.2 12.8,81.4 "/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/amazoneks-black.e3999509.svg b/extensions/harvester/1.5.0-dev/plugin/img/amazoneks-black.e3999509.svg new file mode 100644 index 00000000..ec37d77f --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/amazoneks-black.e3999509.svg @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<g> + <polygon points="73.6,58.2 94,71.2 94,23.8 54,0.8 54,24.2 73.6,35.6 "/> + <polygon points="69.2,65 49.8,76.4 26.2,62.6 26.2,35 45.8,23.6 45.8,0 6,23.2 6,74.4 49.8,100 88.4,77.4 "/> + <path d="M59.8,62.4h-3.6l-9.6-12.8L43.8,52v10.4h-3V36h3v13l12-13h3.6L48.8,47.4L59.8,62.4z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/amazoneks.44a8a254.svg b/extensions/harvester/1.5.0-dev/plugin/img/amazoneks.44a8a254.svg new file mode 100644 index 00000000..b2e626c0 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/amazoneks.44a8a254.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#4052D7;} + .st1{fill:#387EFA;} +</style> +<g> + <polygon class="st0" points="73.6,58.2 94,71.2 94,23.8 54,0.8 54,24.2 73.6,35.6 "/> + <polygon class="st1" points="69.2,65 49.8,76.4 26.2,62.6 26.2,35 45.8,23.6 45.8,0 6,23.2 6,74.4 49.8,100 88.4,77.4 "/> + <path class="st0" d="M59.8,62.4h-3.6l-9.6-12.8L43.8,52v10.4h-3V36h3v13l12-13h3.6L48.8,47.4L59.8,62.4z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/aws.988ade4f.svg b/extensions/harvester/1.5.0-dev/plugin/img/aws.988ade4f.svg new file mode 100644 index 00000000..4715937f --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/aws.988ade4f.svg @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 19.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 304 182" style="enable-background:new 0 0 304 182;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#252F3E;} + .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FF9900;} +</style> +<g> + <path class="st0" d="M86.4,66.4c0,3.7,0.4,6.7,1.1,8.9c0.8,2.2,1.8,4.6,3.2,7.2c0.5,0.8,0.7,1.6,0.7,2.3c0,1-0.6,2-1.9,3l-6.3,4.2 + c-0.9,0.6-1.8,0.9-2.6,0.9c-1,0-2-0.5-3-1.4C76.2,90,75,88.4,74,86.8c-1-1.7-2-3.6-3.1-5.9c-7.8,9.2-17.6,13.8-29.4,13.8 + c-8.4,0-15.1-2.4-20-7.2c-4.9-4.8-7.4-11.2-7.4-19.2c0-8.5,3-15.4,9.1-20.6c6.1-5.2,14.2-7.8,24.5-7.8c3.4,0,6.9,0.3,10.6,0.8 + c3.7,0.5,7.5,1.3,11.5,2.2v-7.3c0-7.6-1.6-12.9-4.7-16c-3.2-3.1-8.6-4.6-16.3-4.6c-3.5,0-7.1,0.4-10.8,1.3c-3.7,0.9-7.3,2-10.8,3.4 + c-1.6,0.7-2.8,1.1-3.5,1.3c-0.7,0.2-1.2,0.3-1.6,0.3c-1.4,0-2.1-1-2.1-3.1v-4.9c0-1.6,0.2-2.8,0.7-3.5c0.5-0.7,1.4-1.4,2.8-2.1 + c3.5-1.8,7.7-3.3,12.6-4.5c4.9-1.3,10.1-1.9,15.6-1.9c11.9,0,20.6,2.7,26.2,8.1c5.5,5.4,8.3,13.6,8.3,24.6V66.4z M45.8,81.6 + c3.3,0,6.7-0.6,10.3-1.8c3.6-1.2,6.8-3.4,9.5-6.4c1.6-1.9,2.8-4,3.4-6.4c0.6-2.4,1-5.3,1-8.7v-4.2c-2.9-0.7-6-1.3-9.2-1.7 + c-3.2-0.4-6.3-0.6-9.4-0.6c-6.7,0-11.6,1.3-14.9,4c-3.3,2.7-4.9,6.5-4.9,11.5c0,4.7,1.2,8.2,3.7,10.6 + C37.7,80.4,41.2,81.6,45.8,81.6z M126.1,92.4c-1.8,0-3-0.3-3.8-1c-0.8-0.6-1.5-2-2.1-3.9L96.7,10.2c-0.6-2-0.9-3.3-0.9-4 + c0-1.6,0.8-2.5,2.4-2.5h9.8c1.9,0,3.2,0.3,3.9,1c0.8,0.6,1.4,2,2,3.9l16.8,66.2l15.6-66.2c0.5-2,1.1-3.3,1.9-3.9c0.8-0.6,2.2-1,4-1 + h8c1.9,0,3.2,0.3,4,1c0.8,0.6,1.5,2,1.9,3.9l15.8,67l17.3-67c0.6-2,1.3-3.3,2-3.9c0.8-0.6,2.1-1,3.9-1h9.3c1.6,0,2.5,0.8,2.5,2.5 + c0,0.5-0.1,1-0.2,1.6c-0.1,0.6-0.3,1.4-0.7,2.5l-24.1,77.3c-0.6,2-1.3,3.3-2.1,3.9c-0.8,0.6-2.1,1-3.8,1h-8.6c-1.9,0-3.2-0.3-4-1 + c-0.8-0.7-1.5-2-1.9-4L156,23l-15.4,64.4c-0.5,2-1.1,3.3-1.9,4c-0.8,0.7-2.2,1-4,1H126.1z M254.6,95.1c-5.2,0-10.4-0.6-15.4-1.8 + c-5-1.2-8.9-2.5-11.5-4c-1.6-0.9-2.7-1.9-3.1-2.8c-0.4-0.9-0.6-1.9-0.6-2.8v-5.1c0-2.1,0.8-3.1,2.3-3.1c0.6,0,1.2,0.1,1.8,0.3 + c0.6,0.2,1.5,0.6,2.5,1c3.4,1.5,7.1,2.7,11,3.5c4,0.8,7.9,1.2,11.9,1.2c6.3,0,11.2-1.1,14.6-3.3c3.4-2.2,5.2-5.4,5.2-9.5 + c0-2.8-0.9-5.1-2.7-7c-1.8-1.9-5.2-3.6-10.1-5.2L246,52c-7.3-2.3-12.7-5.7-16-10.2c-3.3-4.4-5-9.3-5-14.5c0-4.2,0.9-7.9,2.7-11.1 + c1.8-3.2,4.2-6,7.2-8.2c3-2.3,6.4-4,10.4-5.2c4-1.2,8.2-1.7,12.6-1.7c2.2,0,4.5,0.1,6.7,0.4c2.3,0.3,4.4,0.7,6.5,1.1 + c2,0.5,3.9,1,5.7,1.6c1.8,0.6,3.2,1.2,4.2,1.8c1.4,0.8,2.4,1.6,3,2.5c0.6,0.8,0.9,1.9,0.9,3.3v4.7c0,2.1-0.8,3.2-2.3,3.2 + c-0.8,0-2.1-0.4-3.8-1.2c-5.7-2.6-12.1-3.9-19.2-3.9c-5.7,0-10.2,0.9-13.3,2.8c-3.1,1.9-4.7,4.8-4.7,8.9c0,2.8,1,5.2,3,7.1 + c2,1.9,5.7,3.8,11,5.5l14.2,4.5c7.2,2.3,12.4,5.5,15.5,9.6c3.1,4.1,4.6,8.8,4.6,14c0,4.3-0.9,8.2-2.6,11.6 + c-1.8,3.4-4.2,6.4-7.3,8.8c-3.1,2.5-6.8,4.3-11.1,5.6C264.4,94.4,259.7,95.1,254.6,95.1z"/> + <g> + <path class="st1" d="M273.5,143.7c-32.9,24.3-80.7,37.2-121.8,37.2c-57.6,0-109.5-21.3-148.7-56.7c-3.1-2.8-0.3-6.6,3.4-4.4 + c42.4,24.6,94.7,39.5,148.8,39.5c36.5,0,76.6-7.6,113.5-23.2C274.2,133.6,278.9,139.7,273.5,143.7z"/> + <path class="st1" d="M287.2,128.1c-4.2-5.4-27.8-2.6-38.5-1.3c-3.2,0.4-3.7-2.4-0.8-4.5c18.8-13.2,49.7-9.4,53.3-5 + c3.6,4.5-1,35.4-18.6,50.2c-2.7,2.3-5.3,1.1-4.1-1.9C282.5,155.7,291.4,133.4,287.2,128.1z"/> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/azure-black.4bcdbe6b.svg b/extensions/harvester/1.5.0-dev/plugin/img/azure-black.4bcdbe6b.svg new file mode 100644 index 00000000..be1937c3 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/azure-black.4bcdbe6b.svg @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<g> + <path d="M99.7962494,76.143692c0,6.9666519,0,13.9333115,0,20.899971c0,2.3885574-0.7961884,2.9857101-2.9857101,2.5876236 + c-15.7247467-2.3885651-31.2504425-4.5781021-46.9751778-6.568573c-2.7866669-0.3980865-3.7819023-1.3933258-3.7819023-4.3790359 + c0.1990433-11.1466522,0.1990433-22.2933121,0-33.4399605c0-2.3885689,0.7961922-3.1847534,3.1847534-3.1847534 + c15.7247467,0,31.6485367,0,47.3732681,0c2.5876236,0,3.1847534,0.9952354,3.1847534,3.1847534 + C99.7962494,62.0113258,99.7962494,68.9779816,99.7962494,76.143692z"/> + <path d="M73.1239014,47.6799202c-7.9618988,0-15.9237938,0-23.6866455,0c-2.3885689,0-3.3838043-0.5971413-3.3838043-3.3838081 + c0.1990433-11.3457031,0.1990433-22.4923515,0-33.8380547c-0.398098-1.3933334,0.5971413-2.9857106,1.9904709-3.1847591 + c0.1990471,0,0.5971413,0,0.796196,0c16.1228409-2.1895218,32.4447174-4.5780878,48.5675583-6.9666581 + c2.7866592-0.3980963,2.3885574,1.5923775,2.3885574,2.9857106c0,10.1514168,0,20.3028297,0,30.2551994 + c0,3.7819061,0,7.3647575,0,11.1466522c0,2.189518-0.7961884,2.9857101-2.9857101,2.9857101 + C88.8486481,47.6799202,81.0857925,47.6799202,73.1239014,47.6799202z"/> + <path d="M20.7744389,51.8599129c5.9714222,0,11.9428425,0,17.7152119,0 + c1.1942825-0.398098,2.3885689,0.3980942,2.7866669,1.5923767c0,0.398098,0.1990433,0.7961922,0,0.9952354 + c0,11.5447464,0,23.2885437,0,34.8332977c0,1.9904785-0.9952354,2.1895218-2.587616,1.9904785 + c-11.7437973-1.7914276-23.487587-3.3838043-35.2313843-4.9761887c-1.5923777,0.1990433-2.9857109-1.1942825-3.1847589-2.7866669 + c0-0.1990433,0-0.5971451,0-0.7961884c0.1990481-9.3552322,0.1990481-18.5114059,0-27.8666344 + c0-2.189518,0.5971407-2.9857101,2.9857106-2.9857101C9.0306444,52.0589561,15.0020695,51.8599129,20.7744389,51.8599129z"/> + <path d="M20.7744389,47.6799202c-5.772377,0-11.5447464,0-17.5161686,0c-2.1895218,0-2.9857106-0.7961922-2.9857106-2.9857101 + c0-9.1561775,0-18.3123608,0-27.4685383c-0.3980963-1.3933325,0.5971406-2.9857101,1.9904737-3.1847544 + c0.199048,0,0.5971406,0,0.7961888,0c11.7437944-1.5923777,23.4875927-3.1847591,35.032341-5.1752329 + c2.7866631-0.3980961,2.9857101,0.5971403,2.9857101,2.5876141c0,11.1466541,0,22.2933064,0,33.4399567 + c0,2.3885689-0.9952393,2.7866669-3.1847572,2.7866669H20.7744389z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/azure.7d30d447.svg b/extensions/harvester/1.5.0-dev/plugin/img/azure.7d30d447.svg new file mode 100644 index 00000000..a26fb746 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/azure.7d30d447.svg @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#00AAF2;} +</style> +<g> + <path class="st0" d="M99.7962494,76.143692c0,6.9666519,0,13.9333115,0,20.899971 + c0,2.3885574-0.7961884,2.9857101-2.9857101,2.5876236c-15.7247467-2.3885651-31.2504425-4.5781021-46.9751778-6.568573 + c-2.7866669-0.3980865-3.7819023-1.3933258-3.7819023-4.3790359c0.1990433-11.1466522,0.1990433-22.2933121,0-33.4399605 + c0-2.3885689,0.7961922-3.1847534,3.1847534-3.1847534c15.7247467,0,31.6485367,0,47.3732681,0 + c2.5876236,0,3.1847534,0.9952354,3.1847534,3.1847534C99.7962494,62.0113258,99.7962494,68.9779816,99.7962494,76.143692z"/> + <path class="st0" d="M73.1239014,47.6799202c-7.9618988,0-15.9237938,0-23.6866455,0 + c-2.3885689,0-3.3838043-0.5971413-3.3838043-3.3838081c0.1990433-11.3457031,0.1990433-22.4923515,0-33.8380547 + c-0.398098-1.3933334,0.5971413-2.9857106,1.9904709-3.1847591c0.1990471,0,0.5971413,0,0.796196,0 + c16.1228409-2.1895218,32.4447174-4.5780878,48.5675583-6.9666581c2.7866592-0.3980963,2.3885574,1.5923775,2.3885574,2.9857106 + c0,10.1514168,0,20.3028297,0,30.2551994c0,3.7819061,0,7.3647575,0,11.1466522 + c0,2.189518-0.7961884,2.9857101-2.9857101,2.9857101C88.8486481,47.6799202,81.0857925,47.6799202,73.1239014,47.6799202z"/> + <path class="st0" d="M20.7744389,51.8599129c5.9714222,0,11.9428425,0,17.7152119,0 + c1.1942825-0.398098,2.3885689,0.3980942,2.7866669,1.5923767c0,0.398098,0.1990433,0.7961922,0,0.9952354 + c0,11.5447464,0,23.2885437,0,34.8332977c0,1.9904785-0.9952354,2.1895218-2.587616,1.9904785 + c-11.7437973-1.7914276-23.487587-3.3838043-35.2313843-4.9761887c-1.5923777,0.1990433-2.9857109-1.1942825-3.1847589-2.7866669 + c0-0.1990433,0-0.5971451,0-0.7961884c0.1990481-9.3552322,0.1990481-18.5114059,0-27.8666344 + c0-2.189518,0.5971407-2.9857101,2.9857106-2.9857101C9.0306444,52.0589561,15.0020695,51.8599129,20.7744389,51.8599129z"/> + <path class="st0" d="M20.7744389,47.6799202c-5.772377,0-11.5447464,0-17.5161686,0 + c-2.1895218,0-2.9857106-0.7961922-2.9857106-2.9857101c0-9.1561775,0-18.3123608,0-27.4685383 + c-0.3980963-1.3933325,0.5971406-2.9857101,1.9904737-3.1847544c0.199048,0,0.5971406,0,0.7961888,0 + c11.7437944-1.5923777,23.4875927-3.1847591,35.032341-5.1752329c2.7866631-0.3980961,2.9857101,0.5971403,2.9857101,2.5876141 + c0,11.1466541,0,22.2933064,0,33.4399567c0,2.3885689-0.9952393,2.7866669-3.1847572,2.7866669H20.7744389z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/azuread-black.d272db7e.svg b/extensions/harvester/1.5.0-dev/plugin/img/azuread-black.d272db7e.svg new file mode 100644 index 00000000..6b5b4166 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/azuread-black.d272db7e.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<g> + <path d="M54.5,37.8000031C53.9000015,38,53.5,38.2000046,52.9000015,38.2000046v30.5999985 + c0.4000015,0,0.8000031,0.1999969,1.1999969,0.4000015l15.5999985-10 + c-0.4000015-0.8000031-0.4000015-1.8000031-0.4000015-2.8000031c0-1.4000015,0.4000015-3,1.1999969-4.1999969L54.5,37.8000031z"/> + <path d="M50.0999947,0L0.2999973,58.8000031L50.0999947,100l49.6000099-41.1999969L50.0999947,0z M76.9000015,64.5999985 + c-1.8000031,0-3.5999985-0.5999985-5-1.8000031L57.2999954,72c1,1.4000015,1.4000015,3,1.5999985,4.5999985 + C59.4999924,81,56.6999969,85,52.2999954,85.8000031c-4.4000015,0.6000061-8.4000015-2.1999969-9.1999969-6.6000061 + c-0.1999969-0.8000031-0.1999969-1.5999985,0-2.5999985C43.0999985,75,43.5,73.4000015,44.5,72.1999969l-15.4000034-10 + c-3,3-8,3-11,0c-1.4000015-1.4000015-2.4000015-3.5999985-2.4000015-5.5999985c0-4.4000015,3.5999985-8,8-8 + C25.2999935,48.5999985,26.899992,49,28.0999966,50l16.0000019-14.8000031c-1.1999969-1.5999985-2-3.5999985-2-5.5999985 + c0-5,4-8.8000031,9-8.8000031s8.8000031,4,8.8000031,8.8000031c0,2-0.8000031,4-2,5.5999985l15.4000015,14.4000015 + c4-2,8.7999954-0.5999985,10.7999954,3.4000015s0.6000061,8.8000031-3.3999939,10.8000031 + C79.2999954,64.1999969,78.0999985,64.5999985,76.9000015,64.5999985z"/> + <path d="M30.4999981,53.1999969C31.3000011,55,31.4999981,57,30.8999996,58.7999954l16.4000034,10.5999985 + c0.4000015-0.1999969,0.8000031-0.4000015,1.4000015-0.4000015V38.4000015c-0.5999985,0-1.1999969-0.1999969-1.5999985-0.5999985 + L30.4999981,53.1999969z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/azuread.774efe5f.svg b/extensions/harvester/1.5.0-dev/plugin/img/azuread.774efe5f.svg new file mode 100644 index 00000000..2cb631ae --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/azuread.774efe5f.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#00AAF2;} +</style> +<g> + <path class="st0" d="M32.2,23.9c-0.3,0.1-0.5,0.2-0.8,0.2v15.3c0.2,0,0.4,0.1,0.6,0.2l7.8-5c-0.2-0.4-0.2-0.9-0.2-1.4 + c0-0.7,0.2-1.5,0.6-2.1L32.2,23.9z"/> + <path class="st0" d="M30,5L5.1,34.4L30,55l24.8-20.6L30,5z M43.4,37.3c-0.9,0-1.8-0.3-2.5-0.9L33.6,41c0.5,0.7,0.7,1.5,0.8,2.3 + c0.3,2.2-1.1,4.2-3.3,4.6c-2.2,0.3-4.2-1.1-4.6-3.3c-0.1-0.4-0.1-0.8,0-1.3c0-0.8,0.2-1.6,0.7-2.2l-7.7-5c-1.5,1.5-4,1.5-5.5,0 + c-0.7-0.7-1.2-1.8-1.2-2.8c0-2.2,1.8-4,4-4c0.8,0,1.6,0.2,2.2,0.7l8-7.4c-0.6-0.8-1-1.8-1-2.8c0-2.5,2-4.4,4.5-4.4s4.4,2,4.4,4.4 + c0,1-0.4,2-1,2.8l7.7,7.2c2-1,4.4-0.3,5.4,1.7s0.3,4.4-1.7,5.4C44.6,37.1,44,37.3,43.4,37.3z"/> + <path class="st0" d="M20.2,31.6c0.4,0.9,0.5,1.9,0.2,2.8l8.2,5.3c0.2-0.1,0.4-0.2,0.7-0.2V24.2c-0.3,0-0.6-0.1-0.8-0.3L20.2,31.6z" + /> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/azuread.7914bb78.svg b/extensions/harvester/1.5.0-dev/plugin/img/azuread.7914bb78.svg new file mode 100644 index 00000000..7fb1c170 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/azuread.7914bb78.svg @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#00AAF2;} +</style> +<g> + <path class="st0" d="M54.5,37.8000031C53.9000015,38,53.5,38.2000046,52.9000015,38.2000046v30.5999985 + c0.4000015,0,0.8000031,0.1999969,1.1999969,0.4000015l15.5999985-10 + c-0.4000015-0.8000031-0.4000015-1.8000031-0.4000015-2.8000031c0-1.4000015,0.4000015-3,1.1999969-4.1999969L54.5,37.8000031z"/> + <path class="st0" d="M50.0999947,0L0.2999973,58.8000031L50.0999947,100l49.6000099-41.1999969L50.0999947,0z + M76.9000015,64.5999985c-1.8000031,0-3.5999985-0.5999985-5-1.8000031L57.2999954,72c1,1.4000015,1.4000015,3,1.5999985,4.5999985 + C59.4999924,81,56.6999969,85,52.2999954,85.8000031c-4.4000015,0.6000061-8.4000015-2.1999969-9.1999969-6.6000061 + c-0.1999969-0.8000031-0.1999969-1.5999985,0-2.5999985C43.0999985,75,43.5,73.4000015,44.5,72.1999969l-15.4000034-10 + c-3,3-8,3-11,0c-1.4000015-1.4000015-2.4000015-3.5999985-2.4000015-5.5999985c0-4.4000015,3.5999985-8,8-8 + C25.2999935,48.5999985,26.899992,49,28.0999966,50l16.0000019-14.8000031c-1.1999969-1.5999985-2-3.5999985-2-5.5999985 + c0-5,4-8.8000031,9-8.8000031s8.8000031,4,8.8000031,8.8000031c0,2-0.8000031,4-2,5.5999985l15.4000015,14.4000015 + c4-2,8.7999954-0.5999985,10.7999954,3.4000015s0.6000061,8.8000031-3.3999939,10.8000031 + C79.2999954,64.1999969,78.0999985,64.5999985,76.9000015,64.5999985z"/> + <path class="st0" d="M30.4999981,53.1999969C31.3000011,55,31.4999981,57,30.8999996,58.7999954l16.4000034,10.5999985 + c0.4000015-0.1999969,0.8000031-0.4000015,1.4000015-0.4000015V38.4000015c-0.5999985,0-1.1999969-0.1999969-1.5999985-0.5999985 + L30.4999981,53.1999969z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/azureaks-black.09cdc074.svg b/extensions/harvester/1.5.0-dev/plugin/img/azureaks-black.09cdc074.svg new file mode 100644 index 00000000..4ea91e5b --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/azureaks-black.09cdc074.svg @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<g> + <polygon points="49.9,37.8 49.9,62.2 64.6,56.3 64.6,43.2 "/> + <path d="M35.4,41.3V58l11.5,4.1V37.8L35.4,41.3z M38.1,57.2l-1.8-0.7V43.2l1.8-0.5V57.2z M41.4,58.4l-2.5-0.9V42.4l2.5-0.8V58.4z + M45.5,59.7l-3.3-1V41.3l3.3-1V59.7z"/> + <polygon points="14.5,37.8 14.5,62.2 29.2,56.3 29.2,43.2 "/> + <path d="M0,41.3V58l11.5,4.1V37.8L0,41.3z M2.8,57.2L1,56.5V43.2l1.8-0.5V57.2z M6,58.4l-2.5-0.9V42.4L6,41.6V58.4z M10.1,59.7 + l-3.3-1V41.3l3.3-1V59.7z"/> + <polygon points="85.3,37.8 85.3,62.2 100,56.3 100,43.2 "/> + <path d="M70.8,41.3V58l11.5,4.1V37.8L70.8,41.3z M73.4,57.2l-1.8-0.7V43.2l1.8-0.5V57.2z M76.8,58.4l-2.5-0.9V42.4l2.5-0.8V58.4z + M80.9,59.7l-3.3-1V41.3l3.3-1V59.7z"/> + <polygon points="31.1,62.6 31.1,87 45.7,81.1 45.7,68 "/> + <path d="M16.5,66.3v16.6L28,87V62.6L16.5,66.3z M19.1,82l-1.8-0.7V68.1l1.8-0.5V82z M22.5,83.2L20,82.3V67.2l2.5-0.8V83.2z + M26.6,84.6l-3.3-1V66.1l3.3-1V84.6z"/> + <polygon points="67.1,62.6 67.1,87 81.8,81.1 81.8,68 "/> + <path d="M52.4,66.3v16.6L64,87V62.6L52.4,66.3z M55.2,82l-1.8-0.7V68.1l1.8-0.5V82z M58.5,83.2l-2.5-1v-15l2.5-0.8V83.2z + M62.6,84.6l-3.3-1V66.1l3.3-1V84.6z"/> + <polygon points="31.1,13 31.1,37.3 45.7,31.5 45.7,18.4 "/> + <path d="M16.5,16.6v16.6L28,37.3V13L16.5,16.6z M19.1,32.3l-1.8-0.7V18.4l1.8-0.5V32.3z M22.5,33.5L20,32.7V17.6l2.5-0.8V33.5z + M26.6,34.9l-3.3-1V16.6l3.3-1V34.9z"/> + <polygon points="67.1,13 67.1,37.3 81.8,31.5 81.8,18.4 "/> + <path d="M52.4,16.6v16.6L64,37.3V13L52.4,16.6z M55.2,32.3l-1.8-0.7V18.4l1.8-0.5V32.3z M58.5,33.5L56,32.7V17.6l2.5-0.8 + C58.5,16.8,58.5,33.5,58.5,33.5z M62.6,34.9l-3.3-1V16.6l3.3-1V34.9z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/azureaks.239d69fb.svg b/extensions/harvester/1.5.0-dev/plugin/img/azureaks.239d69fb.svg new file mode 100644 index 00000000..7e462f04 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/azureaks.239d69fb.svg @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#0079D6;} +</style> +<g> + <polygon class="st0" points="49.9,37.8 49.9,62.2 64.6,56.3 64.6,43.2 "/> + <path class="st0" d="M35.4,41.3V58l11.5,4.1V37.8L35.4,41.3z M38.1,57.2l-1.8-0.7V43.2l1.8-0.5V57.2z M41.4,58.4l-2.5-0.9V42.4 + l2.5-0.8V58.4z M45.5,59.7l-3.3-1V41.3l3.3-1V59.7z"/> + <polygon class="st0" points="14.5,37.8 14.5,62.2 29.2,56.3 29.2,43.2 "/> + <path class="st0" d="M0,41.3V58l11.5,4.1V37.8L0,41.3z M2.8,57.2l-1.8-0.7V43.2l1.8-0.5V57.2z M6,58.4l-2.5-0.9V42.4L6,41.6V58.4z + M10.1,59.7l-3.3-1V41.3l3.3-1V59.7z"/> + <polygon class="st0" points="85.3,37.8 85.3,62.2 100,56.3 100,43.2 "/> + <path class="st0" d="M70.8,41.3V58l11.5,4.1V37.8L70.8,41.3z M73.4,57.2l-1.8-0.7V43.2l1.8-0.5V57.2z M76.8,58.4l-2.5-0.9V42.4 + l2.5-0.8V58.4z M80.9,59.7l-3.3-1V41.3l3.3-1V59.7z"/> + <polygon class="st0" points="31.1,62.6 31.1,87 45.7,81.1 45.7,68 "/> + <path class="st0" d="M16.5,66.3v16.6L28,87V62.6L16.5,66.3z M19.1,82l-1.8-0.7V68.1l1.8-0.5V82z M22.5,83.2l-2.5-0.9V67.2l2.5-0.8 + V83.2z M26.6,84.6l-3.3-1V66.1l3.3-1V84.6z"/> + <polygon class="st0" points="67.1,62.6 67.1,87 81.8,81.1 81.8,68 "/> + <path class="st0" d="M52.4,66.3v16.6L64,87V62.6L52.4,66.3z M55.2,82l-1.8-0.7V68.1l1.8-0.5V82z M58.5,83.2L56,82.2V67.2l2.5-0.8 + V83.2z M62.6,84.6l-3.3-1V66.1l3.3-1V84.6z"/> + <polygon class="st0" points="31.1,13 31.1,37.3 45.7,31.5 45.7,18.4 "/> + <path class="st0" d="M16.5,16.6v16.6L28,37.3V13L16.5,16.6z M19.1,32.3l-1.8-0.7V18.4l1.8-0.5V32.3z M22.5,33.5l-2.5-0.8V17.6 + l2.5-0.8V33.5z M26.6,34.9l-3.3-1V16.6l3.3-1V34.9z"/> + <polygon class="st0" points="67.1,13 67.1,37.3 81.8,31.5 81.8,18.4 "/> + <path class="st0" d="M52.4,16.6v16.6L64,37.3V13L52.4,16.6z M55.2,32.3l-1.8-0.7V18.4l1.8-0.5V32.3z M58.5,33.5L56,32.7V17.6 + l2.5-0.8C58.5,16.8,58.5,33.5,58.5,33.5z M62.6,34.9l-3.3-1V16.6l3.3-1V34.9z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/baidu-black.32fb0569.svg b/extensions/harvester/1.5.0-dev/plugin/img/baidu-black.32fb0569.svg new file mode 100644 index 00000000..ec45d416 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/baidu-black.32fb0569.svg @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<g> + <path d="M71.3166656,31.7333336c1.1500015,0.6666641,2.5833359,0.6666641,3.7333374,0l15.3000031-8.7000008l-8.25-4.6999989 + c0,0,0,0,0.0166626-0.0166664L50.1166649,0l-5.3999977,3.0666668C44.4333344,3.2,44.1666679,3.3333335,43.8833313,3.5 + L9.5499992,23.083334l15.2666664,8.7166672c1.166666,0.666666,2.5833321,0.666666,3.75,0l7.6666679-4.3666649l10-5.7000008 + c2.3333321-1.333334,5.2166634-1.333334,7.5666656,0l7.8666687,4.4833336L71.3166656,31.7333336z"/> + <path d="M77.8499985,42.6500015v20.0500031c0,2.6666641-1.4499969,5.1333389-3.7833328,6.4833298L56.1666679,79.3833313 + C55,80.0500031,54.2833366,81.2666702,54.2833366,82.5999985V100l34.6000023-19.7166672 + c0.0499954-0.0333405,0.0999985-0.0500031,0.1333313-0.0833359L95,76.8000031v-4.6999969v-2.2666702V30.7333355 + l-15.2666626,8.6999989C78.5666656,40.1000023,77.8499985,41.3166656,77.8499985,42.6500015z"/> + <path d="M43.2999992,79.1166687l-17.3666668-9.9000015c-2.3500004-1.3333282-3.7833347-3.7999954-3.7833347-6.4833298V42.6833344 + c0-1.3333321-0.7166672-2.5499992-1.8833332-3.2166672L4.9999986,30.7666664v-0.0333347V30.75v39.1166611l0,0v2.2166748v4.6999969 + l5.3499999,3.0666656c0.250001,0.1666641,0.5,0.3166656,0.750001,0.4666672l34.0666695,19.4166641V82.3333359 + C45.1833344,81,44.4666672,79.7833405,43.2999992,79.1166687z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/baidu.063c3510.svg b/extensions/harvester/1.5.0-dev/plugin/img/baidu.063c3510.svg new file mode 100644 index 00000000..80d66df3 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/baidu.063c3510.svg @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#21CF68;} + .st1{fill:#FB5138;} + .st2{fill:#1267FA;} +</style> +<g> + <path class="st0" d="M71.3166656,31.7333336c1.1500015,0.6666641,2.5833359,0.6666641,3.7333374,0l15.3000031-8.7000008 + l-8.25-4.6999989c0,0,0,0,0.0166626-0.0166664L50.1166649,0l-5.3999977,3.0666668 + C44.4333344,3.2,44.1666679,3.3333335,43.8833313,3.5L9.5499992,23.083334l15.2666664,8.7166672 + c1.166666,0.666666,2.5833321,0.666666,3.75,0l7.6666679-4.3666649l10-5.7000008 + c2.3333321-1.333334,5.2166634-1.333334,7.5666656,0l7.8666687,4.4833336L71.3166656,31.7333336z"/> + <path class="st1" d="M77.8499985,42.6500015v20.0500031c0,2.6666641-1.4499969,5.1333389-3.7833328,6.4833298 + L56.1666679,79.3833313C55,80.0500031,54.2833366,81.2666702,54.2833366,82.5999985V100l34.6000023-19.7166672 + c0.0499954-0.0333405,0.0999985-0.0500031,0.1333313-0.0833359L95,76.8000031v-4.6999969v-2.2666702V30.7333355 + l-15.2666626,8.6999989C78.5666656,40.1000023,77.8499985,41.3166656,77.8499985,42.6500015z"/> + <path class="st2" d="M43.2999992,79.1166687l-17.3666668-9.9000015c-2.3500004-1.3333282-3.7833347-3.7999954-3.7833347-6.4833298 + V42.6833344c0-1.3333321-0.7166672-2.5499992-1.8833332-3.2166672L4.9999986,30.7666664v-0.0333347V30.75v39.1166611l0,0v2.2166748 + v4.6999969l5.3499999,3.0666656c0.250001,0.1666641,0.5,0.3166656,0.750001,0.4666672l34.0666695,19.4166641V82.3333359 + C45.1833344,81,44.4666672,79.7833405,43.2999992,79.1166687z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/banner.00f803a6.svg b/extensions/harvester/1.5.0-dev/plugin/img/banner.00f803a6.svg new file mode 100644 index 00000000..39902aba --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/banner.00f803a6.svg @@ -0,0 +1,241 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 4197.2836914 633.0073853" style="enable-background:new 0 0 4197.2836914 633.0073853;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#D9EDEF;} + .st1{fill:#8DC63F;} + .st2{fill:#6BA939;} + .st3{fill:#5C9531;} + .st4{fill:#594A41;} + .st5{fill:#DBE13A;} + .st6{fill:#BBD644;} + .st7{fill:#ABC53E;} + .st8{opacity:0.5;} + .st9{fill:#FFFFFF;} +</style> +<rect class="st0" width="4197.2836914" height="633.0073853"/> +<g> + <path id="path598" class="st1" d="M3443.8837891,580.0073853 + c-175.1999512-106.2000122-400.3000488-170.1000061-645.8999023-170.1000061c-284.1999512,0-541,85.5-724.6000977,223.1000061 + h1370.5V580.0073853z"/> + <g> + <path id="path600" class="st2" d="M2780.0837402,473.9074097c0,22.9000244-18.5998535,41.5-41.5,41.5 + c-22.8999023,0-41.5-18.5999756-41.5-41.5c0-22.8999939,18.6000977-41.5,41.5-41.5 + C2761.5837402,432.4074097,2780.0837402,451.0074158,2780.0837402,473.9074097z"/> + <path id="path602" class="st3" d="M2780.0837402,473.9074097c0-22.8999939-18.5998535-41.5-41.5-41.5v82.9000244 + C2761.5837402,515.3074341,2780.0837402,496.8074341,2780.0837402,473.9074097z"/> + <path id="path604" class="st4" d="M2738.6838379,540.0073853c-1.0998535,0-2.0998535-0.9000244-2.0998535-2.0999756v-58 + c0-1.0999756,0.8999023-2.0999756,2.0998535-2.0999756c1.1000977,0,2.1000977,0.9000244,2.1000977,2.0999756v58 + C2740.7839355,539.1074219,2739.7839355,540.0073853,2738.6838379,540.0073853z"/> + <path id="path606" class="st4" d="M2738.6838379,503.1074219c-0.5,0-1.0998535-0.2000122-1.5-0.5999756 + c-0.8000488-0.7999878-0.8000488-2.0999756,0-2.9000244l8.6000977-8.5999756c0.8000488-0.7999878,2.0998535-0.7999878,2.8999023,0 + s0.8000488,2.0999756,0,2.9000244l-8.5998535,8.5999756 + C2739.6838379,502.9074707,2739.1838379,503.1074219,2738.6838379,503.1074219z"/> + <path id="path608" class="st4" d="M2738.6838379,495.6074219c-0.5,0-1.0998535-0.2000122-1.5-0.5999756l-11.5-11.5 + c-0.8000488-0.7999878-0.8000488-2.0999756,0-2.9000244c0.8000488-0.7999878,2.1000977-0.7999878,2.9001465,0l11.5,11.5 + c0.8000488,0.7999878,0.8000488,2.0999756,0,2.9000244 + C2739.6838379,495.4074707,2739.1838379,495.6074219,2738.6838379,495.6074219z"/> + </g> + <path id="path610" class="st5" d="M2386.8837891,506.1073914c0-26-7.3999023-56.1000061-22.3999023-56.1000061 + s-22.4001465,30.1000061-22.4001465,56.1000061c0,9.4999695,7.4001465,17.1999817,22.4001465,17.1999817 + C2379.4838867,523.4074097,2386.8837891,515.7073975,2386.8837891,506.1073914z"/> + <path id="path612" class="st6" d="M2386.8837891,506.1073914c0-26-7.3999023-56.1000061-22.3999023-56.1000061v73.2999878 + c15,0.0999756,22.3999023-7.6000366,22.3999023-17.2000122V506.1073914z"/> + <path id="path614" class="st4" d="M2364.4838867,550.4074097c-1.1000977,0-2.1000977-0.9000244-2.1000977-2.1000366v-64.1999512 + c0-1.1000061,0.9001465-2.1000061,2.1000977-2.1000061c1.0998535,0,2.0998535,0.8999939,2.0998535,2.1000061v64.2000122 + C2366.5837402,549.5074463,2365.6838379,550.4074097,2364.4838867,550.4074097L2364.4838867,550.4074097z"/> + <path id="path616" class="st4" d="M2364.4838867,509.7073975c-0.5,0-1.1000977-0.2000122-1.5-0.6000061l-9.5-9.5 + c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939s2.0998535-0.7999878,2.8999023,0l9.5,9.5 + c0.8000488,0.7999878,0.8000488,2.1000061,0,2.8999939 + C2365.5837402,509.5073853,2365.0837402,509.7073975,2364.4838867,509.7073975z"/> + <path id="path618" class="st4" d="M2364.4838867,501.3074036c-0.5,0-1.1000977-0.2000122-1.5-0.6000061 + c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939l12.6999512-12.7000122 + c0.8000488-0.7999878,2.0998535-0.7999878,2.8999023,0s0.8000488,2.1000061,0,2.8999939l-12.6999512,12.7000122 + C2365.5837402,501.1073914,2365.0837402,501.3074036,2364.4838867,501.3074036z"/> + <path id="path620" class="st6" d="M3489.7836914,322.4074402c-301.3999023,0-562.1999512,126.5-688,310.6000061h653.3000488 + h88.8999023h653.3000488c-125.8999023-184.1000366-386.6999512-310.6000366-688.3000488-310.6000366 + c-3.1999512,0-6.3999023,0.1000061-9.5998535,0.1000061c-3.1999512-0.1000061-6.3999023-0.1000061-9.6000977-0.1000061V322.4074402 + z"/> + <g id="g642" transform="translate(0,150.9074)"> + <path id="path622" class="st7" d="M3340.7836914,335.4000244c0-9-7.2998047-16.2999878-16.2998047-16.2999878 + s-16.3000488,7.2999878-16.3000488,16.2999878s7.3000488,16.2999878,16.3000488,16.2999878 + S3340.7836914,344.4000244,3340.7836914,335.4000244z"/> + <path id="path624" class="st7" d="M3475.1838379,270.2000122c0-9-7.3000488-16.3000031-16.3000488-16.3000031 + s-16.3000488,7.3000031-16.3000488,16.3000031S3449.8837891,286.5,3458.8837891,286.5 + S3475.1838379,279.2000122,3475.1838379,270.2000122z"/> + <path id="path626" class="st7" d="M3298.7839355,384.2999878c-9,0-16.3000488,7.2999878-16.3000488,16.2999878 + s7.2998047,16.2999878,16.3000488,16.2999878h97.0998535c9,0,16.3000488,7.2999878,16.3000488,16.2999878 + s-7.3000488,16.2999878-16.3000488,16.2999878h-21.3999023c-9,0-16.3000488,7.2999878-16.3000488,16.2999878 + s7.3000488,16.2999878,16.3000488,16.2999878h289.5h52c9,0,16.2998047-7.2999878,16.2998047-16.2999878 + s-7.2998047-16.2999878-16.2998047-16.2999878h-56.7001953c-9,0-16.2998047-7.2999878-16.2998047-16.2999878 + s7.2998047-16.2999878,16.2998047-16.2999878h110c9,0,16.3000488-7.2999878,16.3000488-16.2999878 + s-7.3000488-16.2999878-16.3000488-16.2999878h-68.5998535c-9,0-16.3000488-7.2999878-16.3000488-16.2999878 + s7.3000488-16.2999878,16.3000488-16.2999878h104.2998047c9,0,16.3000488-7.2999878,16.3000488-16.2999878 + s-7.3000488-16.2999878-16.3000488-16.2999878h-57.0998535c-9,0-16.3000488-7.2999878-16.3000488-16.2999878 + s7.3000488-16.2999878,16.3000488-16.2999878h21.3999023c9,0,16.3000488-7.2999878,16.3000488-16.2999878 + s-7.3000488-16.3000031-16.3000488-16.3000031h-119.5h-142c-9,0-16.2998047,7.3000031-16.2998047,16.3000031 + s7.2998047,16.2999878,16.2998047,16.2999878h56.7001953c9,0,16.2998047,7.2999878,16.2998047,16.2999878 + s-7.2998047,16.2999878-16.2998047,16.2999878h-190c-9,0-16.3000488,7.2999878-16.3000488,16.2999878 + s7.3000488,16.2999878,16.3000488,16.2999878h68.5998535c9,0,16.3000488,7.2999878,16.3000488,16.2999878 + s-7.3000488,16.2999878-16.3000488,16.2999878h-144.3000488H3298.7839355z"/> + <path id="path628" class="st7" d="M3802.9838867,400.5999756c0,9,7.2998047,16.2999878,16.2998047,16.2999878 + s16.3000488-7.2999878,16.3000488-16.2999878s-7.3000488-16.2999878-16.3000488-16.2999878 + S3802.9838867,391.5999756,3802.9838867,400.5999756z"/> + <path id="path630" class="st7" d="M3748.5837402,465.7999878c0,9,7.3000488,16.2999878,16.3000488,16.2999878 + s16.3000488-7.2999878,16.3000488-16.2999878S3773.8837891,449.5,3764.8837891,449.5 + S3748.5837402,456.7999878,3748.5837402,465.7999878z"/> + </g> + <g> + <path id="path654" class="st1" d="M3159.2836914,303.9074097c25.6000977,0,46.4001465,20.6999817,46.4001465,46.3999939 + c0,25.6000061-20.6999512,46.3999939-46.4001465,46.3999939c-25.5998535,0-46.3999023-20.6999817-46.3999023-46.3999939 + C3112.8837891,324.6074219,3133.6838379,303.8074036,3159.2836914,303.9074097z"/> + <path id="path656" class="st2" d="M3159.2836914,396.8074036v-92.8999939 + c-25.5998535,0-46.3999023,20.6999817-46.3999023,46.3999939 + C3112.8837891,375.9074097,3133.6838379,396.7073975,3159.2836914,396.8074036z"/> + <path id="path658" class="st4" d="M3157.2836914,422.0073853v-65.1000061c0-1.2000122,1-2.1000061,2.1000977-2.1000061 + c1.1999512,0,2.0998535,1,2.0998535,2.1000061v65.1000061c0,1.2000122-1,2.1000061-2.0998535,2.1000061 + C3158.1838379,424.1073914,3157.2836914,423.2073975,3157.2836914,422.0073853z"/> + <path id="path660" class="st4" d="M3157.9836426,382.2073975l-9.6999512-9.7000122 + c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939s2.1000977-0.7999878,2.9001465,0l9.6999512,9.7000122 + c0.8000488,0.7999878,0.8000488,2.1000061,0,2.8999939c-0.4001465,0.3999939-1,0.6000061-1.5,0.6000061 + S3158.2836914,382.6073914,3157.9836426,382.2073975z"/> + <path id="path662" class="st4" d="M3157.9836426,373.7073975c-0.7998047-0.7999878-0.7998047-2.1000061,0-2.8999939 + l12.8000488-12.7999878c0.8000488-0.7999878,2.1000977-0.7999878,2.9001465,0 + c0.7998047,0.7999878,0.7998047,2.1000061,0,2.8999939l-12.8000488,12.7999878c-0.4001465,0.3999939-1,0.6000061-1.5,0.6000061 + S3158.2836914,374.1073914,3157.9836426,373.7073975z"/> + </g> + <g> + <path id="path694" class="st5" d="M3559.3447266,517.8883667c-17.3000488,0-31.3000488-14-31.3000488-31.2999878 + c0-47.2000122,14-125.6000061,31.3000488-125.6000061c17.2998047,0,31.2998047,78.4000244,31.2998047,125.6000061 + C3590.6445312,503.8883667,3576.6445312,517.8883667,3559.3447266,517.8883667z"/> + <path id="path696" class="st6" d="M3559.3447266,517.8883667V360.9883728 + c17.2998047,0,31.2998047,78.4000244,31.2998047,125.6000061 + C3590.6445312,503.8883667,3576.6445312,517.8883667,3559.3447266,517.8883667z"/> + <path id="path698" class="st4" d="M3557.2446289,550.9884033v-85.1000366c0-1.2000122,1-2.1000061,2.1000977-2.1000061 + c1.1999512,0,2.0998535,1,2.0998535,2.1000061v85.1000366c0,1.2000122-1,2.0999756-2.0998535,2.0999756 + C3558.1447754,553.0883789,3557.2446289,552.0883789,3557.2446289,550.9884033z"/> + <path id="path700" class="st4" d="M3557.9445801,498.2883911l-12.5998535-12.6000061 + c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939s2.0998535-0.7999878,2.8999023,0l12.6000977,12.7000122 + c0.7998047,0.7999878,0.7998047,2.1000061,0,2.8999939c-0.4001465,0.3999939-1,0.6000061-1.5,0.6000061 + S3558.2446289,498.7883911,3557.9445801,498.2883911z"/> + <path id="path702" class="st4" d="M3557.8447266,487.3883972c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939 + l16.7998047-16.7999878c0.8000488-0.7999878,2.1000977-0.7999878,2.9001465,0s0.8000488,2.1000061,0,2.8999939 + l-16.6999512,16.7999878c-0.4001465,0.3999939-1,0.6000061-1.5,0.6000061S3558.2446289,487.7883911,3557.8447266,487.3883972z"/> + </g> + <g> + <path id="path714" class="st1" d="M3404.1896973,333.3871155c-19.8999023,0-29.6999512-10.3000488-29.6999512-22.9000244 + c0-34.5,9.7998047-74.4000092,29.6999512-74.4000092c19.8999023,0,29.6999512,39.9000092,29.6999512,74.4000092 + C3433.8896484,323.1871033,3424.0895996,333.3871155,3404.1896973,333.3871155z"/> + <path id="path716" class="st2" d="M3404.1896973,333.2870789v-97.1999969 + c19.8999023,0,29.6999512,39.9000092,29.6999512,74.4000092 + C3433.8896484,323.1871033,3424.0895996,333.3870544,3404.1896973,333.2870789z"/> + <path id="path718" class="st4" d="M3402.0895996,366.4870911v-85.0999756c0-1.1999512,1-2.0999756,2.1000977-2.0999756 + c1.1999512,0,2.0998535,1,2.0998535,2.0999756v85.0999756c0,1.1999512-1,2.0999756-2.0998535,2.0999756 + C3403.0895996,368.5870667,3402.1896973,367.6871033,3402.0895996,366.4870911z"/> + <path id="path720" class="st4" d="M3402.7895508,313.7870789l-12.5998535-12.5999756 + c-0.8000488-0.8000488-0.8000488-2.1000366,0-2.9000244s2.0998535-0.7999878,2.8999023,0l12.6000977,12.7000122 + c0.8000488,0.8000488,0.8000488,2.1000366,0,2.9000244c-0.4001465,0.3999634-1,0.5999756-1.5,0.5999756 + S3403.1896973,314.2870789,3402.7895508,313.7870789z"/> + <path id="path722" class="st4" d="M3402.7895508,302.8871155c-0.8000488-0.8000488-0.8000488-2.1000366,0-2.9000244 + l16.8000488-16.7999878c0.8000488-0.7999878,2.1000977-0.7999878,2.9001465,0 + c0.8000488,0.8000488,0.8000488,2.1000366,0,2.9000244l-16.8000488,16.7999878c-0.4001465,0.3999634-1,0.5999756-1.5,0.5999756 + S3403.1896973,303.2871399,3402.7895508,302.8871155z"/> + </g> +</g> +<g class="st8"> + <path class="st9" d="M2760.2143555,182.9998169h30.456543c7.9172363,0,14.3356934-6.4185791,14.3356934-14.3361053 + c0-7.9173431-6.418457-14.3357544-14.3356934-14.3357544h-5.9523926c-7.9174805,0-14.3359375-6.4184113-14.3359375-14.3359375 + v-0.0001831c0-7.9173431,6.418457-14.3357544,14.3359375-14.3357544h133.5310059 + c7.9174805,0,14.3359375,6.4184113,14.3359375,14.3357544v0.0001831c0,7.9175262-6.418457,14.3359375-14.3359375,14.3359375 + h-7.0739746h-61.7858887c-7.9174805,0-14.3359375,6.4184113-14.3359375,14.3357544v0.0001678 + c0,7.9175262,6.418457,14.3359375,14.3359375,14.3359375h61.7858887h64.6325684h7.1123047h24.9370117 + c7.9174805,0,14.3359375,6.4184113,14.3359375,14.3357697c0,7.917511-6.418457,14.3359222-14.3359375,14.3359222h-20.9790039 + c-0.0693359,0.0010529-0.1362305,0.0104523-0.2055664,0.0104523h-7.0739746h-61.7858887 + c-7.9177246,0-14.3359375,6.4184113-14.3359375,14.3359375c0,7.917511,6.4182129,14.3359222,14.3359375,14.3359222h61.7858887 + h64.6323242h7.1125488h42.3581543c7.9174805,0,14.3359375,6.4184113,14.3359375,14.3359375 + c0,7.9173584-6.418457,14.3359375-14.3359375,14.3359375h-131.5332031h-41.6860352h-91.8449707 + c-7.9174805,0-14.3356934-6.4185791-14.3356934-14.3359375c0-7.9175262,6.4182129-14.3359375,14.3356934-14.3359375h30.456543 + c7.9172363,0,14.3359375-6.4184113,14.3359375-14.3359222c0-7.9175262-6.4187012-14.3359375-14.3359375-14.3359375h-5.9523926 + c-0.0693359,0-0.1364746-0.0093994-0.2055664-0.0104523h-0.8769531h-91.8449707 + c-7.9174805,0-14.3356934-6.4184113-14.3356934-14.3359222 + C2745.8786621,189.4182281,2752.296875,182.9998169,2760.2143555,182.9998169z"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 656.4876099 1979.5828857)" class="st9" cx="2717.8117676" cy="197.3408508" rx="14.3364344" ry="14.3363905"/> + + <ellipse transform="matrix(0.2305667 -0.9730566 0.9730566 0.2305667 2145.1455078 2992.8227539)" class="st9" cx="2964.9951172" cy="139.9924927" rx="14.3363209" ry="14.3364172"/> + + <ellipse transform="matrix(0.1605944 -0.9870205 0.9870205 0.1605944 2301.5793457 2846.4716797)" class="st9" cx="2824.310791" cy="70.0723495" rx="14.3363218" ry="14.3364592"/> + + <ellipse transform="matrix(0.8951613 -0.4457424 0.4457424 0.8951613 216.8301849 1430.5336914)" class="st9" cx="3149.512207" cy="254.3188477" rx="14.3364563" ry="14.3364019"/> + <circle class="st9" cx="2905.8103027" cy="319.886261" r="14.3364344"/> +</g> +<g class="st8"> + <path class="st9" d="M4197.2836914,119.5879898h-124.1401367h-36.2236328h-3.1196289h-86.6828613h-16.2521973 + c-6.9624023-0.5554581-12.442627-6.3699799-12.442627-13.4754791c0-7.4723663,6.0576172-13.5300293,13.5300293-13.5300293 + h5.6179199c7.4726562,0,13.5300293-6.0576706,13.5300293-13.5301895l0,0c0-7.4725266-6.057373-13.5301971-13.5300293-13.5301971 + h-126.0258789c-7.4726562,0-13.5302734,6.0576706-13.5302734,13.5301971l0,0 + c0,7.4725189,6.0576172,13.5301895,13.5302734,13.5301895h6.6762695h58.3132324 + c7.4726562,0,13.5302734,6.057663,13.5302734,13.5300293v0.0001602c0,7.4725266-6.0576172,13.5301895-13.5302734,13.5301895 + h-58.3132324h-61h-6.7126465h-39.9772949c-7.4726562,0-13.5302734,6.0576706-13.5302734,13.5300369 + c0,7.4726868,6.0576172,13.5301819,13.5302734,13.5301819h124.1403809h39.3432617h86.6828613 + c0.3662109,0,0.7263184-0.026123,1.0852051-0.0547028h14.0793457c7.4724121,0,13.5300293,6.057663,13.5300293,13.5301819 + c0,7.4725342-6.0576172,13.5301971-13.5300293,13.5301971h-5.6179199h-52.6738281h-61h-6.7126465h-39.9772949 + c-7.4724121,0-13.5302734,6.057663-13.5302734,13.5300293c0,7.4725189,6.0578613,13.5303497,13.5302734,13.5303497h38.7426758 + c0.4528809,0.0458374,0.9123535,0.0695038,1.3774414,0.0695038h6.6760254h58.3137207 + c7.4724121,0,13.5302734,6.057663,13.5302734,13.530014v0.0001678c0,7.4725342-6.0578613,13.5301971-13.5302734,13.5301971 + h-58.3137207h-60.9995117h-6.7128906h-39.9770508c-7.4726562,0-13.5302734,6.057663-13.5302734,13.5300293 + c0,7.4725189,6.0576172,13.5303497,13.5302734,13.5303497h124.1401367h39.3432617h86.6828613 + c7.4724121,0,13.5300293-6.0578308,13.5300293-13.5303497c0-7.4723663-6.0576172-13.5300293-13.5300293-13.5300293h-28.7446289 + c-7.4724121,0-13.5302734-6.0578308-13.5302734-13.530365c0-7.4723511,6.0578613-13.530014,13.5302734-13.530014h5.6176758 + c0.4650879,0,0.9245605-0.0236664,1.3774414-0.0695038h82.6430664h36.2231445 + c7.4726562,0,13.5302734-6.057663,13.5302734-13.5301819l0,0c0-7.4725342-6.0576172-13.5301971-13.5302734-13.5301971h-6.6762695 + h-29.546875h-28.744873c-7.4724121,0-13.5300293-6.0578308-13.5300293-13.5301971 + c0-7.4725189,6.0576172-13.5301819,13.5300293-13.5301819h5.6179199h52.6738281h61h6.7128906h39.9770508"/> + + <ellipse transform="matrix(0.2400311 -0.9707652 0.9707652 0.2400311 2857.5102539 4130.8178711)" class="st9" cx="4067.0566406" cy="240.352829" rx="13.5306482" ry="13.5305595"/> + + <ellipse transform="matrix(0.6751397 -0.7376899 0.7376899 0.6751397 1235.9562988 2964.7043457)" class="st9" cx="3984.0908203" cy="79.052742" rx="13.5305424" ry="13.5305834"/> + + <ellipse transform="matrix(0.2305667 -0.9730565 0.9730565 0.2305667 2966.0673828 3778.0703125)" class="st9" cx="3871.9841309" cy="13.5306435" rx="13.5305557" ry="13.5306473"/> + + <ellipse transform="matrix(0.153126 -0.9882067 0.9882067 0.153126 2996.0073242 4081.1125488)" class="st9" cx="3879.1032715" cy="292.5545959" rx="13.5305576" ry="13.5306931"/> + + <ellipse transform="matrix(0.1547078 -0.9879603 0.9879603 0.1547078 3000.173584 3878.3676758)" class="st9" cx="3766.5651855" cy="185.9130859" rx="13.5305576" ry="13.5306921"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 964.4237671 2595.8608398)" class="st9" cx="3615.6931152" cy="133.7679901" rx="13.5306635" ry="13.5306225"/> +</g> +<g class="st8"> + <path class="st9" d="M0,103.1459427h99.549469h36.2236176h3.1195221h168.8931274h16.2521057 + c6.9625854-0.5554657,12.4425964-6.3699799,12.4425964-13.4754868c0-7.4723587-6.0574951-13.5300293-13.5299988-13.5300293 + h-5.6177368c-7.4726562,0-13.5301819-6.057663-13.5301819-13.5301895l0,0c0-7.4725227,6.0575256-13.5301895,13.5301819-13.5301895 + h158.9099426c7.4725342,0,13.5301819,6.0576668,13.5301819,13.5301895l0,0c0,7.4725266-6.0576477,13.5301895-13.5301819,13.5301895 + h-6.6762085h-58.3134155c-7.4725342,0-13.5302124,6.0576706-13.5302124,13.5300293v0.0001678 + c0,7.4725189,6.0576782,13.5301895,13.5302124,13.5301895h58.3134155h60.9998474h6.7127075h39.9772949 + c7.4725342,0,13.5301514,6.057663,13.5301514,13.5300293c0,7.4726868-6.0576172,13.5301895-13.5301514,13.5301895H453.1159973 + h-39.3432922H294.2057495c-0.3663635,0-0.7263184-0.026123-1.0852966-0.0547028h-14.0792542 + c-7.4725037,0-13.5301819,6.057663-13.5301819,13.5301819s6.0576782,13.5301971,13.5301819,13.5301971h5.6177063h52.6740417 + h93.8839722h6.7127075h39.9772644c7.4725342,0,13.5301819,6.057663,13.5301819,13.5300293 + c0,7.4725189-6.0576477,13.5303497-13.5301819,13.5303497h-38.7426453 + c-0.4529419,0.0458374-0.9124756,0.0694885-1.3774109,0.0694885h-6.6762085h-91.1976929 + c-7.4725037,0-13.5301819,6.0576782-13.5301819,13.5300293v0.0001678c0,7.4725189,6.0576782,13.5301971,13.5301819,13.5301971 + h58.3135986h60.9995422h6.7128601h39.9772644c7.4725342,0,13.5302124,6.057663,13.5302124,13.530014 + c0,7.4725342-6.0576782,13.530365-13.5302124,13.530365H381.7759399h-39.3432922h-70.2406311 + c-7.4725342,0-13.5302124-6.0578308-13.5302124-13.530365c0-7.4723511,6.0576782-13.530014,13.5302124-13.530014h12.3024292 + c7.4725342,0,13.5302124-6.0578308,13.5302124-13.530365c0-7.4723511-6.0576782-13.5300293-13.5302124-13.5300293H278.87677 + c-0.4649353,0-0.924469-0.0236511-1.3774109-0.0694885h-164.853241H76.4226761 + c-7.4725266,0-13.5301895-6.057663-13.5301895-13.5301971l0,0c0-7.4725189,6.057663-13.5301819,13.5301895-13.5301819h6.6763763 + h29.5470657h28.7446747c7.4725189,0,13.5300293-6.0578308,13.5300293-13.5301971 + c0-7.4725189-6.0575104-13.5301819-13.5300293-13.5301819h-5.6177063H83.0990524H22.0991802h-6.7126875H0"/> + + <ellipse transform="matrix(0.7376898 -0.6751398 0.6751398 0.7376898 28.7658882 199.2596588)" class="st9" cx="270.8124084" cy="62.6106911" rx="13.5305834" ry="13.5305424"/> + + <ellipse transform="matrix(0.9730566 -0.2305667 0.2305667 0.9730566 8.0834675 96.2349319)" class="st9" cx="415.8031921" cy="13.5306435" rx="13.5306473" ry="13.5305557"/> + + <ellipse transform="matrix(0.9882067 -0.153126 0.153126 0.9882067 -37.8480759 60.8010101)" class="st9" cx="375.7999268" cy="276.1125488" rx="13.5306931" ry="13.5305576"/> + + <ellipse transform="matrix(0.9879603 -0.1547078 0.1547078 0.9879603 -19.9431171 82.6774826)" class="st9" cx="521.2220459" cy="169.4710388" rx="13.5306921" ry="13.5305576"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 113.8898544 509.6062927)" class="st9" cx="672.0941772" cy="117.3259354" rx="13.5306225" ry="13.5306635"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/banner.e66743c3.svg b/extensions/harvester/1.5.0-dev/plugin/img/banner.e66743c3.svg new file mode 100644 index 00000000..fde45418 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/banner.e66743c3.svg @@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 4197.2836914 633.0073853" style="enable-background:new 0 0 4197.2836914 633.0073853;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#2C3E50;} + .st1{fill:#8DC63F;} + .st2{fill:#6BA939;} + .st3{fill:#5C9531;} + .st4{fill:#594A41;} + .st5{fill:#DBE13A;} + .st6{fill:#BBD644;} + .st7{fill:#ABC53E;} + .st8{fill:#34495E;} + .st9{opacity:0.5;fill:#2C3E50;} +</style> +<rect class="st0" width="4197.2836914" height="633.0073853"/> +<g> + <path id="path598" class="st1" d="M3443.8837891,580.0073853 + c-175.1999512-106.2000122-400.3000488-170.1000061-645.8999023-170.1000061c-284.1999512,0-541,85.5-724.6000977,223.1000061 + h1370.5V580.0073853z"/> + <g> + <path id="path600" class="st2" d="M2780.0837402,473.9074097c0,22.9000244-18.5998535,41.5-41.5,41.5 + c-22.8999023,0-41.5-18.5999756-41.5-41.5c0-22.8999939,18.6000977-41.5,41.5-41.5 + C2761.5837402,432.4074097,2780.0837402,451.0074158,2780.0837402,473.9074097z"/> + <path id="path602" class="st3" d="M2780.0837402,473.9074097c0-22.8999939-18.5998535-41.5-41.5-41.5v82.9000244 + C2761.5837402,515.3074341,2780.0837402,496.8074341,2780.0837402,473.9074097z"/> + <path id="path604" class="st4" d="M2738.6838379,540.0073853c-1.0998535,0-2.0998535-0.9000244-2.0998535-2.0999756v-58 + c0-1.0999756,0.8999023-2.0999756,2.0998535-2.0999756c1.1000977,0,2.1000977,0.9000244,2.1000977,2.0999756v58 + C2740.7839355,539.1074219,2739.7839355,540.0073853,2738.6838379,540.0073853z"/> + <path id="path606" class="st4" d="M2738.6838379,503.1074219c-0.5,0-1.0998535-0.2000122-1.5-0.5999756 + c-0.8000488-0.7999878-0.8000488-2.0999756,0-2.9000244l8.6000977-8.5999756c0.8000488-0.7999878,2.0998535-0.7999878,2.8999023,0 + s0.8000488,2.0999756,0,2.9000244l-8.5998535,8.5999756 + C2739.6838379,502.9074707,2739.1838379,503.1074219,2738.6838379,503.1074219z"/> + <path id="path608" class="st4" d="M2738.6838379,495.6074219c-0.5,0-1.0998535-0.2000122-1.5-0.5999756l-11.5-11.5 + c-0.8000488-0.7999878-0.8000488-2.0999756,0-2.9000244c0.8000488-0.7999878,2.1000977-0.7999878,2.9001465,0l11.5,11.5 + c0.8000488,0.7999878,0.8000488,2.0999756,0,2.9000244 + C2739.6838379,495.4074707,2739.1838379,495.6074219,2738.6838379,495.6074219z"/> + </g> + <path id="path610" class="st5" d="M2386.8837891,506.1073914c0-26-7.3999023-56.1000061-22.3999023-56.1000061 + s-22.4001465,30.1000061-22.4001465,56.1000061c0,9.4999695,7.4001465,17.1999817,22.4001465,17.1999817 + C2379.4838867,523.4074097,2386.8837891,515.7073975,2386.8837891,506.1073914z"/> + <path id="path612" class="st6" d="M2386.8837891,506.1073914c0-26-7.3999023-56.1000061-22.3999023-56.1000061v73.2999878 + c15,0.0999756,22.3999023-7.6000366,22.3999023-17.2000122V506.1073914z"/> + <path id="path614" class="st4" d="M2364.4838867,550.4074097c-1.1000977,0-2.1000977-0.9000244-2.1000977-2.1000366v-64.1999512 + c0-1.1000061,0.9001465-2.1000061,2.1000977-2.1000061c1.0998535,0,2.0998535,0.8999939,2.0998535,2.1000061v64.2000122 + C2366.5837402,549.5074463,2365.6838379,550.4074097,2364.4838867,550.4074097L2364.4838867,550.4074097z"/> + <path id="path616" class="st4" d="M2364.4838867,509.7073975c-0.5,0-1.1000977-0.2000122-1.5-0.6000061l-9.5-9.5 + c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939s2.0998535-0.7999878,2.8999023,0l9.5,9.5 + c0.8000488,0.7999878,0.8000488,2.1000061,0,2.8999939 + C2365.5837402,509.5073853,2365.0837402,509.7073975,2364.4838867,509.7073975z"/> + <path id="path618" class="st4" d="M2364.4838867,501.3074036c-0.5,0-1.1000977-0.2000122-1.5-0.6000061 + c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939l12.6999512-12.7000122 + c0.8000488-0.7999878,2.0998535-0.7999878,2.8999023,0s0.8000488,2.1000061,0,2.8999939l-12.6999512,12.7000122 + C2365.5837402,501.1073914,2365.0837402,501.3074036,2364.4838867,501.3074036z"/> + <path id="path620" class="st6" d="M3489.7836914,322.4074402c-301.3999023,0-562.1999512,126.5-688,310.6000061h653.3000488 + h88.8999023h653.3000488c-125.8999023-184.1000366-386.6999512-310.6000366-688.3000488-310.6000366 + c-3.1999512,0-6.3999023,0.1000061-9.5998535,0.1000061c-3.1999512-0.1000061-6.3999023-0.1000061-9.6000977-0.1000061V322.4074402 + z"/> + <g id="g642" transform="translate(0,150.9074)"> + <path id="path622" class="st7" d="M3340.7836914,335.4000244c0-9-7.2998047-16.2999878-16.2998047-16.2999878 + s-16.3000488,7.2999878-16.3000488,16.2999878s7.3000488,16.2999878,16.3000488,16.2999878 + S3340.7836914,344.4000244,3340.7836914,335.4000244z"/> + <path id="path624" class="st7" d="M3475.1838379,270.2000122c0-9-7.3000488-16.3000031-16.3000488-16.3000031 + s-16.3000488,7.3000031-16.3000488,16.3000031S3449.8837891,286.5,3458.8837891,286.5 + S3475.1838379,279.2000122,3475.1838379,270.2000122z"/> + <path id="path626" class="st7" d="M3298.7839355,384.2999878c-9,0-16.3000488,7.2999878-16.3000488,16.2999878 + s7.2998047,16.2999878,16.3000488,16.2999878h97.0998535c9,0,16.3000488,7.2999878,16.3000488,16.2999878 + s-7.3000488,16.2999878-16.3000488,16.2999878h-21.3999023c-9,0-16.3000488,7.2999878-16.3000488,16.2999878 + s7.3000488,16.2999878,16.3000488,16.2999878h289.5h52c9,0,16.2998047-7.2999878,16.2998047-16.2999878 + s-7.2998047-16.2999878-16.2998047-16.2999878h-56.7001953c-9,0-16.2998047-7.2999878-16.2998047-16.2999878 + s7.2998047-16.2999878,16.2998047-16.2999878h110c9,0,16.3000488-7.2999878,16.3000488-16.2999878 + s-7.3000488-16.2999878-16.3000488-16.2999878h-68.5998535c-9,0-16.3000488-7.2999878-16.3000488-16.2999878 + s7.3000488-16.2999878,16.3000488-16.2999878h104.2998047c9,0,16.3000488-7.2999878,16.3000488-16.2999878 + s-7.3000488-16.2999878-16.3000488-16.2999878h-57.0998535c-9,0-16.3000488-7.2999878-16.3000488-16.2999878 + s7.3000488-16.2999878,16.3000488-16.2999878h21.3999023c9,0,16.3000488-7.2999878,16.3000488-16.2999878 + s-7.3000488-16.3000031-16.3000488-16.3000031h-119.5h-142c-9,0-16.2998047,7.3000031-16.2998047,16.3000031 + s7.2998047,16.2999878,16.2998047,16.2999878h56.7001953c9,0,16.2998047,7.2999878,16.2998047,16.2999878 + s-7.2998047,16.2999878-16.2998047,16.2999878h-190c-9,0-16.3000488,7.2999878-16.3000488,16.2999878 + s7.3000488,16.2999878,16.3000488,16.2999878h68.5998535c9,0,16.3000488,7.2999878,16.3000488,16.2999878 + s-7.3000488,16.2999878-16.3000488,16.2999878h-144.3000488H3298.7839355z"/> + <path id="path628" class="st7" d="M3802.9838867,400.5999756c0,9,7.2998047,16.2999878,16.2998047,16.2999878 + s16.3000488-7.2999878,16.3000488-16.2999878s-7.3000488-16.2999878-16.3000488-16.2999878 + S3802.9838867,391.5999756,3802.9838867,400.5999756z"/> + <path id="path630" class="st7" d="M3748.5837402,465.7999878c0,9,7.3000488,16.2999878,16.3000488,16.2999878 + s16.3000488-7.2999878,16.3000488-16.2999878S3773.8837891,449.5,3764.8837891,449.5 + S3748.5837402,456.7999878,3748.5837402,465.7999878z"/> + </g> + <g> + <path id="path654" class="st1" d="M3159.2836914,303.9074097c25.6000977,0,46.4001465,20.6999817,46.4001465,46.3999939 + c0,25.6000061-20.6999512,46.3999939-46.4001465,46.3999939c-25.5998535,0-46.3999023-20.6999817-46.3999023-46.3999939 + C3112.8837891,324.6074219,3133.6838379,303.8074036,3159.2836914,303.9074097z"/> + <path id="path656" class="st2" d="M3159.2836914,396.8074036v-92.8999939 + c-25.5998535,0-46.3999023,20.6999817-46.3999023,46.3999939 + C3112.8837891,375.9074097,3133.6838379,396.7073975,3159.2836914,396.8074036z"/> + <path id="path658" class="st4" d="M3157.2836914,422.0073853v-65.1000061c0-1.2000122,1-2.1000061,2.1000977-2.1000061 + c1.1999512,0,2.0998535,1,2.0998535,2.1000061v65.1000061c0,1.2000122-1,2.1000061-2.0998535,2.1000061 + C3158.1838379,424.1073914,3157.2836914,423.2073975,3157.2836914,422.0073853z"/> + <path id="path660" class="st4" d="M3157.9836426,382.2073975l-9.6999512-9.7000122 + c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939s2.1000977-0.7999878,2.9001465,0l9.6999512,9.7000122 + c0.8000488,0.7999878,0.8000488,2.1000061,0,2.8999939c-0.4001465,0.3999939-1,0.6000061-1.5,0.6000061 + S3158.2836914,382.6073914,3157.9836426,382.2073975z"/> + <path id="path662" class="st4" d="M3157.9836426,373.7073975c-0.7998047-0.7999878-0.7998047-2.1000061,0-2.8999939 + l12.8000488-12.7999878c0.8000488-0.7999878,2.1000977-0.7999878,2.9001465,0 + c0.7998047,0.7999878,0.7998047,2.1000061,0,2.8999939l-12.8000488,12.7999878c-0.4001465,0.3999939-1,0.6000061-1.5,0.6000061 + S3158.2836914,374.1073914,3157.9836426,373.7073975z"/> + </g> + <g> + <path id="path694" class="st5" d="M3559.3447266,517.8883667c-17.3000488,0-31.3000488-14-31.3000488-31.2999878 + c0-47.2000122,14-125.6000061,31.3000488-125.6000061c17.2998047,0,31.2998047,78.4000244,31.2998047,125.6000061 + C3590.6445312,503.8883667,3576.6445312,517.8883667,3559.3447266,517.8883667z"/> + <path id="path696" class="st6" d="M3559.3447266,517.8883667V360.9883728 + c17.2998047,0,31.2998047,78.4000244,31.2998047,125.6000061 + C3590.6445312,503.8883667,3576.6445312,517.8883667,3559.3447266,517.8883667z"/> + <path id="path698" class="st4" d="M3557.2446289,550.9884033v-85.1000366c0-1.2000122,1-2.1000061,2.1000977-2.1000061 + c1.1999512,0,2.0998535,1,2.0998535,2.1000061v85.1000366c0,1.2000122-1,2.0999756-2.0998535,2.0999756 + C3558.1447754,553.0883789,3557.2446289,552.0883789,3557.2446289,550.9884033z"/> + <path id="path700" class="st4" d="M3557.9445801,498.2883911l-12.5998535-12.6000061 + c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939s2.0998535-0.7999878,2.8999023,0l12.6000977,12.7000122 + c0.7998047,0.7999878,0.7998047,2.1000061,0,2.8999939c-0.4001465,0.3999939-1,0.6000061-1.5,0.6000061 + S3558.2446289,498.7883911,3557.9445801,498.2883911z"/> + <path id="path702" class="st4" d="M3557.8447266,487.3883972c-0.8000488-0.7999878-0.8000488-2.1000061,0-2.8999939 + l16.7998047-16.7999878c0.8000488-0.7999878,2.1000977-0.7999878,2.9001465,0s0.8000488,2.1000061,0,2.8999939 + l-16.6999512,16.7999878c-0.4001465,0.3999939-1,0.6000061-1.5,0.6000061S3558.2446289,487.7883911,3557.8447266,487.3883972z"/> + </g> + <g> + <path id="path714" class="st1" d="M3404.1896973,333.3871155c-19.8999023,0-29.6999512-10.3000488-29.6999512-22.9000244 + c0-34.5,9.7998047-74.4000092,29.6999512-74.4000092c19.8999023,0,29.6999512,39.9000092,29.6999512,74.4000092 + C3433.8896484,323.1871033,3424.0895996,333.3871155,3404.1896973,333.3871155z"/> + <path id="path716" class="st2" d="M3404.1896973,333.2870789v-97.1999969 + c19.8999023,0,29.6999512,39.9000092,29.6999512,74.4000092 + C3433.8896484,323.1871033,3424.0895996,333.3870544,3404.1896973,333.2870789z"/> + <path id="path718" class="st4" d="M3402.0895996,366.4870911v-85.0999756c0-1.1999512,1-2.0999756,2.1000977-2.0999756 + c1.1999512,0,2.0998535,1,2.0998535,2.0999756v85.0999756c0,1.1999512-1,2.0999756-2.0998535,2.0999756 + C3403.0895996,368.5870667,3402.1896973,367.6871033,3402.0895996,366.4870911z"/> + <path id="path720" class="st4" d="M3402.7895508,313.7870789l-12.5998535-12.5999756 + c-0.8000488-0.8000488-0.8000488-2.1000366,0-2.9000244s2.0998535-0.7999878,2.8999023,0l12.6000977,12.7000122 + c0.8000488,0.8000488,0.8000488,2.1000366,0,2.9000244c-0.4001465,0.3999634-1,0.5999756-1.5,0.5999756 + S3403.1896973,314.2870789,3402.7895508,313.7870789z"/> + <path id="path722" class="st4" d="M3402.7895508,302.8871155c-0.8000488-0.8000488-0.8000488-2.1000366,0-2.9000244 + l16.8000488-16.7999878c0.8000488-0.7999878,2.1000977-0.7999878,2.9001465,0 + c0.8000488,0.8000488,0.8000488,2.1000366,0,2.9000244l-16.8000488,16.7999878c-0.4001465,0.3999634-1,0.5999756-1.5,0.5999756 + S3403.1896973,303.2871399,3402.7895508,302.8871155z"/> + </g> +</g> +<g> + <path class="st8" d="M2760.2143555,182.9998169h30.456543c7.9172363,0,14.3356934-6.4185791,14.3356934-14.3361053 + c0-7.9173431-6.418457-14.3357544-14.3356934-14.3357544h-5.9523926c-7.9174805,0-14.3359375-6.4184113-14.3359375-14.3359375 + v-0.0001831c0-7.9173431,6.418457-14.3357544,14.3359375-14.3357544h133.5310059 + c7.9174805,0,14.3359375,6.4184113,14.3359375,14.3357544v0.0001831c0,7.9175262-6.418457,14.3359375-14.3359375,14.3359375 + h-7.0739746h-61.7858887c-7.9174805,0-14.3359375,6.4184113-14.3359375,14.3357544v0.0001678 + c0,7.9175262,6.418457,14.3359375,14.3359375,14.3359375h61.7858887h64.6325684h7.1123047h24.9370117 + c7.9174805,0,14.3359375,6.4184113,14.3359375,14.3357697c0,7.917511-6.418457,14.3359222-14.3359375,14.3359222h-20.9790039 + c-0.0693359,0.0010529-0.1362305,0.0104523-0.2055664,0.0104523h-7.0739746h-61.7858887 + c-7.9177246,0-14.3359375,6.4184113-14.3359375,14.3359375c0,7.917511,6.4182129,14.3359222,14.3359375,14.3359222h61.7858887 + h64.6323242h7.1125488h42.3581543c7.9174805,0,14.3359375,6.4184113,14.3359375,14.3359375 + c0,7.9173584-6.418457,14.3359375-14.3359375,14.3359375h-131.5332031h-41.6860352h-91.8449707 + c-7.9174805,0-14.3356934-6.4185791-14.3356934-14.3359375c0-7.9175262,6.4182129-14.3359375,14.3356934-14.3359375h30.456543 + c7.9172363,0,14.3359375-6.4184113,14.3359375-14.3359222c0-7.9175262-6.4187012-14.3359375-14.3359375-14.3359375h-5.9523926 + c-0.0693359,0-0.1364746-0.0093994-0.2055664-0.0104523h-0.8769531h-91.8449707 + c-7.9174805,0-14.3356934-6.4184113-14.3356934-14.3359222 + C2745.8786621,189.4182281,2752.296875,182.9998169,2760.2143555,182.9998169z"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 656.4876099 1979.5828857)" class="st8" cx="2717.8117676" cy="197.3408508" rx="14.3364344" ry="14.3363905"/> + + <ellipse transform="matrix(0.2305667 -0.9730566 0.9730566 0.2305667 2145.1455078 2992.8227539)" class="st8" cx="2964.9951172" cy="139.9924927" rx="14.3363209" ry="14.3364172"/> + + <ellipse transform="matrix(0.1605944 -0.9870205 0.9870205 0.1605944 2301.5793457 2846.4716797)" class="st8" cx="2824.310791" cy="70.0723495" rx="14.3363218" ry="14.3364592"/> + + <ellipse transform="matrix(0.8951613 -0.4457424 0.4457424 0.8951613 216.8301849 1430.5336914)" class="st8" cx="3149.512207" cy="254.3188477" rx="14.3364563" ry="14.3364019"/> + <circle class="st8" cx="2905.8103027" cy="319.886261" r="14.3364344"/> +</g> +<g> + <path class="st8" d="M4197.2836914,119.5879898h-124.1401367h-36.2236328h-3.1196289h-86.6828613h-16.2521973 + c-6.9624023-0.5554581-12.442627-6.3699799-12.442627-13.4754791c0-7.4723663,6.0576172-13.5300293,13.5300293-13.5300293 + h5.6179199c7.4726562,0,13.5300293-6.0576706,13.5300293-13.5301895l0,0c0-7.4725266-6.057373-13.5301971-13.5300293-13.5301971 + h-126.0258789c-7.4726562,0-13.5302734,6.0576706-13.5302734,13.5301971l0,0 + c0,7.4725189,6.0576172,13.5301895,13.5302734,13.5301895h6.6762695h58.3132324 + c7.4726562,0,13.5302734,6.057663,13.5302734,13.5300293v0.0001602c0,7.4725266-6.0576172,13.5301895-13.5302734,13.5301895 + h-58.3132324h-61h-6.7126465h-39.9772949c-7.4726562,0-13.5302734,6.0576706-13.5302734,13.5300369 + c0,7.4726868,6.0576172,13.5301819,13.5302734,13.5301819h124.1403809h39.3432617h86.6828613 + c0.3662109,0,0.7263184-0.026123,1.0852051-0.0547028h14.0793457c7.4724121,0,13.5300293,6.057663,13.5300293,13.5301819 + c0,7.4725342-6.0576172,13.5301971-13.5300293,13.5301971h-5.6179199h-52.6738281h-61h-6.7126465h-39.9772949 + c-7.4724121,0-13.5302734,6.057663-13.5302734,13.5300293c0,7.4725189,6.0578613,13.5303497,13.5302734,13.5303497h38.7426758 + c0.4528809,0.0458374,0.9123535,0.0695038,1.3774414,0.0695038h6.6760254h58.3137207 + c7.4724121,0,13.5302734,6.057663,13.5302734,13.530014v0.0001678c0,7.4725342-6.0578613,13.5301971-13.5302734,13.5301971 + h-58.3137207h-60.9995117h-6.7128906h-39.9770508c-7.4726562,0-13.5302734,6.057663-13.5302734,13.5300293 + c0,7.4725189,6.0576172,13.5303497,13.5302734,13.5303497h124.1401367h39.3432617h86.6828613 + c7.4724121,0,13.5300293-6.0578308,13.5300293-13.5303497c0-7.4723663-6.0576172-13.5300293-13.5300293-13.5300293h-28.7446289 + c-7.4724121,0-13.5302734-6.0578308-13.5302734-13.530365c0-7.4723511,6.0578613-13.530014,13.5302734-13.530014h5.6176758 + c0.4650879,0,0.9245605-0.0236664,1.3774414-0.0695038h82.6430664h36.2231445 + c7.4726562,0,13.5302734-6.057663,13.5302734-13.5301819l0,0c0-7.4725342-6.0576172-13.5301971-13.5302734-13.5301971h-6.6762695 + h-29.546875h-28.744873c-7.4724121,0-13.5300293-6.0578308-13.5300293-13.5301971 + c0-7.4725189,6.0576172-13.5301819,13.5300293-13.5301819h5.6179199h52.6738281h61h6.7128906h39.9770508"/> + + <ellipse transform="matrix(0.2400311 -0.9707652 0.9707652 0.2400311 2857.5102539 4130.8178711)" class="st8" cx="4067.0566406" cy="240.352829" rx="13.5306482" ry="13.5305595"/> + + <ellipse transform="matrix(0.6751397 -0.7376899 0.7376899 0.6751397 1235.9562988 2964.7043457)" class="st8" cx="3984.0908203" cy="79.052742" rx="13.5305424" ry="13.5305834"/> + + <ellipse transform="matrix(0.2305667 -0.9730565 0.9730565 0.2305667 2966.0673828 3778.0703125)" class="st8" cx="3871.9841309" cy="13.5306435" rx="13.5305557" ry="13.5306473"/> + + <ellipse transform="matrix(0.153126 -0.9882067 0.9882067 0.153126 2996.0073242 4081.1125488)" class="st8" cx="3879.1032715" cy="292.5545959" rx="13.5305576" ry="13.5306931"/> + + <ellipse transform="matrix(0.1547078 -0.9879603 0.9879603 0.1547078 3000.173584 3878.3676758)" class="st8" cx="3766.5651855" cy="185.9130859" rx="13.5305576" ry="13.5306921"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 964.4237671 2595.8608398)" class="st8" cx="3615.6931152" cy="133.7679901" rx="13.5306635" ry="13.5306225"/> +</g> +<g> + <path class="st8" d="M0,103.1459427h99.549469h36.2236176h3.1195221h168.8931274h16.2521057 + c6.9625854-0.5554657,12.4425964-6.3699799,12.4425964-13.4754868c0-7.4723587-6.0574951-13.5300293-13.5299988-13.5300293 + h-5.6177368c-7.4726562,0-13.5301819-6.057663-13.5301819-13.5301895l0,0c0-7.4725227,6.0575256-13.5301895,13.5301819-13.5301895 + h158.9099426c7.4725342,0,13.5301819,6.0576668,13.5301819,13.5301895l0,0c0,7.4725266-6.0576477,13.5301895-13.5301819,13.5301895 + h-6.6762085h-58.3134155c-7.4725342,0-13.5302124,6.0576706-13.5302124,13.5300293v0.0001678 + c0,7.4725189,6.0576782,13.5301895,13.5302124,13.5301895h58.3134155h60.9998474h6.7127075h39.9772949 + c7.4725342,0,13.5301514,6.057663,13.5301514,13.5300293c0,7.4726868-6.0576172,13.5301895-13.5301514,13.5301895H453.1159973 + h-39.3432922H294.2057495c-0.3663635,0-0.7263184-0.026123-1.0852966-0.0547028h-14.0792542 + c-7.4725037,0-13.5301819,6.057663-13.5301819,13.5301819s6.0576782,13.5301971,13.5301819,13.5301971h5.6177063h52.6740417 + h93.8839722h6.7127075h39.9772644c7.4725342,0,13.5301819,6.057663,13.5301819,13.5300293 + c0,7.4725189-6.0576477,13.5303497-13.5301819,13.5303497h-38.7426453 + c-0.4529419,0.0458374-0.9124756,0.0694885-1.3774109,0.0694885h-6.6762085h-91.1976929 + c-7.4725037,0-13.5301819,6.0576782-13.5301819,13.5300293v0.0001678c0,7.4725189,6.0576782,13.5301971,13.5301819,13.5301971 + h58.3135986h60.9995422h6.7128601h39.9772644c7.4725342,0,13.5302124,6.057663,13.5302124,13.530014 + c0,7.4725342-6.0576782,13.530365-13.5302124,13.530365H381.7759399h-39.3432922h-70.2406311 + c-7.4725342,0-13.5302124-6.0578308-13.5302124-13.530365c0-7.4723511,6.0576782-13.530014,13.5302124-13.530014h12.3024292 + c7.4725342,0,13.5302124-6.0578308,13.5302124-13.530365c0-7.4723511-6.0576782-13.5300293-13.5302124-13.5300293H278.87677 + c-0.4649353,0-0.924469-0.0236511-1.3774109-0.0694885h-164.853241H76.4226761 + c-7.4725266,0-13.5301895-6.057663-13.5301895-13.5301971l0,0c0-7.4725189,6.057663-13.5301819,13.5301895-13.5301819h6.6763763 + h29.5470657h28.7446747c7.4725189,0,13.5300293-6.0578308,13.5300293-13.5301971 + c0-7.4725189-6.0575104-13.5301819-13.5300293-13.5301819h-5.6177063H83.0990524H22.0991802h-6.7126875H0"/> + + <ellipse transform="matrix(0.7376898 -0.6751398 0.6751398 0.7376898 28.7658882 199.2596588)" class="st8" cx="270.8124084" cy="62.6106911" rx="13.5305834" ry="13.5305424"/> + + <ellipse transform="matrix(0.9730566 -0.2305667 0.2305667 0.9730566 8.0834675 96.2349319)" class="st8" cx="415.8031921" cy="13.5306435" rx="13.5306473" ry="13.5305557"/> + + <ellipse transform="matrix(0.9882067 -0.153126 0.153126 0.9882067 -37.8480759 60.8010101)" class="st8" cx="375.7999268" cy="276.1125488" rx="13.5306931" ry="13.5305576"/> + + <ellipse transform="matrix(0.9879603 -0.1547078 0.1547078 0.9879603 -19.9431171 82.6774826)" class="st8" cx="521.2220459" cy="169.4710388" rx="13.5306921" ry="13.5305576"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 113.8898544 509.6062927)" class="st8" cx="672.0941772" cy="117.3259354" rx="13.5306225" ry="13.5306635"/> +</g> +<rect class="st9" width="4197.2836914" height="633.0073853"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/cloudca-black.2c8fc541.svg b/extensions/harvester/1.5.0-dev/plugin/img/cloudca-black.2c8fc541.svg new file mode 100644 index 00000000..56b46a51 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/cloudca-black.2c8fc541.svg @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<g> + <path d="M39.3705597,1.7854722c1.1344261-0.6899865,2.3842545-1.3406845,3.7519493-1.2817521 + c1.7875786,0.1694257,3.6316338,1.1982654,4.2528648,2.9661982c1.0754852,2.2025509,0.0122719,5.0803537-2.1362572,6.1902246 + c-8.6309509,4.9551239-17.2619019,9.907793-25.9075947,14.8383636c0.0024586,0.1080418,0.0073662,0.3265762,0.0098248,0.4346142 + c5.804718,3.3909969,11.5431347,6.8973999,17.3306541,10.3203163c0.9502716,0.5622978,1.9962959,1.0926781,2.6126175,2.0527649 + c0.6777115,1.0165634,1.1491547,2.3130455,0.7882004,3.5334129c-0.3707695,1.6721649-1.6721687,3.1675415-3.366436,3.5604172 + c-1.06567,0.1276894-2.2393799,0.2087173-3.2068329-0.348671c-6.3547421-3.7200279-12.6284466-7.5775642-18.9930115-11.2853088 + c-0.0270071,9.649971-0.0073662,19.2999382-0.0098238,28.949913c0.0270138,1.2645607-0.6777029,2.3989868-1.5002851,3.3025894 + c-1.269474,1.2793045-3.2657661,1.6230698-4.9551268,1.0951462c-1.5051961-0.5107422-2.6297984-1.8342361-3.115983-3.3197937 + c-0.3192072-0.9920082-0.0564747-2.0355797-0.1006713-3.0496788c-0.1227727-4.0048599-0.0024576-8.0097275-0.0245557-12.0121307 + c0.0785766-2.3768845-0.1178613-4.7537727,0.01719-7.1306648c-0.1424174-4.0883484,0.0908508-8.1816025-0.0515666-12.2724056 + c-0.0073662-2.0576763,0.0049119-4.1178093,0.01719-6.1754894c-0.0221019-0.3413086,0.1497836-0.6605186,0.4739027-0.790659 + C16.605957,14.8018808,28.0140438,8.3366461,39.3705597,1.7854722z"/> + <path d="M53.9584694,4.4692917c0.4198837-2.2492034,2.5782356-3.9729376,4.8519897-3.9680276 + c1.7016411,0.0662967,3.1233482,1.1000483,4.5401573,1.9250822c10.9562759,6.4112144,21.9101028,12.8297977,32.8639145,19.2532864 + c0.004921,12.9378376-0.0098114,25.87813,0.0073624,38.8159637c0.213623,2.5684128-1.944725,5.0631638-4.5131454,5.2399597 + c-2.6469803,0.2479935-5.2718735-2.0724144-5.2006683-4.7660561c0.0024567-7.1945038,0-14.3890152,0.0024567-21.5835228 + c-0.0220871-2.1362534,0.0613861-4.2774162-0.0982056-6.4087563c-2.958847,1.6009598-5.7580643,3.4990349-8.6530685,5.2178574 + c-3.1012421,1.8686066-6.1656647,3.7986031-9.2595367,5.6794891c-1.4929276,0.8152122-3.4327469,0.7415466-4.817627-0.2676468 + c-1.3824196-0.8987007-2.1239738-2.6150703-1.9692802-4.2381325c0.1301384-1.3701477,0.933075-2.6077003,2.0650444-3.373806 + c4.4075623-2.7280197,8.8323059-5.4363956,13.2496796-8.1545925c1.6697083-1.07304,3.4302902-2.0134773,5.0386124-3.1822815 + c-8.520462-4.9502144-17.0139008-9.9519911-25.5171738-14.9316702C54.7122917,8.7442541,53.4796524,6.5515251,53.9584694,4.4692917 + z"/> + <path d="M48.8830223,41.5418777c2.2295647-0.5868607,4.7022133-0.1866188,6.5904617,1.1540642 + c3.2240257,2.0969658,4.3191605,6.7132339,2.536499,10.0870438c-1.1123238,2.1215172-3.1896515,3.7519493-5.5616302,4.1791992 + c-1.7040825,0.1767921-3.5211334,0.1620598-5.0557976-0.7022591c-2.8999023-1.3382339-4.6457329-4.6432838-4.2749634-7.7936478 + C43.2673798,45.225071,45.7891388,42.3595428,48.8830223,41.5418777z"/> + <path d="M47.5988121,64.029007c1.1663475-1.357872,3.1798286-1.8170433,4.8544579-1.242466 + c1.7703857,0.6433296,3.1012497,2.4259987,3.0914268,4.3289833c0.0147324,6.4505005-0.017189,12.9010086,0.0147324,19.3515015 + c8.7218056-5.2546844,17.3871346-10.600235,26.0991096-15.8696594c0.810318-0.4812622,1.76548-0.6285934,2.6961136-0.5917664 + c2.0944977,0.004921,3.9680176,1.6623535,4.4713898,3.6512756c0.3437653,1.5395813-0.0073624,3.2805023-1.151619,4.4100189 + c-0.8274841,0.9330673-1.9717255,1.4659119-3.0177536,2.1018753C73.9754028,86.6978455,63.2720375,93.1900864,52.585865,99.7142563 + c-0.520565,0.2921982-1.0067406,0.7022552-1.615696,0.7857437c-0.7317314-0.1080399-1.3087616-0.6212311-1.9373589-0.967453 + c-10.7451096-6.4701385-21.5172253-12.8887253-32.2574234-19.3637772c-0.9576292-0.567215-1.9717369-1.0804062-2.7574806-1.8808899 + c-0.9379883-1.0951309-1.500288-2.5782318-1.2473755-4.0269547c0.2480001-1.2252808,0.8594122-2.4358215,1.9054375-3.1651001 + c1.2989426-1.0042801,3.1208916-1.2129974,4.6432819-0.6384201c0.8004837,0.3216705,1.5346642,0.7857513,2.2565708,1.2547455 + c6.7181435,3.9876709,13.3994656,8.0367355,20.1053333,12.0489578c1.5616722,0.8962479,3.0595055,1.917717,4.6751976,2.7181931 + c0.0098228-6.4505005,0.0049171-12.90345,0.0024567-19.3539505C46.319519,65.9737396,46.8891869,64.8982391,47.5988121,64.029007z" + /> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/cloudca.fb088dd5.svg b/extensions/harvester/1.5.0-dev/plugin/img/cloudca.fb088dd5.svg new file mode 100644 index 00000000..dde4c3de --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/cloudca.fb088dd5.svg @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#515254;} + .st1{fill:#DF2D25;} +</style> +<g> + <path class="st0" d="M39.3705597,1.7854722c1.1344261-0.6899865,2.3842545-1.3406845,3.7519493-1.2817521 + c1.7875786,0.1694257,3.6316338,1.1982654,4.2528648,2.9661982c1.0754852,2.2025509,0.0122719,5.0803537-2.1362572,6.1902246 + c-8.6309509,4.9551239-17.2619019,9.907793-25.9075947,14.8383636c0.0024586,0.1080418,0.0073662,0.3265762,0.0098248,0.4346142 + c5.804718,3.3909969,11.5431347,6.8973999,17.3306541,10.3203163c0.9502716,0.5622978,1.9962959,1.0926781,2.6126175,2.0527649 + c0.6777115,1.0165634,1.1491547,2.3130455,0.7882004,3.5334129c-0.3707695,1.6721649-1.6721687,3.1675415-3.366436,3.5604172 + c-1.06567,0.1276894-2.2393799,0.2087173-3.2068329-0.348671c-6.3547421-3.7200279-12.6284466-7.5775642-18.9930115-11.2853088 + c-0.0270071,9.649971-0.0073662,19.2999382-0.0098238,28.949913c0.0270138,1.2645607-0.6777029,2.3989868-1.5002851,3.3025894 + c-1.269474,1.2793045-3.2657661,1.6230698-4.9551268,1.0951462c-1.5051961-0.5107422-2.6297984-1.8342361-3.115983-3.3197937 + c-0.3192072-0.9920082-0.0564747-2.0355797-0.1006713-3.0496788c-0.1227727-4.0048599-0.0024576-8.0097275-0.0245557-12.0121307 + c0.0785766-2.3768845-0.1178613-4.7537727,0.01719-7.1306648c-0.1424174-4.0883484,0.0908508-8.1816025-0.0515666-12.2724056 + c-0.0073662-2.0576763,0.0049119-4.1178093,0.01719-6.1754894c-0.0221019-0.3413086,0.1497836-0.6605186,0.4739027-0.790659 + C16.605957,14.8018808,28.0140438,8.3366461,39.3705597,1.7854722z"/> + <path class="st0" d="M53.9584694,4.4692917c0.4198837-2.2492034,2.5782356-3.9729376,4.8519897-3.9680276 + c1.7016411,0.0662967,3.1233482,1.1000483,4.5401573,1.9250822c10.9562759,6.4112144,21.9101028,12.8297977,32.8639145,19.2532864 + c0.004921,12.9378376-0.0098114,25.87813,0.0073624,38.8159637c0.213623,2.5684128-1.944725,5.0631638-4.5131454,5.2399597 + c-2.6469803,0.2479935-5.2718735-2.0724144-5.2006683-4.7660561c0.0024567-7.1945038,0-14.3890152,0.0024567-21.5835228 + c-0.0220871-2.1362534,0.0613861-4.2774162-0.0982056-6.4087563c-2.958847,1.6009598-5.7580643,3.4990349-8.6530685,5.2178574 + c-3.1012421,1.8686066-6.1656647,3.7986031-9.2595367,5.6794891c-1.4929276,0.8152122-3.4327469,0.7415466-4.817627-0.2676468 + c-1.3824196-0.8987007-2.1239738-2.6150703-1.9692802-4.2381325c0.1301384-1.3701477,0.933075-2.6077003,2.0650444-3.373806 + c4.4075623-2.7280197,8.8323059-5.4363956,13.2496796-8.1545925c1.6697083-1.07304,3.4302902-2.0134773,5.0386124-3.1822815 + c-8.520462-4.9502144-17.0139008-9.9519911-25.5171738-14.9316702C54.7122917,8.7442541,53.4796524,6.5515251,53.9584694,4.4692917 + z"/> + <path class="st1" d="M48.8830223,41.5418777c2.2295647-0.5868607,4.7022133-0.1866188,6.5904617,1.1540642 + c3.2240257,2.0969658,4.3191605,6.7132339,2.536499,10.0870438c-1.1123238,2.1215172-3.1896515,3.7519493-5.5616302,4.1791992 + c-1.7040825,0.1767921-3.5211334,0.1620598-5.0557976-0.7022591c-2.8999023-1.3382339-4.6457329-4.6432838-4.2749634-7.7936478 + C43.2673798,45.225071,45.7891388,42.3595428,48.8830223,41.5418777z"/> + <path class="st0" d="M47.5988121,64.029007c1.1663475-1.357872,3.1798286-1.8170433,4.8544579-1.242466 + c1.7703857,0.6433296,3.1012497,2.4259987,3.0914268,4.3289833c0.0147324,6.4505005-0.017189,12.9010086,0.0147324,19.3515015 + c8.7218056-5.2546844,17.3871346-10.600235,26.0991096-15.8696594c0.810318-0.4812622,1.76548-0.6285934,2.6961136-0.5917664 + c2.0944977,0.004921,3.9680176,1.6623535,4.4713898,3.6512756c0.3437653,1.5395813-0.0073624,3.2805023-1.151619,4.4100189 + c-0.8274841,0.9330673-1.9717255,1.4659119-3.0177536,2.1018753C73.9754028,86.6978455,63.2720375,93.1900864,52.585865,99.7142563 + c-0.520565,0.2921982-1.0067406,0.7022552-1.615696,0.7857437c-0.7317314-0.1080399-1.3087616-0.6212311-1.9373589-0.967453 + c-10.7451096-6.4701385-21.5172253-12.8887253-32.2574234-19.3637772c-0.9576292-0.567215-1.9717369-1.0804062-2.7574806-1.8808899 + c-0.9379883-1.0951309-1.500288-2.5782318-1.2473755-4.0269547c0.2480001-1.2252808,0.8594122-2.4358215,1.9054375-3.1651001 + c1.2989426-1.0042801,3.1208916-1.2129974,4.6432819-0.6384201c0.8004837,0.3216705,1.5346642,0.7857513,2.2565708,1.2547455 + c6.7181435,3.9876709,13.3994656,8.0367355,20.1053333,12.0489578c1.5616722,0.8962479,3.0595055,1.917717,4.6751976,2.7181931 + c0.0098228-6.4505005,0.0049171-12.90345,0.0024567-19.3539505C46.319519,65.9737396,46.8891869,64.8982391,47.5988121,64.029007z" + /> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/cloudscale-black.87d94917.svg b/extensions/harvester/1.5.0-dev/plugin/img/cloudscale-black.87d94917.svg new file mode 100644 index 00000000..d6fef4ac --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/cloudscale-black.87d94917.svg @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<g id="_Group_"> + <g id="tacho"> + <path id="path38" d="M71.6073761,27.1809006c-5.6593628-5.0644836-13.0913887-8.174633-21.2859802-8.174633 + c-17.6987305,0-32.0497475,14.3490219-32.0497475,32.0497475c0,1.6329308,0.1237679,3.2419052,0.3593254,4.8069611 + c-0.0139732-0.3912697-0.0239582-0.7805367-0.0239582-1.1737938c0-12.6821594,10.2806759-22.9648285,22.9608402-22.9648285 + c6.3261032,0,12.0154037,2.5971222,16.1556244,6.7493134L71.6073761,27.1809006"/> + <path id="path40" d="M58.4600945,49.083725l16.6546822-20.4795055c0.6527786-0.6547661,0.6527786-1.7087841,0-2.361557 + c-0.652771-0.6507759-1.708786-0.6507759-2.3575668,0L52.2737236,42.9053383 + c-2.0421638-0.2215843-4.1641731,0.4411697-5.7292252,2.0082245c-2.7368584,2.7348557-2.7368584,7.1665268,0,9.8993874 + c2.7388458,2.7348557,7.1685219,2.7348557,9.8973846,0C58.0089378,53.2439003,58.673687,51.1238861,58.4600945,49.083725z + M48.9958839,52.361557c-1.3794022-1.3794022-1.3794022-3.6171989,0-4.9926109c1.3754196-1.389389,3.619194-1.389389,4.9946136,0 + c1.3794022,1.375412,1.3794022,3.6132088,0,4.9926109C52.615078,53.7349739,50.3713036,53.7349739,48.9958839,52.361557"/> + <path id="path42" d="M50.0019951,0C22.4318256,0,0,22.4278355,0,49.9960022C0,77.5721664,22.4318256,100,50.0019951,100 + C77.5681686,100,100,77.5721664,100,49.9960022C100,22.4278355,77.5681686,0,50.0019951,0z M50.0019951,87.1162186 + c-20.4675255,0-37.1162186-16.6526947-37.1162186-37.1202164c0-20.4635277,16.648695-37.1142235,37.1162186-37.1142235 + c20.4635277,0,37.1142235,16.6506958,37.1142235,37.1142235C87.1162186,70.4635239,70.4655228,87.1162186,50.0019951,87.1162186" + /> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/cloudscale.dd348191.svg b/extensions/harvester/1.5.0-dev/plugin/img/cloudscale.dd348191.svg new file mode 100644 index 00000000..70753e85 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/cloudscale.dd348191.svg @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#46AE33;} + .st1{fill:#04517D;} +</style> +<g id="_Group_"> + <g id="tacho"> + <path id="path38" class="st0" d="M71.6073761,27.1809006c-5.6593628-5.0644836-13.0913887-8.174633-21.2859802-8.174633 + c-17.6987305,0-32.0497475,14.3490219-32.0497475,32.0497475c0,1.6329308,0.1237679,3.2419052,0.3593254,4.8069611 + c-0.0139732-0.3912697-0.0239582-0.7805367-0.0239582-1.1737938c0-12.6821594,10.2806759-22.9648285,22.9608402-22.9648285 + c6.3261032,0,12.0154037,2.5971222,16.1556244,6.7493134L71.6073761,27.1809006"/> + <path id="path40" class="st1" d="M58.4600945,49.083725l16.6546822-20.4795055 + c0.6527786-0.6547661,0.6527786-1.7087841,0-2.361557c-0.652771-0.6507759-1.708786-0.6507759-2.3575668,0L52.2737236,42.9053383 + c-2.0421638-0.2215843-4.1641731,0.4411697-5.7292252,2.0082245c-2.7368584,2.7348557-2.7368584,7.1665268,0,9.8993874 + c2.7388458,2.7348557,7.1685219,2.7348557,9.8973846,0C58.0089378,53.2439003,58.673687,51.1238861,58.4600945,49.083725z + M48.9958839,52.361557c-1.3794022-1.3794022-1.3794022-3.6171989,0-4.9926109c1.3754196-1.389389,3.619194-1.389389,4.9946136,0 + c1.3794022,1.375412,1.3794022,3.6132088,0,4.9926109C52.615078,53.7349739,50.3713036,53.7349739,48.9958839,52.361557"/> + <path id="path42" class="st1" d="M50.0019951,0C22.4318256,0,0,22.4278355,0,49.9960022 + C0,77.5721664,22.4318256,100,50.0019951,100C77.5681686,100,100,77.5721664,100,49.9960022 + C100,22.4278355,77.5681686,0,50.0019951,0z M50.0019951,87.1162186c-20.4675255,0-37.1162186-16.6526947-37.1162186-37.1202164 + c0-20.4635277,16.648695-37.1142235,37.1162186-37.1142235c20.4635277,0,37.1142235,16.6506958,37.1142235,37.1142235 + C87.1162186,70.4635239,70.4655228,87.1162186,50.0019951,87.1162186"/> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/custom.2ff19310.svg b/extensions/harvester/1.5.0-dev/plugin/img/custom.2ff19310.svg new file mode 100644 index 00000000..ad65e6e5 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/custom.2ff19310.svg @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#3D98D3;} +</style> +<g> + <path class="st0" d="M98.4683533,46.0753021C99.6990585,45.5087852,100.5,45.118084,100.5,45.118084 + s0-0.0781364-0.0195389-0.2148857c-0.0195312-0.1367455-0.0390701-0.3516312-0.0781403-0.6251221 + c-0.0195312-0.2734909-0.0781326-0.605587-0.1172104-0.9767532c-0.0390701-0.3907013-0.0781403-0.8009377-0.1758118-1.2697792 + c-0.2930298-1.8558311-0.840004-4.2977142-1.5628052-6.7005272c-0.7618637-2.3832779-1.6800156-4.7079525-2.480957-6.4075031 + c-0.1953506-0.4297714-0.3907013-0.8204727-0.5665131-1.1525669c-0.1758194-0.3320961-0.3320999-0.644659-0.4493027-0.8790779 + c-0.1367493-0.2539577-0.2344284-0.4297714-0.2930298-0.5665169c-0.0586014-0.1367435-0.0976715-0.1953506-0.0976715-0.1953506 + s-0.8986206,0.1172123-2.2074661,0.3516331c-1.3088455,0.2148857-3.0279312,0.566515-4.7470169,0.9767532 + c-1.5823364,0.3907013-3.1256104,0.8204708-4.3367844,1.1916389c-2.422348-3.633522-5.430748-6.8372726-8.8884583-9.4940414 + c0.2148895-0.5665169,0.4688416-1.1721039,0.7032623-1.8362961c0.2734909-0.7618675,0.5469818-1.5823402,0.8204803-2.422348 + c0.5469742-1.6800156,1.0353546-3.3991022,1.3479156-4.6884165s0.5079117-2.1683912,0.5079117-2.1683912 + s-0.253952-0.1758165-0.7228012-0.4688425c-0.4493027-0.3125606-1.1330261-0.6837273-1.9535065-1.1525688 + c-0.2148819-0.1172104-0.4297714-0.2539554-0.6446533-0.3711658c-0.2344208-0.1172109-0.4688416-0.2344213-0.7032623-0.3516312 + c-0.4688416-0.2344208-0.9767532-0.4883766-1.5042038-0.7618675c-1.0744247-0.4883766-2.2074585-1.0353587-3.3795624-1.4651299 + c-1.152565-0.4883766-2.3442078-0.8595428-3.4577103-1.2307093c-0.5665131-0.1758156-1.1135025-0.312561-1.6214066-0.4688416 + c-0.2734909-0.0781403-0.5274506-0.1562805-0.7618675-0.2148857c-0.2344208-0.0586052-0.4688377-0.1172104-0.7032623-0.1758156 + c-0.898613-0.2148857-1.6604805-0.4102364-2.2074585-0.4883767c-0.5274506-0.0976753-0.8400078-0.1562805-0.8400078-0.1562805 + s-0.4493027,0.7814026-1.0939636,1.9339714c-0.6446533,1.1721039-1.4651299,2.7739794-2.2074585,4.3563194 + c-0.7032661,1.5042005-1.3479195,3.0083995-1.7972298,4.2000394c-1.2307053-0.1172104-2.480957-0.1758165-3.7507362-0.1758165 + c-3.1842155,0-6.2902908,0.3907013-9.2791557,1.0939636c-0.6446648-1.0939674-1.4651337-2.461422-2.3637505-3.8093414 + c-0.9767532-1.4651299-2.0316467-2.9302602-2.8325844-3.9656181c-0.8009377-1.0548937-1.3674545-1.738621-1.3674545-1.738621 + s-0.293026,0.0976753-0.8204727,0.2734909c-0.5079117,0.1562805-1.2307091,0.4688416-2.109787,0.8009379 + c-0.2148857,0.0976753-0.4493065,0.1758153-0.6837273,0.2734907c-0.2344208,0.0976756-0.4688396,0.1953509-0.7227974,0.3125613 + c-0.4883766,0.2148857-1.0158215,0.4493065-1.5432682,0.7032623C27.731884,5.54004,26.6183815,6.0870218,25.5439529,6.731679 + C25.270462,6.88796,24.9969711,7.04424,24.7234821,7.2005205c-0.2734928,0.1562805-0.5274467,0.3320961-0.7814026,0.4883766 + c-0.5274467,0.3320961-1.0353603,0.6446571-1.523737,0.9767532c-0.9572182,0.6837273-1.8558311,1.3088493-2.5786266,1.8949013 + c-0.3516331,0.2734919-0.7032623,0.5469818-0.9962883,0.7814026c-0.293026,0.2539558-0.5274467,0.4688425-0.7423344,0.6446571 + c-0.4102364,0.3711672-0.6446571,0.5665178-0.6446571,0.5665178s0.3125629,0.8400068,0.8204727,2.0707169 + c0.5274467,1.2502451,1.250246,2.8716545,2.0316486,4.4344597c0.6837273,1.3674545,1.4260597,2.7349091,2.0316467,3.8093376 + c-3.0865421,3.1451473-5.6651688,6.8177376-7.56007,10.8614979c-1.2111731-0.1758156-2.715374-0.3711662-4.219574-0.4883766 + c-1.7386208-0.1367455-3.4967771-0.2344208-4.844696-0.2539558c-0.6641922-0.0195389-1.2307091-0.0195389-1.6214104-0.0195389 + s-0.605587,0-0.605587,0s-0.0976753,0.293026-0.2734909,0.8204727c-0.1562805,0.5274467-0.4493065,1.2697792-0.6837273,2.168396 + c-0.1172104,0.4493065-0.2734909,0.9572144-0.4102364,1.4651299c-0.1367456,0.5079117-0.253956,1.0744286-0.3907014,1.6409416 + c-0.0586052,0.293026-0.1367455,0.5860519-0.1953506,0.8790779c-0.0781403,0.293026-0.1172104,0.6055908-0.1758156,0.8986168 + c-0.0976753,0.605587-0.2148857,1.211174-0.312561,1.8362923c-0.1562806,1.2502441-0.3320962,2.4809532-0.3907014,3.6530571 + c-0.0976753,1.1525688-0.1172104,2.2465324-0.1367455,3.1842194C0.5,49.7478943,0.5,49.96278,0.5,50.1776657 + c0.0195351,0.2148857,0.0195351,0.4102364,0.0195351,0.605587c0,0.3711624,0.0195351,0.7032623,0.0195351,0.9767532 + c0.0195351,0.546978,0.0195351,0.859539,0.0195351,0.859539s0.2148858,0.0586052,0.5860519,0.1758156 + c0.3907014,0.1172104,0.918148,0.293026,1.5628054,0.4688416c1.289314,0.3711624,3.0084002,0.8204727,4.7079506,1.1916389 + c1.367455,0.293026,2.7544446,0.546978,3.9070134,0.7228012c0.5469818,4.6298103,1.8949003,9.0056686,3.8874779,13.0103531 + c-0.8204718,0.7814026-1.7776899,1.7190857-2.715374,2.6958389c-1.211174,1.2697754-2.3637428,2.5981598-3.2232857,3.633522 + c-0.4297714,0.5079117-0.7814026,0.9376831-1.0353584,1.2502441c-0.2344208,0.312561-0.3711667,0.4883728-0.3711667,0.4883728 + s0.1758161,0.253952,0.468842,0.7228012c0.293026,0.4493027,0.7032623,1.1135025,1.2502441,1.8753662 + c0.2734919,0.37117,0.5665178,0.8009415,0.8790779,1.2307053c0.3320961,0.4297791,0.6837273,0.8595428,1.0353584,1.3283844 + s0.7423325,0.9181519,1.1525698,1.3869934c0.3907013,0.4493027,0.8009367,0.9376831,1.2307091,1.3869858 + c1.6800156,1.855835,3.5749168,3.4967804,5.0009766,4.7079544c0.7423325,0.5860519,1.3479195,1.0744324,1.7776909,1.4065323 + c0.4493065,0.3320923,0.7032623,0.5079117,0.7032623,0.5079117s0.7423325-0.5079117,1.8362961-1.269783 + c0.5274467-0.3907013,1.1525688-0.840004,1.816761-1.3479156c0.6641941-0.4883804,1.3674545-1.0353546,2.0511818-1.6018829 + c1.0158215-0.840004,1.9925747-1.6800156,2.8130474-2.4223404c3.8679428,2.3832779,8.2047272,4.1023636,12.8150063,5.0205078 + c0.0976753,1.1330338,0.234417,2.422348,0.4297676,3.7507401c0.2539597,1.7386169,0.5665169,3.4967728,0.8400116,4.786087 + c0.2734871,1.2893143,0.4883766,2.168396,0.4883766,2.168396s0.312561,0.0390701,0.859539,0.0976791 + c0.5274467,0.0586014,1.3088493,0.0976715,2.2465324,0.1758118c0.4688416,0.0390701,0.9767532,0.0390701,1.5042,0.0586014 + c0.5274467,0.0195389,1.0939636,0.0390701,1.6800156,0.0390701c1.152565-0.0390701,2.4028091-0.0390701,3.6530571-0.1562729 + c1.2502441-0.058609,2.5004883-0.2344284,3.6530609-0.3907013c0.5665169-0.0976791,1.1330299-0.1953506,1.6604805-0.2930298 + c0.5274506-0.0976715,1.0353546-0.1758118,1.4846649-0.2930222c0.9181519-0.2148895,1.6800194-0.3907013,2.2074623-0.5274506 + c0.5274467-0.1562805,0.8204765-0.2344208,0.8204765-0.2344208s0.0781403-0.8986206,0.1562729-2.2269974 + c0.0781403-1.3088531,0.117218-3.1060791,0.0976791-4.8642349c-0.0195389-1.3674545-0.0586014-2.6763077-0.1367493-3.8288727 + c4.3172531-1.6214066,8.2828674-3.9656143,11.7405777-6.9154129c0.9572144,0.6251297,2.109787,1.3674545,3.3014221,2.0707169 + c1.523735,0.9181519,3.067009,1.7386246,4.2586441,2.3442078c1.1916428,0.6055908,2.0121078,0.9767532,2.0121078,0.9767532 + s0.0586014-0.0586014,0.1562805-0.1562729c0.0976715-0.0976791,0.253952-0.253952,0.4493027-0.4493027 + c0.3907013-0.3907013,0.9181519-0.957222,1.5628052-1.6409454c1.2307053-1.4065323,2.8325882-3.320961,4.2391129-5.3916855 + c1.4065247-2.0707169,2.6567688-4.2391052,3.4772415-5.9191208c0.1172104-0.2148819,0.2148819-0.4102325,0.312561-0.6055832 + c0.0976715-0.1953506,0.1758118-0.37117,0.253952-0.5469818c0.1562805-0.3516312,0.2930222-0.6446533,0.4102402-0.898613 + c0.2344208-0.4883804,0.3516235-0.7814026,0.3516235-0.7814026s-0.6641922-0.6251297-1.6604767-1.5042038 + c-0.9962921-0.8790817-2.3442078-2.0316467-3.7312012-3.1060715c-1.1721039-0.9181519-2.3637466-1.7776947-3.3600311-2.461422 + c1.211174-3.7702675,1.8558273-7.7944908,1.8558273-11.9749985c0-0.3907013,0-0.7814026-0.0195312-1.1721039 + c1.1721039-0.3711624,2.5981598-0.859539,4.0437546-1.3869896C95.6357727,47.3255463,97.2571793,46.6222839,98.4683533,46.0753021z + M50.5097694,78.2495575c-7.4037895,0-14.3778114-2.8911896-19.6132069-8.1265945 + c-5.2353973-5.2353897-8.1265869-12.2094116-8.1265869-19.6132011s2.8911896-14.3778114,8.1265869-19.613205 + c5.2353954-5.2353992,12.2094173-8.1265888,19.6132069-8.1265888s14.3778114,2.8911896,19.6132011,8.1265888 + c5.235405,5.2353935,8.1265945,12.2094154,8.1265945,19.613205s-2.8911896,14.3778114-8.1265945,19.6132011 + C64.8875732,75.3583603,57.9135551,78.2495575,50.5097694,78.2495575z"/> + <path class="st0" d="M50.5097694,31.8537731c-10.2949791,0-18.6559887,8.3610096-18.6559887,18.6559887 + s8.3610096,18.6559868,18.6559887,18.6559868s18.6559868-8.3610039,18.6559868-18.6559868 + S60.8047485,31.8537731,50.5097694,31.8537731z M50.5097694,57.4447098c-3.8288765,0-6.934948-3.1060753-6.934948-6.934948 + s3.1060715-6.934948,6.934948-6.934948s6.934948,3.1060715,6.934948,6.934948S54.3386421,57.4447098,50.5097694,57.4447098z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/custom.6f45244d.svg b/extensions/harvester/1.5.0-dev/plugin/img/custom.6f45244d.svg new file mode 100644 index 00000000..0d3a3ecf --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/custom.6f45244d.svg @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#3D98D3;} +</style> +<path class="st0" d="M44.5300789,20.6782227c-0.1426773-0.6309566-0.6984367-1.0951176-1.3626976-1.0951176 + c-0.1240196,0-0.244236,0.0162106-0.3586922,0.046484l0.0096703-0.0022469 + c-0.3308601,0.0887699-0.7106476,0.1397476-1.1024437,0.1397476c-2.440136,0-4.4182625-1.9781246-4.4182625-4.4182625 + c0-1.2042961,0.481739-2.296093,1.2631836-3.092968l-0.0006828,0.0006838 + c0.2468758-0.2515621,0.3993149-0.5965824,0.3993149-0.9772463c0-0.4067383-0.1740227-0.7728519-0.4516602-1.027832 + l-0.0009766-0.0009766c-2.0785141-1.9058599-4.5794945-3.3877935-7.3433609-4.2872076l-0.1422844-0.0400391 + c-0.125391-0.0409179-0.2697258-0.0645504-0.4197273-0.0645504c-0.6379871,0-1.1758804,0.4281249-1.342186,1.012598 + l-0.0023422,0.0097651c-0.5352535,1.8808599-2.2378902,3.234961-4.2569351,3.234961s-3.7215824-1.3541994-4.2493153-3.2038088 + l-0.007618-0.0311522c-0.1687489-0.5944333-0.7067375-1.0225587-1.344532-1.0225587 + c-0.1499023,0-0.2942371,0.023633-0.4295902,0.0673828l0.0098629-0.0028319 + c-2.9060535,0.9396482-5.4071283,2.4213872-7.5004873,4.3408208l0.0149412-0.0134773 + c-0.2786131,0.2559576-0.4527349,0.6220713-0.4527349,1.0288086c0,0.3805666,0.152441,0.7255859,0.3995123,0.9773436 + l-0.0001955-0.0001945c0.7806644,0.7961903,1.2625008,1.8879881,1.2625008,3.0922852 + c0,2.440136-1.9781246,4.4182606-4.4182615,4.4182606c-0.3916993,0-0.7715821-0.0509758-1.1333003-0.1466789l0.0308595,0.0069332 + c-0.104785-0.0281239-0.2249026-0.0443344-0.3489256-0.0443344c-0.6641603,0-1.2200193,0.4640617-1.3608398,1.085741 + l-0.0017581,0.0092773c-0.2987304,1.2988281-0.4699221,2.7902355-0.4699221,4.3217773 + c0,1.5315456,0.1711912,3.0228539,0.4955082,4.4562492l-0.0255861-0.1344738 + c0.1426754,0.6309566,0.6984377,1.0951157,1.3625979,1.0951157c0.124023,0,0.2442384-0.0162086,0.3586912-0.0464859 + l-0.0097656,0.0021496c0.3308592-0.0887699,0.710742-0.1397457,1.1025391-0.1397457 + c2.4401369,0,4.4183598,1.9781265,4.4183598,4.4182625c0,1.2042961-0.4818354,2.296093-1.2631836,3.0930672l0.0006838-0.0006828 + c-0.2468748,0.2514648-0.3993158,0.5965843-0.3993158,0.9772453c0,0.4067383,0.1740236,0.77285,0.4517584,1.0279274 + l0.0009766,0.0009804c2.078516,1.9058571,4.5794926,3.3876953,7.343359,4.2872047l0.1422844,0.0400391 + c0.1254883,0.0410194,0.2697258,0.0645523,0.4197273,0.0645523c0.6378899,0,1.1758785-0.4281235,1.3421879-1.0126953 + l0.0023441-0.009861c0.5352535-1.880764,2.2379875-3.2349625,4.2568359-3.2349625s3.7216797,1.3541985,4.2493153,3.2038078 + l0.007618,0.0311546c0.1687489,0.5944328,0.7067375,1.0224609,1.3446293,1.0224609 + c0.1498051,0,0.2941399-0.0236359,0.4293957-0.0673866l-0.0098648,0.002739 + c2.9061527-0.9396515,5.4072247-2.4214859,7.5004864-4.3408241l-0.014843,0.0134773 + c0.278614-0.2559547,0.4527321-0.6220703,0.4527321-1.0288086c0-0.3805656-0.1523438-0.7255859-0.3995132-0.9774399 + l0.0001984,0.0001945c-0.7806625-0.7962875-1.2625008-1.887989-1.2625008-3.0922852 + c0-2.440136,1.9781265-4.4182625,4.4182625-4.4182625c0.3917961,0,0.7715836,0.0509758,1.1333008,0.1466808l-0.0307617-0.0069351 + c0.1046867,0.0281239,0.2249031,0.0443363,0.3490257,0.0443363c0.6641579,0,1.2200203-0.4640636,1.3608398-1.085743 + l0.0017586-0.0093765c0.2986336-1.2988262,0.4699211-2.7902336,0.4699211-4.3217773s-0.1711884-3.02285-0.4955063-4.4562492 + l0.0255852,0.1344719L44.5300789,20.6782227z M25,31.25c-3.4517593,0-6.25-2.7982407-6.25-6.25s2.7982407-6.25,6.25-6.25 + s6.25,2.7982407,6.25,6.25l0,0C31.25,28.4517593,28.4517593,31.25,25,31.25L25,31.25z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/decoration-cloud-big-white.4229596e.svg b/extensions/harvester/1.5.0-dev/plugin/img/decoration-cloud-big-white.4229596e.svg new file mode 100644 index 00000000..9d6c137d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/decoration-cloud-big-white.4229596e.svg @@ -0,0 +1 @@ +<svg enable-background="new 0 0 1145 110.6" viewBox="0 0 1145 110.6" xmlns="http://www.w3.org/2000/svg"><g fill="#fff"><circle cx="445.2" cy="53.9" r="7.8"/><ellipse cx="156.1" cy="53.9" rx="7.8" ry="7.8"/><path d="m993.6 46.1c-4.3 0-7.8 3.5-7.8 7.8s3.5 7.8 7.8 7.8 7.8-3.5 7.8-7.8-3.5-7.8-7.8-7.8z"/><path d="m467.8 46.1c-4.3 0-7.8 3.5-7.8 7.8s3.5 7.8 7.8 7.8 7.8-3.5 7.8-7.8-3.5-7.8-7.8-7.8z"/><path d="m1012.4 102.9c0-4.2 3.4-7.7 7.7-7.7h43.8c4.2 0 7.7 3.4 7.7 7.7 0 4.2-3.4 7.7-7.7 7.7h-43.9c-4.2 0-7.6-3.5-7.6-7.7z"/><path d="m.1 53.9c0-4.2 3.4-7.7 7.7-7.7h43.8c4.2 0 7.7 3.4 7.7 7.7 0 4.2-3.4 7.7-7.7 7.7h-43.8c-4.2-.1-7.7-3.5-7.7-7.7z"/><path d="m66.8 86.4c0-3.8 3.1-6.8 6.8-6.8h39.6c3.8 0 6.8 3.1 6.8 6.8 0 3.8-3.1 6.8-6.8 6.8h-39.6c-3.8.1-6.8-3-6.8-6.8zm-13 6.9c3.8 0 6.8-3.1 6.8-6.8 0-3.8-3.1-6.8-6.8-6.8-3.8 0-6.8 3.1-6.8 6.8s3.1 6.8 6.8 6.8z"/><path d="m1091.2 63.9c0-3.8 3.1-6.8 6.8-6.8h39.6c3.8 0 6.8 3.1 6.8 6.8 0 3.8-3.1 6.8-6.8 6.8h-39.6c-3.7 0-6.8-3-6.8-6.8zm-12.9 6.8c3.8 0 6.8-3.1 6.8-6.8 0-3.8-3.1-6.8-6.8-6.8s-6.8 3.1-6.8 6.8c0 3.8 3 6.8 6.8 6.8z"/><path d="m555.5 53.4c0 3.8-3.1 6.8-6.8 6.8h-39.7c-3.8 0-6.8-3.1-6.8-6.8 0-3.8 3.1-6.8 6.8-6.8h39.6c3.8 0 6.9 3.1 6.9 6.8zm12.9-6.8c-3.8 0-6.8 3.1-6.8 6.8s3.1 6.8 6.8 6.8c3.8 0 6.8-3.1 6.8-6.8s-3-6.8-6.8-6.8zm19.8 0c-3.8 0-6.8 3.1-6.8 6.8s3.1 6.8 6.8 6.8 6.8-3.1 6.8-6.8-3-6.8-6.8-6.8z"/><path d="m311.9.1c4.2.2 7.5 3.6 7.5 7.8 0 4-3 7.2-6.8 7.7h-258.1c-5 0-9.1 3.5-9.1 7.9 0 4.3 4.1 7.9 9.1 7.9h153.5c4.3 0 7.8 3.3 7.8 7.4s-3.5 7.4-7.8 7.4h-26.5c-4.3 0-7.8 3.5-7.8 7.8s3.5 7.8 7.8 7.8h86.7c2 1.5 3.2 3.8 3.2 6.5 0 4.5-3.7 8.2-8.2 8.2h-23.4c-4.5 0-8.2 3.7-8.2 8.2s3.7 8.2 8.2 8.2h96.7c4.5 0 8.2-3.7 8.2-8.2-.1-4.5-3.8-8.2-8.3-8.2h-4.1-35.5c-4.5 0-8.2-3.7-8.2-8.2 0-2.7 1.3-5 3.2-6.5h125.6c4.3 0 7.8-3.5 7.8-7.8s-3.5-7.8-7.8-7.8h-11.2c-4.3 0-7.8-3.3-7.8-7.4s3.5-7.4 7.8-7.4h299.1c4.3 0 7.8 3.3 7.8 7.4s-3.5 7.4-7.8 7.4h-65.4c-4.3 0-7.8 3.5-7.8 7.8s3.5 7.8 7.8 7.8h248.8c2 1.5 3.2 3.8 3.2 6.5 0 4.5-3.7 8.2-8.2 8.2h-23.4c-4.5 0-8.2 3.7-8.2 8.2s3.7 8.2 8.2 8.2h96.7c4.5 0 8.2-3.7 8.2-8.2-.1-4.5-3.7-8.2-8.3-8.2h-4.1-35.5c-4.5 0-8.2-3.7-8.2-8.2 0-2.7 1.3-5 3.2-6.5h56.8c4.3 0 7.8-3.5 7.8-7.8s-3.5-7.8-7.8-7.8h-25.4c-4.3 0-7.8-3.3-7.8-7.4s3.5-7.4 7.8-7.4h133.5c5 0 9.1-3.5 9.1-7.9s-4.1-7.9-9.1-7.9h-43.4c-3.8-.5-6.8-3.8-6.8-7.7 0-4.2 3.3-7.6 7.5-7.8zm173.3 15.3c-4.3 0-7.7-3.5-7.7-7.7s3.5-7.7 7.7-7.7c4.3 0 7.7 3.5 7.7 7.7 0 4.3-3.5 7.7-7.7 7.7zm22.3.1c-4.3 0-7.7-3.5-7.7-7.7s3.5-7.7 7.7-7.7c4.3 0 7.7 3.5 7.7 7.7s-3.4 7.7-7.7 7.7zm310.7-.1h-228.3c-4.3 0-7.7-3.5-7.7-7.7s3.5-7.7 7.7-7.7h228.3c4.2 0 7.7 3.5 7.7 7.7 0 4.3-3.5 7.7-7.7 7.7z"/></g></svg> \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/decoration-ground.3f64fcbb.svg b/extensions/harvester/1.5.0-dev/plugin/img/decoration-ground.3f64fcbb.svg new file mode 100644 index 00000000..91bc283e --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/decoration-ground.3f64fcbb.svg @@ -0,0 +1 @@ +<svg enable-background="new 0 0 4201.8 482.1" viewBox="0 0 4201.8 482.1" xmlns="http://www.w3.org/2000/svg"><path d="m1311.3 482.1h1723.8c-138.1-155.7-602.9-205.4-851.9-205.4s-673.6 52.8-871.9 205.4z" fill="#6ba939"/><path d="m2571.1 379.2c0-26-7.4-56.1-22.4-56.1s-22.4 30.1-22.4 56.1c0 9.5 7.4 17.2 22.4 17.2s22.4-7.7 22.4-17.2z" fill="#abc53e"/><path d="m2571.1 379.2c0-26-7.4-56.1-22.4-56.1v73.3c15 0 22.4-7.7 22.4-17.2z" fill="#a2ba3b"/><path d="m2548.7 423.4c-1.1 0-2.1-.9-2.1-2.1v-64.2c0-1.1.9-2.1 2.1-2.1s2.1.9 2.1 2.1v64.2c0 1.2-.9 2.1-2.1 2.1z" fill="#594a41"/><path d="m2548.7 382.7c-.5 0-1.1-.2-1.5-.6l-9.5-9.5c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l9.5 9.5c.8.8.8 2.1 0 2.9-.3.4-.9.6-1.4.6z" fill="#594a41"/><path d="m2548.7 374.4c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l12.7-12.7c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-12.7 12.7c-.3.4-.9.6-1.4.6z" fill="#594a41"/><path d="m3553.7 482.1v-.3h643.5c-125.9-184.1-386.8-310.7-688.2-310.7-31.5 0-62.6 1.4-93.1 4.1-282.1 10.9-523.8 132.8-644.6 306.9z" fill="#bbd644"/><path d="m753.4 482.1h1370.5c-183.6-137.6-440.4-223.1-724.6-223.1-245.6 0-470.7 63.9-645.9 170.1z" fill="#8dc63f"/><path d="m1665.2 363c0 22.9-18.6 41.5-41.5 41.5s-41.5-18.6-41.5-41.5 18.6-41.5 41.5-41.5c23 0 41.5 18.6 41.5 41.5z" fill="#6ba939"/><path d="m1665.2 363c0-22.9-18.6-41.5-41.5-41.5v82.9c23 0 41.5-18.5 41.5-41.4z" fill="#5c9531"/><path d="m1623.8 429.1c-1.1 0-2.1-.9-2.1-2.1v-58c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v58c0 1.2-1 2.1-2.1 2.1z" fill="#594a41"/><path d="m1623.8 392.2c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l8.6-8.6c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-8.6 8.6c-.4.4-.9.6-1.4.6z" fill="#594a41"/><path d="m1623.8 384.7c-.5 0-1.1-.2-1.5-.6l-11.5-11.5c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l11.5 11.5c.8.8.8 2.1 0 2.9-.4.4-.9.6-1.4.6z" fill="#594a41"/><path d="m1532 285.2c0-26-7.4-56.1-22.4-56.1s-22.4 30.1-22.4 56.1c0 9.5 7.4 17.2 22.4 17.2 15 .1 22.4-7.6 22.4-17.2z" fill="#dbe13a"/><path d="m1532 285.2c0-26-7.4-56.1-22.4-56.1v73.3c15 .1 22.4-7.6 22.4-17.2z" fill="#bbd644"/><path d="m1509.6 329.5c-1.1 0-2.1-.9-2.1-2.1v-64.2c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v64.2c0 1.2-.9 2.1-2.1 2.1z" fill="#594a41"/><path d="m1509.6 288.8c-.5 0-1.1-.2-1.5-.6l-9.5-9.5c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l9.5 9.5c.8.8.8 2.1 0 2.9-.3.4-.8.6-1.4.6z" fill="#594a41"/><path d="m1509.6 280.4c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l12.7-12.7c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-12.7 12.7c-.3.4-.8.6-1.4.6z" fill="#594a41"/><path d="m707.5 171.5c-3.2 0-6.4 0-9.6.1-3.2 0-6.4-.1-9.6-.1-301.6 0-562.4 126.5-688.3 310.6h653.3 88.9 653.3c-125.8-184.1-386.6-310.6-688-310.6z" fill="#bbd644"/><g fill="#abc53e"><path d="m992.8 351.7c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3-16.3 7.3-16.3 16.3 7.3 16.3 16.3 16.3z"/><path d="m858.4 286.5c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3-16.3 7.3-16.3 16.3 7.3 16.3 16.3 16.3z"/><path d="m1018.5 384.3h-144.3c-9 0-16.3-7.3-16.3-16.3s7.3-16.3 16.3-16.3h68.6c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3h-190c-9 0-16.3-7.3-16.3-16.3s7.3-16.3 16.3-16.3h56.7c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3h-142-119.5c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3h21.4c9 0 16.3 7.3 16.3 16.3s-7.3 16.3-16.3 16.3h-57.1c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3h104.3c9 0 16.3 7.3 16.3 16.3s-7.3 16.3-16.3 16.3h-68.6c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3h110c9 0 16.3 7.3 16.3 16.3s-7.3 16.3-16.3 16.3h-56.7c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3h52 289.5c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3h-21.4c-9 0-16.3-7.3-16.3-16.3s7.3-16.3 16.3-16.3h97.1c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3z"/><path d="m498 384.3c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3 16.3-7.3 16.3-16.3-7.3-16.3-16.3-16.3z"/><path d="m552.4 449.5c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3 16.3-7.3 16.3-16.3-7.3-16.3-16.3-16.3z"/><path d="m3343.7 286.5c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3-16.3 7.3-16.3 16.3c0 9.1 7.2 16.3 16.3 16.3z"/><path d="m3176.2 384.3c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3 16.3-7.3 16.3-16.3-7.3-16.3-16.3-16.3z"/><path d="m3795.3 319.1c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3 16.3-7.3 16.3-16.3-7.3-16.3-16.3-16.3z"/><path d="m3667.8 449.5c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3 16.3-7.3 16.3-16.3-7.3-16.3-16.3-16.3z"/><path d="m3748.6 319.1h-136.4c-9 0-16.3-7.3-16.3-16.3s7.3-16.3 16.3-16.3h112.6c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3h-171.1-45.9-115c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3h53.9c9 0 16.3 7.3 16.3 16.3s-7.3 16.3-16.3 16.3h-199.9c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3h64.5c9 0 16.3 7.3 16.3 16.3s-7.3 16.3-16.3 16.3h-88.4c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3h136.4c9 0 16.3 7.3 16.3 16.3s-7.3 16.3-16.3 16.3h-112.6c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3h261.1 45.9 65c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3h-53.9c-9 0-16.3-7.3-16.3-16.3s7.3-16.3 16.3-16.3h159.9c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3h-64.5c-9 0-16.3-7.3-16.3-16.3s7.3-16.3 16.3-16.3h88.4c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3z"/></g><ellipse cx="3059.9" cy="258.9" fill="#8dc63f" rx="60.7" ry="60.7" transform="matrix(.919 -.3942 .3942 .919 145.7122 1227.214)"/><path d="m3120.7 259c0-33.5-27.2-60.7-60.7-60.7v121.4c33.5 0 60.7-27.2 60.7-60.7z" fill="#6ba939"/><path d="m3060 354.9c-1.1 0-2.1-.9-2.1-2.1v-85.1c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v85.1c-.1 1.2-1 2.1-2.1 2.1z" fill="#594a41"/><path d="m3060 300.9c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l12.6-12.6c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-12.7 12.7c-.3.3-.8.5-1.3.5z" fill="#594a41"/><path d="m3060 289.8c-.5 0-1.1-.2-1.5-.6l-16.8-16.8c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l16.8 16.8c.8.8.8 2.1 0 2.9-.4.4-.9.6-1.4.6z" fill="#594a41"/><path d="m1004.4 219.4c0 25.7-20.8 46.4-46.4 46.4-25.7 0-46.4-20.8-46.4-46.4 0-25.7 20.8-46.4 46.4-46.4 25.6-.1 46.4 20.7 46.4 46.4z" fill="#8dc63f"/><path d="m1004.4 219.4c0-25.7-20.8-46.4-46.4-46.4v92.9c25.6-.1 46.4-20.9 46.4-46.5z" fill="#6ba939"/><path d="m957.9 293.2c-1.1 0-2.1-.9-2.1-2.1v-65.1c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v65.1c0 1.2-.9 2.1-2.1 2.1z" fill="#594a41"/><path d="m957.9 251.9c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l9.7-9.7c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-9.7 9.7c-.3.4-.9.6-1.4.6z" fill="#594a41"/><path d="m957.9 243.4c-.5 0-1.1-.2-1.5-.6l-12.8-12.8c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l12.8 12.8c.8.8.8 2.1 0 2.9-.3.4-.9.6-1.4.6z" fill="#594a41"/><path d="m712.8 384.2c0 25.7 20.8 46.4 46.4 46.4 25.7 0 46.4-20.8 46.4-46.4s-20.8-46.4-46.4-46.4c-25.6-.1-46.4 20.7-46.4 46.4z" fill="#dbe13a"/><path d="m712.8 384.2c0-25.7 20.8-46.4 46.4-46.4v92.9c-25.6-.1-46.4-20.9-46.4-46.5z" fill="#bbd644"/><path d="m759.2 458c-1.1 0-2.1-.9-2.1-2.1v-65.1c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v65.2c0 1.1-.9 2-2.1 2z" fill="#594a41"/><path d="m759.2 416.7c-.5 0-1.1-.2-1.5-.6l-9.7-9.7c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l9.7 9.7c.8.8.8 2.1 0 2.9-.3.4-.8.6-1.4.6z" fill="#594a41"/><path d="m759.2 408.2c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l12.8-12.8c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-12.8 12.8c-.3.4-.8.6-1.4.6z" fill="#594a41"/><path d="m2712.1 300.8c0 17.4-14.1 31.5-31.5 31.5s-31.5-14.1-31.5-31.5 14.1-31.5 31.5-31.5 31.5 14.1 31.5 31.5z" fill="#8dc63f"/><path d="m2712.1 300.8c0-17.4-14.1-31.5-31.5-31.5v63c17.4 0 31.5-14.1 31.5-31.5z" fill="#6ba939"/><path d="m2680.6 351.5c-1.1 0-2.1-.9-2.1-2.1v-44.1c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v44.1c0 1.2-.9 2.1-2.1 2.1z" fill="#594a41"/><path d="m2680.6 323.5c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l6.6-6.6c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-6.6 6.6c-.3.4-.8.6-1.4.6z" fill="#594a41"/><path d="m2680.6 317.8c-.5 0-1.1-.2-1.5-.6l-8.7-8.7c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l8.7 8.7c.8.8.8 2.1 0 2.9-.3.4-.8.6-1.4.6z" fill="#594a41"/><path d="m3530.7 401.1c0-47.2-14-125.6-31.3-125.6s-31.3 78.4-31.3 125.6c0 17.3 14 31.3 31.3 31.3s31.3-14 31.3-31.3z" fill="#dbe13a"/><path d="m3530.7 401.1c0-47.2-14-125.6-31.3-125.6v156.9c17.2 0 31.3-14 31.3-31.3z" fill="#bbd644"/><path d="m3499.4 467.6c-1.1 0-2.1-.9-2.1-2.1v-85.1c0-1.1.9-2.1 2.1-2.1s2.1.9 2.1 2.1v85.1c-.1 1.2-1 2.1-2.1 2.1z" fill="#594a41"/><path d="m3499.4 413.6c-.5 0-1.1-.2-1.5-.6l-12.7-12.7c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l12.6 12.7c.8.8.8 2.1 0 2.9-.3.4-.8.6-1.3.6z" fill="#594a41"/><path d="m3499.4 402.5c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l16.8-16.8c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-16.8 16.8c-.4.4-.9.6-1.4.6z" fill="#594a41"/><path d="m687.9 125.6c0-47.2 14-125.6 31.3-125.6s31.3 78.4 31.3 125.6c0 17.3-14 31.3-31.3 31.3s-31.3-14-31.3-31.3z" fill="#dbe13a"/><path d="m687.9 125.6c0-47.2 14-125.6 31.3-125.6v156.9c-17.3 0-31.3-14-31.3-31.3z" fill="#bbd644"/><path d="m719.2 192.1c-1.1 0-2.1-.9-2.1-2.1v-85.1c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v85.1c0 1.1-.9 2.1-2.1 2.1z" fill="#594a41"/><path d="m719.2 138c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l12.6-12.7c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-12.6 12.6c-.3.5-.9.7-1.4.7z" fill="#594a41"/><path d="m719.2 127c-.5 0-1.1-.2-1.5-.6l-16.7-16.8c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l16.8 16.8c.8.8.8 2.1 0 2.9-.4.4-1 .6-1.5.6z" fill="#594a41"/><path d="m3393.3 134.3c0-34.5-9.8-74.4-29.7-74.4s-29.7 39.9-29.7 74.4c0 12.6 9.8 22.9 29.7 22.9 19.9-.1 29.7-10.3 29.7-22.9z" fill="#bbd644"/><path d="m3393.3 134.3c0-34.5-9.8-74.4-29.7-74.4v97.2c19.9 0 29.7-10.2 29.7-22.8z" fill="#abc53e"/><path d="m3363.6 192.3c-1.1 0-2.1-.9-2.1-2.1v-85.1c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v85.1c0 1.2-1 2.1-2.1 2.1z" fill="#594a41"/><path d="m3363.6 138.3c-.5 0-1.1-.2-1.5-.6l-12.7-12.7c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l12.7 12.7c.8.8.8 2.1 0 2.9-.4.4-.9.6-1.4.6z" fill="#594a41"/><path d="m3363.6 127.2c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l16.8-16.8c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-16.8 16.8c-.4.4-.9.6-1.4.6z" fill="#594a41"/><path d="m1130.5 401.2c0-34.5 9.8-74.4 29.7-74.4s29.7 39.9 29.7 74.4c0 12.6-9.8 22.9-29.7 22.9s-29.7-10.2-29.7-22.9z" fill="#8dc63f"/><path d="m1130.5 401.2c0-34.5 9.8-74.4 29.7-74.4v97.2c-19.9.1-29.7-10.1-29.7-22.8z" fill="#6ba939"/><path d="m1160.2 459.3c-1.1 0-2.1-.9-2.1-2.1v-85.1c0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1v85.1c-.1 1.2-1 2.1-2.1 2.1z" fill="#594a41"/><path d="m1160.2 405.2c-.5 0-1.1-.2-1.5-.6-.8-.8-.8-2.1 0-2.9l12.6-12.7c.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.9l-12.6 12.6c-.4.5-.9.7-1.4.7z" fill="#594a41"/><path d="m1160.2 394.2c-.5 0-1.1-.2-1.5-.6l-16.8-16.8c-.8-.8-.8-2.1 0-2.9s2.1-.8 2.9 0l16.8 16.8c.8.8.8 2.1 0 2.9-.4.4-.9.6-1.4.6z" fill="#594a41"/></svg> \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/digitalocean-black.3d5310a1.svg b/extensions/harvester/1.5.0-dev/plugin/img/digitalocean-black.3d5310a1.svg new file mode 100644 index 00000000..79075694 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/digitalocean-black.3d5310a1.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<g id="_Group_"> + <g id="_Group_2"> + <g id="_Group_3"> + <g id="_Group_4"> + <g id="_Group_5"> + <path id="_Path_" d="M50.4,100.5V81.1c17,0,30.8-13.8,30.6-30.8c0-3.8-0.8-7.6-2.2-11.2c-3-8-9.2-14.4-17.2-17.2 + C45.8,15.7,28,23.5,21.8,39.5c-1.4,3.6-2,7.4-2,11.2H0.4C0.4,22.9,23,0.5,50.6,0.5c5.4,0,10.6,0.8,15.8,2.6 + c15,4.8,26.8,16.6,31.6,31.6c8.8,26.2-5.6,54.6-31.8,63.4C61,99.7,55.6,100.5,50.4,100.5z"/> + </g> + <polygon id="_Path_2" points="50.4,81.3 31,81.3 31,61.9 31,61.9 50.4,61.9 50.4,61.9 "/> + <polygon id="_Path_3" points="31,96.1 16.2,96.1 16.2,96.1 16.2,81.3 31,81.3 "/> + <path id="_Path_4" d="M16.2,81.3H3.8V68.9h12.4L16.2,81.3L16.2,81.3z"/> + </g> + </g> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/digitalocean.b0aa5786.svg b/extensions/harvester/1.5.0-dev/plugin/img/digitalocean.b0aa5786.svg new file mode 100644 index 00000000..8d01c772 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/digitalocean.b0aa5786.svg @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#0080FF;} +</style> +<g id="_Group_"> + <g id="_Group_2"> + <g id="_Group_3"> + <g id="_Group_4"> + <g id="_Group_5"> + <path id="_Path_" class="st0" d="M50.4,100.5V81.1c17,0,30.8-13.8,30.6-30.8c0-3.8-0.8-7.6-2.2-11.2c-3-8-9.2-14.4-17.2-17.2 + C45.8,15.7,28,23.5,21.8,39.5c-1.4,3.6-2,7.4-2,11.2H0.4C0.4,22.9,23,0.5,50.6,0.5c5.4,0,10.6,0.8,15.8,2.6 + c15,4.8,26.8,16.6,31.6,31.6c8.8,26.2-5.6,54.6-31.8,63.4C61,99.7,55.6,100.5,50.4,100.5z"/> + </g> + <polygon id="_Path_2" class="st0" points="50.4,81.3 31,81.3 31,61.9 31,61.9 50.4,61.9 50.4,61.9 "/> + <polygon id="_Path_3" class="st0" points="31,96.1 16.2,96.1 16.2,96.1 16.2,81.3 31,81.3 "/> + <path id="_Path_4" class="st0" d="M16.2,81.3H3.8V68.9h12.4L16.2,81.3L16.2,81.3z"/> + </g> + </g> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/email.b67ceff2.svg b/extensions/harvester/1.5.0-dev/plugin/img/email.b67ceff2.svg new file mode 100644 index 00000000..94651373 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/email.b67ceff2.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 51 51" style="enable-background:new 0 0 51 51;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#3D98D3;} +</style> +<g> + <path class="st0" d="M7.5491395,26.9503384c0-10.7451725,7.6761146-18.2928314,19.0600967-18.2928314 + c10.4466,0,16.8416233,5.3725863,16.8416233,14.7533474c0,6.4384232-2.8989372,11.1288033-8.2281265,11.1288033 + c-1.9615593,0-3.9231167-1.0241776-4.6070576-2.6437626c-1.3644123,1.7046452-3.6662045,2.6437626-6.1832485,2.6437626 + c-4.3918076,0-7.8010998-2.3451881-7.8010998-7.6327171c0-5.7978802,3.7946606-10.2330837,9.9779091-10.2330837 + c2.4302483,0,5.2423935,0.597147,7.1206303,1.6213226l-0.5554886,9.7209969 + c-0.1284561,1.7897034,0.725605,2.6854248,1.919899,2.6854248c2.2601318,0,3.0690575-2.942337,3.0690575-7.2907467 + c0-6.9505119-3.7529984-10.1480255-11.5540981-10.1480255c-8.1448059,0-13.7725687,4.9889545-13.7725687,13.6875095 + c0,7.2907467,4.4751291,10.9152889,12.4914789,10.9152889c2.4753838,0,5.2042046-0.2985725,7.676115-1.1526337v4.3918076 + c-2.2601318,0.8540611-4.777174,1.2376938-7.676115,1.2376938C14.7114305,42.342495,7.5491395,36.9265099,7.5491395,26.9503384z + M28.442337,27.1204548l0.3402348-5.8412762c-0.597147-0.2551765-1.4477329-0.3836327-2.3017921-0.3836327 + c-2.6455002,0-4.4786015,2.34519-4.4786015,5.6277618c0,2.5587063,1.0241756,3.7946606,2.9440727,3.7946606 + C27.2480431,30.3179684,28.3138809,28.8684978,28.442337,27.1204548z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/equinix-black.0870820e.svg b/extensions/harvester/1.5.0-dev/plugin/img/equinix-black.0870820e.svg new file mode 100644 index 00000000..40031dc9 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/equinix-black.0870820e.svg @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<g> + <polygon points="93.8290787,32.9545593 93.8290787,62.1403198 87.1643906,64.4724274 87.1643906,30.6325607 67.1645889,23.6511593 + 67.1645889,71.4538269 60.4970169,73.7763138 60.4970169,21.3180885 50.5,17.8293133 40.5000992,21.3180885 40.5000992,73.7763138 + 33.8359032,71.4538269 33.8359032,23.6511593 13.8356133,30.6325607 13.8356133,64.4724274 7.1714168,62.1403198 + 7.1714168,32.9545593 0.5,35.287632 0.5,66.8786621 20.5036583,73.8600616 20.5036583,35.3641624 27.1712265,33.0383148 + 27.1712265,76.1859131 47.1676674,83.1706848 47.1676674,26.0569115 50.5,24.8906174 53.8323479,26.0569115 53.8323479,83.1706848 + 73.8359985,76.1859131 73.8359985,33.0383148 80.5001984,35.3641624 80.5001984,73.8600616 100.5,66.8786621 100.5,35.287632 "/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/equinix.c112c186.svg b/extensions/harvester/1.5.0-dev/plugin/img/equinix.c112c186.svg new file mode 100644 index 00000000..d54b4d48 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/equinix.c112c186.svg @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#FF0000;} +</style> +<g> + <polygon class="st0" points="93.8,33 93.8,62.1 87.2,64.5 87.2,30.6 67.2,23.7 67.2,71.5 60.5,73.8 60.5,21.3 50.5,17.8 40.5,21.3 + 40.5,73.8 33.8,71.5 33.8,23.7 13.8,30.6 13.8,64.5 7.2,62.1 7.2,33 0.5,35.3 0.5,66.9 20.5,73.9 20.5,35.4 27.2,33 27.2,76.2 + 47.2,83.2 47.2,26.1 50.5,24.9 53.8,26.1 53.8,83.2 73.8,76.2 73.8,33 80.5,35.4 80.5,73.9 100.5,66.9 100.5,35.3 "/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/error-desert-landscape.2a9d44f4.svg b/extensions/harvester/1.5.0-dev/plugin/img/error-desert-landscape.2a9d44f4.svg new file mode 100644 index 00000000..7d5d527d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/error-desert-landscape.2a9d44f4.svg @@ -0,0 +1,217 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 900 300" style="enable-background:new 0 0 900 300;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#D7C0AD;} + .st1{fill:#DE8B59;} + .st2{fill:#BA3700;} + .st3{fill:#D86111;} + .st4{fill:#FF6778;} + .st5{fill:#A43E86;} + .st6{fill:#771774;} + .st7{fill:#FFA694;} +</style> +<path class="st0" d="M540,174.2c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c1.3,0.7,2.7,1.5,4.5,1.9l-0.4-1.9 + c-1.2-0.4-2.3-1-3.4-1.6c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-3.4,0-5.5-0.7-7.3-1.5 + c-0.2,0.5-0.4,1.1-0.6,1.6c1.9,0.9,4.2,1.7,7.9,1.7C535.1,176.8,537.6,175.5,540,174.2z"/> +<path class="st1" d="M593.8,126.3l-114.9,18.6c-0.5-3-1.5-6-2.9-8.6l103.6-53.2c-7.3-14.3-15.5-25.4-26.9-36.7L470.7,129 + c-2.1-2.1-4.6-3.9-7.3-5.3l52.6-104c-14.3-7.3-27.5-11.5-43.3-13.9l-17.8,115.2c-1.5-0.2-2.9-0.4-4.5-0.4s-3.1,0.1-4.5,0.4 + l-18.6-115c-15.8,2.6-28.9,6.9-43.2,14.2l53.2,103.6c-2.7,1.4-5.2,3.2-7.3,5.3l-82.7-82c-11.3,11.4-19.3,22.5-26.6,36.9l103.9,52.5 + c-1.4,2.7-2.4,5.6-2.8,8.6l-114.9-17.8c-1.2,7.8-1.8,15.2-1.8,22.5h116.4H449h0.9h0.2h0.1h0.1h0.1h0.1h0.1h0.2h0.9h27.7h116.5 + C595.8,142.1,595.2,134.5,593.8,126.3z"/> +<g> + <path class="st2" d="M550.5,149.8c20.3-6.8,33.2-12.9,46.9-42.1h48.8c0,0,14.3,33.9,40.7,42.1"/> + <path class="st3" d="M543.5,149.8c20.3-6.8,33.2-12.9,46.9-42.1h48.8c0,0,14.3,33.9,40.7,42.1"/> +</g> +<g> + <polygon class="st2" points="200.1,149.8 256.3,93.6 312.4,149.8 "/> + <polygon class="st0" points="256.3,93.6 256.3,149.8 312.4,149.8 "/> +</g> +<g> + <polygon class="st3" points="284.3,149.8 312.2,121.8 340.1,149.8 "/> + <polygon class="st0" points="312.2,121.8 312.2,149.8 340.1,149.8 "/> +</g> +<g> + <polygon class="st3" points="163.3,149.8 200.2,112.8 237.1,149.8 "/> + <polygon class="st0" points="200.2,112.8 200.2,149.8 237.1,149.8 "/> +</g> +<g> + <polygon class="st4" points="487.3,199.3 468.3,199.3 468.3,194.8 487.3,194.8 484.5,197 "/> + <g> + <path class="st5" d="M428.9,252.7v-55c0-5.4,4.4-9.8,9.8-9.8l0,0c5.4,0,9.8,4.4,9.8,9.8v55c0,5.4-4.4,9.8-9.8,9.8l0,0 + C433.3,262.4,428.9,258.1,428.9,252.7z"/> + <g> + <path class="st6" d="M441.5,259.7l1.7,1.7c3.1-1.6,5.3-4.9,5.3-8.6l0,0l0,0v-13.8l0,0V225l0,0v-13.8l0,0v-13.5c0-0.2,0-0.4,0-0.5 + l-7,7l7,7l-7,7l7,7l-7,7l7,7l-7,7l7,7L441.5,259.7z"/> + <path class="st1" d="M441.5,190.2l7,7c-0.3-3.6-2.5-6.8-5.6-8.2L441.5,190.2z"/> + </g> + </g> + <path class="st5" d="M491.5,289.9h-82.9c-5.4,0-9.8-4.4-9.8-9.8l0,0c0-5.4,4.4-9.8,9.8-9.8h82.9c5.4,0,9.8,4.4,9.8,9.8l0,0 + C501.2,285.6,496.8,289.9,491.5,289.9z"/> + <path class="st5" d="M477.5,250.9h-55c-5.4,0-9.8-4.4-9.8-9.8l0,0c0-5.4,4.4-9.8,9.8-9.8h55c5.4,0,9.8,4.4,9.8,9.8l0,0 + C487.3,246.5,482.9,250.9,477.5,250.9z"/> + <path class="st5" d="M484.5,270.4h-69c-5.4,0-9.8-4.4-9.8-9.8l0,0c0-5.4,4.4-9.8,9.8-9.8h69c5.4,0,9.8,4.4,9.8,9.8l0,0 + C494.3,266.1,489.9,270.4,484.5,270.4z"/> + <g> + <path class="st6" d="M415,277.4l7-7l7,7l7-7l7,7l7-7l7,7l7-7l7,7l7-7l7,7l7-7h-14l0,0h-13.8l0,0h-13.8l0,0h-13.8l0,0h-13.8l0,0 + h-13.3c-0.2,0-0.4,0-0.5,0L415,277.4z"/> + <path class="st6" d="M500.1,275.7c-1.6-3.1-4.9-5.3-8.6-5.3l7,7L500.1,275.7z"/> + <path class="st6" d="M399.8,276.1l1.3,1.3l7-7C404.4,270.7,401.2,273,399.8,276.1z"/> + </g> + <path class="st6" d="M415,257.9l7-7l7,7l7-7l7,7l7-7l7,7l7-7l7,7l7-7l7,7l5.4-5.4c-1.5-1.1-3.4-1.6-5.4-1.6h-7.1l0,0h-13.8l0,0 + h-13.8l0,0h-13.8l0,0h-13.8l0,0h-6.4c-2.1,0-4.1,0.7-5.6,1.9L415,257.9z"/> + <g> + <path class="st6" d="M484.5,238.4l1.7-1.7c-1.6-3.1-4.9-5.3-8.6-5.3l0,0l0,0h-13.8l0,0h-13.8l0,0H436l0,0h-13.3 + c-0.2,0-0.4,0-0.5,0l7,7l7-7l7,7l7-7l7,7l7-7l7,7l7-7L484.5,238.4z"/> + <path class="st6" d="M415,238.4l7-7c-3.6,0.3-6.8,2.5-8.2,5.6L415,238.4z"/> + </g> + <path class="st5" d="M471.2,197c0,8.3-18.9,15.1-27.2,15.1s-15.1-6.8-15.1-15.1c0-8.3,6.8-15.1,15.1-15.1 + C452.3,182,471.2,188.8,471.2,197z"/> + <circle class="st6" cx="448.5" cy="197" r="3.4"/> + <path class="st6" d="M473.6,231.4c0-3.6,2-6.8,4.9-8.6c-1.4-0.8-3.1-1.3-4.9-1.3c-5.4,0-9.8,4.4-9.8,9.8"/> + <g> + <path class="st5" d="M464.7,227.5c-0.1,0.2-0.2,0.4-0.3,0.6l7,3.4h1.6L464.7,227.5z"/> + <path class="st5" d="M465.9,225.5c-0.2,0.2-0.3,0.4-0.4,0.6l8.2,4c0-0.3,0.1-0.4,0.1-0.7L465.9,225.5z"/> + <path class="st5" d="M466.4,231.4h1.6l-4-1.9c-0.1,0.3-0.1,0.4-0.1,0.7L466.4,231.4z"/> + <path class="st5" d="M467.6,223.9c-0.2,0.2-0.4,0.4-0.5,0.5l7.3,3.5c0.1-0.2,0.2-0.4,0.3-0.6L467.6,223.9z"/> + <path class="st5" d="M473.3,221.7c-0.4,0-0.9,0.1-1.3,0.2l4.9,2.4c0.2-0.2,0.4-0.4,0.6-0.5L473.3,221.7z"/> + <path class="st5" d="M469.8,222.4c-0.3,0.1-0.5,0.3-0.8,0.4l6.4,3.1c0.2-0.2,0.3-0.4,0.4-0.5L469.8,222.4z"/> + </g> +</g> +<polygon class="st7" points="84.5,254.5 96.1,246.8 93.4,233 107.1,235.7 114.9,224.1 122.7,235.7 136.4,233 133.7,246.8 + 145.3,254.5 "/> +<polygon class="st7" points="522.2,224.5 533.8,216.8 531.1,203 544.8,205.7 552.6,194.1 560.4,205.7 574.1,203 571.4,216.8 + 583.1,224.5 "/> +<polygon class="st7" points="582.4,185 589.9,180 588,171.2 596.8,173 601.9,165.5 606.8,173 615.6,171.2 613.9,180 621.4,185 "/> +<path class="st6" d="M729.2,264.2V138.5c0-4.1,3.4-7.6,7.6-7.6c4.1,0,7.6,3.4,7.6,7.6v125.8L729.2,264.2L729.2,264.2z"/> +<path class="st6" d="M741.6,224.2c-3.1,0-6-1.9-7.1-5c-1.4-4,0.6-8.3,4.6-9.7c5.7-2.1,11.9-5.7,13.1-7.8v-29.5 + c0-4.1,3.4-7.6,7.6-7.6c4.1,0,7.6,3.4,7.6,7.6v29.9c0,6.2-4.3,11.8-12.9,16.8c-5,2.9-10.1,4.8-10.3,4.9 + C743.3,224,742.5,224.2,741.6,224.2z"/> +<path class="st6" d="M729.9,203.1c-0.9,0-1.7-0.2-2.6-0.4c-5.7-2-19.1-7.9-19.1-18.3v-23.1c0-4.1,3.4-7.6,7.6-7.6s7.6,3.4,7.6,7.6 + v22.1c1.3,1.4,5.5,3.7,9,5c3.9,1.4,6,5.7,4.5,9.7C735.9,201.2,733,203.1,729.9,203.1z"/> +<path class="st6" d="M207.3,224.2v-52.3c0-1.8-1.4-3.2-3.2-3.2s-3.2,1.4-3.2,3.2v52.3H207.3z"/> +<path class="st6" d="M202.1,207.5c1.3,0,2.5-0.8,3-2.1c0.6-1.7-0.3-3.4-1.9-4.1c-2.4-0.9-4.9-2.4-5.5-3.3v-12.3 + c0-1.8-1.4-3.2-3.2-3.2c-1.8,0-3.2,1.4-3.2,3.2v12.4c0,2.6,1.8,4.9,5.4,7c2.1,1.2,4.2,1.9,4.3,2 + C201.4,207.4,201.8,207.5,202.1,207.5z"/> +<path class="st6" d="M207,198.7c0.4,0,0.7-0.1,1.1-0.2c2.4-0.9,7.9-3.4,7.9-7.6v-9.6c0-1.8-1.4-3.2-3.2-3.2s-3.2,1.4-3.2,3.2v9.2 + c-0.5,0.6-2.3,1.5-3.8,2.1c-1.6,0.6-2.5,2.4-1.9,4.1C204.5,197.9,205.7,198.7,207,198.7z"/> +<g> + <circle class="st6" cx="48.4" cy="200.3" r="7.6"/> + <path class="st6" d="M71.8,207.9c-4.1,0-7.6-3.4-7.6-7.6s3.4-7.6,7.6-7.6c4.1,0,7.6,3.4,7.6,7.6S76,207.9,71.8,207.9z"/> + <path class="st7" d="M88.9,190.2l1.6-10.1c0-5.6-4.5-10.1-10.1-10.1H51c-5.6,0-10.1,4.5-10.1,10.1l1.6,10.1"/> + <path class="st5" d="M61,180.2c0-5.6-4.5-10.1-10.1-10.1s-10.1,4.5-10.1,10.1l1.6,10.1h17L61,180.2z"/> + <path class="st6" d="M47.5,190.2h6.9l1.3-10.4c-0.2-2.5-2.3-4.4-4.8-4.4c-2.6,0-4.6,1.9-4.8,4.4L47.5,190.2z"/> + <rect x="42.4" y="190.2" class="st6" width="46.5" height="10.1"/> + <rect x="59.4" y="190.2" class="st4" width="29.5" height="10.1"/> + <circle class="st5" cx="59.4" cy="200.3" r="7.6"/> + <circle class="st6" cx="59.4" cy="200.3" r="4.9"/> + <path class="st5" d="M84,207.9c-4.1,0-7.6-3.4-7.6-7.6s3.4-7.6,7.6-7.6c4.1,0,7.6,3.4,7.6,7.6S88.1,207.9,84,207.9z"/> + <circle class="st6" cx="84" cy="200.3" r="4.9"/> + <g> + <path class="st5" d="M79.5,191L79.5,191c-0.4-0.1-0.5-0.4-0.5-0.6l1.7-10.4c0-5.5-4.5-9.9-9.9-9.9c-0.3,0-0.5-0.3-0.5-0.5 + c0-0.3,0.3-0.5,0.5-0.5c6.1,0,10.9,4.9,10.9,10.9v0.1L80,190.5C80,190.8,79.7,191,79.5,191z"/> + <path class="st5" d="M69.3,191C69.3,191,69.2,191,69.3,191c-0.4-0.1-0.5-0.4-0.5-0.6l1.7-10.4c0-5.5-4.5-9.9-9.9-9.9 + c-0.3,0-0.5-0.3-0.5-0.5c0-0.3,0.3-0.5,0.5-0.5c6.1,0,10.9,4.9,10.9,10.9v0.1l-1.7,10.4C69.7,190.8,69.6,191,69.3,191z"/> + </g> +</g> +<g> + <path class="st3" d="M737.4,242.6h-35.6c-4.9,0-8.8-4-8.8-8.8V229c0-1.1,0.8-1.9,1.9-1.9s1.9,0.8,1.9,1.9v4.8 + c0,2.8,2.3,5.1,5.1,5.1h35.6c2.8,0,5.1-2.3,5.1-5.1V229c0-1.1,0.8-1.9,1.9-1.9s1.9,0.8,1.9,1.9v4.8 + C746.3,238.6,742.3,242.6,737.4,242.6z"/> + <path class="st0" d="M719.6,235c-4,0-7.5,2-9.6,5l0,0l-7.9,10.1h-10.2c-2.6,0-4.8,2.1-4.8,4.8v3.2c0,2.6,2.1,4.8,4.8,4.8h1.7v0.6 + c0,0.4,0.4,0.8,0.8,0.8h1.2c0.4,0,0.8-0.4,0.8-0.8v-0.6h0.3v0.6c0,0.4,0.4,0.8,0.8,0.8h1.2c0.4,0,0.8-0.4,0.8-0.8v-0.6h0.3v0.6 + c0,0.4,0.4,0.8,0.8,0.8h1.2c0.4,0,0.8-0.4,0.8-0.8v-0.6h0.3v0.6c0,0.4,0.4,0.8,0.8,0.8h1.2c0.4,0,0.8-0.4,0.8-0.8v-0.6h0.3v0.6 + c0,0.4,0.4,0.8,0.8,0.8h1.2c0.4,0,0.8-0.4,0.8-0.8v-0.6h7.8c1.8,0,3.3-1,4.1-2.4l0,0l1.7-2.3c5.3-1.1,9.3-5.8,9.3-11.5 + C731.3,240.3,726,235,719.6,235z M689.7,258.2H688V255c0-2.2,1.8-4,4-4h1.7v3.3C693.6,256.5,691.9,258.2,689.7,258.2z M717.5,250.5 + c-2.1,0-3.8-1.7-3.8-3.8s1.7-3.8,3.8-3.8s3.8,1.7,3.8,3.8C721.3,248.8,719.6,250.5,717.5,250.5z"/> +</g> +<path class="st0" d="M601.9,282.5c4.9,0,7.4-1.3,9.8-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.3,1.2,4.6,2.5,8.9,2.6 + l-0.4-1.7c-3.7-0.2-5.6-1.2-7.8-2.4c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6c-0.6,0-1.1,0-1.7,0.1l-3.4,1.9c0.1,0.1,0.2,0.2,0.3,0.4c1.3-0.4,2.8-0.6,4.8-0.6c4.5,0,6.7,1.1,9.1,2.4 + C594.4,281.2,597,282.5,601.9,282.5z"/> +<path class="st0" d="M822.9,176.7c4.9,0,7.4-1.3,9.8-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.3,1.2,4.6,2.5,8.9,2.6 + l-0.4-1.7c-3.7-0.2-5.6-1.2-7.8-2.4c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6c-0.6,0-1.1,0-1.7,0.1l-3.4,1.9c0.1,0.1,0.2,0.2,0.3,0.4c1.3-0.4,2.8-0.6,4.8-0.6c4.5,0,6.7,1.1,9.1,2.4 + C815.4,175.4,817.9,176.7,822.9,176.7z"/> +<path class="st0" d="M289.7,277.6c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6c2.1-1.1,4.1-2.2,7.9-2.4l-0.4-1.7 + c-4,0.3-6.2,1.4-8.3,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6V277.6L289.7,277.6z"/> +<path class="st0" d="M859.6,236.9c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6 + c-1.6,0-3,0.2-4.1,0.4c0,0.5-0.1,1.1-0.2,1.8c1.1-0.3,2.6-0.4,4.3-0.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6 + c4.9,0,7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6c4.9,0,7.4-1.3,9.9-2.6 + c2.3-1.2,4.5-2.4,9.1-2.4V236.9z"/> +<path class="st0" d="M192.7,238.5c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6c4.9,0,7.4-1.3,9.9-2.6c2.2-1.1,4.3-2.3,8.5-2.4 + c0.6-0.6,1.1-1.1,1.9-1.7c-0.4,0-0.8,0-1.2,0c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6 + c-2.9,0-4.9,0.4-6.6,1.1l-0.4,2c1.8-0.8,3.8-1.4,7.1-1.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6c4.9,0,7.4-1.3,9.9-2.6 + C186,239.7,188.2,238.5,192.7,238.5z"/> +<path class="st0" d="M271.1,172.7c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6c-0.7,0-1.3,0-1.9,0.1v1.7c0.6-0.1,1.2-0.1,1.9-0.1c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6 + s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4"/> +<path class="st0" d="M633,171.7c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.8-2.6c2.3-1.2,4.5-2.4,9.1-2.4 + c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6c3.4,0,5.6-0.6,7.3-1.4c-0.2-0.5-0.4-1.1-0.5-1.6c-1.7,0.8-3.7,1.3-6.9,1.3 + c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6"/> +<path class="st0" d="M164.8,206.1c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4 + c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6c-0.3,0-0.5,0-0.9,0l1.1,1.7c4.3,0.1,6.5,1.2,8.8,2.4c2.4,1.3,4.9,2.6,9.9,2.6 + c4.9,0,7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6c3.8,0,6.1-0.8,8.1-1.8 + c-0.4-0.4-0.6-1-0.9-1.4c-1.8,0.9-3.9,1.5-7.2,1.5C169.3,208.5,167.1,207.3,164.8,206.1z"/> +<path class="st0" d="M416.8,170c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6 + s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6 + c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6c-0.3,0.1-0.5,0.3-0.7,0.4v1.9 + c0.5-0.3,1.1-0.5,1.5-0.8c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6c4.9,0,7.4-1.3,9.9-2.6 + c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4 + c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.8-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4 + c0.4,0.2,0.8,0.4,1.1,0.6c0.2-0.5,0.4-1.1,0.6-1.6c-0.4-0.2-0.6-0.4-1-0.5C424.2,171.3,421.7,170,416.8,170z"/> +<path class="st0" d="M670.8,238.5c1.5,0,2.7,0.2,3.9,0.4v-0.6c0-0.4,0-0.7,0-1.1c-1.1-0.2-2.4-0.4-3.9-0.4c-4.9,0-7.4,1.3-9.9,2.6 + c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-0.7-0.4-1.4-0.7-2.1-1.1l-1.5,1.2c1,0.4,1.9,0.9,2.8,1.3 + c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.8-2.6C664,239.6,666.2,238.5,670.8,238.5z"/> +<path class="st0" d="M108.7,277.6c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6c4.9,0,7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4 + s6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.8,2.6c4.9,0,7.4-1.3,9.8-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4 + c2.4,1.3,4.9,2.6,9.9,2.6c4.9,0,7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6 + s7.4-1.3,9.9-2.6c1.9-1.1,3.8-2,7-2.3l0.8-1.8c-4.1,0.2-6.4,1.4-8.6,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6 + s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.8-2.6c-4.9,0-7.4,1.3-9.8,2.6 + c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6L108.7,277.6L108.7,277.6z"/> +<path class="st0" d="M498.2,240.9c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6 + c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4 + c4.5,0,6.7,1.1,9.1,2.4l0.8-1.5c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6 + s-7.4,1.3-9.9,2.6"/> +<path class="st0" d="M599,207.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6 + c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4l0.8-1.5c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4 + c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6L599,207.6z"/> +<path class="st0" d="M790.9,207.5c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4v-1.7c-4.9,0-7.4,1.3-9.9,2.6 + c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4"/> +<path class="st0" d="M88.3,278.5c-2.4-1.3-4.9-2.6-9.8-2.6c-4.9,0-7.4,1.3-9.8,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6v1.7c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4 + s6.7,1.1,9.1,2.4"/> +<path class="st0" d="M271.2,240.8c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6 + c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4 + c4.5,0,6.7,1.1,9.1,2.4c0.1,0.1,0.3,0.1,0.4,0.2l1.5-1.1c-0.4-0.2-0.7-0.4-1.1-0.5c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6 + c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4 + c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6"/> +<path class="st0" d="M380.8,206.1c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4 + c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.8-2.6 + c-4.9,0-7.4,1.3-9.8,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6v1.7c4.5,0,6.7,1.1,9.1,2.4 + c2.4,1.3,4.9,2.6,9.9,2.6c4.9,0,7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.6,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.8,2.6 + c4.9,0,7.4-1.3,9.8-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6 + c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4"/> +<path class="st0" d="M173.8,175.1c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6 + c-2.3,1.2-4.5,2.4-9.1,2.4c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6c-1.5,0.8-2.9,1.6-5,2 + c0.2,0.5,0.3,1.1,0.4,1.7c2.3-0.5,3.9-1.3,5.5-2.2c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6 + s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6c0.3-0.2,0.6-0.4,0.9-0.4 + c1.1-1,2.5-1.8,3.9-2.4c0-0.3,0.1-0.6,0.1-0.9c-2.4,0.5-4,1.3-5.6,2.2C180.5,174,178.3,175.1,173.8,175.1z"/> +<path class="st0" d="M780.7,280.8c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6s-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4 + c-4.5,0-6.7-1.1-9.1-2.4c-2.4-1.3-4.9-2.6-9.9-2.6c-4.9,0-7.4,1.3-9.9,2.6c-2.3,1.2-4.5,2.4-9.1,2.4c-2.7,0-4.6-0.4-6.2-1.1 + l-0.4,1.7c1.7,0.6,3.7,1.1,6.5,1.1c4.9,0,7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6 + s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4c4.5,0,6.7,1.1,9.1,2.4c2.4,1.3,4.9,2.6,9.9,2.6s7.4-1.3,9.9-2.6c2.3-1.2,4.5-2.4,9.1-2.4 + v-1.7c-4.9,0-7.4,1.3-9.9,2.6C787.4,279.7,785.2,280.8,780.7,280.8z"/> +<g> + <path class="st0" d="M482.4,74.6c1.5,0,3,0.3,4.3,0.9c2.1-5,7.1-8.5,12.9-8.5c1.5,0,2.9,0.2,4.2,0.7c2.3-9.7,11-17,21.5-17 + c10.5,0,19.3,7.4,21.5,17.2c1.5-0.5,3.1-0.8,4.8-0.8c7.7,0,13.9,6.2,13.9,13.9H473C474.5,77.3,478.1,74.6,482.4,74.6z"/> + <path class="st0" d="M417.6,93.8c-1.8,0-3.5,0.4-5,1.1c-2.5-5.9-8.3-10-15.1-10c-1.7,0-3.4,0.3-5,0.8c-2.7-11.5-13-20-25.3-20 + c-12.3,0-22.7,8.6-25.3,20.2c-1.8-0.6-3.7-1-5.6-1c-9,0-16.4,7.3-16.4,16.4h108.6C426.9,96.9,422.7,93.8,417.6,93.8z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/exoscale.af115826.svg b/extensions/harvester/1.5.0-dev/plugin/img/exoscale.af115826.svg new file mode 100644 index 00000000..f3b1831b --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/exoscale.af115826.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 66 57" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round"><use xlink:href="#A" x=".5" y=".5"/><symbol id="A" overflow="visible"><path d="M32 0L0 55.426h4.44L32 7.963v7.8L9.033 55.426h4.593L32 23.733v7.962l-13.78 23.73h4.593L32 39.656v7.8l-4.593 7.962H64z" stroke="none" fill="#da291c" fill-rule="nonzero"/></symbol></svg> \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/favicon.20240f8a.png b/extensions/harvester/1.5.0-dev/plugin/img/favicon.20240f8a.png new file mode 100644 index 00000000..d2b5eb36 Binary files /dev/null and b/extensions/harvester/1.5.0-dev/plugin/img/favicon.20240f8a.png differ diff --git a/extensions/harvester/1.5.0-dev/plugin/img/freeipa.ef110cc0.svg b/extensions/harvester/1.5.0-dev/plugin/img/freeipa.ef110cc0.svg new file mode 100644 index 00000000..111085ee --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/freeipa.ef110cc0.svg @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 70 70" style="enable-background:new 0 0 70 70;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#78BF40;} + .st1{fill:#00689E;} +</style> +<g> + <path id="_120401272" class="st0" d="M61.8,59.4C61.8,59.4,61.6,59.4,61.8,59.4C61.6,59.4,61.8,59.4,61.8,59.4z M61.6,59.4 + C61.6,59.4,61.4,59.4,61.6,59.4C61.4,59.4,61.6,59.4,61.6,59.4z M61.4,59.6c0,0-0.2,0-0.2,0.2C61.2,59.6,61.2,59.6,61.4,59.6z + M44.6,47.1L35.5,38c0,0,0,0,0-0.2C38.4,40.9,41.6,44.1,44.6,47.1z M35.9,31.5l6.8-6.8l0,0L35.9,31.5L35.9,31.5z M42.4,24.7 + l-8.5-8.5c-1.1-1.1-2.6-0.9-3.4,0l-17,17c-1.1,1.1-0.9,2.6,0,3.4l1.5,1.5l-6.6-6.6l0,0L29,11.3c1.5-1.5,4.5-1.9,6.4-0.2L56.3,32 + c0.6,0.6,1.1,1.7,1.1,2.8c0-1.1-0.4-1.9-1.1-2.8L45.9,21.5L42.4,24.7L42.4,24.7z M30.7,53.7l0.2,0.2c0.9,0.6,2.1,0.6,3-0.4l5.1-5.1 + l3.4,3.4l-6.8,6.8c-2.3,2.3-5.3,1.5-6.8,0L8.6,38.3c-0.9-0.9-1.5-2.1-1.5-3.2c0,1.3,0.6,2.3,1.5,3.2l20.2,20.2 + c1.5,1.5,4.5,2.3,6.8,0C35.6,58.5,30.7,53.7,30.7,53.7z M7.3,34.9v-0.2C7.3,34.9,7.3,34.9,7.3,34.9z M49.3,44.9l7,7l0,0 + C53.9,49.6,51.6,47.3,49.3,44.9L49.3,44.9z M45.9,28.1l5.1,5.1c0.4,0.4,0.6,0.6,0.6,1.1c0-0.4-0.4-0.9-0.6-1.1L45.9,28.1z M48.4,39 + l-0.9,0.9l0,0l0,0L48.4,39z"/> + <path class="st1" d="M62.9,58.5C58.4,54,54,49.6,49.5,44.9l6.8-6.8c1.9-1.9,1.7-4.7,0.2-6.4L46.1,21.3l-3.4,3.4l0,0l-6.8,6.8 + c-1.7,1.7-1.7,4.5-0.4,6.2c6.8,6.8,13.8,13.8,20.6,20.6C58.2,60.7,61.4,60,62.9,58.5L62.9,58.5z M47.6,40c-1.1,1.1-2.6,0.9-3.4,0 + l-3.4-3.4c-0.9-0.9-1.1-2.3,0-3.4l5.1-5.1l5.1,5.1c0.9,0.9,1.1,2.3,0,3.4C49.9,37.7,48.8,38.8,47.6,40C47.6,39.8,47.6,40,47.6,40z" + /> + <path id="_120400048" class="st1" d="M35.6,58.5c-2.3,2.3-5.3,1.5-6.8,0L8.6,38.3c-1.9-1.9-1.9-4.7,0-6.8l13.2,13.2l8.7,8.7l0,0 + L35.6,58.5L35.6,58.5z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/gcp.f7a1243c.svg b/extensions/harvester/1.5.0-dev/plugin/img/gcp.f7a1243c.svg new file mode 100644 index 00000000..d8ba0b39 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/gcp.f7a1243c.svg @@ -0,0 +1,6 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="256" height="206" viewBox="0 0 256 206"> + <path fill="#EA4335" d="M170.2517,56.8186 L192.5047,34.5656 L193.9877,25.1956 C153.4367,-11.6774 88.9757,-7.4964 52.4207,33.9196 C42.2667,45.4226 34.7337,59.7636 30.7167,74.5726 L38.6867,73.4496 L83.1917,66.1106 L86.6277,62.5966 C106.4247,40.8546 139.8977,37.9296 162.7557,56.4286 L170.2517,56.8186 Z"/> + <path fill="#4285F4" d="M224.2048,73.9182 C219.0898,55.0822 208.5888,38.1492 193.9878,25.1962 L162.7558,56.4282 C175.9438,67.2042 183.4568,83.4382 183.1348,100.4652 L183.1348,106.0092 C198.4858,106.0092 210.9318,118.4542 210.9318,133.8052 C210.9318,149.1572 198.4858,161.2902 183.1348,161.2902 L127.4638,161.2902 L121.9978,167.2242 L121.9978,200.5642 L127.4638,205.7952 L183.1348,205.7952 C223.0648,206.1062 255.6868,174.3012 255.9978,134.3712 C256.1858,110.1682 244.2528,87.4782 224.2048,73.9182"/> + <path fill="#34A853" d="M71.8704,205.7957 L127.4634,205.7957 L127.4634,161.2897 L71.8704,161.2897 C67.9094,161.2887 64.0734,160.4377 60.4714,158.7917 L52.5844,161.2117 L30.1754,183.4647 L28.2234,191.0387 C40.7904,200.5277 56.1234,205.8637 71.8704,205.7957"/> + <path fill="#FBBC05" d="M71.8704,61.4250342 C31.9394,61.6635 -0.2366,94.2275 0.0014,134.1575 C0.1344,156.4555 10.5484,177.4455 28.2234,191.0385 L60.4714,158.7915 C46.4804,152.4705 40.2634,136.0055 46.5844,122.0155 C52.9044,108.0255 69.3704,101.8085 83.3594,108.1285 C89.5244,110.9135 94.4614,115.8515 97.2464,122.0155 L129.4944,89.7685 C115.7734,71.8315 94.4534,61.3445 71.8704,61.4250342"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/generic-catalog.1842a50e.svg b/extensions/harvester/1.5.0-dev/plugin/img/generic-catalog.1842a50e.svg new file mode 100644 index 00000000..474f3767 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/generic-catalog.1842a50e.svg @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 640 640" style="enable-background:new 0 0 640 640;" xml:space="preserve"> +<path d="M432.4,135.1c38,0,76,5.9,112.6,17.8c0,98.2,0,196.4,0,294.6c-36.6-11.9-74.6-17.8-112.6-17.8s-76,5.9-112.6,17.8l0,0 + c-36.6-11.9-74.6-17.8-112.6-17.8s-76,5.9-112.6,17.8c0-98.2,0-196.4,0-294.6c36.6-11.9,74.6-17.8,112.6-17.8s76,5.9,112.6,17.8l0,0 + C356.4,141.1,394.4,135.1,432.4,135.1z M432.4,105.1c-38.2,0-76.1,5.5-112.6,16.4c-36.6-10.9-74.4-16.4-112.6-16.4 + c-41.5,0-82.5,6.5-121.9,19.3l-20.7,6.7v357.8l39.3-12.8c33.4-10.9,68.2-16.4,103.4-16.4s69.9,5.5,103.4,16.4l9.3,3l9.3-3 + c33.4-10.9,68.2-16.4,103.4-16.4s69.9,5.5,103.4,16.4l39.3,12.8V131.2l-20.7-6.7C514.9,111.6,473.9,105.1,432.4,105.1L432.4,105.1 + L432.4,105.1z"/> +<path d="M320,534.9l-3.9-1.3c-35.1-11.4-71.7-17.2-108.7-17.2s-73.6,5.8-108.8,17.2l-7.7-23.8c37.7-12.2,76.9-18.5,116.5-18.5 + c38.3,0,76.1,5.8,112.6,17.2c36.5-11.4,74.4-17.2,112.6-17.2c39.6,0,78.8,6.2,116.5,18.5l-7.7,23.8c-35.2-11.4-71.8-17.2-108.8-17.2 + s-73.6,5.8-108.8,17.2L320,534.9L320,534.9z"/> +<path d="M307.5,148h25v311h-25V148z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/github.9c864145.svg b/extensions/harvester/1.5.0-dev/plugin/img/github.9c864145.svg new file mode 100644 index 00000000..9002b8f8 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/github.9c864145.svg @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#181616;} +</style> +<path class="st0" d="M30,5C15.9,4.9,4.4,16.4,4.3,30.5c0,11.1,7.1,21,17.6,24.4c0.7,0.3,1.4-0.1,1.7-0.7c0.1-0.2,0.1-0.3,0.1-0.5 + v-4.4c-7.1,1.6-8.6-3.4-8.6-3.4c-1.2-3-2.8-3.7-2.8-3.7c-2.4-1.6,0.2-1.6,0.2-1.6c1.6,0.2,3.1,1.2,3.9,2.6c2.3,3.9,6,2.8,7.4,2.1 + c0.1-1.3,0.7-2.5,1.6-3.4c-5.7-0.6-11.7-2.8-11.7-12.6c0-2.5,0.9-5,2.6-6.9c-0.8-2.2-0.7-4.6,0.2-6.8c0,0,2.1-0.7,7.1,2.6 + c4.2-1.1,8.6-1.1,12.8,0c4.9-3.3,7-2.6,7-2.6c0.9,2.1,1,4.6,0.2,6.8c1.7,1.9,2.7,4.3,2.6,6.9c0,9.8-6,12-11.7,12.6 + c1.2,1.2,1.9,3,1.7,4.7v7c0,0.7,0.5,1.3,1.2,1.3c0.2,0,0.3,0,0.5-0.1c13.4-4.5,20.6-19,16.1-32.4C50.8,12,41,5,30,5z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/gke-black.64bdd882.svg b/extensions/harvester/1.5.0-dev/plugin/img/gke-black.64bdd882.svg new file mode 100644 index 00000000..9868fd65 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/gke-black.64bdd882.svg @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<path d="M98.8,45.4L78.3,9.7c-1.6-2.8-4.5-4.5-7.7-4.6H29.4c-3.2,0-6.1,1.8-7.7,4.6L1.2,45.3c-1.6,2.8-1.6,6.2,0,8.9l20.5,35.9 + c1.6,2.8,4.5,4.6,7.7,4.8h41.1c3.2-0.1,6.2-1.9,7.7-4.8l20.6-35.7C100.4,51.6,100.4,48.2,98.8,45.4z M70.6,60.7 + c0,0.8-0.4,1.5-1.1,1.9L51,73.3c-0.6,0.4-1.4,0.4-2.1,0L30.4,62.6c-0.7-0.4-1.1-1.1-1.1-1.8V39.4c0-0.8,0.4-1.5,1.1-1.9l18.5-10.7 + c0.6-0.4,1.4-0.4,2.1,0l18.5,10.7c0.6,0.3,1.1,1.1,1.1,1.8V60.7z M51,30.9l16,9.3v18.4l-6.4-3.7v-9.8L51,50.5v11l8.5-4.9l6.4,3.7 + l-16,9.3l-16-9.3l6.4-3.7l8.5,4.9v-11l-9.5-5.4v9.8l-6.4,3.7V40.2l16-9.3v7.5l-8.5,4.9l9.5,5.4l9.5-5.4L51,38.4V30.9z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/gke.4c1ecbcd.svg b/extensions/harvester/1.5.0-dev/plugin/img/gke.4c1ecbcd.svg new file mode 100644 index 00000000..e4337c45 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/gke.4c1ecbcd.svg @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{opacity:7.000000e-02;enable-background:new ;} + .st1{fill:#4285F4;} + .st2{fill:#FFFFFF;} +</style> +<g> + <path d="M96.7,44.2L76.8,9.7c-1.5-2.7-4.4-4.4-7.5-4.4H29.6c-3.1,0.1-5.9,1.7-7.5,4.4L2.2,44.2c-1.5,2.7-1.5,6,0,8.7l19.9,34.8 + c1.5,2.7,4.3,4.5,7.5,4.6h39.8c3.1-0.1,6-1.8,7.5-4.6l19.9-34.6C98.2,50.3,98.2,47,96.7,44.2z"/> + <path class="st0" d="M61.7,30.5l-0.4,1.7l-3.1-3.1l-18.9,2.8L26.8,47.2l4.5,4.6l-4-1.1l9.8,17.6l25.9,23.8h6.3 + c3.1-0.1,6-1.8,7.5-4.6L92.1,61L61.7,30.5z"/> + <polygon points="72.1,48.7 61.7,30.5 51.2,48.7 61.7,67 "/> + <polygon points="26.8,50.2 37.2,68.4 58.1,68.4 47.7,50.2 "/> + <polygon points="47.6,47.2 58.2,29.1 37.2,29.1 26.8,47.2 "/> + <path class="st1" d="M98.8,45.4L78.3,9.7c-1.6-2.8-4.5-4.5-7.7-4.6H29.4c-3.2,0-6.1,1.8-7.7,4.6L1.2,45.3c-1.6,2.8-1.6,6.2,0,8.9 + l20.5,35.9c1.6,2.8,4.5,4.6,7.7,4.8h41.1c3.2-0.1,6.2-1.9,7.7-4.8l20.6-35.7C100.4,51.6,100.4,48.2,98.8,45.4z"/> + <path class="st0" d="M70,37.8l-20-8.9L30.8,39.3L30,62.2l32.7,32.7h7.8c3.2-0.1,6.2-1.9,7.7-4.8l16.1-28L70,37.8z"/> + <g id="art"> + <path class="st2" d="M69.5,37.5L51,26.8c-0.7-0.4-1.5-0.4-2.1,0L30.4,37.5c-0.7,0.4-1.1,1.1-1.1,1.9v21.4c0,0.7,0.4,1.4,1.1,1.8 + l18.5,10.7c0.7,0.4,1.5,0.4,2.1,0l18.5-10.7c0.7-0.4,1.1-1.1,1.1-1.9V39.3C70.6,38.6,70.1,37.8,69.5,37.5z M67,58.6l-6.4-3.7v-9.8 + L51,50.5v11l8.5-4.9l6.4,3.7l-16,9.3l-16-9.3l6.4-3.7l8.5,4.9v-11l-9.5-5.4v9.8l-6.4,3.7V40.2l16-9.3v7.5l-8.5,4.9l9.5,5.4 + l9.5-5.4L51,38.4v-7.5l16,9.3L67,58.6z"/> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/google.789cf860.svg b/extensions/harvester/1.5.0-dev/plugin/img/google.789cf860.svg new file mode 100644 index 00000000..318b761d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/google.789cf860.svg @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 52 48" style="enable-background:new 0 0 52 48;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:url(#SVGID_1_);} + .st1{fill:url(#SVGID_2_);} + .st2{fill:url(#SVGID_3_);} +</style> +<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="25.9977" y1="50" x2="25.9977" y2="2" gradientTransform="matrix(1 0 0 -1 0 50)"> + <stop offset="0" style="stop-color:#1A6DFF"/> + <stop offset="1" style="stop-color:#C822FF"/> +</linearGradient> +<path class="st0" d="M36.6,48H15.4c-1.7,0-3.3-1-4.2-2.5l-10.6-19c-0.9-1.5-0.9-3.4,0-5l10.6-19C12.1,1,13.7,0,15.4,0h21.1 + c1.7,0,3.3,1,4.2,2.5l10.6,19c0.9,1.5,0.9,3.4,0,5l-10.6,19C39.9,47,38.3,48,36.6,48z M13,44.5c0.5,0.9,1.5,1.5,2.5,1.5h21.1 + c1,0,2-0.6,2.5-1.5l10.6-19c0.5-0.9,0.5-2.1,0-3L39,3.5C38.5,2.6,37.6,2,36.6,2H15.4c-1,0-2,0.6-2.5,1.5l-10.6,19 + c-0.5,0.9-0.5,2.1,0,3L13,44.5z"/> +<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="25.9977" y1="30" x2="25.9977" y2="22" gradientTransform="matrix(1 0 0 -1 0 50)"> + <stop offset="0" style="stop-color:#6DC7FF"/> + <stop offset="1" style="stop-color:#E6ABFF"/> +</linearGradient> +<path class="st1" d="M22,20h8v8h-8V20z"/> +<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="25.9977" y1="49.25" x2="25.9977" y2="2.347" gradientTransform="matrix(1 0 0 -1 0 50)"> + <stop offset="0" style="stop-color:#1A6DFF"/> + <stop offset="1" style="stop-color:#C822FF"/> +</linearGradient> +<path class="st2" d="M39,21v-2h-4v-4h-4v-4h-2v4h-2v-4h-2v4h-2v-4h-2v4h-4v4h-4v2h4v2h-4v2h4v2h-4v2h4v4h4v4h2v-4h2v4h2v-4h2v4h2v-4 + h4v-4h4v-2h-4v-2h4v-2h-4v-2H39z M33,31H19V17h14V31z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/googlegke-black.64bdd882.svg b/extensions/harvester/1.5.0-dev/plugin/img/googlegke-black.64bdd882.svg new file mode 100644 index 00000000..9868fd65 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/googlegke-black.64bdd882.svg @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<path d="M98.8,45.4L78.3,9.7c-1.6-2.8-4.5-4.5-7.7-4.6H29.4c-3.2,0-6.1,1.8-7.7,4.6L1.2,45.3c-1.6,2.8-1.6,6.2,0,8.9l20.5,35.9 + c1.6,2.8,4.5,4.6,7.7,4.8h41.1c3.2-0.1,6.2-1.9,7.7-4.8l20.6-35.7C100.4,51.6,100.4,48.2,98.8,45.4z M70.6,60.7 + c0,0.8-0.4,1.5-1.1,1.9L51,73.3c-0.6,0.4-1.4,0.4-2.1,0L30.4,62.6c-0.7-0.4-1.1-1.1-1.1-1.8V39.4c0-0.8,0.4-1.5,1.1-1.9l18.5-10.7 + c0.6-0.4,1.4-0.4,2.1,0l18.5,10.7c0.6,0.3,1.1,1.1,1.1,1.8V60.7z M51,30.9l16,9.3v18.4l-6.4-3.7v-9.8L51,50.5v11l8.5-4.9l6.4,3.7 + l-16,9.3l-16-9.3l6.4-3.7l8.5,4.9v-11l-9.5-5.4v9.8l-6.4,3.7V40.2l16-9.3v7.5l-8.5,4.9l9.5,5.4l9.5-5.4L51,38.4V30.9z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/googlegke.4c1ecbcd.svg b/extensions/harvester/1.5.0-dev/plugin/img/googlegke.4c1ecbcd.svg new file mode 100644 index 00000000..e4337c45 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/googlegke.4c1ecbcd.svg @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{opacity:7.000000e-02;enable-background:new ;} + .st1{fill:#4285F4;} + .st2{fill:#FFFFFF;} +</style> +<g> + <path d="M96.7,44.2L76.8,9.7c-1.5-2.7-4.4-4.4-7.5-4.4H29.6c-3.1,0.1-5.9,1.7-7.5,4.4L2.2,44.2c-1.5,2.7-1.5,6,0,8.7l19.9,34.8 + c1.5,2.7,4.3,4.5,7.5,4.6h39.8c3.1-0.1,6-1.8,7.5-4.6l19.9-34.6C98.2,50.3,98.2,47,96.7,44.2z"/> + <path class="st0" d="M61.7,30.5l-0.4,1.7l-3.1-3.1l-18.9,2.8L26.8,47.2l4.5,4.6l-4-1.1l9.8,17.6l25.9,23.8h6.3 + c3.1-0.1,6-1.8,7.5-4.6L92.1,61L61.7,30.5z"/> + <polygon points="72.1,48.7 61.7,30.5 51.2,48.7 61.7,67 "/> + <polygon points="26.8,50.2 37.2,68.4 58.1,68.4 47.7,50.2 "/> + <polygon points="47.6,47.2 58.2,29.1 37.2,29.1 26.8,47.2 "/> + <path class="st1" d="M98.8,45.4L78.3,9.7c-1.6-2.8-4.5-4.5-7.7-4.6H29.4c-3.2,0-6.1,1.8-7.7,4.6L1.2,45.3c-1.6,2.8-1.6,6.2,0,8.9 + l20.5,35.9c1.6,2.8,4.5,4.6,7.7,4.8h41.1c3.2-0.1,6.2-1.9,7.7-4.8l20.6-35.7C100.4,51.6,100.4,48.2,98.8,45.4z"/> + <path class="st0" d="M70,37.8l-20-8.9L30.8,39.3L30,62.2l32.7,32.7h7.8c3.2-0.1,6.2-1.9,7.7-4.8l16.1-28L70,37.8z"/> + <g id="art"> + <path class="st2" d="M69.5,37.5L51,26.8c-0.7-0.4-1.5-0.4-2.1,0L30.4,37.5c-0.7,0.4-1.1,1.1-1.1,1.9v21.4c0,0.7,0.4,1.4,1.1,1.8 + l18.5,10.7c0.7,0.4,1.5,0.4,2.1,0l18.5-10.7c0.7-0.4,1.1-1.1,1.1-1.9V39.3C70.6,38.6,70.1,37.8,69.5,37.5z M67,58.6l-6.4-3.7v-9.8 + L51,50.5v11l8.5-4.9l6.4,3.7l-16,9.3l-16-9.3l6.4-3.7l8.5,4.9v-11l-9.5-5.4v9.8l-6.4,3.7V40.2l16-9.3v7.5l-8.5,4.9l9.5,5.4 + l9.5-5.4L51,38.4v-7.5l16,9.3L67,58.6z"/> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/googleoauth.4619a2a5.svg b/extensions/harvester/1.5.0-dev/plugin/img/googleoauth.4619a2a5.svg new file mode 100644 index 00000000..90064d7d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/googleoauth.4619a2a5.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" version="1.1" width="48px" height="48px"> +<g id="surface1"> +<path style=" fill:#FFC107;" d="M 43.609375 20.082031 L 42 20.082031 L 42 20 L 24 20 L 24 28 L 35.304688 28 C 33.652344 32.65625 29.222656 36 24 36 C 17.371094 36 12 30.628906 12 24 C 12 17.371094 17.371094 12 24 12 C 27.058594 12 29.84375 13.152344 31.960938 15.039063 L 37.617188 9.382813 C 34.046875 6.054688 29.269531 4 24 4 C 12.953125 4 4 12.953125 4 24 C 4 35.046875 12.953125 44 24 44 C 35.046875 44 44 35.046875 44 24 C 44 22.660156 43.863281 21.351563 43.609375 20.082031 Z "/> +<path style=" fill:#FF3D00;" d="M 6.304688 14.691406 L 12.878906 19.511719 C 14.65625 15.109375 18.960938 12 24 12 C 27.058594 12 29.84375 13.152344 31.960938 15.039063 L 37.617188 9.382813 C 34.046875 6.054688 29.269531 4 24 4 C 16.316406 4 9.65625 8.335938 6.304688 14.691406 Z "/> +<path style=" fill:#4CAF50;" d="M 24 44 C 29.164063 44 33.859375 42.023438 37.410156 38.808594 L 31.21875 33.570313 C 29.210938 35.089844 26.714844 36 24 36 C 18.796875 36 14.382813 32.683594 12.71875 28.054688 L 6.195313 33.078125 C 9.503906 39.554688 16.226563 44 24 44 Z "/> +<path style=" fill:#1976D2;" d="M 43.609375 20.082031 L 42 20.082031 L 42 20 L 24 20 L 24 28 L 35.304688 28 C 34.511719 30.238281 33.070313 32.164063 31.214844 33.570313 C 31.21875 33.570313 31.21875 33.570313 31.21875 33.570313 L 37.410156 38.808594 C 36.972656 39.203125 44 34 44 24 C 44 22.660156 43.863281 21.351563 43.609375 20.082031 Z "/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/grafana.2db31bb8.svg b/extensions/harvester/1.5.0-dev/plugin/img/grafana.2db31bb8.svg new file mode 100644 index 00000000..c085e139 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/grafana.2db31bb8.svg @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:url(#SVGID_1_);} +</style> +<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-969.9529" y1="487.6317" x2="-969.9529" y2="470.7364" gradientTransform="matrix(2.7039 0 0 2.7039 2652.6287 -1252.246)"> + <stop offset="0" style="stop-color:#FFF200"/> + <stop offset="1" style="stop-color:#F15A29"/> +</linearGradient> +<path class="st0" d="M53,27.1c-0.1-0.8-0.2-1.8-0.5-2.9c-0.3-1.1-0.7-2.2-1.3-3.4c-0.6-1.2-1.4-2.5-2.4-3.7c-0.4-0.5-0.8-1-1.3-1.4 + c0.7-2.8-0.9-5.2-0.9-5.2c-2.7-0.2-4.4,0.8-5,1.3c-0.1,0-0.2-0.1-0.3-0.1c-0.5-0.2-0.9-0.4-1.4-0.5c-0.5-0.2-1-0.3-1.5-0.4 + c-0.5-0.1-1-0.2-1.5-0.3c-0.1,0-0.2,0-0.3,0C35.3,6.6,32,5,32,5c-3.8,2.4-4.5,5.7-4.5,5.7s0,0.1,0,0.2C27.2,11,27,11,26.8,11.1 + c-0.3,0.1-0.6,0.2-0.9,0.3c-0.3,0.1-0.6,0.2-0.9,0.3c-0.6,0.2-1.1,0.5-1.7,0.8c-0.5,0.3-1.1,0.6-1.6,1c-0.1,0-0.1-0.1-0.1-0.1 + c-5.2-2-9.8,0.4-9.8,0.4c-0.4,5.5,2.1,9,2.6,9.7c-0.1,0.3-0.2,0.7-0.3,1c-0.4,1.3-0.7,2.5-0.8,3.9c0,0.2,0,0.4-0.1,0.6 + C8.4,31.4,7,36.3,7,36.3c4,4.6,8.7,4.9,8.7,4.9c0,0,0,0,0,0c0.6,1.1,1.3,2.1,2.1,3c0.3,0.4,0.7,0.8,1,1.1C17.3,49.5,19,53,19,53 + c4.5,0.2,7.4-2,8-2.4c0.4,0.2,0.9,0.3,1.4,0.4c1.4,0.4,2.8,0.6,4.2,0.6c0.4,0,0.7,0,1.1,0h0.2l0.1,0l0.2,0l0.2,0l0,0 + c2.1,3,5.8,3.4,5.8,3.4c2.6-2.8,2.8-5.5,2.8-6.1l0,0c0,0,0,0,0,0c0,0,0-0.1,0-0.1l0,0c0,0,0-0.1,0-0.1c0.6-0.4,1.1-0.8,1.6-1.2 + c1.1-1,2-2,2.7-3.2c0.1-0.1,0.1-0.2,0.2-0.3c3,0.2,5.1-1.8,5.1-1.8c-0.5-3.1-2.3-4.6-2.6-4.9l0,0c0,0,0,0,0,0c0,0,0,0,0,0l0,0 + c0,0,0,0-0.1,0c0-0.2,0-0.4,0-0.6c0-0.3,0-0.7,0-1v-0.2v-0.1V35c0-0.1,0-0.1,0-0.1l0-0.2l0-0.3c0-0.1,0-0.2,0-0.3c0-0.1,0-0.2,0-0.3 + l0-0.3l0-0.3c0-0.3-0.1-0.7-0.2-1c-0.3-1.3-0.8-2.6-1.5-3.7c-0.7-1.1-1.5-2.2-2.5-3c-1-0.9-2-1.5-3.2-2c-1.1-0.5-2.3-0.8-3.5-1 + c-0.6-0.1-1.2-0.1-1.8-0.1l-0.2,0h-0.1c0,0-0.1,0-0.1,0l-0.1,0l-0.2,0c-0.1,0-0.2,0-0.2,0c-0.3,0-0.6,0.1-0.9,0.1 + c-1.2,0.2-2.3,0.6-3.3,1.2c-1,0.6-1.8,1.3-2.5,2.2c-0.7,0.8-1.2,1.8-1.6,2.7c-0.4,1-0.6,1.9-0.6,2.9c0,0.2,0,0.5,0,0.7 + c0,0.1,0,0.1,0,0.2l0,0.2c0,0.1,0,0.2,0,0.3c0,0.5,0.1,0.9,0.3,1.4c0.3,0.9,0.7,1.7,1.2,2.4c0.5,0.7,1.1,1.3,1.8,1.7 + c0.6,0.4,1.3,0.8,2,1s1.4,0.3,2,0.3c0.1,0,0.2,0,0.2,0c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0c0.1,0,0.1,0,0.2,0c0,0,0,0,0.1,0l0.1,0 + c0,0,0.1,0,0.1,0c0.1,0,0.2,0,0.2,0c0.1,0,0.2,0,0.2,0c0.1,0,0.3-0.1,0.4-0.1c0.3-0.1,0.5-0.2,0.8-0.3s0.5-0.3,0.7-0.4 + c0.1,0,0.1-0.1,0.2-0.1c0.2-0.2,0.3-0.5,0.1-0.7c-0.2-0.2-0.4-0.2-0.6-0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.2,0.1-0.4,0.2-0.6,0.2 + c-0.2,0.1-0.4,0.1-0.6,0.2c-0.1,0-0.2,0-0.3,0c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0s-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0c0,0,0,0,0,0 + h0l0,0c0,0-0.1,0-0.1,0c-0.1,0-0.1,0-0.2,0c-0.5-0.1-1-0.2-1.5-0.4c-0.5-0.2-1-0.5-1.4-0.9c-0.4-0.4-0.8-0.8-1.1-1.4 + c-0.3-0.5-0.5-1.1-0.6-1.7c0-0.3-0.1-0.6-0.1-0.9c0-0.1,0-0.2,0-0.3c0,0,0,0,0,0v0l0-0.1c0,0,0-0.1,0-0.1c0-0.2,0-0.3,0.1-0.5 + c0.2-1.3,0.9-2.6,1.9-3.6c0.3-0.2,0.5-0.5,0.8-0.7c0.3-0.2,0.6-0.4,0.9-0.5c0.3-0.2,0.7-0.3,1-0.4c0.4-0.1,0.7-0.2,1.1-0.2 + c0.2,0,0.4,0,0.5,0c0,0,0.1,0,0.1,0l0.1,0l0.1,0c0,0,0,0,0,0h0l0.1,0c0.4,0,0.8,0.1,1.2,0.2c0.8,0.2,1.5,0.5,2.2,0.8 + c1.4,0.8,2.6,2,3.3,3.5c0.4,0.7,0.6,1.5,0.8,2.3c0,0.2,0.1,0.4,0.1,0.6l0,0.2l0,0.2c0,0.1,0,0.1,0,0.2c0,0,0,0.1,0,0.1v0.1l0,0.2 + c0,0.1,0,0.3,0,0.4c0,0.2,0,0.4-0.1,0.7c0,0.2-0.1,0.4-0.1,0.7c0,0.2-0.1,0.4-0.1,0.7c-0.1,0.4-0.2,0.9-0.4,1.3 + c-0.3,0.8-0.8,1.6-1.3,2.4c-1.1,1.5-2.5,2.6-4.2,3.4c-0.8,0.4-1.7,0.6-2.6,0.8c-0.4,0.1-0.9,0.1-1.4,0.1l-0.1,0h-0.1H34h-0.2h-0.1 + c0.1,0,0,0,0,0h0c-0.2,0-0.5,0-0.7,0c-1-0.1-1.9-0.2-2.8-0.5c-0.9-0.3-1.8-0.6-2.7-1.1c-1.7-0.9-3.2-2.2-4.4-3.7 + c-0.6-0.7-1.1-1.6-1.6-2.4s-0.8-1.7-1-2.6c-0.2-0.9-0.4-1.8-0.5-2.8l0-0.2l0,0v0v-0.1l0-0.2v0v-0.1v-0.1l0-0.2v0c0,0,0,0,0,0v-0.1 + c0-0.1,0-0.2,0-0.3c0-0.5,0.1-0.9,0.1-1.4c0.1-0.5,0.1-1,0.2-1.4s0.2-0.9,0.3-1.4c0.3-0.9,0.6-1.8,1-2.7c0.8-1.7,1.8-3.2,3-4.4 + c0.3-0.3,0.6-0.6,1-0.8c0.3-0.3,0.7-0.5,1-0.7c0.4-0.2,0.7-0.4,1.1-0.6c0.2-0.1,0.4-0.2,0.6-0.3c0.1,0,0.2-0.1,0.3-0.1 + c0.1,0,0.2-0.1,0.3-0.1c0.4-0.2,0.8-0.3,1.2-0.4c0.1,0,0.2-0.1,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1C30.8,16,31,16,31.3,16 + c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2,0,0.3-0.1l0.2,0l0.2,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.4,0c0.1,0,0.3,0,0.4,0 + c0.1,0,0.2,0,0.2,0l0.2,0l0.1,0l0.1,0c0.1,0,0.2,0,0.4,0l0.2,0c0,0,0.1,0,0,0h0l0.1,0c0.1,0,0.2,0,0.3,0c0.4,0,0.8,0,1.2,0 + c0.8,0,1.6,0.1,2.3,0.3c1.5,0.3,3,0.8,4.3,1.4c1.3,0.6,2.5,1.4,3.5,2.3c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.1,0.2,0.2 + c0.1,0.1,0.2,0.2,0.4,0.3s0.2,0.2,0.3,0.3c0.1,0.1,0.2,0.2,0.3,0.3c0.4,0.5,0.8,0.9,1.2,1.4c0.7,0.9,1.3,1.9,1.8,2.7 + c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2c0.1,0.1,0.1,0.2,0.2,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3 + c0.2,0.4,0.3,0.8,0.5,1.2c0.2,0.6,0.4,1.1,0.5,1.6c0,0.2,0.2,0.3,0.4,0.3c0.2,0,0.4-0.2,0.4-0.4C53,28.3,53,27.7,53,27.1z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/half-logo.1bc560ee.svg b/extensions/harvester/1.5.0-dev/plugin/img/half-logo.1bc560ee.svg new file mode 100644 index 00000000..e2933174 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/half-logo.1bc560ee.svg @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 89.6399918 80.5510254" style="enable-background:new 0 0 89.6399918 80.5510254;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#FFFFFF;} +</style> +<g> + <path class="st0" d="M63.2230225,8.25H45.4490356c-0.1480103,0-0.3010254,0-0.4490356,0H26.6990356 + c-0.2260132,0-0.4490356,0-0.6010132,0.0740356V6.6019897C26.0980225,3,25.1990356,0,24.0740356,0 + S21.5980225,2.9260254,21,6.5230103l-1.875,11.1760254c-0.6019897,3.6019897,1.875,6.5279541,5.5510254,6.5279541H35.625 + c1.125,0,2.1760254-0.1529541,3.1480103-0.4539795c-0.375,1.875-1.9489746,3.3010254-3.9719849,3.3010254h-15.375 + c-2.4769897,0-4.3519897-2.25-3.9769897-4.7220459l1.5739746-9.375C17.3980103,10.5,15.5230103,8.25,13.0510254,8.25H0v47.8519897 + h20.625c2.25,0,4.0510254,1.7960205,4.0510254,4.0460205V76.5c0,2.25,1.7969971,4.0510254,4.0469971,4.0510254h21.75 + c2.25,0,4.0499878-1.8010254,4.0499878-4.0510254V58.9490356H42.9730225c-3.5980225,0-6.5980225-3-6.5980225-6.5970459V41.0230103 + c0-2.1710205,1.0510254-4.0460205,2.625-5.25v13.5C39,52.875,42,55.875,45.5980225,55.875H63.375 + c3.5980225,0,6.5980225-3,6.5980225-6.6019897V14.9260254C69.8240356,11.1760254,66.8980103,8.25,63.2230225,8.25z"/> + <path class="st0" d="M89.5510254,17.6990356l-1.875-11.1760254C87.0740356,2.9260254,85.6480103,0,84.5980225,0 + c-1.125,0-2.0239868,3-2.0239868,6.6019897v2.9210205c0,3.6019897-3,6.6019897-6.6010132,6.6019897h-2.9219971 + c-0.2269897,0-0.4530029,0-0.6019897,0v8.0230103c0.2269897,0,0.4489746,0,0.6019897,0h11.0230103 + C87.6760254,24.1480103,90.1480103,21.2269897,89.5510254,17.6990356z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/harvester.0168283e.svg b/extensions/harvester/1.5.0-dev/plugin/img/harvester.0168283e.svg new file mode 100644 index 00000000..42b37c12 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/harvester.0168283e.svg @@ -0,0 +1 @@ +<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 194.25619 159.08912"><defs><style>.cls-1{fill:#00a383;}.cls-2{fill:#fff;}</style></defs><rect class="cls-1" width="194.25619" height="159.08912" rx="20.56068"/><path class="cls-2" d="M180.4487,81.46673a4.97417,4.97417,0,0,0,.25287-.81463c.01635-.07209.0296-.14435.04284-.21759a4.98972,4.98972,0,0,0,0-1.78c-.01324-.07324-.02649-.14551-.04284-.21759a4.97458,4.97458,0,0,0-.25287-.81464c-.01587-.03815-.03748-.07269-.05432-.11035a4.9932,4.9932,0,0,0-.23017-.46741l-19.7666-34.2373a4.96949,4.96949,0,0,0-.28741-.42926c-.02527-.03491-.04535-.07251-.07154-.10681a4.97881,4.97881,0,0,0-.57611-.62305c-.05584-.05176-.11346-.10089-.17206-.15033a5.00763,5.00763,0,0,0-.71991-.51843l-.00305-.0022-.00274-.00122a5.00234,5.00234,0,0,0-.80945-.36469c-.07269-.02624-.14459-.05175-.2179-.0744a4.97937,4.97937,0,0,0-.82483-.18683c-.04693-.0061-.0935-.00457-.14044-.00927a4.98006,4.98006,0,0,0-.50464-.03351H116.53335a4.96842,4.96842,0,0,0-.504.03345c-.0476.00482-.09478.00329-.14233.00946a4.97566,4.97566,0,0,0-.82226.18627c-.07447.023-.14753.049-.22138.07563a5.00058,5.00058,0,0,0-.80719.36383l-.00281.00128-.00305.0022a5.00874,5.00874,0,0,0-.71991.51843c-.05859.04944-.11615.09845-.172.15027a4.97536,4.97536,0,0,0-.57635.62335c-.026.034-.04584.07123-.07086.10584a4.98409,4.98409,0,0,0-.2879.43L93.88046,74.54449H79.278l13.99317-24.2373h6.4956a5,5,0,0,0,0-10H90.38443a5.0003,5.0003,0,0,0-4.33008,2.5L67.73111,74.54449h-14.602l13.99316-24.2373h6.49561a5,5,0,0,0,0-10H64.2355a5.00031,5.00031,0,0,0-4.33008,2.5L41.58218,74.54449H26.9797l13.99359-24.2373H47.4689a5,5,0,0,0,0-10H38.08658a5.00029,5.00029,0,0,0-4.33008,2.5L13.98941,77.04449a4.98206,4.98206,0,0,0-.22925.46594c-.01715.0384-.03912.07349-.05536.11243a4.974,4.974,0,0,0-.25183.81128c-.01691.07422-.03058.1485-.04413.22388a4.99817,4.99817,0,0,0-.089.88305l-.00036.00342.00036.00342a4.99828,4.99828,0,0,0,.089.88306c.01355.07538.02722.14966.04413.22387a4.97371,4.97371,0,0,0,.25183.81128c.01624.03894.03821.074.05536.11243a4.98084,4.98084,0,0,0,.22925.46594L33.7565,116.28131a5.00031,5.00031,0,0,0,4.33008,2.5H47.4689a5,5,0,1,0,0-10H40.97329L26.97976,84.54449H41.58218l18.32324,31.73682a5.00033,5.00033,0,0,0,4.33008,2.5h9.38233a5,5,0,0,0,0-10H67.12222L53.12912,84.54449h14.602l18.32324,31.73682a5.00032,5.00032,0,0,0,4.33008,2.5h9.38232a5,5,0,0,0,0-10h-6.4956L79.278,84.54449H93.88052l18.32276,31.73682a4.97193,4.97193,0,0,0,.28759.42944c.02521.03479.04517.07233.07135.10657a4.98039,4.98039,0,0,0,.57605.62311c.05591.05188.11371.10095.17237.15051a5.00138,5.00138,0,0,0,.71966.51825l.00305.0022c.02063.0119.04254.01953.0633.03112a4.99593,4.99593,0,0,0,.52386.25788c.15222.06329.30756.11084.46283.15808.051.0155.09961.037.15119.0509a4.96725,4.96725,0,0,0,1.29394.17292l.01508-.001h39.51379l.01508.001a4.96725,4.96725,0,0,0,1.29394-.17292c.05158-.01391.10016-.0354.15119-.0509.15527-.04724.3106-.09479.46282-.15808a4.99511,4.99511,0,0,0,.52387-.25788c.02075-.01159.04266-.01922.06329-.03112l.00312-.0022a5.00713,5.00713,0,0,0,.71856-.51733c.05939-.05011.11774-.09986.17432-.15229a4.97862,4.97862,0,0,0,.57458-.6214c.027-.03546.04773-.07415.0738-.11023a4.98327,4.98327,0,0,0,.2857-.42663l19.7666-34.23682a4.99182,4.99182,0,0,0,.23017-.4674C180.41122,81.53943,180.43283,81.50488,180.4487,81.46673Zm-24.38111,22.31452L150.2941,93.78094l5.33294-9.23645h11.54688ZM105.42776,84.54449h11.54706l5.33289,9.23633-5.77417,10.00061ZM116.5336,55.307l5.77411,10.00031-5.33295,9.23718H105.4277Zm14.43432,33.47382-5.333-9.23633,5.333-9.2373h10.666l5.333,9.2373-5.333,9.23633Zm10.666-28.47363H130.9678l-5.77392-10h22.2135ZM130.96786,98.78082h10.666l5.77362,10.00049H125.19375ZM155.6271,74.54449l-5.333-9.2373,5.77343-10L167.174,74.54449Z"/></svg> \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/harvester.20240f8a.png b/extensions/harvester/1.5.0-dev/plugin/img/harvester.20240f8a.png new file mode 100644 index 00000000..d2b5eb36 Binary files /dev/null and b/extensions/harvester/1.5.0-dev/plugin/img/harvester.20240f8a.png differ diff --git a/extensions/harvester/1.5.0-dev/plugin/img/huaweicce-black.d378b855.svg b/extensions/harvester/1.5.0-dev/plugin/img/huaweicce-black.d378b855.svg new file mode 100644 index 00000000..c8fdf908 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/huaweicce-black.d378b855.svg @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<g> + <g id="layer1"> + <g id="g3378" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3380"> + <g id="g3386"> + <g id="g3388"> + <path id="path3402" d="M3.3270025,510.3474426c0.0479677-0.9151611,0.7369866-1.4578857,0.7369866-1.4578857l0,0 + c1.1101046-1.081665,3.7976551-2.4466858,4.4212327-2.757782l0,0c0.0082226-0.0007019,0.0407724-0.0123291,0.059617,0.0119934 + l0,0c0,0,0.0256968,0.0202026,0.0126772,0.0531006l0,0c-1.710041,3.7359924-4.0484571,6.5688171-4.0484571,6.5688171l0,0 + c0,0-1.2728517-1.2084656-1.182056-2.4182739"/> + </g> + </g> + </g> + </g> + <g id="g3404" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3406"> + <g id="g3412"> + <g id="g3414"> + <path id="path3428" d="M3.5993896,505.104248c0.4848142-0.8644409,1.3023176-1.5370178,2.153398-1.3304138l0,0 + c0.5882874,0.1469727,1.9173293,1.0747986,2.355547,1.3889771l0,0l-0.0013704,0.0003662 + c0.0342627,0.0298157,0.0243254,0.0551453,0.0243254,0.0551453l0,0 + c-0.0130196,0.0401001-0.0589314,0.0401001-0.0589314,0.0401001l0,0v0.001709l-4.4729691-0.1558838H3.5993896z"/> + </g> + </g> + </g> + </g> + <g id="g3430" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3432"> + <g id="g3438"> + <g id="g3440"> + <path id="path3454" d="M2.5290289,507.1123657c0.485157-1.0258179,1.4119575-1.3369141,1.4119575-1.3369141l0,0 + c0.4272535-0.1757812,0.8551919-0.1870728,0.8551919-0.1870728l0,0 + c0.066812-0.0119934,2.6604829-0.0013733,3.3549838,0.0013733l0,0c0.0301514,0,0.0462551,0.0301514,0.0462551,0.0301514l0,0 + c0.0215845,0.0349426-0.0161037,0.0678406-0.0161037,0.0678406l0,0v0.0003357 + c-1.9646125,1.324585-5.7728891,3.359436-5.7728891,3.359436l0,0c-0.3463938-1.0714111,0.120604-1.9351501,0.120604-1.9351501 + "/> + </g> + </g> + </g> + </g> + <g id="g3456" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3458"> + <g id="g3464"> + <g id="g3466"> + <path id="path3480" d="M7.7739325,514.5599976c-1.1844549-0.3063354-1.4643793-1.3807983-1.4643793-1.3807983l0,0 + c-0.2158537-0.6763306,0.0061669-1.418457,0.0061669-1.418457l0,0 + c0.3940187-1.7545776,2.3401284-4.6360474,2.7588162-5.2414551l0,0 + c0.0301514-0.0298157,0.0524216-0.0185242,0.0524216-0.0185242l0,0 + c0.0418005,0.011322,0.0428286,0.0493469,0.0428286,0.0551758l0,0c0.6424217,6.4352112-0.676342,8.1410828-0.676342,8.1410828 + l0,0c-0.1942682-0.0181274-0.7195129-0.1370239-0.7195129-0.1370239"/> + </g> + </g> + </g> + </g> + <g id="g3482" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3484"> + <g id="g3490"> + <g id="g3492"> + <path id="path3506" d="M9.9393225,506.6013489h0.0020552c0.0034266-0.0414429,0.0342627-0.0500183,0.0342627-0.0500183l0,0 + c0.0424862-0.016449,0.0640717,0.0250244,0.0640717,0.0250244l0,0v-0.0010376 + c0.430337,0.619812,2.3630848,3.4882507,2.7588158,5.2349548l0,0c0,0,0.2110577,0.846283,0.0051394,1.4184875l0,0 + c0,0-0.2912302,1.0912476-1.4777412,1.3790283l0,0c0,0-0.3419399,0.0880737-0.7040949,0.1387939l0,0 + C10.6218309,514.746582,9.2962151,513.0396118,9.9393225,506.6013489"/> + </g> + </g> + </g> + </g> + <g id="g3508" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3510"> + <g id="g3516"> + <g id="g3518"> + <path id="path3532" d="M11.0343513,505.256012c0,0-0.0397444-0.0054626-0.0503654-0.0349426l0,0 + c0,0-0.0102797-0.0390625,0.0178165-0.0589294l0,0v-0.0006714c0.426568-0.3076782,1.7240887-1.2149658,2.3504066-1.3914185 + l0,0c0,0,1.1563597-0.3940125,2.1599083,1.3307495l0,0l-4.477766,0.1565857V505.256012z"/> + </g> + </g> + </g> + </g> + <g id="g3534" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3536"> + <g id="g3542"> + <g id="g3544"> + <path id="path3558" d="M10.9349899,505.6901245v-0.0003357c0,0-0.0332346-0.0226135-0.0219269-0.065094l0,0 + c0,0,0.0188437-0.0332336,0.0452261-0.0332336l0,0v-0.001709c0.7034092,0,3.3683462-0.0027466,3.4365292,0.0088806l0,0 + c0,0,0.343996,0.0133667,0.7695351,0.1768188l0,0c0,0,0.9476995,0.3021851,1.4390249,1.3783569l0,0 + c0,0,0.4392452,0.8781433,0.1000462,1.9032898l0,0C16.7034245,509.0570984,12.9002876,507.0174561,10.9349899,505.6901245"/> + </g> + </g> + </g> + </g> + <g id="g3560" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3562"> + <g id="g3568"> + <g id="g3570"> + <path id="path3584" d="M10.5628996,506.2153625h0.0020561c0,0-0.0219278-0.0435181,0.0113068-0.0715942l0,0 + c0,0,0.0308361-0.0233154,0.0603018-0.0051575l0,0c0.6413946,0.318634,3.3070164,1.674408,4.4112959,2.750946l0,0 + c0,0,0.6992979,0.561554,0.7366447,1.4630127l0,0c0.0805168,1.2532959-1.1789732,2.4131165-1.1789732,2.4131165l0,0 + C14.6055317,512.765686,12.2712278,509.9410706,10.5628996,506.2153625"/> + </g> + </g> + </g> + </g> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/huaweicce.22b4ecea.svg b/extensions/harvester/1.5.0-dev/plugin/img/huaweicce.22b4ecea.svg new file mode 100644 index 00000000..523fe033 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/huaweicce.22b4ecea.svg @@ -0,0 +1,184 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 101 101" style="enable-background:new 0 0 101 101;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:url(#path3402_1_);} + .st1{fill:url(#path3428_1_);} + .st2{fill:url(#path3454_1_);} + .st3{fill:url(#path3480_1_);} + .st4{fill:url(#path3506_1_);} + .st5{fill:url(#path3532_1_);} + .st6{fill:url(#path3558_1_);} + .st7{fill:url(#path3584_1_);} +</style> +<g> + <g id="layer1"> + <g id="g3378" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3380"> + <g id="g3386"> + <g id="g3388"> + + <radialGradient id="path3402_1_" cx="-83.304718" cy="459.5467834" r="1" gradientTransform="matrix(72.1396179 0 0 -72.6343994 6028.4511719 33884.4414062)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#F9AB95"/> + <stop offset="0.420086" style="stop-color:#ED1C24"/> + <stop offset="0.426971" style="stop-color:#ED1C24"/> + <stop offset="0.872563" style="stop-color:#ED1C24"/> + <stop offset="1" style="stop-color:#981015"/> + </radialGradient> + <path id="path3402" class="st0" d="M3.3270025,510.3474426c0.0479677-0.9151611,0.7369866-1.4578857,0.7369866-1.4578857l0,0 + c1.1101046-1.081665,3.7976551-2.4466858,4.4212327-2.757782l0,0c0.0082226-0.0007019,0.0407724-0.0123291,0.059617,0.0119934 + l0,0c0,0,0.0256968,0.0202026,0.0126772,0.0531006l0,0c-1.710041,3.7359924-4.0484571,6.5688171-4.0484571,6.5688171l0,0 + c0,0-1.2728517-1.2084656-1.182056-2.4182739"/> + </g> + </g> + </g> + </g> + <g id="g3404" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3406"> + <g id="g3412"> + <g id="g3414"> + + <radialGradient id="path3428_1_" cx="-83.3047791" cy="459.5467224" r="1" gradientTransform="matrix(72.1471634 0 0 -72.6419983 6029.0854492 33887.9335938)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#F9AB95"/> + <stop offset="0.420086" style="stop-color:#ED1C24"/> + <stop offset="0.426971" style="stop-color:#ED1C24"/> + <stop offset="0.872563" style="stop-color:#ED1C24"/> + <stop offset="1" style="stop-color:#981015"/> + </radialGradient> + <path id="path3428" class="st1" d="M3.5993896,505.104248c0.4848142-0.8644409,1.3023176-1.5370178,2.153398-1.3304138l0,0 + c0.5882874,0.1469727,1.9173293,1.0747986,2.355547,1.3889771l0,0l-0.0013704,0.0003662 + c0.0342627,0.0298157,0.0243254,0.0551453,0.0243254,0.0551453l0,0 + c-0.0130196,0.0401001-0.0589314,0.0401001-0.0589314,0.0401001l0,0v0.001709l-4.4729691-0.1558838H3.5993896z"/> + </g> + </g> + </g> + </g> + <g id="g3430" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3432"> + <g id="g3438"> + <g id="g3440"> + + <radialGradient id="path3454_1_" cx="-83.3046265" cy="459.546814" r="1" gradientTransform="matrix(72.1279449 0 0 -72.6226425 6027.472168 33879.0429688)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#F9AB95"/> + <stop offset="0.420086" style="stop-color:#ED1C24"/> + <stop offset="0.426971" style="stop-color:#ED1C24"/> + <stop offset="0.872563" style="stop-color:#ED1C24"/> + <stop offset="1" style="stop-color:#981015"/> + </radialGradient> + <path id="path3454" class="st2" d="M2.5290289,507.1123657c0.485157-1.0258179,1.4119575-1.3369141,1.4119575-1.3369141l0,0 + c0.4272535-0.1757812,0.8551919-0.1870728,0.8551919-0.1870728l0,0 + c0.066812-0.0119934,2.6604829-0.0013733,3.3549838,0.0013733l0,0c0.0301514,0,0.0462551,0.0301514,0.0462551,0.0301514l0,0 + c0.0215845,0.0349426-0.0161037,0.0678406-0.0161037,0.0678406l0,0v0.0003357 + c-1.9646125,1.324585-5.7728891,3.359436-5.7728891,3.359436l0,0c-0.3463938-1.0714111,0.120604-1.9351501,0.120604-1.9351501 + "/> + </g> + </g> + </g> + </g> + <g id="g3456" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3458"> + <g id="g3464"> + <g id="g3466"> + + <radialGradient id="path3480_1_" cx="-83.3046341" cy="459.546814" r="1" gradientTransform="matrix(72.1285172 0 0 -72.6231842 6027.5195312 33879.2929688)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#F9AB95"/> + <stop offset="0.420086" style="stop-color:#ED1C24"/> + <stop offset="0.426971" style="stop-color:#ED1C24"/> + <stop offset="0.872563" style="stop-color:#ED1C24"/> + <stop offset="1" style="stop-color:#981015"/> + </radialGradient> + <path id="path3480" class="st3" d="M7.7739325,514.5599976c-1.1844549-0.3063354-1.4643793-1.3807983-1.4643793-1.3807983l0,0 + c-0.2158537-0.6763306,0.0061669-1.418457,0.0061669-1.418457l0,0 + c0.3940187-1.7545776,2.3401284-4.6360474,2.7588162-5.2414551l0,0 + c0.0301514-0.0298157,0.0524216-0.0185242,0.0524216-0.0185242l0,0 + c0.0418005,0.011322,0.0428286,0.0493469,0.0428286,0.0551758l0,0c0.6424217,6.4352112-0.676342,8.1410828-0.676342,8.1410828 + l0,0c-0.1942682-0.0181274-0.7195129-0.1370239-0.7195129-0.1370239"/> + </g> + </g> + </g> + </g> + <g id="g3482" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3484"> + <g id="g3490"> + <g id="g3492"> + + <radialGradient id="path3506_1_" cx="-83.305275" cy="459.5464478" r="1" gradientTransform="matrix(72.2110825 0 0 -72.7063522 6034.4462891 33917.484375)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#F9AB95"/> + <stop offset="0.420086" style="stop-color:#ED1C24"/> + <stop offset="0.426971" style="stop-color:#ED1C24"/> + <stop offset="0.872563" style="stop-color:#ED1C24"/> + <stop offset="1" style="stop-color:#981015"/> + </radialGradient> + <path id="path3506" class="st4" d="M9.9393225,506.6013489h0.0020552 + c0.0034266-0.0414429,0.0342627-0.0500183,0.0342627-0.0500183l0,0 + c0.0424862-0.016449,0.0640717,0.0250244,0.0640717,0.0250244l0,0v-0.0010376 + c0.430337,0.619812,2.3630848,3.4882507,2.7588158,5.2349548l0,0c0,0,0.2110577,0.846283,0.0051394,1.4184875l0,0 + c0,0-0.2912302,1.0912476-1.4777412,1.3790283l0,0c0,0-0.3419399,0.0880737-0.7040949,0.1387939l0,0 + C10.6218309,514.746582,9.2962151,513.0396118,9.9393225,506.6013489"/> + </g> + </g> + </g> + </g> + <g id="g3508" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3510"> + <g id="g3516"> + <g id="g3518"> + + <radialGradient id="path3532_1_" cx="-83.3051682" cy="459.5465088" r="1" gradientTransform="matrix(72.1978989 0 0 -72.6930695 6033.3408203 33911.3867188)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#F9AB95"/> + <stop offset="0.420086" style="stop-color:#ED1C24"/> + <stop offset="0.426971" style="stop-color:#ED1C24"/> + <stop offset="0.872563" style="stop-color:#ED1C24"/> + <stop offset="1" style="stop-color:#981015"/> + </radialGradient> + <path id="path3532" class="st5" d="M11.0343513,505.256012c0,0-0.0397444-0.0054626-0.0503654-0.0349426l0,0 + c0,0-0.0102797-0.0390625,0.0178165-0.0589294l0,0v-0.0006714c0.426568-0.3076782,1.7240887-1.2149658,2.3504066-1.3914185 + l0,0c0,0,1.1563597-0.3940125,2.1599083,1.3307495l0,0l-4.477766,0.1565857V505.256012z"/> + </g> + </g> + </g> + </g> + <g id="g3534" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3536"> + <g id="g3542"> + <g id="g3544"> + + <radialGradient id="path3558_1_" cx="-83.3052444" cy="459.5464783" r="1" gradientTransform="matrix(72.2075958 0 0 -72.7028427 6034.1547852 33915.8710938)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#F9AB95"/> + <stop offset="0.420086" style="stop-color:#ED1C24"/> + <stop offset="0.426971" style="stop-color:#ED1C24"/> + <stop offset="0.872563" style="stop-color:#ED1C24"/> + <stop offset="1" style="stop-color:#981015"/> + </radialGradient> + <path id="path3558" class="st6" d="M10.9349899,505.6901245v-0.0003357c0,0-0.0332346-0.0226135-0.0219269-0.065094l0,0 + c0,0,0.0188437-0.0332336,0.0452261-0.0332336l0,0v-0.001709c0.7034092,0,3.3683462-0.0027466,3.4365292,0.0088806l0,0 + c0,0,0.343996,0.0133667,0.7695351,0.1768188l0,0c0,0,0.9476995,0.3021851,1.4390249,1.3783569l0,0 + c0,0,0.4392452,0.8781433,0.1000462,1.9032898l0,0C16.7034245,509.0570984,12.9002876,507.0174561,10.9349899,505.6901245"/> + </g> + </g> + </g> + </g> + <g id="g3560" transform="matrix(6.872161207830313,0,0,-6.919294886852669,-15.172182215103419,3574.0745142828305) "> + <g id="g3562"> + <g id="g3568"> + <g id="g3570"> + + <radialGradient id="path3584_1_" cx="-83.3052826" cy="459.5464478" r="1" gradientTransform="matrix(72.2121964 0 0 -72.7074738 6034.5400391 33918)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#F9AB95"/> + <stop offset="0.420086" style="stop-color:#ED1C24"/> + <stop offset="0.426971" style="stop-color:#ED1C24"/> + <stop offset="0.872563" style="stop-color:#ED1C24"/> + <stop offset="1" style="stop-color:#981015"/> + </radialGradient> + <path id="path3584" class="st7" d="M10.5628996,506.2153625h0.0020561c0,0-0.0219278-0.0435181,0.0113068-0.0715942l0,0 + c0,0,0.0308361-0.0233154,0.0603018-0.0051575l0,0c0.6413946,0.318634,3.3070164,1.674408,4.4112959,2.750946l0,0 + c0,0,0.6992979,0.561554,0.7366447,1.4630127l0,0c0.0805168,1.2532959-1.1789732,2.4131165-1.1789732,2.4131165l0,0 + C14.6055317,512.765686,12.2712278,509.9410706,10.5628996,506.2153625"/> + </g> + </g> + </g> + </g> + </g> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/icon.42954c0f.svg b/extensions/harvester/1.5.0-dev/plugin/img/icon.42954c0f.svg new file mode 100644 index 00000000..b05ebd32 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/icon.42954c0f.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"> +<g id="icomoon-ignore"> +</g> +<path d="M23,12.5c0,0,0-0.1,0-0.1c0,0,0,0,0,0c0-0.1,0-0.2,0-0.2c0,0,0,0,0,0c0,0,0-0.1,0-0.1c0,0,0,0,0,0c0,0,0,0,0-0.1l-2.6-4.5 + c0,0,0,0,0-0.1c0,0,0,0,0,0c0,0,0-0.1-0.1-0.1c0,0,0,0,0,0c0,0-0.1,0-0.1-0.1l0,0l0,0c0,0-0.1,0-0.1,0c0,0,0,0,0,0c0,0-0.1,0-0.1,0 + c0,0,0,0,0,0c0,0,0,0-0.1,0h-5.2c0,0,0,0-0.1,0c0,0,0,0,0,0c0,0-0.1,0-0.1,0c0,0,0,0,0,0c0,0-0.1,0-0.1,0l0,0l0,0c0,0-0.1,0-0.1,0.1 + c0,0,0,0,0,0c0,0-0.1,0.1-0.1,0.1c0,0,0,0,0,0c0,0,0,0,0,0.1l-2.4,4.2H9.7l1.8-3.2h0.9c0.4,0,0.7-0.3,0.7-0.7c0-0.4-0.3-0.7-0.7-0.7 + h-1.2c-0.2,0-0.5,0.1-0.6,0.3l-2.4,4.2H6.2l1.8-3.2h0.9c0.4,0,0.7-0.3,0.7-0.7c0-0.4-0.3-0.7-0.7-0.7H7.7c-0.2,0-0.5,0.1-0.6,0.3 + l-2.4,4.2H2.8l1.8-3.2h0.9c0.4,0,0.7-0.3,0.7-0.7S5.8,7.1,5.5,7.1H4.3C4,7.1,3.8,7.2,3.7,7.4l-2.6,4.5c0,0,0,0,0,0.1c0,0,0,0,0,0 + c0,0,0,0.1,0,0.1c0,0,0,0,0,0c0,0,0,0.1,0,0.1l0,0l0,0c0,0,0,0.1,0,0.1c0,0,0,0,0,0c0,0,0,0.1,0,0.1c0,0,0,0,0,0c0,0,0,0,0,0.1 + l2.6,4.5c0.1,0.2,0.3,0.3,0.6,0.3h1.2c0.4,0,0.7-0.3,0.7-0.7s-0.3-0.7-0.7-0.7H4.6l-1.8-3.2h1.9l2.4,4.2c0.1,0.2,0.3,0.3,0.6,0.3 + h1.2c0.4,0,0.7-0.3,0.7-0.7s-0.3-0.7-0.7-0.7H8.1l-1.8-3.2h1.9l2.4,4.2c0.1,0.2,0.3,0.3,0.6,0.3h1.2c0.4,0,0.7-0.3,0.7-0.7 + c0-0.4-0.3-0.7-0.7-0.7h-0.9l-1.8-3.2h1.9l2.4,4.2c0,0,0,0,0,0.1c0,0,0,0,0,0c0,0,0,0.1,0.1,0.1c0,0,0,0,0,0c0,0,0.1,0,0.1,0.1l0,0 + c0,0,0,0,0,0c0,0,0,0,0.1,0c0,0,0,0,0.1,0c0,0,0,0,0,0c0.1,0,0.1,0,0.2,0l0,0l5.2,0c0.1,0,0.1,0,0.2,0c0,0,0,0,0,0c0,0,0,0,0.1,0 + c0,0,0,0,0.1,0c0,0,0,0,0,0l0,0c0,0,0.1,0,0.1-0.1c0,0,0,0,0,0c0,0,0.1-0.1,0.1-0.1c0,0,0,0,0,0c0,0,0,0,0-0.1L23,12.5 + C22.9,12.5,22.9,12.5,23,12.5C22.9,12.5,22.9,12.5,23,12.5L23,12.5z M19.7,15.4L19,14.1l0.7-1.2h1.5L19.7,15.4L19.7,15.4z + M13.1,12.9h1.5l0.7,1.2l-0.8,1.3L13.1,12.9z M14.6,9l0.8,1.3l-0.7,1.2h-1.5L14.6,9L14.6,9z M16.5,13.4l-0.7-1.2l0.7-1.2h1.4 + l0.7,1.2l-0.7,1.2H16.5z M17.9,9.7h-1.4l-0.8-1.3h2.9L17.9,9.7L17.9,9.7z M16.5,14.8h1.4l0.8,1.3h-2.9L16.5,14.8L16.5,14.8z + M19.7,11.6L19,10.4L19.7,9l1.5,2.5L19.7,11.6L19.7,11.6z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/import.ac396542.svg b/extensions/harvester/1.5.0-dev/plugin/img/import.ac396542.svg new file mode 100644 index 00000000..ec251481 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/import.ac396542.svg @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#326CE5;} + .st1{fill:#FFFFFF;} +</style> +<g> + <path class="st0" d="M49.7,1.5c-0.9,0-1.8,0.3-2.6,0.6L12.4,18.8c-1.8,0.9-3.2,2.5-3.6,4.5L0.2,60.6c-0.4,1.7-0.1,3.6,0.9,5.1 + l0.4,0.5L25.5,96c1.3,1.6,3.2,2.5,5.2,2.5h38.6c2,0,3.9-0.9,5.2-2.5l24.1-29.9c1.3-1.6,1.7-3.6,1.3-5.6l-8.5-37.3 + c-0.5-2-1.8-3.6-3.6-4.5L52.9,2.2C51.9,1.7,50.8,1.5,49.7,1.5L49.7,1.5z"/> + <path class="st1" d="M50,14.2c-1.2,0.1-2.1,1.1-2.1,2.3c0,0,0,0,0,0l0,0c0,0.2,0,0.4,0,0.5c0.1,0.7,0.1,1.3,0.3,2 + c0.2,1.2,0.3,2.5,0.2,3.8c-0.1,0.4-0.3,0.8-0.7,1.1v0.9c-1.3,0.1-2.5,0.3-3.8,0.6c-5.2,1.2-10,3.9-13.7,7.8l-0.7-0.5 + c-0.4,0.1-0.8,0.1-1.2-0.1c-1-0.8-2-1.6-2.8-2.5c-0.4-0.5-0.9-1-1.4-1.5l-0.5-0.4c-0.4-0.3-0.9-0.5-1.5-0.6c-0.6,0-1.3,0.2-1.7,0.7 + c-0.7,1-0.5,2.4,0.5,3.1l0,0l0.4,0.4c0.6,0.4,1.1,0.7,1.7,1c1.1,0.6,2.2,1.4,3.1,2.2c0.2,0.4,0.4,0.8,0.4,1.2l0.7,0.6 + c-3.7,5.5-5.2,12.2-4.2,18.8l-0.8,0.4c-0.2,0.4-0.5,0.7-0.9,0.9c-1.2,0.3-2.5,0.5-3.7,0.6c-0.7,0-1.3,0.1-2,0.2l-0.6,0.1l0,0 + c-1.1,0.2-1.9,1.2-1.8,2.4c0.2,1.1,1.2,1.9,2.4,1.8c0.1,0,0.2,0,0.3-0.1l0,0l0.5-0.1c0.6-0.2,1.2-0.5,1.7-0.8 + c1.2-0.4,2.4-0.8,3.6-1c0.4,0,0.8,0.2,1.2,0.4l0.9-0.2c2,6.3,6.3,11.6,12,14.9l-0.4,0.9c0.2,0.4,0.2,0.8,0.2,1.2 + c-0.5,1.2-1.2,2.3-2,3.4c-0.4,0.5-0.8,1.1-1.1,1.7l-0.3,0.6c-0.6,1-0.2,2.3,0.8,2.8c1,0.6,2.3,0.2,2.8-0.8c0-0.1,0.1-0.2,0.1-0.2 + l0,0l0.3-0.5c0.2-0.6,0.4-1.3,0.6-2c0.4-1.3,0.9-2.6,1.6-3.7c0.3-0.2,0.6-0.4,0.9-0.4l0.5-0.8c6.2,2.4,13,2.4,19.2,0l0.5,0.8 + c0.4,0.1,0.8,0.3,1.1,0.6c0.6,1.1,1.1,2.3,1.4,3.5c0.2,0.7,0.4,1.3,0.6,2l0.3,0.5c0.4,1.1,1.6,1.6,2.7,1.2s1.6-1.6,1.2-2.7 + c0-0.1-0.1-0.2-0.2-0.3l-0.3-0.6c-0.3-0.6-0.7-1.1-1-1.7c-0.7-1-1.3-2.1-1.8-3.3c-0.1-0.4-0.1-0.8,0.2-1.2 + c-0.1-0.3-0.2-0.6-0.3-0.8c5.7-3.4,10-8.8,12-15.1l0.9,0.2c0.3-0.3,0.7-0.4,1.2-0.4c1.2,0.2,2.4,0.6,3.6,1.1 + c0.6,0.3,1.2,0.5,1.9,0.7l0.5,0.1l0,0c1.1,0.3,2.3-0.3,2.6-1.4c0.3-1.1-0.3-2.3-1.4-2.6c-0.1,0-0.2-0.1-0.3-0.1l-0.6-0.1 + c-0.7-0.1-1.3-0.1-2-0.2c-1.3-0.1-2.5-0.3-3.7-0.6c-0.4-0.2-0.7-0.5-0.9-0.9l-0.8-0.2c0.9-6.6-0.6-13.2-4.3-18.7l0.7-0.7 + c0-0.4,0.1-0.9,0.4-1.2c1-0.8,2-1.6,3.1-2.2c0.6-0.3,1.2-0.6,1.7-1l0.5-0.4c1-0.6,1.2-1.9,0.6-2.9c-0.6-1-1.9-1.2-2.9-0.6 + c-0.1,0.1-0.2,0.1-0.3,0.2l-0.5,0.4c-0.5,0.5-0.9,0.9-1.4,1.5c-0.8,0.9-1.7,1.8-2.7,2.5c-0.4,0.2-0.8,0.2-1.3,0.1l-0.8,0.6 + c-4.6-4.8-10.7-7.7-17.3-8.3c0-0.3,0-0.8,0-0.9c-0.4-0.2-0.6-0.6-0.7-1c0-1.3,0-2.5,0.2-3.8c0.1-0.6,0.2-1.3,0.3-2 + c0-0.2,0-0.4,0-0.6C52.2,15.3,51.3,14.3,50,14.2C50.1,14.2,50,14.2,50,14.2L50,14.2z M47.4,30.3l-0.6,10.9l0,0c0,1-0.9,1.8-1.9,1.7 + c-0.4,0-0.7-0.1-1-0.4l0,0l-9-6.3c2.8-2.8,6.4-4.7,10.3-5.6C45.9,30.5,46.7,30.4,47.4,30.3z M52.6,30.3c4.7,0.6,9.1,2.7,12.5,6 + l-8.9,6.3l0,0c-0.8,0.6-2,0.4-2.6-0.4c-0.2-0.3-0.3-0.6-0.4-1l0,0L52.6,30.3z M31.6,40.4l8.2,7.3l0,0c0.8,0.7,0.8,1.8,0.2,2.6 + c-0.2,0.3-0.6,0.5-0.9,0.6l0,0l-10.5,3C28.1,49.2,29.1,44.4,31.6,40.4L31.6,40.4L31.6,40.4z M68.4,40.4c2.5,4,3.6,8.8,3.1,13.5 + l-10.5-3l0,0c-1-0.3-1.6-1.3-1.3-2.2c0.1-0.4,0.3-0.7,0.6-0.9l0,0L68.4,40.4L68.4,40.4L68.4,40.4z M48.3,48.3h3.3l2.1,2.6L53,54.1 + l-3,1.5l-3-1.5l-0.7-3.2L48.3,48.3z M59.1,57.2h0.4l0,0L70.3,59c-1.6,4.5-4.6,8.3-8.7,10.9l-4.2-10.1l0,0c-0.4-0.9,0.1-2,1-2.4 + C58.7,57.3,58.9,57.3,59.1,57.2L59.1,57.2L59.1,57.2z M40.9,57.2c1,0,1.8,0.8,1.8,1.9c0,0.2-0.1,0.5-0.2,0.7l0,0l-4.2,10 + c-4-2.6-7-6.4-8.6-10.8l10.7-1.8l0,0L40.9,57.2L40.9,57.2L40.9,57.2z M50,61.6c0.7,0,1.3,0.4,1.7,1l0,0l5.3,9.6 + c-0.7,0.2-1.4,0.4-2.1,0.6c-3.9,0.9-8,0.7-11.8-0.6l5.3-9.6l0,0C48.7,62,49.3,61.6,50,61.6z"/> + <path class="st1" d="M34.6,85.8c-0.3,0-0.6-0.1-0.8-0.2c-1.1-0.6-1.5-1.9-0.9-3v-0.2l0.2-0.4c0.2-0.4,0.5-0.8,0.7-1.1l0.4-0.6 + c0.8-1.1,1.4-2.2,2-3.4c0.1-0.4,0-0.8-0.2-1.2l0,0l0.3-0.9c-5.7-3.4-10-8.7-12-15l-0.9,0.2l0,0l0,0c-0.3-0.2-0.7-0.3-1.1-0.4l0,0 + c-1.3,0.2-2.5,0.5-3.7,1l0,0L18,61c-0.4,0.2-0.8,0.3-1.3,0.5h-0.4h-0.2l0,0c-1.1,0.4-2.3-0.3-2.6-1.4c-0.4-1.1,0.3-2.3,1.4-2.6 + c0.1,0,0.2-0.1,0.3-0.1l0,0h0.2h0.4c0.4-0.1,0.9-0.1,1.3-0.1h0.7l0,0c1.2-0.1,2.5-0.3,3.7-0.6c0.3-0.2,0.6-0.5,0.8-0.8v-0.1l0,0 + l0.9-0.3c-0.9-6.6,0.6-13.2,4.2-18.8l-0.6-0.5l0,0l0,0c0-0.4-0.2-0.8-0.4-1.1c-1-0.8-2-1.5-3.1-2.2l-0.6-0.3 + c-0.4-0.2-0.8-0.4-1.1-0.7l-0.3-0.2l-0.1-0.1l0,0c-1-0.7-1.4-2-0.7-3.1c0-0.1,0.1-0.1,0.1-0.2c0.4-0.5,1-0.8,1.6-0.7l0,0 + c0.5,0,1,0.2,1.5,0.6h0.1l0.3,0.3c0.3,0.3,0.6,0.6,0.9,1l0.5,0.5l0,0c0.9,1,1.8,1.8,2.9,2.6c0.3,0.2,0.7,0.2,1.1,0.1h0.2l0.7,0.5 + c3.7-3.9,8.4-6.6,13.6-7.8c1.2-0.3,2.5-0.5,3.8-0.6v-0.9l0,0c0.3-0.3,0.6-0.7,0.7-1.1c0-1.2,0-2.5-0.2-3.7l0,0c0-0.2,0-0.5-0.1-0.7 + c-0.1-0.4-0.2-0.9-0.2-1.3c0-0.1,0-0.2,0-0.4v-0.3l0,0l0,0c-0.1-1.2,0.9-2.3,2.1-2.4c0,0,0.1,0,0.1,0c0.6,0,1.1,0.3,1.5,0.7 + c0.4,0.5,0.6,1,0.6,1.7c0,0,0,0.1,0,0.2s0,0.3,0,0.4c0,0.5,0,0.9-0.1,1.4c0,0.2,0,0.4-0.1,0.7v0.1c-0.2,1.2-0.3,2.4-0.2,3.7 + c0.1,0.4,0.3,0.7,0.6,0.9l0.1,0.1l0,0c0,0.2,0,0.6,0,0.9c3.3,0.3,6.5,1.1,9.5,2.6c2.9,1.4,5.6,3.4,7.9,5.7l0.8-0.6h0.1 + c0.4,0,0.7,0,1.1-0.2c1-0.7,1.9-1.6,2.7-2.5l0,0l0.4-0.5c0.3-0.3,0.6-0.7,0.9-1l0.3-0.3l0.1-0.1c0.9-0.8,2.3-0.7,3.1,0.2 + c0.4,0.4,0.5,1,0.4,1.6c-0.1,0.6-0.4,1.1-0.9,1.5l-0.2,0.1l-0.3,0.3c-0.4,0.3-0.7,0.5-1.1,0.7l-0.6,0.3c-1.1,0.6-2.1,1.3-3,2.1 + c-0.3,0.3-0.4,0.6-0.4,1v0.2l0,0l-0.3,0.3l-0.4,0.4c3.7,5.5,5.2,12.2,4.3,18.7l0.7,0.2l0,0l0,0c0.2,0.3,0.5,0.6,0.8,0.8 + c1.2,0.3,2.4,0.5,3.7,0.6l0,0h0.7c0.4,0,0.9,0,1.3,0.1h0.4h0.2c1.2,0.2,2,1.2,1.8,2.4c-0.2,1.2-1.2,2-2.4,1.8c-0.1,0-0.2,0-0.3-0.1 + l0,0h-0.2h-0.3c-0.4-0.1-0.8-0.3-1.2-0.5l-0.5-0.1l0,0c-1.1-0.5-2.3-0.8-3.6-1c-0.4,0-0.7,0.1-1,0.3h-0.1l0,0l-0.9-0.2 + c-1,3.1-2.5,6-4.6,8.6c-2.1,2.6-4.6,4.8-7.5,6.5l0.1,0.3c0.1,0.2,0.1,0.4,0.2,0.6l0,0V76c-0.2,0.3-0.2,0.7-0.1,1.1 + c0.5,1.2,1,2.3,1.7,3.3l0.4,0.6c0.3,0.3,0.5,0.7,0.7,1.1l0.2,0.4v0.2c0.6,1.1,0.2,2.4-0.9,3c-0.5,0.2-1.1,0.2-1.6,0 + c-0.6-0.2-1-0.7-1.3-1.2v-0.2l-0.2-0.4c-0.2-0.4-0.3-0.8-0.4-1.3c0-0.2-0.1-0.4-0.2-0.6l0,0c-0.4-1.2-0.8-2.3-1.4-3.4 + c-0.2-0.3-0.5-0.5-0.9-0.6h-0.1l0,0l-0.2-0.4l-0.2-0.4c-6.2,2.4-13,2.4-19.2,0L40,77.9l0,0c-0.3,0.1-0.6,0.2-0.9,0.4 + c-0.5,0.8-0.9,1.6-1.2,2.5c-0.1,0.4-0.3,0.8-0.5,1.2c-0.2,0.4-0.1,0.4-0.2,0.6c-0.1,0.4-0.2,0.9-0.4,1.3l-0.2,0.4v0.2l0,0 + C36.3,85.3,35.5,85.8,34.6,85.8z M36,75.9c0.2,0.4,0.2,0.8,0.2,1.2c-0.5,1.2-1.2,2.3-2,3.4L33.8,81c-0.3,0.4-0.5,0.7-0.7,1.1 + l-0.2,0.4v0.2c-0.6,1-0.2,2.2,0.8,2.8c1,0.6,2.2,0.2,2.8-0.8c0.1-0.1,0.1-0.2,0.1-0.3l0,0v-0.2l0.2-0.4c0.2-0.4,0.3-0.8,0.4-1.3 + c0-0.2,0.1-0.4,0.2-0.6c0.1-0.2,0.3-0.8,0.5-1.2c0.2-0.9,0.6-1.8,1.2-2.5c0.3-0.2,0.6-0.4,0.9-0.4l0.5-0.9l0,0 + c6.2,2.4,13,2.4,19.2,0l0,0l0.3,0.6l0.2,0.4h0.1c0.4,0.1,0.7,0.3,0.9,0.6c0.6,1.1,1.1,2.3,1.4,3.4l0,0c0,0.2,0.1,0.4,0.2,0.6 + c0.1,0.4,0.2,0.8,0.4,1.3l0.2,0.4v0.2c0.3,0.5,0.7,1,1.2,1.2c0.5,0.2,1.1,0.2,1.6,0c1-0.6,1.4-1.9,0.9-2.9v-0.2L66.8,82 + c-0.2-0.4-0.5-0.8-0.7-1.1l-0.4-0.5c-0.7-1-1.3-2.1-1.8-3.3c-0.1-0.4-0.1-0.8,0.1-1.1v-0.1c-0.1-0.2-0.2-0.4-0.2-0.6V75l0,0 + c5.7-3.4,10-8.8,12-15.1l0,0l0.9,0.2h0.1c0.3-0.2,0.7-0.4,1-0.4c1.2,0.2,2.4,0.6,3.6,1l0,0l0.6,0.3c0.4,0.2,0.8,0.3,1.2,0.5h0.3 + h0.2l0,0c1,0.5,2.3,0,2.7-1c0.5-1,0-2.3-1-2.7c-0.3-0.1-0.5-0.2-0.8-0.2h-0.2h-0.4c-0.4-0.1-0.9-0.1-1.3-0.1h-0.7l0,0 + c-1.2-0.1-2.5-0.3-3.7-0.6c-0.3-0.2-0.6-0.6-0.7-1l0,0l-0.8-0.3l0,0c0.9-6.6-0.6-13.2-4.3-18.7l0,0l0.4-0.4l0.3-0.3v-0.3 + c0-0.4,0.1-0.8,0.4-1c1-0.8,2-1.6,3.1-2.2l0.6-0.3c0.4-0.2,0.8-0.4,1.1-0.7l0.3-0.2l0.2-0.1c0.5-0.4,0.8-0.9,0.9-1.5 + c0.1-0.5,0-1.1-0.4-1.6c-0.8-0.9-2.2-1-3.1-0.2c0,0,0,0,0,0l-0.1,0.1l-0.3,0.3c-0.3,0.3-0.6,0.6-0.9,1L74.5,30l0,0 + c-0.9,0.9-1.8,1.8-2.9,2.5c-0.4,0.2-0.8,0.2-1.2,0.2h-0.1l-0.8,0.6l0,0c-2.3-2.4-4.9-4.3-7.9-5.7c-3-1.4-6.1-2.3-9.4-2.6l0,0 + c0-0.3,0-0.8,0-0.9l-0.1-0.1c-0.3-0.2-0.5-0.6-0.6-0.9c0-1.2,0-2.5,0.2-3.7v-0.2c0-0.2,0-0.5,0.1-0.7c0.1-0.4,0.2-0.9,0.2-1.3 + c0-0.1,0-0.3,0-0.4c0-0.1-0.1-0.2-0.1-0.2c0-0.6-0.2-1.2-0.6-1.6c-0.3-0.4-0.8-0.6-1.4-0.7l0,0c-1.2,0.1-2,1.1-2,2.3l0,0v0.2 + c0,0.1,0,0.3,0,0.4c0,0.5,0,0.9,0,1.4c0,0.2,0,0.4,0.1,0.7l0,0c0.2,1.2,0.3,2.5,0.2,3.8c-0.1,0.4-0.3,0.8-0.7,1.1v0.9l0,0 + c-1.3,0.1-2.5,0.3-3.8,0.6c-5.2,1.2-10,3.8-13.6,7.7l0,0l-0.7-0.5h-0.1c-0.4,0.1-0.7,0.1-1.1-0.1c-1-0.7-1.9-1.6-2.8-2.5l0,0 + l-0.5-0.5c-0.3-0.3-0.6-0.7-0.9-0.9l-0.4-0.3h-0.1c-0.4-0.3-0.9-0.5-1.4-0.6c-0.6,0-1.3,0.2-1.7,0.7c-0.7,1-0.5,2.3,0.5,3 + c0,0,0,0,0,0l0,0l0.1,0.1l0.3,0.2c0.4,0.3,0.7,0.5,1.1,0.7l0.6,0.3c1.1,0.6,2.2,1.3,3.1,2c0.2,0.3,0.4,0.7,0.4,1.1l0,0l0.7,0.6l0,0 + c-3.7,5.5-5.2,12.2-4.2,18.8l0,0l-0.8,0.4V56c-0.2,0.3-0.5,0.6-0.8,0.8c-1.2,0.3-2.4,0.5-3.7,0.6l0,0h-0.7c-0.4,0-0.9,0-1.3,0.1 + h-0.4h-0.2l0,0c-1.1,0-2,1-2,2.1c0,1.1,1,2,2.1,2c0.3,0,0.6-0.1,0.8-0.2l0,0h0.2h0.4c0.4-0.1,0.8-0.3,1.2-0.5l0.5-0.2l0,0 + c1.2-0.4,2.4-0.8,3.6-1c0.4,0,0.8,0.1,1.1,0.4l0,0l0.9-0.2l0,0c2,6.3,6.3,11.6,12,14.9l0,0L36,75.9z M50,73.3 + c-2.4,0-4.7-0.4-6.9-1.1l0,0l5.3-9.6l0,0c0.3-0.6,1-1,1.7-1c0.7,0,1.3,0.4,1.7,1l0,0l5.3,9.6l0,0c-0.7,0.2-1.4,0.4-2.1,0.6 + C53.3,73.1,51.7,73.3,50,73.3z M43.1,72.1c3.8,1.3,7.9,1.5,11.8,0.6c0.7-0.2,1.4-0.4,2.1-0.6l-5.3-9.5l0,0c-0.3-0.6-1-1-1.7-0.9 + l0,0c-0.6,0-1.2,0.4-1.5,1l0,0L43.1,72.1z M61.6,69.9L61.6,69.9l-4.2-10.1l0,0c-0.4-1,0.1-2,1-2.4c0.2-0.1,0.4-0.1,0.6-0.1h0.5 + L70.4,59l0,0C68.8,63.5,65.7,67.4,61.6,69.9L61.6,69.9L61.6,69.9z M57.5,59.8l4.2,10.1c4-2.6,7-6.4,8.6-10.9l-10.8-1.8l0,0h-0.4 + l0,0c-1,0-1.8,0.9-1.8,1.9C57.3,59.4,57.4,59.6,57.5,59.8L57.5,59.8z M38.4,69.9L38.4,69.9c-4-2.6-7-6.4-8.6-10.8l0,0l10.8-1.8h0.4 + c1,0,1.8,0.9,1.8,1.9c0,0.2,0,0.4-0.1,0.6l0,0l0,0L38.4,69.9z M29.8,59.1c1.6,4.4,4.6,8.2,8.6,10.8l4.1-10.1l0,0l0,0 + c0.4-0.9,0-2-0.9-2.4c-0.2-0.1-0.5-0.2-0.7-0.2h-0.4l0,0L29.8,59.1z M50,55.6L50,55.6l-3-1.5l0,0l-0.7-3.2l0,0l2.1-2.6h3.4l2.1,2.6 + L53,54.2l0,0L50,55.6z M47,54.1l3,1.4l3-1.4l0.7-3.2l-2.1-2.6h-3.3l-2.1,2.6L47,54.1z M28.6,54L28.6,54c-0.5-4.7,0.6-9.5,3-13.6 + l0,0l8.2,7.3l0,0c0.8,0.7,0.8,1.8,0.2,2.6c-0.2,0.3-0.5,0.5-0.9,0.6l0,0l0,0L28.6,54z M31.6,40.5c-2.5,4-3.5,8.8-3,13.4l10.4-3l0,0 + l0,0c1-0.3,1.5-1.2,1.3-2.2c-0.1-0.4-0.3-0.7-0.6-0.9l0,0l0,0L31.6,40.5z M71.5,53.9L71.5,53.9l-10.5-3l0,0c-1-0.3-1.6-1.3-1.3-2.3 + c0.1-0.3,0.3-0.7,0.6-0.9l0,0l8.1-7.3l0,0C70.8,44.4,71.9,49.2,71.5,53.9L71.5,53.9L71.5,53.9z M61,50.8l10.5,3.1 + c0.4-4.7-0.7-9.4-3.1-13.5l-8.1,7.3l0,0c-0.8,0.6-0.9,1.8-0.2,2.5C60.3,50.5,60.6,50.7,61,50.8L61,50.8L61,50.8L61,50.8z M44.9,43 + c-0.4,0-0.8-0.1-1.1-0.4l0,0l-9-6.3l0,0c2.9-2.8,6.4-4.7,10.3-5.6c0.7-0.1,1.5-0.3,2.2-0.3l0,0l-0.6,10.9l0,0 + C46.8,42.2,45.9,43.1,44.9,43L44.9,43z M43.8,42.6L43.8,42.6c0.8,0.6,1.9,0.4,2.5-0.4c0.2-0.3,0.3-0.7,0.4-1l0,0l0.7-10.9 + c-0.7,0.1-1.5,0.2-2.2,0.4c-3.9,0.9-7.5,2.8-10.3,5.6L43.8,42.6L43.8,42.6L43.8,42.6z M55.1,42.9c-1,0-1.8-0.8-1.8-1.8l0,0 + l-0.6-10.9l0,0c4.7,0.6,9.1,2.7,12.5,6l0,0l-8.9,6.3l0,0C55.9,42.9,55.5,43,55.1,42.9L55.1,42.9z M53.2,41.1L53.2,41.1 + c0.1,1,0.9,1.8,1.9,1.7c0.4,0,0.7-0.1,1-0.3l0,0l8.9-6.3c-3.4-3.3-7.8-5.3-12.4-5.9L53.2,41.1z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/jaeger.1c7d1266.svg b/extensions/harvester/1.5.0-dev/plugin/img/jaeger.1c7d1266.svg new file mode 100644 index 00000000..5c079273 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/jaeger.1c7d1266.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="25.15 -3.85 449.70 512.20"><style>svg {enable-background:new 0 0 504 504}</style><style>.st0{fill:none}.st1{fill:#231f20}.st2{fill:#67cfe3}.st3{fill:#dfcaa3}</style><path d="M274.853 195.985c-23.21 0-42.027 18.817-42.027 42.028 0 23.21 18.816 42.027 42.027 42.027 23.21 0 42.027-18.816 42.027-42.027 0-23.211-18.816-42.028-42.027-42.028zm-5.68 69.289c-7.318 0-13.251-5.933-13.251-13.252 0-7.319 5.933-13.252 13.252-13.252 7.318 0 13.252 5.933 13.252 13.252 0 7.319-5.934 13.252-13.252 13.252zm-1.832 30.332c-6.783-2.773-15.704-4.225-26.515-4.316l-4.746-.04c-2.79-5.183-11.735-8.03-21.926-6.765 10.19-1.265 19.136 1.582 21.925 6.764a7.319 7.319 0 0 1 .896 3.616c-.087 6.223-8.003 12.439-18.768 14.654a40.55 40.55 0 0 1-.804.157c-.243.045-.485.091-.73.132-11.605 1.927-21.962-1.483-24.075-7.684l-3.892 1.315c-2.416.816-23.664 8.403-25.649 23.284-.66 4.949.675 9.488 3.86 13.125 3.833 4.379 10.096 6.993 16.753 6.993 3.602 0 6.946-.796 9.668-2.3 1.699-.939 3.513-2.076 5.434-3.28 6.576-4.12 14.76-9.247 24.674-10.552.887-.117 2.365-.176 4.392-.176 2.209 0 4.861.068 7.669.14 3.241.084 6.914.179 10.477.179 10.495 0 16.8-.816 21.08-2.728 9.065-4.051 13.566-11.942 12.038-21.107-.763-4.57-4.94-8.623-11.761-11.411zm-2.893 26.664c-3.937 1.758-11.067 2.17-18.464 2.17-6.508 0-13.221-.319-18.146-.319-2.132 0-3.929.06-5.229.231-14.387 1.893-25.178 10.601-32.372 14.577-1.815 1.003-4.135 1.5-6.567 1.5-7.208 0-15.39-4.366-14.257-12.859 1.514-11.358 21.345-18.057 21.345-18.057 2.547 3.147 6.879 6.77 17.889 6.77 2.9 0 6.262-.251 10.176-.829 20.692-3.05 21.949-17.753 21.949-17.753 22.338.19 31.376 6.594 32.005 10.37.568 3.408.568 10.223-8.33 14.199z" class="st0"/><path d="M216.328 337.591c-5.387 2.072-10.163 5.023-14.296 7.61l-.186.117c.952 4.416 4.141 14.599 12.995 11.961 4.58-1.364 4.671-6.963 3.681-12.077-.587-3.038-1.556-5.905-2.194-7.61zm23.091-2.301a959.6 959.6 0 0 1-2.474-.062c-2.792-.072-5.427-.14-7.6-.14-2.38 0-3.512.083-4.043.153-1.08.142-2.14.34-3.181.574.375 2.361 1.048 5.996 2.058 9.387 1.19 3.998 2.851 7.656 5.05 8.48 2.31.867 11.159 1.642 11.03-8.48a18.821 18.821 0 0 0-.05-1.174c-.304-4.057-.571-6.829-.79-8.738zm-65.029-37.338c7.566-7.6 12.244-18.078 12.244-29.65 0-23.21-18.816-42.027-42.027-42.027s-42.028 18.817-42.028 42.028 18.816 42.027 42.028 42.027a41.82 41.82 0 0 0 21.27-5.784 42.186 42.186 0 0 0 8.512-6.594zm-33.57-1.631c-7.319 0-13.252-5.933-13.252-13.252 0-7.319 5.933-13.252 13.252-13.252 7.319 0 13.252 5.933 13.252 13.252 0 7.319-5.933 13.252-13.252 13.252z" class="st0"/><path d="M142.819 451.05c-7.194 1.645-28.364 13.155-46.657 16.649-18.292 3.494-34.119 5.344-39.668 7.399s-9.866 6.166 1.028 10.277c10.893 4.11 63.716 5.55 68.443 0 4.727-5.55-3.26-7.955-14.799-7.81-8.221.102-7.213-2.763-7.193-3.084 0 0 .514-3.596 13.154-5.344 12.62-1.744 68.443-6.988 67.416-12.948-1.028-5.96-34.53-6.783-41.724-5.139z" class="st1"/><ellipse cx="106.593" cy="495.035" class="st1" rx="10.945" ry="3.186" transform="rotate(-12.278 106.593 495.035)"/><ellipse cx="81.261" cy="493.596" class="st1" rx="11.51" ry="3.083" transform="rotate(-4.551 81.26 493.596)"/><ellipse cx="61.016" cy="491.078" class="st1" rx="7.708" ry="2.415" transform="rotate(-7.758 61.016 491.078)"/><ellipse cx="46.063" cy="488.766" class="st1" rx="7.451" ry="1.953" transform="rotate(-8.26 46.063 488.766)"/><ellipse cx="42.672" cy="484.553" class="st1" rx="7.451" ry="1.953" transform="rotate(-8.26 42.672 484.552)"/><ellipse cx="41.785" cy="479.788" class="st1" rx="6.477" ry="1.697" transform="rotate(-8.261 41.785 479.788)"/><path d="M252.575 456.805c-12.538.617-40.902-.822-44.807 5.755-3.905 6.577 11.51 9.044 35.764 6.988 24.253-2.055 58.577-4.727 60.016-12.126 1.439-7.4-6.372-5.96-7.194-10.688-.822-4.727 8.633-4.727 10.482-11.716 1.85-6.988-12.743-6.166-25.692-6.166-12.948 0-34.53 1.234-36.585 8.016-2.055 6.783 9.866 6.783 18.293 8.427 8.427 1.645 5.96 4.728 5.96 4.728-.41 4.316-3.7 6.166-16.237 6.782z" class="st1"/><ellipse cx="219.047" cy="474.841" class="st1" rx="10.868" ry="3.545"/><ellipse cx="247.026" cy="474.07" class="st1" rx="7.245" ry="3.237"/><ellipse cx="269.609" cy="471.758" class="st1" rx="7.939" ry="2.621"/><ellipse cx="287.028" cy="468.829" class="st1" rx="5.781" ry="2.775"/><ellipse cx="302.058" cy="465.669" class="st1" rx="5.858" ry="2.698"/><path d="M46.47 389.879c0 3.504 7.645 6.818 21.222 9.767-.967-7.032-.37-14.125.537-19.65-13.913 2.978-21.758 6.332-21.758 9.883zm400.637-9.081a31.8 31.8 0 0 1-.66 1.683 30.59 30.59 0 0 1-7.122 10.25c-6.133 5.808-11.51 9.289-16.312 10.558 26.534-3.73 42.285-8.374 42.285-13.41 0-3.235-6.515-6.308-18.19-9.081z" class="st1"/><path d="M401.72 373.427c-1.687-12.369-6.963-17.917-11.617-22.813-4.334-4.56-8.429-8.865-7.11-16.771 1.218-7.309 7.033-11.806 16.533-12.975-5.77-39.002-14.225-88.207-25.095-130.183-5.428-20.964-14.013-35.525-25.526-45.206-13.176 6.74-29.025 14.15-46.717 21.821a1223.516 1223.516 0 0 1-38.532 15.908c-10.104 10.84-21.144 21.524-27.91 24.569-4.817 2.167-9.098 3.03-12.818 3.03-8.055 0-13.493-4.04-16.126-7.634-3.052.807-5.49 1.33-7.147 1.505-1.983.208-4.906.456-8.56.72 1.404 3.677.845 7.982-1.848 11.226-2.962 3.569-7.735 5.361-14.5 5.361-9.734 0-23.592-3.712-42.122-11.197-2.726-1.1-5.23-2.08-7.528-2.951-1.42.007-2.838.012-4.256.012h-.013c-17.703 0-31.538-.557-42.384-1.445-11.879 24.59-6.717 51.863-2.369 74.393 4.167 21.591 18.623 60.008 32.032 93.016a2069.253 2069.253 0 0 0 13.91 33.364c36.3 3.211 82.84 5.14 133.585 5.14 60.39 0 114.785-2.736 153.09-7.108-2.79-11.486-6.326-27.467-6.934-31.532l-.038-.25zM102.58 268.303c0-23.211 18.815-42.028 42.027-42.028s42.027 18.817 42.027 42.028c0 11.571-4.678 22.05-12.245 29.65a42.186 42.186 0 0 1-8.512 6.593 41.82 41.82 0 0 1-21.27 5.784c-23.212 0-42.028-18.816-42.028-42.027zm112.261 88.976c-8.854 2.638-12.043-7.545-12.995-11.96.06-.04.125-.08.186-.117 4.133-2.588 8.909-5.54 14.296-7.61.638 1.705 1.607 4.572 2.194 7.61.99 5.114.899 10.713-3.68 12.077zm14.388-3.597c-2.199-.824-3.86-4.482-5.05-8.48-1.01-3.39-1.683-7.026-2.058-9.387 1.041-.235 2.1-.432 3.18-.574.532-.07 1.664-.153 4.043-.153 2.174 0 4.81.068 7.6.14.801.02 1.63.042 2.475.062.219 1.91.486 4.681.79 8.738.03.408.045.796.05 1.174.129 10.122-8.72 9.347-11.03 8.48zm37.834-25.558c-4.28 1.912-10.584 2.728-21.08 2.728-3.562 0-7.235-.095-10.476-.178-2.808-.073-5.46-.14-7.669-.14-2.027 0-3.505.058-4.392.175-9.914 1.305-18.098 6.432-24.674 10.553-1.92 1.203-3.735 2.34-5.434 3.279-2.722 1.504-6.066 2.3-9.668 2.3-6.657 0-12.92-2.614-16.753-6.993-3.185-3.637-4.52-8.176-3.86-13.125 1.985-14.88 23.233-22.468 25.65-23.284l3.89-1.315a7.292 7.292 0 0 1-.295-1.16c-1.15-6.927 7.896-14.2 20.205-16.244a41.82 41.82 0 0 1 1.647-.235c10.19-1.265 19.137 1.582 21.926 6.764l4.746.04c10.81.092 19.732 1.544 26.515 4.317 6.822 2.788 10.998 6.84 11.76 11.411 1.529 9.165-2.972 17.056-12.038 21.107zm7.79-48.084c-23.21 0-42.027-18.816-42.027-42.027 0-23.211 18.816-42.028 42.027-42.028 23.21 0 42.027 18.817 42.027 42.028 0 23.21-18.816 42.027-42.027 42.027z" class="st2"/><path d="M328.68 96.41l-.314-.548-.415-.526c-.39-.626-1.93-1.593-2.05-1.603l-.157-.084-.08-.042-.3-.13-.026-.01-.053-.02-.427-.15-.859-.294c-.565-.21-1.21-.283-1.82-.41-.62-.11-1.277-.106-1.917-.147-.645.023-1.301.067-1.942.159-2.582.455-4.86 1.705-6.595 3.192-1.762 1.484-3.083 3.184-4.155 4.87-2.13 3.39-3.327 6.77-4.119 9.685a40.4 40.4 0 0 0-1.242 7.155c-.09.867-.083 1.565-.102 2.031-.007.47.007.723.007.723l1.316-2.39c.836-1.504 2.008-3.639 3.453-6.096 1.456-2.44 3.194-5.238 5.302-7.774 1.056-1.257 2.215-2.429 3.438-3.335 1.233-.895 2.494-1.509 3.75-1.71.317-.04.632-.07.952-.097.325.035.644-.002.976.058.332.081.662.077 1.004.188l.806.218.255.116c-.012-.01-.025-.019-.034-.031a.128.128 0 0 0 .043.008c.007.015.018.027.028.04l.034.016.073.035-.035-.004a.248.248 0 0 1-.049-.016c.04.025.076.085.11.165.174.31.301.924.363 1.603.08 1.402-.09 3.02-.353 4.552a67.319 67.319 0 0 1-.906 4.422c-.656 2.776-1.282 5.138-1.695 6.812-.43 1.668-.657 2.652-.657 2.652s.72-.71 1.804-2.081a42.869 42.869 0 0 0 4.026-6.03 36.571 36.571 0 0 0 2.1-4.476c.631-1.675 1.211-3.521 1.392-5.76.07-1.135.037-2.396-.448-3.842a5.392 5.392 0 0 0-.482-1.094z"/><path d="M323.403 99.457l-.037-.018c.015.014.026.033.045.043l.015.005-.008-.009c-.006-.006-.01-.014-.015-.021z"/><path d="M68.017 176.726h.577a97.188 97.188 0 0 1-.577-1.04v1.04zm5.148-16.286a33.069 33.069 0 0 0 3.542 5.618c.474.64.911 1.103 1.188 1.428.286.32.452.481.452.481s-.168-.908-.484-2.443c-.298-1.539-.754-3.712-1.168-6.241-.204-1.262-.391-2.618-.484-3.99-.075-1.35-.075-2.793.221-3.854.148-.526.342-.934.53-1.14.182-.186.33-.247.595-.341l.197-.04.32-.065c.092-.014-.025.052-.034.06a.213.213 0 0 1-.108.026.185.185 0 0 1-.052-.009l.04.023c.057.025.11.029.175.036.31.116.784.367 1.281.744 1.036.75 2.108 1.916 3.135 3.098a79.387 79.387 0 0 1 2.951 3.757c1.878 2.554 3.615 5.051 5.141 7.195a179.068 179.068 0 0 0 3.808 5.195 57.627 57.627 0 0 0 1.542 1.965l-.074-.656c-.067-.42-.133-1.054-.297-1.828a48.738 48.738 0 0 0-1.643-6.35 53.163 53.163 0 0 0-3.646-8.567c-.824-1.517-1.749-3.07-2.88-4.583-1.13-1.524-2.415-3.022-4.198-4.394-.925-.66-1.991-1.298-3.36-1.71a14.285 14.285 0 0 0-1.116-.214l-.282-.038-.38-.005c-.254.001-.51.013-.763.034-.225.02-.564.057-.685.088l-.315.085-.315.086-.417.122-.122.054-.245.11c-1.295.531-2.563 1.597-3.283 2.834-.738 1.228-1.026 2.466-1.128 3.565-.21 2.216.224 3.994.662 5.613a27.17 27.17 0 0 0 1.699 4.25z" class="st1"/><path d="M92.545 418.614c9.853 0 16.79-5.363 21.66-12.324-5.572-12.92-14.741-34.693-23.434-57.607-2.354 2.002-5.073 5.025-8.015 9.585-7.324 11.352-13.356 37.765-5.759 51.706 3.167 5.815 8.254 8.64 15.548 8.64zm347.847-65.447c-5.776-14.944-18.059-25.552-29.869-25.799l-.423-.036c-.018-.004-2.288-.342-5.337-.342-6.433 0-14.329 1.373-15.419 7.911-.756 4.537 1.228 6.861 5.425 11.276 4.797 5.044 11.364 11.952 13.331 26.38 2.253 16.523 6.288 24.903 11.99 24.904 2.663 0 7.519-1.596 15.546-9.2 9.886-9.366 8.939-24.269 4.756-35.094z" class="st3"/><circle cx="140.82" cy="283.069" r="13.252" class="st1"/><circle cx="269.174" cy="252.022" r="13.252" class="st1"/><path fill="#648c1a" d="M104.872 135.026c10.341 2.791 22.033 4.206 34.752 4.206 20.436 0 63.826-3.97 124.812-30.561l1.373-.599c-.191-3.097.06-6.493.84-10.048 1.354-6.15 4.033-11.363 7.322-14.816-.635-2.359-1.157-4.082-1.52-4.957-7.038-3.752-65.056-25.363-95.313-25.363-3.023 0-5.663.225-7.846.67-26.817 5.474-67.563 52.092-69.026 58.701-.44 2.86-.306 11.836.015 21.528l4.591 1.24zm-.522 66.202c-1.466-.306-2.287-.4-2.624-.428-5.591.345-10.717-3.565-11.75-9.236a11.274 11.274 0 0 1-.164-1.717c-3.042 1.726-6.086 3.592-8.935 5.564l-5.066 3.508-3.728-4.907c-1.123-1.48-6.309-8.476-11.088-17.68-8.976 4.235-15.988 8.864-17.7 13.25-.324.832-.193 1.28.143 1.772 1.465 2.145 10.155 8.701 60.911 9.874zm105.388-14.372c4.457-2.837 10.15-2.15 13.813 1.336.565-.089 1.524-.33 2.946-.97 5.557-2.64 25.598-24.037 40.824-42.36a11.102 11.102 0 0 1 1.811-1.731c-34.795 15.035-83.414 31.467-129.707 31.467-7.44 0-14.505-.434-21.063-1.283l1.016 2.993-5.789 2.217c-.042.016-1.037.4-2.702 1.092 7.452 1.741 17.525 5.163 30.177 10.273 23.158 9.352 32.014 9.71 34.23 9.577 3.15-1.668 6.954-1.733 10.211-.142 6.007-.385 10.68-.758 13.475-1.052 1.271-.134 3.16-.53 5.563-1.15a11.265 11.265 0 0 1 5.195-10.267zm134.793-68.77c-1.686 10.05-4.927 21.082-7.076 24.092l-2.017 2.82c9.132-4.446 17.278-8.663 24.193-12.54 24.043-13.481 27.032-19.384 27.376-20.873.225-.975-.014-1.276-.117-1.404-.261-.329-1.95-1.967-9.544-1.967-8.298 0-19.916 1.898-32.04 4.529a117.98 117.98 0 0 1-.775 5.343zm-9.374 27.049l-3.467-.282c-.063-.005-6.429-.516-15.061-.516-8.968 0-20.793.542-30.496 2.839 1.853 3.851 1.433 8.59-1.477 12.091a631.95 631.95 0 0 1-11.206 13.104 1201.72 1201.72 0 0 0 26.176-10.979c12.961-5.62 24.91-11.092 35.53-16.257z"/><path d="M267.01 114.574c-24.37 10.625-77.765 31.098-127.386 31.098-12.563 0-24.883-1.312-36.43-4.429a103.396 103.396 0 0 1 3.58 5.843c4.291 7.539 7.43 14.986 9.14 19.381 6 .938 13.83 1.691 23.511 1.691 28.503 0 73.052-6.524 134.181-34.037.96-3.015 2.238-6.79 3.822-10.985-.124.006-.247.027-.371.027-.65 0-1.3-.07-1.93-.208-3.794-.834-6.602-3.928-8.117-8.381z" class="st3"/><path d="M68.594 176.726c4.402 7.838 8.618 13.39 8.618 13.39 14.766-10.222 34.076-17.605 34.076-17.605s-.496-1.457-1.426-3.837a145.917 145.917 0 0 0-1.76-4.311 161.363 161.363 0 0 0-2.005-4.504 150.289 150.289 0 0 0-1.055-2.222 135.584 135.584 0 0 0-2.482-4.863c-1.49-2.772-3.144-5.594-4.946-8.295-5.927-8.887-13.44-16.448-21.853-16.446-2.652 0-5.396.753-8.204 2.45-15.458 9.347-7.48 30.75.46 45.204.192.35.385.697.577 1.04zm2.21-26.15c.102-1.099.39-2.337 1.128-3.565.72-1.237 1.988-2.303 3.283-2.834l.245-.11.122-.054.417-.122.315-.086.315-.085c.12-.03.46-.068.685-.088.254-.021.51-.033.763-.034l.38.005.282.038c.373.058.753.128 1.116.214 1.369.412 2.435 1.05 3.36 1.71 1.783 1.372 3.067 2.87 4.197 4.394 1.132 1.513 2.057 3.066 2.881 4.583a53.163 53.163 0 0 1 3.646 8.566 48.738 48.738 0 0 1 1.643 6.35c.164.775.23 1.408.297 1.829l.074.656s-.592-.71-1.542-1.965a179.068 179.068 0 0 1-3.808-5.195c-1.526-2.144-3.263-4.64-5.141-7.195a79.387 79.387 0 0 0-2.951-3.757c-1.027-1.182-2.1-2.347-3.135-3.098-.497-.377-.97-.628-1.28-.744-.066-.007-.119-.01-.175-.036l-.04-.023a.185.185 0 0 0 .051.01.213.213 0 0 0 .108-.028c.009-.007.126-.073.034-.059l-.32.065-.197.04c-.264.094-.413.155-.595.34-.188.207-.382.615-.53 1.141-.296 1.06-.296 2.505-.22 3.853.092 1.373.279 2.729.483 3.99.414 2.53.87 4.703 1.168 6.242.316 1.535.484 2.443.484 2.443s-.166-.16-.452-.48c-.277-.326-.714-.79-1.188-1.429a33.069 33.069 0 0 1-3.542-5.618 27.216 27.216 0 0 1-1.699-4.251c-.438-1.62-.873-3.397-.662-5.613zm4.96-25.763v3.22z" class="st2"/><path d="M282.872 78.738a9 9 0 0 1 1.93.208c4.725 1.04 7.918 5.588 8.992 11.897 9.009-12.652 18.833-19.05 29.334-19.05 4.426 0 8.311 1.044 11.57 3.059 5.54-6.738 9.065-11.385 9.065-11.385-4.165.757-12.874 1.893-12.874 1.893 32.94-12.116 30.29-45.056 30.29-45.056 0 5.68-17.038 19.31-17.038 19.31.758-4.922-1.893-11.359-1.893-11.359.758 6.437-19.688 23.096-19.688 23.096 1.514-3.029.378-8.33.378-8.33-1.136 6.058-10.222 8.33-10.222 8.33 5.679-6.815 16.28-42.784 8.33-45.056-7.952-2.272-18.932 23.475-18.932 23.475-.379-6.058-3.786-6.058-3.786-6.058 1.514 18.93-13.63 34.076-13.63 34.076-1.136-3.786-7.195-5.68-7.195-5.68 1.945 4.214-.27 23.395-.95 28.836 2.01-1.42 4.158-2.206 6.319-2.206z" class="st3"/><path d="M274.777 115.57l.026.025c.162.177.33.336.503.473.063.05.13.083.194.128.125.087.25.176.38.241.205.103.414.181.629.228h.001a2.998 2.998 0 0 0 1.057.02c.992-.153 2.083-.77 3.175-1.787a173.277 173.277 0 0 1 3.22-7.09 144.189 144.189 0 0 1 3.213-6.276c1.617-8.56-.56-15.593-3.757-16.296a2.48 2.48 0 0 0-.546-.059c-3.286 0-8.061 5.718-9.933 14.23-1.357 6.178-.73 11.668.871 14.736l.006.012c.29.554.613 1.03.96 1.415z"/><path d="M323.375 99.416a.128.128 0 0 1-.043-.008c.009.012.022.02.034.031l.037.018c-.01-.014-.02-.026-.028-.041zm.135.091l-.073-.035-.034-.015c.005.007.009.015.015.021l.008.009a.248.248 0 0 0 .05.016l.034.004z" class="st2"/><path d="M323.128 78.234c-18.752 0-32.548 28.226-39.758 47.402a215.436 215.436 0 0 0-3.516 10.104 189.136 189.136 0 0 0-1.614 5.282c.906.184 1.792.492 2.645.904 10.926-3.27 25.066-4.028 35.744-4.028 9.036 0 15.586.537 15.586.537 2.84-3.976 19.31-60.201-9.087-60.201zm6.482 23.111c-.18 2.24-.76 4.086-1.393 5.76a36.571 36.571 0 0 1-2.099 4.477 42.869 42.869 0 0 1-4.026 6.03c-1.085 1.37-1.804 2.08-1.804 2.08s.228-.983.657-2.651c.413-1.674 1.04-4.036 1.695-6.812.325-1.386.652-2.88.906-4.422.263-1.532.432-3.15.353-4.552-.062-.679-.19-1.293-.363-1.603-.034-.08-.07-.14-.11-.165l-.015-.005c-.02-.01-.03-.029-.045-.043l-.255-.116-.806-.218c-.342-.111-.672-.107-1.004-.188-.332-.06-.651-.023-.976-.058-.32.028-.635.057-.952.096-1.256.202-2.517.816-3.75 1.711-1.223.906-2.382 2.078-3.438 3.335-2.108 2.536-3.846 5.333-5.302 7.774-1.445 2.457-2.617 4.592-3.453 6.096l-1.316 2.39s-.014-.253-.007-.723c.019-.466.013-1.164.102-2.031a40.4 40.4 0 0 1 1.242-7.155c.792-2.916 1.99-6.296 4.119-9.686 1.072-1.685 2.393-3.385 4.155-4.869 1.735-1.487 4.013-2.737 6.595-3.192a18.468 18.468 0 0 1 1.942-.159c.64.04 1.297.038 1.916.147.61.127 1.256.2 1.821.41l.86.294.426.15.053.02.026.01.3.13.08.042.158.084c.12.01 1.659.977 2.05 1.603l.414.526.314.548c.22.373.366.736.482 1.094.485 1.446.518 2.707.448 3.841z" class="st2"/><path d="M222.928 203.992c3.066 0 6.438-.817 10.022-2.43 7.47-3.362 25.709-21.674 46.465-46.65a4.422 4.422 0 0 0 1.009-3.257 4.424 4.424 0 0 0-1.588-3.016 4.397 4.397 0 0 0-2.84-1.029 4.449 4.449 0 0 0-3.434 1.608c-9.036 10.874-34.4 40.007-43.138 44.16l-.13.06c-1.7.765-3.277 1.265-4.685 1.486l-3.32.522-2.435-2.317a4.501 4.501 0 0 0-3.078-1.221 4.43 4.43 0 0 0-2.38.699 4.423 4.423 0 0 0-1.957 2.79 4.428 4.428 0 0 0 .592 3.358c.34.536 3.544 5.237 10.897 5.237zm-42.348.98c-.731 0-1.455.18-2.094.518l-1.308.693-1.479.087c-.285.017-.637.03-1.065.03-4.158 0-14.381-1.31-36.122-10.09-23.975-9.683-33.472-11.13-37-11.13-.67 0-1.065.055-1.245.087a4.427 4.427 0 0 0-2.865 1.847 4.42 4.42 0 0 0-.72 3.329c.38 2.088 2.254 3.663 4.358 3.663.088 0 .176-.003.266-.008l.493-.031.491.04c2.644.22 11.14 1.68 32.887 10.462 17.58 7.1 30.894 10.701 39.57 10.701 4.545 0 7.659-.975 9.256-2.9a4.422 4.422 0 0 0 1.007-3.255 4.424 4.424 0 0 0-1.588-3.015 4.406 4.406 0 0 0-2.842-1.028z"/><path d="M240.772 297.701s-1.257 14.703-21.949 17.753c-3.914.578-7.277.829-10.176.829-11.01 0-15.342-3.623-17.889-6.77 0 0-19.83 6.699-21.345 18.057-1.133 8.493 7.05 12.859 14.257 12.859 2.432 0 4.752-.497 6.567-1.5 7.194-3.976 17.985-12.684 32.372-14.577 1.3-.17 3.097-.23 5.23-.23 4.924 0 11.637.318 18.145.318 7.397 0 14.527-.412 18.464-2.17 8.897-3.976 8.897-10.791 8.33-14.199-.63-3.776-9.668-10.18-32.006-10.37z" class="st3"/><path d="M216.672 309.808c.246-.04.488-.087.73-.132.27-.05.539-.102.805-.157 10.765-2.215 18.681-8.431 18.768-14.654a7.319 7.319 0 0 0-.896-3.616c-2.789-5.182-11.734-8.03-21.925-6.764a42.09 42.09 0 0 0-1.647.235c-12.31 2.044-21.355 9.317-20.205 16.245.066.397.167.783.296 1.16 2.113 6.2 12.47 9.61 24.074 7.683z" class="st1"/></svg> \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/k3s-black.b4765216.svg b/extensions/harvester/1.5.0-dev/plugin/img/k3s-black.b4765216.svg new file mode 100644 index 00000000..0a815c23 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/k3s-black.b4765216.svg @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<path d="M89.4,9.1H10.6C4.7,9.1,0,13.8,0,19.6v60.7c0,5.8,4.7,10.6,10.6,10.6h78.8c5.8,0,10.6-4.7,10.6-10.6V19.6 + C100,13.8,95.3,9.1,89.4,9.1z M42.3,68.6L23,79.8c-3.4,2-7.7-0.5-7.7-4.4c0-1.8,1-3.5,2.6-4.5l19.2-11.2c3.4-2,7.7,0.5,7.7,4.4 + C44.8,66,43.8,67.7,42.3,68.6z M49.8,51.6L49.8,51.6c-2.9,0-5.2-2.3-5.1-5.2l0.1-22.2c0-2.8,2.3-5.1,5.1-5.1l0,0 + c2.8,0,5.1,2.3,5.1,5.2l0,22.1C55,49.3,52.7,51.6,49.8,51.6z M83.9,77.9c-1.4,2.5-4.6,3.3-7,1.9L57.6,68.7c-3.4-2-3.4-6.9,0-8.9 + c1.6-0.9,3.6-0.9,5.2,0L82,70.9C84.4,72.3,85.3,75.4,83.9,77.9z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/k3s.f0881505.svg b/extensions/harvester/1.5.0-dev/plugin/img/k3s.f0881505.svg new file mode 100644 index 00000000..0367e537 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/k3s.f0881505.svg @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#FFFFFF;} + .st1{fill:#FFC61C;} +</style> +<rect x="6.8" y="15.8" class="st0" width="86.5" height="68.2"/> +<path class="st1" d="M89.4,9.1H10.6C4.7,9.1,0,13.8,0,19.6v60.7c0,5.8,4.7,10.6,10.6,10.6h78.8c5.8,0,10.6-4.7,10.6-10.6V19.6 + C100,13.8,95.3,9.1,89.4,9.1z M42.3,68.6L23,79.8c-3.4,2-7.7-0.5-7.7-4.4c0-1.8,1-3.5,2.6-4.5l19.2-11.2c3.4-2,7.7,0.5,7.7,4.4 + C44.8,66,43.8,67.7,42.3,68.6z M49.8,51.6L49.8,51.6c-2.9,0-5.2-2.3-5.1-5.2l0.1-22.2c0-2.8,2.3-5.1,5.1-5.1h0 + c2.8,0,5.1,2.3,5.1,5.2L55,46.4C55,49.3,52.7,51.6,49.8,51.6z M83.9,77.9c-1.4,2.5-4.6,3.3-7,1.9L57.6,68.7c-3.4-2-3.4-6.9,0-8.9 + c1.6-0.9,3.6-0.9,5.2,0L82,70.9C84.4,72.3,85.3,75.4,83.9,77.9z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/keycloak.ca7b4848.svg b/extensions/harvester/1.5.0-dev/plugin/img/keycloak.ca7b4848.svg new file mode 100644 index 00000000..44cc4693 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/keycloak.ca7b4848.svg @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#4D4D4D;} + .st1{fill:#D3D3D3;} + .st2{fill:#25C6EB;} + .st3{fill:#00B7E5;} + .st4{fill:#008AAC;} +</style> +<g> + <polygon class="st0" points="51,17.1 43.8,5 14.9,5 7.7,17.1 0.5,30 7.7,42.9 14.9,55 43.8,55 51,42.9 58.2,30 "/> + <path class="st1" d="M57.2,17.1h-6.4h-43L0.2,30l7.5,12.9h43h6.4c1.3,0,2.6-1.3,2.6-2.6V19.7C59.8,18.4,58.7,17.1,57.2,17.1z"/> + <polygon class="st2" points="20.3,46.5 25.2,46.5 27.3,42.9 27.3,42.9 27.3,42.9 27.3,42.9 19.8,30 27.3,17.1 27.3,17.1 27.3,17.1 + 27.3,17.1 25.2,13.5 20.3,13.5 10.8,30 10.8,30 10.8,30 "/> + <polygon class="st2" points="38.4,46.5 33.5,46.5 31.4,42.9 31.4,42.9 31.4,42.9 31.4,42.9 38.9,30 31.4,17.1 31.4,17.1 31.4,17.1 + 31.4,17.1 33.5,13.5 38.4,13.5 47.9,30 47.9,30 47.9,30 "/> + <g> + <polygon class="st3" points="45.6,25.6 33.5,46.5 38.4,46.5 47.9,30 47.9,30 47.9,30 "/> + </g> + <g> + <polygon class="st4" points="13.1,34.4 25.2,13.5 20.3,13.5 10.8,30 10.8,30 10.8,30 "/> + </g> + <polygon class="st3" points="19.8,30 15.7,30 25.2,13.5 27.3,17.1 "/> + <polygon class="st4" points="38.9,30 43,30 33.5,46.5 31.4,42.9 "/> + <polygon class="st3" points="20.3,46.5 25.2,46.5 15.7,30 13.1,34.4 "/> + <polygon class="st3" points="43,30 33.5,13.5 31.4,17.1 38.9,30 "/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/kiali.d0e257dd.svg b/extensions/harvester/1.5.0-dev/plugin/img/kiali.d0e257dd.svg new file mode 100644 index 00000000..d0c7610d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/kiali.d0e257dd.svg @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#013144;} + .st1{fill:#2691D0;} +</style> +<g> + <path class="st0" d="M31.781599,6.7816014c-10.061718,0-18.2183971,8.1566811-18.2183971,18.218399 + s8.1604328,18.218399,18.218401,18.218399S50,35.0579681,50,25S41.8433189,6.7816014,31.781599,6.7816014z M31.781599,40.4457283 + c-8.5304394,0.0005188-15.4461479-6.9143524-15.4466648-15.4447918 + c-0.0005188-8.5304394,6.9143505-15.4461479,15.4447899-15.4466658s15.4461517,6.9143515,15.4466667,15.4447908 + c0,0.0003128,0,0.0006256,0,0.0009384c-0.000515,8.5298615-6.9149323,15.4446945-15.4447918,15.4457321V40.4457283z"/> + <path class="st1" d="M25.5262089,10.8749495c-7.8010521,3.4564991-11.3230057,12.5825453-7.8665066,20.3835983 + c1.5543461,3.5080395,4.358469,6.3121586,7.8665066,7.8665066c7.8010502-6.8965797,8.5342693-18.8113594,1.6376934-26.6124096 + C26.6520824,11.9336996,26.1051521,11.3867693,25.5262089,10.8749495z"/> + <path class="st1" d="M13.5632019,25c-0.0060539-4.1857929,1.4354668-8.2449131,4.0802155-11.4893246 + c-1.6182289-0.7431602-3.3781767-1.1271477-5.1588936-1.125577C5.5903649,12.3869743,0,18.0336189,0,25 + s5.5903649,12.6130295,12.4854612,12.6130295c1.7807169,0.0015717,3.5406637-0.3824196,5.1588945-1.1255798 + C14.9996767,33.2436676,13.5578461,29.1852646,13.5632019,25z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/kubernetes-black.2ade6358.svg b/extensions/harvester/1.5.0-dev/plugin/img/kubernetes-black.2ade6358.svg new file mode 100644 index 00000000..040665db --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/kubernetes-black.2ade6358.svg @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<g> + <path d="M44.9,42.9c1,0.1,1.9-0.7,1.9-1.7l0.6-10.9c-0.7,0.1-1.5,0.2-2.2,0.3c-3.9,0.9-7.5,2.8-10.3,5.6l9,6.3 + C44.2,42.8,44.5,42.9,44.9,42.9z"/> + <path d="M40.9,57.2h-0.5L29.7,59c1.6,4.4,4.6,8.2,8.6,10.8l4.2-10c0.1-0.2,0.2-0.5,0.2-0.7C42.7,58,41.9,57.2,40.9,57.2z"/> + <path d="M40,50.3c0.6-0.8,0.6-1.9-0.2-2.6l-8.2-7.3c-2.5,4-3.5,8.8-3,13.5l10.5-3C39.4,50.8,39.8,50.6,40,50.3z"/> + <path d="M53.6,42.2c0.6,0.8,1.8,1,2.6,0.4l8.9-6.3c-3.4-3.3-7.8-5.4-12.5-6l0.6,10.9C53.3,41.6,53.4,41.9,53.6,42.2z"/> + <polygon points="47,54.1 50,55.6 53,54.1 53.7,50.9 51.6,48.3 48.3,48.3 46.3,50.9 "/> + <path d="M60.3,47.8c-0.3,0.2-0.5,0.5-0.6,0.9c-0.3,0.9,0.3,1.9,1.3,2.2l10.5,3c0.5-4.7-0.6-9.5-3.1-13.5L60.3,47.8z"/> + <path d="M99.9,60.5l-8.5-37.3c-0.5-2-1.8-3.6-3.6-4.5L52.9,2.2c-1-0.5-2.1-0.7-3.2-0.7c-0.9,0-1.8,0.3-2.6,0.6L12.4,18.8 + c-1.8,0.9-3.2,2.5-3.6,4.5L0.2,60.6c-0.4,1.7-0.1,3.6,0.9,5.1l0.4,0.5l24,29.8c1.3,1.6,3.2,2.5,5.2,2.5h38.6c2,0,3.9-0.9,5.2-2.5 + l24.1-29.9C99.9,64.5,100.3,62.5,99.9,60.5z M86.1,60.5c-0.3,1.1-1.5,1.7-2.6,1.4L83,61.8c-0.7-0.2-1.3-0.4-1.9-0.7 + c-1.2-0.5-2.4-0.9-3.6-1.1c-0.5,0-0.9,0.1-1.2,0.4l-0.9-0.2c-2,6.3-6.3,11.7-12,15.1c0.1,0.2,0.2,0.5,0.3,0.8 + c-0.3,0.4-0.3,0.8-0.2,1.2c0.5,1.2,1.1,2.3,1.8,3.3c0.3,0.6,0.7,1.1,1,1.7l0.3,0.6c0.1,0.1,0.2,0.2,0.2,0.3 + c0.4,1.1-0.1,2.3-1.2,2.7c-1.1,0.4-2.3-0.1-2.7-1.2l-0.3-0.5c-0.2-0.7-0.4-1.3-0.6-2c-0.3-1.2-0.8-2.4-1.4-3.5 + c-0.3-0.3-0.7-0.5-1.1-0.6L59,77.3c-6.2,2.4-13,2.4-19.2,0l-0.5,0.8c-0.3,0-0.6,0.2-0.9,0.4c-0.7,1.1-1.2,2.4-1.6,3.7 + c-0.2,0.7-0.4,1.4-0.6,2l-0.3,0.5c0,0-0.1,0.1-0.1,0.2c-0.5,1-1.8,1.4-2.8,0.8c-1-0.5-1.4-1.8-0.8-2.8l0.3-0.6 + c0.3-0.6,0.7-1.2,1.1-1.7c0.8-1.1,1.5-2.2,2-3.4c0-0.4,0-0.8-0.2-1.2l0.4-0.9c-5.7-3.3-10-8.6-12-14.9l-0.9,0.2 + c-0.4-0.2-0.8-0.4-1.2-0.4c-1.2,0.2-2.4,0.6-3.6,1c-0.5,0.3-1.1,0.6-1.7,0.8l-0.5,0.1C15.8,62,15.7,62,15.6,62 + c-1.2,0.1-2.2-0.7-2.4-1.8C13.1,59,13.9,58,15,57.8l0.6-0.1c0.7-0.1,1.3-0.2,2-0.2c1.2-0.1,2.5-0.3,3.7-0.6 + c0.4-0.2,0.7-0.5,0.9-0.9l0.8-0.4c-1-6.6,0.5-13.3,4.2-18.8l-0.7-0.6c0-0.4-0.2-0.8-0.4-1.2c-0.9-0.8-2-1.6-3.1-2.2 + c-0.6-0.3-1.1-0.6-1.7-1l-0.4-0.4c-1-0.7-1.2-2.1-0.5-3.1c0.4-0.5,1.1-0.7,1.7-0.7c0.6,0.1,1.1,0.3,1.5,0.6l0.5,0.4 + c0.5,0.5,1,1,1.4,1.5c0.8,0.9,1.8,1.7,2.8,2.5c0.4,0.2,0.8,0.2,1.2,0.1l0.7,0.5c3.7-3.9,8.5-6.6,13.7-7.8c1.3-0.3,2.5-0.5,3.8-0.6 + v-0.9c0.4-0.3,0.6-0.7,0.7-1.1c0.1-1.3,0-2.6-0.2-3.8c-0.2-0.7-0.2-1.3-0.3-2c0-0.1,0-0.3,0-0.5c0-1.2,0.9-2.2,2.1-2.3 + c1.3,0.1,2.2,1.1,1.7,2.6c0,0.2,0,0.4,0,0.6c-0.1,0.7-0.2,1.4-0.3,2c-0.2,1.3-0.2,2.5-0.2,3.8c0.1,0.4,0.3,0.8,0.7,1 + c0,0.1,0,0.6,0,0.9c6.6,0.6,12.7,3.5,17.3,8.3l0.8-0.6c0.5,0.1,0.9,0.1,1.3-0.1c1-0.7,1.9-1.6,2.7-2.5c0.5-0.6,0.9-1,1.4-1.5 + l0.5-0.4c0.1-0.1,0.2-0.1,0.3-0.2c1-0.6,2.3-0.4,2.9,0.6s0.4,2.3-0.6,2.9L78,32c-0.5,0.4-1.1,0.7-1.7,1c-1.1,0.6-2.1,1.4-3.1,2.2 + c-0.3,0.3-0.4,0.8-0.4,1.2l-0.7,0.7c3.7,5.5,5.2,12.1,4.3,18.7l0.8,0.2c0.2,0.4,0.5,0.7,0.9,0.9c1.2,0.3,2.4,0.5,3.7,0.6 + c0.7,0.1,1.3,0.1,2,0.2l0.6,0.1c0.1,0,0.2,0.1,0.3,0.1C85.8,58.2,86.4,59.4,86.1,60.5z"/> + <path d="M59.1,57.2c-0.2,0.1-0.4,0.1-0.7,0.2c-0.9,0.4-1.4,1.5-1,2.4l4.2,10.1c4.1-2.6,7.1-6.4,8.7-10.9l-10.8-1.8H59.1z"/> + <path d="M50,61.6c-0.7,0-1.3,0.4-1.6,1l-5.3,9.6c3.8,1.3,7.9,1.5,11.8,0.6c0.7-0.2,1.4-0.4,2.1-0.6l-5.3-9.6 + C51.3,62,50.7,61.6,50,61.6z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/kubernetes.ac396542.svg b/extensions/harvester/1.5.0-dev/plugin/img/kubernetes.ac396542.svg new file mode 100644 index 00000000..ec251481 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/kubernetes.ac396542.svg @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#326CE5;} + .st1{fill:#FFFFFF;} +</style> +<g> + <path class="st0" d="M49.7,1.5c-0.9,0-1.8,0.3-2.6,0.6L12.4,18.8c-1.8,0.9-3.2,2.5-3.6,4.5L0.2,60.6c-0.4,1.7-0.1,3.6,0.9,5.1 + l0.4,0.5L25.5,96c1.3,1.6,3.2,2.5,5.2,2.5h38.6c2,0,3.9-0.9,5.2-2.5l24.1-29.9c1.3-1.6,1.7-3.6,1.3-5.6l-8.5-37.3 + c-0.5-2-1.8-3.6-3.6-4.5L52.9,2.2C51.9,1.7,50.8,1.5,49.7,1.5L49.7,1.5z"/> + <path class="st1" d="M50,14.2c-1.2,0.1-2.1,1.1-2.1,2.3c0,0,0,0,0,0l0,0c0,0.2,0,0.4,0,0.5c0.1,0.7,0.1,1.3,0.3,2 + c0.2,1.2,0.3,2.5,0.2,3.8c-0.1,0.4-0.3,0.8-0.7,1.1v0.9c-1.3,0.1-2.5,0.3-3.8,0.6c-5.2,1.2-10,3.9-13.7,7.8l-0.7-0.5 + c-0.4,0.1-0.8,0.1-1.2-0.1c-1-0.8-2-1.6-2.8-2.5c-0.4-0.5-0.9-1-1.4-1.5l-0.5-0.4c-0.4-0.3-0.9-0.5-1.5-0.6c-0.6,0-1.3,0.2-1.7,0.7 + c-0.7,1-0.5,2.4,0.5,3.1l0,0l0.4,0.4c0.6,0.4,1.1,0.7,1.7,1c1.1,0.6,2.2,1.4,3.1,2.2c0.2,0.4,0.4,0.8,0.4,1.2l0.7,0.6 + c-3.7,5.5-5.2,12.2-4.2,18.8l-0.8,0.4c-0.2,0.4-0.5,0.7-0.9,0.9c-1.2,0.3-2.5,0.5-3.7,0.6c-0.7,0-1.3,0.1-2,0.2l-0.6,0.1l0,0 + c-1.1,0.2-1.9,1.2-1.8,2.4c0.2,1.1,1.2,1.9,2.4,1.8c0.1,0,0.2,0,0.3-0.1l0,0l0.5-0.1c0.6-0.2,1.2-0.5,1.7-0.8 + c1.2-0.4,2.4-0.8,3.6-1c0.4,0,0.8,0.2,1.2,0.4l0.9-0.2c2,6.3,6.3,11.6,12,14.9l-0.4,0.9c0.2,0.4,0.2,0.8,0.2,1.2 + c-0.5,1.2-1.2,2.3-2,3.4c-0.4,0.5-0.8,1.1-1.1,1.7l-0.3,0.6c-0.6,1-0.2,2.3,0.8,2.8c1,0.6,2.3,0.2,2.8-0.8c0-0.1,0.1-0.2,0.1-0.2 + l0,0l0.3-0.5c0.2-0.6,0.4-1.3,0.6-2c0.4-1.3,0.9-2.6,1.6-3.7c0.3-0.2,0.6-0.4,0.9-0.4l0.5-0.8c6.2,2.4,13,2.4,19.2,0l0.5,0.8 + c0.4,0.1,0.8,0.3,1.1,0.6c0.6,1.1,1.1,2.3,1.4,3.5c0.2,0.7,0.4,1.3,0.6,2l0.3,0.5c0.4,1.1,1.6,1.6,2.7,1.2s1.6-1.6,1.2-2.7 + c0-0.1-0.1-0.2-0.2-0.3l-0.3-0.6c-0.3-0.6-0.7-1.1-1-1.7c-0.7-1-1.3-2.1-1.8-3.3c-0.1-0.4-0.1-0.8,0.2-1.2 + c-0.1-0.3-0.2-0.6-0.3-0.8c5.7-3.4,10-8.8,12-15.1l0.9,0.2c0.3-0.3,0.7-0.4,1.2-0.4c1.2,0.2,2.4,0.6,3.6,1.1 + c0.6,0.3,1.2,0.5,1.9,0.7l0.5,0.1l0,0c1.1,0.3,2.3-0.3,2.6-1.4c0.3-1.1-0.3-2.3-1.4-2.6c-0.1,0-0.2-0.1-0.3-0.1l-0.6-0.1 + c-0.7-0.1-1.3-0.1-2-0.2c-1.3-0.1-2.5-0.3-3.7-0.6c-0.4-0.2-0.7-0.5-0.9-0.9l-0.8-0.2c0.9-6.6-0.6-13.2-4.3-18.7l0.7-0.7 + c0-0.4,0.1-0.9,0.4-1.2c1-0.8,2-1.6,3.1-2.2c0.6-0.3,1.2-0.6,1.7-1l0.5-0.4c1-0.6,1.2-1.9,0.6-2.9c-0.6-1-1.9-1.2-2.9-0.6 + c-0.1,0.1-0.2,0.1-0.3,0.2l-0.5,0.4c-0.5,0.5-0.9,0.9-1.4,1.5c-0.8,0.9-1.7,1.8-2.7,2.5c-0.4,0.2-0.8,0.2-1.3,0.1l-0.8,0.6 + c-4.6-4.8-10.7-7.7-17.3-8.3c0-0.3,0-0.8,0-0.9c-0.4-0.2-0.6-0.6-0.7-1c0-1.3,0-2.5,0.2-3.8c0.1-0.6,0.2-1.3,0.3-2 + c0-0.2,0-0.4,0-0.6C52.2,15.3,51.3,14.3,50,14.2C50.1,14.2,50,14.2,50,14.2L50,14.2z M47.4,30.3l-0.6,10.9l0,0c0,1-0.9,1.8-1.9,1.7 + c-0.4,0-0.7-0.1-1-0.4l0,0l-9-6.3c2.8-2.8,6.4-4.7,10.3-5.6C45.9,30.5,46.7,30.4,47.4,30.3z M52.6,30.3c4.7,0.6,9.1,2.7,12.5,6 + l-8.9,6.3l0,0c-0.8,0.6-2,0.4-2.6-0.4c-0.2-0.3-0.3-0.6-0.4-1l0,0L52.6,30.3z M31.6,40.4l8.2,7.3l0,0c0.8,0.7,0.8,1.8,0.2,2.6 + c-0.2,0.3-0.6,0.5-0.9,0.6l0,0l-10.5,3C28.1,49.2,29.1,44.4,31.6,40.4L31.6,40.4L31.6,40.4z M68.4,40.4c2.5,4,3.6,8.8,3.1,13.5 + l-10.5-3l0,0c-1-0.3-1.6-1.3-1.3-2.2c0.1-0.4,0.3-0.7,0.6-0.9l0,0L68.4,40.4L68.4,40.4L68.4,40.4z M48.3,48.3h3.3l2.1,2.6L53,54.1 + l-3,1.5l-3-1.5l-0.7-3.2L48.3,48.3z M59.1,57.2h0.4l0,0L70.3,59c-1.6,4.5-4.6,8.3-8.7,10.9l-4.2-10.1l0,0c-0.4-0.9,0.1-2,1-2.4 + C58.7,57.3,58.9,57.3,59.1,57.2L59.1,57.2L59.1,57.2z M40.9,57.2c1,0,1.8,0.8,1.8,1.9c0,0.2-0.1,0.5-0.2,0.7l0,0l-4.2,10 + c-4-2.6-7-6.4-8.6-10.8l10.7-1.8l0,0L40.9,57.2L40.9,57.2L40.9,57.2z M50,61.6c0.7,0,1.3,0.4,1.7,1l0,0l5.3,9.6 + c-0.7,0.2-1.4,0.4-2.1,0.6c-3.9,0.9-8,0.7-11.8-0.6l5.3-9.6l0,0C48.7,62,49.3,61.6,50,61.6z"/> + <path class="st1" d="M34.6,85.8c-0.3,0-0.6-0.1-0.8-0.2c-1.1-0.6-1.5-1.9-0.9-3v-0.2l0.2-0.4c0.2-0.4,0.5-0.8,0.7-1.1l0.4-0.6 + c0.8-1.1,1.4-2.2,2-3.4c0.1-0.4,0-0.8-0.2-1.2l0,0l0.3-0.9c-5.7-3.4-10-8.7-12-15l-0.9,0.2l0,0l0,0c-0.3-0.2-0.7-0.3-1.1-0.4l0,0 + c-1.3,0.2-2.5,0.5-3.7,1l0,0L18,61c-0.4,0.2-0.8,0.3-1.3,0.5h-0.4h-0.2l0,0c-1.1,0.4-2.3-0.3-2.6-1.4c-0.4-1.1,0.3-2.3,1.4-2.6 + c0.1,0,0.2-0.1,0.3-0.1l0,0h0.2h0.4c0.4-0.1,0.9-0.1,1.3-0.1h0.7l0,0c1.2-0.1,2.5-0.3,3.7-0.6c0.3-0.2,0.6-0.5,0.8-0.8v-0.1l0,0 + l0.9-0.3c-0.9-6.6,0.6-13.2,4.2-18.8l-0.6-0.5l0,0l0,0c0-0.4-0.2-0.8-0.4-1.1c-1-0.8-2-1.5-3.1-2.2l-0.6-0.3 + c-0.4-0.2-0.8-0.4-1.1-0.7l-0.3-0.2l-0.1-0.1l0,0c-1-0.7-1.4-2-0.7-3.1c0-0.1,0.1-0.1,0.1-0.2c0.4-0.5,1-0.8,1.6-0.7l0,0 + c0.5,0,1,0.2,1.5,0.6h0.1l0.3,0.3c0.3,0.3,0.6,0.6,0.9,1l0.5,0.5l0,0c0.9,1,1.8,1.8,2.9,2.6c0.3,0.2,0.7,0.2,1.1,0.1h0.2l0.7,0.5 + c3.7-3.9,8.4-6.6,13.6-7.8c1.2-0.3,2.5-0.5,3.8-0.6v-0.9l0,0c0.3-0.3,0.6-0.7,0.7-1.1c0-1.2,0-2.5-0.2-3.7l0,0c0-0.2,0-0.5-0.1-0.7 + c-0.1-0.4-0.2-0.9-0.2-1.3c0-0.1,0-0.2,0-0.4v-0.3l0,0l0,0c-0.1-1.2,0.9-2.3,2.1-2.4c0,0,0.1,0,0.1,0c0.6,0,1.1,0.3,1.5,0.7 + c0.4,0.5,0.6,1,0.6,1.7c0,0,0,0.1,0,0.2s0,0.3,0,0.4c0,0.5,0,0.9-0.1,1.4c0,0.2,0,0.4-0.1,0.7v0.1c-0.2,1.2-0.3,2.4-0.2,3.7 + c0.1,0.4,0.3,0.7,0.6,0.9l0.1,0.1l0,0c0,0.2,0,0.6,0,0.9c3.3,0.3,6.5,1.1,9.5,2.6c2.9,1.4,5.6,3.4,7.9,5.7l0.8-0.6h0.1 + c0.4,0,0.7,0,1.1-0.2c1-0.7,1.9-1.6,2.7-2.5l0,0l0.4-0.5c0.3-0.3,0.6-0.7,0.9-1l0.3-0.3l0.1-0.1c0.9-0.8,2.3-0.7,3.1,0.2 + c0.4,0.4,0.5,1,0.4,1.6c-0.1,0.6-0.4,1.1-0.9,1.5l-0.2,0.1l-0.3,0.3c-0.4,0.3-0.7,0.5-1.1,0.7l-0.6,0.3c-1.1,0.6-2.1,1.3-3,2.1 + c-0.3,0.3-0.4,0.6-0.4,1v0.2l0,0l-0.3,0.3l-0.4,0.4c3.7,5.5,5.2,12.2,4.3,18.7l0.7,0.2l0,0l0,0c0.2,0.3,0.5,0.6,0.8,0.8 + c1.2,0.3,2.4,0.5,3.7,0.6l0,0h0.7c0.4,0,0.9,0,1.3,0.1h0.4h0.2c1.2,0.2,2,1.2,1.8,2.4c-0.2,1.2-1.2,2-2.4,1.8c-0.1,0-0.2,0-0.3-0.1 + l0,0h-0.2h-0.3c-0.4-0.1-0.8-0.3-1.2-0.5l-0.5-0.1l0,0c-1.1-0.5-2.3-0.8-3.6-1c-0.4,0-0.7,0.1-1,0.3h-0.1l0,0l-0.9-0.2 + c-1,3.1-2.5,6-4.6,8.6c-2.1,2.6-4.6,4.8-7.5,6.5l0.1,0.3c0.1,0.2,0.1,0.4,0.2,0.6l0,0V76c-0.2,0.3-0.2,0.7-0.1,1.1 + c0.5,1.2,1,2.3,1.7,3.3l0.4,0.6c0.3,0.3,0.5,0.7,0.7,1.1l0.2,0.4v0.2c0.6,1.1,0.2,2.4-0.9,3c-0.5,0.2-1.1,0.2-1.6,0 + c-0.6-0.2-1-0.7-1.3-1.2v-0.2l-0.2-0.4c-0.2-0.4-0.3-0.8-0.4-1.3c0-0.2-0.1-0.4-0.2-0.6l0,0c-0.4-1.2-0.8-2.3-1.4-3.4 + c-0.2-0.3-0.5-0.5-0.9-0.6h-0.1l0,0l-0.2-0.4l-0.2-0.4c-6.2,2.4-13,2.4-19.2,0L40,77.9l0,0c-0.3,0.1-0.6,0.2-0.9,0.4 + c-0.5,0.8-0.9,1.6-1.2,2.5c-0.1,0.4-0.3,0.8-0.5,1.2c-0.2,0.4-0.1,0.4-0.2,0.6c-0.1,0.4-0.2,0.9-0.4,1.3l-0.2,0.4v0.2l0,0 + C36.3,85.3,35.5,85.8,34.6,85.8z M36,75.9c0.2,0.4,0.2,0.8,0.2,1.2c-0.5,1.2-1.2,2.3-2,3.4L33.8,81c-0.3,0.4-0.5,0.7-0.7,1.1 + l-0.2,0.4v0.2c-0.6,1-0.2,2.2,0.8,2.8c1,0.6,2.2,0.2,2.8-0.8c0.1-0.1,0.1-0.2,0.1-0.3l0,0v-0.2l0.2-0.4c0.2-0.4,0.3-0.8,0.4-1.3 + c0-0.2,0.1-0.4,0.2-0.6c0.1-0.2,0.3-0.8,0.5-1.2c0.2-0.9,0.6-1.8,1.2-2.5c0.3-0.2,0.6-0.4,0.9-0.4l0.5-0.9l0,0 + c6.2,2.4,13,2.4,19.2,0l0,0l0.3,0.6l0.2,0.4h0.1c0.4,0.1,0.7,0.3,0.9,0.6c0.6,1.1,1.1,2.3,1.4,3.4l0,0c0,0.2,0.1,0.4,0.2,0.6 + c0.1,0.4,0.2,0.8,0.4,1.3l0.2,0.4v0.2c0.3,0.5,0.7,1,1.2,1.2c0.5,0.2,1.1,0.2,1.6,0c1-0.6,1.4-1.9,0.9-2.9v-0.2L66.8,82 + c-0.2-0.4-0.5-0.8-0.7-1.1l-0.4-0.5c-0.7-1-1.3-2.1-1.8-3.3c-0.1-0.4-0.1-0.8,0.1-1.1v-0.1c-0.1-0.2-0.2-0.4-0.2-0.6V75l0,0 + c5.7-3.4,10-8.8,12-15.1l0,0l0.9,0.2h0.1c0.3-0.2,0.7-0.4,1-0.4c1.2,0.2,2.4,0.6,3.6,1l0,0l0.6,0.3c0.4,0.2,0.8,0.3,1.2,0.5h0.3 + h0.2l0,0c1,0.5,2.3,0,2.7-1c0.5-1,0-2.3-1-2.7c-0.3-0.1-0.5-0.2-0.8-0.2h-0.2h-0.4c-0.4-0.1-0.9-0.1-1.3-0.1h-0.7l0,0 + c-1.2-0.1-2.5-0.3-3.7-0.6c-0.3-0.2-0.6-0.6-0.7-1l0,0l-0.8-0.3l0,0c0.9-6.6-0.6-13.2-4.3-18.7l0,0l0.4-0.4l0.3-0.3v-0.3 + c0-0.4,0.1-0.8,0.4-1c1-0.8,2-1.6,3.1-2.2l0.6-0.3c0.4-0.2,0.8-0.4,1.1-0.7l0.3-0.2l0.2-0.1c0.5-0.4,0.8-0.9,0.9-1.5 + c0.1-0.5,0-1.1-0.4-1.6c-0.8-0.9-2.2-1-3.1-0.2c0,0,0,0,0,0l-0.1,0.1l-0.3,0.3c-0.3,0.3-0.6,0.6-0.9,1L74.5,30l0,0 + c-0.9,0.9-1.8,1.8-2.9,2.5c-0.4,0.2-0.8,0.2-1.2,0.2h-0.1l-0.8,0.6l0,0c-2.3-2.4-4.9-4.3-7.9-5.7c-3-1.4-6.1-2.3-9.4-2.6l0,0 + c0-0.3,0-0.8,0-0.9l-0.1-0.1c-0.3-0.2-0.5-0.6-0.6-0.9c0-1.2,0-2.5,0.2-3.7v-0.2c0-0.2,0-0.5,0.1-0.7c0.1-0.4,0.2-0.9,0.2-1.3 + c0-0.1,0-0.3,0-0.4c0-0.1-0.1-0.2-0.1-0.2c0-0.6-0.2-1.2-0.6-1.6c-0.3-0.4-0.8-0.6-1.4-0.7l0,0c-1.2,0.1-2,1.1-2,2.3l0,0v0.2 + c0,0.1,0,0.3,0,0.4c0,0.5,0,0.9,0,1.4c0,0.2,0,0.4,0.1,0.7l0,0c0.2,1.2,0.3,2.5,0.2,3.8c-0.1,0.4-0.3,0.8-0.7,1.1v0.9l0,0 + c-1.3,0.1-2.5,0.3-3.8,0.6c-5.2,1.2-10,3.8-13.6,7.7l0,0l-0.7-0.5h-0.1c-0.4,0.1-0.7,0.1-1.1-0.1c-1-0.7-1.9-1.6-2.8-2.5l0,0 + l-0.5-0.5c-0.3-0.3-0.6-0.7-0.9-0.9l-0.4-0.3h-0.1c-0.4-0.3-0.9-0.5-1.4-0.6c-0.6,0-1.3,0.2-1.7,0.7c-0.7,1-0.5,2.3,0.5,3 + c0,0,0,0,0,0l0,0l0.1,0.1l0.3,0.2c0.4,0.3,0.7,0.5,1.1,0.7l0.6,0.3c1.1,0.6,2.2,1.3,3.1,2c0.2,0.3,0.4,0.7,0.4,1.1l0,0l0.7,0.6l0,0 + c-3.7,5.5-5.2,12.2-4.2,18.8l0,0l-0.8,0.4V56c-0.2,0.3-0.5,0.6-0.8,0.8c-1.2,0.3-2.4,0.5-3.7,0.6l0,0h-0.7c-0.4,0-0.9,0-1.3,0.1 + h-0.4h-0.2l0,0c-1.1,0-2,1-2,2.1c0,1.1,1,2,2.1,2c0.3,0,0.6-0.1,0.8-0.2l0,0h0.2h0.4c0.4-0.1,0.8-0.3,1.2-0.5l0.5-0.2l0,0 + c1.2-0.4,2.4-0.8,3.6-1c0.4,0,0.8,0.1,1.1,0.4l0,0l0.9-0.2l0,0c2,6.3,6.3,11.6,12,14.9l0,0L36,75.9z M50,73.3 + c-2.4,0-4.7-0.4-6.9-1.1l0,0l5.3-9.6l0,0c0.3-0.6,1-1,1.7-1c0.7,0,1.3,0.4,1.7,1l0,0l5.3,9.6l0,0c-0.7,0.2-1.4,0.4-2.1,0.6 + C53.3,73.1,51.7,73.3,50,73.3z M43.1,72.1c3.8,1.3,7.9,1.5,11.8,0.6c0.7-0.2,1.4-0.4,2.1-0.6l-5.3-9.5l0,0c-0.3-0.6-1-1-1.7-0.9 + l0,0c-0.6,0-1.2,0.4-1.5,1l0,0L43.1,72.1z M61.6,69.9L61.6,69.9l-4.2-10.1l0,0c-0.4-1,0.1-2,1-2.4c0.2-0.1,0.4-0.1,0.6-0.1h0.5 + L70.4,59l0,0C68.8,63.5,65.7,67.4,61.6,69.9L61.6,69.9L61.6,69.9z M57.5,59.8l4.2,10.1c4-2.6,7-6.4,8.6-10.9l-10.8-1.8l0,0h-0.4 + l0,0c-1,0-1.8,0.9-1.8,1.9C57.3,59.4,57.4,59.6,57.5,59.8L57.5,59.8z M38.4,69.9L38.4,69.9c-4-2.6-7-6.4-8.6-10.8l0,0l10.8-1.8h0.4 + c1,0,1.8,0.9,1.8,1.9c0,0.2,0,0.4-0.1,0.6l0,0l0,0L38.4,69.9z M29.8,59.1c1.6,4.4,4.6,8.2,8.6,10.8l4.1-10.1l0,0l0,0 + c0.4-0.9,0-2-0.9-2.4c-0.2-0.1-0.5-0.2-0.7-0.2h-0.4l0,0L29.8,59.1z M50,55.6L50,55.6l-3-1.5l0,0l-0.7-3.2l0,0l2.1-2.6h3.4l2.1,2.6 + L53,54.2l0,0L50,55.6z M47,54.1l3,1.4l3-1.4l0.7-3.2l-2.1-2.6h-3.3l-2.1,2.6L47,54.1z M28.6,54L28.6,54c-0.5-4.7,0.6-9.5,3-13.6 + l0,0l8.2,7.3l0,0c0.8,0.7,0.8,1.8,0.2,2.6c-0.2,0.3-0.5,0.5-0.9,0.6l0,0l0,0L28.6,54z M31.6,40.5c-2.5,4-3.5,8.8-3,13.4l10.4-3l0,0 + l0,0c1-0.3,1.5-1.2,1.3-2.2c-0.1-0.4-0.3-0.7-0.6-0.9l0,0l0,0L31.6,40.5z M71.5,53.9L71.5,53.9l-10.5-3l0,0c-1-0.3-1.6-1.3-1.3-2.3 + c0.1-0.3,0.3-0.7,0.6-0.9l0,0l8.1-7.3l0,0C70.8,44.4,71.9,49.2,71.5,53.9L71.5,53.9L71.5,53.9z M61,50.8l10.5,3.1 + c0.4-4.7-0.7-9.4-3.1-13.5l-8.1,7.3l0,0c-0.8,0.6-0.9,1.8-0.2,2.5C60.3,50.5,60.6,50.7,61,50.8L61,50.8L61,50.8L61,50.8z M44.9,43 + c-0.4,0-0.8-0.1-1.1-0.4l0,0l-9-6.3l0,0c2.9-2.8,6.4-4.7,10.3-5.6c0.7-0.1,1.5-0.3,2.2-0.3l0,0l-0.6,10.9l0,0 + C46.8,42.2,45.9,43.1,44.9,43L44.9,43z M43.8,42.6L43.8,42.6c0.8,0.6,1.9,0.4,2.5-0.4c0.2-0.3,0.3-0.7,0.4-1l0,0l0.7-10.9 + c-0.7,0.1-1.5,0.2-2.2,0.4c-3.9,0.9-7.5,2.8-10.3,5.6L43.8,42.6L43.8,42.6L43.8,42.6z M55.1,42.9c-1,0-1.8-0.8-1.8-1.8l0,0 + l-0.6-10.9l0,0c4.7,0.6,9.1,2.7,12.5,6l0,0l-8.9,6.3l0,0C55.9,42.9,55.5,43,55.1,42.9L55.1,42.9z M53.2,41.1L53.2,41.1 + c0.1,1,0.9,1.8,1.9,1.7c0.4,0,0.7-0.1,1-0.3l0,0l8.9-6.3c-3.4-3.3-7.8-5.3-12.4-5.9L53.2,41.1z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/linode.642005fe.svg b/extensions/harvester/1.5.0-dev/plugin/img/linode.642005fe.svg new file mode 100644 index 00000000..7b9ec6d3 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/linode.642005fe.svg @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#123D10;} + .st1{fill:#33B652;} + .st2{fill:#231F20;} +</style> +<desc>The Linode Logo consists of the 5 shaded green cubes arranged in the shape of the letter "L".</desc> +<g id="g12" transform="matrix(0.08, 0, 0, 0.08, 46.629513, 27.603458)"> + <path id="path34" class="st0" d="M-218.8,216.9L-218.8,216.9l-47.4-323.7l-194.6-121l63.3,305.3L-218.8,216.9z M-297.2,561.8 + l33.8,163.3l141,149.5L-146.6,710L-297.2,561.8z M87.1,436.1l0.6,12.8c0.1,2.6-1.1,5.1-3.3,6.5l-54.3,36.7l59.1,48.2l0.1,0.1 + c0.1,0.1,0.3,0.3,0.4,0.4c0.3,0.3,0.6,0.6,0.8,1c0.1,0.1,0.3,0.4,0.4,0.6c0.1,0.3,0.4,0.7,0.6,1.1c0.1,0.3,0.1,0.4,0.3,0.7 + c0.1,0.4,0.1,0.8,0.3,1.2c0,0.1,0.1,0.3,0.1,0.4l2.5,56.4L161,658l-1.4-166.9L87.1,436.1z M248.1,216l-1.5,72.8l100.3,66.3 + c0.3,0.1,0.6,0.4,0.8,0.7c0.1,0.1,0.3,0.3,0.4,0.4c1,1,1.5,2.1,1.9,3.4c0,0.1,0,0.4,0.1,0.6c0,0.3,0.1,0.7,0.1,1c0,0.1,0,0.3,0,0.3 + c0,0.1,0,0.1,0,0.3l-5,83.1l46.7,32.5l14.1-162.8L248.1,216z M-164.7,586.9L-323,437.8l-45.8-221.3L-198,358.7L-164.7,586.9"/> + <path id="path36" class="st1" d="M57.4,87.3L44.3-220l0,0l-295.2,113.4l0,0l0,0l48.2,329.2L57.4,87.3z M72.7,445.4L63,218.8l0,0 + l-245.9,139.9l34.5,235.5L72.7,445.4z M77.6,560.3l-209.1,149.5l0,0l0,0l25.4,173.4l0,0L84.9,731L77.6,560.3z M174.2,491.1 + l1.4,167.6l149-118.8l9.9-163.4L174.2,491.1z M545.8,225.3l-20.9,155L407.3,474L421,314.6L545.8,225.3"/> + <path id="path38" class="st2" d="M524.8,380.3L407.3,474L421,314.6l124.7-89.2L524.8,380.3z M392,477.2l-46.6-32.4l5.1-83 + c0-0.1,0-0.1,0-0.3c0-0.1,0-0.3,0-0.3c0-0.4-0.1-0.7-0.1-1c0-0.1,0-0.4-0.1-0.6c-0.3-1.2-1-2.5-1.9-3.4c-0.1-0.1-0.3-0.3-0.4-0.4 + c-0.3-0.3-0.6-0.6-0.8-0.7l-100.3-66.3l1.5-72.8l157.9,98.4L392,477.2z M324.6,539.9l-149,118.8l-1.4-167.6l160.3-114.7 + L324.6,539.9z M94.3,602.2l-2.5-56.4c0-0.1,0-0.3-0.1-0.4c0-0.4-0.1-0.8-0.3-1.2c0-0.3-0.1-0.4-0.3-0.7c-0.1-0.4-0.3-0.7-0.6-1.1 + c-0.1-0.1-0.3-0.4-0.4-0.6c-0.3-0.3-0.6-0.7-0.8-1c-0.1-0.1-0.3-0.3-0.4-0.4l-0.1-0.1l-59.1-48.2L84,455.4c2.2-1.5,3.4-4,3.3-6.5 + l-0.6-12.8l72.1,55l1.4,166.9L94.3,602.2z M-106.1,883.2L-106.1,883.2l-25.4-173.4l0,0l0,0L77.6,560.3L84.9,731L-106.1,883.2z + M-263.5,725.1l-33.8-163.3L-146.6,710l24.1,164.7L-263.5,725.1z M-322.9,437.8l-45.8-221.3l170.7,142.2l33.4,228.2L-322.9,437.8z + M-397.6,77.4l-63.3-305.3l194.6,121l47.4,323.7l0,0L-397.6,77.4z M-250.9-106.6L44.3-220l0,0L57.4,87.3l-260,135.3L-250.9-106.6 + L-250.9-106.6z M62.9,218.8L62.9,218.8l9.6,226.6l-221,148.8L-183,358.7L62.9,218.8z M563,208.7c0-0.1,0-0.3-0.1-0.4 + c0-0.3-0.1-0.6-0.1-0.8c-0.1-0.4-0.3-0.8-0.4-1.1s-0.3-0.6-0.3-0.7c-0.1-0.4-0.4-0.7-0.7-1.1c-0.1-0.1-0.3-0.4-0.6-0.6 + c-0.3-0.3-0.7-0.6-1.1-0.8c-0.1-0.1-0.3-0.3-0.4-0.3h-0.1c0,0-0.1,0-0.1-0.1l-170.5-94.7c-2.3-1.2-5.2-1.2-7.6,0.1l-143.9,88.1 + c-0.3,0.1-0.4,0.4-0.7,0.6c-0.3,0.1-0.6,0.4-0.7,0.6c-0.3,0.3-0.4,0.6-0.7,0.8c-0.1,0.3-0.4,0.4-0.6,0.7c-0.1,0.3-0.3,0.7-0.4,1 + s-0.3,0.6-0.3,0.8c-0.1,0.4-0.1,0.7-0.1,1.1c0,0.3-0.1,0.6-0.1,0.7L232,279l-58.6-38.7c-2.5-1.7-5.5-1.7-8-0.1l-84.3,51.5L77.3,206 + c0-0.3-0.1-0.4-0.1-0.7c0-0.3-0.1-0.7-0.1-1c-0.1-0.3-0.1-0.6-0.3-0.8c-0.1-0.3-0.3-0.6-0.4-0.8c-0.1-0.3-0.3-0.6-0.6-0.8 + c-0.1-0.3-0.4-0.6-0.6-0.7c-0.3-0.3-0.4-0.4-0.7-0.7c-0.1-0.1-0.3-0.3-0.6-0.4l-87.6-58.8l82.1-42.7c2.6-1.4,4.1-4,4-7L58.7-231 + c0-0.4-0.1-0.8-0.1-1.1c0-0.1,0-0.3-0.1-0.6c-0.1-0.7-0.4-1.2-0.8-1.8c-0.1-0.1-0.1-0.3-0.3-0.4c-0.3-0.4-0.6-0.8-1-1.2 + c-0.1-0.1-0.4-0.3-0.6-0.4c-0.1-0.1-0.4-0.4-0.6-0.6c-0.1-0.1-0.4-0.1-0.6-0.3c-0.1,0-0.1-0.1-0.3-0.3l-221.2-106.7 + c-1.7-0.8-3.7-1-5.5-0.4l-301.7,94l0,0c-0.3,0.1-0.4,0.3-0.7,0.3c-0.4,0.1-0.8,0.4-1.2,0.6l0,0c-0.1,0.1-0.3,0.3-0.6,0.6 + c-0.4,0.3-0.7,0.6-1,1c-0.1,0.3-0.3,0.6-0.6,0.8c-0.1,0.3-0.4,0.7-0.6,1c-0.1,0.3-0.1,0.7-0.3,1c-0.1,0.3-0.3,0.6-0.3,1v0.1 + c0,0.3,0,0.7,0,1c0,0.4,0,0.8,0,1.2v0.1l67.3,325.4c0.4,1.8,1.4,3.3,2.8,4.4l91.4,71.2l-66,31.4c-0.1,0-0.3,0.1-0.4,0.3 + c-0.1,0-0.1,0-0.3,0.1c-0.1,0.1-0.3,0.1-0.4,0.3c-0.4,0.3-0.8,0.6-1.1,1c-0.1,0.1-0.4,0.3-0.6,0.6c-0.3,0.4-0.6,0.8-0.8,1.2 + c-0.1,0.1-0.1,0.3-0.3,0.6c-0.3,0.6-0.4,1.2-0.6,1.9c0,0,0,0,0,0.1c0,0.1,0,0.3,0,0.4c0,0.6,0,1.2,0.1,1.8c0,0.1,0,0.1,0,0.3 + l50.7,244.8c0.3,1.5,1.1,2.9,2.2,4l63.5,59.9l-42.2,25.8c-0.6,0.3-1.1,0.7-1.5,1.2c-0.1,0.1-0.1,0.3-0.3,0.4c-0.4,0.4-0.7,1-1,1.4 + c-0.1,0.1-0.1,0.3-0.3,0.6c-0.3,0.6-0.4,1.2-0.6,1.9c0,0,0,0,0,0.1l0,0c-0.1,0.7,0,1.4,0.1,2.1c0,0.1,0,0.1,0,0.3l39.3,189.5 + c0.3,1.4,1,2.6,1.9,3.6l158.8,168.4c0.3,0.3,0.4,0.4,0.7,0.6c0.1,0.1,0.3,0.3,0.4,0.3c0.4,0.4,1,0.7,1.5,0.8c0,0,0,0,0.1,0h0.1 + c0.8,0.3,1.7,0.6,2.6,0.6l0,0l0,0l0,0c0.7,0,1.5-0.1,2.2-0.4c0.1,0,0.4-0.1,0.6-0.1c0.1,0,0.4-0.1,0.6-0.1c0.3-0.1,0.6-0.4,0.8-0.6 + c0.1-0.1,0.4-0.1,0.7-0.4L97.3,740.7c1.9-1.5,2.9-3.7,2.8-6.2l-4.8-111.6l68.2,57.5c0.1,0.1,0.3,0.1,0.3,0.1 + c0.4,0.3,0.8,0.7,1.2,0.8c0.1,0,0.3,0.1,0.4,0.1c0.1,0,0.3,0.1,0.6,0.1c0.7,0.3,1.5,0.4,2.2,0.4s1.5-0.1,2.2-0.4 + c0.1,0,0.3-0.1,0.6-0.1c0.1,0,0.3-0.1,0.6-0.1c0.4-0.1,0.7-0.4,1-0.7c0.1-0.1,0.4-0.1,0.6-0.3l163.6-130.8c1.7-1.4,2.6-3.3,2.8-5.4 + l5-81.9l49.7,34.6c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0.1,0.3,0.1,0.4,0.3c0.3,0.1,0.6,0.3,1,0.4c0.1,0.1,0.4,0.1,0.6,0.3 + c0.7,0.1,1.4,0.3,2.1,0.3s1.5-0.1,2.2-0.4c0.1,0,0.3-0.1,0.6-0.1c0.1,0,0.3-0.1,0.6-0.1c0.4-0.1,0.8-0.6,1.2-0.7 + c0.1-0.1,0.3-0.1,0.3-0.1l133.5-106.4c1.5-1.2,2.5-2.9,2.8-4.8l23.7-175.2c0-0.1,0-0.4,0-0.6C563,209.3,563,209,563,208.7"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/linodelke-black.81aa799d.svg b/extensions/harvester/1.5.0-dev/plugin/img/linodelke-black.81aa799d.svg new file mode 100644 index 00000000..4df7b9c4 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/linodelke-black.81aa799d.svg @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<desc>The Linode Logo consists of the 5 shaded green cubes arranged in the shape of the letter "L".</desc> +<g id="g12" transform="matrix(0.08, 0, 0, 0.08, 46.629513, 27.603458)"> + <path id="path38" d="M524.8,380.3L407.3,474L421,314.6l124.7-89.2L524.8,380.3z M392,477.2l-46.6-32.4l5.1-83c0-0.1,0-0.1,0-0.3 + c0-0.1,0-0.3,0-0.3c0-0.4-0.1-0.7-0.1-1c0-0.1,0-0.4-0.1-0.6c-0.3-1.2-1-2.5-1.9-3.4c-0.1-0.1-0.3-0.3-0.4-0.4 + c-0.3-0.3-0.6-0.6-0.8-0.7l-100.3-66.3l1.5-72.8l157.9,98.4L392,477.2z M324.6,539.9l-149,118.8l-1.4-167.6l160.3-114.7 + L324.6,539.9z M94.3,602.2l-2.5-56.4c0-0.1,0-0.3-0.1-0.4c0-0.4-0.1-0.8-0.3-1.2c0-0.3-0.1-0.4-0.3-0.7c-0.1-0.4-0.3-0.7-0.6-1.1 + c-0.1-0.1-0.3-0.4-0.4-0.6c-0.3-0.3-0.6-0.7-0.8-1c-0.1-0.1-0.3-0.3-0.4-0.4l-0.1-0.1l-59.1-48.2L84,455.4c2.2-1.5,3.4-4,3.3-6.5 + l-0.6-12.8l72.1,55l1.4,166.9L94.3,602.2z M-106.1,883.2L-106.1,883.2l-25.4-173.4l0,0l0,0L77.6,560.3L84.9,731L-106.1,883.2z + M-263.5,725.1l-33.8-163.3L-146.6,710l24.1,164.7L-263.5,725.1z M-322.9,437.8l-45.8-221.3L-198,358.7l33.4,228.2L-322.9,437.8z + M-397.6,77.4l-63.3-305.3l194.6,121l47.4,323.7l0,0L-397.6,77.4z M-250.9-106.6L44.3-220l0,0L57.4,87.3l-260,135.3L-250.9-106.6 + L-250.9-106.6z M62.9,218.8L62.9,218.8l9.6,226.6l-221,148.8L-183,358.7L62.9,218.8z M563,208.7c0-0.1,0-0.3-0.1-0.4 + c0-0.3-0.1-0.6-0.1-0.8c-0.1-0.4-0.3-0.8-0.4-1.1s-0.3-0.6-0.3-0.7c-0.1-0.4-0.4-0.7-0.7-1.1c-0.1-0.1-0.3-0.4-0.6-0.6 + c-0.3-0.3-0.7-0.6-1.1-0.8c-0.1-0.1-0.3-0.3-0.4-0.3h-0.1c0,0-0.1,0-0.1-0.1l-170.5-94.7c-2.3-1.2-5.2-1.2-7.6,0.1l-143.9,88.1 + c-0.3,0.1-0.4,0.4-0.7,0.6c-0.3,0.1-0.6,0.4-0.7,0.6c-0.3,0.3-0.4,0.6-0.7,0.8c-0.1,0.3-0.4,0.4-0.6,0.7c-0.1,0.3-0.3,0.7-0.4,1 + s-0.3,0.6-0.3,0.8c-0.1,0.4-0.1,0.7-0.1,1.1c0,0.3-0.1,0.6-0.1,0.7L232,279l-58.6-38.7c-2.5-1.7-5.5-1.7-8-0.1l-84.3,51.5L77.3,206 + c0-0.3-0.1-0.4-0.1-0.7s-0.1-0.7-0.1-1c-0.1-0.3-0.1-0.6-0.3-0.8c-0.1-0.3-0.3-0.6-0.4-0.8c-0.1-0.3-0.3-0.6-0.6-0.8 + c-0.1-0.3-0.4-0.6-0.6-0.7c-0.3-0.3-0.4-0.4-0.7-0.7c-0.1-0.1-0.3-0.3-0.6-0.4l-87.6-58.8l82.1-42.7c2.6-1.4,4.1-4,4-7L58.7-231 + c0-0.4-0.1-0.8-0.1-1.1c0-0.1,0-0.3-0.1-0.6c-0.1-0.7-0.4-1.2-0.8-1.8c-0.1-0.1-0.1-0.3-0.3-0.4c-0.3-0.4-0.6-0.8-1-1.2 + c-0.1-0.1-0.4-0.3-0.6-0.4c-0.1-0.1-0.4-0.4-0.6-0.6c-0.1-0.1-0.4-0.1-0.6-0.3c-0.1,0-0.1-0.1-0.3-0.3l-221.2-106.7 + c-1.7-0.8-3.7-1-5.5-0.4l-301.7,94l0,0c-0.3,0.1-0.4,0.3-0.7,0.3c-0.4,0.1-0.8,0.4-1.2,0.6l0,0c-0.1,0.1-0.3,0.3-0.6,0.6 + c-0.4,0.3-0.7,0.6-1,1c-0.1,0.3-0.3,0.6-0.6,0.8c-0.1,0.3-0.4,0.7-0.6,1c-0.1,0.3-0.1,0.7-0.3,1c-0.1,0.3-0.3,0.6-0.3,1v0.1 + c0,0.3,0,0.7,0,1c0,0.4,0,0.8,0,1.2v0.1l67.3,325.4c0.4,1.8,1.4,3.3,2.8,4.4l91.4,71.2l-66,31.4c-0.1,0-0.3,0.1-0.4,0.3 + c-0.1,0-0.1,0-0.3,0.1c-0.1,0.1-0.3,0.1-0.4,0.3c-0.4,0.3-0.8,0.6-1.1,1c-0.1,0.1-0.4,0.3-0.6,0.6c-0.3,0.4-0.6,0.8-0.8,1.2 + c-0.1,0.1-0.1,0.3-0.3,0.6c-0.3,0.6-0.4,1.2-0.6,1.9c0,0,0,0,0,0.1s0,0.3,0,0.4c0,0.6,0,1.2,0.1,1.8c0,0.1,0,0.1,0,0.3l50.7,244.8 + c0.3,1.5,1.1,2.9,2.2,4l63.5,59.9l-42.2,25.8c-0.6,0.3-1.1,0.7-1.5,1.2c-0.1,0.1-0.1,0.3-0.3,0.4c-0.4,0.4-0.7,1-1,1.4 + c-0.1,0.1-0.1,0.3-0.3,0.6c-0.3,0.6-0.4,1.2-0.6,1.9c0,0,0,0,0,0.1l0,0c-0.1,0.7,0,1.4,0.1,2.1c0,0.1,0,0.1,0,0.3l39.3,189.5 + c0.3,1.4,1,2.6,1.9,3.6l158.8,168.4c0.3,0.3,0.4,0.4,0.7,0.6c0.1,0.1,0.3,0.3,0.4,0.3c0.4,0.4,1,0.7,1.5,0.8c0,0,0,0,0.1,0h0.1 + c0.8,0.3,1.7,0.6,2.6,0.6l0,0l0,0l0,0c0.7,0,1.5-0.1,2.2-0.4c0.1,0,0.4-0.1,0.6-0.1c0.1,0,0.4-0.1,0.6-0.1c0.3-0.1,0.6-0.4,0.8-0.6 + c0.1-0.1,0.4-0.1,0.7-0.4L97.3,740.7c1.9-1.5,2.9-3.7,2.8-6.2l-4.8-111.6l68.2,57.5c0.1,0.1,0.3,0.1,0.3,0.1 + c0.4,0.3,0.8,0.7,1.2,0.8c0.1,0,0.3,0.1,0.4,0.1c0.1,0,0.3,0.1,0.6,0.1c0.7,0.3,1.5,0.4,2.2,0.4s1.5-0.1,2.2-0.4 + c0.1,0,0.3-0.1,0.6-0.1c0.1,0,0.3-0.1,0.6-0.1c0.4-0.1,0.7-0.4,1-0.7c0.1-0.1,0.4-0.1,0.6-0.3l163.6-130.8c1.7-1.4,2.6-3.3,2.8-5.4 + l5-81.9l49.7,34.6c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0.1,0.3,0.1,0.4,0.3c0.3,0.1,0.6,0.3,1,0.4c0.1,0.1,0.4,0.1,0.6,0.3 + c0.7,0.1,1.4,0.3,2.1,0.3s1.5-0.1,2.2-0.4c0.1,0,0.3-0.1,0.6-0.1c0.1,0,0.3-0.1,0.6-0.1c0.4-0.1,0.8-0.6,1.2-0.7 + c0.1-0.1,0.3-0.1,0.3-0.1l133.5-106.4c1.5-1.2,2.5-2.9,2.8-4.8l23.7-175.2c0-0.1,0-0.4,0-0.6C563,209.3,563,209,563,208.7"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/linodelke.642005fe.svg b/extensions/harvester/1.5.0-dev/plugin/img/linodelke.642005fe.svg new file mode 100644 index 00000000..7b9ec6d3 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/linodelke.642005fe.svg @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#123D10;} + .st1{fill:#33B652;} + .st2{fill:#231F20;} +</style> +<desc>The Linode Logo consists of the 5 shaded green cubes arranged in the shape of the letter "L".</desc> +<g id="g12" transform="matrix(0.08, 0, 0, 0.08, 46.629513, 27.603458)"> + <path id="path34" class="st0" d="M-218.8,216.9L-218.8,216.9l-47.4-323.7l-194.6-121l63.3,305.3L-218.8,216.9z M-297.2,561.8 + l33.8,163.3l141,149.5L-146.6,710L-297.2,561.8z M87.1,436.1l0.6,12.8c0.1,2.6-1.1,5.1-3.3,6.5l-54.3,36.7l59.1,48.2l0.1,0.1 + c0.1,0.1,0.3,0.3,0.4,0.4c0.3,0.3,0.6,0.6,0.8,1c0.1,0.1,0.3,0.4,0.4,0.6c0.1,0.3,0.4,0.7,0.6,1.1c0.1,0.3,0.1,0.4,0.3,0.7 + c0.1,0.4,0.1,0.8,0.3,1.2c0,0.1,0.1,0.3,0.1,0.4l2.5,56.4L161,658l-1.4-166.9L87.1,436.1z M248.1,216l-1.5,72.8l100.3,66.3 + c0.3,0.1,0.6,0.4,0.8,0.7c0.1,0.1,0.3,0.3,0.4,0.4c1,1,1.5,2.1,1.9,3.4c0,0.1,0,0.4,0.1,0.6c0,0.3,0.1,0.7,0.1,1c0,0.1,0,0.3,0,0.3 + c0,0.1,0,0.1,0,0.3l-5,83.1l46.7,32.5l14.1-162.8L248.1,216z M-164.7,586.9L-323,437.8l-45.8-221.3L-198,358.7L-164.7,586.9"/> + <path id="path36" class="st1" d="M57.4,87.3L44.3-220l0,0l-295.2,113.4l0,0l0,0l48.2,329.2L57.4,87.3z M72.7,445.4L63,218.8l0,0 + l-245.9,139.9l34.5,235.5L72.7,445.4z M77.6,560.3l-209.1,149.5l0,0l0,0l25.4,173.4l0,0L84.9,731L77.6,560.3z M174.2,491.1 + l1.4,167.6l149-118.8l9.9-163.4L174.2,491.1z M545.8,225.3l-20.9,155L407.3,474L421,314.6L545.8,225.3"/> + <path id="path38" class="st2" d="M524.8,380.3L407.3,474L421,314.6l124.7-89.2L524.8,380.3z M392,477.2l-46.6-32.4l5.1-83 + c0-0.1,0-0.1,0-0.3c0-0.1,0-0.3,0-0.3c0-0.4-0.1-0.7-0.1-1c0-0.1,0-0.4-0.1-0.6c-0.3-1.2-1-2.5-1.9-3.4c-0.1-0.1-0.3-0.3-0.4-0.4 + c-0.3-0.3-0.6-0.6-0.8-0.7l-100.3-66.3l1.5-72.8l157.9,98.4L392,477.2z M324.6,539.9l-149,118.8l-1.4-167.6l160.3-114.7 + L324.6,539.9z M94.3,602.2l-2.5-56.4c0-0.1,0-0.3-0.1-0.4c0-0.4-0.1-0.8-0.3-1.2c0-0.3-0.1-0.4-0.3-0.7c-0.1-0.4-0.3-0.7-0.6-1.1 + c-0.1-0.1-0.3-0.4-0.4-0.6c-0.3-0.3-0.6-0.7-0.8-1c-0.1-0.1-0.3-0.3-0.4-0.4l-0.1-0.1l-59.1-48.2L84,455.4c2.2-1.5,3.4-4,3.3-6.5 + l-0.6-12.8l72.1,55l1.4,166.9L94.3,602.2z M-106.1,883.2L-106.1,883.2l-25.4-173.4l0,0l0,0L77.6,560.3L84.9,731L-106.1,883.2z + M-263.5,725.1l-33.8-163.3L-146.6,710l24.1,164.7L-263.5,725.1z M-322.9,437.8l-45.8-221.3l170.7,142.2l33.4,228.2L-322.9,437.8z + M-397.6,77.4l-63.3-305.3l194.6,121l47.4,323.7l0,0L-397.6,77.4z M-250.9-106.6L44.3-220l0,0L57.4,87.3l-260,135.3L-250.9-106.6 + L-250.9-106.6z M62.9,218.8L62.9,218.8l9.6,226.6l-221,148.8L-183,358.7L62.9,218.8z M563,208.7c0-0.1,0-0.3-0.1-0.4 + c0-0.3-0.1-0.6-0.1-0.8c-0.1-0.4-0.3-0.8-0.4-1.1s-0.3-0.6-0.3-0.7c-0.1-0.4-0.4-0.7-0.7-1.1c-0.1-0.1-0.3-0.4-0.6-0.6 + c-0.3-0.3-0.7-0.6-1.1-0.8c-0.1-0.1-0.3-0.3-0.4-0.3h-0.1c0,0-0.1,0-0.1-0.1l-170.5-94.7c-2.3-1.2-5.2-1.2-7.6,0.1l-143.9,88.1 + c-0.3,0.1-0.4,0.4-0.7,0.6c-0.3,0.1-0.6,0.4-0.7,0.6c-0.3,0.3-0.4,0.6-0.7,0.8c-0.1,0.3-0.4,0.4-0.6,0.7c-0.1,0.3-0.3,0.7-0.4,1 + s-0.3,0.6-0.3,0.8c-0.1,0.4-0.1,0.7-0.1,1.1c0,0.3-0.1,0.6-0.1,0.7L232,279l-58.6-38.7c-2.5-1.7-5.5-1.7-8-0.1l-84.3,51.5L77.3,206 + c0-0.3-0.1-0.4-0.1-0.7c0-0.3-0.1-0.7-0.1-1c-0.1-0.3-0.1-0.6-0.3-0.8c-0.1-0.3-0.3-0.6-0.4-0.8c-0.1-0.3-0.3-0.6-0.6-0.8 + c-0.1-0.3-0.4-0.6-0.6-0.7c-0.3-0.3-0.4-0.4-0.7-0.7c-0.1-0.1-0.3-0.3-0.6-0.4l-87.6-58.8l82.1-42.7c2.6-1.4,4.1-4,4-7L58.7-231 + c0-0.4-0.1-0.8-0.1-1.1c0-0.1,0-0.3-0.1-0.6c-0.1-0.7-0.4-1.2-0.8-1.8c-0.1-0.1-0.1-0.3-0.3-0.4c-0.3-0.4-0.6-0.8-1-1.2 + c-0.1-0.1-0.4-0.3-0.6-0.4c-0.1-0.1-0.4-0.4-0.6-0.6c-0.1-0.1-0.4-0.1-0.6-0.3c-0.1,0-0.1-0.1-0.3-0.3l-221.2-106.7 + c-1.7-0.8-3.7-1-5.5-0.4l-301.7,94l0,0c-0.3,0.1-0.4,0.3-0.7,0.3c-0.4,0.1-0.8,0.4-1.2,0.6l0,0c-0.1,0.1-0.3,0.3-0.6,0.6 + c-0.4,0.3-0.7,0.6-1,1c-0.1,0.3-0.3,0.6-0.6,0.8c-0.1,0.3-0.4,0.7-0.6,1c-0.1,0.3-0.1,0.7-0.3,1c-0.1,0.3-0.3,0.6-0.3,1v0.1 + c0,0.3,0,0.7,0,1c0,0.4,0,0.8,0,1.2v0.1l67.3,325.4c0.4,1.8,1.4,3.3,2.8,4.4l91.4,71.2l-66,31.4c-0.1,0-0.3,0.1-0.4,0.3 + c-0.1,0-0.1,0-0.3,0.1c-0.1,0.1-0.3,0.1-0.4,0.3c-0.4,0.3-0.8,0.6-1.1,1c-0.1,0.1-0.4,0.3-0.6,0.6c-0.3,0.4-0.6,0.8-0.8,1.2 + c-0.1,0.1-0.1,0.3-0.3,0.6c-0.3,0.6-0.4,1.2-0.6,1.9c0,0,0,0,0,0.1c0,0.1,0,0.3,0,0.4c0,0.6,0,1.2,0.1,1.8c0,0.1,0,0.1,0,0.3 + l50.7,244.8c0.3,1.5,1.1,2.9,2.2,4l63.5,59.9l-42.2,25.8c-0.6,0.3-1.1,0.7-1.5,1.2c-0.1,0.1-0.1,0.3-0.3,0.4c-0.4,0.4-0.7,1-1,1.4 + c-0.1,0.1-0.1,0.3-0.3,0.6c-0.3,0.6-0.4,1.2-0.6,1.9c0,0,0,0,0,0.1l0,0c-0.1,0.7,0,1.4,0.1,2.1c0,0.1,0,0.1,0,0.3l39.3,189.5 + c0.3,1.4,1,2.6,1.9,3.6l158.8,168.4c0.3,0.3,0.4,0.4,0.7,0.6c0.1,0.1,0.3,0.3,0.4,0.3c0.4,0.4,1,0.7,1.5,0.8c0,0,0,0,0.1,0h0.1 + c0.8,0.3,1.7,0.6,2.6,0.6l0,0l0,0l0,0c0.7,0,1.5-0.1,2.2-0.4c0.1,0,0.4-0.1,0.6-0.1c0.1,0,0.4-0.1,0.6-0.1c0.3-0.1,0.6-0.4,0.8-0.6 + c0.1-0.1,0.4-0.1,0.7-0.4L97.3,740.7c1.9-1.5,2.9-3.7,2.8-6.2l-4.8-111.6l68.2,57.5c0.1,0.1,0.3,0.1,0.3,0.1 + c0.4,0.3,0.8,0.7,1.2,0.8c0.1,0,0.3,0.1,0.4,0.1c0.1,0,0.3,0.1,0.6,0.1c0.7,0.3,1.5,0.4,2.2,0.4s1.5-0.1,2.2-0.4 + c0.1,0,0.3-0.1,0.6-0.1c0.1,0,0.3-0.1,0.6-0.1c0.4-0.1,0.7-0.4,1-0.7c0.1-0.1,0.4-0.1,0.6-0.3l163.6-130.8c1.7-1.4,2.6-3.3,2.8-5.4 + l5-81.9l49.7,34.6c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0.1,0.3,0.1,0.4,0.3c0.3,0.1,0.6,0.3,1,0.4c0.1,0.1,0.4,0.1,0.6,0.3 + c0.7,0.1,1.4,0.3,2.1,0.3s1.5-0.1,2.2-0.4c0.1,0,0.3-0.1,0.6-0.1c0.1,0,0.3-0.1,0.6-0.1c0.4-0.1,0.8-0.6,1.2-0.7 + c0.1-0.1,0.3-0.1,0.3-0.1l133.5-106.4c1.5-1.2,2.5-2.9,2.8-4.8l23.7-175.2c0-0.1,0-0.4,0-0.6C563,209.3,563,209,563,208.7"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/linux.a96776e5.svg b/extensions/harvester/1.5.0-dev/plugin/img/linux.a96776e5.svg new file mode 100644 index 00000000..14fdb517 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/linux.a96776e5.svg @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#1C89BB;} + .st1{fill:#55A7CC;} + .st2{fill:#FFFFFF;} +</style> +<g> + <circle class="st0" cx="50" cy="50" r="50"/> + <path class="st1" d="M78.9258347,9.2292404C70.7590714,3.4245493,60.7825584,0,50.0000343,0 + C22.3857155,0,0,22.3857155,0,49.9999084c0,7.6913719,1.7408894,14.9748077,4.8434119,21.4841919 + C33.3635521,55.6157303,58.5050011,34.4175606,78.9258347,9.2292404z"/> + <path class="st2" d="M92.291008,45.1128044c-23.3060608-3.4774857-16.4450912-26.6917019-44.5466843-26.6917019 + c-25.5610046,0-39.8462791,26.3095379-47.4017143,37.3563538c0.5148131,4.4717369,1.6398218,8.7541008,3.2541239,12.787075 + c1.7484694-5.5704689,20.8671741-43.7459717,34.3732185-40.5570374c3.7593346,2.6315479-12.5248032,5.1899471-4.5112801,21.9925632 + c5.8265495,12.2167969,26.2164307,6.5801315,26.0180855,49.0862579c3.571476-0.6873856,7.0123253-1.7420273,10.2706184-3.1444626 + c5.4388199-27.5204544-7.1061935-26.6286621-3.9418945-37.5855255c4.3027039-14.8987541,23.3598862-10.3563995,26.485527-10.189003 + C94.9248276,48.3083076,94.4391937,45.4333153,92.291008,45.1128044z"/> + <circle class="st0" cx="60.4323311" cy="33.9285698" r="2.3496242"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/local-cluster.272d4fc9.svg b/extensions/harvester/1.5.0-dev/plugin/img/local-cluster.272d4fc9.svg new file mode 100644 index 00000000..2c975bab --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/local-cluster.272d4fc9.svg @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 99.9999847 100" style="enable-background:new 0 0 99.9999847 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#0E5F8D;} + .st1{fill:#1172BA;} +</style> +<g> + <path class="st0" d="M25.768198,44.4351006H8.6809578c-5.634172,0-9.4672556-4.6643524-8.5436211-10.2523422l2.8632674-17.4105148 + c0.9236345-5.5879889,3.2789032-10.1599808,4.987627-10.1599808s3.3250847,4.6181731,3.3250847,10.2523441v4.5258102 + c0,5.6341724,4.2949009,9.6519833,9.9290724,9.6519833h4.5258102V44.4351006z"/> + <path class="st1" d="M74.2520218,88.3077469c0,2.8170853-2.2629013,5.0799866-5.0799942,5.0799866H30.8411922 + c-2.8170853,0-5.0799904-2.2629013-5.0799904-5.0799866V24.115139c0-2.8170834,2.2629051-5.0799904,5.0799904-5.0799904h38.3308334 + c2.8170929,0,5.0799942,2.262907,5.0799942,5.0799904V88.3077469z"/> + <path class="st0" d="M74.231781,44.4351006h17.0872421c5.6341705,0,9.4672546-4.6643524,8.5436249-10.2523422l-2.863266-17.4105148 + c-0.9236374-5.5879889-3.2789078-10.1599808-4.9876328-10.1599808c-1.7087173,0-3.3250809,4.6181731-3.3250809,10.2523441 + v4.5258102c0,5.6341724-4.294899,9.6519833-9.9290695,9.6519833H74.231781V44.4351006z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/login-landscape.60cd520b.svg b/extensions/harvester/1.5.0-dev/plugin/img/login-landscape.60cd520b.svg new file mode 100644 index 00000000..7155cfba --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/login-landscape.60cd520b.svg @@ -0,0 +1,496 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 682.5 768" style="enable-background:new 0 0 682.5 768;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#D9EDEF;} + .st1{fill:#BFE1E4;} + .st2{fill:#8CC53F;} + .st3{fill:#8BC53F;} + .st4{fill:#6CA839;} + .st5{fill:#313131;} + .st6{fill:#BAD545;} + .st7{fill:#AAC43F;} + .st8{fill:#DAE03B;} + .st9{opacity:0.5;} + .st10{fill:#FFFFFF;} + .st11{fill:#BAD546;} + .st12{fill:#5C9532;} + .st13{fill:#A1BA3B;} +</style> +<rect class="st0" width="682.5" height="768"/> +<g> + <path class="st1" d="M866.8705444,513.8812256c-1.9265137-17.074707-16.409668-30.346405-33.9996948-30.346405 + c-17.5896606,0-32.0730591,13.271698-33.9996948,30.346405h-13.1150513v-37.4233398h-43.7375488v10.7209473h-8.7507324v-10.7209473 + h-26.2217407v-32.9872131h-4.4628296v-6.9085693h-66.9710083v6.9085693h-4.4627075v59.7431641h-17.0655518l-2.0391235,5.1384583 + h-4.3295898l2.0391846-5.1384583H591.9375l-5.9931641,15.1025696v-8.1225891h-4.5303955V494.568573l-8.942688-7.471344h-7.3082275 + v-11.5932312c0-1.2746582-1.0334473-2.308136-2.3079224-2.308136h-15.4200439c-1.2744141,0-2.3078613,1.0334778-2.3078613,2.308136 + v11.5932312h-7.3085938l-5.3984985,4.510376c-0.6962891-2.2614441-2.2723999-4.1350708-4.328125-5.2268066v-14.9698792 + l-0.0896606-0.0756531l-30.8314209-25.9999084h-0.0006104l-30.8313599,25.9999084l-0.0897522,0.0756531v15.1045837 + c-2.6759644,1.5290527-4.4833374,4.40448-4.4833374,7.7070618h4.4833374v0.0493469h-7.1109924v28.7631836l-7.861084-2.4938965 + v-6.9517822h-19.3688354v0.8068237l-0.4680786-0.1484985v4.4473877h-9.1755676v-5.1057129h-48.2120972v-0.093811h16.1948242 + l6.2088928-15.6445312h4.3295898l-6.2081604,15.6445312h17.8167419l6.2084045-15.6445312h2.7611084v15.6445312h0.8034363 + v-15.6445312v-0.7438354v-0.0592041h-3.2458801l2.0391235-5.1384583h-17.8170776l-2.039032,5.1384583h-4.3295898 + l2.0392456-5.1384583h-17.8173828l-6.9442444,17.4990234v-26.7424622h-10.105011v-18.9480286h-13.3091431v-17.2053528 + c0-2.713623-2.1998901-4.9136963-4.9136047-4.9136963h-4.2505188v-16.0924683c0-0.4131775-0.3148804-0.7480774-0.7030945-0.7480774 + h-1.6538696c-0.3880005,0-0.7028198,0.3348999-0.7028198,0.7480774v16.0924683h-4.2509766 + c-2.7133179,0-4.9136047,2.2000732-4.9136047,4.9136963v17.2053528h-13.3092957v18.9480286h-10.1048584v34.3648071 + c-3.2003784-1.5671387-6.7817383-2.4718018-10.5788879-2.4718018h-6.5002747v-15.625885v-0.7438354v-0.0592041h-3.245636 + l2.039032-5.1384583h-8.7359009v-22.1459961h-6.7405701v-4.9119568h-76.3403778v4.9119568h-6.7406464v18.9505615 + c-6.6876984-3.1780701-14.9683228-5.0667419-23.8762054-5.0667419c-7.9515533,0-15.4009399,1.5071106-21.6670685,4.0893555 + v-54.4454346h-22.3223343c-1.2288513-10.7066956-10.3111343-19.0253906-21.3469162-19.0253906 + c-11.0357132,0-20.1177521,8.3186951-21.3466034,19.0253906H56.1106796v20.5249939l-55.320446-17.550415v62.6081238 + c-2.826494-13.4237976-14.7340126-23.5023804-28.9989128-23.5023804c-15.2328053,0-27.7756214,11.4932861-29.4440594,26.2802429 + h-15.2259903v11.178772h-36.6387787V499.026123c0-11.013855-8.9283829-19.9421692-19.9419327-19.9421692 + c-11.0137787,0-19.9424744,8.9283142-19.9424744,19.9421692v14.8867188h-52.5509644v5.7481079h3.1157074v43.1148071V798 + H884.4528809V535.3009033v-5.2202148v-16.1994629H866.8705444z M287.9533386,514.5591431h-8.9618835l6.2007141-15.625885h2.7611694 + V514.5591431z M529.2314453,494.2719116H528.09198v-0.0493469h1.1984253L529.2314453,494.2719116z M605.5254517,524.781189 + h-4.329834l6.2009277-15.6258545h4.3296509L605.5254517,524.781189z M631.1495361,524.781189h-7.8068848l6.2007446-15.6258545 + h1.6061401V524.781189z M631.1495361,508.3522949h-1.2874756l1.2874756-3.2443237V508.3522949z"/> + <polygon class="st1" points="222.305954,449.9937439 226.3033447,449.9937439 220.0951691,465.6383972 237.9120941,465.6383972 + 244.1204987,449.9937439 248.4499359,449.9937439 242.2417755,465.6383972 260.0588379,465.6383972 266.2670898,449.9937439 + 269.0283508,449.9937439 269.0283508,465.6383972 269.8314819,465.6383972 269.8314819,449.9937439 269.8314819,449.2497253 + 269.8314819,449.1906738 266.5857544,449.1906738 268.6248779,444.0520935 250.8076324,444.0520935 248.7685242,449.1906738 + 244.4390869,449.1906738 246.4782715,444.0520935 228.6610413,444.0520935 226.621933,449.1906738 222.6245422,449.1906738 + 224.6636505,444.0520935 206.8466492,444.0520935 198.2807922,465.6383972 216.097702,465.6383972 "/> + <polygon class="st1" points="669.9790649,420.5980835 674.3085938,420.5980835 668.1004639,436.2427368 685.9175415,436.2427368 + 692.1259155,420.5980835 694.8870239,420.5980835 694.8870239,436.2427368 695.6901245,436.2427368 695.6901245,420.5980835 + 695.6901245,419.8540649 695.6901245,419.7951965 692.4445801,419.7951965 694.4837036,414.6567383 676.6663208,414.6567383 + 674.6272583,419.7951965 670.2977295,419.7951965 672.3369141,414.6567383 654.5198975,414.6567383 645.9536743,436.2427368 + 663.7704468,436.2427368 "/> + <polygon class="st1" points="773.9268188,460.3124695 776.6878052,460.3124695 776.6878052,475.9572754 777.491272,475.9572754 + 777.491272,460.3124695 777.491272,459.568634 777.491272,459.5097351 774.2453003,459.5097351 776.2844849,454.3712769 + 758.4674072,454.3712769 749.9012451,475.9572754 767.7183228,475.9572754 "/> +</g> +<path class="st2" d="M682.2208862,1117.1604004c-17.7542725-1.6168213-35.8375244-2.4576416-54.1923828-2.4576416 + c-169.7473145,0-316.642395,71.2498779-387.5420532,174.9503174v114.762207H682.5L682.2208862,1117.1604004z"/> +<g> + <g> + <g> + + <ellipse transform="matrix(0.3941885 -0.9190296 0.9190296 0.3941885 -630.5393066 1248.2723389)" class="st3" cx="631.5588989" cy="1102.4073486" rx="24.8128052" ry="24.8127861"/> + </g> + <g> + <path class="st4" d="M606.7460938,1102.4073486c0-13.7037354,11.1087646-24.8128662,24.8128052-24.8128662v49.6256104 + C617.8548584,1127.2200928,606.7460938,1116.1113281,606.7460938,1102.4073486z"/> + </g> + <g> + <g> + <path class="st5" d="M631.5588989,1141.6000977c0.4669189,0,0.8459473-0.3786621,0.8459473-0.845459v-34.7751465 + c0-0.4672852-0.3790283-0.8459473-0.8459473-0.8459473c-0.4672241,0-0.8459473,0.3786621-0.8459473,0.8459473v34.7751465 + C630.7129517,1141.2214355,631.0916748,1141.6000977,631.5588989,1141.6000977L631.5588989,1141.6000977z"/> + </g> + <g> + <path class="st5" d="M631.5588989,1119.5135498c0.2171021,0,0.4325562-0.0825195,0.5977783-0.2478027 + c0.3303833-0.3304443,0.3303833-0.8659668,0-1.1962891l-5.1687012-5.1687012 + c-0.3303833-0.3304443-0.8659058-0.3304443-1.1962891,0c-0.3303833,0.3303223-0.3303833,0.8654785,0,1.1959229 + l5.1691284,5.1690674C631.1259766,1119.4310303,631.3418579,1119.5135498,631.5588989,1119.5135498L631.5588989,1119.5135498z" + /> + </g> + <g> + <path class="st5" d="M631.5588989,1115.0020752c0.2171021,0,0.4325562-0.0826416,0.5977783-0.2478027l6.8622437-6.8618164 + c0.3303833-0.3304443,0.3303833-0.8654785,0-1.1962891c-0.3308105-0.3304443-0.8659668-0.3304443-1.1963501,0 + l-6.8617554,6.8621826c-0.3304443,0.3304443-0.3304443,0.8654785,0,1.1959229 + C631.1259766,1114.9194336,631.3418579,1115.0020752,631.5588989,1115.0020752L631.5588989,1115.0020752z"/> + </g> + </g> + </g> + <g> + <g> + <path class="st6" d="M575.1856689,1187.0629883c0-14.0863037,3.9938965-30.3829346,12.1254883-30.3829346 + c8.1307373,0,12.1246948,16.2966309,12.1246948,30.3829346c0,5.1611328-3.9939575,9.3453369-12.1246948,9.3453369 + C579.1795654,1196.4083252,575.1856689,1192.2241211,575.1856689,1187.0629883z"/> + </g> + <g> + <path class="st7" d="M575.1856689,1187.0629883c0-14.0863037,3.9938965-30.3829346,12.1254883-30.3829346v39.7282715 + C579.1795654,1196.4083252,575.1856689,1192.2241211,575.1856689,1187.0629883z"/> + </g> + <g> + <g> + <path class="st5" d="M587.3111572,1210.7884521c0.4672852,0,0.8459473-0.3787842,0.8459473-0.8459473v-34.7751465 + c0-0.4669189-0.3786621-0.8455811-0.8459473-0.8455811c-0.4668579,0-0.8455811,0.3786621-0.8455811,0.8455811v34.7751465 + C586.4655762,1210.409668,586.8442993,1210.7884521,587.3111572,1210.7884521L587.3111572,1210.7884521z"/> + </g> + <g> + <path class="st5" d="M587.3111572,1188.7017822c0.217041,0,0.4329224-0.0825195,0.5981445-0.2478027l5.1690674-5.1690674 + c0.3304443-0.3304443,0.3304443-0.8658447,0-1.1962891c-0.3303833-0.3304443-0.8654785-0.3304443-1.1959229,0 + l-5.1690674,5.1690674c-0.3303833,0.3304443-0.3303833,0.8659668,0,1.1962891 + C586.8786011,1188.6192627,587.0944824,1188.7017822,587.3111572,1188.7017822L587.3111572,1188.7017822z"/> + </g> + <g> + <path class="st5" d="M587.3111572,1184.1903076c0.217041,0,0.4329224-0.0825195,0.5981445-0.2478027 + c0.3303833-0.3303223,0.3303833-0.8658447,0-1.1962891l-6.8618164-6.8618164 + c-0.3303833-0.3304443-0.8654785-0.3304443-1.1958618,0c-0.3304443,0.3304443-0.3304443,0.8659668,0,1.1962891 + l6.8617554,6.8618164C586.8786011,1184.1077881,587.0944824,1184.1903076,587.3111572,1184.1903076L587.3111572,1184.1903076z" + /> + </g> + </g> + </g> + <g> + <g> + <path class="st8" d="M513.885498,1149.3527832c0-19.2662354,5.7230225-51.3162842,12.7831421-51.3162842 + s12.7830811,32.0500488,12.7830811,51.3162842c0,7.0600586-5.7229614,12.7830811-12.7830811,12.7830811 + S513.885498,1156.4128418,513.885498,1149.3527832z"/> + </g> + <g> + <path class="st6" d="M513.885498,1149.3527832c0-19.2662354,5.7230225-51.3162842,12.7831421-51.3162842v64.0993652 + C519.6085205,1162.1358643,513.885498,1156.4128418,513.885498,1149.3527832z"/> + </g> + <g> + <g> + <path class="st5" d="M526.6686401,1176.5158691c0.4668579,0,0.8459473-0.3786621,0.8459473-0.8459473v-34.7751465 + c0-0.4669189-0.3790894-0.8459473-0.8459473-0.8459473c-0.4669189,0-0.8459473,0.3790283-0.8459473,0.8459473v34.7751465 + C525.8226929,1176.137207,526.2017212,1176.5158691,526.6686401,1176.5158691L526.6686401,1176.5158691z"/> + </g> + <g> + <path class="st5" d="M526.6686401,1154.4291992c0.2171021,0,0.4325562-0.0825195,0.5977173-0.2476807l5.1691284-5.1691895 + c0.3303833-0.3303223,0.3303833-0.8659668,0-1.1962891s-0.8655396-0.3303223-1.1962891,0l-5.1687012,5.1690674 + c-0.3303833,0.3304443-0.3303833,0.8659668,0,1.1964111 + C526.2357178,1154.3466797,526.4515381,1154.4291992,526.6686401,1154.4291992L526.6686401,1154.4291992z"/> + </g> + <g> + <path class="st5" d="M526.6686401,1149.9177246c0.2171021,0,0.4325562-0.0825195,0.5977173-0.2478027 + c0.3304443-0.3303223,0.3304443-0.8658447,0-1.1962891l-6.8618164-6.8618164 + c-0.3303223-0.3303223-0.8654785-0.3303223-1.1958618,0c-0.3303833,0.3304443-0.3303833,0.8659668,0,1.1962891 + l6.8618164,6.8618164C526.2357178,1149.8352051,526.4515381,1149.9177246,526.6686401,1149.9177246L526.6686401,1149.9177246z" + /> + </g> + </g> + </g> +</g> +<g class="st9"> + <path class="st10" d="M374.0312805,358.6667175h13.5591736c3.5248108,0,6.3822937-2.8575439,6.3822937-6.3824158 + c0-3.5247803-2.8574829-6.3822632-6.3822937-6.3822632h-2.6499939c-3.5248108,0-6.3823547-2.8574829-6.3823547-6.3823547v-0.000061 + c0-3.5248108,2.8575439-6.3822937,6.3823547-6.3822937h59.4479065c3.5249023,0,6.3823547,2.8574829,6.3823547,6.3822937v0.000061 + c0,3.5248718-2.8574524,6.3823547-6.3823547,6.3823547h-3.1492615h-27.5071106 + c-3.5248718,0-6.3823242,2.8574829-6.3823242,6.3822632v0.0000916c0,3.5248718,2.8574524,6.3823242,6.3823242,6.3823242h27.5071106 + h28.7742615h3.1664734h11.1018982c3.5248718,0,6.3823547,2.8574829,6.3823547,6.3822937 + c0,3.5248718-2.8574829,6.3823242-6.3823547,6.3823242h-9.3398438c-0.0308533,0.0004883-0.0606079,0.0046692-0.0915222,0.0046692 + h-3.1492615h-27.5071106c-3.5248718,0-6.3823547,2.8574524-6.3823547,6.3823242 + c0,3.5249023,2.8574829,6.3823547,6.3823547,6.3823547h27.5071106h28.7742615h3.1664429h18.8578186 + c3.5249023,0,6.3823853,2.8574829,6.3823853,6.3823547c0,3.5248108-2.8574829,6.3823547-6.3823853,6.3823547h-58.5584412 + h-18.5586243h-40.8893127c-3.5247803,0-6.3822632-2.8575439-6.3822632-6.3823547 + c0-3.5248718,2.8574829-6.3823547,6.3822632-6.3823547h13.5592041c3.5248108,0,6.3823547-2.8574524,6.3823547-6.3823547 + c0-3.5248718-2.8575439-6.3823242-6.3823547-6.3823242h-2.6499939c-0.0308533,0-0.0606995-0.0041809-0.0914307-0.0046692 + h-0.3904724h-40.8892822c-3.5248718,0-6.3822632-2.8574524-6.3822632-6.3823242 + C367.6490173,361.5242004,370.5064087,358.6667175,374.0312805,358.6667175z"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 -154.1081848 358.0526428)" class="st10" cx="355.1536865" cy="365.0513306" rx="6.3825698" ry="6.3825502"/> + + <ellipse transform="matrix(0.2305667 -0.9730566 0.9730566 0.2305667 27.5679207 713.9033203)" class="st10" cx="465.1994629" cy="339.5198975" rx="6.3825188" ry="6.3825622"/> + + <ellipse transform="matrix(0.1605944 -0.9870205 0.9870205 0.1605944 33.5281792 656.2073364)" class="st10" cx="402.566925" cy="308.39151" rx="6.3825197" ry="6.3825808"/> + + <ellipse transform="matrix(0.8951613 -0.4457425 0.4457425 0.8951613 -116.6427307 284.9064331)" class="st10" cx="547.3463745" cy="390.4179077" rx="6.3825793" ry="6.382555"/> + <circle class="st10" cx="438.8504944" cy="419.6084595" r="6.3825698"/> +</g> +<g class="st9"> + <path class="st10" d="M682.5,127.791214h-55.2671509h-16.126709h-1.388855h-38.5911255h-7.2354126 + c-3.0997314-0.2472916-5.5394287-2.835907-5.5394287-5.9992752c0-3.326683,2.6967773-6.0235519,6.0235596-6.0235519h2.5009766 + c3.3268433,0,6.0236206-2.6968689,6.0236206-6.0236359l0,0c0-3.3267593-2.6967773-6.0236282-6.0236206-6.0236282h-56.1065979 + c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0236282l0,0c0,3.326767,2.6968689,6.0236359,6.0236206,6.0236359h2.9722595 + h25.9610596c3.3267822,0,6.0236206,2.6968689,6.0236206,6.0235519v0.0000763c0,3.3267593-2.6968384,6.0236282-6.0236206,6.0236282 + h-25.9610596h-27.1571045h-2.9884949h-17.7978516c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0235596 + c0,3.3268433,2.6968689,6.0236359,6.0236206,6.0236359h55.2671814h17.515564h38.5911865 + c0.1630859,0,0.3233032-0.0116272,0.4831543-0.0243683h6.2680664c3.3267212,0,6.0236206,2.6968689,6.0236206,6.0236359 + s-2.6968994,6.0236359-6.0236206,6.0236359h-2.5009766h-23.4505005h-27.1570435h-2.9885254h-17.7978516 + c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0235596c0,3.3267517,2.6968689,6.0236969,6.0236206,6.0236969h17.24823 + c0.2016602,0.0204163,0.406189,0.0309448,0.6132202,0.0309448h2.972229h25.9611816 + c3.3267212,0,6.0236206,2.6968689,6.0236206,6.0235596v0.000061c0,3.326767-2.6968994,6.0236359-6.0236206,6.0236359h-25.9611816 + h-27.1569519h-2.9885559h-17.7978516c-3.3267517,0-6.0236511,2.6968689-6.0236511,6.0235596 + c0,3.326767,2.6968994,6.0236969,6.0236511,6.0236969h55.2671509h17.515625h38.5910645 + c3.3267212,0,6.0236206-2.6969299,6.0236206-6.0236969c0-3.3266907-2.6968994-6.0235596-6.0236206-6.0235596h-12.7970581 + c-3.3267822,0-6.0236206-2.6969452-6.0236206-6.0236969c0-3.3266907,2.6968384-6.0235596,6.0236206-6.0235596h2.5009766 + c0.2070312,0,0.4115601-0.0105286,0.6132202-0.0309448h36.7926025h16.1266479c3.3267822,0,6.0236206-2.6968689,6.0236206-6.0236206 + l0,0c0-3.326767-2.6968384-6.0236359-6.0236206-6.0236359h-2.97229h-13.1543579h-12.7971191 + c-3.3267212,0-6.0235596-2.6969452-6.0235596-6.0236359c0-3.326767,2.6968384-6.0236359,6.0235596-6.0236359h2.5010376h23.4504395 + h27.1571045h2.9884644H682.5"/> + + <ellipse transform="matrix(0.2400311 -0.9707652 0.9707652 0.2400311 298.3701782 744.2418823)" class="st10" cx="624.5230713" cy="181.5556335" rx="6.0238342" ry="6.0237951"/> + + <ellipse transform="matrix(0.6751398 -0.7376899 0.7376899 0.6751398 109.9258041 469.10849)" class="st10" cx="587.5866699" cy="109.744957" rx="6.023787" ry="6.0238056"/> + + <ellipse transform="matrix(0.2305667 -0.9730566 0.9730566 0.2305667 335.302887 585.1867065)" class="st10" cx="537.6768799" cy="80.5745697" rx="6.0237932" ry="6.0238342"/> + + <ellipse transform="matrix(0.153126 -0.9882067 0.9882067 0.153126 255.6480865 707.9041748)" class="st10" cx="540.8463135" cy="204.7958221" rx="6.0237942" ry="6.0238543"/> + + <ellipse transform="matrix(0.1547078 -0.9879603 0.9879603 0.1547078 259.3974609 617.8166504)" class="st10" cx="490.7444763" cy="157.3191071" rx="6.0237942" ry="6.0238538"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 29.2366829 338.7918701)" class="st10" cx="423.5763245" cy="134.1041412" rx="6.0238409" ry="6.0238228"/> +</g> +<g class="st9"> + <path class="st10" d="M0,234.1632996h44.3193474h16.1267281h1.3888092h75.1910858h7.2354431 + c3.0997314-0.2472839,5.5394287-2.835907,5.5394287-5.9992676c0-3.3266907-2.6967926-6.0235596-6.0235596-6.0235596h-2.5010071 + c-3.326828,0-6.0236206-2.6968689-6.0236206-6.0236359l0,0c0-3.3267517,2.6967926-6.0236206,6.0236206-6.0236206h70.746582 + c3.326767,0,6.0236359,2.6968689,6.0236359,6.0236206l0,0c0,3.326767-2.6968689,6.0236359-6.0236359,6.0236359h-2.9722443 + h-25.9610901c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0235596v0.0000763 + c0,3.3267517,2.6968689,6.0236206,6.0236206,6.0236206h25.9610901h27.1571045h2.9884796h17.7978516 + c3.3267822,0,6.0236206,2.6968689,6.0236206,6.0235596c0,3.3268433-2.6968384,6.0236359-6.0236206,6.0236359h-55.2671509 + h-17.5155945h-53.2311401c-0.1631012,0-0.323349-0.0116272-0.4831543-0.024353h-6.268074 + c-3.3267593,0-6.0236359,2.6968689-6.0236359,6.0236206c0,3.326767,2.6968765,6.0236206,6.0236359,6.0236206h2.5009918h23.4504471 + h41.7970734h2.9884796h17.7978516c3.326767,0,6.0236359,2.6968689,6.0236359,6.0235596 + c0,3.3267822-2.6968689,6.0237122-6.0236359,6.0237122h-17.2481842c-0.2016602,0.0204163-0.4062347,0.0309448-0.6132202,0.0309448 + H191.93013h-40.6011505c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0235596v0.000061 + c0,3.3267822,2.6968689,6.0236511,6.0236206,6.0236511h25.9611664h27.1569519h2.9885559h17.7978516 + c3.326767,0,6.0236359,2.6968689,6.0236359,6.0235596c0,3.3267517-2.6968689,6.0236816-6.0236359,6.0236816h-55.2671509 + h-17.5155945h-31.2710876c-3.3267593,0-6.0236359-2.6969299-6.0236359-6.0236816 + c0-3.3266907,2.6968765-6.0235596,6.0236359-6.0235596h5.4770432c3.3267593,0,6.0236282-2.6969604,6.0236282-6.0237122 + c0-3.3266907-2.6968689-6.0235596-6.0236282-6.0235596h-2.5009918c-0.2069931,0-0.4115677-0.0105286-0.6132202-0.0309448 + H50.1499672H34.0233154c-3.3267612,0-6.0236282-2.6968689-6.0236282-6.0236206l0,0 + c0-3.3267822,2.696867-6.0236511,6.0236282-6.0236511h2.9723206h13.1543312h12.7971039 + c3.3267632,0,6.0235558-2.6969299,6.0235558-6.0236206c0-3.3267517-2.6967926-6.0236206-6.0235558-6.0236206h-2.5009956H36.995636 + H9.8385382H6.8500547H0"/> + + <ellipse transform="matrix(0.7376898 -0.6751398 0.6751398 0.7376898 -114.2836609 138.0882568)" class="st10" cx="120.5654831" cy="216.1170349" rx="6.0238056" ry="6.023787"/> + + <ellipse transform="matrix(0.9730566 -0.2305667 0.2305667 0.9730566 -39.8037682 47.9156342)" class="st10" cx="185.1152649" cy="194.2666473" rx="6.0238342" ry="6.0237932"/> + + <ellipse transform="matrix(0.9882067 -0.153126 0.153126 0.9882067 -45.6747971 29.2885723)" class="st10" cx="167.3058319" cy="311.1679077" rx="6.0238543" ry="6.0237942"/> + + <ellipse transform="matrix(0.9879603 -0.1547078 0.1547078 0.9879603 -38.0012856 39.0743446)" class="st10" cx="232.0476532" cy="263.6911926" rx="6.0238538" ry="6.0237942"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 -82.4040909 282.0113831)" class="st10" cx="299.2158203" cy="240.4762268" rx="6.0238228" ry="6.0238409"/> +</g> +<g> + <path class="st6" d="M0.247685,1404.3671875l0-153.0811768c15.7563334-1.4349365,31.8045807-2.1811523,48.0938683-2.1811523 + c150.6448975,0,281.0091553,63.2318115,343.9301453,155.2623291H0.247685z"/> + <g> + <g> + + <ellipse transform="matrix(0.3941886 -0.9190296 0.9190296 0.3941886 -1057.0059814 952.1806641)" class="st3" cx="193.7367401" cy="1277.8411865" rx="30.3482265" ry="30.3482056"/> + </g> + <g> + <path class="st4" d="M163.3885345,1277.8411865c0-16.7607422,13.5869446-30.3482666,30.3482056-30.3482666v60.6965332 + C176.9754791,1308.1894531,163.3885345,1294.602417,163.3885345,1277.8411865z"/> + </g> + <g> + <g> + <path class="st5" d="M193.7367401,1325.7774658c0.5710449,0,1.034668-0.4631348,1.034668-1.0341797v-42.5330811 + c0-0.5714111-0.463623-1.034668-1.034668-1.034668c-0.5714874,0-1.034668,0.4632568-1.034668,1.034668v42.5330811 + C192.7020721,1325.3143311,193.1652527,1325.7774658,193.7367401,1325.7774658L193.7367401,1325.7774658z"/> + </g> + <g> + <path class="st5" d="M193.7367401,1298.7635498c0.2655334,0,0.5290527-0.1009521,0.7311096-0.3029785 + c0.4041138-0.4041748,0.4041138-1.059082,0-1.4632568l-6.3217621-6.3217773 + c-0.4041138-0.4040527-1.0590515-0.4040527-1.4631653,0c-0.4041138,0.4041748-0.4041138,1.0585938,0,1.4627686 + l6.3222656,6.3222656C193.2072449,1298.6625977,193.4712677,1298.7635498,193.7367401,1298.7635498L193.7367401,1298.7635498z" + /> + </g> + <g> + <path class="st5" d="M193.7367401,1293.2457275c0.2655334,0,0.5290527-0.1010742,0.7311096-0.3031006l8.3931122-8.3925781 + c0.4041138-0.4041748,0.4041138-1.0585938,0-1.4632568c-0.4046173-0.4040527-1.0591125-0.4040527-1.4632263,0 + l-8.3925476,8.3930664c-0.4041138,0.4041748-0.4041138,1.0585938,0,1.4627686 + C193.2072449,1293.1446533,193.4712677,1293.2457275,193.7367401,1293.2457275L193.7367401,1293.2457275z"/> + </g> + </g> + </g> + <g> + <g> + <path class="st6" d="M80.4140625,1230.5133057c0-17.2287598,4.8849335-37.1608887,14.830513-37.1608887 + c9.9446335,0,14.8295593,19.9321289,14.8295593,37.1608887c0,6.3125-4.8849258,11.4302979-14.8295593,11.4302979 + C85.298996,1241.9436035,80.4140625,1236.8258057,80.4140625,1230.5133057z"/> + </g> + <g> + <path class="st7" d="M80.4140625,1230.5133057c0-17.2287598,4.8849335-37.1608887,14.830513-37.1608887v48.5911865 + C85.298996,1241.9436035,80.4140625,1236.8258057,80.4140625,1230.5133057z"/> + </g> + <g> + <g> + <path class="st5" d="M95.2445755,1259.5316162c0.5715332,0,1.034668-0.4631348,1.034668-1.034668v-42.532959 + c0-0.5710449-0.4631348-1.0341797-1.034668-1.0341797c-0.5709839,0-1.0341721,0.4631348-1.0341721,1.0341797v42.532959 + C94.2104034,1259.0684814,94.6735916,1259.5316162,95.2445755,1259.5316162L95.2445755,1259.5316162z"/> + </g> + <g> + <path class="st5" d="M95.2445755,1232.5178223c0.2655258,0,0.5295563-0.1010742,0.7316055-0.3031006l6.3222656-6.3222656 + c0.4041138-0.4041748,0.4041138-1.059082,0-1.4631348c-0.4041138-0.4041748-1.058609-0.4041748-1.4627151,0 + l-6.3222656,6.3222656c-0.4041138,0.4040527-0.4041138,1.05896,0,1.4631348 + C94.7155228,1232.416748,94.979599,1232.5178223,95.2445755,1232.5178223L95.2445755,1232.5178223z"/> + </g> + <g> + <path class="st5" d="M95.2445755,1226.9998779c0.2655258,0,0.5295563-0.1010742,0.7316055-0.3031006 + c0.4041138-0.4041748,0.4041138-1.059082,0-1.4631348l-8.392601-8.3927002 + c-0.4041138-0.4040527-1.0585556-0.4040527-1.4626694,0c-0.4041138,0.4041748-0.4041138,1.059082,0,1.4632568 + l8.3925552,8.3925781C94.7155228,1226.8988037,94.979599,1226.9998779,95.2445755,1226.9998779L95.2445755,1226.9998779z"/> + </g> + </g> + </g> + <path class="st7" d="M80.4250565,1290.3724365c4.4984131,0,8.1461182,3.6467285,8.1461182,8.1461182 + s-3.6477051,8.1461182-8.1461182,8.1461182H53.5093536c-4.4911156,0.0107422-8.1285744,3.6535645-8.1285744,8.1446533 + c0,4.4993896,3.6482048,8.1461182,8.1475639,8.1461182h99.8789291c4.4998627,0,8.1476135,3.6467285,8.1476135,8.147583 + c0,4.4969482-3.6477509,8.1446533-8.1476135,8.1446533h-32.2486801c-4.5008621,0-8.1461182,3.6467285-8.1461182,8.1446533 + c0,4.4998779,3.645256,8.147583,8.1461182,8.147583h44.1601486c4.5008545,0,8.1461182,3.6467285,8.1461182,8.1446533 + c0,4.4993896-3.6452637,8.147583-8.1461182,8.147583H97.1472931c-4.5008621,0-8.1476212,3.6468506-8.1476212,8.1461182 + c0,4.4969482,3.646759,8.1447754,8.1476212,8.1447754h56.2599792c4.4998627,0,8.1476135,3.6481934,8.1476135,8.1450195 + c0,4.5003662-3.6477509,8.1472168-8.1476135,8.1472168H0l0-114.0428467H80.4250565z M180.5196838,1363.6845703 + c0,4.4993896,3.6467438,8.147583,8.1461182,8.147583c4.4983978,0,8.1461182-3.6481934,8.1461182-8.147583 + c0-4.4979248-3.6477203-8.1446533-8.1461182-8.1446533C184.1664276,1355.539917,180.5196838,1359.1866455,180.5196838,1363.6845703 + z M113.1027298,1298.5185547c0-4.4978027-3.645752-8.1446533-8.1446152-8.1446533 + c-4.4984131,0-8.1476212,3.6468506-8.1476212,8.1446533c0,4.5008545,3.6492081,8.147583,8.1476212,8.147583 + C109.4569778,1306.6661377,113.1027298,1303.0194092,113.1027298,1298.5185547z"/> + <g> + <g> + <path class="st8" d="M23.1879578,1326.3848877c0-23.564209,6.9997005-62.7642822,15.6348419-62.7642822 + s15.6348381,39.2000732,15.6348381,62.7642822c0,8.6351318-6.9996986,15.6348877-15.6348381,15.6348877 + S23.1879578,1335.0200195,23.1879578,1326.3848877z"/> + </g> + <g> + <path class="st6" d="M23.1879578,1326.3848877c0-23.564209,6.9997005-62.7642822,15.6348419-62.7642822v78.3991699 + C30.1876583,1342.0197754,23.1879578,1335.0200195,23.1879578,1326.3848877z"/> + </g> + <g> + <g> + <path class="st5" d="M38.8227997,1359.6077881c0.5710335,0,1.034668-0.4632568,1.034668-1.03479v-42.532959 + c0-0.5709229-0.4636345-1.034668-1.034668-1.034668c-0.5710373,0-1.0346718,0.4637451-1.0346718,1.034668v42.532959 + C37.7881279,1359.1445312,38.2517624,1359.6077881,38.8227997,1359.6077881L38.8227997,1359.6077881z"/> + </g> + <g> + <path class="st5" d="M38.8227997,1332.5938721c0.2655258,0,0.5290527-0.1009521,0.7311096-0.3029785l6.3222618-6.3222656 + c0.4041138-0.4041748,0.4041138-1.0592041,0-1.4632568c-0.40411-0.4040527-1.0586052-0.4040527-1.4631691,0 + l-6.3217659,6.3222656c-0.40411,0.4040527-0.40411,1.059082,0,1.4632568 + C38.293293,1332.4929199,38.5573196,1332.5938721,38.8227997,1332.5938721L38.8227997,1332.5938721z"/> + </g> + <g> + <path class="st5" d="M38.8227997,1327.0759277c0.2655258,0,0.5290527-0.1009521,0.7311096-0.3029785 + c0.40411-0.4041748,0.40411-1.0592041,0-1.4632568l-8.3926029-8.3925781c-0.4040623-0.4040527-1.0585594-0.4040527-1.4626713,0 + c-0.4041119,0.4041748-0.4041119,1.059082,0,1.4631348l8.392601,8.3927002 + C38.293293,1326.9749756,38.5573196,1327.0759277,38.8227997,1327.0759277L38.8227997,1327.0759277z"/> + </g> + </g> + </g> +</g> +<g> + <path class="st2" d="M285.9814758,767.3058472h517.8297119 + c-41.4989624-60.9594727-141.7769165-103.9497681-258.9144897-103.9497681 + C427.7600403,663.3560791,327.4810486,706.3463745,285.9814758,767.3058472z"/> + <path class="st11" d="M-121.3112335,767.3058472h748.6677856 + c-100.3242188-75.1903687-175.1220093-138.3173828-395.8466187-138.3173828S-121.3112335,767.3058472-121.3112335,767.3058472z"/> + <g> + <g> + <path class="st8" d="M596.3606567,641.7196655c0-18.953186-5.3735962-40.8799438-16.3153076-40.8799438 + c-10.9398804,0-16.3131714,21.9267578-16.3131714,40.8799438c0,6.9440308,5.373291,12.5750732,16.3131714,12.5750732 + C590.9870605,654.2947388,596.3606567,648.6636963,596.3606567,641.7196655z"/> + </g> + <g> + <path class="st6" d="M596.3606567,641.7196655c0-18.953186-5.3735962-40.8799438-16.3153076-40.8799438v53.4550171 + C590.9870605,654.2947388,596.3606567,648.6636963,596.3606567,641.7196655z"/> + </g> + <g> + <g> + <path class="st5" d="M580.0453491,674.0140991c-0.8334961,0-1.5095825-0.6764526-1.5095825-1.5095825v-46.7900391 + c0-0.8331909,0.6760864-1.5089722,1.5095825-1.5089722s1.5095825,0.6757812,1.5095825,1.5089722v46.7900391 + C581.5549316,673.3376465,580.8788452,674.0140991,580.0453491,674.0140991L580.0453491,674.0140991z"/> + </g> + <g> + <path class="st5" d="M580.0453491,644.2965698c-0.3873901,0-0.772583-0.1480713-1.0673828-0.4428711l-6.9537354-6.9555664 + c-0.5895996-0.5895386-0.5895996-1.5444336,0-2.1347656c0.5917358-0.5895996,1.5469971-0.5895996,2.1344604,0 + l6.9541016,6.9562988c0.5895996,0.5894775,0.5895996,1.5443726,0,2.1340332 + C580.8179932,644.1484985,580.4326782,644.2965698,580.0453491,644.2965698L580.0453491,644.2965698z"/> + </g> + <g> + <path class="st5" d="M580.0453491,638.2269287c-0.3873901,0-0.772583-0.1473999-1.0673828-0.4421997 + c-0.5895996-0.5895996-0.5895996-1.5452271,0-2.1348267l9.2341309-9.2333984 + c0.5895996-0.5895386,1.5444946-0.5895386,2.1340332,0c0.5899658,0.5895996,0.5899658,1.5444946,0,2.1348267 + l-9.2333374,9.2333984C580.8179932,638.0795288,580.4326782,638.2269287,580.0453491,638.2269287L580.0453491,638.2269287z"/> + </g> + </g> + </g> + <g> + <g> + <path class="st4" d="M328.8946533,643.6345825c0,14.8783569-12.0623474,26.9400024-26.9415588,26.9400024 + c-14.8788452,0-26.9408875-12.0616455-26.9408875-26.9400024c0-14.8771973,12.0620422-26.9407959,26.9408875-26.9407959 + C316.8323059,616.6937866,328.8946533,628.7573853,328.8946533,643.6345825z"/> + </g> + <g> + <path class="st12" d="M328.8946533,643.6345825c0-14.8771973-12.0623474-26.9407959-26.9415588-26.9407959v53.8807983 + C316.8323059,670.574585,328.8946533,658.5129395,328.8946533,643.6345825z"/> + </g> + <g> + <g> + <path class="st5" d="M301.9530945,686.616394c-0.7425842,0-1.3452759-0.6022949-1.3452759-1.3449097v-37.7583618 + c0-0.7426147,0.6026917-1.3455811,1.3452759-1.3455811c0.7429504,0,1.3456421,0.6029663,1.3456421,1.3455811v37.7583618 + C303.2987366,686.0140991,302.6960449,686.616394,301.9530945,686.616394L301.9530945,686.616394z"/> + </g> + <g> + <path class="st5" d="M301.9530945,662.6352539c-0.3440247,0-0.6882935-0.1313477-0.9510803-0.394104 + c-0.5255432-0.5255127-0.5255432-1.3773193,0-1.902832l5.6123962-5.6125488 + c0.5255432-0.5255127,1.3770447-0.5255127,1.9025879,0s0.5255432,1.3765869,0,1.9020996l-5.6124573,5.6132812 + C302.6417847,662.5039062,302.2974243,662.6352539,301.9530945,662.6352539L301.9530945,662.6352539z"/> + </g> + <g> + <path class="st5" d="M301.9530945,657.7367554c-0.3440247,0-0.6882935-0.1314087-0.9510803-0.394165l-7.4502258-7.4487305 + c-0.5255432-0.5255127-0.5255432-1.3772583,0-1.902771c0.5255432-0.5255737,1.3769836-0.5255737,1.9025269,0 + l7.4502258,7.4493408c0.5255432,0.5255127,0.5255432,1.3766479,0,1.9021606 + C302.6417847,657.6053467,302.2974243,657.7367554,301.9530945,657.7367554L301.9530945,657.7367554z"/> + </g> + </g> + </g> + <g> + <g> + <path class="st7" d="M636.4863892,663.555481c0-17.0574341-4.8364868-36.7911377-14.6837769-36.7911377 + c-9.8453979,0-14.6818848,19.7337036-14.6818848,36.7911377c0,6.2496338,4.8364868,11.3174438,14.6818848,11.3174438 + C631.6499023,674.8729248,636.4863892,669.8051147,636.4863892,663.555481z"/> + </g> + <g> + <path class="st13" d="M636.4863892,663.555481c0-17.0574341-4.8364868-36.7911377-14.6837769-36.7911377v48.1085815 + C631.6499023,674.8729248,636.4863892,669.8051147,636.4863892,663.555481z"/> + </g> + <g> + <g> + <path class="st5" d="M621.8026123,692.6199951c-0.7498169,0-1.3586426-0.6081543-1.3586426-1.3585815v-42.1096191 + c0-0.7504272,0.6088257-1.3585815,1.3586426-1.3585815s1.3585815,0.6081543,1.3585815,1.3585815v42.1096191 + C623.1611938,692.0118408,622.5524292,692.6199951,621.8026123,692.6199951L621.8026123,692.6199951z"/> + </g> + <g> + <path class="st5" d="M621.8026123,665.8747559c-0.3486328,0-0.6953125-0.1326294-0.9606323-0.3979492l-6.2579346-6.260498 + c-0.531189-0.5306396-0.531189-1.3899536,0-1.9205933c0.5319824-0.5306396,1.3919678-0.5306396,1.9206543,0l6.2585449,6.2597656 + c0.5306396,0.5306396,0.5306396,1.390686,0,1.9213257C622.4979248,665.7421265,622.1512451,665.8747559,621.8026123,665.8747559 + L621.8026123,665.8747559z"/> + </g> + <g> + <path class="st5" d="M621.8026123,660.4121704c-0.3486328,0-0.6953125-0.1326904-0.9606323-0.3979492 + c-0.5305786-0.5306396-0.5305786-1.3900146,0-1.9213257l8.3105469-8.3098755 + c0.5305786-0.5306396,1.3900146-0.5306396,1.9206543,0c0.5305786,0.5306396,0.5305786,1.390686,0,1.9213257 + l-8.3099365,8.3098755C622.4979248,660.27948,622.1512451,660.4121704,621.8026123,660.4121704L621.8026123,660.4121704z"/> + </g> + </g> + </g> + <g> + <g> + + <ellipse transform="matrix(0.9190296 -0.3941886 0.3941886 0.9190296 -207.9785156 110.1964798)" class="st3" cx="164.2456818" cy="561.3494873" rx="51.4888115" ry="51.4888496"/> + </g> + <g> + <path class="st4" d="M215.7344971,561.3494873c0-28.4364014-23.0516205-51.4889221-51.4888153-51.4889221v102.9777527 + C192.6828766,612.8383179,215.7344971,589.7866211,215.7344971,561.3494873z"/> + </g> + <g> + <g> + <path class="st5" d="M164.2456818,642.6781006c-0.968811,0-1.7554169-0.7857666-1.7554169-1.7545776v-72.1615601 + c0-0.9695435,0.7866058-1.7554321,1.7554169-1.7554321c0.9695892,0,1.7554321,0.7858887,1.7554321,1.7554321v72.1615601 + C166.0011139,641.892334,165.215271,642.6781006,164.2456818,642.6781006L164.2456818,642.6781006z"/> + </g> + <g> + <path class="st5" d="M164.2456818,596.8464355c-0.4504852,0-0.897583-0.1713257-1.2404022-0.5141602 + c-0.6856079-0.6856689-0.6856079-1.796875,0-2.4824829l10.7255249-10.7255249 + c0.6856079-0.6856079,1.7967987-0.6856079,2.4824066,0c0.6856232,0.6856079,0.6856232,1.7960205,0,2.4816284 + l-10.7263641,10.7263794C165.144043,596.6751099,164.6960907,596.8464355,164.2456818,596.8464355L164.2456818,596.8464355z"/> + </g> + <g> + <path class="st5" d="M164.2456818,587.4846802c-0.4504852,0-0.897583-0.1713257-1.2404022-0.5141602l-14.2397461-14.2388916 + c-0.6856232-0.6856689-0.6856232-1.7960205,0-2.4824219c0.6864624-0.6856079,1.7968903-0.6856079,2.4824982,0 + l14.2388153,14.2396851c0.6856232,0.6856079,0.6856232,1.7960205,0,2.4816284 + C165.144043,587.3133545,164.6960907,587.4846802,164.2456818,587.4846802L164.2456818,587.4846802z"/> + </g> + </g> + </g> + <path class="st7" d="M2.655179,682.4365234l129.288208-3.477478h103.7931366c4.9183807,0,8.9050751,3.986145,8.9050751,8.9058838 + c0,4.9154053-3.9866943,8.9026489-8.9050751,8.9026489h-37.4993591c-4.9181061,0-8.9042511,3.986084-8.9042511,8.9026489 + c0,4.9186401,3.986145,8.9058838,8.9042511,8.9058838h78.8408356c4.9173279,0,8.9034729,3.986084,8.9034729,8.9025879 + c0,4.9181519-3.986145,8.9058838-8.9034729,8.9058838H224.03685c-4.9167786,0-8.9034271,3.986145-8.9034271,8.9042358 + c0,4.9154663,3.9866486,8.90271,8.9034271,8.90271h11.6996765c4.9183807,0,8.9050751,3.9877319,8.9050751,8.9031372 + c0,4.9191895-3.9866943,8.9053345-8.9050751,8.9053345h-357.04776L2.655179,682.4365234z M263.0184937,696.7675781 + c4.9173279,0,8.9042664-3.9872437,8.9042664-8.9042358c0-4.9181519-3.9869385-8.9058838-8.9042664-8.9058838 + c-4.9172668,0-8.9042358,3.9877319-8.9042358,8.9058838C254.1142578,692.7803345,258.1012268,696.7675781,263.0184937,696.7675781z + "/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/login-landscape.6e1253bb.svg b/extensions/harvester/1.5.0-dev/plugin/img/login-landscape.6e1253bb.svg new file mode 100644 index 00000000..1a5ed8c1 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/login-landscape.6e1253bb.svg @@ -0,0 +1,291 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 682.5 768" style="enable-background:new 0 0 682.5 768;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#2C3E50;} + .st1{opacity:0.5;enable-background:new ;} + .st2{fill:#34495E;} + .st3{fill:#8CC53F;} + .st4{fill:#BAD546;} + .st5{fill:#DAE03B;} + .st6{fill:#BAD545;} + .st7{fill:#313131;} + .st8{fill:#6CA839;} + .st9{fill:#5C9532;} + .st10{fill:#AAC43F;} + .st11{fill:#A1BA3B;} + .st12{fill:#8BC53F;} + .st13{opacity:0.5;fill:#2C3E50;enable-background:new ;} +</style> +<rect class="st0" width="682.5" height="768"/> +<g class="st1"> + <path class="st0" d="M866.8705444,513.8812256c-1.9265137-17.074707-16.409668-30.346405-33.9996948-30.346405 + c-17.5896606,0-32.0730591,13.271698-33.9996948,30.346405h-13.1150513v-37.4233398h-43.7375488v10.7209473h-8.7507324v-10.7209473 + h-26.2217407v-32.9872131h-4.4628296v-6.9085693h-66.9710083v6.9085693h-4.4627075v59.7431641h-17.0655518l-2.0391235,5.1384583 + h-4.3295898l2.0391846-5.1384583H591.9375l-5.9931641,15.1025696v-8.1225891h-4.5303955V494.568573l-8.942688-7.471344h-7.3082275 + v-11.5932312c0-1.2746582-1.0334473-2.308136-2.3079224-2.308136h-15.4200439c-1.2744141,0-2.3078613,1.0334778-2.3078613,2.308136 + v11.5932312h-7.3085938l-5.3984985,4.510376c-0.6962891-2.2614441-2.2723999-4.1350708-4.328125-5.2268066v-14.9698792 + l-0.0896606-0.0756531l-30.8314209-25.9999084h-0.0006104l-30.8313599,25.9999084l-0.0897522,0.0756531v15.1045837 + c-2.6759644,1.5290527-4.4833374,4.40448-4.4833374,7.7070618h4.4833374v0.0493469h-7.1109924v28.7631836l-7.861084-2.4938965 + v-6.9517822h-19.3688354v0.8068237l-0.4680786-0.1484985v4.4473877h-9.1755676v-5.1057129h-48.2120972v-0.093811h16.1948242 + l6.2088928-15.6445312h4.3295898l-6.2081604,15.6445312h17.8167419l6.2084045-15.6445312h2.7611084v15.6445312h0.8034363 + v-15.6445312v-0.7438354v-0.0592041h-3.2458801l2.0391235-5.1384583h-17.8170776l-2.039032,5.1384583h-4.3295898 + l2.0392456-5.1384583h-17.8173828l-6.9442444,17.4990234v-26.7424622h-10.105011v-18.9480286h-13.3091431v-17.2053528 + c0-2.713623-2.1998901-4.9136963-4.9136047-4.9136963h-4.2505188v-16.0924683c0-0.4131775-0.3148804-0.7480774-0.7030945-0.7480774 + h-1.6538696c-0.3880005,0-0.7028198,0.3348999-0.7028198,0.7480774v16.0924683h-4.2509766 + c-2.7133179,0-4.9136047,2.2000732-4.9136047,4.9136963v17.2053528h-13.3092957v18.9480286h-10.1048584v34.3648071 + c-3.2003784-1.5671387-6.7817383-2.4718018-10.5788879-2.4718018h-6.5002747v-15.625885v-0.7438354v-0.0592041h-3.245636 + l2.039032-5.1384583h-8.7359009v-22.1459961h-6.7405701v-4.9119568h-76.3403778v4.9119568h-6.7406464v18.9505615 + c-6.6876984-3.1780701-14.9683228-5.0667419-23.8762054-5.0667419c-7.9515533,0-15.4009399,1.5071106-21.6670685,4.0893555 + v-54.4454346h-22.3223343c-1.2288513-10.7066956-10.3111343-19.0253906-21.3469162-19.0253906 + c-11.0357132,0-20.1177521,8.3186951-21.3466034,19.0253906H56.1106796v20.5249939l-55.320446-17.550415v62.6081238 + c-2.826494-13.4237976-14.7340126-23.5023804-28.9989128-23.5023804c-15.2328033,0-27.7756195,11.4932861-29.4440613,26.2802429 + h-15.2259903v11.178772h-36.6387787V499.026123c0-11.013855-8.9283829-19.9421692-19.9419327-19.9421692 + c-11.0137787,0-19.9424744,8.9283142-19.9424744,19.9421692v14.8867188h-52.5509644v5.7481079h3.1157074v43.1148071V798 + H884.4528809V535.3009033v-5.2202148v-16.1994629H866.8705444z M287.9533386,514.5591431h-8.9618835l6.2007141-15.625885h2.7611694 + V514.5591431z M529.2314453,494.2719116H528.09198v-0.0493469h1.1984253L529.2314453,494.2719116z M605.5254517,524.781189 + h-4.329834l6.2009277-15.6258545h4.3296509L605.5254517,524.781189z M631.1495361,524.781189h-7.8068848l6.2007446-15.6258545 + h1.6061401V524.781189z M631.1495361,508.3522949h-1.2874756l1.2874756-3.2443237V508.3522949z"/> + <polygon class="st0" points="222.305954,449.9937439 226.3033447,449.9937439 220.0951691,465.6383972 237.9120941,465.6383972 + 244.1204987,449.9937439 248.4499359,449.9937439 242.2417755,465.6383972 260.0588379,465.6383972 266.2670898,449.9937439 + 269.0283508,449.9937439 269.0283508,465.6383972 269.8314819,465.6383972 269.8314819,449.9937439 269.8314819,449.2497253 + 269.8314819,449.1906738 266.5857544,449.1906738 268.6248779,444.0520935 250.8076324,444.0520935 248.7685242,449.1906738 + 244.4390869,449.1906738 246.4782715,444.0520935 228.6610413,444.0520935 226.621933,449.1906738 222.6245422,449.1906738 + 224.6636505,444.0520935 206.8466492,444.0520935 198.2807922,465.6383972 216.097702,465.6383972 "/> + <polygon class="st0" points="669.9790649,420.5980835 674.3085938,420.5980835 668.1004639,436.2427368 685.9175415,436.2427368 + 692.1259155,420.5980835 694.8870239,420.5980835 694.8870239,436.2427368 695.6901245,436.2427368 695.6901245,420.5980835 + 695.6901245,419.8540649 695.6901245,419.7951965 692.4445801,419.7951965 694.4837036,414.6567383 676.6663208,414.6567383 + 674.6272583,419.7951965 670.2977295,419.7951965 672.3369141,414.6567383 654.5198975,414.6567383 645.9536743,436.2427368 + 663.7704468,436.2427368 "/> + <polygon class="st0" points="773.9268188,460.3124695 776.6878052,460.3124695 776.6878052,475.9572754 777.491272,475.9572754 + 777.491272,460.3124695 777.491272,459.568634 777.491272,459.5097351 774.2453003,459.5097351 776.2844849,454.3712769 + 758.4674072,454.3712769 749.9012451,475.9572754 767.7183228,475.9572754 "/> +</g> +<g> + <path class="st2" d="M374.0312805,358.6667175h13.5591736c3.5248108,0,6.3822937-2.8575439,6.3822937-6.3824158 + c0-3.5247803-2.8574829-6.3822632-6.3822937-6.3822632h-2.6499939c-3.5248108,0-6.3823547-2.8574829-6.3823547-6.3823547v-0.000061 + c0-3.5248108,2.8575439-6.3822937,6.3823547-6.3822937h59.4479065c3.5249023,0,6.3823547,2.8574829,6.3823547,6.3822937v0.000061 + c0,3.5248718-2.8574524,6.3823547-6.3823547,6.3823547h-3.1492615h-27.5071106 + c-3.5248718,0-6.3823242,2.8574829-6.3823242,6.3822632v0.0000916c0,3.5248718,2.8574524,6.3823242,6.3823242,6.3823242h27.5071106 + h28.7742615h3.1664734h11.1018982c3.5248718,0,6.3823547,2.8574829,6.3823547,6.3822937 + c0,3.5248718-2.8574829,6.3823242-6.3823547,6.3823242h-9.3398438c-0.0308533,0.0004883-0.0606079,0.0046692-0.0915222,0.0046692 + h-3.1492615h-27.5071106c-3.5248718,0-6.3823547,2.8574524-6.3823547,6.3823242 + c0,3.5249023,2.8574829,6.3823547,6.3823547,6.3823547h27.5071106h28.7742615h3.1664429h18.8578186 + c3.5249023,0,6.3823853,2.8574829,6.3823853,6.3823547c0,3.5248108-2.8574829,6.3823547-6.3823853,6.3823547h-58.5584412 + h-18.5586243h-40.8893127c-3.5247803,0-6.3822632-2.8575439-6.3822632-6.3823547 + c0-3.5248718,2.8574829-6.3823547,6.3822632-6.3823547h13.5592041c3.5248108,0,6.3823547-2.8574524,6.3823547-6.3823547 + c0-3.5248718-2.8575439-6.3823242-6.3823547-6.3823242h-2.6499939c-0.0308533,0-0.0606995-0.0041809-0.0914307-0.0046692 + h-0.3904724h-40.8892822c-3.5248718,0-6.3822632-2.8574524-6.3822632-6.3823242 + C367.6490173,361.5242004,370.5064087,358.6667175,374.0312805,358.6667175z"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 -154.1081696 358.0526428)" class="st2" cx="355.1536865" cy="365.0513306" rx="6.3825688" ry="6.3825383"/> + + <ellipse transform="matrix(0.2305667 -0.9730566 0.9730566 0.2305667 27.567955 713.9033203)" class="st2" cx="465.1994934" cy="339.5198975" rx="6.3825078" ry="6.3825688"/> + + <ellipse transform="matrix(0.1605944 -0.9870205 0.9870205 0.1605944 33.5282097 656.2073364)" class="st2" cx="402.566925" cy="308.3914795" rx="6.3825073" ry="6.3825684"/> + <ellipse class="st2" cx="547.3463745" cy="390.4178772" rx="6.3825684" ry="6.3825684"/> + <circle class="st2" cx="438.8504944" cy="419.6084595" r="6.3825684"/> +</g> +<g> + <path class="st2" d="M682.5,127.791214h-55.2671509h-16.126709h-1.388855h-38.5911255h-7.2354126 + c-3.0997314-0.2472916-5.5394287-2.835907-5.5394287-5.9992752c0-3.326683,2.6967773-6.0235519,6.0235596-6.0235519h2.5009766 + c3.3268433,0,6.0236206-2.6968689,6.0236206-6.0236359l0,0c0-3.3267593-2.6967773-6.0236282-6.0236206-6.0236282h-56.1065979 + c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0236282l0,0c0,3.326767,2.6968689,6.0236359,6.0236206,6.0236359h2.9722595 + h25.9610596c3.3267822,0,6.0236206,2.6968689,6.0236206,6.0235519v0.0000763c0,3.3267593-2.6968384,6.0236282-6.0236206,6.0236282 + h-25.9610596h-27.1571045h-2.9884949h-17.7978516c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0235596 + c0,3.3268433,2.6968689,6.0236359,6.0236206,6.0236359h55.2671814h17.515564h38.5911865 + c0.1630859,0,0.3233032-0.0116272,0.4831543-0.0243683h6.2680664c3.3267212,0,6.0236206,2.6968689,6.0236206,6.0236359 + s-2.6968994,6.0236359-6.0236206,6.0236359h-2.5009766h-23.4505005h-27.1570435h-2.9885254h-17.7978516 + c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0235596c0,3.3267517,2.6968689,6.0236969,6.0236206,6.0236969h17.24823 + c0.2016602,0.0204163,0.406189,0.0309448,0.6132202,0.0309448h2.972229h25.9611816 + c3.3267212,0,6.0236206,2.6968689,6.0236206,6.0235596v0.000061c0,3.326767-2.6968994,6.0236359-6.0236206,6.0236359h-25.9611816 + h-27.1569519h-2.9885559h-17.7978516c-3.3267517,0-6.0236511,2.6968689-6.0236511,6.0235596 + c0,3.326767,2.6968994,6.0236969,6.0236511,6.0236969h55.2671509h17.515625h38.5910645 + c3.3267212,0,6.0236206-2.6969299,6.0236206-6.0236969c0-3.3266907-2.6968994-6.0235596-6.0236206-6.0235596h-12.7970581 + c-3.3267822,0-6.0236206-2.6969452-6.0236206-6.0236969c0-3.3266907,2.6968384-6.0235596,6.0236206-6.0235596h2.5009766 + c0.2070312,0,0.4115601-0.0105286,0.6132202-0.0309448h36.7926025h16.1266479c3.3267822,0,6.0236206-2.6968689,6.0236206-6.0236206 + l0,0c0-3.326767-2.6968384-6.0236359-6.0236206-6.0236359h-2.97229h-13.1543579h-12.7971191 + c-3.3267212,0-6.0235596-2.6969452-6.0235596-6.0236359c0-3.326767,2.6968384-6.0236359,6.0235596-6.0236359h2.5010376h23.4504395 + h27.1571045h2.9884644H682.5"/> + + <ellipse transform="matrix(0.2400311 -0.9707652 0.9707652 0.2400311 298.3702087 744.2418823)" class="st2" cx="624.5230103" cy="181.5556335" rx="6.0238037" ry="6.0237885"/> + <ellipse class="st2" cx="587.5866699" cy="109.7449188" rx="6.0238042" ry="6.0238042"/> + + <ellipse transform="matrix(0.2305667 -0.9730566 0.9730566 0.2305667 335.303009 585.1867065)" class="st2" cx="537.6768799" cy="80.5744781" rx="6.0238042" ry="6.0238347"/> + + <ellipse transform="matrix(0.153126 -0.9882067 0.9882067 0.153126 255.6481171 707.9041748)" class="st2" cx="540.8463135" cy="204.7957916" rx="6.0238037" ry="6.0238495"/> + + <ellipse transform="matrix(0.1547078 -0.9879603 0.9879603 0.1547078 259.3974609 617.8166504)" class="st2" cx="490.7444763" cy="157.3190918" rx="6.0238037" ry="6.0238495"/> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 29.2367134 338.7919006)" class="st2" cx="423.576355" cy="134.1041107" rx="6.0238347" ry="6.0238194"/> +</g> +<g> + <path class="st2" d="M0,234.1632996h44.3193474h16.1267281h1.3888092h75.1910858h7.2354431 + c3.0997314-0.2472839,5.5394287-2.835907,5.5394287-5.9992676c0-3.3266907-2.6967926-6.0235596-6.0235596-6.0235596h-2.5010071 + c-3.326828,0-6.0236206-2.6968689-6.0236206-6.0236359l0,0c0-3.3267517,2.6967926-6.0236206,6.0236206-6.0236206h70.746582 + c3.326767,0,6.0236359,2.6968689,6.0236359,6.0236206l0,0c0,3.326767-2.6968689,6.0236359-6.0236359,6.0236359h-2.9722443 + h-25.9610901c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0235596v0.0000763 + c0,3.3267517,2.6968689,6.0236206,6.0236206,6.0236206h25.9610901h27.1571045h2.9884796h17.7978516 + c3.3267822,0,6.0236206,2.6968689,6.0236206,6.0235596c0,3.3268433-2.6968384,6.0236359-6.0236206,6.0236359h-55.2671509 + h-17.5155945h-53.2311401c-0.1631012,0-0.323349-0.0116272-0.4831543-0.024353h-6.268074 + c-3.3267593,0-6.0236359,2.6968689-6.0236359,6.0236206c0,3.326767,2.6968765,6.0236206,6.0236359,6.0236206h2.5009918h23.4504471 + h41.7970734h2.9884796h17.7978516c3.326767,0,6.0236359,2.6968689,6.0236359,6.0235596 + c0,3.3267822-2.6968689,6.0237122-6.0236359,6.0237122h-17.2481842c-0.2016602,0.0204163-0.4062347,0.0309448-0.6132202,0.0309448 + H191.93013h-40.6011505c-3.3267517,0-6.0236206,2.6968689-6.0236206,6.0235596v0.000061 + c0,3.3267822,2.6968689,6.0236511,6.0236206,6.0236511h25.9611664h27.1569519h2.9885559h17.7978516 + c3.326767,0,6.0236359,2.6968689,6.0236359,6.0235596c0,3.3267517-2.6968689,6.0236816-6.0236359,6.0236816h-55.2671509 + h-17.5155945h-31.2710876c-3.3267593,0-6.0236359-2.6969299-6.0236359-6.0236816 + c0-3.3266907,2.6968765-6.0235596,6.0236359-6.0235596h5.4770432c3.3267593,0,6.0236282-2.6969604,6.0236282-6.0237122 + c0-3.3266907-2.6968689-6.0235596-6.0236282-6.0235596h-2.5009918c-0.2069931,0-0.4115677-0.0105286-0.6132202-0.0309448 + H50.1499672H34.0233154c-3.3267612,0-6.0236282-2.6968689-6.0236282-6.0236206l0,0 + c0-3.3267822,2.696867-6.0236511,6.0236282-6.0236511h2.9723206h13.1543312h12.7971039 + c3.3267632,0,6.0235558-2.6969299,6.0235558-6.0236206c0-3.3267517-2.6967926-6.0236206-6.0235558-6.0236206h-2.5009956H36.995636 + H9.8385382H6.8500547H0"/> + + <ellipse transform="matrix(0.7376898 -0.6751398 0.6751398 0.7376898 -114.2836609 138.0882568)" class="st2" cx="120.5654755" cy="216.1170349" rx="6.0238037" ry="6.0237885"/> + + <ellipse transform="matrix(0.9730566 -0.2305667 0.2305667 0.9730566 -39.803772 47.9156342)" class="st2" cx="185.1152802" cy="194.2666626" rx="6.0238347" ry="6.0237889"/> + + <ellipse transform="matrix(0.9882067 -0.153126 0.153126 0.9882067 -45.6748047 29.2885799)" class="st2" cx="167.3058472" cy="311.1679077" rx="6.0238495" ry="6.0238037"/> + + <ellipse transform="matrix(0.9879603 -0.1547078 0.1547078 0.9879603 -38.0012894 39.0743523)" class="st2" cx="232.0476685" cy="263.6911926" rx="6.0238495" ry="6.0238037"/> + <ellipse class="st2" cx="299.2158508" cy="240.4762115" rx="6.0238347" ry="6.0238347"/> +</g> +<g> + <path class="st3" d="M285.9814758,767.3058472h517.8297119 + c-41.4989624-60.9594727-141.7769165-103.9497681-258.9144897-103.9497681 + C427.7600403,663.3560791,327.4810486,706.3463745,285.9814758,767.3058472z"/> + <path class="st4" d="M-121.3112335,767.3058472h748.6677856 + c-100.3242188-75.1903687-175.1220093-138.3173828-395.8466187-138.3173828S-121.3112335,767.3058472-121.3112335,767.3058472z"/> + <g> + <g> + <path class="st5" d="M596.3606567,641.7196655c0-18.953186-5.3735962-40.8799438-16.3153076-40.8799438 + c-10.9398804,0-16.3131714,21.9267578-16.3131714,40.8799438c0,6.9440308,5.373291,12.5750732,16.3131714,12.5750732 + C590.9870605,654.2947388,596.3606567,648.6636963,596.3606567,641.7196655z"/> + </g> + <g> + <path class="st6" d="M596.3606567,641.7196655c0-18.953186-5.3735962-40.8799438-16.3153076-40.8799438v53.4550171 + C590.9870605,654.2947388,596.3606567,648.6636963,596.3606567,641.7196655z"/> + </g> + <g> + <g> + <path class="st7" d="M580.0453491,674.0140991c-0.8334961,0-1.5095825-0.6764526-1.5095825-1.5095825v-46.7900391 + c0-0.8331909,0.6760864-1.5089722,1.5095825-1.5089722s1.5095825,0.6757812,1.5095825,1.5089722v46.7900391 + C581.5549316,673.3376465,580.8788452,674.0140991,580.0453491,674.0140991L580.0453491,674.0140991z"/> + </g> + <g> + <path class="st7" d="M580.0453491,644.2965698c-0.3873901,0-0.772583-0.1480713-1.0673828-0.4428711l-6.9537354-6.9555664 + c-0.5895996-0.5895386-0.5895996-1.5444336,0-2.1347656c0.5917358-0.5895996,1.5469971-0.5895996,2.1344604,0 + l6.9541016,6.9562988c0.5895996,0.5894775,0.5895996,1.5443726,0,2.1340332 + C580.8179932,644.1484985,580.4326782,644.2965698,580.0453491,644.2965698L580.0453491,644.2965698z"/> + </g> + <g> + <path class="st7" d="M580.0453491,638.2269287c-0.3873901,0-0.772583-0.1473999-1.0673828-0.4421997 + c-0.5895996-0.5895996-0.5895996-1.5452271,0-2.1348267l9.2341309-9.2333984 + c0.5895996-0.5895386,1.5444946-0.5895386,2.1340332,0c0.5899658,0.5895996,0.5899658,1.5444946,0,2.1348267 + l-9.2333374,9.2333984C580.8179932,638.0795288,580.4326782,638.2269287,580.0453491,638.2269287L580.0453491,638.2269287z"/> + </g> + </g> + </g> + <g> + <g> + <path class="st8" d="M328.8946533,643.6345825c0,14.8783569-12.0623474,26.9400024-26.9415588,26.9400024 + c-14.8788452,0-26.9408875-12.0616455-26.9408875-26.9400024c0-14.8771973,12.0620422-26.9407959,26.9408875-26.9407959 + C316.8323059,616.6937866,328.8946533,628.7573853,328.8946533,643.6345825z"/> + </g> + <g> + <path class="st9" d="M328.8946533,643.6345825c0-14.8771973-12.0623474-26.9407959-26.9415588-26.9407959v53.8807983 + C316.8323059,670.574585,328.8946533,658.5129395,328.8946533,643.6345825z"/> + </g> + <g> + <g> + <path class="st7" d="M301.9530945,686.616394c-0.7425842,0-1.3452759-0.6022949-1.3452759-1.3449097v-37.7583618 + c0-0.7426147,0.6026917-1.3455811,1.3452759-1.3455811c0.7429504,0,1.3456421,0.6029663,1.3456421,1.3455811v37.7583618 + C303.2987366,686.0140991,302.6960449,686.616394,301.9530945,686.616394L301.9530945,686.616394z"/> + </g> + <g> + <path class="st7" d="M301.9530945,662.6352539c-0.3440247,0-0.6882935-0.1313477-0.9510803-0.394104 + c-0.5255432-0.5255127-0.5255432-1.3773193,0-1.902832l5.6123962-5.6125488 + c0.5255432-0.5255127,1.3770447-0.5255127,1.9025879,0s0.5255432,1.3765869,0,1.9020996l-5.6124573,5.6132812 + C302.6417847,662.5039062,302.2974243,662.6352539,301.9530945,662.6352539L301.9530945,662.6352539z"/> + </g> + <g> + <path class="st7" d="M301.9530945,657.7367554c-0.3440247,0-0.6882935-0.1314087-0.9510803-0.394165l-7.4502258-7.4487305 + c-0.5255432-0.5255127-0.5255432-1.3772583,0-1.902771c0.5255432-0.5255737,1.3769836-0.5255737,1.9025269,0 + l7.4502258,7.4493408c0.5255432,0.5255127,0.5255432,1.3766479,0,1.9021606 + C302.6417847,657.6053467,302.2974243,657.7367554,301.9530945,657.7367554L301.9530945,657.7367554z"/> + </g> + </g> + </g> + <g> + <g> + <path class="st10" d="M636.4863892,663.555481c0-17.0574341-4.8364868-36.7911377-14.6837769-36.7911377 + c-9.8453979,0-14.6818848,19.7337036-14.6818848,36.7911377c0,6.2496338,4.8364868,11.3174438,14.6818848,11.3174438 + C631.6499023,674.8729248,636.4863892,669.8051147,636.4863892,663.555481z"/> + </g> + <g> + <path class="st11" d="M636.4863892,663.555481c0-17.0574341-4.8364868-36.7911377-14.6837769-36.7911377v48.1085815 + C631.6499023,674.8729248,636.4863892,669.8051147,636.4863892,663.555481z"/> + </g> + <g> + <g> + <path class="st7" d="M621.8026123,692.6199951c-0.7498169,0-1.3586426-0.6081543-1.3586426-1.3585815v-42.1096191 + c0-0.7504272,0.6088257-1.3585815,1.3586426-1.3585815s1.3585815,0.6081543,1.3585815,1.3585815v42.1096191 + C623.1611938,692.0118408,622.5524292,692.6199951,621.8026123,692.6199951L621.8026123,692.6199951z"/> + </g> + <g> + <path class="st7" d="M621.8026123,665.8747559c-0.3486328,0-0.6953125-0.1326294-0.9606323-0.3979492l-6.2579346-6.260498 + c-0.531189-0.5306396-0.531189-1.3899536,0-1.9205933c0.5319824-0.5306396,1.3919678-0.5306396,1.9206543,0l6.2585449,6.2597656 + c0.5306396,0.5306396,0.5306396,1.390686,0,1.9213257C622.4979248,665.7421265,622.1512451,665.8747559,621.8026123,665.8747559 + L621.8026123,665.8747559z"/> + </g> + <g> + <path class="st7" d="M621.8026123,660.4121704c-0.3486328,0-0.6953125-0.1326904-0.9606323-0.3979492 + c-0.5305786-0.5306396-0.5305786-1.3900146,0-1.9213257l8.3105469-8.3098755 + c0.5305786-0.5306396,1.3900146-0.5306396,1.9206543,0c0.5305786,0.5306396,0.5305786,1.390686,0,1.9213257 + l-8.3099365,8.3098755C622.4979248,660.27948,622.1512451,660.4121704,621.8026123,660.4121704L621.8026123,660.4121704z"/> + </g> + </g> + </g> + <g> + <g> + + <ellipse transform="matrix(0.7071068 -0.7071068 0.7071068 0.7071068 -348.8275757 280.554718)" class="st12" cx="164.245697" cy="561.3494873" rx="51.4888191" ry="51.4888382"/> + </g> + <g> + <path class="st8" d="M215.7344971,561.3494873c0-28.4364014-23.0516205-51.4889221-51.4888153-51.4889221v102.9777527 + C192.6828766,612.8383179,215.7344971,589.7866211,215.7344971,561.3494873z"/> + </g> + <g> + <g> + <path class="st7" d="M164.2456818,642.6781006c-0.968811,0-1.7554169-0.7857666-1.7554169-1.7545776v-72.1615601 + c0-0.9695435,0.7866058-1.7554321,1.7554169-1.7554321c0.9695892,0,1.7554321,0.7858887,1.7554321,1.7554321v72.1615601 + C166.0011139,641.892334,165.215271,642.6781006,164.2456818,642.6781006L164.2456818,642.6781006z"/> + </g> + <g> + <path class="st7" d="M164.2456818,596.8464355c-0.4504852,0-0.897583-0.1713257-1.2404022-0.5141602 + c-0.6856079-0.6856689-0.6856079-1.796875,0-2.4824829l10.7255249-10.7255249 + c0.6856079-0.6856079,1.7967987-0.6856079,2.4824066,0c0.6856232,0.6856079,0.6856232,1.7960205,0,2.4816284 + l-10.7263641,10.7263794C165.144043,596.6751099,164.6960907,596.8464355,164.2456818,596.8464355L164.2456818,596.8464355z"/> + </g> + <g> + <path class="st7" d="M164.2456818,587.4846802c-0.4504852,0-0.897583-0.1713257-1.2404022-0.5141602l-14.2397461-14.2388916 + c-0.6856232-0.6856689-0.6856232-1.7960205,0-2.4824219c0.6864624-0.6856079,1.7968903-0.6856079,2.4824982,0 + l14.2388153,14.2396851c0.6856232,0.6856079,0.6856232,1.7960205,0,2.4816284 + C165.144043,587.3133545,164.6960907,587.4846802,164.2456818,587.4846802L164.2456818,587.4846802z"/> + </g> + </g> + </g> + <path class="st10" d="M2.655179,682.4365234l129.288208-3.477478h103.7931366c4.9183807,0,8.9050751,3.986145,8.9050751,8.9058838 + c0,4.9154053-3.9866943,8.9026489-8.9050751,8.9026489h-37.4993591c-4.9181061,0-8.9042511,3.986084-8.9042511,8.9026489 + c0,4.9186401,3.986145,8.9058838,8.9042511,8.9058838h78.8408356c4.9173279,0,8.9034729,3.986084,8.9034729,8.9025879 + c0,4.9181519-3.986145,8.9058838-8.9034729,8.9058838H224.03685c-4.9167786,0-8.9034271,3.986145-8.9034271,8.9042358 + c0,4.9154663,3.9866486,8.90271,8.9034271,8.90271h11.6996765c4.9183807,0,8.9050751,3.9877319,8.9050751,8.9031372 + c0,4.9191895-3.9866943,8.9053345-8.9050751,8.9053345h-357.04776L2.655179,682.4365234z M263.0184937,696.7675781 + c4.9173279,0,8.9042664-3.9872437,8.9042664-8.9042358c0-4.9181519-3.9869385-8.9058838-8.9042664-8.9058838 + c-4.9172668,0-8.9042358,3.9877319-8.9042358,8.9058838C254.1142578,692.7803345,258.1012268,696.7675781,263.0184937,696.7675781z + "/> +</g> +<rect class="st13" width="682.5" height="768"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/longhorn.4809470b.svg b/extensions/harvester/1.5.0-dev/plugin/img/longhorn.4809470b.svg new file mode 100644 index 00000000..c64d3e2d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/longhorn.4809470b.svg @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 142.7322845 142.7322845" style="enable-background:new 0 0 142.7322845 142.7322845;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#5F224A;} +</style> +<path class="st0" d="M71.3661575,72.155838c-0.4796753,0.0000076-0.9581833-0.0472488-1.4285889-0.1410828l-3.8552475-0.7696915 + l3.3187256,20.4169388c0.0632401,0.3870087,0.0949249,0.778511,0.0947647,1.1706619h3.7400055 + c0.000061-0.439827,0.0398788-0.8787384,0.118988-1.3113861l3.7196884-20.3609619l-4.279747,0.8544388 + C72.3243408,72.1085892,71.8458328,72.1558456,71.3661575,72.155838z M127.2309875,13.3292065H15.5014114 + C7.226408,13.353385,0.5241941,20.0555859,0.5,28.3305893v86.071106 + c0.0241987,8.2749939,6.7263918,14.9771805,15.0013828,15.0013809h111.7296066 + c8.2749634-0.024231,14.9771271-6.7264175,15.001297-15.0013809v-86.071106 + C142.2081146,20.055624,135.5059509,13.3534307,127.2309875,13.3292065z M129.7518158,43.667347l-1.8255005,12.4034615 + c-0.4489822,3.0501518-2.766571,5.4889565-5.7898941,6.0927124l-29.6717148,5.924057 + c-0.0051117,0.0297012-0.0062332,0.0591431-0.011673,0.0888443l-4.6448898,25.4275208 + c-0.4196396,7.7443237-6.8166656,13.8115311-14.5723419,13.8210297h-3.7400131 + c-7.7882767-0.0093231-14.2002678-6.1259003-14.5766373-13.9050827L50.8031502,68.194519L20.595892,62.1635208 + c-3.0233231-0.603756-5.3409128-3.0425606-5.7898922-6.0927124L12.9805012,43.667347 + c-0.5837536-3.9871025,2.1752014-7.6925087,6.1623001-8.2762642c3.9829006-0.5831413,7.6856079,2.1695175,8.2746811,6.1515427 + l1.0766144,7.3175354l42.8720627,8.5594368l42.8720322-8.5594406l1.0766068-7.3175316 + c0.5900345-3.9861755,4.2997894-6.7392921,8.285965-6.1492615c3.9814987,0.589344,6.733757,4.2915115,6.1510239,8.273983 + H129.7518158z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/minikube-black.94055a38.svg b/extensions/harvester/1.5.0-dev/plugin/img/minikube-black.94055a38.svg new file mode 100644 index 00000000..1ca3cca3 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/minikube-black.94055a38.svg @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<path d="M50.1,1.3L50.1,1.3c-1.4,0-2.7,0.3-4,0.9L13.4,17.9c-2.6,1.2-4.4,3.5-5,6.3l-8.2,35c-0.6,2.8,0,5.6,1.8,7.9l22.6,28.1 + c1.7,2.2,4.4,3.4,7.2,3.4h36.3c2.8,0,5.4-1.2,7.2-3.4l22.6-28.1c1.8-2.2,2.5-5.1,1.8-7.9l-8.1-35.1c-0.6-2.8-2.5-5-5-6.3L54,2.2 + C52.8,1.6,51.5,1.3,50.1,1.3 M50.1,4.4c0.9,0,1.8,0.2,2.7,0.6l32.7,15.6c1.7,0.8,3,2.4,3.4,4.2L97,60c0.5,1.9,0,3.8-1.2,5.3 + L73.1,93.4c-1.2,1.5-3,2.3-4.8,2.3H31.9c-1.9,0-3.7-0.8-4.8-2.3L4.4,65.2c-1.2-1.5-1.6-3.4-1.2-5.3l8.1-35.1 + c0.5-1.9,1.7-3.4,3.4-4.2L47.4,4.9C48.2,4.5,49.2,4.4,50.1,4.4 M58.5,70c-1.1,0.7-2.5,0.5-3.4-0.6c-0.3-0.3-0.4-0.7-0.5-1.1 + l-0.9-15.8c6.7,0.8,12.8,3.8,17.5,8.5L58.5,70z M45.2,67.9c-0.1,1.4-1.2,2.5-2.6,2.5c-0.4,0-0.9-0.1-1.2-0.3l-12.9-9.2 + c4-4,8.9-6.7,14.5-8c1.1-0.2,2-0.4,3.1-0.6L45.2,67.9z M81.6,61.4l1-0.9v-0.2c0-0.5,0.1-1,0.5-1.5c1.2-1.1,2.6-1.9,4.4-3 + c0.3-0.2,0.6-0.3,0.9-0.5c0.6-0.3,1.1-0.6,1.7-1c0.1-0.1,0.3-0.2,0.5-0.4c0.1-0.1,0.2-0.1,0.2-0.2c1.4-1.2,1.7-3.1,0.7-4.4 + c-0.5-0.7-1.4-1.1-2.2-1.1c-0.8,0-1.5,0.3-2.1,0.8L87,49.1c-0.2,0.1-0.3,0.3-0.5,0.4c-0.5,0.5-0.9,1-1.3,1.5 + c-0.2,0.2-0.4,0.5-0.7,0.7c-1.4,1.5-2.6,2.6-3.9,3.5c-0.3,0.2-0.6,0.3-0.9,0.3c-0.2,0-0.4,0-0.6-0.1h-0.2l-1.2,0.8 + c-1.3-1.4-2.6-2.5-4-3.7c-5.8-4.6-12.9-7.4-20.3-8.1L53.3,43L53,42.9c-0.3-0.3-0.7-0.6-0.8-1.3c-0.1-1.6,0.1-3.3,0.3-5.2v-0.1 + c0-0.3,0.1-0.7,0.2-1c0.1-0.6,0.2-1.2,0.3-1.8v-0.6v-0.3c0-1.7-1.4-3.2-3-3.2c-0.8,0-1.6,0.4-2.1,1C47.3,31,47,31.8,47,32.6v0.2v0.6 + c0,0.7,0.1,1.3,0.3,1.8c0.1,0.3,0.1,0.6,0.2,1v0.1c0.2,1.9,0.5,3.7,0.3,5.2c-0.1,0.7-0.5,1-0.8,1.3c-0.1,0.1-0.1,0.1-0.2,0.2 + l-0.1,1.3c-1.7,0.2-3.5,0.4-5.2,0.8C34,46.7,27.4,50.5,22.2,56l-1-0.7H21c-0.2,0-0.4,0.1-0.6,0.1c-0.3,0-0.6-0.1-0.9-0.3 + c-1.3-0.9-2.5-2.1-3.9-3.6c-0.2-0.2-0.4-0.5-0.7-0.7c-0.4-0.5-0.8-0.9-1.3-1.4c-0.1-0.1-0.3-0.2-0.5-0.4c-0.1-0.1-0.2-0.1-0.2-0.2 + c-0.6-0.5-1.4-0.8-2.1-0.8c-0.9,0-1.7,0.4-2.2,1.1c-1,1.3-0.7,3.2,0.7,4.4c0.1,0,0.1,0.1,0.2,0.1c0.2,0.1,0.3,0.3,0.5,0.4 + c0.6,0.4,1.1,0.7,1.7,1c0.3,0.1,0.6,0.3,0.9,0.5c1.7,1.1,3.2,1.9,4.4,3c0.5,0.5,0.5,1,0.5,1.5v0.2l1,0.9c-0.2,0.3-0.4,0.5-0.5,0.8 + c-1.1,1.8-2.1,3.7-2.9,5.6l5.5,6.8c0.7-2.6,1.8-5.2,3.3-7.6L35.4,77c1.1,0.9,1.2,2.5,0.3,3.6c-0.3,0.4-0.7,0.7-1.2,0.8l-6.7,1.9 + l3.3,4.1c1.2,1.5,2.9,2.3,4.7,2.3l28.5-0.1c1.8,0,3.5-0.9,4.7-2.3l3.1-3.9l-6.8-2c-1.4-0.4-2.1-1.7-1.8-3.1c0.1-0.4,0.3-0.8,0.6-1.1 + l11.8-10.6c1.4,2.4,2.6,5,3.4,7.9l5.7-7.1C83.9,65.4,82.9,63.4,81.6,61.4L81.6,61.4z"/> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/minikube.117e4a38.svg b/extensions/harvester/1.5.0-dev/plugin/img/minikube.117e4a38.svg new file mode 100644 index 00000000..db07d334 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/minikube.117e4a38.svg @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> +<style type="text/css"> + .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#326DE6;} + .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#1FBFCF;} + .st2{fill-rule:evenodd;clip-rule:evenodd;fill:#C9E9EC;} +</style> +<g> + <path id="Fill-1" class="st0" d="M50.1,1.3L50.1,1.3c-1.4,0-2.7,0.3-4,0.9L13.4,17.9c-2.6,1.2-4.4,3.5-5,6.3l-8.2,35 + c-0.6,2.8,0,5.6,1.8,7.9l22.6,28.1c1.7,2.2,4.4,3.4,7.2,3.4h36.3c2.8,0,5.4-1.2,7.2-3.4l22.6-28.1c1.8-2.2,2.5-5.1,1.8-7.9 + l-8.1-35.1c-0.6-2.8-2.5-5-5-6.3L54,2.2C52.8,1.6,51.5,1.3,50.1,1.3 M50.1,4.4c0.9,0,1.8,0.2,2.7,0.6l32.7,15.6 + c1.7,0.8,3,2.4,3.4,4.2L97,60c0.5,1.9,0,3.8-1.2,5.3L73.1,93.4c-1.2,1.5-3,2.3-4.8,2.3H31.9c-1.9,0-3.7-0.8-4.8-2.3L4.4,65.2 + c-1.2-1.5-1.6-3.4-1.2-5.3l8.1-35.1c0.5-1.9,1.7-3.4,3.4-4.2L47.4,4.9C48.2,4.5,49.2,4.4,50.1,4.4"/> + <path id="kube-bottom" class="st1" d="M31.2,87.5c1.2,1.5,2.9,2.3,4.7,2.3l28.5-0.1c1.8,0,3.5-0.9,4.7-2.3l17.4-21.8 + c0.5-0.7,0.4-2,0.4-3.1V31.8L49.6,53.4l0,0L12.3,31.8v30.5c0,1.1,0.4,2.3,1.1,3.2L31.2,87.5z"/> + <polygon id="kube-top" class="st2" points="49.6,53.4 86.8,31.8 49.5,10.4 12.3,31.8 "/> + <path id="wheel" class="st0" d="M58.5,70c-1.1,0.7-2.5,0.5-3.4-0.6c-0.3-0.3-0.4-0.7-0.5-1.1l-0.9-15.8c6.7,0.8,12.8,3.8,17.5,8.5 + L58.5,70z M45.2,67.9c-0.1,1.4-1.2,2.5-2.6,2.5c-0.4,0-0.9-0.1-1.2-0.3l-12.9-9.2c4-4,8.9-6.7,14.5-8c1.1-0.2,2-0.4,3.1-0.6 + L45.2,67.9z M81.6,61.4l1-0.9v-0.2c0-0.5,0.1-1,0.5-1.5c1.2-1.1,2.6-1.9,4.4-3c0.3-0.2,0.6-0.3,0.9-0.5c0.6-0.3,1.1-0.6,1.7-1 + c0.1-0.1,0.3-0.2,0.5-0.4c0.1-0.1,0.2-0.1,0.2-0.2c1.4-1.2,1.7-3.1,0.7-4.4c-0.5-0.7-1.4-1.1-2.2-1.1c-0.8,0-1.5,0.3-2.1,0.8 + L87,49.1c-0.2,0.1-0.3,0.3-0.5,0.4C86,50,85.6,50.5,85.2,51c-0.2,0.2-0.4,0.5-0.7,0.7c-1.4,1.5-2.6,2.6-3.9,3.5 + c-0.3,0.2-0.6,0.3-0.9,0.3c-0.2,0-0.4,0-0.6-0.1h-0.2l-1.2,0.8c-1.3-1.4-2.6-2.5-4-3.7c-5.8-4.6-12.9-7.4-20.3-8.1L53.3,43L53,42.9 + c-0.3-0.3-0.7-0.6-0.8-1.3c-0.1-1.6,0.1-3.3,0.3-5.2v-0.1c0-0.3,0.1-0.7,0.2-1c0.1-0.6,0.2-1.2,0.3-1.8v-0.6v-0.3 + c0-1.7-1.4-3.2-3-3.2c-0.8,0-1.6,0.4-2.1,1C47.3,31,47,31.8,47,32.6v0.2v0.6c0,0.7,0.1,1.3,0.3,1.8c0.1,0.3,0.1,0.6,0.2,1v0.1 + c0.2,1.9,0.5,3.7,0.3,5.2c-0.1,0.7-0.5,1-0.8,1.3c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,1.3c-1.7,0.2-3.5,0.4-5.2,0.8 + c-7.5,1.6-14.1,5.4-19.3,10.9l-1-0.7H21c-0.2,0-0.4,0.1-0.6,0.1c-0.3,0-0.6-0.1-0.9-0.3c-1.3-0.9-2.5-2.1-3.9-3.6 + c-0.2-0.2-0.4-0.5-0.7-0.7c-0.4-0.5-0.8-0.9-1.3-1.4c-0.1-0.1-0.3-0.2-0.5-0.4c-0.1-0.1-0.2-0.1-0.2-0.2c-0.6-0.5-1.4-0.8-2.1-0.8 + c-0.9,0-1.7,0.4-2.2,1.1c-1,1.3-0.7,3.2,0.7,4.4c0.1,0,0.1,0.1,0.2,0.1c0.2,0.1,0.3,0.3,0.5,0.4c0.6,0.4,1.1,0.7,1.7,1 + c0.3,0.1,0.6,0.3,0.9,0.5c1.7,1.1,3.2,1.9,4.4,3c0.5,0.5,0.5,1,0.5,1.5v0.2l1,0.9c-0.2,0.3-0.4,0.5-0.5,0.8 + c-1.1,1.8-2.1,3.7-2.9,5.6l5.5,6.8c0.7-2.6,1.8-5.2,3.3-7.6l11.5,10.3c1.1,0.9,1.2,2.5,0.3,3.6c-0.3,0.4-0.7,0.7-1.2,0.8l-6.7,1.9 + l3.3,4.1c1.2,1.5,2.9,2.3,4.7,2.3l28.5-0.1c1.8,0,3.5-0.9,4.7-2.3l3.1-3.9l-6.8-2c-1.4-0.4-2.1-1.7-1.8-3.1 + c0.1-0.4,0.3-0.8,0.6-1.1l11.8-10.6c1.4,2.4,2.6,5,3.4,7.9l5.7-7.1C83.9,65.4,82.9,63.4,81.6,61.4L81.6,61.4z"/> +</g> +</svg> diff --git a/extensions/harvester/1.5.0-dev/plugin/img/neuvector.513801d3.svg b/extensions/harvester/1.5.0-dev/plugin/img/neuvector.513801d3.svg new file mode 100644 index 00000000..cc9dac71 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/neuvector.513801d3.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 152.84 141.52"><path d="M114.83,14.17h45.25a6.34,6.34,0,0,1,6.34,6.34V66a6.34,6.34,0,0,1-6.34,6.34H114.83A6.34,6.34,0,0,1,108.49,66V20.51a6.34,6.34,0,0,1,6.34-6.34m3.48,48.37h38.28V24H118.31Z" transform="translate(-13.58 -14.17)" fill="#a1d635"/><path d="M139.51,44.69H53.19A12.09,12.09,0,0,0,41.1,56.78V69.12l12.37,7.47V57h85.75v86.34H53.47V90.46L41.1,83V143.6a12.09,12.09,0,0,0,12.09,12.09h86.32A12.09,12.09,0,0,0,151.6,143.6V56.78a12.09,12.09,0,0,0-12.09-12.09" transform="translate(-13.58 -14.17)" fill="#42a342"/><path d="M78.86,29.06H21.6a8,8,0,0,0-8,8V94.67a8,8,0,0,0,8,8H78.86a8,8,0,0,0,8-8V72.08L59.1,93.84,41.1,83v9.51H23.75V39.22h53v5.47H53.19A12.09,12.09,0,0,0,41.1,56.78V69.12L58.6,79.69,86.88,57.84V37.08a8,8,0,0,0-8-8" transform="translate(-13.58 -14.17)" fill="#007300"/></svg> \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/nutanix.b10c401f.svg b/extensions/harvester/1.5.0-dev/plugin/img/nutanix.b10c401f.svg new file mode 100644 index 00000000..30811070 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/nutanix.b10c401f.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Layer_1" x="0px" y="0px" viewBox="0 0 70.7 48.2" style="enable-background:new 0 0 70.7 48.2;" xml:space="preserve"> <style type="text/css"> .st0{fill:#A8CB3A;} .st1{fill:#174489;} </style> <title>nutanix logo diff --git a/extensions/harvester/1.5.0-dev/plugin/img/oci-black.cd3524de.svg b/extensions/harvester/1.5.0-dev/plugin/img/oci-black.cd3524de.svg new file mode 100644 index 00000000..25f67819 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/oci-black.cd3524de.svg @@ -0,0 +1,41 @@ + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/oci.3a81eed0.svg b/extensions/harvester/1.5.0-dev/plugin/img/oci.3a81eed0.svg new file mode 100644 index 00000000..e8135767 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/oci.3a81eed0.svg @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/okta.58a2aa35.svg b/extensions/harvester/1.5.0-dev/plugin/img/okta.58a2aa35.svg new file mode 100644 index 00000000..5595186b --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/okta.58a2aa35.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/openid.451743dd.svg b/extensions/harvester/1.5.0-dev/plugin/img/openid.451743dd.svg new file mode 100644 index 00000000..71db9269 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/openid.451743dd.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/openldap.59040f23.svg b/extensions/harvester/1.5.0-dev/plugin/img/openldap.59040f23.svg new file mode 100644 index 00000000..616bdfa5 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/openldap.59040f23.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/openstack-black.af3ac5a0.svg b/extensions/harvester/1.5.0-dev/plugin/img/openstack-black.af3ac5a0.svg new file mode 100644 index 00000000..603cf55f --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/openstack-black.af3ac5a0.svg @@ -0,0 +1,16 @@ + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/openstack.475580f8.svg b/extensions/harvester/1.5.0-dev/plugin/img/openstack.475580f8.svg new file mode 100644 index 00000000..59000793 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/openstack.475580f8.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/oracle.74aae75e.svg b/extensions/harvester/1.5.0-dev/plugin/img/oracle.74aae75e.svg new file mode 100644 index 00000000..832aad49 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/oracle.74aae75e.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/oracleoke-black.ec0a34a2.svg b/extensions/harvester/1.5.0-dev/plugin/img/oracleoke-black.ec0a34a2.svg new file mode 100644 index 00000000..7f529214 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/oracleoke-black.ec0a34a2.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/oracleoke.64fac528.svg b/extensions/harvester/1.5.0-dev/plugin/img/oracleoke.64fac528.svg new file mode 100644 index 00000000..4f6a9d2f --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/oracleoke.64fac528.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/otc-black.5629758c.svg b/extensions/harvester/1.5.0-dev/plugin/img/otc-black.5629758c.svg new file mode 100644 index 00000000..86cf27a9 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/otc-black.5629758c.svg @@ -0,0 +1,15 @@ + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/otc.1b7d926f.svg b/extensions/harvester/1.5.0-dev/plugin/img/otc.1b7d926f.svg new file mode 100644 index 00000000..021bb0bf --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/otc.1b7d926f.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/otccce.1b7d926f.svg b/extensions/harvester/1.5.0-dev/plugin/img/otccce.1b7d926f.svg new file mode 100644 index 00000000..021bb0bf --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/otccce.1b7d926f.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/outscale.d0d823da.svg b/extensions/harvester/1.5.0-dev/plugin/img/outscale.d0d823da.svg new file mode 100644 index 00000000..2b4e7a2d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/outscale.d0d823da.svg @@ -0,0 +1,19 @@ + + + + + Layer 1 + + + + + + + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/ovhcloudmks.612c966f.svg b/extensions/harvester/1.5.0-dev/plugin/img/ovhcloudmks.612c966f.svg new file mode 100644 index 00000000..fd1351f8 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/ovhcloudmks.612c966f.svg @@ -0,0 +1,122 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/ovhcloudpubliccloud.612c966f.svg b/extensions/harvester/1.5.0-dev/plugin/img/ovhcloudpubliccloud.612c966f.svg new file mode 100644 index 00000000..fd1351f8 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/ovhcloudpubliccloud.612c966f.svg @@ -0,0 +1,122 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/packet-black.5fc90c03.svg b/extensions/harvester/1.5.0-dev/plugin/img/packet-black.5fc90c03.svg new file mode 100644 index 00000000..d9de626c --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/packet-black.5fc90c03.svg @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/packet.ef1f45fa.svg b/extensions/harvester/1.5.0-dev/plugin/img/packet.ef1f45fa.svg new file mode 100644 index 00000000..eb62ddd0 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/packet.ef1f45fa.svg @@ -0,0 +1,16 @@ + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/pagerduty.9871fbd3.svg b/extensions/harvester/1.5.0-dev/plugin/img/pagerduty.9871fbd3.svg new file mode 100644 index 00000000..6e2ce7c2 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/pagerduty.9871fbd3.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/ping.5b5afc6e.svg b/extensions/harvester/1.5.0-dev/plugin/img/ping.5b5afc6e.svg new file mode 100644 index 00000000..909c3d39 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/ping.5b5afc6e.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/pinganyunecs-black.bf0b3440.svg b/extensions/harvester/1.5.0-dev/plugin/img/pinganyunecs-black.bf0b3440.svg new file mode 100644 index 00000000..ab6775e4 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/pinganyunecs-black.bf0b3440.svg @@ -0,0 +1,26 @@ + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/pinganyunecs.b74db865.svg b/extensions/harvester/1.5.0-dev/plugin/img/pinganyunecs.b74db865.svg new file mode 100644 index 00000000..876891af --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/pinganyunecs.b74db865.svg @@ -0,0 +1,26 @@ + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/pnap-black.a7948015.svg b/extensions/harvester/1.5.0-dev/plugin/img/pnap-black.a7948015.svg new file mode 100644 index 00000000..3d79a978 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/pnap-black.a7948015.svg @@ -0,0 +1,43 @@ + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/pnap.81704b7a.svg b/extensions/harvester/1.5.0-dev/plugin/img/pnap.81704b7a.svg new file mode 100644 index 00000000..4059ed9f --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/pnap.81704b7a.svg @@ -0,0 +1,48 @@ + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/prometheus.be8ac54d.svg b/extensions/harvester/1.5.0-dev/plugin/img/prometheus.be8ac54d.svg new file mode 100644 index 00000000..88b7b6fe --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/prometheus.be8ac54d.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rackspace-black.0e8f8bc4.svg b/extensions/harvester/1.5.0-dev/plugin/img/rackspace-black.0e8f8bc4.svg new file mode 100644 index 00000000..3299f04d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rackspace-black.0e8f8bc4.svg @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rackspace.5e8dcb5a.svg b/extensions/harvester/1.5.0-dev/plugin/img/rackspace.5e8dcb5a.svg new file mode 100644 index 00000000..b1b3696d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rackspace.5e8dcb5a.svg @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.3680d0eb.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.3680d0eb.svg new file mode 100644 index 00000000..3b38e4e1 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.3680d0eb.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.487fcd1d.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.487fcd1d.svg new file mode 100644 index 00000000..e7ebce29 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.487fcd1d.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.788ed883.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.788ed883.svg new file mode 100644 index 00000000..7e409d8c --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.788ed883.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.8d98c901.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.8d98c901.svg new file mode 100644 index 00000000..0203f520 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.8d98c901.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.920195b3.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.920195b3.svg new file mode 100644 index 00000000..4bd2f0bb --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.920195b3.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.b8492368.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.b8492368.svg new file mode 100644 index 00000000..061b1b1d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.b8492368.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.d773077a.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.d773077a.svg new file mode 100644 index 00000000..a3a82891 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.d773077a.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.ef1ab5b0.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.ef1ab5b0.svg new file mode 100644 index 00000000..b615a248 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.ef1ab5b0.svg @@ -0,0 +1 @@ +rancher-federal-final-logos \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.f190bd21.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.f190bd21.svg new file mode 100644 index 00000000..afb9035d --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.f190bd21.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.fd684d42.svg b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.fd684d42.svg new file mode 100644 index 00000000..4bb47df6 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rancher-logo.fd684d42.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rke.a01f31e7.svg b/extensions/harvester/1.5.0-dev/plugin/img/rke.a01f31e7.svg new file mode 100644 index 00000000..f7b71289 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rke.a01f31e7.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/rke2.a01f31e7.svg b/extensions/harvester/1.5.0-dev/plugin/img/rke2.a01f31e7.svg new file mode 100644 index 00000000..f7b71289 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/rke2.a01f31e7.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/setup-step-one.7b236b40.svg b/extensions/harvester/1.5.0-dev/plugin/img/setup-step-one.7b236b40.svg new file mode 100644 index 00000000..97dae215 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/setup-step-one.7b236b40.svg @@ -0,0 +1,612 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/shibboleth.35ea1d68.svg b/extensions/harvester/1.5.0-dev/plugin/img/shibboleth.35ea1d68.svg new file mode 100644 index 00000000..1ec1eb5b --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/shibboleth.35ea1d68.svg @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/slack.34dfd73f.svg b/extensions/harvester/1.5.0-dev/plugin/img/slack.34dfd73f.svg new file mode 100644 index 00000000..836a64a2 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/slack.34dfd73f.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/softlayer.5d9a5c2a.svg b/extensions/harvester/1.5.0-dev/plugin/img/softlayer.5d9a5c2a.svg new file mode 100644 index 00000000..8ff9be29 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/softlayer.5d9a5c2a.svg @@ -0,0 +1,27 @@ + + + + Compute + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/extensions/harvester/1.5.0-dev/plugin/img/sunglasses.157dca2a.svg b/extensions/harvester/1.5.0-dev/plugin/img/sunglasses.157dca2a.svg new file mode 100644 index 00000000..277d7874 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/sunglasses.157dca2a.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/tencenttke-black.140c30e5.svg b/extensions/harvester/1.5.0-dev/plugin/img/tencenttke-black.140c30e5.svg new file mode 100644 index 00000000..d0a3d5ce --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/tencenttke-black.140c30e5.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/tencenttke.42042615.svg b/extensions/harvester/1.5.0-dev/plugin/img/tencenttke.42042615.svg new file mode 100644 index 00000000..1a57f566 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/tencenttke.42042615.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/vmwarevsphere-black.454d68ed.svg b/extensions/harvester/1.5.0-dev/plugin/img/vmwarevsphere-black.454d68ed.svg new file mode 100644 index 00000000..352894f8 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/vmwarevsphere-black.454d68ed.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/vmwarevsphere.94d59db3.svg b/extensions/harvester/1.5.0-dev/plugin/img/vmwarevsphere.94d59db3.svg new file mode 100644 index 00000000..bd1b636e --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/vmwarevsphere.94d59db3.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/webhook.f86c012b.svg b/extensions/harvester/1.5.0-dev/plugin/img/webhook.f86c012b.svg new file mode 100644 index 00000000..fed3db91 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/webhook.f86c012b.svg @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/img/wechat-qr-code.c0468b45.jpg b/extensions/harvester/1.5.0-dev/plugin/img/wechat-qr-code.c0468b45.jpg new file mode 100644 index 00000000..cea6b683 Binary files /dev/null and b/extensions/harvester/1.5.0-dev/plugin/img/wechat-qr-code.c0468b45.jpg differ diff --git a/extensions/harvester/1.5.0-dev/plugin/img/windows.f862ed7d.svg b/extensions/harvester/1.5.0-dev/plugin/img/windows.f862ed7d.svg new file mode 100644 index 00000000..ca8b68e7 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/img/windows.f862ed7d.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/extensions/harvester/1.5.0-dev/plugin/package.json b/extensions/harvester/1.5.0-dev/plugin/package.json new file mode 100644 index 00000000..dc573fb7 --- /dev/null +++ b/extensions/harvester/1.5.0-dev/plugin/package.json @@ -0,0 +1,20 @@ +{ + "name": "harvester", + "description": "Rancher UI Extension for Harvester", + "version": "1.5.0-dev", + "private": false, + "rancher": true, + "icon": "https://raw.githubusercontent.com/harvester/harvester-ui-extension/main/pkg/harvester/icon.svg", + "engines": { + "node": ">=20.0.0" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "~5.0.0", + "@vue/cli-service": "~5.0.0", + "@vue/cli-plugin-typescript": "~5.0.0" + }, + "files": [ + "**/*" + ], + "main": "harvester-1.5.0-dev.umd.min.js" +} \ No newline at end of file diff --git a/index.yaml b/index.yaml index f9220437..27165732 100644 --- a/index.yaml +++ b/index.yaml @@ -1,6 +1,28 @@ apiVersion: v1 entries: harvester: + - annotations: + catalog.cattle.io/certified: rancher + catalog.cattle.io/display-name: Harvester + catalog.cattle.io/kube-version: '>= 1.16.0-0' + catalog.cattle.io/namespace: cattle-ui-plugin-system + catalog.cattle.io/os: linux + catalog.cattle.io/permits-os: linux, windows + catalog.cattle.io/rancher-version: '>= 2.10.1-0' + catalog.cattle.io/scope: management + catalog.cattle.io/ui-component: plugins + catalog.cattle.io/ui-extensions-version: '>= 3.0.0 < 4.0.0' + apiVersion: v2 + appVersion: 1.5.0-dev + created: "2025-02-21T07:09:33.925786052Z" + description: Rancher UI Extension for Harvester + digest: b06a229297a912a84df48e236441bb770b934ff72081d56805da9693c25b7dfb + icon: https://raw.githubusercontent.com/harvester/harvester-ui-extension/main/pkg/harvester/icon.svg + name: harvester + type: application + urls: + - assets/harvester/harvester-1.5.0-dev.tgz + version: 1.5.0-dev - annotations: catalog.cattle.io/certified: rancher catalog.cattle.io/display-name: Harvester @@ -89,4 +111,4 @@ entries: urls: - assets/harvester/harvester-1.0.0.tgz version: 1.0.0 -generated: "2025-01-23T09:53:53.34414+08:00" +generated: "2025-02-21T07:09:33.92518528Z"